JPS6159554A - キャッシュメモリを有するデータ処理装置 - Google Patents
キャッシュメモリを有するデータ処理装置Info
- Publication number
- JPS6159554A JPS6159554A JP59180434A JP18043484A JPS6159554A JP S6159554 A JPS6159554 A JP S6159554A JP 59180434 A JP59180434 A JP 59180434A JP 18043484 A JP18043484 A JP 18043484A JP S6159554 A JPS6159554 A JP S6159554A
- Authority
- JP
- Japan
- Prior art keywords
- data
- signal
- address
- memory
- cache memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0888—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
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
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、データ処理装置におけるキャッシュメモリの
制御に関する。
制御に関する。
キャッシュメモリは、データ取得に袂する時間を短縮す
ることによシデータ処理装置の性能を向上させる手段と
して、周知であり、近頃では、マイクロプロセッサにも
採用されるようになってきた。ところで、必要なデータ
がキャッシュメモリに入っていない場合には、そのデー
タ又はそれを含むデータブロックを主メモリから7エツ
チしなければならないが、このフェッチには、通常のフ
ェッチ時間に加えて、キャッシュメモリ内にそのデータ
があるか否かを調べるための時間が必要である。したが
って、必要なデータがキャッシュメモリにおる確率(以
下ヒツト率という)が低いと、期待した性能向上が達成
できないばかりでなく、オーバヘッドが増して、極端な
場合には、性能低下すらきたしかねない。一般に、命令
については、アクセスの局所性が強いため、比較的小容
量のキャッシュメモリでも高いヒツト率が得られるが、
オペランドの場合には、局所性が弱いため、効果的なヒ
ツト率を得るには、キャッシュメモリの容量をある程度
大きくする必要がある。そのため、ミニコンのクラスで
も、4kW前後のキャッシュメモリを設けるのが普通に
なっている。
ることによシデータ処理装置の性能を向上させる手段と
して、周知であり、近頃では、マイクロプロセッサにも
採用されるようになってきた。ところで、必要なデータ
がキャッシュメモリに入っていない場合には、そのデー
タ又はそれを含むデータブロックを主メモリから7エツ
チしなければならないが、このフェッチには、通常のフ
ェッチ時間に加えて、キャッシュメモリ内にそのデータ
があるか否かを調べるための時間が必要である。したが
って、必要なデータがキャッシュメモリにおる確率(以
下ヒツト率という)が低いと、期待した性能向上が達成
できないばかりでなく、オーバヘッドが増して、極端な
場合には、性能低下すらきたしかねない。一般に、命令
については、アクセスの局所性が強いため、比較的小容
量のキャッシュメモリでも高いヒツト率が得られるが、
オペランドの場合には、局所性が弱いため、効果的なヒ
ツト率を得るには、キャッシュメモリの容量をある程度
大きくする必要がある。そのため、ミニコンのクラスで
も、4kW前後のキャッシュメモリを設けるのが普通に
なっている。
ところが、いわゆるマイクロプロセッサなどを用いた非
常に小型のデータ処理装置においては、チップ外部との
データ授受に要する時間がチップ内部でのそれよシも格
段に長いことから、キャッシュメモリをCPUと同じチ
ップに収容したいという要請が強い。しかるに、現在の
LSIの集積度では、大容量のキャッシュメモリをCP
Uと同じチップの上に作るのが困難なために、500バ
イト前後の容量で我慢しなければならないのが現状であ
る。そこで、小容量のキャッシュメモリでも高いヒツト
率が得られるような工夫が必要になる。
常に小型のデータ処理装置においては、チップ外部との
データ授受に要する時間がチップ内部でのそれよシも格
段に長いことから、キャッシュメモリをCPUと同じチ
ップに収容したいという要請が強い。しかるに、現在の
LSIの集積度では、大容量のキャッシュメモリをCP
Uと同じチップの上に作るのが困難なために、500バ
イト前後の容量で我慢しなければならないのが現状であ
る。そこで、小容量のキャッシュメモリでも高いヒツト
率が得られるような工夫が必要になる。
〔発明の目的〕
本発明の目的は、キャッシュメモリのヒツト率を高め、
ひいては、小容量で効率の良いキャッシュメモリを提供
して、非常に小型のデータ処理装置でもキャッシュメモ
リの利点を享受できるようにすることにある。
ひいては、小容量で効率の良いキャッシュメモリを提供
して、非常に小型のデータ処理装置でもキャッシュメモ
リの利点を享受できるようにすることにある。
本発明は、反覆利用率の高いデータについてのみキャッ
シュメモリを利用することを意図したものである。そこ
で、本発明は、記憶装置アクセス動作が特定の領域に対
するものか否かを判定し、その判定結果に応じて、前記
特定領域に対するデータの読出し又は書込みに際しては
当該データをキャッシュメモリに写し取シ、そして、そ
れ以外の領域からの読出しは、キャッシュメモリの検索
を待たず、直ちに記憶装置を実行させるように、キャッ
シュメモリ制御回路を構成する。
シュメモリを利用することを意図したものである。そこ
で、本発明は、記憶装置アクセス動作が特定の領域に対
するものか否かを判定し、その判定結果に応じて、前記
特定領域に対するデータの読出し又は書込みに際しては
当該データをキャッシュメモリに写し取シ、そして、そ
れ以外の領域からの読出しは、キャッシュメモリの検索
を待たず、直ちに記憶装置を実行させるように、キャッ
シュメモリ制御回路を構成する。
したがって、前記特定領域を反覆利用率の高いデータの
ために割尚てることにより、小容量であっても効率の良
いキャッシュメモリが得うれる。
ために割尚てることにより、小容量であっても効率の良
いキャッシュメモリが得うれる。
このようなデータの代表的なものは、いわゆるスタック
構造のデータでおる。
構造のデータでおる。
現在のプログラムの多くは高級言語で書かれ、そのデー
タ構造としてスタックを有しておシ、それの実行のため
に、データ処理装置はスタック機構を備えている。スタ
ック機構は、特に小型のプロセッサの場合、主メモリの
一部とポインタの組合せによって実現されることが多い
。第2図は、以下に説明する本発明の実施例が前提とす
るスタックの構造を示す。このスタックは、主メモリ上
にあって、各手続の実行時に、各サブルーチンで使用す
る局所変数、手続の出口で回復するためのレジスタ退避
値、手続からの戻)アドレス、各手続に対する引数及び
手続実行開始時のフレームポインタ(旧フレームポイン
タ)の値を、スタックの頂部からこの順で記憶している
。スタックボインクは、スタックの項部(先頭)のアド
レスを指しており、フレームポインタは、旧フレームポ
インタの値が格納されたアドレスを指している。このよ
うな情報を保持するスタックについては、アクセスの局
所性が強く、また、反覆アクセスの機会も多い。
タ構造としてスタックを有しておシ、それの実行のため
に、データ処理装置はスタック機構を備えている。スタ
ック機構は、特に小型のプロセッサの場合、主メモリの
一部とポインタの組合せによって実現されることが多い
。第2図は、以下に説明する本発明の実施例が前提とす
るスタックの構造を示す。このスタックは、主メモリ上
にあって、各手続の実行時に、各サブルーチンで使用す
る局所変数、手続の出口で回復するためのレジスタ退避
値、手続からの戻)アドレス、各手続に対する引数及び
手続実行開始時のフレームポインタ(旧フレームポイン
タ)の値を、スタックの頂部からこの順で記憶している
。スタックボインクは、スタックの項部(先頭)のアド
レスを指しており、フレームポインタは、旧フレームポ
インタの値が格納されたアドレスを指している。このよ
うな情報を保持するスタックについては、アクセスの局
所性が強く、また、反覆アクセスの機会も多い。
以下に説明する実施例のプロセッサは、演算用データ又
は演算結果を保持するだめのデータレジスタと、オペラ
ンドのメモリアドレスを指定するためのアドレスレジス
タを、それぞれ8個ずつ備えており、アドレスレジスタ
A6と&7を、それぞれフレームポインタとスタックボ
インクとして使用するものとする。第3図(a)は、こ
のプロセッサの命令フォーマットを示す。命令は、演算
の種類、使用するレジスタ、アドレツンングモード等を
指定するオペレーションワードと、アドレス計算用のデ
ータを与える拡張部とからなるのを基本盤とするが、指
定するアドレッシングセードの種類によっては、拡張部
を伴わない場合もある。オペレーションワードのビット
11ないし9は、演算の一部のオペランドとして使用す
るデータを保持するデータレジスタの番号を示す。他方
のオペランドは、オペレーションワードのビット5ない
しOによって指定される。すなわち、ビット2ないし0
は、このオペランドの取得のために参照すべきレジスタ
の番号を示し、ビット5ないし3は、アドレッシングモ
ードを示す。
は演算結果を保持するだめのデータレジスタと、オペラ
ンドのメモリアドレスを指定するためのアドレスレジス
タを、それぞれ8個ずつ備えており、アドレスレジスタ
A6と&7を、それぞれフレームポインタとスタックボ
インクとして使用するものとする。第3図(a)は、こ
のプロセッサの命令フォーマットを示す。命令は、演算
の種類、使用するレジスタ、アドレツンングモード等を
指定するオペレーションワードと、アドレス計算用のデ
ータを与える拡張部とからなるのを基本盤とするが、指
定するアドレッシングセードの種類によっては、拡張部
を伴わない場合もある。オペレーションワードのビット
11ないし9は、演算の一部のオペランドとして使用す
るデータを保持するデータレジスタの番号を示す。他方
のオペランドは、オペレーションワードのビット5ない
しOによって指定される。すなわち、ビット2ないし0
は、このオペランドの取得のために参照すべきレジスタ
の番号を示し、ビット5ないし3は、アドレッシングモ
ードを示す。
ビット5ないし30ビツトパターンとアドレッシングモ
ードの対応は、第3図(b)に示されている。
ードの対応は、第3図(b)に示されている。
同図において、「データレジスタ」モード及び「アドレ
スレジスタ」モードは、それぞれ、指定されたデータレ
ジスタ及びアドレスレジスタの内容がそのiまオペラン
ドとなるモードでおる。
スレジスタ」モードは、それぞれ、指定されたデータレ
ジスタ及びアドレスレジスタの内容がそのiまオペラン
ドとなるモードでおる。
「アドレスレジスタ間接」モードは、指定されたアドレ
スレジスタの内容がオペランドのメモリアモードは、基
本的にはアドレスレジスタ間接モードと同じでおるが、
ただ、オペランドのストア又はフェッチのそれぞれ直後
及び直前に、当該アドレスレジスタの内容をそれぞれ+
1及び−1する点が異なる。「デイスプVイスメント付
アドレスレジスタ間接」モードは、指定されたアドレス
レジスタの内容に拡張部の内容を加えた値をオペランド
のメモリアドレスとして使用するモードであり、「ディ
スプレイスメント付プログラムカウンタ相対」モードは
、当該命令のアドレス(プログラムカクンタの内容)に
拡張部の内容を加えた値をオペランドのメモリアドレス
として使用するモードでらる。そして、「絶対番地」モ
ードは、拡張部の内容をそのままオペランドのメモリア
ドレスとして使用するモードである。
スレジスタの内容がオペランドのメモリアモードは、基
本的にはアドレスレジスタ間接モードと同じでおるが、
ただ、オペランドのストア又はフェッチのそれぞれ直後
及び直前に、当該アドレスレジスタの内容をそれぞれ+
1及び−1する点が異なる。「デイスプVイスメント付
アドレスレジスタ間接」モードは、指定されたアドレス
レジスタの内容に拡張部の内容を加えた値をオペランド
のメモリアドレスとして使用するモードであり、「ディ
スプレイスメント付プログラムカウンタ相対」モードは
、当該命令のアドレス(プログラムカクンタの内容)に
拡張部の内容を加えた値をオペランドのメモリアドレス
として使用するモードでらる。そして、「絶対番地」モ
ードは、拡張部の内容をそのままオペランドのメモリア
ドレスとして使用するモードである。
スタックへのアクセスは、アドレスレジスタ煮6(フレ
ームポインタ)又はA7(スタックポインタ)を指定す
るとともに、アドレッシングモードとして、「アドレス
レジスタ間接」、「ポストインクリメント」、「ブリデ
クリメント」又は「ディスプレイスメント付アドレスレ
ジスタ間接」のうちの、いずれかを用いて実行される。
ームポインタ)又はA7(スタックポインタ)を指定す
るとともに、アドレッシングモードとして、「アドレス
レジスタ間接」、「ポストインクリメント」、「ブリデ
クリメント」又は「ディスプレイスメント付アドレスレ
ジスタ間接」のうちの、いずれかを用いて実行される。
これらのスタックへのアクセスの態様を総称して、スタ
ックアクセスモードと呼ぶことにする。したがって、ス
タックアクセスモードでは、オペレーションワードの下
位6ビツトは、”010110’″、″010111”
、”011110”、”011111”、′10011
0 ”、”100111”、−101110”又は’1
01111”のいずれかである。
ックアクセスモードと呼ぶことにする。したがって、ス
タックアクセスモードでは、オペレーションワードの下
位6ビツトは、”010110’″、″010111”
、”011110”、”011111”、′10011
0 ”、”100111”、−101110”又は’1
01111”のいずれかである。
第1図は、本発明の一実施例を示す。この実施例は、ス
タック領域へのアクセスに対してキャッシュメモリを利
用する場合である。命令制御回路10は、オペレーショ
ンワードを保持するレジスf(I几)11を含み、命令
を解読して、プロセッサ1の内外に制御信号を供給する
。レジスタ群13は、前述した8個のデータレジスタと
8個のアドレスレジスタの集合を表わす。オペランドに
対する演算とアドレス計算は演算器(AI、U)12に
二って遂行されて、算出されたデータはレジスタ群13
中の指定されたレジスタに格納され、アドレス計算はメ
モリアドレスレジスタ(MAR,)15に格納される。
タック領域へのアクセスに対してキャッシュメモリを利
用する場合である。命令制御回路10は、オペレーショ
ンワードを保持するレジスf(I几)11を含み、命令
を解読して、プロセッサ1の内外に制御信号を供給する
。レジスタ群13は、前述した8個のデータレジスタと
8個のアドレスレジスタの集合を表わす。オペランドに
対する演算とアドレス計算は演算器(AI、U)12に
二って遂行されて、算出されたデータはレジスタ群13
中の指定されたレジスタに格納され、アドレス計算はメ
モリアドレスレジスタ(MAR,)15に格納される。
モード判定デコーダ14は、IFt、11の下位6ピツ
ト1131r、解読して、スタックアクセスモードが指
定されていれば(すなわち前述した8種のビットパター
ンであれば)、信号114をオンにする。連想メモリ2
6は、キャッシュメモリとして用いられており、アドレ
スをインデックスとして検索されて、当該アドレスのデ
ータを保持していれば、フリップフロップ27をセット
し7て、信号118をオンにする。信号111はストア
指示信号、同116は7エツチ指、示信号、同119は
アドレス値、同120はフェッチされたデータ、同12
1はストアすべきデータ、同122は主メモリの動作終
了通知信号であって、これらは図示されていない記憶装
置と接続されている。フェッチされたデータや命令は、
読[Lデータレジスタ(R,DR)16に一旦格納され
、また、ストアすべきデータは、書込みデータレジスタ
(WDR,)17に準備される。セレクタ23は、RD
R16へ格納するデータとして、連想メモリ26の出力
又は記憶装置からのフェッチデータ120の一方を選、
択し、セレクタ28は、連想メモリ26への書込みデー
タとして、記憶装置からのフェッチデータ、120又は
そこへのストアデータ121の一方を選択する。カラ/
り24は、連想メモリ26への書込みのためのエン)
IJ位置を指定する。ANDゲート19〜21及びOR
ゲート22は、キャッシュ書込み指示信号115を発生
するだめの論理回路を構成し、否定回路29,33、遅
延回路34、ANDゲート30.32及びORゲート3
1は、7工ツチ指示信号116を発生するだめの論理回
路を構成する。
ト1131r、解読して、スタックアクセスモードが指
定されていれば(すなわち前述した8種のビットパター
ンであれば)、信号114をオンにする。連想メモリ2
6は、キャッシュメモリとして用いられており、アドレ
スをインデックスとして検索されて、当該アドレスのデ
ータを保持していれば、フリップフロップ27をセット
し7て、信号118をオンにする。信号111はストア
指示信号、同116は7エツチ指、示信号、同119は
アドレス値、同120はフェッチされたデータ、同12
1はストアすべきデータ、同122は主メモリの動作終
了通知信号であって、これらは図示されていない記憶装
置と接続されている。フェッチされたデータや命令は、
読[Lデータレジスタ(R,DR)16に一旦格納され
、また、ストアすべきデータは、書込みデータレジスタ
(WDR,)17に準備される。セレクタ23は、RD
R16へ格納するデータとして、連想メモリ26の出力
又は記憶装置からのフェッチデータ120の一方を選、
択し、セレクタ28は、連想メモリ26への書込みデー
タとして、記憶装置からのフェッチデータ、120又は
そこへのストアデータ121の一方を選択する。カラ/
り24は、連想メモリ26への書込みのためのエン)
IJ位置を指定する。ANDゲート19〜21及びOR
ゲート22は、キャッシュ書込み指示信号115を発生
するだめの論理回路を構成し、否定回路29,33、遅
延回路34、ANDゲート30.32及びORゲート3
1は、7工ツチ指示信号116を発生するだめの論理回
路を構成する。
ANDゲート25.35及びORゲート18の機能は、
全体の動作と共に後述する、 以下、この装置の動作を、スタックアクセスモードでの
フェッチ、スタックアクセスモード以外のモードでの7
エツチ、スタックアクセスモードでのストア、そしてス
タックアクセスモード以外のモードでのストアを行う場
合について、順次説明する。なお、以下の説明で、各命
令のオペレーションワードはレジスタ11にセットされ
ているものとする。
全体の動作と共に後述する、 以下、この装置の動作を、スタックアクセスモードでの
フェッチ、スタックアクセスモード以外のモードでの7
エツチ、スタックアクセスモードでのストア、そしてス
タックアクセスモード以外のモードでのストアを行う場
合について、順次説明する。なお、以下の説明で、各命
令のオペレーションワードはレジスタ11にセットされ
ているものとする。
オペランドのフェッチを行う場合、オペランドアドレス
がALU12で計算されてMAR15にセットされ、信
号119に出力される。次いで、命令制御回路10は、
内部フェッチ指示信号112をオンにして、フェッチ動
作を開始する。オペランドアドレス(信号119)は連
想メモリ26に入力されており、このアドレス値に基づ
く検索の結果、該当するアドレスのデータがあれはフリ
ップフロップ27には″1”が、また存在しなければ′
0“が、それぞれラッチされる。スタックアクセスモー
ドでは、デコーダ14の出力信号114がオンなので、
ANDゲート30はオンとならず、したがって、AND
ゲート32がオンとなった場合にのみフェッチ指示信号
116がオンになる。
がALU12で計算されてMAR15にセットされ、信
号119に出力される。次いで、命令制御回路10は、
内部フェッチ指示信号112をオンにして、フェッチ動
作を開始する。オペランドアドレス(信号119)は連
想メモリ26に入力されており、このアドレス値に基づ
く検索の結果、該当するアドレスのデータがあれはフリ
ップフロップ27には″1”が、また存在しなければ′
0“が、それぞれラッチされる。スタックアクセスモー
ドでは、デコーダ14の出力信号114がオンなので、
ANDゲート30はオンとならず、したがって、AND
ゲート32がオンとなった場合にのみフェッチ指示信号
116がオンになる。
遅延回路34は、連想メモリ26の検索が終了するまで
信号112を遅らせる働きをする。
信号112を遅らせる働きをする。
該当するデータが連想メモリ26に存在する場合には、
信号118がオンとなり、ANDゲート32はオンとな
ることができないので、信号116もオフのままである
。すなわち、記憶装置での7工ツチ動作は行われない。
信号118がオンとなり、ANDゲート32はオンとな
ることができないので、信号116もオフのままである
。すなわち、記憶装置での7工ツチ動作は行われない。
そして、信号116がオフの場合、セレクタ23は連想
メモリ26から読出されたデータをRDR16へ送る。
メモリ26から読出されたデータをRDR16へ送る。
−万、ANDゲート35及びORゲート18の働きによ
り信号110がオンにされ、命令制御回路10にフェッ
チの完了が通知される。命令制御回路10はRDR16
にデータをラッチし、そこでフェッチ動作を終了する。
り信号110がオンにされ、命令制御回路10にフェッ
チの完了が通知される。命令制御回路10はRDR16
にデータをラッチし、そこでフェッチ動作を終了する。
すなわち、この場合には、連想メモリ26からの読出し
のみが行われる。
のみが行われる。
該当するデータが連想メモリ26に存在しない場合、信
号118がオフとなるので、遅延回路34による遅延の
後に、ANDゲート32がオンとなり、フェッチ指示信
号116がオンとなる。
号118がオフとなるので、遅延回路34による遅延の
後に、ANDゲート32がオンとなり、フェッチ指示信
号116がオンとなる。
信号116がオンとなると、図示されていない記憶装置
は、信号119で示されるアドレスのデータを読出して
、信号120に出力し、それから信号122をオンにす
る。信号122がオンとなると、ORゲート18を介し
て信号110がオンにされ、命令制御回路10に7エツ
チの完了が通知シ される。命令制御回路はRD几16にデータとラッチし
ようとするが、このとき信号116がオンであるため、
セレクタ23は信号120の方を選択し、かくて記憶装
置から読出されたデータ120がRDR16にラッチさ
れる。また、信号122がオンとなると、スタックアク
セスモード、すなわち信号114がオンであることから
、ANDゲート19の出力がオンになシ、ORゲート2
2を介してキャッシュ書込み指示信号115がオンにな
って、連想メモリ26に書込みを指示する。連想メモリ
26には、書込みデータとして、信号116で切換えら
れたセレクタ28を介して信号120(記憶装置の出力
)が入力されている。信号118がオフの状態で書き込
み指示されると、カウンタ24によって示される連想メ
モリ26のiノトリにアドレス(信号119)とデータ
(信号120)が書込まれる。カラ/り24の値は、A
NDゲート25の出力が信号115と否定回路33の出
力によりオンとなるため、カウントアツプされる。以上
のように、スタックアクセスモードで7エツチを行った
ときに該当するアドレスのデータが連想メモリ26に存
在しなければ、記憶装置から読出されたデータとそのア
ドレスが連想メモリ26に書込まれる。
は、信号119で示されるアドレスのデータを読出して
、信号120に出力し、それから信号122をオンにす
る。信号122がオンとなると、ORゲート18を介し
て信号110がオンにされ、命令制御回路10に7エツ
チの完了が通知シ される。命令制御回路はRD几16にデータとラッチし
ようとするが、このとき信号116がオンであるため、
セレクタ23は信号120の方を選択し、かくて記憶装
置から読出されたデータ120がRDR16にラッチさ
れる。また、信号122がオンとなると、スタックアク
セスモード、すなわち信号114がオンであることから
、ANDゲート19の出力がオンになシ、ORゲート2
2を介してキャッシュ書込み指示信号115がオンにな
って、連想メモリ26に書込みを指示する。連想メモリ
26には、書込みデータとして、信号116で切換えら
れたセレクタ28を介して信号120(記憶装置の出力
)が入力されている。信号118がオフの状態で書き込
み指示されると、カウンタ24によって示される連想メ
モリ26のiノトリにアドレス(信号119)とデータ
(信号120)が書込まれる。カラ/り24の値は、A
NDゲート25の出力が信号115と否定回路33の出
力によりオンとなるため、カウントアツプされる。以上
のように、スタックアクセスモードで7エツチを行った
ときに該当するアドレスのデータが連想メモリ26に存
在しなければ、記憶装置から読出されたデータとそのア
ドレスが連想メモリ26に書込まれる。
スタックアクセスモード以外のモードでフェッチを行う
場合、信号114がオフなので、信号112がオンにな
ると、ANDゲート30、O几ゲート31を介して、直
ちにフェッチ指示信号116がオンにされ、記憶装置で
の読出し動作が1始する。記憶装置のデータ読出しが完
了すると、信号122がオンにされ、ORゲート18、
信号110を介して茄令制御回路10にフェッチの完了
を通知する。記憶装置から読出されたデータ120は、
信号116で切換えられたセレクタ23を介してRDR
16にラッチされる。ただし、このとき信号114がオ
フであるため、信号115がオンになることはなく、シ
たがって、連想メモリ26への書込みは行われない。す
なわち、スタックアクセスモード以外のモードにおける
フェッチ動作は、直ちに記憶装置に対して実施され、連
想メモリ26は全く無関係となる。
場合、信号114がオフなので、信号112がオンにな
ると、ANDゲート30、O几ゲート31を介して、直
ちにフェッチ指示信号116がオンにされ、記憶装置で
の読出し動作が1始する。記憶装置のデータ読出しが完
了すると、信号122がオンにされ、ORゲート18、
信号110を介して茄令制御回路10にフェッチの完了
を通知する。記憶装置から読出されたデータ120は、
信号116で切換えられたセレクタ23を介してRDR
16にラッチされる。ただし、このとき信号114がオ
フであるため、信号115がオンになることはなく、シ
たがって、連想メモリ26への書込みは行われない。す
なわち、スタックアクセスモード以外のモードにおける
フェッチ動作は、直ちに記憶装置に対して実施され、連
想メモリ26は全く無関係となる。
次に、スタックアクセスモードでストアを行うときの動
作について説明する。ストアを行う場合、命令制御回路
10は、まずストアアドレスをMAR,15にセットし
、次いで、ストアすべきデータをWDR17にセットし
、最後に信号111をオンにしてストア動作を開始す°
る。信号111がオンになると、記憶装置は信号119
が示すアドレスに信号121上のブータラ書込む。これ
と並行して、連想メモリ26の検索が行われ、結果が信
号118に出力される。記憶装置は、データの書込みが
終了すると、信号122をオンにして動作終了を通知す
る。この時、信号114はオンであり、かつ、ストア指
示信号111もオンであるから、信号122がオンにな
るとANDゲート20の出力がオンになって、OFLゲ
ート22を介して信号115がオンになり、連想メモリ
26への書込みが指示される。
作について説明する。ストアを行う場合、命令制御回路
10は、まずストアアドレスをMAR,15にセットし
、次いで、ストアすべきデータをWDR17にセットし
、最後に信号111をオンにしてストア動作を開始す°
る。信号111がオンになると、記憶装置は信号119
が示すアドレスに信号121上のブータラ書込む。これ
と並行して、連想メモリ26の検索が行われ、結果が信
号118に出力される。記憶装置は、データの書込みが
終了すると、信号122をオンにして動作終了を通知す
る。この時、信号114はオンであり、かつ、ストア指
示信号111もオンであるから、信号122がオンにな
るとANDゲート20の出力がオンになって、OFLゲ
ート22を介して信号115がオンになり、連想メモリ
26への書込みが指示される。
ここで、書込みアドレスと一致するアドレスが連想メモ
リ26に存在しない場合には、信号118がオフなので
、連想メモリ26のカウンタ24によって示されるエン
トリに、アドレスとデータの双方が書込まれる。他方、
書込みアドレスと一致するアドレスが連想メモリ26に
存在する場合には、信号118がオンとなっておシ、そ
の結果、連想メモリ26の該当するエントリに、データ
のみが書込まれる。このように、スタックアクにスモー
ドでのストアの場合、記憶装置にストアされるデータは
必ず連想メモリ26にも書込まれる。
リ26に存在しない場合には、信号118がオフなので
、連想メモリ26のカウンタ24によって示されるエン
トリに、アドレスとデータの双方が書込まれる。他方、
書込みアドレスと一致するアドレスが連想メモリ26に
存在する場合には、信号118がオンとなっておシ、そ
の結果、連想メモリ26の該当するエントリに、データ
のみが書込まれる。このように、スタックアクにスモー
ドでのストアの場合、記憶装置にストアされるデータは
必ず連想メモリ26にも書込まれる。
なお、連想メモリ26に空きがなくなった場合には、従
来のキャッシュメモリと同様に、最も不要と目される古
いデータを捨てて、そこに新しいデータを書込む。
来のキャッシュメモリと同様に、最も不要と目される古
いデータを捨てて、そこに新しいデータを書込む。
スタックアクセスモード以外のモードでストアを行う場
合の動作は、以下の点を除いてスタックアクセスモード
のストア動作と同一である。すなわち、スタックアクセ
スモード以外のモードの場合、信号114はオフなので
、記憶装置からの動作終了通知信号122がオンになっ
ても、ANDゲート20の出力はオンしない。ただ、信
号118がオンのとき、すなわちストアアドレスと一致
するアドレスが連想メモリ26に存在するときのみ、A
NDゲート21.0几ゲート22を介して信号115が
オンし、連想メモリ26への書き込み(データのみ)が
指示される。これにより、連想メモリ26に保持されて
いるデータと記憶装置上の対応するアドレスのデータと
の一致が保たれる。
合の動作は、以下の点を除いてスタックアクセスモード
のストア動作と同一である。すなわち、スタックアクセ
スモード以外のモードの場合、信号114はオフなので
、記憶装置からの動作終了通知信号122がオンになっ
ても、ANDゲート20の出力はオンしない。ただ、信
号118がオンのとき、すなわちストアアドレスと一致
するアドレスが連想メモリ26に存在するときのみ、A
NDゲート21.0几ゲート22を介して信号115が
オンし、連想メモリ26への書き込み(データのみ)が
指示される。これにより、連想メモリ26に保持されて
いるデータと記憶装置上の対応するアドレスのデータと
の一致が保たれる。
以上に述べたように、本実施例によれば、書込んだデー
タをすぐに読出したり、一度読出したデータをすぐにま
た読出すことの多いスタックについてのみ、キャッシュ
メモリを利用することになるので、すべてのアクセス対
象データについてキャッシュメモリを使用する通常のキ
ャッシュ方式にくらべて、少ない容量のキャッシュメモ
リでも区 高いベット率を得ることができる。
タをすぐに読出したり、一度読出したデータをすぐにま
た読出すことの多いスタックについてのみ、キャッシュ
メモリを利用することになるので、すべてのアクセス対
象データについてキャッシュメモリを使用する通常のキ
ャッシュ方式にくらべて、少ない容量のキャッシュメモ
リでも区 高いベット率を得ることができる。
なお、本実施例は、アクセス対象のデータ自体のみをキ
ャッシュメモリに写す方式であるが、ブロック単位で写
し取る方式においても、本発明は同様に適用しうる。
ャッシュメモリに写す方式であるが、ブロック単位で写
し取る方式においても、本発明は同様に適用しうる。
本発明によれば、利用率の高いデータについてのみキャ
ッシュメモリを利用することができる結果、ヒツト率を
高め、ひいては小容量で効率の良いキャッシュメモリを
得ることができるので、非常に小型のデータ処理装置で
もキャッシュメモリの利点を享受することができ、例え
ば、小さいチップサイズで高性能のマイクロプロセッサ
が実現できるなど、その効果は顕著である。
ッシュメモリを利用することができる結果、ヒツト率を
高め、ひいては小容量で効率の良いキャッシュメモリを
得ることができるので、非常に小型のデータ処理装置で
もキャッシュメモリの利点を享受することができ、例え
ば、小さいチップサイズで高性能のマイクロプロセッサ
が実現できるなど、その効果は顕著である。
第1図は本発明の一実施例のブロックダイヤグラム、第
2図はスタックの構造の模式図、第3図は第1図の実施
例における命令フォーマットとアクセスモードの対照図
である。 10・・・命令制御回路、11・・・命令レジスタ、1
4・・・アクセスモード判定デコーダ、15・・・メモ
リアドレスレジスタ、16・・・読出しデータレジスタ
、17・・・書込みデータレジスタ、26・・・キャッ
シュメモリとしての連想メモリ、23.28・・・セレ
クタ、19〜22・・・キャッシュ書込み指示信号発生
回路1.29〜34・・・フェッチ指示信号発生回路。
2図はスタックの構造の模式図、第3図は第1図の実施
例における命令フォーマットとアクセスモードの対照図
である。 10・・・命令制御回路、11・・・命令レジスタ、1
4・・・アクセスモード判定デコーダ、15・・・メモ
リアドレスレジスタ、16・・・読出しデータレジスタ
、17・・・書込みデータレジスタ、26・・・キャッ
シュメモリとしての連想メモリ、23.28・・・セレ
クタ、19〜22・・・キャッシュ書込み指示信号発生
回路1.29〜34・・・フェッチ指示信号発生回路。
Claims (1)
- 【特許請求の範囲】 1、記憶装置とこの記憶装置の内容の一部の写しを保持
するキャッシュメモリとを有するデータ処理装置におい
て、前記記憶装置に対するアクセス動作がその特定の領
域に対するものか否かを判定する手段と、この判定手段
の出力に応答して、前記特定領域に対するアクセスの場
合に少なくともその対象データを前記キャッシュメモリ
にも保持させ、また、前記特定領域以外の領域に対する
読出しのためのアクセスの場合にそのアクセス動作を前
記キャッシュメモリとは無関係に実行させる手段とを備
えたことを特徴とするキャッシュメモリ制御回路。 2、特許請求の範囲1において、その特定領域がスタッ
クに割当てられていることを特徴とするキャッシュメモ
リ制御回路。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59180434A JPH0630075B2 (ja) | 1984-08-31 | 1984-08-31 | キャッシュメモリを有するデータ処理装置 |
KR1019850005746A KR920005292B1 (ko) | 1984-08-31 | 1985-08-09 | 캐시메모리를 갖는 마이크로 프로세서 |
US06/768,572 US4937738A (en) | 1984-08-31 | 1985-08-23 | Data processing system which selectively bypasses a cache memory in fetching information based upon bit information of an instruction |
EP85110962A EP0173981A3 (en) | 1984-08-31 | 1985-08-30 | Cache memory control circuit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP59180434A JPH0630075B2 (ja) | 1984-08-31 | 1984-08-31 | キャッシュメモリを有するデータ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPS6159554A true JPS6159554A (ja) | 1986-03-27 |
JPH0630075B2 JPH0630075B2 (ja) | 1994-04-20 |
Family
ID=16083177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP59180434A Expired - Lifetime JPH0630075B2 (ja) | 1984-08-31 | 1984-08-31 | キャッシュメモリを有するデータ処理装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US4937738A (ja) |
EP (1) | EP0173981A3 (ja) |
JP (1) | JPH0630075B2 (ja) |
KR (1) | KR920005292B1 (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6337457A (ja) * | 1986-08-01 | 1988-02-18 | Hitachi Ltd | 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法 |
JPS63163062A (ja) * | 1986-12-24 | 1988-07-06 | Nippon Seiko Kk | 無段変速機と有段変速機とを備えた車両用複合変速機 |
JPH03116231A (ja) * | 1989-06-20 | 1991-05-17 | Nec Corp | マイクロプロセッサ |
JP2014181964A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | レーダ装置及びプログラム |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2617974B2 (ja) * | 1988-03-08 | 1997-06-11 | 富士通株式会社 | データ処理装置 |
US5257359A (en) * | 1989-02-08 | 1993-10-26 | Hitachi Microsystems, Inc. | Instruction cache buffer with program-flow control |
EP0382396A3 (en) * | 1989-02-08 | 1991-11-27 | Hitachi, Ltd. | Program memory buffer for processor |
CA2011518C (en) * | 1989-04-25 | 1993-04-20 | Ronald N. Fortino | Distributed cache dram chip and control method |
JP2695017B2 (ja) * | 1989-11-08 | 1997-12-24 | 富士通株式会社 | データ転送方式 |
DE69025302T2 (de) * | 1989-12-22 | 1996-10-02 | Digital Equipment Corp | Hochleistungsrasterpuffer- und -cachespeicheranordnung |
EP0449369B1 (en) * | 1990-03-27 | 1998-07-29 | Koninklijke Philips Electronics N.V. | A data processing system provided with a performance enhancing instruction cache |
EP0457403B1 (en) * | 1990-05-18 | 1998-01-21 | Koninklijke Philips Electronics N.V. | Multilevel instruction cache and method for using said cache |
GB2247546B (en) * | 1990-08-31 | 1995-03-01 | Sun Microsystems Inc | Method and apparatus for predictive caching |
US5249281A (en) * | 1990-10-12 | 1993-09-28 | Lsi Logic Corporation | Testable ram architecture in a microprocessor having embedded cache memory |
US5625793A (en) * | 1991-04-15 | 1997-04-29 | International Business Machines Corporation | Automatic cache bypass for instructions exhibiting poor cache hit ratio |
WO1995032466A1 (en) * | 1994-05-19 | 1995-11-30 | Vlsi Technology, Inc. | Flexible register mapping scheme |
JPH0824098A (ja) * | 1994-07-20 | 1996-01-30 | Hakohide Shiki Seisakusho:Kk | 額縁枠の構成部材及びこれを用いた額縁枠並びにこれらの製造方法 |
US5890216A (en) * | 1995-04-21 | 1999-03-30 | International Business Machines Corporation | Apparatus and method for decreasing the access time to non-cacheable address space in a computer system |
US5745728A (en) * | 1995-12-13 | 1998-04-28 | International Business Machines Corporation | Process or renders repeat operation instructions non-cacheable |
US20030196072A1 (en) * | 2002-04-11 | 2003-10-16 | Chinnakonda Murali S. | Digital signal processor architecture for high computation speed |
EP1434136A1 (en) * | 2002-12-27 | 2004-06-30 | Siemens Aktiengesellschaft | Microprocessor with cache memory and secondary memory, and method for programming such a microprocessor |
US7454585B2 (en) | 2005-12-22 | 2008-11-18 | International Business Machines Corporation | Efficient and flexible memory copy operation |
US7484062B2 (en) * | 2005-12-22 | 2009-01-27 | International Business Machines Corporation | Cache injection semi-synchronous memory copy operation |
US7506132B2 (en) * | 2005-12-22 | 2009-03-17 | International Business Machines Corporation | Validity of address ranges used in semi-synchronous memory copy operations |
EP1919067B1 (de) * | 2006-10-31 | 2009-04-29 | Infineon Technologies Austria AG | Ansteuerschaltung für einen Schalter in einem Schaltwandler mit Burst-Betriebsmodus |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54128640A (en) * | 1978-03-30 | 1979-10-05 | Toshiba Corp | Control system for cash memory |
JPS563485A (en) * | 1979-06-20 | 1981-01-14 | Nec Corp | Buffer memory device |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4075686A (en) * | 1976-12-30 | 1978-02-21 | Honeywell Information Systems Inc. | Input/output cache system including bypass capability |
US4357656A (en) * | 1977-12-09 | 1982-11-02 | Digital Equipment Corporation | Method and apparatus for disabling and diagnosing cache memory storage locations |
US4189770A (en) * | 1978-03-16 | 1980-02-19 | International Business Machines Corporation | Cache bypass control for operand fetches |
JPS54128634A (en) * | 1978-03-30 | 1979-10-05 | Toshiba Corp | Cash memory control system |
US4338663A (en) * | 1978-10-25 | 1982-07-06 | Digital Equipment Corporation | Calling instructions for a data processing system |
US4298929A (en) * | 1979-01-26 | 1981-11-03 | International Business Machines Corporation | Integrated multilevel storage hierarchy for a data processing system with improved channel to memory write capability |
JPS56143583A (en) * | 1980-04-11 | 1981-11-09 | Toshiba Corp | Buffer memory control system |
US4398243A (en) * | 1980-04-25 | 1983-08-09 | Data General Corporation | Data processing system having a unique instruction processor system |
US4382278A (en) * | 1980-06-05 | 1983-05-03 | Texas Instruments Incorporated | Hierarchial memory system with microcommand memory and pointer register mapping virtual CPU registers in workspace cache #4 and main memory cache |
JPS57114950A (en) * | 1981-01-08 | 1982-07-17 | Nippon Telegr & Teleph Corp <Ntt> | Loop processing system for program controller |
US4500954A (en) * | 1981-10-15 | 1985-02-19 | International Business Machines Corporation | Cache bypass system with post-block transfer directory examinations for updating cache and/or maintaining bypass |
US4530049A (en) * | 1982-02-11 | 1985-07-16 | At&T Bell Laboratories | Stack cache with fixed size stack frames |
US4597044A (en) * | 1982-10-14 | 1986-06-24 | Honeywell Information Systems, Inc. | Apparatus and method for providing a composite descriptor in a data processing system |
JPS60500187A (ja) * | 1982-12-30 | 1985-02-07 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | データ処理システム |
US4626988A (en) * | 1983-03-07 | 1986-12-02 | International Business Machines Corporation | Instruction fetch look-aside buffer with loop mode control |
US4635194A (en) * | 1983-05-02 | 1987-01-06 | International Business Machines Corporation | Instruction buffer bypass apparatus |
US4669043A (en) * | 1984-02-17 | 1987-05-26 | Signetics Corporation | Memory access controller |
-
1984
- 1984-08-31 JP JP59180434A patent/JPH0630075B2/ja not_active Expired - Lifetime
-
1985
- 1985-08-09 KR KR1019850005746A patent/KR920005292B1/ko not_active IP Right Cessation
- 1985-08-23 US US06/768,572 patent/US4937738A/en not_active Expired - Fee Related
- 1985-08-30 EP EP85110962A patent/EP0173981A3/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS54128640A (en) * | 1978-03-30 | 1979-10-05 | Toshiba Corp | Control system for cash memory |
JPS563485A (en) * | 1979-06-20 | 1981-01-14 | Nec Corp | Buffer memory device |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6337457A (ja) * | 1986-08-01 | 1988-02-18 | Hitachi Ltd | 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法 |
JPS63163062A (ja) * | 1986-12-24 | 1988-07-06 | Nippon Seiko Kk | 無段変速機と有段変速機とを備えた車両用複合変速機 |
JPH03116231A (ja) * | 1989-06-20 | 1991-05-17 | Nec Corp | マイクロプロセッサ |
JP2014181964A (ja) * | 2013-03-18 | 2014-09-29 | Fujitsu Ltd | レーダ装置及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP0173981A2 (en) | 1986-03-12 |
EP0173981A3 (en) | 1989-05-31 |
US4937738A (en) | 1990-06-26 |
JPH0630075B2 (ja) | 1994-04-20 |
KR920005292B1 (ko) | 1992-06-29 |
KR860002049A (ko) | 1986-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPS6159554A (ja) | キャッシュメモリを有するデータ処理装置 | |
US5247639A (en) | Microprocessor having cache bypass signal terminal | |
US5319763A (en) | Data processor with concurrent static and dynamic masking of operand information and method therefor | |
US5239642A (en) | Data processor with shared control and drive circuitry for both breakpoint and content addressable storage devices | |
US5341500A (en) | Data processor with combined static and dynamic masking of operand for breakpoint operation | |
US6523090B2 (en) | Shared instruction cache for multiple processors | |
US6356990B1 (en) | Set-associative cache memory having a built-in set prediction array | |
US5018061A (en) | Microprocessor with on-chip cache memory with lower power consumption | |
KR101839479B1 (ko) | 더 넓은 레지스터에의 모드 의존형 부분 폭 로드 프로세서들, 방법들, 및 시스템들 | |
JPH08328958A (ja) | 命令キャッシュ、キャッシュメモリ装置及びその方法 | |
KR100309615B1 (ko) | 고속프로그램가능로직컨트롤러(plc) | |
KR910003496A (ko) | 캐시 미스의 강제발생에 의한 다중 레벨 캐시 시스템의 성능 증가방법 | |
US8145804B2 (en) | Systems and methods for transferring data to maintain preferred slot positions in a bi-endian processor | |
JPS60168238A (ja) | パイプラインデータ処理装置 | |
US20050108497A1 (en) | Translation look aside buffer (TLB) with increased translational capacity for multi-threaded computer processes | |
KR910001314B1 (ko) | 데이타 처리 시스템에서의 가상 메모리 사용방법 | |
US5293622A (en) | Computer system with input/output cache | |
JPH06236353A (ja) | マルチプロセッサ・コンピュータ・システムのシステム・メモリの並行性を増大する方法およびシステム | |
Berenbaum et al. | Architectural Innovations in the CRISP Microprocessor. | |
JPH02214937A (ja) | データ処理装置 | |
US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
US7234027B2 (en) | Instructions for test & set with selectively enabled cache invalidate | |
JPH0552539B2 (ja) | ||
JPH0666052B2 (ja) | メモリ内容を機械レジスタに自動的に写像する計算機 | |
JPS63240651A (ja) | キヤツシユメモリ |