อยู่ที่ไหนแคช L1, L2 และ L3 อยู่ในคอมพิวเตอร์?


29

อยู่ที่ไหนแคช L1, L2 และ L3 อยู่ในคอมพิวเตอร์?

ฉันรู้ว่าเราใช้แคชเพื่อเพิ่มประสิทธิภาพโดยการเลือกข้อมูลและคำแนะนำจากแคชมากกว่าหน่วยความจำหลัก

ต่อไปนี้เป็นคำถามของฉัน

  1. ที่ตั้งของ L1 Cache อยู่ที่ไหน . อยู่ในชิปซีพียู?
  2. ที่ตั้งแคช L2 อยู่ที่ไหน

  3. ที่ตั้งแคช L3 อยู่ที่ไหน อยู่ในคณะกรรมการแม่?

ฉันคิดว่าโปรเซสเซอร์ SMP ล่าสุดใช้แคช 3 ระดับดังนั้นฉันจึงต้องการเข้าใจลำดับชั้นระดับแคชและสถาปัตยกรรมของพวกเขา


1
ลำดับชั้นที่แน่นอนแตกต่างกันระหว่างโปรเซสเซอร์ที่แตกต่างกัน เพื่อหาลำดับชั้นแคชในเครื่องของคุณเองคุณสามารถใช้ยูทิลิตี้ sysinternal ของ CoreInfo.exe ( technet.microsoft.com/en-us/sysinternals/cc835722.aspx )

2
ยิ่งแคชยิ่งใหญ่ (L3> L2> 1) ยิ่งอยู่ไกลจากแกนตัวเอง (เวลาแฝงการเข้าถึง L3 สูงกว่า L1 เป็นต้น)

คำตอบ:


46

เริ่มต้นด้วยสิ่งนี้:

ฉันคิดว่าโปรเซสเซอร์ SMP ล่าสุดใช้แคช 3 ระดับดังนั้นฉันจึงต้องการเข้าใจลำดับชั้นระดับแคชและสถาปัตยกรรมของพวกเขา

ในการทำความเข้าใจแคชคุณจำเป็นต้องรู้บางสิ่ง:

CPU มีการลงทะเบียน ค่าในที่สามารถนำมาใช้โดยตรง ไม่มีอะไรเร็วกว่านี้

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

(ภาพเวเฟอร์ในจินตนาการที่มี 500 ซม. 2ฉันตัด 10 ชิปจากนั้นแต่ละชิปขนาด 50 ซม. 2หนึ่งในนั้นถูกทำลายฉันทิ้งมันและฉันทิ้งชิปทำงาน 9 ตัวตอนนี้ใช้เวเฟอร์เดียวกันและฉันตัด ชิป 100 อันจากมันแต่ละอันมีขนาดเล็กสิบครั้งหนึ่งในนั้นถ้าหักฉันทิ้งชิปที่ชำรุดและฉันเหลือ 99 ชิปที่ใช้งานนั่นคือเศษเสี้ยวของการสูญเสียที่ฉันมี ชิปฉันต้องถามราคาที่สูงกว่ามากกว่าราคาสำหรับซิลิกอนพิเศษ)

นี่คือหนึ่งในเหตุผลที่เราต้องการชิปขนาดเล็กและราคาไม่แพง

อย่างไรก็ตามยิ่งแคชอยู่ใกล้กับ CPU มากเท่าไหร่ก็จะสามารถเข้าถึงได้เร็วขึ้น

นอกจากนี้ยังอธิบายได้ง่าย สัญญาณไฟฟ้าเดินทางใกล้ความเร็วแสง ที่เร็ว แต่ก็ยังมีความเร็ว จำกัด CPU สมัยใหม่ทำงานร่วมกับนาฬิกา GHz นั่นก็รวดเร็ว ถ้าฉันใช้ CPU 4 GHz แล้วสัญญาณไฟฟ้าสามารถเดินทางประมาณ 7.5 ซม. ต่อนาฬิกาติ๊ก นั่นคือ 7.5 ซม. เป็นเส้นตรง (ชิปคืออะไรก็ได้ยกเว้นการเชื่อมต่อที่ตรง) ในทางปฏิบัติคุณจะต้องน้อยกว่า 7.5 ซม. อย่างมากเนื่องจากไม่อนุญาตให้ชิปแสดงข้อมูลตามที่ร้องขอและสัญญาณเดินทางกลับเมื่อใดก็ได้

บรรทัดล่างเราต้องการให้แคชใกล้เคียงกับร่างกายมากที่สุด ซึ่งหมายถึงชิปขนาดใหญ่

ทั้งสองจำเป็นต้องมีความสมดุล (ประสิทธิภาพเทียบกับต้นทุน)

แคช L1, L2 และ L3 อยู่ที่ไหนในคอมพิวเตอร์?

สมมติว่าพีซีในรูปแบบเฉพาะฮาร์ดแวร์ (เฟรมหลักแตกต่างกันมากรวมถึงประสิทธิภาพเทียบกับยอดเงินคงเหลือ)

IBM XT
4.77Mhz ดั้งเดิมหนึ่ง: ไม่มีแคช CPU เข้าถึงหน่วยความจำโดยตรง การอ่านจากหน่วยความจำจะเป็นไปตามรูปแบบนี้:

  • CPU วางที่อยู่ที่ต้องการอ่านบนบัสหน่วยความจำและยืนยันค่าสถานะการอ่าน
  • หน่วยความจำใส่ข้อมูลลงบนบัสข้อมูล
  • CPU คัดลอกข้อมูลจากบัสข้อมูลไปยังรีจิสเตอร์ภายใน

80286 (1982)
ยังไม่มีแคช การเข้าถึงหน่วยความจำไม่ใช่ปัญหาใหญ่สำหรับรุ่นความเร็วต่ำกว่า (6Mhz) แต่รุ่นที่เร็วกว่าวิ่งได้ถึง 20Mhz และมักจำเป็นต้องหน่วงเวลาเมื่อเข้าถึงหน่วยความจำ

คุณจะได้รับสถานการณ์เช่นนี้:

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

นั่นเป็นขั้นตอนพิเศษที่ใช้ในการรอหน่วยความจำ ในระบบที่ทันสมัยที่สามารถเป็น 12 ขั้นตอนซึ่งเป็นเหตุผลที่เรามีแคช

80386 : (1985)
CPU เร็วขึ้น ทั้งต่อนาฬิกาและโดยการวิ่งด้วยความเร็วสัญญาณนาฬิกาที่สูงขึ้น
RAM เร็วขึ้น แต่ไม่เร็วเท่าซีพียู
เป็นผลให้ต้องรอสถานะเพิ่มเติม เมนบอร์ดบางคนทำงานรอบนี้โดยการเพิ่มแคช (ที่จะเป็น 1 เซนต์แคชระดับ) บนเมนบอร์ด

ขณะนี้การอ่านจากหน่วยความจำเริ่มต้นด้วยการตรวจสอบว่าข้อมูลอยู่ในแคชแล้ว ถ้าเป็นจะอ่านจากแคชเร็วกว่ามาก หากไม่ใช่ขั้นตอนเดียวกันตามที่อธิบายไว้กับ 80286

80486 : (1989)
นี่เป็น CPU ตัวแรกของรุ่นนี้ที่มีแคชบน CPU อยู่
มันเป็นแคชแบบครบวงจร 8KB ซึ่งหมายความว่ามันจะใช้สำหรับข้อมูลและคำแนะนำ

รอบคราวนี้จะได้รับร่วมกันที่จะนำ 256KB ของหน่วยความจำแบบคงที่อย่างรวดเร็วบนเมนบอร์ดเป็น 2 ครั้งแคชระดับ ดังนั้น 1 เซนต์แคชระดับบน CPU 2 ครั้งแคชระดับบนเมนบอร์ด

มาเธอร์บอร์ด 486 ตัวพร้อมตำแหน่ง CPU และระดับแคชที่ 2

80586 (1993)
586 หรือ Pentium-1 ใช้แคชแบ่งระดับ 1 8 KB สำหรับข้อมูลและคำแนะนำแต่ละรายการ แคชถูกแบ่งเพื่อให้สามารถปรับข้อมูลและแคชคำสั่งแยกต่างหากสำหรับการใช้งานเฉพาะ คุณยังมียังเร็วมาก 1 ขนาดเล็กเซนต์แคชใกล้ CPU, และ 2 ที่มีขนาดใหญ่ แต่ช้าครั้งแคชบนเมนบอร์ด (ในระยะทางกายภาพที่มากขึ้น)

ในพื้นที่ Pentium 1 เดียวกันที่ Intel ผลิตPentium Pro ('80686') ชิปนี้มีขนาด 256Kb, 512KB หรือ 1MB บนบอร์ดแคช มันมีราคาแพงกว่ามากซึ่งอธิบายได้ง่ายด้วยภาพต่อไปนี้

รูปภาพของ Pentium Pro CPU รุ่นแคช 256KB

ขอให้สังเกตว่าครึ่งหนึ่งของพื้นที่ในชิปนั้นถูกใช้โดยแคช และนี่สำหรับรุ่น 256KB แคชมากขึ้นเป็นไปได้ในทางเทคนิคและบางรุ่นที่ผลิตด้วยแคชขนาด 512KB และ 1MB ราคาตลาดสำหรับสิ่งเหล่านี้สูง

โปรดสังเกตด้วยว่าชิปนี้มีสองตัว เป็นหนึ่งเดียวกับ CPU ที่เกิดขึ้นจริงและ 1 เซนต์แคชและตายครั้งที่สองกับ 256KB 2 ครั้งแคช

Pentium-2

Pentium 2 เป็นแกนกลางของ Pentium เพื่อเหตุผลทางด้านเศรษฐกิจไม่มีแคชอันดับ 2 ที่อยู่ใน CPU แต่สิ่งที่จะขาย AA CPU เรา PCB ที่มีชิปแยกต่างหากสำหรับ CPU (และ 1 เซนต์แคช) และ 2 ครั้งแคช

ในฐานะที่เป็นความก้าวหน้าทางเทคโนโลยีและเราจะเริ่มวางสร้างชิปที่มีส่วนประกอบที่มีขนาดเล็กจะได้รับเป็นไปได้ทางการเงินที่จะนำ 2 ครั้งแคชกลับมาอยู่ในการตายที่แท้จริงของ CPU อย่างไรก็ตามยังมีการแยก ได้อย่างรวดเร็วมาก 1 เซนต์แคชซุกถึงซีพียู กับหนึ่ง 1 เซนต์แคชต่อคอร์ CPU และขนาดใหญ่ได้อย่างรวดเร็ว แต่น้อย 2 ครั้งแคชติดกับหลัก

รูปภาพของ Pentium 2 'CPU' (ทั้งที่มีและไม่มีปก)

Pentium-3
Pentium-4
สิ่งนี้ไม่เปลี่ยนแปลงสำหรับ pentium-3 หรือ pentium-4

ในช่วงเวลานี้เราถึงขีด จำกัด ในทางปฏิบัติเกี่ยวกับความเร็วที่เราสามารถนาฬิกาซีพียู 8086 หรือ 80286 ไม่ต้องการการระบายความร้อน Pentium-4 ที่ทำงานที่ 3.0GHz ผลิตความร้อนได้มากและใช้พลังงานมากพอที่จะใช้ประโยชน์ได้มากกว่าในการใส่ซีพียูสองตัวแยกต่างหากบนเมนบอร์ดแทนที่จะเป็นแบบเร็ว

(ซีพียู 2.0 GHz สองตัวจะใช้พลังงานน้อยกว่าซีพียู 3.0 GHz เหมือน ๆ กัน แต่ก็สามารถทำงานได้มากกว่า)

สิ่งนี้สามารถแก้ไขได้ในสามวิธี:

  1. ทำให้ซีพียูมีประสิทธิภาพมากขึ้นดังนั้นจึงทำงานได้เร็วขึ้นด้วยความเร็วเท่ากัน
  2. ใช้ CPU หลายตัว
  3. ใช้ CPU หลายตัวใน 'ชิป' เดียวกัน

1) เป็นกระบวนการต่อเนื่อง มันไม่ใช่เรื่องใหม่และมันจะไม่หยุด

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

3) ต้องการซีพียูที่มี 'cpu core' หลายตัวที่สร้างไว้ในชิปตัวเดียว (จากนั้นเราเรียกว่า CPU เป็น CPU แบบดูอัลคอร์เพื่อเพิ่มความสับสนขอบคุณการตลาด :))

วันนี้เราแค่อ้างถึงซีพียูว่าเป็น 'แกน' เพื่อหลีกเลี่ยงความสับสน

ตอนนี้คุณได้รับชิปเช่น pentium-D (duo) ซึ่งโดยทั่วไปแล้วจะมีสองแกน Pentium-4 บนชิปตัวเดียวกัน

Early pentium-D (2 P4 คอร์)

จำภาพเก่าของ pentium-Pro ได้หรือไม่ ด้วยขนาดแคชขนาดใหญ่?
ดูพื้นที่ขนาดใหญ่สองแห่งในภาพนี้ไหม

ปรากฎว่าเราสามารถแชร์แคชครั้งที่ 2 ระหว่างแกน CPU ทั้งสอง ความเร็วจะลดลงเล็กน้อย แต่ 512KiB ที่ใช้ร่วมกัน 2 ครั้งแคชมักจะเร็วกว่าการเพิ่มสองอิสระ 2 ครั้งแคชระดับของขนาดเพียงครึ่งหนึ่ง

นี่เป็นสิ่งสำคัญสำหรับคำถามของคุณ

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

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

ดังนั้นในรุ่นหลังคุณจะเห็นแคชระดับ 2 ที่แชร์

รูปภาพของ Core2 CPU ที่เปิดอยู่

หากคุณกำลังเขียนโปรแกรมสำหรับซีพียูสมัยใหม่คุณมีสองตัวเลือก:

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


ฉันรู้ว่าฉันยังไม่ได้พูดถึงแคช L3 แต่มันไม่ได้แตกต่างกัน แคช L3 ทำงานในลักษณะเดียวกัน ใหญ่กว่า L2 ช้ากว่า L2 และมันก็มักจะใช้ร่วมกันระหว่างแกน ถ้ามีอยู่ก็จะใหญ่กว่าแคช L2 มาก (ถ้าไม่มีมันจะไม่เข้าท่า) และมักจะถูกแชร์กับคอร์ทั้งหมด

modernCPUwithL3.png


ช่างเป็นอะไรที่ยอดเยี่ยมมาก!
lukas.pukenis

"แต่แคชตัวที่ 2 ที่แชร์กันขนาด 512MB คือ" ฉันคิดว่ามันคือ 512KB
lukas.pukenis

ช่างเป็นคำตอบที่ยอดเยี่ยมมาก! ขอบคุณสำหรับการแบ่งปันผู้ชาย
samsamara

14

แคชนั้นเป็นตัวประมวลผลภายใน บางส่วนจะถูกแชร์ระหว่างคอร์บางตัวนั้นขึ้นอยู่กับการนำไปใช้ แต่ทั้งหมดอยู่บนชิป รายละเอียดบางอย่าง: โปรเซสเซอร์Intel® Core ™ i7 ซึ่งถ่ายที่นี่ :

  • คำสั่ง 32-KB และ 32-KB data first-level cache (L1) สำหรับแต่ละคอร์
  • คำสั่งที่แบ่งใช้ 256-KB แคชข้อมูลระดับสอง (L2) สำหรับแต่ละคอร์
  • การเรียนการสอนที่แชร์ 8-MB / ข้อมูลแคชระดับสุดท้าย (L3), ใช้ร่วมกันในทุกคอร์

รูปถ่ายของชิปประมวลผล (ขออภัยไม่ทราบรุ่นที่แน่นอน) คุณจะเห็นว่าแคชใช้พื้นที่สำคัญบนชิป:

ข้อความแสดงแทน


1
ถ้าโดยชิปคุณหมายถึงซิลิคอนดายระดับแคชสุดท้ายสามารถปิดชิปได้ เช่น zEC12 ของ IBM ( en.wikipedia.org/wiki/IBM_zEC12_(microprocessor) ) ใช้โมดูลมัลติชิพที่มีชิปโปรเซสเซอร์หกตัวและชิปแคชที่ใช้ร่วมกันสองตัวที่มีแคช L4 Crystal Well ของ Intelยังมีแคชชิป L4 (เช่นการใช้ eDRAM)
Paul A. Clayton

5

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

Nehalem Die (http://www.legitreviews.com/article/824/1/)


5

ทุกวันนี้แคชทั้งหมดอยู่ในซีพียูตาย บางครั้งพวกเขาเคยอยู่บนแผงวงจรหลักหรือบนบอร์ดลูกซีพียู แต่ฉันไม่คิดว่าจะมีโปรเซสเซอร์ปัจจุบันใดที่ใช้แคชแคชแบบชิป


1
+1 สำหรับส่วนวันนี้ ในสมัยก่อนมันแตกต่างกัน (เช่นแคช L2 ในเมนบอร์ดในเวลา Cyrix / Pentium-1)
Hennes

0

ฉันไม่แน่ใจเกี่ยวกับ L3 แต่ L1 / L2 ตั้งอยู่บน CPU เสมอ ลำดับชั้นฉลาดโดยทั่วไป L1 มักจะเป็นแคชคำสั่ง L2 และ L3 เป็นแคชข้อมูล


L1 สามารถแชร์แคชได้ (คำสั่งและแคชข้อมูล) นอกจากนี้ยังมี CPU ที่มีข้อมูล L1 และแคชคำสั่ง L1 และแคช L2 นั้นไม่ได้อยู่บน CPU เสมอ (แม้แต่ L1 ก็ไม่จำเป็นต้องอยู่บน CPU แต่ฉันจำได้แค่คอมพิวเตอร์หนึ่งเครื่องที่เป็นเคส)
Hennes

0

L1 ตั้งอยู่บนชิป CPU, L2 ตั้งอยู่ระหว่างหน่วยประมวลผลและหน่วยความจำหลัก แต่มีจุดที่จะรู้ว่าในบางระบบ L2 ตั้งอยู่บนชิป CPU ในขณะที่ระบบอื่น ๆ L2 ตั้งอยู่บนบอร์ดแม่เองและ L3 อยู่ตลอดเวลา ตั้งอยู่บนชิปบอร์ด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.