... | @@ -3,7 +3,7 @@ |
... | @@ -3,7 +3,7 @@ |
|
|
|
|
|
発展課題は好きなことをしていただいて構いませんが、以下にいくつか例をあげておきます。
|
|
発展課題は好きなことをしていただいて構いませんが、以下にいくつか例をあげておきます。
|
|
以下の例は主にプロセッサの性能を上げる方向の発展課題です。
|
|
以下の例は主にプロセッサの性能を上げる方向の発展課題です。
|
|
2018年から行っているプロセッサ実験で、学生が作ったプロセッサの中で最も高いCoreMarkスコアは134、最も高いクロック周波数は130MHz、最も高いIPCは1.5でした。
|
|
2018年から行っているプロセッサ実験で、学生が作ったプロセッサの中で最も高いCoreMarkスコアは134、最も高いクロック周波数は130MHz[^1]、最も高いIPCは1.5でした。
|
|
ぜひこの記録の更新を狙ってみて下さい(少なくともこれらより高くできることを、TAが確認しています)。
|
|
ぜひこの記録の更新を狙ってみて下さい(少なくともこれらより高くできることを、TAが確認しています)。
|
|
|
|
|
|
もちろん、プロセッサの性能を上げる以外の好きなことをするのも全くかまいません。
|
|
もちろん、プロセッサの性能を上げる以外の好きなことをするのも全くかまいません。
|
... | @@ -116,3 +116,6 @@ CPU の実行すべき命令は、必ずしも直前の命令の結果を使う |
... | @@ -116,3 +116,6 @@ CPU の実行すべき命令は、必ずしも直前の命令の結果を使う |
|
インオーダーのスーパースカラでは、既に実行可能な命令が後ろの方にあっても、前から順番に実行していかないといけないという制約の都合上、その命令を実行することができません。そのような場合、Exec Unit(ALUや乗算器などの演算器およびメモリアクセスに必要な資源)が遊んでいることになり、もったいないです。アウトオブオーダー実行できれば、そのような命令を先に実行することができ、遊んでいる Exec Unit が有効活用されるため、性能が向上します。
|
|
インオーダーのスーパースカラでは、既に実行可能な命令が後ろの方にあっても、前から順番に実行していかないといけないという制約の都合上、その命令を実行することができません。そのような場合、Exec Unit(ALUや乗算器などの演算器およびメモリアクセスに必要な資源)が遊んでいることになり、もったいないです。アウトオブオーダー実行できれば、そのような命令を先に実行することができ、遊んでいる Exec Unit が有効活用されるため、性能が向上します。
|
|
|
|
|
|
Exec Unit 以外はほとんど書き直しになってしまうので、実装量は多くなります。外から見た結果が、命令の順番通り(インオーダーに)実行した時と必ず一致する必要があるため、考えることがたくさんあります。
|
|
Exec Unit 以外はほとんど書き直しになってしまうので、実装量は多くなります。外から見た結果が、命令の順番通り(インオーダーに)実行した時と必ず一致する必要があるため、考えることがたくさんあります。
|
|
|
|
|
|
|
|
----
|
|
|
|
[^1]:タイミング制約を満たしていないものの、250MHzで動かした人もいました。TAは、タイミング制約を満たしつつ250MHz超で動かせることを確認しています。 |