今日は仕事用のPCI-Xモジュールについて、ちょっとだけ書こうと思う。(あまり書くとまずいので。。。)
最初にホストのパーソナル・コンピュータ(PC)からPCI-Xボードのリソースにアクセスする機能をターゲット機能、逆にPCI-Xボードがパーソナル・コンピュータ(PC)のリソースにアクセスする機能をマスタ機能と呼ぶことにする。
PCI-Xの規格ではターゲット機能を使用して、ホストPCからPCI-XボードのSDRAMのデータをリードしようとするときに、PCI-Xボードがデータを用意できるならば、トランザクションが始まってから16クロック以内にデータを出力する必要がある。なお、すぐにリードするデータを返せない場合は8クロック以内に応答を返す必要がある。これはリトライやスプリット応答などが相当する。
ここでリトライとスプリット応答について説明すると、リトライはPCIの時代からあるもので、”後でもう一度アクセスしてね。。。”とマスタ(PCI-Xではイニシエータ)にお願いするもの、スプリット応答は”今はリード・データが用意できないけど、データが用意できたら、こちらからそちらにデータを送ります。(書き込みます、これがスプリット完了)”というものだ。
133MHz動作で16クロック以内にデータを用意できる (PCI-Xの仕様) 確証が無いため、トランザクションが始まってから8クロック以内にスプリット応答を返して(これもPCI-Xの仕様)、後からスプリット完了でリードするはずのデータをホストPCに送ることにした。ただし、コンフィギュレーション・アクセスは間に合うので通常にリードする。
そうなると、スプリット応答したトランザクションのテーブルが必要になる。後で、データが用意できたら、ターゲット・リードではあるが、マスタ機能を使用して、リード・データをホストPCに送る(これはいわばマスタ・ライト)。つまり、ターゲットのアクセスではあるが、マスタの機能を使用する。
PCI-Xボードがマスタ機能を使用して、ホストPCのリソースをリードする場合も、ホストPCからスプリット応答を返されることが多い。その場合は、ホストPCのリード・データはスプリット完了として、PCI-Xボードへのターゲット・ライトとして実行される。
スプリット完了の場合は、コマンドやアドレス、アトリビュートがスプリット完了専用になる。このように、PCIで機能わけされたモジュール(ターゲット、マスタ)はたすきがけで使用される。
下にPCI-Xモジュールのブロック図を示す。こんな感じになっている。PCI-Xモジュールの外部へはクロックが異なるので、非同期FIFOを使用する。

結構、PCI-Xも大変なものだ。スプリット応答したテーブルを参照しなくちゃいけないし。。。
- 2008年04月18日 06:56 |
- PCI
-
| トラックバック:0
-
| コメント:0