第5章 コントローラの設計
2
5.1 コントローラの構成
ー パ マ 操作 実行す
マ 操作 入力 ー ー パ 供給
そ 実行す た 必要
制御信号 ー パ 与え
3
ン ー
一連 マ 操作
実行す た 制御信号 系列
生成す 順序回路
令 ー
令 ー 解 し
制御信号生成回路
制御信号 発生
ー やフ ップフ ップ
ン ー 構成す
結線制御
結線制御
4
結線制御
5
結線制御 有限状態機械 FSM 記述さ こ 多い
FSM ン ー ぶこ あ
ン ー 設計す 方法 明す た
最大公約数 (G(), greatest common divisor) 計算す
例 そ 設計
5.2 結線制御の設計
6
entity gcd is
port ( clk : in bit;
din : in bit;
xin : in integer;
yin : in integer;
dout : out bit;
zout : out integer );
end gcd;
GCD システムの設計
ン フ ー ハー 記述言語VH)L 記述
7
GCD システムの設計
最大公約数 計算す
8
GCD システムの設計
動作記述 VH)L 記述
architecture behavior of gcd is begin
process
variable x, y : integer; begin
calculation : loop
wait until ((din ='1') and (clk = '1' and clk'event)); dout <= '0';
x := xin; y := yin;
while (x /= y ) loop if ( x < y )
then y := y - x; else x := x - y; end if;
end loop;
wait until ((din = '0') and (clk = '1' and clk'event)); dout <= '1';
zout <= x; end loop; end process; end behavior;
9
GCD システムの設計
10
GCD システムの設計
11
GCD システムの設計
12
GCD システムの設計
13
GCD システムの設計
14
GCD システムの設計
15
GCD システムの設計
16
GCD システムの設計
17
GCD システムの高位合成結果
architecture behavior of gcd is begin
process
variable x, y : integer; begin
calculation : loop
wait until ((din ='1') and (clk = '1' and clk'event)); dout <= '0';
x := xin; y := yin;
while (x /= y ) loop if ( x < y )
then y := y - x; else x := x - y; end if;
end loop;
wait until ((din = '0') and (clk = '1' and clk'event)); dout <= '1';
zout <= x; end loop; end process; end behavior;
18
GCD システムの高位合成結果
19
GCD システムの高位合成結果
20
5.3 マイクロプログラム制御
い つ 制御信号 1語 た 制御語
一連 制御語 ROMやRAM PLA 可能 格納し
そ 順次取 出すこ 制御信号列 生成す 制御方法
マ プ 制御
内 各制御語 マ 令
マ 令 列 マ プ
マ プ 格納した 制御
マ プ 制御方式
1 51年 英国 M.V.Wilkes 考案
21
5.3 マイクロプログラム制御
一連 マ 操作列 実行す た
対応す マ 令 列
マ プ フ ー
制御 書 込
制御 マ 令 出し
制御信号 し マ 操作 実行
22
5.4 マイクロ命令
23
5.4 マイクロ命令
24
データパスの制御信号
25
マイクロプログラム制御
26
マイクロ命令
27
マイクロ命令
28
マイクロ命令
29
5.5 マイクロプログラムの設計
開始 設定
30
5.5 マイクロプログラムの設計
加算 令
R1 ← R1 + R2, (AR ← (AR + 1
001 010 001 101 0 00 0 000 000000
A B C S Cin W M1 M2 ADR
R1 選択
R2 選択
R1 選択
加算 CARを
1増加
31
5.5 マイクロプログラムの設計
論理和演算 無条件分岐
R1 ← lsr (R1 ∨ R2), (AR ← 40
001 010 001 001 0 10 0 001 101000
A B C S Cin W M1 M2 ADR
R1 選択
R2 選択
R1 選択
論理和
ー 右シフ
内部ア ス 選択
40
32
5.5 マイクロプログラムの設計
条件分岐
R1 ← R1 + R2,
if (Z=1) then ((AR ← 26)
else ((AR ← (AR + 1)
001 010 001 101 0 00 0 101 011010
A B C S Cin W M1 M2 ADR
R1 選択
R2 選択
R1 選択
加算
Z選択
内部ア ス 選択
26
33
5.5 マイクロプログラムの設計
外部 へ分岐
R1 ← R1 + R2 , (AR ← 外部
001 010 001 101 0 00 1 001 000000
A B C S Cin W M1 M2 ADR
R1 選択
R2 選択
R1 選択
加算
ー
外部ア ス 選択
26
34
演習問題
つ 転送 令 図5.14 マ 令 記述せ
(a) R3 ← R1 + R2, (AR ← 20
(b) R2 ← lsr (R1 – R2), (AR ← (AR + 1
(c) if (P = 1) then ((AR ← 外部 )
else ((AR ← (AR + 1)
(d) R2 ← lsl (R1 + R2),
if (V = 1) then ((AR ← 13) else ((AR ← (AR + 1)
35
演習問題
(a) R3 ← R1 + R2, (AR ← 20
36
演習問題(解答)
A B C S Cin W M1 M2 ADR 001 010 011 101 0 00 0 001 (20)2
(a) R3 ← R1 + R2, (AR ← 20
37
演習問題
(b) R2 ← lsr (R1 – R2), (AR ← (AR + 1
38
演習問題(解答)
(b) R2 ← lsr (R1 – R2), (AR ← (AR + 1
A B C S Cin W M1 M2 ADR 001 010 010 1101 10 - 000 ---
39
演習問題
(c) if (P = 1) then ((AR ← 外部 )
else ((AR ← (AR + 1)
40
演習問題(解答)
(c) if (P = 1) then ((AR ← 外部 )
else ((AR ← (AR + 1)
A B C S Cin W M1 M2 ADR --- --- --- --- - -- 1 100 ---
41
演習問題
(d) R2 ← lsl (R1 + R2), if (V = 1) then ((AR ← 13)
else ((AR ← (AR + 1)
42
演習問題(解答)
A B C S Cin W M1 M2 ADR 001 010 010 1010 01 0 010 (13)2