(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサ（１１０）であって、
デコードするための命令デコーダ（ＤＥＣ）と、
少なくとも第１のサブワード並列命令および第２のサブワード並列命令を実行するための実行ユニットであって、前記第１のサブワード並列命令は、結果レジスタが有するサブワードロケーション内に、前記第１のサブワード並列命令の結果を格納するための第１のサブワードビット位置を指定し、前記第２のサブワード並列命令は、前記サブワードロケーション内に、前記第２のサブワード並列命令の結果を格納するための第２のサブワードビット位置を指定し、前記第１のサブワードビット位置および前記第２のサブワードビット位置は異なる実行ユニット（ＥＸＵ）と
を備える
マイクロプロセッサ。
【請求項２】
前記サブワード並列命令それぞれは、前記サブワード並列命令の結果それぞれを格納するために使用されない結果レジスタそれぞれのサブワードビット位置を上書きする
請求項１記載のマイクロプロセッサ。
【請求項３】
前記サブワード並列命令それぞれは、前記サブワード並列命令の結果それぞれを格納するために使用されない結果レジスタそれぞれのサブワードビット位置の内容を保存する
請求項１記載のマイクロプロセッサ。
【請求項４】
コンピュータによって実施される方法であって、
結果レジスタが有する各サブワードロケーション内の対応するサブワードビット位置に、第１のサブワード並列命令の結果を格納する、前記第１のサブワード並列命令を実行するステップと、
前記各サブワードロケーション内の対応するサブワードビット位置に、第２のサブワード並列命令の結果を格納する、前記第２のサブワード並列命令を実行するステップと
を有し、
前記第２のサブワード並列命令は、前記第２のサブワード並列命令の結果を、前記第１の並列サブワード命令が前記第１の並列サブワード命令の結果を格納するサブワードビット位置と同じサブワードビット位置に格納し、前記第１のサブワード並列命令の結果を、前記サブワードロケーション内の新しいサブワードビット位置にシフトさせる
方法。
【請求項５】
コンピュータによって実施される方法であって、
結果レジスタが有する各サブワードロケーション内の対応するサブワードビット位置に、第１のサブワード並列命令の結果を格納する、前記第１のサブワード並列命令を実行するステップと、
前記各サブワードロケーション内の対応するサブワードビット位置に、第２のサブワード並列命令の結果を格納する、前記第２のサブワード並列命令を実行するステップと
を有し、
前記第２のサブワード並列命令は、前記第２のサブワード並列命令の結果を、第１のサブワード並列命令が前記第１のサブワード並列命令の結果を格納するサブワードビット位置とは異なるサブワードビット位置に格納する
方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はデータ処理に関し、特に、データプロセッサが実行可能な命令に関する。本発明の主な目的は、マルチメディアアプリケーションにおいて一般的な特定の状況で改良されたプロセッサパフォーマンスを達成する並列サブワード比較命令を提供することにある。
【０００２】
【従来の技術】
近代の進歩の大部分は、コンピュータ技術の進展に関連する。通常のコンピュータは、プログラム命令に従ってデータに対して演算を行う１つまたは複数のプロセッサを備える。
各マイクロプロセッサには、命令セット、すなわちマイクロプロセッサが実行可能な命令のセットが関連付けられる。
特定のアプリケーションのコンテキストにおけるプロセッサのパフォーマンスは、プロセッサの命令セットを使用して、アプリケーションが要求するタスクをどの程度効率的に特徴付けることができるかに大きく依存する。
【０００３】
コンピュータは、高性能になればなるほど、リアルタイムでのビデオ操作等さらに多くを要求するアプリケーションに直面してきた。
通常、ビデオは画像の同期ストリームとして提示される。
各画像は、二次元アレイになった画素（ピクセル）として説明することができる。
通常、各ピクセルは色次元ごとに１つのマルチビット（たとえば８ビット）色値で記述される。多くのアプリケーション、たとえば映像圧縮は、ピクセルをブロック（たとえば、８×８ピクセルブロック）にグループ化する。
【０００４】
一般的な二値画像演算（同じ画像または異なる画像のブロック同士の比較等）では、オペランドデータの２×６４×８（２ブロック、６４ピクセル／ブロック、８ビット／ピクセル）ビットを同時に処理する必要があり得る。
ますます普及しつつある６４ビットプロセッサを使用する場合、二値画像ブロックの比較は、オペランドに８対の６４ビットレジスタを使用して実施することができ、追加のレジスタが中間結果および最終結果の格納に使用される。
【０００５】
全部で６４の比較が必要である。
各比較の結果は１ビットの情報である。
総計で、６４の比較の結果は、単一の結果レジスタに格納することのできる単一の６４ビットワードになる。
これら６４の比較をどの程度効率的に行い、かつ組み合わせることができるかは、マイクロプロセッサに関連する命令セットに依存する。
ワード比較命令が使用される場合、８つのデータビットを使用し、固定値が書き込まれたオペランドを生成しなければならない。
次いで、ワードが比較される。次に、１ビット値が結果レジスタの適当なビット位置に格納される。
連続した結果は、前の結果を消去することなく結果レジスタの適当な位置に格納しなければならない。
したがって、ワード比較命令を使用して画像ブロックの比較を完了するには、６４の比較命令および他の多くの命令が必要である。
【０００６】
プロセッサによっては、並列サブワード比較命令に対応するものもある。一対の６４ビットレジスタに適用されるように、レジスタに格納された８対の８ビットサブワードを並列に比較して、たとえば、結果レジスタの８つの最下位ビット位置に格納することのできる８ビット結果を生成することができる。この結果をより上位のビット位置にシフトして、他のレジスタ対での並列サブワード比較演算の結果のために場所を空けることができる。
画像ブロックの比較を完了するために、８つの並列サブワード命令、７つのシフト命令、および７つのＯＲ命令（結果を組み合わせるため）が必要であり、総計で２２の命令が必要である。
【０００７】
命令の総数は、並列サブワード比較命令の特定の実施によって決まる。たとえば、Ｉｎｔｅｌ  Ｉｔａｎｉｕｍプロセッサで使用される代替の並列サブワード比較命令は、結果レジスタの対応するサブワードロケーションに各サブワード比較結果の８つのレプリカを格納することができる。
この場合、８つの並列サブワード比較命令の結果を単一の結果にするために、より多くの補助命令が必要である。したがって、画像ブロックの比較に必要な命令の総数は、最初の例に提示された総数を２倍したものよりも多い場合がある。
【０００８】
Ｒｕｂｙ  Ｌｅｅによる関連特許出願（代理人整理番号１０９７１６６０−１）は、結果を結果レジスタの異なるサブワードロケーションに格納させて、結果を組み合わせる前にシフトする必要がないようにする並列サブワード比較命令を開示する。
ターゲッティングアプローチでは、命令が結果のサブワードロケーションを指定することができ、シフトアプローチでは、結果レジスタの前の内容を新しいサブワードロケーションにシフトして、前の結果を失うことなく元のロケーションに現在の演算結果を格納することができる。レプリカアプローチでは、結果の完全なレプリカが複数のサブワードロケーションに格納される。
ＯＲ命令またはＭＩＸ命令を使用して、別個の「シフト命令」なしで複数の並列サブワード命令からの結果を組み合わせることができる。
これにより、一連の並列比較命令を組み合わせるために必要な命令の数が１／３〜２／３節約される。
【０００９】
上記アプローチはコンピュータパフォーマンスを実質的に向上させるが、さらなる向上が望まれる。
【００１０】
【発明が解決しようとする課題】
本発明は、結果を結果レジスタに不連続に分散させる並列サブワード命令を提供する。
好ましくは、結果は、オペランドレジスタと結果レジスタとの間の情報の横方向移動を最小化するように結果レジスタのビット位置の間で分散される。
いずれにしても、分散は、「最大横方向移動」が、結果が連続して格納される場合よりも小さくなるようなものであるべきである。
本明細書では、結果の格納に使用されたビット位置における少なくとも１つのギャップがある場合に結果が格納され、好ましい実施形態では、２つの結果ビット位置が連続することはない。
【００１１】
【課題を解決するための手段】
最大横方向移動を最小化するために、サブワード演算の結果を、結果レジスタの対応するサブワードロケーション内に格納することができる。
たとえば、複数の並列サブワード演算それぞれの結果を、結果レジスタの対応するサブワードロケーションの最下位ビット位置に格納することができる。
これにより、最大横方向移動が１サブワード未満になることが保証されるのに対し、上記関連技術では、少なくとも１サブワード分、最大でデータパス全幅と同じだけの横方向移動が必要である。
【００１２】
本発明は、「シフト」アプローチおよび「ターゲッティング」アプローチを提供する。
シフトアプローチでは、レジスタの内容が、現在の演算の結果を格納するとき、前の演算結果が保存されるようにシフトされる。
たとえば、並列サブワード比較演算の結果として、結果が結果レジスタのサブワードロケーションの最下位ビット位置に格納され、その命令の次の繰り返しにより、前の結果が結果レジスタサブワードロケーションの次の最下位ビット位置に前の結果がシフトされ、現在の並列サブワード比較演算の結果を結果レジスタサブワードロケーションの最下位ビット位置に格納するものと仮定する。
このシフトアプローチの利点は、命令が繰り返されるとき結果が自動的に組み合わされ、結果を組み合わせるためのさらなる（たとえばＯＲ）命令の必要性がなくなることである。
【００１３】
「ターゲッティング」アプローチでは、複数の命令それぞれが、結果を格納すべき不連続のビット位置のセットを指定（暗黙的もしくは明示的に）する。
たとえば、ある命令が結果レジスタサブワードロケーションの最下位ビットロケーションを指定し、別の命令がサブワードロケーションの次の最下位ビットロケーションを指定し、以下同様である。
この例では、各結果レジスタサブワードビット位置専用の１つの命令があり得る。
結果を異なるビットロケーションセットに格納することによって、複数の並列サブワード命令の結果をシフトなしで組み合わせることができる。
【００１４】
本発明は、ターゲッティングアプローチの「上書き」および「内容保存」変形を提供する。
内容保存変形では、結果の格納に使用されない結果レジスタビット位置には手を付けずに残しておく。
これにより、集合的な結果がさらなる命令なしで組み合わせられるように、連続した並列サブワード比較演算（異なるビット位置セットを指定する）を同じ結果レジスタに書き込むことができる。
このアプローチは、シフトアプローチと同等に、結果の組み合わせの達成に必要な命令の数を最小化する。
この場合、命令は結果のシフトを要求せず、他方でシフトアプローチは、ロケーションの指定を要求しない。
【００１５】
上書き変形では、結果の格納に使用されないビット位置が、たとえばゼロで上書きされる。
この変形では、連続した並列サブワード演算の結果を、異なるレジスタの異なる位置に書き込むことができ、シフトすることなく結果を組み合わせる（たとえば、論理和をとることにより）ことができる。
結果を組み合わせるために別個の命令が必要であるため、ターゲッティングアプローチの上書き変形では、ターゲッティングアプローチの内容保存変形ならびにシフトアプローチよりも多くの命令が必要である。
【００１６】
タスクを完了するために必要な命令の数は、常にパフォーマンスの最もよい指標であるわけではない。いくつかの命令を並列に実行することができる場合、
「依存性深さ（dependency-depth）」のほうがよい尺度であり得る。
シフトアプローチでは、依存性深さは命令の数に等しく、ターゲッティングアプローチでは、並列サブワード結果が、異なるレジスタに書き込まれる限り、依存性深さははるかに少ないはずである。
【００１７】
本発明によってもたらされる最大横方向移動の劇的な低減は、命令実行に必要な時間の大幅な低減に対応する。
この低減を用いて、命令サイクルに割り当てる時間を短縮し、また命令セットの結果に応じて、内蔵したマイクロプロセッサのルーティング要件を低減することができる。
また、通常、異なる命令からの情報は、重ならないビット位置セットに格納されるが、本発明は、たとえば暗号化目的のために、重なったビット位置への情報の格納を提供する。
上記に加えて、または上記に代わる他の利点および特徴は、添付図面を参照して以下の説明から明白になろう。
【００１８】
【発明の実施の形態】
本発明によれば、コンピュータプログラム１００は、分散結果、上書き、ターゲッティング並列サブワード比較命令ＰＣｏｍｐＤＯＴ０〜ＰＣｏｍｐＤＯＴ７の命令サブセットから選択される命令を含む。
これらの命令は、以下のようにオペランド解析する(parse)ことができる。
すなわち、「並列サブワード比較を行い（８ビットサブワードを使用して）、各並列サブワード比較の結果を結果レジスタの対応するサブワードの（ｎ＋１）番目の（ｎ＝０〜７）最下位ビット位置に格納し、結果データの格納に使用されていない結果レジスタビット位置にゼロを上書きする。」現在の比較演算の場合、対応するサブワード内容が等しい場合には「１」が格納され、他の場合には「０」が格納される。
しかし、他のサブワード比較命令は、他の関係、たとえば「以上」等に基づいて「１」および「０」結果を割り当てることができる。
【００１９】
連続したＰＣｏｍｐＤＯＴ０およびＰＣｏｍｐＤＯＴ１を含むプログラム１００のセグメントの演算を図１に示す。（完全なレジスタでの値は１６進数であるが、サブワード細部における値は二進数である）。
ＰＣｏｍｐＤＯＴ０の結果は結果レジスタＲＣ０のサブワード（バイト）の最下位ビットの間で分散されるが、ＰＣｏｍｐＤＯＴ１の結果は結果レジスタＲＣ１のサブワードの２番目の最下位ビットの間で分散されることに留意する。
結果の格納に使用されないビットは、図１には“Ｚ”で示すように、デフォルトのゼロが書き込まれる。
８つの命令すべてならびに結果を組み合わせるためのＯＲ命令を含むより全体的なプログラムセグメントを図２に示し、図３に示すデータを使用する。
【００２０】
これら命令は、図４に示すように、マイクロプロセッサ１１０およびメモリ１１２を備えたコンピュータシステムＡＰ１のコンテンツで実行される。
メモリ１１２の内容は、プログラムデータ１１４およびプログラム１００を構成する命令を含む。
マイクロプロセッサ１１０は、実行ユニットＥＸＵ、命令デコーダＤＥＣ、レジスタＲＧＳ、アドレスジェネレータＡＤＧ、およびルータＲＴＥを備える。
【００２１】
概して、実行ユニットＥＸＵが、プログラム１００に従ってデータ１１４に対して演算を行う。
このために、実行ユニットＥＸＵは、アドレスバスＡＤＲに沿ってアドレスジェネレータＡＤＧに要求される次の命令またはデータのアドレスを生成するように命令することができる（内部データバスＤＴＢに付随する制御ラインを使用して）。
メモリ１１２は、これに応答して、要求されたアドレスに格納されている内容をデータおよび命令バスＤＩＢに沿って供給する。
【００２２】
内部データバスＤＴＢに付随するインジケータラインに沿って実行ユニットＥＸＵから受信されるインジケータによって決定されるように、ルータＲＴＥが、命令バスＩＮＢを介して命令を、内部データバスＤＴＢに沿ってデータを命令デコーダＤＥＣにルーティングする。
デコードされた命令は、制御ラインＣＣＤを介して実行ユニットＥＸＵに供給される。
通常、データは命令に従ってレジスタＲＧＳに／から転送される。
【００２３】
マイクロプロセッサ１１０には、命令デコーダＤＥＣがデコードし、実行ユニットＥＸＵが実行することのできる命令ＩＮＳの命令セットが関連付けられる。
プログラム１００は、命令セットＩＮＳから選択される順序付き命令セットである。
解説目的のために、マイクロプロセッサ１１０、その命令セットＩＮＳ、およびプログラム１００は、後述するすべての命令の例を提供する。
本発明はまた、本明細書に述べる新規命令のすべてではなくいくつかを使用する実施形態も提供する。
【００２４】
図２に示すプログラムセグメントは、８つすべての命令ＰＣｏｍｐＤＯＴ０〜ＰＣｏｍｐＤＯＴ７および７つのＯＲ命令、合わせて１５の命令を含む。
命令は、図２では４列に配置され、各列が、合計４つの依存性深さのうちの１つのレベルに対応する。
ＰＣｏｍｐＤＯＴ０〜ＰＣｏｍｐＤＯＴ７命令の結果（図３に示すデータに適用される）は、レジスタＲＣ０〜ＲＣ７に格納されて示される。
４つのＯＲ命令の最初のセットの結果は、レジスタＲＤ０〜ＲＤ３に示され、２つのＯＲ命令の第２のセットの結果はレジスタＲＥ０およびＲＥ１に示され、最後のＯＲ命令の結果は結果レジスタＲＦ０に示される。
【００２５】
本願を通して提示し、使用するデータは、本発明の命令の説明を容易にするように選択されたものであり、このデータは図３に示される。
オペランドレジスタＲＡ０〜ＲＡ７およびＲＢ０〜ＲＢ７中のデータは１６進数フォーマットであるが、結果は２進数フォーマットで示される。
結果のビット値は離間されて、結果レジスタ中で分散されることを示す。
【００２６】
本発明によって提供される最大横方向移動の低減を図５に示す。
通常のオペランドサブワードについて、本発明の分散アプローチに必要な最大横方向移動を実線の矢印で示し、関連技術の連続アプローチに必要な最大横方向移動を点線の矢印で示す。
本発明では、情報をサブワード内に残すことができるため、最大横方向移動は１サブワード未満である。
結果を連続して格納すると、最大横方向移動は１サブワードを越えることになる。
たとえば、結果が結果レジスタの最下位サブワードに連続して格納される場合、最上位オペランドビットに関連する横方向移動は、レジスタ全体から１サブワードを差し引いたものである。
したがって、本発明は、情報の最大横方向移動を大幅に低減し、レジスタ間のルーティングをより単純にし、データの移動をより高速にし、したがってプロセッサパフォーマンスをより高くすることができる。
【００２７】
プログラム１００の別のセグメントは、分散結果、内容保存、ターゲッティング並列サブワード比較命令ＰＣｏｍｐＤＰ０〜ＰＣｏｍｐＤＰ７を使用する。
これら命令は以下のようにオペランド解析することができる。
すなわち、「並列サブワード比較を行い（８ビットサブワードを使用して）、各並列サブワード比較の結果を結果レジスタの対応するサブワードの（ｎ＋１）番目の（ｎ＝０〜７）最下位ビット位置に格納し、結果データの格納に使用されていない結果レジスタビット位置を変更せずにそのままにする。」ＰＣｏｍｐＤＰ０およびＰＣｏｍｐＤＰ１の連続した対の演算を図７に示す。
ＰＣｏｍｐＤＰ０の結果は、結果レジスタＲＣ０のサブワードの最下位ビットに格納される（ＰＣｏｍｐＤＯＴ０の場合と同様に）。
しかし、結果の格納に使用されないビット位置は、図６にＺの代わりにＸを使用して示すように、レジスタＲＣ０に予め存在するデータで埋められる。
【００２８】
図１の上書き命令と図６の内容保存命令との違いは、ＰＣｏｍｐＤＰＴ１の結果を参照するとより明確になる。
この命令の結果は、結果レジスタサブワードロケーションの２番目の最下位ビット位置に書き込まれる。
この場合、結果は、ＰＣｏｍｐＤＰＴ０の結果と同じ結果レジスタＲＣ０に書き込まれるため、結果はさらなる命令なしで組み合わせられる。
したがって、望ましい組み合わせられた結果は、図７に示すように、８つの命令の後でのみ結果レジスタＲＣ０に見られる（図４のデータを使用して）。
しかし、依存性深さ、したがってマイクロプロセッサ１１０によってもたらされる並列性を利用する機会はより少ない（However, the dependency depth is , so there is less opportunity to take advantage of parallelism provided by microprocessor 110）。
【００２９】
並列サブワード比較命令のターゲッティング変形では、結果ロケーションを暗黙的あるいは明示的に指定しなければならない。
これは、各サブワードロケーションごとに異なる命令を使用することによって暗黙的に指定することができる。
この目的のために命令中に確保されたフィールドに入力された値によって明示的に指定することができる。
代替として、命令が、ロケーションを示す値が格納されるロケーションを明示的または暗黙的にポイントすることができる。
たとえば、命令は、結果を格納すべきサブワードロケーションを示す値を格納するレジスタをポイントすることができる。
別の代替では、結果を格納すべきレジスタにサブワードロケーションを結び付ける。
たとえば、レジスタＲＣ０に格納される結果を最下位サブワード位置に格納し、レジスタＲＣ１に格納された結果を２番目の最下位サブワード位置に格納することができる。
【００３０】
分散した、内容保存、シフト並列サブワード比較命令ＰＣｏｍｐＤＰＳを使用するプログラムセグメントを図８および図９に示す。
この命令は、以下のようにオペランド解析することができる。
すなわち、「並列サブワード比較を行い（８ビットサブワードを使用して）、各並列サブワード比較の結果を結果レジスタの対応するサブワードの最下位ビット位置に格納し、予め存在するデータを１ビット位置分左にシフトし、各サブワードの予め存在する最上位ビットをドロップする。」この場合、結果の宛先は１つしかないため、命令も１つしかない（２つのターゲッティング命令サブセットそれぞれに８つの命令があることとは対照的に）。
【００３１】
図８に示すように、ＰＣｏｍｐＤＰＳの結果は、図６のＰＣｏｍｐＤＰＴ０の結果と同一に見える。
しかし、予め存在するデータを所定位置にしたままにするのではなく、ＰＣｏｍｐＤＰＳは予め存在するデータを左に２ビットシフトする。
各サブワードごとの予め存在する最上位データビットはドロップされ、空いたサブワードの最下位ビット位置が命令結果で埋められる。
【００３２】
このシフトは、図８における第２のＰＣｏｍｐＤＰＳと合わせてより明確に例示する。
第１のＰＣｏｍｐＤＰＳの結果は左に１ビットシフトされ、第２のＰＣｏｍｐＤＰＳの結果はここでも、サブワードの最下位ビット位置に格納されることに留意する。
５番目の最下位サブワード（図８において強調される）の２つの最下位ビット（これもまた図８において強調される）の検査は、ＰＣｏｍｐＤＰＴ１の対応する結果（図６において強調される）と異なる。
明らかに、情報は同じであるが、ＰＣｏｍｐＤＰＴｎとＰＣｏｍｐＤＰＳに関連する順序付け規則が異なるため、別様に表現される。
内容はシフトされて保存されるため、連続したＰＣｏｍｐＤＰＳ命令が同じレジスタに書き込むことができ、よって８つの命令の後に、所望の組み合わせられた結果が得られる。
内容保存ターゲッティング命令の場合と同様に、プログラムセグメント長および依存性深さは双方とも８である。
【００３３】
２つの連続した比較（または他の特徴付け）命令は同じタイプのものと意図するが、本発明では同じタイプのものである必要はない。
たとえば、シフトタイプ命令はターゲッティング命令の後であってもよく、またその逆であってもよい。
さらに、２つの命令が必要とする演算は同じである必要はなく、たとえば、一方が二値比較であり、他方が「ゼロに等しい（equals zero）」命令であってもよい。
【００３４】
したがって、本発明は、Ｒｕｂｙ  Ｌｅｅの出願（代理人整理番号１０９７１５５０−１）に開示されるもののように、並列サブワード比較命令に必要な命令の数を大幅に低減することができる異なるタイプの命令に対応する(provide for)。
例示した実施形態では、レジスタは６４ビットであり、サブワードは８ビットであり、よってレジスタ当たり８つの互いに重ならないサブワードロケーションがある。
このレジスタおよびサブワードサイズの選択により、結果は１サブワード長である。
より長い、たとえば１６ビットのサブワードが使用される場合、６４ビットレジスタ当たり４つのみの１６ビットサブワード、ひいては結果当たり４ビットしかない。
したがって、１６の互いに重ならない４ビット結果ロケーションがレジスタに存在しうる。
命令セットは、並列サブワード比較演算にこれらのうちいずれかを選択できるように設計することができる。
よって、このような命令の１つのフォーマットは、ＰＣｏｍｐ（第１のオペランドレジスタ、第２のオペランドレジスタ、結果レジスタ、サブワードサイズ、結果レジスタにおける結果のターゲットロケーション）であることができる。
【００３５】
上記説明では、異なる演算の結果を、同じあるいは異なる結果レジスタの異なるビット位置に格納した。
しかし、暗号化アプリケーションでは、結果格納に使用するビット位置セットがいくらか重なっている必要があり得る。
たとえば、ターゲットビット位置のセットが重なってもよく、別の例では、シフト命令が以前の内容のすべてではなくいくらかをシフトすることができる。
結果が同じレジスタに書き込まれる場合、前の結果のいくらかに上書きされ、結果が異なるレジスタに書き込まれる場合、たとえばＸＯＲ命令を使用して結果を組み合わせる場合、いくらかの情報をマスクすることができる。
失われた情報は、意図した受信者しか利用することができない暗号化鍵に従って別個に供給することができる。
【００３６】
本発明は、比較演算のみならず、単項演算、２進演算、およびより高次の演算を含む他の演算にも適用される。
レジスタ長は変更可能であり、２のべき乗である必要はない。
サブワード長も変更可能であり、２のべき乗である必要はない。
演算結果によって決定されない結果レジスタのビットは、変更しないままにしてもよく、またゼロあるいは１のいずれかに設定してもよい。
例示した実施形態に対するこれらおよび他の変更および変形は本発明によって提供され、本発明の範囲は併記の特許請求の範囲によってのみ限定される。
【００３７】
【発明の効果】
以上説明したように、本発明に係る並列サブワード命令によれば、結果を結果レジスタに不連続に分散させることができる。
また、本発明に係る並列サブワード命令によれば、結果は、オペランドレジスタと結果レジスタとの間の情報の横方向移動を最小化するように結果レジスタのビット位置の間で分散される。
また、本発明に係る並列サブワード命令によれば、分散を、「最大横方向移動」が、結果が連続して格納される場合よりも小さくすることができる。
また、本発明に係る並列サブワード命令によれば、結果の格納に使用されたビット位置における少なくとも１つのギャップがある場合に結果が格納され、２つの結果ビット位置が連続することはない。
【図面の簡単な説明】
【図１】本発明による一対の分散した上書きターゲッティング命令を含む第１のコンピュータプログラムセグメントの一部の概略図である。
【図２】本発明によるサブワード比較結果の組み合わせに使用する８つの並列サブワード比較命令およびＯＲ命令を示す図１のプログラムセグメントのより全体的な図である。
【図３】本発明の演算を説明するために使用する例示的なオペランドデータおよび結果を提示する。
【図４】図１のコンピュータプログラム命令を実行するシステムの概略図である。
【図５】本発明によって提供される最大横方向移動と、ある関連技術の並列サブワード比較命令に必要な最大横方向移動とを比較する。
【図６】分散内容保存ターゲッティング命令の連続した対の演算を示す第２のコンピュータプログラムセグメント対の概略図である。
【図７】本発明による８つの連続した分散内容保存ターゲッティング命令を包含する図６のセグメントのより全体的な図である。
【図８】本発明による一対の分散シフト命令を含む第３のコンピュータプログラムセグメント対の概略図である。
【図９】本発明による８つの連続した分散シフト命令を示す第３のコンピュータプログラムセグメントのより全体的な図である。
【符号の説明】
１００・・・プログラム命令、１１０・・・マイクロプロセッサ、１１２・・・メモリ、１１４・・・プログラムデータ
【図１】
0003958224.tif 000002
【図２】
0003958224.tif 000003
【図３】
0003958224.tif 000004
【図４】
0003958224.tif 000005
【図５】
0003958224.tif 000006
【図６】
0003958224.tif 000007
【図７】
0003958224.tif 000008
【図８】
0003958224.tif 000009
【図９】
0003958224.tif 000010