JPH08212789A - 連想メモリ回路及びtlb回路 - Google Patents

連想メモリ回路及びtlb回路

Info

Publication number
JPH08212789A
JPH08212789A JP7018163A JP1816395A JPH08212789A JP H08212789 A JPH08212789 A JP H08212789A JP 7018163 A JP7018163 A JP 7018163A JP 1816395 A JP1816395 A JP 1816395A JP H08212789 A JPH08212789 A JP H08212789A
Authority
JP
Japan
Prior art keywords
circuit
fac
bit
result
output
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
JP7018163A
Other languages
English (en)
Inventor
Hirohisa Machida
浩久 町田
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7018163A priority Critical patent/JPH08212789A/ja
Priority to US08/500,324 priority patent/US5805490A/en
Publication of JPH08212789A publication Critical patent/JPH08212789A/ja
Pending 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
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]

Landscapes

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

Abstract

(57)【要約】 【目的】 仮想アドレスを求めるための所定の加算処理
をTLB回路内において実行することにより、処理に必
要な時間を短縮する。 【構成】 TLB回路91はメモリ回路4及び連想メモ
リの一種であるFAC−CAM回路3を有している。F
AC−CAM回路3には2つのデータ1,2が与えら
れ、FAC−CAM回路3において仮想アドレスが計算
されつつ、FAC−CAM回路3が記憶する所定の値と
仮想アドレスとが比較される。その結果、仮想アドレス
に一致する所定の値が存在した場合には、一致信号群5
の少なくとも一つが活性かし、ヒット信号8が出力され
る。 【効果】 連想メモリにおいてFAC回路を利用したの
で加算・比較処理が迅速に行える。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は連想メモリ回路に関
し、特にアドレス変換を行うTLB回路に関するもので
ある。
【0002】
【従来の技術】コンピュータの命令処理は一般に、メモ
リから命令をフェッチし(読み出し)、命令をデコード
し(解釈し)、メモリからオペランドをフェッチし、そ
れを処理し、その結果をメモリに書き戻す、という一連
の処理から構成される。そしてさらに次の命令のフェッ
チが実行される。
【0003】このようなコンピュータを高速化する自明
な方法は、連続する命令の系列を時間軸上で重ね合せて
処理し、コンピュータの速度を制約する構成要素を常に
動作状態に保つことである。その実現方法がパイプライ
ン処理である。
【0004】図12及び図13はパイプライン処理を説
明する模式図である。コンピュータの典型的な命令はい
くつかの段階に分割して処理される。図12にはMIP
S社が開発したMIPSR3000コンピュータ(以下
R3000と呼ぶ。“MIPS RISC Archi
tecture”,Gerry Kaneに詳しく説明
されている)における命令の分割の様子を例示してい
る。
【0005】R3000では以下の5つの段階に分割さ
れている。
【0006】(i)IF:命令のフェッチ (ii)RD:命令のデコードとレジスタからのオペラン
ドのフェッチ (iii)ALU:命令にしたがって算術論理演算を行う (iv)MEM:メモリアクセス (v)WB:結果をレジスタへ書き込む 段階RDはメモリからオペランドをフェッチすることも
あれば、レジスタからフェッチすることもある。これは
最近の高性能なコンピュータが、外部メモリのオペラン
ドを直接ALUで演算せずに、一度内部のレジスタファ
イルにロードしてから、そのレジスタファイルからオペ
ランドを読み出してALU演算を実行することに起因す
る。演算結果を一度レジスタファイルに格納した上で、
レジスタファイルのデータを外部メモリにストアする。
このような演算が行われる理由は、一度利用したオペラ
ンドは何度も利用する可能性が高いので、データのアク
セスが遅い外部のメモリより、データのアクセスが早い
内部のレジスタファイルに置いておいたほうが効率が良
いからである。なお、外部メモリへのアクセスは処理の
高速を指向してキャッシュメモリが介在することもあ
る。
【0007】命令の処理がこのように5つの段階に分割
された場合、互いに異なる段階の処理はコンピュータ内
の異なる領域(資源)を使用する。そのため、異なる命
令のうち、異なる段階の処理を同時に実行することがで
きる。図13はこのような段階の重ね合わせを示してい
る。例えば命令1の段階RDは命令1の段階IFと重ね
合せることができ、最高5つの段階が重ね合わせて処理
される。
【0008】従って、命令の完了には5段階が必要であ
るにもかかわらず、コンピュータ全体では段階が1段進
むごとに1命令の処理が完了する。このような処理の方
式は5段パイプライン処理方式(5-stage pipeline)と
呼ばれている。
【0009】しかし、R3000では各段階を更に詳細
に分割した概念が存在する。図14はR300の命令の
詳細な分割の概念を示した模式図である。ここでは一つ
の命令が (a)ITLB:命令が格納されている仮想アドレスを
物理アドレスに変換する (b)IMEM:(a)で変換された物理アドレスから
命令をフェッチする (c)IADD:分岐先の仮想アドレスを計算する (d)RD:命令処理に必要なオペランドをレジスタフ
ァイルから読み出す (e)DEC:命令をデコードする (f)ALU:ALU演算を実行する (g)B:分岐するかどうかを判定する (h)DADD:オペランドの仮想アドレスを計算する (i)DTLB:オペランドが格納されている仮想アド
レスを物理アドレスに変換する (j)DMEM:(i)で変換された物理アドレスから
オペランドをフェッチする。必要であれば、オペランド
を書き戻す (k)WB:結果をレジスタファイルへ書き込む の11個の段階によって処理される。そして、一つの命
令においても複数の段階が重ね合わさって処理される。
図14に示されるように、段階RD,DEC,IADD
が同時に処理され、また段階ALUが処理されている時
に段階DADD,DTLBが処理される。そして段階D
ADD,Bが同時に処理される。
【0010】図14に示された11段階の分割の概念は
図12,及び図13に示された5段階の分割の概念と、
以下の様に対応づけられる。
【0011】 段階(a)及び段階(b)の前半 …段階(i) 段階(b)の後半及び段階(d)、並びに段階(e),(c)…段階(ii) 段階(f)並びに段階(g),(h),(i) …段階(iii) 段階(j) …段階(iv) 段階(k) …段階(v) パイプライン処理にとって最も深刻な問題は分岐命令が
あるときに発生する。コンピュータは通常の処理中で
は、1つの命令をフェッチするたびにプログラムカウン
タの値を1づつ加算することによって、アドレス順に命
令を実行していく。こういった方法では一見して明らか
なように、分岐命令が処理され、アドレス順と異なる命
令をフェッチする必要が生じた場合、分岐に続くすべて
の命令は誤ったアドレスからフェッチされる。
【0012】例えば図13のような命令列で命令1が分
岐命令であった場合を考えてみる。図14において説明
されたように、命令の分岐は段階Bにおいて(図12及
び図13に示されるところの段階Eの前半)に判定され
る。そして判定の後に分岐するかどうかが決定される。
もし分岐する必要がある場合には、実行すべき命令の正
しいアドレスは、命令3の段階IFには間に合うが、命
令2の段階IFには間に合わない。そのため命令2を正
しく実行するができない。
【0013】通常このような事態を回避するために、命
令2として、命令1の分岐の如何に拘らず実行してかま
わない命令を設ける。このような命令を遅延分岐と呼
び、この遅延分岐の位置は遅延スロット(delay slot)
と呼ばれる。
【0014】遅延スロットに配置される遅延分岐は、通
常はコンパイラと呼ばれるソフトウェアが用意する。し
かし、命令1の分岐に拘らず実行しても良い命令が存在
しない(コンパイラが見つけることができない)場合は
遅延スロットには何も処理しないという命令(NOP)
を設ける。このような命令の存在はコンピュータ全体の
性能を劣化させることになる。
【0015】既述の様に最近のコンピュータは外部メモ
リのオペランドを直接ALUで演算せずに、一度内部の
レジスタファイルにロードしてから、そのレジスタファ
イルからオペランドを読み出してALU演算を実行す
る。演算結果は一度レジスタファイルに格納してから、
レジスタファイルのデータを外部メモリにストアする。
【0016】そこで次のような場合も発生する。図13
で命令1は外部メモリからオペランドをレジスタファイ
ルに書き込む処理をする命令(ロード命令)である場合
を考える。この場合には、外部メモリからロードされる
オペランドは命令1のWBの段階でレジスタファイルに
書き込まれる。したがって命令2のALUの前半ではま
だオペランドがレジスタファイルに存在していない。
【0017】そのため、命令1でレジスタへと読み込ん
だオペランドを利用する命令は、命令2の位置には配置
することができない。従ってこの命令2の位置には命令
1が呼んでくるオペランドを利用しない命令を配置する
必要がある。しかしそのような命令をコンパイラが発見
できない場合には、先の場合と同様に、何も処理しない
という命令を配置することになる。このような命令の位
置をロードスロット(ロード遅延)と呼ぶ。
【0018】このように、何もしない命令を設けること
は、パイプライン方式を利用しているコンピュータにと
ってはその性能を劣化させることになる。
【0019】パイプライン方式のコンピュータではパイ
プラインに区切られた各段階の実行に必要となる処理時
間を均等にすることが大切である。図15は各段階の実
行に必要となる処理時間が均等でない場合のパイプライ
ン処理を示す模式図である。このような場合には処理の
遅い段階の処理時間が、命令全体の処理時問を決定して
しまう。
【0020】処理に時間がかかる段階はさらに分割して
パイプラインの段数を多くする方法が採られる場合があ
る。しかし、段数を多くすることは先に述べた遅延スロ
ットを多くすることにもなる。
【0021】R3000では、パイプライン1段の処理
速度は最高のもので40MHz(25nsec)であっ
たが、パイプラインの処理をできるだけ均等になるよう
にさらに研究がなされ、R4000というコンピュータ
が開発された。
【0022】図16はR4000のパイプラインの構成
を示す模式図である。R4000は8段のパイプライン
となっていて、その各1段の処理速度は最高のもので1
50MHz(6.7nsec)である。段階ITC及び
段階DTCにおいてはそれぞれ命令とデータのタグがチ
ェックされる。
【0023】各1段の処理時間を短くしたため、1段で
処理できない段階ITLB、DTLB、IMEM、DM
EMは2段に分割して処理される。これらの段階はメモ
リに対してアクセスを行わなければならないため、他の
処理に比べて2倍の時間を必要とする。
【0024】またR4000では1段の処理速度は大幅
に向上しているが、パイプライン段数を細かくしたた
め、遅延スロットは2段必要であり(R3000では1
段で済んでいた)、ロード遅延は3段必要である(R3
000では1段で済んでいた)。従って、何も処理でき
ない命令を挿入する場合が増えている。
【0025】上記のようにR4000の命令の構造を検
討した結果、コンピュータに必要な各段階の処理速度の
向上を指向する場合、ITLB、DTLB、IMEM、
DMEMのようにメモリに対するアクセスが必要な段階
を如何に迅速に処理するのかが重要であることが解る。
【0026】R4000の各1段の処理速度は最高のも
ので150MHzであることを考慮して、R3000の
処理速度はどの程度向上し得るかを検討する。図14に
おいて、R3000の命令の段階IMEM,DMEMは
1サイクルの処理を、他の処理のほとんどが半サイクル
の処理をそれぞれ必要とする事から、75MHzの速度
まで高速に実行することは可能であるように考えられ
る。しかしそのためには段階IMEMの前半と共に段階
IFを構成する段階ITLBや、段階ALUの後半にお
いて実行される段階DTLBの処理は半サイクル(15
0MHz)で完了しなければならないことになる。しか
し、これはR4000の場合(図16)を検討しても解
るように非常に困難である。
【0027】そこで、このTLBの処理について迅速に
行うことを考察する。まずTLBについて簡単に説明す
る。最近のコンピュータは32ビット型のコンピュータ
が一番多く利用されているので、この32ビット型のコ
ンピュータを例に説明する。
【0028】32ビットのコンピュータはアドレス空間
が2の32乗で約40億個存在する。そのそれぞれのア
ドレスが8ビットのデータで構成されるから、結局32
ビットコンピュータには320億ビットのメモリが必要
になる。これは現在の技術では、不可能と迄は言えない
ものの、実現にはかなり厳しい数である。たとえ可能で
あったとしても、64ビット型のコンピュータ(たとえ
ばR4000)が必要とするビット数は天文学的数字に
なり、それをハードウェアとして用意することは不可能
である。また、それらすべての領域を1つのソフトウェ
アが同時に利用することは考えられない。
【0029】そこで、仮想メモリという概念が導入され
る。これは、すべてのアドレス空間に対応したメモリを
用意するのではなく、少ないメモリであたかもすべての
(320億ビットの)アドレス空間を利用しているかの
ようにするものである。このすべてのアドレスを仮想ア
ドレスと呼び、限られた領域を物理アドレスと呼ぶ。
【0030】仮想アドレスは一般には所定の加算処理に
よって求められる。図17はR3000の命令としても
用いられる、R2000の命令の一つであるロード命令
LBの構成を示す模式図である。係る構成は“MIPS
RISC Architecture”,Gerry
KaneのA−35に記載されている。第21乃至第
25ビットにおいて存在する“base”はレジスタファイ
ルを特定する。この特定されたレジスタファイルに格納
された32ビットの値と、ロード命令LBの第0乃至第
15ビットにおいて存在する“offset”の値とが加算さ
れ、仮想アドレスが求められる。ロード命令LBは、こ
のようにして求められた仮想アドレスに対応した物理ア
ドレスにおいて格納されたデータを、ロード命令LBの
第16乃至第20ビットにおいて存在する“rt”が特定
するレジスタファイルに転送する命令である。
【0031】R3000では仮想アドレスの32ビット
のうち、上位20ビットを利用して仮想アドレスを物理
アドレスに変換している。したがって、コンピュータ内
では仮想アドレスでデータ処理を実行しているが、実際
にメモリをアクセスする場合は物理アドレスに変換した
アドレスで実行する。このアドレス変換処理をする回路
はTLB(Translate Lookaside Buffer)回路と呼ばれ
る。TLB回路は、仮想アドレスの上位20ビットを入
力し、自身の有する値と一致するか否かを判断する。一
致した場合、その仮想アドレスが変換されるべき20ビ
ットの物理アドレスがテーブルから得られる。
【0032】図18はTLB回路90の構成を例示する
ブロック図である。TLB回路90は、CAM(Conten
t Addressable memory)回路と呼ばれるメモリ回路10
1及び通常のメモリ回路4を備えている。メモリ回路1
01には既に所定の加算処理が行われることにより、仮
想アドレス102が与えられている。
【0033】メモリ回路4は通常のメモリ回路と動作は
全く同じであるが、通常のメモリ回路のように、ワード
選択信号をデコーダ回路等で生成する、ということがな
いのでデコーダ回路を持っていない。但しワード選択信
号の代わりにCAM回路101から一致信号群5が与え
られている。
【0034】CAM回路101は、連想メモリ(associ
ative memory)の1種である。連想メモリは、通常のメ
モリ回路のように外部からデータを記憶したり読み出し
たりする以外に、記憶しているデータと外部のデータと
が一致しているか否かを比較できる機能を有している。
【0035】CAM回路101が外部データたる仮想ア
ドレス102と一致しているデータを保持している場合
には、ヒット信号8がTLB回路90の外部へ出力され
る。一方、外部データと一致したデータがCAM回路1
01の何番目のワードに記憶されているかを、一致信号
群5によって通常のメモリ回路4に伝達する。
【0036】このため、TLB回路90に外部から仮想
アドレス102が入力されるとCAM回路101で比較
され、CAM回路101において仮想アドレス102と
一致している値が存在する場合、一致信号群5の少なく
とも1つが“1”となり、ヒット信号8も“1”となっ
て外部のプロセッサにアドレス変換が成功したことを知
らせる。
【0037】更に、一致信号群5が“1”となったアド
レスに対応して通常のメモリ回路4に格納されたデータ
が、仮想アドレス102に対応する物理アドレス7とし
て読み出される。即ち通常のメモリ回路4が上述の「テ
ーブル」に該当する。
【0038】入力される仮想アドレスデータ102が、
CAM回路101に記憶されているデータと一致しなか
った場合は、ヒット信号8は“0”となり仮想アドレス
が物理アドレスに変換されなかったことをプロセッサに
知らせる。
【0039】
【発明が解決しようとする課題】マイクロプロセッサを
使用するシステムにおけるメモリ管理システムにおいて
は、仮想メモリという概念が必須なので、以上述べたよ
うなTLB回路90は必須のものである。例えばR30
00のパイプラインでは、外部メモリをアクセスする以
前に、仮想アドレスを求める為の所定の加算処理を段階
DADDで実行し、段階DTLBによって仮想アドレス
102を物理アドレス7に変換する必要がある。つまり
仮想アドレス102を求めるための所定の加算処理に必
要な時間に対し、2倍の時間が物理アドレス7の値を得
るまでに必要であった。
【0040】上記のように従来の技術では、仮想アドレ
スを求めるための所定の加算処理を一旦実行した後、T
LB回路によるアドレスの変換を実行し、外部メモリを
アクセスしていたので、この処理時間の長さがコンピュ
ータの性能を向上させることを妨げるという問題点を有
していた。
【0041】この発明は上記の問題点を解消するために
為されたもので、仮想アドレスを求めるための所定の加
算処理をTLB回路内において実行することにより、処
理に必要な時間を短縮することを目的とする。
【0042】
【課題を解決するための手段】この発明のうち請求項1
にかかるものは、第1のビット数を有する第1の上位ビ
ット(1u)と第2のビット数を有する第1の下位ビッ
ト(1d)とから構成される第1の値(1)と、前記第
1のビット数よりも小さな第3のビット数を有する第2
の上位ビット(2u)と前記第2のビット数を有する第
2の下位ビット(2d)とから構成される第2の値
(2)との加算を行い、前記加算の結果が少なくとも一
つの、前記第1のビット数を有する比較値(K)と一致
するか否かを判定する連想メモリ回路である。そして、
(a)前記第1の下位ビットと前記第2の下位ビットと
の加算結果が、前記所定のビット数より上位に桁上げを
生じさせるか否かを示す桁上げ信号(32)を生成する
加算器(31)と、(b)前記比較値に対応して設けら
れ、その各々が前記第1の上位ビット及び前記第2の上
位ビットをそれらの最下位ビットを揃えつつ、かつ前記
最下位ビットに前記桁上げ信号の論理値をも加えて加算
した結果が、自身が対応する前記比較値と一致するか否
かを示す一致信号(5i )を出力する一致判定回路(3
i 又は113i)とを備える。前記一致判定回路の各
々は(b−1)前記第1の上位ビット及び前記第2の上
位ビットをそれらの最下位ビットを揃えつつ、かつ前記
最下位ビットに論理値“0”を加えて加算した結果を前
記一致判定回路に対応する前記比較値と一致するか否か
を示す第1の一致信号候補(440 )を出力する第1の
FAC回路(40a0 )と、(b−2)前記第1の上位
ビット及び前記第2の上位ビットをそれらの最下位ビッ
トを揃えつつ、かつ前記最下位ビットに論理値“1”を
加えて加算した結果を前記一致判定回路に対応する前記
比較値と一致するか否かを示す第2の一致信号候補(4
1 )を出力する第2のFAC回路(40a1)と、
(b−3)前記桁上げ信号に基づいて前記第1の一致信
号候補及び前記第2の一致信号候補を選択的に前記一致
信号として出力する選択回路(41)とを有する。
【0043】この発明のうち請求項2にかかるものは請
求項1記載の連想メモリ回路であって、前記第1のFA
C回路及び前記第2のFAC回路のいずれもが(x−
1)前記第1のビット数だけ設けられ、その各々が(x
−1−1)前記一致判定回路に対応する前記比較値を構
成する比較1ビット(Dk )を記憶する記憶要素(51
k )と、(x−1−2)前記第1の上位ビットを構成す
る第1の1ビット(1k)及び前記第2の上位ビットを
構成する第2の1ビット(2k )とを入力し、両者の排
他的論理和である和結果(Pk )及び論理積である桁上
げ結果(Gk )を出力する半加算器(59k )とを備え
る。前記和結果及び前記桁上げ結果及び前記比較1ビッ
トを用いて所定の演算を行い、第1の出力(zk )及び
第2の出力(Vk )を出力するFAC要素(50k 又は
80k 若しくは80k 及び81)と、(x−2)前記第
1の出力の論理反転の論理積を、前記第1のFAC回路
においては前記第1の一致信号候補として、前記第2の
FAC回路においては前記第2の一致信号候補として、
それぞれ出力する一致信号候補生成手段(60又は6
1,133a,133b)とを含む。前記所定の演算
は、前記FAC要素の各々において(y−1)前記和結
果と、前記比較1ビットの論理反転との論理積を採って
得られる第1の演算結果を求め、(y−2)前記第1の
演算結果と、前記桁上げ結果との論理和を採って得られ
る前記第2の出力を求め、(y−3)前記和結果と、前
記比較1ビットとの排他的論理和を採って第2の演算結
果(Wk-1 )を求め、(y−4)自身よりも下位におい
て隣接する前記FAC要素の前記第2の出力(Vk-1
と、前記第2の演算結果との排他的論理和を採って前記
第1の出力を求める演算である。但し、前記FAC要素
のうち最下位に設けられるものにおける前記(y−4)
にいう「自身よりも下位において隣接する前記FAC要
素の前記第2の出力」とは、前記第1のFAC回路にお
いては前記論理値“0”が、前記第2のFAC回路にお
いては前記論理値“1”が、それぞれ対応する。
【0044】この発明のうち請求項3にかかるものは、
請求項2記載の連想メモリ回路であって、前記半加算器
は前記第1のFAC回路及び前記第2のFAC回路にお
いてビット毎に共有されて半加算器群(110)を構成
する。
【0045】この発明のうち請求項4にかかるものは請
求項3記載の連想メモリ回路であって、前記第1のFA
C回路及び前記第2のFAC回路においてFAC要素の
全てがビット毎に共有される。前記FAC要素のうち前
記最下位ビットに対応するもの以外はその各々が(x−
1−3)前記第1の演算結果を出力するAND回路(5
k )と、(x−1−4)前記第2の出力を出力するO
R回路(52k )と、(x−1−5)前記第2の演算結
果を出力する第1のEX−OR回路(56k )と、(x
−1−6)前記第1の出力を出力する第2のEX−OR
回路(55k )とを更に備える。前記最下位ビットに対
応する前記FAC要素は(x−1−7)前記第1の演算
結果を出力するAND回路(531 )と、(x−1−
8)前記第2の出力を出力するOR回路(521 )と、
(x−1−9)前記第2の演算結果を出力する第1のE
X−OR回路(561 )とを更に備える。前記一致判定
回路の各々は(b−4)前記最下位ビットに対応する前
記FAC要素の前記第2の演算結果を前記第1のFAC
回路の前記最下位ビットに対応する前記FAC要素の前
記第1の出力として伝達する第1の伝達素子と、(b−
5)前記最下位ビットに対応する前記FAC要素の前記
第2の演算結果を前記第1のFAC回路の前記最下位ビ
ットに対応する前記FAC要素の前記第1の出力として
伝達する第2の伝達素子とを更に有する。前記一致信号
候補生成手段は(x−2−1)前記FAC要素のうち前
記最下位ビットに対応するもの以外の前記第1の出力の
論理和を出力する第1の論理素子(61)と、(x−2
−2)前記第1の伝達素子の出力と前記第1の論理素子
の出力との論理和の反転を前記第1の一致信号候補とし
て出力する第2の論理素子(133b)と、(x−2−
3)前記第2の伝達素子の出力と前記第1の論理素子の
出力との論理和の反転を前記第2の一致信号候補として
出力する第3の論理素子(133a)とを備える。
【0046】この発明のうち請求項5にかかるものは、
請求項1乃至請求項4のいずれかに記載の連想メモリ回
路であって、(c)前記一致信号の全ての論理和を採っ
てヒット信号を出力するヒット信号生成手段(8)を更
に備える。
【0047】この発明のうち請求項6にかかるものは、
請求項1乃至請求項5のいずれかに記載された連想メモ
リ回路と、前記連想メモリ回路の前記比較値をアドレス
とし、前記アドレスに対応して物理アドレスを格納する
メモリ回路とを備えるTLB回路である。前記第1の値
と前記第2の値の前記加算の結果を仮想アドレスとし、
前記一致信号を介して前記仮想アドレスを前記物理アド
レスに変換する。
【0048】
【作用】この発明のうち請求項1にかかる連想メモリ回
路においては、第1のFAC回路は、第1の下位ビット
と第2の下位ビットとの加算による桁上げが存在しない
と仮定して第1の上位ビットと第2の上位ビットとの加
算結果が比較値に一致するか否かを計算する。また、第
2のFAC回路は、第1の下位ビットと第2の下位ビッ
トとの加算による桁上げが存在すると仮定して第1の上
位ビットと第2の上位ビットとの加算結果が比較値に一
致するか否かを計算する。第1のFAC回路及び第2の
FAC回路における上位ビットの計算は、加算器におけ
る計算と同時に行われる。
【0049】この発明のうち請求項2にかかる連想メモ
リ回路においては、第1のFAC回路及び第2のFAC
回路において第1の上位ビットと第2の上位ビットとを
ビット毎に計算する際に、桁上げは高々1ビットしか伝
搬しない。
【0050】この発明のうち請求項3にかかる連想メモ
リ回路においては、半加算器群は、いずれの前記一致判
定回路が有する第1のFAC回路及び前記第2のFAC
回路に対しても、和結果及び桁上げ結果を入力する。
【0051】この発明のうち請求項4にかかる連想メモ
リ回路においては、一致判定回路のそれぞれにおいて、
FAC要素は第1のFAC回路及び第2のFAC回路に
対して共有されてビット毎に第1及び第2の出力を得
る。
【0052】この発明のうち請求項5にかかる連想メモ
リ回路においては、第1及び第2の値を加算した結果が
いずれかの比較値と一致した場合にヒット信号が活性化
する。
【0053】この発明のうち請求項6にかかるTLB回
路においては、仮想アドレスに対応する物理アドレスが
存在するか否かは一致信号によって判定される。
【0054】
【実施例】
実施例1:図1はこの発明に係るメモリ回路の一例であ
るTLB回路91の構成を示すブロック図である。TL
B回路91はTLB回路90の構成に対し、CAM回路
101をFAC−CAM回路3で置換した構成を有して
いる。FAC−CAM回路3もCAM回路101と同様
に一致信号群5及びヒット信号8を出力する。
【0055】しかし、FAC−CAM回路3には仮想ア
ドレス102は入力されない。その代わり、仮想アドレ
スを生成するための2つのデータ1,2が与えられる。
これらは従来の技術において例示した“base”の指定す
るレジスタファイルに格納された32ビットの値と“of
fset”の16ビットの値に相当し、互いに加算されるこ
とによって仮想アドレスが生成される。
【0056】なお、以下の説明ではメモリや本発明に直
接に関係しない読み出し回路の詳細については省略す
る。
【0057】図2はFAC−CAM回路3の構成を例示
するブロック図である。FAC−CAM回路3は第1の
改良されたFAC回路30i (i=1,2,…,m)、
加算器31及びOR回路33を備えている。「改良され
た」と付加したのは後述する公知のFAC回路( Fast
Adder-Comparator)に対して改良したことを示してい
る。第1の改良されたFAC回路30i の個数mは仮想
アドレスから変換されるべき物理アドレスの数と一致す
る。
【0058】第1の改良されたFAC回路30i にはデ
ータ1,2の上位ビット群が入力され、加算器31には
データ1,2の下位ビット群が入力される。たとえば、
R3000の場合にはデータ1,2としてそれぞれ32
ビット及び16ビットの値が用いられるので、上位ビッ
ト群としてはデータ1の上位20ビット1u及びデータ
2の上位4ビット2uが、下位ビット群としてはデータ
1の下位12ビット1d及びデータ2の下位12ビット
2dが、それぞれ相当する。
【0059】加算器31はデータ1,2の下位ビット群
を加算し、その結果桁上げが生じたか否かを桁上げ信号
32によってFAC回路30i に伝達する。データ1,
2の上位ビット群及び桁上げ信号32は第1の改良され
たFAC回路30i のすべてに対して並列に入力されて
いる。
【0060】第1の改良されたFAC回路30i の各々
は一致信号5i を出力する。一致信号5i は一致信号群
5を構成する。一致信号群5の論理和を採ることによ
り、OR回路33はヒット信号8を出力する。
【0061】図3は第1の改良されたFAC回路30i
の構成を例示するブロック図である。いずれの第1の改
良されたFAC回路30i も後述する公知のFAC回路
40a0 ,40a1 、論理値“1”に相当する電位点4
2及び論理値“0”に相当する電位点43、並びにFA
C回路40a0 ,40a1 のそれぞれの出力440 ,4
1 を選択的に一致信号5i として出力する選択回路4
1を備えている。
【0062】データ1,2はFAC回路40a0 ,40
1 の両方に並列に入力され、これら及び論理値
“0”,“1”を論理演算することにより、出力4
0 ,441 が求められる。FAC回路40a0 ,40
1 の両方には等しい値が記憶されており、上記論理演
算によって得られた値と記憶された値との一致/不一致
に応じて出力440 ,441 はいずれも“1”/“0”
を採る。
【0063】図4はFAC回路40aj (j=0,1)
の構成を例示する回路図である。いずれのFAC回路4
0aj も1ビットのFAC要素50k (k=1,2,
…,20)と20ビット入力のNOR回路60とを備え
ている。FAC回路40aj 一つ当たりの1ビットのF
AC要素50k の個数は上位ビットの数と等しい。その
ためここでは20個備えられている。NOR回路60の
入力端数も同様である。図4において左側程下位ビット
に対応するFAC要素50k が配置されている。
【0064】FAC要素50k は従来のCAM回路10
1で記憶されていた値を1ビット毎に記憶する記憶要素
51k 、OR回路52k 、AND回路53k 、NOT回
路54k 、EX−OR回路55k ,56k 、半加算器5
k を構成するEX−OR回路57k 及びAND回路5
k を備えている。
【0065】半加算器59k にはデータ1,2の上位ビ
ット1u,2uの下から第kビット目の1ビット1k
k が与えられる。半加算器59k の桁上げGk はOR
回路52k の一方の入力端に、半加算器59k の和Pk
はAND回路53k の一方の入力端及びEX−OR回路
56k の一方の入力端に、それぞれ与えられている。
【0066】記憶要素51k の記憶する値Dk はEX−
OR回路56k の他方の入力端及びNOT回路54k
入力端に与えられ、NOT回路54k の出力はAND回
路53k の他方の入力端に与えられる。AND回路53
k の出力はOR回路52k の他方の入力端に与えられ
る。OR回路52k の出力はFAC要素50k の桁上げ
k となる。
【0067】EX−OR回路55k の一方の入力端には
EX−OR回路56k の出力Wk-1が与えられる。EX
−OR回路55k の他方の入力端には、k=1の場合に
は“1”または“0”の値が与えられる。FAC回路4
0a0 において備えられているFAC要素501 の有す
るEX−OR回路551 の他方の入力端には“0”が、
FAC回路40a1 において備えられているFAC要素
501 の有するEX−OR回路551 の他方の入力端に
は“1”が、それぞれ与えられることになる。これらの
入力は、電位点42,43によって与えられるものであ
る。
【0068】また、EX−OR回路55k の他方の入力
端には、k>1の場合にはFAC要素50k-1 のOR回
路52k-1 からの桁上げVk-1 が与えられる。
【0069】FAC要素50k のEX−OR回路55k
の出力zk は全てNOR回路60の入力端に与えられ、
それらの論理反転の積が出力44j として求められる。
【0070】FAC要素50k のEX−OR回路55k
の出力zk はFAC要素50k-1 の桁上げVk-1 と、記
憶要素51k の記憶する値Dk と、データ1,2の1ビ
ット1k ,2k によってのみ定まり、FAC要素50
k-1 よりも下位のFAC要素50n (n<k−1)の演
算結果には依存しない。即ち、FAC回路40aj にお
ける桁上げは高々1個の上位のビットだけにしか伝搬し
ない。従って、データ1,2の上位ビット1u,2uの
加算と、その加算の結果と記憶要素51k の記憶する値
k によって定まる20ビットの値との比較とが、高速
に行われることになる。
【0071】このように加算処理と比較処理とをまとめ
て実行できるFAC回路は“Evaluation of A+B=K Cond
itions Without Carry Propagation”(JCS,Vol.41,No.
11,pp1484-1488)に記載されている。FAC回路を利用
すれば、加算して比較する処理を併せて高速に(通常の
比較回路と同等の速度で)実行することができるように
なる。その理由を上記文献に従って説明する。
【0072】データ1,2の上位ビット1u,2uの加
算結果はR=(rs ,rs-1 ,…,r1 )として考えら
れる。ここで値sは上位ビットの個数であり、ここでは
20に等しい。比較されるべき値はK=(Ds
s-1 ,…,D1 )として考えられる。R=Kのときに
E=1であり、それ以外ではE=0となる判定結果を得
るためにはEを数1のように定義すれば良いことは明白
である。
【0073】
【数1】
【0074】但し、データ1,2の1ビット1k ,2k
の値をそれぞれAk ,Bk とした。
【0075】一方、FAC要素50k の構成上、数2が
成立する。
【0076】
【数2】
【0077】従って、
【0078】
【数3】
【0079】がEに等しいことが示されれば、FAC回
路40aj において加算処理と比較処理とをまとめて実
行できることが示されることになる。
【0080】簡単のため、まずV0 =0であるFAC回
路40a0 について説明する。k=1のとき、数2から
【0081】
【数4】
【0082】となる。この時
【0083】
【数5】
【0084】であるのでk=1においてZ=E、即ちZ
1 =E1 が成立することが解る。
【0085】次に、Zk-1 =Ek-1 が成立したものと仮
定する。
【0086】
【数6】
【0087】であるので、Zk-1 =Ek-1 の値が“0”
ならばZk =Ek =0が成立する。Zk-1 =Ek-1 の値
が“1”ならば
【0088】
【数7】
【0089】となる。従って、
【0090】
【数8】
【0091】が示されれば数学的帰納法により、数3が
Eに等しいことが証明される。
【0092】数2から
【0093】
【数9】
【0094】が得られる。数1及び数7から
【0095】
【数10】
【0096】が得られるので、数9及び数10から
【0097】
【数11】
【0098】が得られて数8が示されたことになる。
【0099】同様にして、V0 =1であるFAC回路4
0a1 は、R+(0…01)=KのときにE=1であ
り、それ以外ではE=0となる判定結果を得ることにな
る。
【0100】図2乃至図4を参照してFAC−CAM回
路3の動作を説明する。デコードされた命令が、例えば
メモリアクセスのため、レジスタファイルからのデータ
の読み出しを必要とするものである場合を考える。
【0101】レジスタファイルからデータを読み出すた
めには物理アドレスを求める必要があり、それには仮想
アドレスを求めることが前提となる。既述のように仮想
アドレスを求めるためには2つのデータ1,2の加算処
理が必要であり、データ1,2は上位の20ビット1
u,2uが第1の改良されたFAC回路30i に与えら
れ、下位の12ビット1d,2dは加算器31に与えら
れる。
【0102】加算器31の行う加算処理は12ビットの
値に対するものであるので、従来において仮想アドレス
を求める際に行われていた32ビットの値の加算より
も、相当高速に計算結果が求められる。その結果、桁上
げが生じたか否かを示す桁上げ信号32が第1の改良さ
れたFAC回路30i に与えられる。
【0103】第1の改良されたFAC回路30i では既
述のようにデータ1,2の上位ビット1u,2uの加算
と、その加算の結果と記憶要素51k の記憶する値Dk
によって定まる20ビットの値との比較とが、高速に行
われる。但し、第1の改良されたFAC回路30i では
FAC回路40a0 ,40a1 のそれぞれにおいて加算
及び比較が行われ、それぞれ下位の12ビット1d,2
d同士の加算結果に桁上げが生じない場合及び生じた場
合に対応した動作が行われる。
【0104】即ち、下位の12ビット1d,2d同士の
加算結果に桁上げが生じない場合には桁上げ信号32が
“0”であって、正しい比較結果はFAC回路40a0
の出力440 によって得られる。また下位の12ビット
1d,2d同士の加算結果に桁上げが生じる場合には桁
上げ信号32が“1”であって、正しい比較結果はFA
C回路40a1 の出力441 によって得られる。
【0105】このように、下位ビットの加算結果の桁上
げ信号32の採る2つの値に対応して2つの回路を用意
し、同時に上位ビットの加算・比較処理を実行しておく
ことにより、桁上げ信号32を得るのに要する時間を待
つ必要がなくなる。つまり「下位12ビットの加算」
と、「上位20ビットの加算と比較」が同時に実行でき
る。しかもFAC回路40aj における桁上げ信号の伝
搬は高々隣接するビット間に限られるので、出力4
0 ,441 は桁上げ信号32より高速に得られる。
【0106】選択回路41は桁上げ信号32に基づい
て、出力440 ,441 の内正しい比較結果が得られる
ものを一致信号5i として出力する。
【0107】少なくとも1つの一致信号5i の値が、一
致を示す“1”であった場合、ヒット信号8は“1”と
なり、プロセッサにアドレス変換が成功したことを知ら
せる。更に、一致信号群5の内、値が“1”であるもの
に対応するアドレスのデータが物理アドレス7として出
力される(図1)。
【0108】なお、FAC要素50k のうち最上位に設
けられるもの(上記説明ではFAC要素5020が相当す
る)はAND回路5820,OR回路5220を省略して素
子数を低減することができる。桁上げV20を出力する必
要がないためである。
【0109】本発明において、上記文献において紹介さ
れたFAC回路をただ単にそのまま並列に設けてFAC
−CAM回路3を構成することには問題がある。FAC
回路はたとえば32ビットのデータであれば、32ビッ
トの全てを比較した場合だけしか正しい比較結果を求め
ることができない。一方、TLB回路91では普通は3
2ビットのうち上位の幾つかのビットのみを比較するこ
とになり、それ以外の下位のビットは比較する必要がな
い。その一方、下位ビットの加算の結果得られる桁上げ
を考慮する必要がある。
【0110】かような理由のため、本発明では単にFA
C回路をFAC−CAM回路3として適用するのではな
い。本発明のFAC−CAM回路3は、下位ビットの加
算を行い、その桁上げが生じるか否かを示す桁上げ信号
32を出力する加算器31と、桁上げが生じたか否かに
それぞれ対応する比較結果を得る一対のFAC回路40
0 ,40a1 と、その出力440 ,441 を桁上げ信
号32に基づいて選択的に一致信号5i として出力する
選択回路41とが必要となるのである。
【0111】図5は本実施例にかかるTLB回路91を
用いた場合のパイプライン方式を示す模式図である。段
階ITLBにおいて段階IADDの処理が、段階DTL
Bにおいて段階DADDの処理が、それぞれ同時に行わ
れるので物理アドレス7の値を求める処理時間の長さが
コンピュータの性能を向上させることを妨げることはな
い。
【0112】なお、上記文献においてはFAC回路を分
岐命令の分岐判定と分岐先命令のアドレスを計算するた
めに利用していたため、FAC回路を採用するか否かに
よって命令に変更が必要となる場合がある。即ちFAC
回路を採用する以前において用いられていたソフトウェ
アに変更が必要となる場合がある。これに対して本発明
ではソフトウェアの変更は一切必要ではない。一つの命
令を実行するパイプライン処理の処理時間が短縮される
に過ぎず、それ以外の変更を必要とはしないためであ
る。
【0113】実施例2:図6はFAC−CAM回路3の
他の構成を例示するブロック図である。図2に示された
構成と比較して半加算器群110が追加され、第1の改
良されたFAC回路30i に置換して第2の改良された
FAC回路113i (i=1,2,…,m)が設けられ
ている。
【0114】第2の改良されたFAC回路113i には
第1の改良されたFAC回路30iのようにデータ1,
2の上位ビット1u,2uがそのまま与えられるのでは
ない。その替わりに半加算器群110の和結果111及
び桁上げ結果112が与えられる。これらの和結果11
1及び桁上げ結果112は半加算器群110がビット毎
に上位ビット1u,2uを加算することによって求めら
れる。
【0115】図7は半加算器群110の構成を例示する
回路図である。半加算器群110は加算すべき上位ビッ
トの個数(ここでは20個)と同数の半加算器120k
(k=1,2,…,20)を備えており、ビット毎にデ
ータ1,2の上位ビット1u,2uが与えられている。
すなわち半加算器120k にはデータ1,2の上位ビッ
ト1u,2uの下から第kビット目の1ビット1k ,2
k が与えられる。
【0116】半加算器120k はFAC要素50k の備
える半加算器59k と同一の構成を採っている。従って
半加算器120k は和Pk ,桁上げGk を与えることに
なる。そして和結果111及び桁上げ結果112はそれ
ぞれ(P1 2 …Pk …P20),(G1 2 …Gk …G
20)として得られることになる。
【0117】ここで、出力Pk ,Gk はビット毎に独立
して(すなわち桁上げの伝搬がなく)求められる。従っ
て、和結果111及び桁上げ結果112は非常に高速に
求められる。
【0118】図8は第2の改良されたFAC回路113
i の構成を例示する回路図である。図3に示された第1
の改良されたFAC回路30i の構成と比較すると、F
AC回路40a0 ,40a1 がそれぞれFAC回路40
0 ,40b1 に置換されている。そしてこれらのいず
れにもデータ1,2の上位ビット1u,2uが与えられ
る替わりに和結果111及び桁上げ結果112が与えら
れている。
【0119】図9はFAC回路40bj (j=0,1)
の構成を例示する回路図である。いずれのFAC回路4
0bj も1ビットのFAC要素80k (k=1,2,
…,20)と20ビット入力のNOR回路60とを備え
ている。FAC回路40bj はFAC回路40aj にお
いてFAC要素50k をFAC要素80k に置換した構
成となっている。
【0120】ただし、既に和結果111及び桁上げ結果
112が求められているので、FAC要素80k には半
加算器59k は必要ない。実施例1においてはFAC回
路40a0 ,40a1 において半加算器59k は同一の
処理を重複して行っていた。しかし実施例2では半加算
器群110が半加算器59k と同一機能を果たしてい
る。換言すれば実施例2は実施例1におけるFAC回路
40a0 ,40a1 の半加算器59k を共有させ、半加
算器群110として纏める技術を紹介している。
【0121】この様に構成されたFAC回路40bj
FAC回路40aj と同様に動作することは明かであ
る。従って、第2の改良されたFAC回路113i も第
1の改良されたFAC回路30i と同様に動作すること
は明かであり、よって図6に示された回路も図2に示さ
れた回路と同様に動作することも明白である。
【0122】一方、実施例1においてはFAC回路40
j のいずれにおいても(P1 2…Pk …P20),
(G1 2 …Gk …G20)が計算されている。簡単のた
めに最上位のFAC要素5020にも半加算器5920が設
けられていた場合を考えれば、半加算器59k は上位ビ
ットの個数20の2倍の40個必要であった。これに対
して実施例2においては(P1 2 …Pk …P20),
(G1 2 …Gk …G20)を半加算器群110において
求めているので、実施例1の半加算器59k に対応する
半加算器120k は上位ビットの個数20だけしか必要
ではない。
【0123】このように、実施例2においてはFAC回
路の加算機能の2つ分を一括して処理するので、処理速
度を損なうことなく素子数を低減することができ、回路
の集積度を向上させることができる。
【0124】実施例3:実施例3は実施例2の第2の改
良されたFAC回路113i の他の構成を提供するもの
である。従って、実施例3においても図6に示されたF
AC−CAM回路3の構成が用いられる。
【0125】図10は第2の改良されたFAC回路11
i の他の構成を例示する回路図である。図8に示され
た回路と同様に、出力440 ,441 を桁上げ信号32
に基づいて選択的に一致信号5i として出力する選択回
路41が設けられている。これらの出力440 ,441
は実施例2とは異なり、それぞれ別個のFAC回路から
求められるのではない。実施例3においては、第2の改
良されたFAC回路113i のそれぞれは唯一のFAC
回路40cを有している。実施例2においてはFAC回
路40b0 ,40b1 の機能に共通した部分が多いた
め、実施例3においてはかかる共通した部分を唯一のF
AC回路40cに担当させ、共通していない部分につい
ては別途機能を追加することにより、素子数の低減を図
っている。
【0126】FAC回路113i は選択回路41及びF
AC回路40cの他、論理値“1”に相当する電位点4
2及び論理値“0”に相当する電位点43、NOR回路
133a,133b、EX−OR回路133c,133
d、並びにデータ1,2の上位ビット1u,2uのビッ
ト数よりも1少ない(ここでは20−1=19)個数の
入力端を有するOR回路61を備えている。
【0127】FAC回路40cはデータ1,2の上位ビ
ット1u,2uのビット数よりも1少ない(ここでは2
0−1=19)FAC要素80k (k=2,3,…,2
0)を備えている。FAC要素80k の構成は実施例2
において図9を用いて説明された通りである。FAC要
素80k の出力zk はOR回路61に与えられる。
【0128】FAC回路40cはP1 ,G1 を入力する
ものとして、FAC回路40b0 ,40b1 におけるF
AC要素801 の替わりにFAC要素81を設けてい
る。
【0129】FAC要素81はFAC要素80k と比較
してEX−OR回路55k に相当するものを有していな
い。そのかわり、EX−OR回路133c,133dが
いずれも、FAC要素801 におけるEX−OR回路5
1 と同様の機能を果たす。
【0130】実施例2においてはFAC要素80k (k
=2,3,…,20)はFAC回路40b0 ,40b1
のいずれにおいても同一の動作を行っていた。そしてF
AC要素801 のみがFAC回路40b0 ,40b1
いずれに設けられているかによって異なる動作を行って
いた。そしてここでいう「異なる動作」はEX−OR回
路551 の入力端の一方が電位点42,43のいずれに
接続されているかに依存していた。
【0131】そこで実施例3ではEX−OR回路133
c,133dを設け、それぞれの一方の入力端にはEX
−OR回路561 の出力W0 を与えた上で、それぞれの
他方の入力端には電位点42,43を接続している。詳
しくいえば、EX−OR回路133cは、FAC回路4
0b1 の備えるFAC要素801 の有するEX−OR回
路551 の代替物であり、EX−OR回路133dは、
FAC回路40b0 の備えるFAC要素801 の有する
EX−OR回路551 の代替物である。
【0132】従って、EX−OR回路133cの出力が
FAC回路40b1 における出力z1 に、EX−OR回
路133dの出力がFAC回路40b0 における出力z
1 に、それぞれ相当する。この故に、EX−OR回路1
33cの出力の論理反転と、OR回路61の出力の論理
反転との論理積を採るNOR回路133aの出力は、出
力441 となる。同様にしてEX−OR回路133dの
出力の論理反転と、OR回路61の出力の論理反転との
論理積を採るNOR回路133bの出力は、出力440
となる。
【0133】以上のことから、図10に示された回路も
図8に示された回路と同様に動作することがわかる。し
かも実施例3においては、実施例2においてFAC回路
40b0 ,40b1 の機能に共通した部分を唯一のFA
C回路40cに担当させているので素子数を更に低減さ
せることができる。
【0134】図11は32ビットのアドレスデータのう
ち上位20ビットをTLB回路で32ワード分変換する
場合の、実施例1と実施例3での必要となるトランジス
タ数の比較結果を例示する比較図である。ただし計算の
簡単のため、各実施例においては第何番目のビットに対
応したものであるかを問わず、FAC要素の有する素子
数は等しいものとしている。実施例3では実施例1の約
3分の1のトランジスタ数でFAC−CAM回路3を構
成することがわかる。
【0135】
【発明の効果】この発明のうち請求項1にかかる連想メ
モリ回路によれば、第1の値と第2の値との加算結果が
比較値に一致するか否かが高速に判定される。
【0136】この発明のうち請求項2にかかる連想メモ
リ回路によれば、第1の値と第2の値との加算結果が比
較値に一致するか否かが一層高速に処理される。
【0137】この発明のうち請求項3にかかる連想メモ
リ回路によれば、和結果及び桁上げ結果の計算という同
一動作の重複を避け、素子の低減が可能となる。
【0138】この発明のうち請求項4にかかる連想メモ
リ回路によれば、第1及び第2の出力を得るという同一
動作の重複を避け、素子の一層の低減が可能となる。
【0139】この発明のうち請求項5にかかる連想メモ
リ回路によれば、ヒット信号によって第1及び第2の値
を加算した結果がいずれかの比較値と一致したか否かを
判定することができる。
【0140】この発明のうち請求項6にかかるTLB回
路によれば、一致信号は連想メモリ回路によって迅速に
求められるので、仮想アドレスから物理アドレスへの変
換は迅速に行われる。
【図面の簡単な説明】
【図1】 この発明に係るTLB回路91の構成を示す
ブロック図である。
【図2】 この発明の実施例1を示すブロック図であ
る。
【図3】 この発明の実施例1を示すブロック図であ
る。
【図4】 この発明の実施例1を示す回路図である。
【図5】 この発明の実施例1を示す模式図である。
【図6】 この発明の実施例2を示すブロック図であ
る。
【図7】 この発明の実施例2を示す回路図である。
【図8】 この発明の実施例2を示す回路図である。
【図9】 この発明の実施例2を示す回路図である。
【図10】 この発明の実施例3を示す回路図である。
【図11】 この発明の実施例3の効果を示す比較図で
ある。
【図12】 従来の技術を示す模式図である。
【図13】 従来の技術を示す模式図である。
【図14】 従来の技術を示す模式図である。
【図15】 従来の技術を示す模式図である。
【図16】 従来の技術を示す模式図である。
【図17】 従来の技術を示す模式図である。
【図18】 従来の技術を示すブロック図である。
【符号の説明】
1u 第1の上位ビット、1d 第1の下位ビット、2
u 第2の上位ビット、2d 第2の下位ビット、1k
データ1の上位ビット1uの下から第kビット目の1
ビット(第1の1ビット)、2k データ2の上位ビッ
ト2uの下から第kビット目の1ビット(第2の1ビッ
ト)、8 OR回路(ヒット信号生成手段)、31 加
算器、32 桁上げ信号、5i 一致信号、30i ,1
13i FAC回路(一致判定回路)、40a0 FAC
回路(第1のFAC回路)、40a1 FAC回路(第
2のFAC回路)、41 選択回路、440 出力(第
1の一致信号候補)、441 出力(第2の一致信号候
補)、50k ,80k ,80k ,81 FAC要素、5
k 記憶要素、59k 加算器、110 半加算器
群、Dk 記憶要素51k の記憶する値(比較1ビッ
ト)、Pk 和(和結果)、Gk 桁上げ(桁上げ結
果)、zk 出力(第1の出力)、Vk 桁上げ(第2
の出力)、60 NOR回路(一致信号候補生成手
段)、52k OR回路、61 OR回路(第1の論理
素子)133a NOR回路(第3の論理素子)、13
3b NOR回路(第2の論理素子)Wk 出力(第2
の演算結果)、53k AND回路、56k EX−O
R回路(第1のEX−OR回路)、55k EX−OR
回路(第2のEX−OR回路)。

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 第1のビット数を有する第1の上位ビッ
    トと第2のビット数を有する第1の下位ビットとから構
    成される第1の値と、前記第1のビット数よりも小さな
    第3のビット数を有する第2の上位ビットと前記第2の
    ビット数を有する第2の下位ビットとから構成される第
    2の値との加算を行い、前記加算の結果が少なくとも一
    つの、前記第1のビット数を有する比較値と一致するか
    否かを判定する連想メモリ回路であって、 (a)前記第1の下位ビットと前記第2の下位ビットと
    の加算結果が、前記所定のビット数より上位に桁上げを
    生じさせるか否かを示す桁上げ信号を生成する加算器
    と、 (b)前記比較値に対応して設けられ、その各々が前記
    第1の上位ビット及び前記第2の上位ビットをそれらの
    最下位ビットを揃えつつ、かつ前記最下位ビットに前記
    桁上げ信号の論理値をも加えて加算した結果が、自身が
    対応する前記比較値と一致するか否かを示す一致信号を
    出力する一致判定回路とを備え、 前記一致判定回路の各々は (b−1)前記第1の上位ビット及び前記第2の上位ビ
    ットをそれらの最下位ビットを揃えつつ、かつ前記最下
    位ビットに論理値“0”を加えて加算した結果を前記一
    致判定回路に対応する前記比較値と一致するか否かを示
    す第1の一致信号候補を出力する第1のFAC回路と、 (b−2)前記第1の上位ビット及び前記第2の上位ビ
    ットをそれらの最下位ビットを揃えつつ、かつ前記最下
    位ビットに論理値“1”を加えて加算した結果を前記一
    致判定回路に対応する前記比較値と一致するか否かを示
    す第2の一致信号候補を出力する第2のFAC回路と、 (b−3)前記桁上げ信号に基づいて前記第1の一致信
    号候補及び前記第2の一致信号候補を選択的に前記一致
    信号として出力する選択回路とを有する連想メモリ回
    路。
  2. 【請求項2】 前記第1のFAC回路及び前記第2のF
    AC回路のいずれもが (x−1)前記第1のビット数だけ設けられ、その各々
    が(x−1−1)前記一致判定回路に対応する前記比較
    値を構成する比較1ビットを記憶する記憶要素と、(x
    −1−2)前記第1の上位ビットを構成する第1の1ビ
    ット及び前記第2の上位ビットを構成する第2の1ビッ
    トとを入力し、両者の排他的論理和である和結果及び論
    理積である桁上げ結果を出力する半加算器とを備え、 前記和結果及び前記桁上げ結果及び前記比較1ビットを
    用いて所定の演算を行い、第1の出力及び第2の出力を
    出力するFAC要素と、 (x−2)前記第1の出力の論理反転の論理積を、前記
    第1のFAC回路においては前記第1の一致信号候補と
    して、前記第2のFAC回路においては前記第2の一致
    信号候補として、それぞれ出力する一致信号候補生成手
    段とを含み、 前記所定の演算は、前記FAC要素の各々において (y−1)前記和結果と、前記比較1ビットの論理反転
    との論理積を採って得られる第1の演算結果を求め、 (y−2)前記第1の演算結果と、前記桁上げ結果との
    論理和を採って得られる前記第2の出力を求め、 (y−3)前記和結果と、前記比較1ビットとの排他的
    論理和を採って第2の演算結果を求め、 (y−4)自身よりも下位において隣接する前記FAC
    要素の前記第2の出力と、前記第2の演算結果との排他
    的論理和を採って前記第1の出力を求める演算であっ
    て、前記FAC要素のうち最下位に設けられるものにお
    ける前記(y−4)にいう「自身よりも下位において隣
    接する前記FAC要素の前記第2の出力」とは、前記第
    1のFAC回路においては前記論理値“0”が、前記第
    2のFAC回路においては前記論理値“1”が、それぞ
    れ対応する、請求項1記載の連想メモリ回路。
  3. 【請求項3】 前記半加算器は前記第1のFAC回路及
    び前記第2のFAC回路においてビット毎に共有されて
    半加算器群を構成する、請求項2記載の連想メモリ回
    路。
  4. 【請求項4】 前記第1のFAC回路及び前記第2のF
    AC回路においてFAC要素の全てがビット毎に共有さ
    れ、 前記FAC要素のうち前記最下位ビットに対応するもの
    以外はその各々が(x−1−3)前記第1の演算結果を
    出力するAND回路と、(x−1−4)前記第2の出力
    を出力するOR回路と、(x−1−5)前記第2の演算
    結果を出力する第1のEX−OR回路と、(x−1−
    6)前記第1の出力を出力する第2のEX−OR回路と
    を更に備え、 前記最下位ビットに対応する前記FAC要素は(x−1
    −7)前記第1の演算結果を出力するAND回路と、
    (x−1−8)前記第2の出力を出力するOR回路と、
    (x−1−9)前記第2の演算結果を出力する第1のE
    X−OR回路とを更に備え、 前記一致判定回路の各々は (b−4)前記最下位ビットに対応する前記FAC要素
    の前記第2の演算結果を前記第1のFAC回路の前記最
    下位ビットに対応する前記FAC要素の前記第1の出力
    として伝達する第1の伝達素子と、 (b−5)前記最下位ビットに対応する前記FAC要素
    の前記第2の演算結果を前記第1のFAC回路の前記最
    下位ビットに対応する前記FAC要素の前記第1の出力
    として伝達する第2の伝達素子とを更に有し、 前記一致信号候補生成手段は(x−2−1)前記FAC
    要素のうち前記最下位ビットに対応するもの以外の前記
    第1の出力の論理和を出力する第1の論理素子と、(x
    −2−2)前記第1の伝達素子の出力と前記第1の論理
    素子の出力との論理和の反転を前記第1の一致信号候補
    として出力する第2の論理素子と、(x−2−3)前記
    第2の伝達素子の出力と前記第1の論理素子の出力との
    論理和の反転を前記第2の一致信号候補として出力する
    第3の論理素子とを備える、請求項3記載の連想メモリ
    回路。
  5. 【請求項5】 (c)前記一致信号の全ての論理和を採
    ってヒット信号を出力するヒット信号生成手段を更に備
    える請求項1乃至請求項4のいずれかに記載の連想メモ
    リ回路。
  6. 【請求項6】 請求項1乃至請求項5のいずれかに記載
    された連想メモリ回路と、 前記連想メモリ回路の前記比較値をアドレスとし、前記
    アドレスに対応して物理アドレスを格納するメモリ回路
    とを備え、 前記第1の値と前記第2の値の前記加算の結果を仮想ア
    ドレスとし、前記一致信号を介して前記仮想アドレスを
    前記物理アドレスに変換するTLB回路。
JP7018163A 1995-02-06 1995-02-06 連想メモリ回路及びtlb回路 Pending JPH08212789A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7018163A JPH08212789A (ja) 1995-02-06 1995-02-06 連想メモリ回路及びtlb回路
US08/500,324 US5805490A (en) 1995-02-06 1995-07-10 Associative memory circuit and TLB circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7018163A JPH08212789A (ja) 1995-02-06 1995-02-06 連想メモリ回路及びtlb回路

Publications (1)

Publication Number Publication Date
JPH08212789A true JPH08212789A (ja) 1996-08-20

Family

ID=11963947

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7018163A Pending JPH08212789A (ja) 1995-02-06 1995-02-06 連想メモリ回路及びtlb回路

Country Status (2)

Country Link
US (1) US5805490A (ja)
JP (1) JPH08212789A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493255B2 (en) 2000-07-04 2002-12-10 Hitachi, Ltd. Semiconductor integrated circuit device and information processing device employing semiconductor integrated circuit device

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199152B1 (en) * 1996-08-22 2001-03-06 Transmeta Corporation Translated memory protection apparatus for an advanced microprocessor
US6012131A (en) * 1996-11-06 2000-01-04 Hyundai Electronics Industries. Co., Ltd. High speed translation lookaside buffer employing content address memory
US6026467A (en) * 1997-10-01 2000-02-15 Lucent Technologies Inc. Content-addressable memory implemented with a memory management unit
US6327646B1 (en) * 1999-03-12 2001-12-04 Intel Corporation Translation look-aside buffer utilizing high-order bits for fast access
US6968469B1 (en) 2000-06-16 2005-11-22 Transmeta Corporation System and method for preserving internal processor context when the processor is powered down and restoring the internal processor context when processor is restored
US6757703B2 (en) * 2002-03-29 2004-06-29 Neomagic Israel Ltd. Associative processor addition and subtraction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3346241A1 (de) * 1983-03-31 1984-10-04 Siemens AG, 1000 Berlin und 8000 München Parallelverknuepfungsschaltung mit verkuerztem uebertragsdurchlauf
JPS63129425A (ja) * 1986-11-19 1988-06-01 Mitsubishi Electric Corp デ−タ処理装置
US5247627A (en) * 1987-06-05 1993-09-21 Mitsubishi Denki Kabushiki Kaisha Digital signal processor with conditional branch decision unit and storage of conditional branch decision results
US5485418A (en) * 1990-01-16 1996-01-16 Mitsubishi Denki Kabushiki Kaisha Associative memory
JPH03219326A (ja) * 1990-01-24 1991-09-26 Mitsubishi Electric Corp データ比較回路
JPH0831032B2 (ja) * 1990-08-29 1996-03-27 三菱電機株式会社 データ処理装置
JP2810269B2 (ja) * 1992-01-20 1998-10-15 三菱電機株式会社 連想メモリシステム
US5418736A (en) * 1994-03-11 1995-05-23 Nexgen, Inc. Optimized binary adders and comparators for inputs having different widths

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6493255B2 (en) 2000-07-04 2002-12-10 Hitachi, Ltd. Semiconductor integrated circuit device and information processing device employing semiconductor integrated circuit device

Also Published As

Publication number Publication date
US5805490A (en) 1998-09-08

Similar Documents

Publication Publication Date Title
US10776127B2 (en) Reducing data hazards in pipelined processors to provide high processor utilization
US5826089A (en) Instruction translation unit configured to translate from a first instruction set to a second instruction set
US5125083A (en) Method and apparatus for resolving a variable number of potential memory access conflicts in a pipelined computer system
EP0782071B1 (en) Data processor
EP1157329B1 (en) Methods and apparatus for branch prediction using hybrid history with index sharing
AU635016B2 (en) Decoding multiple specifiers in a variable length instruction architecture
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
US5815420A (en) Microprocessor arithmetic logic unit using multiple number representations
US7721073B2 (en) Conditional branch execution in a processor having a data mover engine that associates register addresses with memory addresses
JP2001034471A (ja) Vliw方式プロセッサ
JP3848161B2 (ja) アドレス変換履歴テーブルを用いたメモリアクセス装置及び方法
JPH08212789A (ja) 連想メモリ回路及びtlb回路
US7003651B2 (en) Program counter (PC) relative addressing mode with fast displacement
JPH08249178A (ja) プロセッサのアネックス内において修飾ビットを形成する方法及び装置
US8583897B2 (en) Register file with circuitry for setting register entries to a predetermined value
US6425047B1 (en) Process containing address decoders suited to improvements in clock speed
US5829049A (en) Simultaneous execution of two memory reference instructions with only one address calculation
JP3707729B2 (ja) アドレス生成インターロック検出方法およびシステム
US6578135B1 (en) Method and apparatus for performing addressing operations in a superscalar superpipelined processor
US8473541B2 (en) M-bit race delay adder and method of operation
US20240111537A1 (en) Store instruction merging with pattern detection
US20240103761A1 (en) Buffer circuitry for store to load forwarding
JPH0816392A (ja) コンピュータシステム、コンピュータシステム動作方法、及びコンピュータ命令シーケンス実行方法
JP3102399B2 (ja) データ処理装置及び方法
JPH07191911A (ja) アドレス変換装置及びマイクロプロセッサ算出方法