Background thread processing in a multithread digital signal processor
First Claim
1. A method of performing background processing in a multithreaded digital signal processor comprising a plurality of processing threads, said method comprising:
- forming a background thread interrupt as one of a plurality of interrupt types, said background thread interrupt to initiate a background process using one of a plurality of processing threads of said multithreaded digital signal processor;
storing said background thread interrupt in an interrupt register;
forming a background processing mask; and
associating said background processing mask with at least a subset of said plurality of processing threads;
sensing a predetermined event in an active thread of said plurality of processing threads during processing of said multithreaded digital signal processor;
issuing said background thread interrupt from said interrupt register in response to said predetermined event;
initiating background processing using an idle thread of said subset of said plurality of processing threads having an associated background process mask, wherein said multithreaded digital signal processor is operable to support concurrent execution of two or more of said plurality of processing threads;
storing said background thread interrupt as a background prefetch interrupt;
forming said background processing mask as a background prefetch processing mask; and
initiating said background processing as background prefetch processing.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques for the design and use of a digital signal processor, including processing transmissions in a communications (e.g., CDMA) system. The disclosed method and system provide background thread processing in a multithread digital signal processor for backgrounding and other background operations. The method and system form a background thread interrupt as one of a plurality of interrupt types, the background thread interrupt initiates a low-priority background process using one of a plurality of processing threads of a multithread digital signal processor. The process includes storing the background thread interrupt in an interrupt register and a background processing mask for associating with a processing thread of the multithread digital signal processor, which associates with at least a subset of said plurality of processing threads. Upon sensing a cache miss in one of the processing threads during multithread processing, the interrupt register issues the background thread interrupt and the digital signal processor initiates background processing using one of the processing threads having an associated background processing mask.
20 Citations
24 Claims
-
1. A method of performing background processing in a multithreaded digital signal processor comprising a plurality of processing threads, said method comprising:
-
forming a background thread interrupt as one of a plurality of interrupt types, said background thread interrupt to initiate a background process using one of a plurality of processing threads of said multithreaded digital signal processor; storing said background thread interrupt in an interrupt register; forming a background processing mask; and
associating said background processing mask with at least a subset of said plurality of processing threads;sensing a predetermined event in an active thread of said plurality of processing threads during processing of said multithreaded digital signal processor; issuing said background thread interrupt from said interrupt register in response to said predetermined event; initiating background processing using an idle thread of said subset of said plurality of processing threads having an associated background process mask, wherein said multithreaded digital signal processor is operable to support concurrent execution of two or more of said plurality of processing threads; storing said background thread interrupt as a background prefetch interrupt; forming said background processing mask as a background prefetch processing mask; and initiating said background processing as background prefetch processing. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system to operate in association with a multithreaded digital signal processor to process interrupts, the system comprising:
-
a multithreaded digital signal processor; a background thread interrupt to operate as one of a plurality of interrupt types, said background thread interrupt to initiate to initiate a background process using one of a plurality of processing threads of said multithreaded digital signal processor; an interrupt register to store said background thread interrupt; a mask register to associate a said background processing mask with at least a subset of said plurality of processing threads; event sensing instructions to sense a predetermined event in an active thread of said plurality of processing threads during processing of said multithreaded digital signal processor; interrupt issuing instructions associated with said interrupt register to issue said background thread interrupt from said interrupt register in response to said predetermined event; and background processing circuitry to initiate background processing using an idle thread of said subset of said plurality of processing threads having an associated background process mask, wherein said multithreaded digital signal processor is operable to support concurrent execution of two or more of said plurality of processing threads; circuitry and instructions associated with said interrupt register to store said background thread interrupt as a background prefetch interrupt; circuitry and instructions associated with said mask register to form said background processing mask as a background prefetch processing mask; and background processing circuitry and instructions to initiate said background processing as background prefetch processing. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. A multithreaded digital signal processor to operate in support of a personal electronics device, said multithreaded digital signal processor comprising means for performing background processing, said background processing means comprising:
-
means for forming a background thread interrupt as one of a plurality of interrupt types, said background thread interrupt for initiating a background process using one of a plurality of processing threads of a multithreaded digital signal processor; means for storing said background thread interrupt in an interrupt register; means for forming a background processing mask; and means for associating said background processing mask with at least a subset of said plurality of processing threads; means for sensing a predetermined event in an active thread of said plurality of processing threads during processing of said multithreaded digital signal processor; means for issuing said background thread interrupt from said interrupt register in response to said predetermined event; and means for initiating background processing using an idle thread of said subset of said plurality of processing threads having an associated background process mask, wherein said multithreaded digital signal processor is operable to support concurrent execution of two or more of said plurality of processing threads; means for storing said background thread interrupt as a background prefetch interrupt; means for forming said background processing mask as a background prefetch processing mask; and means for initiating said background processing as background prefetch processing. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A non-transitory computer usable medium having computer readable program code means embodied therein to perform background processing in a multithreaded digital signal processor, the computer usable medium comprising:
-
computer readable program code means for forming a background thread interrupt, said background thread interrupt for initiating a background process using one of a plurality of processing threads of said multithreaded digital signal processor; computer readable program code means for storing said background thread interrupt in an interrupt register; computer readable program code means for associating a background processing mask with at least one of said plurality of processing threads; computer readable program code means for sensing an event in an active thread of said plurality of processing threads during processing of said multithreaded digital signal processor; computer readable program code means for identifying a subset of said plurality of processing threads of said multithreaded digital signal processor, wherein the subset of said plurality of processing threads is limited to include threads that are eligible to service said background thread interrupt and that are in an idle state; computer readable program code means for issuing said background thread interrupt from said interrupt register in response to said event; computer readable program code means for initiating background processing using an idle thread of said subset of said plurality of processing threads, the idle thread having an associated background process mask, wherein said multithreaded digital signal processor is operable to support concurrent execution of two or more of said plurality of processing threads; computer readable program code means for storing said background thread interrupt as a background prefetch interrupt; computer readable program code means for forming said background processing mask as a background prefetch processing mask; and computer readable program code means for initiating said background processing as background prefetch processing.
-
Specification