固定小数点方式および浮動小数点デジタル信号処理

固定小数点方式および浮動小数点デジタル信号処理

著者の連絡先情報

デジタル信号処理から始まるイノベーション

デジタル・シグナル・プロセッサ(DSP)は、現実世界のデジタル化データを実時間処理するために不可欠なもので、基本的な民生機器から精巧な工業用計測器までの広範なアプリケーションを可能にするために必要な、高速の数値計算を実行します。最大限の柔軟性を実現するプログラマブルなソフトウェアを備え、使いやすくロー・コストの開発ツールに支えられているため、設計者はDSPを使用することで、革新的な機能と差別化価値を製品に取り込み、これらの製品を手早くかつコスト効率の良い方法で市場投入できます。

アプリケーションに適したデジタル・シグナル・プロセッサを選択する場合、システム設計者が重視すべき考慮事項は多数あります。アプリケーションに必要な計算能力、プロセッサとシステムのコスト、性能に関する属性、開発のしやすさなどが、その考慮すべき重要要素の例です。これらの要素のバランスを考慮することで、設計者はアプリケーションに最適なDSPを特定できます。

固定小数点と浮動小数点の比較

デジタル信号処理は2つのカテゴリに分けられます。固定小数点と浮動小数点です。こうした呼び名は、数値表示されたデータを保存し操作するために使用するフォーマットを表現したものです。固定小数点DSPは、整数(正および負の整数)を最小16ビットで表記し操作するために設計されたもので、最大65,536とおりのビット・パターン(216)が可能です。浮動小数点DSPは、有理数を科学表記と同様の方法で最小32ビットで表記し操作します。この場合、数字は仮数と指数で表され(例えばAを仮数、Bを指数として、A × 2B)、最大4,294,967,296とおりのビット・パターン(232)が可能です。

「固定小数点」という用語は、小数点の後(場合によっては前)の桁数を固定して数値を表現する方法を指します。浮動小数点表記では、小数点の場所は数字の有効桁数に応じて「浮動」します。例えば、一律の小数点位置規則を持つ固定小数点表示では、数字を123.45、1234.56、12345.67といったように表示しますが、浮動小数点表示ではこれに加えて、1.234567、123456.7、0.00001234567、1234567000000000などという表記が可能です。したがって、浮動小数点の方が固定小数点よりも広い範囲の値に対応でき、非常に小さい数値や非常に大きい数字を表記できます。

固定小数点表記の場合、隣り合う数字の間隔は常に1という値に等しくなりますが、浮動小数点の場合は隣り合う数字の間隔は一様ではありません。2つの数字の間の間隔はその数値よりも約1000万倍小さくなり(ANSI/IEEE Std.754規格のフォーマット)、また、大きな数の間の間隔は大きく、小さな数の間の間隔は小さくなります。

ダイナミック・レンジと精度

浮動小数点計算に内在する累乗によって、ダイナミック・レンジ(表現できる最大値と最小値)が大幅に拡張できます。このことは、極めて大きなデータ・セットや範囲が予測できないデータ・セットを処理する場合に特に重要です。したがって、浮動小数点プロセッサは、計算を主体とするアプリケーションに最適です。

また、精度、つまり数字の間隔の大きさという観点で固定小数点と浮動小数点を検討することも重要です。数学的な計算によってDSPが新しい数値を発生するたびに、その数値は使用しているフォーマットで保存可能な最も近い値に丸める必要があります。信号処理の間に数値を丸めたり切り捨てたりすることは、当然ながら量子化誤差つまり「ノイズ」(実際のアナログ値と量子化されたデジタル値との差)を生み出します。固定小数点処理の場合、隣接する数値の間隔は浮動小数点処理に比べはるかに大きいため、丸め誤差はより一層著しくなります。したがって、浮動小数点処理の方が固定小数点処理に比べ格段に高精度となり、計算精度が重要な条件となる場合には、浮動小数点プロセッサが最適なDSPとなります。

重要な考慮事項 - コスト、開発のしやすさ、性能

通常、ダイナミック・レンジと精度に関する考慮事項が、固定小数点プロセッサと浮動小数点プロセッサのどちらがアプリケーションに適しているかを設計者が判断するために使用する基準となり、計算に対する要求が高い場合は浮動小数点が優位となります。しかし、これら2つのフォーマット間で選択を行う場合、考慮すべき重要な関連要素はほかにも多数あります。

プロセッサのコスト:製品の部品表(BOM)コストを下げる設計者の能力は、競争力のある価格設定、市場浸透率、収益性などに直接影響します。固定小数点DSPは浮動小数点DSPよりも多くの大量アプリケーションで使用されており、そのため、製造スケーリングの効果により浮動小数点DSPよりも安価であるのが通常です。オンボード・メモリ、アプリケーション固有の統合化周辺機器、接続性オプションなどを含むシステムオンチップ(SOC)派生品も、固定小数点プロセッサと浮動小数点プロセッサの両方のコストおよび機能に影響する可能性があります。

開発のしやすさ:設計者が製品の開発をしやすいほど、その製品は競合他社に先んじて市場投入できる可能性が高まります。固定小数点アルゴリズムでは量子化ノイズを補償するために大量の操作が必要となるため、一般的には、浮動小数点DSPのアルゴリズム開発の方が容易です。したがって、複雑なアルゴリズムを実装する場合には、設計者は通常、浮動小数点DSPを選択します。ここでも再び、SOC派生品によって製品開発サイクルを短縮でき、関連する製品開発ツールのエコシステムやサードパーティのサポート・ソフトウェアによっても同様に短縮できます。

性能:1つのアプリケーションでのDSPの動作実行速度は、重要な考慮事項です。設計者は、アルゴリズムを最大の効率で処理するDSPフォーマットを実装する必要があります。浮動小数点プロセッサに固定小数点コードをプログラムすることやその逆も可能ですが、性能上の重大な制約が生じる可能性があります。性能効率は消費電力にも影響する可能性があります。例えば、固定小数点のタスクを実行するために浮動小数点プロセッサが実装されている場合、固定小数点プロセッサが実装されている場合よりも消費電力は大きくなる可能性があります。これは、電源や冷却に関する条件および関連のBOMコストに影響を与えかねません。

以上をまとめると、浮動小数点DSPは計算を主体とする専用のアプリケーションに最適化されており、固定小数点DSPは大量の汎用アプリケーションに最適化されています。開発コストは、アルゴリズムの実装が比較的困難なため固定小数点の方が高くなりますが、多くの場合最終製品のコストは低くなります。プロセッサのコストが高く製造量が少ないために、浮動小数点DSPを利用するアプリケーションの製品コストは高くなりますが、設計者は開発がしやすいという利点を生かすことやシステム全体の精度を向上することができます。最終的には、目標アプリケーションに関連するデータ・セットの条件によって、固定小数点処理と浮動小数点処理のどちらが必要なのかが決まります。

アナログ・デバイセズ - DSPイノベーションの業界リーダー

比類のない性能と価値を提供し、開発ツール、アプリケーション、サードパーティの協力で構成される潤沢なエコシステムで補完されたアナログ・デバイセズのデジタル・シグナル・プロセッサは、幅広い革新的アプリケーションにおいて真っ先に選択されるプロセッサです。

アナログ・デバイセズのBlackfin®固定小数点デジタル・シグナル・プロセッサ

アナログ・デバイセズの16/32ビット固定小数点Blackfinデジタル・シグナル・プロセッサは、今日のオーディオ、ビデオ、通信などの組み込みアプリケーションの計算に対する要求事項や消費電力の制約を満たすことに特化して設計されています。Blackfinプロセッサは、最先端の信号処理機能と汎用マイクロコントローラの使いやすい属性を組み合わせ、画期的な性能とRISCプログラミング・モデルによる高電力効率とを実現しています。この処理属性の組み合わせにより、Blackfinプロセッサは、信号処理アプリケーションと制御処理アプリケーションのどちらにおいても同じように優れた性能を発揮できるため、多くの場合、ヘテロジニアス・プロセッサを個別に用意する必要性がなくなります。この機能により、ハードウェア設計とソフトウェア設計の両方においてその実装作業が大幅に簡略化されます。

アナログ・デバイセズのSharc®浮動小数点デジタル・シグナル・プロセッサ

アナログ・デバイセズの32ビットSHARC浮動小数点デジタル・シグナル・プロセッサは、比類のないコアおよびメモリ性能と優れたI/Oスループット能力のバランスが取れたスーパー・ハーバード・アーキテクチャに基づいています。このスーパー・ハーバード・アーキテクチャは、プログラム・バスとデータ・メモリ・バスを分離するという元来の概念を、I/Oプロセッサと関連する専用バスを追加することで拡張したものです。SHARCプロセッサは、計算を主体とするほとんどの実時間信号処理アプリケーションの要求を満たすことに加え、大きなメモリ・アレイと、製品開発を簡素化し市場投入時間を短縮するよう設計されたアプリケーション固有の周辺機器を統合しています。

デジタル・シグナル・プロセッサ、ソフトウェア開発ツール、およびサポートに関するアナログ・デバイセズのポートフォリオ全般の詳細については、www.analog.com/processorsを参照してください。