論理回路 

目次


第1節 メインメモリー

第2節 逐次制御カウンター

第3節 命令レジスター

第4節 リングカウンターによる制御とCPUの構造


テスト

Logをみる

Back
 

第7章 CPUの働き

   第7章 CPUの働き

 第4節 リングカウンターによる制御とCPUの構造

 前節の構造図によるCPUがどのように動くかを見ましょう。次をクリックするとその構造図別ウィンドウで表示され、動き出します。

 CPUの動き

 この動きを説明しましょう。まず注目すべきはs1,s2,s3,s4,s5,s6 に順に赤印が入り移動していることです。これがリングカウンターの各ビットに順に1がセットされて移動してゆくことを表します。6ビットのリングカウンターですので、6ステップの動作を制御できます。

 まずs1=1 のとき、逐次制御カウンターSCC が1だけカウントアップされます。

 次にs2=1 のとき、そのSCC の内容がメインメモリーへアドレスとして送出されます。

 次にs3=1 のとき、メインメモリーへのRead 信号線が1になります。これにより上で指定したメモリーのアドレスからデータが命令レジスターに読み込まれます。それはInstruction Decoder によってどのような種類の命令か解読されます。例えば加算命令であったとします。

 アドレスの送出はRead 信号によるデータ読み込みが終わるまで続かなければいけないので、s4=1 の期間までアドレスを送出するゲートはONになっています。

 次に加算命令のときはs5=1 となります(他の命令のときのリングカウンターの続きは図では省略されている)。このときA-レジスターの中の数値(緑色で表現)とB-レジスターの中の数値(水色で表現)がそれぞれの加算器に向かうゲートを通して加算され結果が出ます(深緑色で表現)。  s6=1 のとき計算結果がA-レジスターに書き込まれます。

 つまりこの加算命令によって

  A+B -> A

という処理が実行されたのです。

 s6のあとはまたs1=1 となり、同じようなことが繰り返されます。同じような、といっても、SCCがまた1つ増加(increment)され、メインメモリー中の次のアドレスから次の命令語が取り出されるのです。

 このようにして、一連の命令語の列(それが機械語のプログラムです)が次々と実行されてゆくのです。

 実はこの動く図ではタイミングについて少しあいまいにされているところがあります。例えば A+B がまたA に書き込まれるとすると、下手をすると((A+B)+B)+B ... と循環したものが A に入りかねません。これはA レジスターがマスタースレーブ型にすれば避けられますが、どのタイミングでマスターに入り、どのタイミングでスレーブに入るかなど詳しいことは省略しています。

 でもおおまかなCPUの働き方はきっと理解していただけたのではないか、と思います。