skip to main content
The design and evaluation of a high performance SMALLTALK system
Publisher:
  • University of California at Berkeley
  • Computer Science Division 571 Evans Hall Berkeley, CA
  • United States
Order Number:UMI order no. GAX86-24972
Bibliometrics
Skip Abstract Section
Abstract

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

  1. 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)
  2. 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)
  3. ACM
    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)
  4. ACM
    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)
  5. ACM
    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.
  6. ACM
    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)
  7. ACM
    Johnson D (1991). The case for a read barrier, ACM SIGPLAN Notices, 26:4, (279-287), Online publication date: 2-Apr-1991.
  8. ACM
    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.
  9. ACM
    Johnson D (1991). The case for a read barrier, ACM SIGARCH Computer Architecture News, 19:2, (279-287), Online publication date: 2-Apr-1991.
  10. ACM
    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)
  11. ACM
    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.
  12. ACM
    Sharma R and Soffa M Parallel generational garbage collection Conference proceedings on Object-oriented programming systems, languages, and applications, (16-32)
  13. ACM
    Sharma R and Soffa M (1991). Parallel generational garbage collection, ACM SIGPLAN Notices, 26:11, (16-32), Online publication date: 1-Nov-1991.
  14. ACM
    Johnson D Trap architectures for Lisp systems Proceedings of the 1990 ACM conference on LISP and functional programming, (79-86)
  15. ACM
    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)
  16. ACM
    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.
  17. ACM
    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)
  18. ACM
    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.
  19. ACM
    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)
  20. ACM
    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.
  21. ACM
    Ungar D and Jackson F Tenuring policies for generation-based storage reclamation Conference proceedings on Object-oriented programming systems, languages and applications, (1-17)
  22. ACM
    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.
  23. ACM
    Humphrey S and Krovetz B (1987). SELECTED AI-RELATED DISSERTATIONS, ACM SIGART Bulletin:100, (25-31), Online publication date: 1-Apr-1987.
  24. ACM
    Samples A, Ungar D and Hilfinger P SOAR: Smalltalk without bytecodes Conference proceedings on Object-oriented programming systems, languages and applications, (107-118)
  25. ACM
    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)
  26. ACM
    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.
Contributors
  • IBM Research

Recommendations