Multiprocessor system
First Claim
1. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,a plurality of separate processor modules,each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules,interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer,said interprocessor bus means including,a common shared interprocessor bus,interprocessor control means in each processor module for connection that processor module to the interprocessor bus, andcentralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus,said bus controller means including,arbitration means for centrally arbitrating the priority of said data transfers andbus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, said processor module including:
- reading means for reading data from the associated main read/write memory of that processor module for transmission to the interprocessor bus, andwriting means for writing data received from the interprocessor bus into a specied location in the association main read/write memory of that processor module, wherein said reading and writing means are effective to transfer data from the memory of a sender processor module to the memory of a receiver processor module, and wherein each processor module includes a buffer for each other processor module and also includes location pointing means for directing incoming data from an interprocessor bus to a specified location in a related buffer in the memory of a receiver processor module.
1 Assignment
0 Petitions
Accused Products
Abstract
A multiprocessor system the kind in which two or more separate processor modules are interconnected for parallel processing includes two redundant interprocessor buses dedicated exclusively to interprocessor communication. Any processor module may send information to any other processor module by either bus. The buses are shared in use by the processor modules on a time-sharing basis. Use of each bus is controlled by a special bus controller.
The multiprocessor system includes an input/output system having multi-port device controllers and input/output buses connecting each device controller for access by the input/output channels of at least two different processor modules. Each device controller includes logic which insures that only one port is selected for access at a time.
The multiprocessor system includes a distributed power supply system which insures nonstop operation of the remainder of the multiprocessor system in the event of a failure of a power supply for a part of the system. The distributed power supply system includes a separate power supply for each processor module and two separate power supplies for each device controller. Either one of the two power supplies provides the entire power for the device controller in the event the other power supply fails. The distributed power supply system permits any processor module or device controller to be powered down so that on-line maintenance can be performed in a power-off condition while the rest of the multiprocessor system is on-line and functional.
The multiprocessor system includes a memory system in which the memory of each processor module is divided into four logical address areas--user data, system data, user code and system code. The memory system includes a map which translates logical addresses to physical addresses and which coacts with the multiprocessor system to bring pages from secondary memory into primary main memory as required to implement a virtual memory system. The map also provides a protection function. It provides inherent protection among users in a multiprogramming environment, isolates programs from data and protects system programs from the actions of user programs. The map also provides a reference history information for each logical page as an aid to efficient memory management by the operating system.
The multiprocessor system includes in the memory of each processor module an error detection and correction system which detects all single bit and double bit errors and which corrects all single bit errors in semiconductor memory storage.
-
Citations
80 Claims
-
1. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer, said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connection that processor module to the interprocessor bus, and centralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus, said bus controller means including, arbitration means for centrally arbitrating the priority of said data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, said processor module including: -
reading means for reading data from the associated main read/write memory of that processor module for transmission to the interprocessor bus, and writing means for writing data received from the interprocessor bus into a specied location in the association main read/write memory of that processor module, wherein said reading and writing means are effective to transfer data from the memory of a sender processor module to the memory of a receiver processor module, and wherein each processor module includes a buffer for each other processor module and also includes location pointing means for directing incoming data from an interprocessor bus to a specified location in a related buffer in the memory of a receiver processor module. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A multiprocesor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer, said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connecting that processor module to the interprocessor bus, and centralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus, said bus controller means including, arbitration means for centrally arbitrating the priority of data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, said interprocessor control means in each processor module including, inqueue means for receiving a sequence of data words from the interprocessor bus in a time interval defined by the bus controller means and outqueue means for transmitting a sequence of data words to the interprocessor bus in the time interval defined by the bus controller means said processor module including: -
reading means for reading data from the associated main read/write memory of that processor module for transmission to the interprocessor bus, and writing means for writing data received from the interprocessor bus into a specied location in the associated main read/write memory of that processor module, wherein said reading and writing means are effective to transfer data from the memory of a sender processor module to the memory of a receiver processor module, and wherein each processor module includes a buffer for each other processor module and also includes location pointing means for directing incoming data from an interprocessor bus to a specified location in a related buffer in the memory of a receiver processor module. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, a plurality of interprocessor bus means each separate and distinct from an input/output system and from a memory bus and each interconnecting the processor modules for direct processor module to processor module signaling and data transfer and wherein each interprocessor bus means is separate and distinct from the other interprocessor bus means so that failure of a particular interprocessor bus means does not prevent signaling and data transfer over the other interprocessor bus means, each said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connecting that processor module to each interprocessor bus, and a separate bus controller means operatively associated with a particular interprocessor bus and with each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus, each of said bus controller means including, arbitration means for centrally arbitrating the priority of data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus.
-
28. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer, said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connecting that processor module to the interprocessor bus, and centralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus, said bus controller means including, arbitration means for centrally arbitrating the priority of data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, said interprocessor means in each processor module including, inqueue means for receiving a sequence of data words from the interprocessor bus in a time interval defined by the bus controller means and outqueue means for transmitting a sequence of data words to the interprocessor bus in a time interval defined by the bus controller means, each central processing unit including a microprocessor and an associated control memory, said control memory including, send controller means for dividing a block of data into individual packets each comprising a predetermined number of data words and for interacting with the interprocessor control means to fill the outqueue means with each packet transmitted, and bus receive controller means for interacting with the interprocessor control means to empty the inqueue means of each packet received and to reassemble received packets into the original data block, and wherein the bus controller means includes packet counter means operatively associated with the bus clock generator means for defining a time interval for transmission of each packet over the interprocessor bus to permit the usage of the interprocessor bus to be multiplexed on a packet by packet basis.
-
57. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, and a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer, said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connecting that processor module to the interprocessor bus, and centralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus, said bus controller means including, arbitration means for centrally arbitrating the priority of data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, input/output channel means in each processor module for connecting that processor module to a device controller, and a device controller operatively associated with the input/output channel means for controlling the transfer of data between the processor module and peripheral devices, said processor module including: -
reading means for reading data from the associated main read/write memory of that processor module for transmission to the interprocessor bus, and writing means for writing data received from the interprocessor bus into a specied location in the associated main read/write memory of that processor module, wherein said reading and writing means are effective to transfer data from the memory of a sender processor module to the memory of a receiver processor module, and wherein each processor module includes a buffer for each other processor module and also includes location pointing means for directing incoming data from an interprocessor bus to a specified location in a related buffer in the memory of a receiver processor module. - View Dependent Claims (58, 59, 60, 61, 62, 63, 64, 65)
-
-
66. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, each processor module comprising a central processing unit within the processor module, a separate main read-write word addressable memory within the processor module having sufficient capacity for the storage of system control and application programs and data, a dedicated memory bus within the processor module connecting the separate main memory in the processor module exclusively to its associated central processing unit in the processor module for access to said programs and data without contention with central processing units in other processor modules, and an input/output channel, interprocessor bus means separate and distinct from an input/output system and from a memory bus and interconnecting the processor modules for direct processor module to processor module signaling and data transfer, said interprocessor bus means including, a common shared interprocessor bus, interprocessor control means in each processor module for connecting that processor module to the interprocessor bus, and centralized bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers over the interprocessor bus and for controlling transmissions over the interprocessor bus, said bus controller means including, arbitration means for centrally arbitrating the priority of data transfers and bus clock generator means for controlling the time sequence of data transfer by a processor module over the interprocessor bus, a plurality of peripheral devices, a plurality of device controllers for controlling the transfer of data between the processor modules and the peripheral devices, multiple ports in each device controller, multiple associated input/output buses connecting each device controller for access by input/output channels of different processor modules, multiple separate power supplies operatively associated with each device controller for powering each device controller, and connecting means for powering a device controller from the remaining associated power supplies in the event of a failure or turn off of another power supply for that device controller whereby the power supply operatively associated with a processor module can be powered down while the rest of the multiprocessor system is on-line and functional.
-
73. A processor module for a multiprocessor system of the kind in which separate processor modules communicate for signaling and data transfer over an interprocessor bus having a bus clock provided by an associated bus controller, said processor module comprising,
a central processing unit having a processor clock which is independent of the bus clock, a memory containing instructions and data for that module, and interprocessor control means for connecting the processor module to the interprocessor bus, said interprocessor control means including buffer means for storing data transferred between the interprocessor bus and the processor memory, and buffer control means for controlling filling and emptying of the buffer means, said buffer control means having first logic means for operating in synchronism with the bus clock and second logic means for operating in synchronism with the processor clock, and first interlock means associated with the first logic means for receiving the state of the second logic means and for responding to enable certain state changes of said first logic means, and second interlock means associated with the second logic means for receiving the state of the first logic means and for responding to enable certain state changes of said second logic means, so that the interprocessor bus operates in synchronism with the bus clock and the central processing unit and memory of the processor module operate in synchronism with the processor clock without loss or duplication of the data being transferred and without loss of information about the state of the transfer sequence.
-
74. A method of interconnecting a plurality of processor modules by a multimodule communication path for insuring that one processor module ready to send can establish a sender-receiver path with another one of the processor modules ready to receive and can transmit data on a time synchronized basis without reliance on handshake acknowledgement between the pair of processor modules for each data word transmitted, said method comprising,
connecting all of the processor modules with a multimodule communication path, controlling the multimodule communication path by a bus controller, operating the bus as a synchronous bus with a portion of each processor module synchronized with a bus clock provided by the bus controller, transmitting data in the form of multiword packets, polling the processor modules on a demand basis to identify a processor module which is ready to send a packet on the bus and to identify an intended receiver processor module, establishing a sender-receiver path by interrogating the readiness of the receiver processor module to receive and then allocating a bus time for the sending of a packet which time corresponds exactly to the length of the packet itself, and then releasing the bus and returning the bus controller to its idle state, or if further demanded again to its polling state.
-
77. A multiprocessor system of the kind in which separate processor modules operate concurrently and cooperatively for system control and application processing, said multiprocessor system comprising,
a plurality of separate processor modules, interprocessor bus means including an interprocessor bus connecting each processor module for direct processor module to processor module signaling and data transfer and wherein the interprocessor bus means are separate and distinct from an input/output system and from a memory system bus, each processor module having a central processing unit, a memory for that module, and interprocessor control means for connecting the processor module to the interprocessor bus for signaling and data transfer with another processor module, bus controller means operatively associated with the interprocessor bus and each interprocessor control means for determining the priority of data transfers between any two processor modules over the interprocessor bus and for controlling transmissions over the interprocessor bus, each processor module including input/output channel means for transferring data between the processor module and one or more device controllers, a plurality of peripheral devices, a plurality of device controllers for controlling the transfer of data between the processor modules and the peripheral devices, a plurality of ports in each device controller, a plurality of input/output buses connecting each device controller for access by a plurality of different processor modules and wherein the input/output channel means, input/output buses and device controllers are operatively connected to provide, directly or in combination with the interprocessor bus means and a processor module, a path for data transfer between each processor module and any device controller.
-
80. A multiprocessor system constructed for continued system operation in the event of a failure of any single component in the system and comprising,
a plurality of separate processor modules, each module including a central processing unit and a local memory, interprocessor bus means including a plurality of interprocessor buses for signaling and data transfer between separate processor modules, at least two interprocessor buses being connected to each processor module, each interprocessor bus being separate and distinct from an input/output system and from a memory bus, a plurality of device controllers each adapted for connection to at least one peripheral device, and a plurality of input/output buses each connected between a related processor module and one or more device controllers, each device controller being accessible to at least two processor modules by means of associated input/output buses each of said processor modules including: -
reading means for reading data from the associated local memory of that processor module for transmission to an interprocessor bus, and writing means for writing data received from an interprocessor bus into a specified location in the associated local memory of that processor module, wherein said reading and writing means are effective to transfer data from the memory of a sender processor module to the memory of a receiver processor module, and wherein each processor module includes buffer for each other processor module and also includes location pointing means for directing incoming data from an interprocessor bus to a specified location in a related buffer in the memory of a receiver processor module.
-
Specification