มัลติโปรเซสเซอร์และมัลติคอมพิวเตอร์
เราจะกล่าวถึงมัลติโปรเซสเซอร์และมัลติคอมพิวเตอร์ในบทนี้
การเชื่อมต่อระบบมัลติโปรเซสเซอร์
การประมวลผลแบบขนานจำเป็นต้องใช้การเชื่อมต่อระหว่างระบบที่มีประสิทธิภาพเพื่อการสื่อสารที่รวดเร็วระหว่างอินพุต / เอาท์พุตและอุปกรณ์ต่อพ่วงมัลติโปรเซสเซอร์และหน่วยความจำที่ใช้ร่วมกัน
ระบบบัสตามลำดับชั้น
ระบบบัสแบบลำดับชั้นประกอบด้วยลำดับชั้นของบัสที่เชื่อมต่อระบบต่างๆและระบบย่อย / ส่วนประกอบในคอมพิวเตอร์ รถบัสแต่ละคันประกอบด้วยสัญญาณควบคุมและสายไฟจำนวนหนึ่ง รถประจำทางที่แตกต่างกันเช่นรถประจำทางท้องถิ่นรถโดยสารด้านหลังและรถประจำทาง I / O ใช้เพื่อทำหน้าที่เชื่อมต่อโครงข่าย
รถประจำทางท้องถิ่นเป็นรถโดยสารที่ติดตั้งบนแผงวงจรพิมพ์ แบ็คเพลนบัสเป็นวงจรพิมพ์ที่ใช้ตัวเชื่อมต่อจำนวนมากเพื่อเสียบเข้ากับบอร์ดที่ใช้งานได้ บัสที่เชื่อมต่ออุปกรณ์อินพุต / เอาท์พุตเข้ากับระบบคอมพิวเตอร์เรียกว่าบัส I / O
สวิตช์คานและหน่วยความจำมัลติพอร์ต
เครือข่ายแบบสวิตช์ให้การเชื่อมต่อระหว่างกันแบบไดนามิกระหว่างอินพุตและเอาต์พุต ระบบขนาดเล็กหรือขนาดกลางส่วนใหญ่ใช้เครือข่ายคานขวาง เครือข่ายหลายขั้นตอนสามารถขยายไปยังระบบที่ใหญ่ขึ้นได้หากสามารถแก้ไขปัญหาเวลาแฝงที่เพิ่มขึ้นได้
ทั้งสวิตช์คานขวางและองค์กรหน่วยความจำแบบหลายพอร์ตเป็นเครือข่ายขั้นตอนเดียว แม้ว่าเครือข่ายขั้นตอนเดียวจะมีราคาถูกกว่าในการสร้าง แต่อาจต้องใช้บัตรหลายใบเพื่อสร้างการเชื่อมต่อบางอย่าง เครือข่ายหลายขั้นตอนมีกล่องสวิตช์มากกว่าหนึ่งขั้นตอน เครือข่ายเหล่านี้ควรสามารถเชื่อมต่ออินพุตกับเอาต์พุตใดก็ได้
เครือข่ายหลายขั้นตอนและการรวมกัน
เครือข่ายหลายขั้นตอนหรือเครือข่ายเชื่อมต่อแบบหลายขั้นตอนเป็นเครือข่ายคอมพิวเตอร์ความเร็วสูงซึ่งส่วนใหญ่ประกอบด้วยองค์ประกอบการประมวลผลที่ปลายด้านหนึ่งของเครือข่ายและองค์ประกอบหน่วยความจำที่ปลายอีกด้านหนึ่งซึ่งเชื่อมต่อกันด้วยองค์ประกอบการสลับ
เครือข่ายเหล่านี้ใช้เพื่อสร้างระบบมัลติโปรเซสเซอร์ที่ใหญ่ขึ้น ซึ่งรวมถึง Omega Network, Butterfly Network และอื่น ๆ อีกมากมาย
มัลติคอมพิวเตอร์
คอมพิวเตอร์หลายเครื่องเป็นสถาปัตยกรรม MIMD หน่วยความจำแบบกระจาย แผนภาพต่อไปนี้แสดงแบบจำลองแนวคิดของคอมพิวเตอร์หลายเครื่อง -
มัลติคอมพิวเตอร์เป็นเครื่องส่งข้อความซึ่งใช้วิธีการสลับแพ็กเก็ตเพื่อแลกเปลี่ยนข้อมูล ที่นี่โปรเซสเซอร์แต่ละตัวมีหน่วยความจำส่วนตัว แต่ไม่มีพื้นที่แอดเดรสส่วนกลางเนื่องจากโปรเซสเซอร์สามารถเข้าถึงได้เฉพาะหน่วยความจำภายในของตัวเอง ดังนั้นการสื่อสารจึงไม่โปร่งใส: ที่นี่โปรแกรมเมอร์ต้องใส่พื้นฐานการสื่อสารไว้ในโค้ดของตนอย่างชัดเจน
การไม่มีหน่วยความจำที่เข้าถึงได้ทั่วโลกถือเป็นข้อเสียเปรียบของคอมพิวเตอร์หลายเครื่อง สามารถแก้ไขได้โดยใช้สองรูปแบบต่อไปนี้ -
- หน่วยความจำเสมือนที่ใช้ร่วมกัน (VSM)
- หน่วยความจำเสมือนที่ใช้ร่วมกัน (SVM)
ในโครงร่างเหล่านี้โปรแกรมเมอร์แอปพลิเคชันจะถือว่าหน่วยความจำที่ใช้ร่วมกันขนาดใหญ่ซึ่งสามารถระบุได้ทั่วโลก หากจำเป็นการอ้างอิงหน่วยความจำที่สร้างโดยแอปพลิเคชันจะถูกแปลเป็นกระบวนทัศน์การส่งผ่านข้อความ
หน่วยความจำเสมือนที่ใช้ร่วมกัน (VSM)
VSM คือการนำฮาร์ดแวร์มาใช้ ดังนั้นระบบหน่วยความจำเสมือนของระบบปฏิบัติการจึงถูกนำมาใช้อย่างโปร่งใสบน VSM ดังนั้นระบบปฏิบัติการจึงคิดว่ามันทำงานบนเครื่องที่มีหน่วยความจำที่ใช้ร่วมกัน
หน่วยความจำเสมือนที่ใช้ร่วมกัน (SVM)
SVM เป็นการใช้งานซอฟต์แวร์ในระดับระบบปฏิบัติการพร้อมการสนับสนุนฮาร์ดแวร์จาก Memory Management Unit (MMU) ของโปรเซสเซอร์ ในที่นี้หน่วยของการแบ่งปันคือหน้าหน่วยความจำของระบบปฏิบัติการ
หากโปรเซสเซอร์ระบุตำแหน่งหน่วยความจำเฉพาะ MMU จะกำหนดว่าเพจหน่วยความจำที่เชื่อมโยงกับการเข้าถึงหน่วยความจำอยู่ในหน่วยความจำโลคัลหรือไม่ หากเพจไม่ได้อยู่ในหน่วยความจำในระบบคอมพิวเตอร์ปกติจะถูกสลับเข้าจากดิสก์โดยระบบปฏิบัติการ แต่ใน SVM ระบบปฏิบัติการจะดึงเพจจากโหนดระยะไกลซึ่งเป็นเจ้าของเพจนั้น
สามรุ่นของมัลติคอมพิวเตอร์
ในส่วนนี้เราจะพูดถึงเครื่องมัลติคอมพิวเตอร์สามรุ่น
ตัวเลือกการออกแบบในอดีต
ในขณะที่เลือกเทคโนโลยีโปรเซสเซอร์นักออกแบบหลายคอมพิวเตอร์จะเลือกโปรเซสเซอร์เม็ดกลางราคาประหยัดเป็นส่วนประกอบหลัก คอมพิวเตอร์แบบขนานส่วนใหญ่สร้างขึ้นด้วยไมโครโปรเซสเซอร์มาตรฐานนอกชั้นวาง หน่วยความจำแบบกระจายถูกเลือกสำหรับคอมพิวเตอร์หลายเครื่องแทนที่จะใช้หน่วยความจำแบบแบ่งใช้ซึ่งจะจำกัดความสามารถในการปรับขนาดได้ โปรเซสเซอร์แต่ละตัวมีหน่วยความจำภายในของตัวเอง
สำหรับโครงร่างการเชื่อมต่อโครงข่ายคอมพิวเตอร์หลายเครื่องมีการส่งผ่านข้อความเครือข่ายโดยตรงแบบจุดต่อจุดแทนที่จะเป็นเครือข่ายการสลับที่อยู่ สำหรับกลยุทธ์การควบคุมผู้ออกแบบคอมพิวเตอร์หลายเครื่องจะเลือกการดำเนินการ MIMD, MPMD และ SMPD แบบอะซิงโครนัส Cosmic Cube ของ Caltech (Seitz, 1983) เป็นคอมพิวเตอร์หลายเครื่องรุ่นแรกรุ่นแรก
การพัฒนาในปัจจุบันและอนาคต
คอมพิวเตอร์รุ่นต่อไปได้พัฒนาจากคอมพิวเตอร์มัลติเกรนขนาดกลางเป็นเม็ดละเอียดโดยใช้หน่วยความจำเสมือนที่ใช้ร่วมกันทั่วโลก คอมพิวเตอร์หลายเครื่องรุ่นที่สองยังคงใช้อยู่ในปัจจุบัน แต่ใช้หน่วยประมวลผลที่ดีกว่าเช่น i386, i860 เป็นต้นคอมพิวเตอร์รุ่นที่สองได้พัฒนาไปมาก
คอมพิวเตอร์รุ่นที่สามเป็นคอมพิวเตอร์รุ่นต่อไปที่จะใช้โหนดที่ใช้ VLSI แต่ละโหนดอาจมีโปรเซสเซอร์ 14-MIPS, ช่องเส้นทาง 20-Mbytes / s และ RAM 16 Kbytes ที่รวมอยู่ในชิปตัวเดียว
ระบบ Intel Paragon
ก่อนหน้านี้โหนดที่เป็นเนื้อเดียวกันถูกใช้เพื่อสร้างไฮเปอร์คิวบ์มัลติคอมพิวเตอร์เนื่องจากฟังก์ชันทั้งหมดมอบให้กับโฮสต์ ดังนั้นสิ่งนี้จึง จำกัด แบนด์วิดท์ I / O ดังนั้นเพื่อแก้ปัญหาขนาดใหญ่อย่างมีประสิทธิภาพหรือมีปริมาณงานสูงคอมพิวเตอร์เหล่านี้จึงไม่สามารถใช้งานได้ระบบ Intel Paragon ได้รับการออกแบบมาเพื่อเอาชนะปัญหานี้ มันเปลี่ยนคอมพิวเตอร์หลายเครื่องให้เป็นแอ็พพลิเคชันเซิร์ฟเวอร์ที่มีการเข้าถึงหลายผู้ใช้ในสภาพแวดล้อมเครือข่าย
กลไกการส่งข้อความ
กลไกการส่งข้อความในเครือข่ายคอมพิวเตอร์หลายเครื่องต้องการการสนับสนุนฮาร์ดแวร์และซอฟต์แวร์พิเศษ ในส่วนนี้เราจะพูดถึงแผนการบางอย่าง
โครงร่างการกำหนดเส้นทางข้อความ
ในคอมพิวเตอร์หลายเครื่องที่มีโครงร่างการจัดเก็บและส่งต่อแพ็กเก็ตเป็นหน่วยที่เล็กที่สุดในการส่งข้อมูล ในเครือข่ายที่กำหนดเส้นทางรูหนอนแพ็กเก็ตจะถูกแบ่งออกเป็น flits ความยาวแพ็คเก็ตถูกกำหนดโดยโครงร่างการกำหนดเส้นทางและการใช้งานเครือข่ายในขณะที่ความยาวของฟลิตจะได้รับผลกระทบจากขนาดเครือข่าย
ใน Store and forward routingแพ็คเก็ตเป็นหน่วยพื้นฐานของการส่งข้อมูล ในกรณีนี้แต่ละโหนดจะใช้บัฟเฟอร์แพ็กเก็ต แพ็กเก็ตถูกส่งจากโหนดต้นทางไปยังโหนดปลายทางผ่านลำดับของโหนดกลาง เวลาแฝงเป็นสัดส่วนโดยตรงกับระยะห่างระหว่างต้นทางและปลายทาง
ใน wormhole routingการส่งจากโหนดต้นทางไปยังโหนดปลายทางจะกระทำผ่านลำดับของเราเตอร์ ทั้งหมดของแพ็คเก็ตเดียวกันจะถูกส่งในลำดับที่แยกกันไม่ออกในรูปแบบท่อ ในกรณีนี้เฉพาะส่วนหัวเท่านั้นที่รู้ว่าแพ็คเก็ตกำลังไปที่ใด
Deadlock และ Virtual Channels
แชนเนลเสมือนเป็นการเชื่อมโยงตรรกะระหว่างสองโหนด มันถูกสร้างขึ้นโดย flit บัฟเฟอร์ในโหนดต้นทางและโหนดตัวรับและช่องทางกายภาพระหว่างพวกเขา เมื่อมีการจัดสรรช่องสัญญาณทางกายภาพสำหรับคู่หนึ่งบัฟเฟอร์ต้นทางจะจับคู่กับบัฟเฟอร์ตัวรับหนึ่งตัวเพื่อสร้างช่องสัญญาณเสมือน
เมื่อช่องทั้งหมดถูกครอบครองโดยข้อความและไม่มีช่องใดเลยในวงจรนั้นเป็นอิสระสถานการณ์การหยุดชะงักจะเกิดขึ้น เพื่อหลีกเลี่ยงปัญหานี้จำเป็นต้องปฏิบัติตามแผนการหลีกเลี่ยงการหยุดชะงัก