[an error occurred while processing the directive]

Fall Microprocessor Forumレポート

ルネサスがマルチコア対応のSuperHコアを開発

カンファレンス会期:10月10日~11日(現地時間)

会場:米カリフォルニア州サンノゼ DoubleTree Hotel



講演者の亀井達也氏(ルネサステクノロジ システムソリューション統括本部 システムコア技術統括部 技師)

 ルネサステクノロジは、SuperHアーキテクチャでマルチコア対応のCPUコア「SH-X3」を開発し、その概要をFall Microprocessor Forum(Fall MPF) 2006で発表した。

 SuperHアーキテクチャは、ルネサスの独自仕様による32bit RISCアーキテクチャである。日立製作所の半導体部門が基本仕様を開発した。日立製作所と三菱電機の半導体部門が統合してルネサステクノロジが誕生した後は、ルネサスが開発を引き継いでいる。これまでにSH-1、SH-2、SH-3、SH3-DSP、SH-4、SH-2A、SH-4Aといったコアアーキテクチャが開発されている。

 SH-X3は、SH-Xシリーズの3世代目に相当するCPUコアになる。SH-Xシリーズは、SuperHプロセッサの最上位アーキテクチャであるSH-4Aを実装した。SH-4Aは2命令同時発行のスーパースカラー構造を採る。初代の「SH-X1」は130nm世代品で、7段のパイプラインを備えており、400MHzで動作する。製品には携帯電話機用マイコン「SH-Mobile3」、カーナビ用マイコン「SH-Navi1」などがある。2代目の「SH-X2」は90nm世代品で、パイプラインが8段に延び、800MHzで動く。製品には携帯電話機用マイコン「SH-Mobile G1」、カーナビ用マイコン「SH-Navi2」などがある。

 今回開発したSH-X3は、CPUコア自体はSH-X2を流用している。SH-X2をベースに、マルチコア対応の機能を追加したCPUコアと言える。組み込み用途を想定しているので、SMP(Symmetric Multi-Processing)とAMP(Asymmetric Multi-Processing)の両方に対応するほか、両者が混在したシステムをサポートする。また論理合成可能な(シンセサイザブル)コアであり、システムLSIに柔軟に展開できるようにしてある。

SH-X3の基本仕様 SH-X3のOSサポートに対する考え方。SMPとAMPをそれぞれサポートするほかに、SMP対応OSとSMP非対応OSが混在するシステムもサポートする SH-X3のパイプライン構造。SH-X2と基本的には同じである。整数演算パイプラインは8段

 SuperHコアをマルチコア化にするために追加された機能はいくつかある。SMPに対応するためにキャッシュコヒーレンシ機能を搭載しており、AMPに対応するためにキャッシュとは別に、CPUから直接アクセスできるローカルメモリを装備した。このほか割り込み機能や電力管理機能などをマルチコア対応のために変更している。

 なお、こういった変更と論理合成可能なコアであるということから筆者はSH-X3に対し、ARMコアのようなシステムLSI内蔵を前提としたコアに近いとの印象を受けた。SuperHコアは、ルネサスの標準製品用コア、あるいはルネサスのシステムLSIビジネス用コアというイメージが強い。SH-X3はこういったイメージから少し離れて、ルネサス以外の半導体製造企業(シリコンファウンドリ)、もっと極端に言ってしまえば、ファブレスの半導体企業がSuperHコアをライセンス導入して台湾TSMCなどのファウンドリを使えるような状況を想定しているように見える。実際、ルネサスはSuperHコアのライセンス事業を展開しており、同事業の強化を考えてもおかしくはない。

 それではSH-X3の内容をもう少し詳しく見ていこう。まずメモリだが、CPUコアごとにキャッシュとローカルメモリを装備する。ローカルメモリは2階層ある。最初の階層がノーウエイトでアクセスできる、命令用とデータ用のローカルメモリになる(ILRAMとDLRAM)。次の階層は命令とデータを区別しない、ユニファイドメモリである(URAM)。こちらはアクセスに数サイクルのウエイトを必要とする。

 ローカルメモリを搭載したのは、これも組み込み用途を想定したからである。キャッシュはタグメモリがあったり、キャッシュのラインによる一度に転送する容量の制約があったりと、組み込み用途では必ずしも使い勝手が良くない。ローカルメモリにはこういった制約がなく、かなり自由にデータを転送できる。ただし、データ転送のプログラミングをどうするかという問題が残る。SH-X3では、データトランスファユニット(DTU)と呼ぶ独自のデータ転送回路を設けてプログラミングを容易にしている。また早稲田大学が開発した並列化コンパイラ「OSCAR」を使うと、キャッシュとローカルメモリへの割り付けをコンパイラが管理するようになる。

SH-X3の内部ブロック。4個のCPUコアを搭載した構成。キャッシュのコヒーレンシを保つスヌープコントローラ、ローカルメモリ、CPUコア間を結ぶ高速のオンチップバスなどを装備した キャッシュのコヒーレンシを保つ手順の例 データトランスファユニット(DTU)の仕組み。データ転送用のコマンドをローカルメモリに格納しておく。このコマンドによってDTUがデータを転送する
データトランスファユニット(DTU)を利用したプログラミング。並列化コンパイラを使えば、C言語のソースをCPUの命令とDTUのコマンドに自動的に分割してくれる CPUコア間を結ぶバス「SuperHyway」。バス幅は64bit。スプリットトランザクションとアウトオブオーダーをサポートする。最大データ転送速度は17.5GB/sec。なお厳密には「SuperHyway」はSH-X3用のバスではなく、ルネサスのシステムLSI用高速オンチップバスである

 割り込みには、2種類の外部割り込みモードと、CPU間の通信による割り込みモードがある。外部割り込みモードでは、割り込み応答するCPUがあらかじめレジスタ設定されているモード(スタティックモード)と、割り込み要求に対して最も早く応答したCPUが割り込み動作に入るモード(ダイナミックモード)を用意した。

割り込みモードの概要 スタティックモード。マスクレジスタの設定によって割り込みを受け付けるCPUを決めておく
ダイナミックモード。割り込みコントローラからの割り込み要求に対し、最も早く応答した(Acknowledgeを返した)CPUが割り込み動作に入る プロセッサ間割り込み。プロセッサ間割り込み用レジスタ(IPIレジスタ)により、どのCPUに割り込むかを決める

電力管理の仕組み。電源ドメインをCPU、キャッシュ、ローカルメモリに分割してある。CPUの動作状態に応じて電源供給の対象を変更する

 また電力管理では、CPUコアごとに電源供給をきめ細かく設定した待機モードを4段階で設けた。

 なおSH-X3の開発スケジュールだが、2006年10月に評価用チップが製造される。リリースは2007年第1四半期の予定である。さらに、Linuxなどのマルチコア対応OSへのポーティングを現在進めている。


□Fall Microprocessor Forumのホームページ(英文)
http://www.in-stat.com/FallMPF/06/

(2006年10月13日)

[Reported by 福田昭]

【PC Watchホームページ】


PC Watch編集部 pc-watch-info@impress.co.jp
お問い合わせに対して、個別にご回答はいたしません。

Copyright (c)2006 Impress Watch Corporation, an Impress Group company. All rights reserved.