US5708813A - Programmable interrupt signal router - Google Patents
Programmable interrupt signal router Download PDFInfo
- Publication number
- US5708813A US5708813A US08/353,759 US35375994A US5708813A US 5708813 A US5708813 A US 5708813A US 35375994 A US35375994 A US 35375994A US 5708813 A US5708813 A US 5708813A
- Authority
- US
- United States
- Prior art keywords
- interrupt
- lines
- address
- memory
- random access
- 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.)
- Expired - Lifetime
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
Definitions
- the invention relates generally to computer systems, and more specifically to interrupt signals generated by the computer system.
- interrupt signals are used to signal asynchronous events which may require immediate attention.
- an input/output (I/O) device may use interrupts to signal the availability of data, or an unanticipated conditions.
- PCs personal computers
- the methods used to route interrupt signals to the central processor unit (CPU) are usually dictated by de facto industry standards.
- the CPU typically an INTEL “x86” type of processor, is equipped with a single port for receiving interrupt signals from I/O devices.
- I/O buses have been designed which can communicate more than one interrupt signal at any time.
- I/O buses designed according to the industry "EISA" standard can concurrently communicate fifteen interrupt signals.
- a Programmable Interrupt Controller (PIC) is used.
- the PIC for example an INTEL "8259A,” is connected to an EISA I/O bus.
- the PIC converts the interrupts to an 8-bit vector which is communicated over the buses to select an interrupt service routine corresponding to the received interrupts.
- PCI bus Another industry standard bus, the PCI bus, can generate up to four interrupt signals for each I/O interface connected to the bus. Since the number of different I/O interfaces available, for example, for disks, tapes, printer, terminals, CD ROMS, audio, video, and so forth, is quite large, the number of different combinations of I/O interface which can be used in a computer system can be in the thousands.
- BIOS Basic Input/Output System
- O/S operating system
- a pseudo cross-bar type of device is sometimes used.
- the device includes a set of programmable registers which can be used to select one of a small number of predetermined combinations during system initialization.
- PCs are increasingly being used to perform more complex functions.
- PCs configured as servers can be equipped with a relatively large number of I/O interface.
- a modern server type of PC may be equipped with twelve I/O "slots", six each for EISA and PCI compatible interfaces.
- a random access memory of an interrupt router is programmed to store data as bit patterns at a plurality of memory locations. Each bit pattern correspond to a specific routing from a plurality of sources to a fixed number of interrupt input lines. The number of bits in each bit pattern equivalent to the number of interrupt input lines.
- FIG. 1 is a block diagram of a computer system according to the invention.
- FIG. 2 is a block diagram of a router of the system of FIG. 1;
- FIG. 3 is a block diagram of a data cell of a memory of the router of FIG. 2.
- FIG. 1 shows a computer system 100 including a central processing unit 110 and a memory 120 connected to each other by a processor bus 130.
- the processor bus 130 can include a plurality of signaling lines for communicating data, address, and control signals.
- the control signals can include interrupt signals for signaling asynchronous, or unanticipated events.
- the system For the purpose of communicating with input/output (I/O) devices 150, the system includes I/O buses 160 and 170.
- the buses are connected to the devices via I/O interface 151 typically plugged in to the buses 160 and 170.
- the buses 160 and 170 are designed according different industry standards, for example, PCI and EISA, respectively.
- a PCI bridge 161 is used to couple the PCI bus 160 to the processor bus 130, and an EISA bridge 171 is used to connect the EISA bus 170 to the PCI bus 160.
- the EISA bus 170 can communicate up to fifteen interrupt signals on lines 172.
- the CPU 110 for example an INTEL "x86" processor, is designed with a single interrupt input port 111 for receiving I/O interrupt signals.
- a Programmable Interrupt Controller (PIC) 180 implemented as, for example, an INTEL "8259A" device, can be used to connect the interrupt input lines 181 to the single I/O interrupt port 111 of the CPU 110.
- the PIC 180 upon detecting the interrupt signals, generates an eight bit vector which is communicated to the CPU over the buses.
- the PCI bus 160 also can include a plurality of interrupt lines 162. However, each PCI interface 151 can have four associated interrupt lines.
- the problem to be solved by the invention is to map the PCI interrupt lines 172, which can be of numerous combinations onto the fixed number of interrupt input lines 181 connected to the PIC 180.
- this task is performed by a programmable interrupt signal router 200.
- FIG. 2 shows the programmable router 200 in greater detail.
- the router 200 includes a de-multiplexer (demux) 210 having a first input side 211 connected to the interrupt lines 162.
- the total number of input interrupt lines to the demux 210 is fifteen. However, it should be understood that the invention can also be worked with a larger or smaller number of input interrupt lines.
- a second input side 212 of the demux 210 is connected to receive address from the CPU 110 via the communications buses.
- the demux 210 is controlled by a control signal CTRL 213 received via the control lines of the buses.
- the CTRL signal 213 can select, for example, the input lines of the first or second side of the demux 210.
- the selected input lines, first side or second side, are connected to first latches 220 by line 215.
- the latches 220 are used to synchronize the output from the demux 210 with respect to an interrupt matching synchronization pulse (SYNC) 221.
- SYNC interrupt matching synchronization pulse
- the output of the first latches 220 is connected as an input to a random accessible memory (RAM) 230 by line 222.
- the RAM 200 includes, for example, 2 15 storage cells 231, each cell being, for example, eight bits wide, as shown in FIG. 3, and described in greater detail below.
- the RAM 230 can be controlled for reading or writing data by a read/write signal 232.
- the output of the RAM 230 during reading, for example, data stored in the cells 231, is presented to second latches 240, also synchronized by a SYNC signal 241.
- the output of the latches 240 are connected to the PIC input interrupt lines 181.
- the router 200 can be programmed by selecting the second side 212, and presenting address signals on lines 170.
- the data to be written at the referenced addresses can be received via the transceiver 250.
- the data and addresses can be generated by a software program executing, for example, in the CPU 110. It should be understood that the program can also be executed on a remote processor, if the system 100 of FIG. 1 is connected in a network of distributed processors.
- the addresses that are received by the second side 212 of the demux 210 reference the cells 231 of the RAM 230.
- the data received via the transceiver (TRCR) 250 are stored in the referenced cells 231.
- the RAM 230 can be loaded with data under program control at, for example, the time the system 100 is initialized.
- FIG. 3 shows one cell 231 of the RAM 230 in greater detail.
- the cells 231 stored data as a bit pattern.
- the bits can be labelled, fight-to-left as b 0 to b 7 .
- Each bit corresponds to one of the interrupt input lines 181, conventionally designated as "IRQ" lines 15, 14, 12, 11, 10, 9, 5, and 3.
- a logical one in a bit position of the cell indicates a mapping of an interrupt.
- IRQ lines 10 and 3 A logical one in a bit position of the cell indicates a mapping of an interrupt.
- a bit pattern of "1001000" will signal interrupts on IRQ lines 10 and 3.
- the RAM 230 can be programmed to store, for example, 2 15 different bit pattern in the cells 231. Each pattern corresponds to a possible combination of PCI and EISA interrupt lines.
- the RAM 230 After the RAM 230 has been programmed, it can be used to route interrupt signals during operation of the system 100, explained as follows.
- the interrupt signals received on the first side of the demux 210 are used to form an address of the RAM 230.
- the cell at the referenced address stores the desired mapping or routing of the interrupt signals to the interrupt input lines of the PIC 180 as a bit pattern.
- the system 100 equipped with the router 200 can accommodate thousands of different combinations of interrupt lines, a fast improvement over the limited selections that have been available in the prior art.
- circuits of the router can be arranged in alternative configuration using components of like design or function.
- the I/O buses may be compliant with other industry standards, or for that matter, the buses may be of a proprietary design. Therefore, the spirit and scope of the invention are set out in the appended claims.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
Description
Claims (5)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/353,759 US5708813A (en) | 1994-12-12 | 1994-12-12 | Programmable interrupt signal router |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/353,759 US5708813A (en) | 1994-12-12 | 1994-12-12 | Programmable interrupt signal router |
Publications (1)
Publication Number | Publication Date |
---|---|
US5708813A true US5708813A (en) | 1998-01-13 |
Family
ID=23390447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/353,759 Expired - Lifetime US5708813A (en) | 1994-12-12 | 1994-12-12 | Programmable interrupt signal router |
Country Status (1)
Country | Link |
---|---|
US (1) | US5708813A (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5907712A (en) * | 1997-05-30 | 1999-05-25 | International Business Machines Corporation | Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler |
US5933648A (en) * | 1996-12-20 | 1999-08-03 | Intel Corporation | Configurable arbitration device for controlling the access of components to an arbiter or the like based on a control input |
US6081861A (en) * | 1998-06-15 | 2000-06-27 | International Business Machines Corporation | PCI migration support of ISA adapters |
US6192439B1 (en) * | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
US20030145147A1 (en) * | 2002-01-25 | 2003-07-31 | Dell Products L.P. | Information handling system with dynamic interrupt allocation apparatus and methodology |
US20060085582A1 (en) * | 2004-10-20 | 2006-04-20 | Hitachi, Ltd. | Multiprocessor system |
US20070067534A1 (en) * | 2005-09-16 | 2007-03-22 | Emulex Design & Manufacturing Corporation | Message signaled interrupt extended (MSI-X) auto clear and failsafe lock |
US20080082710A1 (en) * | 2006-09-29 | 2008-04-03 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US20100088446A1 (en) * | 2008-10-06 | 2010-04-08 | Texas Instruments Incorporated | Prioritizing interrupt controller |
US20160328339A1 (en) * | 2015-05-05 | 2016-11-10 | Microsoft Technology Licensing, Llc | Interrupt controller |
Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3828320A (en) * | 1972-12-29 | 1974-08-06 | Burroughs Corp | Shared memory addressor |
US3829839A (en) * | 1972-07-24 | 1974-08-13 | California Inst Of Techn | Priority interrupt system |
US4023143A (en) * | 1975-10-28 | 1977-05-10 | Cincinnati Milacron Inc. | Fixed priority interrupt control circuit |
US4282572A (en) * | 1979-01-15 | 1981-08-04 | Ncr Corporation | Multiprocessor memory access system |
US4413315A (en) * | 1979-02-05 | 1983-11-01 | Fujitsu Fanuc Limited | Addressing system |
US4420806A (en) * | 1981-01-15 | 1983-12-13 | Harris Corporation | Interrupt coupling and monitoring system |
US4438489A (en) * | 1980-09-27 | 1984-03-20 | International Business Machines Corporation | Interrupt pre-processor with dynamic allocation of priority levels to requests queued in an associative CAM |
US4628449A (en) * | 1983-11-14 | 1986-12-09 | Tandem Computers Incorporated | Vector interrupt system and method |
US4630041A (en) * | 1983-01-31 | 1986-12-16 | Honeywell Information Systems Italia | Enhanced reliability interrupt control apparatus |
US4698753A (en) * | 1982-11-09 | 1987-10-06 | Texas Instruments Incorporated | Multiprocessor interface device |
US4761732A (en) * | 1985-11-29 | 1988-08-02 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interrupt controller arrangement for mutually exclusive interrupt signals in data processing systems |
US4875157A (en) * | 1987-03-18 | 1989-10-17 | International Telesystems Corporation | Alternate memory addressing for information storage and retrieval |
US4967342A (en) * | 1984-08-17 | 1990-10-30 | Lent Robert S | Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing |
US5070447A (en) * | 1989-01-19 | 1991-12-03 | Sanyo Electric Co., Ltd. | Interrupt circuit and interrupt processing method for microcomputer |
US5083261A (en) * | 1983-11-03 | 1992-01-21 | Motorola, Inc. | Dynamically alterable interrupt priority circuit |
US5146595A (en) * | 1987-11-11 | 1992-09-08 | Fujitsu Limited | Grouping device for forming input signals into groups |
US5218703A (en) * | 1988-07-07 | 1993-06-08 | Siemens Aktiengesellschaft | Circuit configuration and method for priority selection of interrupts for a microprocessor |
US5257385A (en) * | 1991-12-30 | 1993-10-26 | Apple Computer, Inc. | Apparatus for providing priority arbitration in a computer system interconnect |
US5261107A (en) * | 1989-11-03 | 1993-11-09 | International Business Machines Corp. | Programable interrupt controller |
US5317747A (en) * | 1990-03-08 | 1994-05-31 | Hitachi, Ltd. | Multiprocessor system and interruption control device for controlling interruption requests between processors and peripheral devices in the multiprocessor system |
US5379434A (en) * | 1992-12-18 | 1995-01-03 | International Business Machines Corporation | Apparatus and method for managing interrupts in a multiprocessor system |
US5410708A (en) * | 1990-07-25 | 1995-04-25 | Kabushiki Kaisha Toshiba | Multi-register interrupt controller with multiple interrupt detection capability |
US5428799A (en) * | 1991-02-13 | 1995-06-27 | Hewlett-Packard Company | Redirection of interrupts to microprocessors |
-
1994
- 1994-12-12 US US08/353,759 patent/US5708813A/en not_active Expired - Lifetime
Patent Citations (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3829839A (en) * | 1972-07-24 | 1974-08-13 | California Inst Of Techn | Priority interrupt system |
US3828320A (en) * | 1972-12-29 | 1974-08-06 | Burroughs Corp | Shared memory addressor |
US4023143A (en) * | 1975-10-28 | 1977-05-10 | Cincinnati Milacron Inc. | Fixed priority interrupt control circuit |
US4282572A (en) * | 1979-01-15 | 1981-08-04 | Ncr Corporation | Multiprocessor memory access system |
US4413315A (en) * | 1979-02-05 | 1983-11-01 | Fujitsu Fanuc Limited | Addressing system |
US4438489A (en) * | 1980-09-27 | 1984-03-20 | International Business Machines Corporation | Interrupt pre-processor with dynamic allocation of priority levels to requests queued in an associative CAM |
US4420806A (en) * | 1981-01-15 | 1983-12-13 | Harris Corporation | Interrupt coupling and monitoring system |
US4698753A (en) * | 1982-11-09 | 1987-10-06 | Texas Instruments Incorporated | Multiprocessor interface device |
US4630041A (en) * | 1983-01-31 | 1986-12-16 | Honeywell Information Systems Italia | Enhanced reliability interrupt control apparatus |
US5083261A (en) * | 1983-11-03 | 1992-01-21 | Motorola, Inc. | Dynamically alterable interrupt priority circuit |
US4628449A (en) * | 1983-11-14 | 1986-12-09 | Tandem Computers Incorporated | Vector interrupt system and method |
US4967342A (en) * | 1984-08-17 | 1990-10-30 | Lent Robert S | Data processing system having plurality of processors and channels controlled by plurality of system control programs through interrupt routing |
US4761732A (en) * | 1985-11-29 | 1988-08-02 | American Telephone And Telegraph Company, At&T Bell Laboratories | Interrupt controller arrangement for mutually exclusive interrupt signals in data processing systems |
US4875157A (en) * | 1987-03-18 | 1989-10-17 | International Telesystems Corporation | Alternate memory addressing for information storage and retrieval |
US5146595A (en) * | 1987-11-11 | 1992-09-08 | Fujitsu Limited | Grouping device for forming input signals into groups |
US5218703A (en) * | 1988-07-07 | 1993-06-08 | Siemens Aktiengesellschaft | Circuit configuration and method for priority selection of interrupts for a microprocessor |
US5070447A (en) * | 1989-01-19 | 1991-12-03 | Sanyo Electric Co., Ltd. | Interrupt circuit and interrupt processing method for microcomputer |
US5261107A (en) * | 1989-11-03 | 1993-11-09 | International Business Machines Corp. | Programable interrupt controller |
US5317747A (en) * | 1990-03-08 | 1994-05-31 | Hitachi, Ltd. | Multiprocessor system and interruption control device for controlling interruption requests between processors and peripheral devices in the multiprocessor system |
US5410708A (en) * | 1990-07-25 | 1995-04-25 | Kabushiki Kaisha Toshiba | Multi-register interrupt controller with multiple interrupt detection capability |
US5428799A (en) * | 1991-02-13 | 1995-06-27 | Hewlett-Packard Company | Redirection of interrupts to microprocessors |
US5257385A (en) * | 1991-12-30 | 1993-10-26 | Apple Computer, Inc. | Apparatus for providing priority arbitration in a computer system interconnect |
US5379434A (en) * | 1992-12-18 | 1995-01-03 | International Business Machines Corporation | Apparatus and method for managing interrupts in a multiprocessor system |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933648A (en) * | 1996-12-20 | 1999-08-03 | Intel Corporation | Configurable arbitration device for controlling the access of components to an arbiter or the like based on a control input |
US5907712A (en) * | 1997-05-30 | 1999-05-25 | International Business Machines Corporation | Method for reducing processor interrupt processing time by transferring predetermined interrupt status to a system memory for eliminating PIO reads from the interrupt handler |
US6081861A (en) * | 1998-06-15 | 2000-06-27 | International Business Machines Corporation | PCI migration support of ISA adapters |
US6192439B1 (en) * | 1998-08-11 | 2001-02-20 | Hewlett-Packard Company | PCI-compliant interrupt steering architecture |
US20030145147A1 (en) * | 2002-01-25 | 2003-07-31 | Dell Products L.P. | Information handling system with dynamic interrupt allocation apparatus and methodology |
US6877057B2 (en) * | 2002-01-25 | 2005-04-05 | Dell Products L.P. | Information handling system with dynamic interrupt allocation apparatus and methodology |
US20060085582A1 (en) * | 2004-10-20 | 2006-04-20 | Hitachi, Ltd. | Multiprocessor system |
US20070067534A1 (en) * | 2005-09-16 | 2007-03-22 | Emulex Design & Manufacturing Corporation | Message signaled interrupt extended (MSI-X) auto clear and failsafe lock |
US7565471B2 (en) * | 2005-09-16 | 2009-07-21 | Emulex Design & Manufacturing Corporation | Message signaled interrupt extended (MSI-X) auto clear and failsafe lock |
US20080082710A1 (en) * | 2006-09-29 | 2008-04-03 | Dell Products L.P. | System and method for managing system management interrupts in a multiprocessor computer system |
US20100088446A1 (en) * | 2008-10-06 | 2010-04-08 | Texas Instruments Incorporated | Prioritizing interrupt controller |
US20160328339A1 (en) * | 2015-05-05 | 2016-11-10 | Microsoft Technology Licensing, Llc | Interrupt controller |
US9747225B2 (en) * | 2015-05-05 | 2017-08-29 | Microsoft Technology Licensing, Llc | Interrupt controller |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5038320A (en) | Computer system with automatic initialization of pluggable option cards | |
US6292859B1 (en) | Automatic selection of an upgrade controller in an expansion slot of a computer system motherboard having an existing on-board controller | |
US4373181A (en) | Dynamic device address assignment mechanism for a data processing system | |
CA1335843C (en) | Programmable option select | |
US4964038A (en) | Data processing system having automatic address allocation arrangements for addressing interface cards | |
JP3403284B2 (en) | Information processing system and control method thereof | |
EP0518488A1 (en) | Bus interface and processing system | |
KR100472391B1 (en) | Method and apparatus for initiating execution of an application processor in a clustered multiprocessor system | |
KR100764921B1 (en) | Virtual rom for device enumeration | |
US6434633B1 (en) | Method and apparatus for facilitating AC-link communications between a controller and a slow peripheral of a codec | |
KR100351653B1 (en) | Memory module identification | |
EP1125212B1 (en) | Apparatus and method for handling peripheral device interrupts | |
US5764996A (en) | Method and apparatus for optimizing PCI interrupt binding and associated latency in extended/bridged PCI busses | |
US5708813A (en) | Programmable interrupt signal router | |
US5301343A (en) | System having microprocessor local memory expansion capability through removable coupling of local memory expansion boards directly to the high speed microprocessor local bus | |
US6212587B1 (en) | Device proxy agent for hiding computing devices on a computer bus | |
US5329634A (en) | Computer system with automatic adapter card setup | |
JPH0644094A (en) | Computer-system detecting error of alternative system controller | |
US5797036A (en) | Apparatus which prepares a master map portraying location of devices relative to bus interface circuits and copying the pertinent portion of the master map to each bus interface circuits | |
US6321332B1 (en) | Flexible control of access to basic input/output system memory | |
JPH05107295A (en) | Test of integrated circuit device and method thereof | |
US6081861A (en) | PCI migration support of ISA adapters | |
US20030065846A1 (en) | System and method of determining the source of a codec | |
KR950005213B1 (en) | Pc w/alternate system controller | |
US6034919A (en) | Method and apparatus for using extended-data output memory devices in a system designed for fast page mode memory devices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: DIGITAL EQUIPMENT CORPORATION, MASSACHUSETTS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHO, HOE TO;YUAN, MING HUANN;REEL/FRAME:007386/0216 Effective date: 19950217 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: COMPAQ INFORMATION TECHNOLOGIES GROUP, L.P., TEXAS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DIGITAL EQUIPMENT CORPORATION;COMPAQ COMPUTER CORPORATION;REEL/FRAME:012447/0903;SIGNING DATES FROM 19991209 TO 20010620 |
|
AS | Assignment |
Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., TEXAS Free format text: CHANGE OF NAME;ASSIGNOR:COMPAQ INFORMANTION TECHNOLOGIES GROUP LP;REEL/FRAME:014102/0224 Effective date: 20021001 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |