Caches Considered Harmful?

IRAM Class Discussion Mon, Jan 29/96

This discussion was based on three papers [Wul95,Sit96,Bur96] from the bibliography discussing performance issues w.r.t to the gap between CPU and memory speeds. A summary of each paper appears below. Comments of the class directly addressing a paper appear below each summary. Other discussion topics appear after the summaries.


Discussion Notes

Non-Uniform-Memory-Access (NUMA)

Wulf's suggestion for NUMA as a solution to the memory gap problem, prompted discussion of where NUMA features have appeared in the past.

Spatial locality

Garbage collection (GC) was mentioned as a possibility to increase spatial locality. This applies only to copying garbage collectors (since Mark/Sweep collectors don't move data). IRAM's high internal bandwidth may allow fast data reorganization. Below are two references on the subject of GC and locality:

Another technique used in some LISP systems to compact list data-types and avoid indirection is cdr-coding. The idea of list compaction has been investigated in a project by Eric Anderson, and is also a subject in the Titanium compiler project at Berkeley.

It was pointed out that there is a correlation between programs exhibiting good spatial locality and the ability to vectorize such programs.

There may be ideas in work on minmizing page faults that are applicable to caches as well (see work by Domenico Ferrari).

IRAM architecture issues

General concerns or issues about the IRAM architecture raised during the discussion are under this heading: