A computer system has a heap for storing objects and a card table for
tracking updates to objects on the heap, typically for garbage collection
purposes. In particular, the heap is divided into segments, each
corresponding to a card in the card table, and any update to a segment in
the heap triggers a write barrier to mark the corresponding card in the
card table. It is important that this write barrier is as efficient as
possible to optimize system performance. In some circumstances an object
update may be made to an address outside the heap. To ensure that this
still properly maps to a card in the card table, the entire memory space
is folded cyclically, so that any given memory address corresponds to one,
and only one card, in the card table.
Un sistema informático tiene un montón para almacenar objetos y una tabla de tarjeta para seguir actualizaciones a los objetos en el montón, típicamente para los propósitos de la colección de la basura. En detalle, el montón se divide en los segmentos, cada uno que corresponde a una tarjeta en la tabla de tarjeta, y cualquier actualización a un segmento en el montón acciona una barrera del escribir para marcar la tarjeta correspondiente en la tabla de tarjeta. Es importante que éste escribe la barrera es tan eficiente como sea posible optimizar funcionamiento del sistema. En algunas circunstancias una actualización del objeto se puede hacer a una dirección fuera del montón. Para asegurarse de que ésta todavía traz correctamente a una tarjeta en la tabla de tarjeta, la memoria entera se dobla cíclico, de modo que cualquier dirección de memoria dada corresponda a una, y solamente una tarjeta, en la tabla de tarjeta.