ここで、MIPS社の24Kcの実装例を紹介する(図7)。性能が最も重要な要件であるケースの例であり、32Kバイトのデータキャッシュおよび命令キャッシュを搭載して90nmのプロセス技術を用いている。設計の最適化とトレードオフへの対応により、一定の消費電力を実現しつつ、最大の性能を達成した。その設計では、高性能メモリーとスタンダードセルを使用している。MIPS社による推奨フロアプランを基に、米Magma Design Automation社(以下、Magma社)の「Blast Fusion」向けに提供された設計フローを使用して実装を行った。
キャッシュメモリーは、ブロック周囲のバンクに配置している。フロアプランでは、プロジェクトのIR(電流×抵抗)ドロップ要件を満たすために、より密度の高い電源グリッドが必要であった。そのためメモリーの配置では、電源グリッドのトリミングを防ぐための調整を要した。
まず、電源に関するDRC(Design Rule Check)の問題を低減するために、メモリー領域の周囲に複数の配線と小さな電源リングを使用した。これにより、Blast Fusionの電源ルーターは、スタンダードセルの列に金属配線を作成することなく、メモリーのtie-high/tie-low端子を接続することができる。
電源リングを用いない場合、メモリーの端子を接続する電源配線(赤い線)は、スタンダードセル領域にまで延びている(図8(a))。一方、電源リングを用いると、電源配線はメモリー周辺までとなり、セル領域には到達しない(図8(b))。
スキューを持つクロックツリーを構築すると、多くのクロックバッファとインバータが必要になる。従って、バランスツリー手法を使用するほうがよい。また、メモリーのクロックに少量のスキューを適用して、設計内のクリティカルパスのバランスをとる。
Magma社のクロックツリー合成では、管理可能な数のクロックツリーセルを生成する。クロックツリーを合成したら、プロセッサの実装キットに含まれるBlast Fusionを用いて配線を完成させることができる。
「fix clock(クロック修正)」、「run route track(配線トラックの実行)」などの主要な各工程も、さらに最適化することができる。それにより、以降の工程も楽になる。初期の段階でさらなる最適化を実行しておけば、配線工程である「fix wire(配線修正)」の後のタイミングクロージャにかかる時間を短縮することができる。また、製造ばらつきに対応するためのマージンを設定した後に最適化を適用すると、次の工程に進む前に、変更されたスラックを修復することが可能である。この工程の最適化手法としては、「run place timing-size(配置タイミング/サイズの実行)」や「run timing optimization(タイミング最適化の実行)」など、Magma社が用意するビルトインコマンドを、ゲートのサイズ調整やスキュー変換を行うカスタムスクリプトとともに使用した。
スタンダードセルライブラリを置き換える新しいセルは、Open-Silicon社のCoreMAXを使用して作成した。新しいセルは、最適化のための豊富な選択肢を提供する。これは、配置の最適化と配線後のタイミングクロージャに利用することができる。
これらの最適化手法などをすべて組み合わせた結果、最大動作周波数が518MHzから550MHzへと高速化された。また、最適化前には、ジッターやオンチップばらつき、寄生要素の影響、シグナルインテグリティの問題などが生じていた。しかし、最適化後には、こうした問題が解消された。
図9のようなスラック分布を解析する最適化ツールにより、多くのパスを移動させて、さらに良い結果を得ることもできる。この手法では、最悪のスラックを移動させるために何千ものエンドポイントを使用する。このようなパスの評価と改善には、自動化手法を利用する必要がある。
また、ドライブ能力を強化するなどした拡張ライブラリを用いて最適化を実施することによっても、多大な効果を得ることができる。
Copyright © ITmedia, Inc. All Rights Reserved.