Lecture 26-xc27

http://www.cs.albany.edu/~sdc/csi504/gifs/memcostspeeds.gif
Comparing cost and speeds of various levels of 1997 memory hierarchy.

 http://www.cs.albany.edu/~sdc/csi504/gifs/whichcache.gif
Where caches occur in systems.
 

 http://www.cs.albany.edu/~sdc/csi504/gifs/cacheabc.gif
 Block placement (associativity), Block addressing, Miss policy, Write Policies

 http://www.cs.albany.edu/~sdc/csi504/gifs/writing.gif
 

 http://www.cs.albany.edu/~sdc/csi504/gifs/writepolicies.gif
 

 http://www.cs.albany.edu/~sdc/csi504/gifs/splitunifiedtrade.gif
 



Slides not shown:

Techniques a C programmer can use to improve cache performance (PH. page 405 ff.)

 http://www.cs.albany.edu/~sdc/csi504/gifs/mergearrays.gif
Merge 2 or more arrays into an array of structures.

 http://www.cs.albany.edu/~sdc/csi504/gifs/multidimandc.gif
How the C/C++ language syntax expresses nested types, such as mulidimensional arrays.  This is important to understand how to apply the loop interchange technique of PH. p. 406-407.

 http://www.cs.albany.edu/~sdc/csi504/gifs/matrixblock.gif
The mathematics of matrix blocking and the matrix multiplication decomposed into block multiplies.  For PH. p 408-411.

 http://www.cs.albany.edu/~sdc/csi504/gifs/matrixblockmult.gif
Diagram that describes the program on p. 409 of PH, which keeps one part of one matrix in the cache for as long as it is needed.


Main memory organization and performance improvement:

http://www.cs.albany.edu/~sdc/csi504/gifs/mainmemimprove.gif
http://www.cs.albany.edu/~sdc/csi504/gifs/mainmemimprove2.gif
Two summary slides.
 

http://www.cs.albany.edu/~sdc/csi504/gifs/comparebankings.gif
 Comparing the performance of memory bus width and bank interleaving options, from PH. 432-434.
 

 http://www.cs.albany.edu/~sdc/csi504/gifs/modbank.gif
Applying modular arithmetic to scatter arithmetic progression index references to an array into different memory banks.  Summary of the mathematics for PH. 434-437 and exercise 5.10.