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

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

Info

Publication number
JP3013742B2
JP3013742B2 JP7094581A JP9458195A JP3013742B2 JP 3013742 B2 JP3013742 B2 JP 3013742B2 JP 7094581 A JP7094581 A JP 7094581A JP 9458195 A JP9458195 A JP 9458195A JP 3013742 B2 JP3013742 B2 JP 3013742B2
Authority
JP
Japan
Prior art keywords
memory
cache
definition table
area definition
free
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
JP7094581A
Other languages
English (en)
Other versions
JPH08263377A (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 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)

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 (3)

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

Families Citing this family (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

Also Published As

Publication number Publication date
JPH08263377A (ja) 1996-10-11

Similar Documents

Publication Publication Date Title
US6591355B2 (en) Distributed shared memory system with variable granularity
US7334105B2 (en) System and method for managing the memory in a computer system
EP0951675B1 (en) Object and method for providing efficient multi-user access to shared operating system kernal code using instancing
JP4160255B2 (ja) 仮想記憶システムにおける物理メモリの割り振りをアプリケーションプログラムによって制御するアプリケーション・プログラミング・インターフェイス
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
JPH08129457A (ja) 外部記憶ストラクチャを拡大、縮小、及び再配分するための方法及び装置
JP2003167737A (ja) スタック使用方法
JPH1031612A (ja) 高度ファイル・サーバ
JP2003228461A (ja) ディスクアレイ装置のディスクキャッシュ管理方法
JP3013742B2 (ja) キャッシュメモリ管理方式
CN109783145B (zh) 一种创建基于多映像的多功能嵌入式系统的方法
JP3030030B2 (ja) 領域管理処理方式
JP2003248620A (ja) 動的メモリ管理方法及び動的メモリ管理情報処理装置
JP2001184242A (ja) キャッシュ制御方法および計算機システム
JP3050194B2 (ja) ホスト間共用メモリファイル動的追加システム、ホスト間共用メモリファイル動的追加方法、およびホスト間共用メモリファイル動的追加プログラムを記録した記録媒体
JP2618096B2 (ja) キャッシュ管理方法
JP2634485B2 (ja) 共用メモリを仮想領域としてアクセスし、自動拡張する方式
CN117632796A (zh) 内存数据库的访问方法及装置
JP3585956B2 (ja) 情報処理装置及びその方法
JP2982134B2 (ja) 主記憶装置の割り当てサイズ決定方法
JP2000347939A (ja) メモリ管理システムおよびメモリ管理方法
JPH0652512B2 (ja) 主記憶ペ−ジリプレ−ス方式
JPS63172346A (ja) スタツク割当方法
JPS62160545A (ja) 直接アクセス記憶装置の未使用領域管理方式
JPH07182298A (ja) 情報処理方法及び装置

Legal Events

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