JP2007528545A - データ・ワードの中へビットを挿入する装置および方法 - Google Patents

データ・ワードの中へビットを挿入する装置および方法 Download PDF

Info

Publication number
JP2007528545A
JP2007528545A JP2007502375A JP2007502375A JP2007528545A JP 2007528545 A JP2007528545 A JP 2007528545A JP 2007502375 A JP2007502375 A JP 2007502375A JP 2007502375 A JP2007502375 A JP 2007502375A JP 2007528545 A JP2007528545 A JP 2007528545A
Authority
JP
Japan
Prior art keywords
register
shift
value
data
logic means
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007502375A
Other languages
English (en)
Inventor
シモン・アンドリュー・フォード
ポール・マシュー・カーペンター
Original Assignee
アーム・リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2007528545A publication Critical patent/JP2007528545A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30018Bit or string instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • G06F9/30038Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Executing Machine-Instructions (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

データ処理システム2は、シフトおよび挿入命令SLI,SRIの使用を提供する。シフトおよび挿入命令SLI,SRIは、指定されたシフト量でソースデータ値をシフトすること、さらに、シフト値におけるシフトされたビット以外のビットを宛先値の中に挿入することをさせる。ここで、その宛先値の残りのビットは変更されない。

Description

本発明は、データ処理システムに関するものである。特に、本発明は、プログラム制御下でデータ・ワードの中にビットの挿入をすることに関するものである。
1つのデータ・ワードにおける複数のビットの領域を圧縮する(pack together)データ処理システムが知られている。例えば、16ビットデータ・ワードの中で、5ビット長のもの2つと6ビット長のもの1つとで、それぞれ赤と緑と青の値を示す3色の構成要素値について所望の圧縮が可能である。よくある事例では、異なる構成要素値が、別々に処理されるとともに、それらの大きさが別々に計算される。そのような計算の後に、別々の構成要素は、よりコンパクトな形で記憶すること、および、画素ごとに基づいてより容易に操作することが可能となるように、1つのデータ・ワードの中で合わせて組み立てる必要がある。
そのようなデータ圧縮を実現するために、一つの実現可能な解決手段は、宛先レジスタに挿入されるソースレジスタの中のビット領域の長さと、前記挿入されるビット領域についての前記宛先レジスタの中の位置と、の両方を指定するプログラム命令を具備することである。そのような命令は、通常、ソースレジスタと、宛先レジスタと、ビット領域長と、ビット領域挿入位置とを指定しなければならない。この手法では、1つの命令の中で4つの別々のパラメータを指定しなければならず、前記命令の中の利用可能な命令ビット・スペースに、不都合に多くの要求項目を配置するとともに、そのような命令はそれらが消費する前記命令ビット・スペースに関して不利となる。
本発明は、一つの特徴として、
使用されるデータ値を記憶する動作が可能な複数のレジスタと、
前記複数のレジスタに記憶された1つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段と、
プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Nシフトされたビットを有するシフト値を形成するために、Nビット位置(positions)のシフト量で、第1レジスタに記憶された第1データ値をシフトするとともに、
前記Nシフトされたビットに対応する第2レジスタ内の第2データ値内のビットは変更せずに、前記第2レジスタ内の第2データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Nシフトされたビット以外を挿入することによって形成されるものであり、
前記Nは、複数の異なるゼロでない値の一つであることを特徴とするデータ処理装置
を提供する。
本発明は、そのような命令を使用することが必要な多くの場合、前記ビット領域長とビット領域位置とを別々に指定可能な十分な柔軟性は必要ない、ことを容認する。その代わり、ソース値に適用されるシフト量を指定する1つのパラメータが、宛先値に書かれている前記ソース値のビットのスタート位置を制御する。前記宛先値に書かれたビットは、前記命令にかかるシフト方向に依存して、前記スタート位置から前記宛先値の適当な終端までに渡る。おそらく、最終的に必要とされるものよりも多くのビットが挿入される。しかしながら、本技術は、そのような命令が実行される多数の事例の大部分で、最終的な圧縮データ値が要求通りの正しいビットを具備するように、1つの命令の中に書かれた余分なビットが次の命令中の所望データに上書きされる、ことを容認する。その結果、動作の圧縮タイプ、または他のビットの組立操作は、命令が好適に小さい命令ビットスペースの要件となることを達成できる。当然のことながら、上記本発明の表現は、シフトおよび挿入命令のもたらす結果が、特定のシフト動作と特定の挿入動作とで生成される結果値を持っていることを条件としている。当然のことながら、結果値を生成するために使用された実際の手段は、シフトおよび挿入が実行されるようなものと同様なものに、変えることができる。そのような変形手段および変形ステップは、本技術に包含されている。前記シフトおよび挿入ステップは、どのように所望の最終結果が入力に関連付けられるか、を表現する一手法であるが、入力と出力間の同一関係が様々な異なる手法で達成できるとともに表現できる。これらの代替手段は、本技術の中に包含されている。
前記シフト量は、前記命令の中で指定されたレジスタの中に記憶された値により指定できる。または、前記シフト量は、代わりにおよび望ましくは、シフトおよび挿入命令自体の中に符号化された即値により指定できる。
第1および第2レジスタは、両方がレジスタ・バンクのレジスタに対して、ソースレジスタ指定領域によって好適に指定される。また、宛先レジスタ指定領域が(第1レジスタまたは第2レジスタの一つと任意に共有されるように)使用できる。
当然のことながら、本技術の前記シフトは、状況と圧縮またはビット挿入の所望形式とによって、右シフトまたは左シフトのいずれかとすることができる。
好適実施形態では第1データ値と第2データ値とが同一数のビットを持つものの、第1データ値と第2データ値とが、異なるビット長を持つことができるとともに、異なる長さのレジスタに記憶されるようにすることが可能である。
上記のように、好ましい方法は、第1値のシフトを使用すること、および、シフトデータ値の中の対応するビットに置換される第2データ値の中のビットと、変更されていない前記第2データ値の中のビットと、を選択するマスク値を形成することであるが、上記設定のような入力と出力との関係は、様々な異なる方法で実行できることが理解される。このマスク値は、開始マスクのシフトによって、または、マスクを直接形成する命令の復号化のような代替手段によって、良好に形成できる。
本技術は、スカラ処理システムと単一命令多重データパケット(SIMD)処理システムとの両方に良好に使用できる。
本発明の他の特徴は、
複数のレジスタに使用されるデータ値を記憶するステップと、
前記複数のレジスタに記憶された1つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
前記命令デコーダは、
所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
前記所定の結果値は、
Nシフトされたビットを有するシフト値を形成するために、Nビット位置(positions)のシフト量で、第1レジスタに記憶された第1データ値をシフトするとともに、
前記Nシフトされたビットに対応する第2レジスタ内の第2データ値内のビットは変更せずに、前記第2レジスタ内の第2データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Nシフトされたビット以外を挿入することによって形成されるものであり、
前記Nは、複数の異なるゼロでない値の一つであることを特徴とするデータを処理する方法である。
添付図面を参照して、一例として挙げられている本発明の実施形態について説明する。
図1は、レジスタ・バンク4と、乗算器6と、シフタ8と、加算機10とを有する集積回路の形にすることができるデータ処理システムの概略を示す。レジスタ・バンク4と、乗算器6と、シフタ8と、加算機10とは、命令デコーダ12によって生成された制御信号で制御された所望のデータ処理動作を実行する処理ロジックを形成するとみなすことができる。命令デコーダ12は、それ自体で、命令パイプライン14にロードされたプログラム命令に応答する。図1のデータ処理システムは、通常、遙かに多くの構成要素を有していることが認められるが、それらは明瞭な記載とするために省略されている。動作としては、プログラム命令が命令パイプライン14によって取り出されるとともに、それらが実行段階に達するとき、所望のデータ処理動作を実行するように処理ロジック4,6,8,10の各種構成要素を設定する制御信号を生成するために、命令パイプライン14が命令デコーダ12によって使用される。前記処理ロジックは、通常、図1に示す簡素な乗算と、シフトと、加算との動作以外の処理動作を提供するために、さらに多くの構成要素を有している。
図2は、図1のデータ処理システム2でサポートされるシフトおよび挿入命令のいくつかの例の構文の概略を示す。左シフトおよび挿入命令SLIは、宛先レジスタdestを指定するレジスタ領域と、ソースレジスタsrcを指定するレジスタ領域と、即値#immを指定する領域とを有する。前記ソースレジスタは、シフトされるデータ値であって、変更されない宛先レジスタの中のいくつかのビットとともに宛先レジスタの中に挿入されるデータ値を有している。即値#immは、挿入が実行される前にソースレジスタ値に適用されるシフト数を指定するとともに、また、以下でさらに説明するように挿入が実行される有効位置を指定する。
図2は、上記命令の右シフト変形(variant)、すなわちSRI命令を示している。また、それらは、シフト値が第2ソースレジスタsrc2で指定されている左シフト命令の変形を示している。
図1に示されている命令の構文および厳密形式は一例にすぎないとともに、本技術の異なる実施形態は大幅に変更された命令表現および構文を使用できることが理解される。
図3は、シフトおよび挿入命令の一例を示す。レジスタ16は、ソース値を有している。このソース値は、ピクセル値などのデータ部分18を有している。データ部分18以外のレジスタ16の部分は、有意義なものは何も示さないものでもよく、または、破棄する所望のデータ値の少数部分でもよい。
レジスタ16の値は、本例の条件ではSRI命令関係において即値領域#immによって特定された数だけ右シフトされる。前記レジスタの左側端で、シフトされたビットが生成されたシフト値の中に挿入される。これは、通常のシフト動作の振る舞いである。
宛先値は、レジスタ20で保持されるとともに、前記シフト値におけるシフトされたビット以外の部分は、宛先値に初期に格納された対応ビットに置き換えられてこの宛先値に書き込まれている。宛先値20の中の前記ビットは、置換されず且つ変更されていないシフト値の中の前記シフトされたビットに一致する。最終結果値は、そのオリジナル・ビットをそれらの対応位置で置換したシフト値からの挿入ビットとともに、オリジナルの宛先値を有する。本例では、シフト値からデータ部分18のみを除くビット、すなわちビットGおよびHが、前記結果値の中に挿入されていることが示されている。特筆すべきは、それらの不要ビットは、要望どおり、続くシフトおよび挿入動作の追加(further)ビットによって上書きされることができる。
図4は、シフトおよび挿入命令がどのように実行できるかについてのハードウェア表現の概略を示す。本例では、ソースレジスタ22は自身の値を左シフタ24に供給する。当然のことながら、前記命令の右シフト変化の代わりに、右シフト回路が使用される。本例では、シフト量が#4の即値によって指定される。左シフタ24は、最も右側の4つのビット位置について4つのシフト・ゼロ値としたシフト値26を生成する。シフト値26の生成と並行して、マスク値が全て1となっている開始マスク値28を取ることによって生成されるとともに、これは、同じシフト対象とされており、それ自身左シフタ30とともにソース値22に適用される。前記マスク値の中のシフトされた値は、またゼロであるとともに、これがシフトマスク32になる。そこで、前記シフトマスク32は、マルチビット・マルチプレクサ34に供給されるマルチビット制御信号として使用できる。マルチビット・マルチプレクサ34は、結果値38を供給するために、シフト値26からのビットまたは宛先値36からのビットを選択する。
図5は、16ビット結果値の構成要素である赤と、緑と、青のピクセル値のスカラ圧縮動作を示す。第1動作は、5ビット位置のシフト量の右シフトおよび挿入命令を使用して、赤および緑の構成要素値で実行する。これは、前記5ビットの赤構成要素R5をその結果の中に残すが、その結果における残りの上に緑構成要素G6を書き込む。第2命令は、組み合わされた赤および緑構成要素を取り出すとともに、青構成要素B5が既に挿入されている緑構成要素G6の終端に隣接し、且つ、16ビット結果値における残りの位置に補充するように、11ビット位置のシフト量でシフトおよび挿入命令を実行することで青構成要素B5をそれに挿入する。
図6は、図5に示すような圧縮動作と同一タイプを示すが、この場合は単一命令多重データ(SMID)システムで実行される。同一のシフトおよび挿入動作が、右シフトおよび挿入命令を2つのSIDMで並列に使用して、4セットのピクセル値を組み合わせて圧縮することを可能にするために、SIMDシステムの内部で各データ列に別々に実行されることが理解される。
本技術を利用可能なタイプのデータ処理システムの概略を示す。 本技術の一例に係る3つの異なるシフトおよび挿入(shift-and-insert)命令の構文(syntax)の概略を示す。 シフトおよび挿入命令の動作の概略を示す。 シフトおよび挿入動作を実行するハードウエア構成の概略を示す。 スカラ処理システムにおけるピクセル値圧縮(packing)動作の一例を示す。 単一命令多重データシステムにおけるピクセル圧縮動作の概略を示す。
符号の説明
2 データ処理システム
4 レジスタ・バンク
6 乗算器
8 シフタ
10 加算機
12 命令デコーダ
14 命令パイプライン
16 レジスタ
18 データ部分
20 レジスタ(宛先値)
22 ソースレジスタ
24 左シフタ
26 シフト値
28 開始マスク値
30 左シフタ
32 シフトマスク
34 マルチビット・マルチプレクサ
36 宛先値
38 結果値

Claims (26)

  1. 使用されるデータ値を記憶する動作が可能な複数のレジスタと、
    前記複数のレジスタに記憶された1つ以上のデータ値についてデータ処理動作を実行することが可能な処理ロジック手段と、
    プログラム命令によって指定されたデータ処理動作を実行するために、前記処理ロジック手段を制御する前記プログラム命令に応答する命令デコーダと、を有し、
    前記命令デコーダは、
    所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
    前記所定の結果値は、
    Nシフトされたビットを有するシフト値を形成するために、Nビット位置(positions)のシフト量で、第1レジスタに記憶された第1データ値をシフトするとともに、
    前記Nシフトされたビットに対応する第2レジスタ内の第2データ値内のビットは変更せずに、前記第2レジスタ内の第2データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Nシフトされたビット以外を挿入することによって形成されるものであり、
    前記Nは、複数の異なるゼロでない値の一つであることを特徴とするデータ処理装置。
  2. 前記シフトおよび挿入命令は、Nビット位置の前記シフト量を指定する即値を有する請求項1に記載の装置。
  3. 前記シフトおよび挿入命令は、前記第1レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項1および2のいずれか一項に記載の装置。
  4. 前記シフトおよび挿入命令は、前記第2レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項1、2および3のいずれか一項に記載の装置。
  5. 前記シフトおよび挿入命令は、宛先(destination)レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項1から4のいずれか一項に記載の装置。
  6. 前記宛先レジスタについての前記レジスタ指定領域は、前記第1レジスタおよび第2レジスタのいずれか一つに割り当てられる請求項5に記載の装置。
  7. 前記第1データ値は、右シフトされる請求項1から6のいずれか一項に記載の装置。
  8. 前記第1データ値は、左シフトされる請求項1から6のいずれか一項に記載の装置。
  9. 前記第1データ値および前記第2データ値は、同一のビット数をもっている請求項1から8のいずれか一項に記載の装置。
  10. 前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第1データ値をシフトする動作が可能である請求項1から9のいずれか一項に記載の装置。
  11. 前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第2データ値の中のいずれかのビットと、変更されていない前記第2データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項1から10のいずれか一項に記載の装置。
  12. 前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第1レジスタおよび第2レジスタは、それぞれ第1単一命令多重データ・レジスタおよび第2単一命令多重データ・レジスタの一部分であり、
    前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項1から11のいずれか一項に記載の装置。
  13. 前記処理ロジック手段は、スカラ処理ロジック手段である請求項1から11のいずれか一項に記載の装置。
  14. 複数のレジスタに使用されるデータ値を記憶するステップと、
    前記複数のレジスタに記憶された1つ以上のデータ値について処理ロジック手段を使用してデータ処理動作を実行するステップと、
    プログラム命令に対応して、前記プログラム命令で指定されたデータ処理動作を実行するために前記処理ロジック手段を制御する命令デコーダを使用するステップとを有し、
    前記命令デコーダは、
    所定の結果値を持つ結果を生成するシフトおよび挿入データ処理動作を実行するために、前記処理ロジック手段を制御するシフトおよび挿入命令に応答し、
    前記所定の結果値は、
    Nシフトされたビットを有するシフト値を形成するために、Nビット位置(positions)のシフト量で、第1レジスタに記憶された第1データ値をシフトするとともに、
    前記Nシフトされたビットに対応する第2レジスタ内の第2データ値内のビットは変更せずに、前記第2レジスタ内の第2データ値における対応するビット位置に、前記シフト値の各ビットにおける前記Nシフトされたビット以外を挿入することによって形成されるものであり、
    前記Nは、複数の異なるゼロでない値の一つであることを特徴とするデータを処理する方法。
  15. 前記シフトおよび挿入命令は、Nビット位置の前記シフト量を指定する即値を有する請求項14に記載の方法。
  16. 前記シフトおよび挿入命令は、前記第1レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項14および15のいずれか一項に記載の方法。
  17. 前記シフトおよび挿入命令は、前記第2レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項14、15および16のいずれか一項に記載の方法。
  18. 前記シフトおよび挿入命令は、宛先レジスタとして使用するために、レジスタ・バンクのなかからレジスタを指定するレジスタ指定領域を有する請求項14から17のいずれか一項に記載の方法。
  19. 前記宛先レジスタについての前記レジスタ指定領域は、前記第1レジスタおよび第2レジスタのいずれか一つに割り当てられる請求項18に記載の方法。
  20. 前記第1データ値は、右シフトされる請求項13から17のいずれか一項に記載の方法。
  21. 前記第1データ値は、左シフトされる請求項14から17のいずれか一項に記載の方法。
  22. 前記第1データ値および前記第2データ値は、同一のビット数をもっている請求項14から19のいずれか一項に記載の方法。
  23. 前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記第1データ値をシフトする動作が可能である請求項14から20のいずれか一項に記載の方法。
  24. 前記処理ロジック手段は、前記シフトおよび挿入命令に対応して、前記シフトデータ値の中の対応するビットに置換された前記第2データ値の中のいずれかのビットと、変更されていない前記第2データ値の中のいずれかのビットと、を選択するためのマスク値を形成する動作が可能である請求項14から21のいずれか一項に記載の方法。
  25. 前記処理ロジック手段は、単一命令多重データ処理をするロジック手段であるとともに、前記第1レジスタおよび第2レジスタは、それぞれ第1単一命令多重データ・レジスタおよび第2単一命令多重データ・レジスタの一部分であり、前記シフトおよび挿入命令は、各処理列における複数のシフトおよび挿入動作の並列な実行を制御する動作が可能である請求項14から22のいずれか一項に記載の方法。
  26. 前記処理ロジック手段は、スカラ処理ロジック手段である請求項14から22のいずれか一項に記載の方法。
JP2007502375A 2004-03-10 2004-08-03 データ・ワードの中へビットを挿入する装置および方法 Pending JP2007528545A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0405407A GB2411978B (en) 2004-03-10 2004-03-10 Inserting bits within a data word
PCT/GB2004/003343 WO2005088441A2 (en) 2004-03-10 2004-08-03 Inserting bits within a data word

Publications (1)

Publication Number Publication Date
JP2007528545A true JP2007528545A (ja) 2007-10-11

Family

ID=32117417

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007502375A Pending JP2007528545A (ja) 2004-03-10 2004-08-03 データ・ワードの中へビットを挿入する装置および方法

Country Status (11)

Country Link
US (1) US7350058B2 (ja)
EP (1) EP1723512A2 (ja)
JP (1) JP2007528545A (ja)
KR (1) KR100981998B1 (ja)
CN (1) CN100538624C (ja)
GB (1) GB2411978B (ja)
IL (1) IL177507A (ja)
MY (1) MY137200A (ja)
RU (1) RU2006135629A (ja)
TW (1) TWI322947B (ja)
WO (1) WO2005088441A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018521426A (ja) * 2015-07-31 2018-08-02 エイアールエム リミテッド スプライス演算を行うための装置および方法

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7529918B2 (en) * 2006-07-21 2009-05-05 Broadcom Corporation System and method for efficiently performing bit-field extraction and bit-field combination operations in a processor
JP4374363B2 (ja) * 2006-09-26 2009-12-02 Okiセミコンダクタ株式会社 ビットフィールド操作回路
GB2475653B (en) * 2007-03-12 2011-07-13 Advanced Risc Mach Ltd Select and insert instructions within data processing systems
EP2232361A1 (en) * 2007-12-05 2010-09-29 Sandbridge Technologies, Inc. Method and instruction set including register shifts and rotates for data processing
CN102348111A (zh) * 2010-07-30 2012-02-08 国家卫星气象中心 用于静止气象卫星数据广播的数据压缩结构识别码
US20120117360A1 (en) * 2010-11-09 2012-05-10 Texas Instruments Incorporated Dedicated instructions for variable length code insertion by a digital signal processor (dsp)
GB2485774A (en) 2010-11-23 2012-05-30 Advanced Risc Mach Ltd Processor instruction to extract a bit field from one operand and insert it into another with an option to sign or zero extend the field
US9823928B2 (en) * 2011-09-30 2017-11-21 Qualcomm Incorporated FIFO load instruction
CN111831335A (zh) * 2011-12-23 2020-10-27 英特尔公司 经改进的插入指令的装置和方法
US9411593B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Processors, methods, systems, and instructions to consolidate unmasked elements of operation masks
WO2014203034A1 (en) * 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Signal processing device and method of performing a pack-insert operation
CN104899522B (zh) * 2015-06-09 2018-01-30 网易(杭州)网络有限公司 一种数据处理方法及装置
US20170177350A1 (en) * 2015-12-18 2017-06-22 Intel Corporation Instructions and Logic for Set-Multiple-Vector-Elements Operations
US20170185402A1 (en) * 2015-12-23 2017-06-29 Intel Corporation Instructions and logic for bit field address and insertion
CN105892993B (zh) * 2016-03-28 2019-02-15 龙芯中科技术有限公司 基于提取插入操作的重组方法、装置及微处理器
CN110912562A (zh) * 2018-09-18 2020-03-24 深圳市茁壮网络股份有限公司 一种浮点数据处理方法、装置及存储介质
CN109891756B (zh) * 2019-01-31 2023-03-28 香港应用科技研究院有限公司 可重置分段可缩放移位器
US10831479B2 (en) * 2019-02-20 2020-11-10 International Business Machines Corporation Instruction to move data in a right-to-left direction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4023023A (en) * 1973-12-04 1977-05-10 Compagnie Internationale Pour L'informatique Field selection data operating device
JPS6014336A (ja) * 1983-06-30 1985-01-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 命令処理装置
JPH113226A (ja) * 1996-10-10 1999-01-06 Sun Microsyst Inc 統合グラフィックス機能を有するcpu用のビジュアル命令セット
JP2001134436A (ja) * 1999-10-29 2001-05-18 Texas Instr Inc <Ti> 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法
WO2003038601A1 (en) * 2001-10-29 2003-05-08 Intel Corporation Method and apparatus for parallel shift right merge of data

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US131030A (en) * 1872-09-03 Improvement in portable furnaces
US133682A (en) * 1872-12-03 Improvement in gates
US4876660A (en) 1987-03-20 1989-10-24 Bipolar Integrated Technology, Inc. Fixed-point multiplier-accumulator architecture
JPH0778735B2 (ja) 1988-12-05 1995-08-23 松下電器産業株式会社 キャッシュ装置と命令読出し装置
JPH05233281A (ja) 1992-02-21 1993-09-10 Toshiba Corp 電子計算機
US5408670A (en) 1992-12-18 1995-04-18 Xerox Corporation Performing arithmetic in parallel on composite operands with packed multi-bit components
US5481743A (en) 1993-09-30 1996-01-02 Apple Computer, Inc. Minimal instruction set computer architecture and multiple instruction issue method
US5881302A (en) 1994-05-31 1999-03-09 Nec Corporation Vector processing unit with reconfigurable data buffer
US6009508A (en) 1994-06-21 1999-12-28 Sgs-Thomson Microelectronics Limited System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis
GB9412434D0 (en) 1994-06-21 1994-08-10 Inmos Ltd Computer instruction compression
GB9412487D0 (en) 1994-06-22 1994-08-10 Inmos Ltd A computer system for executing branch instructions
US5761103A (en) 1995-03-08 1998-06-02 Texas Instruments Incorporated Left and right justification of single precision mantissa in a double precision rounding unit
GB9509983D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Replication of data
GB9509987D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9509988D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Matrix transposition
GB9509989D0 (en) 1995-05-17 1995-07-12 Sgs Thomson Microelectronics Manipulation of data
GB9513515D0 (en) 1995-07-03 1995-09-06 Sgs Thomson Microelectronics Expansion of data
GB9514695D0 (en) 1995-07-18 1995-09-13 Sgs Thomson Microelectronics Combining data values
GB9514684D0 (en) 1995-07-18 1995-09-13 Sgs Thomson Microelectronics An arithmetic unit
JP3526976B2 (ja) 1995-08-03 2004-05-17 株式会社日立製作所 プロセッサおよびデータ処理装置
US6295599B1 (en) 1995-08-16 2001-09-25 Microunity Systems Engineering System and method for providing a wide operand architecture
US5907865A (en) 1995-08-28 1999-05-25 Motorola, Inc. Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes
AU6905496A (en) 1995-09-01 1997-03-27 Philips Electronics North America Corporation Method and apparatus for custom operations of a processor
US6088783A (en) 1996-02-16 2000-07-11 Morton; Steven G DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word
US5937178A (en) 1996-02-13 1999-08-10 National Semiconductor Corporation Register file for registers with multiple addressable sizes using read-modify-write for register file update
US6009191A (en) * 1996-02-15 1999-12-28 Intel Corporation Computer implemented method for compressing 48-bit pixels to 16-bit pixels
US5808875A (en) 1996-03-29 1998-09-15 Intel Corporation Integrated circuit solder-rack interconnect module
US6058465A (en) 1996-08-19 2000-05-02 Nguyen; Le Trong Single-instruction-multiple-data processing in a multimedia signal processor
US5838984A (en) 1996-08-19 1998-11-17 Samsung Electronics Co., Ltd. Single-instruction-multiple-data processing using multiple banks of vector registers
US6173366B1 (en) 1996-12-02 2001-01-09 Compaq Computer Corp. Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage
US5893145A (en) 1996-12-02 1999-04-06 Compaq Computer Corp. System and method for routing operands within partitions of a source register to partitions within a destination register
US5909572A (en) 1996-12-02 1999-06-01 Compaq Computer Corp. System and method for conditionally moving an operand from a source register to a destination register
US5898896A (en) 1997-04-10 1999-04-27 International Business Machines Corporation Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems
US5973705A (en) 1997-04-24 1999-10-26 International Business Machines Corporation Geometry pipeline implemented on a SIMD machine
US6047304A (en) 1997-07-29 2000-04-04 Nortel Networks Corporation Method and apparatus for performing lane arithmetic to perform network processing
US6209017B1 (en) 1997-08-30 2001-03-27 Lg Electronics Inc. High speed digital signal processor
GB2329810B (en) 1997-09-29 2002-02-27 Science Res Foundation Generation and use of compressed image data
US5864703A (en) 1997-10-09 1999-01-26 Mips Technologies, Inc. Method for providing extended precision in SIMD vector arithmetic operations
US5933650A (en) 1997-10-09 1999-08-03 Mips Technologies, Inc. Alignment and ordering of vector elements for single instruction multiple data processing
US6223198B1 (en) 1998-08-14 2001-04-24 Advanced Micro Devices, Inc. Method and apparatus for multi-function arithmetic
US6085213A (en) 1997-10-23 2000-07-04 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products
US6144980A (en) 1998-01-28 2000-11-07 Advanced Micro Devices, Inc. Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication
US6038583A (en) 1997-10-23 2000-03-14 Advanced Micro Devices, Inc. Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products
US6269384B1 (en) 1998-03-27 2001-07-31 Advanced Micro Devices, Inc. Method and apparatus for rounding and normalizing results within a multiplier
US6223277B1 (en) 1997-11-21 2001-04-24 Texas Instruments Incorporated Data processing circuit with packed data structure capability
US6223320B1 (en) 1998-02-10 2001-04-24 International Business Machines Corporation Efficient CRC generation utilizing parallel table lookup operations
US6334176B1 (en) 1998-04-17 2001-12-25 Motorola, Inc. Method and apparatus for generating an alignment control vector
US6292888B1 (en) 1999-01-27 2001-09-18 Clearwater Networks, Inc. Register transfer unit for electronic processor
GB2352065B (en) 1999-07-14 2004-03-03 Element 14 Ltd A memory access system
US6408345B1 (en) 1999-07-15 2002-06-18 Texas Instruments Incorporated Superscalar memory transfer controller in multilevel memory organization
US6546480B1 (en) 1999-10-01 2003-04-08 Hitachi, Ltd. Instructions for arithmetic operations on vectored data
US6748521B1 (en) 2000-02-18 2004-06-08 Texas Instruments Incorporated Microprocessor with instruction for saturating and packing data
US7272622B2 (en) * 2001-10-29 2007-09-18 Intel Corporation Method and apparatus for parallel shift right merge of data

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4023023A (en) * 1973-12-04 1977-05-10 Compagnie Internationale Pour L'informatique Field selection data operating device
JPS6014336A (ja) * 1983-06-30 1985-01-24 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 命令処理装置
US4569016A (en) * 1983-06-30 1986-02-04 International Business Machines Corporation Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system
JPH113226A (ja) * 1996-10-10 1999-01-06 Sun Microsyst Inc 統合グラフィックス機能を有するcpu用のビジュアル命令セット
JP2001134436A (ja) * 1999-10-29 2001-05-18 Texas Instr Inc <Ti> 効率的な粒度のシフトとマージの一方または両方の命令をそなえたプロセッサの回路、システム及び方法
US6430684B1 (en) * 1999-10-29 2002-08-06 Texas Instruments Incorporated Processor circuits, systems, and methods with efficient granularity shift and/or merge instruction(s)
WO2003038601A1 (en) * 2001-10-29 2003-05-08 Intel Corporation Method and apparatus for parallel shift right merge of data
JP2005508043A (ja) * 2001-10-29 2005-03-24 インテル コーポレイション データの右方向平行シフトマージ方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018521426A (ja) * 2015-07-31 2018-08-02 エイアールエム リミテッド スプライス演算を行うための装置および方法
US12061906B2 (en) 2015-07-31 2024-08-13 Arm Limited Apparatus and method for performing a splice of vectors based on location and length data

Also Published As

Publication number Publication date
GB2411978B (en) 2007-04-04
MY137200A (en) 2009-01-30
EP1723512A2 (en) 2006-11-22
WO2005088441A2 (en) 2005-09-22
CN1926511A (zh) 2007-03-07
KR100981998B1 (ko) 2010-09-13
US7350058B2 (en) 2008-03-25
GB0405407D0 (en) 2004-04-21
GB2411978A (en) 2005-09-14
IL177507A0 (en) 2006-12-10
WO2005088441A3 (en) 2006-06-22
US20050204117A1 (en) 2005-09-15
KR20070028322A (ko) 2007-03-12
RU2006135629A (ru) 2008-04-20
TW200530838A (en) 2005-09-16
IL177507A (en) 2010-12-30
CN100538624C (zh) 2009-09-09
TWI322947B (en) 2010-04-01

Similar Documents

Publication Publication Date Title
JP2007528545A (ja) データ・ワードの中へビットを挿入する装置および方法
JP5047944B2 (ja) データアクセス及び置換ユニット
JP4708761B2 (ja) Simd処理における定数の生成
US9292298B2 (en) Data processing apparatus having SIMD processing circuitry
US6098087A (en) Method and apparatus for performing shift operations on packed data
US6438676B1 (en) Distance controlled concatenation of selected portions of elements of packed data
JP4374363B2 (ja) ビットフィールド操作回路
JP2008071130A (ja) Simd型マイクロプロセッサ
JP2005174295A (ja) Simdデータ処理における算術演算の実行のためのデータ処理装置及び方法
JP2007531133A (ja) 二重経路プロセッサの処理制御のための装置および方法
EP3329363B1 (en) Vector arithmethic instruction
JP2005332361A (ja) プログラム命令圧縮装置および方法
US20230325189A1 (en) Forming Constant Extensions in the Same Execute Packet in a VLIW Processor
JP2008513878A (ja) 機能単位が読み出しポートを共有するデータ処理回路
JP2004511039A5 (ja)
JP4686435B2 (ja) 演算装置
CN107851022B (zh) 向量长度查询指令
CN112182496A (zh) 用于矩阵乘法的数据处理方法及装置
KR102591988B1 (ko) 데이터 처리장치에서의 벡터 인터리빙
WO2012137428A1 (ja) データ処理装置、及びデータ処理方法
JP3837386B2 (ja) 情報処理装置
JP2006285721A (ja) 演算処理装置および演算処理方法
JP2002091929A (ja) Simd型並列処理装置
JP2007279983A (ja) 命令処理装置
JP5263497B2 (ja) 信号処理プロセッサ及び半導体装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100205

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100330

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100726

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100816

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20100910