Patent GB-1062244-A (GB)
Title: Data processing system
IPC: G06F9/48
Filed: 1964-06-24
Abstract: 1,062,244. Data processing systems. INTERNATIONAL BUSINESS MACHINES CORPORATION. June 24, 1964 [July 19, 1963], No. 26044/64. Heading G4A. A data processing system includes an addressable main memory connected to a plurality of processors each controlled by a programme and each using a separate pseudoaddressing scheme, and includes a directory correlating the individual processors and their pseudoaddressing schemes with the main memory addressing scheme. The data processors may have individual independent programmes or some may share programmes. In the particular embodiment, there are sixteen processors and the main memory has 256 blocks of storage, each block consisting of 256 eight-bit words. A main memory address consists of an eight-bit true prefix portion (indicating the block) and an eight-bit true suffix portion (indicating location within the block). When a processor requires to access a word in the main memory for reading or writing, it specifies the true suffix portion, a pseudo-prefix portion and a four-bit programme identifier. The true prefix portion is obtained from a memory in the directory in accordance with the pseudo-prefix and programme identifier. A processor may reserve blocks in the main memory and may cancel its reservation of all the blocks it has reserved. The data stored in any block may be protected so that it may only be altered after cancellation of the reservation of its block. The directory memory has 256 words, each consisting of the following fields: programme identifier (4 bits), label (1 bit), write (1 bit), pseudo-prefix (8 bits) and true prefix (8 bits). All fields but the true prefix are in read-write storage, and the true prefix is in read-only storage (detail in Fig. 8, not shown). Mask and argument registers are provided to allow selective searching of all fields except the true prefix in an associative manner. A processor presents a request relating to the main memory in the form of a signal indicating an access request or one indicating a reservation request, together with a word having the following fields: (a) one bit to indicate in the case of a reservation request whether a reservation is to be made (" enter ") or cancelled (" exit "), (b) one bit to indicate in the case of an access request whether reading or writing is required, (c) four bits of programme identifier, (d) one bit to indicate in the case of an access write request whether protection is required, (e) eight bits of real address suffix, (f) eight bits of pseudo-address prefix, (g) eight bits of information to be written, or the number of blocks required in an enter reservation request. Linked and gated chains of timing single-shots are used, once a start signal has been received, to cause the system to continuously follow the mode of operation shown in block form in the flow diagram of Fig. 2. In the " reservation request " block 21, the presence of a reservation request from a processor is tested for, the processors having a priority order for this purpose which in the particular embodiment is fixed by the circuitry (Fig. 3f, not shown), but may be variable by switches or a supervisory programme. A similar priority arrangement applies to the " access request " block 29. In the case of an enter reservation request, block 25 discovers whether a sufficient number of unreserved blocks of storage are available. This is done by comparing the number of blocks required with the count of a tally counter which has been counted down (from 256 initially) by one whenever a block has been reserved and counted up by one whenever the reservation of a block has been cancelled. Blocks in main memory are reserved ("enter" routine) by first locating unreserved blocks by associatively searching for the bits 0000 in the programme identifier fields in the directory memory and then writing the programme identifier into this field in an appropriate number of directory memory words (equal to the number of blocks to be reserved). As this writing in takes place, a count is kept which is compared with the desired number of blocks to be reserved, and writing in is terminated on equality. Reservation of all blocks reserved by a particular processor (or programme) is cancelled (" exit " routine) by writing " zero " bits in all fields (apart from the true prefix field) of the directory memory words associated with the blocks in question, these having been located by an associative search on the programme identifier field. In the case of an access request, an associative search of the directory memory is performed to discover which (if any) of the storage blocks are reserved with the programme identifier and pseudo-prefix specified by the processor. The search is done on the programme identifier, pseudo-prefix and label fields (the last, looking for a " one " bit, as an error-detecting feature). The number of these blocks is counted. If there are more than one, an error indication is given. If there are none, and the request is to read, an error indication is given, but if the request is to write, a label routine is performed. In this, an associative search is performed in the directory memory using the label and programme identifier fields to locate all blocks reserved for the programme (or processor) in question and not yet stored in. The directory memory words associated with these blocks have " zero " bits in their label fields. The pseudo-prefix supplied by the processor is stored in the first of these words and " one " bits are stored in the " label " and " write " fields thereof. On the other hand, if the number of reserved storage blocks is one, and the access request is to read, the main memory is read out using the true prefix obtained above. If the access request is to write and the address is protected (" zero " bit in the " write " field) an error indication is given, but otherwise the supplied data is written into the main memory using the true prefix obtained above. If protection is required, a " zero " bit is written into the " write " field of the directory memory word corresponding to the block, this word being located by an associative search on the programme identifier, pseudo-prefix and label fields. The system sends " entry completed," " exit completed " and " access completed " signals tb the requesting processor as appropriate. Full circuitry to achieve the above mode of operation is shown and described.