Abstract:
Each device is represented by a node in a hierarchical tree, referred to herein as an interrupt source tree (IST). The root and intermediate nodes of the IST represent dispatching or determining points; this removes the need for the device drivers to contain dispatching code; the drivers now only need to contain interrupt handling code specific to the device itself. At these nodes code is executed to determine which branch to take down the IST. The bottom nodes are the leaf nodes; the leaf nodes identify the device interrupt handler. By moving the determination steps performed by the different device drivers to the nodes of the IST, the device drivers are modular and portable. Furthermore, changes to the computer system configuration, which in the prior art would require modification of all device drivers, can be adapted to by modification of the IST.
Abstract:
Subroutine control apparatus for providing shared subroutine control for a plurality of executing tasks. Multiple levels of subroutine entry are provided for each task by employing a plurality of selectably accessible stacks, one for each task, along with corresponding pointer registers. These provide storage for a plurality of return addresses as required for each task during task performance. In addition, an updatable significantly faster access register is provided for each task for storing its most recent return address so as to permit return addresses to be rapidly made available when an executing task reaches the end of a subroutine.
Abstract:
A data processing system intended for handling multiple tasks and comprising at least two processors, a memory unit and an I/O unit which are all connected to a data address and control signal transmission line. Each of the processors comprises an arithmetic-logic unit, a scratch pad memory, a processor status register, an interface, and a control unit which are all interconnected by a processor data bus. Each of the processors further contains an address interrupt unit whose input/output is connected to the data address and control signal transmission line. A first output of the address interrupt unit is connected to the processor data bus and its second output is connected to a second input of the control unit. A second control output of the control unit is connected to the input of the address interrupt unit. The invention helps increase the throughput of a data processing system and simplify the programming of interaction between the system's processors.
Abstract:
A dual fetch microsequencer having two single-ported microprogram memories wherein both the sequential and jump address microinstructions of a binary conditional branch can be simultaneously prefetched, one from each memory. The microprogram is assembled so that the sequential and jump addresses of each branch have opposite odd/even polarities. Accordingly, with all odd addresses in one memory and even in the other, the first instruction of both possible paths can always be prefetched simultaneously. When a conditional branch microinstruction is loaded into the execution register, its jump address or a value corresponding to it is transferred to the address register for the appropriate microprogram memory. The address of the microinstruction in the execution register is incremented and transferred to the address register of the other microprogram memory. Prefetch delays are thereby reduced. Also, when a valid conditional jump address is not provided, that microprogram memory may be transparently overlayed during that microcycle.
Abstract:
The present invention discloses a data processing system where a plurality of vector registers consisting of plurality of elements are provided between a main memory unit and an operational processing unit, the desired data is transferred to the vector registers from the main memory unit and is held therein, and various processings such as a logical operation are carried out by sequentially accessing the elements within said vector registers. The present invention also includes a plurality of memory banks which can be independently accessed and are provided for the vector registers. A series of elements of each vector register are interleaved in the plurality of memory banks and the elements having the same numbering in each vector register are arranged in the same memory bank. Timing necessary for starting access to a series of elements of said vector registers are specified for each class of processing, so that the vector operation processings can be done very effectively and without operand collision.
Abstract:
A peripheral device subsystem enables its peripheral devices to operate asynchronously with respect to attaches hosts through the use of managed buffers, new multiple data transfer modes, control and error recovery operations. In a preferred first or buffer mode of operation, all data of each record being transferred can be resident in a buffer before transfer to either a host or device. For a host to device write transfer, receipt of such a record by the buffer results in the subsystem signaling to the host a completion of a transfer to an addressed device even though the device has received none or only part of the data. In a second or tape write mode, recording data in a peripheral device, such as a tape recorder, completion of recording is not signaled until after the buffer has transferred the data to the recorder. In the event allocatable buffer space is insufficient to enable operations in the first or second modes, the subsystem automatically switches to a tape synchronous or third mode of data transfer in which data signals are simultaneously transferred between the buffer and the host and peripheral device. A host SYNCHRONIZE command synchronizes buffer operations to host operations. Data to be recorded in a peripheral device and resident in the buffer can be retrieved by a host via a READ BUFFER command. Errors in the subsystem are reported even when delayed after completion of host operations. Additional mode controls are also disclosed.
Abstract:
Computer data and procedure protection by preventing processes from intering with each other or sharing each other's address space in an unauthorized manner is accomplished in hardware/firmware by restricting addressability to a segmented memory and by a ring protection mechanism.To protect information in segments shared by several processes from misuse by one of these processes a ring protection hardware system is utilized. There are four ring classes numbered 0 through 3. Each ring represents a level of system privilege with level 0 (the innermost ring) having the most privilege and level 3 (the outermost ring) the least. Every procedure in the system has a minimum and a maximum execute ring number assigned to it which specifies who may legally call the procedure. Also maximum write and read ring numbers specify the maximum ring numbers for which a write and/or read operation is permitted.Processes use a segmented address during execution wherein segment tables isolate the address space of the various processes in the system. Hardware checks that the address used by a process is part of the address space assigned to the process, and if the address is outside the prescribed address space, an exception occurs. A process cannot refer to data within the address space of another process because the hardware uses the segment table of the referencing process.
Abstract:
The disclosure describes a floating-priority storage access control arrangement for plural processors to a shared main storage in a multi-processing (MP) system. The shared main storage logically couples the main storage units provided with each of the processors into a single expanse of real addresses available to each processor. Exclusive access to the shared storage is given to any processor for as long as that processor can provide a burst of one or more successive storage requests. The burst ends when that processor misses a storage cycle by not providing a locally granted request.The shared storage access is controlled in each processor by means of an MP priority pointer circuit which receives storage requests granted by a local priority circuit in the processor. The MP priority pointer circuits are interconnected between the processors. When a burst ends for one processor, another processor having one or more pending storage requests is given priority and begins its burst during the missed cycle, continuing with highest priority until it completes its burst by not having a locally granted request during a cycle. If no processor makes a request during a storage cycle, and both processors simultaneously make a request during a following cycle, priority for an access burst is given to the processor which last had priority. Thus, priority flip-flops back and forth between the processors as they respectively access main storage in bursts of requests.
Abstract:
Vector processing in a computer is achieved by means of a plurality of vector registers, a plurality of independent fully segmented functional units, and means for controlling the operation of the vector registers. Operations are performed on data from vector register to functional unit and back to vector register with minimal delay, rather than memory to functional unit and return to memory with its attendant much greater start-up delays. Data may be bulk transferred between memory and some vector registers while other vector registers are involved in vector processing with one or more functional units. In vector processing elements of one or more vector registers are successively transmitted as operands to a functional unit at a rate of one per clock period, and results are transmitted from a functional unit to a receiving vector register at the same rate. In a chaining mode of operation, the elements in a result vector register become available for immediate and simultaneous transmission as operands to another functional unit. In this mode, more than one result can be obtained per clock period.
Abstract:
An automatic alternator for a priority circuit comprises one or more flip-flop circuits connected to the channels of the priority circuit by a plurality of AND gate means which are responsive to outputs of the flip-flop circuits and of the priority circuit channels to alternate the servicing of successive simultaneous signals at two or more requesting ports. The flip-flop circuit input is connected to the requesting ports through an AND gate and changes its operating state in response to the presence of two simultaneous signals at the requesting ports and to a cyclically occurring clock input to the flip-flop circuit. When the operating state of the flip-flop circuit is changed to the alternating mode, the signal at the requesting port served by the priority circuit channel during the preceding cycle is blocked from that channel and another request signal appearing simultaneously at the remaining port or ports is applied to the other channel or channels. For a priority circuit having three or more channels, the automatic alternator circuit permits random or "free race" alternating servicing of simultaneous requests or alternatively may provide servicing of those requests in a predetermined sequence in the manner of a commutator.