Dynamically tagged directories have been recently proposed as a memory-efficient mechanism for maintaining cache coherence in large-scale shared-memory multiprocessors. In order to efficiently use these directories, the number of pointer operations must be minimized and pointers should be allocated as late as possible. If pointers are allocated too early, frequent pointer overflow will occur, which in turn may cause cache thrashing. Following the delayed allocation marking strategy, we present compiler algorithms to identify memory references that do not need to allocate a pointer. As a result, we reduce processor-memory network traffic and increase the data cache hit ratio, which will reduce the average memory latency. We demonstrate the effectiveness of this compiler optimization by implementing it in the Parafrase-2 parallelizing compiler.
|Original language||English (US)|
|Number of pages||8|
|Journal||Proceedings of the International Conference on Parallel Processing|
|State||Published - 1993|
|Event||1993 International Conference on Parallel Processing, ICPP 1993 - Syracuse, United States|
Duration: Aug 16 1993 → Aug 20 1993
Bibliographical noteFunding Information:
This work is supported in part by the National Science Foundation, grant no. CCR-9210913 and CCR-9209458, by IBM Corporation, grant no. 340-659, by the Army Research Office, contract no. DAAL03-89-C-0038 with the University of Minnesota Army High Performance Computing Research Center, and by the Graduate College of the University of Minnesota.
- Cache coherence
- Dynamically tagged directories
- Optimizing compilers