The Smalltalk-80('TM) system makes it possible to write programs quickly by providing object-oriented programming, incremental compilation, run-time type checking, user-extensible data types and control structures, and an interactive graphical interface. However, the potential savings in programming effort have been curtailed by poor performance in widely available computers or high processor cost. Smalltalk-80 systems pose tough challenges for implementors: dynamic data typing, a high-level instruction set, frequent and expensive procedure calls, and object-oriented storage management.
To solve these problems, a group of researchers at U.C. Berkeley has designed and built the SOAR (Smalltalk On A RISC) microprocessor. In order to determine the performance of Smalltalk-80 on SOAR and to evaluate the importance of each of the ideas, simulations of five representative benchmarks have been analyzed. The results suggest that: (1) Six ideas substantially improve performance: compilation to a low-level instruction set, multiple windows of on-chip registers, caching the target of a call instruction in the instruction itself, byte insert and extract instructions, instructions for arithmetic and comparison operations on tagged integers, and our storage management algorithm, Generation Scavenging. (2) Seven features contribute little to performance: shadow registers to simplify trap recovery, hardware assistance for garbage collection, vectored traps, addressable registers, clearing multiple registers in parallel, conditional trap instructions, and load- and store-multiple instructions. (3) The language-specific hardware in SOAR doubles its performance over a RISC II with the same cycle time. (4) Generation Scavenging, a storage reclamation algorithm developed by the author, consumes only 3% of the CPU time, in contrast to the 9% of comparable Smalltalk-80 systems. (5) Despite a five-to-one handicap in basic cycle time, the NMOS SOAR microprocessor should run as fast as an ECL Dorado minicomputer.
The dissertation reports two results that run counter to conventional wisdom: that a reduced instruction set computer can offer excellent performance for a system with dynamic data typing such as Smalltalk-80, and that automatic storage reclamation need not be time-consuming.
Cited By
- Dot G, Martínez A and González A Removing checks in dynamically typed languages through efficient profiling Proceedings of the 2017 International Symposium on Code Generation and Optimization, (257-268)
- Vraný J, Kurš J and Gittinger C Efficient method lookup customization for smalltalk Proceedings of the 50th international conference on Objects, Models, Components, Patterns, (124-139)
- Black A, Hutchinson N, Jul E and Levy H The development of the Emerald programming language Proceedings of the third ACM SIGPLAN conference on History of programming languages, (11-1-11-51)
- Stefanovic D and Moss J Characterization of object behaviour in Standard ML of New Jersey Proceedings of the 1994 ACM conference on LISP and functional programming, (43-54)
- Stefanovic D and Moss J (2019). Characterization of object behaviour in Standard ML of New Jersey, ACM SIGPLAN Lisp Pointers, VII:3, (43-54), Online publication date: 1-Jul-1994.
- Johnson D The case for a read barrier Proceedings of the fourth international conference on Architectural support for programming languages and operating systems, (279-287)
- Johnson D (1991). The case for a read barrier, ACM SIGPLAN Notices, 26:4, (279-287), Online publication date: 2-Apr-1991.
- Johnson D (1991). The case for a read barrier, ACM SIGOPS Operating Systems Review, 25:Special Issue, (279-287), Online publication date: 2-Apr-1991.
- Johnson D (1991). The case for a read barrier, ACM SIGARCH Computer Architecture News, 19:2, (279-287), Online publication date: 2-Apr-1991.
- Goldberg B Tag-free garbage collection for strongly typed programming languages Proceedings of the ACM SIGPLAN 1991 conference on Programming language design and implementation, (165-176)
- Goldberg B (2019). Tag-free garbage collection for strongly typed programming languages, ACM SIGPLAN Notices, 26:6, (165-176), Online publication date: 1-Jun-1991.
- Sharma R and Soffa M Parallel generational garbage collection Conference proceedings on Object-oriented programming systems, languages, and applications, (16-32)
- Sharma R and Soffa M (1991). Parallel generational garbage collection, ACM SIGPLAN Notices, 26:11, (16-32), Online publication date: 1-Nov-1991.
- Johnson D Trap architectures for Lisp systems Proceedings of the 1990 ACM conference on LISP and functional programming, (79-86)
- Zorn B Comparing mark-and sweep and stop-and-copy garbage collection Proceedings of the 1990 ACM conference on LISP and functional programming, (87-98)
- Grogono P and Bennett A (1989). Polymorphism and type checking in object-oriented languages, ACM SIGPLAN Notices, 24:11, (109-115), Online publication date: 1-Nov-1989.
- Chambers C and Ungar D Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language Proceedings of the ACM SIGPLAN 1989 conference on Programming language design and implementation, (146-160)
- Chambers C and Ungar D (2019). Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, ACM SIGPLAN Notices, 24:7, (146-160), Online publication date: 1-Jul-1989.
- Harrison W, Sweeney P and Shilling J Good news, bad news: experience building software development environment using the object-oriented paradigm Conference proceedings on Object-oriented programming systems, languages and applications, (85-94)
- Harrison W, Sweeney P and Shilling J (2019). Good news, bad news: experience building software development environment using the object-oriented paradigm, ACM SIGPLAN Notices, 24:10, (85-94), Online publication date: 1-Oct-1989.
- Ungar D and Jackson F Tenuring policies for generation-based storage reclamation Conference proceedings on Object-oriented programming systems, languages and applications, (1-17)
- Ungar D and Jackson F (2019). Tenuring policies for generation-based storage reclamation, ACM SIGPLAN Notices, 23:11, (1-17), Online publication date: 1-Nov-1988.
- Humphrey S and Krovetz B (1987). SELECTED AI-RELATED DISSERTATIONS, ACM SIGART Bulletin:100, (25-31), Online publication date: 1-Apr-1987.
- Samples A, Ungar D and Hilfinger P SOAR: Smalltalk without bytecodes Conference proceedings on Object-oriented programming systems, languages and applications, (107-118)
- Steenkiste P and Hennessy J LISP on a reduced-instruction-set-processor Proceedings of the 1986 ACM conference on LISP and functional programming, (192-201)
- Samples A, Ungar D and Hilfinger P (2019). SOAR: Smalltalk without bytecodes, ACM SIGPLAN Notices, 21:11, (107-118), Online publication date: 1-Nov-1986.
Index Terms
- The design and evaluation of a high performance SMALLTALK system
Recommendations
Branch predictor design and performance estimation for a high performance embedded microprocessor
ASP-DAC '03: Proceedings of the 2003 Asia and South Pacific Design Automation ConferenceAE64000 is a 64-bit embedded processor targeting high-end embedded applications such as HDTV, DVD, and 3D graphics. To achieve a higher performance for the AE64000, we design a branch predictor for the processor, and find the optimum parameters for the ...