EP0431312A2 - Multiprocessor interrupt control - Google Patents
Multiprocessor interrupt control Download PDFInfo
- Publication number
- EP0431312A2 EP0431312A2 EP90120909A EP90120909A EP0431312A2 EP 0431312 A2 EP0431312 A2 EP 0431312A2 EP 90120909 A EP90120909 A EP 90120909A EP 90120909 A EP90120909 A EP 90120909A EP 0431312 A2 EP0431312 A2 EP 0431312A2
- Authority
- EP
- European Patent Office
- Prior art keywords
- interrupt
- processor
- signal
- bus
- control system
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
Definitions
- microprocessors It has become desirable for operating speed and reduced computer time to have two microprocessors operate independently from each other while sharing common control, data and address buses.
- the microprocessors should have identical configurations. It is necessary for the microprocessors to be able to respond to various external hardware events. For this purpose, microprocessors are provided with an interrupt function. With two such microprocessors sharing common buses, however, problems have arisen concerning response to interrupt signals. For example, one microprocessor might erroneously respond to an interrupt signal and search for an interrupt vector actually intended for the other microprocessor.
- a first of the two processors responds to a maskable interrupt received from a programmable register which is addressable by both processors, or a numeric coprocessor extension andior a numeric coprocessor, both associated with the first processor.
- processor control logic for the first processor forms an interrupt signal which is furnished to an integrated system peripheral which forms a processor interrupt signal.
- the first processor in response performs an interrupt acknowledge cycle to receive an interrupt vector.
- the second processor responds to maskable interrupts from a programmable register, a coprocessor extension and.or a numeric coprocessor associated with the second processor. However, in response to a maskable interrupt, processor control logic for the second processor forms an interrupt signal which is furnished only to the second processor interrupt input.
- Vector replacement logic circuitry responds to maskable interrupts and determines which of the two processors is on the bus at that time. In the event the first processor is on the bus, vector replacement logic allows the integrated system peripheral to provide the interrupt vector read by the first processor. When, however, the second processor is on the bus at the time a maskable interrupt is received, the vector replacement logic circuitry inhibits the start of the next bus cycle of the integrated system peripheral. This prevents an interrupt vector from being placed on the bus when the second processor is on the bus. The vector replacement logic circuitry instead provides the interrupt vector in this instance.
- System C designates generally a computer system incorporating the present invention.
- system C is shown in two portions, with the interconnections between Figures 1 and 2 designated by reference to the circled numbers one to ten.
- System C is comprised of a number of block elements interconnected via a plurality of buses.
- signal mnemonics with an asterisk following the signal descriptors indicate the signal is active at a logic low level.
- Signal mnemonics having numbers or ranges between angled brackets refer to those particular bits or positions in a bus.
- a processing unit P1 comprises a processor 20, a numerical coprocessor 22 and a cache memory controller 24 and associated logic circuits connected to a local processor bus 26.
- cache controller 24 Associated with cache controller 24 are high speed cache data random access memory 28, noncacheable memory address map programming logic circuitry 30. noncacheable address memory 32, address exchange latch circuitry 34 and data exchange transceiver 36.
- processor unit PI also are local bus ready logic circuit 38, next address enable logic circuit 40 and bus request logic circuit 42
- the processor 20 is preferably an Intel 80386 microprocessor.
- the processor 20 has its control. address and data lines interfaced to the local processor bus 26.
- the coprocessor 22 is preferably an Intel 80387 and or Weitek WTL 3167 numeric coprocessor interfacing with the local processor bus 26 and the processor 20 in the conventional manner.
- the cache ram 28 is preferably a suitable high-speed static random access memory which interfaces with the address and data elements of bus 26 under control of the cache controller 24 to carry out required cache memory operations
- the cache controller 24 is preferably an Intel 82385 cache controller configured to operate in two-way set associative master mode. In the preferred embodiment the components are the 33 MHz versions of the respective units.
- Address latch circuitry 34 and data transceiver 36 interface the cache controller 24 with the processor 20 and provide a local bus interface between the local processor bus 26 and a host bus 44, according to conventional practice in an 80386 and 82385 based system.
- Circuit 38 is a logic circuit which provides a bus ready signal to control access to the local bus 26 and indicate when the next cycle can begin.
- the enable circuit 40 is utilized to indicate that the next address of data or code to be utilized by subsystem elements in pipelined address mode can be placed on the local bus 26.
- Noncacheable memory address map programmer 30 cooperates with the processor 20 and the noncacheable address memory 32 to map noncacheable memory locations.
- the noncacheable address memory 32 is utilized to designate areas of system memory that are noncacheable to avoid many types of cache memory incoherency.
- the bus request logic circuit 42 is utilized by the processor 20 and associated elements to request access to the host bus 44 in situations such as when requested data is not located in the cache memory 28 and access to system memory is required.
- a page hit detector 43 is connected to the local processor bus 26 to allow the earliest possible determination of whether a cache miss cycle will be a memory page hit.
- system C is configured having the processor bus 26. the host bus 44, an extended industry standard architecture (EISA) bus 46 (Fig. 2) and an X bus 90.
- EISA extended industry standard architecture
- Fig. 2 The details of the portion of the system illustrated in Figure 2, and not discussed in detail below are not significant to the present invention other than to illustrate an example of a fully configured computer system.
- the EISA specification Version 3.1 is included as Appendix 1 to fully explain requirements of an EISA system.
- the portion of system C illustrated in Fig. 2 is essentially a configured EISA system which includes the necessary EISA bus 46, an EISA bus controller 48, data latches and transceivers 50 and address latches and buffers 52 to interface between the EISA bus 46 and the host bus 44.
- an integrated system peripheral 54 which incorporates a number of the elements used in an EISA-based computer system.
- the integrated system peripheral (ISP) 54 includes a direct memory access controller 56 for controlling access to main memory 58 (Fig. 1). or memory contained in EISA slots and input output (I 0) locations, without the need for access to the processor 20.
- the main memory array 58 is considered to be local memory and comprises a memory circuit array of size suitable to accommodate the particular requirements of the system.
- the ISP 54 also includes interrupt controllers 70, nonmaska- ble interrupt logic 72 and system timers 74 which allow control of interrupt signals and generate necessary timing signals and wait states in a manner according to the EISA specification and conventional practice. In the preferred embodiment, processor generated interrupt requests are controlled via dual interrupt control circuits emulating and extending conventional Intel 8259 interrupt controllers.
- the ISP 54 also includes bus arbitration logic 75 which, in cooperation with the bus controller 48 and overall arbitration logic 77, controls and arbitrates among the various requests for the EISA bus 46 by the cache controller 24, the DMA controller 56 and bus master devices located on the EISA bus 46.
- the EISA bus 46 (Fig. 2) includes ISA and EISA control buses 76 and 78, ISA and EISA data buses 80 and 82 and address buses 84. 86 and 88.
- System peripherals are interfaced via the X bus 90 in combination with the ISA control bus 76 from the EISA bus 46. Control and dataaddress transfer for the X bus 90 are facilitated by X bus control logic 92, data transceivers 94 and address latches 96
- Attached to the X bus 90 are various peripheral devices such as keyboard mouse controller 98 which interfaces the X bus 90 with a suitable keyboard and mouse via connectors 100 and 102. respectively. Also attached to the X bus 90 are read only memory circuits 106 which contain basic operations software for the system C and for system video operations. A serial communications port 108 is also connected to the system C via the X bus 90. Floppy and fixed disk support, a parallel port, a second serial port, and video support circuits are provided in block circuit 110.
- processor unit P1 and P2 are located on the host bus 44.
- Processor unit P2 is similar to processor unit P1. with like circuits having the same reference number plus 100.
- the overall arbitration logic 77 is adapted for use with the two processor units P1 and P2 and arbitrates between the two processor units P1 and P2 to share the CPU arbitration location provided in the EISA specification.
- process control logic circuits 49 and 149 are connected to the host bus 44, to their respective processor units P1 and P2, and to each other.
- a signal name having a first letter of P refers to a signal generally on the local bus 26, with a signal having a first letter of H represents that version of the signal generally on the host bus 44 and a signal having a first letter of M generally represents the version of that signal relating to the memory interface.
- processor control logic circuit 49 responds to a maskable interrupt signal from any of: a programmable register contained in the processor control logic circuit 49 and addressable by processors P1 or P2; the Weitek WTL3167 portion of numeric coprocessor 22; or the Intel 80387 portion of numeric coprocessor 22.
- Processor control logic circuit 49 as its response forms an IRQ13 interrupt signal which is furnished to the integrated system peripheral 54.
- Integrated system peripheral 54 in response forms a processor interrupt signal which is furnished to the interrupt input of processor 20.
- Processor 20 in response performs an interrupt acknowledge cycle to receive an interrupt vector.
- a vector replacement logic circuit 121 is provided and is connected to host bus 44. As will be set forth below, vector replacement logic circuit 121 responds to a maskable interrupt and determines which of processor 20 or processor 120 is currently on the host bus 44. In the event that processor 20 is detected to be operating on the bus 44, vector replacement logic circuit 121 allows the integrated system peripheral 54 to provide the interrupt vector read by the processor 20. In the alternative occurrence, namely that processor 120 is detected to be operating on the host bus 44. vector replacement logic circuit 121 inhibits the start of the next bus cycle to the integrated system peripheral 54, instead of passing a signal which is furnished by EISA bus controller 48. This prevents an interrupt vector from being placed on the bus 44 by the integrated system peripheral 54 when the processor 120 is on the host bus 44. Instead, the vector replacement logic Circuit 121 provides the interrupt vector in this instance.
- a D-type flip-flop 202 receives at a D input a signal PINT indicative of the status of a interrupt signal from a programmable register addressable by processor 20 and processor 120.
- D-type flip-flop 204 and 206 receive, respectively. signals WINT and NINT of the status of interrupt signals from the Weitek WTL 3167 and Intel 80387 portions of coprocessor 22, respectively.
- Flip-flops 202, 204 and 206 are each clocked by a common operating clock signal CLK1 from an inverter 208.
- D-type flip-flops 202A, 204A and 206A are connected to the Q-outputs of flip-flops 202, 204 and 206, respectively.
- Storage buffers 202A, 204A and 206A also receive the common operating clock signal CLK1.
- a NOR gate 210 receives at one input the Qoutput of the flip-flop 202 and at the other input the Ooutput of storage buffer 202A.
- the Q output of flip-flop 202 is driven high in the next cycle of common operating clock signal CLK1, while the Q output of flip-flop 202A remains low.
- NOR gate 210 stays low until the PINT signal is removed.
- NOR gate 210 forms a high level pulse lasting one cycle of the common operating clock signal CLK1.
- NOR gate 212 is connected to the Q output of flip-flop 204 and Q output of flip-flop 204A to form a high level pulse lasting one cycle of common operating clock signal CLKI when the WINT interrupt signal from the Weitek WTL 3167 portion of coprocessor 22 is removed.
- NOR gate 214 is connected to the Q output of flip-flop 206 and the Q output of flip-flop 206A to form a high level pulse lasting one cycle of common operating clock signal CLK1 in the event of the removal of an interrupt signal CINT from the Intel 80387 portion of coprocessor 22.
- a NOR gate 216 is connected to receive the outputs from NOR gates 210, 212 and 214 and to form an interrupt trigger signal ISTRIG" in the event of receipt of a signal from any of the NOR gates 210, 212 or 214 in response to the removal of an interrupt signal.
- Interrupt pulse D-type flip-flops 218 and 220 receive a system reset signal RSTIS' from an inverter 221 at their respective R inputs, at which time their ⁇ outputs are driven high. Interrupt status flip-flops 218 and 220. as well as an interrupt status flip-flop 222 are all driven by the common operating clock signal CLK1 from the inverter 208.
- the Q output of interrupt status flip-flop 218 is an interrupt status signal IS1' which is furnished as an input to a NAND gate 224
- the Q output of interrupt status flip-flop 220 is a signal IS2 which is furnished as an input to the NAND gate 224 and an AND gate 226.
- interrupt status flip-flop 222 is an interrupt status signal IS3 which is an input to the NAND gate 226.
- a NOR gate 228 receives as its inputs interrupt status signal IS1 from the Q output of interrupt status flip-flop 218 and interrupt status signal IS2 from the Q output of interrupt status flip-flop 220.
- interrupt output NAND gate 232 This maintains the Qoutput of interrupt status flip-flop 222 high and allows an interrupt output NAND gate 232 to pass any of the interrupt signals PINT from processor 20, WINT from the Weitek WTL 367 portion of coprocessor 22 and NINT from the Intel 80387 portion of coprocessor 22. These interrupt signals are received at an OR gate 234 and pass from interrupt output NAND gate 232 as an CINT * signal.
- the signal CINT * is inverted by an output buffer (not shown) of the processor control logic circuit 49, with the output signal representing the interrupt line IRQ13 which, as has been set forth above, is furnished from the processor control logic circuit 49 to the integrated system peripheral 54.
- interrupt status signals ISTRIG* When, however, interrupt status signals ISTRIG* is driven low by a first removed interrupt signal from NOR gate 216, the interrupt status signal IS2 from interrupt status flip-flop 220 becomes high on the next clock pulse CLKI, inhibiting NAND gate 224 and NOR gate 228. This drives the output of NOR gate 228 low. This occurrence causes the Q output of interrupt status flip-flop 222 to go low, permitting NAND gate 230 to block any outstanding interrupt signal due to the others of PINT, WINT or CINT pending at the removal of the interrupt which triggered the state machine formed by flip-flops 218. 220 and 222 to advance.
- the interrupt pulse flip-flops 218. 220 and 222 provide pulses to the CINT - signal whenever a PINT. WINT or NINT signal is removed and another of PINT, WINT or CINT is pending, thus allowing the system to detect multiple occurrences of the shared interrupt before all the interrupt request signals are cleared.
- an inverter 250 receives as an input signal ST2B representing status bit 2 from the integrated systems peripheral 54. Status bit 2 indicates that an interrupt acknowledge cycle is present.
- the output of inverter 250 is furnished as an input to an NAND gate 252 which also receives as an input an address enable signal AENB * , which is used to qualify the ST2B signal.
- AENB* address enable signal
- NAND gate 252 forms an interrupt acknowledge signal INTA* on receipt of status bit 2 from integrated systems peripheral 54.
- the interrupt acknowledge signal INTA * is provided as an input to an NAND gate 254 of a block start circuit 256, a NOR gate 258 of an interrupt mask logic circuit 260 and an inverter 262 of a reset circuit 264.
- the NAND gate 254 receives the signal INTA * as well as a signal LISPREG * which indicates, when low, that the .processor 120 is trying to access the interrupt controller contained in the integrated system peripheral 54.
- the output from NAND gate 254 is high during the active presence of the signals INTA * or LISPREG* and is furnished to a NAND gate 266.
- NAND gate 266 receives as a second input a signal P20N from the arbitration logic 77 indicating that the processor 120 is operating on the bus 44.
- NAND gate 266 If this is the case, the output of NAND gate 266 is driven low.
- the output of the NAND gate 266 is furnished as a first input to a block start NAND gate 268.
- the NAND gate 268 also receives from an inverter 270 the START signal, the EISA bus cycle signal signifying the start of the next EISA bus cycle.
- An AND gate 276 receives as a first input a no cycle signal NCY * from the Q output of flip-flop 274 and as a second input the signal P20N indicating that processor 120 is operating on the bus.
- the output of AND gate 276 is provided to the D input of flip-flop 274.
- the signal P20N is also furnished as an input to an AND gate 278.
- Gate 278 also receives as an input the Q output of flip-flop 274.
- the output of gate 278 is furnished as a D input to a D-type flip-flop 280 which receives as its clock signal the Q output of flip-flop 272.
- Flip-flops 274 and 280 of the interrupt mask logic circuit 260 have their respective S inputs, connected to a logic low level. Flip-flops 274 and 280 of interrupt mask logic circuit 260 receive reset signals at their R input terminals from the reset circuit 264.
- the inverted interrupt acknowledge signal INTA' output of inverter 262 is furnished as a first input to a NOR gate 282 which also receives as a second input the start signal START *.
- the output of the gate 282 is driven high on the next start signal START' after the interrupt acknowledge signal INTA * is removed, which passes through a D-type flip-flop 284 on the next rising edge of the BCLK signal received at its clock input.
- the Q output of flip-flop 284 is driven high at this time, which passes through an OR gate 286 as a reset signal to the R inputs of the shift registers 274 and 280.
- a system reset signal may be received as the other input to the OR gate 286 and furnished as a reset signal to the R outputs of flip-flop 274 and 280.
- the flip-flops 274 and 280 are kept reset until an interrupt acknowledge cycle is pending.
Abstract
Description
- The present invention relates to digital computers with two microprocessors operating off of shared control, data and address buses.
- It has become desirable for operating speed and reduced computer time to have two microprocessors operate independently from each other while sharing common control, data and address buses. For simplicity of design, programming and manufacture, the microprocessors should have identical configurations. It is necessary for the microprocessors to be able to respond to various external hardware events. For this purpose, microprocessors are provided with an interrupt function. With two such microprocessors sharing common buses, however, problems have arisen concerning response to interrupt signals. For example, one microprocessor might erroneously respond to an interrupt signal and search for an interrupt vector actually intended for the other microprocessor.
- Briefly, the present invention provides a new and improved multiprocessor interrupt control apparatus for two processors. The processors share common control, data and address buses while operating independently on them. The processors further preferably operate as a part of a computer system using the extended industry standard architecture (EISA) bus.
- A first of the two processors responds to a maskable interrupt received from a programmable register which is addressable by both processors, or a numeric coprocessor extension andior a numeric coprocessor, both associated with the first processor. On receipt of a maskable interrupt, processor control logic for the first processor forms an interrupt signal which is furnished to an integrated system peripheral which forms a processor interrupt signal. The first processor in response performs an interrupt acknowledge cycle to receive an interrupt vector.
- The second processor responds to maskable interrupts from a programmable register, a coprocessor extension and.or a numeric coprocessor associated with the second processor. However, in response to a maskable interrupt, processor control logic for the second processor forms an interrupt signal which is furnished only to the second processor interrupt input.
- Vector replacement logic circuitry responds to maskable interrupts and determines which of the two processors is on the bus at that time. In the event the first processor is on the bus, vector replacement logic allows the integrated system peripheral to provide the interrupt vector read by the first processor. When, however, the second processor is on the bus at the time a maskable interrupt is received, the vector replacement logic circuitry inhibits the start of the next bus cycle of the integrated system peripheral. This prevents an interrupt vector from being placed on the bus when the second processor is on the bus. The vector replacement logic circuitry instead provides the interrupt vector in this instance.
- Figs. 1 and 2, taken together, are a schematic circuit diagram of a computer according to the present invention;
- Fig. 3 is a schematic diagram of certain interacting components of the computer of Figs. 1 and 2;
- Figs. 4 and 5 are digital logic circuit diagrams of portions of Fig. 3.
- Referring now to Figures 1 and 2, the letter C designates generally a computer system incorporating the present invention. For clarity, system C is shown in two portions, with the interconnections between Figures 1 and 2 designated by reference to the circled numbers one to ten. System C is comprised of a number of block elements interconnected via a plurality of buses. Throughout this specification, signal mnemonics with an asterisk following the signal descriptors indicate the signal is active at a logic low level. Signal mnemonics having numbers or ranges between angled brackets refer to those particular bits or positions in a bus.
- In Figure 1, a computer system is depicted. A processing unit P1 comprises a
processor 20, anumerical coprocessor 22 and acache memory controller 24 and associated logic circuits connected to a local processor bus 26. Associated withcache controller 24 are high speed cache datarandom access memory 28, noncacheable memory address mapprogramming logic circuitry 30.noncacheable address memory 32, addressexchange latch circuitry 34 anddata exchange transceiver 36. Associated with the processor unit PI also are local busready logic circuit 38, next address enablelogic circuit 40 and busrequest logic circuit 42 - The
processor 20 is preferably an Intel 80386 microprocessor. Theprocessor 20 has its control. address and data lines interfaced to the local processor bus 26. Thecoprocessor 22 is preferably an Intel 80387 and or Weitek WTL 3167 numeric coprocessor interfacing with the local processor bus 26 and theprocessor 20 in the conventional manner. Thecache ram 28 is preferably a suitable high-speed static random access memory which interfaces with the address and data elements of bus 26 under control of thecache controller 24 to carry out required cache memory operations Thecache controller 24 is preferably an Intel 82385 cache controller configured to operate in two-way set associative master mode. In the preferred embodiment the components are the 33 MHz versions of the respective units.Address latch circuitry 34 anddata transceiver 36 interface thecache controller 24 with theprocessor 20 and provide a local bus interface between the local processor bus 26 and a host bus 44, according to conventional practice in an 80386 and 82385 based system. -
Circuit 38 is a logic circuit which provides a bus ready signal to control access to the local bus 26 and indicate when the next cycle can begin. The enablecircuit 40 is utilized to indicate that the next address of data or code to be utilized by subsystem elements in pipelined address mode can be placed on the local bus 26. - Noncacheable memory
address map programmer 30 cooperates with theprocessor 20 and thenoncacheable address memory 32 to map noncacheable memory locations. Thenoncacheable address memory 32 is utilized to designate areas of system memory that are noncacheable to avoid many types of cache memory incoherency. The busrequest logic circuit 42 is utilized by theprocessor 20 and associated elements to request access to the host bus 44 in situations such as when requested data is not located in thecache memory 28 and access to system memory is required. Apage hit detector 43 is connected to the local processor bus 26 to allow the earliest possible determination of whether a cache miss cycle will be a memory page hit. - In the drawings. system C is configured having the processor bus 26. the host bus 44, an extended industry standard architecture (EISA) bus 46 (Fig. 2) and an
X bus 90. The details of the portion of the system illustrated in Figure 2, and not discussed in detail below are not significant to the present invention other than to illustrate an example of a fully configured computer system. The EISA specification Version 3.1 is included asAppendix 1 to fully explain requirements of an EISA system. The portion of system C illustrated in Fig. 2 is essentially a configured EISA system which includes the necessary EISAbus 46, an EISAbus controller 48, data latches andtransceivers 50 and address latches andbuffers 52 to interface between the EISAbus 46 and the host bus 44. Also illustrated in Figure 2 is an integrated system peripheral 54, which incorporates a number of the elements used in an EISA-based computer system. - The integrated system peripheral (ISP) 54 includes a direct
memory access controller 56 for controlling access to main memory 58 (Fig. 1). or memory contained in EISA slots and input output (I 0) locations, without the need for access to theprocessor 20. Themain memory array 58 is considered to be local memory and comprises a memory circuit array of size suitable to accommodate the particular requirements of the system. TheISP 54 also includesinterrupt controllers 70, nonmaska- ble interrupt logic 72 andsystem timers 74 which allow control of interrupt signals and generate necessary timing signals and wait states in a manner according to the EISA specification and conventional practice. In the preferred embodiment, processor generated interrupt requests are controlled via dual interrupt control circuits emulating and extending conventional Intel 8259 interrupt controllers. The ISP 54 also includesbus arbitration logic 75 which, in cooperation with thebus controller 48 andoverall arbitration logic 77, controls and arbitrates among the various requests for the EISAbus 46 by thecache controller 24, theDMA controller 56 and bus master devices located on the EISAbus 46. - The main memory array 58 (Fig. 1) is preferably page mode dynamic random access memory.
Memory 58 interfaces with the host bus 44 via adata buffer circuit 60, amemory controller circuit 62 and a memory mapping and enablecircuitry 68. Thebuffer 60 performs data transceiving and parity generating and checking functions. Thememory controller 62 and thememory mapping circuitry 68 interface with thememory 58 via address multiplexer and columnaddress strobe buffers 66 and row address enablelogic circuit 64. Thememory controller 62 also receives a signal from thepage hit detector 43 to control operation. - The EISA bus 46 (Fig. 2) includes ISA and EISA
control buses data buses address buses 84. 86 and 88. System peripherals are interfaced via theX bus 90 in combination with theISA control bus 76 from theEISA bus 46. Control and dataaddress transfer for theX bus 90 are facilitated by Xbus control logic 92,data transceivers 94 and address latches 96 - Attached to the
X bus 90 are various peripheral devices such askeyboard mouse controller 98 which interfaces theX bus 90 with a suitable keyboard and mouse viaconnectors X bus 90 are read onlymemory circuits 106 which contain basic operations software for the system C and for system video operations. Aserial communications port 108 is also connected to the system C via theX bus 90. Floppy and fixed disk support, a parallel port, a second serial port, and video support circuits are provided inblock circuit 110. - In the preferred embodiment. two similar processor units P1 and P2 are located on the host bus 44. Processor unit P2 is similar to processor unit P1. with like circuits having the same reference number plus 100. The
overall arbitration logic 77 is adapted for use with the two processor units P1 and P2 and arbitrates between the two processor units P1 and P2 to share the CPU arbitration location provided in the EISA specification. To allow interaction between the two processor units P1 and P2, processcontrol logic circuits - n general in this specification, a signal name having a first letter of P refers to a signal generally on the local bus 26, with a signal having a first letter of H represents that version of the signal generally on the host bus 44 and a signal having a first letter of M generally represents the version of that signal relating to the memory interface.
- As will be set forth below, processor
control logic circuit 49 responds to a maskable interrupt signal from any of: a programmable register contained in the processorcontrol logic circuit 49 and addressable by processors P1 or P2; the Weitek WTL3167 portion ofnumeric coprocessor 22; or the Intel 80387 portion ofnumeric coprocessor 22. Processorcontrol logic circuit 49 as its response forms an IRQ13 interrupt signal which is furnished to the integrated system peripheral 54. Integrated system peripheral 54 in response forms a processor interrupt signal which is furnished to the interrupt input ofprocessor 20.Processor 20 in response performs an interrupt acknowledge cycle to receive an interrupt vector. - A vector
replacement logic circuit 121 is provided and is connected to host bus 44. As will be set forth below, vectorreplacement logic circuit 121 responds to a maskable interrupt and determines which ofprocessor 20 orprocessor 120 is currently on the host bus 44. In the event thatprocessor 20 is detected to be operating on the bus 44, vectorreplacement logic circuit 121 allows the integrated system peripheral 54 to provide the interrupt vector read by theprocessor 20. In the alternative occurrence, namely thatprocessor 120 is detected to be operating on the host bus 44. vectorreplacement logic circuit 121 inhibits the start of the next bus cycle to the integrated system peripheral 54, instead of passing a signal which is furnished byEISA bus controller 48. This prevents an interrupt vector from being placed on the bus 44 by the integrated system peripheral 54 when theprocessor 120 is on the host bus 44. Instead, the vectorreplacement logic Circuit 121 provides the interrupt vector in this instance. - Turning now to the details of processor control logic circuit 49 (Fig. 4), a D-type flip-
flop 202 receives at a D input a signal PINT indicative of the status of a interrupt signal from a programmable register addressable byprocessor 20 andprocessor 120. Similarly, D-type flip-flop coprocessor 22, respectively. Flip-flops inverter 208. The D inputs of D-type flip-flops 202A, 204A and 206A are connected to the Q-outputs of flip-flops - A NOR
gate 210 receives at one input the Qoutput of the flip-flop 202 and at the other input the Ooutput ofstorage buffer 202A. In the event of the presence of the interrupt signal PINT fromprocessor 20 at a high level, the Q output of flip-flop 202 is driven high in the next cycle of common operating clock signal CLK1, while theQ output of flip-flop 202A remains low. NORgate 210 stays low until the PINT signal is removed. When the PINT signal is removed NORgate 210 forms a high level pulse lasting one cycle of the common operating clock signal CLK1. - In a like manner, a NOR
gate 212 is connected to the Q output of flip-flop 204 andQ output of flip-flop 204A to form a high level pulse lasting one cycle of common operating clock signal CLKI when the WINT interrupt signal from the Weitek WTL 3167 portion ofcoprocessor 22 is removed. Similarly, a NORgate 214 is connected to the Q output of flip-flop 206 and theQ output of flip-flop 206A to form a high level pulse lasting one cycle of common operating clock signal CLK1 in the event of the removal of an interrupt signal CINT from the Intel 80387 portion ofcoprocessor 22. - A NOR
gate 216 is connected to receive the outputs from NORgates gates - Interrupt pulse D-type flip-
flops 218 and 220 receive a system reset signal RSTIS' from aninverter 221 at their respective R inputs, at which time their Öoutputs are driven high. Interrupt status flip-flops 218 and 220. as well as an interrupt status flip-flop 222 are all driven by the common operating clock signal CLK1 from theinverter 208. TheQ output of interrupt status flip-flop 218 is an interrupt status signal IS1' which is furnished as an input to aNAND gate 224 The Q output of interrupt status flip-flop 220 is a signal IS2 which is furnished as an input to theNAND gate 224 and an ANDgate 226. The Q output of interrupt status flip-flop 222 is an interrupt status signal IS3 which is an input to theNAND gate 226. A NORgate 228 receives as its inputs interrupt status signal IS1 from the Q output of interrupt status flip-flop 218 and interrupt status signal IS2 from the Q output of interrupt status flip-flop 220. - When interrupt status flip-
flop 218 and 220 receive the reset signal RSTIS' at their R inputs. the output ofNAND gate 224 is high, permitting any interrupt trigger signal ISTRIG* received from NORgate 216 to pass through aNAND gate 230 to a D input of the interrupt status flip-flop 220. The next clock pulse CLK1 transfers the interrupt signal ISTRIG' to the Q output of interrupt status flip-flop 220, causing the interrupt status signal lS2 to represent the status of the interrupt signal ISTRIG*. So long as interrupt status signals ISTRIG* remains high on each succeeding clock pulse CLK1, NORgate 228 is maintained high. This maintains the Qoutput of interrupt status flip-flop 222 high and allows an interruptoutput NAND gate 232 to pass any of the interrupt signals PINT fromprocessor 20, WINT from the Weitek WTL 367 portion ofcoprocessor 22 and NINT from the Intel 80387 portion ofcoprocessor 22. These interrupt signals are received at anOR gate 234 and pass from interruptoutput NAND gate 232 as an CINT* signal. The signal CINT* is inverted by an output buffer (not shown) of the processorcontrol logic circuit 49, with the output signal representing the interrupt line IRQ13 which, as has been set forth above, is furnished from the processorcontrol logic circuit 49 to the integrated system peripheral 54. - When, however, interrupt status signals ISTRIG* is driven low by a first removed interrupt signal from NOR
gate 216, the interrupt status signal IS2 from interrupt status flip-flop 220 becomes high on the next clock pulse CLKI, inhibitingNAND gate 224 and NORgate 228. This drives the output of NORgate 228 low. This occurrence causes theQ output of interrupt status flip-flop 222 to go low, permittingNAND gate 230 to block any outstanding interrupt signal due to the others of PINT, WINT or CINT pending at the removal of the interrupt which triggered the state machine formed by flip-flops 218. 220 and 222 to advance. This results in the signal CINT", representing the IR013 interrupt code, which is furnished to integrated system peripheral 54 pulsing high momentarily for a period which will be recognized. Thus the interrupt pulse flip-flops 218. 220 and 222 provide pulses to the CINT- signal whenever a PINT. WINT or NINT signal is removed and another of PINT, WINT or CINT is pending, thus allowing the system to detect multiple occurrences of the shared interrupt before all the interrupt request signals are cleared. - The processor
control logic circuit 149 contains like circuit elements and operates in response to receipt of interrupt signals fromprocessor 120 andcoprocessor 122. reset signals and clock signals in a like manner as processorcontrol logic circuit 49 operates in conjunction withprocessor 20 andcoprocessor 22. Processorcontrol logic circuit 149, however, provides the output signal CINT- from itsgate 232 directly to the interrupt input INTR of processor 120 (Fig. 3), rather than as the interrupt line IR013 to integrated system peripheral 54 as is the case with processorcontrol logic circuit 49. - In the vector replacement logic circuit 121 (Fig. 5), an
inverter 250 receives as an input signal ST2B representing status bit 2 from the integrated systems peripheral 54. Status bit 2 indicates that an interrupt acknowledge cycle is present. The output ofinverter 250 is furnished as an input to anNAND gate 252 which also receives as an input an address enable signal AENB*, which is used to qualify the ST2B signal. When the AENB* signal is low, a direct memory access cycle is in progress and the ST2B signal has a different function. -
NAND gate 252 forms an interrupt acknowledge signal INTA* on receipt of status bit 2 from integrated systems peripheral 54. The interrupt acknowledge signal INTA* is provided as an input to anNAND gate 254 of ablock start circuit 256, a NORgate 258 of an interruptmask logic circuit 260 and aninverter 262 of areset circuit 264. - In the block
start logic circuit 256, theNAND gate 254 receives the signal INTA* as well as a signal LISPREG* which indicates, when low, that the .processor 120 is trying to access the interrupt controller contained in the integrated system peripheral 54. The output fromNAND gate 254 is high during the active presence of the signals INTA* or LISPREG* and is furnished to aNAND gate 266.NAND gate 266 receives as a second input a signal P20N from thearbitration logic 77 indicating that theprocessor 120 is operating on the bus 44. - If this is the case, the output of
NAND gate 266 is driven low. The output of theNAND gate 266 is furnished as a first input to a blockstart NAND gate 268. TheNAND gate 268 also receives from aninverter 270 the START signal, the EISA bus cycle signal signifying the start of the next EISA bus cycle. - When the interrupt acknowledge signal INTA* is present at the output of
NAND gate 252, the output ofNAND gate 266 is driven low, inhibiting the signal START from passing through the block startNAND gate 268 and accordingly preventing the signal STARTDX* from passing to the integrated system peripheral 54. In this manner, when thesecond processor 120 is on the bus and a maskable interrupt signal is received, the start of the next bus cycle is inhibited or hidden from the integrated system peripheral 54, thus keeping the integrated system peripheral 54 from placing an interrupt vector on the bus. When the INTA' or LISPREG' signal are not present the START* signal is passed through the blockstart logic circuit 256 to the integrated system peripheral 54. - In the interrupt
mask logic circuit 260. the NORgate 258 receives the start signal START' as well as the interrupt acknowledge system INTA*. The status of NORgate 258 is read into a D-type flip-flop 272 by a clock signal BCLK provided on theEISA bus 46 so that the Q output furnished as a clock signal to a D-type flip-flop 274 represents the presence of both a start signal and an interrupt acknowledge signal. - An AND
gate 276 receives as a first input a no cycle signal NCY* from theQ output of flip-flop 274 and as a second input the signal P20N indicating thatprocessor 120 is operating on the bus. The output of ANDgate 276 is provided to the D input of flip-flop 274. The signal P20N is also furnished as an input to an ANDgate 278.Gate 278 also receives as an input the Q output of flip-flop 274. The output ofgate 278 is furnished as a D input to a D-type flip-flop 280 which receives as its clock signal the Q output of flip-flop 272. - An interrupt acknowledge cycle is two EISA read cycles in length. As a result the START* signal is pulsed low two times during the interrupt acknowledge cycle. The interrupt vector must be provided on the second read cycle, the second pulse of the START* signal. This is in accordance with the timing requirements of the preferred 80386 microprocessor.
- When the INTA* signal is active, on the next rising edge of the BCLK signal during a START* signal pulse the Q output of flip-
flop 274 goes high. The signal at the D input of flip-flop 280 remains low. The START' signal goes high and on the next rising edge of the BCLK signal the output of flip-flop 272 goes low. On the second START* signal pulse in the interrupt acknowledge cycle the Q output of flip-flop 272 again goes high. This clocks the high signal present at the D input of flip-flop 280 into flip-flop 280, with the Q output, the INTVEN or interrupt vector enable signal, going high. The INTVEN signal is coupled to the tri-state control input of abuffer 288 which provides the output of an 8 bit second processor interruptvector register 290 to the XD data bus, so that the vector is provided toprocessor 120. - The second processor interrupt
vector register 290 can be loaded byprocessor 20 by performing an 10 write operation to i 0 port address FC68h in the preferred embodiment. The inputs of theregister 290 are connected to the XD data bus lines <7-0>, while the clocking input is connected to NORgate 292. NORgate 292 receives signals indicating that an 1,0 port write operation is occurring, IOW*, and address FC68h is present, ICFS*. - Flip-
flops mask logic circuit 260 have their respective S inputs, connected to a logic low level. Flip-flops mask logic circuit 260 receive reset signals at their R input terminals from thereset circuit 264. The inverted interrupt acknowledge signal INTA' output ofinverter 262 is furnished as a first input to a NORgate 282 which also receives as a second input the start signal START*. The output of thegate 282 is driven high on the next start signal START' after the interrupt acknowledge signal INTA* is removed, which passes through a D-type flip-flop 284 on the next rising edge of the BCLK signal received at its clock input. The Q output of flip-flop 284 is driven high at this time, which passes through an ORgate 286 as a reset signal to the R inputs of the shift registers 274 and 280. Alternatively, a system reset signal may be received as the other input to theOR gate 286 and furnished as a reset signal to the R outputs of flip-flop flops - Accordingly, it can be seen that in the computer C according to the present invention, two independently operating
processors processor 20 is assigned when it is on the buses to respond to all maskable interrupts by causing placement of the interrupt vector on the bus at the start of the next bus cycle by means of the processcontrol logic circuit 49. Alternatively, when thesecond processor 120 is on the bus and a maskable interrupt is received, the start of the next bus cycle is inhibited by the vectorreplacement logic circuit 121 preventing an interrupt vector from being placed on the bus. - The foregoing disclosure and description of the invention are illustrative and explanatory thereof, and various changes in the size, shape, materials, components, circuit elements. wiring connections and contacts, as well as in the details of the illustrated circuitry and construction may be made without departing from the spirit of the invention.
Claims (18)
- Claims
- 1. An interrupt control system for a multiprocessor having two independently operating processors sharing busses, comprising:means responsive to an interrupt for causing a first of the microprocessors to place an interrupt vector on the bus when the first microprocessor is on the buses;means for inhibiting the start of the next bus cycle in response to the interrupt when the second microprocessor is on the buses.
- 2. The interrupt control system of claim 1, wherein said means responsive to an interrupt compnses: processor control logic circuit means for responding to a maskable interrupt.
- 3. The interrupt control system of claim 1, wherein said means responsive to an interrupt compnses: first processor control logic circuit means with a first of the processors for responding to a maskable interrupt.
- 4. The interrupt control system of claim 3, wherein said first processor control logic circuit means comprises:means forming an interrupt signal in response to a maskable interrupt.
- 5. The interrupt control system of claim 4, wherein the multiprocessor includes an integrated system peripheral, and wherein said first processor control logic circuit includes:means furnishing the interrupt signal to the integrated system peripheral.
- 6. The interrupt control system of claim 3, wherein said means responsive to an interrupt signal comprises:second processor control logic circuit means with a second of the processors for responding to a maskable interrupt.
- 7. The interrupt control system of claim 6, wherein said second processor control logic circuit means comprises:means forming an interrupt signal in response to a maskable interrupt.
- 8. The interrupt control system of claim 7, wherein said second processor control logic circuit includes:means furnishing the interrupt signal to an interrupt input of the second processor.
- 9. The interrupt control system of claim 2, wherein the processors are capable of addressing each other and wherein said processor control logic circuit means comprises:processor control logic circuit means for responding to a maskable interrupt from either of the processors.
- 10. The interrupt control system of claim 2, wherein at least one coprocessor is associated with the processors and wherein said processor control logic circuit means comprises:processor control logic circuit means for responding to a maskable interrupt from the coprocessor.
- 11. The interrupt control system of claim 1, wherein said means for inhibiting comprises:vector replacement logic means for inhibiting the second microprocessor.
- 12. The interrupt control system of claim 11, wherein said vector replacement logic comprises: means for sensing a maskable interrupt.
- 13. The interrupt control system of claim 12. wherein said means for inhibiting comprises: means for sensing which of the processors is on the bus when the maskable interrupt is sensed.
- 14. The interrupt control system of claim 13. wherein the multiprocessor includes an integrated system peripheral which forms interrupt vectors and is associated with the processors, and wherein said vector replacement logic comprises:means for permitting passage of an interrupt vector when the first processor is on the bus when the maskable interrupt is sensed.
- 15. The interrupt control system of claim 14, wherein said vector replacement logic comprises: means for inhibiting start of the next bus cycle of the integrated system peripheral when the second processor is on the bus when the maskable interrupt is sensed.
- 16. The interrupt control system of claim 14, wherein said vector replacement logic comprises: interrupt mask logic means providing the interrupt vector when the second processor is on the bus when the maskable interrupt is sensed.
- 17. The interrupt control system of claim 16, further including:means for resetting said interrupt mask logic means.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US43165889A | 1989-11-03 | 1989-11-03 | |
US431658 | 1989-11-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
EP0431312A2 true EP0431312A2 (en) | 1991-06-12 |
EP0431312A3 EP0431312A3 (en) | 1991-12-11 |
Family
ID=23712888
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP19900120909 Ceased EP0431312A3 (en) | 1989-11-03 | 1990-10-31 | Multiprocessor interrupt control |
Country Status (2)
Country | Link |
---|---|
EP (1) | EP0431312A3 (en) |
CA (1) | CA2026770A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0125797A1 (en) * | 1983-04-13 | 1984-11-21 | THE GENERAL ELECTRIC COMPANY, p.l.c. | Interrupt signal handling apparatus |
US4504906A (en) * | 1982-11-30 | 1985-03-12 | Anritsu Electric Company Limited | Multiprocessor system |
EP0192944A2 (en) * | 1985-02-28 | 1986-09-03 | International Business Machines Corporation | Data processing system with a main processor and a co-processor sharing the same resources |
-
1990
- 1990-10-02 CA CA 2026770 patent/CA2026770A1/en not_active Abandoned
- 1990-10-31 EP EP19900120909 patent/EP0431312A3/en not_active Ceased
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4504906A (en) * | 1982-11-30 | 1985-03-12 | Anritsu Electric Company Limited | Multiprocessor system |
EP0125797A1 (en) * | 1983-04-13 | 1984-11-21 | THE GENERAL ELECTRIC COMPANY, p.l.c. | Interrupt signal handling apparatus |
EP0192944A2 (en) * | 1985-02-28 | 1986-09-03 | International Business Machines Corporation | Data processing system with a main processor and a co-processor sharing the same resources |
Also Published As
Publication number | Publication date |
---|---|
EP0431312A3 (en) | 1991-12-11 |
CA2026770A1 (en) | 1991-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0426413B1 (en) | Multiprocessor arbitration in single processor arbitration schemes | |
US5437042A (en) | Arrangement of DMA, interrupt and timer functions to implement symmetrical processing in a multiprocessor computer system | |
US5446910A (en) | Interrupt controller with automatic distribution of interrupts for a multiple processor computer system | |
US5668971A (en) | Posted disk read operations performed by signalling a disk read complete to the system prior to completion of data transfer | |
US5717954A (en) | Locked exchange FIFO | |
US5016167A (en) | Resource contention deadlock detection and prevention | |
US5535341A (en) | Apparatus and method for determining the status of data buffers in a bridge between two buses during a flush operation | |
EP0886225B1 (en) | Microprocessor architecture capable of supporting multiple heterogenous processors | |
US5067071A (en) | Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus | |
US5613075A (en) | Method and apparatus for providing deterministic read access to main memory in a computer system | |
US5367689A (en) | Apparatus for strictly ordered input/output operations for interrupt system integrity | |
US6275885B1 (en) | System and method for maintaining ownership of a processor bus while sending a programmed number of snoop cycles to the processor cache | |
US5737604A (en) | Method and apparatus for independently resetting processors and cache controllers in multiple processor systems | |
US4698753A (en) | Multiprocessor interface device | |
US6920516B2 (en) | Anti-starvation interrupt protocol | |
US5588125A (en) | Method and apparatus for increasing bus bandwidth on a system bus by inhibiting interrupts while posted I/O write operations are pending | |
US6463529B1 (en) | Processor based system with system wide reset and partial system reset capabilities | |
EP0450233A2 (en) | Bus access for digital computer system | |
EP0795157B1 (en) | Bridge between two buses | |
US5539917A (en) | Computer system having circuitry interfacing a DMA controller directly with a parallel port having specific timing control to allow printing operation without microprocessor intervention | |
EP0147599A2 (en) | Data processing system including a main processor and a co-processor and co-processor error handling logic | |
JPH0782479B2 (en) | Error detection, separation and recovery equipment | |
US5884054A (en) | Multiprocessor system including interprocessor encoding and decoding logic for communication between two cards through reduced addressing lines | |
EP0493960A2 (en) | A computer system employing fast buffer copying | |
US5247685A (en) | Interrupt handling in an asymmetric multiprocessor computer system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): DE FR GB IT NL |
|
PUAL | Search report despatched |
Free format text: ORIGINAL CODE: 0009013 |
|
AK | Designated contracting states |
Kind code of ref document: A3 Designated state(s): DE FR GB IT NL |
|
17P | Request for examination filed |
Effective date: 19920521 |
|
17Q | First examination report despatched |
Effective date: 19941021 |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED |
|
18R | Application refused |
Effective date: 19980226 |