Patent GB-1188436-A (GB)
Title: Improvements in and relating to Digital Computers
Inventor: CARLSON CARL BERNARD
IPC: G06F12/10
Filed: 1968-09-20
Abstract: 1,188,436. Addressing data stores; computers. BURROUGHS CORP. 20 Sept., 1968 [25 Sept., 1967], No. 44740/68. Headings G4A and G4C. Address manipulation circuitry for a digital computer comprises a computer memory, a peripheral memory, and a source of copy descriptors and mother descriptors referencing information stored in groups of memory cells forming arrays in the computer memory, each mother descriptor including fields designating respectively: (1) the base address of an array in the computer memory or the array address in the peripheral memory, (2) length of array, (3) nature of field (1), each copy descriptor including fields designating respectively: (1) the base address of an array or the location of the mother descriptor of the array in the source, (2) the index value of a cell in the array relative to the base address, (3) nature of field (1), there being means responsive to an instruction to access a cell of the computer memory to address this memory with the sum of fields (1) and (2) of an appropriate copy descriptor if field (3) of this descriptor designates field (1) as containing a base address. General.-The computer memory includes a last-in-first-out stack to hold the descriptors (see above) but the locations of the stack are also addressable randomly by a memory address register also used for addressing the rest of the computer memory. The peripheral (back-up) memory may be a disc file or magnetic tape. Besides the fields mentioned above, each descriptor includes a field (4) specifying the descriptor as mother or copy. During operation, fields (3) and (4) are consulted and updated as appropriate. In the course of generation of the descriptors, a mother descriptor is generated for information in an array the first time it is referenced and a copy descriptor on each subsequent reference, so all the copy descriptors related to a given mother descriptor lie above it in the stack. Accessing a cell of computer memory.-A computer-memory-access instruction causes the top descriptor in the stack to be obtained. If it is a copy descriptor with a base address in field (1), fields (1) and (2) are added and used to address the computer memory. If it is a copy descriptor with a mother descriptor address in field (1), this address is used to access this mother descriptor from the stack. If the mother descriptor has a peripheral address in field (1), the computer programme is interrupted and fields (1) and (2) of the mother descriptor are used to obtain the array from peripheral memory, this array being stored in an unused portion of computer memory and its new base address being substituted for the peripheral address in field (1) of the mother descriptor. Thus if the mother descriptor did not initially have a base address in field (1) it has now, and in either case the base address is transferred to field (1) of the copy descriptor and added to field (2) of the copy descriptor to address the computer memory. If, alternatively, the original descriptor is a mother descriptor it is treated like the mother descriptor referred to above up to the point where it contains a base address in field (1), when an index value is inserted in field (2) and the sum of these fields is used to address the computer memory. As a modification, field (2) of either type of descriptor could contain an index value or an array length, a further field of the descriptor indicating which and causing replacement of a length by an index value from the stack before addition. Updating descriptors (see above also).-When an array has to be returned from peripheral to computer memory as described above, but there is no room, an array has to be transferred to the peripheral memory to make room. The computer memory is addressed to obtain (from the stack) the mother descriptor relating to the array to be sent to peripheral memory and field (1) of each descriptor above this mother descriptor in the stack is compared with field (1) of the mother descriptor, being replaced with the address in memory of the mother descriptor if equal. Finally, the peripheral address of the array is inserted into field (1) of the mother descriptor. All the descriptors are returned to their locations in the stack after use. Reference is made to Specification 1,188,435.