มีความสอดคล้องกันระหว่างขนาดแคชและเวลาในการตอบสนองการเข้าถึงหรือไม่?


9

มีความสอดคล้องกันระหว่างขนาดแคชและเวลาในการตอบสนองการเข้าถึงหรือไม่? ทุกสิ่งอื่นเท่ากันแคชที่ใหญ่กว่าทำงานช้าลงหรือไม่? ถ้าเป็นเช่นนั้นทำไม ช้าเท่าไหร่


1
หากคุณสนใจที่จะสำรวจการแลกเปลี่ยนบางอย่างในการออกแบบแคช HP ได้พัฒนาเครื่องมือ CACTIซึ่งให้การประมาณเวลาแฝงและการใช้พลังงานตามลักษณะการออกแบบ อินเตอร์เฟซเว็บสำหรับรุ่น 5.3 นอกจากนี้ยังมี
Paul A. Clayton

คำตอบ:


5

รายการในมือของคุณเข้าถึงได้เร็วกว่าสิ่งของในกระเป๋าซึ่งเข้าถึงได้เร็วกว่าสิ่งของในตู้ของคุณซึ่งเข้าถึงได้ง่ายกว่าสิ่งของที่ Digikey ที่เก็บข้อมูลแต่ละประเภทที่ต่อเนื่องที่ฉันระบุมีขนาดใหญ่กว่า แต่ช้ากว่ารุ่นก่อนหน้า

ดังนั้นเรามามีสิ่งที่ดีที่สุดของทั้งสองโลกกันเถอะทำให้มือของคุณใหญ่เท่าคลัง Digikey! ไม่มันไม่ทำงานเพราะตอนนี้พวกเขาไม่ได้ส่งมอบอะไรอีกแล้ว พวกเขาเป็นลูกกระสุนปืนใหญ่ที่ชั่งน้ำหนักคุณลง

เหตุผลการจัดเก็บข้อมูลที่มีขนาดใหญ่จะช้าในการเข้าถึงเป็นระยะ พื้นที่เก็บข้อมูลขนาดใหญ่นั้นอยู่ไกลจากคุณโดยเฉลี่ย สิ่งนี้เป็นจริงสำหรับรายการทางกายภาพและสำหรับ RAM

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

ในกรณีของ RAM ขีด จำกัด ความเร็วคือความเร็วในการแพร่กระจายสัญญาณไฟฟ้าล่าช้าการแพร่กระจายของประตูและไดรเวอร์และการใช้งานทั่วไปของนาฬิกาแบบซิงโครนัส แม้ว่าเงินไม่ใช่วัตถุและคุณสามารถซื้อได้มากเท่าที่คุณต้องการเทคโนโลยี RAM ที่เร็วที่สุดในปัจจุบันคุณจะไม่ได้รับประโยชน์จากมันทั้งหมด จัดวาง L1 แคชขนาด A4 หากคุณต้องการและวาง CPU ของคุณตรงกลาง เมื่อซีพียูต้องการเข้าถึงหน่วยความจำบางส่วนที่มุมหน่วยความจำจริง ๆ แล้วมันจะใช้เวลาเป็นนาโนวินาทีสำหรับการร้องขอเพื่อไปที่นั่นและนาโนวินาทีเพื่อให้กลับมา และนั่นไม่รวมถึงการแพร่กระจายทั้งหมดที่ล่าช้าและผ่านและประตูและไดรเวอร์ นั่นจะทำให้ CPU ของคุณช้าลงอย่างจริงจัง

เนื่องจากตรรกะการซิงโครนัสนั้นง่ายต่อการออกแบบมากกว่าตรรกะแบบอะซิงโครนัส RAM หนึ่งบล็อกจะถูกโอเวอร์คล็อกด้วยนาฬิกาเดียวกัน หากต้องการทำให้หน่วยความจำทั้งหมดเป็นแคช L1 คุณจะต้องทำการจับเวลาทั้งล็อตด้วยนาฬิกาช้าเพื่อรับมือกับช่วงเวลาที่เลวร้ายที่สุดของตำแหน่งที่อยู่ไกลที่สุดในหน่วยความจำ ซึ่งหมายความว่าตำแหน่งหน่วยความจำที่ห่างไกลกำลังถือตำแหน่งโลคัลไว้ซึ่งอาจทำให้นาฬิกาเร็วขึ้น ดังนั้นสิ่งที่ดีที่สุดที่ควรทำคือจัดโซนหน่วยความจำ ส่วนที่ใกล้ที่สุดและเล็กที่สุดของแคชจะใช้นาฬิกาที่เร็วที่สุด ส่วนที่ใกล้ที่สุดและเล็กที่สุดถัดไปจะใช้นาฬิกาที่ช้ากว่าเล็กน้อย ฯลฯ

และตอนนี้คุณมีแคช L1 & L2 และ RAM

ซึ่งนำเราไปสู่เหตุผลต่อไปการใช้พลังงาน

แคชใช้พลังงานจำนวนมากจริง ๆ ไม่เพียง แต่หน่วยความจำเท่านั้น แต่ตรรกะทั้งหมดที่อยู่รอบ ๆ ซึ่งจัดการการแมประหว่างบรรทัดแคชและหน่วยความจำหลัก การเพิ่มประสิทธิภาพของตรรกะพิเศษนี้อาจส่งผลให้การใช้พลังงานเพิ่มขึ้น ตอนนี้สำหรับบางแอปพลิเคชั่น (อุปกรณ์เคลื่อนที่ฝังตัว) คุณมีแรงจูงใจมากขึ้นในการทำให้แคชเล็ก

ดูการแลกเปลี่ยนการออกแบบแคชสำหรับกำลังและการปรับแต่งประสิทธิภาพ: กรณีศึกษา (Ching-Long Su และ Alvin M. Despain, 1995)


1
+1 ฉันชอบคำตอบของคุณ ชมคะแนนที่เกี่ยวข้องทั้งหมดและสำรองข้อมูลด้วย อ่านง่าย
Gustavo Litovsky

นั่นถูกต้องใช่ไหม? คำตอบคือ premised ในความล่าช้าในความเร็วแสงหนึ่งนิ้วเมื่อเทียบกับหลายนิ้ว?
Andyz Smith

1
คำตอบนี้ดีเหมือนภาพรวมทั่วไป แต่ฉันคิดว่ามันไม่ตอบคำถามเริ่มต้น เราไม่ควรเป็นผู้เชี่ยวชาญ uArch เพื่อตระหนักว่าแคชขนาด A4 ไม่สามารถใช้งานได้จริง ฉันเชื่อว่า OP ถามเกี่ยวกับขนาดแคชที่เพิ่มขึ้นอย่างสมเหตุสมผลและการเพิ่มขึ้นนี้จะมีผลต่อเวลาแฝงของการเข้าถึงแคชอย่างไร
Vasiliy

1
@AndyzSmith - มันเป็นการพูดเกินจริงขั้นต้นและการทำให้เข้าใจง่ายเกินไป แต่ฉันคิดว่ามันได้รับประเด็นทั่วไปในบางประเด็นที่แคช L1 ไม่สามารถขยายได้อย่างไม่มีกำหนด ในบางจุดกฎของฟิสิกส์เข้ามาและทำให้ช้าลง
Rocketmagnet

ความล่าช้าของสัญญาณบนชิปไม่ใช่ความเร็วของแสงมันเป็นค่าที่ซับซ้อนมากขึ้นคำนวณโดยพิจารณาจากสุทธิ / สายบวกความจุประตูขับเคลื่อนเป็นเครือข่าย RLC มันไม่นานพอที่จะเป็นสายส่ง ยิ่งตาข่ายกั้นประตูยิ่งยาวก็ยิ่งจำเป็นต้องใส่มากขึ้นหรือคุณต้องใส่บัฟเฟอร์เป็นทวนซ้ำ ซึ่งทั้งหมดนี้ใช้พลังงานมากกว่าด้วย
pjc50

4

คำตอบสำหรับคำถามของคุณคือ: ขึ้นอยู่กับปัจจัยเชิงสถาปัตยกรรมหลายอย่าง

ดูตัวอย่างการอ้างอิงนี้ - เวลาแฝงการเข้าถึง L1 ที่วัดได้สำหรับโปรเซสเซอร์ทั้งหมดที่อยู่ในการทดสอบคือ 4 รอบนาฬิกา ความถี่ของโปรเซสเซอร์นั้นเกือบจะเหมือนกัน แต่ขนาดของ L1 cache นั้นแตกต่างกันมากถึง 3 เท่า

เหตุผลสำหรับเวลาแฝงคงที่ถึง L1 ในโปรเซสเซอร์ที่แตกต่างกันหลายรายการในการทดสอบด้านบนนั้นมีรากฐานมาจากไมโครสถาปัตยกรรมของแคช: การเข้าถึงแคชเอง (การดึงข้อมูลจากหน่วยความจำ) ใช้เวลาเพียงรอบเดียว มีการใช้รอบเพิ่มเติมสามรอบเพื่อถอดรหัสการเข้าถึงการตรวจสอบการมีอยู่ของข้อมูลและอื่น ๆ ... จำนวนของขั้นตอนเพิ่มเติมนั้นเหมือนกันทั่วทั้งโปรเซสเซอร์ในการทดสอบดังนั้นเวลาในการเข้าถึงจึงเท่ากัน

แม้จะมีตัวอย่างข้างต้นเราไม่ควรสรุปได้ว่าเวลาแฝงแคชนั้นขึ้นอยู่กับขนาดของแคช หากใครบางคนพยายามที่จะใช้แคช L1 ที่มีขนาดใหญ่อย่างน่าขันตรรกะที่ทำหน้าที่ดำเนินการที่จำเป็นทั้งหมดสำหรับการอ่านแคชก็จะมีขนาดใหญ่ ในบางจุดความล่าช้าในการแพร่กระจายผ่านตรรกะนี้ทั้งหมดจะยาวเกินไปและการดำเนินการที่ใช้เพียงรอบนาฬิกาเดียวก่อนจะต้องแบ่งออกเป็นหลายรอบนาฬิกา สิ่งนี้จะเพิ่มความล่าช้า

สมมติว่าแคชที่เป็นปัญหานำไปใช้ใน SRAM โมดูลที่ได้รับผลกระทบจากขนาดแคชมากที่สุดคือ: ตัวถอดรหัสแถวและ mux อย่างไรก็ตามแอมป์ความรู้สึกจะได้รับผลกระทบสำหรับแคชที่มีขนาดใหญ่มาก: แรงดันไฟฟ้าขนาดเล็กแกว่งบนบรรทัดบิตเนื่องจากความจุที่สูงขึ้นจะต้องใช้แอมป์ความรู้สึก "แข็งแกร่ง" กล่าวว่าผลกระทบที่รุนแรงที่สุดต่อความเร็วเชิงตรรกะจะถูกเพิ่มเข้ามาด้วยความจุของสายเชื่อมต่อ - ความจุนี้มีมากกว่าการพึ่งพาเชิงเส้นที่มีต่อขนาด SRAM รายละเอียดที่แน่นอนคือการใช้งานที่เฉพาะเจาะจง

ตอนนี้แคช L1 ค่อนข้างเสถียรในเวลาแฝงเนื่องจากประสิทธิภาพของมันสำคัญที่สุด หากคุณพยายามวิเคราะห์แคช L2 และ L3 รูปภาพจะมีความซับซ้อนมาก

ภาพที่มีความซับซ้อนมากขึ้นเมื่อคุณพิจารณาการประมวลผลแบบ multi-core - พวกเขามีเหตุผลเพิ่มเติมเพื่อให้มั่นใจว่าแคชการเชื่อมโยงกัน สิ่งนี้นำไปสู่ปัจจัยเพิ่มเติมที่มีผลต่อเวลาแฝงของการเข้าถึงแคช: ประวัติการเข้าถึงหน่วยความจำของคอร์ทั้งหมด

สรุป

ในขณะที่คุณสามารถเห็นคำถามของคุณอยู่ไกลจากเรื่องไม่สำคัญและไม่สามารถตอบได้อย่างสมบูรณ์ อย่างไรก็ตามหากคุณพิจารณาว่าแคชที่ประหยัดและมีประสิทธิภาพดีกว่าฉันจะบอกว่าขนาดของมันจะไม่ส่งผลกระทบต่อความหน่วงแฝงในทางที่มองเห็นได้

สำหรับผู้อ่านที่สนใจ:

การอ้างอิงนี้เป็นการวิเคราะห์เชิงลึกอย่างมากเกี่ยวกับปัจจัยด้านประสิทธิภาพของ CPU สมัยใหม่ มีเนื้อหาที่เกี่ยวข้องกับแคชจำนวนมากในนั้น ต้องมีความเข้าใจอย่างลึกซึ้งเกี่ยวกับสถาปัตยกรรมคอมพิวเตอร์และหลักการสถาปัตยกรรมขนาดเล็ก (หรือ - สรุปที่ดีของหัวข้อที่จำเป็นต้องรู้เพื่อที่จะเป็นมืออาชีพในสาขานี้)


ขอบคุณสำหรับคำตอบ! คำตอบของคุณและ @ Rocketmagnet นั้นค่อนข้างสมบูรณ์ หวังว่าฉันจะเลือกได้ทั้ง ฉันได้รับเอกสารอ้างอิงแล้วและสนใจในหัวข้อเมื่อเร็ว ๆ นี้ดังนั้นคำถาม
ivanmp

เหตุใดตรรกะในการดำเนินการอ่านจึงขึ้นอยู่กับขนาดแคช .. เหตุใดจึง 'ยาวเกินไป' ในจำนวนที่อยู่ที่เฉพาะเจาะจงจึงมีการข้ามแบบไม่ต่อเนื่อง หรือถ้าไม่มีการกระโดดแบบไม่ต่อเนื่องสูตรการเข้าถึงเวลากับขนาดคืออะไร
Andyz Smith

คุณสามารถระบุได้อย่างชัดเจนว่าส่วนประกอบใด: "การเกิดซ้ำที่สำคัญจากนั้นคือ adder, ตัวถอดรหัส, บรรทัดคำ SRAM, บรรทัดบิต SRAM, บิตของ SRAM, ความรู้สึกแอมป์, พวงมาลัยพาวเวอร์ muxes และบายพาส muxes." ทำให้ตรรกะมีขนาดใหญ่หรือไม่ en.wikipedia.org/wiki/Sum_addressed_decoder
Andyz Smith

@AndyzSmith สูตรการเข้าถึงเวลาเทียบกับขนาดสามารถให้ได้โดยคนที่ออกแบบและจำลองแคชเท่านั้น ในการอ้างอิงที่ฉันโพสต์คุณสามารถเห็นมันใช้เวลา 4 รอบนาฬิกาเพื่อรับข้อมูลจาก L1 แต่ไม่มีใครพยายามประเมินกางเกงทรงหลวมที่เกี่ยวข้องกับการอ่านเหล่านี้ การขอสูตรเป็นวิธีที่ไม่เป็นคำถามเชิงปฏิบัติหากไม่มีข้อมูลเฉพาะของการนำไปใช้เพิ่มเติมจำนวนมาก
Vasiliy

1
@AndyzSmith สมมติว่าแคชที่เป็นปัญหาถูกนำไปใช้ใน SRAM ซึ่งโมดูลที่ได้รับผลกระทบจากขนาดแคชส่วนใหญ่ ได้แก่ : ตัวถอดรหัสแถวและ mux อย่างไรก็ตามแอมป์ความรู้สึกจะได้รับผลกระทบสำหรับแคชที่มีขนาดใหญ่มาก: แรงดันไฟฟ้าขนาดเล็กแกว่งบนบรรทัดบิตเนื่องจากความจุที่สูงขึ้น -> แอมป์ความรู้สึก "แข็งแกร่ง" กล่าวว่าผลกระทบที่รุนแรงที่สุดต่อความเร็วเชิงตรรกะจะถูกเพิ่มโดยตัวเก็บประจุแบบเชื่อมต่อระหว่างสาย - ความจุนี้มีมากกว่าการพึ่งพาแบบเชิงเส้นของขนาด SRAM อีกครั้งรายละเอียดเป็นการใช้งานที่เฉพาะเจาะจง
Vasiliy

3

วิศวกรทดสอบแคช 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 มีราคาถูกกว่ามาก แต่การแลกเปลี่ยนเป็นขนาดตายที่เล็กกว่าซึ่งแคชเป็นส่วนที่ใหญ่ที่สุด


2
คำตอบที่น่าสนใจมาก แต่ตามที่ระบุไว้ในคำถามฉันไม่ได้มองหาคำตอบที่ประหยัดชัดเจนชัดเจน สิ่งที่ฉันพยายามเข้าใจนั้นเกี่ยวข้องกับประสิทธิภาพที่เกี่ยวข้องในการเข้าถึงแคชขนาดใหญ่ (> 512 MB) ขนาดจะลดประสิทธิภาพของแคชหรือไม่
ivanmp
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.