166 Part 2 ½ Regions of Computer Space Section 1½ Microprogram-Based Processors
A store cycle acts exactly as a write cycle except that it inhibits in the read cycle immediately preceding it the insertion of the data byte from storage into the R-register.
The CU-field specifies whether storage access should he to main storage (MS) or to a local storage of 256 bytes not explicitly addressable by the 360 language programmer.
Microprogram sequencing and branching. Each microprogram word is stored at a unique address in ROS. A 13-bit ROS address register (W3 . . . W7, XO . . . X7) holds the address of the word being executed. For the symbolic representation of a microprogram (Fig. 3) the ROS address is given in hexadecimal in the upper right corner, and the last two bits of this address are repeated in binary on the upper margin.
After execution of a microprogram step, the next sequential word will not be executed. Instead the address of the next word to be executed is derived as follows. The high five bits (W) remain the same, unless they are changed by a special command in the microword, not explained here (so-called module switching). The next six bits (XO . . . X5) are supplied from the CN-field (written in hexadecimal in the symbolic representation of Fig. 3). The low two bits are set according to conditions specified in the CH and CL fields. X6 is set according to the condition specified by CH. For instance, if CH = 8, then the bit R2 is transferred to X6; if CH = 6, then X6 is set to one if in the last ALU operation a carry had occurred. It is set to zero if no carry had occurred. X7 is controlled by CL. If, for instance, CL = 0, then X7 is set to zero; if X7 = 5, then X7 is set to one if both digits in R are valid decimal digits (i.e., RO...R3 £ 9 and R4...R7 £ 9),X7 is set to zero if either digit in R is not a valid decimal digit (i.e., RO . . . R3 > 9 or R4 . . . R7 > 9). This microprogram sequencing scheme allows a four-way branch after the execution of each microprogram word.
Status bit setting. The CS-field allows the unconditional or conditional setting of certain status bits to he specified, combined in register S. If, for instance, CS = 3, then S4 is set to one if the result of the ALU operations performed in this microprogram cycle shows a zero in the high digit (i.e., Z0 = Z1 = Z2 = Z3 = 0); S4 is set to zero otherwise. At the same time, S5 is set to one if the result of the ALU operation shows a zero in the low digit (i.e., Z4 = Z5 = Z6 = Z7 = 0); S5 is set to zero otherwise. If CS = 9, then S2 is set to one if the result of the ALU operation is not zero (i.e., at least one of the bits Z0 . . . Z7 is equal to 1). If the result of the ALU operation is zero, then S2 is not changed.
Constant field. The 4-bit C K-field is used for various purposes. One instance explained in the ALU statement is to supply a constant B-source for an ALU operation. Other examples not explained here any further are the addressing of a few specific scratchpad local storage locations, module switching (replacement of the high part XV of the ROS address), and the control of certain special functions.
Symbolic representation of micro pro grams. Microprograms are symbolically represented as a network of boxes (Fig. 3) each representing a microword, connected by nets indicating the possible branching ways. Figure 4 gives an example of a microprogram (to be explained in the next section). There exist programming systems to aid in the development of microprograms. They contain symbolic translators to translate the contents of a box according to Fig. 3 into the contents of the actual fields of the microprogram word according to Fig. 2. A drawing program generates documentation. These systems usually also contain programs for simulation and generation of the actual ROS cards.
Figure 4 contains a possible microprogram for decoding and executing
the S/360 logic OR instruction: OR R1,R5, which is encoded as ''1615. (The
accompanying table annotates the OR instruction microprogram depicted in
Fig. 4.) The associated
previous | contents | next