Research Abstract |
In order to achieve high computational performance for recent applications, not only effective use of hardware resources such as arithmetic units and registers, but also efficient access of large memory space is very important. In many of addressing modes, we have indirect addressing mode, which points an access address by the dedicated register called "Address Register (AR)". Usually, simple AR update operations such as AR*1 are allowed to execute together with arithmetic operations in one instruction cycle. Such indirect addressing can be easily implemented at very low hardware cost, and has much advantage to realize a certain memory access such as sequencial array access and so on. Suppose we use this indirect addressing for all the memory access of a given program written in a general purpose language, object code generated by available compiler techniques often includes huge number of overhead concerned with memory access. In this research project, a processor only of indirect mem
… More
ory addressing mode is assumed, various code optimization methods to reduce memory access overhead are discussed. In the previous method, indirect addressing with AR*1 operations is assumed. The method represents a given memory access by a graph notation or an access graph (AG in short), and then, based on the line graph extraction algorithm, determines an efficient memory allocation of variables in a given program together with an efficient AR assignment for every memory access. In this project, extended indirect addressing models with additional AR operations are assumed, and new heuristic algorithms for code optimization are investigated. At first, an indirect addressing with additional AR *2 update operations is introduced. Since a triangle shaped graph and its chain structure (Chained Triangle Graph CTG) give efficient memory address allocations, the memory allocation method based on the CTG extraction from an AG is proposed. This method is extended for indirect addressing with AR*1, AR*2, ..., AR*k update operations. The method is based on the Chained Clique Graph (CCG) extraction from an AG.The proposed methods are applied to the compiler, and efficient address allocations are derived for several examples. Second, modulo AR update operations, such as AR*1MOD4, are newly considered in indirect addressing. A class of AG suitable for this new addressing model is shown, and a memory allocation method based on extraction of this specific shaped graph (Chained Square Graph CSG) is proposed. From address allocation examples, the method is proved to be effective. All the methods presented above just require a memory access sequence, i.e. a sequence of variables in a given program, so that they are applicable for various compilers. Less
|