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 16-bit X and Y pairs are offset by constant values (XO and YO), then multiplied by a fractional scale factor to obtain the scaled XY pairs. There are 16,384 pairs. This program demonstrates computational capability.

2. 16-Bit Multiply

The 16-Bit Multiply program reads two l6-bit numbers from memory, multiplies them and returns the 32-bit product and the two multiplicands to memory. It demonstrates computational capability.

3. Vector Add

The 16-Bit Vector Add performs an element-by-element add of two twenty element vectors. Vector add demon- strates computation and string processing capabilities.

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 16-bit word from memory, and shifts it N places to the right. (N is chosen to be five.) Zeros rotate in on the left. The result is stored in memory. This demonstrates manipulation of 16-bit data.

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

Page 273
Image 273
Intel 210200-002 manual Block Move