JP5313228B2 - 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア - Google Patents
適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア Download PDFInfo
- Publication number
- JP5313228B2 JP5313228B2 JP2010502281A JP2010502281A JP5313228B2 JP 5313228 B2 JP5313228 B2 JP 5313228B2 JP 2010502281 A JP2010502281 A JP 2010502281A JP 2010502281 A JP2010502281 A JP 2010502281A JP 5313228 B2 JP5313228 B2 JP 5313228B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- preload
- cache line
- instructions
- instruction cache
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 30
- 230000036316 preload Effects 0.000 claims abstract description 83
- 238000012545 processing Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003860 storage 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
-
- 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/30047—Prefetch instructions; cache control instructions
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/24—Loading of the microprogram
-
- 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
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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
-
- 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/3802—Instruction prefetching
-
- 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/3818—Decoding for concurrent execution
- G06F9/382—Pipelined decoding, e.g. using predecoding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
プレロード命令は、ブランチが実行する場合、対象に対する命令が即時実行用のキャッシュにおいて利用可能であるように、対象に対する命令を命令キャッシュの中へロードする。
プレデコード情報は例えば、ブランチおよび浮動小数点命令、またはパイプラインにおいて命令を実行するのに役立つ他の情報を識別してもよい。
一般に、コンパイラは、最もコンパクトな符号を実現するためにThumb−2命令を選択し、16ビットおよび32ビット命令は、Thumb−2コードのセグメント内で任意の順に混ぜ合わされてもよい。その上、一般にメモリにおける命令の配列上に制約はない。
しかし、第1データは、データブロック(例えば、32ビット命令の最後の16ビット)より前に始まった命令の一部でもよいし、変数、即値データなどのような非命令データを具備してもよい。後の2つのケース(部分的な命令またはデータ)のどちらかでは、第1データは、完全な命令または命令の最初の部分として不正確にプレデコードされるかもしれない。
技術的に知られるように、プロセッサ110は、周辺の146および148によって読まれる磁気または光学の媒体、またはメモリ136のようなコンピュータ読み取り可能な媒体から読み出された命令を実行する。
プレデコーダ130は、命令Aに関連した命令長さ指標を検査し、それが32ビットの命令であることを決定する。一実施形態では、命令長さ指標は命令操作コードのビットフィールドである。例えば、Thumbー2命令セットにおいて、ビット[15:11]が‘b11101、‘b11110、または‘b11111を持っている場合、その命令は長さ32ビットである。任意の他の符号化は、16ビット命令を指示する。
これは、パイプラインがL2キャッシュ136またはメモリ138アクセスを待ち受けるために失速しなければならないので、プロセッサの性能に悪影響を及ぼす。同じデータブロック204、206を2回、読み出してプレデコードしなければならないので、電力消費も増加する。
図2に示された実施形態では、例えば、最短命令は16ビット、またはハーフワードであり、命令キャッシュラインは16個のハーフワードを含む。従って、この実施形態におけるICOIは4ビットを必要とする。一般に、ICOIはmビットを具備し、命令キャッシュ126のラインサイズは最短命令の2m倍である。ICOIは、様々な方法で生成され、プレデコーダ130に通信されてもよい。
例えば、32ビット命令仮想アドレスVA[31:0]については、命令キャッシュ126のCAM構造において記憶されたタグと比較されるタグは、VA[31:11]を具備してもよい。p−ウェイセット連想キャッシュでは、タグが一致すれば、セット番号は戻ってきたp個の結果の中から選択する。セット番号はVA[10:5]を具備してもよい。インデックスVA[4:0]は、キャッシュラインの個別のバイトをアドレスによって指し示し、すなわち命令キャッシュ126のRAM構造において記憶されるデータである。データは、命令およびプレデコード情報を具備する。
ターゲットアドレスが命令キャッシュ126にヒットする場合、プレロード命令実行は完了する。ターゲットアドレスが命令キャッシュ126で外した場合、L2処理ロジック124のような命令実行部112内のロジックは、1以上のターゲット命令を含むデータブロック202、204、206のようなデータブロックを読み出すために、ミス処理を行い、L2キャッシュ136にアクセスし、必要ならば主メモリ138にアクセスする。データブロック202、204、206は、他の情報の中からブロック202、204、206における各有効命令の長さを決定するためにプレデコードされる。
プログラマまたはコンパイラは、プレデコードされるべき第1命令のアドレスおよび既知のメモリ配列に基づいて、プレロードされたデータブロック202、204、206の中へ既知のオフセットのための適切なプレロード命令を指定してもよい。
ICOIは、キャッシュラインまたはデータブロック202、204、206内の第1有効命令の位置を識別する。様々な実施形態では、ICOIは、プレロード命令ターゲットアドレスを変更すること、状態レジスタ122のようなレジスタにおいてICOIビットを設定すること、プレロード命令操作コードにおいてICOIビットフィールドを設定することにより設定されてもよい。プレロード命令は実行される(ブロック304)。プレロード命令は、L2キャッシュ136またはメモリ138から少なくとも1つのターゲット命令を含むデータブロック202、204、206を読み出し、プレデコーダ130にデータブロック202、204、206を提供するために作用する。
ICOIに応じて、プレデコーダ130は、データブロック202、204、206に第1有効命令を探し(ブロック306)、第1命令の長さを決定する(ブロック308)。
しかし、第1命令に先行するデータがデータブロック202、204、206の先頭と合わされた有効命令を具備する場合、プレデコード情報は正しだろうし、パイプライン114を支援するかもしれない。他の実施形態では、第1命令に先行するデータはプレデコードされない。
加えて、プレデコーダ130は、データブロック202、204、206における各命令がプレデコードされるように、命令キャッシュ126へ命令およびプレデコード情報を徐々に書き込んでもよい。
従って、本実施形態は、実例となりおよび非制限的な全ての態様において理解されることになり、添付された特許請求の範囲の等しい範囲および意味内に生じる全ての変更は、そこに包含されるように意図される。
以下に補正前の出願当初の特許請求の範囲の請求項を付記する。
(1)
命令キャッシュラインに対応するデータブロックへ、第1有効命令のオフセットを識別する命令キャッシュラインオフセット指標を設定し、
可変長命令セットからの少なくとも1つの命令を含むデータブロックをメモリから読み出し、前記命令キャッシュの中に前記命令をロードするプレロード命令を実行し、
前記命令キャッシュラインオフセット指標に応じて第1命令で始まる前記データブロックにおける前記命令を連続的にプレデコードすることを具備する命令キャッシュの中に可変長命令セットからの命令をプレロードする方法。
(2)
命令長さ指標に基づいて前記データブロックにおいて連続する命令の命令境界を決定することをさらに具備する(1)の方法。
(3)
命令長さ指標は、命令操作コードのビットフィールドを具備する(2)の方法。
(4)
前記命令キャッシュラインオフセット指標は、前記プレロード命令のターゲットアドレスの複数のビットを具備する(1)の方法。
(5)
前記命令キャッシュラインオフセット指標は、ターゲットアドレスビット[4:1]を具備する(4)の方法。
(6)
前記命令キャッシュラインオフセット指標は、前記プレロード命令の前記操作コードにおいて1以上のビットを具備する(1)の方法。
(7)
命令キャッシュラインオフセット指標を設定することおよびプレロード命令を実行することは、異なる命令キャッシュラインオフセット指標を含むプレロード命令ごとに、複数のプレロード命令のうちの1つを実行することを具備とする(1)の方法。
(8)
前記複数のプレロード命令は、前記データブロックへの可能な命令オフセットごとに対応するプレロード命令を含む(7)の方法。
(9)
命令キャッシュラインオフセット指標を設定することは、前記プレロード命令を実行することより前にレジスタにおいて1以上のビットを設定することを具備する(1)の方法。
(10)
前記命令キャッシュラインオフセット指標により指示されるような第1有効命令より前に前記データブロックにおいて任意のデータをプレデコードすることをさらに具備する(1)の方法。
(11)
前記命令キャッシュへ少なくとも命令長さを指示するプレデコード情報および前記命令を書き込むことをさらに具備する(1)の方法。
(12)
メモリインターフェースと、
可変長命令セットおよびプレデコード情報から命令を記憶する命令キャッシュと、
前記命令キャッシュの中にロードされるデータブロックにおいて第1有効命令の位置を識別する命令キャッシュラインオフセット指標を生成する命令実行部と、
前記命令キャッシュと前記メモリインターフェースとの間に置かれ、プレロード命令の実行時に前記命令キャッシュラインオフセット指標に応じて、第1有効命令で始まるデータブロックにおいて命令を連続的にプレデコードするプレデコーダと、を具備するプロセッサ。
(13)
前記命令実行部は、前記プレロード命令のターゲットアドレスの1以上のビットを設定することにより、前記命令キャッシュラインオフセット指標を生成する(12)のプロセッサ。
(14)
前記ターゲットアドレスは前記プレロード命令によって読み取られる汎用レジスタに書き込まれる(13)のプロセッサ。
(15)
前記命令実行部は、前記プレロード命令の前記操作コードにおける1以上のビットに応じて前記命令キャッシュラインオフセット指標を生成する(12)のプロセッサ。
(16)
前記命令実行部は、異なる命令キャッシュラインオフセット指標を特定するプレロード命令ごとに、複数のプレロード命令のうちの1つを実行する(12)のプロセッサ。
(17)
前記複数のプレロード命令は、前記データブロックへの可能な命令オフセットごとに対応するプレロード命令を含む(16)に記載のプロセッサ。
(18)
レジスタをさらに具備し、
前記命令実行部は、前記レジスタにおいて1以上の予め決定されたビットを設定することにより前記命令キャッシュラインオフセット指標を生成する(12)のプロセッサ。
(19)
前記命令キャッシュと前記メモリインターフェースとの間に置かれる第2キャッシュメモリをさらに具備し、
前記プレデコーダは前記命令キャッシュと前記第2キャッシュメモリとの間に置かれる(12)のプロセッサ。
(20)
前記プレデコーダは、命令キャッシュラインオフセット指標により指示される第1有効命令より前に前記データブロックにおいて任意のデータをプレデコードすることをさらに具備する(12)のプロセッサ。
(21)
可変長命令セットにおけるプレロード命令を少なくとも格納し、
前記命令はプロセッサに命令キャッシュへ複数の命令をプレロードさせ、
前記複数の命令は命令キャッシュラインオフセット指標により第1有効命令における先頭をプレデコードさせるコンピュータ読み取り可能な媒体。
(22)
前記命令キャッシュラインオフセット指標は、前記プレロード命令のターゲットアドレスの1以上のビットを具備する(21)のコンピュータ読み取り可能な媒体。
(23)
前記プレロード命令操作コードは、命令キャッシュラインオフセット指標ビットフィールドを含む(21)のコンピュータ読み取り可能な媒体。
(24)
前記命令キャッシュラインオフセット指標は、前記プレロード命令の実行より前にレジスタへ記憶される(21)のコンピュータ読み取り可能な媒体。
Claims (24)
- 第1有効命令のオフセットを識別する命令キャッシュラインオフセット指標を、命令キャッシュラインに対応するデータブロック内を指すように設定し、
可変長命令セットからの少なくとも1つの命令を含むデータブロックをメモリから読み出し、前記命令キャッシュの中に前記命令をロードするプレロード命令を実行し、
前記命令キャッシュラインオフセット指標に応じて第1命令で始まる前記データブロックにおける前記命令を連続的にプレデコードし、
前記命令およびプレデコード情報を前記命令キャッシュに書き込むことを具備する命令キャッシュの中に可変長命令セットからの命令をプレロードする方法。 - 命令長さ指標に基づいて前記データブロックにおいて連続する命令の命令境界を決定することをさらに具備する請求項1の方法。
- 命令長さ指標は、命令操作コードのビットフィールドを具備する請求項2の方法。
- 前記命令キャッシュラインオフセット指標は、前記プレロード命令のターゲットアドレスの複数のビットを具備する請求項1の方法。
- 前記命令キャッシュラインオフセット指標は、ターゲットアドレスビット[4:1]を具備する請求項4の方法。
- 前記命令キャッシュラインオフセット指標は、前記プレロード命令の前記操作コードにおいて1以上のビットを具備する請求項1の方法。
- 命令キャッシュラインオフセット指標を設定することおよびプレロード命令を実行することは、異なる命令キャッシュラインオフセット指標を含むプレロード命令ごとに、複数のプレロード命令のうちの1つを実行することを具備とする請求項1の方法。
- 前記複数のプレロード命令は、前記データブロックへの可能な命令オフセットごとに対応するプレロード命令を含む請求項7の方法。
- 命令キャッシュラインオフセット指標を設定することは、前記プレロード命令を実行することより前にレジスタにおいて1以上のビットを設定することを具備する請求項1の方法。
- 第1命令に先行するデータがデータブロックの先頭と合わされた有効命令を具備する場合、前記命令キャッシュラインオフセット指標により指示されるような第1有効命令より前に前記データブロックにおいて任意のデータをプレデコードすることをさらに具備する請求項1の方法。
- プレデコード情報を書き込むことは、前記命令キャッシュへ少なくとも命令長さを示すプレデコード情報を書き込む請求項1の方法。
- メモリインターフェースと、
可変長命令セットおよびプレデコード情報から命令を記憶する命令キャッシュと、
前記命令キャッシュの中にロードされるデータブロックにおいて第1有効命令の位置を識別する命令キャッシュラインオフセット指標を生成する命令実行部と、
前記命令キャッシュと前記メモリインターフェースとの間に置かれ、プレロード命令の実行時に前記命令キャッシュラインオフセット指標に応じて、第1有効命令で始まるデータブロックにおいて命令を連続的にプレデコードし、前記命令およびプレデコード情報を前記命令キャッシュに書き込むプレデコーダと、を具備するプロセッサ。 - 前記命令実行部は、前記プレロード命令のターゲットアドレスの1以上のビットを設定することにより、前記命令キャッシュラインオフセット指標を生成する請求項12のプロセッサ。
- 前記ターゲットアドレスは前記プレロード命令によって読み取られる汎用レジスタに書き込まれる請求項13のプロセッサ。
- 前記命令実行部は、前記プレロード命令の前記操作コードにおける1以上のビットに応じて前記命令キャッシュラインオフセット指標を生成する請求項12のプロセッサ。
- 前記命令実行部は、異なる命令キャッシュラインオフセット指標を特定するプレロード命令ごとに、複数のプレロード命令のうちの1つを実行する請求項12のプロセッサ。
- 前記複数のプレロード命令は、前記データブロックへの可能な命令オフセットごとに対応するプレロード命令を含む請求項16に記載のプロセッサ。
- レジスタをさらに具備し、
前記命令実行部は、前記レジスタにおいて1以上の予め決定されたビットを設定することにより前記命令キャッシュラインオフセット指標を生成する請求項12のプロセッサ。 - 前記命令キャッシュと前記メモリインターフェースとの間に置かれる第2キャッシュメモリをさらに具備し、
前記プレデコーダは前記命令キャッシュと前記第2キャッシュメモリとの間に置かれる請求項12のプロセッサ。 - 前記プレデコーダは、第1命令に先行するデータがデータブロックの先頭と合わされた有効命令を具備する場合、命令キャッシュラインオフセット指標により指示される第1有効命令より前に前記データブロックにおいて任意のデータをプレデコードすることをさらに具備する請求項12のプロセッサ。
- コンピュータに、
可変長命令セットにおけるプレロード命令を少なくとも格納し、
前記命令はプロセッサに命令キャッシュへ複数の命令をプレロードさせ、
前記複数の命令は命令キャッシュラインオフセット指標により第1有効命令における先頭をプレデコードさせ、
前記命令およびプレデコード情報を前記命令キャッシュに書き込ませることを実行させるためのプログラムを記録したコンピュータ読み取り可能な媒体。 - 前記命令キャッシュラインオフセット指標は、前記プレロード命令のターゲットアドレスの1以上のビットを具備する請求項21のコンピュータ読み取り可能な媒体。
- 前記プレロード命令操作コードは、命令キャッシュラインオフセット指標ビットフィールドを含む請求項21のコンピュータ読み取り可能な媒体。
- 前記命令キャッシュラインオフセット指標は、前記プレロード命令の実行より前にレジスタへ記憶される請求項21のコンピュータ読み取り可能な媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/696,508 US7676659B2 (en) | 2007-04-04 | 2007-04-04 | System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding |
US11/696,508 | 2007-04-04 | ||
PCT/US2008/059222 WO2008124473A1 (en) | 2007-04-04 | 2008-04-03 | System, method and software to preload instructions from a variable-length instruction set with proper pre-decoding |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010524088A JP2010524088A (ja) | 2010-07-15 |
JP5313228B2 true JP5313228B2 (ja) | 2013-10-09 |
Family
ID=39530631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010502281A Expired - Fee Related JP5313228B2 (ja) | 2007-04-04 | 2008-04-03 | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア |
Country Status (6)
Country | Link |
---|---|
US (1) | US7676659B2 (ja) |
EP (1) | EP2142986A1 (ja) |
JP (1) | JP5313228B2 (ja) |
KR (1) | KR101081623B1 (ja) |
CN (1) | CN101646999B (ja) |
WO (1) | WO2008124473A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7747839B2 (en) | 2008-01-23 | 2010-06-29 | Arm Limited | Data processing apparatus and method for handling instructions to be executed by processing circuitry |
US8347067B2 (en) * | 2008-01-23 | 2013-01-01 | Arm Limited | Instruction pre-decoding of multiple instruction sets |
US7917735B2 (en) * | 2008-01-23 | 2011-03-29 | Arm Limited | Data processing apparatus and method for pre-decoding instructions |
US7925867B2 (en) * | 2008-01-23 | 2011-04-12 | Arm Limited | Pre-decode checking for pre-decoded instructions that cross cache line boundaries |
US8037286B2 (en) * | 2008-01-23 | 2011-10-11 | Arm Limited | Data processing apparatus and method for instruction pre-decoding |
US7925866B2 (en) * | 2008-01-23 | 2011-04-12 | Arm Limited | Data processing apparatus and method for handling instructions to be executed by processing circuitry |
US9075622B2 (en) * | 2008-01-23 | 2015-07-07 | Arm Limited | Reducing errors in pre-decode caches |
US9176739B2 (en) * | 2011-08-05 | 2015-11-03 | Cisco Technology, Inc. | System and method for checking run-time consistency for sequentially and non-sequentially fetched instructions |
US9459868B2 (en) * | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9354888B2 (en) * | 2012-03-28 | 2016-05-31 | International Business Machines Corporation | Performing predecode-time optimized instructions in conjunction with predecode time optimized instruction sequence caching |
CN102932202B (zh) * | 2012-10-25 | 2015-08-19 | 北京星网锐捷网络技术有限公司 | 审计外发信息的方法及装置 |
US9348598B2 (en) | 2013-04-23 | 2016-05-24 | Arm Limited | Data processing apparatus and method for pre-decoding instructions to be executed by processing circuitry |
US9959119B2 (en) * | 2014-05-29 | 2018-05-01 | Mill Computing, Inc. | Computer processor employing double-ended instruction decoding |
FR3097345B1 (fr) * | 2019-06-13 | 2021-06-25 | Stmicroelectronics Grand Ouest Sas | Procede de gestion du fonctionnement d’une unite de calcul capable de fonctionner avec des instructions de tailles differentes et circuit integre correspondant |
CN110750303B (zh) * | 2019-09-25 | 2020-10-20 | 支付宝(杭州)信息技术有限公司 | 基于fpga的流水线式指令读取方法及装置 |
US11204768B2 (en) | 2019-11-06 | 2021-12-21 | Onnivation Llc | Instruction length based parallel instruction demarcator |
CN114625419B (zh) * | 2022-05-16 | 2022-08-26 | 西安芯瞳半导体技术有限公司 | 一种可变长指令的缓存结构、方法及介质 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SG45269A1 (en) * | 1992-02-06 | 1998-01-16 | Intel Corp | End bit markers for instruction decode |
US6049863A (en) * | 1996-07-24 | 2000-04-11 | Advanced Micro Devices, Inc. | Predecoding technique for indicating locations of opcode bytes in variable byte-length instructions within a superscalar microprocessor |
TW357318B (en) * | 1997-03-18 | 1999-05-01 | Ind Tech Res Inst | Branching forecast and reading device for unspecified command length extra-purity pipeline processor |
US5881260A (en) * | 1998-02-09 | 1999-03-09 | Hewlett-Packard Company | Method and apparatus for sequencing and decoding variable length instructions with an instruction boundary marker within each instruction |
US6175908B1 (en) * | 1998-04-30 | 2001-01-16 | Advanced Micro Devices, Inc. | Variable byte-length instructions using state of function bit of second byte of plurality of instructions bytes as indicative of whether first byte is a prefix byte |
US6260134B1 (en) * | 1998-11-02 | 2001-07-10 | Advanced Micro Devices, Inc. | Fixed shift amount variable length instruction stream pre-decoding for start byte determination based on prefix indicating length vector presuming potential start byte |
US6308257B1 (en) * | 1999-04-20 | 2001-10-23 | Intel Corporation | Method and apparatus for generating boundary markers for an instruction stream including variable-length instructions |
US6496921B1 (en) * | 1999-06-30 | 2002-12-17 | International Business Machines Corporation | Layered speculative request unit with instruction optimized and storage hierarchy optimized partitions |
US6460132B1 (en) * | 1999-08-31 | 2002-10-01 | Advanced Micro Devices, Inc. | Massively parallel instruction predecoding |
JP2001142692A (ja) * | 1999-10-01 | 2001-05-25 | Hitachi Ltd | 2つの異なる固定長命令セットを実行するマイクロプロセッサ、マイクロコンピュータおよび命令実行方法 |
US6675374B2 (en) * | 1999-10-12 | 2004-01-06 | Hewlett-Packard Development Company, L.P. | Insertion of prefetch instructions into computer program code |
JP3644892B2 (ja) * | 2001-01-22 | 2005-05-11 | 智原科技股▲ふん▼有限公司 | 複数組の命令組を実行するためのデータ処理装置 |
US6968430B1 (en) * | 2002-10-22 | 2005-11-22 | Lsi Logic Corporation | Circuit and method for improving instruction fetch time from a cache memory device |
-
2007
- 2007-04-04 US US11/696,508 patent/US7676659B2/en not_active Expired - Fee Related
-
2008
- 2008-04-03 EP EP08744991A patent/EP2142986A1/en not_active Withdrawn
- 2008-04-03 CN CN200880010560.8A patent/CN101646999B/zh not_active Expired - Fee Related
- 2008-04-03 WO PCT/US2008/059222 patent/WO2008124473A1/en active Application Filing
- 2008-04-03 KR KR1020097022990A patent/KR101081623B1/ko not_active IP Right Cessation
- 2008-04-03 JP JP2010502281A patent/JP5313228B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
EP2142986A1 (en) | 2010-01-13 |
WO2008124473A1 (en) | 2008-10-16 |
US20080250229A1 (en) | 2008-10-09 |
KR20090132638A (ko) | 2009-12-30 |
CN101646999B (zh) | 2016-10-12 |
US7676659B2 (en) | 2010-03-09 |
CN101646999A (zh) | 2010-02-10 |
JP2010524088A (ja) | 2010-07-15 |
KR101081623B1 (ko) | 2011-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5313228B2 (ja) | 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア | |
JP5528819B2 (ja) | 現在実行している命令セット以外の命令セットから命令をプリロードするシステム、方法およびソフトウェア | |
EP2018609B1 (en) | Pre-decoding variable length instructions | |
US5941980A (en) | Apparatus and method for parallel decoding of variable-length instructions in a superscalar pipelined data processing system | |
EP1886217B1 (en) | Caching instructions for a multiple-state processor | |
JP4585005B2 (ja) | 分岐訂正によるプリデコードのエラー処理 | |
EP1910919A2 (en) | Instruction cache having fixed number of variable length instructions | |
US20030163670A1 (en) | Re-encoding illegal OP codes into a single illegal OP code to accommodate the extra bits associated with pre-decoded instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120903 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120911 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121211 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121218 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20121219 |
|
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: 20130604 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130703 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |