Professional Documents
Culture Documents
OR + NOT = NOR
A 1-Bit Memory
Setting a 1-Bit Memory
Initializing a 1-Bit Memory
From S-R Latches to D-Latches
>
Worksheet!
A Random Access Memory (RAM)
1 2 address 00
bits
0 3 data
1 bits (out)
01
3 data
1 bits (in)
0 10
Read 11
1 Write
A Random Access Memory (RAM)
2 address 00
bits
3 data
bits (out)
01
3 data
bits (in)
1 1 0 10
Read 11
Write
A Random Access Memory (RAM)
1 2 address
bits
0 3 data
1
bits (out) 1
3 data
bits (in)
0
1 1 0
1 Read
Write
A Random Access Memory (RAM)
D D D
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
A Random Access Memory (RAM)
D D D
Decoder
2 address D Q D Q D Q
bits Latch Latch Latch
Strobe Strobe Strobe
D D D
D Q D Q D Q
3 data Latch Latch Latch 3 data
bits (in) Strobe Strobe Strobe bits (out)
D D D
D Q D Q D Q
Latch Latch Latch
Read Strobe Strobe Strobe
Write
D D D
D Q D Q D Q
Latch Latch Latch
Strobe Strobe Strobe
Small Memory, “Big”
Memory…
8 address
2 address bits
bits
3 data 3 data X data X data
bits (in) bits (out) bits (in) bits (out)
Read
Write Read
Write
X
A “Calculator”
Register 0 0
Register 1 0
Register 2 0
Register 3 0
A “Calculator”
Register 0 5
Register 1 0
Register 2 0
Register 3 0
A “Calculator”
Register 0 5
Register 1 0
Register 2 0
Register 3 0
A “Calculator”
Register 0 5
Register 1 0
Register 2 5
Register 3 0
A “Calculator”
Register 0 5
Register 1 0
Register 2 5
Register 3 0
A “Calculator”
Register 0 5
Register 1 0
Register 2 10
Register 3 0
A “Calculator”
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A “Calculator”
01 subtract
10 multiply
11 divide
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A “Calculator”
01 subtract
10 multiply
11 divide
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A “Calculator”
01 subtract
10 multiply
11 divide
Instruction Register
Register2=Register0+Register2 0010____
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A “Calculator”
01 subtract
10 multiply
11 divide
Instruction Register
Register2=Register0+Register2 001000__
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A “Calculator”
01 subtract
10 multiply
11 divide
Instruction Register
Register2=Register0+Register2 00100010
Register 0 5 00000101
Register 1 0 00000000
Register 2 10 00001010
Register 3 0 00000000
00 add A Computer!
01 subtract
10 multiply Memory Location
11 divide Binary Base 10
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000000
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000000
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000000
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000000
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000000
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000011
11111111 255
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000000
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000010
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
10001100 00000010 2
00000100 4
Register 0 00000010
Register 1 00000010
Register 2 00000001
Register 3 00000011
11111111 255
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
Register 1 00000010 data in out
Register 2 00000001
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
Register 1 00000010 data in out
Register 2 00000001 1
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
Register 1 00000010 data in out
Register 2 00000001 1
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
00000010 10001100
Register 1 data in out
Register 2 00000001 1
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
00000010 10001100
Register 1 data in out
Register 2 00000001
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
Register 1 00000010 data in out
Register 2 00000001
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
00000100 4
Register 0 00000010
8 bit 8 bit data
Register 1 00000010 data in out
Register 2 00000001
Register 3
00000011 Read
11111111 255
Write
Central Processing Unit (CPU) Memory
00 add A Computer!
01 subtract
10 multiply Memory Location
11 divide Binary Base 10
00110010 00000000 0
8 bit
00000010 00011010 00000001 1
Program Counter address
10001100 00000010 2
Register 2 00000001
Register 3
00000011 Read
11111111 255
Write
Central Processing Unit (CPU) Memory
The von Neumann “Architecture”
John von Neumann
Ripple-carry adder
Lots of latches!
Multiplier,
Registers, etc.
CPU
central processing unit
RAM
random access memory
Progra 00110010
m
Counte 00011010
rInstruction
Register
10001100
r0
Large but
r1
A few fast slow memory
registers
r2
…
r15
2006
Intel Core 2 Duo
3 GHz clock
64-bit processor
291 million transistors
65 nm wires
It doesn’t
look all that
fast to me!
A Short Aside…
CPU Main Memory Disk Drive
(RAM)