JP3227707B2 - 走行モード別キャッシュメモリ制御方式 - Google Patents

走行モード別キャッシュメモリ制御方式

Info

Publication number
JP3227707B2
JP3227707B2 JP41616190A JP41616190A JP3227707B2 JP 3227707 B2 JP3227707 B2 JP 3227707B2 JP 41616190 A JP41616190 A JP 41616190A JP 41616190 A JP41616190 A JP 41616190A JP 3227707 B2 JP3227707 B2 JP 3227707B2
Authority
JP
Japan
Prior art keywords
cache memory
kernel
memory
mode
user
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
JP41616190A
Other languages
English (en)
Other versions
JPH04242848A (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 JP41616190A priority Critical patent/JP3227707B2/ja
Publication of JPH04242848A publication Critical patent/JPH04242848A/ja
Application granted granted Critical
Publication of JP3227707B2 publication Critical patent/JP3227707B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、主記憶の記憶内容の一
部の写しを保持するキャッシュメモリを有する中央処理
装置に関し、特にそのキャッシュメモリの制御方式に関
する。
【0002】
【従来の技術】従来より、主記憶の記憶内容の一部の写
しを保持するキャッシュメモリを高速にアクセス可能な
メモリやレジスタ等で構成して中央処理装置に設け、主
記憶をアクセスするごとに所定のアルゴリズムに基づい
てキャッシュメモリの内容を更新して頻繁にアクセスさ
れる命令やデータはキャッシュメモリに高い確率で保存
されるようにし、主記憶からの命令やデータの取り出し
時に該当する内容がキャッシュメモリに存在すれば実際
に主記憶をアクセスすることなくキャッシュメモリから
目的とする内容が高速に取り出せるようにしている。
【0003】
【発明が解決しようとする課題】上述したようなキャッ
シュメモリを使用することにより、それを使用しない中
央処理装置に比べて遥かに高速な動作が可能となる。し
かしながら、キャッシュメモリの内容は、同一のメモリ
空間の集合に対して頻繁にアクセスされることにより更
新されて初めてヒット率が高まるので、中央処理装置が
アクセスするメモリ空間の集合が変化した直後において
は、ヒット率が低下する。特に、プログラム走行モード
としてカーネルモードとユーザモードとを持つプロセッ
サにおいては、OS(オペレーティングシステム)のカ
ーネルとユーザプログラムとで格納されている領域が通
常異なるため、プログラム走行モードがカーネルモード
とユーザモードとの間で切り替わった時には中央処理装
置がアクセスするメモリ空間の集合が急激に変化し、ヒ
ット率が大幅に低下する。従って、キャッシュメモリが
暫くの間ほとんど役に立たない場合が多い。このような
キャッシュメモリのヒット率の低下は、システム全体の
処理効率の低下を招来し、プログラム走行モードの切り
替えが頻繁に行われる場合には特に問題となる。例えば
UNIXで実行されるプログラムでは、統計的にいって
ユーザプログラム実行時間の30〜40%がカーネルモ
ードで実行されているといわれており、その場合ユーザ
モード,カーネルモード間のモード切り替えが頻繁に行
われるので、この切り替え時に与える性能低下の影響は
大きい。このような問題に対し従来は特別な対策は施し
ておらず、キャッシュメモリのヒット率の高まりを、モ
ード切り替え後のメモリアクセスによるキャッシュメモ
リの更新に頼っているに過ぎなかった。
【0004】本発明はこのような事情に鑑みて為された
もので、その目的は、ユーザモードとカーネルモードと
の切り替え時におけるキャッシュメモリのヒット率の低
下を防止することにある。
【0005】
【課題を解決するための手段】本発明は上記の目的を達
成するために、主記憶の記憶内容の一部の写しを保持す
るキャッシュメモリを備えた中央処理装置における走行
モード別キャッシュメモリ制御方式であって、前記キャ
ッシュメモリとしてカーネル用キャッシュメモリとユー
ザ用キャッシュメモリとを備えると共にカーネルコード
を記憶するカーネル用ROMを備え、且つ、 仮想アドレ
ス変換を行うためのページテーブルエントリに、対応す
るページの登録先が前記キャッシュメモリおよび前記カ
ーネル用ROMの何れであるかを指定する指定ビットを
備え、且つ、メモリアクセス時、該当するページテーブ
ルエントリの前記指定ビットが前記キャッシュメモリを
指定している場合、プログラム走行モードがカーネルモ
ードであれば前記カーネル用キャッシュメモリをアクセ
スし、ユーザモードであれば前記ユーザ用キャッシュメ
モリをアクセスし、前記指定ビットが前記カーネル用R
OMを指定している場合、前記カーネル用ROMをアク
セスするプロセッサを備えている。
【0006】
【作用】メモリアクセス時、プロセッサのプログラム走
行モードがカーネルモードのときはカーネル用キャッシ
ュメモリまたはカーネル用ROMが使用される。従っ
て、カーネルモード時にアクセスされる主記憶上のデー
タはカーネル用キャッシュメモリに格納される。また、
プログラム走行モードがユーザモードに切り替わると、
カーネル用キャッシュメモリに代えてユーザ用キャッシ
ュメモリが使用される。従って、カーネル用キャッシュ
メモリは切り替え時点の状態を保ち、ユーザ走行モード
時にアクセスされる主記憶上のユーザプログラムのコー
ドやデータはユーザ用キャッシュメモリに格納される。
再び、プログラム走行モードがカーネルモードに切り替
わると、ユーザ用キャッシュメモリに代えて再びカーネ
ル用キャッシュメモリが使用され、ユーザ用キャッシュ
メモリは切り替え時点の状態を保つ。OSのカーネルコ
ードの一部あるいは全ては、カーネル用ROMに記憶さ
れているので、それらカーネルコードはキャッシングの
対象外とされる。カーネル用キャッシュメモリ,ユーザ
用キャッシュメモリ,カーネル用ROMの選択は、具体
的には、メモリアクセス時に参照されるページテーブル
エントリの指定ビットの内容とプログラム走行モードの
種類とに基づいて行われる。
【0007】
【実施例】次に、本発明の実施例について図面を参照し
て詳細に説明する。図1は本発明の一実施例の要部ブロ
ック図である。本実施例においては、主記憶(図示せ
ず)の記憶内容の一部の写しを保持するキャッシュメモ
リとしてカーネル用キャッシュメモリ3とユーザ用キャ
ッシュメモリ4とを備えている。
【0008】カーネル用キャッシュメモリ3は、カーネ
ルモード時にアクセスされる主記憶上のデータを登録す
るためのキャッシュメモリであり、プロセッサ1から選
択信号線11−3によって選択されることにより、プロ
セッサ1からアドレス信号線7上に出力されたアドレス
に対応するデータが自メモリ内に存在するか否かを調
べ、存在すればヒット結果信号線8を介してキャッシュ
メモリ制御部2にヒット信号を送出すると共にそのデー
タを双方向バス6に出力し、存在しなければヒット結果
信号線8を介してキャッシュメモリ制御部2にミスヒッ
ト信号を送出する。
【0009】他方、ユーザ用キャッシュメモリ4は、ユ
ーザモード時にアクセスされる主記憶上のデータを登録
するためのキャッシュメモリであり、プロセッサ1から
選択信号線11−2によって選択されることにより、プ
ロセッサ1からアドレス信号線7上に出力されたアドレ
スに対応するデータが自メモリ内に存在するか否かを調
べ、存在すればヒット結果信号線8を介してキャッシュ
メモリ制御部2にヒット信号を送出すると共にそのデー
タを双方向バス6に出力し、存在しなければヒット結果
信号線8を介してキャッシュメモリ制御部2にミスヒッ
ト信号を送出する。
【0010】なお、カーネル用キャッシュメモリ3およ
びユーザ用キャッシュメモリ4は、従来のキャッシュメ
モリと同様にデータアレイ,アドレスアレイ,ヒット・
ミスヒット検出回路,キャッシュメモリのリードライト
制御部などを含んでいる。
【0011】また、本実施例においては、プロセッサ1
から選択信号線11−1によって選択されることにより
プロセッサ1からアドレス信号線7上に出力されたアド
レスに対応するデータを自メモリから読み出して双方向
バス6に出力するカーネル用ROM5が設けられてい
る。このカーネル用ROM5は、OSのカーネルコード
の全て或いは頻繁に使用される部分を記憶するROMと
して使用される。即ち、本実施例ではOSのカーネルコ
ードの全て或いは一部をキャッシングの対象外とし、専
用のROMに記憶させている。なお、一部のカーネルコ
ードだけをカーネル用ROM5に記憶させた場合には、
残りのカーネルコードは主記憶上に置かれ、カーネル用
キャッシュメモリ3によるキャッシング対象となる。
【0012】キャッシュメモリ制御部2は、ヒット結果
信号線8,9によってカーネル用キャッシュメモリ3,
ユーザ用キャッシュメモリ4と接続され、キャッシュメ
モリリードタイミング信号線10によってプロセッサ1
と接続されている。このキャッシュメモリ制御部2は、
キャッシュメモリリード時に、ヒット結果信号線8,9
を通じてカーネル用キャッシュメモリ3またはユーザ用
キャッシュメモリ4からミスヒット信号が送られてきた
とき、ミスヒットにかかるリードデータが確定するタイ
ミングをプロセッサ1に対して信号線10により伝え、
そのタイミングまでプロセッサ1を待たせる働きをして
いる。
【0013】プロセッサ1は、ユーザモード,カーネル
モードという2種のプログラム走行モードを持つ。プロ
グラム走行モードはプログラム1内部のレジスタで管理
されていて、例外や割り込みが発生したり、走行モード
切り替え用の特別なソフトウェア命令が実行されたりす
ると、プログラム走行モードがカーネルモードとユーザ
モードとの間で切り替わる。
【0014】また、プロセッサ1は仮想アドレスをサポ
ートしている。図2は、プロセッサ1がアドレス変換時
に参照する仮想アドレス変換用のページテーブルの1エ
ントリのフォーマット例を示している。同図に示すよう
に仮想アドレス変換用のページテーブルのエントリに
は、メモリ指定ビットb1,b2という新たな2ビット
が追加されている。ここで、メモリ指定ビットb1,b
2は必ず一方だけが“1”にされており、当該エントリ
に対応するページをキャッシュメモリ(カーネル用キャ
ッシュメモリ3またはユーザ用キャッシュメモリ4)に
登録する場合にはメモリ指定ビットb1を“1”とす
る。また、当該エントリに対応するページがカーネル用
ROM5に登録されている場合にはメモリ指定ビットb
2が“1”となる。
【0015】仮想アドレスをサポートしているプロセッ
サ1は、メモリをアクセスするとき、上記の仮想アドレ
ス変換用のページテーブルを参照して仮想アドレスを論
理アドレスに変換し更に物理アドレスに変換して、この
物理アドレスでカーネル用キャッシュメモリ3,ユーザ
用キャッシュメモリ4,カーネル用ROM5をアクセス
する。そして、このような処理の過程においてプロセッ
サ1は、ページテーブルのエントリにおける図2に示し
たメモリ指定ビットb1,b2を参照し、且つ、内部レ
ジスタで管理されているプログラム走行モードを参照
し、カーネル用キャッシュメモリ3,ユーザ用キャッシ
ュメモリ4,カーネル用ROM5の何れか1つを選択信
号線11−1〜11−3によって選択し、アドレス信号
線7上にアドレスを送出すると共に図示しないリード/
ライト制御信号を送出してメモリのアクセスを行う。
【0016】即ち、該当するページテーブルのエントリ
におけるメモリ指定ビットb1が“1”で且つプログラ
ム走行モードがカーネルモードであると、プロセッサ1
は選択信号線11−3によってカーネル用キャッシュメ
モリ3のみを選択する。これによって、カーネル用キャ
ッシュメモリ3は自身が選択されたと判断して、アドレ
ス信号線7上のアドレスに対応するデータが自メモリ内
に存在するか否かを調べ、存在すればヒット信号をヒッ
ト結果信号線8を通じてキャッシュメモリ制御部2に通
知すると共にそのデータを双方向バス6に出力し、プロ
セッサ1はこのバス6上のデータを内部に取り込む。ま
た、該当するデータが存在しなければ、カーネル用キャ
ッシュメモリ3はミスヒット信号をヒット結果信号線8
を通じてキャッシュメモリ制御部2に通知し、キャッシ
ュメモリ制御部2は必要なデータが主記憶からカーネル
用キャッシュメモリ3に到達するまでキャッシュメモリ
リードタイミング信号線10によってプロセッサ1を待
たせる。
【0017】また、該当するページテーブルのエントリ
におけるメモリ指定ビットb1が“1”で且つプログラ
ム走行モードがユーザモードであると、プロセッサ1は
選択信号線11−2によってユーザ用キャッシュメモリ
4のみを選択する。これによって、ユーザ用キャッシュ
メモリ4は自身が選択されたと判断して、アドレス信号
線7上のアドレスに対応するデータが自メモリ内に存在
するか否かを調べ、存在すればヒット信号をヒット結果
信号線9を通じてキャッシュメモリ制御部2に通知する
と共にそのデータを双方向バス6に出力し、プロセッサ
1はこのバス6上のデータを内部に取り込む。また、該
当するデータが存在しなければ、ユーザ用キャッシュメ
モリ4はミスヒット信号をヒット結果信号線9を通じて
キャッシュメモリ制御部2に通知し、キャッシュメモリ
制御部2は必要なデータが主記憶からユーザ用キャッシ
ュメモリ4に到達するまでキャッシュメモリリードタイ
ミング信号線10によってプロセッサ1を待たせる。
【0018】更に、該当するページテーブルのエントリ
におけるメモリ指定ビットb2が“1”であると、プロ
セッサ1は選択信号線11−1によってカーネル用RO
M5のみを選択する。これによって、カーネル用ROM
5は自身が選択されたと判断して、アドレス信号線7上
のアドレスに対応するデータを自メモリから読み出して
双方向バス6に出力し、プロセッサ1はこのバス6上の
データを内部に取り込む。
【0019】
【発明の効果】以上説明したように、本発明によれば、
カーネルモード時にアクセスされる主記憶上のデータは
カーネル用キャッシュメモリに登録され、ユーザモード
時にアクセスされる主記憶上のデータはユーザ用キャッ
シュメモリに登録されるので、カーネルモード時および
ユーザモード時とも同一のキャッシュメモリを使用して
いた従来方式のようにプログラム走行モード切り替え時
にキャッシュメモリのヒット率が大幅に低下することが
なくなる。
【0020】また、OSのカーネルコードの一部または
全てをキャッシングの対象から外してカーネル用ROM
に記憶したことにより、OSのカーネルコードに対する
アクセス時にキャッシュミスヒットが生じることがなく
なって高速動作が可能になると共に、限られた容量のカ
ーネル用キャッシュメモリの有効利用が可能になってそ
のヒット率が向上する。
【0021】更に、仮想アドレス変換を行うためのペー
ジテーブルエントリに、対応するページの登録先が前記
キャッシュメモリおよび前記カーネル用ROMの何れで
あるかを指定する指定ビットを含ませ、メモリアクセス
時に、該当するページテーブルエントリの指定ビットと
プログラム走行モードとに基づいてカーネル用キャッシ
ュメモリ,ユーザ用キャッシュメモリ,カーネル用RO
Mの中から使用するメモリを選択することにより、仮想
アドレスのページ単位に、登録されるキャッシュメモリ
およびROMの選択が可能になる。
【図面の簡単な説明】
【図1】本発明の一実施例の要部ブロック図である。
【図2】仮想アドレス変換用のページテーブルの1エン
トリのフォーマット例を示す図である。
【符号の説明】
1…プロセッサ 2…キャッシュメモリ制御部 3…カーネル用キャッシュメモリ 4…ユーザ用キャッシュメモリ 5…カーネル用ROM 6…双方向バス 7…アドレス信号線 8,9…ヒット結果信号線 10…キャッシュメモリリードタイミング信号線 11−1〜11−3…選択信号線

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 主記憶の記憶内容の一部の写しを保持す
    るキャッシュメモリを備えた中央処理装置における走行
    モード別キャッシュメモリ制御方式であって、前記キャ
    ッシュメモリとしてカーネル用キャッシュメモリとユー
    ザ用キャッシュメモリとを備えると共にカーネルコード
    を記憶するカーネル用ROMを備え、且つ、 仮想アドレス変換を行うためのページテーブルエントリ
    に、対応するページの登録先が前記キャッシュメモリお
    よび前記カーネル用ROMの何れであるかを指定する指
    定ビットを備え、且つ、 メモリアクセス時、該当するページテーブルエントリの
    前記指定ビットが前記キャッシュメモリを指定している
    場合、プログラム走行モードがカーネルモードであれば
    前記カーネル用キャッシュメモリをアクセスし、ユーザ
    モードであれば前記ユーザ用キャッシュメモリをアクセ
    スし、前記指定ビットが前記カーネル用ROMを指定し
    ている場合、前記カーネル用ROMをアクセスするプロ
    セッサを備えることを特徴とする走行モード別キャッシ
    ュメモリ制御方式。
  2. 【請求項2】 前記カーネル用キャッシュメモリおよび
    前記ユーザ用キャッシュメモリからのヒット結果信号を
    入力し、キャッシュメモリリードのミスヒット時、リー
    ドデータが確定するタイミングまで前記プロセッサを待
    たせるキャッシュメモリ制御手段を含む請求項記載の
    走行モード別キャッシュメモリ制御方式。
JP41616190A 1990-12-29 1990-12-29 走行モード別キャッシュメモリ制御方式 Expired - Fee Related JP3227707B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP41616190A JP3227707B2 (ja) 1990-12-29 1990-12-29 走行モード別キャッシュメモリ制御方式

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP41616190A JP3227707B2 (ja) 1990-12-29 1990-12-29 走行モード別キャッシュメモリ制御方式

Publications (2)

Publication Number Publication Date
JPH04242848A JPH04242848A (ja) 1992-08-31
JP3227707B2 true JP3227707B2 (ja) 2001-11-12

Family

ID=18524402

Family Applications (1)

Application Number Title Priority Date Filing Date
JP41616190A Expired - Fee Related JP3227707B2 (ja) 1990-12-29 1990-12-29 走行モード別キャッシュメモリ制御方式

Country Status (1)

Country Link
JP (1) JP3227707B2 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104599B2 (en) 2007-12-06 2015-08-11 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for destaging cached data
US8296337B2 (en) 2006-12-06 2012-10-23 Fusion-Io, Inc. Apparatus, system, and method for managing data from a requesting device with an empty data token directive
JP2009069969A (ja) * 2007-09-11 2009-04-02 Canon Inc 情報処理方法および情報処理装置、プログラム
US9519540B2 (en) 2007-12-06 2016-12-13 Sandisk Technologies Llc Apparatus, system, and method for destaging cached data
US9092337B2 (en) 2011-01-31 2015-07-28 Intelligent Intellectual Property Holdings 2 Llc Apparatus, system, and method for managing eviction of data
US9141527B2 (en) 2011-02-25 2015-09-22 Intelligent Intellectual Property Holdings 2 Llc Managing cache pools
US10102117B2 (en) 2012-01-12 2018-10-16 Sandisk Technologies Llc Systems and methods for cache and storage device coordination
US9767032B2 (en) 2012-01-12 2017-09-19 Sandisk Technologies Llc Systems and methods for cache endurance
US9251086B2 (en) 2012-01-24 2016-02-02 SanDisk Technologies, Inc. Apparatus, system, and method for managing a cache
US10019353B2 (en) 2012-03-02 2018-07-10 Longitude Enterprise Flash S.A.R.L. Systems and methods for referencing data on a storage medium
US9612966B2 (en) 2012-07-03 2017-04-04 Sandisk Technologies Llc Systems, methods and apparatus for a virtual machine cache
US10318495B2 (en) 2012-09-24 2019-06-11 Sandisk Technologies Llc Snapshots for a non-volatile device
US10509776B2 (en) 2012-09-24 2019-12-17 Sandisk Technologies Llc Time sequence data management
US9842053B2 (en) 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US10558561B2 (en) 2013-04-16 2020-02-11 Sandisk Technologies Llc Systems and methods for storage metadata management
US10102144B2 (en) 2013-04-16 2018-10-16 Sandisk Technologies Llc Systems, methods and interfaces for data virtualization
US9842128B2 (en) 2013-08-01 2017-12-12 Sandisk Technologies Llc Systems and methods for atomic storage operations
US10019320B2 (en) 2013-10-18 2018-07-10 Sandisk Technologies Llc Systems and methods for distributed atomic storage operations
US10073630B2 (en) 2013-11-08 2018-09-11 Sandisk Technologies Llc Systems and methods for log coordination
US9946607B2 (en) 2015-03-04 2018-04-17 Sandisk Technologies Llc Systems and methods for storage error management

Also Published As

Publication number Publication date
JPH04242848A (ja) 1992-08-31

Similar Documents

Publication Publication Date Title
JP3227707B2 (ja) 走行モード別キャッシュメモリ制御方式
JP4295111B2 (ja) メモリ管理システム及び線形アドレスに基づいたメモリアクセスセキュリティ付与方法
JPH0512116A (ja) キヤツシユメモリ制御装置
US6851036B1 (en) Method and apparatus for controlling external devices through address translation buffer
JP3088303B2 (ja) キャッシュ・メモリ・バンク制御装置
JPH0519176B2 (ja)
US6480940B1 (en) Method of controlling cache memory in multiprocessor system and the multiprocessor system based on detection of predetermined software module
JPH0540694A (ja) キヤツシユメモリ装置
JP2613258B2 (ja) 情報処理方法及び装置
JP2823038B2 (ja) 論理ダイレクトメモリアクセス方式
JPH08305634A (ja) 情報処理方法及び装置
JPH0715667B2 (ja) データ処理装置
KR100317976B1 (ko) 캐시 메모리가 포함된 시스템에서 인터럽트 서비스 루틴을위한 장치
JP2923273B2 (ja) データ処理システム
KR930004433B1 (ko) 직접제어가 가능한 캐쉬메모리
JPH04175946A (ja) マルチプロセッサ・データ処理システムおよびそれに用いられるキャッシュ装置
JP2818562B2 (ja) アドレス変換回路
JPH09251424A (ja) キャッシュ装置
JPH04205535A (ja) コピーオンライト方式
JPH077355B2 (ja) 情報処理装置
JPH04205154A (ja) マイクロプロセッサシステム
JP2791319B2 (ja) データ処理装置
JPH07210433A (ja) ファイルサーバ
JPH0553914A (ja) デイスクキヤツシユ方式
JPH0711790B2 (ja) データ処理装置

Legal Events

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