固定小数点プログラム開発の手間を省ける組み込み機器向けDSPコアを開発 ──15人日でMP3デコーダを開発可能に
●階層的ブロック浮動小数点でトレードオフ問題を解消
単精度ブロック浮動小数点は精度が期待するほど向上しないという問題を,倍精度ブロック浮動小数点は実装コストが高いという問題を抱えています.そのため,利用できる局面が限られています.
筆者は,従来のブロック浮動小数点が抱えるこのような実装上の問題に対応するため,階層的ブロック浮動小数点と名付けた方式を開発しました.ブロック浮動小数点が固定小数点と浮動小数点の長所を組み合わせたものであるように,この方式は従来の二つのブロック浮動小数点の長所を組み合わせたものです.階層的ブロック浮動小数点の動作原理を図6に示します.データ・フォーマットは図1(d)に示します.
階層的ブロック浮動小数点では,拡張倍精度で表現された各計算結果を個別に正規化したうえで,メモリにストアします.正規化に要するシフト量(ワード指数)も合わせてストアします.このため,各データ・ワードは,データ・メモリ内で,仮数と指数を持つ浮動小数点的なフォーマットで表現されます.データ・ブロック内の最大値を正規化するためのシフト量(ブロック指数)の算出は,通常のブロック浮動小数点と同じです.指数が階層構造をとることから,階層的ブロック浮動小数点と名付けました.
〔図6〕 階層的ブロック浮動小数点の構成
階層的ブロック浮動小数点のアプローチ.単精度ブロック浮動小数点の安価な実装コストと,倍精度ブロック浮動小数点の高精度を両立できる.