Line (Block) Size Choice for CPU Cache Memories

The line (block) size of a cache memory is one of the parameters that most strongly affects cache performance. In this paper, we study the factors that relate to the selection of a cache line size. Our primary focus is on the cache miss ratio, but we also consider influences such as logic complexity, address tags, line crossers, I/O overruns, etc. The behavior of the cache miss ratio as a function of line size is examined carefully through the use of trace driven simulation, using 27 traces from five different machine architectures. The change in cache miss ratio as the line size varies is found to be relatively stable across workloads, and tables of this function are presented for instruction caches, data caches, and unified caches. An empirical mathematical fit is obtained. This function is used to extend previously published design target miss ratios to cover line sizes from 4 to 128 bytes and cache sizes from 32 bytes to 32K bytes; design target miss ratios are to be used to guide new machine designs. Mean delays per memory reference and memory (bus) traffic rates are computed as a function of line and cache size, and memory access time parameters. We find that for high performance microprocessor designs, line sizes in the range 16-64 bytes seem best; shorter line sizes yield high delays due to memory latency, although they reduce memory traffic somewhat. Longer line sizes are suitable for mainframes because of the higher bandwidth to main memory.

[1]  James R. Goodman,et al.  Cache memory optimization to reduce processor/memory traffic , 1987 .

[2]  Myron H. MacDougall Instruction-Level Program and Processor Modeling , 1984, Computer.

[3]  Douglas W. Clark,et al.  Cache Performance in the VAX-11/780 , 1983, TOCS.

[4]  Douglas MacGregor,et al.  The Motorola MC68020 , 1984, IEEE Micro.

[5]  Donald H. Gibson Considerations in block-oriented systems design , 1967, AFIPS '67 (Spring).

[6]  William D. Strecker Cache memories for PDP-11 family computers , 1976, ISCA.

[7]  Alan Jay Smith,et al.  The memory architecture and the cache and memory management unit for the fairchild clipper processor , 1986 .

[8]  Alan Jay Smith,et al.  Experimental evaluation of on-chip microprocessor cache memories , 1984, ISCA '84.

[9]  Randy H. Katz,et al.  Memory Hierarchy Aspects of a Multiprocessor RISC: Cache and Bus Analyses , 1985 .

[10]  Alan Jay Smith,et al.  Interference in multiprocessor computer systems with interleaved memory , 1976, CACM.

[11]  Anil Patel An inside look at the Z80,000 CPU: Zilog's new 32-bit microprocessor , 1984, AFIPS '84.

[12]  Michael J. Flynn,et al.  Performance trade-offs for microprocessor cache memories , 1988, IEEE Micro.

[13]  R. V. Balakrishnan The Proposed IEEE 896 Futurebus - A Solution to the Bus Driving Problem , 1984, IEEE Micro.

[14]  Alan Jay Smith,et al.  Cache evaluation and the impact of workload choice , 1985, ISCA '85.

[15]  Paul L. Borrill,et al.  An Advanced Communication Protocol for the Proposed IEEE 896 Futurebus , 1984, IEEE Micro.

[16]  Robert M. Meade On memory system design , 1970, AFIPS '70 (Fall).

[17]  Alan Jay Smith Cache Evaluation and the Impact of Workload Choice , 1985, ISCA.

[18]  Alan Jay Smith,et al.  Cache Memories , 1982, CSUR.

[19]  Robert O. Winder,et al.  Cache-based Computer Systems , 1973, Computer.

[20]  Ilkka J. Haikala,et al.  Split Cache Organizations , 1984, International Symposium on Computer Modeling, Measurement and Evaluation.

[21]  Alan Jay Smith,et al.  Sequentiality and prefetching in database systems , 1978, TODS.