อ่าน 3 นาที
ไมโครซีเควนเซอร์
ใน สถาปัตยกรรม และ วิศวกรรม คอมพิวเตอร์ ตัว สร้าง ลำดับการทำงาน (sequencer) หรือ ไมโครตัว สร้างลำดับการทำงาน (microsequencer) ทำหน้าที่สร้างแอดเดรสที่ใช้ในการไล่ดูข้อมูลใน...
ไมโครซีเควนเซอร์
ใน สถาปัตยกรรม และวิศวกรรมคอมพิวเตอร์ตัว สร้าง ลำดับการทำงาน (sequencer)หรือไมโครตัว สร้างลำดับการทำงาน (microsequencer) ทำหน้าที่สร้างแอดเดรสที่ใช้ในการไล่ดูข้อมูลในไมโครโปรแกรมของหน่วยเก็บข้อมูลควบคุมโดยอาจใช้เป็นส่วนหนึ่งของหน่วยควบคุมของซีพียูหรือใช้เป็นตัวสร้างช่วงแอดเดรสแบบแยกต่างหากก็ได้
โดยปกติแล้ว ที่อยู่จะถูกสร้างขึ้นโดยการผสมผสานระหว่างตัวนับ ฟิลด์จากไมโครอินสตรักชัน และส่วนย่อยของรีจิสเตอร์คำสั่งตัวนับใช้ในกรณีทั่วไป คือ ไมโครอินสตรักชันถัดไปจะเป็นคำสั่งที่จะถูกประมวลผล ฟิลด์จากไมโครอินสตรักชันใช้สำหรับการกระโดด หรือตรรกะอื่นๆ
เนื่องจากซีพียูใช้ชุดคำสั่ง จึงเป็นประโยชน์อย่างยิ่งที่จะสามารถถอดรหัสบิต ของคำสั่ง โดยตรงไปยังตัวจัดลำดับ เพื่อเลือกชุดไมโครคำสั่งที่จะดำเนินการตามคำสั่งของซีพียู
โปรเซสเซอร์ CISC สมัยใหม่ส่วนใหญ่ใช้การผสมผสานระหว่างตรรกะแบบไปป์ไลน์เพื่อประมวลผลโอเปอเรเตอร์โค้ดที่มีความซับซ้อนต่ำ ซึ่งสามารถดำเนินการให้เสร็จสิ้นได้ภายในรอบสัญญาณนาฬิกาเดียว และไมโครโค้ดเพื่อใช้งานโอเปอเรเตอร์โค้ดที่ต้องใช้รอบสัญญาณนาฬิกาหลายรอบในการดำเนินการให้เสร็จสิ้น
หนึ่งในโปรเซสเซอร์ไมโครโค้ดแบบบูรณาการรุ่นแรกๆ คือโปรเซสเซอร์ IBM PALMซึ่งจำลองคำสั่งทั้งหมดของโปรเซสเซอร์ในรูปแบบไมโครโค้ด และถูกนำไปใช้ในIBM 5100ซึ่งเป็นหนึ่งในคอมพิวเตอร์ส่วนบุคคลรุ่นแรกๆ
ตัวอย่างล่าสุดของโปรเซสเซอร์แบบโอเพนซอร์สที่ใช้ไมโครซีเควนเซอร์ที่คล้ายกัน ได้แก่ คอร์ MCL86, MCL51 และ MCL65 ของ MicroCore Labs ซึ่งจำลองชุดคำสั่ง Intel 8086/8088, 8051 และ MOS 6502 ทั้งหมดในรูปแบบไมโครโค้ด
ตัวอย่างง่ายๆ
ระบบคอมพิวเตอร์ Digital Scientific Corp. Meta 4 Series 16 เป็นระบบไมโครโปรแกรมที่ผู้ใช้สามารถตั้งโปรแกรมได้ ซึ่งวางจำหน่ายครั้งแรกในปี พ.ศ. 2513 สาขาในลำดับไมโครโค้ดเกิดขึ้นได้ 3 วิธี[ 1 ]
- คำสั่งย่อยแบบแยก สาขา (branch microinstruction ) ระบุที่อยู่ของคำสั่งถัดไป ไม่ว่าจะแบบมีเงื่อนไขหรือไม่มีเงื่อนไขก็ตาม ตัวเลือกดัชนีเชิงตรรกะ (IX) จะทำให้รีจิสเตอร์ลิงก์ 16 บิตถูก ดำเนินการ เชิงตรรกะ ORกับที่อยู่ของสาขา ทำให้ได้ความสามารถในการแยกสาขาแบบใช้ดัชนีอย่างง่าย
- คำสั่งทางคณิตศาสตร์/ตรรกะทั้งหมดอนุญาตให้ใช้ตัวดัดแปลงการกระโดด (J) ซึ่งจะเปลี่ยนเส้นทางการทำงานไปยังคำสั่งย่อยที่ระบุโดยรีจิสเตอร์ลิงก์
- คำสั่งทางคณิตศาสตร์/ตรรกะทั้งหมดอนุญาตให้ใช้ตัวดัดแปลงลดค่าตัวนับ (D) และกระโดด (J) ได้ ในกรณีนี้ ค่าในรีจิสเตอร์ตัวนับลูป 8 บิตจะถูกลดลง หากค่าที่ได้ไม่เป็นศูนย์ ระบบจะกระโดดไปยังค่าในรีจิสเตอร์ Link หากค่าที่ได้เป็นศูนย์ ระบบจะดำเนินการต่อด้วยคำสั่งถัดไป
อีกหนึ่งตัวเลือกการจัดลำดับการทำงานที่อนุญาตให้ใช้กับคำสั่งกระโดดคือตัวเลือก execute (XQ) เมื่อระบุตัวเลือกนี้ คำสั่งเดียวที่ตำแหน่งกระโดดจะถูกดำเนินการ แต่การดำเนินการจะดำเนินต่อไปหลังจากคำสั่งกระโดดเดิมเสร็จสิ้น ตัวเลือก IX สามารถใช้ร่วมกับตัวเลือก XQ ได้
ตัวอย่างที่ซับซ้อน
IBM System/360เป็นชุดคอมพิวเตอร์ที่เข้ากันได้ซึ่งเปิดตัวในปี พ.ศ. 2507 โดยหลายเครื่องได้รับการตั้งโปรแกรมด้วยไมโครโปรแกรม[ 2 ] System /360 รุ่น 40เป็นตัวอย่างที่ดีของเครื่องที่ตั้งโปรแกรมด้วยไมโครโปรแกรมที่มีการจัดลำดับไมโครที่ซับซ้อน[ 3 ]
ไมโครสโตร์ประกอบด้วยไมโครอินสตรักชัน 56 บิต จำนวน 4,096 ชุด ซึ่งทำงานในรูปแบบไมโครโปรแกรมมิงแนวนอน การเข้าถึงสโตร์ทำได้โดยใช้รีจิสเตอร์แอดเดรสแบบอ่านอย่างเดียว (ROAR) ขนาด 12 บิต ซึ่งแตกต่างจากรีจิสเตอร์ส่วนใหญ่ในสถาปัตยกรรม S/360 ตรงที่บิตใน ROAR จะมีหมายเลขกำกับตั้งแต่บิต 0 ทางด้านขวาไปจนถึงบิต 11 ทางด้านซ้าย
++------------+ | คำราม | ++------------+ 11 0
โมเดล 40 ไม่ทำการประมวลผลไมโครอินสตรักชันแบบเรียงลำดับ ดังนั้นไมโครซีเควนเซอร์จึงไม่ได้ทำการแยกสาขาในความหมายทั่วไป แต่ไมโครอินสตรักชันแต่ละอันจะระบุที่อยู่ของอินสตรักชันถัดไปที่จะถูกประมวลผล โดยมีฟิลด์สี่ฟิลด์ในไมโครอินสตรักชันที่ใช้ในการสร้างที่อยู่ใหม่
- CA, 4 บิต: ส่วนหนึ่งของที่อยู่ถัดไป ขึ้นอยู่กับฟิลด์อื่นๆ
- CB, 4 บิต: ใช้กำหนดบิตที่ 1 ของแอดเดรสถัดไป
- CC, 4 บิต: ใช้สำหรับกำหนดบิตที่ 0 ของแอดเดรสถัดไป
- CD, 2 บิต: ควบคุมวิธีการประกอบแอดเดรสถัดไป (ยกเว้นเมื่อฟิลด์ CB มีค่าเป็น 15)
โดยพื้นฐานแล้ว ฟิลด์เหล่านี้มีรูปแบบหรือการจัดเรียงอยู่สามแบบด้วยกัน
รูปแบบสาขาการทำงาน
เมื่อฟิลด์ CB มีค่าเป็น 15 จะเกิดการแยก สาขาแบบฟังก์ชันบิตของที่อยู่ไมโครสโตร์ใหม่ใน ROAR จะถูกกำหนดดังต่อไปนี้
- บิต 11–10: ฟิลด์ซีดี
- บิต 9–6: ฟิลด์ CA
- บิตที่ 5: เป็น 0 เสมอ
- บิต 4–1: 4 บิตลำดับสูงของรีจิสเตอร์ Q ซึ่งเป็นอินพุตด้านขวาของ ALU 8 บิต
- บิต 0: ผลลัพธ์ของการทดสอบที่ระบุโดยฟิลด์ CC
ฟิลด์ CC สามารถระบุการทดสอบสถานะของเครื่องได้หลายแบบ นอกจากนี้ยังสามารถระบุค่าคงที่ 0 หรือ 1 สำหรับบิตที่ไม่ขึ้นกับเงื่อนไขได้อีกด้วย
รูปแบบนี้จะเปลี่ยนการควบคุมการไหลของข้อมูลไปยังคู่ คำสั่ง 1 ใน 16 คู่ ภายใน 32 คำล่างของบล็อกไมโครสโตร์ขนาด 64 คำ (เนื่องจากบิตที่ 5 เป็น 0 เสมอ) จากนั้นฟิลด์ CC จะกำหนดว่าคำสั่งใดในคู่คำสั่งนั้นจะได้รับการควบคุม
ซีดี = รูปแบบ 0, 1, 3
เมื่อฟิลด์ CD เป็น 0, 1 หรือ 3 การควบคุมการไหลจะถูกส่งไปยังคำสั่งภายในบล็อก 64 คำปัจจุบัน บิตของที่อยู่ไมโครสโตร์ใหม่จะถูกกำหนดดังต่อไปนี้
- ส่วนที่ 11–6: ยังคงเหมือนเดิม
- บิต 5–2: ฟิลด์ CA
- บิตที่ 1: ถ้า CD = 0 ผลลัพธ์ของการทดสอบที่ระบุโดยฟิลด์ CB มิฉะนั้นจะเป็น 0
- บิต 0: ผลลัพธ์ของการทดสอบที่ระบุโดยฟิลด์ CC
ฟิลด์ CA จะเลือกกลุ่มคำ 4 คำ จำนวน 1 กลุ่ม จากทั้งหมด 16 กลุ่ม ภายในบล็อกคำ 64 คำปัจจุบัน จากนั้นฟิลด์ CB และ CC จะกำหนดว่าคำสั่งใดใน 4 คำสั่งนั้นจะได้รับการควบคุม
ซีดี = รูปแบบ 2
เมื่อฟิลด์ CD มีค่าเป็น 2 การควบคุมการไหลของข้อมูลจะถูกกำหนดในลักษณะที่ไม่ชัดเจน บิตของที่อยู่ไมโครสโตร์ใหม่จะถูกกำหนดดังนี้:
- ส่วนที่ 11-10: ยังคงเหมือนเดิม
- บิต 9–6: ฟิลด์ CA
- บิต 5–2: คงเดิม
- บิตที่ 1: ผลลัพธ์ของการทดสอบที่ระบุโดยฟิลด์ CB
- บิต 0: ผลลัพธ์ของการทดสอบที่ระบุโดยฟิลด์ CC
คำสั่งถัดไปอยู่ในบริเวณ 1K-word เดียวกันกับคำสั่งปัจจุบัน เนื่องจากบิตที่ 11-10 ยังคงเหมือนเดิม ฟิลด์ CA กำหนดบล็อก 64 word ภายในบริเวณนั้น คำสั่งถัดไปอยู่ในกลุ่ม 4 word เดียวกันภายในบล็อกใหม่ เช่นเดียวกับคำสั่งปัจจุบันที่อยู่ในบล็อกปัจจุบัน เนื่องจากบิตที่ 5-2 ยังคงเหมือนเดิม จากนั้นฟิลด์ CB และ CC จะกำหนดว่าคำสั่งใดใน 4 คำสั่งนั้นจะได้รับการควบคุม
การทำให้ง่ายขึ้น
คำอธิบายนี้ได้ถูกปรับให้ง่ายขึ้นแล้ว โดยไม่ได้กล่าวถึงคุณสมบัติต่อไปนี้
- รุ่น 40 สามารถทำงานได้ทั้งในโหมด CPU หรือโหมดแชนเนล คำอธิบายนี้กล่าวถึงเฉพาะโหมด CPU เท่านั้น
- หากไมโครอินสตรักชันไม่ได้อยู่ในรูปแบบสาขาการทำงาน และฟิลด์ CD เป็น 1 หรือ 3 บิตที่ 1 ของแอดเดรสถัดไปจะเป็น 0 เสมอ ในกรณีนี้ ค่าของฟิลด์ CD และ CB จะกำหนดว่าต้องยกสายควบคุมชุดใดชุดหนึ่งขึ้น
สรุปเนื้อหา
ข้อมูลสำคัญจากบทความ
ข้อมูลสำคัญเกี่ยวกับ ไมโครซีเควนเซอร์
ใน สถาปัตยกรรม และ วิศวกรรม คอมพิวเตอร์ ตัว สร้าง ลำดับการทำงาน (sequencer) หรือ ไมโครตัว สร้างลำดับการทำงาน (microsequencer) ทำหน้าที่สร้างแอดเดรสที่ใช้ในการไล่ดูข้อมูลใน...
ตัวอย่างง่ายๆ
ระบบคอมพิวเตอร์ Digital Scientific Corp. Meta 4 Series 16 เป็นระบบไมโครโปรแกรมที่ผู้ใช้สามารถตั้งโปรแกรมได้ ซึ่งวางจำหน่ายครั้งแรกในปี พ.ศ. 2513 สาขาในลำดับไมโครโค้ดเกิดขึ้นได้ 3 วิธี [ 1 ]
ตัวอย่างที่ซับซ้อน
IBM System/360 เป็นชุดคอมพิวเตอร์ที่เข้ากันได้ซึ่งเปิดตัวในปี พ.ศ. 2507 โดยหลายเครื่องได้รับการตั้งโปรแกรมด้วยไมโครโปรแกรม [ 2 ] System /360 รุ่น 40 เป็นตัวอย่างที่ดีของเครื่องที่ตั้งโปรแกรมด้วยไมโครโปรแกรมที่มีการจัดลำดับไมโครที่ซับซ้อน [ 3 ]
รูปแบบสาขาการทำงาน
เมื่อฟิลด์ CB มีค่าเป็น 15 จะเกิดการแยก สาขาแบบฟังก์ชัน บิตของที่อยู่ไมโครสโตร์ใหม่ใน ROAR จะถูกกำหนดดังต่อไปนี้