跳到主要内容

東京工業大学 情報理工学院 情報工学系 2016年8月実施 午前 5.

Author

祭音Myyura (co-authored with GPT 5.6 SOL)

Description

(1) 次のブール代数の等式を証明せよ。

xxyyxy=xyˉyxˉ.\overline{\overline{x\cdot\overline{xy}}\cdot\overline{y\cdot\overline{xy}}} =x\bar y\vee y\bar x.

(2) NOT、OR、AND、XOR を、それぞれ 44 個以下の 22 入力 NAND ゲートだけで実現せよ。

(3) 33 ビットを直列送信する回路を考える。R0,,R4R_0,\ldots,R_4 は立上りエッジ動作の D フリップフロップで、初期値はすべて 00z=Q(R0)z=Q(R_0) とする。e=1e=1 のとき、各立上りで

(R4,R3,R2,R1,R0)(d0d1d2,d2,d1,d0,1)(R_4,R_3,R_2,R_1,R_0) \gets(d_0\oplus d_1\oplus d_2,d_2,d_1,d_0,1)

を並列ロードする。e=0e=0 のときは

(R4,R3,R2,R1,R0)(0,R4,R3,R2,R1)(R_4,R_3,R_2,R_1,R_0)\gets(0,R_4,R_3,R_2,R_1)

とシフトする。各式の右辺は更新前の値を使う。

各 MUX は e=1e=1 で上記の並列入力、e=0e=0 で前段の値を選ぶ。 入力波形は次のとおりである。CiC_i は第 ii クロックの立上りから次の立上りまでを表す。

  • eeC1C_1 開始直後に 11C2C_2 開始直後に 00C5C_5 開始直後に 11C6C_6 開始直後に 00 となる。
  • d0d_0C1C_1 開始直後から C5C_5 開始直後まで 11、それ以外は 00
  • d1=0d_1=0d2d_2C5C_5 開始直後から 11、それ以前は 00

(a) C1C_1 から C12C_{12} までの clock と zz の波形を描け。 (b) 誤り検出の原理を 150150 文字程度で説明せよ。

(4) 33 ウェイ・セットアソシアティブキャッシュを考える。ブロックサイズは 22 ワード、容量は 1212 ブロック、置換は LRU とする。各ウェイの行 index は 0,1,2,30,1,2,3 である。全行の初期値は v=0v=0、tag/data は 00、LRU 順位は way-1、way-2、way-3 がそれぞれ 1,2,31,2,3。順位 11 が最古、33 が最新である。アドレス xx のワード内容を (x)(x) と記す。data1,data2data1,data2 はブロックの低位・高位アドレスのワードを格納する。

初期状態からワードアドレス 26,5126,51 をこの順に参照すると、index 11 は次の状態になる。他の行は初期状態のままである。

wayvtaglrudata1data2
1132(26)(27)
2163(50)(51)
300100

(a) 次に 6060 を参照した後の way-1 の全行を示せ。 (b) 続いて 61,19,5061,19,50 を参照する。各アクセスのヒット/ミスと、その後の way-2 の全行を示せ。 (c) さらに 18,42,43,1218,42,43,12 を参照する。各アクセスのヒット/ミスと、その後の全ウェイ・全行を示せ。

题目描述

  1. 证明所给 NAND 组合等于异或。
  2. 分别用至多四个二输入 NAND 门实现 NOT、OR、AND、XOR。
  3. 五个上升沿触发 D 触发器初值均为零;使能为一时加载“起始位、三位数据、异或校验位”,为零时右移并补零。按上述输入时刻画出 C1C_1C12C_{12} 的时钟和输出;用约 150150 个日文字符说明检错原理。
  4. 对三路组相联、每块两字、共十二块的 LRU 缓存,按 26,51,60,61,19,50,18,42,43,1226,51,60,61,19,50,18,42,43,12 的顺序访问。给出各阶段指定缓存行的 valid、tag、LRU、两字内容及命中情况;LRU 数字越小越旧。

Kai

(1)

De Morgan の法則と吸収律により、

xxy yxy=xxyyxy=x(xˉyˉ)y(xˉyˉ)=xyˉyxˉ.\begin{aligned} \overline{\overline{x\overline{xy}}\ \overline{y\overline{xy}}} &=x\overline{xy}\vee y\overline{xy}\\ &=x(\bar x\vee\bar y)\vee y(\bar x\vee\bar y) =x\bar y\vee y\bar x. \end{aligned}

(2)

N(a,b)=abN(a,b)=\overline{ab} とおく。次の結線でよい。

関数中間信号と出力NAND 数
NOTz=N(x,x)z=N(x,x)1
ORu=N(x,x), v=N(y,y), z=N(u,v)u=N(x,x),\ v=N(y,y),\ z=N(u,v)3
ANDu=N(x,y), z=N(u,u)u=N(x,y),\ z=N(u,u)2
XORu=N(x,y), v=N(x,u), w=N(y,u), z=N(v,w)u=N(x,y),\ v=N(x,u),\ w=N(y,u),\ z=N(v,w)4

(3)

(a)

C2C_2C6C_6 の立上りでロードする。各立上り直後の値は次のとおり。

サイクルC1C2C3C4C5C6C7C8C9C10C11C12
zz011001001100

クロックと送信出力の波形

(b)

送信側は3ビットのデータの排他的論理和をパリティビットとして付加する。受信側でデータとパリティの計4ビットの排他的論理和を求め、1なら誤りと判定する。正常時は1の個数が偶数になるため、1ビット誤りを含む奇数個の反転を検出できる。ただし偶数個の反転や誤り位置は判別できない。

(4)

ワードアドレス aa に対して、

offset=amod2,index=a/2mod4,tag=a/8.\text{offset}=a\bmod2,\quad \text{index}=\left\lfloor a/2\right\rfloor\bmod4,\quad \text{tag}=\left\lfloor a/8\right\rfloor.

(a)

6060 は index 22、tag 77。way-1 の状態は次のとおり。

indexvtaglrudata1data2
000100
1132(26)(27)
2173(60)(61)
300100

(b)

6161:ヒット、1919:ミス、5050:ヒット。way-2 の状態は次のとおり。

indexvtaglrudata1data2
000200
1163(50)(51)
200100
300200

(c)

1818:ヒット、4242:ミス、4343:ヒット、1212:ミス。最終状態は次のとおり。

wayindexvtaglrudata1data2
1000100
11153(42)(43)
12172(60)(61)
1300100
2000200
21161(50)(51)
22113(12)(13)
2300200
3000300
31122(18)(19)
3200100
3300300