แบนด์วิดท์ที่ใช้ใน UMA ไปยังหน่วยความจำถูก จำกัด เนื่องจากใช้คอนโทรลเลอร์หน่วยความจำเดี่ยว แรงจูงใจหลักของการถือกำเนิดของเครื่อง NUMA คือการเพิ่มแบนด์วิดท์ที่มีให้กับหน่วยความจำโดยใช้ตัวควบคุมหน่วยความจำหลายตัว
แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | UMA | NUMA |
---|---|---|
ขั้นพื้นฐาน | ใช้คอนโทรลเลอร์หน่วยความจำเดียว | หน่วยความจำหลายตัว |
ประเภทรถประจำทางที่ใช้ | เดี่ยวหลายและคาน | ต้นไม้และลำดับชั้น |
เวลาในการเข้าถึงหน่วยความจำ | เท่ากัน | เปลี่ยนไปตามระยะทางของไมโครโปรเซสเซอร์ |
เหมาะสำหรับ | แอปพลิเคชั่นวัตถุประสงค์และการแบ่งปันเวลาทั่วไป | แอปพลิเคชันตามเวลาจริงและตามเวลาที่สำคัญ |
ความเร็ว | ช้าลง | ได้เร็วขึ้น |
แบนด์วิดธ์ | ถูก จำกัด | มากกว่า UMA |
คำจำกัดความของ UMA
ระบบ UMA (Uniform Memory Access) เป็นสถาปัตยกรรมหน่วยความจำที่ใช้ร่วมกันสำหรับมัลติโปรเซสเซอร์ ในรุ่นนี้มีการใช้หน่วยความจำเดียวและเข้าถึงได้โดยโปรเซสเซอร์ทั้งหมดนำเสนอระบบมัลติโปรเซสเซอร์ด้วยความช่วยเหลือของเครือข่ายเชื่อมต่อโครงข่าย โปรเซสเซอร์แต่ละตัวมีเวลาเข้าถึงหน่วยความจำเท่ากัน (เวลาแฝง) และความเร็วในการเข้าถึง มันสามารถใช้งานได้ทั้งบัสเดี่ยวบัสหลายบัสหรือสวิตช์คาน เนื่องจากมีการเข้าถึงหน่วยความจำที่แบ่งใช้แบบสมดุลจึงเป็นที่รู้จักกันว่าระบบ SMP (Symmetric multiprocessor)
การออกแบบทั่วไปของ SMP แสดงไว้ด้านบนซึ่งแต่ละโปรเซสเซอร์เชื่อมต่อกับแคชเป็นครั้งแรกจากนั้นแคชจะเชื่อมโยงกับบัส ในที่สุดรถบัสเชื่อมต่อกับหน่วยความจำ สถาปัตยกรรม UMA นี้ลดการแย่งชิงสำหรับบัสผ่านการดึงคำแนะนำโดยตรงจากแคชแยกแต่ละตัว นอกจากนี้ยังมีความน่าจะเป็นที่เท่าเทียมกันสำหรับการอ่านและการเขียนตัวประมวลผลแต่ละตัว ตัวอย่างทั่วไปของโมเดล UMA ได้แก่ เซิร์ฟเวอร์ Sun Starfire, เซิร์ฟเวอร์ Compaq alpha และ HP v series
คำจำกัดความของ NUMA
NUMA (การเข้าถึงหน่วยความจำไม่สม่ำเสมอ) ยังเป็นรุ่นมัลติโปรเซสเซอร์ซึ่งโปรเซสเซอร์แต่ละตัวเชื่อมต่อกับหน่วยความจำเฉพาะ อย่างไรก็ตามส่วนเล็ก ๆ ของหน่วยความจำเหล่านี้รวมกันเพื่อให้พื้นที่ที่อยู่เดียว จุดหลักที่ต้องไตร่ตรองที่นี่คือไม่เหมือนกับ UMA เวลาเข้าถึงหน่วยความจำขึ้นอยู่กับระยะทางที่วางตัวประมวลผลซึ่งหมายถึงเวลาในการเข้าถึงหน่วยความจำที่แตกต่างกัน จะช่วยให้การเข้าถึงตำแหน่งหน่วยความจำใด ๆ โดยใช้ที่อยู่ทางกายภาพ
ตามที่กล่าวไว้ข้างต้นสถาปัตยกรรม NUMA มีวัตถุประสงค์เพื่อเพิ่มแบนด์วิดท์ที่มีให้กับหน่วยความจำและใช้หน่วยความจำหลายตัว มันรวมแกนเครื่องมากมายเป็น " โหนด " ที่แต่ละคอร์มีตัวควบคุมหน่วยความจำ ในการเข้าถึงหน่วยความจำภายในเครื่อง NUMA แกนจะดึงหน่วยความจำที่จัดการโดยตัวควบคุมหน่วยความจำโดยโหนด ในขณะที่เข้าถึงหน่วยความจำระยะไกลซึ่งจัดการโดยคอนโทรลเลอร์หน่วยความจำอื่นแกนจะส่งการร้องขอหน่วยความจำผ่านลิงค์เชื่อมต่อโครงข่าย
สถาปัตยกรรม NUMA ใช้โครงสร้างแผนผังเครือข่ายบัสและลำดับชั้นเพื่อเชื่อมต่อบล็อกหน่วยความจำและโปรเซสเซอร์ BBN, TC-2000, SGI Origin 3000, Cray เป็นตัวอย่างบางส่วนของสถาปัตยกรรม NUMA
ความแตกต่างที่สำคัญระหว่าง UMA และ NUMA
- รุ่น UMA (หน่วยความจำที่ใช้ร่วมกัน) ใช้ตัวควบคุมหน่วยความจำหนึ่งหรือสองตัว เมื่อเทียบกับ NUMA สามารถมีตัวควบคุมหน่วยความจำหลายตัวในการเข้าถึงหน่วยความจำ
- บัสเดี่ยวหลายและ crossbar ใช้ในสถาปัตยกรรม UMA ตรงกันข้าม NUMA ใช้ลำดับชั้นและประเภทของบัสและการเชื่อมต่อเครือข่าย
- ใน UMA เวลาในการเข้าถึงหน่วยความจำสำหรับโปรเซสเซอร์แต่ละตัวจะเท่ากันในขณะที่ NUMA เวลาในการเข้าถึงหน่วยความจำจะเปลี่ยนไปตามระยะทางของหน่วยความจำจากโปรเซสเซอร์ที่เปลี่ยนแปลง
- แอพพลิเคชั่นวัตถุประสงค์ทั่วไปและการแบ่งปันเวลาเหมาะสำหรับเครื่อง UMA ในทางตรงกันข้ามแอปพลิเคชันที่เหมาะสมสำหรับ NUMA นั้นเป็นศูนย์กลางแบบเรียลไทม์และเวลาที่สำคัญ
- ระบบขนานแบบอิง UMA ทำงานช้ากว่าระบบ NUMA
- เมื่อพูดถึงแบนด์วิดธ์ UMA มีแบนด์วิดท์ จำกัด ในทางตรงกันข้าม NUMA มีแบนด์วิดท์มากกว่า UMA
ข้อสรุป
สถาปัตยกรรม UMA ให้เวลาแฝงโดยรวมเท่ากันกับโปรเซสเซอร์ที่เข้าถึงหน่วยความจำ สิ่งนี้ไม่มีประโยชน์มากเมื่อเข้าถึงหน่วยความจำภายในเนื่องจากเวลาแฝงจะเหมือนกัน ในอีกทางหนึ่ง NUMA แต่ละหน่วยประมวลผลมีหน่วยความจำเฉพาะซึ่งจะช่วยลดเวลาแฝงเมื่อเข้าถึงหน่วยความจำภายใน เวลาแฝงจะเปลี่ยนไปตามระยะห่างระหว่างโปรเซสเซอร์และการเปลี่ยนแปลงหน่วยความจำ (เช่นแบบไม่สม่ำเสมอ) อย่างไรก็ตาม NUMA ได้ปรับปรุงประสิทธิภาพเมื่อเทียบกับสถาปัตยกรรม UMA