JP2004038553A - Data processor - Google Patents

Data processor Download PDF

Info

Publication number
JP2004038553A
JP2004038553A JP2002194615A JP2002194615A JP2004038553A JP 2004038553 A JP2004038553 A JP 2004038553A JP 2002194615 A JP2002194615 A JP 2002194615A JP 2002194615 A JP2002194615 A JP 2002194615A JP 2004038553 A JP2004038553 A JP 2004038553A
Authority
JP
Japan
Prior art keywords
information
tlb
unit
match
pair
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
JP2002194615A
Other languages
Japanese (ja)
Inventor
Reiji Segawa
瀬川 礼二
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2002194615A priority Critical patent/JP2004038553A/en
Publication of JP2004038553A publication Critical patent/JP2004038553A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To effectively perform debugging of a program failure by detecting multiple hit of an associative storage means. <P>SOLUTION: A TLB part 220 is provided with a tag part 305 for storing a plurality of pairs of a logical page address and a physical page address, detecting coincidence between access information provided by a CPU 130 and each of a plurality of logical page addresses, outputting the physical page address corresponding to the logical page addresses which coincides with the access information, and generating each coincidence information when each pair of the logical page address and the physical page address coincides with the access information, a data part 301, a decoder part 302, an HIT detecting part 303, and an encoder part 304 as an address converting table. Moreover, a multiple hit detecting part 308 for detecting, on the basis of the coincidence information outputted from the tag part 305, that the plurality of pairs simultaneously coincide with the access information when the access information is given to the address converting table from the CPU 130. <P>COPYRIGHT: (C)2004,JPO

Description

【0001】
【発明の属する技術分野】
本発明は半導体集積回路の特に連想記憶を有するデータ処理装置に関するものである。
【0002】
【従来の技術】
近年、コンピュータ技術の民生製品への適応が急速に進み、従来高級なワークステーションやパーソナルコンピュータでのみ使用されていた仮想メモリ管理機構が、セットトップボックス等の民生機器のオペレーション・システム(OS)に採用され始めている。
【0003】
仮想メモリ管理を行うためには、データ処理装置はアドレス変換機構をサポートする必要がある。アドレス変換は、OSが外部メモリ上に用意する変換テーブルより該当論理アドレスに対応する物理アドレスを検索する必要があり、処理性能劣化の大きな要因となっている。
【0004】
この機構を高速に実現するために、頻繁に使用する論理アドレスと物理アドレスの対をキャッシュするアドレス変換バッファ(Translation Look−aside Buffer:以降TLBと記す)を内蔵するものが多く見られる。しかしTLBを内蔵してもTLBのミスによる変換テーブルの再設定による性能劣化は非常に大きなものであるため、TLBのヒット率をより向上させるためにフル・アソシアティブ構成が多く採用されている。
【0005】
なお、フル・アソシアティブ方式というのは、仮想記憶システムにおいて、物理メモリの任意の場所にページを配置する方式である。これに対してダイレクト・マップ方式というのは、あるブロックを記憶階層の上位レベルに配置する場所が特定の1カ所に決まっている方式をいう。セット・アソシアティブというのは、ダイレクト・マップ方式とフル・アソシアティブ方式の中間の方式であり、セット・アソシアティブのキャッシュというのは、各ブロックを配置可能な場所がある決まった数(少なくとも2つ)存在するものである。
【0006】
図12は従来のデータ処理装置の構成を示すブロック図である。図12において、910はメモリ管理装置(以降、MMUと記す)、130は中央処理装置(以降CPUと記す)、120はキャッシュメモリ、140は外部ネットワーク及びメモリ、131は命令やデータの授受を行う外部バス、133はCPU130に付随する周辺回路とのデータの授受を行うIOバス、132はアドレス変換要求信号(trsrq)、114はアドレス変換が成功したか否かを示すヒット信号(hit)、115はアドレス変換後のアドレスである。
【0007】
図11は従来のデータ処理装置の32ビットアドレスの構成を示す模式図である。図11において、アドレス空間は4KBのページに分割され、ページの番号である20ビットの論理ページ番号(VPN)と12ビットのページ内オフセットとで構成される。物理アドレスも同様に20ビットの物理ページ番号(PPN)と12ビットのページ内オフセットとで構成される。なお、論理アドレス及び物理アドレスにおけるページ内オフセットは同一の値となる。
【0008】
図8は後述するTLBタグ部305の動作を示す説明図である。同図において、VPNは外部より入力される論理ページ番号、validはエントリが有効であることを示す信号であり、値1は有効、値0は無効を意味する。タグはアドレス変換テーブルに格納されている論理ページ番号である。matchは一致情報であり、値1は一致、値0は不一致を意味する。X,Yは各々論理ページ番号に相当する任意の数値である。
【0009】
図13は従来のデータ処理装置におけるMMU910の構成を示すブロック図である。図13において、920は論理アドレスを物理アドレスに変換するアドレス変換テーブルのコピーを格納するアドレス変換バッファ部(以降、TLB部と記す)、930はTLB部920の制御を行うTLB制御部、240、241はセレクタである。133はIOバスであり、133aはアドレスバス、133bはデータバス、133cはIOバス制御信号である。
【0010】
セレクタ240は、IO−DATA133b、または論理アドレスva131aのいずれかをアドレス変換要求(trsrq)132に従い選択する。セレクタ241は論理アドレスvaに含まれる論理ページ番号またはTLB部920から出力されるデータ出力dout221に含まれる物理ページ番号のどちらか一方をアドレス変換要求信号132に従い選択する。
【0011】
図14は従来のデータ処理装置におけるTLB部920の構成を示すブロック図である。図14において、311は物理ページ番号とページ属性を格納するTLBデータ部である。315は論理ページ番号を格納するタグメモリ315cとエントリの有効無効を示すvaridビット315bと比較器315aをもち、タグメモリ315cの内容と、tin226から入力される論理ページ番号との比較を行うTLBタグ部である。312は外部より入力されるindx223をデコードするデコーダ312aとTLBタグ部315から出される比較結果であるmatch信号315dよりワードライン312c及び312dを駆動しTLBタグ部315とTLBデータ部311を活性化させるデコーダ部である。304は各々のTLBタグ部315〜385から出されるmatch信号315d〜385dより一致したエントリ番号をエンコードするエンコーダ部である。303はmatch信号315d〜385dより一致したエントリの存在の有無を検出するHIT検出部である。
【0012】
図10はTLB部920に与えられる制御信号と動作を示す説明図である。なお、各記号の後ろには、図14で付されている番号を括弧書きしている。同図において、tin(226)はTLBタグ部305に入力される仮想ページ番号、indx(223)はTLB部920のエントリを示すインデックス、din(222)はTLBデータ部301に入力されるデータであり、物理ページ番号とページ属性で構成される。hit(114)はヒット信号である。tout(225)、dout(221)はTLBタグ部305及びTLBデータ部301の出力データであり、フォーマットはそれぞれtin(226)、din(222)に対応している。hp(224)はTLB部920の検索の際にヒットしたエントリを示すポインタであり、非検索時(mode=0)の時はindx(223)の値と一致する。mode(231)はTLB部920の動作モードを示す信号であり、“1”の場合はTLB検索及び変換を行い、“0”の時は検索及び変換を行わない。tncs(232)及びdncs(233)はそれぞれTLBタグ部305、TLBデータ部301の選択信号であり“0”の場合は選択、“1”の場合は非選択である。r−nw(234)はTLBタグ部305、TLBデータ部301へのアクセス状態を示す信号であり、“1”の場合は読み出し、“0”の場合は書き込み要求である。
【0013】
従来のTLBのアドレス変換動作を図8、図10及び図11〜図14を用いて説明する。
【0014】
CPU130は命令フェッチやデータの読み書きの際、該当アドレスを外部バス131aを通じてMMU910へ送る。この際、CPU130は必要に応じてアドレス変換要求(trsrq)132をMMU910に送る。アドレス変換要求132に応じてTLB制御部930はTLB部920に対し、アドレス変換を行うように指示を出す(mode=1、tncs=0、dncs=0、r−nw=1)。これに応じて、TLB部920は、tin226より入力される論理ページ番号(VPN)と、TLBタグ部305の各エントリに格納されたタグとの比較を図8の表に従い行う。
【0015】
a)TLBヒット
比較の結果、いずれか一つのエントリが一致(VPN=タグ)かつエントリが有効(valid=1)であった場合、match=1となり、dWL312c〜382cの何れか一つが活性化され、dout221からは一致したエントリに格納された物理ページ番号及びページ属性が出力される。同時に、エンコーダ部304は、ヒットしたエントリの番号をエンコードし、hp224へ出力する。セレクタ241はアドレス変換要求(trsrq)132に応じて、dout221に含まれる前記物理ページ番号と論理アドレスva131aに含まれるページオフセットとを結合し、物理アドレスとしてpa115より出力し、キャッシュメモリ120へ送る。このとき、match信号315d〜385dの論理和であるヒット信号114が同時に活性化(=1)される。
【0016】
b)TLBミス
一方、全てのエントリが一致しなかった場合(VPN!=タグ)、または一致したがエントリが無効(VPN=タグ、valid=0)であった場合、match=0となり、ヒット信号114が不活性化(=0)される。その結果、dWL312c〜382cも全て不活性化され、dout221の出力は無効となり、キャッシュメモリ120へのアクセスは中止される。
【0017】
c)TLB多重ヒット
比較の結果、複数のエントリが同時に一致(VPN=タグ)かつエントリが有効(valid=1)であった場合(以下、多重ヒットと記す)、複数のdWL312c〜382cが同時に活性化され、dout221からは不定値が出力される。match信号315d〜385dの論理和であるhit信号114が同時に活性化(=1)され、あたかもTLBヒットしたかのように誤った物理アドレスでキャッシュメモリ120へアクセスが行われる。
【0018】
【発明が解決しようとする課題】
OSの一部であるメモリ管理プログラムの開発時、アドレス変換テーブルに矛盾があると、TLBエントリが多重ヒットしてしまうことがある。従来のフル・アソシアティブTLBではc)で示したようにヒット情報を各エントリのヒット信号の論理和より得ているため、複数エントリが同時にヒットしたか否かは判定ができない。また、多重ヒットしたか否かを判定するには図15〜図17に示すような回路構成が考えられるが、図15のような4エントリ構成においても多重ヒットを検出するために、3つの全加算器1101〜1103とOR回路1104が必要となり、論理段数で4段となる。図16は、全加算器の真理値表であり、図17は図15の回路の真理値表である。
【0019】
一般的に、TLBミスによる処理負担は非常に大きなものになるため、32エントリ以上の構成が多く使われており、図15の構成では、全加算器が31個とOR回路の構成となり、論理段数で32段が必要となるため、組み合わせ論理で実現するのは速度的及び面積的に実装するのは困難であり、一般的にTLBにおける多重ヒット検出は行われていない。
【0020】
しかし、多重ヒットが発生した場合は、前記のように誤った物理アドレスでメモリアクセスが行われ、CPUはプログラムシーケンスからは容易に想像できない挙動を示すため、原因の解析は非常に困難なものになり、多大なデバッグ工数が必要となっている。
【0021】
また、近年では機器のネットワーク化により、完成後のプログラムも各種サービスの変更などに対応するため、ネットワークからのダウンロードによるプログラム変更が一般的になって来ているが、コンピュータウィルスなどの悪質なプログラムによりプログラムが変更されTLB内容が多重ヒット状態になった場合、最悪システムが暴走してしまうという問題を有していた。
【0022】
本発明は以上の問題点を考慮されたものであって、その目的は連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とするデータ処理装置を提供することである。
【0023】
本発明の他の目的は、矛盾した連想記憶手段のエントリを効率的に無効化し、システムの暴走を防止可能なデータ処理装置を提供することである。
【0024】
【課題を解決するための手段】
この課題を解決するために、本発明の請求項1に記載のデータ処理装置は、中央処理装置と、
第1に識別される複数の情報と、第1に識別される複数の情報のそれぞれに対応する第2に識別される複数の情報とを対にして記憶し、中央処理装置から与えられるアクセス情報と第1に識別される複数の情報の各々との一致を検出し、アクセス情報と一致した第1に識別される情報に対応した第2に識別される情報を出力するとともに、複数対の情報の各々がアクセス情報に一致したときに各々一致情報を発生する連想記憶手段と、
連想記憶手段から出力される一致情報を基にして中央処理装置から連想記憶手段にアクセス情報が与えられたときに複数対の情報が同時にアクセス情報に一致したことをアナログ的に検出する複数対一致検出手段とを備えている。
【0025】
この構成によれば、複数対一致検出手段により複数対の情報が同時にアクセス情報に一致したことを検出することができ、連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とする。
【0026】
本発明の請求項2に記載のデータ処理装置は、請求項1に記載のデータ処理装置において、複数対一致検出手段は、連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するアナログ値変換手段と、一対の情報のみが一致したときのアナログ値を基準値として、アナログ値と基準値とを比較する比較手段とを有し、アナログ値が基準値よりも所定値以上高い値をとった場合に複数対一致検出信号を出力することを特徴とする。
【0027】
この構成によれば、アナログ変換手段によって、連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するので、比較手段によってアナログ値のレベルを基準値と比較することで、複数対の情報が同時にアクセス情報に一致したことを容易に検出することができる。
【0028】
本発明の請求項3に記載のデータ処理装置は、請求項1または2に記載のデータ処理装置において、複数の情報対が各々アクセス情報に一致した旨を示す一致情報を保持する一致情報保持手段をそれぞれの情報対が備えることを特徴とする。
【0029】
この構成によれば、一致情報保持手段によって複数の情報対が各々アクセス情報に一致した旨を示す一致情報を保持するので、どのエントリが一致したかの履歴を容易にたどることができ、ソフトウエア開発時の解析工数が削減できる。
【0030】
本発明の請求項4に記載のデータ処理装置は、請求項3に記載のデータ処理装置において、情報対無効化要求が与えられたときに、一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する情報対無効化手段をそれぞれの情報対が備えることを特徴とする。
【0031】
この構成によれば、情報対無効化手段によって情報対無効化要求が与えられたときに、一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する。複数のエントリが同時に一致する状態は、本来あってはならないものであり、OSなどによりTLBのエントリを正常な状態に戻す必要がある。複数エントリの同時ヒットを検出した際、一致したエントリのみを一括して無効化できるので、TLBエントリを正常化する際の処理ステップが軽減される。
【0032】
本発明の請求項5に記載のデータ処理装置は、請求項4に記載のデータ処理装置において、情報対のそれぞれの一致情報保持手段はさらに、一致情報設定要求に応じて一致情報を任意の値に設定できることを特徴とする。
【0033】
この構成によれば、一致情報保持手段が、一致情報設定要求に応じて一致情報を任意の値に設定できるので、任意のエントリの一致情報保持手段に“1”を書き込み、情報対無効化要求を“1”にすることで、TLBエントリを部分無効化する際の処理ステップが軽減される。従来では、
TLBのタグエントリデータの用意(バリッドビット=0)
TLBのタグへ書き込み×必要なエントリ数
であったのが、1ステップになる。
【0034】
本発明の請求項6に記載のデータ処理装置は、請求項4または5に記載のデータ処理装置において、情報対無効化手段は、複数対一致検出信号に応じて、一致情報保持手段が有効である情報対を無効化することを特徴とする。
【0035】
この構成によれば、複数対の情報が同時にアクセス情報に一致したときに該当する情報対に対する情報対無効化要求を発生することで、矛盾した連想記憶手段のエントリを効率的に無効化し、システムの暴走を防止可能である。
【0036】
本発明の請求項7に記載のデータ処理装置は、請求項1,2,3,4,5または6に記載のデータ処理装置において、連想記憶手段がアドレス変換テーブルであり、第1に識別される情報が論理ページアドレスであり、第2に識別される情報が物理ページアドレスであることを特徴とする。
【0037】
この構成によれば、請求項1,2,3,4,5または6に記載のデータ処理装置と同様の作用を有する。
【0038】
【発明の実施の形態】
以下、本発明の実施の形態について、図1〜図11を用いて説明する。
【0039】
(実施の形態)
本実施の形態は、論理空間及び物理空間は32ビットのアドレス空間、TLBの構成は8エントリ・フル・アソシアティブ、ページサイズは4KBである。
【0040】
図1は本実施の形態のデータ処理装置の構成を示すブロック図である。図1において、110はMMU、130はCPU(中央処理装置)、120はキャッシュメモリ、140は外部ネットワーク及びメモリ、131は命令やデータの授受を行う外部バス、133はCPUに付随する周辺回路とのデータの授受を行うIOバス、132はアドレス変換要求信号(trsrq)、114はアドレス変換が成功したか否かを示すヒット信号(hit)、115はアドレス変換後の物理アドレス、116は複数のエントリが同時にヒットしたことを示す多重ヒット検出信号(mhit)である。
【0041】
図11は本実施の形態のデータ処理装置の32ビットアドレスの構成を示す図であり、従来例で説明したのと同じである。
【0042】
図8は本実施の形態のデータ処理装置のTLBタグ部305の動作を示す図であり、従来例で説明したのと同じである。
【0043】
図2は本実施の形態のデータ処理装置におけるMMU110の構成を示すブロック図である。図2において、220はTLB部(連想記憶手段)、230はTLB部220の制御を行うTLB制御部、240、241はセレクタである。133はIOバスであり、133aはアドレスバス、133bはデータバス、133cはIOバス制御信号である。
【0044】
セレクタ240はIO−DATA133b、または論理アドレスva131aのいずれかをアドレス変換要求132(trsrq)に従い選択する。セレクタ241は論理アドレスvaに含まれる論理ページ番号またはTLB部220から出力されるデータ出力dout221に含まれる物理ページ番号のどちらか一方をアドレス変換要求信号132に従い選択する。
【0045】
211はパラレルシリアル変換部、212はシリアルパラレル変換部である。パラレルシリアル変換部211はIO−DATA133bからのデータをシリアル変換しTLB部220のヒット情報入力228へ出力する。シリアルパラレル変換部212はTLB部220より出力されるヒット情報出力227をパラレル変換し、IO−DATA133bへ出力する。
【0046】
306は後述する情報対無効化手段としてのエントリ無効化部をまとめたブロックである。307は後述する一致情報保持手段としての一致情報保持部をまとめたブロックである。308は後述する複数対一致検出手段としての多重ヒット検出部である。
【0047】
図3は本実施の形態のデータ処理装置におけるTLB部220の構成を示すブロック図である。図3において、310から380はTLB部の各エントリであり、それぞれのエントリは同じ構造をもっている。311は物理ページ番号とページ属性を格納するTLBデータ部である。
【0048】
315は論理ページ番号を格納するタグメモリ315cとエントリの有効無効を示すvalidビット315bと比較器315aとをもち、タグメモリ315cの内容と、tin226から入力される論理ページ番号との比較を行うTLBタグ部である。
【0049】
312は外部より入力されるindx223をデコードするデコーダ312aと、TLBタグ部315から出される比較結果であるmatch信号315dよりワードライン312c及び312dを駆動しTLBタグ部315とTLBデータ部311を活性化させるデコーダ部である。
【0050】
304は各々のTLBタグ部315〜385から出されるmatch信号315d〜385dより一致したエントリ番号をエンコードするエンコーダ部である。
【0051】
303はmatch信号315d〜385dより一致したエントリの存在の有無を検出するHIT検出部である。
【0052】
317は、シフト要求信号229が有効である場合ヒット情報入力228を保持し、同信号が無効かつアドレス変換要求132が有効である時にmatch信号315dの内容を検索結果履歴として保持し、保持内容を同エントリ無効化部及び次エントリのシフト入力へ接続している一致情報保持部である。
【0053】
391はDフリップフロップ、392はOR回路である。
【0054】
316はTLBタグの全エントリを無効化する一括無効化(要求)信号(vrst)235が有効である場合もしくは、Dフリップフロップ391で保持した多重ヒット検出信号またはエントリ無効化信号(evst)390とのいずれか一方が有効、かつ一致情報保持部317が有効である場合に、validビット315bをゼロクリアしエントリを無効化するエントリ無効化部である。vrstが“1”の場合、TLBタグの全エントリのvalidビットがクリアされ、無効化される。
【0055】
308は、ソース側を電源にゲートを接地にドレインを基準信号308fにそれぞれ接続されプルアップ抵抗として機能するP型MOSトランジスタ308cと、ソース側を接地にゲートを電源にドレインを基準信号308fにそれぞれ接続されプルダウン抵抗として機能するN型MOSトランジスタ308bと、ソース側を電源にゲートを接地にドレインを検出信号308eにそれぞれ接続されプルアップ抵抗として機能するP型MOSトランジスタ308dと、ソース側を接地に、ドレインを検出信号308eに、ゲートをmatch信号3n5d(n=1〜8)にそれぞれ接続され、match信号3n5d(n=1〜8)の状態に応じてプルダウン抵抗として機能するN型MOSトランジスタ3n8(n=1〜8)と、一方の入力に基準信号308f、他方に検出信号308eが接続される比較手段としてのセンスアンプ308aとからなり、基準信号308fと検出信号308eの電位の差異を検出する多重ヒット検出部である。上記のN型MOSトランジスタ3n8(n=1〜8)とP型MOSトランジスタ308dとがアナログ値変換手段を構成している。
【0056】
一致情報保持部3n7(n=1〜8)は、一致情報保持部317の出力が一致情報保持部327のシフト入力、同出力が一致情報保持部337のシフト入力へと順次つながり、シフトレジスタを形成し、一致情報保持部317のシフト入力はヒット情報入力228、一致情報保持部387の出力はヒット情報出力227に接続される。
【0057】
基準信号308fの電位Vrefは、図5の等価回路に示すように、P型MOSトランジスタ308cのオン抵抗値RpupとN型MOSトランジスタ308bのオン抵抗値Rrefで抵抗分圧されている。
【0058】
検出信号308eの電位Vtgtは、P型MOSトランジスタ308dのオン抵抗値RpupとN型MOSトランジスタ3n8(n=1〜8)のオン抵抗値Rtgtの合計で抵抗分圧されている。
【0059】
このとき、N型MOSトランジスタ3n8(n=1〜8)のオン抵抗値(Rtgt)と、N型MOSトランジスタ308bのオン抵抗値(Rref)とは、
Rtgt/2 < Rref < Rtgt               式(1)
を満たす。
【0060】
図9は本実施の形態のTLB部220に与えられる制御信号と動作を示す説明図である。各記号の後ろには、図3で付されている番号を括弧書きしている。同図において、図9において、tin(226)はTLBタグ部305に入力される仮想ページ番号、indx(223)はTLB部220のエントリを示すインデックス、din(222)はTLBデータ部301に入力されるデータであり、物理ページ番号とページ属性で構成される。hit(114)はヒット信号である。mhit(116)は多重ヒット信号である。tout(225)、dout(221)はTLBタグ部305及びTLBデータ部301の出力データであり、フォーマットはそれぞれtin(226)、din(222)に対応している。
【0061】
hp(224)はTLB部220の検索の際にヒットしたエントリを示すポインタであり、非検索時(mode=0)の時はindx(223)の値と一致する。mode(231)はTLB部220の動作モードを示す信号であり、“1”の場合はTLB検索及び変換を行い、“0”の時は検索及び変換を行わない。tncs(232)及びdncs(233)はそれぞれTLBタグ部305、TLBデータ部301の選択信号であり“0”の場合は選択、“1”の場合は非選択である。r−nw(234)はTLBタグ部305、TLBデータ部301へのアクセス状態を示す信号であり、“1”の場合は読み出し、“0”の場合は書き込み要求である。
【0062】
本実施の形態のTLB部のアドレス変換動作を図1〜図8、図9及び図11を用いて説明する。図4には、電位Vtgtと、センスアンプ308aの出力Vsaと、基準電位Vrefとが示されている。
【0063】
CPU130は命令フェッチやデータの読み書きの際、該当論理アドレスを外部バス131aを通じてMMU110へ送る。この際、CPU130は必要に応じてアドレス変換要求132をMMU110に送る。アドレス変換要求132に応じてTLB制御部230はTLB部220に対し、アドレス変換を行うように指示を出す(mode=1、tncs=0、dncs=0、r−nw=1)。これに応じてTLB部220は、tin226より入力される論理ページ番号(VPN)と、TLBタグ部305の各エントリに格納されたタグとの比較を図8の表に従い行う。
【0064】
a)TLBヒット
比較の結果、いずれか一つのエントリが一致(VPN=タグ)かつエントリが有効(valid=1)であった場合、match=1となり、dWL312c〜382cの何れか一つが活性化され、dout221からは一致したエントリに格納された物理ページ番号及びページ属性が出力される。同時に、エンコーダ部304はヒットしたエントリの番号をエンコードし、hp224へ出力する。セレクタ241はアドレス変換要求(trsrq)132に応じて、dout221に含まれる前記物理ページ番号と論理アドレスva131aに含まれるページオフセットとを結合し、物理アドレスとしてpa115より出力し、キャッシュメモリ120へ送る。このとき、match信号315d〜385dの論理和であるヒット信号114が同時に活性化(=1)される。
【0065】
このとき、検出信号308eは、N型MOSトランジスタ3n8(n=1〜8)のうち何れか1つが活性化されるので、検出信号308eの電位は図6に示す等価回路に従い、電源電圧VDDを抵抗分圧した値になり、式1より基準電位308fの電位との関係は、図4のTLBヒット区間に示すように、
Vref < Vtgt
が満たされ、結果、センスアンプ308aはLOWを出力し、mhit=0となる。
【0066】
また、各エントリの検索結果履歴として一致情報保持部3n7(n=1〜8)の何れか1つには1、その他には0が保持される。
【0067】
b)TLBミス
一方、全てのエントリが一致しなかった場合(VPN!=タグ)、または一致したがエントリが無効(VPN=タグ、valid=0)であった場合、match=0となり、ヒット信号114が不活性化(=0)され、これによってdWL312c〜382cも全て不活性化され、dout221の出力は無効となる。
【0068】
このとき、検出信号308eはN型MOSトランジスタ3n8(n=1〜8)は全て活性化されない。検出信号308eと基準電位308fの電位は、式(1)より、
Vref < Vtgt=VDD
が満たされ(図4のTLBミス区間参照)、その結果、センスアンプ308aはLOWを出力し、mhit=0となる。
【0069】
また、各エントリの検索結果履歴として一致情報保持部3n7(n=1〜8)には全て0が保持される。
【0070】
CPUはヒット信号114よりTLBミスを検出し、TLB例外を発生し、TLB管理プログラムへ処理を移行する。
【0071】
c)TLB多重ヒット
比較の結果、複数のエントリが同時に一致(VPN=タグ)かつエントリが有効(valid=1)であった場合、複数のdWL312c〜382cが同時に活性化され、dout221からは不定値が出力される。match信号315d〜385dの論理和であるヒット信号114が同時に活性化(=1)される。
【0072】
このとき、検出信号308eはN型MOSトランジスタ3n8(n=1〜8)のうち少なくとも2つが活性化される。検出信号308eの電位は図7に示す等価回路に従い、電源電圧VDDを抵抗分圧した値になり、式(1)より基準電位308fの電位との関係は、
Vtgt < Vref
となり(図4のTLB多重ヒット区間参照)、その結果、センスアンプ308aはHIGHを出力し、mhit=1となる。
【0073】
また、各エントリの検索結果履歴として一致情報保持部3n7(n=1〜8)の少なくとも2つには1、その他には0が保持される。
【0074】
さらにこのとき、Dフリップフロップ391には1が保持され、OR回路392の出力が有効となり、先の検索で一致した、一致情報保持部3n7(n=1〜8)の少なくとも2つのエントリに対応するTLBタグ部305のvalidビット3n5b(n=1〜8)がゼロクリアされ、該当エントリの無効化が行われる。
【0075】
CPU130は多重ヒット検出信号116よりTLB多重ヒットを検出し、TLB例外を発生し、TLB管理プログラムへ処理を移行する。
【0076】
d)シフト動作
CPU130から一致情報保持部3n7(n=1〜8)への書き込み要求に応じてTLB制御部230は、シフト要求229を有効、mode=0をTLB部220、シリアルパラレル変換部212、パラレルシリアル変換部211に与え、
パラレルシリアル変換部211はIO−DATA133b上のデータをシリアル変換してヒット情報入力228へ出力する。
【0077】
TLB部220は、一致情報保持部3n7(n=1〜8)をシフト動作させ、ヒット情報入力228を順次シフトインすると同時に、一致情報保持部3n7(n=1〜8)に保持していた内容をヒット情報出力227よりシフトアウトする。
【0078】
シリアルパラレル変換部212はTLB部220から出力されるヒット情報出力227をシリアルパラレル変換してIO−DATA133bへ出力する。
【0079】
ここで、一致情報保持部のシフト動作の意味について説明する。上記したように、どのエントリが一致したかの履歴をたどるときに、TLBの内部情報を容易にたどる必要がある。その1手法として、上記では、一致情報保持部をシフトレジスタ構成にして、シフト動作で一致情報を取り出すようにしている。
【0080】
e)TLBの特定エントリの無効化
CPU130はd)の動作により一致情報保持部3n7(n=1〜8)のうち無効化したいエントリを有効値、無効化したくないエントリに無効値をセットする。さらに、CPU130からのTLBの特定エントリの無効化要求に応じてTLB制御部230は、エントリ無効化要求(evst)390を有効にする。これによって、OR回路392の出力が有効となり、一致情報保持部3n7(n=1〜8)の値が有効となっているエントリに対応するTLBタグ部のvalidビット3n5b(n=1〜8)がゼロクリアされ、特定エントリの無効化が行われる。
【0081】
以上のように、本実施の形態によれば、本TLB部は、TLB部に登録されたアドレス変換テーブルの矛盾によるTLB多重ヒットを、通常ヒットと多重ヒット時の検出信号308eと基準信号308fの電位差をセンスアンプ308aで検知し、多重ヒットを検出しCPU130に通知可能となる。CPU130はこの通知に応じて、TLB例外を発生しTLB管理プログラムへ処理を移行することができ、適切な処理よりシステムの暴走を未然に防ぐことが可能となる。
【0082】
さらに、多重ヒット検出に連動して、TLBエントリの矛盾箇所のみを無効化が可能となり、TLB管理プログラムによるTLBエントリの矛盾解決に要する処理時間を大幅に削減可能となる。
【0083】
また、一致情報保持部3n7(n=1〜8)に格納された内容を、前記d)の動作で読み出し確認することにより、どのエントリで多重ヒットしたかを確認できデバッグの効率化が図れる。
【0084】
また、TLB多重ヒット検出は、エントリ数をmとすると、センスアンプと、2つのP型MOSトランジスタとm+1個のn型MOSトランジスタで実現可能であるので、図15〜図17記載の従来の全加算器を使用したものに比べて、必要となる素子数が少なく面積削減が可能となる。さらにエントリの増加による論理段数の増加が無く、速度オーバーヘッド削減が可能となる。
【0085】
なお、以上の説明では、TLB部を8エントリのフル・アソシアティブ構成である場合を示したが、エントリ数を拡張することで他のエントリ構成でも実現可能である。
【0086】
また、フル・アソシアティブ構成である場合を示したが、セット・アソシアティブ構成でも同様に実現可能である。
【0087】
また、命令及びデータ共用TLBでの例を示したが、命令及びデータを分離した場合も同様に実施可能である。
【0088】
なお、上記の実施の形態では、第1に識別される情報が論理ページアドレス(論理ページ番号)であり、第2に識別される情報が物理ページアドレス(物理ページ番号)である場合について説明したが、第1に識別される情報としては、上記の他に、プロセスID、有効(バリッド)ビット等があり、第2に識別される情報には、上記の他に、ページ属性(Read/Write許可等)、ページの有効か否かを示す情報、ページ書き込みの有無を示す情報等がある。
【0089】
【発明の効果】
本発明のデータ処理装置は、複数対一致検出手段により複数対の情報が同時にアクセス情報に一致したことを検出することができ、連想記憶手段の多重ヒットを検出し、プログラム不具合を効率的にデバッグ可能とする。
【0090】
これにより、連想記憶手段の多重ヒットを検出し中央処理装置に通知可能となり、中央処理装置はこの通知に応じて、連想記憶手段の例外を発生し連想記憶手段の管理プログラムへ処理を移行することができ、適切な処理よりシステムの暴走を未然に防ぐことが可能となる。
【0091】
また、多重ヒット検出に連動して、連想記憶手段のエントリの矛盾箇所のみを無効化が可能となり、連想記憶手段の管理プログラムによる連想記憶手段のエントリの矛盾解決に要する処理時間を大幅に削減可能となる。
【0092】
さらに、一致情報保持手段に格納された内容を読み出し確認することにより、どのエントリで多重ヒットしたかを確認できデバッグの効率化が図れる。
【図面の簡単な説明】
【図1】本発明の実施の形態のデータ処理装置の構成を示すブロック図である。
【図2】同実施の形態のデータ処理装置におけるMMUの構成を示すブロック図である。
【図3】同実施の形態のデータ処理装置におけるTLB部の構成を示すブロック図である。
【図4】同実施の形態のTLB部の複数対一致検出部の動作を示す信号波形図である。
【図5】同実施の形態のTLB部の複数対一致検出部の基準信号の電位を示す等価回路図である。
【図6】同実施の形態のTLB部の複数対一致検出部の検出信号のTLBヒット時の電位を示す等価回路図である。
【図7】同実施の形態のTLB部の複数対一致検出部の検出信号のTLB多重ヒット時の電位を示す等価回路図である。
【図8】同実施の形態のTLBタグ部の動作を示す説明図である。
【図9】同実施の形態のTLB部の動作を示す説明図である。
【図10】従来のTLB部の動作を示す説明図である。
【図11】同実施の形態のデータ処理装置の32ビットアドレスの構成を示す模式図である。
【図12】従来のデータ処理装置の構成を示すブロック図である。
【図13】従来のデータ処理装置におけるMMUの構成を示すブロック図である。
【図14】従来のデータ処理装置におけるTLB部の構成を示すブロック図である。
【図15】従来のTLB部の複数対一致検出回路の構成を示す回路図である。
【図16】従来のTLB部の複数対一致検出回路の全加算器の動作を示す説明図である。
【図17】従来のTLB部の複数対一致検出回路の動作を示す説明図である。
【符号の説明】
110  MMU
114  ヒット信号
115  物理アドレス
116  多重ヒット信号
120  キャッシュメモリ
130  中央処理装置
131  外部バス
132  アドレス変換要求信号
133  IOバス
140  外部ネットワーク及びメモリ
220  TLB部
230  TLB制御部
[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a semiconductor integrated circuit and, more particularly, to a data processing device having an associative memory.
[0002]
[Prior art]
In recent years, the adaptation of computer technology to consumer products has progressed rapidly, and the virtual memory management mechanism conventionally used only in high-end workstations and personal computers has become an operating system (OS) for consumer devices such as set-top boxes. It is starting to be adopted.
[0003]
In order to perform virtual memory management, the data processing device needs to support an address translation mechanism. In the address conversion, it is necessary for the OS to search for a physical address corresponding to the relevant logical address from a conversion table prepared on an external memory, which is a major factor in deterioration of processing performance.
[0004]
In order to realize this mechanism at high speed, there are many devices incorporating a translation look-aside buffer (hereinafter referred to as TLB) for caching pairs of frequently used logical addresses and physical addresses. However, even if a TLB is incorporated, the performance degradation due to resetting of the conversion table due to a TLB mistake is very large, and a full associative configuration is often employed to further improve the TLB hit rate.
[0005]
Note that the full associative method is a method of arranging pages in an arbitrary location of a physical memory in a virtual storage system. On the other hand, the direct map method refers to a method in which a place where a certain block is arranged at an upper level of a storage hierarchy is determined at a specific one place. The set associative is an intermediate method between the direct map method and the full associative method, and the set associative cache has a fixed number (at least two) where blocks can be allocated. Is what you do.
[0006]
FIG. 12 is a block diagram showing a configuration of a conventional data processing device. In FIG. 12, reference numeral 910 denotes a memory management device (hereinafter referred to as MMU), 130 denotes a central processing unit (hereinafter referred to as CPU), 120 denotes a cache memory, 140 denotes an external network and memory, and 131 transmits and receives instructions and data. An external bus 133 is an IO bus for exchanging data with peripheral circuits attached to the CPU 130, 132 is an address conversion request signal (trsrq), 114 is a hit signal (hit) indicating whether or not the address conversion was successful, 115 Is the address after address translation.
[0007]
FIG. 11 is a schematic diagram showing a configuration of a 32-bit address of a conventional data processing device. In FIG. 11, the address space is divided into 4 KB pages, and includes a 20-bit logical page number (VPN), which is the page number, and a 12-bit offset within the page. Similarly, the physical address includes a 20-bit physical page number (PPN) and a 12-bit offset within the page. Note that the offset within the page in the logical address and the physical address has the same value.
[0008]
FIG. 8 is an explanatory diagram showing the operation of the TLB tag unit 305 described later. In the figure, VPN is a logical page number input from the outside, valid is a signal indicating that the entry is valid, a value 1 means valid, and a value 0 means invalid. The tag is a logical page number stored in the address conversion table. The match is match information, and a value of 1 means a match and a value of 0 means no match. X and Y are arbitrary numerical values each corresponding to a logical page number.
[0009]
FIG. 13 is a block diagram showing a configuration of an MMU 910 in a conventional data processing device. 13, reference numeral 920 denotes an address translation buffer unit (hereinafter, referred to as a TLB unit) for storing a copy of an address translation table for translating a logical address into a physical address; 930, a TLB control unit for controlling the TLB unit 920; 241 is a selector. 133 is an IO bus, 133a is an address bus, 133b is a data bus, and 133c is an IO bus control signal.
[0010]
The selector 240 selects one of the IO-DATA 133b and the logical address va131a in accordance with the address translation request (trsrq) 132. The selector 241 selects either the logical page number included in the logical address va or the physical page number included in the data output dout 221 output from the TLB unit 920 according to the address conversion request signal 132.
[0011]
FIG. 14 is a block diagram showing a configuration of a TLB section 920 in a conventional data processing device. In FIG. 14, reference numeral 311 denotes a TLB data section for storing a physical page number and a page attribute. A TLB tag 315 has a tag memory 315c for storing a logical page number, a valid bit 315b indicating whether the entry is valid or invalid, and a comparator 315a, and compares the contents of the tag memory 315c with the logical page number input from the tin 226. Department. Reference numeral 312 drives the word lines 312c and 312d by a decoder 312a for decoding the indx 223 input from the outside and a match signal 315d output from the TLB tag unit 315 to activate the TLB tag unit 315 and the TLB data unit 311. It is a decoder section. Reference numeral 304 denotes an encoder unit that encodes entry numbers that match the match signals 315d to 385d output from the respective TLB tag units 315 to 385. Reference numeral 303 denotes a HIT detection unit that detects the presence or absence of a matching entry based on the match signals 315d to 385d.
[0012]
FIG. 10 is an explanatory diagram showing control signals applied to the TLB section 920 and operations. The number given in FIG. 14 is written in parentheses after each symbol. In the figure, tin (226) is a virtual page number input to the TLB tag section 305, indx (223) is an index indicating an entry of the TLB section 920, and din (222) is data input to the TLB data section 301. Yes, consisting of physical page numbers and page attributes. hit (114) is a hit signal. Tout (225) and dout (221) are output data of the TLB tag unit 305 and the TLB data unit 301, and their formats correspond to tin (226) and din (222), respectively. hp (224) is a pointer indicating an entry that has been hit at the time of searching the TLB section 920, and matches the value of indx (223) at the time of non-searching (mode = 0). The mode (231) is a signal indicating the operation mode of the TLB section 920. When "1", TLB search and conversion are performed, and when "0", search and conversion are not performed. tncs (232) and dncs (233) are selection signals for the TLB tag section 305 and the TLB data section 301, respectively. When "0", the signal is selected, and when "1", it is not selected. r-nw (234) is a signal indicating the state of access to the TLB tag unit 305 and the TLB data unit 301. If "1", read is performed; if "0", write request is performed.
[0013]
A conventional TLB address conversion operation will be described with reference to FIGS. 8, 10, and 11 to 14. FIG.
[0014]
The CPU 130 sends the corresponding address to the MMU 910 via the external bus 131a when fetching an instruction or reading / writing data. At this time, the CPU 130 sends an address translation request (trsrq) 132 to the MMU 910 as necessary. In response to the address translation request 132, the TLB control unit 930 instructs the TLB unit 920 to perform an address translation (mode = 1, tncs = 0, dncs = 0, r-nw = 1). In response, the TLB unit 920 compares the logical page number (VPN) input from the tin 226 with the tag stored in each entry of the TLB tag unit 305 according to the table in FIG.
[0015]
a) TLB hit
As a result of the comparison, if any one of the entries matches (VPN = tag) and the entry is valid (valid = 1), then match = 1, and one of dWLs 312c to 382c is activated, and from dout 221 The physical page number and page attribute stored in the matching entry are output. At the same time, the encoder 304 encodes the number of the hit entry and outputs it to the hp224. The selector 241 combines the physical page number included in the dout 221 and the page offset included in the logical address va131a in response to the address translation request (trsrq) 132, outputs the physical address from the pa115 as a physical address, and sends the physical address to the cache memory 120. At this time, the hit signal 114 that is the logical sum of the match signals 315d to 385d is simultaneously activated (= 1).
[0016]
b) TLB mistake
On the other hand, if all entries do not match (VPN! = Tag), or if they match but the entry is invalid (VPN = tag, valid = 0), match = 0 and the hit signal 114 is inactive (= 0). As a result, all of the dWLs 312c to 382c are deactivated, the output of the dout 221 becomes invalid, and the access to the cache memory 120 is stopped.
[0017]
c) TLB multiple hit
As a result of the comparison, if a plurality of entries match at the same time (VPN = tag) and the entry is valid (valid = 1) (hereinafter, referred to as multiple hits), a plurality of dWLs 312c to 382c are activated simultaneously, and Outputs an undefined value. The hit signal 114, which is the logical sum of the match signals 315d to 385d, is simultaneously activated (= 1), and the cache memory 120 is accessed with an incorrect physical address as if a TLB hit occurred.
[0018]
[Problems to be solved by the invention]
When developing a memory management program that is a part of the OS, if there is an inconsistency in the address translation table, the TLB entry may be hit multiple times. In the conventional full associative TLB, as shown in c), the hit information is obtained from the logical sum of the hit signals of the respective entries. Therefore, it cannot be determined whether or not a plurality of entries hit simultaneously. In order to determine whether or not a multiple hit has occurred, circuit configurations as shown in FIGS. 15 to 17 are conceivable. However, even in a four-entry configuration as shown in FIG. Adders 1101 to 1103 and an OR circuit 1104 are required, and the number of logical stages is four. FIG. 16 is a truth table of the full adder, and FIG. 17 is a truth table of the circuit of FIG.
[0019]
In general, the processing load due to a TLB miss becomes very large, so that a configuration of 32 entries or more is often used. In the configuration of FIG. 15, there are 31 full adders and an OR circuit. Since 32 stages are required, it is difficult to implement by combinational logic in terms of speed and area, and multiple hit detection in the TLB is not generally performed.
[0020]
However, when multiple hits occur, memory access is performed at the wrong physical address as described above, and the CPU behaves in a manner that cannot be easily imagined from the program sequence, making analysis of the cause extremely difficult. Therefore, a large number of debugging steps are required.
[0021]
In recent years, with the networking of devices, completed programs can respond to changes in various services, etc., so it has become common to change programs by downloading from the network, but malicious programs such as computer viruses In the case where the program is changed due to the above and the TLB contents are in a multiple hit state, the worst system may run away.
[0022]
SUMMARY OF THE INVENTION The present invention has been made in consideration of the above problems, and has as its object to provide a data processing apparatus capable of detecting multiple hits of an associative memory and efficiently debugging a program defect.
[0023]
Another object of the present invention is to provide a data processing device capable of effectively invalidating inconsistent entries of the associative storage means and preventing runaway of the system.
[0024]
[Means for Solving the Problems]
In order to solve this problem, a data processing device according to claim 1 of the present invention comprises: a central processing unit;
Access information provided from the central processing unit, storing a plurality of first identified information and a plurality of second identified information corresponding to each of the first identified information in pairs. And detecting a match between each of the plurality of pieces of information identified by the first identification information and outputting the second identified information corresponding to the first identified information matched with the access information. Associative storage means for generating match information when each of the matches the access information;
Multiple pair matching for detecting analogously that plural pairs of information coincide with the access information at the same time when access information is given from the central processing unit to the content addressing means based on the matching information output from the content addressing means. Detecting means.
[0025]
According to this configuration, it is possible to detect that the plural pairs of information coincide with the access information at the same time by the plural pair matching detecting means, detect multiple hits of the associative memory means, and efficiently debug a program defect. I do.
[0026]
According to a second aspect of the present invention, in the data processing apparatus according to the first aspect, the plural pair matching detecting means outputs the matching information output from the associative storage means in accordance with the number thereof. Analog value conversion means for converting to a different analog value, and comparison means for comparing the analog value with the reference value, using the analog value when only a pair of information matches as a reference value, wherein the analog value is greater than the reference value. Also, when a value higher than a predetermined value is obtained, a multiple pair match detection signal is output.
[0027]
According to this configuration, the analog conversion means converts the coincidence information output from the associative storage means into analog values having different values in accordance with the number thereof, so that the level of the analog value is compared with the reference value by the comparison means. This makes it possible to easily detect that a plurality of pairs of information coincide with the access information at the same time.
[0028]
A data processing device according to a third aspect of the present invention, in the data processing device according to the first or second aspect, is a matching information holding unit that holds matching information indicating that a plurality of information pairs respectively match the access information. Is provided in each information pair.
[0029]
According to this configuration, the matching information holding unit holds the matching information indicating that each of the plurality of information pairs has matched the access information, so that it is possible to easily trace the history of which entry matched. Analysis man-hours during development can be reduced.
[0030]
According to a fourth aspect of the present invention, in the data processing apparatus according to the third aspect, when the information held by the matching information holding means is valid when the information pair invalidation request is given. Each information pair is provided with an information pair invalidating means for invalidating the corresponding information pair.
[0031]
According to this configuration, when the information pair invalidation request is given by the information pair invalidation unit, the corresponding information pair is invalidated when the content held by the matching information holding unit is valid. A state in which a plurality of entries match at the same time should not originally exist, and it is necessary to return the TLB entry to a normal state by the OS or the like. When a simultaneous hit of a plurality of entries is detected, only matching entries can be invalidated collectively, thereby reducing the number of processing steps when normalizing TLB entries.
[0032]
According to a fifth aspect of the present invention, in the data processing apparatus according to the fourth aspect, each of the matching information holding units of the information pair further stores the matching information in an arbitrary value according to the matching information setting request. It can be set to.
[0033]
According to this configuration, the matching information holding unit can set the matching information to an arbitrary value in response to the matching information setting request, so that “1” is written in the matching information holding unit of an arbitrary entry, and the information pair invalidation request is written. Is set to “1”, the number of processing steps when partially invalidating the TLB entry is reduced. Traditionally,
Preparation of TLB tag entry data (valid bit = 0)
Write to TLB tag x number of required entries
Was one step.
[0034]
In the data processing apparatus according to claim 6 of the present invention, in the data processing apparatus according to claim 4 or 5, the information pair invalidating means is configured to enable the matching information holding means in accordance with the multiple pair matching detection signal. It is characterized in that a certain information pair is invalidated.
[0035]
According to this configuration, when a plurality of pairs of information coincide with the access information at the same time, an information pair invalidation request for the corresponding information pair is generated, thereby effectively invalidating the inconsistent associative storage unit entry. Runaway can be prevented.
[0036]
According to a seventh aspect of the present invention, in the data processing apparatus according to the first, second, third, fourth, fifth or sixth aspect, the associative storage means is an address conversion table, and the first associative storage means is identified. Information is a logical page address, and the second identified information is a physical page address.
[0037]
According to this configuration, an operation similar to that of the data processing device according to the first, second, third, fourth, fifth or sixth aspect is obtained.
[0038]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to FIGS.
[0039]
(Embodiment)
In this embodiment, the logical space and the physical space are a 32-bit address space, the configuration of the TLB is 8 entries full associative, and the page size is 4 KB.
[0040]
FIG. 1 is a block diagram showing a configuration of the data processing device of the present embodiment. In FIG. 1, 110 is an MMU, 130 is a CPU (Central Processing Unit), 120 is a cache memory, 140 is an external network and memory, 131 is an external bus for transmitting and receiving commands and data, and 133 is a peripheral circuit attached to the CPU. , An address conversion request signal (trsrq) 132, a hit signal (hit) 114 indicating whether the address conversion was successful, 115 a physical address after the address conversion, and 116 a plurality of physical addresses. This is a multiple hit detection signal (mhit) indicating that the entries have been hit at the same time.
[0041]
FIG. 11 is a diagram showing a configuration of a 32-bit address of the data processing device of the present embodiment, which is the same as that described in the conventional example.
[0042]
FIG. 8 is a diagram showing the operation of the TLB tag unit 305 of the data processing device of the present embodiment, which is the same as that described in the conventional example.
[0043]
FIG. 2 is a block diagram showing a configuration of the MMU 110 in the data processing device according to the present embodiment. In FIG. 2, reference numeral 220 denotes a TLB unit (associative storage unit), 230 denotes a TLB control unit that controls the TLB unit 220, and 240 and 241 denote selectors. 133 is an IO bus, 133a is an address bus, 133b is a data bus, and 133c is an IO bus control signal.
[0044]
The selector 240 selects one of the IO-DATA 133b and the logical address va131a in accordance with the address conversion request 132 (trsrq). The selector 241 selects one of the logical page number included in the logical address va and the physical page number included in the data output dout 221 output from the TLB unit 220 according to the address conversion request signal 132.
[0045]
211 is a parallel-serial conversion unit, and 212 is a serial-parallel conversion unit. The parallel-serial conversion unit 211 converts the data from the IO-DATA 133b into serial data and outputs the data to the hit information input 228 of the TLB unit 220. The serial / parallel conversion unit 212 converts the hit information output 227 output from the TLB unit 220 into parallel data, and outputs the result to the IO-DATA 133b.
[0046]
Reference numeral 306 denotes a block in which an entry invalidating unit serving as an information pair invalidating unit described later is combined. Reference numeral 307 denotes a block in which a matching information holding unit as matching information holding means described later is put together. Reference numeral 308 denotes a multiple hit detection unit as a multiple pair match detection unit described later.
[0047]
FIG. 3 is a block diagram illustrating a configuration of the TLB unit 220 in the data processing device according to the present embodiment. In FIG. 3, reference numerals 310 to 380 denote entries in the TLB section, and each entry has the same structure. Reference numeral 311 denotes a TLB data section for storing a physical page number and a page attribute.
[0048]
A TLB 315 has a tag memory 315c for storing a logical page number, a valid bit 315b indicating whether the entry is valid or invalid, and a comparator 315a, and compares the contents of the tag memory 315c with the logical page number input from the tin 226. Tag section.
[0049]
Reference numeral 312 drives a word line 312c and 312d by a decoder 312a for decoding the indx 223 input from the outside and a match signal 315d which is a comparison result output from the TLB tag section 315 to activate the TLB tag section 315 and the TLB data section 311. This is a decoder unit for performing the following.
[0050]
Reference numeral 304 denotes an encoder unit that encodes entry numbers that match the match signals 315d to 385d output from the respective TLB tag units 315 to 385.
[0051]
Reference numeral 303 denotes a HIT detection unit that detects the presence or absence of a matching entry based on the match signals 315d to 385d.
[0052]
317 holds the hit information input 228 when the shift request signal 229 is valid, and holds the content of the match signal 315d as a search result history when the shift request signal 229 is invalid and the address conversion request 132 is valid. A match information holding unit connected to the entry invalidation unit and the shift input of the next entry.
[0053]
391 is a D flip-flop, and 392 is an OR circuit.
[0054]
316 indicates a case where the batch invalidation (request) signal (vrst) 235 for invalidating all entries of the TLB tag is valid, or a multiple hit detection signal or entry invalidation signal (evst) 390 held by the D flip-flop 391 and When any one of them is valid and the matching information holding unit 317 is valid, the valid bit 315b is cleared to zero and the entry is invalidated. When vrst is “1”, the valid bits of all entries of the TLB tag are cleared and invalidated.
[0055]
Reference numeral 308 denotes a P-type MOS transistor 308c having a source connected to a power supply, a gate connected to ground, and a drain connected to a reference signal 308f, and functioning as a pull-up resistor. An N-type MOS transistor 308b that is connected and functions as a pull-down resistor, a P-type MOS transistor 308d that is connected to a source as a power supply, a gate is grounded, a drain is connected to a detection signal 308e, and functions as a pull-up resistor, and a source is grounded , The drain is connected to the detection signal 308e, and the gate is connected to the match signal 3n5d (n = 1 to 8), and the N-type MOS transistor 3n8 functions as a pull-down resistor according to the state of the match signal 3n5d (n = 1 to 8). (N = 1 to 8) and one input Quasi signal 308f, while the detection signal 308e is composed of a sense amplifier 308a as a comparison unit connected, a multiple hit detector for detecting the difference in potential of the reference signal 308f and a detection signal 308e. The N-type MOS transistor 3n8 (n = 1 to 8) and the P-type MOS transistor 308d constitute analog value conversion means.
[0056]
The matching information holding unit 3n7 (n = 1 to 8) sequentially connects the output of the matching information holding unit 317 to the shift input of the matching information holding unit 327 and the output to the shift input of the matching information holding unit 337, The shift input of the match information holding unit 317 is connected to the hit information input 228, and the output of the match information holding unit 387 is connected to the hit information output 227.
[0057]
As shown in the equivalent circuit of FIG. 5, the potential Vref of the reference signal 308f is divided by the on-resistance Rpup of the P-type MOS transistor 308c and the on-resistance Rref of the N-type MOS transistor 308b.
[0058]
The potential Vtgt of the detection signal 308e is resistance-divided by the sum of the on-resistance Rupt of the P-type MOS transistor 308d and the on-resistance Rtgt of the N-type MOS transistor 3n8 (n = 1 to 8).
[0059]
At this time, the ON resistance value (Rtgt) of the N-type MOS transistor 3n8 (n = 1 to 8) and the ON resistance value (Rref) of the N-type MOS transistor 308b are:
Rtgt / 2 <Rref <Rtgt Formula (1)
Meet.
[0060]
FIG. 9 is an explanatory diagram showing control signals and operations provided to TLB section 220 of the present embodiment. After each symbol, the number given in FIG. 3 is written in parentheses. In FIG. 9, in FIG. 9, tin (226) is a virtual page number input to the TLB tag section 305, indx (223) is an index indicating an entry of the TLB section 220, and din (222) is input to the TLB data section 301. This data is composed of a physical page number and a page attribute. hit (114) is a hit signal. mhit (116) is a multiple hit signal. Tout (225) and dout (221) are output data of the TLB tag unit 305 and the TLB data unit 301, and their formats correspond to tin (226) and din (222), respectively.
[0061]
hp (224) is a pointer indicating an entry that has been hit at the time of searching the TLB section 220, and matches the value of indx (223) at the time of non-searching (mode = 0). The mode (231) is a signal indicating the operation mode of the TLB section 220. When "1", TLB search and conversion are performed, and when "0", search and conversion are not performed. tncs (232) and dncs (233) are selection signals for the TLB tag section 305 and the TLB data section 301, respectively. When "0", the signal is selected, and when "1", it is not selected. r-nw (234) is a signal indicating the state of access to the TLB tag unit 305 and the TLB data unit 301. If "1", read is performed; if "0", write request is performed.
[0062]
The address translation operation of the TLB unit according to the present embodiment will be described with reference to FIGS. 1 to 8, 9 and 11. FIG. 4 shows the potential Vtgt, the output Vsa of the sense amplifier 308a, and the reference potential Vref.
[0063]
The CPU 130 sends the corresponding logical address to the MMU 110 via the external bus 131a when fetching an instruction or reading / writing data. At this time, the CPU 130 sends an address conversion request 132 to the MMU 110 as necessary. In response to the address conversion request 132, the TLB control unit 230 issues an instruction to the TLB unit 220 to perform address conversion (mode = 1, tncs = 0, dncs = 0, r-nw = 1). In response, the TLB unit 220 compares the logical page number (VPN) input from the tin 226 with the tag stored in each entry of the TLB tag unit 305 according to the table in FIG.
[0064]
a) TLB hit
As a result of the comparison, if any one of the entries matches (VPN = tag) and the entry is valid (valid = 1), then match = 1, and one of dWLs 312c to 382c is activated, and from dout 221 The physical page number and page attribute stored in the matching entry are output. At the same time, the encoder unit 304 encodes the number of the hit entry and outputs it to the hp224. The selector 241 combines the physical page number included in the dout 221 and the page offset included in the logical address va131a in response to the address translation request (trsrq) 132, outputs the physical address from the pa115 as a physical address, and sends the physical address to the cache memory 120. At this time, the hit signal 114 that is the logical sum of the match signals 315d to 385d is simultaneously activated (= 1).
[0065]
At this time, since any one of the N-type MOS transistors 3n8 (n = 1 to 8) is activated, the potential of the detection signal 308e changes the power supply voltage VDD according to the equivalent circuit shown in FIG. The value obtained by dividing the resistance is expressed by the following equation (1). The relationship with the potential of the reference potential 308f is expressed by the TLB hit section in FIG.
Vref <Vtgt
Is satisfied, and as a result, the sense amplifier 308a outputs LOW, and mhit = 0.
[0066]
Also, as the search result history of each entry, 1 is held in any one of the matching information holding units 3n7 (n = 1 to 8), and 0 is held in the other.
[0067]
b) TLB mistake
On the other hand, if all entries do not match (VPN! = Tag), or if they match but the entry is invalid (VPN = tag, valid = 0), match = 0 and the hit signal 114 is inactive (= 0), whereby all the dWLs 312c to 382c are inactivated, and the output of the dout 221 becomes invalid.
[0068]
At this time, the detection signal 308e does not activate all the N-type MOS transistors 3n8 (n = 1 to 8). The potential of the detection signal 308e and the potential of the reference potential 308f are obtained from Expression (1).
Vref <Vtgt = VDD
Is satisfied (see the TLB miss section in FIG. 4), and as a result, the sense amplifier 308a outputs LOW and mhit = 0.
[0069]
In addition, as the search result history of each entry, 0 is held in the matching information holding unit 3n7 (n = 1 to 8).
[0070]
The CPU detects a TLB miss from the hit signal 114, generates a TLB exception, and shifts the processing to the TLB management program.
[0071]
c) TLB multiple hit
As a result of the comparison, if the plurality of entries match at the same time (VPN = tag) and the entry is valid (valid = 1), the plurality of dWLs 312c to 382c are activated simultaneously, and an undefined value is output from the dout 221. The hit signal 114 which is the logical sum of the match signals 315d to 385d is simultaneously activated (= 1).
[0072]
At this time, the detection signal 308e activates at least two of the N-type MOS transistors 3n8 (n = 1 to 8). The potential of the detection signal 308e is a value obtained by dividing the power supply voltage VDD by resistance according to the equivalent circuit shown in FIG. 7, and from the equation (1), the relationship with the potential of the reference potential 308f is
Vtgt <Vref
(See TLB multiple hit section in FIG. 4). As a result, the sense amplifier 308a outputs HIGH, and mhit = 1.
[0073]
In addition, as the search result history of each entry, 1 is stored in at least two of the match information storage units 3n7 (n = 1 to 8), and 0 is stored in the others.
[0074]
Further, at this time, 1 is held in the D flip-flop 391, the output of the OR circuit 392 becomes valid, and at least two entries of the match information holding unit 3n7 (n = 1 to 8) matched in the previous search are corresponded. The valid bits 3n5b (n = 1 to 8) of the TLB tag unit 305 are cleared to zero, and the corresponding entry is invalidated.
[0075]
The CPU 130 detects a TLB multiple hit from the multiple hit detection signal 116, generates a TLB exception, and shifts the processing to the TLB management program.
[0076]
d) Shift operation
In response to a write request from the CPU 130 to the coincidence information holding unit 3n7 (n = 1 to 8), the TLB control unit 230 validates the shift request 229 and sets mode = 0 to the TLB unit 220, the serial / parallel conversion unit 212, and the parallel / serial conversion. Given to the unit 211,
The parallel-to-serial converter 211 converts the data on the IO-DATA 133b into serial data and outputs the data to the hit information input 228.
[0077]
The TLB unit 220 shifts the match information holding unit 3n7 (n = 1 to 8) to sequentially shift in the hit information input 228, and simultaneously holds the hit information input 228 in the match information holding unit 3n7 (n = 1 to 8). The contents are shifted out from the hit information output 227.
[0078]
The serial / parallel converter 212 converts the hit information output 227 output from the TLB unit 220 into a serial / parallel signal and outputs the result to the IO-DATA 133b.
[0079]
Here, the meaning of the shift operation of the matching information holding unit will be described. As described above, when tracing the history of which entry has matched, it is necessary to easily trace the internal information of the TLB. As one of the methods, in the above, the coincidence information holding unit is configured as a shift register, and the coincidence information is extracted by a shift operation.
[0080]
e) Invalidation of specific entry in TLB
By the operation d), the CPU 130 sets an entry to be invalidated in the coincidence information holding unit 3n7 (n = 1 to 8) as a valid value, and sets an entry not to be invalidated as an invalid value. Further, in response to a request to invalidate a specific entry of the TLB from the CPU 130, the TLB control unit 230 validates the entry invalidation request (evst) 390. As a result, the output of the OR circuit 392 becomes valid, and the valid bit 3n5b (n = 1 to 8) of the TLB tag corresponding to the entry for which the value of the coincidence information holding unit 3n7 (n = 1 to 8) is valid. Is cleared to zero, and the specific entry is invalidated.
[0081]
As described above, according to the present embodiment, the TLB unit detects TLB multiple hits due to inconsistencies in the address conversion table registered in the TLB unit by detecting the normal hit, the multiple hit detection signal 308e, and the reference signal 308f. The potential difference is detected by the sense amplifier 308a, and multiple hits can be detected and notified to the CPU 130. In response to this notification, the CPU 130 can generate a TLB exception and shift the processing to the TLB management program, and prevent the system from running out of control by appropriate processing.
[0082]
Further, only the inconsistent portion of the TLB entry can be invalidated in conjunction with the multiple hit detection, and the processing time required for resolving the inconsistency of the TLB entry by the TLB management program can be greatly reduced.
[0083]
Also, by reading and confirming the contents stored in the coincidence information holding unit 3n7 (n = 1 to 8) by the operation d), it is possible to confirm which entry has a multiple hit and to improve the efficiency of debugging.
[0084]
Further, assuming that the number of entries is m, the TLB multiple hit detection can be realized by a sense amplifier, two P-type MOS transistors, and m + 1 n-type MOS transistors. Compared to the case using an adder, the number of required elements is small and the area can be reduced. Furthermore, there is no increase in the number of logical stages due to an increase in entries, and speed overhead can be reduced.
[0085]
In the above description, the case where the TLB section has a full associative configuration of eight entries has been described, but the TLB section can be realized with another entry configuration by expanding the number of entries.
[0086]
Although the case of the full associative configuration has been described, a set associative configuration can be similarly realized.
[0087]
In addition, although the example using the instruction and data sharing TLB has been described, the present invention can be similarly implemented when the instruction and data are separated.
[0088]
In the above-described embodiment, a case has been described where the first identified information is a logical page address (logical page number) and the second identified information is a physical page address (physical page number). However, the information identified first includes a process ID and a valid (valid) bit in addition to the above, and the information identified second includes, in addition to the above, a page attribute (Read / Write). Permission, etc.), information indicating whether the page is valid, information indicating whether page writing is performed, and the like.
[0089]
【The invention's effect】
The data processing apparatus of the present invention can detect that multiple pairs of information coincide with access information at the same time by the multiple pair matching detection means, detect multiple hits in the associative storage means, and efficiently debug program defects. Make it possible.
[0090]
This makes it possible to detect multiple hits of the associative storage means and notify the central processing unit, and the central processing unit generates an exception of the associative storage means and shifts the processing to the management program of the associative storage means in response to the notification. It is possible to prevent runaway of the system by appropriate processing.
[0091]
Further, in conjunction with the multiple hit detection, only the inconsistent portion of the associative storage means entry can be invalidated, and the processing time required for solving the inconsistency of the associative storage means entry by the associative storage means management program can be greatly reduced. It becomes.
[0092]
Further, by reading and confirming the contents stored in the coincidence information holding means, it is possible to confirm which entry has made multiple hits, thereby improving the efficiency of debugging.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a data processing device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of an MMU in the data processing device of the embodiment.
FIG. 3 is a block diagram showing a configuration of a TLB unit in the data processing device of the embodiment.
FIG. 4 is a signal waveform diagram illustrating an operation of a multiple pair match detection unit of the TLB unit according to the embodiment.
FIG. 5 is an equivalent circuit diagram showing a potential of a reference signal of a multiple pair match detection unit of the TLB unit according to the embodiment.
FIG. 6 is an equivalent circuit diagram showing a potential at the time of a TLB hit of a detection signal of a multiple pair match detection unit of the TLB unit of the embodiment.
FIG. 7 is an equivalent circuit diagram showing a potential at the time of a TLB multiple hit of a detection signal of the multiple pair match detection unit of the TLB unit of the embodiment.
FIG. 8 is an explanatory diagram showing an operation of the TLB tag unit according to the embodiment.
FIG. 9 is an explanatory diagram showing an operation of a TLB unit according to the embodiment.
FIG. 10 is an explanatory diagram showing an operation of a conventional TLB section.
FIG. 11 is a schematic diagram showing a configuration of a 32-bit address of the data processing device according to the embodiment.
FIG. 12 is a block diagram showing a configuration of a conventional data processing device.
FIG. 13 is a block diagram showing a configuration of an MMU in a conventional data processing device.
FIG. 14 is a block diagram illustrating a configuration of a TLB unit in a conventional data processing device.
FIG. 15 is a circuit diagram showing a configuration of a conventional multiple pair match detection circuit of the TLB section.
FIG. 16 is an explanatory diagram showing the operation of a full adder of a conventional multiple pair match detection circuit in a TLB section.
FIG. 17 is an explanatory diagram showing the operation of a conventional multiple pair match detection circuit of the TLB section.
[Explanation of symbols]
110 MMU
114 hit signal
115 physical address
116 Multiple hit signal
120 cache memory
130 Central Processing Unit
131 External bus
132 Address conversion request signal
133 IO bus
140 External network and memory
220 TLB section
230 TLB control unit

Claims (7)

中央処理装置と、
第1に識別される複数の情報と、前記第1に識別される複数の情報のそれぞれに対応する第2に識別される複数の情報とを対にして記憶し、前記中央処理装置から与えられるアクセス情報と前記第1に識別される複数の情報の各々との一致を検出し、前記アクセス情報と一致した前記第1に識別される情報に対応した前記第2に識別される情報を出力するとともに、複数対の情報の各々が前記アクセス情報に一致したときに各々一致情報を発生する連想記憶手段と、
前記連想記憶手段から出力される一致情報を基にして前記中央処理装置から前記連想記憶手段に前記アクセス情報が与えられたときに複数対の情報が同時に前記アクセス情報に一致したことをアナログ的に検出する複数対一致検出手段とを備えたデータ処理装置。
A central processing unit;
A plurality of first identified information and a plurality of second identified information corresponding to each of the first identified information are stored in pairs and provided from the central processing unit. Detecting a match between the access information and each of the plurality of first identified information, and outputting the second identified information corresponding to the first identified information matching the access information; And an associative storage unit that generates matching information when each of a plurality of pairs of information matches the access information;
When the access information is given from the central processing unit to the associative storage means based on the coincidence information output from the associative storage means, it is analogized that a plurality of pairs of information coincide with the access information at the same time. A data processing device comprising: a plurality of matching detecting means for detecting.
前記複数対一致検出手段は、前記連想記憶手段から出力される一致情報を、その個数に応じて値の異なるアナログ値に変換するアナログ値変換手段と、一対の情報のみが一致したときのアナログ値を基準値として、前記アナログ値と前記基準値とを比較する比較手段とを有し、前記アナログ値が前記基準値よりも所定値以上高い値をとった場合に複数対一致検出信号を出力することを特徴とする請求項1に記載のデータ処理装置。The plural-pair matching detecting means includes an analog value converting means for converting the matching information output from the associative storage means into analog values having different values according to the number of the matching information, And a comparing unit that compares the analog value with the reference value, and outputs a multiple-pair match detection signal when the analog value is higher than the reference value by a predetermined value or more. The data processing device according to claim 1, wherein: 前記複数の情報対が各々前記アクセス情報に一致した旨を示す前記一致情報を保持する一致情報保持手段をそれぞれの情報対が備えることを特徴とする請求項1または2に記載のデータ処理装置。3. The data processing apparatus according to claim 1, wherein each of the information pairs includes a match information holding unit that holds the match information indicating that the plurality of information pairs match the access information. 情報対無効化要求が与えられたときに、前記一致情報保持手段の保持する内容が有効である場合に該当情報対を無効化する情報対無効化手段をそれぞれの情報対が備えることを特徴とする請求項3に記載のデータ処理装置。When an information pair invalidation request is given, each information pair includes an information pair invalidating unit that invalidates the corresponding information pair when the content held by the matching information holding unit is valid. The data processing device according to claim 3. 前記情報対のそれぞれの一致情報保持手段はさらに、一致情報設定要求に応じて前記一致情報を任意の値に設定できることを特徴とする請求項4に記載のデータ処理装置。5. The data processing apparatus according to claim 4, wherein each match information holding unit of the information pair can further set the match information to an arbitrary value in response to a match information setting request. 前記情報対無効化手段は、前記複数対一致検出信号に応じて、前記一致情報保持手段が有効である情報対を無効化することを特徴とする請求項4または5に記載のデータ処理装置。The data processing apparatus according to claim 4, wherein the information pair invalidating unit invalidates an information pair for which the matching information holding unit is valid, in accordance with the multiple pair matching detection signal. 前記連想記憶手段がアドレス変換バッファであり、前記第1に識別される情報が論理ページアドレスであり、前記第2に識別される情報が物理ページアドレスであることを特徴とする請求項1,2,3,4,5または6に記載のデータ処理装置。4. The method according to claim 1, wherein the associative memory is an address translation buffer, the first identified information is a logical page address, and the second identified information is a physical page address. , 3, 4, 5 or 6.
JP2002194615A 2002-07-03 2002-07-03 Data processor Pending JP2004038553A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002194615A JP2004038553A (en) 2002-07-03 2002-07-03 Data processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002194615A JP2004038553A (en) 2002-07-03 2002-07-03 Data processor

Publications (1)

Publication Number Publication Date
JP2004038553A true JP2004038553A (en) 2004-02-05

Family

ID=31703270

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002194615A Pending JP2004038553A (en) 2002-07-03 2002-07-03 Data processor

Country Status (1)

Country Link
JP (1) JP2004038553A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509303A (en) * 2013-02-05 2016-03-24 エイアールエム リミテッド Operation of data processor memory access operations

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016509303A (en) * 2013-02-05 2016-03-24 エイアールエム リミテッド Operation of data processor memory access operations
US9940268B2 (en) 2013-02-05 2018-04-10 Arm Limited Handling memory access protection and address translation in a data processing apparatus

Similar Documents

Publication Publication Date Title
EP1934753B1 (en) Tlb lock indicator
US4332010A (en) Cache synonym detection and handling mechanism
JP3740195B2 (en) Data processing device
KR101057526B1 (en) Address translation method and device
US7089398B2 (en) Address translation using a page size tag
JP5108002B2 (en) Virtually tagged instruction cache using physical tagging operations
JP5526626B2 (en) Arithmetic processing device and address conversion method
EP1941512B1 (en) High speed cam lookup using stored encoded key
CN107735773B (en) Method and apparatus for cache tag compression
JPH08320829A (en) Data processor
US20080034179A1 (en) Guard bands in very large virtual memory pages
JPH0619793A (en) History table of virtual address conversion estimation for cache access
JPH11161547A (en) Storage device for data processor and method for accessing storage place
KR100612167B1 (en) Method and apparatus for translating guest physical addresses in a virtual machine environment
JP2007280421A (en) Data processor
JP2004038553A (en) Data processor
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses
US7607048B2 (en) Method and apparatus for protecting TLB&#39;s VPN from soft errors
JPH02308349A (en) Buffer storage control system
JP2005108262A (en) Data processor
JP2564377B2 (en) Information processing device with cache memory
CN116991312A (en) Hierarchical storage system reinforcement method and device based on dynamic local triple-modular redundancy
JP2011180969A (en) Data processor
JPH0614324B2 (en) Computer system
JPH1027134A (en) Address converter and processor using the converter