งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 Cache. 2 หน่วยความจำในระบบคอมพิวเตอร์  หน่วยความจำในระบบคอมพิวเตอร์มีการจัดโครงสร้างเป็นลำดับชั้นดังนี้ รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 Cache. 2 หน่วยความจำในระบบคอมพิวเตอร์  หน่วยความจำในระบบคอมพิวเตอร์มีการจัดโครงสร้างเป็นลำดับชั้นดังนี้ รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด."— ใบสำเนางานนำเสนอ:

1 1 Cache

2 2 หน่วยความจำในระบบคอมพิวเตอร์  หน่วยความจำในระบบคอมพิวเตอร์มีการจัดโครงสร้างเป็นลำดับชั้นดังนี้ รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด ( อยู่ใกล้โปรเซสเซอร์มากที่สุด ) รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด ( อยู่ใกล้โปรเซสเซอร์มากที่สุด ) หน่วยความจำ cache หนึ่งหรือสองระดับ ซึ่งถ้ามีหลายระดับมักจะเรียกว่า cache ระดับ L1, L2, … หน่วยความจำ cache หนึ่งหรือสองระดับ ซึ่งถ้ามีหลายระดับมักจะเรียกว่า cache ระดับ L1, L2, … หน่วยความหลัก : มักสร้างมาจาก DRAM(Dynamic Random Access Memory) หน่วยความหลัก : มักสร้างมาจาก DRAM(Dynamic Random Access Memory)  โดยทั่วไปตำแหน่งการอ้างอิงข้อมูลในหน่วยความจำหลักโดยโปรเซสเซอร์นั้น มักจะเป็นตำแหน่งเดิม ดังนั้นหน่วยความจำ cache มักจะคัดลอกข้อมูลใน หน่วยความจำหลักที่เคยถูกอ้างอิงไปแล้วเอาไว้ ซึ่งถ้าการทำงานของ cache ได้รับการออกแบบเป็นอย่างดีแล้ว เวลาส่วนใหญ่โปรเซสเซอร์ก็จะเรียกใช้ข้อมูลที่ อยู่ใน cache เป็นส่วนมาก

3 3 คุณลักษณะของระบบหน่วยความจำ  ความซับซ้อนของระบบหน่วยความจำสามารถทำให้เข้าใจได้ง่ายขึ้น ด้วยการอธิบาย คุณลักษณะที่สำคัญของระบบหน่วยความจำ ดังตารางด้านล่าง LocationPerformance Processor Access time Internal (main) Cycle time External (secondary) Transfer rate CapacityPhysical Type Word size Semiconductor Number of words Magnetic Unit of Transfer Optical Word Magneto-optical BlockPhysical Characteristics Access Method Volatile/nonvolatile Sequential Erasable/nonerasable DirectOrganization Random Associative

4 4 คุณลักษณะของระบบหน่วยความจำ  Location( สถานที่ ) : หมายความถึงสถานที่ที่หน่วยความจำอยู่ นั่นคืออยู่ ภายในหรือภายนอกเครื่องคอมพิวเตอร์ internal memory หมายถึง หน่วยความจำหลัก (main memory), cache นอกจากนี้ก็ยังมี register ซึ่งอยู่ภายในโปรเซสเซอร์ ส่วน external memory คือ หน่วยความจำภายนอก เช่น ดิสก์, เทป  Capacity( ความจุ ) : สำหรับหน่วยความจำภายใน ความจุจะใช้หน่วยเป็น byte หรือ word โดยปกติ 1 word มีขนาด 8, 16, 32 bit ส่วน หน่วยความจำภายนอกนิยมแสดงความจุในหน่วยของ byte  Unit of transfer( หน่วยในการถ่ายข้อมูล ) : สำหรับหน่วยความจำภายใน หน่วยในการถ่ายข้อมูลเท่ากับ จำนวนสายสัญญาณข้อมูลเข้าสู่และออกจาก หน่วยความจำ โดยปกติจะมีขนาดเท่ากับความยาวของ word แต่อาจจะมีขนาด ใหญ่กว่าก็ได้เช่น 64,128,256 บิต

5 5 คุณลักษณะของระบบหน่วยความจำ  Access method( วิธีการเข้าถึงหน่วยความจำ ) มีรายละเอียดดังนี้ Sequential access: การเข้าถึงหน่วยความจำแบบเรียงลำดับ ใช้สำหรับ หน่วยความจำที่มีโครงสร้างประกอบด้วยหน่วยต่าง ๆ ซึ่งเรียกว่า record การเข้า ไปอ่านหรือบันทึกข้อมูลจะต้องกระทำเรียงตามลำดับ ข้อมูลเกี่ยวกับตำแหน่งที่อยู่ถูก นำมาใช้ในการแยกตำแหน่งแต่ละ record ออกจากกัน และช่วยในการ กระบวนการอ่านข้อมูล ตัวอย่างการเข้าถึงหน่วยความจำแบบนี้ได้แก่ เทปแม่เหล็ก Sequential access: การเข้าถึงหน่วยความจำแบบเรียงลำดับ ใช้สำหรับ หน่วยความจำที่มีโครงสร้างประกอบด้วยหน่วยต่าง ๆ ซึ่งเรียกว่า record การเข้า ไปอ่านหรือบันทึกข้อมูลจะต้องกระทำเรียงตามลำดับ ข้อมูลเกี่ยวกับตำแหน่งที่อยู่ถูก นำมาใช้ในการแยกตำแหน่งแต่ละ record ออกจากกัน และช่วยในการ กระบวนการอ่านข้อมูล ตัวอย่างการเข้าถึงหน่วยความจำแบบนี้ได้แก่ เทปแม่เหล็ก Direct access: การเข้าถึงหน่วยความจำแบบตรง กระบวนการนี้สามารถ เปลี่ยนตำแหน่งที่อยู่ในปัจจุบันไปเป็นตำแหน่งที่ต้องการ โดยข้ามระเบียนข้อมูลที่อยู่ ระหว่างกลางไป ตัวอย่างได้แก่ ดิสก์ Direct access: การเข้าถึงหน่วยความจำแบบตรง กระบวนการนี้สามารถ เปลี่ยนตำแหน่งที่อยู่ในปัจจุบันไปเป็นตำแหน่งที่ต้องการ โดยข้ามระเบียนข้อมูลที่อยู่ ระหว่างกลางไป ตัวอย่างได้แก่ ดิสก์

6 6 คุณลักษณะของระบบหน่วยความจำ Random access: การเข้าถึงหน่วยความจำแบบไม่มีลำดับ แต่ละตำแหน่งใน หน่วยความจำจะต้องมีกลไกในการกำหนดตำแหน่งเฉพาะที่ไม่มีการซ้ำกัน ระยะเวลาที่ ใช้ในการเข้าถึงแต่ละหน่วยนั้นเป็นอิสระจากลำดับการเข้าถึงหน่วยความจำที่เกิดขึ้นก่อน หน้านี้ และใช้ระยะเวลาเท่ากันเสมอ ดังนั้นจึงสามารถเลือกตำแหน่งใดๆ ใน หน่วยความจำได้โดยไม่ต้องเรียงลำดับใด และสามารถเข้าถึงตำแหน่งนั้นได้โดยตรง ตัวอย่างคือ หน่วยความจำหลัก (main memory) Random access: การเข้าถึงหน่วยความจำแบบไม่มีลำดับ แต่ละตำแหน่งใน หน่วยความจำจะต้องมีกลไกในการกำหนดตำแหน่งเฉพาะที่ไม่มีการซ้ำกัน ระยะเวลาที่ ใช้ในการเข้าถึงแต่ละหน่วยนั้นเป็นอิสระจากลำดับการเข้าถึงหน่วยความจำที่เกิดขึ้นก่อน หน้านี้ และใช้ระยะเวลาเท่ากันเสมอ ดังนั้นจึงสามารถเลือกตำแหน่งใดๆ ใน หน่วยความจำได้โดยไม่ต้องเรียงลำดับใด และสามารถเข้าถึงตำแหน่งนั้นได้โดยตรง ตัวอย่างคือ หน่วยความจำหลัก (main memory) Associative: หรือความเกี่ยวข้อง จัดว่าเป็นการเข้าถึงหน่วยความจำแบบ random access อย่างหนึ่งที่มีการเปรียบเทียบข้อมูลบิตจำนวนหนึ่ง ( ที่กำหนด ตำแหน่งไว้ล่วงหน้า ) กับ word ที่เป็นตัวเลือกจำนวนหนึ่ง ( กำหนดไว้ล่วงหน้า เช่นกัน ) เพื่อค้นหาตำแหน่งที่สอดคล้องกัน ดังนั้น word ที่ได้รับจึงเกิดขึ้นจากการ ค้นหาข้อมูลใน word แทนที่จะเป็นตำแหน่งของ word นั้น ๆ การทำงานอื่นมี ลักษณะแบบเดียวกับ random access คือเวลาที่ใช้ในการเข้าถึงข้อมูลนั้นคงที่ และไม่ขึ้นอยู่กับการเข้าถึงข้อมูลในครั้งก่อนหน้า ตัวอย่างคือ หน่วยความจำ cache Associative: หรือความเกี่ยวข้อง จัดว่าเป็นการเข้าถึงหน่วยความจำแบบ random access อย่างหนึ่งที่มีการเปรียบเทียบข้อมูลบิตจำนวนหนึ่ง ( ที่กำหนด ตำแหน่งไว้ล่วงหน้า ) กับ word ที่เป็นตัวเลือกจำนวนหนึ่ง ( กำหนดไว้ล่วงหน้า เช่นกัน ) เพื่อค้นหาตำแหน่งที่สอดคล้องกัน ดังนั้น word ที่ได้รับจึงเกิดขึ้นจากการ ค้นหาข้อมูลใน word แทนที่จะเป็นตำแหน่งของ word นั้น ๆ การทำงานอื่นมี ลักษณะแบบเดียวกับ random access คือเวลาที่ใช้ในการเข้าถึงข้อมูลนั้นคงที่ และไม่ขึ้นอยู่กับการเข้าถึงข้อมูลในครั้งก่อนหน้า ตัวอย่างคือ หน่วยความจำ cache

7 7 คุณลักษณะของระบบหน่วยความจำ  Performance: ประสิทธิภาพ ซึ่งแบ่งการวัดเป็นสามเรื่อง ดังนี้ Access time (latency): สำหรับหน่วยความจำแบบ random access memory ระยะเวลาในการเข้าถึงหน่วยความจำ หมายถึง ระเวลาที่ใช้ใน การอ่านหรือบันทึกข้อมูลคือ ระยะเวลานับตั้งแต่ที่ตำแหน่งข้อมูลได้ถูกส่งมาถึง หน่วยความจำ จนกระทั่งข้อมูลได้ถูกบันทึก สำหรับหน่วยความจำแบบอื่นที่ไม่ใช่ random access memory จะหมายถึง ระยะเวลาที่เคลื่อนย้ายกลไกในการ อ่านหรือบันทึกข้อมูลไปยังตำแหน่งข้อมูลที่ต้องการ Access time (latency): สำหรับหน่วยความจำแบบ random access memory ระยะเวลาในการเข้าถึงหน่วยความจำ หมายถึง ระเวลาที่ใช้ใน การอ่านหรือบันทึกข้อมูลคือ ระยะเวลานับตั้งแต่ที่ตำแหน่งข้อมูลได้ถูกส่งมาถึง หน่วยความจำ จนกระทั่งข้อมูลได้ถูกบันทึก สำหรับหน่วยความจำแบบอื่นที่ไม่ใช่ random access memory จะหมายถึง ระยะเวลาที่เคลื่อนย้ายกลไกในการ อ่านหรือบันทึกข้อมูลไปยังตำแหน่งข้อมูลที่ต้องการ Memory cycle time: ใช้กับหน่วยความจำแบบ random access memory ระยะเวลาวงรอบหน่วยความจำประกอบด้วย ระยะเวลาในการเข้าถึง หน่วยความจำ (access time) รวมกับระยะเวลาอื่น ๆ ที่จำเป็นต้องใช้ จนถึงเวลา ที่จะเกิดการอ่านหรือบันทึกข้อมูลในครั้งต่อไป ระยะเวลาอื่นที่ต้องใช้เช่น ระยะเวลาที่รอ ให้สัญญาณต่าง ๆ เข้าสู่สถานะเสถียร และระยะเวลาที่ต้องรอให้สัญญาณเดิมหายไป ( สายสัญญาณเข้าสู่สถานะว่าง หรือ idle) Memory cycle time: ใช้กับหน่วยความจำแบบ random access memory ระยะเวลาวงรอบหน่วยความจำประกอบด้วย ระยะเวลาในการเข้าถึง หน่วยความจำ (access time) รวมกับระยะเวลาอื่น ๆ ที่จำเป็นต้องใช้ จนถึงเวลา ที่จะเกิดการอ่านหรือบันทึกข้อมูลในครั้งต่อไป ระยะเวลาอื่นที่ต้องใช้เช่น ระยะเวลาที่รอ ให้สัญญาณต่าง ๆ เข้าสู่สถานะเสถียร และระยะเวลาที่ต้องรอให้สัญญาณเดิมหายไป ( สายสัญญาณเข้าสู่สถานะว่าง หรือ idle)

8 8 คุณลักษณะของระบบหน่วยความจำ Transfer rate: อัตราการถ่ายเทข้อมูล หมายถึง อัตราที่ข้อมูลถูกถ่ายทอดเข้า สู่หรือออกจากหน่วยความจำ สำหรับหน่วยความจำแบบ random access memory ระยะเวลานี้เท่ากับ 1/cycle time สำหรับหน่วยความจำแบบ อื่นระยะเวลานี้จะเท่ากับ Transfer rate: อัตราการถ่ายเทข้อมูล หมายถึง อัตราที่ข้อมูลถูกถ่ายทอดเข้า สู่หรือออกจากหน่วยความจำ สำหรับหน่วยความจำแบบ random access memory ระยะเวลานี้เท่ากับ 1/cycle time สำหรับหน่วยความจำแบบ อื่นระยะเวลานี้จะเท่ากับ T N = T A + (N/R) T N = ระยะเวลาโดยเฉลี่ยในการอ่านหรือบันทึกข้อมูล N บิต T A = ระยะเวลาเข้าถึงข้อมูลโดยเฉลี่ย T A = ระยะเวลาเข้าถึงข้อมูลโดยเฉลี่ย N = จำนวนบิตข้อมูล N = จำนวนบิตข้อมูล R = อัตราการถ่ายเทข้อมูล มีหน่วยเป็นบิตต่อวินาที R = อัตราการถ่ายเทข้อมูล มีหน่วยเป็นบิตต่อวินาที

9 9 คุณลักษณะของระบบหน่วยความจำ  Physical type: หน่วยความจำอาจแบ่งออกตามลักษณะทางกายภายได้แก่ หน่วยความจำเซมิคอนดักเตอร์ (semiconductor), หน่วยความจำแบบผิว ฉาบด้วยสารแม่เหล็ก (magnetic surface memory) ซึ่งใช้ดิสก์ และเทปมาเป็นหน่วยความจำ, การใช้อุปกรณ์ optic และ magneto- optic มาเป็นหน่วยความจำ  Physical characteristic: คุณสมบัติทางกายภาพของอุปกรณ์บันทึก ข้อมูลนั้นมีความสำคัญต่อการใช้งานอย่างมาก ในหน่วยความจำที่เป็นแบบไม่ ถาวร (volatile) นั้นจะสูญเสียข้อมูลที่บันทึกอยู่ในทันทีที่ถูกตัดพลังงานไฟฟ้า ส่วนหน่วยความจำแบบถาวร (non-volatile) จะสามารถบันทึกข้อมูลไว้ได้ ตลอดเวลา หน่วยความจำแบบผิวฉาบสารแม่เหล็กเป็นตัวอย่างของ non- volatile ส่วนเซมิคอนดักเตอร์นั้นเป็นได้ทั้ง volatile และ non- volatile ขึ้นอยู่กับวัตถุประสงค์ในตอนผลิต

10 10 โครงสร้างลำดับชั้นของหน่วยความจำ  เงื่อนไขสำคัญของการออกแบบหน่วยความจำ คือ ราคา ปริมาณ และเวลาการเข้าถึง หน่วยความจำ ซึ่งเงื่อนไขทั้งสามประการนี้มีความสัมพันธ์กัน ดังนี้ การเพิ่มความเร็วในการเข้าถึงข้อมูล จะทำให้หน่วยความจำมีราคาสูงขึ้น การเพิ่มความเร็วในการเข้าถึงข้อมูล จะทำให้หน่วยความจำมีราคาสูงขึ้น ปริมาณหน่วยความจำเพิ่มขึ้น จะทำให้ราคาต่อหน่วยลดลง ปริมาณหน่วยความจำเพิ่มขึ้น จะทำให้ราคาต่อหน่วยลดลง ปริมาณหน่วยความจำเพิ่มขึ้น จะทำให้เสียเวลาในการเข้าถึงข้อมูลในหน่วยความจำมาก ขึ้น ปริมาณหน่วยความจำเพิ่มขึ้น จะทำให้เสียเวลาในการเข้าถึงข้อมูลในหน่วยความจำมาก ขึ้น  หนทางในการแก้ปัญหาความซับซ้อนนี้ สามารถทำได้โดยการใช้เทคโนโลยี หน่วยความจำหลายแบบมาผสมกันเป็นโครงสร้างลำดับชั้นของหน่วยความจำ ดัง โครงสร้างดังรูปหน้าถัดไป เมื่อพิจารณาหน่วยความจำที่อยู่ในระดับบนลงล่างจะพบว่า (a) มีราคาต่อบิตต่ำลง (b) มีปริมาณมากขึ้น (c) ใช้เวลาในการเข้าถึงข้อมูลนานขึ้น (d) มีการติดต่อกับโปรเซสเซอร์ลดลง

11 11 โครงสร้างลำดับชั้นของหน่วยความจำ  จากรูปโครงสร้างจะเห็นได้ว่า หน่วยความจำราคาแพงซึ่งมีความเร็วสูงใน ระดับบนจะถูกแทนที่ด้วยหน่วยความจำราคาถูก ปริมาณมาก และทำงานได้ช้าลง ในระดับล่าง กุญแจสำคัญของความสำเร็จของโครงสร้างลำดับชั้นนี้คือ คุณสมบัติ ในข้อ (d) นั่นคือการลดการติดต่อกับหน่วยความจำในระดับล่างให้เหลือน้อย ที่สุด

12 12 โครงสร้างลำดับชั้นของหน่วยความจำ ประสิทธิภาพของหน่วยความจำ 2 ระดับ

13 13 โครงสร้างลำดับชั้นของหน่วยความจำ  สมมติว่าโปรเซสเซอร์สามารถอ้างอิงถึงหน่วยความจำสองระดับ ระดับที่ 1 ประกอบด้วยหน่วยความจำจำนวน 1000 words ซึ่งมีระยะเวลาในการเข้าถึง ข้อมูล 0.01 ไมโครวินาที หน่วยความจำระดับที่ 2 ประกอบด้วยหน่วยความจำ จำนวน words ซึ่งมีระยะเวลาในการเข้าถึงข้อมูล 0.1 ไมโครวินาที  ถ้าโปรเซสเซอร์ต้องการข้อมูล 1 word จากหน่วยความจำในระดับที่ 1 ก็สามารถ ทำได้ทันที แต่ถ้าข้อมูลนั้นอยู่ในหน่วยความจำระดับที่ 2 ข้อมูลนั้นจะต้องถูกคัดลอก ไปไว้ที่หน่วยความจำระดับที่ 1 ก่อน จากนั้นโปรเซสเซอร์จึงจะนำข้อมูลไปใช้ได้  จากกราฟแสดงให้เห็นถึงความสัมพันธ์ของเหตุการณ์ที่สมมุติขึ้นมานี้ ในรูปเป็น ระยะเวลาโดยเฉลี่ยของการเข้าถึงหน่วยความจำ (average access time) ในรูปฟังก์ชันของอัตราการอ้างอิงข้อมูลในหน่วยความจำระดับที่ 1 (hit ratio) โดยที่

14 14 โครงสร้างลำดับชั้นของหน่วยความจำ H = สัดส่วนของการอ้างอิงหน่วยความจำ ที่สามารถพบข้อมูลที่ต้องการใน หน่วยความจำระดับที่ 1 T1 = ระยะเวลาในการเข้าถึงข้อมูลที่หน่วยความจำระดับที่ 1 T2 = ระยะเวลาในการเข้าถึงข้อมูลที่หน่วยความจำระดับที่ 2  จะเห็นได้ว่าถ้าการอ้างอิงหน่วยความจำในระดับที่ 1 มีเปอร์เซ็นต์สูงขึ้น ค่าเฉลี่ย โดยรวมของระยะเวลาในการอ้างอิงหน่วยความจำ จะมีค่าใกล้เคียงกับระยะเวลาที่ใช้ใน การอ้างอิงหน่วยความจำระดับที่ 1  จากตัวอย่างที่สมมติขึ้น ถ้า 95% ของการอ้างอิงทั้งหมด เกิดขึ้นในหน่วยความจำ ระดับที่ 1 แล้ว ค่าเฉลี่ยของระยะเวลาในการอ้างอิงข้อมูลจะเป็น (0.95)(0.01  s) + (0.05)(0.1  s+0.01  s) = =  s =  s

15 15 โครงสร้างลำดับชั้นของหน่วยความจำ  ในตัวอย่างข้างต้น ค่าเฉลี่ยในการเข้าถึงหน่วยความจำมีค่าใกล้เคียงกับ 0.01  s มากกว่า 0.1  s ตามที่ต้องการ  การใช้หน่วยความจำสองระดับ ช่วยลดระยะเวลาในการเข้าถึงหน่วยความจำได้ ในทางพื้นฐานเมื่อเงื่อนไข (a) ถึง (d) เป็นจริง การทำเทคโนโลยีต่าง ๆ มา ประยุกต์ใช้จะทำให้เกิดความหลากหลายที่จะทำให้เงื่อนไข (a) ถึง (c) เป็นจริง ส่วนเงื่อนไข (d) นั้นมักจะเป็นจริงได้โดยอัตโนมัติ  ความสัมพันธ์นี้ สามารถนำไปใช้ได้กับระบบที่มีหน่วยความจำหลายระดับ หน่วยความจำที่ทำงานเร็วที่สุด มีขนาดเล็กที่สุด และมีราคาแพงที่สุดก็คือ รีจิสเตอร์ ซึ่งอยู่ในตัวโปรเซสเซอร์ โดยทั่วไปโปรเซสเซอร์จะมีรีจิสเตอร์ประมาณ ตัว ในขณะที่บางเครื่องอาจมีมากนับร้อยตัวก็ได้

16 16 โครงสร้างลำดับชั้นของหน่วยความจำ  เลื่อนลงมาสองระดับจะเป็นหน่วยความจำหลัก (main memory) ซึ่งเป็น หน่วยความจำที่ถูกนำมาใช้งานทั่วไปในเครื่องคอมพิวเตอร์ ข้อมูลแต่ละตำแหน่ง ในหน่วยความจำหลักจะมี address เฉพาะเป็นของตัวเอง หน่วยความจำหลัก มักจะเชื่อมต่อเข้ากับหน่วยความจำขนาดเล็ก ที่มีความเร็วสูงกว่ามากเรียกว่า หน่วยความจำ cache  หน่วยความจำ cache มักจะเป็นส่วนที่ถูกซ่อนเอาไว้จากผู้เขียนโปรแกรม หรือ แม้กระทั่งตัวโปรเซสเซอร์เอง คือจะทำงานโดยอัตโนมัติ แต่จะสั่งการให้ทำงาน ตามที่ต้องการโดยตรงไม่ได้  หน่วยความจำ cache ทำหน้าที่เป็นเสมือน buffer เล็ก ๆ ระหว่าง หน่วยความจำหลักกับรีจิสเตอร์ในโปรเซสเซอร์ ซึ่งมีวัตถุประสงค์เพื่อเพิ่ม ประสิทธิภาพการทำงานของหน่วยความจำหลักโดยตรง

17 17 ลักษณะพื้นฐานของหน่วยความจำ Cache  หน่วยความจำ cache สร้างขึ้นมาด้วยวัตถุประสงค์ที่จะให้เป็นหน่วยความจำที่ ทำงานได้เร็วที่สุดเท่าที่เทคโนโลยีดีที่สุดในขณะนั้นจะทำได้ ในเวลาเดียวกันก็ ต้องการให้มีขนาดใหญ่ที่สุดในราคาที่ไม่แพงจนเกินไปนัก ดังแสดงในรูปด้านล่าง ในเครื่องคอมพิวเตอร์มีหน่วยความจำหลักที่มีความเร็วต่ำ ( เมื่อเปรียบเทียบกับ ความเร็วของซีพียู ) มีปริมาณมาก  โดยปกติหน่วยความจำ cache จะเก็บสำเนาของข้อมูลบางส่วนในหน่วยความจำ หลักเอาไว้ เมื่อโปรเซสเซอร์ต้องการอ่านข้อมูลจำนวนหนึ่ง word ใน หน่วยความจำ ข้อมูลส่วนนั้นจะถูกตรวจสอบว่ามีอยู่ใน cache หรือไม่ ถ้ามีอยู่ก็ จะนำข้อมูลใน cache ไปใช้ ถ้าไม่มีก็จะเกิดการคัดลอกสำเนาข้อมูลหนึ่งบล็อก จากหน่วยความจำหลักมายัง cache แล้วจึงนำ word ที่ต้องการส่งต่อไปให้ โปรเซสเซอร์ในภายหลัง

18 18 ลักษณะพื้นฐานของหน่วยความจำ Cache หน่วยความจำ cache และหน่วยความจำหลัก

19 19 ลักษณะพื้นฐานของหน่วยความจำ Cache  เนื่องจากปรากฏการณ์การอ้างอิงในพื้นที่เดียวกัน (locality of reference) จะทำให้การอ้างอิงข้อมูลในหน่วยความจำครั้งต่อๆไป เป็นการอ้างอิงที่เดิม หรือที่ ตำแหน่งใกล้เคียงจุดเดิม  ดังนั้นการคัดลอกข้อมูลหนึ่งบล็อกจากหน่วยความจำหลักมายัง cache จะสามารถ ถูกนำมาใช้งานได้ในระยะหนึ่ง ก่อนที่จะมีการคัดลอกข้อมูลในครั้งต่อไป  รูปด้านล่างแสดงโครงสร้างของหน่วยความจำ cache และหน่วยความจำหลัก หน่วยความจำหลักประกอบด้วย ที่เก็บข้อมูลจำนวน 2 n words ที่สามารถถูก อ้างอิงได้ โดยที่แต่ละ word จะมีหลายเลขที่อยู่เป็นเลขฐานสองจำนวน n-bit เป็นหมายเลขเฉพาะของตัวเอง

20 20 ลักษณะพื้นฐานของหน่วยความจำ Cache โครงสร้างของหน่วยความจำ cache และหน่วยความจำหลัก

21 21 ลักษณะพื้นฐานของหน่วยความจำ Cache  กล่าวอีกนัยหนึ่ง คือ หน่วยความจำหลักประกอบด้วยบล็อกที่เก็บข้อมูลขนาด K- word จำนวนหนึ่งนั่นคือมีจำนวนบล็อก (M) เท่ากับ M = 2 n /K บล็อกนั่นเอง  ส่วน cache นั้นประกอบด้วยช่องสัญญาณจำนวน C ช่องโดยที่แต่ละช่องมี ขนาด K words และจำนวนช่องสายสัญญาณนั้น น้อยกว่าจำนวนบล็อกใน หน่วยความจำหลักเป็นอย่างมา (C < M)  ในเวลาใดก็ตามข้อมูลจำนวนหลายบล็อกจากหน่วยความจำหลัก จะถูกคัดลอกสำเนา มาเก็บไว้ที่ช่องสัญญาณใน cache ถ้าข้อมูลใน word ของบล็อกหนึ่งถูก เรียกใช้โดยโปรเซสเซอร์ ข้อมูลทั้งบล็อกนั้นจะถูกถ่ายโอนมาไว้ที่ cache เนื่องจากหน่วยความจำหลักมีจำนวนบล็อกมากกว่าช่องสัญญาณใน cache ช่องสัญญาณแต่ละช่องจึงไม่ได้กำหนดไว้สำหรับบล็อกใด ทำให้ช่องสัญญาณแต่ละ ช่องต้องมีป้ายบอกว่าข้อมูลมาจากบล็อกใด

22 22 ลักษณะพื้นฐานของหน่วยความจำ Cache  รูป (a) แสดงขั้นตอนในกระบวนการอ่านข้อมูล โปรเซสเซอร์สร้างตำแหน่งที่ อยู่ของข้อมูลที่ต้องการอ่าน เรียกว่า RA ถ้าข้อมูล word นั้นมีอยู่ใน cache อยู่แล้ว ก็จะถูกนำส่งโปรเซสเซอร์ทำการประมวลผลต่อไป มิฉะนั้น บล็อกในหน่วยความจำหลักที่มีข้อมูล word นี้อยู่ก็จะถูกคัดลอกสำเนาเข้ามา ใส่ไว้ใน cache และถูกนำส่งโปรเซสเซอร์ต่อไป จากรูปแสงให้เห็นขั้นตอน ต่าง ๆ ที่เกิดขึ้น เป็นโครงสร้างของส่วนประกอบภายใน รูป (b) เป็นโครงสร้างที่ใช้กับ cache ที่มีใช้งานทั่วไป ในโครงสร้างนี้ cache เชื่อมต่อกับโปรเซสเซอร์ผ่านสาย data bus, address bus, control bus สาย data bus และ สาย address bus จะเชื่อมต่อเข้ากับบัฟเฟอร์ ซึ่งเชื่อมต่อเข้ากับสายบัสหลักของระบบที่นำไปสู่ หน่วยความจำหลัก

23 23 ลักษณะพื้นฐานของหน่วยความจำ Cache (a) การอ่านข้อมูลจากหน่วยความจำ cache

24 24 ลักษณะพื้นฐานของหน่วยความจำ Cache โครงสร้างหน่วยความจำ cache โดยทั่วไป

25 25 ลักษณะพื้นฐานของหน่วยความจำ Cache  เมื่อสามารถค้นพบข้อมูลที่ต้องการใน cache (cache hits) บัฟเฟอร์ สำหรับข้อมูลและตำแหน่งข้อมูลจะถูกสั่งไม่ให้ทำงาน (disable) และการสื่อสาร จะเกิดขึ้นระหว่างโปรเซสเซอร์กับ cache โดยไม่มีการใช้บัสหลักด้วย  แต่ถ้าไม่สามารถหาข้อมูลใน cache ได้ (cache miss) ตำแหน่งข้อมูลที่ ต้องการจะถูกส่งเข้าไปในบัสหลัก ข้อมูลในหน่วยความจำหลักจะถูกส่งมาที่บัฟเฟอร์ และจากบัฟเฟอร์ส่งไปยังโปรเซสเซอร์และส่งเข้าไปเก็บไว้ใน cache  ในบางโครงสร้าง cache จะถูกวางคั่นกลางไว้ระหว่างโปรเซสเซอร์ และ หน่วยความจำหลัก ซึ่งจะวางทับ data bus, address bus, control bus ไว้ทั้งหมด ดังนั้นเมื่อเกิดกรณี cache miss ข้อมูลจากหน่วยความจำ หลักจะถูกส่งมาที่ cache ก่อน แล้วจึงถูกส่งต่อไปยังโปรเซสเซอร์ในลำดับหลัง

26 26 องค์ประกอบในการออกแบบ Cache  ต้องมีขนาดเล็กเพียงพอที่จะทำให้ราคาเฉลี่ยต่อบิตนั้นใกล้เคียงกับราคาของ หน่วยความจำหลัก  และต้องมีขนาดใหญ่เพียงพอ เพื่อให้ค่าเฉลี่ยของเวลาในการเข้าถึงข้อมูลใกล้เคียง กับระยะเวลาในการเข้าถึงข้อมูลของ cache  ขนาดที่ใหญ่ขึ้นของ cache จะไปเพิ่มจำนวนของ gates ที่เกี่ยวข้องกับการ ค้นหาตำแหน่งข้อมูลใน cache ผลที่เกิดขึ้นทำให้ cache มีขนาดใหญ่ขึ้น ซึ่งจะทำให้ cache ทำงานได้ช้าลง  เนื้อที่บนแผงวงจรก็เป็นส่วนหนึ่งที่บังคับขนาดของ cache ให้มีขนาดที่จำกัด  ขนาดของ cache บนคอมพิวเตอร์ชนิดต่าง ๆ จึงต้องสัมพันธ์กับการใช้งานกับ โปรเซสเซอร์ชนิดต่าง ๆ ด้วย

27 27 ขนาดของ cache ในโปรเซสเซอร์ชนิดต่าง ๆ ProcessorTypeYear L1 cache L2 cache L3 cache IBM 360/85 Mainframe to 32 KB NN PDP-11/70Minicomputer KB NN VAX 11/780 Minicomputer KB NN IBM 3033 Mainframe KB NN IBM 3090 Mainframe to 256 KB NN Intel PC KB NN PentiumPC to 512 KB N PowerPC G4 PC/Server KB 256 KB to 1 MB 2 MB ItaniumPC/Server KB 96 KB 4 MB

28 28 องค์ประกอบในการออกแบบ Cache Cache SizeWrite Policy Mapping Function Write through Direct Write back Associative Set associativeLine Size Replacement AlgorithmNumber of caches Least recently used (LRU) Single or two level First in first out (FIFO) Unified or split Least frequently used (LFU) Random

29 29 Mapping Function  เนื่องจาก cache มีช่องสัญญาณน้อยกว่าจำนวนบล็อกในหน่วยความจำ จึง จำเป็นต้องมีอัลกอริทึม สำหรับการกำหนดตำแหน่งหน่วยความจำของแต่ละบล็อก ไปยังช่องสัญญาณใน cache เรียกว่า Mapping  นอกจากนี้ยังต้องมีวิธีการสำหรับการตรวจสอบว่าบล็อกใดที่ยังคงถูกเก็บไว้ใน ช่องสัญญาณ cache  วิธีการกำหนดตำแหน่งหน่วยความจำไว้ในช่องสัญญาณ cache หรือ Mapping จะเป็นสิ่งที่บอกให้ทราบถึงวิธีการวางโครงสร้างภายใน cache ซึ่งนิยมใช้สามวิธีคือ Direct mapping Direct mapping Associative mapping Associative mapping Set associative mapping Set associative mapping

30 30 Mapping Function  เพื่อเป็นการเปรียบเทียบการทำงานของโครงสร้างทั้งสามแบบจึงกำหนด ตัวอย่าง ดังนี้  ขนาดของ cache เป็น 64 Kbytes  การถ่ายเทข้อมูลระหว่างหน่วยความจำหลักกับ cache กระทำครั้งละหนึ่ง บล็อก ซึ่งมีขนาด 4 bytes หมายความว่า จำนวนช่องสัญญาณใน cache นั้นเท่ากับ 16K ช่อง (16K x 4 = 64 Kbytes)  หน่วยความจำหลักมีขนาด 16 Mbytes ซึ่งใช้วิธีการกำหนดตำแหน่งข้อมูล โดยใช้เลขฐานสองขนาด 24 บิต (2 24 = 16M) ดังนั้นเพื่อการกำหนด ตำแหน่งบล็อกข้อมูลไปยัง cache จึงถือว่าหน่วยความจำหลักมีขนาด 16M บล็อก บล็อกละ 4 bytes

31 31 Direct Mapping  การจัดโครงสร้างภายใน cache แบบที่ง่ายที่สุดเป็นแบบ Direct mapping ซึ่งจะกำหนดตำแหน่งของแต่ละบล็อกไว้ที่ตำแหน่งช่องสัญญาณ cache ที่เดิมเสมอ ไม่มีการเปลี่ยนแปลง รูป direct mapping แสดงกลไก การทำงานทั่วไป ซึ่งสามารถอธิบายด้วยรูปแบบฟังก์ชันทางคณิตศาสตร์ ดังนี้ i = j modulo m i = j modulo mเมื่อ i คือ หมายเลขช่องสัญญาณ cache j คือ หมายเลขบล็อก m คือ จำนวนช่องสัญญาณของ cache

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

33 33 Direct Mapping  การคำนวณให้พิจารณาว่า ตำแหน่งของข้อมูลในหน่วยความจำประกอบขึ้นด้วย 3 ส่วน บิตด้านขวามือสุด ( เริ่มจากบิตที่มีค่าน้อยสุด ) จำนวน w บิต ใช้ในการการ อ้างอิง word แต่ละ word ที่อยู่ภายในบล็อกหนึ่ง บิตด้านขวามือสุด ( เริ่มจากบิตที่มีค่าน้อยสุด ) จำนวน w บิต ใช้ในการการ อ้างอิง word แต่ละ word ที่อยู่ภายในบล็อกหนึ่ง ที่เหลืออีกจำนวน s บิต หมายถึงตำแหน่งหรือหมายเลขของบล็อกจากจำนวน ทั้งหมด 2 s บล็อก หน่วยความจำ cache จะแบ่งข้อมูล s บิตนี้ออกเป็น สองส่วน คือ เป็นบิตที่ใช้บอกหมายเลขช่องสัญญาณ cache จำนวน r บิต ( แสดงว่ามีจำนวนช่องสัญญาณทั้งสิ้น 2 r ช่อง ) และที่เหลืออีก s - r บิต ใช้เป็น tag หรือป้ายบอกตำแหน่งการใช้งานของบล็อกนั้น ( อยู่ใน cache หรือไม่ ) ดังนั้น ที่เหลืออีกจำนวน s บิต หมายถึงตำแหน่งหรือหมายเลขของบล็อกจากจำนวน ทั้งหมด 2 s บล็อก หน่วยความจำ cache จะแบ่งข้อมูล s บิตนี้ออกเป็น สองส่วน คือ เป็นบิตที่ใช้บอกหมายเลขช่องสัญญาณ cache จำนวน r บิต ( แสดงว่ามีจำนวนช่องสัญญาณทั้งสิ้น 2 r ช่อง ) และที่เหลืออีก s - r บิต ใช้เป็น tag หรือป้ายบอกตำแหน่งการใช้งานของบล็อกนั้น ( อยู่ใน cache หรือไม่ ) ดังนั้น

34 34 Direct Mapping ความยาวของหมายเลขที่อยู่ = (s + w) บิต ความยาวของหมายเลขที่อยู่ = (s + w) บิต ปริมาณหน่วยความจำที่สามารถอ้างอิงได้ทั้งหมด = 2 s+w words หรือ bytes ปริมาณหน่วยความจำที่สามารถอ้างอิงได้ทั้งหมด = 2 s+w words หรือ bytes จำนวนบล็อกทั้งหมด = 2 w words หรือ bytes จำนวนบล็อกทั้งหมด = 2 w words หรือ bytes จำนวนบล็อกในหน่วยความจำหลัก = บล็อก จำนวนบล็อกในหน่วยความจำหลัก = บล็อก จำนวนช่องสัญญาณ cache = 2 r = m ช่อง จำนวนช่องสัญญาณ cache = 2 r = m ช่อง ขนาดของป้ายบอกตำแหน่ง = (s – r) บิต ขนาดของป้ายบอกตำแหน่ง = (s – r) บิต

35 35 Direct Mapping  ผลของการกำหนดความสัมพันธ์ของตำแหน่งข้อมูลในหน่วยความจำหลักกับช่องสัญญาณ cache เป็นดังนี้  การนำตัวเลขบางส่วนของหมายเลขที่อยู่มาใช้เป็นหมายเลขช่องสัญญาณ cache ทำให้ เกิดการแปลงตำแหน่งแต่ละบล็อกในหน่วยความจำหลักมายัง cache เป็นค่าเฉพาะที่ไม่ ซ้ำกัน เมื่อมีการอ่านข้อมูลจากบล็อกในหน่วยความจำหลักมาไว้ที่ cache ตามตำแหน่ง ที่กำหนด ก็จะต้องเปลี่ยนค่าของป้ายบอกตำแหน่งของข้อมูลให้สอดคล้องกันด้วย เพื่อจะได้ สามารถแยกความแตกต่างออกจากบล็อกที่ยังไม่เกิดการอ่านได้ ข้อมูล s-r บิตแรกจะถูก นำมาใช้เป็นป้ายบอกตำแหน่งข้อมูลนี้ หมายเลขช่องสัญญาณ Cache หมายเลขบล็อกในหน่วยความจำหลัก 0 0, m, 2m, …, 2 s - m 1 1, m +1, 2m +1, …, 2 s – m m - 1 m – 1, 2m -1, 3m – 1, …, 2 s - 1

36 36 Direct Mapping ตัวอย่างโครงสร้างหน่วยความจำ cache แบบ direct-mapping

37 37 Direct Mapping  รูปด้านบนแสดงตัวอย่างการใช้วิธี direct mapping ซึ่งกำหนดให้ m = 16K = 2 14 และ i = j mod 2 14 การแปลงที่อยู่จะได้ผลลัพธ์ดังนี้  สังเกตว่า จะไม่มีบล็อกใด ๆ ที่ถูกแปลงที่อยู่เป็นหมายเลขช่องสัญญาณ cache เดียวกัน แล้วมีหมายเลขป้ายบอกตำแหน่งเหมือนกันเลย เช่น บล็อกที่เริ่มต้นด้วยหมายเลขที่อยู่ , , …, FF0000 จะมีค่าของป้ายเลขบอกตำแหน่งเป็น 00, 01, …, FF ตามลำดับ หมายเลขช่องสัญญาณ cache หมายเลขที่อยู่เริ่มต้นของบล็อก , , …, FF , , …, FF0004 ………………………………… FFFC, 01FFFC, …, FFFFFC

38 38 Direct Mapping  สังเกตว่าจะไม่มีบล็อกใด ๆ ที่ถูกแปลงที่อยู่เป็นหมายเลขช่องสัญญาณ cache เดียวกัน แล้วมีหมายเลขบอกตำแหน่งป้ายเหมือนกันเลย เช่น บล็อกที่เริ่มต้นด้วย หมายเลขที่อยู่ , , …, FF0000 จะมีค่าของป้ายบอก ตำแหน่งเป็น 00, 01, …, FF ตามลำดับ  กระบวนการอ่านข้อมูลจากหน่วยความจำหลักทำงาน ดังนี้ ข้อมูลตำแหน่งที่อยู่ขนาด 24 บิต ถูกส่งมาที่ระบบหน่วยความจำ cache ข้อมูล ช่องสัญญาณ cache ขนาด 14 บิต (line number) ถูกนำไปใช้ในการ ค้นหาตำแหน่งช่องสัญญาณ cache ต่อไป ข้อมูลตำแหน่งที่อยู่ขนาด 24 บิต ถูกส่งมาที่ระบบหน่วยความจำ cache ข้อมูล ช่องสัญญาณ cache ขนาด 14 บิต (line number) ถูกนำไปใช้ในการ ค้นหาตำแหน่งช่องสัญญาณ cache ต่อไป ข้อมูลป้ายบอกตำแหน่ง 8 บิตแรก (tag) จะถูกนำไปเปรียบเทียบกับหมายเลขของ ป้ายบอกตำแหน่งที่เก็บอยู่ในตำแหน่งช่องสัญญาณ cache ที่พบนั้น ซึ่งถ้าตรงกันก็ แสดงว่าข้อมูลบล็อกที่ต้องการนั้นอยู่ใน cache จึงนำข้อมูลสองบิตสุดท้าย (word) มาใช้เลือกข้อมูล ( หนึ่งใน 4 ไบท์ ) ในบล็อกนั้น ข้อมูลป้ายบอกตำแหน่ง 8 บิตแรก (tag) จะถูกนำไปเปรียบเทียบกับหมายเลขของ ป้ายบอกตำแหน่งที่เก็บอยู่ในตำแหน่งช่องสัญญาณ cache ที่พบนั้น ซึ่งถ้าตรงกันก็ แสดงว่าข้อมูลบล็อกที่ต้องการนั้นอยู่ใน cache จึงนำข้อมูลสองบิตสุดท้าย (word) มาใช้เลือกข้อมูล ( หนึ่งใน 4 ไบท์ ) ในบล็อกนั้น

39 39 Direct Mapping แต่ถ้าข้อมูลป้ายบอกตำแหน่งมีค่าไม่เท่ากัน แสดงว่าข้อมูลในบล็อกนั้น ยังไม่ถูกคัดลอก สำเนาจากหน่วยความจำหลักมาเก็บไว้ใน cache ก็จะนำข้อมูลป้ายบอกตำแหน่ง รวมทั้งข้อมูลช่องสัญญาณ cache จำนวน 22 บิตมารวมกัน กลายเป็นตำแหน่ง บล็อกข้อมูลในหน่วยความจำหลัก แล้วคัดลอกสำเนามาเก็บไว้ใน cache แต่ถ้าข้อมูลป้ายบอกตำแหน่งมีค่าไม่เท่ากัน แสดงว่าข้อมูลในบล็อกนั้น ยังไม่ถูกคัดลอก สำเนาจากหน่วยความจำหลักมาเก็บไว้ใน cache ก็จะนำข้อมูลป้ายบอกตำแหน่ง รวมทั้งข้อมูลช่องสัญญาณ cache จำนวน 22 บิตมารวมกัน กลายเป็นตำแหน่ง บล็อกข้อมูลในหน่วยความจำหลัก แล้วคัดลอกสำเนามาเก็บไว้ใน cache หมายเลขที่อยู่จริง ๆ ในหน่วยความจำหลักนั้นมาจากข้อมูล 22 บิต และต่อท้ายด้วย 00 ทำให้กลายเป็นหมายเลขที่อยู่เริ่มต้นของข้อมูลในแต่บล็อกขนาด 24 บิต ที่เก็บอยู่ ในหน่วยความจำหลัก หมายเลขที่อยู่จริง ๆ ในหน่วยความจำหลักนั้นมาจากข้อมูล 22 บิต และต่อท้ายด้วย 00 ทำให้กลายเป็นหมายเลขที่อยู่เริ่มต้นของข้อมูลในแต่บล็อกขนาด 24 บิต ที่เก็บอยู่ ในหน่วยความจำหลัก ข้อดีของ Direct mapping คือ เป็นวิธีที่ง่ายสร้างขึ้นมาใช้งานโดยใช้ต้นทุนต่ำ ข้อดีของ Direct mapping คือ เป็นวิธีที่ง่ายสร้างขึ้นมาใช้งานโดยใช้ต้นทุนต่ำ ส่วนข้อเสียคือ การเปลี่ยนตำแหน่งบล็อกข้อมูลจากหน่วยความจำหลักมาที่ cache นั้นเป็นการกำหนดตำแหน่งคงที่ ดังนั้นถ้าในโปรแกรมเกิดมีการอ้างอิงถึงข้อมูลจากสอง บล็อกหรือมากกว่า ข้อมูลทั้งสองบล็อกนั้นจะต้องสลับเปลี่ยนกันถูกคัดลอกเข้ามาไว้ใน cache ที่ตำแหน่งเดียวกันเสมอ ทั้ง ๆ ที่ cache ส่วนอื่นอาจไม่มีข้อมูลอยู่เลยก็ได้ ปรากฏการณ์แบบนี้เรียกว่า “trashing” ส่วนข้อเสียคือ การเปลี่ยนตำแหน่งบล็อกข้อมูลจากหน่วยความจำหลักมาที่ cache นั้นเป็นการกำหนดตำแหน่งคงที่ ดังนั้นถ้าในโปรแกรมเกิดมีการอ้างอิงถึงข้อมูลจากสอง บล็อกหรือมากกว่า ข้อมูลทั้งสองบล็อกนั้นจะต้องสลับเปลี่ยนกันถูกคัดลอกเข้ามาไว้ใน cache ที่ตำแหน่งเดียวกันเสมอ ทั้ง ๆ ที่ cache ส่วนอื่นอาจไม่มีข้อมูลอยู่เลยก็ได้ ปรากฏการณ์แบบนี้เรียกว่า “trashing”

40 40 Associative Mapping  วิธีนี้แก้ปัญหาของ Direct mapping โดยการยินยอมให้หน่วยความจำแต่ละ บล็อก สามารถูกอ่านเข้ามาใน cache ช่องใดก็ได้  ในกรณีนี้การแปลงตำแหน่งที่อยู่จะแบ่งออกเป็นเพียงสองส่วนคือ ป้ายบอกตำแหน่ง (tag) และ ตำแหน่งของ word  ป้ายบอกตำแหน่งใช้ในการบอกหมายเลขบล็อกของหน่วยความจำหลัก การตรวจสอบ ว่าบล็อกนั้นอยู่ใน cache หรือไม่ ยังคงใช้วิธีเดิม คือ การเปรียบเทียบค่าของป้าย บอกตำแหน่งที่มากับข้อมูล กับค่าของป้ายบอกตำแหน่งที่เก็บอยู่ใน cache รูป ด้านล่างแสดงการทำงานของ Associative mapping สังเกตว่าไม่มีส่วนใด ของตำแหน่งที่อยู่ข้อมูลเป็นส่วนที่บอกตำแหน่งใน cache (line number) ดังนั้นจึงไม่มีการตรวจสอบหมายเลขช่องสัญญาณใน cache

41 41 Associative Mapping โครงสร้างหน่วยความจำ cache แบบ fully associative

42 42 Associative Mapping  ค่าต่าง ๆ ในรูปแสดงได้ดังนี้ ความยาวของหมายเลขตำแหน่งที่อยู่ (address length) = (s+w) บิต ความยาวของหมายเลขตำแหน่งที่อยู่ (address length) = (s+w) บิต จำนวน word ( หรือ byte) ในหน่วยความจำหลัก = 2 s+w words จำนวน word ( หรือ byte) ในหน่วยความจำหลัก = 2 s+w words ขนาดของบล็อก = 2 w words ( หรือ byte) ขนาดของบล็อก = 2 w words ( หรือ byte) จำนวนบล็อกในหน่วยความจำหลัก = จำนวนบล็อกในหน่วยความจำหลัก = จำนวนช่องสัญญาณใน cache = ไม่มีการกำหนดตายตัว จำนวนช่องสัญญาณใน cache = ไม่มีการกำหนดตายตัว ขนาดของป้ายบอกตำแหน่ง = s บิต ขนาดของป้ายบอกตำแหน่ง = s บิต

43 43 Associative Mapping  รูปด้านล่างแสดงการใช้ Associative Mapping ที่อยู่ในหน่วยความจำหลัก (memory address) ประกอบขึ้นจาก ป้ายบอกตำแหน่งขนาด 22 บิต และ เลขบอกตำแหน่งไบต์ขนาด 2 บิต รวมเป็น 24 บิต ป้ายบอกตำแหน่งทั้ง 22 บิต ( เริ่มจากบิตซ้ายสุด ) จะต้องใช้ในการเก็บข้อมูลบล็อกละ 32 บิต สำหรับแต่ละ ช่องสัญญาณใน cache เช่น Memory address (binary 24 bits) C (hexadecimal) Tag(leftmost 22 bits) (binary 22 bits) C E 7 (hexadecimal) นั่นคือที่อยู่ที่อ้างอิงในหน่วยความจำหลัก 16339C จะมีหมายเลข tag เป็น 058CE7 ข้อเสีย ของวิธีนี้คือ ความซับซ้อนที่เกิดขึ้นในระหว่างการตรวจสอบป้ายบอกตำแหน่งข้อมูลใน cache ที่จะต้องทำการตรวจสอบพร้อมกันทุกตำแหน่ง

44 44 Associative Mapping โครงสร้างหน่วยความจำ cache แบบ associative

45 45 Set Associative Mapping  เป็นวิธีการผสมที่ได้นำข้อดีของทั้งแบบ direct และ associative มาใช้  ในขณะที่พยายามลดข้อด้อยให้มีผลกระทบน้อยลง ในกรณีนี้ หน่วยความจำ cache จะถูกแบ่งออกเป็นเซ็ตจำนวน v เซ็ต แต่ละเซ็ตประกอบด้วยช่องสัญญาณจำนวน k ช่อง สรุปความสัมพันธ์ได้ ดังนี้ m = v x k i = j modulo v เมื่อ i = หมายเลขเซ็ตใน cache i = หมายเลขเซ็ตใน cache j = หมายเลขบล็อกในหน่วยความจำหลัก j = หมายเลขบล็อกในหน่วยความจำหลัก m = จำนวนช่องสัญญาณใน chche m = จำนวนช่องสัญญาณใน chche

46 46 Set Associative Mapping  ความสัมพันธ์ด้านบนนั้น เรียกเป็นชื่อเฉพาะว่า “k-way set associative mapping”  วิธีการนี้จะแปลงที่อยู่ของบล็อก B j ให้ไปอยู่ในช่องสัญญาณใดก็ได้ในเซ็ต i ของหน่วยความจำ cache โครงสร้างของหมายเลขที่อยู่ประกอบด้วยสามส่วน คือ ป้ายบอกตำแหน่ง (tag), หมายเลขเซ็ต และตำแหน่งใน word  หมายเลขเซ็ตมีขนาด d บิต (v = 2 d set) ใช้ในการกำหนดเซ็ตที่ต้องใช้ใน cache ส่วนป้ายบอกตำแหน่งขนาด s บิต และข้อมูลในเซ็ต จะนำมาใช้บอก ตำแหน่งบล็อกข้อมูลในหน่วยความจำ  รูปด้านล่างแสดงการทำงานของ set associative กรณีพิเศษกรณีหนึ่ง เรียกว่า fully associative mapping มีขนาดของป้ายบอกตำแหน่ง มาก จนต้องทำการเปรียบเทียบกับทุกช่องสัญญาณใน cache

47 47 Set Associative Mapping โครงสร้างหน่วยความจำ cache แบบ k-way set associative

48 48 Set Associative Mapping  แต่ k-way set associative จะมีขนาดของป้ายบอกตำแหน่งที่เล็กกว่ามาก ซึ่ง จะทำการเปรียบเทียบช่องสัญญาณเพียง k ช่องในเซ็ตหนึ่ง ๆ เท่านั้น สรุปความสัมพันธ์ได้ ดังนี้ ความยาวของตำแหน่งข้อมูล (address length) = s + w บิต ความยาวของตำแหน่งข้อมูล (address length) = s + w บิต ขนาดหน่วยความจำทั้งหมด = 2 s+w words หรือ bytes ขนาดหน่วยความจำทั้งหมด = 2 s+w words หรือ bytes ขนาดของบล็อก = 2 w words or bytes ขนาดของบล็อก = 2 w words or bytes จำนวนบล็อกในหน่วยความจำหลัก = บล็อก จำนวนบล็อกในหน่วยความจำหลัก = บล็อก จำนวนช่องสัญญาณในแต่ละเซ็ต = k จำนวนช่องสัญญาณในแต่ละเซ็ต = k จำนวนเซ็ต = 2 d = v เซ็ต จำนวนเซ็ต = 2 d = v เซ็ต จำนวนช่องสัญญาณทั้งหมดใน cache = kv = k x 2 d จำนวนช่องสัญญาณทั้งหมดใน cache = kv = k x 2 d ขนาดของป้ายบอกตำแหน่ง = (s – d) บิต ขนาดของป้ายบอกตำแหน่ง = (s – d) บิต

49 49 Set Associative Mapping  รูปด้านล่างแสดงตัวอย่างการทำงานของ set associative ที่แต่ละเซ็ต ประกอบด้วย 2 ช่องสัญญาณ (2-way set associative)  หมายเลขเซ็ตขนาด 13 บิตใช้ระบุหมายเลขเซ็ต และหมายเลขบล็อกในหน่วยความจำ หลัก ดังนั้นบล็อกหมายเลข ,008000, …, FF8000 ของ หน่วยความจำหลักจะถูกแปลงให้ไปอยู่ในเซ็ต 0 ใน cache  แต่ละบล็อกสามารถถูกอ่านเข้าไปเก็บไว้ในช่องสัญญาณใดของเซ็ต 0 ก็ได้ แต่จะไม่ สามารถเก็บไว้ที่ช่องสัญญาณเดียวกันในเซ็ตเดียวกันได้  จากนั้นค่าของป้ายบอกตำแหน่ง ที่ตำแหน่งข้อมูลที่ถูกอ้างอิงจะถูกนำมาเปรียบเทียบกับ ค่าของป้ายบอกตำแหน่งที่เก็บอยู่ใน cache พร้อมกันทั้งสองช่องสัญญาณ เพื่อ ค้นหาบล็อกข้อมูลที่ต้องการ

50 50 Set Associative Mapping ตัวอย่างโครงสร้างหน่วยความจำ cache แบบ 2-way set associative

51 51 Set Associative Mapping  ในกรณีที่ v=m และ k=1 จะทำให้วิธีนี้กลายเป็น direct mapping  และถ้า v=1 และ k=m ก็จะกลายเป็นวิธี associative mapping  การกำหนดให้แต่ละเซ็ตมีสองช่องสัญญาณ (v=m/2 และ k=2) เป็นวิธีการที่ นิยมใช้กันโดยทั่วไป ซึ่งสามารถเพิ่มประสิทธิภาพของอัตราการค้นพบข้อมูลใน cache ได้ดีกว่าวิธี direct mapping และถ้าการกำหนดให้แต่ละเซ็ตมี สี่ช่องสัญญาณ (v=m/4 และ k=4) ซึ่งเรียกว่า 4-way set associative ก็จะเพิ่มประสิทธิภาพให้ดียิ่งขึ้นไปอีก โดยที่มีค่าใช้จ่ายเพิ่มขึ้น เพียงเล็กน้อย  แต่ถ้าเพิ่มจำนวนช่องสัญญาณต่อเซ็นให้สูงกว่านี้แล้ว ประสิทธิภาพที่ได้รับจะ เพิ่มขึ้นเพียงเล็กน้อยเท่านั้น ซึ่งไม่คุ้มค่ากับค่าใช้จ่ายที่เพิ่มสูงขึ้น

52 52 Replacement Algorithm  เมื่อข้อมูลบล็อกใหม่ถูกอ่านขึ้นมาจากหน่วยความจำ หนึ่งในบล็อกเดิมที่ถูกอ่าน เข้ามาไว้ใน cache จะต้องถูกแทนที่ด้วยบล็อกใหม่  สำหรับ direct mapping จะมีช่องสัญญาณเพียงช่องเดียวเท่านั้นที่จะเป็น ที่อยู่ใน cache สำหรับข้อมูลแต่ละบล็อก จึงไม่จำเป็นต้องคิดหาวิธีการแทนที่ ใด ๆ  สำหรับ associative และ set associative จะต้องนำวิธีการ สำหรับการแทนที่ (replacement) มาใช้งาน เพื่อตอบสนองความรวดเร็ว ในการทำงาน วิธีการดังกล่าวจะต้องถูกสร้างขึ้นด้วยฮาร์ดแวร์ วิธีการที่นิยม นำมาใช้กันโดยทั่วไปมี 4 วิธี วิธีที่นิยมกันมากที่สุด คือ Least recently used; LRU

53 53 Replacement Algorithm  LRU (Least recently used) : จะนำบล็อกใหม่มาแทนที่บล็อก เก่าที่ถูกเก็บไว้ใน cache เป็นเวลานานที่สุด โดยที่มีการนำไปใช้งานน้อยที่สุด สำหรับ 2-way set associative สามารถสร้างขึ้นมาใช้งานได้ง่ายมาก แต่ละช่องสัญญาณในเซ็ตจะมีบิตพิเศษเรียกว่า USE บิต เมื่อมีการอ้างอิงถึง ช่องสัญญาณหนึ่งก็จะเปลี่ยนค่า USE ให้เป็น “1” และ กำหนดให้ USE บิตของอีกช่องสัญญาณให้เป็น “0” เมื่อต้องการนำข้อมูลบล็อกใหม่เข้ามาในเซ็ต นั้น ก็จะเลือกให้ช่องสัญญาณที่มีค่า USE เป็น “0” ทั้งนี้แนวความคิดนี้ คาดว่า ข้อมูลที่ถูกอ้างอิงถึงในลำดับหลัง มีโอกาสที่จะถูกอ้างอิงมากกว่าข้อมูลที่ไม่ถูก อ้างอิงมาเป็นเวลานานกว่า

54 54 Replacement Algorithm  FIFO (First-in-First-out) : จะทดแทนบล็อกที่ถูกอ่านขึ้นมานาน มากที่สุด  LFU (Lease frequently used) : จะทำการทดแทนบล็อกที่ถูก อ้างอิงเป็นจำนวนครั้งน้อยที่สุด การสร้างขึ้นมาใช้งานจำเป็นจะต้องมีตัวนับการใช้ งานข้อมูลแต่ละช่องสัญญาณ เพื่อหาช่องสัญญาณที่มีการนำมาใช้งานน้อยที่สุด  Random : ทำโดยสุ่มหมายเลขช่องสัญญาณขึ้นมาในแต่ละครั้งที่มีความ ต้องการเกิดขึ้น ผลจากการสร้างระบบจำลองทดสอบการทำงานพบว่า วิธีสุ่มนี้มี ประสิทธิภาพด้อยกว่าวิธีการที่นำข้อมูลเกี่ยวกับกานใช้งานมาพิจารณา

55 55 Write Policy  ก่อนที่บล็อกข้อมูลใน cache จะถูกแทนที่ด้วยข้อมูลบล็อกใหม่ จำเป็นจะต้อง ตรวจสอบว่าข้อมูลในบล็อกนั้นถูกแก้ไขเปลี่ยนแปลงไปบ้างแล้วหรือไม่  ถ้าไม่มีการแก้ไขเกิดขึ้นก็สามารถบันทึกข้อมูลบล็อกใหม่แทนที่ได้เลย แต่ถ้ามีการ แก้ไขข้อมูลจะต้องมีการบันทึกข้อมูล (write operation) เกิดขึ้นอย่าง น้อยหนึ่งครั้งกับข้อมูลนั้น ทำให้จะต้องมีการปรับปรุงข้อมูลในหน่วยความจำหลัก ให้เหมือนกับข้อมูลใน cache  Write policy มีอยู่หลายวิธี ยกตัวอย่างเช่น Write through Write through Write back Write back

56 56 Write Policy  Write through : เป็นวิธีที่ง่ายที่สุดในการบันทึกข้อมูลลงหน่วยความจำ ในทันที ทุกครั้งที่มีการบันทึกข้อมูลลงใน cache ก็จะถูกบังคับให้เกิดการบันทึก ลงในหน่วยความจำหลักในทันที เพื่อเป็นการรับประกันว่า ข้อมูลทั้งที่อยู่ใน หน่วยความจำหลักและที่อยู่ในทุกส่วนของ cache นั้นมีค่าเท่ากับเสมอ ข้อเสีย ของวิธีนี้ คือ เป็นวิธีที่ทำให้เกิดการส่งข้อมูลผ่านบัส โดยเฉพาะส่วนที่เชื่อมต่อกับ หน่วยความจำหลักเป็นอย่างมาก ซึ่งอาจทำให้เกิดเป็นจุดปัญหาคอขวดของระบบ ขึ้นมาได้

57 57 Write Policy  Write back : เป็นการบันทึกข้อมูลในภายหลัง ซึ่งช่วยลดจำนวนครั้งในการ บันทึกข้อมูลลงหน่วยความจำหลักให้เหลือน้อยที่สุด วิธีนี้จะปล่อยให้มีการ ปรับปรุงแก้ไขข้อมูลเกิดขึ้นใน cache เท่านั้น ซึ่งจะไปกำหนดค่าของบิตพิเศษ เรียกว่า UPDATE บิต เมื่อมีการแก้ไขเกิดขึ้นจริง ถ้าข้อมูลในบล็อกนั้น จะต้องถูกแทนที่ด้วยข้อมูลบล็อกใหม่ ระบบก็จะตรวจสอบ UPDATE บิต และจะทำการบันทึกข้อมูลลงในหน่วยความจำหลัก ก็ต่อเมื่อบิตนี้มีค่าเปลี่ยนแปลง ไปจากเดิมเท่านั้น

58 58 Line Size  ขนาดของบล็อกใน cache (line size) : เมื่อเกิดการอ่านข้อมูลมาจาก หน่วยความจำหลัก และใส่เข้าไปใน cache นั้น นอกเหนือจาก word m ต้องการแล้วยังได้รับข้อมูลอื่นที่อยู่ติดกับ word นั้น ๆ มาด้วยอีกจำนวนหนึ่ง  ถ้าบล็อกมีขนาดใหญ่ขึ้นอัตราการพบข้อมูลใน cache จะเพิ่มขึ้นเป็นระยะเวลา หนึ่ง เนื่องจากกฎการอ้างอิงพื้นที่ใกล้เคียง (locality of reference) ซึ่ง กล่าวว่าการอ้างอิงข้อมูลในครั้งต่อๆ ไปจะอ้างอิงข้อมูลเดิมหรือข้อมูลที่อยู่ใกล้เคียง กับที่เดิม  ดังนั้นบล็อกที่มีขนาดใหญ่ขึ้นจึงสามารถนำข้อมูลที่เป็นประโยชน์เข้ามาสู่ cache ได้มากขึ้น อย่างไรก็ตามถ้าบล็อกมีขนาดใหญ่ขึ้นเรื่อย ๆ โอกาสที่จะพบข้อมูลที่ ต้องการใน cache จะลดลง ถ้าบล็อกมีขนาดใหญ่ขึ้นไปอีก โอกาสที่จะใช้ข้อมูล ในบล็อกใหม่ที่พึ่งจะอ่านขึ้นมานั้น กลับน้อยกว่าโอกาสที่จะใช้ข้อมูลจากบล็อกเก่าที่ ถูกแทนที่ไปแล้ว ซึ่งสรุปความสัมพันธ์ได้ว่า

59 59 Line Size บล็อกทีมีขนาดใหญ่จะลดจำนวนบล็อกที่จะสามารถอ่านเข้ามาเก็บไว้ใน cache เนื่องจากบล็อกใหม่ที่อ่านเข้ามาจะถูกบันทึกแทนที่บล็อกข้อมูลเก่าที่มีอยู่ก่อนหน้า ดังนั้นยิ่งมีจำนวนบล็อกน้อยลงก็จะยิ่งทำให้บล็อกเก่าถูกลบทิ้งเร็วขึ้น บล็อกทีมีขนาดใหญ่จะลดจำนวนบล็อกที่จะสามารถอ่านเข้ามาเก็บไว้ใน cache เนื่องจากบล็อกใหม่ที่อ่านเข้ามาจะถูกบันทึกแทนที่บล็อกข้อมูลเก่าที่มีอยู่ก่อนหน้า ดังนั้นยิ่งมีจำนวนบล็อกน้อยลงก็จะยิ่งทำให้บล็อกเก่าถูกลบทิ้งเร็วขึ้น ถ้าบล็อกมีขนาดใหญ่ขึ้น ข้อมูลที่อ่านเข้ามาเพิ่มขึ้นนั้นจะยิ่งอยู่ในตำแหน่งที่ห่างไกล จากตำแหน่งข้อมูลที่กำลังถูกเรียกใช้งานมากยิ่งขึ้น ซึ่งเป็นการขัดต่อกฎการอ้างอิง พื้นที่ใกล้เคียง ดังนั้นจึงมีโอกาสที่จะถูกนำมาใช้งาน้อยลง ถ้าบล็อกมีขนาดใหญ่ขึ้น ข้อมูลที่อ่านเข้ามาเพิ่มขึ้นนั้นจะยิ่งอยู่ในตำแหน่งที่ห่างไกล จากตำแหน่งข้อมูลที่กำลังถูกเรียกใช้งานมากยิ่งขึ้น ซึ่งเป็นการขัดต่อกฎการอ้างอิง พื้นที่ใกล้เคียง ดังนั้นจึงมีโอกาสที่จะถูกนำมาใช้งาน้อยลง ความสัมพันธ์ระหว่างขนาดของบล็อก และอัตราการค้นพบข้อมูลที่ต้องการใน cache (hit ratio) นั้นมีความซับซ้อนมาก ซึ่งขึ้นอยู่กับลักษณะการทำงาน ของแต่ละโปรแกรมเป็นหลัก และไม่มีผู้ใดสามารถให้นิยามของความพอดีได้ อย่างไรก็ตาม บล็อกขนาด 8 ถึง 32 bytes นั้นเป็นค่าที่ดีสำหรับงานทั่วไป และบล็อกขนาด 64 ถึง 128 bytes นั้นเหมาะสมกับเครื่องคอมพิวเตอร์ ความสามารถสูงสำหนับใช้ในงานวิจัยขั้นสูง

60 60 Number of caches  ในตอนที่ cache ถูกนำมาใช้งานเป็นครั้งแรก ระบบคอมพิวเตอร์ทั่วไปจะมี cache เพียงระดับเดียว เมื่อไม่นานมานี้ cache หลายระดับได้รับความนิยม นำมาใช้งานทั่วไป  การออกแบบ cache หลายระดับมีมุมมองที่สำคัญสองด้านคือ จำนวนระดับ ของ cache ที่นำมาใช้ และการใช้ cache แบบรวมเป็นหนึ่งเดียวหรือแบบ แยกส่วน

61 61 Number of caches  Cache แบบหลายระดับ : เทคโนโลยีที่ก้าวหน้าขึ้น ทำให้สามารถใส่ cache เข้าไปเป็นส่วนหนึ่งของชิพโปรเซสเซอร์ได้ ซึ่งเรียกว่า on-chip cache เมื่อเปรียบเทียบกับ cache ภายนอกซึ่งจะต้องติดต่อผ่านบัส on- chip cache ช่วยลดงานของโปรเซสเซอร์ในการใช้บัสให้น้อยลง จึงช่วย เพิ่มความเร็วในการประมวลผลของโปรเซสเซอร์  ในระบบที่มี on-chip cache นั้นไม่ได้บังคับให้มีหรือไม่มี cache ภายนอกใช้งาน แต่โดยทั่วไปโดยเฉพาะเครื่องรุ่นใหม่ ๆ มีการนำ cache ทั้ง สองชนิดมาใช้งานร่วมกัน และเรียกโครงสร้างประเภทนี้ว่า cache 2 ระดับ โดย cache ระดับที่ 1(L1) หมายถึง on-chip cache และระดับที่ 2(L2) หมายถึง cache ภายนอก

62 62 Number of caches  เหตุผลที่ต้องมี L2 cache เนื่องจากถ้าไม่มี L2 cache แล้วในทุกครั้งที่ โปรเซสเซอร์ไม่สามารถหาข้อมูลได้ L1 cache ก็จะเกิดการอ้างอิงไปที่ หน่วยความจำหลัก ผ่านบัสหลักของระบบคอมพิวเตอร์ ซึ่งโดยปกติจะทำให้เสีย เวลานานมาก และทำให้ทั้งระบบมีประสิทธิภาพการทำงานลดลง แต่ถ้าทีการนำ L2 cache มาใช้ข้อมูลส่วนหนึ่งจะถูกพบที่นี่ ซึ่งช่วยให้การเข้าถึงข้อมูลนั้น รวดเร็วมากกว่าการเข้าถึงหน่วยความจำหลักโดยตรง

63 63 Number of caches  Cache แบบ Unified : คือ cache ที่สามารถเก็บได้ทั้งข้อมูลและ คำสั่งปนกัน มีข้อดีสองประการคือ สำหรับ cache จำนวนหนึ่ง unified cache มีอัตราการค้นพบข้อมูลที่ ต้องการมากกว่า split cache เนื่องจากสามารถรักษาสมดุลระหว่างการเรียกใช้ คำสั่งและข้อมูลได้โดยอัตโนมัติ นั่นคือถ้าการอ้างอิงมีแนวโน้มในการเรียกใช้คำสั่ง มากกว่าข้อมูล cache ก็จะถูกบันทึกไว้ด้วยคำสั่งในปริมาณที่มากกว่าข้อมูล และ ในทางกลับกัน cache จะมีข้อมูลมากกว่าคำสั่ง ถ้าโปรแกรมที่กำลังทำงานอยู่นั้น อ้างอิงข้อมูลจำนวนมากโดยใช้คำสั่งซ้ำ ๆ สำหรับ cache จำนวนหนึ่ง unified cache มีอัตราการค้นพบข้อมูลที่ ต้องการมากกว่า split cache เนื่องจากสามารถรักษาสมดุลระหว่างการเรียกใช้ คำสั่งและข้อมูลได้โดยอัตโนมัติ นั่นคือถ้าการอ้างอิงมีแนวโน้มในการเรียกใช้คำสั่ง มากกว่าข้อมูล cache ก็จะถูกบันทึกไว้ด้วยคำสั่งในปริมาณที่มากกว่าข้อมูล และ ในทางกลับกัน cache จะมีข้อมูลมากกว่าคำสั่ง ถ้าโปรแกรมที่กำลังทำงานอยู่นั้น อ้างอิงข้อมูลจำนวนมากโดยใช้คำสั่งซ้ำ ๆ การออกแบบและสร้างจะง่ายกว่าเพราะไม่ต้องแยกชนิดของ cache การออกแบบและสร้างจะง่ายกว่าเพราะไม่ต้องแยกชนิดของ cache

64 64 Number of caches  Split cache : สำหรับเก็บข้อมูลและคำสั่งแยกออกจากกัน มักใช้ในเครื่อง คอมพิวเตอร์ประสิทธิภาพสูงประเภท superscalar machine เช่น Pentium และ PowerPC ซึ่งเน้นการประมวลผลแบบขนาน และการดึง คำสั่งล่วงหน้า สำหรับคำสั่งที่คาดว่าจะถูกนำมาประมวลผลในลำดับต่อไป  ข้อดีประการหนึ่งของการใช้ split cache คือวิธีนี้ช่วยกำจัดความคับคั่งของ cache ระหว่างหน่วยที่ดึง และแปลความหมายคำสั่ง (instruction prefetcher) และหน่วยที่ทำการประมวลผล (execution unit) ซึ่ง เป็นสิ่งสำคัญมากในการออกแบบ pipeline


ดาวน์โหลด ppt 1 Cache. 2 หน่วยความจำในระบบคอมพิวเตอร์  หน่วยความจำในระบบคอมพิวเตอร์มีการจัดโครงสร้างเป็นลำดับชั้นดังนี้ รีจิสเตอร์ภายในโปรเซสเซอร์ : ระดับชั้นสูงสุด.

งานนำเสนอที่คล้ายกัน


Ads by Google