JP7442529B2 - データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 - Google Patents
データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 Download PDFInfo
- Publication number
- JP7442529B2 JP7442529B2 JP2021533139A JP2021533139A JP7442529B2 JP 7442529 B2 JP7442529 B2 JP 7442529B2 JP 2021533139 A JP2021533139 A JP 2021533139A JP 2021533139 A JP2021533139 A JP 2021533139A JP 7442529 B2 JP7442529 B2 JP 7442529B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- function
- data
- operand
- history
- 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
- 239000000872 buffer Substances 0.000 title claims description 166
- 238000007906 compression Methods 0.000 title claims description 76
- 230000006835 compression Effects 0.000 title claims description 76
- 230000006837 decompression Effects 0.000 title claims description 36
- 230000006870 function Effects 0.000 claims description 251
- 238000003860 storage Methods 0.000 claims description 102
- 238000012545 processing Methods 0.000 claims description 92
- 238000000034 method Methods 0.000 claims description 35
- 230000001419 dependent effect Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 7
- 238000006243 chemical reaction Methods 0.000 description 54
- 238000012360 testing method Methods 0.000 description 46
- 230000008859 change Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 28
- 230000008569 process Effects 0.000 description 18
- 230000036961 partial effect Effects 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 12
- 230000015572 biosynthetic process Effects 0.000 description 11
- 230000000153 supplemental effect Effects 0.000 description 11
- 238000005192 partition Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 238000005056 compaction Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 230000000295 complement effect Effects 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 238000013144 data compression Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000012795 verification 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3552—Indexed addressing using wraparound, e.g. modulo or circular addressing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
・圧縮データ・セットは一連のブロックを含む。3種類のブロックがある。1つの種類のブロックは、3ビット・ヘッダ、ならびにそれに続く長さ情報および圧縮されていないデータを含み、2つの種類のブロックは、3ビット・ヘッダ、およびそれに続く圧縮データ要素を含む。
・圧縮データ要素は、動的ハフマン表の圧縮表現、圧縮データ・シンボル、およびエンド・オブ・ブロック(EOB)シンボルを含むことがある。
・圧縮データ要素は、さまざまなビット長を有する。
・圧縮データ要素は、ストレージの中のバイト境界間で始まること、または終わることがある。
・圧縮データ要素は、例えば右端ビット位置から左端ビット位置への順番でバイトにロードされる。
・汎用レジスタ1、R1、R2およびR3のビット位置40~63の内容はそれぞれ、パラメータ・ブロック、第1のオペランド、第2のオペランドおよび循環履歴バッファのアドレスを構成し、ビット位置0~39の内容は無視される。
・更新後の第1のオペランド・アドレスおよび第2のオペランド・アドレスのビット40~63はそれぞれ、汎用レジスタR1およびR2の中の対応するビットを置き換える。更新後のアドレスのビット位置40からの桁上げ(carry)は無視され、汎用レジスタR1およびR2のビット位置32~39の内容は0にセットされる。汎用レジスタR1およびR2のビット位置0~31の内容は変更されないままである。この命令が、部分完了(partial completion)または正常完了(normal completion)で終了し、更新後のオペランド・アドレスが、命令の実行の開始時のオペランド・アドレスに等しいとき、対応する汎用レジスタのビット位置32~39は0にセットされる。
・汎用レジスタR1+1およびR2+1のビット位置32~63の内容はそれぞれ、例えば、第1および第2のオペランドの中のバイトの数を指定する32ビット符号なし2進整数を形成する。汎用レジスタR1+1およびR2+1のビット位置0~31の内容は無視される。
・更新後の第1のオペランド長および第2のオペランド長のビット32~63はそれぞれ、汎用レジスタR1+1およびR2+1の中の対応するビットを置き換える。汎用レジスタR1+1およびR2+1のビット位置0~31の内容は変更されないままである。
・汎用レジスタ1、R1、R2およびR3のビット位置33~63の内容はそれぞれ、パラメータ・ブロック、第1のオペランド、第2のオペランドおよび循環履歴バッファのアドレスを構成し、ビット位置0~32の内容は無視される。
・更新後の第1のオペランド・アドレスおよび第2のオペランド・アドレスのビット33~63はそれぞれ、汎用レジスタR1およびR2の中の対応するビットを置き換える。更新後のアドレスのビット位置33からの桁上げは無視され、汎用レジスタR1およびR2のビット位置32の内容は0にセットされる。汎用レジスタR1およびR2のビット位置0~31の内容は変更されないままである。この命令が、部分完了または正常完了で終了し、更新後のオペランド・アドレスが、命令の実行の開始時のオペランド・アドレスに等しいとき、対応する汎用レジスタのビット位置32は0にセットされる。
・汎用レジスタR1+1およびR2+1のビット位置32~63の内容はそれぞれ、第1および第2のオペランドの中のバイトの数を指定する32ビット符号なし2進整数を形成する。汎用レジスタR1+1およびR2+1のビット位置0~31の内容は無視される。
・更新後の第1のオペランド長および第2のオペランド長のビット32~63はそれぞれ、汎用レジスタR1+1およびR2+1の中の対応するビットを置き換える。汎用レジスタR1+1およびR2+1のビット位置0~31の内容は変更されないままである。
・汎用レジスタ1、R1、R2およびR3のビット位置0~63の内容はそれぞれ、パラメータ・ブロック、第1のオペランド、第2のオペランドおよび循環履歴バッファのアドレスを構成する。
・更新後の第1のオペランド・アドレスおよび第2のオペランド・アドレスのビット0~63はそれぞれ、汎用レジスタR1およびR2の中の対応するビットを置き換える。更新後のアドレスのビット位置0からの桁上げは無視される。
・汎用レジスタR1+1およびR2+1のビット位置0~63の内容はそれぞれ、第1および第2のオペランドの中のバイトの数を指定する64ビット符号なし2進整数を形成する。
・更新後の第1のオペランド長および第2のオペランド長のビット0~63はそれぞれ、汎用レジスタR1+1およびR2+1の中の対応するビットを置き換える。
DFLTCC-QAF(使用可能機能照会)機能は、インストールされた機能およびインストールされたパラメータ・ブロック・フォーマットの使用可能性を示す機構を提供する。DFLTCC-QAF機能に対するパラメータ・ブロックの例示的な1つのフォーマットを、図3Jを参照して説明する。一例では、DFLTCC-QAF機能(例えば機能コード0)に対するパラメータ・ブロック340が、インストール済み機能ベクトル(installed functions vector)342およびインストール済みパラメータ・ブロック・フォーマット・ベクトル(installed parameter block formats vector)346を含む。特定の1つの例では、これらのベクトルがそれぞれ、パラメータ・ブロックのバイト0~15およびバイト24~25に記憶されている。それぞれのベクトルを下でさらに説明する。
DFLTCC-GDHT機能が指定されているときには、DEFLATE規格によって指定されているとおり、第2のオペランドが、例えば、動的ハフマン表(DHT)の圧縮表現を生成するためのソースとして使用される。
DHTGC 意味
0 0に等しいリテラル・バイト、重複ストリング長およびポインタ距離のカウントを、1に等しいものとして取り扱う(ユニバーサルDHTを生成する)。
1 0に等しい重複ストリング長およびポインタ距離のカウントを、1に等しいものとして取り扱う。
OESC(16進数) 意味
00 追加情報は提供されていない。
01 パラメータ・ブロック・バージョン番号362によって指定されたパラメータ・ブロックのフォーマットがモデルによってサポートされていない。
02 DFLTCC-CMPRまたはDFLTCC-XPND機能が指定されており、履歴長フィールド385(図3L)が例えば32,768よりも大きく、新規タスク・フィールド374(図3L)が0である。
11 2進数11に等しいBTYPE(ブロック・タイプ)を有する圧縮データ・ブロックに遭遇する。
12 2進数00に等しいBTYPEおよびLEN(長さ)の1の補数に等しくないNLENを有する圧縮データ・ブロックに遭遇する。
21 CDHTLフィールド366(図3L)が適用され、CDHTLフィールド366が、例えば42よりも小さいか、または2283よりも大きい。
22 オペレーション中に使用された圧縮DHTのHLITサブ要素が、例えば29よりも大きい(無効なDHT)。
23 オペレーション中に使用された圧縮DHTのHDISTサブ要素が、例えば29よりも大きい(無効なDHT)。
24 オペレーション中に使用された圧縮DHTが、圧縮DHTに対して定義された可能なコード長(例えば19)に対するビット長を指定するコードのシーケンスの中のコードであって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコードを指定する(無効なDHT)。
26 オペレーション中に使用された圧縮DHTが、リテラル・バイト、EOBシンボルおよび重複ストリング長からなる要素のセットに対する最初のコード長としてコード長16を指定する(以前のコード長をコピーする)(無効なDHT)。
27 オペレーション中に使用された圧縮DHTが、リテラル・バイトに対するコード長を指定するコードのシーケンスの中のコードを指定し、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない(無効なDHT)。
28 オペレーション中に使用された圧縮DHTが、EOBシンボルにコード長0(CL0)を割り当てるコードを指定する。この場合、対応するDHTは、EOBシンボルを表すハフマン・コードを指定しない(無効なDHT)。
29 オペレーション中に使用された圧縮DHTが、重複ストリング長およびポインタ距離に対するコード長を指定するコードのシーケンスの中のコードを指定し、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない(無効なDHT)。
2A オペレーション中に使用された圧縮DHTが、HLITフィールドの中の値と、HDISTフィールドの中の値と例えば258との和によって指定される、DHTの中のハフマン・コードの数よりも大きいいくつかのコード長を指定する。例として、これは、コード長16、17および18の不適切な使用によって可能である(無効なDHT)。
2B オペレーション中に使用された圧縮DHTが、リテラル・バイト、EOBシンボルおよび重複ストリング長のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する(無効なDHT)。
2D オペレーション中に使用された圧縮DHTが、重複ストリング・ポインタ距離のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する(無効なDHT)。
2F CDHTLフィールド366(図3L)が、オペレーション中に使用されたCDHTフィールド367(図3L)の中の圧縮DHTの長さを適用し、CDHTLフィールド366が、この長さに等しくない。
31 オペレーション中に使用された圧縮DHTが、オペレーション中に処理されたリテラル・バイトまたは重複ストリング長に対応するハフマン・コードを指定しない(不十分な非ユニバーサルDHT)か、または、DFLTCC-XPND機能が指定されており、2進数01に等しいBTYPEを有する圧縮データ・ブロックの中で遭遇する圧縮データ・シンボルが、重複ストリング長に対する無効コード(2進数11000110または11000111)を指定する。
32 オペレーション中に使用された圧縮DHTが、オペレーション中に処理された重複ストリング・ポインタ距離に対応するハフマン・コードを指定しない(不十分な非ユニバーサルDHT)か、または、DFLTCC-XPND機能が指定されており、2進数01に等しいBTYPEを有する圧縮データ・ブロックの中で遭遇する圧縮データ・シンボルが、重複ストリング・ポインタ距離に対する無効コード(2進数11110または11111)を指定する。
40 重複ストリング・ポインタである圧縮データ・シンボルに遭遇し、このデータ・シンボルが、そのシンボルを処理する時点で使用可能な履歴の長さよりも大きな距離を指定する。
・リテラル・バイト、EOBシンボルおよび重複ストリング長を表すハフマン・コードの数を指定するHLITフィールド
・重複ストリング・ポインタ距離を表すハフマン・コードの数を指定するHDISTフィールド
・コード長を表すハフマン・コードの数を指定するHCLEN(ハフマン・コード長(Huffman code lengths))フィールド
・圧縮DHTに対して定義されたコード長、例えば19個のコード長のうちのそれぞれのコード長に対するビット長を指定するコードのシーケンス
・リテラル・バイト、EOBシンボルおよび重複ストリング長からなるセットの要素のうちのそれぞれの要素に対するコード長を指定するコードのシーケンス
・重複ストリング・ポインタ距離からなるセットの要素のうちのそれぞれの要素に対するコード長を指定するコードのシーケンス
・DHTの生成には、第2のオペランドの最初の32キロバイトだけが使用される。
・第2のオペランドの最初の32キロバイトを超える位置に対してはアクセス例外が認識されない。
DFLTCC-CMPR機能が指定されているときには、圧縮オペレーションが実行される。このオペレーションは、第2のオペランド位置からのデータをエンコードして、圧縮データ・シンボルにすることを含み、それらの圧縮データ・シンボルは、第1のオペランド位置に記憶される。
パラメータ・ブロック・バージョン番号(PBVN)362
モデル・バージョン番号(MVN)363
オペレーション終了補足コード(OESC)365
IFS(2進数) 意味
0000 1に等しいBFINALを有するブロックの最後の要素をデコードした後にオペレーションが終了した。
1000 2進数00に等しいBTYPEおよび0に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1001 2進数00に等しいBTYPEおよび1に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1010 2進数01に等しいBTYPEおよび0に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1011 2進数01に等しいBTYPEおよび1に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1100 2進数10に等しいBTYPEおよび0に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1101 2進数10に等しいBTYPEおよび1に等しいBFINALを有するブロックの最後の要素以外の要素をデコードした後にオペレーションが終了した。
1110 ブロック境界でオペレーションが終了し、1に等しいBFINALを有するブロックの最後の要素はデコードされておらず、次のブロックの最初のブロック・ヘッダ要素はまだ処理されていない。
・NTビットが1のときには、4バイト・ベース入力に対して値1が使用される。
・アドラー-32検査値生成において定義される和は、65,521を法とする。
・結果は、検査値フィールドに、ビッグエンディアン・バイト順で記憶される。すなわち、検査値の最上位バイトがバイト48に位置し、検査値の最下位バイトがバイト51に位置する。
・NTビットが1のときには、4バイト・ベース入力に対して値0が使用される。
・CRC-32検査値を生成する際に除数として使用される多項式は、x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+x0であり、これは16進数104C11DB7として表される。この表現では、左端ビットが最上位ビットに対応する。
・検査値を生成する最初のステージおよび最後のステージはそれぞれ、ベース入力の1の補数を計算するステージ、および結果を記憶する前に結果の1の補数を計算するステージである。
・結果は、検査値フィールドに、リトルエンディアン・バイト順で記憶される。すなわち、検査値の最下位バイトがバイト48に位置し、検査値の最上位バイトがバイト51に位置する。
圧縮動的ハフマン表長(CDHTL)366
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックの継続フラグ(CF)フィールド373が0にセットされる。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックのエンド・オブ・ブロック長(EOBL)フィールド389およびエンド・オブ・ブロック・シンボル(EOBS)フィールド388が更新される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・パラメータ・ブロックの検査値フィールド387が更新される。
・汎用レジスタR1の中のアドレスが、処理ビット0を含んだ第1のオペランドの処理されたバイト数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第1のオペランドの処理されたバイトの数は、処理された出力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・汎用レジスタR2の中のアドレスが、処理されたソース・バイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。
・条件コード0がセットされる。
・パラメータ・ブロックの中の継続フラグ(CF)ビット373が1にセットされる。
・パラメータ・ブロックの中の継続状態バッファ(CSB)フィールド392が更新される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの検査値フィールド387が更新される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのエンド・オブ・ブロック長(EOBL)フィールド389およびエンド・オブ・ブロック・シンボル(EOBS)フィールド388が更新される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・汎用レジスタR1の中のアドレスが、処理ビット0を含んだ第1のオペランドの処理されたバイト数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第1のオペランドの処理されたバイトの数は、処理された出力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・汎用レジスタR2の中のアドレスが、処理されたソース・バイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。
・条件コード3がセットされる。
・命令の実行の開始時に、汎用レジスタR1+1の内容によって指定された第1のオペランド長が0である。
・命令の実行中に第1のオペランド長が0に等しくなり、正常完了が起こらない。
・パラメータ・ブロックの中の継続フラグ(CF)ビット373が1にセットされる。
・パラメータ・ブロックの中の継続状態バッファ(CSB)フィールド392が更新される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの検査値フィールド387が更新される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのエンド・オブ・ブロック長(EOBL)フィールド389およびエンド・オブ・ブロック・シンボル(EOBS)フィールド388が更新される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・汎用レジスタR1の中のアドレスが、処理ビット0を含んだ第1のオペランドの処理されたバイト数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第1のオペランドの処理されたバイトの数は、処理された出力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・汎用レジスタR2の中のアドレスが、処理されたソース・バイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。
・条件コード1がセットされる。
・条件コード1がセットされる。
・後述するようにパラメータ・ブロックに記憶する。
・第1のオペランド位置に記憶する。
・第3のオペランド位置に記憶する。これは例えば、履歴バッファ・タイプ(HBT)が1(循環)であるときに起こる。
・適用可能なときに、パラメータ・ブロックに対してPERストレージ変更イベントが認識される。
・適用可能なときに、パラメータ・ブロックの記憶された部分に対してPERストレージ変更イベントが認識される。
DFLTC-CCMPR機能に対して条件コード2は適用不可である。
DFLTCC-XPND機能が指定されているときには、復元オペレーションが実行される。このオペレーションは、第2のオペランド位置からの圧縮データ・シンボルをデコードして、圧縮されていないデータにすることを含み、それらのデータは、第1のオペランド位置に記憶される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックの継続フラグ(CF)フィールド373が0にセットされる。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの圧縮動的ハフマン表(CDHT)フィールド367および圧縮動的ハフマン表長(CDHTL)フィールド366が0にセットされる。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・パラメータ・ブロックの検査値フィールド387が更新される。
・汎用レジスタR1の中のアドレスが、第1のオペランド位置に記憶されたバイトの数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。
・汎用レジスタR2の中のアドレスが、処理ビット0を含んだ第2のオペランドの処理されたバイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第2のオペランドの処理されたバイトの数は、処理された入力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・条件コード0がセットされる。
・パラメータ・ブロックの中の継続フラグ(CF)ビット373が1にセットされる。
・パラメータ・ブロックの中の継続状態バッファ(CSB)フィールド392が更新される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの圧縮動的ハフマン表(CDHT)フィールド367および圧縮動的ハフマン表長(CDHTL)フィールド366が更新される。2進数10のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、表を表すのに必要でないCDHTフィールドのバイトが0として記憶される。2進数00または01のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、CDHTおよびCDHTLフィールドに0が記憶される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの検査値フィールド387が更新される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・パラメータ・ブロックの未完了機能ステータス(IFS)フィールド383が更新される。
・適用可能なときに、パラメータ・ブロックの未完了機能長(IFL)フィールド384が更新される。
・汎用レジスタR1の中のアドレスが、第1のオペランド位置に記憶されたバイトの数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。
・汎用レジスタR2の中のアドレスが、処理ビット0を含んだ第2のオペランドの処理されたバイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第2のオペランドの処理されたバイトの数は、処理された入力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・条件コード3がセットされる。
・1に等しいBFINALを有する圧縮データ・ブロックの最後の要素が、オペレーション中にデコードされておらず、第2のオペランド長およびSBBによって指示された第2のオペランドの中のビットの数が、デコードする次の要素のビットの数よりも少なく、第2のオペランド位置からのデータをデコードした全ての結果が、第1のオペランド位置に置かれている。
・パラメータ・ブロックの中の継続フラグ(CF)ビット373が1にセットされる。
・パラメータ・ブロックの中の継続状態バッファ(CSB)フィールド392が更新される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの圧縮動的ハフマン表(CDHT)フィールド367および圧縮動的ハフマン表長(CDHTL)フィールド366が更新される。2進数10のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、表を表すのに必要でないCDHTフィールドのバイトが0として記憶される。2進数00または01のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、CDHTおよびCDHTLフィールドに0が記憶される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの検査値フィールド387が更新される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・パラメータ・ブロックの未完了機能ステータス(IFS)フィールド383が更新される。
・適用可能なときに、パラメータ・ブロックの未完了機能長(IFL)フィールド384が更新される。
・汎用レジスタR1の中のアドレスが、第1のオペランド位置に記憶されたバイトの数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。
・汎用レジスタR2の中のアドレスが、処理ビット0を含んだ第2のオペランドの処理されたバイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第2のオペランドの処理されたバイトの数は、処理された入力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・条件コード2がセットされる。
・第1のオペランド長が0に等しいために、第2のオペランド位置からのデータをデコードした結果を、第1のオペランド位置に置くことができない。
・パラメータ・ブロックの中の継続フラグ(CF)ビット373が1にセットされる。
・パラメータ・ブロックの中の継続状態バッファ(CSB)フィールド392が更新される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックの圧縮動的ハフマン表(CDHT)フィールド367および圧縮動的ハフマン表長(CDHTL)フィールド366が更新される。2進数10のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、表を表すのに必要でないCDHTフィールドのバイトが0として記憶される。2進数00または01のBTYPE値を有するブロックを処理している間に部分完了が起こったときには、CDHTおよびCDHTLフィールドに0が記憶される。
・パラメータ・ブロックの履歴長(HL)フィールド385が更新される。
・適用可能なときに、パラメータ・ブロックの履歴オフセット(HO)フィールド386が更新される。
・パラメータ・ブロックの検査値フィールド387が更新される。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのオペレーション終了補足コード(OESC)フィールド365が0にセットされる。
・パラメータ・ブロックの未完了機能ステータス(IFS)フィールド383が更新される。
・適用可能なときに、パラメータ・ブロックの未完了機能長(IFL)フィールド384が更新される。
・汎用レジスタR1の中のアドレスが、第1のオペランド位置に記憶されたバイトの数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。
・汎用レジスタR2の中のアドレスが、処理ビット0を含んだ第2のオペランドの処理されたバイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第2のオペランドの処理されたバイトの数は、処理された入力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・条件コード1がセットされる。
・本明細書で記載するようにパラメータ・ブロックに記憶する。
・第1のオペランド位置に記憶する。
・第3のオペランド位置に記憶する。これは例えば、履歴バッファ・タイプ(HBT)が1(循環)であるときに起こる。
・適用可能なときに、パラメータ・ブロックに対してPERストレージ変更イベントが認識される。
・適用可能なときに、パラメータ・ブロックの記憶された部分に対してPERストレージ変更イベントが認識される。
一例では、ストレージの中の圧縮データ・ブロックのバイトが、例えば左から右へ処理される。圧縮データ・ブロックは、バイト境界で始まることも、もしくはバイト境界で始まらないこともあり、またはバイト境界で終わることも、もしくはバイト境界で終わらないこともある。圧縮データ・ブロックは例えばビット・ストリームである。ブロックの要素は、1ビットずつストレージにロードされる。このビット・ストリームは、ストレージのそれぞれのバイト内では例えば右から左へロードされ、バイト順では例えば左から右へロードされる。要素がハフマン・コードであるとき、ビットは、例えば要素の最上位ビットから最下位ビットへの順番で記憶される。要素がハフマン・コードでないとき、ビットは、例えば要素の最下位ビットから最上位ビットへの順番で記憶される。
・圧縮データ・ブロック600は、b0として識別されるバイト0のビット4から始まり、b60として識別されるバイト7のビット0で終わる、ビット・ストリーム602からなる。
・このビット・ストリームの中で遭遇する最初の要素は、バイト0のビット4のBFINAL(ブロック・ヘッダ最終ビット)である。
・このビット・ストリームの中で遭遇する2番目の要素は、バイト0のビット2~3のBTYPE(ブロック・タイプ)である。この例では、BTYPEが2進数00である。
・BTYPEが2進数00であるとき、BTYPEの左、バイト境界の右のビットは無視される。この例では、それらのビットがバイト0のビット0~1である。
・このビット・ストリームの中で遭遇する3番目の要素は、LENフィールドの最下位バイト(LSB)であり、その次がLENフィールドの最上位バイト(MSB)である。LENフィールドは、ブロックの中の、リテラル・データを含むバイトの数を指定する。リテラル・データは例えば圧縮されていないデータである。このビット・ストリームではリテラル・データを含むバイトがNLENフィールドの後ろにある。NLENは、LENの1の補数である。一例では、バイト1~2が、LENフィールドを、リトルエンディアン・バイト順で含む。
・このビット・ストリームの中でLENフィールドの次に遭遇する要素は、NLENフィールドの最下位バイトであり、その次がNLENフィールドの最上位バイトがある。バイト3~4は、NLENフィールドを、リトルエンディアン・バイト順で含む。NLENフィールドは、LENフィールドの1の補数である。
・このビット・ストリームの中でNLENフィールドの次に遭遇する要素は、リテラル・バイトとして識別される、圧縮されていないデータである。バイト5~7は、圧縮されていないデータを含み、これらのデータは、このブロックを生成するために使用されたソース・データから変更されていない。
・このブロックに含まれる要素はいずれもハフマン・コードではない。DEFLATE規格によって定義されているように、このブロックの中の全ての要素は、その要素の最下位ビットから最上位ビットへの順番でビット・ストリーム順に記憶される。LEN、NLENおよびリテラル要素はそれぞれ、バイト境界で整列した整数個のバイトであるため、これらの要素はバイト単位で処理することができ、ビット単位で処理する必要は必ずしもない。
・圧縮データ・ブロック700は、b0として識別されるバイト0のビット4から始まり、b89として識別されるバイト11のビット3で終わる、ビット・ストリーム702からなる。
・このビット・ストリームの中で遭遇する最初の要素は、バイト0のビット4のBFINALである。
・このビット・ストリームの中で遭遇する2番目の要素は、バイト0のビット2~3のBTYPEである。この例では、BTYPEが2進数01である。
・固定ハフマン表(FHT)はこのブロックの構成要素ではない。
・このビット・ストリームの中で遭遇する3番目の要素は、バイト0のビット1から始まる、最初の圧縮データ・シンボルである。一例では、圧縮データ・シンボルが以下のサブ要素からなり、このビット・ストリームの中でそれらのサブ要素には、それらが記載された順番で遭遇する。
1.可変長のハフマン・コード。このコードの最上位ビットはこのコードの長さを指示する。このビット・ストリームの中で、このコードには、このコードの最上位ビットから最下位ビットへの順番で遭遇する。このコードが、リテラル値またはエンド・オブ・ブロック・シンボルを表しているとき、このコードは、その圧縮データ・シンボルの唯一のサブ要素である。このコードが、履歴バッファを指すポインタの長さを表しているとき、このコードの後には、圧縮データ・シンボルの後続のサブ要素が続く。
2.適用可能なときには、DEFLATE規格によって指定されているとおり、このハフマン・コードの後に、ポインタ長を表す余剰長さビット(extra length bit)が続くことができる。このビット・ストリームの中で、余剰長さビットには、その余剰長さビットの最下位ビットから最上位ビットへの順番で遭遇する。
3.このビット・ストリームの中で遭遇する次のサブ要素は、履歴バッファを指すポインタの5ビット距離コードである。このビット・ストリームの中で、この距離コードには、例えば距離コードの最上位ビットから最下位ビットへの順番で遭遇する。
4.適用可能なときには、DEFLATE規格によって指定されているとおり、この距離コードの後に、余剰距離ビットが続くことができる。このビット・ストリームの中で、余剰距離ビットには、その余剰距離ビットの最下位ビットから最上位ビットへの順番で遭遇する。
・一例として、バイト0のビット0~1、バイト1から9の全てのビット、およびバイト10のビット2~7は、圧縮データ・シンボルのビットを含む。
・このビット・ストリームの中で遭遇する最後の要素は、単一のサブ要素を含む圧縮データ・シンボルであり、この単一のサブ要素は、エンド・オブ・ブロック(EOB)シンボルを表すハフマン・コードである。2進数01のBTYPEを有するブロックに対するEOBシンボルは2進数0000000である。この例では、バイト10のビット1がEOBシンボルの最上位ビットを含んでおり、バイト11のビット3がEOBシンボルの最下位ビットを含んでいる。
・バイト11のビット3は、このビット・ストリームの最後のビットを含んでおり、このビットが、この圧縮データ・ブロックの最後のビットである。
・圧縮データ・ブロック800は、b0として識別されるバイト0のビット4から始まり、b89として識別されるバイト11のビット3で終わる、ビット・ストリーム802からなる。
・このビット・ストリームの中で遭遇する最初の要素は、バイト0のビット4のBFINALである。
・このビット・ストリームの中で遭遇する2番目の要素は、バイト0のビット2~3のBTYPEである。この例では、BTYPEが2進数10である。
・このビット・ストリームの中で遭遇する3番目の要素は、バイト0のビット1から始まる、動的ハフマン表(DHT)の圧縮表現である。一例では、このDHTの圧縮表現が以下のサブ要素からなり、このビット・ストリームの中でそれらのサブ要素には、それらが記載された順番で遭遇する。
1.HLIT:この5ビットHLITサブ要素と257との和が、リテラル・バイト、EOBシンボルおよび重複ストリング長を表すハフマン・コードの数を指定する。HLITの有効値は例えば0から29の範囲にある。このビット・ストリームの中で、HLITビットには、そのHLITサブ要素の最下位ビットから最上位ビットへの順番で遭遇する。この例では、b3として識別されるバイト0のビット1が、HLITサブ要素の最下位ビットである。
2.HDIST:この5ビットHDISTサブ要素と1との和が、重複ストリング・ポインタ距離を表すハフマン・コードの数を指定する。HDISTの有効値は例えば0から29の範囲にある。このビット・ストリームの中で、HDISTビットには、そのHDISTサブ要素の最下位ビットから最上位ビットへの順番で遭遇する。
3.HCLEN:この4ビットHCLENサブ要素と4との和が、コード長を表すハフマン・コードの数を指定する。HCLENの有効値は例えば0から15の範囲にある。このビット・ストリームの中で、HCLENビットには、そのHCLENサブ要素の最下位ビットから最上位ビットへの順番で遭遇する。
4.圧縮DHTに対して定義されたそれぞれのコード長に対するビット長を指定するコードのシーケンス。コードの数は、HCLENと4との和に等しい。それぞれのコードは3ビットである。
5.リテラル・バイト、EOBシンボルおよび重複ストリング長からなるセットのそれぞれの要素に対するコード長を指定するコードのシーケンス。指定されたコード長の数は、HLITと257との和に等しい。
リテラル・バイト、EOBシンボルおよび重複ストリング長のセットに対する最後のコード長(CL)が16、17または18であり、CLに続く余剰ビットが、そのセットに対して定義された数よりも多くの要素に対してCLを繰り返すことを指定しているとき、そのコード長は、重複ストリング・ポインタ距離のセットにも適用される。リテラル・バイト、EOBシンボルおよび重複ストリング長のセットに対するコード長を指定するコードのシーケンス、およびそれに続く、重複ストリング・ポインタ距離に対するコード長を指定するコードのシーケンスは、両方のセットに対する連続シーケンスである。
6.重複ストリング・ポインタ距離からなるセットのそれぞれの要素に対するコード長を指定するコードのシーケンス。指定されたコード長の数はHDISTと1との和に等しい。
・このビット・ストリームの中で遭遇する4番目の要素は、最初の圧縮データ・シンボルである。一実施形態では、圧縮データ・シンボルが以下のサブ要素からなり、このビット・ストリームの中でそれらのサブ要素には、それらが記載された順番で遭遇する。
1.可変長のハフマン・コード。このコードの最上位ビットはこのコードの長さを指示する。このビット・ストリームの中で、このコードには、このコードの最上位ビットから最下位ビットへの順番で遭遇する。このコードが、リテラル値またはエンド・オブ・ブロック・シンボルを表しているとき、このコードは、その圧縮データ・シンボルの唯一のサブ要素である。このコードが、履歴バッファを指すポインタの長さを表しているとき、このコードの後には、圧縮データ・シンボルの後続のサブ要素が続く。
2.適用可能なときには、DEFLATE規格によって指定されているとおり、このハフマン・コードの後に、ポインタ長を表す余剰長さビットが続くことができる。このビット・ストリームの中で、余剰長さビットには、例えばその余剰長さビットの最下位ビットから最上位ビットへの順番で遭遇する。
3.このビット・ストリームの中で遭遇する次のサブ要素は、履歴バッファを指すポインタの5ビット距離コードである。このビット・ストリームの中で、この距離コードには、例えば距離コードの最上位ビットから最下位ビットへの順番で遭遇する。
4.適用可能なときには、DEFLATE規格によって指定されているとおり、この距離コードの後に、余剰距離ビットが続くことができる。このビット・ストリームの中で、余剰距離ビットには、例えばその余剰距離ビットの最下位ビットから最上位ビットへの順番で遭遇する。
・このビット・ストリームの中で遭遇する後続のビット、例えばバイト10のビット5を含む、バイト10のビット5までの後続のビットは、圧縮データ・シンボルのビットを含む。
・このビット・ストリームの中で遭遇する最後の要素は、単一のサブ要素を含む圧縮データ・シンボルであり、この単一のサブ要素は、エンド・オブ・ブロック(EOB)シンボルを表すハフマン・コードである。この例では、バイト10のビット4がEOBシンボルの最上位ビットを含んでおり、バイト11のビット3がEOBシンボルの最下位ビットを含んでいる。
・バイト11のビット3は、このビット・ストリームの最後のビットを含んでおり、このビットが、この圧縮データ・ブロックの最後のビットである。
DEFLATE変換呼出し命令の例示的な使用を示し、パラメータ・ブロックのさまざまなフィールドの説明を補強するために、圧縮データ・セットの処理の例を提供する。これらの例は、可能な全てのシナリオ、要件および能力を説明するものではなく、それらのうちのさまざまなシナリオ、要件もしくは能力またはそれらの組合せを示すものである。それらの例および説明は、例えば、ストレージの中の圧縮データ・セットに適用される。ストレージの中の圧縮データ・セットの一例が図9に示されている。示されているように、圧縮データ・セット900は、複数の圧縮データ・ブロック902を含み、データ・セット900の始まりは、圧縮データ・セット開始アドレス(CDSBA)904によって示される。
・圧縮データ・セット全体を処理するためにDEFLATE変換呼出し命令を複数回使用することにより、単一のパラメータ・ブロックを定義すること、および参照することができる。パラメータ・ブロックの検査値フィールド387および検査値タイプ・フィールド375は、圧縮データ・セットの中の圧縮データ・ブロック(例えば全てのブロック)に適用される。パラメータ・ブロックのサブバイト境界フィールド381は、個々のブロック間の遷移に適用される。履歴長385および履歴オフセット386は、複数のブロックに適用することができる。一例において、パラメータ・ブロックの残りのフィールドは、DEFLATE変換呼出し命令の特定の実行によって処理されている個々の圧縮データ・ブロックに適用されるだけである。
・個々の検査値は、例えば、圧縮データ・セットが表す圧縮されていないデータの全体に適用される。
・ブロック1の中の最初の圧縮データ・シンボルに関しては、参照すべき履歴は存在しない。ブロック1の中の後続のシンボルは、ブロック1の中の以前に遭遇したシンボルに対応する履歴を参照することができる。ブロック2の中のシンボルは、ブロック2および1の中の以前に遭遇したシンボルに対応する履歴を参照することができる。ブロック3の中のシンボルは、ブロック3、2および1の中の以前に遭遇したシンボルに対応する履歴を参照することができる。
データを圧縮するプロセスは、1つまたは複数の圧縮データ・ブロックを生成することを含む。DEFLATE変換呼出し命令の圧縮機能は、個々のブロックの部分を構築するために使用される。この部分がブロック全体であることもある。この機能は、2進数00ではなく、2進数01または10のブロック・タイプ(BTYPE)を有するブロックの部分を生成する。パラメータ・ブロックの新規タスク・ビット(NT)が1のときに、圧縮データの最初のブロックが生成され、以前に実行された圧縮オペレーションによる、参照すべき履歴は存在しない。
1.最終ブロック指示(BFINAL)
2.ブロック・タイプ(BTYPE)
3.動的ハフマン表の圧縮フォーマット(適用可能なとき)
4.圧縮データ・シンボル
5.エンド・オブ・ブロック(EOB)シンボル
・オペレーションを再開するために、命令が再実行されており(命令の実行の開始時にパラメータ・ブロックのCFフィールド373が1であり)、オペレーションの完了を、パラメータ・ブロックのCSBフィールド392を参照し、第2のオペランドを参照せずに実行することができる。
・空の圧縮データ・ブロックを生成する。空の圧縮データ・ブロックは、例えば、ブロック・ヘッダ、DHTの圧縮フォーマット(適用可能なとき)およびEOBシンボルからなる。
・開いている圧縮データ・ブロックを閉じる。すなわち、圧縮データ・ブロックの終わりにEOBシンボルを記憶するだけである。
・新規タスク(NT)374が1のとき、参照に使用可能な初期履歴は存在しない。
・NTが0であり、汎用レジスタ0(HBT)のビット56が0(インライン)のとき、参照に使用可能な初期履歴は、第2のオペランドの左端バイトの左、第2のオペランドの左端バイトの隣に位置し、初期履歴の長さは、パラメータ・ブロックの履歴長(HL)フィールド385によって指定されている。
・NTが0であり、汎用レジスタ0(HBT)のビット56が1(循環)のとき、参照に使用可能な初期履歴は、第3のオペランド位置に、パラメータ・ブロックの履歴オフセット(HO)フィールド386および履歴長(HL)フィールド385によって指定されたとおりに位置する。
・HBTがインラインであるときには、履歴が更新されるときに、第2のオペランド位置に対するストレージ更新が必要ない。更新後の第2のオペランド・アドレスおよび更新後のHLが、結果として得られる履歴の更新後の位置および更新後の長さを指定する。
・HBTが循環であるときには、履歴が更新されるときに、第3のオペランド位置に対するストレージ更新が実行される。第3のオペランド・アドレス、更新後のHOおよび更新後のHLが、結果として得られる履歴の更新後の位置および更新後の長さを指定する。
HE=R3+modulo32K(HO+HL-1)
・第3のオペランド位置の中のバイトの範囲に記憶が実施される。このバイトの範囲は、例えば下式によって指示される位置を含み、その位置から始まる。
R3+modulo32K(HOO+HLO)、この式で、
HOO:命令実行前の履歴オフセット
HLO:命令実行前の履歴長
である。
このバイトの範囲は、例えば下式によって指示される位置を含み、その位置で終わる。
R3+modulo32K(HOO+HLO+BP-1)、この式で、
BP:命令の実行中に処理された、第2のオペランド位置からのバイトの数
である。
・ストレージ位置の内容を変更しない記憶であって、必要でない記憶は、第3のオペランド位置の中の、上で説明した範囲に含まれないバイトに実施することができる。このような位置への記憶も、ストア・タイプ・アクセス例外、PERストレージ変更イベントおよびセッティング変更ビットにさらされる。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・パラメータ・ブロックのエンド・オブ・ブロック長(EOBL)フィールド389およびエンド・オブ・ブロック・シンボル(EOBS)フィールド388が更新される。
・汎用レジスタR1の中のアドレスが、処理ビット0を含んだ第1のオペランドの処理されたバイト数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第1のオペランドの処理されたバイトの数は、処理された出力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・汎用レジスタR2の中のアドレスが、処理されたソース・バイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。
一実施形態では、圧縮データ・セットをデコードして、圧縮されていないデータにするために、DEFLATE変換呼出し命令の展開機能が使用される。第2のオペランド位置の圧縮データ・セットは、1つまたは複数の連続する圧縮データ・ブロックを含む。一例では、このデータ・セットのブロックが左から右へ処理され、ブロックのバイトが例えば左から右へ処理される。これらのブロックは、バイト境界で始まることも、もしくはバイト境界で始まらないこともあり、またはバイト境界で終わることも、もしくはバイト境界で終わらないこともある。それぞれのブロックは、データ・セットの中の他のブロックとは独立にデコードされる。汎用レジスタR2は、データ・セットの中の第1のブロックの左端バイトの論理アドレスを指定する。データ・セットの中の最後のブロックは、処理中に、BFINALビットが1に等しいときに遭遇するブロックである。一例では、処理する3つのタイプのブロックが存在する。ブロックの内容をデコードする技術はブロック・タイプ(BTYPE)の関数である。
・新規タスク(NT)374が1のとき、参照に使用可能な初期履歴は存在しない。
・NTが0であり、汎用レジスタ0(HBT)のビット56が0(インライン)のとき、参照に使用可能な初期履歴は、第1のオペランドの左端バイトの左、第1のオペランドの左端バイトの隣に位置し、初期履歴の長さは、パラメータ・ブロックの履歴長(HL)フィールド385によって指定されている。
・NTが0であり、汎用レジスタ0(HBT)のビット56が1(循環)のとき、参照に使用可能な初期履歴は、第3のオペランド位置に、パラメータ・ブロックの履歴オフセット(HO)フィールド386および履歴長(HL)フィールド385によって指定されたとおりに位置する。
・HBTがインラインであるときには、第1のオペランド位置に対するストレージ更新も、結果として得られる履歴に対する更新を構成する。更新後の第1のオペランド・アドレスおよび更新後のHLが、結果として得られる履歴の更新後の位置および更新後の長さを指定する。
・HBTが循環であるときには、履歴が更新されるときに、第3のオペランド位置に対するストレージ更新が実行される。第3のオペランド・アドレス、更新後のHOおよび更新後のHLが、結果として得られる履歴の更新後の位置および更新後の長さを指定する。
HE=R3+modulo32K(HO+HL-1)
・第3のオペランド位置の中のバイトの範囲に記憶が実施される。このバイトの範囲は、下式によって指示される位置を含み、その位置から始まる。
R3+modulo32K(HOO+HLO)、上式で、
HOO:命令実行前の履歴オフセット
HLO:命令実行前の履歴長
である。
このバイトの範囲は、例えば下式によって指示される位置を含み、その位置で終わる。
R3+modulo32K(HOO+HLO+BP-1)、この式で、
BP:命令の実行中に第1のオペランド位置に記憶されたバイトの数
である。
上で説明したバイトの範囲に実施される記憶は、ストア・タイプ・アクセス例外、PERストレージ変更イベントおよびセッティング変更ビットにさらされる。
・ストレージ位置の内容を変更しない記憶であって、必要でない記憶は、第3のオペランド位置の中の、上で説明した範囲に含まれないバイトに実施することができる。このような位置への記憶も、ストア・タイプ・アクセス例外、PERストレージ変更イベントおよびセッティング変更ビットにさらされる。
・パラメータ・ブロックのモデル・バージョン番号(MVN)フィールド363に、モデルに依存する値が記憶される。
・パラメータ・ブロックのサブバイト境界(SBB)フィールド381が更新される。
・汎用レジスタR1の中のアドレスが、第1のオペランド位置に記憶されたバイトの数だけインクリメントされ、汎用レジスタR1+1の中の長さが、同じ数だけデクリメントされる。
・汎用レジスタR2の中のアドレスが、処理ビット0を含んだ第2のオペランドの処理されたバイトの数だけインクリメントされ、汎用レジスタR2+1の中の長さが、同じ数だけデクリメントされる。処理ビット0を含んだ第2のオペランドの処理されたバイトの数は、処理された入力ビットの数とSBBの元の値との和である被除数および値8である除数を用いた整数除算の結果得られる整数商である。
・命令が再実行されており(例えば命令の実行の開始時にパラメータ・ブロックのCFフィールド373が1であり)、命令が以前に実行されたときに第2のオペランドの全体が処理された。
・ブロック・ヘッダ
・2進数00のブロック・タイプを有するブロックのLENフィールド
・2進数00のブロック・タイプを有するブロックのNLENフィールド
・動的ハフマン表の圧縮フォーマット
・エンド・オブ・ブロック(EOB)シンボル
・パラメータ・ブロック・バージョン番号362によって指定されたパラメータ・ブロックのフォーマットが、モデルによってサポートされていない。
・パラメータ・ブロック・バージョン番号362によって指定されたパラメータ・ブロックのフォーマットが、モデルによってサポートされていない。
・NT374が0であり、HL385が例えば32,768よりも大きい。
・HTT376が1であり、CDHTL366が例えば42よりも小さく、または例えば2283よりも大きい。
・HTT376が1であり、CDHTL366が、CDHTフィールド367の中に指定されたDHTの圧縮フォーマットの長さに等しくない。
・HTT376が1であり、DHTの圧縮フォーマットのHLITサブ要素が例えば29よりも大きい(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマットのHDISTサブ要素が例えば29よりも大きい(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、圧縮DHTに対して定義された可能なコード長、例えば19の可能なコード長に対するビット長を指定するコードのシーケンスの中のコードであって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコードを指定する(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、リテラル・バイト、EOBシンボルおよび重複ストリング長からなる要素のセットに対する最初のコード長としてコード長、例えば16を指定する(以前のコード長をコピーする)(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、リテラル・バイトに対するコード長を指定するコードのシーケンスの中のコードを指定しており、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、EOBシンボルにコード長0(CL0)を割り当てるコードを指定する。この場合、対応するDHTは、EOBシンボルを表すハフマン・コードを指定しない(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、重複ストリング長およびポインタ距離に対するコード長を指定するコードのシーケンスの中のコードを指定しており、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、HLITフィールドの中の値と、HDISTフィールドの中の値と例えば258と和によって指定される、DHTの中のハフマン・コードの数よりも大きいいくつかのコード長を指定する。例として、これは、コード長16、17および18の不適切な使用によって可能である(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、リテラル・バイト、EOBシンボルおよび重複ストリング長のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する(無効なDHT)。
・HTT376が1であり、DHTの圧縮フォーマット(CDHTフィールド367の内容)が、重複ストリング・ポインタ距離のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する(無効なDHT)。
・CPUが、第2のオペランドの中のリテラル・バイトを表す圧縮データ・シンボルを生成しようとしており、CDHTフィールドの内容から導出されたDHTが非ユニバーサルであり、そのリテラル・バイトに対応するハフマン・コードを指定しない。
・CPUが、第2のオペランドの中の重複ストリングを表す圧縮データ・シンボルを生成しようとしており、CDHTフィールドの内容から導出されたDHTが非ユニバーサルであり、その重複ストリングの長さまたはポインタ距離に対応するハフマン・コードを指定しない。
・パラメータ・ブロック・バージョン番号362によって指定されたパラメータ・ブロックのフォーマットが、モデルによってサポートされていない。
・NT374が0であり、HL385が例えば32,768よりも大きい。
・2進数11に等しいBTYPEを有する圧縮データ・ブロックに遭遇する。
・2進数00に等しいBTYPEおよびLENの1の補数に等しくないNLENを有する圧縮データ・ブロックに遭遇する。
・DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇し、圧縮DHTのHLITサブ要素が例えば29よりも大きい(無効なDHT)。
・DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇し、圧縮DHTのHDISTサブ要素が例えば29よりも大きい(無効なDHT)。
・圧縮DHTに対して定義された可能なコード長、例えば19の可能なコード長に対するビット長を指定するコードのシーケンスの中のコードであって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコードを指定する、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・リテラル・バイト、EOBシンボルおよび重複ストリング長からなる要素のセットに対する最初のコード長としてコード長、例えば16を指定する(以前のコード長をコピーする)、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・リテラル・バイトに対するコード長を指定するコードのシーケンスの中のコードを指定しており、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・EOBシンボルにコード長0(CL0)を割り当てるコードを指定する、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する。この場合、対応するDHTは、EOBシンボルを表すハフマン・コードを指定しない(無効なDHT)。
・重複ストリング長およびポインタ距離に対するコード長を指定するコードのシーケンスの中のコードを指定しており、そのコードが、圧縮DHTの中で以前に指定された、参照されたコード長のセットを表すように決定されたどのコードとも一致しない、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・HLITフィールドの中の値と、HDISTフィールドの中の値と例えば258と和によって指定される、DHTの中のハフマン・コードの数よりも大きいいくつかのコード長を指定する、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する。例として、これは、コード長16、17および18の不適切な使用によって可能である(無効なDHT)。
・リテラル・バイト、EOBシンボルおよび重複ストリング長のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・重複ストリング・ポインタ距離のセットに対するコード長であって、機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも短いコード長を指定する、DHTの圧縮フォーマット(2進数10に等しいBTYPEを有する圧縮データ・ブロックの内容)に遭遇する(無効なDHT)。
・2進数10に等しいBTYPEを有する圧縮データ・ブロックの中で遭遇する圧縮データ・シンボルが、同じブロックの中のDHTの圧縮フォーマットから導出された非ユニバーサルDHTによって定義されていないハフマン・コードを指定する。この場合、汎用オペランド・データ例外を認識するための処理に使用可能となる第2のオペランドのビットの数は、モデルに依存する。より詳細には、不定のコードをデコードしようとするモデルは、たとえより少数のビットを処理した後に例外を決定することができることもあるにせよ、例外を認識する前に、例えば15ビットを処理することがある。
・重複ストリング・ポインタであり、シンボルを処理する時点で使用可能な履歴長よりも長い距離を指定する、圧縮データ・シンボルに遭遇する。
・2進数01に等しいBTYPEを有する圧縮データ・ブロックの中で遭遇する圧縮データ・シンボルが、無効コード(例えば、重複ストリング長に対する2進数11000110または11000111のコード、または重複ストリング・ポインタ距離に対する2進数11110または11111のコード)を指定する。この場合、汎用オペランド・データ例外を認識するための処理に使用可能となる第2のオペランドのビットの数は、モデルに依存する。より詳細には、無効コードをデコードしようとするモデルは、たとえより少数のビットを処理した後に例外を決定することができることもあるにせよ、例外を認識する前に、例えば、重複ストリング長の場合には8ビット、または重複ストリング・ポインタ距離の場合には5ビットを処理することがある。
・パラメータ・ブロックが第1または第2のオペランドに重なる。
・第1のオペランドが第2のオペランドに重なる。
・指定された履歴バッファ・タイプ(HBT)が循環であり、第3のオペランドが、第1のオペランド、第2のオペランドまたはパラメータ・ブロックに重なる。
・指定された履歴バッファ・タイプ(HBT)がインラインであり、DFLTCC-CMPR機能が指定されており、履歴が、第1のオペランドまたはパラメータ・ブロックに重なる。
・指定された履歴バッファ・タイプ(HBT)がインラインであり、DFLTCC-XPND機能が指定されており、履歴が、第2のオペランドまたはパラメータ・ブロックに重なる。
0 正常完了
1 第1のオペランド長が、オペレーションを完了するのに不十分である
2 第2のオペランド長が、オペレーション(DFLTCC-XPND)を完了するのに不十分である
3 CPUによって決定される量のデータが処理された
・アクセス(フェッチ、オペランド2、インライン履歴;フェッチおよびストア、パラメータ・ブロック、オペランド1、オペランド3)
・DXC0を有するデータ、汎用オペランド
・オペレーション(DEFLATE変換機能がインストールされていない場合)
・指定
・トランザクション制約
1.~6. 一般的なケースに対するプログラム中断条件の優先度と同じ優先度を有する例外
7.A 第2の命令ハーフワードに対するアクセス例外
7.B オペレーション例外
7.C トランザクション制約
8.A 無効な機能コードまたは無効なレジスタ番号による指定例外
8.B パラメータ・ブロックが4キロバイト境界に指示されてないことによる指定例外
8.C 循環履歴バッファが4キロバイト境界に指示されてないことによる指定例外
9. パラメータ・ブロックへのアクセスに対するアクセス例外
10. パラメータ・ブロックの指定されたフォーマットがモードによってサポートされていないときの汎用オペランド・データ例外
11. 命令の実行の開始時に第2のオペランド長が0に等しく、CFが0に等しいことによる指定例外
12. 命令の実行の開始時に第1のオペランド長が0に等しく、DFLTCC-CMPRが指定されていることによる条件コード1
13.A DFLTCC-CMPRまたはDFLTCC-XPNDが指定されているときに、履歴長フィールドが32,768よりも大きく、新規タスク・フィールドが0であることによる汎用オペランド・データ例外
13.B 第1のオペランドおよび第1のオペランド長へのアクセスが0でないことに対するアクセス例外
13.C 第2のオペランドおよび第2のオペランド長へのアクセスが0でないことに対するアクセス例外
13.D 命令の実行の開始時に指定されたインライン履歴へのアクセスに対するアクセス例外
13.E 第3のオペランドへのアクセスに対するアクセス例外
14.A 上記項目10および13.Aに含まれる条件以外の条件による汎用オペランド・データ例外
14.B 上記項目12に含まれる条件以外の条件による条件コード1、2または3
15. 条件コード0
1.データを圧縮または復元するときには、全体として、DEFLATE変換呼出し命令が実行される回数を最小にしてオペレーションを実行したときの方が効率的なことがある。言い換えると、小さなオペランドを用いてDFLTCCを複数回実行するよりも、大きなオペランドを用いてDFLTCCを実行した方が効率的なことがある。
2.圧縮および復元オペレーションに関して、条件コード3がセットされているときには、命令によって使用される汎用レジスタおよびパラメータ・ブロックが、プログラムが分岐して命令の上部に戻りオペレーションを続けることができるように、更新されている。
3.一実施形態では、DEFLATE変換呼出し命令が中断可能だが、命令のパラメータによって指定された処理の、CPUによって決定されるサブ部分を実行した後に、この命令を完了させることができる。指定された全ての処理を実行する代わりに、CPUによって決定される量の処理だけを実行した後に命令が完了したときには、命令が、条件コード3をセットする。このように完了したときには、PSW(program status word)(プログラム・ステータス・ワード)の中の命令アドレスが、次順命令(next sequential instruction)を指示し、その命令のオペランド・パラメータは、分岐して命令の上部に戻って処理を再実行することによってその命令の処理を再開することができるように調整されている。指定された全ての処理を実行したとき、命令は、条件コード3以外の条件コードをセットする。
4.DFLTCC-CMPR機能が指定されており、このオペレーションが、パラメータ・ブロックのサブバイト境界(SBB)フィールドの中の値が0でない状態で終了したとき、オペレーションは、結果として得られる第1のオペランド・アドレスによって指示されたバイトに記憶することを含む。DFLTCC-XPND機能が指定されており、このオペレーションが、SBBの中の値が0でない状態で終了したとき、オペレーションは、結果として得られる第2のオペランド・アドレスによって指示されたバイトをフェッチすることを含む。
5.オペレーションが、0でない条件コードがセットされた状態で終了したときには、パラメータ・ブロックのCSBフィールド392が、部分的に処理されたデータを含むことがあり、オペレーションを再開するために、プログラムが命令を再実行することが予想される。
6.オペレーションが、0でない条件コードがセットされた状態で終了した後、オペレーションを再開するために命令を再実行する前に、プログラムは、パラメータ・ブロックのどのフィールドも変更せず、そうでない場合、結果は予測不能である。
7.DFLTCC-GDHT機能が指定されているとき、生成されたDHTの圧縮表現は、ハフマン・アルゴリズムに従って、3つのプロパーフル(proper-full)ハフマン・コード・ツリーを記述する。すなわち、アンダーフル(under-full)ハフマン・コード・ツリーは記述されない。アンダーフル・ハフマン・コード・ツリーは、適正な機能ハフマン・ツリーを指定するためにハフマン・アルゴリズムが必要とする長さよりも大きい、要素に対するコード長を指定するDHTの圧縮表現から導出される。
DFLTCC-CMPR機能が指定されており、HTTが1であり、DHTの圧縮表現が、アンダーフル・ハフマン・コード・ツリーの記述を含むときには、DFLTCC-XPND機能を使用することによって、圧縮データ結果を元の圧縮されていないデータに変換することができるが、DEFLATE規格に準拠した全てのデコーダが、圧縮データ結果を元の圧縮されていないデータに変換することができるわけではない。このことは、例えば、DFLTCC-CMPR機能に関して、プログラムによって指定されたDHTの圧縮表現が生成されなかったときに、DFLTCC-GDHT機能を実行した結果として起こることがある。
8.DFLTCC-CMPR機能が、条件コード1がセットされた状態で終了したとき、パラメータ・ブロックのサブバイト境界(SBB)フィールド381に記憶される結果は、2進数000である。このシナリオを認識することは、DEFLATE変換呼出し命令とともに使用するために出力バッファを割り振るプログラムに関連していることがある。
DEFLATE変換呼出し命令の個々の実行で使用するように指定された入力または出力バッファのサイズが比較的に小さい(例えば512バイトである)ときには、例えば最大32キロバイトのバッファリングされたデータの複数のセグメントにまたがる履歴を、少数のバイトを処理するDEFLATE変換呼出し命令への入力として使用することができる。
DEFLATE変換呼出し命令の個々の実行で使用するように指定された入力または出力バッファのサイズが比較的に大きい(例えば128キロバイトである)ときには、例えば最大32キロバイトのバッファリングされたデータの前のセグメントの履歴を、最初の32キロバイトのデータを処理しているDEFLATE変換呼出し命令への入力として使用することができる。
オンデマンド・セルフサービス:クラウド・コンシューマは、サーバ時間およびネットワーク・ストレージなどのコンピューティング機能の供給を、サービスのプロバイダとのヒューマン・インタラクションを必要とすることなく必要に応じて自動的に一方的に受けることができる。
ブロード・ネットワーク・アクセス:機能は、ネットワーク上で利用可能であり、異種のシンまたはシック・クライアント・プラットフォーム(例えば移動電話、ラップトップおよびPDA)による使用を促進する標準的機構を通してアクセスされる。
リソース・プーリング(resource pooling):マルチテナント・モデルを使用して多数のコンシューマにサービスを提供するため、プロバイダのコンピューティング・リソースはプールされており、要求に応じて、異なる物理的および仮想リソースが動的に割当ておよび再割当てされる。コンシューマは一般に、提供されたリソースの正確な位置を制御できずまたは正確な位置を知らないが、より高次の抽象化レベル(例えば国、州またはデータセンター)で位置を指定することができるという意味で、位置独立の感覚がある。
ラピッド・エラスティシティ(rapid elasticity):機能は、素早くスケールアウトするために迅速かつ弾力的に、場合によっては自動的に供給することができ、素早くスケールインするために迅速にリリースすることができる。コンシューマにとって、供給に利用可能な機能はしばしば無限であるように見え、いつでも好きな量だけ購入することができる。
メジャード・サービス(measured service):クラウド・システムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅および使用中ユーザ・アカウント)に対して適切なある抽象化レベルで計測機能に介入することによって、リソースの使用状況を自動的に制御および最適化する。リソースの使用状況を監視、制御および報告して、利用されているサービスのプロバイダとコンシューマの両方に透明性を提供することができる。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上でランしているプロバイダのアプリケーションを使用する機能である。ウェブ・ブラウザなどのシン・クライアント・インタフェース(例えばウェブ・ベースの電子メール)を通してさまざまなクライアント・デバイスからアプリケーションにアクセス可能である。場合によっては可能な限られたユーザ固有のアプリケーション構成の設定を除けば、コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージまたは個々のアプリケーション機能を含む基礎をなすクラウド・インフラストラクチャを管理もまたは制御もしない。
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供されるこの機能は、クラウド・インフラストラクチャ上で、プロバイダがサポートするプログラム言語およびツールを使用して作成されたコンシューマ作成または取得のアプリケーションをデプロイする機能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境構成は制御することができる。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供されるこの機能は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティング・リソースを供給する機能であり、コンシューマは任意のソフトウェアをデプロイおよびランすることができ、このソフトウェアは、オペレーティング・システムおよびアプリケーションを含むことができる。コンシューマは、基礎をなすクラウド・インフラストラクチャを管理も制御もしないが、オペレーティング・システム、ストレージおよびデプロイされたアプリケーションは制御することができ、場合によっては、選択されたネットワーク構成要素(例えばホスト・ファイアウォール)を限定的に制御することができる。
プライベート・クラウド:このクラウド・インフラストラクチャは、組織体のためだけに運営される。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミス(on-premises)またはオフプレミス(off-premises)で存在することができる。
コミュニティ・クラウド:このクラウド・インフラストラクチャは、いくつかの組織体によって共有され、利害(例えばミッション、セキュリティ要件、ポリシーおよびコンプライアンス上の問題)を共有する特定のコミュニティをサポートする。インフラストラクチャは、その組織体または第三者が管理することができ、オンプレミスまたはオフプレミスで存在することができる。
パブリック・クラウド:このクラウド・インフラストラクチャは、一般大衆または大きな産業グループが利用可能であり、クラウド・サービスを販売している組織体によって所有される。
ハイブリッド・クラウド:このクラウド・インフラストラクチャは、固有の実体を維持しているが、データおよびアプリケーション・ポータビリティを可能にする標準化された技術または独占技術(例えばクラウド間のロード・バランシングのためのクラウド・バースティング(cloud bursting))によって1つに結合された2つ以上のクラウド(プライベート、コミュニティまたはパブリック)の合成体である。
ハードウェアおよびソフトウェア層60は、ハードウェア構成要素およびソフトウェア構成要素を含む。ハードウェア構成要素の例は、メインフレーム61、RISC(縮小命令セット・コンピュータ)アーキテクチャ・ベースのサーバ62、サーバ63、ブレード・サーバ64、ストレージ・デバイス65ならびにネットワークおよびネットワーキング構成要素66を含む。いくつかの実施形態では、ソフトウェア構成要素が、ネットワーク・アプリケーション・サーバ・ソフトウェア67およびデータベース・ソフトウェア68を含む。
仮想化層70は抽象化層を提供し、この層から、仮想実体の以下の例を提供することができる:仮想サーバ71、仮想ストレージ72、仮想専用ネットワークを含む仮想ネットワーク73、仮想アプリケーションおよびオペレーティング・システム74、ならびに仮想クライアント75。
Claims (8)
- コンピューティング環境内での処理を容易にするためのコンピュータ・プログラムを記録した、処理回路によって可読のコンピュータ可読記憶媒体であって、方法を実行するための命令を記憶していて、前記方法が、
前記コンピューティング環境のプロセッサによって、複数の機能のうちの機能を実行するための命令を取得することであって、前記機能が前記命令の実行に使用される暗黙の汎用レジスタの機能コードによって指定されており、前記命令が、圧縮のための業界標準に準拠した命令セット・アーキテクチャの単一のアーキテクト命令である、前記取得することと、
前記命令を実行することと
を含み、前記命令を実行することが、
前記命令によって指定された前記機能を実行することであって、前記機能が圧縮機能であることまたは解凍機能であることに基づいて、前記機能を実行することが、入力データの状態を、前記入力データが現れる順番に、前記入力データの圧縮されていない形態と前記入力データの圧縮された形態との間で変換して、変換された状態のデータを提供する、前記実行することと、
前記機能を実行している間に、前記機能に関係する履歴にアクセスすることであって、前記履歴が、前記入力データの前記状態を、前記圧縮されていない形態と前記圧縮された形態との間で変換する際に使用される、前記アクセスすることと、
タスクを実行する際に使用するために、前記変換された状態のデータを出力として提供することと
を含み、
前記履歴が、前記命令によって指定されたバッファに記憶されていて、
前記命令が、オペレーションを指定するためのオペレーション・コードを含むオペレーション・コード・フィールドと、前記命令によって使用される複数のレジスタを指定するための複数のレジスタ・フィールドとを含み、前記複数のレジスタが、前記命令によって出力として使用される出力オペランド位置を識別するために使用される1つのレジスタと、前記命令によって入力として使用される入力オペランド位置を識別するために使用される別のレジスタとを含み、
前記命令が、前記バッファのメモリ内の位置を指定するための選択されたレジスタと、前記命令によって使用されるパラメータ・ブロックのアドレスを提供するための選択された別のレジスタとを使用し、前記パラメータ・ブロックが、前記バッファ内の前記履歴の始まりを指示する前記バッファ内のオフセットを指定し、
前記命令が、前記バッファのタイプを指定するための選ばれたレジスタを使用する、
コンピュータ可読記憶媒体。 - 前記プロセッサが汎用プロセッサである、請求項1に記載のコンピュータ可読記憶媒体。
- 前記入力データの前記状態を変換することが、前記業界標準に準拠した圧縮フォーマットを使用する、請求項1に記載のコンピュータ可読記憶媒体。
- 前記入力が前記機能に依存し、前記機能が前記圧縮機能であることに基づいて、前記入力が、前記入力オペランド位置からのデータを含み、前記データが、前記出力オペランド位置に記憶される圧縮データ・シンボルを提供するようにエンコードされ、前記入力オペランド位置から前記バッファに記憶される履歴としてコピーされ、前記機能が前記解凍機能であることに基づいて、前記入力が、前記入力オペランド位置からの前記圧縮データ・シンボルを含み、前記圧縮データ・シンボルが、前記出力オペランド位置および前記バッファに記憶される圧縮されていないデータを提供するようにデコードされる、請求項1に記載のコンピュータ可読記憶媒体。
- 前記パラメータ・ブロックが、前記バッファ内の前記履歴の長さをさらに含む、請求項1に記載のコンピュータ可読記憶媒体。
- 前記バッファの前記タイプが循環バッファである、請求項1に記載のコンピュータ可読記憶媒体。
- コンピューティング環境内での処理を容易にするためのコンピュータ・システムであって、前記コンピュータ・システムが、
メモリと、
前記メモリに結合されたプロセッサと
を備え、前記コンピュータ・システムが、方法を実行するように構成されており、前記方法が、
前記プロセッサによって、複数の機能のうちの機能を実行するための命令を取得することであって、前記機能が前記命令の実行に使用される暗黙の汎用レジスタの機能コードによって指定されており、前記命令が、圧縮のための業界標準に準拠した命令セット・アーキテクチャの単一のアーキテクト命令である、前記取得することと、
前記命令を実行することと
を含み、前記命令を実行することが、
前記命令によって指定された前記機能を実行することであって、前記機能が圧縮機能であることまたは解凍機能であることに基づいて、前記機能を実行することが、入力データの状態を、前記入力データが現れる順番に、前記入力データの圧縮されていない形態と前記入力データの圧縮された形態との間で変換して、変換された状態のデータを提供する、前記実行することと、
前記機能を実行している間に、前記機能に関係する履歴にアクセスすることであって、前記履歴が、前記入力データの前記状態を、前記圧縮されていない形態と前記圧縮された形態との間で変換する際に使用される、前記アクセスすることと、
タスクを実行する際に使用するために、前記変換された状態のデータを出力として提供することと
を含み、
前記履歴が、前記命令によって指定されたバッファに記憶されていて、
前記命令が、オペレーションを指定するためのオペレーション・コードを含むオペレーション・コード・フィールドと、前記命令によって使用される複数のレジスタを指定するための複数のレジスタ・フィールドとを含み、前記複数のレジスタが、前記命令によって出力として使用される出力オペランド位置を識別するために使用される1つのレジスタと、前記命令によって入力として使用される入力オペランド位置を識別するために使用される別のレジスタとを含み、
前記命令が、前記バッファのメモリ内の位置を指定するための選択されたレジスタと、前記命令によって使用されるパラメータ・ブロックのアドレスを提供するための選択された別のレジスタとを使用し、前記パラメータ・ブロックが、前記バッファ内の前記履歴の始まりを指示する前記バッファ内のオフセットを指定し、
前記パラメータ・ブロックが、前記バッファ内の前記履歴の長さをさらに含み、前記命令が、前記バッファのタイプを指定するための選ばれたレジスタを使用し、前記バッファの前記タイプが循環バッファである、
コンピュータ・システム。 - コンピューティング環境内での処理を容易にするコンピュータ実施方法であって、前記コンピュータ実施方法が、
前記コンピューティング環境のプロセッサによって、複数の機能のうちの機能を実行するための命令を取得することであって、前記機能が前記命令の実行に使用される暗黙の汎用レジスタの機能コードによって指定されており、前記命令が、圧縮のための業界標準に準拠した命令セット・アーキテクチャの単一のアーキテクト命令である、前記取得することと、
前記命令を実行することと
を含み、前記命令を実行することが、
前記命令によって指定された前記機能を実行することであって、前記機能が圧縮機能であることまたは解凍機能であることに基づいて、前記機能を実行することが、入力データの状態を、前記入力データが現れる順番に、前記入力データの圧縮されていない形態と前記入力データの圧縮された形態との間で変換して、変換された状態のデータを提供する、前記実行することと、
前記機能を実行している間に、前記機能に関係する履歴にアクセスすることであって、前記履歴が、前記入力データの前記状態を、前記圧縮されていない形態と前記圧縮された形態との間で変換する際に使用される、前記アクセスすることと、
タスクを実行する際に使用するために、前記変換された状態のデータを出力として提供することと
を含み、
前記履歴が、前記命令によって指定されたバッファに記憶されていて、
前記命令が、オペレーションを指定するためのオペレーション・コードを含むオペレーション・コード・フィールドと、前記命令によって使用される複数のレジスタを指定するための複数のレジスタ・フィールドとを含み、前記複数のレジスタが、前記命令によって出力として使用される出力オペランド位置を識別するために使用される1つのレジスタと、前記命令によって入力として使用される入力オペランド位置を識別するために使用される別のレジスタとを含み、
前記命令が、前記バッファのメモリ内の位置を指定するための選択されたレジスタと、前記命令によって使用されるパラメータ・ブロックのアドレスを提供するための選択された別のレジスタとを使用し、前記パラメータ・ブロックが、前記バッファ内の前記履歴の始まりを指示する前記バッファ内のオフセットを指定し、
前記パラメータ・ブロックが、前記バッファ内の前記履歴の長さをさらに含み、前記命令が、前記バッファのタイプを指定するための選ばれたレジスタを使用し、前記バッファの前記タイプが循環バッファである、
コンピュータ実施方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/263,786 | 2019-01-31 | ||
US16/263,786 US10831497B2 (en) | 2019-01-31 | 2019-01-31 | Compression/decompression instruction specifying a history buffer to be used in the compression/decompression of data |
PCT/EP2020/051666 WO2020156927A1 (en) | 2019-01-31 | 2020-01-23 | Compression/decompression instruction specifying a history buffer to be used in the compression/decompression of data |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2022518666A JP2022518666A (ja) | 2022-03-16 |
JP7442529B2 true JP7442529B2 (ja) | 2024-03-04 |
Family
ID=69192076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021533139A Active JP7442529B2 (ja) | 2019-01-31 | 2020-01-23 | データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10831497B2 (ja) |
EP (1) | EP3918470B1 (ja) |
JP (1) | JP7442529B2 (ja) |
CN (1) | CN113366436A (ja) |
AU (1) | AU2020214177B2 (ja) |
BR (1) | BR112021015073A2 (ja) |
CA (1) | CA3127864A1 (ja) |
IL (1) | IL284466B2 (ja) |
WO (1) | WO2020156927A1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220180420A1 (en) * | 2019-03-28 | 2022-06-09 | Nec Corporation | Intermediary device, control device, control method and storage medium |
US11188338B2 (en) * | 2019-06-13 | 2021-11-30 | Fungible, Inc. | Context value retrieval prior to or parallel with expansion of previous symbol for context-decoding in range decoder |
US11663119B2 (en) * | 2020-05-29 | 2023-05-30 | International Business Machines Corporation | Select decompression headers and symbol start indicators used in writing decompressed data |
US20220197643A1 (en) * | 2020-12-23 | 2022-06-23 | Intel Corporation | Speculative decompression within processor core caches |
US11747980B1 (en) | 2022-05-19 | 2023-09-05 | International Business Machines Corporation | Decompression of a file |
CN115277592B (zh) * | 2022-07-20 | 2023-04-11 | 哈尔滨市科佳通用机电股份有限公司 | 一种机车信号设备在信号切换时的解码方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007080278A (ja) | 2003-05-12 | 2007-03-29 | Internatl Business Mach Corp <Ibm> | 埋め込み符号を持ったコンピュータ命令値フィールド |
JP2010258532A (ja) | 2009-04-21 | 2010-11-11 | Internatl Business Mach Corp <Ibm> | ビット長を符号に変換する回路及び方法 |
JP2014182810A (ja) | 2013-03-15 | 2014-09-29 | Intel Corp | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 |
JP2016213806A (ja) | 2015-05-11 | 2016-12-15 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 入力ブロックのスキャンと同時にソート済みシンボル・リストを維持するハードウェア・データ圧縮器 |
US20170161362A1 (en) | 2015-12-03 | 2017-06-08 | International Business Machines Corporation | Memory preserving parse tree based compression with entropy coding |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155484A (en) * | 1991-09-13 | 1992-10-13 | Salient Software, Inc. | Fast data compressor with direct lookup table indexing into history buffer |
US5926208A (en) * | 1992-02-19 | 1999-07-20 | Noonen; Michael | Video compression and decompression arrangement having reconfigurable camera and low-bandwidth transmission capability |
US5442350A (en) * | 1992-10-29 | 1995-08-15 | International Business Machines Corporation | Method and means providing static dictionary structures for compressing character data and expanding compressed data |
US6879266B1 (en) * | 1997-08-08 | 2005-04-12 | Quickshift, Inc. | Memory module including scalable embedded parallel data compression and decompression engines |
US6822589B1 (en) * | 1999-01-29 | 2004-11-23 | Quickshift, Inc. | System and method for performing scalable embedded parallel data decompression |
US6604158B1 (en) | 1999-03-11 | 2003-08-05 | Realtime Data, Llc | System and methods for accelerated data storage and retrieval |
US20030185301A1 (en) | 2002-04-02 | 2003-10-02 | Abrams Thomas Algie | Video appliance |
GB0513433D0 (en) * | 2005-06-30 | 2005-08-10 | Nokia Corp | Signal message compressor |
GB0513432D0 (en) * | 2005-06-30 | 2005-08-10 | Nokia Corp | Signal message compression |
US7307552B2 (en) * | 2005-11-16 | 2007-12-11 | Cisco Technology, Inc. | Method and apparatus for efficient hardware based deflate |
US7991622B2 (en) | 2007-03-20 | 2011-08-02 | Microsoft Corporation | Audio compression and decompression using integer-reversible modulated lapped transforms |
GB0721648D0 (en) * | 2007-11-05 | 2007-12-19 | Roke Manor Research | Internet data processing systems |
US20100223237A1 (en) | 2007-11-05 | 2010-09-02 | University Of Florida Research Foundation, Inc. | Lossless data compression and real-time decompression |
CN101977061B (zh) | 2010-10-19 | 2012-12-26 | 广西师范大学 | 一种通用信息的无损压缩与解压缩方法 |
WO2012053015A2 (en) | 2010-10-22 | 2012-04-26 | Jana, Tejaswini, Ramesh | Compression and decompression of data at high speed in solid state storage |
US9766812B2 (en) | 2011-07-20 | 2017-09-19 | Veritas Technologies Llc | Method and system for storing data in compliance with a compression handling instruction |
US20140006536A1 (en) | 2012-06-29 | 2014-01-02 | Intel Corporation | Techniques to accelerate lossless compression |
US9154157B2 (en) | 2012-09-27 | 2015-10-06 | Intel Corporation | Search unit to accelerate variable length compression/decompression |
US9606961B2 (en) * | 2012-10-30 | 2017-03-28 | Intel Corporation | Instruction and logic to provide vector compress and rotate functionality |
US8947270B2 (en) * | 2013-06-29 | 2015-02-03 | Intel Corporation | Apparatus and method to accelerate compression and decompression operations |
US9374106B2 (en) | 2013-08-28 | 2016-06-21 | International Business Machines Corporation | Efficient context save/restore during hardware decompression of DEFLATE encoded data |
US9094039B2 (en) * | 2013-10-18 | 2015-07-28 | Advanced Micro Devices, Inc. | Efficient deflate decompression |
US9306596B2 (en) | 2014-06-27 | 2016-04-05 | Intel Corporation | Hybrid CAM assisted deflate decompression accelerator |
US10102215B2 (en) * | 2015-03-27 | 2018-10-16 | Intel Corporation | Apparatus for hardware implementation of lossless data compression |
US9513919B2 (en) * | 2015-04-28 | 2016-12-06 | Intel Corporation | Method and apparatus for speculative decompression |
US9564917B1 (en) | 2015-12-18 | 2017-02-07 | Intel Corporation | Instruction and logic for accelerated compressed data decoding |
CN105871382B (zh) | 2016-03-29 | 2019-10-18 | 中海油信息科技有限公司 | 一种Micaps第四类格点数据无损压缩算法 |
US20180150256A1 (en) * | 2016-11-29 | 2018-05-31 | Intel Corporation | Technologies for data deduplication in disaggregated architectures |
US9917597B1 (en) * | 2016-12-16 | 2018-03-13 | Intel Corporation | Method and apparatus for accelerated data compression with hints and filtering |
US10691361B2 (en) * | 2017-02-24 | 2020-06-23 | Microsoft Technology Licensing, Llc | Multi-format pipelined hardware decompressor |
US10496703B2 (en) * | 2017-06-27 | 2019-12-03 | Intel Corporation | Techniques for random operations on compressed data |
US10270464B1 (en) * | 2018-03-30 | 2019-04-23 | Intel Corporation | Method and apparatus for high performance compression and decompression |
US10705842B2 (en) * | 2018-04-02 | 2020-07-07 | Intel Corporation | Hardware accelerators and methods for high-performance authenticated encryption |
US10691529B2 (en) * | 2018-06-20 | 2020-06-23 | Intel Corporation | Supporting random access of compressed data |
US10694217B2 (en) * | 2018-09-21 | 2020-06-23 | Intel Corporation | Efficient length limiting of compression codes |
US10719323B2 (en) * | 2018-09-27 | 2020-07-21 | Intel Corporation | Systems and methods for performing matrix compress and decompress instructions |
US10511324B1 (en) * | 2018-11-01 | 2019-12-17 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
US10630312B1 (en) * | 2019-01-31 | 2020-04-21 | International Business Machines Corporation | General-purpose processor instruction to perform compression/decompression operations |
US10698854B1 (en) * | 2019-02-27 | 2020-06-30 | International Business Machines Corporation | Secure and efficient application data processing |
US10673460B1 (en) * | 2019-02-27 | 2020-06-02 | International Business Machines Corporation | Spilling temporary results for accommodation of memory boundaries |
-
2019
- 2019-01-31 US US16/263,786 patent/US10831497B2/en active Active
-
2020
- 2020-01-23 BR BR112021015073-0A patent/BR112021015073A2/pt unknown
- 2020-01-23 JP JP2021533139A patent/JP7442529B2/ja active Active
- 2020-01-23 CA CA3127864A patent/CA3127864A1/en active Pending
- 2020-01-23 WO PCT/EP2020/051666 patent/WO2020156927A1/en unknown
- 2020-01-23 AU AU2020214177A patent/AU2020214177B2/en active Active
- 2020-01-23 IL IL284466A patent/IL284466B2/en unknown
- 2020-01-23 CN CN202080011427.5A patent/CN113366436A/zh active Pending
- 2020-01-23 EP EP20701987.8A patent/EP3918470B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007080278A (ja) | 2003-05-12 | 2007-03-29 | Internatl Business Mach Corp <Ibm> | 埋め込み符号を持ったコンピュータ命令値フィールド |
JP2010258532A (ja) | 2009-04-21 | 2010-11-11 | Internatl Business Mach Corp <Ibm> | ビット長を符号に変換する回路及び方法 |
JP2014182810A (ja) | 2013-03-15 | 2014-09-29 | Intel Corp | デフレート圧縮のために高速で高圧縮のlz77トークン化及びハフマンエンコーディングを行う並列装置 |
JP2016213806A (ja) | 2015-05-11 | 2016-12-15 | ヴィア アライアンス セミコンダクター カンパニー リミテッド | 入力ブロックのスキャンと同時にソート済みシンボル・リストを維持するハードウェア・データ圧縮器 |
US20170161362A1 (en) | 2015-12-03 | 2017-06-08 | International Business Machines Corporation | Memory preserving parse tree based compression with entropy coding |
Also Published As
Publication number | Publication date |
---|---|
IL284466B2 (en) | 2024-03-01 |
EP3918470A1 (en) | 2021-12-08 |
US20200249948A1 (en) | 2020-08-06 |
IL284466B1 (en) | 2023-11-01 |
IL284466A (en) | 2021-08-31 |
AU2020214177B2 (en) | 2022-12-01 |
US10831497B2 (en) | 2020-11-10 |
JP2022518666A (ja) | 2022-03-16 |
CN113366436A (zh) | 2021-09-07 |
AU2020214177A1 (en) | 2021-05-20 |
WO2020156927A1 (en) | 2020-08-06 |
BR112021015073A2 (pt) | 2021-09-28 |
CA3127864A1 (en) | 2020-08-06 |
EP3918470B1 (en) | 2024-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7442529B2 (ja) | データの圧縮/解凍で使用する履歴バッファを指定する圧縮/解凍命令 | |
JP7442526B2 (ja) | 圧縮/解凍オペレーションを実行するための汎用プロセッサ命令 | |
US10698854B1 (en) | Secure and efficient application data processing | |
JP7481073B2 (ja) | メモリ境界の収容のためのオーバーフロー管理方法、システム、プログラム | |
US11449367B2 (en) | Functional completion when retrying a non-interruptible instruction in a bi-modal execution environment | |
US11061685B2 (en) | Extended asynchronous data mover functions compatibility indication | |
JP7430195B2 (ja) | 複数のマシン世代にわたる複合体の機能の互換性の維持 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20220512 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220622 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230516 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231031 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240123 |
|
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: 20240205 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7442529 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |