(57)【特許請求の範囲】
【請求項１】
レジスタファイルから第１および第２のオペランドを受信して乗算し、第１の中間結果を得、前記第１の中間結果を第１の中間レジスタに記憶し、前記記憶された第１の中間結果と第３のオペランドを加算し、第１の出力を前記レジスタファイルに供給するように動作可能な第１の乗累算（ＭＡＣ）ユニットと、
前記レジスタファイルから第４および第５のオペランドを受信して乗算し、第２の中間結果を得、前記第２の中間結果を第２の中間レジスタに記憶し、第６のオペランドを前記記憶された第２の中間結果と加算するかまたは前記記憶された第１および第２の中間結果のいずれかと加算し、第２の出力を前記レジスタファイルに供給する第２のＭＡＣユニットと、
を備え、
前記第１のＭＡＣユニットおよび前記第２のＭＡＣユニットは、前記第１のＭＡＣユニットと前記第２のＭＡＣユニットが独立したデュアルＭＡＣユニットとして動作する第１の構成と、前記第１のＭＡＣユニットと前記第２のＭＡＣユニットが結合されたＭＡＣユニットとして動作する第２の構成との間で動的に再構成するようにプロセッサ命令に応答し、
前記第１のＭＡＣユニットは、前記第１の構成において前記記憶された第１の中間結果を前記第３のオペランドと加算するための算術論理演算ユニット（ＡＬＵ）を含む、前記ＡＬＵは、前記第２の構成において前記第１のＭＡＣユニットとは独立して論理機能およびビット操作機能(bit-manipulation function)を実行することができ、
前記第１および第２のＭＡＣユニットの演算は前記ＡＬＵの演算と並列に生じる、スケーラブルプロセッサアーキテクチャ(scalable processor architecture)を有したプロセッサ。
【請求項２】
前記レジスタファイルから第７のオペランドまたは第８のオペランドを受信して第１の演算を実行し、第３の中間結果を得、前記第３の中間結果を第３の中間レジスタに記憶し、前記第３の中間結果、前記第７のオペランド、前記第８のオペランドまたはそれらの組み合わせに対して第２の演算を実行し、第３の出力を供給するように動作可能な算術論理演算ユニット（ＡＬＵ）経路をさらに備えた、請求項１のプロセッサ。
【請求項３】
前記レジスタファイルは、第１の経路に沿って前記第１のＭＡＣユニットと接続し、第２の経路に沿って前記第２のＭＡＣユニットと接続し、第３の経路に沿って前記ＡＬＵと接続し、各パスは前記レジスタファイルに戻る、請求項２のプロセッサ。
【請求項４】
前記第１のＭＡＣユニットは、前記第１および第２のオペランドを受信して乗算し、前記第１の中間結果を供給するように動作可能な第１の乗算器を含み、ここにおいて、前記第１の中間レジスタは、前記第１の中間結果を記憶するように動作可能であり、
前記第２のＭＡＣユニットは、
前記第４および第５のオペランドを受信して乗算し、前記第２の中間結果を供給するように動作可能な第２の乗算器であって、ここにおいて、前記第２の中間レジスタは前記第２の中間結果を記憶するように動作可能である、第２の乗算器と、
前記第２の中間レジスタからの前記記憶された第２の中間結果を、ゼロまたは前記第１の中間レジスタからの前記第１の中間結果のいずれかと加算するように動作可能な第２の加算器と、
前記第２の加算器の出力と前記第６のオペランドとを加算し前記第２の出力を供給するように動作可能な第３の加算器と、
を含む、請求項１のプロセッサ。
【請求項５】
前記ＡＬＵ経路は、
前記第７および第８オペランドを受信してシフトし、前記第３の中間結果を供給するように動作可能なシフターであって、ここにおいて、前記第３の中間レジスタは、前記第３の中間結果を記憶するように動作可能である、シフターと、
前記第３の中間レジスタからの前記第３の中間結果、前記第７のオペランド、前記第８のオペランドまたはそれらの組み合わせに対して前記第２の演算を実行し、前記第３の出力を供給するように動作可能なＡＬＵと、
を含む、請求項２のプロセッサー。
【請求項６】
下記を具備する、レジスタファイルを有したプロセッサ：
前記レジスタファイルに接続された第１の処理経路、前記第１の処理経路は下記を含む：
前記レジスタファイルから第１および第２のオペランドを受信して乗算し第１の中間結果を供給するように動作可能な第１の乗算器；
前記第１の中間結果と、前記レジスタファイルからの第３のオペランドと、少なくとも１つのさらなるオペランドを受信し、前記受信したオペランドに対して演算を実行し、第１の出力を供給するように動作可能な第１の算術論理演算ユニット（ＡＬＵ）；
前記レジスタファイルに接続された第２の処理経路、前記第２の処理経路は、下記を含む：
前記レジスタファイルから第４および第５オペランドを受信して乗算し第２の中間結果を供給するように動作可能な第２の乗算器；
前記第２の中間結果を、ゼロまたは前記第１の処理経路からの前記第１の中間結果と加算し第２の出力を供給するように動作可能な第２の加算器；
前記第１の処理経路は、乗累算（ＭＡＣ）処理経路を使用するために第１のオプションを、前記ＭＡＣ処理に独立してＡＬＵ処理経路を使用するために第２のオプションを供給するように選択的に設定可能であり、前記第１のＡＬＵは、論理機能およびビット操作機能を実行するように設定可能であり、
前記ＭＡＣ処理経路および前記ＡＬＵ処理経路の演算は並列に生じる。
【請求項７】
前記レジスタファイルからの第７のオペランドまたは第８のオペランドを受信してシフトし、第３の中間結果を供給するように動作可能なシフターと、
前記第３の中間結果、前記第７のオペランド、前記第８のオペランド、またはそれらの組み合わせに対して演算し第３の出力を供給するように動作可能な第２のＡＬＵとを含む、前記レジスタファイルに接続された第３の処理経路をさらに備え、
前記第３の処理経路は、前記第１および第２の処理経路と並列に動作可能なＡＬＵ処理経路として構成可能である、請求項６のプロセッサ。
【請求項８】
前記レジスタファイルは、ＭＡＣまたはＡＬＵのいずれかとして動作する前記第１の処理経路をサポートするように設定可能な少なくとも２つの出力ポートを含む、請求項７のプロセッサー。
【請求項９】
前記第１および第２のＡＬＵｓは、さらに中間バスからのオペランドを受信するように動作可能である、請求項７のプロセッサー。
【請求項１０】
前記プロセッサは、デュアルＭＡＣ／シングルＡＬＵ構成、シングルＭＡＣ／デュアルＡＬＵ構成、またはデュアルＭＡＣ／デュアルＡＬＵ構成において動作するように設定可能な請求項７のプロセッサ。
【請求項１１】
前記プロセッサは、デュアルＭＡＣ／シングルＡＬＵ構成、シングルＭＡＣ／デュアルＡＬＵ構成、またはデュアルＭＡＣ／デュアルＡＬＵ構成において動作するように命令ごとに設定可能な、請求項７のプロセッサ。
【請求項１２】
前記第１の中間結果を記憶し、記憶された第１の中間結果を前記第１のＡＬＵおよび前記第１の加算器に供給するように動作可能な第１の中間レジスタと、
前記第２の中間結果を記憶し、記憶された第２の中間結果を前記第１の加算器に供給するように動作可能な第２の中間レジスタと、
をさらに備えた、請求項６のプロセッサー。
【請求項１３】
前記第１の中間結果を記憶し、記憶された第１の中間結果を前記第１のＡＬＵおよび前記第１の加算器に供給するように動作可能な第１の中間レジスタと、
前記第２の中間結果を記憶し、記憶された第２の中間結果を前記第１の加算器に供給するように動作可能な第２の中間レジスタと、
前記第３の中間結果を記憶し、記憶された第３の中間結果を前記第２のＡＬＵに供給するように動作可能な第３の中間レジスタと、
をさらに備えた、請求項７のプロセッサ。
【請求項１４】
無線通信システムにおいて無線情報を通信するためにプロセッサに接続された少なくとも１つのアンテナを有する無線装置において、前記プロセッサは下記を含む：
前記少なくとも１つのアンテナから受信された複数のオペランドを記憶し通信するためのレジスタファイル；
下記を含む第１の処理経路：
前記レジスタファイルからの第１および第２のオペランドを受信して乗算し第１の中間結果を供給するように動作可能な第１の乗算器；
前記第１の中間結果、前記レジスタファイルからの第３のオペランド、および少なくとも１つのさらなるオペランドを受信し、前記受信したオペランドに対して演算し、第１の出力を供給するように動作可能な第１の算術論理演算ユニット（ＡＬＵ）；
下記を含む第２の処理経路：
前記レジスタファイルからの第４および第５オペランドを受信して乗算し、第２の中間結果を供給するように動作可能な第２の乗算器；
前記第２の中間結果を、ゼロまたは前記第１の処理経路からの前記第１の中間結果のいずれかと加算するように動作可能な第１の加算器；
前記第１の加算器の出力を、前記レジスタファイルからの第６のオペランドと加算し第２の出力を供給するように動作可能な第２の加算器；
下記を含む第３の処理経路：
前記レジスタファイルからの第７および第８オペランドを受信してシフトし、第３の中間結果を供給するように動作可能なシフター；
前記第３の中間結果、前記第７のオペランド、前記第８のオペランド、またはそれらの組み合わせに対して演算し、第３の出力を供給するように動作可能な第２のＡＬＵ；
前記レジスタファイルは、前記第１、第２、および第３処理経路に対して前記第１乃至第８オペランドを供給し、前記第１乃至第３出力を記憶するように動作可能であり、
前記第１の処理経路は、ＭＡＣ処理経路構成とＡＬＵ処理経路構成との間で動的に再設定可能である、無線装置。
【請求項１５】
前記第１および第２のＭＡＣユニットは命令ごとにプロセッサ命令に応答して２つの別個もＭＡＣユニットとして動作するかまたは２つの結合されたＭＡＣユニットとして動作する、請求項１のプロセッサ。
【請求項１６】
前記プロセッサは、演算（Ｂ*Ｃ）±（Ｄ*Ｅ）またはＡ±（Ｂ*Ｃ）±（Ｄ*Ｅ）を実行するように制御可能であり、ここにおいて、Ａ乃至Ｅは、それぞれ前記レジスタファイルの出力ポートＰＯ１乃至ＰＯ５からのオペランドである、請求項１５のプロセッサ。
【請求項１７】
前記プロセッサは、演算（Ｂ*Ｃ）±（Ｄ*Ｅ）またはＡ±（Ｂ*Ｃ）±（Ｄ*Ｅ）を実行するように制御可能であり、ここにおいて、Ａ乃至Ｅは、それぞれ前記レジスタファイルの出力ポートＰＯ１乃至ＰＯ５からのオペランドである、請求項１のプロセッサ。
【請求項１８】
前記第１および第２のＭＡＣユニットは、２つの別個のＭＡＣユニットとして動作するかまたは２つの結合されたＭＡＣユニットとして動作するように選択的に再構成可能である、請求項２のプロセッサ。
【請求項１９】
前記プロセッサは、演算（Ｂ*Ｃ）±（Ｄ*Ｅ）またはＡ±（Ｂ*Ｃ）±（Ｄ*Ｅ）を実行するように制御可能であり、ここにおいて、Ａ乃至Ｅは、それぞれ前記レジスタファイルの出力ポートＰＯ１乃至ＰＯ５からのオペランドである、請求項１８のプロセッサ。
【請求項２０】
前記第１および第２の処理経路は、２つの別個のＭＡＣユニットとして動作するかまたは２つの結合されたＭＡＣユニットとして動作するように選択的に再構成可能である、請求項２のプロセッサ。
【請求項２１】
前記プロセッサは、演算（Ｂ*Ｃ）±（Ｄ*Ｅ）またはＡ±（Ｂ*Ｃ）±（Ｄ*Ｅ）を実行するように制御可能であり、ここにおいて、Ａ乃至Ｅは、それぞれ前記レジスタファイルの出力ポートＰＯ１乃至ＰＯ５からのオペランドである、請求項２０のプロセッサ。
【請求項２２】
前記第１および第２の処理経路は、２つの別個のＭＡＣユニットとして動作するかまたは２つの結合されたＭＡＣユニットとして動作するように選択的に再構成可能であり、
前記第１および第２の処理経路の演算は、前記第３の処理経路の演算と並列に生じる、請求項７のプロセッサ。
【請求項２３】
前記プロセッサは、演算（Ｂ*Ｃ）±（Ｄ*Ｅ）またはＡ±（Ｂ*Ｃ）±（Ｄ*Ｅ）を実行するように制御可能であり、ここにおいて、Ａ乃至Ｅは、それぞれ前記レジスタファイルの出力ポートＰＯ１乃至ＰＯ５からのオペランドである、請求項２２のプロセッサ。
【請求項２４】
前記プロセッサは、単一のＡＬＵユニットと並列な単一のＭＡＣユニットとして機能するように命令ごとに動的に構成可能である、請求項７のプロセッサ。
【請求項２５】
前記プロセッサは、ＡＬＵユニットと並列なデュアルＭＡＣユニットとして機能するように命令ごとに動的に構成可能である、請求項７のプロセッサ。
【請求項２６】
前記プロセッサは、デュアルＡＬＵユニットと並列な単一のＭＡＣユニットとして機能するように命令ごとに動的に構成可能である、請求項７のプロセッサ。
【請求項２７】
前記プロセッサは、デュアルＡＬＵユニットと並列なデュアルＭＡＣユニットとして機能するように命令ごとに動的に構成可能である、請求項７のプロセッサ。
【請求項２８】
前記プロセッサは、Ａ＝Ｂ＋Ｃ、Ｄ＝Ｅ＋Ｆ、およびＧ＝Ｈ＋（Ｉ*Ｊ）を含む種々のタイプの計算を実行するように動的に構成可能である、ここにおいてＡ乃至Ｈは前記レジスタファイルの出力ポートまたは中間バスから受信されたオペランドである、請求項７のプロセッサ。
【請求項２９】
結果Ａ、Ｄ、Ｇは結果として前記レジスタファイルの入力ポートに戻される、請求項２８のプロセッサ。
【請求項３０】
前記プロセッサは、Ａ＝Ｂ＋Ｃ、Ｄ＝Ｅ−Ｆ、およびＧ＝Ｈ＋（Ｉ*Ｊ）+（Ｋ*Ｌ）を含む種々のタイプの計算を実行するように動的に構成可能である、ここにおいてＡ乃至Ｌは前記レジスタファイルの出力ポートまたは中間バスから受信されたオペランドである、請求項７のプロセッサ。
【請求項３１】
結果Ａ、Ｄ、Ｇは結果として前記レジスタファイルの入力ポートに戻される、請求項３０のプロセッサ。
【請求項３２】
前記プロセッサは、Ａ＝（Ｂ＜＜３）＋Ｃ、Ｄ＝Ｅ＆Ｆ、およびＧ＝Ｈ−（Ｉ*Ｊ）を含む種々のタイプの計算を実行するように動的に構成可能である、ここにおいてＡ乃至Ｊは前記レジスタファイルの出力ポートまたは中間バスから受信されたオペランドである、請求項７のプロセッサ。
【請求項３３】
結果Ａ、Ｄ、Ｇは結果として前記レジスタファイルの入力ポートに戻される、請求項３２のプロセッサ。
【請求項３４】
前記第１の処理経路は、前記ＭＡＣ処理経路と前記ＡＬＵ処理経路にオペランドを並列に供給するように選択的に設定可能である、請求項６のプロセッサ。
【請求項３５】
前記第１の処理経路は、前記ＡＬＵ処理経路を用いずに前記ＭＡＣ処理経路に、または前記ＭＡＣ処理経路を用いずに前記ＡＬＵ処理経路にオペランドを供給するように選択的に設定可能である、請求項６のプロセッサ。
【請求項３６】
前記第１のオプションまたは前記第２のオプションは、デジタルシグナルプロセッサ（ＤＳＰ）命令に基づいて選択される、請求項６のプロセッサ。
【請求項３７】
前記第１の加算器の出力に接続され、さらに前記第２の加算器の入力にさらに接続されたパイプラインレジスタをさらに備え、前記第２の処理経路は３段パイプラインＭＡＣ処理経路(three-stage pipelined MAC processing path)を備える、請求項６のプロセッサ。
【請求項３８】
第１の構成において動作するプロセッサにおいて第１のプロセッサ命令を受信することと、
前記第１のプロセッサ命令に応答して前記プロセッサを第２構成で動作するように再構成することと、
を備え、
前記第１の構成または前記第２の構成は、乗累算ユニット（ＭＡＣ）および算術論理演算ユニット（ＡＬＵ）を含み、前記第１の構成は、デュアル独立ＭＡＣ／単一ＡＬＵ構成、単一ＭＡＣ／デュアルＡＬＵ構成、およびデュアル結合ＭＡＣ／デュアルＡＬＵ構成の１つであり、前記第２の構成は、前記デュアル独立ＭＡＣ／単一ＡＬＵ構成、単一ＭＡＣ／デュアルＡＬＵ構成、およびデュアル結合ＭＡＣ／デュアルＡＬＵ構成の異なる１つであり、
前記単一ＭＡＣ／デュアルＡＬＵ構成のすくなくとも１つのＡＬＵは、前記デュアル独立ＭＡＣ／単一ＡＬＵ構成内の値を加算するために使用され、前記少なくとも１つのＡＬＵは、前記単一ＭＡＣ／デュアルＡＬＵ構成における論理機能、ビット操作機能、加算、および減算を実行するように設定可能であり、
前記ＭＡＣの演算は、前記ＡＬＵの演算と並列に生じる、方法。
【請求項３９】
前記第１のプロセッサ命令に応答して第１のセットの並列計算を実行し、前記第１のセットの並列計算は、Ａ＝Ｂ＋Ｃ、Ｄ＝Ｅ−Ｆ、およびＧ＝Ｈ＋（Ｉ*Ｊ）+（Ｋ*Ｌ）を含む、請求項３８の方法。
【請求項４０】
前記プロセッサにおいて第２のプロセッサ命令を受信することと、
前記第２のプロセッサ命令に応答して第３の構成において動作するように前記プロセッサを再構成することと、
をさらに備え、前記第３の構成は前記第１の構成および前記第２の構成の各々と異なる、請求項３８の方法。
【請求項４１】
前記第１の構成、前記第２の構成、および前記第３の構成は、デュアル独立ＭＡＣ／単一ＡＬＵ構成、単一ＭＡＣ／デュアルＡＬＵ構成、およびデュアル結合ＭＡＣ／デュアルＡＬＵ構成の異なる１つである、請求項４０の方法。
【請求項４２】
前記第１のプロセッサ命令に応答して第１のセットの並列計算を実行することであって、前記第１のセットの並列計算は、Ａ＝Ｂ＋Ｃ、Ｄ＝Ｅ−Ｆ、およびＧ＝Ｈ＋（Ｉ*Ｊ）＋（Ｋ*Ｌ）を含むことと、
前記第２のプロセッサ命令に応答して第２のセットの並列計算を実行することであって、前記第２のセットの並列計算は、Ａ＝（Ｂ＜＜３）＋Ｃ、Ｄ＝Ｅ＆Ｆ、およびＧ＝Ｈ＋（Ｉ*Ｊ）を含むことと、
をさらに備えた、請求項４１の方法。
【請求項４３】
複数の乗算器と少なくとも１つの算術論理演算ユニット（ＡＬＵ）と、
ＡＬＵ処理経路を形成するために前記少なくとも１つのＡＬＵを含む第１の乗累算（ＭＡＣ）処理経路から前記複数の乗算器の１つを選択的に除去するように構成された第１の乗算器とを備え、
前記少なくとも１つのＡＬＵは、論理機能、ビット操作機能、加算および減算を実行するように設定可能である、デジタルシグナルプロセッサ。
【請求項４４】
前記第１の乗算器の演算は命令ごとにＤＳＰ命令に応答して前記ＤＳＰを動的に再構成する、請求項４３のプロセッサ。
【請求項４５】
前記複数の乗算器の１つを第２のＭＡＣ処理経路に選択的に付加するように構成された第２のマルチプレクサをさらに備え、前記第２の乗算器の演算は命令ごとに前記ＤＳＰ命令に応答して前記ＤＳＰをさらに動的に再構成する、請求項４４のプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は一般に電子機器に関し、特に設定可能な乗累算（ＭＡＣ）ユニットおよび算術論理演算ユニット（ＡＬＵｓ）を有したデジタルシグナルプロセッサー（ＤＳＰｓ）に関する。
【背景技術】
【０００２】
ＤＳＰｓは数学的計算を非常に迅速に実行するように特に設計された特殊化したマイクロプロセッサーである。ＤＳＰｓはコンパクトディスクプレーヤー、ＰＣディスクドライブ、モデムバンク、オーディオ装置、携帯電話、等のようなさまざまな電子ユニットで使用される。携帯電話において、ＤＳＰ計算能力のための需要は、３Ｇ（第３世代）モデムプロセッシング、位置決定、画像およびビデオ処理、３−Ｄゲームのようなアプリケーションの増大する必要性により推進されて増大し続ける。これらのアプリケーションは、迅速かつ効率的に計算を実行することができるＤＳＰｓを必要とする。
【０００３】
ＤＳＰは典型的にＭＡＣユニットおよびＡＬＵを含む。ＭＡＣユニットは、一般にフィルタリングおよび信号処理で使用される乗累算演算のために使用される。ＡＬＵは、加算演算、減算演算、論理演算、シフト演算およびビット操作演算に使用される。ＤＳＰはまた、より高い計算スループットのために複数のＭＡＣを含んでもよい。例示デュアルＭＡＣ  ＤＳＰは、２００３年４月２９日に発行された「結合乗累算ユニットを有したデジタルシグナルプロセッサー」(Digital Signal Processor with Coupled Multiply-Accumulate Units)というタイトルの米国特許番号第６、５５７、０２２に記載されている。
【０００４】
任意のＤＳＰ設計の目的は、（１）単位時間当たりの演算の最多数を実現することおよび（２）利用可能なハードウエアのより良い利用を可能にするために同時に異なるタイプの演算を実行するように柔軟性を供給することである。これらの目的を満足させることができるＤＳＰアーキテクチャは、今日のアプリケーションの処理需要を満足させるために非常に望ましい。
【発明の概要】
【０００５】
改良された性能を有するＤＳＰアーキテクチャがここに記載される。一実施形態において、ＤＳＰは２つのＭＡＣユニットと２つのＡＬＵｓを含む、ＡＬＵｓの一方は２つのＭＡＣユニットの一方のために加算器を交換する。このＤＳＰは、デュアルＭＡＣ／シングルＡＬＵ構成、シングルＭＡＣ／デュアルＡＬＵ構成、またはデュアルＭＡＣ／デュアルＡＬＵ構成において動作するために、恐らく命令ごとに基づいて構成してもよい。構成の柔軟性は、ＤＳＰがさまざまなタイプの信号処理演算を処理することを可能にし、利用可能なハードウエアの利用を改善する。ＤＳＰはさらに、クリティカルパスを分散し、より大きなスループットのためにより高いクロックスピードでＤＳＰが動作することを可能にするパイプラインレジスタを含む。ＤＳＰアーキテクチャの他の実施形態も以下に記載される。
【０００６】
この発明の種々の観点および実施形態は以下にさらに詳細に記載される。
【０００７】
１つの観点において、第１および第２のオペランドを受信して乗算し、第１の中間結果を得、第１の中間結果を第１のレジスタに記憶し、記憶された第１の中間結果を第３のオペランドと加算し、第１の出力を供給するように動作可能な第１の乗累算（ＭＡＣ）ユニットと、第４および第５のオペランドを受信して乗算し、第２の中間結果を得、第２の中間結果を第２のレジスタに記憶し、第６のオペランドを、記憶された第２の中間結果または記憶された第１および第２の中間結果の合計と加算し、第２の出力を供給するように動作可能な第２のＭＡＣユニットを備えたプロセッサーが提供される。
【０００８】
他の観点において、第１および第２のオペランドを受信して乗算し第１の中間結果を供給するように動作可能な第１の乗算器と、第１の中間結果、第３のオペランド、および少なくとも１つの更なるオペランドを受信し、受信したオペランドを演算し、第１の出力を供給するように動作可能な第１の算術論理演算ユニット（ＡＬＵ）を含む第１の乗累算（ＭＡＣ）ユニットと、第４および第５のオペランドを受信して乗算し第２の中間結果を供給するように動作可能な第２の乗算器と、第２の中間結果をゼロまたは第１のＭＡＣユニットからの第１の中間結果と加算するように動作可能な第１の加算器と、第１の加算器の出力と第６のオペランドを加算して第２の出力を供給する第２の加算器を含む第２のＭＡＣユニットと、を備えたプロセッサーが提供される。
【０００９】
他の観点において、第１および第２のオペランドを受信して乗算し第１の中間結果を供給するように動作可能な第１の乗算器と、第１の中間結果を記憶し記憶された第１の中間結果を供給するように動作可能な第１のレジスタと、記憶された中間結果、第３のオペランド、少なくとも１つの他のオペランド、またはそれらの組み合わせを受信して演算するように動作可能な第１の算術論理演算ユニット（ＡＬＵ）と、を含む第１の乗累算（ＭＡＣ）ユニットと、第４および第５のオペランドを受信して乗算し、第２の中間結果を供給するように動作可能な第２の乗算器と、第２の中間結果を記憶し、記憶された第２の中間結果を供給するように動作可能な第２のレジスタと、記憶された第２の中間結果とゼロまたは第１のＭＡＣユニットからの記憶された第１の中間結果とを加算するように動作可能な第１の加算器と、第１の加算器の出力と第６のオペランドを加算して第２の出力を供給するように動作可能な第２の加算器と、を含む第２のＭＡＣユニットと、を備えたプロセッサーが提供される。
【００１０】
他の観点において、第１および第２のオペランドを受信して乗算し第１の中間結果を供給するように動作可能な第１の乗算器と、第１の中間結果、第３のオペランド、および少なくとも１つのさらなるオペランドを受信し、受信したオペランドを演算し、第１の出力を供給するように動作可能な第１の算術論理演算ユニット（ＡＬＵ）と、を含む第１の乗累算（ＭＡＣ）ユニットと、第４および第５のオペランドを受信して乗算し第２の中間結果を供給するように動作可能な第２の乗算器と、第２の中間結果をゼロまたは第１のＭＡＣユニットからの第１の中間結果と加算するように動作可能な第１の加算器と、第１の加算器の出力と第６のオペランドを加算して第２の出力を供給するように動作可能な第２の加算器と、を含む第２のＭＡＣユニットと、第７のオペランドまたは第８のオペランドを受信してシフトし、第３の中間結果を供給するように動作可能なシフターと、第３の中間結果、第７のオペランド、第８のオペランド、またはそれらの組み合わせに対して演算し、第３の出力を供給するように動作可能な第２のＡＬＵと、を含むＡＬＵ経路(path)と、第１および第２のＭＡＣユニットおよびＡＬＵ経路のための第１乃至第８のオペランドを供給し、第１および第２のＭＡＣユニットおよびＡＬＵ経路から第１乃至第３の出力を記憶するように動作可能なレジスタファイルと、を備えた無線装置が提供される。
【発明を実施するための最良の形態】
【００１１】
「例示」という用語は、「例、インスタンス、または例証」として機能することを意味するためにここに示される。「例示」としてここに記載されるいかなる実施形態または設計は、他の実施形態または設計に対して望ましいまたは利点があるとして必ずしも解釈されるべきでない。
【００１２】
図１は２つのＭＡＣユニットと１つのＡＬＵを備えたＤＳＰ１００のブロック図を示す。レジスタファイル１１０は、ＭＡＣユニットおよびＡＬＵのためのオペランドおよび結果を記憶するために使用することができる汎用レジスタのバンクを含む。レジスタファイル１１０はメモリユニット（図１に図示せず）に接続し、データを交換する。図１に示される実施形態の場合、レジスタファイル１１０は、ＰＩ１乃至ＰＩ３のラベルが付けられた３つの入力ポートと、ＰＯ１乃至ＰＯ８のラベルが付けられた８つの出力ポートを有する。一般に、レジスタファイルは、任意の数の入力ポートおよび出力ポートを持つことができる。
【００１３】
第１のＭＡＣユニット（ＭＡＣＩ）の場合、乗算器１２２ａは、レジスタファイル１１０の出力ポートＰＯ４およびＰＯ５から２つのオペランドを受信して乗算し、結果を加算器１４０ａの１つの入力に供給する。加算器１４０ａは出力ポートＰＯ６から他のオペランドを受信し、２つの入力オペランドを加算し、出力をレジスタファイル１１０の入力ポートＰＩ２に供給する。マルチプレクサー１２８は、２つの入力端子に乗算器１２２ａの出力とゼロの値を受信し、マルチプレクサー制御（ＭＣ）に応じて乗算器出力またはゼロを供給する。
【００１４】
第２のＭＡＣユニット（ＭＡＣ２）の場合、乗算器１２２ｂは、レジスタファイル１１０の出力ポートＰＯ２およびＰＯ３から２つのオペランドを受信して乗算し、その結果を加算器１３０の１つの入力に供給する。また、加算器１３０は乗算器１２８の出力を受信し、２つの入力オペランドを加算し、出力を加算器１４０ｂの１つの入力に供給する。加算器１４０ｂは、出力ポートＰＯ１から他のオペランドを受信し、２つの入力オペランドを加算し、出力をレジスタファイル１１０の入力ポートＰＩ１に供給する。
【００１５】
ＡＬＵ経路の場合、シフター１５４は、レジスタファイル１１０の出力ポートＰＯ７およびＰＯ８から２つの入力を受信し、中間バスから第３の入力を受信する。中間バスは、命令に埋め込まれたイメデェート(immediate)値をＡＬＵに転送する。シフター１５４は、３つの入力の１つを選択し、指定された数のビットだけ選択された入力からオペランドをシフトし（例えば、左に０、１、２、または３ビット）、出力をマルチプレクサー１５８ａおよび１５８ｂの１つの入力に供給する。また、マルチプレクサー１５８ａは、出力ポートＰＯ７からオペランドを受信し、２つの入力の１つをＡＬＵ１６０の１つの入力に供給する。また、マルチプレクサー１５８ｂは、中間バスからイメデェート値を受信し、２つの入力の１つをＡＬＵ１６０の他の入力に供給する。ＡＬＵ１６０はその入力オペランドに対して演算し、出力をレジスタファイル１１０の入力ポートＰＩ３に供給する。
【００１６】
ＤＳＰ１１０内のユニットは任意の数のビットで設計してもよい。一例として、乗算器１２２ａおよび１２２ｂは、１６×１６ビットの乗算器であってもよいし、加算器１３０は、３２ビットの加算器であってもよいし、加算器１４０ａは４０ビットの加算器であってもよいし、シフター１５４およびＡＬＵ１６０は４０ビットのユニットであってもよい。同様に、レジスタファイル１１０は、その入力ポートおよび出力ポートに対して任意の数のビットで設計してもよい。一例として、出力ポートＰＯ１、ＰＯ６、およびＰＯ７は、４０ビットオペランドを供給してもよいし、出力ポートＰＯ２、ＰＯ３、ＰＯ４、およびＰＯ５は、１６ビットオペランドを供給してもよいし、出力ポートＰＯ８は１６ビットまたは４０ビットオペランドを供給してもよいし、入力ポートＰＩ１、ＰＩ２、およびＰＩ３は、４０ビットの結果を受信してもよい。上述したものは例示値であり、他のビット幅を使用してもよい。
【００１７】
ＤＳＰ１００は、２つの独立したＭＡＣユニットまたは２つの結合したＭＡＣユニットとして動作するように構成してもよい。独立したデュアルＭＡＣ構成の場合、マルチプレクサー１２８はゼロ値を加算器１３０にわたすように制御され、ＭＡＣ１およびＭＡＣ２は、独立して動作し、異なるオペランドのセットに対して同時に２つのＭＡＣ動作を実行することができる。結合されたデュアルＭＡＣ構成の場合、マルチプレクサー１２８は、乗算器１２２ａの出力をわたすように制御され、ＭＡＣ１およびＭＡＣ２は集合的に計算を実行する。（Ｂ＊Ｃ）±（Ｄ＊  Ｅ）またはＡ±（Ｂ＊Ｃ）＋（Ｄ＊Ｅ）、但し、Ａ乃至Ｅは、それぞれ出力ポートＰＯ１乃至ＰＯ５からのオペランドである。これらの２つの計算は、虚数乗法および累算動作に非常に有用である。
【００１８】
単位時間当たりの処理能力を改良するために（すなわち、秒あたりのより多くの演算を実行するために）、ＤＳＰのクロックのスピードを増加することは非常に望ましい。例えば、クロックスピードが５０％だけ増加できるなら、同じハードウエアで毎秒５０％以上の演算を実行することができる。しかしながら、結合デュアルＭＡＣ経路およびＡＬＵ経路は、各々そのクリティカルパスに対して直列に複数の演算を有するので、図１に示されるＤＳＰアーキテクチャは、クロックスピードが増加されるにつれて増やされない。結合デュアルＭＡＣ経路は、乗算器１２２ａまたは１２２ｂおよび加算器１３０および１４０ｂを介してそのクリティカルパスにおいて乗算および２つの加算演算を有する。ＡＬＵ経路は、そのクリティカルパスにシフトおよび加算演算を有する。これらの演算は完了するのに多少の時間を必要とし、従ってＤＳＰに使用してもよいクロックスピードを制限するであろう。
【００１９】
図２は、２つのＭＡＣユニットおよび１つのＡＬＵを有したパイプライン型のＤＳＰ１０２のブロック図を示す。ＤＳＰ１０２は、図１に示されるＤＳＰ１００のエレメントのすべてを含む。ＤＳＰ１０２はさらに（１）乗算器１２２ａと加算器１４０ａとの間に結合されたレジスタ１２４ａ、（２）乗算器１２２ｂおよび加算器１３０との間に結合されたレジスタ１２４ｂ、および（３）シフター１５４とマルチプレクサー１５８ａおよび１５８ｂとの間に結合されたレジスタ１５６を含む。
【００２０】
レジスタ１２４ａ、１２４ｂ、および１５６は、それぞれＭＡＣ１、ＭＡＣ２のクリティカルパスおよびＡＬＵ経路に介挿されたパイプラインレジスタである。これらのレジスタはクリティカルパスを分散し、ＤＳＰ１０２がより高いレートでクロックされるのを可能にする。ＤＳＰ１０２のための実行サイクルは２つのパイプラインステージに分割される。第１のパイプラインステージにおいて、乗算器１２２ａおよび１２２ｂはレジスタファイル１１０からオペランドをフェッチし、乗算演算を実行し、それらの結果をそれぞれレジスタ１２４ａおよび１２４ｂに記憶する。同様に、ＡＬＵ経路の場合、シフター１５４はレジスタファイル１１０および／または中間バスから入力を受信し、指定されたシフトを実行し、結果をレジスタ１５６に記憶する。第２のパイプラインステージにおいて、ＭＡＣ１およびＭＡＣ２内の加算器およびＡＬＵ経路内のＡＬＵ１６０はアクティブである。独立したデュアルＭＡＣ構成の場合、加算器１４０ａは、レジスタ１２４ａの出力を出力ポートＰＯ６からのオペランドと加算し、出力を入力ポートＰＩ２に供給し、加算器１４０ｂは、レジスタ１２４ｂの出力を出力ポートＰＯ１からのオペランドと加算し、出力を入力ポートＰＩ１に供給する。結合されたデュアルＭＡＣ構成の場合、加算器１３０は、レジスタ１２４ａおよび１２４ｂの出力を加算し、加算器１４０ｂは、加算器１３０の出力と出力ポートＰＯ１からのオペランドとを加算し、出力を入力ポートＰＩ１に供給する。ＡＬＵ経路の場合、ＡＬＵ１６０は、レジスタ１５６の出力および／または出力ポートＰＯ７および中間バスからのオペランドを受信し、入力オペランドに対して演算し、出力を入力ポートＰＩ３に供給する。
【００２１】
ＤＳＰ１０２は、ＤＳＰ１００の機能性のすべてを提供することができる。しかしながら、ＤＳＰ１０２は、ＤＳＰ１００より早いレートで（２倍の速さまで）クロックしてもよい。なぜならＤＳＰ１０２内のクリティカルパスは、パイプラインレジスタを用いて分割されているからである。従って、これはＤＳＰ１００よりもより高い全体のスループットをＤＳＰ１０２が実現することを可能にする。ＤＳＰ１０２内の全ての他の経路よりもはるかに長い遅延を有する新しいクリティカルパスであるなら、この経路をさらに分割するために、加算器１３０と１４０ｂとの間にパイプラインレジスタを介挿してもよい。この場合、ＤＳＰ１０２のための実行サイクルは、３つのパイプラインステージに分割されるであろう。
【００２２】
図１に示されるＤＳＰアーキテクチャは、制限された設定可能性を有し、すべてのタイプの信号処理可能性に適合しない。ＤＳＰ１００は（独立したまたは結合して）２つのＭＡＣ演算および１つのＡＬＵ演算を並列に実行することができる。いくつかのアプリケーションの場合、２つのＡＬＵ演算と１つのＭＡＣ演算を生じさせるかまたは２つのＭＡＣ演算と２つのＡＬＵ演算を並列に生じさせることが望ましいかもしれない。並列に２つのＡＬＵ演算を好むアプリケーションは、ビデオ圧縮における動き検出のための絶対差分（ＳＡＤ）測定基準計算、音声認識におけるテンプレート比較、およびビタビデコーディングにおける経路距離計算の和を含む。これらはすべて技術的に知られている。
【００２３】
図３は、２つのＭＡＣユニットと２つのＡＬＵｓを有した設定可能なＤＳＰ１０４のブロック図を示す。ＤＳＰ１０４は図１に示されるＤＳＰ１００のエレメントのほとんどを含む。ＤＳＰ１０４はさらに、マルチプレクサー１４２ａおよび１４２ｂおよびＤＳＰ１００内の加算器１４０ａを交換するＡＬＵ１５０を含む。
【００２４】
図３に示される実施形態の場合、マルチプレクサー１４２ａは乗算器１２２ａの出力と出力ポートＰＯ５および中間バスからのオペランドを受信する。マルチプレクサー１４２ａは、その３つの入力の１つを選択し、選択された入力からのオペランドをＡＬＵ１５０の１つの入力に供給する。マルチプレクサー１４２ｂは、出力ポートＰＯ４およびＰＯ６からオペランドを受信し、２つの入力の１つを選択し、選択された入力からのオペランドをＡＬＵ１５０の他の入力に供給する。ＡＬＵ１５０はその入力オペランドに対して加算演算および減算演算とともに論理演算およびビット操作演算を実行することができ、出力を入力ポートＰＩ２に供給する。
【００２５】
図３は、ＭＡＣ１およびＡＬＵ１５０をサポートするためにレジスタファイル１１０の設定可能な出力ポートＰＯ４、ＰＯ５、およびＰＯ６の使用を示す。これは、ＭＡＣとＡＬＵをサポートするのに必要な出力ポートの数を低減する。これは、レジスタファイルの設計を簡単化することができる。また、図３は、ＡＬＵ１５０をレジスタファイルの出力ポートおよびＤＳＰ１０４内の他のユニットに接続するための特定の例を示す。他の接続も可能である。例えば、マルチプレクサー１４２ａおよび１４２ｂは、より多くのオペランドを受信するためにより多くの入力を有していてもよいし、および／またはレジスタファイル１１０の異なる出力ポートからオペランドを受信してもよい。
【００２６】
ＤＳＰ１０４は種々の構成で動作してもよい。これは表１にリストアップされる。これらの種々の構成は、例えばＤＳＰ命令を用いてＤＳＰ１０４内の種々のユニットのための接続を適切に設定することにより選択してもよい。ＤＳＰ１０４のための構成は、例えば命令ベースにより命令に対して動的に変更してもよい。
【表１】
0004369509.tif 000002
【００２７】
ＤＳＰ１０４の場合、オペランドのいくつかは、制限された数の出力ポートおよび接続のためにいくつかの構成において共有される。
【００２８】
ＤＳＰを種々の構成において動作させるための柔軟性は、ＤＳＰが種々のタイプの信号処理動作に適合することを可能にする。従って、これは、利用可能なハードウエアのより良い利用およびより高い全体のスループットを可能にする。ＤＳＰのための種々の構成は以下に図解される。
【００２９】
図４は、２つのＭＡＣユニットおよび２つのＡＬＵｓを有した設定可能なパイプライン型のＤＳＰ１０６のブロック図を示す。ＤＳＰ１０６は図３に示されるＤＳＰ１０４のエレメントのすべてを含む。さらに、ＤＳＰ１０６は、それぞれ乗算器１２２ａおよび１２２ｂの出力およびシフター１５４の出力に配置されるパイプラインレジスタ１２４ａ、１２４ｂおよび１５６を含む。ＤＳＰ１０６はＤＳＰ１０４のために表１に示される構成のすべてをサポートすることができる。しかしながら、ＤＳＰ１０６は、ＤＳＰ１０４よりもより高いクロックスピードで動作することができる。なぜならば、パイプラインレジスタ１２４ａ、１２４ｂ、および１５６は、それぞれＭＡＣ１、ＭＡＣ２およびＡＬＵ経路を分割するからである。
【００３０】
ＤＳＰデータ経路は、より多くのユニットおよび／または図３および図４に示される接続よりもより多くの接続を用いて設計し、さらにより大きな柔軟性および機能性を実現してもよい。さらに、オペランドを選択する際に、より大きな柔軟性をサポートするために更なる出力ポートを用いてレジスタファイルを設計してもよい。
【００３１】
図５は２つのＭＡＣユニットと２つのＡＬＵｓを用いた他の設定可能なパイプライン型のＤＳＰ１０８のブロック図を示す。ＤＳＰ１０８は、図４に示されるＤＳＰ１０６のエレメントのほとんどを含む。しかしながら、ＤＳＰ１０８は、８つの出力ポートを有するレジスタファイル１１０を交換する１０の出力ポートを有するレジスタファイル１１２を含む。ＤＳＰ１０８は以下に記載されるように、ＭＡＣ１およびＭＡＣ２およびＡＬＵ経路のためのさらなるユニットおよび接続をさらに含む。
【００３２】
ＭＡＣ１の場合、シフター１２６ａはレジスタ１２４ａの出力を受信し、指定された数のビットによりその入力オペランドをシフトし、出力をマルチプレクサー１２８および１４２ａの１つの入力に供給する。また、マルチプレクサー１４２ａは、出力ポートＰＯ４、ＰＯ５、およびＰＯ７および中間バスからオペランドを受信する。マルチプレクサー１４２ａは、５つの入力の１つをＡＬＵ１５０の１つの入力に供給する。
【００３３】
ＭＡＣ２の場合、シフター１２６ｂはレジスタ１２４ｂの出力を受信し、指定された数のビットだけその入力オペランドをシフトし、出力を加算器１３０に供給する。シフター１３２は、出力ポートＰＯ１からオペランドを受信し、指定された数のビットだけその入力オペランドをシフトし、出力をマルチプレクサー１３４の１つの入力に供給する。また、マルチプレクサー１３４は「０」の値と「０ｘ８０００」の値を受信し、３つの入力の１つを加算器１４０に供給する。特に、加算器１４０のための加算が必要ないときマルチプレクサー１３４は「０」の値を供給し、累算が実行されるとき、丸めのための「０ｘ８０００」の値を供給し、出力ポートＰＯ１からオペランドを供給する。
【００３４】
ＡＬＵ経路の場合、マルチプレクサー１５２は、出力ポートＰＯ８および中間バスからオペランドを受信し、出力をシフター１５４に供給する。また、シフター１５４は、出力ポートＰＯ７からオペランドを受信し、２つの入力の１つを選択し、指定された数のビットだけ選択された入力からオペランドをシフトし、出力をレジスタ１５６に供給する。マルチプレクサー１５８ａは、レジスタ１５６の出力と出力ポートＰＯ９からのオペランドを受信し、２つの入力の１つを選択し、選択された入力からのオペランドをＡＬＵ１６０の１つの入力に供給する。マルチプレクサー１５８ｂは、出力ポートＰＯ１０および中間バスからオペランドを受信し、２つの入力の１つを選択し、選択された入力からのオペランドをＡＬＵ１６０の他の入力に供給する。ＡＬＵ１６０はその入力オペランドに対して演算し、出力をマルチプレクサー１６４に供給する。シフター１６２は、出力ポートＰＯ９からオペランドを受信し、マルチプレクサー１５８ｂは２つの入力において、２つの入力の１つを選択し、指定された数のビットだけ選択された入力からオペランドをシフトし、出力をマルチプレクサー１６４に供給する。マルチプレクサー１６４は、２つの入力の１つをＡＬＵ飽和ユニット１６６に供給する。ＡＬＵ飽和ユニット１６６は、受信された値を飽和し、飽和された値を入力ポートＰＤに供給する。
【００３５】
大きさの異なる位階の数を処理するためにシフター１２６ａ、１２６ｂ、および１３２は、ＭＡＣ１およびＭＡＣ２に設けられる。シフター１５４および１６２はシフト動作のためにＡＬＵ経路に設けられる。これらのシフターの各々は、例えば左に０、１、２、または３ビットだけ、またはその他のビットシフトのレンジだけその入力オペランドをシフトするように個々に構成してもよい。マルチプレクサー１３４は、丸めのための「０ｘ８０００」を供給することにより更なる精度を供給する。これは、さらなるハーフビットの精度を供給する。
【００３６】
ＤＳＰ１０８は図１のＤＳＰ１００と以下の違いを有する。第１に、パイプラインレジスタ１２４ａおよび１２４ｂは、それぞれＭＡＣ１およびＭＡＣ２内の乗算器１２２ａおよび１２２ｂの出力において介挿され、パイプラインレジスタ１５６は、ＡＬＵ経路内のシフター１５４の出力に介挿される。第２にＭＡＣ１内の加算器１４０ａは、ＡＬＵ１５０と交換されている。ＡＬＵ１５０は、加算および減算とともに論理およびビット操作演算を実行することができる。第３に、シフター１６２およびレジスタファイル１１２内の出力ポートＰＯ９およびＰＯ１０は、ＡＬＵ経路のために追加されている。第４に、種々の新しい接続がＭＡＣ１のためのＡＬＵ１５０に注がれている。
【００３７】
ＤＳＰ１０８は、図３のＤＳＰ１０４のための表１に示される構成のすべてをサポートすることができる。ＤＳＰ１０８はさらなるシフター、マルチプレクサー、出力ポート、および接続のために演算の種々のタイプと組み合わせをサポートすることができる。パイプラインレジスタ１２４ａ、１２４ｂ、および１５６がそれぞれＭＡＣ１５、ＭＡＣ２およびＡＬＵ経路を分解するので、ＤＳＰ１０８は、より高いクロックスピードをサポートすることができる。
【００３８】
図６は、デュアルＭＡＣ／シングルＡＬＵ構成において動作するＤＳＰ１０８を示す。この構成において、ＭＡＣ１およびＭＡＣ２は、適切にマルチプレクサー１２８を制御することにより、独立してまたは組み合わせて動作してもよい。ＡＬＵ１５０は、（簡単のために図６には示していないマルチプレクサー１４２ａを介して）シフター１２６ａの出力を受信し、（図示していないマルチプレクサー１４２ｂを介して）出力ポートＰＯ６からオペランドを受信する。この構成の場合、ＡＬＵ１５０は、加算器として機能し、２つの入力オペランドに対して加算を実行する。
【００３９】
図７は、シングルＭＡＣ／デュアルＡＬＵ構成において動作するＤＳＰ１０８を示す。
【００４０】
この構成において、ＭＡＣ１は、バイパスされ、ＭＡＣ２は作動する。マルチプレクサー１４２ａは、出力ポートＰＯ４、ＰＩ５、およびＰＯ７および中間バスからオペランドを受信することができ、４つの入力の１つを選択することができ、選択された入力からのオペランドをＡＬＵ１５０の１つの入力に供給することができる。マルチプレクサー１４２ｂは、出力ポートＰＯ４およびＰＯ６からオペランドを受信することができ、２つの入力の１つを選択することができ、選択された入力からのオペランドをＡＬＵ１５０の他の入力に供給することができる。ＡＬＵ１５０は、その入力オペランドに対して任意のＡＬＵ演算を実行することができる。
【００４１】
図８は、デュアルＭＡＣ／デュアルＡＬＵ構成において動作するＤＳＰ１０８を示す。この構成において、ＭＡＣ１およびＭＡＣ２は、結合デュアルＭＡＣ構成で動作され、マルチプレクサー１２８は簡単のために省略されている。マルチプレクサー１４２ａは、出力ポートＰＯ７および中間バスからオペランドを受信することができ、２つの入力の１つを選択することができ、選択された入力からのオペランドをＡＬＵ１５０の１つの入力に供給することができる。また、ＡＬＵ１５０は、出力ポートＰＯ６からのオペランドおよび他の入力を受信することができ、その入力オペランドに対して任意のＡＬＵ演算を実行することができる。
【００４２】
また、ＤＳＰ１０４および１０６は、ＤＳＰ１０８のための図６、図７、および図８に示される方法と類似の方法で、デュアルＭＡＣ／シングルＡＬＵ、シングルＭＡＣ／デュアルＡＬＵ、およびデュアルＭＡＣ／デュアルＡＬＵ構成において動作することもできる。しかしながら、ＤＳＰ１０４および１０６は、ＤＳＰ１０８より少ない接続、出力ポートおよびマルチプレクサーを有しているので、これらの種々の構成のためのＤＳＰ１０４および１０６のための接続は、ＤＳＰ１０８のための接続と異なるであろう。
【００４３】
ＤＳＰ１０４、１０６および１０８のための設定可能なアーキテクチャは、これらのＤＳＰが単一の命令で種々のタイプと組み合わせの計算を実行することを可能にする。例えば、以下の計算タイプおよび組み合わせは１つの命令でこれらのＤＳＰｓにより実行してもよい。
【００４４】
Ａ＝Ｂ＋Ｃ；Ｄ＝Ｅ＋Ｆ；Ｇ＝Ｈ＋（Ｉ＊Ｊ）。
【００４５】
Ａ＝Ｂ＋Ｃ；Ｄ＝Ｅ−Ｆ；Ｇ＝Ｈ＋（Ｉ＊Ｊ）＋（Ｋ＊Ｌ）。
【００４６】
Ａ＝（Ｂ<<３）＋Ｃ；Ｄ＝Ｅ＆Ｆ；Ｇ＝Ｈ−（Ｉ＊Ｊ）。
【００４７】
上に示された計算のための入力オペランドは、レジスタファイルおよび中間のバスの出力ポートから生じることができる。計算のための３つの結果Ａ、Ｄ、およびＧは、レジスタファイルの３つの入力ポートに供給することができる。また、多くの他の計算タイプおよび組み合わせもＤＳＰｓ１０４、１０６および１０８により実行することができる。
【００４８】
設定可能なアーキテクチャは、表１に示される並列組み合わせのすべてをサポートするので、ＤＳＰ１０４および１０６のための設定可能なアーキテクチャはＤＳＰ１００のためのアーキテクチャよりもすべてのタイプの信号処理演算に対してより適している。
【００４９】
ここに記載された設定可能なおよび／またはパイプライン型のＤＳＰｓは、無線通信、計算、ネットワーキング、パーソナルエレクトロニクス等を含む種々のアプリケーションに使用してもよい。無線通信のためのＤＳＰｓの例示使用が以下に記載される。
【００５０】
図９は、無線通信システムにおいて無線装置９００のブロック図を示す。無線装置９００は、携帯電話、ハンドセット、端末、移動局、またはその他の装置または設計であってもよい。無線通信システムは、符号分割多重アクセス（ＣＤＭＡ）システム、モバイル通信（ＧＳＭ）システムのためのグローバルシステム、複数入力複数出力（ＭＩＭＯ）システム、直交周波数分割多重（ＯＦＤＭ）システム、および直交周波数分割多重アクセス（ＯＦＤＭＡ）システム等であってもよい。無線装置９００は受信経路および送信経路を介して双方向通信を供給することができる。
【００５１】
受信経路の場合、システム内の基地局により送信される信号は、アンテナ９１２により受信され、デュプレクサー（Ｄ）９１４を介して送られ、受信機ユニット（ＲＣＶＲ）９１６に供給される。受信機ユニット９１６は受信された信号を条件づけし（例えば、フィルターし、増幅し、および周波数コンバートする）、条件づけされた信号をデジタル化し、データサンプルを更なる処理のためにＤＳＰ９２０に供給する。送信経路の場合、無線装置９００から送信されたデータはＤＳＰ９２０により送信機ユニット（ＴＭＴＲ）９１８に供給される。送信機ユニット９１８はデータを条件づけし（例えば、フィルターし、増幅し、および周波数コンバートする）、変調された信号を発生する。変調された信号はデュプレクサー９１４を介して送られ、アンテナ９１２を介して基地局に送信される。
【００５２】
ＤＳＰ９２０は、例えば、レジスタファイル９３０、ＭＡＣユニット９３２、ＡＬＵｓ９３４および内部コントローラー９４０および内部メモリユニット９４２のような種々のユニットを含む。これらはすべて内部バスを介して接続される。内部コントローラー９４０は、ＭＡＣユニット９３２およびＡＬＵｓ９３４が種々の計算を実行するように指示する命令を実行する。例えば、ＤＳＰ９２０は、送信経路のための符号化、インターリービング、変調、コードチャネライゼーション(code channelization)、スペクトル拡散、フィルタリング等を実行してもよい。ＤＳＰ９２０は、受信経路のために、フィルタリング、逆拡散、チャネライゼーション、復調、デインターリービング、デコーディング等を実行してもよい。これらの種々の動作は技術的に知られている。ＤＳＰ９２０により実行される特定の処理は、通信システムに依存する。レジスタファイル９３０、ＭＡＣユニット９３２、およびＡＬＵｓ９３４は、図２、３、４および５に示されるＤＳＰアーキテクチャのいずれかを用いて実施してもよい。
【００５３】
コントローラー９５０は、ＤＳＰ９２０および無線装置９００内の他のユニットを制御する。他のユニットは、種々の実施形態の理解に寄与しないので、他のユニットは図９に示されていない。メモリユニット９４２および９５２はそれぞれコントローラー９４０および９５０により使用されるプログラムコードおよびデータを記憶する。
【００５４】
図９は、ここに記載された設定可能なおよび／またはパイプライン型のＤＳＰｓが使用されてもよい無線装置の例示設計を示す。また、これらのＤＳＰｓは他の電子装置に使用されてもよい。
【００５５】
ここに記載される設定可能なおよび／またはパイプライン型ＤＳＰは、種々のハードウエアユニットで実現してもよい。例えば、これらのＤＳＰアーキテクチャは、特定用途向け集積回路（ＡＳＩＣ）、デジタルシグナル処理装置（ＤＳＰＤ）、プログラマブルロジックデバイス（ＰＬＤ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、プロセッサー、コントローラー、マイクロコントローラー、マイクロプロセッサーおよび他の電子ユニットにおいて実現してもよい。
【００５６】
開示された実施形態の上述の記載は、当業者がこの発明を製作または使用することを可能にするために提供される。これらの実施形態に対する種々の変更は当業者には容易に明白であろう。そして、ここに定義される包括的原理は、この発明の精神または範囲から逸脱することなく他の実施形態に適用してもよい。従って、この発明は、ここに示される実施形態に限定されることを意図したものではなく、ここに開示される原理および新規な特徴に一致する最も広い範囲が許容されるべきである。
【図面の簡単な説明】
【００５７】
【図１】図１は、２つのＭＡＣユニットと１つのＡＬＵを有するＤＳＰを示す。
【図２】図２は２つのＭＡＣユニットと１つのＡＬＵとを有するパイプライン型のＤＳＰを示す。
【図３】図３は２つのＭＡＣユニットと２つのＡＬＵｓを有した設定可能なＤＳＰを示す。
【図４】図４は、２つのＭＡＣユニットと２つのＡＬＵｓを有した設定可能なパイプライン型のＤＳＰを示す。
【図５】図５は２つのＭＡＣユニットと２つのＡＬＵｓを有した他の設定可能なパイプライン型のＤＳＰを示す。
【図６】図６は、デュアルＭＡＣ／シングルＡＬＵ構成において動作する図５のＤＳＰを示す。
【図７】図７は、シングルＭＡＣ／デュアルＡＬＵ構成において動作する図５のＤＳＰを示す。
【図８】図８は、デュアルＭＡＣ／デュアルＡＬＵ構成において動作する図５のＤＳＰを示す。
【図９】図９は無線通信システム中でワイヤレスデバイスを示す。
【図１】
0004369509.tif 000003
【図２】
0004369509.tif 000004
【図３】
0004369509.tif 000005
【図４】
0004369509.tif 000006
【図５】
0004369509.tif 000007
【図６】
0004369509.tif 000008
【図７】
0004369509.tif 000009
【図８】
0004369509.tif 000010
【図９】
0004369509.tif 000011