Consider a cache memory that provides three hundred 16-byte blocks. Now consider that you are processing all the data in a two-dimensional array of, say, four hundred rows by four hundred columns, using a pair of nested loops. Assume that the program stores the array column by column. You can write your program to next the loops in either direction, that is, process row by row or column by column.
Explain which way you would choose to process the data. What is the advantage?
What effect does choosing the incorrect way have on system performance? (The goal here is to gain understanding of how processing speed can be computed, not to experience math fear - take a deep breath, and be sure to show work and label the number with units.)
2. As described in the text, the PCI-Express bus consists of thirty-two
"lanes." As of January, 2009, each lane was capable of a maximum data rate of 500 MB per second. Lanes are allocated to a device 1, 2, 4, 8, 16, or 32 lanes at a time.
Assume that a PCI-Express bus is to be connected to a high definition video card that is supporting a 1920 x 1080 true-color (3 bytes per pixel)
progressive scan monitor with a refresh rate of 60 frames per second. How many lanes will this video card require to support the monitor at full capability? Show how you found your solution.