Modifications to Dinero
In support of 18-742
Extending beyond 32 bits
The original dinero assumed that both the machine being used to execute
dinero and the machine being simulated were "pure" 32-bit machines.
More recent machines are more complicated, and may include 64-bit data paths,
64-bit addresses, and buses that are either narrower or wider than the data
path. Thus, we have modified dinero to increase flexibility with respect to
word widths. In particular:
- The modified dinero uses "long" instead of "int" values
whereever practicable. On a 32-bit machine this won't make a difference with
typical compilers. However, on a 64-bit machine address traces may include up
to 64-bit addresses. Supporting 64-bit addresses when dinero is executing on a
32-bit machine was deemed not worth the effort, and so is not supported.
- The modified dinero has the -?????[Nitzan what is it] flag that permits
specifying a "word" size of other than 32 bits. The word size denotes
the size of a data element that is transferred on a cache access. For example,
-?64 indicates that 64 bits are transfered on every access to cache. The
default for this parameter is a word size of 32 bits.
- The modified dinero has the -?????[Nitzan what is it] flag that permits
specifying the width of the bus attached to the cache. For example, -?128
indicates that 128 bits are transferred on every bus cycle. This could indicate
either that there are actually 128 bits on the bus, or that the bus always
operates in a burst mode returning 128 bits regardless of the physical bus
width. The default for this parameter is 32 bits.
In all cases the default behavior is the same as the original dinero, so the
extensions are transparent if not invoked.
Maximum Number of Cache Accesses
Dinero permits specifying the maximum number of addresses to be simulated
with the -z flag. However, there was a built-in limit of 100 million addresses,
which it too small to properly simulate really large caches. This internal
limit has been changed to the maximum signed integer available on the machine
dinero is being run on. The default limit of 10 million remains in place -- use
the -z flag to run longer traces. ([Nitzan -- I'll bet Edwin didn't use
MAXLONG)