電気通信大学 情報理工学研究科 情報学専攻 2020年8月実施 選択問題 計算機工学 4-2 計算機アーキテクチャ
Author
GPT-5.6 Sol
Description
特に断りがない限り、数値は符号なし整数とする。
- 16 進数 (2020)16 を 10 進数で書け。
- 10 進数 8523 を 4 進数で書け。
- 16 ビットの符号付き整数を 2 の補数で表すとき、表現できる数値の最大値を 10 進数で書け。
4 バイトの符号なし整数 x,y,z について、以下の問いに答えよ。
- ビッグエンディアンを採用する CPU で、主記憶の 1000 番地から連続したアドレスに x がバイト単位で格納されている。x を 4 バイトのレジスタにロードしたところ、その値は (01234567)16 であった。1000 番地に格納されているデータを 16 進数で書け。
- ビッグエンディアンを採用する A 社の CPU とリトルエンディアンを採用する B 社の CPU が主記憶を共有している。1004 番地から連続したアドレスに格納された同じ 4 バイトデータを A 社と B 社の CPU がそれぞれレジスタへロードした値を y,z とする。y−z の最大値を 16 進数で書け。
命令を N ステージで処理するパイプラインをもつ CPU を考える。各ステージの実行時間は同じ T であり、1 クロックで 1 ステージの処理を行う。(1) から (3) ではパイプラインハザードは発生しないものとする。
- 1 命令の処理に必要な時間を求めよ。
- 1 命令当たりの平均クロックサイクル数 CPI を求めよ。
- 単位時間当たりに終了する命令数であるスループットを求めよ。
- 1 クロックサイクルで命令を処理した場合 (N=1) の組合せ回路の最大遅延時間を a とする。N≥2 では遅延時間が各ステージへ均等に分割され、各ステージのパイプラインレジスタによる遅延のオーバーヘッドが b である。1 ステージの処理時間を求めよ。
- パイプラインハザードが発生する場合を考える。5 ステージ (N=5) であるプログラムを処理したときの CPI は 1.5 であり、N≥6 ではステージ数を一つ増やすごとに CPI が 0.1 増える。a=10, b=1 のとき、1 命令当たりの平均処理時間を最小にするステージ数を求めよ。
题目描述
除非另有说明,所有数均为无符号整数。
第 1 题:把十六进制数 (2020)16 转为十进制;把十进制数 8523 转为四进制;并求 16 位二进制补码有符号整数能够表示的最大十进制值。
第 2 题:对 4 字节无符号整数 x,y,z,回答:
- 采用大端序的 CPU 从主存地址 1000 起按字节装入 x 后,寄存器值为 (01234567)16,求地址 1000 处存放的十六进制字节。
- 采用大端序的 A 公司 CPU 与采用小端序的 B 公司 CPU 共享主存。二者从地址 1004 起装入同一组 4 字节数据所得值分别为 y,z,求 y−z 的最大十六进制值。
第 3 题:CPU 具有 N 级流水线,各级执行时间均为 T,每个时钟周期完成一级。前三小问假设没有流水线冒险:求单条指令延迟、平均每指令时钟周期数 CPI,以及单位时间完成的指令数(吞吐率)。若 N=1 时组合电路最大延迟为 a,而 N≥2 时延迟均分到各级且每级流水寄存器引入开销 b,求一级的处理时间。最后考虑冒险:五级流水线的 CPI 为 1.5,N≥6 后每增加一级,CPI 增加 0.1;当 a=10,b=1 时,求使单条指令平均处理时间最小的级数。
Kai
(1)
(2020)16=2⋅163+2⋅16=8192+32=8224.
(2)
4 の累乗で順に展開すると、
8523=2⋅46+1⋅44+1⋅43+2⋅4+3.
したがって
8523=(2011023)4.
(3)
16 ビットの 2 の補数表現の範囲は −215 から 215−1 なので、最大値は
215−1=32767
である。
(1)
ビッグエンディアンでは最上位バイトを最小アドレスへ置く。したがってメモリ配置は
| アドレス | 1000 | 1001 | 1002 | 1003 |
|---|
| データ | 01 | 23 | 45 | 67 |
であり、答えは
(01)16
である。
(2)
1004 番地から順に並ぶバイトを b0,b1,b2,b3 とすると、
y=224b0+216b1+28b2+b3,
z=224b3+216b2+28b1+b0.
よって
y−z=(224−1)b0+(216−28)b1−(216−28)b2−(224−1)b3.
正の係数をもつ b0,b1 を FF、負の係数をもつ b2,b3 を 00 とすれば最大になる。このとき
y=(FFFF0000)16,z=(0000FFFF)16.
したがって
y−z=(FFFE0001)16.
(1)
1 命令は N 個のステージを順に通るので、レイテンシは
である。
(2)
m 命令を連続して処理すると、パイプラインの充填を含むクロック数は N+m−1 である。したがって定常状態で
m→∞limmN+m−1=1
となり、理想 CPI は 1 である。
(3)
定常状態では 1 クロックごとに 1 命令が完了し、クロック周期は T なので、スループットは
命令/単位時間である。
(4)
組合せ回路の遅延 a が N ステージへ均等に分割され、各ステージにレジスタのオーバーヘッド b が加わる。したがって
T(N)=Na+b.
(5)
N≥5 に対して
CPI(N)=1.5+0.1(N−5)=1+0.1N
であり、a=10, b=1 より
T(N)=N10+1.
1 命令当たりの平均処理時間は
L(N)=CPI(N)T(N)=(1+0.1N)(1+N10)=2+0.1N+N10.
相加相乗平均、または微分により 0.1N=10/N のとき最小となるため、
N は正の整数かつ N≥5 なので、最適なステージ数は
である。このとき CPI=2, T=2、平均処理時間は 4 である。