JP2012507794A - 有効な命令ヒュージョンを進展させる技術 - Google Patents

有効な命令ヒュージョンを進展させる技術 Download PDF

Info

Publication number
JP2012507794A
JP2012507794A JP2011534680A JP2011534680A JP2012507794A JP 2012507794 A JP2012507794 A JP 2012507794A JP 2011534680 A JP2011534680 A JP 2011534680A JP 2011534680 A JP2011534680 A JP 2011534680A JP 2012507794 A JP2012507794 A JP 2012507794A
Authority
JP
Japan
Prior art keywords
instruction
fusible
stored
queue
subsequent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011534680A
Other languages
English (en)
Other versions
JP2012507794A5 (ja
Inventor
オウジエル,イド
ラッポポート,リフ
ヴァレンタイン,ロバート
ガボール,ロン
ラグヴァンシ,パンカジ
Original Assignee
インテル コーポレイション
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=42063260&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2012507794(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2012507794A publication Critical patent/JP2012507794A/ja
Publication of JP2012507794A5 publication Critical patent/JP2012507794A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3853Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • G06F9/3016Decoding the operand specifier, e.g. specifier format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/3017Runtime instruction translation, e.g. macros
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30196Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/45Caching of specific data in cache memory
    • G06F2212/452Instruction code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/62Details of cache specific to multiprocessor cache arrangements
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

コンピュータシステム内で有効な命令ヒュージョンを可能にする技術を開示する。一実施形態において、プロセッサロジックは、命令キュー内の第1の命令が第2の命令とヒュージ可能である場合に、第2の命令の処理を閾時間だけ遅らせる。

Description

本発明の実施形態は、概して、情報処理の分野に関し、より具体的には、コンピュータシステム及びマイクロプロセッサにおける命令ヒュージョン(instruction fusion)の分野に関する。
命令ヒュージョンは、2つの命令を、プロセッサ内の1つの動作(又はマイクロ動作“uop”)シーケンスをもたらす単一の命令にまとめる処理である。プロセッサ命令キュー(IQ)(instruction queue)に格納されている命令は、IQから読み出された後、命令デコーダへ送信される前に、あるいは、命令デコーダによってデコードされた後に、ヒュージされてよい。通常、命令がデコードされる前に起こる命令ヒュージョンは「マクロヒュージョン(macro-fusion)」と呼ばれ、他方、命令がデコードされた後に起こる命令ヒュージョンは「マイクロヒュージョン(micro-fusion)」と呼ばれる。マクロヒュージョンの例は、比較(“CMP”)命令又はテスト(“TEST”)命令(“CMP/TEST”)と条件付きジャンプ(“JCC”)命令との結合である。CMP/TEST及びJCCの命令の組は、プログラムにおいて、例えば、比較が行われ、比較の結果に基づいて、枝分かれが起こるか否かが決まるところのループの終わりに定期的に起こってよい。マクロヒュージョンは命令スループットを有効に増大させうるので、可能な限り命令をヒュージする多くの機会を見出すことが望ましい。
何らかの先行技術のプロセッサ・マイクロアーキテクチャで見出される命令ヒュージョンの機会に関し、CMP/TEST及びJCCの両命令は、同時にIQにある必要があり、それにより、それらの命令は、命令がIQから読み出される場合にヒュージされ得る。しかし、IQにヒュージ可能なCMP/TEST命令はあるが、それ以外の命令はIQに書き込まれていない場合(すなわち、CMP/TEST命令がIQにおける最後の命令である場合)、CMP/TEST命令は、たとえプログラム順序における次の命令がJCC命令であるとしても、IQから読み出されて、ヒュージされることなくデコーダに送られうる。ヒュージョンの機会を逸する例は、CMP/TEST及びJCCが図らずも記憶バウンダリ(例えば、16バイトバウンダリ)にわたって起こり、CMP/TESTが1サイクルにおいてIQに書き込まれ、JCCが次のサイクルにおいてIQに書き込まれる場合である。この場合に、失速状態(stalling condition)が存在しないならば、JCCは、CMP/TESTがIQから読み出されるのと同時に又はその後にIQに書き込まれるので、ヒュージョンの機会は失われ、IQの多数の不必要な読出が引き起こされ、命令スループットが低下するとともに、電力消費は増大する。
本発明の少なくとも1つの実施形態が使用されるマイクロプロセッサのブロック図を表す。 本発明の少なくとも1つの実施形態が使用されるバス共有型コンピュータシステムのブロック図を表す。 本発明の少なくとも1つの実施形態が使用されるポイント・ツー・ポイント相互接続型コンピュータシステムのブロック図を表す。 本発明の少なくとも1つの実施形態を実施するために使用される状態機械のブロック図を表す。 本発明の少なくとも1つの実施形態を実行するために使用される動作のフロー図である。 少なくとも1つの実施形態で実行される動作のフロー図である。
本発明の実施形態について、限定ではなく、一例として、添付の図面の各図を参照して説明する。図中、同じ参照符号は同じ要素を表している。
本発明の実施形態は、プロセッサにおける命令スループットを改善し、及び/又は、プロセッサの電力消費を削減するために、使用されてよい。一実施形態において、さもなければ命令ヒュージョンの機会を逸する可能性があるものが見つけられ、結果として、命令ヒュージョンが起こってよい。一実施形態において、逸する可能性がある命令ヒュージョンの機会は、命令キュー(IQ)からの最後の命令の読出又はIQから読み出される最後の命令の発行を閾数のサイクルだけデコード相まで遅らせることによって見つけられ、それにより、後続のヒュージ可能な命令は全てフェチされてIQに格納され(又は、必ずしもIQに格納される必要はなく、少なくとも識別され)、次いで、前記最後のヒュージ可能な命令とヒュージされる。一実施形態において、閾数のサイクルだけ第1のヒュージ可能な命令の読出又は発行を遅延させることは、そのようにすることが、2つの別なふうにヒュージ可能な命令が単一の命令としてよりむしろ別々にデコードされて処理されることを回避するので、プロセッサ性能を改善することができる。
待機サイクルの閾数の選択は、特定の実施形態が使用されるマイクロアーキテクチャに依存してよい。例えば、一実施形態において、サイクルの閾数は2であってよく、一方、他の実施形態において、サイクルの閾数は2よりも多くても又は少なくてもよい。一実施形態において、待機サイクルの閾数は、別の命令としてヒュージ可能な命令を処理することに対して後続のヒュージ可能な命令を待つことにおいて全体的なレイテンシ/性能上の利点を保ちながら、後続のヒュージ可能な命令がIQに格納されるのを待つための最大の時間量を提供する。他の実施形態において、電力がより重要である場合に、例えば、待機サイクルの閾数は、たとえ待機サイクルの数が(一時的ではあるが)命令スループットの低下を引き起こすとしても、余分の電力が2つのヒュージ可能な命令を別々に処理するために使用されないことを確かにするために、より大きくてよい。
図1は、本発明の少なくとも1つの実施形態が使用されてよいマイクロプロセッサを表す。具体的に、図1は、1又はそれ以上のプロセッサコア105及び110を有するマイクロプロセッサ100を表し、各プロセッサコアは、夫々自身に関連付けられた局所キャッシュ107及び113を有する。また、図1には、局所キャッシュ107及び113の夫々に格納されている情報の少なくとも一部のバージョンを記憶することができる共有キャッシュメモリ115が表されている。幾つかの実施形態において、マイクロプロセッサ100は、図1に図示されていない他のロジック、例えば、集積メモリコントローラ、集積グラフィックコントローラ、及びI/O制御等のコンピュータ内の他の機能を実行する他のロジックを有してよい。一実施形態において、マルチプロセッサシステムにおける各マイクロプロセッサ又はマルチコアプロセッサにおける各プロセッサコアは、少なくとも1つの実施形態に従って、割込通信技術を可能にするロジック119を有してよく、又は別なふうに該ロジック119と関連付けられてよい。ロジックは、幾つかの先行技術実施よりも効率的な命令ヒュージョンを可能にする回路、ソフトウェア又はそれら両方を有してよい。
一実施形態において、ロジック119は、命令ヒュージョンの機会を逸する可能性を減らすロジックを有してよい。一実施形態において、ロジック119は、IQ又は他のフェッチされる命令記憶構造体において記憶されている後続の命令がない場合に、IQからの第1の命令(例えば、CMP)の読出を遅延させる。一実施形態において、ロジック119は、IQを読み出すこと、又は第1のヒュージ可能な命令をデコーダ若しくは他の処理ロジックへ発行する前の閾数のサイクル(例えば、2サイクル)の間に第1のヒュージ可能な命令の読出又は発行を引き起こし、それにより、(例えば、対象である2つの命令が、異なる記憶バウンダリにおけるメモリ又はキャッシュに格納されているために)IQに未だ記憶されていない、第1の命令とヒュージ可能な第2のヒュージ可能な命令が存在する場合に、これら2つのヒュージ可能な命令をヒュージする機会は失われない。幾つかの実施形態において、閾値は固定であってよく、一方、他の実施形態において、閾値は可変であってよく、ユーザによって又はユーザに依存しないアルゴリズムに従って変更可能である。一実施形態において、第1のヒュージ可能な命令はCMP命令であり、第2のヒュージ可能な命令はJCC命令である。他の実施形態において、第1の命令及び第2の命令の一方又は両方はCMP又はJCC命令ではなく、如何なるヒュージ可能な命令であってもよい。更に、本発明の実施形態は、2よりも多い命令をヒュージすることに適用されてよい。
図2は、例えば、本発明の実施形態が使用されてよいフロントサイドバス(FSB)型コンピュータシステムを表す。いずれのプロセッサ201、205、210又は215も、プロセッサコア223、227、233、237、243、247、253、257の1つの中の又は別なふうに該1つと関連付けられているいずれかの局所レベル1(L1)キャッシュメモリ220、225、230、235、240、245、250、255の情報にアクセスしてよい。更に、いずれのプロセッサ201、205、210又は215も、共有レベル2(L2)キャッシュ203、207、213、217のいずれか1つの情報に、又はチップセット265を介してシステムメモリ260の情報にアクセスしてよい。図2におけるプロセッサの1つ又はそれ以上は、少なくとも1つの実施形態に従って、命令ヒュージョンの効率改善を可能にするロジック219を有し、又は別なふうに該ロジック219と関連付けられてよい。
図2に表されているFSB型コンピュータシステムに加えて、他のシステム構成が、ポイント・ツー・ポイント(P2P)相互接続型システム及びリング相互接続型システムを含め、本発明の種々の実施形態とともに使用されてよい。図3のP2Pシステムは、例えば、複数のプロセッサを有してよい。それらの中の2つのプロセッサ370及び380のみが例として示されている。プロセッサ370及び380は、夫々、メモリ32、34と接続する局所メモリコントローラハブ(MCH)372、382を有してよい。プロセッサ370及び380は、ポイント・ツー・ポイント(PtP)インターフェース回路378、388を用いてPtPインターフェース350を介してデータを交換してよい。プロセッサ370及び380は、夫々、PtPインターフェース回路376、394、386、398を用いて個別のPtPインターフェース352、354を介してチップセット390とデータを交換してよい。チップセット390は、更に、高性能グラフィックスインターフェース339を介して高性能グラフィックス回路338とデータを交換してよい。本発明の実施形態は、任意数のプロセッシングコアを有する何らかのプロセッサ内に、又は図3のPtPバスエージェントの夫々の中に、配置されてよい。一実施形態において、いずれのプロセッサコアも、局所キャッシュメモリ(図示せず。)を有し、又は別なふうに該局所キャッシュメモリと関連付けられてよい。更に、共有キャッシュ(図示せず。)が、いずれか一方のプロセッサ内に含まれ、P2P相互接続を介してそれらのプロセッサと接続されてよく、それにより、一方又は両方のプロセッサの局所キャッシュ情報は、プロセッサが低電力モードに入る場合に、共有キャッシュに格納されてよい。図3におけるプロセッサ又はコアの1つ又はそれ以上は、少なくとも1つの実施形態に従って、命令ヒュージョンの効率改善を可能にするロジック319を有し、又は別なふうに該ロジック319と関連付けられてよい。
少なくとも1つの実施形態において、第2のヒュージ可能な命令は、何らかの中間動作、例えば、(第1及び第2のヒュージ可能な命令の間に起こる)IQクリア動作が起こる前に、IQに格納されないことがあり、このとき、2つの別なふうにヒュージ可能な命令をヒュージする機会が失われる。キャッシュ(又はバッファ)が、プロセッサによる実行のためにスケジューリングされるべき関連するデコードされた命令シーケンス又はuop(例えば、デコードされたストリームバッファ(“DSB”)(decoded stream buffer)、トレースキャッシュ(“TC”)(trace cache))を(それらの命令がIQから読み出されてデコードされた後に)記憶するところの一実施形態において、第1のヒュージ可能なuop(例えば、CMP)は、同じアドレス可能な範囲(例えば、同じキャッシュウェイ)内のヒュージ可能な第2のuop(例えば、JCC)を有さないキャッシュに格納されることがある。これは、例えば、JCCが(キャッシュミスのために)キャッシュラインを横断し、又は(交換索引バッファミスのために)ベージ・バウンダリを横断している場合に、起こりうる。その場合に、キャッシュは、JCCなしでCMPを格納してよい。その後、CMPが格納された後、しかし、JCCがキャッシュに格納される前に、プロセッサコア・パイプラインが(例えば、“クリア”信号がアサートされたために)クリアされる場合は、キャッシュは、JCCなしでいずれかの方法においてCMPのみを格納する。
CMPを格納するキャッシュラインのその後の検索において、キャッシュは、欠けているJCCを、失われたアクセスとして解釈してよく、JCCは、次のキャッシュ充填動作のために付加ポイントしてマークされてよい。しかし、この付加ポイントは、CMP+JCCがIQからヒュージされたものとして読み出されるので、見つけられないことがある。従って、要求されるJCCは、IQに由来する充填されるべきいずれのuopとも一致せず、従って、キャッシュは、欠けているJCCを充填することができず、ヒュージされたCMP+JCCが期待されるラインにおいて継続的に失敗する。更に、目下の充填要求キュー(PFRQ)(pending fill request queue)がuopキャッシュ充填要求を格納するために使用されるところの一実施形態において、特定のヒュージされた命令の充填のためにリザーブされていたエントリは(期待されるヒュージされた命令が決して起こらないために)解放せず、次のクリア動作まで無駄なままである。一実施形態において、PFRQエントリロックは、欠けているヒュージされた命令のエントリがアクセスされるたびに起こってよく、従って、同じ場所へのその後のあらゆる充填を妨げうる。
PFRQエントリの誤った又は好ましくないロックを防ぐために、状態機械(state machine)は、一実施形態において、IQから読み出されるuopをモニタして、対応するPFRQエントリを有する領域(例えば、充填のためにマークされた領域)が、例えば、充填開始点が検出されることなくエントリの最後のuopに達したために完全に失われた場合を検出するよう使用されてよい。一実施形態において、状態機械は、この条件が満たされる場合にPFRQエントリを解放してよい。他の実施形態において、好ましくないPFRQエントリのロックは、ヒュージ可能な命令が両方とも存在しない場合にIQから読み出されるヒュージ可能な命令をキャッシュ内で生成しないことによって、回避されてよい。例えば、CMPの後に非JCC命令が続く場合に、ヒュージされた命令エントリがキャッシュにおいて生成され得るが、CMPが(例えば、閾待機時間が満了した後に)単独でIQから読み出される場合にのみ、キャッシュに充填されないヒュージされた命令エントリである。他の実施形態において、状態機械がスキップされた充填領域を検出した回数がカウントされ、キャッシュフラッシュ又は無効動作が、充填領域がスキップされた閾カウント数の後に実行されてよい。次いで、充填領域はキャッシュから除去されて、ヒュージされた命令が再充填されてよい。
図4は、一実施形態に従う状態機械を表し、状態機械は、IQにおける失われたヒュージ可能な命令による好ましからざるPFRQエントリロック状態を回避するために使用されてよい。IQにおける命令が充填のためにマークされた領域にない状態401において、IQが充填領域にマッピングされる命令(キャッシュハッシングに従う充填領域からの命令)をまさに処理しようとしていることを示す「充填領域開始」信号は、しかし、PFRQにセーブされている線形命令ポインタ(“リップ”(lip))から始まらない(405)。これは、状態機械を状態410に移動させうる。IQにおける(直ぐにデコードされる)次の命令が充填領域を終わらせる(例えば、キャッシュによってハッシュされるラインを終わらせる、又は成立分岐である)場合、状態機械は、対応するPFRQエントリの割当解除(deallocation)415を引き起こし、状態機械は状態401に戻る。しかし、充填ポインタが、状態401又は状態410のいずれであろうと、充填領域リップ430に等しい場合、状態機械は、アクセスが充填領域内且つ充填開始点後にある状態420に入る。状態420から、充填領域インジケーションにおける最後のuopは、対応するPFRQエントリを解除することなく、状態機械を状態401に戻す(425)。図4の状態機械は、ハードウェアロジック、ソフトウェア、又はそれらの何らかの組合せにおいて実施されてよい。他の実施形態において、他の状態機械又はロジックが使用されてよい。
図5は、本発明の少なくとも1つの実施形態とともに使用されてよい動作のフロー図を表す。動作501で、IQにおける目下アクセスされている命令がいずれかの後続の命令とヒュージ可能であるかどうかが決定される。ヒュージ可能でない場合は、動作505で、次の命令がIQからアクセスされ、遅延カウントがリセットされる。他方、ヒュージ可能である場合は、動作510で、遅延カウンタはインクリメントされ、動作515で、遅延カウント閾値に達したかどうかが決定される。遅延カウント閾値に達していない場合は、動作520で、目下アクセスされている命令の命令ヒュージョンが実行される。遅延カウンタ閾値に達した場合は、動作505で、次の命令がIQからアクセスされ、遅延カウントがリセットされる。他の実施形態において、他の動作が、命令ヒュージョンの効率を改善するために使用されてよい。
図6は、少なくとも1つの実施形態とともに実行されてよい動作のフロー図を表す。多数のデコーダ回路を有するプロセッサにおいて一実施形態を実行するために、第1のヒュージ可能な命令が、ヒュージされた命令をデコードすることができる特定のデコーダ回路においてデコードされるべきことを確かにすることが有用である。図6において、動作601で、特定の命令がヒュージされた命令の組の中の第1の命令であってよいかどうかが決定される。第1の命令でない場合は、動作605で、ヒュージされた命令が発行される。他方、第1の命令である場合は、動作610で、IQにおいて第1のヒュージ可能な命令の後に有効な命令が続くかどうかが決定される。有効な命令が後に続く場合は、動作610で、ヒュージされた命令が発行される。他方、有効な命令が後に続かない場合は、動作615で、第1のヒュージ可能な命令は、ヒュージされた命令をサポート可能なデコーダに発せられるべきかどうかが決定される。一実施形態において、デコーダ−0は、ヒュージされた命令をデコードすることができる。第1のヒュージ可能な命令がデコーダ−0に発せられなかった場合は、動作620で、第1のヒュージ可能な命令は、それがデコーダ−0に対応するまで、異なるデコーダへ移動又は削除される。動作625で、カウンタは初期値Nに設定され、動作630で、命令の後に有効な命令が続き、又はカウンタがゼロである場合は、ヒュージされた命令は、動作635で発せられる。さもなければ、動作640で、カウンタはデクリメントされ、無効な命令は削除される。他の実施形態において、カウンタは、最終値へとインクリメントしてよい。他の実施形態において、削除動作に加えて、他の動作は無効な命令をクリアしてよい。
少なくとも1つの実施形態の1又はそれ以上の側面は、機械によって読み出される場合に該機械にここに記載される技術を実行するようロジックを組み立てさせる、プロセッサ内の種々のロジックを表す機械読出可能な媒体に記憶されている代表データによって実施されてよい。かかる表現は、「IPコア」として知られており、有形な機械読出可能な媒体(テープ)に記憶され、実際にロジック又はプロセッサを作る製造機械にロードするよう種々の顧客又は製造施設に供給されてよい。
このように、マイクロアーキテクチャにおけるメモリ領域アクセスを対象とする方法及び装置について記載してきた。当然、上記記載は例示であって限定ではない。多数の他の実施形態は、上記記載を読み理解することで当業者には明らかである。従って、本発明の適用範囲は、添付の特許請求の範囲が権利を有する同等な包括的範囲とともに、特許請求の範囲を参照して決定されるべきである。

Claims (20)

  1. 命令キューと、
    第1のヒュージ可能な命令の処理を閾時間だけ遅延させて、前記第1のヒュージ可能な命令とヒュージ可能な第2のヒュージ可能な命令が、該第2のヒュージ可能な命令が前記閾時間内に前記命令キューに格納される場合に、前記第1のヒュージ可能な命令とヒュージされ得るようにするロジックと
    を有する装置。
  2. 前記第1のヒュージ可能な命令及び前記第2のヒュージ可能な命令は、前記命令キューに格納される前にフェッチ・バウンダリにわたって格納される、
    請求項1に記載の装置。
  3. 前記ロジックは、前記第1のヒュージ可能な命令が前記命令キューに格納されている最後の命令である場合にのみ、前記第1のヒュージ可能な命令の処理を遅延させる、
    請求項1に記載の装置。
  4. 前記ロジックは、前記閾時間に対応する閾数のサイクルに達するまで、前記第1のヒュージ可能な命令が前記命令キューに格納され、且つ、該命令キューにおける最後の命令であるサイクルごとに1つインクリメントされるカウンタを有する、
    請求項1に記載の装置。
  5. 中間命令が前記命令キューに格納されている前記第1のヒュージ可能な命令と前記命令キューに格納されている前記第2のヒュージ可能な命令との間で実行される場合に、FBRQが前記第1のヒュージ可能な命令及び前記第2のヒュージ可能な命令に対応するエントリをロックすることを防ぐ状態機械を更に有する、
    請求項1に記載の装置。
  6. 前記中間命令は、前記命令キューをクリアすることである、
    請求項5に記載の装置。
  7. 命令キュー内で目下アクセスされている命令が、前記命令キューに格納されるいずれかの後続の命令とヒュージ可能であるかどうかを決定するステップと、
    前記目下アクセスされている命令が前記命令キューに格納される後続の命令とヒュージ可能でない場合に、前記命令キューの次の命令にアクセスし、遅延カウンタをリセットするステップと、
    前記目下アクセスされている命令がヒュージ可能であり、且つ、前記命令キューにおける最後の命令である場合に、前記遅延カウンタをインクリメントするステップと
    を有する方法。
  8. 前記目下アクセスされている命令及び前記後続の命令がヒュージ可能であり、且つ、前記遅延カウンタが閾値に達していない場合に、前記目下アクセスされている命令を前記後続の命令とヒュージするステップを更に有する、
    請求項7に記載の方法。
  9. 前記目下アクセスされている命令及び前記後続の命令がヒュージ可能でない場合に、前記目下アクセスされている命令を前記後続の命令から切り離して処理するステップを更に有する、
    請求項8に記載の方法。
  10. 前記遅延カウンタが前記閾値に達した場合に、前記目下アクセスされている命令を前記後続の命令から切り離して処理するステップを更に有する、
    請求項8に記載の方法。
  11. 前記目下アクセスされている命令及び前記後続の命令がヒュージ可能であり、且つ、中間イベントが、前記後続の命令がキャッシュに格納される前であって、前記目下アクセスされている命令が前記キャッシュに格納された後に行われる場合に、FBRQが前記目下アクセスされている命令及び前記後続の命令に対応するエントリをロックすることを防ぐステップを更に有する、
    請求項7に記載の方法。
  12. 第1のヒュージ可能な命令及び第2のヒュージ可能な命令を夫々第1のアクセス・バウンダリ及び第2のアクセス・バウンダリに格納する記憶部と、
    前記第1のヒュージ可能な命令及び前記第2のヒュージ可能な命令を命令キューにフェッチするフェッチロジックを有するプロセッサと、
    前記命令キューからの前記第1のヒュージ可能な命令の読出を閾数のサイクル分遅延させる遅延ロジックと
    前記第2のヒュージ可能な命令が、前記第1のヒュージ可能な命令の後であって、前記閾数のサイクルに達する前に前記命令キューに格納される場合に、前記第1のヒュージ可能な命令及び前記第2のヒュージ可能な命令をヒュージする命令ヒュージョンロジックと
    を有するシステム。
  13. 前記第1のヒュージ可能な命令が前記命令キューにおける唯一の命令である場合にインクリメントし、前記閾数のサイクルに達したときにカウントを停止するカウンタを更に有する、
    請求項12に記載のシステム。
  14. 前記カウンタは、前記閾数のサイクルに達する前に前記第2のヒュージ可能な命令が前記命令キューに格納される場合にリセットされる、
    請求項13に記載のシステム。
  15. 前記カウンタは、前記閾数のサイクルに達する前に前記第2のヒュージ可能な命令が前記命令キューに格納される場合にリセットされる、
    請求項13に記載のシステム。
  16. 前記記憶部は命令キャッシュを有し、前記第1のアクセス・バウンダリ及び前記第2のアクセス・バウンダリは夫々サイズが64バイトである、
    請求項12に記載のシステム。
  17. 前記記憶部は動的ランダムアクセスメモリを有し、前記第1のアクセス・バウンダリ及び前記第2のアクセス・バウンダリは夫々サイズが4096バイトである、
    請求項12に記載のシステム。
  18. 前記第1のヒュージ可能な命令はCMP/TEST命令であり、前記第2のヒュージ可能な命令はJCC命令である、
    請求項12に記載のシステム。
  19. 前記サイクルの閾数は2である、
    請求項18に記載のシステム。
  20. 中間イベントが、キャッシュに格納されている前記第1のヒュージ可能な命令と前記キャッシュに格納されている前記第2のヒュージ可能な命令との間で実行される場合に、FBRQが前記第1のヒュージ可能な命令及び前記第2のヒュージ可能な命令に対応するエントリをロックするのを防ぐ状態機械を更に有する、
    請求項12に記載のシステム。
JP2011534680A 2008-10-30 2009-10-27 有効な命令ヒュージョンを進展させる技術 Pending JP2012507794A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/290,395 2008-10-30
US12/290,395 US9690591B2 (en) 2008-10-30 2008-10-30 System and method for fusing instructions queued during a time window defined by a delay counter
PCT/US2009/062219 WO2010056511A2 (en) 2008-10-30 2009-10-27 Technique for promoting efficient instruction fusion

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014241108A Division JP5902285B2 (ja) 2008-10-30 2014-11-28 有効な命令フュージョンを進展させる技術

Publications (2)

Publication Number Publication Date
JP2012507794A true JP2012507794A (ja) 2012-03-29
JP2012507794A5 JP2012507794A5 (ja) 2014-08-14

Family

ID=42063260

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011534680A Pending JP2012507794A (ja) 2008-10-30 2009-10-27 有効な命令ヒュージョンを進展させる技術
JP2014241108A Active JP5902285B2 (ja) 2008-10-30 2014-11-28 有効な命令フュージョンを進展させる技術

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2014241108A Active JP5902285B2 (ja) 2008-10-30 2014-11-28 有効な命令フュージョンを進展させる技術

Country Status (8)

Country Link
US (4) US9690591B2 (ja)
JP (2) JP2012507794A (ja)
KR (1) KR101258762B1 (ja)
CN (2) CN101901128B (ja)
BR (2) BRPI0920782B1 (ja)
DE (1) DE102009051388A1 (ja)
TW (1) TWI455023B (ja)
WO (1) WO2010056511A2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014194755A (ja) * 2013-03-15 2014-10-09 Intel Corp 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置
JP2014194753A (ja) * 2013-03-15 2014-10-09 Intel Corp 複数のテストソースを用いた論理和テストおよび論理積テスト機能を実現する融合可能な命令と論理
JP2018500657A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8090931B2 (en) * 2008-09-18 2012-01-03 Via Technologies, Inc. Microprocessor with fused store address/store data microinstruction
US9690591B2 (en) * 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter
JP5491071B2 (ja) * 2009-05-20 2014-05-14 エヌイーシーコンピュータテクノ株式会社 命令融合演算装置および命令融合演算方法
US9223578B2 (en) * 2009-09-25 2015-12-29 Nvidia Corporation Coalescing memory barrier operations across multiple parallel threads
US8856496B2 (en) 2010-04-27 2014-10-07 Via Technologies, Inc. Microprocessor that fuses load-alu-store and JCC macroinstructions
US8843729B2 (en) 2010-04-27 2014-09-23 Via Technologies, Inc. Microprocessor that fuses MOV/ALU instructions
US20130081001A1 (en) * 2011-09-23 2013-03-28 Microsoft Corporation Immediate delay tracker tool
US9672037B2 (en) * 2013-01-23 2017-06-06 Apple Inc. Arithmetic branch fusion
WO2014154917A1 (es) * 2013-03-27 2014-10-02 Intel Corporation Mecanismo para facilitar la fusión dinámica y eficaz de instrucciones informáticas en programas de software
US9792121B2 (en) 2013-05-21 2017-10-17 Via Technologies, Inc. Microprocessor that fuses if-then instructions
US9348596B2 (en) 2013-06-28 2016-05-24 International Business Machines Corporation Forming instruction groups based on decode time instruction optimization
US9372695B2 (en) 2013-06-28 2016-06-21 Globalfoundries Inc. Optimization of instruction groups across group boundaries
US10503513B2 (en) * 2013-10-23 2019-12-10 Nvidia Corporation Dispatching a stored instruction in response to determining that a received instruction is of a same instruction type
US9911508B2 (en) 2014-09-18 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory diagnostic writeback
US10579389B2 (en) * 2015-11-02 2020-03-03 Arm Limited Fusion of instructions by delaying handling of a partial subset of a fusible group of instructions
US10387988B2 (en) 2016-02-26 2019-08-20 Google Llc Compiler techniques for mapping program code to a high performance, power efficient, programmable image processing hardware platform
US10387147B2 (en) 2017-08-02 2019-08-20 International Business Machines Corporation Managing an issue queue for fused instructions and paired instructions in a microprocessor
US11157280B2 (en) 2017-12-07 2021-10-26 International Business Machines Corporation Dynamic fusion based on operand size
US11256509B2 (en) 2017-12-07 2022-02-22 International Business Machines Corporation Instruction fusion after register rename
US11416252B2 (en) * 2017-12-27 2022-08-16 Arm Limited Program instruction fusion
US11194722B2 (en) * 2018-03-15 2021-12-07 Intel Corporation Apparatus and method for improved cache utilization and efficiency on a many core processor
US10929136B2 (en) 2018-04-11 2021-02-23 Futurewei Technologies, Inc. Accurate early branch prediction using multiple predictors having different accuracy and latency in high-performance microprocessors
US20200042322A1 (en) * 2018-08-03 2020-02-06 Futurewei Technologies, Inc. System and method for store instruction fusion in a microprocessor
US10831480B2 (en) * 2019-02-25 2020-11-10 International Business Machines Corporation Move data and set storage key instruction
US10831496B2 (en) 2019-02-28 2020-11-10 International Business Machines Corporation Method to execute successive dependent instructions from an instruction stream in a processor
US11216278B2 (en) * 2019-08-12 2022-01-04 Advanced New Technologies Co., Ltd. Multi-thread processing
KR102339882B1 (ko) 2020-01-24 2021-12-14 정종범 역압대응이 가능한 티 모션 진자식 게이트밸브
US11249757B1 (en) 2020-08-14 2022-02-15 International Business Machines Corporation Handling and fusing load instructions in a processor
CN112363762B (zh) * 2020-11-13 2023-01-06 苏州浪潮智能科技有限公司 一种融合命令处理方法、系统、设备以及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124391A (ja) * 1996-10-07 1998-05-15 Internatl Business Mach Corp <Ibm> マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
JP2001523854A (ja) * 1997-11-17 2001-11-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ルックアヘッド結果を発生し移動命令、比較命令および簡単な算術命令をまとめるよう構成されるプロセッサ
US20020087955A1 (en) * 2000-12-29 2002-07-04 Ronny Ronen System and Method for fusing instructions
US6889318B1 (en) * 2001-08-07 2005-05-03 Lsi Logic Corporation Instruction fusion for digital signal processor
US7937564B1 (en) * 2005-09-28 2011-05-03 Oracle America, Inc. Emit vector optimization of a trace

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2834171B2 (ja) 1989-02-06 1998-12-09 株式会社日立製作所 コンパイル方法
US5392228A (en) 1993-12-06 1995-02-21 Motorola, Inc. Result normalizer and method of operation
US5860154A (en) 1994-08-02 1999-01-12 Intel Corporation Method and apparatus for calculating effective memory addresses
US6006324A (en) 1995-01-25 1999-12-21 Advanced Micro Devices, Inc. High performance superscalar alignment unit
JP3113792B2 (ja) 1995-04-27 2000-12-04 松下電器産業株式会社 最適化装置
US6151618A (en) 1995-12-04 2000-11-21 Microsoft Corporation Safe general purpose virtual machine computing system
US6041403A (en) 1996-09-27 2000-03-21 Intel Corporation Method and apparatus for generating a microinstruction responsive to the specification of an operand, in addition to a microinstruction based on the opcode, of a macroinstruction
US5957997A (en) 1997-04-25 1999-09-28 International Business Machines Corporation Efficient floating point normalization mechanism
US5903761A (en) 1997-10-31 1999-05-11 Preemptive Solutions, Inc. Method of reducing the number of instructions in a program code sequence
US6282634B1 (en) 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
US6247113B1 (en) 1998-05-27 2001-06-12 Arm Limited Coprocessor opcode division by data type
US6018799A (en) 1998-07-22 2000-01-25 Sun Microsystems, Inc. Method, apparatus and computer program product for optimizing registers in a stack using a register allocator
US6742110B2 (en) 1998-10-06 2004-05-25 Texas Instruments Incorporated Preventing the execution of a set of instructions in parallel based on an indication that the instructions were erroneously pre-coded for parallel execution
TW477936B (en) * 1998-12-29 2002-03-01 Ind Tech Res Inst Instruction folding method and device used in a stack machine
US6338136B1 (en) * 1999-05-18 2002-01-08 Ip-First, Llc Pairing of load-ALU-store with conditional branch
US6647489B1 (en) 2000-06-08 2003-11-11 Ip-First, Llc Compare branch instruction pairing within a single integer pipeline
US20030023960A1 (en) 2001-07-25 2003-01-30 Shoab Khan Microprocessor instruction format using combination opcodes and destination prefixes
US6832307B2 (en) 2001-07-19 2004-12-14 Stmicroelectronics, Inc. Instruction fetch buffer stack fold decoder for generating foldable instruction status information
US6587929B2 (en) * 2001-07-31 2003-07-01 Ip-First, L.L.C. Apparatus and method for performing write-combining in a pipelined microprocessor using tags
US6718440B2 (en) 2001-09-28 2004-04-06 Intel Corporation Memory access latency hiding with hint buffer
US7051190B2 (en) 2002-06-25 2006-05-23 Intel Corporation Intra-instruction fusion
US6920546B2 (en) 2002-08-13 2005-07-19 Intel Corporation Fusion of processor micro-operations
US7653906B2 (en) * 2002-10-23 2010-01-26 Intel Corporation Apparatus and method for reducing power consumption on simultaneous multi-threading systems
US20040128485A1 (en) 2002-12-27 2004-07-01 Nelson Scott R. Method for fusing instructions in a vector processor
US7024544B2 (en) 2003-06-24 2006-04-04 Via-Cyrix, Inc. Apparatus and method for accessing registers in a processor
US7355601B2 (en) 2003-06-30 2008-04-08 International Business Machines Corporation System and method for transfer of data between processors using a locked set, head and tail pointers
KR101076815B1 (ko) 2004-05-29 2011-10-25 삼성전자주식회사 분기 타겟 어드레스 캐쉬를 포함하는 캐쉬 시스템
US8082430B2 (en) * 2005-08-09 2011-12-20 Intel Corporation Representing a plurality of instructions with a fewer number of micro-operations
US7676513B2 (en) 2006-01-06 2010-03-09 Microsoft Corporation Scheduling of index merges
US7958181B2 (en) * 2006-09-21 2011-06-07 Intel Corporation Method and apparatus for performing logical compare operations
US7917568B2 (en) 2007-04-10 2011-03-29 Via Technologies, Inc. X87 fused multiply-add instruction
US9690591B2 (en) * 2008-10-30 2017-06-27 Intel Corporation System and method for fusing instructions queued during a time window defined by a delay counter

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10124391A (ja) * 1996-10-07 1998-05-15 Internatl Business Mach Corp <Ibm> マージされたストア・オペレーションによってストア集束を行うためのプロセッサ及び方法
US5860107A (en) * 1996-10-07 1999-01-12 International Business Machines Corporation Processor and method for store gathering through merged store operations
JP2001523854A (ja) * 1997-11-17 2001-11-27 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド ルックアヘッド結果を発生し移動命令、比較命令および簡単な算術命令をまとめるよう構成されるプロセッサ
US20020087955A1 (en) * 2000-12-29 2002-07-04 Ronny Ronen System and Method for fusing instructions
US6889318B1 (en) * 2001-08-07 2005-05-03 Lsi Logic Corporation Instruction fusion for digital signal processor
US7937564B1 (en) * 2005-09-28 2011-05-03 Oracle America, Inc. Emit vector optimization of a trace

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6014003869; '「プロセッサー・キャッシュ最適化技法」' [online] , 2007, 8頁, インテル株式会社 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014194755A (ja) * 2013-03-15 2014-10-09 Intel Corp 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置
JP2014194753A (ja) * 2013-03-15 2014-10-09 Intel Corp 複数のテストソースを用いた論理和テストおよび論理積テスト機能を実現する融合可能な命令と論理
JP2016042382A (ja) * 2013-03-15 2016-03-31 インテル・コーポレーション 複数のテストソースを用いた論理和テストおよび論理積テスト機能を実現する融合可能な命令と論理
JP2016103280A (ja) * 2013-03-15 2016-06-02 インテル・コーポレーション 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置
US9483266B2 (en) 2013-03-15 2016-11-01 Intel Corporation Fusible instructions and logic to provide OR-test and AND-test functionality using multiple test sources
US9886277B2 (en) 2013-03-15 2018-02-06 Intel Corporation Methods and apparatus for fusing instructions to provide OR-test and AND-test functionality on multiple test sources
US10296347B2 (en) 2013-03-15 2019-05-21 Intel Corporation Fusible instructions and logic to provide or-test and and-test functionality using multiple test sources
JP2018500657A (ja) * 2014-12-23 2018-01-11 インテル・コーポレーション 融合された単一のサイクルのインクリメント−比較−ジャンプを実施するための命令及びロジック

Also Published As

Publication number Publication date
US20100115248A1 (en) 2010-05-06
JP5902285B2 (ja) 2016-04-13
TW201032129A (en) 2010-09-01
DE102009051388A1 (de) 2010-05-06
US9690591B2 (en) 2017-06-27
BRPI0920782B1 (pt) 2020-04-22
CN101901128B (zh) 2016-04-27
TWI455023B (zh) 2014-10-01
US20170003965A1 (en) 2017-01-05
CN103870243A (zh) 2014-06-18
US20160246600A1 (en) 2016-08-25
US10649783B2 (en) 2020-05-12
US20160378487A1 (en) 2016-12-29
BRPI0920782A2 (pt) 2015-12-22
KR101258762B1 (ko) 2013-04-29
JP2015072707A (ja) 2015-04-16
KR20110050715A (ko) 2011-05-16
WO2010056511A3 (en) 2010-07-08
WO2010056511A2 (en) 2010-05-20
BRPI0904287A2 (pt) 2011-02-01
CN101901128A (zh) 2010-12-01
CN103870243B (zh) 2018-02-02

Similar Documents

Publication Publication Date Title
JP5902285B2 (ja) 有効な命令フュージョンを進展させる技術
JP2012507794A5 (ja)
JP6969853B2 (ja) ノンブロッキング高性能トランザクションクレジットシステムを備えるマルチコアバスアーキテクチャ
US9690581B2 (en) Computer processor with deferred operations
US7769955B2 (en) Multiple thread instruction fetch from different cache levels
US8539485B2 (en) Polling using reservation mechanism
US6978350B2 (en) Methods and apparatus for improving throughput of cache-based embedded processors
US7266648B2 (en) Cache lock mechanism with speculative allocation
US20110066811A1 (en) Store aware prefetching for a datastream
US20090106499A1 (en) Processor with prefetch function
US20120226865A1 (en) Network-on-chip system including active memory processor
US20210294639A1 (en) Entering protected pipeline mode without annulling pending instructions
US8719555B2 (en) Method for overcoming livelock in a multi-threaded system
US20210326136A1 (en) Entering protected pipeline mode with clearing
JP2004192021A (ja) マイクロプロセッサ
JP2010061642A (ja) スレッドのスケジューリングテクニック
JP5949327B2 (ja) 演算処理装置および演算処理装置の制御方法
JP4413663B2 (ja) 命令キャッシュシステム
JP4111645B2 (ja) キャッシュミスした後のメモリバスアクセス制御方式
CN116483743A (zh) 数据高速缓存预取装置、方法及处理器
JP4049490B2 (ja) 情報処理装置
JP2000305778A (ja) 命令処理装置
JP2000090003A (ja) 主記憶メモリのプリフェッチ機構を備えたマイクロプロセッサ

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121023

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121023

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140502

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140513

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140603

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140729