首页> 外文会议>Proceedings of the 1984 ACM Symposium on LISP and functional programming >Trading data space for reduced time and code space in real-time garbage collection on stock hardware
【24h】

Trading data space for reduced time and code space in real-time garbage collection on stock hardware

机译:交换数据空间以减少时间,并减少库存硬件上实时垃圾回收中的代码空间

获取原文

摘要

This paper presents a new storage representation for cons cells (and all other LISP heap data structures) which allows more time efficient LISP with real-time garbage collection on stock hardware. "Stock hardware" refers to common modern architectures for Von Neumann uni-processors (e.g. MC68000, IBM370, VAX, NS32032, etc.). Previous real-time garbage collection schemes have either explicitly required specially tailored hardware in order to avoid multiple order of magnitude slowdowns, or have been merely extremely unattractive for implementation on stock hardware due to the high overhead assumed by all basic LISP primitives in checking the garbage collection status of pointers handed to them as arguments. We first show that copying compacting real-time garbage collection algorithms do not always need to protect user programs from seeing uncopied data, so long as a slightly more complicated collection termination condition is used. This opens the way to adding an indirection pointerto all LISP heap objects making it unnecessary to check the garbage collection status of pointers, and so the overhead costs for most primitives reduce to the addition of a single instruction. Impure primitives, i.e. those which write into existing structures (e.g. RPLACD), have their overhead reduced by a factor of almost 2. Code density is correspondingly decreased. The cost of this scheme is increased storage size for all LISP heap objects one extra pointer per object, although for some objects (e.g. floating point numbers) this expense is already necessary in many other non real-time garbage collection algorithms.

机译:

本文提出了一种用于cons单元(以及所有其他LISP堆数据结构)的新存储表示形式,该存储表示形式可以实现更省时的LISP,并且可以在库存硬件上进行实时垃圾回收。 “库存硬件”是指冯·诺依曼单处理器的常见现代体系结构(例如MC68000,IBM370,VAX,NS32032等)。以前的实时垃圾收集方案要么明确要求专门定制的硬件,以免出现多个数量级的减慢,要么由于所有基本LISP原语在检查垃圾时都承担高开销,因此对于在储备硬件上实施该方案仅是极无吸引力的作为参数传递给它们的指针的收集状态。我们首先表明,只要使用稍微复杂的收集终止条件,复制压缩实时垃圾收集算法并不一定总是需要保护用户程序免于看到未复制的数据。这为向所有LISP堆对象添加间接指针开辟了道路,从而不必检查指针的垃圾回收状态,因此,大多数原语的开销成本减少为添加一条指令。不纯的原语,即那些写入现有结构的原语(例如RPLACD),其开销减少了将近2倍。代码密度相应降低。这种方案的成本是增加了所有LISP堆对象的存储大小,即每个对象一个额外的指针,尽管对于某些对象(例如浮点数),在许多其他非实时垃圾回收算法中这已经是必需的。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号