バーストモード
バーストモード(英: Burst mode)とは、一般的な電子工学用語で、デバイスが、各データを個別のトランザクションで送信するために必要なすべてのステップを経ることなく、データを繰り返し送信している状況を指す。
バーストモードの利点
[編集]シングル・モードに対するバーストモードの主な利点は、バーストモードが一般的にデータ転送のスループットを向上させることである。どのようなバス・トランザクションも一般的にアービターによって処理され、アービターは付与されたマスターとスレーブをいつ変更すべきかを決定する。 バーストモードの場合、マスタが既知の長さの転送シーケンスを完了するようにすれば、通常より効率的である。
データ トランザクションの合計遅延は、通常、初期アクセス遅延と順次アクセス 遅延の合計として表すことができる。
シングルモードでもバーストモードでもシーケンシャル遅延は同じだが、バーストモードでは初期遅延(通常はプロトコルのFSMに依存)が1回しか発生しないため、トータルの初期遅延はバーストモードの方が短くなる。したがって、バースト転送の総遅延は減少し、データ転送のスループットが向上する。
また、データ転送の回数が事前に分かっていれば、応答を最適化できるスレーブにも利用できる。典型的な例は、初期アクセス遅延は高いが、その後のシーケンシャルアクセスは少ないウェイトステートで実行できるDRAMである[1]。
バースト転送のビート
[編集]バースト転送におけるビートとは、1トランザクションの中で連続して行われる、マスターからスレーブへの書き込み(または読み出し)転送の回数のことである。バースト転送では、書き込みまたは読み出し転送のアドレスは、前のアドレスの増分値に過ぎない。したがって、4ビート・インクリメンタル・バースト転送(書き込みまたは読み出し)では、開始アドレスが「A'であれば、連続するアドレスは「A+m」、「A+2*m」、「A+3*m」となる。同様に、8ビートのインクリメンタルバースト転送(書き込みまたは読み出し)では、アドレス 「A」、「A+n」、「A+2*n」、「A+3*n」、「A+4*n」、「A+5*n」、「A+6*n」、「A+7*n」となる。
バースト転送の計算例
[編集]- 問題
- ある SoC マスターが、周辺スレーブとの通信(書き込みまたは読み出し)にバーストモードを使用している。トランザクションには32回の書き込み転送が含まれる。書き込み転送の初期遅延は8nsで、バースト連続遅延は0.5nsである。シングルモード(バーストなしモード)、4 ビートバーストモード、8 ビートバーストモード、16 ビートバーストモードでの合計遅延を計算する。各バーストモードでのスループット係数増加を計算する。
- 解答
- シングルモードでの遅延合計 = 転送回数 x (tinitial + tsequential) = 32 x (8 + 1x(0.5)) = 32 x 8.5 = 272 ns
- [4 ビートバーストモードの場合]
- 1回の4 ビートバーストモードでの遅延合計 = (tinitial + tsequential) = 8 + 4x(0.5) = 10 ns
- 32回の書き込み転送のために必要な 4 ビート転送回数 = 32/4 = 8 回
- したがって、32 回の書き込み転送の遅延合計 = 10 x 8 = 80 ns
- 4 ビートバースト モードを使用した合計スループット増加率 = シングルモードでの遅延合計 / 32 回の書き込み転送の遅延合計 = 272/80 = 3.4
- [8 ビートバーストモードの場合]
- 1回の8 ビートバーストモードでの遅延合計 = (tinitial + tsequential) = 8 + 8x(0.5) = 12 ns
- 32回の書き込み転送のために必要な 8 ビート転送回数 = 32/8 = 4 回
- したがって、32 回の書き込み転送の遅延合計 = 12 x 4 = 48 ns
- 8 ビートバースト モードを使用した合計スループット増加率 = シングルモードでの遅延合計 / 32 回の書き込み転送の遅延合計 = 272/48 = 5.7
- [16 ビートバーストモードの場合]
- 1回の16 ビートバーストモードでの遅延合計 = (tinitial + tsequential) = 8 + 16x(0.5) = 16 ns
- 32回の書き込み転送のために必要な 16 ビート転送回数 = 32/16 = 2 回
- したがって、32 回の書き込み転送の遅延合計 = 16 x 2 = 32 ns
- 16 ビートバースト モードを使用した合計スループット増加率 = シングルモードでの遅延合計 / 32 回の書き込み転送の遅延合計 = 272/32 = 8.5
上記の計算から、ビート数に応じてスループットが増加すると結論付けることができる。
バーストモードの詳細
[編集]バーストモード機能を持つ、あるいはバーストモードを使用する通常の理由は、データスループットを向上させることである[2]。バースト モード トランザクションの実行中に省略される手順には、次のものが含まれる場合がある:
- 他のデバイスからの入力を待つ
- データ転送を継続する前に、内部プロセスが終了するのを待つ
- 完全なトランザクションに必要な情報を送信するが、バーストモードの使用に固有である[3]
- Transmitting information which would be required for a complete transaction, but which is inherent in the use of burst mode[4]
Direct Memory Access(DMA) の場合、DMA コントローラとデバイスには、中断することなくバスへの排他的アクセスが与えられる。 CPUはデバイス割り込みの処理からも解放される。
バーストモードが実際にどのように機能するかは、デバイスの種類によって異なるが、何らかの標準的なバーストモードを持つデバイスには以下のようなものがある:
- Random Access Memory(RAM)。RAMにはEDO、SDRAM、 DDR SDRAM、 RDRAMを含む。工業規格に従って、バースト モードでデータを送信するには最後の 3 つだけが必要である。
- Conventional PCI、 Accelerated Graphics Port、PCI expressのようなコンピュータ・バス
- ハードディスクドライブ(HDD)のSCSI・IDEインターフェース
脚注・参考文献
[編集]- ^ “ARM forums”. 2023年12月12日閲覧。
- ^ PCI Local Bus Specification Revision 2.2. Hillsboro, Oregon: PCI Special Interest Group. (December 18, 1998). p. 82
- ^ PCI Local Bus Specification Revision 2.2. Hillsboro, Oregon: PCI Special Interest Group. (December 18, 1998). p. 29
- ^ PCI Local Bus Specification Revision 2.2. Hillsboro, Oregon: PCI Special Interest Group. (December 18, 1998). p. 29
関連項目
[編集]- Asynchronous I/O
- Command queue
- Direct memory access (DMA)
- SDRAM burst ordering
- Scatter/gather I/O