(57)【要約】【課題】効率的な割り込み通知を実現可能な割り込み制御回路を提供する。【解決手段】プロセッサへの割り込み通知を行う割り込み制御回路であって、割り込み要因の発生を検出する要因検出部と、割り込み通知条件を構成する割り込み要因を登録するための複数個のレジスタを備え、割り込み要因の登録を通じて割り込み通知条件を設定可能な通知条件設定部と、前記レジスタに登録された割り込み要因の検出に応じて遷移するような状態を保持し、前記割り込み通知条件を満たす状態遷移の発生に伴い、前記割り込み通知を行う状態保持部と、を備えることを特徴とする割り込み制御回路。【選択図】図２
2009258892.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサへの割り込み通知を行う割り込み制御回路であって、
割り込み要因の発生を検出する要因検出部と、
割り込み通知条件を構成する割り込み要因を登録するための複数個のレジスタを備え、割り込み要因の登録を通じて割り込み通知条件を設定可能な通知条件設定部と、
前記レジスタに登録された割り込み要因の検出に応じて遷移するような状態を保持し、前記割り込み通知条件を満たす状態遷移の発生に伴い、前記割り込み通知を行う状態保持部と、
を備えることを特徴とする割り込み制御回路。
【請求項２】
前記割り込み通知条件に更なる条件を付加するための条件付加部を備え、
前記状態保持部は、前記レジスタに登録された割り込み要因の検出、及び／又は、付加条件の成立、に応じて遷移するような状態を保持することを特徴とする請求項１に記載の割り込み制御回路。
【請求項３】
前記状態保持部は、ステートマシンであることを特徴とする請求項１に記載の割り込み制御回路。
【請求項４】
前記状態保持部は、
前記レジスタに登録された割り込み要因の検出を、状態遷移のトリガとなるイベントとして取り扱うことを特徴とする請求項３に記載の割り込み制御回路。
【請求項５】
前記状態保持部は、
前記割り込み通知条件を満たす状態遷移に伴うアクションとして、前記割り込み通知を行うことを特徴とする請求項３に記載の割り込み制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、割り込み制御回路に関する。
【背景技術】
【０００２】
ＣＰＵ（Central Processing Unit）と周辺機器との間には通常、ＮＢ（North Bridge）やＳＢ（South Bridge）等のチップセットが介在する。ＮＢは一般にホストコントローラとも呼ばれ、ＳＢは一般に周辺機器コントローラとも呼ばれる。ＮＢには例えば、メモリコントローラや、ＡＧＰコントローラが含まれる。ＳＢには例えば、ＩＤＥコントローラや、ＤＭＡコントローラや、割り込みコントローラが含まれる。
【０００３】
割り込みコントローラは、種々の割り込み要因の発生を検出し、割り込み要因の発生をＣＰＵ上のソフトウェアに通知する機能を有する。割り込み要因には、該ソフトウェアが通知を必要とする要因と、該ソフトウェアが通知を必要としない要因とがある。そこで、ＣＰＵ上のソフトウェアは一般に、通知が必要な要因を検出する機能を使用許可、通知が不要な要因を検出する機能を使用禁止に設定して、割り込みコントローラを使用する。
【０００４】
また、プログラマブル割り込みコントローラの中には、割り込みの優先順位を変更可能なものもある。更には、複数の割り込み要因が特定の順序で発生することを条件に、割り込み通知を行うような周辺機器コントローラも提案されている。更には、コマンドの発行回数が所定回数を越えることを条件に、割り込み通知を行うような周辺機器コントローラも提案されている。また、特許文献１には、割り込み処理用の信号処理プロセッサを利用した割り込み管理方法が開示されている。
【０００５】
ＣＰＵ上のソフトウェアは、複数の割り込み要因からなる複合的な割り込み要因の発生を認識する場合、発生した個々の割り込み要因を認識し、発生した割り込み要因の組合せが条件に合致するかを判断する必要がある。この場合、ソフトウェアは、認識する必要のある割り込み要因の発生だけでなく、認識する必要のない割り込み要因の発生まで、通知されることになる。割り込みコントローラは、どの要因がソフトウェアにとって必要かを判別できないからである。この場合、不要な要因の通知によるシステム性能の低下が懸念される。
【特許文献１】特開２００２−７３３５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は、効率的な割り込み通知を実現可能な割り込み制御回路を提供することを課題とする。
【課題を解決するための手段】
【０００７】
本発明の実施例は例えば、プロセッサへの割り込み通知を行う割り込み制御回路であって、割り込み要因の発生を検出する要因検出部と、割り込み通知条件を構成する割り込み要因を登録するための複数個のレジスタを備え、割り込み要因の登録を通じて割り込み通知条件を設定可能な通知条件設定部と、前記レジスタに登録された割り込み要因の検出に応じて遷移するような状態を保持し、前記割り込み通知条件を満たす状態遷移の発生に伴い、前記割り込み通知を行う状態保持部と、を備えることを特徴とする割り込み制御回路である。
【発明の効果】
【０００８】
本発明により、効率的な割り込み通知を実現可能な割り込み制御回路が提供される。
【発明を実施するための最良の形態】
【０００９】
本発明の実施例を、図面に基づいて説明する。
【００１０】
図１は、本実施例を説明するためのシステム構成図である。図１には、ＰＣ（Personal Computer）等の電子機器１０１と、ＨＤＤ（Hard Disk Drive）等の周辺機器２０１とが示されている。図１の電子機器１０１と周辺機器２０１はここでは、Ｓｅｒｉａｌ  ＡＴＡ（Advanced Technology Attachment）規格に準拠したシリアルバスにより接続されている。
【００１１】
図１の電子機器１０１は、プロセッサの例であるＣＰＵ１１１と、ＮＢ１１２と、ＳＢ１１３とを備える。ＮＢ１１２とＳＢ１１３は、同じチップに搭載されていても、異なるチップに搭載されていてもよい。図１にはさらに、本実施例の割り込み制御回路１２１が示されている。割り込み制御回路１２１は、ＣＰＵ１１１への割り込み通知を行う回路である。割り込み制御回路１２１はここでは、ＳＢ１１３の一部（又はＮＢ１１２及びＳＢ１１３の一部）等により構成される。
【００１２】
図２は、図１の割り込み制御回路１２１の構成図である。割り込み制御回路１２１は、要因検出部１３１と、通知条件設定部１３２と、条件付加部１３３と、状態保持部１３４とを備える。
【００１３】
要因検出部１３１は、割り込み要因の発生を検出する機能ブロックである。要因検出部１３１はここでは、ＳＢ１１３内の割り込みコントローラにより実現される。要因検出部１３１は例えば、DMA Activateコマンドの受信、Registerコマンドの受信、データ送信の完了、等の割り込み要因を検出可能である。図２に示すＦ1〜ＦM（Ｍは１以上の整数）は、Ｍ種類の割り込み要因を検出するためのＭ種類の割り込み要因検出機能を表す。図２にはさらに、ＳＢ１１３内に設けられた割り込みレジスタ１４１と割り込み許可レジスタ１４２とが示されている。
【００１４】
通知条件設定部１３２は、採用する割り込み要因を登録して、割り込み通知条件（割り込み通知を行う条件）を設定するための機能ブロックである。通知条件設定部１３２は、割り込み通知条件を構成する割り込み要因を登録するための複数個のレジスタ１５１1〜１５１N（Ｎは２以上の整数）を備える。レジスタ１５１1〜１５１Nには、割り込み通知条件用に採用する割り込み要因を、要因検出部１３１が検出可能な割り込み要因の中から選択して登録することが可能である。ＣＰＵ１１１上のソフトウェアは、レジスタ１５１1〜１５１Nへの割り込み要因の登録を通じて、割り込み通知条件を設定可能である。通知条件設定部１３２には例えば、DMA Activateコマンドを２回受信し、Registerコマンドを２回受信することを条件に、割り込み通知を行うといった、複合的な割り込み通知条件を設定可能である。
【００１５】
条件付加部１３３は、割り込み通知条件に更なる条件を付加するための機能ブロックである。このような付加条件の例としては、割り込み発生回数が挙げられる。この場合には例えば、割り込み発生回数が所定回数を超えることを条件に、割り込み通知が行われる。付加条件の別の例としては、タイマによる計測時間が挙げられる。この場合には例えば、計測時間が所定時間を超えることを条件に、割り込み通知が行われる。付加条件の更に別の例としては、外部端子からのトリガが挙げられる。この場合には例えば、外部端子から所定の信号を受信すること条件に、割り込み通知が行われる。これらのような付加条件により、割り込み通知条件をより詳細にすることが可能になる。
【００１６】
状態保持部１３４は、ステートマシンで構成され、状態（ステート）を保持することが可能な機能ブロックである。図２には、状態保持部１３４の複数個の状態Ｓ1〜ＳN（Ｎは２以上の整数）が示されている。
【００１７】
状態保持部１３４の状態は、レジスタ１５１1〜１５１Nに登録された割り込み要因の検出に応じて遷移する。例えば、状態保持部１３４の状態が状態ＳK（Ｋ＝１，２，，，又はＮ）の場合に、レジスタ１５１Kに登録された割り込み要因が要因検出部１３１により検出されると、状態保持部１３４の状態が状態ＳKから他の状態に遷移する。本実施例では、状態ＳKはレジスタ１５１Kに対応しており、状態ＳKがどの状態に遷移するかの設定は、レジスタ１５１Kに登録可能である。このように、状態保持部１３４は、レジスタ１５１1〜１５１Nに登録された割り込み要因の検出を、状態遷移のトリガとなるイベントとして取り扱う。
【００１８】
また、割り込み要因と付加条件とを利用して割り込み通知条件が設定される場合、状態保持部１３４の状態は、レジスタ１５１1〜１５１Nに登録された割り込み要因の検出、及び／又は、付加条件の成立、に応じて遷移する。例えば、ある割り込み要因があるタイミングで検出された場合に、状態遷移が生じる。例えば、外部端子からある信号を受信した場合に、状態遷移が生じる。本実施例では、状態ＳKからの状態遷移の際の付加条件に関連する設定は、レジスタ１５１Kに登録可能である。このように、状態保持部１３４は、レジスタ１５１1〜１５１Nに登録された割り込み要因の検出や、付加条件の成立や、これらの組合せを、状態遷移のトリガとなるイベントとして取り扱うことができる。
【００１９】
本実施例ではさらに、状態ＳKからの状態遷移の際に割り込み通知を行うか否かの設定を、レジスタ１５１Kに登録可能である。例えば、状態ＳNから状態Ｓ1への状態遷移の際に割り込み通知を行うという設定を、レジスタ１５１Nに登録することができる。この場合には例えば、状態Ｓ1〜ＳN-1がそれぞれ状態Ｓ2〜ＳNに遷移するよう設定することで、レジスタ１５１1〜１５１Nに登録された割り込み要因が全て検出されることを、割り込み通知条件に設定することができる。本実施例では、レジスタ１５１1〜１５１Nへの登録内容次第で、様々な複合的な割り込み通知条件を設定することができる。このように、本実施例では、状態保持部１３４を備える割り込み制御回路１２１によって、プログラマブルな割り込み通知が実現される。本実施例では、各使用者が所望の割り込み通知条件を設定することができる。
【００２０】
本実施例では、各ソフトウェアの動作態様や使用状況に適した割り込み通知条件を設定することで、割り込み処理の効率化が実現される。本実施例では例えば、複合的な割り込み要因の内の最後のものが検出されることを、割り込み通知条件に設定することが考えられる。これにより、ＣＰＵ１１１上のソフトウェアは、最後の割り込み要因の通知だけを受けることになり、不要な通知を受ける無駄から開放される。
【００２１】
以上のように、本実施例では、レジスタ１５１1〜１５１Nへの割り込み要因の登録を通じて、割り込み通知条件を設定可能である。そして、状態保持部１３４は、割り込み通知条件を満たす状態遷移の発生に伴い、ＣＰＵ１１１への割り込み通知を行う。上述の例であれば、状態ＳNから状態Ｓ1への状態遷移の発生により、レジスタ１５１1〜１５１Nに登録された割り込み要因を全て検出するという割り込み通知条件が満たされ、割り込み通知が行われる。本実施例の状態保持部１３４は、上述のようにステートマシンであり、割り込み通知条件を満たす状態遷移に伴うアクションとして、ＣＰＵ１１１への割り込み通知を行う。
【００２２】
以下、割り込み通知条件の設定例について説明する。
【００２３】
図３は、割り込み通知条件の設定例について説明するためのシーケンス図である。図３には、ATA DMA Writeが２回実施される様子が示されている。図３では、DMA Activateを２回受信し、Registerを２回受信することを条件に、割り込み通知を行うというような割り込み通知条件が設定されている。
【００２４】
図３では先ず、電子機器１０１のホストコントローラ（ＮＢ）１１２が周辺機器２０１に、ATA DMA Writeコマンドを送信する（Ｓ１１１）。次に、周辺機器２０１がホストコントローラ１１２に、受信準備完了を示すDMA Activateを送信する（Ｓ１１２）。次に、ホストコントローラ１１２が周辺機器２０１に、書き込みデータを１回以上（ここでは２回）送信する（Ｓ１１３，Ｓ１１４）。次に、周辺機器２０１がホストコントローラ１１２に、正常受信完了を示すRegisterを送信する（Ｓ１１５）。こうして、１回目のATA DMA Writeが終了する。
【００２５】
Ｓ１１１〜Ｓ１１５において、電子機器１０１では、DMA Activateの受信、１回目のデータ送信の完了、２回目のデータ送信の完了、Registerの受信、という割り込み要因が発生する。しかし、割り込み制御回路１２１はここでは、これらの割り込み要因の発生については、ＣＰＵ１１１への通知を行わない。
【００２６】
次に、電子機器１０１のホストコントローラ（ＮＢ）１１２が周辺機器２０１に、ATA DMA Writeコマンドを再度送信する（Ｓ１２１）。次に、周辺機器２０１がホストコントローラ１１２に、受信準備完了を示すDMA Activateを送信する（Ｓ１２２）。次に、ホストコントローラ１１２が周辺機器２０１に、書き込みデータを２回送信する（Ｓ１２３，Ｓ１２４）。次に、周辺機器２０１がホストコントローラ１１２に、正常受信完了を示すRegisterを送信する（Ｓ１２５）。こうして、２回目のATA DMA Writeが終了する。
【００２７】
Ｓ１２１〜Ｓ１２４において、電子機器１０１では、DMA Activateの受信、１回目のデータ送信の完了、２回目のデータ送信の完了という割り込み要因が発生する。しかし、割り込み制御回路１２１はここでは、これらの割り込み要因の発生については、ＣＰＵ１１１への通知を行わない。続いて、Ｓ１２５において、電子機器１０１では、Registerの受信という割り込み要因が発生する。割り込み制御回路１２１はここでは、この割り込み要因の発生については、ＣＰＵ１１１に通知する（Ｓ１３１）。
【００２８】
図４は、図３に対応する割り込み制御回路１２１の構成図である。
【００２９】
図４には、要因検出機能Ｆ1〜Ｆ2が示されている。要因検出機能Ｆ1は、DMA Activateの受信を検出する機能に相当する。要因検出機能Ｆ2は、Registerの受信を検出する機能に相当する。
【００３０】
図４には更に、レジスタ１５１1〜１５１4が示されている。レジスタ１５１1，１５１3にはそれぞれ、採用する割り込み要因として、DMA Activateの受信が登録されている。レジスタ１５１2，１５１4にはそれぞれ、採用する割り込み要因として、Registerの受信が登録されている。
【００３１】
図４には更に、状態Ｓ1〜Ｓ4が示されている。
【００３２】
状態Ｓ1は、DMA Activateの受信回数が０回、Registerの受信回数が０回の状態に相当する。状態Ｓ1は、DMA Activateの受信に伴い状態Ｓ2に遷移する（図４）。この設定は、レジスタ１５１1に登録されている。
【００３３】
状態Ｓ2は、DMA Activateの受信回数が１回、Registerの受信回数が０回の状態に相当する。状態Ｓ2は、Registerの受信に伴い状態Ｓ3に遷移する（図４）。この設定は、レジスタ１５１2に登録されている。
【００３４】
状態Ｓ3は、DMA Activateの受信回数が１回、Registerの受信回数が１回の状態に相当する。状態Ｓ3は、DMA Activateの受信に伴い状態Ｓ4に遷移する（図４）。この設定は、レジスタ１５１3に登録されている。
【００３５】
状態Ｓ4は、DMA Activateの受信回数が２回、Registerの受信回数が１回の状態に相当する。状態Ｓ4は、Registerの受信に伴い状態Ｓ1に遷移する（図４）。この設定は、レジスタ１５１4に登録されている。レジスタ１５１4には更に、状態Ｓ4から状態Ｓ1への際に割り込み通知を行うという設定が登録されている。
【００３６】
よって、図３及び図４では、Ｓ１１２におけるDMA Activateの受信により、状態保持部１３４の状態が、状態Ｓ1から状態Ｓ2に遷移する。続いて、Ｓ１１５におけるRegisterの受信により、状態保持部１３４の状態が、状態Ｓ2から状態Ｓ3に遷移する。続いて、Ｓ１２２におけるDMA Activateの受信により、状態保持部１３４の状態が、状態Ｓ3から状態Ｓ4に遷移する。続いて、Ｓ１２５におけるRegisterの受信により、状態保持部１３４の状態が、状態Ｓ4から状態Ｓ1に遷移する。よって、図３及び図４では、Ｓ１２５の後にＣＰＵ１１１への割り込み通知が行われる（Ｓ１３１）。即ち、DMA Activateを２回受信し、Registerを２回受信することを条件に、割り込み通知が行われる。
【００３７】
図３では、DMA Activateの受信（Ｓ１１２，Ｓ１２２）、Registerの受信（Ｓ１１５，Ｓ１２５）、データ送信の完了（Ｓ１１３，Ｓ１１４，Ｓ１２３，Ｓ１２４）という８つの割り込み要因が発生する。要因検出部１３１は、これら４つの割り込み要因のうち、DMA Activateの受信（Ｓ１１２，Ｓ１２２）、Registerの受信（Ｓ１１５，Ｓ１２５）という４つの割り込み要因の発生を検出する。そして、状態保持部１３４は、これら４つの割り込み要因が全て検出されることを条件に、割り込み通知を行う。従って、ＣＰＵ１１１上のソフトウェアは、Ｓ１１１からＳ１３１において１回だけ割り込み通知を受けることになり、不要な通知を受ける無駄から開放される。図３において、要因検出部１３１は、８つの割り込み要因を全て検出してもよいし、Registerの受信（Ｓ１１５，Ｓ１２５）のみを検出してもよい。
【００３８】
以上、ATA DMA Writeに関する割り込み通知条件の設定例を説明したが、本実施例は更に、ATA DMA Write以外の処理にも適用可能である。図５には、そのような処理の例に関するシーケンス図が示されている。
【００３９】
図５Ａは、ATA DMA Readに関するシーケンス図である。図５Ａには、割り込み要因の例として、データ受信の完了、Registerの受信が示されている。図５Ａでは、Ｓ２０１〜Ｓ２０５の処理により、ATA DMA Readが行われる。
【００４０】
図５Ａでは先ず、ホストコントローラ１１２が周辺機器２０１に、ATA DMA Readコマンドを送信する（Ｓ２０１）。次に、周辺機器２０１がホストコントローラ１１２に、読み出しデータを１回以上（ここでは３回）送信する（Ｓ２０２〜Ｓ２０４）。次に、周辺機器２０１がホストコントローラ１１２に、Registerを送信する（Ｓ２０５）。こうして、ATA DMA Readが終了する。
【００４１】
図５Ｂは、ATAPI Packet DMA Writeに関するシーケンス図である。図５Ｂには、割り込み要因の例として、PIO Setupの受信、DMA Activateの受信、データ送信の完了、Registerの受信が示されている。図５Ｂでは、Ｓ３０１〜Ｓ３０７の処理により、ATAPI Packet DMA Writeが行われる。図５Ｂの処理の大まかな流れは、図５Ａの処理の流れと同様である。
【００４２】
図５Ｃは、ATAPI Packet DMA Readに関するシーケンス図である。図５Ｃには、割り込み要因の例として、PIO Setupの受信、データ受信の完了、Registerの受信が示されている。図５Ｃでは、Ｓ４０１〜Ｓ４０６の処理により、ATAPI Packet DMA Readが行われる。図５Ｃの処理の大まかな流れは、図５Ａの処理の流れと同様である。
【００４３】
図５Ｄは、ATA PIO Readに関するシーケンス図である。図５Ｄには、割り込み要因の例として、PIO Setupの受信、データ受信の完了が示されている。図５Ｄでは、Ｓ５０１〜Ｓ５０３の処理により、ATA PIO Readが行われる。図５Ｄの処理の大まかな流れは、図５Ａの処理の流れと同様である。
【００４４】
本実施例では、図５Ａ〜Ｄに示す割り込み要因を利用して、割り込み通知条件を設定することができる。これらの場合の割り込み通知条件は、図３及び図４の場合と同様の方法で設定可能である。
【００４５】
以上、電子機器１０１と周辺機器２０１とを備えるシステムにおける割り込み処理について説明した。電子機器１０１は、ＰＣ以外の機器でもよく、周辺機器２０１は、ＨＤＤ以外の機器でもよい。周辺機器２０１は例えば、マウスや、キーボードや、スキャナや、プリンタでもよい。
【００４６】
電子機器１０１と周辺機器２０１は、Ｓｅｒｉａｌ  ＡＴＡ規格に準拠したシリアルバスで接続されているが、ＡＴＡ規格に準拠したパラレルバスで接続されていてもよい。電子機器１０１と周辺機器２０１は、ＡＴＡ規格以外のインタフェースで接続されていてもよい。電子機器１０１と周辺機器２０１は例えば、ＵＳＢ（Universal Serial Bus）規格のインタフェースや、ＩＥＥＥ１３９４規格のインタフェースで接続されていてもよい。この場合、周辺機器２０１の例としては、ＵＳＢメモリ等が挙げられる。また、電子機器１０１と周辺機器２０１は、有線ＵＳＢ等の有線インタフェースで接続されていてもよいし、無線ＵＳＢ等の無線インタフェースで接続されていてもよい。
【図面の簡単な説明】
【００４７】
【図１】本実施例を説明するためのシステム構成図である。
【図２】図１の割り込み制御回路の構成図である。
【図３】割り込み通知条件の設定例について説明するためのシーケンス図である。
【図４】図３に対応する割り込み制御回路の構成図である。
【図５】種々の処理の例に関するシーケンス図である。
【符号の説明】
【００４８】
１０１  電子機器
１１１  ＣＰＵ
１１２  ＮＢ
１１３  ＳＢ
１２１  割り込み制御回路
１３１  要因検出部
１３２  通知条件設定部
１３３  条件付加部
１３４  状態保持部
１４１  割り込みレジスタ
１４２  割り込み許可レジスタ
１５１  レジスタ
２０１  周辺機器
【図１】
2009258892.tif 000003
【図２】
2009258892.tif 000004
【図３】
2009258892.tif 000005
【図４】
2009258892.tif 000006
【図５】
2009258892.tif 000007