JP2006107507A - 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 - Google Patents
命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 Download PDFInfo
- Publication number
- JP2006107507A JP2006107507A JP2005290385A JP2005290385A JP2006107507A JP 2006107507 A JP2006107507 A JP 2006107507A JP 2005290385 A JP2005290385 A JP 2005290385A JP 2005290385 A JP2005290385 A JP 2005290385A JP 2006107507 A JP2006107507 A JP 2006107507A
- Authority
- JP
- Japan
- Prior art keywords
- instruction word
- address
- branch
- cache
- prediction
- 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
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 43
- 238000006243 chemical reaction Methods 0.000 title claims abstract description 27
- 238000000034 method Methods 0.000 title claims abstract description 18
- 230000004044 response Effects 0.000 claims description 17
- 230000004913 activation Effects 0.000 claims description 2
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 3
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 3
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 2
- 230000007423 decrease Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3844—Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
- G06F12/1045—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
-
- 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
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
- G06F9/3848—Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/6028—Prefetching based on hints or prefetch instructions
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Advance Control (AREA)
Abstract
【課題】命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法の提供。
【解決手段】分岐予測器は、プロセッサコアから出力される現在命令語に対する分岐予測を行って、最終分岐予測値を出力する。分岐ターゲットバッファは、分岐予測器による分岐予測と同時に、予測ターゲットアドレスを出力する。アドレス選択ユニットは、分岐予測の結果が“taken”ではない現在命令語のアドレス及び予測ターゲットアドレスのうち、何れか一つを選択して出力する。分岐予測及び分岐ターゲットアドレス予測は、現在命令語の直前命令語は分岐命令語ではないという仮定下に、分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップする。
【選択図】図3
【解決手段】分岐予測器は、プロセッサコアから出力される現在命令語に対する分岐予測を行って、最終分岐予測値を出力する。分岐ターゲットバッファは、分岐予測器による分岐予測と同時に、予測ターゲットアドレスを出力する。アドレス選択ユニットは、分岐予測の結果が“taken”ではない現在命令語のアドレス及び予測ターゲットアドレスのうち、何れか一つを選択して出力する。分岐予測及び分岐ターゲットアドレス予測は、現在命令語の直前命令語は分岐命令語ではないという仮定下に、分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップする。
【選択図】図3
Description
本発明は、マイクロプロセッサに係り、より詳細には、ダイナミック電圧スケーリングを使用する命令語キャッシュ及び命令語変換参照バッファ(以下、命令語TLB(Translation Look−aside Buffer)という)を制御する制御器及びその制御方法に関する。
オン−チップキャッシュは、マイクロプロセッサの全体電力消費の多い部分を占める。配線幅が狭くなるにつれ、オン−チップキャッシュで消費される電力の多い部分は漏れ電力である。漏れ電力を減少させるためのオン−チップキャッシュとして、ドラウジーキャッシュが提案された。
図1は、ダイナミック電圧スケーリング(Dynamic Voltage Scaling:以下、DVS)を使用するドラウジーキャッシュを示す。図1に示すドラウジーキャッシュは、非特許文献1に記載されている。
ドラウジーキャッシュは、それぞれのキャッシュライン(cache line)に二つの異なる供給電圧を供給するDVS技術を使用する。このようなDVS技術は、オン−チップキャッシュの漏れ電力の消費を減少させうる。
ドラウジーキャッシュは、それぞれのキャッシュライン(cache line)に二つの異なる供給電圧を供給するDVS技術を使用する。このようなDVS技術は、オン−チップキャッシュの漏れ電力の消費を減少させうる。
図2は、一般キャッシュの電力消費とドラウジーキャッシュの電力消費とを比較するグラフを示す。
図2を参照すれば、一般キャッシュの全体電力消費で漏れ電力は、ダイナミック電力より相対的に多い部分を占める。それに対し、ドラウジーキャッシュの漏れ電力は、キャッシュラインに供給される動作電圧の減少によって減少し、全体電力消費の少ない部分を占める。
図2を参照すれば、一般キャッシュの全体電力消費で漏れ電力は、ダイナミック電力より相対的に多い部分を占める。それに対し、ドラウジーキャッシュの漏れ電力は、キャッシュラインに供給される動作電圧の減少によって減少し、全体電力消費の少ない部分を占める。
また、図1を参照すれば、ドラウジーキャッシュは、、DVSの実現のために、ドラウジービット、電圧制御器、及びワードラインゲーティング回路を別途に備える。
ドラウジービットは、SRAMsに含まれたメモリセルに供給される電圧を制御する。電圧制御器は、ドラウジービットの状態に基づいて、キャッシュラインに連結されたメモリセルアレイに供給される高い供給電圧(1V)及び低い供給電圧(0.3V)を決定する。ワードラインゲーティング回路は、メモリの内容を破壊できるキャッシュラインへの接近を遮断するために使用される。
ドラウジービットは、SRAMsに含まれたメモリセルに供給される電圧を制御する。電圧制御器は、ドラウジービットの状態に基づいて、キャッシュラインに連結されたメモリセルアレイに供給される高い供給電圧(1V)及び低い供給電圧(0.3V)を決定する。ワードラインゲーティング回路は、メモリの内容を破壊できるキャッシュラインへの接近を遮断するために使用される。
ドラウジーキャッシュは、ノーマルモードで1Vで動作し、ドラウジーモードでは0.3Vで動作する。ドラウジーキャッシュは、ドラウジーモードでキャッシュラインの状態を維持するが、安定的にリード動作及びライト動作を行えない。したがって、ドラウジーキャッシュは、リード動作及びライト動作を行うために、ドラウジーモードからノーマルモードへのモード転換が必要である。このようなモード転換に必要な時間は、ウェイクアップ時間(または、ウェイクアップ遷移レイテンシー)として1サイクルである。したがって、ウェイクアップされるドラウジーキャッシュのキャッシュラインが誤って予測される場合、1サイクルの性能ペナルティ(または、ウェイクアップペナルティ)が発生する。
ISCA(International Symposium on Computer Architecture)2002に発表された"drowsy caches"論文
ISCA(International Symposium on Computer Architecture)2002に発表された"drowsy caches"論文
本発明が達成しようとする技術的課題は、1サイクルのペナルティを防止(または、除去)できる命令語キャッシュと命令語TLBの制御器、及びその制御方法を提供するところにある。
前記技術的課題を達成するために、本発明に係る半導体装置の命令語キャッシュ及び命令語TLBの制御器は、プロセッサコアと、前記プロセッサコアから出力される現在命令語に対するアドレスの分岐予測を行って、最終分岐予測値を出力する分岐予測器と、前記分岐予測器による分岐予測と共に、前記プロセッサコアから出力される現在命令語に対するアドレスの分岐ターゲットアドレスを予測して、予測ターゲットアドレスを出力する分岐ターゲットバッファ(Branch Target Buffer:以下、BTB)と、前記分岐予測の結果が“taken”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するアドレス選択ユニットと、を備え、前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記現在命令語の直前命令語は分岐命令語ではないという仮定下に、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、前記アドレス選択ユニットから出力されるアドレスは、DVSを使用する命令語キャッシュ及び命令語TLBの対応するキャッシュラインをウェイクアップすることを特徴とする。
好ましい実施例によれば、前記アドレス選択ユニットから出力されるアドレスは、前記DVSを使用する命令語キャッシュ及び命令語TLBの対応するサブバンクをウェイクアップする。
好ましい実施例によれば、前記アドレス選択ユニットは、前記現在命令語アドレスの最下位ビット(Least Significant Bit:以下、LSB)及び前記最終分岐予測値に応答して動作する。
好ましい実施例によれば、前記アドレス選択ユニットは、前記現在命令語アドレスの最下位ビット(Least Significant Bit:以下、LSB)及び前記最終分岐予測値に応答して動作する。
好ましい実施例によれば、前記分岐選択器は、以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第1排他的論理和ゲートと、前記以前分岐命令語のアドレスに対する分岐予測値を保存し、前記インデックス値が指定する現在命令語のアドレスに対する分岐予測値を出力する分岐予測テーブルと、前記現在命令語アドレスのLSBと、前記グローバルヒストリーレジスタに保存されたアドレスのLSBとに対して排他的論理和演算を行って、選択値を出力する第2排他的論理和ゲートと、前記選択値に応答して、前記分岐予測値のうち、何れか一つを前記最終分岐予測値として出力するマルチプレクサと、を備える。
好ましい実施例によれば、前記分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、前記インデックス値により指定される。
好ましい実施例によれば、前記BTBは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定される以前分岐命令語のアドレスに対するターゲットアドレス、及び前記ターゲットアドレスに対応するターゲットタグを保存する分岐ターゲットテーブルと、前記現在命令語に対するアドレスのLSBに応答して、前記仮想インデックスビットにより指定されるターゲットタグのうち、何れか一つを出力する第1マルチプレクサと、前記現在命令語に対するアドレスの物理タグビットと、前記第1マルチプレクサから出力されるターゲットタグとを比較して、イネーブル信号を出力する比較器と、前記現在命令語に対するアドレスのLSBに応答して、前記仮想インデックスビットにより指定されるターゲットアドレスのうち、何れか一つを出力する第2マルチプレクサと、前記イネーブル信号の活性化に応答して、前記第2マルチプレクサから出力されるターゲットアドレスをバッファリングして、前記予測ターゲットアドレスとして出力するバッファと、を備える。
好ましい実施例によれば、前記分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記仮想インデックスビットにより指定される。
前記技術的課題を達成するために、本発明に係る半導体装置の命令語キャッシュ及び命令語TLBの制御方法は、(a)現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、(b)前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、(c)前記(b)ステップの分岐予測の結果が“taken”であるか否かを判断するステップと、(d)前記(c)ステップで、”taken”であると判断されれば、前記(b)ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語TLBのキャッシュラインをウェイクアップするステップと、(e)前記(c)ステップで、“taken”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語TLBのキャッシュラインをウェイクアップするステップと、を含み、前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、前記命令語キャッシュ及び命令語TLBは、DVSを使用することを特徴とする。
前記技術的課題を達成するために、本発明に係る半導体装置の命令語キャッシュ及び命令語TLBの制御方法は、(a)現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、(b)前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、(c)前記(b)ステップの分岐予測の結果が“taken”であるか否かを判断するステップと、(d)前記(c)ステップで、”taken”であると判断されれば、前記(b)ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語TLBのキャッシュラインをウェイクアップするステップと、(e)前記(c)ステップで、“taken”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語TLBのキャッシュラインをウェイクアップするステップと、を含み、前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、前記命令語キャッシュ及び命令語TLBは、DVSを使用することを特徴とする。
好ましい実施例によれば、前記(d)ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップし、前記(e)ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップする。
好ましい実施例によれば、前記(b)ステップの分岐予測に使用される分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、一つのインデックス値により指定される。
好ましい実施例によれば、前記(b)ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定される。
好ましい実施例によれば、前記(b)ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定される。
本発明に係る命令語キャッシュと命令語TLBの制御器、及びその制御方法は、分岐予測及び分岐ターゲットアドレス予測を1サイクル予め行うため、DVSを使用する命令語キャッシュ及び命令語TLBのウェイクアップペナルティを防止できる。
本発明と、本発明の動作上の利点及び本発明の実施によって達成される目的を十分に理解するためには、本発明の好ましい実施例を例示する添付図面及び添付図面に記載された内容を参照しなければならない。
以下、添付した図面を参照して本発明の好ましい実施例を説明することで、本発明を詳細に説明する。各図面に付された同一参照符号は、同一部材を示す。
以下、添付した図面を参照して本発明の好ましい実施例を説明することで、本発明を詳細に説明する。各図面に付された同一参照符号は、同一部材を示す。
図3は、本発明の一実施例に係る命令語キャッシュ及び命令語TLBの制御器を示す。本発明に係る命令語キャッシュ及び命令語TLBの制御器100は、プロセッサコア110、分岐予測器120、BTB 140、及びアドレス選択ユニット160を備える。プロセッサコア110は、中央処理装置(Central Processing Unit:CPU)とも言う。
プロセッサコア110は、分岐予測器120に現在命令語に対するアドレスADDRを伝達し、同時にBTB 140に現在命令語に対するアドレスADDRを伝達する。この時、現在命令語の直前命令語は、分岐命令語ではないと仮定する。なぜなら、応用プログラムがプロセッサコア110により実際に実行される時、分岐命令語が存在している確率より、存在していない確率が10倍以上高いためである。
分岐予測器120は、現在命令語のアドレスADDRに対する分岐予測を行って最終分岐予測値PREDを出力する。分岐予測器120は、1サイクル予め分岐予測を行える。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、分岐予測器120に含まれたグローバルヒストリーレジスタに保存されたアドレス及び分岐予測テーブルのエントリがアップデートされずに、一つのインデックス値により分岐予測テーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
BTB 140は、現在命令語のアドレスADDRに対する分岐ターゲットアドレス予測を行って、予測ターゲットアドレスT_ADDRを出力する。BTB 140は、1サイクル予め分岐ターゲットアドレス予測を行える。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、BTB 140に含まれた分岐ターゲットテーブルに保存されたターゲットアドレスがアップデートされずに、一つの命令語に対するアドレスの仮想インデックスビットにより、分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
アドレス選択ユニット160は、排他的論理和ゲート(XOR)170及びマルチプレクサ180を備える。アドレス選択ユニット160は、最終分岐予測値PRED及び分岐予測器による分岐予測結果が“taken”ではない現在命令語に対するアドレスADDRのLSBに応答して、予測ターゲットアドレスT_ADDR及び順次的な現在命令語のアドレスADDRのうち、何れか一つを選択して出力する。
XOR 170は、最終分岐予測値PREDと、現在命令語に対するアドレスADDRのLSBとに対して排他的論理和演算を行って選択値SEL1を出力する。
XOR 170は、最終分岐予測値PREDと、現在命令語に対するアドレスADDRのLSBとに対して排他的論理和演算を行って選択値SEL1を出力する。
マルチプレクサ180は、選択値SEL1に応答して、予測ターゲットアドレスT_ADDR及び順次的な現在命令語のアドレスADDRのうち、何れか一つを出力する。マルチプレクサ180から出力されるアドレスは、命令語TLB 200の対応するキャッシュライン、及び命令語キャッシュ300の対応するキャッシュラインをウェイクアップする。一方、マルチプレクサ180から出力されるアドレスは、命令語TLB 200の対応するサブバンク、及び命令語キャッシュ300の対応するサブバンクをウェイクアップすることも可能である。サブバンクは、キャッシュラインの集合をいう。
命令語TLB 200及び命令語キャッシュ300は、図1についての説明で言及したDVSを使用する。プロセッサコア110は、ウェイクアップされた命令語TLB 200のキャッシュライン、及び命令語キャッシュ300のキャッシュラインからそれぞれ出力される命令語がタグマッチングされる時、命令語をフェッチする。
したがって、本発明に係る命令語キャッシュ及び命令語TLBの制御器は、1サイクル予め分岐予測及び分岐ターゲットアドレス予測を行うため、DVSを使用する命令語キャッシュ及び命令語TLBのウェイクアップペナルティを防止できる。
したがって、本発明に係る命令語キャッシュ及び命令語TLBの制御器は、1サイクル予め分岐予測及び分岐ターゲットアドレス予測を行うため、DVSを使用する命令語キャッシュ及び命令語TLBのウェイクアップペナルティを防止できる。
図4は、図3に示すプロセッサコアのフェッチサイクルと、従来のプロセッサコアのフェッチサイクルとを比較する図である。
図4を参照すれば、第一の場合は、DVSを使用しない命令語キャッシュ及び命令語TLBに対するプロセッサコアのフェッチサイクルを表わす。第二の場合は、命令語キャッシュ及び命令語TLBがDVSを使用するが、本発明の制御器が適用されない時のプロセッサコアのフェッチサイクルを表わす。第三の場合は、命令語キャッシュ及び命令語TLBがDVSを使用し、本発明の制御器が適用される時のプロセッサコアのフェッチサイクルを表わす。
図4を参照すれば、第一の場合は、DVSを使用しない命令語キャッシュ及び命令語TLBに対するプロセッサコアのフェッチサイクルを表わす。第二の場合は、命令語キャッシュ及び命令語TLBがDVSを使用するが、本発明の制御器が適用されない時のプロセッサコアのフェッチサイクルを表わす。第三の場合は、命令語キャッシュ及び命令語TLBがDVSを使用し、本発明の制御器が適用される時のプロセッサコアのフェッチサイクルを表わす。
第二の場合は、1サイクルのウェイクアップペナルティが発生するが、第三の場合は、分岐予測器参照及びBTB参照が1サイクル予め行われるため、1サイクルのウェイクアップペナルティが発生しない。
図5は、図3に示す分岐予測器を更に詳細に示す。
図5を参照すれば、分岐予測器120は、アドレスレジスタ121、グローバルヒストリーレジスタ122、第1XOR 123、分岐予測テーブル124、第2XOR 125、及びマルチプレクサ126を備える。
図5を参照すれば、分岐予測器120は、アドレスレジスタ121、グローバルヒストリーレジスタ122、第1XOR 123、分岐予測テーブル124、第2XOR 125、及びマルチプレクサ126を備える。
第1XOR 123は、アドレスレジスタ121に保存された現在命令語のアドレスADDRと、グローバルヒストリーレジスタ122に保存されたアドレスとに対して排他的論理和演算を行って、インデックス値INDを出力する。インデックス値INDは、分岐予測テーブル124の特定エントリ(例えば、K及びK+1)を指定する。グローバルヒストリーレジスタ122に保存されたアドレスは、以前分岐命令語に対する過去分岐予測値である。
分岐予測テーブル124は、一つのインデックス値INDにより二つのエントリ(K、K+1)が選択されるように、二つの順次的なエントリが一ラインに配置されている。したがって、現在命令語の直前命令語が分岐命令語ではなく、順次的な命令語である場合(すなわち、現在命令語の直前命令語のアドレスと現在命令語のアドレスADDRとを比較する時、LSBのみが異なる場合)、グローバルヒストリーレジスタ122に保存されたアドレス、及び分岐予測テーブル124のエントリがアップデートされないため、現在命令語のアドレスに対する分岐予測に使用されるグローバルヒストリー及び分岐予測テーブル124のエントリと、直前命令語のアドレスに対する分岐予測に使用されるグローバルヒストリー及び分岐予測テーブル124のエントリとは同じである。その結果、それぞれの命令語のアドレスとグローバルヒストリーとの組合わせにより指定されるエントリは、分岐予測テーブル124の一ライン上に存在し、これは、一つのインデックス値INDにより同時に指定されうる。したがって、直前命令語のアドレスに対する分岐予測が終了する前に、1サイクル予め現在命令語のアドレスに対する分岐予測が始まり得る。現在命令語の次の命令語の場合にも、前記直前命令語と現在命令語との関係についての説明が適用されうる。
したがって、分岐予測器120は、1サイクル予め現在命令語のアドレスADDRに対して分岐予測を行える。
一方、分岐予測テーブル124で選択されたエントリ(K、K+1)のLSBが、現在命令語のアドレスADDRに対する分岐予測値PRED1、PRED2に出力される。例えば、分岐予測値PRED1、PRED2のうち、何れか一つは、現在命令語のアドレスのための分岐予測値に、残りの一つは、次の命令語のアドレスのための分岐予測値として使用されうる。
一方、分岐予測テーブル124で選択されたエントリ(K、K+1)のLSBが、現在命令語のアドレスADDRに対する分岐予測値PRED1、PRED2に出力される。例えば、分岐予測値PRED1、PRED2のうち、何れか一つは、現在命令語のアドレスのための分岐予測値に、残りの一つは、次の命令語のアドレスのための分岐予測値として使用されうる。
第2XOR 125は、アドレスレジスタ121に保存された現在命令語に対するアドレスADDRのLSBと、グローバルヒストリーレジスタ122に保存されたアドレスのLSBとに対して排他的論理和演算を行って、選択値SEL2を出力する。
マルチプレクサ126は、選択値SEL2に応答して分岐予測値PRED1、PRED2のうち、何れか一つを最終分岐予測値PREDに出力する。例えば、最終分岐予測値PREDが“1”である場合、現在命令語のアドレスに対する分岐予測が“taken”となり、“0”である場合、現在命令語のアドレスに対する分岐予測が“untaken”となる。最終分岐予測値PREDは、次の分岐予測のために、グローバルヒストリーレジスタ122に保存されたアドレス及び分岐予測テーブル124のエントリをアップデートするのに使用される。
図6は、図3に示すBTBを更に詳細に示す。
図6を参照すれば、BTB 140は、アドレスレジスタ141、分岐ターゲットテーブル142、第1マルチプレクサ143、比較器144、第2マルチプレクサ145、及びバッファ146を備える。
分岐ターゲットテーブル142は、以前分岐命令語のアドレスに対するターゲットアドレス(例えば、B、D)、及びターゲットアドレスに対応するターゲットタグ(例えば、A、C)を保存する。
図6を参照すれば、BTB 140は、アドレスレジスタ141、分岐ターゲットテーブル142、第1マルチプレクサ143、比較器144、第2マルチプレクサ145、及びバッファ146を備える。
分岐ターゲットテーブル142は、以前分岐命令語のアドレスに対するターゲットアドレス(例えば、B、D)、及びターゲットアドレスに対応するターゲットタグ(例えば、A、C)を保存する。
アドレスレジスタ141に保存された現在命令語アドレスADDRの仮想インデックスビット1412は、分岐ターゲットテーブル142の一ラインに含まれた二つの順次的なエントリ(例えば、[A、B]、[C、D])を指定する。したがって、現在命令語の直前命令語が分岐命令語ではなくて、順次的な命令語である場合(すなわち、現在命令語の直前命令語のアドレスと、現在命令語のアドレスADDRとを比較する時、LSBのみが異なる場合)、分岐ターゲットテーブル142のエントリがアップデートされないため、現在命令語のアドレスに対する分岐ターゲットアドレス予測に使用される分岐ターゲットテーブル142のエントリと、直前命令語のアドレスに対する分岐ターゲットアドレス予測に使用される分岐ターゲットテーブル142のエントリとは同じである。その結果、それぞれの命令語に対するアドレスの仮想インデックスビット1412により指定されるエントリは、分岐ターゲットテーブル142の一ライン上に存在し、これは、一つの仮想インデックスビット1412により同時に指定されうる。したがって、直前命令語のアドレスに対する分岐ターゲットアドレス予測が終了する前に、1サイクル予め現在命令語のアドレスに対する分岐ターゲットアドレス予測が始まり得る。現在命令語の次の命令語の場合にも、前記直前命令語と現在命令語との関係についての説明が適用されうる。
したがって、BTB 140は、1サイクル予め分岐ターゲットアドレス予測を行える。
第1マルチプレクサ143は、アドレスレジスタ141に保存された現在命令語アドレスADDRのLSB1413に応答して、分岐ターゲットテーブル142から出力されるターゲットタグA、Cのうち、何れか一つを出力する。
第1マルチプレクサ143は、アドレスレジスタ141に保存された現在命令語アドレスADDRのLSB1413に応答して、分岐ターゲットテーブル142から出力されるターゲットタグA、Cのうち、何れか一つを出力する。
比較器144は、アドレスレジスタ141に保存された現在命令語アドレスADDRの物理タグビット1411と、第1マルチプレクサ143から出力されるターゲットタグとを比較して、イネーブル信号ENを出力する。前記比較した値が一致すれば、イネーブル信号ENは活性化される。
第2マルチプレクサ145は、アドレスレジスタ141に保存された現在命令語アドレスADDRのLSB1413に応答して、分岐ターゲットテーブル142から出力されるターゲットアドレスB、Dのうち、何れか一つを出力する。
バッファ146は、アクティブされたイネーブル信号ENに応答して、第2マルチプレクサ145から出力されるターゲットアドレスをバッファリングして予測ターゲットアドレスT_ADDRを出力する。
バッファ146は、アクティブされたイネーブル信号ENに応答して、第2マルチプレクサ145から出力されるターゲットアドレスをバッファリングして予測ターゲットアドレスT_ADDRを出力する。
図7は、本発明の一実施例に係る命令語キャッシュ及び命令語TLBの制御方法を示すフローチャートである。図7に示す命令語キャッシュ及び命令語TLBの制御方法は、図3に示す命令語キャッシュ及び命令語TLBの制御器に適用されうる。
仮定ステップ(S105)によれば、現在命令語の直前命令語を分岐命令語ではないと仮定する。
伝達ステップ(S110)によれば、現在命令語のアドレスをプロセッサコアから分岐予測器とBTBとに同時に伝達する。
仮定ステップ(S105)によれば、現在命令語の直前命令語を分岐命令語ではないと仮定する。
伝達ステップ(S110)によれば、現在命令語のアドレスをプロセッサコアから分岐予測器とBTBとに同時に伝達する。
予測ステップ(S115)によれば、現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行う。予測ステップ(S115)は、1サイクル予め行われ得る。なぜなら、現在命令語の直前命令語が分岐命令語ではないため、分岐予測器に含まれたグローバルヒストリーレジスタに保存されたアドレス及び分岐予測テーブルのエントリがアップデートされず、一つのインデックス値により分岐予測テーブルの一ラインに含まれた二つの順次的なエントリが指定され、BTBに含まれた分岐ターゲットテーブルのエントリがアップデートされず、一つの命令語に対するアドレスの仮想インデックスビットにより、分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリが指定されるためである。
判断ステップ(S120)によれば、分岐予測結果が“taken”であるか否かを判断する。判断ステップ(S120)で、分岐予測結果が“taken”であると判断されれば、第1ウェイクアップステップ(S125)に進む。判断ステップで、分岐予測結果が“taken”ではないと判断されれば(すなわち、現在命令語のアドレスが分岐命令語のアドレスではないか、または現在命令語のアドレスに対する分岐予測結果が“untaken”(または、“not−taken”)であると判断されれば)、第2ウェイクアップステップ(S130)に進む。
第1ウェイクアップステップ(S125)によれば、予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン、及び命令語TLBのキャッシュラインをウェイクアップする。一方、第1ウェイクアップステップ(S125)は、予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップすることも可能である。サブバンクは、キャッシュラインの集合をいう。
第2ウェイクアップステップ(S130)によれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン及び命令語TLBのキャッシュラインをウェイクアップする。一方、第2ウェイクアップステップ(S130)は、順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップすることも可能である。
以上のように、図面と明細書とで最良の実施形態が開示された。ここで、特定の用語が使用されたが、これは、単に本発明を説明するための目的で使用されたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施例が可能であるということが理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により決まらなければならない。
本発明は、マイクロプロセッサに関連した技術分野に好適に適用され得る。
100 命令語キャッシュ及び命令語TLBの制御器
110 プロセッサコア
120 分岐予測器
140 BTB
160 アドレス選択ユニット
170 XOR
180 マルチプレクサ
200 命令語TLB
300 命令語キャッシュ
SEL1 選択値
ADDR 現在命令語のアドレス
T_ADDR 予測ターゲットアドレス
110 プロセッサコア
120 分岐予測器
140 BTB
160 アドレス選択ユニット
170 XOR
180 マルチプレクサ
200 命令語TLB
300 命令語キャッシュ
SEL1 選択値
ADDR 現在命令語のアドレス
T_ADDR 予測ターゲットアドレス
Claims (15)
- プロセッサコアと、
前記プロセッサコアから出力される現在命令語に対するアドレス分岐予測を行って、最終分岐予測値を出力する分岐予測器と、
前記分岐予測器による分岐予測と同時に前記プロセッサコアから出力される現在命令語に対するアドレスの分岐ターゲットアドレスを予測して、予測ターゲットアドレスを出力する分岐ターゲットバッファと、
前記分岐予測の結果が“taken”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するアドレス選択ユニットと、を備え、
前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記現在命令語の直前命令語が分岐命令語ではないという仮定下に、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
前記アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップすることを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記アドレス選択ユニットから出力されるアドレスは、前記ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するサブバンクをウェイクアップすることを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
- 前記アドレス選択ユニットは、
前記現在命令語アドレスの最下位ビット及び前記最終分岐予測値に応答して動作することを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記アドレス選択ユニットは、
前記現在命令語に対するアドレスの最下位ビットと前記最終予測値とに対して排他的論理和演算を行って、選択値を出力する排他的論理和ゲートと、
前記選択値に応答して、前記分岐予測の結果が“taken”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するマルチプレクサと、を備えることを特徴とする請求項3に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記分岐選択器は、
以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、
前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第1排他的論理和ゲートと、
前記以前分岐命令語のアドレスに対する分岐予測値を保存し、前記インデックス値が指定する現在命令語のアドレスに対する分岐予測値を出力する分岐予測テーブルと、
前記現在命令語アドレスの最下位ビットと、前記グローバルヒストリーレジスタに保存されたアドレスの最下位ビットとに対して排他的論理和演算を行って、選択値を出力する第2排他的論理和ゲートと、
前記選択値に応答して、前記分岐予測値のうち、何れか一つを前記最終分岐予測値として出力するマルチプレクサと、を備えることを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記分岐選択器は、
前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項5に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、前記インデックス値により指定されることを特徴とする請求項5に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
- 前記分岐ターゲットバッファは、
前記現在命令語に対するアドレスの仮想インデックスビットにより指定される以前分岐命令語のアドレスに対するターゲットアドレス、及び前記ターゲットアドレスに対応するターゲットタグを保存する分岐ターゲットテーブルと、
前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットタグのうち、何れか一つを出力する第1マルチプレクサと、
前記現在命令語に対するアドレスの物理タグビットと、前記第1マルチプレクサから出力されるターゲットタグとを比較して、イネーブル信号を出力する比較器と、
前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットアドレスのうち、何れか一つを出力する第2マルチプレクサと、
前記イネーブル信号の活性化に応答して、前記第2マルチプレクサから出力されるターゲットアドレスをバッファリングして、前記予測ターゲットアドレスとして出力するバッファと、を備えることを特徴をする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記分岐ターゲットバッファは、
前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項8に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。 - 前記分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記仮想インデックスビットにより指定されることを特徴とする請求項8に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
- (a)現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、
(b)前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、
(c)前記(b)ステップの分岐予測の結果が“taken”であるか否かを判断するステップと、
(d)前記(c)ステップで”taken”であると判断されれば、前記(b)ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、
(e)前記(c)ステップで“taken”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、を含み、
前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
前記命令語キャッシュ及び命令語変換参照バッファは、ダイナミック電圧スケーリングを使用することを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御方法。 - 前記命令語キャッシュ及び命令語変換参照バッファの制御方法は、
前記現在命令語のアドレスを、プロセッサコアから前記分岐予測を行う分岐予測器と、前記分岐ターゲットアドレス予測を行う分岐ターゲットバッファとに同時に伝達するステップを更に含むことを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。 - 前記(d)ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップし、
前記(e)ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップすることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。 - 前記(b)ステップの分岐予測に使用される分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、一つのインデックス値により指定されることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
- 前記(b)ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定されることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040079246A KR100630702B1 (ko) | 2004-10-05 | 2004-10-05 | 명령어 캐쉬와 명령어 변환 참조 버퍼의 제어기, 및 그제어방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2006107507A true JP2006107507A (ja) | 2006-04-20 |
Family
ID=35429869
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005290385A Pending JP2006107507A (ja) | 2004-10-05 | 2005-10-03 | 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060101299A1 (ja) |
JP (1) | JP2006107507A (ja) |
KR (1) | KR100630702B1 (ja) |
CN (1) | CN1758214A (ja) |
GB (1) | GB2419010B (ja) |
TW (1) | TWI275102B (ja) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7900019B2 (en) * | 2006-05-01 | 2011-03-01 | Arm Limited | Data access target predictions in a data processing system |
US7523298B2 (en) * | 2006-05-04 | 2009-04-21 | International Business Machines Corporation | Polymorphic branch predictor and method with selectable mode of prediction |
US7827392B2 (en) * | 2006-06-05 | 2010-11-02 | Qualcomm Incorporated | Sliding-window, block-based branch target address cache |
US7640422B2 (en) * | 2006-08-16 | 2009-12-29 | Qualcomm Incorporated | System for reducing number of lookups in a branch target address cache by storing retrieved BTAC addresses into instruction cache |
US8028180B2 (en) * | 2008-02-20 | 2011-09-27 | International Business Machines Corporation | Method and system for power conservation in a hierarchical branch predictor |
US8667258B2 (en) | 2010-06-23 | 2014-03-04 | International Business Machines Corporation | High performance cache translation look-aside buffer (TLB) lookups using multiple page size prediction |
US8514611B2 (en) | 2010-08-04 | 2013-08-20 | Freescale Semiconductor, Inc. | Memory with low voltage mode operation |
WO2012103359A2 (en) * | 2011-01-27 | 2012-08-02 | Soft Machines, Inc. | Hardware acceleration components for translating guest instructions to native instructions |
US9377830B2 (en) | 2011-12-30 | 2016-06-28 | Samsung Electronics Co., Ltd. | Data processing device with power management unit and portable device having the same |
US9330026B2 (en) | 2013-03-05 | 2016-05-03 | Qualcomm Incorporated | Method and apparatus for preventing unauthorized access to contents of a register under certain conditions when performing a hardware table walk (HWTW) |
EP3037957A4 (en) | 2013-08-19 | 2017-05-17 | Shanghai Xinhao Microelectronics Co. Ltd. | Buffering system and method based on instruction cache |
US9213532B2 (en) | 2013-09-26 | 2015-12-15 | Oracle International Corporation | Method for ordering text in a binary |
EP3060983B1 (en) | 2013-10-25 | 2020-01-08 | Advanced Micro Devices, Inc. | Bandwidth increase in branch prediction unit and level 1 instruction cache |
US9183896B1 (en) | 2014-06-30 | 2015-11-10 | International Business Machines Corporation | Deep sleep wakeup of multi-bank memory |
CN115114190B (zh) * | 2022-07-20 | 2023-02-07 | 上海合见工业软件集团有限公司 | 基于预测逻辑的sram数据读取系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004265430A (ja) * | 2004-04-05 | 2004-09-24 | Renesas Technology Corp | セットアソシアティブ方式のメモリ装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6272623B1 (en) * | 1999-01-25 | 2001-08-07 | Sun Microsystems, Inc. | Methods and apparatus for branch prediction using hybrid history with index sharing |
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 |
JP2002259118A (ja) | 2000-12-28 | 2002-09-13 | Matsushita Electric Ind Co Ltd | マイクロプロセッサ及び命令列変換装置 |
US20020194462A1 (en) * | 2001-05-04 | 2002-12-19 | Ip First Llc | Apparatus and method for selecting one of multiple target addresses stored in a speculative branch target address cache per instruction cache line |
JP3795449B2 (ja) | 2002-11-20 | 2006-07-12 | 独立行政法人科学技術振興機構 | 制御フローコードの分離によるプロセッサの実現方法及びそれを用いたマイクロプロセッサ |
KR100528479B1 (ko) * | 2003-09-24 | 2005-11-15 | 삼성전자주식회사 | 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법 |
-
2004
- 2004-10-05 KR KR1020040079246A patent/KR100630702B1/ko not_active IP Right Cessation
-
2005
- 2005-09-12 TW TW094131273A patent/TWI275102B/zh not_active IP Right Cessation
- 2005-09-22 CN CNA2005101069414A patent/CN1758214A/zh active Pending
- 2005-10-03 JP JP2005290385A patent/JP2006107507A/ja active Pending
- 2005-10-04 US US11/242,729 patent/US20060101299A1/en not_active Abandoned
- 2005-10-05 GB GB0520272A patent/GB2419010B/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004265430A (ja) * | 2004-04-05 | 2004-09-24 | Renesas Technology Corp | セットアソシアティブ方式のメモリ装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI275102B (en) | 2007-03-01 |
GB0520272D0 (en) | 2005-11-16 |
US20060101299A1 (en) | 2006-05-11 |
KR100630702B1 (ko) | 2006-10-02 |
KR20060030402A (ko) | 2006-04-10 |
GB2419010A (en) | 2006-04-12 |
GB2419010B (en) | 2008-06-18 |
TW200627475A (en) | 2006-08-01 |
CN1758214A (zh) | 2006-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7904658B2 (en) | Structure for power-efficient cache memory | |
JP3715714B2 (ja) | 低電力メモリシステム | |
JP2006107507A (ja) | 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 | |
KR100806284B1 (ko) | 동적 전압 스케일링을 적용한 고효율 프로세서 | |
US20050108480A1 (en) | Method and system for providing cache set selection which is power optimized | |
US20050160250A1 (en) | Method and apparatus of controlling electric power for translation lookaside buffer | |
KR100351504B1 (ko) | 캐쉬 메모리, 그의 전력 소비 절감 방법 그리고 캐쉬메모리를 구비하는 데이터 처리 시스템 | |
JP4764026B2 (ja) | ダイナミック電圧スケーリングによる低消費電力集積回路装置 | |
JP2014203148A (ja) | メモリ制御回路 | |
JP4111760B2 (ja) | データ処理装置のメモリ・ユニットに対するアクセス | |
US5872903A (en) | Integrated circuit device with a memory that preserves its content independently of a synchronizing signal when given a self-control request | |
JP4421390B2 (ja) | 半導体集積回路 | |
JP2002196981A (ja) | データ処理装置 | |
JP4791714B2 (ja) | ダイナミック周波数スケーリングキャッシュメモリの休止時間を利用する方法、回路及びシステム | |
CN101727160B (zh) | 协处理器系统工作模式的切换方法和装置及处理器系统 | |
US6049852A (en) | Preserving cache consistency in a computer system having a plurality of memories with overlapping address ranges | |
CN112015258B (zh) | 处理系统与控制方法 | |
JP2005182473A (ja) | 周波数制御方法および情報処理装置 | |
US20070124538A1 (en) | Power-efficient cache memory system and method therefor | |
US20070094454A1 (en) | Program memory source switching for high speed and/or low power program execution in a digital processor | |
JP3893463B2 (ja) | キャッシュメモリ、及びキャッシュメモリの電力削減方法 | |
US11281473B2 (en) | Dual wakeup interrupt controllers | |
JP2009208360A (ja) | 画像形成コントローラ、及び画像形成装置 | |
US7093148B2 (en) | Microcontroller Operable in normal and low speed modes utilizing control signals for executing commands in a read-only memory during the low speed modes | |
JP4404373B2 (ja) | 半導体集積回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081002 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110628 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20111206 |