JPH08263377A - キャッシュメモリ管理方式 - Google Patents

キャッシュメモリ管理方式

Info

Publication number
JPH08263377A
JPH08263377A JP7094581A JP9458195A JPH08263377A JP H08263377 A JPH08263377 A JP H08263377A JP 7094581 A JP7094581 A JP 7094581A JP 9458195 A JP9458195 A JP 9458195A JP H08263377 A JPH08263377 A JP H08263377A
Authority
JP
Japan
Prior art keywords
memory
cache
definition table
free
area definition
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
Application number
JP7094581A
Other languages
English (en)
Other versions
JP3013742B2 (ja
Inventor
Hiroaki Nishino
浩明 西野
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 JP7094581A priority Critical patent/JP3013742B2/ja
Publication of JPH08263377A publication Critical patent/JPH08263377A/ja
Application granted granted Critical
Publication of JP3013742B2 publication Critical patent/JP3013742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 実行するプログラムの性質に応じて最も効率
的にキャッシュメモリを利用することができるキャッシ
ュメモリ管理方式の提供。 【構成】 システム初期化時に、キャッシュメモリ13
の各キャッシュブロックに対して物理メモリ空間中のフ
リーな物理メモリページをリスト化し、各キャッシュブ
ロックに対応するヘッダに繋げてフリーメモリリスト1
2を作成するフリーメモリリスト初期化手段15と、仮
想メモリ空間と各キャッシュブロックとの対応付けを管
理するメモリ領域定義テーブル20と、システム初期化
時に、メモリ領域定義テーブル20の内容をユーザが指
定する内容で設定するメモリ領域定義テーブル初期化手
段16と備え、システム動作時に、要求された仮想メモ
リ空間に対応するキャッシュブロックをメモリ領域定義
テーブル20より検索し、検索されたキャッシュブロッ
クに対応するフリーメモリリスト12から対応する物理
メモリページを検索し、要求された処理を行う。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPUと主記憶メモリ
の間にキャッシュメモリを設置し、ハードウェアが主記
憶メモリの物理メモリアドレスを用いてキャッシュメモ
リとの対応付けを行い、主記憶メモリへのアクセスを高
速化する計算機システムに関し、特にキャッシュメモリ
の利用方法をソフトウエアで指定できるようにして計算
機システムで実行されるプログラムの性質によって効率
良くキャッシュメモリを使用することを可能にするキャ
ッシュメモリ管理方式に関する。
【0002】
【従来の技術】従来、キャッシュメモリの使用方法とし
ては、CPUで実行するプログラムの命令部(I)用と
データ部(D)用にキャッシュメモリを分解し、それぞ
れ個別にキャッシュ処理を行うか、あるいは分割を行わ
ずに命令部(I)とデータ部(D)を混在させて使用す
るかのいずれかの方法が存在する。キャッシュメモリ
は、主記憶メモリに比べて記憶容量が非常に小さいた
め、通常主記憶メモリ上の複数の領域がキャッシュメモ
リの同一領域に対応付けられる。
【0003】このため、CPUで実行されているプログ
ラムが同一のキャッシュメモリ領域に対応する異なる主
記憶メモリ領域をアクセスすると、前にキャッシュメモ
リにロードされた内容が無効化されてしまうために、使
用効率が低下するという問題がある。すなわち、キャッ
シュメモリの競合による効率低下が発生する。この解決
策としてキャッシュメモリを命令部(I)用とデータ部
(D)用に分割し、この間では競合が起こらないように
しているが、競合が発生する要因は命令部(I)とデー
タ部(D)だけに限らないため、他の要因での競合によ
る効率低下は防止できない。
【0004】
【発明が解決しようとする課題】上述した従来のキャッ
シュメモリ管理方式では、命令部(I)とデータ部
(D)以外の要因によるキャッシュメモリ競合による効
率低下を防止することができないという問題がある。実
際に、命令部(I)とデータ部(D)以外の要因として
は、OSメモリ空間とユーザメモリ空間での競合が一例
として考えられる。ユーザメモリ空間上のユーザプログ
ラムはOSのサービスを受けるためにシステムコールを
発行し、OSメモリ空間上のOSプログラムが実行され
るが、この時OSプログラムがユーザプログラムの使用
するキャッシュメモリと競合しユーザプロクラムの内容
を無効化してしまう。
【0005】この様な場合、実行性能の低下につながる
が、上述したようにキャッシュメモリを命令部(I)と
データ部(D)で単に分割するだけでは競合防止ができ
ない。また、どのような要因で競合が発生するかは、C
PUで実行するプログラムによってさまざまであり、従
来のようにキャッシュメモリの使用法が静的に決まって
いる場合には、実行するプログラムによってキャッシュ
メモリの使用効率が良くなったり悪くなったりする。
【0006】本発明は、上記従来の欠点を解消し、実行
するプログラムの性質に応じて最も効率的にキャッシュ
メモリを利用することができるキャッシュメモリ管理方
式を提供することを目的とする。
【0007】
【課題を解決するための手段】上記目的を達成するた
め、本発明のキャッシュメモリ管理方式は、複数のキャ
ッシュブロックより構成されたキャッシュメモリと、前
記各キャッシュブロックに対するヘッダにより構成され
るフリーメモリ・リストヘッダと、システム初期化時
に、前記各キャッシュブロックに対して物理メモリ空間
中のフリーな物理メモリページをリスト化し、各キャッ
シュブロックに対応する前記ヘッダに繋げてフリーメモ
リ・リストを作成するフリーメモリ・リスト初期化手段
と、仮想メモリ空間と前記各キャッシュブロックとの対
応付けを管理するメモリ領域定義テーブルと、システム
初期化時に、前記メモリ領域定義テーブルの内容をユー
ザが指定する内容で設定するメモリ領域定義テーブル初
期化手段と、システム動作時に、要求された仮想メモリ
空間に対応するキャッシュブロックを前記メモリ領域定
義テーブルより検索し、検索されたキャッシュブロック
に対応する前記フリーメモリ・リストから対応する物理
メモリページを検索し、要求された処理を行う要求処理
手段とを構成としている。
【0008】また、他の態様では、システム動作中の任
意の時点で発生するメモリ領域定義テーブルの更新要求
によって起動され、指定された内容で該メモリ領域定義
テーブルの内容を更新するメモリ領域定義テーブル更新
手段をさらに具備することを構成としている。
【0009】上記目的を達成する他のキャッシュメモリ
管理方式は、上記の要求処理手段が、システム動作時に
発生するメモリ割り付け要求により起動され、要求され
た仮想メモリ空間に対応するキャッシュブロックをメモ
リ領域定義テーブルより検索し、検索されたキャッシュ
ブロックに対応するフリーメモリ・リストからフリーな
物理メモリページを取得して割り付け対象の仮想メモリ
空間に対応付けることを構成としている。
【0010】上記目的を達成する他のキャッシュメモリ
管理方式は、上記の要求処理手段が、システム動作時に
発生するメモリ解放要求により起動され、解放対象の仮
想メモリ空間に対応するキャッシュブロックをメモリ領
域定義テーブルより検索し、検索されたキャッシュブロ
ックに対応する物理メモリページをフリーメモリ・リス
トに戻すことを構成としている。
【0011】
【作用】本発明では、システムの初期化時やシステムの
動作中に、プログラム動作時の性質に応じてキャッシュ
メモリの使用方法をソフトウエアによって変更できるよ
うに構成したので、キャッシュメモリの競合を回避で
き、主記憶メモリへのアクセス性能の低下の防止するこ
とができる。従って、実行するプログラムの性質に応じ
て最も効率的にキャッシュメモリを利用することができ
るようになる。
【0012】
【実施例】以下、本発明の実施例の詳細を図面に基づい
て説明する。図1は本発明の第1実施例によるキャッシ
ュメモリ管理方式を示すモデル図である。
【0013】同図に示おいて、キャッシュメモリ13
は、一定の大きさで分割・管理されており、個々の分割
単位をキャッシュブロックといい、全部でn個のキャッ
シュブロック#1〜#nより構成されている。
【0014】フリーメモリ・リストヘッダ12は、各キ
ャッシュブロック#1〜#nに対するn個のヘッダ領域
により構成される。
【0015】システム初期化手段14は、フリーメモリ
初期化手段15及びメモリ領域定義テーブル初期化手段
16の呼び出しを行う。
【0016】フリーメモリ初期化手段15は、システム
初期化手段14より呼び出されると、上記のフリーメモ
リ・リストヘッダ12を作成し、全てのフリーな物理メ
モリページ(フリーメモリ・リスト11)からその内容
がハードウエアによって対応するキャッシュブロックに
キャッシュ(ロード)される物理メモリページの線形リ
ストを構成する。キャッシュブロックと物理メモリペー
ジの対応付けは、(キャッシュブロック番号)=(物理
メモリページアドレス)mod(n)となるように配置
する。ここで、AmodBは、AをBで割った余りを意
味している。
【0017】メモリ領域定義テーブル初期化手段16
は、システム初期化手段14より呼び出されると、ユー
ザが定義した仮想メモリアドレスとその空間用に利用す
るキャッシュブロックの番号情報をメモリ領域定義テー
ブル20に登録する。
【0018】メモリ領域定義テーブル20の各エントリ
は、各仮想メモリ空間の開始アドレス(VADDxs;
x=1,2,…)および終端アドレス(VADDxe;
x=1,2,…)と、該仮想アドレス空間の内容をキャ
ッシュ処理するのに使用されるキャッシュメモリの開始
キャッシュブロック番号(BLKxs;x=1,2…)
および終端キャッシュブロック番号(BLKxe;x=
1,2,…)との対から構成される。
【0019】メモリ割り付け解放手段19は、メモリ割
り付け要求17を受け付けると、割り付けを行う仮想メ
モリページのアドレスより対応するキャッシュブロック
番号をメモリ領域定義テーブル20より検索し、このキ
ャッシュブロック番号に対応するフリーメモリ・リスト
ヘッダ12のヘッダにリンクされているフリーな物理メ
モリページを確保し、要求された仮想メモリページに割
り付ける。仮想アドレスとキャッシュブロック番号との
対応付けの一例は、(キャッシュブロック番号)=(B
LKxs)+(仮想アドレス)mod(BLKxe−B
LKxs+1)(x=1、2、…)となる。
【0020】また、メモリ割り付け解放手段19は、メ
モリ解放要求18を受け付けると、解放を行う仮想メモ
リページのアドレスより対応するキャッシュブロック番
号をメモリ領域定義テーブル10より検索し、このキャ
ッシュブロック番号に対応するフリーメモリ・リストヘ
ッダ12のヘッダで管理されているフリーメモリ・リス
ト20中に、この仮想メモリページに割り付けられてい
た物理メモリページを戻す。仮想アドレスとキャッシュ
ブロック番号との対応付けには、メモリ割り付け時に使
用したものと同じ方法を用いる。
【0021】図2はこのように構成されたキャッシュメ
モリの使用法を説明するための図である。同図に示すよ
うに、例えば仮想メモリ空間21上のユーザメモリ空間
22は、メモリ領域定義テーブル20によりキャッシュ
メモリ13のキャッシュブロック#1から#iまでが対
応付けられている。仮想メモリ空間21上のOSメモリ
空間23は、メモリ領域定義テーブル20によりキャッ
シュメモリ13のキャッシュブロック#i+1から#n
までがそれぞれ対応付けられている。この場合、ユーザ
メモリ空間22とOSメモリ空間23に対応するキャッ
シュブロックは完全に分離されているが、重なるキャッ
シュブロックが存在しても構わない。
【0022】ユーザメモリ空間22上の仮想メモリペー
ジ24および25には、物理メモリ空間28上の物理メ
モリページ29および30がそれぞれ割り付けられてい
る。これらの物理メモリページ29、30は、メモリ領
域定義テーブル20により、ユーザメモリ空間に対応す
るキャッシュブロック#1から#iまでの範囲内に存在
するよう、フリーメモリ・リストヘッダ12のヘッダで
管理されるフリーな物理メモリページから割り付けられ
る。
【0023】OSメモリ空間23上の仮想メモリページ
26および27には、物理メモリ空間28上の物理メモ
リページ31および32がそれぞれ割り付けられてい
る。これらの物理メモリページ31、32は、メモリ領
域定義テーブル20により、OSメモリ空間に対応する
キャッシュブロック#i+1から#nまでの範囲内に存
在するよう、フリーメモリ・リストヘッダ12のヘッダ
で管理されるフリーな物理メモリページから割り付けら
れる。
【0024】すなわち、通常のキャッシュメモリでは、
命令部(I)とデータ部(D)毎に分割して使用される
が、命令部(I)とデータ部(D)とも混在して使用す
るかをハードウエアあるいはソフトウエアで制御できる
のみである。加えて命令部(I)とデータ部(D)それ
ぞれのサイズも固定的に決まってしまう。これに対し
て、本発明を用いることにより、仮想メモリ空間11を
空間の属性や性質等で分割し、その分割単位毎に任意の
個数のキャッシュブロックを対応付けて使用することが
可能となる。
【0025】例えば、上記の例でいえば、仮想メモリ空
間21をユーザプログラムのテキスト・データ・スタッ
ク部が配置されるユーザメモリ空間22と、OSのテキ
スト・データ・スタックおよび計算機システムを管理す
るために制御構造体等が配置されるOSメモリ空間23
の2つに分割し、それぞれに別のキャッシュブロックを
割り当てることにより、ユーザメモリ空間22とOSメ
モリ空間23へのアクセスにおいて、キャッシュメモリ
の競合による効率低下を防止することが可能である。
【0026】図3は本発明の第2の実施例を示すモデル
図である。図1のシステムと共通の構成には同一の符号
を付している。同図に示すシステムは、図1に示したシ
ステムに、メモリ領域定義テーブル更新手段34をされ
に加えた構成としたものである。メモリ領域定義テーブ
ル更新手段34は、システム動作中の任意の時点で発生
するテーブル更新要求33によって起動され、指定され
た内容でメモリ領域定義テーブル20の内容を更新す
る。
【0027】すなわち、図1に示した第1実施例のシス
テムでは、メモリ領域定義テーブル20の内容はシステ
ム初期化時にメモリ領域定義テーブル初期化手段16に
よって設定され、システムが動作中はキャッシュメモリ
の使用法を変更することができなかったが、この実施例
のシステムでは、メモリ領域定義テーブル更新手段34
により、メモリ領域定義テーブル20の内容をシステム
動作中に動的に変更し、実行するプログラム毎にキャッ
シュメモリの使用方法を変更することが可能となる。
【0028】以上好ましい実施例をあげて本発明を説明
したが、本発明は必ずしも上記実施例に限定されるもの
ではない。
【0029】
【発明の効果】以上説明したように、本発明によれば、
プログラム動作時の性質に応じてキャッシュメモリの使
用方法をソフトウエアによって変更できるようにしたこ
とで、キャッシュメモリの競合を回避でき、主記憶メモ
リへのアクセス性能の低下の防止することができる。
【0030】また、本発明では、メモリ領域定義テーブ
ルの内容をシステム動作中に動的に変更できるように構
成することで、実行するプログラム毎にキャッシュメモ
リの使用方法を変更することが可能となる。
【0031】かくして、本発明によれば、プログラムの
性質に応じてキャッシュメモリを最も効率的に使用する
ことが可能となる。
【図面の簡単な説明】
【図1】 本発明の第1の実施例によるキャッシュメモ
リ管理方式を示すモデル図である。
【図2】 図1の構成のキャッシュメモリの使用法を説
明するための図である。
【図3】 本発明の第2の実施例のキャッシュメモリ管
理方式を示すモデル図である。
【符号の説明】
11 フリーメモリ・リスト 12 フリーメモリ・リストヘッダ 13 キャッシュメモリ 14 システム初期化手段 15 フリーメモリ初期化手段 16 メモリ領域定義テーブル初期化手段 19 メモリ割り付け解放手段 20 メモリ領域定義テーブル 21 仮想メモリ空間 22 ユーザメモリ空間 23 OSメモリ空間 24,25,26,27 仮想メモリページ 28 物理メモリ空間 29,30,31,32 物理メモリページ 34 メモリ領域定義テーブル更新手段

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 複数のキャッシュブロックより構成され
    たキャッシュメモリと、 前記各キャッシュブロックに対するヘッダにより構成さ
    れるフリーメモリ・リストヘッダと、 システム初期化時に、前記各キャッシュブロックに対し
    て物理メモリ空間中のフリーな物理メモリページをリス
    ト化し、各キャッシュブロックに対応する前記ヘッダに
    繋げてフリーメモリ・リストを作成するフリーメモリ・
    リスト初期化手段と、 仮想メモリ空間と前記各キャッシュブロックとの対応付
    けを管理するメモリ領域定義テーブルと、 システム初期化時に、前記メモリ領域定義テーブルの内
    容をユーザが指定する内容で設定するメモリ領域定義テ
    ーブル初期化手段と、 システム動作時に、要求された仮想メモリ空間に対応す
    るキャッシュブロックを前記メモリ領域定義テーブルよ
    り検索し、検索されたキャッシュブロックに対応する前
    記フリーメモリ・リストから対応する物理メモリページ
    を検索し、要求された処理を行う要求処理手段とを具備
    することを特徴とするキャッシュメモリ管理方式。
  2. 【請求項2】 システム動作中の任意の時点で発生する
    メモリ領域定義テーブルの更新要求によって起動され、
    指定された内容で該メモリ領域定義テーブルの内容を更
    新するメモリ領域定義テーブル更新手段をさらに具備す
    ることを特徴とする請求項1に記載のキャッシュメモリ
    管理方式。
  3. 【請求項3】 要求処理手段が、システム動作時に発生
    するメモリ割り付け要求により起動され、要求された仮
    想メモリ空間に対応するキャッシュブロックをメモリ領
    域定義テーブルより検索し、検索されたキャッシュブロ
    ックに対応するフリーメモリ・リストからフリーな物理
    メモリページを取得して割り付け対象の仮想メモリ空間
    に対応付けることを特徴とする請求項1または2に記載
    のキャッシュメモリ管理方式。
  4. 【請求項4】 要求処理手段が、システム動作時に発生
    するメモリ解放要求により起動され、解放対象の仮想メ
    モリ空間に対応するキャッシュブロックをメモリ領域定
    義テーブルより検索し、検索されたキャッシュブロック
    に対応する物理メモリページをフリーメモリ・リストに
    戻すことを特徴とする請求項1または2に記載のキャッ
    シュメモリ管理方式。
JP7094581A 1995-03-27 1995-03-27 キャッシュメモリ管理方式 Expired - Fee Related JP3013742B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7094581A JP3013742B2 (ja) 1995-03-27 1995-03-27 キャッシュメモリ管理方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7094581A JP3013742B2 (ja) 1995-03-27 1995-03-27 キャッシュメモリ管理方式

Publications (2)

Publication Number Publication Date
JPH08263377A true JPH08263377A (ja) 1996-10-11
JP3013742B2 JP3013742B2 (ja) 2000-02-28

Family

ID=14114251

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7094581A Expired - Fee Related JP3013742B2 (ja) 1995-03-27 1995-03-27 キャッシュメモリ管理方式

Country Status (1)

Country Link
JP (1) JP3013742B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998019242A1 (fr) * 1996-10-30 1998-05-07 Hitachi, Ltd. Processeur de donnees et systeme de traitement de donnees
US6351788B1 (en) * 1996-10-30 2002-02-26 Hitachi, Ltd. Data processor and data processing system
US6370622B1 (en) 1998-11-20 2002-04-09 Massachusetts Institute Of Technology Method and apparatus for curious and column caching

Also Published As

Publication number Publication date
JP3013742B2 (ja) 2000-02-28

Similar Documents

Publication Publication Date Title
JP4021534B2 (ja) プロセッサ特定アプリケーションの実行方法
US7082509B2 (en) Method and system for allocating memory during system boot to reduce operating system memory resource consumption at run-time
JP4160255B2 (ja) 仮想記憶システムにおける物理メモリの割り振りをアプリケーションプログラムによって制御するアプリケーション・プログラミング・インターフェイス
US6067608A (en) High performance mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JP4639233B2 (ja) プロセッサ・リソースの仮想化のためのシステムおよび方法
US7093258B1 (en) Method and system for managing distribution of computer-executable program threads between central processing units in a multi-central processing unit computer system
US8490085B2 (en) Methods and systems for CPU virtualization by maintaining a plurality of virtual privilege leves in a non-privileged mode of a processor
JP4718683B2 (ja) コンピュータ内のアプリケーションプログラム間でフォーカスが変更されたときに物理メモリの状態を復元する方法およびシステム
US6134602A (en) Application programming interface enabling application programs to group code and data to control allocation of physical memory in a virtual memory system
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JP2001109661A (ja) キャッシュメモリの割当方法及びオペレーティングシステム及びそのオペレーティングシステムを有するコンピュータシステム
WO1997039407A9 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
EP1010080A1 (en) Mechanism for managing allocation of virtual memory buffers to virtual processes on a least recently used basis
JPH0560620B2 (ja)
US8738890B2 (en) Coupled symbiotic operating system
JP2003167737A (ja) スタック使用方法
JP3993648B2 (ja) 圧縮システムをオペレーティング・システムと統合する方法およびコンピュータ・システム
US7689971B2 (en) Method and apparatus for referencing thread local variables with stack address mapping
JP2006155272A (ja) 仮想計算機の制御方法及びプログラム
US7395400B2 (en) Adaptive address space operating system
JP3639366B2 (ja) アドレス空間共有システム
JPH08263377A (ja) キャッシュメモリ管理方式
US20040073907A1 (en) Method and system of determining attributes of a functional unit in a multiple processor computer system
JP3030030B2 (ja) 領域管理処理方式
JPH06348666A (ja) 計算機システムにおけるプログラム実行負荷分散方法

Legal Events

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