(57)【要約】  プロセッサは、第１のコアを含む少なくとも１つのコア及び割込遅延論理を開示し、かつ、これらを含む。割込遅延論理は、第１の時点で第１の割り込みを受信し、第２の割り込みが第１のコアにより処理されるときに、第１の割り込みが第２の時点でペンディングされていない限り、第１の割り込みが処理されることを、第１の時点で開始する第１の時間遅延で遅延させる。第１の割り込みが第２の時点でペンディング中である場合、割込遅延論理は、第１の時間遅延の完了前に第１の割り込みの処理を開始することを第１のコアに指示する。他の実施形態が開示され、特許請求される。
2017509059.tif 000002
【特許請求の範囲】
【請求項１】
第１のコアを含む少なくとも１つのコアと、
割込遅延論理と
を備え、
前記割込遅延論理は、
第１の時点で第１の割り込みを受信し、
第２の割り込みが前記第１のコアにより処理される第２の時点で第１の割り込みがペンディングされていない限り、前記第１の割り込みの処理を、前記第１の時点で開始する第１の時間遅延で遅延させ、
前記第１の割り込みが前記第２の時点でペンディング中である場合、前記第１の時間遅延の完了の前に前記第１の割り込みの処理を開始することを前記第１のコアに指示する、プロセッサ。
【請求項２】
受信された複数の割り込みが前記第２の時点でペンディング中であるときに、前記第１のコアは、前記第２の時点に開始する第１のアクティブ期間の間に、前記ペンディング中の複数の割り込みを処理し、前記第１のコアは、前記第１のアクティブ期間を通してアクティブ状態にある、請求項１に記載のプロセッサ。
【請求項３】
前記第１のコアは、前記第２の割り込み及び前記ペンディング中の複数の割り込みが処理された後に、前記アクティブ状態からインアクティブ状態に遷移する、請求項２に記載のプロセッサ。
【請求項４】
前記第１のコアは、前記第１の割り込み及び前記第２の割り込みが処理されている間、アクティブ状態にあり、前記第１の割り込み及び前記第２の割り込みが処理された後にインアクティブ状態に遷移する、請求項１に記載のプロセッサ。
【請求項５】
前記第２の割り込みは、周期的に受信され、受信した前記第２の割り込みの発生ごとに、前記第２の割り込みは、意図的に遅延させられることなく前記第１のコアにより処理され、前記割込遅延論理は、対応する時間遅延の完了前、かつ、前記コアがアクティブ状態にある間に、各追加のペンディング中である割り込みの処理を開始することを前記第１のコアに指示する、請求項１に記載のプロセッサ。
【請求項６】
前記第２の割り込みの受信の発生ごとに、第２の割り込み及び複数の前記追加のペンディング中である割り込みの処理が完了すると、前記第１のコアは、インアクティブ状態に遷移することを更に備える、請求項５に記載のプロセッサ。
【請求項７】
前記割込遅延論理は、更に、第３の時点で第３の割り込みを受信し、第２の時間遅延を前記第３の割り込みに割り当て、
前記割込遅延論理は、
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディングされていない限り、前記第３の時点から前記第２の時間遅延に前記第３の割り込みの処理を遅延させ、
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディング中である場合、前記第２の時間遅延を完了することなく前記第３の割り込みを処理することを前記第１のコアに指示する、請求項１に記載のプロセッサ。
【請求項８】
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディング中でない場合、前記割込遅延論理は、前記第２の時間遅延の完了後に前記第３の割り込みを処理することを前記コアに指示する、請求項７に記載のプロセッサ。
【請求項９】
前記割込遅延論理は、前記第１の時間遅延をカウントするカウンタを含む、請求項１に記載のプロセッサ。
【請求項１０】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）と、
プロセッサと
を備え、
前記プロセッサは、
１又は複数のコアと、
１又は複数の受信された割り込みのそれぞれを前記１又は複数のコアのうちの第１のコアに振り分ける割込コントローラと、
割込遅延コントローラと
を有し、
前記割込遅延コントローラは、
対応する割り込みを処理するための各時間遅延をカウントする１又は複数の遅延カウンタと、
第１の割り込みが処理されることに応答して、前記各時間遅延の満了前に、各ペンディング中の割り込みを前記割込コントローラに送信するペンディング割込リリース論理と
を含み、
各遅延カウンタは、前記プロセッサが前記対応する割り込みを受信すると、各カウントを開始する、システム。
【請求項１１】
第２の割り込みに関連する時間遅延の間に処理中の割り込みがない場合、前記割込遅延コントローラは、前記対応する遅延カウンタの前記カウントが完了すると、前記割り込みを前記割込コントローラに送信する、請求項１０に記載のシステム。
【請求項１２】
第２の遅延カウンタの前記カウントが完了したときに、前記ペンディング割込リリース論理は、各ペンディング中の割り込みを前記割込コントローラに送信し、前記各ペンディング中の割り込みは、前記第１のコアが前記アクティブ状態にある間に処理される、請求項１０に記載のシステム。
【請求項１３】
前記ペンディング中の割り込みが処理された後に、前記対応するコアは、インアクティブになる、請求項１０に記載のシステム。
【請求項１４】
前記プロセッサは、ハード割り込みを受信すると、意図的に遅延させることなく前記ハード割り込みを前記割込コントローラに送信する割込検出論理を更に含む、請求項１０に記載のシステム。
【請求項１５】
前記プロセッサは、受信した各ソフト割り込みに対して、対応する遅延カウンタを割り当てるカウンタ割当論理を更に含む、請求項１０に記載のシステム。
【請求項１６】
プロセッサのコアにより第１の時点で開始する第１の割り込みを処理する段階と、
前記プロセッサが、第２の時点で受信した第２の割り込みに対して時間遅延を割り当てる段階と、
前記第２の割り込みが前記第１の時点でペンディングされていない限り、前記第２の時点で開始した前記時間遅延が満了した後に、前記コアが、前記第２の割り込みを処理する段階と、
前記第２の割り込みが前記第１の時点でペンディング中である場合、前記時間遅延の満了前に、前記コアが、前記第２の割り込みを処理する段階と
を備える方法。
【請求項１７】
前記第２の割り込みが前記第１の時点でペンディング中である場合、前記第１の割り込みの処理に応答して、前記コアがアクティブ状態にある間に、前記第２の割り込みを処理する、請求項１６に記載の方法。
【請求項１８】
前記第１の割り込み及び前記第２の割り込みが処理された後に、前記コアをインアクティブ状態に遷移させる段階を更に備える、請求項１６に記載の方法。
【請求項１９】
複数の割り込みが前記第１の時点でペンディング中である場合、前記複数の割り込みのそれぞれの各時間遅延の完了前に、前記コアにより処理させるべく、前記複数の割り込みを前記コアに送信する段階
を更に備え、
前記コアは、前記複数の割り込みが処理されている間、アクティブ状態に維持される、請求項１６に記載の方法。
【請求項２０】
全てのペンディング中の割り込みが処理された後に、前記コアをインアクティブ状態に遷移させる段階
を更に備える、請求項１９に記載の方法。
【請求項２１】
前記時間遅延は、前記第２の割り込みの送信元である周辺デバイスの１又は複数の特性に基づいて判断される、請求項１６に記載の方法。
【請求項２２】
複数の割り込みのそれぞれに対応する時間遅延を割り当てる段階
を更に備え、
前記複数の割り込みのそれぞれは、別の割り込みが処理されていない限り、各受信時点から開始する前記対応する時間遅延で処理が遅延させられる、請求項１６に記載の方法。
【請求項２３】
特定の割り込みの処理が開始したときに、前記対応する時間遅延を完了させることなく処理するために、各ペンディング中の割り込みを前記コアに送信する段階
を更に備える、請求項２２に記載の方法。
【請求項２４】
請求項１６から２３のいずれか一項に記載の方法を実行するための手段を備える、装置。
【請求項２５】
実行されるときに、システムに、請求項１６から２３のいずれか一項に記載の方法を実行させることを可能とする複数の命令を含む、少なくとも１つのコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、割り込み処理に関連する。
【背景技術】
【０００２】
例えば、スマートフォン、タブレット等の携帯デバイスのようなデバイスは、入力を提供し得る周辺デバイスの多様化の結果として生じる高レートの非同期イベントを有し得る。例えば、非同期イベントは、モーションセンサ、光センサ、タッチスクリーン等を含み得る。また、これらの携帯デバイスは、セルラーネットワークページング、周期的なタイマーイベント等に関連する周期的な割り込みのような同期イベントを受信し得る。
【０００３】
プロセッサに入力される割り込みメッセージ（「割り込み」）は、同期イベント及び非同期イベントに関連し、プロセッサに、スラッシングさせ、例えば、アクティブ状態とインアクティブ状態との間を過度に変動させる恐れがあり、次に、インアクティブからアクティブ状態への遷移の結果としての「ウェイクアップ」電力コストに起因する高い電力消費を引き起こす恐れがあり、その結果、例えば、バッテリ等の電源の再充電間の期間が短縮される可能性がある。
【図面の簡単な説明】
【０００４】
【図１】本発明の実施形態に係るシステムのブロック図である。
【０００５】
【図２】本発明の複数の実施形態に係る割込遅延コントローラのブロック図である。
【０００６】
【図３Ａ】本発明の実施形態に係るプロセッサコアのブロック図である。
【０００７】
【図３Ｂ】本発明の複数の実施形態に係る処理されるべき複数の割り込みのタイミング図である。
【０００８】
【図４】本発明の実施形態に係るプロセッサにより複数の割り込みイベントを処理する方法のフロー図である。
【０００９】
【図５】本発明の実施形態に係るシステムのブロック図である。
【００１０】
【図６】本発明の別の実施形態に係るシステムのブロック図である。
【００１１】
【図７】本発明の実施形態に係るシステムオンチップのブロック図である。
【発明を実施するための形態】
【００１２】
複数の割り込みソースは、ソースの特性及びソースから受信した複数の割り込みを処理するための要求に従って分類されることができる。例えば、いくつかの割り込み（本明細書における「ハード割り込み」又は「クリティカルな割り込み」、例えば、セルラー伝送規格に関連する、例えば、周期的な割り込み）は、処理する前に、意図的に遅延させられることなくサービス提供される。他の割り込み（本明細書における「ソフト割り込み」又は「非クリティカルな割り込み」）は、時間的制約が少なく、例えば、周辺デバイス／アプリケーション等の割り込みソースの性質に従って割り当てられる時間遅延で、意図的に遅延させることができる。
【００１３】
実施形態において、プログラム可能な遅延値をイベントごと又は複数のイベントのグループごとに確立することができる。複数の割り込みは、プロセッサがインアクティブ（「スリープ」）状態からアクティブ化（「アウェイク化」）されたときに、プロセッサが複数の割り込みを処理（例えば、「バッチ処理」）することができるように、グループ化されることができる。複数の割り込みのバッチ処理は、プロセッサが特定の時間フレームで経験するアクティブ／インアクティブサイクルの総数を低減でき、プロセッサの全体的な消費電力を低くできる。
【００１４】
複数の実施形態において、プログラムされた遅延タイマー値は、例えば、プロセッサ及び／又はシステムオンチップ（ＳｏＣ）が節電（インアクティブ）状態にあるときに、例えば、アドバンスドコンピューティングアンドパワーインタフェース（ＡＣＰＩ）パワーダウン状態Ｃ１〜Ｃ６のうちの１つにあるときに、（例えば、割り込みに関連するハンドラの実行を利用した）割り込み処理を遅延させるべく、オペレーティングシステムで利用可能である。様々なタイプの割り込みに対する複数のプログラムされた遅延値は、プロセッサ又はＳｏＣの各インアクティブからアクティブへの遷移に起因して大きな電力消費を引き起こす可能性がある、各割り込みの個別処理の代わりに割り込み処理のバッチ処理を可能とする。実施形態において、割り込み処理は、各割り込みに割り当てられる対応する遅延時間に動的に基づいて複数のイベントを自動的にグループ化する。
【００１５】
図１は、本発明の実施形態に係るシステム１００のブロック図である。システム１００は、１又は複数のコア１０２０−１０２Ｎ、割込コントローラ１０４及び割込遅延コントローラ１０６を含むプロセッサ１１０と、プロセッサ１１０に連結される複数の周辺デバイス１２００−１２０Ｍと、プロセッサ１１０に連結されるダイナミックランダムアクセスメモリ（ＤＲＡＭ）１３０とを含む。
【００１６】
動作中、プロセッサ１１０は、周辺デバイス１２００−１２０Ｍのうちの１又は複数から、複数の割り込みメッセージ（また、本明細書において「複数の割り込み」）を受信してよい。複数の割り込み（「ハード割り込み」）の１又は複数は、割り込みが、例えば、意図的に遅延させられずに、受信したときに処理されるための対応するハードリアルタイム割り込みイベントに関連してよい。例えば、ハード割り込みは、セルラー規格に関連する周期的なイベントに関連してよく、ハード割り込みは、例えば、意図的に時間遅延させられることなく、受信されると、プロセッサ１１０により処理される。
【００１７】
他の割り込みは、周期的（例えば、同期）又は非周期的（例えば、非同期）であってよいが、複数のハードリアルタイム割り込みイベントに関連しておらず、従って、そのような複数の割り込み（「ソフト割り込み」）の処理は、遅延させられてよい、例えば、意図的に時間を遅延させられてよい。例えば、複数の非同期の割り込みは、センサ入力、タッチスクリーン、周期的に受信され得るデータ等のような複数の非同期イベントに関連してよい。
【００１８】
複数のソフトイベントを作成する（例えば、複数のソフト割り込みを生成する）周辺デバイス１２００−１２０Ｍごとに、各ソフト割り込みを処理する対応する時間遅延が割り当てられてよい。発信元の周辺デバイスから受信された複数のソフト割り込みを処理する時間遅延は、発信元の周辺デバイスの特性に基づいて判断されてよく、システム１００の使用の前に判断されてよい。例えば、複数のソフト割り込みに対する許容可能な時間遅延の判断において考慮されるべき１つの要因は、関連するイベント発生の最悪ケースの周期（ｗｏｒｓｔ  ｃａｓｅ  ｆｒｅｑｕｅｎｃｙ）であってよい。例えば、最悪ケース推定において、イベントが１００ミリ秒毎に発生する場合、関連する割り込みを処理する１００μｓの遅延は、性能に対する影響を無視できる。時間遅延は、プロセッサ１１０による１又は複数の割り込みの受信前に、提供されてよい（例えば、プロセッサ１１０内に格納されてよい）。
【００１９】
周辺デバイス１２００−１２０Ｍの１又は複数から割込遅延コントローラ１０６により受信された複数のハード割り込みは、意図的に時間遅延させられることなく処理されるべく、割込コントローラ１０４に渡されてよい。ソフト割り込みがプロセッサ１１０により受信されたときに、割込遅延コントローラ１０６は、ソフト割り込みを提供した周辺デバイス１２０に基づいて、対応する時間遅延（例えば、割込遅延コントローラ１０６内に格納されている）を選択してよい。受信したソフト割り込みごとに、割込遅延コントローラは、例えば、対応するタイマーを用いて、対応する時間遅延のカウントを開始してよく、対応するタイマーが時間遅延の終了に至ったときに、ソフト割り込みは、割込コントローラ１０４へとリリースされてよく、ソフト割り込みは、コア１０２０−１０２Ｎのうちの１つにより処理されるべく、割込コントローラ１０４により振り分けられてよい。
【００２０】
実施形態において、ハード割り込みが、即時処理のためにプロセッサ１１０により受信されたときに、割込遅延コントローラ１０６は、いずれのソフト割り込みがペンディング中であるか否かを判断してよく、例えば、関連するタイマーが、ソフト割り込みに対する時間遅延をカウントすることを開始しており、かつ、そのカウントを完了していないかを判断してよい。割込遅延コントローラ１０６は、コア１０２０−１０２Ｎのうちの１つによる処理のために、例えば、関連するタイマーのカウントを完了することなく、１又は複数のペンディング中のソフト割り込みを割込コントローラ１０４へとリリースしてよい。コアによる処理のためにリリースされる複数の割り込みは、コアがアクティブである間、例えば、コアが、リリースされた全てのソフト割り込みの処理が完了するまでに、ハード割り込みが受信された時点からアクティブを維持している間、に処理される。
【００２１】
別の実施形態において、第１のソフト割り込みは、タイマーの満了に起因して、例えば、関連するタイマーが各時間遅延のそのカウントを完了したことに起因して、コア１０２０−１０２Ｎのうちの第１のコアにより処理される。割込遅延コントローラ１０６は、各時間遅延のそれぞれの完了前に第１のコアに処理させるために、他の１又は複数のペンディング中のソフト割り込みを割込コントローラ１０４へとリリースしてよい。第１のコアによる処理のためにリリースされる複数の割り込みは、バッチ処理され、例えば、第１のソフト割り込みの処理の結果として、第１のコアがアクティブである間に処理される。コアは、リリースされた複数の割り込みの処理が完了するまでアクティブを維持する。
【００２２】
上記で説明した複数の実施形態のそれぞれにおいて、特定の割り込みが、処理されるべく、割込コントローラに送信されるときに、割込遅延コントローラ１０６は、コアの単一アクティブ期間の間に処理されるべく、１又は複数のペンディング中の割り込みをリリースしてよい。従って、特定のコアは、処理される割り込みごとにインアクティブとアクティブ状態との間を変動しない。複数の割り込みのバッチ処理は、スラッシングを低減することができ、さもなければ「ウェイクアップ」電力コストに起因して費やされることになるプロセッサの消費電力を低減することができる。つまり、複数の割り込みをバッチ処理することにより、処理される複数の割り込みに対して、ウェイクアップの複数の過程から単一のウェイクアップ過程となって、コアを再アクティブ化するために費やされる電力は、低減され得る。
【００２３】
図２は、本発明の複数の実施形態に係る割込遅延コントローラ２００のブロック図である。割込遅延コントローラ２００は、時間遅延カウンタ２１０１−２１０Ｌと、時間遅延レジスタ２２０１−２２０Ｌと、割込検出論理２２４、カウンタ割当論理２２６、及びペンディング割込リリース論理２２８を含む割込遅延論理２２２とを含む。割込検出論理２２４、カウンタ割当論理２２６、及びペンディング割込リリース論理２２８を含む割込遅延論理２２２は、ソフトウェア、ハードウェア、ファームウェア又はこれらの組み合わせに実装されてよい。
【００２４】
動作中、複数の周辺デバイスは、割り込み２０２１−２０２ｊを生成してよい。いくつかの周辺デバイスから受信された複数の割り込みのいくつかは、例えば、意図的に遅延させられることなく処理される複数のハード割り込みであってよい。他の割り込みは、複数のソフト割り込みであってよく、処理の前に遅延させられてよい。
【００２５】
割込検出論理２２４は、受信される各ハード割り込みを検出してよく、処理のために特定のコアに出力されるべく、遅延させることなく割込コントローラ２３０に各ハード割り込みを送信してよい。
【００２６】
各カウンタ２１０１−２１０Ｌは、複数のソフト割り込みを発行する特定の周辺デバイスに対応する判断された時間遅延を格納する、関連する時間遅延レジスタ２１０１−２１０Ｌを有する。上記で説明されるように、特定の周辺デバイスに対する時間遅延は、（例えば、割込遅延コントローラ２００の動作の前に、）関連する時間遅延レジスタ２１０１−２１０Ｌに格納されてよく、複数の要因（例えば、性能に対する影響）に依存してよい。カウンタ割当論理２２６は、特定の周辺デバイスから受信した各割り込みを当該特定の周辺デバイスに関連する時間遅延レジスタ２２０ｉに対応するカウンタ２１０ｉに割り当ててよい。例えば、第１の割り込みが第１の周辺デバイスから受信されたときに、第１の割り込みは、第１の周辺デバイスに関連する第１の時間遅延値に対する時間カウントを開始する第１のタイマー２１０１に対して、カウンタ割当論理２２６により割り当てられてよく、レジスタ２２０１に格納される（例えば、第１の時間遅延値からのカウントダウンする又は、第１の時間遅延値へのカウントアップする）。時間カウントが満了したときに、割り込みは、割込コントローラ２３０により判断された複数のコアのうちの選択されたコアによる処理のために、割込コントローラ２３０へとリリースされる。
【００２７】
割込検出論理２２４は、ハード割り込みの受信を検出してよく、意図的に遅延させることなく、受信したハード割り込みを割込コントローラ２３０に振り分けてよい。ハード割り込みを処理することは、ペンディング割込リリース論理２２８をトリガして、割り当て時間遅延の完了前に、例えば、時間遅延カウンタ２１０を介して意図的に遅延させられている、ペンディング中である１又は複数のソフト割り込みを割込コントローラ２３０へとリリースしてよい。
【００２８】
また、カウンタ２１０がその関連する時間遅延のカウントを完了する過程ごとに、対応する割り込みは、プロセッサの特定のコア（割込コントローラ２３０により判断される特定のコア）により処理されるべく、割込コントローラ２３０へとリリースされる。割り込みのリリースによって、ペンディング割込リリース論理２２８が１又は複数のペンディング中の割り込みを、特定のコアにより処理されるべく、割込コントローラ２３０へとリリースさせてよい。
【００２９】
図３Ａを参照すると、本発明の一実施形態に係るプロセッサコア３００のブロック図が示されている。図３Ａに示されるように、プロセッサコア３００は、複数段のパイプライン化されたアウトオブオーダプロセッサであってよい。
【００３０】
コア３００は、本発明の複数の実施形態に係る割り込み遅延ユニット３０２を含んでよい。複数の割り込みは、様々な周辺デバイスから受信されてよく、割込検出論理３０４は、受信した割り込みがハード割り込みかソフト割り込みかを検出してよい。受信した割り込みがハード割り込みである場合、受信した割り込みは、フロントエンドユニット３１０に送信され、遅延させられることなく（例えば、意図的に時間遅延させられることを導入することなく）実行ユニット３２０により処理される。受信した割り込みがソフト割り込みである場合、割込検出論理３０４は、受信した割り込みに対して遅延カウンタ３０７１−３０７Ｌのうちの１つを割り当てるように、カウンタ割当論理３０６に指示してよい。割り当てられた遅延カウンタ３０７ｉは、判断された時間遅延Ｔｉをカウントしてよく、ここで、Ｔｉは、対応する時間遅延レジスタ３０９１−３０９Ｌに格納されており、割り込み遅延ユニット３０２は、対応する遅延カウンタ３０７ｉが各時間遅延Ｔｉをカウントする間に受信したソフト割り込みが処理されることを遅延させてよい。
【００３１】
本発明の複数の実施形態によれば、別の割り込み（例えば、ハード割り込み又は遅延カウンタが満了した別のソフト割り込み）が処理されるときに、受信した（ソフト）割り込みがペンディング中である（例えば、各遅延カウンタ３０７ｉが満了するまで割り込み遅延ユニット３０２によりストールされている）場合、ペンディング割込リリース論理３０８は、その各遅延カウンタ３０７ｉの満了前、かつ、実行ユニット３２０がアクティブである間に処理するために、ペンディング中のソフト割り込みをリリースさせてよい。
【００３２】
何の割り込みも処理されておらず、かつ、何の命令も処理されていない場合、電力調整論理３１８は、消費電力の完全にアクティブなレベルからより低いレベルに消費電力を低減することを実行ユニット３２０に指示してよい。複数の割り込み及び／又は複数の命令が処理されるべくキューに並べられたときに、電力調整論理３１８は、電源を入れた状態を再開することを実行ユニット３２０に指示してよい。
【００３３】
図３Ａに示されるように、コア３００は、フロントエンドユニット３１０を含み、フロントエンドユニット３１０は、実行される複数の命令をフェッチし、プロセッサにおける後の使用のためにそれらの命令を準備するために使用されてよい。例えば、フロントエンドユニット３１０は、フェッチユニット３０１、命令キャッシュ３０３及び命令デコーダ３０５を含んでよい。いくつかの実装において、フロントエンドユニット３１０は、マイクロコード記憶装置及びマイクロオペレーション記憶装置と併せて、トレースキャッシュを更に含んでよい。フェッチユニット３０１は、例えば、メモリ又は命令キャッシュ３０３から複数のマクロ命令をフェッチし、当該複数のマクロ命令を基本命令に、すなわち、プロセッサによる実行のための複数のマイクロオペレーションにデコードするべく、命令デコーダ３０５に供給してよい。
【００３４】
フロントエンドユニット３１０と、実行ユニット３２０との間には、複数のマイクロ命令を受信し、実行のために複数のマイクロ命令を準備することに使用され得るアウトオブオーダ（ＯＯＯ）エンジン３１５が連結される。より具体的には、ＯＯＯエンジン３１５は、レジスタファイル３３０及び拡張レジスタファイル３３５のような様々なレジスタファイル内における複数の格納位置上の複数の論理レジスタの名前を変更することを提供するだけでなく、マイクロ命令フローを再度順序付けし、実行のために必要な様々なリソースを割り当てる様々なバッファを含んでよい。レジスタファイル３３０は、整数及び浮動小数点操作に対する別個のレジスタファイルを含んでよい。拡張レジスタファイル３３５は、ストレージをベクトルサイズの単位、例えば、１レジスタあたり２５６又は５１２ビットで提供してよい。
【００３５】
様々なリソースは、実行ユニット３２０内に存在してよく、例えば、専用ハードウェアの中でも特に、様々な整数、浮動小数点及び単一命令複数データ（ＳＩＭＤ）論理ユニットを含む。例えば、そのような複数の実行ユニットは、他のそのような複数の実行ユニットの中でも特に、１又は複数の算術論理演算ユニット（ＡＬＵ）３２２を含んでよい。
【００３６】
複数の実行ユニットからの複数の結果は、リタイア論理、すなわち、リオーダバッファ（ＲＯＢ）３４０に提供されてよい。より具体的には、ＲＯＢ３４０は、実行される複数の命令に関連する情報を受信する様々なアレイ及び論理を含んでよい。この情報は、その後、ＲＯＢ３４０により検証され、複数の命令が正当にリタイアされ、かつ、プロセッサのアーキテクチャ状態にコミットしたデータをもたらすことができるか否か、又は、複数の命令の適切なリタイアを防ぐ１又は複数の例外が発生したか否かが判断される。当然ながら、ＲＯＢ３４０は、リタイアに関連する他の動作を処理してよい。
【００３７】
図３Ａに示されるように、ＲＯＢ３４０は、キャッシュ３５０に連結され、一実施形態において、キャッシュ３５０は、低レベルキャッシュ（例えば、Ｌ１キャッシュ）であってよいが、本発明の範囲は、この点に限定されない。また、実行ユニット３２０は、キャッシュ３５０に直接連結されることができる。キャッシュ３５０からのデータ通信は、より高いレベルのキャッシュ、システムメモリ等と行われてよい。図３Ａの実施形態では、この高レベルとともに示されるが、本発明の範囲は、この点に限定されないことと理解されたい。例えば、図３Ａの実装は、いわゆるｘ８６命令セットアーキテクチャ（ＩＳＡ）のようなアウトオブオーダマシンに関するが、本発明の範囲は、この点に限定されない。つまり、他の実施形態は、インオーダプロセッサ、ＡＲＭベースのプロセッサのような縮小命令セットコンピューティング（ＲＩＳＣ）プロセッサ、又は、エミュレーションエンジン及び関連する論理回路を介して異なるＩＳＡの複数の命令及び複数の動作をエミュレートできるＩＳＡの別のタイプのプロセッサに実装されてよい。
【００３８】
図３Ｂは、本発明の複数の実施形態に係る、処理されるべき複数の割り込みのタイミング図である。
【００３９】
割り込み１メッセージ（３５４−３６０）は、ハード割り込みである。割り込み２メッセージ（３６２、３６６、３７０、３７４）は、周期的なソフト割り込みである。割り込み３メッセージ（３７８、３８２）は、非周期的なソフト割り込みである。
【００４０】
全ての割り込みは、同一のコアにより処理される。複数のソフト割り込みは、遅延させられてよく、図２に関して上記で説明されたように、各ソフト割り込みは、対応する時間遅延を有する。周期的なソフト割り込み３６２、３６６、３７０及び３７４のそれぞれは、遅延させられた割り込み３６４、３６８、３７２、及び３７６としてそれぞれ処理されるべく、時間的に遅延させられる。非同期ソフト割り込み３７８及び３８２のそれぞれは、割り込み３８０及び３８４としてそれぞれ処理されるべく、時間的に遅延させられる。
【００４１】
ハード割り込み３５４−３６０のそれぞれは、意図的に遅延させられることなく処理され、各割り込み３５４−３６０は、複数の割り込みを処理するコアにおけるインアクティブからアクティブへの遷移（３８６、３９０、３９４、３９６）に関連する。割り込み３５４、３５６、３５８及び３６０は、コアの時点３８６、３９０、３９４及び３９６で、それぞれ処理される。
【００４２】
各割り込み３５４、３５６、３５８、３６０が処理されるにつれて、（例えば、まだ処理されておらず、対応する時間遅延期間の満了を待っている）１又は複数のペンディング中の割り込みは、コアがアクティブ状態にある間に処理されるべく、リリースされてよい。例えば、割り込み３７０は、３７２への処理のために遅延させられており（本明細書において、３７０→３７２と表記される）、割り込み３５８が処理されているときにはペンディング中である。従って、割り込み（３７０→３７２）は、時点３９４での処理のためにリリースされ、リリースは、割り込み３５８の処理によりトリガされる。このようにして、２つの割り込み（３５８及び３７０→３７２）は、３９４で開始するコアの同一のアクティブ期間において処理される。
【００４３】
割り込み３７４は、３７６へ遅延させられており、例えば、時点３９６で割り込み３６０が処理されるときにペンディング中である。従って、割り込み（３７４→３７６）は、３９６で開始するコアアクティビティの期間の間の処理のためにリリースされる。更に、割り込み３８２は、３８４へ遅延させられており、割り込み３６０の処理が開始するときにペンディング中である。従って、割り込み（３８２→３８４）は、３９６で開始するコアアクティビティの期間の間の処理のためにリリースされる。このようにして、３つの割り込み、３６０、（３７４→３７６）及び（３８２→３８４）は、３９６で開始するコアの連続的にアクティブな期間の間に処理される。
【００４４】
割り込み３６６は、３６８での処理のために遅延させられる。他の割り込みが３６６と３６８との間の期間で処理されるためにスケジューリングされていないので、遅延させられた割り込み（３６６→３６８）は、時点３９２で処理され、処理は、コアを時点３９２でインアクティブからアクティブへ遷移させる。コアは、遅延させられた割り込み（３６６→３６８）が処理された後に、インアクティブ状態に戻る。
【００４５】
割り込み３６２は、３６４へ遅延させられる（３６２→３６４）。非同期ソフト割り込み３７８は、３８０へ遅延させられる（３７８→３８０）。いずれかの他の割り込みが処理されることが予定されている一方、遅延させられた割り込み（３６２→３６４）は、ペンディング中ではなく、従って、３６４に対応する時点３８８で処理され、当該時点は、その時間遅延の終了時点である。遅延させられた割り込み（３７８→３８０）は、時点３８８でペンディング中であり、従って、遅延させられた割り込み（３６２→３６４）の処理に起因して、コアがアクティブ状態にある間の処理のためにリリースされる。このようにして、２つの割り込み３６４及び（３７８→３８０）は、３８８で開始する１つのアクティブ期間内に処理される。
【００４６】
コアのインアクティブからアクティブ状態への６つの遷移（３８６−３９６）の合計は、受信した１０回の割り込みを処理することに起因する。従って、複数のソフト割り込みの処理の前における時間遅延の導入は、コアのインアクティブからアクティブへの遷移の総数を低減できる。コアのインアクティブからアクティブへの遷移の回数の低減は、コアのインアクティブからアクティブへの遷移に関連する電力コストの低減に起因して総電力消費量を低減できる。
【００４７】
図４は、本発明の実施形態に係る、プロセッサによる複数の割り込みイベントを処理する方法のフロー図４００である。ブロック４１０で、プロセッサは、周辺デバイスから割り込みを受信する。判断ひし形４２０へと続くと、第１の割り込みが、例えば、遅延時間ＴＮ＝０のハードリアルタイムイベントに関連するハード割り込みである場合、ブロック４５０に進み、割り込みは、意図されない時間遅延でプロセッサにより処理される。判断ひし形４６０に進むと、他のペンディング中の割り込みがある場合、ブロック４５０に戻り、当該ペンディング中の割り込みが処理される。判断ひし形４６０で、他のペンディング中の割り込みがない場合、方法は、４７０で終了する。
【００４８】
判断ひし形４２０で、Ｎ番目の割り込みがハード割り込みでない場合、例えば、Ｎ番目の割り込みがハードリアルタイムイベントに関連していない場合、ブロック４３０へ進み、対応する遅延タイマーがＮ番目の割り込みの対応する時間遅延ＴＮをカウントすることを開始する。判断ひし形４４０へと移動すると、遅延タイマーが満了したときに、ブロック４５０へと進み、Ｎ番目の割り込みが処理される。判断ひし形４６０へと進むと、Ｎ番目の割り込みが処理されるときに、他のペンディング中の割り込みがある場合、ブロック４５０に戻り、例えば、Ｎ番目の割り込みの処理の代わりに、これらの遅延時間のそれぞれの満了前に、当該他のペンディング中の割り込みが処理される。判断ひし形４６０で、他のペンディング中の割り込みがない場合、方法は、４７０で終了する。
【００４９】
複数の実施形態は、様々なシステムのタイプに実装されてよい。図５を参照すると、本発明の実施形態に係るシステムのブロック図が示される。図５に示されるように、マルチプロセッサシステム５００は、ポイントツーポイント相互接続システムであり、ポイントツーポイント相互接続５５０を介して連結される第１のプロセッサ５７０及び第２のプロセッサ５８０を含む。図５に示すように、プロセッサ５７０及び５８０のそれぞれは、マルチコアプロセッサであってよく、第１及び第２のプロセッサコア（すなわち、コア５７４ａ及び５７４ｂ並びにコア５８４ａ及び５８４ｂ）を含むが、潜在的により多くのコアがプロセッサ内に存在してよい。本発明の複数の実施形態に従って、プロセッサ５７０は、割込遅延コントローラ５０２及び割込コントローラ５０４を含み、プロセッサ５８０は、割込遅延コントローラ５０６及び割込コントローラ５０８を含む。各割込遅延コントローラ５０２、５０６は、複数の入力割り込みを検出する。入力割り込みがハードリアルタイムイベントに関連する場合、割り込みは、意図的に遅延させられることなく処理されるべく、各割込コントローラ５０４、５０８に送信される。
【００５０】
ソフト割り込みである第１の割り込みに対し、第２の割り込みが処理されている間、第１の割り込みがペンディングされていない限り、処理されるべき第１の割り込みをコアに振り分ける各割込コントローラ５０４、５０８に第１の割り込みを送信する前に、割込遅延コントローラ５０２、５０６は、特定の遅延時間で割り込みの処理を遅延させる。本発明の複数の実施形態に従って、第２の割り込みが処理されている間、第１の割り込みがペンディング中である場合、割込遅延コントローラ５０２、５０６は、コアが第２の割り込みの処理によりトリガされるアクティブ状態にある間に処理するためにコアに振り分けられるべく、第１の割り込みを各割込コントローラ５０４、５０８へ送信する。
【００５１】
図５を更に参照すると、第１のプロセッサ５７０は、メモリコントローラハブ（ＭＣＨ）５７２及びポイントツーポイント（Ｐ−Ｐ）インタフェース５７６及び５７８を更に含む。同様に、第２のプロセッサ５８０は、ＭＣＨ５８２並びにＰ−Ｐインタフェース５８６及び５８８を含む。図５に示されるように、ＭＣＨ５７２及び５８２は、プロセッサを各メモリ、すなわち、メモリ５３２及びメモリ５３４に連結し、これらのメモリは、各プロセッサに対してローカルに取り付けられるシステムメモリ（例えば、ＤＲＡＭ）の一部であってよい。第１のプロセッサ５７０及び第２のプロセッサ５８０は、それぞれＰ−Ｐ相互接続５６２及び５８４を介してチップセット５９０に連結される。図５に示されるように、チップセット５９０は、Ｐ−Ｐインタフェース５９４及び５９８を含む。
【００５２】
更に、チップセット５９０は、Ｐ−Ｐ相互接続５３９を介してチップセット５９０と高性能グラフィックスエンジン５３８とを連結するインタフェース５９２を含む。次に、チップセット５９０は、インタフェース５９６を介して第１のバス５１６に連結されてよい。図５に示されるように、様々な入力／出力（Ｉ／Ｏ）デバイス５１４は、バスブリッジ５１８と併せて、第１のバス５１６に連結されてよく、バスブリッジ５１８は、第１のバス５１６を第２のバス５２０に連結する。一実施形態において、例えば、キーボード／マウス５２２、通信デバイス５２６、及び、コード５３０を含み得るディスクドライブ又は他の大容量ストレージデバイスのようなデータストレージユニット５２８を含む、様々なデバイスが、第２のバス５２０に連結されてよい。更に、オーディオ入力／出力（Ｉ／Ｏ）５２４は、第２のバス５２０に連結されてよい。本発明の複数の実施形態に従って、デバイス５１４、５２２、５２４、５２６のうちの１又は複数は、プロセッサ５７０又はプロセッサ５８０により処理されるべく、複数の割り込みを提供してよい。複数の実施形態は、スマート携帯電話、タブレットコンピュータ、ネットブック、ウルトラブック（登録商標）等のようなモバイルデバイスを含む他のタイプのシステムに組み込まれ得る。
【００５３】
複数の実施形態は、携帯電話のようなモバイルデバイスを含む他のタイプのシステムに組み込まれ得る。図６を参照すると、本発明の別の実施形態に係るシステムのブロック図が示される。図６に示されるように、システム６００は、モバイルデバイスであってよく、様々なコンポーネントを含んでよい。図６の俯瞰図に示されるように、アプリケーションプロセッサ６１０は、デバイスの中央処理ユニットであってよく、ストレージ６１５を含む、様々なコンポーネントと通信を行う。ストレージ６１５は、様々な実施形態において、プログラム及びデータストレージ部分の両方を含んでよい。
【００５４】
アプリケーションプロセッサ６１０は、更に、入力／出力システム６２０に連結されてよく、様々な実施形態において、入力／出力システム６２０は、ディスプレイ及びタッチキーパッドのような１又は複数の入力デバイスを含んでよく、処理されるときにタッチキーバッド自体をディスプレイ上に表示することができる。システム６００は、１又は複数のセンサ６７０からデータを受信し得る統合センサハブ（ＩＳＨ）６６０も含んでよい。いくつかの実施形態において、統合センサハブは、複数のソフト割り込みを検出し、対応する遅延時間（ＴＮ）でソフト割り込みの実行を遅延させる割込遅延コントローラ（ＩＤＣ）６６２を含む。本発明の複数の実施形態に従って、割り込みがペンディング中である間に別の割り込みが処理される場合、当該割り込みは、その時間遅延を完了することなく処理される。
【００５５】
本発明の複数の実施形態に従って、アプリケーションプロセッサ６１０は、割込遅延コントローラ（ＩＤＣ）６０２を含んでよい。ＩＤＣ６０２は、（例えば、送受信機６４０及び／又はベースバンドプロセッサ６３０から）ハードリアルタイムイベントに関連する入力ハード割り込みを検出してよく、処理（例えば、操作）されるべきアプリケーションプロセッサ６１０のコアに割り込みを送信する割込コントローラ（不図示）にハード割り込みを、意図的に遅延させることなく、送信してよい。
【００５６】
（例えば、Ｉ／Ｏ６２０及び／又は統合センサハブ６６０から受信した）ソフト割り込みである第１の割り込みについて、割込遅延コントローラ６０２は、第２の割り込みが第１のコアで処理されているときに、第１の割り込みがペンディングされていない限り、割込コントローラに第１の割り込みをリリースする前に第１の遅延時間で第１の割り込みの処理を遅延させてよい。割込コントローラは、処理されるべきアプリケーションプロセッサ６１０の第１のコアに第１の割り込みを送信する。本発明の複数の実施形態に従って、第１のコアで第２の割り込みが処理されているときに、第１の割り込みがペンディング中である場合、コアが第２の割り込みの処理によりトリガされるアクティブ状態にある間に処理するために第１のコアに振り分けられるべく、第２の割り込みの処理は、割込遅延コントローラ６０２をトリガして、時間遅延を完了することなく第１の割り込みを割込コントローラに送信する。第２の割り込みは、ハード割り込み又は時間遅延が完了（例えば、時間遅延カウンタが満了）したソフト割り込みであってよい。
【００５７】
アプリケーションプロセッサ６１０は、ベースバンドプロセッサ６３０に連結してもよく、入力電話信号及び他の信号を調整することと同様に、出力用の音声及びデータ通信のような複数の信号を調整してよい。本発明の複数の実施形態に従って、ベースバンドプロセッサ６３０は、複数の周辺デバイス６３４から複数の割り込みを受信し、別の割り込みが処理されている間、ソフト割り込みがペンディングされていない限り、受信したソフト割り込みの実行を遅延させることができるＩＤＣ６３２を含んでよい。示されるように、ベースバンドプロセッサ６３０は、送受信機６４０に連結し、送受信機６４０は、受信機能及び送信機能の両方を有効にし得る。次に、送受信機６４０は、アンテナ６５０、例えば、無線ワイドエリアネットワーク（例えば、３Ｇ又は４Ｇネットワーク）、及び／又は、ＢＬＵＥＴＯＯＴＨ（登録商標）又は米国電気電子技術者協会８０２．１１規格に従ういわゆるＷｉ−Ｆｉ（登録商標）ネットワークのような無線ローカルエリアネットワークを介したような１又は複数の通信プロトコルを介して、音声及びデータ信号を送信及び受信することを可能とする任意のタイプのアンテナと通信を行ってよい。
【００５８】
示されるように、システム６００は、モバイル環境における動作を有効にする充電式バッテリを有する充電式電源６２５を更に含んでよい。図６の実施形態では、この特定の実装例で示されているが、本発明の範囲は、この点に限定されない。
【００５９】
図７は、本発明の実施形態に係るシステムオンチップ（ＳｏＣ）のブロック図である。ＳｏＣ７００は、マルチコアサブシステム７１０、モデムサブシステム７２０、マルチメディアサブシステム７３０、システムファブリック７４０、電源７５０、及び、１又は複数の外部デバイスをインタフェース接続するインタフェース７６０を含む。ＳｏＣ７００は、複数のタスク、例えば、モデムタスク、マルチメディアタスク及び他の処理タスクを同時に実行してよい。
【００６０】
マルチコアサブシステム７１０は、マルチコアプロセッサ７１２及び７１４、Ｌ１キャッシュ７１６及び７１８、Ｌ２キャッシュ７４２を含む。マルチコアプロセッサ７１２及び７１４のそれぞれは、対応する割込遅延コントローラ（ＩＤＣ）７０２、７０４を含んでよい。各割込遅延コントローラ７０２、７０４は、（例えば、インタフェース７６０から）複数のハードリアルタイムイベントに関連する複数の入力ハード割り込みを検出し、受信すると、処理されるべきプロセッサ７１２、７１４のそれぞれのコアに割り込みを振り分ける割込コントローラ（不図示）のそれぞれに対して、各ハード割り込みを送信する。
【００６１】
（例えば、インタフェース７６０から受信した）ソフト割り込みである第１の割り込みについて、割込遅延コントローラ７０２、７０４は、第２の割り込みがコアにより処理されている間に第１の割り込みがペンディングされていない限り、処理されるべきコアに割り込みを振り分ける割込コントローラのそれぞれに第１の割り込みを送信することを、第１の時間遅延で、遅延させる。本発明の複数の実施形態に従って、第２の割り込みがコアにより処理されている間、第１の割り込みがペンディング中である場合、割込遅延コントローラ７０２、７０４は、コアが、第２の割り込みの処理によりトリガされるアクティブ状態にある間に処理するためにコアに振り分けられるべく、時間遅延を完了することなく第１の割り込みを割込コントローラに送信する。
【００６２】
モデムサブシステム７２０は、高速データの無線通信のためのロングタームエボリューション（ＬＴＥ）モデム７２２を含んでよい。モデムサブシステム７２０は、全地球測位システム（ＧＰＳ）７２４、及び、少なくとも２つのデジタル信号プロセッサ（ＤＳＰ）コア７２６及び７２８を含んでもよい。本発明の複数の実施形態に従って、ＬＴＥモデム７２２は、モデムサブシステム７２０から（例えば、ＧＰＳ７２４から）入力される複数の割り込みを検出し、複数のソフト割り込みを遅延させるＩＤＣ７２１を含んでよい。
【００６３】
マルチメディアサブシステム７３０は、グラフィックス処理ユニット（ＧＰＵ）７３２、オーディオ／ビデオハードウェアアクセラレータ７３４、デジタル信号処理コア７３６、及び、ＭＭＸプロセッサ７３８を含んでよく、例えば、単一命令複数データ（ＳＩＭＤ）命令を処理することを可能としてよい。
【００６４】
他の実施形態が以下に説明される。
【００６５】
第１の実施例において、プロセッサは、第１のコアを有する少なくとも１つのコアを備える。プロセッサは、第１の時点で第１の割り込みを受信し、第１のコアによる第２の割り込みの処理を開始するときに第２の時点で第１の割り込みがペンディングされていない限り、第１のコアによる第１の割り込みの処理を、第１の時点で開始する第１の時間遅延で遅延させ、第１の割り込みが第２の時点でペンディング中である場合、第１の時間遅延の完了前に第１の割り込みの処理を開始することを第１のコアに指示する割込遅延論理も含む。
【００６６】
第１の実施例のプロセッサを含む第２の実施例において、割込遅延論理は、第１の割り込みを含み、第２の時点でペンディング中である複数の割り込みを受信し、第１のコアは、第２の時点で開始する第１のアクティブ期間の間に、複数のペンディング中の割り込みを処理し、第１のコアは、第１のアクティブ期間を通してアクティブ状態にある。
【００６７】
第２の実施例のプロセッサを含む第３の実施例において、第１のコアは、第２の割り込み及び複数のペンディング中の割り込みが処理された後にアクティブ状態からインアクティブ状態に遷移する。
【００６８】
第１の実施例のプロセッサを含む第４の実施例において、第１のコアは、第１の割り込み及び第２の割り込みが処理されている間、アクティブ状態にあり、第１の割り込み及び第２の割り込みが処理された後にインアクティブ状態に遷移する。
【００６９】
第１の実施例のプロセッサを含む第５の実施例において、第２の割り込みは、周期的に受信され、受信した第２の割り込みの発生ごとに、第２の割り込みは、意図的に遅延させられることなく第１のコアにより処理され、割込遅延論理は、対応する時間遅延の完了前、かつ、コアがアクティブ状態にある間、追加のペンディング中である割り込みの処理を開始することを第１のコアに指示する。
【００７０】
第５の実施例のプロセッサを含む第６の実施例において、第２の割り込みの受信の発生ごとに、第２の割り込み及び追加のペンディング中である割り込みの処理が完了すると、第１のコアは、インアクティブ状態に遷移する。
【００７１】
第１の実施例のプロセッサを含む第７の実施例において、割込遅延論理は、更に、第３の時点で第３の割り込みを受信し、第２の時間遅延を第３の割り込みに割り当て、割込遅延論理は、第１の割り込み又は第２の割り込みが処理されている間、第３の割り込みがペンディングされていない限り、第３の時点から第２の時間遅延で、第３の割り込みの処理を遅延させ、第１の割り込み又は第２の割り込みが処理されている間、第３の割り込みがペンディング中である場合、第２の時間遅延を完了することなく第３の割り込みを処理することを第１のコアに指示する。
【００７２】
第７の実施例のプロセッサを含む第８の実施例において、第１の割り込み又は第２の割り込みが処理されている間、第３の割り込みがペンディング中でない場合、割込遅延論理は、第２の時間遅延の完了後に第３の割り込みを処理することをコアに指示する。
【００７３】
第１の実施例のプロセッサを含む第９の実施例において、割込遅延論理は、第１の時間遅延をカウントするカウンタを含む。
【００７４】
第１０の実施例において、システムは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）と、１又は複数のコアを有するプロセッサと、１又は複数のコアのうちの第１のコアに、受信した１又は複数の割り込みのそれぞれを振り分ける割込コントローラとを備える。プロセッサはまた、対応する割り込みを処理するべく、各時間遅延をカウントする１又は複数の遅延カウンタを有する割込遅延コントローラと、別の割り込みの実行に応答して、第１のコアがアクティブ状態にある間、第１のコアに振り分けられるべく、各ペンディング中の割り込みを割込コントローラに送信するペンディング割込リリース論理とを有し、プロセッサが、対応する非クリティカルな割り込みを受信すると、各遅延カウンタは、各カウントを開始する。
【００７５】
第１０の実施例のシステムを含む第１１の実施例において、第２の割り込みに関連する各時間遅延の間に他の割り込みが処理されていない場合、割込遅延コントローラは、対応する遅延カウンタのカウントを完了すると、割り込みを割込コントローラに送信する。
【００７６】
第１０の実施例のシステムを含む第１２の実施例において、第２の遅延カウンタのカウントが完了したときに、ペンディング割込リリース論理は、第１のコアがアクティブ状態である間に処理されるべく、各ペンディング中の割り込みを割込コントローラに送信する。
【００７７】
第１０の実施例のシステムを含む第１３の実施例において、ペンディング中の割り込みが処理された後に、対応するコアは、インアクティブになる。
【００７８】
第１０の実施例のシステムを含む第１４の実施例において、プロセッサは、ハード割り込みを受信すると、意図的に遅延させることなくハード割り込みを割込コントローラに送信するクリティカルな割込検出論理を更に有する。
【００７９】
第１０の実施例のシステムを含む第１５の実施例において、プロセッサは、対応する遅延カウンタを受信した各非クリティカルな割り込みに割り当てるカウンタ割当論理を更に有する。
【００８０】
第１６の実施例において、方法は、プロセッサのコアが、第１の時点で開始する第１の割り込みを処理する段階と、プロセッサが、第２の時点で受信した第２の割り込みに時間遅延を割り当てる段階と、コアが、第２の割り込みが第１の時点でペンディングされていない限り、第２の時点で開始する時間遅延の満了後に第２の割り込みを処理する段階と、第２の割り込みが第１の時点でペンディング中である場合、コアが、時間遅延の満了前に第２の割り込みを処理する段階とを含む。
【００８１】
第１６の実施例の方法を含む第１７の実施例において、方法は、第２の割り込みが第１の時点でペンディング中である場合、第１の割り込みの処理に応答して、コアがアクティブ状態である間に第２の割り込みを処理する段階を含む。
【００８２】
第１６の実施例の方法を含む第１８の実施例において、方法は、第１の割り込み及び第２の割り込みが処理された後に、コアをインアクティブ状態に遷移させる段階を含む。
【００８３】
第１６の実施例の方法を含む第１９の実施例において、方法は、複数の割り込みが第１の時点でペンディング中の場合、複数の割り込みのそれぞれの各時間遅延の完了前に、コアにより処理されるべく、複数の割り込みをコアに送信する段階を含み、コアは、複数の割り込みが処理されている間、アクティブ状態に維持される。
【００８４】
第１９の実施例の方法を含む第２０の実施例において、方法は、全てのペンディング中の割り込みが処理された後に、コアをインアクティブ状態に遷移させる段階を含む。
【００８５】
第１６の実施例の方法を含む第２１の実施例において、時間遅延は、周辺デバイスの１又は複数の特性に基づいて判断され、第２の割り込みは、周辺デバイスから受信される。
【００８６】
第１６の実施例の方法を含む第２２の実施例において、方法は、複数の割り込みのそれぞれに対応する時間遅延を割り当てる段階を含み、当該複数の割り込みのそれぞれは、別の割り込みが処理されない限り、処理されることが、各受信時点から開始する対応する時間遅延で遅延させられる。
【００８７】
第２２の実施例の方法を含む第２３の実施例において、方法は、特定の割り込みの処理が開始するときに、対応する時間遅延を完了することなく、処理するためにコアにペンディング中の割り込みを送信する段階を含む。
【００８８】
第２４の実施例において、装置は、第１６実施例〜第２３の実施例のいずれか一つの方法を実行する手段を含む。
【００８９】
第２５の実施例において、少なくとも１つのコンピュータ可読媒体は、実行されるときに、第１６実施例〜第２３の実施例のいずれか一つの方法をシステムに実行させることを有効にする複数の命令を含む。
【００９０】
複数の実施形態は、様々なタイプのシステムに使用されてよい。例えば、一実施形態において、通信デバイスは、本明細書で説明された様々な方法及び技術を実行するように構成されることができる。当然ながら、本発明の範囲は、通信デバイスに限定されず、代わり、他の実施形態は、複数の命令を処理するための他のタイプの装置を対象とすることができ、又は、コンピューティングデバイス上で処理されることに応答して、本明細書で説明された方法及び技術の１又は複数をデバイスに実行させる複数の命令を含む１又は複数の機械可読媒体を対象とすることができる。
【００９１】
複数の実施形態は、コードで実装されてよく、複数の命令を実行するシステムをプログラムするのに使用できる複数の命令をそれに格納した非一時的記憶媒体に格納されてよい。記憶媒体は、フロッピー（登録商標）ディスク、光ディスク、ソリッドステートドライブ（ＳＳＤ）、コンパクトディスクリードオンリメモリ（ＣＤ−ＲＯＭ）、コンパクトディスクリライタブル（ＣＤ−ＲＷ）、及び、磁気−光ディスクを含む任意のタイプのディスク、リードオンリメモリ（ＲＯＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）のようなランダムアクセスメモリ（ＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、フラッシュメモリ、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、磁気又は光カード、又は、複数の電子命令を格納するのに適した任意の他のタイプの媒体のような半導体デバイスを含んでよいが、これらに限定されない。
【００９２】
本発明は、限定された数の実施形態に関して説明されてきたが、当業者は、そこから多数の修正形態及び改変形態を想起するであろう。添付の特許請求の範囲は、本発明の真の趣旨及び範囲内に入るようにそのような全ての修正形態及び改変形態を網羅することが意図される。
【図１】
2017509059.tif 000003
【図２】
2017509059.tif 000004
【図３Ａ】
2017509059.tif 000005
【図３Ｂ】
2017509059.tif 000006
【図４】
2017509059.tif 000007
【図５】
2017509059.tif 000008
【図６】
2017509059.tif 000009
【図７】
2017509059.tif 000010
【手続補正書】
【提出日】平成28年8月31日(2016.8.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のコアを含む少なくとも１つのコアと、
割込遅延論理と
を備え、
前記割込遅延論理は、
第１の時点で第１の割り込みを受信し、
第２の割り込みが前記第１のコアにより処理される第２の時点で第１の割り込みがペンディングされていない限り、前記第１の割り込みの処理を、前記第１の時点で開始する第１の時間遅延で遅延させ、
前記第１の割り込みが前記第２の時点でペンディング中である場合、前記第１の時間遅延の完了の前に前記第１の割り込みの処理を開始することを前記第１のコアに指示する、プロセッサ。
【請求項２】
受信された複数の割り込みが前記第２の時点でペンディング中であるときに、前記第１のコアは、前記第２の時点に開始する第１のアクティブ期間の間に、前記ペンディング中の複数の割り込みを処理し、前記第１のコアは、前記第１のアクティブ期間を通してアクティブ状態にある、請求項１に記載のプロセッサ。
【請求項３】
前記第１のコアは、前記第２の割り込み及び前記ペンディング中の複数の割り込みが処理された後に、前記アクティブ状態からインアクティブ状態に遷移する、請求項２に記載のプロセッサ。
【請求項４】
前記第１のコアは、前記第１の割り込み及び前記第２の割り込みが処理されている間、アクティブ状態にあり、前記第１の割り込み及び前記第２の割り込みが処理された後にインアクティブ状態に遷移する、請求項１から３のいずれか一項に記載のプロセッサ。
【請求項５】
前記第２の割り込みは、周期的に受信され、受信した前記第２の割り込みの発生ごとに、前記第２の割り込みは、意図的に遅延させられることなく前記第１のコアにより処理され、前記割込遅延論理は、対応する時間遅延の完了前、かつ、前記コアがアクティブ状態にある間に、各追加のペンディング中である割り込みの処理を開始することを前記第１のコアに指示する、請求項１から４のいずれか一項に記載のプロセッサ。
【請求項６】
前記第２の割り込みの受信の発生ごとに、第２の割り込み及び複数の前記追加のペンディング中である割り込みの処理が完了すると、前記第１のコアは、インアクティブ状態に遷移することを更に備える、請求項５に記載のプロセッサ。
【請求項７】
前記割込遅延論理は、更に、第３の時点で第３の割り込みを受信し、第２の時間遅延を前記第３の割り込みに割り当て、
前記割込遅延論理は、
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディングされていない限り、前記第３の時点から前記第２の時間遅延に前記第３の割り込みの処理を遅延させ、
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディング中である場合、前記第２の時間遅延を完了することなく前記第３の割り込みを処理することを前記第１のコアに指示する、請求項１から６のいずれか一項に記載のプロセッサ。
【請求項８】
前記第１の割り込み又は前記第２の割り込みが処理されている間、前記第３の割り込みがペンディング中でない場合、前記割込遅延論理は、前記第２の時間遅延の完了後に前記第３の割り込みを処理することを前記コアに指示する、請求項７に記載のプロセッサ。
【請求項９】
前記割込遅延論理は、前記第１の時間遅延をカウントするカウンタを含む、請求項１から８のいずれか一項に記載のプロセッサ。
【請求項１０】
ダイナミックランダムアクセスメモリ（ＤＲＡＭ）と、
プロセッサと
を備え、
前記プロセッサは、
１又は複数のコアと、
１又は複数の受信された割り込みのそれぞれを前記１又は複数のコアのうちの第１のコアに振り分ける割込コントローラと、
割込遅延コントローラと
を有し、
前記割込遅延コントローラは、
対応する割り込みを処理するための各時間遅延をカウントする１又は複数の遅延カウンタと、
第１の割り込みが処理されることに応答して、前記各時間遅延の満了前に、各ペンディング中の割り込みを前記割込コントローラに送信するペンディング割込リリース論理と
を含み、
各遅延カウンタは、前記プロセッサが前記対応する割り込みを受信すると、各カウントを開始する、システム。
【請求項１１】
第２の割り込みに関連する時間遅延の間に処理中の割り込みがない場合、前記割込遅延コントローラは、前記対応する遅延カウンタの前記カウントが完了すると、前記割り込みを前記割込コントローラに送信する、請求項１０に記載のシステム。
【請求項１２】
第２の遅延カウンタの前記カウントが完了したときに、前記ペンディング割込リリース論理は、各ペンディング中の割り込みを前記割込コントローラに送信し、前記各ペンディング中の割り込みは、前記第１のコアがアクティブ状態にある間に処理される、請求項１０又は１１に記載のシステム。
【請求項１３】
前記ペンディング中の割り込みが処理された後に、前記対応するコアは、インアクティブになる、請求項１０から１２のいずれか一項に記載のシステム。
【請求項１４】
前記プロセッサは、ハード割り込みを受信すると、意図的に遅延させることなく前記ハード割り込みを前記割込コントローラに送信する割込検出論理を更に含む、請求項１０から１３のいずれか一項に記載のシステム。
【請求項１５】
前記プロセッサは、受信した各ソフト割り込みに対して、対応する遅延カウンタを割り当てるカウンタ割当論理を更に含む、請求項１０から１４のいずれか一項に記載のシステム。
【請求項１６】
プロセッサのコアにより第１の時点で開始する第１の割り込みを処理する段階と、
前記プロセッサが、第２の時点で受信した第２の割り込みに対して時間遅延を割り当てる段階と、
前記第２の割り込みが前記第１の時点でペンディングされていない限り、前記第２の時点で開始した前記時間遅延が満了した後に、前記コアが、前記第２の割り込みを処理する段階と、
前記第２の割り込みが前記第１の時点でペンディング中である場合、前記時間遅延の満了前に、前記コアが、前記第２の割り込みを処理する段階と
を備える方法。
【請求項１７】
前記第２の割り込みが前記第１の時点でペンディング中である場合、前記第１の割り込みの処理に応答して、前記コアがアクティブ状態にある間に、前記第２の割り込みを処理する、請求項１６に記載の方法。
【請求項１８】
前記第１の割り込み及び前記第２の割り込みが処理された後に、前記コアをインアクティブ状態に遷移させる段階を更に備える、請求項１６又は１７に記載の方法。
【請求項１９】
複数の割り込みが前記第１の時点でペンディング中である場合、前記複数の割り込みのそれぞれの各時間遅延の完了前に、前記コアにより処理させるべく、前記複数の割り込みを前記コアに送信する段階
を更に備え、
前記コアは、前記複数の割り込みが処理されている間、アクティブ状態に維持される、請求項１６から１８のいずれか一項に記載の方法。
【請求項２０】
全てのペンディング中の割り込みが処理された後に、前記コアをインアクティブ状態に遷移させる段階
を更に備える、請求項１９に記載の方法。
【請求項２１】
前記時間遅延は、前記第２の割り込みの送信元である周辺デバイスの１又は複数の特性に基づいて判断される、請求項１６から２０のいずれか一項に記載の方法。
【請求項２２】
複数の割り込みのそれぞれに対応する時間遅延を割り当てる段階
を更に備え、
前記複数の割り込みのそれぞれは、別の割り込みが処理されていない限り、各受信時点から開始する前記対応する時間遅延で処理が遅延させられる、請求項１６から２１のいずれか一項に記載の方法。
【請求項２３】
特定の割り込みの処理が開始したときに、前記対応する時間遅延を完了させることなく処理するために、各ペンディング中の割り込みを前記コアに送信する段階
を更に備える、請求項２２に記載の方法。
【請求項２４】
請求項１６から２３のいずれか一項に記載の方法を実行するための手段を備える、装置。
【請求項２５】
システムに、請求項１６から２３のいずれか一項に記載の方法を実行させるためのプログラム。
【請求項２６】
請求項２５に記載のプログラムを格納するコンピュータ可読記録媒体。
【国際調査報告】
2017509059.tif 000011
2017509059.tif 000012