(57)【要約】【課題】一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現すること。【解決手段】退避領域制御部２１０は、複数のスレッドで共有することができないＣＡＭ１１０の情報を退避する領域をＲＡＭ１２０に確保する。退避データ転記部２２０は、プロセッサ上で実行されるスレッドが切り替わると、新たに実行されたスレッドに対応する情報をＲＡＭ１２０から取得してＣＡＭ１１０へ転記する。また、ＲＡＭ１２０に退避しておく情報にＥＣＣデータを付加し、データの信頼性を確保する。【選択図】        図３
2006039968.tif 000002
【特許請求の範囲】
【請求項１】
一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、
前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御手段と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記手段と
を備えたことを特徴とするアドレス変換バッファ制御装置。
【請求項２】
前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第２のメモリ領域に前記退避領域を割当てることを特徴とする請求項１に記載のアドレス変換バッファ制御装置。
【請求項３】
前記エントリ登録手段は、前期第１のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする請求項１または２に記載のアドレス変換バッファ制御装置。
【請求項４】
アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、
前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする請求項１、２または３に記載のアドレス変換バッファ制御装置。
【請求項５】
前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする請求項４に記載のアドレス変換バッファ制御装置。
【請求項６】
前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、
前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第１のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする請求項５に記載のアドレス変換バッファ制御装置。
【請求項７】
前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする請求項６に記載のアドレス変換バッファ制御装置。
【請求項８】
前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする請求項１〜７のいずれか一つに記載のアドレス変換バッファ制御装置。
【請求項９】
一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、
前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御工程と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記工程と
を含んだことを特徴とするアドレス変換バッファ制御方法。
【請求項１０】
アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、
前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする請求項９に記載のアドレス変換バッファ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、アドレス変換バッファを制御するアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法に関し、特に一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現できるアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法に関するものである。
【背景技術】
【０００２】
仮想記憶方式を採用するコンピュータシステムは、仮想アドレスから物理アドレスへの変換をおこなうためにページテーブルと呼ばれる変換表を用いる。このページテーブルは、通常は主記憶中に置かれるが、主記憶へのアクセスはＣＰＵ（Central Processing Unit）の動作からみると低速な処理であるため、アドレス変換のたびに主記憶のページテーブルを参照していたのではシステムの性能が低下してしまう。
【０００３】
そこで、従来より、ＣＰＵ内にアドレス変換バッファ（以下、ＴＬＢ（Translation Lookaside Buffer）という。）を設けて、ここにアドレス変換の履歴をキャッシュし、主記憶中のページテーブルへのアクセスを極力減らす方式が取られている（例えば、特許文献１）。
【０００４】
近年、ＴＬＢの容量は、プログラムが利用するアドレス空間が大きくなるのにともなって増大する傾向にある。ＴＬＢの容量が小さいとＴＬＢミスが多発してシステムの性能が低下するためである。また、一つのプロセッサコア上で同時に複数のスレッドを実行できるマルチスレッドアーキテクチャのＣＰＵが一般化しつつあるが、マルチスレッド対応のＣＰＵにおいては、スレッド分のアドレス変換の履歴を保持する必要があるため、ＴＬＢに必要とされる容量はさらに大きくなっている。
【０００５】
【特許文献１】特開平６−２５９３２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＴＬＢの容量を増やすにはＴＬＢの実装面積を大きくすることが必要となり、ＣＰＵ製造の難易度の上昇やコストの増大を招くという問題がある。特に、マルチスレッドアーキテクチャのＣＰＵにおいてはスレッド間で共有できない資源が多くあり、ＴＬＢに大きな実装面積を割当てることは困難である。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ＴＬＢの容量を増やすことなくマルチスレッドアーキテクチャに対応可能なアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、本発明は、一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御手段と、前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記手段とを備えたことを特徴とする。
【０００９】
また、本発明は、一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御工程と、前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記工程とを含んだことを特徴とする。
【００１０】
この発明によれば、第２のメモリ領域に第１のメモリ領域の情報を退避する領域を複数確保し、スレッドの切り替えにともなって第２のメモリ領域に退避した情報を第１のメモリ領域へ転記するように構成したので、第１のメモリ領域の容量を増やすことなくプロセッサのマルチスレッド化に対応することができる。
【００１１】
また、本発明は、上記の発明において、前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第２のメモリ領域に前記退避領域を割当てることを特徴とする。
【００１２】
この発明によれば、プロセッサ上で実行可能なスレッドの数と同じ数の退避領域を第２のメモリ領域に確保するように構成したので、プロセッサ上で実行可能なスレッドの数がいくつであっても対応することができる。
【００１３】
また、本発明は、上記の発明において、前記エントリ登録手段は、前期第１のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする。
【００１４】
この発明によれば、第１のメモリ領域へ登録する情報を第２のメモリ領域の退避領域にも登録するように構成したので、スレッドが切り替わった際に第１のメモリ領域の情報を退避領域へ転記する必要がなく、スレッドの切り替え処理を高速におこなうことができる。
【００１５】
また、本発明は、上記の発明において、アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする。
【００１６】
また、本発明は、上記の発明において、アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする。
【００１７】
この発明によれば、退避領域へ格納する情報に誤り訂正情報を付加するように構成したので、退避領域の情報の信頼性を高めることができる。
【００１８】
また、本発明は、上記の発明において、前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする。
【００１９】
この発明によれば、退避領域へ退避していた情報を第１のメモリ領域へ転記する際に誤り訂正情報をもちいてデータ化けの検出と訂正をおこなうように構成したので、第１のメモリ領域の情報が正しいことを保証することができる。
【００２０】
また、本発明は、上記の発明において、前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第１のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする。
【００２１】
この発明によれば、退避領域へ退避していた情報を第１のメモリ領域へ転記する際にデータ化けを検出したエントリの情報をエラーエントリ記憶手段に記憶しておき、転記が完了した後にエラーエントリ記憶手段の情報を基にして退避領域のデータ化けの検出と訂正をおこなうように構成したので、第１のメモリ領域へ転記処理を高速に完了することができ、また、退避領域のデータ化けの検出と訂正を効率的におこなうことができる。
【００２２】
また、本発明は、上記の発明において、前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする。
【００２３】
この発明によれば、前回データ化けを訂正していないエントリを優先して退避領域のデータ化けの検出と訂正をおこなうように構成したので、退避領域の一部が固定故障していても他の場所のデータ化けを適切に訂正することができる。
【００２４】
また、本発明は、上記の発明において、前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする。
【００２５】
この発明によれば、プロセッサが複数のスレッドを実行するモードでない場合には第２のメモリ領域に退避領域を確保しないように構成したので、第２のメモリ領域を有効に活用することができる。
【発明の効果】
【００２６】
本発明によれば、第２のメモリ領域に第１のメモリ領域の情報を退避する領域を複数確保し、スレッドの切り替えにともなって第２のメモリ領域に退避した情報を第１のメモリ領域へ転記するように構成したので、第１のメモリ領域の容量を増やすことなくプロセッサのマルチスレッド化に対応することができるという効果を奏する。
【００２７】
また、本発明によれば、プロセッサ上で実行可能なスレッドの数と同じ数の退避領域を第２のメモリ領域に確保するように構成したので、プロセッサ上で実行可能なスレッドの数がいくつであっても対応することができるという効果を奏する。
【００２８】
また、本発明によれば、第１のメモリ領域へ登録する情報を第２のメモリ領域の退避領域にも登録するように構成したので、スレッドが切り替わった際に第１のメモリ領域の情報を退避領域へ転記する必要がなく、スレッドの切り替え処理を高速におこなうことができるという効果を奏する。
【００２９】
また、本発明によれば、退避領域へ格納する情報に誤り訂正情報を付加するように構成したので、退避領域の情報の信頼性を高めることができるという効果を奏する。
【００３０】
また、本発明によれば、退避領域へ退避していた情報を第１のメモリ領域へ転記する際に誤り訂正情報をもちいてデータ化けの検出と訂正をおこなうように構成したので、第１のメモリ領域の情報が正しいことを保証することができるという効果を奏する。
【００３１】
また、本発明によれば、退避領域へ退避していた情報を第１のメモリ領域へ転記する際にデータ化けを検出したエントリの情報をエラーエントリ記憶手段に記憶しておき、転記が完了した後にエラーエントリ記憶手段の情報を基にして退避領域のデータ化けの検出と訂正をおこなうように構成したので、第１のメモリ領域へ転記処理を高速に完了することができ、また、退避領域のデータ化けの検出と訂正を効率的におこなうことができるという効果を奏する。
【００３２】
また、本発明によれば、前回データ化けを訂正していないエントリを優先して退避領域のデータ化けの検出と訂正をおこなうように構成したので、退避領域の一部が固定故障していても他の場所のデータ化けを適切に訂正することができるという効果を奏する。
【００３３】
また、本発明によれば、プロセッサが複数のスレッドを実行するモードでない場合には第２のメモリ領域に退避領域を確保しないように構成したので、第２のメモリ領域を有効に活用することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３４】
以下に添付図面を参照して、この発明に係るアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法の好適な実施の形態を詳細に説明する。なお、ここではスレッド間で共有ができないＴＬＢのメモリ領域の例としてＣＡＭ（Content Addressable Memory）を有し、スレッド間で共有可能なＴＬＢのメモリ領域の例としてＲＡＭ（Random Access Memory）を有するプロセッサを例として説明をおこなうこととする。
【実施例】
【００３５】
まず、本実施例に係るアドレス変換バッファ制御方式の原理について説明する。図１は、本実施例に係るアドレス変換バッファ制御方式の原理を説明するための説明図である。
【００３６】
同図に示すように、本実施例に係るアドレス変換バッファ制御方式を適用するマルチスレッドアーキテクチャのプロセッサのＴＬＢにはＣＡＭと呼ばれるメモリ領域とＲＡＭと呼ばれるメモリ領域の２つのメモリ領域が存在する。
【００３７】
ＣＡＭは、アドレス変換を高速におこなうことができる構造をもったメモリ領域であり、様々なページサイズの情報を登録することができる。また、ラッチベースで作られており、データ反転等のエラーが発生しにくい。このため、ＣＡＭにはロックエントリやグローバルビットといったシステムの動作に重要な意味をもつ情報も格納されるが、実装面積に対する記憶領域が小さく、大量の情報を格納することができない。
【００３８】
ＲＡＭは、ＣＡＭに比べるとアドレス変換に要する時間が長くなり、格納できるページサイズも１種類に限られるが、実装面積に対する記憶領域が大きい。この実装面積に対する記憶領域の比率の問題から、プロセッサ上で同時に動作するスレッドの数に応じてＲＡＭの領域は拡張し易いのに対し、ＣＡＭの領域は拡張が困難になっている。
【００３９】
そこで、本実施例に係るアドレス変換バッファ制御方式では、ＲＡＭの一部をＣＡＭの退避領域に割り当て、スレッドが切り替わる度にこの退避領域の情報をＣＡＭに転記する方式をとることとした。ＲＡＭをＣＡＭデータの退避先としたのは、比較的容量が大きく、ＣＡＭと同様にプロセッサ上に存在するためデータの転記を高速におこなうことができるためである。
【００４０】
なお、マルチスレッドアーキテクチャのプロセッサには２つの方式があり、ＳＭＴ（Simultaneous Multi Thread）方式では、実際に一つのコア上で複数のスレッドが動作する。もう一方の方式であるＶＭＴ（Vertical Multi Thread）方式では、通常のプロセッサよりも遥かに高速かつ頻繁にスレッドの切り替えが可能であるが、一つの時点では実際には一つのスレッドしか動作しない。
【００４１】
このＶＭＴ方式のマルチスレッドアーキテクチャのプロセッサでは、同時に動作するスレッドは一つに限られるため、本実施例に係るアドレス変換バッファ制御方式のようにＣＡＭの内容をスレッドの切り替えに応じて書き換える方式を有効に適用することができる。
【００４２】
本実施例に係るアドレス変換バッファ制御方式では、図１に示すように、プロセッサ上で動作するスレッド数分のＣＡＭの退避領域（以下、「ＣＡＭＲＡＭ」という。）をＲＡＭの一部に確保する。そして、プロセッサ上でスレッド０が動作している間は、ＣＡＭにスレッド０に対応する情報を格納し、ＣＡＭに対して新たなエントリが登録された場合には、ＣＡＭＲＡＭのスレッド０に対応する領域にも同じエントリを登録する。
【００４３】
このように、ＣＡＭの内容とＣＡＭＲＡＭの内容が、一致するように制御することにより、スレッドの切り替え時にＣＡＭの内容をＣＡＭＲＡＭに退避する必要がなくなり、スレッドの切り替えにともなう処理を高速におこなうことができる。
【００４４】
プロセス上で動作するスレッドがスレッド０からスレッド１に切り替わった場合は、ＣＡＭＲＡＭのスレッド１に対応する領域の内容をＣＡＭに転記する。このように、スレッドの切り替えにともなってＣＡＭＲＡＭの内容をＣＡＭに転記することにより、ＣＡＭにはプロセッサ上で動作しているスレッドに対応した情報が常に格納され、ＣＡＭの数や容量を増やすことなくマルチスレッドに対応することができることになる。
【００４５】
ところで、既に述べたように、ＣＡＭはラッチベースで作られることが多くデータ反転等のエラーが発生しにくいのに対して、ＲＡＭにはこのような特徴はない。ＣＡＭには、データ化けが発生すると直ちにシステムダウンのような重大な障害が発生するような重要なデータが収められているため、ＣＡＭのデータをＲＡＭに退避することは信頼性の上で問題がある。
【００４６】
そこで、本実施例に係るアドレス変換バッファ制御方式では、ＲＡＭに退避しているデータに対する誤り制御をおこなうこととしている。図２は、本実施例に係るアドレス変換バッファ制御方式における誤り制御を説明するための説明図である。
【００４７】
同図に示すように、ＣＡＭＲＡＭに新規のエントリを登録する場合には、データ化けの検出と訂正が可能なＥＣＣビット付加して登録をおこなう。そして、スレッドの切り替えに応じて、ＣＡＭＲＡＭの内容をＣＡＭに転記する際にこのＥＣＣビットを使用してデータ化けの検出と訂正をおこなう。
【００４８】
このようにＥＣＣビットを付加することにより、ＣＡＭデータの信頼性を高め、システム障害の発生を防止することができる。
【００４９】
次に、本実施例に係るアドレス変換バッファ制御装置の構成について説明する。図３は、本実施例に係るアドレス変換バッファ制御装置の構成を示す機能ブロック図である。同図に示すように、アドレス変換バッファ制御装置２００は、アドレス変換バッファ１００と接続された構成をとる。
【００５０】
アドレス変換バッファ１００は、仮想アドレスの変換履歴を記憶する記憶部であり、ＣＡＭ１１０とＲＡＭ１２０という２つのメモリ領域を有する。ＣＡＭ１１０は、容量が比較的小さいメモリ領域であり、一つのスレッド分の情報しか保持することができない。ＲＡＭ１２０は、容量が比較的大きいメモリ領域であり、プロセッサ上で動作可能なスレッド数分の情報を保持することができる。
【００５１】
アドレス変換バッファ制御装置２００は、アドレス変換バッファ１００を制御する制御装置であり、退避領域制御部２１０と、退避データ転記部２２０と、エントリ登録部２３０と、アドレス変換部２４０と、デマップ部２５０と、ＥＣＣ生成部２６０と、ＥＣＣ訂正部２７０と、エラーエントリ記憶部２８０と、訂正エントリ記憶部２９０とを有する。
【００５２】
退避領域制御部２１０は、ＣＡＭ１１０の情報を当該のプロセッサ上で実行可能なスレッド数分だけ格納できる領域をＲＡＭ１２０に確保する制御部である。なお、退避領域制御部２１０は、プロセッサが一つのスレッドのみを実行するモードで動作している場合にはＲＡＭ１２０にＣＡＭデータの退避領域を確保せず、ＲＡＭ１２０の全領域をＲＡＭデータの格納領域として使用できるようにする。
【００５３】
プロセッサがマルチスレッド対応のモードで動作しているか否かはアクセスアドレスの最上位ビットで制御され、マルチスレッド動作時には最上位ビットが０固定となる。
【００５４】
退避データ転記部２２０は、スレッドの切り替えを検知して、新しいスレッドに対応するＣＡＭデータをＲＡＭ１２０からＣＡＭ１１０に転記する制御部である。退避データ転記部２２０は、転記時にＥＣＣビットを使用してＣＡＭデータのデータ化けの検出をおこない、データ化けを発見した場合は訂正処理をおこなう。
【００５５】
エントリ登録部２３０は、新しいアドレス変換情報をアドレス変換バッファ１００に登録する処理部である。登録先がＣＡＭ１１０の場合は、アドレス変換情報にＥＣＣビットを付加したものをＲＡＭ１２０のＣＡＭＲＡＭ領域にも登録する。
【００５６】
アドレス変換部２４０は、アドレス変換バッファ１００を参照して仮想アドレスを物理アドレスへ変換する処理部である。デマップ部２５０は、アドレス変換バッファ１００から不要になったアドレス変換情報を削除する処理部である。
【００５７】
ＥＣＣ生成部２６０は、ＣＡＭＲＡＭ領域に登録するアドレス変換情報のＥＣＣビットを生成する処理部である。ＥＣＣ訂正部２７０は、ＥＣＣビットを利用してアドレス変換情報のデータ化けの検出と訂正をおこなう処理部である。
【００５８】
エラーエントリ記憶部２８０は、ＣＡＭデータをＲＡＭ１２０からＣＡＭ１１０に転記する際にデータ化けを検出したエントリの情報を記憶する記憶部である。訂正エントリ記憶部２９０は、エラーエントリ記憶部２８０の情報を利用して訂正されたエントリ情報を記憶する記憶部である。
【００５９】
ここで、エラーエントリ記憶部２８０と訂正エントリ記憶部２９０とをもちいて、退避データ転記部２２０がＣＡＭＲＡＭのデータを訂正する方式について説明しておく。なお、ここでは説明を簡単におこなうためにエラーエントリ記憶部２８０と訂正エントリ記憶部２９０にはそれぞれ一つずつのエントリ情報が記憶されるものとするが、これらの記憶部が複数のエントリを記憶するように構成することもできる。
【００６０】
図４−１〜図４−４は、エラーエントリ記憶部２８０と訂正エントリ記憶部２９０を用いた誤り訂正について説明するための説明図である。図４−１に示すように、ＣＡＭＲＡＭの２箇所のエントリでデータ化けが発生しており、スレッドの切り替えにともなってこれらのエントリを含む領域をＣＡＭ１１０へ転記している。
【００６１】
転記する際にエントリＡとエントリＢのデータ化けはＥＣＣビットを使って訂正され、ＣＡＭ１１０の所定のエントリに格納される。このように、ＣＡＭＲＡＭのエントリで何らかのデータ化けが発生していても、ＣＡＭ１１０のエントリに転記された時点では正しい値に訂正される。
【００６２】
しかし、このままでは次回同じ領域をＣＡＭ１１０へ転記する場合に、再びデータ化けを訂正することが必要になるのでＣＡＭＲＡＭのエントリＡとエントリＢも修正しておくことが好ましい。ＣＡＭ１１０のエントリへ訂正したアドレス変換情報を設定するのと同時に、ＣＡＭＲＡＭにも同じ値を設定することも可能だが、それでは、スレッドの切り替えに要する時間が長くなってしまう可能性がある。
【００６３】
そこで、本実施例に係るアドレス変換バッファ制御方式では、ＣＡＭＲＡＭの情報をＣＡＭ１１０へ全て転記した後にＣＡＭＲＡＭのデータ化けを訂正することとしている。そのために、エラーエントリ記憶部２８０を設けて、ＣＡＭ１１０への転記中にデータ化けを検出したＣＡＭＲＡＭのエントリ情報をここに格納することとしている。
【００６４】
図４−１では、エラーが発生しているエントリは２つあるが、エラーエントリ記憶部２８０は一つのエントリ情報しか保持できないので、エラーエントリ記憶部２８０には最初にデータ化けを検出したエントリＡの情報が格納される。
【００６５】
図４−２は、ＣＡＭ１１０へのＣＡＭデータの転記が完了した後を示している。同図に示すように、アドレス変換バッファ制御装置２００は、エラーエントリ記憶部２８０の情報をもとにしてＣＡＭＲＡＭのエントリＡのデータ化けを訂正している。
【００６６】
この例では、エラーエントリ記憶部２８０は一つのエントリ情報しか保持できないため、エラーエントリ記憶部２８０に記憶されたＣＡＭＲＡＭのエントリＡのみが訂正される。エントリＢは、この時点では訂正されず、スレッドの切り替えにともなって、この領域が次回ＣＡＭ１１０へ転記された後に訂正されることとなる。
【００６７】
しかし、エントリＡが固定故障していて毎回データ化けが発生していると、エントリＢにはデータ化けを訂正する機会が与えられないことになる。そこで、本実施例に係るアドレス変換バッファ制御方式では、訂正エントリ記憶部２９０を設けて、データ化けを訂正したＣＡＭＲＡＭのエントリの情報をここに格納することとしている。
【００６８】
訂正エントリ記憶部２９０に登録されているエントリで再びデータ化けが発生している場合は固定故障の可能性があるため、エラーエントリ記憶部２８０にはデータ化けを訂正した他のエントリの情報を優先して格納する必要がある。したがって、ＣＡＭＲＡＭからＣＡＭ１１０への転記中にデータ化けを検出した場合、エラーエントリ記憶部２８０が既に埋まっていても、訂正エントリ記憶部２９０に同じエントリが存在している情報は上書きして構わない。
【００６９】
図４−２では、エラーエントリ記憶部２８０の情報に基づいてエントリＡのデータ化けを訂正した後に、エントリＡの情報を訂正エントリ記憶部２９０に格納している。
【００７０】
図４−３は、ＣＡＭＲＡＭのエントリＡとエントリＢを含む領域が再びＣＡＭ１１０へ転記される場面である。この例では、再びエントリＡでデータ化けが発生しており、エントリＢの内容は訂正されていないのでデータ化けしたままである。
【００７１】
エラーエントリ記憶部２８０には一旦エントリＡの情報が格納されるが、エントリＢのアドレス変換情報をＣＡＭ１１０へ転記する処理がおこなわれ、データ化けが検出された時点で、エントリＢの情報で上書きされる。エラーエントリ記憶部２８０に格納されているエントリＡの情報が、訂正エントリ記憶部２９０に存在するためである。
【００７２】
図４−４は、ＣＡＭ１１０へのＣＡＭデータの転記が完了した後を示している。同図に示すように、アドレス変換バッファ制御装置２００は、エラーエントリ記憶部２８０の情報をもとにしてＣＡＭＲＡＭのエントリＢのデータ化けを訂正している。
【００７３】
このように、エラーエントリ記憶部２８０を設けることにより、スレッドの切り替えにともなうデータの転記処理を迅速に完了させた後に、ＣＡＭＲＡＭのデータ化けの修正をおこなうことができる。また、訂正エントリ記憶部２９０を設けることにより、固定故障したエントリを避けて他のＣＡＭＲＡＭエントリのデータ化けを優先して訂正することができる。
【００７４】
続いて、本実施例に係るアドレス変換バッファ制御装置の各種動作について説明する。まず、エントリ登録の動作について説明する。図５は、図３に示したアドレス変換バッファ制御装置２００によるエントリ登録を説明するための説明図である。
【００７５】
同図に示すように、ＣＡＭ１１０にアドレス変換情報を登録する場合には、ＲＡＭ１２０のＣＡＭＲＡＭ領域の現在実行中のスレッドに対応する領域に同じ情報を登録する。その際、データ化けの検出と訂正をおこなうためのＥＣＣビットを付加する。
【００７６】
ＣＡＭ１１０に加えてＣＡＭＲＡＭ領域にも同じ情報を登録することにより、ＣＡＭＲＡＭの情報は常に最新の状態に保たれる。このことは、スレッド切り替えの際に、ＣＡＭ１１０の情報をＣＡＭＲＡＭに退避する作業が不要であることを意味し、スレッドの高速な切り替えを実現するのに貢献する。
【００７７】
図６は、図３に示したアドレス変換バッファ制御装置２００によるエントリ登録の処理手順を示すフローチャートである。
【００７８】
同図に示すように、アドレス変換情報をＣＡＭ１１０に登録することが必要になったならば、ＣＡＭ１１０のＬＲＵ（Least Recently Used）情報等を参照して書き込み先のエントリを選択する（ステップＳ１０１）。
【００７９】
書き込み先のエントリが決まったならば、ＣＡＭ１１０へアドレス変換情報の書き込みをおこなう（ステップＳ１０２）。そして、ＣＡＭ１１０への書き込みと同時に、ＥＣＣビットの生成（ステップＳ１０３）とＥＣＣビットを付加したアドレス変換情報のＣＡＭＲＡＭへの書き込みをおこなう（ステップＳ１０４）。
【００８０】
次に、デマップ動作について説明する。図７は、図３に示したアドレス変換バッファ制御装置２００によるデマップを説明するための説明図である。
【００８１】
同図に示すように、ＣＡＭ１１０からアドレス変換情報の削除が必要になった場合には、ＣＡＭ１１０から該当するエントリを検索し、ＣＡＭ１１０のエントリとこれと対応するＣＡＭＲＡＭのエントリを同時に削除する。
【００８２】
ＣＡＭ１１０に加えてＣＡＭＲＡＭ領域の情報も削除することにより、ＣＡＭＲＡＭの情報は常に最新の状態に保たれる。前述のように、このことは、スレッド切り替えの際に、ＣＡＭ１１０の情報をＣＡＭＲＡＭに退避する作業が不要であることを意味し、スレッドの高速な切り替えを実現するのに貢献する。
【００８３】
なお、ＣＡＭ１１０とこれに対応するＣＡＭＲＡＭの情報は同一であるので、デマップに際しては削除対象のエントリをＣＡＭＲＡＭ側から検索してもよい。図８は、図３に示したアドレス変換バッファ制御装置２００によるＣＡＭＲＡＭ検索からのデマップを説明するための説明図である。この手順をもちいても図７と同じ効果を得ることができる。
【００８４】
図９は、図３に示したアドレス変換バッファ制御装置２００によるデマップの処理手順を示すフローチャートである。以下、ＣＡＭ１１０にはエントリが３２個あるものとして説明をおこなうが、本発明に係るアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法は、ＣＡＭ１１０のエントリ数がいくつであっても構わない。
【００８５】
同図に示すように、まず、カウンタを０に初期化する（ステップＳ２０１）。そして、カウンタが示す番号のＣＡＭ１１０（もしくはＣＡＭＲＡＭ）のエントリを検索し（ステップＳ２０２）、削除対象のエントリであるかどうか比較確認する。ここで、このエントリが削除対象であった場合は（ステップＳ２０３肯定）、カウンタが示す番号のＣＡＭ１１０とＣＡＭＲＡＭのエントリを削除する（ステップＳ２０４）。このエントリが削除対象でなかった場合は（ステップＳ２０４肯定）、特に処理をおこなわない。
【００８６】
そして、カウンタをインクリメントして（ステップＳ２０５）、３２に達していなければ（ステップＳ２０６否定）、ステップＳ２０２から処理を再開する。カウンタが３２に達していたならば（ステップＳ２０６肯定）処理を終了する。
【００８７】
このフローチャートに示したデマップ処理は、パイプラインを用いることにより処理時間を短縮することができる。図１０は、図３に示したアドレス変換バッファ制御装置２００によるデマップのパイプライン処理について説明するための説明図である。
【００８８】
同図に示すように、一つのエントリに対するデマップ処理は３つのサイクルに分けることができる。第１のサイクル（図１０で「０」で示したサイクル）は、対象のエントリの検索をおこなう処理で図９のステップＳ２０２に相当する。
【００８９】
第２のサイクル（図１０で「１」で示したサイクル）は、削除対象のエントリであるかどうかを比較確認する処理で図９のステップＳ２０３に相当する。
【００９０】
第３のサイクル（図１０で「２」で示したサイクル）は、第２のサイクルで削除対象のエントリであると判定された場合に実行されるもので、ＣＡＭ１１０とＣＡＭＲＡＭから対象のエントリの情報を削除する処理である。この処理は、図９のステップＳ２０４に相当する。
【００９１】
これらのサイクルは、エントリ毎に１サイクルずれた形で実行される。具体的には、エントリ１の処理のサイクル１が完了した時点で、エントリ１の処理がサイクル２へ移行すると同時にエントリ２でサイクル１が実行される。このようにパイプライン処理することで、単純にシーケンシャルに処理を実行した場合比べて約３分の１の時間で処理を完了することができる。
【００９２】
次に、退避データ転記動作について説明する。退避データ転記動作とは、スレッドの切り替えに際して、新しく実行されるスレッドに対応するＣＡＭデータをＣＡＭＲＡＭからＣＡＭ１１０へ転記する処理である。図１１は、図３に示したアドレス変換バッファ制御装置２００による退避データ転記処理の処理手順を示すフローチャートである。
【００９３】
同図に示すように、まず、エラーエントリ記憶部２８０をクリアし（ステップＳ３０１）、カウンタを初期化する（ステップＳ３０２）。そして、新しく実行されるスレッドに対応するＣＡＭＲＡＭ領域からカウンタが示す番号のエントリの内容を読取り（ステップＳ３０３）、読取った情報がデータ化けをおこしていないかどうかをＥＣＣビットと使って検査する。
【００９４】
データ化けが検出された場合は（ステップＳ３０４Ｅｒｒｏｒ）、当該のデータをＥＣＣビットを使って訂正する（ステップＳ３０５）。ここで、エラーエントリ記憶部２８０に空きエントリがある場合、もしくは、エラーエントリ記憶部２８０に訂正エントリ記憶部２９０と同じエントリ情報が格納されているエントリがある場合は（ステップＳ３０６肯定）、エラーエントリ記憶部２８０の当該エントリにデータ化けの訂正をおこなったＣＡＭＲＡＭのエントリ情報を格納する（ステップＳ３０７）。
【００９５】
そして、ステップＳ３０４およびステップＳ３０６でどのような分岐をしたかにかかわらず、ステップＳ３０３で読取ったデータ（データ化けが検出された場合は訂正をおこなった後のデータ）をＣＡＭ１１０のエントリのうち、カウンタが示す番号のエントリへ格納する（ステップＳ３０８）。
【００９６】
ここで、カウンタをインクリメントし（ステップＳ３０９）、３２に達していなければ（ステップＳ３１０否定）、ステップＳ３０３から処理を再開する。カウンタが３２に達している場合は（ステップＳ３１０肯定）、転記処理を終了して下記のＣＡＭＲＡＭのデータ化けの訂正処理をおこなう。
【００９７】
エラーエントリ記憶部２８０が空であるか否かを確認し、空でない場合は（ステップＳ３１１否定）、エラーエントリ記憶部２８０に設定されているＣＡＭＲＡＭのエントリのデータ化けをＥＣＣビットを使って訂正し（ステップＳ３１２）、訂正したエントリの情報を訂正エントリ記憶部２９０に格納する（ステップＳ３１３）。以上で、退避データ転記動作は完了する。
【００９８】
図１２は、図３に示したアドレス変換バッファ制御装置２００による退避データ転記処理について説明するためのタイムチャートである。
【００９９】
アドレス変換バッファ制御装置２００は、Ｔｈｒｅａｄ＿ＩＤとＴｈｒｅａｄ＿ＩＤ＿１τ（Ｔｈｒｅａｄ＿ＩＤの１τコピー信号）を比較して、異なっている場合にスレッドが切り替わったものと判断する。そして、スレッドが切り替わった４τ後にＣＡＭＲＡＭからＣＡＭ１１０への退避データの転記を開始するＣＡＭ＿ＣＯＰＹ＿ＧＯ信号が有効になる。
【０１００】
その５τ後にエントリ０のＷｒｉｔｅ  ｅｎａｂｌｅが有効になり、エントリ０の情報が転記され、以下、エントリ３１まで毎サイクル転記がおこなわれる。ＣＡＭ１１０への転記がすべて完了した後、ＲＡＭ  ｗｒｉｔｅ  ａｃｃｅｓｓが有効となり、ＣＡＭＲＡＭのデータ化けの訂正処理をおこなう。
【０１０１】
上述してきたように、本実施例では、スレッド間での共有が困難なＣＡＭ上のデータを退避する領域をＲＡＭ上に設け、スレッドの切り替えに応じてＲＡＭ上の退避領域からＣＡＭへＣＡＭデータを転記するように構成したので、ＣＡＭの数や容量を増やすことなくプロセッサをマルチスレッド化することができる。
【０１０２】
（付記１）一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御装置であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録手段と、
前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御手段と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記手段と
を備えたことを特徴とするアドレス変換バッファ制御装置。
【０１０３】
（付記２）前記退避領域制御手段は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第２のメモリ領域に前記退避領域を割当てることを特徴とする付記１に記載のアドレス変換バッファ制御装置。
【０１０４】
（付記３）前記エントリ登録手段は、前期第１のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする付記１または２に記載のアドレス変換バッファ制御装置。
【０１０５】
（付記４）アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成手段をさらに備え、
前記エントリ登録手段は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成手段により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする付記１、２または３に記載のアドレス変換バッファ制御装置。
【０１０６】
（付記５）前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする付記４に記載のアドレス変換バッファ制御装置。
【０１０７】
（付記６）前記退避データ転記手段がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶手段をさらに備え、
前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶手段に記憶させ、当該の退避領域のデータを全て前記第１のメモリ領域へ転記した後に、前記エラーエントリ記憶手段に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする付記５に記載のアドレス変換バッファ制御装置。
【０１０８】
（付記７）前記退避データ転記手段は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に前記エラーエントリ記憶手段に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶手段に記憶させることを特徴とする付記６に記載のアドレス変換バッファ制御装置。
【０１０９】
（付記８）前記退避領域制御手段は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする付記１〜７のいずれか一つに記載のアドレス変換バッファ制御装置。
【０１１０】
（付記９）前記第１のメモリ領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第１のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ手段をさらに備えたことを特徴とする付記１〜８のいずれか一つに記載のアドレス変換バッファ制御装置。
【０１１１】
（付記１０）前記退避領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第１のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ手段をさらに備えたことを特徴とする付記１〜８のいずれか一つに記載のアドレス変換バッファ制御装置。
【０１１２】
（付記１１）前記デマップ手段は、デマップを細分化し、パイプライン処理することを特徴とする付記９または１０に記載のアドレス変換バッファ制御装置。
【０１１３】
（付記１２）一つのコア上で同時に複数のスレッドを実行できるプロセッサ上に構成され、一つのスレッドからのみ利用可能な第１のメモリ領域と全てのスレッドで共用可能な第２のメモリ領域からなるアドレス変換バッファを制御するアドレス変換バッファ制御方法であって、
前記アドレス変換バッファのエントリにアドレス変換情報を登録するエントリ登録工程と、
前記第２のメモリ領域の一部を前記第１のメモリ領域の退避領域として割当てる退避領域制御工程と、
前記プロセッサが実行するスレッドの切り替えにともなって前記退避領域のデータを前記第１のメモリ領域へ転記する退避データ転記工程と
を含んだことを特徴とするアドレス変換バッファ制御方法。
【０１１４】
（付記１３）前記退避領域制御工程は、前記プロセッサ上で同時に実行可能なスレッド毎に前記第２のメモリ領域に前記退避領域を割当てることを特徴とする付記１２に記載のアドレス変換バッファ制御方法。
【０１１５】
（付記１４）前記エントリ登録工程は、前期第１のメモリ領域へアドレス変換情報を登録する際に、前記プロセッサ上で実行中のスレッドに対応する前記退避領域へも前記アドレス変換情報を登録することを特徴とする付記１２または１３に記載のアドレス変換バッファ制御方法。
【０１１６】
（付記１５）アドレス変換情報のデータ化けの検出と訂正が可能な誤り訂正情報を生成する誤り訂正情報生成工程をさらに含み、
前記エントリ登録工程は、前記退避領域へアドレス変換情報を登録する際に、前記誤り訂正情報生成工程により生成された当該アドレス変換情報の誤り訂正情報を付加して登録することを特徴とする付記１２、１３または１４に記載のアドレス変換バッファ制御方法。
【０１１７】
（付記１６）前記退避データ転記工程は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に、前記誤り訂正情報を用いてデータ化けの検出と訂正をおこなうことを特徴とする付記１５に記載のアドレス変換バッファ制御方法。
【０１１８】
（付記１７）前記退避データ転記工程がデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を記憶保持するエラーエントリ記憶工程をさらに備え、
前記退避データ転記工程は、前記退避領域のデータを前記第１のメモリ領域へ転記する際にデータ化けを検出したアドレス変換情報の前記退避領域における格納場所を前記エラーエントリ記憶工程に記憶させ、当該の退避領域のデータを全て前記第１のメモリ領域へ転記した後に、前記エラーエントリ記憶工程に記憶させた情報を基にして前記退避領域のデータ化けの訂正をおこなうことを特徴とする付記１６に記載のアドレス変換バッファ制御方法。
【０１１９】
（付記１８）前記退避データ転記工程は、前記退避領域のデータを前記第１のメモリ領域へ転記する際に前記エラーエントリ記憶工程に記憶できる数よりも多くのデータ化けを検出した場合に、前回データ化けを検出していないアドレス変換情報の格納場所を優先して前記エラーエントリ記憶工程に記憶させることを特徴とする付記１７に記載のアドレス変換バッファ制御方法。
【０１２０】
（付記１９）前記退避領域制御工程は、プロセッサが複数のスレッドを実行しているか否かを検知し、複数のスレッドを実行していない場合は前記退避領域の割当てをおこなわないことを特徴とする付記１２〜１８のいずれか一つに記載のアドレス変換バッファ制御方法。
【０１２１】
（付記２０）前記第１のメモリ領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第１のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ工程をさらに備えたことを特徴とする付記１２〜１９のいずれか一つに記載のアドレス変換バッファ制御方法。
【０１２２】
（付記２１）前記退避領域の情報をマスタデータとしてデマップ対象のエントリを検索し、前記第１のメモリ領域と前記退避領域の両方からデマップ対象のエントリを削除するデマップ工程をさらに備えたことを特徴とする付記１２〜１９のいずれか一つに記載のアドレス変換バッファ制御方法。
【０１２３】
（付記２２）前記デマップ工程は、デマップを細分化し、パイプライン処理することを特徴とする付記２０または２１に記載のアドレス変換バッファ制御方法。
【産業上の利用可能性】
【０１２４】
以上のように、本発明にかかるアドレス変換バッファ制御装置およびアドレス変換バッファ制御方法は、アドレス変換バッファの制御に有用であり、特に、一つのコア上で同時に複数のスレッドを実行できるプロセッサをアドレス変換バッファの容量を増大させることなく実現したい場合に適している。
【図面の簡単な説明】
【０１２５】
【図１】本実施例に係るアドレス変換バッファ制御方式の原理を説明するための説明図である。
【図２】本実施例に係るアドレス変換バッファ制御方式における誤り制御を説明するための説明図である。
【図３】本実施例に係るアドレス変換バッファ制御装置の構成を示す機能ブロック図である。
【図４−１】エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。
【図４−２】エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。
【図４−３】エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。
【図４−４】エラーエントリ記憶部と訂正エントリ記憶部を用いた誤り訂正について説明するための説明図である。
【図５】図３に示したアドレス変換バッファ制御装置によるエントリ登録を説明するための説明図である。
【図６】図３に示したアドレス変換バッファ制御装置によるエントリ登録の処理手順を示すフローチャートである。
【図７】図３に示したアドレス変換バッファ制御装置によるデマップを説明するための説明図である。
【図８】図３に示したアドレス変換バッファ制御装置によるＣＡＭＲＡＭ検索からのデマップを説明するための説明図である。
【図９】図３に示したアドレス変換バッファ制御装置によるデマップの処理手順を示すフローチャートである。
【図１０】図３に示したアドレス変換バッファ制御装置によるデマップのパイプライン処理について説明するための説明図である。
【図１１】図３に示したアドレス変換バッファ制御装置による退避データ転記処理の処理手順を示すフローチャートである。
【図１２】図３に示したアドレス変換バッファ制御装置による退避データ転記処理について説明するためのタイムチャートである。
【符号の説明】
【０１２６】
１００    アドレス変換バッファ
１１０    ＣＡＭ
１２０    ＲＡＭ
２００    アドレス変換バッファ制御装置
２１０    退避領域制御部
２２０    退避データ転記部
２３０    エントリ登録部
２４０    アドレス変換部
２５０    デマップ部
２６０    ＥＣＣ生成部
２７０    ＥＣＣ訂正部
２８０    エラーエントリ記憶部
２９０    訂正エントリ記憶部
【図１】
2006039968.tif 000003
【図２】
2006039968.tif 000004
【図３】
2006039968.tif 000005
【図４−１】
2006039968.tif 000006
【図４−２】
2006039968.tif 000007
【図４−３】
2006039968.tif 000008
【図４−４】
2006039968.tif 000009
【図５】
2006039968.tif 000010
【図６】
2006039968.tif 000011
【図７】
2006039968.tif 000012
【図８】
2006039968.tif 000013
【図９】
2006039968.tif 000014
【図１０】
2006039968.tif 000015
【図１１】
2006039968.tif 000016
【図１２】
2006039968.tif 000017