今回は、内部バスの種類と基本的な動作について解説。さらに、MPUの種類「RISC」と「CISC」に関する演習を出題する!
前回の宿題【問題2】は、内部バスに関する問題でした。MPUは、内部バスを介してほかの装置とやりとりします。
今回も問題の解答に続いて、内部バスの種類と基本的な動作について解説します。この機会にしっかりと理解しておきましょう。
それでは、解答を発表します!
問題2 MPUとメモリなどの装置を結ぶ「バス」に関する次の記述のうち、正しいものはどれか? 答え. イ (←クリック) |
イ以外の記述には誤りがあります。
アは、「アドレスバス」「入力データバス」「出力データバス」「制御バス」の“4種類”が誤りです。内部バスは、「アドレスバス」「データバス」「制御バス」の“3種類”です。続いて、ウは「16ビット」が誤りです。データバスの幅は、MPUのアーキテクチャによって異なります。そして、エは「常にMPUから他装置へと向かって制御信号が送られる」が誤りです。制御バスは双方向のバスで、ほかの装置からMPUへ制御信号が送られる場合もあります。
それでは、内部バスの種類と基本的な動作について解説します。
コンピュータ内では、各装置間を「バス」という信号線でつなぎます。MPUと他装置との間で信号をやりとりするバスを、特に「内部バス」といいます。内部バスには、アドレスバス、データバス、制御バスの3種類があります。
図1 アドレスバス、データバス、制御バス |
ROMやRAM上の位置は、アドレスによって指定します。アドレスは、いわばメモリ上の番地です。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)が書き込まれる。
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ビットを表す信号(図4のA15とA14)は、アドレスデコーダに送られます。MPUから送られてきた上位2ビットが「01」であれば、アドレスデコーダは、“処理の対象はRAMである”と判断し、RAMに対してCS信号(チップセレクト信号)を送ります。RAM側はCS信号を受け取ると、残りの14ビットでRAM上の位置を特定します。
図4 アドレスデコーダとCS信号 |
プログラム上で真、または偽のいずれかとなる論理値を扱う場合、通常は「1」が真、「0」が偽です。
電子回路上では、真偽を電圧の高低で区別します。電圧が高い状態(H)を真、低い状態(L)を偽とすることを「正論理」といいます。逆に、電圧が高い状態(H)を偽、低い状態(L)を真とする「負論理」を用いることもあります。
図2〜4のCS信号、RD信号、WR信号のオーバーラインは、これらの信号に負論理が用いられていることを示すものです。電子回路には、よく負論理の信号が用いられるので、この機会に覚えておきましょう。
問題3 RISCの特徴に関する次の記述のうち、正しいものはどれか? 答え. 解答はこちら(←クリック) |
いかがでしたでしょうか? バスの種類と基本的な動作について理解できましたか。次回は、MPUの種類「RISC」と「CISC」について解説します。お楽しみに!(次回に続く)
関連リンク: | |
組込みソフトウェア技術研修講座イーラーニング(サンプルIDプレゼント中) http://www.certpro.jp/elearning.html |
|
組込みソフトウェア技術者試験クラス2試験対策問題集(ETEC-SW2)(サンプルIDプレゼント中) http://www.certpro.jp/etecsw2test.html |
|
Copyright © ITmedia, Inc. All Rights Reserved.