JPH0695317B2 - キヤツシユメモリのプリフエツチ制御方式 - Google Patents

キヤツシユメモリのプリフエツチ制御方式

Info

Publication number
JPH0695317B2
JPH0695317B2 JP61035834A JP3583486A JPH0695317B2 JP H0695317 B2 JPH0695317 B2 JP H0695317B2 JP 61035834 A JP61035834 A JP 61035834A JP 3583486 A JP3583486 A JP 3583486A JP H0695317 B2 JPH0695317 B2 JP H0695317B2
Authority
JP
Japan
Prior art keywords
memory
block
data
processor
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP61035834A
Other languages
English (en)
Other versions
JPS62192831A (ja
Inventor
俊勝 森
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP61035834A priority Critical patent/JPH0695317B2/ja
Publication of JPS62192831A publication Critical patent/JPS62192831A/ja
Publication of JPH0695317B2 publication Critical patent/JPH0695317B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Description

【発明の詳細な説明】 「産業上の利用分野」 この発明は、キャッシュメモリにおいて要求があったブ
ロックデータが見いだされない場合におけるそのブロッ
クデータと次のブロックデータをロードするプリフェッ
チ制御方式に関する。
「従来の技術」 プロセッサと主メモリとの間に小容量の高速なバッファ
メモリを設置することにより、実効的な主メモリのアク
セス時間を高速化しうることはコンピューティングサー
ベイ(Computing Survey)14巻3号1982年473〜530ペ
ージに詳しく述べられているように一般によく知られて
いる。
この手法は通常キャッシュメモリと呼ばれ、広く計算機
システムに使用されている。これは、計算機システム上
で実行されるプログラムのメモリアクセスにおいては局
所性があるという性質を利用したものであり、プロセッ
サから主メモリへのアクセスに際し、アクセスの行われ
たワードを含む一定サイズの連続した記憶位置(通常こ
れをブロックと呼ぶ)の内容を主記憶からキァッシュメ
モリに取り込むことにより、メモリアクセスの大部分
は、高速なキャッシュメモリへのアクセスですみ、低速
な主記憶へのアクセスを少なくすることができる。
「発明が解決しようとする問題点」 キャッシュメモリにおけるブロックの大きさ(以下ブロ
ックサイズと呼ぶ)は、従来の大型コンピュータやミニ
コンピュータでは装置により固定されていた。これはそ
れぞれの装置で、CPU(中央処理装置)からキャッシュ
メモリ、主記憶までの設計を行っており、その装置で最
適な値を選択すればよかったからである。
ところが、汎用のマイクロコンピュータに外付けで使用
する汎用のキャッシュメモリチップを考えた場合、この
キャッシュメモリチップは種々の装置で使用されるた
め、ブロックサイズの最適値を設定しにくいという問題
点がある。例えば、ブロックサイズを大きくした方がヒ
ット率は向上するが、反面主記憶からキャッシュメモリ
へのブロック転送時のバスサイクル数が増し、バスの使
用率が増すために、装置全体の性能が向上しないといっ
た面が出てくる。
また、主記憶からキャッシュメモリへのデータ転送速度
が遅い場合には、ブロック転送によるCPUの待ち時間が
大きくなり、平均アクセス時間が向上しないといった面
も出てくる。
この様な場合、ブロックサイズは小さく設定しておき、
局所性の高いアクセス(例えば、命令のフェッチ等)に
対しては、プリフェッチにより次のブロックのフェッチ
を行い、ブロックサイズをみかけ上大きくする方式が効
果的であることが知られている。
汎用のキャッシュメモリチップでは種々の装置で使用さ
れるため、どの様なアクセスがプリフェッチの効果があ
るかは装置によって異なる。従ってプロセッサのアクセ
スに対し、プリフェッチを行うか否かはプロセッサのア
クセス毎に、動的に切換えて制御することが好ましい。
「問題点を解決するための手段」 この発明は、ワンチップキャッシュメモリとして、同一
チップ上に当該チップの保持しているブロックを管理す
るためのディレクトリ、ブロックデータの保持のための
データメモリ、プロセッサからアクセスされたブロック
の次のブロックアドレスを計算するためのプリフェッチ
回路(加算器)および関連する制御回路を内蔵し、プロ
セッサからキャッシュメモリへのメモリアクセス要求の
通信のための入出力端子としてメモリアクセスの要求、
完了信号等のためのプロセッサアクセス制御信号端子、
プロセッサからのメモリアドレスのためのプロセッサア
ドレス信号端子、プロセッサとのデータのやりとりのた
めのプロセッサデータ信号端子、キャッシュメモリから
主記憶との間のメモリアクセス要求の通信のための入出
力端子としてメモリアクセス制御信号端子、メモリアド
レス信号端子、メモリデータ信号端子、当該キャッシュ
メモリチップにメモリアクセス要求のあったブロックが
存在しなかった場合に、そのブロックと共に次のブロッ
クまでをロードするか否かを制御するプリフェッチ端子
を持ち、 プロセッサからのメモリアクセス要求に際して、自チッ
プにおいて要求のあったブロックデータが見いだされた
場合には、自チップ内でアクセスを行い、自チップにお
いて要求のあったブロックデータが見い出されず、かつ
前記プリフェッチ端子が印加されている場合には、要求
のあったブロックデータとその次のブロックデータのロ
ードを行い、前記プリフェッチ端子が印加されていない
場合には、要求のあったブロックデータのみのロードを
行う。
「実施例」 この発明の実施例におけるキャッシュメモリチップの構
成を第1図により説明する。この実施例においてはキャ
ッシュメモリチップは端子として図に示してないが、電
源、グランド、クロック等のための端子を備え、更にプ
ロセッサとの通信のための端子として、プロセッサから
のメモリへのアクセス要求の通知およびキャッシュメモ
リでのアクセスの完了通知のためのプロセッサアクセス
端子PC、メモリアドレスの通知のためのプロセッサアド
レス端子PA、データのやりとりのためのプロセッサデー
タ端子PDを持ち、また主記憶との通信のための端子とし
て、同様にメモリアクセス端子MC、メモリアドレス端子
MA、メモリデータ端子MDを持つ。これに加えてキャッシ
ュメモリチップは、このキャッシュメモリチップ内でブ
ロックが存在しなかった場合に、存在しなかったブロッ
クの次のブロックを主記憶からロードするか否かを制御
するためのプリフェッチ端子PRFを持つ。
プロセッサアドレス端子PAはアドレスレジスタ11の入力
に接続されており、アドレスレジスタ11のブロックアド
レス部の出力はプリフェッチ回路12に印加されると共
に、マルチプロクサ13を通してディレクトリ14、メモリ
アドレス端子MAにも印加されている。
ディレクトリ14の一致アドレス出力FBAはデータメモリ1
5にブロックアドレスとして印加されると共にリプレー
スメント回路16にも印加されている。リプレースメント
回路16で生成された置換られるべきデータメモリ15上の
ブロックアドレスはディレクトリ14に書込みアドレスと
して印加されている。ディレクトリ14からの一致検出信
号Fは制御回路7に印加されている。プリフェッチ端子
PRFからの入力は同じく制御回路17に印加されている。
プロセッサデータ端子PDには読み出しデータレジスタ18
の出力側および書込みデータレジスタ19の入力側が接続
されている。読み出しデータレジスタ18の入力にはデー
タメモリ15からの読み出しデータが印加され、書込みデ
ータレジスタ19の出力は書込みデータとしてデータメモ
リ15に印加されていると共にメモリデータ端子MDが書込
みデータレジスタ19の入力側に接続されている。
制御回路17はプロセッサアクセス端子PCから印加される
キャッシュメモリの初期化要求、メモリへの書込み、読
み出し要求等の指令を受けて対応する処理を行うための
制御回路で、ここで生成される主記憶へのアクセス要求
はメモリアクセス端子MCに印加されている。
次にこのキャッシュメモリチップの動作を説明する。プ
ロセッサからプロセッサアクセス端子PCを介して制御回
路17にメモリアクセスの指令が印加されると制御回路17
はプロセッサアドレス端子PAに印加されているメモリア
ドレスをアドレスレジスタ11にセットしたうえで、この
ブロックアドレス部の値によりディレクトリ14を検索す
る。同時にプリフェッチ回路12では、次のブロックアド
レスの計算を行う。ディレクトリ14の検索により、一致
が検出されディレクトリ14の一致検出出力Fが値“1"を
出力した場合、即ち、アクセスの要求のあったアドレス
を含むブロックが自キャッシュメモリ上に存在する場合
にはディレクトリ14の出力する一致検出アドレスFBAに
よりプレースメント回路16を更新し、同じくディレクト
リ14の出力するブロックアドレスFBAおよびアドレスレ
ジスタ11のブロック内ワードアドレスの値をアドレスと
してデータメモリ15に対してアクセスを行う。即ちアク
セス要求が読み出し要求である場合にはデータメモリ15
を読み、読み出された値を読み出しデータレジスタ18に
格納し、この出力をプロセッサデータ端子PDに印加した
うえでプロセッサアクセス端子PCにアクセスの完了した
ことを知らせる信号を印加する。アクセス要求が書込み
要求である場合にはプロセッサデータ端子PD上の書込み
データを書込みデータレジスタ19にセットしたうえで、
この値をデータメモリ15に書込みプロセッサアクセス端
子PCにアクセスの完了したことを知らせる信号を印加す
る。
ディレクトリイ14で一致が検出されない場合、即ちアク
セスの要求のあったアドレスを含むブロックが自キャッ
シュメモリ上に存在しない場合には、ブロックのロード
のために次の処理を行う。先ず、リプレースメント回路
16でリプレースすべきデータメモリ15上のブロックを決
定し、これに対応するディレクトリ14のエントリにアド
レスレジスタ11のブロックアドレス部の値を登録する。
次にアドレスレジスタ11のブロックアドレス部の出力と
制御回路17で生成するブロック内のワードアドレスをメ
モリアドレス端子MAに、メモリ読み出し要求をメモリア
クセス端子MCに印加することにより、主記憶を読み出
し、メモリデータ端子MDに読み出されたデータを書込み
データレジスタ19を介してデータメモリ15に書込む。ブ
ロック内に属する全ワードに対してこれを行ったのち、
ディレクトリ14にこのブロックが有効であることを登録
することによりブロックのロードの処理が完了する。
プロセッサから要求のあったブロックのロード終了後、
プリフェッチ端子PRFに信号が印加されている場合に
は、プリフェッチ回路12で計算された次のブロックアド
レスによりディレクトリ14の検索を行う。ディレクトリ
14で一致が検出されなかった場合には前述のブロックロ
ードの処理を行う。この後で、前述のデータメモリ15の
読み出し、あるいは書込みの処理を再実行することによ
りプロセッサからのアクセスが行われることになる。デ
ィレクトリ14で一致が検出された場合、即ち、次のブロ
ックが既にデータメモリ15内に存在している場合にはブ
ロックロード処理は行わない。またプリフェッチ端子PR
Fに信号が印加されていない場合には、これらの処理は
行われず、プロセッサから要求のあったブロックのロー
ド終了によりただちにプロセッサの再実行になる。
「発明の効果」 以上この発明の実施例について説明したが、この説明に
より明らかなようにこの発明の主旨は同一チップ上に当
該チップの保持しているブロックを管理するためのディ
レクトリ14およびブロックデータの保持のためのデータ
メモリ15、プロセッサからアクセスされたブロックの次
のブロックアドレスを計算するためのプリフェッチ回路
(加算器)12および関連する制御回路17を内蔵し、プロ
セッサからキャッシュメモリへのメモリアクセス要求の
通信のための入出力端子として、メモリアクセスの要
求、完了信号等のためのプロセッサアクセス制御信号端
子、プロセッサからのメモリアドレスのためのプロセッ
サアドレス信号端子、プロセッサとデータのやりとりの
ためのプロセッサデータ信号端子、キャッシュメモリか
ら主記憶との間のメモリアクセス要求の通信のための入
出力端子としてメモリアクセス制御信号端子、メモリア
ドレス信号端子、メモリデータ信号端子、当該キャッシ
ュメモリチップにメモリアクセス要求のあったブロック
が存在しなかった場合に、そのブロックと共に次のブロ
ックまでをロードするか否かを制御するプリフェッチ端
子を持ち、プロセッサからのメモリアクセス要求に際し
て、自チップにおいて要求のあったブロックが見いださ
れた場合には、自チップ内でアクセスを行い、自チップ
において要求のあったブロックが見いだされず、かつ前
記プリフェッチ端子が印加されている場合には、要求の
あったブロックとその次のブロックのロードを行い、前
記プリフェッチ端子が印加されていない場合には、要求
のあったブロックのみのロードを行うことにより必要な
ブロックに対してのみプリフェッチを行うことができ
る。
このようにしてプロセッサのアクセスに対し、プリフェ
ッチを行うか否かはプロセッサのアクセス毎に動的に切
換えて制御することができる。
この実施例の説明においては発明の主旨とは直接関係が
ないので制御回路17の具体的な実現方法およびタイミン
グ等も含めた動作等、例えばメモリアクセス要求、完了
信号を端子に印加するためのゲートの制御、読み出し、
書込みデータのデータ端子への印加、受け取り等につい
ても詳細な説明は省略したがこれらは従来知られている
技術で実現できることは有らかであろう。またこの実施
例においては主記憶に一個のプロセッサが接続されるシ
ングルプロセッサシステムを想定しているが、各々がこ
の発明によるキャッシュメモリを備えている複数個のプ
ロセッサからなるマルチプロセッサシステムにおいては
各プロセッサのキャッシュメモリと主記憶との間での内
容の一致を確保するための考慮が必要になるが、これに
ついても従来知られている種々の方式が適用できるであ
ろう。
【図面の簡単な説明】
図はこの発明の実施例を示すブロック図である。 11:アドレスレジスタ、12:プリフェッチ回路、13:マル
チプレクサ、14:ディレクトリ、15:データメモリ、16:
リプレースメント回路、17:制御回路、18:読み出しデー
タレジスタ、19:書込みデータレジスタ。

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】同一チップ上に当該チップの保持している
    ブロックを管理するためのディレクトリ、ブロックデー
    タの保持のためのデータメモリ、プロセッサからアクセ
    スされたブロックの次のブロックアドレスを計算するた
    めのプリフェッチ回路および関連する制御回路を内蔵
    し、 プロセッサからキャッシュメモリへのメモリアクセス要
    求の通信のための入出力端子として、メモリアクセスの
    要求、完了信号等のためのプロセッサアクセス制御信号
    端子、プロセッサからのメモリアドレスのためのプロセ
    ッサアドレス信号端子、プロセッサとのデータのやりと
    りのためのプロセッサデータ信号端子、キャッシュメモ
    リから主記憶との間のメモリアクセス要求の通信のため
    の入出力端子としてメモリアクセス制御信号端子、メモ
    リアドレス信号端子、メモリデータ信号端子、当該キャ
    ッシュメモリチップにメモリアクセス要求のあったブロ
    ックが存在しなかった場合に、そのブロックと共に次の
    ブロックまでをロードするか否かを制御するプリフェッ
    チ端子を持ち、 プロセッサからのメモリアクセス要求に際して、自チッ
    プにおいて要求のあったブロックが見いだされた場合に
    は、自チップ内でアクセスを行い、自チップにおいて要
    求のあったブロックデータが見いだされず、かつ前記プ
    リフェッチ端子が印加されている場合には、要求のあっ
    たブロックデータとその次のブロックデータのロードを
    行い、前記プリフェッチ端子が印加されていない場合に
    は、要求のあったブロックデータのみのロードを行うキ
    ャッシュメモリのプリフェッチ制御方式。
JP61035834A 1986-02-19 1986-02-19 キヤツシユメモリのプリフエツチ制御方式 Expired - Fee Related JPH0695317B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP61035834A JPH0695317B2 (ja) 1986-02-19 1986-02-19 キヤツシユメモリのプリフエツチ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP61035834A JPH0695317B2 (ja) 1986-02-19 1986-02-19 キヤツシユメモリのプリフエツチ制御方式

Publications (2)

Publication Number Publication Date
JPS62192831A JPS62192831A (ja) 1987-08-24
JPH0695317B2 true JPH0695317B2 (ja) 1994-11-24

Family

ID=12452995

Family Applications (1)

Application Number Title Priority Date Filing Date
JP61035834A Expired - Fee Related JPH0695317B2 (ja) 1986-02-19 1986-02-19 キヤツシユメモリのプリフエツチ制御方式

Country Status (1)

Country Link
JP (1) JPH0695317B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001060169A (ja) 1999-08-24 2001-03-06 Hitachi Ltd キャッシュコントローラ及びコンピュータシステム

Also Published As

Publication number Publication date
JPS62192831A (ja) 1987-08-24

Similar Documents

Publication Publication Date Title
EP0637800B1 (en) Data processor having cache memory
US6226722B1 (en) Integrated level two cache and controller with multiple ports, L1 bypass and concurrent accessing
US4701844A (en) Dual cache for independent prefetch and execution units
US5265236A (en) Method and apparatus for increasing the speed of memory access in a virtual memory system having fast page mode
JP3016575B2 (ja) 複数キャッシュ・メモリ・アクセス方法
US20090132749A1 (en) Cache memory system
WO2001004763A1 (en) Buffering system bus for external-memory accesses
JP2000250810A (ja) ロード命令を実行する方法、プロセッサ、およびシステム
US6378023B1 (en) Interrupt descriptor cache for a microprocessor
JP2000003308A (ja) オ―バラップしたl1およびl2メモリ・アクセス方法および装置
US5161219A (en) Computer system with input/output cache
US5367657A (en) Method and apparatus for efficient read prefetching of instruction code data in computer memory subsystems
KR100710922B1 (ko) 캐시 관리 방법
US20120066456A1 (en) Direct memory access cache prefetching
US5012410A (en) Data processor with instruction cache memory
KR960007833B1 (ko) 고속 페이지 모드 선택을 위한 방법 및 장치
EP0156307A2 (en) Pipelined processor having dual cache memories
JPH07121443A (ja) 情報処理システム及びその動作方法
JPH0695317B2 (ja) キヤツシユメモリのプリフエツチ制御方式
US6397304B1 (en) Method and apparatus for improving system performance in multiprocessor systems
JP3445873B2 (ja) データプリフェッチ方法およびそのための情報処理装置
JP2001229074A (ja) メモリ制御装置と情報処理装置及びメモリ制御チップ
JP3052460B2 (ja) 協調処理型情報処理装置
JP3378270B2 (ja) マルチプロセッサシステム
JPS62256146A (ja) キヤツシユメモリの書込制御方式

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees