JP3936672B2 - マイクロプロセッサ - Google Patents
マイクロプロセッサ Download PDFInfo
- Publication number
- JP3936672B2 JP3936672B2 JP2003124937A JP2003124937A JP3936672B2 JP 3936672 B2 JP3936672 B2 JP 3936672B2 JP 2003124937 A JP2003124937 A JP 2003124937A JP 2003124937 A JP2003124937 A JP 2003124937A JP 3936672 B2 JP3936672 B2 JP 3936672B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- address
- microprocessor
- replacement
- reset
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000006243 chemical reaction Methods 0.000 claims description 33
- 238000001514 detection method Methods 0.000 claims description 15
- 238000000034 method Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 9
- 230000007704 transition Effects 0.000 claims description 8
- 230000015654 memory Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- 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]
-
- 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/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
【発明の属する技術分野】
本発明は、マイクロプロセッサに関し、特に、変換索引バッファ(TLB:Translation Look-aside Buffer)を有するマイクロプロセッサに関する。
【0002】
【従来の技術】
仮想記憶方式のコンピュータでは、仮想アドレス(Virtual Address)から物理アドレス(Physical Address)への変換(アドレス変換)をプログラムの実行中に実施する必要がある。アドレス変換のためのハードウェア機構は、動的アドレス変換機構(DAT:Dynamic Address Translator)と呼ばれる。DATは、アドレス変換表(セグメントテーブル、ページテーブル等で構成されるテーブル)を参照することで、アドレス変換を実施する。アドレス変換表は、主記憶内に存在し、オペレーティングシステム(OS:Operating System)によって管理される。アドレス変換表は、例えば、ある仮想ページ番号がどの物理ページ番号に対応するかを示す。
【0003】
DATがアドレス変換の実施毎にアドレス変換表を参照すると、アドレス変換のためのオーバヘッドが増大してしまう。このため、アドレス参照の局所性を考慮して、以前に利用されたアドレス変換情報(仮想ページ番号と物理ページ番号との対)を高速なメモリに登録しておくことが、一般的に行われる。このメモリは、変換索引バッファ(TLB)またはアドレス変換バッファ(Address Translation Buffer)と呼ばれる。TLBは、アドレス変換情報が登録される複数のエントリを有している。
【0004】
アドレス変換が実施されるときに、仮想アドレスに対応するアドレス変換情報がTLB内に存在しない場合、アドレス変換表を用いたアドレス変換により得られたアドレス変換情報を、エントリのいずれかに登録されているアドレス変換情報と入れ替える必要がある。すなわち、エントリ置換を実施する必要がある。エントリ置換の対象となるエントリの選択は、例えば、LRU(Least Recently Used)アルゴリズムに基づいて実施される。すなわち、アドレス参照の局所性を考慮し、最古に参照されたエントリがエントリ置換の対象として選択される。
【0005】
しかしながら、例えば、タイムスライス方式のOSにおいて、使用頻度の低いプログラムを実行した後に、使用頻度の高いプログラムを実行する場合、使用頻度の低いプログラムの実行中にエントリ置換が発生すると、その後、使用頻度の高いプログラムの実行中にエントリ置換が多発してしまう。すなわち、TLBの効果を十分に享受できなくなってしまう。
【0006】
この問題を解決するために、エントリ置換の禁止(エントリロック)機能を有するTLBが提案されている(例えば、特許文献1参照)。この種のTLBでは、各エントリは、置換禁止ビットを有している。使用頻度の高い(リアルタイム性が要求されるなどの)プログラムのためのアドレス変換情報、すなわちTLBに常駐させる必要のあるアドレス変換情報が登録されるエントリの置換禁止ビットがセットされる。置換禁止ビットがセットされているエントリは、エントリ置換の候補から除外される。
【0007】
【特許文献1】
特開平4−338848号公報
【0008】
【発明が解決しようとする課題】
前述のようなエントリロック機能を有するTLBでは、エントリ置換が発生したときに、全てのエントリの置換禁止ビットがセットされている場合、エントリ置換を実施できなくなってしまう。このため、プログラムの実行が停止してしまう。すなわち、システムが正常に動作できなくなってしまう。
また、エントリロック用と非エントリロック用とに分割されたTLBでは、アドレス変換の実施時に、両方のTLBを同時に検索しなければならない。両方のTLBを同時にアクセスするためには、ポート数を増やす(多ポート化する)等の対応が必要となり、回路構成が複雑になってしまう。このため、回路規模が増大してしまう。
【0009】
さらに、例えば、2ウェイセットアソシアティブ方式のTLBを有するVLIW(Very Long Instruction Word)方式のマイクロプロセッサでは、TLBにおいて、同一のVLIW命令内でエントリ置換が連続して発生すると、両ウェイのエントリのいずれかの置換禁止ビットがセットされていない場合でも、エントリ置換を実施できなくなってしまう場合がある。
【0010】
本発明の目的は、TLBを有するマイクロプロセッサにおいて、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止することにある。
【0011】
【課題を解決するための手段】
請求項1のマイクロプロセッサでは、変換索引バッファは、仮想アドレスから物理アドレスへの変換により得られるアドレス変換情報が登録される複数のエントリを有している。エントリは、登録されるアドレス変換情報の常駐が必要なときにセットされるプライオリティビットをそれぞれ有している。変換索引バッファを制御する制御回路は、エントリの登録内容を入れ替えるエントリ置換が発生したときに、全てのエントリのプライオリティビットがセットされている場合、プライオリティビットに拘わらず、最古に参照されたエントリをエントリ置換の対象として選択する。
【0012】
全てのエントリのプライオリティビットがセットされている場合であっても、エントリ置換を実施できる。すなわち、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
また、プライオリティビットに拘わらず、最も以前に参照されたエントリがエントリ置換の対象として選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【0013】
さらに、プライオリティビットを参照してエントリ置換の対象を選択することで、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。
請求項1のマイクロプロセッサでは、制御回路は、エントリ置換が発生したときに、1つのエントリのプライオリティビットがリセットされている場合、プライオリティビットがリセットされているエントリをエントリ置換の対象として選択する。制御回路は、エントリ置換が発生したときに、複数のエントリのプライオリティビットがリセットされている場合、プライオリティビットがリセットされている複数のエントリのうち最古に参照されたエントリをエントリ置換の対象として選択する。
【0014】
プライオリティビットがセットされているエントリは、エントリ置換の候補から除外されるため、常駐が必要なアドレス変換情報は変換索引バッファに常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。
また、プライオリティビットがリセットされている少なくとも1つのエントリのうち最も以前に参照されたエントリがエントリ置換の対象として選択される。このため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【0015】
請求項1のマイクロプロセッサでは、1つのVLIW命令に配置された複数の命令を並列実行するVLIW方式が採用されている。変換索引バッファは、2ウェイセットアソシアティブ方式を採用している。検出回路は、同一のVLIW命令内でエントリ置換が連続して発生したことを検出する。制御回路は、検出回路により、同一のVLIW命令内でのエントリ置換の連続発生が検出されたときに、プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択する。
【0016】
同一のVLIW命令内でエントリ置換が連続して発生した場合であっても、エントリ置換を実施できる。すなわち、2ウェイセットアソシアティブ方式の変換索引バッファを有するVLIW方式のマイクロプロセッサにおいても、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【0017】
請求項2のマイクロプロセッサでは、検出回路は、保持回路、比較器およびフラグを有している。保持回路は、前回のエントリ置換が発生したときのVLIW命令の格納先アドレスを保持する。比較器は、エントリ置換が発生したときのVLIW命令の格納先アドレスと保持回路が保持しているアドレスとを比較する。フラグは、比較器により、アドレスの一致が検出されたときにセットされる。制御回路は、フラグがセットされているときに、プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択する。
【0018】
比較器によるアドレスの比較結果に応じてフラグをセットするため、フラグを参照するだけで、同一のVLIW命令内でエントリ置換が連続して発生したか否かを判定できる。すなわち、フラグを設けることで、同一のVLIW命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
請求項3のマイクロプロセッサでは、フラグは、VLIW命令の格納先アドレスの遷移に応答してリセットされる。フラグをリセットすることで、プライオリティビットを再度有効にできる。
【0019】
請求項4のマイクロプロセッサでは、検出回路は、VLIW命令の格納先アドレスの遷移を検出するアドレス検出器を有している。フラグは、アドレス検出器により、VLIW命令の格納先アドレスの遷移が検出されたときにリセットされる。アドレス検出器を設けることで、フラグを容易にリセットできる。
請求項5のマイクロプロセッサでは、割込制御回路は、プログラムの実行を中断させるために発生される複数の割込要求を管理する。フラグは、エントリ置換のための割込要求を除く割込要求の受諾に応答してリセットされる。フラグをリセットすることで、プライオリティビットを再度有効にできる。
【0020】
請求項6のマイクロプロセッサでは、割込制御回路は、受諾された割込要求の要因を検出する割込検出器を有している。フラグは、割込検出器により、受諾された割込要求はエントリ置換のための割込要求ではないことが検出されたときにリセットされる。割込検出器を設けることで、フラグを容易にリセットできる。
【0021】
【発明の実施の形態】
以下、図面を用いて実施形態を説明する。
図1は、本発明のマイクロプロセッサの第1の実施形態を示している。なお、図1は、マイクロプロセッサのアドレス変換に関する部分を示している。
マイクロプロセッサ100は、仮想記憶方式を採用しており、CPU10および主記憶18を有している。
【0022】
CPU10は、DAT12(Dynamic Address Translator)を有し、主記憶18内のプログラムに従って動作する。DAT12は、プログラムの実行中に仮想アドレスを物理アドレスに変換(アドレス変換)するハードウェア機構であり、TLB14(Translation Look-aside Buffer)および制御回路16を有している。
【0023】
TLB14は、2ウェイセットアソシアティブ方式(セット数:n)の連想メモリとして構成されている。TLB14は、アドレス変換により得られるアドレス変換情報が登録されるn個のエントリをウェイW0、W1毎に有している。エントリは、プライオリティビットPBをそれぞれ有している。プライオリティビットPBは、登録されるアドレス変換情報の常駐が必要なとき(優先度が高いとき)に”1”にセットされ、登録されるアドレス変換情報の常駐が比較的必要ないとき(優先度が低いとき)に”0”にリセットされる。
【0024】
TLB14は、セット毎にLRUビットLBを有している。LRUビットLBは、対応するセットにおいて、ウェイW0のエントリが参照されたときに”1”にセットされ、ウェイW1のエントリが参照されたときに”0”にリセットされる。
制御回路16は、エントリ置換(エントリの登録内容の入れ替え)が発生したときに、仮想アドレスに対応するセットにおいて、ウェイW0のエントリのプライオリティビットPBとウェイW1のエントリのプライオリティビットPBとが共に”1”である場合(ケース1)、プライオリティビットPBを無視し、以前に参照されたエントリを置換対象エントリ(エントリ置換の対象)として選択する。ここで、アドレス変換表20を用いたアドレス変換により得られたアドレス変換情報を、仮想アドレスに対応するセットにおけるエントリのいずれかに登録されているアドレス変換情報と入れ替えるエントリ置換は、仮想アドレスに対応するアドレス変換情報がTLB14内に存在しない場合に発生する。
【0025】
制御回路16は、エントリ置換が発生したときに、仮想アドレスに対応するセットにおいて、ウェイW0のエントリのプライオリティビットPBとウェイW1のエントリのプライオリティビットPBとのいずれかが”0”である場合(ケース2)、プライオリティビットが”0”であるエントリを置換対象エントリとして選択する。
【0026】
制御回路16は、エントリ置換が発生したときに、仮想アドレスに対応するセットにおいて、ウェイW0のエントリのプライオリティビットPBとウェイW1のエントリのプライオリティビットPBとが共に”0”である場合(ケース3)、以前に参照されたエントリを置換対象エントリとして選択する。
制御回路16の置換対象エントリの選択は、例えば、LRUアルゴリズムに基づいて実施される。すなわち、制御回路16は、ケース1またはケース3において、仮想アドレスに対応するセットのLRUビットLBが”1”である場合、ウェイW1のエントリを置換対象エントリとして選択する。制御回路16は、ケース1またはケース3において、仮想アドレスに対応するセットのLRUビットLBが”0”である場合、ウェイW0のエントリを置換対象エントリとして選択する。
【0027】
主記憶18は、各種プログラム、データなどと共に、アドレス変換表20を格納している。アドレス変換表20は、セグメントテーブル、ページテーブル等で構成される周知のテーブルである。
ここで、第1の実施形態におけるTLB制御について説明する。
図2は、第1の実施形態におけるTLB制御を示している。
【0028】
以下のTLB制御は、CPU10が主記憶18内のプログラム(オペレーティングシステム)に従って動作することで実施される。
ステップS110において、CPU10は、仮想アドレスに対応するアドレス変換情報がTLB14内に存在するか否かを判定する。仮想アドレスに対応するアドレス変換情報がTLB14内に存在する場合(TLBヒット)、即ちエントリ置換が発生しない場合、TLB制御は完了する。仮想アドレスに対応するアドレス変換情報がTLB14内に存在しない場合(TLBミス)、即ちエントリ置換が発生する場合、TLB制御はステップS120に移行する。
【0029】
ステップS120において、CPU10は、主記憶18内のアドレス変換表20を参照して、仮想アドレスから物理アドレスへの変換(アドレス変換)を実施する。この後、TLB制御はステップS130に移行する。
ステップS130において、CPU10は、仮想アドレスに対応するセットにおいて、プライオリティビットPBが”0”であるエントリが1つ存在するか否かを判定する。プライオリティビットPBが”0”であるエントリが1つ存在する場合、TLB制御はステップS140に移行する。全てのエントリのプライオリティビットPBが”0”である場合、または全てのエントリのプライオリティビットPBが”1”である場合、TLB制御はステップS150に移行する。
【0030】
ステップS140において、制御回路16は、仮想アドレスに対応するセットにおいて、プライオリティビットPBが”0”であるエントリを置換対象エントリとして選択する。プライオリティビットPBが”1”であるエントリは、置換対象エントリとして選択されないため、常駐が必要なアドレス変換情報はTLB14から追い出されない。このため、アドレス変換のためのオーバヘッドが低減される。この後、TLB制御はステップS160に移行する。
【0031】
ステップS150において、制御回路16は、仮想アドレスに対応するセットにおいて、プライオリティビットPBに拘わらず、LRUビットLBを用いて(LRUアルゴリズムに基づいて)、以前に参照されたエントリを置換対象として選択する。全てのエントリのプライオリティビットPBが”1”である場合でも、置換対象エントリを選択するため、エントリ置換が実施できなくなることが防止される。プライオリティビットPBに拘わらず、以前に参照されたエントリが置換対象エントリとして選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大が抑制される。この後、TLB制御はステップS160に移行する。
【0032】
ステップS160において、CPU10は、ステップS140またはステップS150により選択された置換対象エントリに登録されているアドレス変換情報を追い出し、ステップS120により得られたアドレス変換情報を登録する。すなわち、エントリ置換が実施される。また、置換対象エントリのプライオリティビットPBは、アドレス変換表20により、登録されるアドレス変換情報の常駐が指定されている場合、”1”にセットされる。置換対象エントリのプライオリティビットPBは、アドレス変換表20により、登録されるアドレス変換情報の常駐が指定されていない場合、”0”にリセットされる。さらに、仮想アドレスに対応するセットのLRUビットLBは、置換対象エントリがウェイW0のエントリである場合、”1”にセットされる。仮想アドレスに対応するセットのLRUビットLBは、置換対象エントリがウェイW1のエントリである場合、”0”にリセットされる。これにより、TLB制御は完了する。
【0033】
以上、第1の実施形態では、次の効果が得られる。
全てのエントリのプライオリティビットPBが”1”である場合でも、エントリ置換を実施できる。すなわち、エントリ置換が実施できなくなることを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【0034】
最も以前に参照されたエントリがエントリ置換の対象として選択されるため、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
プライオリティビットPBを参照してエントリ置換の対象を選択することで、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。
【0035】
プライオリティビットPBが”1”であるエントリは、エントリ置換の候補から除かれるため、常駐が必要なアドレス変換情報はTLB14に常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。
図3は、本発明のマイクロプロセッサの第2の実施形態を示している。
【0036】
マイクロプロセッサ200は、1つのVLIW命令に配置された複数の命令を並列的に実行するVLIW方式を採用している。マイクロプロセッサ200は、CPU30、割込制御回路INTC1、SDRAMインタフェースSIFを有している。
CPU30は、バスインタフェースBIF、システムユニットSU、整数ユニットIU、浮動小数点ユニットFUを有している。
【0037】
バスインタフェースBIFは、CPU30とマイクロプロセッサ200内の周辺回路とのインタフェースとして動作する。
システムユニットSUは、DAT12a、命令キャッシュICAC、データキャッシュDCACを有している。DAT12aは、第1の実施形態のTLB14および制御回路16と同様のTLBおよび制御回路を有している。命令キャッシュICACおよびデータキャッシュDCACは、タグ領域とデータ領域とから構成され、TLBヒット時にアクセスの対象となるメモリである。
【0038】
整数ユニットIUは、汎用処理のための整数命令を実行する。浮動小数点ユニットFUは、画像や音声などのメディア処理のための浮動小数点命令を実行する。
割込制御回路INTC1は、プログラムの実行を中断させるために発生される複数の割込要求を管理する。SDRAMインタフェースSIFは、SDRAMで構成される主記憶18aとのインタフェースとして動作する。主記憶18aは、第1の実施形態のアドレス変換表20と同様のアドレス変換表を格納している。
【0039】
図4は、第2の実施形態における割込制御回路INTC1の要部を示している。
割込制御回路INTC1は、優先順位判定回路PDCおよび検出回路DC1を有している。
優先順位判定回路PDCは、活性化した割込要求信号を予め設定された優先順位やマスク情報を用いて受け付け、受け付けた割込要求信号に対応する割込コードICODEを生成する。
【0040】
検出回路DC1は、保持回路REG、論理積回路AND、比較器CMP、アドレス検出器ADおよびフラグFを有している。
保持回路REGは、例えば、ラッチ回路により構成され、TLBミス割込要求(エントリ置換のための割込要求)を示す割込要求信号TLBIの非活性化に応答して、VLIW仮想アドレス(VLIW命令の格納先アドレス)VVAを取り込む。すなわち、保持回路REGは、前回のTLBミス時(エントリ置換が発生したとき)のVLIW仮想アドレスを保持している。保持回路REGは、保持しているアドレスVVA1を出力する。
【0041】
論理積回路ANDは、割込要求信号TLBIの活性化中に、VLIW仮想アドレスVVAをアドレスVVA2として出力する。
比較器CMPは、アドレスVVA1とアドレスVV2とを比較する。比較器CMPは、アドレスの一致を検出したときに、ワンショットパルス信号であるフラグセット信号FSを出力する。
【0042】
アドレス検出器ADは、VLIW仮想アドレスVVAの遷移を検出する。アドレス検出器ADは、VLIW仮想アドレスVVAの遷移を検出したときに、ワンショットパルス信号であるフラグリセット信号FR1を出力する。
フラグFは、比較器CMPから出力されるフラグセット信号FSの立ち上がりエッジに応答して、”1”にセットされる。フラグFは、アドレス検出器ADから出力されるフラグリセット信号FR1の立ち上がりエッジに応答して、”0”にリセットされる。これにより、フラグFを参照するだけで、同一のVLIW命令内でエントリ置換が連続して発生したことが容易に認識される。
【0043】
図5は、第2の実施形態におけるTLB制御を示している。
以下のTLB制御は、第1の実施形態と同様に、CPU30が主記憶18a内のプログラム(オペレーティングシステム)に従って動作することで実施される。なお、図2で説明した処理と同一の処理には、同一の符号を付している。
まず、第1の実施形態と同様に、ステップS110、S120の処理が順次実施される。
【0044】
ステップS210において、CPU30は、検出回路DC1のフラグFが”1”であるか否かを判定する。フラグFが”1”である場合、TLB制御はステップS150に移行する。そして、第1の実施形態と同様に、ステップS150以降の処理が順次実施される。フラグFが”0”である場合、TLB制御はステップS130に移行する。そして、第1の実施形態と同様に、ステップS130以降の処理が順次実施される。
【0045】
以上、第2の実施形態でも、第1の実施形態と同様の効果が得られる。さらに、同一のVLIW命令内でエントリ置換が連続して発生した場合であっても、エントリ置換を実施できる。すなわち、2ウェイセットアソシアティブ方式のTLB14を有するVLIW方式のマイクロプロセッサ200においても、エントリ置換が実施できなくなるのを防止でき、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
【0046】
比較器CMPによるアドレスの比較結果に応じてフラグFをセットするため、フラグFを参照するだけで、同一のVLIW命令内でエントリ置換が連続して発生したか否かを判定できる。すなわち、フラグFを設けることで、同一のVLIW命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
フラグFをリセットすることで、プライオリティビットPBを再度有効にできる。アドレス検出器ADを設けることで、フラグFを容易にリセットできる。
【0047】
図6は、本発明のマイクロプロセッサの第3の実施形態を示している。第2の実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明は省略する。
マイクロプロセッサ300は、第2の実施形態の割込制御回路INTC1に代えて、割込制御回路INTC2を有している。その他の構成は、第2の実施形態のマイクロプロセッサ200と同一である。
【0048】
図7は、第3の実施形態における割込制御回路INTC2の要部を示している。
割込制御回路INTC2は、第2の実施形態の検出回路DC1に代えて、検出回路DC2を有している。検出回路DC2は、第2の実施形態のアドレス検出器ADに代えて、割込検出器IDを有している。その他の構成は、第2の実施形態の割込制御回路INTC1と同一である。
【0049】
割込検出器IDは、優先順位判定回路PDCが生成した割込コードICODEと割込要求信号TLBIに対応する割込コードとの不一致を検出する。割込検出器IDは、割込コードの不一致(受け付けられた割込要求信号は割込要求信号TLBIではないこと)を検出したときに、ワンショットパルス信号であるフラグリセット信号FR2を出力する。
【0050】
フラグFは、比較器CMPから出力されるフラグセット信号FSの立ち上がりエッジに応答して、”1”にセットされる。フラグFは、割込検出器IDから出力されるフラグリセット信号FR2の立ち上がりエッジに応答して、”0”にリセットされる。これにより、フラグFを参照するだけで、同一のVLIW命令内でエントリ置換が連続して発生したことが容易に認識される。また、フラグFがリセットされることで、プライオリティビットPBは、再度有効になる。
【0051】
以上、第3の実施形態でも、第1および第2の実施形態と同様の効果が得られる。
なお、第1の実施形態では、TLBが2ウェイセットアソシアティブ方式で構成された例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、TLBは、4ウェイセットアソシアティブ方式で構成されてもよい。
【0052】
図8は、4ウェイセットアソシアティブ方式のTLBにおける置換対象エントリの選択を示している。
4つのウェイW0〜W3を有するTLBは、セット毎に6ビットのLRUビットLB01、LB02、LB03、LB12、LB13、LB23を有している。LRUビットLB01は、ウェイW0のエントリとウェイW1のエントリとの関係を示している。LRUビットLB01が”1”であることは、ウェイW1のエントリがウェイW0のエントリより以前に参照されたことを表す。LRUビットLB01が”0”であることは、ウェイW0のエントリがウェイW1のエントリより以前に参照されたことを表す。同様に、LRUビットLB02、LB03、LB12、LB13、LB23は、ウェイW0のエントリとウェイW2のエントリとの関係、ウェイW0のエントリとウェイW3のエントリとの関係、ウェイW1のエントリとウェイW2のエントリとの関係、ウェイW1のエントリとウェイW3のエントリとの関係、ウェイW2のエントリとウェイW3のエントリとの関係をそれぞれ示している。仮想アドレスに対応するセットにおいて、LRUビットLB01、LB02、LB03、LB12、LB13、LB23を用いることで、最も以前に参照されたエントリを置換対象エントリとして容易に選択できる。
【0053】
また、例えば、仮想アドレスに対応するセットにおいて、ウェイW0のエントリのプライオリティビットPBのみがセットされた場合、図の右側に示すように、ウェイW0のエントリとは無関係のLRUビットLB12、LB13、LB23のみを用いることで、ウェイW1〜W3のエントリのうち最も以前に参照されたエントリを置換対象エントリとして容易に選択できる。これにより、ウェイW0のエントリは、エントリ置換の候補から除外できる。図中、破線で示したLRUビットLB01、LB02、LB03は、置換対象エントリの選択で使用されないことを示している。
【0054】
第1の実施形態では、TLBがセットアソシアティブ方式で構成された例について述べた。本発明は、かかる実施形態に限定されるものではない。例えば、TLBは、フルアソシアティブ方式で構成されてもよい。
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【0055】
【発明の効果】
請求項1のマイクロプロセッサでは、回路構成を複雑にすることなく、エントリ置換が実施できなくなることを防止できる。すなわち、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。また、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
請求項1のマイクロプロセッサでは、常駐が必要なアドレス変換情報は変換索引バッファに常駐できる。すなわち、アドレス変換のためのオーバヘッドを低減できる。また、エントリ置換に伴うアドレス変換のためのオーバヘッドの増大を最小にできる。
【0056】
請求項1のマイクロプロセッサでは、2ウェイセットアソシアティブ方式の変換索引バッファを有するVLIW方式のマイクロプロセッサにおいても、エントリ置換が実施できなくなることを防止できる。すなわち、プログラムの実行が停止することを回避できる。換言すれば、システムの正常動作を保証できる。
請求項2のマイクロプロセッサでは、同一のVLIW命令内でエントリ置換が連続して発生したか否かを容易に認識できる。
【0057】
請求項3および請求項5のマイクロプロセッサでは、プライオリティビットを再度有効にできる。
請求項4および請求項6のマイクロプロセッサでは、フラグを容易にリセットできる。
【図面の簡単な説明】
【図1】本発明のマイクロプロセッサの第1の実施形態を示すブロック図である。
【図2】第1の実施形態におけるTLB制御を示すフローチャートである。
【図3】本発明のマイクロプロセッサの第2の実施形態を示すブロック図である。
【図4】第2の実施形態における割込制御回路の要部を示すブロック図である。
【図5】第2の実施形態におけるTLB制御を示すフローチャートである。
【図6】本発明のマイクロプロセッサの第3の実施形態を示すブロック図である。
【図7】第3の実施形態における割込制御回路の要部を示すブロック図である。
【図8】4ウェイセットアソシアティブ方式のTLBにおける置換対象エントリの選択を示す説明図である。
【符号の説明】
10、30 CPU
12、12a 動的アドレス変換機構(DAT)
14 変換索引バッファ(TLB)
16 制御回路
18、18a 主記憶
20 アドレス変換表
100、200、300 マイクロプロセッサ
AD アドレス検出器
AND 論理積回路
BIF バスインタフェース
CMP 比較器
DC1、DC2 検出回路
DCAC データキャッシュ
F フラグ
FU 浮動小数点ユニット
ID 割込検出器
ICAC 命令キャッシュ
INTC1、INTC2 割込制御回路
IU 整数ユニット
LB、LB01、LB02、LB03、LB12、LB13、LB23 LRUビット
PB プライオリティビット
PDC 優先順位判定回路
REG 保持回路
SIF SDRAMインタフェース
SU システムユニット
W0、W1、W2、W3 ウェイ
Claims (6)
- 仮想アドレスから物理アドレスへの変換により得られるアドレス変換情報が登録される複数のエントリを有する変換索引バッファと、
前記変換索引バッファを制御する制御回路とを備えたマイクロプロセッサであって、
前記エントリは、登録されるアドレス変換情報の常駐が必要なときにセットされるプライオリティビットをそれぞれ備え、
前記制御回路は、前記エントリの登録内容を入れ替えるエントリ置換が発生したときに、全ての前記エントリの前記プライオリティビットがセットされている場合、前記プライオリティビットに拘わらず、最古に参照されたエントリをエントリ置換の対象として選択し、少なくとも1つの前記エントリの前記プライオリティビットがリセットされている場合、前記プライオリティビットがリセットされている少なくとも1つの前記エントリのうち最古に参照されたエントリをエントリ置換の対象として選択し、
更に、前記マイクロプロセッサは、1つのVLIW命令に配置された複数の命令を並列実行するVLIW方式を採用するとともに、同一のVLIW命令内でエントリ置換が連続して発生したことを検出する検出回路を備え、
前記変換索引バッファは、2ウェイセットアソシアティブ方式を採用し、
前記制御回路は、前記検出回路により、同一のVLIW命令内でのエントリ置換の連続発生が検出されたときに、前記プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。 - 請求項1記載のマイクロプロセッサにおいて、
前記検出回路は、前回のエントリ置換が発生したときのVLIW命令の格納先アドレスを保持する保持回路と、エントリ置換が発生したときのVLIW命令の格納先アドレスと前記保持回路が保持しているアドレスとを比較する比較器と、前記比較器により、アドレスの一致が検出されたときにセットされるフラグとを備え、
前記制御回路は、前記フラグがセットされているときに、前記プライオリティビットに拘わらず、以前に参照されたエントリをエントリ置換の対象として選択することを特徴とするマイクロプロセッサ。 - 請求項2記載のマイクロプロセッサにおいて、
前記フラグは、VLIW命令の格納先アドレスの遷移に応答してリセットされることを特徴とするマイクロプロセッサ。 - 請求項3記載のマイクロプロセッサにおいて、
前記検出回路は、VLIW命令の格納先アドレスの遷移を検出するアドレス検出器を備え、
前記フラグは、前記アドレス検出器により、VLIW命令の格納先アドレスの遷移が検出されたときにリセットされることを特徴とするマイクロプロセッサ。 - 請求項2記載のマイクロプロセッサにおいて、
プログラムの実行を中断させるために発生される複数の割込要求を管理する割込制御回路を備え、
前記フラグは、エントリ置換のための割込要求を除く割込要求の受諾に応答してリセットされることを特徴とするマイクロプロセッサ。 - 請求項5記載のマイクロプロセッサにおいて、
前記割込制御回路は、受諾された割込要求の要因を検出する割込検出器を備え、
前記フラグは、前記割込検出器により、受諾された割込要求はエントリ置換のための割込要求ではないことが検出されたときにリセットされることを特徴とするマイクロプロセッサ。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124937A JP3936672B2 (ja) | 2003-04-30 | 2003-04-30 | マイクロプロセッサ |
US10/776,266 US7231506B2 (en) | 2003-04-30 | 2004-02-12 | Microprocessor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124937A JP3936672B2 (ja) | 2003-04-30 | 2003-04-30 | マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004334267A JP2004334267A (ja) | 2004-11-25 |
JP3936672B2 true JP3936672B2 (ja) | 2007-06-27 |
Family
ID=33308157
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003124937A Expired - Fee Related JP3936672B2 (ja) | 2003-04-30 | 2003-04-30 | マイクロプロセッサ |
Country Status (2)
Country | Link |
---|---|
US (1) | US7231506B2 (ja) |
JP (1) | JP3936672B2 (ja) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7284100B2 (en) | 2003-05-12 | 2007-10-16 | International Business Machines Corporation | Invalidating storage, clearing buffer entries, and an instruction therefor |
US9454490B2 (en) | 2003-05-12 | 2016-09-27 | International Business Machines Corporation | Invalidating a range of two or more translation table entries and instruction therefore |
JP4233492B2 (ja) * | 2004-06-02 | 2009-03-04 | 富士通マイクロエレクトロニクス株式会社 | アドレス変換装置 |
US20060224857A1 (en) | 2005-03-29 | 2006-10-05 | O'connor Dennis M | Locking entries into translation lookaside buffers |
US7426626B2 (en) * | 2005-08-23 | 2008-09-16 | Qualcomm Incorporated | TLB lock indicator |
WO2008155851A1 (ja) * | 2007-06-20 | 2008-12-24 | Fujitsu Limited | 演算処理装置、エントリ制御プログラムおよびエントリ制御方法 |
CN101609397B (zh) * | 2008-06-16 | 2012-07-04 | 安凯(广州)微电子技术有限公司 | 基于无线手持式设备的微内存系统内存交换失效方法 |
JP5347024B2 (ja) * | 2009-06-24 | 2013-11-20 | パナソニック株式会社 | メモリアクセス制御装置、集積回路、メモリアクセス制御方法及びデータ処理装置 |
US8429378B2 (en) * | 2010-07-06 | 2013-04-23 | Qualcomm Incorporated | System and method to manage a translation lookaside buffer |
US8615636B2 (en) | 2011-03-03 | 2013-12-24 | International Business Machines Corporation | Multiple-class priority-based replacement policy for cache memory |
US9182984B2 (en) | 2012-06-15 | 2015-11-10 | International Business Machines Corporation | Local clearing control |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4373179A (en) * | 1978-06-26 | 1983-02-08 | Fujitsu Limited | Dynamic address translation system |
US4463420A (en) * | 1982-02-23 | 1984-07-31 | International Business Machines Corporation | Multiprocessor cache replacement under task control |
US4731739A (en) * | 1983-08-29 | 1988-03-15 | Amdahl Corporation | Eviction control apparatus |
US4682281A (en) * | 1983-08-30 | 1987-07-21 | Amdahl Corporation | Data storage unit employing translation lookaside buffer pointer |
US4797814A (en) * | 1986-05-01 | 1989-01-10 | International Business Machines Corporation | Variable address mode cache |
US4980816A (en) * | 1987-12-18 | 1990-12-25 | Nec Corporation | Translation look-aside buffer control system with multiple prioritized buffers |
JPH04338848A (ja) | 1991-05-16 | 1992-11-26 | Toshiba Corp | Tlb置換方式 |
US5644748A (en) * | 1992-01-30 | 1997-07-01 | Fujitsu Limited | Processor system including an index buffer circuit and a translation look-aside buffer control circuit for processor-to-processor interfacing |
JPH06243036A (ja) * | 1993-02-12 | 1994-09-02 | Hitachi Ltd | キャッシュ制御システム |
GB9307359D0 (en) * | 1993-04-08 | 1993-06-02 | Int Computers Ltd | Cache replacement mechanism |
DE69427734T2 (de) * | 1993-10-29 | 2002-05-23 | Advanced Micro Devices Inc | Linearadressierter Mikroprozessorcachespeicher |
GB2348024B (en) * | 1999-03-16 | 2003-06-25 | Ibm | Cache memory systems |
US6862663B1 (en) * | 2000-06-30 | 2005-03-01 | Intel Corporation | Cache having a prioritized replacement technique and method therefor |
-
2003
- 2003-04-30 JP JP2003124937A patent/JP3936672B2/ja not_active Expired - Fee Related
-
2004
- 2004-02-12 US US10/776,266 patent/US7231506B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2004334267A (ja) | 2004-11-25 |
US7231506B2 (en) | 2007-06-12 |
US20040221090A1 (en) | 2004-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1388065B1 (en) | Method and system for speculatively invalidating lines in a cache | |
EP0088239B1 (en) | Multiprocessor cache replacement under task control | |
JP3740195B2 (ja) | データ処理装置 | |
US6868472B1 (en) | Method of Controlling and addressing a cache memory which acts as a random address memory to increase an access speed to a main memory | |
JP5526626B2 (ja) | 演算処理装置およびアドレス変換方法 | |
US20080005504A1 (en) | Global overflow method for virtualized transactional memory | |
US10083126B2 (en) | Apparatus and method for avoiding conflicting entries in a storage structure | |
US8296518B2 (en) | Arithmetic processing apparatus and method | |
JPH08235072A (ja) | セットアソシアティブ方式メモリの動的分画化方法及び装置 | |
JPH08320829A (ja) | データ処理装置 | |
JP3936672B2 (ja) | マイクロプロセッサ | |
CN110036377B (zh) | 可缓存的但不可通过推测指令访问的内存类型 | |
JPWO2007099598A1 (ja) | プリフェッチ機能を有するプロセッサ | |
US20030061452A1 (en) | Processor and method of arithmetic processing thereof | |
US8271732B2 (en) | System and method to reduce power consumption by partially disabling cache memory | |
US7461212B2 (en) | Non-inclusive cache system with simple control operation | |
US5606687A (en) | Method and apparatus for optimizing supervisor mode store operations in a data cache | |
US6810473B2 (en) | Replacement algorithm for a replicated fully associative translation look-aside buffer | |
JP2004030527A (ja) | 記憶制御装置、および記憶制御方法 | |
JP2009157612A (ja) | キャッシュメモリシステム及びキャッシュメモリの制御方法 | |
KR20070084441A (ko) | 로컬 메모리 데이터의 가간섭성 캐싱 | |
JP2007280421A (ja) | データ処理装置 | |
US6877069B2 (en) | History-based carry predictor for data cache address generation | |
JP2001249846A (ja) | キャッシュメモリ装置及びデータ処理システム | |
US7496710B1 (en) | Reducing resource consumption by ineffective write operations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041026 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070130 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070305 |
|
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: 20070320 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070323 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100330 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100330 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110330 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110330 Year of fee payment: 4 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110330 Year of fee payment: 4 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110330 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120330 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130330 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140330 Year of fee payment: 7 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |