Abstract A computer memory is divided into segments with reference to the programs being executed. Each pointer to a physical storage address consists of a segment number and a displacement. A program segment base table is provided in the memory for giving the physical base address for each segment. A tag field of at least one bit is provided in each of the general purpose registers and the addresses in the memory, which carries a tag for indicating whether the data word contains address data or the other data. Back-up registers are provided in one-to-one correspondence to the general purpose registers capable of being loaded with the data words containing the physical addresses. On loading a general purpose register with a data word comprising an address as signalled by the tag, reference is had to the segment base table to load the corresponding back-up register with the pointer. On storing in a segment a data word comprising an address as similarly determined, reference is had to the segment base table to store the data word containing the pointer.
An electronic computer employing dynamic storage relocation, comprising a plural location memory portion including a segment storage position table stored therein, said segment table memory portion storing the physical base storage addresses of plural stored program segments, said computer also including means for storing data in said memory portion and means for storing program instruction addresses in logical address form comprising an address in said segment base table and a displacement factor relative to the stored base address, said stored data and addresses including a field for characterizing the respective memory locations as containing an address or an item other than an adress, said computer further including plural general purpose registers and plural back-up registers in one-to-one correspondence with said general purpose registers, means for reading the stored contents of a location in said memory, means responsive to said data-address characterizing field of words read from said memory portion for identifying address words, means for entering each said identified address word from said memory portion into a selected one of said back-up registers in logical address form and including means for entering said address word into the associated one of said general purpose registers in derived physical address form, and means for storing logical addresses in said memory from said back-up registers.
Claim 2
Dependent Claim
212 words
An electronic computer employing dynamic storage relocation, comprising a plural location memory portion including a segment storage position table stored therein, said segment table memory portion storing the physical base storage addresses of plural stored program segments, said computer also including means for storing data in said memory portion and means for storing program instruction addresses in logical address form comprising an address in said segment base table and a displacement factor relative to the stored base address, said stored data and addresses including a field for characterizing the respective memory locations as containing an address or an item other than an adress, said computer further including plural general purpose registers and plural back-up registers in one-to-one correspondence with said general purpose registers, means for reading the stored contents of a location in said memory, means responsive to said data-address characterizing field of words read from said memory portion for identifying address words, means for entering each said identified address word from said memory portion into a selected one of said back-up registers in logical address form and including means for entering said address word into the associated one of said general purpose registers in derived physical address form, and means for storing logical addresses in said memory from said back-up registers.
Claim 3
Dependent Claim
44 words
A combination as in claim 1, further comprising means for relocating a stored program segment, said relocating means also including means for updating the contents of the corresponding segment table memory location to contain a new base physical address for the relocated program segment.