Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/- 1 -演習問題解答
第１章
１～５

本文参照

６b c a d e f h g の順

７省略

第２章
１本文参照

２

表現可能な数は 216 = 65536 通りなので，0 から 65535

３

T＝1/φ＝1/（4×109）=0.25×10-9=0.25ns

４１秒間の平均命令実行回数は，1/(2×10-9)=0.5×109 回 = 0.5×109/106［百万回］= 0.5×103=500MIPS

５(1 × 2) + (2 × 12) + (3 × 10) + (4 × 8) + (5 × 2) 98=≒ 2.9 CPI
2 + 12 + 10 + 8 + 2
34６232×16÷8=233 230≒1G なので 233B /230 = 23 = 8GB (210≒1k，220≒1M，230≒1G )７本文参照

８DRAM のメモリセルの保持電荷は僅かなので，アクセスに必要な電圧まで増幅する時間が SRAM より多くかかるため．
９ 1011本文参照

省略

第3章
１２10 進2 進（8 桁）16 進（2 桁）

5800111010

3A25511111111

FF

14010001100

8C

3000011110

1E(a) 10 進数-16 の絶対値 16（10 進数）の 8 桁 2 進表現は 00010000 であることから，10 進数-16 の符号・絶対値表現は最上位ビットを１とした 10010000，1 の補数表現は絶対値の 2 進表現を 0,1 反転させた 11101111 である．2 の補数は 1 の補数に１を加えた11110000 となる．バイアス表現は，8 桁であるので-16 に 27 を加えた 112 (10 進数)を 2 進表現にした 01110000 である．
(b),(c),(d)の解は次表を参照のこと．

Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/- 2 符号・絶対値表現

１の補数表現

2 の補数表現

バイアス表現(a)10010000

11101111

11110000

01110000(b)

10011100

11100011

11100100

01100100(c)11010000

10101111

10110000

00110000３⌈log2 50⌉ = 6 ビット

４

状態 S4 （S0→S1→S2→S1→S2→S3→S4→S3→S4）

５

省略

６省略

７省略

第４章
１

input [3:0] A;
output [7:0] B;

２8’b01101000

３

省略（コード 4.3 を参照の上作成）

４

省略

５

省略（コード 4.5 を参照の上作成）

６省略（コード 4.6 およびコード 4.7 を参照の上作成）

第５章
１

出力関数，状態遷移関数は𝑍 = 𝑋 ⋅ 𝑦0 ⋅ 𝑦1
𝑌1 = 𝑋 ⋅ 𝑦0

𝑌0 = 𝑋 ⋅ (𝑦1 + 𝑦0 )となる．これより状態遷移図は下図となる。

出力が 1 となるのは状態 11 で入力 1 を与えた場合のみであり，状態 11 へは状態 01 にて入力 1 を与えた場合のみである。状態 01 へはいずれの状態からでも入力 0 により遷移できる。
したがって，011 で終わる入力系列に対してこの回路は１を出力する。

Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/- 3 ２（例）入力系列 101 が入力された状態を 𝑆101 , 入力系列 10 までが入力された状態を𝑆10，入力 1 が入力された状態を 𝑆1 とし，これらに該当しない状態を 𝑆𝜙 とあらわしたス
テートマシンをムーア型で表現すると図(a)となる。同様の動作をミーリー型で表現すると図(b)となる。

(a) ムーア型の例
３（状態遷移図例）（タイミングチャート例）

４(a) 省略（コード 5.1 を参照の上作成）(b) 省略（コード 5.9 を参照の上作成）(c) 省略（コード 5.9 を参照の上作成）(d) 省略（コード 5.9 を参照の上作成）(b) ミーリー型の例

Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/- 4 第６章
１(1) (a) 8'h6a (b) 8'h1a (c) 8'h6a (d) 8'h1a(2) (a) 8'h78 (b) 8'h5e (c) 8'hf8 (d) 8'hde２（例）３(a) 省略（コード 6.5 を参照の上作成）(b) 省略（コード 5.5 を参照の上作成）(c) 省略(d) 省略４（例）桁上げ先見加算器，桁上げ保存加算器 などについて調べる

第７章
１（例）

２S1S0AF3F2F1F000000000010001010000001100101000000101010011000001111000

Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/

- 5 ３

本文参照

４省略（コード 7.3 を参照の上作成）

５省略（コード 7.1 を参照の上作成）

６省略（コード 7.4 を参照の上作成）

７省略（コード 7.6 を参照の上作成）

第８章
１(a) 0000 0011 0001 0100 (b) 0000 0110 0000 0010 0001 0000 0000 1100２(a) AND GR2,GR1 (b) SLL GR3, 16'h0082, GR2

３(a) SF = 0, ZF = 0, OF = 1 (b) SF = 1, ZF = 0, OF = 0

４(a) PC=16h'0041, SP=16'h8002(c) SF = 1, ZF = 0, OF = 0(b) PC=16'h2023, SP=16'h8002

第９章
１ ２

本文参照

３（１）β3 = β1-β2 = 20-5 = 15%（２）（２次キャッシュヒット時のミスペナルティ）×β3 ＋（１次キャッシュ，２次キャッシュともにミスしメインメモリをアクセス）×β2＝10×0.15+40×0.05=3.5 単位時間
４ ５

本文参照６（１）（a）A×B×B＝0.7×0.9×0.9＝0.567＝56.7%（b）A×（１-(1-B)×(1-B)）＝0.7×(1-（1-0.9）×（1-0.9）)＝0.7×(1-0.1×0.1)＝0.693 ＝69.3%（c）1-(1-A)×（1-B）×（1-B）＝1-(1-0.7)×（1-0.9）×(1-0.9)＝1-0.3×0.1×0.1＝0.997 = 99.7%（２）（a）A×B×B＝0.9×0.7×0.7＝0.441＝44.1%（b）A×（１-(1-B)×(1-B)）＝0.9×(1-（1-0.7）×（1-0.7）)＝0.9×(1-0.3×0.3)＝0.819 ＝81.9%（c）1-(1-A)×（1-B）×（1-B）＝1-(1-0.9)×（1-0.7）×(1-0.7)＝1-0.1×0.3×0.3＝0.991 = 99.1%
７
装置Ｂの台数をｎとすると，0.9≦A×(1-(1-B)n)＝0.95×（1-(1-0.7)n）が成立する最小の n を求める．
0.9≦0.95×(1-(1-0.7)n)＝0.95×（1-0.3n）
0.9/0.95-1≦-0.3n 1-0.9/0.95 ≧0.3nｎ≧log0.3(1-0.9/0.95)

すなわち n は３以上

Verilog HDL で学ぶコンピュータアーキテクチャ

https://www.coronasha.co.jp/np/isbn/9784339029406/

- 6 ８

省略

第１０章
１省略（機能ごとにブロックを作成）
２省略（機能ごとにブロックを作成）
第１１章
１省略
２省略
３省略