Laboratory Work 4
Direct mapping implementation. Miss and hit rate calculation.
In this laboratory work you should implement direct mapping technique in C++ programming language following the definitions below:
• Youhaveastructureconsistingof4colors:cyan, magenta, yellow, black (CMYK):
struct color {
int c, m, y, k;
};
• YouhaveamainmemoryrepresentedasNxMtwo dimensional array of colors: N and M should be inputted by user and be power of 2
• Youhaveadirect-mappeddatacachewith32-byteK blocks. K should be power of 2 and K <= NxM / 4 and inputted by user. The cache is initially empty.
You should implement direct mapping technique and determine the efficiency of following algorithms:
Algorithm 1:
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
} }
memory[i][j].c = 0;
memory[i][j].m = 0;
memory[i][j].y = 1;
memory[i][j].k = 0;
Algorithm 2:
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
} }
memory[j][i].c = 0;
memory[j][i].m = 0;
memory[j][i].y = 1;
memory[j][i].k = 0;
Algorithm 3:
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
memory[i][j].y = 1;
}
}
for(int i = 0; i < N; i++) {
for(int j = 0; j < M; j++) {
} }
memory[i][j].c = 0;
memory[i][j].m = 0;
memory[i][j].k = 0;
For each of algorithms above you should determine
• Thetotalnumberaccesses
• The number of accesses that miss and hitin the cache
• Themissandhitrate