A database for storing chip design information comprises a plurality of
parallel arrays for storing a particular class of information. The union
of related entries commencing at a given array index across the one or
more parallel arrays of a particular class forms a structure for a given
instance within a class. Between classes, individual records in an array
may cross-reference, through an array index, records in other arrays. The
inherent sequential nature of records stored in the array may be used as
linking information, thus avoiding the requirement of storing linking
pointers in memory. Rather than storing all of the coordinate or spatial
information for a given shape, only the offset information from the
preceding shape may be stored, with the assumption that the second shape
starts at the ending point of the first shape. Certain default values or
characteristics for information within the array records can be assumed
unless overridden by an indicator in the array record. Allocation of
storage space for data entries may be adaptively managed based on the size
of the data to be stored, with allocation size being determined by the
largest value of the stored entries, or a header code for the data entry
indicating the number of bytes. The data header of each class may include
a pointer indicating the position in memory of a main data header, which
in turn contains pointers to the positions in memory of the other classes,
allowing instances in a class to refer to related instances in the other
classes through an integer index number without requiring the use of other
pointers.
Une base de données pour stocker l'information de conception de morceau comporte une pluralité des rangées parallèles pour stocker une classe particulière d'information. L'union des entrées relatives débutant à un index donné de rangée à travers les un ou plusieurs choix parallèles d'une classe de détail forme une structure pour un exemple donné dans une classe. Entre les classes, les différents disques dans une rangée peuvent établir les renvois de, par un index de rangée, des disques dans d'autres rangées. La nature séquentielle inhérente des disques stockés dans la rangée peut être employée en tant qu'enchaînement de l'information, de ce fait évitant la condition de stocker les indicateurs d'enchaînement dans la mémoire. Plutôt que de stocker toute l'information du même rang ou spatiale pour une forme donnée, seulement l'information excentrée de la forme précédente peut être stockée, avec la prétention que la deuxième forme commence au point final de la première forme. De certaines valeurs par défaut ou caractéristiques pour l'information dans les disques de rangée peuvent être assumées à moins que dépassé par un indicateur dans le disque de rangée. L'attribution de l'espace mémoire pour des saisies de données peut être de manière adaptative contrôlée basé sur la taille des données à stocker, avec la taille d'attribution déterminé par la plus grande valeur des entrées stockées, ou un code d'en-tête pour la saisie de données indiquant le nombre de bytes. L'en-tête de données de chaque classe peut inclure un indicateur indiquant la position dans la mémoire d'un en-tête principal de données, qui contient alternativement des indicateurs dans les positions dans la mémoire des autres classes, laissant cite dans une classe pour se rapporter à des exemples relatifs dans les autres classes par un nombre d'index de nombre entier sans exiger l'utilisation d'autres indicateurs.