ece222: add week 11
This commit is contained in:
parent
0738b692fc
commit
db3cb7c96d
@ -163,7 +163,7 @@ Each bit cell is placed into a symmetric 2D matrix to avoid linear searching. As
|
|||||||
|
|
||||||
$$\text{\# addr bits} = \log_2(2\times\text{\# bytes})$$
|
$$\text{\# addr bits} = \log_2(2\times\text{\# bytes})$$
|
||||||
|
|
||||||
The matrix would store a total of eight times the number of bytes / words, so each edge is the square root of that.
|
The matrix would store a total of eight times the number of bytes / words, so each edge is the square root of that. To read an address, the memory controller gives the row on the address pins and asserts **row address strobe (RAS)**. After the row is read, the controller gives the column and asserts **column address strobe (CAS)**.
|
||||||
|
|
||||||
$$
|
$$
|
||||||
\text{\# bits} = 2\times\text{\# bytes}\times\frac{\pu{8 bits}}{\pu{1 word}} \\
|
\text{\# bits} = 2\times\text{\# bytes}\times\frac{\pu{8 bits}}{\pu{1 word}} \\
|
||||||
@ -173,3 +173,39 @@ $$
|
|||||||
!!! example
|
!!! example
|
||||||
A 16 Mib machine stores 2 MiB, or $1024^2$ bytes. Thus the bits are arranged in a $\sqrt{2\times1024^2\times8}=2^{12}$ by $2^{12}$ matrix, where each row holds $2^9$ 8-bit words.
|
A 16 Mib machine stores 2 MiB, or $1024^2$ bytes. Thus the bits are arranged in a $\sqrt{2\times1024^2\times8}=2^{12}$ by $2^{12}$ matrix, where each row holds $2^9$ 8-bit words.
|
||||||
|
|
||||||
|
### DRAM timing
|
||||||
|
|
||||||
|
**Asynchronous** DRAM:
|
||||||
|
|
||||||
|
1. Provide row number, assert RAS
|
||||||
|
2. Wait
|
||||||
|
3. Provide column number, assert CAS
|
||||||
|
4. Wait
|
||||||
|
5. Transfer data
|
||||||
|
|
||||||
|
**Fast page mode** DRAM:
|
||||||
|
|
||||||
|
1. Provide row number
|
||||||
|
2. Specify multiple column numbers
|
||||||
|
3. Transfer multiple data
|
||||||
|
|
||||||
|
**Synchronous** DRAM (SDRAM) synchronises commands and data transfers to the bus clock. A row is buffered, then data is transferred in bursts of 2<sup>n</sup> words.
|
||||||
|
|
||||||
|
**Double data rate** SDRAM transfers data on the rising and falling edges of the bus clock.
|
||||||
|
|
||||||
|
### DRAM performance
|
||||||
|
|
||||||
|
!!! definition
|
||||||
|
- **Latency** is measured by the time from the start of the request to the start of data transfer.
|
||||||
|
- **Bandwidth** is measured by the volume of data transferred per unit time
|
||||||
|
|
||||||
|
**DDR SDRAM** transfers 64 bits per channel at once. A **rank** of memory chips provides the data, and each rank chip is mounted on a **dual inline memory module (DIMM)**. To increase capacity without increasing latency, each rank is subdivided into **banks**.
|
||||||
|
|
||||||
|
As a JEDEC standard, chips are named by DDR generation and bandwidth:
|
||||||
|
|
||||||
|
$$
|
||||||
|
\text{PC}\#-bandwidth
|
||||||
|
$$
|
||||||
|
|
||||||
|
!!! example
|
||||||
|
A **PC3-12800** chip is DDR3 with a bus transfer rate of 12800 MB/s. Or, at 8 B/transfer, a bus clock rate of 1600 MT/s. At 2 transfers/cycle (DDR), it must thus run at 800 MHz.
|
||||||
|
Loading…
Reference in New Issue
Block a user