(57)【要約】データ処理システム２は、シフトおよび挿入命令ＳＬＩ，ＳＲＩの使用を提供する。シフトおよび挿入命令ＳＬＩ，ＳＲＩは、指定されたシフト量でソースデータ値をシフトすること、さらに、シフト値におけるシフトされたビット以外のビットを宛先値の中に挿入することをさせる。ここで、その宛先値の残りのビットは変更されない。
2007528545.tif 000002
【特許請求の範囲】
【請求項１】
使用されるデータ値を記憶する動作が可能な複数のレジスタと、
前記複数のレジスタに記憶された１つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段と、
プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであることを特徴とするデータ処理装置。
【請求項２】
前記シフトおよび挿入命令は、Ｎビット位置の前記シフト量を指定する即値を有する請求項１に記載の装置。
【請求項３】
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１および２のいずれか一項に記載の装置。
【請求項４】
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１、２および３のいずれか一項に記載の装置。
【請求項５】
前記シフトおよび挿入命令は、宛先(destination)レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記宛先レジスタについての前記レジスタ指定領域は、前記第１レジスタおよび第２レジスタのいずれか一つに割り当てられる請求項５に記載の装置。
【請求項７】
前記第１データ値は、右シフトされる請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記第１データ値は、左シフトされる請求項１から６のいずれか一項に記載の装置。
【請求項９】
前記第１データ値および前記第２データ値は、同一のビット数をもっている請求項１から８のいずれか一項に記載の装置。
【請求項１０】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第１データ値をシフトする動作が可能である請求項１から９のいずれか一項に記載の装置。
【請求項１１】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第２データ値の中のいずれかのビットと、変更されていない前記第２データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項１から１０のいずれか一項に記載の装置。
【請求項１２】
前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第１レジスタおよび第２レジスタは、それぞれ第１単一命令多重データ・レジスタおよび第２単一命令多重データ・レジスタの一部分であり、
前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項１から１１のいずれか一項に記載の装置。
【請求項１３】
前記処理ロジック手段は、スカラ処理ロジック手段である請求項１から１１のいずれか一項に記載の装置。
【請求項１４】
複数のレジスタに使用されるデータ値を記憶するステップと、
前記複数のレジスタに記憶された１つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであることを特徴とするデータを処理する方法。
【請求項１５】
前記シフトおよび挿入命令は、Ｎビット位置の前記シフト量を指定する即値を有する請求項１４に記載の方法。
【請求項１６】
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１４および１５のいずれか一項に記載の方法。
【請求項１７】
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１４、１５および１６のいずれか一項に記載の方法。
【請求項１８】
前記シフトおよび挿入命令は、宛先レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１４から１７のいずれか一項に記載の方法。
【請求項１９】
前記宛先レジスタについての前記レジスタ指定領域は、前記第１レジスタおよび第２レジスタのいずれか一つに割り当てられる請求項１８に記載の方法。
【請求項２０】
前記第１データ値は、右シフトされる請求項１３から１７のいずれか一項に記載の方法。
【請求項２１】
前記第１データ値は、左シフトされる請求項１４から１７のいずれか一項に記載の方法。
【請求項２２】
前記第１データ値および前記第２データ値は、同一のビット数をもっている請求項１４から１９のいずれか一項に記載の方法。
【請求項２３】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第１データ値をシフトする動作が可能である請求項１４から２０のいずれか一項に記載の方法。
【請求項２４】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第２データ値の中のいずれかのビットと、変更されていない前記第２データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項１４から２１のいずれか一項に記載の方法。
【請求項２５】
前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第１レジスタおよび第２レジスタは、それぞれ第１単一命令多重データ・レジスタおよび第２単一命令多重データ・レジスタの一部分であり、前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項１４から２２のいずれか一項に記載の方法。
【請求項２６】
前記処理ロジック手段は、スカラ処理ロジック手段である請求項１４から２２のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムに関するものである。特に、本発明は、プログラム制御下でデータ・ワードの中にビットの挿入をすることに関するものである。
【背景技術】
【０００２】
１つのデータ・ワードにおける複数のビットの領域を圧縮する(pack together)データ処理システムが知られている。例えば、１６ビットデータ・ワードの中で、５ビット長のもの２つと６ビット長のもの１つとで、それぞれ赤と緑と青の値を示す３色の構成要素値について所望の圧縮が可能である。よくある事例では、異なる構成要素値が、別々に処理されるとともに、それらの大きさが別々に計算される。そのような計算の後に、別々の構成要素は、よりコンパクトな形で記憶すること、および、画素ごとに基づいてより容易に操作することが可能となるように、１つのデータ・ワードの中で合わせて組み立てる必要がある。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
そのようなデータ圧縮を実現するために、一つの実現可能な解決手段は、宛先レジスタに挿入されるソースレジスタの中のビット領域の長さと、前記挿入されるビット領域についての前記宛先レジスタの中の位置と、の両方を指定するプログラム命令を具備することである。そのような命令は、通常、ソースレジスタと、宛先レジスタと、ビット領域長と、ビット領域挿入位置とを指定しなければならない。この手法では、１つの命令の中で４つの別々のパラメータを指定しなければならず、前記命令の中の利用可能な命令ビット・スペースに、不都合に多くの要求項目を配置するとともに、そのような命令はそれらが消費する前記命令ビット・スペースに関して不利となる。
【課題を解決するための手段】
【０００４】
本発明は、一つの特徴として、
使用されるデータ値を記憶する動作が可能な複数のレジスタと、
前記複数のレジスタに記憶された１つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段と、
プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであることを特徴とするデータ処理装置
を提供する。
【０００５】
本発明は、そのような命令を使用することが必要な多くの場合、前記ビット領域長とビット領域位置とを別々に指定可能な十分な柔軟性は必要ない、ことを容認する。その代わり、ソース値に適用されるシフト量を指定する１つのパラメータが、宛先値に書かれている前記ソース値のビットのスタート位置を制御する。前記宛先値に書かれたビットは、前記命令にかかるシフト方向に依存して、前記スタート位置から前記宛先値の適当な終端までに渡る。おそらく、最終的に必要とされるものよりも多くのビットが挿入される。しかしながら、本技術は、そのような命令が実行される多数の事例の大部分で、最終的な圧縮データ値が要求通りの正しいビットを具備するように、１つの命令の中に書かれた余分なビットが次の命令中の所望データに上書きされる、ことを容認する。その結果、動作の圧縮タイプ、または他のビットの組立操作は、命令が好適に小さい命令ビットスペースの要件となることを達成できる。当然のことながら、上記本発明の表現は、シフトおよび挿入命令のもたらす結果が、特定のシフト動作と特定の挿入動作とで生成される結果値を持っていることを条件としている。当然のことながら、結果値を生成するために使用された実際の手段は、シフトおよび挿入が実行されるようなものと同様なものに、変えることができる。そのような変形手段および変形ステップは、本技術に包含されている。前記シフトおよび挿入ステップは、どのように所望の最終結果が入力に関連付けられるか、を表現する一手法であるが、入力と出力間の同一関係が様々な異なる手法で達成できるとともに表現できる。これらの代替手段は、本技術の中に包含されている。
【０００６】
前記シフト量は、前記命令の中で指定されたレジスタの中に記憶された値により指定できる。または、前記シフト量は、代わりにおよび望ましくは、シフトおよび挿入命令自体の中に符号化された即値により指定できる。
【０００７】
第１および第２レジスタは、両方がレジスタ・バンクのレジスタに対して、ソースレジスタ指定領域によって好適に指定される。また、宛先レジスタ指定領域が（第１レジスタまたは第２レジスタの一つと任意に共有されるように）使用できる。
【０００８】
当然のことながら、本技術の前記シフトは、状況と圧縮またはビット挿入の所望形式とによって、右シフトまたは左シフトのいずれかとすることができる。
【０００９】
好適実施形態では第１データ値と第２データ値とが同一数のビットを持つものの、第１データ値と第２データ値とが、異なるビット長を持つことができるとともに、異なる長さのレジスタに記憶されるようにすることが可能である。
【００１０】
上記のように、好ましい方法は、第１値のシフトを使用すること、および、シフトデータ値の中の対応するビットに置換される第２データ値の中のビットと、変更されていない前記第２データ値の中のビットと、を選択するマスク値を形成することであるが、上記設定のような入力と出力との関係は、様々な異なる方法で実行できることが理解される。このマスク値は、開始マスクのシフトによって、または、マスクを直接形成する命令の復号化のような代替手段によって、良好に形成できる。
【００１１】
本技術は、スカラ処理システムと単一命令多重データパケット（ＳＩＭＤ）処理システムとの両方に良好に使用できる。
【００１２】
本発明の他の特徴は、
複数のレジスタに使用されるデータ値を記憶するステップと、
前記複数のレジスタに記憶された１つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであることを特徴とするデータを処理する方法である。
【発明を実施するための最良の形態】
【００１３】
添付図面を参照して、一例として挙げられている本発明の実施形態について説明する。
【００１４】
図１は、レジスタ・バンク４と、乗算器６と、シフタ８と、加算機１０とを有する集積回路の形にすることができるデータ処理システムの概略を示す。レジスタ・バンク４と、乗算器６と、シフタ８と、加算機１０とは、命令デコーダ１２によって生成された制御信号で制御された所望のデータ処理動作を実行する処理ロジックを形成するとみなすことができる。命令デコーダ１２は、それ自体で、命令パイプライン１４にロードされたプログラム命令に応答する。図１のデータ処理システムは、通常、遙かに多くの構成要素を有していることが認められるが、それらは明瞭な記載とするために省略されている。動作としては、プログラム命令が命令パイプライン１４によって取り出されるとともに、それらが実行段階に達するとき、所望のデータ処理動作を実行するように処理ロジック４，６，８，１０の各種構成要素を設定する制御信号を生成するために、命令パイプライン１４が命令デコーダ１２によって使用される。前記処理ロジックは、通常、図１に示す簡素な乗算と、シフトと、加算との動作以外の処理動作を提供するために、さらに多くの構成要素を有している。
【００１５】
図２は、図１のデータ処理システム２でサポートされるシフトおよび挿入命令のいくつかの例の構文の概略を示す。左シフトおよび挿入命令ＳＬＩは、宛先レジスタdestを指定するレジスタ領域と、ソースレジスタｓｒｃを指定するレジスタ領域と、即値＃immを指定する領域とを有する。前記ソースレジスタは、シフトされるデータ値であって、変更されない宛先レジスタの中のいくつかのビットとともに宛先レジスタの中に挿入されるデータ値を有している。即値＃immは、挿入が実行される前にソースレジスタ値に適用されるシフト数を指定するとともに、また、以下でさらに説明するように挿入が実行される有効位置を指定する。
【００１６】
図２は、上記命令の右シフト変形（variant）、すなわちＳＲＩ命令を示している。また、それらは、シフト値が第２ソースレジスタｓｒｃ２で指定されている左シフト命令の変形を示している。
【００１７】
図１に示されている命令の構文および厳密形式は一例にすぎないとともに、本技術の異なる実施形態は大幅に変更された命令表現および構文を使用できることが理解される。
【００１８】
図３は、シフトおよび挿入命令の一例を示す。レジスタ１６は、ソース値を有している。このソース値は、ピクセル値などのデータ部分１８を有している。データ部分１８以外のレジスタ１６の部分は、有意義なものは何も示さないものでもよく、または、破棄する所望のデータ値の少数部分でもよい。
【００１９】
レジスタ１６の値は、本例の条件ではＳＲＩ命令関係において即値領域＃ｉmmによって特定された数だけ右シフトされる。前記レジスタの左側端で、シフトされたビットが生成されたシフト値の中に挿入される。これは、通常のシフト動作の振る舞いである。
【００２０】
宛先値は、レジスタ２０で保持されるとともに、前記シフト値におけるシフトされたビット以外の部分は、宛先値に初期に格納された対応ビットに置き換えられてこの宛先値に書き込まれている。宛先値２０の中の前記ビットは、置換されず且つ変更されていないシフト値の中の前記シフトされたビットに一致する。最終結果値は、そのオリジナル・ビットをそれらの対応位置で置換したシフト値からの挿入ビットとともに、オリジナルの宛先値を有する。本例では、シフト値からデータ部分１８のみを除くビット、すなわちビットＧおよびＨが、前記結果値の中に挿入されていることが示されている。特筆すべきは、それらの不要ビットは、要望どおり、続くシフトおよび挿入動作の追加(further)ビットによって上書きされることができる。
【００２１】
図４は、シフトおよび挿入命令がどのように実行できるかについてのハードウェア表現の概略を示す。本例では、ソースレジスタ２２は自身の値を左シフタ２４に供給する。当然のことながら、前記命令の右シフト変化の代わりに、右シフト回路が使用される。本例では、シフト量が＃4の即値によって指定される。左シフタ２４は、最も右側の４つのビット位置について４つのシフト・ゼロ値としたシフト値２６を生成する。シフト値２６の生成と並行して、マスク値が全て１となっている開始マスク値２８を取ることによって生成されるとともに、これは、同じシフト対象とされており、それ自身左シフタ３０とともにソース値２２に適用される。前記マスク値の中のシフトされた値は、またゼロであるとともに、これがシフトマスク３２になる。そこで、前記シフトマスク３２は、マルチビット・マルチプレクサ３４に供給されるマルチビット制御信号として使用できる。マルチビット・マルチプレクサ３４は、結果値３８を供給するために、シフト値２６からのビットまたは宛先値３６からのビットを選択する。
【００２２】
図５は、１６ビット結果値の構成要素である赤と、緑と、青のピクセル値のスカラ圧縮動作を示す。第１動作は、５ビット位置のシフト量の右シフトおよび挿入命令を使用して、赤および緑の構成要素値で実行する。これは、前記５ビットの赤構成要素Ｒ５をその結果の中に残すが、その結果における残りの上に緑構成要素Ｇ６を書き込む。第２命令は、組み合わされた赤および緑構成要素を取り出すとともに、青構成要素Ｂ５が既に挿入されている緑構成要素Ｇ６の終端に隣接し、且つ、１６ビット結果値における残りの位置に補充するように、１１ビット位置のシフト量でシフトおよび挿入命令を実行することで青構成要素Ｂ５をそれに挿入する。
【００２３】
図６は、図５に示すような圧縮動作と同一タイプを示すが、この場合は単一命令多重データ（ＳＭＩＤ）システムで実行される。同一のシフトおよび挿入動作が、右シフトおよび挿入命令を２つのＳＩＤＭで並列に使用して、４セットのピクセル値を組み合わせて圧縮することを可能にするために、ＳＩＭＤシステムの内部で各データ列に別々に実行されることが理解される。
【図面の簡単な説明】
【００２４】
【図１】本技術を利用可能なタイプのデータ処理システムの概略を示す。
【図２】本技術の一例に係る３つの異なるシフトおよび挿入(shift-and-insert)命令の構文(syntax)の概略を示す。
【図３】シフトおよび挿入命令の動作の概略を示す。
【図４】シフトおよび挿入動作を実行するハードウエア構成の概略を示す。
【図５】スカラ処理システムにおけるピクセル値圧縮(packing)動作の一例を示す。
【図６】単一命令多重データシステムにおけるピクセル圧縮動作の概略を示す。
【符号の説明】
【００２５】
２  データ処理システム
４  レジスタ・バンク
６  乗算器
８  シフタ
１０  加算機
１２  命令デコーダ
１４  命令パイプライン
１６  レジスタ
１８  データ部分
２０  レジスタ（宛先値）
２２  ソースレジスタ
２４  左シフタ
２６  シフト値
２８  開始マスク値
３０  左シフタ
３２  シフトマスク
３４  マルチビット・マルチプレクサ
３６  宛先値
３８  結果値
【図１】
2007528545.tif 000003
【図２】
2007528545.tif 000004
【図３】
2007528545.tif 000005
【図４】
2007528545.tif 000006
【図５】
2007528545.tif 000007
【図６】
2007528545.tif 000008
【手続補正書】
【提出日】平成18年7月3日(2006.7.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
使用されるデータ値を記憶する動作が可能な複数のレジスタと、
前記複数のレジスタに記憶された１つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段(6,8,10)と、
プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
前記命令デコーダ(12)は、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令(SLI,SRI)に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタ(16)に記憶された第１データ値(18)をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ(20)内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであり、
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンク(4)のなかからレジスタを指定するレジスタ指定領域を有し、さらに、
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンク(4)のなかからレジスタを指定するレジスタ指定領域を有することを特徴とするデータ処理装置。
【請求項２】
前記シフトおよび挿入命令は、Ｎビット位置の前記シフト量を指定する即値を有する請求項１に記載の装置。
【請求項３】
前記シフトおよび挿入命令は、宛先(destination)レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域（宛先）を有する請求項１または２に記載の装置。
【請求項４】
前記宛先レジスタについての前記レジスタ指定領域は、前記第１レジスタおよび第２レジスタのいずれか一つに割り当てられる請求項３に記載の装置。
【請求項５】
前記第１データ値は、右シフトされる請求項１から４のいずれか一項に記載の装置。
【請求項６】
前記第１データ値は、左シフトされる請求項１から４のいずれか一項に記載の装置。
【請求項７】
前記第１データ値および前記第２データ値は、同一のビット数をもっている請求項１から６のいずれか一項に記載の装置。
【請求項８】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第１データ値をシフトする動作が可能である請求項１から７のいずれか一項に記載の装置。
【請求項９】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第２データ値の中のいずれかのビットと、変更されていない前記第２データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項１から８のいずれか一項に記載の装置。
【請求項１０】
前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第１レジスタおよび第２レジスタは、それぞれ第１単一命令多重データ・レジスタおよび第２単一命令多重データ・レジスタの一部分であり、
前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項１から９のいずれか一項に記載の装置。
【請求項１１】
前記処理ロジック手段は、スカラ処理ロジック手段である請求項１から９のいずれか一項に記載の装置。
【請求項１２】
複数のレジスタに使用されるデータ値を記憶するステップと、
前記複数のレジスタに記憶された１つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであり、
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有し、さらに、
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有することを特徴とするデータを処理する方法。
【請求項１３】
前記シフトおよび挿入命令は、Ｎビット位置の前記シフト量を指定する即値を有する請求項１２に記載の方法。
【請求項１４】
前記シフトおよび挿入命令は、宛先レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項１２または１３に記載の方法。
【請求項１５】
前記宛先レジスタについての前記レジスタ指定領域は、前記第１レジスタおよび第２レジスタのいずれか一つに割り当てられる請求項１４に記載の方法。
【請求項１６】
前記第１データ値は、右シフトされる請求項１２から１５のいずれか一項に記載の方法。
【請求項１７】
前記第１データ値は、左シフトされる請求項１２から１５のいずれか一項に記載の方法。
【請求項１８】
前記第１データ値および前記第２データ値は、同一のビット数をもっている請求項１２から１７のいずれか一項に記載の方法。
【請求項１９】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第１データ値をシフトする動作が可能である請求項１２から１８のいずれか一項に記載の方法。
【請求項２０】
前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第２データ値の中のいずれかのビットと、変更されていない前記第２データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項１２から１９のいずれか一項に記載の方法。
【請求項２１】
前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第１レジスタおよび第２レジスタは、それぞれ第１単一命令多重データ・レジスタおよび第２単一命令多重データ・レジスタの一部分であり、前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項１２から２０のいずれか一項に記載の方法。
【請求項２２】
前記処理ロジック手段は、スカラ処理ロジック手段である請求項１２から２１のいずれか一項に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
そのようなデータ圧縮を実現するために、一つの実現可能な解決手段は、宛先レジスタに挿入されるソースレジスタの中のビット領域の長さと、前記挿入されるビット領域についての前記宛先レジスタの中の位置と、の両方を指定するプログラム命令を具備することである。そのような命令は、通常、ソースレジスタと、宛先レジスタと、ビット領域長と、ビット領域挿入位置とを指定しなければならない。この手法では、１つの命令の中で４つの別々のパラメータを指定しなければならず、前記命令の中の利用可能な命令ビット・スペースに、不都合に多くの要求項目を配置するとともに、そのような命令はそれらが消費する前記命令ビット・スペースに関して不利となる。
US-A-4,569,016は、ホスト基本命令セット・コンピュータシステムの１つの動作マシンサイクルにおいて、完全なシフトと、組合せ(merge)と、挿入と、ビット位置合わせとの機能を高速かつ効率的に実行するためのメカニズムを開示している。一般に、その回路は、マスト(mast)の制御下でリングシフトを実行する。さらに、前記回路は、１つのマシンサイクルにおいて実行可能な回転と、マスクと、組合せとの機能を実質的に並列に組み合わせる。さらに、前記回路は、マスク命令と共に、有効ビットと、桁数と、ビット回転とを提供する。前記マスク命令は、プレシフトとノーマライゼーションとの機能を実行することに加えて、１０進数パッキング(packing)とアンパッキングとの機能のための基本動作にも特に有効である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００４
【補正方法】変更
【補正の内容】
【０００４】
本発明は、一つの特徴として、
使用されるデータ値を記憶する動作が可能な複数のレジスタと、
前記複数のレジスタに記憶された１つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段と、
プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであり、
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有し、さらに、
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有することを特徴とするデータ処理装置
を提供する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
また、宛先レジスタ指定領域が（第１レジスタまたは第２レジスタの一つと任意に共有されるように）使用できる。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１２
【補正方法】変更
【補正の内容】
【００１２】
本発明の他の特徴は、
複数のレジスタに使用されるデータ値を記憶するステップと、
前記複数のレジスタに記憶された１つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Ｎシフトされたビットを有するシフト値を形成するために、Ｎビット位置(positions)のシフト量で、第１レジスタに記憶された第１データ値をシフトするとともに、
前記Ｎシフトされたビットに対応する第２レジスタ内の第２データ値内のビットは変更せずに、前記第２レジスタ内の第２データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Ｎシフトされたビット以外を挿入することによって形成されるものであり、
前記Ｎは、複数の異なるゼロでない値の一つであり、
前記シフトおよび挿入命令は、前記第１レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有し、さらに、
前記シフトおよび挿入命令は、前記第２レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有することを特徴とするデータを処理する方法である。
【国際調査報告】
2007528545.tif 000009
2007528545.tif 000010