WO1991020044A1 - Communication exchange system for a multiprocessor system - Google Patents

Communication exchange system for a multiprocessor system Download PDF

Info

Publication number
WO1991020044A1
WO1991020044A1 PCT/US1991/004060 US9104060W WO9120044A1 WO 1991020044 A1 WO1991020044 A1 WO 1991020044A1 US 9104060 W US9104060 W US 9104060W WO 9120044 A1 WO9120044 A1 WO 9120044A1
Authority
WO
WIPO (PCT)
Prior art keywords
signal
multiprocessor
signals
operably connected
devices
Prior art date
Application number
PCT/US1991/004060
Other languages
French (fr)
Inventor
Edward C. Miller
George A. Spix
Anthony R. Schooler
Douglas R. Beard
Andrew E. Phelps
Alexander A. Silbey
Original Assignee
Supercomputer Systems Limited Partnership
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Supercomputer Systems Limited Partnership filed Critical Supercomputer Systems Limited Partnership
Priority to JP91512886A priority Critical patent/JPH05508044A/en
Publication of WO1991020044A1 publication Critical patent/WO1991020044A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17375One dimensional, e.g. linear array, ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17356Indirect interconnection networks
    • G06F15/17368Indirect interconnection networks non hierarchical topologies
    • G06F15/17381Two dimensional, e.g. mesh, torus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8076Details on data register access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30094Condition code generation, e.g. Carry, Zero flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/30149Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3858Result writeback, i.e. updating the architectural state or memory

Definitions

  • TECHNICAL FIELP This invention relates generally to the field of signaling and interrupt mechanisms for computer and electronic logic systems. More particularly, the present invention relates to a method and apparatus for a signaling mechanism for a multiprocessor system that allows any processor or external interface port to signal any other processor or external interface port in the multiprocessor system and can resolve simultaneous conflicting signals.
  • MULTIPROCESSOR SYSTEM PCT Serial No. PCT/US90/07655
  • supercomputers For most supercomputer applications, the objective is to provide a computer processing system with the fastest processing speed and the greatest processing flexibility, i.e., the ability to process a large variety of traditional application programs.
  • the cluster architecture for highly parallel multiprocessors described in the previously identified parent application provides an architecture for supercomputers wherein a multiple number of processors and external interface means can make multiple and simultaneous requests to a common set of shared hardware resources, such as main memory, secondary memory, global registers, interrupt mechanisms, or other shared resources present in the system.
  • signal refers to the operation by which one device (processor or external interface port) indicates to another device that an event has occurred that requires action or intervention by the device being signaled.
  • signals are more commonly referred to as interrupts in the sense that the operational flow of the device is interrupted to process the signal.
  • processors are dedicated to communicating with input/output devices such that an input/output device can communicate only with the processor to which it is connected. This restriction limits the flexibility for assigning processors to input/output control tasks.
  • Another problem with many of the present interrupt mechanisms for multiprocessor systems is that all of the processors in the multiprocessor system are unconditionally interrupted at the completion of an input/ output activity, not just the processors associated with controlling that activity.
  • the disadvantage to this technique is that all programs executing on the multiprocessor system are interrupted which wastes processor resources while the interrupt are being serviced by one of the processors.
  • the prior art interrupt mechanisms for multiprocessor systems are acceptable under certain conditions, it would be desirable to provide a more effective interrupt mechanism for a multiprocessor system that was able to allow a process to select any individual interruptable resource to be the targeted handler for servicing a signal.
  • the present invention is a signaling mechanism for a multiprocessor system that allows any processor or peripheral device to signal any other processor or peripheral device in the multiprocessor system and can resolve simultaneous conflicting signals.
  • the signaling mechanism of the present invention provides for targeted signals that include an address that is related to the signal which indicates to the hardware for the signaling mechanism where to direct the particular signal.
  • Simultaneous conflicting signals i.e., signals targeted to the same peripheral device or processor
  • the simultaneous conflicting signals are then processed serially based upon the assigned priority.
  • the present invention requires a ⁇ very simple code to select a destination to receive a signal and provides a dedicated hardware network for signal distribution that rapidly transmits signals throughout the system.
  • the present invention permits any processor in the system to signal any input/output device, as well as the reverse.
  • the present invention takes advantage of the statistical improbability of this occurrence to optimize the amount of hardware required to process the conflicting signals as compared to the decrease in the overall performance of the multiprocessor system as a result of serially processing such conflicting signals.
  • the signaling mechanism is accessible throughout the multiprocessor system. All processors and peripheral devices (i.e., secondary memory transfer controllers and peripheral controllers) are able to send and receive signals. In addition, all signals carry two bits of information that are used by the receiving device to determine what action, if any, should be taken as a result of receiving the signal. These features permit the implementation of a variety of signaling techniques throughout the system. For example, a secondary memory transfer controller uses type 0 signals as a start command, and uses type 1 signals as a halt command. Because any processor or peripheral device in the system can send a signal to any secondary memory transfer controller, any device can start or stop any secondary memory transfer controller in the system.
  • An objective of the present invention is to provide a method and apparatus for a signaling mechanism for a multiprocessor system that allows any processor or external interface port to signal any other processor or external interface port in the multiprocessor system.
  • Another objective of the present invention is to provide a signaling mechanism that can resolve simultaneous conflicting signals issued by a plurality of processors or external interface ports.
  • Another objective of the present invention is to provide a signaling mechanism that conveys a plurality of types of signal to the receiving device.
  • Fig. 1 is a block diagram of a single multiprocessor cluster of the preferred embodiment of the present invention.
  • Fig. 2 is block diagram of a four cluster implementation of the preferred embodiment of the present invention.
  • Fig. 3 is a block diagram of showing the implementation of the Fast Interrupt mechanism as part of the NRCA means of the preferred embodiment of the multiprocessor system.
  • Fig. 4 is an overall block diagram of the input/output architecture of the present invention.
  • Fig. 5 is a schematic representation showing. the signal device selection implementation.
  • Fig.6a is a diagram of the System Mode register.
  • Fig. 6b is a diagram of the Pending Interrupts register.
  • Fig. 7 is an overall block diagram of showing the operation of signals in accordance with the present invention.
  • Fig. 8 shows the condition of the various signals indicated in Fig. 7 at each point in the operational flow of the signaling mechanism.
  • Fig. 9 is a conceptual model of the Secondary Memory Transfer Controller operation.
  • Fig. 10 shows the SMTC command block.
  • Figs. 11a and lib show the command definitions for the SMTCO and the SMTC1.
  • the preferred cluster architecture for a highly parallel scalar/vector multiprocessor system is capable of supporting a plurality of high-speed processors 10 sharing a large set of shared resources 12 (e.g., main memory 14, global registers 16, and interrupt mechanisms 18).
  • the processors 10 are capable of both vector and scalar parallel processing and are connected to the shared resources 12 through an arbitration node means 20.
  • Also connected through the arbitration node means 20 are a plurality of external interface ports 22 and input/output concentrators (IOC) 24 which are further connected to a variety of external data sources 26.
  • IOC input/output concentrators
  • the external data sources 26 may include a secondary memory system (SMS) 28 linked to the input/output concentrator 24 via a high speed channel 30.
  • the external data sources 26 may also include a variety of other peripheral devices and interfaces 32 linked to the input/output concentrator 24 via one or more standard channels 34.
  • the peripheral devices and interfaces 32 may include disk storage systems, tape storage system, printers, external processors, and communication networks.
  • the processors 10, shared resources 12, arbitration node 20 and external interface ports 22 comprise a single multiprocessor cluster 40 for a highly parallel multiprocessor system in accordance with the preferred embodiment of the present invention.
  • the preferred embodiment of the multiprocessor clusters 40 overcomes the direct-connection interface problems of present shared-memory supercomputers by physically organizing the processors 10, shared resources 12, arbitration node 20 and external interface ports 22 into one or more clusters 40.
  • Each of the clusters 40a, 40b, 40c and 40d physically has its own set of processors 10a, 10b, 10c and lOd, shared resources 12a, 12b, 12c and 12d, and external interface ports 22a, 22b, 22c and 22d that are associated with that cluster.
  • the clusters 40a, 40b, 40c and 40d are interconnected through a remote cluster adapter 42 that is a logical part of each arbitration nodes means 20a, 20b, 20c and 20d. Although the clusters 40a, 40b, 40c and 40d are physically separated, the logical organization of the clusters and the physical interconnection through the remote cluster adapter 42 enables the desired symmetrical access to all of the shared resources 12a, 12b, 12c and 12d across all of the clusters 40a, 40b, 40c and 40d.
  • FIG. 3 the physical organization of the Signaling Mechanism in the four-duster preferred embodiment of the present invention will be described.
  • Each port 47 is shared by two processors 10 and two external interface ports 22 and is accessed over the path 52.
  • a similar port 49 services inter-cluster requests for the global registers 16, fast interrupt logic 31, and signal logic 33 in this cluster as received by the MRCA means 48 and accessed over the path 56.
  • a cross bar and arbitration means 51 direct requests to the appropriate destination.
  • the cross bar and arbitration means 51 utilizes a Multiple Request Toggling scheme algorithm. It receives input from sixteen arbitration nodes 44 and one MRCA means 48. An arbitration decision requires address information to select the target register and control information to determine the operation to be performed. This information is transmitted to the NRCA means 46 along with the data. The address and control can be for data to be sent to global registers 16 or to signal logic 31 or the fast interrupt logic 33.
  • the Multiple Requestor Toggling (MRT) priority system of the preferred embodiment of the present invention allows fair and efficient arbitration of simultaneous multiple requests to common shared resources by using a simple boolean algorithm to control a variety of switching mechanisms. All requestors are arbitrated in a distributed and democratic fashion by assigning priority to multiple requests on a first-come, first-serve basis with the priority of multiple simultaneous requests being resolved on the basis of a toggling system.
  • the MRT priority scheme is applicable to any system where multiple requestors communicate with a commonly shared resource requiring an arbitration network to resolve simultaneous conflicting requests to that resource. In this case, resolution of conflicts refers to the determination of the order in which requests for access to the common resource are serviced.
  • the MRT priority system is also useful for determining access to multiple shared resources.
  • an inhibit matrix is associated with each one of the multiple shared resources and the plurality of these inhibit matrixes are connected to each of the requestors.
  • Each of the inhibit matrixes per shared resource are connected to a common part, the relative priority state storage means, which maintains the priority of each requestor relative to the others for all shared resources.
  • the relative priority state storage means which stores the relative priority state of every requestor relative to every other requestor.
  • Each cell or bit in the relative priority state storage means represents the relative priority of two requestors. This cell indicates which of the requestors will be granted access in the case of simultaneous resource requests.
  • Each of the cells of the relative priority state storage means are connected to the inhibit matrix.
  • Each cell in the relative priority state storage means drives two gates in the inhibit matrix for that destination.
  • the input/output peripheral devices 32 are connected through the standard channels 34, the input/output concentrator 24 and the external interface ports 22 to the main memory (MM) 14 and global registers 16 and can directly read and write to these shared resources 12 within the same cluster 40, as well as in other clusters 40.
  • the peripheral devices 32 can also read and write to secondary memory (SM) in the secondary memory system (SMS) 28 associated with the same cluster 40a, for example, but cannot access the SMS 28 in other clusters 40b-40d. It should be noted that a path is not available to allow processors 10 and peripheral devices 32 to directly exchange data. Any such exchanges must take place through main memory 14, SMS 28 or the global registers 16.
  • SM secondary memory
  • SMS secondary memory system
  • the input/output concentrator (IOC) 24 contains the data paths, switches, and control functions to support data transfers among the various input/output components. In the preferred embodiment, either eight or sixteen IOC's 24 are physically located within a single input/output chassis 100. Each IOC 24 supports up to eight channel adapters 102 that interface to the standard channels 34 and the peripheral controllers 103, a secondary memory transfer controller (SMTC) 104 that controls a secondary memory port 106 to the high speed channel 30 and the SMS 28, a cluster port 108 that connects to the external interface ports 22, concentrator signal logic 110 that distributes interrupt signals to the channel adapters 102 and the SMTC 104, and a data path crossbar switch 112.
  • SMTC secondary memory transfer controller
  • Each IOC 24 can read or write a single, 64-bit word in main memory 14 every other dock cyde.
  • the IOC 24 can also read or write a word to the SMS 28 while simultaneously accessing main memory 14.
  • Each channel adapter 102 contains the functions necessary to exchange data with a peripheral device controller 103 from an input/output peripheral device 32 over a standard input/output channel 34.
  • the channel adapters 102 access main memory 14, SMS 28 and global registers 16, and send signals to the processors 10 through the IOC 24.
  • the cross bar switch 112 in the IOC 24 multiplexes access requests among the channel adapters 102 attached to it, routing data to the destination selected by a given transfer.
  • All eight channel adapters 102 requesting data at the maximum rate require the maximum available rate from main memory 14 or the maximum available rate from SMS 28.
  • the peripheral controllers 103 through the standard channel 34 can initiate signals by writing the destination select value to the signal interrupt logic 31.
  • a command code is supported by the standard channel 34 that allows a peripheral controller 103 to perform this operation.
  • the SMTC 104 may also transmit signals to peripheral device controllers 103.
  • Logic in the input/output system initiates the appropriate channel activity when it detects that a signal has been sent to the device assodated with any given channel. This method is used to initiate signals and the action taken in response to a signal varies according to device type.
  • a destination for the signals is selected by transmitting a destination select value along with the signal.
  • Fig. 5 shows the logical-to-physical mapping for the destination select values.
  • Both processors 10 and IOCs 24 can send and receive signals, in the same and in different dusters 40. The following describes how the contents of the Signal Value are interpreted in the system:
  • Cluster Select determines which duster 40 the Signal will be sent to.
  • Logic in the NRCA means 46 and MRCA means 48 determines which duster 40 is signalled for any value.
  • Substrate Select determines the physical processor 10 or input/output concentrator 24 which will receive the signal.
  • Class Select determines which type of device will receive the interrupt.
  • the two bit code is as follows: 0 - processor, 1 - input/output concentrator, 2- secondary memory transfer controller, and 3 - reserved.
  • bits 4 through 2 address a channel adapter on the IOC 24 selected in the Substrate Select field.
  • bit 2 selects which secondary memory transfer controller in an input/ output concentrator means 26 will be interrupted: 0 - The Main Memory to Secondary Memory Transfer Controller is signalled, 1 - the Secondary Memory to Main Memory Transfer Controller will be signalled. This field is ignored for all other stones selections.
  • Type Select determines which type of signal is to be transmitted. The signal type is captured at the destination device. The effect of different types of signals is device dependent.
  • Processors 10 generate Signals through the Signal instruction. For signals generated by the Signal instruction, the value in the S register selected by the Signal instruction is interpreted as the destination select value. Signals are received by the processors 10 as interrupt requests. Referring to Figs. 6a and 6b, the signal are masked by the Disable Type bits (DTO-3) in the System Mode register. Masks for the Interval Timer and Fast Interrupt requests are also located in the System Mode register. Pending interrupts are captured in the Pending Interrupt (PI) control register. A bit in the PI register corresponds to each type of interrupt. An incoming signal sets the appropriate PI register bit and causes an interrupt if the SM mask for that bit is not set. PI bits are deared by the interrupt handler code after recognizing the interrupts.
  • DTO-3 Disable Type bits
  • PI Pending Interrupt
  • a logical block diagram shows the operation of signals (interrupts) within the present invention.
  • Processors 10 may initiate signals by executing the Signal instruction.
  • the Signal instruction causes the contents of the referenced S-register to be sent to the NRCA means 46 through the arbitration node 44.
  • peripheral devices i.e., peripheral controllers 103 and SMTCs 104
  • the NRCA means 46 examines the duster select bits in the signal value and directs the signal to the appropriate duster.
  • Fig. 8 relates to Fig. 7 by showing the signal codes as transmitted on the indicated paths (e.g., AA, BB, etc.) in the signal mechanism shown in Fig. 7
  • a 13-bit code shown as AA in Fig. 8, is sent from the dispatch logic 460 to the fanout logic 470.
  • the code is the same as the signal select value, but does not have the duster select bits attached. They are no longer necessary at this point since the value has already been directed to the proper duster 40.
  • the signal fanout logic 470 decodes the substrate select field and sends a 9-bit signal code, shown as BB in Fig. 8, to the arbitration node 44 of the processor 10 or external interface port 22 being signaled. Separate signal buses connect the fanout logic 470 with each arbitration node 44.
  • Additional signal decode logic 480 within the arbitration node 44 further decodes the 9-bit signal code.
  • a three-bit code, shown as DD in Fig. 8 is presented to each of the processors 10 attached to each arbitration node 44.
  • a seven-bit code, shown as CC in Fig. 8 is presented to each external interface ports 22 attached to the arbitration node 44 for further transmission to the IOC 24.
  • the processors 10 further decode the signal value into the four types of signal and sets the appropriate bit in the PI register. If the corresponding interrupt disable bits are deared in the SM register, processor instruction will be interrupted when the interrupt bit is set in the PI register.
  • the IOC 24 further decodes the 7-bit signal code sent from the arbitration node 44 into individual signals that are sent to the channels and the SMTCs.
  • Fig. 9 the Secondary Memory Transfer Controller
  • SMTC SMTC
  • the SMTC 104 controls transfers to the SMS 28.
  • the only addressable unit in the SMS 28 is a block of 32, 64-bit words. Transfers are constrained to begin on a block boundary. Requests for secondary memory transfers (reads or writes) may be initiated by either the channel adapters 102 or the SMTC 104. Transfers to the channel adapters 102 and to the cluster port 108 may proceed simultaneously. Error detection and correction is done at the SMTC 104.
  • the SMTC 104 consists of two independent controllers 104a and 104b, one for moving data from main memory 14 to the SMS 28 and the other for moving data from the SMS 28 to main memory 14.
  • the controllers accept commands in the form of command blocks that are constructed in main memory 14.
  • the command blocks provide the starting address in main memory 14, the starting address in secondary memory 28, the increment on the base address in secondary memory 28, the number of 32-word blocks to be moved, and the direction of the transfer.
  • Transfer size can range between 1 and (memory size/32) blocks.
  • command execution is initiated by sending a signal 400 to the SMTC 104a or 104b.
  • the preferred embodiment has up to 32 pairs of SMTCs 104a and 104b in a fully-configured duster 40.
  • the particular SMTCs 104 within a duster 40 are selected by the Signal "substrate select" field in the SMTC Command word that is part of the SMTC Command Block as shown in Fig. 10.
  • Separate signals 400a and 400b initiate transfers in each direction.
  • the SMTC0 at channel select address 0 controls transfers in the direction from main memory 14 to secondary memory 8.
  • the SMTC1 at channel select address 1 controls transfers in the direction from secondary memory 28 to main memory 14.
  • SMTC selection is based on the LSB of the channel select field so that odd-numbers selert SMTC1 and even numbers select SMTCO.
  • the SMTC 104 recognizes four signal types. The response of the SMTC 104a and 104b to receiving each of the four signal types is described for the preferred embodiment in Table I.
  • Type 00 Fetch command block and start the specified transfer.
  • Type 01 Stop the transfer in progress. Transfer status is reported when the SMTC actually halts the transfer. A completion interrupt will be generated if requested in the command packet that started the transfer. If no transfer is in process when a Stop signal is received, no action is taken by the SMTC.
  • Type 10 Reserved
  • a status word is written back to the command block in main memory 14 and an optional completion interrupt can be generated.
  • Interrupt generation is spedfied by the contents of the command block that originated the transfer.
  • the target of the completion interrupt is also determined by the command block.
  • the SMTC Command block format is shown as it appears in main memory 14.
  • SMTC command field contains bits to indicate that either a transfer operation or a reset operation is to be done. It also determines whetiier an interrupt is generated on completion.
  • the command field for SMTCO is defined in Fig. 11a and the command field for SMTC1 is defined in Fig. lib.
  • the "interrupt on operation complete" fidd (command word bit 4) directs the SMTC 104 to issue a Signal 400 at the conclusion of the requested operation. A Signal 400 is sent if this bit is set to one in the command block. No Signal is sent if this bit is zero.
  • the device that will receive the Signal 400, if requested, is determined by the contents of word six of the command block (Signal Device Selection).
  • SMS FBA is the first address in SMS 28 to begin transferring data to or from. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC 104 and are ignored. The 32-bit value is interpreted as a block address in secondary memory 28. A value of 00000000 will point to the first word of the first block in secondary memory 28. A value of 00000001 will point to the first word in the second block in secondary memory 28. SMS NBLOCKS is the number of 32-word blocks to transfer. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC and are ignored. A "one" in this field will transfer one 32-word block.
  • SMS BLKINCR is the block address increment between adjacent data blocks moved by the SMTC 104. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC and are ignored. This concept is shown in Fig. 10. An increment of "one" will transfer a contiguous block of secondary memory 28. It will be noted that if zero is placed in SMS BLKINCR, then the same block will be transferred for NBLOCKs. If (SMS FBA + (NBLOCK * SMS BLKINCR*32)) is greater than the memory available in SMS 28, the transfer will wrap-around into available memory.
  • MM FWA is the first word in main memory 14 to begin transferring to or from. Only bits 33 - 0 are used during the transfer, bits 63 - 34 are not used by the SMTC 104 and are ignored. The 34-bit value is interpreted as a word address in main memory 14. If (MM FWA + (NBLOCK *32)) is greater than the memory available in main memory 14, the transfer will wrap-around into available memory. TRANSFER STATUS. This area of the SMTC command area is used for reporting of transfer completion information and error reporting. Bits are assigned as shown in Table m. Table m Bit 0 operation complete Bit 1 double-bit error in data transfer Bit 2 invalid command Bit 3 parity error
  • Detection of a double-bit or parity error during the command block fetch causes the SMTC to report the error in the command block status word, but no transfer is started. Errors detected during a data transfer halt the transfer in progress.
  • SIGNAL DEVICE SELECTION contains an address of a device to be signalled upon completion of the operation. If a completion signal is specified in the SMTC command field (bit 4), the SMTC 104 uses this value to select the device to be signalled and the type of signal to be issued.

Abstract

A signaling mechanism for sending and receiving signals to and from any one of all of a plurality of devices, including peripheral controllers (24) and processors (10), in a multiprocessor system. The signaling mechanism includes two switches, a first switch (480) routing a signal command generated by the device to a signal dispatch logic (460) and a second switch (470) for receiving signals generated by the signal dispatch logic and routing the signals to the selected device. The signal dispatch logic (460) receiving the signal command, decodes the destination select value and generates a signal to be sent to the selected device. The signal command includes a destination select value representing a device selectably determined by the device. The signaling mechanism also includes an arbitration mechanism (51) connected to the signal dispatch logic (460) and the first switch for resolving simultaneous conflicting signal commands issued by two or more devices. The signal generated by the signal dispatch logic (460) may include a plurality of bits representing one or more types of predefined signals to be acted upon by the device.

Description

COMMUNICATION EXCHANGE SYSTEM FOR A MULTIPROCESSOR SYSTEM
TECHNICAL FIELP This invention relates generally to the field of signaling and interrupt mechanisms for computer and electronic logic systems. More particularly, the present invention relates to a method and apparatus for a signaling mechanism for a multiprocessor system that allows any processor or external interface port to signal any other processor or external interface port in the multiprocessor system and can resolve simultaneous conflicting signals.
BACKGROUND ART
The previously filed parent application entitled CLUSTER ARCHITECTURE FOR A HIGHLY PARALLEL SCALAR/VECTOR
MULTIPROCESSOR SYSTEM, PCT Serial No. PCT/US90/07655, describes a new cluster architecture for high-speed computer processing systems, referred to as supercomputers. For most supercomputer applications, the objective is to provide a computer processing system with the fastest processing speed and the greatest processing flexibility, i.e., the ability to process a large variety of traditional application programs. In an effort to increase the processing speed and flexibility of supercomputers, the cluster architecture for highly parallel multiprocessors described in the previously identified parent application provides an architecture for supercomputers wherein a multiple number of processors and external interface means can make multiple and simultaneous requests to a common set of shared hardware resources, such as main memory, secondary memory, global registers, interrupt mechanisms, or other shared resources present in the system.
One of the important considerations in designing such shared- resource, multiprocessor systems is to provide an efficient mechanism for processors and external interface ports to signal other processors and external interface ports. As used within the present invention, the term signal refers to the operation by which one device (processor or external interface port) indicates to another device that an event has occurred that requires action or intervention by the device being signaled. From a traditional software perspective, signals are more commonly referred to as interrupts in the sense that the operational flow of the device is interrupted to process the signal.
Many parallel processor architectures implement signals as messages passed through the system on a common bus or channel, such as in the Intel iPSC Concurrent computer or in the Sequent Balance Series. In this type of architecture, message transmission can take milliseconds for any processor to interrupt another in the system, largely due to the overhead associated with assembling, transmitting, and interpreting a complex message structure. This overhead is a limitation of this type of signaling architecture.
Other parallel processor architectures do not permit signals to be sent and received by peripheral controllers. In this architecture, processors are dedicated to communicating with input/output devices such that an input/output device can communicate only with the processor to which it is connected. This restriction limits the flexibility for assigning processors to input/output control tasks.
Another problem with many of the present interrupt mechanisms for multiprocessor systems is that all of the processors in the multiprocessor system are unconditionally interrupted at the completion of an input/ output activity, not just the processors associated with controlling that activity. The disadvantage to this technique is that all programs executing on the multiprocessor system are interrupted which wastes processor resources while the interrupt are being serviced by one of the processors Although the prior art interrupt mechanisms for multiprocessor systems are acceptable under certain conditions, it would be desirable to provide a more effective interrupt mechanism for a multiprocessor system that was able to allow a process to select any individual interruptable resource to be the targeted handler for servicing a signal. In addition, it would be desirable to provide an interrupt mechanism for the cluster architecture for the multiprocessor system described in the parent application that aids in providing a fully distributed, multithreaded input/output environment.
SUMMARY OF THE INVENTION
The present invention is a signaling mechanism for a multiprocessor system that allows any processor or peripheral device to signal any other processor or peripheral device in the multiprocessor system and can resolve simultaneous conflicting signals. Unlike present interrupt mechanisms, the signaling mechanism of the present invention provides for targeted signals that include an address that is related to the signal which indicates to the hardware for the signaling mechanism where to direct the particular signal. Simultaneous conflicting signals (i.e., signals targeted to the same peripheral device or processor) are resolved by queuing the signals on a first-come, first-serve basis with an arbitration network determining the priority of simultaneous conflicting signals received during the same clock cycle. The simultaneous conflicting signals are then processed serially based upon the assigned priority.
The present invention requires a ^very simple code to select a destination to receive a signal and provides a dedicated hardware network for signal distribution that rapidly transmits signals throughout the system. The present invention permits any processor in the system to signal any input/output device, as well as the reverse.
Although it is theoretically possible for all of the devices in a multiprocessor system provided with the present invention to simultaneously issue conflicting signals, the present invention takes advantage of the statistical improbability of this occurrence to optimize the amount of hardware required to process the conflicting signals as compared to the decrease in the overall performance of the multiprocessor system as a result of serially processing such conflicting signals.
The signaling mechanism is accessible throughout the multiprocessor system. All processors and peripheral devices (i.e., secondary memory transfer controllers and peripheral controllers) are able to send and receive signals. In addition, all signals carry two bits of information that are used by the receiving device to determine what action, if any, should be taken as a result of receiving the signal. These features permit the implementation of a variety of signaling techniques throughout the system. For example, a secondary memory transfer controller uses type 0 signals as a start command, and uses type 1 signals as a halt command. Because any processor or peripheral device in the system can send a signal to any secondary memory transfer controller, any device can start or stop any secondary memory transfer controller in the system.
An objective of the present invention is to provide a method and apparatus for a signaling mechanism for a multiprocessor system that allows any processor or external interface port to signal any other processor or external interface port in the multiprocessor system.
Another objective of the present invention is to provide a signaling mechanism that can resolve simultaneous conflicting signals issued by a plurality of processors or external interface ports.
Another objective of the present invention is to provide a signaling mechanism that conveys a plurality of types of signal to the receiving device.
These and other objectives of the present invention will become apparent with reference to the drawings, the detailed description of the preferred embodiment and the appended claims.
DESCRIPTION OF THE DRAWINGS
Fig. 1 is a block diagram of a single multiprocessor cluster of the preferred embodiment of the present invention.
Fig. 2 is block diagram of a four cluster implementation of the preferred embodiment of the present invention.
Fig. 3 is a block diagram of showing the implementation of the Fast Interrupt mechanism as part of the NRCA means of the preferred embodiment of the multiprocessor system.
Fig. 4 is an overall block diagram of the input/output architecture of the present invention.
Fig. 5 is a schematic representation showing. the signal device selection implementation. Fig.6a is a diagram of the System Mode register.
Fig. 6b is a diagram of the Pending Interrupts register. Fig. 7 is an overall block diagram of showing the operation of signals in accordance with the present invention.
Fig. 8 shows the condition of the various signals indicated in Fig. 7 at each point in the operational flow of the signaling mechanism.
Fig. 9 is a conceptual model of the Secondary Memory Transfer Controller operation.
Fig. 10 shows the SMTC command block.
Figs. 11a and lib show the command definitions for the SMTCO and the SMTC1.
DESCRIPTION OF THE PREFERRED EMBODIMENTS
Referring to Fig. 1, the architecture of a single multiprocessor cluster of the preferred embodiment of the multiprocessor system for use with the present invention will be described. The preferred cluster architecture for a highly parallel scalar/vector multiprocessor system is capable of supporting a plurality of high-speed processors 10 sharing a large set of shared resources 12 (e.g., main memory 14, global registers 16, and interrupt mechanisms 18). The processors 10 are capable of both vector and scalar parallel processing and are connected to the shared resources 12 through an arbitration node means 20. Also connected through the arbitration node means 20 are a plurality of external interface ports 22 and input/output concentrators (IOC) 24 which are further connected to a variety of external data sources 26. The external data sources 26 may include a secondary memory system (SMS) 28 linked to the input/output concentrator 24 via a high speed channel 30. The external data sources 26 may also include a variety of other peripheral devices and interfaces 32 linked to the input/output concentrator 24 via one or more standard channels 34. The peripheral devices and interfaces 32 may include disk storage systems, tape storage system, printers, external processors, and communication networks. Together, the processors 10, shared resources 12, arbitration node 20 and external interface ports 22 comprise a single multiprocessor cluster 40 for a highly parallel multiprocessor system in accordance with the preferred embodiment of the present invention.
The preferred embodiment of the multiprocessor clusters 40 overcomes the direct-connection interface problems of present shared-memory supercomputers by physically organizing the processors 10, shared resources 12, arbitration node 20 and external interface ports 22 into one or more clusters 40. In the preferred embodiment shown in Fig. 2a and 2b, there are four clusters: 40a, 40b, 40c and 40d. Each of the clusters 40a, 40b, 40c and 40d physically has its own set of processors 10a, 10b, 10c and lOd, shared resources 12a, 12b, 12c and 12d, and external interface ports 22a, 22b, 22c and 22d that are associated with that cluster. The clusters 40a, 40b, 40c and 40d are interconnected through a remote cluster adapter 42 that is a logical part of each arbitration nodes means 20a, 20b, 20c and 20d. Although the clusters 40a, 40b, 40c and 40d are physically separated, the logical organization of the clusters and the physical interconnection through the remote cluster adapter 42 enables the desired symmetrical access to all of the shared resources 12a, 12b, 12c and 12d across all of the clusters 40a, 40b, 40c and 40d.
Referring now to Fig. 3, the physical organization of the Signaling Mechanism in the four-duster preferred embodiment of the present invention will be described. There are sixteen ports 47 to the global registers 16, signal logic 31, and fast interrupt logic 33 from the thirty-two processors 10 and thirty-two external interface ports 22 in a cluster 40. Each port 47 is shared by two processors 10 and two external interface ports 22 and is accessed over the path 52. A similar port 49 services inter-cluster requests for the global registers 16, fast interrupt logic 31, and signal logic 33 in this cluster as received by the MRCA means 48 and accessed over the path 56. As each request is received at the NRCA means 46, a cross bar and arbitration means 51 direct requests to the appropriate destination. If simultaneous requests come in for access to the SETN registers in the fast interrupt logic 33, for example, these requests are arbitrated for in a pipelined manner by the cross bar and arbitration means 51. The cross bar and arbitration means 51 utilizes a Multiple Request Toggling scheme algorithm. It receives input from sixteen arbitration nodes 44 and one MRCA means 48. An arbitration decision requires address information to select the target register and control information to determine the operation to be performed. This information is transmitted to the NRCA means 46 along with the data. The address and control can be for data to be sent to global registers 16 or to signal logic 31 or the fast interrupt logic 33. The Multiple Requestor Toggling (MRT) priority system of the preferred embodiment of the present invention allows fair and efficient arbitration of simultaneous multiple requests to common shared resources by using a simple boolean algorithm to control a variety of switching mechanisms. All requestors are arbitrated in a distributed and democratic fashion by assigning priority to multiple requests on a first-come, first-serve basis with the priority of multiple simultaneous requests being resolved on the basis of a toggling system. The MRT priority scheme is applicable to any system where multiple requestors communicate with a commonly shared resource requiring an arbitration network to resolve simultaneous conflicting requests to that resource. In this case, resolution of conflicts refers to the determination of the order in which requests for access to the common resource are serviced. The MRT priority system is also useful for determining access to multiple shared resources. In this case, part of the MRT priority system, an inhibit matrix, is associated with each one of the multiple shared resources and the plurality of these inhibit matrixes are connected to each of the requestors. Each of the inhibit matrixes per shared resource are connected to a common part, the relative priority state storage means, which maintains the priority of each requestor relative to the others for all shared resources. The relative priority state storage means which stores the relative priority state of every requestor relative to every other requestor. Each cell or bit in the relative priority state storage means represents the relative priority of two requestors. This cell indicates which of the requestors will be granted access in the case of simultaneous resource requests. Each of the cells of the relative priority state storage means are connected to the inhibit matrix. Each cell in the relative priority state storage means drives two gates in the inhibit matrix for that destination. One gate represents requestor x inhibiting requestor y if x is higher priority, while the other gate represents requestor y inhibiting requestor x if y is highest. In this manner, the MRT priority system can be used to control a wide range of switching applications. Referring now to Fig. 4, an overview of the architecture for the input/output system of the preferred embodiment of present invention will be described. The input/output peripheral devices 32 are connected through the standard channels 34, the input/output concentrator 24 and the external interface ports 22 to the main memory (MM) 14 and global registers 16 and can directly read and write to these shared resources 12 within the same cluster 40, as well as in other clusters 40. The peripheral devices 32 can also read and write to secondary memory (SM) in the secondary memory system (SMS) 28 associated with the same cluster 40a, for example, but cannot access the SMS 28 in other clusters 40b-40d. It should be noted that a path is not available to allow processors 10 and peripheral devices 32 to directly exchange data. Any such exchanges must take place through main memory 14, SMS 28 or the global registers 16.
The input/output concentrator (IOC) 24 contains the data paths, switches, and control functions to support data transfers among the various input/output components. In the preferred embodiment, either eight or sixteen IOC's 24 are physically located within a single input/output chassis 100. Each IOC 24 supports up to eight channel adapters 102 that interface to the standard channels 34 and the peripheral controllers 103, a secondary memory transfer controller (SMTC) 104 that controls a secondary memory port 106 to the high speed channel 30 and the SMS 28, a cluster port 108 that connects to the external interface ports 22, concentrator signal logic 110 that distributes interrupt signals to the channel adapters 102 and the SMTC 104, and a data path crossbar switch 112. Each IOC 24 can read or write a single, 64-bit word in main memory 14 every other dock cyde. The IOC 24 can also read or write a word to the SMS 28 while simultaneously accessing main memory 14. Each channel adapter 102 contains the functions necessary to exchange data with a peripheral device controller 103 from an input/output peripheral device 32 over a standard input/output channel 34. The channel adapters 102 access main memory 14, SMS 28 and global registers 16, and send signals to the processors 10 through the IOC 24. The cross bar switch 112 in the IOC 24 multiplexes access requests among the channel adapters 102 attached to it, routing data to the destination selected by a given transfer. All eight channel adapters 102 requesting data at the maximum rate require the maximum available rate from main memory 14 or the maximum available rate from SMS 28. The peripheral controllers 103 through the standard channel 34 can initiate signals by writing the destination select value to the signal interrupt logic 31. A command code is supported by the standard channel 34 that allows a peripheral controller 103 to perform this operation. The SMTC 104 may also transmit signals to peripheral device controllers 103. Logic in the input/output system initiates the appropriate channel activity when it detects that a signal has been sent to the device assodated with any given channel. This method is used to initiate signals and the action taken in response to a signal varies according to device type.
A destination for the signals is selected by transmitting a destination select value along with the signal. Fig. 5 shows the logical-to-physical mapping for the destination select values. Both processors 10 and IOCs 24 can send and receive signals, in the same and in different dusters 40. The following describes how the contents of the Signal Value are interpreted in the system:
Cluster Select determines which duster 40 the Signal will be sent to. Logic in the NRCA means 46 and MRCA means 48 determines which duster 40 is signalled for any value.
Substrate Select determines the physical processor 10 or input/output concentrator 24 which will receive the signal.
Class Select determines which type of device will receive the interrupt. The two bit code is as follows: 0 - processor, 1 - input/output concentrator, 2- secondary memory transfer controller, and 3 - reserved.
Channel Select. When an input/output concentrator 24 is spedfied in the Class Select field, bits 4 through 2 address a channel adapter on the IOC 24 selected in the Substrate Select field. When the secondary memory transfer controller is specified in the Class Select field, bit 2 selects which secondary memory transfer controller in an input/ output concentrator means 26 will be interrupted: 0 - The Main Memory to Secondary Memory Transfer Controller is signalled, 1 - the Secondary Memory to Main Memory Transfer Controller will be signalled. This field is ignored for all other dass selections.
Type Select determines which type of signal is to be transmitted. The signal type is captured at the destination device. The effect of different types of signals is device dependent.
Processors 10 generate Signals through the Signal instruction. For signals generated by the Signal instruction, the value in the S register selected by the Signal instruction is interpreted as the destination select value. Signals are received by the processors 10 as interrupt requests. Referring to Figs. 6a and 6b, the signal are masked by the Disable Type bits (DTO-3) in the System Mode register. Masks for the Interval Timer and Fast Interrupt requests are also located in the System Mode register. Pending interrupts are captured in the Pending Interrupt (PI) control register. A bit in the PI register corresponds to each type of interrupt. An incoming signal sets the appropriate PI register bit and causes an interrupt if the SM mask for that bit is not set. PI bits are deared by the interrupt handler code after recognizing the interrupts.
Referring now to Fig. 7, a logical block diagram shows the operation of signals (interrupts) within the present invention. Processors 10 may initiate signals by executing the Signal instruction. The Signal instruction causes the contents of the referenced S-register to be sent to the NRCA means 46 through the arbitration node 44. Similarly, peripheral devices (i.e., peripheral controllers 103 and SMTCs 104) initiate signals by sending a command and signal value to NRCA means 46 through the port 47 in the arbitration node 44. The NRCA means 46 examines the duster select bits in the signal value and directs the signal to the appropriate duster.
If the signal is directed to the duster 40 that the NRCA means 46 is currently located, the NRCA means 46 will direct the signal to the global register crossbar 51 in that NRCA means 46. If the signal is directed to another duster 40, the NRCA means 46 will send the signal to that duster 40 over the inter-cluster communication paths 58 via the MRCA means 48. The global register crossbar 51 will direct any signal to the signal dispatch logic 460. Fig. 8 relates to Fig. 7 by showing the signal codes as transmitted on the indicated paths (e.g., AA, BB, etc.) in the signal mechanism shown in Fig. 7
Once the signal value has reached the signal dispatch logic 460 in the NRCA means 46, it is dispatched from there using the signal fanout logic 470. A 13-bit code, shown as AA in Fig. 8, is sent from the dispatch logic 460 to the fanout logic 470. The code is the same as the signal select value, but does not have the duster select bits attached. They are no longer necessary at this point since the value has already been directed to the proper duster 40.
The signal fanout logic 470 decodes the substrate select field and sends a 9-bit signal code, shown as BB in Fig. 8, to the arbitration node 44 of the processor 10 or external interface port 22 being signaled. Separate signal buses connect the fanout logic 470 with each arbitration node 44.
Additional signal decode logic 480 within the arbitration node 44 further decodes the 9-bit signal code. A three-bit code, shown as DD in Fig. 8 is presented to each of the processors 10 attached to each arbitration node 44. A seven-bit code, shown as CC in Fig. 8 is presented to each external interface ports 22 attached to the arbitration node 44 for further transmission to the IOC 24.
The processors 10 further decode the signal value into the four types of signal and sets the appropriate bit in the PI register. If the corresponding interrupt disable bits are deared in the SM register, processor instruction will be interrupted when the interrupt bit is set in the PI register.
The IOC 24 further decodes the 7-bit signal code sent from the arbitration node 44 into individual signals that are sent to the channels and the SMTCs. Referring now to Fig. 9, the Secondary Memory Transfer Controller
(SMTC) 104 of the IOC 24 of the preferred embodiment is described. In the preferred embodiment, the SMTC 104 controls transfers to the SMS 28. The only addressable unit in the SMS 28 is a block of 32, 64-bit words. Transfers are constrained to begin on a block boundary. Requests for secondary memory transfers (reads or writes) may be initiated by either the channel adapters 102 or the SMTC 104. Transfers to the channel adapters 102 and to the cluster port 108 may proceed simultaneously. Error detection and correction is done at the SMTC 104. In the preferred embodiment, the SMTC 104 consists of two independent controllers 104a and 104b, one for moving data from main memory 14 to the SMS 28 and the other for moving data from the SMS 28 to main memory 14. The controllers accept commands in the form of command blocks that are constructed in main memory 14. The command blocks provide the starting address in main memory 14, the starting address in secondary memory 28, the increment on the base address in secondary memory 28, the number of 32-word blocks to be moved, and the direction of the transfer. Transfer size can range between 1 and (memory size/32) blocks.
As illustrated in Fig. 9, command execution is initiated by sending a signal 400 to the SMTC 104a or 104b. The preferred embodiment has up to 32 pairs of SMTCs 104a and 104b in a fully-configured duster 40. The particular SMTCs 104 within a duster 40 are selected by the Signal "substrate select" field in the SMTC Command word that is part of the SMTC Command Block as shown in Fig. 10. Separate signals 400a and 400b initiate transfers in each direction. The SMTC0 at channel select address 0 controls transfers in the direction from main memory 14 to secondary memory 8. The SMTC1 at channel select address 1 controls transfers in the direction from secondary memory 28 to main memory 14. SMTC selection is based on the LSB of the channel select field so that odd-numbers selert SMTC1 and even numbers select SMTCO.
The SMTC 104 recognizes four signal types. The response of the SMTC 104a and 104b to receiving each of the four signal types is described for the preferred embodiment in Table I.
Table I Type 00 - Fetch command block and start the specified transfer. Type 01 - Stop the transfer in progress. Transfer status is reported when the SMTC actually halts the transfer. A completion interrupt will be generated if requested in the command packet that started the transfer. If no transfer is in process when a Stop signal is received, no action is taken by the SMTC. Type 10 - Reserved
Type 11 - Reserved
At the condusion of a transfer, a status word is written back to the command block in main memory 14 and an optional completion interrupt can be generated. Interrupt generation is spedfied by the contents of the command block that originated the transfer. The target of the completion interrupt is also determined by the command block.
The SMTC Command block format is shown as it appears in main memory 14. The following are definitions of the command block words and are defined in Table π.
Table E bit 0 - 3 command field bti 4 interrupt on operation complete bit 5 - 8 transfer priority bit 9 - 63 unused
SMTC command field contains bits to indicate that either a transfer operation or a reset operation is to be done. It also determines whetiier an interrupt is generated on completion. The command field for SMTCO is defined in Fig. 11a and the command field for SMTC1 is defined in Fig. lib. The "interrupt on operation complete" fidd (command word bit 4) directs the SMTC 104 to issue a Signal 400 at the conclusion of the requested operation. A Signal 400 is sent if this bit is set to one in the command block. No Signal is sent if this bit is zero. The device that will receive the Signal 400, if requested, is determined by the contents of word six of the command block (Signal Device Selection).
SMS FBA is the first address in SMS 28 to begin transferring data to or from. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC 104 and are ignored. The 32-bit value is interpreted as a block address in secondary memory 28. A value of 00000000 will point to the first word of the first block in secondary memory 28. A value of 00000001 will point to the first word in the second block in secondary memory 28. SMS NBLOCKS is the number of 32-word blocks to transfer. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC and are ignored. A "one" in this field will transfer one 32-word block. It will be noted that a zero in this field will transfer 232 blocks (approximately one Terabyte). SMS BLKINCR is the block address increment between adjacent data blocks moved by the SMTC 104. Only bits 31 - 0 are used during the transfer. Bits 63 - 32 are not used by the SMTC and are ignored. This concept is shown in Fig. 10. An increment of "one" will transfer a contiguous block of secondary memory 28. It will be noted that if zero is placed in SMS BLKINCR, then the same block will be transferred for NBLOCKs. If (SMS FBA + (NBLOCK * SMS BLKINCR*32)) is greater than the memory available in SMS 28, the transfer will wrap-around into available memory.
MM FWA is the first word in main memory 14 to begin transferring to or from. Only bits 33 - 0 are used during the transfer, bits 63 - 34 are not used by the SMTC 104 and are ignored. The 34-bit value is interpreted as a word address in main memory 14. If (MM FWA + (NBLOCK *32)) is greater than the memory available in main memory 14, the transfer will wrap-around into available memory. TRANSFER STATUS. This area of the SMTC command area is used for reporting of transfer completion information and error reporting. Bits are assigned as shown in Table m. Table m Bit 0 operation complete Bit 1 double-bit error in data transfer Bit 2 invalid command Bit 3 parity error
Bit 4 command fetch error
Bit 5 sequence error (another start has been received while a previous transfer is still in progress)
Detection of a double-bit or parity error during the command block fetch causes the SMTC to report the error in the command block status word, but no transfer is started. Errors detected during a data transfer halt the transfer in progress.
SIGNAL DEVICE SELECTION contains an address of a device to be signalled upon completion of the operation. If a completion signal is specified in the SMTC command field (bit 4), the SMTC 104 uses this value to select the device to be signalled and the type of signal to be issued.
Although the description of the preferred embodiment has been presented, it is contemplated that various changes could be made without deviating from the spirit of the present invention. Accordingly, it is intended that the scope of the present invention be dictated by the appended claims rather than by the description of the preferred embodiment.

Claims

1. A signaling mechanism for sending and receiving signals to and from any one of all of a plurality of devices, including peripheral controllers and processors, in a multiprocessor system, the signaling mechanism comprising: first switch means operably connected to the devices for routing a signal command generated by the device, the signal command having a destination select value representing a device selectably determined by the device; signal dispatch logic means operably connected to the first switch means for receiving the signal command, decoding the destination select value and generating a signal to be sent to the selected device; and second switch means operably connected to the signal dispatch logic and to the devices for receiving the signals generated by the signal dispatch logic and routing the signals to the selected device.
2. The signaling mechanism of daim 1 wherein the processors further indude register means for masking the external interrupt signal.
3. The signaling mechanism of daim 1 further comprising arbitration means operably connected to the signal dispatch logic and the first switch means for resolving simtdtaneous conflicting signal commands issued by two or more devices.
4. The signaling mechanism of daim 1 wherein the signal generated by the signal dispatch logic further comprises a plurality of bits representing one or more types of signals that are predefined signals to be acted upon by the device.
5. The signaling mechanism of daim 3 further comprising storage means operably connected to the arbitration means for queuing a plurality of signal commands.
6. The signaling mechanism of daim 3 wherein the arbitration means is comprised of a multiple request toggling system.
7. A highly parallel computer processing system, comprising: C multiprocessor dusters operably connected to one another, wherein C is an integer between 2 and 256, inclusive, each multiprocessor duster comprising: shared resource means for storing and retrieving data and control information,
P processor means for performing computer processing of data and control information, wherein P is an integer between 2 and 256, indusive;
Q external interface means for transferring data and control information between the shared resource means and one or more external data sources, wherein Q, is an integer between 2 and 256, indusive; Z arbitration node means operably connected to the processor means, the external interface means, and the shared resource means for symmetrically interconnecting the processor means and the external interface means with the shared resource means, wherein Z is an integer between 1 and 128, indusive, and the ratio of P to Z is greater than or equal to 2; and remote duster adapter means operably connected to remote cluster adapter means in all other of the multiprocessor dusters for allowing the arbitration node means of the multiprocessor duster to access the shared resource means of all other of the multiprocessor dusters and for allowing all other of the multiprocessor dusters to access the shared resource means of the multiprocessor duster, the shared resource means including a signaling mechanism for sending and receiving signals to and from any one of all of a set of devices comprising all of the processor means and external interface means which may be directly accessed by the devices of the multiprocessor duster and which may be accessed by the devices of all other of the multiprocessor dusters through the remote duster adapter means.
8. The highly parallel computer processing system of daim 7 wherein the signaling mechanism comprises: first switch means operably connected to the arbitration node means for routing a signal command generated by a device, the signal command having a destination select value representing a device selectably determined by the device; signal dispatch logic means operably connected to the first switch means for receiving the signal command, decoding the destination select value and generating a signal to be sent to the selected device; and second switch means operably connected to the signal dispatch logic and to the devices for receiving the signals generated by the signal dispatch logic and routing the signals to the selected device.
9. A multiprocessor duster for a highly parallel computer processing system, the multiprocessor duster adapted for connection to other similar multiprocessor dusters in the highly paralld computer processing system, the multiprocessor duster comprising: shared resource means for storing and retrieving data and control information; P processor means for performing computer processing of data and control information, wherein P is an integer between 2 and 256, indusive;
Q external interface means for transferring data and control information between the shared resource means and one or more external data sources, wherein Q is an integer between 2 and 256, inclusive; and
Z arbitration node means operably connected to the processor means, the external interface means, and the shared resource means for symmetrically interfacing the processor means and the external interface means with the shared resource means, wherein Z is an integer between 2 and 128, inclusive, and the ratio of P to Z is greater than or equal to 2, the shared resource means induding a signaling mechanism for sending and receiving signals to and from any one of all of a set of devices comprising all of the processor means and external interface means which may be directly accessed by the devices of the multiprocessor duster and which may be accessed by the devices of all other of the multiprocessor dusters through the remote cluster adapter means.
10. The highly parallel computer processing system of daim 9 wherein the signaling mechanism comprises: first switch means operably connected to the arbitration node means for routing a signal command generated by a device, the signal command having a destination seled value representing a device selectably determined by the device; signal dispatch logic means operably connected to the first switch means for receiving the signal command, decoding the destination select value and generating a signal to be sent to the selected device; and second switch means operably connected to the signal dispatch logic and to the devices for receiving the signals generated by the signal dispatch logic and routing the signals to the selected device.
PCT/US1991/004060 1990-06-11 1991-06-10 Communication exchange system for a multiprocessor system WO1991020044A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP91512886A JPH05508044A (en) 1990-06-11 1991-06-10 Communication switching system for multiprocessor systems

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/536,192 US5239629A (en) 1989-12-29 1990-06-11 Dedicated centralized signaling mechanism for selectively signaling devices in a multiprocessor system
US536,192 1990-06-11

Publications (1)

Publication Number Publication Date
WO1991020044A1 true WO1991020044A1 (en) 1991-12-26

Family

ID=24137529

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1991/004060 WO1991020044A1 (en) 1990-06-11 1991-06-10 Communication exchange system for a multiprocessor system

Country Status (3)

Country Link
US (1) US5239629A (en)
JP (1) JPH05508044A (en)
WO (1) WO1991020044A1 (en)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5966528A (en) 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5815723A (en) 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5588152A (en) 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5828894A (en) 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5630162A (en) 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
US5765015A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5794059A (en) 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5617577A (en) 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
US5765011A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5963746A (en) 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5625836A (en) 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5809292A (en) 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5590345A (en) 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5765012A (en) 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5963745A (en) 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5752067A (en) 1990-11-13 1998-05-12 International Business Machines Corporation Fully scalable parallel processing system having asynchronous SIMD processing
EP0485690B1 (en) 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5734921A (en) 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5594918A (en) 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
CA2073516A1 (en) * 1991-11-27 1993-05-28 Peter Michael Kogge Dynamic multi-mode parallel processor array architecture computer system
US5506992A (en) * 1992-01-30 1996-04-09 Saxenmeyer; George Distributed processing system with asynchronous communication between processing modules
JP2642039B2 (en) 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション Array processor
WO1994003860A1 (en) * 1992-08-07 1994-02-17 Thinking Machines Corporation Massively parallel computer including auxiliary vector processor
JPH06214969A (en) * 1992-09-30 1994-08-05 Internatl Business Mach Corp <Ibm> Method and equipment for information communication
JPH06314264A (en) * 1993-05-06 1994-11-08 Nec Corp Self-routing cross bar switch
US5435001A (en) * 1993-07-06 1995-07-18 Tandem Computers Incorporated Method of state determination in lock-stepped processors
US5619722A (en) * 1994-01-18 1997-04-08 Teramar Group, Inc. Addressable communication port expander
US5710703A (en) * 1995-06-07 1998-01-20 Chrysler Corporation Method and system for sharing a hardware resource
US5632013A (en) * 1995-06-07 1997-05-20 International Business Machines Corporation Memory and system for recovery/restoration of data using a memory controller
US6122699A (en) * 1996-06-03 2000-09-19 Canon Kabushiki Kaisha Data processing apparatus with bus intervention means for controlling interconnection of plural busses
US20030158985A1 (en) * 2002-02-15 2003-08-21 Edward Fried Systems and methods for fair arbitration between multiple request signals
US7225278B1 (en) 2004-04-15 2007-05-29 Xilinx, Inc. Method and apparatus for controlling direct access to memory circuitry
US7424553B1 (en) 2004-04-15 2008-09-09 Xilinx, Inc. Method and apparatus for communicating data between a network transceiver and memory circuitry
US7260688B1 (en) * 2004-04-15 2007-08-21 Xilinx, Inc. Method and apparatus for controlling access to memory circuitry
US20070248111A1 (en) * 2006-04-24 2007-10-25 Shaw Mark E System and method for clearing information in a stalled output queue of a crossbar
US20110086302A1 (en) * 2009-10-09 2011-04-14 Xerox Corporation Toner compositions and processes
DE102014111302B4 (en) * 2014-08-07 2023-09-14 Mikro Pahlawan Interrupt controlled input/output arbiter for a microcomputer system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3767861A (en) * 1972-08-31 1973-10-23 Gte Automatic Electric Lab Inc 3 to 10 port conference circuit
US3887902A (en) * 1972-09-29 1975-06-03 Honeywell Bull Sa Method and apparatus for processing calls distributed randomly in time and requiring response delays of any duration, but specified for each call
US4044333A (en) * 1972-07-26 1977-08-23 Siemens Aktiengesellschaft Data processing switching system
US4418382A (en) * 1980-05-06 1983-11-29 Allied Corporation Information exchange processor
US4484270A (en) * 1982-07-07 1984-11-20 Sperry Corporation Centralized hardware control of multisystem access to shared and non-shared subsystems
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3510844A (en) * 1966-07-27 1970-05-05 Gen Electric Interprocessing multicomputer systems
US3676861A (en) * 1970-12-30 1972-07-11 Honeywell Inf Systems Multiple mask registers for servicing interrupts in a multiprocessor system
US3772656A (en) * 1971-02-01 1973-11-13 Olivetti & Co Spa Data communication system between a central computer and data terminals
US3755785A (en) * 1972-03-06 1973-08-28 Eaton Corp Multiplexer
IT971304B (en) * 1972-11-29 1974-04-30 Honeywell Inf Systems DYNAMICALLY VARIABLE PRIORITY ACCESS SYSTEM
US3996564A (en) * 1974-06-26 1976-12-07 International Business Machines Corporation Input/output port control
US4034346A (en) * 1975-10-15 1977-07-05 Compagnie Honeywell Bull (Societe Anonyme) Interface for establishing communications between a data-processing unit and a plurality of stations
US4124889A (en) * 1975-12-24 1978-11-07 Computer Automation, Inc. Distributed input/output controller system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
US4200930A (en) * 1977-05-23 1980-04-29 Burroughs Corporation Adapter cluster module for data communications subsystem
US4264954A (en) * 1979-09-04 1981-04-28 Ncr Corporation Distributed function communication system for remote devices
US4328543A (en) * 1980-03-25 1982-05-04 Ibm Corporation Control architecture for a communications controller
US4445171A (en) * 1981-04-01 1984-04-24 Teradata Corporation Data processing systems and methods
US4428043A (en) * 1981-08-24 1984-01-24 Burroughs Corporation Data communications network
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
CA1221464A (en) * 1983-12-26 1987-05-05 Hidehiko Nishida Data processor system having improved data throughput of multiprocessor system
US4905145A (en) * 1984-05-17 1990-02-27 Texas Instruments Incorporated Multiprocessor
US4751634A (en) * 1985-06-14 1988-06-14 International Business Machines Corporation Multiple port communications adapter apparatus
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
US4745545A (en) * 1985-06-28 1988-05-17 Cray Research, Inc. Memory reference control in a multiprocessor
US4920485A (en) * 1986-09-02 1990-04-24 Amdahl Corporation Method and apparatus for arbitration and serialization in a multiprocessor system
US4816990A (en) * 1986-11-05 1989-03-28 Stratus Computer, Inc. Method and apparatus for fault-tolerant computer system having expandable processor section
US4891751A (en) * 1987-03-27 1990-01-02 Floating Point Systems, Inc. Massively parallel vector processing computer
US4937733A (en) * 1987-05-01 1990-06-26 Digital Equipment Corporation Method and apparatus for assuring adequate access to system resources by processors in a multiprocessor computer system
US4845722A (en) * 1987-10-16 1989-07-04 Digital Equipment Corporation Computer interconnect coupler employing crossbar switching
US5016167A (en) * 1987-12-21 1991-05-14 Amdahl Corporation Resource contention deadlock detection and prevention
US5016162A (en) * 1988-03-30 1991-05-14 Data General Corp. Contention revolution in a digital computer system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4044333A (en) * 1972-07-26 1977-08-23 Siemens Aktiengesellschaft Data processing switching system
US3767861A (en) * 1972-08-31 1973-10-23 Gte Automatic Electric Lab Inc 3 to 10 port conference circuit
US3887902A (en) * 1972-09-29 1975-06-03 Honeywell Bull Sa Method and apparatus for processing calls distributed randomly in time and requiring response delays of any duration, but specified for each call
US4418382A (en) * 1980-05-06 1983-11-29 Allied Corporation Information exchange processor
US4484270A (en) * 1982-07-07 1984-11-20 Sperry Corporation Centralized hardware control of multisystem access to shared and non-shared subsystems
US4694396A (en) * 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system

Also Published As

Publication number Publication date
JPH05508044A (en) 1993-11-11
US5239629A (en) 1993-08-24

Similar Documents

Publication Publication Date Title
WO1991020044A1 (en) Communication exchange system for a multiprocessor system
US5193187A (en) Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5168547A (en) Distributed architecture for input/output for a multiprocessor system
EP0759594B1 (en) Modular crossbar interconnections in a digital computer
JP3381732B2 (en) Interrupt steering system for multiprocessor computer.
JP3599197B2 (en) An interconnect network that connects processors to memory with variable latency
EP0512007B1 (en) Cluster architecture for a highly parallel scalar/vector multiprocessor system
US3787818A (en) Mult-processor data processing system
Swan et al. The implementation of the Cm* multi-microprocessor
JP2576846B2 (en) Cluster controller and cluster connection multiplex processing system
US5596331A (en) Real-time control sequencer with state matrix logic
US4485438A (en) High transfer rate between multi-processor units
US4090239A (en) Interval timer for use in an input/output system
GB2079997A (en) Data processing apparatus
EP0069774A4 (en) Interrupt coupling and monitoring system.
WO1991020043A1 (en) Global registers for a multiprocessor system
US5440689A (en) Interprocessor communication system for direct processor to processor communication between internal general purpose registers transparent to the execution of processors thereof
WO1991020042A1 (en) Fast interrupt mechanism for a multiprocessor system
EP1193607B1 (en) Apparatus and method for the exchange of signal groups between a plurality of components in a digital signal processor having a direct memory access controller
Narasimhan et al. A four-channel communications arbiter for multiprocessor arrays
SU1580384A1 (en) Device for interfacing processor with mains controller
JPH08272754A (en) Multiprocessor system
EP1064597A1 (en) Scalable single system image operating software architecture for a multi-processing computer system
Artym et al. XPXM/C: a taxonomy of processor coupling techniques
JPH01243123A (en) Information processing unit

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP KR

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE