APPENDIX
INTRODUCTION
This benchmark report compares the capabilities
of
Intel's iAPX 88/10 microprocessor with those
of
the
Zilog
Z80. The purpose
of
the report
is
to aid the user in
his evaluation
of
the two processors, and to provide him
with some
of
the information he will need in making a
knowledgeable decision regarding which processor best
satisfies the requirements
of
his application.
Because system requirements can vary greatly from one
application to the next, no one program can adequately
display the capabilities
of
each processor. For this
reason, ten programs have been chosen to demonstrate
the performance
of
the iAPX 88/10 and
Z80
in several
areas. The benchmark programs cover some
ofthe
basic
tasks which are relevant to many
of
the applications for
which these two processors might be considered. These
ten programs demonstrate the processors capabilities in
the areas
of
Data Manipulation, Computation, and
Processor Control. Each program was defined in such a
way
as
to
be
relatively straightforward, while still allow-
ing the processors to use their instruction set efficiently
in implementing the program.
The benchmark programs were used to evaluate the
iAPX 88/10 and Z80 on the basis
of
execution speed,
ease
of
programming (number
of
lines
of
code) and
memory usage. These factors were considered because
they are often the
key
requirements evaluated when a
design decision
is
made. Execution speed
is
a direct
measure
of
how fast a processor will complete a task.
This can be the critical requirement for many real-time
control
or
multi-user systems. Here, cost may not be the
primary issue because a
less
expensive but slower system
may be inadequate, regardless
of
the cost savings. On
the other hand, many systems do have critical cost
requirements for which it may make sense to sacrifice
some execution speed in order to reduce costs. For a
memory intensive system, the cost can
be
reduced
significantly by using less memory, or less expensive
lower speed memory. For this reason, coding efficiency
and memory access time were examined to help evaluate
price/performance tradeoffs. Another factor, the ease
of
programming,
is
becoming more and more important
as the cost
of
memory decreases and the amount
of
soft-
ware in the typical microprocessor application rapidly
grows. For many applications, software development
costs have become greater than hardware development
costs. This means that the total development costs
of
such a project can
be
substantially reduced by using the
processor which accomplishes the most in the least
number
of
lines
of
code. To demonstrate performance
in this area, the processors have been evaluated on the
basis
of
the number
of
lines
of
code required for each
program which has been defined
as
"ease
of
pro-
gramming."
The benchmark programs in this report were written for
the purpose
of
comparing the iAPX 88/10 and Z80
microprocessors. They should be used only
as
a guide in
evaluating processor performance and are not an abso-
lute measure
of
performance for
all
applications. The
programs were written to perform the tasks in a clear
and straightforward manner. They do not necessarily
show an optimized implementation
of
the task for either
processor. The benchmark programs do, however, pro-
vide relevant information and a consistent comparison
which may be useful to the designer in choosing the
microprocessor
whiCh
delivers the best solution to the
requirements
of
his
design.
PROCESSOR DESCRIPTION
A brief description
of
some
of
the
key
features
of
the
iAPX
88
and Z80
is
included here and in Table 1. The
topics discussed are Architecture, Memory Timing,
Instruction Sets, and Addressing Modes. For more com-
plete descriptions, refer
to
Intel's
8086
Family Users
Manual and Zilog's Z80 Programming Manual
or
other
related literature. Throughout this document
iAPX
88
will refer to a 5 MHz system using the
8088
CPU, while
Z80A and Z80B will refer to 4 MHz and 6 MHz systems
using the
Z80 CPU.
Intel iAPX 88
The Intel
8088
(or
88110)
is
the host processor
of
the
iAPX
88
microcomputer system. The 88/10
is
an
N-channel
MaS
microprocessor which currently has a
maximum clock rate
of
5 MHz. Internally the 88/10
is
a
microcoded 16-bit processor which multiplexes a 16-bit
internal data bus onto an 8-bit system data bus for
external communication. The address space
is
1
Megabyte which
is
segmented to support modular pro-
gramming. Except for the implementation
of
the Bus
Interface
Unit, the 88/10
is
identical to the Intel 86/10
microprocessor.
The architecture
of
the 88/10
is
divided into two
separate processing units, the
Bus
Interface Unit (BIU)
and the Execution Unit (EU). These two units perform
separate functions
in
parallel to maximize throughput.
The
EU contains the 16-bit arithmetic/logic unit (ALU)
as
well
as
the general registers and flags
of
the CPU.
It
is
responsible for executing instructions, and communi-
cates only with the BIU. The
BIU
performs all bus
operations needed by the
EU.
It
contains the segment
registers, the instruction pointer, the bus control logic
and the instruction queue. Because the
BIU operates in
parallel with the
EU, instruction fetches overlap instruc-
tion execution. The result
is
efficient utilization
of
the
system bus and transparent instruction prefetch.
The 88/10 contains three sets
of
four 16-bit registers,
and nine one-bit flags. The four data group registers,
AX, BX, CX and DX,
as
well
as
the four pointer
and
in-
dex
registers, SP, BP,
SI
and DI, are all 16-bits wide and
can
be
used as source and destination in most arithmetic
and logic operations. All eight
of
these general registers
function
as
accumulators for many instructions. The
data group registers, AX, BX, CX and DX can also be
AFN-01664A