JPH0216654A - キャッシュメモリ制御方法 - Google Patents
キャッシュメモリ制御方法Info
- Publication number
- JPH0216654A JPH0216654A JP63165861A JP16586188A JPH0216654A JP H0216654 A JPH0216654 A JP H0216654A JP 63165861 A JP63165861 A JP 63165861A JP 16586188 A JP16586188 A JP 16586188A JP H0216654 A JPH0216654 A JP H0216654A
- Authority
- JP
- Japan
- Prior art keywords
- address
- cache memory
- memory
- main memory
- boundary
- 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
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔発明の利用分野〕
本発明は、電子計算機のキャッシュメモリ制御方法に係
り、特に複数のプログラムの多重処理を行う計算機に好
適なキャッシュメモリ制御方法に関する。
り、特に複数のプログラムの多重処理を行う計算機に好
適なキャッシュメモリ制御方法に関する。
従来のキャッシュメモリを付加した電子計算機の構成を
第4図に示す、キャッシュメモリ3は、データ部32と
格納されたデータが主メモリ2のどのアドレスに対応す
るかを示すディレクトリ部3rから成る。
第4図に示す、キャッシュメモリ3は、データ部32と
格納されたデータが主メモリ2のどのアドレスに対応す
るかを示すディレクトリ部3rから成る。
単位データあたりのディレクトリ部31の構成と役割を
第7図に示す、ディレクトリ部31は、キャッシュメモ
リ3の当該アドレスのデータが有効であるか否かを示す
有効フラグ(V) 311と、アドレス100のキャッ
シュメモリ索引に使用する部分101(以下では第1部
分アドレスとよぶ)を除いた部分(以下ではこれを第2
部分アドレスとよぶ)を格納するタグ部312とから成
る。即ちタグ部312に格納された第2部分アドレスと
、キャッシュメモリを索引するのに使用する第1部分ア
ドレス101を合わせたものが当該キャッシュメモリが
保存しているデータの、主メモリ上のアドレスになる。
第7図に示す、ディレクトリ部31は、キャッシュメモ
リ3の当該アドレスのデータが有効であるか否かを示す
有効フラグ(V) 311と、アドレス100のキャッ
シュメモリ索引に使用する部分101(以下では第1部
分アドレスとよぶ)を除いた部分(以下ではこれを第2
部分アドレスとよぶ)を格納するタグ部312とから成
る。即ちタグ部312に格納された第2部分アドレスと
、キャッシュメモリを索引するのに使用する第1部分ア
ドレス101を合わせたものが当該キャッシュメモリが
保存しているデータの、主メモリ上のアドレスになる。
例として、256語の主メモリと16語のキャッシュメ
モリを備えた処理装置の場合につき説明する。
モリを備えた処理装置の場合につき説明する。
主メモリのアドレスは8ビツトであり、その範囲は(0
)+s〜(FF)taとなる。ただし、(・)16は、
16進数を示し、以下では簡単のため添え字を省いて(
・)で示す、一方キャッシュメモリのアドレスは4ビツ
トであり、範囲は(0)〜(F)となる。従ってキャッ
シュのダグ部には主メモリのアドレス8ビツトからキャ
ッシュメモリのアドレス4ビツトを引いた残りの4ビツ
トが格納される。ここでアドレスの下位4ビツトでキャ
ッシュメモリを索引するとして、キャッシュメモリのア
ドレス(8)番地のタグ部に(4)が格納されていて有
効フラグがオンのとき、タグの内容はアドレスの上位4
ビツトに対応するので、キャッシュメモリの(8)番地
は主メモリの(48)番地のデータを保持していること
を示している。
)+s〜(FF)taとなる。ただし、(・)16は、
16進数を示し、以下では簡単のため添え字を省いて(
・)で示す、一方キャッシュメモリのアドレスは4ビツ
トであり、範囲は(0)〜(F)となる。従ってキャッ
シュのダグ部には主メモリのアドレス8ビツトからキャ
ッシュメモリのアドレス4ビツトを引いた残りの4ビツ
トが格納される。ここでアドレスの下位4ビツトでキャ
ッシュメモリを索引するとして、キャッシュメモリのア
ドレス(8)番地のタグ部に(4)が格納されていて有
効フラグがオンのとき、タグの内容はアドレスの上位4
ビツトに対応するので、キャッシュメモリの(8)番地
は主メモリの(48)番地のデータを保持していること
を示している。
以上のような構成にて、CPUIが主メモリ2ヘアクセ
ス(読みだしとする)する場合のキャッシュメモリ3の
動作は以下のようになる。CPU1が出力したアドレス
100の一部である第1部分アドレス101にてキャッ
シュメモリ3が索引される。この索引によって読み出さ
れた有効ビット311がオンしていれば、タグ部312
がら読みだした第2部分アドレス400と、入力された
アクセスアドレス100の内の第2部分アドレスとを比
較器7゜で比較する。これが一致して出力信号310の
オンのときアクセスデータがキャッシュメモリ3内に存
在することを示している。そしてそのデータは第1部分
アドレス101によりデータ部32から取り出されたデ
ータであるから、CPUIは、信号310オンによりア
クセス応答信号300がオンとなったことを検出してデ
ータ部32からのデータをデータバス200を介して読
み込む。
ス(読みだしとする)する場合のキャッシュメモリ3の
動作は以下のようになる。CPU1が出力したアドレス
100の一部である第1部分アドレス101にてキャッ
シュメモリ3が索引される。この索引によって読み出さ
れた有効ビット311がオンしていれば、タグ部312
がら読みだした第2部分アドレス400と、入力された
アクセスアドレス100の内の第2部分アドレスとを比
較器7゜で比較する。これが一致して出力信号310の
オンのときアクセスデータがキャッシュメモリ3内に存
在することを示している。そしてそのデータは第1部分
アドレス101によりデータ部32から取り出されたデ
ータであるから、CPUIは、信号310オンによりア
クセス応答信号300がオンとなったことを検出してデ
ータ部32からのデータをデータバス200を介して読
み込む。
一方、読み出した有効グラフ31がオフ、または比較器
7の出力信号の310がオフ、つまりタグ部312から
読みだした第2部分アドレスと入力アドレスのそれが不
一致のときは、所望のデータがキャッシュメモリ3内に
存在しないことを示しているから、信号300オフを見
でCPUIは主メモリ2からデータを読み込み、同時に
キャッシュメモリ3のデータ部32の、該当部分を主メ
モリから読みだしたデータ書き換え、さらにタグ部31
2の該当部分をそのときの入力アドレスの第2部分アド
レスに書き換え、有効フラグ311をオンとする。
7の出力信号の310がオフ、つまりタグ部312から
読みだした第2部分アドレスと入力アドレスのそれが不
一致のときは、所望のデータがキャッシュメモリ3内に
存在しないことを示しているから、信号300オフを見
でCPUIは主メモリ2からデータを読み込み、同時に
キャッシュメモリ3のデータ部32の、該当部分を主メ
モリから読みだしたデータ書き換え、さらにタグ部31
2の該当部分をそのときの入力アドレスの第2部分アド
レスに書き換え、有効フラグ311をオンとする。
このような書き換えの発生が少ないほど、キャッシュメ
モリのアクセスだけでメモリアクセスが終わり、キャッ
シュメモリの動作は主メモリよりも高速なので、CPU
Iの処理を高速化できる。
モリのアクセスだけでメモリアクセスが終わり、キャッ
シュメモリの動作は主メモリよりも高速なので、CPU
Iの処理を高速化できる。
一方、複数のプログラムを多重処理(マツルチプロセッ
シング)するシステムでは、複数のプログラムは主メモ
リ上の異なった領域に格納される。
シング)するシステムでは、複数のプログラムは主メモ
リ上の異なった領域に格納される。
このシステムでキャッシュメモリを用いると、実行プロ
グラムの切り替えが行われるごとに、第1部分アドレス
が一致する部分の書き換え(キャッシュのミスヒツト)
が発生し、CPU1の処理速度が大幅に低下する。各プ
ログラムごとに個別のキャッシュメモリを設ければ、こ
の問題は避けられるが、キャッシュメモリが多く必要で
、実装上。
グラムの切り替えが行われるごとに、第1部分アドレス
が一致する部分の書き換え(キャッシュのミスヒツト)
が発生し、CPU1の処理速度が大幅に低下する。各プ
ログラムごとに個別のキャッシュメモリを設ければ、こ
の問題は避けられるが、キャッシュメモリが多く必要で
、実装上。
あるいはコストの関係から、とくに小型のワークステー
ション等の場合には好ましくない。
ション等の場合には好ましくない。
この問題点を解決するための従来技術としては、特開昭
62−144257に開示されたキャッシュメモリがあ
る。第5図はこのキャッシュメモリの構成を示したもの
で、キャッシュメモリ3は、第6図に例示したように複
数のブロックに分割され、各ブロックは主メモリ上の各
プログラムに割り当てられる。このプログラムとキャッ
シュメモリ3のブロックとの対応付けは、CPUIから
の指令104により行われる。このようにして、カーネ
ル等の実行頻度の高いプログラムにキャッシュメモリ3
のブロックを専用に割り当てることにより、そのプログ
ラム実行時にキャッシュメモリの書き換えが少なくなる
ため、処理速度が向上する。
62−144257に開示されたキャッシュメモリがあ
る。第5図はこのキャッシュメモリの構成を示したもの
で、キャッシュメモリ3は、第6図に例示したように複
数のブロックに分割され、各ブロックは主メモリ上の各
プログラムに割り当てられる。このプログラムとキャッ
シュメモリ3のブロックとの対応付けは、CPUIから
の指令104により行われる。このようにして、カーネ
ル等の実行頻度の高いプログラムにキャッシュメモリ3
のブロックを専用に割り当てることにより、そのプログ
ラム実行時にキャッシュメモリの書き換えが少なくなる
ため、処理速度が向上する。
キャッシュメモリをブロックに分割した従来技術では、
多重処理を行うシステムの場合、実行プログラムの切り
替え時にはブロックの対応付けの変更が必要となり、こ
のためにCPUはどう対応付けるかの指令104を実行
プログラム切り替えごとに出さねばならない、従ってこ
の切り替えのためのCPUのオーバヘッドが増加すると
いう問題があり、更にシステムソフトウェアを他機種か
ら移植しようとすると、このキャッシュメモリの割り当
てを考慮する必要があり、ソフトウェア互換性が低下す
る。またあるプログラムに専用にキャッシュメモリのブ
ロックを割り当てた場合にも。
多重処理を行うシステムの場合、実行プログラムの切り
替え時にはブロックの対応付けの変更が必要となり、こ
のためにCPUはどう対応付けるかの指令104を実行
プログラム切り替えごとに出さねばならない、従ってこ
の切り替えのためのCPUのオーバヘッドが増加すると
いう問題があり、更にシステムソフトウェアを他機種か
ら移植しようとすると、このキャッシュメモリの割り当
てを考慮する必要があり、ソフトウェア互換性が低下す
る。またあるプログラムに専用にキャッシュメモリのブ
ロックを割り当てた場合にも。
プログラム実行時に通常交互にアクセスされる命令とデ
ータ(通常はスタック内に割り当てられる)のアドレス
に関して、キャッシュメモリ索引に使用される第1部分
アドレスが一致すると書き換えが頻発し、処理速度向上
が妨げられる。
ータ(通常はスタック内に割り当てられる)のアドレス
に関して、キャッシュメモリ索引に使用される第1部分
アドレスが一致すると書き換えが頻発し、処理速度向上
が妨げられる。
この最後の問題点を、前記した第7図の例、即ち256
語の主メモリと16語のキャッシュメモリを持ち、アド
レス8ビツト中下位4ビットでキャッシュメモリを索引
する処理装置を例に説明する。
語の主メモリと16語のキャッシュメモリを持ち、アド
レス8ビツト中下位4ビットでキャッシュメモリを索引
する処理装置を例に説明する。
今、第8図(a)のように、主メモリ上でプログラムA
は(10)番地から(14)番地の5語のアドレスに、
データのスタックは(20)番地から(24)番地の5
11のアドレスに、そしてプログラムの実行を制御する
システムプログラムは(0)番地から(4)番地の5語
のアドレスにそれぞれ割り当てられているとする。この
とき、プログラムAとスタックとシステムプログラムは
、いずれも下位4ビツトが(0)〜(4)で一致してい
る。このようなメモリ配置にてプログラムAを実行し、
命・令フェッチとオペランドフェッチとが交互に発生す
ると、プログラムAとスタックでは第1部分アドレスで
ある下位4ビツトが同じで第2部分アドレス(上位4ビ
ツト)が異なるため、ミスヒツトが頻発する。このため
、第8図(b)のように、キャッシュメモリの(0)〜
(4)番地は、命令フェッチからオペランドフェッチへ
、またはその変り目ごとに5語の内容が主メモリをアク
セスして更新される。実際のシステムでは1回に更新さ
れるキャッシュメモリの領域はもっと大きいので、この
更新に要する時間は大きく、この間CPUはプログラム
の処理を行えない。第8図のスタックをプログラムBと
し、これとプログラムAとが頻繁に入れ替わり実行され
るときも、キャッシュメモリの(0)〜(4)番地はプ
ログラムA、システムプログラム、プログラムB、シス
テムプログラム、プログラムA・・・と更新され、やは
り処理速度の低下を招く。
は(10)番地から(14)番地の5語のアドレスに、
データのスタックは(20)番地から(24)番地の5
11のアドレスに、そしてプログラムの実行を制御する
システムプログラムは(0)番地から(4)番地の5語
のアドレスにそれぞれ割り当てられているとする。この
とき、プログラムAとスタックとシステムプログラムは
、いずれも下位4ビツトが(0)〜(4)で一致してい
る。このようなメモリ配置にてプログラムAを実行し、
命・令フェッチとオペランドフェッチとが交互に発生す
ると、プログラムAとスタックでは第1部分アドレスで
ある下位4ビツトが同じで第2部分アドレス(上位4ビ
ツト)が異なるため、ミスヒツトが頻発する。このため
、第8図(b)のように、キャッシュメモリの(0)〜
(4)番地は、命令フェッチからオペランドフェッチへ
、またはその変り目ごとに5語の内容が主メモリをアク
セスして更新される。実際のシステムでは1回に更新さ
れるキャッシュメモリの領域はもっと大きいので、この
更新に要する時間は大きく、この間CPUはプログラム
の処理を行えない。第8図のスタックをプログラムBと
し、これとプログラムAとが頻繁に入れ替わり実行され
るときも、キャッシュメモリの(0)〜(4)番地はプ
ログラムA、システムプログラム、プログラムB、シス
テムプログラム、プログラムA・・・と更新され、やは
り処理速度の低下を招く。
本発明の目的は、実行プログラムの切り替えオーバヘッ
ドを短縮でき、システムソフトウェア移植時のプログラ
ム変更量が少なく、さらに同一プログラムにおける命令
とデータの引き続くアクセス時にキャッシュメモリ書き
換えが頻発しないキャッシュメモリ制御方法を提供する
にある。
ドを短縮でき、システムソフトウェア移植時のプログラ
ム変更量が少なく、さらに同一プログラムにおける命令
とデータの引き続くアクセス時にキャッシュメモリ書き
換えが頻発しないキャッシュメモリ制御方法を提供する
にある。
上記の目的は、キャッシュメモリを複数のブロックに分
割し、主メモリをこのブロック対応の複数の領域に区分
するための書き換え可能な境界レジスタと、この境界レ
ジスタの内容とアクセスアドレスとからアクセスアドレ
スがどの領域にあるかを決定する領域決定手段とを付加
し、この手段の出力によりキャッシュメモリのブロック
を選択することによって、主メモリの領域にキャッシュ
メモリのブロックを割り当てることにより達成される。
割し、主メモリをこのブロック対応の複数の領域に区分
するための書き換え可能な境界レジスタと、この境界レ
ジスタの内容とアクセスアドレスとからアクセスアドレ
スがどの領域にあるかを決定する領域決定手段とを付加
し、この手段の出力によりキャッシュメモリのブロック
を選択することによって、主メモリの領域にキャッシュ
メモリのブロックを割り当てることにより達成される。
キャッシュメモリの分割された各ブロックは主メモリの
分割された領域に割り当てられ、主メモリの領域の区分
は書き換え可能な境界レジスタへの設定値により行われ
る。境界レジスタへの書込みはシステム立上げ処理に於
て、システムソフトウェアが用途別に分割して使用する
主メモリの境界アドレスを設定するだけでよく一プロセ
ス切り換え時に特別な処理を必要としないから、CPU
の負荷にはならない、またシステムソフトウェア移植時
は、元来ハードウェア依存性が高いシステム立上げ処理
のみの変更で済む、さらに、データの大部分か格納され
るスタックに使用される主メモリの領域に、キャッシュ
メモリの1ブロツクを割当てれば、命令とデータの交互
アクセスによるキャッシュメモリの書き換えを回避でき
る。
分割された領域に割り当てられ、主メモリの領域の区分
は書き換え可能な境界レジスタへの設定値により行われ
る。境界レジスタへの書込みはシステム立上げ処理に於
て、システムソフトウェアが用途別に分割して使用する
主メモリの境界アドレスを設定するだけでよく一プロセ
ス切り換え時に特別な処理を必要としないから、CPU
の負荷にはならない、またシステムソフトウェア移植時
は、元来ハードウェア依存性が高いシステム立上げ処理
のみの変更で済む、さらに、データの大部分か格納され
るスタックに使用される主メモリの領域に、キャッシュ
メモリの1ブロツクを割当てれば、命令とデータの交互
アクセスによるキャッシュメモリの書き換えを回避でき
る。
以下、本発明を実施例により説明する。第1図は本発明
の方法を適用した電子計算機の一実施例を示すブロック
図で、CPU1.主メモリ2、キャッシュメモリ3、境
界レジスタ4、比較器5゜アドレス生成回路6、比較器
7により構成される。
の方法を適用した電子計算機の一実施例を示すブロック
図で、CPU1.主メモリ2、キャッシュメモリ3、境
界レジスタ4、比較器5゜アドレス生成回路6、比較器
7により構成される。
境界レジスタ4は主メモリ2を複数の領域に分割した場
合の領域間の境界アドレスを格納するものであり、任意
に書き換え可能である。比較器5は境界レジスタ4に格
納された境界アドレスとCPU1が出力する主メモリ2
のアドレス(アクセスアドレス)100との大小関係を
比較する回路であり、アドレス生成回路6は比較器5の
出力103よリアクセスアドレス100が主メモリ2の
複数に分割された領域のいずれに属するかを判定し、キ
ャッシュメモリ3のブロック選択用のアドレス102を
生成する回路である。
合の領域間の境界アドレスを格納するものであり、任意
に書き換え可能である。比較器5は境界レジスタ4に格
納された境界アドレスとCPU1が出力する主メモリ2
のアドレス(アクセスアドレス)100との大小関係を
比較する回路であり、アドレス生成回路6は比較器5の
出力103よリアクセスアドレス100が主メモリ2の
複数に分割された領域のいずれに属するかを判定し、キ
ャッシュメモリ3のブロック選択用のアドレス102を
生成する回路である。
第2図(a)はアドレス生成回路6の回路構成を示すも
のである0本実施例では、境界レジスタ4および比較器
5は3個ずつ設けものとしており。
のである0本実施例では、境界レジスタ4および比較器
5は3個ずつ設けものとしており。
従って主メモリ2は3つの境界アドレスにより4つの領
域に分割される。キャッシュメモリ3もこれと同じく4
ブロツク構成である。そこで、各境界レジスタ4の3つ
の境界アドレスをXi、X2゜X3とし、これらとの比
較を行う各比較器5の出力103をYl、Y2.Y3、
アクセスアドレスを又とする。そして各比較器5は J=1. 2. 3・・・・・・ なる動作を行うとする。このとき、第2図(a)の論理
により出力されるブロックアドレス102(D。
域に分割される。キャッシュメモリ3もこれと同じく4
ブロツク構成である。そこで、各境界レジスタ4の3つ
の境界アドレスをXi、X2゜X3とし、これらとの比
較を行う各比較器5の出力103をYl、Y2.Y3、
アクセスアドレスを又とする。そして各比較器5は J=1. 2. 3・・・・・・ なる動作を行うとする。このとき、第2図(a)の論理
により出力されるブロックアドレス102(D。
E)は同図(b)で与えられ、この値にキャッシュメモ
リ3の各ブロックが対応付けられる。
リ3の各ブロックが対応付けられる。
以上の実施例において、CPUIが主メモリ2のデータ
を読みだす場合を例に動作を説明する。
を読みだす場合を例に動作を説明する。
まず、CPUIがアクセスアドレスlOOを出力すると
、これは比較器5によって境界レジスタ4に設定された
境界アドレスと比較される。アドレス生成回路6は、比
較器5の出力103から、第2図で説明したようにして
、アクセスアドレス100がキャッシュメモリのどのブ
ロックと対応するかを判定し、ブロックのアドレス10
2を出力する。キャッシュメモリ3は、このブロックア
ドレス102とアクセスアドレス100の一部であって
キャッシュメモリ3のブロック内の位置を示すアドレス
lotとにより索引される。この索引によりキャッシュ
メモリ3のタグ部312から読みだされたアドレス(第
2部分アドレス)はアクセスアドレス100の該当部と
比較器7にて比較され、両者が一致した場合は一致信号
310がオンとされる(キャツシュヒツト)、このとき
はCPUIへのアクセス応答信号300がオンとなり、
CPU1は上記索引によりキャッシュメモリ3のデータ
部32から読みだされたデータを読み込む。比較器7で
の比較結果が不一致なら(ミスヒツト)、従来の場合と
同様に、主メモリからの読みだしとキャッシュメモリの
書き換えが行われる。
、これは比較器5によって境界レジスタ4に設定された
境界アドレスと比較される。アドレス生成回路6は、比
較器5の出力103から、第2図で説明したようにして
、アクセスアドレス100がキャッシュメモリのどのブ
ロックと対応するかを判定し、ブロックのアドレス10
2を出力する。キャッシュメモリ3は、このブロックア
ドレス102とアクセスアドレス100の一部であって
キャッシュメモリ3のブロック内の位置を示すアドレス
lotとにより索引される。この索引によりキャッシュ
メモリ3のタグ部312から読みだされたアドレス(第
2部分アドレス)はアクセスアドレス100の該当部と
比較器7にて比較され、両者が一致した場合は一致信号
310がオンとされる(キャツシュヒツト)、このとき
はCPUIへのアクセス応答信号300がオンとなり、
CPU1は上記索引によりキャッシュメモリ3のデータ
部32から読みだされたデータを読み込む。比較器7で
の比較結果が不一致なら(ミスヒツト)、従来の場合と
同様に、主メモリからの読みだしとキャッシュメモリの
書き換えが行われる。
第3図はキャッシュメモリの各ブロックの使用例を示し
たもので、システムソフトウェアが主メモリ2をこのよ
うな領域に分割して使用する。カーネル領域21はシス
テムソフトウェアの本体であり、プロセス管理、メモリ
管理、ファイル管理。
たもので、システムソフトウェアが主メモリ2をこのよ
うな領域に分割して使用する。カーネル領域21はシス
テムソフトウェアの本体であり、プロセス管理、メモリ
管理、ファイル管理。
入出力2割込処理等のプログラムとそのためのデータが
格納される。ユーザプログラム領域23はシステムソフ
トウェアの環境化で動くプログラムを格納する領域であ
り、多重処理を行う電子計算機では複数のプログラムが
格納される。共通サブルーチン領域22はシステムプロ
グラムとユーザプログラム、あるいはユーザプログラム
同志で、共同して使用する共通サブルーチンを格納する
領域である。スタック領域24はプログラムで使用する
データ、サブルーチン呼出し時の引数及びサブルーチン
からの戻りアドレスを格納する領域である。
格納される。ユーザプログラム領域23はシステムソフ
トウェアの環境化で動くプログラムを格納する領域であ
り、多重処理を行う電子計算機では複数のプログラムが
格納される。共通サブルーチン領域22はシステムプロ
グラムとユーザプログラム、あるいはユーザプログラム
同志で、共同して使用する共通サブルーチンを格納する
領域である。スタック領域24はプログラムで使用する
データ、サブルーチン呼出し時の引数及びサブルーチン
からの戻りアドレスを格納する領域である。
これら領域の境界はシステムの利用状況によって変化す
るため一定ではないが、ある範囲内に収まるという特徴
がある。従って若干の誤差が発生するが主メモリを前記
の複数の領域に分割した場合の領域間の境界アドレスを
近似的に定めることができる。第3図では、第2図の例
によって、キャッシュメモリ3を4つのブロックに分割
した例を示している。この場合、システム立ち上げ処理
において、主メモリ2の各領域の境界アドレスの近似値
x1〜x3を境界レジスタに設定することによって、主
メモリ2の各領域にキャッシュメモリ3のブロックを割
り当てることができる0本実施例では、ユーザプログラ
ムのプロセス切り替え時に、プロセス管理を行うカーネ
ル領域21に専用のキャッシュメモリのブロックが割り
当てられており、この部分は他のプログラムによって置
き換わらないので、高速にプロセス切り替え処理が行え
るという効果がある。また複数のプログラムにより呼び
出される共通サブルーチン領域22も専用のキャッシュ
メモリのブロックが割り当てられているので、高速に処
理できるという効果がある。さらにプログラムで使用さ
れるデータを格納するスタック領域24にも専用のキャ
ッシュメモリのブロックが割り当てられるので、プログ
ラム実行時に命令とデータが交互にアクセスされてもキ
ャッシュメモリの置き換えが発生しないという効果があ
る。なお、第3図ではユーザプログラム領域を一つの領
域としており、これに対してキャッシュメモリも1ブロ
ツクだけ割り当てた例を示しているが、第1図の境界レ
ジスタ4と比較器5を増設して、キャッシュメモリ3と
主メモリ2のユーザプログラム領域23を細分化し、そ
れぞれにキャッシュメモリのブロック割り当てを行えば
、ユーザプログラム相互間のプロセス切り替え時のキャ
ッシュメモリの置き換えを減らすことができる。
るため一定ではないが、ある範囲内に収まるという特徴
がある。従って若干の誤差が発生するが主メモリを前記
の複数の領域に分割した場合の領域間の境界アドレスを
近似的に定めることができる。第3図では、第2図の例
によって、キャッシュメモリ3を4つのブロックに分割
した例を示している。この場合、システム立ち上げ処理
において、主メモリ2の各領域の境界アドレスの近似値
x1〜x3を境界レジスタに設定することによって、主
メモリ2の各領域にキャッシュメモリ3のブロックを割
り当てることができる0本実施例では、ユーザプログラ
ムのプロセス切り替え時に、プロセス管理を行うカーネ
ル領域21に専用のキャッシュメモリのブロックが割り
当てられており、この部分は他のプログラムによって置
き換わらないので、高速にプロセス切り替え処理が行え
るという効果がある。また複数のプログラムにより呼び
出される共通サブルーチン領域22も専用のキャッシュ
メモリのブロックが割り当てられているので、高速に処
理できるという効果がある。さらにプログラムで使用さ
れるデータを格納するスタック領域24にも専用のキャ
ッシュメモリのブロックが割り当てられるので、プログ
ラム実行時に命令とデータが交互にアクセスされてもキ
ャッシュメモリの置き換えが発生しないという効果があ
る。なお、第3図ではユーザプログラム領域を一つの領
域としており、これに対してキャッシュメモリも1ブロ
ツクだけ割り当てた例を示しているが、第1図の境界レ
ジスタ4と比較器5を増設して、キャッシュメモリ3と
主メモリ2のユーザプログラム領域23を細分化し、そ
れぞれにキャッシュメモリのブロック割り当てを行えば
、ユーザプログラム相互間のプロセス切り替え時のキャ
ッシュメモリの置き換えを減らすことができる。
本発明によれば、キャッシュメモリを複数のブロックに
分割して使用するために、システム立ち上げ処理時にキ
ャッシュメモリの割り当てを行うだけでよいため、プロ
セス切り替え時のオーバヘッドが増加せず、またシステ
ムソフトウェアの移植時にシステム立ち上げ処理の変更
を行うだけでよいのでソフトウェア互換性が高くなると
いう効果があり、またスタック領域とユーザプログラム
格納領域を別のブロックとすることで命令とデータの交
互アクセス時のキャッシュメモリの書き換えの頻発をな
くせるという効果がある。
分割して使用するために、システム立ち上げ処理時にキ
ャッシュメモリの割り当てを行うだけでよいため、プロ
セス切り替え時のオーバヘッドが増加せず、またシステ
ムソフトウェアの移植時にシステム立ち上げ処理の変更
を行うだけでよいのでソフトウェア互換性が高くなると
いう効果があり、またスタック領域とユーザプログラム
格納領域を別のブロックとすることで命令とデータの交
互アクセス時のキャッシュメモリの書き換えの頻発をな
くせるという効果がある。
第1図は本発明の一実施例を示すブロック図。
第2図は第1図のアドレス生成回路の一例を示した図、
第3図は第1図の実施例における主メモリとキャッシュ
メモリの対応づけの例を示した図、第4図および第5図
は従来技術の例を示すブロック図、第6図は第5図の従
来例における主メモリとキャッシュメモリの対応付けの
例を示した図。 第7図はディレクトリ部の説明図、第8図は従来装置で
命令とオペランドのフェッチが交互に発生したときの動
作説明図である。 1・・・CPU、2・・・主メモリ、3・・・キャッシ
ュメモリ、4・・・境界レジスタ、5・・・比較器、d
・・・アドレス生成回路、102・・・ブロックアドレ
ス、103・・・大小判定信号。 代理人弁理士 秋 本 正 実第 図 集 図 (b) 輩 苓 図 栴 図 纂 図 葛 図
第3図は第1図の実施例における主メモリとキャッシュ
メモリの対応づけの例を示した図、第4図および第5図
は従来技術の例を示すブロック図、第6図は第5図の従
来例における主メモリとキャッシュメモリの対応付けの
例を示した図。 第7図はディレクトリ部の説明図、第8図は従来装置で
命令とオペランドのフェッチが交互に発生したときの動
作説明図である。 1・・・CPU、2・・・主メモリ、3・・・キャッシ
ュメモリ、4・・・境界レジスタ、5・・・比較器、d
・・・アドレス生成回路、102・・・ブロックアドレ
ス、103・・・大小判定信号。 代理人弁理士 秋 本 正 実第 図 集 図 (b) 輩 苓 図 栴 図 纂 図 葛 図
Claims (1)
- 【特許請求の範囲】 1、主メモリを複数個の領域に分割したときの境界アド
レスを格納するための書き換え可能な境界レジスタと、
処理装置から主メモリへのアクセスアドレスと上記境界
レジスタに格納された境界アドレスとを比較して、上記
アクセスアドレスが上記分割された主メモリ上の領域の
どれに属するかを示す領域指定信号を出力する判定回路
とを設け、かつ上記主メモリ上の領域に対応して1つず
つのブロックが存在するようにキャッシュメモリを複数
のブロックに分割するとともに、処理装置から主メモリ
へのアクセス時には、上記判定回路からの領域指定信号
の指定する領域に対するキャッシュメモリ上のブロック
内のみを索引対象として当該アクセスアドレスによる索
引を行うことを特徴とするキャッシュメモリ制御方法。 2、前記境界レジスタの境界アドレスは、システム立ち
上げ時にシステムプログラムにより設定されることを特
徴とする請求項1記載のキャッシュメモリ制御方法。 3、前記判定回路は、前記境界アドレスの各々とアクセ
スアドレスとを比較し、その比較結果に応じてその各々
がオンまたはオフ信号を出力する比較手段と、該手段の
各々の出力をデコードして上記アクセスアドレスが前記
主メモリの領域の何番目のものであるかを示す信号を生
成し、これを前記領域指定信号として出力する回路とか
ら構成されたことを特徴とする請求項1記載のキャッシ
ュメモリ制御方法。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63165861A JPH0216654A (ja) | 1988-07-05 | 1988-07-05 | キャッシュメモリ制御方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP63165861A JPH0216654A (ja) | 1988-07-05 | 1988-07-05 | キャッシュメモリ制御方法 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0216654A true JPH0216654A (ja) | 1990-01-19 |
Family
ID=15820384
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP63165861A Pending JPH0216654A (ja) | 1988-07-05 | 1988-07-05 | キャッシュメモリ制御方法 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0216654A (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103999062A (zh) * | 2011-10-26 | 2014-08-20 | 惠普发展公司,有限责任合伙企业 | 经分段的高速缓存 |
-
1988
- 1988-07-05 JP JP63165861A patent/JPH0216654A/ja active Pending
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN103999062A (zh) * | 2011-10-26 | 2014-08-20 | 惠普发展公司,有限责任合伙企业 | 经分段的高速缓存 |
| JP2014534520A (ja) * | 2011-10-26 | 2014-12-18 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | セグメント化されたキャッシュ |
| US9697115B2 (en) | 2011-10-26 | 2017-07-04 | Hewlett-Packard Development Company, L.P. | Segmented caches |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US8799621B2 (en) | Translation table control | |
| US5826057A (en) | Method for managing virtual address space at improved space utilization efficiency | |
| US4903234A (en) | Memory system | |
| US5555395A (en) | System for memory table cache reloads in a reduced number of cycles using a memory controller to set status bits in the main memory table | |
| JP3666689B2 (ja) | 仮想アドレス変換方法 | |
| US5956751A (en) | Computer memory management system using physical segmentation space allocation | |
| JP2000057054A (ja) | 高速アドレス変換システム | |
| JPH10232834A (ja) | キャッシュメモリを作動する方法およびコンピュータシステム | |
| US6122708A (en) | Data cache for use with streaming data | |
| US4654779A (en) | Multiprocessor system including firmware | |
| CN118210622B (zh) | 一种内存分配方法及计算设备 | |
| US4654782A (en) | Variable segment size plural cache system with cache memory unit selection based on relative priorities of accessed encached programs | |
| US6564283B1 (en) | Data processing system for expanded addresses | |
| US5802598A (en) | Data memory access control and method using fixed size memory sections that are sub-divided into a fixed number of variable size sub-sections | |
| US8266379B2 (en) | Multithreaded processor with multiple caches | |
| US5761740A (en) | Method of and apparatus for rapidly loading addressing registers | |
| US4984150A (en) | Virtual memory control management system | |
| US6766435B1 (en) | Processor with a general register set that includes address translation registers | |
| US12360893B2 (en) | Address space mapping | |
| US5283878A (en) | Method and apparatus for encoding data types for object identification | |
| KR930009092B1 (ko) | 가상 메모리 어드레싱을 채택한 데이타 처리 시스템에서의 페이지 프레임 교체 장치 및 방법 | |
| US5450587A (en) | Expanded memory addressing scheme | |
| US4628450A (en) | Data processing system having a local memory which does not use a directory device with distributed resident programs and a method therefor | |
| US5933856A (en) | System and method for processing of memory data and communication system comprising such system | |
| JP3105822B2 (ja) | マイクロプログラム制御装置 |