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