Memories and State Machines
Download
Report
Transcript Memories and State Machines
Computer Organization and Design
Memories and State Machines
Montek Singh
Mon, April 13, 2011
Lecture 14
Memory, Latches, & Registers
1)
2)
3)
4)
Structured Logic Arrays
Memory Arrays
Transparent Latches
How to save a few bucks
at toll booths!
5) Edge-triggered Registers
6) Finite State Machines
Memory as a Lookup Table
A
B
AB Fn(A,B)
00
01
10
11
0
1
1
0
MUX
Logic
Fn(A,B)
A multiplexer to implement a lookup table:
Remember that, in theory, we can build any 1-output
combinational logic block with multiplexers
For an N-input function we need a 2N input multiplexer
BIG Multiplexers?
How about 10-input function? 20-input?
A Mux’s Guts
Decoder
A decoder
generates
all possible
product
terms for
a set of
inputs
A
B
0
A
B
1
A
B
2
A
B
3
I 00
I 01
I 10
I 11
Selector
Multiplexers
can be partitioned
into two sections.
A DECODER that
Y
identifies the
desired input,and
a SELECTOR that
enables that input
onto the output.
Hmmm, by sharing the decoder part of the logic MUXs
could be adapted to make lookup tables with any
number of outputs
A New Combinational Device
D1
D2
DECODER:
k SELECT inputs,
N=
DN
2k
DATA OUTPUTs.
Selected Dj HIGH;
all others LOW.
k
NOW, we are well on our way to building a general
purpose table-lookup device.
We can build a 2-dimensional ARRAY of decoders
and selectors as follows ...
Have I
mentioned
that HIGH
is a synonym
for ‘1’ and
LOW means
the same
as ‘0’
Shared Decoding Logic
There’s an
extra level
of inversion
that isn’t
necessary
in the logic.
However,
it reduces
the capacitive
load on the
module driving
this one.
A
B
Cin
Decoder
These are just
“DeMorgan”ized
NOR gates
0
1
2
3
4
5
6
7
S
This ROM stores 16 bits
in 8 words of 2 bits.
Cout
Configurable Selector
We can build a general purpose “table-lookup” device called a ReadOnly Memory (ROM), from which we can implement any truth table
and, thus, any combinational device
Made from PREWIRED connections , and CONFIGURABLE
connections that can be either connected
or not connected
Logic According to ROMs
ROMs ignore the structure of combinational functions
...
Size, layout, and design are independent of function
Any Truth table can be “programmed” by minor
reconfiguration:
Metal layer (masked ROMs)
Fuses (Field-programmable PROMs)
Charge on floating gates (EPROMs)
... etc.
Model: LOOK UP value of function in truth table...
Inputs: “ADDRESS” of a T.T. entry
ROM SIZE = # TT entries...
2N x #outputs
... for an N-input boolean function, size = __________
Analog Storage: Using Capacitors
We’ve chosen to encode information using voltages and we
know from physics that we can “store” a voltage as “charge”
on a capacitor
bit line
word
line
N-channel
FET serves
as an
access
switch
VREF
To write:
Drive bit line, turn on access fet,
force storage cap to new voltage
To read:
precharge bit line, turn on access fet,
detect (small) change in bit line voltage
Pros:
compact!
Cons:
it leaks! refresh
complex interface
reading a bit, destroys it
– (you have to rewrite the
value after each read)
it’s NOT a digital circuit
This storage circuit is the
basis for commodity DRAMs
A “Digital” Storage Element
It’s also easy to build a settable DIGITAL storage
element (called a latch) using a MUX and FEEDBACK:
Here’s a feedback path,
so it’s no longer a
combinational circuit.
A
G D QIN QOUT
0
Q
Y
D
B
G
S
1
“state” signal
appears as both
input and output
0
0
1
1
--0
1
0
1
---
0
1
0
1
Q stable
Q follows D
Looking Under the Covers
Let’s take a quick look at the equivalent circuit for our MUX
when the control is LOW (the feedback path is active)
0
D
1
Q
G=0
1
1
G=0
D
Q
Q
Advantages:
1) Maintains remembered state for as
This storage circuit is the
long as power is applied.
basis for commodity SRAMs
2) State is DIGITAL
Disadvantage:
1) Requires more transistors
Static D Latch
D Q
D Q
G
G
Positive latch
Negative latch
What is the
difference?
Q follows D
1
D
G
D
Q
Q stable
0
Q
G
“static” means latch will hold data (i.e., value of Q) while G is
inactive, however long that may be.
Latch Timing
Circuits with memory must follow some rules
Guarantee that inputs to sequential devices are valid and
stable during periods when they may influence state changes
This is assured with additional timing specifications
>tPULSE
G
D
>tSETUP >tHOLD
tPULSE (minimum pulse width): guarantee G is active for long enough
for latch to capture data
tSETUP (setup time): guarantee that D value has propagated through
feedback path before latch becomes opaque
tHOLD (hold time): guarantee latch is opaque and Q is stable before
allowing D to change again
Flakey Control Systems
Here’s a strategy
for saving 2
bucks the next
time you find
yourself at a toll
booth!
Flakey Control Systems
Here’s a strategy
for saving 2
bucks the next
time you find
yourself at a toll
booth!
Flakey Control Systems
Here’s a strategy
for saving 2
bucks the next
time you find
yourself at a toll
booth!
WARNING:
Professional Drivers Used!
DON’T try this
At home!
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
Escapement Strategy
The Solution:
Add two gates
and only open
one at a time.
(Psst… Don’t
tell the toll
folks)
Key Idea: At no time is there an
open path through both
gates…
Edge-triggered Flip Flop
D
D Q
D Q
G
G
master
slave
Q
D
D Q
Q
CLK
CLK
Logical “escapement”:
Double-gated toll booth built using logic gates
Observations:
only one latch “transparent” at any time:
master closed when slave is open (CLK is high)
slave closed when master is open (CLK is low)
no combinational path all the way through flip flop
Transitions mark
instants, not
intervals
Q only changes shortly after 0 1 transition of CLK, so flip
flop appears to be “triggered” by rising edge of CLK
Flip Flop Waveforms
D
D Q
D Q
G
G
master
slave
Q
D
D Q
CLK
CLK
D
CLK
Q
master closed
slave open
slave closed
master open
Q
Flip Flop Timing
D
D Q
CLK
Q
<tPD
Q
CLK
D
>tSETUP >tHOLD
tPD: maximum propagation delay, CLK Q
tSETUP: setup time
guarantee that D has propagated through feedback path before master
closes
tHOLD: hold time
guarantee master is closed and data is stable before allowing D
to change
Synchronous Systems
data
Flipflop
Combinational
logic
Flipflop
trailing
edge
Clock
leading
edge
On the leading edge of the clock, the input of a flipflop is
transferred to the output and held.
We must be sure the output of the combinational logic has
settled before the next leading clock edge.
Fetching Sequential Instructions
4
P
C
Read
Address
+
Instruction
flipflop
Instruction
Memory
How about branch?
Datapath for R-type Instructions
ALU Operation
Inst Bits 25-21
Inst Bits 20-16
Inst Bits 15-11
5
5
5
3
Read Reg. 1 (rs)
Read Reg. 2 (rt)
data 1
Write Reg. (rd)
data 2
32
Write Data
RegWrite
32
32
MUX Blocks
Select
2 1 0
Select
Input
3
0
1
2
3
4
5
6
7
In
8
Out
The select signal determines which of the inputs is connected
to the output
Out
Inside there is a 32 way MUX per bit
Read Reg 1
5
Register 0
Register 1
Register 2
Register 3
Data 1
32 to1 MUX
Register 4
Register ...
Register 30
LOT’S OF
CONNECTIONS!
Register 31
For EACH bit in the 32 bit register
And this is just one port!
Remember, there’s
data1 and data2 coming
out of the register file!
Our Register File has 3 ports
2 Read Ports
This is one reason we have only a
small number of registers
What’s another reason?
Inst Bits 25-21
Inst Bits 20-16
Inst Bits 15-11
5
5
5
Read Reg. 1
Read Reg. 2
data 1
Write Reg.
data 2
32
32
32
Write Data
REALLY LOTS OF CONNECTIONS!
1 Write Port
RegWrite
Finite State Machines
What is a State Machine?
Remember automata?
It is defined by the following:
Set of STATES
Set of INPUTS
Set of OUTPUTS
A mapping from (STATES, INPUTS) to …
… the next STATE and an OUTPUT
STATE represents memory!
Implementing an FSM
Outputs
Inputs
Function
(comb. logic)
State
(flipflops)
Clock
Summary
Regular Arrays can be used to implement arbitrary
logic functions
Memories
ROMs are HARDWIRED memories
RAMs include storage elements that are read-write
dynamic memory: compact, only reliable short-term
static memory: controlled use of positive feedback
For static storage:
Level-sensitive D-latches; edge-triggered flipflops
Timing issues: setup and hold times
Finite State Machines (FSM)
With just a register and some logic, we can implement a state
machine