JPH05108484A - キヤツシユメモリ - Google Patents

キヤツシユメモリ

Info

Publication number
JPH05108484A
JPH05108484A JP3162456A JP16245691A JPH05108484A JP H05108484 A JPH05108484 A JP H05108484A JP 3162456 A JP3162456 A JP 3162456A JP 16245691 A JP16245691 A JP 16245691A JP H05108484 A JPH05108484 A JP H05108484A
Authority
JP
Japan
Prior art keywords
memory
cache
array
memories
cache memory
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
JP3162456A
Other languages
English (en)
Inventor
Eran Yarkoni
エラン・ヤーコニ
Nabeel Sakran
ナビール・サクラン
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JPH05108484A publication Critical patent/JPH05108484A/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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • G06F12/0669Configuration or reconfiguration with decentralised address assignment
    • G06F12/0676Configuration or reconfiguration with decentralised address assignment the address being position dependent
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/601Reconfiguration of cache memory

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)

Abstract

(57)【要約】 【目的】 マイクロプロセッサ用のキャッシュ制御器と
キャッシュメモリを得ることである。 【構成】 1つの基板の上に形成されたキャッシュ制御
器を含むキャッシュメモリである。アレイに複数のメモ
リを使用できる。メモリ自体はアレイ内の別のメモリの
数と、アレイ内の各メモリの相対的な位置とを判定す
る。この情報から、各メモリはそれのセットフィールド
の範囲と、それのタグフィールドのサイズとをセットす
る。これはリセットにより行われ、構成情報が、中央に
記憶されることなしに、ソフトウェアにとって明らかな
やり方で、メモリ自体の間に分布される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、とくにマイクロプロセ
ッサ用のキャッシュ制御器およびキャッシュメモリの分
野に関するものである。
【0002】
【従来の技術】本発明のキャッシュ制御器およびキャッ
シュメモリはインテル(Intel)386(商標)マイク
ロプロセッサに使用することを意図するものであるが、
ここで説明する発明は他の処理装置にも使用できる。イ
ンテル・コーポレーションはインテル386マイクロプ
ロセッサに使用する部品番号82835の高性能32ビ
ットキャッシュ制御器を製造している。この部品は32
キロバイトキャッシュメモリに関連して用いられる。イ
ンテル82385キャッシュ制御器およびこの従来技術
の回路のいくつかにおいて用いられる信号の多くが、本
発明の制御器に含まれる。インテル82385キャッシ
ュ制御器が、インテル・コーポレーションにより出版さ
れた「マイクロプロセッサおよび周辺装置ハンドブッ
ク、1巻、マイクロプロセッサ」4−287ページ以降
に記載されている。インテル82385およびその他の
従来技術のキャッシュ制御器では、制御器はマイクロプ
ロセッサのローカルバスとシステムバスの間のインター
フェイスとしても機能する。制御器はキャッシュメモリ
との通信も行う。制御器はローカルバスインターフェイ
スと、システムバスインターフェイスと、キャッシュデ
ィレクトリと、キャッシュ制御回路とを典型的に含む。
キャッシュメモリとしては通常のスタチックメモリが用
いられる。
【0003】本発明はインテル82385から発展した
ものであって、キャッシュ制御器とキャッシュメモリは
1枚のチップ上に製造される。更に、キャッシュアレイ
の一部として、それらのチップを1枚、2枚、または4
枚使用できる。チップ自体はこのアレイ内に他の部材が
いくつあるかを決定でき、各チップはアレイ内のそれの
相対的な位置を決定する。
【0004】従来技術は、付加回路を認識し、かつ付加
回路を調整するシステムに回路を付加できるような数多
くのコンピュータ装置を開示している。たとえば、マイ
クロプロセッサは、希望の幅のマイクロプロセッサ(た
とえば、4ビットまたは8ビットのマイクロプロセッ
サ)を供給するためにいくつかの回路を結合できるよう
にする「ビットスライス」回路で製作される。メモリが
コンピュータ装置へしばしば付加され、その装置は付加
メモリに適応する。ある場合には、バスにメモリがいく
つあるかを決定するためにマイクロプロセッサが種々の
アドレス場所に書き込み、かつそれらのアドレス場所か
ら読み出す。他の場合には、メモリモジュールはそれの
資源に関する情報を含む。
【0005】後でわかるように、本発明はキャッシュメ
モリを構成するための独特の方法と装置を提供するもの
である。アレイ内にあるキャッシュメモリの数と、各キ
ャッシュメモリの相対的な位置とについての情報はキャ
ッシュメモリの間に分布され、その情報は実際に全体の
装置にとって明らかである。各キャッシュメモリは同一
であるから、メモリがアレイ内に置かれる前にそのメモ
リを予めプログラムしたり、その他のやり方で識別する
必要はない。
【0006】
【発明の概要】1枚の基板の上に形成されるキャッシュ
制御器/キャッシュメモリについて説明する。複数のそ
れらのメモリをアレイに採用できる。各メモリは複数の
タグフィールドと複数のセットフィールドを記憶するた
めにキャッシュディレクトリを含む。典型的なように、
入来アドレスと比較するために、セットフィールドは入
来アドレスを基にして、記憶されているタグフィールド
の所定に1つを選択する。キャッシュメモリのための制
御手段が、アレイ内の他のキャッシュメモリに対するキ
ャッシュメモリの相対的な位置を表す信号を発生し、セ
ットフィールドの範囲とタグフィールドのサイズとをそ
れらの信号を基にして制御する。好適な実施例において
は、アレイ内のキャッシュメモリの相対的な位置を表す
信号がメモリ自体内で発生され、その信号は中央には記
憶されず、セットフィールドの範囲とタグフィールドの
サイズがソフトウェアにとって明きらかであるやり方で
調整される。
【0007】以下に、1つのチップの上に製造されるキ
ャッシュ制御器/キャッシュメモリについて説明する。
以下の説明においては本発明をより完全に説明するため
に、特定の2進状態、ビットの数などのような数多くの
特定の詳細について説明する。しかし、それらの特定の
詳細なしで本発明を実施できることが当業者には明きら
かであろう。他の場合には、本発明をあいまいにしない
ようにするために、周知の回路は説明しなかった。
【0008】
【実施例】
発明の概観 1つの基板の上に製造されるキャッシュ制御器とキャッ
シュメモリについて説明する。(以下の説明において
は、制御器とキャッシュの組み合わせすなわちキャッシ
ュメモリのことを制御器/キャッシュメモリまたはキャ
ッシュメモリと簡単に呼ぶことがある。)好適な実施例
においては制御器/キャッシュメモリは金属−酸化物−
半導体(MOS)技術、詳しくいえば相補MOS技術を
用いて製造される。キャッシュメモリを製造するために
複数の周知のプロセスのうちの任意の1つを用いること
ができる。好適な実施例においては、各制御器/キャッ
シュメモリは制御器と16Kバイトのキャッシュメモリ
を含む。好適な実施例の多くの面は従来技術において周
知であり、従来のキャッシュ制御器、とくにインテル8
2835およびインテル486(商標)のキャッシュメ
モリにおいて用いられるから、説明は省略する。
【0009】一般に、本発明の制御器/キャッシュメモ
リはマイクロプロセッサのローカルバスとシステムバス
の間に結合される。1つ、2つまたは4つの同じ制御器
/キャッシュメモリを使用できる。好適な実施例におい
ては、キャッシュメモリアレイ内のキャッシュメモリの
数はシステムにおいてはほぼ明きらかである。キャッシ
ュディレクトリのタグフィールドのサイズとセットフィ
ールドの範囲はアレイ内のキャッシュメモリの数に応じ
て変化する。好適な実施例においては、実際に2ビット
(A12とA13)が、タグフィールドの一部であることか
らセットフィールドの一部であることへ変えられる。そ
れらのビットはアレイ内のキャッシュメモリの種々のも
のを可能状態にするために用いられる。
【0010】キャッシュ制御器とキャッシュメモリの好
適な実施例 先に述べたように、各チップまたは各基板はキャッシュ
制御器と16Kバイトのキャッシュメモリを含むインテ
ル82835の諸特徴のほとんどが本発明に含まれる。
また、最大構成(アレイ内に4つの制御器/キャッシュ
メモリ)においては4ギガバイトの主メモリが64Kの
キャッシュへマップされるように、制御器/キャッシュ
メモリは4ギガバイトの主メモリをそれの16Kキャッ
シュへマップできる。キャッシュメモリはコードとデー
タが統一される。キャッシュメモリが主メモリの最も最
近に更新されたバージョンを有することを保証するキャ
ッシュ一貫性機構を制御器は提供する。一貫性のサポー
トは、制御器/キャッシュメモリへ結合されているマイ
クロプロセッサの性能に影響を及ぼさない。制御器/キ
ャッシュメモリの内部構造は、それのサイズがインテル
486(商標)のサイズの2倍であることを除き、イン
テル486(商標)の市販されている制御器/キャッシ
ュメモリに多くの面で類似する。たとえば、本発明の制
御器/キャッシュメモリは四方セット連想であって、疑
似LRU交換アルゴリズムを採用する。ラインサイズは
16バイトであって、あらゆるミス条件に対してフルラ
インからフェッチされる。制御器/キャッシュメモリの
書き込み機構は、4ディーブ書込みバッファにより強め
られるアルゴリズムを介する書き込みを用いる。キャッ
シュの一貫性は、インテル486(商標)において採用
されているsahold/seads#スヌーピング機構により与え
られる。実際の性能においては、キャッシュメモリにデ
ータが存在するならば、本発明の制御器/キャッシュメ
モリはインテル386(商標)により零待ち状態、33
mHz 、非パイプライン読みだしサイクルで動作できる。
キャッシュメモリにデータが存在しないとすると、性能
はシステムバスの待ち時間に依存することが明きらかで
ある。書き込みバッファが充たされなければ、メモリの
書き込みサイクルは零待ち時間で実行できる。
【0011】次に、本発明を理解するために必要な制御
器/キャッシュメモリの部分が示されている図7を参照
する。データが記憶されるキャッシュ10がメモリ10
として示されている。四方連想キャッシュのためにメモ
リの4つのバンクが用いられる。典型的な場合のよう
に、データの各ビットが6このトランジスタで構成され
る双安定セルに記憶される場合に、データ記憶装置はス
タッチクランダムアクセスメモリを含む。
【0012】データはセットセレクタ12によりキャッ
シュメモリにおいてアドレスされる。セットセレクタ1
2は複数のセットフィールド(8ビットワイド)を含
む。アクセスビットA4〜A11 の各組み合わせに対し
て、セットセレクタ12はキャッシュメモリ10の4つ
のデータバンク内のデータと、タグ記憶装置内の4つの
タグフィールドとを選択する。
【0013】キャッシュ制御器において一般的に行われ
ているように、キャッシュメモリ10にデータが存在す
るかどうかを判定するために、タグフィールドが入来す
るアドレスと比較される。比較器15が入来するアドレ
スビットA12〜A31を4つのタグフィールドと比較す
る。この比較の結果として、ラインセレクタ11へ結合
されている線19により示されているようにキャッシュ
メモリの4つのバンクの1つを選択するか、線18によ
り示されているようにミスが出される。アドレスビット
2とA3はセレクタ14による二重語選択のためのもの
である。データはバス17を介してキャッシュメモリへ
結合される。
【0014】後で詳しく説明するように、キャッシュメ
モリがアレイに付加されているから、アドレスビットA
12とA13がタグビットからセットビットへ実際に移動す
る。更に詳しくいえば、イネイブルメモリ回路16によ
り示されているように制御器/キャッシュメモリの特定
の1つを可能状態にするためにA12とA13が用いられ
る。
【0015】制御および構成回路20がアレイ内の制御
器/キャッシュメモリの数とアレイ内の特定のメモリの
相対的な位置(たとえば、1の1、4の2など)を判定
する。制御および構成回路20は、線/端子21上のC
ONF#と、線/端子22上のリセット信号と、線/端
子23上のクロッキング信号またはタイミング信号を受
け、線/端子24上の Ready0#信号を受けて、それを
供給する。それらの信号から、制御および構成回路20
はその特定のメモリがアレイ内の1の1、2の2、4の
1、4の2、4の3、4の4であるかどうかを判定す
る。この情報はイネイブルメモリ回路16へ結合され、
後で説明するように、ビットA12 とA13がどのように
して用いられるかを決定する。たとえば、それら2つの
制御器/キャッシュメモリがアレイ内にあるとすると、
2つのメモリのうちのどれが選択されるかをビットA12
が用いられ、ビットA13はタグフィールドの一部分のま
まであって、比較動作に関与する。線29と30にそれ
ぞれある信号XA12とXA13が制御および構成回路20
から出て、比較器がビットA12とA13の少なくとも1つ
を検討するかどうかを決定する。また、たとえば、アレ
イ内に4つの制御器/キャッシュメモリがあるものとす
ると、ビットA12とA13が比較動作の部分として無視さ
れる。
【0016】また、後で説明するように、アレイ内に2
つ以上の制御器/キャッシュメモリがあるものとする
と、最初のメモリが制御信号をシステムバスへ供給す
る。したがって、特定の制御器/キャッシュメモリが
「1の1」であることを示す信号が線28へ供給される
ものとすると、システムバス制御信号ドライバ28が起
動させられて、アレイ内のすべてのメモリに対して、
「1の1」制御器/キャッシュメモリから信号をシステ
ムバスへドライブできるようにする。制御および構成回
路20が本発明を含んでいる限りその回路により実現さ
れる論理が図6に示されている。
【0017】次に説明するように、リセットされると、
各制御器/キャッシュメモリがアレイ内のそれの相対的
な位置と、アレイ内のメモリの数(4の1、4の2な
ど)とを決定する。ブロック34により示されているよ
うに、リセット信号が高いと、制御および構成回路20
が端子21における電位を検出する。その電位が第1の
所定の信号であるとすると、(好適な実施例において
は、アース電位、すなわち、CONF#が起動状態にあ
る)、メモリはアレイ内の最初(NO.1)のメモリで
ある。(この時にはアレイ内の他のメモリの数はNO.
1のメモリによっては知らされていない。)第1の所定
の信号の検出が図6における線51と、ブロック35に
よるそのメモリがアレイ内のNO.1であるとの認識に
より示される。ブロック37により示されているよう
に、この第1の制御器/キャッシュメモリは、次の4つ
のクロッキング信号の存在中に生ずる Ready0#信号の
数を数えて、アレイ内の他の制御器/キャッシュメモリ
の数を決定する。とくに、線41により示されているよ
うに、 Ready0#信号が数えられなかったとすると、そ
のメモリがそのアレイ内のただ1つのメモリであり、2
つの信号が検出されると、線3により示されているよう
にアレイ内には4つのメモリが存在することになる。
【0018】他方、端子21が検出されたときにリセッ
トされて、第2の所定の信号(とくに、5ボルト)が見
出されると、制御器/キャッシュメモリはそれが第1の
制御器/キャッシュメモリではないことを知り、ステッ
プ36へ線を経て進む。
【0019】リセット後の次のクロック信号において
は、構成端子における電位が、NO.1メモリによるも
のを除き、メモリにより再び検出される。ブロック36
により示されているように、CONF#信号が高レベル
である(線49)と、構成端子が2クロックサイクルの
後で再びサンプルされる。このサンプリングにおいて、
CONF#信号が高レベルである(線47)とメモリは
「4の3」である(ブロック45)。この回路は Ready
0#信号を端子24へ供給し(線49)、ブロック44
により示されているようにこのメモリは今は Ready0#
信号を数える(構成端子における電位に対してもはや反
応しないとすると)。そうするとメモリはそれがアレイ
内NO.2であることを知る。Ready0#信号が受けら
れないとすると、メモリは「2の2」であり、1つの R
eady0#信号が数えられたとすると、メモリは「4の
2」である。
【0020】これとは対照的に、ステップ36におい
て、CONF#信号が低レベルである(線50により示
されている)と、構成端子が2クロックサイクルの後で
再びサンプルされる。このサンプリングにおいて、CO
NF#信号が高レベルである(線47)とメモリは「4
の3」である(ブロック45)。ステップ39におい
て、CONF#信号が低レベルである(線48)とする
と、このメモリはReady0#信号を供給し(ブロック4
0)、メモリは「4の4」である事を知る(ブロック4
6)。
【0021】図6に示されている論理は周知の回路を用
いて容易に実現され、先に述べたように、それは図7の
制御および構成回路20の部分である。
【0022】図1と4を参照して、アレイに制御器/キ
ャッシュメモリがただ1つあるものとすると、タグフィ
ールドはアドレスビットA12〜A31で構成され、セット
フィールドはアドレスビットA4〜A11で構成される。
それからアドレスビットA4〜A11はセット(256セ
ットの1)を選択する。
【0023】次に図2を参照する。アレイに制御器/キ
ャッシュメモリが2つあるものとすると、タグフィール
ドはいっそう狭くなり、アドレスビットA13〜A31で構
成され、実際にA12が動かされてセットフィールドの一
部になる。とくに、2つのキャッシュメモリのうちの1
つを図7のイネイブルメモリ回路により選択するために
12が用いられる。これはA12が最高順位のセットビッ
トであることに等しい。したがって、A12が低いとする
と、第1のメモリが選択され、図6の線42により示さ
れているように、セットフィールドは0〜255であ
る。一方、A12が高いとすると、第2のメモリが選択さ
れ、図6のブロック44から出ている「2の2」線によ
り示されているように、セットフィールドは265〜2
55である。
【0024】次に図3と5を参照して、アレイに制御器
/キャッシュメモリが4つあるものとする。この場合に
は、タグフィールドはアドレスビットA14〜A31で構成
され、実際にセットフィールドの実行的に一部である。
それら2つのビットは、図3に示されているように、ア
レイ内の4つのメモリのうちの1つを選択するために用
いられる。たとえば、特定のメモリが「4の4」である
ことをそのメモリが知ったとすると、そのメモリはこの
情報を制御および構成回路20からイネイブルメモリ回
路16へ送り、A12とA13が高いときにメモリを可能状
態にする。同様に、A12とA13が高いときに「4の1」
が可能状態にされると、図6の線43により示されてい
るようにセットフィールドに0〜25の範囲を持たせ
る。4つのメモリのアレイ内の第2のメモリの場合に
は、このメモリはA12が高くて、A13が低いときに可能
状態にされるから、セットフィールドは256〜511
の範囲を有する。同様に、第3のメモリはA12が低く
て、A13が高いときに可能状態にされて、セットフィー
ルドは512〜767の範囲を有する。最後に、A12
13が高いときに第4のメモリが可能状態にされ、セッ
トフィールドは768〜1023の範囲を有する。図5
において、タグフィールドの右端部における複数の
「X」が用いられて、メモリが4つの場合にはA12とA
13が比較の部分としては無視され、シフトされてセット
フィールドの部分として動作する。
【0025】マイクロプロセッサ装置における本発明の
制御器/キャッシュメモリの使用 A.構 成 ここで、本発明の制御器/キャッシュメモリ60の1つ
を用いている典型的なマイクロプロセッサ装置が示され
ている図8を参照する。この制御器/キャッシュメモリ
60はローカルバス57とシステムバス62へ結合され
る。インテル386(商標)のようなプロセッサ55が
ローカルバス57へ結合され、インテル387(商標)
のようなコプロセッサ56もこのカルバスへ結合され
る。システムバス62がDRAMメモリのような主メモ
リ63へ結合される。他の周辺装置がシステムバス62
へ典型的に結合される。図8に示す構成の場合には、ア
レイ内の第1(NO.1)のメモリの場合のように、構
成端子21は接地される(アレイ内のメモリの数とは無
関係に)。図8に示す構成の場合には、 Ready0#端子
24と Ready1#端子25が一緒に接続されると共に、
プロセッサとコプロセッサへ接続される。(以後の例に
おいては、それらの Ready線は直接接続されていないよ
うに示されている。)ローカルバス装置により用いられ
るアドレスまたは通知されないアクセスを要求するアド
レスに対してアクセスが行われる時に、デコーダ65が
線67においてLBA#とNPI#の少なくとも1つを
常にアクセスする。そのデコーダのプログラミングは、
メモリが用いられている装置の特定の実現に依存する。
キャッシュできないアドレスをアクセスするため、また
は保護されているアドレスを書き込むために、信号SK
EN#とSWB#が供給される。
【0026】重要なことに、アレイに用いられている第
1のメモリ60の構成端子21が接地されることに注目
すべきである。したがって、リセットされると、図6の
線51により示されているように、CONF#が高くな
って、メモリ60がアレイ内の最初のメモリであること
をそのメモリへ知らせる。先に述べたように、図7の線
にある信号がドライバ28メモリNO.1に制御信号を
バス62へ供給させる。図8の装置に対する次の数サイ
クルの間は、線24においてレディ信号は検出されない
から、図6の線41により表されている条件に適合す
る、すなわちメモリ60がそのアレイ内の唯一のキャッ
シュメモリである。
【0027】図9には、メモリ60a(NO.1)と6
0b(NO.2)として示されている2つのキャッシュ
メモリを含むコンピュータ装置が示されている。システ
ムへ結合するそれらのメモリの間の唯一の違いは、それ
らのメモリの構成端子の接続にある。メモリ60aの構
成端子21aが接地され、メモリ60bの構成端子21
bがリセット端子へ接続される。他の場合には、両方の
メモリは装置のバスと線へ同じように接続される。たと
えば、両方のメモリはリセット端子にリセット信号とク
ロッキング信号(図示せず)を受ける。両方のメモリの
Ready#端子が論理回路68へ結合される。この回路
は、プロセッサとコプロセッサへの(アレイ以外の装置
からの)他のレディ信号の論理和を取ることができるよ
うにするために、線69にあるような他の入力を受ける
通常のORゲートである。論理回路68の出力である R
eady1#信号が線/端子25へ結合される。
【0028】後でわかるように、第2のメモリの構成端
子がリセット線へ結合されるという事実により、その第
2のメモリがアレイ内のそれの位置を決定できるように
される。図10にはクロッキング信号74が示されてい
る。その信号は両方のメモリへ加えられる。また、両方
のメモリのリセット端子とメモリ60aの構成端子へ結
合されているリセット信号75も示されている。リセッ
ト信号が高い時であるリセット中に、両方のメモリ60
aと60bの制御回路が、図6のブロック34により表
されているように、それぞれの構成端子にある信号を検
出する。メモリ60aはアース電位である、線にある電
位を検出する。これは、矢印72により示されている。
この信号(CONF#)の相補信号が図6の線51によ
り高いとして示されて、メモリ60aへそれの状態がア
レイ内の第1(NO.1)のメモリであるとして知らせ
る。
【0029】一方、この時には、メモリ60bは(依然
として、活動状態にある)、矢印72で示されているよ
うに、それの構成端子にある高い電位を検出する。した
がって、メモリ60bはそれがアレイ内のNO.1のメ
モリではないと判定する。リセット信号が活動状態でな
くなった後で、線73により示されているようにクロッ
キング信号の制御の下に、それの構成端子にある電位を
ふたたび検出する。この時には、リセット信号の電位が
下がっているから、メモリ60bは電位が低いことを発
見する。この低い信号の相補信号が図6に線49により
示されている。それからメモリ60bは信号を線24へ
供給する。その信号は図10に波形76として示され、
図6のブロック38により表されている。(この実施例
においては、波形76が供給される前に2つのクロック
サイクルが生ずる。)波形76は線24においてメモリ
60aにより検出される。1カウントを数えたメモリ6
0aは(アレイには他のメモリがないから、初めの数サ
イクルにはレディ信号は1つだけある。)、図6の42
により示されているようにアレイには2つのメモリがあ
る。同様に、余分のレディ信号がないから、NO.2の
メモリがアレイ内で「2の2」であることをそのメモリ
が判定する。
【0030】次に、コンピュータ装置が再び示されてい
る図11を参照する。しかし今度はそのコンピュータ装
置はアレイに4つの制御器/キャッシュメモリ60a、
60b、60c、60dを有する。前記した例と同様
に、前の例におけるように、それらの各メモリはローカ
ルバスとシステムバスへ結合される。それらのメモリは
リセット信号である Ready1#信号をリセット端子に受
け、クロック信号をクロッキング端子にうける(後の2
つの端子はこの図には示されていない。)図11の装置
におけるそれらのメモリの結合に関する限りは、それら
のメモリの間の唯一の違いは、メモリ60aの構成端子
21aが接地され、メモリ60bの構成端子21bがリ
セット線へ結合され、メモリ60cの構成端子21cが
Ready0#線へ結合され、最後にメモリ60dの構成端
子21dがVcc電位(5ボルト)へ結合されることで
ある。
【0031】図12に示されている波形が、図6に示さ
れている論理図と共に、図11に示されている装置のリ
セット時に行われる初期化を示す。
【0032】矢印71と72により示されているよう
に、リセット信号が高いと、メモリ60aと60bがそ
れぞれの構成端子を検出する。この間に、矢印78によ
り示されているように、メモリ60dは高い電位である
波形80を検出する(この時には Ready1#は高い)。
したがって、メモリ60cは図6のブロック36へ進
む。同様に、メモリ60cは、矢印79と波形81によ
り示されているように、正の電位を検出する。その電位
の相補電位は低い。したがって、メモリ60cはブロッ
ク36において論理的にある。矢印73により示されて
いる時刻においては、メモリ60cと60dはそれの構
成端子を再び検出する。矢印73により示されている時
刻においては、波形80と81の電位は変化せず、した
がって、それらの信号に関連する論理は図6のブロック
39へ進む。矢印82により示されているように2クロ
ックサイクルの後で、メモリ60bがReady0#信号
(波形76)を出しているから、波形80の電位が低く
なる。したがって、メモリ60cが、図6の線47で示
されているように、「4の3」であると判定する。それ
から、メモリ60dが Ready0#信号(波形77)を出
すことにより、アレイ内に4つのメモリがあることをメ
モリ60aと60bへ知らせる。メモリ60dの構成端
子は常に高い(CONF#が低い)から、そのメモリが
アレイ内で「4の4」であることをそのメモリは知る。
【0033】B.バスドライビング ローカルバス57においては、 Ready0#信号が全ての
キャッシュメモリによりドライブされる唯一の信号であ
る。名目上は、 Ready0#線24はドライブされず、そ
れよりもこのメモリの外部のプルアップ装置がその線を
Vccに維持する。典型的には、抵抗がその線をVcc
へ結合する。キャッシュ可能な読みだしサイクルの間
は、 Ready1#(線25)が活動状態であることを検出
するまでは、選択されたメモリが Ready0#を活動状態
にドライブし、それから、選択されたメモリが1クロッ
クの間 Ready0#を非活動状態にドライブし、それから
線5がメモリによって解放され、外部のプルアップ装置
によって引き上げられるようにする。別のサイクルにお
いては、第1(NO.1)のメモリが Ready0#を同様
にドライブする。データバスにおいては、選択されたメ
モリが、読みだしサイクルの「T2」部分の間にデータ
バスをドライブし、それにより、読みだしサイクルが書
き込みサイクルに続く時にプロセッサと競合しないよう
にする。
【0034】先に述べたように、システムバス62にお
いては、第1のメモリがSADS#を除くすべてのシス
テムバスをドライブする。したがって、競合の可能性は
SADS#信号に対してのみ存在する。SADS#線は
通常はどのメモリによってもドライブされず、浮動状態
のままにされ、この信号を伝える線は引き上げ装置へ結
合される。アレイ内の、第1のメモリを含むすべてのメ
モリは、SADS#線を活動状態にドライブした後で、
それを1クロックの間非活動状態にドライブし、それか
らそれを浮動状態にする。線が一対になっている間は、
ミスを検出するメモリによりSADS#線信号はドライ
ブされる。書き込みサイクルを含めた他のすべてのサイ
クルにおいては、SADS#線は第1のメモリによって
ドライブされる。
【0035】以上、コンピュータ装置において利用でき
る種々の信号を構成端子へ簡単に接続することにより、
4つの各制御器/キャッシュメモリはメモリのアレイに
あるメモリの数と、アレイ内のメモリの相対的な位置を
判定する。更に、各メモリはコンピュータ装置にとって
完全に明らかなやり方で、タグフィールドとセットフィ
ールドを調整して付加キャッシュメモリを提供する。
【図面の簡単な説明】
【図1】本発明において1つのキャッシュメモリが用い
られた時にタグフィールドと、セットフィールドと、線
選択ビットに対するアドレスビット割り当てを示す。
【図2】本発明において2つのキャッシュメモリが用い
られた時にタグフィールドと、セットフィールドと、線
選択ビットに対するアドレスビット割り当てを示す。
【図3】本発明において4つのキャッシュメモリが用い
られた時にタグフィールドと、セットフィールドと、線
選択ビットに対するアドレスビット割り当てを示す。
【図4】アレイ内に1つのキャッシュメモリがある時の
タグフィールドの範囲とセットフィールドのサイズを示
す。
【図5】アレイ内に4つのキャッシュメモリがある時の
タグフィールドの範囲とセットフィールドのサイズを示
す。
【図6】本発明のキャッシュ制御器により実現される論
理を示す。
【図7】本発明の制御器/キャッシュメモリを示すブロ
ック図である。
【図8】本発明のキャッシュメモリを1つ含むマイクロ
コンピュータ装置のブロック図である。
【図9】本発明のキャッシュメモリを2つ含むマイクロ
コンピュータ装置のブロック図である。
【図10】図9のブロック図に関連する複数の波形を示
す。
【図11】本発明のキャッシュメモリを4つ含むマイク
ロコンピュータ装置のブロック図である。
【図12】図11のブロック図に関連する複数の波形を
しめす。
【符号の説明】
10 データキャッシュメモリ 11 ラインセレクタ 12 セットセレクタ 13 タグ記憶装置 14 二重語セレクタ 15 比較器 20 制御および構成回路 26 イネイブルメモリ回路 28 システムバス制御信号ドライバ 55 プロセッサ 56 コプロセッサ 60 制御器/キャッシュメモリ 63 主メモリ 64、65 デコーダ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 複数のタグフィールドを記憶するため、
    および記憶されている前記タグフィールドの所定の1つ
    を入来するアドレスを基にして選択する複数のセットフ
    ィールドを記憶するためのキャッシュディレクトリと、 このキャッシュディレクトリへ結合され、前記選択され
    た記憶されているタグフィールドと前記入来するアドレ
    スを検査する比較器手段と、 前記ディレクトリと前記比較器手段へ結合され、データ
    を記憶するデータ記憶アレイと、 アレイ内の前記キャッシュメモリの他方の前記キャッシ
    ュメモリに対する相対的な位置を表す少なくとも1つの
    信号を受けるために結合され、前記セットフィールドの
    範囲と前記タグフィールドのサイズを制御する制御手段
    と、を備えるキャッシュメモリ。
  2. 【請求項2】 データ記憶アレイと、 入来アドレスを受け、前記アレイ内のデータを選択し、
    前記アドレスを記憶されているアドレスと比較する選択
    手段と、 前記メモリアレイ内に存在する前記メモリの数を表す少
    なくとも1つの制御信号を受け、少なくとも2つのメモ
    リが前記アレイ内に存在することを前記制御信号が示す
    時に、前記アドレス中の少なくとも1つのビットの状態
    を基にして前記メモリを可能状態にするためのビットへ
    前記ビットを変換する制御手段と、を備えるキャッシュ
    メモリ。
  3. 【請求項3】 データ記憶装置と、タグフィールド記憶
    装置と、データとタグフィールドとを選択するセットフ
    ィールドとを有するキャッシュメモリにおいて、 前記メモリアレイ内の前記メモリの数を示す少なくとも
    1つの制御信号を供給する第1の制御手段と、 前記メモリに用いられる前記タグフィールドからのビッ
    トの数を、前記第1の制御手段からの前記制御信号の関
    数として変える第2の制御手段と、を備えるキャッシュ
    メモリの改良。
JP3162456A 1990-06-07 1991-06-07 キヤツシユメモリ Pending JPH05108484A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53475090A 1990-06-07 1990-06-07
US534750 1995-09-27

Publications (1)

Publication Number Publication Date
JPH05108484A true JPH05108484A (ja) 1993-04-30

Family

ID=24131372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3162456A Pending JPH05108484A (ja) 1990-06-07 1991-06-07 キヤツシユメモリ

Country Status (2)

Country Link
US (3) US5448711A (ja)
JP (1) JPH05108484A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009157775A (ja) * 2007-12-27 2009-07-16 Hitachi Ltd プロセッサ

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5590310A (en) * 1993-01-14 1996-12-31 Integrated Device Technology, Inc. Method and structure for data integrity in a multiple level cache system
US5539894A (en) * 1993-04-20 1996-07-23 Sun Microsystems, Inc. Method and apparatus for optimizing a sector cache tag, block and sub-block structure base on main memory size
US5778424A (en) * 1993-04-30 1998-07-07 Avsys Corporation Distributed placement, variable-size cache architecture
US5678020A (en) * 1994-01-04 1997-10-14 Intel Corporation Memory subsystem wherein a single processor chip controls multiple cache memory chips
US5832534A (en) * 1994-01-04 1998-11-03 Intel Corporation Method and apparatus for maintaining cache coherency using a single controller for multiple cache memories
US5805880A (en) * 1996-01-26 1998-09-08 Dell Usa, Lp Operating system independent method for avoiding operating system security for operations performed by essential utilities
US5915262A (en) * 1996-07-22 1999-06-22 Advanced Micro Devices, Inc. Cache system and method using tagged cache lines for matching cache strategy to I/O application
US6202125B1 (en) 1996-11-25 2001-03-13 Intel Corporation Processor-cache protocol using simple commands to implement a range of cache configurations
US6209072B1 (en) 1997-05-06 2001-03-27 Intel Corporation Source synchronous interface between master and slave using a deskew latch
US5990802A (en) * 1998-05-18 1999-11-23 Smartlite Communications, Inc. Modular LED messaging sign panel and display system

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3866183A (en) * 1973-08-31 1975-02-11 Honeywell Inf Systems Communications control apparatus for the use with a cache store
US4360870A (en) * 1980-07-30 1982-11-23 International Business Machines Corporation Programmable I/O device identification
US4468729A (en) * 1981-06-29 1984-08-28 Sperry Corporation Automatic memory module address assignment system for available memory modules
GB2103397A (en) * 1981-07-31 1983-02-16 Philips Electronic Associated Digital data aparatus with memory selection
US4463420A (en) * 1982-02-23 1984-07-31 International Business Machines Corporation Multiprocessor cache replacement under task control
US4493026A (en) * 1982-05-26 1985-01-08 International Business Machines Corporation Set associative sector cache
US4724518A (en) * 1983-07-29 1988-02-09 Hewlett-Packard Company Odd/even storage in cache memory
US4985829A (en) * 1984-07-31 1991-01-15 Texas Instruments Incorporated Cache hierarchy design for use in a memory management unit
US4682283A (en) * 1986-02-06 1987-07-21 Rockwell International Corporation Address range comparison system using multiplexer for detection of range identifier bits stored in dedicated RAM's
US4953073A (en) * 1986-02-06 1990-08-28 Mips Computer Systems, Inc. Cup chip having tag comparator and address translation unit on chip and connected to off-chip cache and main memories
US4928239A (en) * 1986-06-27 1990-05-22 Hewlett-Packard Company Cache memory with variable fetch and replacement schemes
US4853846A (en) * 1986-07-29 1989-08-01 Intel Corporation Bus expander with logic for virtualizing single cache control into dual channels with separate directories and prefetch for different processors
US4811209A (en) * 1986-07-31 1989-03-07 Hewlett-Packard Company Cache memory with multiple valid bits for each data indication the validity within different contents
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
US5019971A (en) * 1987-04-13 1991-05-28 Prime Computer, Inc. High availability cache organization
US4954944A (en) * 1987-04-23 1990-09-04 Nec Corporation Cache control circuit in cache memory unit with unit for enabling to reduce a read access time for cache memory
US5168560A (en) * 1987-05-29 1992-12-01 Amdahl Corporation Microprocessor system private split cache tag stores with the system tag store having a different validity bit for the same data line
US4980823A (en) * 1987-06-22 1990-12-25 International Business Machines Corporation Sequential prefetching with deconfirmation
US5157774A (en) * 1987-09-28 1992-10-20 Compaq Computer Corporation System for fast selection of non-cacheable address ranges using programmed array logic
US4964038A (en) * 1987-10-28 1990-10-16 International Business Machines Corp. Data processing system having automatic address allocation arrangements for addressing interface cards
US5113510A (en) * 1987-12-22 1992-05-12 Thinking Machines Corporation Method and apparatus for operating a cache memory in a multi-processor
US4951248A (en) * 1988-03-04 1990-08-21 Sun Microsystems, Inc. Self configuring memory system
US5202968A (en) * 1988-03-30 1993-04-13 Kabushiki Kaisha Toshiba Expansion system
US5029070A (en) * 1988-08-25 1991-07-02 Edge Computer Corporation Coherent cache structures and methods
US4945512A (en) * 1988-09-07 1990-07-31 Unisys Corporation High-speed partitioned set associative cache memory
KR900008516A (ko) * 1988-11-01 1990-06-04 미다 가쓰시게 버퍼 기억장치
US5202960A (en) * 1988-11-02 1993-04-13 Digital Equipment Corp Method and apparatus for plotting polygon edges on a pixelized grid
US5067078A (en) * 1989-04-17 1991-11-19 Motorola, Inc. Cache which provides status information
US5136700A (en) * 1989-12-22 1992-08-04 Digital Equipment Corporation Apparatus and method for reducing interference in two-level cache memories
US5175859A (en) * 1990-05-01 1992-12-29 Integrated Device Technology, Inc. Apparatus for disabling unused cache tag input/output pins during processor reset by sensing pull-down resistors connected to disabled pins
US5014195A (en) * 1990-05-10 1991-05-07 Digital Equipment Corporation, Inc. Configurable set associative cache with decoded data element enable lines
US5175833A (en) * 1990-06-07 1992-12-29 Intel Corporation Apparatus for determining relative position of a cache memory in a cache memory array

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009157775A (ja) * 2007-12-27 2009-07-16 Hitachi Ltd プロセッサ
JP4484923B2 (ja) * 2007-12-27 2010-06-16 株式会社日立製作所 プロセッサ
US8234453B2 (en) 2007-12-27 2012-07-31 Hitachi, Ltd. Processor having a cache memory which is comprised of a plurality of large scale integration

Also Published As

Publication number Publication date
US5418928A (en) 1995-05-23
US5448711A (en) 1995-09-05
US5414828A (en) 1995-05-09

Similar Documents

Publication Publication Date Title
US7120754B2 (en) Synchronous DRAM with selectable internal prefetch size
US5014195A (en) Configurable set associative cache with decoded data element enable lines
US6981089B2 (en) Memory bus termination with memory unit having termination control
US5367494A (en) Randomly accessible memory having time overlapping memory accesses
US7464231B2 (en) Method for self-timed data ordering for multi-data rate memories
US6219765B1 (en) Memory paging control apparatus
US5329489A (en) DRAM having exclusively enabled column buffer blocks
KR19990083209A (ko) 멀티-웨이 캐시 장치 및 방법
US5588128A (en) Dynamic direction look ahead read buffer
US5845317A (en) Multi-way cache expansion circuit architecture
JPH05108484A (ja) キヤツシユメモリ
US6219764B1 (en) Memory paging control method
US5367655A (en) Memory and associated method including an operating mode for simultaneously selecting multiple rows of cells
US6425056B2 (en) Method for controlling a direct mapped or two way set associative cache memory in a computer system
US5175833A (en) Apparatus for determining relative position of a cache memory in a cache memory array
US6000013A (en) Method and apparatus for connecting memory chips to form a cache memory by assigning each chip a unique identification characteristic
US20080201528A1 (en) Memory access systems for configuring ways as cache or directly addressable memory
EP0660330A2 (en) Data processing system having a memory with a low power operating mode and method therefor
JP3688736B2 (ja) データメモリ
US6292867B1 (en) Data processing system
US6484238B1 (en) Apparatus and method for detecting snoop hits on victim lines issued to a higher level cache
US6606680B2 (en) Method and apparatus for accessing banked embedded dynamic random access memory devices
US20020016886A1 (en) Method and apparatus for simultaneously accessing the tag and data arrays of a memory device
US20030061453A1 (en) Method and apparatus for arbitrating a memory bus
JPH05210572A (ja) メモリ制御装置