(57)【要約】      （修正有）【課題】マイクロプロセッサと外部デバイスとのバスサイクルの効率を良くすること。【解決手段】このＣＰＵは、外部デバイスと関連付けられるチップセレクト信号を定義するチップセレクトモジュールを有する。チップセレクトモジュールは、外部デバイスと関連付けられるアドレスを保持するアドレス空間を有する。アドレス空間はアドレスセクションを提供する。アドレスセクションは外部デバイスと関連付けられ、アドレスレンジと関連付けられると共にチップセレクト信号により割り当てられるアドレスサブセクションに細分される。アドレスサブセクションは、ＣＰＵが外部デバイス間の待ちラインをモニターするか、ＣＰＵが待ち状態をある回数だけ待つか、の関連付けに基づいてバスサイクルを判定する。これにより、ＣＰＵと通信している外部デバイス間のバスサイクル長を最適化する。【選択図】図３
2004318877.tif 000002
【特許請求の範囲】
【請求項１】
中央処理ユニット（ＣＰＵ）であって、
外部デバイスと関連付けられたチップセレクト信号を定義するチップセレクトモジュールを有し、
前記チップセレクトモジュールは前記外部デバイスに関連付けられたアドレスを保持すると共に前記外部デバイスと関連付けられたアドレスセクションを提供するアドレス空間を有し、
前記アドレスセクションはアドレスサブセクションに細分され、
前記アドレスサブセクションは各々が一つのアドレスレンジと関連付けられ、
前記アドレスレンジは前記外部デバイスをアクセスするために前記チップセレクト信号を介して割り当てられ、
前記アドレスサブセクションは、前記ＣＰＵが前記外部デバイスと前記ＣＰＵとの間の待ちラインをモニターするか、前記ＣＰＵが任意の待ち状態の数だけ待つかの一方との関連付けに基づいてバスサイクルを決定するように構成されていることを特徴とするＣＰＵ。
【請求項２】
前記チップセレクトモジュールはさらに、
プログラム可能なソフトウェア待ち状態レジスタと、
外部待ちラインをモニターする待ち参照ロジックとを有することを特徴とする請求項１記載のＣＰＵ。
【請求項３】
前記アドレス空間は、３２ビットのアドレス線で４ギガバイトのアドレス空間を有するレジスタであることを特徴とする請求項１記載のＣＰＵ。
【請求項４】
前記ＣＰＵと前記外部デバイス間の待ちラインのモニターと、前記ＣＰＵが前記任意の待ち状態の数だけ待つことは、互いに排他であることを特徴とする請求項１記載のＣＰＵ。
【請求項５】
前記プログラム可能なソフトウェア待ちレジスタは、前記ＣＰＵが前記外部デバイスにアクセスする前にゼロ回以上の待ち状態が適用されるように構成されることを特徴とする請求項２記載のＣＰＵ。
【請求項６】
前記外部デバイスはグラフィックスコントローラであることを特徴とする請求項１記載のＣＰＵ。
【請求項７】
前記アドレスサブセクションは、メモリアドレス、レジスタアドレス、及び先入れ先出し（ＦＩＦＯ）バッファアドレスのグループから選択されることを特徴とする請求項１記載のＣＰＵ。
【請求項８】
外部デバイスのメモリ読出しと関連付けられたアドレスサブセクションが、前記待ちラインをモニターするよう前記ＣＰＵに指示することを特徴とする請求項１記載のＣＰＵ。
【請求項９】
前記外部デバイスと関連付けられたレジスタ及び先入れ先出し（ＦＩＦＯ）バッファのうちの一つと関連付けられたアドレスサブセクションが、待ちラインをモニターせずに任意数の待ち状態を適用するよう前記ＣＰＵに指示することを特徴とする請求項１に記載のＣＰＵ。
【請求項１０】
デバイスであって、
表示画面と、
前記表示画面に表示するデータを生成するグラフィックス処理ユニット（ＧＰＵ）と、
前記ＧＰＵと通信する中央処理ユニット（ＣＰＵ）とからなり、
前記ＣＰＵは、前記ＧＰＵと関連付けられたチップセレクト信号を定義するチップセレクトモジュールを有し、
前記チップセレクトモジュールは、前記ＧＰＵと関連付けられたアドレスを保存すると共に前記ＧＰＵと関連付けられたアドレスセクションを提供するアドレス空間を有し、
前記アドレスセクションはアドレスサブセクションに細分され、
前記アドレスサブセクションの各々は、前記ＧＰＵをアクセスするために前記チップセレクト信号によって割り当てられる一つのアドレスレンジと関連付けられ、
前記アドレスサブセクションはアクセスされている前記アドレスレンジに基づいてバスサイクルを決定することを特徴とするデバイス。
【請求項１１】
前記表示画面はオンボードメモリを有することを特徴とする請求項１０記載のデバイス。
【請求項１２】
前記チップセレクトモジュールはさらに、
プログラム可能なソフトウェア待ち状態レジスタと、
前記ＧＰＵにより有効にされる待ちラインをモニターする待ち参照ロジックを有することを特徴とする請求項１０記載のデバイス。
【請求項１３】
前記ＧＰＵは、前記ＣＰＵからのアクセス要求と関連付けられるアドレスサブセクションに基づいて待ちラインが有効になったと判定することを特徴とする請求項１０記載のデバイス。
【請求項１４】
前記ＧＰＵは、読出し要求と関連付けられるデータを１クロックサイクル内にフェッチすることができない場合には、待ちラインを有効とすることを特徴とする請求項１２記載のデバイス。
【請求項１５】
前記アクセスされているアドレスレンジが、前記ＣＰＵと前記ＧＰＵとの間の待ちラインをモニターすること又は前記ＣＰＵが前記待ち状態の数だけ待つことの一方をトリガーとすることを特徴とする請求項１０記載のデバイス。
【請求項１６】
前記ＣＰＵと前記外部デバイスとの間の待ちラインのモニターすることと前記ＣＰＵが前記待ち状態の数だけ待つことは互いに排他であることを特徴とする請求項１５記載のデバイス。
【請求項１７】
前記ＣＰＵは、待ちラインによって決められるバスサイクルで、バスを介して周辺デバイスと通信するように構成されており、前記周辺デバイスは、前記ＣＰＵからのデータ要求に応答して前記ＣＰＵと前記周辺デバイス間で、前記待ちラインがいつ有効にされたかを判定するように構成され、
ここで前記周辺デバイスは、要求されているデータをフェッチするのに要するクロックサイクル数が１以上の場合には、待ちラインを有効にすることを特徴とする請求項１０記載のデバイス。
【請求項１８】
中央処理ユニット（ＣＰＵ）及び前記ＣＰＵと通信している外部デバイス間のバスサイクル長を最適化する方法で、
前記外部デバイスのアドレスマップを前記ＣＰＵ内で生成し、
前記アドレスマップに複数のアドレスレンジを定義すると共に前記複数のアドレスレンジは各々が一つの待ち選択と関連付けられ、
前記外部デバイスを選択するチップセレクト信号を生成し、
前記複数のアドレスレンジのどのアドレスレンジが前記チップセレクト信号と関連付けられるか識別し、
前記複数のアドレスレンジの前記アドレスレンジと関連付けられた待ち選択を判定し、
前記待ち選択を前記ＣＰＵと前記外部デバイスと間のバスサイクルに適用することを特徴とする方法。
【請求項１９】
前記複数のアドレスレンジのうちの前記アドレスレンジと関連付けられた待ち選択を判定する方法操作は、
前記複数のアドレスレンジのうちの前記アドレスレンジと関連付けられた前記外部デバイスの領域タイプを識別し、
前記領域タイプがレジスタ及び先入れ先出し（ＦＩＦＯ）バッファの一つならば、前記方法は、
前記待ち選択を、ソフトウェア待ちレジスタのプログラムされた値と関連付けられる固定の待ち状態数として、前記待ち選択を定義することを特徴とする請求項１８記載の方法。
【請求項２０】
前記固定数はゼロであることを特徴とする請求項１９に記載の方法。
【請求項２１】
前記複数のアドレスレンジのうちの前記アドレスレンジと関連付けられた待ち選択を判定する方法操作は、
前記複数のアドレスレンジのうちの前記アドレスレンジと関連付けられた前記外部デバイスの領域タイプを識別し、
前記領域タイプがメモリ領域ならば、前記方法は、
前記外部デバイスによって有効にされた待ちラインをモニターするように前記ＣＰＵを構成することを特徴とする請求項１８記載の方法。
【請求項２２】
待ち選択は、ソフトウェア待ち状態を適用することと待ちラインをモニターすることとのうちの一つであることを特徴とする請求項１８記載の方法。
【請求項２３】
前記複数のアドレスレンジのうちのどのアドレスレンジが前記チップセレクト信号と関連付けられるか識別する方法操作は、
前記複数のアドレスレンジのうちの前記アドレスレンジを、待ちラインの待ち選択及びプログラム可能な待ち状態の待ち選択のうちの一方に対応する外部デバイスの領域と関連付けることを特徴とする請求項１８記載の方法。
【請求項２４】
さらに、前記アドレスマップを前記ＣＰＵのレジスタに保持することを特徴とする請求項１８記載の方法。
【請求項２５】
前記複数のアドレスレンジのうちの前記アドレスレンジと関連付けられた待ち選択を判定する方法操作は、
前記ＣＰＵが要求したデータを前記外部デバイスがフェッチするのに要するクロックサイクル数を判定し、
クロックサイクル数が１ならば、前記方法は、
前記外部デバイス及び前記ＣＰＵ間の待ちラインを前記外部デバイスが有効にせずにデータをフェッチし、
クロックサイクル数が１以上ならば、前記方法は、
データがフェッチされるまで待ちラインを有効とすることを特徴とする請求項１８記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にコンピュータシステムに関し、より具体的には、不要な待ち状態をなくしてバス転送性能を高める方法及び装置に関する。
【背景技術】
【０００２】
概して、中央処理ユニット（ＣＰＵ）は、ＣＰＵとデータをやり取りする周辺デバイスを制御するプロセッサよりもはるかに高速で動作するように構成されている。同一デバイス内であっても、ＣＰＵは、このＣＰＵと通信するグラフィックスプロセッシングユニット（ＧＰＵ）よりも高速で動作することがある。従って、ＣＰＵが別のデバイスと通信する場合、その周辺デバイスがＣＰＵに要求されたデータを準備するための十分な時間を与えるために、待ち（wait）状態が利用されている。
【０００３】
図１は、ＧＰＵと通信しているＣＰＵを簡略的に示した図である。デバイス１０４において、ＣＰＵ１００はバス１０６を介してＧＰＵ１０２と通信している。ＣＰＵ１００とＧＰＵ１０２との通信を可能にする一つの仕組みは、任意の回数の待ち状態を与えて、ＣＰＵ１００がＧＰＵ１０２もしくは外部のデバイスからデータを読み取る前に、ＣＰＵ１００を若干のクロックサイクルだけ待たせるというやり方である。例えば、ＣＰＵ１００がＧＰＵ１０２に対して読取り命令を出した場合、ＣＰＵはプログラムされた回数の待ち状態、つまりクロックサイクルだけ待って、ＧＰＵによってデータ線に供給されたデータを読取る。ＣＰＵ１００と接続する可能性がある全てのコンポーネントをカバーするためには、このプログラムされた待ち状態は、データ取得に最も時間がかかるコンポーネントに対しても十分余裕のある時間間隔でなければならない。したがって、この一つのプログラムされた待ち状態で全ての場合を処理するというやり方では、ＣＰＵがＧＰＵ等の比較的高速な周辺デバイスに対して不必要に待たなければならず、時間の無駄となる。さらに、２次元機能を実施中の場合、メモリ読取りを実行する前に２次元機能が完了しなければならないため、最も低速なケースのプログラミングされた待ち状態は実行できない。
【０００４】
ＣＰＵと周辺デバイス又は別のプロセッサとの通信を可能にする第２仕組みは、待ちラインを使用するやり方である。これは、ＣＰＵ１００が読出し命令を出すと、ＧＰＵ１０２が待ちラインを有効とする、つまり、ＧＰＵがそのサイクルを完了するのにもっと時間が必要であることを知らせる信号をＣＰＵに送る。ＣＰＵ１００は待ちラインをモニターし、待ちラインが無効になったらＣＰＵはデータを読取る。繰り返しになるが、高速コントローラは待ちラインを有効としない。したがって、ＣＰＵは、待ちラインの状態を調べるためにある一定のクロックサイクル数だけ待つことになる。一般的には、ＣＰＵは、待ちラインを調べるサイクルで、３〜４クロック待つ。従って、高速なプロセッサや周辺デバイスに対しては、ＣＰＵはこの３〜４クロックサイクルを無駄にすることになる。
【０００５】
よって、ＣＰＵと通信するデバイスやマイクロプロセッサに応じて、外部の待ちラインかソフトウェアによる待ち状態かのどちらを使用するかをプログラム可能なＣＰＵを提供するための先行技術の問題を解決することが求められている。
【０００６】
【特許文献１】米国再発行特許発明第6,334,181号明細書
【特許文献２】米国再発行特許発明第6,311,264号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００７】
大まかに言えば、本発明は、アドレスレンジにチップセレクト信号を割り当てることによりこれらの問題を解決するもので、ハードウェア又はソフトウェアの待ち状態を特定のアドレスレンジと関連付ける。従って、それぞれアクセススピードが異なる外部デバイスの様々な待ち状態に対応する自由度を持つことにより、マイクロプロセッサと外部デバイスとのバスサイクルの効率をより良くするものである。なお、当然のことながら、本発明は、プロセスとして、システムとして、あるいはデバイスとしてなど、様々な方法で実現することができる。本発明の実施例を以下にいくつか説明する。
【課題を解決するための手段】
【０００８】
一実施例において、中央処理ユニット（ＣＰＵ）を提供する。このＣＰＵはチップセレクトモジュールを有する。チップセレクトモジュールはチップセレクト信号を定義し、外部デバイスと関連付けられる。チップセレクトモジュールはさらに、その外部デバイスと関連するアドレスを保持するように構成されたアドレス空間を有する。アドレス空間はその外部デバイスと関連付けられるアドレスセクションを提供する。この外部デバイスと関連付けられたアドレスセクションは、アドレスサブセクションに細分され、各アドレスサブセクションは、その外部デバイスをアクセスするためにチップセレクト信号によって割り当てられたアドレスレンジと関連付けられる。このアドレスサブセクションは、ＣＰＵがＣＰＵと外部デバイス間の待ちラインをモニターするか、ＣＰＵが任意の待ち状態の数だけ待つか、といういずれか一方との関連に基づいてバスサイクルを判定するように構成されている。
【０００９】
別の実施例においては、デバイスを提供する。このデバイスは、表示画面とその表示画面に表示するデータを生成するＧＰＵ（ＧＰＵ）を有する。中央処理ユニット（ＣＰＵ）も有する。ＣＰＵはＧＰＵとデータのやり取りをする。さらにＣＰＵはチップセレクトモジュールを有する。チップセレクトモジュールはチップセレクト信号を定義し、チップセレクト信号はＧＰＵと関連付けられる。チップセレクトモジュールはさらに、ＧＰＵと関連付けられるアドレスを保持するように構成されたアドレス空間を有する。このアドレス空間が、ＧＰＵと関連付けられるアドレスセクションとなる。このアドレスセクションは、アドレスサブセクションに細分され、各アドレスサブセクションは、ＧＰＵにアクセスするためのチップセレクト信号により割り当てられたアドレスレンジと関連付けられる。アドレスサブセクションは、アクセスされているアドレスレンジに基づいてバスサイクルを判定する。
【００１０】
また別の実施例においては、ＣＰＵ及びそのＣＰＵと通信している外部デバイス間のバスサイクル長を最適化する方法を提供する。この方法は、ＣＰＵの内部で外部デバイスのアドレスマップを生成することから始まる。次に、そのアドレスマップに対応する複数のアドレスレンジが定義される。各アドレスレンジは、一つの待ち選択と関連付けられる。次に、チップセレクト信号が生成され、このチップセレクト信号により外部デバイスが選択される。次に、複数のアドレスレンジの中からチップセレクト信号と関連する一つのアドレスレンジが識別される。に、複数のアドレスレンジの中から識別された、前記アドレスレンジと関連付けられた待ち選択が識別される。そして、その待ち選択がＣＰＵと外部デバイスとのバスサイクルに適用される。
【００１１】
発明のその他の態様並びに効果は、添付の図面と共に、発明の原理を例を挙げて説明している以下の詳細な説明から明白になる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施形態を図面に基づいて説明する。
【実施例１】
【００１３】
バスサイクルの性能を向上させるために、チップセレクトメインアドレス領域と関連付けられたプログラミング可能な待ち状態選択を活用する装置並びに方法として本発明を説明する。しかし、当業者であれば、これらの詳細な説明の一部もしくはその全てを知らなくても本発明を実施できることは明らかである。その他の場合には、公知のプロセスの操作については、本発明を不要に不明瞭にしないために、詳しくは説明していない。図１については、「背景技術」の項で説明した。本明細書で用いている「約」とは、言及している値の＋／−１０％のことである。
【００１４】
本発明の実施例は、外部デバイス毎に異なるアドレスレンジをアドレス指定する能力を有する中央処理ユニット（ＣＰＵ）を提供する。ＣＰＵのアドレス空間はアドレスセクションに細分される。そして、各アドレスセクションはある特定のデバイスに対応する。さらに、各アドレスセクションはアドレスレンジに細分され、その外部デバイスのある特定領域と関連付けられる。したがって、チップセレクトモジュールを介して、ＣＰＵによってアクセスされる外部デバイスのアドレスを特定するために、アドレス空間のあるアドレスレンジを割り当てることで、ＣＰＵとデバイスのバスサイクルの待ち状態を選択することができる。すなわち、そのアドレスレンジによって、ソフトウェア待ち状態を適用してＣＰＵがプログラムされた回数だけ待ち状態で待つか、あるいは、ハードウェア待ち状態を適用してＣＰＵが待ちラインをモニターしてデータバス上のデータが有効になる時を見つけるのか、が決まる。勿論、ソフトウェア待ち状態の回数は、適切な待ち状態回数であれば何回でもよく、レジスタや先入れ先出し（ＦＩＦＯ）バッファといった高速アクセス領域からのデータ読出しでは、待ち状態の回数はゼロでよい。言うまでもなく、この外部デバイスとは、グラフィックコントローラやＣＰＵと通信するどのような周辺デバイスでもよい。そして、ＣＰＵは、周辺デバイスのデータにアクセスしたり、周辺デバイスにデータを提供することができる。
【００１５】
図２Ａは、外部デバイスと通信しているマイクロプロセッサの簡単な概略図で、このマイクロプロセッサは、本発明の一実施例に基づき、マイクロプロセッサと外部デバイスとのバスサイクルのクロックサイクルが最適化されるように構成されている。ＣＰＵ１１０は、ランダムアクセスメモリ１１１及びチップセレクトモジュール１１２を有する。ＣＰＵ１１０は、バス１１４を介して外部デバイス１１６と通信する。外部デバイス１１６はＲＡＭ１１８を有する。言うまでもなく、外部デバイス１１６は、ＣＰＵ１１０と通信されるように構成されたどのような周辺デバイスでもよく、例えば、マイクロプロセッサに関連付けられたプリンタ、携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）といった周辺デバイスなどがある。さらに、外部デバイス１１６は、ＣＰＵ１１０と通信する、ＣＰＵと同じデバイスに組み込まれたグラフィックスプロセッサでもよい。一例としては、携帯電話、ＰＤＡ、ハンドヘルドパソコンといった、表示画面を有する携帯型の電子デバイスなどがある。チップセレクトモジュール１１２は、待ち状態選択モジュール１１３を有する。待ち状態選択モジュール１１３は、バスサイクルに対して所定の回数だけ待ち状態を維持する（ソフトウェア待ち状態）か、ＣＰＵ１１０とデバイス１１６間の外部待ちライン１１９をモニターする（ハードウェア待ち状態）か、のどちらか一方を選択することで、ＣＰＵ１１０とデバイス１１６間のバスサイクルを最適化するように構成されている。以下に説明するように、待ちライン１１９をモニターするか、所定回数の待ち状態を適用するかの判定は、チップセレクト信号を介してアクセスされる、外部デバイス１１６と関連付けられたアドレスレンジに基づいて行なわれる。
【００１６】
図２Ｂは、チップセレクトモジュールの概略図で、チックセレクトモジュールはメモリ空間に割り当てられたチップセレクト信号を有効とすることで、ソフトウェア状態の適用かハードウェア状態の適用かを決める。チップセレクトモジュール１１２の待ち状態選択モジュール１１３は、チップセレクト信号モジュール１３４とハードウェア／ソフトウェア待ち状態モジュール１１７を有する。従って、特定の外部デバイスと関連付けられたチップセレクト信号は、適切な待ち状態を選択するように構成されている。当業者であれば、ハードウェア待ち状態もしくはソフトウェア待ち状態の選択をセレクト信号で行うことにより、ここで説明している機能を実行するように回路構成されていることは明からである。
【００１７】
図３は、本発明の一実施例による、ＣＰＵと関連付けられたバスサイクルの最適化を可能にするＣＰＵのモジュールのより詳細な概略図である。ＣＰＵ１１０はチップセレクトモジュール１１２を有する。チップセレクトモジュール１１２は、アドレス空間１２０、ソフトウェア待ち状態モジュール１２２、待ち参照ロジックモジュール１２４、チップセレクト信号モジュール１３４を有する。言うまでもなく、図２Ａ及び図２Ｂの待ち状態選択モジュール１１３は、ソフトウェア待ち状態モジュール１２２、待ち参照ロジックモジュール１２４、及び図３のチップセレクト信号モジュール１３４を有する。さらに、図２Ｂのハードウェア／ソフトウェア待ち状態モジュールは、アドレス空間１２０、ソフトウェア待ち状態モジュール１２２、及び待ち参照ロジックモジュール１２４を有する。
【００１８】
図３において、デバイス１１６は、待ちロジックモジュール１２８、チップセレクト領域１３０、ＲＡＭ１１８を有する。データは、バス１１４を介して、ＣＰＵ１１０とデバイス１１６間でやり取りされる。デバイス１１６は、チップセレクト信号モジュールで生成されたチップセレクト信号によりアクセスされる。しかしながら、アクセスされているデバイス１１６のアドレスレンジに基づき、ＣＰＵ１１０が待ちライン１２６をモニターするかしないかが決まる。従って、待ちライン１２６をモニターしないと判定された場合には、ＣＰＵは要求されたデータをデバイス１１６から１クロックサイクル内にアクセスすることができる。もしくは、ＣＰＵがデバイスからの要求データを得る前に、プログラムされた回数の待ち状態が適用されるようにしても構わない。チップセレクト信号モジュール１３４が生成したチップセレクト信号は、アドレス空間１２０のアドレスレンジ１２０ａと関連付けられる。アドレスレンジ１２０ａは図４に示すようにサブアドレスレンジにさらに分割される。よって、チップセレクトモジュール１３４が生成した信号と関連付けられるアドレスレンジに基づいて、ＣＰＵはソフトウェア待ち状態を適用することも、外部待ち状態を適用して待ちラインをモニターすることもできる。例えば、デバイス１１６を選択するためのチップセレクト信号１３４−１（ＣＳ1）と関連付けられたアドレスレンジが、外部待ちライン１２６のモニターを必要とするアドレスレンジと関連付けられている場合は、待ち参照ロジックモジュール１２４により外部待ちライン１２６がモニターされる。
【００１９】
図３のソフトウェア待ち状態モジュール１２２は、例えばクロックサイクルをバスサイクルに挿入することで、プログラムされた待ち状態の数に合わせてバスサイクルを延長することができる。一例として、ソフトウェア待ち状態モジュール１２２は、レジスタにプログラムされた値に基づいてバスサイクルが延長されるプログラム可能なレジスタである。従って、ＣＰＵ１１０は、対応するチップセレクト信号によってアクセスされたデバイス１１６の領域のタイプによって最適化されるように構成されている。すなわち、待ちラインをモニターしなければならない領域、待ちラインをモニターする必要のない領域、あるバスサイクル長だけ待ち状態を維持するようにプログラムされた領域、のそれぞれに最適な方法で対応できる。例えば、デバイス１１６のレジスタやＦＩＦＯバッファがアクセスされた場合は、外部待ちライン１２６をモニターする必要はない。これは、ＣＰＵ１１０が１クロックサイクル以内にデータを読出すことができるからである。一例として説明すると、アドレスレンジ１１８ａ−１がＣＰＵ１１０によりアクセスされる。ここで、アドレスレンジ１１８ａ−１はレジスタのアドレスレンジ１１８ａと関連付けられている。レジスタへのアクセスは、他のデバイスへのアクセスに比べて比較的速いので、データは１クロック以内にＣＰＵに供給される。とういわけで、データが直ちに使用できるのだから、ＣＰＵ１１０が待ちライン１２６をモニターする必要がない。
【００２０】
このように、チップセレクト信号モジュール１３４の各チップセレクト信号は、ＣＰＵのアドレス空間１２０の一つのアドレスレンジと関連付けられている。そのために、ＣＰＵがその待ちラインを見ているかどうかは、ＣＰＵ１１０がアクセスしているアドレスレンジによって決まる。当業者であれば、チップセレクト信号を介して現在アクセスされているアドレスレンジにより、バス１１４に供給されるデータを読むまでに何回待ち状態で待たないといけないのかが決まることが分かるであろう。また言うまでもなく、図３で説明した実施形態により、チップセレクト信号１３４はあるメモリ空間に割り当てられ、待ちの手順がその割り当てられたメモリ空間に関連付けられる。従って、低速の外部デバイスにも高速の外部デバイスに対応できる自由度が提供され、バスに供給される有効データをＣＰＵが不必要に待って時間を無駄にすることがなくなる。さらに、図３は本明細書で説明する実施例の一つの実施形態であることは言うまでもない。当業者であれば、そうした機能を実行するように回路機構を設計することにより、本明細書で説明する機能を達成する他の実施形態を活用できることが明らかである。
【００２１】
図４は、本発明の一実施例における、バスサイクルを最適化するように構成されたＣＰＵと関連付けられるアドレスマップの簡単な概略図である。図４は、図３のアドレス空間１２０ａのより詳細な図であることが分かる。アドレスサブセクション１２０ａは、さらにアドレスサブセクション１２０ａ−１、１２０ａ−２、１２０ａ−３に細分される。アドレスサブセクション１２０ａ−１はアドレスレンジ０−１０，０００と関連付けられる。ここで、アドレスサブセクション１２０ａ−１はレジスタアドレスと関連付けられている。よって、次のクロックでデータは使用可能となるので、ＣＰＵは待ちラインを調べる必要はない。さらに、２クロックサイクルまでデータが使用可能にならない場合は、ある特定のアドレスレンジと関連付けてソフトウェア待ち状態をプログラムすることで、２クロックサイクル以上待たなければならない待ちラインをモニターする必要がなくなる。
【００２２】
図４のアドレスサブセクション１２０ａ−２は、メモリアクセスと関連付けられる。メモリアクセスは長くかかりしかも変動する傾向があるので、ＣＰＵによって、メモリアクセスに対応するアドレスと関連付けられたチップセレクト信号が待ちラインに現れるのがモニターされる。例えば、２次元機能を実行する際、その機能が完了するまでメモリからデータの読出しは待たなければならないかもしれない。従って、完了すべき機能によって時間が変わってくるので、バスサイクルを最適化するためには待ちラインをモニターするのが最適である。アドレスサブセクション１２０ａ−３はＦＩＦＯバッファと関連付けられる。当業者であれば、ＦＩＦＯバッファは１クロックサイクル以内にアクセスが完了するレジスタに似ていることは明らかである。レジスタアドレスと同様に、ＦＩＦＯバッファアドレスは待ちラインのモニターを必要とはしない。一例として、バスサイクルを最適化するのにソフトウェア待ち状態が設定される。あるいは、データが１クロックサイクル以内に使用可能になる場合は、ＣＰＵは待ちラインをモニターしたり、ソフトウェア待ち状態を挿入しなくていい。別の例としては、ＣＰＵによってセクション１２０ａにアドレス空間のうちの１メガバイトを割り当てる。当業者であれば、ＣＰＵは、一般的に３２ビットのアドレス線で４ギガバイトのアドレス空間と関連付けられるため、任意の数の外部デバイスと関連付けられたアドレスマップとして使用可能な十分なＣＰＵアドレス空間があることは明らかである。
【００２３】
図５は、本発明の一実施例において、最適化されたバスサイクルでデータを交換するように各構成要素が構成された表示デバイスの簡単な概略図である。デバイス１４０は、ＣＰＵ１１０、ＧＰＵ１１６、表示パネル１４２を有する。ＣＰＵ１１０は、ソフトウェア待ち状態モジュール１２２からなるチップセレクトモジュール１１２、待ち参照ロジックモジュール１２４、チップセレクト信号モジュール１３４、アドレス空間１２０を有する。ＧＰＵ１１６はランダムアクセスメモリ１４８を有する。表示パネル１４２はオンボードストレージブロック１４４を有する。ＣＰＵ１１０はバス１１４を介してＧＰＵ１１６と通信しているのに対し、ＧＰＵ１１６はバス１４６を介してパネル１４２と通信している。オンボードストレージブロック１４４は、一般に、１クロックサイクル以内にデータを供給する能力を有するストレージブロック、つまり、高速アクセスデバイスである。この場合、ＣＰＵ１１０は、ＧＰＵ１１６を通してパネル１４２のオンボードストレージブロック１４４内にあるデータの読取りアクセスを要求することができる。オンボードストレージブロック１４４と関連付けられたアドレス空間１２０内のアドレスレンジは、待ちラインのモニター作業を必要としない待ち選択状態と関連付けられる。一例として、オンボードストレージブロック１４４と関連付けられたデータをアクセスするために、ゼロ又は１回の待ち状態を適用することができる。
【００２４】
図６は、本発明の一実施例において、ＣＰＵ及びそのＣＰＵと通信している外部デバイスとのバスサイクル長を最適化するための方法を説明したフローチャートである。この方法は、オペレーション１５０から始まり、外部デバイスのアドレスマップをＣＰＵのアドレス空間内に生成する。例えば、図４に示したアドレスマップを、ＣＰＵが通信する各外部デバイスについて生成する。一例として、このアドレスマップは１メガバイトのアドレス空間を有する。次にオペレーション１５２に進み、アドレスマップ対して複数のアドレスレンジが定義される。ここで、これらの複数のアドレスレンジは、各々図３及び図４で説明した一つの待ち選択と関連付けられる。例えば、この待ち選択は、先に説明したハードウェア待ち選択やソフトウェア待ち選択でもよい。例えば、ハードウェア待ち選択とは待ちラインをモニターするかどうかの判定である。
【００２５】
図６の方法は次にオペレーション１５４に進み、外部デバイスを選択するチップセレクト信号が生成される。生成されたチップセレクト信号は、オペレーション１５２で定義された複数のアドレスレンジの中の一つと関連付けられる。次にオペレーション１５６に進み、複数のアドレスレンジのうちのどれがそのチップセレクト信号と関連付けられているかを識別する。一例として、複数のアドレスレンジは、待ちラインの待ち選択又はプログラムされた待ち状態選択と対応する外部デバイスの一領域と関連付けられる。
待ちラインの待ち選択は、外部の待ちラインをモニターするのに対し、プログラムされた待ち状態の待ち選択は、待ちラインをモニターしない、ＣＰＵにより適用されるソフト的な待ち状態である。
【００２６】
この方法は次にオペレーション１５８に進み、アドレスレンジと関連付けられた待ち選択を決定する。一例として、アクセスされている外部デバイスの領域のタイプがアドレスレンジにより識別される。領域のタイプがレジスタまたはＦＩＦＯバッファであれば、待ち選択は、ソフトウェア待ちレジスタのプログラムされた値と関連付けられた固定された回数の待ち状態として定義される。当然のことながら、この固定された回数の待ち状態とは、ゼロを含む任意の整数であってよい。もしくは、この待ち選択は、データが１クロックサイクル内に使用可能になることから、待ちラインをモニターしないかもしれない。
【００２７】
引き続き図６において、アドレスレンジと関連付けられた外部デバイスの領域がメモリ領域と識別された場合には、ＣＰＵは外部デバイスによって有効にされる待ちラインをモニターする。別の例では、アドレスレンジと関連付けられた待ち選択の決定には、ＣＰＵが要求したデータを外部デバイスからフェッチするのに要するクロックサイクル数の決定も含まれる。データをフェッチするのに要するクロックサイクル数が１ならば、外部デバイスは、ＣＰＵと外部デバイス間の待ちラインを有効にしない。データをフェッチするためのクロックサイクル数が１よりも大きければ、データがフェッチされるまで外部デバイスにより待ちラインが有効にされる。当然ながら、この例では、デバイスが待ちラインを有効にするのに、知的な方法を用いていることが分かる。この方法は次にオペレーション１６０に進み、オペレーション１５８で決められた待ち選択がＣＰＵと外部デバイス間のバスサイクルに適用される。
【００２８】
要約すれば、本明細書で説明している実施例は、マイクロプロセッサと通信するスピードの異なるデバイスに対して、最短のバスサイクルを提供するための、待ち方法の知的な適用を可能にするものである。外部デバイスに対応するアドレスレンジがＣＰＵのアドレス空間レジスタに保持される。アドレスレンジは、ＣＰＵが外部デバイスのアドレスをアクセスするときに適用される待ち選択状態を示すように構成される。ここで言う外部デバイスとは、ＧＰＵなどの別のプロセッサでも周辺デバイスでよい。一例として、ＣＰＵに提供するデータが外部デバイスで準備できたことを判断するために待ちラインをモニターするか、もしくはＣＰＵがデータバス上のデータを読む前に任意の回数のソフトウェア待ち状態を適用するか、のどちらかを示すようにアドレスレンジは構成される。言うまでもなく、ソフトウェア待ち状態の数はゼロかもしれないし、そのデバイスのアドレスレンジが、データが1クロックサイクル内に読み・書きされるアドレスレジスタに対応している場合は、待ちラインは見られない。
【００２９】
一例として、ＧＰＵなどの外部デバイスは、バスサイクルをさらに最適化するために、アクセスされたアドレスレンジに基づいて待ちラインを有効にする時を判定する能力を有する。この場合、外部デバイスは、レジスタやＦＩＦＯといった高速アクセス領域に対応するアドレスレンジと関連付けられるデータをアクセスするため、待ちラインを駆動することはしない。このように、上に説明した構成によれば、いまアクセスされている外部デバイスの領域に対して、特定の待ち選択を適用できるようになる。この構成は、最もスピードの遅いデバイスを基準にして全てに対応するといったやり方ではなく、待ちラインを必要とする領域、待ちラインを必要としない領域、ソフトウェア待ち状態を必要とする領域それぞれに対応することができる。従って、高速なデバイスに対しては比較的高速にアクセスできる一方、低速なデバイスに対するアクセスについては待ちラインによって対応する。
【００３０】
上記の実施例を念頭に入れて、本発明は、コンピュータシステムに保持されているデータが関わる様々なコンピュータで実現される操作を採用できることを理解すべきである。これらの操作は、物理的数量の物理的操作を必要とする操作である。必ずしもそうとは限らないが、普通、これらの数量は、保持、転送、組合せ、比較や、その他の操作が可能な電気信号又は磁気信号の形をとる。さらに、実行される操作は、生成、識別、判定、又は比較といったような用語で言及されることが多い。
【００３１】
本発明の一部を構成する本明細書で説明している操作はどれでも有益な機械操作である。本発明はこれらの操作を実行するためのデバイス又は装置にも関する。装置は欠かせない目的のために特別に構築してもいいし、或いはコンピュータに保持されているコンピュータプログラムによって選択的に起動又は構成される汎用コンピュータでも構わない。とりわけ、様々な汎用の機械を本明細書の教えに従って書かれたコンピュータプログラムで使用することができるし、或いは欠かせない操作を実行するべくもっと専用化された装置を構築するほうが便利かもしれない。
【産業上の利用可能性】
【００３２】
上述の発明は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベース又はプログラミング可能なコンシューマエレクトロニクス、ミニコンピュータ、メインフレームコンピュータなど、他のコンピュータシステムの構成で実施しても良い。はっきり理解できるように、上記の発明をある程度詳細に説明してきたが、添付されている特許請求の範囲内で、変更及び修正が可能なことは明白である。従って、本願の実施例は説明のためであって制限するためではないと考えられるべきで、また、発明は本明細書で述べた詳細に限定されるものではなく、添付の請求の範囲及びそれと同等の範囲内で変更可能である。
【図面の簡単な説明】
【００３３】
【図１】ＧＰＵと通信している中央処理ユニットの簡約概略図。
【図２Ａ】本発明による、外部デバイスと通信しているマイクロプロセッサの概略図。
【図２Ｂ】本発明による、ソフトウェア状態を適用するか又はハードウェア状態を適用するか判定するためにメモリ空間に割り当てられたチップセレクト信号をイネーブルするように構成されたチップセレクトモジュールの簡約概略図。
【図３】本発明によるＣＰＵのモジュールのより詳細な概略図。
【図４】本発明による、ＣＰＵと関連付けられたアドレスマップの簡約概略図。
【図５】本発明による、表示デバイスの構成要素の簡約概略図。
【図６】本発明による、ＣＰＵと外部デバイス間のバスサイクル長を最適化する方法を説明したフローチャート。
【符号の説明】
【００３４】
１００、１１０    ＣＰＵ
１０２    ＧＰＵ
１０４    デバイス
１０６、１１４、１４６    バス
１１１、１１８、１４８    ＲＡＭ
１１２    チップセレクトモジュール
１１３    待ち状態選択モジュール
１１６    外部デバイス
１１７    ハードウェア／ソフトウェア待ち状態
１１９    外部待ちライン
１２０    アドレス空間
１２０ａ、ｂ、ｃ、ｄ    アドレスレンジ
１２２    ソフトウェアwair状態
１２４    待ち参照ロジック
１２８    待ちロジック
１３４    チップセレクト信号モジュール
１４２    表示パネル
１４４    オンボードストレージブロック
【図１】
2004318877.tif 000003
【図２Ａ】
2004318877.tif 000004
【図２Ｂ】
2004318877.tif 000005
【図３】
2004318877.tif 000006
【図４】
2004318877.tif 000007
【図５】
2004318877.tif 000008
【図６】
2004318877.tif 000009