Patent GB-1187427-A (GB)
Title: Data Storage System
IPC: G06F17/30
Filed: 1967-07-31
Abstract: 1,187,427. Digital data storage. INTERNATIONAL BUSINESS MACHINES CORP. 31 July, 1967 [4 Aug., 1966], No. 35057/67. Heading G4C. In a data storage system, records each including a key and data are arranged in divisions each sub-divided into sub-divisions, stored indices associated with the divisions and subdivisions being searched to identify the division and subdivision containing a desired record, means being provided for addressing the desired record within its division. In the Fig. 1 embodiment, a bulk store 1 is divided into cells, subcells, strips, bars and heads, each of 10 cells having 20 subcells, each of the latter containing 10 strips, and so on. Records in the bulk store 1 each comprise data and a key. A CPU (central processing unit) inserts the key of a desired record serially by byte into a core store 4 together with an indication of the key size (number of bytes). This key is compared at 21, serially by byte, with the highest key number in each cell in turn, these highest key numbers being held in the core store 4, bytes of the two keys in each case being read out alternately from the core store 4 to compare logic 21, with decrementing of a byte counter 25 preloaded with the key size from the core store 4. When the byte counter 25 reaches zero, a key counter 30 is incremented and the output of the compare logic 21 is gated at 29. Successive "highest keys" are compared in this manner until the gated compare output says high or equal when the contents of the key counter 30 (which now specify the required cell) are inserted into the core store 4. They are also used to select a disc surface in a disc store 3 holding fields relating to the selected cell. The surface holds highest keys for the strips in the cell, the keys being grouped according to the subcells in which their strips occur, each group of keys having stored therewith the number of the subcell. These strip keys are read out in turn and compared with the desired key as before. On successful comparison, the subcell number (from the disc store 3) and the strip number (from the key counter 30) are inserted into the core store 4. A field from the disc store 3 (associated with the subcell number) and the strip number are used to select a "cylinder" and a track (head) therein respectively in the disc store to read out fields which are used to obtain the bar and head numbers in essentially the same way that the subcell and strip numbers were obtained before, except that the fields, instead of just specifying the highest key for each head also give the highest key which has overflowed each head and the head where the overflow information is to be found. On successful compare, the bar and head numbers are inserted into the core store 4 from the disc store 3 and key counter 30 respectively except that the disc store 3 supplies both if the successful compare occurred with an "overflow" key. The cell, subcell and strip numbers are used to address the bulk store 1 as soon as all three are available, the bar and head numbers being used when available. The fields read from the disc store 3 for comparison to identify the subcell and strip can be inserted into the core store 4, and used before fields from the disc store 3 in the search for the next record, to save time on average. Fig. 3 (not shown) shows a second embodiment in which a single disc store replaces stores 1, 3, 4. "Highest" keys from the store are compared with the desired key, with incrementing of a counter, until a high or equal result is obtained when the counter is used to select a "cylinder" of the disc store to obtain further "highest" keys for comparison in the same way in order to select a head. Then an associative search on the keys of the successive records is performed. Fig. 4 (not shown) shows a third embodiment generally similar to the second in its overall operation except that a core store is used to save time as in the last sentence of the second paragraph above.