(57)【要約】【課題】積和演算の処理能力を向上する。【解決手段】ディジタル信号処理装置は、複数のレジスタと、クロック信号に同期して時系列的に前記複数のレジスタにデータを格納するデータ転送部と、同じタイミングで前記複数のレジスタに格納されたデータに対して演算を実行する演算部とを備える。前記データ転送部は、与えられた命令に応じて、前記クロック信号の或るタイミングで前記複数のレジスタのうちの或るレジスタに格納された前記データを、次のタイミングで前記複数のレジスタのうちの指定された他のレジスタに格納するように転送する。ＳＩＭＤによるフィルタ演算の処理能力を向上することができる。【選択図】図１
2012155569.tif 000002
【特許請求の範囲】
【請求項１】
複数のレジスタと、
クロック信号に同期して時系列的に前記複数のレジスタにデータを格納するデータ転送部と、
同じタイミングで前記複数のレジスタに格納されたデータに対して演算を実行する演算部とを具備し、
前記データ転送部は、与えられた命令に応じて、前記クロック信号の或るタイミングで前記複数のレジスタのうちの或るレジスタに格納された前記データを、次のタイミングで前記複数のレジスタのうちの指定された他のレジスタに格納するように転送する
ディジタル信号処理装置。
【請求項２】
請求項１に記載のディジタル信号処理装置であって、
前記演算部は、一の命令が与えられたことに応答して前記演算を実行する
ディジタル信号処理装置。
【請求項３】
請求項１又は２に記載のディジタル信号処理装置であって、
前記複数のレジスタは、
複数のデータレジスタと、
前記複数のデータレジスタとそれぞれ対応づけられた複数の係数レジスタとを具備し、
前記データ転送部は、前記クロック信号に同期して時系列的に、前記複数のデータレジスタの各々にディジタル信号を格納し且つ前記複数の係数レジスタの各々に係数を格納し、
前記演算部は、積和演算命令に応じて、同じタイミングで前記複数のデータレジスタのうちの各々に格納された前記ディジタル信号と前記複数の係数レジスタのうち対応するレジスタに格納された係数との組の時系列データに対して積和演算を実行し、
前記データ転送部は、前記与えられた命令に応じて、前記或るタイミングで前記複数のデータレジスタの各々に格納された前記ディジタル信号を、前記次のタイミングで前記複数のデータレジスタのうちの指定された他のデータレジスタに格納されるように転送する
ディジタル信号処理装置。
【請求項４】
請求項３に記載のディジタル信号処理装置であって、
前記複数のデータレジスタは、第１番目から第ｎ番目（ｎは２以上の整数）までのｎ個のデータレジスタを具備し、
前記データ転送部は、前記複数のデータレジスタのうち前記或るタイミングで第ｉ番目（ｉは１以上ｎ−１以下の整数）のデータレジスタに格納した前記ディジタル信号を、次のタイミングで第ｉ＋１番目のデータレジスタに転送する
ディジタル信号処理装置。
【請求項５】
クロック信号に同期して時系列的に複数のレジスタにデータを格納する工程と、
同じタイミングで前記複数のレジスタに格納されたデータに対して演算を実行する工程とを具備し、
前記格納する工程においては、与えられた命令に応じて、前記クロック信号の或るタイミングで前記複数のレジスタのうちの或るレジスタに格納された前記データを、次のタイミングで前記複数のレジスタのうちの指定された他のレジスタに格納するように転送する
ディジタル信号処理方法。
【請求項６】
請求項５に記載のディジタル信号処理方法であって、
前記演算を実行する工程は、一の命令が与えられたことに応答して実行される
ディジタル信号処理方法。
【請求項７】
請求項５又は６に記載のディジタル信号処理方法であって、
前記複数のレジスタは、
複数のデータレジスタと、
前記複数のデータレジスタとそれぞれ対応づけられた複数の係数レジスタとを具備し、
前記格納する工程においては、前記クロック信号に同期して時系列的に、前記複数のデータレジスタの各々にディジタル信号を格納し且つ前記複数の係数レジスタの各々に係数を格納し、
前記演算を実行する工程においては、積和演算命令に応じて、同じタイミングで前記複数のデータレジスタのうちの各々に格納された前記ディジタル信号と前記複数の係数レジスタのうち対応するレジスタに格納された係数との組の時系列データに対して積和演算を実行し、
前記格納する工程においては、更に、前記与えられた命令に応じて、前記或るタイミングで前記複数のデータレジスタの各々に格納された前記ディジタル信号を、前記次のタイミングで前記複数のデータレジスタのうちの指定された他のデータレジスタに格納されるように転送する
ディジタル信号処理方法。
【請求項８】
請求項７に記載のディジタル信号処理方法であって、
前記複数のデータレジスタは、第１番目から第ｎ番目（ｎは２以上の整数）までのｎ個のデータレジスタを具備し、
前記格納する工程においては、前記複数のデータレジスタのうち前記或るタイミングで第ｉ番目（ｉは１以上ｎ−１以下の整数）のデータレジスタに格納した前記ディジタル信号を、次のタイミングで第ｉ＋１番目のデータレジスタに転送する
ディジタル信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル信号処理に関する。本発明は特に、ＳＩＭＤ方式のプロセッサにおいてフィルタ演算等の計算を効率化する技術に関する。
【背景技術】
【０００２】
ディジタル信号処理装置は一般に大量の演算を一群のデータに対して効率よく行う必要がある。適用されるアプリケーションは、機械制御、高能率音声符号化・復号化、画像処理等広範である。
【０００３】
一般的なロードストアアーキテクチャのＲＩＳＣプロセッサによるディジタル信号処理では、１つの命令で複数のデータを並列に扱うＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）方式が頻繁に用いられる。図８は、一般的なＳＩＭＤ方式によるディジタル信号処理装置の演算器の一例である。１つのＤｎと１つのＤｍからなる組について、１つの命令ＤｏｐＤ→Ｄで４組のデータが並列に処理され、４通りの結果Ｄｄが得られる。
【０００４】
特許文献１では、図９に示すように、ＳＩＭＤ方式の演算器において、並列化された複数の処理対象データ保持レジスタに、同じデータを設定する方法が提案されている。この文献では、ベクトル変数とスカラ変数の乗算のような特定の処理で性能を改善できるとされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−１７４３００号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
高能率音声符号化・復号化において、大量のデータを効率よく処理する方法が必要である。しかしながら特開２００５−１７４３００の技術では、ベクタ変数とスカラ変数との演算処理に効果があるが、高能率音声符号化・復号化で多用されるフィルタ積和演算処理においては、効力を発揮しない。
【課題を解決するための手段】
【０００７】
以下に、［発明を実施するための形態］で使用される番号を括弧付きで用いて、課題を解決するための手段を説明する。これらの番号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明の一側面において、ディジタル信号処理装置は、複数のレジスタ（Ｋｍｎ）と、クロック信号に同期して時系列的に複数のレジスタにデータを格納するデータ転送部（Ｌ）と、同じタイミングで複数のレジスタに格納されたデータに対して演算を実行する演算部（Ｍｕｌ０〜３、ｐｒｏｄ０〜３、ａｄｄ０〜３、ａｃｃ０〜３）とを備える。データ転送部は、与えられた命令に応じて、クロック信号の或るタイミングで複数のレジスタのうちの或るレジスタに格納されたデータを、次のタイミングで複数のレジスタのうちの指定された他のレジスタに格納するように転送する。
【０００９】
本発明の他の側面において、ディジタル信号処理方法は、クロック信号に同期して時系列的に複数のレジスタにデータを格納する工程と、同じタイミングで複数のレジスタに格納されたデータに対して演算を実行する工程とを備える。格納する工程においては、与えられた命令に応じて、クロック信号の或るタイミングで複数のレジスタのうちの或るレジスタに格納されたデータを、次のタイミングで複数のレジスタのうちの指定された他のレジスタに格納するように転送する。
【発明の効果】
【００１０】
本発明によれば、データ転送部が或るタイミングで或るレジスタの格納したデータを、次のタイミングで他のレジスタに転送して計算に用いるため、処理能力が向上する。一例として、ＳＩＭＤによる高能率音声符号化・復号化処理で多様される積和演算の処理能力を改善することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の一実施形態におけるディジタル信号処理装置の概略図である。
【図２】図２は、ｘｔｙｐｅとデータレジスタ群の説明図である。
【図３】図３は、フィルタ演算動作の例を示すシグナルフロー図である。
【図４】図４は、ｍａｃ＿ｎの第二引数を示す。
【図５】図５は、規格で定義された分析フィルタの処理コードを示す。
【図６】図６は、図５のコード中の左シフトと丸め処理のコードである。
【図７Ａ】図７Ａは、一実施形態におけるフィルタ処理のコードである。
【図７Ｂ】図７Ｂは、一実施形態におけるフィルタ処理のコードである。
【図８】図８は、ＳＩＭＤ方式によるディジタル信号処理装置の演算器の１例である。
【図９】図９は、特開２００５−１７４３００で提案された特定の処理のための演算器構成を示す。
【発明を実施するための形態】
【００１２】
以下、図面を参照して本発明の実施形態について説明する。
本発明の一実施形態におけるディジタル信号処理装置は、積和演算命令のオペランドとして、“積和演算器動作モード”を持つ。
またディジタル信号処理装置は、積和演算命令と“積和演算動作モード”とをデコードし、積和命令専用データレジスタと被乗算データ入力レジスタ間のデータ転送と、被乗算データ入力レジスタ同士のデータ転送とを制御する。
【００１３】
図１は、本実施形態におけるディジタル信号処理装置の概略図である。ディジタル信号処理装置は、命令メモリｉｍｅｍ、データメモリｄｍｅｍ、演算器ＡＣＣ、命令デコーダＤＥＣ、レジスタファイルＲＦを備える。このディジタル信号処理装置は、高能率音声符号化・復号化処理で多用されるフィルタ積和演算を効率よく処理するために、一般的なＳＩＭＤ（図８）や特開２００５−１７４３００（図９）のＳＩＭＤを用いたディジタル信号処理装置の演算器とは異なる構成を備える。そのために拡張した積和演算命令と、これを処理する演算器ＡＣＣと命令デコーダＤＥＣとが設けられる。
【００１４】
命令デコーダＤＥＣは、特別な積和演算命令ｍａｃ４＿ｎをデコードする機能を有する。この命令においては、第二の引数として“積和演算器動作モード”を指定することができる。命令デコーダＤＥＣは、命令コードとともに“積和演算器動作モード”をデコードする。デコード結果に応じて、データ転送部Ｌは、演算器ＡＣＣ内の積和命令専用データレジスタａｌｇ０／１、ｄａｔａ０−５、被乗算データ入力レジスタＫｍｎのデータ転送を行う。
【００１５】
例えば、図３に示すフィルタ演算動作では、クロック信号に同期して時系列的に複数のレジスタＫｍｎにディジタル信号によるデータが図１のデータ転送部Ｌによって格納される。データは、例えば、画像処理における画素の輝度などを示す信号データＸｍ（ｍは整数）と、その信号に対して掛けられるフィルタの特性を示す係数データａｎ（ｎは整数）とを含む。図３の例では、Ｋ００、Ｋ０２、Ｋ４０、Ｋ４２が信号データを格納するデータレジスタとして用いられる。Ｋ０１、Ｋ０３、Ｋ４１、Ｋ４３は係数データを格納する係数レジスタとして用いられ、データレジスタＫ００、Ｋ０２、Ｋ４０、Ｋ４２にそれぞれ対応して設けられる。
【００１６】
演算部ＡＣＣは、積和演算命令に応じて、動作クロック信号の同じタイミングで複数のデータレジスタＫ００、Ｋ０２、Ｋ４０、Ｋ４２のうちの各々に格納されたディジタル信号と複数の係数レジスタＫ０１、Ｋ０３、Ｋ４１、Ｋ４３のうち対応するレジスタに格納された係数との組の時系列データに対して積和演算を実行する。
【００１７】
データ転送部Ｌは、与えられた命令に応じて、或るタイミングで複数のデータレジスタの各々に格納されたディジタル信号を、次のタイミングで複数のデータレジスタのうちの積和演算命令によって指定された他のデータレジスタに格納されるように転送する。
【００１８】
具体的には、演算部ＡＣＣは、図３の左上のＸ０、ａ０から右下のＸ−７、ａ１０までのデータのリストを、クロック信号に同期して時系列的に最下段から順にレジスタに取り込んで積算する。更に、時系列順に得られた積算の結果の和を順次に取ることによって積和演算が実行される。本実施形態におけるディジタル信号処理装置は、ＳＩＭＤ型のプロセッサであり、この積和演算はｉｍｅｍに格納された一の積和演算命令に応じて実行される。
【００１９】
演算部ＡＣＣは、同じタイミングで複数のレジスタＫｍｎに格納されたあるデータが次の演算では隣のレジスタで使用されるという特徴に着目する（図３：右下から左上へ移動するようにデータ（ｘ）が使用される）。データ転送部Ｌは、与えられた命令（命令メモリｉｍｅｍに格納され、命令デコーダＤＥＣでデコードされた命令）に応じて、動作クロック信号の或るタイミングで複数のレジスタＫ００、Ｋ０２、Ｋ４０、Ｋ４２のうちの或るレジスタに格納されたデータ（例えば図３のリストの最下段のＫ４２に格納されたＸ−７、Ｋ４０に格納されたＸ−８、Ｋ０２に格納されたＸ−９）を、次のタイミングで、命令セットの定義によって指定された他のレジスタ（それぞれ下から２段目のＫ４０に格納されたＸ−７、Ｋ０２に格納されたＸ−８、Ｋ００に格納されたＸ−９）に格納するように転送する。
【００２０】
具体的には、“積和演算器動作モード”として“ＦＩＬＴＥＲ”を意味するコードを指定すると、データ転送部Ｌは、複数の被乗算データ入力レジスタＫｍｎの間でデータを転送する。このようにして、積和命令専用データレジスタａｌｇ０／１、ｄａｔａ０−５と被乗算データ入力レジスタＫｍｎに関するデータ転送を効率化する。その結果、高能率音声符号化・復号化処理で多用される積和演算の処理能力が改善される。
【００２１】
以下、本実施形態について、さらに詳しく説明する。演算器ＡＣＣは、積和命令専用データレジスタ群ａｌｇ０／１およびｄａｔａ０〜５、１６ビットの被乗算データ入力レジスタＫｍｎ（ｍ＝０，４，ｎ＝０〜３）、乗算器ｍｕｌ０〜３、加算器ａｄｄ０〜３、乗算器ｍｕｌ０〜３の出力を保持する３２ビットのレジスタｐｒｏｄ０〜３、加算器ａｄｄ０〜３の出力を保持する３２ビットのレジスタａｃｃ０〜３で構成される。ｉｍｅｍは、命令メモリである。
【００２２】
ｄｍｅｍは、処理対象の１６ビット変数配列を格納し、１２８ビットのアクセス単位で読み書きするインターフェースを持ったデータメモリである。この１２８ビットのアクセス単位を表す型として、本実施形態では“ｘｔｙｐｅ”を用意している。“ｘｔｙｐｅ”のインターフェース境界からずれたアドレスから始まる配列に対する読み出しアクセスの結果は、配列の先頭から次のインターフェース境界までの内容に、アクセス単位内の残りの内容が続いた形になる。図２の濃い網掛けの領域が、処理対象のデータが格納されている領域を示す。
【００２３】
これを適切に処理するため、データ転送部Ｌでは、積和命令専用データレジスタ群ａｌｇ０／１、ｄａｔａ０〜５から１６ビットの被乗算データ入力レジスタＫｍｎ（ｍ＝０，４，ｎ＝０〜３）に被乗算データを振り分ける。データ転送部Ｌは、Ｋｍｎレジスタ間でデータを転送することが出来る。また、レジスタファイルＲＦは１２８ビットである。
【００２４】
このように構成した積和演算回路を制御するための命令セットを用意する。ｍａｃ４＿ｎ（）（ｎ＝０〜５）は、第一引数に対し第二引数で示される処理を行って、積和命令専用データレジスタ群ｄａｔａ０〜５およびレジスタファイルＲＦに結果を格納する命令である。ｍａｃ＿ｉｎａ（）は積和命令専用データレジスタａｌｇ０に引数を格納する命令である。ｍａｃ＿ｉｎｂ（）は積和命令専用データレジスタａｌｇ１に引数を格納する命令である。ＣＬＲ１２８（）は２つの引数をとって積和命令専用データレジスタ群ａｌｇ０／１、ｄａｔａ０〜５から１６ビットの被乗算データ入力レジスタＫｍｎ（ｍ＝０，４，ｎ＝０〜３）に被乗算データを振り分ける論理Ｌを決定するとともに積和命令専用データレジスタ群ａｌｇ０／１、ｄａｔａ０〜５を初期化する命令である。ｓｅｔ＿ｆｉｒｘ（）はｘｔｙｐｅの引数のＬＳＢ側ｓｈｏｒｔ４個分を被乗算データ入力レジスタＫ００，Ｋ０２，Ｋ４０，Ｋ４２にセットする命令である。
【００２５】
このうち、ｍａｃ４＿ｎ（ｎ＝０〜５）は、フィルタ積和演算に使用する特別な命令である。この命令では、第一引数に対する処理方法を指示する第二引数“積和演算器動作モード”を、図４のように定義する。例えば、第二引数“積和演算器動作モード”に図４中のＦＩＬＴＥＲを設定すると、積和命令専用データレジスタ群ａｌｇ０／１、ｄａｔａ０〜５から１６ビットの被乗算データ入力レジスタＫｍｎ４２へ被乗算データを取り込み、Ｋｍｎレジスタ間でデータをシフトするように、データ転送部Ｌを制御する。
【００２６】
さらに、高能率音声符号化・復号化方式の１つであるＡＭＲ（Ａｄａｐｔｉｖｅ  Ｍｕｌｔｉ  Ｒａｔｅ）で用いる線形予測法の分析フィルタを例に、本実施形態における動作と効果について説明する。図５は、規格で定義された分析フィルタの処理コードである。ａ［］，ｘ［］，ｙ［］はそれぞれ線形予測係数、入力信号、出力信号の１６ビット変数配列である。ｌｇは処理フレーム長である。Ｍ＝１１は線形予測の次数である。
【００２７】
さらにコード中の左シフトと丸め処理は、オーバーフロー／アンダーフローに対する飽和処理を考慮して図６のように定義されている。
【００２８】
図７Ａと図７Ｂは一続きのコードであり、前記命令セットを使って図５を書き換えたものである。（ａ）で線形予測係数列ａ（０〜１０）を行う。（ｂ）で入力信号列ｘを、それぞれメモリからレジスタファイルに転送する。（ｃ）で本実施形態の特徴である機構を使用して分析フィルタ処理を行う。従来のＳＩＭＤ方式によるディジタル信号処理装置では２４００ステップ要していたのに対し、このコードの実行ステップ数は約１７００ステップである。
【００２９】
上記の例では、線形予測法の分析フィルタについて説明したが、他の様々なフィルタ処理についても、データ転送部Ｌが或るタイミングで或るレジスタの格納したデータを、次のタイミングで他のレジスタに転送して計算に用いることにより、処理能力の向上を図ることが可能である。
【００３０】
以上に説明したように、従来のＳＩＭＤ方式のディジタル信号処理装置に対して、“積和演算動作モード”により、積和命令専用データレジスタと被乗算データ入力レジスタ間のデータ転送が効率化される。その結果、高能率音声符号化・復号化方式などで用いるフィルタ処理のステップ数を削減し、処理能力を向上することができる。
【００３１】
本実施形態は特に、以下のような特徴を有する。
（１）積和演算命令のオペランドとして“積和演算器動作モード”を持つ。
（２）積和演算命令と“積和演算動作モード”をデコードし、積和命令専用データレジスタと被乗算データ入力レジスタ間のデータ転送、被乗算データ入力レジスタ同士のデータ転送を制御する。
（３）積和演算命令のオペランドとして、積和演算器の動作モードを制御する拡張機能制御部を持つ。
（４）拡張機能制御部が積和命令専用データレジスタ群とレジスタファイルとの間のデータ転送を制御する。
（５）拡張機能制御部が積和命令専用データレジスタ間のデータ転送を制御する。
（６）拡張機能制御部が積和命令専用データレジスタの設定値を制御する。
（７）積和演算回路がレジスタファイルとメモリとを並列にアクセスする。
【符号の説明】
【００３２】
ａｃｃ  演算器
ａｃｃ０〜ａｃｃ３  レジスタ
ａｄｄ０〜ａｄｄ３  加算器
ａｌｇ０、ａｌｇ１  積和命令専用データレジスタ
ｄａｔａ０〜ｄａｔａ５  積和命令専用データレジスタ
ＤＥＣ  デコーダ
ｄｍｅｍ  データメモリ
ｉｍｅｍ  命令メモリ
Ｋｍｎ  被乗算データ入力レジスタ
Ｌ  データ転送部
ｍｕｌ０〜ｍｕｌ３  乗算器
ｐｒｏｄ０〜ｐｒｏｄ３  レジスタ
ＲＦ  レジスタファイル
ｓｅｌ  選択器
【図１】
2012155569.tif 000003
【図２】
2012155569.tif 000004
【図３】
2012155569.tif 000005
【図４】
2012155569.tif 000006
【図５】
2012155569.tif 000007
【図６】
2012155569.tif 000008
【図７Ａ】
2012155569.tif 000009
【図７Ｂ】
2012155569.tif 000010
【図８】
2012155569.tif 000011
【図９】
2012155569.tif 000012