九州大学 システム情報科学府 情報理工学専攻 2020年8月実施 計算機アーキテクチャ
Author
Description
【問 1】
与えられた真理値表で表される論理関数 が以下の論理式を満たす時,論理関数 の最簡積和形を示せ.ただし,最簡積和形とは積和形論理式のうち,積項数が最小のものを指す.積項数が等しい積和形論理式が複数ある場合にはそのなかでリテラル数が最小のものを指す.
【問 2】
つのステージからなるパイプライン式データパスを有するマイクロプロセッサについて考える.実装されたパイプラインステージは,IF(命令取得),ID (命令デコード),EX(実行),MEM(メモリアクセス),ならびに,WB(ライトバック)である.以下の各問いに答えよ.
(1) IF,ID,EX,MEM,WB の遅延時間は,それぞれ,240 ps,400 ps,200 ps,250 ps,180 ps である.このデータパスの最大動作周波数を答えよ(単位は GHz).
(2) IF,ID,EX,MEM,WB のいずれか つを つのステージに分割し,パイプラインステージ数を から へと増加することを考える. ここで,分割された各パイプラインステージの遅延時間は,分割前のパイプラインステージの遅延時間の半分になると仮定する. パイプラインの動作周波数を最大にするために分割すべきパイプラインステージを選択せよ.また,この設計最適化により達成できる最大動作周波数を答えよ(単位は GHz).
(3) あるプログラムの実行において,上記 (2) のパイプラインステージの分割により CPI(Clock cycles Per Instruction)が 10% 増加した. ここで,パイプラインステージ分割は CPI の増加以外の悪影響は生じないと仮定する. このパイプラインステージ分割によって得られた性能向上比を答えよ.
(4) パイプライン段数を増加することの利点と欠点を説明せよ.
【問 3】
キャッシュタグ・フィールド,キャッシュインデックス・フィールド,キャッシュブロッ クオフセット・フィールドからなる ビットのメモリアドレスを入力とするダイレク トマップ・キャッシュメモリについて考える.バイトアドレッシング方式を採用してお り, 語は バイト,キャッシュサイズは キロバイト,キャッシュブロックサイズは 32 バイトとする.キャッシュタグ・フィールドのビット幅を答えよ.
题目描述
【问题 1】已知逻辑函数 的真值表,以及 与 之间的逻辑表达式,均见原题图。求 的最简积和式。这里“最简积和式”首先指积项数最少;若有多个积项数相同的表达式,则取文字总数最少者。
【问题 2】考虑具有 IF(取指)、ID(译码)、EX(执行)、MEM(访存)和 WB(写回)五级流水数据通路的微处理器。回答:
- 五级的延迟依次为 、、、、,求该数据通路的最高工作频率,单位为 GHz。
- 从五级中任选一级拆成两级,使总级数由 增至 ;假设拆分后每一级的延迟均为拆分前的一半。为使工作频率最大,应拆分哪一级?并求优化后的最高工作频率,单位为 GHz。
- 某程序采用上述拆分后,CPI(每条指令的时钟周期数)增加 ;假设拆分不产生 CPI 增加以外的负面影响,求本次拆分带来的性能提升比。
- 说明增加流水级数的优点与缺点。
【问题 3】某直接映射缓存输入 位存储器地址,地址由标记、索引和块内偏移字段组成。系统按字节寻址,每字 字节,缓存容量为 ,缓存块大小为 字节。求缓存标记字段的位宽。
考点
- 布尔函数最简积和式:按积项数优先、文字数次优的标准,结合变量映射和真值表完成逻辑化简。
- 流水线频率与级数优化:以最慢流水级决定周期,选择关键级拆分并计算优化前后的最高频率。
- 处理器性能分析:综合频率提升与 CPI 增长计算加速比,并分析加深流水的收益和控制、冒险、寄存器开销。
- 直接映射缓存地址划分:由总容量和块大小求索引位、由字节寻址求偏移位,进而确定标记位宽。
Kai
【問 1】
| a | b | c | d | X | Y | Z | W | F |
|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
| 0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
| 0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
| 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
| 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
| 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
| 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 |
| 1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
| 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 |
| X | Y | Z | W | G |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 0 | 0 | 1 | x |
| 0 | 0 | 1 | 0 | 1 |
| 0 | 0 | 1 | 1 | 0 |
| 0 | 1 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | x |
| 0 | 1 | 1 | 1 | x |
| 1 | 0 | 0 | 0 | 0 |
| 1 | 0 | 0 | 1 | x |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 1 | 1 | 1 |
| 1 | 1 | 0 | 0 | 1 |
| 1 | 1 | 0 | 1 | x |
| 1 | 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| XY\ZW | 00 | 01 | 11 | 10 |
|---|---|---|---|---|
| 00 | 1 | X | 1 | |
| 01 | 1 | X | X | |
| 11 | 1 | X | 1 | |
| 10 | X | 1 |
【問 2】
(1)
(2)
(3)
(4)
利点:
-
クロック周波数の向上: パイプライン段数を増やすことで、各段の論理ゲート数が減り、クロックサイクルタイムが短くなります。その結果、クロック周波数が向上し、プロセッサの性能が向上する可能性があります。
-
並列処理の向上: 各段が独⽴して動作するため、複数の命令が同時に処理されることができます。これにより、⾼い命令実⾏レートが達成され、システム全体のスループットが向上します。
-
効率的なリソース利⽤: パイプライン段数が増えると、各リソース(ALU、レジスタファイル、キャッシュなど)がより効率的に使⽤される可能性があります。これにより、ハードウェアの消費電⼒やエネルギー効率が向上することがあります。
⽋点:
-
パイプラインハザード: パイプライン段数が増えると、データハザード、制御ハザード、構造ハザードなどのパイプラインハザードが発⽣しやすくなります。これらのハザードは、パイプラインの効率を低下させる可能性があります。
-
複雑さの増加: パイプライン段数が増えると、回路設計や制御ロジックの複雑さが増します。これにより、設計や検証のコストが増加し、バグの発⽣リスクが⾼まる可能性があります。
-
レイテンシの増加: パイプライン段数が増えると、各命令の完了にかかる時間(レイテンシ)が⻑くなる可能性があります。これは、特にレイテンシに敏感なアプリケーションで問題となることがあります。