Patent GB-1468483-A (GB)
Title: Hierarchical memory systems
IPC: G06F12/16
Filed: 1975-05-05
Abstract: 1468483 Hierarchical data storage systems INTERNATIONAL BUSINESS MACHINES CORP 5 May 1975 [5 July 1974] 18676/75 Heading G4A In a plural-level hierarchical memory system with a data store at each level, a given level has a second store for storing changes, changes being copied into a lower level under control of journal means specifying the order in which the changes were made. As disclosed, each level has a data store (which contains progressively more data the lower the level, at least the lowest level data store being non-volatile, e.g. magnetic tape), a directory (of the data in the data store), a copy back store (the "second store" referred to above, which stores the changes made in the data store, and is used for updating the data store of the next lower level, except that the copy back store of the lowest level is simply a duplicate of the data store), a journal (recording the locations of the copy back store holding changes, in the order in which the changes were made) and a journal directory (specifying which locations are in the journal). A processor requiring data sends a virtual address, a hash of which addresses the highest-level directory to read-out 4 virtual addresses and if any of these agrees with the required virtual address, the highest-level data store is addressed by the hash address to read-out 4 items the appropriate one of which is sent to the processor. If not, another hash of the virtual address is applied to the next level similarly, and so on. When the required data is found it is moved up the hierarchy to the highest level. When the processor changes (adds or modifies) data in the highest-level data store, the virtual address is used to associatively search virtual addresses stored in the journal directory. If there is no equality found (i.e. the data at that address was not previously modified), the virtual address is stored in the journal directory and in the next free space in the journal. The change is entered into both the data store and the copy back store (addressed by the appropriate hash of the virtual address). When the copy back store, journal and journal directory of the highest level and the data store of the next level are not in use, the changes are copied from the copy back store to the data store of the said next level, one at a time in the order specified by the journal (addressed by a counter for this purpose), "valid" bits in the journal and journal directory being reset to prevent duplicated copy back. The journal also holds the 1-out-of-4 selection resulting from the comparison of the directory output with virtual address if successful (see above). Each set of 4 virtual addresses stored in the directory has a set of 4 status bits also stored, these producing a forced copy back (not in the "least recently first modified" order of the copy back above) when data is to be entered into one of the 4 addresses and data at all 4 addresses has been changed but not yet copied back. The copy back stores, journals and journal directories are on a separate power supply from the rest of the system, and battery power may be provided for them as well.