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

小林士朗

tag: 半導体

技術解説 2003年9月16日

 メモリにストアした計算結果を入力データとして演算器にロードする際に,個々のワード指数とブロック指数を比較し,指数の差分だけ各仮数を非正規化します.ここで,「非正規化する」とは,(下位ビット方向への算術シフトによって)仮数が冗長な符号ビットを含む状態にすることを言います.この操作により,各データ・ワードのワード指数はブロック指数と同一となり,廃棄可能になります.こうして,各データ・ワードは固定小数点フォーマットに再変換され,固定小数点演算器に入力可能になります.

 非正規化処理のシフト操作は,下位ビット方向へのシフトです.単精度ブロック浮動小数点と異なり,下位ビットに無効ビットが挿入されることはありません.そのため,倍精度ブロック浮動小数点の場合と同じ信号処理精度を期待できます.逆にメモリ内では単精度の仮数と短語長の指数としてデータ・ワードを保存しているので,実装のコストは単精度ブロック浮動小数点の場合に近いものになります.

 図7に示すように,複数のデータ・ワードをまとめてデータ・グループとして構成することで,さらに実装コストを低減できます.グループ内の全データ・ワードのワード指数を,グループ内で最大値を持つデータ・ワードのワード指数(グループ指数)で代表させます.

f07_01.gif
〔図7〕データ・ブロック構造を用いた階層的ブロック浮動小数点
複数のデータを集めてグループとし,グループに一つの指数を割り当てることにより,階層的ブロック浮動小数点の実現に必要なメモリ・コストをさらに削減できる.筆者は,通常4~8個のデータを一つのグループにしている.

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日