JP2001034537A - アドレス変換回路 - Google Patents

アドレス変換回路

Info

Publication number
JP2001034537A
JP2001034537A JP11209775A JP20977599A JP2001034537A JP 2001034537 A JP2001034537 A JP 2001034537A JP 11209775 A JP11209775 A JP 11209775A JP 20977599 A JP20977599 A JP 20977599A JP 2001034537 A JP2001034537 A JP 2001034537A
Authority
JP
Japan
Prior art keywords
address
bit string
virtual address
result
comparison
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.)
Abandoned
Application number
JP11209775A
Other languages
English (en)
Inventor
Seiko Hayakawa
川 誠 幸 早
Takeshi Midorikawa
川 剛 緑
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP11209775A priority Critical patent/JP2001034537A/ja
Priority to TW089114628A priority patent/TW587209B/zh
Priority to KR1020000042336A priority patent/KR100354465B1/ko
Priority to US09/624,244 priority patent/US6418520B1/en
Publication of JP2001034537A publication Critical patent/JP2001034537A/ja
Abandoned legal-status Critical Current

Links

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/342Extension of operand address space
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/68Details of translation look-aside buffer [TLB]
    • G06F2212/681Multi-level TLB, e.g. microTLB and main TLB

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【課題】 アクセス要求のあった仮想アドレスを高速に
物理アドレスに変換することができるアドレス変換回路
を提供する。 【解決手段】 本発明のアドレス変換回路は、CLA回
路101と、アダー102,103と、CAM104
と、キャリーアウト選択部105と、物理アドレス格納
部106と、物理アドレス選択部107とを備えてい
る。アクセス要求のあったベースアドレスとオフセット
アドレスの上位側ビット列同士の加算を行う際、下位側
ビット列からのキャリーアウト信号が演算される前に、
キャリーアウト信号を「0」と仮定した場合の上位側ビ
ット列同士の加算と、キャリーアウト信号を「1」と仮
定した場合の上位側ビット列同士の加算とを予め行い、
これら加算結果のいずれかをキャリーアウト信号により
選択して比較処理を行うため、物理アドレスへの変換を
高速に行うことができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、外部から入力され
た仮想アドレスを物理アドレスに変換するアドレス変換
回路に関し、例えば、マイクロプロセッサに内蔵される
回路を対象とする。
【0002】
【従来の技術】最近のプロセッサは、仮想的なアドレス
空間の一部を主メモリに割り当てる仮想アドレス方式を
採用している。仮想アドレス方式を採用することによ
り、アプリケーション・プログラムは主メモリを意識す
ることなくメモリアクセスが可能となり、プログラミン
グが容易になる。
【0003】仮想アドレスは、ベースアドレスとオフセ
ットアドレスとを加算することにより得られる。プロセ
ッサの内部には、仮想アドレスを物理アドレスに変換す
るためのアドレス変換回路(TLB:Translation Lookaside
Buffer)が設けられている。図12は従来のアドレス変
換回路の概略構成を示すブロック図である。図12のア
ドレス変換回路は、ベースアドレス[31:0]とオフセット
アドレス[31:0]とを加算するアダー121と、アダー1
21から出力された仮想アドレスとキャッシュメモリに
格納されているデータに対応する仮想アドレスとを比較
するCAM(Contents Addressable Memory)122と、
キャッシュメモリに格納されているデータに対応する物
理アドレスを格納する物理アドレス格納部123と、C
AM122の比較結果に基づいて、アクセス要求のあっ
た仮想アドレスに対応する物理アドレス[31:20]を物理
アドレス格納部123から読み出す選択部124とを備
えている。
【0004】
【発明が解決しようとする課題】図12の回路では、ア
ダー121から加算結果である仮想アドレスが出力され
てからCAM122で比較を行うため、アダー121の
演算時間によりTLB全体の処理時間が決まってしま
い、高速化が図れない。
【0005】一方、図13は図12よりも高速処理が可
能な従来のTLBのブロック図である。図13のTLB
内のアダー125は、アクセス要求のあった仮想アドレ
スのベースアドレスとオフセットアドレスの下位側ビッ
ト列[11:0]同士を加算する。また、図13のCAM12
6は、アクセス要求のあったベースアドレスとオフセッ
トアドレスの上位側ビット列[31:12]同士を、キャッシ
ュメモリに格納されているデータに対応するベースアド
レスとオフセットアドレスの上位側ビット列[31:12]同
士と比較するとともに、アダー125から出力されたキ
ャリーアウト(桁上がり)信号を、キャッシュメモリに
格納されているデータに対応するベースアドレスとオフ
セットアドレスの下位側ビット列同士を加算した場合の
キャリーアウト信号と比較する。
【0006】図13のTLBでは、下位12ビット分だ
けアダー125で加算を行うため、図12よりもアダー
125の演算時間が短くなる。しかしながら、アダー1
25からキャリーアウト信号が出力されるまで、CAM
126は比較処理を行うことができない。したがって、
図13のTLBも、アダー125の演算時間によりTL
B全体の処理時間が決まってしまう。
【0007】一方、図14はUSP5,606,683に開示された
TLBのブロック図である。図14のTLBは、アダー
125で演算された仮想アドレスの中間ビット列[11:8]
もCAM127で比較を行う点に特徴がある。
【0008】このため、図13のTLBよりも、仮想ア
ドレスの一致/不一致を正確に判断できるが、アダー1
25の演算処理が終了するまでCAM127で比較処理
を行うことができないため、やはり、アダー125の演
算時間によりTLB全体の処理時間が決まってしまう。
【0009】本発明は、このような点に鑑みてなされた
ものであり、その目的は、アクセス要求のあった仮想ア
ドレスを高速に物理アドレスに変換することができるア
ドレス変換回路を提供することにある。
【0010】
【課題を解決するための手段】上述した課題を解決する
ために、請求項1の発明は、アクセス要求のあった仮想
アドレスを物理アドレスに変換するアドレス変換回路に
おいて、キャッシュメモリに格納されたデータに対応す
る仮想アドレスの上位側ビット列を格納する上位側ビッ
ト列格納手段と、アクセス要求のあった仮想アドレスの
ベースアドレスとオフセットアドレスとの下位側ビット
列同士を加算したときの桁上がりの有無を予め予測し
て、該仮想アドレスのベースアドレスとオフセットアド
レスとの上位側ビット列同士を加算する上位側ビット列
加算手段と、アクセス要求のあった仮想アドレスのベー
スアドレスとオフセットアドレスとの下位側ビット列同
士を加算したときの桁上がり情報を演算する桁上がり演
算手段と、前記上位側ビット列加算手段による加算結果
と前記上位側ビット列格納手段に格納された仮想アドレ
スの上位側ビット列とを比較する上位側ビット列比較手
段と、前記桁上がり演算手段の演算結果と、前記上位側
ビット列比較手段の比較結果とに基づいて、アクセス要
求のあった仮想アドレスを物理アドレスに変換するアド
レス変換手段と、を備える。
【0011】請求項1の発明では、アクセス要求のあっ
た仮想アドレスのベースアドレスとオフセットアドレス
との下位側ビット列同士を加算したときの桁上がり情報
を演算するのに並行して、仮想アドレスの上位側ビット
列同士の比較処理を行うため、物理アドレスへの変換に
要する時間を短縮することができる。
【0012】請求項2の発明は、下位側ビット列同士を
加算したときの桁上がりを「0」と仮定して上位側ビッ
ト列同士を加算する第1の加算手段と、桁上がりを
「1」と仮定して上位側ビット列同士を加算する第2の
加算手段とを有する。前記桁上がり演算手段にて桁上が
り情報が演算される前に、前記第1の加算手段による加
算結果と前記上位側ビット列格納手段に格納された仮想
アドレスの上位側ビット列とを比較し、かつ、前記第2
の加算手段による加算結果と前記上位側ビット列格納手
段に格納された仮想アドレスの上位側ビット列とを比較
する。
【0013】請求項3の発明では、下位側ビット列から
の桁上がりを予め予測して複数の物理アドレスを読み出
しておき、前記桁上がり情報演算手段で桁上がり情報が
演算されると、いずれかの物理アドレスを選択する。こ
れにより、桁上がり情報演算手段での演算時間に余裕が
生じる。
【0014】請求項4の発明は、アクセス要求のあった
仮想アドレスを物理アドレスに変換するアドレス変換回
路において、キャッシュメモリに格納されたデータに対
応する仮想アドレスの上位側ビット列を格納する上位側
ビット列格納手段と、キャッシュメモリに格納されたデ
ータに対応する仮想アドレスのベースアドレスとオフセ
ットアドレスとの下位側ビット列同士を加算したときの
桁上がり情報を格納する桁上がり情報格納手段と、アク
セス要求のあった仮想アドレスのベースアドレスとオフ
セットアドレスとの下位側ビット列同士を加算したとき
の桁上がり情報を演算する桁上がり情報演算手段と、ア
クセス要求のあった仮想アドレスのベースアドレスおよ
びオフセットアドレスの上位側ビット列と、前記上位側
ビット列格納手段に格納された仮想アドレスのベースア
ドレスおよびオフセットアドレスの上位側ビット列とを
比較する上位側ビット列比較手段と、前記桁上がり情報
格納手段に格納された情報と、前記桁上がり情報演算手
段により演算された桁上がり情報と、前記上位側ビット
列比較手段による比較結果とに基づいて、アクセス要求
のあった仮想アドレスを物理アドレスに変換するアドレ
ス変換手段と、を備える。
【0015】請求項4の発明では、キャッシュメモリに
格納されたデータに対応する仮想アドレスの下位側ビッ
ト列からの桁上がり情報を予め格納しておき、アクセス
要求のあった仮想アドレスの下位側ビット列からの桁上
がり情報と比較する。この比較結果と、上位側ビット列
同士の比較結果とに基づいて、アクセス要求のあった仮
想アドレスを物理アドレスに変換する。このように、仮
想アドレスの一部だけを比較するだけで、アドレスの一
致/不一致を判断できるため、処理を高速化することが
できる。
【0016】請求項5の発明では、桁上がり情報比較手
段による比較結果と、上位側ビット列比較手段による比
較結果とに基づいて、仮想アドレスを物理アドレスに変
換する。
【0017】請求項6の発明では、下位側ビット列から
の桁上がりがあると仮定した場合と、ないと仮定した場
合のそれぞれについて、上位側ビット列同士の比較を行
い、これら比較結果のいずれかを桁上がり情報演算手段
により演算された桁上がり情報に基づいて選択する。
【0018】請求項7の発明では、下位側ビット列から
の桁上がりがあると仮定した場合と、ないと仮定した場
合のそれぞれについて、アクセス要求のあった仮想アド
レスを物理アドレスに変換し、これら物理アドレスのい
ずれかを桁上がり演算手段により演算された桁上がり情
報に基づいて選択する。
【0019】請求項8の発明は、アクセス要求のあった
仮想アドレスを物理アドレスに変換するアドレス変換回
路において、キャッシュメモリに格納されたデータに対
応する仮想アドレスの上位側ビット列を格納する上位側
ビット列格納手段と、前記キャッシュメモリに格納され
たデータに対応する仮想アドレスの中間ビット列を格納
する中間ビット列格納手段と、アクセス要求のあった仮
想アドレスのベースアドレスとオフセットアドレスとの
下位側ビット列同士を加算したときの桁上がりの有無を
予め予測して、該仮想アドレスのベースアドレスとオフ
セットアドレスとの中間ビット列同士を加算する中間ビ
ット列加算手段と、前記中間ビット列加算手段による加
算結果と前記中間ビット列格納手段に格納された仮想ア
ドレスの中間ビット列とを比較する中間ビット列比較手
段と、アクセス要求のあった仮想アドレスのベースアド
レスおよびオフセットアドレスの上位側ビット列と、前
記上位側ビット列格納手段に格納された仮想アドレスの
ベースアドレスおよびオフセットアドレスの上位側ビッ
ト列とを比較する上位側ビット列比較手段と、アクセス
要求のあった仮想アドレスのベースアドレスとオフセッ
トアドレスとの下位側ビット列同士を加算したときの桁
上がり情報を演算する桁上がり情報演算手段と、前記上
位側ビット列比較手段による比較結果と、前記中間ビッ
ト列比較手段による比較結果と、前記桁上がり情報演算
手段による演算結果とに基づいて、アクセス要求のあっ
た仮想アドレスを物理アドレスに変換するアドレス変換
手段と、を備える。
【0020】請求項8の発明では、アクセス要求のあっ
た仮想アドレスの下位側ビット列からの桁上がりを予め
予測して、該仮想アドレスの中間ビット列の演算とその
比較処理を行うため、桁上がり情報演算手段での演算時
間に余裕が生じる。
【0021】請求項9の発明の第1の比較手段は、アク
セス要求のあった仮想アドレスの下位側ビット列からの
桁上がりを「0」と仮定して、該仮想アドレスの中間ビ
ット列を演算する。また、第2の比較手段は、アクセス
要求のあった仮想アドレスの下位側ビット列からの桁上
がりを「1」と仮定して、該仮想アドレスの中間ビット
列を演算する。これら加算処理と、その後に行われる比
較処理は、桁上がり情報演算手段による演算処理と並行
して行うことができる。
【0022】請求項10の発明では、仮想アドレスの下
位側ビット列からの桁上がりを予め予測して、中間ビッ
ト列同士の比較結果と上位側ビット列同士の比較結果と
の論理積を2種類演算しておき、これら論理積のいずれ
かを桁上がり情報演算手段により演算された桁上がり情
報で選択する。
【0023】請求項11の発明では、仮想アドレスの下
位側ビット列からの桁上がりを予め予測して、2種類の
物理アドレスを読み出しておき、これら物理アドレスの
いずれか一方を、桁上がり情報演算手段により演算され
た桁上がり情報で選択する。
【0024】
【発明の実施の形態】以下、本発明に係るアドレス変換
回路について、図面を参照しながら具体的に説明する。
以下では、本発明に係るアドレス変換回路をマイクロプ
ロセッサの内部に設ける例について説明する。
【0025】(第1の実施形態)まず、マイクロプロセ
ッサの内部構成について説明する。図1はマイクロプロ
セッサの内部構成を示すブロック図である。図1のマイ
クロプロセッサは、外部バスB1に接続されたバス・イン
ターフェース・ユニット1と、プロセッサにより実行さ
れる命令をフェッチするIFU(Instruction Fetch Unit)
2と、仮想アドレスを物理アドレスに変換するMMU(Memo
ry Management Unit)3と、ロード/ストアに関する命
令を実行するLSU(Load Store Unit)4と、ロード/スト
ア以外の命令を実行する複数の実行ユニット5a,5b,5c
と、浮動小数点演算を行うFPU(Floating Point Units)6
a,6b,6cと、プロセッサ内の各ブロックを制御する制御
ロジック部7とを備えている。
【0026】IFU2は、分岐命令等の分岐先を格納するB
TACを参照してPC(Program Counter)を生成するPCパイプ
(PC-pipe)21と、命令を一時的に格納するICACHE(Instru
ction Cache memory)22と、命令のタイプを識別して識
別した命令を実行するための実行ユニットを選択する命
令発行&ステージング・ブロック(Instruction issue&
Staging block)23とを有する。
【0027】MMU3は、仮想アドレスを物理アドレスに
変換するための3つのTLBs(Translation Lookaside Buf
fers)を有する。プロセッサにより必要とされるアドレ
ス変換情報、例えば、物理ページ番号やメモリ保護情報
は、TLBsに書き込まれる。この情報に基づいて、MMU3
は、物理アドレスへの変換を行う。
【0028】MMU3内の3種類のTLBsは、JTLB(Joint Tr
anslation Lookaside Buffer)31と、ITLB(Instruction
Translation Lookaside Buffer)32と、DTLB(Data Trans
lation Lookaside Buffer)33とである。
【0029】ITLB32とDTLB33は、総称してmicro TLBと
呼ばれる。ITLB32は、命令の仮想アドレスのdatapathに
直接接続された専用のTLBである。DTLB33は、データの
仮想アドレスのdatapathに直接接続された専用のTLBで
ある。これらTLBsのエントリー数は少ないが、高速度に
アドレス変換を行う。JTLB31により生成された変換テー
ブルの一部が、必要に応じて、ITLB32やDTLB33にコピー
される。
【0030】JTLB31はソフトウェアにより制御されるの
に対し、micro TLBsとJTLBとのcoherencyはハードウェ
アにより維持される。マイクロプロセッサは、JTLB31内
に変換テーブルが存在しない場合には、例外を発行す
る。例外ハンドラーは、OSのページテーブルから対応す
るページを検索し、変換テーブルの情報をJTLB31に書き
込む。
【0031】LSU4は、外部メモリに対する読み書きデ
ータを一時的に格納するDCACHE(DataCache Memory)41
と、DCACHE41にアクセスするのに必要な仮想アドレスを
生成するアドレス生成器(Virtual Address Computatio
n)43とを有する。
【0032】制御ロジック部 7は、プロセッサ内の各ブ
ロックを制御する。制御ロジック部7内に制御レジスタ7
1が設けられる。
【0033】次に、図1に示すマイクロプロセッサの動
作を説明する。まず、IFU2は、PCパイプ21により生
成されたPCに基づいて命令をフェッチする。なお、PCは
仮想アドレスである。
【0034】ITLB32は、PCを仮想アドレスから物理アド
レスに変換する。変換された物理アドレスは、ICACHE22
内のITAGの検索に利用される。すなわち、物理アドレス
は、PCにより指示された命令がICACHE22内に存在するか
否かを検出するために利用される。PCにより指示された
命令がICACHE22内に存在しない場合、すなわち、キャッ
シュミスの場合には、物理アドレスを用いて不図示の外
部メモリへのアクセスが行われる。
【0035】キャッシュミスが起こると、キャッシュミ
スが起こったことを示す情報と物理アドレス情報とがBI
U1内の制御ロジック部に渡される。BIU1は、これらの
情報に基づいて外部メモリへのアクセスを行う。外部メ
モリへのアクセスが終了すると、キャッシュラインの取
得を知らせる信号がIFU2に供給される。IFU2は、メモ
リへのアクセスにより得られたデータをICACHE22に書き
込む。同時に、リフィルされたキャッシュラインに含ま
れる命令のうち、PCにより指示された命令と、特定の場
合には、PCにより指示された命令に続く数命令が命令発
行&ステージング・ブロック23に供給される。
【0036】一方、PCにより指示された命令がICACHE22
内に存在する場合には、ICACHE22内の対応する命令と、
特定の場合には、PCにより指示された命令に続く数命令
が命令発行&ステージング・ブロック命令発行&ステー
ジング・ブロック23に供給される。
【0037】命令発行&ステージング・ブロック23は、
命令のタイプを識別し、命令の実行を行う実行ユニット
(例えば、LSU4または他の実行ユニット)を決定す
る。この場合、命令発行&ステージング・ブロック23
は、各実行ユニットの空き状態に応じて、実行ユニット
を動的に決定する。
【0038】例えば、識別された命令がロード/ストア
命令の場合には、LSU4のみが命令を実行可能であるた
め、命令発行&ステージング・ブロック23は、LSU4が
命令を実行できる準備が整ったときにLSU4にその命令
を送る。
【0039】図2はMMU3の内部構成を示す図である。
上述したように、MMU3の内部には3つのTLBsが設けら
れている。3つのTLBsのうち、JTLB31が本来のTLBであ
る。JTLB31は、例えば、48のエントリーを有し、各ペー
ジごとに仮想アドレスをマッピングすることにより、物
理アドレスへの変換用の変換テーブルを生成する。
【0040】JTLB31により生成された変換テーブルは、
必要に応じて、ITLB32とDTLB32にコピーされる。このよ
うに、TLBsを3つに分ける理由は、JTLB31は多数のエン
トリーを有することから、アドレスの変換処理を行うの
に時間がかかるためである。したがって、変換テーブル
の中から、実際に変換に必要な部分のみをITLB32やDTLB
33にコピーして変換処理を高速化している。
【0041】次に、図2のTLBs(以下、総称してアドレ
ス変換回路と呼ぶ)の内部構成について詳述する。
【0042】図3は本発明に係るアドレス変換回路の第
1の実施形態の概略構成を示すブロック図であり、図1
2のアドレス変換回路を改良したものである。図3のア
ドレス変換回路は、CLA(Carry Lookaside)回路10
1と、アダー(上位側ビット列加算手段、第1の加算手
段)102と、アダー(上位側ビット列加算手段、第2
の加算手段)103と、CAM(Contents Addressable
Memory)104と、キャリーアウト選択部105と、物
理アドレス格納部106と、物理アドレス選択部107
とを備えている。物理アドレス格納部106と物理アド
レス選択部107とがアドレス変換手段に対応する。
【0043】CLA回路(桁上がり演算手段)101
は、アクセス要求のあった仮想アドレスの元となるベー
スアドレスとオフセットアドレスの下位側ビット列[19:
0]同士を加算したときの桁上がり情報(キャリーアウト
信号)を出力する。アダー102,103の加算処理が
終了する前に出力するのが望ましい。101は、例え
ば、図4のような回路で構成される。図4の回路は、4
ビットA0〜A3,B0〜B3同士の加算を行ってcarry信号を
出力する例を示している。
【0044】アダー102は、下位側ビット列[19:0]か
らの桁上がりがないと仮定して、アクセス要求のあった
仮想アドレスのベースアドレスとオフセットアドレスの
上位側ビット列[31:20]同士を加算した結果を出力す
る。
【0045】アダー103は、下位側ビット列[19:0]か
らの桁上がりがあると仮定して、アクセス要求のあった
仮想アドレスのベースアドレスとオフセットアドレスの
上位側ビット列[31:20]同士を加算した結果を出力す
る。すなわち、アダー103は、アダー102の出力に
「1」を加えた値を出力する。
【0046】CAM104は、図1のDCASHE41(以
下、単にキャッシュメモリと呼ぶ)に格納されているデ
ータに対応する仮想アドレスの上位側ビット列[31:20]
を格納する上位側ビット列格納部(上位側ビット列格納
手段)104aと、アダー102の出力と上位側ビット列格
納部104aに格納されている仮想アドレスとを比較して比
較結果を出力する第1のアドレス比較部(上位側ビット
列比較手段、第1の比較手段)104bと、アダー103の
出力と上位側ビット列格納部104aに格納されている仮想
アドレスとを比較して比較結果を出力する第2のアドレ
ス比較部(上位側ビット列比較手段、第2の比較手段)
104cとを有する。
【0047】上位側ビット列格納部104aは、例えば、4
つのエントリーEntry0〜3に分かれており、各エント
リーごとに、それぞれ異なる仮想アドレスを格納する。
第1および第2のアドレス比較部104b,104cは、各エン
トリーごとにアドレスの比較を行い、すべてのエントリ
ーの比較結果を示す4ビットの信号Entry0[3:0],Entry
1[3:0]を出力する。
【0048】キャリーアウト選択部105は、CLA回
路101から出力されたキャリーアウト信号に応じて、
第1および第2のアドレス比較部104b,104cのいずれか
一方の比較結果[3:0]を選択する。
【0049】物理アドレス格納部106は、複数のエン
トリー(例えば、Entry0〜3)のそれぞれごとに、キ
ャッシュメモリに格納されているデータに対応する物理
アドレスを格納する。
【0050】物理アドレス選択部107は、キャリーア
ウト選択部105が選択した信号[3:0]に基づいて、物
理アドレス格納部106のエントリーを選択し、選択し
たエントリーに格納されている物理アドレス[31:12]を
読み出す。以上の手順により、アクセス要求のあった仮
想アドレスを物理アドレスに変換する処理が完了する。
【0051】アクセス要求のあった仮想アドレスに対応
する物理アドレスが物理アドレス格納部106に格納さ
れていない場合には、キャッシュメモリへのリフィル処
理が行われるが、その詳細については省略する。
【0052】なお、物理アドレスの下位側ビット列[11:
0]は、ページオフセットを表しており、アクセス要求の
あった仮想アドレスの下位側ビット列[11:0]と同じであ
る。したがって、下位側ビット列の変換処理は行われな
い。
【0053】このように、第1の実施形態では、アクセ
ス要求のあったベースアドレスとオフセットアドレスの
上位側ビット列同士の加算を行う際、下位側ビット列か
らのキャリーアウト信号が演算される前に、キャリーア
ウト信号を「0」と仮定した場合の上位側ビット列同士
の加算と、キャリーアウト信号を「1」と仮定した場合
の上位側ビット列同士の加算とを予め行うため、CLA
回路101からキャリーアウト信号が出力される前に比
較処理を開始することができる。したがって、物理アド
レスへの変換を高速に行うことができる。
【0054】(第2の実施形態)第2の実施形態は、第
1の実施形態の変形例である。
【0055】図5はアドレス変換回路の第2の実施形態
の概略構成を示すブロック図である。図5では、図3と
同一の構成部分には同一符号を付しており、以下では、
相違点を中心に説明する。
【0056】図5のアドレス変換回路は、CLA回路1
01と、アダー102,103と、CAM104と、キ
ャリーアウト選択部(物理アドレス選択手段)105
と、物理アドレス格納部106と、第1および第2の物
理アドレス選択部107a,107bとを備えている。
【0057】第1の物理アドレス選択部107aは、C
AM104内の第1のアドレス比較部104bから出力され
た比較結果信号[3:0]に基づいて、物理アドレス格納部
106のエントリーを選択し、選択したエントリーに格
納されている物理アドレスを読み出す。また、第2の物
理アドレス選択部107bは、CAM104内の第2の
アドレス比較部104cから出力された比較結果信号[3:0]
に基づいて、物理アドレス格納部106のエントリーを
選択し、選択したエントリーに格納されている物理アド
レスを読み出す。
【0058】キャリーアウト選択部105は、CLA回
路101から出力されたキャリーアウト信号に基づい
て、第1および第2の物理アドレス選択部107a,107
bのいずれか一方から出力された物理アドレスを選択す
る。
【0059】このように、第2の実施形態では、CLA
回路101からキャリーアウト信号が出力される前に、
キャリーアウト信号を「0」と仮定した場合の物理アド
レスと「1」と仮定した場合の物理アドレスとを、物理
アドレス格納部106から読み出しておき、キャリーア
ウト信号が出力されると、いずれか一方の物理アドレス
を選択するようにしたため、CLA回路101の処理に
時間がかかっても、物理アドレスへの変換を高速に行う
ことができる。
【0060】(第3の実施形態)第3の実施形態は、図
13の回路を改良したものである。
【0061】図6はアドレス変換回路の第3の実施形態
の概略構成を示すブロック図である。図6では、図3と
同一の構成部分には同一符号を付しており、以下では、
相違点を中心に説明する。
【0062】図6のアドレス変換回路は、アダー108
と、キャリーアウト用メモリ109と、CAM110
と、キャリーアウト選択部105と、一致回路111
と、物理アドレス格納部106と、物理アドレス選択部
107とを備えている。
【0063】アダー108は、アクセス要求のあった仮
想アドレスのベースアドレスとオフセットアドレスの下
位側ビット列[11:0]同士を加算し、加算結果を示す仮想
アドレス[11:0]とキャリーアウト信号とを出力する。
【0064】キャリーアウト用メモリ109は、キャッ
シュメモリに格納されているデータに対応する仮想アド
レスの下位側12ビットからの桁上がり情報(キャリーア
ウト信号)を格納する。キャッシュメモリのエントリー
が複数(例えば、4つ)ある場合には、各エントリーご
とに、対応するキャリーアウト信号を格納する。
【0065】キャリーアウト選択部105は、キャリー
アウト用メモリ109に格納されているキャリーアウト
信号と、アダー108から出力されたキャリーアウト信
号とが一致するか否かを示す信号を出力する。
【0066】CAM110は、キャッシュメモリの各エ
ントリーごとに、上位側ビット列格納部110aと、上位側
ビット列比較部110bとを有する。
【0067】上位側ビット列格納部110aは、キャッシュ
メモリに格納されているデータに対応する仮想アドレス
のベースアドレスとオフセットアドレスの上位側ビット
列[31:12]を格納する。
【0068】上位側ビット列比較部110bは、アクセス要
求のあった仮想アドレスのベースアドレスの上位側ビッ
ト列[31:12]と上位側ビット列格納部104aに格納されて
いるベースアドレスの上位側ビット列[31:12]とを比較
するとともに、アクセス要求のあった仮想アドレスのオ
フセットアドレスの上位側ビット列[31:12]と上位側ビ
ット列格納部104aに格納されているオフセットアドレス
の上位側ビット列[31:12]とを比較する。CAM110
は、比較結果を示す信号Match[3:0]を出力する。
【0069】一致回路111は、各エントリーごとにA
NDゲートを有する。ANDゲートは、上位側ビット列
が一致し、かつ、キャリーアウト信号も一致するか否か
を示す信号を出力する。
【0070】物理アドレス選択部107は、一致回路1
11からの出力により、物理アドレス格納部106のエ
ントリーを選択し、選択したエントリーに対応する物理
アドレスを物理アドレス格納部106から読み出す。
【0071】このように、第3の実施形態では、アダー
108からキャリーアウト信号が出力される前に、上位
側ビット列が一致するか否かを検出するため、アダー1
08からキャリーアウト信号が出力されるのと前後し
て、上位側ビット列の一致検出結果も得ることができ
る。したがって、アクセス要求のあった仮想アドレスが
CAM110内に格納されているか否かを高速に判断で
き、物理アドレスへの変換処理を高速に行うことができ
る。
【0072】また、上位側ビット列の一致検出結果と、
キャリーアウト信号の一致検出結果とに基づいて、アク
セス要求のあった仮想アドレスとCAM110内に格納
されている仮想アドレスとの比較を行うため、全ビット
を比較する場合に比べて、比較処理を高速化することが
できる。
【0073】(第4の実施形態)第4の実施形態は、第
3の実施形態の変形例である。
【0074】図7はアドレス変換回路の第4の実施形態
の概略構成を示すブロック図である。図7では、図6と
同一の構成部分には同一符号を付しており、以下では、
相違点を中心に説明する。
【0075】図7のアドレス変換回路は、一致回路11
1とキャリーアウト選択部105との接続関係が図6と
逆になっている。すなわち、図7のアドレス変換回路
は、まず、キャリーアウト用メモリ109の出力とCA
M110の出力との論理積を一致回路111で演算した
後、キャリーアウト選択部105により、アダー108
からのキャリーアウト信号に基づいて一致回路111の
出力のいずれかを選択する。
【0076】一致回路111は、各エントリーごとに、
それぞれANDゲート(第1の比較結果出力手段)111a
とANDゲート(第2の比較結果出力手段)111bとを有
する。一方のANDゲート111aは、CAM110の出力
とキャリーアウト用メモリ109の正転出力との論理積
を演算する。また、他方のANDゲート111bは、CAM
110の出力とキャリーアウト用メモリ109の反転出
力との論理積を演算する。
【0077】キャリーアウト選択部(選択手段)105
は、アダー108からのキャリーアウト信号に基づい
て、各エントリーごとに、ANDゲート111a,111bのい
ずれか一方の出力を選択する。キャリーアウト選択部1
05の出力は、物理アドレス選択部107に入力され
て、物理アドレスの読み出しが行われる。
【0078】このように、第4の実施形態も、第3の実
施形態と同様に、上位側ビット列の一致検出結果と、下
位側ビット列からのキャリーアウト信号の一致検出結果
とに基づいて、アクセス要求のあった仮想アドレスとC
AM110内に格納されている仮想アドレスとの比較を
行うため、全ビットを比較する場合に比べて、比較処理
を高速化することができる。
【0079】また、第4の実施形態は、アダー108か
らのキャリーアウト信号に基づいて選択を行うキャリー
アウト選択部105が一致回路111の後段側に接続さ
れているため、第3の実施形態よりもアダー108の演
算時間に余裕が生じる。
【0080】(第5の実施形態)第5の実施形態も、第
4の実施形態の変形例である。
【0081】図8はアドレス変換回路の第5の実施形態
の概略構成を示すブロック図である。図8では、図7と
同一の構成部分には同一符号を付しており、以下では、
相違点を中心に説明する。
【0082】図8のアドレス変換回路は、キャリーアウ
ト選択部105と物理アドレス選択部107の接続関係
が図7のアドレス変換回路と異なっており、キャリーア
ウト選択部105は、物理アドレス選択部107の後段
側に接続されている。
【0083】アドレス変換部(第1および第2のアドレ
ス変換部)107a,107bは、一致回路111a,111bの出力に
基づいて、物理アドレス格納部106からそれぞれ別々
の物理アドレスを読み出す。キャリーアウト選択部10
5は、アダー108からのキャリーアウト信号に基づい
て、物理アドレス選択部107が読み出した2種類の物
理アドレスのいずれか一方を選択する。
【0084】このように、第5の実施形態も、第3およ
び第4の実施形態と同様に、上位側ビット列の一致検出
結果と、下位側ビット列からのキャリーアウト信号の一
致検出結果とに基づいて、アクセス要求のあった仮想ア
ドレスとCAM110内に格納されている仮想アドレス
との比較を行うため、全ビットを比較する場合に比べ
て、比較処理を高速化することができる。
【0085】また、第5の実施形態は、アダー108か
らのキャリーアウト信号に基づいて選択を行うキャリー
アウト選択部105を最終段に設けたため、第4の実施
形態よりもさらに、アダー108の演算時間に余裕が生
じる。
【0086】(第6の実施形態)第6の実施形態は、ア
クセス要求のあった仮想アドレスを、上位側ビット列、
中間ビット列、および下位側ビット列の3種類に分け
て、CAM内に登録されている仮想アドレスとそれぞれ
比較するものである。
【0087】図9はアドレス変換回路の第6の実施形態
の概略構成を示すブロック図である。図9では、図3と
共通する構成部分には同一符号を付しており、以下で
は、相違点を中心に説明する。
【0088】図9のアドレス変換回路は、CLA(Carry
Lookaside)回路112と、アダー113,114と、
CAM115,116と、一致回路111と、物理アド
レス格納部106と、物理アドレス選択部107とを備
えている。
【0089】CLA回路112は、アクセス要求のあっ
た仮想アドレスのベースアドレスとオフセットアドレス
の下位側ビット列[7:0]同士を加算したときの桁上がり
情報(キャリーアウト信号)を出力する。
【0090】アダー113は、下位側ビット列[7:0]か
らの桁上がりを「0」と仮定して、アクセス要求のあっ
た仮想アドレスのベースアドレスとオフセットアドレス
の中間ビット列[11:8]同士を加算した結果[11:8]と、キ
ャリーアウト信号を出力する。
【0091】アダー114は、下位側ビット列[7:0]か
らの桁上がりを「1」と仮定して、アクセス要求のあっ
た仮想アドレスのベースアドレスとオフセットアドレス
の中間ビット列[11:8]同士を加算した結果[11:8]と、キ
ャリーアウト信号を出力する。
【0092】CAM115は、キャッシュメモリの各エ
ントリーごとに、中間ビット列格納部(中間ビット列格
納手段)115aと、第1および第2の中間ビット列比較部
115b,115cとを有する。
【0093】中間ビット列格納部115aは、キャッシュメ
モリに格納されているデータに対応する仮想アドレスの
ベースアドレスとオフセットアドレスの中間ビット列[1
2:8]を格納する。
【0094】第1の中間ビット列比較部115bは、キャッ
シュメモリの各エントリーごとに、アダー113の出力
[11:8]とそのキャリーアウト信号とを、中間ビット列格
納部115aに格納されているベースアドレスの中間ビット
列[12:8]と比較する。
【0095】第2の中間ビット列比較部115cは、キャッ
シュメモリの各エントリーごとに、アダー114の出力
[11:8]とそのキャリーアウト信号とを、中間ビット列格
納部に格納されているベースアドレスの中間ビット列[1
2:8]と比較する。
【0096】キャリーアウト選択部105は、CLA回
路112からのキャリーアウト信号に基づいて、第1お
よび第2の中間ビット列比較部115b,115cのいずれか一
方の比較結果MatchL[3:0]を出力する。
【0097】CAM116は、キャッシュメモリの各エ
ントリーごとに、上位側ビット列格納部116aと、上位側
ビット列比較部116b(上位側ビット列比較手段)とを有
する。
【0098】上位側ビット列格納部116aは、キャッシュ
メモリに格納されているデータに対応する仮想アドレス
のベースアドレスとオフセットアドレスの上位側ビット
列[31:12]を格納する。
【0099】上位側ビット列比較部116bは、アクセス要
求のあった仮想アドレスのベースアドレスの上位側ビッ
ト列[31:12]と上位側ビット列格納部116aに格納されて
いるベースアドレスの上位側ビット列[31:12]とを比較
するとともに、アクセス要求のあった仮想アドレスのオ
フセットアドレスの上位側ビット列[31:12]と上位側ビ
ット列格納部116aに格納されているオフセットアドレス
の上位側ビット列[31:12]とを比較する。CAM116
は、比較結果を示す信号MatchU[3:0]を出力する。
【0100】一致回路111は、各エントリーごとにA
NDゲートを有し、各ANDゲートは、CAMの両出力
の論理積を演算する。物理アドレス選択部107は、A
NDゲートの出力に基づいて、対応するエントリーに格
納されている物理アドレスを物理アドレス格納部106
から読み出す。
【0101】このように、第6の実施形態では、アクセ
ス要求のあった仮想アドレスの上位側ビット列[31:12]
についてはアダーを使わずにCAM116で比較すると
ともに、中間ビット列[11:8]については下位側ビット列
からの桁上がりの有無を予め予測してアダー113,1
14で加算した結果をCAM115で比較し、これら比
較結果が得られた後に、下位側ビット列の加算を行うC
LA回路112からのキャリーアウト信号で最終的な選
択を行うため、CLA回路112での演算処理に時間が
かかっても、高速に物理アドレスへの変換を行うことが
できる。
【0102】また、上位側ビット列の比較と、中間ビッ
ト列の比較と、下位側ビット列からの桁上がり演算とを
並列的に行うため、仮想アドレスの比較を効率的かつ高
速に行うことができる。
【0103】(第7の実施形態)第7の実施形態は、第
6の実施形態の変形例である。
【0104】図10はアドレス変換回路の第7の実施形
態の概略構成を示すブロック図である。図10では、図
9と同一の構成部分には同一符号を付しており、以下で
は、相違点を中心に説明する。
【0105】図10のアドレス変換回路は、キャリーア
ウト選択部105と一致回路111の接続関係が図9の
アドレス変換回路と異なっており、キャリーアウト選択
部105は、一致回路111の後段側に接続されてい
る。
【0106】一致回路111内には、各エントリーごと
に、2個のANDゲート111a,111bが設けられている。
一方のANDゲート111aは、CAM115内の第1の中
間ビット列比較部115bの比較結果とCAM115の比較
結果との論理積を演算する。他方のANDゲート111b
は、CAM115内の第2の中間ビット列比較部115cの
比較結果とCAM115の比較結果との論理積を演算す
る。
【0107】キャリーアウト選択部105は、各エント
リーごとに、CLA回路112からのキャリーアウト信
号に基づいて、ANDゲート111a,111bのいずれか一方
を選択する。物理アドレス選択部107は、キャリーア
ウト選択部105の選択結果に基づいて物理アドレス格
納部106のエントリーを選択して物理アドレスを読み
出す。
【0108】このように、第7の実施形態では、第6の
実施形態と同様に、アクセス要求のあった仮想アドレス
の下位側ビット列からの桁上がりの有無を予め予測して
中間ビット列の比較を行うため、CLA回路112での
演算処理に平行して比較処理を行うことができ、物理ア
ドレスへの変換を高速に行うことができる。
【0109】また、第7の実施形態では、一致回路11
1の後段側にキャリーアウト選択部105を設けるた
め、一致回路111から一致結果が出力されるまでにC
LA回路112からキャリーアウト信号が出力されれば
よく、CLA回路112での演算時間に余裕が生じる。
【0110】(第8の実施形態)第8の実施形態は、第
7の実施形態の変形例である。
【0111】図11はアドレス変換回路の第8の実施形
態の概略構成を示すブロック図である。図11では、図
10と同一の構成部分には同一符号を付しており、以下
では、相違点を中心に説明する。
【0112】図11のアドレス変換回路は、キャリーア
ウト選択部105と物理アドレス選択部107の接続関
係が図7のアドレス変換回路と逆になっており、キャリ
ーアウト選択部105は、物理アドレス選択部107の
後段側に接続されている。
【0113】物理アドレス選択部107は、一致回路1
11の出力に基づいて、物理アドレス格納部106から
それぞれ別個の物理アドレスを読み出す。キャリーアウ
ト選択部105は、CLA回路112からのキャリーア
ウト信号に基づいて、物理アドレス選択部107が読み
出した2種類の物理アドレスのいずれか一方を選択す
る。
【0114】このように、第8の実施形態も、第6およ
び第7の実施形態と同様に、上位側ビット列の一致検出
結果と、中間ビット列の一致検出結果と、下位側ビット
列からのキャリーアウト信号の一致検出結果とに基づい
て、アクセス要求のあった仮想アドレスとCAM11
5,116内に格納されている仮想アドレスとの比較を
行うため、全ビットを比較する場合に比べて、比較処理
を高速化することができる。
【0115】また、第8の実施形態は、CLA回路11
2からのキャリーアウト信号に基づいて選択を行うキャ
リーアウト選択部105を最終段に設けたため、第7の
実施形態よりもさらに、アダーの演算時間に余裕が生じ
る。
【0116】上述した各実施形態において、上位側ビッ
ト列、中間ビット列、および下位側ビット列のビット数
は特に限定されない。すなわち、上位側ビット列は[31:
12]以外でもよく、中間ビット列は[11:8]以外でもよ
く、下位側ビット列は[7:0]以外でもよい。
【0117】また、上述した各実施形態では、プロセッ
サ内部のTLBsに用いるアドレス変換部について説明した
が、本発明は、プロセッサ以外の回路にも適用可能であ
る。
【0118】
【発明の効果】以上詳細に説明したように、本発明によ
れば、アクセス要求のあった仮想アドレスの下位側ビッ
ト列からの桁上がり情報の演算に並行して、上位側ビッ
ト列や中間ビット列の比較処理を行うため、桁上がり情
報が演算される前に、仮想アドレスの比較処理を行うこ
とができ、物理アドレスへの変換を高速に行うことがで
きる。
【図面の簡単な説明】
【図1】図1はマイクロプロセッサの内部構成を示すブ
ロック図。
【図2】図2はMMU3の内部構成を示す図。
【図3】図3は本発明に係るアドレス変換回路の第1の
実施形態の概略構成を示すブロック図。
【図4】図4はCLA回路の詳細構成を示す回路図。
【図5】図5はアドレス変換回路の第2の実施形態の概
略構成を示すブロック図。
【図6】図6はアドレス変換回路の第3の実施形態の概
略構成を示すブロック図。
【図7】図7はアドレス変換回路の第4の実施形態の概
略構成を示すブロック図。
【図8】図8はアドレス変換回路の第5の実施形態の概
略構成を示すブロック図。
【図9】図9はアドレス変換回路の第6の実施形態の概
略構成を示すブロック図。
【図10】図10はアドレス変換回路の第7の実施形態
の概略構成を示すブロック図。
【図11】図11はアドレス変換回路の第8の実施形態
の概略構成を示すブロック図。
【図12】図12は従来のアドレス変換回路の概略構成
を示すブロック図。
【図13】図13は図12よりも高速処理が可能な従来
のTLBのブロック図。
【図14】図14はUSP5,606,683に開示されたTLBの
ブロック図。
【符号の説明】
1 バス・インタフェース・ユニット 2 IFU 3 MMU 4 LSU 31 JTLB 32 ITLB 33 DTLB 101 CLA回路 102,103 アダー 104 CAM 105 キャリーアウト選択部 106 物理アドレス格納部 107 物理アドレス選択部 108 アダー 109 キャリーアウト用メモリ 110 CAM 111 一致回路 112 CLA回路 113,114 アダー 115,116 CAM
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 5B005 JJ11 MM31 MM51 NN63 NN66 RR02

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】アクセス要求のあった仮想アドレスを物理
    アドレスに変換するアドレス変換回路において、 キャッシュメモリに格納されたデータに対応する仮想ア
    ドレスの上位側ビット列を格納する上位側ビット列格納
    手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの下位側ビット列同士を加算した
    ときの桁上がりの有無を予め予測して、該仮想アドレス
    のベースアドレスとオフセットアドレスとの上位側ビッ
    ト列同士を加算する上位側ビット列加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの下位側ビット列同士を加算した
    ときの桁上がり情報を演算する桁上がり演算手段と、 前記上位側ビット列加算手段による加算結果と前記上位
    側ビット列格納手段に格納された仮想アドレスの上位側
    ビット列とを比較する上位側ビット列比較手段と、 前記桁上がり演算手段の演算結果と、前記上位側ビット
    列比較手段の比較結果とに基づいて、アクセス要求のあ
    った仮想アドレスを物理アドレスに変換するアドレス変
    換手段と、を備えることを特徴とするアドレス変換回
    路。
  2. 【請求項2】前記上位側ビット列加算手段は、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの上位側ビット列同士を加算した
    結果を出力する第1の加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの上位側ビット列同士を加算し、
    さらに1を加えた結果を出力する第2の加算手段と、を
    有し、 前記上位側ビット列比較手段は、 前記第1の加算手段による加算結果と前記上位側ビット
    列格納手段に格納された仮想アドレスの上位側ビット列
    とを比較する第1の比較手段と、 前記第2の加算手段による加算結果と前記上位側ビット
    列格納手段に格納された仮想アドレスの上位側ビット列
    とを比較する第2の比較手段と、を有し、 前記アドレス変換手段は、前記桁上がり演算手段により
    演算された桁上がり情報に基づいて前記第1および第2
    の比較手段のいずれか一方の比較結果を選択する選択手
    段を有し、前記選択手段の選択結果に基づいて、アクセ
    ス要求のあった仮想アドレスを物理アドレスに変換する
    ことを特徴とする請求項1に記載のアドレス変換回路。
  3. 【請求項3】前記上位側ビット列加算手段は、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの上位側ビット列同士を加算した
    結果を出力する第1の加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの上位側ビット列同士を加算し、
    さらに1を加えた結果を出力する第2の加算手段と、を
    有し、 前記上位側ビット列比較手段は、 前記第1の加算手段による加算結果と前記上位側ビット
    列格納手段に格納された仮想アドレスの上位側ビット列
    とを比較する第1の比較手段と、 前記第2の加算手段による加算結果と前記上位側ビット
    列格納手段に格納された仮想アドレスの上位側ビット列
    とを比較する第2の比較手段と、を有し、 前記アドレス変換手段は、 前記第1の比較手段の比較結果に基づいて、アクセス要
    求のあった仮想アドレスを物理アドレスに変換する第1
    のアドレス変換部と、 前記第2の比較手段の比較結果に基づいて、アクセス要
    求のあった仮想アドレスを物理アドレスに変換する第2
    のアドレス変換部と、 前記桁上がり演算手段により演算された桁上がり情報に
    基づいて、前記第1および第2のアドレス変換部のいず
    れか一方により変換された物理アドレスを選択する物理
    アドレス選択手段と、を備えることを特徴とする請求項
    1に記載のアドレス変換回路。
  4. 【請求項4】アクセス要求のあった仮想アドレスを物理
    アドレスに変換するアドレス変換回路において、 キャッシュメモリに格納されたデータに対応する仮想ア
    ドレスの上位側ビット列を格納する上位側ビット列格納
    手段と、 キャッシュメモリに格納されたデータに対応する仮想ア
    ドレスのベースアドレスとオフセットアドレスとの下位
    側ビット列同士を加算したときの桁上がり情報を格納す
    る桁上がり情報格納手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの下位側ビット列同士を加算した
    ときの桁上がり情報を演算する桁上がり情報演算手段
    と、 アクセス要求のあった仮想アドレスのベースアドレスお
    よびオフセットアドレスの上位側ビット列と、前記上位
    側ビット列格納手段に格納された仮想アドレスのベース
    アドレスおよびオフセットアドレスの上位側ビット列と
    を比較する上位側ビット列比較手段と、 前記桁上がり情報格納手段に格納された情報と、前記桁
    上がり情報演算手段により演算された桁上がり情報と、
    前記上位側ビット列比較手段による比較結果とに基づい
    て、アクセス要求のあった仮想アドレスを物理アドレス
    に変換するアドレス変換手段と、を備えることを特徴と
    するアドレス変換回路。
  5. 【請求項5】前記桁上がり情報演算手段により演算され
    た桁上がり情報と、前記桁上がり情報格納手段に格納さ
    れた桁上がり情報とを比較する桁上がり情報比較手段を
    備え、 前記アドレス変換手段は、 前記桁上がり情報比較手段による比較結果と、前記上位
    側ビット列比較手段による比較結果とに基づいて、アク
    セス要求のあった仮想アドレスを物理アドレスに変換す
    ることを特徴とする請求項4に記載のアドレス変換回
    路。
  6. 【請求項6】前記桁上がり情報格納手段に格納された桁
    上がり情報と前記上位側ビット列比較手段による比較結
    果とに基づいて、下位側ビット列からの桁上がりがある
    と仮定した場合の、アクセス要求のあった仮想アドレス
    の上位側ビット列とキャッシュメモリに格納されている
    仮想アドレスの上位側ビット列との比較結果を出力する
    第1の比較結果出力手段と、 前記桁上がり情報格納手段に格納された桁上がり情報と
    前記上位側ビット列比較手段による比較結果とに基づい
    て、下位側ビット列からの桁上がりがないと仮定した場
    合の、アクセス要求のあった仮想アドレスの上位側ビッ
    ト列とキャッシュメモリに格納されている仮想アドレス
    の上位側ビット列との比較結果を出力する第2の比較結
    果出力手段と、を備え、 前記アドレス変換手段は、前記桁上がり情報演算手段に
    より演算された桁上がり情報に基づいて前記第1および
    第2の比較結果出力手段のいずれか一方から出力された
    比較結果を選択する選択手段を有し、前記選択手段によ
    る選択結果に基づいてアクセス要求のあった仮想アドレ
    スを物理アドレスに変換することを特徴とする請求項4
    に記載のアドレス変換回路。
  7. 【請求項7】前記桁上がり情報格納手段に格納された桁
    上がり情報と前記上位側ビット列比較手段による比較結
    果とに基づいて、下位側ビット列からの桁上がりがある
    と仮定した場合の、アクセス要求のあった仮想アドレス
    の上位側ビット列とキャッシュメモリに格納されている
    仮想アドレスの上位側ビット列との比較結果を出力する
    第1の比較結果出力手段と、 前記桁上がり情報格納手段に格納された桁上がり情報
    と、前記上位側ビット列比較手段による比較結果とに基
    づいて、下位側ビット列からの桁上がりがないと仮定し
    た場合の、アクセス要求のあった仮想アドレスの上位側
    ビット列とキャッシュメモリに格納されている仮想アド
    レスの上位側ビット列との比較結果を出力する第2の比
    較結果出力手段と、を備え、 前記アドレス変換手段は、 前記第1の比較結果出力手段による比較結果に基づい
    て、アクセス要求のあった仮想アドレスを物理アドレス
    に変換する第1のアドレス変換部と、 前記第2の比較結果出力手段による比較結果に基づい
    て、アクセス要求のあった仮想アドレスを物理アドレス
    に変換する第2のアドレス変換部と、 前記桁上がり情報演算手段により演算された桁上がり情
    報に基づいて、前記第1および第2のアドレス変換部の
    いずれか一方により変換された物理アドレスを選択する
    選択手段と、を有することを特徴とする請求項4に記載
    のアドレス変換回路。
  8. 【請求項8】アクセス要求のあった仮想アドレスを物理
    アドレスに変換するアドレス変換回路において、 キャッシュメモリに格納されたデータに対応する仮想ア
    ドレスの上位側ビット列を格納する上位側ビット列格納
    手段と、 前記キャッシュメモリに格納されたデータに対応する仮
    想アドレスの中間ビット列を格納する中間ビット列格納
    手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの下位側ビット列同士を加算した
    ときの桁上がりの有無を予め予測して、該仮想アドレス
    のベースアドレスとオフセットアドレスとの中間ビット
    列同士を加算する中間ビット列加算手段と、 前記中間ビット列加算手段による加算結果と前記中間ビ
    ット列格納手段に格納された仮想アドレスの中間ビット
    列とを比較する中間ビット列比較手段と、 アクセス要求のあった仮想アドレスのベースアドレスお
    よびオフセットアドレスの上位側ビット列と、前記上位
    側ビット列格納手段に格納された仮想アドレスのベース
    アドレスおよびオフセットアドレスの上位側ビット列と
    を比較する上位側ビット列比較手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの下位側ビット列同士を加算した
    ときの桁上がり情報を演算する桁上がり情報演算手段
    と、 前記上位側ビット列比較手段による比較結果と、前記中
    間ビット列比較手段による比較結果と、前記桁上がり情
    報演算手段による演算結果とに基づいて、アクセス要求
    のあった仮想アドレスを物理アドレスに変換するアドレ
    ス変換手段と、 を備えることを特徴とするアドレス変換回路。
  9. 【請求項9】前記中間ビット列加算手段は、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算した結
    果を出力する第1の加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算し、さ
    らに1を加えた結果を出力する第2の加算手段と、を有
    し、 前記中間ビット列比較手段は、 前記第1の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第1の比較手段と、 前記第2の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第2の比較手段と、を有し、 前記アドレス変換手段は、前記桁上がり情報演算手段に
    よる演算結果に基づいて前記第1および第2の比較手段
    のいずれか一方の比較結果を選択して出力する選択手段
    を有し、前記選択手段の出力と、前記上位側ビット列比
    較手段による比較結果とに基づいて、アクセス要求のあ
    った仮想アドレスを物理アドレスに変換することを特徴
    とする請求項8に記載のアドレス変換回路。
  10. 【請求項10】前記中間ビット列加算手段は、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算した結
    果を出力する第1の加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算し、さ
    らに1を加えた結果を出力する第2の加算手段と、を有
    し、 前記中間ビット列比較手段は、 前記第1の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第1の比較手段と、 前記第2の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第2の比較手段と、を有し、 前記アドレス変換手段は、 前記第1の比較手段の比較結果と前記上位側ビット列比
    較手段の比較結果との論理積を演算する第1の一致回路
    と、 前記第2の比較手段の比較結果と前記上位側ビット列比
    較手段の比較結果との論理積を演算する第2の一致回路
    と、 前記桁上がり情報演算手段による演算結果に基づいて、
    前記第1および第2の一致回路のいずれか一方の出力を
    選択する選択手段と、 前記選択手段による選択結果に基づいて、アクセス要求
    のあった仮想アドレスを物理アドレスに変換する物理ア
    ドレス選択手段と、を有することを特徴とする請求項8
    に記載のアドレス変換回路。
  11. 【請求項11】前記中間ビット列加算手段は、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算した結
    果を出力する第1の加算手段と、 アクセス要求のあった仮想アドレスのベースアドレスと
    オフセットアドレスとの中間ビット列同士を加算し、さ
    らに1を加えた結果を出力する第2の加算手段と、を有
    し、 前記中間ビット列比較手段は、 前記第1の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第1の比較手段と、 前記第2の加算手段による加算結果と前記中間ビット列
    格納手段に格納された仮想アドレスの中間ビット列との
    比較結果を出力する第2の比較手段と、を有し、 前記アドレス変換手段は、 前記第1の比較手段と前記上位側ビット列比較手段との
    両比較結果に基づいて、アクセス要求のあった仮想アド
    レスを物理アドレスに変換する第1のアドレス変換部
    と、 前記第2の比較手段と前記上位側ビット列比較手段との
    両比較結果に基づいて、アクセス要求のあった仮想アド
    レスを物理アドレスに変換する第2のアドレス変換部
    と、 前記第1および第2のアドレス変換部のいずれか一方で
    変換された物理アドレスを選択する選択手段と、を有す
    ることを特徴とする請求項8に記載のアドレス変換回
    路。
JP11209775A 1999-07-23 1999-07-23 アドレス変換回路 Abandoned JP2001034537A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP11209775A JP2001034537A (ja) 1999-07-23 1999-07-23 アドレス変換回路
TW089114628A TW587209B (en) 1999-07-23 2000-07-21 Address converting circuit
KR1020000042336A KR100354465B1 (ko) 1999-07-23 2000-07-24 어드레스 변환 회로
US09/624,244 US6418520B1 (en) 1999-07-23 2000-07-24 Address converting circuit utilizing string comparison and carry information calculation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11209775A JP2001034537A (ja) 1999-07-23 1999-07-23 アドレス変換回路

Publications (1)

Publication Number Publication Date
JP2001034537A true JP2001034537A (ja) 2001-02-09

Family

ID=16578414

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11209775A Abandoned JP2001034537A (ja) 1999-07-23 1999-07-23 アドレス変換回路

Country Status (4)

Country Link
US (1) US6418520B1 (ja)
JP (1) JP2001034537A (ja)
KR (1) KR100354465B1 (ja)
TW (1) TW587209B (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374342B1 (en) * 2000-01-31 2002-04-16 Kabushiki Kaisha Toshiba Translation lookaside buffer match detection using carry of lower side bit string of address addition
US7024094B2 (en) 2002-02-22 2006-04-04 Japan Science And Technology Agency Display unit
JP2013522807A (ja) * 2010-03-19 2013-06-13 クアルコム,インコーポレイテッド アドレス合計比較書込み再符号化および比較削減のための方法および装置

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6854046B1 (en) * 2001-08-03 2005-02-08 Tensilica, Inc. Configurable memory management unit
FR2836407B1 (fr) * 2002-02-28 2004-05-14 Thermagen Procede de fabrication d'emballage metallique
US7243208B2 (en) * 2003-08-13 2007-07-10 Renesas Technology Corp. Data processor and IP module for data processor
US7657708B2 (en) * 2006-08-18 2010-02-02 Mips Technologies, Inc. Methods for reducing data cache access power in a processor using way selection bits
US7650465B2 (en) * 2006-08-18 2010-01-19 Mips Technologies, Inc. Micro tag array having way selection bits for reducing data cache access power
US7594079B2 (en) * 2006-09-29 2009-09-22 Mips Technologies, Inc. Data cache virtual hint way prediction, and applications thereof
US9946547B2 (en) 2006-09-29 2018-04-17 Arm Finance Overseas Limited Load/store unit for a processor, and applications thereof
US20080082793A1 (en) * 2006-09-29 2008-04-03 Mips Technologies, Inc. Detection and prevention of write-after-write hazards, and applications thereof
US9239799B2 (en) 2008-06-26 2016-01-19 Qualcomm Incorporated Memory management unit directed access to system interfaces
CN105745627B (zh) * 2013-08-14 2019-03-15 西部数据技术公司 用于非易失性存储器存储设备的地址转换
US20170242821A1 (en) * 2016-02-22 2017-08-24 HGST Netherlands B.V. Acknowledgement-less canary-based completion protocol
CN113656331A (zh) * 2021-10-20 2021-11-16 北京微核芯科技有限公司 基于高低位的确定访问地址的方法和装置
CN113656330B (zh) * 2021-10-20 2022-02-15 北京微核芯科技有限公司 确定访问地址的方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0769868B2 (ja) * 1986-09-25 1995-07-31 松下電器産業株式会社 高速アドレス変換装置
JPS63225290A (ja) * 1987-03-14 1988-09-20 株式会社日立製作所 表示制御回路
JP2589713B2 (ja) * 1987-11-20 1997-03-12 株式会社日立製作所 データプロセッサ及びデータ処理システム
JP2513024B2 (ja) * 1989-03-16 1996-07-03 日本電気株式会社 拡張記憶アドレス制御方式
US5047958A (en) * 1989-06-15 1991-09-10 Digital Equipment Corporation Linear address conversion
US5148538A (en) 1989-10-20 1992-09-15 International Business Machines Corporation Translation look ahead based cache access
US5584003A (en) * 1990-03-29 1996-12-10 Matsushita Electric Industrial Co., Ltd. Control systems having an address conversion device for controlling a cache memory and a cache tag memory
US5890220A (en) * 1991-02-05 1999-03-30 Hitachi, Ltd. Address conversion apparatus accessible to both I/O devices and processor and having a reduced number of index buffers
JPH07191911A (ja) 1993-12-27 1995-07-28 Nec Corp アドレス変換装置及びマイクロプロセッサ算出方法
JP3313560B2 (ja) * 1996-01-31 2002-08-12 株式会社日立製作所 浮動小数点演算処理装置
US6289429B2 (en) * 1996-03-11 2001-09-11 Matsushita Electric Industrial Co., Ltd Accessing multiple memories using address conversion among multiple addresses

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374342B1 (en) * 2000-01-31 2002-04-16 Kabushiki Kaisha Toshiba Translation lookaside buffer match detection using carry of lower side bit string of address addition
US7024094B2 (en) 2002-02-22 2006-04-04 Japan Science And Technology Agency Display unit
JP2013522807A (ja) * 2010-03-19 2013-06-13 クアルコム,インコーポレイテッド アドレス合計比較書込み再符号化および比較削減のための方法および装置

Also Published As

Publication number Publication date
TW587209B (en) 2004-05-11
KR20010029993A (ko) 2001-04-16
US6418520B1 (en) 2002-07-09
KR100354465B1 (ko) 2002-09-30

Similar Documents

Publication Publication Date Title
US7089398B2 (en) Address translation using a page size tag
JP3713312B2 (ja) データ処理装置
JP5373173B2 (ja) アドレス変換方法及び装置
JP5108002B2 (ja) 物理タグ付け動作を用いる仮想タグ付き命令キャッシュ
JP3666689B2 (ja) 仮想アドレス変換方法
US10191853B2 (en) Apparatus and method for maintaining address translation data within an address translation cache
JP2001034537A (ja) アドレス変換回路
US5893930A (en) Predictive translation of a data address utilizing sets of associative entries stored consecutively in a translation lookaside buffer
TWI698745B (zh) 快取記憶體、用於操作快取記憶體之方法及其之非暫時性電腦可讀媒體
KR100705171B1 (ko) 어드레스 변환 장치 및 방법
WO1996012231A1 (en) A translation buffer for detecting and preventing conflicting virtual addresses from being stored therein
JPH0619793A (ja) キャッシュ・アクセスのための仮想アドレス変換予測の履歴テーブル
JPH04320553A (ja) アドレス変換機構
KR101787851B1 (ko) 다중 페이지 크기 변환 색인 버퍼(tlb)용 장치 및 방법
KR101623465B1 (ko) 변환 색인 버퍼(tlb)에 대한 중첩 체크
US7269825B1 (en) Method and system for relative address translation
JP3825974B2 (ja) トランスレーション・ルックアサイド・バッファ回路
JP3045952B2 (ja) フルアソシアティブ・アドレス変換器
JPH05134927A (ja) アドレス変換装置および方法
US6339752B1 (en) Processor emulation instruction counter virtual memory address translation
JPH07295889A (ja) アドレス変換回路
KR20170100448A (ko) 데이터 스토리지
US6338128B1 (en) System and method for invalidating an entry in a translation unit
TWI733741B (zh) 用於記憶體位址變換管理的裝置及方法
JP3132566B2 (ja) 命令先行制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040609

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060613

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20060807