From 5bf2639c79047b29691939407e7405a045a149a8 Mon Sep 17 00:00:00 2001 From: TuDatTr Date: Fri, 18 Dec 2020 11:37:32 +0100 Subject: [PATCH] Fixed -v with [I]nstructions --- csim.c | 174 ++++++++++++++++++++++++++++++++++++ src/csim.c | 30 +++---- src/ref_trans | 219 ++++++++++++++++++++++++++++++++++++++++++++++ src/ref_trans.txt | 219 ++++++++++++++++++++++++++++++++++++++++++++++ src/trans.txt | 219 ++++++++++++++++++++++++++++++++++++++++++++++ tuan-handin.tar | Bin 0 -> 10240 bytes 6 files changed, 846 insertions(+), 15 deletions(-) create mode 100644 csim.c create mode 100644 src/ref_trans create mode 100644 src/ref_trans.txt create mode 100644 src/trans.txt create mode 100644 tuan-handin.tar diff --git a/csim.c b/csim.c new file mode 100644 index 0000000..b26e098 --- /dev/null +++ b/csim.c @@ -0,0 +1,174 @@ +/** + * Groupmembers: + * 1. Anna Schlittenhardt + * 2. Tuan-Dat Tran + */ + +#include +#include +#include +#include +#include +#include +#include "cachelab.h" + +int v = 0; /* verbose */ +int s = 0; /* set index */ +int E = 0; /* Set of cache lines */ +int b = 0; /* Block offset */ +int S; /* Set of Set of cache lines*/ +int B; /* Block size */ +long long time = 0; +FILE *tracefile; /* File to trace from */ +struct cache_line **cache; /* cache */ + +int hit = 0, miss = 0, eviction = 0; + +struct cache_line { + unsigned char v; + unsigned int tag; + unsigned int time; +}; + +void print_help() { + printf("Usage: ./csim-ref [-hv] -s -E -b -t \n"); + printf(" -h: Optional help flag that prints usage info\n"); + printf(" -v: Optional verbose flag that displays trace info\n"); + printf(" -s : Number of set index bits (S = 2 s is the number of sets)\n"); + printf(" -E : Associativity (number of lines per set)\n"); + printf(" -b : Number of block bits (B = 2 b is the block size)\n"); + printf(" -t : Name of the valgrind trace to replay\n"); +} + +void init() { + cache = (struct cache_line **) malloc(S*sizeof(struct cache_line *)); + for (int i = 0; i < S; i++) { + struct cache_line* cache_set = (struct cache_line *) malloc(E*sizeof(struct cache_line)); + cache[i] = cache_set; + for (int j = 0; j < E; j++) { + cache_set[j].v = 0; + cache_set[j].tag = 0; + cache_set[j].time = 0; + } + } +} + +void clean() { + for (int i = 0; i < S; i++) { + free(cache[i]); + } + free(cache); + fclose(tracefile); +} + +void accessMem (int addr) { + unsigned int set = ((addr >> b) & ((1LL << s) - 1)); + unsigned int tag = addr >> (b + s); + struct cache_line *cache_set = cache[set]; + long evic_time = 0; + int evic_line = 0; + for (int i = 0; i < E; i++) { + if (cache_set[i].tag == tag && cache_set[i].v != 0){ + if (v) { printf("hit "); } + hit++; + cache_set[i].time = time; + time++; + return; + } + } + + if (v) { printf("miss "); } + miss++; + + for (int i = 0; i < E; i++) { + if (cache_set[i].time < evic_time) { + evic_line = i; + evic_time = cache_set[i].time; + } + } + + if (cache_set[evic_line].v == 1) { + if (v) { printf("eviction "); } + eviction++; + } + + cache_set[evic_line].v = 1; + cache_set[evic_line].tag = tag; + cache_set[evic_line].time = time; + time++; + return; +} + +void trace() { + char op; + unsigned address; + int size; + + while (fscanf(tracefile, " %c %x,%d", &op, &address, &size) > 0 ) { + switch (op) { + case 'M': + if (v) { printf("%c %x,%d ", op, address, size); } + accessMem(address); + accessMem(address); + printf("\n"); + break; + case 'L': + if (v) { printf("%c %x,%d ", op, address, size); } + accessMem(address); + printf("\n"); + break; + case 'S': + if (v) { printf("%c %x,%d ", op, address, size); } + accessMem(address); + printf("\n"); + break; + } + } +} + +int main(int argc, char *argv[]) { + char c; + while ((c = getopt(argc, argv, "s:E:b:t:vh")) != -1) { + switch (c) { + case 'h': + print_help(); + exit(0); + break; + case 'v': + v = 1; + break; + case 's': + s = atoi(optarg); + break; + case 'E': + E = atoi(optarg); + break; + case 'b': + b = atoi(optarg); + break; + case 't': + tracefile = fopen(optarg, "r"); + break; + } + } + + if (s == 0 || E == 0 || b == 0 || tracefile == NULL) { + print_help(); + exit(1); + } + + S = pow(2, s); + B = pow(2, b); + + init(); + trace(); + for (int i = 0; i < S; i++) { + for (int j = 0; j < E; j++) { + // printf("cache[%d][%d]: %c %x %ul\n", i, j, cache[i][j].v, cache[i][j].tag, cache[i][j].time); + } + } + clean(); + + printSummary(hit, miss, eviction); + return 0; +} diff --git a/src/csim.c b/src/csim.c index 4b4b630..e7ed320 100644 --- a/src/csim.c +++ b/src/csim.c @@ -26,8 +26,8 @@ int hit = 0, miss = 0, eviction = 0; struct cache_line { unsigned char v; - unsigned int tag; - unsigned int time; + unsigned long tag; + unsigned long time; }; void print_help() { @@ -43,7 +43,7 @@ void print_help() { void init() { cache = (struct cache_line **) malloc(S*sizeof(struct cache_line *)); for (int i = 0; i < S; i++) { - struct cache_line* cache_set = (struct cache_line *) malloc(E*sizeof(struct cache_line)); + struct cache_line* cache_set = (struct cache_line *) malloc(E*sizeof(struct cache_line)); cache[i] = cache_set; for (int j = 0; j < E; j++) { cache_set[j].v = 0; @@ -64,10 +64,9 @@ void clean() { void accessMem (int addr) { unsigned int set = ((addr >> b) & ((1LL << s) - 1)); unsigned int tag = addr >> (b + s); - printf("addr %x, set %x, tag %x ", addr, set, tag); struct cache_line *cache_set = cache[set]; - long evic_time = 0xffffffffffffffff; - int evic_line = 0; + unsigned long evic_time = 0; + unsigned int evic_line = 0; for (int i = 0; i < E; i++) { if (cache_set[i].tag == tag && cache_set[i].v != 0){ if (v) { printf("hit "); } @@ -89,41 +88,42 @@ void accessMem (int addr) { } if (cache_set[evic_line].v == 1) { - eviction++; if (v) { printf("eviction "); } + eviction++; } cache_set[evic_line].v = 1; cache_set[evic_line].tag = tag; cache_set[evic_line].time = time; time++; - return; } void trace() { - char op; - unsigned address; + char op[2]; + unsigned long address; int size; - while (fscanf(tracefile, " %c %x,%d", &op, &address, &size) > 0 ) { - switch (op) { + while (fscanf(tracefile, "%s %lx,%d", op, &address, &size) > 0 ) { + switch (op[0]) { case 'M': - if (v) { printf("%c %x,%d ", op, address, size); } + if (v) { printf("%c %lx,%d ", op[0], address, size); } accessMem(address); accessMem(address); printf("\n"); break; case 'L': - if (v) { printf("%c %x,%d ", op, address, size); } + if (v) { printf("%c %lx,%d ", op[0], address, size); } accessMem(address); printf("\n"); break; case 'S': - if (v) { printf("%c %x,%d ", op, address, size); } + if (v) { printf("%c %lx,%d ", op[0], address, size); } accessMem(address); printf("\n"); break; + default: + break; } } } diff --git a/src/ref_trans b/src/ref_trans new file mode 100644 index 0000000..fa661f2 --- /dev/null +++ b/src/ref_trans @@ -0,0 +1,219 @@ +S 600aa0,1 miss +S 7ff000398,8 miss +S 7ff000390,8 hit +S 7ff000378,8 miss +S 7ff000370,8 hit +S 7ff000384,4 hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a20,4 miss +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a60,4 miss +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a24,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a70,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a28,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a80,4 miss +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a2c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a90,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a30,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a64,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a34,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a74,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a38,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a84,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a3c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a94,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a40,4 miss +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a68,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a44,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a78,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a48,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a88,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a4c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a98,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a50,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a6c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a54,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a7c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a58,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a8c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a5c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a9c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +L 7ff000390,8 hit +L 7ff000398,8 hit +L 600aa0,1 hit +hits:231 misses:7 evictions:0 diff --git a/src/ref_trans.txt b/src/ref_trans.txt new file mode 100644 index 0000000..fa661f2 --- /dev/null +++ b/src/ref_trans.txt @@ -0,0 +1,219 @@ +S 600aa0,1 miss +S 7ff000398,8 miss +S 7ff000390,8 hit +S 7ff000378,8 miss +S 7ff000370,8 hit +S 7ff000384,4 hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a20,4 miss +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a60,4 miss +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a24,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a70,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a28,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a80,4 miss +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a2c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a90,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a30,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a64,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a34,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a74,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a38,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a84,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a3c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a94,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a40,4 miss +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a68,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a44,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a78,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a48,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a88,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a4c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a98,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +S 7ff000388,4 hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a50,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a6c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a54,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a7c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a58,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a8c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +L 7ff000384,4 hit +L 7ff000378,8 hit +L 7ff000388,4 hit +L 600a5c,4 hit +S 7ff00038c,4 hit +L 7ff000388,4 hit +L 7ff000370,8 hit +L 7ff000384,4 hit +L 7ff00038c,4 hit +S 600a9c,4 hit +M 7ff000388,4 hit hit +L 7ff000388,4 hit +M 7ff000384,4 hit hit +L 7ff000384,4 hit +L 7ff000390,8 hit +L 7ff000398,8 hit +L 600aa0,1 hit +hits:231 misses:7 evictions:0 diff --git a/src/trans.txt b/src/trans.txt new file mode 100644 index 0000000..2b9ab9d --- /dev/null +++ b/src/trans.txt @@ -0,0 +1,219 @@ +S 600aa0,1 miss +I 4005b6,5 I 4005bb,5 I 4005c0,5 S 7ff000398,8 miss +I 40051e,1 S 7ff000390,8 hit +I 40051f,3 I 400522,4 S 7ff000378,8 miss +I 400526,4 S 7ff000370,8 hit +I 40052a,7 S 7ff000384,4 hit +I 400531,2 I 400581,4 L 7ff000384,4 hit +I 400585,2 I 400533,7 S 7ff000388,4 hit +I 40053a,2 I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a20,4 miss +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a60,4 miss +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a24,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a70,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a28,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a80,4 miss +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a2c,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a90,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40057d,4 M 7ff000384,4 hit +I 400581,4 L 7ff000384,4 hit +I 400585,2 I 400533,7 S 7ff000388,4 hit +I 40053a,2 I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a30,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a64,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a34,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a74,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a38,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a84,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a3c,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a94,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40057d,4 M 7ff000384,4 hit +I 400581,4 L 7ff000384,4 hit +I 400585,2 I 400533,7 S 7ff000388,4 hit +I 40053a,2 I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a40,4 miss +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a68,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a44,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a78,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a48,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a88,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a4c,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a98,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40057d,4 M 7ff000384,4 hit +I 400581,4 L 7ff000384,4 hit +I 400585,2 I 400533,7 S 7ff000388,4 hit +I 40053a,2 I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a50,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a6c,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a54,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a7c,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a58,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a8c,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40053c,3 L 7ff000384,4 hit +I 40053f,2 I 400541,4 I 400545,3 I 400548,4 L 7ff000378,8 hit +I 40054c,3 L 7ff000388,4 hit +I 40054f,2 I 400551,3 L 600a5c,4 hit +I 400554,3 S 7ff00038c,4 hit +I 400557,3 L 7ff000388,4 hit +I 40055a,2 I 40055c,4 I 400560,3 I 400563,4 L 7ff000370,8 hit +I 400567,3 L 7ff000384,4 hit +I 40056a,3 I 40056d,3 L 7ff00038c,4 hit +I 400570,3 S 600a9c,4 hit +I 400573,4 M 7ff000388,4 hit +I 400577,4 L 7ff000388,4 hit +I 40057b,2 I 40057d,4 M 7ff000384,4 hit +I 400581,4 L 7ff000384,4 hit +I 400585,2 I 400587,1 L 7ff000390,8 hit +I 400588,1 L 7ff000398,8 hit +I 4005c5,7 L 600aa0,1 hit +hits:211 misses:7 evictions:0 diff --git a/tuan-handin.tar b/tuan-handin.tar new file mode 100644 index 0000000000000000000000000000000000000000..167007218da906cb77431301e58cf2e1e8650e58 GIT binary patch literal 10240 zcmeHM`%fFo70%E8D^6V{S%YnGUP!zo&?Qw>NUOqCRZ)t@yJLHZy=(2PO=xcZ_kQQh zV{LEWw!)!TWy?Z12c&Cky3op;ZA z_}JOr>21HpcyD`Wd;1w}e^;$M^O>zwN%X9msr)f{-Fd(&@<6XkM|rO3JROZqRq1@B%Bwx< z`rXmt@|Y=>hlaW;rq%LTTHQ_c@{p}clMk22CaM}OjWko0j`UbTYO~QWc|~(NpzS@{ z+Mu~E`-Ro4Bv05lVRc0&&-AA-brPq}F;xsmxYF3<+J-g#xaN3Vq#v+PKJvBp;QTXc5wQ|Hso4+NesE>VX++p?Z%OstS@(8kEI^Wy46b zv~v1hv%a*kA<7Gl+Xj}20Y;``_HCLNE5>M(o}08XMef9|;P$yeG|R0S<~pMkkwEjk z#UVCqrG^j3u$R5Ym%T<~UYLxgaAkE3M@^F!F;5v7B+Z|#8tPr@Zlyq@PN@fU*%{5R zsACaMhtxTt{S$okX}^!JiuR*X4*!uiTP!!QBI=BG>CaQ%j~WvTqrq4WsTv_(WtF8F z%Y*X=#R~HI0(l6YnnPynbgb^I_rOEH2&~ zToOgqZk%d2Q0-)oZfey$HIrQ4Ty-6G3GKZZYzim!ORYXSdcSjKg9FpaSaN03yDE?wrwTeN# zkS3Bk0S5U@Ev8Hmqn%?MdBkIqFF-&Xq%lecHdXncPQW%b>3K@eKeeA{%{IL#rugtY z@FrkRhwxPh7JF-|bVNxp4I`;So%HhTB?>@!{Dwcr!!__H2w?t^y>Q|Bn{60j~Z|^3aE2DOq9vx#8c%kZM&*$1Ml<8E9XzC z(^3u}k1I(E9CT%O;)r-T;>PZt?Dlu7-TA1AyhTEHBEW?pNta_}6s;ge^EDmI;zxhN z`Mw=}{=kd#NX%tJpVvC zD5g618p5h&jdu$>b3TNjIJvMbM$cbE5bmRih5A?B&%$1`s!S9_jzQdE0aSpLef&J8xdSMgIp4pm*#3&yNU!|5g77 zofd8m`EWwHe{>*(^s)#cfh`*Dmn{N~ITxksyn;ufxPb)BgS{f+(| zrNu0-(000aH|N@2Th<=E5=Ff~9aCmXjn2zNO{d%%VJIWiRU=H-muOc1^(!#0wC#d? ziym!_J?v%~do7z~J3f8GjYXd@>9w8pC#YIGbTPt~eeb~*T4R7D#LzZ20k(VqRI;H^*sP(xluIHdDW$#3d##Krba3s>cE5>1(~*KX{1ZT zH#fF*^MavBLPhihn}SaXt2zz(W>s%TQWj@FkakusM9DGq-Pw@%=T5h>xb55;-~!)c>ZEKgn)5%fAxEcN z)upDWCb&zXo(UBVoQG~OU#veYHHG4eg=*&PUT=oiph%ib8NXbe;wlg~L3E7D1>=|& zv0<1C6x8ed(Qqzi-;{c2Y^BTh9`J0)#+Y+qg(WzvtSu9QHY~IbXe65?H@ZYe6_pHK z6Wx~RcS$2@8^{CDk!A$;IU8iM8>3Gj3Y!zj@>g$0XQK#V zL3vJQUKw~?Fth|ld}nq*<1-w#x;G->+S-HT?#om8-M7;6+p@jDT1t%oi%=gzgEJS6 z-MBdbU-}XFJpkx>5RV&xM}vKjx)kt4C?q1%qT~|`|I)DR{N)gnvkxs-z;R%L