3.1 K-COMの回路構成
3.2 レジスタ
3.3 ALUとアキュームレータ
3.4 メモリ
3.5 I/Oポート
3.6 制御構造
3.7 動作時の信号の流れ
目次に戻る
3.1 K-COMの回路構成
K-COMの回路構成について図3.1に示す.第1章で述べたコンピュータの回路構成とCPUの内部構造例(図1.4と図1.5)をもとに考えると分かりやすい.通常は,CPU,メモリ,入出力ポート等,いくつかのLSIにより構成されているコンピュータを1つのLSIとして構成する事を想定した.そのため,メモリ,入出力ポートを内部に持ち,アドレス信号は内部アドレスバスを介して直接的に内部メモリ,入出力ポートに伝えられる.データバスについても同様に内部に備え,内部データバスを介して,メモリとアキュームレータ間のデータ転送,メモリとALUを直接接続して演算を行う.このように,図1.5と比較して図3.1はアドレスレジスタやデータレジスタを省いた構造になっている.
3.2 レジスタ
レジスタの具体的な回路構成について図3.2に示す.基本的には1ビットの情報を記憶できるフリップフロップ(図ではD−FF)を8個並列に並べて同時に読み書き出来る様な回路を構成したものである.レジスタの入力及び出力端子は他の回路と干渉しないように,トライステートバッファを介してデータバスに接続されている..
3.3 ALUとアキュームレータ
算術・論理演算装置(ALU)とアキュームレータの回路構成について図3.3に示す.アキュームレータとメモリから8ビットのデータをそれぞれALUに入力し,演算結果をアキュームレータに戻す.ALUは基本的には入力に8ビット×2+制御信号,出力に8ビット+フラグを持った組み合わせ論理回路である.実際には回路構成上,ALUの演算結果は,一旦ALUの出力に保持された後アキュームレータに転送される.どの様な演算を行うかは制御信号により決められる.演算結果が0になったか,桁あふれを生じたか等の情報はステータスフラグ(状態フラグ)に記憶される.
入力ポートの構成と出力ポートの構成を図3.6と図3.7にそれぞれ示す.
入力ポートは,外部入力装置からの入力信号について,バッファを通して信号レベルをHigh,Lowのいずれかにして,トライステートバッファに加えられたI/Oデコーダの信号に同期してデータを取り込む構造になっている.
出力ポートは,トライステートバッファに加えられたI/Oデコーダの信号に同期してデータをD−FFに書き込む構造になっている.D−FFから常にHighかLowの信号が出力されているので外部装置は独自のタイミングで信号を受け取ることができる.
動作時の信号の流れを以下順に説明する.フェッチサイクルは図3.9の通り,2サイクルになっている.最初のサイクル(図3.9(a))で,プログラムカウンタの示すアドレスのメモリ内容を読み出し,命令レジスタに記憶する.次のサイクル(図3.9(b))で,プログラムカウンタの値に1を足す.これはプログラムが順次実行されるようにするためで,次のフェッチサイクルで次のアドレスのプログラムを読み出すことになる.
![]() |
![]() |
|
|
実行サイクルは,2サイクル必要な場合と1サイクルで済む場合があり,まず2サイクル必要な演算命令実行時を図3.Xの例に示す.図3.10(a)の通り,演算命令では,オペランドに記述されているアドレスのメモリ内容と,アキュームレータの内容とをALUに送り,演算を行う.演算結果はフラグとラッチに保持される.次のサイクルでラッチされた演算結果を内部データバスを通してアキュームレータに返す(図3.10(b)).
![]() |
![]() |
|
|
次に実行サイクルが1サイクルで済む場合の例を示す.図3.11はロード命令実行時の信号の流れを示している.オペランドに記述されたアドレスのメモリ内容がアキュームレータに転送され,1サイクルで実行サイクルが終了する.
図3.12に示すジャンプ命令も1サイクルで実行が終了する.ジャンプ命令が実行されるときは,フラグの内容によりジャンプを行うかどうかが判断され,ジャンプを行う時には図のようにオペコードに記述されたアドレスが次の命令のアドレスとしてプログラムカウンタに転送される.