RXマイコン

RX & SH-2A で浮動小数点演算プログラムを記述する場合の
RXマイコンのFPUを使いこなそう
鹿取 祐二
ここでは RX ファミリの浮動小数点演算ユニット(FPU)機能を使いこなすための注意点について解説する.なお,こ
こで紹介する内容は本誌 2010 年 6 月号で紹介された SH7262(SH2A-FPU)にも通じる.具体的には RX ファミリの
中の RX600 シリーズについて紹介するが,性能比較などの一部の項目では SuperH ファミリの SH2A-FPU も取り上
げる.
(編集部)
能が搭載されています.SH2A-FPU は図 1 に示す単精度・
倍精度のどちらの形式にも対応しています.ただし,CPU
1.RX ファミリの FPU と
HEW のオプション
の汎用レジスタとは異なる浮動小数点レジスタで演算を行
います.このため CPU と FPU 間のデータ転送(整数型と
まずは RX ファミリおよびルネサス エレクトロニクス
浮動小数点型の変換)には専用のレジスタ(FPUL)を使う
統合開発環境(High-performance Embedded Workshop,
必要があります.これに対して RX600 の場合,CPU の汎
以下 HEW)と,その中で動作する RX ファミリ用ルネサス
用レジスタ(R0 ∼ R15)が,そのまま浮動小数点レジスタ
エレクトロニクス製コンパイラにおける FPU(浮動小数点
として働きます.アセンブリ言語でプログラムをコーディ
演算装置)関係のオプションを紹介します.
ングすることはあまりないと思いますが,ソフトウェア的
● RX ファミリにおける FPU 機能
には RX600 の FPU 機能の方が扱いやすい構造になってい
RX ファミリには,性能を重視した最大動作周波数 100
ます.
MHz 程度の RX600 シリーズ(以下 RX600)と,最大動作周
● SH2A-FPU と RX600 の FPU 機能の比較
波数を 50MHz 程度に抑え,低消費電力を強化した RX200
それでは SH2A-FPU と RX600 の FPU 機能は,どちらが
シリーズ(以下 RX200)があります.この二つの中で FPU
性能的に優れているのでしょうか?単純比較では CPU の
機能を搭載しているのは RX600 です.もしこれから作成
汎用レジスタで浮動小数点演算が可能な RX600 の方が優
されるシステムで浮動小数点演算が必要なのであれば,
れています.ただし,SH2A-FPU は 2 命令同時実行のスー
RX600 の利用をお勧めします.また,RX600 が内蔵して
パスカラ機構です.このため,同一の動作周波数であれば
いる FPU 機能は図 1 に示す IEEE の単精度形式のみです.
RX600 より SH2A-FPU の方が性能的には優れています.
倍精度形式での演算機能まではサポートしていないことに
両者の選択はシステム全体の価格や浮動小数点演算の精度
注意してください.演算可能な値の範囲は概算で± 10
± 37
,
等を考慮して決定することになります.いずれにしてもシ
有効桁数は 7 桁となります.
ングル・チップ系のマイコンで FPU 機能を搭載した製品
なお,ルネサス製のマイコンの中では本誌 2010 年 6 月号
は,現状では他社のマイコンを見てもそれほど多くはあり
付属基板に搭載された SH7262(SH2A-FPU)にも FPU 機
ません.
0
符号部
浮動小数点型の符号を示す
0のとき正,1のとき負を示す
指数部
浮動小数点型の指数を2のべき乗
で示す
仮数部
浮動少数点型の有効数字に
対応するデータ
RX ファミリ,SH ファミリ,SH-2A,SH2A-FPU,RX62N,HEW,単精度形式,倍精度形式,HEW
Oct. 2011
ビット 31 30∼ 23 22
0
ビット 63 62 ∼ 52 51
指数部
(8ビット) 仮数部
(23ビット)
符号部
(1ビット)
指数部(11ビット)
仮数部(52ビット)
符号部
(1ビット)
(a)IEEEの単精度形式
(32ビット)
(b)IEEEの倍精度形式(64ビット)
図 1 浮動小数点型の内部表現
114 KEYWORD