「組み込み」ならではの基礎知識 ――スタートアップ・ルーチンからハードウェアまで

セサミアン3人組

tag: 組み込み

技術解説 2003年5月14日

8 メモリとポート

 コンピュータは,論理的な処理を得意としています.メモリに納められている命令に従って,計算したり,判断したりします.ところが,人との対話を含む外の世界とのやりとりは,メモリがつながっているだけでは実現できません.組み込み機器では,周辺装置(I/O:input/output)を制御しなければなりません.つまり,モータを駆動したり,ブザーを鳴らしたり,スイッチの状態を読んだりします.ここでは,コンピュータがどのようにして論理の世界と,外の世界を操るかを見ていきましょう.

●CPUとデバイスはどうつながっているのか

 コンピュータは,CPUとデバイス(メモリとI/O)から構成されています.CPUは,番地(アドレス)が付けられている場所の内容を指定して,読んだり書いたり(アクセス)することができます.ですから,CPUに接続されるデバイスにはすべて番地が付けられています.このCPUがアクセスできる場所を総称して「アドレス空間」といいます.アドレス空間は論理的な世界です.CPUには,メモリをつなぐための空間(メモリ空間)のほかにI/Oをつなぐための空間(I/O空間)を持つもの(図8-1)と,I/O空間を持たないもの(図8-2)の2通りがあります.I/O空間を持たないCPUでは,メモリ空間にI/Oを配置します(このつなぎかたを,メモリ・マップドI/O,またはメモリ・マップ方式のI/Oという).

 今回は,図8-2(メモリ・マップドI/O)の方式のCPUを使って説明します.この方式のCPUは,図8-3のようにCPUとデバイスを接続します.アドレス・バスは場所を指定するために使う信号線,データ・バスは場所の内容をやりとりするために使う信号線です.

 アドレス空間の大きさは,アドレス・バスが何本の信号線から構成されているかによって決まります.アドレス・バスにn本の線があれば,2nヵ所の番地にアクセスできます.例えば,16本あれば216で65,536番地,32本あれば232=4×1,024×1,024×1,024で,4G(ギガ)番地分に対してアクセスできます.

f08_01.gif
〔図8-1〕メモリ空間とI/O空間を別々に持つ方式
アドレス空間=メモリ空間+I/O空間.メモリとI/Oには異なる命令でアクセスする.すなわち,メモリにはメモリ・アクセス命令(リード命令,ライト命令)を,I/OにはI/Oアクセス命令(入力命令,出力命令)を使う.

f08_02.gif
〔図8-2〕メモリ空間にI/Oをつなぐ方式
アドレス空間=メモリ空間.I/Oもメモリの一部として扱い,メモリ空間の番地を割り当てる(このつなぎかたをメモリ・マップドI/Oという).こちらの場合,I/Oにもメモリ・アクセス命令でアクセスする.

f08_03.gif
〔図8-3〕CPUとデバイスの接続
CPUとデバイスは,リード信号線,ライト信号線,データ・バス,アドレス・バスを使って接続される.複数のデバイスを接続する場合,これらの信号線はデバイス間で共有される.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日