【手続補正書】
【提出日】平成19年5月10日(2007.5.10)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  計算ユニットであって、
オペランドを格納するレジスタファイルと、
該レジスタファイルに連結され、各々が上位オペランドと下位オペランドとを同時に伝達する第１および第２のオペランドバスと、
命令に応じて指定されたワード幅の第１のオペランドと第２のオペランドとに対し第１の演算を実行する第１の実行ユニットであって、該第１および第２のオペランドの該指定されたワード幅は各々のオペランドバスの幅より小さい該第１の実行ユニットと、
該命令に応じて第３のオペランドと第４のオペランドとに対し第２の演算を実行する第２の実行ユニットと、
前記命令の第１のフィールドに含まれる第１のオペランド選択値に応答し、該第１のオペランドバス上の前記上位オペランドと前記下位オペランドから前記第１のオペランドを選択し、該第１のオペランドを前記第１の実行ユニットに供給する第１のデータセレクタと、
前記命令の第２のフィールドに含まれる第２のオペランド選択値に応答し、前記第２のオペランドバス上の前記上位オペランドと前記下位オペランドから第２のオペランドを選択し、該第２のオペランドと前記第１の実行ユニットに供給する第２のデータセレクタと、
前記命令に応じて前記指定されたワード幅の第３のオペランドと第４のオペランドとに対し第２の演算を実行する第２の実行ユニットであって、該第３および第４のオペランドの該指定されたワード幅は各々のオペランドバスの幅より小さい該第２の実行ユニットと、
前記命令の第３のフィールドに含まれる第３のオペランド選択値に応答し、前記第１のオペランドバス上の前記上位オペランドと前記下位オペランドから第３のオペランドを選択し、該第３のオペランドを前記第２の実行ユニットに供給する第３のデータセレクタと、
前記命令の第４のフィールドに含まれる第４のオペランド選択値に応答し、前記第２のオペランドバス上の前記上位オペランドと前記下位オペランドから第４のオペランドを選択し、該第４のオペランドを前記第２の実行ユニットに供給する第４のデータセレクタと、
を具備し、
前記データセレクタの各々は、単一のオペランドバスからビットのサブセットを選択し、前記第１および第３のデータセレクタは前記第１のオペランドバスから各々のビットのサブセットを選択し、前記第２および第４のデータセレクタは前記第２のオペランドバスから各々のビットのサブセットを選択する、
計算ユニット。
【請求項２】  前記第１および第２の実行ユニットは、各々が算術論理演算ユニット、乗算器および累算器を備える請求項１記載の計算ユニット。
【請求項３】  前記第１の実行ユニットは、更にシフタを備える請求項２記載の計算ユニット。
【請求項４】  前記レジスタファイルは、各々が２つの読出しポートと２つの書込みポートとを有する第１および第２のレジスタバンクを備える請求項１記載の計算ユニット。
【請求項５】  前記レジスタファイルは、４つの読出しポートと４つの書込みポートとを有する単一のレジスタバンクを備える請求項１記載の計算ユニット。
【請求項６】  前記第１および第２の実行ユニットと前記レジスタファイルとの間に連結され、該レジスタファイルに指定された演算の結果を転送する、第１および第２の結果バスを更に具備する請求項１記載の計算ユニット。
【請求項７】  前記上位オペランドおよび下位オペランドの各々は１６ビットオペランドである請求項１記載の計算ユニット。
【請求項８】  デジタル信号プロセッサ計算を実行するように構成された請求項１記載の計算ユニット。
【請求項９】前記第１および第２のオペランドバスの各々が、３２ビットバスであり、前記上位および下位オペランドの各々が１６ビットオペランドである請求項１記載の計算ユニット。
【請求項１０】  プログラムされた命令を実行する計算コアであって、
平行して実行されるべき少なくとも２つの数学的演算を、各々が指定する複数のデジタル信号プロセッサ命令に応じてデジタル信号プロセッサ演算を実行し、各々が、単一のマイクロコントローラ命令を指定する複数のマイクロコントローラ命令に応じてマイクロコントローラ演算を実行する単一の演算ブロックであって、該デジタル信号プロセッサ命令の各々が第１の長さを有し、該マイクロコントローラ命令の各々が該第１の長さより小さい第２の長さを有する、該演算ブロックと、
前記デジタル信号プロセッサ演算および前記マイクロコントローラ演算のオペランドおよび結果を格納するレジスタファイルと、
前記デジタル信号プロセッサ命令と前記マイクロコントローラ命令とを実行する該デジタル信号プロセッサ命令と該マイクロコントローラ命令とに応じて、前記演算ブロックおよび前記レジスタファイルに制御信号を供給する制御ロジックと、
を含み、
前記演算ブロックと、レジスタファイルと、および制御ロジックとが、高いコード密度で特徴付けられ、デジタル信号プロセッサ命令とマイクロコントローラ命令との間の切り替え動作の実行無しに、比較的に小さな数のデジタル信号プロセッサ命令と、および比較的に大きな数のマイクロコントローラ命令とを含む、
計算コア。
【請求項１１】  前記マイクロコントローラ命令は１６ビットフォーマットを有し、前記デジタル信号プロセッサ命令は３２ビットフォーマットを有する請求項１０記載の計算コア。
【請求項１２】  前記デジタル信号プロセッサ命令は、高効率デジタル信号計算用に構成される請求項１１記載の計算コア。
【請求項１３】  前記デジタル信号プロセッサ命令は、１つまたは複数の関連する命令が続くか否かを示す情報を含む請求項１１記載の計算コア。
【請求項１４】  前記１つまたは複数の関連する命令は、ロード命令を含む請求項１３記載の計算コア。
【請求項１５】
前記演算ブロックは二重の実行ユニットを備える請求項１０記載の計算コア。
【請求項１６】  前記演算ブロックは、乗算累算ユニットと算術論理演算ユニットとシフタとを含む第１の実行ユニットと、乗算累算ユニットと算術論理演算ユニットとを含む第２の実行ユニットと、を備える請求項１０記載の計算コア。
【請求項１７】  プログラムされた命令を実行する方法であって、
効率的なデジタル信号計算を考慮して構成されたデジタル信号プロセッサ命令に応じて、単一の演算ブロックにおいてデジタル信号プロセッサ演算を実行するステップであって、該各々のデジタル信号プロセッサ命令が少なくとも２つの平行して実行されるべき数学的演算を指定する該デジタル信号プロセッサ演算を実行するステップと、
コード記憶密度を考慮して構成されたマイクロコントローラ命令に応じて、前記単一の演算ブロックにおいてマイクロコントローラ演算を実行するステップと、
を含み、
前記マイクロコントローラ命令の各々は、単一のマイクロコントローラ演算を指定し、前記デジタル信号プロセッサ命令の各々は、第１の長さを有し、前記マイクロコントローラ命令の各々は、該第１の長さより小さい第２の長さを有し、比較的少ない数のデジタル信号プロセッサ命令と比較的大きな数のマイクロコントローラ命令との混合を有するアプリケーションプログラムは、高コード記憶密度と効率的なデジタル信号計算とで特長付けられ、且つ該デジタル信号プロセッサ命令と該マイクロコントローラ命令との間の切り替え動作を実行しないで実行される、
方法。
【請求項１８】  パイプライン構造を有するデジタル信号プロセッサであって、
計算命令を実行する、少なくとも第１および第２の乗算累積ステージを含む、計算ステージを有する計算ブロックと、
該計算命令をフェッチし解読し、メモリにアクセスし、少なくとも第１および第２のメモリアクセスステージを有する制御ブロックと、
を具備し、
前記第１のメモリアクセスステージがパイルライン構造のステージｎに配置され、前記第２のメモリアクセスステージおよび第１の乗算累積ステージが前記パイルライン構造のステージｎ＋１に配置され、前記第２の乗算累積ステージが前記パイルライン構造のステージｎ＋２に配置され、前記乗算累積ステージおよび前記メモリアクセスステージは、レジスタファイルアクセスではないメモリアクセスの結果が、該乗算累積ステージをストールすることなく該乗算累積ステージに利用可能であるように、前記パイプライン構造に配置されるデジタル信号プロセッサ。
【請求項１９】  前記乗算累積ステージおよび前記メモリアクセスステージは、前記乗算累積命令がメモリアクセス命令の直後に続き、該メモリアクセス命令の結果を必要とする場合に該乗算累積ステージをストールすることを避けるように、前記パイプライン構造に配置される請求項１８記載のデジタル信号プロセッサ。
【請求項２０】  前記乗算累積ステージおよび前記メモリアクセスステージは、前記制御ブロックが、前記メモリアクセスの完了に続く１つまたは複数のアイドルステージを有するように、前記パイプライン構造に配置される請求項１８記載のデジタル信号プロセッサ。
【請求項２１】  前記乗算累積ステージおよび前記メモリアクセスステージは、前記計算ブロックが第１の乗算累積ステージに先立つ１つまたは複数のアイドルステージを有するように、前記パイプライン構造に配置される請求項２０記載のデジタル信号プロセッサ。
【請求項２２】  前記乗算累積ステージおよび前記メモリアクセスステージは、前記第２のメモリアクセスステージからの前記第１のメモリの結果が、該第１の命令の直後に続く第２の命令の前記第１の乗算累積ステージに対して利用可能であるように、前記パイプライン構造に配置される請求項１８記載のデジタル信号プロセッサ。
【請求項２３】  デジタル信号計算の方法であって、
少なくとも第１および第２の乗算累積ステージを含む計算ブロックにおいて計算演算を実行するステップと、
少なくとも第１および第２のメモリアクセスステージを含む制御ブロックにおいて、命令のフェッチと命令の解読とメモリのアクセスとを含む制御動作を実行し、前記乗算累積ステージと該メモリアクセスステージとがパイプライン構造で構成されるものであるステップと、
前記第１のメモリアクセスステージを前記パイルライン構造のステージｎに配置し、前記第２のメモリアクセスステージおよび前記第１の乗算累積ステージを前記パイルライン構造のステージｎ＋１に配置し、前記第２の乗算累積ステージを前記パイルライン構造のステージｎ＋２に配置し、前記メモリアクセスステージに関連した前記乗算累積ステージが、レジスタファイルアクセスではないメモリアクセスの結果が、該乗算累積ステージをストールすることなく該乗算累積ステージに利用可能であるように、前記パイプライン構造に配置される、
方法。
【請求項２４】  前記メモリアクセスステージに関連する前記乗算累積ステージを配置するステップが、前記乗算累積命令がメモリアクセス命令の直後に続き、該メモリアクセス命令の結果を必要とする場合に該乗算累積ステージをストールすることを避けるように、前記パイプライン構造に配置される請求項２３記載の方法。
【請求項２５】  前記メモリアクセスステージに関連する前記乗算累積ステージを配置するステップが、前記制御ブロックが、前記メモリアクセスの完了に続く１つまたは複数のアイドルステージを有するように、前記パイプライン構造に配置される請求項２３記載の方法。
【請求項２６】  前記メモリアクセスステージに関連する前記乗算累積ステージを配置するステップが、前記計算ブロックが第１の乗算累積ステージに先立つ１つまたは複数のアイドルステージを有するように、前記パイプライン構造に配置される請求項２５記載の方法。
【請求項２７】  前記メモリアクセスステージに関連する前記乗算累積ステージを配置するステップが、前記第２のメモリアクセスステージからの前記第１のメモリの結果が、該第１の命令の直後に続く第２の命令の前記第１の乗算累積ステージに対して利用可能であるように、前記パイプライン構造に配置される請求項２３記載の方法。
【請求項２８】  Ｍ入力サンプルのセットに応じてＬフィルタ係数を有する有限インパルス応答デジタルフィルタの出力を決定する方法であって、
（ａ）第１のレジスタの第１のロケーションに第１の入力サンプルをロードするステップと、
（ｂ）該第１のレジスタの第２のロケーションに第２の入力サンプルをロードし、変更されない前記第１のレジスタに前記第１のロケーションの値を残すステップと、
（ｃ）第２のレジスタに２つの係数をロードするステップと、
（ｄ）該第１および第２のレジスタの内容を使用して２つまたはそれ以上の中間結果を計算するステップと、
（ｅ）該第１のレジスタの前記第１のロケーションに新たな入力サンプルをロードし、変更されない前記第１のレジスタに前記第２のロケーションの値を残すステップと、
（ｆ）該第１および第２のレジスタの内容を使用して２つまたはそれ以上の中間結果を計算するステップと、
（ｇ）Ｌ反復に対しステップ（ｂ）〜（ｆ）を繰返すことにより２つまたはそれ以上の出力サンプルを提供するステップと、
（ｈ）Ｍ／２反復に対しステップ（ａ）〜（ｇ）を繰返すことによりＭ出力サンプルを提供するステップと、
各々のステップ（ａ）、（ｂ）および（ｅ）は、整列されたメモリアクセスを含む、
方法。
【請求項２９】  前記入力サンプルと前記係数とは各々１６ビットである請求項２８記載の方法。
【請求項３０】  ステップ（ｄ）および（ｆ）は各々乗算累算演算を含む請求項２８記載の方法。
【請求項３１】  ステップ（ｄ）および（ｆ）は、各々の計算命令に応じて前記第１および第２のレジスタからオペランドを選択することと、該選択されたオペランドに対し乗算累算演算を実行することと、を含む請求項２８記載の方法。
【請求項３２】  ステップ（ｄ）は、前記第２のレジスタの第１の係数と前記第１のレジスタの前記第１のロケーションの前記入力サンプルとに対する乗算累算演算と、該第２のレジスタの前記第１の係数と該第１のレジスタの前記第２のロケーションの前記入力サンプルとに対する乗算累算演算と、を含む請求項２８記載の方法。
【請求項３３】  ステップ（ｆ）は、前記第２のレジスタの第２の係数と前記第１のレジスタの前記第１のロケーションの前記新しい入力サンプルとに対する乗算累算演算と、該第２のレジスタの前記第２の係数と該第１のレジスタの前記第２のロケーションの前記入力サンプルとに対する乗算累算演算と、を含む請求項３２記載の方法。
【請求項３４】  デジタル信号プロセッサ計算ユニットであって、
各々が、命令に応じて演算を実行し、第１および第２の結果をもたらす第１および第２の実行ユニットと、
第１および第２のロケーションを有する、前記演算の結果を格納する結果レジスタと、
前記第１および第２の実行ユニットと前記結果レジスタとの間に連結され、前記命令に含まれる結果スワッピング情報に応じて、該結果レジスタにおける前記第１のロケーションと前記第２のロケーションとの間で前記第１および第２の結果をスワッピングする、結果スワッピングロジックと、
を具備するデジタル信号プロセッサ計算ユニット。
【請求項３５】  前記第１および第２の実行ユニットは、加算および減算演算を実行する第１および第２の算術論理演算ユニットを備える請求項３４記載のデジタル信号プロセッサ計算ユニット。
【請求項３６】  前記第１および第２の実行ユニットは、別々に制御可能であり、前記命令に含まれる演算コード情報に応じて異なる演算を実行する請求項３４記載のデジタル信号プロセッサ計算ユニット。
【請求項３７】  前記結果スワッピングロジックは、前記命令に含まれる結果スワッピング情報に応じて、前記結果レジスタの前記第１のロケーションに前記第１および第２の結果のうちの一方を配置する第１のデータセレクタと、前記命令に含まれる前記結果スワッピング情報に応じて、前記第２のロケーションに前記第１および第２の結果のうちの他方を配置する第２のデータセレクタと、を備える請求項３４記載のデジタル信号プロセッサ計算ユニット。
【請求項３８】  デジタル信号計算を実行する方法であって、
命令に応じて第１および第２の実行ユニットで演算をそれぞれ実行し、第１および第２の結果をそれぞれもたらすステップと、
該演算の結果を第１および第２のロケーションを有する結果レジスタに格納するステップと、
前記命令に含まれる結果スワッピング制御情報に応じて、該結果レジスタの該第１および第２のロケーションに対し前記第１および第２の結果をスワッピングするステップと、
を含む方法。
【請求項３９】  前記第１および第２の実行ユニットの演算の実行が、前記命令に含まれた演算コード情報に応じて異る演算を実行するステップを含む請求項３８記載の方法。
【請求項４０】  前記第１および第２の実行ユニットの演算の実行が、前記命令に含まれた演算コード情報に応じて同じ演算を実行するステップを含む請求項３８記載の方法。
【請求項４１】  前記第１および第２の結果をスワッピングするステップは、前記命令に含まれる結果スワッピング制御情報に応じて、前記結果レジスタの前記第１のロケーションに前記第１および第２の結果のうちの一方を配置し、前記命令に含まれる前記結果スワッピング制御情報に応じて、前記第２のロケーションに前記第１および第２の結果のうちの他方を配置するステップを備える請求項３８記載の方法。