(57)【要約】【課題】バスアービタを設けなくても、バスの競合状態を回避できる技術を提供すること。【解決手段】プロセッサは、バスに接続され、前記バスの使用権を有する制御装置に、前記バスの使用権を要求するバス権要求信号を出力する出力手段と、前記制御装置から、前記バス権要求信号に対する応答としてバス解放応答信号が入力される入力手段と、前記解放信号が入力されてから第１の待ち時間が経過した後で前記バスに対してアクセスするバスアクセス手段とを有する。【選択図】図１
2009129347.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）などメモリアクセスに用いられる信号を、バス２００を介してＲＡＭ５００に出力する。
【００２４】
メモリアクセスが終了すると、ＧＰＵ３００は、βマージンの間、バス２００を切り離さずに待機する。具体的には、ＧＰＵ３００は、レジスタ３４０からβマージンを読み出す。この例でβマージンもαマージンと同様に、バスを切り離さずに待機するクロック数を示す。
【００２５】
βマージンに相当する時間待機すると、ＧＰＵ３００は、バス２００を切り離す（図７）。ＧＰＵ３００がバス２００を占有する前と同じように、ＧＰＵ３００は、バス２００を介してコマンドの受け付けのみが可能な状態になる。
【００２６】
バスを切り離すと、ＧＰＵ３００は、バス権の要求を取り下げる（停止する）。すなわち、ＧＰＵ３００は、信号ＢＲＥＱをイナクティブにする（図８）。
【００２７】
信号ＢＲＥＱがイナクティブになると、ＣＰＵ１００は、バス解放応答を取り下げる。すなわち、ＣＰＵ１００は、信号ＢＡＣＫをイナクティブにする（図９）。
【００２８】
信号ＢＡＣＫをイナクティブにすると、ＣＰＵ１００は、再びバス２００を占有する。具体的には、ＣＰＵ１００は、バス２００との間の入出力を行うトランジスタを低インピーダンスにすることで、バス２００を電気的に接続する（図１０）。
【００２９】
図１１は、以上で説明したコンピュータ装置１の動作を示すタイミングチャートである。ＧＰＵ３００によるバスアクセスの前および後にそれぞれαマージンおよびβマージンの待ち時間が設けられているため、ＣＰＵ１００およびＧＰＵ３００のバスアクセスの信号に遅延が生じていても、バスの競合が生じることはない。本実施形態によれば、このようなバスの調停が、別途バスアービタを設けることなく、また、ＣＰＵにも改良を加えることなく実現される。本実施形態によるバス調停技術は、特に、ＣＰＵ１００とＧＰＵ３００のクロックが同期していない非同期システムに好適である。
【００３０】
図１２は、従来技術に係るコンピュータ装置の動作を示すタイミングチャートである。本実施形態で説明したαマージンおよびβマージンを有さないので、バスアクセスの信号に生じた遅延により、バスの衝突（競合）が生じている。このようなバスの衝突は、システムの誤動作を引き起こす。システムの動作クロックが相対的に遅い場合、信号の遅延は問題にならなかったが、動作クロックが速くなり、クロックに対して信号の遅延が無視できないほどの長さになってくると、このようなバスの衝突が生じる可能性は高くなっていく。ＣＰＵが高度なバス調停機能を有していればよい場合もあるが、いわゆる組み込み系などコストの兼ね合いでＣＰＵを高機能化できないシステムにおいては、特にこの問題は深刻である。
【００３１】
３．他の実施形態
本発明は上述の実施形態に限定されるものではなく種々の変形実施が可能である。以下、変形例をいくつか説明する。以下において、実施形態と共通する事項についてはその説明を省略する。また、実施形態と共通する構成要素については共通の参照符号が用いられる。以下の変形例のうち２つ以上のものが組み合わせて用いられてもよい。
【００３２】
上述の実施形態においては、αマージンとβマージンの２つの待ち時間が用いられたが、用いられる待ち時間はαマージンとβマージンのどちらか一方だけでもよい。
【００３３】
レジスタ３４０に記憶されたαマージンおよびβマージンは、ＣＰＵ１００により書き換えが可能である。バスアクセスの信号の遅延時間などの特性は、用いられるＣＰＵや周辺回路によって異なるからである。この場合、ＣＰＵ１００は、電源投入時、あるいは、プログラムの起動時など所定のタイミングでレジスタ３４０にアクセスし、システムに適合したαマージンおよびβマージンを書き込む。あるいは、αマージンおよびβマージンの少なくともいずれか一方は、あらかじめ決められた値、すなわち、ＧＰＵごとに決められた値を有していてもよい。
【００３４】
コンピュータ装置１は、具体的には、記憶性表示素子を有し、情報の表示を行う電子ペーパあるいは電子ブックと言われる情報表示装置であってもよい。
【００３５】
ＣＰＵからバス権を譲り受けるプロセッサは、ＧＰＵに限定されない。ＧＰＵ以外のいかなるプロセッサに対して本発明が適用されてもよい。また、通常の状態でバス権を有する制御装置はＣＰＵに限定されない。ＣＰＵ以外のプロセッサが、通常の状態でバス権を有していてもよい。また、バス使用回路によりアクセスされる回路は、ＲＯＭ４００・ＲＡＭ５００・Ｉ／Ｏ６００に限定されない。これら以外の回路が、バスを介してアクセスされてもよい。
【００３６】
上述の実施形態ではＣＰＵ１００が２線式バス調停機能を有していたが、ＣＰＵ１００が有するバス調停機能はこれに限定されない。ＣＰＵ１００は、３線式、４線式など他の方式のバス調停機能を有していてもよい。
【図面の簡単な説明】
【００３７】
【図１】実施形態に係るコンピュータ装置１の構成を示す図である。
【図２】通常の動作状態を示す。
【図３】ＧＰＵ３００がバス権を要求した状態を示す。
【図４】ＣＰＵ１００がバス２００を切り離した状態を示す。
【図５】ＣＰＵ１００がバス解放応答した状態を示す。
【図６】ＧＰＵ３００がバス２００を占有した状態を示す。
【図７】ＧＰＵ３００がバス２００を切り離した状態を示す。
【図８】ＧＰＵ３００がバス権要求を取り下げた状態を示す。
【図９】ＣＰＵ１００がバス権解放応答を取り下げた状態を示す。
【図１０】ＣＰＵ１００がバス２００を占有した状態を示す。
【図１１】コンピュータ装置１の動作を示すタイミングチャートである。
【図１２】従来技術に係るコンピュータ装置の動作を示すタイミングチャートである。
【符号の説明】
【００３８】
１…コンピュータ装置、１００…ＣＰＵ、２００…バス、３００…ＧＰＵ、３１０…要求信号出力部、３２０…応答信号入力部、３３０…バスアクセス部、３４０…レジスタ、４００…ＲＯＭ、５００…ＲＡＭ、６００…Ｉ／Ｏ
【図１】
2009129347.tif 000003
【図２】
2009129347.tif 000004
【図３】
2009129347.tif 000005
【図４】
2009129347.tif 000006
【図５】
2009129347.tif 000007
【図６】
2009129347.tif 000008
【図７】
2009129347.tif 000009
【図８】
2009129347.tif 000010
【図９】
2009129347.tif 000011
【図１０】
2009129347.tif 000012
【図１１】
2009129347.tif 000013
【図１２】
2009129347.tif 000014