Direct mapping

240-208
Fundamental of Computer Architecture
November 01, 2003
By Panyayot Chaikan
[email protected]
Chapter 8
หน่ วยความจาแคช
Cache memory
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
2
เนื้อหา
Introduction to cache memory
Hit rate/Miss rate
Write Policy
Replacement algorithm
Mapping function
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
3
What is Cache memory
A high speed memory closely connected to the
processor
Processor
Cache
240-208 Fundamental of Computer Architecture
Main
memory
Chapter 8 – Cache memory
4
Multilevel cache
Processor
Cache
L1
240-208 Fundamental of Computer Architecture
Cache
L2
Main
memory
Chapter 8 – Cache memory
5
ทาไมต้ อง cache memory?
หน่ วยความจาหลักทางานได้ ช้ามากเมื่อเทียบกับซี พย
ีู
ก๊ อปปี้ ค่ าในหน่ วยความจาหลักมาใส่ ในแคชก่ อนแล้ ว
ค่ อยให้ ซีพยี ูอ้างถึงหน่ วยความจาแคชด้ วยความเร็วสู ง
โปรแกรมส่ วนใหญ่ เมื่อใช้ หน่ วยความจาตาแหน่ งหนึ่ง
แล้ ว มักจะอ่ านค่ าหน่ วยความจาตาแหน่ งนั้นๆ อีก
หลายๆ ครั้ง (locality of reference)
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
6
Locality of reference :Example
void main (void)
{
int table[1024];
for (i= 0; i<100000; i++)
k = i % 26;
c = table[k]
printf(“%d”,c);
}
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
7
นิยามต่ างๆ ของ Cache
Hit : โพรเซสเซอร์ พบข้ อมูลในแคช
Miss : โพรเซสเซอร์ ไม่ พบข้ อมูลในแคช
Hit rate
จานวนครั้งทีพ่ บข้ อมูลในแคช
จานวนการแอกเซสหน่ วยความจาแคชทั้งหมด
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
8
Write policy
 Write back
เขียนข้ อมูลลงในแคชเท่ านั้น แล้ วค่ อยไปเขียนลงหน่ วยความจา
หลักหลังยกเลิกการใช้ แคชบล๊อกนั้นๆ
ประสิ ทธิภาพสู ง - ไม่ เหมาะกับระบบมัลติโพรเซสเซอร์
 Write through
ทุกครั้ งทีเ่ ขียนข้ อมูลในแคช ให้ เขียนข้ อมูลลงในหน่ วยความจาหลัก
ด้ วย
ประสิ ทธิภาพต่ากว่ า แต่ สามารถใช้ กบ
ั ระบบมัลติโพรเซสเซอร์ ได้
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
9
Multiprocessor
Processor1
Processor1
Cache
Cache
240-208 Fundamental of Computer Architecture
Main
memory
Chapter 8 – Cache memory
10
Unified VS Separated cache
Unified cache
Keeping both program and data
More simple and higher hit rate
Separate cache
Keeps program in code cache
Keeps data in data cache
Suitable for Von-Neuman architecture
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
11
Unified cache
Processor
Cache
240-208 Fundamental of Computer Architecture
Main
memory
Chapter 8 – Cache memory
12
Separated cache
Processor
code
cache
Main
memory
data
cache
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
13
Von-Neumann architecture and Cache
1 clock
Fetch
1 clock
1 clock
Decode Execute
Fetch
1 clock
1 clock
1 clock
Write
Decode Execute
Fetch
Write
Decode Execute
Fetch
240-208 Fundamental of Computer Architecture
1 clock
Write
Decode Execute
Fetch
1 clock
Write
Decode Execute
Write
Chapter 8 – Cache memory
14
Pentium Pro cache
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
15
Replacement algorithm
แคชมีขนาดเล็ก เมื่อเทียบกับหน่ วยความจาหลัก
ต้ องเอาของเก่ าออกจากแคชเพื่อใส่ ข้อมูลทีต
่ ้ องการ
Least Recently used (LRU)
Least Frequently Used (LFU)
First-in-First-Out (FIFO)
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
16
Cache mapping
Direct mapping
Fully associative mapping
Set associative mapping
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
17
Direct mapping
ง่ ายต่ อการสร้ าง
ใช้ จานวนบิตของ tag field น้ อย
บล๊ อก 0, 128, 256, … , 3968 ไม่ สามารถอยู่ใน
หน่ วยความจาพร้ อมๆ กันได้
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
18
block 1
block 127
tag
240-208 Fundamental of Computer Architecture
Group2
tag
5
block
7
block4095
block3968
block3969
Group1
block383
block257
block255
block256
block129
Group0
tag
cache
tag
block 0
block127
block128
block1
block0
Main memory
Direct mapping
Group31
word
4
Chapter 8 – Cache memory
19
cache
block 128
block 3969
block 258
block 383
1
31
2
2
240-208 Fundamental of Computer Architecture
Group2
block4095
block3968
block3969
block383
Group1
block258
Group0
block255
block256
block257
block129
block127
block128
block126
block1
Main memory
block0
Direct mapping
Group31
tag
block
word
5
7
4
Chapter 8 – Cache memory
20
cache
block 128
block 3969
block 258
block 4095
1
31
2
31
240-208 Fundamental of Computer Architecture
Group2
block4095
block3968
block3969
block383
Group1
block258
Group0
block255
block256
block257
block129
block127
block128
block126
block1
Main memory
block0
Direct mapping
Group31
tag
block
word
5
7
4
Chapter 8 – Cache memory
21
Fully associative mapping
หน่ วยความจาบล๊ อกใดๆ ก็ตามสามารถอยู่ในแคช
ตาแหน่ งใดก็ได้
สิ้ นเปลืองจานวนเกทในการสร้ างสู งมาก
จานวนบิตที่ต้องการใน tag field มีจานวนมาก
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
22
block i
block 127
tag
tag
cache
tag
block 0
240-208 Fundamental of Computer Architecture
tag
12
block4095
block4094
block4093
block i
block2
block3
block1
block0
Main memory
Fully associative mapping
word
4
Chapter 8 – Cache memory
23
block 4093
4093
240-208 Fundamental of Computer Architecture
tag
12
block4095
block4094
block4093
block i
block i
i
cache
2
block 2
block2
block3
block1
block0
Main memory
Fully associative mapping
word
4
Chapter 8 – Cache memory
24
Set-associative mapping
จับข้ อดีของ Fully-associative และ Direct mapped
มารวมกัน
สามารถออกแบบให้ มห
ี ลาย way ทีส่ ามารถเก็บข้ อมูล
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
25
2-way Set associative mapped
block255
block4095
Group63
block4032
block4033
Group2
block127
block128
block129
block65
block64
Group1
block63
block1
Main memory
block0
Group0
cache
tag
block 0
tag
block 1
set0
tag
block 2
tag
block 3
set1
tag
block 126
tag
block 127
set63
240-208 Fundamental of Computer Architecture
tag
set
6
word
6
Chapter 8 – Cache memory
4
26
2-way Set associative mapped
block255
block4095
Group63
block4032
block4033
Group2
block127
block128
block129
block65
block64
Group1
block63
block1
Main memory
block0
Group0
cache
1
block 64
63
block 4032
set0
1
block 65
2
block 129
set1
0
block 63
1
block 127
set63
240-208 Fundamental of Computer Architecture
tag
set
6
word
6
Chapter 8 – Cache memory
4
27
4-way set associative mapped
tag
tag
tag
cache
block 0
tag
block 4
tag
block 124
tag
block 1
block 5
tag
tag
block 125
tag
tag
set
7
240-208 Fundamental of Computer Architecture
5
cache
block 2
tag
block 6
tag
block 126
tag
block 3
block 7
set0
set1
block 127
set31
block4095
block4064
block4065
Group128
block95
block65
Group2
block63
block64
block33
Group1
block31
block32
block1
block0
Main memory
Group0
word
4
Chapter 8 – Cache memory
28
4-way set associative mapped
0
cache
block 0
1
block 32
2
0
block 1
1
block 33
127
block 4065
1
block 63
0
block 31
127
block 4095
tag
cache
block 64 127
set
7
240-208 Fundamental of Computer Architecture
block 4064
set0
tag
block i
set1
2
block 95
set31
block4095
block4064
block4065
Group127
block95
block63
block64
block65
Group2
block33
Group1
block31
block32
block1
Main memory
block0
Group0
word
5
4
Chapter 8 – Cache memory
29
Processor cache comparison
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
30
Cache of Intel Celeron
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
31
Cache of Intel Celeron
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
32
Cache of AMD Athlon
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
33
Cache of AMD Athlon
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
34
Homework
จงออกแบบหน่ วยความจาแคชของโพรเซสเซอร์ ที่
สามารถอ้ างหน่ วยความจาได้ 64 กิโลไบต์ โดย
กาหนดให้ หน่ วยความจาแคชมีขนาด 512 ไบต์
จงออกแบบหน่ วยความจาแคชในรู ปแบบต่ อไปนี้
Direct mapped
Fully associative
2-way set associative
4-way set associative
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
35
จบ บทที่ 8
240-208 Fundamental of Computer Architecture
Chapter 8 – Cache memory
36