C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: PCI Express の最小転送単位(量)は


(過去ログ 124 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■73980 / inTopicNo.1)  PCI Express の最小転送単位(量)は
  
□投稿者/ WATANABE (1回)-(2014/11/19(Wed) 14:46:28)

分類:[ハードウェア全般] 


PCIetって最小転送単位はあるのでしょうか。
つまり、
例えば1000Bytesを最小転送量として、100Bytes送ろうと、200Bytes送ろうと転送時間は同じ。

というような説はありますか。


引用返信 編集キー/
■73986 / inTopicNo.2)  Re[1]: PCI Express の最小転送単位(量)は
□投稿者/ shu (631回)-(2014/11/20(Thu) 09:16:15)
No73980 (WATANABE さん) に返信
>
> PCIetって最小転送単位はあるのでしょうか。
> つまり、
> 例えば1000Bytesを最小転送量として、100Bytes送ろうと、200Bytes送ろうと転送時間は同じ。
>
> というような説はありますか。
>
>

http://www.paltek.co.jp/solution/technology/pciex/PCIExpress.htm
ここの情報から多分PCIExpressのバス自体は1bit単位なのでそういうことはないと思います。
ただハード的にどう制御するかで変わってくるのではないでしょうか?
引用返信 編集キー/
■74001 / inTopicNo.3)  Re[2]: PCI Express の最小転送単位(量)は
□投稿者/ yoh2 (3回)-(2014/11/20(Thu) 20:47:57)
ちょいと PCE Express (3.0) の仕様を読む機会があったので。

究極的にはデバイス次第ではあるわけですが、プロトコル上参考になりそうな
あたりをざくざくと列挙。

1. プロトコルはトランザクション層、データリンク層、物理層の3層に分かれている。
2. トランザクション層に乗るデータサイズは4バイト単位。
3. トランザクション層で指定できるデータサイズは4096バイト。
4. ただし max payload size というパラメータがあって、この指定によっては4096バイト未満でなければならない場合がある。
5. データリンク層のあれこれは今回の議論にあまり関係なし。
6. 物理層では各バイトが1バイトずつ各レーンに振り分けられる。

2を見る限りだと4バイト (それ以下の単位の指定はできるのか、
さらに上位で何とかするのかまでは調べられてません) となるわけ
だけど、6を考えると、レーン数が多ければ8バイトとか12バイトとか
にもなりそうな気配 (トランザクション層とデータリンク層で付く
ヘッダサイズはいくつだっけ……)。

ただ、こんな小さなサイズに分けてしまうとオーバーヘッドが大きくて非効率。
3、4を考慮すると、max payload size 単位で送るのが最も効率がよく
なることが多いんじゃないかな。
# 元質問者さんの本当に聞きたかった内容は、最も効率よく転送できる最小
# サイズじゃないかなと思ったり。

重ねて言いますが、最終的にはデバイス次第です。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -