Combinational Circuits

advertisement
Combinational Circuit
2nd Presentation for CS 6260
Yan Gu
What is Combinational Circuits?
Combinational Circuits refers to a family of models of
computations.
in general terms, a combinational circuit is defined as a
device taking a number of inputs at one end and
producing a number of outputs at the other end.
features




combinational circuit is made up of a number of interconnected
components arranged in columns called stages. each
component can be viewed as a simple processor. It has a
constant fan-in----- that is , a constant number of input lines.
These lines carry data from the outside world or from a constant
number of components in a previous stage. each component
also has a constant fan-out-------- that is , a constant number of
components in a subsequent stage.
each component, having received its inputs, computes a certain
function of these inputs in one time unit and produces the result
as output.
No feedback: no component can be used more than once while
computing the circuit’s output for a given input
The Size of a combinational circuit is defined as the number of
components it uses. The depth is the number of stages in the
circuit----- that is , the maximum number of components on a
path from input to output. The Width of a circuit is the maximum
number of components in a stage. The product of the depth and
width provides an upper bound on the size of the circuit.
Depth and Width of a combinational circuit:
Input
.
.
.
Width
Depth
.
.
.
Output
An omega circuit
1
0
1
2
Row
3
4
5
6
7
2
3
0
1
2
3
4
5
6
7
An omega circuit, has n inputs and n outputs, it consists of logn columns
(stages), numbered 1,2, …,logn from left to right, with n rows (input and out lines)
per column, numbered 0,1,…, n-1 from top to bottom. There are n/2 processors per
stage, each with two input and two output lines .the processors in stage j are
connected to those in stage j+1, j=1,2,…,(logn)-1, by a perfect-shuffle
interconnection. Thus, output line I in stage j is connected to input line 2i in stage
j+1, for 1=<i=<(n/2)-1, and to input line 2i+1-n in stage j+1, for (n/2)=<i=<n-1. the
circuit has a depth of logn, a width of n/2, and a size of (n/2)logn. In this example
of figure, n=8
A butterfly circuit
0
1
2
3
0
1
2
3
Row
4
5
6
7
Butterfly circuit, has n inputs and n outputs, it consists of 1+logn columns, number
0,1,…,logn,whith n rows per column, numbered 0,1,…,n-1.let P(i,j) represent the processor in
row i and column j. for 0=<j<logn, P(i,j) is connected to P(i, j+1) and P(k,j+1), where the binary
representations of i and k Differ only in their jth least significant bit. The circuit has a depth of
1+logn, a width of n, and a size of n+nlogn. In the example of figure , n=8.
A merging circuit
2
1
4
2
7
3
8
4
1
5
3
6
5
7
6
8
a Merging circuit receives as input two sequences of data, each consisting of n/2
values sorted in nondecreasing order. It produces as output these two sequence
combined into a single sequence of n data values sorted in nondecreasing order.
One such circuit, known as the odd-even merging circuit, is shown for n =8. it
consists of logn stages, with at most n/2 processors per stage. each processor is a
comparator :it receives two values as input and produces the smaller of the two on
its top output line and larger on the bottom line. The circuit has a depth of logn, a
width of n/2, and a size of 1+(n/2)x((logn)-1).
An odd-even-merge sorting circuit
4
8
7
2
1
5
6
3
A sorting circuit receives as input a sequence of ndata values and produces as
output these same data values arranged in nondecreasing order.one such
circuit, know as the odd-even-merge sorting circuit is shown in the figure, it
consists of O(logn) stages, with at most n/2 processor per stage. Each
processor is a comparator . The circuit has a depth of O(logn), a width of O(n),
and a size of O(nlogn).
1
2
3
4
5
6
7
8
A (theoretically) efficient sorting circuit
Outputs (n)
1
Inputs (n)
4
2
1
4
2
4
8
1
3
7
3
2
3
8
5
6
7
3
6
5
2
3
4
4
2
1
1
5
5
6
6
8
7
5
6
7
7
8
8
A (theoretically) efficient sorting circuit consists of a complete tree with leave, 1+logn
levels. And a total of 2n-1 nodes. each nonleaf node is circuit made of comparators. The
circuit in a node is capable of receiving a set of m numbers, 2=<m=<n, and splitting it into
two sets: the node’s top child receives a set of m/2 numbers, each of which is smaller than or
equal to the m/2 numbers st to the node’s bottom child. in this way, if n numbers in arbitray
order are fed to the root as input, they emerge from the leaves sorted in nondecreasing
order from top to bottom .this circuit, referred to as the sorting-by-splitting circuit, has a
depth of O(logn), a width of O(n), and a size of O(nlogn)
A memory access unit for the RAM
U000
U001
U010
U011
U100
Processor
U101
U110
MAU
Memory
U111
In the RAM, there is one processor and a memory consisting of M locations .the model allows the
processor to specify an arbitrary memory location from which it wishes to read or to which it wishes to
write. The job of the MAU is to set up a path from the processor to the chosen memory location. a
MAU for the RAM can be implemented as a binary tree of switches. The tree’s root is connected to
the processor, and each of the leaves to a distinct memory location. The tree has 1+logM stages,
numbered 1, 2,..,1+logM, with the root at stage 1. the tree links are assumed to be two-way
communication lines, a switch can therefore send or receive a datum to or from one of its children and
parents. this MAU has depth O (logM) AND width O (M), since the tree has 2M -1 switches, its size is
O(M.)
A naive MAU for the PRAM
P1
P2
P3
1
2
3
1
2
3
4
1
2
3
1
2
3
4
1
2
3
4
U1
U2
1
2
3
U3
1
2
3
U4
MAU
Processor Tree
Memory Location Tree
M Memory Location
In PRAM, there are N processor and M memory locations. The model allows each processor to specify an
Arbitrary memory location to which it wishes to gain access. several processors are allowed to read from or
Write into the same memory location. a MAU for the PRAM creates paths from the processors to the memory
Location. Each processor is connected to the root of a binary tree with M leaves numbered 1 to M, and each
Memory location U is connected to a binary tree with N leaves numbered 1 to N. the MAU has a width of
O(N x M), a depth of O(logM + logN), and a size of O(N x M).
An efficient MAU for the PRAM
U1
P1
P2
U2
.
.
.
Sorting
Circuit
.
.
.
.
.
.
PN
N Processors
.
.
.
UM
MAU
Merging Circuit
M Memory Locations
An efficient MAU for the PRAM consists of a sorting circuit and a merging circuit, and
the merging Circuit receives tow sorted list to be merged: one is the output of sorting circuit, and
The second one is received from the shared memory. The merging circuit has no Output, take
place the data inside. The MAU has a width of O(m+n), a depth of O(logN)+O(log(M+N)),
a size of O(NlogN)+O((M+N)log(M+N)).
Sorting Circuits
A combinational circuit for solving the sorting problem is called
sorting circuit.There are two approaches can be used to design the
circuit for the sorting problem.
1.
2.
Sorting by merging
The sequence to be sorted is divided into two subsequences of equal length. Each
of the two subsequences is now sorted recursively, finally, the two sorted
subsequences are merged into one sorted sequence.
Sorting by splitting
the sequence to be sorted is divided into two subsequences of equal length such
that each element of the first subsequence is smaller that or equal to each
element of second subsequence .this splitting operation is the then applied to each
of the two subsequence recursively. when the recursion terminates, the sequence
is in sorted order.
Sorting by merging

The odd-even Merging circuit
Assume to merge tow sorted sequences{x1, x2, …, xm} and {y1, y2, …, ym},
to form a single sorted sequence {z1, z2, …, z2m}.
In general, a circuit for merging sequences{x1, x2, …, xm} and {y1, y2, …, ym} is
obtained as follows:
1. The odd-indexed elements of the two sequences{x1, x3, …, xm-1} and {y1, y3, …,
ym-1} are merged to produce a sorted sequence {u1, u2,…, um}.
2.
simultaneously, The even-indexed elements of the two sequences{x2, x4, …, xm}
and {y2, y4, …, ym} are merged to produce a sorted sequence {v1, v2,…, vm}.
3.
Finally, the output sequence {z1, z2,…, z2m} is obtained from z1=u1, z2m =vm,
z2i=min(ui+1, vi), and z2i+1=max(ui+1, vi), for i=1, 2, …, m-1
z1
u1
X1
X2
X3
(m/2,m/2)
Merging
circuit
…
v3
Y2
…
Ym-1
zm-1
um-1
zm
…
(m/2,m/2)
Merging
circuit
…
zm+1
zm+2
v2
Y1
Y3
…
…
v1
Xm
z3
u3
um
Xm-1
z2
u2
zm+3
…
…
vm-1
vm
z2m-1
z2m
ym
An (m, m) odd-even merging circuit consists of two(m/2, m/2)odd-even merging circuits,
Followed by a column of m-1 comparators, the two (m/2, m/2)merging circuit s are
obtained by applying the same construction recursively; that is:
1. Each (m/2, m/2)merging circuit views its input as two sequences , each indexed
from 1 to m/2.
2. Each (m/2, m/2)merging circuit uses two (m/4,m/4) merging circuits, followed by a
column of (m/2)-1 comparators
An (m, m) odd-even merging circuit has the depth of O(logm), the width of O(m), the
Size of O(mlogm)
Reference:
Parallel Computation (models and methods)
Selim G. AKL
Questions:
1.
2.
What the Size of a Combinational Circuit? What is the Width and the
Depth of a Combinational Circuit?
What is the an upper bound on the size of the circuit?
Answers:
1.
2.
The Size is defined as the number of components it uses;
The depth is the number of stages in the circuit----- that is , the
maximum number of components on a path from input to output.
The Width of a circuit is the maximum number of components in a
stage.
The product of the depth and width provides an upper bound on the
size of the circuit.
Download