Modifications

# 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)