มีความสอดคล้องกันระหว่างขนาดแคชและเวลาในการตอบสนองการเข้าถึงหรือไม่? ทุกสิ่งอื่นเท่ากันแคชที่ใหญ่กว่าทำงานช้าลงหรือไม่? ถ้าเป็นเช่นนั้นทำไม ช้าเท่าไหร่
มีความสอดคล้องกันระหว่างขนาดแคชและเวลาในการตอบสนองการเข้าถึงหรือไม่? ทุกสิ่งอื่นเท่ากันแคชที่ใหญ่กว่าทำงานช้าลงหรือไม่? ถ้าเป็นเช่นนั้นทำไม ช้าเท่าไหร่
คำตอบ:
รายการในมือของคุณเข้าถึงได้เร็วกว่าสิ่งของในกระเป๋าซึ่งเข้าถึงได้เร็วกว่าสิ่งของในตู้ของคุณซึ่งเข้าถึงได้ง่ายกว่าสิ่งของที่ Digikey ที่เก็บข้อมูลแต่ละประเภทที่ต่อเนื่องที่ฉันระบุมีขนาดใหญ่กว่า แต่ช้ากว่ารุ่นก่อนหน้า
ดังนั้นเรามามีสิ่งที่ดีที่สุดของทั้งสองโลกกันเถอะทำให้มือของคุณใหญ่เท่าคลัง Digikey! ไม่มันไม่ทำงานเพราะตอนนี้พวกเขาไม่ได้ส่งมอบอะไรอีกแล้ว พวกเขาเป็นลูกกระสุนปืนใหญ่ที่ชั่งน้ำหนักคุณลง
เหตุผลการจัดเก็บข้อมูลที่มีขนาดใหญ่จะช้าในการเข้าถึงเป็นระยะ พื้นที่เก็บข้อมูลขนาดใหญ่นั้นอยู่ไกลจากคุณโดยเฉลี่ย สิ่งนี้เป็นจริงสำหรับรายการทางกายภาพและสำหรับ RAM
หน่วยความจำคอมพิวเตอร์ใช้พื้นที่ทางกายภาพ ด้วยเหตุนี้ความทรงจำที่ใหญ่กว่าจึงมีขนาดใหญ่ขึ้นทางกายภาพและบางตำแหน่งในความทรงจำนั้นก็จะอยู่ไกลออกไป สิ่งที่อยู่ห่างไกลใช้เวลาในการเข้าถึงนานขึ้นเนื่องจากสิ่งที่ จำกัด ความเร็ว ในกรณีของกระเป๋าและ Digikey การ จำกัด ความเร็วคือความเร็วของแขนของคุณและการ จำกัด ความเร็วทางหลวง
ในกรณีของ RAM ขีด จำกัด ความเร็วคือความเร็วในการแพร่กระจายสัญญาณไฟฟ้าล่าช้าการแพร่กระจายของประตูและไดรเวอร์และการใช้งานทั่วไปของนาฬิกาแบบซิงโครนัส แม้ว่าเงินไม่ใช่วัตถุและคุณสามารถซื้อได้มากเท่าที่คุณต้องการเทคโนโลยี RAM ที่เร็วที่สุดในปัจจุบันคุณจะไม่ได้รับประโยชน์จากมันทั้งหมด จัดวาง L1 แคชขนาด A4 หากคุณต้องการและวาง CPU ของคุณตรงกลาง เมื่อซีพียูต้องการเข้าถึงหน่วยความจำบางส่วนที่มุมหน่วยความจำจริง ๆ แล้วมันจะใช้เวลาเป็นนาโนวินาทีสำหรับการร้องขอเพื่อไปที่นั่นและนาโนวินาทีเพื่อให้กลับมา และนั่นไม่รวมถึงการแพร่กระจายทั้งหมดที่ล่าช้าและผ่านและประตูและไดรเวอร์ นั่นจะทำให้ CPU ของคุณช้าลงอย่างจริงจัง
เนื่องจากตรรกะการซิงโครนัสนั้นง่ายต่อการออกแบบมากกว่าตรรกะแบบอะซิงโครนัส RAM หนึ่งบล็อกจะถูกโอเวอร์คล็อกด้วยนาฬิกาเดียวกัน หากต้องการทำให้หน่วยความจำทั้งหมดเป็นแคช L1 คุณจะต้องทำการจับเวลาทั้งล็อตด้วยนาฬิกาช้าเพื่อรับมือกับช่วงเวลาที่เลวร้ายที่สุดของตำแหน่งที่อยู่ไกลที่สุดในหน่วยความจำ ซึ่งหมายความว่าตำแหน่งหน่วยความจำที่ห่างไกลกำลังถือตำแหน่งโลคัลไว้ซึ่งอาจทำให้นาฬิกาเร็วขึ้น ดังนั้นสิ่งที่ดีที่สุดที่ควรทำคือจัดโซนหน่วยความจำ ส่วนที่ใกล้ที่สุดและเล็กที่สุดของแคชจะใช้นาฬิกาที่เร็วที่สุด ส่วนที่ใกล้ที่สุดและเล็กที่สุดถัดไปจะใช้นาฬิกาที่ช้ากว่าเล็กน้อย ฯลฯ
และตอนนี้คุณมีแคช L1 & L2 และ RAM
ซึ่งนำเราไปสู่เหตุผลต่อไปการใช้พลังงาน
แคชใช้พลังงานจำนวนมากจริง ๆ ไม่เพียง แต่หน่วยความจำเท่านั้น แต่ตรรกะทั้งหมดที่อยู่รอบ ๆ ซึ่งจัดการการแมประหว่างบรรทัดแคชและหน่วยความจำหลัก การเพิ่มประสิทธิภาพของตรรกะพิเศษนี้อาจส่งผลให้การใช้พลังงานเพิ่มขึ้น ตอนนี้สำหรับบางแอปพลิเคชั่น (อุปกรณ์เคลื่อนที่ฝังตัว) คุณมีแรงจูงใจมากขึ้นในการทำให้แคชเล็ก
ดูการแลกเปลี่ยนการออกแบบแคชสำหรับกำลังและการปรับแต่งประสิทธิภาพ: กรณีศึกษา (Ching-Long Su และ Alvin M. Despain, 1995)
คำตอบสำหรับคำถามของคุณคือ: ขึ้นอยู่กับปัจจัยเชิงสถาปัตยกรรมหลายอย่าง
ดูตัวอย่างการอ้างอิงนี้ - เวลาแฝงการเข้าถึง L1 ที่วัดได้สำหรับโปรเซสเซอร์ทั้งหมดที่อยู่ในการทดสอบคือ 4 รอบนาฬิกา ความถี่ของโปรเซสเซอร์นั้นเกือบจะเหมือนกัน แต่ขนาดของ L1 cache นั้นแตกต่างกันมากถึง 3 เท่า
เหตุผลสำหรับเวลาแฝงคงที่ถึง L1 ในโปรเซสเซอร์ที่แตกต่างกันหลายรายการในการทดสอบด้านบนนั้นมีรากฐานมาจากไมโครสถาปัตยกรรมของแคช: การเข้าถึงแคชเอง (การดึงข้อมูลจากหน่วยความจำ) ใช้เวลาเพียงรอบเดียว มีการใช้รอบเพิ่มเติมสามรอบเพื่อถอดรหัสการเข้าถึงการตรวจสอบการมีอยู่ของข้อมูลและอื่น ๆ ... จำนวนของขั้นตอนเพิ่มเติมนั้นเหมือนกันทั่วทั้งโปรเซสเซอร์ในการทดสอบดังนั้นเวลาในการเข้าถึงจึงเท่ากัน
แม้จะมีตัวอย่างข้างต้นเราไม่ควรสรุปได้ว่าเวลาแฝงแคชนั้นขึ้นอยู่กับขนาดของแคช หากใครบางคนพยายามที่จะใช้แคช L1 ที่มีขนาดใหญ่อย่างน่าขันตรรกะที่ทำหน้าที่ดำเนินการที่จำเป็นทั้งหมดสำหรับการอ่านแคชก็จะมีขนาดใหญ่ ในบางจุดความล่าช้าในการแพร่กระจายผ่านตรรกะนี้ทั้งหมดจะยาวเกินไปและการดำเนินการที่ใช้เพียงรอบนาฬิกาเดียวก่อนจะต้องแบ่งออกเป็นหลายรอบนาฬิกา สิ่งนี้จะเพิ่มความล่าช้า
สมมติว่าแคชที่เป็นปัญหานำไปใช้ใน SRAM โมดูลที่ได้รับผลกระทบจากขนาดแคชมากที่สุดคือ: ตัวถอดรหัสแถวและ mux อย่างไรก็ตามแอมป์ความรู้สึกจะได้รับผลกระทบสำหรับแคชที่มีขนาดใหญ่มาก: แรงดันไฟฟ้าขนาดเล็กแกว่งบนบรรทัดบิตเนื่องจากความจุที่สูงขึ้นจะต้องใช้แอมป์ความรู้สึก "แข็งแกร่ง" กล่าวว่าผลกระทบที่รุนแรงที่สุดต่อความเร็วเชิงตรรกะจะถูกเพิ่มเข้ามาด้วยความจุของสายเชื่อมต่อ - ความจุนี้มีมากกว่าการพึ่งพาเชิงเส้นที่มีต่อขนาด SRAM รายละเอียดที่แน่นอนคือการใช้งานที่เฉพาะเจาะจง
ตอนนี้แคช L1 ค่อนข้างเสถียรในเวลาแฝงเนื่องจากประสิทธิภาพของมันสำคัญที่สุด หากคุณพยายามวิเคราะห์แคช L2 และ L3 รูปภาพจะมีความซับซ้อนมาก
ภาพที่มีความซับซ้อนมากขึ้นเมื่อคุณพิจารณาการประมวลผลแบบ multi-core - พวกเขามีเหตุผลเพิ่มเติมเพื่อให้มั่นใจว่าแคชการเชื่อมโยงกัน สิ่งนี้นำไปสู่ปัจจัยเพิ่มเติมที่มีผลต่อเวลาแฝงของการเข้าถึงแคช: ประวัติการเข้าถึงหน่วยความจำของคอร์ทั้งหมด
สรุป
ในขณะที่คุณสามารถเห็นคำถามของคุณอยู่ไกลจากเรื่องไม่สำคัญและไม่สามารถตอบได้อย่างสมบูรณ์ อย่างไรก็ตามหากคุณพิจารณาว่าแคชที่ประหยัดและมีประสิทธิภาพดีกว่าฉันจะบอกว่าขนาดของมันจะไม่ส่งผลกระทบต่อความหน่วงแฝงในทางที่มองเห็นได้
สำหรับผู้อ่านที่สนใจ:
การอ้างอิงนี้เป็นการวิเคราะห์เชิงลึกอย่างมากเกี่ยวกับปัจจัยด้านประสิทธิภาพของ CPU สมัยใหม่ มีเนื้อหาที่เกี่ยวข้องกับแคชจำนวนมากในนั้น ต้องมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์และหลักการสถาปัตยกรรมขนาดเล็ก (หรือ - สรุปที่ดีของหัวข้อที่จำเป็นต้องรู้เพื่อที่จะเป็นมืออาชีพในสาขานี้)
วิศวกรทดสอบแคช CPU ที่นี่ - Dave Tweed ในความคิดเห็นมีคำอธิบายที่ถูกต้อง แคชมีขนาดเพื่อเพิ่มประสิทธิภาพตามจุดราคาที่คาดหวังของ CPU โดยทั่วไปแคชนั้นเป็นผู้บริโภคพื้นที่ตายที่ใหญ่ที่สุดดังนั้นขนาดของมันจึงสร้างความแตกต่างทางเศรษฐกิจและประสิทธิภาพ
ดูที่หน้าตระกูล Ivy Bridge CPU ของ Intel: http://ark.intel.com/products/codename/29902/Ivy-Bridge
Xeon ระดับบนสุดมาพร้อมกับแคช 30MB มี 12 คอร์และค่าใช้จ่ายประมาณ $ 2,700 i3 ระดับล่างสุดที่มีแคช 3MB (i3-3217) มีราคาเพียง $ 500 สำหรับแล็ปท็อปทั้งหมด (ฉันหาไม่ได้ทีละรายการ)
Xeon นั้นให้ประสิทธิภาพสูงสุด แต่ก็มีค่าใช้จ่ายมากกว่าในการผลิตและทดสอบ i3 มีราคาถูกกว่ามาก แต่การแลกเปลี่ยนเป็นขนาดตายที่เล็กกว่าซึ่งแคชเป็นส่วนที่ใหญ่ที่สุด