JPH08328958A - 命令キャッシュ、キャッシュメモリ装置及びその方法 - Google Patents

命令キャッシュ、キャッシュメモリ装置及びその方法

Info

Publication number
JPH08328958A
JPH08328958A JP7245358A JP24535895A JPH08328958A JP H08328958 A JPH08328958 A JP H08328958A JP 7245358 A JP7245358 A JP 7245358A JP 24535895 A JP24535895 A JP 24535895A JP H08328958 A JPH08328958 A JP H08328958A
Authority
JP
Japan
Prior art keywords
cache memory
data
instruction
storage area
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.)
Ceased
Application number
JP7245358A
Other languages
English (en)
Inventor
Kumar Rajendra
ラジェンドラ・クマー
Paul Gene Emerson
ポール・ジーン・エマーソン
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.)
HP Inc
Original Assignee
Hewlett Packard Co
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 Hewlett Packard Co filed Critical Hewlett Packard Co
Publication of JPH08328958A publication Critical patent/JPH08328958A/ja
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • 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/0848Partitioned cache, e.g. separate instruction and operand caches

Abstract

(57)【要約】 【課題】順次命令と分岐目的命令の2種類の命令をフレ
キシブルかつ効率的に記憶することのできる命令キャッ
シュを提供する。 【解決手段】命令ユニット2は単一のキャッシュメモリ
10を備え、第1の記憶領域12と第2の記憶領域14
に水平方向に区分されている。キャッシュメモリ10へ
の書き込み動作中、順次命令とそれに関係付けられたタ
グがそれぞれ先取りバッファ6とタグバッファ4を介し
て第1の記憶領域12に記憶される。キャッシュメモリ
10に書き込むべき命令が分岐目的命令である場合、先
取りバッファ6とタグバッファ4からのこの命令とそれ
に関係付けられたタグはキャッシュメモリ10の第2の
記憶領域14に記憶される。読み出し動作中、命令は分
割線16における区分とは無関係に第1の記憶領域12
或は第2の記憶領域14のいずれかから読み出される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は命令キャッシュに関し、
より詳細には2つあるいはそれ以上の部分に水平方向に
論理的に区切られた命令キャッシュに関する。
【0002】
【従来の技術】ほとんどのマイクロプロセッサはメモリ
に保持されたデータへのアクセスを高速化するためのプ
ロセッサチップ上に命令キャッシュを有する。通常、か
かるキャッシュは面積要求とサイクルタイム上の制約の
ために比較的小型である。したがって、かかるキャッシ
ュを効率的かつ効果的に使用することが重要であり、さ
もなければマイクロプロセッサの性能が低下する。
【0003】処理システム以外でも、最近のマイクロプ
ロセッサは通常データキャッシュと命令キャッシュを備
える。データキャッシュは処理システム(たとえば機能
装置や中央処理装置)が至急に必要とする可能性の高い
データを記憶するものである。命令キャッシュは実行に
先立ってあらかじめフェッチされた命令を記憶する。命
令キャッシュは2つの異なる種類の命令、すなわち順次
命令と分岐目的命令を記憶する。プログラミングにおい
て命令の大部分をなすのはほんとんどの場合順次命令で
ある。また、分岐目的命令もたとえばプログラム内にル
ープが存在するといった理由で多くのプログラムに見ら
れるものである。
【0004】
【発明が解決しようとする課題】命令キャッシュを構成
するための周知の技術には、通常2つの異なるキャッシ
ュが用いられて来た。すなわち、順次命令を記憶するた
めの命令キャッシュと分岐目的命令を記憶するためのも
う1つの命令キャッシュである。しかし、この従来の方
法は2つのキャッシュの間に追加のダイ領域とバスが必
要になるため実施コストが高くなるという問題がある。
さらに、この方法を用いると余分な遅延が生じる可能性
がある。もう一つの周知の方法として、順次命令と分岐
目的命令の両方を同じ命令キャッシュに入れる方法があ
る。この方法には、一方の命令が他方の命令を移動する
ことができ、そこで大きな遅延が生じる可能税があると
いう深刻な汚染の問題がある。
【0005】したがって、これら2種類の命令をフレキ
シブルにまた効率的に記憶することのできる命令キャッ
シュが必要とされている。
【0006】
【課題を解決するための手段】本発明は広義には書き込
み動作中プログラム可能な方法あるいは適応的な方法で
いくつかの領域に区分されるキャッシュメモリに関す
る。キャッシュメモリの区分は読み出し動作には影響し
ない。キャッシュメモリ内の各領域には異なる種類のデ
ータが記憶される。命令キャッシュとしては、ある領域
には順次キャッシュが記憶され、他の領域には分岐目的
命令が記憶される。データキャッシュとしては、ある領
域はデータキャッシュメモリとして機能し、他の領域は
ビクティムキャッシュおよび/または先取りキャッシュ
として機能する。本発明は装置あるいは方法として実施
することができる。
【0007】装置としては、このキャッシュメモリはデ
ータを記憶するためのメモリセルの1つのアレーと区分
回路を有する。このメモリセルアレーは少なくとも書き
込みワード線、書き込みビット線、および読み出しビッ
ト線を有する。区分回路はこのアレーを第1の記憶領域
と第2の記憶領域に区分する動作をする。アレーへの書
き込み動作中、第1および第2の記憶領域は別個のキャ
ッシュメモリとして動作し、読み出し動作中には、第1
の記憶領域、第2の記憶領域にかかわりなく単一のキャ
ッシュメモリとして動作する。また、アレーを動的に区
分することもできる。
【0008】方法としては、本発明はキャッシュメモリ
を少なくとも第1の種類のデータと第2の種類のデータ
を記憶するように動作させる。キャッシュメモリは少な
くとも第1および第2の記憶領域に区分される。その
後、このキャッシュメモリに書き込むべきデータが受け
取られると、この方法ではこのデータをキャッシュメモ
リのどの記憶領域に記憶すべきかが判定される。受け取
ったデータが第1の種類のデータである場合、このデー
タは第1の記憶領域に記憶される。他方、受け取ったデ
ータが第2の種類のデータである場合、このデータは第
2の記憶領域に記憶される。たとえば、区分は電源投入
時に静的に行なうことができ、あるいはこのキャッシュ
メモリを含む処理システムによって実行されるコンピュ
ータプログラムに含まれるプログラム命令によって動的
に行なうこともできる。
【0009】本発明の他の特徴および利点は本発明の原
理を例示する添付図面を参照した以下の詳細な説明から
明らかになるであろう。
【0010】
【実施例】本発明の実施例を図1ないし図4を参照して
説明する。当業者には、本発明はここに述べる実施例に
は限定されないため、これらの図面を参照してここで行
なう詳細な説明は例示に過ぎないことが理解されよう。
【0011】図1は本発明の第1の実施例による命令ユ
ニット2のブロック図である。(書き込み動作中の)命
令ユニット2の目的は命令をそれに関係付けられたタグ
(アドレスタグ)とともに受け取ってこれらの命令およ
びタグを命令キャッシュに記憶することである。通常、
高性能なコンピュータでは、かかる命令およびタグは主
記憶装置あるいはレベル2キャッシュメモリから先取り
的に得られる。その後、命令ユニット2は(読み出し動
作中に)適当な命令を処理システムの1つあるいはそれ
以上の機能ユニットに供給する。これらの機能ユニット
はさまざまな動作を実行することによって命令を実行す
る。
【0012】命令ユニット2はタグバッファ4と先取り
バッファ6を備える。先取りバッファ6は実行中(ある
いは実行予定の)プログラム内の命令ストリームから命
令を受け取り記憶する。かかる命令は処理システムの設
計に応じて復号されることもあり、また復号されないこ
ともある。タグバッファ4は先取りバッファ6に記憶さ
れた命令に対応するタグを記憶する。前述したように、
命令ユニット2が受け取った命令とタグはより低いレベ
ル(たとえばレベル2)のキャッシュメモリあるいは主
記憶装置からのものである。
【0013】また、命令ユニット2はキャッシュメモリ
10を備える。キャッシュメモリ10は単一のキャッシ
ュメモリである。すなわち。キャッシュメモリ10は1
つのメモリ記憶アレーを備える。キャッシュメモリ10
は第1の記憶領域12と第2の記憶領域14に水平方向
に区分されている。キャッシュメモリ10への書き込み
動作中、順次命令とそれに関係付けられたタグがそれぞ
れ先取りバッファ6とタグバッファ4を介して第1の記
憶領域12に記憶される。あるいは、キャッシュメモリ
10に書き込むべき命令が分岐目的命令である場合、先
取りバッファ6とタグバッファ4からのこの命令とそれ
に関係付けられたタグはキャッシュメモリ10の第2の
記憶領域14に記憶される。
【0014】キャッシュメモリ10の区分は分割線16
を示す仕切りを命令キャッシュ10に入れることによっ
て行なわれる。しかし、後述するように、分割線16は
物理的に存在するものではなく、アドレス指定によって
設けられるものである。
【0015】読み出し動作中、命令は分割線16におけ
る区分とは無関係に第1の記憶領域12あるいは第2の
記憶領域14のいずれかから読み出される。すなわち、
キャッシュメモリ10内の、読み出すべき命令に関係付
けられたタグと一致するタグを有する命令が命令バッフ
ァ18に供給される。その後、命令バッファ18はこの
命令を処理システムの適当な機能ユニットに供給する。
【0016】図2は書き込み動作中の本発明の第1実施
例を示すブロック図である。一般に、書き込み動作中、
(バッファ4および6から供給される)タグデータ20
と命令データ22は書き込みビット線(WBL)24に入
れられる。また、キャッシュメモリ10は書き込み動作
中書き込みワード線(WWL)26を用いる。キャッシュ
メモリ10内のWBLとWWLの交差部にメモリセルが存在す
る。復号器28がいくつかの書き込みワード線(WWL)
26のうちの1つを選択するアドレス30を受け取る。
次に、選択されたWWLがキャッシュメモリ10のそれに
関係付けられたメモリセルにタグデータ20と命令デー
タ22を記憶するように起動される。
【0017】本発明の実施において、分割線16はキャ
ッシュメモリ10を第1の領域12と第2の領域14に
区分するはたらきをする。したがって、復号器28はキ
ャッシュメモリ10に書き込むべき命令が順次命令であ
るとき書き込みワード線WWL1からWWLnのうちの1つを被
選択WWLとして選択する。これによって、この順次命令
がキャッシュメモリ10の第1の記憶領域12に記憶さ
れる。一方、復号器28はキャッシュメモリ10に書き
込むべき命令が分岐目的命令であるとき書き込みワード
線WWLn+1からWWLn+mのうちの1つを被選択WWLとして選
択する。
【0018】本実施例では、復号器28に供給されるア
ドレス30は復号器28がキャッシュメモリ10に記憶
すべき命令の種類に基づいて適当な書き込みワード線
(WWL)26を選択する新しい方法で制御される。
【0019】図3は本発明のアドレス回路32の実施例
のブロック図である。アドレス回路32は、順次アドレ
スを生成する順次アドレス生成回路34と目的のアドレ
スを生成する目的アドレス生成回路36を有する。これ
らのアドレス生成回路34、36はいずれもプログラマ
ブル基数レジスタ38からの基数、キャッシュサイズレ
ジスタ40からのキャッシュサイズ、およびリセット信
号42を受け取る。プログラマブル基数レジスタ38に
記憶された基数値はキャッシュメモリ10内の区分を行
なうべき位置を示す値である。キャッシュメモリ10を
3つ以上の領域に区分すべき場合、このプログラマブル
基数レジスタは区分を行なうべき位置を示すいくつかの
値を含む。基数は電源投入時にプログラマブル基数レジ
スタ38に記憶されてもよく、またソフトウエア技術を
用いて記憶されてもよい。ソフトウエア技術を用いる場
合の利点は、プログラマブル基数レジスタ38を動的に
変更することができることである。たとえば、プログラ
マブル基数レジスタ38はアドレス指定可能であり、特
殊なロード命令を実行してプログラマブル基数レジスタ
38に基数値を書き込むことができる。
【0020】アドレス回路32はまた選択信号46に基
づいて順次アドレスと目的アドレスのうちの1つを選択
するセレクタ44を有する。選択信号46は命令ユニッ
ト2内のハードウエア(図示せず)によって提供するこ
とができ、先取りされた命令がたとえば順次命令である
か分岐目的命令であるかが簡単に判定される。たとえ
ば、命令が先取りされると、命令ユニット2には順次命
令をフェッチしているのか、分岐目的命令をフェッチし
ているのかかがわかる。これは、通常なんらかの予測法
を用いて分岐の可能性の有無が判断されるためである。
したがって、命令が先取りされるとき、目的/順次ビッ
トをセットし、その後これを用いて選択信号46を生成
することができる。
【0021】実際には、プログラマブル基数レジスタ3
8に記憶される基数値は図2に示す値nに対応し、キャ
ッシュサイズレジスタ40に保持されるキャッシュサイ
ズは図2に示す値n+mに対応する。キャッシュメモリ1
0が2つの領域にのみ区分される上述した実施例では、
書き込みワード線WWLn+mは第2の記憶領域14の最終ワ
ード線を示す。プログラマブル基数レジスタ38に記憶
された値は第1の記憶領域12内の最終書き込みワード
線(WWLn)である値nを示す。
【0022】アドレス生成回路34および36はデジタ
ルカウンタを用いて構成することができる。さらに、書
き込むべきデータを記憶する領域内の起動すべき書き込
みワード線の判定はさまざまな周知のアルゴリズムを用
いて行なうことができる。周知のアルゴリズムの1つに
ランダム置換アルゴリズムがある。ランダム置換を用い
て、アドレス生成回路34および36は対象とする領域
内にアドレスを簡単にランダムに生成する。もう一つの
周知のアルゴリズムとしては利用可能な書き込みワード
線が見つかるまでキャッシュメモリ内の領域を探索する
ものがある。そして、利用可能と判定された第1の書き
込みワード線を用いて書き込むべきデータが記憶され
る。この方法では、特定の書き込みワード線の利用可能
性は通常キャッシュメモリに記憶されたそれぞれのワー
ドに関係付けられた追加ビットによって示される。この
追加ビットは好適には処理システムのバックグラウンド
モードにおいてセットあるいはリセットされる。この場
合、処理システムは利用可能な書き込みワード線が見つ
かるまでキャッシュメモリ内のそれぞれの領域を探索
し、次にこの位置に記憶すべきデータを記憶する。所定
の期間内に利用可能な書き込みワード線が見つからない
場合、書き込みワード線を任意に選択することができ
る。
【0023】図4は読み出し動作中のキャッシュメモリ
のブロック図である。キャッシュメモリ10は読み出し
ビット線(RBL)48、49、突き合わせ線50、およ
び書き込み線52を有する。読み出し動作中、タグデー
タ54が読み出しビット線(RBL)48のうちのあるも
のに入れられる。次に、タグデータ54が突き合わせ線
(ML)50のそれぞれに関係付けられたメモリセルに記
憶されたタグと比較される。最良の場合、記憶されたタ
グと供給されたタグの一致が発見され突き合わせ線(M
L)50の1つが起動される。起動された突き合わせ線
はハイになり、ラッチ56にラッチされる。次に、ラッ
チ56がバッファ58を介してそれに関係付けられたワ
ード線(WL)52を駆動する。図4には1つのラッチ5
6とバッファ58だけを示すが、それぞれの突き合わせ
線にラッチ56とバッファ58が1つずつ関係付けられ
ている。駆動されるワード線(WL)52は、そのワード
線に関係するメモリセルに記憶される命令に関係するデ
ータを、記憶される命令に関係する読み出しビット線4
9上に入れる。これによって、記憶された命令がこの読
み出しビット線49を介して命令バッファ18に供給さ
れる。
【0024】処理システムは周期Pを有するタイミング
クロック(CLK)にしたがって動作あるいは命令を実行
する。たとえば、周期Pはワークステーション等の高性
能コンピュータでは現在4ナノ秒程度である。かかる速
度を可能にするために、データタグ54とメモリセルに
記憶されたタグの比較は好適にはそのタグを含むメモリ
セルの内容参照可能メモリ(CAM)を用いて行なわれ
る。命令を記憶するメモリセルは好適にはランダムアク
セスメモリ(RAM)を用いて構成される。タイミングク
ロックのサイクルの前半に、CAM内でアドレスの評価が
行なわれ、RAM記憶がプリチャージされる。タイミング
クロックサイクルの後半において、RAMが読み出され、C
AMがプリチャージされる。
【0025】上述した実施例ではキャッシュメモリが2
つの領域に区分されているが、本発明ではキャッシュメ
モリを3つ以上の領域に区分することもできる。たとえ
ば、キャッシュメモリを、順次命令領域、分岐目的命令
領域、およびビクティムキャッシュ領域の3つの領域に
区分することもできる。この場合、レベル2のキャッシ
ュミスが発生すると、レベル2キャッシュ内の交換され
る線をビクティムキャッシュに記憶することができる。
書き込みビット線を用いて交換されるキャッシュ線をビ
クティムキャッシュに書き込むことができる。順次命令
領域、分岐目的命令領域、およびビクティムキャッシュ
領域がすべて同じタグを用いる場合(たとえばすべて物
理的タグである場合、あるいはすべて仮想タグである場
合)、1サイクルの読み出し動作中にこれら3つの領域
のすべてを同時に参照することができる。これらの領域
が同じタグを用いていない場合、2サイクルが必要であ
る。第1のサイクルで、仮想タグの比較とアドレス変換
を行なって物理的タグを得ることができる。第1のサイ
クルでミスが発生した場合、第2のサイクルで物理的タ
グを用いる領域のヒットが調べられる。第2のサイクル
でヒットがあった場合、そのキャッシュ線が読み出さ
れ、キャッシュの他の領域に移され、同じキャッシュ線
への将来のアクセスに対する1サイクルのペナルティが
回避される。
【0026】ソフトウエアがプログラムコード内にルー
プを含む場合、ソフトウエアプログラムを実行しながら
本発明を動的あるいは適応的に応用することが有効であ
る。たとえば、コンパイラがプログラムコードのループ
が実行される部分を同定し、コードのかかるループ部分
の前に、(実行されると)分岐目的命令に割り当てられ
るキャッシュメモリ内の領域のサイズを大きくする命令
を示す。次に、プログラムコードがこのループ部分を過
ぎると、コンパイラはキャッシュメモリの分岐目的命令
領域のサイズを小さくする他の命令を挿入する。かかる
技術によって実行されるプログラムの特徴に応じてキャ
ッシュメモリの利用が最適化される。プログラマブル基
数レジスタ38を用いて区分情報を動的に記憶すること
ができる。
【0027】本発明は直接マッピングされるキャッシュ
と完全連想キャッシュのいずれにも適用することができ
る。さらに、以上の説明では本発明を主として命令キャ
ッシュの実施例を参照して説明したが、本発明はデータ
キャッシュにも実施することができ、その場合異なるデ
ータに区分することによって性能の向上をはかることが
できる。また、本発明はキャッシュメモリを命令キャッ
シュ領域とデータキャッシュ領域に区分するのに用いる
こともできる。
【0028】また、たとえば同時出願の“Vertically P
artitioned Primary Instruction Code”と題する米国
特許出願08/299,174に説明するように命令キ
ャッシュを垂直方向に区分することが好適な場合があ
る。たとえば、命令キャッシュ10を垂直方向に区分し
てパイプラインに次の命令のアドレスを判定するための
追加の段を設けることを不要にすることができる。
【0029】以上、本発明の多くの特徴と利点を説明し
た。また特許請求の範囲はかかる特徴と利点のすべてを
含むものである。さらに、当業者には本発明に対するさ
まざまな変更を加えることは容易であり、本発明はここ
に説明する構造や動作には限定されない。したがって、
適当な変更や相当品とうはすべて本発明の範囲に含まれ
るものである。
【0030】以上、本発明の実施例について詳述した
が、以下、本発明を各実施態様毎に列挙する。 (1). 少なくとも書き込みワード線、書き込みビッ
ト線、および読み出しビット線を含む、データを記憶す
るためのメモリセルの1つのアレーと、前記アレーを第
1の記憶領域と第2の記憶領域に区分するように配設さ
れた区分回路を有し、前記アレーへの書き込み動作中、
第1および第2の記憶領域は別個のキャッシュメモリと
して動作し、読み出し動作中、前記アレーは第1および
第2の記憶領域と無関係に単一のキャッシュメモリとし
て動作するキャッシュメモリ。 (2). 前記キャッシュメモリは基数値を記憶するた
めの基数レジスタを有し、前記アレーは基数値にしたが
って区分される(1)に記載のキャッシュメモリ。 (3). 前記区分回路は前記アレーを動的に区分する
(1)に記載のキャッシュメモリ。 (4). 前記区分回路は、基数値を記憶するためのプ
ログラマブル基数レジスタ、部分的には基数値に基づく
順次アドレスを生成するための、前記基数レジスタと連
動する順次アドレス生成回路、部分的には基数値に基づ
く分岐目的アドレスを生成するための、前記基数レジス
タと連動する目的アドレス生成回路、選択信号に基づい
て順次アドレスと分岐目的アドレスのうちの1つを被選
択アドレスとして選択するための、前記順次アドレス生
成回路と前記目的アドレス生成回路と連動するセレク
タ、および前記被選択アドレスを受け取り、それに関係
付けられた書き込むワード線の1つを起動するための、
前記セレクタと連動する復号器を有する(1)に記載の
キャッシュメモリ。 (5). メモリ記憶領域からアドレスを受け取りデー
タを出力するキャッシュメモリ装置であって、書き込み
動作中、前記メモリ記憶領域はプログラム可能なあるい
は適応的な方法で複数の領域に区分されるキャッシュメ
モリ装置。 (6). 前記メモリ記憶領域の区分は読み出し動作に
影響しない(5)に記載のキャッシュメモリ装置。 (7). 前記領域はそれぞれ異なる種類のデータを記
憶する(5)に記載のキャッシュメモリ装置。 (8). 前記複数の領域は少なくとも順次命令を記憶
する第1の記憶領域と分岐目的命令を記憶する第2の記
憶領域を有する(5)に記載のキャッシュメモリ装置。 (9). アドレス回路が基数値にしたがって前記メモ
リ記憶領域の区分を行なう(5)に記載のキャッシュメ
モリ装置。 (10). 前記基数値はプログラマブル基数レジスタ
に記憶される(9)に記載のキャッシュメモリ装置。 (11). コンピュータプログラムを実行するコンピ
ュータシステム内で用いられ、前記基数値は実行される
コンピュータプログラムに含まれる命令によって設定さ
れる(9)に記載のキャッシュメモリ装置。 (12). 少なくとも第1の種類のデータと第2の種
類のデータを記憶するキャッシュメモリを動作させる方
法であって、(a)前記キャッシュメモリを少なくとも
第1および第2の記憶領域に区分するステップ、(b)
前記キャッシュメモリに書き込むべきデータを受け取る
ステップ、(c)受け取ったデータが前記第1の種類の
データである場合、前記データを前記第1の記憶領域に
記憶するステップ、および(d)受け取ったデータが前
記第2の種類のデータである場合、前記データを前記第
2の記憶領域に記憶するステップを有する方法。 (13). 前記区分によって前記キャッシュメモリ内
の区画の大きさが動的に変更される(12)に記載の方
法。 (14). 前記区分は前記キャッシュメモリを含む処
理システムによって実行されるコンピュータプログラム
に含まれるプログラム命令によって動的に変更される
(13)に記載の方法。 (15). 前記方法が(e)前記区分と無関係に前記
キャッシュメモリからデータを読み出すステップを有す
る(12)に記載の方法。
【0031】
【発明の効果】以上のように、本発明を用いると、順次
命令と分岐目的命令の2種類の命令をフレキシブルにま
た効率的に記憶することのできる命令キャッシュを提供
することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例による命令ユニットの
ブロック図である。
【図2】 書き込み動作中の本発明の第1実施例を示す
ブロック図である。
【図3】 本発明のアドレス回路の実施例のブロック図
である。
【図4】 読み出し動作中の本発明の第1実施例を示す
ブロック図である。
【符号の説明】
2:命令ユニット 4:タグバッファ 6:先取りバッファ 10:キャッシュメモリ 12:第1の記憶領域 14:第2の記憶領域 16:分割線 18:命令バッファ 20:タグデータ 22:命令データ 24:書き込みビット線(WBL) 26:書き込みワード線(WWL) 28:復号器 30:アドレス 32:アドレス回路 34:順次アドレス生成回路 36:目的アドレス生成回路 38:プログラマブル基数レジスタ 40:キャッシュサイズレジスタ 42:リセット信号 44:セレクタ 46:選択信号 48、49:読み出しビット線(RBL) 50:突き合わせ線 52:書き込み線 54:タグデータ 56:ラッチ 58:バッファ WWL1からWWLn:書き込みワード線 WWLn+1からWWLn+m:書き込みワード線

Claims (15)

    【特許請求の範囲】
  1. 【請求項1】少なくとも書き込みワード線、書き込みビ
    ット線、および読み出しビット線を含む、データを記憶
    するためのメモリセルの1つのアレーと、 前記アレーを第1の記憶領域と第2の記憶領域に区分す
    るように配設された区分回路を有し、 前記アレーへの書き込み動作中、第1および第2の記憶
    領域は別個のキャッシュメモリとして動作し、読み出し
    動作中、前記アレーは第1および第2の記憶領域と無関
    係に単一のキャッシュメモリとして動作するキャッシュ
    メモリ。
  2. 【請求項2】前記キャッシュメモリは基数値を記憶する
    ための基数レジスタを有し、前記アレーは基数値にした
    がって区分される請求項1に記載のキャッシュメモリ。
  3. 【請求項3】前記区分回路は前記アレーを動的に区分す
    る請求項1に記載のキャッシュメモリ。
  4. 【請求項4】前記区分回路は、 基数値を記憶するためのプログラマブル基数レジスタ、 部分的には基数値に基づく順次アドレスを生成するため
    の、前記基数レジスタと連動する順次アドレス生成回
    路、 部分的には基数値に基づく分岐目的アドレスを生成する
    ための、前記基数レジスタと連動する目的アドレス生成
    回路、 選択信号に基づいて順次アドレスと分岐目的アドレスの
    うちの1つを被選択アドレスとして選択するための、前
    記順次アドレス生成回路と前記目的アドレス生成回路と
    連動するセレクタ、および前記被選択アドレスを受け取
    り、それに関係付けられた書き込むワード線の1つを起
    動するための、前記セレクタと連動する復号器を有する
    請求項1に記載のキャッシュメモリ。
  5. 【請求項5】メモリ記憶領域からアドレスを受け取りデ
    ータを出力するキャッシュメモリ装置であって、書き込
    み動作中、前記メモリ記憶領域はプログラム可能なある
    いは適応的な方法で複数の領域に区分されるキャッシュ
    メモリ装置。
  6. 【請求項6】前記メモリ記憶領域の区分は読み出し動作
    に影響しない請求項5に記載のキャッシュメモリ装置。
  7. 【請求項7】前記領域はそれぞれ異なる種類のデータを
    記憶する請求項5に記載のキャッシュメモリ装置。
  8. 【請求項8】前記複数の領域は少なくとも順次命令を記
    憶する第1の記憶領域と分岐目的命令を記憶する第2の
    記憶領域を有する請求項5に記載のキャッシュメモリ装
    置。
  9. 【請求項9】アドレス回路が基数値にしたがって前記メ
    モリ記憶領域の区分を行なう請求項5に記載のキャッシ
    ュメモリ装置。
  10. 【請求項10】前記基数値はプログラマブル基数レジス
    タに記憶される請求項9に記載のキャッシュメモリ装
    置。
  11. 【請求項11】コンピュータプログラムを実行するコン
    ピュータシステム内で用いられ、 前記基数値は実行されるコンピュータプログラムに含ま
    れる命令によって設定される請求項9に記載のキャッシ
    ュメモリ装置。
  12. 【請求項12】少なくとも第1の種類のデータと第2の
    種類のデータを記憶するキャッシュメモリを動作させる
    方法であって、 (a)前記キャッシュメモリを少なくとも第1および第
    2の記憶領域に区分するステップ、 (b)前記キャッシュメモリに書き込むべきデータを受
    け取るステップ、 (c)受け取ったデータが前記第1の種類のデータであ
    る場合、前記データを前記第1の記憶領域に記憶するス
    テップ、および (d)受け取ったデータが前記第2の種類のデータであ
    る場合、前記データを前記第2の記憶領域に記憶するス
    テップを有する方法。
  13. 【請求項13】前記区分によって前記キャッシュメモリ
    内の区画の大きさが動的に変更される請求項12に記載
    の方法。
  14. 【請求項14】前記区分は前記キャッシュメモリを含む
    処理システムによって実行されるコンピュータプログラ
    ムに含まれるプログラム命令によって動的に変更される
    請求項13に記載の方法。
  15. 【請求項15】前記方法が (e)前記区分と無関係に前記キャッシュメモリからデ
    ータを読み出すステップを有する請求項12に記載の方
    法。
JP7245358A 1994-08-31 1995-08-29 命令キャッシュ、キャッシュメモリ装置及びその方法 Ceased JPH08328958A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US29886194A 1994-08-31 1994-08-31
US298,861 1994-08-31

Publications (1)

Publication Number Publication Date
JPH08328958A true JPH08328958A (ja) 1996-12-13

Family

ID=23152282

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7245358A Ceased JPH08328958A (ja) 1994-08-31 1995-08-29 命令キャッシュ、キャッシュメモリ装置及びその方法

Country Status (4)

Country Link
US (1) US5737750A (ja)
JP (1) JPH08328958A (ja)
DE (1) DE19526007C2 (ja)
GB (1) GB2292822A (ja)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5732242A (en) * 1995-03-24 1998-03-24 Silicon Graphics, Inc. Consistently specifying way destinations through prefetching hints
US5787472A (en) * 1995-07-31 1998-07-28 Ibm Corporation Disk caching system for selectively providing interval caching or segment caching of vided data
JP3348367B2 (ja) * 1995-12-06 2002-11-20 富士通株式会社 多重アクセス方法および多重アクセスキャッシュメモリ装置
US6745292B1 (en) * 1995-12-08 2004-06-01 Ncr Corporation Apparatus and method for selectively allocating cache lines in a partitioned cache shared by multiprocessors
GB2311880A (en) * 1996-04-03 1997-10-08 Advanced Risc Mach Ltd Partitioned cache memory
US5966734A (en) * 1996-10-18 1999-10-12 Samsung Electronics Co., Ltd. Resizable and relocatable memory scratch pad as a cache slice
GB9701960D0 (en) * 1997-01-30 1997-03-19 Sgs Thomson Microelectronics A cache system
US5963972A (en) * 1997-02-24 1999-10-05 Digital Equipment Corporation Memory architecture dependent program mapping
US6058456A (en) * 1997-04-14 2000-05-02 International Business Machines Corporation Software-managed programmable unified/split caching mechanism for instructions and data
TW322549B (en) * 1997-05-29 1997-12-11 United Microelectronics Corp Memory saving method and devices
US5909694A (en) * 1997-06-12 1999-06-01 International Business Machines Corporation Multiway associative external microprocessor cache
US6223256B1 (en) * 1997-07-22 2001-04-24 Hewlett-Packard Company Computer cache memory with classes and dynamic selection of replacement algorithms
US6199154B1 (en) 1997-11-17 2001-03-06 Advanced Micro Devices, Inc. Selecting cache to fetch in multi-level cache system based on fetch address source and pre-fetching additional data to the cache for future access
GB9727485D0 (en) * 1997-12-30 1998-02-25 Sgs Thomson Microelectronics Processing a data stream
DE19815382C2 (de) * 1998-04-06 2000-02-10 Sgs Thomson Microelectronics Elektrische Schaltungsanordnung mit einer wählbaren Zuordnung von physikalisch dikreten RAM-Speichern zu einzelnen Datenkategorien
US6286081B1 (en) * 1998-05-19 2001-09-04 Advanced Micro Devices, Inc. Mechanism for ensuring data coherency during sequential readings of portions of data that changes with time
US6205519B1 (en) * 1998-05-27 2001-03-20 Hewlett Packard Company Cache management for a multi-threaded processor
JP3738134B2 (ja) * 1998-06-19 2006-01-25 三洋電機株式会社 デジタル信号処理装置
US6370619B1 (en) * 1998-06-22 2002-04-09 Oracle Corporation Managing partitioned cache
US6205537B1 (en) 1998-07-16 2001-03-20 University Of Rochester Mechanism for dynamically adapting the complexity of a microprocessor
US6427192B1 (en) * 1998-09-21 2002-07-30 Advanced Micro Devices, Inc. Method and apparatus for caching victimized branch predictions
US6859861B1 (en) * 1999-01-14 2005-02-22 The United States Of America As Represented By The Secretary Of The Army Space division within computer branch memories
GB2345770B (en) * 1999-01-15 2003-06-25 Advanced Risc Mach Ltd Data processing memory system
GB9901933D0 (en) * 1999-01-28 1999-03-17 Univ Bristol Cache memory
US6378066B1 (en) * 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
US6314494B1 (en) * 1999-04-15 2001-11-06 Agilent Technologies, Inc. Dynamically size configurable data buffer for data cache and prefetch cache memory
DE10056764B4 (de) * 1999-12-08 2007-09-06 International Business Machines Corp. Verfahren und System für eine verbesserte Nutzung der Puffergröße in einem parallelen Prozessor
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
US7051192B2 (en) * 2000-05-31 2006-05-23 Sun Microsystems, Inc. Facilitating value prediction to support speculative program execution
US6792509B2 (en) 2001-04-19 2004-09-14 International Business Machines Corporation Partitioned cache of multiple logical levels with adaptive reconfiguration based on multiple criteria
US6678814B2 (en) * 2001-06-29 2004-01-13 International Business Machines Corporation Method and apparatus for allocating data usages within an embedded dynamic random access memory device
US20030105926A1 (en) * 2001-12-03 2003-06-05 International Business Machies Corporation Variable size prefetch cache
US7330954B2 (en) * 2002-04-18 2008-02-12 Intel Corporation Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices
US6895475B2 (en) * 2002-09-30 2005-05-17 Analog Devices, Inc. Prefetch buffer method and apparatus
JP4258332B2 (ja) * 2003-09-30 2009-04-30 ティアック株式会社 光ディスク装置
US7941585B2 (en) * 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7594081B2 (en) 2004-09-10 2009-09-22 Cavium Networks, Inc. Direct access to low-latency memory
WO2006031551A2 (en) 2004-09-10 2006-03-23 Cavium Networks Selective replication of data structure
US9075730B2 (en) * 2012-12-21 2015-07-07 Advanced Micro Devices, Inc. Mechanisms to bound the presence of cache blocks with specific properties in caches
WO2014143036A1 (en) 2013-03-15 2014-09-18 Intel Corporation Method for pinning data in large cache in multi-level memory system
US10296465B2 (en) 2016-11-29 2019-05-21 Board Of Regents, The University Of Texas System Processor using a level 3 translation lookaside buffer implemented in off-chip or die-stacked dynamic random-access memory
US11256618B2 (en) 2017-07-06 2022-02-22 Silicon Motion, Inc. Storage apparatus managing system comprising local and global registering regions for registering data and associated method
CN109213692B (zh) * 2017-07-06 2022-10-21 慧荣科技股份有限公司 存储装置管理系统以及存储装置管理方法
US10261915B2 (en) * 2017-09-15 2019-04-16 Board Of Regents, The University Of Texas System Intelligently partitioning data cache to allocate space for translation entries
US10282129B1 (en) * 2017-10-24 2019-05-07 Bottomline Technologies (De), Inc. Tenant aware, variable length, deduplication of stored data
US11550577B2 (en) 2019-05-15 2023-01-10 Western Digital Technologies, Inc. Memory circuit for halting a program counter while fetching an instruction sequence from memory
US11048636B2 (en) * 2019-07-31 2021-06-29 Micron Technology, Inc. Cache with set associativity having data defined cache sets
KR102472721B1 (ko) * 2020-12-02 2022-11-30 울산과학기술원 전자 장치 및 이의 제어 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4583162A (en) * 1983-01-13 1986-04-15 The Singer Company Look ahead memory interface
JPS63257853A (ja) * 1987-04-03 1988-10-25 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン キヤツシユ・メモリ・システム
US5101344A (en) * 1988-01-28 1992-03-31 Motorola, Inc. Data processor having split level control store
US4945512A (en) * 1988-09-07 1990-07-31 Unisys Corporation High-speed partitioned set associative cache memory
US4905141A (en) * 1988-10-25 1990-02-27 International Business Machines Corporation Partitioned cache memory with partition look-aside table (PLAT) for early partition assignment identification
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
FR2664719A1 (fr) * 1990-07-10 1992-01-17 Philips Electronique Lab Dispositif de controle pour une memoire tampon a partitionnement reconfigurable.
JPH0799508B2 (ja) * 1990-10-15 1995-10-25 インターナショナル・ビジネス・マシーンズ・コーポレイション キャッシュ記憶機構を動的に区分する方法およびキャッシュ記憶機構システム
US5293609A (en) * 1991-04-19 1994-03-08 International Business Machines Corporation Hit-density-based replacement for data cache with prefetching
IT1248356B (it) * 1991-06-26 1995-01-05 Pomezia Blindart Spa Unita' di accesso a bussola rotante con dispositivo di gestione automatica del suo funzionamento
EP0611462B1 (en) * 1991-11-04 1998-03-04 Unisys Corporation Memory unit including a multiple write cache
US5434992A (en) * 1992-09-04 1995-07-18 International Business Machines Corporation Method and means for dynamically partitioning cache into a global and data type subcache hierarchy from a real time reference trace
US5381528A (en) * 1992-10-15 1995-01-10 Maxtor Corporation Demand allocation of read/write buffer partitions favoring sequential read cache
JPH06242951A (ja) * 1992-12-22 1994-09-02 Toshiba Corp キャッシュメモリシステム
US5619699A (en) * 1995-05-22 1997-04-08 Bull Hn Information Systems Inc. Operating system translator incorporating unix piping capability for a proprietary operating system

Also Published As

Publication number Publication date
GB2292822A (en) 1996-03-06
GB9513272D0 (en) 1995-09-06
DE19526007A1 (de) 1996-03-07
DE19526007C2 (de) 1998-08-20
US5737750A (en) 1998-04-07

Similar Documents

Publication Publication Date Title
US5737750A (en) Partitioned single array cache memory having first and second storage regions for storing non-branch and branch instructions
US5689679A (en) Memory system and method for selective multi-level caching using a cache level code
US5091851A (en) Fast multiple-word accesses from a multi-way set-associative cache memory
EP0084114B1 (en) Instruction prefetching data processing apparatus including a conditional branch instruction predictor
KR100454441B1 (ko) 전폭캐쉬를가진집적프로세서/메모리장치
US6356990B1 (en) Set-associative cache memory having a built-in set prediction array
US6021471A (en) Multiple level cache control system with address and data pipelines
US7278013B2 (en) Apparatus having a cache and a loop buffer
US20040030838A1 (en) Instruction cache way prediction for jump targets
US7073026B2 (en) Microprocessor including cache memory supporting multiple accesses per cycle
US20080222360A1 (en) Multi-port integrated cache
US6643733B2 (en) Prioritized content addressable memory
JPH10133947A (ja) 統合されたプロセッサ・メモリ装置
US5860101A (en) Scalable symmetric multiprocessor data-processing system with data allocation among private caches and segments of system memory
US6571316B1 (en) Cache memory array for multiple address spaces
US5933850A (en) Instruction unit having a partitioned cache
US20080098174A1 (en) Cache memory having pipeline structure and method for controlling the same
JP4445081B2 (ja) キャッシュ・メモリ
US5761714A (en) Single-cycle multi-accessible interleaved cache
US6434670B1 (en) Method and apparatus for efficiently managing caches with non-power-of-two congruence classes
US6973557B2 (en) Apparatus and method for dual access to a banked and pipelined data cache memory unit
JPS638851A (ja) キャッシュ・メモリ制御方式
US5434990A (en) Method for serially or concurrently addressing n individually addressable memories each having an address latch and data latch
JPH0727492B2 (ja) 緩衝記憶装置
US7020752B2 (en) Apparatus and method for snoop access in a dual access, banked and pipelined data cache memory unit

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040122

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040220

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20040514

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20040519

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040817

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20040914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041119

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20041125

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20050708

A045 Written measure of dismissal of application [lapsed due to lack of payment]

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20080415