|
|
|
|
|
|
|
Before beginning any design, we must have an idea as to the type of applications that are to be supported by the design. This involves the formulation of a workload model, usually at the instruction level, based on projected user environments [189]. Workload characterization is itself a fine art, but a good characterization of the environment is also essential to good design. Workload characterization is derived from studies of ''typical" applications. When representative user applications have been determined, each are weighted by the expected frequency of appearance in an environment. Behavior can then be traced to give the designer a database to be used in design studies. A primary aspect of the data is the instruction distribution or the distribution of instruction usage. Format distribution, data dependency distribution, etc., are also aspects important to the understanding of instruction set behavior, and hence are important ingredients in the design of the processor. The data derived from tracing representative applications can be used to generate the design target instruction mix. |
|
|
|
|
|
|
|
|
The data presented in the following sections are categorized by three types of environment: |
|
|
|
|
|
|
|
|
1. The scientific environment, which has been derived largely from Fortran object code but includes both compiler traces and Pascal programs. |
|
|
|
|
|
|
|
|
2. The "classical" commercial environment (payroll, report generation, etc.), which is largely derived from Cobol object and compiler code. |
|
|
|
|
|
|
|
|
3. The systems environment, which is largely derived from data based on the DEC Ultrixâ and Unix operating systems. (This data also generally corresponds to online transaction processing.) |
|
|
|
|
|
|
|
|
This data has been developed using a variety of sources (Huck and Flynn [136], Rossmann [248], MacDougall [189], Clark [52]) and necessarily involves a considerable variety of source programs, applications, and compilers. Three types of instruction set architectures are distinguished for the scientific environment and two types for the commercial environment. In the scientific environment, we distinguish between the L/S, R/M, and R+M types of machines. For the commercial environment, we treat R/M and R+M as being the same, since the R/M prototype (S/390) has MM formats for character and decimal operations. |
|
|
|
|
|
|
|
|
Typically, many load/store architectures have arithmetic coprocessors or floating point support within the instruction set. Therefore, it is assumed that the L/S instruction set has direct support for floating point operations in the scientific environment. However, these instruction sets usually do not support decimal and character strings. These operands may be supported one byte or digit at a time, but rarely is the support more extensive than that. Hence, for the commercial environment we have basically two types of instruction set architectures to consider: |
|
|
|
|
|