JPH087718B2 - コンピュータメモリシステム - Google Patents

コンピュータメモリシステム

Info

Publication number
JPH087718B2
JPH087718B2 JP2176093A JP17609390A JPH087718B2 JP H087718 B2 JPH087718 B2 JP H087718B2 JP 2176093 A JP2176093 A JP 2176093A JP 17609390 A JP17609390 A JP 17609390A JP H087718 B2 JPH087718 B2 JP H087718B2
Authority
JP
Japan
Prior art keywords
address
memory
virtual
physical
row
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
JP2176093A
Other languages
English (en)
Other versions
JPH03135642A (ja
Inventor
ダブリュー ホースト ロバート
ケイ シャー アージェイ
コー ヤマモト アイ
Original Assignee
タンデム コンピューターズ インコーポレーテッド
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 タンデム コンピューターズ インコーポレーテッド filed Critical タンデム コンピューターズ インコーポレーテッド
Publication of JPH03135642A publication Critical patent/JPH03135642A/ja
Publication of JPH087718B2 publication Critical patent/JPH087718B2/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/0215Addressing or allocation; Relocation with look ahead addressing means
    • 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)
  • Dram (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明は、コンピュータメモリ、殊に同メモリの内容
を読取り、書込み、リフレッシュするための方法に関す
る。殊に、本発明は高速のダイナミックランダムページ
アクセスメモリ(FPDRAM)の仮想アドレッシング法に関
する。
〔従来の技術〕
従来より、一時期、コンピュータのメモリ容量を大き
くする傾向が見られた。メモリ容量が大きいと周知の一
連の利点を提供することができるが、それと同時に大型
メモリ方式の場合には、幾つかの困難にも遭遇すること
になる。一般的について、メモリの大きさが大きくなる
につれて、その他の要素は同一のまゝであるのにそれと
同時にメモリにアクセスするために必要な時間が大きく
なる。
今日の多くのコンピュータシステムでは、メモリは階
層的な構造で提供されている。かかる構造では、大型メ
モリの小集合を含む小型で高速のメモリと組になって大
型の比較的低速のダイナミックランダムアクセスメモリ
(DRAH)を含む主メモリは、しばしば「キャシュ」と称
されるより小型のスタティックランダムアクセスメモリ
(SRAM)と組になって使用される。その他の階層は、比
較的高速のDRAM主メモリと組になって使用される比較的
低速のディスクメモリの形をした大型メモリを提供する
ことを伴う。一つのメモリ階層は、長期ディスクメモ
リ、主DRAMメモリ、およびSRAMキャシュメモリの3つの
レベルを全て含むことができよう。
多くのメモリシステムでは、仮想アドレッシング法が
使用されている。仮想アドレスは、ユーザがアクセス可
能なメモリロケーションの各々につき一義的な識別がて
きるようにするために十分なビットを含むアドレスであ
る。物理メモリは仮想アドレス空間間でアッピングされ
る物理アドレスを介してアクセスされる。
その仮想アドレスによって識別されるメモリの内容に
対するリクエストが行われると、その仮想アドレスが物
理メモリ内に現在常駐するメモリロケーションに対応す
るものであるかどうかが判断される必要がある。1アド
レスはそれぞれが同一のメモリロケーションに対応する
ものであれば、もう一つのアドレスに「対応する」。
普通の場合、1つもしくはそれ以上のテーブルを設け
て仮想アドレスを(対応関係が存在する場合)対応する
物理アドレスに変換するようになっている。かかるテー
ブルに対するルックアッププロシージャは比較的低速で
あることが多い。上記テーブルは普通の場合、しばしば
「ページ」と称されるメモリブロック群の翻訳のみしか
含んでいない。幸いなことに、ページテーブルに対する
参照は、局部性を帯びている。即ち、ページテーブル中
で提案しなければならないあらゆる可能な仮想ページの
うち、何れの短時間中にもこれらページ群のうちの少数
のものが繰返して参照される傾向が存在することが判っ
ている。この局部性のために「ページテーブルキャシ
ュ」(PTC)(あるいは「変換ルックアサイドバッフ
ァ」と称されることがある)を称される第2の小型で高
速のテーブルを提供することによって一定温度時間を節
約することができる。上記テーブルは大きなページテー
ブルから最近アクセスされたエントリーを格納するため
に使用される。かくしてPTCは続いてリクエストされる
エントリ群を含みそうなページテーブルの小集合体を含
んでいる。PTCは2つのアレイを含んでいる。一つはPTC
エントリ又はデータアレイであって、仮想アドレス対・
物理アドレスのマップである。他はPTCタグであって、P
TCエントリ内のデータが妥当であるかどうかを判断する
ために使用される。
ページテーブルの呈する局部性の他に、メモリ自体の
呈する一定の局部性も存在する。この局部現象によれ
ば、一定メモリロケーションに対する一定の参照後に、
比較的短期間中に付近のメモリロケーションに対するリ
クエストが行われがち(即ち、無作為であることから期
待されるよりも大きな確率を以て)である。上記の「付
近」と「比較的短期間」という意味を定義する確率分布
は、所与のメモリシステムと計算タスクについて経験的
に判断することができる。この局部性は従事より平均メ
モリアクセスタイムを小さくするために幾つかの方法で
活用されている。この活用法の一つは、高速のダイナミ
ックランダムアクセスメモリ(FPDRAM)を設けることで
ある。
FPDRAMは、それを普通のメモリアクセスと対照させる
ことによって最も良く理解することができよう。典型的
なDRAMでは、メモリロケーションは行と列によたアドレ
ス指定され、その際、各行はアドレスが連続するエレメ
ントを備えている。通常のアクセスでは1個の行アドレ
スが提案され、行アドレスストローブ(RAS)によりラ
ッチ内へストローブされる。後者は普通アサートされ
る。その後、列アドレスストローブ(CAS)が提供されD
RAMの読取り又は書込みを実行するように求められる。
それぞれの新たなアクセスはサイクル全体を通過しなけ
ればならない。この理由から、それぞれのアクセスは、
行アドレスを提示してストローブした後、列アドレスを
ストローブしなければならない。2個のアドレスは共に
比較的近接していても、どんなメモリ内のアクセスにつ
いても順次ストローブする必要があり、この種のアクセ
スはメモリの局部性を十分に活用するものとはいえな
い。
それと対照的に、FPDRAMは、メモリの局部性、即ち、
特定の行中の1メモリロケーションに対するアクセスの
後に短時間に同行内の1メモリロケーションに対するリ
クエストが行われる可能性が比較的高いような状況を活
用している。この場合、比較的長期間RASをアサート状
態にしたまま、その間に選択された行(1つの行アドレ
スラッチの内容によって決定される)に対する多重アク
セスを実行することができる。多重アクセスは一つの行
アドレスが連続的にアサートされる間に別のアドレスを
順次提示することによって行われる。先にアクセスされ
た一行(即ち、行アドレスラッチの一つの内容によって
アドレス指定される行)内でメモリアクセスする毎に、
CASを1回アサーションすることしか必要でない。即
ち、アクセス毎にRASを順次アサートし、その後CASをア
サートする必要はない。かくして同一行内の1ロケーシ
ョンに対してその後メモリリクエストが行われる場合、
新たな列アドレスを提供し列アドレスストローブ(CA
S)をアサートする手順が比較的高速であるために、こ
の後行アドレスを利用して読取り又は書込みを行うこと
ができる。別の列内のメモリロケーションに対するリク
エストが行われる場合(このリクエストに対して他に使
用できるFPDRAM行アドレスラッチが存在しないと仮定す
る。)、その後正規のアクセス手続が行われる。即ち、
行アドレスの後に列アドレスを順次ロードしストローブ
することが行われる。かくして、続いて行われるメモリ
アクセスが同一メモリ行内のロケーションに対するもの
である限りで、低速の正規メモリアクセスよりも比較的
高速のFPDRAMメモリアクセスが使用される。
FPDRAMのスピードを活用するためには、そのリクエス
トが行アドレスラッチの一つ内の行アドレスに対応する
行の一つに位置するメモリ素子に対してのものであるか
どうかを何れのメモリリクエストについても判断する必
要がある。出願人にとって周知の従来システムでは、最
近アクセスされた行に対する物理的アドレスの表示がス
トアされている。物理アドレスリクエストが行われた場
合、リクエストされたアドレスが最近アドレッシングさ
れた、即ち、それに対してRASが依然アサートされてい
る行中にあるかどうかを判断するための比較が行われて
いた。仮想アドレスリクエストが行われた場合、その仮
想アドレスは、まづ物理アドレスに変換された後、スト
アされた物理アドレスとの比較が行われている。
FPDRAMにより提供される比較的高速のアクセスの場合
でさえ、メモリアクセスは、多くのシステムでは、殊に
大型メモリを有するシステムでは依然利的要因となって
いる。かかる大型メモリシステムは普通、キャシュ充填
処理速度と書込み帯域幅によって制約されている。
本発明は、従来システム、殊に128メガバイトの如き
非常に大きなメモリ、或いはそれ以上のメモリを有する
構成と比較して高速のメモリアクセスを可能にするコン
ピュータメモリ、ならびにメモリアクセス方法を包含す
るものである。本発明はRAM素子の外集合体に対するア
クセスタイムが他の素子に対するものよりも高速である
ような任意のタイプのランダムアクセスメモリ(RAM)
に関連して使用することができる。FPDRAMはこのタイプ
のメモリの一例である。何故ならば、現在選択されてい
る行中における素子に対するアクセスは他の素子に対す
るアクセスよりも高速であるからである。
本発明の一例では、一つもしくはそれ以上のFPDRAMが
主メモリを構成し、そこからリクエストされたページが
キャシュ内へロードされる。以下により詳細に説明する
ように、ページはPTCによりマッピングされたアドレス
がリクエストされたメモリロケーションであることが判
断された後になって初めてPTCタグ内のアドレスを参照
することによって特定のFPDRAMからリクエストされる。
FPDRAMの行アドレスラッチは、それぞれ2個のレジス
タと関連する、一つの“指示”レジスタ(“CAMPhyAdr"
と称する)は物理行アドレス(およびパリティビットの
ような追加ビット)を含む。他の“仮想/物理”レジス
タ(“CAMTag"と称する)は、何れのタイプのアドレス
が最初にリクエストされるかに応じて物理行アドレス又
は仮想アドレスの何れか一方を含む。かくして、一つの
仮想アドレスが(PTCタグアレイ内におけるその存在の
確認後と)リクエストされた時、それは仮想/物理(CA
MTag)レジスタと比較することができ、まづ物理アドレ
スを得るために変換する必要はない。かくして上記シス
テムは、アドレスリクエストの最も一般的な方式である
仮想アドレスリクエストの場合に高速のメモリアクセス
を可能にするものである。同システムはまた、仮想アド
レスリクエストの場合と同一の方法を使用してメモリア
クセスを物理アドレスリクエストによって行うことがで
きる。
上記方法は特に大部分の状況におけるメモリリクエス
トが仮想/物理的“局部性”を呈する、即ち、同一行か
らの繰返しリクエストが仮想的であれ物理的であれ同一
のタイプのものとなる傾向があることが判っているため
に特に十分な機能性を備えている。仮想/物理間を変換
して各場合において選択中のアドレスが行アドレスラッ
チの内容によりアドレス指定される行中にあるかどうか
を判断する必要が回避できることは重要を時間の節約を
表わすものである。各メモリアクセスにつき仮想/物理
間の変換が必要でないために、かかる変換は低速のより
安価な部品、例えば低速のページテーブル化キャシュに
よって行うと共に依然として高速のメモリ読取りと書込
みを行うことが可能になる。
リクエストされた行に匹敵するものが何ら見出せない
場合にはより低速の正規アクセスモードで必要な行がア
クセスされる。新たな行中におけるメモリ素子がアクセ
スされる場合には、そのメモリリクエストが仮想アドレ
スであったのかそれとも物理アドレスであったのかを判
断する必要がある。この理由から、そのアドレスが仮想
アドレスであるか物理アドレスであるかを示す1ビット
が仮想もしくは物理アドレスと共にCAMTagレジスタ内に
ストアされる。
本発明のもう一つの面は1アドレスの幅を収納する方
法に関する。メモリブロック内で一意的にエレメントを
アドレス指定するために必要な幅はブロックの大きさに
依存する。本発明では使用されるDRAMは別のアドレス10
ビット、行アドレス10ビットを要することが望ましい。
本システムの仮想アドレスはページアドレスビットとワ
ードアドレスビットを含む。ワードアドレスビットは仮
想アドレスと物理アドレスをも同一であるため、ワード
アドレスビットは変換されない。1つの仮想アドレスに
おけるワードアドレスビットの数は1ページ内のワード
数によって決定される。ページの大きさは2Kベイトもし
くは1K16ビットワードであることが望ましい。この大き
さのページは10ビットを用いてアドレッシングできるた
め、仮想アドレスは10ワードアドレスビットを含む。こ
のことは仮想アドレス内の10ビットは物理アドレスの対
応するビット数を同一であることを意味する。
メモリを構成するDRAMは4ウェイインターリーブ方式
で編成される。即ち、メモリ内の4つの隣接するワード
が同一DRAM内の4個のセルでなくて4つの異なるDRAMか
ら到来する。このスキームでは、リード操作中に、10ビ
ットワードアドレスの最下位2ビットが4つのインター
リーブワード間で選択するために使用される。かくし
て、ワードアドレスの最下位2ビットはリード操作では
使用されず、(DRAMアドレッシングのために)廃棄され
る。かくして、8個のワードアドレスビット(何ら変換
を要しない)は列アドレスビットとして使用される。DR
AMは列アドレス10ビットを要するために、列アドレス2
ビットが変換を要する物理アドレス部分から来なければ
ならない。然しながら、1Kワードの同一ページに繰返し
アクセスする毎に変換する必要をなくすることが望まし
い。このことは必要とされる列アドレスの余分の2ビッ
トを行う列アドレスの10ビットと共にCAMPhyAdrレジス
タ内にストアし(又、パリティビット又はその他のエラ
ー検出ビット、バンクセレクトビット、および/又はボ
ードセレクトビットを含めて)実行される。ワードアド
レスの8ビットのみが10ビットの列アドレスに寄与する
から、アドレス:座間の2個の列アドレスビットはミス
どうしの間で変化しない。
2個の列アドレスビットをストアさせる方法もまたラ
イト操作でDRAMにアドレッシングするために使用され
る。然しながら、単一のライト操作では1つもしくは2
つのワードのみが書込まれるようにすることが望まし
い。アドレッシングされないワードのオーバライトを防
止するために、1回のリード処理で廃棄されるような2
ビットを使用して4個の潜在的にアドレッシング可能な
ワードのうち何れの1もしくは2個のワードがアサート
される列アドレスを有することになるかを選択してその
ロケーションにおける書込みを実行する。
CAMヒットアクセス中に使用される列アドレスビット
をストアする方法は異なるタイプのメモリと共に使用す
る際に一般化できる方法である。例えば、指示(CAMPhy
Adr)レジスタ内に3つもしくはそれ以上のビットをス
トアすることによって全部で11又はそれ以上の列アドレ
スビットを提供することができる。11個の列および行ビ
ットを4メガビットDRAと関連して(1メモリ素子にア
クセスするために普通11個の列アドレスビットを11個の
行アドレスビットを要する)設けることが有益であろ
う。例えば8ウェイインターリーブの場合、インターリ
ーブされたDRAM間で選択するために余分の最下位ビット
を設けるためには2個以上の列アドレスビットをストア
することも有益である。
本発明は本発明を使用しない従来のシステムに比較し
てキャシュフィルタイムの減少と有効書込み帯域幅の拡
大とを実現するものである。
本発明は関連するCAMTagレジスタの内容とCAMPhyAdr
レジスタの内容とが保存されるために効率的なDRAMのリ
フレッシュサイクルを備える。RASはDRAMリフレッシュ
の間にアサーション解除(dcasserted)される。リフレ
ッシュに続いて、RASは再びCAMミス(即ちCAMTagの内容
とそれに対応するリクエストされたアドレスの部分の内
容が一致しない)に続くRASアサーションに類似する形
でアサーションされる。このようにして、リフレッシュ
サイクルに続くメモリ構成はリフレッシュサイクル以前
のそれと同一である。かくして、続くメモリアクセスは
リフレッシュサイクル前に実行された行アドレスに基づ
いてメモリの局部性を活用して実行することができる。
〔実施例〕
以下、本発明の実施例を特定のコンピュータシステム
の脈絡において解説する。但し、当業者には自明であろ
うが、本発明は多くのタイプのコンピュータシステムに
使用することができる。
解説するコンピュータシステムは、それぞれがそれと
関連するメモリシステムを側える16個までのプロセッサ
を含むマルチプロセッサシステムである。各プロセッサ
と関連するメモリシステムは2つの機能単位93a(第2
図)を備えることが望ましい。殊に、各機能単位はメモ
リ制御装置と共にそれぞれが32、殊に64メガバイドのメ
モリを備える一つもしくは2つの回路板上に形成さるこ
とが望ましい。本発明はかかるプロセッサの一つと関連
するメモリ単位に関する。コンピュータシステム内のメ
モリ単位はそれぞれ実質上同一の形で動作する。
第10A図は0−14ビットのセグメントアドレス2と、1
5−20ビットのページアドレス4と、21−30ビットのワ
ードアドレス5を含む仮想アドレスの構成を示す。第10
B図は、0−20ビット物理ページアドレス6が含まれ、2
1−30ビットのワードアドレス5が含まれる物理アドレ
スの構成を示す。
さて第10C図について述べると、DRAMをアクセスする
ために使用されるアドレスが30ビット幅のものとして描
かれている。アドレスは10ビットの列アドレスと、10ビ
ットの行アドレスを含む。列アドレスは17と18(16)ビ
ットと21−28(20)ビットのものが設けられる。1−5
ビット(22)は何れのメモリボードがアドレッシングさ
れるかを示す。ビット6(24)はどのメモリセクション
(“X"又は“Y")がアドレッシングされるかを示す。ビ
ット19と20(26)はバンクセレクトビットである。ビッ
ト29と30(28)は類似インターリーブスキーム内で使用
される。
本発明の実施例の動作を詳説する前に、本発明の主な
コンセプトを第1A−1E図に関して単純化された例によっ
て説明する。第1A−1E図に示す単純化したメモリ単位は
8個の行1a−1hと8個の列2a−2hを備える64エレメント
のメモリを備える。メモリはフアストページタイプで行
セレクタ3は列セレクタ5による一連の継起する列アド
レス中に行アドレスラッチ4内のアドレスに従って所与
の行を選択するに任せることがてきるようになってい
る。メモリ10には2個のレジスタが関連している。即
ち、物理アドレスを保持するCAMPhyAdrレジスタ6と、
物理アドレス又は仮想アドレスの何れかである1アドレ
スを保持するCAMTag 7である。説明を簡単にするため
に、アドレスリクエスト8が丁度到着したものと仮定す
る。アドレスリクエスト8はメモリから読取ったり書込
んだりするために使用されるアドレスとすることができ
る。典型的な筋書きでは、かかるアドレスリクエストは
必要なアドレスがキャシュ内に存在しなかったために失
敗したキャシュ間の読取り書込みの試みをプロセッサが
行なった後に到着する。かかる「キャシュミス」の場
合、メモリは主メモリ10から読出されることによってキ
ャシュに転送されなければならない。
本例では先のメモリに対するアクセスはメモリを第1
図に示す構成に、即ち、8番目の行、行111を選択した
形に残すものと想定する。従って、行アドレスラッチ4
は行アドレスビット111を含み、CAMPhyAdr 6は同じ行ア
ドレス(111)を含む。更に、先とアドレスリクエスト
は仮想アドレスに対するものであったと想定する。従っ
て、第1A図に示すようなCAMTag 7は先のアドレスリクエ
ストから持ち来たされた行アドレスを含み、従って物理
アドレス111に対応する仮想アドレスとなる。ページテ
ーブル9から判るように、物理アドレス111に対応する
仮想アドレスは101である。
第1A図から判るように、新たなアドレスリクエストは
001110の形をとっている。新たなリクエストを処理する
ために、まづアドレスリクエスト8内の行ビットとCAMT
ag 7の内容との間の比較が行われる。この場合、アドレ
スリクエスト8内の行ビットは001で、他方、CAMTag 7
の内容は101である。(先のメモリリクエストから繰返
される)従って、コンパレータ11はCAMミスが存在する
ことを示す。このことは新たに到着したアドレスリクエ
スト8が現在アサートされている行とは異なる(即ち行
111とは異なる)行に対するものであることを意味す
る。
コンパレータ11がミスを表示すると、レジスタ6、7
は第1B図に示すように更新される。CAMTag 7はアドレス
リクエストからの行アドレス(即ち001)をロードされ
る。新たなアドレスリクエストが物理アドレスである場
合には、物理アドレスの行ビットは直接CAMPhyAdr 6に
伝送できる。かかる場合には、CAMTagとCAMPhyAdrはリ
クエストされた行と同一の表示を含むことになろう。本
文中に使用するビットストリングは、少なくとも一部が
メモリロケーションに対応するアドレスを含むか同アド
レスに変換できる場合のアドレス又はメモリロケーショ
ンを「指示する」。
本例では、然しながら、アドレスリクエスト8は仮想
アドレスであって変換を要するものと想定する。ページ
テーブル9は何れの物理アドレスが001の仮想アドレス
に相当するかを判断するために使用される。ページテー
ブル9は対応する物理アドレスが010であることを示
す。第1B図に示すように、この新たな物理アドレスはCA
MPhyAdr 6内にロードされる。第1B図から判る通り、CAM
Tag 7は今や新たなリクエストに対する仮想行アドレス
を含み、一方、CAMPhyAdr 6は対応する物理行アドレス
を含む。CAMPhyAdr 6からの物理行アドレスは行アドレ
スラッチ4へ送られ、行セレクタに物理行アドレスによ
りアドレス指定される行、即ち行010を選択させる。
第1C図に示すように、アドレスリクエスト8がCAMTag
7とCAMPhyAdr 6の新しい内容を用いて今や再び試みさ
れる。この時、アドレスリクエスト8の行ビットがCAMT
ag 7の内容と比較されると、コンパレータ11はビットを
示す。列セレクタ5はアドレスリクエスト8からの列ビ
ットに従って1列を選択する。
第1D図は次に続くアドレスリクエストを示す。この例
では、001000である。アドレスリクエスト8からの行ビ
ットはCAMTag 7の内容とマッチする。従って、新たなリ
クエスト8の仮想行アドレスは第1C図に示す先のリクエ
ストからの仮想行をアドレスと同一である。その結果、
行セレクタ3は依然第3行、010を選択する構成を有す
る。コンパレータ11により指示されるビットが存在が存
在するために、アドレスリクエスト8からの列ビット
(即ち、000)が列000を選択するために列セレクタ5に
よって使用される。
第1E−1G図は、全てのビットが列セレクタ5を制御す
るために直接使用できるとは限らない場合に使用できる
本発明の実施例の簡単なバージョンを示す。第1E−1G図
に示す実施例では、第3の列ビットが物理行ビットと共
にCAMPhyAdr内にストアされると同時に仮想又は物理行
ビットと共にCAMTag 7内にストアされる。かくして第1E
−1G図に示す実施例では第3の列ビットはあたかも追加
的な行ビットであるかの如く多くの点で処理されること
が判る。それは物理行ビットと共にCAMPhyAdr内にスト
アされ、先にストアされた第3の列ビット(先にメモリ
アクセスから持越された)は進入するアドレスリクエス
ト8内の新たな第3の列のビットと比較される。第3列
ビットをストアしそれをアドレスリクエスト8からの第
1の2列ビットと組合せることによって、以下の如く、
アドレスリクエスト8内の第3の列ビットが、以下に述
べるインターリーブ制御の如きその他の目的に解放され
る。更に、アドレスリクエストの列部からの第1の2ビ
ットだけが列セレクタ5を選択する上で直接使用される
から、描かれたスキームは、アドレスリクエストが25ま
たは32のアドレッシング可能なメモリ素子のページサイ
ズと相俟って、直接使用可能なアドレス情報の5ビット
のみを(即ち行ビット1−3と列ビット1−2)を含む
場合に使用することができる。
第1E図は第1D図に示したものと同一のアドレスリクエ
ストと処理を示す。しかしその場合、第3の列ビットが
列ビットと同様に処理される実施例を使用している。第
1E図に示すように、CAMTag 7は先のアドレスリクエスト
(即ち、第1C図に示すアドレスリクエスト)から持越し
た仮想又は物理列ビットを含むと共に、先のアドレスリ
クエスト(第1C図に示す)から持越された第3の列ビッ
ト(0)を含む。CAMTag 7内にストアされたビットはア
ドレスリクエスト8内の行ビットと第3の列ビットと比
較される。この場合、進入するアドレス8の行ビットと
第3の列ビットは共に先のリクエストから持越された行
ビットと第3の列ビットとマッチするからコンパレータ
11はヒットを指示する。ヒットが存在したから、列セレ
クタ5がアドレスリクエスト8からの最初の2列ビット
とCAMPhyAdr 6内にストアされた第3の列ビットの組合
せにより指示される列を選択するために使用されるコン
パレータ1がヒットを示したという事実によってCAMPhy
Adr 6内にストアされた第3列ビット(先のアドレクリ
クエストから持越された)が進入するアドレスリクエス
ト8内の第3列ビットと同一であることが保証される。
第1F図は次の継起リクエストを示す。本例では001001
である。この場合、アドレスリクエスト8からの列ビッ
トはCAMTag 7内の行ビットの内容とマッチする。然しな
がら、アドレスリクエスト8(即ち、1)内の第3列ビ
ットはCAMTag 7内の第3列ビットエントリーとは異な
る。従って、コンパレータ11はミスを記録する。ミスの
ためにCAMPhyAdr 6とCAMTag 7のレジスタは第1F図に示
すように更新される。第1G図は、進入するアドレスリク
エストからの第3列ビットがCAMTag 7とCAMPhyAdr 6の
双方にストアされる点を除いては第1B図に示す更新と同
一である。
更新後、第1H図に示すようにアドレスリクエストが再
び試みられる。この場合、CAMTagが更新されているた
め、CAMTagの内容は行ビットと新たなアドレスリクエス
ト8からの第3の列ビットとマッチする。従って、コン
パレータ11はヒットを記録する。コンパレータ11がヒッ
トを記録するため、列セレクタ5は、CAMPhyAdr 6内に
ストアされた第3の列アドレスビットと相俟って、進入
するアドレスリクエスト8からの最初の2列ビットに対
応する列を選択する。
その後、次のメモリに対するアクセスが上記と同一の
方法を用いて行われることになろう。新たなアドレスリ
クエストが同一行内の1アドレスに対して行われ、第1E
図と第1H図に示すように先のアドレスリクエストのそれ
と同一の第3列ビットを有する場合、コンパレータ11は
ヒットを表示し、列セレクタ5のみを用いて必要とされ
るメモリ素子にアクセスしなければならない。第1A図に
示すようにアクセスリクエストが先にアドレスされた列
と異なる列間のアドレスに対するものであるか、第1F図
に示すように先にアクセスされた列と異なる第3の列ビ
ットを有する列に対するものである場合、CAMTag 7とCA
MPhyAdr 6のレジスタは第1G図に示すように更新された
後、アクセスが再試される。
メモリアクセスに伴う種類又はレベルの“ミス”が少
なくとも2つある。上記した如く、プロセッサがキャシ
ュ内のメモリにアクセスしようとして失敗すると、“キ
ャシュミス”が生じ、主メモリ10からのメモリブロック
(普通は数ワード)の提案が換案が必要になる。このよ
うに主メモリ10を読取ったり書込んだりする間にも“CA
Mミス”即ち、(第1A図に示すように)先にアクセスさ
れたものと異なる列又は、先にアクセスされた列(第1F
図に示す)と異なる第3の列ビットを有する列に対する
リクエストが生じ得る。
以上の簡単な説明を背景として、特に第2図について
実施例を解説する。第2図に示すように、メモリ機能単
位の一つのメモリ30は、東芝により提供されるTC511000
型の如き高速ページダイナミックランダムアクセスメモ
リである。メモリ30はA、B、C、Dのバンクで表わさ
れる4個のバンク32、34、36、38に編成される。各バン
グ32、34、36、38は、0、1、奇数、および偶数のブロ
ックに分割され擬似4ウエイインターリーブを行うよう
になっている。擬似4ウエイインターリーブによれば、
奇数と偶数のブロックは隣接ワード、殊にそのアドレス
の最下位アドレスビットが異なるワードを含んでいる。
0と1のブロックはアドレスの準最下位ビットが異なる
ワードを含んでいる。従って、何れの1ブロックにおい
ても、例えば、32では、4個の隣接するワードがそれぞ
れ、AOEV、Aood、AIEV、AIod内にストアされる。次の
(第5番目の)隣接ワードは、AOEV、等にストアされる
ことになろう。各バンクはX、Yと命名した2個の等寸
法のメモリセクションより構成される。かくして1バン
ク中の特定のワードは22アドレスビットを一義的に識別
できることを必要とする。これらは10行アドレスビッ
ト、10列アドレスビット、および2擬似インターリーブ
ビットとして編成される。各列アドレスラッチ42、44、
46、48は10アドレスビットを保持することが望ましい。
明確にするために第2図には行アドレスラッチ42、44、
46、48はメモリ30の外部にあるものとして描かれている
が、事実上は、これらはメモリ30の一体部分をして構成
するのが普通である。
書込みデータの4個の22ビットワードをストアするた
めに一組52の書込みデータレジスタ52a、52b、52c、52d
が設けられている。2個のアドレスレジスタ53a、53bは
それぞれ2つの列/行マルチプレクサ54、56からアドレ
スビットを受取る。メモリ32、34、36、38の各バンクは
それと関連して追加的な列/行マルチプレクサ58、60、
62、64を有している。これらマルチプレクサ58、60、6
2、64は下記の如き方法で2個のアドレスビットを提供
するが、それらはアドレスラッチ53a、53bにより提供さ
れる8個のアドレスビットと相俟って、コラムアドレッ
シングに必要される10個のアドレスビットを構成する。
書込みデータレジスタ52用の書込みデータは、エラー
補正コードジェネレータ70、72を経て処理された後、2
個のデータレジスタ66、68から提供される。エラー補正
コードジェネレータ70、72は、以下に示す如く、4つの
CAMPhyAdrレジスタ74、76、78、80の一つの連絡する。
データレジスタ66、68内の書込みデータは、データバス
84a、84b、84c、84d、および関連するマルチプレクサ86
a、86bを経て提供される。
第1の2個の列/行マルチプレクサ52、54の列入力に
提供されたアドレスビットはメモリリクエストアドレス
レジスタ(MenRqAdr)90から列アドレスを受取るインク
リメンタ88a、88bから到着する。MenRqAdrレジスタ90
は、マルチプレクサ91と関連する論理93から入力を受取
る。マルチプレクサ91は一つもしくはそれ以上のアドレ
スバス305、307、309に接続される。進入するアドレス
が仮想アドレスであるか物理アドレスであるかは、メモ
リ仕様コードと相俟ってどのバスからアドレスが到着す
るかによって決定される。メモリ仕様コードはどのメモ
リ処理が、例えば、リード、ライト、診断その他の処理
の何れが実行されるかを規定するコートである。この判
断は論理93によって行われる。アドレスが仮想アドレス
であるか物理アドレスであるかを示すビットはMenRqAdr
レジスタ90に送られる。
同様に、各メモリ32、34、36、38のバンクと関連する
のは2個のアドレスレジスタ、即ち、CAMPhyAdrレジス
タ74、76、78、80とCAMTagレジスタ94、96、98、100で
ある。第11B図にはCAMPhyAdrレジタ74、76、78、80の各
々に適用可能なビットマップを示す。CAMPhyAdr 74はX/
Yセレクトビット901、ボードセレクトビット912、6パ
リティビット914、列アドレス916の2ビット、および物
理列アドレス918を含む。物理列アドレス918は以下によ
り十分に説明するように、2つの源のうちの1つから得
られる。アドレスリクエストが物理アドレスを表わすと
き、物理行アドレスは直接CAMPhyAdr 74、76、78、80内
にストアすることができる。リクエストされたアドレス
が仮想アドレスを表わす場合、仮想行アドレスはまづPT
Cエントリ92を用いて変換される。
ページテーブルキャシュ(PTC)はハッシュロジック9
5を用いアクセスすることが望ましい。上記した如く、P
CTはエントリー部分92とタグ部分95、97(第12図)を含
む。2つの別々のPTCタグアレイが存在することが望ま
しい。データキャシュ95に対しては1つのタグアレイを
用い、命令キャシュ97に対して他のタグアレイを使用す
る。同時に第12図に示すように、PCTはメモリ機能単位9
3a、93b、93b、93nのそれぞれにつき一つのPCTエントリ
アレイ92が存在する一方、PCTタグ95、97はメモリボー
ド又は機能単位93a、93b、93n上に配置される意味で分
布させることが望ましい。このことによってそれぞれの
機能単位上にPCTタグ95、97を備える必要は回避され
る。PCTエントリとタグ対しては少なくとも3つの可能
な構成がある。エントリとタグの双方ともメモリに位置
決めすることができよう。然しながら、かかる構成は通
常の(CAMヒット)場合アクセスは低速になろう。第2
に、エントリとタグは共にリクエスト源に位置決めする
ことができよう。然しながら、かかる構成反応他のオプ
ションよりも多くのメモリを要し、それぞれの主メモリ
アクセスにおいて変換が必要になろう。OCTタグ95、97
はリクエスト源にあり、それぞれのメモリ機能単位につ
いては一つのPTCエントリアレイ92が存在することが望
ましい。(第12図)この構成は通常の場合(CAMヒッ
ト)高速のアクセスに対するものでメモリの効率的な使
用を考慮し、各メモリアクセス毎に変換することを回避
するためである。
同様に、それぞれのメモリバンク32、34、36、38とは
CAMTagレジスタ94、96、98、100が関連する。第11A図に
示す如く、CAMTagbレジスタ94は一つの仮想/物理ビッ
ト919、2個のパリティビット920、および仮想又は物理
ビット919、2個のパリティビット920、および仮想的又
は物理的アドレスビット1−20(922)を含む。それぞ
れのCAMTagレジスタ94、96、98、100とはコンパレータ1
02、104、106、108がそれぞれ関連している。
メモリ単位の動作を制御する論理が受信状態マシーン
112、MEMOP状態マシーン114、およびリフレッシュ状態
マシーン115内に設けてある。受信状態マシーン112はデ
ータのリクエストの逆分布を制御する。リフレッシュ状
態マシーン115はメモリリフレッシュを共に列アドレス
ストローブ(CAS)と行アドレスストローブ(RAS)を制
御する。MemOP状態マシーン114は、調停し、メモリサイ
クルを開始し、以下に詳説するようにリフレッシュとメ
モリアクセスに対するリフレッシュ状態マシーンを共働
する。
メモリ単位の出力部分は出力レジスタ、エラー補正素
子、およびバスゲートを含む。出力レジスタ116は擬似
4ウエイインターリーブ読出しの2サイクルに対応する
8個のメモリワードを維持する。読取られたメモリデー
タはマルチプレクサ118、118bを介してエラー補正回路1
20a、120bに送られた後出力レジスタ122a、122bへ送ら
れる。出力レジスタ122a、122bは制御ゲート126a、126b
を介してデータバスへ接続される。
本発明の作用の解説は4つのメモリシステム処理に関
する説明を含む。即ち、CAMヒットが存在する場合の読
取り処理と、CAMヒットが存在する場合の書込み処理
と、CAMミスが存在する場合の読取り又は書込み処理、
およびリフレッシュ処理である。
アドレスリクエストがメモリ機能単位により処理され
る前に、まづアドレスが、メモリ機能単位から提案され
るアドレスが所量のアドレスであるという意味が妥当で
あるということが判断される。妥当性の検証はPCTタグ
内の存在の検証を伴う。
リクエストされたばかりのページがPTC内に存在する
かどうかを判断するためにPTCタグ95、97(第12図)が
打診される。もしページがPTC内に存在しなければ、“P
TCミス”と称されてオペレーティングシステムマイクロ
コードがページテーブルキャシュ92、95、97のリマッピ
ングを行い、アドレスアクセスが再スタートされる。PT
Cミスの場合、大きなページテーブル(図示せず)からP
TCタグ95、97とPTCエントリ92を更新する必要がある。P
TCタグ95、97は直接ページテーブルから更新される。PT
Cエントリ92を更新するために物理アドレスはデータバ
ス84を経て到着し、仮想アドレスはMenAdrバス305、30
7、309(第2図)の一つを経て到着する。物理アドレス
はRqDataバス82を介してゲート162を経てPhyAdバス142
へ伝送され、その後、PTCエントリテーブル92へ伝送さ
れる。仮想アドレスはアドレスバス130へ伝送され、ゲ
ート144を経てPhyAdバス142へ、その後PTCエントリテー
ブル92へ伝送される。新たなエントリは2回書込まれ
る。一度目は下半分92aで、一度目はPTCエントリテーブ
ルの上半分92bで、次に、全てCAMTag94、96、98、100は
無効化され、PTC更新を惹起したメモリリクエストが再
試される。
上記の如く、FPDRAMでは、もし(先のリクエストがそ
の行中のエレメントに向けられた結果として)RASが既
にアサート状態に保持されている行内にリクエストされ
たメモリエレメントが存在するならば、メモリアクセス
は比較的高速である。4個のラッチ42、44、46、48の何
れか一つがリクエストされたメモリエレメントを含む行
に対する行アクセスを含んでいる場合、CAMビットが存
在するように4個の行アドレスラッチ42、44、46、48が
存在することが望ましい。4個の行ラッチ42、44、46、
48の何れもがリクエストされたメモリエレメントの行ア
ドレスを含んでいないならば、CAMラッチミスが存在
し、行アドレスラッチ42、44、46、48の一つは以下に詳
しく述べるように新たな行アドレスをロードされなけれ
ばならない。
リクエストされたデータエレメントについてCAMビッ
トが存在するメモリ処理は正規の処理状態にある、即ち
4個の行アドレスラッチ42、44、46、48の各々がかかる
行の1エレメントに対する先のリクエストの結果として
行アドレスを含む程十分に長く動作している装置につい
て説明しよう。新たに開始もしくはパワーアップしたメ
モリボードがこの状態に達する方法は以下に詳説するCA
Mミスによる読取り又は書込みを終了した後、当業者に
容易に理解されよう。
さて第2図と第3図に入れ述べると、第2図に示すメ
モリシステムが上記の正規動作状態にある場合、メモリ
読取り処理は、アドレスバス305、307、309のうちの一
つに到着する(310)メモリリードリクエストによって
開始される。一つ以上のメモリリクエストが存在する場
合、受信状態マシーン112の調停論理はこれらリクエス
ト312を調停して、所定の優先順位システムに従って
(またメモリシステムが次のメモリリクエストを受信す
ることのできる状態にある後に)マルチプレクサ91をセ
ットしてリクエストされたメモリアドレスの一をMemRqA
drレジスタ90へセットする。同様に、この期間中、デー
タバス84A、84B、84C、84D上にあるデータはマルチプレ
クサ86a、86bを経てデータレジスタMemRqDataOd 68とMe
mRqData 66へ送られる。現在考案中のリクエストはリー
ド要求であるため、これらのデータバスの上のデータは
擬似的なものである。即ち、それはその時にデータバス
上に存在するデータは何であれ表示する。かくして、こ
のデータはリードリクエストに無関係で、使用されない
であろう。同様にこの期間中、論理回路93を使用してマ
ルチプレクサ91内を通されたメモリリクエストが物理ア
ドレスであるか仮想アドレスであるかが判断される。こ
の判断は何れのアドレスバスからアドレスリクエストが
発生したか、またある場合にはそのメモリリクエストと
関連するメモリ仕様コード部分に基づいて行うことがで
きる。論理93は、アドレスが仮想アドレスであるか物理
アドレスであるたを計算した後、1ビットをMemRqAdrレ
ジスタ90内にセットしてアドレスが仮想アドレス又は物
理アドレス314であるかどうかが示される。
次段階の処理では、5つの手続がほぼ同時に開始され
る。即ち、列アドレス315のロードと、比較316、ビット
317の維持、変換318とボードとXYセレクト320の開始で
ある。
10個の列アドレスのうちの8つを構成するMemRqAdrレ
ジスタ90からのビットはビット位置21−28内に常駐す
る。列アドレス315のロード中、これらのビットはアド
レスバス130を経てインクリメンタバス132へ送られ、イ
ンクリメンタ88aと88bに到達する。
3つの最下位ワードアドレスビット(キャシュフイル
の場合)は常にゼロであろう。これはキャシュラインが
8ワード(28)で同ライン内の最初のワードが最後の3
ビットが000であるようなアドレスを有しているためで
ある。読取り処理の最初の半分では、インクリメンタ88
aを経て到達するアドレスは増分されず(即ちゼロだけ
増分される)ビット21−28(20、第10C図)は列/行マ
ルチプレクサ54を通過する。同マルチプレクサ54は現在
の状態では“列”についてセットされており、アドレス
ラッチ53aを経てアドレス・レジスタバス134aに至った
ところである。第2のインクリメンタ88bを通過する列
アドレスは1だけ増分され、ビット21−28(20、第10C
図)は、同様に“列”セットされた第2の列/行マルチ
プレクサ56を経て、アドレスラッチ53bを通り、第2の
アドレスレジスタバス134bへ至る。アドレスラッチ53
a、53bを経て到達するアドレスはかくして列アドレスビ
ットの若干のみを、即ちビット21−28のみを含む。更
に、アドレスラッチ53a、53bは各メモリアクセスリクエ
ストに対する内容を変化させることを注意することが重
要である。
列アドレス全体に必要とされる10個の列アドレスビッ
トを完成するために“列”にセットされた列/行マルチ
プレクサ58、60、62、64、を経てメモリバス32、34、3
6、38の各々に対して2個の余分の列アドレスビットが
供給される。然しながら、アドレスレジスタ53a、53bを
通過する列アドレスと異なって、物理アドレスのビット
17と18に対応するこれら2個の列アドレスビットはMemR
qAdrレジスタからは直接供給されない。むんろ、これら
のビットは4個の物理アドレスレジスタ、即ちCAMPhyAd
r A、B、C、およびD、74、76、78、80から供給され
る。これら2個の列アドレスビットはCAMミス表示が存
在しない限り不変又は一定であるからこれらのレジスタ
からそれらを供給することができる。以下に詳説するよ
うに、これら2個の列ビットはCAMミスが存在する場合
にのみ変化する。かくしてCAMPhyAdrレジスタ74、76、7
8、80により供給される2個の列アドレスビット17と18
とは行アドレスビットと同様の方法で行動する。従っ
て、第3図に示すプロセスは、CAMPhyAdrレジスタから
各々の対応する行/列のマルチプレクサ58、60、62、64
に対してこれら2個のビット317を維持することを含
む。
4個の行/列マルチプレクサ58、60、62、64の各々は
(8個のビットの合計について)2個のビットを提供す
るけれども、これらマルチプレクサのうちの一つだけ
(即ち2ビットのみ)が何れの1メモリアクセス中にも
使用されることになろう。これに、メモリの4バンク3
2、34、36、38のただ一つについて列アドレスストロー
クがアサートされるためである。
同時期に、4個の比較316が行われる。行なわれる比
較は、MEMRqAdrレジタ90からのビットとCAMTagレジスタ
94、96、98、100の各々の内容の間の比較である。CAMTa
gレジスタと比較されるべきビットは行アドレス、ボー
ドセレクトビット、XYセレクトビット、バンクセレクト
ビットと共に仮想/物理論理93によりセットされた仮想
/物理ビットを含む。CAMTagレジスタ94、96、98、100
の各々に存在する20ビットは、同時に、仮想又は物理行
アドレスビット(先のメモリアクセスによる)、ギード
セレクトビット、バンクセレクトビット、X/Yセレクト
ビット、および仮想/物理ビットを含む。比較はCAMTag
レジスタ94、96、98、100を仮想/物理バス136から入力
を受取る4個のコンパレータ102、104、106、108により
行われる。仮想/物理バス136は、アドレスバス130と連
絡する。
各コンパレータ102、104、106、108は、その2つの入
力が同一であり、ヒット信号を発生し、このヒット信号
をMEOP状態マシーン114へ転送する。CAMTagレジスタ9
4、96、98、100と4個のメモリバンク32、34、36、38間
には直接のマッピングが存在することが望ましい。かか
る直接的マッピングの下では、CAMTagA 94は第1のバン
ク32内のメモリアドレスに対応するアドレスのみを含
み、CAMTagB 96は第2のバンク34のメモリ内容に対応す
るアドレスのみを含むという具合になろう。直接的マッ
ピングの面のために、正規処理では、せいぜい4個のコ
ンパレータ102、104、106、108のうちの一つがヒットを
表示することになろう。
この点でMEMOPマシーン114はヒットが存在したかどう
か、また4個のバンクA、B、C、D(32、34、36、3
8)のうち何れがそのヒットを含んでいるかについての
表示を含んでいる。メモリ320のX又はY部分の選択は
ビット6により制御される。同ビット6はCAMPhyAdrレ
ジスタ74、76、78、80により出力され、列アドレススト
ローブロジック152、154、156、158へ出力される。
同様にしてこの時、仮想−物理間の変換が開始され
る。(318)上記の如く、MemRqAdrレジスタ90内にある
アドレスは物理的又は仮想的アドレスの何れかとするこ
とができる。仮想−物理間の変換の結果は、(1)MemR
qAdr 90の内容が仮想アドレスであり、(2)4個のCAM
Tagレジスタ94、96、98、100の何れにもヒットがなかっ
た場合にのみ使用されよう。然しながら、仮想−物理間
の変換には一連のマシーンサイクルが要求するため、変
換が(第5図に示すように)必要であることが判った場
合、その結果が必要であると判断される前に変換プロセ
スが開始されているように変換はこの時に開始される。
変換が不要であるような場合には、変換の結果は無視さ
れることになろう。
続く処理部分はCAMヒット322が存在したかどうかによ
る。その判断は、上記の如く、この時点でMEMOP状態マ
シーン114により行われた判断である。第3図に示す筋
書きでは、CAMTag 94、96、98、100の一つはMemRqAdr 9
0からのビット1−20に対するヒットを示す。以下の議
論を容易にするために、上記ヒットは第2のコンパレー
タ104により表示されるものと想定する、当業者には明
らかであるように、以下の所論は他の位置のコンパレー
タ102、106、108によるヒット表示にも適用されよう。
第2のコンパレータ104にヒットが存在したために、
第2の行アドレスラッチ44はリクエストされるメモリエ
レメントを含む行を含んでいる。この事実が表示される
のは、対応する(第2の)CAMTag 96が第2の行アドレ
スラッチ44内にストアされた行に対する行アドレスを含
んでいるためである。第2のCAMTag 96内の行アドレス
は物理行アドレス又は仮想行アドレスの何れかとするこ
とができる。然しながら、第2のCAMTag 96内の行アド
レスが仮想アドレスであるか物理アドレスであるかに関
わりなく、CAMTag96とMemRqAdrのビット1−20間に同一
性が保存する場合、リクエスト中のアドレスは対応する
行アドレスラッチ44の内容によってアドレス指示される
行内に存在しなければならない。かくして、仮想−物理
間の変換を待たずにCAMビットを得ることができる。こ
のスキームの有効値は「仮想性」の上記した局部性、即
ち、いったん仮想又は物理アドレスリクエストが行われ
ると同一の行中のメモリエレメントに対する後のリクエ
ストは同一タイプのもの(即ち、仮想的及び物理的のも
の)となる可能性が大きいという事実によって促進され
る。
上記の如く、1列アドレスの部分は最初の2つの列/
行マルチプレクサ54、56を通過し、その他の部分は残る
列/行マルチプレクサ58、60、62、64を通過する。これ
らのアドレスが確定した後、第2の行アドレスラッチ44
によりアドレスラッチ指定される行からリクエストされ
た列を選択するために、列アドレスストローブが第2の
メモリバンクにアサートされなければならない。
上記の如く、MEOP状態マシーン114は第2のバンチ
B、34がヒット表示に対応するメモリエレメントを含む
という表示を含んでいる。それ故、MEMOP状態マシーン
は列アドレスストローブ(CAS)324を第2のメモリバン
ク34にアサートする。
第2図に示す実施例では、リード中のリードデータの
転送は2段階で行われる。即ち、リクエストされたデー
タの半分は出力レジスタ116へ転送される。アドレスは
適当に増分され、第2の半分は転送される。再び第3図
について述べると、列アドレスストローブ24のアサーシ
ョン後、データの半分はMemRdレジスタ116へ転送される
(326)。次にMEMOP状態マシーン114は同時に列アドレ
スストローブのアサーションを解除して、インクリメン
タ88A、88Bと係合する。(330)第1のインクリメンタ8
8Aに係合するとそのインクリメンタはそれを通過するア
ドレスを4だけ増分する。この増分はアドレスの1ビッ
トを0から1へセットすることに等しい。同様にして、
第2のインクリメンタ88Bもまた、そのインクリメンタ
を通過するアドレスを4だけ増分する。増分されたアド
レスハ列/行マルチプレクサ54、56(両方とも“列”に
セットされる)を経てアドレスラッチ53a、53bへ通され
る。
この時点で、同時に、MEOP状態マシン114はエラー補
正ロジック120A、120Bを始動してリードデータ334の最
初の半分のエラーを補正し、CAS322を再びアサートす
る。CAS322が再びアサートされるため、増分330(とデ
ータレジスタ116内の適当なラッチのイソーブル化後)
後に、リードデータ336の第2の半分のMemRdレジスタ11
6に対する転送が実行される。次に、同時に、CASのアサ
ーションが解除され(340)、リードデータの第2の半
分のエラー補正が開始される。(342)最後に、エラー
補正回路からのリードデータがデータレジスタ122A、12
2Bへ搬送され(344)、その後、ボード出力イネーブル
ロジック150により制御されるゲード126A、126Bを経て
データ出力バス124A、124Bへ送られる。
さて第4図について述べると、CAMヒットが存在する
場合のメモリ書込みを含む第2の処理が描かれている。
この処理の初期段階はリード処理に関して上記したもの
と類似している。1つもしくはそれ以上のメモリリクエ
ストが到着し(410)、リクエストが調停される。(41
2)リクエストされたアドレスはMemRqAdrに送られ、ラ
イトデータがデータバス上に到着し、MemRqDataレジス
タ66、68へ送られる。この場合、ライトデータは(リー
ドリクエストの疑似データとは反対に)素データであ
る。同様にしてこの時、アドレスが仮想データであるか
物理データであるか、または仮想/物理ビットがMemRqA
dr内にセットされているかどうかが判断される。次に、
同時に、列アドレスビットがロードされ(415)、維持
され(417)、CAMTag416について比較が行われ、仮想−
物理間の変換が開始される。(418)これらのステップ
と同時に、ライトデータはデータレジスタ66、68からエ
ラー補正コートチェックビットジェネレータ70、72に送
られた後、ライトデータレジスタ52内のラッチに送られ
る。
第4図に示すプロセスでは、MEOP状態マシーン114がC
AMセット422が存在することを判断し、従って4個のメ
モリバンク32、34、36、38の何れにおいてCASをライト
イネーブルをアサートすべきかを判断する。(424)ラ
イトイネーブルがまづアサートされ、1サイクル遅れた
後に、列アドレスストローブがアサートされる。列アド
レスストローブとライトイネーブルのアサーションによ
ってライトデータ446はライトデータレジスタ52からメ
モリバンク32、34、36、38の一つに転送される。転送に
続いて、列アドレスストローブのアサーションが解除さ
れる。(448) 第3図と第4図に示す処理に関して、データの読取り
と書込みは列アドレスストローブのアサーションとアサ
ーションの解除によって実行されることが判るであろ
う。これらの処理の両方の間に、行アドレスストローブ
が連続的にアサートされる。第3図と第4図に示す処理
は列アドレスストローブだけをアサートしアサート解除
するから、比較的高速である。本発明によれば、この比
較的に高速の処理が十分活用される。何故ならば、アド
レスの仮想−物理間の変換を行う必要なしに周処理を実
行できるからである。かかる変換は全ての場合に開始さ
れるが、ひとたびCAMヒットが存在し、従って変換が必
要でないと判断されると、処理はかかる変換の完了を待
たずに進行する。この比較的高速のデータ転送により比
較的に高速のキャシュフイルと高い書込み帯域幅が可能
になる。
さて第5図について述べると、リード処理又はライト
処理の何れでもよいが、4個のCAMTag 94、96、98、100
の全てに関してCAMミスが存在するプロセスが描かれて
いる。
上記処理の最初の部分は第3図と第4図の処理の最初
の部分と類似している。一つもしくはそれ以上のメモリ
リクエストが到着し(510)、アドレスがMemRqAdrに送
られ、データバスからのデータがMemRqData 66、68に送
られる形で調停される。(512)アドレスが仮想データ
であるかそれとも物理データであるか、又、その仮想/
物理ビットがMemRqAdr 514内にセットされているかどう
かが判断される。同時に、列アドレスビットがロードさ
れ(515)、維持される。(517)それぞれのCAMTagにつ
いて比較が行われ、仮想−物理間の変換が開始される。
(518)この場合、MEOPB状態マシーン114はCAMミスを構
成するCAMTag 94、96、98、100の何れについてもヒット
が存在しなかったことを判断する。
その後のプロセスはMemRqAdr 90内に存在するアドレ
スが仮想アドレスであるか物理アドレスであるかによ
る。この判断は仮想/物理ロジック93により計算された
仮想/物理ビットを使用してMEMOP状態マシーンにより
行われる。(550)もし、MemRqAdr 90内のアドレスが物
理アドレスであると判断されれば、行アドレスビット
(ビット7−16)は、X/Yセレクトビットであるビット
6と共にゲート144を経て直接PhyAdバス142へ送られ
る。
もしMemRqAdr内のアドレスが仮想アドレスであると判
断されれば、仮想/物理間のアドレス変換を使用する必
要がある。上記の如く、仮想−物理間のアドレス変換は
先に開始された。(518)この変換は当業者には周知の
方法でハッシュロジック95を用いるハッシュスキームに
よって行われる。ハッシュアドレスはPTCエントテーブ
ル92の下半分92a内の提案索引として使用される。エン
トリテーブルの下半分92aと上半分92bは互いのコピーで
ある。通常は、下半分92aが使用される。然しながら、
もしページテーブルキャシュ92の下半分にアクセスしよ
うとする時にエラーが発見されると(553)、スペアセ
レクトスイッチ160が駆動して上半分又は“スペア"PTC
エントリーテーブル92bがアクセスされる。
変換が実行された後、変換の結果はPhyAdバス142へ送
られる。(560)いったんMemRqAdrレジスタ90から直接
にか、それとも変換(560)の結果としてか行アクセス
がPhyAdバス上に得られると(142)、プロセスは継続可
能となる。本例では、たといMemRqAdrアドレスが物理的
なものであっても、一つの仮想アドレスの変換が行われ
た場合に必要な時間を占めるために遅れ562が開始され
る。
次にPhyAdバス142上のビット19と20はMEMOP状態マシ
ーン114により観察され、バンク32、34、36、38の何れ
が更新されなければならないかが判断される。(564)
本例において、4個のバンクが存在するためにバンクを
指定するには2ビットが必要であることに注意された
い。他の実施例では、それ以上又はそれ以下の数のバン
ク判断ビットに関連してより多くの又はより少数のバン
クを使用することができよう。以下の所論を容易にする
ために、メモリリクエストは第2のメモリバンク34内に
存在する1メモリエレメントに対して行われるものと仮
定する。当業者には明らかな如く、以下の所論は他の任
意のバンク32、36、38内に存在するエレメントについて
のメモリリクエストに適用することができよう。
次の段階では、3つの処理が同時に行われる。即ち、
RASのアサーションの解除566と、CAMTagのロード568
と、CAMPhyAdrのロード570である。行アドレスストロー
ブは、先に述べたように(564)更新を必要とするバン
ク34に対応する第2の行アドレスラッチ44に対してのみ
アサートを解除する、(566)更新中の第2バンク34に
相当する第2CAMTag 96はMemRqAdrレジスタ90から直接ビ
ット1−20をロードされる。(568)それは仮想アドレ
ス又は物理アドレスの何れであってもよい。仮想アドレ
ス又は物理アドレスを何れか第2のCAMTag96へロードす
ることによって、そのアドレスが第2の行アドレスラッ
チ44内にロードされている行内のメモリエレメントに対
して行われる同じタイプ(即ち、仮想又は物理)の後続
リクエストが第2のCAMTag 96に対してヒットを発生す
ることになろう。
同時に、(ボードセレクトビット、バンクセレクトビ
ット、パリティビットの如きCAMPhyAdrレジスタ内はス
トアされる他のビットと共に)PhyAdバス142上に位置す
る物理アドレスがPhyAdバス142上で第2のCAMPhyAdrレ
ジスタ76内へロードされる。上記レジスタ76は第2のバ
ンク34に対応する。かくの如くして、第2のCAMPhyAdr
レジスタ76と第2のCAMTag 96とは共に更新されて第2
の行アドレスラッチ44内にロードされている行のそれぞ
れ物理行アドレスと仮想又は物理行アドレスを反映する
ようになっている。
行/列マルチプレクサ54、56、58、60、62、64は全て
“行"572にスイッチされる。ビット7−14を構成する行
アドレスは第1の行アドレスバス166上を第2のCAMPhyA
drレジスタ76から第1の2つの列/行マルチプレクサ5
4、56を経てシイトデータレジスタ52のアドレスラッチ
へ送られる。同時に、行アドレスのビット15と16は行ア
ドレスバス166上を第2のCAMPhyAdrレジスタ76から対応
する(第2a)列/行マルチプレクサ60へ送られる。(57
6)この時点で、行アドレスストローブが再度アサート
される。(578)列/行マルチプレクサ54、56、58、6
0、62、64は“列"580へスイッチされ、CAMミスを惹起し
たメモリアクセスはリトライされる。(582) 上記の如く、コンピュータ環境は第2図に示すような
複数の機能単位又はメモリ単位93a(それぞれ1つ又は
2つのボード上に位置するのが普通である)を含んでい
る。従って、リクエストされたメモリが特定のメモリ単
位93a上に位置するかどうかを判断し所与のメモリ単位9
3a上にないメモリがそのメモリ単位93a間で読み取った
り書込まれたりしないようにするためのシステムが提供
される。この目標を達成するために、それぞれのCAMPhy
Adr 74、76、78、980はボードセレクトビットを備え
る。各ボードセレクトビット912の値は各CAMミスに続く
手続中に計算される。各メモリ単位は、“ボードベー
ス”の表示と特定メモリ単位の大きさ(例えば、32又は
64メカバイト)の表示をストアする素子138を格納す
る。ボートベースとサイズはパワーアップ時に各メモリ
単位93a内にロードされる。ボートベースはメモリ単位
のスタートアドレスを表示する。メモリ単位のスタート
アドレスとサイズからそのメモリ単位上に位置するアド
レスの範囲が判断できる。CAMミスに続き手続中にリク
エストされたアドレスがコンパレータ146を用いてメモ
リ単位上のアドレスレンジと比較され、リクエストされ
たアドレスがそのメモリ単位上にあるかどうかを示すボ
ードセレクトインディケータ148がつくりだされる。ボ
ードセレクトインディケータ148は対応するCAMPhyAdr 7
4、76、78、80内にボードセレクトビット912としてスト
アされる。ライト処理中、もしヒットが存在したCAMPhy
Adr 74、76、78、80に対するボードセレクトビット912
がそのメモリ単位上にアドレスが存在しないことを表示
するならば、列アドレスストローブはアサートされず、
かくしてそのメモリ単位に対する書込みは防止される。
リード処理中、もしヒットが存在したCAMPhyAdr 74、7
6、78、80内のボードセレクトビット912がそのメモリ単
位上にリクエストされたメモリが存在しないことを示せ
ば、MEMOP状態マシーン114は、ボード出力イネーブルロ
ジック150を用いて、データがメモリ単位出力バス124を
経て伝送されることを防止とする。
さて、第6図について述べると、第2図に示すような
ダイナミックメモリのリフレッシュ中に使用される手続
が示されている。リフレッシュは「バースト」方式で行
われる。本スキームでは、所与のリフレッシュサイクル
中に1つのメモリブロックがリフレッシュされる。リフ
レッシュされるブロックの大きさとリフレッシュサイク
ル間の遅れが、個々のメモリエレメントにつき平均して
必要とされるリフレッシュ頻度を提供するために選択さ
れる。リフレッシュはRASアサーションタイム使用(即
ち、FPDRAMメーカがRASが安全に連絡してアサート可能
な最大時間として指定する時間)と調和するようにタイ
ミングをとることが望ましい。リフレッシュサイクル又
はバーストは、可能な場合には、RASアサーションに対
するメモリメーカにより指定された最大時間がほぼ経過
するまで遅らせることが望ましい。このようにして、メ
モリリフレッシュはダイナミックメモリリフレッシュの
所要頻度と合致するだけでなく、最大RASアサーション
使用とも一致するように使用することができる。
リフレッシュメモリ全体について行われる。メモリリ
フレッシュの後には以下に説明するようにバンク毎に行
われるRAS復帰が行われる。次に、RAS復帰の順序がハン
クA、バンクB、バンクDおよびバンクC(即ち、グレ
イコードによる)ような望ましいスキームのリフレッシ
ュを説明する。他のリフレッシュ順序も当業者に明らか
な如く可能である。
第6図について述べると、初期のリフレッシュ処理
中、CAS、RASの信号は全てアサーションを解除される。
次に、4行のDRAM30が全てリフレッシュされる例えば4
又は8という具合に幾つかのリフレッシュサイクルを使
用することが望ましい。
リフレッシュ処理の最終部分では、RAS復帰がバンク
毎に行われる。RASのアサーション解除についてはメモ
リバンクAが選択され(610)、同時に行/列マルチプ
レクサ54、56、58、60、62、64が「行」にスイッチされ
る。(612)第1のCAMPhyAdrレジスタ74内に存在する行
アドレスはCAMミス574、576に関して上記したものと類
似の方法で行アドレスバス166上を発送される。次に、R
ASは第1のメモリバンク32に再びアサートされ(61
8)、CAMミス578に関連して上記したように、第1のア
ドレスラッチ42内に以前存在したものと同一の行アドレ
スを行アドレスラッチ618内へ逆ロードさせる。
かくして、第1のメモリバンク32のリフレッシュに続
いて行アドレスラッチ42はリフレッシュ前と同一の構成
になり、従ってその第1CAMPhyAdrレジスタ74と第1のCA
MTagレジスタ94に対する対応関係を維持することになる
ことが判る。RASのアサーションに続いて、バンク選択
はバンクBに増分され(620)、このバンクに対してRAS
復帰が完了する。(622)バンクB、D、Cに対するリ
フレッシュは、また行アドレスラッチ44、48、46、CAMP
hyAdrレジスタ76、80、78およびCAMTagレジスタ96、10
0、98をリフレッシュ以前とほぼ同一の状態に残すこと
になろう。かくして、リフレッシュサイルの完了後にメ
モリのアクセスは、リフレッシュサイクル前に構築され
ていたCAMPhyAdrレジスタ74、76、78、80、CAMTagレジ
スタ94、96、98、100と行アドレスラッチ42、44、46、4
8の内容に固有の局部的構造と情報を十分に活用してリ
フレッシュ前と同一の形で継続することができる。
幾つかのコンピュータ処理、主として診断ならびにエ
ラー回復処理では、PTCエントリーテーブルの内容を読
取ることが望ましい。このことが望ましい場合には、デ
ータをPTCエントリテーブルからデータ出力バス124へ転
送するためのデータ通路を設ける。このデータ通路はPT
Cエントリテーブル92からPhyAdバス142に沿って、ゲー
ト170を経てRqDataバス82の一部へ、更にマルチプレク
サ174、176を経て搬送するたそのPTCエントリバス172
へ、出力レジスタ116へ、また最終的に出力データレジ
スタ122とデータバス124へ至る。
上記したようなメモリ単位の動作は大部分、MEMOP状
態マシーン114、受信状態マシーン112、およびリフレッ
シュ状態マシーン115の3つの状態マシーン112により制
御される。各状態マシーンは他とは幾分独立して動作す
る。但し、以下に述べるように、幾つかの状態マシーン
の状態は他の状態マシーンの特定状態と調節され、一つ
の状態マシーンの一定の状態遷移はもう一つの状態マシ
ーンの状況に依存する。
以下において、状態マシーンの動作を状態ダイアグラ
ムに関して説明する。状態ダイアグラムでは実線のボッ
クス形の要素は状態マシーンの状態を表わす。矢印を有
する実線は現在状態から次の状態への遷移を示す。点線
の矢印を有する点線ボックスは実線の矢印で終了し、指
示された遷移が生ずるために充たされなければならない
条件を示す。一条件を有するアステリスク(*)は論理
“否定”を示す。RqOpは“リクエストされた処理”を示
す。“V"は論理“和”を示す。アンパーサンド(δ)は
論理“積”を示す。“<>”記号は“不等号”を示す。
MEOP状態マシン114はメモリに対する非リフレッシュ
アクセスの全てとPTエントリテーブルのアクセス全体を
取扱う。いったんリクエストが受容されられると、MEMO
P状態マシーン114のロジックはリクエストを解説して制
御信号をCASとRASの制御PAL(プログラマブルアレイロ
ジック)(図示せず)に送り、何時、メモリアレイ30に
対する信号をストローブすべきかを示す。更に、MEOP状
態マシーン114は受信インターフェイス(図示せず)に
メモリ30から読取られたデータが何時ステージングレジ
スタ122内へロードする準備が整うかを示し、CAMPhyAdr
74、76、78、80に対して何時、PTCエントリテーブル92
からのデータがCAMPhyAdr更新のためにロードされる態
勢にあるかを示す。MEMOP状態マシーン114はメモリリフ
レッシュのためのリクエストと外部リクエストからのメ
モリアクセスのリクエストを調停する。MEMOP状態マシ
ーン114はスタート又はアドレス状態710の場合にのみ動
作を停止する。(第7図) 第7図について述べると、MEMOP状態マシーン114は周
期して(7M)、(1)MEMOP状態マシーンかまだMEMOP状
態マシーンが既に競合処理と係わりあっている時やMEMO
P状態マシーンの処理の開始が列の状態マシーンの処理
と競合する時や、(2)リクエストされた処理が診断書
込み(RqOp=Diag Write)のためである時の如く、新た
な処理(MemOpRdy=真で示される)を開始する準備が
整っていない限り、スタート状態710にとどまることに
なろう。MEMOP状態マシーンはリフレッシュサイクル
(以下に述べる)中、スタート状態710内にとどまるこ
とになろう。
アイドル又はスタート状態710から、MEMOP状態マシー
ン114は4つの状態のうちの一つの遷移を経験すること
ができる。CAMヒットを有するメモリリードリクエスト
では、初期遷移はMEMRd1状態に対して行われる。CAMヒ
ットを有するメモリライトリクエストの場合、初期遷移
はMEMWr1状態714に対して行われる。PTC書込みリクエス
トの場合、初期遷移はPTCWr1状態716に対して行われ
る。第4の状態、PTCRd1 718は、CAMミス、PTCリードリ
クエスト、又は診断リードリクエストに関して使用され
る。これらの4つの初期状態の何れに対する遷移もMEMO
P状態マシーン114がレディである(即ちMemopRdy=tru
e)ことを必要とする。
MEMOP状態マシーン114のCAMヒットを有するリードリ
クエスト中の動作は、第3図に関して上記したメモリ処
理に全体として対応するものである。第7図に示すよう
に、受けたリクエストがリードリクエスト(即ち、RqOp
=MemReadd)であり、4個のコンパレータ102、104、10
6、108のうちの一つからのCAMヒット表示(即ち、AmyCA
MHif=true)720である場合、MEMOP114は状態MEMRd1712
へ進入する。MEMRd1中、DRAM中のデータの探索が開始さ
れる。インクリメンタ88a、88bの係合後、CASがアサー
トされる。その後、MEMOP114は状態MEMRd2 222への遷移
を経験する。この状態中、メモリリードアクセスの最初
のサイクルは完了する。即ち、第1群の4ワードがMEMR
dレジスタ116に転送される。MEMRd2からの転送は幾つか
の要素に依存する。もし受信マシーンがアイドル状態で
なければ(信号RcvIdle=“true"で戻される。724)M
EMOPマシーンは1サイクルの間、MemRd2内にとどまるこ
とになろう。信号MemRd2RはMEMOP114が最初のサイクル
中MemRd2状態にあることを示す。次のサイクル(MemRd2
R=true)では、もしRcvIdleが依然真であれば(72
6)、MEMOP 114はスタート状態710に復帰し再び読取り
を試みることになろう。
もし受信マシーン112がアイドル(RcvIdle=true)な
らば、MemRd2からの遷移はどのタイプのリードリクエス
トが行われたかによる。“リード2"と称するリードリク
エストの第1の型は、2ワードの転送をもたらす。“リ
ード8"と称される第2のタイプのリードリクエストは、
8個までのワードをリクエスタに転送する。リード8は
キャシュフィル動作と関連して使用されるのが普通であ
る。もしリクエストがリード2動作に対するものであれ
ば、これはRqOp<3>=true 728により示されることに
なろう。この場合、MemRd2 722はスタート状態710に対
する遷移を蒙ることになろう。もしリクエストがリード
8(RqOp<3>=true)に対するものであれば、遷移
は“プリチャージ”状態734は対するものである。この
状態はCASがアサーション解除される一方、メモリに対
するアドレスが新たな値に落着く中間状態である。プリ
チャージ734はMemRd3 736への遷移を経験する。MemRd
3、736中、CASはリードデータの第2の半分のアクセス
のためにアサートされる。MemRd3、736はMemRd4、738へ
の遷移を経験して第2群の4ワード(即ちリードデータ
の第2の半分)の転送を完了する。MemRd4、738はスタ
ート状態710への遷移を経験する。
MEOPマシーン114の第2の処理はデータのメモリへの
書込みを伴る。この状態マシーンの処理は全体として第
4図に関して上記した手続に対応する。スタート状態71
0から、MEMOP114はCAMヒット742を有するメモリライト
リクエスト(RqOp=MemWrite)が存在する場合、MemWr1
714への遷移を経験することになろう。MemWr1 714中、
ライトイネーブル信号が全DRAMに対してアサートされ
る。CAS信号はDRAMに対するアドレスが落着く間はアサ
ートされない。MemWr1状態714からMEMOP 114はMemWr2 7
44への遷移を経験する。この状態の間、メモリのライト
処理が完了する。ライトイネーブルは全DRAMに対してア
サート状態にとどまり、CASがアサートされる。MemWr2
状態744からの遷移は第2のライトリクエストが係属中
であるかどうかによる。CAMヒットが存在しない場合、
又はMEMOPがレディでない場合、又は係属するライトリ
クエスト(RqoP<>MemWrite)746が存在しなければ、M
emWr2、444はスタート状態710への遷移を経験する。も
しCAMヒットが存在し、MEMOP 114がレディであり、係属
するライトリクエスト(RqoP=MemWrite)748であれ
ば、MemWr2はMemWr1 714への遷移を経験する。
MEMOP114の第3の処理は、PTCエントリ92が更新され
る場合のように、PTCエントリ92に対する書込みの要求
である。第7図に示すように、MEMOP114は、もしPTCラ
イトリクエスト(RqoP=PTCWrite)752が存在していれ
ばPTCWr1 716への遷移を経験することになろう。その
後、MEMOP114は逐次的に状態PTCWr2、754、PTCWr3、75
6、PTCWr4、758、およびPTCWr5、762への遷移を必ず経
験することになろう。その直後、MEMOP114はスタート状
態710へ復帰することになるだろう。PTCWr1では、CAMは
サイクルの終りに無効化される。PTCライトイネーブル
はこのサイクル中にアクティブになる。PTCWr2、754
中、PTCライトイネーブルは不活動になる。PTCWr3、756
中、PTCアドレスはバンク0からバンク1へ変化するこ
とによって、第2のバンク92bはPTCWr4、758とPTCWr5、
762中にライトデータと共に書込まれるようになってい
る。PTCWr4、758中、PTCライトイネーブルはアクティブ
になり、PTCWr5、762中にPTCライトイネーブルは不活動
になる。
MEMOP 114の最終動作は、第5図に略示するようにCAM
ミス(AnyCAMHitとRqOp<0>)中に発生するか、PTC
リードリクエスト(RqOp=PTCRd)又は診断リードリク
エスト(RqOp=DiagRd)中に発生する。これらの条件76
4の何れの下においても、第7図に示すように、MEMOP状
態マシーン114のPTCRd1、718への遷移が存在する。MEMO
P 114は、PTCRd2、768とPTCRd3、772への継起的遷移を
経験する。解説の実施例では、PTCアクセスは相対的に
低速である。その理由は大部分、PTCエントリ素子92が
低速のアクセス素子であるからである。従って、アクセ
ス完了するために3つのサイクル718、768、772だ必要
である。然しながら、CAMミスは全てのメモリアクセス
については生じないから、かかる特性の低速アクセスは
深刻に全体性能を低下させることはない。
もしリクエストがPTCリードリクエストもしくは診断
リードリクエスト766の何れかであったら、MEMOP 114は
PTCRd3からスタート状態710への遷移を経験することに
なろう。CAMミス774の場合には、PTCRd3、772はPTCRd
4、776への遷移を経験する。PTCRd4中、PTCパクティエ
ラーがチェックされる。もしパリティエラー778が存在
しなければ、PTCRd4、776はスタート状態710への遷移を
経験することになろう。もしPTCバンク0、機能単位の7
82(MUOPTCParErr又はMUIPTCParErr)内にPTCパリティ
エラーが存在し、処理がリード2、リード8、ライト
1、又はライト2の処理(RqOp=00XX)であり、PTCア
レイがバイパスされない(ポートテスト中に主として用
いられるPTCArrayBypass)ならば、PTCのバンク1に対
するアクセスが試みられることになろう。バンク1のア
クセスは3つのサイクル、即ちPTCRd5、784、PTCRd6、7
86、およびPTCRd7、788中に生ずる。
受信状態マシーン112はメモリボードから選択レジス
タへのリードデータの転送を取扱う。それはリードデー
タ通路に沿うRDDataレジスタ122のロードを制御する。
同時にメモリリード中にECC補正112のためのワードをも
選択する。受信状態マシーン112は、リード2タイプと
リード8タイプの2つのタイプの処理を備える。リード
2の処理は2ワードを転送する間、リード8処理は8ワ
ードまでをレジスタへ転送復帰させる。受信状態マシー
ン112は、もしMemRDレジスタ116がロードされていない
場合(LdMemRdLo)や処理がリード8処理(RqOp=Rea
d 8)であれば、MemRdレジスタ116内のデータがまだ妥
当である(MemRDV1d)と表示されていない場合、アイ
ドル状態792内に残ることになろう。
リード2処理(RqOp=Read 8で示される)中、受信マ
シーン112は有効データがMEMOP 114状態マシーンにより
MemRdレジスタ116の0:1内にロードされた時(MemRDV1d
=true又はLDMemRdLo=true)796にアイドル状態792か
らECCRd2、794への遷移を経験することになろう。ECCRd
2、794状態では、受信状態マシーン112はECC補正を実行
している。ECCRd2、794はTRd2、798への遷移を経験して
いる、TRd2状態798において、上記の如きMemRd2、PTCリ
ード、又は診断リードに従って得られるデータはリクエ
スタに転送される。受信状態マシーン112はRcvとLRcvが
アサートされない限り(Rcv and LRcv=true)802
とこの状態798にとどまる。Rcvはレシーバがデータの受
領を開始中であることを示す。LRcvはレシーバがリクエ
ストされたデータの最後の部分の受領を開始中であるこ
とを示す。LRcv又はRcvの何れかが真であるとき(80
4)、マシーンはアイドル状態792への遷移を経験する。
リード8処理の場合、受信状態マシーン112は、リー
ド8リクエストが係属中(RqOp=Read 8)であり、MEMR
dレジスタ116の0:1内に有効データが存在する場合(即
ちMemRDV1d=true、806)アイドル状態792からECCRd 80
8の遷移を経験することになろう。ECCRd8、808では、受
信マシーン112はMEMRd 116の0:1内でECC補正とデータに
対するチェックを実行する。リードデータのリクエスタ
への転送は、録音語データの4つの転送によって発生す
る。これらの4つの転送は、それぞれ、状態T1,810、T
2,812、T3,814、およびT4,814中に発生する。これら4
つの状態T1、T2、T3、T4の各々において状態マシーンは
Rcv又はLRcvの何れもアサートされない限り(818、82
2、824、242)それぞれの状態にとどまることになろ
う。T1、T2、T3又はT4 826、828、832、844中にLRcvが
アサートされることによって、アイドル状態792への即
座の遷移が起ることになろう。T1、T2、又はT3の状態83
4、836、838中にRcvがアサートされる時、受信マシーン
112は次の継起する状態への遷移を経験することになろ
う。いったんマシーン112が状態T4 816に達すると、そ
れはリクエスタがRcv又はLRcv 844をアサートするまで
この状態842で待機することになろう。その後、受信状
態マシーン112はアイドル状態792への遷移を経験するこ
とになろう。
その状態が第9図に示されるリフレッシュ状態マシー
ン115は、2つの任務を達成する。まづ、リフレッシュ
状態マシーン115はDRAMアレイのRASとCAS制御装置を制
御する。このモードではリフレッシュ状態マシーンはME
MOP状態マシーン114の制御下にある。リフレッシュ状態
マシーンの第2の任務はDRAMのRASリフレッシュ前にCAS
のリフレッシュを処理することである。このモードの場
合、リフレッシュ状態マシーンはRASとCASの信号を制御
する。256と4096(256サイクルの倍数)の間の走査可能
なリセット値を有する12ビットのカウントダウンカウン
タ(図示せず)はそれがロールオーバする毎に一つのリ
フレッシュリクエストをトリガする。かかるリクエスト
によってリフレッシュマシーンはアイドル状態852に復
帰するに先立ち、RASリフレッシュ前に4又は8個のCAS
を経て選択的にリサイクルする。リフレッシュマシーン
115がアイドル状態でない場合、メモリリクエストは処
理することがてきない。かくして、MEMOPマシーン114を
リフレッシュマシーン115間ににはハンドシエイク信号
が存在し、2つのマシーンのうちの一つは常にアイドル
状態となるようになっている。
“Refresh Go"854と称されるリフレッシュサイクルを
開始する信号が、リフレッシュカウンが、リフレッシュ
サイクルが必要であることを示す場合と、MEMOP状態マ
シーン114からの適当なハンドシエークプロトコル後に
発せられる。この信号が発せられる(853)まで、リフ
レッシュ状態マシーン115はアイドル状態852にとどま
る。リフレッシュゴー信号854によって休止状態856への
遷移がひきおこされる。休止856中、全てのRAS、および
CASラインはアサーションを解除される。次に、リフレ
ッシュ状態マシーンは状態Rfsh1 858、Rfsh2 862、Rfsh
3 864、Rfsh4 866、およびRfsh5 868内を巡回する。
状態Rfsh1−Rfsh5内をめぐるループの数はRfshRowCtr
により追跡する。マシンは第9図に示すように4つのリ
フレッシュ、又は8つのリフレッシュ内を巡回する。以
下の解説は4サイクルオプションに関する。当業者には
明らかであるが、8サイクルのスキーマは、Rfsh5 87
2、874に対する条件が3ではなく7にセットされている
点を除けば、同様であろう。各ループにおいて、RASとC
ASはRfsh1 858中にアサートを解除され、Rfsh2 826中に
CASがアサートされRASがアサートを解除され、RASとCAS
はRfsh3 864、Rfsh4 866およびRfsh5 868中に共にアサ
ートされる。
最後のループ874に続いて、Rfsh5 868が待機状態876
への遷移を経験する。もしランモード信号がアサートを
解除されると(RunMode=true)、もしRefresh Goが
アサートを解除されると(878)待機状態に残るか、Ref
resh Goがアサートされる(882)とRfsh1状態858に戻る
ことになろう。ランモードは一たん開始された処理が完
了したことを示すために使用される。待機状態876によ
ってアドレスラッチタイムが第1のブロック行アドレス
に対してそれ自身を分解することができるため、RASが
(RASRestore 892中に)再びアサートされた時、DRAM素
子のラッチはCamPhyAdrおよびCAMTagレジスタが有して
いることを示す情報を含むようになっている。ランモー
ドがアサートされると(884)、待機状態に続いて、ラ
ッチ状態の886の遷移が存在する。ラッチ状態886はアド
レスラインを駆動するためのアドレスラッチのセットア
ップタイムを提供することによってCAMTagレジスタ92、
94、96、98とCAMPhyAdrレジスタ72、74、76、78は再び
有効にされる。
ラッチ状態86に続いて、RAS再帰状態892への遷移が存
在する。RASの復帰中(892)、RASはメモリ32、34、3
6、38の一つに対してアサートされる結果、4つの行ア
ドレスラッチ42、44、46、48の一つが再びロードされ
る。ラッチRAS再帰サイクルは4回繰返される。同回数
はRfshRowCtr 894によりカウントされ、各々の行アドレ
スラッチに対して一回ずつカウントされる。
本発明の一連の変形例も同様にして使用可能である。
当業者には明らかな如く、本文中に述べた一定の思想は
他の思想とは独立に又はそれと種々に組合せて使用する
ことができる。メモリはステディック列モードDRAMの如
き高速ページモード以外の形で設けることができ、4メ
モリブロック以下又は以下により構成することができ
る。全体としてメモリブロック(それぞれ対応するCAMT
agとCAMPhyAdrを有する)の数が大きい方がスラッシン
グを回避もしくは減少させるうえで有効であるがより複
雑で高価なハードウェアとソフトウェアが必要になる。
CAMTagとメモリ間のマッピングはダイレクトマッピン
グ、セットアソシアテイブマッピング又はフルアソシア
テイブマッピングとすることができる。本発明は他のメ
モリ階層のコンテキストで使用することができ、キャシ
ュフイルを実行するために読取りが行われる状況に限定
されるものではない。本発明は、何らメモリ階層を有せ
ず単一レベルのメモリのアクセスを有するシステム中で
も使用することができる。本発明は以上のもの以外のメ
モリサイズとアドレス幅と共に使用することができる。
本発明は参照式4ウエイ疑似インターリーブ以外のイン
ターリーブシステムと共に、又はインターリーブシステ
ムを全く有せずに使用することができる。本発明の若干
の実施例では、CAMTagミスが第1F図に示すようにアドレ
スリクエストの対応部分と共にCAMTag内にストアされる
列ビットが同一でないことによってのみひきおこされる
場合、CAMTagミスに続く行アドレスラッチを更新するこ
とを回避することができる。
第5図について述べると、仮想−物理間の変換が不要
である場合に生ずる時間の節約を活用するために遅れ56
2を排除することができる。例えば、第3図の324、又は
第4図の424に図示するようにどのバンクに対してCASが
アサートしようとしているかを判断するステップを開始
することによってメモリアクセス582をリトライせずにR
AS 578を再びアサートしマルチプレクサ580を切換えた
直後にリード/ライト処理を開始することができる。6
個の列/行マルチプレクサは全て“行"572にスイッチさ
れるけれども、必要とされる行/列のマルチプレクサの
みを切替えて新たな行アドレスを選択した行アドレスラ
ッチ内へロードすることができる。
リフレッシュサイクルは局部情報を保存するけれど
も、リフレッシュに続いてメモリシステムを再度初期化
することが可能である。
本発明ではRASがアサートされる時間の割合が大きい
ために電力消費量は若干大きくなる。そのために大きな
割合の時間についてRASをアサート解除して、効率は落
ちるが電力消費量を減少することができる。
なお、本発明は次のような実施態様を有する。
(1) 特許請求の範囲の請求項1のメモリ装置におい
て、更に、上記共通物理行アドレスの少なくとも一部を
ストアするための少なくとも第2のメモリレジスタを備
えるメモリ装置。
(2) 上記ランダムアクセスメモリが複数の行アドレ
スラッチを備え、上記複数の行アドレスの各々が一つの
物理アドレスと一つの仮想アドレスとより成る群から選
択される一つの行アドレスをストアするためのレジスタ
と関連する請求項1のメモリ装置。
(3) 上記メモリ装置が少なくとも2つの機能単位を
備え、少なくとも一つの機能単位がリクエストされたア
ドレスが上記一つの機能単位上に存在するかどうかを判
断するための手段を備える請求項1のメモリ装置。
(4) 少なくとも第1と第2の仮想もしくは物理アド
レスリクエストを受信可能なコンピュータメモリ装置に
おいて、 上記仮想アドレスリクエストと物理アドレスリクエス
トどうしを識別するための手段と、第1のデジタルビッ
トをセットして上記第1のアドレスリクエストが仮想的
又は物理的なものであるかどうかを指示するために第1
のデジタルビットをセットするための手段と、より成る
前記メモリ装置。
(5) 更に、第2のデジタルビットをセットして上記
第2のアドレスリクエストが仮想的又は物理的なもので
あるかを表示するための手段と、上記第2のデジタルビ
ットを上記第1のデジタルビットと比較するためのコン
パレータと、を備える上記(4)のメモリ装置。
(6) 順次的な複数のメモリアドレスリクエストに呼
応して第1の複数のメモリ素子を有するアレイ内のメモ
リ素子にアドレスするメモリ装置で、上記メモリアドレ
スリクエストの少なくとも一つが上記第1の複数のメモ
リ素子の少なくとも一つとの対応関係を有するようにな
ったものにおいて、 それぞれが第1の行アドレスビット群と第2の列アド
レスビット群とを備える1アドレスを有するメモリ素子
のアレイと、上記第2のアドレスビット群よりも少ない
第3の列ビット群を備える1アドレスを有するメモリ素
子をアクセスする際に使用される第3の列アドレスビッ
ト群を保持する第1のアドレスレジスタ手段と、第4の
列アドレスビット群を用いて上記第2のアドレスビット
群よりも少ない数の第4の列アドレスビット群を備える
1アドレスを有するメモリ素子にアクセスする際に使用
される第2の手段と、 上記順次の複数メモリアドレスリクエストの各々から
上記第1のアドレスレジスタへ上記第3のアドレスビッ
ト群と等しい数のビットを提供する第3の手段と、 上記順次の複数メモリアドレスリクエストのうちの少
なくとも2つのリクエスト中に上記第4の別ビット群を
上記第2の手段内に連続して維持する第4の手段と、 上記第1のアドレスレジスタ手段内の上記第3の列ア
ドレスビットと、上記第2手段内の上記第4の列アドレ
スビット群を使用して上記第1の複数のメモリ素子のう
ちの少なくとも一つをアクセスするための第5の手段
と、から成る前記メモリ装置。
(7) 上記メモリ素子のアレイが更に第2の複数のメ
モリ素子を指示可能な少なくとも第1の行アドレスラッ
チを備え、上記第2の複数のメモリ素子が上記第1の複
数のメモリ素子の少なくとも幾つかを備え、上記第1の
行アドレスラッチが少なくとも第1の条件が生ずるまで
上記第2の複数のメモリ素子を連続的に指示し、上記第
1の条件が、少なくとも上記複数のメモリアドレスリク
エストのうちの一つが上記第2の複数メモリ素子と何ら
の対応関係を持たない場合に発生し、 上記維持手段が上記第4の列ビット群を少なくとも上
記第1の条件が発生するまで上記第2の手段内に維持す
るための手段を備える、上記(6)のメモリ装置。
(8) 複数のメモリ素子が1つの行アドレスと一つの
列アドレスによりアドレス指定され、アドレス指定可能
な複数の上記メモリ素子を指示可能な少なくとも1つの
ロード可能な行アドレスラッチを備えるメモリアレイ
と、 上記第1の行アドレスラッチにより保持される複数の
メモリ素子を指示するに十分なビット数を含み、複数の
ビットを保持するための少なくとも第1の指示レジスタ
と、 少なくとも上記複数のメモリ素子の幾らかをリフレッ
シュするための手段で、上記リフレッシュが上記第1の
行アドレスの内容を変更することを伴うようになったも
のと、 上記リフレッシュに続いて、上記第1のロード可能な
行アドレスラッチに上記第1の指示レジスタの内容中に
指示されるメモリ素子を示す1アドレスをロードする手
段で、上記第1の行アドレスラッチと第1の指示レジス
タの内容が上記リフレッシュの前後において実質上同一
であるようなものと、 から成るリフレッシュ装置。
(9) 上記第1の指示レジスタが上記第1の行アドレ
スラッチにより指示される上記メモリアレイの少なくと
も1列を指定する物理アドレスを保持する請求項中の装
置において、更に、物理アドレスと仮想アドレスより成
る群から選択された上記第1の行アドレスラッチにより
指示される複数のメモリ素子を指定する1アドレスを保
持する第1の仮想/物理レジスタを備え、上記第1の仮
想/物理レジスタの内容が、上記リフレッシュの前後に
おいて実質上同一である前記装置。
(10) 上記メモリアレイが第2、第3、第4のロード
可能な行アドレスラッチを含む請求項9の装置におい
て、更に、 複数のビット数を保持し、それぞれ上記第2、第3、
第4の行アドレスラッチにより指示される複数のメモリ
素子を指示するに十分なビット数を備える第2、第3、
第4の指示レジスタで、上記第2、第3、第4の指示レ
ジスタと上記第2、第3、第4の行アドレスラッチの内
容が上記リフレッシュの前後で実質上同一であるもの
と、からなる前記装置。
(11) 高速のページランダムアクセス列行編成のメモ
リで、第1と第2、第3、第4のアドレスラッチを含
み、1アドレスを保持する各行ラッチが上記メモリの一
列を指名することによって上記行中のメモリの内容がCA
S信号をストローブすることによって高速にアクセスで
きるようにし、上記行が1行アドレスにより指定可能で
あり、上記メモリアレイ内の各素子が少なくとも10個の
行アドレスビットと少なくとも10個の列アドレスビット
を備えるようになったものと、 上記行アドレスラッチの一つにより指示される1行内
のメモリ素子をアクセスする際に使用可能な少なくとも
8個の列アドレスを保持する第1のアドレスレジスタ
と、 上記アドレスラッチの少なくとも一つのメモリ素子を
アクセスする際に使用可能な少なくとも2個の列アドレ
スビットを保持する第1の手段と、 順次の複数リクエストメモリ素子のリクエストアドレ
スを備えるビットを保持するメモリリクエストレジスタ
で、上記リクエストされたアドレスが、物理アドレスと
仮想アドレスより成る群から選択されるものと、 上記メモリリクエストレジスタ内の上記順次の複数メ
モリアドレスリクエストの各々から上記第1のアドレス
レジスタへ8個の列アドレスビットを提供する手段と、 上記第1と第2と、第3、第4の行アドレスラッチに
より保持される行に対応する行アドレスをそれぞれ保持
する第1、第2と、第3、および第4の仮想/物理行ア
ドレスレジスタで、上記行アドレスが物理アドレスと仮
想アドレスより成る群から選択されるようになったもの
と、 それぞれが上記第1と第2、第3、第4の行アドレス
ラッチにより指示される行に対応する物理行アドレスを
保持すると共に、上記2個のコウムアドレスビットを備
える一つの列アドレスを有するメモリ素子をアクセスす
る際に使用可能な列アドレスに対応する少なくとも2個
の列アドレスビットを保持する第1、第2、第3、第4
の物理アドレスレジスタと、 上記メモリリクエストレジスタ内のアドレスからの少
なくとも第1の複数ビットを上記第1、第2、第3、お
よび第4の仮想/物理アドレスレジスタの各々の内容と
比較し、上記第1、第2、第3、又は第4の仮想/物理
アドレスレジスタの少なくとも一つの内容が上記第1の
複数ビットと同一である場合に第1の信号を発生し、上
記第1、第2、第3、又は第4の仮想/物理アドレスレ
ジスタの何れの内容も上記第1の複数ビットと同一では
ない時に第2の信号を発生するコンパレータ手段と、 上記複数のメモリアドレスリクエストのうち少なくと
も2つのリクエスト中に上記第1の手段中の2個の列ビ
ットを上記第2の信号が生成するまで連続的に維持する
ための第3の手段と、 上記第2の信号の発生後、上記第1、第2、第3又は
第4の行アドレスラッチの少なくとも一つの内容を変更
する第4の手段と、 上記メモリリクエストアドレスが仮想アドレスである
か物理アドレスであるかを判断し、少なくとも1ビット
を上記メモリリクエストレジスタ内にセットして上記メ
モリリクエストアドレスが仮想アドレス又は物理アドレ
スであるかを表示する第5の手段と、 から成るコンピュータメモリ装置。
(12) 複数の仮想アドレスの少なくとも一つを対応す
る物理アドレスに変換する装置において、 それぞれが仮想アドレスを物理アドレスに変換するデ
ータを含む複数のエントリを備える第1のテーブルと、 複数のエントリを含む第2のテーブルと、 上記第1のテーブルに対して変更が行われた時は何時
でもそれに対応する変化を上記第2のテーブルに対して
施し上記第2のテーブルが上記第1のテーブルと実質同
一となるような手段と、 エラー条件を上記第1のテーブル内に発見する手段
と、 上記第1のテーブルと第2のテーブルの一つを選択的
に用いて仮想アドレスを物理アドレスに変換する手段
と、 上記第2のテーブルを上記手段により使用すべく選択
し、エラー状態が上記検出手段により検出された時に選
択する手段と、 から成る前記装置。
(13) それぞれが複数のメモリページをストアするた
めの複数のメモリ機能単位と、 複数のページテーブルキャシュエントリアレイと少な
くとも一つのページテーブルキャシュタグアレイを備
え、 上記ページテーブルキャシュエントリアレイの各々が
上記メモリ機能単位の一つの関連し、上記機能単位上に
存在する物理アドレスをストアし、上記ページテーブル
キャシュタグアレイが仮想アドレスの表示をストアし、
それぞれの仮想アドレス表示がページテーブルエントリ
アレイ内にストアされる物理アドレスは対応し、 上記第1のページテーブルキャシュタグアレイが上記
複数のページテーブルキャシュエントリアレイの第1の
ものの中にストアされた物理アドレスに対応する仮想ア
ドレスの少なくとも第1の表示と、上記複数のページテ
ーブルエントリアレイの第2のものの中にストアされた
物理アドレスに対応する仮想アドレスの第2の表示を含
む、データと命令をストアするためのコンピュータメモ
リ装置。
(14) 上記第1のページテーブルキャシュタグアレイ
がデータを含むメモリロケーション用の仮想アドレスの
表示をストアすると共に、更に命令を含むメモリロケー
ション用の仮想アドレスの表示をストアする第2のペー
ジテーブルキャシュタグアレイを備える上記(13)のメ
モリ装置。
(15) 上記メモリアレイを設ける段階が複数の行アド
レスラッチを設けることより成り、 上記仮想/物理アドレスレジスタを設ける段階がそれ
ぞれの行アドレスラッチにつき一つの仮想/物理アドレ
スレジスタを設けることより成り、 上記比較する段階が上記選択されたビットを上記複数
の仮想/物理レジスタ各々の内容と比較して、仮想/物
理レジスタの内容が上記選択されたビットと等しい場合
に第3の信号を生成する段階より成り、更に上記第3の
信号に呼応して少なくとも第1の行アドレスラッチの内
容変更する段階より成る、請求項2の方法。
(16) メモリアレイ内のアドレス指定可能なメモリ素
子にアクセスする方法において、 上記素子のアドレスと上記アドレスが仮想又は物理的
なものであるかどうかの表示を用いてメモリ素子をアク
セスする手段を設け、 メモリアドレスリクエストを受信し、 上記メモリアドレスリクエストが仮想的であるか物理
的であるかを判断し、 少なくとも第1のビットをセットして上記メモリアド
レスリクエストが仮想的なものか物理的なものであるか
をセットし、 メモリ素子をアクセスするための手段と、上記メモリ
アドレスダクエストが仮想的なものであるか物理的なも
のであるかどうかを示す上記ビットを用いてメモリ素子
にアクセスする、 段階より成る前記方法。
(17) 順次の複数メモリアクセスリクエストに呼応し
てメモリアレイ内の複数のメモリ素子を順次アクセスす
る方法において、 各々が第1の行ヒット群と第2の列ビット群を備えて
アドレスを備えるメモリ素子のアレイを設け、 上記第2群よりも少ない群の第3群の列アドレスビッ
トを備えるアドレスを有するメモリ素子をアクセスする
際に使用される第3の列アドレスビット群を保持するた
めの第1のアドレスレジスタ手段を設け、 第4の列アドレスビット群を用いて上記第2群よりも
少ない第4の列アドレスビット群を備えるアドレスを有
するメモリ要素にアクセスする際に使用するための第2
の手段を設け、 上記第3群の数に等しい上記順次複数のメモリアドレ
スリクエストの各々からのビット数を上記第1のアドレ
スレジスタへ転送し、上記複数のメモリアドレスリクエ
ストの少なくとも2つのリクエスト中に上記第4群の列
アドレスビットを上記手段内に維持し、 上記第1のアドレスレジスタ手段内の上記第3群のビ
ットと上記第2の手段内の第4群のビットを用いてメモ
リ素子をアクセスする、段階より成る前記方法。
(18) 行アドレスと列アドレスによりアドレス指定可
能な複数のメモリ素子より成るメモリアレイ内のメモリ
素子をリフレッシュする方法において、 アドレス指定可能な複数のメモリ素子の内容を保持す
るために第1のロード可能なアドレスラッチを設け、 複数のビットを保持し、上記第1の行アドレスラッチ
により保持される複数のメモリ素子を指示するに十分な
ビットを含む少なくとも第1の指示レジスタを設け、 上記複数のメモリ素子の少なくとも幾つかをリフレッ
シュして上記第1のアドレスラッチの内容を変更し、 上記リフレッシュに続いて、上記第1のロード可能な
行アドレスラッチを上記第1の指示レジスタの内容中の
エレメントをロードし、上記行アドレスラッチと第1の
指示レジスタの内容が上記リフレッシュの前後で実質上
同一となるようにする、段階より成る前記方法。
【図面の簡単な説明】
第1A図〜H図は、本発明のメモリシステムの簡略線図、 第2図は、第2A〜2D図の構成図、第2A〜2D図は、制御バ
スではなくデータパスを示す本発明のメモリシステムの
概略ブロック線図、 第3図は本発明によるCAMヒットを有するメモリリード
処理のフロー線図、 第4図は本発明によるCAMヒットを有するメモリライト
処理のフロー線図、 第5図は本発明によるCAMミスを有するメモリリード処
理のフロー線図、 第6図は本発明によるDRAMリフレッシュサイクルのフロ
ー線図、 第7図はMEOP状態マシーンの状態線図、 第8図は受信状態マシーンの状態線図、 第9図はリフレッシュ状態マシーンの状態線図、 第10A図は仮想アドレスの概略線図、 第10B図は物理アドレスの概略線図、 第10C図はRAMにより使用されるアドレスの概略線図、 第11A図はCAMTagレジスタ内にストアされるビット形成
の図、 第11B図はCAMPhyAdrレジスタ内にストアされるビット形
成図、 第12図は分散エントリとタグアレイを有するPTCの概略
ブロック線図。 2……セグメントアドレス、4……ページアドレス、5
……ワードアドレス、6……物理ページアドレス、4…
…行アドレスラッチ、11……コンパレータ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アイ コー ヤマモト アメリカ合衆国 カリフォルニア州 95051 サンタ クララ ロキンヴァー アベニュー 3436 (56)参考文献 特開 平1−119843(JP,A) 特開 昭63−208144(JP,A) 特開 昭58−68287(JP,A) 特開 昭63−98048(JP,A)

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】複数の仮想または物理アドレス・リクエス
    トを受信可能なコンピュータ・メモリ・システムであっ
    て、 その全てが共通の物理行アドレスを有する複数のメモリ
    ・ロケーションを指定することができる行アドレス・ラ
    ッチを少なくとも一つ備えた行および列アドレス指定が
    可能なランダム・アクセス・メモリ、 前記複数のアドレス・リクエストの少なくとも第1およ
    び第2のアドレス・リクエスト中に前記共通の物理行ア
    ドレスに対応する一つの行アドレスの少なくとも一部を
    記憶するレジスタであって、その内容が、第1の期間中
    に仮想アドレスの少なくとも一部および前記第1の期間
    と異なる第2の期間中に前記仮想アドレスと異なる物理
    アドレスの少なくとも一部を含む少なくとも第1のレジ
    スタ、ならびに 前記複数の仮想または物理アドレス・リクエストの一方
    の少なくとも一部からなる、アドレス・リクエストの少
    なくとも一部を受信し、かつ、アドレス・リクエストの
    前記少なくとも一部と前記第1のレジスタの少なくとも
    一部とを比較して、前記アドレス・リクエストによって
    指定された前記メモリ・ロケーションが前記複数のメモ
    リ・ロケーションに含まれるかどうかを判定するコンパ
    レータ、 を含み、 前記コンパレータは、前記複数の仮想または物理アドレ
    ス・リクエストの前記一方が仮想アドレス・リクエスト
    であるときに、アドレス・リクエストの前記少なくとも
    一部と前記第1のレジスタの前記少なくとも一部とを比
    較するために使用され、かつ、前記複数の仮想または物
    理アドレス・リクエストの前記一方が物理アドレス・リ
    クエストであるときに、アドレス・リクエストの前記少
    なくとも一部と前記第1のレジスタの前記少なくとも一
    部とを比較するために使用されるものである、 コンピュータ・メモリ・システム。
  2. 【請求項2】前記共通の物理行アドレスの少なくとも一
    部を記憶する少なくとも第2の記憶レジスタをさらに含
    む、 請求項1に記載のコンピュータ・メモリ・システム。
  3. 【請求項3】少なくとも一つの行アドレス・ラッチを有
    する高速ページ・ダイナミック・ランダム・アクセス・
    メモリ・アレイを設け、 その内容が、第1の期間中に仮想アドレスの少なくとも
    一部を含み、かつ、前記第1の期間とは異なる第2の期
    間中に前記仮想アドレスとは異なる物理アドレスの少な
    くとも一部を含む第1の仮想/物理アドレス・レジスタ
    であって、少なくとも第1の行アドレス・ラッチにより
    保持される行と対応する行アドレスの少なくとも一部を
    保持する少なくとも第1の仮想/物理アドレス・レジス
    タを設け、 メモリ・リクエスト・アドレスから選択された少なくと
    もいくつかのビットと前記仮想/物理アドレス・レジス
    タの内容を比較し、前記選択されたビットが同一である
    場合に第1の信号を生成し、前記選択されたビットが同
    一でない場合に第2の信号を生成し、 前記メモリ・リクエスト・アドレスが、複数の仮想また
    は物理アドレス・リクエストの一つを含むものであり、
    前記複数の仮想または物理アドレス・リクエストの前記
    一つが仮想アドレス・リクエストの場合には、前記比較
    は、前記メモリ・リクエスト・アドレスから選択された
    前記少なくともいくつかのビットと前記仮想/物理アド
    レス・レジスタの内容との比較を含むものであり、前記
    複数の仮想または物理アドレス・リクエストの前記一つ
    が物理アドレス・リクエストの場合には、前記比較は、
    前記メモリ・リクエスト・アドレスから選択された前記
    少なくともいくつかのビットと前記仮想/物理アドレス
    ・レジスタの内容との比較を含むものであり、 前記第1の信号に続いて列アドレス・ストローブを前記
    行アドレス・ラッチへアサートする、 ステップを含むメモリ・アクセス方法。
  4. 【請求項4】前記メモリ・アレイを設けるステップが、
    複数の行アドレス・ラッチを設けるステップを含み、 前記仮想/物理アドレス・レジスタを設けるステップ
    が、各行アドレス・ラッチについて一つの仮想/物理ア
    ドレス・レジスタを設けるステップを含み、 前記比較するステップが、前記選択されたビットを前記
    複数の仮想/物理レジスタのそれぞれの内容と比較し
    て、前記仮想/物理アドレスのいずれの内容も前記選択
    されたビットと等しくない場合に、第3の信号を生成す
    るステップを含み、 前記第3の信号に応じて少なくとも第1の行アドレス・
    ラッチの内容を変更するステップをさらに含む、 請求項3に記載のメモリ・アクセス方法。
JP2176093A 1989-07-03 1990-07-03 コンピュータメモリシステム Expired - Lifetime JPH087718B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US375428 1982-05-06
US07/375,428 US5329629A (en) 1989-07-03 1989-07-03 Apparatus and method for reading, writing, and refreshing memory with direct virtual or physical access

Publications (2)

Publication Number Publication Date
JPH03135642A JPH03135642A (ja) 1991-06-10
JPH087718B2 true JPH087718B2 (ja) 1996-01-29

Family

ID=23480857

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2176093A Expired - Lifetime JPH087718B2 (ja) 1989-07-03 1990-07-03 コンピュータメモリシステム

Country Status (6)

Country Link
US (1) US5329629A (ja)
EP (1) EP0407119B1 (ja)
JP (1) JPH087718B2 (ja)
AU (1) AU637616B2 (ja)
CA (1) CA2020275C (ja)
DE (1) DE69031411T2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5619445A (en) * 1970-12-28 1997-04-08 Hyatt; Gilbert P. Analog memory system having a frequency domain transform processor
US5907512A (en) * 1989-08-14 1999-05-25 Micron Technology, Inc. Mask write enablement for memory devices which permits selective masked enablement of plural segments
US5535354A (en) * 1991-03-11 1996-07-09 Digital Equipment Corporation Method for addressing a block addressable memory using a gray code
US5410664A (en) * 1993-03-31 1995-04-25 Intel Corporation RAM addressing apparatus with lower power consumption and less noise generation
JPH0778106A (ja) * 1993-09-08 1995-03-20 Hitachi Ltd データ処理システム
MY112118A (en) * 1993-12-23 2001-04-30 Hitachi Global Storage Tech Netherlands B V System and method for skip-sector mapping in a data recording disk drive.
JPH07281948A (ja) * 1994-04-06 1995-10-27 Mitsubishi Electric Corp メモリ制御装置
US5506747A (en) * 1994-12-15 1996-04-09 Northern Telecom Limited Provision of FIFO buffer in RAM
US5765182A (en) * 1995-04-13 1998-06-09 Lsi Logic Corporation Interleaving memory on separate boards
US5617348A (en) * 1995-07-24 1997-04-01 Motorola Low power data translation circuit and method of operation
US6125425A (en) * 1996-03-29 2000-09-26 Intel Corporation Memory controller performing a mid transaction refresh and handling a suspend signal
JPH10240612A (ja) * 1997-02-27 1998-09-11 Canon Inc データ読出装置及び方法とそれを用いた印刷装置
US6173356B1 (en) * 1998-02-20 2001-01-09 Silicon Aquarius, Inc. Multi-port DRAM with integrated SRAM and systems and methods using the same
US6230237B1 (en) * 1998-09-09 2001-05-08 3Dfx Interactive, Inc. Content addressable memory with an internally-timed write operation
US6477598B1 (en) * 2000-07-20 2002-11-05 Lsi Logic Corporation Memory controller arbitrating RAS, CAS and bank precharge signals
US6625685B1 (en) * 2000-09-20 2003-09-23 Broadcom Corporation Memory controller with programmable configuration
US6493814B2 (en) * 2001-03-08 2002-12-10 International Business Machines Corporation Reducing resource collisions associated with memory units in a multi-level hierarchy memory system
US7346746B2 (en) * 2002-04-26 2008-03-18 Infineon Technologies Aktiengesellschaft High performance architecture with shared memory
US7120068B2 (en) * 2002-07-29 2006-10-10 Micron Technology, Inc. Column/row redundancy architecture using latches programmed from a look up table
US6961280B1 (en) 2003-12-08 2005-11-01 Altera Corporation Techniques for implementing address recycling in memory circuits
US7225287B2 (en) * 2005-06-01 2007-05-29 Microsoft Corporation Scalable DMA remapping on a computer bus
US20070044003A1 (en) * 2005-08-04 2007-02-22 Jack Doweck Method and apparatus of detecting and correcting soft error
US20110035557A1 (en) * 2009-08-05 2011-02-10 Nokia Corporation Fragmentation reduction using virtual sectors for static data
JP2011175450A (ja) * 2010-02-24 2011-09-08 Renesas Electronics Corp メモリアクセスシステムおよびメモリアクセス制御方法
US9880900B2 (en) 2015-12-08 2018-01-30 Nvidia Corporation Method for scrubbing and correcting DRAM memory data with internal error-correcting code (ECC) bits contemporaneously during self-refresh state
US9823964B2 (en) 2015-12-08 2017-11-21 Nvidia Corporation Method for memory scrub of DRAM with internal error correcting code (ECC) bits during either memory activate and/or precharge operation
US10049006B2 (en) 2015-12-08 2018-08-14 Nvidia Corporation Controller-based memory scrub for DRAMs with internal error-correcting code (ECC) bits contemporaneously during auto refresh or by using masked write commands
US11721384B2 (en) 2020-04-17 2023-08-08 Advanced Micro Devices, Inc. Hardware-assisted dynamic random access memory (DRAM) row merging
US20240104023A1 (en) * 2022-09-26 2024-03-28 Advanced Micro Devices, Inc. A/D Bit Storage, Processing, and Modes

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3893084A (en) * 1973-05-01 1975-07-01 Digital Equipment Corp Memory access control system
US4453230A (en) * 1977-12-29 1984-06-05 Tokyo Shibaura Electric Co., Ltd. Address conversion system
US4292674A (en) * 1979-07-27 1981-09-29 Sperry Corporation One word buffer memory system
DE3138973A1 (de) * 1981-09-30 1983-04-21 Siemens AG, 1000 Berlin und 8000 München Vlsi-gerechter onchip mikroprozessorcachespeicher und verfahren zu seinem betrieb
JPS58102380A (ja) * 1981-12-11 1983-06-17 Hitachi Ltd 仮想記憶管理方法
JPS59207082A (ja) * 1983-05-10 1984-11-24 Nec Corp アドレス変換装置
US4725945A (en) * 1984-09-18 1988-02-16 International Business Machines Corp. Distributed cache in dynamic rams
US4991081A (en) * 1984-10-31 1991-02-05 Texas Instruments Incorporated Cache memory addressable by both physical and virtual addresses
US4637024A (en) * 1984-11-02 1987-01-13 International Business Machines Corporation Redundant page identification for a catalogued memory
JPS61206057A (ja) * 1985-03-11 1986-09-12 Hitachi Ltd アドレス変換装置
US4774653A (en) * 1985-08-07 1988-09-27 Hewlett-Packard Company Hybrid hardware/software method and apparatus for virtual memory address translation using primary and secondary translation buffers
JPS62222344A (ja) * 1986-03-25 1987-09-30 Hitachi Ltd アドレス変換機構
US4774659A (en) * 1986-04-16 1988-09-27 Astronautics Corporation Of America Computer system employing virtual memory
US4803621A (en) * 1986-07-24 1989-02-07 Sun Microsystems, Inc. Memory access system
JPS6398048A (ja) * 1986-10-14 1988-04-28 Matsushita Electric Ind Co Ltd 半導体記憶装置
JPH0812636B2 (ja) * 1986-12-24 1996-02-07 株式会社東芝 仮想記憶制御方式の計算機システム
JPH0721777B2 (ja) * 1987-02-25 1995-03-08 横河電機株式会社 キヤツシユ・メモリ制御装置
US4920477A (en) * 1987-04-20 1990-04-24 Multiflow Computer, Inc. Virtual address table look aside buffer miss recovery method and apparatus
US4839796A (en) * 1987-07-16 1989-06-13 Icon International, Inc. Static frame digital memory
JPH01119843A (ja) * 1987-11-04 1989-05-11 Pfu Ltd アドレス変換装置
US4985825A (en) * 1989-02-03 1991-01-15 Digital Equipment Corporation System for delaying processing of memory access exceptions until the execution stage of an instruction pipeline of a virtual memory system based digital computer

Also Published As

Publication number Publication date
EP0407119B1 (en) 1997-09-10
AU5809190A (en) 1991-01-03
CA2020275C (en) 1996-08-27
CA2020275A1 (en) 1991-01-04
DE69031411D1 (de) 1997-10-16
JPH03135642A (ja) 1991-06-10
EP0407119A2 (en) 1991-01-09
AU637616B2 (en) 1993-06-03
EP0407119A3 (en) 1992-09-23
DE69031411T2 (de) 1998-02-12
US5329629A (en) 1994-07-12

Similar Documents

Publication Publication Date Title
JPH087718B2 (ja) コンピュータメモリシステム
US4685082A (en) Simplified cache with automatic update
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US5586294A (en) Method for increased performance from a memory stream buffer by eliminating read-modify-write streams from history buffer
EP0175080B1 (en) Microcomputer memory and method for its operation
US5136700A (en) Apparatus and method for reducing interference in two-level cache memories
US20070094450A1 (en) Multi-level cache architecture having a selective victim cache
CN109582214B (zh) 数据访问方法以及计算机系统
US5251310A (en) Method and apparatus for exchanging blocks of information between a cache memory and a main memory
US5805855A (en) Data cache array having multiple content addressable fields per cache line
JP2002150771A (ja) Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
JPS624745B2 (ja)
US6493791B1 (en) Prioritized content addressable memory
US6332179B1 (en) Allocation for back-to-back misses in a directory based cache
US5761714A (en) Single-cycle multi-accessible interleaved cache
JPS6111865A (ja) メモリアクセス制御方式
US5890221A (en) Method and system for offset miss sequence handling in a data cache array having multiple content addressable field per cache line utilizing an MRU bit
JP2000501539A (ja) アドレス競合検出を持つ多重ポート・キャッシュメモリ
EP0535701A1 (en) Architecture and method for combining static cache memory and dynamic main memory on the same chip (CDRAM)
EP0474356A1 (en) Cache memory and operating method
US20010034808A1 (en) Cache memory device and information processing system
JPH10143428A (ja) 省電力用のメモリ制御システムおよびメモリ制御回路
JP3967921B2 (ja) データ処理装置及びデータ処理システム
GB2215099A (en) Distributed cache architecture
JPH04324187A (ja) ダイナミックram

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 13

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 14

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110129

Year of fee payment: 15

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110129

Year of fee payment: 15