CPU เขียนข้อมูลลงใน ram ได้อย่างไร


10

คำถามของฉันคือ CPU เขียนข้อมูลไปยัง ram อย่างไร

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

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

ขอบคุณล่วงหน้า,

-Faken

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

คำตอบ:


11

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

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

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

แน่นอนข้างต้นมุ่งสู่โปรเซสเซอร์ Pentium โปรเซสเซอร์อื่นสามารถทำสิ่งต่าง ๆ ได้ ยกตัวอย่างเช่นตัวประมวลผล Cell ของ PS3 สถาปัตยกรรมพื้นฐานของ Cell CPU เป็นหนึ่งใน PowerPC core ที่มีหลายคอร์เซลล์ (บน PS3 มีแปดเซลล์ซึ่งหนึ่งในนั้นถูกปิดใช้งานเสมอเพื่อปรับปรุงผลตอบแทน) แต่ละเซลล์มีหน่วยความจำท้องถิ่นของตัวเองเรียงลำดับของแคช L1 ซึ่งไม่เคยเขียนไปยัง RAM ระบบ สามารถถ่ายโอนข้อมูลระหว่าง RAM ท้องถิ่นและ RAM ระบบโดยใช้การถ่ายโอน DMA (การเข้าถึงหน่วยความจำโดยตรง) เซลล์สามารถเข้าถึง RAM ของระบบและ RAM ของเซลล์อื่นโดยใช้สิ่งที่ดูเหมือนว่าจะเป็นการอ่านและเขียนตามปกติ แต่นี่เป็นเพียงทริกเกอร์การถ่ายโอน DMA (ดังนั้นจึงช้าและควรหลีกเลี่ยงจริงๆ) แนวคิดเบื้องหลังระบบนี้คือเกมไม่ได้เป็นเพียงโปรแกรมเดียว

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

Skizz


2

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

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