JP2008522320A - ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制 - Google Patents

ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制 Download PDF

Info

Publication number
JP2008522320A
JP2008522320A JP2007544378A JP2007544378A JP2008522320A JP 2008522320 A JP2008522320 A JP 2008522320A JP 2007544378 A JP2007544378 A JP 2007544378A JP 2007544378 A JP2007544378 A JP 2007544378A JP 2008522320 A JP2008522320 A JP 2008522320A
Authority
JP
Japan
Prior art keywords
address
branch
instruction
branch instruction
page
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.)
Granted
Application number
JP2007544378A
Other languages
English (en)
Other versions
JP5231018B2 (ja
Inventor
ディーフェンダーファー、ジェイムス・ノリス
サートリウス、トマス・アンドリュー
スミス、ロドニー・ウェイン
ステムペル、ブライアン・マイケル
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2008522320A publication Critical patent/JP2008522320A/ja
Application granted granted Critical
Publication of JP5231018B2 publication Critical patent/JP5231018B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • 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/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/3818Decoding for concurrent execution
    • G06F9/382Pipelined decoding, e.g. using predecoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/65Details of virtual memory and virtual address translation
    • G06F2212/655Same page detection
    • 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

パイプライン化されたプロセッサにおいて、命令キャッシュよりも前に配置されたプリ復号器がPC相対アドレス又は絶対アドレスの分岐命令の分岐ターゲットアドレスを計算する。該プリ復号器は、該ターゲットアドレスと該分岐命令アドレスが同じメモリーページに存在するか否かを判別するためにBTAと分岐命令アドレス(BIA)を比較する。このことを表す分岐ターゲット同一ページ(BTSP)ビットが該キャッシュに書き込まれ、該命令に関連付けられる。分岐命令が実行され、分岐が発生したと評価された場合、BTSPビットにより表されるようにBTAがBIAと同じページにあるならば、BTAの許可属性を検査するためのTLBアクセスが抑制される。このことは、TLBアクセスが抑制され、分岐命令が最初にフェッチされる際にBTAとBIAの比較が一回だけ実行されるために、電力消費を削減する。更に、プリ復号器は、BTAの生成と選択のクリティカルパスからBTAとBIAの比較を取り除く。
【選択図】 図2

Description

本発明は一般的にはプロセッサの分野に関し、特に、分岐ターゲットアドレスが分岐命令アドレスまたは分岐命令それ自体から決定できるページ内分岐のためのTLBアクセスを抑制することにより、プロセッサ内の電力消費を削減する方法に関する。
可般型電子デバイスは現代生活においてユビキタス(ubiquitous)な装具となっている。可般型電子デバイスにおける二つの過酷な動向は、増大する機能とサイズの小型化である。増大する機能は増大する計算パワー、特に更に高速でより強力なプロセッサを要求する。
より高速なプロセッサを要求する先進的な特徴と機能を提供するのと同様に、可般型電子デバイス自身は大きさと重量において縮小し続ける。この動向に最も大きく影響しているものは、プロセッサ内における、プロセッサに電力を供給する電池と他の電子部品の減少するサイズである。電池の技術の進歩が部分的には問題を埋め合わせているものの、電池の減少するサイズは可般型電子デバイスの電子部品における電力の見込み消費量(budget)、特にプロセッサによって使われる電力の削減要求を課している。
従って、性能向上と電力消費の減少の一方または両者を実現するプロセッサの改良は可般型電子デバイスのような多くのアプリケーションにとって望ましい。現代のプロセッサはメモリー階層構造、即ち、高速で高価な小さい量のメモリーをプロセッサに近接させ、大きい量のより低速で安価なメモリーをプロセッサから、より幾分か離して配置してバックアップする構造を一般的に採用している。大きなメイン・メモリーは一般的にページと呼ばれる複数の論理的な単位に分割される。一のページの中の全てのデータ又は命令は、共通して同一の属性を持ち、その属性は共通の特性を定義し、許可(permission)およびそれと同様なものを介してアクセスを制限する。該ページ属性は典型的にはトランスレーションルックアサイドバッファー(TLB:Translation Lookaside Buffer)に格納される。一般的に、プロセッサは、命令フェッチの都度、プログラムが、命令の実行とアクセスの許可(permission)を持っているかを検証するために、TLBを経由して命令アドレスを渡す。
TLBにおいて許可(permission)のような属性を検査することは電力を消費する。一つのページ上の各々の命令は同じ属性、従って同じ許可(permission)を持っているので、一旦当該ページ上の何れか一つの命令がTLBを通して検証されれば、同一ページ上の他の全ての命令はTLB属性を検査することなくフェッチされることが可能である。例えば、以前にTLB属性が検査された命令から順番に実行される複数の命令について、当該順番に実行される命令がページ境界を横切るまで、TLB属性の検査を回避することが当該技術分野において既知である。
同様に、一つのページから去ることがない分岐ターゲットについてのTLB属性検査を回避することにも利点がある。分岐ターゲットアドレスの計算と次の命令をフェッチすべき分岐ターゲットアドレスを選択することは典型的には一の分岐命令のクリティカルパスであり、マシンサイクル時間(machine cycle time)を決定する上での制限要因である。分岐ターゲットアドレスが命令アドレスと同じページに存在するならば、該ターゲットアドレスのTLB属性の検査は回避されてもよい。しかしながら、分岐ターゲットアドレスがTLBにより検査された最後のアドレスと同じページに存在するか否かを判別するために、分岐ターゲットアドレスとTLBにより最後に検査されたアドレスとを比較することは、クリティカルパスに遅延を付加することになるため、サイクル時間を長くしてしまう。更に、各分岐命令を実行するたびごとに、計算が実行されなくてはならないため、同じページに存在すると判別されたターゲットアドレス群と命令アドレス群についてのTLB属性検査の回避により得られる電力消費が、該計算のために消費される余分な電力により相殺されてしまう。
[発明の概要]
分岐ターゲットアドレスが、分岐命令アドレスおよび分岐命令それ自身の何れか一方またはその両方によって決定されうるような分岐については、プリ復号器が分岐ターゲットアドレスを計算することが可能であり、該分岐ターゲットアドレスと分岐命令アドレスが同じメモリーページに存在するか否かを判別するために、該二つのアドレスを比較することが可能である。上記の条件を反映する分岐ターゲット同一ページビットは命令キャッシュに格納され、該分岐命令に関連付けられることが可能である。命令が実行される際に分岐が行われるならば、分岐ターゲットアドレスについての許可を検査するためのTLBアクセスは、分岐ターゲット同一ページビットに応じて抑制されることが可能である。
本発明は、パイプライン化されたプロセッサにおける電力消費を削減する方法に関する。パイプライン中の分岐命令を復号するのに先立って、PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが分岐命令アドレスと同じメモリーページに存在することが検出される。その後、該ターゲットアドレスから命令をフェッチする際に、その検出に応じて、TLBアクセスが抑制される。
本発明は、プロセッサにおける電力消費の削減方法にも関連する。PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが分岐命令アドレスと同じメモリーページに存在することが一旦検出される。該検出のインジケーターが格納される。該分岐命令の最初の実行期間内に該ターゲットアドレスをフェッチする際に、該インジケーターに応じて、TLBアクセスが抑制される。更に、該分岐命令の二回目の実行期間内に該ターゲットアドレスをフェッチする際に、該インジケーターに応じて、TLBアクセスが抑制される。
本発明は更に、プロセッサに関する。該プロセッサは、PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが、分岐命令アドレスと同じメモリーページに存在することの表示を生成するページ居留検出ロジック(page residence detection logic)を含む。
更に該プロセッサは、該表示を格納するメモリ、および、該分岐命令の実行期間内に該ターゲットアドレスに位置する命令をフェッチする際に、該表示に応じてTLBが抑制されるような、命令フェッチに際してのメモリーアクセス許可情報を生成するTLBを含む。
本発明は更に、プロセッサに関する。該プロセッサは、該プロセッサの外部に位置するメモリーをアクセスするメモリーインターフェイスと、複数の論理ページとして構成されるメモリーを含む。該プロセッサは更に、メモリーインターフェイスとデータ転送関係にあり、複数の命令を格納するキャッシュメモリーを含む。該プロセッサは更に、メモリーインターフェイスとキャッシュメモリーの間に配置されるプリ復号器を含み、該プリ復号器は、PC相対アドレスまたは絶対アドレスの分岐命令をキャッシュメモリー中に格納するのに先立って、該分岐命令の分岐ターゲットアドレスを計算する。
[詳細な説明]
図1は、代表的なプロセッサ10の機能ブロック図である。プロセッサ10は制御ロジック14に従って、命令実行パイプライン12の中の複数の命令を実行する。該パイプラインは、複数のパイプステージ内に構成された多様なレジスターまたはラッチ16、一または複数の算術論理ユニット(ALU)18を含む。汎用レジスター(GPR)ファイル20は、メモリー階層構造の頂点を備えるレジスター群を提供する。該パイプラインは、命令側トランスレーションルックアサイドバッファー(ITLB:Instruction-side Translation Lookaside Buffer)24によって管理されるメモリーのアドレス指定と許可、および、任意的に、プリ復号器によって実行されるある初期復号処理と共に、命令キャッシュ22から命令をフェッチする。データは、メインのトランスレーションルックアサイドバッファー(TLB:Translation Lookaside Buffer)28によって管理されるメモリーのアドレス指定と許可と共に、データキャッシュ26からアクセスされる。様々な実施例において、該ITLBは該TLBの一部の複製を備えることが可能である。代替的に、該ITLBと該TLBは統合されることが可能である。同様に、プロセッサ10の様々な実施例においては、該命令キャッシュ22とデータキャッシュ26は統合されるまたは単一化されることが可能である。命令キャッシュ22またはデータキャッシュ26の何れか一方または両者を欠くことは、メモリーインターフェイス30の制御の下でのメインの(チップ外の)メモリー32へのアクセスを引き起こす。プロセッサ10は、様々な周辺機器36へのアクセスを制御する入出力(I/O)インターフェイス34を含むことが可能である。当業者は、プロセッサ10の数多くのバリエーションが可能であることを認識するであろう。例えば、プロセッサ10は、命令キャッシュおよびデータキャッシュの何れか一方または両方のための第2階層キャッシュ(L2 cache: second-level cache)を含むことができる。更に、特定の実施例においては、プロセッサ10において図示されている一または複数の機能ブロックを省略することが可能である。
多くのプログラムは、該プログラムを実行する計算機が、あたかも非常に大きな(理想的には無制限の)量の高速メモリーを持っているかのように書かれている。殆どの現代的なプロセッサは、その各々が異なる速度とコスト特性を持つメモリー種別の階層構造を採用することにより、上記の理想的条件をシミュレートする。上記階層構造における上記メモリー種別は、最上位における非常に高速で非常に高価なものから、段階的に、より低い階層における、より低速であるがより経済的な記憶装置種別まで様々に異なっている。典型的なプロセッサ・メモリー階層構造は、最上位におけるプロセッサ内のレジスター群(ゲート群)、それの背後における一または複数のチップ内キャッシュ22、26(SRAM)、場合によってはチップ外キャッシュ(SRAM)(図示なし)、メイン・メモリー32(DRAM)、ディスク記憶装置(磁気記憶媒体)(図示なし)、および最下層におけるテープまたはCD(磁気または光学の記憶媒体)(図示なし)を備えることが可能である。殆どの可般型電子デバイスは、たとえ有るとしても限られたディスク記憶装置しか持っておらず、従ってメイン・メモリー32(サイズが限定されている場合が多い)がメモリー階層構造の最下位の階層となる。
計算機メモリー階層構造においては、より下位の階層の各々は、より上位の階層に存在するデータの完全な(しかし場合によっては古くなった)複製を維持している。即ち、より上位の階層に格納されたデータはより下位の階層に格納されたデータを複写している。より小さい、より上位の階層の記憶装置は、より大きい、より下位の階層のメモリー内の多数の位置にマッピングすることができるので、階層構造内の階層間でアドレスを変換するためのマッピング方式が必要とされる。殆どのプロセッサは非常に大きな、概念的には連続した仮想アドレス空間において動作する。メイン・メモリー32はハードウェアとシステムのパラメータによって制約される物理アドレス空間においてアクセスされる。プロセッサ・コアとメイン・メモリーの間に配置されたキャッシュ22と26は、完全に仮想アドレスだけで、または完全に物理アドレスだけで、または両者の組み合わせ(例えば、仮想インデックスと物理タグを使うことによるもの)によりアクセスすることが可能である。しかしながら、キャッシュの構成に関わらず、アドレスは結果的には仮想アドレス空間から物理アドレス空間へ変換されなくてはならない。
更に、多くのオペレーティング・システムは、各プログラムが命令セットアーキテクチャによって特定される全てのアドレス範囲を使うことが可能な別々の仮想アドレス空間をこれらのプログラムに与えることによって、プログラム同士を互いに切り離している。しかしながら、システムにおいて利用可能な実際の物理メモリーは、典型的には、仮想アドレス空間においてプログラムによってアドレス指定されるものよりも、サイズにおいて遥かに小さい。アドレスの仮想空間から物理空間へのマッピングは、プログラムが限られた物理メモリー内で走ることができるような方法で、限られた物理メモリーへのアクセスを管理するのに用いることができることが当該技術分野において広く知られている。
オペレーティング・システムによる、TLBのような特殊化されたメモリー管理ハードウェアと連携したメモリー管理は、プログラムを、お互いのデータを上書きすることから防ぐことができる。メモリー管理は更に、一のプロセスを他のプログラムのデータを読み出すことから防止することにより、セキュリティーを提供することができる。メモリー管理は、ユーザ・レベル・プログラムがスーパバイザ・レベルのデータ構造をアクセスすることを不許可とすることにより、信頼性を促進している。もしも、オペレーティング・システムの割り当てテーブルやパラメータ群のようなスーパバイザ・レベルのデータ構造が上書きされた場合、システムクラッシュが結果として生じる。仮想アドレス空間と物理アドレス空間の両者はページとして知られる単位に分割され管理される。許可属性は一般に各ページ単位でメモリー32に割り当てられる。
TLB28は、仮想メモリーアドレスから物理メモリーアドレスへの変換を行い、更に、仮想アドレスがマッピングされる物理メモリーページの許可の情報とその他の属性を維持する。ITLB24は、上記と同様のことを命令に対して行う。物理的に索引付けされたキャッシュおよび物理的にタグ付けされたキャッシュの何れか一方または両者の場合、プロセッサ仮想アドレスは各々のキャッシュアクセスのたびに変換されなくてはならない。仮想的に索引付けされ、かつ、タグ付けされたキャッシュは各キャッシュアクセスのたびごとのアドレス変換を要さない。しかしながら、要求されたデータが存在するページに関連付けられた許可を検査するため、および、要求されている仮想アドレスにマッピングされた物理アドレスを得るために、プロセッサ10がメモリー32をアクセスするたびごとに、TLB28は常に調べられる。これは、プログラムがそのページの実行許可を持っているかを検証するために、命令のフェッチについてITLB24を検査することを含む。
関連する電力消費の節約を伴うITLB24へのアクセス削減のために、幾つかの技法が当該技術分野において既知である。例えば、順次アクセスにおいては、ページ境界を横切るまで、全てのアクセスは同じページの中にあるであろう。順次アクセス検出はページサイズに依存する。メモリーアドレスは以下の表1に図示するごとく、ページ番号とページオフセットに論理的に分割される。
Figure 2008522320
ページ番号はITLB24によって変換される。ページオフセットは、仮想アドレスおよび物理アドレスについて同一であるページ内のオフセットである。即ち、ページオフセットビットは一般に変換されない。ページオフセットはページサイズ内のメモリーをアドレス指定するのに必要な数のビットを備える。例えば、4キロバイトのページを持つ32ビットアドレスの場合、ページ番号はアドレスビット[31:12]を備え、ページオフセットはアドレスビット[11:0]を備える。
一連の順次アクセスの間のページ境界の横断を検出するために、ページ番号フィールドの最下位ビット(LSB)が監視される。上記の例においては、アドレスビット12が順次アクセスの最中に反転した場合、プロセッサ10はページ境界を横切ったと判定し、反転したアドレスビット12を伴う最初のメモリーアクセスは、新しいページについてのアクセス許可を検査するためにITLBを介して変換される。
異なるページから命令をフェッチするために分岐するけれども、該フェッチされる命令のページ番号フィールドのLSB(即ち、ビット12)が同一であるような分岐命令を突き止めようとすると、ページの横断は、より難しくなる。従って、ページ番号フィールドのLSBを監視することは、分岐命令によってページ境界が横切られた場合には不充分となる。分岐ターゲットアドレス(BTA:Branch Target Address)が計算される際、ページ番号に対応するビットフィールド、即ちBTA[31:12]は分岐命令アドレス(BIA:Branch Instruction Address)の対応するビット、即ちBIA[31:12]と比較することができる。二つのアドレスフィールドが同一であるならば、分岐ターゲットは分岐命令と同一のページ内に存在し、BTAに関する許可情報を得るためにITLB24を調査する必要がない。何故なら、BTAの該許可はBIAに関するそれと同一だからである。
しかしながら、BTAをITLB24に提示する前に、BTAの計算、および次の命令アドレスに関する無数の選択肢の中からBTAを選択することは、典型的にはプロセッサ・データフロー内におけるクリティカルタイミングパス(Critical Timing Path)となる。他の20ビットの比較を実行することは、マシンサイクル時間の増加を必要とするかも知れず、その結果として、BTAとBIAが同一ページに存在する場合にITLB24の検索を回避することで見込まれる電力の節約によって正当化される以上に性能を低下させることにつながる。
本発明の実施例によれば、分岐ターゲットアドレスが分岐命令それ自身のアドレスと同じメモリーページに存在する場合に、分岐ターゲットアドレスが、分岐命令アドレスおよび分岐命令それ自身の何れか一方または両者から決定され得る分岐命令について、ITLB24へのアクセスが抑制される。本願において開示され、特許請求されているプロセッサと方法は、多数の分岐命令の実行についてのITLB24へのアクセスを抑制することによって電力消費を削減するものである。あるプログラムでは、4命令〜6命令ごとに分岐命令に遭遇する。よって、この様子は、それ単独で顕著な電力管理の改善を表している。
更に本発明は、分岐ターゲットアドレスが分岐命令アドレスまたは分岐命令それ自体から決定されうるような如何なる分岐命令に対しても、BTAとBIAの比較を一回だけ行うことにより電力の浪費を防ぐものであり、分岐命令が命令キャッシュ22から実行されるたびごとにBTAとBIAの比較を行うのとは対照的である。最後に、本発明は、次の命令の計算と選択のクリティカルパスからBTAとBIAの比較を取り除くことにより、これらの電力節約をマシンサイクル時間に影響を与えることなく達成する。
パイプライン化されたプロセッサ10において、プリ復号器21を用いることが広く知られている。メイン・メモリー32から命令がアクセスされる際に、該命令を検査することで、ある予備的な復号演算が実行されることが可能であり、該命令と共に、該命令に関するある結果情報が命令キャッシュ22に格納されることが可能である。
命令がパイプライン12に続けてフェッチされ復号される際に、プリ復号情報は、命令復号作業の幾らかを除くことにより、復号器の単純化を可能にするであろう。
本発明の一の実施例においては、分岐ターゲットアドレスが分岐命令アドレス又は分岐命令それ自体の何れか一方または両者から決定されるような分岐命令についての分岐ターゲットアドレス、即ちBTAを命令プリ復号器21が計算する。プリ復号器21はBTAを分岐命令アドレス、即ちBIAと比較し、「分岐ターゲット同一ページ」ビット46(BTSP)を、該分岐命令および、場合によっては他のプリ復号情報44と共に、命令キャッシュ22に格納する。分岐命令が命令キャッシュ22から続けてフェッチされ、(典型的には何度も)実行される場合、該BTSPビット46はITLB24を抑制し、ITLB24が以前に提供した許可情報の更新を妨げる。
分岐ターゲットアドレスが分岐命令アドレス又は分岐命令それ自体の何れか一方または両者から決定されるような分岐命令は、プログラムカウンター(PC)相対分岐と絶対アドレス分岐を含む。PC相対分岐命令は該命令自身の一部である分岐変位(BDSP:branch displacement)フィールドを含む。PC相対分岐命令のBTAは該分岐命令のBIAにBDSPを加算することによって計算される。即ち、
BTA=BIA+BDSP 式(1)
である。
絶対アドレス分岐命令は、該命令の一部であるフィールド中に分岐ターゲットアドレスの一部を含んでいる。このフィールドは典型的にはアドレス・バスのサイズまで拡張される必要があり、その後、BTAを生成するためにアドレス・バスにアラインされる。
図2は機能ブロック図の形で命令キャッシュ22、ITLB24、そしてプロセッサ10のパイプライン12の一部を図示している。命令キャッシュ22内部で一の命令フェッチが失敗し、該命令がメイン・メモリー32から取り出された場合(図1参照)、プリ復号器21は該命令を命令キャッシュに置くのに先立って該命令を部分的に復号することが可能である。プリ復号器21は、ラインフィルバッファ40の中に含まれる複数の命令の集合をプリ復号処理することが可能である。プリ復号器21は更に、LFAレジスター42からラインフィルアドレスを受け取ることも可能である。これらのレジスター群はメモリーインターフェイス30の一部(図1参照)を備えることが可能である。プリ復号器21は当該技術分野において既知である。プリ復号器は命令を部分的に復号し、プリ復号ビット44として図示されるように、該命令について部分的に復号された情報を命令キャッシュ22に置くことが可能である。プリ復号された情報は例えば、可変長命令の長さを含むことが可能である。プリ復号ビット44は命令を完全に復号する際に、パイプライン12の中の復号ロジック48を補助する。
本発明の一の実施例に従えば、PC相対アドレス又は絶対アドレスの分岐命令の分岐ターゲットアドレス(BTA)はプリ復号器21によって計算され、該分岐命令の分岐命令アドレス(BIA)と比較される。該BIAは、以下の式に従って、ラインフィルアドレス(LFA)および分岐ライン索引(BLI:branch line index)から、またはキャッシュ・ライン(例示するなら、ラインフィルバッファの内容)の中の分岐命令のオフセットから計算されることが可能である。
BIA = LFA + BLI 式(2)
プリ復号器は更に、PC相対分岐命令から分岐変位(BDSP:branch displacement)を取り出し、式(1)に従ってBTAを計算し、一方、絶対アドレス分岐命令については、該命令それ自体の中のフィールドからBTAを形成する。BTAとBIAが同じメモリーページに存在するか否かが、上記両者のアドレス中のページ番号を備える部分同士を比較することにより確認される。例えば、4キロバイトのページサイズを持つ、32ビットのメモリーシステムでは、ページ番号は上位の20ビットを備える(表1参照)。分岐ターゲット同一ページビットは以下の式によって決定される(または、それは逆の意味を与えられるかも知れない)。
If(BTA[32:12]==BIA[32:12])then BTSP=1; else BTSP=0 式(3)
式(3)のハードウェア記述言語による一つの表現は、
BTSP = ~|(BTA[32:12] ‐ BIA[32:12]) 式(4)
である。即ち、該二つのページ番号は、これらの数値的な差異がゼロである時に等しい。上記のゼロ検出は式(4)において一つのリダクションOR演算と一つのインバートにより表されている。
プリ復号器21はBTSPビット46をPC相対アドレスまたは絶対アドレスの分岐命令と該分岐命令と共に、命令キャッシュ22に配置し、該ビット46を該命令に関連付ける。BTAをレジスターの内容から獲得し又は計算する分岐命令(即ち、非PC相対アドレスまたは絶対アドレスの分岐命令)については、BTAが実際に生成される際に、パイプライン12内での実行ステージよりも前には、BTAについて何も知ることができない。従って、非PC相対アドレスまたは絶対アドレスの分岐命令については、プリ復号器21は、BTSPビット46に強制して、ページ横断を表すことが可能であり、それは分岐が発生したと評価され、分岐ターゲット命令がフェッチされる場合に、ITLB24へのアクセスを生成する。この事は、上記のような分岐についてアクセス許可が検査されることを保証する。
命令キャッシュ22からPC相対アドレス又は絶対アドレスの分岐命令がフェッチされる際に、該命令に関連付けられたBTSPビット46もフェッチされ、例えば、復号パイプステージラッチ50(decode pipe stage latch 50)に格納される。これに続いて、ターゲットアドレスがフェッチされるに際して、該BTSPビット46は、例えばBTAがITLB24に提示される場合のイネーブル入力があった時点でITLB24を抑制する。復号ラッチ50内のBTSPビット46に続く破断入りの線は、演算中において、BTSPビット46が分岐命令と共にパイプラインを流れ下り、実行パイプステージ中のITLB24のイネーブル入力に実際に提示される様子を表示している。パイプライン12の特定のアーキテクチャはこの議論とは特に関係せず、従ってパイプライン12のこれ以降のステージの詳細は図2からは省略してある。
ITLB24を抑制することに加えて、BTSPビット46は、ITLB24から出力された属性を格納するXLTラッチ52の更新を防止する。従って、分岐ターゲット命令のフェッチは、以前にラッチされた属性、即ち、同一メモリーページ内の以前の命令の属性に対応するものと同じものを使うことになる。
図2は、ITLB24と命令キャッシュ22の両者を索引付けしている仮想アドレスVA[32:0]を図示している。これは、仮想的に索引付けされタグ付けされた命令キャッシュ22の場合である。代替的に、命令キャッシュは物理的に索引付けされ、タグ付けされることが可能であり、この場合においては、図2の破線で表示されるように、ITLB24は仮想アドレスを物理アドレスPA[32:0]に変換し、命令キャッシュ22に該物理アドレスを供給する。その他の代替事例としては、仮想的に索引付けられ、物理的にタグ付けされた場合において、両方のアドレス経路が存在することが可能である。
PC相対アドレス又は絶対アドレスの分岐命令についての分岐ターゲットアドレスの生成を行うことにより、そして、プリ復号器21の内の分岐命令アドレスに対してページ比較を行い、その結果を命令キャッシュ22に格納することにより、幾つかの方法で電力の浪費が抑えられる。第1に、分岐ターゲット命令が分岐命令それ自体と同じページからフェッチされる場合に、ITLB24が許可の検査のためにアクセスされる必要がない。第2に、上記の計算を実行するための電力は一回だけ費やされる。該結果は、命令が実行されるたびごとに取り出されるために、命令キャッシュ22内のBTSPビット46の中に格納される。命令キャッシュについては高90%におけるヒット率が一般的であるので、複数の機会はPC相対アドレス又は絶対アドレスの分岐命令が何度も実行されるであろうことである。単一の計算の結果を格納することは、命令を実行するたびごとに計算を実行することよりも、顕著な電力の節約となって現れる。実際、プリ復号器21内でのアドレスの生成と比較を実行するのに、複数のサイクルが必要とされたとしても、該分岐命令が該キャッシュから何度も実行されることにより、該プロセスは依然として顕著な電力の節約という結果になる。最後に、BTAとBIAの比較は分岐ターゲットアドレスの生成と選択のクリティカルパスから取り除かれ、より短いサイクルタイムを可能とすることにより、性能を改善する。
当業者は、該プロセッサ10が代表的なもののみを示していることを理解するであろう。プロセッサのアーキテクチャと設計の広範なバリエーションが存在し、本発明の技術的範囲の中において数多くのバリエーションが可能である。例えば、命令キャッシュ22とデータキャッシュ26は組み合わせることが可能であり、または唯一のキャッシュに一本化することができる。代替的に、一つ又は複数の追加的なキャッシュがキャッシュ22および26に対して階層的又は対等な関係において採用されることが可能である。同様に、ITLB24はTLB28と組み合わせることが可能であり、または、プロセッサはデータ側のためにDTLBを採用することが可能であろう。
本発明は本願において、特定の特徴、見地、および実施例について記載されているが、本発明の広範な技術的範囲に属する数多くのバリエーション、変形実施例およびその他の実施例が可能であり、従って、全ての該バリエーション、変形実施例および実施例は本発明の技術的範囲に属すると認められるべきである。従って、本実施例は全ての面において例示的であり、制限的でないと解釈されるべきであり、追加された請求項の均等範囲および手段から導かれる全ての変更はここに包含されるように意図されている。
パイプライン化されたプロセッサの機能ブロック図である。 ITLB(命令側トランスレーションルックアサイドバッファー:Instruction-side Translation Lookaside Buffer)、命令キャッシュ、および、プロセッサ・パイプラインの一部についての機能ブロック図である。
符号の説明
10…プロセッサ、12…命令実行パイプライン、14…制御ロジック、16…多様なレジスターまたはラッチ、18…演算論理ユニット、20…汎用レジスターファイル、21…プリ復号器、22…命令キャッシュ、24…命令側トランスレーションルックアサイドバッファー、26…データキャッシュ、28…トランスレーションルックアサイドバッファー、30…メモリーインターフェイス、32…メイン・メモリー、34…入出力インターフェイス、36…周辺機器、40…ラインフィルバッファ、42…LFAレジスター、44…プリ復号ビット、46…分岐ターゲット同一ページビット、48…復号ロジック、50…復号パイプステージラッチ、52…XLTラッチ

Claims (22)

  1. 下記を備えるパイプライン化されたプロセッサ内の電力消費の削減方法、
    パイプラインにおいて分岐命令を復号するのに先立って、PC相対アドレスまたは絶対アドレスの該分岐命令のターゲットアドレスが該分岐命令のアドレスと同じメモリーページに存在する旨を検出すること、および、
    前記の検出に応じて、前記ターゲットアドレスから一個の命令をフェッチする際に一つのTLBアクセスを抑制すること。
  2. PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが該分岐命令のアドレスと同じメモリーページに存在することを検出する動作が、前記分岐命令をキャッシュに配置するに先立って、前記の同一ページ状態を検出することを備える請求項1記載の方法。
  3. 前記同一ページ状態を表す、前記分岐命令に関連付けられた、分岐ターゲット同一ページビットを前記キャッシュが含む請求項2記載の方法。
  4. 前記検出動作に応じて前記ターゲットアドレスから一つの命令をフェッチする際に一つのTLBアクセスを抑制することが、前記分岐ターゲット同一ページビットに応じて前記命令をフェッチする際に、前記TLBを無効化することを備える請求項3記載の方法。
  5. 請求項4記載の方法であって、更に、前記分岐ターゲット同一ページビットに応じて、該TLBの以前の出力を保持する一つのレジスターに対する一つの更新を不許可にすることを備える方法。
  6. PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが該分岐命令のアドレスと同じメモリーページに存在することを検出する動作が、下記を備える請求項1記載の方法、
    前記分岐命令の分岐ターゲットアドレスを計算すること、および、
    前記分岐ターゲットアドレスのページ番号部分を、これに対応する前記分岐命令のアドレスのページ番号部分と比較すること、および、
    前記分岐ターゲットアドレスと前記分岐命令のアドレスのページ番号部分が同一である場合に、同一ページ状態を検出すること。
  7. 前記分岐ターゲットアドレスと前記分岐命令アドレスのページ番号部分が同一である場合に、同一ページ状態を検出ことが、
    前記一方のページ番号部分を他方のページ番号部分から減算し、その結果に対してリダクションOR演算とインバート演算を行うことを備える請求項6記載の方法。
  8. 前記分岐命令の分岐ターゲットアドレスを計算することが、前記分岐命令アドレスに分岐変位を加算することを備える請求項6記載の方法。
  9. 前記分岐命令の分岐ターゲットアドレスを計算することが、前記分岐命令から分岐ターゲットアドレスの一部を取り出すことを備える請求項6記載の方法。
  10. 更に、前記分岐ターゲットアドレスを拡張し、それをアドレス・バスにアラインすることを備える請求項9記載の方法。
  11. 前記分岐命令の分岐命令アドレスを計算する動作が、分岐ライン索引をラインフィルアドレスに加算することを備える請求項6記載の方法。
  12. 下記を備えるプロセッサにより実現される電力消費削減の方法、
    PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが分岐命令アドレスと同一のメモリーページに存在することを検出すること、および、
    前記検出のインジケーターを蓄積すること、および、
    前記インジケーターに応じて、前記分岐命令の最初の実行の期間内に前記ターゲットアドレスをフェッチする際に、一つのTLBアクセスを抑制すること、および、
    前記インジケーターに応じて、前記分岐命令の二回目の実行の期間内に前記ターゲットアドレスをフェッチする際に、一つのTLBアクセスを抑制すること。
  13. 更に、前記分岐命令をキャッシュに格納することを備える請求項12記載の方法。
  14. 前記検出のインジケーターを格納することが、前記分岐命令に関連付けられた前記キャッシュに分岐ターゲット同一ページビットを格納することを備える請求項13記載の方法。
  15. 更に、前記分岐命令の前記2回目の実行に先立って、前記分岐命令と前記分岐ターゲット同一ページビットを前記キャッシュから読み出すことを備える請求項14記載の方法。
  16. 下記を備えるプロセッサ、
    PC相対アドレスまたは絶対アドレスの分岐命令のターゲットアドレスが分岐命令アドレスと同一のメモリーページに存在することを表すインジケーターを生成するページ居留検出ロジック、および、
    前記インジケーターを格納するメモリー、および、
    命令のフェッチに際してメモリーアクセス許可情報を生成する一つのTLBであって、前記分岐命令の実行の期間内に前記ターゲットアドレスに位置する一つの命令をフェッチするに際して、前記インジケーターに応じて抑制される前記TLB。
  17. 前記分岐命令に関連付けられた前記インジケーターと前記分岐命令を格納するキャッシュ、および、
    前記分岐命令と前記インジケーターを前記キャッシュからフェッチして前記分岐命令を実行する命令実行パイプラインを更に備える請求項16のプロセッサ。
  18. 下記を備えるプロセッサ、
    前記プロセッサの外部に位置するメモリーをアクセスするメモリーインターフェイス、
    前記メモリーは複数の論理ページとして構成される、
    前記メモリーインターフェイスとデータ転送関係にあるキャッシュメモリー、前記キャッシュメモリーは複数の命令を格納する、
    前記メモリーインターフェイスと前記キャッシュメモリーの中間に配置されたプリ復号器、
    前記プリ復号器は、PC相対アドレスまたは絶対アドレスの分岐命令を前記キャッシュメモリーに格納するのに先立って、前記分岐命令の分岐ターゲットアドレスを計算する。
  19. 前記プリ復号器が以下の両者を付加的に比較して、両者が同一のメモリーページに存在するか否かを判定する請求項18記載のプロセッサ、
    前記分岐ターゲットアドレスの最小限の部分、
    前記のPC相対アドレスまたは絶対アドレスの分岐命令のアドレスの最小限の部分。
  20. 前記二つのアドレスが前記キャッシュメモリー中の同一メモリーページに存在するか否かを表示する分岐ターゲット同一ページビットを前記プリ復号器が格納し、
    前記ビットは前記PC相対アドレスまたは絶対アドレスの分岐命令と関連付けられている請求項19記載のプロセッサ。
  21. 更に、PC相対アドレスまたは絶対アドレスの分岐命令とそれに関連付けられた分岐ターゲット同一ページビットを前記キャッシュメモリーから読み出す一の命令実行パイプラインを備える請求項20記載のプロセッサ。
  22. 更に下記を備える請求項21記載のプロセッサ、
    前記複数のメモリーページの許可属性を管理するTLBであって、前記のPC相対アドレスまたは絶対アドレスの分岐命令の実行の期間内に前記分岐ターゲットアドレスに位置する一の命令をフェッチするに際して、前記分岐ターゲット同一ページビットに応じて、前記TLBに対する許可属性検査アクセスが選択的に抑制されるTLB。
JP2007544378A 2004-12-02 2005-11-17 ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制 Expired - Fee Related JP5231018B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/003,772 2004-12-02
US11/003,772 US7406613B2 (en) 2004-12-02 2004-12-02 Translation lookaside buffer (TLB) suppression for intra-page program counter relative or absolute address branch instructions
PCT/US2005/041998 WO2006060198A1 (en) 2004-12-02 2005-11-17 Translation lookaside buffer (tlb) access supression for intra-page program counter relative or absolute address branch instructions

Publications (2)

Publication Number Publication Date
JP2008522320A true JP2008522320A (ja) 2008-06-26
JP5231018B2 JP5231018B2 (ja) 2013-07-10

Family

ID=36090860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007544378A Expired - Fee Related JP5231018B2 (ja) 2004-12-02 2005-11-17 ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制

Country Status (8)

Country Link
US (1) US7406613B2 (ja)
EP (1) EP1836561A1 (ja)
JP (1) JP5231018B2 (ja)
KR (1) KR100903758B1 (ja)
CN (1) CN101111819B (ja)
IL (1) IL183484A0 (ja)
MX (1) MX2007006580A (ja)
WO (1) WO2006060198A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504822A (ja) * 2009-09-10 2013-02-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリ要求を処理するためのシステム及び方法

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621179B2 (en) * 2004-06-18 2013-12-31 Intel Corporation Method and system for partial evaluation of virtual address translations in a simulator
US7509472B2 (en) 2006-02-01 2009-03-24 Sun Microsystems, Inc. Collapsible front-end translation for instruction fetch
US20080072024A1 (en) * 2006-09-14 2008-03-20 Davis Mark C Predicting instruction branches with bimodal, little global, big global, and loop (BgGL) branch predictors
US8930356B2 (en) * 2007-09-20 2015-01-06 Yahoo! Inc. Techniques for modifying a query based on query associations
US20100161950A1 (en) * 2008-12-24 2010-06-24 Sun Microsystems, Inc. Semi-absolute branch instructions for efficient computers
US8285968B2 (en) * 2009-09-29 2012-10-09 International Business Machines Corporation Performing memory accesses while omitting unnecessary address translations
WO2013048460A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Instruction and logic to control transfer in a partial binary translation system
CN102508641A (zh) * 2011-11-04 2012-06-20 杭州中天微系统有限公司 低成本的程序计数器数据传输装置
KR20130076973A (ko) 2011-12-29 2013-07-09 삼성전자주식회사 응용 프로세서 및 이를 포함하는 시스템
US9460018B2 (en) * 2012-05-09 2016-10-04 Qualcomm Incorporated Method and apparatus for tracking extra data permissions in an instruction cache
KR20160122278A (ko) 2012-08-18 2016-10-21 퀄컴 테크놀로지스, 인크. 프리페칭을 갖는 변환 색인 버퍼
US8819342B2 (en) 2012-09-26 2014-08-26 Qualcomm Incorporated Methods and apparatus for managing page crossing instructions with different cacheability
US9354885B1 (en) * 2016-01-08 2016-05-31 International Business Machines Corporation Selective suppression of instruction cache-related directory access
US9898296B2 (en) * 2016-01-08 2018-02-20 International Business Machines Corporation Selective suppression of instruction translation lookaside buffer (ITLB) access
US11269640B2 (en) * 2017-02-13 2022-03-08 Qualcomm Incorporated Speculative transitions among modes with different privilege levels in a block-based microarchitecture
US11126714B2 (en) * 2017-11-29 2021-09-21 Arm Limited Encoding of input to storage circuitry
CN114035850A (zh) * 2021-12-08 2022-02-11 苏州睿芯集成电路科技有限公司 一种基于risc-v的用于直接跳转的预编码设计方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4881446A (ja) * 1972-02-01 1973-10-31
JPS4971838A (ja) * 1972-09-21 1974-07-11
JPS5169333A (en) * 1974-12-13 1976-06-15 Fujitsu Ltd Peeji adoresuseigyohoshiki
JPS63254532A (ja) * 1987-04-10 1988-10-21 Nec Corp 中央処理装置のアドレス変換方式
JPH07200406A (ja) * 1993-12-27 1995-08-04 Toshiba Corp キャッシュシステム
JPH08123723A (ja) * 1994-08-30 1996-05-17 Mitsubishi Electric Corp 先行読出機能付命令キャッシュメモリ
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation
US6591343B1 (en) * 2000-02-22 2003-07-08 Ip-First, Llc Predecode in parallel with TLB compare
US6678815B1 (en) * 2000-06-27 2004-01-13 Intel Corporation Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end
US6735689B1 (en) * 2000-05-01 2004-05-11 Raza Microelectronics, Inc. Method and system for reducing taken branch penalty

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581151B2 (en) * 2001-07-18 2003-06-17 Ip-First, Llc Apparatus and method for speculatively forwarding storehit data based on physical page index compare

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4881446A (ja) * 1972-02-01 1973-10-31
JPS4971838A (ja) * 1972-09-21 1974-07-11
JPS5169333A (en) * 1974-12-13 1976-06-15 Fujitsu Ltd Peeji adoresuseigyohoshiki
JPS63254532A (ja) * 1987-04-10 1988-10-21 Nec Corp 中央処理装置のアドレス変換方式
JPH07200406A (ja) * 1993-12-27 1995-08-04 Toshiba Corp キャッシュシステム
JPH08123723A (ja) * 1994-08-30 1996-05-17 Mitsubishi Electric Corp 先行読出機能付命令キャッシュメモリ
US6591343B1 (en) * 2000-02-22 2003-07-08 Ip-First, Llc Predecode in parallel with TLB compare
US6735689B1 (en) * 2000-05-01 2004-05-11 Raza Microelectronics, Inc. Method and system for reducing taken branch penalty
US6678815B1 (en) * 2000-06-27 2004-01-13 Intel Corporation Apparatus and method for reducing power consumption due to cache and TLB accesses in a processor front-end
EP1304620A1 (en) * 2001-10-17 2003-04-23 Texas Instruments Incorporated Cache with selective write allocation

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013504822A (ja) * 2009-09-10 2013-02-07 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド メモリ要求を処理するためのシステム及び方法

Also Published As

Publication number Publication date
CN101111819B (zh) 2010-09-08
US20060149981A1 (en) 2006-07-06
EP1836561A1 (en) 2007-09-26
IL183484A0 (en) 2007-09-20
KR100903758B1 (ko) 2009-06-18
US7406613B2 (en) 2008-07-29
WO2006060198A9 (en) 2006-12-14
WO2006060198A1 (en) 2006-06-08
MX2007006580A (es) 2007-08-14
KR20070095924A (ko) 2007-10-01
CN101111819A (zh) 2008-01-23
JP5231018B2 (ja) 2013-07-10

Similar Documents

Publication Publication Date Title
JP5231018B2 (ja) ページ内のプログラムカウンター相対アドレスまたは絶対アドレスの分岐命令のためのtlbの抑制
JP4567789B2 (ja) Tlbロックインジケータ
KR101099302B1 (ko) 현재 실행중이 아닌 명령 세트로부터 명령들을 프리로드하기 위한 시스템, 방법 및 소프트웨어
JP5313228B2 (ja) 適切なプレデコーディングにより可変長命令セットから命令をプレロードするシステム、方法およびソフトウェア
JP4585005B2 (ja) 分岐訂正によるプリデコードのエラー処理
US20090006803A1 (en) L2 Cache/Nest Address Translation
JP5341163B2 (ja) 可変長命令の固定数を持つ命令キャッシュ
US7680985B2 (en) Method and apparatus for accessing a split cache directory
US9817762B2 (en) Facilitating efficient prefetching for scatter/gather operations
US7937530B2 (en) Method and apparatus for accessing a cache with an effective address
EP1869557B1 (en) Global modified indicator to reduce power consumption on cache miss
US9940262B2 (en) Immediate branch recode that handles aliasing

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101201

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110318

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110328

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110421

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110428

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110520

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110527

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120327

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120529

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120626

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120703

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120827

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130123

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: 20130219

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130321

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160329

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5231018

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees