Computer
The design and evaluation of a high performance SMALLTALK system
The design and evaluation of a high performance SMALLTALK system
Evaluation of the SPUR Lisp architecture
ISCA '86 Proceedings of the 13th annual international symposium on Computer architecture
Computer
Common LISP: the language
Tags and type checking in LISP: hardware and software approaches
ASPLOS II Proceedings of the second international conference on Architectual support for programming languages and operating systems
The Sprite Network Operating System
Computer
Improving locality of reference in a garbage-collecting memory management system
Communications of the ACM
Empirical analysis of a LISP system
Empirical analysis of a LISP system
A real-time garbage collector based on the lifetimes of objects
Communications of the ACM
List processing in real time on a serial computer
Communications of the ACM
Garbage collection in a large LISP system
LFP '84 Proceedings of the 1984 ACM Symposium on LISP and functional programming
ASPLOS IV Proceedings of the fourth international conference on Architectural support for programming languages and operating systems
Communications of the ACM - Special issue on LISP
Active messages: a mechanism for integrated communication and computation
ISCA '92 Proceedings of the 19th annual international symposium on Computer architecture
Cooperative shared memory: software and hardware for scalable multiprocessor
ASPLOS V Proceedings of the fifth international conference on Architectural support for programming languages and operating systems
Cooperative shared memory: software and hardware for scalable multiprocessors
ACM Transactions on Computer Systems (TOCS)
Polling efficiently on stock hardware
FPCA '93 Proceedings of the conference on Functional programming languages and computer architecture
Active messages: a mechanism for integrating communication and computation
25 years of the international symposia on Computer architecture (selected papers)
ICFP '00 Proceedings of the fifth ACM SIGPLAN international conference on Functional programming
Hi-index | 0.00 |
Recent measurements of Lisp systems show a dramatic skewing of operation frequency. For example, small integer (fix-num) arithmetic dominates most programs, but other number types can occur on almost any operation. Likewise, few memory references trigger special handling for garbage collection, but nearly all memory operations could trigger such special handling. Systems like SPARC and SPUR have shown that small amounts of special hardware can significantly reduce the need for inline software checks by trapping when an unusual condition is detected.A system's trapping architecture now becomes key to performance. In most systems, the trap architecture is intended to handle errors (e.g., address faults) or conditions requiring large amounts of processing (e.g., page faults). The requirements for Lisp traps are quite different. In particular, the trap frequency is higher, processing time per trap is shorter, and most need to be handled in the user's address space and context.This paper looks at these requirements, evaluates current trap architectures, and proposes enhancements for meeting those requirements. These enhancements increase performance for Lisp 11%-35% at a cost of about 1.6% more CPU logic. They also aid debugging in general and speed floating point exception handling.