Patent GB-1052176-A (GB)
IPC: G06F17/30
Abstract: 1,052,176. Electric digital data-storage. INTERNATIONAL BUSINESS MACHINES CORPORATION. June 24, 1964 [July 5, 1963], No. 26046/64. Heading G4C. In a computer, a hierarchically-organized data string incorporating hierarchical level identifier symbols and put into the computer can be broken up into two or more portions which are stored in non-contiguous portions of a main store, and each time the data string is broken up an address is generated and stored to link the last word of one portion with the first word of the next portion, those machine words including a level identifier symbol being indicated by an occurrence mark at a corresponding address in an auxiliary store. In the particular embodiment, variable-fieldlength data is stored as 8-character words in a 3-D magnetic core matrix main store. The linking address is the address of the first word of the second storage portion and is stored in the 7th and 8th character positions of the last word of the first storage portion, a special link character being stored in the 6th character position. Each word in the main store has assigned thereto a bit position (at a corresponding address) in both a forward discontinuity (FD) core-plane and a reverse-discontinuity (RD) core-plane. A ONE bit is stored in (a) the bit position of the FD plane corresponding to each main store word including a link character and (b) the bit position of the RD plane corresponding to a linked-to address. As in Specification 999,716, which is referred to, the data strings are hierarchically organized, and include hierarchical level identifier characters (which are never stored in any position in main store other than the 1st character position of a word, any gaps necessitated by this rule being filled with null characters). The locations of the level identifiers are specified by ONE bits in auxiliary level identifier core-planes (one per hierarchical level) and a particular piece of the data string is located by reading out selected rows of these planes one at a time and counting ONE bits. When this is done in the forward direction in the present invention, the corresponding rows of the FD plane are also read out and when a ONE bit is encountered in the FD plane, indicating a discontinuity, the linking address is accessed from the main store and the search continued thereat. During this forward search, the addresses having ONE bits in the FD plane and the corresponding linking addresses are stored in a push-down store to enable subsequent searching in the reverse direction through main store, an address being obtained from the push-down store when a ONE bit is encountered in the RD plane during this reverse search. Alternatively, it is mentioned, reverse linking addresses may be provided in the data string. A store called Availability List is provided storing the beginning and end addresses of free sections of the main store. Besides initial inputting of data into the main store and searching, data may be " inserted," " deleted " or " substituted." An " insert " operation transfers data already in the main store to other addresses thereof specified by the Availability List and creates linking addresses from the required position in the recipient data string to the first word of the transferred data and from the last word of the transferred data back to the next word of the data string. If the last three character positions of the word in the data string to contain the link to the " transferred " (inserted) data do not initially contain null characters, the characters in these positions are read out and stored at the beginning of the inserted data. A " deletion " operation involves deletion of data words and the creation of links to bridge the resulting gap(s). A " substitute " operation involves replacing data in a string with other data already in the main store. If the replacing data is too big to fit in the gap, linking to and from another part of the store (addresses from the Availability List) where the overflow data is placed is provided as in an " insert " operation. A modified system is mentioned in which a common piece of data could be " inserted " (see above) in a plurality of data strings by having means for storing in each data string not only the linking address to the insert but also the return linking address (which was stored in the insert, above). Then before transferring to the insert during a search, the return linking address would be stored in character positions 7 and 8 of the last word of the insert. The beginning addresses of all the data strings may be stored together with identifying names for the strings for table look-up.