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

PCI Expressの機器のレジスタやメモリを、CPUから読み書きできるようにするしくみとして正しいものはどれか。

  1. A起動時にOSなどが機器の要求する大きさを調べ、BAR(ベースアドレスレジスタ)に番地を割り当てて、メモリの番地として見えるようにする
  2. B機器ごとに、製造時に固定の番地が決められている
  3. CCPUは機器のレジスタを読めず、すべてDMAでやり取りする
答えと解説を見る

正解:A. 起動時にOSなどが機器の要求する大きさを調べ、BAR(ベースアドレスレジスタ)に番地を割り当てて、メモリの番地として見えるようにする

PCI Expressの機器は、自分のレジスタやメモリの大きさをBARで知らせます。起動時にファームウェアやOSが接続されたすべての機器を調べ(列挙)、番地がぶつからないように割り当てます。その後CPUは、割り当てられた番地を普通のメモリのように読み書きして機器を操作します。機器を後から差したときも、同じように番地が割り当てられます。

  • A. 正しい。メモリマップドI/Oとして使います。
  • B. 固定だと機器どうしで番地がぶつかってしまいます。
  • C. CPUはレジスタを直接読み書きできます。
この分野を解く 分野ページへ

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

  1. PCI Expressで使われるMSI(メッセージシグナル割り込み)の特徴として正しいものはどれか。
  2. インターフェースの性能を表す「帯域」と「遅延(レイテンシ)」の違いとして正しいものはどれか。
  3. 帯域10 GB/s、遅延1 µsの接続で、64バイトのデータを1回送るのにかかる時間に最も近いものはどれか(時間=遅延+データ量÷帯域とする)。
  4. 機器との間で小さなデータを1つずつ何千回もやり取りするプログラムを速くする方法として、最も効果的なものはどれか。
  5. USBの通信のしくみについて正しいものはどれか(USB4を除く従来のUSBについて)。