cache memory & sram/dram -
TRANSCRIPT
![Page 1: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/1.jpg)
CACHE MEMORY & SRAM/DRAM TIMINGAn introduction to cache memories and their architectureMicroprocessor and Microcontrollers Course – Isfahan University of Technology – Mohammad Sadegh Sadri
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
1
![Page 2: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/2.jpg)
Storages• CPU needs memory
• Program • Data
• Memories• Volatile memory
• RAM• Non-Volatile memory
• Hard disk• Flash
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
2
![Page 3: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/3.jpg)
Storage Speed• RAM is faster than
• Hard disk and flash• Access to RAM is easier
• Compared to hard disk and flash
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
3
![Page 4: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/4.jpg)
Basic Idea• Hard disk is slow• Access to it is difficult• So :
• Put a memory between hard disk and CPU• Now move Mostly Used Data and Instructions to this memory• Allow CPU to read from/write to this memory
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
4
![Page 5: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/5.jpg)
Basic Idea Expansion (1)• DRAM memory
• Large• Slow
• SRAM memory• Fast• Small
• Idea• Put a fast SRAM memory between DRAM and CPU• Store Mostly Used Data and Instructions on this SRAM memory• Allow CPU to use this memory
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
5
![Page 6: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/6.jpg)
Basic Idea Expansion (2)• When CPU needs an instruction• Look into fast SRAM memory and check
• If the instruction exist Give it to CPU• If the instruction does not exist
• Read it from large DRAM • Give it to CPU• Update the contents of SRAM memory
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
6
![Page 7: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/7.jpg)
Basic Idea Expansion (3)• When CPU wants to store/read a data
• Look into fast SRAM memory• Check if any of SRAM memory locations has been associated with
this memory address• If yes: store the data into this location (or read data from this
location)• If no: store data into main DRAM memory
• And also in SRAM memory
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
7
![Page 8: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/8.jpg)
Cache Memory• A “faster” small memory • Stores frequently used data• To shorten access time • Caches are every where:
• CPU cache• Hard disk cache• Operating system cache• … M
icro
proc
esso
rs a
nd
Mic
roco
ntro
llers
-M
oham
mad
Sa
degh
Sad
ri
8
![Page 9: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/9.jpg)
Multi-Level Caches
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
9
CPU
Main Memory
Larger than
caches
Slower than
caches
Level 1Instruction
Cache
SmallestFastestNearest
Level 2Cache
Larger than L1Slower than L1
Level 1Data Cache
SmallestFastestNearest
Level 3Cache
Larger than L2Slower than L2
![Page 10: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/10.jpg)
Basic Cache Operation
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
10
Tag Data Block Valid Bit
1 Cache Line (Row , Entry )
![Page 11: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/11.jpg)
Direct Mapped Cache• Main memory is divided into blocks• Each block can be cached in only one cache row• Fasted search speed (best hit time, worst hit rate)
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
11
Main Memory
(2Kbytes) Block 0
(2Kbytes) Block 1
(2Kbytes) Block 2
(2Kbytes) Block 3
(2Kbytes) Block N
Cache Line 0 (64 Bytes)Cache Line 1 (64 Bytes)
Cache Line N (64 Bytes)
![Page 12: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/12.jpg)
Direct Mapped Cache
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
12
![Page 13: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/13.jpg)
Direct Mapped Cache• Can some times be very bad!• Suppose both of A, B and C are stored in the same memory
block in the following code
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
13
for ( i = 0 ; i < 10; i++ )A[i] = B[i] + C[i];
![Page 14: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/14.jpg)
Fully Associative Cache• Each main memory location
• Can be cached in all of the cache memory lines• When CPU wants to access a memory location
• All of the cache lines should be searched first• Slowest search ( worst hit time )• Best hit rate• There are some techniques to speed up the search
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
14
![Page 15: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/15.jpg)
Set-Associative Cache• Cache will be divided into sets
• Each set is 2,4,8 or … cache lines• The content of each memory block
• Can be cached in any of cache lines in a specific set• Doubling the associativity
• For example from direct mapped to 2-way• Has same effect on hit rate as: doubling the cache size
• Trade off between hit rate, and hit time Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
15
![Page 16: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/16.jpg)
2-Way Set Associative Cache
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
16
![Page 17: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/17.jpg)
AMD Athlon 64 Cache
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
17
![Page 18: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/18.jpg)
DRAM VS. SRAMDetailed operation of DRAM and SRAM memories
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
18
![Page 19: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/19.jpg)
Asynchronous SRAM
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
19
• Example : CYPRESS CY7C10612DV33 (16Mbits : 1M*16, 10ns)
![Page 20: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/20.jpg)
What is chip enable?• Usually CPU is connected to multiple devices on the same bus
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
20
BUS
CPU
RAM
FLASH
NETWORK
Only 1 device can use theBus at the same time.
![Page 21: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/21.jpg)
What is chip enable? (2)• Usually CPU is connected to multiple devices on the same bus
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
21
BUS
CPU
RAM
FLASH
NETWORK
0x00000000 --0x44000000
0x86000000 --0x87000000
0x87000000 --0x88000000
Only 1 device can use theBus at the same time.
CE
CE
CE
![Page 22: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/22.jpg)
What is chip enable? (3)• Usually CPU is connected to multiple devices on the same bus
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
22
BUS
CPU
RAM
FLASH
NETWORK
0x00000000 --0x44000000
0x86000000 --0x87000000
0x87000000 --0x88000000
Only 1 device can use theBus at the same time.
CE
CE
CE
AddressDecoder
AddressDecoder
AddressDecoder
![Page 23: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/23.jpg)
Async-SRAM Read Cycle
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
23
![Page 24: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/24.jpg)
Async-SRAM Write Cycle
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
24
![Page 25: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/25.jpg)
Synchronous SRAM• Similar to Async SRAM• But
• Every Read and Write operation is done with Clock pulse edges • Example:
• Cypress CY7C1460• 36MBits – 2M*18• No-Bus-Latency Synchronous SRAM (NoBL Architecture)
• No-Bus-Latency:• There is no delay for switching between read and write
operations
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
25
![Page 26: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/26.jpg)
CY7C1462
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
26
![Page 27: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/27.jpg)
Read/Write Timing• Page 22, component’s data sheet
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
27
![Page 28: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/28.jpg)
DRAM Memory• Access to DRAM memory is very complicated (compared to
SRAM)• DRAM accept commands (there is not just a simple WEn
signal) • DRAM accepts Address in 3-phases
• Bank Address• Row Address• Column Address M
icro
proc
esso
rs a
nd
Mic
roco
ntro
llers
-M
oham
mad
Sa
degh
Sad
ri
28
![Page 29: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/29.jpg)
Micron MT46V64M16• Total number of : 1G bits
• 4 Banks• 16M lines• Each line is 16Bits
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
29
![Page 30: CACHE MEMORY & SRAM/DRAM -](https://reader031.vdocuments.mx/reader031/viewer/2022020703/61fb26ba2e268c58cd5ac13d/html5/thumbnails/30.jpg)
Timings• Page 53 Datasheet• Page 64 Datasheet
Mic
ropr
oces
sors
and
M
icro
cont
rolle
rs -
Moh
amm
ad
Sade
gh S
adri
30