JPH07502358A - マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ - Google Patents

マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ

Info

Publication number
JPH07502358A
JPH07502358A JP5511814A JP51181493A JPH07502358A JP H07502358 A JPH07502358 A JP H07502358A JP 5511814 A JP5511814 A JP 5511814A JP 51181493 A JP51181493 A JP 51181493A JP H07502358 A JPH07502358 A JP H07502358A
Authority
JP
Japan
Prior art keywords
data
cache
puncture
storage array
address
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
JP5511814A
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 JPH07502358A publication Critical patent/JPH07502358A/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
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0857Overlapped cache accessing, e.g. pipeline by multiple requestors
    • 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/0855Overlapped cache accessing, e.g. pipeline
    • G06F12/0859Overlapped cache accessing, e.g. pipeline with reload from main memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)【要約】本公報は電子出願前の出願データであるため要約のデータは記録されません。

Description

【発明の詳細な説明】 発明の名称 マイクロブクセ1サーのクロックに依るマルチプル・アクセスのためのインター リーブ・キャノン3 発明の分野 本発明は、マイクロプロセッサ−の分野、特に中央処理袋[(CPU)と主記憶 装置の間の記憶装置の階層レベルを表すインターリーブ・キャッシュ・メモリに 関する。
発明の背景 コンピュータ・/ステムの開発において、このような/ステムの速度と、大型で 慢雑なプログラムを処理する性能を高めながら、それらのコストを低減すること に主な重点がおかれている。コンピュータ・/ステムの性能を高めるには、より 大型なプログラムがコンピュータ・/ステムに依って活用されるように、ランダ ム・アクセス・メモリ(RAM)のサイズを大きくして、そのRAMに対するア クセスに余裕を与える程度に速度に高速にする必要がある。アクセス速度を高速 にするストレートフォワード方式は、更に高速に動作するコンポーネントを使用 している。しかし、このような高速動作コンポーネントは、低速メモリ・コンポ −ネットより高価になる。
高速RAMの搭載に伴うコストを考慮して、高度コンピュータ・システムは、高 速キャッシングを使用してメモリ・7ステムの動作速度を高めてきた。キャッシ ング・アレ7ジメントは、レギュラーRAMのほかに小型の高速のメモリを搭載 している。コマンドが発行されて、データが利用されると、インフ堵−メー/ヨ ノがRAMから呼ばれて、このキャッシュ・メモリに記憶される。各々新い\読 取または書き込みコマンドが発行されると、/ステムは、高速メモリ・キャノ1 5を調べて、インフオーメー79ノがキャノンjに記憶されて℃)るかどうh1 決定する。インフォーメーノヨンがキャッシュ・メモリにあるときにはRAMI こ対するアクセスを要求せずにコマンドが処理されるか、またはデータにアクセ スされる。インフオーメ−7I+7がキャッシュ・メモリで利用できなし1時1 こ、新しく\データが主メモリからコピーされ、/ステムによる後の使用のため にキャッシュ・メモリに記憶される。高度にデザインされたシステムでは、調べ られたインフォーメー/ヲノは、平均して90%以上の時間にわたってキャッシ ュ・メモリにある。従って、キャッシュ・メモリを使用すると、コンピュータ・ システムで用いられるメモリの全体的なオペレー/gン速度を実π的に高めるこ とになる。
コンピュータ・システムのオペレー/mン速度を更に高めるために、高速のキャ ッシュ・メモリをプロセッサー・チップ上に直接関連づけることが望ましいこと が分かった。例えば、8キロバイトのメモリから成るこのような小型の高速手ャ ノノユ・メモリをCI”Uの他のエレメントと共にチップ上に直接与えると効果 的であると思われる。このような構造は、種々のプロセスによって繰り返し用い られるイ/フォーメー7−Iンに対して、/ステムのオペレージ1ン速度を大幅 に高めることができる。
一般的に、スタティック・ランダム・アクセス・メモリ(SRAM)のような、 スタティック・メモリがキャッシュ・メモリに対して用いられている。これらの メモリは、各々lビットのデータを記憶するためにセルを形成している複数の双 安定回路(フリップフロップ)から作られている。メモリ・アレイにおいて、ビ ット・ラインは、データをセルから読み取るために用いられる。これらのビット ・ラインは、人力データに依って決まる所望の状態へラインをドライブすること によって書き込みにも用いられる。
高度の性能をマイクロプロセッサ−で達成するための別のアプローチは、一般的 にスーパースカラーと呼ばれる、クロック当たり複数の命令を実行することであ る。クロ、り当たり複数の命令を効果的に実行するために、マイクロプロ七ノサ ーは、オペランドが実行段階で障害にならないようにしなければならない。例え ば、複数のオペランドがオフチップ・データ・キャッシュにアクセスする必要が ある場合に障害が生じるおそれがある。従って、マイクロプロセッサ−は、lク ロックで同時に複数のデータ参照を行うことができるデータ・キャッシュを必要 とする。従来の技術では、複数のデータ参照を行うために、マルチボート技法が 一般的に採用されている。このような技法のもとでは、同時データ参照の数と同 じくらいの数多くのボートを備えたマルチボート・メモリ・セルが用いられてい る。
デュアルポート・スタティック・メモリ・セルも周知の従来技術である。成るこ のようなセルの例がアメリカ特許No、 4.823.314に図示されている 。デュアルポート・メモリ・セルは、メモリに対する複数のデータ参照を行うた めに、しばしば用いられている。しかし、デュアル・ボートRAMセルは、6ト ラノジスタ・ノングル・ボー)SRAMセルより2つ多いトランジスタと、2対 のビット・ラインと、2つのワードラインを必要とする。更に、デュアルデート ・セルのクロス結合インバーターのためのトランジスタは、余分な対のビット・ ラインを駆動するために大型になる必要がある。対照的に、デュアル・ボートs RへMは、ノングル・ボート・セルよりはるかに大型になり、ノングル・ボート ・セルのサイズの約17倍になる。更に、デュアル・ボート技法は、ノングル・ ボート技法が要求するとυわれるセンスアップの数の2倍を要求する。デュアル ・ボート非イノターリーブ技法も、センスアップの2倍の数がキャッシュに対す るアクセス中に可能になるので、典ヤ的なノングル・ボート・キャッシュの電力 の2倍になる。
メモリ・アクセス時間を短縮するために用いられる別の方法は、メモリ構成を最 適にすることである。メモリは、ノングルワードではなく複数のワードの読取ま たは書き込みが、1回でできるようにバンクに構成することができる。これらの バンクは一般的に1ワ一ド幅なので、バスとキャッシュの幅は変わる必要がない 。従って、アドレスを複数のバンクに送ると、キャッシュは複数の参照を同時に 読み取ることができる。バンクは書き込みオペレーン言ノにおいても効果的であ る。バック・トウ・バック書き込み方式は、前の書き込みオペレーションが終え るのを一般的に待たなければならないが、複数のバンク構成は、これらの書き込 みが同じバンクにり1してなされない限り、lクロックで複数の書き込みを可能 にする。
従来の技術では、複数のメモリ・コントローラーが、キセノ/:L・メモリ・バ ンクに対するアクセスを制御するために採用されている。メモリ・コントローラ ーは各々メモリ・バンクと関連づけられていた。複数のメモリ・コントローラー はバンクを独自に動作させる。例えば、入力デバイスは1つのコントローラーと そのメモリを使用し、キャッシュは別のものを使用し、ベクトル・ユニットは第 3のものを使用すると思われる。実際に用いられるコントローラーの数は袴通は 僅かである。このようなキャッシュ・メモリ・システムにおいて、コントローラ ーの数が僅かな時に、同じバンクに対して競合するメモリ参照の間のフンフリク トの可能性が大きくなる。従って、コンフリクトの機会を減少するために、数多 くのバンクが必要とされる。
そこで、本発明は、マイクロプロセッサ−でクロック・サイクル当たり複数のデ ータ参照を行うことができるノングル・ボート・キャッシュ・メモリを提供する 。クロック当たり複数のデータ・アクセスは、本発明のデータ・キャッシュがイ ンターリーブされることによって可能になる。
発明の要約 マイクロプロセッサ−の1クロツクでの複数のデータ・アクセスのためのインタ ーリーブ・キャッシュについて説明される。キャッシュは、複数のバンクの7ン グル・ボート・メモリ・セルを備えた記憶アレイを含んでいる。好ましい実施態 様において、キャッシュは8バンクのメモリを備えている。キャッシュはバンク ・セレクター・メカニズムとデータバスも含んでいる。バンク・セレクター・メ カニズムは、マイクロプロセッサ−の複数の実行ユニットによるクロックでの複 数のバンク・アクセスを可能にする。データバスは、マイクロプロセッサ−の実 行ユニットと記憶アレイの間のデータバスを提供する。
本発明では、バンク・セレクター・メカニズムはデコード・ロジックとバンク・ フットローラー・ロジックを含んでいる。デコード・ロジックは複数のデータ・ アクセスのアドレスをデコードする。好ましい実施態様において、デコード・ロ ジ、りはデコーダのセットからなる。バンク・コントローラー・ロノyりは、デ コード・ロジックからデコードされたアドレスに相当するバンクの四ケーノ1ノ にアクセスする。好ましい実施態様において、バンク・コントローラー・ロジ7 りはマルチプレクサ−の七ノドになる。
本発明において、データバスは複数のデータ・ボートとデータバス・コントロー ラーを含んでいる。好ましい実施態様において、データ・ボートの数はマイクロ ブロセ、サーの実行ユニットの数と同じである。データバス・コツトローラーは 、複数の実行ユニットがクロックで記憶アレイにアクセスするようにして、本発 明のキャノ/、−の記憶アレイと実行ユニットの間のデータ転送を制御する。デ ータバス・コントローラーは、そのデータ・アクセス要請に基づいて、実行ユニ ットの各々に対してデータを並べるための整列ロジックを含んでいる。好ましい 実施態様において、データバス・コントローラーは、各々ポートに結合されてい るローチーターとマルチプレクサ−から構成されていて、マイクロプロセッサ− の各々実行ユニットに出入するデータの転送を制御する。
本発明は、記憶アレイの同じバンクに対する複数のデータ・アクセスが生じてい るかどうか決定するフンテンシプン・ロジックを更に含んでいる。この状Cにな ると、コンテノ/IIン・ロジ、りは、それらが満足できるようにして、競合す る複数のデータ・アクセスに優先順位を設定する。好ましい実施態様において、 コアテン7gノ・ロジックは、複数のデータ・アクセスに対応するサイクル・タ イプとアドレスを受けて、バンク・セレクターに送信して、記憶アレイの特定の バンクに対するデータ・アクセスを可能にする。バンク・セレクターに送られた 信号は、好ましい実施態様においてマルチプレクサ−に対する入力と制御信号に なる。本発明において、フッテン/ラン・ロジックは、lっだけのデータ・アク セスが生じるようにしているので、そのデータ・アクセスが置換(例えば、読取 、書き込みなど)や試験または無効化サイクルである時に、全ての他のことを禁 止にする。
本発明の記憶アレイは、センス回路を用いて、データをアレイから複数データの アクセス中に読み取っている。センス回路は、記憶アレイにおいて各々バンクに 付随するセンスアンプを含んでいる。本発明のもとでは、アクセスされるメモリ ・バンクにf1随するセンスアンプだけが作動される。このようにして、記憶ア レイによって消費される電力が低減される。
図面のnIIIな説明 本発明は、次に示す詳細な説明と本発明の好ましい実施態様の添付図面から更に 十分に理解される、しかし、それらは、特定の実施態様に発明を限定するもので なく、説明と理解のために存在することを認識されるべきである。
IIは、本発明のコンピュータ・/ステムのブロック図である。
図2は、本発明のマイクロプロセッサ−のブロック図である。
図3は、本発明のキャッシュのブロック図である。
図4は、本発明のメモリ・アレイのスタティック・ランダム・アクセス・メモリ (SRAM)セルの好ましい実施態様を示す。
図5は、本発明の好ましい実施Il!i樟のブロック図である。
発明の詳細な説明 マイクロプロセッサーの1クロツクで複数のデータ・アクセスを可能にするイン ターリーブ・データ・キヤノンコについて説明される。以降の説明では、本発明 の好ましい実施g様を十分に理解できるようにするために、バイト、ビット、デ バイスなどの特定の数字のように、数多(の特有の詳細事項が予め定められてい る。本発明は、これらの指定された詳III事項がなくても実現できることは、 当業者にとって明らかであると思われる。また、周知の回路は、本発明にわいて 不要な誤解を避けるために、詳細図ではなく、ブロック図の形式で図示されてい る。
本発明を説明する途中で、Intel 15867Mと1860XPTMマイク ロプロセッサ−のような、成る特定のCPUアーキテクチャ−またはマイクロプ ロセンサー・タイプあるいはその両方と共にインターリーブ・データ・キヤノン ユが、しばしば用いている。これらの利用は、本発明に関して、好ましい実施態 様を単純に反映しているにすぎない。本発明に具体的に用いられている概念は、 他のプロセンサー・タイプとアーキテクチャ−にも応用できる、または拡張でき ることを認識されるべきである。
更に、本発明を説明する際に、#照数字は、好ましい実施態様に特有の信号の本 発明のコンピュータ・/ステムの概要図1に、本発明のコンピュータ・/ステム の概略がブC2yり図の形式で図示されている。図1は本発明のコンピュータ・ /ステムの概略的な説明を与えるうえて有用であるが、数多(のシステムの詳細 な事項が図示されていないことが理解される。本発明の開示に関して必要に応じ て、更なる詳細事項が、この明細書に与えられている他の図面を引用して設定さ れる。更に、本発明は、その好ましい実施態様、すなわち、後に述べられる請求 の範囲に属することが、当業者によって認識されると思われる代替実施態様を引 用して説明される。
図1に図示されているように、本発明の好ましい実施態様で用いられると思われ る〕/ピユータ・/ステムは、インフオーメーンヨンを送るために!<ス101 に結合されている処理手段102と、処理手段+02のためにインフォーメーシ 9ンと命令を記憶するためにバスlotに結合されているランダム・アクセス記 憶袋a (RAM)または他の動的記憶装置104(主記憶装置として広く用い られている)と、処理手段102のために不揮発性イノフォーメーンツンと命令 を記憶するためにバス101に結合されている読取専用記憶装置14j(ROM )または他の不揮発性記憶装置+06、イノフ肯−メー7IJノと命令を記憶す るためにバス101に結合されている磁気ディスクやディスク・ドライブのよう なデータ記憶袋N101と、インフォーメーンヨノをコンピュータ・ユーザに表 示するためにバス101に結合されている陰極管や液晶表示装置などのような表 示袋Ff121と、インフォーメー’/ m :/とコマンド選択をプロセッサ ー102に送るためにバス101に結合されている、英数字と他のキーなどを含 めた英数字入力袋W1122と、カーノルの動きを制御するためのカーソル・コ ントロール12を一般的に搭載している。/ステムは、コンピュータ・イメージ を可視性の状態で表示するために、プロッターまたはプリンタのようなハード・ コピー・デバイス124を搭載している。ハード・コピー・デバイス124は、 プロセッサー102、主記憶装置+04、不揮発性記憶装置106、大容量記憶 装置107にバス101を経由して結合されている。最後に、7ステムは、音声 による記録と再生を行うために音声記録再生袋W l 25も搭載している。
もちろん、本発明の成る具体的な実現と使用においては、前述のフノボーネント の全てを要求もしないし搭載もしていない。例えば、成る具体的な例では、イン フォーメー/ヨンを/ステムに人力するためにキーボードとカーソル・フントロ ールが要求されないかも知れない。他の具体的な例では、インフ埼−メー71ノ を表示するための表示装置を与えることは要求されないかも知れない。
マイクロプロセッサーの概要 図2は、本発明のマイクロプロセッサ−200のブロック図を示している。好ま しい実施態様において、マイクロプロセッサ−24IQは、複数の命令を直ちに 実行できる1Mel i586TMスーパースカラー・マイクロプロセッサ−で ある。図2において、マイクロプロセッサ−200は、マイクロプロセッサ−に よって実行される命令を主記憶装置からブリフェッチするためのブリフェアチャ ーすなわちイノストラり/1ン・キセノンユ手段201と、そのブリフェノチャ ー201でフェッチされた命令をデコードするためにブリフy−ノチャー201 に結合されている命令デコーダ202とを備えている。デコーダ202は、1つ は「U−バイブ」と呼ばれ、他の1つは[V−バイブjと呼ばれる、2つの実行 バイブライン・ユニット203と204に結合されている。デコーダ202は、 両方のU−バイブ203とV−バイブ204に、デコードされた命令を同時に送 る。好ましい実施態様において、U−バイブ203とV−バイブ204は、整数 のバイブラインであり、互いに2つの整数の命令を各々クロ、り・サイクルで実 行できる。それを行うために、各々パイプライン、U−バイブ203とV−バイ ブ204は、それ自身のアドレス生成ロジックと演算ロジックとキャッシュ・メ モリ・インタフ、−スとのセットを備えている。好ましい実施態様は、デコード された浮動小数点命令をデコーダ202からU−バイブ203とV−バイブ20 4を経由して受け取り且つこれらの命令を実行するために、U−バイブ203と ■−バイブ204に結合されている浮動小数?3.(FP)実行パイプライン2 05も備えている。FP実行パイプライン205は、それ目体の演算ロジックと メモリ・インタフェースも備えている。実行パイプライン203−205のメモ リ・インタフェースは、全てデータ・キャッシュ206に結合されている。
キャッシュ・メモリ・イノタフエースは、データ・キセノ15206に結合され ているメモリ・バスから成る。メモリ・バスは、一般的に32.64または+2 3ビツト・ワイドの何れかになる。 Intel 80586のデータバスの幅 は 32ビツト・ワイドである。実行パイプライン203−205は、データが メモリに書き戻されるまで、−・時的にデータ・キャッシュ206が記憶してい る最近に使用されたデータに月してデータ・牛ヤノ/ユ206にアクセスするた めに、キセノ7ユ・メモリ・インタフ、−スヲ使用する。データ・キャッシュ2 06はメモリ・バス・イノタフエース207にも結合されている。バス・インタ フェースは、両方のブリフェオチャー201とデータ・キャッシュ206が主記 憶装置にアクセスできるようにする(図1)。
U−バイブ203とV−バイブ204、およびFl’パイブライノ205は、命 令を同時に実行する。U−バイブ203とV−バイブ204によるこれらの命令 の実行はデータに対するアクセスを要求する。これらはデータ参照と呼ばれる。
これらのデータ弁解は、データ・キャッシュ206のデータ、または要求された データがデータ・キャッシュ206にない時には主記憶装置のデータによって満 足される。好ましい実施態様において、U−バイブ203とV−バイブ204は 、データ・キャッシュ206が1クロツクによる複数のデータ参照を満足するよ うにして、データ・キセノン、 20Bに同時にアクセスできる。これらのアク セスは、データ・キャッシュ読取または書き込みオペレーションになるとυわれ る。
もちろん、本発明の成る具体的な例と使用は、前述のコンポーネントの全てを要 求しないし備えてもいない、また、それにだけ限定されるわけでない。例尤ば、 成る具体的な例において、マイクロプロセッサ−200は数多くの更なる実行パ イプラインを有すると考えられる。その場合、本発明のデータ・キセノン:L2 06は、同じクロックの間データ・キャッシュ206に対する実行パイプライン ・アクセスの全てを可能にすると思われる。従って、本発明は、lクロックによ る2つの同時データ・アクセスに限定されないし、実行パイプラインと同じ数の データ参照を行うことが要求されるわけでもない。
キャッシュ・メモリの概要 本発明のデータ・キャッシュは、データ・キャッシュ3ooとして図3にブロッ ク図の影式で図示されている。データ・キャッシュ300は、主記憶装置の最近 にアクセスされたエリアのコピーを含んでいる(図1)。データ・キセノン13 00の使用は局所性の原則に基づいている。この原則は、アイテムが参照される と、それが後で直ちに再び参照される傾向を示す(すなわち時間的に局所的)。
同様に、アイテムが参照されると、その近くのアイテムは、その後に直ちに参照 される傾向を示す(すなわち空間的に局所的)。従って、キャッシュ・メモリを 使用する理由は、頻繁に用いられるイ/フォーメー/ヲンに対する効率的なアク セスを与える、従って、処理速度を加速することにある。データ・キャy7x3 00は、アクセス・コントロール・ロジック301と、タグ検証と確認ブロック 302と、データ・キャッシュ・メモリ303と、データバス304からなる。
好ましい実施態様において、データ・キャンノコ300は、128セクトとして 編成される2方式セット結合キ十l/二であり、それぞれの七ノドが2つのライ ンを備えている。各々ラインは32バイトのデータを備えている。データ・キヤ 、、/x300の容量は8キロバイトのデータである。
1クロツクで複数のデータtaを同時に行うため、データ・キャッシュ・メモリ 300がイノターリーブされる。インターリーブ技法は、キャッシュ・メモリ3 03をN[パック」に分割する必要がある(ここで、Nは2の累乗であり且つ選 択されたアドレス境界で分割される整数である)。バンクの各々が独自にアドレ スできる。キャッシュ・メモリ303が/ノグル・ポート・メモリ・アレイであ っても、複数のデータ参照で同じバンクのアクセスを試みない限り、複数のデー タ参照でバンクにアクセスする。それぞれバンクは全てのキャッシュ・ライ/に 対してMバイトのデータを含んでいる。各々バンクのバイト数が、与えられたキ ャッシュ・ライン・サイズに対してバイト数を決定する。逆にバック数でバイト 数が決まる。好ましい実施朝帰では、データ・キャッシュ300は2つの同時デ ータ参照を行い、32バイトのキャッシュ・ライン・サイズを有している。更に 、インターリーブする境界は4バイト+ll!?i!になる。従って、データ・ キャッシュ300は、好ましいに施管様において8方式にイノターリーブされる (すなわち8バイト)。
アクセス・コントロール・ロジック301は、クロック毎に複数のデータ参照が 連続レートでメモリ303にアクセスすることを可能にする。好ましい実施tI !、様において、データ キャッシュ300は、U−バイブとV−バイブ(図2 )からなるそれぞれが2つの整数命令実行バイブうイノである2つのデータ参照 をサポートする。
次に、アクセス・フットロール・ロジック301は、複数のデータ参照が同じサ イクルで同じバンクのメモリ303のアクセスを希望する時を検出する(例九ば 、同時に11−−バイブ・メモリとV−バイブ・メモリが同じロケーノヨンを読 み取る)。このようなデータ要請に対応して、アクセス・コントロール・ロジッ ク301は、データ・アクセスに優先順位を設定して、それらが7リアルに行わ れることを可能にする。好ましい実施態様において、アクセス・フントロール・ ロジック301は、同じバンクにλ1するアドレス衝突を検出するアドレス・コ ンパレータを有している。
タグ検証と確認ブロック302は、要二育されたデータがいまキャッシュ・メモ リ303に存在するかどうかについて決定する。データがキセノ/3・メモリ3 03に存在する場合・キセノ/】°ヒツトであり、データがアクセスされる。デ ータがキャッシュに存在しない場合、キャッシュ・ミスと呼ばれて、データはデ ータ・キャッシュ300に依って主記憶装w1(図1)がらフェッチされなけれ ばならない。好ましい実施態様で、決定は周知のタグ操作方式を用いて行われる 。
データバス304は、実行バイブU、Vとキャッシュ・メモリ303との間のキ ャッシュ・メモリ303からアクセスされたデータのバスを与える。好ましい実 施態様において、データバス304は、誤配置されたアドレスに対するアクセス を取り入れるロジックを備えている(例えば分割号イクル)。
結局、好ましい実施態様において、データ・キャノン、5300は、多重処理の 一貫性を完全に支えるライトバック・キャッシュとなる。これは、オーナー/ノ ブ・プロトコルとマイクロプロセッサ−(図2)で用られた状Cを維持するデー タ・キャッシュ300によって達成される。データ・キャッシュ300の好まし い実施態様はライトパック・キャッシュであるが、それは、ラインごとの基準に よるライトスルー・キャッシュとして構成されることができる。
好ましい実施態様において、キヤy7.303のメモリ・セルは、周知の相補形 金属酸化膜半導体(CMO3)プロセ/ングで作られる。図で、pチャンネル電 界効果トランジスタは、トランジスタ・ゲート上に小さな円を用い、nチャンネ ル電界トランジスタは、ゲート上に円がないことから区別される。メモリは、通 常の双安定(フリ、ブフロ、ブ)セルを用いている。
図4を見ると、好ましい実施態様の典型的な//グル・メモリ・セルは、CMO Sスタティック・ラムセル400として図示されている。セル400は典型的な 6個から成るトランジスタのスタティックRAM (SRAM)セルである。し かし、本発明は6トランジスタSRAMセルに限定されない。例えば、いまの4 トラ7ジス9SRAMセルが用いられることができる。SRAMセル400は、 数千回も繰り返され、なおかつ、データ・キャッシュ300専用でなければなら ないグイ・エリアまたは固定エリア内部に取り入れられることができるキャッシ ュ・サイズの主な決定要素になる。図4を見ると、1ターミナルnチヤンネル・ トランジスタ4゜1がビット・ライン406に結合されている。トランジスタ4 01のゲートはワード・ライン405に結合されている。トランジスタ401の 他のターミナルはノードAに結合されている。nチャンネル・トランジスタ40 2の1つのターミナルはビット・ライン40フに結合されている。トランジスタ 402のゲートはワード・ライン405に結合されている。トランジスタ402 の池のターミナルはノードBに結合されている。インバーター403と404は クロスして結合されている。インバーター403の入力はノードBに結合されて いる。インバーター4(13の出力はノードAに結合されている。インバーター 404の入力と出力はノードAとノードBに各々結合されている。I・う/ジス タ401と402はバス・トランジスタとして作用する。好ましい実施憶様にお いて、イノバーター403と404は、共にペアの補相形pチャンネルとnチャ ンネル・トランジスタとなり、なおかっ、SRAMセル400の記憶要素を形成 している。SRAMセル400の構成と動作は周知の技術である。
図5は、プロ、り図の形式で本発明の/ングル・ボート・インターリーブ・デー タ・キャッシュ500の好ましい実施態様を示している。図5を見ると、デコー ダ501はU−パイプ・セット・アドレスをその人力上に受けている。好ましい 実施態様においてU−パイプ・セット・アドレスは7ビノト長である。デコーダ 501の出力はマルチプレクサ−(M U X ) 503a−503hの各々 の入力の1つに結合されている。デコーダ502の人力はV−パイプ・セ・ソト ・アドレスに結合されている。好ましい実施態様においてV−パイプ・七ノド・ アドレスは7ビノト長である。デコーダ502の出ツノはM U X 503a −503hの各々の他の入力の1つに結合されている。MU X 503a−5 Q3hの出力は各々メモリ・バンク5O5a−5O5hの入力に結合されている 。
アドレス・コノテノンワン・ロジック504はM U X 5Q3a−503h の入力に結合、ittている。センスアップ506a−5O6hは各々がメモリ ・バイト50Sa−5O5hの各々に結合されている。センスアップ5O6a− 506hの出力はマルチプレクサ−/ローチーター507とマルチプレクサ−/ ローチーター508に結合されている。好ましい実施態様において、マルチプレ クサ−/ローチーター507と508は256ビツト・バスを用いてセンスアン プ506a−506hに結合されている。データ・キヤ、/ユ500の各々マル チプレクサ−・′ローチーターはマルチプレクサ−とローチーターを有している 。マルチプレクサ−/ローチーター507と508の出力は、各々バス509と 510を用いて晶々U−バイブとV−パイプ実行コアに結合されている。好まし い実施態様において、バス509と510は各々32ビツト・バスである。セン スアップ506a−506hの出力もライトバック充填バッファー511に結合 されている。好ましい実施態様において、ライトバック充填バッファー511は 256ビノト・バッファーに結合されている。ライドバイト充填バッファー51 1もメモ1ルバス・インタフェースに結合されている(図2)。
読取オペレー/gンの際、2組のデコーダ、すなわち、デコーダ5o1と502 は、各々u−パイプとv−パイプ・アドレスを受け取る。これらのアドレスはキ セッ/ユ500内のデータ1#照に対応している。デコーダ501と502は、 アドレスをデコードして、セット・ロケー7gノを得る。好ましい実施態様にお いて、セット・アドレスは128セツトの任意の1つになることができる。2セ ツト・アドレスは、データ・キャノ/二5ooにおいて、同じバンクに対してで も、同じセットになることができる。両方のデコードされたセット・アドレスは 全てのマルチプレクサ−に送られる。好ましい実施態様において、デコードされ たアドレスはM U X 5O3a−503hに送られる。M U X 503 a−503hの各々はマルチプレクサ−のセントである。
M U X 503a−503h (7)出力は、各々メモリ・バンク 50S a−505hの各々セットのワードラインに結合され、バンクの各々のSRAM セルのワードライン・ドライバーになり、なおかっ、独自にアドレスできるバン クの各々に対して要求される。従って、M U X 503a−503hは、デ コードされたセット・アドレスをメモリ・バンク505a−505hのワードラ インに各々ドライブする。M U X 5O3a−503hに関連するマルチプ レクサ−の遅延は、キャッシュ500のアクセス時間に最小限度の影響しか与え ない。M U X 503a−503hは、アドレス弓ンテンン冒ン・ロジック 504の選択信号にに、対応して、ワードラインにセット・アドレスをドライブ するだけである。
アドレス・コンフリクト・ロジック504は、コンフリクトがU−パイプとV− パイプ・アドレス間に存在するがどうかについて決定する。コンフリクトは、複 数のデータ参照が同じバンクに対しである場合に存在する。アドレス・コンテノ /g’/・ロジック504は、アドレスとサイクルのタイプ(例えば読取と書き 込みなど)を受けて、アドレスを比較する。好ましい実施態様において、アドレ ス・コンチン/Wノ・ロジック504は、下位アドレス・ビット2−4を比較す るコンパレータを搭載している。コンフリクトが存在しない時に、アドレス・コ ノテノンワン・ロジック504は、適切なM U X 5Q3a−503hを選 択するので、選択されたマルチプレクサ−がアドレスをワードライ/にドライブ できる。コンフリクトが生じた時に、アドレス・フンテンション・ロジック50 4は、コンフリクトする複数のデータ参照に優先順位を設定する。アドレス・コ ノテノンワン・ロジック504は、アーキテクチャ−によって且つオーダーまた は相互作用に依って定められる任意の優先順位技法を具体的に実現できる。好ま しい実施態様において、アドレス・コノテノンワン・ロジック504はV−パイ プ・データ参照を保留にして、U−パイプ・データ参照が最初に満足されるよう にする。■−パイプ・データ参照は、次のサイクルで満足される。この技法はコ ンフリクトする複数のデータ参照を基本的に7リアルにする。従って、好ましい 実施態様において、アドレス・コノテノンワン・ロジック504は、コンフリク トする複数のデータ参照を同じメモリ・バンクに、それらに優先順位を設定する ことによってシリアルにする。
コンフリクトは、置換、試験、無効化サイクルでも生じる。これらのサイクルの 全てにおいて、全体のキヤ//ユ・ラインは、ライトバック充填バンク511を 介在してデータ・キャッシュ500から読み取られたり書き込まれたりする。置 換、試験、無効化サイクルを実施する際のライトバック充填バンク511の動作 は周知の技術である。任意のこれらのサイクルにおいて、アドレス・コノテノン ワン・ロジック504は、実行パイプライン(例えばU−パイプまたはV−パイ プ)の1つで、全てのメモリ・バンク 505a−50Shにアクセスできるよ うにする。
マルチプレクサ−が選択されると、バンクの適切なワードラインがオンする。
従って、複数のデータ7照がアドレス・コノテノンワン・ロジック504によっ て可能になり、複数のバンクのワードラインがオンする。各々選択されたバンク はそのデータ・アクセスのノースを把握していない。各々選択されたバックのデ ータは、32ビツト・バス上で読み取られて、その各々センスアンプによってセ ンスされる。各々のバンクは独自にアドレス指定されているので、セ/スアンブ 506a−506hは、アクセスされているバンクのデータだけを選別してセン スする。これはメモリ・アレイによる電力消費量を減少する。センスされたデー タは、センスアップ506a−506hからマルチプレクサ−/ローチーター5 07と508に結合されている256ビノト・データバスに出力される。次に、 センスされたデータは、マルチプレクサ−/ローチーター507と508にファ ンアウトする。キャッシュ500のマルチプレクサ−・′ローチーター507と 5011の各々がクロック・サイクルでアクセスされたバンクの全てから読み取 られたデータの全てを受け取ることに注目されるべきである。
マルチプレクサ−/ローチーター507はU−パイプ・アドレスとU−パイプ・ データ長も受け取る。マルチプレクサ−/ローチーター508もV−パイプ・ア ドレスとV−パイプ・データ長を受け取る。データ長はフェッチされるデータm を意味している。これらのアドレスとデータ長は、マルチプレクサー/ローチー ター507と508の出力を、マルチプレクサ−/ローチーター507が11− パイプ・アドレスに関連するデータを選択し且つマルチプレクサ−/ローチータ ー508がV−パイプ・アドレスに関連するデータを選択するように制御する。
好才しい実施態様において、マルチブレクツ−/ローチーター507と508の マルチプレクサ−は8−1マルチプレクサ−である。好ましい実施態様において 、マルチプレクサ−/ローチーター507と508のローチーターは、データが プロセッサー・コアに送られる前にデータを並べる。マルチプレクサー/ローチ ーター507と508のローチーターは最下位バイトのバス509と510上で 要請された最下位バイトのデータ・アイテムを与える。ローチーターの動作は周 知の技術である。
一旦マルチブレクサー/ローチーター507ど5o8が適切なデータを選択し且 つ任きに要求されたローチーターンが実施されると、データは、使用するために 、各々、バス509と510の、その実行パイプUまたはVに送られる。
書き込みオペレー/ブノにおいて、キャッシュ5ooは、データのバスが逆にな ることを除けば、読取オベレー/gノと同様に作動する。データは、マルチプレ クサ−/ローチーター507と508を経由してメモリ・バック 505a−5 05hに進む。宛先設定アドレスはデコーダ501と502によってデコードさ れ、なおがっ、デコードされたアドレスはM U X 503a−503hに出 力される。選択されたメモリ・バンクのワードラインは、アドレス・コンテ7ノ コノ・ロジック504による、その選択によりイノする。イノしたワードライン に対応して、データは、周知の技術でデータ・キャッシュ500に書き込まれる 。
本発明は、全体のキャッシュ・ラインが任意の時にキャノ/:Lから読み取られ る或いはそこに書き込まれることを必ずしも要求しないので、従来技術のインタ ーリーブ・キャッシュより優れている。これは、バンクが異なっていても、複数 のアクセスを同じキ十ノノユ・ラインに対して可能にする。このようにして、デ −タコノブリフトが現れる回数を少なくする。
好ましい実施態様において、イノターリーブ・キャノン二は、2つの同時データ 参照を1クロツクで動作するようにして具体的に実現された。8方式インターリ ーブ・キヤ、ンユは、バンク・コノテン/Wンに起因する性能低下が僅かになっ たため、2方式または4方式インターリーブよりも好まれた。更に、8方式イ/ ターリーブ・キャノン二は、4バイト・インターリーブ境界と32ビ、ト・ライ ン・サイズが与えられ、デザインが単純化した。16方式以上のインターリーブ ・キャノン二と比べると、要求されるハードウェアも僅かになった。
本発明は、従来技術のデュアル・ポート・キヤノン二より優れている。デュアル ・デート・キャノン二は、同じアドレスに対する同時読取と書き込みを検出する 従属ロジックを要求する。バイト・フンフリクト・ロジックがデュアル・ボート 技法より単純なロジックで同じロケーンgノに対する参照のケースを防止するイ ノターリーブ・キャノン二にはこれが必要でない。
本発明のインターリーブ・キャノン二は同じンリフン・エリアに更に多くのデー タを記憶できるので、本発明のインターリーブ技法はデュアル・ボート技法より 優れている。そこで、オフ・チップ・データ参照の数を減少することができる。
本発明の数多くの変更と修正は前述の説明を読むと当業者には疑いもなく明らか になると思われるが、図解を用いて図示され説明された特定の実施塘様は如何な る場合でも限定されることを意図されていないことを認識されるべきである。
例九ば、本発明のデータ・キヤ、ツユの記憶アレイは任意の数のバンクに分割さ れると考えられる。従って、好ましい実施態様の詳細事項の引用は、発明の不可 欠な要素と見なされる特徴だけを示す請求の節回を限定することを意図されてい ない。
従って、マイクロプロセッサ−のクロック毎に複数のデータ・アクセスを可能に するイノターリ−ブト・キャノン二が説明された。
フロントページの続き (81)指定国 EP(AT、BE、CH,DE。
DK、ES、FR,GB、GR,IE、IT、LU、MC,NL、PT、SE) 、0A(BF、BJ、CF、CG、 CI、 CM、 GA、 GN、 ML、  MR,SN、 TD。
TG)、 AT、 AU、 BB、 BG、 BR,CA、 CH。
C3,DE、DK、ES、FI、GB、HU、JP、KP、 KR,LK、 L U、 MG、 MN、 MW、 NL、 N。
、PL、RO,RU、SD、5E (72)発明者 ミルズ、ジャック・ディアメリカ合衆国 94043 カリフ ォルニア州・マウンテン ビュー・トンプソン スクエア・212

Claims (1)

  1. 【特許請求の範囲】 1.複数の実行ユニットを備え、その実行ユニットを用いて複数の命令を1クロ ック・サイクルで実行でき、更に複数の同時データ・アクセスが前記複数の命令 の実行に対して要求されるマイクロプロセッサーに使用するキャッシュにおいて 、前記データ・アクセスの各々が独自のアドレスを備えていて、複数のパンクの メモリ・セルを有する記憶アレイと、前記記憶アレイに結合され、前記複数の実 行ユニットの前記複数のデータ・アクセスに応じて1クロックに前記記憶アレイ の複数のパンクにアクセスする選択手段と、前記記憶アレイに結合され、前記1 クロックでの複数のデータ・アクセスを実行するために前記記憶アレイと前記複 数の実行ユニットの間にデータバスを形成させたデータバス手段を 備えていることを特徴とするキャッシュ。 2.前記パンク選択手段が、 前記複数の同時データ・アクセスの各々に関連して各々アドレスをデコードする ための複数のデコード手段と、 前記記憶アレイのロケーションにアクセスするために前記複数のデコード手段に 対応した複数のパンク選択手段であって、前記複数のパンク選択手段の各々が前 記記憶アレイの前記パンクの1つに関連している前記複数のパンク選択手段を有 していることを特徴とする請求の範囲第1項に記載のキャッシュ。 3.前記複数のデコード手段が復数のデコーダを搭載していることを特徴とする 請求の範囲第2項に記載のキャッシュ。 4.前記複数のパンク選択手段が複数のマルチプレクサーを搭載していることを 特徴とする請求の範囲第2項に記載のキャッシュ。 5.前記データバス手段が、 複数のデータバスであって、前記複数のデータバスの各々が前記実行ユニットの 1つに対応している前記複数のデータバスと、前記記憶アレイと前記複数のデー タバス間のデータの転送を制御するための制御手段を搭載していることを特徴と する請求の範囲第1項に記載のキャッシュ。 6.前記制御手段が複数のマルチプレクサーを搭載していることを特徴とする請 求の範囲第5項に記載のキャッシュ。 7.前記複数の同時データ・アクセスに相応するコンテンション手段であって、 2つ以上の前記複数のデータ・アクセスが前記記憶アレイの同じパンクに対して 行っている際に、前記コンテンション手段が前記複数のデータ・アクセスに優先 順位を設定し、なおかつ、前記2つ以上の前記複数のアクセスがシリアルに発生 するようにして、前記複数のデータ・アクセスに優先順位を設定する前記コンテ ンション手段を更に搭載していることを特徴とする請求の範囲第1項に記載のキ ャッシュ。 8.複数の実行ユニットを備えたマイクロプロセッサーに使用するインターリー ブ・キャッシュであって、そのマイクロプロセッサーは前記実行ユニットを用い て複数の命令を1クロックで実行でき、更に前記キャッシュに対する複数の同時 アクセスが前記複数の命令の実行に対してサイクルのタイプに基づいて要求され 、前記データ・アクセスの各々が独自のアドレスを備えているインターリーブ・ キャッシュにおいて、 それぞれ独立してアドレス指定できるメモリ・セルの複数のパンクを備えている 記憶アレイと、 複数のデコード手段に結合されている複数のパンク選択手段であって、前記複数 のパンクの1つが前記複数のパンク選択手段の1つに関達していて、適切にデコ ードされたアドレスを前記セルのパンクにドライブするための前記パンク選択手 段と、 前記複数の同時データ・アクセスの各々に関連して各々アドレスをデコードする ための複数のデコード手段であって、前記複数のパンク選択手段の各々が前記デ コードされたアドレスを前記デコード手段から受け取るように、前記複数のバン ク選択手段に結合されている前記デコード手段と、データが前記記憶アレイと前 記実行ユニットの間でクロック・サイクルで複数の回数にわたって転送されるよ うにして、複数のデータ・アクセスを取り入れるために前記記憶アレイに結合さ れている伝送手段とを有するインターリーブ・キャッシュ。 9.前記パンク選択手段に結合されていて且つ前記複数のデータ・アクセスの前 記アドレスと前記サイクルのタイプに応じるコンテンション・ロジック手段であ って、前記復数のデータ・アクセスのアドレス間のアドレス衝突を検出するため の前記コンテンション・ロジック手段を更に有し、アドレス衝突が検出されない 時に前記複数のデータ・アクセスが同じサイクルで発生させる一方、アドレス衝 突が検出された時には前記復数のデータ・アクセスに優先順位を設定するように 前記パンク選択手段に送信し、アドレス衝突が生じる時に前記記憶アレイの同じ パンクに対する前記複数のデータ・アクセスを競合するために複数のサイクルが 要求されることを特徴とする請求の範囲第8項に記載のキャッシュ。 10.前記伝送手段が前記複数の同時データ・アクセス中にデータを並べるため の整列手段を更に搭載していることを特徴とする請求の範囲第8項に記載のキャ ッシュ11.前記コンチンション・ロジック手段は、前記複数のデータ・アクセ スのなかの1つだけが、置換、試験、無効化サイクル中に前記記憶アレイにアク セスできるようにすることを特徴とする請求の範囲第9項に記載のキャッシュ。 12.複数の実行ユニットを備えたマイクロプロセッサーに使用するインターリ ーブ・キャッシュであって、前記マイクロプロセッサーは前記実行ユニットを用 いて1クロックで複数の命令を実行できて、更にサイクルのタイプに基づいて前 記キャッシュに対する複数の同時アクセスが前記複数の命令の実行のために要求 され、前記データ・アクセスの各々が独自のアドレスを備えているインターリー ブ・キャッシュにおいて、 それぞれ独立してアドレス指定できるメモリ・セルの複数のパンクを備えている 記憶アレイと、 前記記憶アレイに結合されていて且つ前記複数のデータ・アクセスのアドレスに 応じるパンク選択手段であって、前記アドレスに基づいて1クロックで前記記憶 アレイの複数のパンクにアクセスする前記選択手段と、前記複数のデータ・アク セスに優先順位を設定するために前記パンク選択手段に結合されているコンテン ション・ロジックであって、複数のデータ・アクセスが前記記憶アレイの同じパ ンクに対してなされているとき、前記復数のデータ・アクセスを終えるために前 記複数のデータ・アクセスに優先順位を設定する前記コンテンション・ロジック と、 各々のポートが前記実行ユニットの1つに対応している複数のデータ・ポートと 、前記記憶アレイと前記複数のデータ・ポート間のデータの転送を制御するため の制御手段を有しているインターリーブ・キャッシュ。 13.前記制御手段が、 前記記憶アレイと前記複数のデータ・ポート間の転送中にデータを並べるための 整列手段と、 前記記憶アレイと前記実行ユニット間に於ける前記複数の同時データ・アクセス 中に、前記実行ユニットの各々によるデータ・アクヤス・モードが正常に行われ るように、データを転送するための選択手段を搭載していることを特徴とする請 求の範囲第12項に記載のキャッシュ。 14.前記制御手段が複数のマルチプレクサーと対応する複数のローチーターを 搭載していて、なおかつ、前記複数のマルチプレクサーの1つと前記複数のロー テーターの1つが前記複数のデータ・ポートの各々と関達していることを特徴と する請求の範囲第13項に記載のキャッシュ。 15.前記パンク選択手段が、 前記複数の同時データ・アクセスの各々と関連して各々アドレスをデコードする ための複数のデコード手段と、 前記記憶アレイのロケーションにアクセスするための前記複数のデコード手段に 応じる複数のパンク選択手段であって、前記複数のパンク選択手段の各々が前記 記憶アレイの前記パンクの1つと関達している前記複数のパンク選択手段を搭載 していることを特徴とする請求の範囲第12項に記載のキャッシュ。 16.電力消費量を低減するために、前記複数のパンクの各々がアクセスされる パンクのデータだけセンスするように選別して作動されるセンス手段を搭載して いることを特徴とする請求の範囲第1項に記載のキャッシュ。
JP5511814A 1991-12-23 1992-12-22 マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ Pending JPH07502358A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US81337891A 1991-12-23 1991-12-23
US813,378 1991-12-23
PCT/US1992/011047 WO1993013481A1 (en) 1991-12-23 1992-12-22 Interleaved cache for multiple accesses per clock in a microprocessor

Publications (1)

Publication Number Publication Date
JPH07502358A true JPH07502358A (ja) 1995-03-09

Family

ID=25212210

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5511814A Pending JPH07502358A (ja) 1991-12-23 1992-12-22 マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ

Country Status (5)

Country Link
US (1) US5559986A (ja)
JP (1) JPH07502358A (ja)
AU (1) AU3330793A (ja)
GB (1) GB2277181B (ja)
WO (1) WO1993013481A1 (ja)

Families Citing this family (76)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2116985C (en) * 1993-03-11 1999-09-21 Cynthia J. Burns Memory system
US5581734A (en) * 1993-08-02 1996-12-03 International Business Machines Corporation Multiprocessor system with shared cache and data input/output circuitry for transferring data amount greater than system bus capacity
US5732243A (en) * 1994-10-18 1998-03-24 Cyrix Corporation Branch processing unit with target cache using low/high banking to support split prefetching
US5596740A (en) * 1995-01-26 1997-01-21 Cyrix Corporation Interleaved memory conflict resolution with accesses of variable bank widths and partial return of non-conflicting banks
US5761713A (en) * 1996-03-01 1998-06-02 Hewlett-Packard Co. Address aggregation system and method for increasing throughput to a multi-banked data cache from a processor by concurrently forwarding an address to each bank
US5761714A (en) * 1996-04-26 1998-06-02 International Business Machines Corporation Single-cycle multi-accessible interleaved cache
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US6131152A (en) * 1996-05-15 2000-10-10 Philips Electronics North America Corporation Planar cache layout and instruction stream therefor
US5825788A (en) * 1996-05-20 1998-10-20 Micron Technology Inc. Data ordering for cache data transfer
US5960453A (en) 1996-06-13 1999-09-28 Micron Technology, Inc. Word selection logic to implement an 80 or 96-bit cache SRAM
US6026217A (en) * 1996-06-21 2000-02-15 Digital Equipment Corporation Method and apparatus for eliminating the transpose buffer during a decomposed forward or inverse 2-dimensional discrete cosine transform through operand decomposition storage and retrieval
US5924117A (en) * 1996-12-16 1999-07-13 International Business Machines Corporation Multi-ported and interleaved cache memory supporting multiple simultaneous accesses thereto
US5862154A (en) 1997-01-03 1999-01-19 Micron Technology, Inc. Variable bit width cache memory architecture
US5815697A (en) * 1997-01-09 1998-09-29 Texas Instruments Incorporated Circuits, systems, and methods for reducing microprogram memory power for multiway branching
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US6226707B1 (en) * 1997-11-17 2001-05-01 Siemens Aktiengesellschaft System and method for arranging, accessing and distributing data to achieve zero cycle penalty for access crossing a cache line
US6029225A (en) * 1997-12-16 2000-02-22 Hewlett-Packard Company Cache bank conflict avoidance and cache collision avoidance
DE19809640A1 (de) * 1998-03-06 1999-09-09 Pact Inf Tech Gmbh Geschwindigkeitsoptimiertes Cachesystem
US6275903B1 (en) 1998-04-22 2001-08-14 Sun Microsystems, Inc. Stack cache miss handling
US6108768A (en) * 1998-04-22 2000-08-22 Sun Microsystems, Inc. Reissue logic for individually reissuing instructions trapped in a multiissue stack based computing system
US6170050B1 (en) 1998-04-22 2001-01-02 Sun Microsystems, Inc. Length decoder for variable length data
US6237086B1 (en) 1998-04-22 2001-05-22 Sun Microsystems, Inc. 1 Method to prevent pipeline stalls in superscalar stack based computing systems
US6233655B1 (en) 1998-04-30 2001-05-15 International Business Machines Corporation Method for Quad-word Storing into 2-way interleaved L1 cache
US6442667B1 (en) 1998-06-08 2002-08-27 Texas Instruments Incorporated Selectively powering X Y organized memory banks
US6202139B1 (en) * 1998-06-19 2001-03-13 Advanced Micro Devices, Inc. Pipelined data cache with multiple ports and processor with load/store unit selecting only load or store operations for concurrent processing
DE19948099A1 (de) * 1999-10-06 2001-04-19 Infineon Technologies Ag Prozessorsystem, insbesondere ein Prozessorsystem für Kommunikationseinrichtungen
US6606684B1 (en) * 2000-03-31 2003-08-12 Intel Corporation Multi-tiered memory bank having different data buffer sizes with a programmable bank select
US7096324B1 (en) 2000-06-12 2006-08-22 Altera Corporation Embedded processor with dual-port SRAM for programmable logic
US6625698B2 (en) * 2000-12-28 2003-09-23 Unisys Corporation Method and apparatus for controlling memory storage locks based on cache line ownership
US6763421B2 (en) * 2001-10-11 2004-07-13 International Business Machines Corporation Instruction pair detection and pseudo ports for cache array
US6775735B2 (en) * 2001-10-11 2004-08-10 International Business Machines Corporation Instruction pair detection and pseudo ports for cache array
KR20050079862A (ko) * 2004-02-07 2005-08-11 삼성전자주식회사 접근 금지 신호를 갖는 듀얼 포트 메모리 장치
JPWO2003073430A1 (ja) * 2002-02-28 2005-06-23 株式会社ルネサステクノロジ 不揮発性半導体記憶装置
US6944713B2 (en) 2002-06-18 2005-09-13 Intel Corporation Low power set associative cache
US7073026B2 (en) * 2002-11-26 2006-07-04 Advanced Micro Devices, Inc. Microprocessor including cache memory supporting multiple accesses per cycle
US7039762B2 (en) * 2003-05-12 2006-05-02 International Business Machines Corporation Parallel cache interleave accesses with address-sliced directories
US6990556B2 (en) * 2003-05-12 2006-01-24 International Business Machines Corporation System and method for simultaneous access of the same doubleword in cache storage
US7174426B2 (en) * 2003-07-24 2007-02-06 International Business Machines Corporation Interleave pre-checking in front of shared caches with pipelined access
TW200506733A (en) * 2003-08-15 2005-02-16 Via Tech Inc Apparatus and method for the co-simulation of CPU and DUT modules
US7085887B2 (en) * 2003-08-21 2006-08-01 Hewlett-Packard Development Company, L.P. Processor and processor method of operation
US8209490B2 (en) * 2003-12-30 2012-06-26 Intel Corporation Protocol for maintaining cache coherency in a CMP
US7634622B1 (en) 2005-06-14 2009-12-15 Consentry Networks, Inc. Packet processor that generates packet-start offsets to immediately store incoming streamed packets using parallel, staggered round-robin arbitration to interleaved banks of memory
WO2007143278A2 (en) 2006-04-12 2007-12-13 Soft Machines, Inc. Apparatus and method for processing an instruction matrix specifying parallel and dependent operations
EP2122461A4 (en) 2006-11-14 2010-03-24 Soft Machines Inc DEVICE AND METHOD FOR PROCESSING COMMUNICATIONS IN A MULTITHREAD ARCHITECTURE WITH CONTEXT CHANGES
EP2616928B1 (en) 2010-09-17 2016-11-02 Soft Machines, Inc. Single cycle multi-branch prediction including shadow cache for early far branch prediction
EP2689327B1 (en) 2011-03-25 2021-07-28 Intel Corporation Executing instruction sequence code blocks by using virtual cores instantiated by partitionable engines
WO2012135041A2 (en) 2011-03-25 2012-10-04 Soft Machines, Inc. Register file segments for supporting code block execution by using virtual cores instantiated by partitionable engines
US9274793B2 (en) 2011-03-25 2016-03-01 Soft Machines, Inc. Memory fragments for supporting code block execution by using virtual cores instantiated by partitionable engines
KR101639853B1 (ko) 2011-05-20 2016-07-14 소프트 머신즈, 인크. 복수의 엔진에 의해 명령어 시퀀스들의 실행을 지원하기 위한 자원들 및 상호접속 구조들의 비집중 할당
TWI548994B (zh) 2011-05-20 2016-09-11 軟體機器公司 以複數個引擎支援指令序列的執行之互連結構
EP2783281B1 (en) 2011-11-22 2020-05-13 Intel Corporation A microprocessor accelerated code optimizer
KR101842550B1 (ko) 2011-11-22 2018-03-28 소프트 머신즈, 인크. 다중 엔진 마이크로프로세서용 가속 코드 최적화기
US8675434B1 (en) 2012-02-23 2014-03-18 Cypress Semiconductor Corporation High speed time interleaved sense amplifier circuits, methods and memory devices incorporating the same
US8930674B2 (en) 2012-03-07 2015-01-06 Soft Machines, Inc. Systems and methods for accessing a unified translation lookaside buffer
US9740612B2 (en) 2012-07-30 2017-08-22 Intel Corporation Systems and methods for maintaining the coherency of a store coalescing cache and a load cache
US9430410B2 (en) * 2012-07-30 2016-08-30 Soft Machines, Inc. Systems and methods for supporting a plurality of load accesses of a cache in a single cycle
US9916253B2 (en) * 2012-07-30 2018-03-13 Intel Corporation Method and apparatus for supporting a plurality of load accesses of a cache in a single cycle to maintain throughput
US9710399B2 (en) 2012-07-30 2017-07-18 Intel Corporation Systems and methods for flushing a cache with modified data
US9229873B2 (en) 2012-07-30 2016-01-05 Soft Machines, Inc. Systems and methods for supporting a plurality of load and store accesses of a cache
US9678882B2 (en) 2012-10-11 2017-06-13 Intel Corporation Systems and methods for non-blocking implementation of cache flush instructions
WO2014150806A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for populating register view data structure by using register template snapshots
US9811342B2 (en) 2013-03-15 2017-11-07 Intel Corporation Method for performing dual dispatch of blocks and half blocks
WO2014150991A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for implementing a reduced size register view data structure in a microprocessor
US10275255B2 (en) 2013-03-15 2019-04-30 Intel Corporation Method for dependency broadcasting through a source organized source view data structure
US10140138B2 (en) 2013-03-15 2018-11-27 Intel Corporation Methods, systems and apparatus for supporting wide and efficient front-end operation with guest-architecture emulation
US9891924B2 (en) 2013-03-15 2018-02-13 Intel Corporation Method for implementing a reduced size register view data structure in a microprocessor
EP2972845B1 (en) 2013-03-15 2021-07-07 Intel Corporation A method for executing multithreaded instructions grouped onto blocks
US9569216B2 (en) 2013-03-15 2017-02-14 Soft Machines, Inc. Method for populating a source view data structure by using register template snapshots
US9886279B2 (en) 2013-03-15 2018-02-06 Intel Corporation Method for populating and instruction view data structure by using register template snapshots
CN105247484B (zh) 2013-03-15 2021-02-23 英特尔公司 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
US9904625B2 (en) 2013-03-15 2018-02-27 Intel Corporation Methods, systems and apparatus for predicting the way of a set associative cache
WO2014150971A1 (en) 2013-03-15 2014-09-25 Soft Machines, Inc. A method for dependency broadcasting through a block organized source view data structure
US20160232006A1 (en) * 2015-02-09 2016-08-11 Qualcomm Incorporated Fan out of result of explicit data graph execution instruction
CN111209232B (zh) * 2018-11-21 2022-04-22 昆仑芯(北京)科技有限公司 访问静态随机存取存储器的方法、装置、设备和存储介质
KR20220045480A (ko) * 2020-10-05 2022-04-12 삼성전자주식회사 인-메모리 프로세싱을 수행하는 메모리 디바이스
US11914518B1 (en) * 2022-09-21 2024-02-27 Arm Limited Apparatus and method for operating a cache storage

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067071A (en) * 1985-02-27 1991-11-19 Encore Computer Corporation Multiprocessor computer system employing a plurality of tightly coupled processors with interrupt vector bus
US4783736A (en) * 1985-07-22 1988-11-08 Alliant Computer Systems Corporation Digital computer with multisection cache
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4851991A (en) * 1987-02-24 1989-07-25 Digital Equipment Corporation Central processor unit for digital data processing system including write buffer management mechanism
US4833599A (en) * 1987-04-20 1989-05-23 Multiflow Computer, Inc. Hierarchical priority branch handling for parallel execution in a parallel processor
US5179680A (en) * 1987-04-20 1993-01-12 Digital Equipment Corporation Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus
US4933846A (en) * 1987-04-24 1990-06-12 Network Systems Corporation Network communications adapter with dual interleaved memory banks servicing multiple processors
US5058051A (en) * 1988-07-29 1991-10-15 Texas Medical Instruments, Inc. Address register processor system
US5043874A (en) * 1989-02-03 1991-08-27 Digital Equipment Corporation Memory configuration for use with means for interfacing a system control unit for a multi-processor system with the system main memory
US5168547A (en) * 1989-12-29 1992-12-01 Supercomputer Systems Limited Partnership Distributed architecture for input/output for a multiprocessor system
US5128888A (en) * 1990-04-02 1992-07-07 Advanced Micro Devices, Inc. Arithmetic unit having multiple accumulators
US5155843A (en) * 1990-06-29 1992-10-13 Digital Equipment Corporation Error transition mode for multi-processor system

Also Published As

Publication number Publication date
WO1993013481A1 (en) 1993-07-08
US5559986A (en) 1996-09-24
GB2277181B (en) 1995-12-13
AU3330793A (en) 1993-07-28
GB9407321D0 (en) 1994-06-22
GB2277181A (en) 1994-10-19

Similar Documents

Publication Publication Date Title
JPH07502358A (ja) マイクロプロセッサーのクロックに依るマルチプル・アクセスのためのインターリーブ・キャッシュ
US5557768A (en) Functional pipelined virtual multiport cache memory with plural access during a single cycle
EP0622737B1 (en) High performance memory system
JP2775549B2 (ja) 連想メモリセルおよび連想メモリ回路
JP2006190402A (ja) 半導体装置
JPH03286495A (ja) 半導体記憶装置
US7836253B2 (en) Cache memory having pipeline structure and method for controlling the same
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
JPH06332801A (ja) 完全統合型キャッシュ・アーキテクチャ
JPH10177519A (ja) 統合されたプロセッサ・メモリ装置
US6948028B2 (en) Destructive-read random access memory system buffered with destructive-read memory cache
US5933850A (en) Instruction unit having a partitioned cache
JP4395511B2 (ja) マルチcpuシステムのメモリアクセス性能を改善する方法及び装置
US6385691B2 (en) Memory device with command buffer that allows internal command buffer jumps
RU2400804C2 (ru) Способ и система для предоставления энергетически эффективного регистрового файла
JP2009505180A (ja) 少なくとも2つの処理ユニットと、及び少なくとも1つのメモリとを有する計算機システム内に形成される及び記憶装置、及びそれによる記憶方法
US6925028B2 (en) DRAM with multiple virtual bank architecture for random row access
US5802586A (en) Cache memory having a read-modify-write operation and simultaneous burst read and write operations and a method therefor
JPH06187240A (ja) データ処理システムに用いられるメモリ装置およびその動作方法
US5359557A (en) Dual-port array with storage redundancy having a cross-write operation
WO2004021201A1 (en) Address decode
JPH04250542A (ja) コンピューターメモリシステム
JPH07200385A (ja) 低電力動作モードを備えたメモリを有するデータ処理システムおよびその方法
JPH08212779A (ja) メモリアレイ、キャッシュ、およびマイクロプロセッサ
JP3206960B2 (ja) 拡張中央演算処理装置