インターフェース・バス規格

ネットワークカードやNVMeのSSDなどで広く使われる、メモリ上の記述子(ディスクリプタ)の輪(リング)を使ったDMAのしくみについて正しいものはどれか。

  1. ACPUがデータを1バイトずつ機器のレジスタに書き込んで転送する
  2. BCPUは転送の番地や長さを記述子に書いて機器に知らせるだけで、機器が記述子を読んで自分で転送を進める
  3. C記述子は機器の中にだけあり、CPUからは見えない
答えと解説を見る

正解:B. CPUは転送の番地や長さを記述子に書いて機器に知らせるだけで、機器が記述子を読んで自分で転送を進める

記述子のリングは、メインメモリ上に並べた「どの番地から何バイト送るか」を書いた表を輪のように使うしくみです。CPUは空いている記述子に転送の内容を書き、機器のレジスタに「ここまで書いた」と1回知らせます。機器はDMAで記述子を読み、データを転送し、終わった記述子に完了の印を付けます。CPUと機器が互いを待たずに多くの転送を進められます。

  • A. それはDMAを使わないプログラムによる入出力です。
  • B. 正しい。多くの転送をまとめて機器に任せられます。
  • C. 記述子はメインメモリに置かれ、CPUと機器の両方が読み書きします。
この分野を解く 分野ページへ

インターフェース・バス規格のほかの問題

  1. PCI Expressのリンクの省電力の機能(ASPMによるL0sやL1の状態)について正しいものはどれか。
  2. チップやボードの間の高速な接続が、多数の線を並べる並列伝送から、少ない線に速い信号を流すシリアル伝送に移ってきた主な理由はどれか。
  3. 高速なシリアル伝送で使われるSerDes(シリアライザ/デシリアライザ)の役割として正しいものはどれか。
  4. 高速なシリアル伝送で、2本の線に逆向きの信号を流す差動信号が使われる主な理由はどれか。
  5. 高速なシリアル伝送の受信側にあるクロック・データ・リカバリ(CDR)回路の役割として正しいものはどれか。