วันพฤหัสบดีที่ 29 สิงหาคม พ.ศ. 2556

ส่วนประกอบโครงสร้างภายใน Microprocessor (RISC)



ความเป็นมา      
        ใน ค.ศ. 1948   ครั้งที่เริ่มมีการพัฒนาดิจิตอลคอมพิวเตอร์   การพัฒนาในครั้งนั้นเริ่มจากเครื่อง  MARK1 ซึ่งมีคำสั่ง   เพียง 7  คำสั่งแต่ละคำสั่งมีลักษณะการทำงานที่ซับซ้อน  เช่น  คำสั่งบวก  คำสั่งกระโดด    คำสั่งในยุคนั้น  มีเพียง  เท่าที่จำเป็น แต่เมื่อมีการพัฒนาต่อมาเรื่อย ๆ การสร้างคำสั่งก็เพิ่มมากขึ้น เช่น VAX   มีคำสั่งถึงกว่า  300 คำสั่ง นอกจากนี้คำสั่งก็จะดูซับซ้อนมากขึ้น หากพิจารณาไมโครโปเซสเซอร์ 8080 มีเพียง 78 คำสั่งแต่เมื่อ  Z80  ได้รับการพัฒนาขึ้น ชุดคำสั่งก็เพิ่มเป็นซุเปอร์เซต คือมีถึงกว่า 150 คำสั่ง   แล้วพัฒนาการต่อมาเป็น 8088, 8086   ก็มีชุดคำสั่งเพิ่มขึ้นอีก การออกแบบแต่ละะครั้ง   ดูจะพยายามสร้างชิปเดิมให้เป็นชิปย่อยและทำงานได้เหมือนเป็นซับเซต   ดังนั้นคำสั่งที่พัฒนากันต่อมาก็ยิ่งสลับซับซ้อนยิ่งขึ้น นั่นคือ กลายมาเป็น CISC นั่นเอง อย่างไรก็ตามการพัฒนา  CISC   ก็ได้ใช้เทคนิคการเพิ่มประสิทธิภาพโดยรวมหลายอย่าง  ที่ทำให้การพัฒนาในยุคหลัง  คือ RISC นำมาใช้เช่น มีการทำ Pipelining   การพรีเฟตซ์ และการใช้แคช

          ในราวปี ค.ศ. 1975 มหาวิทยาลัยแคลิฟอเนีย ที่เบร์กเล่ย์ ก็สร้างโครงงานพัฒนาคอมพิวเตอร์         โดยใช้ชื่อโครงการว่า RISC โครงงานนี้   สร้างเพื่อให้นักเรียนที่เรียนในระดับบัณฑิตศึกษา ได้ทำการวิทยานิพนธ์เกี่ยวกับโครงสร้างสถาปัตยกรรมของคอมพิวเตอร์เหล่านี้ เพื่อทำให้ประสิทธิภาพดีขึ้น ต่อมาได้เพิ่มโครงงาน  SOAR และใช้ CAD ช่วยในการออกแบบและสร้างชิป  RISC I เป็นซีพียูที่มีชุดคำสั่งที่ทำงานด้วยเวลาสั้น ๆ  ดังนั้นการประมวลผลข้อมูลจะต้องทำกับรีจิสเตอร์ จะมีคำสั่งที่เข้าถึงหน่วยความจำเพียงการโหลดและสตอร์เท่านั้น  การทำงานของคำสั่งส่วนใหญ่เสร็จในหนึ่งไซเกิล คำสั่งที่ใช้มี 31 คำสั่ง ซึ่งสามารถบรรจุเป็นรหัสเพียงขนาด 32 บิต  การถอดรหัสคำสั่งสามารถทำได้ทันทีด้วยรูปแบบที่แน่นอน ลักษณะพิเศษของ RISC I คือ มีรีจิสเตอร์ภายในมาก โดยมีรัจิสเตอร์มากกว่าร้อยตัว รีจิสเตอร์เหล่านั้จัดเรียงตัวกันเป็นกลุ่มและทับซ้อนกัน เพื่อให้มีการเรียกข้อมูลมาใช้หรือส่งผ่านข้อมูลถึงกันได้ โดยไม่เสียเวลาไปรับจากหน่วยความจำ RISC I จึงเป็นซีพียูที่ลดการติดต่อระหว่างซีพียูกับหน่วยความจำ จากรายงานของ RISC I และ RISC II กล่าวว่าความเร็วในการทำงานของ RISC เพิ่มขึ้น 2 ถึง 4 เท่าเมื่อเทียบกับการทำงานแบบ   CISC เช่น VAX หรือ 68000

ชุดคำสั่งของ RISC
          เพื่อให้เห็นโครงสร้างชุดคำสั่งที่ใช้ใน RISC ในที่นี้จะขอยกตัวอย่างชุดคำสั่งของ MIPS กระทำกับรีจิสเตอร์ 3 ตัว คือ scr1,scr2 และ dest กล่าวคือ  scr  เป็นรีจิสเตอร์ตัวทำงาน dest เป็นรีจิสเตอร์ผลลัพธ์ คำสั่งส่วนใหญ่ เป็นคำสั่งพื้นฐาน ที่เข้าใจได้ง่าย การออกแบบคำสั่งเหล่านี้มุ่งไปที่การใช้รีจิสเตอร์ภายใน ดังนั้นรีจิสเตอร์ภายในมักมีขนาดกว้าง ในที่นี้ใช้ขนาด 32 บิต ( อินเทล i860 ใช้ชนาด 64บิต ) หากจะพิจารณาคำสั่งที่แสดงจะพบว่าคำสั่งเพียงเท่านี้   ก็เพียงพอต่อการใช้งาน หรือการเขียนโปรแกรมให้ทำงานในสิ่งต่าง ๆ ตามต้องการได้แล้ว การออกแบบ RISCจึงเป็นสิ่งที่ใช้สถาปัตยกรรมที่แตกต่าง
จาก CISC โดยสิ้นเชิง
         ความสามารถอยู่ที่การจัดการหน่วยความจำ เมื่อซีพียู RISC ทำงานด้วยคำสั่งที่ใช้กับรีจิสเตอร์เป็นหลักมีเพียง RD กับ ST เท่านั้น  ที่ใช้จากหน่วยความจำ LD กับ ST   จึงต้องเกี่ยวกับหน่วยความจำที่ซีพียูต้องติดต่อด้วย  อย่างรวดเร็ว  การที่ซีพียูต้องติดต่ออย่างรวดเร็วนี้ จึงต้องอาศัยหน่วยความจำแคช ดังนั้นประสิทธิภาพของ RISC จึงขึ้นอยู่กับการจัดโครงสร้างของหน่วยความจำด้วย โดยที่หน่วยความจำแคชจะต้องมีบทบาทที่ทำให้ซีพียูติดต่อแล้วพบข้อมูลเป็นส่วนใหญ่
         โครงสร้างของแคชที่ใช้กับ RISC เป็นแบบ direct maped cache ใช้การติดต่อกับหน่วยความจำนี้จะทำให้หน่วยความจำต่อกับแคชในลักษณะที่มีการกำหนดตำแหน่งแน่นอน แคชแบบนี้จำทำให้การเข้าถึงทำได้เร็วและต้องการพื้นที่น้อยกว่า
         โครงสร้างการอินเตอร์รัปต์ยังคงใช้เหมือนเดิม ในซีพียูแบบ CISC ต้องอาศัยการทำงานในลักษณะโปรแกรมหลายระดับ โดยการใช้สัญญาณอินเตอร์รัปต์เข้ามาเป็นตัวสวิตซ์การทำงานในแต่ละส่วนของโปรแกรม
          กรณีของ CISC ก็เช่นกัน การอินเตอร์รัปต์ก็มีกลไกการทำงานคล้ายกัรนจะแตกต่างกันเพียงเล็กน้อยในเรื่องการทำงานภาย
ในซีพียู ใน CISC อาจมีไมโครโค้ดคอยจัดการบางอย่างให้แแต่แนวความคิดของการใช้งานยังคงเหมือนกัน


ที่มาของเนื้อหา http://www.cpe.ku.ac.th/~yuen/204323/risc_vs_cisc/

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

แสดงความคิดเห็น