ca บทที่สี่

52
CACHE MEMORY CHATKLAW JAREANPON LAST EDIT: 5/12/2554 Chapter 4

Upload: atit604

Post on 15-Jan-2015

173 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Ca บทที่สี่

CACHE MEMORYCHATKLAW JAREANPONLAST EDIT: 5 /12 /2554

Chapter 4

Page 2: Ca บทที่สี่

Outline

หน่�วยความจำาใน่เครื่��องคอมพิ�วเตอรื่� ลั�กษณะพิ��น่ฐาน่จำองหน่�วยความจำา Cache องค�ปรื่ะกอบใน่การื่ออกแบบ Cache โครื่งสรื่#างของ Cache ใน่ Pentium 4

แลัะ Power PC

Page 3: Ca บทที่สี่

หน่�วยความจำาใน่เครื่��องคอมพิ�วเตอรื่�

ค%ณลั�กษณะของหน่�วยความจำา

Location Capacity Unit of Transfer

Access Method Performance Physical

Type

Physical Characteristi

csOrganization

Page 4: Ca บทที่สี่

Location

CPU

Register

Main memor

y

Cache memor

y

อ%ปกรื่ณ�ต�อพิ�วง

Page 5: Ca บทที่สี่

Capacity - ความจำ%

หน่�วยความจำาภายใน่

Byte = 8 bits

Word = (8,16,21) bits

หน่�วยความจำาภายน่อก

Byte

Page 6: Ca บทที่สี่

Unit of transfer

หน่�วยความจำาภายใน่ หน่�วยใน่การื่ถ่�ายเทข#อม)ลั = จำาน่วน่สายส�ญญาณ

ข#อม)ลัเข#าส)� แลัะออกจำากหน่�วยความจำา ( ปกต� = ความยาวของ Word)

o Word = ม+ขน่าดเท�าก�บจำาน่วน่บ�ตท+�ใช่�ใน่การื่แสดงค�าต�วเลัข แลัะ Instruction length

o Addressable units = หน่�วยเลั.กท+�ส%ดท+�สามารื่ถ่อ#างอ�งได# จำาน่วน่บ�ต address = (A) จำะอ#างอ�งหน่�วยความจำาท+�อ#างอ�ง

ได# 2^A เสมอ

o Unit of transfer = จำาน่วน่บ�ตท+�อ�าน่มาจำาก หรื่�อบ�น่ท0กลังส)�หน่�วยความจำา

Page 7: Ca บทที่สี่

Method of accessing

Sequential access• เก.บข#อม)ลัตามลัาด�บ เวลัาค#น่หาก.ค#น่ตามลัาด�บเช่�น่ก�น่

Direct access • สามารื่ถ่เปลั+�ยน่ตาแหน่�งห�วอ�าน่ไปย�งตาแหน่�งท+�ต#องการื่ท�น่ท+

Random access• เข#าถ่0งหน่�วยความจำาแบบไม�ม+ลัาด�บ แต�จำะม+การื่กาหน่ดตาแหน่�งของข#อม)ลัให#แตกต�างก�น่

Page 8: Ca บทที่สี่

การื่ว�ดปรื่ะส�ทธิ�ภาพิ

Access time -> รื่ะยะเวลัาท+�ใช่#ใน่การื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลั( เรื่��มน่�บจำากได# Address จำน่ถ่0ง Read or write เสรื่.จำ)

Memory cycle time

Random access memory cycle time = access time + เวลัาอ��น่ ๆ ท+�จำาเป3น่ต#องใช่# เช่�น่

เวลัารื่อส�ญญาณ

Page 9: Ca บทที่สี่

การื่ว�ดปรื่ะส�ทธิ�ภาพิ

Transfer rate อ�ตรื่าท+�ข#อม)ลัถ่)กถ่�ายทอดเข#าส)�หรื่�อออกจำากหน่�วยความจำา

Random access memory transfer rate = 1/cycle time

หน่�วยความจำาอื่� น่ ๆTn = รื่ะยะเวลัาเฉลั+�ยใน่การื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลั N bit

Ta = รื่ะยะเวลัาการื่เข#าถ่0งข#อม)ลัโดยเฉลั+�ยN = จำาน่วน่บ�ตข#อม)ลั

R = อ�ตรื่าการื่ถ่�ายเทข#อม)ลั ม+หน่�วยเป3น่บ�ตต�อว�น่าท+R

NTT AN

Page 10: Ca บทที่สี่

อ%ปกรื่ณ�ทางกายภาพิ

Semiconductor

• ROM, RAM

Magnetic surface memory• Harddisk

Optic and magneto-optic

• Minidisc (Sony)

Page 11: Ca บทที่สี่

ความทรื่งจำา

Volatile

• ไม�ถ่าวรื่

Non-volatile

•ถ่าวรื่

Page 12: Ca บทที่สี่

โครื่งสรื่#างลัาด�บช่��น่ของหน่�วยความจำา

ม+ปรื่�มาณเท�าใด

ม+ความเรื่.วเท�าใด

ม+รื่าคาเท�าใด

หน่�วยความจำาจำะต#องสามารถทำางาน่ให�ทำ�น่กั�บ โปรเซสเซอื่ร� ค�อจำะต#องสามารื่ถ่ส�งคาส��งแลัะ

ข#อม)ลัให#โปรื่เซสเซอรื่�ทาการื่ปรื่ะมวลัผลัได# ตลัอดเวลัา โดยไม�ต#องม+การื่รื่อคอยเก�ดข0�น่

Page 13: Ca บทที่สี่

โครื่งสรื่#างลัาด�บช่��น่ของหน่�วยความจำา

รื่าคา ปรื่�มาณเวลัาเข#าถ่0งหน่�วยความจำา

• การื่เพิ��มความเรื่.วใน่การื่เข#าถ่0งข#อม)ลั หน่�วยความจำาม+รื่าคาแพิงข0�น่• ปรื่�มาณหน่�วยความจำาเพิ��มข0�น่ รื่าคาต�อหน่�วยลัดลัง• ปรื่�มาณหน่�วยความจำาเพิ��มข0�น่ เวลัาเข#าถ่0งข#อม)ลัเพิ��มข0�น่

Page 14: Ca บทที่สี่

ม+รื่าคาต�อบ�ตต�าลังม+ปรื่�มาณมากข0�น่ใช่#เวลัาเข#าถ่0งข#อม)ลัน่าน่ข0�น่ม+การื่ต�ดต�อก�บโปรื่เซสเซอรื่�ลัดลัง

Page 15: Ca บทที่สี่

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

Page 16: Ca บทที่สี่

ทาไมถ่0ง ม�กัารติ ดติ�อื่กั�บโปรเซสเซอื่ร�ลดลง

ปกต�แลั#วม�กจำะม+การื่ใช่#ข#อม)ลัใน่พิ��น่ท+�จำาก�ดกรื่ะจำ%กหน่0�ง ๆLoop การื่อ#างอ�งโค#ดแลัะข#อม)ลัส�วน่เลั.ก ๆ ส�วน่หน่0�งซ�า ๆ

Page 17: Ca บทที่สี่

CPU

Register

Main memor

y

Cache memor

y

อ%ปกรื่ณ�ต�อพิ�วง

Disk buffer

Disk cache บ�น่ท0กข#อม)ลัเป3น่กลั%�ม ใน่ครื่าวเด+ยว ข#อม)ลัท+�ใช่#บ�อยๆ อาจำจำะเก.บไว# Disk buffer ก�อน่ท+�ข#อม)ลัจำะถ่)กบ�น่ท0กจำรื่�ง ๆ

Page 18: Ca บทที่สี่

ลั�กษณะพิ��น่ฐาน่ของหน่�วยความจำา Cache

Page 19: Ca บทที่สี่

หน่�วยความจำาหลั�ก เก.บข#อม)ลั 2^n address

จำาน่วน่บลั.อก= (2^n)/k

Page 20: Ca บทที่สี่
Page 21: Ca บทที่สี่

Main memory

ถ่#าข#อม)ลัม+ใน่ Cache จำะ disable buffer ท��งสอง

Cache miss

Page 22: Ca บทที่สี่

องค�ปรื่ะกอบใน่การื่ออกแบบ Cache

Cache Size Write Policy

Mapping Function Line size

Replacement

Algorithm

Number of caches

Page 23: Ca บทที่สี่

Cache size

Cache ต#องม+ขน่าดเลั.ก ม+รื่าคาเฉลั+�ยต�อบ�ตน่��น่ใกลั#เค+ยงก�บรื่าคาของหน่�วยความจำาหลั�ก

คาน่วณรื่ะยะเวลัาแลั#วต#องใกลั#เค+ยงก�บการื่เข#าถ่0ง ข#อม)ลัของ Cache

ถ่#า Cache ใหญ�เก�น่ไป จำะทาให# Cache ทางาน่ช่#า

Page 24: Ca บทที่สี่

Mapping function

ตรื่วจำสอบว�าบลั.อกใดอย)�ใน่ Cacheกาหน่ดตาแหน่�งหน่�วยความจำาของแต�ลัะ

บลั.อกไปย�งช่�องส�ญญาณ Cache

Direct Associative

Set-Associative

Page 25: Ca บทที่สี่

Direct Mapping

i = j mod m

ต�วอย�าง ขน่าดของ cache = 64 Kbytes (64*1024 bytes) จำาน่วน่บลั.อก = 4 Bytes

** จำาน่วน่ช่�องส�ญญาณ = (64/4) = 16 Kbytes

i = หมายเลัขช่�องส�ญญาณ cachej = หมายเลัขบลั.อกm = จำาน่วน่ช่�องส�ญญาณ

Page 26: Ca บทที่สี่

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

Page 27: Ca บทที่สี่

หมายเลขช่�อื่งส�ญญาณ 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

Page 28: Ca บทที่สี่

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

Page 29: Ca บทที่สี่
Page 30: Ca บทที่สี่
Page 31: Ca บทที่สี่
Page 32: Ca บทที่สี่

Mapping function

ข�อื่ด� ค�อ เป3น่ว�ธิ+ท+�ง�ายแลัะสามารื่ถ่สรื่#างข0�น่มาใช่#งาน่ได#ด#วยต#น่ท%น่ต�ากว�าแบบอ��น่

ข�อื่ด�อื่ย ค�อ จำากการื่กาหน่ดตาแหน่�งคงท+� หากเก�ดม+การื่ อ#างอ�งถ่0งข#อม)ลัจำากสองบลั.อก (หรื่�อมากกว�า) ท+�อย)�ใน่

ตาแหน่�งท+�ต�างก�น่ใน่หน่�วยความจำาหลั�ก แต�บ�งเอ�ญอย)�ใน่ ตาแหน่�งเด+ยวก�น่ใน่แคช่แลั#ว ข#อม)ลัท��งสองบลั.อกน่��น่จำะต#อง

สลั�บเปลั+�ยน่ก�น่ถ่)กค�ดลัอกเข#ามาไว#ใน่แคช่ท+�ตาแหน่�งเด+ยวก�น่ เสมอ ท��งๆท+�แคช่ส�วน่อ��น่อาจำไม�ม+ข#อม)ลัอย)�เลัยก.ได#

ปรื่ากฏการื่ณ�น่+�เรื่+ยกว�า “trashing”

Page 33: Ca บทที่สี่

Associative mapping

หน่�วยความจำาแต�ลัะบลั.อก สามารื่ถ่ถ่)กอ�าน่เข#ามาไว#ใน่ Cache ช่�องใดก.ได#

Page 34: Ca บทที่สี่
Page 35: Ca บทที่สี่

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

Page 36: Ca บทที่สี่

Mapping function

ข�อื่ด� ม+ความย�ดหย%�น่ส)ง ข�อื่เส�ย ความซ�บซ#อน่ใน่การื่ตรื่วจำสอบป7ายบอก

ตาแหน่�งข#อม)ลัใน่ Cache ซ0�งต#องตรื่วจำสอบท%กตาแหน่�ง

Page 37: Ca บทที่สี่
Page 38: Ca บทที่สี่

Set associative mapping

หน่�วยความจำา cache แบ�งออกเป3น่ v set แต�ลัะเซตปรื่ะกอบด#วยช่�องส�ญญาณ k ช่�องi หมายเลัขเซตใน่ cachej หมายเลัขบลั.อกใน่หน่�วยความจำาหลั�กm จำาน่วน่ช่�องส�ญญาณใน่ cache

m= v * ki= j modulo v

Page 39: Ca บทที่สี่

Set associative mapping

ข�อื่ด� ใช่#ค�าใช่#จำ�ายเพิ��มข0�น่เพิ+ยงเลั.กน่#อย แต�ว�าปรื่ะส�ทธิ�ภาพิส)งข0�น่มาก

ข�อื่เส�ย ต#องคาน่วณจำาน่วน่เซตให#เหมาะสม

Page 40: Ca บทที่สี่

อ�ลักอรื่�ท0มการื่แทน่ท+�

LRU (Least recently used)• บลั.อกใหม�จำะมาแทน่ท+�บลั.อกเก�าท+�เก.บไว#ใน่ Cache น่าน่ท+�ส%ด แลัะม+การื่ใช่#น่#อยท+�ส%ด

FIFO (First-in-First-out)

LFU (Lease frequently used)• ทาการื่ทดแทน่บลั:อกท+�ถ่)กอ#างอ�งเป3น่จำาน่วน่น่#อยท+�ส%ด

Random

Page 41: Ca บทที่สี่

น่โยบายการื่บ�น่ท0กลังหน่�วยความจำาหลั�ก

ป+ญหา อาจำจำะม+อ%ปกรื่ณ�มากกว�าหน่0�งอย�างท+�ทาการื่อ�าน่หรื่�อบ�น่ท0กข#อม)ลัใน่หน่�วยความจำา

โปสเซสเซอรื่�ม+หลัายต�ว แต�ลัะต�วท+Cache เป3น่ของต�วเอง

Page 42: Ca บทที่สี่

Write through

• บ�น่ท0กท%กครื่��งท+�ม+ การื่ใช่# Cache

• ช่#าเพิรื่าะต#องต�ดต�อก�บหน่�วยความจำาหลั�ก

Write back

• สรื่#าง Update bit เอาไว#เช่.ค

• ข#อม)ลัใน่ Cache ใน่หน่�วยความจำาอาจำจำะไม�เหม�อน่ก�น่

Page 43: Ca บทที่สี่

ใน่กรื่ณ+ท+�ม+การื่ใช่# Bus แลัะม+ Cache เป3น่ของต�วเองท%กอ%ปกรื่ณ�

Cache coherencyBus watching with write throughHardware transparencyNoncacheable memory

Page 44: Ca บทที่สี่

Bus watching with write through

CacheMain

memory

อ%ปกรื่ณ�อ��น่ ๆ

Page 45: Ca บทที่สี่

Hardware transparency

Cache

Main memory

อ%ปกรื่ณ�อ��น่ ๆ

Hardware

Page 46: Ca บทที่สี่

Noncacheable memory

CacheMain

memory อ%ปกรื่ณ�อ��น่ ๆ

Page 47: Ca บทที่สี่

ขน่าดของบลั.อกใน่ Cache (line size)

บลั.อกขน่าดใหญ� ลัดจำาน่วน่บลั.อกท+�จำะ สามารื่ถ่อ�าน่เข#ามาเก.บไว#ใน่ Cache

บลั.อกขน่าดใหญ� ข#อม)ลัอ�าน่เข#ามาอาจำจำะไม�ถ่)กใช่#หรื่�อไม�เก+�ยวข#องก�น่

Page 48: Ca บทที่สี่

จำาน่วน่ของ cache

จำาน่วน่รื่ะด�บของ cache การื่ใช่# cache แบบรื่วมหรื่�อแบบแยก

Page 49: Ca บทที่สี่

Cache แบบหลัายรื่ะด�บ

Processor

L1 Cache

L2 Cache

CPU

System bus

Local bus

L2 เพิ��มปรื่ะส�ทธิ�ภาพิ แต�อ�ลักอรื่�ธิ0มการื่แทน่ท+� แลัะน่โยบายบ�น่ท0กข#อม)ลั

ก.ซ�บซ#อน่ไปด#วย

Page 50: Ca บทที่สี่

Unified and split cache

Unifiedcache

• คาส��ง + ข#อม)ลั• ม+อ�ตรื่าการื่ค#น่พิบข#อม)ลัท+�ต#องการื่มากกว�า

• การื่ออกแบบง�ายแลัะไม�ซ�บซ#อน่

Split cache

• ลัดความค�บค��งของ ข#อม)ลั ไม�ต#องรื่อการื่

ปรื่ะมวลัผลั• เหมาะก�บการื่ปรื่ะมวลัผลัแบบขน่าน่

Page 51: Ca บทที่สี่

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

Page 52: Ca บทที่สี่

PowerPC

Set – associative L1 8-way set –associative

Instruction cache อ�าน่คาส��งเพิ+ยงอย�างเด+ยว Data cache ป7อน่ข#อม)ลั integer, floating-point

L2 2-way set – associative