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
© Copyright 2025 ExpyDoc