Quiz submission record for quiz6-2-1 at Tue Jul 27 21:30:47 2004: Your Answer for Question 1: To find the location in cache that memory location 53 maps to, we must calculate 53 mod 8, which is 5, which is 101 in binary. Since the cache is eight words, we need log_2(8) = 3 bits for the cache's indexing. To find the contents of the tag field, we need to find the values of the upper bits of 53: 53 = 2^5 + 2^4 + 2^2 + 2^0 = 110101_two. The tag field for 53 is 110. Your Answer for Question 2: The array x[][] is two dimensional, but memory is one dimensional, so when the array is translated into memory, we lay the rows of the array out in a line. For example, a 3x3 2d array such as abc def ghi would look like ...abcdefghi... in memory (rows are grouped together). Thus, it is better to do array accesses by row because of spatial locality (the rows are closer together in memory). In the optimized loop, our array accesses were linear in memory, but before, it jumped back and forth. Since our cache is small and we load several words at the same time, the second for-loop has better access time. Your unique submission ID is quiz6-2-1-cs61c-ck-1090989047-512.