(57)【要約】【課題】バスを占有し続ける状態をつくらずに、バスの競合状態を回避できる技術を提供すること。【解決手段】プロセッサは、バスに接続され、前記バスの使用権を有する制御装置に、バスの使用権を要求するバス権要求信号を出力する出力手段と、前記制御装置から、前記バス権要求信号に対する応答としてバス解放応答信号が入力される応答信号入力手段と、前記バス解放応答信号が入力された後で前記バスに対してアクセスするバスアクセス手段と、割り込み信号が入力される割り込み信号入力手段とを有し、前記割り込み信号入力手段に割り込み信号が入力されると、前記出力手段が、前記バス権要求信号の出力を停止することを特徴とする。【選択図】図１
2009129351.tif 000002
【特許請求の範囲】
【請求項１】
バスに接続され、前記バスの使用権を有する制御装置に、バスの使用権を要求するバス権要求信号を出力する出力手段と、
前記制御装置から、前記バス権要求信号に対する応答としてバス解放応答信号が入力される応答信号入力手段と、
前記バス解放応答信号が入力された後で前記バスに対してアクセスするバスアクセス手段と、
割り込み信号が入力される割り込み信号入力手段と
を有し、
前記割り込み信号入力手段に割り込み信号が入力されると、前記出力手段が、前記バス権要求信号の出力を停止する
ことを特徴とするプロセッサ。
【請求項２】
前記割り込み信号が、前記制御装置に対し割り込み処理を要求する信号である
ことを特徴とする請求項１に記載のプロセッサ。
【請求項３】
請求項１または２に記載のプロセッサと、
前記制御装置と、
前記バスと
を有し、
前記割り込み信号入力手段には、前記制御装置に対する割り込み信号が入力される
ことを特徴とするコンピュータ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスへのアクセスを制御する技術に関する。
【背景技術】
【０００２】
従来から、同一のバスに接続されたＣＰＵ（Central Processing Unit）と周辺回路（バス使用回路）とを有するコンピュータシステムが知られている。この場合、メモリアクセス等のバスの使用権は時分割でＣＰＵと周辺回路に割り当てられる（例えば、特許文献１）。周辺回路はＣＰＵを介さずに直接メモリアクセスを行えるから、このようなシステムは、高い性能が要求されるシステムや、低消費電力が要求されるシステムに用いられることが多い。ここで、どの装置にバスの使用権を与えるかを制御する装置を、バスアービタ、バスアービトレーション装置またはバス調停装置などという。
【０００３】
近年、コンピュータシステムにおけるバスのデータ転送速度は増加の一途をたどっている。そのため、クロックと比較して、あるデータを示す信号が安定している時間は、以前よりも大幅に短くなっている。また、システムの多機能化に伴い、組み込みシステム等の比較的簡単な構成を有していたシステムであっても、バスに接続される周辺回路の数は増加する傾向にある。バスを制御する装置であるＣＰＵから見ると周辺回路は負荷容量として見えるので、周辺回路の数が増えるということは信号の遅延時間が増加するということを意味する。
【０００４】
このような状況においては、バスの使用権の授受に用いられる信号と実際にバスアクセスを行うのに用いられる信号との間でタイミングに差が生じ、バスの使用権の競合状態が発生することがある。バスの競合を回避する技術として、例えば特許文献２−１４が知られている。特許文献２は、バス占有信号を遅延させるバスアービトレーション装置を開示している。特許文献３は、複数のバスマスタに信号が取り込まれてからバス調停を開始するバスアービタを開示している。特許文献４−６は、優先順位を与えてバス調停を行うバスアービタを開示している。特許文献７は、レジスタに格納されたタイマ時間の間、バスを占有させる入出力制御装置を開示している。特許文献８は、あるバスマスタが引き続きバスを使用するときはバス調停を経ないで使用権を獲得する技術を開示している。特許文献９は、バスマスタの数、アクセス頻度等によりバス占有率を変えるバス調停装置を開示している。特許文献１０は、割り込み要求に対応できるバス調停機能を有するマイコンを開示している。特許文献１１は、バスの使用権の獲得前後にバスを静止するバスアービタ回路を開示している。特許文献１２は、使用許可時間だけバス権を与えるバスアービタを開示している。特許文献１３は、バスマスタのデータ転送要求の間隔を抑制するバスアービタを開示している。特許文献１４は、処理装置に対するアクノリッジ信号にウェイト時間を挿入するバス制御装置を開示している。
【０００５】
【特許文献１】特開平８−２２１３５８号公報
【特許文献２】特開平８−０７７１０４号公報
【特許文献３】特開平８−２５５１２５号公報
【特許文献４】特開平１０−３３４０４２号公報
【特許文献５】特開２０００−０６６９９５号公報
【特許文献６】特開２００７−１２２４８３号公報
【特許文献７】特開平１１−００３３１２号公報
【特許文献８】特開平１１−２４２６５２号公報
【特許文献９】特開２０００−１３２５０５号公報
【特許文献１０】特開２０００−３４７９８６号公報
【特許文献１１】特開２００１−０２７９７４号公報
【特許文献１２】特開２００３−０１６０２４号公報
【特許文献１３】特開２００６−０１２０３２号公報
【特許文献１４】特開２００７−１９９８４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１−１４に記載の技術によれば、ある回路がバスの使用権を要求すれば、その回路にバスの使用権が与えられた。しかし、ＣＰＵと周辺回路のように、本来的には主としてバスの使用権を有する回路と、バスの使用権を有する回路から使用権を一時的に譲り受けてバスを使用する回路とからなるシステムにおいても、周辺回路がバスの使用権を要求し続ければ事実上、周辺回路が長時間バスを占有してしまうことがあった。また、特許文献１−１４に記載の技術はそもそも別途バスアービタを設ける必要があった。
これに対し本発明は、バスを占有し続ける状態をつくらずに、バスの競合状態を回避できる技術を提供する。
【課題を解決するための手段】
【０００７】
上述の課題を解決するため、本発明は、バスに接続され、前記バスの使用権を有する制御装置に、バスの使用権を要求するバス権要求信号を出力する出力手段と、前記制御装置から、前記バス権要求信号に対する応答としてバス解放応答信号が入力される応答信号入力手段と、前記バス解放応答信号が入力された後で前記バスに対してアクセスするバスアクセス手段と、割り込み信号が入力される割り込み信号入力手段とを有し、前記割り込み信号入力手段に割り込み信号が入力されると、前記出力手段が、前記バス権要求信号の出力を停止することを特徴とするプロセッサを提供する。
このプロセッサによれば、割り込み信号が入力されると、バス権要求信号の出力が停止される。
【０００８】
好ましい態様において、前記割り込み信号が、前記制御装置に対し割り込み処理を要求する信号であってもよい。
このプロセッサによれば、制御装置に対する割り込み信号が入力されると、バス権要求信号の出力が停止される。
【０００９】
また、本発明は、上記のプロセッサと、前記制御装置と、前記バスとを有し、前記割り込み信号入力手段には、前記制御装置に対する割り込み信号が入力されることを特徴とするコンピュータ装置を提供する。
このコンピュータ装置によれば、割り込み信号が入力されると、バス権要求信号の出力が停止される。
【発明を実施するための最良の形態】
【００１０】
１．構成
図１は、本発明の一実施形態に係るコンピュータ装置１の構成を示す図である。ＣＰＵ（Central Processing Unit）１００は、コンピュータ装置１の構成要素を制御する装置である。ＧＰＵ（Graphics Processing Unit）３００は、画像処理に関する演算を行うプロセッサである。ＲＯＭ（Read Only Memory）４００は、コンピュータ装置１の起動に必要なプログラムやデータを記憶した不揮発性の記憶装置である。ＲＡＭ（Random Access Memory）５００は、ＣＰＵ１００がプログラムを実行する際のワークエリアとして機能する揮発性の記憶装置である。Ｉ／Ｏ（Input/Output）６００は、キーボード・ディスプレイ・プリンタなどの入出力装置や、ハードディスクドライブなどの記憶装置との間で信号の入出力を行うインターフェースである。バス２００は、ＣＰＵ１００やＧＰＵ３００などのバス使用装置と他の装置との間でやりとりされる信号を伝送する伝送路である。ＣＰＵ１００・ＧＰＵ３００・ＲＯＭ４００・ＲＡＭ５００・Ｉ／Ｏ６００は、バス２００を介して相互に接続されている。
【００１１】
この例で、バス２００の使用をする権利（以下、必要に応じ「バス権」という）は通常、ＣＰＵ１００が有している。また、ＧＰＵ３００も、状況に応じてバス２００の使用をする。したがって、ＣＰＵ１００とＧＰＵ３００との間で、バス権の競合が生じるおそれがある。そこでここでは、ＣＰＵ１００とＧＰＵ３００との間でバス権の調停が行われる例を説明する。ＣＰＵ１００およびＧＰＵ３００はバスを主体的に使用する装置（バス使用装置またはバス使用回路）であり、ＲＯＭ４００・ＲＡＭ５００・Ｉ／Ｏ６００はバスを主体的に使用しない装置である。図１に示されるように、コンピュータ装置１は、独立したバスアービタを有していない。
【００１２】
ＧＰＵ３００は、画像処理に関する機能に加え、以下の機能を有している。要求信号出力部３１０は、ＣＰＵ１００に対し、バス権要求信号（Bus Request、以下「ＢＲＥＱ」という）を出力する。信号ＢＲＥＱは、バス２００の使用権を譲るように要求する信号である。応答信号入力部３２０は、バス解放応答信号（Bus Acknowledge、以下「ＢＡＣＫ」という）を受け付ける。すなわち、信号ＢＡＣＫは、応答信号入力部３２０を介して入力される。バスアクセス部３３０は、バスアクセスをする、すなわちバス２００を介してＲＯＭ４００・ＲＡＭ５００・Ｉ／Ｏ６００等の他の装置にアクセスする。割り込み信号入力部３５０は、割り込み信号（Bus Cancel、以下「ＢＣＡＮ」という）を受け付ける。すなわち、信号ＢＣＡＮは、割り込み信号入力部３５０を介して入力される。この例で、信号ＢＣＡＮを伝送する信号線は、ＣＰＵ１００に対し割り込み処理を要求する信号（Interrupt、以下「ＩＮＴ」という）を伝送する信号線から分岐した信号線である。すなわち、割り込み信号入力部３５０には、信号ＩＮＴと同じ信号が入力される。信号ＩＮＴは、割り込み信号生成回路（図示略）等、割り込みを監視および制御する回路から入力される。割り込み信号生成回路は、例えば、マウスなどの入力装置から出力される信号に応じて割り込み信号を生成する。
【００１３】
また、以下の説明では必要に応じ、信号を伝送する信号線を、その信号と同じ参照符号を用いて表す。例えば、信号ＩＮＴを伝送する信号線を、信号線ＩＮＴと表す。
【００１４】
２．動作
以下、コンピュータ装置１の動作について図２−図１２を参照して説明する。
図２は、通常の動作状態、すなわちＣＰＵ１００がバス権を有している状態を示している。すなわち、ＣＰＵ１００は、バス２００を介してＲＡＭ５００等の回路にアクセスすることができる。このとき、ＧＰＵ３００は、バス２００を介して信号を受信できる状態であるが、信号を出力することはできない。すなわち、ＧＰＵ３００は、バス２００を介してコマンドの受け付けのみが可能な状態である。図中、バス２００とＧＰＵ３００との間の矢印は、一方向のみ信号の伝送が可能であることを示している。今この状態で、ＣＰＵ１００からＧＰＵ３００に対し、「グラフィック描画をせよ」というコマンドが入力された場合を例に説明する。ＧＰＵ３００が要求された処理を実行するには、ＲＡＭ５００にアクセスすることが必要である。
【００１５】
ＧＰＵ３００は、まず、バス権を要求する。すなわち、信号ＢＲＥＱをアクティブにする（図３）。この例では、ＢＲＥＱ＝１のときがアクティブ、ＢＲＥＱ＝０のときがイナクティブである。信号ＢＡＣＫ・ＢＣＡＮ・ＩＮＴについても同様である。
【００１６】
信号ＢＲＥＱがアクティブになると、ＣＰＵ１００は、バス２００を切り離す（図４）。具体的には、ＣＰＵ１００は、バス２００との間の入出力を行うトランジスタを高インピーダンスにすることで、バス２００を電気的に切り離す。図中の×印は、電気的に切り離されていることを示している。
【００１７】
バスを切り離すと、ＣＰＵ１００は、ＧＰＵ３００に対してバス解放応答を返す。すなわち、ＣＰＵ１００は、信号ＢＡＣＫをアクティブにする（図５）。
【００１８】
信号ＢＡＣＫがアクティブになると、ＧＰＵ３００はバス２００を占有する（図６）。すなわち、バス２００に対して入力・出力の双方向のアクセスが可能となる。ＧＰＵ３００は、要求された処理に応じて、ＲＡＭ５００にアクセスする。具体的には、ＧＰＵ３００は、ＡＤ（Address：アドレス）・ＤＴ（データ：DaTa）・ＣＳ（チップセレクト：Chip Select）・ＯＥ（アウトプットイネーブル：Output Enable）・ＷＥ（ライトイネーブル：Write Enable）などメモリアクセスに用いられる信号を、バス２００を介してＲＡＭ５００に出力する。
【００１９】
いま、この状態でＣＰＵ１００に対して割り込みが発生した場合、すなわち信号ＩＮＴがアクティブになった場合について説明する。信号線ＢＣＡＮは信号線ＩＮＴから分岐しているので、信号ＩＮＴがアクティブになると信号ＢＣＡＮもアクティブになる（図７）。
【００２０】
信号ＢＣＡＮがアクティブになると、ＧＰＵ３００は、バス２００を切り離す（図８）。ＧＰＵ３００がバス２００を占有する前と同じように、ＧＰＵ３００は、バス２００を介してコマンドの受け付けのみが可能な状態になる。
【００２１】
バスを切り離すと、ＧＰＵ３００は、バス権の要求を取り下げる（停止する）。すなわち、ＧＰＵ３００は、信号ＢＲＥＱをイナクティブにする（図９）。
【００２２】
信号ＢＲＥＱがイナクティブになると、ＣＰＵ１００は、バス解放応答を取り下げる。すなわち、ＣＰＵ１００は、信号ＢＡＣＫをイナクティブにする（図１０）。
【００２３】
信号ＢＡＣＫをイナクティブにすると、ＣＰＵ１００は、再びバス２００を占有する。具体的には、ＣＰＵ１００は、バス２００との間の入出力を行うトランジスタを低インピーダンスにすることで、バス２００を電気的に接続する（図１１）。
【００２４】
バス２００を占有すると、ＣＰＵ１００は、信号ＩＮＴの送信元の回路に対し、割り込み信号の取り下げを要求する。送信元の回路は、割り込み信号を取り下げる、すなわち、信号ＩＮＴをイナクティブにする。このとき、信号ＢＣＡＮもイナクティブになる（図１２）。ＣＰＵ１００は、要求された割り込み処理を実行する。
【００２５】
図１３は、以上で説明したコンピュータ装置１の動作を示すタイミングチャートである。本実施形態によれば、ＣＰＵ１００に対し割り込み信号が入力されると、ＧＰＵ３００はバス２００を解放する。したがって、割り込み要求が発生した場合におけるバスの調停が、別途バスアービタを設けることなく、また、ＣＰＵにも改良を加えることなく実現される。
【００２６】
図１４は、本実施形態の構成を有さないコンピュータ装置の動作を示すタイミングチャートである。ＣＰＵ１００に対し割り込み信号が入力されたとしても、ＧＰＵ３００は処理をし続けるため、ＣＰＵ１００は要求された割り込み処理を行うことができない。例えば、ユーザがマウスを操作しても、アプリケーションプログラムによる画像処理は行われるものの、画面上でマウスカーソルが動かないという状態になる。ユーザにとってこれは不便である。ＣＰＵ１００が高度なバス調停機能を有していればよい場合もあるが、いわゆる組み込み系などコストの兼ね合いでＣＰＵを高機能化できないシステムにおいては、特にこの問題は深刻である。
【００２７】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下において、実施形態と共通する事項についてはその説明を省略する。また、実施形態と共通する構成要素については共通の参照符号が用いられる。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００２８】
上述の実施形態において、信号ＢＣＡＮは、信号ＩＮＴと同じ信号であった。すなわち、信号ＢＣＡＮと信号ＩＮＴとは同じ装置（例えば割り込み信号生成回路）により駆動されていた。しかし、信号ＢＣＡＮを駆動する装置はこれに限定されるものではない。例えば、ＣＰＵが信号ＢＣＡＮを出力する機能を有していてもよい。ＣＰＵは信号ＢＣＡＮの出力端子を有している。信号ＢＣＡＮの出力端子は、ＧＰＵのＢＣＡＮ入力端子に接続される。この場合、ＣＰＵは、信号ＩＮＴがアクティブになると、信号ＢＣＡＮをアクティブにする。ＧＰＵの動作は、実施形態で説明したとおりである。あるいは、信号ＢＣＡＮは、別途設けられたバスアービタから出力されてもよい。
【００２９】
コンピュータ装置１は、具体的には、記憶性表示素子を有し、情報の表示を行う電子ペーパあるいは電子ブックと言われる情報表示装置であってもよい。
【００３０】
ＣＰＵからバス権を譲り受けるプロセッサは、ＧＰＵに限定されない。ＧＰＵ以外のいかなるプロセッサに対して本発明が適用されてもよい。また、通常の状態でバス権を有する制御装置はＣＰＵに限定されない。ＣＰＵ以外のプロセッサが、通常の状態でバス権を有していてもよい。また、バス使用回路によりアクセスされる回路は、ＲＯＭ４００・ＲＡＭ５００・Ｉ／Ｏ６００に限定されない。これら以外の回路が、バスを介してアクセスされてもよい。
【図面の簡単な説明】
【００３１】
【図１】一実施形態に係るコンピュータ装置１の構成を示す図である。
【図２】通常の動作状態を示す。
【図３】ＧＰＵ３００がバス権を要求した状態を示す。
【図４】ＣＰＵ１００がバス２００を切り離した状態を示す。
【図５】ＣＰＵ１００がバス解放応答した状態を示す。
【図６】ＧＰＵ３００がバス２００を占有した状態を示す。
【図７】割り込み信号が入力された状態を示す。
【図８】ＧＰＵ３００がバス２００を切り離した状態を示す。
【図９】ＧＰＵ３００がバス権の要求を取り下げた状態を示す。
【図１０】ＣＰＵ１００がバス解放応答を取り下げた状態を示す。
【図１１】ＣＰＵ１００がバス２００を占有した状態を示す。
【図１２】割り込み信号が取り下げられた状態を示す。
【図１３】コンピュータ装置１の動作を示すタイミングチャートである。
【図１４】本実施形態の構成を有しない装置の動作を示すタイミングチャートである。
【符号の説明】
【００３２】
１…コンピュータ装置、１００…ＣＰＵ、２００…バス、３００…ＧＰＵ、３１０…要求信号出力部、３２０…応答信号入力部、３３０…バスアクセス部、３５０…割り込み信号入力部、４００…ＲＯＭ、５００…ＲＡＭ、６００…Ｉ／Ｏ
【図１】
2009129351.tif 000003
【図２】
2009129351.tif 000004
【図３】
2009129351.tif 000005
【図４】
2009129351.tif 000006
【図５】
2009129351.tif 000007
【図６】
2009129351.tif 000008
【図７】
2009129351.tif 000009
【図８】
2009129351.tif 000010
【図９】
2009129351.tif 000011
【図１０】
2009129351.tif 000012
【図１１】
2009129351.tif 000013
【図１２】
2009129351.tif 000014
【図１３】
2009129351.tif 000015
【図１４】
2009129351.tif 000016