blob: 626d42e9c9dca9c56a7a669e0313f66abff7ddb9 [file] [log] [blame]
There are two seperate files targeting loads and stores for each test.
In each test file, each letter in the comments represents a 64-bit address
range. For example, A represents the address from 0 to 63, B represents
the address from 64 to 127, C represents the address from 128 to 191, and so on.
If you enable debug flags to print the hits and misses information, you
can compare the results with your expectation. This test can be used to
test the correctness of the replacement policy. The first block will
always get an eviction.
The format of test files should be using traffic generator
To emulate 4-way 1-set cache with implementation of 4-way 2-set cache,
we will use A, C, E, G, I, K, M, O instead of A, B, C, D, E, F, G, H,
so they will never get to the second set
The linear traffic generator has
<duration (ticks)> <start addr> <end addr> <access size (bytes)>
<min period (ticks)> <max period (ticks)> <percent reads> <data limit (bytes)>
Addresses are expressed as decimal numbers. The period in the linear
and random state is from a uniform random distribution over the
interval. If a specific value is desired, then the min and max can
be set to the same value.
The duration(in ticks) is calculated by the time needed for accessing a cache
line * (the number of cache lines accessed in this state + 1). For example, to
access address 0 to address 1023, the duration should be 510000 ticks, which is
calcualted by 510000 = 30000 * (1024/64 + 1). Please note that 30000 is assumed
to be the number of ticks in one period here.