JP2006107507A - 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 - Google Patents

命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 Download PDF

Info

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
Application number
JP2005290385A
Other languages
English (en)
Inventor
Sung-Woo Chung
盛 宇 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2006107507A publication Critical patent/JP2006107507A/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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables
    • 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
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • 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]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache
    • 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 or 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 or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3848Speculative instruction execution using hybrid branch prediction, e.g. selection between prediction techniques
    • 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/60Details of cache memory
    • G06F2212/6028Prefetching based on hints or prefetch instructions
    • 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

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

Description

本発明は、マイクロプロセッサに係り、より詳細には、ダイナミック電圧スケーリングを使用する命令語キャッシュ及び命令語変換参照バッファ(以下、命令語TLB(Translation Look−aside Buffer)という)を制御する制御器及びその制御方法に関する。
オン−チップキャッシュは、マイクロプロセッサの全体電力消費の多い部分を占める。配線幅が狭くなるにつれ、オン−チップキャッシュで消費される電力の多い部分は漏れ電力である。漏れ電力を減少させるためのオン−チップキャッシュとして、ドラウジーキャッシュが提案された。
図1は、ダイナミック電圧スケーリング(Dynamic Voltage Scaling:以下、DVS)を使用するドラウジーキャッシュを示す。図1に示すドラウジーキャッシュは、非特許文献1に記載されている。
ドラウジーキャッシュは、それぞれのキャッシュライン(cache line)に二つの異なる供給電圧を供給するDVS技術を使用する。このようなDVS技術は、オン−チップキャッシュの漏れ電力の消費を減少させうる。
図2は、一般キャッシュの電力消費とドラウジーキャッシュの電力消費とを比較するグラフを示す。
図2を参照すれば、一般キャッシュの全体電力消費で漏れ電力は、ダイナミック電力より相対的に多い部分を占める。それに対し、ドラウジーキャッシュの漏れ電力は、キャッシュラインに供給される動作電圧の減少によって減少し、全体電力消費の少ない部分を占める。
また、図1を参照すれば、ドラウジーキャッシュは、、DVSの実現のために、ドラウジービット、電圧制御器、及びワードラインゲーティング回路を別途に備える。
ドラウジービットは、SRAMsに含まれたメモリセルに供給される電圧を制御する。電圧制御器は、ドラウジービットの状態に基づいて、キャッシュラインに連結されたメモリセルアレイに供給される高い供給電圧(1V)及び低い供給電圧(0.3V)を決定する。ワードラインゲーティング回路は、メモリの内容を破壊できるキャッシュラインへの接近を遮断するために使用される。
ドラウジーキャッシュは、ノーマルモードで1Vで動作し、ドラウジーモードでは0.3Vで動作する。ドラウジーキャッシュは、ドラウジーモードでキャッシュラインの状態を維持するが、安定的にリード動作及びライト動作を行えない。したがって、ドラウジーキャッシュは、リード動作及びライト動作を行うために、ドラウジーモードからノーマルモードへのモード転換が必要である。このようなモード転換に必要な時間は、ウェイクアップ時間(または、ウェイクアップ遷移レイテンシー)として1サイクルである。したがって、ウェイクアップされるドラウジーキャッシュのキャッシュラインが誤って予測される場合、1サイクルの性能ペナルティ(または、ウェイクアップペナルティ)が発生する。
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)及び前記最終分岐予測値に応答して動作する。
好ましい実施例によれば、前記分岐選択器は、以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第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を使用することを特徴とする。
好ましい実施例によれば、前記(d)ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップし、前記(e)ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語TLBのサブバンクをウェイクアップする。
好ましい実施例によれば、前記(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を出力する。
マルチプレクサ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のウェイクアップペナルティを防止できる。
図4は、図3に示すプロセッサコアのフェッチサイクルと、従来のプロセッサコアのフェッチサイクルとを比較する図である。
図4を参照すれば、第一の場合は、DVSを使用しない命令語キャッシュ及び命令語TLBに対するプロセッサコアのフェッチサイクルを表わす。第二の場合は、命令語キャッシュ及び命令語TLBがDVSを使用するが、本発明の制御器が適用されない時のプロセッサコアのフェッチサイクルを表わす。第三の場合は、命令語キャッシュ及び命令語TLBがDVSを使用し、本発明の制御器が適用される時のプロセッサコアのフェッチサイクルを表わす。
第二の場合は、1サイクルのウェイクアップペナルティが発生するが、第三の場合は、分岐予測器参照及びBTB参照が1サイクル予め行われるため、1サイクルのウェイクアップペナルティが発生しない。
図5は、図3に示す分岐予測器を更に詳細に示す。
図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のうち、何れか一つは、現在命令語のアドレスのための分岐予測値に、残りの一つは、次の命令語のアドレスのための分岐予測値として使用されうる。
第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)を保存する。
アドレスレジスタ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のうち、何れか一つを出力する。
比較器144は、アドレスレジスタ141に保存された現在命令語アドレスADDRの物理タグビット1411と、第1マルチプレクサ143から出力されるターゲットタグとを比較して、イネーブル信号ENを出力する。前記比較した値が一致すれば、イネーブル信号ENは活性化される。
第2マルチプレクサ145は、アドレスレジスタ141に保存された現在命令語アドレスADDRのLSB1413に応答して、分岐ターゲットテーブル142から出力されるターゲットアドレスB、Dのうち、何れか一つを出力する。
バッファ146は、アクティブされたイネーブル信号ENに応答して、第2マルチプレクサ145から出力されるターゲットアドレスをバッファリングして予測ターゲットアドレスT_ADDRを出力する。
図7は、本発明の一実施例に係る命令語キャッシュ及び命令語TLBの制御方法を示すフローチャートである。図7に示す命令語キャッシュ及び命令語TLBの制御方法は、図3に示す命令語キャッシュ及び命令語TLBの制御器に適用されうる。
仮定ステップ(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のサブバンクをウェイクアップすることも可能である。
以上のように、図面と明細書とで最良の実施形態が開示された。ここで、特定の用語が使用されたが、これは、単に本発明を説明するための目的で使用されたものであり、意味限定や特許請求の範囲に記載された本発明の範囲を制限するために使用されたものではない。したがって、当業者ならば、これから多様な変形及び均等な他の実施例が可能であるということが理解できる。したがって、本発明の真の技術的保護範囲は、特許請求の範囲の技術的思想により決まらなければならない。
本発明は、マイクロプロセッサに関連した技術分野に好適に適用され得る。
DVSを使用するドラウジーキャッシュを示す図である。 一般キャッシュの電力消費とドラウジーキャッシュの電力消費とを比較するグラフである。 本発明の一実施例に係る命令語キャッシュ及び命令語TLBの制御器を示す図である。 図3に示すプロセッサコアのフェッチサイクルと従来のプロセッサコアのフェッチサイクルとを比較する図である。 図3に示す分岐予測器をより詳細に示す図である。 図3に示すBTBをより詳細に示す図である。 本発明の一実施例に係る命令語キャッシュ及び命令語TLBの制御方法を示すフローチャートである。
符号の説明
100 命令語キャッシュ及び命令語TLBの制御器
110 プロセッサコア
120 分岐予測器
140 BTB
160 アドレス選択ユニット
170 XOR
180 マルチプレクサ
200 命令語TLB
300 命令語キャッシュ
SEL1 選択値
ADDR 現在命令語のアドレス
T_ADDR 予測ターゲットアドレス

Claims (15)

  1. プロセッサコアと、
    前記プロセッサコアから出力される現在命令語に対するアドレス分岐予測を行って、最終分岐予測値を出力する分岐予測器と、
    前記分岐予測器による分岐予測と同時に前記プロセッサコアから出力される現在命令語に対するアドレスの分岐ターゲットアドレスを予測して、予測ターゲットアドレスを出力する分岐ターゲットバッファと、
    前記分岐予測の結果が“taken”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するアドレス選択ユニットと、を備え、
    前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記現在命令語の直前命令語が分岐命令語ではないという仮定下に、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
    前記アドレス選択ユニットから出力されるアドレスは、ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するキャッシュラインをウェイクアップすることを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御器。
  2. 前記アドレス選択ユニットから出力されるアドレスは、前記ダイナミック電圧スケーリングを使用する命令語キャッシュ、及び命令語変換参照バッファの対応するサブバンクをウェイクアップすることを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  3. 前記アドレス選択ユニットは、
    前記現在命令語アドレスの最下位ビット及び前記最終分岐予測値に応答して動作することを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  4. 前記アドレス選択ユニットは、
    前記現在命令語に対するアドレスの最下位ビットと前記最終予測値とに対して排他的論理和演算を行って、選択値を出力する排他的論理和ゲートと、
    前記選択値に応答して、前記分岐予測の結果が“taken”ではない現在命令語のアドレス及び前記予測ターゲットアドレスのうち、何れか一つを選択して出力するマルチプレクサと、を備えることを特徴とする請求項3に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  5. 前記分岐選択器は、
    以前分岐命令語のアドレスに対する過去分岐予測値を保存するグローバルヒストリーレジスタと、
    前記現在命令語のアドレスと、前記グローバルヒストリーレジスタに保存されたアドレスとに対して排他的論理和演算を行って、インデックス値を出力する第1排他的論理和ゲートと、
    前記以前分岐命令語のアドレスに対する分岐予測値を保存し、前記インデックス値が指定する現在命令語のアドレスに対する分岐予測値を出力する分岐予測テーブルと、
    前記現在命令語アドレスの最下位ビットと、前記グローバルヒストリーレジスタに保存されたアドレスの最下位ビットとに対して排他的論理和演算を行って、選択値を出力する第2排他的論理和ゲートと、
    前記選択値に応答して、前記分岐予測値のうち、何れか一つを前記最終分岐予測値として出力するマルチプレクサと、を備えることを特徴とする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  6. 前記分岐選択器は、
    前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項5に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  7. 前記分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、前記インデックス値により指定されることを特徴とする請求項5に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  8. 前記分岐ターゲットバッファは、
    前記現在命令語に対するアドレスの仮想インデックスビットにより指定される以前分岐命令語のアドレスに対するターゲットアドレス、及び前記ターゲットアドレスに対応するターゲットタグを保存する分岐ターゲットテーブルと、
    前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットタグのうち、何れか一つを出力する第1マルチプレクサと、
    前記現在命令語に対するアドレスの物理タグビットと、前記第1マルチプレクサから出力されるターゲットタグとを比較して、イネーブル信号を出力する比較器と、
    前記現在命令語に対するアドレスの最下位ビットに応答して、前記仮想インデックスビットにより指定されるターゲットアドレスのうち、何れか一つを出力する第2マルチプレクサと、
    前記イネーブル信号の活性化に応答して、前記第2マルチプレクサから出力されるターゲットアドレスをバッファリングして、前記予測ターゲットアドレスとして出力するバッファと、を備えることを特徴をする請求項1に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  9. 前記分岐ターゲットバッファは、
    前記現在命令語のアドレスを保存するアドレスレジスタを更に備えることを特徴とする請求項8に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  10. 前記分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記仮想インデックスビットにより指定されることを特徴とする請求項8に記載の命令語キャッシュ及び命令語変換参照バッファの制御器。
  11. (a)現在命令語の直前命令語を分岐命令語ではないと仮定するステップと、
    (b)前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測を同時に行うステップと、
    (c)前記(b)ステップの分岐予測の結果が“taken”であるか否かを判断するステップと、
    (d)前記(c)ステップで”taken”であると判断されれば、前記(b)ステップでの分岐ターゲットアドレス予測の結果である予測ターゲットアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、
    (e)前記(c)ステップで“taken”ではないと判断されれば、順次的な現在命令語のアドレスが指定する命令語キャッシュのキャッシュライン及び命令語変換参照バッファのキャッシュラインをウェイクアップするステップと、を含み、
    前記現在命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測は、前記直前命令語のアドレスに対する分岐予測及び分岐ターゲットアドレス予測が終了する前に始まり、
    前記命令語キャッシュ及び命令語変換参照バッファは、ダイナミック電圧スケーリングを使用することを特徴とする命令語キャッシュ及び命令語変換参照バッファの制御方法。
  12. 前記命令語キャッシュ及び命令語変換参照バッファの制御方法は、
    前記現在命令語のアドレスを、プロセッサコアから前記分岐予測を行う分岐予測器と、前記分岐ターゲットアドレス予測を行う分岐ターゲットバッファとに同時に伝達するステップを更に含むことを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
  13. 前記(d)ステップは、前記予測ターゲットアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップし、
    前記(e)ステップは、前記順次的な現在命令語のアドレスが指定する命令語キャッシュのサブバンク及び命令語変換参照バッファのサブバンクをウェイクアップすることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
  14. 前記(b)ステップの分岐予測に使用される分岐予測テーブルの一ラインに含まれた二つの順次的なエントリは、一つのインデックス値により指定されることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
  15. 前記(b)ステップの分岐ターゲットアドレス予測に使用される分岐ターゲットテーブルの一ラインに含まれた二つの順次的なエントリは、前記現在命令語に対するアドレスの仮想インデックスビットにより指定されることを特徴とする請求項11に記載の命令語キャッシュ及び命令語変換参照バッファの制御方法。
JP2005290385A 2004-10-05 2005-10-03 命令語キャッシュと命令語変換参照バッファの制御器、及びその制御方法 Pending JP2006107507A (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004265430A (ja) * 2004-04-05 2004-09-24 Renesas Technology Corp セットアソシアティブ方式のメモリ装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
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 삼성전자주식회사 전력 소모를 감소시키기 위한 분기 예측기 및 구현방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
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