220 likes | 352 Views
A High Level Reversible Language for Modular Average Case Analysis. M.Schellekens,D.Early,E.Popovici,and D.Vasudevan (p) Centre for Efficiency Oriented Languages UCC,Ireland. Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009 March 22nd,2009 York. Outline.
E N D
A High Level Reversible Language for Modular Average Case Analysis • M.Schellekens,D.Early,E.Popovici,and D.Vasudevan(p) • Centre for Efficiency Oriented Languages • UCC,Ireland Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009 March 22nd,2009 York
Outline • Introduction • Reversible Computing • MOQA Overview • Reversible MOQA • The Cost of Operations • Reversible Languages • Conclusion
Motivation MOQA Reversibility Static Average Case Analysis ReversibleMOQA StaticTiming/ Power Analysis Reversible Language
Introduction • The MOQA “language" developed at CEOL: suite of data-structuring operations together with conditionals, for-loops and recursion. • MOQA is implemented at CEOL in Java 5.0 as MOQA-Java • The associated static analysis tool Distri-Track: modular derivation of the average case time of MOQA programs • Modular Property • Reuse • MOQA enables the finitary representation and tracking of the distribution of data states throughout computations • unlocks the true potential of modular reasoning.
Introduction • Overview of some MOQA features and discuss some links with reversible computing. • Reversible aspect of MOQA focusing on one of its main operations - Product. • We show how this operation can be made reversible • We indicate how MOQA enables the derivation of the cost of the operation as well as the cost of its reversal. • Discuss on some available Reversible Languages • Applications
Reversible Computing • Reversibility - For any output it is possible to recompute the input which gave rise to the output in question. • Reversibility - low power design. • MOQA ( With certain modifications) - a high level reversible language - low power analysis- using static average-case analysis. • The use of MOQA as a high level reversible language - a new type of application - Modular Static Average-Case Analysis. • Random bag preservation – a formal way to track distributions in the MOQA context • established via a one-to-one correspondence between inputs and outputs of basic MOQA operations.
Reversible Computing • The reversible aspects of MOQA -used not only to determine the average-case power – also to achieve power optimization based on traditional reversible approaches. • A few exceptions focus on high-level reversible languages, including the language JANUS.
MOQA Overview • An LPO is a triple(A,⊑,l), • where • Basic Data Structure – Labelled Partial Orders(LPO). • A is a set (assumed to be finite), • ⊑ is a partial order on A (that is, ⊑ is a subset of A x A which is reflexive, transitive and anti-symmetric). • l is an increasing injection from A into a totally ordered set (known as the set of labels). • Random Structure – Given a partial order (A,⊑), the random structure over a given label set C is Rc(A), which is the set of all LPOs (A,⊑,l) such that l(A) = C. • Random Bag – A random bag is a multiset of random structures.
5 5 4 4 1 1 2 3 3 2 5 5 4 4 2 2 1 3 3 1 5 5 4 2 3 4 1 2 3 1 5 5 2 3 4 4 1 3 2 1 MOQA Overview A Hasse Diagram A Random Structure over the label set {1,2,3,4,5}
MOQA Overview • Series Operation (i)Series: α ⊗β = (A1 U A2, ⊑1 U ⊑2 U (A1 x A2)) • Parallel Operation (i)Parallel: α || β = (A1 U A2, ⊑1 U ⊑2 ) • Partial Order is in Series -Parallel Form, • if it is build from single partial orders by series and parallel operations only.
Index needed to reverse the product operation is • Book Keeping of MOQA Product If we call the product operation on an LPO from R(A,⊑ A) and an LPO from R(B, ⊑ B) and get an output LPO (A U B ,⊑, l) and an index i, Then we can not only determine - Which members of each of the original random structures the input were, - Reverse each swap in product operations to uncompute back to original input
iii) Find the least positive integer k ≥ j such that iv) Add ck to A', replace with , and replace j with j-1 . if j > 0, return to step 3. • Book Keeping of MOQA Product • Algorithm to uncompute product operation step by step i) Replace ⊑ with ⊑A U ⊑B (or equivalently, remove all the pairs of the form (a,b) for a ∈ A and b ∈ B) ii) Set j = |A| , A' = {} v) Set B' = l (AUB) \ A' vi) Find the smallest positive integer p > |A| such that cp∊ A' and the largest positive integer q < |A| such that cq ∊ B'
9 9 8 8 7 7 6 5 5 6 4 2 3 4 2 3 1 1 Reversible MOQA • An Example of Product Reversal Input Output
9 9 4 2 3 8 7 8 5 7 6 1 6 5 4 2 3 B A 1 Reversible MOQA Step:1 • An Example of Product Reversal
9 4 2 3 8 7 1 6 5 9 4 5 3 8 7 1 6 2 9 4 5 3 1 7 8 1 7 1 3 6 2 Product Reversal Example Reversible MOQA
Reversible Languages • Reversible Combinatory Logic – Based on Lambda Calculus • Automata based Structural Approach • Janus • Pendulum Assembly Language • Reversible MOQA Potential Applications • Static analysis of average power consumption • Power efficiency • Fault Tolerant Reversible Architectures • Automatic Test Pattern Generation(ATPG)
Levels of Reversibility Languages/application Architecture/ instruction set Logic/ Gate Level Transistor Physical Medium
Conclusion • MOQA • Reversible MOQA • Cost of Operation for product operation • Applications • Future work – Extending Reversible MOQA