Concepts of Sets, Cube,Cube Calculus

advertisement
Cube Calculus
Overview Of This Presentation
• A Brief Review of Cube Calculus.
• Summary of Cube Calculus operations.
• Positional notation concept for Cube
Calculus operations.
• Summary of Positional Notation concept for
Cube Calculus operations.
• Why we need hardware realization of Cube
Calculus?
Brief Review Of Cube
Calculus
Representation of cubes in
(Binary logic)
• For the function f(a,b,c,d)= A + B =
a’bc’+ac’d we have two cubes (a’bc’
and ac’d)  Cube is a Product of
literals.
• In binary logic, they can be represented
as A = a{0} .b{1} .c{0} .d{0,1} and
B = a{1} .b{0,1} .c{0} .d{1}
General Representation of cubes
in (n valued logic)
• A = x1s1A. x2s2A………xnsnA
• B = x1s1B. x2s2B……….xnsnB
• where x1s1A …..xnsnA.,x1s1B, .…xnsnB are literals.
• n is the number of variables.
• siA, siB are true sets of literal xi .
• An example of a ternary logic is:
A = x1{0}. x2{0,2}. x3{1}. x4{1,2}
B = x1{1}. x2{1}. x3{2} . x4{0,1}
Comparison of Notations for
ternary logic
Set-theoretical: A = x1{0}. x2{0,2}. x3{1}. x4{1,2}
Positional: 100-101-010-011
Cube Calculus
Operations
Cube Calculus Operations
The cube calculus operations are classified as :
• Simple Combinational operations (e.g. Intersection,
SuperCube ).
• Complex Combinational operations (e.g. Prime,
Consensus, Cofactor).
• Sequential operations (e.g. Crosslink, Sharp(nondisjoint), Sharp (disjoint)).
• Let us discuss these operations..
Simple Combinational
Cube Operations
Simple Combinational Operations
• Defined as a SINGLE set operation on all
pairs of true sets and produces one resultant
cube.
• Intersection and Supercube are simple
combinational cube operations.
• These operations are fast in software and
very fast when realized in hardware.
• Have various applications in two-level
synthesis, set covering, graph coloring and
all kinds of basic algorithms
Example Of
Binary Function
Kmap representation of
Intersection
• B= ab
• A= bc’
• Set theory :
B = ab = abx =
a{1}b{1}c{0,1}
• A= bc’ = xbc’ =
a{0,1}b{1}c{0}
• B  A=a{1}{0,1}b{1}{1}
c{0,1} {0} = abc’
Kmap representation of
Intersection
A
B
• Fig 1: Input Cubes A
and B to be
Intersected. Here
A = x2*x3 B = x1*x2
• Fig 2:Resultant Cube
C=A B=
x1*x2 *x3
Kmap representation of
Supercube
• A and B has 3
variables.
• A = ab
• B = bc’
• In set theory A= abx
B=xbc’
• AB=b
K-map representation of
Super cube
• Input Cubes A and B
to be supercubed.
A=x1’x2’x4
B= x1x3x4
• Resultant Cube
C=A  B = x4
Supercube has applications in
SOP and ESOP minimization to
find primes or product terms for
best covers.
Examples Of
Cube Operations for
Multi-Valued
Functions
K-map representation of
Supercube
)
• For 4 valued input
logic.
• Input Cubes A and B
to be supercubed.
A=a01b1. B=a12b2
• Resultant Cube
C=A  B = a012b12
K-map representation of
Intersection
• For 4 valued input
logic.
• Input Cubes A and B
for Intersection.
A=a12b12. B=a2b012
• Resultant Cube
C=A  B = a2b12
You have to be familiar with
different notations and
representations when reading
research papers
Definitions of Simple
Combinational Cube
Operations
Intersection of two cubes :
Is the largest cube that is
included in both A and B.
Supercube of two cubes :
Is the smallest cube that
includes both cubes.
You have to understand meaning of
operators when you create new algorithms
You have to understand mathematical formalism of operators
to realize them efficiently in software or hardware.
Simple Combinational Operation
• Intersection operation mathematically is
defined as
As B
As B
s
s
AB= x1 1 1 ……xn n n if siAsiB  
= 
otherwise.
• Union (supercube) operation mathematically is
defined as
As B
As B
s
s
A  B = x1 1 1 ……xn n n
Complex Combinational
Cube Operations
Complex combinational cube
operations
• They have two set operations and one set relation.
• All variables whose pair of true sets satisfy a relation are said to
be Special
Variables.
• Two set operations are called before(bef) and active(act),the
active set operation is applied on true sets of special variables and
before set operation to others
• All Combinational cube operations (Complex and Simple)
produce one resultant cube, all special variables taken at a time.
• The examples are prime operation, cofactor operation,
consensus operation.
Examples of Complex
Combinational Cube
Operations
Example Of
Binary Function
Example of prime operation
Notation of “prime”
operation on cubes A and B
•
•
•
•
A&B has 4binary variables
A=x1’x2x3x4
B=x1x3’
Step 1: Find intersection
operation(set relation) on
all true sets(siAsiB   )
• Step 2: If the set relation is
satisfied apply active set
operation(siA  siB ) else
before set operation( siA ).
Explanation of the Example
• Using set theory
B=x1{1} x2{0,1}x3{0}x4{0,1}
A=x1{0}x2{1}x3{1}x4{1}
Step 1.
Find if set relation (siAsiB   ) is satisfied or not .
 x2 and x4 are special variables.
Step 2.
As the given set relation is satisfied for the variables x2 and x4
to these variables active set operation
(siA  siB ) is applied
and to the others (x1 , x3 ) before set operation ( siA ) is applied
 A’B = x1{0}x3{1} = x1’x3
B = x1{1} x2{0,1} x3{0} x4{0,1}
A = x1{0} x2{1 } x3{1} x4{1}
----------------------------------------------------
A’B = x1{0} x2{0,1} x3{1} x4{0,1} = x1’x3
Example of another complex combinational operation: consensus
• A & B have 4 binary
variables
– A = x1x2x3’
– B = x1x2’
• Steps: find the set relation
siAsiB=.
• If satisfied then it is a special
variable.
• Active operation (siAsiB)
applied to special variables.
• And to remaining variables
(before variables) the set
operator siAsiB is applied
Explanation of consensus operation
• In set theory
A = x1{1}x2{1}x3{0}x4{0,1}
B = x1{1}x2{0}x3{0,1}x4{0,1}
• Applying the set relation siAsiB= on all the true set of
variables
 x2 is a special variable and to x2 active operation (siAsiB) is
applied
•
and to x1 ,x3 ,x4 before set operator (siAsiB ) is applied
 A * B = x1{1} x3{0} = x1x3’
A=
B=
x1{1} x2{1} x3{0} x4{0,1}
x1{1} x2{0} x3{0,1} x4{0,1}
----------------------------------------------------
A*B = x1{1} x2{0,1} x3{0} x4{0,1}
Use of consensus to prove tautology
YZ
YZ
00
WX
0
01
1
1 1
00
4
5
11
3
10
00
WX
2
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
7
6
01
01
12
4
13
15
14
11
11
8
9
11
10
10
10
Table of
all ones
Cube of
minterms
YZ
YZ
00
WX
YZ
0
00
WX
0
01
1
11
3
10
00
WX
01
1
11
3
10
2
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
00
2
4
00
5
7
6
01
01
4
5
7
6
12
4
01
13
15
14
11
11
12
4
13
15
14
8
11
10
8
10
9
11
10
9
11
10
10
Proving tautology
• By using consensus I combine step-by-step
larger and larger cubes of ones.
• Ultimately, the cube of ones that covers the
whole map is created.
• Thus the function is a tautology.
• The process of combining cubes can be
represented as a tree
The same Cube Calculus has dual meaning
when applied to cubes of zeros (maxterms)
It is called resolution and used in
automatic theorem proving to derive
empty clause = cube of all zeros
Use of consensus to derive empty clause
YZ
YZ
00
WX
01
0
11
1
3
10
00
WX
2
00
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
4
5
7
6
01
01
12
4
13
15
14
11
11
8
9
11
10
10
10
Cube of
maxterms
(zeros)
Table of
all zeros
YZ
YZ
00
WX
YZ
0
00
WX
0
01
1
11
3
10
00
WX
01
1
11
3
10
2
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
00
2
4
00
5
7
6
01
01
4
01
12
4
11
Cube
representing
empty clause
5
13
7
15
6
12
4
10
9
11
15
14
11
11
14
8
10
8
13
10
9
11
10
10
Proving non-satisfiability is deriving empty clause
• By using resolution operator (dual to consensus) I
combine step-by-step larger and larger cubes of zeros.
• Ultimately, the cube of zeros that covers the whole map
is created. This is empty clause.
• Thus the function is always zero.
• The process of combining cubes can be represented as a
tree.
• This is used in automatic theorem proving to prove that a
set of clauses is inconsistent
•Please do a complete example with all formulas applied in formal way
, step by step.
•What would be a program?
Example of cofactor operation
• A and B have 4 binary
variables.
– A = x1x2x3
– B= x1
• Steps: Find siAsiB
(If satisfied  special
variable)
• Apply U(Universal set(0,1))
for special variables
and
siAsiB for others
Explanation
• Set theory:
A = x1{1}x2{1}x3{1}x4{0,1}
B = x1{1}x2{0,1}x3{0,1}x4{0,1}
• Testing the relation siAsiB for the variables.
 x1 and x4 are special variables.
 Universal set operator applied to these
variables.
• To the rest of the variables the intersection
operation is applied.  The result is x2 x3.
• In K-map apply the intersection operator and
remove the special variables.
Example Of
Complex
Combinational
Operations for MultiValued Functions
K-map representation of Consensus
• A= X 01234 Y01
• B = X012 Y23
• A*B=
X 01234Y01*X012Y23
= X012 Y0123
Definitions of
Complex
Combinational Cube
Operations
General Description
of Consensus Cube
Operation
Complex combinational cube operation
• The consensus operation on cubes A and B is defined as
A  B when distance (A,B) = 0
A*B= 
when distance (A,B) > 1
A *basic B when distance (A,B) = 1
• where A *basic B =
A  s1B
A  sk-1B
A skB
s1
sk-1
sk
x1
….xk-1
xk 
A  sk+1B
A  snB
sk+1
sn
xk+1
…… xn
.
• Set relation: siAsiB =  , if satisfied, a special variable
• Active set operation : siAsiB
• Before set operation : siAsiB
Complex combinational cube operation
• Application of consensus theorem:
– For finding prime implicants (Used for
two-level logic minimization),
– three level,
– multilevel minimization,
– and machine learning.
Most applications are in few-level circuit
design, basic operations and automatic theorem
proving in AND/OR logic
General Description
of Cofactor Cube
Operation
Complex combinational cube operation
• Cofactor operation of two cubes A and B is
A| B = A |basic B when A  B  
=  otherwise
Set relation for cofactor operation = siA  siB
Active set operator = U (Universal set(0,1))
Before set operator = siA  siB
• Application:
– Used in recursive paradigms
– Used to create trees and DDs
– Used in functional decomposition.
General Description
of Prime Operation
Complex combinational cube
operations
• Prime operation of two cubes A and B is defined
as
A
A skAskB
A
s1
sk-1
sk+1
A’B=x1 …xk-1
xk
xk+1
….xnsnA
where set relation : siAsiB   is applied to true
and
if satisfied active set operation is applied
else before set operation is applied.
• Active set operation(act):siA  siB
• Before set operation(bef): siA
• Application: Used in ESOP minimization .
sets
Sequential Cube
Operations
Sequential cube operations
• They have three set operations and one set relation.
• All variables whose pair of true sets satisfy a relation are said to
be Special
Variables.
• Three set operations are called before(bef),active(act) and
after(aft)
• The active set operation is applied on true sets of special variable
• The before set operation to variables before the special variable
• The after set operation to variables after the special variable.
• Every special variable is taken once at a time.
Sequential cube operations
• All sequential
cube operations
produce ‘n’ resultant cubes, where
n is the number of special variables.
• The examples are:
sharp operation,
–cross link operation.
–
Examples of
Sequential Cube
Operations
Example Of
Binary Function
Let us consider the following example, where
the relation operation is SA  SB = 
b is a special variable
Cubes A and B are of 4 variables
Let us consider the following two cubes,
Cube A = x1 x2 x3’
=
x1{1}*x2{1}*x3{0} *x4{0,1}
Cube B = x1 x2’ =
x1{1}*x2{0}*x3{0,1} *x4{0,1}
These two variables (x1 and x3) are the so called
special variables , and we find them out by checking
the relation between every literal in both cubes for a
relation which is for the crosslink ( is the intersection
between these two variables is empty?).
Cube A
Cube B
x1{0}
x2{0,1}
||
||
x1{1}
x2{0,1}
x3{0} x4{0,1}
||
||
x3{1} x4{0,1}
We can see that the intersection is empty for only X1 and X3
therefore they are special variables.
Example of crosslink operation
• A and B has 4 binary
variables.
• A = x1’x3’ =
x1{0}x2{0,1}x3{0}x4{0,1
• B = x1x3 =
x1{1}x2{0,1}x3{1}x4{0,1}
• A c B = x1’x3’ + x1x3 =
x3’ + x1
Example
x1{0}x2{0,1} x3{0} x4{0,1}
x1{1}x2{0,1}x3{1} x4{0,1}
------------------------------------------
First check
relation
x1{} x2{0,1}x3{} x4{0,1}
active
active
before
x1{0} x2{0,1} x3{0} x4{0,1}
x1{1} x2{0,1}x3{1} x4{0,1}
x1{0} x2{0,1} x3{0} x4{0,1}
x1{1} x2{0,1} x3{1} x4{0,1}
------------------------------------------
x1
{0,1}
x2{0,1}x3{0}
x4
------------------------------------------
{0,1}
x1{1} x2{0,1} x3{0,1} x4{0,1}
after
• Cubes :
• x1{0}x2{0,1} x3{0}x4{0,1}
• x1{1}x2{0,1}x3{1} x4{0,1}
• Set Relation: siAsiB =  x1 and x3 are special variables..
•  Act: siAsiB, Bef: siA, Aft: siB
•  x1{0}  {1}x2{0,1} x3{0}x4{0,1} and
Since the order of
{1}
{0,1}
{0}
{1}
{0,1}
x1 x 2
x3  x4
argument cubes is
•  Two resultant cubes one for each special variable.
arbitrary, the result
 A B = x3’  x1
is not unique
Non-uniqueness of crosslink operation
One
variant of
crosslink
Another
variant of
crosslink
Complex crosslink example
• A,B,C,D are 4
cubes
• F = ABCD
• F = ABEF
• F = GH
Graphical Crosslink in Karnaugh Maps
Y
0
X
Y
1
0
0
X
0
X
0
1
0
Y
1
Y
1
2
0
3
0
X
1
0
1
2
3
0
1
1
0
Y
2
0
X
1
1
0
3
1
1
2
0
3
1
1
0
2
3
1
Y
0
X
1
Y
0
X
Y
0
0
X
0
2
3
0
1
1
2
1
3
1
1
0
1
0
2
1
0
3
Y
0
X
1
1
0
Y
1
0
0
X
2
1
3
1
0
1
2
3
0
1
Use of crosslink to derive minimum ESOP
YZ
YZ
00
WX
0
01
11
1
3
10
00
WX
2
00
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
4
5
7
6
01
01
12
4
13
15
14
11
11
8
9
11
10
10
10
Cube of
minterms
(ones)
Table of
all zeros
YZ
YZ
00
WX
YZ
0
00
WX
0
01
1
11
3
10
00
WX
01
1
11
3
10
2
01
11
10
0
1
3
2
4
5
7
6
12
4
13
15
14
8
9
11
10
00
00
2
4
00
5
7
6
01
01
4
5
7
6
12
4
01
13
15
14
11
11
12
4
13
15
14
8
9
11
10
10
11
10
8
10
9
11
10
a a=0
Use of Crosslink for ESOP
minimization
• Please write formulas for the previous
example
• The solution is not unique
• You have to use backtracking, heuristics, or
probabilistic methods to obtain good
solution
• Look-ahead methods.
• Start from several starting points.
Example of
nondisjoint
sharp
• A and B has 4 binary
variables.
• A=x3’=x1{0,1}x2{0,1}x3{0}x4{0,1}
• B = x2x4 x1{0,1}x2{1}x3{0,1}x4{1}
• Set relation:  (siAsiB)
– 1.x1{0,1} x2{0,1}n({1}} x3{0}x4{0,1}
Act: siA  siB, Bef: siA, Aft:
siA
– 2. x1{0,1}x2{0,1} x3{0} x4{0,1}n({1}}
Act: siA  siB, Bef: siA,
Aft: siA
• A # B= x2’x3’+ x3 ’x4’
Example of
disjoint sharp
• A and B has 4 binary variables.
• A=x3’=
x1{0,1}x2{0,1}x3{0}x4{0,1}
• B = x2x4
•
•
•
•
x1{0,1}x2{1}x3{0,1}x4{1}
Set relation:  (siAsiB)
x1{0,1}n{0,1}x2{0,1}n({1}}
x3{0}x4{0,1} Act: siA  ( siB),
Bef: siA, Aft: siA  siB
x1{0,1}n{0,1}x2{0,1}n{1} x3{0}n{0,1}
x4 {0,1}n({1}}
Act: siA  ( siB), Bef: siA,
Aft: siA  siB
• A #d B= x2’x3’+ x2x3 ’x4’
Example Of
Multi-Valued Function
Example of crosslink operation
• Let A=x0y1 and
B=x2y3
 X and Y are special
variables.
 x{0}U {2} y1 and
 x {2} y{1}U{3}
 Resultant
cubes:x02y1+x2y13
Definitions of
Sequential Cube
Operations
General Description
of Nondisjoint sharp
Operation
Sequential cube operations.
• The nondisjoint sharp operation on cubes A and B
A#B= A
when A  B  
=
when A  B
= A #basic B otherwise
s1A…x
sk-1Ax skA(skB)x
sk+1A….x snA for
k-1
k
k+1
n
• A #basic B = x1
such that k=1,….n for which the set relation is true.
• Set relation:  (siAsiB).
Active set operation: siA( siB),
After set operation: siA,
Before set operation: siA
• Used in tautology problem.
General Description
of disjoint sharp
operation
Sequential cube operations.
• The disjoint sharp operation on cubes A and B
A#dB= A
when A  B  
=
when A  B
= A #dbasic B otherwise
s1A…x
sk-1Ax skA(skB)x
sk+1A….x snA
k-1
k
k+1
n
• A #dbasic B = x1
for such that k=1,….n for which the set relation is true.
• Set relation:  (siAsiB)
Active set operation: siA( siB),
After set operation: siA siB ,
Before set operation: siA
• Used in tautology problem, conversions between SOP
and ESOP representations
General Description
of Crosslink
Operation
Sequential cube operations.
• Generalized equation of Crosslink operation:
B
B skAskB
A
A
s1
sk-1
sk+1
sn
x1 …xk-1
xk
xk+1
….xn
A B=
where k=1,….n for which the set relation is true.
•
•
•
•
•
Set relation: siAsiB = ,
Active set operation : siAsiB,
After set operation : siB,
Before set operation : siA.
Used in the minimization of logic function on
EXOR logic, Generalized Reed-Muller form.
Applications of
Crosslink
And we all know that the answer is that we are
looking for two cubes as shown down here,
so that our function is to be expressed in the ESOP
form as follows: f=ED
So the solution is to find these two cubes out (Cubes E, D).
Let us see how the crosslink operation does that!!!
Here is the K map for the original function again
Here if we think about it, we are looking for literals, in which the
intersection of these literals in both cubes is empty, that is
X1 and X3,
Because in the first
cube we have
Summary
of the
Cube Calculus
Operation
Summary of cube calculus operation
Positional
Notation
Positional notation
• Cube operations were broken into several set relations and
set operations. Easy to carry out by hand.
• To Process set operations efficiently by computers, we use
positional notation.
• Positional notation : Possible value of a variable is 0 or 1.
• P valued variable  a string of p bit
• Positional notation of binary literals:x’  x{0}  x10  10
x  x{1}  x01  01, don’t care x  x{0,1}  x11  11,
contradiction   x{}  x00  00
Set operations in positional notation
• Three basic set operations are executed using bit wise
operations in positional notation.
• Set intersection  bitwise AND
• Example A = ab B=bc’ A  B = abc’
• In positional notation: A = 01-01-11 B = 11-01-10
 B = (01/11)-(01/01)-(11/10)  01-01-10(abc’)
• Set union  bitwise OR
• Example A = ab B=bc’ A  B = b
• In positional notation: A = 01-01-11 B = 11-01-10
 B = (01/11)-(01/01)-(11/10)  11-01-11(b)
A
A
Positional notation
Set complement operation  bitwise NOT
Example: A= ab then A’ = (ab)’
In positional notation: A = 01-01  A’ = 10-10
Example of multi valued variable:A= x{0,1,2} B=x{0,2,3}
A  B = {0,2}, A  B = {0,1,2,3}
• In positional notation: A=1110, B=1011 A  B
=1110/1011=1010{0,2},A  B =1110/1011=1111{0,1,2,3
A’=0001{3}, B’=0100{1}
•
•
•
•
Set relations in positional notation
• 1  True and 0  False
• Set relation cannot be done by bit wise operation as it is a
function of all bits of operands.
• Set relation is broken into Partial relation and Relation
type. The partial relation determine whether or not the two
literals satisfy the relation locally. The relation type
determines the method of combining partial relations.
• Relation(A,B) = (a0’+b0’).(a1’+b1’)…………(an’-1+ bn’-1)
for crosslink operation  Partial relation ai’+bi’and
relation type is AND.
Table of partial relation
Summary of cube operations in
positional notation
Why We Need Cube
Calculus Hardware?
Why Using Cube Calculus Machine?
• The cube calculus Operations can be
implemented on general-purpose computers,
• But in general-purpose computers, the control is
located in the program that is stored in the
memory.
• This results in a considerable control overhead.
• Since the instructions have to be fetched from the
memory, if an algorithm contains loops, the same
instruction will be read many times.
That makes the memory interface the bottleneck of
these architectures.
The cube calculus operations involve nested loops,
it leads to poor performance on these generalpurpose computers.
Slides by
Nouraddin Alhagi
&
Syeda Mohsina
Lecture on Oct
8,2001
Download