Renesas



Section1
Section2
Section3
Section4
Section5
Section6




初めにRXファミリの特長と製品展開から紹介します。

RXは16ビットや32ビットのミッドレンジをターゲットとしたCISC型のマイコンです。将来に向けたルネサスマイコンのラインナップとしては、8ビットクラスはR8Cファミリ、32ビットクラスはSuperHファミリ、その間を司るのミッドレンジがRXファミリとなります。ミッドレンジと言う観点ではM16C、M32C、H8S、H8SXファミリがありますが、これらファミリの良い点を包含した形式で開発されたのがRXファミリとなります。

RXファミリのシリーズ展開は大きく2つに分かれます。1つはRX600シリーズです。RX600は最大動作周波数を100MHz以上とし、高速・高性能を追求するシリーズです。もう1つはRX200シリーズです。RX200は最大動作周波数を50MHz以下とし、低消費電力性能、すなわち低電圧、低消費電力を追求するシリーズです。

今度はRXのCPUコアの特長について説明します。その特長は3つあり、1つ目はコード効率です。業界最高レベルのコード効率を実現しており、当社従来製品比では30%の削減が可能です。2つ目は高処理性能です。Dhrystone MIPS値では1MHz当たり1.65MIPSを実現しています。3つ目は低消費電力です。CPUコア単体で1MHz当たり0.03mAを実現しています。それではここに示したRX CPUコアの3つの特長を、如何にして実現したかを順に紹介します。

初めはコード効率改善への取り組みから紹介します。全部で5つの項目があり、その中での最大の特長は、「実アプリケーションソフトから高頻出命令を抽出し、命令コードを短縮」した点、簡単に言えば、使用頻度の高い命令に最短の命令コードを割り当てたことです。

こちらがその具体的な内容です。様々なアプリケーションソフトで命令使用頻度を解析した結果、転送命令から加算命令までが全体の約7割であることが分かり、これらの命令に対して短い命令コードを割り当てました。その結果、従来製品との比較ですが、転送命令は2バイト短縮、条件付き分岐命令は1バイト短縮、比較命令は2バイト短縮、サブルーチン分岐命令は1バイト短縮、加算命令は2バイト短縮等を行い、コード効率の改善に取り組みました。

次に挙げる特長は「バイト単位の可変長命令を採用」したことです。これは先程の内容に付随したものですが、RXは最短で1バイトから最長で8バイトの命令を持っています。その中で高頻出命令に対して短い命令コードを割り付けました。

具体的には高頻出である条件分岐命令には1バイトコード、同様にこれも高頻出である転送命令や比較命令には2バイトコードを割り付けました。また、使用頻度は少ないものの繰り返し利用される制御系の演算命令には3バイトコードの命令を割り付けました。

次は汎用レジスタ方式の採用について紹介します。汎用レジスタは、レジスタ指定を4ビットで指定できる16本の構成としています。

こちらがRXのレジスタ構成の詳細です。汎用レジスタは32ビットで16本あり、R0がスタックポインタとして動作します。コントロールレジスタにはスタックポインタ、プログラムカウンタ、ステータスワードの他に高速割り込み用のレジスタ等があります。

何故、汎用レジスタの本数を16本にしたのかの理由ですが、汎用レジスタの本数は多ければ多いに越したことはありません。ただし、汎用レジスタの本数が多くなると、それだけハードウェアの量が多くなり、チップサイズも大きくなることから価格も高くなってしまいます。これに対し、汎用レジスタを指定するための命令コード中のビット数は、16本を越えると5ビット、8本以下ならば3ビット、その間は4ビットが必要です。また、汎用レジスタの本数とアプリケーションプログラムのコードサイズの関係ですが、ベンチマーク評価を行った結果、26本以上でサイズ縮小が飽和し、8本程度ではパフォーマンスが低下し、コードサイズが増加することが分かりました。そこでRXでは全ての境界線である位置を最適化のポイントと考え16本を選択しました。

次は「アドレッシングモードの追加」について紹介します。具体的にはインデックス付きレジスタ間接、ポストインクリメント・プリデクリメントのレジスタ間接を追加しました。

まず、インデックス付きレジスタ間接アドレッシングを採用したことでテーブル参照、開発言語がC言語であれば、添字を使った配列要素のアクセスを効率的に行うことが可能です。また、インデックスはバイトサイズならば×1、ワードサイズならば×2、ロングワードサイズなら×4とデータサイズに合わせてスケーリングされます。これも添字を使った配列要素のアクセスに対するコード効率改善に貢献しています。

それからアドレッシングモードとしては、ポストインクリメントやプリデクリメントのレジスタ間接も採用しました。こちらもデータサイズに合わせて増減分がスケーリングされます。従って、テーブルの連続参照、C言語であればポインタ変数を使った配列要素の連続的なアクセスも効果的に行うことが可能です。

最後は3オペランドフォーマットの採用を紹介します。RXでは論理演算命令、加減算命令、乗算命令で3オペランドを採用し、命令の実行効率、プログラムサイズの削減を行っています。

例えば加算命令であれば、演算元の汎用レジスタとは異なる汎用レジスタを演算結果の格納先に指定可能です。このため従来のような演算元の汎用レジスタを退避しておくと言った制約がなく、プログラム自由度とコード効率改善に貢献しています。また、3オペランドでは汎用レジスタだけでなく、ソースオペランドにはイミディエイト値も指定可能です。

以上のようなコード効率改善への取り組みを行い、業界最高のコード効率、当社従来製品比では30%のコード効率向上を実現しました。

今度は性能向上の取り組みを紹介します。性能向上の取り組みとしては5段パイプライン、ハーバード・アーキテクチャ、Out-of-Order completion等の採用、乗除算命令やDSP命令の強化、バレルシフタへの対応、単精度浮動小数点演算器の搭載を行いました。この第1章では、この中で5段パイプラインとOut-of-Order completionの採用、それとDSP機能の搭載についてのみ紹介を行い、残りの項目に関しては第3章 RXコアの性能で紹介します。

RXは命令パイプラインをフェッチ、デコード、エクゼキュート、メモリアクセス、ライトバックの5段ステージ構成としました。各ステージを1クロックで動作可能であり、CPUコアとしての性能では200MHzの高速動作に対応しています。

また、命令の実行を高速かつ効果的に実行するためOut-of-Order completionを採用しています。これはパイプライン上のストールを可能な限り、発生させないための機能です。例えば、通常のパイプライン動作ではメモリからのロード命令は5段のパイプラインであり、もし、それが低速メモリからのロードであった場合、メモリアクセス・ステージが長くなるため、後続の命令はストールが発生します。ただし、後続の命令が最初のメモリロード命令に影響を与えないのであれば、後続の命令のライトバック・ステージを先に実行しても問題はありません。これがOut-of-Order completionであり、RXのパイプライン動作はこの機能を採用し、パイプライン・ストールを極力避けた効率的な命令の実行が可能となっています。

次はDSP機能の搭載について紹介します。詳しくは第3章で紹介しますが、RXでは乗除算命令を強化し、単精度ではありますがFPUも搭載しています。また、各種のフィルタ演算に対応するため、DSP機能も搭載しています。例えば、メモリ内に配置した32ビットのデータを連続的に積和し、その結果を80ビットで格納することが可能です。また、レジスタ間であれば16ビット同士のデータを積和し、その結果を専用のアキュムレータに48ビットで格納することも可能となっています。この他にもバレルシフタも内蔵し、シフト命令の高速化も行っています。つまりRXは制御系だけでなく、演算系の命令も強化したマイコンであると言えます。

最後はCPUコアの性能ではなく、内蔵フラッシュメモリについて紹介します。これはRXだけではないのですが、ルネサス製の殆どのマイコンには100MHzまではノーウエイトでアクセス可能なフラッシュメモリが搭載されています。一方、他社のマイコンに搭載されているフラッシュメモリの場合、ノーウエイトでアクセス可能なのは30MHz程度です。30MHzを超えるとウエイトが必要となり、100MHzでは3ウエイト以上のアクセススピードが必要となってしまいます。つまり、他社製品の場合、CPUが100MHzで動作可能であったとしても、そのCPUの動作速度に内蔵のフラッシュメモリが追い付かず、結果的には30MHz程度の性能しか出すことができません。これに対してRXに搭載された内蔵のフラッシュメモリは100MHzでアクセス可能ですから、CPUの動作速度を妨げることなく、CPUの性能をそのまま発揮することが可能です。この内蔵フラッシュメモリのアクセススピードの速さもRXの高速・高性能に貢献しています。

以上、紹介してきました性能向上への取り組みの結果、RXはDhrystone MIPS値で1MHz当たり1.65MIPSを実現しています。

これは弊社の50MHzの従来製品と比較した場合、50MHzの動作周波数で約2倍の性能、100MHzの動作周波数であれば約4倍の165MIPSの性能を発揮することが可能です。

今度は低消費電力化への取り組みについて紹介します。当然ではありますが、いくらCPUの性能が高くても、それにつられて消費電力が高くなっては話になりません。そこでRXでは低消費電力化への取り組みとして、2つの設計手法を採用しています。1つはクロック・ゲーティング設計手法、もう1つはマルチスレッシュルド/リーク電流最小化設計手法です。これらの設計手法を採用した結果、CPUコア単体で1MHz当たり、0.03mAの消費電力を達成しています。以下、これらの詳細について紹介します。

クロック・ゲーティング設計手法とは、使用しないロジック部のクロック供給を適宜停止する機能です。通常の論理合成では全てのゲートにクロックが供給され、それが電力を消費する原因となります。そこでRXでは消費電力を削減するため、クロック・ゲーティング回路を挿入できる仕組みを取りました。これにより使用しないロジック部はイネーブル信号によりクロック供給を停止することが可能となり、通常動作時の消費電流を低減させることが可能となります。

もう1つのマルチスレッシュルド/リーク電流最小化設計手法とは、低速セルと高速セルを使い分けた設計手法です。今までの設計手法では、100MHzを超えると無条件に高速セルだけを使用するのが一般的でした。ただし、それでは消費電力も、当然ながら高くなってしまいます。そこでRXでは全てに高速セルを使うのではなく、積極的に低リーク電流である低速セルを使い、消費電力の削減に取り組みました。ただし、低リークの低速セルだけでは100MHzの動作速度を達成できないため、速度を落とすことができないクリティカル・パスにだけ高速セルを使っています。

以上、紹介してきました低消費電力化への取り組みの結果、RXはCPUコア単体で1MHz当たり0.03mAを実現しました。

また、内蔵周辺機能を含めたマイコン全体で見ても、RXファミリは100MHz動作時50mAの低消費電流を実現しています。これはSuperHファミリに代表されるような同一周波数のマイコンと比較した場合には消費電流を半減しており、H8ファミリに代表されるような同一消費電流のマイコンと比較した場合には2倍の高速動作を実現したことになります。

ここからはRXファミリの製品展開について紹介します。

RXファミリの最初の製品はRX600シリーズです。RX600シリーズは既存のH8ファミリ、M16Cファミリ、さらにはSuperHファミリに内蔵されている使い勝手の良い周辺機能を内蔵し、製品展開を図っています。具体的にはOA機器向け、民生機器向け、産業用途向け、自動車分野向けにパッケージ、内蔵するメモリ容量、周辺機能のバリエーションを換えながら製品展開を行っています。

この図は2009年、11月時点における、RXファミリの製品展開の開発ロードマップです。現在、製品化されているものはRX610であり、2010年の初旬にRX62NとRX621が製品化されます。ここでは両グループの紹介を行います。

初めにRX610グループから紹介します。

RX600シリーズの最初の製品がRX610グループです。RX610グループで多ピン及び大容量メモリ品を展開します。現在、RX610グループの後継で継承性を維持し、周辺機能の強化やメモリ/パッケージの展開製品を計画中です。

RX610グループの特長は、大容量のメモリを内蔵していることと、アナログ機能を強化していることです。メモリ容量は、最大2MBのフラッシュ、128KBのSRAM、32KBのデータフラッシュを搭載しています。このため、チップ外部にメモリを接続することなく、お客様が開発されるアプリケーション・プログラムの搭載が可能であると考えております。アナログ機能に関しては、1ユニット当たり4チャネルのA/D変換器を4ユニット内蔵しています。これらはユニット間で単独動作が可能ですから、4チャネル同時に実行可能であり、最短0.8μsでA/D変換を行うことが可能です。

RX610グループの内部ブロック図です。内蔵周辺機能としては、既存の製品で使い勝手の良いものを多く取り込んでおり、DMAC、DTC、タイマ、シリアル等の通信機能、A/D、D/A変換器を内蔵しています。

RX610グループの品種展開です。現在は内蔵ROM/RAMの容量とパッケージの種類により、全部で8品種に分かれています。今後も品種展開は積極的に行っていく予定となっています。

RX610グループの開発計画です。量産品の出荷は2010年の1Qとなっています。マニュアル、Cコンパイラ、μITRON仕様OS、エミュレータの開発計画も、この図の示す通りとなっています。

今度はRX62N、RX621の2つのグループを紹介します。

RX62NのNは文字通り、ネットワークのNであり、通信系を強化したグループです。通信機能としてはイーサネット、CAN、ホストとファンクションのUSB、さらにはSPIやI2Cを内蔵しています。RX62NグループとRX621グループの違いは、イーサネットを内蔵しているかどうかです。イーサネットを内蔵しているものがRX62Nグループ、内蔵していないものがRX621グループです。

通信機能を強化しているRX62NとRX621のグループは機器のメンテナンス性の向上、すなわち機器の市場におけるプログラムアップデートに対応可能です。例えば、USBを使ったPC接続によるプログラムのアップデート、イーサネットやCANを使ったネットワーク経由によるプログラムのアップデート、USBのホスト機能を使ったサービスマンによるプログラムのアップデート等に対応可能です。

RX62Nグループの内部ブロック図です。通信系以外の周辺機能としては、外部の部品点数を削減するためのPOR/LVD、CPUのクロックとは独立したクロックでプログラムの暴走検出を調べるWDTに対し、クロック供給可能なOCO、さらにはモータ制御に最適なタイマであるMTU2を内蔵しています。

RX621グループの内部ブロック図です。RX62Nグループとの違いは、イーサネットがないことです。代わりに85ピンのパッケージ製品もありますから、RX62Nグループよりは小型な製品の開発に適していると言えます。

RX62NとRX621グループの品種展開です。内蔵ROM/RAMの容量とパッケージの種類により、全部で31品種を展開する予定となっています。

RX62NとRX621グループの開発計画です。量産品の出荷は2010年の1Qとなっています。マニュアル、Cコンパイラ、μITRON仕様OS、エミュレータの開発計画も、この図の示す通りとなっています。

最後にRX62N用のミドルウェアとドライバの開発計画を紹介します。イーサネット、USB、CANの通信機能をサポートするミドルウエアとドライバを2010年3月のWSに向けて開発中です。