JPH0769868B2 - 高速アドレス変換装置 - Google Patents

高速アドレス変換装置

Info

Publication number
JPH0769868B2
JPH0769868B2 JP61226697A JP22669786A JPH0769868B2 JP H0769868 B2 JPH0769868 B2 JP H0769868B2 JP 61226697 A JP61226697 A JP 61226697A JP 22669786 A JP22669786 A JP 22669786A JP H0769868 B2 JPH0769868 B2 JP H0769868B2
Authority
JP
Japan
Prior art keywords
word
associative memory
line
counter
hit
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.)
Expired - Lifetime
Application number
JP61226697A
Other languages
English (en)
Other versions
JPS6381548A (ja
Inventor
理 岡本
浩 廉田
雅逸 中島
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 JP61226697A priority Critical patent/JPH0769868B2/ja
Priority to US07/100,561 priority patent/US4910668A/en
Publication of JPS6381548A publication Critical patent/JPS6381548A/ja
Publication of JPH0769868B2 publication Critical patent/JPH0769868B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • 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/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list

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)

Description

【発明の詳細な説明】 産業上の利用分野 本発明は、プロセッサを使ったシステムにおいて用いら
れる高速アドレス変換装置に関する。
従来の技術 第5図に示した従来の連想メモリ202(以降、CAMと略称
する)、ランダムアクセスメモリ204(以降、RAMと略称
する)、リースト・リセントリ・ユーズド回路200(以
降、LRUと略称する)からなる高速アドレス変換装置
(以降、TLBと略称する)には、ページングを採用した
メモリ管理方式を用いたマイクロプロセッサによって現
在実行されているプロセスの認識番号を示す情報が含ま
れていなかったため、コンテキストスイッチングが起っ
た場合、新しく行なわれようとするプロセスから生じた
論理アドレスが以前行なわれていたプロセスの論理アド
レスと同じページ空間であることがあり、よってコンテ
キストスイッチングが起こるたびに高速アドレス変換装
置におけるアドレスの情報をすべて無効にする必要があ
った。
発明が解決しようとする問題点 従来の技術で述べたように、コンテキスト・スイッチン
グが起るたびごとに、高速アドレス変換装置の内容をす
べて無効にする必要がある。マルチユーザ、マルチプロ
セスの環境下では、スケジューリングによるプロセスの
切り変えが連続的に行なわれるため、コンテキスト・ス
イッチングごとに、TLBの無効化と、新しくTLBに変換す
るための論理アドレス及び変換後の物理アドレスのロー
ドが必要となり、これらによる時間のロスはシステムの
オーバーヘッドとなっている。
問題点を解決するための手段 本発明の第1手段となる高速アドレス変換装置は、連想
メモリ、ランダムアクセスメモリ、リースト・リーセン
トリ・ユーズド回路からなり、前記連想メモリ、ランダ
ムアクセスメモリ、リースト・リーセントリ・ユーズド
回路は各々内部に複数ワードを有し、前記連想メモリの
各ワードは前記ランダムアクセスメモリ、リースト・リ
ーセントリ・ユーズド回路のワードに対応しており、前
記連想メモリの各ワード上に、プロセサで実行されてい
るプロセスから生じた論理アドレスを格納する論理アド
レス部と、そのプロセスの認識番号を格納するプロセス
認識番号部と、同一ワード上の前記物理アドレス部とプ
ロセス認識番号部と前記ランダムアクセスメモリの物理
アドレス部の有効性を示すバリッドビットと、この連想
メモリに対して検索動作を行なった際に、そのワードが
論理アドレス部での論理アドレスとプロセス認識番号部
でのプロセス番号が一致しているかどうかを示す連想メ
モリヒットワード線とを設け、 前記連想メモリは、この連想メモリの各ワード上のバリ
ッドビットを参照し、すべてのワードのバリッドビット
がバリッドである場合に、連想メモリのすべてのワード
のデータが書き込まれている状態であることを示す信号
を連想メモリフル線に出力するとともに、この連想メモ
リのいずれかのワードがヒットしたかどうかを示す信号
を連想メモリヒット線に出力し、 前記リースト・リーセントリ・ユーズド回路の前記各ワ
ード上に、一番最近にそのワードを使用されたかどうか
を数値で示すカウンタと、そのカウンタが有効かどうか
を示すビットと、前記カウンタ更新のためのキャリーを
発生するキャリー発生部と、前記連想メモリで指定され
たワードがあった場合、指定されたワードに位置するカ
ウンタと指定されたワードを除くそのワードに位置する
カウンタの比較を行う比較部と、前記メモリセルフル線
と前記連想メモリヒット線と前記連想メモリヒットワー
ド線を受け取り、前記連想メモリのリプレースワードと
して指定する信号をリースト・リーセントリ・ユーズド
リプレースワード線に出力するLRUリプレースワード発
生回路とを設け、 (i)前記連想メモリヒット線と前記連想メモリヒット
ワード線により、連想メモリで一致するワードがなく、
前記連想メモリフル線により連想メモリがフルでない場
合は、前記連想メモリとランダムアクセスメモリにデー
タを書き込む際に、前記LRUリプレースワード発生回路
は、各ワードの一方方向から見て上位にある前記カウン
タの有効性を示すビットが有効でないビットをセットす
るとともにそのワードを前記連想メモリのリプレースワ
ードとして指定し、 (ii)前記連想メモリヒット線と前記連想メモリヒット
ワード線により、連想メモリで一致するワードがなく、
前記連想メモリフル線により連想メモリがフルである場
合は、前記連想メモリとランダムアクセスメモリにデー
タを書き込む際に、各カウンタの値を前記キャリー発生
部の発生したキャリーを用いてそれぞれカウントアップ
した際に前記LRUリプレースワード発生回路は、最上位
となるカウンタの位置するワードを前記連想メモリのリ
プレースワードとして指定し、 (iii)前記連想メモリヒット線と前記連想メモリヒッ
トワード線で指定されたワードがある場合、前記比較部
はヒットしているワードのカウンタの値とヒットしたワ
ードを除く他のワードに位置するそれぞれのカウンタの
値とを比較し、前記ヒットワードのカウンタの値が他の
ワードに位置するカウンタの値より大きい場合に、他の
ワード上のカウンタの値を前記キャリー発生部の発生し
たキャリーを用いてカウントアップする構成を採用す
る。
また本発明の第2手段となる高速アドレス変換装置は、
上記第1の手段に対して前記連想メモリには、前記プロ
セス番号認識番号を参照し、同一のプロセス認識番号を
持つ複数ワードのバリッドビットのリセットを目的とす
るプロセス認識番号一括リセット線と、バリッドビット
を参照し、前記複数ワードの一方方向から上位にある前
記プロセス認識番号リセット線によりリセットされたイ
ンバリッドであるワードを求め、そのインバリッドであ
るワードをリースト・リーセントリ・ユーズド回路に伝
えるプライオリティエンコーダワード線に出力するプラ
イオリティエンコーダとを設け、 (iv)所定のプロセス認識番号が不要になった場合、前
記プロセス認識番号一括リセット線による同一プロセス
認識番号の一括消去を行った後に、前記連想メモリヒッ
ト線と前記連想メモリヒットワード線により、連想メモ
リで一致するワードがない場合、前記連想メモリとラン
ダムアクセスメモリにデータを書き込む際に、前記比較
部は前記連想メモリの前記プライオリティエンコーダワ
ード線で指定されたワードのカウンタ値とそのワードを
除く他のワードに位置するそれぞれのカウンタの値とを
比較し、前記プライオリティエンコーダワード線で指定
されたワードのカウンタの値が他のワード上のカウンタ
の値より大きい場合に、他のワード上のカウンタ値を前
記キャリー発生部の発生したキャリーを用いてカウント
アップ操作を行ない、前記LRUリプレースワード発生部
は、前記プライオリティエンコーダワード線を受け取
り、そのワードを前記連想メモリのリプレースワードと
して指定する信号をリースト・リーセントリ・ユーズド
リプレースワード線に出力する構成を採用する。
作用 本発明の第1手段は、CAMにおいて、プロセスID情報を
持つことにより、プロセスによって生じる論理アドレス
とプロセスIDとの比較が行なえるため、コンテキスト・
スイッチングの際の高速アドレス変換装置のリセットを
する必要がない。また本発明の第2手段は、プロセサで
扱うプロセスがプロセスID部では扱えない数となった場
合、同一のプロセスIDの複数ワード消去が可能なため、
現在までに得た情報の資源の消去を最少限にとどめ、シ
ステムのオーバーヘッドの一因を取り除くことができ
る。
実施例 第1図に示すごとく、TLBのCAM14のワード上に、プロセ
サで実行されているプロセスから生じた論理アドレスを
格納する論理アドレス部16とそのプロセスの認識番号を
格納するプロセス認識番号(以下プロセスIDと略称す
る)部20、同一ワードの前記CAM14の論理アドレス部16
とプロセスID20及びRAM11に格納されている物理アドレ
ス部42の有効性を示すバリッドビッド18、及び前記CAM
のバリッドビット18の各ワードの初期化を目的とする第
1の一括リセット線30、さらにプロセスID20を参照し、
プロセスが不要またはプロセサで扱うプロセスがプロセ
スID部20では扱えない数となった場合、同一のプロセス
IDを持つ複数ワードのバリッドビット18のリセットを目
的とするプロセス認識番号一括リセット線22(以下プロ
セスID一括リセット線と略称する。)、バリッドビット
18を参照し、物理的に一方方向から上位にあるインバリ
ッドであるワードを求めるプライオリティエンコーダ24
(以下、PENCと略称する。)、と上記ワードをLRU10に
伝えることを目的とする連想メモリプライオリティエン
コーダワード線38(以下CAMPENCワード線と略称す
る。)、もしインバリッドであるワードがなくCAM14が
バリッドなデータでつまっている場合、LRU10にこれを
伝えることを目的とする連想メモリフル線26(以下CAM
フル線と略称する。)を設ける。
LRU10には、カウンタ60、カウンタ60の値が有効かどう
かを示すカウンタセットビット12、第3図に示したカウ
ンタ更新のためのキャリー発生部76、CAMでヒッドワー
ドがあった場合、LRUのカウンタの比較を行う比較部7
0、CAM、RAMにデータを書き込む場合、カウンタセット
ビット12(R−Sフリップフロップ74)、CAMPENCワー
ド線38、CAMフル線26、連想メモリビット線28を参照
し、物理的に一方方向からカウンタが有効かどうかを示
すカウンタセットビット12をセットし、そのワードに対
応するCAM、RAMのワードをプロセスID一括リセット線22
によるプロセスID一括リセット後には、LRUカウンタセ
ットビット12がバリッドとCAMのバリッドビット18がイ
ンバリッドであるワードを指定する回路78及び前記ワー
ドを示すリースト・リセントリ・ユーズドリプレースワ
ード線34(以下LRUリプレースワード線を略称す
る。)、カウンタ60の値と、上記カウンタセットビット
12の初期化を目的とする第2のLRU一括リセット線32を
設ける。
第2〜3図には、本発明によるTLBの実施例を示す。以
下では、まずTLBの各要素について簡単に説明を行い、
次にTLB動作時における詳細な説明を行う。第2図は、
本発明によるTLBのCAM14である。CAM14には、ワード上
にプロセサで実行されているプロセスから生じた論理に
アドレスを格納する論理アドレス部16と0から3のプロ
セスの認識番号を格納するプロセスID部20(ID150,ID05
2)、ワード上のCAM14の論理アドレス部16とプロセスID
20及びRAM11に格納されている物理アドレス部の有効性
を示すバリッドビット18、各ワードのバリッドビット18
を参照し、物理的に一方方向から上位にあるインバリッ
ドであるワードを求めるPENC24、上記ワードをLRU回路1
0に伝えることを目的とするPENCワード線38及びもしイ
ンバリッドであるワードがなくCAMがバリッドなデータ
でつまっている場合LRU回路10にこれを伝えることを目
的とするCAMフル線26を設ける。36はCAMで、アドレス変
換の際、入ってきた論理アドレスがヒットしたワードを
LRUにしらせるCAMヒットワード線、28はCAMでヒットワ
ードがあったかどうかをしらせるCAMヒット線、30はCAM
のバリッドビットの初期化を目的とする一括リセット
線、22は同一のプロセス認識番号を持つ複数のワードの
バリッドビットのリセットを目的とするプロセスID一括
リセット線である。51は上記一括リセット線30とプロセ
スID一括リセット線を受け取りバリッドビットをリセッ
トするための回路、54はCAM14のタイミングを合わせる
ダミーワード部である。
第3図には、TLBのLRUの1ワードを示す。LRU10は、大
きくわけると、カウンタ部60とそれ以外の制御部からな
る。
カウンタ部60は、カウンタの値を保持するカウンタデー
タ部62、カウンタのキャリーを伝達するキャリー部64で
構成される。制御部はヒットしたワードの場合はカウン
タの値をカウンタ参照ビット線66にのせ、ヒットしてい
ないワードの場合では自分のワードのカウンタの値と比
較し、参照のカウンタの値と比べそれ以下の場合にはそ
のワードのカウンタを1だけ増加させるために、比較ワ
ード線68をアクティブにする比較部70、そして初期化ま
たは、ヒットしたワードのためにカウンタの値をリセッ
トするためのリセット部72、そのワードのカウンタが有
効かどうかを示すビット(R−Sフリップフロップ7
4)、比較部70でアクティブになった比較ワード線68を
受け取るかまたはCAMミスヒットした場合、今までにR
−Sフリップフロップがセットされているワードについ
てのみキャリーを発生させるカウンタ更新のためのキャ
リー発生部76、PENCワード線38、CAMフル線26、CAMヒッ
ト線28に応答し、LRUとCAM,RAMの一貫性を保つことを目
的とするLRUリプレースワード線34を発生させるLRUリプ
レースワード発生部78からなっている。140,142,144は
タイミングをとるクロックである。
RAMについては、一般的なものであるので省略する。
以上で、本発明によるTLBのCAM、RAMの実施例について
簡単に説明を行ったが、以下では、本発明によるTLBの
詳細な説明(主にLRUに関して)を行う。図2〜3で
は、回路についての動作を、図4には動作時のデータの
変化を示す。ここではTLBを8エントリとして説明す
る。本発明によるTLBを動作させた場合、大別すると次
の2つの場合が考えられる。
1) 通常動作(プロセスID一括リセット線22による消
去がなく、CAMのバリッドビット18と、LRUのR−Sフリ
ップフロップ74が一致している場合) 2) 非通常動作(プロセスID一括リセット線22による
消去が行なわれ、CAMのバリッドビット18と、LRUのR−
Sフリップフロップと一致していない場合) 以下ではそれぞれについて述べる。
(1)通常動作 TLBの初期化のため連想メモリではバリッドビットの初
期化を目的とする一括リセット線30、LRU10ではLRU一括
リセット線32をアクティブにし、カウンタの値とカウン
タが有効がどうかを示すビットをリセットしTLBを初期
化する。この時、TLB、各要素の保持しているデータは
図4−aのようになる。図4−a中の一は不明のデータ
が入っていることを示し、R−Sフリップフロップ74と
バリッドビット18とカウンタデータ部62の0はリセッ
ト、後に出てくる1はセットされていることを示す。
i) 次にCAMに新しいアドレス(ID0,LOG1)が入って
きるとCAMでは、バリッドビット18がセットされたワー
ドがないため、連想メモリヒット線28が、インアクティ
ブとなり、ミスヒットをLRUに伝える。外部からRAMに書
き込むデータが転送され、リプレース可能信号86が帰っ
てくるとLRU10では、上記リセット動作によりすべての
R−Sフリップフロップ74がリセットされ、このため各
ワードの120により物理的に一方方向から見て上位にあ
るワードの信号線140のみアクティブな状態となってい
る。LRUリプレースワード発生部78で、CAMヒット線36、
CAMPENCワード線38と、上記信号線140を122,123さらに1
24で論理を組むことによりLRUリプレースワード線34を
発生し、また同時に同一ワードのR−Sフリップフロッ
プ74のセットを行う。さらに、このLRUリプレースワー
ド線34を受け取ったCAM14、RAM16では、それぞれバリッ
ドビット、論理アドレス、物理アドレスを対応するワー
ドに書き込み、ここまでの一連の操作で、TLBの内容は
第4図のaからbへと変化する。
ii) さらに連想メモリ14に先にセットした論理アドレ
ス(ID0,LOG1)以外のアドレス(ID1,LOG2)が入ってき
た場合、再び連想メモリヒット線28は、インアクティブ
になり、連想メモリはミスヒットを示す。この時、先に
セットされていたワードは、キャリー発生部76の102に
よりカウンタ部60にキャリーを伝えカウンタを1だけイ
ンクリメントさせ、ミスヒットにより、今度セットされ
るワードは先に述べたiの動作によりセットされる。こ
の時、TLBの内容はbからcへ変化する。そして、ミス
ヒットを数回続けると上記i,iiの操作をくりかえし、TL
Bの内容はdのようになる。
iii) その後、今まででセットされていた論理アドレ
ス(ID1,LOG2)が入ってきたとする。この時、CAM14はC
AMヒット線28をアクティブにし、LRU14に今度入力され
た論理アドレスがヒットしたことを伝える。LRU14はこ
れを受け取り、CAMでヒットワードがあった場合、LRUの
カウンタの比較を行う比較部70の104により、以前にプ
リチャージしていたカウンタ参照ビット線66を、カウン
タデータ部62とCAMヒットワード線36で106と108のNchト
ランジスタをON状態にすることにより、ディスチャージ
し、カウンタ参照ビット線66に、CAM14でヒットしたワ
ード線のLRUカウンタのデータ62をのせる。そして比較
部70の110により以前にプリチャージしていた比較ワー
ド線68に対し、今までにセットされているワードのカウ
ンタの各カウンタデータ部62と今までの操作でカウンタ
参照ビット線66とを比較して、カウンタの値が参照する
値より大きいか同じ場合には112より上位のカウンタビ
ットに導通させ上位の比較結果を反映させるようにし、
小さい場合には116によりディスチャージするように
し、比較ワード線68によりキャリー発生部76に伝える。
キャリー発生部76では、上記信号線68を受け取り、102
でR−Sフリップフロップ74がセットされていた場合キ
ャリーを発生し、キャリー部64にキャリー線80により伝
え、CAM14でヒットしたワードのカウンタ以下の他のワ
ードについてのみ、カウントアップし、ヒットワード以
上のカウンタについては何も行わずヒットワードのカウ
ンタについては、114によりリセット線82をアクティブ
にし、カウンタの値をクリアする。この時、ヒットした
ワードが上位から2番目とした場合、TLBの内容はdか
らeへと変化する。
このようないくつかのアドレスが入り、ヒット、ミスヒ
ットをさらに繰り返した場合、eからfのようになり、
TLBは、すべてうめつくされ、CAMフル線26はアクティブ
状態となりLRUはこれを受けとる。
iv) fのようにCAM14が満たされた状態で一度も参照
されていない論理アドレスプロセスID(ID2,LOG9)が入
ってくるとCAMは先にあげたと同様に、ミスヒットをLRU
に伝える。そしてリプレース可能信号86が外部から帰っ
てくると、LRUは、連想メモリが一杯なので、キャリー
発生部76の102ですべてのワードについてキャリーを発
生させる。キャリーが発生されたため、LRUのすべての
ワードのうち、一ワードだけ、最上位キャリー線84がア
クティブになり、一時的にR−Sフリップフロップ74が
リセットされ、これがLRUリプレースワード発生部78に
伝わり、LRUリプレースワード線34を発生させ、それと
同時に、再びR−Sフリップフロップ74をセットする。
その後、LRUリプレースワード線がアクティブになって
いるワードについて、CAMとRAMに書き込みが行われる。
この時、TLBの内容はfからgへ変化する。
(2)非通常動作 i) 今まで、TLBに格納されたデータのうち不要にな
ったIDが生じた場合、ここではID1が不要になったと
し、同一のプロセスIDを持つ複数ワードのバリッドビッ
トのリセットを目的とする回路51とプロセスID一括リセ
ット線22を用いると、gからhのように変化する。この
時、CAMのリセット回路51は、消去したいプロセスIDの
みに接続されたトランジスタのみをONにしバリッドビッ
ト18をリセットする。この時、CAMのPENCは消去された
ワードのうち、一方方向からみて一番上位のワードの
み、アクティブにセットしている。
ここで、CAMにヒットするような論理アドレスとプロセ
スID(ID0,LOG5)が入ってきたとする。この時、LRUはC
AMヒット信号28とR−Sフリップフロッ74を参照し、す
べてのカウンタの値が正当であるため、上記(1)のiv
の動作をし、TLBの内容をhからiのように変化する。
ii) 最後に、このような状態で、CAMミスヒットをす
るような論理アドレスとプロセスID(ID2,LOG10)が入
ってくる場合を考える。
この時、CAMのPENC部24は一方方向からみて最上位のワ
ードのみをアクティブにCAMフル線26をインアクティブ
に、CAMヒット線28をインアクティブにしている。
LRUは、これらを受けとり、LRUリプレースワード発生部
78でPENCワード線38がアクティブになっているワードの
カウンタに対しては、118によりそのワードヒットした
ようにみせかけ、LRUヒッドワード線92をアクティブに
し、(1)−iiiでのべたようなカウンタの更新を行
い、LRUリプレースワード線34を、LRUリプレース可能信
号86が帰ってくると、アクティブにし、CAM14、RAM11の
データの更新を行う。この時、TLBの内容はiからjの
ように変化する。
そして、上に述べたミスヒットを繰り返し、CAMのバリ
ッドビット18がクリアされているワードの場所に、ミス
ヒットを起こした論理アドレスとプロセスID、RAM11に
は変換する物理アドレス等の情報を格納し、LRUはその
ワードのカウンタ値をリセットを行っていくと、TLBの
内容はjからkのように変化し、通常のTLBの内容に戻
る。これにより、プロセスID一括リセット線22による消
去が起った後でも、上記の動作でTLBの一貫性は保つこ
とができる。
発明の効果 本発明によるTLBを用いることにより、次の効果が期待
できる。
1) コンテキスト・スイッチングが起った場合でも、
TLBの内容をリセットする必要がない。
2) 不要になったプロセスのデータの消去が行なえ
る。
【図面の簡単な説明】
第1図は本発明の一実施例における高速アドレス変換装
置の構成図、第2図は同実施例における連想メモリの回
路図、第3図は同実施例におけるLRUの回路図、第4図
は同実施例を用いた場合の高速アドレス変換装置のデー
タの変換を示す図、第5図は従来のLRUを用いた高速ア
ドレス変換装置の構成図である。 10……リースト・リセントリ・ユーズド回路(LRU)、1
1……ランダムアクセスメモリ(RAM)、12……カウンタ
セットビット(74R−Sフリップフロップ)、14……連
想メモリ(CAM)、16……論理アドレス部、18……バリ
ッドビット、20……プロセス認識番号部、22……プロセ
スID一括リセット線、24……プライオリティエンコー
ダ、26……連想メモリフル線、28……連想メモリヒット
線、30……一括リセット線、32……LRU一括リセット
線、34……LRUリプレースワード線、36……連想メモリ
ヒットワード線、38……プライオリティエンコーダワー
ド線(PENCワード線)、40……RAMアクセスワード線、4
2……物理アドレス部、50……プロセスIDセル(ID1)、
52……プロセスIDセル(ID0)、51……リセット回路、5
4……ダミーワード部、60……カウンタ部、62……カウ
ンタ・データ部、64……キャリー部、66……カウンタ参
照ビット線、68……比較ワード線、70……比較部、72…
…リセット部、74……R−Sフリップフロップ、76……
キャリー発生部、78……LRUリプレースワード発生部、8
0……キャリー線、82……リセット線、84……最上位キ
ャリー線、86……リプレース可能信号、92……LRUヒッ
トワード線、102〜144……信号及びデータを作るための
回路、LOG……論理アドレス、PHY……物理アドレス
+保護情報、−……不明なデータ、1……セット、0…
…リセット(クリア)、206……連想メモリビット線、2
08……LRUカウンタ、210……LRUリプレースワード線、2
12……連想メモリビットワード線、214……バリッドビ
ット、216……論理アドレス部、218……RAMアクセスワ
ード線、220……物理アドレス部。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】連想メモリ、ランダムアクセスメモリ、リ
    ースト・リーセントリ・ユーズド回路からなり、前記連
    想メモリ、ランダムアクセスメモリ、リースト・リーセ
    ントリ・ユーズド回路は各々内部に複数ワードを有し、
    前記連想メモリの各ワードは前記ランダムアクセスメモ
    リ、リースト・リーセントリ・ユーズド回路のワードに
    対応しており、 前記連想メモリの各ワード上に、 プロセサで実行されているプロセスから生じた論理アド
    レスを格納する論理アドレス部と、 そのプロセスの認識番号を格納するプロセス認識番号部
    と、 同一ワード上の前記論理アドレス部とプロセス認識番号
    部と前記ランダムアクセスメモリの物理アドレス部の有
    効性を示すバリッドビットと、 この連想メモリに対して検索動作を行なった際に、その
    ワードが論理アドレス部での論理アドレスとプロセス認
    識番号部でのプロセス番号が一致しているかどうかを示
    す連想メモリヒットワード線とを設け、 前記連想メモリは、この連想メモリの各ワード上のバリ
    ッドビットを参照し、すべてのワードのバリッドビット
    がバリッドである場合に、連想メモリのすべてのワード
    のデータが書き込まれている状態であることを示す信号
    を連想メモリフル線に出力するとともに、この連想メモ
    リのいずれかのワードがヒットしたかどうかを示す信号
    を連想メモリヒット線に出力し、 前記リースト・リーセントリ・ユーズド回路の前記各ワ
    ード上に、 一番最近にそのワードを使用されたかどうかを数値で示
    すカウンタと、 そのカウンタが有効かどうかを示すビットと、 前記カウンタ更新のためのキャリーを発生するキャリー
    発生部と、 前記連想メモリで指定されたワードがあった場合、指定
    されたワードに位置するカウンタと指定されたワードを
    除くそのワードに位置するカウンタの比較を行う比較部
    と、 前記メモリセルフル線と前記連想メモリヒット線と前記
    連想メモリヒットワード線を受け取り、前記連想メモリ
    のリプレースワードとして指定する信号をリースト・リ
    ーセントリ・ユーズドリプレースワード線に出力するLR
    Uリプレースワード発生回路とを設け、 (i)前記連想メモリヒット線と前記連想メモリヒット
    ワード線により、連想メモリで一致するワードがなく、
    前記連想メモリフル線により連想メモリがフルでない場
    合は、前記連想メモリとランダムアクセスメモリにデー
    タを書き込む際に、前記LRUリプレースワード発生回路
    は、各ワードの一方方向から見て上位にある前記カウン
    タの有効性を示すビットが有効でないビットをセットす
    るとともにそのワードを前記連想メモリのリプレースワ
    ードとして指定し、 (ii)前記連想メモリヒット線と前記連想メモリヒット
    ワード線により、連想メモリで一致するワードがなく、
    前記連想メモリフル線により連想メモリがフルである場
    合は、前記連想メモリとランダムアクセスメモリにデー
    タを書き込む際に、各カウンタの値を前記キャリー発生
    部の発生したキャリーを用いてそれぞれカウントアップ
    した際に前記LRUリプレースワード発生回路は、最上位
    となるカウンタの位置するワードを前記連想メモリのリ
    プレースワードとして指定し、 (iii)前記連想メモリヒット線と前記連想メモリヒッ
    トワード線で指定されたワードがある場合、前記比較部
    はヒットしているワードのカウンタの値とヒットしたワ
    ードを除く他のワードに位置するそれぞれのカウンタの
    値とを比較し、前記ヒットワードのカウンタの値が他の
    ワードに位置するカウンタの値より大きい場合に、他の
    ワード上のカウンタの値を前記キャリー発生部の発生し
    たキャリーを用いてカウントアップすることを特徴とす
    る高速アドレス変換装置。
  2. 【請求項2】前記連想メモリには、 前記プロセス番号認識番号を参照し、同一のプロセス認
    識番号を持つ複数ワードのバリッドビットのリセットを
    目的とするプロセス認識番号一括リセット線と、前記バ
    リッドビットを参照し、前記複数ワードの一方方向から
    上位にある前記プロセス認識番号リセット線によりリセ
    ットされたインバリッドであるワードを求め、そのイン
    バリッドであるワードをリースト・リーセントリ・ユー
    ズド回路に伝えるプライオリティエンコーダワード線に
    出力するプライオリティエンコーダとを設け、 (iv)所定のプロセス認識番号が不要になった場合、前
    記プロセス認識番号一括リセット線による同一プロセス
    認識番号の一括消去を行った後に、前記連想メモリヒッ
    ト線と前記連想メモリヒットワード線により、連想メモ
    リで一致するワードがない場合、前記連想メモリとラン
    ダムアクセスメモリにデータを書き込む際に、前記比較
    部は前記連想メモリの前記プライオリティエンコーダワ
    ード線で指定されたワードのカウンタ値とそのワードを
    除く他のワードに位置するそれぞれのカウンタの値とを
    比較し、前記プライオリティエンコーダワード線で指定
    されたワードのカウンタの値が他のワード上のカウンタ
    の値より大きい場合に、他のワード上のカウンタの値を
    前記キャリー発生部の発生したキャリーを用いてカウン
    トアップ操作を行ない、前記LRUリプレースワード発生
    部は、前記プライオリティエンコーダワード線を受け取
    り、そのワードを前記連想メモリのリプレースワードと
    して指定する信号をリースト・リーセントリ・ユーズド
    リプレースワード線に出力することを特徴とする特許請
    求の範囲第1項記載の高速アドレス変換装置。
JP61226697A 1986-09-25 1986-09-25 高速アドレス変換装置 Expired - Lifetime JPH0769868B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP61226697A JPH0769868B2 (ja) 1986-09-25 1986-09-25 高速アドレス変換装置
US07/100,561 US4910668A (en) 1986-09-25 1987-09-24 Address conversion apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61226697A JPH0769868B2 (ja) 1986-09-25 1986-09-25 高速アドレス変換装置

Publications (2)

Publication Number Publication Date
JPS6381548A JPS6381548A (ja) 1988-04-12
JPH0769868B2 true JPH0769868B2 (ja) 1995-07-31

Family

ID=16849234

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61226697A Expired - Lifetime JPH0769868B2 (ja) 1986-09-25 1986-09-25 高速アドレス変換装置

Country Status (2)

Country Link
US (1) US4910668A (ja)
JP (1) JPH0769868B2 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01223697A (ja) * 1988-03-01 1989-09-06 Mitsubishi Electric Corp 内容番地付け記憶装置
US7190617B1 (en) * 1989-04-13 2007-03-13 Sandisk Corporation Flash EEprom system
US5245594A (en) * 1989-05-17 1993-09-14 Fuji Electric Co., Ltd. Data read/write system for a disc storage unit
JPH03219326A (ja) * 1990-01-24 1991-09-26 Mitsubishi Electric Corp データ比較回路
US5282274A (en) * 1990-05-24 1994-01-25 International Business Machines Corporation Translation of multiple virtual pages upon a TLB miss
US5491806A (en) * 1990-06-26 1996-02-13 Lsi Logic Corporation Optimized translation lookaside buffer slice having stored mask bits
WO1992002879A1 (en) * 1990-08-03 1992-02-20 Du Pont Pixel Systems Limited Virtual memory system
US5644748A (en) * 1992-01-30 1997-07-01 Fujitsu Limited Processor system including an index buffer circuit and a translation look-aside buffer control circuit for processor-to-processor interfacing
JPH0676583A (ja) * 1992-07-06 1994-03-18 Mitsubishi Electric Corp 内容番地付記憶装置および一致ワード不要化方法
EP0690386A1 (en) * 1994-04-04 1996-01-03 International Business Machines Corporation Address translator and method of operation
US5835743A (en) * 1994-06-30 1998-11-10 Sun Microsystems, Inc. Application binary interface and method of interfacing binary application program to digital computer
US6243762B1 (en) * 1994-08-08 2001-06-05 Mercury Computer Systems, Inc. Methods and apparatus for data access and program generation on a multiprocessing computer
US5682495A (en) * 1994-12-09 1997-10-28 International Business Machines Corporation Fully associative address translation buffer having separate segment and page invalidation
US6111584A (en) * 1995-12-18 2000-08-29 3Dlabs Inc. Ltd. Rendering system with mini-patch retrieval from local texture storage
JPH11259362A (ja) * 1998-03-13 1999-09-24 Nec Corp キャッシュメモリ制御方法及び装置
JP2000163318A (ja) 1998-12-01 2000-06-16 Nec Corp アドレス変換バッファ
US6771646B1 (en) * 1999-06-30 2004-08-03 Hi/Fn, Inc. Associative cache structure for lookups and updates of flow records in a network monitor
US6789116B1 (en) 1999-06-30 2004-09-07 Hi/Fn, Inc. State processor for pattern matching in a network monitor device
CN1312892C (zh) * 1999-06-30 2007-04-25 倾向探测公司 用于监控网络流量的方法和设备
JP2001034537A (ja) * 1999-07-23 2001-02-09 Toshiba Corp アドレス変換回路
US6647457B1 (en) * 1999-11-16 2003-11-11 Cypress Semiconductor Corporation Content addressable memory having prioritization of unoccupied entries
US6675266B2 (en) * 2000-12-29 2004-01-06 Intel Corporation Circuit and method for protecting 1-hot and 2-hot vector tags in high performance microprocessors
JP2004164395A (ja) * 2002-11-14 2004-06-10 Renesas Technology Corp アドレス変換装置
US7089352B2 (en) * 2002-12-23 2006-08-08 Micron Technology, Inc. CAM modified to be used for statistic calculation in network switches and routers
KR100532601B1 (ko) * 2003-10-16 2005-12-01 현대모비스 주식회사 카오디오 시스템의 채널 다운 믹싱 장치
WO2008155849A1 (ja) * 2007-06-20 2008-12-24 Fujitsu Limited 演算処理装置、tlb制御方法、tlb制御プログラムおよび情報処理装置
CN107229580B (zh) * 2016-03-23 2020-08-11 北京忆恒创源科技有限公司 顺序流检测方法与装置
CN111797052B (zh) * 2020-07-01 2023-11-21 上海兆芯集成电路股份有限公司 系统单芯片以及系统存储器加速存取方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4296475A (en) * 1978-12-19 1981-10-20 U.S. Philips Corporation Word-organized, content-addressable memory
US4433389A (en) * 1978-12-26 1984-02-21 Burroughs Corporation Memory address translation system for accessing memory locations via job names
US4607331A (en) * 1983-05-13 1986-08-19 Motorola, Inc. Method and apparatus for implementing an algorithm associated with stored information
US4538241A (en) * 1983-07-14 1985-08-27 Burroughs Corporation Address translation buffer
US4785398A (en) * 1985-12-19 1988-11-15 Honeywell Bull Inc. Virtual cache system using page level number generating CAM to access other memories for processing requests relating to a page

Also Published As

Publication number Publication date
US4910668A (en) 1990-03-20
JPS6381548A (ja) 1988-04-12

Similar Documents

Publication Publication Date Title
JPH0769868B2 (ja) 高速アドレス変換装置
CA1059643A (en) Circuit for implementing a modified lru replacement algorithm for a cache
EP0062165B1 (en) Multiprocessors including private and shared caches
JP3936378B2 (ja) アドレス変換装置
US5410669A (en) Data processor having a cache memory capable of being used as a linear ram bank
US4197580A (en) Data processing system including a cache memory
US6014732A (en) Cache memory with reduced access time
KR920005280B1 (ko) 고속 캐쉬 시스템
EP0009938B1 (en) Computing systems having high-speed cache memories
US6772316B2 (en) Method and apparatus for updating and invalidating store data
US6493812B1 (en) Apparatus and method for virtual address aliasing and multiple page size support in a computer system having a prevalidated cache
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
JPH06314241A (ja) 高速半導体記憶装置及び高速連想記憶装置
CN1008839B (zh) 微处理机系统的存储管理
JP2006515088A (ja) 実時間アプリケーションのためのメモリ管理を改良する方法
GB2293672A (en) Virtual page memory buffer
US20090182952A1 (en) Cache using pseudo least recently used (plru) cache replacement with locking
US6009503A (en) Cache memory indexing using virtual, primary and secondary color indexes
US5913222A (en) Color correction method in a virtually addressed and physically indexed cache memory in the event of no cache hit
US7024536B2 (en) Translation look-aside buffer for improving performance and reducing power consumption of a memory and memory management method using the same
US5584002A (en) Cache remapping using synonym classes
AU647745B2 (en) A virtual storage address space access control system
US6598050B1 (en) Apparatus and method for limited data sharing in a multi-tasking system
JP2846697B2 (ja) キャッシュメモリ制御装置
EP0425771A2 (en) An efficient mechanism for providing fine grain storage protection intervals