(57)【特許請求の範囲】
【請求項１】
実アドレスを絶対アドレスへ変換する実モード変換のためのアドレス変換対と、領域またはセグメント・テーブル起点アドレス（ＲＴＯ／ＳＴＯ）の比較が不要であることを指示する共通セグメント（ＣＳ）ビットおよび当該ＣＳビットの効果を打ち消し前記ＲＴＯ／ＳＴＯの比較が必要であることを指示する専用空間（ＰＳ）ビットの両方の制御ビットからの制御を受ける動的アドレス変換のためのアドレス変換対とを格納するとともに、当該動的アドレス変換のためのアドレス変換対に関連して前記ＣＳビットおよび前記ＰＳビットを格納するようにした既存変換索引緩衝機構を備えるプロセッサ・システムにおいて、実空間制御（ＲＳＣ）ビットに対するサポートを実装する方法であって、
アドレス変換を要求されたアドレスが供給されるときに、当該要求されたアドレス、当該要求されたアドレスに関連する前記ＲＳＣビットおよび前記ＰＳビットを保持する、アドレス空間制御エレメントを生成するステップと、
前記ＲＳＣビットおよび前記ＰＳビットのステータスを含む前記アドレス空間制御エレメントのステータスを判別するステップと、
前記ＲＳＣビットおよび前記ＰＳビットを論理和した結果を、前記ＣＳビットが無視されるべきであることを指示するイグノア共通セグメント（ＩＣ）ビットとして、前記アドレス空間制御エレメントに設定するステップと、
アドレス・マッチングのために、前記既存変換索引緩衝機構の各エントリに格納されている前記アドレス変換対のうちの実アドレスまたは仮想アドレスを、前記アドレス空間制御エレメントに保持されている前記要求されたアドレスと比較するステップと、
前記アドレス・マッチングが検出されない場合であって、前記ＲＳＣビットがセットされているときに、実モード変換を実行し、当該実モード変換に係るアドレス変換対を前記既存変換索引緩衝機構の一のエントリに格納する際に、当該一のエントリに格納されていた前記ＰＳビットの代わりに前記ＩＣビットを格納するとともに、当該一のエントリの前記ＲＴＯ／ＳＴＯを格納するためのフィールドに前記アドレス空間制御エレメントに保持されている実空間トークン起点アドレス（ＲＳＴＫＯ）を格納するステップと、
前記アドレス・マッチングが検出されない場合であって、前記ＲＳＣビットがセットされていないときに、動的アドレス変換を実行し、当該動的アドレス変換に係るアドレス変換対を前記既存変換索引緩衝機構内の一のエントリに格納する際に、当該一のエントリに格納されていた前記ＰＳビットの代わりに前記ＩＣビットを格納するとともに、当該一のエントリの前記ＲＴＯ／ＳＴＯを格納するためのフィールドに前記アドレス空間制御エレメントに保持されているＲＴＯ／ＳＴＯを格納するステップとを含む方法。
【請求項２】
前記アドレス・マッチングが検出される場合に、前記ＩＣビットがセットされておらず且つ前記ＣＳビットがセットされているときには、ヒットを宣言するステップをさらに含む請求項１に記載の方法。
【請求項３】
前記ＩＣビットがセットされておらず且つ前記ＣＳビットがセットされていないときには、前記アドレス空間制御エレメントに保持されているＲＴＯ／ＳＴＯまたはＲＳＴＫＯと、前記アドレス・マッチングが検出された前記既存変換索引緩衝機構の特定のエントリに格納されているアドレス変換対のＲＴＯ／ＳＴＯとの起点比較を実行するステップと、
前記起点比較がマッチングを指示する場合には、ヒットを宣言するステップとをさらに含む請求項２に記載の方法。
【請求項４】
前記ＩＣビットがセットされているときには、前記アドレス空間制御エレメントに保持されているＲＴＯ／ＳＴＯまたはＲＳＴＫＯと、前記アドレス・マッチングが検出された前記既存変換索引緩衝機構の特定のエントリに格納されているＲＴＯ／ＳＴＯまたはＲＳＴＫＯとの起点比較を実行するステップと、
前記起点比較がマッチングを指示する場合には、前記ヒットを宣言するステップとをさらに含む請求項２に記載の方法。
【請求項５】
前記起点比較がマッチングを指示しないときに、前記ＲＳＣビットのステータスを判別するステップをさらに含む請求項４に記載の方法。
【請求項６】
前記ヒットは、前記特定のエントリに格納されているアドレス変換対が前記要求されたアドレスに対応する絶対アドレスを含むことを指示する請求項４に記載の方法。
【請求項７】
前記ＲＳＣビットおよび前記ＰＳビットは、相互に排他的であるように構成される請求項１に記載の方法。
【請求項８】
前記ＩＣビットおよび前記ＣＳビットは、相互に排他的であるように構成される請求項１に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マイクロプロセッサ・システムにおいて既存変換索引緩衝機構を用いる新しい実空間制御（Real Space Control）ビットに対するサポートの実装に関する。
【０００２】
【従来の技術】
広く知られているように、コンピュータは、様々なアドレッシング・スキームを使用し、ストレージ・メモリにアクセスして命令およびデータを検索する。ストレージ・メモリに実際に適用されたアドレスは、しばしば絶対アドレスと称され、有効アドレスは、プログラマによって実際に参照されるアドレスであり、仮想あるいは実アドレスが有効アドレスの典型である。
【０００３】
コンピュータ・プログラムを構築する際に、プログラマは、一般的に有効アドレスを参照するので、メイン・ストレージ・メモリがアクセス可能になるよりも前に、有効アドレスは、仮想アドレスまたは実アドレスであると判別され、絶対アドレスに変換される必要がある。コンピュータ性能および速度の増加を達成するために、このアドレス変換プロセスは、効率よく実行されなければならない。
【０００４】
【発明が解決しようとする課題】
各々のアドレス変換は、複数ステージ・プロセスを含み、そして、貴重なプロセッサ・サイクルを消費する。このアドレス変換の速度を速めるための従来のソリューションは、最も最近の変換エントリを格納する、変換索引緩衝機構（ＴＬＢ）と称されるアドレス変換キャッシュを使用することである。アドレス変換キャッシュを使用することは、仮想アドレスから絶対アドレスへのアドレス変換のステップのうちの幾つかを省く。この方法において、プロセッサは、ＴＬＢにアクセスして最も最近使用された変換エントリのアドレスを獲得することだけを必要とする。変換索引緩衝機構（ＴＬＢ）は、２つの主要なタイプの変換エントリ、すなわち、実アドレスを絶対アドレスへ変換する変換（実モード変換）エントリと、領域またはセグメント・テーブル起点アドレスを有する仮想アドレスを絶対アドレスへ変換する変換（動的アドレス変換またはＤＡＴとして知られる）エントリとを保持する。実モード変換は、アドレス変換（以下「変換」とも略称する）を開始するために実アドレスのみを必要とする、単純モードの変換である。他方、ＤＡＴは、１以上のストレージ・テーブル・ルックアップを行うために、仮想アドレスと開始領域またはセグメント・テーブル起点アドレス（Region or Segment Table Origin：ＲＴＯまたはＳＴＯ）とを必要とする、より複雑な変換モードである。
【０００５】
【課題を解決するための手段】
既存変換索引緩衝機構（ＴＬＢ）を有するプロセッサ・システムにおいて、新しいプロセッサ制御ビットである実空間制御（Real Space Control：ＲＳＣ）ビットをサポートするために、ＴＬＢにおいて既存制御ビットである専用空間（Private Space：ＰＳ）ビットが、新しい制御ビットであるイグノア共通セグメント（Ignore Common segment：ＩＣ）ビットによって置き換えられ、新しい非重複ＴＬＢエントリを作成する。アドレス変換モードを変更するＲＳＣビットに対するサポートは、ＲＳＣビットをＰＳビットと結合し、インターロックである新しいＩＣビットを設定することによって達成される。これらのおよび他の制御ビットのステータスに基づいて、アドレス変換はインターロックされ、または可能にされる。これらのおよび他の改良は、以下の詳細な説明において説明される。利点および特徴と共に本発明のよりよい理解のために、以下の説明および図面を参照されたい。
【０００６】
【発明の実施の形態】
添付図面と関連して、好適な実施の形態を例として説明する。この詳細な説明は、図面と関連して例として、利点および特徴と共に本発明の好適な実施の形態を説明する。
【０００７】
変換モードを変更する、新しいプロセッサ制御ビットである実空間制御ビット（ＲＳＣ）に対するサポートを提供するために、変換索引緩衝機構（ＴＬＢ）において、既存制御ビットである専用空間ビット（ＰＳ）が、イグノア共通セグメント（ＩＣ）ビットによって再定義され置きかえられて、新しい非重複ＴＬＢエントリを作成する。同一の物理ＴＬＢビット・エントリの再利用は、既存機能エレメントの保守を容易にし、リスクおよび全体のコストを削減する。説明される実施の形態において、ＴＬＢは、一つのこのようなエレメントである。
【０００８】
先に述べたように、ＴＬＢは、２つのタイプの変換エントリ、すなわち、実アドレスを絶対アドレスへ変換する変換（実モード変換）エントリと、領域またはセグメント・テーブル起点アドレス（ＲＴＯ／ＳＴＯ）を伴う仮想アドレスを絶対アドレスへ変換する変換（動的アドレス変換またはＤＡＴとして知られる）エントリとを保持する。ＤＡＴは、１以上のストレージ・テーブル・ルックアップを行うために、仮想アドレスと開始ＲＴＯまたはＳＴＯとを必要とする、より複雑な変換モードである。
【０００９】
図１は、典型的なアドレス変換プロセスを含む好適な実施の形態のプロセス１０を説明する図である。あらゆるアドレス変換に続いて、ＴＬＢは、最新のエントリを保持するように更新される。続いて、プロセス１２において示されるように、アドレスが取り出され、デコードされるときに、アドレスのタイプ、すなわち、絶対、実、あるいは仮想に関して指示が与えられ、こうして、必要とされる変換のタイプが指示される。絶対アドレスについては、何も必要とされず、したがって、プロセスが絶対アドレス１４へ直接続く。実アドレスについては、変換が必要とされるが、そのアドレスが既にＴＬＢ内に存在することがある。そのため、ＴＬＢ比較１６が実行され、“ヒット”なら、変換は回避可能であり、絶対アドレスがＴＬＢから入手できる。そうでない場合には、実モード変換がプロセス１８において実行される。仮想アドレスについては、開始アドレス空間制御エレメント（Address Space Control Element：ＡＳＣＥ）と称される適切な制御レジスタは、アドレスおよび幾つかの制御ビットを保持する。ＡＳＣＥ内のこれらの制御ビットのうちの一つは、新たに導入された実空間制御ビット（ＲＳＣ）である。ＲＳＣビットは、たとえプロセス１２でのアドレス・デコードの結果として仮想ＤＡＴが最初に指示されたとしても、実モード変換が必要であることを指示する方法を与える。このようにして、ＡＳＣＥ内に存在するＲＳＣビットは、実モード変換を指図し、アドレス取り出しおよびデコードに基づいて最初に指示されたＤＡＴ変換をオーバーライドする。手続上、最初にＡＳＣＥが検索されるとき、ＲＳＣビットがチェックされ、ＲＳＣビットがセットされている場合（すなわち、ＲＳＣビットがオンである場合）には、まるで与えられたアドレスが実アドレスであるかのように変換が進行する。ＡＳＣＥの他のビットは、変換（アドレスを含む）について無視され、実モード変換が開始する。ＲＳＣビットがセットされていない場合には、変換は“通常の”ＤＡＴであり、ＡＳＣＥ内のアドレスはＲＴＯ／ＳＴＯであり、それは変換のために使用される。
【００１０】
実モード変換に関して、ＴＬＢは、実アドレス（およびここでは問題とされない一定の制御ビット）間のマッチングを必要とするだけである。ＴＬＢは、仮想アドレス、ＲＴＯ／ＳＴＯ、および少数の他の制御ビット間のマッチングについてチェックすることによって通常のＤＡＴ変換をサポートする。最初に、ＤＡＴ変換はまた、実モード変換が本当に必要とされないということを保証するためにＲＳＣビットの付加的なチェックを必要とする。ＡＳＣＥ内のＲＳＣビットがオンである場合には、アドレス・デコード情報がＤＡＴ変換を指図するように見えるとしても、ＴＬＢは、現に必要とされているものとは異なる絶対アドレスに帰着するような通常のＤＡＴエントリを作成するべきでない（というのは、ＲＳＣビットがオンであるために、変換は、ＤＡＴではなく実モードで行われるべきだからである）。
【００１１】
ＲＳＣビットの効果の原因となるＴＬＢエントリのためのサポートを与えることは、固有のエントリを生成すること、および一定の制御ビットのための既存プロトコルを利用することを必要とする。ＴＬＢにおいてＲＳＣビットをサポートすることは、ＴＬＢが、既存共通セグメント・ビット（ＣＳ）の機能をもサポートしなければならないという事実によってさらに複雑化される。ＣＳビットは、ＤＡＴプロセスの間にテーブル・ルックアップを通して判別され、変換に続いて、そのエントリの一部としてＴＬＢ内へ書き込まれる制御ビットである。ＣＳビットは、ＤＡＴにおいて使用される仮想アドレスが全てのアドレス空間に対して共通であるということを指示する。これが意味するのは、ＣＳビットがセットされている場合、ＴＬＢエントリの仮想アドレスにマッチングする仮想アドレスを有する全てのＤＡＴ変換は、たとえどんなＲＴＯ／ＳＴＯが使用されても、ＴＬＢ内の同一の絶対アドレスに全面的に一致し得るということである。とりわけ、このプロトコルは、ＴＬＢ比較、すなわち“ヒット”が、通常用いられているＲＴＯ／ＳＴＯ比較をさらに必要とすることなしに、判別されることを可能にする。かくして、ＴＬＢ比較のための手段に処理時間の節約を与える。ＣＳビットのためのプロトコルは、ＲＳＣビットがオンである場合の変換は、ＣＳビットがオンになっているＴＬＢエントリに“ヒット”できないという要件を指図するということを留意されたい。しかし、（ＡＳＣＥの一部である）専用空間（ＰＳ）ビットという、ＴＬＢ内のＣＳビットのこの使用に対する例外がすでに存在する。セットされたＰＳビットは、ＤＡＴがその適切な専用空間内で変換するよう強制し、たとえＣＳビットをセットされたＴＬＢエントリの仮想アドレスとのマッチングが存在しても、ＴＬＢエントリのＲＴＯ／ＳＴＯとの比較を必要とする。したがって、ＣＳビットがオンであるＴＬＢエントリが存在する場合には、ＡＳＣＥ内にセットされていないＲＳＣビットおよびセットされていないＰＳビットを有する全ての正規仮想アドレスが、ＴＬＢにおいてマッチングすることができるのに対し、ＡＳＣＥ内にセットされたＲＳＣビットを有する仮想アドレスは、マッチングしないことがある。
【００１２】
この異常を解決するために、ＴＬＢエントリ・ビットは、ＡＬＢ（アクセス・レジスタ索引緩衝機構（Access Register Lookaside Buffer））１９においてＲＳＣビットおよびＰＳビットを結合してイグノア共通セグメント（ＩＣ）ビットと称されるエントリを生成することによって“再定義される”。好適な実施の形態において、この結合は、２つのビットの論理ＯＲに相当する。結果として、ＰＳビットまたはＲＳＣビットの何れかがセットされている場合には、ＴＬＢエントリにおけるＲＴＯ／ＳＴＯとの比較は、常に実行される。したがって、ＲＳＣビットをセットされた変換は、ＣＳビットをセットされたＴＬＢエントリとマッチングしない。なぜなら、ＩＣビットがセットされる場合、ＰＳビットをサポートする同一のプロトコルが使用され、その結果、ＣＳビットの使用および効果をブロックするからである。
【００１３】
好適な実施の形態において、ＴＬＢにおいて要求された論理機能に作用するために、必要なＡＳＣＥを生成する必要がある。図１を再び参照すると、ＡＬＢ１９は、プロセス２０において、マッチング・エントリを捜すときにＴＬＢ比較のために使用されるべき、ＡＳＣＥおよび（ＡＳＣＥの一部である）ＲＴＯ／ＳＴＯを生成する。ＡＬＢ１９は、プロセス２４および２２において、ＰＳビットおよびＲＳＣビットを評価して、それらのステータスを判別する。どちらか一方がセットされている場合には、プロセス２８において、ＩＣビットと称される“再定義”されたエントリ・ビットがセットされ（ＩＣ＝１）、そうでない場合には、ＩＣビットは、プロセス２６において、セットされない（ＩＣ＝０）。ＩＣビットは、ＴＬＢ比較プロセス３０の一部として、マッチングＴＬＢエントリを検索するために常に比較される必要があるビットのグループの一つである。アーキテクチャの制約上、ＰＳビットおよびＲＳＣビットは決して同時にセットされ得ないということに留意されたい。したがって、ＩＣビットをセットされたいかなるエントリも、セットされたＰＳビットまたはセットされたＲＳＣビットのどちらか一方から生ずるが、決して両方からは生じ得ないということに留意されたい。さらに、アーキテクチャ内部の制約上、オンのＰＳビットまたはＲＳＣビットのどちらか一方を有するＡＳＣＥで開始する変換は、ＣＳビットもまたオンである場合には、決して有効な変換をリターンすることができない。このアーキテクチャ制約は、また、オンのＩＣビットを有するいかなるＴＬＢエントリも、オフのＣＳビットを有する必要があり、その逆も同様であるので、双方のビットがオンのエントリは一つもないということを保証する。したがって、ＲＳＣビットがオンであるとき、オンのＣＳビットを有するエントリとの誤ったＴＬＢ比較を生成することは決してあり得ない。さらに、このアーキテクチャ制約は、オンのＩＣビットを有するエントリとの比較を必要とする（このような事態は、或るエントリが、オンのＰＳビットまたはＲＳＣビットで開始した変換を用いて作成された場合に限って、発生し得る）。したがって、たとえＲＳＣビットおよびＰＳビットの双方がオンである第１の状況とＲＳＣビットがオフで且つＰＳビットがオンである第２の状況の双方がＩＣビットがオンの状況をそれぞれ導くとしても、第２の状況（ＲＳＣビットがオフで且つＰＳビットがオン）を有する変換が第１の状況（ＲＳＣビットおよびＰＳビットの双方がオン）を有する変換によって作成されたエントリにマッチングするという、誤った比較を有することはあり得ない。最後に、適切なＴＬＢオペレーションのために、アーキテクチャは、実空間トークン起点（Real Space Token Origins：ＲＳＴＫＯ）（オンのＲＳＣビットを有するＡＳＣＥ内のアドレス起点）が（オフのＲＳＣビットを有するＡＳＣＥからの）ＲＴＯ／ＳＴＯにマッチングすることを禁止する。このようにして、アドレスとＲＳＴＫＯ／ＲＴＯ／ＳＴＯとＲＳＣビットの一つの状態とを有する生成されたＴＬＢエントリが、同じアドレスとＲＳＴＫＯ／ＲＴＯ／ＳＴＯとを有するも、ＲＳＣビットの異なる状態を有するエントリに誤ってマッチングする状況は、決して存在し得ない。
【００１４】
図１を再び参照すると、ＴＬＢ比較プロセス３０が実行されるとき、幾つかの機能が生じてＴＬＢアーキテクチャの制約を満たす。最初に、プロセス３２において、アドレス比較が行われる。アドレスがマッチングしない場合には、既存ＴＬＢ内にはマッチング・エントリが一つもないから、変換が必要とされ、処理がプロセス４０において続行する。アドレスがマッチングする場合には、これはアドレス“ヒット”を指示し、したがって、既存ＴＬＢはマッチングするアドレスを含む。ＴＬＢ比較プロセス３０を続けると、プロセス３４において、ＩＣビットのステータスが確認される。ＩＣビットがセットされていない場合には、ＣＳビットがセットされ、それによって仮想アドレスが全てのアドレス空間に対して共通であるということを指示する可能性がある。したがって、プロセス３６において、ＣＳビットのヒットがチェックされ、そこでマッチングが得られる場合には、それは、アドレスが共通であり、変換が必要とされ得ないということを指示する。ＣＳビットがセットされていない場合、あるいはＩＣビットがセットされている場合には、プロセス３８において、ＲＳＴＫＯ／ＲＴＯ／ＳＴＯとの比較が必要とされ、そしてそこにおけるマッチングは、当該エントリがオンのＰＳビットまたはオンのＲＳＣビットで開始した変換を用いて作成されたこと、およびアドレス・マッチが正しい絶対アドレスをもたらすことをもう一度指示する。最後に、ＴＬＢにおいてマッチング・エントリを有さないそれらの比較は、さらなる変換が必要とされるということを指図する。ＲＳＣビットがオンのそれらの比較は、プロセス４０および４２によって示されるように、実モード変換が必要であるということを指図する。一方、ＲＳＣビットがオフのそれらの比較は、プロセス４０および４４によって示されるように、ＤＡＴを必要とする。このように実行される新しいＲＳＣビットを含む変換は、たとえＲＳＣビットが変換においてアクティブ変数であり且つこれらのタイプの変換のためのエントリがＴＬＢにおいて作成され使用されても、ＴＬＢにおいて付加的なビット・エントリを必要としない。このようにして、既存ＴＬＢおよびサポート・プロトコルは、リスクまたはインパクトなしに再利用可能である。
【００１５】
本発明に対する好適な実施の形態を説明してきたが、当業者は、現在および将来において、次に続く特許請求の範囲に含まれる様々な改良および拡張を成し得るということが理解できる。したがって、本発明はただ単に例として説明され、ここに開示されたような例および実施の形態は、特許請求の範囲を限定すると解釈されるべきでないということが理解されるべきである。
【図面の簡単な説明】
【図１】  好適な実施の形態の方法を説明する図である。
【符号の説明】
１０  実施の形態のプロセス
１９  アクセス・レジスタ索引緩衝機構
３０  ＴＬＢ比較プロセス
【図１】
0003730892.tif 000002