自作CPU入門3:メモリマップとアドレス


メモリのアクセス先「アドレス」

CPUは番地を利用してデータにアクセスする

図1 CPUは,メモリマップを利用して,メモリやI/Oの位置をアドレスで指定し,正しくデータ送受信を実現する.画像クリックで動画を見る.または記事を読む

AIやロボットが動作する際の「頭脳」にあたる部分はCPU(中央処理装置)です.情報処理の中心であるCPUは,「アドレス」を使って,「メモリ」や「I/O(入出力装置)」とデータをやり取りします.

メモリマップとは

メモリマップとは,CPUがデータのやり取りをする際に,各装置の場所を番号(アドレス)で指定するしくみです.CPU,メモリ,I/Oは「バス」という通信線を通じてつながっています.バスは1本の線を複数の装置が共有します.CPUがデータを送るとき,誰が受け取るのかを判別するために,各装置に固有のアドレスが割り当てられています.

以下のようにアドレスを割り当てることで,データのやり取りが可能になります.

  1. メモリ:0?99番地
  2. ハード・ディスク:100番地
  3. ディスプレイ:200番地

CPUはデータのやり取りをする際,あらかじめ相手のアドレスを指定します.これにより,確実に目的の装置へデータが届くしくみです.

アドレッシング技術

アドレスの割り当ては,単純に1つのアドレスだけで指定する方法だけでなく,2段階の指定方法もあります.これにより,ハード・ディスクの交換時でもCPUから見たアドレスが変わらないようにできます.たとえば,

  1. CPUは「100番地」と指定
  2. ハード・ディスク内の「5000番地」と指定

この2段階の指定により,ハード・ディスクを交換しても「100番地」としての指定は変わらず,管理が容易になります.この方法を「アドレッシング」と呼びます.

AIやロボットの制御では「アドレス」という概念が重要です.アドレスはデータの置き場所を表す数字であり,デバイスやメモリの区画ごとに一意の番号が割り当てられます.

  1. CPUはアドレスを指定してデータの読み書きを行う
  2. 複数のデバイスが同一アドレスを使用すると,正しく動作しない
  3. アドレスの重複を避けるため,各装置には固有の番号が割り当てられる
  4. アドレッシング技術により,ハード・ディスクの交換後でも同一アドレスでの管理が可能

アドレスは単なる数字ですが,AIやロボットにとっては「どこに何があるのか」を知るための重要な手がかりです.これにより,効率的かつ正確なデータ処理が実現します.〈著:ZEPマガジン〉

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

チャプタ・リスト

  • 0:53 今回の内容
  • 1:44 アドレスを使って読み書き
  • 3:32 I/Oにもアドレスがある?
  • 4:17 素直にアドレスを振ると不便
  • 5:07 I/Oでよく使われる方法①
  • 6:10 バスで注意が要ること②
  • 7:35 メモリマップ
  • 8:18 マイコンのLチカの例
  • 13:08 ソフトを置くアドレス
  • 14:02 ソフトの“ロード”
  • 14:47 おまけ:自作CPU派に!お勧め開発キット
  • 15:11 次回予告

著者紹介

  • 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エンジニアリング株式会社.