|Publication number||US7386646 B2|
|Application number||US 11/213,009|
|Publication date||Jun 10, 2008|
|Filing date||Aug 25, 2005|
|Priority date||Aug 25, 2005|
|Also published as||US20070067533|
|Publication number||11213009, 213009, US 7386646 B2, US 7386646B2, US-B2-7386646, US7386646 B2, US7386646B2|
|Inventors||Kimming So, Baobinh N. Truong, Jason Leonard|
|Original Assignee||Broadcom Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (9), Referenced by (5), Classifications (11), Legal Events (2)|
|External Links: USPTO, USPTO Assignment, Espacenet|
Concurrent Multithread (CMT) Processors contain multiple hardware thread units, each multithread processor can execute a program simultaneously. Interrupt control of a CMT processor may be required for many applications, e.g. digital signal processing (DSP). DSP applications can have program modules that operate at different levels of priority. An operation system may be required to preempt one program module in order to execute another program module of higher priority.
Limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the present application with reference to the drawings.
Aspects of the present invention may be found in a multithread processor, multiprocessor systems, or multi-core systems. The present invention discloses systems and methods for interrupt distribution. A connection between an interrupt and a set of processors can be programmed. When the interrupt is executed, the set of processors are affected. While executing the processor tasks, the connection may be reprogrammed to interrupt another set of processors.
These and other advantages, aspects and novel features of the present invention, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings.
Aspects of the present invention relate to interrupt distribution and more specifically, to interrupt distribution in a concurrent multithread processor. Although the following description may refer to a particular number of interrupts and thread processors (TPs), other configurations for interrupt distribution can be designed that have a differing number of interrupts and/or thread processors without departing from the spirit and scope of the present invention. The number of interrupts may be different than the number of thread processors.
The CMT processor 101 contains a set of execution elements, called the thread processors (TPs) 103, 105, and 107. Each TP 103, 105, and 107 can execute a program independently and receive external interrupts. TPs 103, 105, and 107 can share system resources such as a system interface 109, a translation look-aside buffer (TLB) 111, an instruction cache 113, and a data cache 115.
Interrupts 119, 121, and 123 can be connected in various combinations at 125, 127, and 129 to TPs 103, 105, and 107. Each interrupt 119, 121, and 123 may also comprise more than one interrupt command. The combinations of connections can be controlled dynamically by a programmable input 149.
The programmable input 149 can come from the IDT 118. The IDT 118 can be kept in the CPU control registers or shared memory locations that are accessible when the CPU or the accessing TP is in kernel mode. The values in the IDT 118 can be reprogrammed so that the interrupts 119, 121, and 123 can be re-assigned or re-distributed to TPs 103, 105, and 107 at runtime.
In the example of
In the example of
A connection is programmed between an interrupt and a set of thread processors at 401. The IDT 203 in
At 403, the interrupt is executed, thereby interrupting the set of thread processors. The interrupt may be generated by a real time operating system that prioritizes tasks handled by thread processors. Depending on the priority of the interrupt, only a subset of thread processors may require the communication of an interrupt.
The present invention is not limited to the particular aspects described. Variations of the examples provided above may be applied to a variety of multithread processors without departing from the spirit and scope of the present invention.
Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in an integrated circuit or in a distributed fashion where different elements are spread across several circuits. Any kind of computer system or other apparatus adapted for carrying out the methods described herein is suited. A typical combination of hardware and software may be a general-purpose computer system with a computer program that, when being loaded and executed, controls the computer system such that it carries out the methods described herein.
The present invention may also be embedded in a computer program product, which comprises all the features enabling the implementation of the methods described herein, and which when loaded in a computer system is able to carry out these methods. Computer program in the present context means any expression, in any language, code or notation, of a set of instructions intended to cause a system having an information processing capability to perform a particular function either directly or after either or both of the following: a) conversion to another language, code or notation; b) reproduction in a different material form.
While the present invention has been described with reference to certain embodiments, it will be understood by those skilled in the art that various changes may be made and equivalents may be substituted without departing from the scope of the present invention. In addition, many modifications may be made to adapt a particular situation or material to the teachings of the present invention without departing from its scope. Therefore, it is intended that the present invention not be limited to the particular embodiment disclosed, but that the present invention will include all embodiments falling within the scope of the appended claims.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5987538 *||Aug 15, 1997||Nov 16, 1999||Compaq Computer Corporation||Apparatus for initiating generation of an inter-processor interrupt by a peripheral device not directly connected to any of the multi-processor local interrupt controllers|
|US6275749 *||Dec 22, 1998||Aug 14, 2001||Philips Electronics North America Corporation||Interrupt-controlled thread processing|
|US6370606 *||Nov 5, 1998||Apr 9, 2002||Compaq Computer Corporation||System and method for simulating hardware interrupts in a multiprocessor computer system|
|US6701429 *||Nov 22, 1999||Mar 2, 2004||Telefonaktiebolaget Lm Ericsson(Publ)||System and method of start-up in efficient way for multi-processor systems based on returned identification information read from pre-determined memory location|
|US6779065 *||Aug 31, 2001||Aug 17, 2004||Intel Corporation||Mechanism for interrupt handling in computer systems that support concurrent execution of multiple threads|
|US6813665 *||Sep 21, 2001||Nov 2, 2004||Intel Corporation||Interrupt method, system and medium|
|US6952749 *||May 2, 2001||Oct 4, 2005||Portalplayer, Inc.||Multiprocessor interrupt handling system and method|
|US20030200250 *||Apr 24, 2002||Oct 23, 2003||Kiick Chris J.||System and method for automatically tuning a multiprocessor computer system|
|US20050060460 *||Aug 20, 2003||Mar 17, 2005||International Business Machines Corporation||Assigning interrupts for input/output (I/O) devices among nodes of a non-uniform memory access (NUMA) system|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8407387 *||Sep 25, 2009||Mar 26, 2013||Renesas Electronics Corporation||Multi-thread processor and the multi-thread processor's interrupt processing method having interrupt processing that is processed by an associated hardware thread|
|US8639850||Feb 2, 2012||Jan 28, 2014||Cypress Semiconductor Corp.||Addressing scheme to allow flexible mapping of functions in a programmable logic array|
|US8838852 *||Mar 8, 2012||Sep 16, 2014||Cypress Semiconductor Corporation||Programmable interrupt routing system|
|US9032127 *||Sep 14, 2006||May 12, 2015||Hewlett-Packard Development Company, L.P.||Method of balancing I/O device interrupt service loading in a computer system|
|US20080071947 *||Sep 14, 2006||Mar 20, 2008||Fischer Matthew L||Method of balancing I/O device interrupt service loading in a computer system|
|U.S. Classification||710/260, 710/267|
|Cooperative Classification||G06F13/24, G06F9/3885, G06F9/4812, G06F9/3851|
|European Classification||G06F13/24, G06F9/38T, G06F9/38E4, G06F9/48C2|
|Nov 3, 2005||AS||Assignment|
Owner name: BROADCOM CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SO, KIMMING;TRUONG, BAOBINH N.;LEONARD, JASON;REEL/FRAME:016977/0349
Effective date: 20050825
|Nov 28, 2011||FPAY||Fee payment|
Year of fee payment: 4