本連載はHisa Ando氏による連載「コンピュータアーキテクチャ」の初掲載(2005年9月20日掲載)から第72回(2007年3月31日掲載)までの原稿を再掲載したものとなります。第73回以降、最新のものにつきましては、コチラにて、ご確認ください。

以上で述べた見積もりでは、単位面積あたりのスイッチ容量は一定としているが、実際のマイクロプロセサチップでは回路が密に配置されている部分もあれば、比較的まばらなところもありスイッチ容量は一定ではない。また、動作率αも一定の値を用いているが、回路ブロックにより動き方が違う。例えば、整数演算器は多くのプログラムで比較的高い動作率となるが、浮動小数点演算器は科学技術計算では高い動作率であるが、浮動小数点演算を必要としないプログラムを走らせている場合は動作しない。このように、動作率は回路の部分と走らせるプログラムによって変動する。

従って、更に精度の高い消費電力見積もりを行うには、これらの数値を実際の設計に近づける必要がある。以前の設計をあまり大きく変更しない設計の場合は、前世代のチップ設計のデータから改良設計する場合のデータを比較的高い精度で推定することが可能であるが、完全に新規設計の場合は、論理シミュレータを使って動作率を求めたり、ある程度のレイアウトを行って配線容量を求めたりすることが必要となる。

しかし、最初にアーキテクチャを考える時点では設計は始まっていないのでシミュレーションやレイアウトを行う方法は使えない。従って、この時点では、上で述べたような面積あたりのスイッチ容量や動作率は一定という粗い見積もりか、回路ブロック単位にスイッチ容量や動作率を机上で見積もり、Excelなどで電力計算を行う方法でアーキテクチャ的なトレードオフを行い、設計が進むにつれて見積もり精度を向上させるという方法が採られる。

アーキテクチャトレードオフ

マイクロプロセサを開発する場合、それがサーバ用なのか、デスクトップ用、モバイル用などかで要求される性能や許容できるコストや消費電力が変わってくる。マイクロアーキテクチャの検討は、こられの要件をどのように満たすか、さらに可能であれば、コストと消費電力の制約のなかで性能を最大化するとか、必要な性能とコストの範囲内で電力を最小にするような基本構造を考えることである。従って、アーキテクチャの検討にあたっては、マイクロプロセサの論理的な構造だけでなく、チップ面積や消費電力を意識したトレードオフを行うことが求められる。

ある機能を実装するのに必要な論理回路量やメモリ量を見積もることについては、今後のコラムで述べて行きたいと考えているが、回路量を見積もった後、それがどの程度のチップ面積となるか、そして、どの程度の消費電力となるかなどについては今回のシリーズで述べた方法により、粗い見積もりを行うことが出来る。この見積もり手法は精度は高くないが、メモ用紙に走り書きで計算できる程度に簡単な見積もりであるので、ある設計案が面積や電力の点で実現可能性があるのか、あるいは電力が過大などの理由で実現性がないのかなどを大雑把に判定するのには便利である。また、消費電力などは絶対値での見積もり精度は低くても、同じ見積もり方法を使用すれば設計案Aと設計案Bの比較に関しては十分に意味がある結果が得られる。

従って、設計の初期段階では本シリーズで述べた手法を用いて各種のアーキテクチャ的な機構の実装のコストを評価し、直感やアーキテクチャシミュレータなどによる性能や機能の改善とのトレードオフを行い、それぞれのアーキテクチャ的な機構の採否の決定に役立てることが出来る。

なお、本シリーズで用いた寸法やゲート容量、配線容量などの数値は、現実的なものになるよう心掛けたが、個々の半導体プロセスや設計スタイルなどによっても変わるものであり、そのまま特定の設計に対して適用すると誤差が大きい。従って、実際の設計に適用するに当たっては、使用する半導体プロセスや設計対象などに合わせて数値を修正して戴きたい。