
APPENDIX
The next method of measuring performance was to count the number of lines of code in each program. These figures (in Table 6) demonstrate the power of the instruction set and the ease with which the programmer can implement the task using that processor. This has been defined as "ease of use," and is becoming increas- ingly important. Both the cost of programmer time and the amount of software in a typical application are rapidly increasing. This means that a processor which can accomplish more with fewer lines of code can greatly reduce a product's development time and cost.
Table 7 is titled "Bytes of Code." It shows the number of bytes of object code required to encode each pro- gram. This coding efficiency is directly translatable into system memory requirements, and therefore, into system cost. Consequently, coding efficiency is very im- portant in cost sensitive applications which have a large amount of software such as a sophisticated operating system or many user programs.
Tables 2 through 7 contain the results of the four cate- gories of performance measurements. The actual times and numbers are given for each program along with the Relative Performance which is the Z80 time or number divided by the iAPX 88 time or number. For each Table the Average Relative Performance was calculated by adding the Relative Performance figures and dividing by the number of programs (10). An "Adjusted Average" Relative Performance was also calculated. This average is calculated without using the highest and lowest Relative Performance figures from that table. This method makes sure that the average is not greatly affected by one figure which may differ widely from the others, such as the Computer Graphics Relative Execu- tion Time in Table 2.
PROGRAM DESCRIPTIONS
The ten benchmark programs were chosen to demon- strate the capabilities cif the iAPX 88/10 and the Z80 in the areas of Data Manipulation, Computation, and Processor Control. All iAPX 88 code has been as- sembled and run.
1. Computer Graphics
The Computer Graphics program scales the X and Y pairs that make up a graphics display. The
2.
The
3. Vector Add
The
4. Block Move
The Block Move program reads the block length, source, and destination from memory. The block length was chosen to be 126 bytes. The data is moved from the source to the destination using repeated moves. Block Move demonstrates manipulation of string data.
5. Block Translate
The Block Translate program translates a memory block containing EBCDIC characters to ASCII and stores the ASCII characters in another memory block. The translation is done using an EBCDIC to ASCII translation table, and the block length is 125 bytes. This demonstrates string data manipulation and the use of a lookup table.
6. Character Search
The Character Search program searches a table of known length for a specific character. If that character is found, its address is returned. If it is not found, zero is returned. This program demonstrates data com- parison and auto increment addressing.
7. Word Shift
The Word Shift program reads a
8. Reentrant Call
The Reentrant Call program passes three parameters to the called procedure. One is pushed from a general register, the other two are pushed from memory. The procedure is called, the state of the processor is pushed onto the stack, and local storage is set up. The pro- cedure body adds the three parameters and places the result in local storage. The procedure is then exited and the state of the processor is restored.
This program demonstrates the processors call and reen- trant procedures and its ability to pass variables to a called procedure. Support of these features is essential for procedure oriented structured programming.
9. Bubble Sort
The Bubble Sort program sorts a one dimensional array of sixteen bit integer elements into numerically ascend- ing order using the exchange (bubble) sort algorithm. This program was measured for a ten element array in which the integers are initially in descending order. Bub- ble Sort demonstrates indexed addressing and data handling.
4 | AFN·01664A |