Increaseing memory size and width
- It is not necessary
to construct
very large
memory circuits
- There are 2 techniques that can be
used to expand the
"size" of
a memory circuit:
- One technique can
increase the
width
(=
# bits in a row of memory)
of
memory circuits
- One technique can
increase the
size
(=
# rows in a memory
circuit) of
memory circuits
|
- You also can combine the
2 techniques to
increase
both the
width and the
size of
any memory circuit
|
Increasing the width of a
memory circuit
Previously, we
constructed a
memory that has
4 bits in
each row
(i.e.: width=4 bits):
(Actually, I used 4 bits
to keep the design simple)
Increasing the width of a
memory circuit
Suppose, we
constructed a
memory that
only has
1 bit in
each row
(i.e.: width=1 bit):
The input and
output of the
D-latch are
both connected to
the data bus wire -
redraw it
Increasing the width of a
memory circuit
There is actually
only 1 connection to
the data bus wire:
Increasing the width of a
memory circuit
We can represent this as
follows - it has
N address lines and
1 data line:
This memory circuit has
2N rows and
1 bit in
each row.
Is such memory circuit
useful ???
Increasing the width of a
memory circuit
Problem: use
8 of these
2N×1
memory circuits
construct a
2N×8
memory circuits:
A 2N×8
memory circuit has
2N rows and
8 bits in
each row.
Increasing the width of a
memory circuit
We start with drawing out
all the
input and output signals:
Increasing the width of a
memory circuit
We use 1 (one)
2N×1 memory circuit to
store the
data transfered over
1 data bus wire:
Increasing the width of a
memory circuit
We use another
2N×1 memory circuit to
store the
data transfered over
another 1 data bus wire:
Increasing the width of a
memory circuit
And so on:
connect the output of
each 2N×1 memory circuit
to a different data bus wire:
The resulting circuit is
a
2N×8 memory circuit
!
Increasing the width of a
memory circuit -
example application
- Memory chip manufacturers can
easily make
1,2,4 G×1 bit
memory chips
- They would use
32 of such
1,2,4 G×1 bit to make
4,8,16 Gbyte DDR memory circuits :
|
Increasing the size of a
memory circuit
Suppose you have
4 (four)
2N×8 bits
memory circuits:
Construct a
(large size)
2N+2×8 bits
memory circuits:
Increasing the
size of a memory circuit
For
simplicity
(of the presentation),
I will use a
concrete example with
10 address pins (wires):
- Suppose we have
4 (four)
210×8 bits
memory circuits:
- Construct a
(large size)
212×8 bits
memory circuits:
|
Increasing the size of a
memory circuit
-
background info
- The 212×8 bits
memory circuit has
12 address pins
- The 12 bits
binary numbers are
listed below
in 4 groups:
000000000000 010000000000 100000000000 110000000000
000000000001 010000000001 100000000001 110000000001
000000000010 010000000010 100000000010 110000000010
000000000011 010000000011 100000000011 110000000011
...
...
001111111111 011111111111 101111111111 111111111111
|
- Each one of a
12 bits
binary number can be used
to select a
(8 bits) memory cell in a
212×8
memory circuit
|
Increasing the size of a
memory circuit
-
background info
How to
construct a
212×8
memory circuit using
4 (four)
210×8
memory circuit:
- We use the
first
2 bits of the
(12 bits) address to
select (activate)
one of the
4 (four)
210×8
memory circuits
000000000000 010000000000 100000000000 110000000000
000000000001 010000000001 100000000001 110000000001
000000000010 010000000010 100000000010 110000000010
000000000011 010000000011 100000000011 110000000011
...
...
001111111111 011111111111 101111111111 111111111111
| | | |
V V V V
Activate #1 Activate #2 Activate #3 Activate #4
|
|
Increasing the size of a
memory circuit
-
background info
How to
construct a
212×8
memory circuit using
4 (four)
210×8
memory circuit:
- We use the
last
10 bits of the
(12 bits) address to
select
row of memory cells inside
the
actiavte
210×8
memory circuit
000000000000 010000000000 100000000000 110000000000
000000000001 010000000001 100000000001 110000000001
000000000010 010000000010 100000000010 110000000010
000000000011 010000000011 100000000011 110000000011
...
...
001111111111 011111111111 101111111111 111111111111
| | | |
V V V V
Select row (of memory cells) when activated
|
|
Increasing the
size
of a memory circuit
We start with the input and the
output signals:
Increasing the
size
of a memory circuit
Use a decoder to
translate the
first 2 bits of the
address into a
selection signal:
Increasing the
size
of a memory circuit
Activate
one of the 4 (four)
210×8 memory circuit
when
first 2 addr bits = 00:
Increasing the
size
of a memory circuit
Activate
another of the 4 (four)
210×8 memory circuit
when
first 2 addr bits = 01:
Increasing the
size
of a memory circuit
Activate
another of the 4 (four)
210×8 memory circuit
when
first 2 addr bits = 10:
Increasing the
size
of a memory circuit
Activate
another of the 4 (four)
210×8 memory circuit
when
first 2 addr bits = 11:
Increasing the
size
of a memory circuit
This is how to
increase the
size (= more rows) of
a memory circuit:
❮
❯