Abstract
As the gap between CPU speed and memory speed widens, it is appropriate to investigate alternative storage systems. One approach is to use a large data register file. Registers, in general, offer several advantages when accessing data, including: faster access time, accessing multiple values in a single cycle, reduced power consumption, and small indices. Traditionally, registers only have been used to hold the values of scalar variables and temporaries; this necessarily excludes global structures and in particular arrays, which tend to exhibit high spatial locality. Although large register files have been explored, prior studies did not resolve complexities that limited their usefulness. In this thesis, we present a large data register file, which employs block movement of registers for efficient access and is able to support composite data structures, such as arrays and structs. The performance benefits realized – from this approach – include access to data values earlier in the pipeline, removal of many loads and stores, decreased contention within the data cache, and decreased energy consumption.
|