Platform Technology หน่วยความจำแคช Cache memory เนื้อหา

Download Report

Transcript Platform Technology หน่วยความจำแคช Cache memory เนื้อหา

Platform Technology
หน่ วยความจาแคช
Cache memory
เนื้อหา
Introduction to cache memory
Hit rate/Miss rate
Write Policy
Replacement algorithm
Mapping function
WHAT IS CACHE MEMORY

A high speed memory closely connected to the
processor
Processor
Cache
Main
memory
MULTILEVEL CACHE
Processor
Cache
L1
Cache
L2
Main
memory
Cache
L2
Main
memory
Processor
Cache
L1
ทำไมต้อง CACHE MEMORY?
หน่วยควำมจำหลักทำงำนได้ชำ้ มำกเมื่อเทียบกับซี พียู
 ก๊อปปี้ ค่ำในหน่วยควำมจำหลักมำใส่ ในแคชก่อนแล้วค่อยให้ซีพียอ
ู ำ้ งถึงหน่วยควำมจำ
แคชด้วยควำมเร็วสูง
 โปรแกรมส่ วนใหญ่เมื่อใช้หน่วยควำมจำตำแหน่งหนึ่ งแล้ว มักจะอ่ำนค่ำหน่วยควำมจำ
ตำแหน่งนั้นๆ อีกหลำยๆ ครั้ง (locality of reference)

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);
}
นิยำมต่ำงๆ ของ CACHE
Hit : โพรเซสเซอร์พบข้อมูลในแคช
 Miss : โพรเซสเซอร์ ไม่พบข้อมูลในแคช


Hit rate
จำนวนครั้งที่พบข้อมูลในแคช
จำนวนกำรแอกเซสหน่วยควำมจำแคชทั้งหมด
WRITE POLICY
Write
back
 เขียนข้อมูลลงในแคชเท่ำนั้น แล้วค่อยไปเขียนลงหน่วยควำมจำหลัก
หลังยกเลิกกำรใช้แคชบล๊อกนั้นๆ
 ประสิ ทธิ ภำพสู ง - ไม่เหมำะกับระบบมัลติโพรเซสเซอร์
Write
through
 ทุกครั้งที่เขียนข้อมูลในแคช ให้เขียนข้อมูลลงในหน่วยควำมจำหลัก
ด้วย
ั ระบบมัลติโพรเซสเซอร์ได้
 ประสิ ทธิ ภำพต่ำกว่ำ แต่สำมำรถใช้กบ
MULTIPROCESSOR
Processor1
Processor1
Cache
Cache
Main
memory
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

UNIFIED CACHE
Processor
Cache
Main
memory
SEPARATED CACHE
Processor
code
cache
data
cache
Main
memory
VON-NEUMANN ARCHITECTURE AND
CACHE
1 clock
Fetch
1 clock
1 clock
Decode Execute
Fetch
1 clock
1 clock
1 clock
1 clock
Write
Decode Execute
Fetch
1 clock
Write
Decode Execute
Fetch
Write
Decode Execute
Fetch
Write
Decode Execute
Write
PENTIUM PRO CACHE
REPLACEMENT ALGORITHM
แคชมีขนำดเล็ก เมื่อเทียบกับหน่วยควำมจำหลัก
 ต้องเอำของเก่ำออกจำกแคชเพื่อใส่ ขอ
้ มูลที่ตอ้ งกำร

Least Recently used (LRU)
 Least Frequently Used (LFU)
 First-in-First-Out (FIFO)

CACHE MAPPING
Direct mapping
 Fully associative mapping
 Set associative mapping

DIRECT MAPPING
ง่ำยต่อกำรสร้ำง
 ใช้จำนวนบิตของ tag field น้อย
 บล๊อก 0, 128, 256, … , 3968 ไม่สำมำรถอยูใ่ นหน่วยควำมจำพร้อมๆ กัน
ได้

block 1
block 127
tag
tag
cache
tag
block 0
Group2
tag
5
block
7
block4095
block3968
block3969
block383
block257
block255
block256
block129
block127
block128
block1
block0
Main memory
DIRECT
MAPPING
Group0
Group1
Group31
word
4
cache
block 128
block 3969
block 258
block 383
1
31
2
2
Group2
block4095
block3968
block3969
block383
block258
block255
block256
block257
block129
block127
block128
block126
block1
Main memory
block0
DIRECT
MAPPING
Group0
Group1
Group31
tag
block
word
5
7
4
cache
block 128
block 3969
block 258
block 4095
1
31
2
31
Group2
block4095
block3968
block3969
block383
block258
block255
block256
block257
block129
block127
block128
block126
block1
Main memory
block0
DIRECT
MAPPING
Group0
Group1
Group31
tag
block
word
5
7
4
FULLY ASSOCIATIVE MAPPING
หน่วยควำมจำบล๊อกใดๆ ก็ตำมสำมำรถอยูใ่ นแคชตำแหน่งใดก็ได้
 สิ้ นเปลืองจำนวนเกทในกำรสร้ำงสู งมำก
 จำนวนบิตที่ตอ
้ งกำรใน tag field มีจำนวนมำก

block i
block 127
tag
tag
cache
tag
block 0
tag
12
word
4
block4095
block4094
block4093
block i
block2
block3
block1
block0
Main memory
FULLY ASSOCIATIVE MAPPING
block i
block 4093
i
4093
cache
2
block 2
tag
12
word
4
block4095
block4094
block4093
block i
block2
block3
block1
block0
Main memory
FULLY ASSOCIATIVE MAPPING
SET-ASSOCIATIVE
MAPPING
จับข้อดีของ Fully-associative และ Direct mapped มำรวมกัน
 สำมำรถออกแบบให้มีหลำย way ที่สำมำรถเก็บข้อมูล

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
tag
6
set
word
6
4
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
tag
6
set
word
6
4
4-WAY SET ASSOCIATIVE MAPPED
tag
tag
tag
cache
block 0
tag
block 4
tag
block 124
tag
tag
block 1
block 5
tag
tag
block 125
tag
set
7
5
cache
block 2
tag
block 6
tag
block 126
word
4
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
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
word
5
4
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
PROCESSOR CACHE COMPARISON
CACHE OF INTEL CELERON
CACHE OF INTEL CELERON
CACHE OF AMD ATHLON
CACHE OF AMD ATHLON
HOMEWORK
จงออกแบบหน่วยควำมจำแคชของโพรเซสเซอร์ที่สำมำรถอ้ำงหน่วยควำมจำได้ 64
กิโลไบต์ โดยกำหนดให้หน่วยควำมจำแคชมีขนำด 512 ไบต์
 จงออกแบบหน่วยควำมจำแคชในรู ปแบบต่อไปนี้

Direct mapped
 Fully associative
 2-way set associative
 4-way set associative
