Experience in automatic storage allocation

but a careful distinction must be drawn between a 512word block of information and a 512-word unit of memory; the latter is described as a page of core store or a sector of drum store. Thus a block of information occupies either a page of core store or a sector of drum store. The programmer need not think of addresses in this way, but it is how they are treated by the machine. The address of a word in main memory is 20 bits long (not counting the most significant address bit, which is zero for main memory), and it is effectively an l l -b i t block address, followed by a 9-bit position address within the block. Each 512-word page of core store has associated with it. an l 1-bit register, known as a page address register, which is used to hold the number of the block which is in that page. An address is decoded by comparing the l 1-bit block address with the contents of each of the page address registers in parallel to locate the block, and then the 9-bit word position part is decoded in the normal way. The page address registers are set by the SUPERVISOR. The SUPERVISOR controls the loading of the core store: when it needs a block in the core store, it brings the block to any available page of cores and sets the corresponding page address register to the number of that block. A program can use any addresses in the 20-bit range that are convenient, so long as the SUPERVISOR is notified, and when the SUPERVISOR brings information to the core store it arranges for that area of core store to have the appropriate "addresses". For information on the drmns, the SUPERWSOR keeps a table of where each block of information is, so that when a block needs to be used, the SUPERVISOR can transfer it to an available page of core memory for use. The problem is, of course, to find an available page. 4. D r u m T r a n s f e r L e a r n i n g P r o g r a m