Microprogrammed Control : Microinstruction Sequencing

Microinctructions are usually stored in groups where each group specifies a routine, where each routine specifies how to carry out an instruction. Each routine must be able to branch to the next routine in the sequence. An initial address is loaded into Control Address Register, when power is turned on, this is usually the address of the first microinstruction in the instruction fetch routine. The main operations performed by a microprogrammed control unit are to obtain the next microinstruction from the control memory, which is known as microinstruction sequencing and produce the control signals required to execute the microinstruction, which is known as Microinstruction execution. In building a control unit, these operations must be taken in account togather, because both affect the format of the microinstruction and the timing of the control unit. Here, we will focus on sequencing and say as little as possible about format and timing.

Microinstruction Sequencing of  Design Considerations :

Two ideas are used in the design of a microinstruction sequencing method : the size of the microinstruction and the address-generation time. The first idea is obvious, reducing the size of the control memory, reduces the cost of that component. The second idea is simply a requirement to execute microinstructions as fast as possible. In executing a microprogram, the address of the next microinstruction to be executed is found out by one of these methods :
  • Find out by instruction registers
  • Next Sequential address
  • Branch
The first situation occur only once per instruction cycle, just after an instruction is fetched. The second situation is the most common in various designs. the design cannot be minimized just for sequential access. Branches both conditional and unconditional, are an important part of a microprogram. Moreover, microinstruction sequences are generally short, one out of every three or four microinstructions could be a branch. So, it is important to design few bit consuming, time-efficient method for microinstrction branching.

Sequencing Techniques :

According to the current microinstruction, condition flags, and the value stored in the instruction register, a control memory address must be produced for the next microinstruction. We can group them into three general categories. These categories are according to the format of the address information in the microinstruction:
  • Two address  fields
  • Single address field
  • Variable format
As the two address method is simple, it needs more bits in the microinstruction than other methods. With some extra logic, savings can be achieved. A common method is to have a single address field. With this method, the options for next address are as follows :

1. Address field
2. Instruction register code
3. Next sequential address

The address-selection signals, find out which option is choossen. This method minimizes the number of address fields to one. Note that the address fields generally will not be used. So, there is some inefficiency in the microinstructions coding method. 

Another method is given for two entirely different microinstruction format. One bit represents which format is being used. In one format, the rest rest of the bits are used to enable the control signals. In other format, some bits move the branch logic module, and the rest bits give us the address. With the first format, the next address is either the next sequential address or an address obtain form the instruction register. With the second format either a conditional or unconditional branch is being denoted. One disadvantage of this method is that one entire cycle is consumed with each branch microinstruction. With the other methods, address generation happens as part of the same cycle and reduces control memory access.

Next Topic :

No comments:

Post a Comment