Download presentation

Presentation is loading. Please wait.

Published byBlaise Gentles Modified over 2 years ago

1
Reversible Computation - RC 2009 A Satellite Workshop of ETAPS 2009 March 22nd,2009 York M.Schellekens,D.Early,E.Popovici,and D.Vasudevan(p) Centre for Efficiency Oriented Languages UCC,Ireland A High Level Reversible Language for Modular Average Case Analysis

2
Outline Introduction Reversible Computing MOQA Overview Reversible MOQA The Cost of Operations Reversible Languages Conclusion

3
MOQA Static Average Case Analysis Static Timing / Power Analysis Reversible Language Reversibility Reversible MOQA

4
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.

5
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

6
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.

7
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.

8
MOQA Overview Basic Data Structure – Labelled Partial Orders(LPO). An LPO is a triple(A, ⊑,l), where 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.

9
MOQA Overview A Random Structure over the label set {1,2,3,4,5} A Hasse Diagram 5 1 4 23 5 1 4 32 5 2 4 13 5 2 4 31 5 3 4 12 5 4 2 31 5 4 2 13 5 4 3 21

10
MOQA Overview Series Operation Parallel Operation Partial Order is in Series -Parallel Form, if it is build from single partial orders by series and parallel operations only. (i)Series: α ⊗ β = (A1 U A2, ⊑ 1 U ⊑ 2 U (A1 x A2)) (i)Parallel: α || β = (A1 U A2, ⊑ 1 U ⊑ 2 )

11
Book Keeping of MOQA Product Index needed to reverse the product operation is 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

12
Algorithm to uncompute product operation step by step Book Keeping of MOQA Product 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 c p ∊ A' and the largest positive integer q < |A| such that c p ∊ A' and the largest positive integer q < |A| such that c q ∊ B' iii) Find the least positive integer k ≥ j such that iv) Add c k to A', replace with, and replace j with j-1. if j > 0, return to step 3.

13
Reversible MOQA An Example of Product Reversal 9 7 8 65 423 1 9 7 8 6 5 423 1 Input Output

14
Reversible MOQA An Example of Product Reversal 9 7 8 6 5 423 1 9 7 8 65 423 1 B A Step:1

15
Reversible MOQA Product Reversal Example 9 7 8 65 423 1 9 7 8 6 2 453 1 9 7 8 62 453 1 1 3 1 7

16
The Average Cost of Product Operation

17
The Cost of Product Operation- Reversible

18
Reversible Languages Janus Reversible Combinatory Logic – Based on Lambda Calculus Automata based Structural Approach Pendulum Assembly Language Reversible MOQA Potential Applications Static analysis of average power consumption Power efficiency Fault Tolerant Reversible Architectures Automatic Test Pattern Generation(ATPG)

19
Physical Medium Languages/application Architecture/ instruction set Logic/ Gate Level Transistor

20
Conclusion MOQA Reversible MOQA Cost of Operation for product operation Applications Future work – Extending Reversible MOQA

Similar presentations

© 2017 SlidePlayer.com Inc.

All rights reserved.

Ads by Google