FC2カウンター FPGAの部屋 PCI-Xのスプリット完了(1Kbyte)
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

PCI-Xのスプリット完了(1Kbyte)

昨日は、ホストパソコンのメモリ1Kbyteをバースト・リード (マスタ・アクセスでPCI-X Memory Read Block) してみた。今まで同様に、スプリット応答(TAG番号0)が返ってくる。スプリット完了トランザクションでデータが帰ってくる前、または途中で、次の1Kbyteのバースト・リードコマンドを発行して、スプリット応答(TAG番号1)で返された場合、512byteごとに分割されて転送されてしまった。
TAG番号0のリードデータが、最初のスプリット完了トランザクションでターゲット・ライトされるが、512byte転送したところで、次のTAG番号1のリードデータのスプリット完了トランザクションが始まってしまう。TAG番号1のリードデータのスプリット完了トランザクションが512byte分終了したところで、次に、TAG番号0のリードデータの残りの512byteが転送された。
pcix_split_tarns_1Kbyte_070828.png

上図のXカーソルのトランザクションはTAG番号1だが、その後ろのOカーソルのトランザクションはTAG番号0。
このチップセットでは、512byteごとに、順番が入れ替わってしまう可能性があるため、512byteごとにリードしないとだめなようだ。
PCI-Xの仕様書を見ると、複数スプリット応答していると、帰す順番は任意だと書いてある。順番を守る必要があるならば、一度スプリット完了のトランザクションが終わってから、リードを発行しろ、と書いてある。

覚書
BIOSがPCI-Xコマンド・レジスタに書き込んでいるか? No.
BIOSがPCI-Xコマンド・レジスタを読み出しているか? No. (PCI-X Capability ID(0x07)とNext Capability(0x00, 終了)のみリード)
BIOSがPCI-Xステータス・レジスタを読み出しているか? Yes.
  1. 2007年08月29日 05:12 |
  2. PCI
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/561-037d744c
この記事にトラックバックする(FC2ブログユーザー)