Difference Between Horizontal and Vertical Microprogramming
The process of writing microcode for the control memory of a computer’s central processing unit is called microprogramming. The microcode for the control memory is generated after the configuration of a computer and its micro programmed control unit is established. Control memory is part of the control unit which stores all the micro programs that cannot be modified frequently. Each line of the micro program represents a microinstruction which specifies one or more micro-operations. There are two distinct ways microinstructions can be organized: horizontal and vertical. Horizontal microinstructions represent several micro-operations that are executed at the same time. However, in extreme cases, each horizontal microinstruction controls all the hardware resources of the system. On the contrary, the vertical microinstruction resembles the conventional machine language format comprising one operation and a few operands. As opposed to horizontal microinstructions, the vertical microinstruction represents single micro-operations.
Horizontal Microprogramming
In horizontal microprogramming, each bit is identified specifically with a single control point, which indicates that the corresponding micro-operation is to be executed. Since each microinstruction is capable enough to control several resources simultaneously, it has the potential advantage of more efficient hardware utilization and in addition, it requires smaller number of microinstructions per microprogram. It allows higher degree of parallelism with a minimum amount of encoding and separate control fields. However, developing microprograms that use resources optimally or efficiently is a complex task. Horizontal microprogramming offers great flexibility because each control bit is independent of each other. It has greater length so it typically contains more information than vertical microinstructions.
Vertical Microprogramming
Vertical microprogramming employs a variable format and higher degree of encoding, as opposed to horizontal microprogramming. It not only shortens the length of the microinstruction, but also prevents the increasing memory capacity from directly affecting the microinstruction length. Each vertical microinstruction generally represents a single micro-operation. A code is used for each micro-operation to be performed and the decoder translates the code into individual control signals. Because only the micro-operation to be performed is specified, the microinstruction fields are fully utilized. Plus vertical microprograms are easier to write than their horizontal counterparts. Vertical microinstruction resembles the conventional machine language format comprising one operation and a few operands. It is consequently easy to use for microprogramming. It generally consists of four to six fields that require approximately 16 to 32 bits per instruction.
Difference between Horizontal and Vertical Microprogramming
Encoding
Vertical microprogramming employs a variable format and a higher degree of encoding, as opposed to horizontal microprogramming. In vertical microprogramming, the control bits are encoded with each code being used for each action to be performed and an instruction decoder decodes the code into multiple control signals. On the contrary, horizontal microprogramming involves horizontal microinstructions that use no encoding at all. They represent each control bit in the datapath assigned with a separate bit in the microinstruction format. Every bit in the control field is attached to a control line.
Sequence
Horizontal microprogramming generally follows a sequential approach to specify the next microinstruction in a microprogram, similar to conventional machine language format. Each bit is identified specifically with a single control point, which indicates that the corresponding micro-operation is to be executed. Special conditional and unconditional branch microinstructions are then required to break the sequence. Vertical microprogramming may use a relatively addressing scheme in which a few bits are required to specify a relative forward or a backward jump. This requires address computation at every step.
Design
– Vertical microprograms have a better code density which is beneficial for the size of the control store. Vertical microinstruction resembles the conventional machine language format comprising one operation and a few operands. Each vertical microinstruction represents a single micro-operation, while operands may specify the data sink and source. Horizontal microprograms, on the other hand, generally represent multiple micro-operations that are executed at the same time. In extreme cases, each horizontal microinstruction controls several hardware resources simultaneously.
Flexibility
– Horizontal microprograms offer improved flexibility because each control bit is independent of each other. It has greater length so it typically contains more information than vertical microinstructions. Horizontal microinstructions with 48 or more bits are quite common. Horizontal microprograms have the potential advantage of utilizing hardware more efficiently and on top of it, it requires smaller numbers of microinstructions per microprogram. Vertical microinstructions, on the other hand, are more compact but less flexible than horizontal microinstructions. The vertical approach is consequently easy to use for microprogramming.
Horizontal vs. Vertical Microprogramming: Comparison Chart
Summary of Horizontal and Vertical Microprogramming
As opposed to horizontal microinstructions, the vertical microinstruction represents single micro-operations. Horizontal microprograms allow higher degree of parallelism with a minimum amount of encoding and separate control fields whereas the control bits are encoded in vertical microprograms. The choice between the two approaches needs to be made carefully. However, in practical, designers use a combination of horizontal and vertical microinstruction formats so that the resulting structure is compact yet efficient.
- Difference Between Caucus and Primary - June 18, 2024
- Difference Between PPO and POS - May 30, 2024
- Difference Between RFID and NFC - May 28, 2024
Search DifferenceBetween.net :
Email This Post : If you like this article or our site. Please spread the word. Share it with your friends/family.
Leave a Response
References :
[0]Fu, King-Sun. Special Computer Architectures for Pattern Processing. Boca Raton, Florida: CRC Press, 2018. Print
[1]Agrawala, Ashok K. and Tomlinson G. Rauscher. Foundations of Microprogramming: Architecture, Software, and Applications. Cambridge, Massachusetts: Academic Press, 2014. Print
[2]Eshbach, Ovid Wallace and Byron D. Tapley. Eshbach's Handbook of Engineering Fundamentals. Hoboken, New Jersey: John Wiley & Sons, 1990. Print
[3]Schaumont, Patrick R. A Practical Introduction to Hardware/Software Codesign. Berlin, Germany: Springer, 2010. Print
[4]Image credit: https://farm4.staticflickr.com/3181/2532530905_604851670e_b.jpg
[5]Image credit: https://commons.wikimedia.org/wiki/File:Memoria_di_microcodice.png