(57)【要約】  例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムが、説明される。第１のレジスタ部、および第２のレジスタ部が、処理部内のレジスタファイル構造から取り出され、第１のレジスタ部と、第２のレジスタ部とは、レジスタファイル構造内で隣接せずに配置されている。第１のレジスタ部と、第２のレジスタ部とは、単一の命令の実行中にさらに組み合わされて、結果としてのレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。代替として、第１のレジスタ部から、第１のハーフワード部が取り出され、第２のレジスタ部から、第２のハーフワード部が取り出される。第１のハーフワード部、および第２のハーフワード部は、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
2009545823.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ可読媒体であって、
処理システムにおいて実行されると、前記処理システムに、結果としてレジスタ部を形成するように、レジスタファイル構造から第１のレジスタ部および第２のレジスタ部を選択的に組み合わせるようにし、前記第１のレジスタ部と前記第２のレジスタ部は、前記レジスタファイル構造内で隣接せずに配置されている、前記媒体に含まれる複数の実行可能命令に関する命令を含む、コンピュータ可読媒体。
【請求項２】
前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータは前記結果としてのレジスタ部の対応する部分の中に格納される、請求項１に記載のコンピュータ可読媒体。
【請求項３】
前記第１のレジスタ部および前記第２のレジスタ部は３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は６４ビット幅レジスタ部である、請求項２に記載のコンピュータ可読媒体。
【請求項４】
前記第１のレジスタ部の第１のハーフワード部および前記第２のレジスタ部の第２のハーフワード部は前記結果としてのレジスタ部の対応する部分の中に格納される、請求項１に記載のコンピュータ可読媒体。
【請求項５】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である、請求項４に記載のコンピュータ可読媒体。
【請求項６】
方法であって、
実行可能命令を受信し、および
結果としてレジスタ部を形成するためレジスタファイル構造から第１のレジスタ部と第２のレジスタ部とを選択的に組み合わせるために前記命令を実行することを含み、前記第１のレジスタ部と前記第２のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されている方法。
【請求項７】
前記実行することは、前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項６に記載の方法。
【請求項８】
前記第１のレジスタ部および前記第２のレジスタ部は３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は６４ビット幅レジスタ部である、請求項７に記載の方法。
【請求項９】
前記実行することは、前記第１のレジスタ部の第１のハーフワード部、および前記第２のレジスタ部の第２のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項６に記載の方法。
【請求項１０】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である請求項９に記載の方法。
【請求項１１】
前記実行することは、
前記第１のレジスタ部および前記第２のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを、前記第１のレジスタ部内および前記第２のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、請求項６に記載の方法。
【請求項１２】
方法であって、
処理部内のレジスタファイル構造から第１のレジスタ部および第２のレジスタ部を取り出し、前記第１のレジスタ部および前記第２のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されており、
結果としてのレジスタ部を形成するために、単一の命令の実行中に前記第１のレジスタ部と前記第２のレジスタ部とを選択的に組み合わせ、および
さらなる処理のために、前記結果としてのレジスタ部を前記レジスタファイル構造内に格納することを含む方法。
【請求項１３】
前記組み合わせることは、
前記第１のレジスタ部と前記第２のレジスタ部とを組み合わせる前記命令を受信すること、および
前記処理部内で前記命令を実行することをさらに含む、請求項１２に記載の方法。
【請求項１４】
前記組み合わせることは、前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項１２に記載の方法。
【請求項１５】
前記第１のレジスタ部および前記第２のレジスタ部は、３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は６４ビット幅レジスタ部である、請求項１４に記載の方法。
【請求項１６】
前記組み合わせることは、前記第１のレジスタ部の第１のハーフワード部および前記第２のレジスタ部の第２のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項１２に記載の方法。
【請求項１７】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である、請求項１６に記載の方法。
【請求項１８】
前記第１のレジスタ部および前記第２のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを前記第１のレジスタ部内および前記第２のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせることをさらに含む、請求項１２に記載の方法。
【請求項１９】
実行可能命令を含むコンピュータ可読媒体であって、
処理システムにおいて実行されると、前記処理システムに、
処理部内のレジスタファイル構造から第１のレジスタ部および第２のレジスタ部を取り出し、前記第１のレジスタ部および前記第２のレジスタ部は前記レジスタファイル構造内で隣接せずに配置されおり、
単一の命令の実行中に結果としてのレジスタ部を形成するため、前記第１のレジスタ部と前記第２のレジスタ部とを選択的に組み合わせ、および
前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納する
ことを含む方法を実行させるようにするコンピュータ可読媒体。
【請求項２０】
前記組み合わせることは、
前記第１のレジスタ部と前記第２のレジスタ部とを組み合わせる前記命令を受信すること、および
前記処理部内で前記命令を実行することをさらに含む、
請求項１９に記載のコンピュータ可読媒体。
【請求項２１】
前記組み合わせることは、
前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２２】
前記第１のレジスタ部および前記第２のレジスタ部は３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は６４ビット幅レジスタ部である、請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記組み合わせることは、前記第１のレジスタ部の第１のハーフワード部および前記第２のレジスタ部の第２のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納することをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２４】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である、請求項２３に記載のコンピュータ可読媒体。
【請求項２５】
前記方法は、
前記第１のレジスタ部および前記第２のレジスタ部に関連するデータをメモリから取り出すこと、
前記データを前記第１のレジスタ部内および前記第２のレジスタ部内にそれぞれ格納すること、および
前記結果としてのレジスタ部に前記データを選択的に組み合わせる、
ことをさらに含む、請求項１９に記載のコンピュータ可読媒体。
【請求項２６】
集積回路であって、
１つまたは複数の命令を含むパケットを格納するメモリと、および
前記メモリに結合されたプロセッサとを含み、前記プロセッサは処理部および前記処理部に結合されたレジスタファイル構造とをさらに含み、
前記処理部は、第１のレジスタ部と第２のレジスタ部とを前記レジスタファイル構造から取り出し、第１のレジスタ部と第２のレジスタ部は、前記第１のレジスタ部と前記第２のレジスタ部とを選択的に組み合わせ、単一の命令の実行中に結果としてのレジスタ部を形成し、そして前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するため、前記レジスタファイル構造内で隣接せずに配置されている、
集積回路。
【請求項２７】
前記処理部は前記第１のレジスタ部と前記第２のレジスタ部とを組み合わせる前記命令を前記メモリからさらに受信しそして前記命令を実行する、請求項２６に記載の回路。
【請求項２８】
前記処理部は、前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、請求項２６に記載の回路。
【請求項２９】
前記第１のレジスタ部および前記第２のレジスタ部は３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は６４ビット幅レジスタ部である、請求項２８に記載の回路。
【請求項３０】
前記処理部は、前記第１のレジスタ部の第１のハーフワード部および前記第２のレジスタ部の第２のハーフワード部を前記結果としてのレジスタ部内の同一の幅の対応する部分の中にさらに格納する、請求項２６に記載の回路。
【請求項３１】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である、請求項３０に記載の回路。
【請求項３２】
前記メモリは前記第１のレジスタ部および前記第２のレジスタ部に関連するデータをさらに格納し、前記レジスタファイル構造は前記データをさらに取り出し前記データを前記第１のレジスタ部内および前記第２のレジスタ部内にそれぞれ格納し、前記処理部は前記データを前記結果としてのレジスタ部内に選択的にさらに組み合わせる、請求項２６に記載の回路。
【請求項３３】
装置であって、
処理部内のレジスタファイル構造から、前記レジスタファイル構造内で隣接せずに配置されている第１のレジスタ部と第２のレジスタ部とを取り出するための手段と、
単一の命令の実行中に、結果としてレジスタ部を形成するために、前記第１のレジスタ部と前記第２のレジスタ部とを選択的に組み合わせる手段と、および
前記結果としてのレジスタ部をさらなる処理のために前記レジスタファイル構造内に格納するための手段と
を含む装置。
【請求項３４】
前記第１のレジスタ部と前記第２のレジスタ部とを組み合わせる前記命令を受信するための手段と、
前記処理部内で前記命令を実行するための手段と
をさらに含む、請求項３３に記載の装置。
【請求項３５】
前記第１のレジスタ部内に存在するデータおよび前記第２のレジスタ部内に存在するデータを前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、請求項３３に記載の装置。
【請求項３６】
前記第１のレジスタ部および前記第２のレジスタ部は３２ビット幅レジスタ部であり、前記結果としてのレジスタ部は、４ビット幅レジスタ部である、請求項３５に記載の装置。
【請求項３７】
前記第１のレジスタ部の第１のハーフワード部、および前記第２のレジスタ部の第２のハーフワード部を、前記結果としてのレジスタ部内の同一の幅の対応する部分の中に格納するための手段をさらに含む、請求項３３に記載の装置。
【請求項３８】
前記第１のハーフワード部および前記第２のハーフワード部は１６ビット幅部であり、前記結果としてのレジスタ部は３２ビット幅レジスタ部である、請求項３７に記載の装置。
【請求項３９】
前記第１のレジスタ部および前記第２のレジスタ部に関連するデータをメモリから取り出するための手段と、
前記データを、前記第１のレジスタ部内、および前記第２のレジスタ部内にそれぞれ格納するための手段と、
前記結果としてのレジスタ部内に前記データを選択的に組み合わせるための手段とをさらに含む、請求項３３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
［発明の分野］
本発明は、一般に、マイクロプロセッサに関し、より具体的には、例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムに関する。
【背景技術】
【０００２】
［背景］
通常、コンピュータシステムは、コンピュータシステムのメモリ内に格納された値に対して操作を実行し、コンピュータシステムの全体的な動作を管理するように構成された１つまたは複数のマイクロプロセッサ部を含む。また、これらのコンピュータシステムは、例えば、サウンドカードおよび／またはビデオカードなどの、様々なマルチメディア部を含み、各マルチメディア部は、それぞれのマルチメディア部内で複雑な数学計算を実行する、例えば、ＤＳＰ（ディジタル信号プロセッサ）などの１つまたは複数のプロセッサをさらに含む。
【０００３】
ＤＳＰ（ディジタル信号プロセッサ）は、例えば、１つまたは複数のＡＬＵ（算術論理演算部）、１つまたは複数のＭＡＣ（multiply-and-accumulate  unit）、ならびにＤＳＰ内の命令セットによって指定された動作を実行するように構成された他の機能部などの、そのような数学計算を実行するように特に構成されたハードウェア実行部を通常、含む。そのような動作には、例えば、関連する命令セットによってそれぞれが定義された、算術演算、論理演算、およびその他のデータ処理演算が含まれることが可能である。
【０００４】
一般に、ＤＳＰ内の実行部は、メモリおよび実行部に結合されたレジスタファイルからデータおよびオペランドを読み取り、命令動作を実行し、結果をレジスタファイルの中に格納する。レジスタファイルは、単一のレジスタとして、または隣接する２つのレジスタ部の整列されたペアとしてそれぞれがアクセス可能である、複数のレジスタ部を含む。しかし、例えば、データを足す動作または引く動作などの、いくつかの特定の動作は、レジスタファイル内の別々のレジスタ部からのデータが、命令の実行のために適切に整列されることを要求する。このため、必要とされているのは、そのようなレジスタ部内に格納されたデータの適切な整列を可能にするために、単一の命令の実行中に、ＤＳＰ内の隣接していない複数のレジスタ部を組み合わせる方法およびシステムである。
【発明の概要】
【０００５】
［概要］
例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムが、説明される。一実施形態では、第１のレジスタ部、および第２のレジスタ部が、処理部内のレジスタファイル構造から取り出され、第１のレジスタ部と、第２のレジスタ部とは、レジスタファイル構造内で隣接せずに配置されている。第１のレジスタ部と、第２のレジスタ部とは、単一の命令の実行中にさらに組み合わされて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
【０００６】
代替の実施形態において、第１のレジスタ部、および第２のレジスタ部の取り出しに続いて、第１のレジスタ部から、第１のハーフワード（half  word）部が取り出され、第２のレジスタ部から、第２のハーフワード部（half word unit）が、取り出される。第１のハーフワード部、および第２のハーフワード部は、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてのレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
【図面の簡単な説明】
【０００７】
【図１】命令セットが内部で実行されることが可能なディジタル信号処理システムを示すブロック図。
【図２】ディジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図。
【図３】ＶＬＩＷ（超長命令語）ディジタル信号処理システムアーキテクチャの一実施形態を示すブロック図。
【図４】ディジタル信号処理システム内のレジスタ部を組み合わせる方法の一実施形態を示す流れ図。
【図５】図４に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図。
【図６】ディジタル信号処理システム内のレジスタ部を組み合わせる方法の代替の実施形態を示す流れ図。
【図７】図６に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図。
【発明を実施するための形態】
【０００８】
［詳細な説明］
例えば、ディジタル信号プロセッサなどのマイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステムが、説明される。以下に説明されるシステムは、ＤＳＰ（ディジタル信号プロセッサ）が、レジスタ部を組み合わせることを可能にするものの、本システムは、マイクロプロセッサ部、あるいは単一の命令の実行中に、複数のレジスタ部を組み合わせて、結果としてより大きいレジスタ部（resulting larger resister）にすることができる他の任意の処理部を使用して、実施されてもよいことを理解されたい。
【０００９】
一般に、ＤＳＰ内の実行部は、レジスタファイルからデータおよびオペランドを読み取り、命令動作を実行し、結果をレジスタファイルの中に格納する。レジスタファイルは、単一のレジスタとして、または隣接する２つのレジスタ部の整列されたペアとしてそれぞれがアクセス可能である、複数のレジスタ部を含む。しかし、例えば、データを足す動作または引く動作などの、いくつかの特定の動作は、レジスタファイル内の別々のレジスタ部からのデータが、命令の実行のために適切に整列されることを要求する。後段で詳細に説明される実施形態は、その後のベクトル演算に備えて、そのようなレジスタ部内に格納されたデータの適切な整列を可能にするために、単一の命令の実行中にＤＳＰ内の隣接していない複数のレジスタ部の組み合わせ／連結を円滑にする。
【００１０】
一実施形態では、第１のレジスタ部、および第２のレジスタ部が、処理部内のレジスタファイル構造から取り出され、第１のレジスタ部と、第２のレジスタ部とは、レジスタファイル構造内で隣接せずに配置されている。第１のレジスタ部と、第２のレジスタ部とは、単一の命令の実行中にさらに組み合わされて、結果としてより大きいレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
【００１１】
代替の実施形態において、第１のレジスタ部、および第２のレジスタ部の取り出しに続いて、第１のレジスタ部からの第１のハーフワード部、および第２のレジスタ部からの第２のハーフワード部が、取り出される。第１のハーフワード部、および第２のハーフワード部は、単一の命令の実行中に、結果としてのレジスタ部の、対応する高い部分および低い部分にさらに入力されて、結果としてレジスタ部を形成する。最後に、結果としてのレジスタ部が、さらなる処理のためにレジスタファイル構造内に格納される。
【００１２】
図１は、命令セットが内部で実行されることが可能なディジタル信号処理システムのブロック図である。図１に示されるとおり、ディジタル信号処理システム１００は、処理部１１０と、メモリ１５０と、処理部１１０をメモリ１５０に結合する１つまたは複数のバス１６０とを含む。
【００１３】
メモリ１５０は、例えば、ＶＬＩＷ（超長命令語）コンパイラによって生成されるＶＬＩＷパケットの形態などで、データおよび命令を格納し、各ＶＬＩＷパケットは、１つまたは複数の命令を備える。パケットの各命令は、通常、所定の幅であり、メモリ１５０内に或る特定のアドレスを有し、したがって、パケットの中の第１の命令は、通常、このパケットの最後の命令と比べて、より低いメモリアドレスを有する。メモリに関するアドレス指定スキームは、当技術分野でよく知られており、本明細書で詳細に説明することはしない。メモリ１５０の中の命令は、バス１６０を介して処理部１１０に読み込まれる。
【００１４】
処理部１１０は、１つまたは複数のパイプライン１４０を介して１つまたは複数のレジスタファイル構造１２０に結合された中央処理装置コア１３０をさらに備える。処理部１１０は、１つまたは複数のマイクロプロセッサ、ディジタル信号プロセッサなどをさらに備える。
【００１５】
レジスタファイル１２０は、汎用の演算をサポートし、図２に関連して、後段でさらに詳細に説明される汎用レジスタ部のセットと、例えば、ハードウェアループ、述語、およびその他の特殊なオペランドなどの専用機能をサポートする制御レジスタ部のセットとをさらに備える。
【００１６】
図２は、ディジタル信号処理システム内の汎用レジスタ構造の一実施形態を示すブロック図である。図２に示されるとおり、一実施形態では、レジスタファイル１２０内の汎用レジスタファイル構造２００は、例えば、３２個の３２ビット幅のレジスタ部２１０などの、複数のレジスタ部を含み、各レジスタ部は、単一のレジスタとして、または隣接する２つのレジスタ部２１０の整列されたペア２２０としてそれぞれがアクセス可能である。
【００１７】
汎用レジスタ部２１０は、適切な命令に基づいて、複数の名前で参照されることが可能である。例えば、レジスタ部２１０は、Ｒ０、Ｒ１、．．．、Ｒ３０、およびＲ３１として個々に参照されることが可能である。さらに、レジスタ部Ｒ０と、レジスタ部Ｒ１とが、Ｒ１：０として参照される６４ビットのレジスタペア２２０を形成することが可能である。同様に、レジスタ部Ｒ２と、レジスタ部Ｒ３とが、Ｒ３：２として参照される６４ビットのレジスタペア２２０を形成することが可能であり、レジスタ部Ｒ２８と、レジスタ部Ｒ２９とが、Ｒ２９：２８として参照される６４ビットのレジスタペア２２０を形成することが可能であり、さらに、レジスタ部Ｒ３０と、レジスタ部Ｒ３１とが、Ｒ３１：３０として参照される６４ビットのレジスタペア２２０を形成することが可能である。
【００１８】
一実施形態では、汎用レジスタ部２１０が、例えば、アドレス生成、スカラー算術、およびベクトル算術などの、汎用計算目的で使用され、読み込み／格納命令のためのアドレス、数値命令のためのデータオペランド、およびベクトル命令のためのベクトルオペランドを含め、命令のためのすべてのオペランドを提供する。
【００１９】
図３は、ＶＬＩＷ（超長命令語）ディジタル信号処理システムアーキテクチャの一実施形態を示すブロック図である。ＶＬＩＷシステムアーキテクチャ３００は、命令読み込みバス３２０、データ読み込みバス３２２、およびデータ読み込み／格納バス３２４を介してＤＳＰ（ディジタル信号プロセッサ）３３０に結合されたメモリ３１０を含む。
【００２０】
一実施形態では、メモリ３１０は、例えば、１つないし４つの命令を有するＶＬＩＷパケットの形態で、データおよび命令を格納する。メモリ３１０内に格納された命令は、命令読み込みバス３２０を介してＤＳＰ３３０に読み込まれる。一実施形態では、各命令は、４ワード幅を有する１２８ビット命令読み込みバス３２０を介してＤＳＰ３３０に読み込まれる、３２ビットワード幅を有する。一実施形態では、メモリ３１０は、命令とデータの両方を格納する３２ビットアドレス空間を有し、リトルエンディアンモードで動作する、統合されたバイトアドレス指定可能なメモリである。
【００２１】
一実施形態では、ＤＳＰ３３０は、シーケンサ３３５と、４つの処理部または実行部３４５のための４つのパイプライン３４０と、例えば、図２に関連して詳細に説明される汎用レジスタファイル構造２００などの汎用レジスタファイル構造３５０（複数の汎用レジスタ部を備える）と、制御レジスタファイル構造３６０とを備える。シーケンサ３３５は、メモリ３１０から命令のパケットを受信し、この命令内に含まれる情報を使用して、受信された各パケットの各命令に関して、適切なパイプライン３４０、およびそれぞれの実行部３４５を決定する。パケットの各命令に関して、この決定を行った後、シーケンサ３３５は、これらの命令を、適切な実行部３４５による処理のために、適切なパイプライン３４０に入力する。
【００２２】
一実施形態では、実行部３４５は、ベクトルシフト部、ベクトルＭＡＣ部、読み込み部、および読み込み／格納部をさらに備える。ベクトルシフト部３４５は、例えば、シフトおよび追加／サブ動作、シフトおよび論理動作、並べ替え動作、述語動作、ビット操作、およびベクトルハーフワード／ワードシフトなどのＳ型（シフト部）命令、６４ビット算術および論理動作などの６４型（６４ビット算術）命令、３２ビット論理動作、並べ替え動作、３２ビット算術動作などの３２型（３２ビット算術）命令、ジャンプ／呼び出しＰＣ関係動作などのＪ型（ジャンプ）命令、制御レジスタ転送などのＣＲ型（制御レジスタ）命令、ハードウェアループセットアップを実行する。ベクトルＭＡＣ部３４５は、例えば、単精度命令、倍精度命令、複素命令、およびベクトルバイト／ハーフワード命令などのＭ型（乗算部）命令、６４型命令、３２型命令、Ｊ型命令、ならびにジャンプ／呼び出しレジスタ動作などのＪＲ型（ジャンプレジスタ）命令を実行する。読み込み部３４５は、メモリ３１０から汎用レジスタファイル構造３５０にデータを読み込み、例えば、読み込み型命令および３２型命令を実行する。読み込み／格納部３４５は、汎用レジスタファイル構造３５０からメモリ３１０にデータを再び読み込み、格納し、例えば、読み込み型命令、格納型命令、および３２型命令を実行する。
【００２３】
命令を受け取った各実行部３４５は、４つの実行部３４５によって共有される汎用レジスタファイル構造３５０を使用して命令を実行する。命令によって必要とされるデータは、６４ビットデータ読み込みバス３２２を介して汎用レジスタファイル構造３５０に読み込まれる。パケットの命令が、実行部３４５によって実行された後、結果としてのデータが、汎用レジスタファイル構造３５０に格納され、その後、６４ビットデータ読み込み／格納バス３２４を介してメモリ３１０に読み込まれ、格納される。通常、パケットの１つないし４つの命令が、１クロックサイクル中に４つの実行部３４５によって並行に実行されて、１つの命令の最大値が、各クロックサイクルに関するパイプライン３４０によって受け取られて、処理される。
【００２４】
一実施形態では、実行部３４５が、制御レジスタファイル構造３６０を使用して、対応する命令を実行することも可能である。制御レジスタファイル構造３６０は、例えば、修飾レジスタ部、ステータスレジスタ部、および述語レジスタ部などの専用レジスタ部のセットを備える。
【００２５】
図４は、ディジタル信号処理システム１００内のレジスタ部を組み合わせる方法の一実施形態を示す流れ図である。図４の実施形態に示されるとおり、処理ブロック４１０で、ディジタル信号処理システム３００内のレジスタ部を組み合わせる／連結する命令が、受信される。一実施形態では、ＤＳＰ３３０内の実行部３４５が、後段で説明されるとおり、この命令を受信し、この命令を実行して、汎用レジスタファイル構造３５０の中に格納された所定のレジスタ部を組み合わせる。一実施形態では、これらの所定のレジスタ部は、汎用レジスタファイル構造内で隣接せずに配置される。
【００２６】
処理ブロック４２０で、例えば、第１の３２ビット幅レジスタ部および第２の３２ビット幅レジスタ部などの、所定のレジスタ部が、識別される。一実施形態では、実行部３４５が、汎用レジスタファイル構造３５０と通信し、組み合わされることが要求されるレジスタ部を識別する。一実施形態では、次に、メモリ３１０が、命令によって必要とされるデータを、６４ビットデータ読み込みバス３２２を介して汎用レジスタファイル構造３５０に読み込む。代替として、データは、識別された第１のレジスタ部および第２のレジスタ部の中に既に格納されていてもよい。
【００２７】
処理ブロック４３０で、識別されたレジスタ部、および関連するデータが、取り出される。一実施形態では、実行部３４５が、汎用レジスタファイル構造３５０から、識別されたレジスタ部、および関連するデータを取り出す。
【００２８】
処理ブロック４４０で、取り出されたレジスタ部が、結果として、より大きいレジスタペアの範囲内で組み合わされる／連結される。一実施形態では、実行部３４５が、第１の３２ビット幅レジスタ部および第２の３２ビット幅レジスタ部などの、取り出されたレジスタ部、および関連するデータを組み合わせて、結果としての６４ビット幅レジスタペア部にして、第１のレジスタ部、および関連するデータが、結果としてのレジスタ部の高い部分に入力され、第２のレジスタ部、および関連するデータが、結果としてのレジスタ部の低い部分に入力されるようにする。
【００２９】
最後に、処理ブロック４５０で、結果としてのレジスタペアが、さらなる処理のために格納される。一実施形態では、実行部３４５が、結果としてのレジスタ部を汎用レジスタファイル構造３５０に出力し、結果としてのレジスタ部を、さらなる命令のさらなる処理のために格納する。
【００３０】
図５は、図４に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図である。図５に示されるとおり、ソースレジスタ部ＲＳ５１０およびＲＴ５２０が、識別され、汎用レジスタファイル構造３５０からさらに取り出される。
【００３１】
一実施形態では、ソースレジスタ部ＲＳ５１０とソースレジスタ部ＲＴ５２０とを組み合わせて／連結して、結果として、より大きい宛先レジスタ部ＲＤ５３０にする命令は、以下のとおりである。すなわち、
ＲＤ＝ｃｏｍｂｉｎｅ（ＲＳ，ＲＴ）
命令の実行時に、レジスタ部ＲＳ５１０とレジスタ部ＲＴ５２０とが組み合わされ／連結されて、結果として、より大きい宛先レジスタ部ＲＤ５３０となり、レジスタ部ＲＳ５１０の中に存在するデータが、レジスタ部ＲＤ５３０の高い部分に入力されるようになり、レジスタ部ＲＴ５２０の中に存在するデータが、レジスタ部ＲＤ５３０の低い部分に入力されるようになる。例えば、ＲＳ５１０とＲＴ５２０がともに、３２ビット幅レジスタ部である場合、結果としての宛先レジスタ部ＲＤ５３０は、６４ビット幅レジスタである。
【００３２】
図６は、ディジタル信号処理システム３００内のレジスタ部を組み合わせる方法の代替の実施形態を示す流れ図である。図６の実施形態に示されるとおり、処理ブロック６１０で、ディジタル信号処理システム３００内のレジスタ部を組み合わせる／連結する命令が、受信される。一実施形態では、ＤＳＰ３３０内の実行部３４５が、この命令を受信し、この命令を実行して、汎用レジスタファイル構造３５０の中に格納された所定のレジスタ部を組み合わせる。一実施形態では、これらの所定のレジスタ部は、汎用レジスタファイル構造内で隣接せずに配置される。
【００３３】
処理ブロック６２０で、例えば、第１の３２ビット幅レジスタ部、および第２の３２ビット幅レジスタ部などの所定のレジスタ部が、識別される。一実施形態では、実行部３４５が、汎用レジスタファイル構造３５０と通信し、組み合わされることが要求されるレジスタ部を識別する。一実施形態では、次に、メモリ３１０が、命令によって必要とされるデータを、６４ビットデータ読み込みバス３２２を介して汎用レジスタファイル構造３５０に読み込む。代替として、データは、識別された第１のレジスタ部および第２のレジスタ部の中に既に格納されていてもよい。
【００３４】
処理ブロック６３０で、識別されたレジスタ部、および関連するデータが、取り出される。一実施形態では、実行部３４５が、汎用レジスタファイル構造３５０から、識別されたレジスタ部、および関連するデータを取り出す。
【００３５】
処理ブロック６４０で、第１のハーフワード部が、第１のレジスタ部から取り出され、結果としてのレジスタ部に入力される。一実施形態では、実行部３４５は、第１のレジスタ部から、一実施形態では、第１のレジスタ部の高いハーフワード部であることが可能であり、あるいは、代替として、第１のレジスタ部の低いハーフワード部であることが可能である、第１の１６ビット幅ハーフワード部をさらに取り出し、第１のハーフワード部を、結果としての宛先レジスタ部の高い部分に入力する。
【００３６】
処理ブロック６５０で、第２のハーフワード部が、第２のレジスタ部から取り出され、結果としてのレジスタ部に入力される。一実施形態では、実行部３４５は、第２のレジスタ部から、一実施形態では、第２のレジスタ部の高いハーフワード部であることが可能であり、あるいは、代替として、第２のレジスタ部の低いハーフワード部であることが可能である、第２の１６ビット幅ハーフワード部をさらに取り出し、第２のハーフワード部を、結果としてのレジスタ部の低い部分に入力して、３２ビット幅の、結果としてのレジスタ部を獲得する。
【００３７】
最後に、処理ブロック６６０で、結果としてのレジスタ部が、さらなる処理のために格納される。一実施形態では、実行部３４５が、結果としてのレジスタ部を汎用レジスタファイル構造３５０に出力し、結果としてのレジスタ部を、さらなる命令のさらなる処理のために格納する。
【００３８】
図７は、図６に関連して説明されるレジスタ部を組み合わせる方法を示すブロック図である。図７に示されるとおり、ソースレジスタ部ＲＳ５４０およびＲＴ５５０が、識別され、汎用レジスタファイル構造２００から取り出される。
【００３９】
一実施形態では、ソースレジスタ部ＲＳ５４０とソースレジスタ部ＲＴ５５０とを組み合わせて／連結して、結果としての宛先レジスタ部ＲＤ５６０にする命令は、以下のとおりである。すなわち、
ＲＤ＝ｃｏｍｂｉｎｅ（ＲＴ［ＨＬ］，ＲＳ［ＨＬ］）
ただし、ＲＴ［ＨＬ］は、高いハーフワードＨと、低いハーフワードＬとを有するソースレジスタ部ＲＴであり、ＲＳは、高いハーフワードＨと、低いハーフワードＬとを有するソースレジスタ部ＲＳである。
【００４０】
図７に示されるとおり、命令が実行されると、ソースレジスタ部ＲＴ５５０の高いハーフワードＲＴ１、または、代替として、ソースレジスタ部ＲＴ５５０の低いハーフワードＲＴ２が、多重化装置５５５を介してレジスタ部ＲＤ５６０の高い部分に入力され、さらに、ソースレジスタ部ＲＳ５４０の高いハーフワードＲＳ１、または、代替として、ソースレジスタ部ＲＳ５４０の低いハーフワードＲＳ２が、多重化装置５４５を介してレジスタ部ＲＤ５６０の低い部分に入力される。例えば、ＲＳ５４０とＲＴ５５０がともに、３２ビット幅レジスタ部である場合、一実施形態では、ソースレジスタ部ＲＴ５５０の高いハーフワードＲＴ１は、１６ビット幅であり、ソースレジスタ部ＲＳ５４０の低いハーフワードＲＳ２もやはり、１６ビット幅であり、このため、結果としての宛先レジスタ部ＲＤ５６０は、３２ビット幅レジスタである。
【００４１】
情報および信号は、様々な異なる技術および技法のいずれを使用して表現されることも可能であることが、当業者には理解されよう。例えば、以上の説明の全体で言及されることが可能なデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁気粒子、光の場または粒子、あるいは以上の任意の組み合わせによって表現されることが可能である。
【００４２】
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェアとして実施されても、コンピュータソフトウェアとして実施されても、あるいはその両方の組み合わせとして実施されてもよいことが、当業者にはさらに理解されよう。ハードウェアとソフトウェアの、この互換性を明確に示すのに、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップが、概ね機能の点で以上に説明されてきた。そのような機能が、ハードウェアとして実施されるか、ソフトウェアとして実施されるかは、全体的なシステムに課される特定の応用上の制約、および設計上の制約に依存する。当業者は、説明される機能を、それぞれの特定の応用例に関して、様々な仕方で実施することができるが、そのような実施上の決定が、本発明の範囲からの逸脱を生じさせるものと解釈されてはならない。
【００４３】
本明細書で開示される実施形態に関連して説明される様々な例示的な論理ブロック図、モジュール、および回路は、汎用プロセッサ、ＤＳＰ（ディジタル信号プロセッサ）、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレー）もしくは他のプログラミング可能なロジックデバイス、ディスクリートのゲートもしくはトランジスタロジック、ディスクリートのハードウェアコンポーネント、あるいは本明細書で説明される機能を実行するように設計された以上の任意の組み合わせを使用して、実施される、または実行されることが可能である。汎用プロセッサは、マイクロプロセッサであることが可能であるが、代替として、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態マシンであってもよい。また、プロセッサは、コンピューティングデバイスの組み合わせとして、例えば、ＤＳＰとマイクロプロセッサの組み合わせ、複数のマイクロプロセッサ、ＤＳＰコアと連携する１つまたは複数のマイクロプロセッサ、または他の任意のそのような構成として実施されることも可能である。
【００４４】
本明細書で開示される実施形態に関連して説明される方法またはアルゴリズムのステップは、ハードウェアにおいて直接に、プロセッサによって実行されるソフトウェアにおいて、またはこの２つの組み合わせで実施されることが可能である。これらの実施形態は、何らかの形態のプロセッサ上、もしくはプロセッサコア（コンピュータのＣＰＵなどの）上で実行される、またはそれ以外で、マシン可読媒体上、もしくはコンピュータ可読媒体上、またはマシン可読媒体内部、もしくはコンピュータ可読媒体内部で実施される、または実現されるソフトウェアプログラムとして、またはそのようなソフトウェアプログラムをサポートするように使用されることが可能であることを理解されたい。マシン可読媒体には、マシン（例えば、コンピュータ）によって読み取られることが可能な形態で情報を格納する、または伝送するための任意の機構が含まれる。例えば、マシン可読媒体には、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルなディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている他の任意の記憶媒体が含まれる。例示的な記憶媒体は、プロセッサが、その記憶媒体から情報を読み取ること、およびその記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体は、プロセッサと一体化していてもよい。プロセッサと記憶媒体は、ＡＳＩＣの中に存在することが可能である。このＡＳＩＣは、端末装置内に存在することが可能である。代替として、プロセッサと記憶媒体は、端末装置内のディスクリートのコンポーネントとして存在してもよい。
【００４５】
開示される実施形態の以上の説明は、任意の当業者が、本発明を作成する、または使用することができるようにするように提供される。これらの実施形態に対する様々な変形が、当業者には直ちに明白となり、本明細書において規定される一般的な原理は、本発明の趣旨または範囲を逸脱することなく、他の実施形態に適用されることが可能である。このため、本発明は、本明細書において示される実施形態に限定されることを意図しておらず、本明細書において開示される原理および新奇な特徴と合致する最も広い範囲を与えられるべきである。
【図１】
2009545823.tif 000003
【図２】
2009545823.tif 000004
【図３】
2009545823.tif 000005
【図４】
2009545823.tif 000006
【図５】
2009545823.tif 000007
【図６】
2009545823.tif 000008
【図７】
2009545823.tif 000009
【国際調査報告】
2009545823.tif 000010
2009545823.tif 000011
2009545823.tif 000012