ความแตกต่างระหว่างไมโครโปรแกรมแนวนอนและไมโครโปรแกรมแนวตั้ง (พร้อมตาราง)

สารบัญ:

Anonim

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

ไมโครโปรแกรมแนวนอนเทียบกับไมโครโปรแกรมแนวตั้ง

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

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

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

ตารางเปรียบเทียบระหว่างไมโครโปรแกรมแนวนอนและแนวตั้ง

พารามิเตอร์ของการเปรียบเทียบ

ไมโครโปรแกรมแนวนอน

ไมโครโปรแกรมแนวตั้ง

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

ไมโครโปรแกรมแนวนอนคืออะไร?

ในหน่วยควบคุมไมโครที่ตั้งโปรแกรมในแนวนอน สัญญาณควบคุมจะแสดงในรูปแบบไบนารีที่ถอดรหัส นั่นคือ 1แต่/CS มีสัญญาณควบคุม 'n' ที่ต้องการ n แต่เข้ารหัส

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

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

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

Vertical Microprogramming คืออะไร?

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

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

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

ความแตกต่างหลักระหว่างไมโครโปรแกรมแนวนอนและไมโครโปรแกรมแนวตั้ง

  1. ไมโครโปรแกรมแนวนอนช่วยให้มีความขนานในระดับที่สูงขึ้น ถ้าดีกรีเป็น n สัญญาณควบคุม n จะถูกเปิดใช้งานพร้อมกัน ในทางกลับกัน Microprogramming แนวนอนช่วยให้มีความขนานในระดับต่ำ ถ้าระดับเป็น 0 หรือ 1 สัญญาณควบคุมจะเปิดใช้งานในแต่ละครั้งเท่านั้น
  2. ไมโครโปรแกรมแนวนอนมีความยืดหยุ่นน้อยกว่าชุดควบคุมไมโครโปรแกรมมิงแนวตั้ง
  3. ไมโครโปรแกรมแนวนอนใช้การเข้ารหัส RaoM น้อยลง ในขณะที่ไมโครโปรแกรมแนวตั้งทำให้มีการเข้ารหัส ROM มากขึ้นเพื่อลดความยาวของคำควบคุม
  4. ไม่จำเป็นต้องใช้ฮาร์ดแวร์เพิ่มเติมสำหรับ Microprogramming แนวนอน แต่ในแนวตั้ง Microprogramming ฮาร์ดแวร์เพิ่มเติมจะอยู่ในรูปของตัวถอดรหัสซึ่งจำเป็นสำหรับการสร้างสัญญาณควบคุม
  5. ไมโครโปรแกรมแนวนอนใช้ microinstruction ในแนวนอน ซึ่งแต่ละบิตในฟิลด์ควบคุมจะสัมพันธ์กับสายควบคุม ในอีกทางหนึ่ง microprogramming แนวตั้งใช้ microinstruction ในแนวตั้ง ซึ่งแต่ละการกระทำจะได้รับรหัส ซึ่งจะถูกแปลเป็นสัญญาณควบคุมแต่ละตัวโดยตัวถอดรหัส

บทสรุป

ไมโครโปรแกรมมิงเป็นวิธีแก้ปัญหาที่มีประสิทธิภาพอย่างมหาศาลต่อความท้าทายของการสร้างคอนโทรลเลอร์อย่างเป็นระบบ และมันถูกใช้ในโปรเซสเซอร์ส่วนใหญ่ (โดยมีการดัดแปลงเล็กน้อย) ตั้งแต่กลางทศวรรษ 1960 ถึงปลายทศวรรษ 1980

microinstructions แนวตั้ง ตรงข้ามกับ microinstructions แนวนอน แสดงถึง micro-operation เดียว ไมโครโปรแกรมแนวตั้งเข้ารหัสบิตควบคุม แต่ไมโครโปรแกรมแนวนอนอนุญาตให้มีความขนานในระดับสูงโดยมีการเข้ารหัสต่ำและแยกฟิลด์ควบคุม ไมโครโปรแกรมแนวนอนเร็วกว่าชุดควบคุมไมโครโปรแกรมแนวตั้ง

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

อ้างอิง

ความแตกต่างระหว่างไมโครโปรแกรมแนวนอนและไมโครโปรแกรมแนวตั้ง (พร้อมตาราง)