Memory access buffering in multiprocessors
- 1 May 1986
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGARCH Computer Architecture News
- Vol. 14 (2) , 434-442
- https://doi.org/10.1145/17356.17406
Abstract
In highly-pipelined machines, instructions and data are prefetched and buffered in both the processor and the cache. This is done to reduce the average memory access latency and to take advantage of memory interleaving. Lock-up free caches are designed to avoid processor blocking on a cache miss. Write buffers are often included in a pipelined machine to avoid processor waiting on writes. In a shared memory multiprocessor, there are more advantages in buffering memory requests, since each memory access has to traverse the memory- processor interconnection and has to compete with memory requests issued by different processors. Buffering, however, can cause logical problems in multiprocessors. These problems are aggravated if each processor has a private memory in which shared writable data may be present, such as in a cache-based system or in a system with a distributed global memory. In this paper, we analyze the benefits and problems associated with the buffering of memory requests in shared memory multiprocessors. We show that the logical problem of buffering is directly related to the problem of synchronization. A simple model is presented to evaluate the performance improvement resulting from buffering.Keywords
This publication has 5 references indexed in Scilit:
- Concepts and Notations for Concurrent ProgrammingACM Computing Surveys, 1983
- A communication structure for a multiprocessor computer with distributed global memoryPublished by Association for Computing Machinery (ACM) ,1983
- Cache MemoriesACM Computing Surveys, 1982
- Effects of buffered memory requests in multiprocessor systemsPublished by Association for Computing Machinery (ACM) ,1979
- Time, clocks, and the ordering of events in a distributed systemCommunications of the ACM, 1978