
70
Evaluating and Programming the 29K RISC Family
If the instruction were not dependent on the result of the load, it would have
executed without delay. Because of data forwarding and a 1-cycle data memory, the
load data would be available for instruction
Load+2
without causing a pipeline stall.
1.14
ARCHITECTURAL SIMULATION, sim29
AMD has for a long time made available a 29K simulator which accurately
models the processor operation. This simulator, known as the Architectural Simula-
tor, can be configured to incorporate memory system characteristics. Since memory
system performance can greatly influence overall system performance, the use of the
simulator before making design decisions is highly recommended.
Simulation of all the 29K family members is supported, making the simulator
useful in determining processor choice [AMD 1991c][AMD 1993c]. For example,
does a floating–point intensive application require an Am29050 or will an Am29000
suffice Alternatively, the performance penalties of connecting the data and instruc-
tion busses together on a 3–bus Harvard Architecture processor can be determined.
Because the simulator models detailed processor operation, such as pipeline
stages, cache memory, instruction prefetch, channel operation and much more, the
simulation run–times are longer than if the Instruction Set Simulator (ISS) were used.
Consequently, the Architectural Simulator is seldom used for program debugging.
The ISS simulator is described in Chapter 7 (
Software Debugging
). This is one of the
reasons that the Architectural simulator does not utilize the Universal Debugger In-
terface (see section 7.5). Without a UDI interface, the simulator can not support inter-
active debugging. Simulation results are directed to a log file. Interpretating their
meaning and dealing with log file format takes a little practice; more on this later.
When used with a HIF conforming operating system, the standard input and out-
put for the simulated program use the standard input and output for the executable
simulator. Additionally, the 29K program standard output is also written to the simu-
lation log file. AMD does not supply the simulator in source form; it is available in
binary for UNIX type hosts and 386 based PCs. The simulator driver,
sim29
, sup-
ports several command line options, as shown below. AMD updated the simulator
after version 1.1–8; the new version is compatible with the old and simulates at more
than four times the speed. The
old
simulator is still used with the Am29000 and
Am29050 processors. Only the new simulator models the Am2924x microcontrol-
lers and newer 2–bus processors. The following description of command line options
covers both simulator versions.
sim29
[–29000 | –29005 | –29030 | –29035 | –29050 ... –29240]
[–cfg=xx] [–d] [–e eventfile] [–f freq] [–h heapsize] [–L] [–n]
[–o outputfile] [–p from–to] [–r osboot] [–t max_sys_calls]
[–u] [–v] [–x[codes]] [–dcacheoff] [–icacheoff] [–dynmem <val>]
execfile [... optional args for executable]