อธิบายโมเดลของระบบ Multi processor

วันนี้เว็บไซต์ PrettyHD จะมาอัพเดทบทความเกี่ยวกับ อัพเดทเรื่อง การบ้าน อธิบายโมเดลของระบบ Multi processor วันอาทิตย์ที่ 7 กรกฎาคม พ.ศ. 2556 ซึ่งมีเนื้อหามีดังนี้

ตอบ  เป็นระบบที่มีตัวประมวลผล หรือ 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 ในรุ่นเดียวกัน

·       SIMD    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ที่ยอมรับได้

หากต้องการทราบการอัพเดทของ การบ้าน อธิบายโมเดลของระบบ Multi processor และเรื่องที่เกี่ยวข้อง แนะนำให้กด ที่ facebook ด้านล่างนี้เลยค่ะ เผื่อที่จะได้อัพเดทก่อนใคร

อัพเดทเมื่อ วันอาทิตย์ที่ 7 กรกฎาคม พ.ศ. 2556 ในหมวดหมู่ของ การบ้าน เรื่อง การบ้าน อธิบายโมเดลของระบบ Multi processor