US7702889B2 - Shared interrupt control method and system for a digital signal processor - Google Patents
Shared interrupt control method and system for a digital signal processor Download PDFInfo
- Publication number
- US7702889B2 US7702889B2 US11/253,906 US25390605A US7702889B2 US 7702889 B2 US7702889 B2 US 7702889B2 US 25390605 A US25390605 A US 25390605A US 7702889 B2 US7702889 B2 US 7702889B2
- Authority
- US
- United States
- Prior art keywords
- interrupt
- processing
- interrupts
- thread
- threads
- 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.)
- Active, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 94
- 230000008569 process Effects 0.000 claims description 18
- 230000000873 masking effect Effects 0.000 claims description 12
- 230000006854 communication Effects 0.000 abstract description 16
- 238000004891 communication Methods 0.000 abstract description 16
- 230000005540 biological transmission Effects 0.000 abstract description 3
- 238000013461 design Methods 0.000 abstract description 3
- 230000026676 system process Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 11
- 230000008901 benefit Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 102100024210 CD166 antigen Human genes 0.000 description 4
- 101000980840 Homo sapiens CD166 antigen Proteins 0.000 description 4
- 235000019800 disodium phosphate Nutrition 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000001228 spectrum Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000002059 diagnostic imaging Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
Definitions
- the disclosed subject matter relates to data communications. More particularly, this disclosure relates to a novel and improved shared interrupt control method and system for a digital signal processor.
- DSP digital signal processor
- CDMA code division multiple access
- a CDMA system is typically designed to conform to one or more standards.
- One such first generation standard is the “TIA/EIA/IS-95 Terminal-Base Station Compatibility Standard for Dual-Mode Wideband Spread Spectrum Cellular System,” hereinafter referred to as the IS-95 standard.
- the IS-95 CDMA systems are able to transmit voice data and packet data.
- a newer generation standard that can more efficiently transmit packet data is offered by a consortium named “3 rd Generation Partnership Project” (3GPP) and embodied in a set of documents including Document Nos. 3G TS 25.211, 3G TS 25.212, 3G TS 25.213, and 3G TS 25.214, which are readily available to the public.
- the 3GPP standard is hereinafter referred to as the W-CDMA standard.
- DSPs are intended for operation in real-time systems, efficient, sophisticated, and predictable interrupt handling is critical to a DSP.
- Context switches should be very fast.
- Advanced DSPs like floating-point family support complete sets of alternative registers, allowing a single-cycle switch of context to support interrupt handling.
- An advanced DSP may support at least four or more independent external interrupts in addition to internal interrupts. Interrupt latency in such devices can be kept to just a few cycles and must be predictable. Interrupts should also be nestable and prioritizable. In addition, it should be easy to enable and disable particular interrupts in real time.
- Techniques for providing a shared interrupt control method and system for a digital signal processor are disclosed, which techniques improve both the operation of a digital signal processor and the efficient use of digital signal processor instructions for processing increasingly robust software applications for personal computers, personal digital assistants, wireless handsets, and similar electronic devices, as well as increasing the associated digital processor speed and service quality.
- a shared interrupt control method and system for a digital signal processor that receives in an interrupt register a plurality of interrupts of a statistically indeterminate interrupt type.
- the method and system associate a plurality of processing threads with the interrupt register for receiving the interrupt from the interrupt register. Then, the plurality of processing threads are masked so as to receive within each of the threads only ones of the plurality of interrupts of one or more predetermined types, thereby controlling on a per thread basis the processing of the plurality of interrupts according to the mask associated with a particular thread.
- a method and system for processing an external interrupt in a digital signal processor serving multiple threads which method and system include associating an interrupt controller with a plurality of processor pipeline threads. The process further receives a first external interrupt in the interrupt controller, the first external interrupt being of an arbitrary type. Then, the process associates a first mask with the first external interrupt for enabling a set of the plurality of processor pipeline threads to accept the first external interrupt. The disclose subject matter then directs the first external interrupt to a first available processor pipeline thread capable of accepting the first external interrupt and the first mask. The method and system then allow receiving a second external interrupt in the interrupt controller.
- the second external interrupt may be of an arbitrary type and associates a second mask with the second external interrupt for enabling a set of the plurality of processor pipeline threads to accept the second external interrupt.
- the second external interrupt is directed to a next available processor pipeline thread capable of accepting the second external interrupt and the second mask. This process may be repeated and the disclosed system permits repeating the receiving steps, the associating steps, and the directing steps as external interrupts stream to the interrupt controller for processing by the digital signal processor, thereby providing to each of the set of the plurality of processor pipeline threads a flow of arbitrary external interrupts and associated masks in a distributed flow.
- Another example embodiment of the present invention is directed to a computer usable medium having computer readable program code means embodied therein for processing instructions on digital signal processor, the computer usable medium including computer readable program code means for receiving in an interrupt register a plurality of interrupts of a statistically indeterminate interrupt type, computer readable program code means for associating a plurality of processing threads with said interrupt register for receiving said interrupt from said interrupt register, computer readable program code means for masking at least a subset of said plurality of processing threads so as to receive within each of said threads within said subset only ones of said plurality of interrupts of one or more predetermined types, thereby controlling on a per thread basis the processing of said plurality of interrupts according to the mask associated with a particular thread.
- the computer readable program code means for masking said at least a subset of said plurality of processing threads may use a mask selected from a programmable set of masks corresponding to a predetermined set of interrupt types.
- FIG. 1 is a simplified block diagram of a communications system that can implement the present embodiment
- FIG. 2 illustrates a DSP architecture for carrying forth the teachings of the present embodiment
- FIG. 3 provides an architecture block diagram of one embodiment of a digital signal processor providing the technical advantages of the disclosed subject matter
- FIG. 4 presents a functional block diagram of the event handling of the disclosure
- FIG. 5 shows a mask register format for use with the disclosed subject matter
- FIG. 6 presents a pending interrupt register format for use with the disclosed subject matter.
- FIG. 7 provides a simplified flow diagram illustrating certain novel functions of the disclosed subject matter.
- FIG. 1 provides a simplified block diagram of a communications system 10 that can implement the presented embodiments of the disclosed interrupt processing method and system.
- a transmitter unit 12 data is sent, typically in blocks, from a data source 14 to a transmit (TX) data processor 16 that formats, codes, and processes the data to generate one or more analog signals.
- TX transmit
- the analog signals are then provided to a transmitter (TMTR) 18 that modulates, filters, amplifies, and up converts the baseband signals to generate a modulated signal.
- the modulated signal is then transmitted via an antenna 20 to one or more receiver units.
- the transmitted signal is received by an antenna 24 and provided to a receiver (RCVR) 26 .
- the received signal is amplified, filtered, down converted, demodulated, and digitized to generate in phase (I) and (Q) samples.
- the samples are then decoded and processed by a receive (RX) data processor 28 to recover the transmitted data.
- the decoding and processing at receiver unit 22 are performed in a manner complementary to the coding and processing performed at transmitter unit 12 .
- the recovered data is then provided to a data sink 30 .
- Communications system 10 can be a code division multiple access (CDMA) system, a time division multiple access (TDMA) communications system (e.g., a GSM system), a frequency division multiple access (FDMA) communications system, or other multiple access communications system that supports voice and data communication between users over a terrestrial link.
- CDMA code division multiple access
- TDMA time division multiple access
- FDMA frequency division multiple access
- communications system 10 is a CDMA system that conforms to the W-CDMA standard.
- FIG. 2 illustrates DSP 40 architecture that may serve as the transmit data processor 16 and receive data processor 28 of FIG. 1 .
- DSP 40 only represents one embodiment among a great many of possible digital signal processor embodiments that may effectively use the teachings and concepts here presented.
- threads T 0 :T 5 (reference numerals 42 through 52 )
- Circuit 54 represents the instruction access mechanism and is used for fetching instructions for threads T 0 :T 5 . Instructions for circuit 54 are queued into instruction queue 56 . Instructions in instruction queue 56 are ready to be issued into processor pipeline 66 (see below).
- a single thread e.g., thread T 0
- Register file 60 of selected thread is read and read data is sent to execution data paths 62 for SLOT 0 through SLOT 3 .
- Slot 0 through SLOT 3 in this example, provide for the packet grouping combination employed in the present embodiment.
- Output from execution data paths 62 goes to register file write circuit 64 , also configured to accommodate individual threads T 0 :T 5 , for returning the results from the operations of DSP 40 .
- register file write circuit 64 also configured to accommodate individual threads T 0 :T 5 , for returning the results from the operations of DSP 40 .
- the data path from circuit 54 and before to register file write circuit 64 being portioned according to the various threads forms a processing pipeline 66 .
- the present embodiment may employ a hybrid of a heterogeneous element processor (HEP) system using a single microprocessor with up to six threads, T 0 :T 5 .
- Processor pipeline 66 has six stages, matching the minimum number of processor cycles necessary to fetch a data item from circuit 54 to registers 60 and 64 .
- DSP 40 concurrently executes instructions of different threads T 0 :T 5 within a processor pipeline 66 . That is, DSP 40 provides six independent program counters, an internal tagging mechanism to distinguish instructions of threads T 0 :T 5 within processor pipeline 66 , and a mechanism that triggers a thread switch. Thread-switch overhead varies from zero to only a few cycles.
- FIG. 3 provides a brief overview of the DSP 40 architecture, including some aspects of the associated instruction set architecture for one manifestation of the disclosed subject matter.
- Implementations of the DSP 40 architecture support interleaved multithreading (IMT).
- IMT interleaved multithreading
- the hardware supports concurrent execution of multiple hardware threads T 0 :T 5 by interleaving instructions from different threads in the pipeline. This feature allows DSP 40 to include an aggressive clock frequency while still maintaining high core and memory utilization.
- IMT provides high throughput without the need for expensive compensation mechanisms such as out-of-order execution, extensive forwarding networks, and so on.
- the DSP 40 may include variations of IMT, such as those variations and novel approaches disclosed in the commonly-assigned U.S. Patent Applications by M. Ahmed, et al, Ser. No. 11/080 239 and entitled “Variable Interleaved Multithreaded Processor Method and System” and Ser. No. 11/089.474 “Method and System for Variable Thread Allocation and Switching in a Multithreaded Processor.”
- FIG. 3 provides an architecture block diagram of one embodiment of a programming model for a single thread that may employ the teachings of the disclosed subject matter, including a shared interrupt control method and system for a digital signal processor.
- Block diagram 70 depicts private instruction caches 72 which receive instructions from AXI Bus 74 , which instructions include mixed 16-bit and 32-bit instructions to sequencer 76 , user control register 78 , and supervisor control register 80 of threads T 0 :T 5 .
- Sequencer 76 provides hybrid two-way superscalar instructions and four-way VLIW instructions to S-Pipe unit 82 , M-Pipe unit 84 , Ld-Pipe 86 , and Ld/St- Pipe unit 88 .
- AXI Bus 74 also communicates with shared data cache 90 LD/ST instructions to threads T 0 :T 5 .
- shared data cache 90 LD/ST instructions to threads T 0 :T 5 .
- shared data TOM 98 communicates LD/ST instructions, which LD/ST instructions further flow to threads T 0 :T 5 .
- MSM specific controller 102 communicates interrupt pins with T 0 :T 5 , including interrupt controller instructions, debugging instructions, and timing instructions.
- Global control registers 102 communicates control register instructions with threads T 0 :T 5 .
- FIG. 4 presents a functional block diagram of the event handling of the disclosure.
- MSM specific blocks 112 include interrupt controller block 114 , debug and performance monitor block 116 , and timers block 118 .
- MSM specific blocks 112 provides sixteen (16) general interrupts 120 to global control register 122 and non-maskable interrupts (NMI) 124 to event handling register 126 .
- Global control register 122 includes IPEND register 128 , vector base register 130 , mode control register 132 . From IPEND Register 128 , 16 interrupt types 129 may go to event handling register 126 .
- Vector base register 130 may send 20 interrupts 131 to event handling register 126 , while mode control register 132 may provide a 1 .times.6 reset interrupt 133 to event handling register 126 .
- Event handling register 126 includes interrupt mask (IMASK) register 134 , which provides masks data to process event register 136 .
- Process event register 136 also receives internal exception requests, including TLB miss, error, and trap instruction requests. From global control registers 122 communications occur with general instructions registers (R 0 -R 31 ) 90 and supervisor control register 80 .
- IMASK interrupt mask
- interrupt processing with the disclosed subject matter includes three types of external interrupts, which include the soft reset interrupt 133 , general maskable interrupts 120 , 129 , and 131 , and the non-maskable interrupt 124 .
- An important aspect of the disclosed subject matter benefits from the randomness of the qualified threads and maskable interrupts. That is, it cannot be determined which of the qualified threads will service the interrupt, because the process and the arrival of any given type of interrupt is random.
- the hardware will choose a thread from the qualified set, that thread will be interrupted, and the interrupt will then be cleared from IPEND register 128 so that no further threads will service that interrupt.
- the software may direct particular interrupts to particular hardware threads with appropriate IMASK register 134 programming. For example, if only hardware thread T 1 :T 5 has the IMASK bit for interrupt 6 set, then only hardware thread T 1 :T 5 may receive that interrupt.
- the machine When an interrupt is accepted by a thread, the machine will first clear the appropriate bit in IPEND register 128 . Interrupts will then be disabled for the chosen thread, the exception bit will be set to indicate the thread is now in supervisor mode, the cause field in SSR will be filled with the interrupt number, and the machine will jump to the appropriate interrupt service routine.
- FIG. 5 shows a mask register format 140 for use with the disclosed subject matter, which includes IMASK bits 0 through 15 for containing the particular mask. Bits 16 through 31 may be reserved for the present embodiment, while permitting the establishment.
- Mask register 140 therefore, contains 16-bit read/write field 142 for the mask allowing software to individually mask off each of the 16 external interrupts 120 from interrupt controller 114 . If a particular bit in the mask field 142 is set, then that corresponding interrupt of the 16 external interrupts 120 is enabled and will be accepted by this thread. Alternatively, if the bit is clear, then that corresponding interrupt will not be accepted.
- FIG. 6 presents an example of the IPEND register format 150 for one embodiment of the disclosed subject matter.
- IPEND register format 150 includes reserved field 152 , which may be filled in later versions and IPEND register bit field 154 for containing the general interrupt type bits.
- bit 0 assumes a 1 value designating the highest priority interrupt type.
- the lowest priority interrupt type may be designated by bit 15 assuming the value 1.
- FIG. 7 provides flow diagram 160 for illustrating certain novel functions of the disclosed subject matter in determining that a particular thread T 0 :T 5 may process a given interrupt type.
- Flow diagram 160 begins as step 162 , at which point interrupt controller 114 provides at least a subset of 16 general interrupt types 120 to IPEND register 128 of general control register 122 .
- IMASK register 134 may store one or more masks for associating with the various threads T 0 :T 5 of DSP 40 .
- flow diagram 160 first determines whether thread interrupt processing is enabled for a particular thread at query 166 .
- the process determines that the particular thread is not operating as an exception handler.
- the process determines that the particular thread is not operating as an exception handler.
- a test of whether the result is non-zero occurs, thereby determining a match between the IPEND register 128 and IMASK register 134 contents. If a non-zero result occurs, then flow continues to step 172 at which the particular thread processes an interrupt corresponding to the particular mask. If the tests of any of queries 166 , 168 , or 170 fails, then processing goes to step 174 at which process flow 160 determines that the thread cannot process the interrupt(s) being examined.
- the present embodiment may not support automatic nesting of interrupts in DSP 40 hardware.
- nesting may be performed under software control by first saving all relevant information to the supervisor stack upon receiving an interrupt. Then, the process may re-enable interrupts, perform the relevant ISR task, then disable interrupts, restore to context, and return.
- An example of such a process may be for following:
- R0 #0x4 // 100b
- SSR R1 // now in supervisor mode, interrupts enabled .. //do ISR task // .... // now, we want to restore and return DI // disable interrupts CRSWAP (R29,SGPR0) // swap user stack pointer and supervisor stack
- a software interrupt instruction causes a specified interrupt to be posted in IPEND register 128 .
- the purpose of this instruction is to allow threads to interrupt one another. When one thread executes a SWI instruction, it is processed through the normal external interrupt mechanism. A random hardware thread from the set of qualified threads will be interrupted in response to the SWI instruction.
- This instruction can be used to construct software abstractions such as fork( ), join( ), etc.
- the soft reset interrupt is non-maskable and operates on a per-thread basis.
- One reset interrupt input exists for each of the six threads.
- the subsystem interrupt controller can individually reset threads. The exact methods for triggering a soft reset interrupt to a particular thread are interrupt controller specific, however, one way to cause a soft reset exception is to invoke a transition from OFF mode on supervisor mode.
- the thread Upon receiving the non-maskable soft reset interrupt, the thread will clear the SSR register, and jump to the reset vector.
- event handling circuitry 110 may choose at random one of the six threads T 0 :T 5 and deliver the NMI 124 to that thread. The chosen thread then will perform the following actions:
- DSP 40 performs the above-described operations
- present embodiments may be implemented in an application specific integrated circuit (ASIC), a microcontroller, a microprocessor, or other electronic circuits designed to perform the functions described herein.
- ASIC application specific integrated circuit
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Bus Control (AREA)
- Advance Control (AREA)
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/253,906 US7702889B2 (en) | 2005-10-18 | 2005-10-18 | Shared interrupt control method and system for a digital signal processor |
CNA2006800468157A CN101331450A (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
PCT/US2006/040759 WO2007047784A2 (en) | 2005-10-18 | 2006-10-18 | Shared interrupt control method and system for a digital signal processor |
CN201410720684.2A CN104484159B (zh) | 2005-10-18 | 2006-10-18 | 用于数字信号处理器的共享中断控制方法及系统 |
EP06826211.2A EP1941352B1 (en) | 2005-10-18 | 2006-10-18 | Shared interrupt control method and system for a digital signal processor |
US11/954,615 US7984281B2 (en) | 2005-10-18 | 2007-12-12 | Shared interrupt controller for a multi-threaded processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/253,906 US7702889B2 (en) | 2005-10-18 | 2005-10-18 | Shared interrupt control method and system for a digital signal processor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/954,615 Continuation-In-Part US7984281B2 (en) | 2005-10-18 | 2007-12-12 | Shared interrupt controller for a multi-threaded processor |
Publications (2)
Publication Number | Publication Date |
---|---|
US20070088938A1 US20070088938A1 (en) | 2007-04-19 |
US7702889B2 true US7702889B2 (en) | 2010-04-20 |
Family
ID=37949468
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/253,906 Active 2026-04-30 US7702889B2 (en) | 2005-10-18 | 2005-10-18 | Shared interrupt control method and system for a digital signal processor |
Country Status (4)
Country | Link |
---|---|
US (1) | US7702889B2 (zh) |
EP (1) | EP1941352B1 (zh) |
CN (2) | CN101331450A (zh) |
WO (1) | WO2007047784A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100077399A1 (en) * | 2008-09-19 | 2010-03-25 | Qualcomm Incorporated | Methods and Systems for Allocating Interrupts In A Multithreaded Processor |
US8473728B2 (en) * | 2006-08-14 | 2013-06-25 | Marvell World Trade Ltd. | Interrupt handling |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7984281B2 (en) * | 2005-10-18 | 2011-07-19 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
JP5212357B2 (ja) * | 2007-03-12 | 2013-06-19 | 富士通株式会社 | マルチcpu異常検出復旧システム、方法及びプログラム |
KR102365113B1 (ko) * | 2015-05-27 | 2022-02-18 | 삼성전자주식회사 | 적응적 인터럽트 처리 방법 및 장치와 이를 적용하는 호스트, i/o 디바이스 및 시스템 |
CN106681816A (zh) * | 2016-12-27 | 2017-05-17 | 深圳开立生物医疗科技股份有限公司 | PCIe中断方法和系统 |
CN109522048B (zh) * | 2017-09-18 | 2023-05-23 | 展讯通信(上海)有限公司 | 一种同步多线程中断验证方法及系统 |
CN112306217B (zh) * | 2020-10-28 | 2023-07-18 | 瑞芯微电子股份有限公司 | 一种显示变频方法和系统 |
US20230169163A1 (en) * | 2021-11-29 | 2023-06-01 | Nxp B.V. | Software isolation using event driven multi-threading |
Citations (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4689739A (en) | 1983-03-28 | 1987-08-25 | Xerox Corporation | Method for providing priority interrupts in an electrophotographic machine |
US4901307A (en) | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US5103459A (en) | 1990-06-25 | 1992-04-07 | Qualcomm Incorporated | System and method for generating signal waveforms in a cdma cellular telephone system |
US5193187A (en) | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
US5305455A (en) * | 1990-12-21 | 1994-04-19 | International Business Machines Corp. | Per thread exception management for multitasking multithreaded operating system |
US5410708A (en) | 1990-07-25 | 1995-04-25 | Kabushiki Kaisha Toshiba | Multi-register interrupt controller with multiple interrupt detection capability |
US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
US5805922A (en) | 1994-05-02 | 1998-09-08 | Motorola, Inc. | Queued serial peripheral interface having multiple queues for use in a data processing system |
US5848278A (en) | 1995-09-29 | 1998-12-08 | Kabushiki Kaisha Toshiba | Serial interrrupt control system in a system in which a plurality of interrupt requesters are connected to a serial bus |
US6032245A (en) | 1997-08-18 | 2000-02-29 | International Business Machines Corporation | Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads |
US6061710A (en) | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US6108781A (en) | 1997-07-31 | 2000-08-22 | Intel Corporation | Bootstrap processor selection architecture in SMP system |
US6163829A (en) | 1998-04-17 | 2000-12-19 | Intelect Systems Corporation | DSP interrupt control for handling multiple interrupts |
US6233599B1 (en) * | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US6253304B1 (en) | 1999-01-04 | 2001-06-26 | Advanced Micro Devices, Inc. | Collation of interrupt control devices |
US6260057B1 (en) * | 1995-03-01 | 2001-07-10 | Sun Microsystems, Inc. | Apparatus and method for high performance implementation of system calls |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US6381676B2 (en) * | 1998-05-27 | 2002-04-30 | Hewlett-Packard Company | Cache management for a multi-threaded processor |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US20020144004A1 (en) * | 2001-03-29 | 2002-10-03 | Gaur Daniel R. | Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing |
US20020161957A1 (en) * | 2001-02-09 | 2002-10-31 | Guillaume Comeau | Methods and systems for handling interrupts |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US20030154234A1 (en) * | 1999-09-16 | 2003-08-14 | Aaron Raymond Larson | Method for time partitioned application scheduling in a computer operating system |
US20030225955A1 (en) | 2000-12-15 | 2003-12-04 | Feldstein Andy A. | Data modem |
US20040073910A1 (en) * | 2002-10-15 | 2004-04-15 | Erdem Hokenek | Method and apparatus for high speed cross-thread interrupts in a multithreaded processor |
US20050050305A1 (en) | 2003-08-28 | 2005-03-03 | Kissell Kevin D. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US20060037020A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
US20060130061A1 (en) * | 2004-12-09 | 2006-06-15 | Bauer Robert T | Use of rollback RCU with read-side modifications to RCU-protected data structures |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US20060206902A1 (en) | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US20060218559A1 (en) | 2005-03-23 | 2006-09-28 | Muhammad Ahmed | Method and system for variable thread allocation and switching in a multithreaded processor |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US7124283B2 (en) | 2002-06-26 | 2006-10-17 | Renesas Technology Corp. | Hardware accelerator for a platform-independent code |
US7203823B2 (en) * | 2003-01-09 | 2007-04-10 | Sony Corporation | Partial and start-over threads in embedded real-time kernel |
US20080091867A1 (en) | 2005-10-18 | 2008-04-17 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6928502B2 (en) * | 2003-01-31 | 2005-08-09 | Via Telecom Co., Ltd. | Method and apparatus for processing interrupts at dynamically selectable prioritization levels |
US7013383B2 (en) * | 2003-06-24 | 2006-03-14 | Via-Cyrix, Inc. | Apparatus and method for managing a processor pipeline in response to exceptions |
-
2005
- 2005-10-18 US US11/253,906 patent/US7702889B2/en active Active
-
2006
- 2006-10-18 CN CNA2006800468157A patent/CN101331450A/zh active Pending
- 2006-10-18 CN CN201410720684.2A patent/CN104484159B/zh not_active Expired - Fee Related
- 2006-10-18 EP EP06826211.2A patent/EP1941352B1/en not_active Not-in-force
- 2006-10-18 WO PCT/US2006/040759 patent/WO2007047784A2/en active Application Filing
Patent Citations (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4689739A (en) | 1983-03-28 | 1987-08-25 | Xerox Corporation | Method for providing priority interrupts in an electrophotographic machine |
US4901307A (en) | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US5193187A (en) | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers |
US5103459A (en) | 1990-06-25 | 1992-04-07 | Qualcomm Incorporated | System and method for generating signal waveforms in a cdma cellular telephone system |
US5103459B1 (en) | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
US5410708A (en) | 1990-07-25 | 1995-04-25 | Kabushiki Kaisha Toshiba | Multi-register interrupt controller with multiple interrupt detection capability |
US5305455A (en) * | 1990-12-21 | 1994-04-19 | International Business Machines Corp. | Per thread exception management for multitasking multithreaded operating system |
US5524250A (en) * | 1991-08-23 | 1996-06-04 | Silicon Graphics, Inc. | Central processing unit for processing a plurality of threads using dedicated general purpose registers and masque register for providing access to the registers |
US5805922A (en) | 1994-05-02 | 1998-09-08 | Motorola, Inc. | Queued serial peripheral interface having multiple queues for use in a data processing system |
US6260057B1 (en) * | 1995-03-01 | 2001-07-10 | Sun Microsystems, Inc. | Apparatus and method for high performance implementation of system calls |
US5848278A (en) | 1995-09-29 | 1998-12-08 | Kabushiki Kaisha Toshiba | Serial interrrupt control system in a system in which a plurality of interrupt requesters are connected to a serial bus |
US6233599B1 (en) * | 1997-07-10 | 2001-05-15 | International Business Machines Corporation | Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers |
US6108781A (en) | 1997-07-31 | 2000-08-22 | Intel Corporation | Bootstrap processor selection architecture in SMP system |
US6032245A (en) | 1997-08-18 | 2000-02-29 | International Business Machines Corporation | Method and system for interrupt handling in a multi-processor computer system executing speculative instruction threads |
US6061710A (en) | 1997-10-29 | 2000-05-09 | International Business Machines Corporation | Multithreaded processor incorporating a thread latch register for interrupt service new pending threads |
US6163829A (en) | 1998-04-17 | 2000-12-19 | Intelect Systems Corporation | DSP interrupt control for handling multiple interrupts |
US6381676B2 (en) * | 1998-05-27 | 2002-04-30 | Hewlett-Packard Company | Cache management for a multi-threaded processor |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6848097B1 (en) * | 1998-11-13 | 2005-01-25 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6480818B1 (en) * | 1998-11-13 | 2002-11-12 | Cray Inc. | Debugging techniques in a multithreaded environment |
US6253304B1 (en) | 1999-01-04 | 2001-06-26 | Advanced Micro Devices, Inc. | Collation of interrupt control devices |
US7065633B1 (en) * | 1999-01-28 | 2006-06-20 | Ati International Srl | System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU |
US20030154234A1 (en) * | 1999-09-16 | 2003-08-14 | Aaron Raymond Larson | Method for time partitioned application scheduling in a computer operating system |
US7120783B2 (en) * | 1999-12-22 | 2006-10-10 | Ubicom, Inc. | System and method for reading and writing a thread state in a multithreaded central processing unit |
US20010052053A1 (en) * | 2000-02-08 | 2001-12-13 | Mario Nemirovsky | Stream processing unit for a multi-streaming processor |
US20030225955A1 (en) | 2000-12-15 | 2003-12-04 | Feldstein Andy A. | Data modem |
US20020103847A1 (en) * | 2001-02-01 | 2002-08-01 | Hanan Potash | Efficient mechanism for inter-thread communication within a multi-threaded computer system |
US20020161957A1 (en) * | 2001-02-09 | 2002-10-31 | Guillaume Comeau | Methods and systems for handling interrupts |
US20020144004A1 (en) * | 2001-03-29 | 2002-10-03 | Gaur Daniel R. | Driver having multiple deferred procedure calls for interrupt processing and method for interrupt processing |
WO2002082278A1 (en) | 2001-04-04 | 2002-10-17 | Mips Technologies, Inc. | Cache write bypass system |
US7124283B2 (en) | 2002-06-26 | 2006-10-17 | Renesas Technology Corp. | Hardware accelerator for a platform-independent code |
US6971103B2 (en) * | 2002-10-15 | 2005-11-29 | Sandbridge Technologies, Inc. | Inter-thread communications using shared interrupt register |
US20040073910A1 (en) * | 2002-10-15 | 2004-04-15 | Erdem Hokenek | Method and apparatus for high speed cross-thread interrupts in a multithreaded processor |
US7203823B2 (en) * | 2003-01-09 | 2007-04-10 | Sony Corporation | Partial and start-over threads in embedded real-time kernel |
US20050050305A1 (en) | 2003-08-28 | 2005-03-03 | Kissell Kevin D. | Integrated mechanism for suspension and deallocation of computational threads of execution in a processor |
US20060037020A1 (en) * | 2004-08-12 | 2006-02-16 | International Business Machines Corporation | Scheduling threads in a multiprocessor computer |
US20060130061A1 (en) * | 2004-12-09 | 2006-06-15 | Bauer Robert T | Use of rollback RCU with read-side modifications to RCU-protected data structures |
US20060206902A1 (en) | 2005-03-14 | 2006-09-14 | Sujat Jamil | Variable interleaved multithreaded processor method and system |
US20060218559A1 (en) | 2005-03-23 | 2006-09-28 | Muhammad Ahmed | Method and system for variable thread allocation and switching in a multithreaded processor |
US20080091867A1 (en) | 2005-10-18 | 2008-04-17 | Qualcomm Incorporated | Shared interrupt controller for a multi-threaded processor |
Non-Patent Citations (7)
Title |
---|
Academic Press Dictionary of Science and Technology. Oxford: Elsevier Science and Technology. 1992. * |
International Search Report-PCT/US05/040759-ISA-EPO-May 24, 2007. |
Microsoft Computer dictionary fifth edition May 25, 2002. * |
Microsoft Press Computer Dictionary, 2nd Edition; Joanne Woodcock, Senior Contributor, Oct. 1993. * |
Modern Dictionary of Electronics, 6th Edition, Jul. 1996, Rudolf F. Graf. * |
Scott Rosenthal "Interrupts Might Seem Basic, But Many Programmers Still Avoid Them", SLTF Consulting, May 1995. |
Written Opinion-PCT/US05/040759-ISA-EPO-May 24, 2007. |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8473728B2 (en) * | 2006-08-14 | 2013-06-25 | Marvell World Trade Ltd. | Interrupt handling |
US20100077399A1 (en) * | 2008-09-19 | 2010-03-25 | Qualcomm Incorporated | Methods and Systems for Allocating Interrupts In A Multithreaded Processor |
US8656145B2 (en) * | 2008-09-19 | 2014-02-18 | Qualcomm Incorporated | Methods and systems for allocating interrupts in a multithreaded processor |
Also Published As
Publication number | Publication date |
---|---|
WO2007047784A2 (en) | 2007-04-26 |
CN104484159B (zh) | 2019-07-19 |
EP1941352B1 (en) | 2017-04-26 |
CN104484159A (zh) | 2015-04-01 |
CN101331450A (zh) | 2008-12-24 |
EP1941352A2 (en) | 2008-07-09 |
WO2007047784A3 (en) | 2007-07-26 |
US20070088938A1 (en) | 2007-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7702889B2 (en) | Shared interrupt control method and system for a digital signal processor | |
US8370806B2 (en) | Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor | |
US8533530B2 (en) | Method and system for trusted/untrusted digital signal processor debugging operations | |
US8380966B2 (en) | Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging | |
US8484516B2 (en) | Inter-thread trace alignment method and system for a multi-threaded processor | |
US7913255B2 (en) | Background thread processing in a multithread digital signal processor | |
JP2010510584A (ja) | エンハンストデジタル信号プロセッサデバッギング動作に関する埋め込み型トレースマクロセル | |
US7657791B2 (en) | Method and system for a digital signal processor debugging during power transitions | |
MX2008005092A (en) | Shared interrupt control method and system for a digital signal processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: QUALCOMM INCORPORATED A DELAWARE CORPORATION,CALIF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CODRESCU, LUCIAN;ANDERSON, WILLIAM C.;REEL/FRAME:017239/0943 Effective date: 20060206 Owner name: QUALCOMM INCORPORATED A DELAWARE CORPORATION, CALI Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CODRESCU, LUCIAN;ANDERSON, WILLIAM C.;REEL/FRAME:017239/0943 Effective date: 20060206 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |