An embodiment of the invention relates to the fields of data communications/transfer, interrupt management, and power management, and more specifically, relates to a method, apparatus, and system for generating serial interrupt requests (IRQ) with power savings.
As computer devices and systems continue to advance and become more complex, effective and efficient power management of computer devices and systems have become more and more important in system design and implementation. Typically, a computer system may include an input/output (I/O) control unit (also called I/O controller herein) that provides the interface control between various I/O or peripheral devices and a central processing unit (CPU) (also called host processor or host herein). The I/O controller can be a stand-alone unit, an integrated part of a chipset, or a part of some larger unit that controls the interfaces between various system components and the host processor. A typical I/o controller may include a serial interface unit (SIU) that controls serial interrupt requests (SERIRQ) protocol which allows a single signal to be used to report interrupt requests. Typically, the serial IRQ signal is provided to an interrupt controller via a serial IRQ signal line coupling between the SIU and the interrupt controller. Generally, a typical interrupt controller is responsible for accepting, prioritizing, and report interrupts requests that are initiated by peripheral devices to the host processor. The interrupt controller may be a stand-alone unit or an integrated part of the I/O controller, depending on the various system designs and configurations. The SIU is generally responsible for generating the serial IRQ signal to notify the interrupt controller of incoming interrupt requests. Typically, the SIU can operate in a continuous mode or a quiet mode. The quiet mode is used when the system wants to save power and the host will not keep polling the peripheral devices every frame to see if an interrupt has occurred. However, the majority of computer system platforms operate in the continuous mode. When the system operates in the continuous mode, generating the serial IRQ signal involves driving the serial IRQ signal line low for every serial IRQ frame if there is no pending interrupt request and then driving the serial IRQ signal line high when there is a pending interrupt request. Generation of the serial IRQ signal in this manner consumes more power and thus is not efficient, especially since power savings have become more and more critical in system design and implementation due to power, space, and area constraints.
As shown in
North Bridge ASIC 115 can generally serve as a controller for memory devices 130,135 and graphic devices 1451, . . . , 145N (where “N” is a positive integer). Memory devices 130 and 135 can include read-only memory (ROM) 130 and random access memory (RAM) 135. Unlike RAM 135, the contents in ROM 130 are not erased when power is turned off. Furthermore, users typically cannot modify the contents in ROM 130.
South Bridge ASIC 120 can generally serve as a controller for external peripheral devices 1401, . . . , 140P (where “P” is a positive integer). Examples of an external peripheral device 1401, . . . , 140P may include a hard disk, a keyboard, a mouse, a Universal Serial Bus (USB) peripheral such as a scanner, a printer, a keyboard, a mouse, or a removable media, and other legacy devices.
When a user turns a power on/off switch on, or presses a reset button, the computing device boots itself. Booting generally initiates BIOS (Basic Input/Output System) 235 typically included in ROM 130. BIOS 235 generally facilitates the transfer of data and instructions between the CPU 105 and peripheral devices. BIOS 235 can clear memory, execute diagnostics, and execute other tasks to prepare the computing device for use. When BIOS 235 performs a Power On System Test (POST), BIOS 235 can detect the peripheral devices and modify the configuration addresses of these peripheral devices.
South Bridge ASIC 120 can also include a bus-bridging device 210 that is operatively coupled to the system bus 125 and the auxiliary address, data, and control bus (or auxiliary bus) 215 to generally transfer data back and forth between the system bus 125 and the auxiliary bus 215. In one embodiment, the auxiliary bus 215 conforms to the Low Pin Count (LPC) Specification published by Intel® Corporation.
South Bridge ASIC 120 can further include a Serial Interface Unit (SIU) 220. In one embodiment, SIU 220 can include two standard Universal Asynchronous Receivers/Transmitters (UART). SIU 220 is generally a serial communication controller that is operatively coupled to a standard serial port to receive data signals from the serial port and to transmit data signals to the serial port. SIU 220 can also be operatively coupled to the auxiliary bus 215 in order to communicate with other components 105, 110, 115, 130, 135, 1401, . . . , 140P, 1451, . . . , 145N, 2051, . . . , 205R, 210 within the computing device 100.
South Bridge ASIC 120 can additionally include an interrupt controller 225 that is coupled to receive a serial interrupt request (SERIRQ) signal generated by the SIU 220 via the SERIRQ line 230. In one embodiment, the Interrupt controller 225 functions as a manager to accept interrupt requests from peripheral devices, prioritize them, and reporting these interrupt requests to the CPU 105. In this embodiment, the interrupt controller is configured to accept serial interrupt requests (SERIRQ) generated by the SIU 220 on the SERIRQ line 230. In this embodiment, the SERIRQ line 230 has a pull up resistor 235 that may exist outside of the South Bridge ASIC 120. The operations of the SIU 220, the interrupt controller 225 are described in more details below.
As described herein, the South Bridge ASIC 120 supports serial IRQ scheme or protocol to allow a single signal (e.g., SERIRQ) to be used to report interrupt requests initiated by peripheral or I/O devices.
The following is a general description of a standard serial IRQ protocol. In one embodiment, the signal line (SERIRQ) 230 is synchronous to the clock cycles of a PCI bus and follows the sustained tri-state protocol. The serial IRQ protocol defines the sustained tri-state signaling in the following fashion:
The serial IRQ protocol has two modes of operation, including:
The mode that is entered when enabling the serial IRQ protocol is the continuous mode. In the continuous mode, the I/O controller will assert the start frame. When the serial IRQ stream enters quiet mode, the SERIRQ line remains inactive and pulled up between the Stop and Start Frame until a peripheral drives the SERIRQ signal low. The I/O controller senses the line low and continues to drive it low for the remainder of the Start Frame. Since the first PCI clock of the start frame was driven by the peripheral in the quiet mode, the I/O controller drives the SERIRQ line low for 1 PCI clock less than in continuous mode. This mode of operation allows for a quiet and, therefore, lower power consumption.
Data Frames
Once the Start Frame has been initiated, all of the SERIRQ peripherals should start counting frames based on the rising edge of the SERIRQ. Each of the IRQ/DATA frames generally has three phases, including:
After all data frames, a Stop Frame is driven by the I/O controller. The SERIQ signal is driven low by I/O controller for 2 or 3 PCI clocks. The number of clocks is determined by the SERIQ configuration register. The number of clocks determines the next mode. If the next mode is the quiet mode, the width for the stop frame can span over two clock cycles. During the quiet mode, any SERIRQ device may initiate a Start Frame. In the next mode is the continuous mode, the width for the stop frame can span over three clock cycles. During the continuous mode, only the I/O controller may initiate a Start Frame.
Referring again to
To save power in the continuous mode, a global configuration register includes a bit that allows the UART interrupt to be generated once during continuous mode and flip the polarity of the serial IRQ generation so that power is minimized. During normal operation (also referred to as first operating mode or non-power-saving mode), if the internal UART interrupt line is low (there is no interrupt), the SIU 220 has to drive the serial IRQ line 230 low for every serial IRQ frame with respect to the UART specific slot. Once the internal UART interrupt line is high, then SIU 220 does not drive the serial IRQ line 230 because it has an external pull up resistor 235 to indicate a high in the SIU interrupt. This in turn will cause the interrupt controller 225 to detect a low to high transition and generate an interrupt to the CPU 105. When the system operates with the power saving feature (also called second operating mode or power-saving mode), if the internal interrupt line is low, the SIU 220 leaves the serial IRQ undriven until an interrupt is detected (e.g., until the internal interrupt line is high). At that time, the SIU 220 will drive the serial IRQ line 230 low for only one serial IRQ frame, then tri-state the next serial IRQ frame to cause a low to high transition so that the interrupt controller 225 can detect an interrupt. This power-saving feature according to one embodiment of the invention can save significant power because the SIU 220 does not drive the serial IRQ line 230 until an interrupt is detected and then only one frame is driven. As such, significant power saving can be achieved during continuous mode operation.
The following example illustrates an amount of power savings that may be achieved based on certain assumptions. In this example, it is assumed that each serial IRQ frame has a duration of approximately 60 PCI clock cycles, the external pull up resistor is about 100K, serial IRQ operates at approximately 33 MHz (e.g., PCI clock frequency) and 3.3 Volts. Based on system level simulation (SLS) data, the SIU may have an interrupt about 15% of the total system time or less. In this example, there are two UARTs each will drive the serial IRQ line low for one clock per frame and about 85% of the time. Thus, the power savings can be calculated as follows:
Power saving=1/60*2*3.3/100K*0.85=0.0935 uA per each serial IRQ frame.
Furthermore, it is assumed that each frame spans approximately 60 clock cycles, and each clock cycle takes about 30 ns. Therefore, in a second, there is approximately 5.6×10**5 frames. Thus, the total power savings would be about 52 mA per second. The calculation of the total power savings per second can be demonstrated using the following equation:
(1 second/(60*30 nsec))*0.0935 uA=52 mA per second.
The interrupt generation with power saving feature according to one embodiment of the invention as described above is compatible with an interrupt controller that operates in an edge triggered mode (edge detection). In the edge triggered mode, the serial IRQ line is required to be held high after the edge has occurred.
It should also be noted that the functional components, as shown in the figures and described above in the text accompanying the figures, could be implemented in hardware. However, these functional components can also be implemented using software code segments. Each of the code segments may include one or more programming instructions. If the aforementioned functional components are implemented using software code segments, these code segments can be stored on a machine-readable medium, such as floppy disk, hard drive, CD-ROM, DVD, tape, memory, or any storage device that is accessible by a computing machine.
While certain exemplary embodiments have been described and shown in accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.
Number | Name | Date | Kind |
---|---|---|---|
5327121 | Antles, II | Jul 1994 | A |
5367695 | Narad et al. | Nov 1994 | A |
5392407 | Heil et al. | Feb 1995 | A |
5499346 | Amini et al. | Mar 1996 | A |
5524235 | Larson et al. | Jun 1996 | A |
5537654 | Bedingfield et al. | Jul 1996 | A |
5548730 | Young et al. | Aug 1996 | A |
5555430 | Gephardt et al. | Sep 1996 | A |
5579522 | Christeson et al. | Nov 1996 | A |
5761458 | Young et al. | Jun 1998 | A |
5790849 | Crocker et al. | Aug 1998 | A |
5845136 | Babcock | Dec 1998 | A |
5848278 | Sakai | Dec 1998 | A |
5854905 | Garney | Dec 1998 | A |
5881294 | Downey et al. | Mar 1999 | A |
5884085 | Sakai et al. | Mar 1999 | A |
6047373 | Hall et al. | Apr 2000 | A |
6256731 | Hall et al. | Jul 2001 | B1 |
6714990 | Autio et al. | Mar 2004 | B1 |
Number | Date | Country | |
---|---|---|---|
20030212844 A1 | Nov 2003 | US |