JP2006039968A - アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法 - Google Patents

アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法 Download PDF

Info

Publication number
JP2006039968A
JP2006039968A JP2004219234A JP2004219234A JP2006039968A JP 2006039968 A JP2006039968 A JP 2006039968A JP 2004219234 A JP2004219234 A JP 2004219234A JP 2004219234 A JP2004219234 A JP 2004219234A JP 2006039968 A JP2006039968 A JP 2006039968A
Authority
JP
Japan
Prior art keywords
address translation
entry
information
area
data
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
JP2004219234A
Other languages
English (en)
Other versions
JP4297846B2 (ja
Inventor
Masanori Doi
正典 土居
Iwao Yamazaki
巌 山崎
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2004219234A priority Critical patent/JP4297846B2/ja
Priority to US10/986,041 priority patent/US7380097B2/en
Priority to DE602004021796T priority patent/DE602004021796D1/de
Priority to EP04257419A priority patent/EP1622034B1/en
Publication of JP2006039968A publication Critical patent/JP2006039968A/ja
Application granted granted Critical
Publication of JP4297846B2 publication Critical patent/JP4297846B2/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]

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)

Abstract

【課題】一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現すること。
【解決手段】退避領域制御部210は、複数のスレッドで共有することができないCAM110の情報を退避する領域をRAM120に確保する。退避データ転記部220は、プロセッサ上で実行されるスレッドが切り替わると、新たに実行されたスレッドに対応する情報をRAM120から取得してCAM110へ転記する。また、RAM120に退避しておく情報にECCデータを付加し、データの信頼性を確保する。
【選択図】 図3

Description

この発明は、アドレス変換バッファを制御するアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法に関し、特に一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現できるアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法に関するものである。
仮想記憶方式を採用するコンピュータシステムは、仮想アドレスから物理アドレスへの変換をおこなうためにページテーブルと呼ばれる変換表を用いる。このページテーブルは、通常は主記憶中に置かれるが、主記憶へのアクセスはCPU(Central Processing Unit)の動作からみると低速な処理であるため、アドレス変換のたびに主記憶のページテーブルを参照していたのではシステムの性能が低下してしまう。
そこで、従来より、CPU内にアドレス変換バッファ(以下、TLB(Translation Lookaside Buffer)という。)を設けて、ここにアドレス変換の履歴をキャッシュし、主記憶中のページテーブルへのアクセスを極力減らす方式が取られている(例えば、特許文献1)。
近年、TLBの容量は、プログラムが利用するアドレス空間が大きくなるのにともなって増大する傾向にある。TLBの容量が小さいとTLBミスが多発してシステムの性能が低下するためである。また、一つのプロセッサコア上で同時に複数のスレッドを実行できるマルチスレッドアーキテクチャのCPUが一般化しつつあるが、マルチスレッド対応のCPUにおいては、スレッド分のアドレス変換の履歴を保持する必要があるため、TLBに必要とされる容量はさらに大きくなっている。
特開平6−259329号公報
しかし、TLBの容量を増やすにはTLBの実装面積を大きくすることが必要となり、CPU製造の難易度の上昇やコストの増大を招くという問題がある。特に、マルチスレッドアーキテクチャのCPUにおいてはスレッド間で共有できない資源が多くあり、TLBに大きな実装面積を割当てることは困難である。
この発明は、上述した従来技術による問題点を解消するためになされたものであり、TLBの容量を増やすことなくマルチスレッドアーキテクチャに対応可能なアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するため、本発明は、一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御手段と、前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記手段とを備えたことを特徴とする。
また、本発明は、一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御工程と、前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記工程とを含んだことを特徴とする。
この発明によれば、第2のメモリ領域に第1のメモリ領域の情報を退避する領域を複数確保し、スレッドの切り替えにともなって第2のメモリ領域に退避した情報を第1のメモリ領域へ転記するように構成したので、第1のメモリ領域の容量を増やすことなくプロセッサのマルチスレッド化に対応することができる。
また、本発明は、上記の発明において、前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第2のメモリ領域に前記退避領域を割当てることを特徴とする。
この発明によれば、プロセッサ上で実行可能なスレッドの数と同じ数の退避領域を第2のメモリ領域に確保するように構成したので、プロセッサ上で実行可能なスレッドの数がいくつであっても対応することができる。
また、本発明は、上記の発明において、前記エントリ登録手段は、前期第1のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする。
この発明によれば、第1のメモリ領域へ登録する情報を第2のメモリ領域の退避領域にも登録するように構成したので、スレッドが切り替わった際に第1のメモリ領域の情報を退避領域へ転記する必要がなく、スレッドの切り替え処理を高速におこなうことができる。
また、本発明は、上記の発明において、アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする。
また、本発明は、上記の発明において、アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする。
この発明によれば、退避領域へ格納する情報に誤り訂正情報を付加するように構成したので、退避領域の情報の信頼性を高めることができる。
また、本発明は、上記の発明において、前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする。
この発明によれば、退避領域へ退避していた情報を第1のメモリ領域へ転記する際に誤り訂正情報をもちいてデータ化けの検出と訂正をおこなうように構成したので、第1のメモリ領域の情報が正しいことを保証することができる。
また、本発明は、上記の発明において、前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第1のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする。
この発明によれば、退避領域へ退避していた情報を第1のメモリ領域へ転記する際にデータ化けを検出したエントリの情報をエラーエントリ記憶手段に記憶しておき、転記が完了した後にエラーエントリ記憶手段の情報を基にして退避領域のデータ化けの検出と訂正をおこなうように構成したので、第1のメモリ領域へ転記処理を高速に完了することができ、また、退避領域のデータ化けの検出と訂正を効率的におこなうことができる。
また、本発明は、上記の発明において、前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする。
この発明によれば、前回データ化けを訂正していないエントリを優先して退避領域のデータ化けの検出と訂正をおこなうように構成したので、退避領域の一部が固定故障していても他の場所のデータ化けを適切に訂正することができる。
また、本発明は、上記の発明において、前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする。
この発明によれば、プロセッサが複数のスレッドを実行するモードでない場合には第2のメモリ領域に退避領域を確保しないように構成したので、第2のメモリ領域を有効に活用することができる。
本発明によれば、第2のメモリ領域に第1のメモリ領域の情報を退避する領域を複数確保し、スレッドの切り替えにともなって第2のメモリ領域に退避した情報を第1のメモリ領域へ転記するように構成したので、第1のメモリ領域の容量を増やすことなくプロセッサのマルチスレッド化に対応することができるという効果を奏する。
また、本発明によれば、プロセッサ上で実行可能なスレッドの数と同じ数の退避領域を第2のメモリ領域に確保するように構成したので、プロセッサ上で実行可能なスレッドの数がいくつであっても対応することができるという効果を奏する。
また、本発明によれば、第1のメモリ領域へ登録する情報を第2のメモリ領域の退避領域にも登録するように構成したので、スレッドが切り替わった際に第1のメモリ領域の情報を退避領域へ転記する必要がなく、スレッドの切り替え処理を高速におこなうことができるという効果を奏する。
また、本発明によれば、退避領域へ格納する情報に誤り訂正情報を付加するように構成したので、退避領域の情報の信頼性を高めることができるという効果を奏する。
また、本発明によれば、退避領域へ退避していた情報を第1のメモリ領域へ転記する際に誤り訂正情報をもちいてデータ化けの検出と訂正をおこなうように構成したので、第1のメモリ領域の情報が正しいことを保証することができるという効果を奏する。
また、本発明によれば、退避領域へ退避していた情報を第1のメモリ領域へ転記する際にデータ化けを検出したエントリの情報をエラーエントリ記憶手段に記憶しておき、転記が完了した後にエラーエントリ記憶手段の情報を基にして退避領域のデータ化けの検出と訂正をおこなうように構成したので、第1のメモリ領域へ転記処理を高速に完了することができ、また、退避領域のデータ化けの検出と訂正を効率的におこなうことができるという効果を奏する。
また、本発明によれば、前回データ化けを訂正していないエントリを優先して退避領域のデータ化けの検出と訂正をおこなうように構成したので、退避領域の一部が固定故障していても他の場所のデータ化けを適切に訂正することができるという効果を奏する。
また、本発明によれば、プロセッサが複数のスレッドを実行するモードでない場合には第2のメモリ領域に退避領域を確保しないように構成したので、第2のメモリ領域を有効に活用することができるという効果を奏する。
以下に添付図面を参照して、この発明に係るアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法の好適な実施の形態を詳細に説明する。なお、ここではスレッド間で共有ができないTLBのメモリ領域の例としてCAM(Content Addressable Memory)を有し、スレッド間で共有可能なTLBのメモリ領域の例としてRAM(Random Access Memory)を有するプロセッサを例として説明をおこなうこととする。
まず、本実施例に係るアドレス変換バッファ制御方式の原理について説明する。図1は、本実施例に係るアドレス変換バッファ制御方式の原理を説明するための説明図である。
同図に示すように、本実施例に係るアドレス変換バッファ制御方式を適用するマルチスレッドアーキテクチャのプロセッサのTLBにはCAMと呼ばれるメモリ領域とRAMと呼ばれるメモリ領域の2つのメモリ領域が存在する。
CAMは、アドレス変換を高速におこなうことができる構造をもったメモリ領域であり、様々なページサイズの情報を登録することができる。また、ラッチベースで作られており、データ反転等のエラーが発生しにくい。このため、CAMにはロックエントリやグローバルビットといったシステムの動作に重要な意味をもつ情報も格納されるが、実装面積に対する記憶領域が小さく、大量の情報を格納することができない。
RAMは、CAMに比べるとアドレス変換に要する時間が長くなり、格納できるページサイズも1種類に限られるが、実装面積に対する記憶領域が大きい。この実装面積に対する記憶領域の比率の問題から、プロセッサ上で同時に動作するスレッドの数に応じてRAMの領域は拡張し易いのに対し、CAMの領域は拡張が困難になっている。
そこで、本実施例に係るアドレス変換バッファ制御方式では、RAMの一部をCAMの退避領域に割り当て、スレッドが切り替わる度にこの退避領域の情報をCAMに転記する方式をとることとした。RAMをCAMデータの退避先としたのは、比較的容量が大きく、CAMと同様にプロセッサ上に存在するためデータの転記を高速におこなうことができるためである。
なお、マルチスレッドアーキテクチャのプロセッサには2つの方式があり、SMT(Simultaneous Multi Thread)方式では、実際に一つのコア上で複数のスレッドが動作する。もう一方の方式であるVMT(Vertical Multi Thread)方式では、通常のプロセッサよりも遥かに高速かつ頻繁にスレッドの切り替えが可能であるが、一つの時点では実際には一つのスレッドしか動作しない。
このVMT方式のマルチスレッドアーキテクチャのプロセッサでは、同時に動作するスレッドは一つに限られるため、本実施例に係るアドレス変換バッファ制御方式のようにCAMの内容をスレッドの切り替えに応じて書き換える方式を有効に適用することができる。
本実施例に係るアドレス変換バッファ制御方式では、図1に示すように、プロセッサ上で動作するスレッド数分のCAMの退避領域(以下、「CAMRAM」という。)をRAMの一部に確保する。そして、プロセッサ上でスレッド0が動作している間は、CAMにスレッド0に対応する情報を格納し、CAMに対して新たなエントリが登録された場合には、CAMRAMのスレッド0に対応する領域にも同じエントリを登録する。
このように、CAMの内容とCAMRAMの内容が、一致するように制御することにより、スレッドの切り替え時にCAMの内容をCAMRAMに退避する必要がなくなり、スレッドの切り替えにともなう処理を高速におこなうことができる。
プロセス上で動作するスレッドがスレッド0からスレッド1に切り替わった場合は、CAMRAMのスレッド1に対応する領域の内容をCAMに転記する。このように、スレッドの切り替えにともなってCAMRAMの内容をCAMに転記することにより、CAMにはプロセッサ上で動作しているスレッドに対応した情報が常に格納され、CAMの数や容量を増やすことなくマルチスレッドに対応することができることになる。
ところで、既に述べたように、CAMはラッチベースで作られることが多くデータ反転等のエラーが発生しにくいのに対して、RAMにはこのような特徴はない。CAMには、データ化けが発生すると直ちにシステムダウンのような重大な障害が発生するような重要なデータが収められているため、CAMのデータをRAMに退避することは信頼性の上で問題がある。
そこで、本実施例に係るアドレス変換バッファ制御方式では、RAMに退避しているデータに対する誤り制御をおこなうこととしている。図2は、本実施例に係るアドレス変換バッファ制御方式における誤り制御を説明するための説明図である。
同図に示すように、CAMRAMに新規のエントリを登録する場合には、データ化けの検出と訂正が可能なECCビット付加して登録をおこなう。そして、スレッドの切り替えに応じて、CAMRAMの内容をCAMに転記する際にこのECCビットを使用してデータ化けの検出と訂正をおこなう。
このようにECCビットを付加することにより、CAMデータの信頼性を高め、システム障害の発生を防止することができる。
次に、本実施例に係るアドレス変換バッファ制御装置の構成について説明する。図3は、本実施例に係るアドレス変換バッファ制御装置の構成を示す機能ブロック図である。同図に示すように、アドレス変換バッファ制御装置200は、アドレス変換バッファ100と接続された構成をとる。
アドレス変換バッファ100は、仮想アドレスの変換履歴を記憶する記憶部であり、CAM110とRAM120という2つのメモリ領域を有する。CAM110は、容量が比較的小さいメモリ領域であり、一つのスレッド分の情報しか保持することができない。RAM120は、容量が比較的大きいメモリ領域であり、プロセッサ上で動作可能なスレッド数分の情報を保持することができる。
アドレス変換バッファ制御装置200は、アドレス変換バッファ100を制御する制御装置であり、退避領域制御部210と、退避データ転記部220と、エントリ登録部230と、アドレス変換部240と、デマップ部250と、ECC生成部260と、ECC訂正部270と、エラーエントリ記憶部280と、訂正エントリ記憶部290とを有する。
退避領域制御部210は、CAM110の情報を当該のプロセッサ上で実行可能なスレッド数分だけ格納できる領域をRAM120に確保する制御部である。なお、退避領域制御部210は、プロセッサが一つのスレッドのみを実行するモードで動作している場合にはRAM120にCAMデータの退避領域を確保せず、RAM120の全領域をRAMデータの格納領域として使用できるようにする。
プロセッサがマルチスレッド対応のモードで動作しているか否かはアクセスアドレスの最上位ビットで制御され、マルチスレッド動作時には最上位ビットが0固定となる。
退避データ転記部220は、スレッドの切り替えを検知して、新しいスレッドに対応するCAMデータをRAM120からCAM110に転記する制御部である。退避データ転記部220は、転記時にECCビットを使用してCAMデータのデータ化けの検出をおこない、データ化けを発見した場合は訂正処理をおこなう。
エントリ登録部230は、新しいアドレス変換情報をアドレス変換バッファ100に登録する処理部である。登録先がCAM110の場合は、アドレス変換情報にECCビットを付加したものをRAM120のCAMRAM領域にも登録する。
アドレス変換部240は、アドレス変換バッファ100を参照して仮想アドレスを物理アドレスへ変換する処理部である。デマップ部250は、アドレス変換バッファ100から不要になったアドレス変換情報を削除する処理部である。
ECC生成部260は、CAMRAM領域に登録するアドレス変換情報のECCビットを生成する処理部である。ECC訂正部270は、ECCビットを利用してアドレス変換情報のデータ化けの検出と訂正をおこなう処理部である。
エラーエントリ記憶部280は、CAMデータをRAM120からCAM110に転記する際にデータ化けを検出したエントリの情報を記憶する記憶部である。訂正エントリ記憶部290は、エラーエントリ記憶部280の情報を利用して訂正されたエントリ情報を記憶する記憶部である。
ここで、エラーエントリ記憶部280と訂正エントリ記憶部290とをもちいて、退避データ転記部220がCAMRAMのデータを訂正する方式について説明しておく。なお、ここでは説明を簡単におこなうためにエラーエントリ記憶部280と訂正エントリ記憶部290にはそれぞれ一つずつのエントリ情報が記憶されるものとするが、これらの記憶部が複数のエントリを記憶するように構成することもできる。
図4−1〜図4−4は、エラーエントリ記憶部280と訂正エントリ記憶部290を用いた誤り訂正について説明するための説明図である。図4−1に示すように、CAMRAMの2箇所のエントリでデータ化けが発生しており、スレッドの切り替えにともなってこれらのエントリを含む領域をCAM110へ転記している。
転記する際にエントリAとエントリBのデータ化けはECCビットを使って訂正され、CAM110の所定のエントリに格納される。このように、CAMRAMのエントリで何らかのデータ化けが発生していても、CAM110のエントリに転記された時点では正しい値に訂正される。
しかし、このままでは次回同じ領域をCAM110へ転記する場合に、再びデータ化けを訂正することが必要になるのでCAMRAMのエントリAとエントリBも修正しておくことが好ましい。CAM110のエントリへ訂正したアドレス変換情報を設定するのと同時に、CAMRAMにも同じ値を設定することも可能だが、それでは、スレッドの切り替えに要する時間が長くなってしまう可能性がある。
そこで、本実施例に係るアドレス変換バッファ制御方式では、CAMRAMの情報をCAM110へ全て転記した後にCAMRAMのデータ化けを訂正することとしている。そのために、エラーエントリ記憶部280を設けて、CAM110への転記中にデータ化けを検出したCAMRAMのエントリ情報をここに格納することとしている。
図4−1では、エラーが発生しているエントリは2つあるが、エラーエントリ記憶部280は一つのエントリ情報しか保持できないので、エラーエントリ記憶部280には最初にデータ化けを検出したエントリAの情報が格納される。
図4−2は、CAM110へのCAMデータの転記が完了した後を示している。同図に示すように、アドレス変換バッファ制御装置200は、エラーエントリ記憶部280の情報をもとにしてCAMRAMのエントリAのデータ化けを訂正している。
この例では、エラーエントリ記憶部280は一つのエントリ情報しか保持できないため、エラーエントリ記憶部280に記憶されたCAMRAMのエントリAのみが訂正される。エントリBは、この時点では訂正されず、スレッドの切り替えにともなって、この領域が次回CAM110へ転記された後に訂正されることとなる。
しかし、エントリAが固定故障していて毎回データ化けが発生していると、エントリBにはデータ化けを訂正する機会が与えられないことになる。そこで、本実施例に係るアドレス変換バッファ制御方式では、訂正エントリ記憶部290を設けて、データ化けを訂正したCAMRAMのエントリの情報をここに格納することとしている。
訂正エントリ記憶部290に登録されているエントリで再びデータ化けが発生している場合は固定故障の可能性があるため、エラーエントリ記憶部280にはデータ化けを訂正した他のエントリの情報を優先して格納する必要がある。したがって、CAMRAMからCAM110への転記中にデータ化けを検出した場合、エラーエントリ記憶部280が既に埋まっていても、訂正エントリ記憶部290に同じエントリが存在している情報は上書きして構わない。
図4−2では、エラーエントリ記憶部280の情報に基づいてエントリAのデータ化けを訂正した後に、エントリAの情報を訂正エントリ記憶部290に格納している。
図4−3は、CAMRAMのエントリAとエントリBを含む領域が再びCAM110へ転記される場面である。この例では、再びエントリAでデータ化けが発生しており、エントリBの内容は訂正されていないのでデータ化けしたままである。
エラーエントリ記憶部280には一旦エントリAの情報が格納されるが、エントリBのアドレス変換情報をCAM110へ転記する処理がおこなわれ、データ化けが検出された時点で、エントリBの情報で上書きされる。エラーエントリ記憶部280に格納されているエントリAの情報が、訂正エントリ記憶部290に存在するためである。
図4−4は、CAM110へのCAMデータの転記が完了した後を示している。同図に示すように、アドレス変換バッファ制御装置200は、エラーエントリ記憶部280の情報をもとにしてCAMRAMのエントリBのデータ化けを訂正している。
このように、エラーエントリ記憶部280を設けることにより、スレッドの切り替えにともなうデータの転記処理を迅速に完了させた後に、CAMRAMのデータ化けの修正をおこなうことができる。また、訂正エントリ記憶部290を設けることにより、固定故障したエントリを避けて他のCAMRAMエントリのデータ化けを優先して訂正することができる。
続いて、本実施例に係るアドレス変換バッファ制御装置の各種動作について説明する。まず、エントリ登録の動作について説明する。図5は、図3に示したアドレス変換バッファ制御装置200によるエントリ登録を説明するための説明図である。
同図に示すように、CAM110にアドレス変換情報を登録する場合には、RAM120のCAMRAM領域の現在実行中のスレッドに対応する領域に同じ情報を登録する。その際、データ化けの検出と訂正をおこなうためのECCビットを付加する。
CAM110に加えてCAMRAM領域にも同じ情報を登録することにより、CAMRAMの情報は常に最新の状態に保たれる。このことは、スレッド切り替えの際に、CAM110の情報をCAMRAMに退避する作業が不要であることを意味し、スレッドの高速な切り替えを実現するのに貢献する。
図6は、図3に示したアドレス変換バッファ制御装置200によるエントリ登録の処理手順を示すフローチャートである。
同図に示すように、アドレス変換情報をCAM110に登録することが必要になったならば、CAM110のLRU(Least Recently Used)情報等を参照して書き込み先のエントリを選択する(ステップS101)。
書き込み先のエントリが決まったならば、CAM110へアドレス変換情報の書き込みをおこなう(ステップS102)。そして、CAM110への書き込みと同時に、ECCビットの生成(ステップS103)とECCビットを付加したアドレス変換情報のCAMRAMへの書き込みをおこなう(ステップS104)。
次に、デマップ動作について説明する。図7は、図3に示したアドレス変換バッファ制御装置200によるデマップを説明するための説明図である。
同図に示すように、CAM110からアドレス変換情報の削除が必要になった場合には、CAM110から該当するエントリを検索し、CAM110のエントリとこれと対応するCAMRAMのエントリを同時に削除する。
CAM110に加えてCAMRAM領域の情報も削除することにより、CAMRAMの情報は常に最新の状態に保たれる。前述のように、このことは、スレッド切り替えの際に、CAM110の情報をCAMRAMに退避する作業が不要であることを意味し、スレッドの高速な切り替えを実現するのに貢献する。
なお、CAM110とこれに対応するCAMRAMの情報は同一であるので、デマップに際しては削除対象のエントリをCAMRAM側から検索してもよい。図8は、図3に示したアドレス変換バッファ制御装置200によるCAMRAM検索からのデマップを説明するための説明図である。この手順をもちいても図7と同じ効果を得ることができる。
図9は、図3に示したアドレス変換バッファ制御装置200によるデマップの処理手順を示すフローチャートである。以下、CAM110にはエントリが32個あるものとして説明をおこなうが、本発明に係るアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法は、CAM110のエントリ数がいくつであっても構わない。
同図に示すように、まず、カウンタを0に初期化する(ステップS201)。そして、カウンタが示す番号のCAM110(もしくはCAMRAM)のエントリを検索し(ステップS202)、削除対象のエントリであるかどうか比較確認する。ここで、このエントリが削除対象であった場合は(ステップS203肯定)、カウンタが示す番号のCAM110とCAMRAMのエントリを削除する(ステップS204)。このエントリが削除対象でなかった場合は(ステップS204肯定)、特に処理をおこなわない。
そして、カウンタをインクリメントして(ステップS205)、32に達していなければ(ステップS206否定)、ステップS202から処理を再開する。カウンタが32に達していたならば(ステップS206肯定)処理を終了する。
このフローチャートに示したデマップ処理は、パイプラインを用いることにより処理時間を短縮することができる。図10は、図3に示したアドレス変換バッファ制御装置200によるデマップのパイプライン処理について説明するための説明図である。
同図に示すように、一つのエントリに対するデマップ処理は3つのサイクルに分けることができる。第1のサイクル(図10で「0」で示したサイクル)は、対象のエントリの検索をおこなう処理で図9のステップS202に相当する。
第2のサイクル(図10で「1」で示したサイクル)は、削除対象のエントリであるかどうかを比較確認する処理で図9のステップS203に相当する。
第3のサイクル(図10で「2」で示したサイクル)は、第2のサイクルで削除対象のエントリであると判定された場合に実行されるもので、CAM110とCAMRAMから対象のエントリの情報を削除する処理である。この処理は、図9のステップS204に相当する。
これらのサイクルは、エントリ毎に1サイクルずれた形で実行される。具体的には、エントリ1の処理のサイクル1が完了した時点で、エントリ1の処理がサイクル2へ移行すると同時にエントリ2でサイクル1が実行される。このようにパイプライン処理することで、単純にシーケンシャルに処理を実行した場合比べて約3分の1の時間で処理を完了することができる。
次に、退避データ転記動作について説明する。退避データ転記動作とは、スレッドの切り替えに際して、新しく実行されるスレッドに対応するCAMデータをCAMRAMからCAM110へ転記する処理である。図11は、図3に示したアドレス変換バッファ制御装置200による退避データ転記処理の処理手順を示すフローチャートである。
同図に示すように、まず、エラーエントリ記憶部280をクリアし(ステップS301)、カウンタを初期化する(ステップS302)。そして、新しく実行されるスレッドに対応するCAMRAM領域からカウンタが示す番号のエントリの内容を読取り(ステップS303)、読取った情報がデータ化けをおこしていないかどうかをECCビットと使って検査する。
データ化けが検出された場合は(ステップS304Error)、当該のデータをECCビットを使って訂正する(ステップS305)。ここで、エラーエントリ記憶部280に空きエントリがある場合、もしくは、エラーエントリ記憶部280に訂正エントリ記憶部290と同じエントリ情報が格納されているエントリがある場合は(ステップS306肯定)、エラーエントリ記憶部280の当該エントリにデータ化けの訂正をおこなったCAMRAMのエントリ情報を格納する(ステップS307)。
そして、ステップS304およびステップS306でどのような分岐をしたかにかかわらず、ステップS303で読取ったデータ(データ化けが検出された場合は訂正をおこなった後のデータ)をCAM110のエントリのうち、カウンタが示す番号のエントリへ格納する(ステップS308)。
ここで、カウンタをインクリメントし(ステップS309)、32に達していなければ(ステップS310否定)、ステップS303から処理を再開する。カウンタが32に達している場合は(ステップS310肯定)、転記処理を終了して下記のCAMRAMのデータ化けの訂正処理をおこなう。
エラーエントリ記憶部280が空であるか否かを確認し、空でない場合は(ステップS311否定)、エラーエントリ記憶部280に設定されているCAMRAMのエントリのデータ化けをECCビットを使って訂正し(ステップS312)、訂正したエントリの情報を訂正エントリ記憶部290に格納する(ステップS313)。以上で、退避データ転記動作は完了する。
図12は、図3に示したアドレス変換バッファ制御装置200による退避データ転記処理について説明するためのタイムチャートである。
アドレス変換バッファ制御装置200は、Thread_IDとThread_ID_1τ(Thread_IDの1τコピー信号)を比較して、異なっている場合にスレッドが切り替わったものと判断する。そして、スレッドが切り替わった4τ後にCAMRAMからCAM110への退避データの転記を開始するCAM_COPY_GO信号が有効になる。
その5τ後にエントリ0のWrite enableが有効になり、エントリ0の情報が転記され、以下、エントリ31まで毎サイクル転記がおこなわれる。CAM110への転記がすべて完了した後、RAM write accessが有効となり、CAMRAMのデータ化けの訂正処理をおこなう。
上述してきたように、本実施例では、スレッド間での共有が困難なCAM上のデータを退避する領域をRAM上に設け、スレッドの切り替えに応じてRAM上の退避領域からCAMへCAMデータを転記するように構成したので、CAMの数や容量を増やすことなくプロセッサをマルチスレッド化することができる。
(付記1)一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、
前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御手段と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記手段と
を備えたことを特徴とするアドレス変換バッファ制御装置。
(付記2)前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第2のメモリ領域に前記退避領域を割当てることを特徴とする付記1に記載のアドレス変換バッファ制御装置。
(付記3)前記エントリ登録手段は、前期第1のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする付記1または2に記載のアドレス変換バッファ制御装置。
(付記4)アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、
前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする付記1、2または3に記載のアドレス変換バッファ制御装置。
(付記5)前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする付記4に記載のアドレス変換バッファ制御装置。
(付記6)前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、
前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第1のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする付記5に記載のアドレス変換バッファ制御装置。
(付記7)前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする付記6に記載のアドレス変換バッファ制御装置。
(付記8)前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする付記1〜7のいずれか一つに記載のアドレス変換バッファ制御装置。
(付記9)前記第1のメモリ領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第1のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ手段をさらに備えたことを特徴とする付記1〜8のいずれか一つに記載のアドレス変換バッファ制御装置。
(付記10)前記退避領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第1のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ手段をさらに備えたことを特徴とする付記1〜8のいずれか一つに記載のアドレス変換バッファ制御装置。
(付記11)前記デマップ手段は、デマップを細分化し、パイプライン処理することを特徴とする付記9または10に記載のアドレス変換バッファ制御装置。
(付記12)一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、
前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御工程と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記工程と
を含んだことを特徴とするアドレス変換バッファ制御方法。
(付記13)前記退避領域制御工程は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第2のメモリ領域に前記退避領域を割当てることを特徴とする付記12に記載のアドレス変換バッファ制御方法。
(付記14)前記エントリ登録工程は、前期第1のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする付記12または13に記載のアドレス変換バッファ制御方法。
(付記15)アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、
前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする付記12、13または14に記載のアドレス変換バッファ制御方法。
(付記16)前記退避データ転記工程は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする付記15に記載のアドレス変換バッファ制御方法。
(付記17)前記退避データ転記工程がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶工程をさらに備え、
前記退避データ転記工程は、前記退避領域のデータを前記第1のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶工程に記憶させ、当該の退避領域のデータを全て前記第1のメモリ領域へ転記した後に、前記エラーエントリ記憶工程に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする付記16に記載のアドレス変換バッファ制御方法。
(付記18)前記退避データ転記工程は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に前記エラーエントリ記憶工程に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶工程に記憶させることを特徴とする付記17に記載のアドレス変換バッファ制御方法。
(付記19)前記退避領域制御工程は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする付記12〜18のいずれか一つに記載のアドレス変換バッファ制御方法。
(付記20)前記第1のメモリ領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第1のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ工程をさらに備えたことを特徴とする付記12〜19のいずれか一つに記載のアドレス変換バッファ制御方法。
(付記21)前記退避領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第1のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ工程をさらに備えたことを特徴とする付記12〜19のいずれか一つに記載のアドレス変換バッファ制御方法。
(付記22)前記デマップ工程は、デマップを細分化し、パイプライン処理することを特徴とする付記20または21に記載のアドレス変換バッファ制御方法。
以上のように、本発明にかかるアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法は、アドレス変換バッファの制御に有用であり、特に、一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現したい場合に適している。
本実施例に係るアドレス変換バッファ制御方式の原理を説明するための説明図である。 本実施例に係るアドレス変換バッファ制御方式における誤り制御を説明するための説明図である。 本実施例に係るアドレス変換バッファ制御装置の構成を示す機能ブロック図である。 エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。 エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。 エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。 エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。 図3に示したアドレス変換バッファ制御装置によるエントリ登録を説明するための説明図である。 図3に示したアドレス変換バッファ制御装置によるエントリ登録の処理手順を示すフローチャートである。 図3に示したアドレス変換バッファ制御装置によるデマップを説明するための説明図である。 図3に示したアドレス変換バッファ制御装置によるCAMRAM検索からのデマップを説明するための説明図である。 図3に示したアドレス変換バッファ制御装置によるデマップの処理手順を示すフローチャートである。 図3に示したアドレス変換バッファ制御装置によるデマップのパイプライン処理について説明するための説明図である。 図3に示したアドレス変換バッファ制御装置による退避データ転記処理の処理手順を示すフローチャートである。 図3に示したアドレス変換バッファ制御装置による退避データ転記処理について説明するためのタイムチャートである。
符号の説明
100 アドレス変換バッファ
110 CAM
120 RAM
200 アドレス変換バッファ制御装置
210 退避領域制御部
220 退避データ転記部
230 エントリ登録部
240 アドレス変換部
250 デマップ部
260 ECC生成部
270 ECC訂正部
280 エラーエントリ記憶部
290 訂正エントリ記憶部

Claims (10)

  1. 一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、
    前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、
    前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御手段と、
    前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記手段と
    を備えたことを特徴とするアドレス変換バッファ制御装置。
  2. 前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第2のメモリ領域に前記退避領域を割当てることを特徴とする請求項1に記載のアドレス変換バッファ制御装置。
  3. 前記エントリ登録手段は、前期第1のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする請求項1または2に記載のアドレス変換バッファ制御装置。
  4. アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、
    前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする請求項1、2または3に記載のアドレス変換バッファ制御装置。
  5. 前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする請求項4に記載のアドレス変換バッファ制御装置。
  6. 前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、
    前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第1のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする請求項5に記載のアドレス変換バッファ制御装置。
  7. 前記退避データ転記手段は、前記退避領域のデータを前記第1のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする請求項6に記載のアドレス変換バッファ制御装置。
  8. 前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする請求項1〜7のいずれか一つに記載のアドレス変換バッファ制御装置。
  9. 一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第1のメモリ領域と全てのスレッドで共用可能な第2のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、
    前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、
    前記第2のメモリ領域の一部を前記第1のメモリ領域の退避領域として割当てる退避領域制御工程と、
    前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第1のメモリ領域へ転記する退避データ転記工程と
    を含んだことを特徴とするアドレス変換バッファ制御方法。
  10. アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、
    前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする請求項9に記載のアドレス変換バッファ制御方法。
JP2004219234A 2004-07-27 2004-07-27 アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法 Expired - Fee Related JP4297846B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2004219234A JP4297846B2 (ja) 2004-07-27 2004-07-27 アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法
US10/986,041 US7380097B2 (en) 2004-07-27 2004-11-12 Apparatus and method for controlling address conversion buffer
DE602004021796T DE602004021796D1 (de) 2004-07-27 2004-11-30 Vorrichtung und Verfahren zum Steuern von Adressumsetzungspufferspeicher
EP04257419A EP1622034B1 (en) 2004-07-27 2004-11-30 Apparatus and method for controlling address conversion buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004219234A JP4297846B2 (ja) 2004-07-27 2004-07-27 アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法

Publications (2)

Publication Number Publication Date
JP2006039968A true JP2006039968A (ja) 2006-02-09
JP4297846B2 JP4297846B2 (ja) 2009-07-15

Family

ID=34930857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004219234A Expired - Fee Related JP4297846B2 (ja) 2004-07-27 2004-07-27 アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法

Country Status (4)

Country Link
US (1) US7380097B2 (ja)
EP (1) EP1622034B1 (ja)
JP (1) JP4297846B2 (ja)
DE (1) DE602004021796D1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008155851A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
JP2012068840A (ja) * 2010-09-22 2012-04-05 Mitsubishi Heavy Ind Ltd アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7774658B2 (en) * 2007-01-11 2010-08-10 Hewlett-Packard Development Company, L.P. Method and apparatus to search for errors in a translation look-aside buffer
US8726248B2 (en) * 2008-06-12 2014-05-13 Oracle America, Inc. Method and apparatus for enregistering memory locations
US8122308B2 (en) * 2008-06-25 2012-02-21 Intel Corporation Securely clearing an error indicator
US9135092B2 (en) 2012-02-02 2015-09-15 International Business Machines Corporation Multicast message filtering in virtual environments
US10740029B2 (en) * 2017-11-28 2020-08-11 Advanced Micro Devices, Inc. Expandable buffer for memory transactions
US11157191B2 (en) * 2019-04-26 2021-10-26 Dell Products L.P. Intra-device notational data movement system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4727482A (en) * 1983-08-30 1988-02-23 Amdahl Corporation Apparatus for enhancing searches of data tables
JPH0322057A (ja) 1989-06-19 1991-01-30 Nec Corp 情報処理装置
US6356989B1 (en) * 1992-12-21 2002-03-12 Intel Corporation Translation lookaside buffer (TLB) arrangement wherein the TLB contents retained for a task as swapped out and reloaded when a task is rescheduled
JPH06259329A (ja) 1993-03-09 1994-09-16 Hitachi Ltd アドレス変換機構を備えた情報処理装置
US6542991B1 (en) * 1999-05-11 2003-04-01 Sun Microsystems, Inc. Multiple-thread processor with single-thread interface shared among threads
US6718494B1 (en) * 2000-12-22 2004-04-06 Intel Corporation Method and apparatus for preventing and recovering from TLB corruption by soft error

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPWO2008155851A1 (ja) * 2007-06-20 2010-08-26 富士通株式会社 演算処理装置、エントリ制御プログラムおよびエントリ制御方法
JP4812876B2 (ja) * 2007-06-20 2011-11-09 富士通株式会社 演算処理装置および演算処理装置の制御方法
US8688952B2 (en) 2007-06-20 2014-04-01 Fujitsu Limited Arithmetic processing unit and control method for evicting an entry from a TLB to another TLB
JP2012068840A (ja) * 2010-09-22 2012-04-05 Mitsubishi Heavy Ind Ltd アドレス変換検査装置、中央処理演算装置、及びアドレス変換検査方法
US9009579B2 (en) 2010-09-22 2015-04-14 Mitsubishi Heavy Industries, Ltd. Address translation checking device, central processing unit, and address translation checking method

Also Published As

Publication number Publication date
EP1622034A2 (en) 2006-02-01
EP1622034B1 (en) 2009-07-01
US7380097B2 (en) 2008-05-27
EP1622034A3 (en) 2006-11-02
JP4297846B2 (ja) 2009-07-15
DE602004021796D1 (de) 2009-08-13
US20060026380A1 (en) 2006-02-02

Similar Documents

Publication Publication Date Title
EP2275939B1 (en) Processor and address translating method
US6446171B1 (en) Method and apparatus for tracking and update of LRU algorithm using vectors
US20080005504A1 (en) Global overflow method for virtualized transactional memory
JP6140093B2 (ja) キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US7739557B2 (en) Method, system and program product for autonomous error recovery for memory devices
JP2008107983A (ja) キャッシュメモリ
JP2005234854A (ja) マルチプロセッサシステム
JP2005346168A (ja) キャッシュメモリ、システムおよびデータ格納方法
US9959044B2 (en) Memory device including risky mapping table and controlling method thereof
JP4297846B2 (ja) アドレス変換バッファ制御装置およびアドレス変換バッファ制御方法
US8499133B2 (en) Cache management for increasing performance of high-availability multi-core systems
JP5163220B2 (ja) キャッシュ制御装置、情報処理装置
WO2007088591A1 (ja) メモリアクセス制御装置およびメモリアクセス制御方法
US20170262382A1 (en) Processing device, information processing apparatus, and control method of processing device
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US20140143498A1 (en) Methods and apparatus for filtering stack data within a cache memory hierarchy
JP2008269488A (ja) ロールバック方法及び情報処理装置
CN102023845A (zh) 一种基于状态机的Cache并发访问管理方法
JPS5829187A (ja) キヤツシユメモリ制御装置
CN111008039A (zh) 一种用于提供解码指令的装置和方法
US6807602B1 (en) System and method for mapping bus addresses to memory locations utilizing access keys and checksums
US20210326265A1 (en) Tags and data for caches
JP2004038299A (ja) キャッシュメモリ装置、及び、参照履歴のビット誤り検出方法
US6546501B1 (en) Cache memory apparatus and computer readable recording medium on which a program for controlling a cache memory is recorded
JP2009199384A (ja) データ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081125

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090122

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090414

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120424

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130424

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140424

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees