JP3264319B2 - バスブリッジ - Google Patents

バスブリッジ

Info

Publication number
JP3264319B2
JP3264319B2 JP17418797A JP17418797A JP3264319B2 JP 3264319 B2 JP3264319 B2 JP 3264319B2 JP 17418797 A JP17418797 A JP 17418797A JP 17418797 A JP17418797 A JP 17418797A JP 3264319 B2 JP3264319 B2 JP 3264319B2
Authority
JP
Japan
Prior art keywords
address
bus
tlb
memory
logical
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP17418797A
Other languages
English (en)
Other versions
JPH1125033A (ja
Inventor
義光 岡山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP17418797A priority Critical patent/JP3264319B2/ja
Priority to US09/106,207 priority patent/US6128684A/en
Publication of JPH1125033A publication Critical patent/JPH1125033A/ja
Application granted granted Critical
Publication of JP3264319B2 publication Critical patent/JP3264319B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1081Address translation for peripheral access to main memory, e.g. direct memory access [DMA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/30Providing cache or TLB in specific location of a processing system
    • G06F2212/303In peripheral interface, e.g. I/O adapter or channel

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、情報処理装置に関
し、特に、メモリバスとI/Oバスを相互に接続するた
めのバスブリッジにおいて、アドレス変換機構を有する
I/Oバスブリッジに関する。
【0002】
【従来の技術】この種のバスブリッジの一例が、例えば
特開平08−314850に開示されている。簡単に説
明すると、このバスブリッジは、システムバスとI/O
バスとの間に接続され、各バス間のアクセスを制御する
計算機システムのバスブリッジであり、記憶手段と、シ
ステムバス側からI/Oバス上のI/O機器への書込ア
クセスがあった時、I/O機器がアクセス不可能な状態
であれば、当該書込アクセス内容を記憶手段に記憶して
システムバスを解放し、また、I/O機器がアクセス可
能な状態になると、記憶手段に記憶された書込アクセス
内容に基づいて、当該I/O機器に書込アクセスを実行
するアクセス制御手段とを備えたことを特徴としてい
る。この種のバスブリッジはまた、特開平09−089
257にも開示されている。
【0003】
【発明が解決しようとする課題】しかしながら、上記の
公報に開示されたバスブリッジを含むこれまでのバスブ
リッジには、以下のような問題点がある。
【0004】第一の問題点は、I/Oデバイスからの論
理アドレスをメモリバスヘ転送する際、メモリバス上で
のアドレス、すなわち物理アドレスへ変換するアドレス
変換機構を有していないために、ミスした場合のロスが
大きい場合があった。あるいは、アドレス変換機構を有
していても、それが単純なTLB方式であるため、ミス
した場合のロスが大きい場合があった。その理由は、ア
ドレス変換機構は比較的大きなリソースを必要とするも
のであり、特に安価な装置においてはコスト的な要因で
実装されないことが一般的であることがあげられる。ま
た、アドレス変換機構が実装されていても、ミスした場
合にアドレス変換テーブルエントリをそのたびに引きに
いく必要性があり、このロスが性能的に問題となること
が多いからである。
【0005】ここで、なぜ変換ロスを見込んでまでアド
レス変換の必要性があるのかということについて説明す
る。第一に、I/Oバスは一般的にメモリバス(システ
ムバス)よりも狭いアドレス線しか持っていない。それ
故、そのままではI/Oデバイスによるメモリへのアク
セスにおいて、I/Oアドレスのアドレッシング範囲を
起えるような上位の物理アドレスへアクセスすることが
できない。
【0006】第二に、アドレス変換機構を例えば、マイ
クロプロセッサにおいて採用されているようなアドレス
変換機構であるTLB方式と同じようなページ単位で管
理することができると、I/Oデバイスからのメモリア
クセスとCPUのTLBページを一対にして管理するこ
とができる。従って、CPUのTLBとI/Oデバイス
のTLBの管理を一元的に行うことができ、ソフトウェ
ア開発上、ポータビリティの点で優れたメリットがあ
る。このため、特にI/Oデバイスが非常に多く接続さ
れるような装置においては、アドレス変換機構が採用さ
れることがある。
【0007】第二の問題点を説明する。従来の技術にお
いて、I/Oデバイス単体の動作を考えてみると、一度
に行うメモリへのアクセスの指示は、I/Oキャッシュ
のラインサイズよりも極めて大きく、数Kバイト以上の
転送サイズが指示される。ところが、I/Oキャッシュ
のラインサイズは32バイトあるいは64バイトという
ように数十バイトであることが一般的である。そのため
に、バスブリッジは指定された数Kバイトの転送を終了
するまでに、この数十バイトのI/Oキャッシュを何度
もミスを繰り返しながら転送が行われる。
【0008】ところが、アドレス変換機構におけるアド
レス変換テーブルのエントリのサイズは数Kバイトが一
般的であり、I/Oキャッシュよりはずっと少ない頻度
でしかアドレス変換ミスが発生しない。従って、アドレ
ス変換ミス率とI/Oキャッシュミス率は、同一のI/
Oデバイスのメモリアクセスにおいて大きな差があり、
この差を金物量を大幅に増やさずに、いかに小さくでき
るかが技術的課題であった。その理由は、アドレス変換
テーブルのエントリ数とI/Oキャッシュのエントリ数
を同程度のヒット率を想定してアドレス変換テーブル、
I/Oキャッシュを内蔵すると、I/Oキャッシュのエ
ントリ数を極端に大量に用意しなければならない。その
ために、金物量が大きくなり、コスト的な問題が非常に
大きくなることから、現実的にはアドレス変換テーブル
と同程度のヒット率を想定したI/Oキヤッシュのエン
トリ数を持つことができなかった。
【0009】第三の問題点は以下の通りである。I/O
−TLBミスに伴ってTLBリフィルしてくるPTEは
通常一回のロードできるデータサイズに対して小さい。
このことから、スループット性能が必要なシステムバス
(例えばマルチプロセッサバス)の使用効率を結果的に
下げてしまうことがある。また、一回のDMAで転送さ
れるデータ長がI/O−TLBのページサイズよりも長
い場合に、ページ単位でミスが発生し、そのたびにリフ
ィルが行われるのは、スループット性能の点で、劣化の
原因となり得るという問題もある。
【0010】第四の問題点について述べる。デバイスに
は、即時性を要求するような通信・マルチメディア系の
デバイス(以下、これをレイテンシ型デバイスと呼ぶ)
と、一度DMAリクエストを発行すると、所定の転送バ
イト数が終わるまで最大レートで転送を行おうとするデ
バイス(以下、これをスループット型デバイスと呼ぶ)
とがある。I/OバスからのDMAリクエストの時間的
間隔は比較的長い。ここで、レイテンシ型デバイスとス
ループット型デバイスが複数が複数接続されている状態
において、スループット型デバイスが複数接続され、こ
れらが一度動作しはじめると論理アドレス−物理アドレ
ス変換機構としてI/O−TLBをともに使用する場合
に、スループット型デバイスが一時的にI/O−TLB
エントリを占有してしまう。この場合、レイテンシ型デ
バイスがDMAリクエストを発行しても、I/O−TL
Bで必ずミスしてしまい、この状態が何度か続いてしま
うと、所定のレイテンシ性能を満たせない場合が発生し
てしまう。
【0011】そこで、本発明は、I/Oデバイスの特性
に応じた論理アドレス−物理アドレス変換機構を複数持
ち、I/Oデバイス要求に応じて使い分けることのでき
るメモリバス−I/Oバスブリッジにおいて、アドレス
変換機構を持つことによるソフトウェア上のポータビリ
ティを確保しつつ、アドレス変換ミスによる転送性能劣
化を極力抑えることを課題にしている。
【0012】
【課題を解決するための手段】本発明のバスブリッジ
は、論理アドレス−物理アドレス変換機構を複数持ち、
このアドレス変換機構をI/Oデバイスの論理アドレス
範囲によって、自動的に選択し、そのページに示された
物理アドレスヘ変換させる機能を持つことを特徴とす
る。
【0013】より具体的には、変換テーブルがI/Oペ
ージテーブル(図1の3)としてシステムメモリ(図1
の2)上に格納されている。バスブリッジ(図1の1
2)においては、アドレス変換機構の一つとして、I/
Oバス(図1の13)を経由して要求されるI/Oデバ
イスからのメモリアクセスアドレス(以下、これは論理
アドレスと呼ばれる)をメモリバス(システムバス)
(図1の4)上で実メモリ空間を示すアクセスアドレス
(以下、これは物理アドレスと呼ばれる)へと変換する
機構を持つ。このアドレス変換機構は、システムメモリ
内のI/Oページテーブルだけでなく、バスブリッジ内
の論理アドレスタグ(図1の8)内にI/Oページテー
ブルを使用すること無しにほかの変換機構として機能す
る変換器をも合わせ持っている。このバスブリッジのア
ドレス変換機構の内部構成としては、以下のものが挙げ
られる。
【0014】I/OバスI/F(図1の10)は、I/
Oバスからの要求アドレス(論理アドレス)をI/Oバ
スプロトコルに従って、保持、あるいはバッファリング
するなどの機能を持つ。論理アドレスヒット・ミスチェ
ック部(図1の11)は、I/OバスI/Fで保持され
た論理アドレス情報と内部の論理アドレスタグ(図1の
8)とを比較する機能を持つ。アドレス変換機構(図1
の7)は、この比較情報の結果に基づいて、ヒットなら
ば論理アドレスタグに対応した物理アドレスデータ(図
1の9)を用い、ミスならば、論理アドレスタグ(図1
の8)に最新のアドレスタグとして登録させると共に、
ミスした論理アドレスに対応する物理アドレスを引いて
くる(以下、これをリフィル動作と呼ぶ)機能を持つP
TE更新・リフィル制御部(図1の6)に指示を出す機
能とを有する。メモリバスI/F(図1の5)は、変換
されたアドレスでシステムバスプロトコルに従ってバス
アクセスを行う。
【0015】また、I/Oページテーブル(図1の3)
を引いてアドレス変換する方式のほかに、論理アドレス
タグ(図1の8)の中には別のアドレス変換機構を使用
することができるものがある。従って、必ずしもI/O
ページテーブルを使用してアドレス変換するわけではな
く、I/Oバスからの要求に従って、自動的にこの使い
分けを行い、性能の点で最適化されたアドレス変換を行
う。
【0016】
【作用】本発明のバスブリッジは、論理アドレス−物理
アドレス変換機構を持つことによるソフトウェア作成上
のポータビリティを保持しつつ、アドレス変換機構を複
数持ちながら、I/Oデバイスの論理アドレス範囲によ
って、この複数のアドレス変換機構を自動的に選択する
ことにより、アドレス変換ミスによる転送性能ヘの影響
を極力低減させることができる。
【0017】より具体的には、システムメモリ上にI/
Oページテーブルが格納されており、このI/Oページ
テーブルの中のエントリにはI/Oバスの要求アドレス
(論理アドレス)に対応したメモリバス上でのメモリア
クセスアドレス(物理アドレス)が格納されている。
【0018】I/OバスI/Fは、I/Oバスからの要
求アドレス(論理アドレス)をI/Oバスプロトコルに
従って、保持、あるいはバッファリングするなどの機能
を持つ。ここで保持された論理アドレス情報と内部の論
理アドレスタグとを比較する機能を持つのが論理アドレ
スヒット・ミスチェック部である。ここでの比較情報の
結果に基づいて、ヒットならば論理アドレスタグに対応
した物理アドレスデータ(図1の9)(これは物理アド
レスそのものであり、このアドレスが論理アドレスタグ
に対応したデータとして格納されている)を用い、も
し、I/Oページテーブルを使用するページ属性で、か
つミスならば、論理アドレスタグに最新のアドレスタグ
として新規に登録させる機能を持つのがアドレス変換機
構である。
【0019】PTE更新・リフィル制御部は、アドレス
変換機構からのミス指示に従って、このミスした論理ア
ドレスに対応する物理アドレスをデータとしてシステム
メモリからデータとして引いてくるリフィル動作を実行
する機能を有している。
【0020】最終的に論理アドレスが変換された結果と
しての物理アドレスはメモリバスI/Fによってメモリ
バスのプロトコルに従って、バスアクセスを行う機能を
有している。
【0021】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を参照して説明する。図1を参照すると、本発明
の第一の実施の形態は、本発明の基本的な構成を持つ。
【0022】本発明の実施の形態を詳細に説明する前に
用語を以下のように定義し、以降この定義のもとに詳細
に説明を行う。
【0023】バスブリッジ:システムメモリやCPUな
どが接続されるメモリバス(またはシステムバスなどと
呼称される)とディスクアダプタ、通信アダプタやグラ
フィックスアダプタなどのI/Oデバイスが接続される
I/Oバスと相互にデータをやりとりするためのハード
ウェア機構である。一般的にはバスブリッジ、ホストブ
リッジとも呼称されるが、本形態においては、バスブリ
ッジと呼称する。
【0024】I/O−TLB:CPUにおいて一般的に
使用されているTLB機構と同じようなアドレス変換を
有する機構で、I/OデバイスがI/Oバス上において
メモリバス上のメモリ資源等をアクセスする時のアドレ
スを論理アドレスと定義し、この論理アドレスをバスブ
リッジ内のI/O−TLBに従ってシステムメモリ上の
アドレス(物理アドレス)に変換する機構である。
【0025】DMA:一般的には、パーソナルコンピュ
ータにおいてはDMA(ダイレクトメモリアクセス)
は、自らメモリアクセスを行えないI/OデバイスがD
MAコントローラと呼ばれるメモリアクセスを肩代わり
してくれるハードウェアの助けを借りてメモリアクセス
を間接的に行うことを意味する。しかし、本形態では、
本来の意味通りに、I/Oデバイス自身が直接I/Oバ
スに対してリクエストを発行し、メモリアクセスするこ
とを行う動作と定義する。なお、この機構は、パーソナ
ルコンピュータにおいては、バスマスタ動作とも呼称さ
れる。
【0026】論理DMA:論理アドレス−物理アドレス
変換機構によってI/Oバスアドレスを論理アドレスと
定義した場合に、この論理アドレスによってDMAを行
う場合を論理DMAと定義する。また、その対比とし
て、本形態に示されるような論理アドレス−物理アドレ
ス変換機構などを使用せず、I/Oバス上のアドレスを
そのまま変換せずにメモリバス上のアクセスアドレス
(物理アドレス)としてDMAを行う場合、これを物理
DMAと呼称する。
【0027】さて、図1に従って、本形態の全体構成及
び各制御ブロックの動作説明を行う。CPU1は、本形
態においては、システムメモリ2内に確保されているI
/Oページテーブル3をソフトウェアを通して生成する
機能を期待している。プログラムやオペレーティングシ
ステムのメモリ管理方式の処理の一環で、I/Oデバイ
スによるDMA動作を行う前には、このI/Oページテ
ーブル3をシステムメモリ2上に用意しておき、I/O
デバイスに対してDMAの起動指示をかけて、その指示
に従い、I/Oデバイスはプログラム的に指示されたア
ドレスでDMAを行なう。このリクエストアドレスは、
論理アドレスと呼ばれるアドレスで、バスブリッジ12
によって物理アドレスへの変換を期待されるアドレスで
あり、そのアドレスのままでシステムメモリ(システム
メモリは物理アドレス空間に配置されている)2をアク
セスするわけではない。つまり、I/Oバス13のアド
レスマップとメモリバス4のアドレスマップは同一では
ない。そして、I/Oバス13のアクセスアドレスは論
理アドレスと呼ばれる、ユーザプログラム上の物理空間
を直接気にしなくても管理できるポータビリティに優れ
た仮想的なアドレス空間としてDMA空間に論理アドレ
スという概念が導入されている。
【0028】本形態では、この変換は、オペレーティン
グシステムのメモリ管理部分の指示によって、バスブリ
ッジというハードウェアで、I/O−TLB機構や後述
のアドレス再マッピング機構に従って、実際の物理空間
へ写像するという方式になっている。
【0029】このバスブリッジの利点は、I/Oデバイ
スのアドレッシング範囲がメモリバス4よりも狭い場合
に、アドレス変換機構7で論理アドレス−物理アドレス
変換を行えば、I/Oデバイスよりも上位のアドレス範
囲に対して直接アクセスする(DMA)ことができるこ
とがあげられる。また、CPU1のTLBとI/O−T
LBを統一的に論理アドレスとして管理することができ
るため、ソフトウェア上のポータビリティで優れてい
る。更に、オペレーティングシステム上で動作するユー
ザプログラムが物理空を意識してメモリ管理する必要
が無い。加えて、I/Oバス13からメモリバス4への
転送の際に、I/Oバス13のデータの属性や、バスシ
ステムのエンディアンの際にデータのスワップ(バイト
スワップ、ワードスワップなど)が必要な場合に、I/
O−TLBやアドレス再マッピング機能のページ単位に
このようなスワップ属性を定義することができる。それ
故、I/OデバイスがDMAを行った後、CPU1がそ
のデータをシステムメモリ2から読み込んでプログラム
的にスワップ情報を変換して、再度メモリヘ格納しなお
すというようなオーバーヘッドが無い。
【0030】このことをアドレスマップを使用して説明
したのが図2である。図2において、アドレスマップは
物理アドレス空間23と論理アドレス空間21というよ
うに、メモリバス4側とI/Oバス13側でアドレスマ
ップで完全に別管理になっている。既述のように、I/
Oバス13からのDMAはアドレス変換機構7によって
物理アドレス空間へ写像されることになるが、図2は、
アドレス変換機構7を2つの方式によって実現している
ことを示している。一つはI/O−TLB機構22であ
り、もう一つはアドレス再マッピング空間24、25、
29である。この空間は図2のI/O−TLB空間2
6、27、28、30によって示される論理アドレス空
間によって区切られている。なお、この配置は任意であ
り、I/Oページテーブル3内のタグアドレスによって
ソフトウェア的に決められる。また、この空間のアドレ
ス範囲はI/Oページサイズと呼ばれる固定値で、ハー
ドウェア資源に依存したエントリ数を持っている。な
お、このエントリ数やページサイズは本発明の範囲外で
ある。同じように、アドレス再マッピング空間のアドレ
ス範囲も固定値のアドレス範囲で、ハードウェアに依存
したエントリ数を持っている。
【0031】両者は、ともに論理アドレスを物理アドレ
スに変換するという機能の点で同じであるが、変換方式
とエントリの更新方法が異なっている。この説明の詳細
は図3を参照しながら別途後述する。
【0032】その前に、I/Oバス13における論理ア
ドレスが、どのように本発明のバスブリッジ12によっ
てアドレス変換されるかを図1及び図3を参照しながら
説明する。
【0033】I/Oバス13上のDMAリクエストは論
理アドレスであり(図3のステップ41)、バスブリッ
ジ12はその論理アドレスが自分自身の管理アドレス内
かどうかを判定する(図3のステップ42、43)機能
を持っている。これは、アドレス変換機構7において、
まずバスブリッジ12として本来管理するアドレス範囲
であるかということをチェックする。次に、アドレス管
理内であった場合、バスブリッジ12はこの論理アドレ
スを物理アドレスヘ変換しなければならないのであるか
ら(図3のステップ45、47)、論理アドレスヒット
・ミスチェック部11ではこの論理アドレスをアドレス
タグとして内部に保持されているアドレス再マッピング
機構で管理されているアドレス範囲であるかどうか(ヒ
ットしているかどうか)をチェックする(図3のステッ
プ43)。
【0034】ここで、アドレス再マッピング機構でまず
アドレス判定するのは、次の理由による。アドレス再マ
ッピング機構が論理アドレスタグ8及び物理アドレス9
に示されるアドレス変換機構のうち、一部分のみを使用
し、このアドレス再マッピング機構で変換される論理ア
ドレス範囲(ページ)は、システムが起動した段階で、
1度設定されてしまうと通常は更新されないことを想定
しているからである。つまり、更新されないということ
は、このアドレス再マッピング機構配下のアドレス範囲
をアクセスする論理アドレスはこのアドレス再マッピン
グ機構を通じて直ちに物理アドレスに変換され、変換ミ
スということは発生しない。従って、ミスしない代わり
にバスブリッジ12の内部資源に依存したエントリ数し
か持てないため、論理アドレスページの上限に限りがあ
る。
【0035】このアドレス再マッピング機構におけるハ
ードウェアの内部資源に依存した論理ページ数の上限
は、ミスしないことによる論理DMAアクセスにおける
性能上の利点の代償として、限られた数の論理アドレス
ページしか持てないことによるソフトウェア上のポータ
ビリティの劣化という欠点を持っている。しかしなが
ら、実際に想定されるシステムにおいては、DMA動作
は、プログラムに依存し、さまざまなI/Oアクセスが
並列的に、また非同期で動作しており、それに使用され
る分だけのアドレス再マッピングページを前もって確保
しておくことは難しいことと言わざるを得ない。
【0036】そこで、CPU1におけるTLBと同じよ
うにI/O−TLBというアドレス変換機構を併用す
る。このことによって、I/O−TLBのI/Oページ
テーブル3はシステムメモリ2上にあり、このページ上
に必要となる変換テーブルエントリ(PTEと呼ぶ)を
DMAの起動の前に用意しておく。そして、バスブリッ
ジ内でI/O−TLBミスしても自動的にシステムメモ
リ2内のI/Oページテーブル3から自動的に引いてく
るリフィル動作機能を持っていれば、I/O−TLB機
構におけるエントリ数の上限は事実上無いということが
言える。つまり、アドレス変換機構7では、アドレス再
マッピングのタグチェック(図3のステップ43)で範
囲外であった場合に、このI/O−TLB機構によるヒ
ットチェック(図3のステップ44)を行う。アドレス
変換機構7は、もしヒットならば論理アドレスから物理
アドレスへの変換を行って(図3のステップ46)、メ
モリバスをメモリバスI/F5経由で行う。
【0037】一方、もしミスならば、PTE更新・リフ
ィル制御部6は、アドレス変換機構7内に保持されてい
るシステムメモリ2上のI/Oページテーブル3のベー
スアドレスを示すレジスタに、論理アドレス部分のI/
Oページサイズに従ったビット数のオフセットアドレス
を、ミスとなったI/Oページテーブルエントリ(PT
E)をロードしてくる(図3のステップ48)。この詳
細なアドレス計算方法は後述する。
【0038】PTE更新・リフィル制御部6は、ロード
してきたPTEを、新規のエントリとして、ミスとなっ
た論理アドレスをタグにしつつ(図3のステップ5
0)、PTEの実体としての物理アドレスとして登録す
る(図3のステップ50)。この動作は一般的なキャッ
シュミスによるミスロードやタグの更新と同じ動作であ
る。なお、このときバスブリッジ12内部の資源には限
りがあるので、キャッシュやCPUのTLBと同じよう
に、エントリの追い出しが行われるのは言うまでもな
い。この追い出し並びに更新機能はPTE更新・リフィ
ル制御部6によって行われる。また、このエントリ数は
システムとしてのI/Oデバイスの構成や性能及びコス
トの点を考慮して決定されるものであり、本発明の範囲
外である。
【0039】図3の動作を再度順をおって説明する。ス
テップ41では、I/Oバスから論理アドレスでアクセ
スを開始する。ステップ42では、論理アドレスの範囲
をチェックする。ステップ43においては、アドレス再
マッピングのタグをチェックする。ステップ44では、
I/O−TLBのヒットチェックを行い、ヒットであれ
ばステップ46でI/O−TLBのリフィル動作とリフ
ィルアドレスを生成する。続いて、ステップ48ではミ
スしたPTEのロードアクセスを開始し、ステップ50
でミスしてロードしてきたPTEをセーブし内部テーブ
ルを更新する。ステップ51では、DMAデータの転送
を完了する。
【0040】一方、ステップ45では、論理アドレスー
物理アドレスの変換を行る。ステップ44でミスの場
合、ステップ47で論理アドレスー物理アドレスの変換
を行い、ステップ49でDMAデータの転送を完了す
る。
【0041】次に、実際の論理アドレス−物理アドレス
変換の実例を図4及び図5を参照しながら説明する。
【0042】図4(a)は、I/O−TLBによるアド
レス変換機構を使用した場合におけるアドレス変換の一
例である。ここで、I/Oバス13は32ビットのアド
レッシング空間(図4の61)を想定しており、1ペー
ジは8KBの仮想ページ番号(Virtual Pag
e Number 以下、VPNと呼ぶ)と仮定してい
る。従って、アドレスの上位19ビットがVPNであ
り、アドレスの下位13ビットはオフセットアドレスと
定義する。すなわち、上記19ビットのVPNがI/O
−TLBぺ一ジを表し、このI/O−TLBページとバ
スブリッジ12内のI/O−TLB−タブ(図1の8)
とが、論理アドレスヒット・ミスチェック部11で比較
されることになる。ここで、I/O−TLBのページサ
イズはソフトウェアのポータビリティを考慮すると、シ
ステムに使用されるCPUにおけるTLBサイズと同じ
サイズが使用されることが望ましい。
【0043】そして、比較された後で、ヒットであった
場合は、バスブリッジ12内に変換後の物理アドレスが
PTEとして図1の物理アドレス領域9に格納されてい
ることになる。なお、比較の時点でアドレスだけの比較
だけでなく、図4の66に示されるように、PTE情報
とともに、そのPTEが有効であるか、無効であるかを
示す有効ビットVが対になって格納されている。有効ビ
ットVが無効を示す場合にはミスと判定される。
【0044】次に、図4(b)を参照しながら、実際の
物理アドレスがどのように生成されるかを説明する。既
述のようにVPNの部分でヒットするタグアドレスとし
て物理アドレスを引く。この場合、アドレス変換後のオ
フセットアドレス(図4の62並びに図4の68)は物
理アドレスの下位アドレスとして保存され、変換の対象
にはならない。VPNで対応する物理アドレスを引いた
後で、VPNに相当する論理アドレスのビットの代わり
に、タグアドレスヒットで引けたPTEに置き換えて物
理アドレスを生成することになる。従って、同一ページ
内(すなわち同一PTE内)の下位アドレスの変換は無
く、論理アドレス一物理アドレス変換ではページ内アド
レスは論理アドレスから物理アドレスヘ平行写像される
ということになる。
【0045】一方、I/O−TLBミスヒットした場合
に、どのようにPTEリフィルアドレスを生成するのか
を図5を参照しながら説明する。論理DMAがアドレス
再マッピング機構の範囲外、すなわちI/O−TLB機
構のアドレス範囲内でI/O−TLBを引きに行く。こ
こでミスすると、バスブリッジ12内のPTE(物理ア
ドレス)はシステムメモリ2上のI/Oページテーブル
3の一部分のコピーであるから、このI/Oページテー
ブル3からミスしたPTEをリフィルしてくる動作を行
わなければならない。リフィルする場合にメモリバスの
どのアドレスから、このI/Oページテーブル3が始ま
っているのか、更にそのページテーブルのどこからミス
したPTEをリフィルしてくるのかをハードウェアとし
て演算の結果自動的に行える仕組みを持てば、ソフトウ
ェアからI/O−TLBにミスヒットを意識せずに効率
のよいプログラムを組むことができる。つまり、もしミ
スした場合にその都度ミスしたことをCPU1に知ら
せ、CPU1がメモリバス4に対して指示するような方
式では、論理DMA方式のソフトウェアに対するポータ
ビリティという利点が半減してしまうからである。
【0046】そこで、リフィル動作を自動的に行う方法
として図5を一例として説明する。図1のアドレス変換
機構7には、リフィルの際に必要となるI/Oページテ
ーブル3のベースアドレスを格納するレジスタ(図5の
81)が存在している。
【0047】このレジスタ自体は通常、オペレーティン
グシステムによって、システムの搭載メモリ量や接続デ
バイスの種類・総数などのシステム情報を元に、システ
ムの起動時に一度設定されるものである。I/O−TL
Bのページサイズが8KBの場合を想定すると、I/O
−TLBミスとなったVPN(図5の82)部分のビッ
ト10〜18とページテーブルベースアドレス(図5の
81)のビット0〜8の部分があうようにビットシフト
して加算されて、PTEのリフィルアドレスが生成され
る。つまり、ページテーブルアドレスはシステムメモリ
空間において8KB単位で(I/Oページサイズそのも
の)I/Oページテーブルがどこにあるかを示し、その
ベースアドレスを起点にして、VPN1ページにつき8
バイト単位でPTE(物理アドレスそのもの)が順番に
格納されていることになる。なお、ここに示したアドレ
スの計算方法は、システムの構成によって如何様にも定
義できるものであり、この計算方法自体は本発明の範囲
外である。
【0048】一方、アドレス再マッピングの場合の論理
アドレス−物理アドレス計算方法について一例として図
6を参照して説明する。
【0049】図6におけるI/O−TLBページサイズ
は16MBと想定している。このページを複数持つこと
によって複数のアドレス再マッピング機構で変換対象の
論理空間(16MB)を複数持つことができるが、いく
つ持つかは本発明の範囲外である。また、I/O−TL
Bの場合と同じく論理DMA空間は32ビットアドレッ
シングと仮定し、物理アドレス空間は36ビットアドレ
ッシングと仮定している。
【0050】図6(a)に示すように、論理アドレスの
うち上記8ビットをアドレス再マッピングページ番号
(図6の91、図6の95)と定義し、この部分とバス
ブリッジ内の再マッピングアドレスベース(図6の9
2)と比較することによって、その論理アドレスが再マ
ッピングページ内であるのか、あるいはそうではないの
かをアドレス比較部(図6の93)によって比較する。
もし、ヒット(すなわち再マッピングアドレス内の論理
アドレスであった)であった場合は、図6(b)を参照
して、後述するように物理アドレスを生成する。ミスで
あった場合には、図3のフローチヤートで示されるよう
に、I/O−TLBでヒットチェックが行われる。ここ
で、I/O−TLBの場合と同じく、その再マッピング
ページが有効か無効かを示すVビット(図6の94)に
よって最終的にヒット・ミスが決定される。
【0051】次に、図6(b)の物理アドレスの生成に
ついて説明する。I/O−TLBによる論理アドレス−
物理アドレス変換の場合と同じく、ページサイズ以下の
アドレスはオフセットアドレス(図6の97)としてそ
のまま物理アドレス空間ヘ写像される。一方、ページサ
イズ以上のアドレスはアドレス再マッピングセグメント
(図6の96)で置き換えられて物理アドレス(図6の
98)となる。
【0052】以上の説明によって明らかなように、本発
明のバスブリッジによれば、ソフトウェア上のポータビ
リティを確保しつつ、論理アドレス−物理アドレス変換
にともなうミス発生による性能低下によるシステムの影
響を最小限に抑えることが可能となる。
【0053】図7を参照しながら、第二の実施の形態に
ついて説明する。図7の実施の形態は、本発明の図1に
おける第一の実施の形態をもとに、更にシステムバスブ
リッジの論理DMAの性能を向上させたものである。特
に、第一の実施の形態との差異を中心に詳細に説明す
る。
【0054】図7において、CPU1は、第一の実施の
形態と同様にシステムメモリ2内に確保されているI/
Oページテーブル3を生成する。I/Oデバイスは第一
の実施の形態と同じく、プログラム的に指示された論理
アドレスで論理DMAを行う。そして、I/O−TLB
を使用する場合は、I/Oページテーブル3をシステム
ブリッジ12がミスのたびに引いてきて、物理アドレス
に変換してDMAを行なうということは、第一の実施の
形態とまったく同じである。
【0055】ここで、第二の実施の形態は、第一の実施
の形態と異なり、メモリバス4のスループット性能向上
のために、I/Oキャッシュを搭載したバスブリッジ1
2において、論理アドレス変換機構を適用し、論理DM
A性能も向上させている。I/Oキャッシュは、CPU
1におけるキャッシュと同じように、ライトバックプロ
トコルのメモリバス4上のシステムメモリ2のコピーを
バスブリッジ12に搭載することによって、I/Oデバ
イスからのDMAアクセスを一旦受け止め、メモリバス
4ヘキャッシュラインサイズ以下の短いDMA転送が出
てしまうことを抑止する。これによって、メモリバス4
の使用効率(単位時間あたりに転送できるバイト数)を
向上させ、メモリバス4のスループット性能を高めるこ
とを目的に搭載されるものである。つまり、メモリバス
4の使用効率は、メモリバス4に接続されるノ一ド間
で、同一キャッシュラインサイズで常にアクセスするよ
うに最適化すれば、この時最も使用効率が高くなること
が明白だからである。
【0056】また、DMAデバイスにとっても、キャッ
シュラインサイズの半分以下のDMAを行う場合、通
常、DMAはシーケンシャルアドレスで行われるから、
はじめのアクセスはI/Oキャッシュミスであっても、
2回目のアクセスがヒットするケースを期待できる。従
って、メモリバス4のスループット性能優先でI/Oキ
ヤッシュが導入されても、DMA性能が向上できる場合
も多く、ハイエンドのコンピュータサーバーシステムで
はI/Oキャッシュが導入されている場合がある。
【0057】ところが、I/Oキャッシュがほとんどミ
スとなってしまうケースがあり、この場合は、I/Oキ
ャッシュミスによってI/Oキャッシュリフィル動作が
起こり、このため転送性能の劣化が問題となることがあ
る。更に、本発明で提案された論理DMA機構を併用す
る場合、論理DMAアクセスがI/O−TLB機構で動
作していると、I/O−TLBミスとI/Oキャッシュ
ミスの両方が発生してしまうケースが想定され、このた
めのロスをいかに少なくできるかということが大きな課
題となる。
【0058】本発明の第二の実施の形態は、このように
論理アドレス変換機構を導入したバスブリッジにおい
て、メモリバスのスループット性能向上を第1の目的と
したI/Oキャッシュの導入の場合に、I/O−TLB
とI/Oキャッシュの連携動作機構によつて両者のミス
の発生によっても、DMA転送性能の劣化を低減させる
ことを目的としている。
【0059】図7を参照して更に詳細に説明する。I/
Oバス13からの論理アドレス(I/O−TLBによる
論理アドレス空間の場合)はI/Oバスプロトコルに従
って、メモリバスI/F10が論理アドレスをサンプリ
ング及び保持し、論理アドレスヒット・ミスチェック部
11で論理アドレスタグ8と比較してヒット及びミスし
ているかを判定する。この結果は、第一の実施の形態と
同じくアドレス変換機構7に渡されるが、第二の実施の
形態では、I/Oキャッシュミス予測部108にもこの
情報が伝えられる。アドレス変換機構7では、論理アド
レスヒット・ミスチェック部11でヒット判定された場
合は、物理アドレスデータ部9から物理アドレスを引い
てくる。もし、論理アドレスヒット・ミスチェック部1
1でミスと判定した場合は、第一の実施の形態と同様
に、システムメモリ2上のI/Oページテーブル3から
PTEをリフィルして物理アドレスを引いてきつつ、新
規のタグとしてのミスした論理アドレスを論理アドレス
タグ8に格納しつつ、またリフィルしてきたPTEを物
理アドレスデータ部9に格納する。
【0060】そのあと、今度は物理アドレスに変換され
たアドレスがバスブリッジ12内のI/Oキャッシュに
ヒットするかミスするかをI/Oキャッシュタグ104
と変換された物理アドレスとでI/Oキャッシュアドレ
ス比較部106にてチェックされる。もし、ここで、I
/Oキャッシュヒットとなった場合は、I/Oキャッシ
ュデータ部105からデータを供給し、I/Oデバイス
ヘ渡すことになる。しかし、I/Oキャッシュミスの場
合は、I/O−TLBミスの場合と同じくキャッシュリ
フィルが必要であり、システムメモリ2からデータをロ
ードしてくるとともに、I/Oキャッシュデータ部10
5にデータを格納する。
【0061】この動作でわかるように、論理アドレス−
物理アドレス変換機構でヒットし、かつI/Oキャッシ
ュでヒットすれば、論理アドレスによる利点を生かしな
がら、高速に変換でき、またI/Oキャッシュでさらに
ヒットすればI/Oデバイスからの要求に対して高速に
応答することが可能となる。
【0062】しかしながら、システムの動作状態やI/
Oバス13に接続されているI/Oデバイスの挙動や構
成によっては、論理アドレス−物理アドレス変換機構で
ミスヒットし、さらにI/Oキャッシュでミスヒットす
るというケースがあり得る。特に、I/Oデバイスのう
ち、通信系・マルチメディア系のデバイスのように、転
送スループット(一定時間内にどのくらいデータ転送で
きるか)よりも転送レイテンシ(転送要求してから、デ
ータが要求元に最初のデータを供給できるまでの時間)
によって性能の上限が抑えられてしまうという場合があ
る。この場合、論理アドレス−物理アドレス変換機構と
I/Oキヤッシュ機構の併用と他の接続デバイスの影響
によって、両機構のミスヒットを結果的に頻発させ、か
えって性能を落としてしまう場合もあり得る。
【0063】そこで、本発明の第二の実施の形態では、
論理アドレス−物理アドレ変換機構のミスとI/Oキ
ャッシュのミスの両者のミスの割合を内部のリソース
(エントリ数)を増やすことによって改善するのではな
く、論理アドレス−物理アドレス変換機構のミス情報か
ら、I/Oキャッシュ機構のミスを予測することによっ
てI/Oキャッシュミス率を改善しようとするものであ
る。
【0064】具体的にその予測機構を図8を参照しなが
ら説明する。論理アドレス−物理アドレス変換のうち、
I/O−TLBがミスヒットとなる(図8のステップ1
11)とI/O−TLBPTEのリフィル動作が起動
(図8のステップ112)され、システムメモリ2上の
I/Oページテーブル3からマッチするPTEをリフィ
ルしようとしてくる。I/O−TLBがミスするという
ことは、今まで使用されなかった新規のDMAが開始さ
れる場合と考えることができる。従って、新規のDMA
が開始されるのであるから、DMAのアドレスは、I/
O−TLB内においてシーケンシャルなアドレスであ
る、そして、物理アドレスに変換後I/Oキャッシュを
引きに行くが、この物理アドレスも新規なシーケンシャ
ルアドレスであると予想することができる。従って、I
/Oキャッシュにおいてもミスする可能性は非常に高い
と予測することは自然なことである。
【0065】更に、このTLBミスを契機に、ある一定
のデータ転送を行うまでは、シーケンシャルなアドレス
でDMA要求が発生することが予想される。従って、こ
のI/O−TLBミスを契機にして、この一番始めの物
理アドレスをスタートアドレスにして、一定のシーケン
シャルな物理アドレスで要求が発生する。既述のよう
に、I/O−TLBのページサイズはI/Oキヤッシュ
サイズよりもかなり大きいのであるから、I/O−TL
Bがミスし、かつその後I/Oキャッシュがミスであれ
ば、かなりの確度で一連のDMAの始まりであり、I/
Oキャッシュミスしたキャッシュラインの次のアドレス
ラインもDMA要求されるという予測方式が十分成り立
つ。
【0066】この予測方式を使用したものが第二の実施
の形態である。これは端的に言えば、最初のI/O−T
LBミス、かつI/Oキヤッシュミスを契機にして2つ
分のキャッシュラインをロードしてしまう方式である。
ここで注意しなければならないのは、2ライン分をロー
ドするためにはI/Oキャッシュラインを二つ分確保し
なければならないという点である。この二つのタグ属性
がダーティーであると、この2ライン分のキャッシュの
追い出しのためのライトバックが発生してしまい、かえ
って転送のロスが発生する場合がある。従って、このロ
スを抑えるために、追い出しポインタがダーティーライ
ンであった場合には予測のためのプリロードを実行しな
いで、通常通りI/Oキャッシュミスのロードだけを実
行する(図8のステップ113、114、117、11
9、121)。
【0067】しかし、ダーティーではなく、かつ予測の
ためのプリロードしようとするアドレスがI/Oキャッ
シュタグに無かった場合は(図8のステップ114、1
15)プリロードを実行し(図8のステップ116、1
18、120)、プリロードアドレスでDMA要求がな
された場合に、I/Oキャッシュとなるように制御する
ことができる。
【0068】以上の動作を順をおって再度説明すると、
図8のステップ111でI/O−TLBミスが発生する
と、ステップ112ではI/O−TLBリフィル動作を
開始する。ステップ113では、リフィルPTEを格納
しつつI/OキャッシュのLRUをチェックし、ステッ
プ114では、I/Oキャッシュの追い出し対象タグの
属性をチェックする。タグがダーティーであれば、ステ
ップ115においてリフィルしたアドレスの次のライン
アドレスがI/Oキャッシュに存在しているかチェック
し、ステップ116では、I/O−TLBミスアドレス
でI/Oキャッシュのヒットチェックを行う。続いて、
ステップ118では、リフィルしたアドレスの次のライ
ンアドレスでプリロードを実行し、ステップ119でI
/O−TLBミスしたアドレスとその次のキャッシュラ
インアドレスで連続してロードを実行する。
【0069】一方、ステップ117では、I/O−TL
BミスアドレスでI/Oキヤッシュのヒットチェックを
行い、ステップ119でI/OデバイスヘDMAデータ
を供給する。更に、ステップ121では、I/O−TL
BミスしたI/Oキャッシュラインアドレスでロードを
実行する。
【0070】次に、本発明の第三の実施の形態について
説明する。第三の実施の形態の構成に関しては、第一の
実施の形態と同じバスブリッジの構成を有していると考
えてよい。動作的に異なるのは、I/O−TLBミスと
なる論理アドレスのリフィル動作において、リフィルし
たPTEのセーブに関して、実際にミスしたPTEだけ
でなく、複数のPTEを同時にセットしておき、後続の
論理アドレスで使用されるTLBエントリをあらかじめ
用意しておくという制御をPTE更新・リフィル制御部
(図1の6)に行わせることである。これによって、連
続したI/O−TLBページサイズを越え、複数ページ
を使用して転送する論理DMAにおいて、DMAページ
の切れ目でミスが発生しなくなるため、スループット性
能が重要なデバイスの転送性能を保つことができるよう
になる。
【0071】第三の実施の形態を図9を参照して更に詳
細に説明する。I/O−TLBを使用する論理DMA
で、I/O−TLBがミスする(図9の131)と、ミ
スしたPTEをリフィルする動作が行われる(図9の1
32)。このリフィルは通常のリードとみかけ上はまっ
たく同じ(図9の133)で、このリードデータサイズ
は、キャッシュサイズ単位で行われると仮定し、このサ
イズを64Bと仮定する。従って、PTEリフィルはP
TEのサイズにもよるが、通常、アドレス情報とその属
性情報だけを含むだけなので、1PTEサイズは8バイ
ト程度と仮定すれば十分である。スループット重視のメ
モリバスにおいては、I/Oデバイス等から比較的短い
バイト数の転送をメモリバス上に出してしまうことによ
るメモリバスのスループット性能の低下を回避するため
に、第二の実施の形態で示したようなI/Oキャッシュ
を導入することが多い。この第三の実施の形態ではこれ
については言及しないが、メモリバスはキャッシュライ
ンサイズ(この場合はCPUのキヤッシュラインサイズ
としてもよい)でアクセスすることを前提条件としてい
るため、8バイト程度のPTEリフィルでもそれに付随
する余計なデータを持ってくることがある。実際は、こ
の余計なデータは、I/Oページテーブルから持ってく
るため、他の論理アドレスに対するPTEであることが
多いが、第一の実施の形態に見られるように、実際にミ
スしたPTEしか使用されないことが普通といってもよ
い。
【0072】そこで、実際にミスしてリフィルしたPT
Eの他に余分にデータを持ってきているのであるから、
このデータを実際にPTEとして使用するようにソフト
ウェア上でI/Oページテーブルを用意できれば、I/
O−TLBによる論理DMA方式でもTLBミスの確率
を減らすことが可能となる。このために、I/Oぺージ
テーブル中の属性で、従来の有効ビット(Vビット)以
外に、図10に示すように、マルチリフィルビット(M
ビット)を用意する。リフィルしてきたPTE属性でこ
のMビットをチェックし(図9のステップ134)、こ
れが有効であった場合には、同時にリフィルしたPTE
をもあわせて内部に保持する(図9のステップ13
5)。この時、オペレーティングシステムやドライバソ
フトなどでI/Oページテーブルを用意するとき、I/
Oページテーブルの並びは、Mビットが連続有効になっ
ている並びの間は、論理アドレスのように連続した並び
になるようにしておく。このようにしておくと、ミスし
たPTEを基点にして後続のエントリでMビットがつい
ている場合は、論理アドレスのように連続したI/O−
TLBページになるようにできる。また、内部に保持す
るときにも、このMビットもあわせて保存しておく(図
9のステップ137)。
【0073】このあと、リフィルしてきたPTEを使用
して論理アドレス一物理アドレス変換を行い論理DMA
アクセスを終える(図9のステップ139)。次のDM
AでTLBミスが発生し、TLBの更新のため、追い出
し対象のタグの属性がMビット有効であるかどうかのチ
ェックを行う(図9のステップ140)。もしここで、
追い出し対象のTLBタグがMビット有効であつた場合
には、実際にTLBミスしたタグのみをセーブし、同時
にリフィルしてきてMビット属性が有効なタグはセーブ
しないようにする(図9のステップ142)。
【0074】なぜならば、リフィルによる追い出し対象
のTLBタグでMビット有効になっている場合、このタ
グは連続したページの一つとして使用されるためにセー
ブされたものである。そして、追い出し対象の属性がM
ビットであった場合、この追い出しに加えて、同時にリ
フィルしてきたPTEをセーブしてしまうと、更にもう
一つのTLBタグを更新してしまう可能性がある。もし
更新してしまうと、追い出しと更新で2個以上のTLB
タグがバスブリッジ内から一旦無くなってしまうことに
なる。そして、複数のI/Oデバイスが同時に動作して
いる場合、お互いのTLBエントリをこのマルチリフィ
ルによって食い合ってしまい、結果的にTLBミスの確
率を増大させてしまうおそれがある。つまり、Mビット
が有効であっても、追い出し対象がMビットになってい
る場合は、実際にミスしたPTEのみを保持するように
し、TLBエントリに対する、このようなスラッシング
の確率を減らすようにすることで、マルチリフィルの効
果を減じさせないようにすることができる。
【0075】なお、もし追い出し対象がMビット有効で
なかった場合は、追い出しアルゴリズムをLRUなど有
効な更新アルゴリズムを採用していれば、追い出し対象
のTLBエントリは、その意味として、1ページ分の論
理DMAが一番使用頻度が低いことを表していることに
なる。言い換えれば、最近は使用されていないというこ
とは、そのページを使用したDMAは終わったとも判断
できる。それ故、リフィル対象のPTEだけでなく同時
にロードしてきたPTEもあわせて次の追い出し対象の
エントリ部分にセットするようにする(図9のステップ
141)。
【0076】以上の動作を順をおって再度説明する。ス
テップ131では、パワーオンリセット後、I/O−T
LBミスが発生する。すると、ステップ132では、I
/O−TLBミスによるPTEリフィル動作を開始す
る。次に、ステップ133では、リフィルしたPTEを
含むテーブルデータをロードする。ステップ134で
は、ロードしてきたPTEの属性フィールドでMビット
が有効になっているかのチェックを行い、有効であれば
ステップ135でTLBミスしたPTEとともに同時に
ロードしてきたPTEをセットする。続いて、ステップ
137では、TLBミスして一括ロードしてきたPTE
エントリ群を対応する論理アドレスとしてタグに登録し
つつ、Mビット情報もあわせて保存する。ステップ13
9においては、論理アドレス一物理アドレス変換を行っ
た後、DMAアクセスを行い、ステップ140で後続の
DMAでTLBミスとなり、かつ追い出し対象がMビッ
ト有効かどうかをチェックする。Mビットが有効であれ
ば、ステップ140では、TLBのミスタグのみを保存
する。Mビットが無効であれば、ステップ141におい
て、TLBのミスタグと同時にロードしてきたPTEも
保存する。
【0077】一方、ステップ134においてMビットが
有効でなければ、ステップ136ではミスしたPTEの
みをセーブする。続いて、ステップ138では、論理ア
ドレス一物理アドレス変換を行った後、DMAアクセス
を行う。
【0078】なお、本発明においては、同時にセットす
るべきPTEエントリは、Mビットがついているからと
いって、いくらでもセットできるわけではない。すなわ
ち、同時にセットするべきPTEエントリは、メモリバ
スに内蔵されているTLBエントリの資源数やI/Oバ
スに接続されたデバイスの数や特性によって可変となる
パラメータであって、本発明の範囲外であることは言う
までもない。また、更新アルゴリズムに関しても同様に
本発明の範囲外である。
【0079】次に、第四の実施の形態を図11を参照し
ながら説明する。第四の実施の形態は、第一の実施の形
態の構成を基にして、DMA要求の時間的間隔は比較的
長いが、即時性を要求されるレイテンシ型デバイスの即
時性能(レイテンシ性能)を確保することを目指した構
成になっている。このメモリバスにおいて特徴的なこと
は、I/Oバスアービタ14を有していることである。
メモリバスの一般的な構成から言えば、I/Oバスアー
ビタ14を有していることは特殊なことではない。
【0080】本第四の実施の形態において、このI/O
バスアービタ14を持つことによって、どのI/Oデバ
イスが現在DMAを実行しているのかという情報をデバ
イス単位に持つリクエスト要求線REQ、リクエスト許
可線GNTを使用して特定することができる。このた
め、レイテンシ型デバイスのためにI/O−TLB資源
をあらかじめ別管理しておくことができる。この別管理
の方法に関しては、種々の方法があり、デバイス単位に
どのようにI/O−TLBと割り付けるのかについて
は、本発明の範囲外である。しかしながら、このような
方式によれば、スループット型デバイスの影響を受けず
にレイテンシ型デバイスのI/O−TLBが常に確保さ
れていることになるため、必要以上にI/O−TLBミ
スが発生することが無くなる。
【0081】
【発明の効果】第一の効果は、論理DMA機構を採用す
るとともに、2つの異なる論理アドレス一物理アドレス
変換機構を論理アドレス空間のエリアによって簡単に使
い分けることができるため、I/Oデバイスのアドレッ
シング制限に関らず、DMA転送ができるだけでなく、
高速なアドレス変換とソフトウェア上での柔軟性・統一
性を図ることができるということである。これによっ
て、DMA転送において柔軟なDMAアドレス空間の管
理を可能としつつ、高速なアドレス変換が可能となるた
め、アドレス変換に伴う転送性能の劣化を大幅に低減す
ることが可能となる。その理由は、I/O−TLBによ
る論理DMA機構の他にアドレス再マッピング機構を併
用し、論理空間のアクセス範囲によって容易に使い分け
ることができるからである。
【0082】第二の効果は、上記第一の効果を有する論
理DMA機構を採用するとともに、I/Oキャッシュ機
構を併用し、両者が別個に動作するのではなく、両者が
連携して動作する機構を導入したことによって、I/O
−TLBミスとI/Oキャッシュミスの同時発生による
転送性能への影響を大幅に抑えることができるというこ
とである。これによって、論理DMA機構によるDMA
アドレスの柔軟な管理を可能としつつ、I/Oキャッシ
ュヒットによる論理DMA転送の高速性を保ちながら、
I/O−TLBミスとI/Oキャッシュミスヒットの同
時発生を原因とする性能劣化を極力抑えることが可能に
なる。その理由は、I/O−TLBミス時にI/Oキャ
ッシュのミスを予測する機構を導入することにより、連
続してI/Oキャッシュミスを発生する確率を低減させ
ることができるためである。
【0083】第三の効果は、第三の実施の形態の説明に
おいて明らかなように、I/O−TLBにより複数のP
TEをリフィルし、このなかにMビットを新設すること
によって複数の論理ページを使用して論理DMAを行う
I/Oデバイスのスループット性能を確保することがで
きるという点にある。その理由は、I/O−TLBの属
性にMビットという属性を定義し、これが有効な場合
は、複数の論理ページをつなげて論理DMAを行うこと
を示唆するために、あらかじめ連続した論理ページのP
TEを通常の1回分のTLBミスによってロードして備
えることができるためである。
【0084】第四の効果は、第四の実施の形態の説明に
おいて明らかなように、レイテンシ型デバイスとスルー
プット型デバイスが混在しても、スループット型デバイ
スにI/O−TLBエントリを占有されることがなくな
るため、レイテンシ型デバイスのDMAアクセスの即時
性を保証しやすいという効果がある。その理由は、バス
ブリッジにおいてI/Oバスアービタを備えることによ
つて、現在実行中のDMAデバイスを特定し、他のデバ
イスによってI/O一TLBが占有されないように別管
理することによって、I/O−TLBがデバイスの特性
に影響されず確保されている方式を持つことによる。
【図面の簡単な説明】
【図1】本発明の第一、第三の実施の形態の構成を示し
た図である。
【図2】本発明における論理DMA空間と物理DMA空
間の関係の一例を示す図である。
【図3】本発明における論理アドレス−物理アドレス変
換フローの一例を示した図である。
【図4】本発明におけるI/O−TLB機構による論理
アドレスから物理アドレスを生成する例を示した図であ
る。
【図5】本発明におけるI/O−TLB機構においてミ
スした場合のリフィルアドレス生成方法の一例を示した
図である。
【図6】本発明におけるアドレス再マッピング機構によ
る論理アドレスから物理アドレスを生成する一例を示し
た図である。
【図7】本発明における第二の実施の形態の構成を示し
た図である。
【図8】第二の実施の形態におけるI/Oキャッシュミ
ス予測機構を説明する動作フロー図である。
【図9】本発明における第三の実施の形態の動作を説明
するためのフローチャート図である。
【図10】第三の実施の形態におけるI/Oページテー
ブルの構成の一例を示した図である。
【図11】本発明における第四の実施の形態の構成を示
した図である。
【符号の説明】
1 CPU 2 システムメモリ 3 I/Oページテーブル 4 メモリバス 5 メモリバスI/F 6 PTE更新・リフィル制御部 7 アドレス変換機構 8 論理アドレスタグ部 9 物理アドレスデータ部 10 I/OバスI/F 11 論理アドレスヒット・ミスチェック部 12 バスブリッジ 13 I/Oバス 14 I/Oバスアービタ
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平6−187286(JP,A) 特開 平7−281947(JP,A) 特開 昭60−89266(JP,A) 特開 平8−227383(JP,A) 特開 平8−335188(JP,A) 特開 平9−91199(JP,A) 特開 平5−88891(JP,A) 特開 平5−143456(JP,A) (58)調査した分野(Int.Cl.7,DB名) G06F 12/02,12/10,13/14 G06F 13/36,15/163

Claims (4)

    (57)【特許請求の範囲】
  1. 【請求項1】 メモリバスとI/Oバスを相互に接続す
    るためのバスブリッジにおいて、前記I/Oバスから前
    記メモリバスへの転送アドレスは論理アドレスであり、
    バスブリッジを経由した後の前記メモリバスへのアクセ
    スアドレスを物理アドレスとして変換するアドレス変換
    機構を有し、該アドレス変換機構はI/Oデバイスによ
    るメモリアクセスの論理アドレスがアドレス再マッピン
    グ空間、I/O−TLB空間のいずれに相当するかに応
    じて、複数の変換方式を使い分けてアドレス変換するこ
    とを可能とするバスブリッジ。
  2. 【請求項2】 請求項1記載のバスブリッジにおいて、
    内部にメモリバス上のメモリデータのコピーとそのコヒ
    ーレンシー制御機能を有するI/Oキャッシュ機構を有
    し、該I/Oキャッシュ機構と前記アドレス変換機構が
    相互に連携し、前記I/Oキャッシュのヒット率を向上
    させるべく前記I/Oデバイスから前記メモリバスへの
    転送アドレスを予測し、前もって必要なメモリデータを
    保持する機構を有するバスブリッジ。
  3. 【請求項3】 請求項1記載のバスブリッジにおいて、
    ブリッジ内のアドレス変換テーブルのミスにともなう変
    換テーブルのメモリ上のアドレス変換テーブル本体から
    ミスエントリを引くためのリフィル処理において、ミス
    した変換テーブルエントリのみをリフィルするだけでな
    く、予測機構によってミスしたアドレス変換テーブルエ
    ントリ以外の変換テーブルエントリを同時にリフィルす
    る機構を有するバスブリッジ。
  4. 【請求項4】 請求項1記載のバスブリッジにおいて、
    前記I/Oデバイスからの論理アドレスを物理アドレス
    へ変換するアドレス変換機構で、このアドレス変換機構
    用の内部アドレス変換テーブルの更新方法に関して、転
    送レートの異なるデバイスが接続された場合でも、転送
    レートの高いデバイスによるミスアクセスが集中しても
    すべてのアドレス変換テーブルエントリがこのデバイス
    によって占有されないようにすることによって、転送レ
    ートの低いデバイスが、転送レートの高いデバイスと混
    在しても、一定のヒット率を確保することができるよう
    に構成したことを特徴とするバスブリッジ。
JP17418797A 1997-06-30 1997-06-30 バスブリッジ Expired - Fee Related JP3264319B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP17418797A JP3264319B2 (ja) 1997-06-30 1997-06-30 バスブリッジ
US09/106,207 US6128684A (en) 1997-06-30 1998-06-29 Bus bridge

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP17418797A JP3264319B2 (ja) 1997-06-30 1997-06-30 バスブリッジ

Publications (2)

Publication Number Publication Date
JPH1125033A JPH1125033A (ja) 1999-01-29
JP3264319B2 true JP3264319B2 (ja) 2002-03-11

Family

ID=15974250

Family Applications (1)

Application Number Title Priority Date Filing Date
JP17418797A Expired - Fee Related JP3264319B2 (ja) 1997-06-30 1997-06-30 バスブリッジ

Country Status (2)

Country Link
US (1) US6128684A (ja)
JP (1) JP3264319B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6333929B1 (en) * 1997-08-29 2001-12-25 Intel Corporation Packet format for a distributed system
US6367030B1 (en) * 1997-10-09 2002-04-02 Matsushita Electric Industrial Co., Ltd. Address conversion circuit and address conversion system with redundancy decision circuitry
US7007126B2 (en) * 1998-02-13 2006-02-28 Intel Corporation Accessing a primary bus messaging unit from a secondary bus through a PCI bridge
US6574682B1 (en) * 1999-11-23 2003-06-03 Zilog, Inc. Data flow enhancement for processor architectures with cache
US6633967B1 (en) * 2000-08-31 2003-10-14 Hewlett-Packard Development Company, L.P. Coherent translation look-aside buffer
US6804741B2 (en) * 2002-01-16 2004-10-12 Hewlett-Packard Development Company, L.P. Coherent memory mapping tables for host I/O bridge
US6931471B2 (en) * 2002-04-04 2005-08-16 International Business Machines Corporation Method, apparatus, and computer program product for migrating data subject to access by input/output devices
US7178139B2 (en) * 2002-08-27 2007-02-13 Delphi Technologies, Inc. Executable file system for an embedded computer
US20040193771A1 (en) * 2003-03-31 2004-09-30 Ebner Sharon M. Method, apparatus, and system for processing a plurality of outstanding data requests
JP2006072473A (ja) * 2004-08-31 2006-03-16 Fuji Xerox Co Ltd データ転送方法および装置
US8706942B2 (en) * 2004-12-29 2014-04-22 Intel Corporation Direct memory access (DMA) address translation between peer-to-peer input/output (I/O) devices
US20060190655A1 (en) * 2005-02-24 2006-08-24 International Business Machines Corporation Apparatus and method for transaction tag mapping between bus domains
US7469312B2 (en) * 2005-02-24 2008-12-23 International Business Machines Corporation Computer system bus bridge
US20060288130A1 (en) * 2005-06-21 2006-12-21 Rajesh Madukkarumukumana Address window support for direct memory access translation
US7673116B2 (en) * 2006-01-17 2010-03-02 Advanced Micro Devices, Inc. Input/output memory management unit that implements memory attributes based on translation data
US7426627B2 (en) * 2006-03-10 2008-09-16 Microsoft Corporation Selective address translation for a resource such as a hardware device
CN101326501B (zh) * 2006-04-06 2010-12-15 索尼株式会社 电桥、处理器单元、信息处理装置以及存取控制方法
US7873770B2 (en) * 2006-11-13 2011-01-18 Globalfoundries Inc. Filtering and remapping interrupts
US7849287B2 (en) * 2006-11-13 2010-12-07 Advanced Micro Devices, Inc. Efficiently controlling special memory mapped system accesses
KR101612922B1 (ko) * 2009-06-09 2016-04-15 삼성전자주식회사 메모리 시스템 및 메모리 시스템 관리 방법
JP2011018182A (ja) * 2009-07-08 2011-01-27 Panasonic Corp アドレス変換装置
US20120254552A1 (en) * 2011-03-30 2012-10-04 Arm Limited Memory access remapping
US8631212B2 (en) 2011-09-25 2014-01-14 Advanced Micro Devices, Inc. Input/output memory management unit with protection mode for preventing memory access by I/O devices
US20160062911A1 (en) * 2014-08-27 2016-03-03 Advanced Micro Devices, Inc. Routing direct memory access requests in a virtualized computing environment
TWI514148B (zh) * 2015-03-16 2015-12-21 Univ Nat Sun Yat Sen 快取記憶體
US11321240B2 (en) * 2018-06-08 2022-05-03 International Business Machines Corporation MMIO addressing using a translation lookaside buffer
US10929302B2 (en) 2018-06-08 2021-02-23 International Business Machines Corporation MMIO addressing using a translation table
US11288435B1 (en) * 2020-11-13 2022-03-29 Renesas Electronics Corporation Failure analysis apparatus, computer readable recording medium and failure analysis method

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4442502A (en) * 1981-03-30 1984-04-10 Datapoint Corporation Digital information switching system
JPS6089266A (ja) * 1983-10-20 1985-05-20 Nec Corp デ−タ転送方式
JPH0588891A (ja) * 1991-09-30 1993-04-09 Toshiba Corp キヤツシユメモリ制御装置
US5634027A (en) * 1991-11-20 1997-05-27 Kabushiki Kaisha Toshiba Cache memory system for multiple processors with collectively arranged cache tag memories
JP2868654B2 (ja) * 1991-11-20 1999-03-10 株式会社東芝 キャッシュメモリ制御方法
US5392410A (en) * 1992-04-30 1995-02-21 International Business Machines Corporation History table for prediction of virtual address translation for cache access
JPH0689257A (ja) * 1992-09-08 1994-03-29 Fuji Xerox Co Ltd バスブリッジの調停装置
JPH06187286A (ja) * 1992-12-15 1994-07-08 Hitachi Ltd バス変換アダプタ
US5479627A (en) * 1993-09-08 1995-12-26 Sun Microsystems, Inc. Virtual address to physical address translation cache that supports multiple page sizes
MY112118A (en) * 1993-12-23 2001-04-30 Hitachi Global Storage Tech Netherlands B V System and method for skip-sector mapping in a data recording disk drive.
EP0674269B1 (en) * 1994-03-24 2001-12-19 Hewlett-Packard Company, A Delaware Corporation Translation mechanism for input/output addresses
JPH08227383A (ja) * 1995-02-20 1996-09-03 Fujitsu Ltd 仮想アドレス計算機
JPH08314850A (ja) * 1995-05-17 1996-11-29 Toshiba Corp 計算機システムのバスブリッジ
JPH08335188A (ja) * 1995-06-08 1996-12-17 Hitachi Ltd ソフトウェア制御可能なキャッシュメモリ装置
WO1997000480A1 (en) * 1995-06-15 1997-01-03 Intel Corporation Architecture for an i/o processor that integrates a pci to pci bridge
JP3709586B2 (ja) * 1995-09-28 2005-10-26 マツダ株式会社 階層記憶システムにおけるデバイスアクセス方法
US5913045A (en) * 1995-12-20 1999-06-15 Intel Corporation Programmable PCI interrupt routing mechanism
US5889970A (en) * 1997-05-09 1999-03-30 Compaq Computer Corp. Dual purpose apparatus, method and system for accelerated graphics port and peripheral component interconnect
US5933626A (en) * 1997-06-12 1999-08-03 Advanced Micro Devices, Inc. Apparatus and method for tracing microprocessor instructions

Also Published As

Publication number Publication date
US6128684A (en) 2000-10-03
JPH1125033A (ja) 1999-01-29

Similar Documents

Publication Publication Date Title
JP3264319B2 (ja) バスブリッジ
US6795897B2 (en) Selective memory controller access path for directory caching
US7363462B2 (en) Performing virtual to global address translation in processing subsystem
US8495301B1 (en) System and method for scatter gather cache processing
US7765381B2 (en) Multi-node system in which home memory subsystem stores global to local address translation information for replicating nodes
US8250254B2 (en) Offloading input/output (I/O) virtualization operations to a processor
US6542968B1 (en) System and method for managing data in an I/O cache
JP3281893B2 (ja) キャッシュ・メモリ階層内で利用するキャッシュ・コヒーレンシ機構を実施するための方法およびシステム
US8037281B2 (en) Miss-under-miss processing and cache flushing
JPH09259036A (ja) ライトバックキャッシュおよびライトバックキャッシュ内で整合性を維持する方法
US20040117587A1 (en) Hardware managed virtual-to-physical address translation mechanism
US20110161597A1 (en) Combined Memory Including a Logical Partition in a Storage Memory Accessed Through an IO Controller
JP2000250813A (ja) I/oキャッシュ・メモリにおけるデータ管理方法
JPH11167524A (ja) コンピュータ・システム
JP2001515244A (ja) スケーリング可能な共用メモリ・マルチプロセッサ・システム
JP2000250812A (ja) メモリ・キャッシュ・システムおよびその管理方法
JP2006277762A (ja) 分散共有メモリマルチプロセッサシステムのための分割疎ディレクトリ
US7197605B2 (en) Allocating cache lines
JPH0997214A (ja) 補助プロセッサのためのアドレス変換を含む情報処理システム
US11341042B2 (en) Storage apparatus configured to manage a conversion table according to a request from a host
US7093080B2 (en) Method and apparatus for coherent memory structure of heterogeneous processor systems
US7360056B2 (en) Multi-node system in which global address generated by processing subsystem includes global to local translation information
JPH11288386A (ja) コンピュータシステム
US20040117591A1 (en) Data processing system having no system memory
US20040117590A1 (en) Aliasing support for a data processing system having no system memory

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20011128

LAPS Cancellation because of no payment of annual fees