"プロセッサによるマトリクスの処理に関するレジスタの二組のセットを使用する方法において、データのマトリクスをレジスタの第1のセットにストアするステップであって、レジスタの第1のセットは第1の数のレジスタを含み、各レジスタは第1の数のストレージユニットを含み、各ストレージユニットは前記マトリクスの要素をストアするステップと、前記データのマトリクスをレジスタの第2のセット内に転置するステップであって、前記レジスタの第2のセットは第2の数のレジスタを含み、各レジスタは第2の数のストレージユニットを包含する、前記転置するステップと、第1セットのレジスタの変更に応答して、前記第1のレジスタセット内にストアされている前記データのマトリックスと前記第2のレジスタのセット内にストアされている前記データのマトリックスの間の転置関係を維持するように第2セットのレジスタ群を自動的に変更するステップと、前記レジスタの第1のセットの1つを参照して前記データのマトリクスの1つの行に対する演算を行うステップと、前記レジスタの第2のセットの1つを参照して前記データのマトリクスの1つの列に対する演算を行うステップとを具備することを特徴とする方法。さらに、前記レジスタの第1のセット内の前記マトリクスの1つ行を変更するステップと、前記レジスタの第2のセット内の前記転置されたマトリクスの対応する列を自動的に変更するステップとを含むことを特徴とする請求項1記載の方法。さらに、前記レジスタの第2のセットの1つにストアされた列データに対する変換演算を実行するステップを含むことを特徴とする請求項1記載の方法。前記変換演算を実行するステップが、前記レジスタの第2のセットの1つにストアされた列データに対する離散コサイン変換演算の実行を包含することを特徴とする請求項3記載の方法。前記第2のストレージユニット数を、前記第1のレジスタ数より大きいかそれに等しいとしたことを特徴とする請求項1記載の方法。前記第1のレジスタ数を、前記第2のレジスタ数に等しいとしたことを特徴とする請求項1記載の方法。前記レジスタの第1のセットはMMX商標レジスタを含み、前記第1のレジスタ数は8であり、かつ前記データのマトリクスはイメージデータを包含するものとしたことを特徴とする請求項1記載の方法。メモリと、前記メモリに結合されたプロセッサとを包含するシステムであって、前記プロセッサは、データのマトリックスをストアするレジスタの第1のセットと、前記データのマトリクスの転置をストアする第2のレジスタのセットと、前記第1のレジスタのセットの変更に応答し、前記第1のレジスタのセット内にストアされている前記データのマトリクスと前記第2のレジスタのセット内にストアされているデータのマトリクスの前記転置の間の前記転置関係を維持するべく、前記第2のレジスタのセットを自動的に変更するロジックとを包含する、前記システム。前記レジスタの第1のセットにおける前記マトリクスの1つの行の変更が、自動的に、前記第2のレジスタのセット内にストアされている前記データのマトリックスの前記転置の列の対応する変更をもたらすことを特徴とする請求項8記載のシステム。前記レジスタの第1のセットは第1の数のレジスタを含み、その各レジスタは第1の数のストレージユニットを包含し、前記レジスタの第2のセットは第2の数のレジスタを含み、その各レジスタは第2の数のストレージユニットを包含し、かつ前記第2のストレージユニット数を、前記第1のレジスタ数より大きいかそれに等しいとしたことを特徴とする請求項8記載のシステム。前記第1のレジスタ数を、前記第2のレジスタ数に等しいとしたことを特徴とする請求項10記載のシステム。前記レジスタの第1のセットはMMXTMレジスタを含み、前記第1のレジスタ数は8であり、かつ前記データのマトリクスはイメージデータを包含するものとしたことを特徴とする請求項11記載のシステム。前記プロセッサが、前記レジスタの第1のセットの1つを参照する命令を実行して前記データのマトリクスの1つの行に対する演算を行い、かつ前記レジスタの第2のセットの1つを参照する命令を実行して前記データのマトリクスの1つの列に対する演算を行うことを特徴とする請求項8記載のシステム。第1の数の行と第1の数の列を有する第1のデータのマトリクスをストアする第1のレジスタのセットと、第1行インデックスと第1列インデックスにストアされている前記第1のデータのマトリクス内の第1要素と、第2の数の行と第2の数の列を有する第2のデータのマトリクスをストアする第2のレジスタのセットと、前記第1列インデックスに等しい第2行インデックスと前記第1行インデックスに等しい第2列インデックスにストアされている前記第2のデータのマトリクス内の第2要素と、前記第1要素の任意の変更に応答し、前記第1要素の前記回転された前記第2要素を自動的に変更するロジックとを有するプロセッサ。前記ロジックは、前記第1要素の前記回転された前記第2要素を前記第1要素の新しい値に自動的に設定することによって前記第1要素の値の任意の変更に応答する請求項14記載のプロセッサ。前記第1要素を前記第1要素の前記回転された前記第2要素の新しい値に自動的に設定することによって前記第1要素の前記回転された前記第2要素の値の任意の変更に応答するロジックをさらに含む請求項15記載のプロセッサ。前記第2の行数を、前記第1の列数より大きいかそれに等しいとし、前記第2の列数を、前記第1の行数より大きいかそれに等しいとしたことを特徴とする請求項16記載のプロセッサ。単一の命令で、前記第1のデータのマトリクスと前記第2のデータのマトリクスのうちのいずれか一方の列のストアされた要素を参照するロジックをさらに含む請求項17記載のプロセッサ。前記レジスタの第1のセットは第1の数のレジスタを含み、その各レジスタは第1の数のストレージユニットを包含し、前記レジスタの第2のセットは第2の数のレジスタを含み、その各レジスタは第2の数のストレージユニットを包含し、かつ前記第2のストレージユニット数を、前記第1のレジスタ数より大きいかそれに等しいとしたことを特徴とする請求項18記載のプロセッサ。前記第1のレジスタ数を、前記第2のレジスタ数に等しいとしたことを特徴とする請求項19記載のプロセッサ。本発明の特徴ならびに利点については、以下に述べる本発明の詳細な説明から明らかなものとなろう。本発明の1つの実施態様は、2次元2-Dマトリクス演算にとってより効率的となるMMXTMレジスタの拡張に関する方法および装置からなる。ところで、この明細書において本発明の一実施形態もしくは1つの実施形態と述べるときには、その実施形態に関連して述べられている特定の特徴、構造または特性が、本発明の少なくとも1つの実施形態に含まれていることを意味する。したがって、この明細書全体を通じて随所に現れる一実施形態においてはという表現は、必ずしも同一の実施形態を参照していない。1つの命令を実行するとき、通常プロセッサは、1ないしは複数のレジスタオペランドを参照する。MMXTM命令の場合であれば、レジスタオペランドは、MMXTMレジスタと呼ばれる一組ないしは複数組のレジスタの特定のセットであろう。図1は、従来技術に従ったMMXTMレジスタのセットを示した説明図である。図1に示されているレジスタセット10には、8個のMMXTMレジスタがあり、それぞれmm012~mm714のラベルが付されている。別の実施形態においては、レジスタの数が8より多く、もしくはそれより少なくなることもある。それぞれのレジスタは、複数個のデータのユニットを含んでおり、図示のように下位ユニット16から上位ユニット18に至る順序が設定されている。一実施形態においては、1ユニットが1バイトを構成する。別の実施形態においては、1ユニットがワード、倍長ワード、あるいはそのほかのストレージユニットを構成することもある。少なくとも1つの周知のシステムにおいては、1つのMMXTMレジスタ当たりのユニットの数たとえばバイト数が8であるが、別のシステムにおいては、使用されるユニット数がこれと異なることもある。MMXTMレジスタを使用してSIMDマルチメディア処理を効率的に実装するためには、複数の関連データアイテムが単一のMMXTMレジスタ内に配置されるように、処理対象となるデータを整列させる必要がある。たとえば、イメージデータの、8ピクセル×8ピクセルのブロックが図2に示されるようにMMXTMレジスタ内にレイアウトされており、それぞれのピクセル値Pi,jが1ユニット内に表現され、かつレジスタのセット全体がマトリクスを表している場合について考える。この8ピクセル×8ピクセルのブロックは、より大きなイメージの部分と考えてもよい。この例においては、このブロックのイメージデータの第1行が第1のMMXTMレジスタmm012にストアされ、その際、第1行の第1列がmm0の下位ユニットにストアされ、第1行の最終列がmm0の上位ユニットにストアされ、イメージデータの第2行が第2のMMXTMレジスタmm120にストアされ、その際、第2行の第1列がmm1の下位ユニットにストアされ、第2行の最終列がmm1の上位ユニットにストアされるといった形が繰り返される。図示のようにMMXTMレジスタ内にデータがストアされた後は、プロセッサが命令を実行し、一度に1行ずつ、8×8マトリクスに対する演算を効率的に行うことができる。このタイプの処理は、たとえばブロック-ベースのイメージングアプリケーションをはじめその他のアプリケーションにおいて広く使用されている。たとえば、次に示すように単一のMMXTM命令を用いて、行0のすべてのデータを行3のデータに加算することができる。PADDBMM0MM3addrow0toroe3andstoreresultsinrow0行0を行3に加算し、結果を行0にストアする。しかしながら、8×8マトリクスに対して一度に1列ずつの演算を行うためには、各列データが8つのMMXTMレジスタにわたって振り分けられていることから問題が生じる。たとえば、第1列のデータは、mm012からmm714までの下位ユニットの間にそれぞれ振り分けられており、最終列のデータはmm0からmm7までの上位ユニットの間にそれぞれ振り分けられている。MMXTMのSIMD処理の使用から得られる利益を継続させるためには、8×8マトリクスを図3に示すように転置する必要が生じる。マトリクスの転置については数学でもよく知られている。転置後は、第1のMMXTMレジスタmm012がオリジナルのデータの第1列をストアし、図示されているように、オリジナルの第1列の第1行が下位ユニット16内にストアされ、オリジナルの第1列の最終行が上位ユニット18内にストアされる。そのほかのMMXTMレジスタについても同様に、図示のように8×8マトリクスの列をストアすることになる。8×8マトリクスの転置は、周知のパック命令およびアンパック命令を使用して実行することができるが、この処理は非常に非効率的であり、著しい処理のオーバーヘッドをもたらす。概略で言えば、8×8マトリクスの転置処理は、4×4マトリクスの転置を実行することによって実施され、各転置には、Pentium登録商標IIIプロセッサ上における少なくとも12の処理サイクルを必要とする。したがって、MMXTM命令を使用して所定の列の8つの要素に対する演算をできるようにデータを単に再配置するだけでも、少なくとも64サイクルが使用されることになる。本発明の実施形態は、MMXTMレジスタにおける一連のパック命令およびアンパック命令を通じたデータの転置が必要となる問題を、プロセッサ内にマルチメディア処理を補助するレジスタの追加のセットを備えることによって解決する。本発明の実施形態では、プロセッサアーキテクチャ内にMMXTMレジスタの等価ミラーセットがデザインされる。このレジスタセットは、仮想MMXレジスタセットまたはVMXセットと呼ぶことができる。図4は、本発明の1つの実施形態に従ったMMXTMレジスタセットにリンクされる仮想MMXレジスタセットを示した概要図である。一実施形態においては、MMXTMレジスタセット10内のMMXTMレジスタの数は、VMXレジスタセット22内に備えられるVMXレジスタの数に等しくなる。それに加えて一実施形態においては、VMXレジスタの数は、各MMXTMレジスタ内のユニット数に等しいかそれより大きいユニットは、実装に応じてバイト、ワード、倍長ワード、またはその他のストレージユニットとなる。VMXレジスタセット22は、転置されたMMXTMレジスタセットからのマトリクスデータをストアし、MMXTMセット内のいずれかのレジスタのいずれかのユニットが変更されたときには、レジスタ更新ロジック23によって自動的に更新され得る。つまり、MMXTMレジスタセット10の1つの行のロードは、自動的にVMXレジスタセット22の1つの列のロードとなる。たとえば、第1のMMXTMレジスタmm012からのデータは、自動的にVMXレジスタVM0~VM7の下位ユニットにストアされ、第2のMMXTMレジスタmm120からのデータは、自動的にVMXレジスタの、次に低いユニットにストアされるといった形になる。図2に戻るが、MMXTMレジスタに、図示のようにP0,0~P7,7が割り当てられた8×8マトリクスがロードされると、VMXレジスタは、レジスタ更新ロジックによって自動的に、図5に示されるようにロードされる。マトリクスの行要素に対する演算を行う場合には、プログラムは、MMXTMレジスタmm012~mm714の1ないしは複数を単純に参照することができる。しかしながら、このマトリクスの列要素に対する演算を行う場合には、プログラムが、上記に代えてVMXレジスタvm024~vm726を参照する。MMXTMレジスタがプロセッサハードウエア内においてVMXレジスタを用いてミラーリングされていることから、一貫性に関する問題をまったく伴わない。すべてのMMXTM命令は、必要に応じて適切なレジスタに対する参照を使用することによって、いずれかのレジスタのセットを用いて処理することができる。プロセッサの命令セットに対する変更はまったく必要なく、プログラム内のオペランド参照を変更するだけでよい。本発明の実施形態が現存するプロセッサアーキテクチャより優れている点の1つは、マトリクス演算に関して本発明がより優れた並列演算を提供することである。これは、複数のパック命令およびアンパック命令の実行を通じた列演算のための負担の大きい転置を回避することによって達成される。本発明がどのように使用されるかについての例は、多くのビデオ処理スキームにおいて8ピクセル×8ピクセルブロックを処理するために使用される離散コサイン変換DCTアルゴリズムに見ることができる。現在のところ8×8DCTを実行するために、まず1×8列の変換を実行し、8×8マトリクスの転置を行い、別の1×8列の変換を実行し、さらにその結果の転置を再度行ってDCT係数を求めている。現在Pentium登録商標クラスのプロセッサ上で実行されているもっとも最適化されたDCTは、約300の処理サイクルを必要とする。このうち、約100サイクルが8×8マトリクスに関する転置演算の実行に使用されている。つまり、本発明の実装によって、DCT処理に関する約30の改善がもたらされる。同様に、逆DCTについてもパフォーマンス利得を達成することができる。ここではDCTの例について論じたが、本発明の実施形態は、各種のイメージならびにビデオ圧縮アルゴリズムに使用されるマトリクス演算を含めたあらゆるマトリクス演算に有用となると考えられる。以上、2次元2-Dマトリクスに関連して本発明の説明を行ってきたが、そのコンセプトは3次元もしくはより多次元に適合させることができる。たとえば、レジスタの第3のセットをプロセッサの設計に含ませて、マトリクスデータの別の転置をストアさせてもよい。図6は、本発明の1つの実施形態に従った、MMXTMレジスタセットおよび仮想MMXTMレジスタセットを伴うプロセッサを有するシステムを示したブロック図である。システム50は、メモリ54に結合されたプロセッサ52を含むことができる。プロセッサ52は、この分野において周知の各種のコンポーネントを含んでいるが、図6においては明瞭化のためにその多くが省略されている。命令メモリ56は、1つないしは複数のMMXTMレジスタ10、もしくは1つないしは複数のVMXレジスタ22を参照することのある命令をストアしている。レジスタ更新ロジック23は、MMXTMレジスタの変更時にVMXレジスタ22の自動的な更新を整合させる。マルチプレクサMUX58は、算術論理演算ユニットALU60に対する入力のために、MMXTMレジスタもしくはVMXレジスタのうちのいずれか一方からのデータを選択する。このALUは、データメモリ52のためのデータを生成する。本発明は、より直感的な形態においてMMXTMレジスタが操作されることを可能にする。ミラーレジスタセットの追加によって、あらゆるブロック-ベースのアルゴリズムの実装を単純化することが可能になり、そのパフォーマンスを向上させることができる。本発明から恩典を受けると見られるアプリケーションのいくつかの例としては、ビデオ圧縮アルゴリズムに使用される離散コサイン変換DCT、3次元3-Dグラフィックアルゴリズムにおけるマトリクス変換等が挙げられる。以上のとおり、例示の実施形態を参照して本発明について説明してきたが、この説明は、限定の意味に解釈されることを意図したものではない。例示の実施形態に対する各種の修正をはじめ本発明のそのほかの実施形態は、本発明が属する分野の当業者にとっては明らかであり、それらは本発明の精神ならびに範囲に含まれるものと見なす。"