แผนภาพบล็อกสถาปัตยกรรมความเสี่ยง การวิเคราะห์เปรียบเทียบสถาปัตยกรรม CISC และ RISC สถาปัตยกรรมชุดคำสั่งที่ลดลง

นี่คืออุปกรณ์ที่เป็นวงจรรวมขนาดใหญ่ (LSI) หนึ่งวงจรขึ้นไปที่ทำหน้าที่ของโปรเซสเซอร์คอมพิวเตอร์ อุปกรณ์คอมพิวเตอร์แบบคลาสสิกประกอบด้วยหน่วยเลขคณิต (AU) หน่วยควบคุม (CU) หน่วยเก็บข้อมูล (SRAM) และอุปกรณ์รับเข้า/ส่งออก (I/O)

มีโปรเซสเซอร์ของสถาปัตยกรรมต่างๆ

ซีไอเอสซี(eng. Complex Instruction Set Computing) เป็นแนวคิดการออกแบบโปรเซสเซอร์ที่มีลักษณะเฉพาะด้วยชุดคุณสมบัติต่อไปนี้:

· คำสั่งจำนวนมากที่มีรูปแบบและความยาวต่างกัน

· การแนะนำโหมดการกำหนดที่อยู่ที่แตกต่างกันจำนวนมาก

· มีการเข้ารหัสคำสั่งที่ซับซ้อน

โปรเซสเซอร์ CISC ต้องจัดการกับคำสั่งที่ซับซ้อนมากขึ้นซึ่งมีความยาวไม่เท่ากัน คำสั่ง CISC เดียวสามารถทำงานได้เร็วขึ้น แต่การประมวลผลคำสั่ง CISC หลายคำสั่งพร้อมกันนั้นยากกว่า

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

ข้อดีของสถาปัตยกรรม CISC

  1. ชุดคำสั่งขนาดกะทัดรัดช่วยลดขนาดโปรแกรมและลดจำนวนการเข้าถึงหน่วยความจำ
  2. ชุดคำสั่งประกอบด้วยการรองรับโครงสร้างการเขียนโปรแกรมระดับสูง

ข้อเสียของสถาปัตยกรรม CISC

  1. การไหลของคำสั่งไม่สม่ำเสมอ
  2. ฮาร์ดแวร์มีราคาสูง
  3. ความยากลำบากในการคำนวณแบบขนาน

RISC(คอมพิวเตอร์ชุดคำสั่งลดลง) โปรเซสเซอร์พร้อมชุดคำสั่งแบบย่อ ระบบคำสั่งนั้นง่ายขึ้น คำสั่งทั้งหมดมีรูปแบบเดียวกันพร้อมการเข้ารหัสอย่างง่าย เข้าถึงหน่วยความจำได้โดยใช้คำสั่งโหลดและเขียน คำสั่งที่เหลือเป็นประเภทรีจิสเตอร์-รีจิสเตอร์ คำสั่งที่ป้อน CPU ถูกแบ่งออกเป็นฟิลด์แล้วและไม่ต้องการการถอดรหัสเพิ่มเติม

ส่วนหนึ่งของคริสตัลถูกปล่อยออกเพื่อรวมเข้าด้วยกัน ส่วนประกอบเพิ่มเติม- ระดับของการบูรณาการนั้นต่ำกว่าในสถาปัตยกรรมรุ่นก่อนหน้า ดังนั้นความเร็วสัญญาณนาฬิกาที่ต่ำกว่าจึงได้รับอนุญาตให้มีประสิทธิภาพสูง คำสั่งทำให้ RAM ยุ่งน้อยลง CPU ราคาถูกกว่า สถาปัตยกรรมเหล่านี้ไม่รองรับซอฟต์แวร์ การดีบักโปรแกรม RISC นั้นยากกว่า เทคโนโลยีนี้สามารถนำไปใช้ในซอฟต์แวร์ที่เข้ากันได้กับเทคโนโลยี CISC (เช่น เทคโนโลยีซูเปอร์สเกลาร์)

เนื่องจากคำสั่ง RISC นั้นเรียบง่าย จึงมีความต้องการน้อยกว่า องค์ประกอบตรรกะซึ่งจะช่วยลดต้นทุนของโปรเซสเซอร์ในที่สุด แต่ส่วนใหญ่ ซอฟต์แวร์วันนี้มันถูกเขียนและเรียบเรียงโดยเฉพาะสำหรับโปรเซสเซอร์ CISC จาก Intel หากต้องการใช้สถาปัตยกรรม RISC โปรแกรมปัจจุบันจะต้องคอมไพล์ใหม่และเขียนใหม่บางครั้ง

ข้อดีของสถาปัตยกรรม RISC

1.ลดความผิดปกติของการไหลของคำสั่ง

2. การเสริมคุณค่าด้วยความเท่าเทียมเชิงพื้นที่

ข้อเสียของสถาปัตยกรรม RISC

เบ็ดเตล็ด(ชุดคอมพิวเตอร์เอนกประสงค์) ฐานองค์ประกอบประกอบด้วยสองส่วน ซึ่งจะทำในตัวเรือนแยกกันหรือรวมกัน ส่วนหลักคือ RISC CPU ขยายได้โดยการเชื่อมต่อส่วนที่สอง – ROM ควบคุมไมโครโปรแกรม ระบบได้รับคุณสมบัติ CISC คำแนะนำพื้นฐานทำงานบน RISC CPU และคำแนะนำในการขยายจะถูกแปลเป็นที่อยู่เฟิร์มแวร์ RISC CPU ดำเนินการคำสั่งทั้งหมดในรอบสัญญาณนาฬิกาเดียว และส่วนที่สองเทียบเท่ากับ CPU ที่มีชุดคำสั่งที่ซับซ้อน การมี ROM ช่วยขจัดข้อเสียของ RISC ดังที่แสดงออกมาเมื่อรวบรวมจากภาษา ระดับสูงไมโครโค้ดถูกสร้างขึ้นจากไลบรารีฟังก์ชันมาตรฐาน ซึ่งใช้พื้นที่ใน RAM มาก เนื่องจากเฟิร์มแวร์ได้รับการถอดรหัสแล้วและเปิดให้โปรแกรมเมอร์ใช้งานได้ จึงไม่จำเป็นต้องใช้เวลาในการดึงข้อมูลจาก RAM เพื่อถอดรหัส

ถ้าบังคับคนอื่นไม่ได้ก็จงทำงานด้วยตัวเอง กาลครั้งหนึ่ง ฉันขอให้ Konstantin Afanasyev บอกผู้อ่านเกี่ยวกับโปรเซสเซอร์ที่ไม่ใช่ Pentium “ เราจะทำมัน” Afanasiev ตอบ ดังนั้นเราจึงทำมัน

ดังที่คุณทราบ หัวใจของคอมพิวเตอร์ส่วนบุคคลสมัยใหม่คือไมโครโปรเซสเซอร์ สำหรับหลาย ๆ คน คำนี้มีความเกี่ยวข้องอย่างชัดเจนกับ Intel ซึ่งครั้งหนึ่งเคยเปิดตัวโปรเซสเซอร์ 8086 ที่ใช้กันอย่างแพร่หลาย และนับตั้งแต่นั้นมาก็วางอยู่บนลอเรล ทำให้เกิดเวอร์ชันที่ทรงพลังมากขึ้นเรื่อย ๆ อย่างไรก็ตาม แสงไม่ได้มาบรรจบกันที่ตระกูลนี้ และโปรเซสเซอร์ Pentium II ก็ไม่ได้เป็นมงกุฎแห่งวิวัฒนาการแต่อย่างใด ซึ่งมนุษย์ถือเป็นก้าวกลาง

การพัฒนาไมโครคอมพิวเตอร์ในระยะสั้นแต่รวดเร็วทำให้เกิดการวิวัฒนาการที่โดดเด่นสองสาขา ได้แก่ Intel X86 และ RISC เครื่องแรกปรากฏก่อนหน้านี้และจัดการเพื่อครอบครองส่วนแบ่งการตลาดที่สำคัญ แต่คอมพิวเตอร์ RISC ที่พัฒนาขึ้นในช่วงกลางทศวรรษที่ 80 กลับกลายเป็นว่ามีประสิทธิภาพมากกว่ามากและได้สร้างช่องทางสำหรับระบบที่มีประสิทธิภาพสูง

โปรเซสเซอร์ที่ไม่ได้อยู่ในคลาส RISC (Reduced Instruction Set Computing) มักจะเรียกว่า CISC (Complex ISC, complex Instruction Set Computing) มันเกิดขึ้นที่สิ่งเหล่านี้ มีเพียงตระกูล X86 ที่มีโปรแกรมสะสมมากมายเท่านั้นที่รอดชีวิตจากการแข่งขัน และถึงแม้ตัวแทนสมัยใหม่ของตระกูล X86 ( เพนเทียม โปร, Pentium II, K5, K6) ใช้สถาปัตยกรรม RISC เดียวกันภายใน ดังนั้น RISC จึงสามารถเรียกได้ว่าเป็นขั้นตอนใหม่หรือในช่วงหลายปีที่ผ่านมาในการพัฒนาโปรเซสเซอร์

และมันก็เป็นเช่นนี้ ในยุค 80 การเติบโตของประสิทธิภาพของไมโครโปรเซสเซอร์ถูกขัดขวางโดยอุปกรณ์ควบคุมส่วนกลางที่ซับซ้อนซึ่งเกี่ยวข้องกับชุดคำสั่งจำนวนมากที่สืบทอดมาจากคอมพิวเตอร์แบบดั้งเดิม การศึกษาเชิงทฤษฎีแสดงให้เห็นว่าการลดชุดคำสั่งให้เหลือน้อยที่สุดของชุดคำสั่งที่ใช้บ่อยที่สุดจะช่วยให้โปรเซสเซอร์ลดความซับซ้อนลงอย่างมากโดยการเพิ่มขนาดของโปรแกรมเล็กน้อย

จากนั้นจึงกำหนดหลักการพื้นฐานของ RISC:

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

พื้นที่คริสตัลที่ว่างเพิ่มขึ้นเป็นผลให้ถูกใช้เพื่อเพิ่มความจุบิตและประสิทธิภาพของโปรเซสเซอร์ ตัวอย่างเช่น โปรเซสเซอร์ ARM 32 บิต (Advanced RISC Machine) ซึ่งเปิดตัวในปี 1985 ซึ่งมีความเร็วสูงกว่ามากในแง่ของการรวม เทียบได้กับ Intel 8080 8 บิต (ทรานซิสเตอร์ 25,000 ตัว) และตอนนี้ 64 บิตถือเป็นบรรทัดฐานสำหรับโปรเซสเซอร์ RISC แต่เป็นอนาคตอันไกลโพ้นสำหรับ X86

พื้นที่ที่บันทึกไว้บนชิปเดียวกันนั้นถูกใช้สำหรับเทคนิคทุกประเภทเพื่อเพิ่มความเร็วในการประมวลผลข้อมูล ตลอดครึ่งศตวรรษของการดำรงอยู่ของคอมพิวเตอร์ ประเด็นสำคัญๆ มากมายได้รับการพัฒนาจนไม่มีที่จะใส่ไว้ในโปรเซสเซอร์ CISC

ข้อดีของ RISC ไม่ใช่แค่ประหยัดพื้นที่เท่านั้น การใช้รีจิสเตอร์ที่ใช้งานอยู่จะช่วยลดจำนวนการเข้าถึงหน่วยความจำให้เหลือน้อยที่สุด การโหลดรีจิสเตอร์นั่นคือการแลกเปลี่ยนระหว่างรีจิสเตอร์และหน่วยความจำนั้นดำเนินการในสองวิธีที่แตกต่างกัน - ฮาร์ดแวร์และซอฟต์แวร์

ฮาร์ดแวร์ที่ใช้ในโปรเซสเซอร์ SPARC เกี่ยวข้องกับการใช้งานรีจิสเตอร์ 138 รายการ โดย 10 รายการจะมองเห็นได้ตลอดเวลา และอีก 128 รายการที่เหลือจะถูกแบ่งออกเป็นหน้าต่างที่ทับซ้อนกันแปดหน้าต่างซึ่งจะแทนที่กันเมื่อมีการเรียกใช้รูทีนย่อย โครงร่างนี้เรียกว่า MORS (ชุดการลงทะเบียนที่ทับซ้อนกันหลายชุด) หรือ Rolodex

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

ดังนั้นโปรเซสเซอร์ RISC ส่วนใหญ่จึงใช้ซอฟต์แวร์ควบคุมการเข้าถึงหน่วยความจำ จำนวนการลงทะเบียนมีน้อย (ปกติคือ 32) การเรียกโพรซีเดอร์ใช้กลไกสแต็กตามปกติ สันนิษฐานว่าการเข้าถึงหน่วยความจำยังคงถูกดูดซับโดยแคช งานของการใช้รีจิสเตอร์อย่างมีเหตุผลนั้นขึ้นอยู่กับคอมไพเลอร์

โดยทั่วไปแล้ว สถาปัตยกรรม RISC มีลักษณะเฉพาะโดยมอบหมายงานทั้งหมดให้กับคอมไพเลอร์ ความเร็วของการรันโปรแกรมเดียวกันบนโปรเซสเซอร์ RISC อาจแตกต่างกันได้หลายครั้งขึ้นอยู่กับคอมไพเลอร์ และการเพิ่มประสิทธิภาพด้วยตนเองสามารถลดเวลาการทำงานของส่วนของโปรแกรมลงอีกครึ่งหนึ่ง

ข้อเสียอีกประการหนึ่งของ RISC คือการเพิ่มขนาดโค้ดประมาณหนึ่งเท่าครึ่งเนื่องจากชุดคำสั่งที่ลดลงและความยาวคงที่ อย่างไรก็ตาม ในช่วงเวลาที่มีเมกะไบต์นับไม่ถ้วนของเรา สิ่งนี้ไม่สำคัญมากนัก - การพัฒนามัลติมีเดียทำให้ปริมาณข้อมูลที่ประมวลผลมีขนาดใหญ่กว่าขนาดของโค้ดอย่างเห็นได้ชัด และประสิทธิภาพไม่เพียงพอตามคำจำกัดความ (ดู คำบรรยาย)

มิทรี โบโรเดนโก
[ป้องกันอีเมล]

ใครต้องการการประมวลผลแบบ 64 บิต

ก่อนที่เราจะมีเวลาทำความคุ้นเคยกับ Windows 95 และการประมวลผลแบบ 32 บิต กลับกลายเป็นว่านี่ยังไม่เพียงพอ การแข่งขันสำหรับจำนวนบิตยังคงดำเนินต่อไป และประเด็นนี้ไม่เพียงแต่ในพื้นที่ที่อยู่ที่มีอยู่เท่านั้นและไม่มากนัก ย้อนกลับไปในสมัยของเครื่องจักรขนาดใหญ่ ได้รับการพิสูจน์แล้วว่าสำหรับการคำนวณจำนวนเต็ม การแสดงแบบ 32 บิตนั้นเหมาะสมที่สุด และสำหรับตัวเลขทศนิยม 64 บิตมีความจำเป็นและเพียงพอ

ดังนั้นโปรเซสเซอร์ 32 บิตที่มีจำนวนจริงที่มีความแม่นยำเต็มรูปแบบสามารถรองรับการส่งผ่านได้เพียงสองครั้งเท่านั้น ซึ่งสำหรับสถาปัตยกรรม RISC ที่มีข้อกำหนดในการลดรูปแบบให้เหลือน้อยที่สุด อย่างน้อยอึดอัด. การเพิ่มความจุบิตของข้อมูลที่ประมวลผลเป็นสองเท่าจะต้องเพิ่มความจุบิตของโปรเซสเซอร์เป็นสองเท่าหรือเพิ่มความถี่สัญญาณนาฬิกาเป็นสี่เท่า นี่เป็นส่วนหนึ่งว่าทำไม PowerPC แบบ 32 บิตจึงตามหลังรุ่น 64 บิตเต็มรูปแบบในการคำนวณจุดลอยตัว

ในทศวรรษที่ 70 ของศตวรรษที่ 20 นักวิทยาศาสตร์หยิบยกแนวคิดปฏิวัติในเวลานั้นเพื่อสร้างไมโครโปรเซสเซอร์ที่ "เข้าใจ" เพียงจำนวนคำสั่งขั้นต่ำที่เป็นไปได้เท่านั้น

แนวคิดของโปรเซสเซอร์ RISC (คอมพิวเตอร์ชุดคำสั่งที่ลดลง) จึงถือกำเนิดขึ้น การวิจัยเชิงปฏิบัติความถี่ของการใช้คำสั่งโดยโปรแกรมเมอร์ ดำเนินการในยุค 70 ในสหรัฐอเมริกาและอังกฤษ ผลลัพธ์ที่เกิดขึ้นทันทีคือ "กฎ 80/20" ที่รู้จักกันดี: ใน 80% ของรหัสทั่วไป โปรแกรมประยุกต์มีการใช้คำสั่งเครื่องจักรที่ง่ายที่สุดเพียง 20% จากชุดที่มีอยู่ทั้งหมด โปรเซสเซอร์ไมโครคอนโทรลเลอร์อุปกรณ์อิเล็กทรอนิกส์

โปรเซสเซอร์ RISC 31 คำสั่ง "จริง" ตัวแรกถูกสร้างขึ้นภายใต้การดูแลของ David Patterson ที่ Berkeley University ตามด้วยโปรเซสเซอร์ 39 คำสั่ง รวมทรานซิสเตอร์ 20-50,000 ตัว ผลงานของ Patterson ได้รับการใช้ประโยชน์จาก Sun Microsystems ซึ่งพัฒนาสถาปัตยกรรม SPARC โดยมีทีมงาน 75 ทีมในช่วงปลายยุค 70 ในปี 1981 โครงการ MIPS เปิดตัวที่มหาวิทยาลัยสแตนฟอร์ดเพื่อผลิตโปรเซสเซอร์ RISC โดยมีทีมงาน 39 ทีม เป็นผลให้ Mips Computer Corporation ก่อตั้งขึ้นในช่วงกลางทศวรรษที่ 80 และโปรเซสเซอร์ถัดไปที่มี 74 คำสั่งได้รับการออกแบบ

จากข้อมูลของบริษัทอิสระ IDC ในปี 1992 สถาปัตยกรรม SPARC ครองตลาด 56% ตามด้วย MIPS - 15% และ PA-RISC - 12.2%

ช่วงเวลาประมาณเดียวกัน เวลาอินเทลพัฒนาซีรีส์ 80386 ซึ่งเป็นโปรเซสเซอร์ CISC "จริง" ตัวสุดท้ายในตระกูล IA-32 ครั้งล่าสุด การปรับปรุงประสิทธิภาพทำได้โดยการเพิ่มความซับซ้อนของสถาปัตยกรรมโปรเซสเซอร์เท่านั้น: จาก 16 บิตเป็น 32 บิต รองรับส่วนประกอบฮาร์ดแวร์เพิ่มเติม หน่วยความจำเสมือนและมีการเพิ่มทีมใหม่จำนวนหนึ่ง

คุณสมบัติหลักของโปรเซสเซอร์ RISC:

  • - ลดชุดคำสั่ง (จาก 80 เป็น 150 คำสั่ง)
  • - คำสั่งส่วนใหญ่จะดำเนินการใน 1 รอบสัญญาณนาฬิกา
  • - การลงทะเบียนวัตถุประสงค์ทั่วไปจำนวนมาก
  • - ความพร้อมใช้งานของสายพานลำเลียงแบบหลายขั้นตอนแบบแข็ง
  • - คำสั่งทั้งหมดมีรูปแบบที่เรียบง่ายและใช้วิธีการกำหนดแอดเดรสเพียงไม่กี่วิธี
  • - ความพร้อมใช้งานของหน่วยความจำแคชแยกต่างหากที่กว้างขวาง
  • - การใช้การเพิ่มประสิทธิภาพคอมไพเลอร์ที่วิเคราะห์ ซอร์สโค้ดและเปลี่ยนลำดับคำสั่งบางส่วน

โปรเซสเซอร์ RISC รุ่นที่ 3

นักพัฒนาที่ใหญ่ที่สุดของโปรเซสเซอร์ RISC ได้แก่ Sun Microsystems (SPARC - สถาปัตยกรรม Ultra SPARC), IBM (โปรเซสเซอร์ Power แบบหลายชิป, PowerPC แบบชิปเดี่ยว - PowerPC 620), อุปกรณ์ดิจิทัล (Alpha - Alpha 21164), Mips Technologies (Rxx00 - R 10000 ครอบครัว) เช่นเดียวกับ Hewlett-Packard (สถาปัตยกรรม PA-RISC - PA-8000)

โปรเซสเซอร์ RISC รุ่นที่สามทั้งหมด:

  • - เป็น 64 บิตและซูเปอร์สเกลาร์ (เรียกใช้อย่างน้อย 4 คำสั่งต่อรอบสัญญาณนาฬิกา)
  • - มีหน่วยเลขคณิตทศนิยมแบบมีท่อในตัว
  • - มีหน่วยความจำแคชหลายระดับ โปรเซสเซอร์ RISC ส่วนใหญ่แคชคำสั่งที่ถอดรหัสไว้ล่วงหน้า
  • - ผลิตด้วยเทคโนโลยี CMOS พร้อมการเคลือบโลหะ 4 ชั้น

ในการประมวลผลข้อมูล มีการใช้อัลกอริธึมการทำนายสาขาแบบไดนามิกและวิธีการกำหนดรีจิสเตอร์ใหม่ ซึ่งช่วยให้สามารถดำเนินการคำสั่งที่ไม่อยู่ในลำดับได้

การเพิ่มประสิทธิภาพของโปรเซสเซอร์ RISC นั้นทำได้โดยการเพิ่มความเร็วสัญญาณนาฬิกาและเพิ่มความซับซ้อนของการออกแบบชิป ตัวแทนของทิศทางแรกคือโปรเซสเซอร์ Alpha จาก DEC; Hewlett-Packard ยังคงเป็นโปรเซสเซอร์ที่ซับซ้อนที่สุด

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

ข้อได้เปรียบหลักของสถาปัตยกรรม RISC คือคุณสมบัติดังต่อไปนี้:

  • - จำนวนมากทะเบียนวัตถุประสงค์ทั่วไป
  • - รูปแบบสากลการดำเนินงานระดับย่อยทั้งหมด
  • - เวลาดำเนินการเท่ากันสำหรับคำสั่งเครื่องทั้งหมด
  • - การดำเนินการถ่ายโอนข้อมูลเกือบทั้งหมดจะดำเนินการตามเส้นทางการลงทะเบียน-การลงทะเบียน

เวลาดำเนินการที่เท่ากันของคำสั่งเครื่องทั้งหมดทำให้สามารถประมวลผลกระแสคำสั่งคำสั่งโดยใช้หลักการไปป์ไลน์ เช่น การซิงโครไนซ์ฮาร์ดแวร์จะดำเนินการโดยคำนึงถึงการถ่ายโอนการควบคุมตามลำดับจากที่หนึ่ง หน่วยฮาร์ดแวร์ไปที่อื่น

หน่วยฮาร์ดแวร์ในสถาปัตยกรรม RISC:

บล็อกการโหลดคำสั่งประกอบด้วยส่วนประกอบต่อไปนี้: บล็อกสำหรับดึงคำสั่งจากหน่วยความจำคำสั่ง รีจิสเตอร์คำสั่งสำหรับวางคำสั่งหลังจากดึงข้อมูลแล้ว และบล็อกถอดรหัสคำสั่ง ขั้นตอนนี้เรียกว่าขั้นตอนการดึงคำสั่ง

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

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

ชุดของการลงทะเบียนวัตถุประสงค์ทั่วไป การเขียนลอจิก และบางครั้ง RAM จะสร้างขั้นตอนการจัดเก็บข้อมูล ในขั้นตอนนี้ ผลลัพธ์ของการดำเนินการคำสั่งจะถูกเขียนไปยังรีจิสเตอร์หรือหน่วยความจำหลักที่ใช้งานทั่วไป

อย่างไรก็ตาม เมื่อถึงเวลาที่มีการพัฒนาสถาปัตยกรรม RISC สถาปัตยกรรม Intel x86 ซึ่งใช้หลักการสถาปัตยกรรม CISC ได้กลายเป็นมาตรฐานอุตสาหกรรมโดยพฤตินัยสำหรับไมโครโปรเซสเซอร์ ความพร้อมใช้งานของโปรแกรมจำนวนมากที่เขียนขึ้นสำหรับ สถาปัตยกรรมอินเทล x86 ทำให้เป็นไปไม่ได้สำหรับการเปลี่ยนคอมพิวเตอร์จำนวนมากไปใช้สถาปัตยกรรม RISC ด้วยเหตุนี้ กรณีการใช้งานหลักสำหรับสถาปัตยกรรม RISC คือไมโครคอนโทรลเลอร์ เนื่องจากไม่ได้เชื่อมโยงกับซอฟต์แวร์ที่มีอยู่ นอกจากนี้ ผู้ผลิตคอมพิวเตอร์บางรายซึ่งนำโดย IBM ก็เริ่มผลิตคอมพิวเตอร์ที่สร้างบนสถาปัตยกรรม RISC เช่นกัน แต่ความเข้ากันไม่ได้ของซอฟต์แวร์ระหว่างสถาปัตยกรรม Intel x86 และ RISC ได้จำกัดการจำหน่ายของรุ่นหลังอย่างมาก

อย่างไรก็ตาม ประโยชน์ของสถาปัตยกรรม RISC มีความสำคัญมากจนวิศวกรพบวิธีที่จะเปลี่ยนไปใช้คอมพิวเตอร์ที่มีสถาปัตยกรรม RISC โดยไม่ต้องละทิ้งซอฟต์แวร์ที่มีอยู่ แกนประมวลผลของไมโครโปรเซสเซอร์ที่ทันสมัยที่สุดที่รองรับสถาปัตยกรรม Intel x86 นั้นถูกสร้างขึ้นตามสถาปัตยกรรม RISC พร้อมรองรับการประมวลผลไปป์ไลน์แบบหลายสเกลาร์ ไมโครโปรเซสเซอร์ได้รับคำสั่งในรูปแบบ Intel x86 เป็นอินพุต เราแทนที่ด้วยคำสั่ง RISC หลายคำสั่ง (สูงสุด 4)

ดังนั้นคอร์ของไมโครโปรเซสเซอร์สมัยใหม่ส่วนใหญ่ที่เริ่มต้นด้วย Intel 486DX จึงถูกสร้างขึ้นตามสถาปัตยกรรม RISC พร้อมรองรับอินเทอร์เฟซ Intel x86 ภายนอก นอกจากนี้ ไมโครคอนโทรลเลอร์ส่วนใหญ่และไมโครโปรเซสเซอร์บางตัวยังผลิตขึ้นโดยใช้สถาปัตยกรรม RISC

โปรเซสเซอร์ RISC สมัยใหม่ใช้รีจิสเตอร์อย่างน้อย 32 รีจิสเตอร์ ซึ่งมักจะมากกว่า 100 รีจิสเตอร์ ในขณะที่คอมพิวเตอร์ดิจิทัลแบบคลาสสิกมักจะมีรีจิสเตอร์สำหรับใช้งานทั่วไป 8-16 รีจิสเตอร์ เป็นผลให้โปรเซสเซอร์เข้าถึง RAM น้อยลง 20%-30% ซึ่งเพิ่มความเร็วในการประมวลผลข้อมูลด้วย นอกจากนี้การมีอยู่ ปริมาณมาก registers ช่วยให้การทำงานของคอมไพเลอร์ในการจัดสรร register ให้กับตัวแปรง่ายขึ้น โทโพโลยีของโปรเซสเซอร์ซึ่งดำเนินการเป็นหนึ่งเดียวได้รับการทำให้ง่ายขึ้น วงจรรวมเวลาในการพัฒนาลดลงและราคาถูกลง

หลังจากการถือกำเนิดของโปรเซสเซอร์ RISC โปรเซสเซอร์แบบดั้งเดิมถูกกำหนดให้เป็น CISC - นั่นคือด้วย ชุดเต็มคำสั่ง (คอมพิวเตอร์ชุดคำสั่งที่สมบูรณ์)

ปัจจุบันมีการใช้โปรเซสเซอร์ RISC กันอย่างแพร่หลาย โปรเซสเซอร์ RISC สมัยใหม่มีลักษณะดังต่อไปนี้:

  • - ชุดคำสั่งที่เรียบง่าย
  • - ใช้คำสั่งที่มีความยาวคงที่และรูปแบบคงที่ ใช้วิธีการกำหนดแอดเดรสแบบง่าย ซึ่งทำให้ตรรกะการถอดรหัสคำสั่งง่ายขึ้น
  • - คำสั่งส่วนใหญ่ดำเนินการในรอบโปรเซสเซอร์เดียว
  • - ตรรกะในการรันคำสั่งเพื่อเพิ่มประสิทธิภาพนั้นเน้นไปที่ฮาร์ดแวร์มากกว่าการใช้เฟิร์มแวร์ ไม่มีคำสั่งมาโครที่ทำให้โครงสร้างของโปรเซสเซอร์ซับซ้อนและลดความเร็วในการทำงาน
  • - การโต้ตอบกับ RAM นั้น จำกัด เฉพาะการดำเนินการถ่ายโอนข้อมูล
  • - ตามกฎแล้วจะใช้คำสั่งสามที่อยู่สำหรับการประมวลผลซึ่งนอกเหนือจากการทำให้การถอดรหัสง่ายขึ้นแล้ว ยังทำให้สามารถบันทึกตัวแปรจำนวนมากขึ้นในรีจิสเตอร์โดยไม่ต้องโหลดซ้ำในภายหลัง
  • - มีการสร้างไปป์ไลน์คำสั่งที่ช่วยให้คุณประมวลผลหลายรายการพร้อมกัน
  • - มีการลงทะเบียนจำนวนมาก
  • - ใช้หน่วยความจำความเร็วสูง

ในโปรเซสเซอร์ RISC การประมวลผลคำสั่งเครื่องแบ่งออกเป็นหลายขั้นตอน แต่ละขั้นตอนจะให้บริการโดยฮาร์ดแวร์ที่แยกจากกัน และการถ่ายโอนข้อมูลจะถูกจัดระเบียบจากขั้นตอนหนึ่งไปยังอีกขั้นตอนหนึ่ง

ผลผลิตเพิ่มขึ้นเนื่องจากมีการดำเนินการหลายคำสั่งพร้อมกันในขั้นตอนต่างๆ ของไปป์ไลน์

การดำเนินการตามคำสั่งทั่วไปสามารถแบ่งออกเป็นขั้นตอนต่อไปนี้:

  • - หากดึงคำสั่ง - ตามที่อยู่ที่ระบุโดยตัวนับโปรแกรม คำสั่งจะถูกดึงมาจากหน่วยความจำ
  • - 2) ถอดรหัสคำสั่ง ID - ค้นหาความหมายโดยเลือกตัวถูกดำเนินการจากรีจิสเตอร์
  • - 3) ดำเนินการ EX หากจำเป็น เข้าถึงหน่วยความจำ - คำนวณที่อยู่จริง
  • - 4) การเข้าถึงหน่วยความจำ ME;
  • - 5) จดจำผลลัพธ์ WB

ในโปรเซสเซอร์ที่มีสถาปัตยกรรม RISC จะมีชุดหนึ่งชุด คำสั่งปฏิบัติการลดลงเหลือน้อยที่สุด หากต้องการดำเนินการที่ซับซ้อนมากขึ้น คุณต้องรวมคำสั่งเข้าด้วยกัน ในกรณีนี้ คำสั่งทั้งหมดมีรูปแบบความยาวคงที่ (เช่น 12, 14 หรือ 16 บิต) คำสั่งจะถูกดึงมาจากหน่วยความจำและดำเนินการในรอบการซิงโครไนซ์ (รอบ) หนึ่งรอบ ระบบคำสั่งของโปรเซสเซอร์ RISC ถือว่ามีความเป็นไปได้ของการใช้รีจิสเตอร์ตัวประมวลผลทั้งหมดอย่างเท่าเทียมกัน สิ่งนี้ให้ความยืดหยุ่นเพิ่มเติมสำหรับการดำเนินงานจำนวนหนึ่ง MCU ที่มีโปรเซสเซอร์ RISC ประกอบด้วย AVR MCU จาก Atmel, MCU PIC16 และ PIC17 จาก Microchip และอื่นๆ

เมื่อมองแวบแรก MCU ที่มีโปรเซสเซอร์ RISC ควรมีมากกว่านี้ ประสิทธิภาพสูงเปรียบเทียบกับ CISC MK ที่ความถี่สัญญาณนาฬิกาบัสภายในเดียวกัน อย่างไรก็ตาม ในทางปฏิบัติ ปัญหาด้านประสิทธิภาพการผลิตมีความซับซ้อนและคลุมเครือมากขึ้น

รูปที่ 2

สถาปัตยกรรมของฮาร์วาร์ดแทบจะไม่ได้ถูกนำมาใช้เลยจนกระทั่งปลายทศวรรษที่ 70 จนกระทั่งผู้ผลิต MK ตระหนักว่าสถาปัตยกรรมดังกล่าวให้ข้อได้เปรียบบางประการแก่นักพัฒนา ระบบอัตโนมัติการจัดการ.

ความจริงก็คือเมื่อพิจารณาจากประสบการณ์การใช้ MPS เพื่อควบคุมวัตถุต่าง ๆ สำหรับการนำอัลกอริธึมการควบคุมส่วนใหญ่ไปใช้ข้อดีของสถาปัตยกรรม von Neumann เช่นความยืดหยุ่นและความเก่งกาจไม่มี มีความสำคัญอย่างยิ่ง- การวิเคราะห์ โปรแกรมจริงการควบคุมพบว่าจำนวนหน่วยความจำข้อมูล MK ที่ต้องการใช้ในการจัดเก็บ ผลลัพธ์ระดับกลางตามกฎแล้วคือลำดับความสำคัญน้อยกว่าจำนวนหน่วยความจำโปรแกรมที่ต้องการ ภายใต้เงื่อนไขเหล่านี้ การใช้พื้นที่ที่อยู่เดียวทำให้รูปแบบคำสั่งเพิ่มขึ้นเนื่องจากจำนวนบิตที่เพิ่มขึ้นสำหรับที่อยู่ตัวถูกดำเนินการ การใช้หน่วยความจำข้อมูลขนาดเล็กแยกกันช่วยลดความยาวของคำสั่งและเพิ่มความเร็วในการค้นหาข้อมูลในหน่วยความจำข้อมูล

นอกจากนี้ สถาปัตยกรรมของฮาร์วาร์ดยังมีศักยภาพมากกว่านี้อีกด้วย ความเร็วสูงการทำงานของโปรแกรมเปรียบเทียบกับ von Neumann เนื่องจากความเป็นไปได้ในการใช้งาน การดำเนินการแบบขนาน- การดึงคำสั่งถัดไปสามารถเกิดขึ้นพร้อมกันกับการดำเนินการของคำสั่งก่อนหน้า และไม่จำเป็นต้องหยุดโปรเซสเซอร์ในขณะที่ดึงคำสั่ง วิธีการดำเนินการนี้ช่วยให้สามารถดำเนินการคำสั่งต่าง ๆ ในจำนวนรอบสัญญาณนาฬิกาเท่ากัน ซึ่งทำให้สามารถกำหนดเวลาดำเนินการของรอบและส่วนสำคัญของโปรแกรมได้ง่ายขึ้น

ผู้ผลิต MCU 8 บิตสมัยใหม่ส่วนใหญ่ใช้สถาปัตยกรรมของ Harvard อย่างไรก็ตาม สถาปัตยกรรมของฮาร์วาร์ดไม่ยืดหยุ่นพอที่จะปรับใช้ขั้นตอนซอฟต์แวร์บางอย่าง ดังนั้น ควรทำการเปรียบเทียบไมโครคอนโทรลเลอร์ที่ใช้สถาปัตยกรรมที่แตกต่างกันโดยสัมพันธ์กับการใช้งานเฉพาะ

สถาปัตยกรรม RISCเกี่ยวข้องกับการนำไปใช้ในคอมพิวเตอร์ของชุดคำสั่งง่าย ๆ แต่ใช้บ่อยลดลงซึ่งทำให้สามารถลดความซับซ้อนของฮาร์ดแวร์โปรเซสเซอร์และจึงสามารถเพิ่มประสิทธิภาพได้

เมื่อใช้สถาปัตยกรรม RISC การเลือกชุดคำสั่งและโครงสร้างตัวประมวลผล (ไมโครโปรเซสเซอร์) มีวัตถุประสงค์เพื่อให้แน่ใจว่าคำสั่งในชุดจะดำเนินการในรอบเครื่องของตัวประมวลผลหนึ่งรอบ รูทีนย่อยมีการดำเนินการที่ซับซ้อนมากขึ้นแต่พบไม่บ่อยนัก

ในเครื่องคอมพิวเตอร์ที่มี RISC วงจรของเครื่องคือเวลาที่ดึงตัวถูกดำเนินการสองตัวจากรีจิสเตอร์ การดำเนินการจะดำเนินการใน ALU และผลลัพธ์จะถูกเก็บไว้ในรีจิสเตอร์ทีมส่วนใหญ่ใน RISC คือ คำสั่งด่วนของประเภท "register-register" และดำเนินการโดยไม่ต้องเข้าถึง OP การเข้าถึง OP จะถูกบันทึกในคำสั่งสำหรับการโหลดรีจิสเตอร์จากหน่วยความจำและจัดเก็บไว้ใน OP เท่านั้น เพื่อให้เป็นไปได้ ตัวประมวลผลจะต้องมีรีจิสเตอร์ที่ใช้ร่วมกันจำนวนมากเพียงพอ

ด้วยคุณลักษณะเฉพาะของสถาปัตยกรรม RISC - ชุดคำสั่งที่ลดลง (ปกติจะไม่เกิน 50-100) จำนวนเล็กน้อย(ปกติ 2-3) วิธีง่ายๆที่อยู่ (ส่วนใหญ่เป็นการลงทะเบียน) จำนวนน้อย รูปแบบที่เรียบง่ายทีมด้วย ขนาดคงที่และวัตถุประสงค์การทำงานของสาขาของพวกเขา - อุปกรณ์ควบคุมของโปรเซสเซอร์นั้นง่ายขึ้นซึ่งในกรณีนี้ทำโดยไม่มีระดับการควบคุมไมโครโปรแกรมและหน่วยความจำควบคุมและชุดควบคุมสามารถใช้งานได้บน "ตรรกะวงจร"

การลดจำนวนคำสั่งที่ดำเนินการและคุณสมบัติอื่น ๆ ของสถาปัตยกรรม RISC ที่ระบุไว้ข้างต้นทำให้โครงสร้างโปรเซสเซอร์ง่ายขึ้นอย่างมีนัยสำคัญจนสามารถนำไปใช้กับชิปตัวเดียวพร้อมกับไฟล์ลงทะเบียนและแคชขนาดใหญ่

มีการลงทะเบียนจำนวนมาก โดยเฉพาะอย่างยิ่งหากมีการลงทะเบียนให้ การใช้งานที่มีประสิทธิภาพ“การปรับคอมไพเลอร์ให้เหมาะสม” ช่วยให้คุณลดการเข้าถึง OP ให้ถึงขีด จำกัด โดยการจัดเก็บผลลัพธ์ระดับกลางในรีจิสเตอร์ ถ่ายโอนตัวถูกดำเนินการจากโปรแกรมหนึ่งไปยังโปรแกรมอื่นหรือรูทีนย่อยผ่านรีจิสเตอร์ และปฏิเสธที่จะถ่ายโอนเพื่อบันทึกเนื้อหาของรีจิสเตอร์ใน OP ระหว่าง การหยุดชะงัก

คุณลักษณะของสถาปัตยกรรม RISC คือกลไก หน้าต่างลงทะเบียนที่ทับซ้อนกันออกแบบมาเพื่อลดจำนวนการเข้าถึง OP และการถ่ายโอนระหว่างการลงทะเบียนซึ่งช่วยปรับปรุงประสิทธิภาพของคอมพิวเตอร์

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



หน้าต่างประกอบด้วยกลุ่มย่อยสามกลุ่มของการลงทะเบียน (รูปที่ 9.21) กลุ่มย่อยแรกประกอบด้วยพารามิเตอร์ที่ส่งผ่านไปยังโพรซีเดอร์นี้จากผู้เรียก และผลลัพธ์สำหรับ ขั้นตอนการโทรเมื่อกลับไปหามัน กลุ่มย่อยที่สองประกอบด้วยตัวแปรขั้นตอนในเครื่อง ประการที่สามเป็นบัฟเฟอร์สำหรับการแลกเปลี่ยนแบบสองทางระหว่างขั้นตอนนี้กับขั้นตอนถัดไปที่เรียก ถ่ายโอนพารามิเตอร์จากขั้นตอนนี้ไปยังขั้นตอนหลัง ซึ่งในทางกลับกันจะได้รับผลลัพธ์จากขั้นตอนที่เรียกผ่านบัฟเฟอร์นี้ ดังนั้น กลุ่มย่อยเดียวกันสำหรับขั้นตอนที่กำหนดคือรีจิสเตอร์หน่วยเก็บข้อมูลชั่วคราว และกลุ่มย่อยถัดไปคือรีจิสเตอร์พารามิเตอร์ หน้าต่างแยกต่างหากซึ่งเข้าถึงได้ทุกขั้นตอนของโปรแกรม ได้รับการจัดสรรสำหรับตัวแปรส่วนกลาง

ปัจจุบันไมโครโปรเซสเซอร์จำนวนหนึ่งที่มีสถาปัตยกรรม RISC ได้รับการเผยแพร่ในต่างประเทศ ตัวอย่างคือสเตชั่นประสิทธิภาพสูงที่ใช้ไมโครโปรเซสเซอร์ Alpha 21264 ซึ่งเป็นไมโครโปรเซสเซอร์สำหรับ WindowsCE Intel StrongARM

แม้ว่าจุดเริ่มต้นของการใช้สถาปัตยกรรม RISC ในคอมพิวเตอร์ที่ผลิตทางอุตสาหกรรม การอภิปรายยังคงดำเนินต่อไปเกี่ยวกับข้อดีและข้อเสียของสถาปัตยกรรมนี้ โดยเฉพาะอย่างยิ่งอย่างหลังรวมความยาวของโค้ดโปรแกรมที่มากขึ้นหลังจากการคอมไพล์เมื่อเปรียบเทียบกับความยาวของโค้ดของเครื่องจักรในสถาปัตยกรรมทั่วไป ตัวอย่างเช่น เมื่อจำลองคำสั่ง x86 โดยเฉลี่ย แต่ละคำสั่งต้องใช้คำสั่งห้าถึงหกคำสั่งจากเครื่องที่มีสถาปัตยกรรม RISC อย่างไรก็ตาม จากการศึกษาพบว่า ความเร็วในการดำเนินการคำสั่งที่เพิ่มขึ้นมีมากกว่าการสูญเสียจากการเพิ่มความยาวของโค้ดอ็อบเจ็กต์ของโปรแกรม

ในปี 1989 อินเทลจัดการเพื่อสร้างไมโครโปรเซสเซอร์ชิปตัวเดียว 80860 โดยใช้สถาปัตยกรรม RISC ซึ่งเทียบเท่ากับซิลิคอนของซูเปอร์คอมพิวเตอร์ Grey-1

การจำแนกสถาปัตยกรรมไมโครโปรเซสเซอร์

การพัฒนาสถาปัตยกรรมคอมพิวเตอร์โดยมีวัตถุประสงค์เพื่อเพิ่มประสิทธิภาพในหลายกรณีเป็นไปตามเส้นทางของการเพิ่มความซับซ้อนของโปรเซสเซอร์โดยการขยายระบบ (ชุด) คำสั่งแนะนำคำสั่งที่ซับซ้อนซึ่งดำเนินการตามขั้นตอนที่เข้าใกล้ภาษาดั้งเดิมระดับสูงเพิ่มขึ้น จำนวนวิธีระบุที่อยู่ที่ใช้ ฯลฯ

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

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

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

การวิเคราะห์โค้ดโปรแกรมที่สร้างโดยคอมไพเลอร์ภาษาระดับสูงพบว่ามีชุดจำกัดเท่านั้น คำสั่งง่ายๆรูปแบบ "register, register -> register" และ "register<->หน่วยความจำ" คอมไพเลอร์ไม่สามารถใช้คำสั่งที่ซับซ้อนได้อย่างมีประสิทธิภาพ การสังเกตนี้มีส่วนทำให้เกิดแนวคิดของโปรเซสเซอร์ที่มีชุดคำสั่งแบบย่อที่เรียกว่าโปรเซสเซอร์ RISC

อีกเหตุการณ์หนึ่งที่นำไปสู่การเกิดขึ้นของโปรเซสเซอร์ RISC ก็คือการพัฒนาสถาปัตยกรรมตัวประมวลผลไปป์ไลน์ประเภท Cray โปรเซสเซอร์เหล่านี้ใช้ชุดคำสั่งแยกต่างหากสำหรับการทำงานกับหน่วยความจำและชุดคำสั่งแยกต่างหากสำหรับการแปลงข้อมูลในการลงทะเบียนโปรเซสเซอร์ แต่ละคำสั่งดังกล่าวจะถูกแบ่งออกเป็นขั้นตอนจำนวนเล็กน้อยอย่างสม่ำเสมอโดยใช้เวลาดำเนินการเท่ากัน (ดึงคำสั่ง, ถอดรหัสคำสั่ง, ดำเนินการ, บันทึกผลลัพธ์) ซึ่งทำให้สามารถสร้างไปป์ไลน์ตัวประมวลผลที่มีประสิทธิภาพซึ่งสามารถสร้างผลลัพธ์ของการดำเนินการได้ คำสั่งถัดไปทุกรอบสัญญาณนาฬิกา

อย่างไรก็ตาม การดำเนินการตามคำสั่งไปป์ไลน์ทำให้เกิดปัญหาที่เกี่ยวข้องกับข้อมูลและการควบคุมการพึ่งพาระหว่างคำสั่งที่เรียกใช้ตามลำดับในไปป์ไลน์ ตัวอย่างเช่น หากคำสั่งถัดไปใช้ผลลัพธ์ของคำสั่งก่อนหน้า การดำเนินการจะเป็นไปไม่ได้ในระหว่างรอบสัญญาณนาฬิกาหลายรอบที่จำเป็นเพื่อให้ได้ผลลัพธ์นี้ ปัญหาที่คล้ายกันเกิดขึ้นเมื่อดำเนินการคำสั่ง Jump แบบมีเงื่อนไข เมื่อข้อมูลที่ทำการ Jump ยังไม่พร้อมเมื่อถึงเวลาที่คำสั่ง Jump แบบมีเงื่อนไขถูกถอดรหัส

ปัญหาเหล่านี้แก้ไขได้โดยคอมไพเลอร์ซึ่งกำหนดลำดับการรันคำสั่งในไปป์ไลน์และแทรกคำสั่ง "ไม่มีการดำเนินการ" เมื่อไม่สามารถเรียกใช้คำสั่งถัดไปได้ หรือโดยฮาร์ดแวร์ตัวประมวลผลพิเศษที่ตรวจสอบการขึ้นต่อกันระหว่างคำสั่งและกำจัดข้อขัดแย้ง

หลังจากการแยกโปรเซสเซอร์ RISC ออกเป็นคลาสที่แยกจากกัน โปรเซสเซอร์ที่มีชุดคำสั่งแบบดั้งเดิมเริ่มถูกเรียกว่าโปรเซสเซอร์ CISC ที่มีชุดคำสั่งแบบเต็ม ตามกฎแล้วในโปรเซสเซอร์เหล่านี้มีคำแนะนำมากมาย รูปแบบที่แตกต่างกันและต้องการเซลล์หน่วยความจำจำนวนที่แตกต่างกันเพื่อเป็นตัวแทน สิ่งนี้จะกำหนดประเภทของคำสั่งระหว่างการถอดรหัสระหว่างการดำเนินการ ซึ่งจะทำให้อุปกรณ์ควบคุมโปรเซสเซอร์มีความซับซ้อน และป้องกันไม่ให้ความถี่สัญญาณนาฬิกาเพิ่มขึ้นถึงระดับที่สามารถทำได้ในโปรเซสเซอร์ RISC บนฐานองค์ประกอบเดียวกัน

แน่นอนว่าโปรเซสเซอร์ RISC มีประสิทธิภาพในแอปพลิเคชันเหล่านั้นซึ่งวิธีการเชิงโครงสร้างสามารถนำไปใช้อย่างมีประสิทธิผลเพื่อลดเวลาในการเข้าถึง RAM หากโปรแกรมสร้างลำดับสุ่มของที่อยู่การเข้าถึงหน่วยความจำ และแต่ละหน่วยข้อมูลถูกใช้เพื่อดำเนินการคำสั่งเดียวเท่านั้น ประสิทธิภาพของโปรเซสเซอร์จะถูกกำหนดตามเวลาที่ใช้ในการเข้าถึงหน่วยความจำหลัก ในกรณีนี้ การใช้ชุดคำสั่งแบบลดขนาดจะลดประสิทธิภาพเท่านั้น เนื่องจากต้องมีการถ่ายโอนตัวถูกดำเนินการระหว่างหน่วยความจำและรีจิสเตอร์แทนการดำเนินการหน่วยความจำ หน่วยความจำ - คำสั่งหน่วยความจำ โปรแกรมเมอร์จะต้องคำนึงถึงความจำเป็นในการจัดวางข้อมูลที่ประมวลผลในเครื่อง ดังนั้นเมื่อทำการถ่ายโอนระหว่างระดับหน่วยความจำ ถ้าเป็นไปได้ ข้อมูลทั้งหมดในบล็อกข้อมูลที่ถ่ายโอนจะมีส่วนร่วมในการประมวลผล หากโปรแกรมเขียนในลักษณะที่ข้อมูลถูกวางไว้อย่างวุ่นวายและมีเพียงส่วนเล็ก ๆ เท่านั้นที่ถูกใช้จากบล็อกข้อมูลที่ถ่ายโอนแต่ละบล็อก ความเร็วในการประมวลผลจะช้าลงหลายเท่าของความเร็วของหน่วยความจำหลัก ตามตัวอย่าง เรานำเสนอในตารางที่ 1.1 ผลลัพธ์ของการวัดประสิทธิภาพของไมโครโปรเซสเซอร์ Alpha 21066 233 MHz เมื่อใช้การแปลง Hadamard ที่ n = 8 - 20.

ตารางที่ 1.1 ประสิทธิภาพของไมโครโปรเซสเซอร์ Alpha 2I066 เมื่อทำการแปลง Hadamard

ตัวอย่างแสดงให้เห็นว่าตราบใดที่ข้อมูลยังอยู่ในแคชบนชิป ประสิทธิภาพก็ยังดี ทันทีที่ปริมาณข้อมูลเกินขนาดของหน่วยความจำแคชและการเข้าถึงหน่วยความจำไปยังที่อยู่ "เท่ากัน" ที่กระจายไปตามไดรฟ์ข้อมูล ประสิทธิภาพจะลดลงมากกว่า 7 เท่า

การพัฒนาไมโครโปรเซสเซอร์เกิดขึ้นจากความปรารถนาอย่างต่อเนื่องที่จะรักษาความต่อเนื่องของซอฟต์แวร์ (ซอฟต์แวร์) และเพิ่มผลผลิตโดยการปรับปรุงสถาปัตยกรรมและเพิ่มความถี่สัญญาณนาฬิกา โดยทั่วไปแล้วการรักษาความต่อเนื่องของซอฟต์แวร์และการเพิ่มประสิทธิภาพการผลิตนั้นขัดแย้งกัน โปรเซสเซอร์ที่มีชุดคำสั่ง x86 ซึ่งจัดอยู่ในประเภทโปรเซสเซอร์ CISC มีความเร็วสัญญาณนาฬิกาต่ำกว่าเมื่อเทียบกับไมโครโปรเซสเซอร์จากผู้ผลิตโปรเซสเซอร์ RISC ชั้นนำ มีแอปพลิเคชันที่ประสิทธิภาพของไมโครโปรเซสเซอร์ x86 ต่ำกว่าโปรเซสเซอร์ RISC ที่ใช้งานบนฐานองค์ประกอบเดียวกันอย่างมาก อย่างไรก็ตามความสามารถในการใช้ซอฟต์แวร์ที่รองรับสำหรับ รุ่นที่แตกต่างกันโปรเซสเซอร์ x86 ที่เปิดตัวในช่วงทศวรรษที่ผ่านมาทำให้พวกเขามีตำแหน่งที่โดดเด่นในตลาดอย่างมั่นคง

ในปัจจุบัน จากการพัฒนาแบบบุกเบิกของ NexGen และ AMD ที่ Intel เลือกขึ้นมา มีความพยายามที่จะแก้ไขปัญหาการเพิ่มประสิทธิภาพภายในสถาปัตยกรรม x86 ในการพัฒนาล่าสุด บริษัทเหล่านี้ยังคงรักษาความต่อเนื่องในระบบการเรียนการสอนด้วยไมโครโปรเซสเซอร์ CISC ของตระกูล x86 และสร้างอุปกรณ์ใหม่โดยใช้องค์ประกอบของสถาปัตยกรรม RISC ตัวอย่างของแนวทางนี้คือไมโครโปรเซสเซอร์ Nx586 (NexGen), K5, K6 (AMD), Pentium PRO, Pentium II (Intel) โดยใช้แนวคิดของสถาปัตยกรรมแบบแยกส่วนและคอร์ RISC ตัวแปลฮาร์ดแวร์ถูกสร้างขึ้นในไมโครโปรเซสเซอร์ โดยแปลงคำสั่ง x86 เป็นคำสั่งตัวประมวลผล RISC ในกรณีนี้ หนึ่งคำสั่ง x86 สามารถสร้างคำสั่งตัวประมวลผล RISC ได้สูงสุดสี่คำสั่ง การดำเนินการคำสั่งเกิดขึ้นเช่นเดียวกับในตัวประมวลผลซูเปอร์สเกลาร์ที่พัฒนาขึ้น บริษัทอินเทลใช้วิธีการนี้ในไมโครโปรเซสเซอร์ Pentium Pro ซึ่งเสริมความแข็งแกร่งให้กับตำแหน่งอย่างมากท่ามกลางความก้าวหน้าในสถาปัตยกรรม RISC

โปรเซสเซอร์ซูเปอร์สเกลาร์

  • การแปล

บันทึกของผู้แปลในบทความต้นฉบับ ผู้เขียน (หนึ่งในนั้นคือผู้บุกเบิกโปรเซสเซอร์ RISC D. Patterson) โต้แย้งถึงความจำเป็นในการพัฒนา ISA แบบเปิด (สถาปัตยกรรมชุดคำสั่ง ชุดคำสั่งของโปรเซสเซอร์) และผลิตภัณฑ์ตามนั้น ข้อโต้แย้งที่นำเสนอคือเพื่อกระตุ้นการพัฒนาในด้านคอมพิวเตอร์และเศรษฐกิจเฉพาะกลุ่ม ซึ่งบริษัทการค้าไม่สนใจหรือไม่ยืดหยุ่นเพียงพอ สิ่งเหล่านี้เป็นสิ่งเตือนใจถึงความสำเร็จของมาตรฐานแบบเปิดและซอฟต์แวร์เสรี

ฉันเจอบทความนี้ในเวอร์ชันขยาย (รวมถึงบทความโต้แย้งจากตัวแทน ARM และย่อหน้าต่อต้านจากผู้เขียน!) ในรายงานไมโครโปรเซสเซอร์ (MPR) ฉบับเดือนสิงหาคม การเข้าถึง MPR นั้นมีจำกัดและขยายเฉพาะสมาชิกเท่านั้น เปิดการเข้าถึงมีรายงานต้นฉบับโพสต์บนเว็บไซต์ของมหาวิทยาลัย Berkeley ฉันเสนอคำแปลของเขาด้านล่าง

ชุดคำสั่งควรเป็นอิสระ: The Case For RISC-V โดย Krste Asanović และ David A. Patterson แผนก EECS มหาวิทยาลัยแคลิฟอร์เนีย เบิร์กลีย์ - รายงานทางเทคนิคหมายเลข UCB/EECS-2014-146 www.eecs.berkeley.edu/Pubs/TechRpts/2014/EECS-2014-146.html

ประกาศเกี่ยวกับลิขสิทธิ์และข้อจำกัดความรับผิดชอบ

ลิขสิทธิ์ 2014 โดยผู้เขียน
สงวนลิขสิทธิ์.
การอนุญาตให้ทำสำเนาดิจิทัลหรือฉบับพิมพ์ของงานนี้ทั้งหมดหรือบางส่วนสำหรับการใช้งานส่วนตัวหรือในชั้นเรียนนั้นได้รับอนุญาตโดยไม่มีค่าธรรมเนียม โดยมีเงื่อนไขว่าจะต้องไม่จัดทำหรือแจกจ่ายสำเนาเพื่อผลกำไรหรือข้อได้เปรียบทางการค้า และสำเนาดังกล่าวจะต้องแจ้งให้ทราบและ เต็มการอ้างอิงในหน้าแรก หากต้องการคัดลอก เผยแพร่ซ้ำ โพสต์บนเซิร์ฟเวอร์ หรือแจกจ่ายซ้ำในรายการ จำเป็นต้องได้รับการอนุญาตเฉพาะล่วงหน้า



ระบบแบบกำหนดเองบนชิป (SoC) ซึ่งโปรเซสเซอร์และแคชใช้พื้นที่เพียงส่วนเล็กๆ ของดาย กำลังแพร่หลายมากขึ้น วันนี้มันหายาก อุปกรณ์อิเล็กทรอนิกส์ซึ่งไม่ได้ใช้โปรเซสเซอร์เป็นส่วนหนึ่งของ SoC ดังนั้น บริษัทต่างๆ จำนวนมากจึงกำลังออกแบบชิปที่มีโปรเซสเซอร์มากกว่าที่เคยเป็นมา จากการปฏิวัติของมาตรฐานแบบเปิดและซอฟต์แวร์แบบเปิด เช่น โปรโตคอลเครือข่าย TCP/IP และระบบปฏิบัติการ Linux เหตุใดอินเทอร์เฟซที่สำคัญที่สุดตัวหนึ่งจึงยังคงเป็นกรรมสิทธิ์

อาร์กิวเมนต์ฟรี ISA แบบเปิด

แน่นอนว่า ชุดคำสั่งโปรเซสเซอร์บางชุด (ISA, สถาปัตยกรรมชุดคำสั่งภาษาอังกฤษ) อาจเป็นกรรมสิทธิ์ด้วยเหตุผลทางประวัติศาสตร์และเชิงพาณิชย์ อย่างไรก็ตามไม่มีของแข็งแม้แต่ชิ้นเดียว เทคนิคเหตุผลในการอธิบายการขาดตัวเลือกแบบเปิดฟรี
  1. นี่ไม่ใช่ข้อผิดพลาดหรือการละเว้น บริษัทที่เป็นเจ้าของ ISA ที่ประสบความสำเร็จ เช่น ARM, IBM และ Intel ถือสิทธิบัตรเกี่ยวกับลักษณะเฉพาะของชุดคำสั่ง ซึ่งป้องกันไม่ให้ผู้อื่นนำไปใช้โดยไม่มีใบอนุญาต 1 การเจรจาการใช้งานมีอายุ 6-24 เดือนและอาจมีราคาตั้งแต่ 1 ถึง 10 ล้านดอลลาร์ ซึ่งไม่รวมองค์กรวิชาการและใครก็ตามที่ต้องการการผลิตปริมาณเพียงเล็กน้อยจากกระบวนการ 2. ใบอนุญาตจาก ARM ไม่อนุญาตให้คุณออกแบบด้วยซ้ำ แกนของตัวเอง- คุณจะได้รับสิทธิ์ในการใช้งานเท่านั้น ของพวกเขาการออกแบบ (มีเพียงบริษัทขนาดใหญ่ประมาณ 15 แห่งเท่านั้นที่มีสิทธิ์สร้างคอร์ ARM ใหม่) แม้แต่ "OpenPOWER" ก็ยังเป็นสิ่งที่ตรงกันข้าม คุณต้องชำระเงินให้กับ IBM เพื่อใช้ ISA นี้ สมเหตุสมผลจากมุมมอง ธุรกิจ, การปฏิบัติที่คล้ายกันการออกใบอนุญาตยับยั้งการแข่งขันและนวัตกรรมโดยป้องกันไม่ให้หลายรายออกแบบและแบ่งปันเคอร์เนลที่สอดคล้องกับ ISA ของตนเอง
  2. ไม่ใช่เพราะเจ้าของ ISA เองผลิตซอฟต์แวร์ส่วนใหญ่สำหรับระบบของตน แม้จะมีขนาดของระบบนิเวศซอฟต์แวร์ที่เติบโตขึ้นตาม ISA ยอดนิยม แต่ส่วนแบ่งซอฟต์แวร์ส่วนใหญ่สำหรับพวกเขานั้นเขียนโดยบุคคลภายนอก
  3. บริษัทเหล่านี้ไม่มีความรู้อันศักดิ์สิทธิ์ที่จำเป็นในการสร้าง ISA ที่เพียงพอ เป็นงานที่หนักมาก แต่ทุกวันนี้หลายๆ คนสามารถออกแบบชุดคำสั่งได้
  4. ISA ที่ได้รับความนิยมมากที่สุดไม่ได้หรูหราที่สุด ทั้ง 80x86 และ ARM ไม่ถือเป็นมาตรฐานของการออกแบบที่ดี
  5. ไม่จำเป็นต้องมีการควบคุมของบริษัทเพื่อตรวจสอบการปฏิบัติตามข้อกำหนดของ ISA องค์กรแบบเปิดได้พัฒนากลไกเพื่อรับรองความเข้ากันได้ของฮาร์ดแวร์เมื่อหลายปีก่อน ตัวอย่าง: มาตรฐานจุดลอยตัว IEEE 754, อีเธอร์เน็ต, PCIe หากไม่เป็นเช่นนั้น มาตรฐานไอทีแบบเปิดก็คงไม่ได้รับความนิยมมากนัก
  6. สุดท้ายนี้ ไม่มีการรับประกันว่า ISA ที่เป็นกรรมสิทธิ์จะมีอายุการใช้งานยาวนาน หากบริษัทล้มละลายและหายตัวไป บริษัทก็จะนำ ISA ไปด้วย การสิ้นสุดของ DEC ยุติการพัฒนาชุดคำสั่ง Alpha และ VAX

โปรดทราบว่า ISA นั้นเป็นข้อกำหนดเฉพาะของอินเทอร์เฟซ ไม่ใช่การใช้งาน มีสามวิธีในการใช้อินเทอร์เฟซ:

1. ปิดส่วนตัว คล้ายกับ Apple iOS
2. โอเพ่นซอร์สที่ได้รับใบอนุญาต เช่น Wind River VxWorks
3. ฟรีและเปิดกว้าง ซึ่งผู้ใช้สามารถเปลี่ยนแปลงและแบ่งปันได้ เช่นเดียวกับที่ทำใน Linux

ในทางปฏิบัติ ISA ที่เป็นกรรมสิทธิ์ช่วยให้คุณสามารถทำงานกับสองแนวทางแรกได้ แต่คุณต้องมี ISA แบบโอเพ่นซอร์สฟรีเพื่อรองรับทั้งสามแนวทาง

ดังนั้นเราจึงสรุปได้ว่าอุตสาหกรรมจะได้รับประโยชน์จาก ISA โอเพ่นซอร์สที่ใช้งานได้ฟรีมากพอๆ กับที่ได้ประโยชน์จากการพัฒนาซอฟต์แวร์โอเพ่นซอร์สฟรี ตัวอย่างเช่นสิ่งนี้จะสร้าง ตลาดเปิดสำหรับการออกแบบโปรเซสเซอร์ฟรีอย่างแท้จริงซึ่งปัจจุบันถูกขัดขวางโดยสิทธิบัตรเกี่ยวกับนิสัยใจคอของ ISA

สิ่งนี้อาจนำไปสู่:

1. นวัตกรรมผ่านการแข่งขันในตลาดเสรีของนักออกแบบจำนวนมาก รวมถึงการใช้งาน ISA แบบเปิดและแบบปิด
2. การออกแบบแกนเปิดทั่วไป ซึ่งจะส่งผลให้เวลาออกสู่ตลาดลดลง ลดต้นทุนการใช้ซ้ำ น้อยลงข้อผิดพลาดอันเนื่องมาจากความเอาใจใส่อย่างใกล้ชิดของบุคคลจำนวนมาก 3 และด้วยความโปร่งใส ซึ่งจะทำให้หน่วยงานของรัฐดำเนินการลับๆ ได้ยาก
3. มีโปรเซสเซอร์สำหรับ มากกว่าอุปกรณ์ซึ่งจะช่วยพัฒนา Internet of Things (IoT) โดยมีต้นทุนประมาณหนึ่งดอลลาร์

อาร์กิวเมนต์สำหรับ RISC เป็นรูปแบบสำหรับ ISA แบบเปิดฟรี

เพื่อให้ ISA ใดๆ ได้รับการยอมรับจากชุมชนโอเพ่นซอร์ส เราเชื่อว่าจะต้องมีประวัติการใช้งานเชิงพาณิชย์ที่ประสบความสำเร็จ คำถามแรกคือรูปแบบใดของ ISA ที่แสดงให้เห็นถึงประวัติศาสตร์ดังกล่าว? ตลอด 30 ปีที่ผ่านมา ประวัติศาสตร์ไม่เคยมีความสำเร็จแม้แต่ครั้งเดียว สแต็คสถาปัตยกรรม ( หมายเหตุของผู้แปล: คำสั่งแปลก ๆ เนื่องจากความสำเร็จของ Java bytecode และ .NET CLI - สถาปัตยกรรมสแต็ก- ยกเว้นในส่วนแอปพลิเคชัน DSP (การประมวลผลสัญญาณดิจิทัล) VLIWก็ล้มเหลวเช่นกัน: Multiflow ลอยขึ้นและ Itanium แม้จะมีการลงทุนหลายพันล้านดอลลาร์จาก HP และ Intel แต่ก็ไม่ได้รับการยอมรับ เป็นเวลาหลายทศวรรษแล้ว ไม่ใช่อันใหม่แม้แต่อันเดียว ซีไอเอสซี ISA ไม่ประสบความสำเร็จ สถาปัตยกรรม CISC ที่ยังหลงเหลืออยู่จะแปลคำสั่งที่ซับซ้อนให้เป็น ISA ที่เรียบง่ายกว่า ซึ่งสมเหตุสมผลมากสำหรับการรันโค้ดเบสแบบเดิมอันทรงคุณค่า ตามคำจำกัดความ ISA ใหม่จะไม่มีฐานดังกล่าว ดังนั้นต้นทุนฮาร์ดแวร์เพิ่มเติมและการใช้พลังงานที่จำเป็นสำหรับการออกอากาศจึงเป็นเรื่องยากที่จะพิสูจน์ได้: ทำไมไม่ใช้ ISA ที่ง่ายกว่านี้ล่ะ RISC-ชุดคำสั่งแบบโหลดสโตร์เป็นที่รู้จักมาอย่างน้อย 50 ปี นับตั้งแต่ยุค CDC 6600 ของ Seymour Cray แม้ว่า 80x86 จะชนะสงครามพีซี แต่ RISC ก็ครองแท็บเล็ตและโทรศัพท์ในยุคหลังพีซี มีการขาย ARM มากกว่า 10 พันล้านเครื่องในปี 2556 เทียบกับ 0.3 พันล้าน x86 ย้ำสิ่งที่เราพูดไปแล้วในปี 19804 เราเชื่อว่า RISC เป็นเช่นนั้น ทางเลือกที่ดีที่สุดสำหรับ ISA ที่เสรีและเปิดกว้าง

นอกจากนี้ RISC ISA ใหม่อาจดีกว่ารุ่นก่อนๆ หากคำนึงถึงข้อผิดพลาดในระหว่างการพัฒนา:

  1. มีข้อยกเว้นมากเกินไป: การขาดคำสั่งโหลด/จัดเก็บสำหรับไบต์และ halfword ใน Alpha ISA แรก และการไม่มีการโหลด/จัดเก็บสำหรับตัวเลขทศนิยมใน MIPS I
  2. การผสมผสานความซ้ำซ้อน: การเลื่อนในตัวคำสั่ง ARM และหน้าต่างการลงทะเบียน SPARC
  3. ผลกระทบของรายละเอียดสถาปัตยกรรมจุลภาคต่อ ISA: การล่าช้าของสาขาใน MIPS และ SPARC กับดักอุปสรรคสำหรับตัวเลขทศนิยมบน Alpha

เพื่อตอบสนองความต้องการของตลาดแบบฝัง RISC ได้จัดเตรียมวิธีแก้ปัญหาสำหรับปัญหาขนาดโค้ด: ARM Thumb และ MIPS16 ได้เพิ่มรูปแบบ 16 บิตเพื่อสร้างโค้ดที่สั้นกว่า 80x86 จึงมีข้อตกลงกันอย่างกว้างขวางว่า RISC ISA ที่ดีโดยทั่วไปควรมีลักษณะอย่างไร

ข้อโต้แย้งสำหรับการใช้ RISC ISA แบบเปิดฟรีที่มีอยู่

มี RISC ISA 5 แบบโอเพ่นซอร์สฟรีสามตัวอยู่แล้ว:
  • SPARC V8 - ด้วยเครดิตของ Sun Microsystems พวกเขาจึงสร้าง SPARC V8 มาตรฐานอีอีอีในปี 1994
  • OpenRISC เป็นโครงการโอเพ่นซอร์สที่ได้รับลิขสิทธิ์จาก GNU เริ่มต้นในปี 2543 โดยมี ISA 64 บิตแล้วเสร็จในปี 2554
  • RISC-V - ในปี 2010 ส่วนหนึ่งเนื่องมาจากข้อจำกัด IP ของ ARM และการขาดโหมด 64 บิต และเนื่องจากความแปลกประหลาดโดยทั่วไปของ ARM v7 เราและนักเรียนของเรา Andrew Waterman และ Yunsup Lee พัฒนา RISC-V 6 (ออกเสียงว่า "RISC -5") เพื่อวัตถุประสงค์ในการวิจัยและการสอนของเรา และเผยแพร่ภายใต้ใบอนุญาต BSD

เนื่องจากโดยปกติแล้วจะใช้เวลาหลายปีกว่าจะได้จุดปลีกย่อยที่สมบูรณ์แบบ OpenRISC ใช้เวลา 11 ปีจึงจะเติบโต ในขณะที่ RISC-V ใช้เวลา 4 ปี การเริ่มต้นด้วย ISA ที่มีอยู่จึงเหมาะสมกว่าการจัดตั้งคณะกรรมการและเริ่มต้นใหม่ทั้งหมด RISC ทั้งหมดมีความคล้ายคลึงกัน ดังนั้นรายการใดรายการหนึ่งอาจเป็นตัวเลือกที่ดีได้

เนื่องจาก ISA สามารถคงอยู่ได้นานหลายทศวรรษ จึงจำเป็นต้องคาดการณ์และอธิบายภูมิทัศน์ในอนาคตก่อน เทคโนโลยีสารสนเทศเพื่อทำความเข้าใจว่าคุณลักษณะใดที่อาจมีความสำคัญในการอำนวยความสะดวกในกระบวนการจัดลำดับความสำคัญ เป็นไปได้มากว่าจะมีสามแพลตฟอร์มที่มีชัย: IoT - อุปกรณ์ราคาถูกนับพันล้านเครื่องที่มีที่อยู่ IP และการเข้าถึงอินเทอร์เน็ต; 2) ส่วนตัว อุปกรณ์เคลื่อนที่, เช่น โทรศัพท์สมัยใหม่และแท็บเล็ต 3) ศูนย์ข้อมูล (คอมพิวเตอร์ระดับคลังสินค้า, WSC) เป็นไปได้ที่จะมี ISA ที่แตกต่างกันสำหรับแพลตฟอร์มแต่ละประเภท แต่ชีวิตจะง่ายขึ้นถ้ามีทุกที่ รูปภาพแห่งอนาคตนี้มีข้อกำหนดหลักสี่ประการ

1. ISA พื้นฐานพร้อมรูปแบบส่วนขยาย 7 เพื่อปรับปรุงประสิทธิภาพและลดต้นทุน ระบบ SoC จึงเพิ่มตัวเร่งความเร็วเฉพาะแอปพลิเคชันของตนเอง เพื่อให้บรรลุเป้าหมายนี้ และเพื่อรักษาฐานโค้ดที่เสถียร ISA แบบเปิดฟรีจะต้องมี: ก) แกนคำสั่งเล็กๆ ที่คอมไพเลอร์และระบบปฏิบัติการรู้จัก ข) มาตรฐาน แต่เป็นส่วนขยายเพิ่มเติมสำหรับสถานการณ์ส่วนตัวบ่อยครั้งในการปรับ SoC ไปยังแอปพลิเคชันเฉพาะ c) พื้นที่สำหรับรหัสคำสั่งใหม่ทั้งหมดสำหรับการทำงานของคันเร่ง

2. การเข้ารหัสคำสั่งแบบกะทัดรัด แนะนำให้ใช้โค้ดน้อยลงเนื่องจากความอ่อนไหวของราคาของแอปพลิเคชัน IoT ต่อจำนวนหน่วยความจำที่ใช้

3. การคำนวณความแม่นยำสี่เท่า (QP, ความแม่นยำสี่เท่า) บนตัวเลขทศนิยม นอกเหนือจากความแม่นยำสองเท่าและเดี่ยว แอปพลิเคชันบางตัวที่ทำงานในศูนย์ข้อมูลในปัจจุบันจะประมวลผลข้อมูลปริมาณมากจนใช้ไลบรารีซอฟต์แวร์สำหรับ QP อยู่แล้ว

4. การกำหนดแอดเดรส 128 บิต นอกเหนือจาก 32- และ 64- บิต ข้อจำกัดด้านหน่วยความจำของอุปกรณ์ IoT หมายความว่าการกำหนดแอดเดรสแบบ 32 บิตจะยังคงมีความเกี่ยวข้องเป็นเวลานาน ที่อยู่แบบ 64 บิตถือเป็นมาตรฐานสำหรับทุกคน ระบบขนาดใหญ่- แม้ว่าอุตสาหกรรม WSC จะไม่จำเป็นต้องมีไบต์ทั้งหมด 2,128 ไบต์ แต่ก็มีความเป็นไปได้ที่ภายในหนึ่งทศวรรษ จะต้องมีจำนวนเกิน 2,64 (16 เอ็กซาไบต์) เพื่อจัดการกับพื้นที่จัดเก็บข้อมูล SSD ขนาดพื้นที่ที่อยู่จำกัดเป็นหนึ่งในข้อบกพร่องของ ISA ที่แก้ไขได้ยาก 8 และควรวางแผนสำหรับที่อยู่ขนาดใหญ่ในขณะนี้

ตารางต่อไปนี้สรุปข้อมูลเกี่ยวกับ ISA แบบโอเพ่นซอร์สฟรีสามตัวตามเกณฑ์สี่ข้อนี้ ตลอดจนความพร้อมใช้งานของคอมไพเลอร์และการสนับสนุนระบบปฏิบัติการที่มีพอร์ต

ข้อโต้แย้งสำหรับ RISC-V ในรูปแบบ ISA แบบเปิดและเสรี

ชุมชนของเราต้องรวมตัวกันอยู่เบื้องหลัง ISA เดียวเพื่อทดสอบว่า ISA แบบเปิดที่เสรีสามารถทำงานได้ในทางปฏิบัติ มีเพียง RISC-V เท่านั้นที่ตอบสนองข้อกำหนดทั้งสี่ประการ นอกจากนี้ยังอายุน้อยกว่า RISC อื่นๆ ถึง 10 ถึง 20 ปี ดังนั้นเราจึงสามารถวิเคราะห์และแก้ไขข้อบกพร่อง เช่น SPARC และ OpenRISC สล็อตล่าช้าของสาขา ดังนั้นระบบคำสั่ง RISC-V จึงเรียบง่ายและชัดเจน (ดูตารางที่ 4 และ 5 ของบทความต้นฉบับ รวมถึง www.riscv.org) นอกเหนือจากข้อเท็จจริงที่ว่า ISA ที่เหลือไม่เป็นไปตามข้อกำหนดมากมาย ยังมีข้อสงสัยเกี่ยวกับข้อเท็จจริงที่ว่า SPARC V9 แบบ 64 บิตเป็นกรรมสิทธิ์และ OpenRISC สูญเสียแรงผลักดันไป
RISC-V ยังคงมีโมเมนตัมอยู่มาก ตารางที่ 1 รายการ กลุ่มต่างๆการออกแบบ SoC บน RISC-V ส่วนหนึ่งเนื่องมาจากการใช้ผลผลิตสูง ระบบเปิดการออกแบบฮาร์ดแวร์ Chisel 9 มหาวิทยาลัย Berkeley มีชิป 8 ประเภทอยู่แล้วและการพัฒนาใหม่อยู่ในกระบวนการ ตารางที่ 2 แสดงให้เห็นว่าแกน RISC-V 64 บิตตัวเดียวใช้พื้นที่ครึ่งหนึ่ง ใช้พลังงานครึ่งหนึ่ง และยังเร็วกว่า ARM 32 บิตที่มีไปป์ไลน์หรือเทคโนโลยีกระบวนการที่คล้ายกัน แม้ว่าจะเป็นเรื่องยากที่จะขจัดอคติของเราในปัญหานี้โดยสิ้นเชิง แต่เราเชื่อว่า RISC-V เป็นตัวเลือกที่ดีที่สุดและปลอดภัยที่สุดสำหรับ RISC ISA แบบเปิดที่ฟรี ดังนั้น เราจะจัดการประชุมเชิงปฏิบัติการ 10 ชุดเพื่อขยายชุมชน RISC-V และได้รับแรงบันดาลใจจากตัวอย่างในตารางที่ 3 เราวางแผนที่จะสร้างมูลนิธิที่ไม่แสวงหาผลกำไรสำหรับงานในการรับรองการใช้งาน และเพื่อสนับสนุนและพัฒนา ISA .

บทสรุป

ข้อโต้แย้งของเราสำหรับ ISA แบบเปิดนั้นชัดเจนกว่าสำหรับระบบปฏิบัติการแบบเปิด เนื่องจาก ISA เปลี่ยนแปลงช้ามาก ในขณะที่นวัตกรรมอัลกอริทึมและแอปพลิเคชันใหม่จำเป็นต้องมีการพัฒนาระบบปฏิบัติการอย่างต่อเนื่อง เช่นเดียวกับ TCP/IP มันเป็นมาตรฐานอินเทอร์เฟซที่บำรุงรักษาและพัฒนาได้ง่ายกว่าระบบปฏิบัติการ

เคยมีการใช้ ISA แบบเปิดมาก่อน แต่ก็ไม่เคยได้รับความนิยมเนื่องจากขาดความต้องการ ราคาต่ำและการใช้พลังงาน IoT ความปรารถนาที่จะมีทางเลือกขนาด 80x86 สำหรับศูนย์ข้อมูล และข้อเท็จจริงที่ว่า แกนประมวลผล- มีเพียงส่วนเล็กๆ แต่แพร่หลายของ SoC ทั้งหมดเท่านั้นที่รวมกันเป็นข้อเสนอที่สามารถตอบสนองความต้องการที่เกิดขึ้นใหม่ได้ RISC-V มุ่งเป้าไปที่ SoC เป็นหลัก โดยมีชุดคำสั่งหลักที่ไม่เคยเปลี่ยนแปลง เนื่องจากแนวคิด RISC มีอายุการใช้งานยาวนาน พร้อมด้วยส่วนขยายเสริมที่พัฒนาอย่างช้าๆ รวมถึงคำสั่งพิเศษที่จะไม่มีวันถูกนำมาใช้ซ้ำ แม้ว่าจุดเริ่มต้นแรกสำหรับ RISC-V อาจเป็น IoT หรือ WSC แต่เป้าหมายของเราก็กว้างกว่า เช่นเดียวกับที่ Linux ได้กลายเป็นระบบปฏิบัติการมาตรฐานสำหรับคนส่วนใหญ่ อุปกรณ์คอมพิวเตอร์เราจินตนาการว่า RISC-V เป็น ISA มาตรฐานสำหรับอุปกรณ์คอมพิวเตอร์ในอนาคตทั้งหมด