ความเป็นมา
ใน ค.ศ. 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/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น