JP6184426B2 - 終端文字を有する文字データのメモリ位置間でのコピーのための方法、システム、およびコンピュータ・プログラム(終端文字を有する文字データのメモリ位置間でのコピー) - Google Patents
終端文字を有する文字データのメモリ位置間でのコピーのための方法、システム、およびコンピュータ・プログラム(終端文字を有する文字データのメモリ位置間でのコピー) Download PDFInfo
- Publication number
- JP6184426B2 JP6184426B2 JP2014561550A JP2014561550A JP6184426B2 JP 6184426 B2 JP6184426 B2 JP 6184426B2 JP 2014561550 A JP2014561550 A JP 2014561550A JP 2014561550 A JP2014561550 A JP 2014561550A JP 6184426 B2 JP6184426 B2 JP 6184426B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- data
- memory
- vector
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 58
- 238000004590 computer program Methods 0.000 title claims description 21
- 239000013598 vector Substances 0.000 claims description 211
- 238000004891 communication Methods 0.000 claims description 9
- 238000003860 storage Methods 0.000 description 68
- 238000012545 processing Methods 0.000 description 49
- 230000006870 function Effects 0.000 description 32
- 230000007246 mechanism Effects 0.000 description 27
- 238000006073 displacement reaction Methods 0.000 description 22
- 238000013519 translation Methods 0.000 description 20
- 230000014616 translation Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 230000009471 action Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 7
- 230000000295 complement effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000001343 mnemonic effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012884 algebraic function Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000002250 progressing effect Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229920000638 styrene acrylonitrile Polymers 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/74—Selecting or encoding within a word the position of one or more bits having a specified value, e.g. most or least significant one or zero detection, priority encoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30021—Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Image Generation (AREA)
- Advance Control (AREA)
Description
1−あれば、命令の第2のベクトル・レジスタ指定に関する最上位ビット。
2−あれば、命令の第3のベクトル・レジスタ指定に関する最上位ビット。
3−あれば、命令の第4のベクトル・レジスタ指定に関する最上位ビット。
1−要素の不一致が検出され、V2内の要素はV3内の要素よりも小さい。
2−要素の不一致が検出され、V2内の要素はV3内の要素よりも大きい。
3−すべての要素が同等を比較し、ゼロ検索ビットが設定されている場合、第2のオペランド(または、別の実施形態では他のオペランド)内にゼロ要素は発見されなかった。
1−
2−
3−オペランド1は16未満である
0−バイト
1−ハーフワード
2−ワード
3〜15−予約済み
M5フィールドは以下の形式を有する。
・Result Type(RT):ゼロの場合、各結果要素はその要素上のすべての領域比較のマスクである。1の場合、バイト・インデックスは第1のオペランドのバイト7に記憶され、ゼロはすべての他の要素内に記憶される。
・Zero Search(ZS):1の場合、第2のオペランドの各要素もゼロと比較される。
・Condition Code Set(CC):ゼロの場合、条件コードは設定されず、未変更のままである。1の場合、条件コードは以下のセクションで指定されるように設定される。
以下のいずれも発生しない場合は、特別例外が認識され、他の処置は取られない。
1.M4フィールドが3〜15の値を含む。
2.M5フィールドのビット0がゼロでない。
結果として生じる条件コード:
CCフラグがゼロの場合、コードは未変更のままである。
CCフラグが1の場合、コードは以下のように設定される。
0 ZSビットが設定された場合、第2のオペランド内のゼロより下位のインデックス付けされた要素に一致がなかった。
1 第2のオペランドのいくつかの要素が、第3のオペランド内の少なくとも1つの要素と一致している。
2 第2のオペランドのすべての要素が、第3のオペランド内の少なくとも1つの要素と一致した。
3 第2のオペランド内のいずれの要素も、第3のオペランド内のいずれの要素と一致していない。
プログラム例外:
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたES値)
・トランザクション制約
拡張簡略記号:
0−バイト
1−ハーフワード
2−ワード
3〜15−予約済み
・予約済み:ビット0〜1は予約され、ゼロでなければならない。そうでない場合、指定例外が認識される。
・Zero Search(ZS):1の場合、第2のオペランドの各要素もゼロと比較される。
・Condition Code Set(CC):ゼロの場合、条件コードは未変更のままである。1の場合、条件コードは以下のセクションに指定されたように設定される。
特別条件
以下のいずれも発生しない場合は、特別例外が認識され、他の処置は取られない。
1.M4フィールドが3〜15の値を含む。
2.M5フィールドのビット0〜1がゼロでない。
結果として生じる条件コード:
M5フィールドのビット3が1に設定された場合、コードは以下のように設定される。
0 ゼロ比較ビットが設定される場合、比較は、任意の同等比較よりも小さいインデックスを備える要素内の第2のオペランド内にゼロ要素を検出した。
1 比較は、何らかの要素内の第2と第3のオペランド間に一致を検出した。ゼロ比較ビットが設定される場合、この一致は、ゼロ比較要素よりも小さいかまたは等しいインデックスを備える要素内で発生した。
2 ――
3 いかなる要素も同等を比較しなかった。
M5フィールドのビット3がゼロの場合、コードは未変更のままである。
プログラム例外:
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたES値)
・トランザクション制約
拡張簡略記号:
1.バイト・インデックスが、任意の要素サイズに関する第1のオペランド内に常に記憶される。たとえば、要素サイズがハーフワードに設定され、第2のインデックス付けされたハーフワードが等しく比較された場合、4のバイト・インデックスが記憶されたことになる。
2.第3のオペランドはゼロの値を伴う要素を含まないはずである。第3のオペランドがゼロを含み、これが、任意の他の同等比較の前に、第2のオペランド内のゼロ要素と一致する場合、ゼロ比較ビット設定にかかわらず、条件コード1が設定される。
0−バイト
1−ハーフワード
2−ワード
3〜15−予約済み
M5フィールドは以下の形式を有する。
・Zero Search(ZS):1の場合、第2のオペランドの各要素もゼロと比較される。
・Condition Code Set(CC):ゼロの場合、条件コードは設定されず、未変更のままである。1の場合、条件コードは以下のセクションに指定されたように設定される。
特別条件
以下のいずれも発生しない場合は、特別例外が認識され、他の処置は取られない。
1.M4フィールドが3〜15の値を含む。
2.M5フィールドのビット0〜1がゼロでない。
結果として生じる条件コード:
M5フィールドのビット3が1に設定された場合、コードは以下のように設定される。
0 ゼロ、比較ビットが設定される場合、比較は、任意の不等比較よりも下位のインデックス付けされた要素内の両方のオペランド内にゼロ要素を検出した。
1 要素不一致が検出され、VR2内の要素はVR3内の要素よりも小さい。
2 要素不一致が検出され、VR2内の要素はVR3内の要素よりも大きい。
3 すべての要素が同等を比較し、ゼロ比較ビットが設定された場合、第2のオペランド内にゼロ要素は見つからなかった。
M5フィールドのビット3がゼロの場合、コードは未変更のままである。
プログラム例外:
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたES値)
・トランザクション制約
拡張簡略記号:
・Equal(EQ):1の場合、同等に関する比較が実行される。
・Greater Than(GT):1の場合、大なり比較(greater than comparison)が実行される。
・Less Than(LT):1の場合、小なり比較が実行される。
・すべての他のビットは予約され、今後の互換性を保証するためにゼロのはずである。
0−バイト
1−ハーフワード
2−ワード
3〜15−予約済み
・Invert Result(IN):ゼロの場合、比較は制御ベクトル内の値のペアを用いて進行する。1の場合、範囲内の比較のペアの結果は逆転される。
・Result Type(RT):ゼロの場合、各結果要素はその要素上のすべての領域比較のマスクである。1の場合、インデックスは第1のオペランドのバイト7に記憶される。ゼロは残りのバイト内に記憶される。
・Zero Search(ZS):1の場合、第2のオペランドの各要素もゼロと比較される。
・Condition Code Set(CC):ゼロの場合、条件コードは設定されず、未変更のままである。1の場合、条件コードは以下のセクションで指定されるように設定される。
特別条件
以下のいずれも発生しない場合は、特別例外が認識され、他の処置は取られない。
1.M4フィールドが3〜15の値を含む。
結果として生じる条件コード:
0 ZS=1および、任意の比較より下位のインデックス付けされた要素内にゼロが見つかった場合
1 比較が見つかった
2 −−
3 比較は見つからず
プログラム例外
・ DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたES値)
・トランザクション制約
拡張簡略記号:
結果として生じる条件コード:
0 オペランド1は16
1 −−
2 −−
3 オペランド1は16未満
結果として生じる条件コード:
プログラム例外:
・ベクトル拡張機構がインストールされていない場合の演算
・指定
プログラミング留意点:LOADCOUNT TO BLOCK BOUNDARYは、ロードされたバイト数を決定するために、VECTOR LOAD TO BLOCK BOUNDARYと共に使用されることになるものと予測される。
ベクトル・レジスタ要素がダブルワードよりも小さい場合、要素は64ビット汎用レジスタ内で右揃えされ、ゼロが残りのビットを満たす。
第2のオペランド・アドレスはデータのアドレス指定に使用されず、代わりに、アドレスの右端12ビットが、第2のオペランド内の要素のインデックスを指定するために使用される。
M4フィールドは要素サイズ制御(ES)を指定する。ES制御は、ベクトル・レジスタ・オペランド内の要素のサイズを指定する。予約値が指定された場合、指定例外が認識される。
0−バイト
1−ハーフワード
2−ワード
3−ダブルワード
4〜15−予約済み未変更
結果として生じる条件コード:コードは未変更である。
プログラム例外:
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたES値)
・トランザクション制約
拡張簡略記号:
第1のオペランドは、ゼロ・インデックス付けされたバイト要素から始まり、第2のオペランドからのバイトでロードされる。境界条件に遭遇した場合、第1のオペランドの残りは予測不可能である。アクセス例外は、ロードされていないバイトでは認識されない。
VLBBに関する変位は、12ビットの符号なし整数として扱われる。
M3フィールドは、ロードするためのブロック境界サイズに関して、CPUに信号送信するために使用されるコードを指定する。予約値が指定された場合、指定例外が認識される。
結果として生じる条件コード:コードは未変更のままである。
プログラム例外:
・アクセス(フェッチ、オペランド2)
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・指定(予約されたブロック境界コード)
・トランザクション制約
プログラミング留意点:
1.ある環境において、データはブロック境界を超えてロードすることができる。しかしながらこれは、そのデータに関してアクセス例外がない場合にのみ発生することになる。
第1のオペランド内の128ビット値は、第2のオペランドによって指定された記憶位置に記憶される。VSTに関する変位は、12ビットの符号なし整数として扱われる。
結果として生じる条件コード:コードは未変更のままである。
プログラム例外:
・アクセス(記憶、オペランド2)
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・トランザクション制約
左から右へと進み、第1のオペランドからのバイトは第2のオペランド位置に記憶される。第3のオペランドを指定した汎用レジスタは、最高位のインデックス付けされたバイトを記憶することを表す値を含む32ビットの符号なし整数を含む。第3のオペランドがベクトルの最高位ビット・インデックスより大きいかまたは等しい値を含む場合、第1のオペランドのすべてのバイトが記憶される。
アクセス例外は、記憶されたバイトに関してのみ認識される。
VECTOR STORE WITH LENGTHに関する変位は、12ビットの符号なし整数として扱われる。
結果として生じる条件コード:条件コードは未変更のままである。
プログラム例外:
・アクセス(記憶、オペランド2)
・DXC FEを伴うデータ、ベクトル・レジスタ
・ベクトル拡張機構がインストールされていない場合の演算
・トランザクション制約
すべてのベクトル命令は、RXBとラベル表示された命令のビット36〜40にフィールドを有する。このフィールドは、すべてのベクトル・レジスタ指定オペランドに関する最上位ビットを含む。命令によって指定されないレジスタ指定に関するビットは予約され、ゼロに設定されるはずであるが、そうでない場合、プログラムは将来互換的に動作しない可能性がある。最上位ビットは5ビットのベクトル・レジスタ指定を作成するために、4ビットのレジスタ指定の左側に切り詰められる。
ビットは以下のように定義される。
0. 命令のビット8〜11内のベクトル・レジスタ指定に関する最上位ビット。
1. 命令のビット12〜15内のベクトル・レジスタ指定に関する最上位ビット。
2. 命令のビット16〜19内のベクトル・レジスタ指定に関する最上位ビット。
3. 命令のビット32〜35内のベクトル・レジスタ指定に関する最上位ビット。
ベクトル実行可能化制御
ベクトル・レジスタおよび命令は、制御レジスタ・ゼロ内のベクトル実行可能化制御(ビット46)およびAFPレジスタ制御(ビット45)の両方が1に設定された場合にのみ、使用可能である。ベクトル機構がインストールされ、実行可能化ビットが設定されずにベクトル命令が実行される場合、DXC FE 16進数を伴うデータ例外が認識される。ベクトル機構がインストールされていない場合、演算例外が認識される。
Claims (12)
- メモリと前記メモリと通信しているプロセッサを含むコンピュータ・システムにおいてデータのセットをコピーするための方法であって、
指定されたメモリのブロック内にあるデータをメモリから前記プロセッサ内のレジスタにロードするステップであって、前記データはコピーされることになるデータ・セットの少なくとも一部である、ロードするステップ、
前記レジスタ内にロードされたデータ量のカウントを取得するステップ、
前記レジスタ内にロードされた前記データに関する終端値をプロセッサによって決定するステップであって、前記決定するステップは、前記レジスタが終端文字を含むかどうかを判別するために前記データをチェックすること、前記終端文字を含む前記レジスタに基づいて前記終端値を前記終端文字の位置に設定すること、および、前記終端文字を含まない前記レジスタに基づいて前記終端値を事前に指定された値に設定することを含む、決定するステップ、
前記レジスタ内にロードされた前記データを選択された位置でメモリ内に記憶するステップ、
前記カウントおよび前記終端値のうちの少なくとも1つに基づいて、コピーされることになる前記データ・セット内に追加のデータが存在するかどうかをチェックするステップ、および、
追加のデータがコピーされることを示す前記チェックに基づいて、前記追加のデータをコピーするステップ、
を含む、方法。 - 前記チェックするステップは、
前記終端文字が見つかったかどうかを判別するステップ、
前記終端文字が見つかったことを示す前記判別に基づいて、追加のデータがコピーされることになるかどうかを判別するために、前記カウントと前記終端値とを比較するステップ、および、
前記終端文字が見つからなかったことを示す前記判別に基づいて、追加のデータがコピーされるステップ、
を含む、請求項1に記載の方法。 - 前記カウントと前記終端値とを比較するステップは、前記終端値が前記カウントの値よりも大きいことに基づいて追加のデータがコピーされることを示す、請求項2に記載の方法。
- 前記カウントを取得するステップは、前記カウントを計算するために、前記メモリのブロック内の開始アドレスおよび前記メモリのブロックの境界を使用するステップを含む、請求項1〜3のいずれか一項に記載の方法。
- 前記カウントを取得するステップは、Load to Count Block Boundary命令を使用するステップを含む、請求項1〜4のいずれか一項に記載の方法。
- 前記レジスタにロードされることになる前記データは複数のデータの単位を含み、前記ロードするステップは、前記複数のデータの単位を前記レジスタ内に並列にロードするステップを含み、前記ロードするステップは、前記メモリのブロックの境界を横切ることなく実行される、請求項1〜5のいずれか一項に記載の方法。
- 前記ロードするステップは、Vector Load to Block Boundary命令によって実行され、前記メモリのブロックは、前記Vector Load to Block Boundary命令によって指定されるか、または前記Vector Load to Block Boundary命令を実行するプロセッサによって動的に決定されるかの、いずれか一方である、請求項1〜6のいずれか一項に記載の方法。
- 前記終端値を決定するステップは、Vector Find Element Not Equal命令を使用するステップを含み、前記位置は前記レジスタ内のバイト・インデックスを含む、請求項1〜7のいずれか一項に記載の方法。
- 前記終端文字はゼロまたはヌル文字を含む、請求項1〜8のいずれか一項に記載の方法。
- 命令の長さを決定するためにコンピュータ・コードを取得するステップをさらに含み、前記コンピュータ・コードは、前記ロードするステップを実行するためのVector Load to Block Boundary命令、前記カウントを取得するためのLoad Count to Block Boundary命令、および前記終端値を決定するためのVector Find Element Not Equal命令を含む、請求項1に記載の方法。
- データのセットをコピーするためのコンピュータ・システムであって、
メモリと、
前記メモリと通信しているプロセッサと、
を備え、請求項1〜10のいずれか一項に記載の方法の各ステップを実行するように構成された、コンピュータ・システム。 - データのセットをコピーするためのコンピュータ・プログラムであって、前記プログラムがコンピュータに、
請求項1〜10のいずれか一項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/421,498 | 2012-03-15 | ||
US13/421,498 US9454366B2 (en) | 2012-03-15 | 2012-03-15 | Copying character data having a termination character from one memory location to another |
PCT/IB2013/051649 WO2013136216A1 (en) | 2012-03-15 | 2013-03-01 | Copying character data having a termination character from one memory location to another |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015518193A JP2015518193A (ja) | 2015-06-25 |
JP6184426B2 true JP6184426B2 (ja) | 2017-08-23 |
Family
ID=49158800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014561550A Active JP6184426B2 (ja) | 2012-03-15 | 2013-03-01 | 終端文字を有する文字データのメモリ位置間でのコピーのための方法、システム、およびコンピュータ・プログラム(終端文字を有する文字データのメモリ位置間でのコピー) |
Country Status (6)
Country | Link |
---|---|
US (1) | US9454366B2 (ja) |
JP (1) | JP6184426B2 (ja) |
CN (1) | CN104169870B (ja) |
DE (1) | DE112013001442T5 (ja) |
GB (1) | GB2513797A (ja) |
WO (1) | WO2013136216A1 (ja) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US10061746B2 (en) * | 2014-09-26 | 2018-08-28 | Intel Corporation | Instruction and logic for a vector format for processing computations |
US9582413B2 (en) | 2014-12-04 | 2017-02-28 | International Business Machines Corporation | Alignment based block concurrency for accessing memory |
US9569127B2 (en) * | 2014-12-29 | 2017-02-14 | International Business Machines Corporation | Computer instructions for limiting access violation reporting when accessing strings and similar data structures |
US10540512B2 (en) * | 2015-09-29 | 2020-01-21 | International Business Machines Corporation | Exception preserving parallel data processing of string and unstructured text |
US10691453B2 (en) | 2015-11-13 | 2020-06-23 | International Business Machines Corporation | Vector load with instruction-specified byte count less than a vector size for big and little endian processing |
US10691456B2 (en) | 2015-11-13 | 2020-06-23 | International Business Machines Corporation | Vector store instruction having instruction-specified byte count to be stored supporting big and little endian processing |
US10956439B2 (en) * | 2016-02-19 | 2021-03-23 | Micron Technology, Inc. | Data transfer with a bit vector operation device |
US10564965B2 (en) * | 2017-03-03 | 2020-02-18 | International Business Machines Corporation | Compare string processing via inline decode-based micro-operations expansion |
US11640300B2 (en) * | 2019-09-24 | 2023-05-02 | Alibaba Group Holding Limited | Byte comparison method for string processing and instruction processing apparatus |
CN112506591A (zh) * | 2021-02-05 | 2021-03-16 | 北京鼎石纵横科技有限公司 | 一种字符串的复制方法、装置及可读存储介质及计算设备 |
Family Cites Families (86)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62276668A (ja) | 1985-07-31 | 1987-12-01 | Nec Corp | ベクトルマスク演算制御ユニツト |
US5073864A (en) | 1987-02-10 | 1991-12-17 | Davin Computer Corporation | Parallel string processor and method for a minicomputer |
US5222225A (en) * | 1988-10-07 | 1993-06-22 | International Business Machines Corporation | Apparatus for processing character string moves in a data processing system |
JPH0831032B2 (ja) | 1990-08-29 | 1996-03-27 | 三菱電機株式会社 | データ処理装置 |
WO1994027215A1 (en) | 1993-05-07 | 1994-11-24 | Apple Computer, Inc. | Method for decoding guest instructions for a host computer |
CA2162115A1 (en) | 1993-06-14 | 1994-12-22 | David V. James | Method and apparatus for finding a termination character within a variable-length character string on a processor |
JPH0721034A (ja) | 1993-06-28 | 1995-01-24 | Fujitsu Ltd | 文字列複写処理方法 |
US5509129A (en) | 1993-11-30 | 1996-04-16 | Guttag; Karl M. | Long instruction word controlling plural independent processor operations |
US6185629B1 (en) * | 1994-03-08 | 2001-02-06 | Texas Instruments Incorporated | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time |
US5551013A (en) | 1994-06-03 | 1996-08-27 | International Business Machines Corporation | Multiprocessor for hardware emulation |
AU696903B2 (en) | 1994-09-27 | 1998-09-24 | Jfe Steel Corporation | Zinciferous plated steel sheet and method for manufacturing same |
US5790825A (en) | 1995-11-08 | 1998-08-04 | Apple Computer, Inc. | Method for emulating guest instructions on a host computer through dynamic recompilation of host instructions |
US5931940A (en) | 1997-01-23 | 1999-08-03 | Unisys Corporation | Testing and string instructions for data stored on memory byte boundaries in a word oriented machine |
NZ504304A (en) | 1997-11-24 | 2002-03-01 | British Telecomm | Information management and retrieval with means for identifying word sub-sets within word groups and outputting these |
US6009261A (en) | 1997-12-16 | 1999-12-28 | International Business Machines Corporation | Preprocessing of stored target routines for emulating incompatible instructions on a target processor |
US6094695A (en) | 1998-03-11 | 2000-07-25 | Texas Instruments Incorporated | Storage buffer that dynamically adjusts boundary between two storage areas when one area is full and the other has an empty data register |
US6334176B1 (en) | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6308255B1 (en) | 1998-05-26 | 2001-10-23 | Advanced Micro Devices, Inc. | Symmetrical multiprocessing bus and chipset used for coprocessor support allowing non-native code to run in a system |
US7100026B2 (en) | 2001-05-30 | 2006-08-29 | The Massachusetts Institute Of Technology | System and method for performing efficient conditional vector operations for data parallel architectures involving both input and conditional vector values |
US20020147969A1 (en) | 1998-10-21 | 2002-10-10 | Richard A. Lethin | Dynamic optimizing object code translator for architecture emulation and dynamic optimizing object code translation method |
US6662288B1 (en) | 1998-11-27 | 2003-12-09 | Matsushita Electric Industrial Co., Ltd. | Address generating apparatus and motion vector detector |
US6192466B1 (en) | 1999-01-21 | 2001-02-20 | International Business Machines Corporation | Pipeline control for high-frequency pipelined designs |
US8127121B2 (en) | 1999-01-28 | 2012-02-28 | Ati Technologies Ulc | Apparatus for executing programs for a first computer architechture on a computer of a second architechture |
US6189088B1 (en) | 1999-02-03 | 2001-02-13 | International Business Machines Corporation | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location |
US6499116B1 (en) | 1999-03-31 | 2002-12-24 | International Business Machines Corp. | Performance of data stream touch events |
US6802056B1 (en) | 1999-06-30 | 2004-10-05 | Microsoft Corporation | Translation and transformation of heterogeneous programs |
US6381691B1 (en) | 1999-08-13 | 2002-04-30 | International Business Machines Corporation | Method and apparatus for reordering memory operations along multiple execution paths in a processor |
US6513109B1 (en) | 1999-08-31 | 2003-01-28 | International Business Machines Corporation | Method and apparatus for implementing execution predicates in a computer processing system |
US6449706B1 (en) | 1999-12-22 | 2002-09-10 | Intel Corporation | Method and apparatus for accessing unaligned data |
JP2001236249A (ja) | 2000-02-24 | 2001-08-31 | Nec Corp | メモリ管理装置およびメモリ管理方法 |
US6625724B1 (en) | 2000-03-28 | 2003-09-23 | Intel Corporation | Method and apparatus to support an expanded register set |
US6349361B1 (en) | 2000-03-31 | 2002-02-19 | International Business Machines Corporation | Methods and apparatus for reordering and renaming memory references in a multiprocessor computer system |
US6701424B1 (en) | 2000-04-07 | 2004-03-02 | Nintendo Co., Ltd. | Method and apparatus for efficient loading and storing of vectors |
US6408383B1 (en) | 2000-05-04 | 2002-06-18 | Sun Microsystems, Inc. | Array access boundary check by executing BNDCHK instruction with comparison specifiers |
JP3801987B2 (ja) | 2000-10-18 | 2006-07-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ディジタル信号処理装置 |
US7487330B2 (en) | 2001-05-02 | 2009-02-03 | International Business Machines Corporations | Method and apparatus for transferring control in a computer system with dynamic compilation capability |
JP3900863B2 (ja) * | 2001-06-28 | 2007-04-04 | シャープ株式会社 | データ転送制御装置、半導体記憶装置および情報機器 |
US6839828B2 (en) | 2001-08-14 | 2005-01-04 | International Business Machines Corporation | SIMD datapath coupled to scalar/vector/address/conditional data register file with selective subpath scalar processing mode |
US6907443B2 (en) | 2001-09-19 | 2005-06-14 | Broadcom Corporation | Magnitude comparator |
US6570511B1 (en) * | 2001-10-15 | 2003-05-27 | Unisys Corporation | Data compression method and apparatus implemented with limited length character tables and compact string code utilization |
US20100274988A1 (en) | 2002-02-04 | 2010-10-28 | Mimar Tibet | Flexible vector modes of operation for SIMD processor |
US7089371B2 (en) | 2002-02-12 | 2006-08-08 | Ip-First, Llc | Microprocessor apparatus and method for prefetch, allocation, and initialization of a block of cache lines from memory |
US7441104B2 (en) | 2002-03-30 | 2008-10-21 | Hewlett-Packard Development Company, L.P. | Parallel subword instructions with distributed results |
US7373483B2 (en) | 2002-04-02 | 2008-05-13 | Ip-First, Llc | Mechanism for extending the number of registers in a microprocessor |
US7376812B1 (en) * | 2002-05-13 | 2008-05-20 | Tensilica, Inc. | Vector co-processor for configurable and extensible processor architecture |
US6918010B1 (en) | 2002-10-16 | 2005-07-12 | Silicon Graphics, Inc. | Method and system for prefetching data |
US7103754B2 (en) | 2003-03-28 | 2006-09-05 | International Business Machines Corporation | Computer instructions for having extended signed displacement fields for finding instruction operands |
US20040215924A1 (en) | 2003-04-28 | 2004-10-28 | Collard Jean-Francois C. | Analyzing stored data |
US7035986B2 (en) | 2003-05-12 | 2006-04-25 | International Business Machines Corporation | System and method for simultaneous access of the same line in cache storage |
US20040250027A1 (en) | 2003-06-04 | 2004-12-09 | Heflinger Kenneth A. | Method and system for comparing multiple bytes of data to stored string segments |
US7610466B2 (en) | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7904905B2 (en) | 2003-11-14 | 2011-03-08 | Stmicroelectronics, Inc. | System and method for efficiently executing single program multiple data (SPMD) programs |
GB2411973B (en) | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | Constant generation in SMD processing |
US20060095713A1 (en) | 2004-11-03 | 2006-05-04 | Stexar Corporation | Clip-and-pack instruction for processor |
US7421566B2 (en) | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US9436468B2 (en) | 2005-11-22 | 2016-09-06 | Intel Corporation | Technique for setting a vector mask |
US8010953B2 (en) | 2006-04-04 | 2011-08-30 | International Business Machines Corporation | Method for compiling scalar code for a single instruction multiple data (SIMD) execution engine |
US7565514B2 (en) | 2006-04-28 | 2009-07-21 | Freescale Semiconductor, Inc. | Parallel condition code generation for SIMD operations |
CN101097488B (zh) | 2006-06-30 | 2011-05-04 | 2012244安大略公司 | 从接收的文本中学习字符片段的方法及相关手持电子设备 |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
US7536532B2 (en) | 2006-09-27 | 2009-05-19 | International Business Machines Corporation | Merge operations of data arrays based on SIMD instructions |
US7991987B2 (en) | 2007-05-10 | 2011-08-02 | Intel Corporation | Comparing text strings |
CN101755265A (zh) | 2007-05-21 | 2010-06-23 | 茵科瑞蒂梅尔有限公司 | 交互式消息编辑系统和方法 |
US20090063410A1 (en) | 2007-08-29 | 2009-03-05 | Nils Haustein | Method for Performing Parallel Data Indexing Within a Data Storage System |
US7870339B2 (en) | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction therefore |
US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions therefore |
US7739434B2 (en) | 2008-01-11 | 2010-06-15 | International Business Machines Corporation | Performing a configuration virtual topology change and instruction therefore |
US7877582B2 (en) | 2008-01-31 | 2011-01-25 | International Business Machines Corporation | Multi-addressable register file |
EP2245529A1 (en) | 2008-02-18 | 2010-11-03 | Sandbridge Technologies, Inc. | Method to accelerate null-terminated string operations |
DK176835B1 (da) | 2008-03-07 | 2009-11-23 | Jala Aps | Fremgangsmåde til skanning, medium indeholdende et program til udövelse af fremgangsmåden samt system til udövelse af fremgangsmåden |
US8386547B2 (en) | 2008-10-31 | 2013-02-26 | Intel Corporation | Instruction and logic for performing range detection |
JP5500652B2 (ja) | 2009-02-02 | 2014-05-21 | 日本電気株式会社 | 並列比較選択演算装置、プロセッサ及び並列比較選択演算方法 |
JP5471082B2 (ja) | 2009-06-30 | 2014-04-16 | 富士通株式会社 | 演算処理装置および演算処理装置の制御方法 |
US8595471B2 (en) | 2010-01-22 | 2013-11-26 | Via Technologies, Inc. | Executing repeat load string instruction with guaranteed prefetch microcode to prefetch into cache for loading up to the last value in architectural register |
US20110314263A1 (en) | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
US8972698B2 (en) | 2010-12-22 | 2015-03-03 | Intel Corporation | Vector conflict instructions |
US9009447B2 (en) | 2011-07-18 | 2015-04-14 | Oracle International Corporation | Acceleration of string comparisons using vector instructions |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
-
2012
- 2012-03-15 US US13/421,498 patent/US9454366B2/en active Active
-
2013
- 2013-03-01 CN CN201380014269.9A patent/CN104169870B/zh active Active
- 2013-03-01 DE DE112013001442.4T patent/DE112013001442T5/de not_active Ceased
- 2013-03-01 WO PCT/IB2013/051649 patent/WO2013136216A1/en active Application Filing
- 2013-03-01 JP JP2014561550A patent/JP6184426B2/ja active Active
- 2013-03-01 GB GB1415054.4A patent/GB2513797A/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
US9454366B2 (en) | 2016-09-27 |
GB201415054D0 (en) | 2014-10-08 |
DE112013001442T5 (de) | 2015-01-22 |
GB2513797A (en) | 2014-11-05 |
WO2013136216A1 (en) | 2013-09-19 |
US20130246739A1 (en) | 2013-09-19 |
JP2015518193A (ja) | 2015-06-25 |
CN104169870B (zh) | 2017-07-28 |
CN104169870A (zh) | 2014-11-26 |
WO2013136216A9 (en) | 2014-02-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6184426B2 (ja) | 終端文字を有する文字データのメモリ位置間でのコピーのための方法、システム、およびコンピュータ・プログラム(終端文字を有する文字データのメモリ位置間でのコピー) | |
JP6238243B2 (ja) | Vector find element equal命令 | |
JP6238241B2 (ja) | Vector string range compare | |
JP6238242B2 (ja) | Vector find element not equal命令 | |
JP6246140B2 (ja) | データを命令が指示する指定されたメモリ境界までロードするためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
JP6278906B2 (ja) | データを動的に判断されたメモリ境界までロードする方法、システムおよびコンピュータ・プログラム | |
JP6305351B2 (ja) | 終了文字を有する文字データ・セットの長さを見出す | |
JP6138175B2 (ja) | 指定されたメモリ境界までの距離を計算するためのコンピュータ・プログラム、コンピュータ・システムおよび方法 | |
JP6108362B2 (ja) | 不連続命令指定子の連続命令指定子への変換 | |
US9477468B2 (en) | Character data string match determination by loading registers at most up to memory block boundary and comparing to avoid unwarranted exception | |
JP2019145164A (ja) | ベクトル例外コードを処理するコンピュータ・プログラム、コンピュータ・システム及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170328 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170607 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20170704 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170725 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6184426 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |