JP2000501539A - アドレス競合検出を持つ多重ポート・キャッシュメモリ - Google Patents

アドレス競合検出を持つ多重ポート・キャッシュメモリ

Info

Publication number
JP2000501539A
JP2000501539A JP10515453A JP51545398A JP2000501539A JP 2000501539 A JP2000501539 A JP 2000501539A JP 10515453 A JP10515453 A JP 10515453A JP 51545398 A JP51545398 A JP 51545398A JP 2000501539 A JP2000501539 A JP 2000501539A
Authority
JP
Japan
Prior art keywords
port
bank
memory
access
cache
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
JP10515453A
Other languages
English (en)
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 JP2000501539A publication Critical patent/JP2000501539A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0851Cache with interleaved addressing
    • 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

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のポート及び第2のポートを通って第1のメモリバンクに同時にアドレスすることを検出する、そしてこの同時にアドレスしたことを検出するのに応じて予め定められた数のクロックサイクルに対しマイクロプロセッサの動作を一時停止する。競合解決回路は、一時停止中に第1のポートを通して第1のバンクへのアクセスを許容し、一時停止が終わった後で第2のポートを通してのアクセスを許容する。一般的に競合解決回路は、マイクロプロセッサが一時停止している間の引き続くクロックサイクル中に、ポートの順番は下から上へ優先して、第1のメモリバンクにアクセスすることを意図するポートを通して第1のメモリバンクにアクセスすることを許容する。第1のバンクへのアクセスを意図する1個又はそれより大きい数のポートが、マイクロプロセッサの一時停止する時間の前か後に、アクセスを許容されることもできる。各バンクは単一ポートのものである。バンクは重なり合うことのないアドレス空間を持つ、そしてキャッシュブロック内の語は複数のバンクに分散するようにアドレスされる。

Description

【発明の詳細な説明】 アドレス競合検出を持つ多重ポート・キャッシュメモリ 本発明はキャッシュメモリ(cache memory)を持つ処理システムに関する、更に 特定して云えば多重アクセスポート(multiple access ports)を持つキャッシュ に関する。 キャッシュとは、通常は主メモリ(main memory)に記憶されているアドレスや 命令やデータ等にアクセスするのにプロセッサが必要とする有効時間を減少させ るために、プロセッサと主メモリとの間に置かれる小さい高速メモリのことであ る。例えば、プロセッサが主メモリから語(word)を読み出すときに、その語及び その近くの語が1ブロックとして主メモリからキャッシュへ読み出される。典型 的には、プロセッサが次に意図するのは、そのブロック内の近くの語のうちの1 つにアクセスすることである、という確率が高い。この引用の局所性という特性 の故に、プロセッサが直接にキャッシュと共に引き続くデータトランザクション に従事することになり易いから、主メモリバスのトラフィックは減少する。キャ ッシュへのアクセスは主メモリへのアクセスよりも少ない時間しか掛からない。 その結果、キャッシュを用いることはプロセッサのスループット(throughput)を 増加させる。 多くの新形のマイクロプロセッサは同一のプロセッサ・クロックサイクル内に 複数の命令を実行する。幾つかの例では、プロセッサはメモリ演算を同時に実行 しようとするかも知れない。これらの場合には、プロセッサはキャッシュメモリ 内に記憶してある複数の語に同時にアクセスする必要があるかも知れない。従っ て、キャッシュは複数のポートを含み、各ポートが別々のデータトランザクショ ンを管理することになろう。 多重ポートキャッシュは単一の多重ポートSRAMとして構成することができる。 しかしそのような構成は動作が極めて遅く、また比較的大きいチップ面積を占有 する。それに代わってAipperspachその他に与えられた米国特許第5,359,557号に 記載されているように、二重ポート(dual-port)キャッシュが2個の単一ポー トメモリアレイを持って構成され、その各単一ポートメモリアレイがキャッシュ のポートの1つに対応する。この2個のアレイは同じアドレス空間を持つ。この 煩わしい配列は、データがキャッシュポートのうちの1つで変形されるときにも 、アレイが同じデータを記憶することを保証するために、複雑なデータの首尾一 貫性(coherency)のある回路を必要とする。更に、同じデータの冗長なコピイを 記憶するために2個のアレイを使用することは、不必要に大きいチップ領域を占 有することになる。 従って、多重ポート・キャッシュメモリを実現する更に小型の更に効率的な手 段を見出すことが切望される。 本発明は多重ポート・キャッシュメモリを提供する。その多重ポート・キャッ シュはマイクロプロセッサシステムで動作し、複数のメモリバンクと、バンクへ のアクセスを可能にするための複数のポートとを含む。競合検出回路が第1のポ ート及び第2のポートを通って第1のメモリバンクに同時にアドレスすることを 検出する、そしてこの同時にアドレスしたことを検出するのに応じて予め定めら れた数のクロックサイクルに対しマイクロプロセッサの動作を一時停止する。競 合解決回路は、一時停止中に第1のポートを通して第1のバンクへのアクセスを 許容し、一時停止が終わった後で第2のポートを通してのアクセスを許容する。 一般的に競合解決回路は、マイクロプロセッサが一時停止している間の引き続く クロックサイクル中に、ポートの順番は下から上へ優先して、第1のメモリバン クにアクセスすることを意図するポートを通して第1のメモリバンクにアクセス することを許容する。第1のバンクへのアクセスを意図する1個又はそれより大 きい数のポートが、マイクロプロセッサの一時停止する時間の前か後に、アクセ スを許容されることもできる。各バンクは単一ポートのものである。バンクは重 なり合うことのないアドレス空間を持つ、そしてキャッシュブロック内の語は複 数のバンクに分散するようにアドレスされる。 本発明の目的、特徴、及び利点は、以下の詳細な説明及び本発明の構造並びに 動作の実例を示す以下の図面を見れば、当業者にとって明瞭であろう。それらの 図面とは: 図1が、本発明の多重ポート・キャッシュを持つコンピュータシステムを説明 する図である。 図2が、本発明の多重ポート・キャッシュに結合するプロセッサを説明するブ ロック図である。 図3Aが、バンクの競合のないときのキャッシュのタイミングを説明する時間ダ イアグラムを示す図である。 図3Bが、バンクの競合のあるときのキャッシュのタイミングを説明する時間ダ イアグラムを示す図である。 本発明は、複数のメモリバンクを持つ多重ポート・キャッシュメモリを提供す る。以下の記述には、本発明の完全な理解を可能とするための数多くの詳細が示 される。しかし、これらの特定の詳細は本発明を実行するために必要とされるも のではない、ということを当業の分野で通常の手腕を有する者は理解するであろ う。更に、周知のエレメント、デバイス、処理ステップ等々は、本発明を曖昧に することを避けるために詳細には示されない。 図1は、本発明の多重ポートCPU 100,主メモリ102,主メモリ・インターフェー ス104,及び多重ポート・キャッシュ106 を持つコンピュータシステムを示す。主 メモリ・インターフェース104 は、CPUアクセスがキャッシュを見落としたとき 、又はCPUが新しいデータをキャッシュに書き込むときに、キャッシュの首尾一 貫性(coherency)を維持するために、キャッシュ106 と主メモリ102 との間の情 報交換を管理する。キャッシュ106 は、2ポートを持つとして図示されているが 、当業者は本発明が任意の数のポートを持つキャッシュに容易に拡張されること を認識するであろう。 プロセッサは多重並列演算を実行する能力があるのを好適とし、従ってキャッ シュ内に記憶されている1語より多い数の語に同時にアクセスする必要もあるで あろう。(茲には図示しない)他の構成では、別々のプロセッサ又は他のそれに 替わるものの各々が1つの対応するキャッシュポートにアクセスを要することも あろう。 図2は、本発明のキャッシュ106 の一実施例に結合するプロセッサ100 の詳細 ブロック図である。この例ではこのキャッシュは2方路セット連想(two-way set -associative)キャッシュである。従来の技術とは異なり、本発明のキャッシュ は、同じデータを記憶する二重ポートSRAM又は冗長な単一ポートメモリを用いな い。その代わりに、本発明は多重単一ポートメモリバンクを用い、その各バンク は重なり合わないアドレス空間のためのデータを記憶する。各バンクは任意のポ ートからアクセスできることを好適とする。2個のポートが同じバンクにアクセ スしようと意図しない限り、すべてのポートはキャッシュに同時アクセスを実行 できる。バンクの競合が生じるとき、すなわち2個のポートが同じバンクにアク セスしようと意図するときには、キャッシュは以下に述べるようにしてアクセス のタイミングを制御する。 本発明によればCPU 100 は、第1のアドレスA0,及び第2のアドレスA1と表 される多重アクセスをキャッシュ106 に行うことができる。この例のキャッシュ では、これらのアドレスは2個のポート201 及び203 に対応する。この例では、 キャッシュ自体が第1のバンク200,bankOと第2のバンク202,bank1とを含む。 茲では、4バイトが1つの32ビット語を含むときに各バンクが8キロバイト(KB) のデータを保持する。従って各バンクは2K 語を記憶する。更に、各キャッシュ ブロックは2語の長さであり、2ブロックがこの例の2方路セット連想キャッシ ュの1セットを含む。当業者は、本発明が他のメモリ構成にも応用可能であるこ と、及び特にバンクの数が必ずしもポートの数に等しい必要はないことを認識す るであろう。 各バンクは、3状態(tri-state)バス駆動器206 を通して複数の読み出しバス2 04 に結合しており、各読み出しバス204 はポートのうちの1つに対応している 。各バンクは更に、書き込みマルチプレクサ210 を通して複数の書き込みバス20 8に結合しており、各書き込みバス208 はポートのうちの1つに対応している。 読み出しバス204 及び書き込みバス208 は、CPU 100 の入力/出力ポートに結 合している(この結合は図面を簡明にするため図示してない)。 バンクにアドレスするための回路は、対応するポート専用のアドレス回路と、 両方のポートに共通のアドレス回路とに分割される。この実施例では、各ポート が二重タグRAM 212 に結合し、各タグアレイ(tag array)214が2方路セット連想 キャッシュの一方の方路に対応している。各アレイからのタグは、対応する比較 器216 に供給され、該比較器はそのタグを対応するポートアドレスのタグフィー ルドと比較する。その結果のヒット(hit)信号が、各バンクに対するヒットマル チプレクサ218 の対応するポート入力に進む。茲でのヒット信号は2ビットの「 ワンホット」(“one hot")信号であって、其処では最大1ビットが論理1の値を とることがあろう。各バンクはまた、各ポートアドレスのセット指標のフィール ドを受信する列(row)マルチプレクサ220 にも結合する。更に読み出し/書き込 み制御信号が各CPU ポートから各バンクに対する読み出し/書き込みマルチプレ クサ(これは図示されない)に進み、メモリ読み出し演算とメモリ書き込み演算 とのどちらが実行されようとするのかを指示する。1つの実施例では各ポートか らの書き込み可能化信号(write enable signal)が書き込みマルチプレクサの対 応する入力に進む。同様に読み出し可能化信号が読み出しマルチプレクサの対応 する入力に進む。それらのマルチプレクサの出力はそれぞれ、対応するバンクの 書き込み可能化入力及び読み出し可能化入力に結合する。茲では読み出しマルチ プレクサと書き込みマルチプレクサとを一緒にして「読み出し/書き込みマルチ プレクサ」と呼ぶことにする。 両ポートに共通のアドレス回路は競合検出回路222 を含み、これはポートアド レスのバンクアドレス部分を受信する。この例では各バンクアドレスは 1:2バン ク復号器224 を通り、それに応じてこれがバンク選択信号を生成する。例えば、 もし0バンクアドレスビットが bank0の選択を表すならば、そのときには上記バ ンク復号器224 がその bank0から1を出力し、その bank1から0を出力するであ ろう。各ポートの復号器からのバンク選択信号(bd)は、各バンクに対して対応す る競合解決(resolution)回路226 に与えられる。該競合解決回路226 の出力は、 各バンクに対する列マルチプレクサ220,ヒットマルチプレクサ218,及び読み出し /書き込みマルチプレクサ(これは図示されない)を制御して、どのポートが該 バンクにアクセスを持つかを定める。競合解決回路226 はまた、読み出しバス20 4 に対する3状態駆動器206(図2は能動高<active high>を仮定する)及び書き込 みバスマルチプレクサ210 をも制御して、選定されたポートに対応するバスへの アクセスを保証する。 図2のキャッシュのメモリ組織化の一例では、各語が4バイトを含む8KBのデ ータを記憶する。各キャッシュブロックは2語を含む。このキャッシュは2方路 セット連想キャッシュであるから、このメモリは、1セット当たり2ブロックを 持つ1K セットを含む。アドレスのビット2がバンクを選択し、ビット3-12がセ ットのうちの1つを選択する。アドレスのビット13-31 はタグ比較に用いられて キャッシュ中にアドレスされたブロックが存在することを示す。 本発明のキャッシュの動作が、図3A及び図3Bに示すタイミング図によって説明 される。図3Aはバンクの競合のないキャッシュのタイミングを示す。図3Bはバン クの競合のあるキャッシュのタイミングを示す。この両者のいずれの場合にも、 CPUは、第1の CPUポート228 からのアドレスA0と、第2の CPUポート230 か らのアドレスA1とを発出することにより、キャッシュの同時アクセスを実行し ようと意図する。これらのアドレスは内部 CPUバス232 を通ってそれぞれ第1の キャッシュポート201 及び第2のキャッシュポート203 により受信される。この 例では、サイクル0 中にはアドレスの第2ビットは競合検出回路222 に与えられ て、両方のポートが同じメモリバンクにアクセスしようと意図しているか否かを 判定する。茲で、A0[2]=0 且つA1[2]=1 と仮定する。その場合にはport0に対す るバンクアドレス復号器224 はバンク選択信号bd[0][0]=1 を bank0 200に対す る競合解決回路226 に出力し、バンク選択信号bd[0][1]=0 を bank1 202に対す る競合解決回路226 に出力するであろう。またport1 201に対するバンクアドレ ス復号器224 はバンク選択信号bd[1][0]=0 を bank0 200に対する競合解決回路2 26 に出力し、バンク選択信号bd[1][1]=1 を bank1 202に対する競合解決回路22 6 に出力するであろう。サイクル0 においては競合解決回路226 は、どちらのポ ート入力が各バンクに対する列マルチプレクサ220,ヒットマルチプレクサ218,及 び読み出し/書き込みマルチプレクサにより進められるかを定めて、バンクと通 信する正しい読み出しバス又は書き込みバスを(読み出し演算と書き込み演算の どちらが実行されるかに依存して)選択する。 この2ポートの例に対して、ポート選択信号sel[j][i] はもし sel[j][i]=1な らば入力ポートjがバンクiにアクセスを与える、ものとするときに、競合解決 回路226 は次の論理方程式: sel[0][1] = bd[0][i] AND NOT(sel_ctrl[1]) sel[1][i] = (NOT(bd[0][i])AND bd[1][i])OR sel_ctrl[1] を成り立たせる。バンク競合が起こったときに、上記競合解決回路はアドレスさ れたバンクにアクセスすることを先ず低い番号のポート,port0に許す。このとき のクロックサイクルではsel_ctrl[1] =0である。次のサイクルでは、それを覆 す(override)信号sel_ctrl[1] が値1をとって、ポート1への優先アクセスを 与える。 図2では、2ビットの信号sel0は bank0に対する2個のポート選択信号を表し 、2ビットの信号sellは bank1に対する2個のポート選択信号を表す。これらの 組み合わせた信号がマルチプレクサへの適切なポート入力を選択する。又はその 代わりに、次に掲げる表1の論理を実現する任意の回路により競合解決論理が実 行される。 この表において“x/y"というのは、1つのクロックサイクルでポート選択信号 がxという値をとり、その次のクロックサイクルでyという値をとる、というこ とを示す。 この例では、bd[0][0]=1 且つbd[1][0]=0 であり、また、bd[0][1]=0 且つ bd[1][1]=1 である。従って図3Aのサイクル0では、 sel[0][0]=1 sel[0][1]=0 sel[1][0]=0 sel[1][1]=1 となる。 競合がないときには sel ctrlを覆す信号は無効である。その結果、bank0 は port0 にアクセスすることができ、bank1 はport1 にアクセスすることができる 。 総括すれば競合解決回路226 はどのポートが各バンクと通信するかを定める。 この選択はポートアドレスのバンクアドレスのフィールドに基づくのであって、 この例ではそれはビット2 である。それ以外のビットはバンク内部の特定の語に アドレスするのに用いられる。ビット3-12は各ポートに対する二重タグアレイ内 に供給されるセット指標である。この例では1セットが2ブロックを含み、各バ ンク内に1ブロックがある。ビット13-31は二重タグアレイ212 からのタグと比 較されるタグアドレスのフィールドを含む。 もしタグ比較の結果がアレイのうちの1つにヒット(hit)をもたらすならば、 そのヒット信号はブロックの内部の語を選択する。任意の1つのポートに対して キャッシュの見落とし(cache miss)がある場合は、その見落としは該見落としブ ロックをキャッシュに搭載することにより処置される。見落としが生じなかった かのように演算は継続し、ヒットをもたらす。例えば、もし1つの命令が2つの 同時アクセスを意図するならば、1つのポートはヒットし、もう1つのポートは 見落としとなり、その見落としが最初に処置される。それから命令が再開されて 茲に述べるような競合解決回路の演算を伴う2つのヒットをもたらす。 セット指標及びヒット信号は競合解決回路226 により制御されるマルチプレク サを通して正しいバンクへと進む。両方のポートアドレスに対するヒットを仮定 する。サイクル0 の間に、port0 201からのヒット信号 hit0 はヒットマルチプ レクサ218 を通してbank0 200 のヒット入力へと進み、また、port1 203からの ヒット信号 hit1 はヒットマルチプレクサ218 を通してbank1 202のヒット入力 へと進む。port0 201 から読み出され又はport0 201 へ書き込まれるデータはX で表し、また、port1 203 から読み出され又はport1 203 へ書き込まれるデータ はYで表す。サイクル1 の間に、これらのポートの両方がバンクと通信の状態に ある。ここでport0 201 からのデータXがbank0 200 から読み出され又はbank02 00 へ書き込まれ、また、port1 203 からのデータYがbank1 202 から読み出さ れ又はbank1 202 へ書き込まれる。 図3Bは、バンク競合が生じた場合の、本発明のキャッシュの演算を説明するタ イミング図である。この例では両方のポートアドレスが0に等しいと仮定する、 換言すれば両方のポートがbank0 にアクセスしようと意図すると仮定する。これ に応じて競合検出回路222 は次のサイクルすなわちサイクル1 でCPU 100 の演算 を一時停止する(stall)であろう。CPU を一時停止するために競合検出回路222が 用いるメカニズムは、標準キャッシュ制御論理がキャッシュ見落としのときにCP U を一時停止するために用いるのと類似の回路を用いて構築できる。 この例では、A0[2]=A1[2]=0 である。従って、bd[0][0]=1 且つbd[1][0] =1 となり、また、bd[0][1]=0 且つbd[1][1]=0 となる。よって、 sel[0][0]=1 AND N0T (sel_ctrl1) sel[0][1]=0 AND NOT (sel_ctrl1) sel[1][0]=(N0T (1) AND 1) OR sel_ctrl1 sel[1][1]=(NOT (1) AND 0) OR sel_ctrl1 である。 各バンクに対するバンク選択信号は、バンク可能化(enable)入力に供給する出 力を持つ論理和(OR)ゲート250 により、一緒にされて論理和を形成する。もしバ ンクにアクセスしようと意図するポートがないならば、そのときにはバンクは可 能化されない。その結果、bank1 に対する信号sel[1](すなわちsel[0][1] 及び sel[1][1])は効果を持たない。 しかし両方のポートが、bank0 から読み出そうと意図している。両方のポート アドレスにヒットすると仮定しよう。サイクル0 の間に、port0 からのヒット信 号はヒットマルチプレクサ218 を通ってbank0 の hit_bank0 入力へと進み、そ れによりサイクル1 の間にデータ語Xがport0 から出力できる。 その次に、一時停止中に(サイクル1)、sel_ctrlはアサート(assert)され、 それによりサイクル1 中にse10 が port1を選択するよう強制する。図3b及び表1 を参照されたい。その結果、一時停止サイクル1 の間に、port1 からのヒット 信号 hit1 はヒットマルチプレクサ218 を通って bank0の hit_bank0 入力へと 進み、それによりその次のサイクルであるサイクル2 の間にデータ語Yが port1 を通って出力できる。更に、その一時停止サイクルの間に port0に対する読み出 し演算の結果が、バス上のラッチング回路(latchihg)回路(これは図示されない ) により、port0 に対する読み出しバス上にラッチ(latch)される。その結果、por t0 から読み出されたデータXと、port1 から読み出されたデータYとがサイク ル2 の間に同時に出現する。CPU 演算はサイクル1 中には一時停止するから、CP U にとってはサイクル0 の直後のサイクル中に、二重ポートキャッシュアクセス が同時に生じるように見える。 競合の場合には競合解決回路226 が port0に優先アクセスを与える、というこ とに注意されたい。当業者は、競合解決回路226 がいかなる優先順位の場合にも 競合するポートにアクセスを許容できることを認識するであろう。ここに記述す る例ではポートの番号として、低い番号のポートには高い優先アクセスを要する ものを対応させ、高い番号のポートは更に長い時間にわたりアクセスを待つこと がある、ようにしてある。 更に、上記競合解決回路226 は2個のポート間の競合を解決することに限定さ れている訳ではない。K個のポートを持つキャッシュに対して、もしN>2 個の ポートが同じバンクにアクセスしようと意図すれば、そのときは最初に一番低い 番号のポートにアクセスが与えられ、順次ポートの番号を上げて残りの競合ポー トにアクセスを許すように N−1 サイクルにわたって CPUを一時停止する。例え ばK=3 個のポートを持つキャッシュの場合に、各バンクiに対して、バンク毎 に3個のバンク選択信号 bd[0][i],bd[1][i],bd[2][i]が、各ポートに1個宛 ある。また、3個のポート選択信号 sel[0][i],sel[1][i],sel[2][i]があり、 それらはポート0,1,又は2 がそれぞれバンクにアドレスするよう選定されたこと を示すのである。 すべてのバンクに共通に、2個の選択制御信号:sel_ctrl1,sel_ctrl2 があ り、バンク競合の解決の優先度を覆す。もしsel_ctrl1 がアサートされれば、 そのときはポート1が選択される。もし sel_ctrl2 がアサートされれば、その ときはポート0 が選択される。もし sel_ctrl1,sel_ctrl2 のどちらもアサー トされなければ、そのときはポート0 が優先する。 各バンクiに対して: sel[0][i]=bd[i] AND N0T (sel_ctrl1 OR sel_ctrl2) sel[1][i]=(NOT(bd0[i]AND bd1[i])OR sel_ctrl1 sel[2][i]=(NOT(bd0[i] AND NOT(bd1[i]) AND bd2[i]) OR sel_ctrl2 である。 一般的に、K>3 のとき、K個のポートに対して、 各バンクiに対して: 各ポートj(0<j<K)に対して: バンクiの中のポートjの各バンク選択信号 bd[j][i] に対して: 各選択制御信号 sel ctrl[m](m=1,・・・,K−1)に対して: 競合解決回路は出力選択信号 sel[j][i]を次のように生成する、すなわち: sel[0][i]=bd[0][i]AND N0T(scl_ctrl[1]OR sel_ctrl[2]OR...OR sel_ctrl[K- 1] sel[1][i]=(NOT(bd[0][i])AND bd[1][i])OR sel_ctrl[1] sel[2][i]=(NOT(bd[0][i])AND NOT(bd[1][i])AND bd[2][i])OR sel_ctrl[2] sel[j][i]=(NOT(bd[0][i]) AND NOT(bd[1][i]) AND NOT(bd[j-1][i]) AND(bd[j][i])) OR sel_ctrl[j] である。 多くの一時停止サイクルに対し、全体のパフォーマンスを妨げるような多数の バンク競合が生起することが観察される。従って同じ CPUサイクル内のバンク競 合の数を限定することが有利である。本発明の1つの実施例によれば、バンク競 合は、近傍の命令内の変数を異なるバンクのアドレスに割り当てることにより、 コンパイラ及びアプリケーションソフトウェアにおいて避けられる。従って同じ バンクが同じサイクル中でアドレスされることは殆ど考えられない。更に、アド レス空間自体の構成もバンク競合の機会を減らすことに寄与する。低い順位のア ドレスビット、例えば第2ビットを用いてバンクを選択すれば、キャッシュブロ ックの隣接する語はすべてのバンクに適切に分配される。このやり方では、隣接 する語にアドレスすることは異なるバンクにアドレスすることになる。引用の局 所性という性質の故にこの構成は競合の機会を減少させる。 茲では本発明が特定の実施例について記述されているが、本発明の精神及び範 囲から乖離することなく当業者が種々の変形や改作をなし得ることは明らかであ る。例えば、キャッシュは8バンクの8方路セット連想キャッシュとして構成す ることができる。そのときにはアドレスビット6-10がセット指標とされる。各セ ットは各バンク内に2つの列を有する。ビット5がその2つの列のうちの1つを 選択し、ビット2-4がバンクを選択する。アドレスビット11-31がタグの比較に用 いられる。ビット0-1が語の中のバイトに対応する。更に本発明はパイプライン 化されたキャッシュにも応用できる。
───────────────────────────────────────────────────── 【要約の続き】 きる。各バンクは単一ポートのものである。バンクは重 なり合うことのないアドレス空間を持つ、そしてキャッ シュブロック内の語は複数のバンクに分散するようにア ドレスされる。

Claims (1)

  1. 【特許請求の範囲】 1.多重ポート・キャッシュを持つマイクロプロセッサシステムにおいて、該シ ステムは: 複数のメモリバンク; バンクへのアクセスを可能にするための複数のポート; 第1のポート及び第2のポートを通して第1のメモリバンクに同時にアドレ スすることを検出するため、並びにこの同時にアドレスすることの検出に応答 して予め定められた時間だけプロセッサの演算を一時停止するための競合検出 回路; を有して成ることを特徴とするマイクロプロセッサシステム。 2.請求項1に記載のマイクロプロセッサシステムにおいて、該システムは: 上記一時停止の間に第1のポートを通して第1のメモリバンクにアクセスす ることを許容するため、及び上記一時停止が完了した後で第2のポートを通し て第1のメモリバンクにアクセスすることを許容するための競合解決回路; を更に有して成ることを特徴とするマイクロプロセッサシステム。 3.請求項1に記載のマイクロプロセッサシステムにおいて、各バンクは単一ポ ートのものであることを特徴とするマイクロプロセッサシステム。 4.請求項1に記載のマイクロプロセッサシステムにおいて、上記バンクは、キ ャッシュブロックの内部の複数の語が多重バンクの中に分散するようにアドレ スされることを特徴とするマイクロプロセッサシステム。 5.請求項1に記載のマイクロプロセッサシステムにおいて、上記バンクは、重 なり合うことのないアドレス空間を持つことを特徴とするマイクロプロセッサ システム。 6.請求項1,3,4,又は5のうちのいずれか1項に記載のマイクロプロセッ サシステムにおいて、該システムは: プロセッサが一時停止している間の引き続くクロックサイクル中にアクセス の優先順位を上げるために第1のメモリバンクにアクセスすることを意図する ところのポートを通して、該第1のメモリバンクにアクセスすることを許容す るための競合解決回路; を有して成ることを特徴とするマイクロプロセッサシステム。 7.多重ポートメモリにおいて:複数のメモリバンクと;バンクへのアクセスを 可能にするための複数のポートと;第1のポート及び第2のポートを通して第 1のメモリバンクに同時にアドレスすることを検出するための競合検出回路、 及びこの同時にアドレスすることの検出に応答して予め定められた時間だけプ ロセッサの演算を一時停止する信号を出すための出力と;を有して成ることを 特徴とする多重ポートメモリ。 8.請求項7に記載の多重ポートメモリにおいて、該多重ポートメモリは:上記 一時停止の間に第1のポートを通して第1のメモリバンクにアクセスすること を許容するため、及び上記一時停止が完了した後で第2のポートを通して第1 のメモリバンクにアクセスすることを許容するための競合解決回路;を更に有 して成ることを特徴とする多重ポートメモリ。 9.請求項8に記載の多重ポートメモリにおいて、該多重ポートメモリは:プロ セッサが一時停止している間の引き続くクロックサイクル中にアクセスの優先 順位を上げるために第1のメモリバンクにアクセスすることを意図するところ のポートを通して、該第1のメモリバンクにアクセスすることを許容するため の競合解決回路;を有して成ることを特徴とする多重ポートメモリ。
JP10515453A 1996-09-25 1997-09-23 アドレス競合検出を持つ多重ポート・キャッシュメモリ Pending JP2000501539A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US71960996A 1996-09-25 1996-09-25
US08/719,609 1996-09-25
PCT/IB1997/001146 WO1998013763A2 (en) 1996-09-25 1997-09-23 Multiport cache memory with address conflict detection

Publications (1)

Publication Number Publication Date
JP2000501539A true JP2000501539A (ja) 2000-02-08

Family

ID=24890679

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10515453A Pending JP2000501539A (ja) 1996-09-25 1997-09-23 アドレス競合検出を持つ多重ポート・キャッシュメモリ

Country Status (4)

Country Link
EP (1) EP0875030A2 (ja)
JP (1) JP2000501539A (ja)
KR (1) KR19990071554A (ja)
WO (1) WO1998013763A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983723B2 (en) 2014-12-05 2021-04-20 Samsung Electronics Co., Ltd. Memory access control method and apparatus

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19809640A1 (de) * 1998-03-06 1999-09-09 Pact Inf Tech Gmbh Geschwindigkeitsoptimiertes Cachesystem
US6539457B1 (en) * 2000-02-21 2003-03-25 Hewlett-Packard Company Cache address conflict mechanism without store buffers
US6557078B1 (en) * 2000-02-21 2003-04-29 Hewlett Packard Development Company, L.P. Cache chain structure to implement high bandwidth low latency cache memory subsystem
US6446181B1 (en) 2000-03-31 2002-09-03 Intel Corporation System having a configurable cache/SRAM memory
US6606684B1 (en) 2000-03-31 2003-08-12 Intel Corporation Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US7073026B2 (en) 2002-11-26 2006-07-04 Advanced Micro Devices, Inc. Microprocessor including cache memory supporting multiple accesses per cycle
US7769950B2 (en) * 2004-03-24 2010-08-03 Qualcomm Incorporated Cached memory system and cache controller for embedded digital signal processor
US7613065B2 (en) 2005-09-29 2009-11-03 Hynix Semiconductor, Inc. Multi-port memory device
KR100780621B1 (ko) * 2005-09-29 2007-11-29 주식회사 하이닉스반도체 멀티 포트 메모리 소자
KR100754359B1 (ko) * 2006-03-29 2007-09-03 엠텍비젼 주식회사 복수의 공유 블록을 포함하는 다중 포트 메모리 장치
KR101635395B1 (ko) 2010-03-10 2016-07-01 삼성전자주식회사 멀티포트 데이터 캐시 장치 및 멀티포트 데이터 캐시 장치의 제어 방법
KR101788245B1 (ko) 2011-02-25 2017-11-16 삼성전자주식회사 다중 포트 캐시 메모리 장치 및 그 구동 방법
CN102622192B (zh) * 2012-02-27 2014-11-19 北京理工大学 一种弱相关多端口并行存储控制器
US9171594B2 (en) * 2012-07-19 2015-10-27 Arm Limited Handling collisions between accesses in multiport memories

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0668735B2 (ja) * 1987-02-09 1994-08-31 日本電気アイシーマイコンシステム株式会社 キヤツシユメモリ−
US5276850A (en) * 1988-12-27 1994-01-04 Kabushiki Kaisha Toshiba Information processing apparatus with cache memory and a processor which generates a data block address and a plurality of data subblock addresses simultaneously
JP2822588B2 (ja) * 1990-04-30 1998-11-11 日本電気株式会社 キャッシュメモリ装置
US5434989A (en) * 1991-02-19 1995-07-18 Matsushita Electric Industrial Co., Ltd. Cache memory for efficient access with address selectors

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10983723B2 (en) 2014-12-05 2021-04-20 Samsung Electronics Co., Ltd. Memory access control method and apparatus

Also Published As

Publication number Publication date
WO1998013763A3 (en) 1998-06-04
WO1998013763A2 (en) 1998-04-02
EP0875030A2 (en) 1998-11-04
KR19990071554A (ko) 1999-09-27

Similar Documents

Publication Publication Date Title
US5640534A (en) Method and system for concurrent access in a data cache array utilizing multiple match line selection paths
US8032715B2 (en) Data processor
US6321296B1 (en) SDRAM L3 cache using speculative loads with command aborts to lower latency
US5598550A (en) Cache controller for processing simultaneous cache accesses
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
US5668972A (en) Method and system for efficient miss sequence cache line allocation utilizing an allocation control cell state to enable a selected match line
JPH06309216A (ja) 線形ラム・バンクとして使用可能なキャッシュ・メモリを有するデータ・プロセッサ
JP2000501539A (ja) アドレス競合検出を持つ多重ポート・キャッシュメモリ
JPH087718B2 (ja) コンピュータメモリシステム
US6988167B2 (en) Cache system with DMA capabilities and method for operating same
US5761714A (en) Single-cycle multi-accessible interleaved cache
US5809537A (en) Method and system for simultaneous processing of snoop and cache operations
US5161219A (en) Computer system with input/output cache
US5675765A (en) Cache memory system with independently accessible subdivided cache tag arrays
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
US5287512A (en) Computer memory system and method for cleaning data elements
US20020108021A1 (en) High performance cache and method for operating same
JPH03172947A (ja) マイクロコンピュータ・システム
US5696938A (en) Computer system permitting mulitple write buffer read-arounds and method therefor
US6279082B1 (en) System and method for efficient use of cache to improve access to memory of page type
EP0304587B1 (en) Interruptible cache loading
JPH11203200A (ja) 並列プロセッサおよびメモリ制御方法
JPS63240651A (ja) キヤツシユメモリ
JPH04209053A (ja) キャッシュシステム