JP2016095855A - Low latency two-level interrupt controller interface to multi-threaded processor - Google Patents

Low latency two-level interrupt controller interface to multi-threaded processor Download PDF

Info

Publication number
JP2016095855A
JP2016095855A JP2015229471A JP2015229471A JP2016095855A JP 2016095855 A JP2016095855 A JP 2016095855A JP 2015229471 A JP2015229471 A JP 2015229471A JP 2015229471 A JP2015229471 A JP 2015229471A JP 2016095855 A JP2016095855 A JP 2016095855A
Authority
JP
Japan
Prior art keywords
interrupt
interrupt controller
core
controller
processor
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.)
Granted
Application number
JP2015229471A
Other languages
Japanese (ja)
Other versions
JP6153991B2 (en
Inventor
スレッシュ・ケー・ヴェンクマハンティ
K Venkumahanti Suresh
ルシアン・コドレスク
Codrescu Lucian
エーリヒ・ジェームズ・プロンドケ
James Plondke Erich
シュフェン・チェン
Xufeng Chen
ペイシン・ジョン
Peixin Zhong
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2016095855A publication Critical patent/JP2016095855A/en
Application granted granted Critical
Publication of JP6153991B2 publication Critical patent/JP6153991B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Human Computer Interaction (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide systems and method for reducing interrupt latency time in a multi-threaded processor.SOLUTION: An L1 interrupt controller 204 is coupled to a multi-threaded processor 206. An L2 interrupt controller 202 is configured to communicate a first interrupt 208 and a first vector identifier 210 to the L1 interrupt controller 204. The L1 interrupt controller 204 is configured to process the first interrupt 208 and the first vector identifier 210 and send the processed interrupt to a thread in the multi-threaded processor 206. Logic is configured to determine when the multi-threaded processor 206 completes preparation for receiving a second interrupt. A dedicated line 212 is used to communicate an indication to the L2 interrupt controller that the multi-threaded processor 206 has completed preparation for receiving a new interrupt 214.SELECTED DRAWING: Figure 2

Description

開示される実施形態は、プロセッサにおいて割込みを処理するための技法に関する。より詳細には、例示的な実施形態は、マルチスレッドプロセッサのために構成された2レベル割込みコントローラにおいて割込み待ち時間を短縮するためのシステムおよび方法に関する。   The disclosed embodiments relate to techniques for handling interrupts in a processor. More particularly, exemplary embodiments relate to a system and method for reducing interrupt latency in a two-level interrupt controller configured for a multi-thread processor.

処理システムは、通常、割込み機構をサポートし、割込みは、プロセッサの現在の実行スレッドまたは命令ストリームを非同期的に中断または一時停止でき、割込みにサービスできるようにする。割込みは、オンチップまたはオフチップの外部デバイスを含む、様々な発生源から発生し得る。割込みは、マルチスレッドプロセッサ内の1つまたは複数のスレッドからなど、プロセッサまたはCPU内において内部的にも発生し得る。   A processing system typically supports an interrupt mechanism, which can asynchronously suspend or suspend the processor's current execution thread or instruction stream and allow the interrupt to be serviced. Interrupts can be generated from a variety of sources, including on-chip or off-chip external devices. Interrupts can also occur internally within a processor or CPU, such as from one or more threads within a multithreaded processor.

割込みにサービスするために、割込みサービスルーチン(ISR)が、割込みを受け取ったプロセッサによって実行され得る。各割込みは、その割込みに関連付けられた特定のISRを含むことができる。割込みは、様々な発生源から受け取られ得るので、通常は割込みコントローラを使用して、割込みを受け取り、いくつかの未処理の割込みの間で優先順位付けを行い、新しい割込みを処理するためにプロセッサが利用可能かどうかを確認できるように保留中の割込みのステータスを追跡するといったタスクを処理する。割込みならびに関連する発生源およびISRを追跡するために、ベクトル割込みコントローラ(VIC:vectored interrupt controller)が、当技術分野において知られており、各割込みに関連付けられたベクトルアドレス(vectored address)を追跡して、割込みにサービスするプロセッサにVICが関連するISRを提供できるようにしている。   In order to service the interrupt, an interrupt service routine (ISR) may be executed by the processor that received the interrupt. Each interrupt may include a specific ISR associated with that interrupt. Since interrupts can be received from a variety of sources, an interrupt controller is usually used to receive interrupts, prioritize among several outstanding interrupts, and processor to handle new interrupts. Handle tasks such as tracking the status of pending interrupts so that you can check if is available. To track interrupts and associated sources and ISRs, vectored interrupt controllers (VICs) are known in the art and track the vectored address associated with each interrupt. This allows the VIC to provide an associated ISR to the processor that services the interrupt.

2つ以上のスレッドを並列で実行するように構成されたマルチスレッドプロセッサの場合、割込みコントローラが、割込みにサービスするために、どのスレッドに割込みをかけるべきかを決定できるように、スレッドには優先順位レベルを動的または静的に割り当てることができる。第1のレベルまたはL1割込みコントローラは、たとえば、マルチスレッドプロセッサなど、プロセッサコアに関連する割込みを処理するように構成できる。第2のレベルまたはL2割込みコントローラは、たとえば、外部デバイスからの割込み、または大域的な規模の割込みを処理するように構成できる。L2割込みコントローラは、L2割込みコントローラからL1割込みコントローラに割込みを適宜送るために、AHB/AXIなどのシステムバスを介して、L1割込みコントローラと通信を行うことができる。L1割込みコントローラとL2割込みコントローラなどの、2レベル割込みコントローラは、当業者によって認識されるように、処理システムにおいて他のいくつかの用途に充てることもできる。   For multithreaded processors configured to run two or more threads in parallel, priority is given to the thread so that the interrupt controller can determine which thread should be interrupted to service the interrupt. Ranking levels can be assigned dynamically or statically. The first level or L1 interrupt controller can be configured to handle interrupts associated with a processor core, such as, for example, a multithreaded processor. The second level or L2 interrupt controller can be configured to handle, for example, interrupts from external devices or global scale interrupts. The L2 interrupt controller can communicate with the L1 interrupt controller via a system bus such as AHB / AXI in order to appropriately send an interrupt from the L2 interrupt controller to the L1 interrupt controller. Two-level interrupt controllers, such as the L1 interrupt controller and the L2 interrupt controller, can be devoted to several other applications in the processing system, as will be appreciated by those skilled in the art.

図1を参照すると、2レベル割込みコントローラの従来の実施が提供されている。L2割込みコントローラ102は、コア106に接続され得るL1割込みコントローラ104に、バス108を介して、割込みを伝達できる。示されるように、コア106は、L1割込みコントローラ104とだけ直接的な通信を行い、L2割込みコントローラ102とは行わない。最初に、L1割込みコントローラ104は、L2割込みコントローラ102から第1の割込みを受け取ることができる。その後、後続の割込みの処理は、たとえば、プロセッサリソースに基づいて、2つの方法の一方で処理され得る。   Referring to FIG. 1, a conventional implementation of a two-level interrupt controller is provided. The L2 interrupt controller 102 can communicate interrupts via the bus 108 to an L1 interrupt controller 104 that can be connected to the core 106. As shown, the core 106 communicates directly only with the L1 interrupt controller 104 and not with the L2 interrupt controller 102. Initially, the L1 interrupt controller 104 can receive a first interrupt from the L2 interrupt controller 102. Subsequent interrupt processing may then be handled in one of two ways, eg, based on processor resources.

第1のシナリオでは、第1の割込みを受け取ると直ちに、コア106は、コア106が新しい割込みのための準備を完了した旨の通知を、L1割込みコントローラ104を介して、L2割込みコントローラ102に提供できる。その後、L2割込みコントローラ102は、L2割込みコントローラ102において第2の割込みが保留されている場合、第2の割込みをプロセッサコアに送ることができる。たとえば、コア106がマルチスレッドプロセッサとして構成されている場合、第1の割込みは、マルチスレッドプロセッサの第1のスレッドによってサービスでき、第2のスレッドは、WAIT状態にあり、第2の割込みを処理するために利用可能なことがある。この例では、マルチスレッドプロセッサは、プロセッサコアが第1の割込みを受け取った後直ちに、L2割込みコントローラ102が第2の割込みを送ることができる旨の通知を、たとえば、L1割込みコントローラ104を介して、L2割込みコントローラ102に提供できる。   In the first scenario, as soon as the first interrupt is received, the core 106 notifies the L2 interrupt controller 102 via the L1 interrupt controller 104 that the core 106 is ready for a new interrupt. it can. Thereafter, the L2 interrupt controller 102 can send the second interrupt to the processor core if the second interrupt is pending in the L2 interrupt controller 102. For example, if core 106 is configured as a multi-thread processor, the first interrupt can be serviced by the first thread of the multi-thread processor, and the second thread is in the WAIT state and handles the second interrupt May be available to do. In this example, the multi-thread processor sends a notification that the L2 interrupt controller 102 can send the second interrupt immediately after the processor core receives the first interrupt, for example via the L1 interrupt controller 104. Can be provided to the L2 interrupt controller 102.

代替として、第2のシナリオでは、コア106は、いかなる新しい要求も、後の時点まで、またはさらなる通知があるまで、それを送ることを延期すべき旨の通知を、L2割込みコントローラ102に提供できる。やはり、コア106がマルチスレッドプロセッサとして構成されている場合、すべてのスレッドがビジーなことがあり、プロセッサコアに関連するリアルタイムオペレーティングシステム(RTOS)は、どのスレッドに割込みをかけるかを決定するために、時間遅延を必要とすることがある。たとえば、RTOSは、どのハードウェアスレッドが最も低い優先順位でソフトウェアスレッドを実行しているかを決定し、そのスレッドを優先順位が最も低いソフトウェアスレッドとして指定でき、L1割込みコントローラ104が、L2割込みコントローラ102からの第2の割込みを、優先順位が最も低いソフトウェアスレッドに送ることができるようにする。優先順位が最も低いソフトウェアスレッドの決定は、かなりの時間遅延を招くことがあり、それに応じて、割込みを処理できる速度は、速度低下をこうむる。   Alternatively, in the second scenario, core 106 can provide notification to L2 interrupt controller 102 that any new request should be postponed until later or until further notification . Again, if core 106 is configured as a multi-threaded processor, all threads may be busy, and the real-time operating system (RTOS) associated with the processor core will determine which thread to interrupt May require a time delay. For example, the RTOS can determine which hardware thread is executing the software thread with the lowest priority, and designate that thread as the software thread with the lowest priority, so that the L1 interrupt controller 104 is the L2 interrupt controller 102. So that the second interrupt from can be sent to the lowest priority software thread. The determination of the lowest priority software thread can incur a significant time delay, and accordingly the speed at which interrupts can be handled suffers from a slowdown.

さらに、従来のデータ処理システムでは、割込みのISRに関連付けられたベクトルアドレスなどの、割込みに関する情報は、L2割込みコントローラ102とL1割込みコントローラ104との間で、先進マイクロコントローラバスアーキテクチャ高性能バス(AHB:Advanced Microcontroller Bus Architecture High Performance Bus)を介して伝達される。上述の情報を取り出すためのAHBの読み取りに関連する処理は、割込み待ち時間にかなりの遅延を追加することがあり、したがって、割込みを処理する速度にさらなる影響を及ぼすことがある。   In addition, in traditional data processing systems, information about interrupts, such as the vector address associated with the ISR of the interrupt, is transferred between the L2 interrupt controller 102 and the L1 interrupt controller 104 with an advanced microcontroller bus architecture high performance bus (AHB : Advanced Microcontroller Bus Architecture High Performance Bus) The processing associated with reading the AHB to retrieve the information described above may add a significant delay to the interrupt latency, and thus may further affect the speed at which interrupts are processed.

従来の割込み処理に関連する上述の問題を緩和するために、当技術分野では、低待ち時間2レベル割込みコントローラを含む解決策が必要とされている。   In order to alleviate the above-mentioned problems associated with conventional interrupt processing, there is a need in the art for a solution that includes a low latency two level interrupt controller.

本発明の例示的な実施形態は、マルチスレッドプロセッサのために構成された2レベル割込みコントローラにおいて、割込み待ち時間を短縮するためのシステムおよび方法に関する。   Exemplary embodiments of the present invention relate to systems and methods for reducing interrupt latency in a two-level interrupt controller configured for a multithreaded processor.

たとえば、例示的な一実施形態は、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するステップと、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するステップと、処理された割込みを第1の割込みコントローラからコア内のスレッドに送るステップと、コアが第2の割込みを受け取る準備を完了したとき、それを判定するステップと、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るステップとを含む、割込み待ち時間を短縮するための方法に関する。   For example, one exemplary embodiment communicates a first interrupt and a first vector identifier from a second interrupt controller to a first interrupt controller, and the first interrupt and the first interrupt in the first interrupt controller. Processing a vector identifier of 1; sending a processed interrupt from a first interrupt controller to a thread in the core; determining when the core is ready to receive a second interrupt; And sending an instruction from the core to the second interrupt controller notifying that the core is ready to receive the second interrupt.

別の例示的な実施形態は、コアと、レベル2割込みコントローラと、コアをレベル2割込みコントローラに結合するラインであって、コアが、コアがレベル2割込みを受け取る準備を完了したことを、ラインを介して、レベル2割込みコントローラに通知するように構成される、ラインとを備える、マルチスレッドプロセッサに関する。   Another exemplary embodiment is a line coupling a core, a level 2 interrupt controller, and a core to a level 2 interrupt controller, wherein the core is ready to receive a level 2 interrupt. And a line configured to notify a level 2 interrupt controller via a multi-thread processor.

また別の例示的な実施形態は、割込み待ち時間を短縮するように構成された処理システムに関し、処理システムは、コアに結合された第1の割込みコントローラと、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するための手段と、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するための手段と、処理された割込みをコア内のスレッドに送るための手段と、コアが第2の割込みを受け取る準備を完了したとき、それを判定するための手段と、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るための手段とを備える。   Yet another exemplary embodiment relates to a processing system configured to reduce interrupt latency, the processing system including a first interrupt controller coupled to the core, a first interrupt and a first vector. Means for communicating the identifier from the second interrupt controller to the first interrupt controller; means for processing the first interrupt and the first vector identifier in the first interrupt controller; and the processed interrupt. A means for sending to a thread in the core, a means for determining when the core is ready to receive a second interrupt, and a notification that the core is ready to receive a second interrupt Means for sending instructions from the core to the second interrupt controller.

別の例示的な実施形態は、プロセッサによって実行されたときに、割込み待ち時間を短縮するための動作をプロセッサに実行させるコードを含む、非一時的なコンピュータ可読記憶媒体に関し、非一時的なコンピュータ可読記憶媒体は、第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するためのコードと、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するためのコードと、処理された割込みを第1の割込みコントローラからコア内のスレッドに送るためのコードと、コアが第2の割込みを受け取る準備を完了したとき、それを判定するためのコードと、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るためのコードとを含む。   Another exemplary embodiment relates to a non-transitory computer-readable storage medium that includes code that, when executed by a processor, causes the processor to perform an action to reduce interrupt latency. The readable storage medium includes code for communicating the first interrupt and the first vector identifier from the second interrupt controller to the first interrupt controller, and the first interrupt and the first vector in the first interrupt controller. Code to handle the identifier, code to send the processed interrupt from the first interrupt controller to a thread in the core, and to determine when the core is ready to receive the second interrupt Code and instructions from the core to notify the core that it is ready to receive the second interrupt. And code for sending the.

本発明の実施形態についての説明の助けとなるように、添付の図面が提示されるが、それは、もっぱら実施形態を説明するために提供され、実施形態を限定するためではない。   The accompanying drawings are presented to aid in the description of the embodiments of the present invention, which are provided solely to illustrate the embodiments and not to limit the embodiments.

コアとの従来の2レベル割込みコントローラインターフェースを示す図である。FIG. 2 illustrates a conventional two-level interrupt controller interface with a core. 例示的な実施形態に従って構成された、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースを示す図である。FIG. 6 illustrates a two-level interrupt controller interface with a multithreaded processor configured in accordance with an exemplary embodiment. 例示的な実施形態による、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースを構成するための方法を詳説するフローチャートである。3 is a flowchart detailing a method for configuring a two-level interrupt controller interface with a multithreaded processor, according to an exemplary embodiment. 本開示の一実施形態を有利に利用できる、例示的なワイヤレス通信システム400を示す図である。FIG. 3 illustrates an example wireless communication system 400 in which an embodiment of the present disclosure can be advantageously utilized.

本発明の態様が、本発明の特定の実施形態に関する以下の説明および関連する図面において開示される。本発明の範囲から逸脱することなく、代替実施形態も考案できる。加えて、本発明のよく知られた要素は、本発明の関連する細部を曖昧にしないために、詳細には説明されず、または省略される。   Aspects of the invention are disclosed in the following description and related drawings relating to specific embodiments of the invention. Alternate embodiments may be devised without departing from the scope of the invention. In addition, well-known elements of the invention will not be described in detail or will be omitted so as not to obscure the relevant details of the invention.

本明細書では、「例示的」という語は、「例、実例、または説明として役立つ」という意味で使用される。本明細書で「例示的」として説明されるいかなる実施形態であれ、必ずしも他の実施形態よりも好ましい、または有利であると解釈すべきわけではない。同様に、「本発明の実施形態」という表現は、本発明のすべての実施形態が、説明される特徴、利点、または動作のモードを含むことを要求するわけではない。   In this specification, the word “exemplary” is used to mean “serving as an example, instance, or illustration”. Any embodiment described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments. Similarly, the expression “embodiments of the invention” does not require that all embodiments of the invention include the described features, advantages, or modes of operation.

本明細書で使用される用語は、特定の実施形態を説明することのみを目的としており、本発明の実施形態を限定する意図はない。本明細書で使用される場合、「a」、「an」、および「the」プラス単数形は、文脈による別段の指摘が明らかにない限り、複数形も同様に含むことが意図されている。「comprises(含む)」、「comprising(含む)」、「includes(含む)」、および/または「including(含む)」という用語は、本明細書で使用される場合、述べられる特徴、整数、ステップ、動作、要素、および/または構成要素の存在を指定するばかりでなく、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加も排除しないことがさらに理解されよう。   The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments of the invention. As used herein, “a”, “an”, and “the” plus singular are intended to include the plural as well unless the context clearly indicates otherwise. The terms `` comprises '', `` comprising '', `` includes '', and / or `` including '' as used herein are described features, integers, steps Not only specify the presence of an action, element, and / or component, but also the presence or addition of one or more other features, integers, steps, actions, elements, components, and / or groups thereof It will be further understood that this is not excluded.

さらに、多くの実施形態は、たとえばコンピューティングデバイスの要素によって実行される、アクションの系列に関して説明される。本明細書で説明される様々なアクションは、特定の回路(たとえば特定用途向け集積回路(ASIC))によって、1つもしくは複数のプロセッサによって実行されるプログラム命令によって、または両方の組合せによって実行できることが認識されよう。加えて、本明細書で説明されるこれらのアクションの系列は、実行時に本明細書で説明される機能を関連プロセッサに実行させる対応する1組のコンピュータ命令を記憶する任意の形態のコンピュータ可読記憶媒体内で完全に具体化されると見なすことができる。したがって、本発明の様々な態様は、数々の異なる形態で具体化でき、そのすべてが、特許請求される本発明の範囲内にあることが企図されている。加えて、本明細書で説明される実施形態の各々について、そのようなどの実施形態に対応する形態も、本明細書では、たとえば、説明されるアクションを実行する「ように構成されたロジック」として説明できる。   Moreover, many embodiments are described in terms of a sequence of actions, e.g., performed by an element of a computing device. The various actions described herein can be performed by particular circuits (e.g., application specific integrated circuits (ASICs)), by program instructions executed by one or more processors, or a combination of both. Be recognized. In addition, these sequences of actions described herein are any form of computer-readable storage that stores a corresponding set of computer instructions that, when executed, cause an associated processor to perform the functions described herein. It can be considered fully embodied in the medium. Accordingly, various aspects of the invention may be embodied in a multitude of different forms, all of which are intended to be within the scope of the claimed invention. In addition, for each of the embodiments described herein, the form corresponding to any such embodiment is herein described, for example, as “logic configured to perform” the described actions. It can be explained as

図1を参照して先に説明したように、従来の2レベル割込みコントローラには難点がある。コア106が新しい割込みを受け入れる準備を完了した場合、その旨の通知は、L1割込みコントローラ104を経由し、AHBバスなどの待ち時間が長いネットワーク110を介して、L2割込みコントローラ102に提供される。そのような従来の割込みの処理は、深刻な遅延を招き、低速の割込み処理をもたらす。   As described above with reference to FIG. 1, the conventional two-level interrupt controller has drawbacks. When the core 106 is ready to accept a new interrupt, a notification to that effect is provided to the L2 interrupt controller 102 via the L1 interrupt controller 104 and the long-latency network 110 such as an AHB bus. Such conventional interrupt handling introduces a serious delay and results in slow interrupt handling.

上述の従来の技法とは対照的に、例示的な実施形態は、高速の割込み処理のために構成された低待ち時間割込みコントローラに関する。より具体的には、実施形態は、マルチスレッドプロセッサコアとインターフェースを取ることができる、2レベル低待ち時間割込みコントローラを含むことができる。   In contrast to the conventional techniques described above, the exemplary embodiment relates to a low latency interrupt controller configured for fast interrupt processing. More specifically, embodiments can include a two-level low latency interrupt controller that can interface with a multi-threaded processor core.

ここで図2を参照すると、マルチスレッドプロセッサ206と直接的にインターフェースを取るように構成され得る、L1割込みコントローラ204を備える、説明的なシステム200が存在している。L1割込みコントローラ204は、L2割込みコントローラ202を含む1つまたは複数のデバイスからマルチスレッドプロセッサに送られる割込みを処理できる。   Referring now to FIG. 2, there is an illustrative system 200 that includes an L1 interrupt controller 204 that can be configured to interface directly with a multi-thread processor 206. The L1 interrupt controller 204 can handle interrupts sent from one or more devices including the L2 interrupt controller 202 to the multithreaded processor.

一実施形態では、L1割込みコントローラ204およびL2割込みコントローラ202はともに、先に説明したような、ベクトル割込みコントローラとすることができる。したがって、L2割込みコントローラ202は、割込みのISRに関連付けられたベクトルアドレスとともに割込みを送るように構成できる。非限定的な例によれば、L2割込みコントローラ202は、最大で1024個の低待ち時間割込みをサポートできる。1024個の低待ち時間割込みは、L2割込みコントローラ202によって優先順位付けされ得る。L1割込みコントローラ204は、32個のレジスタエントリ[31:0]を有するVICとすることができ、L1割込みコントローラ204のレジスタエントリ[31]は、L2割込みコントローラ202に対応し得る。L1割込みコントローラ204の残りの31個のレジスタエントリは、スレッドからスレッドへのシグナリングのためにマルチスレッドプロセッサ206の2つ以上のスレッドから内部的に発生される割込みを含む他の発生源からの割込みのために、またはレガシアプリケーションのために、予約しておくことができる。L1割込みコントローラ204およびL2割込みコントローラ202の示される構成では、外部デバイス(図示されず)からのすべての割込みは、最初、L2割込みコントローラ202で受け取ることができ、その後、L1割込みコントローラ204に送ることができる。   In one embodiment, both L1 interrupt controller 204 and L2 interrupt controller 202 may be vector interrupt controllers, as described above. Accordingly, the L2 interrupt controller 202 can be configured to send an interrupt with the vector address associated with the interrupt's ISR. By way of non-limiting example, the L2 interrupt controller 202 can support up to 1024 low latency interrupts. The 1024 low latency interrupts can be prioritized by the L2 interrupt controller 202. The L1 interrupt controller 204 may be a VIC having 32 register entries [31: 0], and the register entry [31] of the L1 interrupt controller 204 may correspond to the L2 interrupt controller 202. The remaining 31 register entries of the L1 interrupt controller 204 are interrupts from other sources, including interrupts generated internally from two or more threads of the multi-thread processor 206 for thread-to-thread signaling. Can be reserved for or for legacy applications. In the configuration shown for L1 interrupt controller 204 and L2 interrupt controller 202, all interrupts from external devices (not shown) can be initially received by L2 interrupt controller 202 and then sent to L1 interrupt controller 204 Can do.

たとえば、引き続き図2を参照すると、第1の割込みは、L2割込みコントローラ202によって、外部デバイス(図示されず)から受け取ることができる。第1の割込みは、バス210上の対応するベクトルIDとともに、バス208を介して、L1割込みコントローラ204に伝達できる。グローバルベクトルIDレジスタ(図示されず)も、ベクトルIDを用いて更新でき、グローバルベクトルIDレジスタは、制御レジスタ(CR)転送命令を用いてアクセス可能とすることができる。グローバルベクトルIDレジスタは、割込みの追跡を支援できる。たとえば、グローバルVIDレジスタは、どの特定のL2割込みがL1割込みコントローラ204に送られたかを追跡するように構成できる。   For example, referring still to FIG. 2, the first interrupt can be received by the L2 interrupt controller 202 from an external device (not shown). The first interrupt, along with the corresponding vector ID on bus 210, can be communicated to L1 interrupt controller 204 via bus 208. A global vector ID register (not shown) can also be updated using a vector ID, and the global vector ID register can be made accessible using a control register (CR) transfer instruction. The global vector ID register can assist in tracking interrupts. For example, the global VID register can be configured to track which particular L2 interrupt is sent to the L1 interrupt controller 204.

第1の割込みがL1割込みコントローラ204によって受け取られた後、実施形態は、後続の要求を円滑に処理するために、従来の技法とはいくつかの点で異なる流れを辿る。図1に示されるような従来の技法は、新しい要求を受け入れるためにコア106が利用可能かどうかに関して、ネットワーク110を介して、L2割込みコントローラ102に通知するために、ハードウェアソリューションに依存するが、実施形態は、マルチスレッドプロセッサ206の準備完了をモニタリングするように構成された、ソフトウェアルーチンを含むことができる。たとえば、ソフトウェアルーチンは、マルチスレッドプロセッサ206の2つ以上のスレッド上で実行されているプロセスの状態を効率的に追跡できる。ソフトウェアルーチンは、新しい割込みを直ちに受け入れるために、1つもしくは複数のスレッドがWAIT状態にあり得るかどうか、または新しい割込みに直ちにサービスするために、スレッド上で実行されている優先順位が低いプロセスに割込みをかけ得るかどうかを決定できる。   After the first interrupt is received by the L1 interrupt controller 204, the embodiment follows a different flow from the conventional technique in order to facilitate subsequent requests. Conventional techniques such as shown in FIG. 1 rely on hardware solutions to notify the L2 interrupt controller 102 over the network 110 regarding whether the core 106 is available to accept new requests. Embodiments can include a software routine configured to monitor the readiness of the multi-thread processor 206. For example, software routines can efficiently track the state of processes running on two or more threads of multithreaded processor 206. A software routine can determine whether one or more threads can be in the WAIT state to accept new interrupts immediately, or to a lower priority process running on a thread to service new interrupts immediately. You can decide whether you can interrupt.

割込みを受け入れるためのマルチスレッドプロセッサ206の準備完了に関して決定が下された後、実施形態は、第1の割込みが処理されるために受け入れられたことをL1割込みコントローラ204に通知することと、同様に、今やマルチスレッドプロセッサ206が新しい割込みを受け入れる準備を完了したことをL2割込みコントローラ202に通知することの両方を達成する、単一の命令を含むことができる。これらの実施形態は、コア106が、新しい割込みのための準備完了を、ネットワーク110を介してしかL2割込みコントローラ102に伝達できない、図1に示されるような、従来の2レベル割込みフレームワークによって制約されないことが認識されよう。他方、実施形態は、マルチスレッドプロセッサ206の準備完了を、図2におけるライン212などの専用ハードウェアラインを介して、L2割込みコントローラ202に直接的に伝達できる。   After a decision is made regarding the readiness of the multi-thread processor 206 to accept the interrupt, the embodiment is similar to notifying the L1 interrupt controller 204 that the first interrupt has been accepted to be processed. Can now include a single instruction that accomplishes both informing the L2 interrupt controller 202 that the multi-thread processor 206 is ready to accept a new interrupt. These embodiments are constrained by a conventional two-level interrupt framework, such as that shown in FIG. 1, where core 106 can communicate the readiness for a new interrupt to L2 interrupt controller 102 only via network 110. It will be recognized that it will not. On the other hand, embodiments can communicate multi-thread processor 206 readiness directly to L2 interrupt controller 202 via a dedicated hardware line, such as line 212 in FIG.

さらに、いくつかの実施形態は、L2割込みコントローラ202が、割込み(たとえば、図2の「新しい割込み」)を、ライン214などの専用ハードウェアラインを介して、マルチスレッドプロセッサ206に直接的に伝達できるように、マルチスレッドプロセッサ206内に専用ハードウェアポートも含むことができる。このように、マルチスレッドプロセッサ206からL2割込みコントローラ202への準備完了の伝達ばかりでなく、その後のL2割込みコントローラ202からマルチスレッドプロセッサ206への割込みの伝達も、L1割込みコントローラ204およびそれに関連する遅延を完全に回避できる。   In addition, some embodiments allow the L2 interrupt controller 202 to communicate an interrupt (eg, the “new interrupt” of FIG. 2) directly to the multithreaded processor 206 via a dedicated hardware line, such as line 214. A dedicated hardware port can also be included in the multithreaded processor 206 to allow. In this way, not only the ready transmission from the multi-thread processor 206 to the L2 interrupt controller 202, but also the subsequent interrupt transmission from the L2 interrupt controller 202 to the multi-thread processor 206 is not limited to the L1 interrupt controller 204 and its associated delay Can be completely avoided.

例示的な実施形態は、割込み自動無効化クリア(CIAD:Clear Interrupt Auto Disable)レジスタを含むことができる。CIAD命令は、同じ割込みを2回以上取り込まないことを保証するために使用できる。たとえば、マルチスレッドプロセッサ206は、第1の割込みを取り込むと直ちに、CIADレジスタを自動的に設定できる。たとえば、先に説明したようなソフトウェアルーチンによって、マルチスレッドプロセッサ206が新しい割込みを受け入れる準備を完了したと決定されると、ソフトウェアルーチンは、CIAD命令の発行をトリガできる。その後、CIAD命令は、割込みラインをアクティブ化して、同じライン上で新しい割込みを取り込むことができるように、CIADレジスタをクリアできる。   An exemplary embodiment may include a Clear Interrupt Auto Disable (CIAD) register. The CIAD instruction can be used to ensure that the same interrupt is not captured more than once. For example, the multi-thread processor 206 can automatically set the CIAD register as soon as it captures the first interrupt. For example, if a software routine such as that described above determines that multi-thread processor 206 is ready to accept a new interrupt, the software routine can trigger the issuance of a CIAD instruction. The CIAD instruction can then clear the CIAD register so that the interrupt line can be activated to capture a new interrupt on the same line.

一実施形態では、CIAD命令は、第1の割込みがL1割込みコントローラ204において保留されていることを示すステータスをクリアするために、またさらに、マルチスレッドプロセッサ206が別の割込みおよび付随するベクトルIDを、それぞれバス208およびバス210を介して受け入れる準備を完了したことを、L2割込みコントローラ202に通知するために、マルチスレッドプロセッサ206によって発行され得る。CIAD命令は、先に説明したように、L2割込みコントローラ202からの割込み専用とすることができる、L1割込みコントローラ204のレジスタエントリ[31]に関連付けることができる。したがって、CIAD命令は、L2割込みコントローラ202と、L1割込みコントローラ204と、マルチスレッドプロセッサ206との間の効果的なハンドシェイクメカニズムを提供できる。第1の割込みがL1割込みコントローラ204で受け取られると、後続の割込みの処理を円滑化するために、ソフトウェアルーチンなどのプロセスを開始して、CIAD命令を生成できる。実施形態は、上述の例で説明したようなソフトウェアルーチンに限定することなく、専用ハードウェアまたはハードウェアとソフトウェアの組合せを用いても、上述のプロセスを実施できることが理解されよう。   In one embodiment, the CIAD instruction clears the status indicating that the first interrupt is pending in the L1 interrupt controller 204, and in addition, the multi-thread processor 206 sends another interrupt and the accompanying vector ID. Can be issued by multi-thread processor 206 to notify L2 interrupt controller 202 that it is ready to accept via bus 208 and bus 210, respectively. The CIAD instruction can be associated with the register entry [31] of the L1 interrupt controller 204, which can be dedicated to interrupts from the L2 interrupt controller 202, as described above. Thus, the CIAD instruction can provide an effective handshake mechanism between the L2 interrupt controller 202, the L1 interrupt controller 204, and the multi-thread processor 206. When the first interrupt is received at the L1 interrupt controller 204, a process such as a software routine can be initiated to generate a CIAD instruction to facilitate the processing of subsequent interrupts. It will be appreciated that embodiments are not limited to software routines as described in the examples above, and that the processes described above can be implemented using dedicated hardware or a combination of hardware and software.

さらに、実施形態は、クロックの立上りエッジで情報を獲得するように、L1割込みコントローラ204のレジスタエントリ[31]をプログラムできる実施を含むことができる。L2割込みコントローラ202は、エッジトリガ(edge triggered)またはレベルセンシティブ(level sensitive)とすることができ、割込みおよび対応するベクトルIDを、バス208およびバス210を介して、L1割込みコントローラ204に非同期的に送ることができる。L1割込みコントローラ204をエッジトリガとして構成することによって、マルチスレッドプロセッサ206に対応するクロックに割込みを同期させることができる。そのようなエッジトリガ構成は、L1割込みコントローラ204とL2割込みコントローラ202との間の通信プロトコルの改善を可能にし得る。   Further, embodiments can include implementations that can register the register entry [31] of the L1 interrupt controller 204 to acquire information on the rising edge of the clock. The L2 interrupt controller 202 can be edge triggered or level sensitive, and the interrupt and the corresponding vector ID are asynchronously sent to the L1 interrupt controller 204 via bus 208 and bus 210. Can send. By configuring the L1 interrupt controller 204 as an edge trigger, the interrupt can be synchronized to the clock corresponding to the multi-thread processor 206. Such an edge trigger configuration may allow improved communication protocols between the L1 interrupt controller 204 and the L2 interrupt controller 202.

さらに、専用バス212を介して送られるCIAD命令など、マルチスレッドプロセッサ206の準備完了についてL2割込みコントローラ202に通知するメカニズムは、第1の割込みが完了しないうちにトリガできることが認識されよう。言い換えると、第1の割込みは、マルチスレッドプロセッサ206が新しい割込みを処理する準備を完了した段階に達するために、マルチスレッドプロセッサ206によって完全に処理される必要がない。いくつかの実施形態では、第1の割込みがL1割込みコントローラで受け取られた後直ちに、マルチスレッドプロセッサ206は、たとえば、L1割込みコントローラ204のレジスタエントリ[31]をクリアすることによって、新しい割込みを受け入れる準備を完了した段階への遷移を開始できる。   Further, it will be appreciated that a mechanism that notifies the L2 interrupt controller 202 about the readiness of the multi-thread processor 206, such as a CIAD instruction sent over the dedicated bus 212, can be triggered before the first interrupt is complete. In other words, the first interrupt need not be fully processed by the multi-thread processor 206 to reach a stage where the multi-thread processor 206 is ready to process a new interrupt. In some embodiments, immediately after the first interrupt is received at the L1 interrupt controller, the multi-thread processor 206 accepts a new interrupt, for example, by clearing the register entry [31] of the L1 interrupt controller 204. The transition to the stage where preparation is completed can be started.

したがって、上のセクションで説明したような、ハードウェア構成とソフトウェア構成の組合せによって、実施形態は、割込みを処理する速度を著しく改善でき、割込み処理の待ち時間も短縮できる。   Thus, with a combination of hardware and software configurations as described in the above section, embodiments can significantly improve the speed at which interrupts are processed, and can also reduce interrupt processing latency.

さらに、実施形態は、本明細書で開示されるプロセス、機能、および/またはアルゴリズムを実行するための様々な方法を含むことが理解されよう。たとえば、図3に示されるように、一実施形態は、L1割込みコントローラ204などの第1の割込みコントローラをマルチスレッドプロセッサ206などのコアに結合するステップ(ブロック302)と、第1の割込みおよび第1のベクトル識別子を、たとえば、それぞれバス208およびバス210を介して、L2割込みコントローラ202などの第2の割込みコントローラから第1の割込みコントローラに伝達するステップ(ブロック304)と、第1の割込みコントローラにおいて第1の割込みおよび第1のベクトル識別子を処理するステップ(ブロック306)と、処理された割込みをコア内のスレッドに送るステップ(ブロック308)と、コアが第2の割込みを受け取る準備を完了したとき、それを判定するステップ(ブロック310)と、コアが第2の割込みを受け取る準備を完了したことを通知する命令をコアから第2の割込みコントローラに送るステップ(ブロック312)とを含む、割込み待ち時間を短縮するための方法を含むことができる。   Further, it will be appreciated that embodiments include various methods for performing the processes, functions, and / or algorithms disclosed herein. For example, as shown in FIG. 3, one embodiment includes coupling a first interrupt controller, such as the L1 interrupt controller 204, to a core, such as a multi-thread processor 206 (block 302), a first interrupt, and a first interrupt. Communicating a vector identifier of one to a first interrupt controller from a second interrupt controller, such as L2 interrupt controller 202, for example via bus 208 and bus 210, respectively (block 304); Processing the first interrupt and first vector identifier at (block 306), sending the processed interrupt to a thread in the core (block 308), and the core is ready to receive the second interrupt When it does, the step of determining it (block 310) and an instruction notifying that the core is ready to receive the second interrupt And sending to the second interrupt controller from the core (block 312).

当業者は、様々な異なる技術および技法のいずれかを使用して、情報および信号が表現され得ることを理解されよう。たとえば、上述の説明において言及された可能性のある、データ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁気粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表現され得る。   Those skilled in the art will appreciate that information and signals may be represented using any of a variety of different technologies and techniques. For example, data, instructions, commands, information, signals, bits, symbols, and chips that may have been mentioned in the above description are voltages, currents, electromagnetic waves, magnetic fields or magnetic particles, light fields or optical particles, or It can be expressed by any combination thereof.

さらに、当業者は、本明細書で開示される実施形態に関連して説明される、様々な説明的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子的ハードウェア、コンピュータソフトウェア、または両方の組合せとして実施され得ることを理解されよう。ハードウェアとソフトウェアのこの交換可能性を明瞭に示すために、様々な説明的な構成要素、ブロック、モジュール、回路、およびステップは、一般にそれらの機能に関して上では説明された。そのような機能をハードウェアとして実施するか、それともソフトウェアとして実施するかは、特定の応用、およびシステム全体に課される設計上の制約に依存する。当業者は、説明された機能を特定の各応用のために様々な方法で実施できるが、そのような実施上の決定は、本発明の範囲からの逸脱を引き起こすと解釈すべきではない。   Further, those skilled in the art will understand that the various illustrative logic blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein are electronic hardware, computer software, or both. It will be understood that it can be implemented as a combination of: To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those skilled in the art can implement the described functions in a variety of ways for each particular application, but such implementation decisions should not be construed as causing departure from the scope of the invention.

本明細書で開示される実施形態に関連して説明される、方法、シーケンス、および/またはアルゴリズムは、ハードウェアで直接的に、プロセッサによって実行されるソフトウェアモジュールで、または2つの組合せで具体化され得る。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、着脱可能ディスク、CD-ROM、または当技術分野で知られている他の任意の形態の記憶媒体内に存在し得る。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み取り、記憶媒体に情報を書き込み得るように、プロセッサに結合される。代替として、記憶媒体は、プロセッサに統合し得る。   The methods, sequences, and / or algorithms described in connection with the embodiments disclosed herein may be embodied directly in hardware, in software modules executed by a processor, or in a combination of the two. Can be done. The software module is in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disk, removable disk, CD-ROM, or any other form of storage medium known in the art Can exist. An exemplary storage medium is coupled to the processor such that the processor can read information from, and write information to, the storage medium. In the alternative, the storage medium may be integral to the processor.

したがって、本発明の一実施形態は、マルチスレッドプロセッサとの2レベル割込みコントローラインターフェースにおいて割込み待ち時間を短縮するための方法を具体化した、コンピュータ可読媒体を含むことができる。したがって、本発明は、示される例に限定されず、本明細書で説明される機能を実行するための任意の手段が、本発明の実施形態に含まれる。   Accordingly, an embodiment of the present invention can include a computer-readable medium embodying a method for reducing interrupt latency in a two-level interrupt controller interface with a multi-thread processor. Thus, the present invention is not limited to the examples shown, and any means for performing the functions described herein are included in embodiments of the present invention.

図4を参照すると、例示的な実施形態に従って構成されたマルチコアプロセッサを含む、ワイヤレスデバイスの特定の例示的な一実施形態のブロック図が示されており、全体として400で指示されている。デバイス400は、図2のシステム200を含むことができる、デジタル信号プロセッサ(DSP)464を含む。図4は、DSP464およびディスプレイ428に結合された、ディスプレイコントローラ426も示している。コーダ/デコーダ(CODEC)434(たとえば、オーディオおよび/または音声CODEC)は、DSP464に結合され得る。(モデムを含むことができる)ワイヤレスコントローラ440などの他の構成要素も示されている。スピーカ436およびマイクロフォン438は、CODEC434に結合され得る。図4は、ワイヤレスコントローラ440がワイヤレスアンテナ442に結合され得ることも示している。特定の一実施形態では、DSP464、ディスプレイコントローラ426、メモリ432、CODEC434、およびワイヤレスコントローラ440は、システムインパッケージまたはシステムオンチップデバイス422内に含まれる。   With reference to FIG. 4, a block diagram of a particular exemplary embodiment of a wireless device including a multi-core processor configured in accordance with the exemplary embodiment is shown and generally indicated at 400. Device 400 includes a digital signal processor (DSP) 464, which can include the system 200 of FIG. FIG. 4 also shows a display controller 426 coupled to the DSP 464 and the display 428. A coder / decoder (CODEC) 434 (eg, an audio and / or voice CODEC) may be coupled to the DSP 464. Other components such as a wireless controller 440 (which may include a modem) are also shown. Speaker 436 and microphone 438 may be coupled to CODEC 434. FIG. 4 also shows that the wireless controller 440 can be coupled to the wireless antenna 442. In one particular embodiment, DSP 464, display controller 426, memory 432, CODEC 434, and wireless controller 440 are included in a system-in-package or system-on-chip device 422.

特定の一実施形態では、入力デバイス430および電源444が、システムオンチップデバイス422に結合される。さらに、特定の一実施形態では、図4に示されるように、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444は、システムオンチップデバイス422の外部にある。しかし、ディスプレイ428、入力デバイス430、スピーカ436、マイクロフォン438、ワイヤレスアンテナ442、および電源444の各々は、インターフェースまたはコントローラなどの、システムオンチップデバイス422の構成要素に結合され得る。   In one particular embodiment, input device 430 and power supply 444 are coupled to system on chip device 422. Further, in one particular embodiment, the display 428, input device 430, speaker 436, microphone 438, wireless antenna 442, and power supply 444 are external to the system-on-chip device 422, as shown in FIG. However, each of display 428, input device 430, speaker 436, microphone 438, wireless antenna 442, and power supply 444 may be coupled to components of system on chip device 422, such as an interface or controller.

図4はワイヤレス通信デバイスを示しているが、DSP464およびメモリ432は、セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータ内に組み込むこともできることに留意されたい。プロセッサ(たとえばDSP464)も、そのようなデバイス内に組み込むことができる。   Although FIG. 4 shows a wireless communication device, the DSP 464 and memory 432 can be located within a set-top box, music player, video player, entertainment unit, navigation device, personal digital assistant (PDA), fixed location data unit, or computer. Note that it can also be incorporated. A processor (eg, DSP 464) can also be incorporated into such a device.

一般に、上で開示されたデバイスおよび方法は、設計されて、コンピュータ可読媒体上に記憶されるGDSIIおよびGERBERコンピュータファイル内に構成される。これらのファイルは、次に、これらのファイルに基づいてデバイスを製作する製作担当者に提供される。結果として得られる製品は、半導体ウェーハであり、その後、半導体ウェーハは、半導体ダイにカットされ、半導体チップ内にパッケージされる。その後、チップは、上で説明したデバイス内で利用される。   In general, the devices and methods disclosed above are designed and configured in GDSII and GERBER computer files stored on computer-readable media. These files are then provided to production personnel who produce devices based on these files. The resulting product is a semiconductor wafer, which is then cut into semiconductor dies and packaged in semiconductor chips. The chip is then utilized in the device described above.

上述の開示は、本発明の説明的な実施形態を示しているが、添付の特許請求の範囲によって確定される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正を行い得ることに留意されたい。本明細書で説明された本発明の実施形態による、方法クレームの機能、ステップ、および/またはアクションは、いずれか特定の順序で実行される必要はない。さらに、本発明の要素は、単数で説明され、または特許請求されることがあるが、単数への限定が明示的に述べられていない限り、複数も企図されている。   While the foregoing disclosure represents illustrative embodiments of the present invention, various changes and modifications may be made herein without departing from the scope of the invention as defined by the appended claims. Note that you get. The functions, steps, and / or actions of a method claim in accordance with embodiments of the invention described herein need not be performed in any particular order. Further, although elements of the invention may be described or claimed in the singular, the plural is contemplated unless limitation to the singular is explicitly stated.

102 L2割込みコントローラ
104 L1割込みコントローラ
106 コア
108 バス
110 ネットワーク
200 システム
202 L2割込みコントローラ
204 L1割込みコントローラ
206 マルチスレッドプロセッサ
208 バス
210 バス
212 ライン
214 ライン
102 L2 interrupt controller
104 L1 interrupt controller
106 core
108 bus
110 network
200 systems
202 L2 interrupt controller
204 L1 interrupt controller
206 Multi-thread processor
208 Bus
210 bus
212 lines
214 lines

Claims (19)

割込み待ち時間を短縮するための方法であって、
第1の割込みおよび第1のベクトル識別子を第2の割込みコントローラから第1の割込みコントローラに伝達するステップと、
前記第1の割込みコントローラにおいて前記第1の割込みおよび前記第1のベクトル識別子を受信するステップと、
前記受信された第1の割込みを前記第1の割込みコントローラからコア内のスレッドに送るステップと、
前記コアが第2の割込みを受け取る準備を完了したか否かを判定するステップと、
前記コアが前記第2の割込みを受け取る準備を完了したと判定された場合、前記コアから、前記第2の割込みコントローラへ、前記第2の割込みを受け取る準備を完了したことを通知する、単一の命令を送るステップと
を含む方法。
A method for reducing interrupt latency,
Communicating the first interrupt and the first vector identifier from the second interrupt controller to the first interrupt controller;
Receiving the first interrupt and the first vector identifier at the first interrupt controller;
Sending the received first interrupt from the first interrupt controller to a thread in the core;
Determining whether the core is ready to receive a second interrupt; and
If it is determined that the core is ready to receive the second interrupt, the core notifies the second interrupt controller that the core is ready to receive the second interrupt; Sending a command of the method.
前記単一の命令が、専用ラインを介して、前記コアから第2のレベルの割込みコントローラに送られる、請求項1に記載の方法。   The method of claim 1, wherein the single instruction is sent from the core to a second level interrupt controller via a dedicated line. 前記第2の割込みコントローラが、レベル2割込みコントローラであり、前記第1の割込みコントローラが、レベル1割込みコントローラである、請求項1に記載の方法。   The method of claim 1, wherein the second interrupt controller is a level 2 interrupt controller and the first interrupt controller is a level 1 interrupt controller. 前記単一の命令が、前記第1の割込みが前記第1の割込みコントローラで保留されていることを示すステータスをクリアすることによって動作する、割込み自動無効化クリア(CIAD)命令である、請求項1に記載の方法。   The automatic interrupt invalidation clear (CIAD) instruction, wherein the single instruction operates by clearing a status indicating that the first interrupt is pending at the first interrupt controller. The method according to 1. 前記割込み自動無効化クリア(CIAD)命令が、前記第2の割込みコントローラと、前記第1の割込みコントローラと、前記コアとの間のハンドシェイクメカニズムを提供する、請求項4に記載の方法。   5. The method of claim 4, wherein the clear interrupt auto clear (CIAD) instruction provides a handshake mechanism between the second interrupt controller, the first interrupt controller, and the core. 前記コアが、マルチスレッドプロセッサを含む、請求項1に記載の方法。   The method of claim 1, wherein the core comprises a multi-thread processor. 前記第2の割込みにサービスできるアイドルスレッドを識別することに基づいて、前記コアが前記第2の割込みを受け取る準備を完了したと判定するステップを含む、請求項6に記載の方法。   7. The method of claim 6, comprising determining that the core is ready to receive the second interrupt based on identifying an idle thread that can service the second interrupt. 前記第2の割込みにサービスできる優先順位が最も低いスレッドを識別することに基づいて、前記コアが前記第2の割込みを受け取る準備を完了したと判定するステップを含む、請求項6に記載の方法。   7. The method of claim 6, comprising determining that the core is ready to receive the second interrupt based on identifying the lowest priority thread that can service the second interrupt. . コアと、
レベル2割込みコントローラから第1の割込みを受け取り、かつ、前記第1の割込みを前記コアに送るように構成されるレベル1割込みコントローラと、
前記コアを前記レベル2割込みコントローラに結合するように構成されるラインと
を備え、
前記コアは、前記レベル2割込みコントローラへ、前記ラインを介して、第2の割込みを受け取る準備を完了したことを通知する、単一の命令を送るように構成されるマルチスレッドプロセッサ。
The core,
A level 1 interrupt controller configured to receive a first interrupt from a level 2 interrupt controller and send the first interrupt to the core;
A line configured to couple the core to the level 2 interrupt controller;
The multi-thread processor, wherein the core is configured to send a single instruction that notifies the level 2 interrupt controller that it is ready to receive a second interrupt via the line.
前記第2の割込みを前記レベル2割込みコントローラから受け取るように構成された専用ハードウェアポートをさらに備える、請求項9に記載のマルチスレッドプロセッサ。   The multithreaded processor of claim 9, further comprising a dedicated hardware port configured to receive the second interrupt from the level 2 interrupt controller. 前記レベル2割込みコントローラが、第1のベクトル識別子を前記レベル1割込みコントローラに伝達するようにさらに構成される、請求項9に記載のマルチスレッドプロセッサ。   The multithreaded processor of claim 9, wherein the level 2 interrupt controller is further configured to communicate a first vector identifier to the level 1 interrupt controller. 前記単一の命令が、割込み自動無効化クリア(CIAD)命令である、請求項9に記載のマルチスレッドプロセッサ。   The multithreaded processor of claim 9, wherein the single instruction is a clear interrupt automatic invalidation (CIAD) instruction. 前記コアが、前記コアが前記第2の割込みを受け取る準備を完了したことを、前記第2の割込みにサービスできる前記コア内のスレッドを識別するように構成されたロジックによって判定するように構成される、請求項9に記載のマルチスレッドプロセッサ。   The core is configured to determine that the core is ready to receive the second interrupt by logic configured to identify a thread in the core that can service the second interrupt. The multi-thread processor according to claim 9. 前記ロジックが、前記第2の割込みにサービスできる優先順位が最も低いスレッドを識別するように構成される、請求項13に記載のマルチスレッドプロセッサ。   14. The multithreaded processor of claim 13, wherein the logic is configured to identify the lowest priority thread that can service the second interrupt. 前記ロジックが、前記第2の割込みにサービスできるアイドルスレッドを識別するように構成される、請求項13に記載のマルチスレッドプロセッサ。   The multithreaded processor of claim 13, wherein the logic is configured to identify an idle thread that can service the second interrupt. 少なくとも1つの半導体ダイ内に統合される、請求項9に記載のマルチスレッドプロセッサ。   The multithreaded processor of claim 9, wherein the multithreaded processor is integrated within at least one semiconductor die. セットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、通信デバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、およびコンピュータから成る群から選択されるデバイス内に統合される、請求項9に記載のマルチスレッドプロセッサ。   10. Integrated in a device selected from the group consisting of a set top box, music player, video player, entertainment unit, navigation device, communication device, personal digital assistant (PDA), fixed location data unit, and computer. A multi-thread processor as described in 1. 請求項1乃至8のいずれか1項に記載の方法を実行するための手段を備えた装置。   Apparatus comprising means for performing the method according to any one of claims 1 to 8. プロセッサによって実行されたときに、請求項1乃至8のいずれか1項に記載の方法を前記プロセッサに実行させるコードを含む、非一時的なコンピュータ可読記憶媒体。   A non-transitory computer readable storage medium comprising code that, when executed by a processor, causes the processor to perform the method of any one of claims 1-8.
JP2015229471A 2011-10-04 2015-11-25 Low-latency 2-level interrupt controller interface with multi-thread processor Expired - Fee Related JP6153991B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/252,670 US8972642B2 (en) 2011-10-04 2011-10-04 Low latency two-level interrupt controller interface to multi-threaded processor
US13/252,670 2011-10-04

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2014534728A Division JP5847949B2 (en) 2011-10-04 2012-10-04 Low-latency 2-level interrupt controller interface with multi-thread processor

Publications (2)

Publication Number Publication Date
JP2016095855A true JP2016095855A (en) 2016-05-26
JP6153991B2 JP6153991B2 (en) 2017-06-28

Family

ID=47172881

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2014534728A Expired - Fee Related JP5847949B2 (en) 2011-10-04 2012-10-04 Low-latency 2-level interrupt controller interface with multi-thread processor
JP2015229471A Expired - Fee Related JP6153991B2 (en) 2011-10-04 2015-11-25 Low-latency 2-level interrupt controller interface with multi-thread processor

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2014534728A Expired - Fee Related JP5847949B2 (en) 2011-10-04 2012-10-04 Low-latency 2-level interrupt controller interface with multi-thread processor

Country Status (6)

Country Link
US (1) US8972642B2 (en)
EP (1) EP2764442B1 (en)
JP (2) JP5847949B2 (en)
KR (1) KR101563576B1 (en)
CN (1) CN103874990B (en)
WO (1) WO2013052684A2 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor
US9110830B2 (en) * 2012-01-18 2015-08-18 Qualcomm Incorporated Determining cache hit/miss of aliased addresses in virtually-tagged cache(s), and related systems and methods
US10394730B2 (en) * 2014-11-14 2019-08-27 Cavium, Llc Distributed interrupt scheme in a multi-processor system
US10067892B2 (en) * 2015-03-06 2018-09-04 Microchip Technology Incorporated Microcontroller or microprocessor with dual mode interrupt
US11507414B2 (en) 2020-11-25 2022-11-22 Cadence Design Systems, Inc. Circuit for fast interrupt handling
US11755362B2 (en) 2021-06-11 2023-09-12 International Business Machines Corporation Techniques for handling escalation of interrupts in a data processing system
US12020066B2 (en) 2021-06-11 2024-06-25 International Busin ess Machines Corporation Asynchronous completion notification in a multi-core data processing system
US11645215B2 (en) 2021-06-11 2023-05-09 International Business Machines Corporation Efficient selection of a particular processor thread for handling an interrupt

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331156A (en) * 2005-05-27 2006-12-07 Renesas Technology Corp Semiconductor device

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4420806A (en) * 1981-01-15 1983-12-13 Harris Corporation Interrupt coupling and monitoring system
US5555420A (en) * 1990-12-21 1996-09-10 Intel Corporation Multiprocessor programmable interrupt controller system with separate interrupt bus and bus retry management
US5805841A (en) * 1991-07-24 1998-09-08 Micron Electronics, Inc. Symmetric parallel multi-processing bus architeture
US5367689A (en) * 1992-10-02 1994-11-22 Compaq Computer Corporation Apparatus for strictly ordered input/output operations for interrupt system integrity
US5530872A (en) * 1992-12-23 1996-06-25 International Business Machines Corporation Method and system for directing device driver to service multiple sequential interrupt requests generated by I/O device connected thereto
DE19501674A1 (en) * 1994-02-03 1995-08-10 Tektronix Inc Interface circuit for management of data transfer between processor
DE4406094C2 (en) 1994-02-25 2000-04-13 Lp Elektronik Gmbh Device for operating a control application
US5745772A (en) 1996-08-02 1998-04-28 Micron Electronics, Inc. Advanced programmable interrupt controller
US5944809A (en) * 1996-08-20 1999-08-31 Compaq Computer Corporation Method and apparatus for distributing interrupts in a symmetric multiprocessor system
US5905897A (en) * 1997-03-20 1999-05-18 Industrial Technology Research Institute Method and apparatus for selecting a nonblocked interrupt request
US6418496B2 (en) * 1997-12-10 2002-07-09 Intel Corporation System and apparatus including lowest priority logic to select a processor to receive an interrupt message
US6356354B1 (en) * 1998-09-18 2002-03-12 Hewlett-Packard Co. System having an arithmetic-logic circuit for determining the maximum or minimum of a plurality of codes
IT1308343B1 (en) * 1999-02-03 2001-12-11 St Microelectronics Srl PROCEDURE TO ARBITRATE INTERRUPTION PRIORITIES BETWEEN PERIPHERALS IN A MICROPROCESSOR BASED SYSTEM
US6477600B1 (en) * 1999-06-08 2002-11-05 Intel Corporation Apparatus and method for processing isochronous interrupts
JP3769428B2 (en) * 1999-09-30 2006-04-26 富士通株式会社 Information processing apparatus capable of holding floating interrupt and interrupt condition change instruction execution method
US6662297B1 (en) * 1999-12-30 2003-12-09 Intel Corporation Allocation of processor bandwidth by inserting interrupt servicing instructions to intervene main program in instruction queue mechanism
US6772241B1 (en) * 2000-09-29 2004-08-03 Intel Corporation Selective interrupt delivery to multiple processors having independent operating systems
US20040111593A1 (en) 2002-12-05 2004-06-10 International Business Machines Corporation Interrupt handler prediction method and system
US20040117532A1 (en) * 2002-12-11 2004-06-17 Bennett Steven M. Mechanism for controlling external interrupts in a virtual machine system
US7350005B2 (en) 2003-05-23 2008-03-25 Arm Limited Handling interrupts in a system having multiple data processing units
US7051146B2 (en) * 2003-06-25 2006-05-23 Lsi Logic Corporation Data processing systems including high performance buses and interfaces, and associated communication methods
GB2403822B (en) * 2003-07-07 2006-05-10 Advanced Risc Mach Ltd Data processing apparatus and method for handling interrupts
US7177967B2 (en) * 2003-09-30 2007-02-13 Intel Corporation Chipset support for managing hardware interrupts in a virtual machine system
US7237051B2 (en) * 2003-09-30 2007-06-26 Intel Corporation Mechanism to control hardware interrupt acknowledgement in a virtual machine system
DE10361364B4 (en) * 2003-12-29 2010-07-01 Advanced Micro Devices, Inc., Sunnyvale Device for handling interrupt events, with which level-sensitive or level-sensitive interrupt requests are converted into edge-triggered interrupt messages
US7934082B2 (en) * 2004-08-27 2011-04-26 Panasonic Corporation Information processing apparatus and exception control circuit
EP1856617A1 (en) 2005-02-28 2007-11-21 Koninklijke Philips Electronics N.V. Data processing system with interrupt controller and interrupt controlling method
US7424563B2 (en) * 2006-02-24 2008-09-09 Qualcomm Incorporated Two-level interrupt service routine
US7533207B2 (en) * 2006-12-06 2009-05-12 Microsoft Corporation Optimized interrupt delivery in a virtualized environment
JP4249779B2 (en) * 2006-12-25 2009-04-08 株式会社東芝 Device controller
US7769938B2 (en) * 2007-09-06 2010-08-03 Intel Corporation Processor selection for an interrupt identifying a processor cluster
US7657683B2 (en) 2008-02-01 2010-02-02 Redpine Signals, Inc. Cross-thread interrupt controller for a multi-thread processor
US8291202B2 (en) * 2008-08-08 2012-10-16 Qualcomm Incorporated Apparatus and methods for speculative interrupt vector prefetching
US7849247B2 (en) 2008-10-14 2010-12-07 Freescale Semiconductor, Inc. Interrupt controller for accelerated interrupt handling in a data processing system and method thereof
US8302109B2 (en) * 2009-02-24 2012-10-30 International Business Machines Corporation Synchronization optimized queuing system
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
US8312195B2 (en) * 2010-02-18 2012-11-13 Red Hat, Inc. Managing interrupts using a preferred binding between a device generating interrupts and a CPU
US8458386B2 (en) * 2010-12-07 2013-06-04 Apple Inc. Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements
US8688883B2 (en) * 2011-09-08 2014-04-01 Intel Corporation Increasing turbo mode residency of a processor
US8972642B2 (en) * 2011-10-04 2015-03-03 Qualcomm Incorporated Low latency two-level interrupt controller interface to multi-threaded processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006331156A (en) * 2005-05-27 2006-12-07 Renesas Technology Corp Semiconductor device

Also Published As

Publication number Publication date
JP6153991B2 (en) 2017-06-28
US8972642B2 (en) 2015-03-03
US20130086290A1 (en) 2013-04-04
KR101563576B1 (en) 2015-10-27
CN103874990B (en) 2016-08-17
JP2014534506A (en) 2014-12-18
CN103874990A (en) 2014-06-18
KR20140082787A (en) 2014-07-02
WO2013052684A2 (en) 2013-04-11
EP2764442B1 (en) 2016-01-20
WO2013052684A3 (en) 2013-06-20
EP2764442A2 (en) 2014-08-13
JP5847949B2 (en) 2016-01-27

Similar Documents

Publication Publication Date Title
JP6153991B2 (en) Low-latency 2-level interrupt controller interface with multi-thread processor
US8260996B2 (en) Interrupt optimization for multiprocessors
US8656145B2 (en) Methods and systems for allocating interrupts in a multithreaded processor
US8963933B2 (en) Method for urgency-based preemption of a process
US7853743B2 (en) Processor and interrupt controlling method
KR102219545B1 (en) Mid-thread pre-emption with software assisted context switch
RU2651238C2 (en) Synchronization of interrupt processing for energy consumption reduction
EP2972787B1 (en) Eliminating redundant synchronization barriers in instruction processing circuits, and related processor systems, methods, and computer-readable media
JP2015079542A (en) Interrupt distribution scheme
US20150127927A1 (en) Efficient hardware dispatching of concurrent functions in multicore processors, and related processor systems, methods, and computer-readable media
CN114579285B (en) Task running system and method and computing device
WO2023071508A1 (en) Inter-thread interrupt signal transmission
WO2016182683A1 (en) System and method for dynamic granularity control of parallelized work in a portable computing device (pcd)
WO2014025815A1 (en) Fusing flag-producing and flag-consuming instructions in instruction processing circuits, and related processor systems, methods, and computer-readable media
CN105487989A (en) Interruption controller and interruption control method for reducing response delay and improving system efficiency
US9146741B2 (en) Eliminating redundant masking operations instruction processing circuits, and related processor systems, methods, and computer-readable media
EP2856304B1 (en) Issuing instructions to execution pipelines based on register-associated preferences, and related instruction processing circuits, processor systems, methods, and computer-readable media
US9552313B2 (en) Delivering real time interrupts with an advanced programmable interrupt controller
JP6354333B2 (en) Information processing apparatus and timer setting method
JP2014203230A (en) Computer system, interruption processing program of computer system and interruption processing method of computer system
US9460033B2 (en) Apparatus and method for interrupt collecting and reporting status and delivery information

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160301

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20160301

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20160405

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160920

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170306

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170508

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170531

R150 Certificate of patent or registration of utility model

Ref document number: 6153991

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees