Research Activities in the Vortex Group:

Current research activities within the Vortex research group include:
  • Pointer Prefetching. We are developing prefetching techniques for pointer-intensive computations commonly found in non-numeric applications. Data dependences arising from pointer indirection require pointer-chasing memory references to perform sequentially. Known as the pointer-chasing problem, such memory serialization effects prevent conventional prefetching techniques from overlapping multiple cache misses simultaneously. The new techniques under investigation identify memory parallelism between independent pointer chains, and exploit this new-found memory parallelism to improve the effectiveness of prefetching.

  • Profile-Driven Prefetching. We are investigating runtime techniques to gather information about the layout of dynamic data structures and the cache-missing behavior of individual memory references. In contrast to scientific applications where locality information can be easily obtained at compile time, non-numeric applications traverse irregular data structures that are difficult to analyze statically. A crucial part of this research is to feed back the profile information to selectively "turn on" prefetching for those load instructions that miss frequently.

  • Intelligent Memory. Finally, we are exploring "intelligent" memory systems that use application-level information to improve memory performance. Conventional memory systems naively move data between DRAMs and the processor caches in fixed cache block units. For irregular memory access patterns commonly found in non-numeric applications, this can lead to inefficient use of memory resources. Application-aware memory systems can better schedule memory accesses and tune the granularity of data transfer to match the needs of the application.
  • Last updated: June 2000 by Donald Yeung (yeung@eng.umd.edu)