Run-time checking in Lisp by integrating memory addressing and range checking

  • Authors:
  • M. Sato;S. Ichikawa;E. Goto

  • Affiliations:
  • Research Development Corporation of Japan (JRDC), 5-64 Tsukiji, Chou-ku, Tokyo 104, Japan;Research Development Corporation of Japan (JRDC), 5-64 Tsukiji, Chou-ku, Tokyo 104, Japan;University of Tokyo, Depattment of Information Science., 7-3-l Hongo, Bunkyo-ku. Tokyo 113. Japan

  • Venue:
  • ISCA '89 Proceedings of the 16th annual international symposium on Computer architecture
  • Year:
  • 1989

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes the BL addressing mode and the address tag in FLATS2 machine, which is a general-purpose MIMD computer now under construction. The BL addressing mode integrates memory accessing and range checking by hardware. Address tag is a bit in word, which indicates the capability for memory access. Combining them together, efficient memory protection is provided at run-time. It reduces the cost of run-time type checking in Lisp by checking the address tag and the address of a pointer against the range of the region associated to a type, in parallel with the memory access. The arithmetic instructions check the address tags of operands to support the generic arithmetic in Lisp. We can also make use of this scheme to check the number of arguments and multiple return values and to check array-bounds to support faster execution of Common Lisp program. These facilities are not specific to Lisp, so that they can be used more generally than other tagged architectures.