210 likes | 318 Views
A New Type of Behaviour-Preserving Transition Insertions in Unfolding Prefixes. Victor Khomenko. Motivation. Some design methods based on PNs repeatedly execute the following steps: Analyze the PN Modify the PN by inserting a new transition in a behaviour-preserving way: bisimilar safe
E N D
A New Type of Behaviour-Preserving Transition Insertions in Unfolding Prefixes Victor Khomenko
Motivation • Some design methods based on PNs repeatedly execute the following steps: • Analyze the PN • Modify the PN by inserting a new transition in a behaviour-preserving way: • bisimilar • safe • E.g: synthesis of asynchronous circuits: • Resolution of encoding conflicts • Logic decomposition of complex gates
Unfolding prefixes Using unfolding prefixes for analysing the PN alleviate state space explosion efficient analysis and synthesis algorithms good for visualisation It is desirable to avoid re-unfolding after each transformation, i.e. to mirror the PN transformation by local transformations in the unfolding prefix re-unfolding is time-consuming good for visualisation (re-unfolding can dramatically change the look of the prefix) can transfer information (e.g. encoding conflicts) between the iterations of the algorithm the difficult bit and the main point of the paper
Data Transceiver Device Bus d lds dsr VME Bus Controller ldtack dtack dtack- dsr+ lds+ d- lds- ldtack- ldtack+ dsr- dtack+ d+ Example: VME Bus Controller
10000 dtack- dsr+ 00100 00000 lds+ ldtack- ldtack- ldtack- dtack- dsr+ 10010 01100 01000 11000 ldtack+ lds- lds- lds- dtack- dsr+ 11010 01110 11010 M’’ M’ 01010 d+ d- dsr- dtack+ 01111 11111 11011 Example: Encoding Conflict
dtack- dsr+ lds+ csc+ d- lds- ldtack- ldtack+ csc- dsr- dtack+ d+ Example: Resolving the conflict
M’’ M’ Example: Resolving the conflict dtack- dsr+ csc+ 001000 100000 000000 100001 lds+ ldtack- ldtack- ldtack- dtack- dsr+ 011000 100101 010000 110000 ldtack+ lds- lds- lds- dtack- dsr+ 110101 011100 110100 010100 d+ d- dsr- dtack+ csc- 011111 111111 110111 011110
May be not in the gate library and has to be decomposed Complex-gate implementation Data Transceiver Device Bus d lds dtack dsr csc ldtack
Unexpected! Unexpected! Naïve decomposition is hazardous dtack- dsr+ lds+ csc+ d- lds- ldtack- ldtack+ csc- dsr- dtack+ d+ d lds dtack dsr csc x ldtack
Insert a new signal dec whose implementation is [dec] = ldtack + csc Decompose at the PN level! dtack- dsr+ lds+ csc+ ldtack+ d- lds- ldtack- dec+ dec- csc- dsr- dtack+ d+ d lds dtack dsr csc dec ldtack
Previous work: Transformations Sequential pre-insertion Sequential post-insertion Concurrent insertion
Previous work: main results • Validity criteria • safeness • bisimilarity • The validity can be checked before the transformation is performed, i.e. on the original prefix (to avoid backtracking) • Avoiding re-unfolding • The suite of transformations is good in practice for resolution of encoding conflicts
Motivation for more transformations The suite of transformations is not sufficient for logic decomposition; intuitively: only linear (in the PN size) number of sequential pre- and post-insertions (assuming that the pre- and postset sizes are bounded) only quadratic (in the PN size) number of concurrent insertions exponential number of ‘cuts’ in the PN where a Boolean expression can change its value
Example: imec-sbuf-ram-write dec+ imec-sbuf-ram-write prbar req wen precharged wsen done ack wsldin wsld wenin dec- Implementation of prbar: (csc2 req) csc1 wsldin dec
Lock relation Transitions t and t’ are in the lock relation, denoted t t’, if in every execution of the PN: their occurrences alternate the first occurrence of t precedes that of t’ A conservative approximation of can be efficiently computed from the prefix The approximation is exact in the live case
Generalised transition insertion (GTI) s1 d1 sources s2 destinations d2 s3 • For each si: • either si dj for each dj • or djsi for each dj • GTIs preserve safeness and yield bisimilar PNs • It is possible to mirror a GTI by local transformations in the unfolding prefix
Computing useful GTIs There can be exponentially many GTIs (in the size of the PN): more likely that an appropriate transformation exists no longer practical to enumerate them all How to enumerate only the ‘potentially useful’ (for a particular application) GTIs? Can be done in two steps: computing sources (application-dependent, but the main idea is quite general) computing the destinations for given sources (relatively independent on the application)
Computing sources (logic deco) Given a Boolean expression E, find a position where E changes its value, i.e. a configuration C whose causally maximal events e correspond to the support of E and are such that E(C\{e}) E(C) Reducible to SAT When a solution is found: add a clause removing all the solutions yielding the same sources run the solver again repeat until all possible sets of sources are computed Incremental SAT
Computing destinations Given a set of sources S, compute all possible sets of destinations yielding a valid GTI W.l.o.g: no two transitions in S are locked Compute the set LS= {d | sS : sd ds} of transitions locked with each source Build the graph on LS: d1 and d2 are connected by an edge iff they are not locked with each other and are consistently locked with each source (i.e. sd1 iff sd2) Enumerate the non-empty cliques of this graph
Summary of contributions • A method for computing the approximated lock relation using an unfolding prefix; it is conservative, and exact in the live case • A new kind of transition insertion preserving safeness and yielding a bisimilar PN • An algorithm for applying a GTI on the existing prefix, avoiding thus (expensive) re-unfolding • A method for computing ‘potentially useful’ GTIs in the context of logic decomposition; some parts of this method are relatively independent on the application • These contributions form a complete framework for efficient use of GTIs together with the transformations developed earlier
Thank you! Any questions?