|
|
|
|
|
|
2. One or two source operands (of variable size) that are processed (executed) only up to the first occurrence of a particular byte. Usually, the result is the setting of a condition code. Instructions include CMP.C and CMP.P (decimal compare). |
|
|
|
|
|
|
|
|
3. Operations with two source operands (of variable size) and a result operand that assumes the location and size of one of the operandsprimarily decimal arithmetic instructions. |
|
|
|
|
|
|
|
|
The distribution of the first type of character operation (excluding decimal) is dominated by the MOVE. C (move character instruction), which copies one operand into a result operand. For a commercial mix, the operand distribution is: |
|
|
|
|
Occurrence of these instructions | 9%* | Operand length | 32.6 bytes | * 16 out of 181 instr per 100 HLL operations; R/M architecture, Tables 3.16 and 3.5. |
|
|
|
|
|
|
Some decimal support operations also have a single source, single result format. These include PACK and UNPK (changing from/to packed decimal format) and ZMOVE.P. |
|
|
|
|
|
|
|
|
The second type of operation includes several instructions led by the CMP.C (compare logical characters) which compares two character strings and sets a condition code. |
|
|
|
|
Operand length (specified in instruction) | 3.5B | Operand bytes processed until instruction completion | 2.0B |
|
|
|
|
|
|
The frequency and length data are summarized in Tables 3.21 and 3.22. |
|
|
|
|
|
|
|
|
As execution time is frequently limited by operand length, a simple improvement is to treat MOVE.C with special word (4- or 8-byte) oriented hardwarei.e., move four or eight bytes at a time. Other operations, because of their complexity, are processed serially. |
|
|
|
|
|
|
|
|
Using the longer operand as the determinate of execution time, we compute the following estimates of operation length for the commercial environment: |
|
|
|
|
(a) All MM operands | | (b) Excluding move character (type Ia in Table 3.22) | |
|
|
|
|
|
|
Program behavior design rules summary |
|
|
|
|
|
|
|
|
1. Determine application design environment. |
|
|
|
|
|
|
|
|
2. Choose instruction set class most appropriate. |
|
|
|
 |
|
|
|
|
Note the discussion in the text, i.e., an L/S machine that uses interprocedural register allocation uses the R/M data in the scientific environment. An L/S machine with full support for character and decimal operations may also resemble R/M behavior. |
|
|
|
|
|