固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に

小林士朗

tag: 半導体

技術解説 2003年9月16日

2.FitDSPの基本概念

 「算術方式として浮動小数点を用いるとディジタル信号処理のアプリケーション・プログラムの開発は楽だが,ハードウェア・コストの問題から固定小数点演算プロセッサを使わざるを得ない」.これを突き詰めていくと,ソフトウェア/ハードウェアそれぞれに適した算術方式の不一致に問題がありそうです.

●算術方式の問題を解消するブロック浮動小数点

 こうした算術方式の不一致の問題は,ブロック浮動小数点算術方式を用いて解決できます.ブロック浮動小数点ということばを初めて耳にされる読者の方も多いかもしれません.しかし,実はかなり古い技術です.筆者が知る限りでは,1963年のRounding Errors in Algebraic Processesという書籍1)の中ですでに一般的な考えかたとして紹介されています.

 ブロック浮動小数点は,いわば固定小数点と浮動小数点のそれぞれの長所を組み合わせた算術方式です.複数のデータ・ワードを組(ブロック)とし,データ・ブロックに対して一つの指数を対応させます.指数は,データ・ブロック内で最大値を持つデータ・ワードが正規化されるように設定します.ここで,「正規化する」とは,(上位ビット方向へのシフトによって)仮数が冗長な符号ビットを含まない状態にすることを意味します.図1(c)がそのようすを示しています.

 固定小数点で精度の低下を防ぐためには,指数をうまく設定して,実際の信号が取りうる値とカバーできる値の範囲を合わせればよいことを述べました.ブロック浮動小数点は,この指数の設定を入力データに合わせて自動的に行うための手法です.

 「ブロック浮動小数点ということばを聞いたことのない読者の方が多いのではないか?」と予想するのには,理由があります.それは,ブロック浮動小数点をディジタル信号処理アプリケーションの実装に用いた例が,さほど多くないからです.

 代表的な実用例は高速フーリエ変換(FFT:fast Fourier transform)です2).ご存じのようにFFTでは,同じデータに対して繰り返し演算を施します.さらに演算の途中結果を語長の長いアキュムレータに保持しておけず,いったん語長の短いデータ・メモリに格納しなければなりません.固定小数点を用いた場合,このような演算の繰り返しが精度を大きく低下させます.そのためにFFTの実装ではブロック浮動小数点を使うことがあります.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日