みんながシステム設計を気にする理由 ――システムLSI開発の視点から
●ソフトとハードの境界部分の設計が焦点に
CPUコア,メモリ,周辺回路などが1チップに集積されるようになると,LSIのアーキテクチャが変わります.例えば,オンチップ・バスは外部バスに比べてはるかに高速に動作します.そのため,ハードウェア処理とソフトウェア処理の境界部分を変更することが可能になります.
従来のアーキテクチャでは,高速なリアルタイム処理をハードウェアで行い,結果をソフトウェアに通知するという構成がほとんどでした.一方,CPUコア,メモリ,周辺回路を1チップに集積すると,ソフトウェアとハードウェアが協調しながらリアルタイム処理を行うような構成も考えられます.
また,従来は,機器開発の早い段階でハードウェア処理とソフトウェア処理の境界部分が決められていました(図3(a)).そのため,LSIのアーキテクチャを決める段階では,ハードウェアのことだけを考えていれば済みました.しかし,CPUコア,メモリ,周辺回路が1チップに集積されるようになると,ソフトウェアとハードウェアの役割分担を検討しながらLSIのアーキテクチャを設計していくことになります.
図3(b)に示したように,システムLSIは,入出力回路などのように明らかにハードウェアで実装される部分,OSやアプリケーション・ソフトウェアなどのように明らかにソフトウェアで実装される部分,そしてソフトウェアになるかハードウェアになるか事前にわからないグレーな部分に分かれます.このグレーな部分のおかげで,システムLSIの開発では,アーキテクチャの選択肢が非常に多くなります.そのため,ソフトウェア処理とハードウェア処理のバランスをうまく取って,将来への拡張性,機能の柔軟性,消費電力,コストなどが最適になるようにアーキテクチャをチューニングする必要があります.
従来のようにソフトウェアとハードウェアを別々に設計するスタイルでは,システムLSIの開発はうまくいきません.まず,ハードウェアとソフトウェアの両方に熟知したシステム・アーキテクトと,ハードウェア技術者,ソフトウェア技術者の協調が必要です.そして,ハードウェアとソフトウェアの両方を並行して設計できる開発手法が必須になります.
〔図3〕ソフトウェア処理とハードウェア処理の境界部分
従来のシステム設計では,ソフトウェアとハードウェアの境界は開発の初期に決まっていた.システムLSIの設計では,ソフトウェアとハードウェアの役割分担を決めながらアーキテクチャを設計する.