โปรเซสเซอร์แคช L1, L2 และ L3 ทั้งหมดทำจาก SRAM หรือไม่ ถ้าเป็นจริงทำไม L1 ถึงเร็วกว่า L2 และ L2 เร็วกว่า L3 ฉันไม่เข้าใจส่วนนี้เมื่อฉันอ่านเกี่ยวกับพวกเขา
โปรเซสเซอร์แคช L1, L2 และ L3 ทั้งหมดทำจาก SRAM หรือไม่ ถ้าเป็นจริงทำไม L1 ถึงเร็วกว่า L2 และ L2 เร็วกว่า L3 ฉันไม่เข้าใจส่วนนี้เมื่อฉันอ่านเกี่ยวกับพวกเขา
คำตอบ:
โดยทั่วไปจะใช้งานทั้งหมดกับ SRAM
(ชิป POWER และ zAr สถาปัตยกรรมของไอบีเอ็มใช้หน่วยความจำ DRAM สำหรับ L3 ซึ่งเรียกว่า Embedded DRAM เนื่องจากมีการใช้งานในเทคโนโลยีกระบวนการชนิดเดียวกับลอจิกทำให้สามารถรวมตรรกะอย่างรวดเร็วเข้ากับชิปเดียวกันกับ DRAM สำหรับ POWER4 ชิป L3 ใช้ eDRAM; POWER7 มี L3 บนชิปตัวเดียวกับแกนประมวลผล)
แม้ว่าพวกเขาจะใช้ SRAM แต่พวกเขาไม่ได้ใช้การออกแบบ SRAM เดียวกันทั้งหมด SRAM สำหรับ L2 และ L3 ได้รับการปรับให้เหมาะกับขนาด (เพื่อเพิ่มความจุให้กับขนาดชิปที่ จำกัด ได้หรือลดค่าใช้จ่ายของความจุที่กำหนด) ในขณะที่ SRAM สำหรับ L1 มีแนวโน้มที่จะปรับให้เหมาะกับความเร็ว
ที่สำคัญกว่านั้นเวลาในการเข้าถึงนั้นเกี่ยวข้องกับขนาดทางกายภาพของที่เก็บข้อมูล ด้วยเลย์เอาต์สองมิติหนึ่งสามารถคาดหวังความล่าช้าในการเข้าถึงทางกายภาพให้เป็นสัดส่วนคร่าวๆกับสแควร์รูทของความจุ (สถาปัตยกรรมแคชที่ไม่สม่ำเสมอใช้ประโยชน์จากสิ่งนี้เพื่อให้แคชย่อยบางส่วนในเวลาแฝงที่ต่ำกว่าชิ้น L3 ของโปรเซสเซอร์ล่าสุดของ Intel มีผลคล้ายกันการเข้าใช้งานชิ้นส่วนภายในมีความหน่วงแฝงต่ำกว่ามาก) ผลกระทบนี้ทำให้แคช DRAM เร็วขึ้น มากกว่าแคช SRAM ที่ความจุสูงเนื่องจาก DRAM มีขนาดเล็กลง
อีกปัจจัยหนึ่งคือแคช L2 และ L3 ส่วนใหญ่ใช้การเข้าถึงแท็กและข้อมูลแบบอนุกรมซึ่ง L1 แคชส่วนใหญ่จะเข้าถึงแท็กและข้อมูลแบบขนาน นี่คือการเพิ่มประสิทธิภาพพลังงาน (อัตราพลาด L2 สูงกว่าอัตราพลาด L1 ดังนั้นการเข้าถึงข้อมูลจึงมีแนวโน้มที่จะสูญเปล่ามากขึ้นโดยทั่วไปการเข้าถึงข้อมูล L2 ต้องใช้พลังงานมากกว่าเกี่ยวข้องกับความจุ - และแคช L2 มักจะมีการเชื่อมโยงที่สูงขึ้น ซึ่งหมายความว่าการป้อนข้อมูลเพิ่มเติมจะต้องอ่านอย่างพิเศษ) เห็นได้ชัดว่าต้องรอการจับคู่แท็กก่อนที่จะเข้าถึงข้อมูลจะเพิ่มเวลาที่จำเป็นในการดึงข้อมูล (โดยทั่วไปการเข้าถึง L2 จะเริ่มหลังจากยืนยันการพลาด L1 เท่านั้นดังนั้นการตรวจจับ L1 miss ที่แฝงอยู่จึงถูกเพิ่มเข้าไปในเวลาแฝงการเข้าถึงทั้งหมดของ L2)
นอกจากนี้แคช L2 นั้นอยู่ห่างจากเอ็นจินการเรียกใช้งานมากขึ้น การวางแคชข้อมูล L1 ใกล้กับเอ็นจินการเรียกใช้งาน (เพื่อให้กรณีทั่วไปของการโจมตี L1 เร็ว) โดยทั่วไปหมายความว่า L2 จะต้องวางให้ห่างออกไป