自作CPU入門2:部品どうしをつなぐ「バス」


CPU,メモリ,I/Oが共有する会話用通信路

細切れにされたデータが転送される

図1 CPU,メモリ,I/Oは,相互にデータをやり取りするために同じ通信路を共有し,同時に1つの通信しか発生しないようにルールを決めて利用する.この通信路を「バス」と呼ぶ.通信路で一度に送れるデータ量は,32ビットまたは64ビットのとても小さなものなので,動画や文書などの大きなデータは,細分化して少しずつ転送する.画像クリックで動画を見る.または記事を読む

部品どうしをつなぐ「バス」とは

CPU,メモリ,I/Oは相互にデータをやり取りするために「バス」と呼ばれる通信路を使用します.バスは複数の部品が同じ通信路を共有し,同時に1つの通信しか発生しないようにルールを決めて利用します.これにより,効率的にデータを送受信することが可能になります.

バスのデータ幅は32ビットや64ビットのように決められており,これにより一度に送れるデータ量が決まります.動画や文書のような大きなデータは,細分化して少しずつ転送されます.たとえば,4GBの動画データ(約32Gビット)を32ビットずつ転送する場合,10億回以上の転送が必要です.CPUはこのような膨大なデータ転送を正確に管理し,メモリやI/Oと連携して処理を行います.

CPUのデータ転送のしくみ

CPUはバスを介してデータをやり取りします.たとえば,CPUがHDDからメモリへデータを送る場合,以下のような手順で進みます.

  1. CPUがHDDに「32ビットのデータを1つメモリに送れ」と指示を出す
  2. HDDは32ビットのデータをメモリに送る
  3. メモリはデータを受け取る
  4. HDDは次の32ビットのデータをメモリに送る
  5. この処理を何億回も繰り返す

4GBの動画データを転送する場合,10億回以上のやり取りが必要です.CPUはこれを高速に繰り返し,データの流れを管理しています.

「バス」の役割

「バス」は,CPU,メモリ,I/Oをつなぐ通信路であり,データの流れを管理する重要な役割を担っています.バスにはいくつかの種類があり,代表的なものとして以下が挙げられます.

  1. データ・バス:CPUとメモリ,I/O間でデータを転送するためのバス
  2. アドレス・バス:メモリやI/Oのどの部分と通信するかを指定するためのバス
  3. 制御バス:データ転送のタイミングや命令を制御するためのバス

バスのデータ幅が大きくなると,一度に送れるデータ量が増え,処理速度が向上します.現在のコンピュータでは,より広いデータ幅をもつバスが採用され,高速な処理が可能になっています.〈著:ZEPマガジン〉

動画を見る,または記事を読む

チャプタ・リスト

  • 0:48 今回の内容
  • 2:02 前回 簡略化して説明した点①
  • 4:45 前回 簡略化して説明した点②
  • 5:53 バスで注意が要ること①
  • 7:35 バスで注意が要ること②
  • 8:38 バスで注意が要ること③
  • 10:14 おまけ:自作CPU派に!お勧め開発キット
  • 11:55 次回予告

動画講師(森岡 澄夫)紹介

  • NTT,IBM,Sony,NECの各研究所において高性能回路IPやハイレベル・シンセシスの研究,およびプレイステーションなどの製品用SoC開発に従事した後,現職にて民間宇宙ロケットの飛行制御コンピュータの研究開発に従事.FPGAや高位合成を活用している

著書(森岡 澄夫)

  1. [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編&実践編】,ZEPエンジニアリング株式会社.
  2. [VOD/KIT]Xilinx製FPGAで始めるHDL回路設計入門,ZEPエンジニアリング株式会社.
  3. [VOD/KIT]一緒に動かそう!Lチカから始めるFPGA開発【基礎編】,ZEPエンジニアリング株式会社.
  4. [VOD/KIT]Zynqで初めてのFPGA×Linux I/O搭載カスタムSoC製作,ZEPエンジニアリング株式会社.
  5. [VOD/KIT]Tiny FPGA実習!高校生から始めるHDLプログラミング,ZEPエンジニアリング株式会社.
  6. [VOD/Pi KIT]カメラ×ラズパイで一緒に!初めての画像処理プログラミング,ZEPエンジニアリング株式会社.
  7. スパコンでも破れない!高セキュリティ・マイコン・プログラミング,ZEPエンジニアリング株式会社.
  8. [YouTube]宇宙軌道ロケット 成功の方程式
  9. [YouTube]宇宙ロケットの電子回路開発
  10. FPGA/Zynqで作るカスタム・コンピュータ・チップ,ZEPエンジニアリング株式会社.
  11. Lチカ入門!ソフトウェア屋のためのHDL事はじめ,ZEPエンジニアリング株式会社.
  12. USBカメラの動画キャプチャ&描画用 Pythonプログラム,ZEPエンジニアリング株式会社.
  13. ライブラリ完備!組立式ラズパイI/O増設ボード MCC DAQ HATSファミリ誕生,ZEPエンジニアリング株式会社.

参考文献

  1. [VOD/KIT] 実習キットで一緒に作る!オープンソースCPU RISC-V入門,ZEPエンジニアリング株式会社.
  2. [VOD/KIT]ARM Cortex-A9&FPGA内蔵SoC Zynqで初体験!オリジナル・プロセッサ開発入門,ZEPエンジニアリング株式会社.