連載
» 2009年12月17日 00時00分 公開

【問題3】 MPUの種類−「RISC」とは?“組み込み力”向上! ETEC対策ドリル(3)

今回は、内部バスの種類と基本的な動作について解説。さらに、MPUの種類「RISC」と「CISC」に関する演習を出題する!

[近森満(株式会社サートプロ 代表取締役社長/JASA ETEC運営事務局),@IT MONOist]

【問題2】の解答

 前回の宿題【問題2】は、内部バスに関する問題でした。MPUは、内部バスを介してほかの装置とやりとりします。

 今回も問題の解答に続いて、内部バスの種類と基本的な動作について解説します。この機会にしっかりと理解しておきましょう。

 それでは、解答を発表します!


問題2

MPUとメモリなどの装置を結ぶ「バス」に関する次の記述のうち、正しいものはどれか?

ア.
MPUとほかの装置を結ぶバスには、「アドレスバス」「入力データバス」「出力データバス」「制御バス」の4種類がある。
イ.
「アドレスバス」はアドレスを送るためのバスで、アドレスバスの幅が16ビットであれば、理論上65536バイトのメモリにアクセスできる。
ウ.
「データバス」はデータを送るためのバスで、データバスのビット幅は汎用レジスタのビット幅と等しく、16ビットである。
エ.
「制御バス」はデータを送る際の制御信号用のバスで、常にMPUから他装置へ向かって制御信号が送られる。

答え. (←クリック)


【問題2】の補足

 以外の記述には誤りがあります。

 は、「アドレスバス」「入力データバス」「出力データバス」「制御バス」の“4種類”が誤りです。内部バスは、「アドレスバス」「データバス」「制御バス」の“3種類”です。続いて、は「16ビット」が誤りです。データバスの幅は、MPUのアーキテクチャによって異なります。そして、は「常にMPUから他装置へと向かって制御信号が送られる」が誤りです。制御バスは双方向のバスで、ほかの装置からMPUへ制御信号が送られる場合もあります。

 それでは、内部バスの種類と基本的な動作について解説します。

MPUと他装置との架け橋−バス−

 コンピュータ内では、各装置間を「バス」という信号線でつなぎます。MPUと他装置との間で信号をやりとりするバスを、特に「内部バス」といいます。内部バスには、アドレスバス、データバス、制御バスの3種類があります。

図1 アドレスバス、データバス、制御バス

 ROMRAM上の位置は、アドレスによって指定します。アドレスは、いわばメモリ上の番地です。MPUは、メモリなどに対してデータを読み書きする際に、アドレスバスにアドレスを送ります。アドレスバスにアドレスが送られると、「アドレスデコーダ」によって対象となる装置と読み書きする位置が特定されます。

 1つのアドレスで1バイトにアクセスする場合、アドレスバスの幅によって理論上アクセス可能なメモリ空間の容量が決まります。アドレスバスの幅が、16ビット(=16本の信号線)であれば、2の16乗=65536バイトの容量のメモリにアクセス可能です。

 データバスは、文字通り、データをやりとりするための双方向のバスです。例えば、メモリからデータを読み取る場合、MPUはアドレスバスにアドレスを出力し、データバスを介して、そのアドレスが示すデータを受け取ります。「32ビットのMPU」という場合、32ビットはデータバスの幅を表します。これは、一度にデータバスで受け渡しできるデータ量のことです。

 制御バスは、MPUが対象となる装置に対して、どのような処理を行うか、あるいは、処理のタイミングを制御するための信号を送る双方向のバスです。例えば、メモリからデータを読み取る場合は、MPUは制御バスに読み取りのためのRD信号を送ります。

データの読み取りおよび書き込みの例

 ここで、メモリへの読み取り、および書き込みの際に、どのようにデータがやりとりされるのかを簡単に示します。ただし、実際のバスの制御方法は非常に複雑であり、MPUごとに異なるので注意してください。

 例えば、RAMのアドレス10000番地にある「0x0020」というデータを読み取る場合には、図2のように処理が行われます。

図2 データの読み取りの例

MPUが、アドレス(10000番地)をアドレスバスに出力する。
アドレスデコーダにより、CS信号が生成され、メモリ上の位置が特定される。
MPUが、制御バスにRD信号(読み取り)を出力する。
②で特定された位置から値(0x0020)が読み取られ、データバスを介して、MPUに送られる。

 また、RAMのアドレス10002番地に「0x0120」というデータを書き込む場合には、図3のように処理が行われます。

図3 データの書き込みの例

MPUが、アドレス(10002番地)をアドレスバスに出力する。
アドレスデコーダにより、CS信号が生成され、メモリ上の位置が特定される。
MPUが、データバスへメモリに書き込む値(0x0120)を出力する。
MPUが、制御バスにWR信号(書き込み)を出力する。
②で特定された位置にデータバスから送られた値(0x0120)が書き込まれる。

アドレスデコーダとCS信号

 MPUは、メモリにデータを読み書きする場合に、アドレスバスにアドレスを送ります。ただし、メモリは、ROMやRAMなどの複数のチップから構成されます。そのため、まず、どのチップが処理対象であるかを特定しなければなりません。

 例えば、16ビットのアドレスを用いる場合に、0x0000〜0x3FFFのアドレス範囲をROMに、0x4000〜0x7FFFのアドレス範囲をRAMに割り当てるものとします。このとき、最大アドレスを2進数に直すと、それぞれ、0011 1111 1111 1111と0111 1111 1111 1111となります。つまり、アドレスの上位2ビットが「00」であればROM、「01」であればRAMであると分かります。

 アドレスの上位2ビットを表す信号(図4A15A14)は、アドレスデコーダに送られます。MPUから送られてきた上位2ビットが「01」であれば、アドレスデコーダは、“処理の対象はRAMである”と判断し、RAMに対してCS信号(チップセレクト信号)を送ります。RAM側はCS信号を受け取ると、残りの14ビットでRAM上の位置を特定します。

図4 アドレスデコーダとCS信号

正論理と負論理

 プログラム上で真、または偽のいずれかとなる論理値を扱う場合、通常は「1」が真、「0」が偽です。

 電子回路上では、真偽を電圧の高低で区別します。電圧が高い状態(H)を真、低い状態(L)を偽とすることを「正論理」といいます。逆に、電圧が高い状態(H)を偽、低い状態(L)を真とする「負論理」を用いることもあります。

 図2〜4のCS信号、RD信号、WR信号のオーバーラインは、これらの信号に負論理が用いられていることを示すものです。電子回路には、よく負論理の信号が用いられるので、この機会に覚えておきましょう。

今回の演習問題―【問題3】

問題3

RISCの特徴に関する次の記述のうち、正しいものはどれか?

ア.固定長の命令を必要最低限の数だけ備えている。
イ.算術演算など1つの命令で複雑な演算を実行できる。
ウ.パイプライン方式に適していないため、処理性能の向上が難しい。
エ.マイクロプログラム制御方式を採用し、ハードウェアの構造が複雑である。

答え. 解答はこちら(←クリック)


 いかがでしたでしょうか? バスの種類と基本的な動作について理解できましたか。次回は、MPUの種類「RISC」と「CISC」について解説します。お楽しみに!(次回に続く)

関連リンク:
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中)
http://www.certpro.jp/elearning.html
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中)
http://www.certpro.jp/etecsw2test.html

筆者プロフィール
  株式会社サートプロ 代表取締役社長
社団法人 組込みシステム技術協会 ETEC運営事務局
近森 満(ちかもり みつる)

大手電気メーカー、外資系IT教育ベンダ、オープンソース系技術者資格認定団体などを経て、2006年より組み込みシステム分野の人材育成・教育支援を行う株式会社サートプロを設立する。現在は、ETEC運営事務局としてJASAの組込みソフトウェア技術者試験の普及・啓蒙(けいもう)活動のほか、組み込み人材育成と教育支援事業を行う。

Copyright © ITmedia, Inc. All Rights Reserved.