64
1 Cache Cache

Cache

Embed Size (px)

DESCRIPTION

Cache. หน่วยความจำในระบบคอมพิวเตอร์. หน่วยความจำในระบบคอมพิวเตอร์มีการจัดโครงสร้างเป็นลำดับชั้นดังนี้ รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด (อยู่ใกล้โปรเซสเซอร์มากที่สุด) หน่วยความจำ cache หนึ่งหรือสองระดับ ซึ่งถ้ามีหลายระดับมักจะเรียกว่า cache ระดับ L1, L2, … - PowerPoint PPT Presentation

Citation preview

11

CacheCache

22

หน่�วยความจำาใน่ระบบคอมพิ�วเตอร�หน่�วยความจำาใน่ระบบคอมพิ�วเตอร� หน่�วยความจำาใน่ระบบคอมพิ�วเตอร�ม�การจำ�ดโครงสร�างเป็�น่ลำาด�บหน่�วยความจำาใน่ระบบคอมพิ�วเตอร�ม�การจำ�ดโครงสร�างเป็�น่ลำาด�บ

ชั้�!น่ด�งน่�!ชั้� !น่ด�งน่�! ร�จำ�สเตอร�ภายใน่โป็รเซสเซอร� ร�จำ�สเตอร�ภายใน่โป็รเซสเซอร� : : ระด�บชั้�!น่ส%งส&ด ระด�บชั้�!น่ส%งส&ด ((อย%�ใกลำ�โป็รเซสเซอร�อย%�ใกลำ�โป็รเซสเซอร�

มากที่�(ส&ดมากที่�(ส&ด) ) หน่�วยความจำา หน่�วยความจำา cachecache หน่)(งหร*อสองระด�บ ซ)(งถ้�าม�หลำายระด�บม�กจำะหน่)(งหร*อสองระด�บ ซ)(งถ้�าม�หลำายระด�บม�กจำะ

เร�ยกว�าเร�ยกว�า cache cache ระด�บระด�บ L1, L2, …L1, L2, … หน่�วยความหลำ�ก หน่�วยความหลำ�ก :: ม�กสร�างมาจำากม�กสร�างมาจำาก DRAM(Dynamic Random DRAM(Dynamic Random

Access Memory) Access Memory) โดยที่�(วไป็ตาแหน่�งการอ�างอ�งข้�อม%ลำใน่หน่�วยความจำาหลำ�กโดยโดยที่�(วไป็ตาแหน่�งการอ�างอ�งข้�อม%ลำใน่หน่�วยความจำาหลำ�กโดย

โป็รเซสเซอร�น่�!น่ ม�กจำะเป็�น่ตาแหน่�งเด�ม ด�งน่�!น่หน่�วยความจำา โป็รเซสเซอร�น่�!น่ ม�กจำะเป็�น่ตาแหน่�งเด�ม ด�งน่�!น่หน่�วยความจำา cachecache ม�กจำะค�ดลำอกข้�อม%ลำใน่หน่�วยความจำาหลำ�กที่�(เคยถ้%กอ�างอ�งม�กจำะค�ดลำอกข้�อม%ลำใน่หน่�วยความจำาหลำ�กที่�(เคยถ้%กอ�างอ�งไป็แลำ�วเอาไว� ซ)(งถ้�าการที่างาน่ข้องไป็แลำ�วเอาไว� ซ)(งถ้�าการที่างาน่ข้อง cachecache ได�ร�บการออกแบบเป็�น่ได�ร�บการออกแบบเป็�น่อย�างด�แลำ�ว เวลำาส�วน่ใหญ่�โป็รเซสเซอร�ก0จำะเร�ยกใชั้�ข้�อม%ลำที่�(อย%�ใน่อย�างด�แลำ�ว เวลำาส�วน่ใหญ่�โป็รเซสเซอร�ก0จำะเร�ยกใชั้�ข้�อม%ลำที่�(อย%�ใน่ cachecache เป็�น่ส�วน่มากเป็�น่ส�วน่มาก

33

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา ความซ�บซ�อน่ข้องระบบหน่�วยความจำาสามารถ้ที่าให�เข้�าใจำได�ความซ�บซ�อน่ข้องระบบหน่�วยความจำาสามารถ้ที่าให�เข้�าใจำได�

ง�ายข้)!น่ ด�วยการอธิ�บายค&ณลำ�กษณะที่�(สาค�ญ่ข้องระบบหน่�วยง�ายข้)!น่ ด�วยการอธิ�บายค&ณลำ�กษณะที่�(สาค�ญ่ข้องระบบหน่�วยความจำา ด�งตารางด�าน่ลำ�างความจำา ด�งตารางด�าน่ลำ�างLocation Performance

Processor Access time Internal (main) Cycle time External (secondary) Transfer rateCapacity Physical Type Word size Semiconductor Number of words MagneticUnit of Transfer Optical Word Magneto-optical Block Physical CharacteristicsAccess Method Volatile/nonvolatile Sequential Erasable/nonerasable Direct Organization Random Associative

44

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา LocationLocation((สถ้าน่ที่�(สถ้าน่ที่�() ) : : หมายความถ้)งสถ้าน่ที่�(ที่�(หน่�วยความจำาอย%� หมายความถ้)งสถ้าน่ที่�(ที่�(หน่�วยความจำาอย%�

น่�(น่ค*ออย%�ภายใน่หร*อภายน่อกเคร*(องคอมพิ�วเตอร� น่�(น่ค*ออย%�ภายใน่หร*อภายน่อกเคร*(องคอมพิ�วเตอร� internal internal memory memory หมายถ้)งหน่�วยความจำาหลำ�กหมายถ้)งหน่�วยความจำาหลำ�ก(main memory), cache (main memory), cache น่อกจำากน่�!ก0ย�งม�น่อกจำากน่�!ก0ย�งม� registerregister ซ)(งอย%�ภายใน่โป็รเซสเซอร� ส�วน่ ซ)(งอย%�ภายใน่โป็รเซสเซอร� ส�วน่ external memory external memory ค*อหน่�วยความจำาภายน่อก เชั้�น่ ด�สก�ค*อหน่�วยความจำาภายน่อก เชั้�น่ ด�สก�, , เที่ป็เที่ป็

CapacityCapacity((ความจำ&ความจำ&)) : : สาหร�บหน่�วยความจำาภายใน่ ความจำ&จำะใชั้�สาหร�บหน่�วยความจำาภายใน่ ความจำ&จำะใชั้�หน่�วยเป็�น่หน่�วยเป็�น่ byte byte หร*อหร*อ wordword โดยป็กต� โดยป็กต� 1 word 1 word ม�ข้น่าด ม�ข้น่าด 8, 16, 8, 16, 32 bit32 bit ส�วน่หน่�วยความจำาภายน่อกน่�ยมแสดงความจำ&ใน่หน่�วยส�วน่หน่�วยความจำาภายน่อกน่�ยมแสดงความจำ&ใน่หน่�วยข้องข้อง bytebyte

Unit of transferUnit of transfer((หน่�วยใน่การถ้�ายข้�อม%ลำหน่�วยใน่การถ้�ายข้�อม%ลำ)) : : สาหร�บหน่�วยความสาหร�บหน่�วยความจำาภายใน่ หน่�วยใน่การถ้�ายข้�อม%ลำเที่�าก�บ จำาน่วน่สายส�ญ่ญ่าณจำาภายใน่ หน่�วยใน่การถ้�ายข้�อม%ลำเที่�าก�บ จำาน่วน่สายส�ญ่ญ่าณข้�อม%ลำเข้�าส%�แลำะออกจำากหน่�วยความจำา โดยป็กต�จำะม�ข้น่าดเที่�าก�บข้�อม%ลำเข้�าส%�แลำะออกจำากหน่�วยความจำา โดยป็กต�จำะม�ข้น่าดเที่�าก�บความยาวข้องความยาวข้อง wordword แต�อาจำจำะม�ข้น่าดใหญ่�กว�าก0ได�เชั้�น่ แต�อาจำจำะม�ข้น่าดใหญ่�กว�าก0ได�เชั้�น่ 64,128,256 64,128,256 บ�ตบ�ต

55

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา Access methodAccess method((ว�ธิ�การเข้�าถ้)งหน่�วยความจำาว�ธิ�การเข้�าถ้)งหน่�วยความจำา)) ม�รายลำะเอ�ยดม�รายลำะเอ�ยด

ด�งน่�!ด�งน่�! Sequential accessSequential access: : การเข้�าถ้)งหน่�วยความจำาแบบเร�ยงลำาด�บ ใชั้�การเข้�าถ้)งหน่�วยความจำาแบบเร�ยงลำาด�บ ใชั้�

สาหร�บ หน่�วยความจำาที่�(ม�โครงสร�างป็ระกอบด�วยหน่�วยต�าง ๆ ซ)(งเร�ยกสาหร�บ หน่�วยความจำาที่�(ม�โครงสร�างป็ระกอบด�วยหน่�วยต�าง ๆ ซ)(งเร�ยกว�า ว�า record record การเข้�าไป็อ�าน่หร*อบ�น่ที่)กข้�อม%ลำจำะต�องกระที่าเร�ยงตามการเข้�าไป็อ�าน่หร*อบ�น่ที่)กข้�อม%ลำจำะต�องกระที่าเร�ยงตามลำาด�บ ข้�อม%ลำเก�(ยวก�บตาแหน่�งที่�(อย%�ถ้%กน่ามาใชั้�ใน่การแยกตาแหน่�งลำาด�บ ข้�อม%ลำเก�(ยวก�บตาแหน่�งที่�(อย%�ถ้%กน่ามาใชั้�ใน่การแยกตาแหน่�งแต�ลำะแต�ลำะ recordrecord ออกจำากก�น่ แลำะชั้�วยใน่การกระบวน่การอ�าน่ข้�อม%ลำ ออกจำากก�น่ แลำะชั้�วยใน่การกระบวน่การอ�าน่ข้�อม%ลำ ต�วอย�างการเข้�าถ้)งหน่�วยความจำาแบบน่�!ได�แก� เที่ป็แม�เหลำ0กต�วอย�างการเข้�าถ้)งหน่�วยความจำาแบบน่�!ได�แก� เที่ป็แม�เหลำ0ก

Direct accessDirect access: : การเข้�าถ้)งหน่�วยความจำาแบบตรงการเข้�าถ้)งหน่�วยความจำาแบบตรง กระบวน่การน่�!กระบวน่การน่�!สามารถ้เป็ลำ�(ยน่ตาแหน่�งที่�(อย%�ใน่ป็5จำจำ&บ�น่ไป็เป็�น่ตาแหน่�งที่�(ต�องการ โดยสามารถ้เป็ลำ�(ยน่ตาแหน่�งที่�(อย%�ใน่ป็5จำจำ&บ�น่ไป็เป็�น่ตาแหน่�งที่�(ต�องการ โดยข้�ามระเบ�ยน่ข้�อม%ลำที่�(อย%�ระหว�างกลำางไป็ ต�วอย�างได�แก� ด�สก�ข้�ามระเบ�ยน่ข้�อม%ลำที่�(อย%�ระหว�างกลำางไป็ ต�วอย�างได�แก� ด�สก�

66

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา Random accessRandom access:: การเข้�าถ้)งหน่�วยความจำาแบบไม�ม�ลำาด�บการเข้�าถ้)งหน่�วยความจำาแบบไม�ม�ลำาด�บ แต�ลำะแต�ลำะ

ตาแหน่�งใน่หน่�วยความจำาจำะต�องม�กลำไกใน่การกาหน่ดตาแหน่�งเฉพิาะที่�(ตาแหน่�งใน่หน่�วยความจำาจำะต�องม�กลำไกใน่การกาหน่ดตาแหน่�งเฉพิาะที่�(ไม�ม�การซ!าก�น่ ระยะเวลำาที่�(ใชั้�ใน่การเข้�าถ้)งแต�ลำะหน่�วยน่�!น่เป็�น่อ�สระจำากไม�ม�การซ!าก�น่ ระยะเวลำาที่�(ใชั้�ใน่การเข้�าถ้)งแต�ลำะหน่�วยน่�!น่เป็�น่อ�สระจำากลำาด�บการเข้�าถ้)งหน่�วยความจำาที่�(เก�ดข้)!น่ก�อน่หน่�าน่�! แลำะใชั้�ระยะเวลำาเที่�าลำาด�บการเข้�าถ้)งหน่�วยความจำาที่�(เก�ดข้)!น่ก�อน่หน่�าน่�! แลำะใชั้�ระยะเวลำาเที่�าก�น่เสมอ ด�งน่�!น่จำ)งสามารถ้เลำ*อกตาแหน่�งใดๆ ใน่หน่�วยความจำาได�โดยก�น่เสมอ ด�งน่�!น่จำ)งสามารถ้เลำ*อกตาแหน่�งใดๆ ใน่หน่�วยความจำาได�โดยไม�ต�องเร�ยงลำาด�บใด แลำะสามารถ้เข้�าถ้)งตาแหน่�งน่�!น่ได�โดยตรง ไม�ต�องเร�ยงลำาด�บใด แลำะสามารถ้เข้�าถ้)งตาแหน่�งน่�!น่ได�โดยตรง ต�วอย�างค*อ หน่�วยความจำาหลำ�กต�วอย�างค*อ หน่�วยความจำาหลำ�ก(main memory)(main memory)

AssociativeAssociative: : หร*อความเก�(ยวข้�อง จำ�ดว�าเป็�น่การเข้�าถ้)งหน่�วยความจำาหร*อความเก�(ยวข้�อง จำ�ดว�าเป็�น่การเข้�าถ้)งหน่�วยความจำาแบบแบบ random accessrandom access อย�างหน่)(งที่�(ม�การเป็ร�ยบเที่�ยบข้�อม%ลำบ�ตจำาน่วน่อย�างหน่)(งที่�(ม�การเป็ร�ยบเที่�ยบข้�อม%ลำบ�ตจำาน่วน่หน่)(งหน่)(ง((ที่�(กาหน่ดตาแหน่�งไว�ลำ�วงหน่�าที่�(กาหน่ดตาแหน่�งไว�ลำ�วงหน่�า) ) ก�บก�บ wordword ที่�(เป็�น่ต�วเลำ*อกจำาน่วน่ที่�(เป็�น่ต�วเลำ*อกจำาน่วน่หน่)(ง หน่)(ง ((กาหน่ดไว�ลำ�วงหน่�าเชั้�น่ก�น่กาหน่ดไว�ลำ�วงหน่�าเชั้�น่ก�น่) ) เพิ*(อค�น่หาตาแหน่�งที่�(สอดคลำ�องก�น่ เพิ*(อค�น่หาตาแหน่�งที่�(สอดคลำ�องก�น่ ด�งน่�!น่ด�งน่�!น่ wordword ที่�(ได�ร�บจำ)งเก�ดข้)!น่จำากการค�น่หาข้�อม%ลำใน่ที่�(ได�ร�บจำ)งเก�ดข้)!น่จำากการค�น่หาข้�อม%ลำใน่ word word แที่น่ที่�(จำะแที่น่ที่�(จำะเป็�น่ตาแหน่�งข้องเป็�น่ตาแหน่�งข้อง word word น่�!น่ ๆ การที่างาน่อ*(น่ม�ลำ�กษณะแบบเด�ยวก�บน่�!น่ ๆ การที่างาน่อ*(น่ม�ลำ�กษณะแบบเด�ยวก�บ random accessrandom access ค*อเวลำาที่�(ใชั้�ใน่การเข้�าถ้)งข้�อม%ลำน่�!น่คงที่�(แลำะไม�ข้)!น่อย%�ค*อเวลำาที่�(ใชั้�ใน่การเข้�าถ้)งข้�อม%ลำน่�!น่คงที่�(แลำะไม�ข้)!น่อย%�ก�บการเข้�าถ้)งข้�อม%ลำใน่คร�!งก�อน่หน่�า ต�วอย�างค*อ หน่�วยความจำาก�บการเข้�าถ้)งข้�อม%ลำใน่คร�!งก�อน่หน่�า ต�วอย�างค*อ หน่�วยความจำา cachecache

77

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา PerformancePerformance: : ป็ระส�ที่ธิ�ภาพิ ซ)(งแบ�งการว�ดเป็�น่สามเร*(อง ด�งน่�!ป็ระส�ที่ธิ�ภาพิ ซ)(งแบ�งการว�ดเป็�น่สามเร*(อง ด�งน่�!

Access time (latency):Access time (latency): สาหร�บหน่�วยความจำาแบบ สาหร�บหน่�วยความจำาแบบ random random access memoryaccess memory ระยะเวลำาใน่การเข้�าถ้)งหน่�วยความจำา หมายถ้)ง ระระยะเวลำาใน่การเข้�าถ้)งหน่�วยความจำา หมายถ้)ง ระเวลำาที่�(ใชั้�ใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำค*อ ระยะเวลำาน่�บต�!งแต�ที่�(ตาแหน่�งเวลำาที่�(ใชั้�ใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำค*อ ระยะเวลำาน่�บต�!งแต�ที่�(ตาแหน่�งข้�อม%ลำได�ถ้%กส�งมาถ้)งหน่�วยความจำา จำน่กระที่�(งข้�อม%ลำได�ถ้%กบ�น่ที่)ก ข้�อม%ลำได�ถ้%กส�งมาถ้)งหน่�วยความจำา จำน่กระที่�(งข้�อม%ลำได�ถ้%กบ�น่ที่)ก สาหร�บหน่�วยความจำาแบบอ*(น่ที่�(ไม�ใชั้�สาหร�บหน่�วยความจำาแบบอ*(น่ที่�(ไม�ใชั้� random access memoryrandom access memory จำะจำะหมายถ้)ง ระยะเวลำาที่�(เคลำ*(อน่ย�ายกลำไกใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำไป็ย�งหมายถ้)ง ระยะเวลำาที่�(เคลำ*(อน่ย�ายกลำไกใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำไป็ย�งตาแหน่�งข้�อม%ลำที่�(ต�องการตาแหน่�งข้�อม%ลำที่�(ต�องการ

Memory cycle timeMemory cycle time:: ใชั้�ก�บหน่�วยความจำาแบบใชั้�ก�บหน่�วยความจำาแบบ random access random access memorymemory ระยะเวลำาวงรอบหน่�วยความจำาป็ระกอบด�วย ระยะเวลำาใน่การระยะเวลำาวงรอบหน่�วยความจำาป็ระกอบด�วย ระยะเวลำาใน่การเข้�าถ้)งหน่�วยความจำาเข้�าถ้)งหน่�วยความจำา (access time)(access time) รวมก�บระยะเวลำาอ*(น่ ๆ ที่�(จำาเป็�น่รวมก�บระยะเวลำาอ*(น่ ๆ ที่�(จำาเป็�น่ต�องใชั้� จำน่ถ้)งเวลำาที่�(จำะเก�ดการอ�าน่หร*อบ�น่ที่)กข้�อม%ลำใน่คร�!งต�อไป็ ระยะต�องใชั้� จำน่ถ้)งเวลำาที่�(จำะเก�ดการอ�าน่หร*อบ�น่ที่)กข้�อม%ลำใน่คร�!งต�อไป็ ระยะเวลำาอ*(น่ที่�(ต�องใชั้�เชั้�น่ ระยะเวลำาที่�(รอให�ส�ญ่ญ่าณต�าง ๆ เข้�าส%�สถ้าน่ะเวลำาอ*(น่ที่�(ต�องใชั้�เชั้�น่ ระยะเวลำาที่�(รอให�ส�ญ่ญ่าณต�าง ๆ เข้�าส%�สถ้าน่ะเสถ้�ยร แลำะระยะเวลำาที่�(ต�องรอให�ส�ญ่ญ่าณเด�มหายไป็เสถ้�ยร แลำะระยะเวลำาที่�(ต�องรอให�ส�ญ่ญ่าณเด�มหายไป็((สายส�ญ่ญ่าณเข้�าสายส�ญ่ญ่าณเข้�าส%�สถ้าน่ะว�างส%�สถ้าน่ะว�าง หร*อหร*อ idle)idle)

88

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา Transfer rateTransfer rate:: อ�ตราการถ้�ายเที่ข้�อม%ลำ หมายถ้)ง อ�ตราที่�(อ�ตราการถ้�ายเที่ข้�อม%ลำ หมายถ้)ง อ�ตราที่�(

ข้�อม%ลำถ้%กถ้�ายที่อดเข้�าส%�หร*อออกจำากหน่�วยความจำา สาหร�บข้�อม%ลำถ้%กถ้�ายที่อดเข้�าส%�หร*อออกจำากหน่�วยความจำา สาหร�บหน่�วยความจำาแบบหน่�วยความจำาแบบ random access memory random access memory ระยะเวลำาน่�!ระยะเวลำาน่�!เที่�าก�บเที่�าก�บ 1/cycle time1/cycle time สาหร�บหน่�วยความจำาแบบอ*(น่ระยะเวลำาสาหร�บหน่�วยความจำาแบบอ*(น่ระยะเวลำาน่�!จำะเที่�าก�บน่�!จำะเที่�าก�บ

TTNN = T = TAA + (N/R) + (N/R)

TTNN = = ระยะเวลำาโดยเฉลำ�(ยใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำ ระยะเวลำาโดยเฉลำ�(ยใน่การอ�าน่หร*อบ�น่ที่)กข้�อม%ลำ N N บ�ตบ�ต TTAA = = ระยะเวลำาเข้�าถ้)งข้�อม%ลำโดยเฉลำ�(ยระยะเวลำาเข้�าถ้)งข้�อม%ลำโดยเฉลำ�(ย N = N = จำาน่วน่บ�ตข้�อม%ลำจำาน่วน่บ�ตข้�อม%ลำ R = R = อ�ตราการถ้�ายเที่ข้�อม%ลำ ม�หน่�วยเป็�น่บ�ตต�อว�น่าที่�อ�ตราการถ้�ายเที่ข้�อม%ลำ ม�หน่�วยเป็�น่บ�ตต�อว�น่าที่�

99

ค&ณลำ�กษณะข้องระบบหน่�วยความจำาค&ณลำ�กษณะข้องระบบหน่�วยความจำา Physical typePhysical type: : หน่�วยความจำาอาจำแบ�งออกตามลำ�กษณะที่างหน่�วยความจำาอาจำแบ�งออกตามลำ�กษณะที่าง

กายภายได�แก� หน่�วยความจำาเซม�กายภายได�แก� หน่�วยความจำาเซม�คอน่ด�กเตอร�คอน่ด�กเตอร�(semiconductor), (semiconductor), หน่�วยความจำาแบบผิ�วฉาบหน่�วยความจำาแบบผิ�วฉาบด�วยสารแม�เหลำ0กด�วยสารแม�เหลำ0ก(magnetic surface memory) (magnetic surface memory) ซ)(งใชั้�ด�สก�ซ)(งใชั้�ด�สก�แลำะเที่ป็มาเป็�น่หน่�วยความจำาแลำะเที่ป็มาเป็�น่หน่�วยความจำา, , การใชั้�อ&ป็กรณ� การใชั้�อ&ป็กรณ� opticoptic แลำะ แลำะ magneto-opticmagneto-optic มาเป็�น่หน่�วยความจำามาเป็�น่หน่�วยความจำา

Physical characteristicPhysical characteristic: : ค&ณสมบ�ต�ที่างกายภาพิข้องค&ณสมบ�ต�ที่างกายภาพิข้องอ&ป็กรณ�บ�น่ที่)กข้�อม%ลำน่�!น่ม�ความสาค�ญ่ต�อการใชั้�งาน่อย�างมาก อ&ป็กรณ�บ�น่ที่)กข้�อม%ลำน่�!น่ม�ความสาค�ญ่ต�อการใชั้�งาน่อย�างมาก ใน่หน่�วยความจำาที่�(เป็�น่แบบไม�ถ้าวรใน่หน่�วยความจำาที่�(เป็�น่แบบไม�ถ้าวร(volatile)(volatile) น่�!น่จำะส%ญ่เส�ยน่�!น่จำะส%ญ่เส�ยข้�อม%ลำที่�(บ�น่ที่)กอย%�ใน่ที่�น่ที่�ที่�(ถ้%กต�ดพิลำ�งงาน่ไฟฟ9า ส�วน่หน่�วยข้�อม%ลำที่�(บ�น่ที่)กอย%�ใน่ที่�น่ที่�ที่�(ถ้%กต�ดพิลำ�งงาน่ไฟฟ9า ส�วน่หน่�วยความจำาแบบถ้าวรความจำาแบบถ้าวร(non-volatile) (non-volatile) จำะสามารถ้บ�น่ที่)กข้�อม%ลำไว�ได�จำะสามารถ้บ�น่ที่)กข้�อม%ลำไว�ได�ตลำอดเวลำา หน่�วยความจำาแบบผิ�วฉาบสารแม�เหลำ0กเป็�น่ตลำอดเวลำา หน่�วยความจำาแบบผิ�วฉาบสารแม�เหลำ0กเป็�น่ต�วอย�างข้อง ต�วอย�างข้อง non-volatile non-volatile ส�วน่เซม�คอน่ด�กเตอร�น่�!น่เป็�น่ได�ที่�!งส�วน่เซม�คอน่ด�กเตอร�น่�!น่เป็�น่ได�ที่�!ง volatile volatile แลำะ แลำะ non-volatile non-volatile ข้)!น่อย%�ก�บว�ตถ้&ป็ระสงค�ใน่ตอน่ผิลำ�ตข้)!น่อย%�ก�บว�ตถ้&ป็ระสงค�ใน่ตอน่ผิลำ�ต

1010

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา เง*(อน่ไข้สาค�ญ่ข้องการออกแบบหน่�วยความจำา ค*อ ราคา ป็ร�มาณ แลำะเง*(อน่ไข้สาค�ญ่ข้องการออกแบบหน่�วยความจำา ค*อ ราคา ป็ร�มาณ แลำะ

เวลำาการเข้�าถ้)งหน่�วยความจำา ซ)(งเง*(อน่ไข้ที่�!งสามป็ระการน่�!ม�ความเวลำาการเข้�าถ้)งหน่�วยความจำา ซ)(งเง*(อน่ไข้ที่�!งสามป็ระการน่�!ม�ความส�มพิ�น่ธิ�ก�น่ ด�งน่�!ส�มพิ�น่ธิ�ก�น่ ด�งน่�! การเพิ�(มความเร0วใน่การเข้�าถ้)งข้�อม%ลำ จำะที่าให�หน่�วยความจำาม�ราคาส%งข้)!น่การเพิ�(มความเร0วใน่การเข้�าถ้)งข้�อม%ลำ จำะที่าให�หน่�วยความจำาม�ราคาส%งข้)!น่ ป็ร�มาณหน่�วยความจำาเพิ�(มข้)!น่ จำะที่าให�ราคาต�อหน่�วยลำดลำงป็ร�มาณหน่�วยความจำาเพิ�(มข้)!น่ จำะที่าให�ราคาต�อหน่�วยลำดลำง ป็ร�มาณหน่�วยความจำาเพิ�(มข้)!น่ จำะที่าให�เส�ยเวลำาใน่การเข้�าถ้)งข้�อม%ลำใน่ป็ร�มาณหน่�วยความจำาเพิ�(มข้)!น่ จำะที่าให�เส�ยเวลำาใน่การเข้�าถ้)งข้�อม%ลำใน่

หน่�วยความจำามากข้)!น่หน่�วยความจำามากข้)!น่ หน่ที่างใน่การแก�ป็5ญ่หาความซ�บซ�อน่น่�! สามารถ้ที่าได�โดยการใชั้�หน่ที่างใน่การแก�ป็5ญ่หาความซ�บซ�อน่น่�! สามารถ้ที่าได�โดยการใชั้�

เที่คโน่โลำย�หน่�วยความจำาหลำายแบบมาผิสมก�น่เป็�น่โครงสร�างลำาด�บชั้�!น่เที่คโน่โลำย�หน่�วยความจำาหลำายแบบมาผิสมก�น่เป็�น่โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา ด�งโครงสร�างด�งร%ป็หน่�าถ้�ดไป็ เม*(อพิ�จำารณาหน่�วยข้องหน่�วยความจำา ด�งโครงสร�างด�งร%ป็หน่�าถ้�ดไป็ เม*(อพิ�จำารณาหน่�วยความจำาที่�(อย%�ใน่ระด�บบน่ลำงลำ�างจำะพิบว�าความจำาที่�(อย%�ใน่ระด�บบน่ลำงลำ�างจำะพิบว�า

(a) (a) ม�ราคาต�อบ�ตต(าลำงม�ราคาต�อบ�ตต(าลำง (b) (b) ม�ป็ร�มาณมากข้)!น่ม�ป็ร�มาณมากข้)!น่(c)(c) ใชั้�เวลำาใน่การเข้�าถ้)งข้�อม%ลำน่าน่ข้)!น่ใชั้�เวลำาใน่การเข้�าถ้)งข้�อม%ลำน่าน่ข้)!น่ (d) (d) ม�การต�ดต�อก�บม�การต�ดต�อก�บโป็รเซสเซอร�ลำดลำงโป็รเซสเซอร�ลำดลำง

1111

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา จำากร%ป็โครงสร�างจำะเห0น่ได�ว�า หน่�วยความจำาราคาแพิงซ)(งจำากร%ป็โครงสร�างจำะเห0น่ได�ว�า หน่�วยความจำาราคาแพิงซ)(ง

ม�ความเร0วส%งใน่ระด�บบน่จำะถ้%กแที่น่ที่�(ด�วยหน่�วยความจำาม�ความเร0วส%งใน่ระด�บบน่จำะถ้%กแที่น่ที่�(ด�วยหน่�วยความจำาราคาถ้%ก ป็ร�มาณมาก แลำะที่างาน่ได�ชั้�าลำงใน่ระด�บลำ�าง ราคาถ้%ก ป็ร�มาณมาก แลำะที่างาน่ได�ชั้�าลำงใน่ระด�บลำ�าง ก&ญ่แจำสาค�ญ่ข้องความสาเร0จำข้องโครงสร�างลำาด�บชั้�!น่น่�!ก&ญ่แจำสาค�ญ่ข้องความสาเร0จำข้องโครงสร�างลำาด�บชั้�!น่น่�!ค*อ ค&ณสมบ�ต�ใน่ข้�อค*อ ค&ณสมบ�ต�ใน่ข้�อ (d)(d) น่�(น่ค*อการลำดการต�ดต�อก�บน่�(น่ค*อการลำดการต�ดต�อก�บหน่�วยความจำาใน่ระด�บลำ�างให�เหลำ*อน่�อยที่�(ส&ดหน่�วยความจำาใน่ระด�บลำ�างให�เหลำ*อน่�อยที่�(ส&ด

1212

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

Inboardmemory

RegistersCacheMain

memory

Outboardstorage

Magnetic diskCD-ROMCD-RW

DVD-RWDVD-RAM

Off-Linestorage

Magnetic tape

T1 + T2

T2

T1

Ave

rage

acc

ess

time

0 1Fraction of accesses involving only level 1 (hit ratio)

ป็ระส�ที่ธิ�ภาพิข้องหน่�วยความจำา 2 ระด�บ

1313

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา สมมต�ว�าโป็รเซสเซอร�สามารถ้อ�างอ�งถ้)งหน่�วยความจำาสองระด�บ สมมต�ว�าโป็รเซสเซอร�สามารถ้อ�างอ�งถ้)งหน่�วยความจำาสองระด�บ

ระด�บที่�(ระด�บที่�( 11 ป็ระกอบด�วยหน่�วยความจำาจำาน่วน่ป็ระกอบด�วยหน่�วยความจำาจำาน่วน่ 10001000 wordswords ซ)(งม�ซ)(งม�ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำ 0.010.01 ไมโครว�น่าที่� หน่�วยความจำาไมโครว�น่าที่� หน่�วยความจำาระด�บที่�(ระด�บที่�( 22 ป็ระกอบด�วยหน่�วยความจำาจำาน่วน่ป็ระกอบด�วยหน่�วยความจำาจำาน่วน่ 100000 words100000 words ซ)(งซ)(งม�ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำม�ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำ 0.10.1 ไมโครว�น่าที่� ไมโครว�น่าที่�

ถ้�าโป็รเซสเซอร�ต�องการข้�อม%ลำถ้�าโป็รเซสเซอร�ต�องการข้�อม%ลำ 1 word1 word จำากหน่�วยความจำาใน่ระด�บจำากหน่�วยความจำาใน่ระด�บที่�(ที่�( 11 ก0สามารถ้ที่าได�ที่�น่ที่� แต�ถ้�าข้�อม%ลำน่�!น่อย%�ใน่หน่�วยความจำาระด�บก0สามารถ้ที่าได�ที่�น่ที่� แต�ถ้�าข้�อม%ลำน่�!น่อย%�ใน่หน่�วยความจำาระด�บที่�(ที่�( 22 ข้�อม%ลำน่�!น่จำะต�องถ้%กค�ดลำอกไป็ไว�ที่�(หน่�วยความจำาระด�บที่�(ข้�อม%ลำน่�!น่จำะต�องถ้%กค�ดลำอกไป็ไว�ที่�(หน่�วยความจำาระด�บที่�( 11 ก�อน่ จำากน่�!น่โป็รเซสเซอร�จำ)งจำะน่าข้�อม%ลำไป็ใชั้�ได�ก�อน่ จำากน่�!น่โป็รเซสเซอร�จำ)งจำะน่าข้�อม%ลำไป็ใชั้�ได�

จำากกราฟแสดงให�เห0น่ถ้)งความส�มพิ�น่ธิ�ข้องเหต&การณ�ที่�(สมม&ต�ข้)!น่จำากกราฟแสดงให�เห0น่ถ้)งความส�มพิ�น่ธิ�ข้องเหต&การณ�ที่�(สมม&ต�ข้)!น่มาน่�! ใน่ร%ป็เป็�น่ระยะเวลำาโดยเฉลำ�(ยข้องการเข้�าถ้)งหน่�วยความจำามาน่�! ใน่ร%ป็เป็�น่ระยะเวลำาโดยเฉลำ�(ยข้องการเข้�าถ้)งหน่�วยความจำา (average access time)(average access time) ใน่ร%ป็ฟ5งก�ชั้�น่ข้องอ�ตราการอ�างอ�งใน่ร%ป็ฟ5งก�ชั้�น่ข้องอ�ตราการอ�างอ�งข้�อม%ลำใน่หน่�วยความจำาระด�บที่�( ข้�อม%ลำใน่หน่�วยความจำาระด�บที่�( 1 (hit ratio)1 (hit ratio) โดยที่�(โดยที่�(

1414

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาH = H = ส�ดส�วน่ข้องการอ�างอ�งหน่�วยความจำา ที่�(สามารถ้พิบข้�อม%ลำที่�(ต�องการส�ดส�วน่ข้องการอ�างอ�งหน่�วยความจำา ที่�(สามารถ้พิบข้�อม%ลำที่�(ต�องการใน่ใน่

หน่�วยความจำาระด�บที่�(หน่�วยความจำาระด�บที่�( 11T1 = T1 = ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำที่�(หน่�วยความจำาระด�บที่�(ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำที่�(หน่�วยความจำาระด�บที่�( 11T2 =T2 = ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำที่�(หน่�วยความจำาระด�บที่�(ระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำที่�(หน่�วยความจำาระด�บที่�( 22

จำะเห0น่ได�ว�าถ้�าการอ�างอ�งหน่�วยความจำาใน่ระด�บที่�(จำะเห0น่ได�ว�าถ้�าการอ�างอ�งหน่�วยความจำาใน่ระด�บที่�( 11 ม�เป็อร�เซ0น่ต�ส%งม�เป็อร�เซ0น่ต�ส%งข้)!น่ ค�าเฉลำ�(ยโดยรวมข้องระยะเวลำาใน่การอ�างอ�งหน่�วยความจำา จำะม�ข้)!น่ ค�าเฉลำ�(ยโดยรวมข้องระยะเวลำาใน่การอ�างอ�งหน่�วยความจำา จำะม�ค�าใกลำ�เค�ยงก�บระยะเวลำาที่�(ใชั้�ใน่การอ�างอ�งหน่�วยความจำาระด�บที่�(ค�าใกลำ�เค�ยงก�บระยะเวลำาที่�(ใชั้�ใน่การอ�างอ�งหน่�วยความจำาระด�บที่�( 11

จำากต�วอย�างที่�(สมมต�ข้)!น่ ถ้�าจำากต�วอย�างที่�(สมมต�ข้)!น่ ถ้�า 95%95% ข้องการอ�างอ�งที่�!งหมด เก�ดข้)!น่ใน่ข้องการอ�างอ�งที่�!งหมด เก�ดข้)!น่ใน่หน่�วยความจำาระด�บที่�(หน่�วยความจำาระด�บที่�( 11 แลำ�ว ค�าเฉลำ�(ยข้องระยะเวลำาใน่การอ�างอ�งแลำ�ว ค�าเฉลำ�(ยข้องระยะเวลำาใน่การอ�างอ�งข้�อม%ลำจำะเป็�น่ข้�อม%ลำจำะเป็�น่(0.95)(0.01(0.95)(0.01s) + (0.05)(0.1 s) + (0.05)(0.1 s+0.01s+0.01s) = 0.0095+0.0055s) = 0.0095+0.0055

= 0.015 = 0.015 ss

1515

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา ใน่ต�วอย�างข้�างต�น่ ค�าเฉลำ�(ยใน่การเข้�าถ้)งหน่�วยความจำาม�ค�าใน่ต�วอย�างข้�างต�น่ ค�าเฉลำ�(ยใน่การเข้�าถ้)งหน่�วยความจำาม�ค�า

ใกลำ�เค�ยงก�บใกลำ�เค�ยงก�บ 0.01 0.01 s s มากกว�ามากกว�า 0.10.1 s s ตามที่�(ต�องการ ตามที่�(ต�องการ การใชั้�หน่�วยความจำาสองระด�บ ชั้�วยลำดระยะเวลำาใน่การเข้�าการใชั้�หน่�วยความจำาสองระด�บ ชั้�วยลำดระยะเวลำาใน่การเข้�า

ถ้)งหน่�วยความจำาได� ใน่ที่างพิ*!น่ฐาน่เม*(อเง*(อน่ไข้ถ้)งหน่�วยความจำาได� ใน่ที่างพิ*!น่ฐาน่เม*(อเง*(อน่ไข้ (a)(a) ถ้)งถ้)ง (d) (d) เป็�น่จำร�ง การที่าเที่คโน่โลำย�ต�าง ๆ มาป็ระย&กต�ใชั้�จำะที่าให�เก�ดเป็�น่จำร�ง การที่าเที่คโน่โลำย�ต�าง ๆ มาป็ระย&กต�ใชั้�จำะที่าให�เก�ดความหลำากหลำายที่�(จำะที่าให�เง*(อน่ไข้ ความหลำากหลำายที่�(จำะที่าให�เง*(อน่ไข้ (a)(a) ถ้)งถ้)ง (c)(c) เป็�น่จำร�ง ส�วน่เป็�น่จำร�ง ส�วน่เง*(อน่ไข้เง*(อน่ไข้ (d) (d) น่�!น่ม�กจำะเป็�น่จำร�งได�โดยอ�ตโน่ม�ต�น่�!น่ม�กจำะเป็�น่จำร�งได�โดยอ�ตโน่ม�ต�

ความส�มพิ�น่ธิ�น่�! สามารถ้น่าไป็ใชั้�ได�ก�บระบบที่�(ม�หน่�วยความความส�มพิ�น่ธิ�น่�! สามารถ้น่าไป็ใชั้�ได�ก�บระบบที่�(ม�หน่�วยความจำาหลำายระด�บ หน่�วยความจำาที่�(ที่างาน่เร0วที่�(ส&ด ม�ข้น่าดเลำ0กจำาหลำายระด�บ หน่�วยความจำาที่�(ที่างาน่เร0วที่�(ส&ด ม�ข้น่าดเลำ0กที่�(ส&ด แลำะม�ราคาแพิงที่�(ส&ดก0ค*อ ร�จำ�สเตอร� ซ)(งอย%�ใน่ต�วที่�(ส&ด แลำะม�ราคาแพิงที่�(ส&ดก0ค*อ ร�จำ�สเตอร� ซ)(งอย%�ใน่ต�วโป็รเซสเซอร� โดยที่�(วไป็โป็รเซสเซอร�จำะม�ร�จำ�สเตอร�ป็ระมาณโป็รเซสเซอร� โดยที่�(วไป็โป็รเซสเซอร�จำะม�ร�จำ�สเตอร�ป็ระมาณ 20-3020-30 ต�ว ใน่ข้ณะที่�(บางเคร*(องอาจำม�มากน่�บร�อยต�วก0ได�ต�ว ใน่ข้ณะที่�(บางเคร*(องอาจำม�มากน่�บร�อยต�วก0ได�

1616

โครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำาโครงสร�างลำาด�บชั้�!น่ข้องหน่�วยความจำา เลำ*(อน่ลำงมาสองระด�บจำะเป็�น่หน่�วยความจำาหลำ�กเลำ*(อน่ลำงมาสองระด�บจำะเป็�น่หน่�วยความจำาหลำ�ก(main memory)(main memory)

ซ)(งเป็�น่หน่�วยความจำาที่�(ถ้%กน่ามาใชั้�งาน่ที่�(วไป็ใน่เคร*(องคอมพิ�วเตอร� ซ)(งเป็�น่หน่�วยความจำาที่�(ถ้%กน่ามาใชั้�งาน่ที่�(วไป็ใน่เคร*(องคอมพิ�วเตอร� ข้�อม%ลำแต�ลำะตาแหน่�งใน่หน่�วยความจำาหลำ�กจำะม�ข้�อม%ลำแต�ลำะตาแหน่�งใน่หน่�วยความจำาหลำ�กจำะม� addressaddress เฉพิาะเฉพิาะเป็�น่ข้องต�วเอง หน่�วยความจำาหลำ�กม�กจำะเชั้*(อมต�อเข้�าก�บหน่�วยเป็�น่ข้องต�วเอง หน่�วยความจำาหลำ�กม�กจำะเชั้*(อมต�อเข้�าก�บหน่�วยความจำาข้น่าดเลำ0ก ที่�(ม�ความเร0วส%งกว�ามากเร�ยกว�า หน่�วยความจำาความจำาข้น่าดเลำ0ก ที่�(ม�ความเร0วส%งกว�ามากเร�ยกว�า หน่�วยความจำา cachecache

หน่�วยความจำาหน่�วยความจำา cachecache ม�กจำะเป็�น่ส�วน่ที่�(ถ้%กซ�อน่เอาไว�จำากผิ%�เข้�ยน่ม�กจำะเป็�น่ส�วน่ที่�(ถ้%กซ�อน่เอาไว�จำากผิ%�เข้�ยน่โป็รแกรม หร*อแม�กระที่�(งต�วโป็รเซสเซอร�เอง ค*อจำะที่างาน่โดยโป็รแกรม หร*อแม�กระที่�(งต�วโป็รเซสเซอร�เอง ค*อจำะที่างาน่โดยอ�ตโน่ม�ต� แต�จำะส�(งการให�ที่างาน่ตามที่�(ต�องการโดยตรงไม�ได� อ�ตโน่ม�ต� แต�จำะส�(งการให�ที่างาน่ตามที่�(ต�องการโดยตรงไม�ได�

หน่�วยความจำาหน่�วยความจำา cachecache ที่าหน่�าที่�(เป็�น่เสม*อน่ที่าหน่�าที่�(เป็�น่เสม*อน่ bufferbuffer เลำ0ก ๆ ระหว�างเลำ0ก ๆ ระหว�างหน่�วยความจำาหลำ�กก�บร�จำ�สเตอร�ใน่โป็รเซสเซอร� ซ)(งม�ว�ตถ้&ป็ระสงค�หน่�วยความจำาหลำ�กก�บร�จำ�สเตอร�ใน่โป็รเซสเซอร� ซ)(งม�ว�ตถ้&ป็ระสงค�เพิ*(อเพิ�(มป็ระส�ที่ธิ�ภาพิการที่างาน่ข้องหน่�วยความจำาหลำ�กโดยตรงเพิ*(อเพิ�(มป็ระส�ที่ธิ�ภาพิการที่างาน่ข้องหน่�วยความจำาหลำ�กโดยตรง

1717

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

หน่�วยความจำาหน่�วยความจำา cachecache สร�างข้)!น่มาด�วยว�ตถ้&ป็ระสงค�ที่�(จำะให�เป็�น่สร�างข้)!น่มาด�วยว�ตถ้&ป็ระสงค�ที่�(จำะให�เป็�น่หน่�วยความจำาที่�(ที่างาน่ได�เร0วที่�(ส&ดเที่�าที่�(เที่คโน่โลำย�ด�ที่�(ส&ดใน่ข้ณะน่�!น่หน่�วยความจำาที่�(ที่างาน่ได�เร0วที่�(ส&ดเที่�าที่�(เที่คโน่โลำย�ด�ที่�(ส&ดใน่ข้ณะน่�!น่จำะที่าได� ใน่เวลำาเด�ยวก�น่ก0ต�องการให�ม�ข้น่าดใหญ่�ที่�(ส&ดใน่ราคาที่�(ไม�จำะที่าได� ใน่เวลำาเด�ยวก�น่ก0ต�องการให�ม�ข้น่าดใหญ่�ที่�(ส&ดใน่ราคาที่�(ไม�แพิงจำน่เก�น่ไป็น่�ก ด�งแสดงใน่ร%ป็ด�าน่ลำ�าง ใน่เคร*(องคอมพิ�วเตอร�ม�แพิงจำน่เก�น่ไป็น่�ก ด�งแสดงใน่ร%ป็ด�าน่ลำ�าง ใน่เคร*(องคอมพิ�วเตอร�ม�หน่�วยความจำาหลำ�กที่�(ม�ความเร0วต(า หน่�วยความจำาหลำ�กที่�(ม�ความเร0วต(า ((เม*(อเป็ร�ยบเที่�ยบก�บความเร0วเม*(อเป็ร�ยบเที่�ยบก�บความเร0วข้องซ�พิ�ย%ข้องซ�พิ�ย%) ) ม�ป็ร�มาณมาก ม�ป็ร�มาณมาก

โดยป็กต�หน่�วยความจำาโดยป็กต�หน่�วยความจำา cachecache จำะเก0บสาเน่าข้องข้�อม%ลำบางส�วน่จำะเก0บสาเน่าข้องข้�อม%ลำบางส�วน่ใน่หน่�วยความจำาหลำ�กเอาไว� เม*(อโป็รเซสเซอร�ต�องการอ�าน่ข้�อม%ลำใน่หน่�วยความจำาหลำ�กเอาไว� เม*(อโป็รเซสเซอร�ต�องการอ�าน่ข้�อม%ลำจำาน่วน่หน่)(งจำาน่วน่หน่)(ง wordword ใน่หน่�วยความจำา ข้�อม%ลำส�วน่น่�!น่จำะถ้%กตรวจำใน่หน่�วยความจำา ข้�อม%ลำส�วน่น่�!น่จำะถ้%กตรวจำสอบว�าม�อย%�ใน่สอบว�าม�อย%�ใน่ cachecache หร*อไม� ถ้�าม�อย%�ก0จำะน่าข้�อม%ลำใน่หร*อไม� ถ้�าม�อย%�ก0จำะน่าข้�อม%ลำใน่ cachecache ไป็ไป็ใชั้� ถ้�าไม�ม�ก0จำะเก�ดการค�ดลำอกสาเน่าข้�อม%ลำหน่)(งบลำ0อก จำากหน่�วยใชั้� ถ้�าไม�ม�ก0จำะเก�ดการค�ดลำอกสาเน่าข้�อม%ลำหน่)(งบลำ0อก จำากหน่�วยความจำาหลำ�กมาย�งความจำาหลำ�กมาย�ง cachecache แลำ�วจำ)งน่าแลำ�วจำ)งน่า wordword ที่�(ต�องการส�งต�อไป็ให�ที่�(ต�องการส�งต�อไป็ให�โป็รเซสเซอร�ใน่ภายหลำ�งโป็รเซสเซอร�ใน่ภายหลำ�ง

1818

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

CPU CacheMain memory

Word transfer Block transfer

หน่�วยความจำา cache และหน่�วยความจำาหล�ก

1919

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

เน่*(องจำากป็รากฏการณ�การอ�างอ�งใน่พิ*!น่ที่�(เด�ยวก�น่ เน่*(องจำากป็รากฏการณ�การอ�างอ�งใน่พิ*!น่ที่�(เด�ยวก�น่ (locality of (locality of reference)reference) จำะที่าให�การอ�างอ�งข้�อม%ลำใน่หน่�วยความจำาคร�!งต�อๆไป็ จำะที่าให�การอ�างอ�งข้�อม%ลำใน่หน่�วยความจำาคร�!งต�อๆไป็ เป็�น่การอ�างอ�งที่�(เด�ม หร*อที่�(ตาแหน่�งใกลำ�เค�ยงจำ&ดเด�ม เป็�น่การอ�างอ�งที่�(เด�ม หร*อที่�(ตาแหน่�งใกลำ�เค�ยงจำ&ดเด�ม

ด�งน่�!น่การค�ดลำอกข้�อม%ลำหน่)(งบลำ0อกจำากหน่�วยความจำาหลำ�กมาย�งด�งน่�!น่การค�ดลำอกข้�อม%ลำหน่)(งบลำ0อกจำากหน่�วยความจำาหลำ�กมาย�ง cachecache จำะสามารถ้ถ้%กน่ามาใชั้�งาน่ได�ใน่ระยะหน่)(ง ก�อน่ที่�(จำะม�การค�ดจำะสามารถ้ถ้%กน่ามาใชั้�งาน่ได�ใน่ระยะหน่)(ง ก�อน่ที่�(จำะม�การค�ดลำอกข้�อม%ลำใน่คร�!งต�อไป็ลำอกข้�อม%ลำใน่คร�!งต�อไป็

ร%ป็ด�าน่ลำ�างแสดงโครงสร�างข้องหน่�วยความจำา ร%ป็ด�าน่ลำ�างแสดงโครงสร�างข้องหน่�วยความจำา cachecache แลำะหน่�วยแลำะหน่�วยความจำาหลำ�ก หน่�วยความจำาหลำ�กป็ระกอบด�วย ที่�(เก0บข้�อม%ลำจำาน่วน่ความจำาหลำ�ก หน่�วยความจำาหลำ�กป็ระกอบด�วย ที่�(เก0บข้�อม%ลำจำาน่วน่ 22nn words words ที่�(สามารถ้ถ้%กอ�างอ�งได� โดยที่�(แต�ลำะ ที่�(สามารถ้ถ้%กอ�างอ�งได� โดยที่�(แต�ลำะ wordword จำะม�หลำายเลำข้จำะม�หลำายเลำข้ที่�(อย%�เป็�น่เลำข้ฐาน่สองจำาน่วน่ที่�(อย%�เป็�น่เลำข้ฐาน่สองจำาน่วน่ n-bitn-bit เป็�น่หมายเลำข้เฉพิาะข้องต�วเอง เป็�น่หมายเลำข้เฉพิาะข้องต�วเอง

2020

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

.

.

.

.

Line number

0

1

2

C-1

Tag Block

Block length(K words)

(a) Cache

.

.

.

.

0

1

2

3

Memoryaddress

Block(K words)

Block

Wordlength

2n -1

(b) Main memory

โครงสร�างของหน่�วยความจำา cacheและหน่�วยความจำาหล�ก

2121

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

กลำ�าวอ�กน่�ยหน่)(ง ค*อ หน่�วยความจำาหลำ�กป็ระกอบด�วยบลำ0อกที่�(กลำ�าวอ�กน่�ยหน่)(ง ค*อ หน่�วยความจำาหลำ�กป็ระกอบด�วยบลำ0อกที่�(เก0บข้�อม%ลำข้น่าด เก0บข้�อม%ลำข้น่าด K-wordK-word จำาน่วน่หน่)(งน่�(น่ค*อม�จำาน่วน่บลำ0อกจำาน่วน่หน่)(งน่�(น่ค*อม�จำาน่วน่บลำ0อก(M)(M) เที่�าก�บเที่�าก�บ M = 2M = 2nn/K /K บลำ0อกน่�(น่เอง บลำ0อกน่�(น่เอง

ส�วน่ส�วน่ cache cache น่�!น่ป็ระกอบด�วยชั้�องส�ญ่ญ่าณจำาน่วน่ น่�!น่ป็ระกอบด�วยชั้�องส�ญ่ญ่าณจำาน่วน่ C C ชั้�องชั้�องโดยที่�(แต�ลำะชั้�องม�ข้น่าดโดยที่�(แต�ลำะชั้�องม�ข้น่าด K words K words แลำะจำาน่วน่ชั้�องสายส�ญ่ญ่าณแลำะจำาน่วน่ชั้�องสายส�ญ่ญ่าณน่�!น่ น่�อยกว�าจำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�กเป็�น่อย�างมาน่�!น่ น่�อยกว�าจำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�กเป็�น่อย�างมา (C (C < M) < M)

ใน่เวลำาใดก0ตามข้�อม%ลำจำาน่วน่หลำายบลำ0อกจำากหน่�วยความจำาหลำ�ก ใน่เวลำาใดก0ตามข้�อม%ลำจำาน่วน่หลำายบลำ0อกจำากหน่�วยความจำาหลำ�ก จำะถ้%กค�ดลำอกสาเน่ามาเก0บไว�ที่�(ชั้�องส�ญ่ญ่าณใน่จำะถ้%กค�ดลำอกสาเน่ามาเก0บไว�ที่�(ชั้�องส�ญ่ญ่าณใน่ cache cache ถ้�าถ้�าข้�อม%ลำใน่ ข้�อม%ลำใน่ word word ข้องบลำ0อกหน่)(งถ้%กเร�ยกใชั้�โดยโป็รเซสเซอร� ข้องบลำ0อกหน่)(งถ้%กเร�ยกใชั้�โดยโป็รเซสเซอร� ข้�อม%ลำที่�!งบลำ0อกน่�!น่จำะถ้%กถ้�ายโอน่มาไว�ที่�( ข้�อม%ลำที่�!งบลำ0อกน่�!น่จำะถ้%กถ้�ายโอน่มาไว�ที่�( cache cache เน่*(องจำากหน่�วยเน่*(องจำากหน่�วยความจำาหลำ�กม�จำาน่วน่บลำ0อกมากกว�าชั้�องส�ญ่ญ่าณใน่ความจำาหลำ�กม�จำาน่วน่บลำ0อกมากกว�าชั้�องส�ญ่ญ่าณใน่ cache cache ชั้�องส�ญ่ญ่าณแต�ลำะชั้�องจำ)งไม�ได�กาหน่ดไว�สาหร�บบลำ0อกใด ที่าให�ชั้�องส�ญ่ญ่าณแต�ลำะชั้�องจำ)งไม�ได�กาหน่ดไว�สาหร�บบลำ0อกใด ที่าให�ชั้�องส�ญ่ญ่าณแต�ลำะชั้�องต�องม�ป็9ายบอกว�าข้�อม%ลำมาจำากบลำ0อกใดชั้�องส�ญ่ญ่าณแต�ลำะชั้�องต�องม�ป็9ายบอกว�าข้�อม%ลำมาจำากบลำ0อกใด

2222

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

ร%ป็ร%ป็ (a)(a) แสดงข้�!น่ตอน่ใน่กระบวน่การอ�าน่ข้�อม%ลำ โป็รเซสเซอร�แสดงข้�!น่ตอน่ใน่กระบวน่การอ�าน่ข้�อม%ลำ โป็รเซสเซอร�สร�างตาแหน่�งที่�(อย%�ข้องข้�อม%ลำที่�(ต�องการอ�าน่ เร�ยกว�า สร�างตาแหน่�งที่�(อย%�ข้องข้�อม%ลำที่�(ต�องการอ�าน่ เร�ยกว�า RARA ถ้�าถ้�าข้�อม%ลำข้�อม%ลำ wordword น่�!น่ม�อย%�ใน่น่�!น่ม�อย%�ใน่ cachecache อย%�แลำ�ว ก0จำะถ้%กน่าส�งอย%�แลำ�ว ก0จำะถ้%กน่าส�งโป็รเซสเซอร�ที่าการป็ระมวลำผิลำต�อไป็ ม�ฉะน่�!น่บลำ0อกใน่หน่�วยโป็รเซสเซอร�ที่าการป็ระมวลำผิลำต�อไป็ ม�ฉะน่�!น่บลำ0อกใน่หน่�วยความจำาหลำ�กที่�(ม�ข้�อม%ลำ ความจำาหลำ�กที่�(ม�ข้�อม%ลำ wordword น่�!อย%�ก0จำะถ้%กค�ดลำอกสาเน่าเข้�ามาน่�!อย%�ก0จำะถ้%กค�ดลำอกสาเน่าเข้�ามาใส�ไว�ใน่ใส�ไว�ใน่ cache cache แลำะถ้%กน่าส�งโป็รเซสเซอร�ต�อไป็ จำากร%ป็แสงให�แลำะถ้%กน่าส�งโป็รเซสเซอร�ต�อไป็ จำากร%ป็แสงให�เห0น่ข้�!น่ตอน่ต�าง ๆ ที่�(เก�ดข้)!น่ เป็�น่โครงสร�างข้องส�วน่ป็ระกอบเห0น่ข้�!น่ตอน่ต�าง ๆ ที่�(เก�ดข้)!น่ เป็�น่โครงสร�างข้องส�วน่ป็ระกอบภายใน่ภายใน่

ร%ป็ร%ป็ (b)(b) เป็�น่โครงสร�างที่�(ใชั้�ก�บเป็�น่โครงสร�างที่�(ใชั้�ก�บ cachecache ที่�(ม�ใชั้�งาน่ที่�(วไป็ ใน่ที่�(ม�ใชั้�งาน่ที่�(วไป็ ใน่โครงสร�างน่�!โครงสร�างน่�! cachecache เชั้*(อมต�อก�บโป็รเซสเซอร�ผิ�าน่สายเชั้*(อมต�อก�บโป็รเซสเซอร�ผิ�าน่สาย data data bus, address bus, control bus bus, address bus, control bus สาย สาย data busdata bus แลำะ สาย แลำะ สาย address busaddress bus จำะเชั้*(อมต�อเข้�าก�บบ�ฟเฟอร� ซ)(งเชั้*(อมต�อเข้�าก�บจำะเชั้*(อมต�อเข้�าก�บบ�ฟเฟอร� ซ)(งเชั้*(อมต�อเข้�าก�บสายบ�สหลำ�กข้องระบบที่�(น่าไป็ส%�หน่�วยความจำาหลำ�กสายบ�สหลำ�กข้องระบบที่�(น่าไป็ส%�หน่�วยความจำาหลำ�ก

2323

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCacheSTART

Receive addressRA from CPU

Is block containing RA in cache?

Fetch RA word and deliver

To CPU

Access main memory for block

containing RA

Allocate cache line for main memory

block

DONE

Load main memory block into cache line

Deliver RA word to CPU

Yes

No

(a) การอ�าน่ข�อม�ลจำากหน่�วยความจำา cache

2424

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

โครงสร�างหน่�วยความจำา cache โดยทั่��วไป

Processor Cache

Sys

tem

bus

Addressbuffer

Databuffer

Control

Data

Control

Address

2525

ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา ลำ�กษณะพิ*!น่ฐาน่ข้องหน่�วยความจำา CacheCache

เม*(อสามารถ้ค�น่พิบข้�อม%ลำที่�(ต�องการใน่เม*(อสามารถ้ค�น่พิบข้�อม%ลำที่�(ต�องการใน่ cache (cache hits)cache (cache hits) บ�ฟเฟอร�บ�ฟเฟอร�สาหร�บข้�อม%ลำแลำะตาแหน่�งข้�อม%ลำจำะถ้%กส�(งไม�ให�ที่างาน่สาหร�บข้�อม%ลำแลำะตาแหน่�งข้�อม%ลำจำะถ้%กส�(งไม�ให�ที่างาน่(disable)(disable) แลำะการแลำะการส*(อสารจำะเก�ดข้)!น่ระหว�างโป็รเซสเซอร�ก�บส*(อสารจำะเก�ดข้)!น่ระหว�างโป็รเซสเซอร�ก�บ cachecache โดยไม�ม�การใชั้�บ�สหลำ�กโดยไม�ม�การใชั้�บ�สหลำ�กด�วย ด�วย

แต�ถ้�าไม�สามารถ้หาข้�อม%ลำใน่แต�ถ้�าไม�สามารถ้หาข้�อม%ลำใน่ cachecache ได�ได�(cache miss)(cache miss) ตาแหน่�งข้�อม%ลำที่�(ตาแหน่�งข้�อม%ลำที่�(ต�องการจำะถ้%กส�งเข้�าไป็ใน่บ�สหลำ�ก ข้�อม%ลำใน่หน่�วยความจำาหลำ�กจำะถ้%กส�งต�องการจำะถ้%กส�งเข้�าไป็ใน่บ�สหลำ�ก ข้�อม%ลำใน่หน่�วยความจำาหลำ�กจำะถ้%กส�งมาที่�(บ�ฟเฟอร� แลำะจำากบ�ฟเฟอร�ส�งไป็ย�งโป็รเซสเซอร�แลำะส�งเข้�าไป็เก0บไว�มาที่�(บ�ฟเฟอร� แลำะจำากบ�ฟเฟอร�ส�งไป็ย�งโป็รเซสเซอร�แลำะส�งเข้�าไป็เก0บไว�ใน่ใน่ cachecache

ใน่บางโครงสร�าง ใน่บางโครงสร�าง cache cache จำะถ้%กวางค�(น่กลำางไว�ระหว�างโป็รเซสเซอร� แลำะจำะถ้%กวางค�(น่กลำางไว�ระหว�างโป็รเซสเซอร� แลำะหน่�วยความจำาหลำ�ก ซ)(งจำะวางที่�บหน่�วยความจำาหลำ�ก ซ)(งจำะวางที่�บ data bus, address bus, control data bus, address bus, control busbus ไว�ที่� !งหมด ด�งน่�!น่เม*(อเก�ดกรณ�ไว�ที่�!งหมด ด�งน่�!น่เม*(อเก�ดกรณ� cache miss cache miss ข้�อม%ลำจำากหน่�วยข้�อม%ลำจำากหน่�วยความจำาหลำ�กจำะถ้%กส�งมาที่�(ความจำาหลำ�กจำะถ้%กส�งมาที่�( cache cache ก�อน่ แลำ�วจำ)งถ้%กส�งต�อไป็ย�งก�อน่ แลำ�วจำ)งถ้%กส�งต�อไป็ย�งโป็รเซสเซอร�ใน่ลำาด�บหลำ�งโป็รเซสเซอร�ใน่ลำาด�บหลำ�ง

2626

องค�ป็ระกอบใน่การออกแบบองค�ป็ระกอบใน่การออกแบบ CacheCache ต�องม�ข้น่าดเลำ0กเพิ�ยงพิอที่�(จำะที่าให�ราคาเฉลำ�(ยต�อบ�ตน่�!น่ใกลำ�เค�ยงต�องม�ข้น่าดเลำ0กเพิ�ยงพิอที่�(จำะที่าให�ราคาเฉลำ�(ยต�อบ�ตน่�!น่ใกลำ�เค�ยง

ก�บราคาข้องหน่�วยความจำาหลำ�กก�บราคาข้องหน่�วยความจำาหลำ�ก แลำะต�องม�ข้น่าดใหญ่�เพิ�ยงพิอ เพิ*(อให�ค�าเฉลำ�(ยข้องเวลำาใน่การเข้�าแลำะต�องม�ข้น่าดใหญ่�เพิ�ยงพิอ เพิ*(อให�ค�าเฉลำ�(ยข้องเวลำาใน่การเข้�า

ถ้)งข้�อม%ลำใกลำ�เค�ยงก�บระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำข้องถ้)งข้�อม%ลำใกลำ�เค�ยงก�บระยะเวลำาใน่การเข้�าถ้)งข้�อม%ลำข้อง cachecache ข้น่าดที่�(ใหญ่�ข้)!น่ข้องข้น่าดที่�(ใหญ่�ข้)!น่ข้อง cachecache จำะไป็เพิ�(มจำาน่วน่ข้องจำะไป็เพิ�(มจำาน่วน่ข้อง gatesgates ที่�(ที่�(

เก�(ยวข้�องก�บการค�น่หาตาแหน่�งข้�อม%ลำใน่เก�(ยวข้�องก�บการค�น่หาตาแหน่�งข้�อม%ลำใน่ cachecache ผิลำที่�(เก�ดข้)!น่ผิลำที่�(เก�ดข้)!น่ที่าให�ที่าให� cachecache ม�ข้น่าดใหญ่�ข้)!น่ ซ)(งจำะที่าให�ม�ข้น่าดใหญ่�ข้)!น่ ซ)(งจำะที่าให� cachecache ที่างาน่ได�ชั้�าลำงที่างาน่ได�ชั้�าลำง

เน่*!อที่�(บน่แผิงวงจำรก0เป็�น่ส�วน่หน่)(งที่�(บ�งค�บข้น่าดข้องเน่*!อที่�(บน่แผิงวงจำรก0เป็�น่ส�วน่หน่)(งที่�(บ�งค�บข้น่าดข้อง cachecache ให�ม�ให�ม�ข้น่าดที่�(จำาก�ด ข้น่าดที่�(จำาก�ด

ข้น่าดข้องข้น่าดข้อง cache cache บน่คอมพิ�วเตอร�ชั้น่�ดต�าง ๆ จำ)งต�องส�มพิ�น่ธิ�บน่คอมพิ�วเตอร�ชั้น่�ดต�าง ๆ จำ)งต�องส�มพิ�น่ธิ�ก�บการใชั้�งาน่ก�บโป็รเซสเซอร�ชั้น่�ดต�าง ๆ ด�วยก�บการใชั้�งาน่ก�บโป็รเซสเซอร�ชั้น่�ดต�าง ๆ ด�วย

2727

ข้น่าดข้อง ข้น่าดข้อง cachecache ใน่โป็รเซสเซอร�ใน่โป็รเซสเซอร�ชั้น่�ดต�าง ๆชั้น่�ดต�าง ๆ

ProcessorProcessor TypeType YearYear L1 cacheL1 cache L2 cacheL2 cache L3 cacheL3 cache

IBM 360/85IBM 360/85 MainframeMainframe 19681968 16 to 32 KB16 to 32 KB NN NN

PDP-11/70PDP-11/70 MinicomputerMinicomputer 19751975 1 KB1 KB NN NN

VAX 11/780VAX 11/780 MinicomputerMinicomputer 19781978 16 KB16 KB NN NN

IBM 3033IBM 3033 MainframeMainframe 19781978 64 KB64 KB NN NN

IBM 3090IBM 3090 MainframeMainframe 19851985 128 to 256 128 to 256 KBKB

NN NN

Intel 80486Intel 80486 PCPC 19891989 8 KB8 KB NN NN

PentiumPentium PCPC 19931993 8 KB8 KB 256 to 512 256 to 512 KBKB

NN

PowerPC PowerPC G4G4

PC/ServerPC/Server 19991999 32 KB32 KB 256 KB to 1 256 KB to 1 MBMB

2 MB2 MB

ItaniumItanium PC/ServerPC/Server 20012001 16 KB16 KB 96 KB96 KB 4 MB4 MB

2828

องค�ป็ระกอบใน่การออกแบบองค�ป็ระกอบใน่การออกแบบ CacheCache

Cache Size Write PolicyMapping Function Write through Direct Write back Associative Set associative Line SizeReplacement Algorithm Number of caches Least recently used (LRU) Single or two level First in first out (FIFO) Unified or split Least frequently used (LFU) Random

2929

Mapping FunctionMapping Function เน่*(องจำากเน่*(องจำาก cachecache ม�ชั้�องส�ญ่ญ่าณน่�อยกว�าจำาน่วน่บลำ0อกม�ชั้�องส�ญ่ญ่าณน่�อยกว�าจำาน่วน่บลำ0อก

ใน่หน่�วยความจำา จำ)งจำาเป็�น่ต�องม�อ�ลำกอร�ที่)ม สาหร�บการใน่หน่�วยความจำา จำ)งจำาเป็�น่ต�องม�อ�ลำกอร�ที่)ม สาหร�บการกาหน่ดตาแหน่�งหน่�วยความจำาข้องแต�ลำะบลำ0อกไป็ย�งชั้�องกาหน่ดตาแหน่�งหน่�วยความจำาข้องแต�ลำะบลำ0อกไป็ย�งชั้�องส�ญ่ญ่าณใน่ส�ญ่ญ่าณใน่ cachecache เร�ยกว�าเร�ยกว�า MappingMapping

น่อกจำากน่�!ย�งต�องม�ว�ธิ�การสาหร�บการตรวจำสอบว�าบลำ0อกน่อกจำากน่�!ย�งต�องม�ว�ธิ�การสาหร�บการตรวจำสอบว�าบลำ0อกใดที่�(ย�งคงถ้%กเก0บไว�ใน่ชั้�องส�ญ่ญ่าณใดที่�(ย�งคงถ้%กเก0บไว�ใน่ชั้�องส�ญ่ญ่าณ cachecache

ว�ธิ�การกาหน่ดตาแหน่�งหน่�วยความจำาไว�ใน่ชั้�องส�ญ่ญ่าณว�ธิ�การกาหน่ดตาแหน่�งหน่�วยความจำาไว�ใน่ชั้�องส�ญ่ญ่าณ cachecache หร*อหร*อ MappingMapping จำะเป็�น่ส�(งที่�(บอกให�ที่ราบถ้)งว�ธิ�การจำะเป็�น่ส�(งที่�(บอกให�ที่ราบถ้)งว�ธิ�การวางโครงสร�างภายใน่วางโครงสร�างภายใน่ cachecache ซ)(งน่�ยมใชั้�สามว�ธิ�ค*อซ)(งน่�ยมใชั้�สามว�ธิ�ค*อ Direct mappingDirect mapping Associative mappingAssociative mapping Set associative mappingSet associative mapping

3030

Mapping FunctionMapping Function

เพิ*(อเป็�น่การเป็ร�ยบเที่�ยบการที่างาน่ข้องโครงสร�างที่�!งสามแบบเพิ*(อเป็�น่การเป็ร�ยบเที่�ยบการที่างาน่ข้องโครงสร�างที่�!งสามแบบจำ)งกาหน่ด ต�วอย�างด�งน่�!จำ)งกาหน่ด ต�วอย�างด�งน่�!

ข้น่าดข้องข้น่าดข้อง cachecache เป็�น่เป็�น่ 64 Kbytes64 Kbytes การถ้�ายเที่ข้�อม%ลำระหว�างหน่�วยความจำาหลำ�กก�บการถ้�ายเที่ข้�อม%ลำระหว�างหน่�วยความจำาหลำ�กก�บ cachecache กระที่ากระที่า

คร�!งลำะหน่)(งบลำ0อก ซ)(งม�ข้น่าดคร�!งลำะหน่)(งบลำ0อก ซ)(งม�ข้น่าด 4 bytes4 bytes หมายความว�า จำาน่วน่หมายความว�า จำาน่วน่ชั้�องส�ญ่ญ่าณใน่ชั้�องส�ญ่ญ่าณใน่ cachecache น่�!น่เที่�าก�บ น่�!น่เที่�าก�บ 16K16K ชั้�องชั้�อง (16K x 4 = 64 (16K x 4 = 64 Kbytes)Kbytes)

หน่�วยความจำาหลำ�กม�ข้น่าดหน่�วยความจำาหลำ�กม�ข้น่าด 16 Mbytes 16 Mbytes ซ)(งใชั้�ว�ธิ�การกาหน่ดซ)(งใชั้�ว�ธิ�การกาหน่ดตาแหน่�งข้�อม%ลำโดยใชั้�เลำข้ฐาน่สองข้น่าดตาแหน่�งข้�อม%ลำโดยใชั้�เลำข้ฐาน่สองข้น่าด 24 24 บ�ตบ�ต (2(22424 = 16M) = 16M) ด�งน่�!น่เพิ*(อการกาหน่ดตาแหน่�งบลำ0อกข้�อม%ลำไป็ย�งด�งน่�!น่เพิ*(อการกาหน่ดตาแหน่�งบลำ0อกข้�อม%ลำไป็ย�ง cachecache จำ)งจำ)งถ้*อว�าหน่�วยความจำาหลำ�กม�ข้น่าดถ้*อว�าหน่�วยความจำาหลำ�กม�ข้น่าด 16M16M บลำ0อก บลำ0อกลำะบลำ0อก บลำ0อกลำะ 44 bytesbytes

3131

Direct MappingDirect Mapping การจำ�ดโครงสร�างภายใน่การจำ�ดโครงสร�างภายใน่ cachecache แบบที่�(ง�ายที่�(ส&ดเป็�น่แบบแบบที่�(ง�ายที่�(ส&ดเป็�น่แบบ

Direct mapping Direct mapping ซ)(งจำะกาหน่ดตาแหน่�งข้องแต�ลำะบลำ0อกไว�ที่�(ซ)(งจำะกาหน่ดตาแหน่�งข้องแต�ลำะบลำ0อกไว�ที่�(ตาแหน่�งชั้�องส�ญ่ญ่าณตาแหน่�งชั้�องส�ญ่ญ่าณ cachecache ที่�(เด�มเสมอ ไม�ม�การที่�(เด�มเสมอ ไม�ม�การเป็ลำ�(ยน่แป็ลำง ร%ป็เป็ลำ�(ยน่แป็ลำง ร%ป็ direct mappingdirect mapping แสดงกลำไกการที่างาน่แสดงกลำไกการที่างาน่ที่�(วไป็ ซ)(งสามารถ้อธิ�บายด�วยร%ป็แบบฟ5งก�ชั้�น่ที่างที่�(วไป็ ซ)(งสามารถ้อธิ�บายด�วยร%ป็แบบฟ5งก�ชั้�น่ที่างคณ�ตศาสตร� ด�งน่�!คณ�ตศาสตร� ด�งน่�!

i = j modulo mi = j modulo m

เม*(อเม*(อii ค*อ หมายเลำข้ชั้�องส�ญ่ญ่าณค*อ หมายเลำข้ชั้�องส�ญ่ญ่าณ cachecache

jj ค*อ หมายเลำข้บลำ0อกค*อ หมายเลำข้บลำ0อกmm ค*อ จำาน่วน่ชั้�องส�ญ่ญ่าณข้องค*อ จำาน่วน่ชั้�องส�ญ่ญ่าณข้อง cachecache

3232

Direct MappingDirect Mapping

Tag Line Word

Compare

.

.

.

.

.

.

.

.

X

(Hit in cache)

X

L0

Li

Lm-1

Tag Data

CacheMemory address

(Miss in cache)

W4j

W(4j + 1)

W(4j + 2)

W(4j + 3)

s

w

s - r r w

s - r

w

s + w

.

.

.

.

W0

W1

W2

W3

.

.

.

.

B0

Bj

Main memory

โครงสร�างหน่�วยความจำา cache แบบ direct-mapping

3333

Direct MappingDirect Mapping การคาน่วณให�พิ�จำารณาว�า ตาแหน่�งข้องข้�อม%ลำใน่หน่�วยความจำาการคาน่วณให�พิ�จำารณาว�า ตาแหน่�งข้องข้�อม%ลำใน่หน่�วยความจำา

ป็ระกอบข้)!น่ด�วยป็ระกอบข้)!น่ด�วย 33 ส�วน่ส�วน่ บ�ตด�าน่ข้วาม*อส&ด บ�ตด�าน่ข้วาม*อส&ด ((เร�(มจำากบ�ตที่�(ม�ค�าน่�อยส&ดเร�(มจำากบ�ตที่�(ม�ค�าน่�อยส&ด) ) จำาน่วน่จำาน่วน่ w w

บ�ต ใชั้�ใน่การการอ�างอ�งบ�ต ใชั้�ใน่การการอ�างอ�ง word word แต�ลำะแต�ลำะ wordword ที่�(อย%�ภายใน่ที่�(อย%�ภายใน่บลำ0อกหน่)(ง บลำ0อกหน่)(ง

ที่�(เหลำ*ออ�กจำาน่วน่ที่�(เหลำ*ออ�กจำาน่วน่ ss บ�ต หมายถ้)งตาแหน่�งหร*อหมายเลำข้บ�ต หมายถ้)งตาแหน่�งหร*อหมายเลำข้ข้องบลำ0อกจำากจำาน่วน่ที่�!งหมด ข้องบลำ0อกจำากจำาน่วน่ที่�!งหมด 22ss บลำ0อก หน่�วยความจำา บลำ0อก หน่�วยความจำา cachecache จำะแบ�งข้�อม%ลำจำะแบ�งข้�อม%ลำ s s บ�ตน่�!ออกเป็�น่สองส�วน่ ค*อ เป็�น่บ�ตบ�ตน่�!ออกเป็�น่สองส�วน่ ค*อ เป็�น่บ�ตที่�(ใชั้�บอกหมายเลำข้ชั้�องส�ญ่ญ่าณ ที่�(ใชั้�บอกหมายเลำข้ชั้�องส�ญ่ญ่าณ cache cache จำาน่วน่จำาน่วน่ r r บ�ต บ�ต ((แสแสดงว�าม�จำาน่วน่ชั้�องส�ญ่ญ่าณที่�!งส�!น่ ดงว�าม�จำาน่วน่ชั้�องส�ญ่ญ่าณที่�!งส�!น่ 22rr ชั้�องชั้�อง) ) แลำะที่�(เหลำ*ออ�ก แลำะที่�(เหลำ*ออ�ก s - rs - r บ�ต ใชั้�เป็�น่บ�ต ใชั้�เป็�น่ tag tag หร*อป็9ายบอกตาแหน่�งการใชั้�งาน่ข้องหร*อป็9ายบอกตาแหน่�งการใชั้�งาน่ข้องบลำ0อกน่�!น่ บลำ0อกน่�!น่ ((อย%�ใน่อย%�ใน่ cachecache หร*อไม�หร*อไม�) ) ด�งน่�!น่ด�งน่�!น่

3434

Direct MappingDirect Mapping

ความยาวข้องหมายเลำข้ที่�(อย%�ความยาวข้องหมายเลำข้ที่�(อย%� = = (s + w) (s + w) บ�ตบ�ต ป็ร�มาณหน่�วยความจำาที่�(สามารถ้อ�างอ�งได�ที่�!งหมด ป็ร�มาณหน่�วยความจำาที่�(สามารถ้อ�างอ�งได�ที่�!งหมด = 2= 2s+ws+w

words words หร*อ หร*อ bytesbytes จำาน่วน่บลำ0อกที่�!งหมด จำาน่วน่บลำ0อกที่�!งหมด = 2= 2ww words words หร*อ หร*อ bytesbytes

จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก = = บลำ0อกบลำ0อก

จำาน่วน่ชั้�องส�ญ่ญ่าณ จำาน่วน่ชั้�องส�ญ่ญ่าณ cache = 2cache = 2rr = m = m ชั้�องชั้�อง ข้น่าดข้องป็9ายบอกตาแหน่�ง ข้น่าดข้องป็9ายบอกตาแหน่�ง == (s – r) (s – r) บ�ตบ�ต

sw

ws

22

2

3535

Direct MappingDirect Mapping ผิลำข้องการกาหน่ดความส�มพิ�น่ธิ�ข้องตาแหน่�งข้�อม%ลำใน่หน่�วยความผิลำข้องการกาหน่ดความส�มพิ�น่ธิ�ข้องตาแหน่�งข้�อม%ลำใน่หน่�วยความ

จำาหลำ�กก�บชั้�องส�ญ่ญ่าณ จำาหลำ�กก�บชั้�องส�ญ่ญ่าณ cachecache เป็�น่ด�งน่�!เป็�น่ด�งน่�!

การน่าต�วเลำข้บางส�วน่ข้องหมายเลำข้ที่�(อย%�มาใชั้�เป็�น่หมายเลำข้ชั้�องการน่าต�วเลำข้บางส�วน่ข้องหมายเลำข้ที่�(อย%�มาใชั้�เป็�น่หมายเลำข้ชั้�องส�ญ่ญ่าณ ส�ญ่ญ่าณ cache cache ที่าให�เก�ดการแป็ลำงตาแหน่�งแต�ลำะบลำ0อกใน่หน่�วยที่าให�เก�ดการแป็ลำงตาแหน่�งแต�ลำะบลำ0อกใน่หน่�วยความจำาหลำ�กมาย�งความจำาหลำ�กมาย�ง cachecache เป็�น่ค�าเฉพิาะที่�(ไม�ซ!าก�น่ เม*(อม�การอ�าน่เป็�น่ค�าเฉพิาะที่�(ไม�ซ!าก�น่ เม*(อม�การอ�าน่ข้�อม%ลำจำากบลำ0อกใน่หน่�วยความจำาหลำ�กมาไว�ที่�(ข้�อม%ลำจำากบลำ0อกใน่หน่�วยความจำาหลำ�กมาไว�ที่�( cache cache ตามตาแหน่�งที่�(ตามตาแหน่�งที่�(กาหน่ด ก0จำะต�องเป็ลำ�(ยน่ค�าข้องป็9ายบอกตาแหน่�งข้องข้�อม%ลำให�กาหน่ด ก0จำะต�องเป็ลำ�(ยน่ค�าข้องป็9ายบอกตาแหน่�งข้องข้�อม%ลำให�สอดคลำ�องก�น่ด�วย เพิ*(อจำะได�สามารถ้แยกความแตกต�างออกจำากสอดคลำ�องก�น่ด�วย เพิ*(อจำะได�สามารถ้แยกความแตกต�างออกจำากบลำ0อกที่�(ย�งไม�เก�ดการอ�าน่ได� ข้�อม%ลำบลำ0อกที่�(ย�งไม�เก�ดการอ�าน่ได� ข้�อม%ลำ s-rs-r บ�ตแรกจำะถ้%กน่ามาใชั้�เป็�น่บ�ตแรกจำะถ้%กน่ามาใชั้�เป็�น่ป็9ายบอกตาแหน่�งข้�อม%ลำน่�!ป็9ายบอกตาแหน่�งข้�อม%ลำน่�!

หมายเลขช่�องส�ญญาณหมายเลขช่�องส�ญญาณ CacheCache

หมายเลขบล#อกใน่หน่�วยความหมายเลขบล#อกใน่หน่�วยความจำาหล�กจำาหล�ก

00 0, m, 2m, …, 20, m, 2m, …, 2ss - m - m

11 1, m +1, 2m +1, …, 21, m +1, 2m +1, …, 2ss – m + 1 – m + 1

..

..

m - 1m - 1 m – 1, 2m -1, 3m – 1, …, 2m – 1, 2m -1, 3m – 1, …, 2ss - 1 - 1

3636

Direct MappingDirect Mapping

.

.

.

.

.

.

1 3 5 7 9 2 4 6

7 7 7 7 7 7 7 7

1 1 2 3 5 8 1 3

F E D C B A 9 8

1 2 3 4 5 6 7 8

2 4 6 8 2 4 6 8

1 1 2 2 3 3 4 4

1 3 5 7 9 2 4 6

1 1 2 3 5 8 1 3

F E D C B A 9 8

1 2 3 4 5 6 7 8

1 1 2 2 3 3 4 4

00

16

16

FF

16

0000

0004

FFFC

FFF8

0000

0004

FFFC

339C

0000

0004

FFFC

FFF8

0000

0001

3FFF

3FFF

0CE7

8 Bits 32 Bits

32 Bits

00

16

FF

DataLine +word

Tag

Tag DataLine

number

16-Mbyte main memory

8 14 2

Tag Line Word

Main memory address =

ต�วอย�างโครงสร�างหน่�วยความจำา cacheแบบ direct-mapping

3737

Direct MappingDirect Mapping ร%ป็ด�าน่บน่แสดงต�วอย�างการใชั้�ว�ธิ� ร%ป็ด�าน่บน่แสดงต�วอย�างการใชั้�ว�ธิ� direct mappingdirect mapping ซ)(งกาหน่ดให�ซ)(งกาหน่ดให�

m = 16K = 2m = 16K = 21414 แลำะแลำะ i = j mod 2i = j mod 21414 การแป็ลำงที่�(อย%�จำะได�ผิลำลำ�พิธิ�ด�งน่�!การแป็ลำงที่�(อย%�จำะได�ผิลำลำ�พิธิ�ด�งน่�!

ส�งเกตว�า จำะไม�ม�บลำ0อกใด ๆ ที่�(ถ้%กแป็ลำงที่�(อย%�เป็�น่หมายเลำข้ชั้�องส�ญ่ญ่าณ ส�งเกตว�า จำะไม�ม�บลำ0อกใด ๆ ที่�(ถ้%กแป็ลำงที่�(อย%�เป็�น่หมายเลำข้ชั้�องส�ญ่ญ่าณ cachecache เด�ยวก�น่แลำ�วม�หมายเลำข้ป็9ายบอกตาแหน่�งเหม*อน่ก�น่เลำย เชั้�น่ เด�ยวก�น่แลำ�วม�หมายเลำข้ป็9ายบอกตาแหน่�งเหม*อน่ก�น่เลำย เชั้�น่ บลำ0อกที่�(เร�(มต�น่ด�วยหมายเลำข้ที่�(อย%� บลำ0อกที่�(เร�(มต�น่ด�วยหมายเลำข้ที่�(อย%� 000000, 010000, …, FF0000000000, 010000, …, FF0000 จำะจำะม�ค�าข้องป็9ายเลำข้บอกตาแหน่�งเป็�น่ม�ค�าข้องป็9ายเลำข้บอกตาแหน่�งเป็�น่ 00, 01, …, FF00, 01, …, FF ตามลำาด�บตามลำาด�บ

หมายเลขช่�องส�ญญาณหมายเลขช่�องส�ญญาณ cachecache

หมายเลขทั่%�อย��เร&�มต้�น่ของบล#อกหมายเลขทั่%�อย��เร&�มต้�น่ของบล#อก

00 000000, 010000, …, FF0000000000, 010000, …, FF0000

11 000004, 010004, …, FF0004000004, 010004, …, FF0004

……………………………… ……………………………………

2214 14 - 1- 1 00FFFC, 01FFFC, …, FFFFFC00FFFC, 01FFFC, …, FFFFFC

3838

Direct MappingDirect Mapping ส�งเกตว�าจำะไม�ม�บลำ0อกใด ๆ ที่�(ถ้%กแป็ลำงที่�(อย%�เป็�น่หมายเลำข้ชั้�องส�งเกตว�าจำะไม�ม�บลำ0อกใด ๆ ที่�(ถ้%กแป็ลำงที่�(อย%�เป็�น่หมายเลำข้ชั้�อง

ส�ญ่ญ่าณ ส�ญ่ญ่าณ cachecache เด�ยวก�น่ แลำ�วม�หมายเลำข้บอกตาแหน่�งป็9ายเด�ยวก�น่ แลำ�วม�หมายเลำข้บอกตาแหน่�งป็9ายเหม*อน่ก�น่เลำย เชั้�น่ บลำ0อกที่�(เร�(มต�น่ด�วยหมายเลำข้ที่�(อย%�เหม*อน่ก�น่เลำย เชั้�น่ บลำ0อกที่�(เร�(มต�น่ด�วยหมายเลำข้ที่�(อย%� 000000, 000000, 010000, …, FF0000010000, …, FF0000 จำะม�ค�าข้องป็9ายบอกตาแหน่�งเป็�น่ จำะม�ค�าข้องป็9ายบอกตาแหน่�งเป็�น่ 00, 00, 01, …, FF01, …, FF ตามลำาด�บตามลำาด�บ

กระบวน่การอ�าน่ข้�อม%ลำจำากหน่�วยความจำาหลำ�กที่างาน่ ด�งน่�! กระบวน่การอ�าน่ข้�อม%ลำจำากหน่�วยความจำาหลำ�กที่างาน่ ด�งน่�! ข้�อม%ลำตาแหน่�งที่�(อย%�ข้น่าดข้�อม%ลำตาแหน่�งที่�(อย%�ข้น่าด 24 24 บ�ต ถ้%กส�งมาที่�(ระบบหน่�วยความจำาบ�ต ถ้%กส�งมาที่�(ระบบหน่�วยความจำา

cachecache ข้�อม%ลำชั้�องส�ญ่ญ่าณข้�อม%ลำชั้�องส�ญ่ญ่าณ cachecache ข้น่าดข้น่าด 14 14 บ�ต บ�ต (line number)(line number) ถ้%กน่าไป็ใชั้�ใน่การค�น่หาตาแหน่�งชั้�องส�ญ่ญ่าณถ้%กน่าไป็ใชั้�ใน่การค�น่หาตาแหน่�งชั้�องส�ญ่ญ่าณ cachecache ต�อไป็ต�อไป็

ข้�อม%ลำป็9ายบอกตาแหน่�งข้�อม%ลำป็9ายบอกตาแหน่�ง 8 8 บ�ตแรกบ�ตแรก (tag)(tag) จำะถ้%กน่าไป็เป็ร�ยบเที่�ยบจำะถ้%กน่าไป็เป็ร�ยบเที่�ยบก�บหมายเลำข้ข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ตาแหน่�งชั้�องก�บหมายเลำข้ข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ตาแหน่�งชั้�องส�ญ่ญ่าณ ส�ญ่ญ่าณ cachecache ที่�(พิบน่�!น่ ซ)(งถ้�าตรงก�น่ก0แสดงว�าข้�อม%ลำบลำ0อกที่�(ที่�(พิบน่�!น่ ซ)(งถ้�าตรงก�น่ก0แสดงว�าข้�อม%ลำบลำ0อกที่�(ต�องการน่�!น่อย%�ใน่ต�องการน่�!น่อย%�ใน่ cache cache จำ)งน่าข้�อม%ลำสองบ�ตส&ดที่�ายจำ)งน่าข้�อม%ลำสองบ�ตส&ดที่�าย (word) (word) มาใชั้�มาใชั้�เลำ*อกข้�อม%ลำ เลำ*อกข้�อม%ลำ ((หน่)(งใน่หน่)(งใน่ 44 ไบที่�ไบที่�) ) ใน่บลำ0อกน่�!น่ใน่บลำ0อกน่�!น่

3939

Direct MappingDirect Mapping แต�ถ้�าข้�อม%ลำป็9ายบอกตาแหน่�งม�ค�าไม�เที่�าก�น่ แสดงว�าข้�อม%ลำใน่บลำ0อกน่�!น่ ย�งแต�ถ้�าข้�อม%ลำป็9ายบอกตาแหน่�งม�ค�าไม�เที่�าก�น่ แสดงว�าข้�อม%ลำใน่บลำ0อกน่�!น่ ย�ง

ไม�ถ้%กค�ดลำอกสาเน่าจำากหน่�วยความจำาหลำ�กมาเก0บไว�ใน่ไม�ถ้%กค�ดลำอกสาเน่าจำากหน่�วยความจำาหลำ�กมาเก0บไว�ใน่ cache cache ก0จำะน่าก0จำะน่าข้�อม%ลำป็9ายบอกตาแหน่�งรวมที่�!งข้�อม%ลำชั้�องส�ญ่ญ่าณข้�อม%ลำป็9ายบอกตาแหน่�งรวมที่�!งข้�อม%ลำชั้�องส�ญ่ญ่าณ cache cache จำาน่วน่จำาน่วน่ 22 22 บ�ตมารวมก�น่ กลำายเป็�น่ตาแหน่�งบลำ0อกข้�อม%ลำใน่หน่�วยความจำาหลำ�ก แลำ�วบ�ตมารวมก�น่ กลำายเป็�น่ตาแหน่�งบลำ0อกข้�อม%ลำใน่หน่�วยความจำาหลำ�ก แลำ�วค�ดลำอกสาเน่ามาเก0บไว�ใน่ค�ดลำอกสาเน่ามาเก0บไว�ใน่ cachecache

หมายเลำข้ที่�(อย%�จำร�ง ๆ ใน่หน่�วยความจำาหลำ�กน่�!น่มาจำากข้�อม%ลำหมายเลำข้ที่�(อย%�จำร�ง ๆ ใน่หน่�วยความจำาหลำ�กน่�!น่มาจำากข้�อม%ลำ 22 22 บ�ต แลำะต�อบ�ต แลำะต�อที่�ายด�วยที่�ายด�วย 0000 ที่าให�กลำายเป็�น่หมายเลำข้ที่�(อย%�เร�(มต�น่ข้องข้�อม%ลำใน่แต�บลำ0อกที่าให�กลำายเป็�น่หมายเลำข้ที่�(อย%�เร�(มต�น่ข้องข้�อม%ลำใน่แต�บลำ0อกข้น่าดข้น่าด 24 24 บ�ต ที่�(เก0บอย%�ใน่หน่�วยความจำาหลำ�กบ�ต ที่�(เก0บอย%�ใน่หน่�วยความจำาหลำ�ก

ข้�อด�ข้อง ข้�อด�ข้อง Direct mappingDirect mapping ค*อ เป็�น่ว�ธิ�ที่�(ง�ายสร�างข้)!น่มาใชั้�งาน่โดยใชั้�ค*อ เป็�น่ว�ธิ�ที่�(ง�ายสร�างข้)!น่มาใชั้�งาน่โดยใชั้�ต�น่ที่&น่ต(าต�น่ที่&น่ต(า

ส�วน่ข้�อเส�ยค*อ การเป็ลำ�(ยน่ตาแหน่�งบลำ0อกข้�อม%ลำจำากหน่�วยความจำาหลำ�กมาส�วน่ข้�อเส�ยค*อ การเป็ลำ�(ยน่ตาแหน่�งบลำ0อกข้�อม%ลำจำากหน่�วยความจำาหลำ�กมาที่�(ที่�( cachecache น่�!น่เป็�น่การกาหน่ดตาแหน่�งคงที่�( ด�งน่�!น่ถ้�าใน่โป็รแกรมเก�ดม�การน่�!น่เป็�น่การกาหน่ดตาแหน่�งคงที่�( ด�งน่�!น่ถ้�าใน่โป็รแกรมเก�ดม�การอ�างอ�งถ้)งข้�อม%ลำจำากสองบลำ0อกหร*อมากกว�า ข้�อม%ลำที่�!งสองบลำ0อกน่�!น่จำะต�องอ�างอ�งถ้)งข้�อม%ลำจำากสองบลำ0อกหร*อมากกว�า ข้�อม%ลำที่�!งสองบลำ0อกน่�!น่จำะต�องสลำ�บเป็ลำ�(ยน่ก�น่ถ้%กค�ดลำอกเข้�ามาไว�ใน่สลำ�บเป็ลำ�(ยน่ก�น่ถ้%กค�ดลำอกเข้�ามาไว�ใน่ cachecache ที่�(ตาแหน่�งเด�ยวก�น่เสมอ ที่�!ง ที่�(ตาแหน่�งเด�ยวก�น่เสมอ ที่�!ง ๆ ที่�(ๆ ที่�( cache cache ส�วน่อ*(น่อาจำไม�ม�ข้�อม%ลำอย%�เลำยก0ได� ป็รากฏการณ�แบบน่�!เร�ยกว�า ส�วน่อ*(น่อาจำไม�ม�ข้�อม%ลำอย%�เลำยก0ได� ป็รากฏการณ�แบบน่�!เร�ยกว�า ““trashing”trashing”

4040

Associative MappingAssociative Mapping ว�ธิ�น่�!แก�ป็5ญ่หาข้องว�ธิ�น่�!แก�ป็5ญ่หาข้อง Direct mappingDirect mapping โดยการย�น่ยอมให�หน่�วยโดยการย�น่ยอมให�หน่�วย

ความจำาแต�ลำะบลำ0อก สามารถ้%กอ�าน่เข้�ามาใน่ความจำาแต�ลำะบลำ0อก สามารถ้%กอ�าน่เข้�ามาใน่ cachecache ชั้�องใดก0ได� ชั้�องใดก0ได� ใน่กรณ�น่�!การแป็ลำงตาแหน่�งที่�(อย%�จำะแบ�งออกเป็�น่เพิ�ยงสองส�วน่ใน่กรณ�น่�!การแป็ลำงตาแหน่�งที่�(อย%�จำะแบ�งออกเป็�น่เพิ�ยงสองส�วน่

ค*อ ป็9ายบอกตาแหน่�งค*อ ป็9ายบอกตาแหน่�ง (tag)(tag) แลำะ ตาแหน่�งข้อง แลำะ ตาแหน่�งข้อง wordword ป็9ายบอกตาแหน่�งใชั้�ใน่การบอกหมายเลำข้บลำ0อกข้องหน่�วยความป็9ายบอกตาแหน่�งใชั้�ใน่การบอกหมายเลำข้บลำ0อกข้องหน่�วยความ

จำาหลำ�ก การตรวจำสอบว�าบลำ0อกน่�!น่อย%�ใน่จำาหลำ�ก การตรวจำสอบว�าบลำ0อกน่�!น่อย%�ใน่ cachecache หร*อไม� ย�งคงใชั้�หร*อไม� ย�งคงใชั้�ว�ธิ�เด�ม ค*อ การเป็ร�ยบเที่�ยบค�าข้องป็9ายบอกตาแหน่�งที่�(มาก�บว�ธิ�เด�ม ค*อ การเป็ร�ยบเที่�ยบค�าข้องป็9ายบอกตาแหน่�งที่�(มาก�บข้�อม%ลำ ก�บค�าข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ข้�อม%ลำ ก�บค�าข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ cachecache ร%ป็ด�าน่ร%ป็ด�าน่ลำ�างแสดงการที่างาน่ข้องลำ�างแสดงการที่างาน่ข้อง Associative mappingAssociative mapping ส�งเกตว�าไม�ม�ส�งเกตว�าไม�ม�ส�วน่ใดข้องตาแหน่�งที่�(อย%�ข้�อม%ลำเป็�น่ส�วน่ที่�(บอกตาแหน่�งใน่ส�วน่ใดข้องตาแหน่�งที่�(อย%�ข้�อม%ลำเป็�น่ส�วน่ที่�(บอกตาแหน่�งใน่ cache cache (line number) (line number) ด�งน่�!น่จำ)งไม�ม�การตรวจำสอบหมายเลำข้ชั้�องด�งน่�!น่จำ)งไม�ม�การตรวจำสอบหมายเลำข้ชั้�องส�ญ่ญ่าณใน่ส�ญ่ญ่าณใน่ cache cache

4141

Associative MappingAssociative Mapping

Tag Word

Compare

.

.

.

.

.

.

.

.

X

(Hit in cache)

X

L0

Li

Lm-1

Tag Data

CacheMemory address

(Miss in cache)

W4j

W(4j + 1)

W(4j + 2)

W(4j + 3)

s

w

s w

w

s + w

.

.

.

.

W0

W1

W2

W3

.

.

.

.

B0

Bj

Main memory

...

s

โครงสร�างหน่�วยความจำา cache แบบ fully associative

4242

Associative MappingAssociative Mapping ค�าต�าง ๆ ใน่ร%ป็แสดงได�ด�งน่�!ค�าต�าง ๆ ใน่ร%ป็แสดงได�ด�งน่�!

ความยาวข้องหมายเลำข้ตาแหน่�งที่�(อย%� ความยาวข้องหมายเลำข้ตาแหน่�งที่�(อย%� (address (address length) = (s+w) length) = (s+w) บ�ตบ�ต

จำาน่วน่จำาน่วน่ word word ((หร*อหร*อ byte)byte) ใน่หน่�วยความจำาหลำ�ก ใน่หน่�วยความจำาหลำ�ก = = 22s+ws+w wordswords

ข้น่าดข้องบลำ0อก ข้น่าดข้องบลำ0อก = 2= 2ww words words ( (หร*อหร*อ byte)byte) จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก = =

จำาน่วน่ชั้�องส�ญ่ญ่าณใน่ จำาน่วน่ชั้�องส�ญ่ญ่าณใน่ cache = cache = ไม�ม�การกาหน่ดไม�ม�การกาหน่ดตายต�วตายต�ว

ข้น่าดข้องป็9ายบอกตาแหน่�งข้น่าดข้องป็9ายบอกตาแหน่�ง = s = s บ�ตบ�ต

sw

ws

22

2

4343

Associative MappingAssociative Mapping ร%ป็ด�าน่ลำ�างแสดงการใชั้�ร%ป็ด�าน่ลำ�างแสดงการใชั้� Associative MappingAssociative Mapping ที่�(อย%�ใน่ที่�(อย%�ใน่

หน่�วยความจำาหลำ�กหน่�วยความจำาหลำ�ก(memory address) (memory address) ป็ระกอบข้)!น่จำาก ป็ระกอบข้)!น่จำาก ป็9ายบอกตาแหน่�งข้น่าดป็9ายบอกตาแหน่�งข้น่าด 22 22 บ�ต แลำะเลำข้บอกตาแหน่�งไบต�บ�ต แลำะเลำข้บอกตาแหน่�งไบต�ข้น่าด ข้น่าด 2 2 บ�ต รวมเป็�น่บ�ต รวมเป็�น่ 24 24 บ�ต ป็9ายบอกตาแหน่�งที่�!งบ�ต ป็9ายบอกตาแหน่�งที่�!ง 22 22 บ�ต บ�ต ((เร�(มจำากบ�ตซ�ายส&ดเร�(มจำากบ�ตซ�ายส&ด) ) จำะต�องใชั้�ใน่การเก0บข้�อม%ลำบลำ0อกลำะ จำะต�องใชั้�ใน่การเก0บข้�อม%ลำบลำ0อกลำะ 32 32 บ�ต สาหร�บแต�ลำะชั้�องส�ญ่ญ่าณใน่บ�ต สาหร�บแต�ลำะชั้�องส�ญ่ญ่าณใน่ cache cache เชั้�น่เชั้�น่

Memory address 0001 0110 0011 0011 1001 1100 (binary 24 bits) 1 6 3 3 9 C (hexadecimal)

Tag(leftmost 22 bits) 00 0101 1000 1100 1110 0111 (binary 22 bits) 0 5 8 C E 7 (hexadecimal)

น่��น่ค(อทั่%�อย��ทั่%�อ�างอ&งใน่หน่�วยความจำาหล�ก 16339C จำะม%หมายเลข tag เป)น่ 058CE7

ข้�อเส�ย ข้องว�ธิ�น่�!ค*อ ความซ�บซ�อน่ที่�(เก�ดข้)!น่ใน่ระหว�างการตรวจำสอบป็9ายบอกตาแหน่�งข้�อม%ลำใน่ cacheที่�(จำะต�องที่าการตรวจำสอบพิร�อมก�น่ที่&กตาแหน่�ง

4444

Associative MappingAssociative Mapping1 3 5 7 9 2 4 6

F E D C B A 9 8

2 4 6 8 2 4 6 8

1 1 2 2 3 3 4 4

3 3 3 3 3 3 3 3

1 1 2 2 3 3 4 4

F E D C B A 9 8

3FFFFE

058CE7

Tag Data

2 4 6 8 2 4 6 8

1 3 5 7 9 2 4 6

3 3 3 3 3 3 3 33FFFFD

000000

3FFFFF

32 bits

22 bits 32 bits

DataAddress

000000

000004

16339C

1633A0

163398

FFFFF8

FFFFFC

FFFFF4

0000

0001

3FFD

3FFE

3FFF

16-Kword cache

16-Mbyte main memory

Line number

22 2

Tag Word

Main memory address =

โครงสร�างหน่�วยความจำา cacheแบบ associative

4545

Set Associative MappingSet Associative Mapping เป็�น่ว�ธิ�การผิสมที่�(ได�น่าข้�อด�ข้องที่�!งแบบเป็�น่ว�ธิ�การผิสมที่�(ได�น่าข้�อด�ข้องที่�!งแบบ directdirect แลำะแลำะ associativeassociative

มาใชั้�มาใชั้� ใน่ข้ณะที่�(พิยายามลำดข้�อด�อยให�ม�ผิลำกระที่บน่�อยลำง ใน่กรณ�น่�! ใน่ข้ณะที่�(พิยายามลำดข้�อด�อยให�ม�ผิลำกระที่บน่�อยลำง ใน่กรณ�น่�!

หน่�วยความจำาหน่�วยความจำา cachecache จำะถ้%กแบ�งออกเป็�น่เซ0ตจำาน่วน่ จำะถ้%กแบ�งออกเป็�น่เซ0ตจำาน่วน่ v v เซ0ต แต�ลำะเซ0ต แต�ลำะเซ0ตป็ระกอบด�วยชั้�องส�ญ่ญ่าณจำาน่วน่ เซ0ตป็ระกอบด�วยชั้�องส�ญ่ญ่าณจำาน่วน่ kk ชั้�อง สร&ป็ความส�มพิ�น่ธิ�ชั้�อง สร&ป็ความส�มพิ�น่ธิ�ได� ด�งน่�!ได� ด�งน่�!

m = v x km = v x k

i = j modulo vi = j modulo v

เม*(อเม*(อ i = i = หมายเลำข้เซ0ตใน่หมายเลำข้เซ0ตใน่ cachecache j = j = หมายเลำข้บลำ0อกใน่หน่�วยความจำาหลำ�กหมายเลำข้บลำ0อกใน่หน่�วยความจำาหลำ�ก m = m = จำาน่วน่ชั้�องส�ญ่ญ่าณใน่จำาน่วน่ชั้�องส�ญ่ญ่าณใน่ chchechche

4646

Set Associative MappingSet Associative Mapping ความส�มพิ�น่ธิ�ด�าน่บน่น่�!น่ เร�ยกเป็�น่ชั้*(อเฉพิาะว�าความส�มพิ�น่ธิ�ด�าน่บน่น่�!น่ เร�ยกเป็�น่ชั้*(อเฉพิาะว�า “ “k-way set k-way set

associative mapping” associative mapping” ว�ธิ�การน่�!จำะแป็ลำงที่�(อย%�ข้องบลำ0อกว�ธิ�การน่�!จำะแป็ลำงที่�(อย%�ข้องบลำ0อก BBjj ให�ไป็อย%�ใน่ชั้�องส�ญ่ญ่าณใดให�ไป็อย%�ใน่ชั้�องส�ญ่ญ่าณใด

ก0ได�ใน่เซ0ตก0ได�ใน่เซ0ต i i ข้องหน่�วยความจำาข้องหน่�วยความจำา cachecache โครงสร�างข้องหมายเลำข้โครงสร�างข้องหมายเลำข้ที่�(อย%�ป็ระกอบด�วยสามส�วน่ค*อ ป็9ายบอกตาแหน่�งที่�(อย%�ป็ระกอบด�วยสามส�วน่ค*อ ป็9ายบอกตาแหน่�ง(tag), (tag), หมายเลำข้หมายเลำข้เซ0ตเซ0ต แลำะตาแหน่�งใน่แลำะตาแหน่�งใน่ wordword

หมายเลำข้เซ0ตม�ข้น่าดหมายเลำข้เซ0ตม�ข้น่าด d d บ�ต บ�ต (v = 2(v = 2dd set) set) ใชั้�ใน่การกาหน่ดเซ0ตที่�(ใชั้�ใน่การกาหน่ดเซ0ตที่�(ต�องใชั้�ใน่ต�องใชั้�ใน่ cachecache ส�วน่ป็9ายบอกตาแหน่�งข้น่าดส�วน่ป็9ายบอกตาแหน่�งข้น่าด s s บ�ต แลำะข้�อม%ลำใน่บ�ต แลำะข้�อม%ลำใน่เซ0ต จำะน่ามาใชั้�บอกตาแหน่�งบลำ0อกข้�อม%ลำใน่หน่�วยความจำาเซ0ต จำะน่ามาใชั้�บอกตาแหน่�งบลำ0อกข้�อม%ลำใน่หน่�วยความจำา

ร%ป็ด�าน่ลำ�างแสดงการที่างาน่ข้องร%ป็ด�าน่ลำ�างแสดงการที่างาน่ข้อง set associativeset associative กรณ�พิ�เศษกรณ�พิ�เศษกรณ�หน่)(งเร�ยกว�ากรณ�หน่)(งเร�ยกว�า fully associative mapping fully associative mapping ม�ข้น่าดข้องป็9ายม�ข้น่าดข้องป็9ายบอกตาแหน่�งมาก จำน่ต�องที่าการเป็ร�ยบเที่�ยบก�บที่&กชั้�องบอกตาแหน่�งมาก จำน่ต�องที่าการเป็ร�ยบเที่�ยบก�บที่&กชั้�องส�ญ่ญ่าณใน่ส�ญ่ญ่าณใน่ cachecache

4747

Set Associative MappingSet Associative Mapping

Tag Word

Compare

F0

F1

.

.

.

Fk-1

Fk

.

.

F2k-1

X

(Hit in cache)

X

Set 0

Set 1

Tag Data

CacheMemory address

(Miss in cache)

Bjs+w

s - d w

s + w

.

.

.

.

B0

B1

.

.

.

.

Main memory

...

Set

Fk+i

.

.

.

.

d

โครงสร�างหน่�วยความจำา cache แบบ k-way set associative

4848

Set Associative MappingSet Associative Mapping แต�แต� k-way set associative k-way set associative จำะม�ข้น่าดข้องป็9ายบอกตาแหน่�งจำะม�ข้น่าดข้องป็9ายบอกตาแหน่�ง

ที่�(เลำ0กกว�ามาก ซ)(งจำะที่าการเป็ร�ยบเที่�ยบชั้�องส�ญ่ญ่าณเพิ�ยงที่�(เลำ0กกว�ามาก ซ)(งจำะที่าการเป็ร�ยบเที่�ยบชั้�องส�ญ่ญ่าณเพิ�ยง kk ชั้�องใน่เซ0ตหน่)(ง ๆ เที่�าน่�!น่ สร&ป็ความส�มพิ�น่ธิ�ได�ด�งน่�!ชั้�องใน่เซ0ตหน่)(ง ๆ เที่�าน่�!น่ สร&ป็ความส�มพิ�น่ธิ�ได�ด�งน่�! ความยาวข้องตาแหน่�งข้�อม%ลำความยาวข้องตาแหน่�งข้�อม%ลำ (address length) = s + w (address length) = s + w

บ�ตบ�ต ข้น่าดหน่�วยความจำาที่�!งหมด ข้น่าดหน่�วยความจำาที่�!งหมด = 2= 2s+ws+w words words หร*อหร*อ bytesbytes ข้น่าดข้องบลำ0อก ข้น่าดข้องบลำ0อก = 2= 2ww words or bytes words or bytes จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก จำาน่วน่บลำ0อกใน่หน่�วยความจำาหลำ�ก = = บลำ0อกบลำ0อก

จำาน่วน่ชั้�องส�ญ่ญ่าณใน่แต�ลำะเซ0ต จำาน่วน่ชั้�องส�ญ่ญ่าณใน่แต�ลำะเซ0ต = k = k จำาน่วน่เซ0ต จำาน่วน่เซ0ต = 2= 2dd = v = v เซ0ตเซ0ต จำาน่วน่ชั้�องส�ญ่ญ่าณที่�!งหมดใน่จำาน่วน่ชั้�องส�ญ่ญ่าณที่�!งหมดใน่ cache = kv = k x 2cache = kv = k x 2dd

ข้น่าดข้องป็9ายบอกตาแหน่�งข้น่าดข้องป็9ายบอกตาแหน่�ง = (s – d)= (s – d) บ�ตบ�ต

sw

ws

22

2

4949

Set Associative MappingSet Associative Mapping

ร%ป็ด�าน่ลำ�างแสดงต�วอย�างการที่างาน่ข้องร%ป็ด�าน่ลำ�างแสดงต�วอย�างการที่างาน่ข้อง set associativeset associative ที่�(แต�ที่�(แต�ลำะเซ0ตป็ระกอบด�วยลำะเซ0ตป็ระกอบด�วย 22 ชั้�องส�ญ่ญ่าณชั้�องส�ญ่ญ่าณ(2-way set associative)(2-way set associative)

หมายเลำข้เซ0ตข้น่าดหมายเลำข้เซ0ตข้น่าด 13 13 บ�ตใชั้�ระบ&หมายเลำข้เซ0ต แลำะหมายเลำข้บ�ตใชั้�ระบ&หมายเลำข้เซ0ต แลำะหมายเลำข้บลำ0อกใน่หน่�วยความจำาหลำ�ก ด�งน่�!น่บลำ0อกหมายเลำข้ บลำ0อกใน่หน่�วยความจำาหลำ�ก ด�งน่�!น่บลำ0อกหมายเลำข้ 000000,008000, …, FF8000000000,008000, …, FF8000 ข้องหน่�วยความจำาหลำ�กจำะถ้%กข้องหน่�วยความจำาหลำ�กจำะถ้%กแป็ลำงให�ไป็อย%�ใน่เซ0ต แป็ลำงให�ไป็อย%�ใน่เซ0ต 00 ใน่ใน่ cache cache

แต�ลำะบลำ0อกสามารถ้ถ้%กอ�าน่เข้�าไป็เก0บไว�ใน่ชั้�องส�ญ่ญ่าณใดข้องแต�ลำะบลำ0อกสามารถ้ถ้%กอ�าน่เข้�าไป็เก0บไว�ใน่ชั้�องส�ญ่ญ่าณใดข้องเซ0ตเซ0ต 00 ก0ได� แต�จำะไม�สามารถ้เก0บไว�ที่�(ชั้�องส�ญ่ญ่าณเด�ยวก�น่ใน่เซ0ตก0ได� แต�จำะไม�สามารถ้เก0บไว�ที่�(ชั้�องส�ญ่ญ่าณเด�ยวก�น่ใน่เซ0ตเด�ยวก�น่ได� เด�ยวก�น่ได�

จำากน่�!น่ค�าข้องป็9ายบอกตาแหน่�ง ที่�(ตาแหน่�งข้�อม%ลำที่�(ถ้%กอ�างอ�งจำะจำากน่�!น่ค�าข้องป็9ายบอกตาแหน่�ง ที่�(ตาแหน่�งข้�อม%ลำที่�(ถ้%กอ�างอ�งจำะถ้%กน่ามาเป็ร�ยบเที่�ยบก�บค�าข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ถ้%กน่ามาเป็ร�ยบเที่�ยบก�บค�าข้องป็9ายบอกตาแหน่�งที่�(เก0บอย%�ใน่ cachecache พิร�อมก�น่ที่�!งสองชั้�องส�ญ่ญ่าณ เพิ*(อค�น่หาบลำ0อกข้�อม%ลำที่�(พิร�อมก�น่ที่�!งสองชั้�องส�ญ่ญ่าณ เพิ*(อค�น่หาบลำ0อกข้�อม%ลำที่�(ต�องการต�องการ

5050

Set Associative MappingSet Associative Mapping

.

.

.

.

.

.

1 3 5 7 9 2 4 6

7 7 7 7 7 7 7 7

1 1 2 3 5 8 1 3

F E D C B A 9 8

1 2 3 4 5 6 7 8

2 4 6 8 2 4 6 8

1 1 2 2 3 3 4 4

1 3 5 7 9 2 4 6

1 1 2 3 5 8 1 3

F E D C B A 9 8

1 2 3 4 5 6 7 8

1 1 2 2 3 3 4 4

000

02C

02C

1FF

02C

0000

0004

7FFC

7FF8

0000

0004

7FFC

339C

0000

0004

7FFC

7FF8

0000

0001

1FFF

1FFF

0CE7

9 Bits 32 Bits

32 Bits

000

02C

1FF

DataSet + word

Tag

Tag DataLine

number

16-Mbyte main memory

16-Kword cache

7 7 7 7 7 7 7 7

2 4 6 8 2 4 6 8

02C

1FF

Tag Data

9 Bits 32 Bits

9 13 2

Tag Line Word

Main memory address =

ต�วอย�างโครงสร�างหน่�วยความจำา cacheแบบ 2-way set associative

5151

Set Associative MappingSet Associative Mapping

ใน่กรณ�ที่�(ใน่กรณ�ที่�( v=m v=m แลำะ แลำะ k=1k=1 จำะที่าให�ว�ธิ�น่�!กลำายเป็�น่จำะที่าให�ว�ธิ�น่�!กลำายเป็�น่ direct mappingdirect mapping แลำะถ้�าแลำะถ้�า v=1v=1 แลำะแลำะ k=mk=m ก0จำะกลำายเป็�น่ว�ธิ�ก0จำะกลำายเป็�น่ว�ธิ� associative mappingassociative mapping การกาหน่ดให�แต�ลำะเซ0ตม�สองชั้�องส�ญ่ญ่าณการกาหน่ดให�แต�ลำะเซ0ตม�สองชั้�องส�ญ่ญ่าณ(v=m/2(v=m/2 แลำะแลำะ k=2)k=2)

เป็�น่ว�ธิ�การที่�(น่�ยมใชั้�ก�น่โดยที่�(วไป็ ซ)(งสามารถ้เพิ�(มป็ระส�ที่ธิ�ภาพิข้องเป็�น่ว�ธิ�การที่�(น่�ยมใชั้�ก�น่โดยที่�(วไป็ ซ)(งสามารถ้เพิ�(มป็ระส�ที่ธิ�ภาพิข้องอ�ตราการค�น่พิบข้�อม%ลำใน่อ�ตราการค�น่พิบข้�อม%ลำใน่ cachecache ได�ด�กว�าว�ธิ� ได�ด�กว�าว�ธิ� direct mappingdirect mapping แลำะถ้�าการกาหน่ดให�แต�ลำะเซ0ตม�ส�(ชั้�องส�ญ่ญ่าณ แลำะถ้�าการกาหน่ดให�แต�ลำะเซ0ตม�ส�(ชั้�องส�ญ่ญ่าณ (v=m/4(v=m/4 แลำะ แลำะ k=4)k=4) ซ)(งเร�ยกว�าซ)(งเร�ยกว�า 4-way set associative4-way set associative ก0จำะเพิ�(มป็ระส�ที่ธิ�ภาพิให�ด�ย�(งก0จำะเพิ�(มป็ระส�ที่ธิ�ภาพิให�ด�ย�(งข้)!น่ไป็อ�ก โดยที่�(ม�ค�าใชั้�จำ�ายเพิ�(มข้)!น่เพิ�ยงเลำ0กน่�อย ข้)!น่ไป็อ�ก โดยที่�(ม�ค�าใชั้�จำ�ายเพิ�(มข้)!น่เพิ�ยงเลำ0กน่�อย

แต�ถ้�าเพิ�(มจำาน่วน่ชั้�องส�ญ่ญ่าณต�อเซ0น่ให�ส%งกว�าน่�!แลำ�ว แต�ถ้�าเพิ�(มจำาน่วน่ชั้�องส�ญ่ญ่าณต�อเซ0น่ให�ส%งกว�าน่�!แลำ�ว ป็ระส�ที่ธิ�ภาพิที่�(ได�ร�บจำะเพิ�(มข้)!น่เพิ�ยงเลำ0กน่�อยเที่�าน่�!น่ ซ)(งไม�ค&�มค�าก�บป็ระส�ที่ธิ�ภาพิที่�(ได�ร�บจำะเพิ�(มข้)!น่เพิ�ยงเลำ0กน่�อยเที่�าน่�!น่ ซ)(งไม�ค&�มค�าก�บค�าใชั้�จำ�ายที่�(เพิ�(มส%งข้)!น่ค�าใชั้�จำ�ายที่�(เพิ�(มส%งข้)!น่

5252

Replacement AlgorithmReplacement Algorithm

เม*(อข้�อม%ลำบลำ0อกใหม�ถ้%กอ�าน่ข้)!น่มาจำากหน่�วยความจำา หน่)(งใน่เม*(อข้�อม%ลำบลำ0อกใหม�ถ้%กอ�าน่ข้)!น่มาจำากหน่�วยความจำา หน่)(งใน่บลำ0อกเด�มที่�(ถ้%กอ�าน่เข้�ามาไว�ใน่บลำ0อกเด�มที่�(ถ้%กอ�าน่เข้�ามาไว�ใน่ cache cache จำะต�องถ้%กแที่น่ที่�(ด�วยจำะต�องถ้%กแที่น่ที่�(ด�วยบลำ0อกใหม� บลำ0อกใหม�

สาหร�บสาหร�บ direct mappingdirect mapping จำะม�ชั้�องส�ญ่ญ่าณเพิ�ยงชั้�องเด�ยวจำะม�ชั้�องส�ญ่ญ่าณเพิ�ยงชั้�องเด�ยวเที่�าน่�!น่ที่�(จำะเป็�น่ที่�(อย%�ใน่เที่�าน่�!น่ที่�(จำะเป็�น่ที่�(อย%�ใน่ cachecache สาหร�บข้�อม%ลำแต�ลำะบลำ0อก จำ)งสาหร�บข้�อม%ลำแต�ลำะบลำ0อก จำ)งไม�จำาเป็�น่ต�องค�ดหาว�ธิ�การแที่น่ที่�(ใด ๆไม�จำาเป็�น่ต�องค�ดหาว�ธิ�การแที่น่ที่�(ใด ๆ

สาหร�บสาหร�บ associative associative แลำะแลำะ set associativeset associative จำะต�องน่าว�ธิ�การจำะต�องน่าว�ธิ�การสาหร�บการแที่น่ที่�(สาหร�บการแที่น่ที่�( (replacement)(replacement) มาใชั้�งาน่ เพิ*(อตอบสน่องมาใชั้�งาน่ เพิ*(อตอบสน่องความรวดเร0วใน่การที่างาน่ ว�ธิ�การด�งกลำ�าวจำะต�องถ้%กสร�างข้)!น่ความรวดเร0วใน่การที่างาน่ ว�ธิ�การด�งกลำ�าวจำะต�องถ้%กสร�างข้)!น่ด�วยฮาร�ดแวร� ว�ธิ�การที่�(น่�ยมน่ามาใชั้�ก�น่โดยที่�(วไป็ม�ด�วยฮาร�ดแวร� ว�ธิ�การที่�(น่�ยมน่ามาใชั้�ก�น่โดยที่�(วไป็ม� 44 ว�ธิ� ว�ธิ�ที่�(ว�ธิ� ว�ธิ�ที่�(น่�ยมก�น่มากที่�(ส&ด ค*อน่�ยมก�น่มากที่�(ส&ด ค*อ Least recently used; LRULeast recently used; LRU

5353

Replacement AlgorithmReplacement Algorithm

LRU (Least recently used)LRU (Least recently used) : : จำะน่าบลำ0อกใหม�มาแที่น่ที่�(จำะน่าบลำ0อกใหม�มาแที่น่ที่�(บลำ0อกเก�าที่�(ถ้%กเก0บไว�ใน่บลำ0อกเก�าที่�(ถ้%กเก0บไว�ใน่ cachecache เป็�น่เวลำาน่าน่ที่�(ส&ด โดยที่�(ม�เป็�น่เวลำาน่าน่ที่�(ส&ด โดยที่�(ม�การน่าไป็ใชั้�งาน่น่�อยที่�(ส&ด สาหร�บการน่าไป็ใชั้�งาน่น่�อยที่�(ส&ด สาหร�บ 2-way set associative2-way set associative สามารถ้สร�างข้)!น่มาใชั้�งาน่ได�ง�ายมาก แต�ลำะชั้�องส�ญ่ญ่าณใน่สามารถ้สร�างข้)!น่มาใชั้�งาน่ได�ง�ายมาก แต�ลำะชั้�องส�ญ่ญ่าณใน่เซ0ตจำะม�บ�ตพิ�เศษเร�ยกว�าเซ0ตจำะม�บ�ตพิ�เศษเร�ยกว�า USEUSE บ�ตบ�ต เม*(อม�การอ�างอ�งถ้)งเม*(อม�การอ�างอ�งถ้)งชั้�องส�ญ่ญ่าณหน่)(งก0จำะเป็ลำ�(ยน่ค�าชั้�องส�ญ่ญ่าณหน่)(งก0จำะเป็ลำ�(ยน่ค�า USEUSE ให�เป็�น่ให�เป็�น่ “ “1”1” แลำะแลำะ กาหน่ดให�กาหน่ดให� USE USE บ�ตข้องอ�กชั้�องส�ญ่ญ่าณให�เป็�น่บ�ตข้องอ�กชั้�องส�ญ่ญ่าณให�เป็�น่ “ “0”0” เม*(อเม*(อต�องการน่าข้�อม%ลำบลำ0อกใหม�เข้�ามาใน่เซ0ตน่�!น่ ก0จำะเลำ*อกให�ต�องการน่าข้�อม%ลำบลำ0อกใหม�เข้�ามาใน่เซ0ตน่�!น่ ก0จำะเลำ*อกให�ชั้�องส�ญ่ญ่าณที่�(ม�ค�า ชั้�องส�ญ่ญ่าณที่�(ม�ค�า USEUSE เป็�น่เป็�น่ “ “0”0” ที่�!งน่�!แน่วความค�ดน่�! ที่�!งน่�!แน่วความค�ดน่�! คาดว�าข้�อม%ลำที่�(ถ้%กอ�างอ�งถ้)งใน่ลำาด�บหลำ�ง ม�โอกาสที่�(จำะถ้%กคาดว�าข้�อม%ลำที่�(ถ้%กอ�างอ�งถ้)งใน่ลำาด�บหลำ�ง ม�โอกาสที่�(จำะถ้%กอ�างอ�งมากกว�าข้�อม%ลำที่�(ไม�ถ้%กอ�างอ�งมาเป็�น่เวลำาน่าน่กว�าอ�างอ�งมากกว�าข้�อม%ลำที่�(ไม�ถ้%กอ�างอ�งมาเป็�น่เวลำาน่าน่กว�า

5454

Replacement AlgorithmReplacement Algorithm

FIFO (First-in-First-out)FIFO (First-in-First-out) : : จำะที่ดแที่น่บลำ0อกที่�(ถ้%กอ�าน่ข้)!น่มาจำะที่ดแที่น่บลำ0อกที่�(ถ้%กอ�าน่ข้)!น่มาน่าน่มากที่�(ส&ด น่าน่มากที่�(ส&ด

LFU (Lease frequently used)LFU (Lease frequently used) : : จำะที่าการที่ดแที่น่บลำ0อกที่�(ถ้%กจำะที่าการที่ดแที่น่บลำ0อกที่�(ถ้%กอ�างอ�งเป็�น่จำาน่วน่คร�!งน่�อยที่�(ส&ด การสร�างข้)!น่มาใชั้�งาน่จำาเป็�น่จำะอ�างอ�งเป็�น่จำาน่วน่คร�!งน่�อยที่�(ส&ด การสร�างข้)!น่มาใชั้�งาน่จำาเป็�น่จำะต�องม�ต�วน่�บการใชั้�งาน่ข้�อม%ลำแต�ลำะชั้�องส�ญ่ญ่าณ เพิ*(อหาชั้�องต�องม�ต�วน่�บการใชั้�งาน่ข้�อม%ลำแต�ลำะชั้�องส�ญ่ญ่าณ เพิ*(อหาชั้�องส�ญ่ญ่าณที่�(ม�การน่ามาใชั้�งาน่น่�อยที่�(ส&ด ส�ญ่ญ่าณที่�(ม�การน่ามาใชั้�งาน่น่�อยที่�(ส&ด

RandomRandom : : ที่าโดยส&�มหมายเลำข้ชั้�องส�ญ่ญ่าณข้)!น่มาใน่แต�ลำะคร�!งที่าโดยส&�มหมายเลำข้ชั้�องส�ญ่ญ่าณข้)!น่มาใน่แต�ลำะคร�!งที่�(ม�ความต�องการเก�ดข้)!น่ ผิลำจำากการสร�างระบบจำาลำองที่ดสอบที่�(ม�ความต�องการเก�ดข้)!น่ ผิลำจำากการสร�างระบบจำาลำองที่ดสอบการที่างาน่พิบว�า ว�ธิ�ส&�มน่�!ม�ป็ระส�ที่ธิ�ภาพิด�อยกว�าว�ธิ�การที่�(น่าการที่างาน่พิบว�า ว�ธิ�ส&�มน่�!ม�ป็ระส�ที่ธิ�ภาพิด�อยกว�าว�ธิ�การที่�(น่าข้�อม%ลำเก�(ยวก�บกาน่ใชั้�งาน่มาพิ�จำารณา ข้�อม%ลำเก�(ยวก�บกาน่ใชั้�งาน่มาพิ�จำารณา

5555

Write PolicyWrite Policy

ก�อน่ที่�(บลำ0อกข้�อม%ลำใน่ก�อน่ที่�(บลำ0อกข้�อม%ลำใน่ cachecache จำะถ้%กแที่น่ที่�(ด�วยข้�อม%ลำบลำ0อกจำะถ้%กแที่น่ที่�(ด�วยข้�อม%ลำบลำ0อกใหม� จำาเป็�น่จำะต�องตรวจำสอบว�าข้�อม%ลำใน่บลำ0อกน่�!น่ถ้%กแก�ไข้ใหม� จำาเป็�น่จำะต�องตรวจำสอบว�าข้�อม%ลำใน่บลำ0อกน่�!น่ถ้%กแก�ไข้เป็ลำ�(ยน่แป็ลำงไป็บ�างแลำ�วหร*อไม�เป็ลำ�(ยน่แป็ลำงไป็บ�างแลำ�วหร*อไม�

ถ้�าไม�ม�การแก�ไข้เก�ดข้)!น่ก0สามารถ้บ�น่ที่)กข้�อม%ลำบลำ0อกใหม�แที่น่ที่�(ถ้�าไม�ม�การแก�ไข้เก�ดข้)!น่ก0สามารถ้บ�น่ที่)กข้�อม%ลำบลำ0อกใหม�แที่น่ที่�(ได�เลำย แต�ถ้�าม�การแก�ไข้ข้�อม%ลำจำะต�องม�การบ�น่ที่)กข้�อม%ลำได�เลำย แต�ถ้�าม�การแก�ไข้ข้�อม%ลำจำะต�องม�การบ�น่ที่)กข้�อม%ลำ (write operation) (write operation) เก�ดข้)!น่อย�างน่�อยหน่)(งคร�!งก�บข้�อม%ลำน่�!น่ เก�ดข้)!น่อย�างน่�อยหน่)(งคร�!งก�บข้�อม%ลำน่�!น่ ที่าให�จำะต�องม�การป็ร�บป็ร&งข้�อม%ลำใน่หน่�วยความจำาหลำ�กให�ที่าให�จำะต�องม�การป็ร�บป็ร&งข้�อม%ลำใน่หน่�วยความจำาหลำ�กให�เหม*อน่ก�บข้�อม%ลำใน่เหม*อน่ก�บข้�อม%ลำใน่ cachecache

Write policyWrite policy ม�อย%�หลำายว�ธิ� ยกต�วอย�างเชั้�น่ม�อย%�หลำายว�ธิ� ยกต�วอย�างเชั้�น่ Write throughWrite through Write backWrite back

5656

Write PolicyWrite Policy

Write throughWrite through : : เป็�น่ว�ธิ�ที่�(ง�ายที่�(ส&ดใน่การบ�น่ที่)กข้�อม%ลำลำงเป็�น่ว�ธิ�ที่�(ง�ายที่�(ส&ดใน่การบ�น่ที่)กข้�อม%ลำลำงหน่�วยความจำาใน่ที่�น่ที่� ที่&กคร�!งที่�(ม�การบ�น่ที่)กข้�อม%ลำลำงใน่หน่�วยความจำาใน่ที่�น่ที่� ที่&กคร�!งที่�(ม�การบ�น่ที่)กข้�อม%ลำลำงใน่ cache cache ก0จำะถ้%กบ�งค�บให�เก�ดการบ�น่ที่)กลำงใน่หน่�วยความก0จำะถ้%กบ�งค�บให�เก�ดการบ�น่ที่)กลำงใน่หน่�วยความจำาหลำ�กใน่ที่�น่ที่� เพิ*(อเป็�น่การร�บป็ระก�น่ว�า ข้�อม%ลำที่�!งที่�(อย%�ใน่จำาหลำ�กใน่ที่�น่ที่� เพิ*(อเป็�น่การร�บป็ระก�น่ว�า ข้�อม%ลำที่�!งที่�(อย%�ใน่หน่�วยความจำาหลำ�กแลำะที่�(อย%�ใน่ที่&กส�วน่ข้องหน่�วยความจำาหลำ�กแลำะที่�(อย%�ใน่ที่&กส�วน่ข้อง cachecache น่�!น่ม�ค�าน่�!น่ม�ค�าเที่�าก�บเสมอ ข้�อเส�ยข้องว�ธิ�น่�! ค*อ เป็�น่ว�ธิ�ที่�(ที่าให�เก�ดการส�งเที่�าก�บเสมอ ข้�อเส�ยข้องว�ธิ�น่�! ค*อ เป็�น่ว�ธิ�ที่�(ที่าให�เก�ดการส�งข้�อม%ลำผิ�าน่บ�ส โดยเฉพิาะส�วน่ที่�(เชั้*(อมต�อก�บหน่�วยความข้�อม%ลำผิ�าน่บ�ส โดยเฉพิาะส�วน่ที่�(เชั้*(อมต�อก�บหน่�วยความจำาหลำ�กเป็�น่อย�างมาก ซ)(งอาจำที่าให�เก�ดเป็�น่จำ&ดป็5ญ่หาคอข้วดจำาหลำ�กเป็�น่อย�างมาก ซ)(งอาจำที่าให�เก�ดเป็�น่จำ&ดป็5ญ่หาคอข้วดข้องระบบข้)!น่มาได�ข้องระบบข้)!น่มาได�

5757

Write PolicyWrite Policy

Write backWrite back : : เป็�น่การบ�น่ที่)กข้�อม%ลำใน่ภายหลำ�ง ซ)(งชั้�วยเป็�น่การบ�น่ที่)กข้�อม%ลำใน่ภายหลำ�ง ซ)(งชั้�วยลำดจำาน่วน่คร�!งใน่การบ�น่ที่)กข้�อม%ลำลำงหน่�วยความจำาหลำ�กลำดจำาน่วน่คร�!งใน่การบ�น่ที่)กข้�อม%ลำลำงหน่�วยความจำาหลำ�กให�เหลำ*อน่�อยที่�(ส&ด ว�ธิ�น่�!จำะป็ลำ�อยให�ม�การป็ร�บป็ร&งแก�ไข้ให�เหลำ*อน่�อยที่�(ส&ด ว�ธิ�น่�!จำะป็ลำ�อยให�ม�การป็ร�บป็ร&งแก�ไข้ข้�อม%ลำเก�ดข้)!น่ใน่ข้�อม%ลำเก�ดข้)!น่ใน่ cachecache เที่�าน่�!น่ ซ)(งจำะไป็กาหน่ดค�าข้องบ�ตเที่�าน่�!น่ ซ)(งจำะไป็กาหน่ดค�าข้องบ�ตพิ�เศษเร�ยกว�าพิ�เศษเร�ยกว�า UPDATEUPDATE บ�ต เม*(อม�การแก�ไข้เก�ดข้)!น่จำร�ง บ�ต เม*(อม�การแก�ไข้เก�ดข้)!น่จำร�ง ถ้�าข้�อม%ลำใน่บลำ0อกน่�!น่จำะต�องถ้%กแที่น่ที่�(ด�วยข้�อม%ลำบลำ0อกถ้�าข้�อม%ลำใน่บลำ0อกน่�!น่จำะต�องถ้%กแที่น่ที่�(ด�วยข้�อม%ลำบลำ0อกใหม� ระบบก0จำะตรวจำสอบใหม� ระบบก0จำะตรวจำสอบ UPDATE UPDATE บ�ตบ�ต แลำะจำะที่าการแลำะจำะที่าการบ�น่ที่)กข้�อม%ลำลำงใน่หน่�วยความจำาหลำ�ก ก0ต�อเม*(อบ�ตน่�!ม�ค�าบ�น่ที่)กข้�อม%ลำลำงใน่หน่�วยความจำาหลำ�ก ก0ต�อเม*(อบ�ตน่�!ม�ค�าเป็ลำ�(ยน่แป็ลำงไป็จำากเด�มเที่�าน่�!น่ เป็ลำ�(ยน่แป็ลำงไป็จำากเด�มเที่�าน่�!น่

5858

Line SizeLine Size ข้น่าดข้องบลำ0อกใน่ข้น่าดข้องบลำ0อกใน่ cachecache (line size)(line size) :: เม*(อเก�ดการอ�าน่ข้�อม%ลำเม*(อเก�ดการอ�าน่ข้�อม%ลำ

มาจำากหน่�วยความจำาหลำ�ก แลำะใส�เข้�าไป็ใน่มาจำากหน่�วยความจำาหลำ�ก แลำะใส�เข้�าไป็ใน่ cache cache น่�!น่ น่อกเหน่*อน่�!น่ น่อกเหน่*อจำาก จำาก word mword mต�องการแลำ�วย�งได�ร�บข้�อม%ลำอ*(น่ที่�(อย%�ต�ดก�บต�องการแลำ�วย�งได�ร�บข้�อม%ลำอ*(น่ที่�(อย%�ต�ดก�บ wordword น่�!น่ ๆ มาด�วยอ�กจำาน่วน่หน่)(ง น่�!น่ ๆ มาด�วยอ�กจำาน่วน่หน่)(ง

ถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่อ�ตราการพิบข้�อม%ลำใน่ถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่อ�ตราการพิบข้�อม%ลำใน่ cachecache จำะเพิ�(มข้)!น่จำะเพิ�(มข้)!น่เป็�น่ระยะเวลำาหน่)(ง เน่*(องจำากกฎการอ�างอ�งพิ*!น่ที่�(ใกลำ�เค�ยง เป็�น่ระยะเวลำาหน่)(ง เน่*(องจำากกฎการอ�างอ�งพิ*!น่ที่�(ใกลำ�เค�ยง (locality of reference)(locality of reference) ซ)(งกลำ�าวว�าการอ�างอ�งข้�อม%ลำใน่คร�!งต�อๆ ซ)(งกลำ�าวว�าการอ�างอ�งข้�อม%ลำใน่คร�!งต�อๆ ไป็จำะอ�างอ�งข้�อม%ลำเด�มหร*อข้�อม%ลำที่�(อย%�ใกลำ�เค�ยงก�บที่�(เด�ม ไป็จำะอ�างอ�งข้�อม%ลำเด�มหร*อข้�อม%ลำที่�(อย%�ใกลำ�เค�ยงก�บที่�(เด�ม

ด�งน่�!น่บลำ0อกที่�(ม�ข้น่าดใหญ่�ข้)!น่จำ)งสามารถ้น่าข้�อม%ลำที่�(เป็�น่ป็ระโยชั้น่�ด�งน่�!น่บลำ0อกที่�(ม�ข้น่าดใหญ่�ข้)!น่จำ)งสามารถ้น่าข้�อม%ลำที่�(เป็�น่ป็ระโยชั้น่�เข้�ามาส%�เข้�ามาส%� cache cache ได�มากข้)!น่ อย�างไรก0ตามถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่ได�มากข้)!น่ อย�างไรก0ตามถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่เร*(อย ๆ โอกาสที่�(จำะพิบข้�อม%ลำที่�(ต�องการใน่เร*(อย ๆ โอกาสที่�(จำะพิบข้�อม%ลำที่�(ต�องการใน่ cachecache จำะลำดลำง ถ้�าจำะลำดลำง ถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่ไป็อ�ก โอกาสที่�(จำะใชั้�ข้�อม%ลำใน่บลำ0อกใหม�ที่�(พิ)(งบลำ0อกม�ข้น่าดใหญ่�ข้)!น่ไป็อ�ก โอกาสที่�(จำะใชั้�ข้�อม%ลำใน่บลำ0อกใหม�ที่�(พิ)(งจำะอ�าน่ข้)!น่มาน่�!น่ กลำ�บน่�อยกว�าโอกาสที่�(จำะใชั้�ข้�อม%ลำจำากบลำ0อกเก�าที่�(จำะอ�าน่ข้)!น่มาน่�!น่ กลำ�บน่�อยกว�าโอกาสที่�(จำะใชั้�ข้�อม%ลำจำากบลำ0อกเก�าที่�(ถ้%กแที่น่ที่�(ไป็แลำ�ว ซ)(งสร&ป็ความส�มพิ�น่ธิ�ได�ว�าถ้%กแที่น่ที่�(ไป็แลำ�ว ซ)(งสร&ป็ความส�มพิ�น่ธิ�ได�ว�า

5959

Line SizeLine Size บลำ0อกที่�ม�ข้น่าดใหญ่�จำะลำดจำาน่วน่บลำ0อกที่�(จำะสามารถ้อ�าน่เข้�ามาเก0บไว�บลำ0อกที่�ม�ข้น่าดใหญ่�จำะลำดจำาน่วน่บลำ0อกที่�(จำะสามารถ้อ�าน่เข้�ามาเก0บไว�

ใน่ใน่ cachecache เน่*(องจำากบลำ0อกใหม�ที่�(อ�าน่เข้�ามาจำะถ้%กบ�น่ที่)กแที่น่ที่�(บลำ0อกเน่*(องจำากบลำ0อกใหม�ที่�(อ�าน่เข้�ามาจำะถ้%กบ�น่ที่)กแที่น่ที่�(บลำ0อกข้�อม%ลำเก�าที่�(ม�อย%�ก�อน่หน่�า ด�งน่�!น่ย�(งม�จำาน่วน่บลำ0อกน่�อยลำงก0จำะย�(งข้�อม%ลำเก�าที่�(ม�อย%�ก�อน่หน่�า ด�งน่�!น่ย�(งม�จำาน่วน่บลำ0อกน่�อยลำงก0จำะย�(งที่าให�บลำ0อกเก�าถ้%กลำบที่�!งเร0วข้)!น่ที่าให�บลำ0อกเก�าถ้%กลำบที่�!งเร0วข้)!น่

ถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่ ข้�อม%ลำที่�(อ�าน่เข้�ามาเพิ�(มข้)!น่น่�!น่จำะย�(งอย%�ใน่ถ้�าบลำ0อกม�ข้น่าดใหญ่�ข้)!น่ ข้�อม%ลำที่�(อ�าน่เข้�ามาเพิ�(มข้)!น่น่�!น่จำะย�(งอย%�ใน่ตาแหน่�งที่�(ห�างไกลำจำากตาแหน่�งข้�อม%ลำที่�(กาลำ�งถ้%กเร�ยกใชั้�งาน่มากย�(งตาแหน่�งที่�(ห�างไกลำจำากตาแหน่�งข้�อม%ลำที่�(กาลำ�งถ้%กเร�ยกใชั้�งาน่มากย�(งข้)!น่ ซ)(งเป็�น่การข้�ดต�อกฎการอ�างอ�งพิ*!น่ที่�(ใกลำ�เค�ยง ด�งน่�!น่จำ)งม�โอกาสข้)!น่ ซ)(งเป็�น่การข้�ดต�อกฎการอ�างอ�งพิ*!น่ที่�(ใกลำ�เค�ยง ด�งน่�!น่จำ)งม�โอกาสที่�(จำะถ้%กน่ามาใชั้�งาน่�อยลำงที่�(จำะถ้%กน่ามาใชั้�งาน่�อยลำงความส�มพิ�น่ธิ�ระหว�างข้น่าดข้องบลำ0อก แลำะอ�ตราการค�น่พิบข้�อม%ลำที่�(ความส�มพิ�น่ธิ�ระหว�างข้น่าดข้องบลำ0อก แลำะอ�ตราการค�น่พิบข้�อม%ลำที่�(ต�องการใน่ ต�องการใน่ cachecache (hit ratio)(hit ratio) น่�!น่ม�ความซ�บซ�อน่มาก ซ)(งข้)!น่อย%�ก�บน่�!น่ม�ความซ�บซ�อน่มาก ซ)(งข้)!น่อย%�ก�บลำ�กษณะการที่างาน่ข้องแต�ลำะโป็รแกรมเป็�น่หลำ�ก แลำะไม�ม�ผิ%�ใดลำ�กษณะการที่างาน่ข้องแต�ลำะโป็รแกรมเป็�น่หลำ�ก แลำะไม�ม�ผิ%�ใดสามารถ้ให�น่�ยามข้องความพิอด�ได� อย�างไรก0ตาม บลำ0อกข้น่าดสามารถ้ให�น่�ยามข้องความพิอด�ได� อย�างไรก0ตาม บลำ0อกข้น่าด 88 ถ้)งถ้)ง 3232 bytesbytes น่�!น่เป็�น่ค�าที่�(ด�สาหร�บงาน่ที่�(วไป็ แลำะบลำ0อกข้น่าดน่�!น่เป็�น่ค�าที่�(ด�สาหร�บงาน่ที่�(วไป็ แลำะบลำ0อกข้น่าด 6464 ถ้)งถ้)ง 128 bytes128 bytes น่�!น่เหมาะสมก�บเคร*(องคอมพิ�วเตอร�ความสามารถ้ส%งสาน่�!น่เหมาะสมก�บเคร*(องคอมพิ�วเตอร�ความสามารถ้ส%งสาหน่�บใชั้�ใน่งาน่ว�จำ�ยข้�!น่ส%งหน่�บใชั้�ใน่งาน่ว�จำ�ยข้�!น่ส%ง

6060

Number of cachesNumber of caches

ใน่ตอน่ที่�(ใน่ตอน่ที่�( cachecache ถ้%กน่ามาใชั้�งาน่เป็�น่คร�!งแรก ระบบถ้%กน่ามาใชั้�งาน่เป็�น่คร�!งแรก ระบบคอมพิ�วเตอร�ที่�(วไป็จำะม�คอมพิ�วเตอร�ที่�(วไป็จำะม� cache cache เพิ�ยงระด�บเด�ยว เม*(อไม�เพิ�ยงระด�บเด�ยว เม*(อไม�น่าน่มาน่�! น่าน่มาน่�! cachecache หลำายระด�บได�ร�บความน่�ยมน่ามาใชั้�งาน่หลำายระด�บได�ร�บความน่�ยมน่ามาใชั้�งาน่ที่�(วไป็ ที่�(วไป็

การออกแบบการออกแบบ cachecache หลำายระด�บม�ม&มมองที่�(สาค�ญ่สองหลำายระด�บม�ม&มมองที่�(สาค�ญ่สองด�าน่ค*อ จำาน่วน่ระด�บข้องด�าน่ค*อ จำาน่วน่ระด�บข้อง cache cache ที่�(น่ามาใชั้� แลำะการใชั้�ที่�(น่ามาใชั้� แลำะการใชั้� cachecache แบบรวมเป็�น่หน่)(งเด�ยวหร*อแบบแยกส�วน่แบบรวมเป็�น่หน่)(งเด�ยวหร*อแบบแยกส�วน่

6161

Number of cachesNumber of caches

CacheCache แบบหลายระด�บแบบหลายระด�บ : : เที่คโน่โลำย�ที่�(ก�าวหน่�าข้)!น่ ที่าให�สามารถ้เที่คโน่โลำย�ที่�(ก�าวหน่�าข้)!น่ ที่าให�สามารถ้ใส�ใส� cache cache เข้�าไป็เป็�น่ส�วน่หน่)(งข้องชั้�พิโป็รเซสเซอร�ได� ซ)(งเร�ยกว�าเข้�าไป็เป็�น่ส�วน่หน่)(งข้องชั้�พิโป็รเซสเซอร�ได� ซ)(งเร�ยกว�า on-chip cacheon-chip cache เม*(อเป็ร�ยบเที่�ยบก�บเม*(อเป็ร�ยบเที่�ยบก�บ cachecache ภายน่อกซ)(งจำะต�องภายน่อกซ)(งจำะต�องต�ดต�อผิ�าน่บ�สต�ดต�อผิ�าน่บ�ส on-chip cache on-chip cache ชั้�วยลำดงาน่ข้องโป็รเซสเซอร�ใน่ชั้�วยลำดงาน่ข้องโป็รเซสเซอร�ใน่การใชั้�บ�สให�น่�อยลำง จำ)งชั้�วยเพิ�(มความเร0วใน่การป็ระมวลำผิลำข้องการใชั้�บ�สให�น่�อยลำง จำ)งชั้�วยเพิ�(มความเร0วใน่การป็ระมวลำผิลำข้องโป็รเซสเซอร�โป็รเซสเซอร�

ใน่ระบบที่�(ม�ใน่ระบบที่�(ม� on-chip cacheon-chip cache น่�!น่ไม�ได�บ�งค�บให�ม�หร*อไม�ม�น่�!น่ไม�ได�บ�งค�บให�ม�หร*อไม�ม� cachecache ภายน่อกใชั้�งาน่ แต�โดยที่�(วไป็โดยเฉพิาะเคร*(องร& �น่ใหม� ๆ ม�การน่าภายน่อกใชั้�งาน่ แต�โดยที่�(วไป็โดยเฉพิาะเคร*(องร& �น่ใหม� ๆ ม�การน่า cache cache ที่�!งสองชั้น่�ดมาใชั้�งาน่ร�วมก�น่ แลำะเร�ยกโครงสร�างป็ระเภที่ที่�!งสองชั้น่�ดมาใชั้�งาน่ร�วมก�น่ แลำะเร�ยกโครงสร�างป็ระเภที่น่�!ว�า น่�!ว�า cache 2cache 2 ระด�บ โดย ระด�บ โดย cachecache ระด�บที่�(ระด�บที่�( 1(L1)1(L1) หมายถ้)งหมายถ้)ง on-on-chip cachechip cache แลำะระด�บที่�(แลำะระด�บที่�( 2(L2)2(L2) หมายถ้)งหมายถ้)ง cachecache ภายน่อกภายน่อก

6262

Number of cachesNumber of caches

เหต&ผิลำที่�(ต�องม�เหต&ผิลำที่�(ต�องม� L2 cache L2 cache เน่*(องจำากถ้�าไม�ม�เน่*(องจำากถ้�าไม�ม� L2 cacheL2 cache แลำ�วใน่ที่&กคร�!งที่�(โป็รเซสเซอร�ไม�สามารถ้หาข้�อม%ลำได�แลำ�วใน่ที่&กคร�!งที่�(โป็รเซสเซอร�ไม�สามารถ้หาข้�อม%ลำได� L1 L1 cache cache ก0จำะเก�ดการอ�างอ�งไป็ที่�(หน่�วยความจำาหลำ�ก ผิ�าน่ก0จำะเก�ดการอ�างอ�งไป็ที่�(หน่�วยความจำาหลำ�ก ผิ�าน่บ�สหลำ�กข้องระบบคอมพิ�วเตอร� ซ)(งโดยป็กต�จำะที่าให�เส�ยบ�สหลำ�กข้องระบบคอมพิ�วเตอร� ซ)(งโดยป็กต�จำะที่าให�เส�ยเวลำาน่าน่มาก แลำะที่าให�ที่� !งระบบม�ป็ระส�ที่ธิ�ภาพิการที่างาน่เวลำาน่าน่มาก แลำะที่าให�ที่� !งระบบม�ป็ระส�ที่ธิ�ภาพิการที่างาน่ลำดลำง แต�ถ้�าที่�การน่าลำดลำง แต�ถ้�าที่�การน่า L2 cacheL2 cache มาใชั้�ข้�อม%ลำส�วน่หน่)(งจำะมาใชั้�ข้�อม%ลำส�วน่หน่)(งจำะถ้%กพิบที่�(น่�( ซ)(งชั้�วยให�การเข้�าถ้)งข้�อม%ลำน่�!น่รวดเร0วมากกว�าถ้%กพิบที่�(น่�( ซ)(งชั้�วยให�การเข้�าถ้)งข้�อม%ลำน่�!น่รวดเร0วมากกว�าการเข้�าถ้)งหน่�วยความจำาหลำ�กโดยตรงการเข้�าถ้)งหน่�วยความจำาหลำ�กโดยตรง

6363

Number of cachesNumber of caches

Cache Cache แบบแบบ UnifiedUnified : : ค*อค*อ cache cache ที่�(สามารถ้เก0บได�ที่�!งข้�อม%ลำที่�(สามารถ้เก0บได�ที่�!งข้�อม%ลำแลำะคาส�(งป็น่ก�น่ ม�ข้�อด�สองป็ระการค*อแลำะคาส�(งป็น่ก�น่ ม�ข้�อด�สองป็ระการค*อ สาหร�บ สาหร�บ cachecache จำาน่วน่หน่)(ง จำาน่วน่หน่)(ง unified cacheunified cache ม�อ�ตราการค�น่พิบม�อ�ตราการค�น่พิบ

ข้�อม%ลำที่�(ต�องการมากกว�า ข้�อม%ลำที่�(ต�องการมากกว�า split cachesplit cache เน่*(องจำากสามารถ้ร�กษาเน่*(องจำากสามารถ้ร�กษาสมด&ลำระหว�างการเร�ยกใชั้�คาส�(งแลำะข้�อม%ลำได�โดยอ�ตโน่ม�ต� น่�(น่ค*อสมด&ลำระหว�างการเร�ยกใชั้�คาส�(งแลำะข้�อม%ลำได�โดยอ�ตโน่ม�ต� น่�(น่ค*อถ้�าการอ�างอ�งม�แน่วโน่�มใน่การเร�ยกใชั้�คาส�(งมากกว�าข้�อม%ลำถ้�าการอ�างอ�งม�แน่วโน่�มใน่การเร�ยกใชั้�คาส�(งมากกว�าข้�อม%ลำ cachecache ก0จำะถ้%กบ�น่ที่)กไว�ด�วยคาส�(งใน่ป็ร�มาณที่�(มากกว�าข้�อม%ลำ ก0จำะถ้%กบ�น่ที่)กไว�ด�วยคาส�(งใน่ป็ร�มาณที่�(มากกว�าข้�อม%ลำ แลำะใน่ที่างกลำ�บก�น่ แลำะใน่ที่างกลำ�บก�น่ cachecache จำะม�ข้�อม%ลำมากกว�าคาส�(ง ถ้�าโป็รแกรมจำะม�ข้�อม%ลำมากกว�าคาส�(ง ถ้�าโป็รแกรมที่�(กาลำ�งที่างาน่อย%�น่� !น่อ�างอ�งข้�อม%ลำจำาน่วน่มากโดยใชั้�คาส�(งซ!า ๆที่�(กาลำ�งที่างาน่อย%�น่� !น่อ�างอ�งข้�อม%ลำจำาน่วน่มากโดยใชั้�คาส�(งซ!า ๆ

การออกแบบแลำะสร�างจำะง�ายกว�าเพิราะไม�ต�องแยกชั้น่�ดข้องการออกแบบแลำะสร�างจำะง�ายกว�าเพิราะไม�ต�องแยกชั้น่�ดข้อง cachecache

6464

Number of cachesNumber of caches

Split cacheSplit cache : : สาหร�บเก0บข้�อม%ลำแลำะคาส�(งแยกออกจำากก�น่ สาหร�บเก0บข้�อม%ลำแลำะคาส�(งแยกออกจำากก�น่ ม�กใชั้�ใน่เคร*(องคอมพิ�วเตอร�ป็ระส�ที่ธิ�ภาพิส%งป็ระเภที่ม�กใชั้�ใน่เคร*(องคอมพิ�วเตอร�ป็ระส�ที่ธิ�ภาพิส%งป็ระเภที่ superscalar machinesuperscalar machine เชั้�น่เชั้�น่ PentiumPentium แลำะแลำะ PowerPC PowerPC ซ)(งซ)(งเน่�น่การป็ระมวลำผิลำแบบข้น่าน่ แลำะการด)งคาส�(งลำ�วงหน่�า เน่�น่การป็ระมวลำผิลำแบบข้น่าน่ แลำะการด)งคาส�(งลำ�วงหน่�า สาหร�บคาส�(งที่�(คาดว�าจำะถ้%กน่ามาป็ระมวลำผิลำใน่ลำาด�บต�อไป็สาหร�บคาส�(งที่�(คาดว�าจำะถ้%กน่ามาป็ระมวลำผิลำใน่ลำาด�บต�อไป็

ข้�อด�ป็ระการหน่)(งข้องการใชั้�ข้�อด�ป็ระการหน่)(งข้องการใชั้� split cachesplit cache ค*อว�ธิ�น่�!ชั้�วยกาจำ�ดค*อว�ธิ�น่�!ชั้�วยกาจำ�ดความค�บค�(งข้องความค�บค�(งข้อง cache cache ระหว�างหน่�วยที่�(ด)ง แลำะแป็ลำความระหว�างหน่�วยที่�(ด)ง แลำะแป็ลำความหมายคาส�(งหมายคาส�(ง (instruction prefetcher)(instruction prefetcher) แลำะหน่�วยที่�(ที่าการแลำะหน่�วยที่�(ที่าการป็ระมวลำผิลำป็ระมวลำผิลำ(execution unit)(execution unit) ซ)(งเป็�น่ส�(งสาค�ญ่มากใน่การซ)(งเป็�น่ส�(งสาค�ญ่มากใน่การออกแบบออกแบบ pipelinepipeline