Structure of Sequential Machines 1 Zvi Kohavi and Niraj K. Jha Structure Structure: manner in which a machine can be realized from a set of smaller component machines, as well as the functional dependencies of its state and output variables Example: Machine M1 Excitation and output tables 2 Example (Cont.) Logic equations corresponding to state assignment Y1 = x’y1 + xy1’ = f1(x,y1) Y2 = x’y1 + xy2 = f2(x,y1,y2) z = xy2’ = f0(x,y2) x Y1 y1 z Y2 y 2 (a) Circuit diagram. x f1(x,y1) Y1 y1 f2(x,y1,y2) Y2 y2 f0(x,y2) z (b) Block diagram. 3 Example (Cont.) Logic equations corresponding to state assignment Y1 = x’y1 + xy1’ = f1(x,y1) Y2 = xy2’ = f2(x,y2) z = xy1’y2’ + xy1y2 = f0(x,y1,y2) x Y1 y1 x x x Y2 z y2 (a) Circuit diagram. f1(x,y1) Y1 y1 f0(x,y1,y2) x f2(x,y2) Y2 z y2 4 (b) Block diagram. State Assignments Using Partitions Let machine M have a set of n states S = {S1,S2,…,Sn} and a set of p input symbols I = {I1,I2,…,Ip} • k = log2n state variables and l = log2p input variables are needed for a complete assignment • In general: Yi = fi(y1,y2,…,yk,x1,x2,…,xl) i = 1,2,…,k • Objective: obtain assignments Yi = fi(y1,y2,…,yr,x1,x2,…,xl) i = 1,2,…,r • Subset {Y1,Y2,…,Yr} of state variables, whose values are independent of the values of yr+1,yr+2,…,yk: self-dependent subset – Both assignments and have this property State assignment problem: • Viewed as a coding problem: distinct code assigned to each state • Viewed as a partitioning problem: each state variable yi induces a partition i on the set of states such that two states are in the same block of i if and only if they are assigned the same value of yi 5 Partitioning Example Example: y1 induces partition 1= {A,B;C,D} and y2 induces 2 = {A,D;B,C} • Clearly, to assign a unique code to each state: – 1. 2 . … .k = (0) 6 Inverse Process Assigning values to state variables to distinguish blocks of a set of partitions: • Given a partition with #( ) blocks on the set of states of M, to distinguish among these blocks, it is necessary to select log2#( ) state variables and assign a distinct combination of these variables to each block of : all the states in each block are assigned the same values of y1, y2, …, yr • Each partition on the states of M provides some information regarding M’s state • If M possesses two partitions, 1 and 2, such that 1 > 2, then 2 provides more information than 1 • Clearly, the zero partition provides all the necessary information, since the knowledge of the block of (0), in which the machine is, is sufficient to uniquely determine the state of M • Thus, to obtain a state assignment: we need to assign values to state variables such that they distinguish the blocks of a set of partitions whose product is the zero partition 7 Assignment Example Example: For machine M1, the product of partitions 1= {A,B;C,D} and 2= {A,C;B,D} is zero, i.e., 1. 2 = (0) • Hence, if we assign y1 to distinguish block (A,B) from block (C,D), and y2 to distinguish the blocks of 2 , each state of M1 will have a distinct code, as in assignment Machine M1 Assignment 8 Closed Partition A partition on the set of states of a sequential machine M is said to be closed if, for every two states Si and Sj which are in the same block of and any input symbol Ik in I, states IkSi and IkSj are in a common block of • IkSi: Ik-successor of Si Example: For machine M1, partitions 1= {A,B;C,D} and 2 = {A,C;B,D} are closed • 0- and 1-successors of (A,C): (A,C) and (B,D), respectively • If we denote the blocks of 2 , (A,C) and (B,D), by P and Q, respectively: the successor relationship can be described by the graph below • Clearly, knowledge of the present block of M1 and the input symbol: sufficient to uniquely determine the next block 1 0 P Q 0,1 Machine M1 9 Reduction of Functional Dependency of State Variables Theorem: Let M be a sequential machine with k state variables, y1, y2, …, yk. If there exists a closed partition on the states of M and if r state variables, where r = log2#( ), are assigned to the blocks of , such that all the states contained in each block are assigned the same values of y1, y2, …, yr, then the next-state variables, Y1, Y2, …, Yr, are independent of the remaining k-r variables. Conversely, if the first r next-state variables, Y1, Y2, …, Yr (1 <= r < k), can be determined from the values of the inputs and the first r state variables, independently of the values of the remaining k-r variables, then there exists a closed partition on the states of M such that two states, Si and Sj, are in the same block of if and only if they are assigned the same values of the first r variables. 10 Proof of Theorem Proof: Since each block of is assigned the same values of variables y1, y2, …, yr, and since is closed, the knowledge of the present block of and present input values is sufficient to determine the next block of . In other words, the knowledge of the present values of y1, y2, …, yr and present input values is sufficient to determine the values of Y1, Y2, …, Yr, regardless of the values of the remaining variables. To prove the converse: form a partition on the set of states of M s.t. all the states with the same assigned values of y1, y2, …, yr are in the same block of . To prove that is closed, consider two states, Si and Sj, which belong to the same block of . Eachof these states has the same assigned values of the first r variables, and since these variables are independent of the values of the remaining ones, an application of the same input sequence to both Si and Sj causes the same change in the values of the first r variables for these two states. Hence, for each value of Ik, successors IkSi and IkSj have the same assignment of values for the first r variables and, consequently, are contained in the same block of . Thus, is closed. 11 Example Example: For machine M1, partitions 1= {A,B;C,D} and 2 = {A,C;B,D} are closed. • Since y1 in assignment has been assigned to distinguish the blocks of 1: it is independent of y2 • Similarly, since y2 has been assigned to distinguish the blocks of 2: it is independent of y1 Machine M1 Assignment 12 Series Decomposition The theorem provides a necessary and sufficient condition for machine decomposition: • Existence of a partition and a closed partition on the set of states of machine M, such that . = (0), guarantees that M can be composed of two component machines in series – The first component consists of log2#() memory elements (and their excitation circuitry): corresponding to state variables assigned to distinguish the blocks of » Since these variables are independent of the remaining variables: the first component is referred to as the independent component – The second dependent component contains log2#( ) memory elements: corresponding to the state variables assigned to distinguish the blocks of – Independent component: predecessor machine – distinguishes between the blocks of – Dependent component: successor machine – distinguishes between the states within the blocks of 13 Parallel Decomposition Existence of two closed partitions on the states of M such that their product is zero, i.e., 1. 2 = (0), implies that: M can be composed of two components, operating in parallel, independently of each other • One component consists of log2#( 1) memory elements: corresponding to state variables assigned to distinguish the blocks of 1 • The second component contains log2#( 2 ) memory elements: corresponding to the state variables assigned to distinguish the blocks of 2 An n-state machine M can be decomposed into two independent components operating in parallel if and only if there exist two nontrivial closed partitions 1and 2 on the states of M such that 1. 2 = (0) • This decomposition requires a minimal number (log2n) of state variables if and only if log2#( 1) + log2#( 2) = log2n 14 Example Example: Machine M2 has seven closed partitions • Existence of 5 suggests that M2 can be realized as two component machines connected in series – Predecessor component: has two state variables, y1 and y2, assigned to distinguish the blocks of 5 -- hence are independent of y3 – Successor component: has a single variable y3, which distinguishes the states in the blocks of 5 Machine M2 Closed partitions 15 Example (Contd.) Example (contd.): Maximal reduction in dependency of state variables would be achieved if we could find three two-block closed partitions whose product is zero • However, only two two-block partitions can be found: 1 and 2 • Hence, we must select s.t. 1. 2 . = (0) – = {A,D,G,H; C,D,E,F} Machine M2 Closed partitions 16 Example (Contd.) Example (contd.): Assigning y1 to distinguish the blocks of 1, y2 for 2, and y3 for Machine M2 Logic Excitation and output table Y1 x Logic Logic Y3 Logic Y2 z Y1 = x’y1’ Y2 = x’y2 + xy2’ Y3 = xy3 + x’y1’y2y3’ + y1’y2’y3 + y1y2y3 + x’y1y2’y3’ z = y1’y2’y3 17 Schematic diagram Lattice of Closed Partitions Theorem: Product 1. 2 and sum 1+ 2 of two closed partitions on the set of states of M are also closed Proof: Let B be an arbitrary block of 1. 2. Since B is the intersection of some block B1 of 1and B2 of 2, then B is contained in both B1 and B2. Since 1 and 2 are closed, the Ik-successor of B is also contained within some block IkB1 of1and some block IkB2 of 2, where IkBi is the Ik-successor of Bi. Hence, IkB is contained within intersection IkB1.IkB2. However, IkB1.IkB2 is contained in a block of 1. 2. Hence, IkB is contained 1 2 1 2 in a block of . . Therefore, . is closed. This theorem implies that, to each pair of closed partitions 1and 2, there corresponds a least upper bound, 1+ 2 , and a greatest lower bound, 1. 2 18 Construction of -lattice Example: Machine M3 Basic partitions B AB; C; D; E; F C ABCF; DE ABCF; DE D (I) (I) (I) E (I) (I) (I) ABCF; DE F ABCF; DE ABCF; DE ABCF; DE (I) A B C (I) 4 0 = 1 = = = = = 2 2 3 3 4 1 5 (0) -lattice D A; EF; B; C; D E (0) { A,B; C; D; E; F } { A,B,C,F; D,E } { A; B; C; D; E,F } { A,B; C; D; E,F } (I) 19 Reduction of the Output Dependency Example: Machine M4 Closed partition = {A,B;C,D} • Looking for a partition s.t. . = (0) • a = {A,C;B,D} • b = {A,D;B,C} Two possible assignments Y1 = x’y1 + xy1’ Y2 = x’y2’ + y1’y2’ + xy1y2 z = x’y1’y2’ + x’y1y2 + xy1’y2 + xy1y2’ NAND-NAND CMOS: 64 transistors Y1 = x’y1 + xy1’ Y2 = x’y2’ + xy1’y2 + y1y2’ z = x’y2’ + xy2 NAND-NAND CMOS: 40 transistors 20 Output-consistent Partition A partition o on the states of a machine M is said to be output-consistent if, for every block of o and every input symbol, all the states contained in the block have the same output symbols Example: o = b = {A,D;B,C} is an output consistent partition of machine M4 Machine M4 21 Output-consistent Partition (Contd.) Let M have n states to which we assign k variables, where k = log2n. Let r = log2#(o) variables be assigned to the blocks of M’s outputconsistent partition o. Because o is output-consistent, the output symbols associated with the blocks of ocan be computed from these r variables, independently of the remaining k-r variables which are assigned to the states in the blocks of o. • The existence of an output-consistent partition o on the states of a sequential machine M implies that there exists an assignment for M such that the outputs depend, at most, on the external inputs and on the variables assigned to the blocks of o • Generalization: Let = { 1, 2 , …,k } be the set consisting of partitions induced by state variables y1, y2, …, yk. Let o1, o2, …, om be outputconsistent partitions induced by outputs z1, z2, …, zm. If, for some subset Q of , then zi is a function of external input x and the variables assigned to the partitions contained in Q 22 Example Example: In machine M4, o =o1= {A,D;B,C} • Since y2 in assignment has been assigned to o : output z depends only on this variable and is independent of y1 • In assignment , we obtained a reduction in the dependency of y1 and (simultaneously) of output z: possible since . o = (0) • However, if . o = (0), but log2#( ) + log2#(o) > log2n : the assignment is not a minimal one – E.g., if = {A,B;C,D;E,F;G,H} while o = {A,C;B,E;D,G;F,H}: then .o= (0), but log24 + log24 = 4 instead of the minimal 3 Machine M4 23 Input Dependence and Autonomous Clocks A partition i on the states of a machine M is said to be input-consistent if, for every state Si of M and all input symbols, I1, I2, …, Ip, the next states, I1Si, I2Si, …, IpSi, are in the same block of i Example: Consider machine M5 • State A implies the identification of states C and D • Similarly, C implies the identification of E and F and E implies the identification of A and B • Thus, smallest input-consistent partition: i = {A,B;C,D;E,F} • Clearly, any partition that contains i is also input-consistent Machine M5 24 Input Independence (Contd.) Since the successor relationships among the blocks of i are independent: the log2#(i) variables assigned to distinguish the blocks of i are input-independent • If, in addition to i, machine M possesses a closed partition such that >= i, then: for a given state Sj and every input symbol I1, I2, …, Ip in I, the next states I1Sj, I2Sj, …, IpSj, must be in the same block of i and, hence, in the same block of as well – Consequently, for a given initial state, the block of in which the state of M is contained after any finite input sequence: depends only on the initial block and on the length of the sequence • The existence of a closed partition and a nontrivial input-consistent partition i on the states of M, where >= i : necessary and sufficient condition for the existence of an assignment for M such that the log2#( ) variables assigned to the blocks of are independent of the input and of the remaining state variables Autonomous clock: a component machine whose output at any time is independent of the input • Maximal autonomous clock: smallest closed partition when M possesses an input-consistent partition i and several closed partitions, each greater than or equal to i 25 Example Example: For machine M5, input-consistent partition i = {A,B;C,D;E,F} is closed • Output-consistent partition o= {A,C,E;B,D,F} • Since = i and .o= (0): the following assignment and equations result Machine M5 26 Example (Contd.) Realization of machine M5: Y1 Autonomous clock Y2 Y3 x 27 z Autonomous Clock If M is a strongly connected machine, then any component induced by a closed partition on the states of M is also strongly connected • Hence, the autonomous clock of a strongly connected machine is also strongly connected: furthermore, it is a periodic machine. • To find period p of the autonomous clock: suppose that machine M possesses a closed partition such that ≥ i • The clock has #( ) states and, therefore, during #( )+1 time units: it must pass at least twice through one of the states • Thus, period p is equal to or smaller than #( ) Example: Maximal autonomous clock of machine M5 is determined from partition = i ={A,B;C,D;E,F} = { ; ; } Autonomous clock with p = 3 28 Covers, and Generating Closed Partitions through State Splitting Covers: Consider machine M6 • No closed partition exists for this machine: it appears that it cannot be decomposed in any manner • Consider next machine M6’: it is reducible to machine M6 since states C′ and C′′ are equivalent • Machine M6’ possesses closed partition = {A,C′;B,C′′}: if we choose partition = {A,B;C′,C′′} such that . = (0), and if we assign y1 and y2 to the blocks of and , respectively, the following equations result: • Corresponding cover: {A,C;B,C} Y1 = x Y2 = xy2 + x’y1y2’ z = xy1’y2’ Machine M6 Machine M6’ 29 Cover A collection of subsets, whose set union is S, such that no subset is included in another subset in the collection, is referred to as a cover on set S • The subsets are called the blocks of • Cover on the set of states of a machine M is said to be closed if, for every two states Si and Sj which are in the same block of and any input symbol Ik in I, states IkSi and IkSj are in a common block of • #() and () denote, respectively, the number of blocks in and the number of elements in the largest block of Example: Covers {A,C;B,C} and {A,B;A,C;B,C} on the set of states of M6 are closed • If P = (AC) and Q = (BC): we get the table below • Since the predecessor machine in the serial connection of M6 distinguishes the blocks of : the successor relationships of the table define the state transitions of the predecessor component 30 Implication Graph Implication graph: a directed graph with vertices representing subsets of the set of states of machine M • Each subset consists of states to be identified in the state table: or which are implied by previously identified subsets of states • Closed implication graph: subgraph of an implication graph s.t. (1) for every vertex in the subgraph, all outgoing arcs and their terminating vertices also belong to the subgraph, and (2) every state of M is represented by at least one vertex • Closed graph: constitutes a closed cover Example: Implication graph of M6 0 (A,B) 1 0 (A,C) 0 Closed graph (B,C) 1 31 General Procedure Augmenting machine M into an equivalent machine M’ which possesses one or more closed partitions: 1. Construct the implication graph of given machine M 2. From the implication graph: choose a closed subgraph with a minimal number of vertices. If any state in Si is represented by more than one vertex, relabel Si in the first vertex Si’, in the second vertex Si’’, and so on 3. For each Si which has been replaced with Si’, Si’’, …: split the corresponding state in M’s state table 4. Modify the entries of the new state table by inserting the necessary primes: an entry Sp in row Si, column Ik, is changed to Sp’ if Si is represented by some vertex (Si,Sj) and the Ik-successor vertex is (Sp’,Sq) Example: Only C appears in two vertices, thus is split into C’ and C’’ = {A,C’;B,C’’} 0 (A,B) 1 0 (A,C) 0 1 Closed graph (B,C) 32 Application of State Splitting to Parallel Decomposition Example: Machine M7 and its -lattice o = {A,E,F;B,D;C,G} i = {A,E,F;B,C,D,G} = 4 (I) ( I ) = { A,B,C,D,E,F,G } = 2 = 3 = 4 = 5 = 6 = ( 0 )= 1 1 4 3 5 2 6 { A,C,D,E; B,F,G } { A,G; B,E; C,D,F } { A,B,E,G; C,D,F } { A,E,F; B,C,D,G } { A,E; B,G; C,D; F } { A; B; C,D; E; F; G } { A; B; C; D; E; F; G } (0) 33 Example (Contd.) Example (contd.): Implication graph and augmented machine M7’ • Closed cover: = {A,G;B,E;C,F;D,F} 0 0 1 (C,F) 0 1 1 0 (A,B) (A,G) Closed graph (D,F) 1 1 (B,E) 0 = {A,G;B,E;C,F’;D,F’’} 4' = {A,E,F’,F’’;B,C,D,G} 3' = {A,B,E,G;C,D,F’,F’’} o' = {A,E,F’,F’’;B,D;C,G} i' = 4' 34 Example (Contd.) Example (contd.): 1. . 4' = (0): parallel decomposition possible 2. Component machine corresponding to 4': consists of y1 only – autonomous clock since 4' = i' 3. Since each block of 3' contains exactly two blocks of : assign y2 to the blocks of 3'-- making it independent of y3 4. Variable y3 must be assigned to the blocks of a partition , s.t. 3'. = : partition = {A,C,F’,G;B,D,E,F’’} satisfies this condition 5. . 4' = {A,F’;B,D;C,G;E,F’’} is smaller than o': z a function of y1 and y3 Autonomous clock Y1 y1 x Logic Logic Y2 y2 Logic Y3 z y3 (b) Schematic diagram. 35 Information Flow in Sequential Machines Example: Machine M8 has two closed partitions 1 = {A,B,C;D,E,F} 2 = {A,E;B,F;C,D} where 1. 2= (0) Y1 = x1’y1 + x1y1’ = f1(x1,y1) Y2 = x2 + x1y2’ + x1y3 + x1’y2y3’ = f2(x1,x2,y2,y3) Y3 = x1’x2’y2y3’ + x2y2’ + x1x2’y2y3 = f3(x1,x2,y2,y3) NAND-NAND CMOS: 60 transistors Y1 = x1’y1 + x1y1’ = f1(x1,y1) Y2 = x2 + x1’y3 + x1y3’ = f2(x1,x2,y3) Y3 = x2y2 + x1x2’y2’ = f3(x1,x2,y2) NAND-NAND CMOS: 36 40 transistors Partition Pairs Example (contd.): Machine M8 Y1 = x1’y1 + x1y1’ = f1(x1,y1) Y2 = x2 + x1’y3 + x1y3’ = f2(x1,x2,y3) Y3 = x2y2 + x1x2’y2’ = f3(x1,x2,y2) • • • • • y1 induces: 1= {A,B,C;D,E,F} y2 induces: (y2) = {A,E;B,C,D,F} y3 induces: (y3) = {A,C,D,E;B,F} Successors of blocks of (y2): contained in (y3) Successors of blocks of (y3): contained in (y2) 37 Partition Pairs (Contd.) Partition pair ( , ') on the states of a sequential machine M is an ordered pair of partitions s.t., if Si and Sj are in the same block of , then for every input symbol Ik in I, IkSi and IkSj are in the same block of ' Example (contd.): Partition pairs on the states of M8: (1, 1') = ({A,B,C;D,E,F},{A,B,C;D,E,F}) ( 1, 1') = ({A,C,D,E;B,F},{A,E;B,C,D,F}) ( 2, 2') = ({A,E;B,C,D,F},{A,C,D,E;B,F}) Example: ( 3, 3') = ({A,D;B;C,E;F},{A,E;B,D;C,F}) is a partition pair on M8: hence so are the following: ({A,D;B;C;E;F},{A,E;B,D;C,F}) ({A,D;B;C,E;F},{A,E;B,C,D,F}) 38 Partial Ordering on Partition Pairs If ( 1, 1') and ( 2, 2') are partition pairs: then ( 1, 1') >= ( 2, 2)' if and only if 1>= 2 and 1'>= 2' • If ( 1, 1') and ( 2, 2') are partition pairs on the states of a machine M: then ( 1. 2 , 1.' 2') and ( 1+ 2 , 1'+ 2') are also partition pairs on its states • They define the glb and lub, respectively, of the given partition pairs Mm pair: Let ' be a partition on the set of states of M • Define a partition M( ') such that M( ') =i , where the sum is over all i s.t. • • • • (i , ') is a partition pair Similarly, define a partition m( ) = i,' where the product is over all i 's.t. ( ,i ') is a partition pair A partition pair ( , ') is said to be an Mm pair if and only if = M( ') and '= m( ) Since the lub of two partition pairs is a partition pair: (M( '), ') is a partition pair – M( ') is the largest partition the successors of whose blocks are contained in the blocks of ' Since the glb of two partition pairs is a partition pair: ( ,m( )) is a partition pair – m( ) is the smallest partition containing all the successors of the 39 blocks of Mm Pairs M and m partitions possess the following properties: • If is a partition on machine M, then – m{M( )] <= – M[m( )] >= – M{m[M( )]} = M( ) – m{M[m( )]} = m( ) • Thus, for every partition on the states of M, {M( ),m[M( )]} and {M[m( )],m( )} are Mm pairs on its states • If (, ') is an Mm pair: then is the largest partition from which we can determine ', and ' is the smallest partition which contains the successor blocks implied by – Thus, by enlarging 'or by refining : we can obtain other partition pairs – Hence, corresponding to every partition pair ( , '): there exists an Mm pair (, ') s.t. >= and '<= ' » Clearly, the set of all Mm pairs completely characterizes the set of all partition pairs on the states of M: since any partition pair can be generated from the corresponding Mm pair 40 Information-flow Inequalities Theorem: Let variables y1, y2, …, yk be assigned to the states of machine M, and let (yi) be the partition induced by variable yi, where 1 <= i <= k. If the next-state variable Yi can be computed from the external inputs and a subset Pi of variables, then (yj) <= M[ (yi)] where the product is taken over all (yj), s.t. yj is contained in subset Pi Conversely, a sufficient condition for the existence of an assignment, in which a next-state variable Yi depends only on the external inputs and the value of a corresponding subset Pi of state variables, is the existence of a partition pair (, (yi)) on M s.t., for each i ' (yj) <= M[ (yi)] where the product is taken over all (yj), s.t. yj is in Pi 41 Example Example: For machine M8: 1.' 1.' 2'= (0) where 1= 1,' 1'= 2 and 2'= 1 • Hence, a three-variable assignment exists s.t. Y1 (assigned to 1') is self-dependent • Y2 and Y3 (assigned to 1' and 2)' can be computed from y3 and y2 (1, 1)' = ({A,B,C;D,E,F},{A,B,C;D,E,F}) ( 1, 1') = ({A,C,D,E;B,F},{A,E;B,C,D,F}) ( 2, 2') = ({A,E;B,C,D,F},{A,C,D,E;B,F}) Y1 = x1’y1 + x1y1’ = f1(x1,y1) Y2 = x2 + x1’y3 + x1y3’ = f2(x1,x2,y3) Y3 = x2y2 + x1x2’y2’ = f3(x1,x2,y2) 42 Computing the Mm Pairs Let a and b be two arbitrary states of machine M and let ab be the partition that includes a block (ab) and leaves all other states in separate blocks • Then m(ab) is the smallest partition containing the blocks implied by the identification of (ab) • Clearly, (ab,m(ab)) is a partition pair Any partition can be expressed as a sum =ab, where the sum is taken over all ab s.t.ab<= • Since the sum of partition pairs is also a partition pair: (ab, m(ab)) is a partition pair • Hence, if is the M-partition: ( , m(ab)) is an Mm pair 43 Computing the Mm Pairs (Contd.) Basic approach: • First, find set {m(ab)} for all distinct a and b – This requires n(n-1)/2 computations • Next, find all possible sums of these partitions – This generates all m-partitions • The M-partition = M( ') corresponding to every m-partition ' is given by: =ab where the sum is taken over allab s.t. m(ab) <= ' • This approach generates the sum of all ab which satisfy the requirement that (ab, ') is a partition pair 44 Example Example: Computing Mm pairs for machine M9 m(AB) = {A,C,E;B,D} = 1' m(AC) = m(DE) = {A,C,D;B,E} = 2' m(AD) = m(CE) = {A;B;C,E;D} = 3' m(AE) = m(CD) = (I) m(BC) = m(BE) = {A;B,C,D,E} = 4' m(BD) = {A,C;B,D;E} = 5' M( 1') =AB+AD+ CE+BD= {A,B,D;C,E} = 1 M( 2') =AC+ DE = {A,C;B;D,E} = 2 M( 3') =AD+ CE = {A,D;B;C,E} = 3 M( 4') =BC+ BE+AD+CE= {A,D;B,C,E} = 4 M( 5') =BD= {A;B,D;C;E} = 5 Mm pairs: ( (I), (I)), ( 1, 1'), ( 2, 2'), ( 3, 3'), ( 4, 4'), ( 5, 5'), ( (0), (0)) Two closed partitions can be generated by enlarging the m-partition and refining the M-partition of the Mm pair ( 3, 3'): 1 = {A,D;B;C,E} 2 = {A;B;C,E;D} 45 State Assignments based on Partition Pairs Example (contd.): state assignment with reduced variable dependencies • For M9: find three partitions, 1, 2 , 3, of two blocks each, s.t. 1. 2. 3 = (0) • For each i: determine the corresponding M(i) • To each partition i: assign a state variable yi • M(i) is then the partition containing the smallest amount of information from which we can compute the value of yi assigned to the block of i which contains the next state of the machine • If a variable yi assigned to i is to depend on just one other variable assigned to the blocks of j: then j<= M(i) and M(i) can have at most two blocks • As an initial selection: let1= 1' – Since M( 1') consists of two blocks: we can select 2 = M( 1') – Then 3 = 2'can be selected (M(1),1) = ({A,B,D;C,E},{A,C,E;B,D}) (M( 2 ), 2) = ({A,D;B;C,E},{A,B,D;C,E}) (M( 3), 3) = ({A,C;B;D,E},{A,C,D;B,E}) • Note that 2 is not an m-partition, but since 2 > 3': M( 2 ) >= M( 3' ) 46 Example (Contd.) Example (contd.): Y1 depends only on y2, since 2 provides all the information which Y1 requires as specified by M(1) • To determine the dependencies of Y2 and Y3: check to see if there exists a partition i <= M( 2) or j <= M( 3 ) • Since there are no such partitions: check if we can form a product of two partitions s.t. i. j<= M( 2 ) or p. q <= M( 3 ) – This can be accomplished since x2 x1 2. 3 < M( 2) y1 Y1 1. 3 < M( 3) (M( 1), 1) • Hence, Y1 = f1(x1,x2,y2) Y2 = f2(x1,x2,y2,y3) y2 Y2 (M( 2), 2) Y3 = f3(x1,x2,y1,y3) (M( 3), 3) Y3 Schematic diagram y3 47 Serial Decomposition Theorem: Let M be realizable as a serial loop-free connection of m components C1, C2, …, Cm; then there exists a set of m closed partitions {1, 2,…, m} s.t.1>= 2 >= … >=m and m = (0). Conversely, such a set of closed partitions is a sufficient condition for the existence of a serial decomposition in which Ci is a predecessor of Cj if and only if i >=j I C1 C2 C3 Cm (a) Cascaded chain. (The double arrows indicate a transfer of information from all predecessor stages.) 48 Example Example: Consider M10 • It has three closed partitions and an output-consistent partition: 0 = (0) a = {A,B,G,H;C,D,E,F} b = {A,B;C,D;E,F;G,H} 0 = {A,C,E,G;B,D,F,H} • Since a >b > 0: the machine is decomposable into three components connected in series s.t. each component is a two-state machine • Machine Ca, derived from a, consists of #(a) = 2 states – Hence, it can be realized with state variable ya • Component Cb is derived from a partition 1: s.t. a. 1 = b 1= {A,B,C,D;E,F,G,H} • Since #( 1) =2: Cb consists of a single variable yb • Variables ya and yb are assigned to the blocks of b: hence, are independent of the remaining variable that is assigned to the blocks of some partition 2, s.t. 2.b = (0) 2 = 0 = {A,C,E,G;B,D,F,H} 49 Example (Contd.) Example (contd.): A state assignment based on the above partitions will yield the following functional relationships: Ya = fa(x,ya) Yb = fb(x,ya,yb) Yc = fc(x,ya,yb,yc) z = f0(yc) Schematic diagram and -lattice: (I) x a fa Ya fb Yb fc Yc f0 z b Ca Cb (a) Serial decomposition. Cc (0) (b) -lattice. 50 Example (Contd.) Example (contd.): State table for Ca: • Obtained from the implication graph of a – States P = (ABGH), Q = (CDEF); output = ya • Inputs to Cb are x and ya, and its state-dependent output = yb – States = (ABCD), = (EFGH) of 1 • Cb can be reduced to a machine with only two input symbols, since the next-state entries in three columns of Cb are identical – Define i1 = x’ + ya, i2 = xya’ • Inputs to Cc are x, ya, and yb, and its output = z – States: = (ACEG), = (BDFH) of 2 51 Parallel Decomposition Example: Consider machine M11. It has following closed partitions: a = {A,B;C,D;E,G;F,H} b = {A,H;B,F;C,G;D,E} c = {A,B,F,H;C,D,E,G} • Since a.b = (0): a parallel decomposition of M11 is possible – However, since log2#(a) + log2#(b) = 4: it requires four variables (I) Machine Ma Machine M11 c Ma b a x z = z1 z2 Mb Machine Mb (0) -lattice z1 z2 Schematic diagram 52 Example (Contd.) Example (contd.): Seeking another decomposition that requires three variables • Determine whether Ma and Mb can each be serially decomposed s.t. both have identical independent components: – Such a component can be factored out to serve as a common predecessor for both Ma and Mb – Largest component that can be factored out: smallest closed partition greater thana and b, i.e., a+b c =a +b = {A,B,F,H;C,D,E,G} Md x Mc Logic Me z = yc zd ze 53 Decompositions with Specified Components Example: Consider machine M12 • Determine if M12 can be serially decomposed s.t. C1 is the predecessor component • Generate composite machine of M12 and C1 • When C1 is in P: composite machine can be in AP or BP and M12 in A or B • Cover: = {A,B;D,E;B,F;C,D} • Specifying the successor component: = {A,B’;D’,E;B”,F;C,D”} • Successor component distinguishes the blocks of a partition s.t.: . {A,B’;D’,E;B”,F;C,D”} = (0) • A possible is: = {A,D’,D”,F;B’,B”,E,C} Machine M12 Component C1 Composite machine 54 Synthesis of Multiple Machines Generalized decomposition problem: given two reduced machines M1 and M2 with the same input alphabet I, obtain the following decomposition M1S Z1 Mc I Z2 M2S Example: Machines M1, M2 and their implication graphs • Since the closed graphs are isomorphic: they are equivalent – They can serve as the predecessor component I2 I2 I1 I1 (R1R3) I2 (R2R4) (a) Machine M1. I1 I1 (S1S3) I2 (S2S4) (b) Machine M2. 55 Example (Contd.) Example (contd.): Graphs yield: 1 = {R1,R3;R2,R4} and 2 = {S1,S3;S2,S4} • Denote first (second) blocks of each partition by P (Q) • Common predecessor: • Procedure for finding equivalent implication graphs not systematic: depends on the selection of initial state identifications – Overcome limitation by using the composite machine 56 Decomposing the Composite Machine Example (contd.): Composite machine corresponding to M1 and M2 with initial states R1 and S1 given below • State-consistent partitions: R = {R1S1,R1S3;R2S2,R2S4;R3S3,R3S1;R4S4,R4S2} S = {R1S1,R3S1;R2S2,R4S2;R1S3,R3S3;R2S4,R4S4} » These partitions correspond to the zero partitions on the set of states of M1 and M2 » Thus, the implication graphs corresponding to R and S: equivalent to the state graphs of M1 and M2 » Hence, these partitions are closed w.r.t. the states of the composite machine 57 Example (Contd.) Example (contd.): Outputs Z1 and Z2 can be generated by a machine having three state variables and appropriate output logic, rather than by two separate machines having a total of four state variables • Consider the closed partitions: 1 = {R1S1,R2S2,R3S3,R4S4;R1S3,R2S4,R3S1,R4S2} 2 = {R1S1,R3S3;R2S2,R4S4;R1S3,R3S1;R2S4,R4S2} • Since 1> 2, a cascade realization results: C1, C2, C3 are two-state machines Z1 Composite machine (8 states) I Z2 (a) Simple realization. Z1 I C1 C2 C3 Z2 (b) Decomposition of the composite machine. 58 Example (Contd.) Example (contd.): Determine if a common predecessor component exists for M1 and M2: if several such components exist, how to find the largest one • A common component Mc exists if and only if we can find a closed partition s.t. C> R and C > S C= R + S = {R1S1,R1S3,R3S1,R3S3;R2S2,R2S4,R4S2,R4S4} • Successor machines M1S, M2S (each consisting of one state variable): obtained by partitions 1Sand 2S s.t. C . 1S = R and C . 2S = S • Possible partitions: 1S = {R1S1,R1S3,R2S2,R2S4;R3S1,R3S3,R4S2,R4S4} 2S= {R1S1,R3S1,R2S2,R4S2;R1S3,R3S3,R2S4,R4S4} • Lattice of all closed partitions: (I) C 1 R S 2 59 (0)