ระบบมัลติโปรเซสเซอร์(Multiprocessor System)

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

1.ทำให้การแสดงผลทำได้เร็วขึ้น หรือการประมวลผลเร็วขึ้น แต่ไม่ใช่ว่าการมี CPU 2 ตัวจะทำให้ประมวลผลได้เร็วขึ้น 2 เท่า

2.ประหยัดกว่าการใช้ระบบหน่วยประมวลผลเดี่ยวหลายเครื่อง กล่าวคือราคาของคอมพิวเตอร์แบบ 2 CPU จะถูกกว่าคอมพิวเตอร์แบบ 1 CPU จำนวน 2 เครื่อง

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



ระบบหลายโปรเซสเซอร์ (multi-processor system) หมายถึง ระบบคอมพิวเตอร์ที่มีซีพียูหลายตัวช่วยกันทำงาน คำว่าโปรเซสเซอร์ จึงหมายถึงซีพียูเท่านั้น มิได้หมายถึงโปรเซสเซอร์อื่นๆ เช่น โปรเซสควบคุมอุปกรณ์ รอบข้าง เป็นต้น โดยทั่วไปถ้าเราแบ่งแยกระบบคอมพิวเตอร์ตามการทำงานของโปรเซสเซอร์ เราสามารถแบ่งได้ 4 ประเภท คือ SISD (single instruction single-data stream), MISD (multiple instruction single data stream), SIMD (single instruction-multiple data stream), และ MIMD (multiple instruction multiple data stream)

1. SISD ( Single Instruction stream, Single Data stream )
2. SIMD ( Single Instruction stream, Multiple Data streams )
3. MISD ( Multiple Instruction streams, Single Data stream )
4. MIMD ( Multiple Instruction streams, Multiple Data streams )
5. Taxonomy อื่นๆ

SISD Computer Computer
ทั่วๆไปที่มี 1 processor ถูกจัดให้เป็นระบบ SISD โดยแต่ละคำสั่งการคำนวน ( arithmetic instruction ) จะทำงานบนข้อมูลที่ได้รับมาจาก 1 สายของสมาชิกข้อมูล Supercomputer ในอดีตเช่น Control data coporation 6600 และ 7600 จะถูกจัดอยู่ในระบบนี้เช่นเดียวกันกับ Mircocomputer ในรุ่นเดียวกัน

Vector processor เช่น Cray-1 และลูกหลานของมันมักถูกจัดให้อยู่ในระบบ SIMD แม้ว่าจะสมควรกว่าที่จะที่จะจัดมันให้อยู่ในระบบ SISD Vector processor นั้นมีประสิทธิภาพสูงเนื่องจากมันส่งสมาชิกของ Vector อย่างต่อเนื่องไปยังชิ้น hardware ต่างๆที่ทำหน้าที่อย่างอิสระในแต่ละ phase ของการทำงานที่ยุ่งยาก ตัวอย่างเช่นในการบวกเลข 2 ตัวที่ต้องมี exponent เหมือนกัน processor จะต้องเลื่อน Mantissa และลด exponent ของตัวเลจตัวหนึ่งจะกระทั่ง exponet ของทั้งคู่นั้นมีค่าเท่ากันเพื่อให้สามารถบวกกันได้ Vector processor จะถูกสร้างขึ้นอย่างพิเศษเพื่อให้การส่งสายของข้อมูลไปยัง processor เป็นไปด้วยอัตราที่สูงจนกระทั่งขณะที่ส่วนหนึ่งของ processor กำลังบวก Mantissa ของตัวเลขทั้งคู่อยู่ อีกส่วนหนึ่งก็จะคอยปรับ Exponent

ความขัดแย้งในการแยกประเภทของ Vector machine นั้นขึ้นอยู่กับว่าแต่ละคนมองกานไหลของข้อมูลอย่างไร การมองแบบ static หรือ " Snapshot " ของ processor ขณะที่กำลังประมวลผล Vector อยุ่นั้นจะแสดงให้เห็นว่าหลายส่วนของข้อมูลกำลังถูกปฏิบัตการ ณ เวลาหนึ่ง และภายใต้มุมมองนี้เราอาจจะรียกมันเป็น 1 instruction ( Vector add ) ทำให้เกิดหลายการปฏิบัตการบนข้อมูล ( Data operation ) และเตรื่องก็จะถูกจัดเป็นระบบ SIMD ในขณะที่ถ้าเรามองแบบ dynamic ก็จะมีเพียงแค่ 1 สายของข้อมูล และสมาชิกของสายนี้จะถูกส่งอย่างต่อเนื่องไปยัง pipeline นึง ( ที่กระทำการบวกในตัวอย่างนี้ ) ข้อโต้แย้งสำหรับการไม่จัด Vector machine ให้อยู่ในระบบ SIMD นั้นจะได้แสดงให้เห็นเมื่อเรารู้ว่า SIMD machine กระทำการบวก Vector อย่างไร

MISD Computer
มีตัวอย่างของเครื่องในระบบนี้น้อยมาก โดยไม่มีเครื่องทางการค้าใดเลยที่ประสบความสำเร็จ หรือที่มีผลกระทบทางด้านวิทยาศาสตร์ Computer ระบบหนึ่งที่ตรงกับคำจำกัดความของ MISD คือ Systolic Array ซึ่งก็คือ Network ของสมาชิกคำนวนเล็กๆ ( Computing element ) ที่ต่อกันเป็น grid ในแต่ละ Cycle สมาชิกก็จะอ่านข้อมูลมาจากสมาชิกที่อยู่ข้างเคียวแล้วกระหำงานที่ไม่ซับซ้อน ( เช่นบวกข้อทูลที่เพิ่งเข้ามากับค่าที่เก็บไว้ก่อนแล้ว ) แล้วจึงเตรียมข้อมูลเพื่อที่จะเขียนไปยังสมาชิกข้างเคียงใน step ต่อไป

บางคนอาจจะจัด Pipelined Vector processor ให้อยู่ในระบบนี้ด้วยเช่นกัน เพราะแต่ละ step ของ pipeline จะเกี่ยวข้องกับการทำงานที่ไม่เหมือนกันกับข้อมูลที่ไหลผ่านแต่ละ stage ของ pipeline และยังมี Pipelined processorที่แต่ละ stage สามารถ programได้ นั่นคือ functionในแต่ละสถานที่ใน pipelineสามารถเปลี่ยนแปลงได้ แม้ว่า pipeline stage จะไท่ได้ดึงข้อมูลการทำงานมาจากหน่วยความจำภายในของมัน จึงเป็นการยากที่จะจัดมันเป็น " Processor "

Other Taxonomy
นอกเหนือจากความไม่มีสาระของระบบ MISD และความยากลำบากในการแยกจำพวกของ Vector processor ยังมีจุดอ่อนอื่นๆอีกของ Flynn's Taxonomy โดยในระบบ MISD array ของ processor ทุกรูปแบบจะถูกรวมอยู่ในระบบเดียวกันโดยไม่สนใจว่ามันมีรูปแบบการเชื่อมต่อของ processor ซึ่งกันและกันอย่างไร และมันมองหน่วยความจำอย่างไร เนื่องจากคุณสมบัติเหล่านี้จะมีผลกระทบอย่างยิ่งต่อสมรรถนะของระบบ ดังนั้นมันจะดีมากถ้า Taxonomy จะแสดงให้เห็นถีงความแตกต่างของคุณสมบัติเหล่านี้
Shore ได้เสนอ Taxonomy อีกชนิดที่มีความคล้ายคลึงกันมาก แต่ได้แบ่ง SIMD ออกเป็น 4 ระบบย่อย และเขาก็ยังไม่ได้ให้ความแตกต่างของ Pipelined vector machine และก็ยังไม่ได้แยกความแตกต่างของ array แบบต่างๆในระบบ MIMD อีกด้วย

นอกจากนี้ยังได้มีความพยายามอีกมากมายในการแก้ไข Flynn's Taxonomy ตัวอย่างเช่น ของ Hwang, ระบบ MIMD จะถูกแบ่งเป็น Shared memory system, Distributed memory system และ Reconfigurable system แต่น่าเสียดายที่มันเป็นการผสมกันระหว่างการจัดการหน่วยความจำ และการจัดการการสื่อสาร และแม้ว่ามันจะมีประโยชน์ในเรื่องของการแยกความแตกต่าง แต่ก็ไม่ค่อยจะน่าพอในแง่ของพื้นฐานของ Taxonomy ส่วนของ Bell ระบบจะถูกอบ่งออกเป็นระบบที่มี Shared memory และระบบที่ไม่มี Shared memory

สิ่งหนึ่งที่ถูกเพิ่มเข้าไปใน Flynn's Taxonomy แล้วได้รับความนิยมมากก็คือ SPMD ซึ่งย่อมาจาก Single Program , Multiple Data streams ในบางความรู้สึกมันจะแสดงถึงรูปแบบของการ Computing มากกว่าจะเป็นสถาปัตยกรรม ในทางกายภาพระบบจะเป็น MIMD หลาย processor เพราะมันมี processor ที่เป็นอิสระต่อกันมากมาย แต่ละ processor จะมี ชุดของข้อมูล ( data set ) และหน่วยความจำ program ( program memory ) เป็นของตนเอง อย่างไรก็ตาม programเดียวกันจะถูกกระทำโดยหลาย processor และ processor เหล่านี้จะถูกทำให้เข้าจังหวะเป็นระยะๆ นี่เป็นวิธีที่ง่ายวิธีหนึ่งในการเข้าหาระบบ MIMD มากกว่าที่ต้องมาจัดการแต่ละสายของข่าวสาร ( Instruction stream ) และมันยังมีความยืดหยุ่นมากกว่าระบบ SIMD เพราะแต่ละ processor สามารถที่จะอยู่ในที่ที่แตกต่างกันใน program เดียวกัน ณ เวลาใดๆ ก็ๆได้
จนถึงตอนนี้ความพยายามสูงสุดในการกำหนด Taxonomy คือของ Hockney และ Jesshope โดยมีแรงกระตุ้นเพื่อที่จะให้เห็นความถึงแตกต่างทางสถาป้ตยกรรมของ Pipelined vector processor และในระหว่าง multiprocessor ต่างๆ สัญลักษ์ที่ใช้จะคล้ายกับสัญลักษ์ทางเคมีของสารประกอบอินทรีย์ และความยุ่งยากของมันจะเกินกว่า scope ของบทความนี้ แต่มันก็นำไปถึงการแบ่งแยกที่ให้เอกลักษ์เฉพาะของทุกระบบที่ถูกเสนอ หรือสร้างขึ้น อย่างไรก็ตามความยุ่งยากอันเดียวกันนี้ ก็อาจจะเป็นคำอธิบายของการขาดหายไปของ Taxonomyที่ยอมรับได้

อ่านข้อมูลเพิ่มเติมได้ที่

http://www.cpe.ku.ac.th/~yuen/204323/hpc/taxonomy.html
http://www.blmiacec.ac.th/E-learning/system/unit3/os3-7.htm










ไม่มีความคิดเห็น: