(57)【特許請求の範囲】
【請求項１】
データ・プロセッサで使用するプログラム・カウンタ回路装置（１１２）であって：
第１定数を受け取る第１入力，第２定数を受け取る第２入力，分岐オフセット値（４０）を受け取る第３入力，第４入力，およびプログラム・アドレス（２８）を決定するのに使用される出力を有するオフセット・マルチプレクサ（１１４）；
および、
送信利得制御インデックスを受け取る第１入力，受信利得制御インデックスを受け取る第２入力，サイド・トーン利得制御インデックスを受け取る第３入力，および前記オフセット・マルチプレクサの前記第４入力と結合される出力を有する利得インデックス・マルチプレクサ（４３）；
によって構成されることを特徴とするプログラム・カウンタ回路装置。
【請求項２】
データ・プロセッサにおいて利得制御を可能にする方法であって：
プログラム・メモリ（２１８）からの命令によって命令レジスタをロードし、前記命令が、プログラム・カウンタ（２０４，２００）内に格納されるプログラム・カウンタ値と等しいアドレス値を有するアドレスに位置する段階；
前記命令が利得命令でないとき、前記アドレス値のオフセット値をオフセット・マルチプレクサ（２１０）に与える段階（２０８、２０４）；
前記命令が利得命令であるとき、利得制御インデックス信号をオフセット・マルチプレクサ（２１０）に与える段階；
前記プログラム・カウンタによって与えられる値に前記利得制御インデックス信号を加算して、一時プログラム・カウンタ値（２１２）を生じる段階；
前記一時プログラム・カウンタを使用してプログラム・メモリにアクセスし、メモリ（２１２）からの利得値を得る段階；および
前記プログラム・カウンタに数値を加算して、更新されたプログラム・カウンタを生じ、次の命令（２１４）にアクセスする段階；によって構成されることを特徴とする方法。
【請求項３】
コンピューターの命令を用いて利得値をデータ・プロセッサに与える方法であって：
プログラム・メモリ（１１８）の第１記憶場所内に利得命令演算コード部分を格納することであって、前記プログラム・メモリは前記データ・プロセッサ（１１０）と結合され、前記利得命令演算コード部分は、前記データ・プロセッサ（１１０）によってデコードされて、利得演算を実施する前記データ・プロセッサを特定する、前記利得命令演算コード部分を格納すること；
前記プログラム・メモリ（１１８）の第２記憶場所に利得マルチプレクサ（４３）選択部分を格納することであって、前記利得マルチプレクサ（４３）選択部分は、前記データ・プロセッサ（１１０）に与えられる複数の利得インデックスから選択された利得インデックスを特定するのに使用される、前記利得マルチプレクサ（４３）選択部分を格納すること；および、
前記コンピューターの命令の一部として、前記プログラム・メモリ（１１８）内に複数の利得値を格納することであって、前記複数の利得インデックスの１つは、利得値としてアクセスするのに前記複数の利得値の中の１つの利得値を特定するために、前記データ・プロセッサ（１１０）によって使用される、前記複数の利得値を格納すること；
によって構成されることを特徴とする利得値をデータ・プロセッサに与える方法。
【請求項４】
デジタル信号プロセッサ内で利得制御を可能にするプログラム・カウンタ制御論理装置であって：
入力，アドレス位置を与える第１出力，およびアドレス位置を与える第２出力を有するプログラム・カウンタ・レジスタ（４８）；
前記プログラム・カウンタ・レジスタ（４８）の前記第２出力と結合される第１入力，第２入力，および変更されたアドレス位置を与える出力を有する加算器（５０）であって、前記加算器は、前記プログラム・カウンタ・レジスタ（４８）によって与えられる前記アドレス位置を変更する加算器；
少なくとも１つの利得制御インデックス入力，前記少なくとも１つの利得制御インデックス入力を選択する制御入力，および選択された利得制御インデックスを与える出力を有する利得マルチプレクサ（４３）；
第１命令オフセット入力，第２命令オフセット入力，分岐オフセット入力，前記利得マルチプレクサ（４３）の前記出力と動作的に結合される利得オフセットインデックス入力，およびオフセット値を与えるために前記加算器（５０）の前記第２入力と結合される出力を有するオフセット・マルチプレクサ（１４４）；および
前記プログラム・カウンタ・レジスタ（４８）の前記第１出力と結合される第１入力，前記加算器（５０）の前記出力と結合される第２入力，アドレス出力，および前記入力の１つと前記アドレス出力とを結合する制御入力を有するアドレス・マルチプレクサ（４６）；
によって構成されることを特徴とするプログラム・カウンタ制御論理装置。
【請求項５】
データ・プロセッサ内で利得制御命令を実行するデバイスであって、前記利得制御命令は命令演算コード，インデックス選択指示子および複数の利得値を有し：
前記インデックス選択指示子に基づき複数のインデックス信号（４３）の１つを選択する手段であって、前記選択手段（４３）は前記インデックス選択指示子を受け取るために結合される手段；
第１アドレス値を複数のインデックス信号の１つによって変形して、第２アドレス値を作る手段であって、前記変形手段（５０）は、前記複数のインデックス信号の１つを受信するために結合される手段；
メモリ（１２０，１２２）から利得値を受け取る手段（１４４）であって、前記利得値は、前記第２アドレス値により前記メモリ（１２０，１２２）からアクセスされ、前記受け取る手段は、前記第２アドレス値を受け取るために前記メモリと結合され、および前記メモリは前記第２アドレス値を受け取るために結合される手段；および、
前記利得値によりデジタル・データを変更する手段であって、前記変更手段が、前記デジタル・データと前記利得値を受け取るために結合される手段；
によって構成されることを特徴とする装置。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はデジタル信号処理に関し、さらに詳しくは集積回路のデジタル信号プロセッサで効率的な利得制御を提供することに関する。
【０００２】
【従来の技術】
図１は、アナログ可聴入力信号を、アナログ・フォーマットからデジタル・フォーマットに変換する先行技術の方法を示す。この方法は、ハードウェア部分７１とソフトウェア部分７５を有する。ハードウェア部分７１は、デルタ／シグマ・アナログ・デジタル（ＡＤ）コンバータ７０を示す。ＡＤコンバータ７０は、アナログ変調入力信号６８を受信して、この信号をバイナリ・ビットのシリアル・ストリームに変換する。このバイナリ・ビットのシリアル・ストリームは、第３階積分器７２によって入力として受信される。この積分器７２は低域フィルタ機能を実施し、アナログ入力６８となるデジタル・データ・ストリームを発生する。素子７２からの出力として発生するデジタル・データ・ストリームは、速度変換スイッチ７３によって低い周波数にデシメート（decimate）される。デシメートされたデータ・ストリームはついで、第３階くし形フィルタ７４への入力として与えられる。素子７４は、積分器７２によって生じる何らかの周波数ひずみを補償する。素子７３，７４が実行する動作は、デジタル信号プロセッサではソフトウェアで実施されることに注意されたい。ソフトウェア素子７４の出力は、補償フィルタ７６に与えられる。補償フィルタ７６は、システムに必要な低域フィルタリングと通過帯域周波数補償を行う。もう１つの速度変換スイッチ７７は、前述した速度変換スイッチ７３と似通ったデシメーション機能を実施するのに使用される。ソフトウェア補償フィルタ７８は、必要に応じて、デジタル信号の最終フィルタリングを実施する。ついで換算演算８０が使用されて、濾波したデジタル信号の大きさを調整する換算利得係数８６を提供する。サイド・トーン演算８２は、受信チャネル８９を通じて獲得されるサイド・トーン信号を加算する。受信チャネル上の数値は、換算演算８１によって換算され、これはサイド・トーン換算利得信号８８に基づいている。出力８４は、デジタル信号出力である。図１において、ＡＤ変換関数７０は、アナログ関数であるので、ハードウェアで実施される。また、第３階積分関数７２は、一定のデジタル信号プロセッサではできないおそれのある高い周波数動作を必要とするので、ハードウェアで実施される。図１の他の動作は、汎用デジタル信号プロセッサでサポートできるので、デジタル信号プロセッサによって実行されるソフトウェアで実施される。
【０００３】
図２は、図１で示したソフトウェア動作を実施するのに使用できるハードウェア・システムを示す。図２は、デジタル信号プロセッサ１０を示す。デジタル信号プロセッサ１０は、アドレス生成装置（ＡＧＵ）１４とデータ・オペレーション装置１６とに結合されるプログラム制御装置（ＰＣＵ）１２を含む。プログラム制御装置１２は、図１に示すように、命令レジスタ１２Ｂとプログラム制御論理１２Ａを含む。プログラム制御装置１２は、ＤＳＰ１０の外部にあるプログラム・メモリ装置１８と結合される。アドレス生成装置（ＡＧＵ）１４は、ＤＳＰ１０の外部にあるＸデータ・メモリ２０およびＹデータ・メモリ２２と結合される。データ・オペレーション装置１６は、Ｘデータ・メモリ２０とＹデータ・メモリ２２からデータを受け取り、一方、アドレス生成装置１４は、アドレスをＸデータ・メモリ２０とＹデータ・メモリ２２に与える。ＸデータとＹデータを外部メモリから受け取ることに加え、データ・オペレーション装置１６は、図２に示すように、ＩＯインタフェース２３からＩＯデータを受け取る。
【０００４】
通常の動作モードでは、ＰＣＵ１２は、プログラム・アドレス２８をプログラム・メモリ１８に与える。プログラム・アドレス・バス２８に応答して、プログラム・メモリ１８は、データをプログラム・データ・バス３８に送る。このデータは、ＰＣＵ１２，ＡＧＵ１４またはデータ・オペレーション装置１６に提供される。
【０００５】
プログラム・データ・バス３８上のデータは、図２に示す命令レジスタ（ＩＲＥＧ）１２Ｂに格納できる。命令レジスタ１２Ｂに格納される命令はデコードされ、さらなる情報４０をＰＣ論理１２Ａに与えると共に、ＡＧＵ１４とデータ・オペレーション装置１６に制御信号を送り、Ｘデータ・メモリ２０とＹデータ・メモリ２２からのアドレス生成およびデータ・オペレーションを可能にする。図１に示す換算演算８０，８１，８２を実施するため、ＰＣＵ１２は、Ｙデータ・バス３６上の入力として利得制御情報を与えるべく、制御信号によってＩＯインタフェース２３にアクセスしなければならない。
【０００６】
図３は、先行技術のＰＣ論理１２Ａ（図２）を示す。図３は、プログラム・カウンタ・マルチプレクサ（ＰＣマックス）４２を含み、これはプログラム・カウンタ・レジスタ４８と結合される。プログラム・カウンタ４８は、加算器５０とアドレス・マルチプレクサ４６にプログラム・カウンタ値を与える。プログラム・カウンタ・レジスタ４８は、図３に示すＰＣマックス４２に基づき、割り込みベクトル値２６，または加算器５０の出力を格納できる。加算器５０は、プログラム・カウンタ・レジスタ４８に格納される数値と、オフセット・マルチプレクサ４４の出力との間で数値演算を実施する。オフセット・マルチプレクサ４４は、＋１の２進値を与えて、プログラム・カウンタ・レジスタを順次インクリメントするか、または分岐オフセット値４０を与えて、デジタル信号プロセッサ１０内の分岐演算を実施する。アドレス・マックス４６の出力２８は、プログラム・カウンタ・レジスタ４８または加算器５０の出力と結合される。プログラム・アドレス２８は、外部プログラム・メモリ１８にアクセスするのに、図２に示すように使用されるアドレスである。
【０００７】
ソフトウェアにおいて、図１の演算７３，７４，７６，７７，７８を実施するため、通常、下記の命令が必要とされる：（１）累算器をメモリまたはＩＯに移動する；（２）メモリまたはＩＯを累算器に移動する；（３）アドレス間接レジスタを即値と掛け合わせて、その結果を累算器に格納する；（４）その結果が累算器に加算される上記（３）の演算；および（５）即値を有するレジスタをロードする。そのため、図１のソフトウェア・ルーチン７３から７８は、５つの基本的な命令を使用して実施できる。これら５つの命令をサポートするのに必要なハードウェアは、デジタル信号プロセッサにおいて効率的に実現できる。図１の演算７３から７８は、図１の演算に必要なほとんどの処理を実施するが、すべての関数を実施するわけではない。
【０００８】
【発明が解決しようとする課題】
図１の演算８０から８９を実施するには、さらに多くの命令が、図２と図３のハードウェアの中で与えられる必要がある。図１の演算８０から８９を実施するには、下記の命令が必要である：（１）累算器をレジスタに移す；（２）レジスタ内のビットをマスクする；（３）レジスタを右に移す；（４）オフセットをレジスタに追加する；（５）アドレス間接レジスタ１とアドレス間接レジスタ２とを掛け合わせて、その結果を累算器に格納する。図１のアルゴリズムに必要な演算の小部分を実施する一方で、これら５つの命令を付け加えることにより、ＤＳＰ１０のＰＣＵ１２とＡＧＵ１４の設計が大幅に複雑化する。このような複雑性には次のようなものが含まれる：（１）１つの関数を実施するのに５つの命令を使用すること。このことが、制御セクションを複雑にし、これを肥大化させる；（２）複数の命令を使用する必要がある結果、より多くのプログラム・メモリを必要とすること。このため究極的に電力使用量が多くなり、実行速度が遅くなる；（３）データ・オペレーション装置１６をアドレス生成装置１４と接続するバスが必要；（４）論理積，加算および桁移動の命令を実行するのにアドレス生成装置１４内の算術論理がさらに必要；（５）１つだけのソースの代わりに、両方のソースで間接アドレス機能を処理する乗算命令を必要とすること（これも設計を大幅に複雑化する）；（６）（１）から（５）の実行に、より長い設計時間と試験時間を要する。
【０００９】
【実施例】
本発明は全般に、ＡＤコンバータ内で利得調整を実現するのに改善された方法と装置を提供する。本発明は、図４，５を参照した方がより良く把握できる。図４はＤＳＰ１１０を示す。ＤＳＰ１１０は、アドレス生成装置（ＡＧＵ）１１４とデータ・オペレーション装置１１６の両方に結合されるプログラム制御装置（ＰＣＵ）１１２を含む。プログラム制御装置１１２は、外部メモリから読み取った命令を格納するために、命令レジスタ（ＩＲＥＧ）１１２Ｂを含む。またＰＣＵ１１２は、プログラム・アドレス・ライン１２８Ａ上でプログラム・アドレスを生成して提供するプログラム・カウンタ論理１１２Ａを含む。プログラム・アドレス・ライン１２８Ａは、外部プログラム・メモリ１１８に与えられ、プログラム・メモリは、プログラム・データ・バス１３８を介してプログラム・データを、必要に応じてＰＣＵ１１２，ＡＧＵ１１４，またはデータ・オペレーション装置１１６に与える。
【００１０】
命令はプログラム・メモリ１１８から読み取られて、命令レジスタ１１２Ｂ内に格納される。格納された命令に基づき、制御信号がＩＲＥＧ１１２ＢからＰＣＵ１１２，ＡＧＵ１１４およびデータ・オペレーション装置１１６に送られる。これらの制御信号に基づき、ＡＧＵ１１４は、Ｘデータ・メモリ１２０およびＹデータ・メモリ１２２それぞれのために、Ｘアドレス・ライン１３０とＹアドレス・ライン１３２上にアドレスを生成する。Ｘデータ・メモリ１２０は、Ｘデータ・バス１３４を介してデータ・オペレーション装置１１６にデータを送る。またＹデータ・メモリ１２２は、Ｙデータ・バス１３６を介して装置１１６にデータを送る。データ経路１３４，１３６はそれぞれ、データ・オペレーション装置１１６からのデータをそれぞれのデータ・メモリ１２０，１２２に書き込むのに使用される。
【００１１】
図２に示す先行技術は、利得制御インデックスを受け取るために、ＩＯインタフェース２３を有していた。しかしながら本発明は、ＩＯインタフェースを通さずに、必要なインデックスを利得命令によってＰＣＵ１１２に直接入力する。これにより、図５を参照して検討するように、ＤＳＰ設計の複雑性が低減する。
【００１２】
図５では、本発明によるプログラム制御論理１１２Ａが示される。図３から変更されていない図５の部材には引き続き同じ番号が付けられており、同一の参照番号を有する素子については、図５についても、図３で検討されたことが適用される。本発明では、マックス４４（図３）に置き換えてオフセット・マックス１４４（図５）を使用する。オフセット・マックス１４４は加算器５０と結合され、加算器５０に引き続き数値を与えるが、マックス１４４は４個の入力を有する。第１入力はプログラム・カウンタを１ずつインクリメントするためのものであり、１単語長の命令のためにＰＣレジスタをインクリメントするのに使用される；第２入力は、プログラム・カウンタを４ずつインクリメントするためのものであり、本発明による利得命令のためにＰＣレジスタをインクリメントするのに用いられる；第３入力は、図３の分岐オフセット４０と同一の分岐オフセット４０のためのものである；第４入力は、マルチプレクサ４３（利得マルチプレクサ４３として知られる）によって選択される利得制御インデックスのためのものである。オフセット・マルチプレクサ１４４への４個の入力の選択は、利得命令によって決定され、プログラム制御装置によってアサートされる。
【００１３】
本発明による利得マルチプレクサ４３は３個の入力を有する。３個の入力は送信利得制御インデックス，受信利得制御インデックスおよびサイド・トーン利得制御インデックスを受け取る。これに加え、命令レジスタ（ＩＲＥＧ）から選択信号を受け取る選択入力が存在する。
【００１４】
本発明の命令とハードウェアは３個の制御インデックスのみをサポートしているが、実質的には任意の数サポートできる。加算器５０は、プログラム・カウンタ・レジスタとオフセットとの加算結果を提供し、アドレスを与えることによりメモリ内のデータにアクセスするのに使用される。図３に示すマルチプレクサ４６は、どのアドレスがプログラム・バス自体に出力されるかを決定するために、プログラム制御装置によって制御される。
【００１５】
図５の本発明の実施は、利得命令の実行を可能にし、ＤＳＰ資源のより効率的な使用を可能にする。利得命令は以下の通りである：
gain＊(reg) ，select，＃gain０，＃gain１，＃gain２，＃gain３．
この命令は、アドレス間接レジスタ（＊（reg ））を、ハードウェア内の間接参照によって決定される利得値（利得０から利得３まで）と掛け合わせるタスクを実行する。このハードウェア間接参照は、命令の選択フィールドによって決定される。この命令は、図６を参照すると最も良く理解できる。
【００１６】
図６は、新しい命令のハードウェアとソフトウェアのフロー制御を示す。ステップ２０４から始めて、ＤＳＰは命令レジスタ１１２Ｂをプログラム・メモリ１１８からロードする。ステップ２０６に移動して、プログラム・カウンタ・レジスタ４８は１ずつインクリメントされる。これが、１単語命令の通常の状態となる。数値１は、オフセット・マルチプレクサ１４４への入力の１つであり、ＰＣレジスタに加算されるように選択される。ここでプログラム・カウンタは次のアドレス位置を参照する。これについては、図７を参照してより詳細に検討する。次に、ステップ２０８において、ロードされる命令が１単語命令か複数語利得命令かの判断が行われる。１単語命令がロードされた場合には、プログラム・ループの制御はステップ２０４に戻り、ここで次の命令がロードされる。利得命令に遭遇した場合には、流れはステップ２１０に進む。ステップ２１０では、どの利得制御信号インデックスが、利得マルチプレクサ４３（図５）を参照して使用されるべきかの判断が行われる。これは、送信制御インデックス，受信利得制御インデックスまたはサイド・トーン利得制御インデックスを使用すべきか否かを判断する。ステップ２１２では、ステップ２１０によって選択されたインデックスが、プログラム・レジスタ内の数値に加算される。この新しい数値は、プログラム・メモリ内のアドレスにアクセスする。ＰＣ＋利得制御インデックス値におけるこのアドレスによって参照される利得値は、アドレス間接レジスタと掛け合わされ、この数値は累算器内に格納される。図７に示すように、これらの利得値は利得命令の一部である。プログラム・カウンタ・レジスタは、次の命令で指示するために、ステップ２１４で更新される。利得命令の場合、本発明によれば、これはプログラム・カウンタに４を加算する必要がある。
【００１７】
図７は、新しい命令がメモリ内容に与える影響を示す。利得命令は、図７では２０１から２０５によって参照される５つの記憶場所全体を占める。利得命令自体は単一フィールド２０１を占める。単一フィールド２０１は３つのサブフィールドを含む。第１のサブフィールドは、命令タグまたは命令インディケータそのものであり；第２のサブフィールドは、アドレス間接参照を使用するレジスタを指示するフィールドであり；第３のサブフィールドは、３つの制御インデックスのうちどれを最終的に使用するか判断するための選択値である。利得命令の残り４フィールド２０２，２０３，２０４，２０５は、制御インデックス値に基づきアクセスする実際の利得値を含む。
【００１８】
まとめると、命令をサポートするための単一命令と少しのハードウェアの実現を付け加えることにより、命令カウント，メモリ必要量が減り、図１のフローの実行時間が改善されることで資源が節約できる。
【図面の簡単な説明】
【図１】アナログ入力に基づいてデジタル信号出力を作る先行技術の方法を、流れ図で示す。
【図２】図１のフローを実行する先行技術のシステムをブロック図で示す。
【図３】図２のデジタル信号プロセッサに認められるプログラム・カウンタ・レジスタ論理の先行技術の実行をブロック図で示す。
【図４】本発明によるデジタル信号プロセッサ・システムをブロック図で示す。
【図５】本発明によるプログラム・カウンタ・レジスタ論理装置をブロック図で示す。
【図６】本発明による利得命令で実行される方法を流れ図で示す。
【図７】本発明による命令がどのようにプログラム・メモリ内に格納されるかを、ブロック図で示す。
【符号の説明】
１０，１１０  デジタル信号プロセッサ
１２，１１２  プログラム制御装置
１２Ａ，１１２Ａ  プログラム制御論理
１２Ｂ，１１２Ｂ  命令レジスタ
１４，１１４  アドレス生成装置（ＡＧＵ）
１６，１１６  データ・オペレーション装置
１８，１１８  プログラム・メモリ装置
２０，１２０  Ｘデータ・メモリ
２２，１２２  Ｙデータ・メモリ
２３  ＩＯインタフェース
２６，１２６  ベクトル値
２８，１２８  プログラム・アドレス
３０，１３０  Ｘアドレス・ライン
３２，１３２  Ｙアドレス・ライン
３４，１３４  Ｘデータ・バス
３６，１３６  Ｙデータ・バス
３８，１３８  プログラム・データ・バス
４０，１４０  分岐オフセット
４２  プログラム・カウンタ・マルチプレクサ
４３  利得マルチプレクサ
４４，１４４  オフセット・マルチプレクサ
４６  アドレス・マルチプレクサ
４８  プログラム・カウンタ・レジスタ
５０  加算器
５２  利得制御
６８  アナログ変調入力信号
７０  デルタ／シグマＡＤコンバータ
７１  ハードウェア
７２  第３階積分器
７３，７７  速度変換スイッチ
７４  第３階くし形フィルタ
７５  ソフトウェア
７６  補償フィルタ
７８  ソフトウェア補償フィルタ
８０，８１  換算演算
８２  サイド・トーン演算
８４  出力
８８  サイド・トーン換算利得信号
８９  受信チャネル
１１２  プログラム制御論理
【図１】
0003762024.tif 000002
【図２】
0003762024.tif 000003
【図３】
0003762024.tif 000004
【図４】
0003762024.tif 000005
【図５】
0003762024.tif 000006
【図６】
0003762024.tif 000007
【図７】
0003762024.tif 000008