ca บทที่สี่
DESCRIPTION
TRANSCRIPT
CACHE MEMORYCHATKLAW JAREANPONLAST EDIT: 5 /12 /2554
Chapter 4
Outline
หน่�วยความจำาใน่เครื่��องคอมพิ�วเตอรื่� ลั�กษณะพิ��น่ฐาน่จำองหน่�วยความจำา Cache องค�ปรื่ะกอบใน่การื่ออกแบบ Cache โครื่งสรื่#างของ Cache ใน่ Pentium 4
แลัะ Power PC
หน่�วยความจำาใน่เครื่��องคอมพิ�วเตอรื่�
ค%ณลั�กษณะของหน่�วยความจำา
Location Capacity Unit of Transfer
Access Method Performance Physical
Type
Physical Characteristi
csOrganization
Location
CPU
Register
Main memor
y
Cache memor
y
อ%ปกรื่ณ�ต�อพิ�วง
Capacity - ความจำ%
หน่�วยความจำาภายใน่
Byte = 8 bits
Word = (8,16,21) bits
หน่�วยความจำาภายน่อก
Byte
Unit of transfer
หน่�วยความจำาภายใน่ หน่�วยใน่การื่ถ่�ายเทข#อม)ลั = จำาน่วน่สายส�ญญาณ
ข#อม)ลัเข#าส)� แลัะออกจำากหน่�วยความจำา ( ปกต� = ความยาวของ Word)
o Word = ม+ขน่าดเท�าก�บจำาน่วน่บ�ตท+�ใช่�ใน่การื่แสดงค�าต�วเลัข แลัะ Instruction length
o Addressable units = หน่�วยเลั.กท+�ส%ดท+�สามารื่ถ่อ#างอ�งได# จำาน่วน่บ�ต address = (A) จำะอ#างอ�งหน่�วยความจำาท+�อ#างอ�ง
ได# 2^A เสมอ
o Unit of transfer = จำาน่วน่บ�ตท+�อ�าน่มาจำาก หรื่�อบ�น่ท0กลังส)�หน่�วยความจำา
Method of accessing
Sequential access• เก.บข#อม)ลัตามลัาด�บ เวลัาค#น่หาก.ค#น่ตามลัาด�บเช่�น่ก�น่
Direct access • สามารื่ถ่เปลั+�ยน่ตาแหน่�งห�วอ�าน่ไปย�งตาแหน่�งท+�ต#องการื่ท�น่ท+
Random access• เข#าถ่0งหน่�วยความจำาแบบไม�ม+ลัาด�บ แต�จำะม+การื่กาหน่ดตาแหน่�งของข#อม)ลัให#แตกต�างก�น่
การื่ว�ดปรื่ะส�ทธิ�ภาพิ
Access time -> รื่ะยะเวลัาท+�ใช่#ใน่การื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลั( เรื่��มน่�บจำากได# Address จำน่ถ่0ง Read or write เสรื่.จำ)
Memory cycle time
Random access memory cycle time = access time + เวลัาอ��น่ ๆ ท+�จำาเป3น่ต#องใช่# เช่�น่
เวลัารื่อส�ญญาณ
การื่ว�ดปรื่ะส�ทธิ�ภาพิ
Transfer rate อ�ตรื่าท+�ข#อม)ลัถ่)กถ่�ายทอดเข#าส)�หรื่�อออกจำากหน่�วยความจำา
Random access memory transfer rate = 1/cycle time
หน่�วยความจำาอื่� น่ ๆTn = รื่ะยะเวลัาเฉลั+�ยใน่การื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลั N bit
Ta = รื่ะยะเวลัาการื่เข#าถ่0งข#อม)ลัโดยเฉลั+�ยN = จำาน่วน่บ�ตข#อม)ลั
R = อ�ตรื่าการื่ถ่�ายเทข#อม)ลั ม+หน่�วยเป3น่บ�ตต�อว�น่าท+R
NTT AN
อ%ปกรื่ณ�ทางกายภาพิ
Semiconductor
• ROM, RAM
Magnetic surface memory• Harddisk
Optic and magneto-optic
• Minidisc (Sony)
ความทรื่งจำา
Volatile
• ไม�ถ่าวรื่
Non-volatile
•ถ่าวรื่
โครื่งสรื่#างลัาด�บช่��น่ของหน่�วยความจำา
ม+ปรื่�มาณเท�าใด
ม+ความเรื่.วเท�าใด
ม+รื่าคาเท�าใด
หน่�วยความจำาจำะต#องสามารถทำางาน่ให�ทำ�น่กั�บ โปรเซสเซอื่ร� ค�อจำะต#องสามารื่ถ่ส�งคาส��งแลัะ
ข#อม)ลัให#โปรื่เซสเซอรื่�ทาการื่ปรื่ะมวลัผลัได# ตลัอดเวลัา โดยไม�ต#องม+การื่รื่อคอยเก�ดข0�น่
โครื่งสรื่#างลัาด�บช่��น่ของหน่�วยความจำา
รื่าคา ปรื่�มาณเวลัาเข#าถ่0งหน่�วยความจำา
• การื่เพิ��มความเรื่.วใน่การื่เข#าถ่0งข#อม)ลั หน่�วยความจำาม+รื่าคาแพิงข0�น่• ปรื่�มาณหน่�วยความจำาเพิ��มข0�น่ รื่าคาต�อหน่�วยลัดลัง• ปรื่�มาณหน่�วยความจำาเพิ��มข0�น่ เวลัาเข#าถ่0งข#อม)ลัเพิ��มข0�น่
ม+รื่าคาต�อบ�ตต�าลังม+ปรื่�มาณมากข0�น่ใช่#เวลัาเข#าถ่0งข#อม)ลัน่าน่ข0�น่ม+การื่ต�ดต�อก�บโปรื่เซสเซอรื่�ลัดลัง
EX : ม+หน่�วยความจำา 2 รื่ะด�บ รื่ะด�บ 1 จำาน่วน่ 1,000 words access time 0.01 ไมโครื่ว�น่าท+
รื่ะด�บ 2 100,000 words access time 0.1 ไมโครื่ว�น่าท+
ถ่#า 95% ของการื่อ#างอ�งท��งหมดเก�ดข0�น่ใน่หน่�วยความจำา รื่ะด�บ 1 ค�าเฉลั+�ยช่องรื่ะยะเวลัาใน่การื่อ#างอ�งข#อม)ลัจำะเท�าก�บ
CPU
รื่ะด�บ 1
รื่ะด�บ 2
(0.95)(0.01µs) + (0.05)(0.1µs+0.01µs) = 0.015µs
ทาไมถ่0ง ม�กัารติ ดติ�อื่กั�บโปรเซสเซอื่ร�ลดลง
ปกต�แลั#วม�กจำะม+การื่ใช่#ข#อม)ลัใน่พิ��น่ท+�จำาก�ดกรื่ะจำ%กหน่0�ง ๆLoop การื่อ#างอ�งโค#ดแลัะข#อม)ลัส�วน่เลั.ก ๆ ส�วน่หน่0�งซ�า ๆ
CPU
Register
Main memor
y
Cache memor
y
อ%ปกรื่ณ�ต�อพิ�วง
Disk buffer
Disk cache บ�น่ท0กข#อม)ลัเป3น่กลั%�ม ใน่ครื่าวเด+ยว ข#อม)ลัท+�ใช่#บ�อยๆ อาจำจำะเก.บไว# Disk buffer ก�อน่ท+�ข#อม)ลัจำะถ่)กบ�น่ท0กจำรื่�ง ๆ
ลั�กษณะพิ��น่ฐาน่ของหน่�วยความจำา Cache
หน่�วยความจำาหลั�ก เก.บข#อม)ลั 2^n address
จำาน่วน่บลั.อก= (2^n)/k
Main memory
ถ่#าข#อม)ลัม+ใน่ Cache จำะ disable buffer ท��งสอง
Cache miss
องค�ปรื่ะกอบใน่การื่ออกแบบ Cache
Cache Size Write Policy
Mapping Function Line size
Replacement
Algorithm
Number of caches
Cache size
Cache ต#องม+ขน่าดเลั.ก ม+รื่าคาเฉลั+�ยต�อบ�ตน่��น่ใกลั#เค+ยงก�บรื่าคาของหน่�วยความจำาหลั�ก
คาน่วณรื่ะยะเวลัาแลั#วต#องใกลั#เค+ยงก�บการื่เข#าถ่0ง ข#อม)ลัของ Cache
ถ่#า Cache ใหญ�เก�น่ไป จำะทาให# Cache ทางาน่ช่#า
Mapping function
ตรื่วจำสอบว�าบลั.อกใดอย)�ใน่ Cacheกาหน่ดตาแหน่�งหน่�วยความจำาของแต�ลัะ
บลั.อกไปย�งช่�องส�ญญาณ Cache
Direct Associative
Set-Associative
Direct Mapping
i = j mod m
ต�วอย�าง ขน่าดของ cache = 64 Kbytes (64*1024 bytes) จำาน่วน่บลั.อก = 4 Bytes
** จำาน่วน่ช่�องส�ญญาณ = (64/4) = 16 Kbytes
i = หมายเลัขช่�องส�ญญาณ cachej = หมายเลัขบลั.อกm = จำาน่วน่ช่�องส�ญญาณ
Direct Mapping
Tag s-r bits r bits (จำาน่วน่ช่�อื่งส�ญญาณ)
หมายเลขเร�ยกั Word
ใน่ บล(อื่กั
Tag Line Wordบล(อื่กั
W1 [00]
W2 [01]
W3 [10]
W4 [11]
s bits
ความยาวของ address = s+w bits ปรื่�มาณหน่�วยความจำาท+�สามารื่ถ่อ#างอ�งได#ท��งหมด =
2^(s+w) words จำาน่วน่บลั.อกท��งหมด 2^w words
จำาน่วน่บลั.อกใน่หน่�วยความจำาหลั�ก = 2^s บลั.อก จำาน่วน่ช่�องส�ญญาณ cache = m ช่�อง
ขน่าดของป7ายบอกตาแหน่�ง = (s-r) bits
หมายเลขช่�อื่งส�ญญาณ Cache หมายเลขบล(อื่กัใน่หน่�วยความจำาหล�กั0 0, m, 2m, ……., 2^s -m
1 1, m+1, 2m+1, ……, 2^s – m+1
.
.
.
m-1 m-1, 2m-1, 3m-1, ……, 2^s -1
หมายเลัขบลั.อกท+� 0 เข#าส)ตรื่ด�งน่+� หมายเลัขช่�องส�ญญาณ = 0 mod m
ได#เศษ 0 ช่�องส�ญญาณ ท+� 0
Direct Mappingหมายเลขช่�อื่งส�ญญาณ Cache หมายเลขทำ� อื่ย)�เร มติ�น่ขอื่งบล*อื่กั
0 000000, 010000, ….. , FF0000
1 000004, 010004, ….. , FF0004
.
.
.
.
.
.
2^14 -1 00FFFC, 01FFFC, …. , FFFFFC
Address
000000 W1
000001 W2
000002 W3
000003 W4
000004 W5
…. ….
บลั.อก หมายเลัข 1
บลั.อก หมายเลัข 2
Mapping function
ข�อื่ด� ค�อ เป3น่ว�ธิ+ท+�ง�ายแลัะสามารื่ถ่สรื่#างข0�น่มาใช่#งาน่ได#ด#วยต#น่ท%น่ต�ากว�าแบบอ��น่
ข�อื่ด�อื่ย ค�อ จำากการื่กาหน่ดตาแหน่�งคงท+� หากเก�ดม+การื่ อ#างอ�งถ่0งข#อม)ลัจำากสองบลั.อก (หรื่�อมากกว�า) ท+�อย)�ใน่
ตาแหน่�งท+�ต�างก�น่ใน่หน่�วยความจำาหลั�ก แต�บ�งเอ�ญอย)�ใน่ ตาแหน่�งเด+ยวก�น่ใน่แคช่แลั#ว ข#อม)ลัท��งสองบลั.อกน่��น่จำะต#อง
สลั�บเปลั+�ยน่ก�น่ถ่)กค�ดลัอกเข#ามาไว#ใน่แคช่ท+�ตาแหน่�งเด+ยวก�น่ เสมอ ท��งๆท+�แคช่ส�วน่อ��น่อาจำไม�ม+ข#อม)ลัอย)�เลัยก.ได#
ปรื่ากฏการื่ณ�น่+�เรื่+ยกว�า “trashing”
Associative mapping
หน่�วยความจำาแต�ลัะบลั.อก สามารื่ถ่ถ่)กอ�าน่เข#ามาไว#ใน่ Cache ช่�องใดก.ได#
Memory address
0001 0110 0011 0011 1001 1100 Bi 24 bits
1 6 3 6 9 C Hex
Tag 00 0101 1000 1100 1110 0111 22 bits
0 5 8 C E 7 Hex
Tag Word
Main memory address 22 2
Mapping function
ข�อื่ด� ม+ความย�ดหย%�น่ส)ง ข�อื่เส�ย ความซ�บซ#อน่ใน่การื่ตรื่วจำสอบป7ายบอก
ตาแหน่�งข#อม)ลัใน่ Cache ซ0�งต#องตรื่วจำสอบท%กตาแหน่�ง
Set associative mapping
หน่�วยความจำา cache แบ�งออกเป3น่ v set แต�ลัะเซตปรื่ะกอบด#วยช่�องส�ญญาณ k ช่�องi หมายเลัขเซตใน่ cachej หมายเลัขบลั.อกใน่หน่�วยความจำาหลั�กm จำาน่วน่ช่�องส�ญญาณใน่ cache
m= v * ki= j modulo v
Set associative mapping
ข�อื่ด� ใช่#ค�าใช่#จำ�ายเพิ��มข0�น่เพิ+ยงเลั.กน่#อย แต�ว�าปรื่ะส�ทธิ�ภาพิส)งข0�น่มาก
ข�อื่เส�ย ต#องคาน่วณจำาน่วน่เซตให#เหมาะสม
อ�ลักอรื่�ท0มการื่แทน่ท+�
LRU (Least recently used)• บลั.อกใหม�จำะมาแทน่ท+�บลั.อกเก�าท+�เก.บไว#ใน่ Cache น่าน่ท+�ส%ด แลัะม+การื่ใช่#น่#อยท+�ส%ด
FIFO (First-in-First-out)
LFU (Lease frequently used)• ทาการื่ทดแทน่บลั:อกท+�ถ่)กอ#างอ�งเป3น่จำาน่วน่น่#อยท+�ส%ด
Random
น่โยบายการื่บ�น่ท0กลังหน่�วยความจำาหลั�ก
ป+ญหา อาจำจำะม+อ%ปกรื่ณ�มากกว�าหน่0�งอย�างท+�ทาการื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลัใน่หน่�วยความจำา
โปสเซสเซอรื่�ม+หลัายต�ว แต�ลัะต�วท+Cache เป3น่ของต�วเอง
Write through
• บ�น่ท0กท%กครื่��งท+�ม+ การื่ใช่# Cache
• ช่#าเพิรื่าะต#องต�ดต�อก�บหน่�วยความจำาหลั�ก
Write back
• สรื่#าง Update bit เอาไว#เช่.ค
• ข#อม)ลัใน่ Cache ใน่หน่�วยความจำาอาจำจำะไม�เหม�อน่ก�น่
ใน่กรื่ณ+ท+�ม+การื่ใช่# Bus แลัะม+ Cache เป3น่ของต�วเองท%กอ%ปกรื่ณ�
Cache coherencyBus watching with write throughHardware transparencyNoncacheable memory
Bus watching with write through
CacheMain
memory
อ%ปกรื่ณ�อ��น่ ๆ
Hardware transparency
Cache
Main memory
อ%ปกรื่ณ�อ��น่ ๆ
Hardware
Noncacheable memory
CacheMain
memory อ%ปกรื่ณ�อ��น่ ๆ
ขน่าดของบลั.อกใน่ Cache (line size)
บลั.อกขน่าดใหญ� ลัดจำาน่วน่บลั.อกท+�จำะ สามารื่ถ่อ�าน่เข#ามาเก.บไว#ใน่ Cache
บลั.อกขน่าดใหญ� ข#อม)ลัอ�าน่เข#ามาอาจำจำะไม�ถ่)กใช่#หรื่�อไม�เก+�ยวข#องก�น่
จำาน่วน่ของ cache
จำาน่วน่รื่ะด�บของ cache การื่ใช่# cache แบบรื่วมหรื่�อแบบแยก
Cache แบบหลัายรื่ะด�บ
Processor
L1 Cache
L2 Cache
CPU
System bus
Local bus
L2 เพิ��มปรื่ะส�ทธิ�ภาพิ แต�อ�ลักอรื่�ธิ0มการื่แทน่ท+� แลัะน่โยบายบ�น่ท0กข#อม)ลั
ก.ซ�บซ#อน่ไปด#วย
Unified and split cache
Unifiedcache
• คาส��ง + ข#อม)ลั• ม+อ�ตรื่าการื่ค#น่พิบข#อม)ลัท+�ต#องการื่มากกว�า
• การื่ออกแบบง�ายแลัะไม�ซ�บซ#อน่
Split cache
• ลัดความค�บค��งของ ข#อม)ลั ไม�ต#องรื่อการื่
ปรื่ะมวลัผลั• เหมาะก�บการื่ปรื่ะมวลัผลัแบบขน่าน่
Pentium 4 cache
Fetch/decode unit ด0งคาส��งเข#ามาจำาก L2 แปลั ความหมายโค#ด micro-operation แลัะบ�น่ท0กผลัลั�พิธิ�ไว#ท+�
L1Out-of-order execution logic จำ�ดตารื่างคาส��งExecution units ปรื่ะมวลัผลัคาส��ง ด0งข#อม)ลัจำาก L1
RegisterMemory subsystem ถ่#าไม�ม+คาส��งใน่ L1,L2 จำะต#องต�ดต�อก�บหน่�วยความจำาหลั�ก
Write-back
PowerPC
Set – associative L1 8-way set –associative
Instruction cache อ�าน่คาส��งเพิ+ยงอย�างเด+ยว Data cache ป7อน่ข#อม)ลั integer, floating-point
L2 2-way set – associative