ตัวควบคุมหน่วยความจำภายในซีพียู (Integrate Memory Controller Unit)
โดยปกติซีพียูจะทำการติดต่อกับหน่วยความจำบนเมนบอร์ด หรือที่เราเรียกสั่นๆกันว่าแรม (RAM) ผ่านตัวควบคุมหน่วยความจำที่อยู่ในชิพเซ็ตนอร์ทบริดจ์(NorthBridge) บนเมนบอร์ด ซึ่งทำให้เสียเวลาในการที่ซีพียูจะนำข้อมูลจากแรมมาประมวลผล เพราะข้อมูลต้องวิงผ่านชิพเซตก่อนที่จะมาถึงซีพียูครับ
การนำตัวควบคุมหน่วยความจำมาไว้ในตัวซีพียูจะทำให้ซีพียูสามารถนำข้อมูลจากหน่วยความจำมาประมวลผลได้เร็วขึ้น เพราะข้อมูลจากแรมไม่ต้องวิ่งผ่านชิพเซต แต่เข้าถึงซีพียูโดยตรงเลยครับ
Intel QuickPath Interconnect
QuickPath Interconnect คือ เทคโนโลยีที่ช่วยเพิ่มความกว้าง และลดการหน่วงเวลาของระบบบัสที่ใช้ในการเชื่อมต่อระหว่างอุปกรณ์ต่างๆเช่น ชีพียู และ I/O HUb ครับ
ภาพแสดงการรับส่งข้อมูลแบบ 2 ทางของ เทคโนโลยี QuickPath
จุดเด่นของ QuickPath Interconnect
1. เทคโลยี QuickPath มีการแยกเส้นทาง(Lanes) สำหรับการใช้ส่งข้อมูล(Trasfer Data) และเส้นทางที่ใช้สำหรับรับข้อมูล (receive Data) ออกจากกัน เป็น 2 เส้นทาง ทำให้การรับ และการส่งข้อมูลสะดวกรวดเร็วขึ้นเพราะ สามารถรับและส่งข้อมูลได้พร้อมๆกันในเวลาเดียวกัน เป็นการช่วยลดปัญหาขอขวดที่เกิดขึ้น จากการส่งข้อมูลระหว่าง I/O Hub และซีพียู
ข้างบนแสดงการเชื่อมต่อระหว่างซีพียู และ I/O Hub แบบ Point to Point
2. QuickPath ได้นำการเชื่อมต่อแบบ Point-to-Point มาใช้ ทำให้ซีพียูแต่ล่ะตัวสามารถเชื่อมต่อกันได้โดยตรง การเชื่อมต่อกันโดยตรงของซีพียูนั้น ทำให้ซีพียูสามารถทำงานร่วมกันได้เร็วขึ้น และยังทำให้ I/O Hub สามารถทำการรับส่งข้อมูลกับซีพียูได้เร็วขึ้นด้วยครับ
ภาพแสดงการทำงานของ NUMA
3. NUMA (Non Uniform Memory Access)
เมื่อมีการเชื่อมต่อแบบ Point-To-Point ก็จะสามารถทำให้ซีพียูแต่ละตัวทำการค้นหาข้อมูลที่ตัวเองต้องการนำมาประมวลได้จาก แรมของตัวเองและจากแรมของซีพียูตัวอื่นๆที่อยู่บนบอร์ดเดียวกันได้ด้วย
ตัวอย่างเช่น (กรุณาดูภาพประกอบที่อยู่ข้างล่าง)
CPU0 ไม่มีข้อมูลที่ต้องการประมวลอยู่ในหน่วยความจำแคชของมันเลย ซึ่ง CPU0 สามารถหาข้อมูลที่ตัวเองต้องการได้ดังนี้
Step ที่ 1(กระบวนการต่อไปนี้จะเกิดขึ้นพร้อมๆกัน)
- CPU0 ทำการค้นหาข้อมูลจาก RAM ในส่วนตัวเอง
- CPU0 ข้อให้ CPU1 ทำการตรวจสอบว่าใน Ram ของ CPU1 มีข้อมูลที่ CPU 0 ต้องการหรือไม่
Step ที่ 2 (กระบวนการต่อไปนี้จะเกิดขึ้นตามลำดับ)
- CPU 0 ไม่พบข้อมูลในข้อมูลในแรมของตัวเอง
- CPU 0 ข้อให้ CPU 1 ส่งข้อมูลที่ CPU 0 ต้องการ และ CPU 1 มีอยู่ใน RAM มาให้
จากขั้นตอนข้างบนเราจะเห็นว่าหาก CPU0 ไม่เจอข้อมูลในแรมของตัวเอง ก็อาจจะไม่จำเป็นต้องไปหาข้อมูลจากฮาร์ดดิสก์ หรืออุปกรณ์บันทึกข้อมูลประเภทอื่นๆที่ช้ากว่าแรมก็ได้ เพราะว่า ข้อมูลที่ CPU0 ต้องการอาจจะอยู่ในแรมของ CPU1 ก็ได้ ซึ่งการดึงข้อมูลจาก RAM ของซีพียูข้างเขียงมาใช้ จะใช้เวลาน้อยกว่า การดึงข้อมูลจากฮาร์ดดิสก์ หรืออุปกรณ์บันทึกข้อมูลประเภทอื่นๆที่ช้ากว่าแรม
สรุป การที่ซีพียูสามารถเชื่อมต่อกันได้โดยตรงนั้น สามารถทำให้ซีพียูมีโอกาสที่จะได้ข้อมูลที่จะนำมาประมวลได้เร็วขึ้นครับ แต่ผมคิดว่า NUMA นี้คงจะเป็นประโยชน์กับเครื่องคอมพิวเตอร์ระดับ Workstation และ Server ที่มีการใช้ซีพียูหลายๆตัวมากเครื่อง PC ที่ส่วนใหญ่ใช่ซีพียูเพียงตัวเดียวครับ