Microprogramming is a method of implementing a computer’s control unit systematically. In a nutshell, it’s the process of creating a microcode for a microprocessor.
Microcode is a subsidiary code that dictates how a microprocessor should act when it executes Machine-language instructions, and Microcode is sometimes referred to as Microprogram when it is used in a specific operation.
A microprogrammed control unit, on the other hand, saves binary control values as words in memory.
- In horizontal microprogramming, each control signal corresponds to a bit position in the control word, while in vertical microprogramming, each control signal corresponds to a row in a control store.
- Horizontal microprogramming is more flexible than vertical microprogramming, as changes can be made more easily by altering the control word. In contrast, vertical microprogramming requires changes to the entire row in the control store.
- Vertical microprogramming is faster than horizontal microprogramming, as the control signals can be accessed in parallel, while in horizontal microprogramming, the signals must be accessed sequentially.
Horizontal Microprogramming vs Vertical Microprogramming
In microprogramming, horizontal microprogramming uses a wide microinstruction format with one bit per control signal, offering greater flexibility and speed.Vertical microprogramming uses a narrow microinstruction format that requires decoding, being slower but needing less memory space.
The control signals in a horizontal Microprogrammed Control Unit are represented in decoded binary format.
Each bit in horizontal microprogramming is related to a single control point, manifesting that the applicable micro-operation is to be executed.
Because each microinstruction can command several resources simultaneously, it can potentially improve hardware usage while reducing the number of microinstructions required per microprogram.
The control signals in a vertical microprogrammed control unit are encoded in binary format. Each micro-operation has its code, which the decoder translates into distinct control signals.
The microinstruction fields are completely utilized because just the micro-operation to be performed is defined. In addition, vertical microprograms are simple to write than horizontal microprograms.
|Parameters of Comparison||Horizontal Microprogramming||Vertical Microprogramming|
|Degree of parallelism||a higher degree of parallelism||low degree of parallelism|
|Flexible||It is less flexible||It is more flexible|
|Encoding||It makes less use of ROM encoding than Vertical Microprogramming||It makes more use of ROM encoding|
|Additional hardware||No additional hardware is required||Additional hardware is in the form of decoders|
|Sequence||It uses horizontal microinstruction||It uses vertical microinstruction|
What is Horizontal Microprogramming?
In the horizontally Micro programmed control unit, the control signals are shown in the decoded binary format, that is, 1but/CS there ‘n’ control signals need n but encoding.
Each bit in horizontal microprogramming is related to a singular control point, demonstrating that the relevant micro-operation is to be performed.
Because each microinstruction can manage many resorts at the same time, it has the potential to improve hardware usage while also requiring fewer microinstructions per microprogram.
On the other hand, horizontal microprograms represent a set of micro-operations carried out simultaneously.
It allows for more parallelism while utilizing less encoding and separating the control fields. On the other hand, developing microprograms that use resources optimally or efficiently is a difficult challenge.
Because each control bit is independent of the others, horizontal microprogramming provides a lot of freedom. Because it is longer than vertical microinstructions, it provides more information.
Like traditional machine language, horizontal microprogramming uses a sequential way to express the next speciﬁcations in rational software.
Each bit is linked to a single command post, indicating that it corresponds to the relevant control point. A micro-operation will be carried out. Branches that are both conditionally and unconditional. The sequence must then be broken using control features.
What is Vertical Microprogramming?
Control signals are defined in encoded binary format in vertical microprogrammed control units, and ‘n’ control signals require log2n bit encoding.
Vertical microprogramming, as opposed to horizontal microprogramming, uses a flexible format and a higher degree of encoding.
It reduces the length of the microinstruction and prevents the length of the microinstruction from being directly affected by increased memory capacity. In most cases, each vertical microinstruction represents a single micro-operation.
Vertical microprograms have a higher code density, which benefits the control store’s size. Vertical microinstruction is similar to the traditional machine language style, which consists of only one operation and a few operands.
Writing vertical microprograms is easier than writing horizontal microprograms. Vertical microinstruction resembles classical machine language, which has only one action and a few operands.
As a result, microprogramming is straightforward to implement. It consists of four to six fields, each requiring 16 to 32 bits per instruction.
Vertical microprograms have a higher code saturation, which benefits the control store’s capacity. Vertical microinstruction is similar to the traditional machine language style, which consists of only one function and a few processing elements.
Each vertical microinstruction defines a specific micro-operation, with operands indicating the source of data and sink.
Main Difference Between Horizontal Microprogramming and Vertical Microprogramming
- Horizontal Microprogramming allows for a higher degree of parallelism; if the degree is n, then n control signals are enabled at the same time. On the other hand, horizontal Microprogramming allows for a low degree of parallelism; if the degree is either 0 or 1, then only one control signal is enabled at a time.
- Horizontal Microprogramming is less flexible than vertical Microprogramming control unit.
- Horizontal Microprogramming makes less use of RaoM encoding, whereas vertical Microprogramming makes more of ROM encoding to reduce the length of the control word.
- No additional hardware is required for horizontal Microprogramming, but in vertical Microprogramming additional hardware is in the form of decoders that are required to generate control signals.
- Horizontal microprogramming employs horizontal microinstruction, in which each bit in the control field is associated with a control line. On the other Vertical microprogramming employs vertical microinstruction, in which each action is assigned a code, which is then translated into individual control signals by decoders.
I’ve put so much effort writing this blog post to provide value to you. It’ll be very helpful for me, if you consider sharing it on social media or with your friends/family. SHARING IS ♥️
Sandeep Bhandari holds a Bachelor of Engineering in Computers from Thapar University (2006). He has 20 years of experience in the technology field. He has a keen interest in various technical fields, including database systems, computer networks, and programming. You can read more about him on his bio page.