ซีพียูสมัยใหม่ทำงานได้อย่างรวดเร็วอย่างเหลือเชื่อ พวกเขาสามารถทำงานได้ดีกว่า RAM ของระบบอย่างมาก ความไม่สมดุลของความเร็วระหว่าง CPU และหน่วยความจำจะทำให้โปรเซสเซอร์ของคุณมักจะไม่ได้ใช้งาน โดยรอให้ข้อมูลถูกส่งไปเพื่อให้สามารถดำเนินการตามกระบวนการต่อไปได้ เพื่อป้องกันไม่ให้สิ่งนี้เกิดขึ้น ทำให้ CPU ทำงานต่อได้เร็วขึ้นและเร็วขึ้น แคชของ CPU จะถูกใช้
แคช CPU เร่งความเร็ว CPU อย่างไร
แคชของ CPU ได้รับการออกแบบมาให้เร็วที่สุด จากนั้นจึงทำการแคชข้อมูลที่ CPU ร้องขอ แคชของ CPU มีการปรับความเร็วให้เหมาะสมในสามวิธี: เวลาแฝง แบนด์วิดท์ และความใกล้เคียง แคชของ CPU ทำงานที่เวลาแฝงที่ต่ำมาก ช่วยลดระยะเวลาที่ใช้ในการส่งคืนผลลัพธ์ ตัวอย่างเช่น Intel i9-9900k มีเวลาแฝงของแคช 0.8, 2.4 และ 11.1 นาโนวินาทีสำหรับแคช L1, L2 และ L3 ตามลำดับ ในการเปรียบเทียบ เวลาแฝงของ RAM ความเร็วสูงสมัยใหม่อยู่ที่ 14 นาโนวินาที
เคล็ดลับ: ระดับแคชจะอธิบายในรายละเอียดเพิ่มเติมในภายหลัง แต่เพียงแค่ใส่แคชเลเยอร์ที่ต่ำกว่าจะเร็วกว่า แต่มีราคาแพงกว่า ดังนั้นจึงมีความจุที่ต่ำกว่า นาโนวินาทีคือหนึ่งในพันล้านวินาที ดังนั้นเวลาแฝง 0.8 วินาทีหมายความว่าใช้เวลาน้อยกว่าหนึ่งในพันล้านวินาทีในการส่งกลับผลลัพธ์
ในแง่ของแบนด์วิดท์ แคชของ CPU ให้การปรับปรุงประสิทธิภาพที่เหนือกว่าที่เก็บข้อมูลแบบเดิมและ RAM ความเร็วในการอ่านของแคช L1 และ L3 สามารถสูงสุดที่ 2.3 TB/s และ 370 GB/s ตามลำดับ ในขณะที่แบนด์วิดท์ของ RAM โดยทั่วไปจะอยู่ที่ประมาณ 40 GB/s แบนด์วิดธ์ที่เพิ่มขึ้นนี้หมายความว่าแคช CPU สามารถถ่ายโอนข้อมูลไปยัง CPU ได้เร็วกว่า RAM มาก
เพื่อให้ได้ความเร็วสูงสุดที่เป็นไปได้ แคชของ CPU จะถูกสร้างขึ้นจริงในซิลิกอนของตัวประมวลผล CPU เอง ซึ่งจะช่วยลดระยะทางที่สัญญาณไฟฟ้าจำเป็นต้องเดินทาง ดังนั้นจึงรักษาเวลาแฝงให้ต่ำที่สุด ตัวอย่างเช่น เมื่อแคช L3 ถูกย้ายจากเมนบอร์ดไปยังไดย์ของ CPU เป็นครั้งแรก โปรเซสเซอร์แห่งเวลา (Pentium 4 EE) สามารถปรับปรุงประสิทธิภาพได้ 10-20%
สถาปัตยกรรมแคช CPU
โดยทั่วไปแล้ว CPU สมัยใหม่จะใช้แคช CPU สามชั้นที่มีป้ายกำกับว่า L1-3 โดยแคชที่มีหมายเลขต่ำกว่าจะอยู่ใกล้กับแกนประมวลผลของ CPU มากขึ้น เร็วขึ้น และมีราคาแพงกว่า คอร์ CPU แต่ละตัวใน CPU แบบมัลติคอร์มีแคช L1 ของตัวเอง โดยทั่วไปจะแบ่งออกเป็นสองส่วนคือ L1I และ L1D L1I ใช้เพื่อแคชคำสั่งสำหรับ CPU ในขณะที่ L1D ใช้เพื่อแคชข้อมูลที่จะปฏิบัติตามคำแนะนำเหล่านั้น
โดยทั่วไปแล้วแต่ละคอร์ของ CPU จะมีแคช L2 ของตัวเองบน CPU ที่ทันสมัย แคช L2 มีขนาดใหญ่และช้ากว่าแคช L1 และใช้เพื่อจัดเก็บข้อมูลที่ไม่พอดีกับแคช L2 เป็นหลัก การมีแคช L2 เฉพาะต่อคอร์ จะหลีกเลี่ยงความขัดแย้งของแคชได้ ความขัดแย้งของแคชเป็นที่ที่แกนต่างๆ ต่อสู้กันเพื่อเรียกร้องพื้นที่แคชสำหรับปริมาณงานของตนเอง ซึ่งอาจนำไปสู่การล้างข้อมูลสำคัญออกจากแคช
โดยทั่วไปแคช L3 จะใช้ร่วมกันระหว่างแกนประมวลผล CPU ทั้งหมดของโปรเซสเซอร์ อีกครั้ง แคช L3 นั้นช้ากว่าแคช L2 แต่ราคาถูกกว่าและใหญ่กว่า การให้แคชที่ใช้ร่วมกันช่วยลดปริมาณข้อมูลที่จะทำซ้ำในระดับที่ต่ำกว่าของแคชต่อคอร์
เคล็ดลับ: ตัวอย่างเช่น ในขนาดแคช i9-9900K ของ Intel มี 64KB L1 และแคช L2 256KB ต่อคอร์ (รวมเป็น 512KB L1 และ 2MB L2) นอกจากนี้ยังมีแคช L3 ที่ใช้ร่วมกันขนาด 16MB
แคช CPU ใช้อย่างไร
แคช CPU ทุกระดับใช้เพื่อเร่งประสิทธิภาพของโปรเซสเซอร์โดยการแคชข้อมูลจาก RAM เมื่อ CPU ขอข้อมูล โดยปกติแล้วจะค้นหาผ่านชั้นแคชก่อนเพื่อพยายามรับข้อมูลโดยเร็วที่สุด หากพบข้อมูลในแคช แสดงว่า CPU สามารถดำเนินการต่อไปได้ หากข้อมูลไม่อยู่ในแคช หรือที่เรียกว่าแคชพลาด ซีพียูจะต้องตรวจสอบ RAM และฮาร์ดไดรฟ์หากไม่มีข้อมูล เลเยอร์ที่เร็วกว่าจะถูกตรวจสอบก่อนเสมอเพื่อประสิทธิภาพสูงสุด
เพื่อช่วยให้ CPU มีข้อมูลที่ต้องการในแคชเมื่อต้องการ แคชจะพยายามเก็บข้อมูลล่วงหน้าที่ CPU อาจต้องการต่อไป ตัวอย่างเช่น หาก CPU ขอข้อมูลบางอย่างสำหรับรูปภาพ แคชนั้นกำลังแสดงแคชอาจพยายามแคชข้อมูลรูปภาพเพิ่มเติมล่วงหน้าเพื่อให้สามารถป้อนไปยัง CPU ได้โดยเร็วที่สุด