(57)【要約】データ処理システムでは、処理ロジックを含むプロセッサがデータ処理を実行する。処理ロジックに結合されるアドレス変換器（７０）が、アドレス変換およびその方法を実行する。アドレス変換器（７０）は論理アドレス（８０）を受信し、論理アドレスを、物理アドレス（８２）と１つまたは複数のアドレス属性（８６）との両方に変換する。アドレス変換器に結合されるバイパス回路（７２）は、受信された論理アドレスの変換アドレスとして論理アドレスを選択的に提供する。メモリアドレス変換をスピードアップするため、論理アドレスは、論理アドレスに対応付けられる１つまたは複数のアドレス属性を提供する前に、変換アドレスとして選択的に提供される。
2009527861.tif 000002
【特許請求の範囲】
【請求項１】
データ処理システムであって、
論理アドレスを受信し、前記論理アドレスを物理アドレスに変換して１つまたは複数のアドレス属性を提供するアドレス変換器と、
前記アドレス変換器に接続され、前記論理アドレスを、受信された前記論理アドレスの変換アドレスとして選択的に提供するバイパス回路であって、該選択的提供は、前記論理アドレスに関連する前記１つまたは複数のアドレス属性の提供前に行われる、バイパス回路と、
を備えるデータ処理システム。
【請求項２】
前記アドレス変換器は、前記１つまたは複数のアドレス属性の提供と並行して前記論理アドレスを物理アドレスに変換するが、前記物理アドレスは、前記バイパス回路によって前記変換アドレスとして出力されない、請求項１のデータ処理システム。
【請求項３】
前記バイパス回路は、１つまたは複数のビットを有する制御レジスタを更に備え、前記１つまたは複数のビットは、前記論理アドレスに関連する前記１つまたは複数のアドレス属性の提供前に、受信された前記論理アドレスを前記アドレス変換器によって前記変換アドレスとして提供するか否かを判定する値を有する、請求項１のデータ処理システム。
【請求項４】
前記バイパス回路は、リセット入力を更に備え、リセット信号の受信に応答して、前記アドレス変換器によって提供される前記物理アドレスをバイパスするか否かを制御するための所定値が前記制御レジスタに設定される、請求項３のデータ処理システム。
【請求項５】
前記制御レジスタは、受信された前記論理アドレスが命令の論理アドレスのときに変換物理アドレス値のバイパスを制御する値を有する第１のビットと、受信された前記論理アドレスがデータの論理アドレスのときに変換物理アドレス値のバイパスを制御する値を有する第２のビットとを含む、請求項３のデータ処理システム。
【請求項６】
前記バイパス回路は、リセット入力を更に備え、所定値を有するリセット信号の受信に応答して、前記１つまたは複数のビットの値を判定する、請求項３のデータ処理システム。
【請求項７】
前記バイパス回路は、バイパス制御信号を受信するための制御入力を更に備え、該バイパス制御信号は、受信された前記論理アドレスを前記アドレス変換器によって前記変換アドレスとして提供するか否かを判定する値を有する、請求項１のデータ処理システム。
【請求項８】
前記バイパス制御信号は前記アドレス変換器に供給され、該バイパス制御信号は、前記アドレス変換器が前記論理アドレスに関連する前記１つまたは複数のアドレス属性を提供することを許容しながら、前記アドレス変換器が変換後の論理アドレスを提供することを選択的に無効にする、請求項７のデータ処理システム。
【請求項９】
前記アドレス変換器は、ヒット／ミス信号を提供するための出力を更に備え、該ヒット／ミス信号は、前記論理アドレスが前記変換アドレスとして選択的に提供された後、受信された前記論理アドレスに対応する値が前記アドレス変換器に含まれるか否かを示す、請求項１のデータ処理システム。
【請求項１０】
データ処理システムにおけるアドレス変換方法であって、
論理アドレスを受信すること、
物理アドレスおよび１つまたは複数の属性への前記論理アドレスの変換を開始すること、
利用可能な前記１つまたは複数の属性の生成前に、制御信号に応答して前記論理アドレスを選択変換アドレスとして選択的に提供すること、
を備える、アドレス変換方法。
【請求項１１】
制御レジスタに記憶されるプログラム可能な制御ビットに応答して前記制御信号を生成することを更に備える請求項１０のアドレス変換方法。
【請求項１２】
前記データ処理システムをリセットすること、
前記リセットすることに応答して、前記プログラム可能な制御ビットの値を所定値に設定すること、を更に備える請求項１１のアドレス変換方法。
【請求項１３】
物理アドレスへの前記論理アドレスの変換を無効にするが、前記論理アドレスを用いて前記１つまたは複数の属性を作成することを更に備え、前記無効にすることは前記制御信号に応答して実行される、請求項１０のアドレス変換方法。
【請求項１４】
前記論理アドレスを命令の論理アドレスとして受信すること、
第２の制御信号に応答して変換されたデータ論理アドレスである第２の論理アドレスを受信すること、
を更に備え、前記制御信号および前記第２の制御信号は、アドレスが命令アドレスかデータアドレスかに基づきアドレス変換を個々に制御する、請求項１０のアドレス変換方法。
【請求項１５】
データ処理システムであって、
データ処理を実行する処理ロジックと、
前記処理ロジックに接続され、アドレス変換を実行するアドレス変換回路と、
を備え、前記アドレス変換回路は、
論理アドレスを受信し、前記論理アドレスを物理アドレスおよび１つまたは複数のアドレス属性に変換するアドレス変換器と、
前記論理アドレスを受信するとともに、前記アドレス変換器に接続されて前記物理アドレスを受信するセレクト回路であって、制御入力と、選択アドレスを提供する出力とを有するセレクト回路と、
前記セレクト回路に接続され、前記論理アドレスに関連する前記１つまたは複数のアドレス属性の提供前に、前記論理アドレスを前記選択アドレスとして選択的に提供するために前記セレクト回路の前記制御入力に制御信号を提供し、前記物理アドレスの前記選択アドレスとしての使用をバイパスするバイパス回路と、
を含む、データ処理システム。
【請求項１６】
前記バイパス回路は、前記論理アドレスが命令アドレスのときに前記制御信号を生成するために使用される第１の制御ビットと、前記論理アドレスがデータアドレスのときに前記制御信号を生成するために使用される第２の制御ビットとを有する制御レジスタを更に備える、請求項１５のデータ処理システム。
【請求項１７】
前記制御信号は前記アドレス変換器にも供給され、前記制御信号は、前記アドレス変換器が前記論理アドレスを変換して前記１つまたは複数のアドレス属性を提供する間、前記物理アドレスの提供を選択的に無効にする、請求項１５のデータ処理システム。
【請求項１８】
前記バイパス回路は、リセット信号を受信するためのリセット入力を更に備え、前記リセット信号は、前記物理アドレスの前記選択アドレスとしての使用を選択的にバイパスするための前記制御信号の値を決定する、請求項１５のデータ処理システム。
【請求項１９】
前記バイパス回路は、前記制御信号の生成に使用される入力信号を受信するための制御信号入力を更に備える、請求項１５のデータ処理システム。
【請求項２０】
前記アドレス変換器は、受信された前記論理アドレスが前記アドレス変換器内に記憶されたアドレス値として存在するか否かを判定し、その判定に応答してインジケータ出力にヒット／ミス信号を生成し、前記データ処理システムは、ミス表示に応答してミス処理を実行する、請求項１５のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概してデータプロセッサ、特に、アドレス変換バイパス機能を有するデータプロセッサに関する。
【背景技術】
【０００２】
今日の多くのデータ処理システムでは、アドレス変換は中央処理装置などのプロセッサによって生成される論理アドレスを、メモリによる使用のため物理アドレスに変換するために実行される。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、アドレス変換が必要な場合、通常、物理アドレスはクロックサイクル内の遅い段階でしか有効とならないため、変換アドレスを受信するメモリのセットアップタイムが減少してしまう。したがって、多くの場合、アドレス変換が必要な場合には、メモリに十分なセットアップタイムを提供するために、クロックを低周波数で動作させる必要がある。このため、データ処理システム全体の性能が低下する可能性がある。
【課題を解決するための手段】
【０００４】
上述したように、データ処理システム内でアドレス変換が必要となると、変換アドレスを要するメモリのセットアップタイムが減少し、より低いクロック周波数が必要となる。本発明の一実施形態では、バイパス制御論理に基づいて、アドレス変換バイパスを実現するバイパス回路が利用される。アドレス変換がバイパスされると、アドレス変換が完了する前に、論理アドレスが変換アドレスとして直接提供される。一実施形態では、アドレス変換は、論理アドレスを用いてテーブル参照を行い、変換アドレス（すなわち物理アドレス）および対応する属性を取得することを含む。したがって、アドレス変換がバイパスされると、論理アドレスに対応する属性の提供前に（テーブル参照が完了するまでは対応する属性が利用可能でないため）、論理アドレスが変換アドレスとして（参照テーブルからの変換アドレスとしてではなく）直接提供される。アドレス変換によって生成された変換アドレスは通常は対応する属性とともにクロックサイクルの後半で有効となるが、論理アドレスを変換アドレスとして直接提供すると、変換アドレスはクロックサイクルの前半で有効となる。論理アドレスを直接変換アドレスとして早期の段階で提供することにより、この変換アドレスを受信するメモリは、より長いセットアップタイムを確保することができ、処理をより早く開始することができる。
【発明を実施するための最良の形態】
【０００５】
本発明を、図面を参照して説明する。図中、同じ参照符号は類似の構成要素を示す。本発明は、添付の図面によって限定されず、図は例示である。当業者であれば、図中の構成要素は簡潔化かつ明瞭化のために例示されており、必ずしも原寸に比例して描かれていないことを理解し得る。たとえば、図面内の構成要素の一部の寸法は、本発明の実施形態に関する理解を深めるため、他の構成要素に対して誇張されている。
【０００６】
本明細書で説明されるように、「バス」という用語は、データ、アドレス、制御、または状態などの１つまたは複数の各種情報を転送するのに使用可能な複数の信号または導体を指すために使用される。本明細書に記載される導体は、単独の導体、複数の導体、単方向導体、または双方向導体として図示または記載される。ただし、異なる実施形態では、導体の実装を変更することができる。たとえば、双方方向導体ではなく別々の単方向導体を使用することができ、逆も同様である。さらに、複数の導体は、複数の信号を連続的に、あるいは時間的に多重化された方法で送信する単独の導体と交換することができる。同様に、複数の信号を転送する単独の導体を、これらの信号のサブセットを転送する様々な異なる導体に分離することができる。したがって、信号を転送するのに多くの選択肢が存在する。
【０００７】
用語「アサート」または「セット」および「ネゲート」(あるいは「デアサート」または「クリア」）という用語はそれぞれ、信号、状態ビット、または類似の装置を論理的に真または論理的に偽の状態にすることに言及する際に使用される。論理的に真の状態が論理レベル１である場合、論理的に偽の状態は論理レベル０である。論理的に真の状態が論理レベル０である場合、論理的に偽の状態は論理レベル１である。したがって、本明細書に記載される各信号は、正または負の論理として指定することができ、負の論理は信号名の上のバーまたは信号名の後のアスタリスク（＊）によって示すことができる。負の論理信号の場合、論理的に真の状態は論理レベル０に対応し、信号はローでアクティブである。正の論理信号の場合、論理的に真の状態は論理レベル１に対応し、信号はハイでアクティブである。本明細書に記載されるいずれの信号も、負または正の論理信号のいずれかとして指定することができる。したがって、別の実施形態では、正の論理信号として記載される信号は負の論理信号として実装することができ、負の論理信号として記載される信号は正の論理信号として実装することができる。
【０００８】
図１は、本発明の一実施形態によるデータ処理システム１０を示す。システム１０は、処理回路１２、システムメモリ１４、その他のモジュール１６、およびシステムバス１８を含む。処理回路１２、システムメモリ１４、およびその他のモジュール１６は、システムバス１８に双方向に接続される。システムメモリ１４は、たとえば、読取専用メモリ（ＲＯＭ）、スタティックＲＡＭまたはダイナミックＲＡＭなどのランダムアクセスメモリ（ＲＡＭ）、不揮発性メモリ（たとえば、フラッシュ）など、任意の種類のメモリであってもよい。なお、システム１０は、その他のモジュールを含まなくてもよい（その場合、他のモジュール１６は存在していない）。あるいは、システム１０は、任意の数のその他のモジュールを含むことができ、これらのモジュールは、たとえば、他の処理回路、周辺機器、メモリ、Ｉ／Ｏ装置などである。
【０００９】
システム１０の処理回路１２は、プロセッサ２０、アドレス変換回路２２、データバスインタフェースユニット（ＢＩＵ）２４、および命令バスインタフェースユニット（ＢＩＵ）２６を含む。データＢＩＵ２４は、データアドレス４８を介してシステムバス１８にデータアドレスを提供し、データ５０を介してシステムバス１８とデータを送受信し、制御５２を介してシステムバス１８と制御信号を送受信する。命令ＢＩＵ２６は、命令アドレス５６を介してシステムバス１８に命令アドレスを提供し、命令５８を介してシステムバス１８と命令を送受信し、制御５４を介してシステムバス１８と制御信号を送受信する。
【００１０】
プロセッサ２０は、内部データバス３６、制御信号３８、およびデータ属性３５を介してデータＢＩＵ２４に接続される。プロセッサ２０は、データ論理アドレス２８、命令論理アドレス３０、制御信号３２、データ属性３５、および命令属性３４を介してアドレス変換回路２２に接続される。プロセッサ２０は、内部命令バス４０、制御信号４１、および命令属性３４を介して命令ＢＩＵ２６に接続される。アドレス変換回路２２は、命令属性３４、制御信号４６、および命令物理アドレス４４を介して命令ＢＩＵ２６に接続される。処理回路１２は、外部信号データバイパス制御６０、命令バイパス制御６２、データリセット制御６４、命令リセット制御６６、およびリセット６８も受信する。これらの信号は、システム１０内のその他のモジュール１６から、あるいはシステム１０の外部ソースから提供される。さらに、これらの外部信号はアドレス変換回路２２に提供され、リセット６８はプロセッサ２０にも提供される。一実施形態では、これらの信号の１つまたは２つ以上を、プロセッサ２０によってアドレス変換回路２２に提供することもできる。なお、これらの信号はいずれも任意であるので、システム１０内に存在しなくてもよい。さらに、処理回路１２は、図１に示されない他の外部信号を受信することもできる。
【００１１】
プロセッサ２０、データＢＩＵ２４、および命令ＢＩＵ２６はそれぞれ当該技術において既知なように動作するため、ここでは詳細に説明しない。プロセッサ２０は、たとえば、マイクロコントローラ、デジタル信号プロセッサ、ダイレクトメモリアクセス装置、中央処理装置などの任意の種類のプロセッサとすることができ、データ処理を実行することに加えて他の所望の機能を実行する任意の種類の処理ロジックを含むことができる。したがって、アドレス変換回路２２は、プロセッサ２０の外部で処理ロジックに接続されていればよい。別の実施形態では、アドレス変換回路２２は、プロセッサ２０内に配置する（および、処理ロジックに接続する）こともできる。さらに、別の実施形態では、データＢＩＵ２４および命令ＢＩＵ２６は、データアドレスおよび命令アドレス、データおよび命令、ならびに制御とシステムバス１８を介して連通する単独のＢＩＵとして実装することもできる。システムバス１８は単独バスとして示されているが、別々のアドレスバス、データバス、および制御バスを有するように実装することもできる。さらに、処理回路１２は、図示されるボックスおよび信号に加えて、他の回路を含むこともできる。アドレス変換回路２２の動作を、図２〜図６を参照してさらに詳細に説明する。
【００１２】
図２は、本発明の一実施形態によるアドレス変換回路２２の少なくとも一部を示す。アドレス変換回路２２は、変換バイパスロジック７２、マルチプレクサ（ＭＵＸ）７６、およびアドレス変換器７０を含む。アドレス変換器７０は、制御回路９４、アドレス変換部８８、および属性部９０を含む。アドレス変換器７０は論理アドレス８０を受信し、ヒット／ミスインジケータ９２、変換論理アドレス８２（物理アドレスとも称される）、およびアドレス属性８６を提供する。変換バイパスロジック７２はバイパス制御レジスタ７４を含む。変換バイパスロジック７２は、データバイパス制御６０、命令バイパス制御６２、データリセット制御６４、命令リセット制御６６、およびリセット６８を受信する（上述したように、これらの信号のいずれも任意であるので、変換バイパスロジック７２に提供されない場合もある）。変換バイパスロジック７２はセレクト７８をＭＵＸ７６の制御入力に提供するとともに、同セレクト７８をアドレス変換器７０に任意で提供する。ＭＵＸ７６は第１の入力で論理アドレス８０を受信し、第２の入力で変換論理アドレス８２を受信し、これらのうちの一方を、セレクト７８（バイパスイネーブル制御信号とも称される）に基づき選択アドレス８４として提供する。すなわち、アドレス変換器７０から出力された変換論理アドレス８２は物理アドレスとも称されるので、ＭＵＸ７６は物理アドレスか論理アドレス８０のいずれかを選択アドレス８４として提供する。なお、ＭＵＸ７６は、バイパスがイネーブルとされるときに論理アドレス８０を選択アドレス８４として提供可能な任意の種類の回路と置き換えることができる。
【００１３】
一実施形態では、アドレス変換器７０はルックアップテーブルを含み、制御回路９４は、入力した論理アドレス８０とルックアップテーブル内のエントリとを比較して、一致するものが見つかるか否かを判定する。一致するものがルックアップテーブルで見つかると、ヒット／ミスインジケータ９２がアサートされ、対応する変換論理アドレス８２およびアドレス属性８６がルックアップテーブルから出力される。たとえば、一実施形態では、内容検索型メモリ（ＣＡＭ）部が論理アドレスを記憶するために使用される。ＣＡＭの各エントリは、（アドレス変換部８８内の）対応する物理アドレスエントリと（属性部９０内の）対応するアドレス属性エントリとを有する。したがって、一実施形態では、変換アドレスおよび対応する属性は、単独のルックアップテーブルとして実装される。もしくは、変換論理アドレス８２および対応するアドレス属性８６を提供するために、別々のルックアップテーブルを実装することもできる。本実施形態では、制御回路９４は論理アドレス８０を使用して、各ルックアップテーブルでの探索を実行する。別の実施形態では、ルックアップテーブルは、アドレス変換情報を保存する、直接マップ型アレイあるいは連想型設定アレイとして実装することもできる。さらに別の実施形態では、ルックアップテーブル以外の他の回路を、変換論理アドレス８２およびアドレス属性８６を提供するために使用することもできる。たとえば、変換論理アドレス８２は、論理アドレス８０からアルゴリズムで生成することもできる。
【００１４】
図２に示されるアドレス変換回路２２の実施形態は、データアドレス変換または命令アドレス変換のいずれかに対して使用される。たとえば、論理アドレス８０は、データ論理アドレス２８または命令論理アドレス３０に対応し、選択アドレス８４は、図１のデータＢＩＵ２４に提供されるデータ物理アドレス４２、または図１の命令ＢＩＵ２６に提供される命令物理アドレス４４に対応し、アドレス属性８６は、（プロセッサ２０またはデータＢＩＵ２４、あるいはその両方に提供される）データ属性３５、または（プロセッサ２０または命令ＢＩＵ２６、あるいはその両方に提供される）命令属性３４に対応する。したがって、図２の回路の一部または全部は、データアドレスおよび命令アドレスの両方を変換するように複製される。
【００１５】
たとえば、一実施形態では、アドレス変換回路２２は別々のデータアドレス変換回路および命令アドレス変換回路を含むことができ、その各々が図２に概略的に示される回路の一部または全部を含む。たとえば、アドレス変換回路２２は、データアドレスおよび命令アドレスに対する別々のアドレス変換器（その各々がアドレス変換器７０に類似する）を含むことができ、この場合、データ論理アドレス２８は一方のアドレス変換器に入力され、命令論理アドレス３０は他方のアドレス変換器に入力される。データ論理アドレス２８を受信するアドレス変換器はデータ属性３５も提供し、命令論理アドレス３０を受信するアドレス変換器は命令属性３４も提供する。アドレス変換回路２２は、別のＭＵＸまたは別の選択回路も含むことができ、ＭＵＸ７６と同様に、その各々は、データ物理アドレスまたはデータ論理アドレスを選択データアドレスとしてデータＢＩＵ２４に出力し、命令物理アドレスまたは命令論理アドレスを選択命令アドレスとして命令ＢＩＵ２６に出力する別々のアドレス変換器に接続される。さらに、本実施形態では、各アドレス変換器は、ヒット／ミスインジケータ９２（ヒット／ミスインジケータは、１つまたは複数の制御信号３２としてプロセッサ２０に提供される）と同様の独自のヒット／ミスインジケータを提供する。一実施形態では、変換バイパスロジック７２は、図２に示されるように、データ変換回路と命令変換回路の両方によって共有され、したがって、変換バイパスロジックは命令制御信号およびデータ制御信号の両方を受信し、バイパス制御レジスタ７４はデータバイパス制御フィールドと命令バイパス制御フィールドの両方を含む。ただし、たとえ変換バイパスロジック７２が共有されていても、アドレスが命令アドレスであるかデータアドレスであるかに基づいてアドレス変換を個々に制御するために、変換バイパスロジック７２は、セレクト７８と同様、各ＭＵＸに対して別々のセレクト信号すなわちバイパス制御信号を出力する。しかし、別の実施形態では、変換バイパスロジックが命令またはデータに特有であるように、図２の回路を命令アドレス変換回路およびデータアドレス変換回路のそれぞれに対して完全に複製することもできる。本実施形態では、変換バイパスロジックは、データ制御のみまたは命令制御のみを受信し、バイパス制御レジスタはデータバイパス制御フィールドまたは命令バイパス制御フィールドのみを含む。
【００１６】
上述したように、図２の回路は、命令またはデータのいずれかに適用することができる。したがって、図２の動作を記載する以下の説明では、説明はデータアドレス変換および命令アドレス変換に同様に適用可能である。図２の動作に関しては、変換バイパスロジック７２は、変換論理アドレス８２（アドレス変換器７０からの出力）または論理アドレス８０のうちの一方を選択して選択アドレス８４として提供するべく、セレクト７８をＭＵＸ７６に提供する。選択アドレス８４は、変換アドレスとも称することができるので、変換アドレスは、アドレス変換器７０から出力される変換論理アドレス８２、または変換アドレスとして直接提供される論理アドレス８０のいずれかに対応する。
【００１７】
さらに図２を参照すると、変換バイパスロジック７２が、バイパス制御レジスタ７４内の値に基づきアドレス変換をバイパスさせる場合、論理アドレス８０がＭＵＸ７６により選択されて選択アドレス８４として提供されるようにセレクト７８が提供される。したがって、バイパスが実行される場合、論理アドレス８０が選択アドレス８４として直接提供される。すなわち、論理アドレス８０は、変換論理アドレス８２ではなく変換アドレスとして直接提供される。ただし、図示される実施形態では、たとえ論理アドレス８０が選択アドレス８４として直接提供されても、論理アドレス８０は依然として変換論理アドレス８２およびアドレス属性８６を提供するアドレス変換器７０にも提供される。なお、バイパスが実行されるとき、論理アドレス８０は変換論理アドレス８２よりも速くＭＵＸ７６を通じて選択アドレス８４に伝播され、アドレス属性８６はアドレス変換器７０によって提供されるため、変換論理アドレス８２およびアドレス属性８６は選択アドレス８４よりも後に提供される。たとえば、ルックアップテーブルが変換論理アドレス８２およびアドレス属性８６を提供するのに使用される実施形態では、探索自体が遅延を引き起こす。ただし、ＭＵＸ７６は、選択アドレス８４として提供すべく論理アドレス８０を選択するように設定されるため、変換論理アドレス８２は無視される。ただし、アドレス変換は依然として行われ、属性８６はアドレス変換の完了時に提供される。
【００１８】
一実施形態では、論理アドレス８０および変換論理アドレス８２のいずれが選択アドレス８４として選択され提供されるかに関する変換バイパスロジック７２の判定にかかわらず、アドレス変換器７０は依然として論理アドレス８０のアドレス変換を実行する。アドレス変換器７０の動作の一環として、探索は対応するアドレス変換を発見できずに、結果的に「ミス」イベントを生じることがある。アドレス変換器７０によって実行される変換処理の成功または失敗は、ヒット／ミスインジケータ９２を介してプロセッサ２０に信号で送られる。プロセッサ２０はヒット／ミスインジケータ９２を利用して、ヒット／ミスインジケータ９２を介して信号で送られる「ミス」表示に応答して、除外処理または他の行為を実行する。この場合も、本実施形態では、アドレス変換器７０によって実行されるアドレス変換およびヒット／ミスの信号送信は、変換バイパスロジック７２の動作とは関係なく発生する。
【００１９】
変換バイパスロジック７２は、バイパス制御レジスタ７４内に記憶された値と、存在する場合は命令バイパス制御６２およびデータバイパス制御６０の値とに基づき、セレクト７８の値を判定する。図３は、命令バイパスフィールド９６およびデータバイパスフィールド９８を有するバイパス制御レジスタ７４の一実施形態を示す。なお、バイパス制御レジスタ７４は、いくつかの実施形態では、１つまたは複数のその他の制御フィールド９９を含むこともできる。図４は、各バイパスフィールドに対する記述を提供するテーブルを示す。一実施形態では、各バイパスフィールドは１ビットフィールドである。たとえば、命令バイパスフィールド９６は論理レベル０または論理レベル１であってもよく、命令アドレス変換の場合に適用される。論理レベル０は、アドレス変換回路２２が通常、命令論理アドレスを命令変換論理アドレス（すなわち命令物理アドレス）に変換することを示す。すなわち、この場合、変換バイパスロジック７２は、変換論理アドレス８２が選択アドレス８４として出力されるようにセレクト７８を設定する。しかし、論理レベル１は、アドレス変換バイパスを生じさせて、アドレス変換回路２２が変換アドレスとして命令論理アドレスを直接バイパスすることを示す。すなわち、この場合、変換バイパスロジック７２は、論理アドレス８０が選択アドレス８４として直接出力されるようにセレクト７８を生成する。さらに、論理レベル１に設定されるとき、アドレス変換器７０によって出力される変換論理アドレス８２（すなわち物理アドレス）は無視され、実質上、論理アドレス８０の１対１のマッピングが使用される。ただし、アドレス変換に関してルックアップテーブルを用いる一実施形態では、対応するアドレス属性８６を提供するので、アドレス変換器による探索は依然としてアドレス変換器７０によって行われる。さらに、本実施形態では、アドレス変換器による探索が依然として行われることから、アドレス変換器によるミス生成も依然として行われる。
【００２０】
別の実施形態では、セレクト７８はアドレス変換器７０にも提供される。本実施形態では、命令バイパス９６が論理レベル１であるとき、制御回路９４はセレクト７８を用いて、属性８６のみが提供され変換論理アドレス８２が全く提供されないようにアドレス変換部８８を無効にする。すなわち、この別の実施形態では、アドレス変換部８８が無効にされるが、１つまたは複数のアドレス属性を依然として生成または提供することができる。
【００２１】
なお、命令バイパス９６に関する上記の説明は、データバイパス９８にも同様に適用される。たとえば、データバイパスフィールド９８は論理レベル０または論理レベル１であって、データアドレス変換の場合に適用することができる。すなわち論理レベル０に設定されるとき、アドレス変換回路２２は通常、データ論理アドレスをデータ変換論理アドレス（すなわちデータ物理アドレス）に変換する。すなわち、変換論理アドレス８２は選択アドレス８４として提供される。だが、論理レベル１に設定されるとき、アドレス変換バイパスが発生し、アドレス変換回路２２がデータ論理アドレスを変換アドレスとして直接バイパスする。すなわち、この場合、変換バイパスロジック７２は、論理アドレス８０が選択アドレス８４として直接出力されるようにセレクト７８を生成する。さらに、論理レベル１に設定されるとき、アドレス変換器７０によって出力される変換論理アドレス８２（すなわち物理アドレス）は無視され、実質上、論理アドレス８０の１対１のマッピングが使用される。ただし、アドレス変換に関してルックアップテーブルを用いる一実施形態では、対応するアドレス属性８６を提供するので、アドレス変換器による探索が依然としてアドレス変換器７０によって行われる。さらに、本実施形態では、アドレス変換器による探索が依然として行われることから、アドレス変換器によるミス生成も依然として行われる。
【００２２】
命令アドレス変換またはデータアドレス変換のいずれかに適用可能な、図５のフロー１００を参照して、図２の動作をさらに詳細に説明する。このフロー１００は、論理アドレスがエントリに対して比較される単独のルックアップテーブルとしてアドレス変換器７０が実装され、ヒットが発生する場合に、対応する変換論理アドレス（すなわち物理アドレス）および対応する属性が提供される実施形態を示す。
【００２３】
フロー１００は、開始１０２で始まり、ブロック１０４に流れ、そこで論理アドレス８０などの論理アドレスが受信される(この場合、論理アドレス８０がデータ論理アドレスまたは命令論理アドレスのいずれかを指す）。たとえば、この論理アドレスは、（データ論理アドレス２８または命令論理アドレス３０として）プロセッサ２０から受信される。次に、フローはブロック１０６に進み、そこで論理アドレスの探索が開始され、バイパス判定が始動される。したがって、制御回路９４は、論理アドレス８０とアドレス変換器７０のルックアップテーブル内のエントリとの比較を開始し、変換バイパスロジック７２は、セレクト７８の値の判定を開始する（いくつかの実施形態では、変換バイパスロジック７２は、変換探索のための論理アドレス受信前に、セレクト７８の判定値を有することができる）。
【００２４】
フローは判定ブロック１０８に進み、そこでバイパスを行うべきか否かが判定される。たとえば、変換バイパスロジックは、データ論理アドレスまたは命令論理アドレスのいずれが論理アドレスとして受信されるかに応じて、データバイパスフィールド９８または命令バイパスフィールド９６の値を使用し、バイパスを行うべきか否かを判定し、それに応じてセレクト７８などのバイパス制御信号を生成する。バイパスを行うべきでない場合、フローはブロック１１０に進み、そこでアドレス探索が完了する。フローは判定ブロック１１２に進み、そこでヒットが生じたか否かが判定される。すなわち、論理アドレス８０がアドレス変換器７０のルックアップテーブルのエントリに一致することが発見される場合、ヒットが生じ、そうでなければミスが生じる。したがって、ヒットが発生しない場合（ミスを示す）、フローはブロック１１４に進み、そこでミス処理が実行される。たとえば、一実施形態では、ヒット／ミスインジケータ９２がミスを示すように設定される（たとえば、ヒット／ミスインジケータ９２を論理レベル０に設定することに対応させる）。その後、インジケータ９２を（たとえば、制御信号３２を介して）プロセッサ２０に提供し、プロセッサ２０はミス処理を実行する。受信された論理アドレスに関するミス処理については、当該技術において既知なように実行されるので、ここではさらに詳細に説明しない。
【００２５】
判定ブロック１１２を参照すると、ヒットが生じる、すなわち、論理アドレス８０がアドレス変換器７０のルックアップテーブル内のエントリと一致することが発見される場合、フローはブロック１１８に進み、変換論理アドレス（すなわち物理アドレス）が選択アドレスとして提供され、論理アドレスに対応する属性が選択アドレスとともに提供される。すなわち、たとえば、探索が完了して、変換論理アドレス８２が選択アドレス８４として提供される（変換バイパスロジック７２は、バイパスを行うべきでないと判定したため、変換バイパスロジック７２はセレクト７８をセレクト変換論理アドレス８２に設定する）。さらに、変換論理アドレス８２が選択アドレス８４として提供されるのとほぼ同時に、アドレス属性８６も提供される。したがって、バイパスが実行されない場合、アドレス探索の結果として両者が提供されるため、アドレス属性は変換論理アドレスとほぼ同時に提供される。その後、フロー１００は終了１１６で終了する。
【００２６】
判定ブロック１０８を参照すると、変換バイパスロジック７２が、バイパスを行うべきだと判定する場合、フローは判定ブロック１０８からブロック１２０に進み、そこで論理アドレスが選択アドレスとして直接出力される。すなわち、変換バイパスロジック７２は、論理アドレス８０が選択アドレス８４として出力されるようにセレクト７８を設定する。その後、フローはブロック１２２に進み、そこで探索が完了する。したがって、選択アドレス８４はアドレス探索の完了前に提供される。すなわち、論理アドレス８０は、アドレス探索が完了するのを待つのではなく、変換論理アドレス（選択アドレス８４として）として直接提供される。この場合、探索の結果として提供される実際の変換論理アドレス８２は無視される。ただし、探索は依然として実行されるため、たとえ変換論理アドレス８２が無視されても、ヒットまたはミスは依然として判定される。
【００２７】
したがって、フローは、ヒットまたはミスが発生したか否かが判定される判定ブロック１２６に進む。ヒットが発生していなければ（ミスを示す）、フローは、ミス処理が実行されるブロック１２４に進む。たとえば、一実施形態では、ヒット／ミスインジケータ９２が、ミスを表示するように設定される（たとえば、ヒット／ミスインジケータ９２を論理レベル０に設定することに対応させる）。その後、インジケータ９２は、（たとえば、制御信号３２を介して）ミス処理を実行可能なプロセッサ２０に提供される。当該技術において既知なように、任意のミス処理を実行することができるので、ここではミス処理について詳細に説明しない。
【００２８】
ただし、判定ブロック１２６で、ヒットが実際に発生する場合、フローはブロック１２８に進み、論理アドレスに対応するアドレス属性が提供される。すなわち、探索の完了の結果として提供されるアドレス属性８６は、論理アドレス８０が変換論理アドレスとして（すなわち選択アドレス８４として）直接提供された後のいずれかの時点で提供される。さらに、ヒット／ミスインジケータも、論理アドレス８０が選択アドレス８４として直接提供された後のいずれかの時点で提供される。一実施形態では、フロー１００のブロック１２０内の論理アドレスおよびブロック１２８内の対応する属性は、別々の時点だが、同じクロックサイクル内で提供される（論理アドレスは対応する属性の提供前に、変換論理アドレスとして直接提供される）。もしくは、対応する属性を次のクロックサイクル内で提供することができる。その後、フローは終了１１６で終了する。
【００２９】
なお、対応するアドレス属性は任意数の任意の種類の属性、許可、またはその組み合わせを有する。たとえば、対応する属性は、保護された、保存可能な、エンディアン、命令設定選択、メモリコヒーレンス必須の、共有される読取／書込／実行許可などを含む。さらに、１つまたは複数のこれらの属性は、たとえば、制御信号３２を介してプロセッサ２０に提供される。さらに、１つまたは複数のこれらの属性は、必要に応じて、データＢＩＵ２４および命令ＢＩＵ２６のそれぞれに提供される。一実施形態では、１つまたは複数の属性は、データバスインタフェース２４の制御５２を介して、または命令バスインタフェース２６の制御５４を介してシステムバス１８に供給されるか、あるいは制御５４または制御５２によってシステムバス１８に供給されるその他の制御信号の値を判定するのに使用される。加えて、１つまたは複数の属性は、処理回路１２またはデータ処理システム１０内の他の論理に供給される。
【００３０】
フロー１００は、アドレス探索を実行するが、バイパスを用いる場合にアドレス探索から生じる変換論理アドレスを無視することに関して記載されているが、別の実施形態では、アドレス変換器７０から出力される変換論理アドレスが提供されないように、アドレス変換を無効にしてもよい。ただし、この例でも、アドレス属性８６を依然として提供することができる。この例ではアドレス変換を無効にすることによって、電力消費が低減されるか、あるいは、より早くアドレス探索処理からアドレス属性８６が提供される。
【００３１】
図６は、システムクロックと、バイパスを用いない選択アドレスと、バイパスを用いた選択アドレスと、属性（仮に存在する場合）と、のタイミング例を示すタイミング図である。バイパスが使用されず、変換論理アドレス８２が選択アドレス８４として提供されるとき、現行クロックサイクルの開始から測定される有効アドレス１３２までの時間はかなり長く、短いセットアップタイム１３４しか残されない。セットアップタイム１３４は、選択アドレスを受信するメモリが、受信した選択アドレスを適切に使用するために、次のクロックサイクルに備えるのに利用可能な時間である。しかしながら、バイパスが使用され、論理アドレス８０が選択アドレス８４として直接提供されるとき、現行クロックサイクルの開始から測定される有効アドレス１３６までの時間は、有効アドレス１３２までの時間と比較すると短い。したがって、セットアップタイム１３８は比較的長いため、選択アドレスを受信するメモリが次のクロックサイクルに備えるための時間が長くなる。したがって、選択アドレスがバイパスを使用しない場合とバイパスを使用する場合とで有効となるのに必要な時間の差１３０が、より長いセットアップタイムを可能にする。さらに、場合によっては、バイパスが使用されないとき、セットアップタイム１３４は特定メモリには十分でないかもしれないので、クロック期間を延ばすことによって、システムクロックをより低い周波数で動作させる必要がある。このため、性能が低下する。したがって、バイパス機能は、システムクロックを低周波数で動作させる必要性を回避することができる。さらに、属性が提供される場合、一実施形態では、アドレス変換（たとえば、探索）を完了させて属性を提供しなければならないため、バイパスなしで選択アドレスが有効となると同時に属性は有効になる。しかしながら、多くの場合、属性は処理回路１２内だけで使用されて、選択アドレスを受信するメモリに提供されない。したがって、選択アドレスを受信するメモリの観点からは、アドレス属性のタイミングは、選択アドレス自体のタイミングほど重要ではない。したがって、バイパスを用いることによって、選択アドレスは、属性よりもクロックサイクルにおいて早く有効となることによって、性能を向上させることができる。
【００３２】
フロー１００を参照して上述したように、変換バイパスロジック７２はバイパスを許可するか否かを判定するために、バイパス制御レジスタ７４内の値を使用する。一実施形態では、バイパス制御レジスタ７４は、複数のプログラム可能ビットを記憶するレジスタとして実装される。もしくは、バイパス制御レジスタ７４内に記憶される情報は、ある種の記憶回路に記憶させ、処理回路１２またはシステム１０内のどこかに配置させることもできる。一実施形態では、バイパス制御レジスタ７４は、リセット時に所定値（たとえば、デフォルト値）に設定されるか、あるいは、変換バイパスロジック７２またはプロセッサ２０によってプログラムされる。一実施形態では、（リセット６８によって提供される）リセット時、変換バイパスロジック７２は、データバイパスフィールド９８および命令バイパスフィールド９９にそれぞれ記憶する値を決定するために、データリセット制御６４および命令リセット制御６６をポーリングする。たとえば、一実施形態では、データリセット制御６４および命令リセット制御６６の値は、データバイパスフィールド９８および命令バイパスフィールド９９にそれぞれ記憶される。なお、リセット６８は、システム１０外部の入力を介して提供することもできるし、あるいはシステム１０内から提供することもできる。リセット６８は、システム１０の全部または一部をリセットするために使用される。たとえば、リセット６８は、処理回路１２の全部または一部をリセットするために使用される。
【００３３】
さらに別の実施形態では、バイパス制御は、データバイパス制御６０および命令バイパス制御６２の使用を通じて動的に判定することもできる。たとえば、論理アドレスの受信後、バイパスするか否かを判定する際に、変換バイパスロジック７２はまず、データバイパス制御６０および命令バイパス制御６２をポーリングする。一実施形態では、データバイパス制御６０および命令バイパス制御６２の値は、バイパス制御レジスタ７４内のデータバイパスフィールド９８および命令バイパスフィールド９９によって示される判定を無効にするのに使用される。たとえば、データバイパス制御６０または命令バイパス制御６２に関する論理レベル１は、バイパス制御レジスタ７４の値にかかわらず、バイパスを実行するように示される。もしくは、論理レベル１は、バイパス制御レジスタ７４の値がバイパスを示すように更新されるべきであることを示す。さらに別の実施形態では、バイパス制御レジスタ７４は全く存在しなくてもよく、変換バイパスロジック７２は常にバイパス制御６０，６２を使用して、セレクト７８などのバイパス制御信号を生成する。バイパス制御信号６０，６２は、システム１０の外部ソースからピンを介して提供することもできるし、あるいは、プロセッサ２０またはシステム１０内の他の回路によって提供することもできる。
【００３４】
なお、上記実施形態は、データおよび命令アドレスに対して別々のバイパス制御および変換回路を有することに関して説明されているが、別の実施形態では、制御はデータアドレスおよび命令アドレスの両方に対して同一であってもよく、あるいは、バイパス制御機能は命令アドレスまたはデータアドレスのいずれか一方のみに対して実行されてもよい。
【００３５】
以上より、アドレス変換バイパスが可能な処理システムが提供されることが認識される。本発明を実行する装置は大半が当業者にとって既知な電子部品と回路から構成されているため、回路の細部は、本発明の基本概念の理解と認識のために、本発明の教示を不明瞭にする、あるいは混乱させることのないように、上述したように必要とみなされる程度を超えて説明しない。
【００３６】
上記実施形態のいくつかは、適宜、様々な異なる情報処理システムを用いて実行することができる。たとえば、図１とその説明は例示としての情報処理アーキテクチャについて記載しているが、この例示としてのアーキテクチャは、単に本発明の各種側面を説明するのに有益な参照を提供するために提示されている。当然ながら、アーキテクチャの記載は説明のために簡略化されており、本発明に使用可能な様々な種類の適切なアーキテクチャのうちの１つにすぎない。当業者であれば、論理ブロック間の境界は単に例示にすぎず、別の実施形態では、論理ブロックまたは回路要素を統合する、あるいは様々な論理ブロックまたは回路要素の機能の別の分担を課すこともできることを認識する。
【００３７】
さらに、たとえば一実施形態では、システム１０の図示される構成要素は、単独の集積回路上または同一素子内に配置させることができる。もしくは、システム１０は、相互に接続される任意数の別々の集積回路または別々の素子であってもよい。さらに、たとえば、システム１０またはその一部は、物理的回路のソフトまたはコード表示、あるいは物理的回路に変換可能な論理表示であってもよい。そのようなものとして、システム１０は、適切な種類のハードウェア記述言語で具体化することができる。さらに、当業者であれば、上記動作の機能間の境界は単に例示であることを認識する。複数の動作の機能は単独の動作に結合することができる、および／または、単独の動作の機能は追加の動作に配分させることができる。さらに、別の実施形態では、特定の動作の複数例を含むことができ、動作の順序は各種実施形態で変更することができる。
【００３８】
以上、本発明を特定の実施形態に関して説明してきた。ただし、当業者であれば、特許請求の範囲に記載される本発明の範囲を逸脱せずに、様々な変形または変更を行うことができることを認識する。したがって、明細書と図面は限定的意味ではなく例示的に考えるべきであり、上記変形および変更は全て本発明の範囲に含まれることが意図される。
【００３９】
利益、その他の利点、および課題への解決策を、特定の実施形態を参照して上述した。ただし、利益、利点、課題への解決策、および利益、利点、または課題への解決策を生じさせる、あるいは明らかにするすべての要素は、請求項の一部または全部にとって極めて重要な、必須の、または不可欠な特徴または要素と解釈すべきではない。本明細書で使用されるように、「備える」という用語またはその変形は非排他的包括を対象に含めるように意図されるため、要素のリストを備える工程、方法、品目、または装置は、これらの要素のみを含むのではなく、明確にリストアップされていない、あるいは上記工程、方法、品目、または装置に内在するその他の要素を含むことができる。「複数の」という用語は、本明細書で使用されるように、２または３以上と定義される。「別の」という用語は、本明細書で使用されるように、少なくとも２番目のまたはそれ以上と定義される。「結合される」という用語は、本明細書で使用されるように、接続されると定義されるが、必ずしも直接、および機械的に接続されている必要はない。
【００４０】
上記詳細な説明は例であるため、「一実施形態」と記載される場合、それは例示としての実施形態である。したがって、「一つ」という文言の使用は、ただ一つの実施形態のみに記載された特徴のみを有することを意図していない。むしろ、他の多くの実施形態が、例示としての「一実施形態」に記載される特徴を有し得る。よって、本発明が一実施形態の状況で説明される場合、その一実施形態は本発明の可能な多くの実施形態のうちの１つである。
【図面の簡単な説明】
【００４１】
【図１】本発明の一実施形態によるシステムのブロック図である。
【図２】本発明の一実施形態による図１のアドレス変換回路の少なくとも一部を示す。
【図３】本発明の一実施形態による図２のバイパス制御レジスタを示す。
【図４】図３のバイパス制御レジスタの命令バイパスおよびデータバイパスフィールドの記述を提供するテーブルを示す。
【図５】本発明の一実施形態による図１のシステムによって実行可能なバイパスを用いるアドレス変換方法を示すフロー図である。
【図６】本発明の一実施形態によるサンプルシステムクロックサイクルを示すタイミング図である。
【図１】
2009527861.tif 000003
【図２】
2009527861.tif 000004
【図３】
2009527861.tif 000005
【図４】
2009527861.tif 000006
【図５】
2009527861.tif 000007
【図６】
2009527861.tif 000008
【国際調査報告】
2009527861.tif 000009
2009527861.tif 000010