As a result of advances in compiler technology, almost all programs are written in high-level languages, and the effectiveness of a computer architecture is determined by its suitability as a compiler target. This central role of compilers in the use of computers has led computer architects to study the implementation of high-level language programs. This thesis presents measurements for a set of Portable Standard Lisp programs that were executed on a reduced-instruction-set processor (MIPS-X), examining what instructions LISP uses at the assembly level, and how much time is spent on the most common primitive LISP operations. This information makes it possible to determine which operations are time critical and to evaluate how well architectural features address these operations.Based on these data, three areas for optimization are proposed: the implementation of the tags used for run-time type checking, reducing the cost of procedure calls, and interprocedural register allocation. A number of methods to implement tags, both with and without hardware support, are presented, and the performance of the different implementation strategies is compared. To reduce the cost of procedure calls, time critical LISP system functions were optimized and inlined, and procedure integration under control of the compiler was implemented. The effectiveness of these optimizations, and their effect on the miss rate in the MIPS-X on-chip instruction cache are studied. A simple register allocator uses interprocedural information to reduce the cost of saving and restoring registers across procedure calls. This register allocation scheme is evaluated, and its performance is compared with hardware register windows.
Cited By
- Wall D (2004). Register windows vs. register allocation, ACM SIGPLAN Notices, 39:4, (270-282), Online publication date: 1-Apr-2004.
- McFarling S Procedure merging with instruction caches Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, (71-79)
- McFarling S (1991). Procedure merging with instruction caches, ACM SIGPLAN Notices, 26:6, (71-79), Online publication date: 1-Jun-1991.
- Santhanam V and Odnert D Register allocation across procedure and module boundaries Proceedings of the ACM SIGPLAN 1990 conference on Programming language design and implementation, (28-39)
- Santhanam V and Odnert D (2019). Register allocation across procedure and module boundaries, ACM SIGPLAN Notices, 25:6, (28-39), Online publication date: 1-Jun-1990.
- Mulder H (1989). Data buffering: run-time versus compile-time support, ACM SIGARCH Computer Architecture News, 17:2, (144-151), Online publication date: 1-Apr-1989.
- Mulder H Data buffering: run-time versus compile-time support Proceedings of the third international conference on Architectural support for programming languages and operating systems, (144-151)
- Wilson P and Moher T Design of the opportunistic garbage collector Conference proceedings on Object-oriented programming systems, languages and applications, (23-35)
- Wilson P and Moher T (2019). Design of the opportunistic garbage collector, ACM SIGPLAN Notices, 24:10, (23-35), Online publication date: 1-Oct-1989.
- Steenkiste P The impact of code density on instruction cache performance Proceedings of the 16th annual international symposium on Computer architecture, (252-259)
- Steenkiste P (1989). The impact of code density on instruction cache performance, ACM SIGARCH Computer Architecture News, 17:3, (252-259), Online publication date: 1-Jun-1989.
- Humphrey S and Krovetz B (1988). Selected AI-related dissertations, ACM SIGART Bulletin:104, (26), Online publication date: 1-Apr-1988.
- Wall D Register windows vs. register allocation Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation, (67-78)
- Chow F Minimizing register usage penalty at procedure calls Proceedings of the ACM SIGPLAN 1988 conference on Programming language design and implementation, (85-94)
- Wall D (2019). Register windows vs. register allocation, ACM SIGPLAN Notices, 23:7, (67-78), Online publication date: 1-Jul-1988.
- Chow F (2019). Minimizing register usage penalty at procedure calls, ACM SIGPLAN Notices, 23:7, (85-94), Online publication date: 1-Jul-1988.
- Chow P and Horowitz M Architectural tradeoffs in the design of MIPS-X Proceedings of the 14th annual international symposium on Computer architecture, (300-308)
- Steenkiste P and Hennessy J (1987). Tags and type checking in LISP: hardware and software approaches, ACM SIGARCH Computer Architecture News, 15:5, (50-59), Online publication date: 1-Nov-1987.
- Steenkiste P and Hennessy J Tags and type checking in LISP: hardware and software approaches Proceedings of the second international conference on Architectual support for programming languages and operating systems, (50-59)
- Steenkiste P and Hennessy J (1987). Tags and type checking in LISP: hardware and software approaches, ACM SIGOPS Operating Systems Review, 21:4, (50-59), Online publication date: 1-Oct-1987.
- Steenkiste P and Hennessy J (1987). Tags and type checking in LISP: hardware and software approaches, ACM SIGPLAN Notices, 22:10, (50-59), Online publication date: 1-Oct-1987.
Index Terms
- Lisp on a reduced-instruction-set processor: characterization and optimization
Recommendations
Reduced instruction set computer (RISC)
Encyclopedia of Computer ScienceUntil 1975, computer architecture and, consequently, computer design and implementation had grown more complicated with each successive generation. Instruction sets were large and individual instructions were complicated. Some of these complications ...
Automatic custom instruction identification for application-specific instruction set processors
The application-specific instruction set processors (ASIPs) have received more and more attention in recent years. ASIPs make trade-offs between flexibility and performance by extending the base instruction set of a general-purpose processor with custom ...
Selection of instruction set extensions for an FPGA embedded processor core
IPDPS'06: Proceedings of the 20th international conference on Parallel and distributed processingA design process is presented for the selection of a set of instruction set extensions for the PowerPC 405 processor that is embedded into the Xilinx Virtex Family of FPGAs. The instruction set of the PowerPC 405 is extended by selecting additional ...