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.
Horizontal Microprogramming vs Vertical Microprogramming
The main difference between horizontal Microprogramming and vertical microprogramming is that their support, degree of parallelism uses of microprogramming, and flexibility. Both are different from each other when it comes to encoding with bits. They also differ in their design and processing which enables them to find out the data.
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 at the same time, it has the potential to improve hardware usage while also 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 is translated into distinct control signals by the decoder. 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.
Comparison Table Between Horizontal and Vertical Microprogramming
|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 horizontal 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. Horizontal microprograms, on the other hand, typically represent a set of micro-operations that are carried out simultaneously.
It allows for more parallelism while utilizing less encoding and separating the control fields. Developing microprograms that use resources optimally or efficiently, on the other hand, 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 usually provides more information.
Horizontal microprogramming, like traditional machine language, 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 not only reduces the length of the microinstruction but also avoids 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 typically 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.
- Nor 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.
Microprogramming was a hugely effective solution to the challenge of systematically constructing controllers, and it was utilized in the vast majority of processors (with slight alterations) from the mid-1960s through the late 1980s.
Vertical microinstructions, as opposed to horizontal microinstructions, represent single micro-operations. Vertical microprograms encode the control bits, but horizontal microprograms permit for a high degree of parallelism with low encoding and separate control fields. Horizontal microprogramming is quick than vertical microprogrammed control unit.
Horizontal Microprogramming supports longer control words, whereas vertical Microprogramming supports shorter control words. The decision between the two ways must be made with consideration. In practice, however, designers combine horizontal and vertical microinstruction types to create a structure that is both compact and efficient.