การสื่อสารระหว่าง CPU และ RAM มันเกิดขึ้นได้อย่างไร?

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

ในบทความนี้ เราจะไม่อธิบายว่า RAM ประเภทใดดีกว่ากัน or คุณสมบัติของแต่ละคน แต่โปรเซสเซอร์สื่อสารกับโปรเซสเซอร์เพื่อให้สามารถรันโปรแกรมได้

การสื่อสารระหว่าง CPU และ RAM

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

เหตุใดโปรเซสเซอร์จึงต้องการการสื่อสารกับ RAM?

กระบวนการดึงข้อมูล

ขั้นตอนที่ ซีพียู ใช้คำสั่งถัดไปเพื่อดำเนินการจาก RAM เรียกว่า“ Fetch” และเป็นหนึ่งในสามขั้นตอนที่ประกอบขึ้นเป็นวงจรคำสั่ง: Fetch-Decode-Execute ซึ่งเราจะพูดถึงในบทความแรกเท่านั้นในขณะที่อีก สองจะถูกทิ้งไว้อีกครั้งเนื่องจากหน่วยความจำ RAM ไม่เข้ามาแทรกแซงยกเว้นการเขียนผลลัพธ์กลับ

โปรเซสเซอร์ทุกตัวมีชุดของรีจิสเตอร์ที่เชื่อมต่อกันซึ่งทำหน้าที่จับคำสั่งต่อไปนี้โดยมีดังต่อไปนี้:

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

หน่วยความจำ DRAM คืออะไร?

บิตเซลล์

พื้นที่ ประเภทของหน่วยความจำที่ใช้สำหรับ RAM ทั้งที่เป็นแรมของระบบและแรมวิดีโอหรือ VRAM คือ หน่วยความจำ DRAM หรือ 1T-DRAM . ในหน่วยความจำประเภทนี้แต่ละบิตจะถูกเก็บไว้ในไฟล์ การรวมกันของตัวเก็บประจุและทรานซิสเตอร์ แทนที่จะเป็นทรานซิสเตอร์หลายตัวเช่น SRAM จึงใช้ชื่อว่า 1T-DRAM

หน่วยความจำ RAM ทั้งหมดที่ใช้ในพีซีในปัจจุบัน: DDR4, GDDR6, HBM2e, LPDDR4 ฯลฯ เป็นความทรงจำประเภท DRAM ในขณะที่หน่วยความจำภายในของโปรเซสเซอร์แคชการลงทะเบียนและแพดเป็นแบบ SRAM

กล่าวว่าการรวมกันของตัวเก็บประจุและทรานซิสเตอร์เรียกว่า a บิตเซลล์ , เมื่อชาร์จตัวเก็บประจุของ bitcell แล้วจะถูกตีความว่าข้อมูลที่อยู่ในเซลล์บิตนั้นเป็น 1 เมื่อไม่มีการชาร์จไฟจะถูกตีความว่าเป็น 0

อาร์เรย์ DRAM

bitcells ถูกจัดเรียงในเมทริกซ์ซึ่งใช้พินแอดเดรสเพื่อเข้าถึงดังนี้

  • ครึ่งแรกของบิตเลือกแถวที่เราต้องการเข้าถึง
  • ครึ่งหลังของบิตแอดเดรสประกอบด้วยคอลัมน์ที่เราต้องการเข้าถึง

สำหรับสิ่งนี้มีตัวถอดรหัสไบนารีระหว่างเมทริกซ์ของ bitcells และบัสกำหนดแอดเดรสที่อนุญาตให้เลือก bitcell ที่เหมาะสม

หมุดติดต่อสำหรับการสื่อสารกับแรม

แรม modulo memoria

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

  • ที่อยู่ ต้นสน : โดยปกติจะทำเครื่องหมายจาก A0 ถึง AN โดยที่ N คือจำนวนพินและเท่ากับจำนวนบิตแอดเดรสซึ่งจะเป็น 2 ^ N เสมอ
  • หมุดข้อมูล : เป็นที่ที่ข้อมูลถูกส่งไปและกลับจาก RAM
  • เขียนเปิดใช้งาน: หากพินทำงานอยู่การถ่ายโอนข้อมูลจะดำเนินการไปยังหน่วยความจำการเขียนในทางกลับกันหากไม่ได้ใช้งานอยู่จะกระทำต่อโปรเซสเซอร์โดยอ่าน

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

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

ตัวถอดรหัสไบนารีและบทบาทในการสื่อสารกับ RAM

ตัวถอดรหัส Binario ตัวถอดรหัสไบนารีเป็นอุปกรณ์อิเล็กทรอนิกส์ที่ใช้กันทั่วไปโดยประกอบด้วยจากอินพุต n บิตอินพุตจะถูกเลือกจากความเป็นไปได้ที่แตกต่างกัน 2 ^ n สร้างขึ้นโดยการวาง n NOT gates ไว้ที่ 2 ^ n AND gates

ในหน่วยความจำ RAM การกำหนดแอดเดรสจะถูกส่งเป็นสองรอบ: อันดับแรกจะถูกส่งแถวที่จะเข้าถึงแล้วคอลัมน์แทนที่จะส่งพร้อมกัน

เหตุผลนี้มีคำอธิบายที่ง่ายมาก: จินตนาการว่าคุณมีโปรเซสเซอร์ที่มี 16 บิตแอดเดรสที่เชื่อมต่อกับชิปหน่วยความจำ RAM ตัวเดียว ถ้าตัวถอดรหัสไบนารีเป็น 16 บิตก็ต้องใช้ 16 NOT gates และ 65536 AND gates ในทางตรงกันข้ามตัวถอดรหัสไบนารี 8 บิตมี 8 NOT gates และ 256 AND gates ซึ่งง่ายต่อการใช้งานมาก

นี่คือเหตุผลว่าทำไมการกำหนดแอดเดรสไปยัง RAM จึงมีสองขั้นตอน

ธนาคารหน่วยความจำ

บันคอสเมมโมเรีย

ข้อมูลใน RAM คือ ไม่ได้จัดเก็บอย่างต่อเนื่อง แต่อยู่คนละธนาคารภายในชิปเดียวกัน แต่ละธนาคารมี bitcells มากมาย แต่ถ้าเราต้องการส่งข้อมูลเช่น n บิตเราจะต้องมี n อาร์เรย์ของ bitcell ซึ่งแต่ละอันเชื่อมต่อกับพินของบัสข้อมูล

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

ขนาดมาตรฐานของแบงกิ้งในหน่วยความจำ RAM คือ 8 บิตดังนั้นหน่วยความจำสูงสุดในการกำหนดแอดเดรสจึงนับเป็น 2 ^ n ไบต์เสมอ จริงๆแล้วบัส 16, 32, 64 บิต ฯลฯ สิ่งที่พวกเขาทำคือส่งข้อมูลของที่อยู่หน่วยความจำที่ต่อเนื่องหลายรายการโดยเริ่มจากตัวแรก

การสื่อสารระหว่าง RAM และ CPU

พิสตัส PCB

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

  1. เลือกคอลัมน์ (ที่อยู่)
  2. เลือกแถว (Addressing)
  3. การรับส่งข้อมูล

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

  • Strobe การเข้าถึงคอลัมน์: พินนี้จะเปิดใช้งานเมื่อเราระบุไปยังหน่วยความจำ RAM ว่าเรากำลังระบุคอลัมน์ที่เราต้องการเข้าถึง
  • Strobe การเข้าถึงแถว :: พินนี้จะเปิดใช้งานเมื่อเราระบุไปยังหน่วยความจำ RAM ว่าเรากำลังระบุแถวที่เราต้องการเข้าถึง

การดำเนินการทั้งสองสามารถสรุปได้ดังนี้:

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

ด้วยวิธีนี้คุณจะได้รับแนวคิดโดยประมาณว่าการสื่อสารระหว่างโปรเซสเซอร์และ RAM ทำงานอย่างไร