JPH07105091A - キャッシュの制御装置および制御方法 - Google Patents

キャッシュの制御装置および制御方法

Info

Publication number
JPH07105091A
JPH07105091A JP5269978A JP26997893A JPH07105091A JP H07105091 A JPH07105091 A JP H07105091A JP 5269978 A JP5269978 A JP 5269978A JP 26997893 A JP26997893 A JP 26997893A JP H07105091 A JPH07105091 A JP H07105091A
Authority
JP
Japan
Prior art keywords
cache
processor
main memory
contents
program
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
Application number
JP5269978A
Other languages
English (en)
Inventor
Toshiharu Tanaka
俊治 田中
Toshiaki Arai
利明 新井
Toru Horie
亨 堀江
Yoshihide Jin
好秀 神
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP5269978A priority Critical patent/JPH07105091A/ja
Publication of JPH07105091A publication Critical patent/JPH07105091A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】マルチプロセッサ構成の計算機において、仮想
計算機上のオペレーティングシステム(OS)が発行し
たキャッシュの無効化命令を、効率良く実行することが
可能な仮想計算機システムを提供することを目的とす
る。また、プロセッサにおける走行OSの切り替え時
に、キャッシュを効率良く制御可能な仮想計算機システ
ムを提供することを目的とする。 【構成】仮想計算機上のOSがプロセッサ100−1に
おいてキャッシュの無効化命令を発行すると、制御回路
250−1はキャッシュメモリ270−1を無効状態に
した後、キャッシュ300−2にキャッシュ無効化を要
求する。キャッシュ300−2では、無効化命令を発行
したOSとプロセッサ100−2で走行中のOSが一致
するときに限って、制御回路250−2にキャッシュ無
効化信号を送り、キャッシュメモリ270−2を無効化
する。以上のようにして、OSが効率良くキャッシュを
利用することが可能な仮想計算機システムが提供され
る。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、キャッシュの制御装置
および制御方法に関し、特に、仮想計算機が効率良くキ
ャッシュを利用することを可能とするキャッシュの制御
装置および制御方法に関する。
【0002】
【従来の技術】仮想計算機システム(VMS:Virtual
Machine System)とは、特開昭57−212680号公
報に記載のように、1台の計算機上に論理的な計算機で
ある仮想計算機(VM:Virtual Machine )を複数台生
成し、これらの各仮想計算機において、各々1つのオペ
レーティング・システム(OS:Operating System)の
走行を可能とするシステムである。
【0003】仮想計算機システムでは、1台の計算機上
で、複数のOSの並列運転が可能である。このため、仮
想計算機システムは、使用目的の異なる複数のOSを1
台の計算機で運用したり、旧OSから新OSへのOS移
行時に新旧2つのOSを1台の計算機で運用したり、O
Sのテストを並列に1台の計算機で実行するためのツー
ルとして主に利用されている。
【0004】この仮想計算機システムにおいて、仮想計
算機モニタ(VMM:Virtual Machine Monitor )は、
各仮想計算機に計算機資源を割り当てたり、仮想計算機
のスケジューリングや起動を行なったり、OSが発行し
た命令のうち実計算機では直接実行できない命令のシミ
ュレーション処理等を行なう。この仮想計算機システム
では、各OSはあたかも独立した計算機を専有している
かのような環境を与えられる。
【0005】仮想計算機システムにおいて、実計算機を
構成する中央プロセッサ(以後、プロセッサ、と呼ぶ)
の数は、1つでも良いし、また、複数であっても良い。
プロセッサを複数有する実計算機を、マルチプロセッサ
構成の実計算機という。また、論理的なプロセッサ(以
後、仮想プロセッサ、と呼ぶ)を複数有する仮想計算機
を、仮想マルチプロセッサ構成の仮想計算機という。マ
ルチプロセッサ構成の実計算機上の仮想マルチプロセッ
サ構成の仮想計算機では、同時に複数のプロセッサ上で
同一のOSが走行可能である。
【0006】従来、仮想計算機システムは、汎用大型計
算機の分野において、広く使用されてきた。しかしなが
ら、マイクロプロセッサの性能向上により、ワークステ
ーションにおいても用途に応じた複数のOSを走行させ
る要求がおこり、ワークステーション上の仮想計算機シ
ステムが必要となりつつある。
【0007】このマイクロプロセッサの分野では、近
年、縮小命令セットコンピュータ(RISC:Reduced
Instruction Set Computer)のアーキテクチャの採用が
盛んである。例えば、ヒューレット・パッカード・ジャ
ーナル1986年8月号(HEWLETT-PACKARD JOURNAL, A
UGUST 1986)の16ページおよび17ページには、RI
SCプロセッサにおけるキャッシュのアーキテクチャが
紹介されている。キャッシュは、メインメモリの一部を
保持し、プロセッサが高速にアクセス可能なメモリバッ
ファである。
【0008】このRISCプロセッサでは、キャッシュ
およびメインメモリへの書き込みは次のように行なわれ
る。まず、プロセッサが書き込みを要求したメインメモ
リのブロックのコピーがキャッシュにある場合、このキ
ャッシュメモリが更新される。また、該当ブロックがキ
ャッシュになければ、メインメモリのブロックをキャッ
シュにコピーし、このコピーしたキャッシュのブロック
が更新される。
【0009】さらに、書き込み要求時にキャシュ内に空
きブロックがないときは、まず、予め定めたアルゴリズ
ムに従って選択されたキャッシュのブロックがメインメ
モリにコピーされ、そのキャッシュのブロックは空き状
態にされる。そして、この空き状態となったブロック
に、書き込みが要求されたメインメモリのブロックがコ
ピーされ、このキャッシュ内のブロックに対して書き込
みが行なわれる。
【0010】このように、RISCプロセッサでは、キ
ャッシュとメインメモリの更新は同期的には行なわれな
い。すなわち、キャッシュが更新されたとき同時にメイ
ンメモリも更新されるとは限らない。このため、キャッ
シュの内容とメインメモリの内容とは、必ずしも一致し
ない。
【0011】また、このRISCプロセッサには、キャ
ッシュを制御するための命令として、PURGE CA
CHE命令およびFLUSH CACHE命令がある。
マルチプロセッサ構成の計算機システムの1つのプロセ
ッサにおいて、PURGECACHE命令を発行する
と、全てのプロセッサにこの要求がブロードキャストさ
れて、全プロセッサのキャッシュの内容が無効化され
る。また、マルチプロセッサ構成の計算機システムの1
つのプロセッサにおいて、FLUSH CACHE命令
を発行すると、全てのプロセッサにこの要求がブロード
キャストされて、全プロセッサについて、キャッシュの
内容がメインメモリにコピーされた後、キャッシュの内
容が無効化される。
【0012】
【発明が解決しようとする課題】前述のRISCプロセ
ッサの計算機上に仮想計算機システムを構築しようとす
ると、キャッシュ制御に関して、以下の課題がある。
【0013】(1)第1の課題は、実計算機がマルチプ
ロセッサ構成(実プロセッサが複数、プロセッサごとに
キャッシュを備えメインメモリは共有)のとき、仮想計
算機上のOSが発行したキャッシュの無効化命令の実行
に関する。
【0014】実計算機がマルチプロセッサ構成であり、
第1および第2のプロセッサにおいてそれぞれ第1およ
び第2のOSが走行中であるとする。このとき、第1の
OSが発行したキャッシュの無効化命令をそのまま実行
してしまうと、第2のプロセッサのキャッシュも不当に
無効化されてしまう。この結果、第2のOSのメモリの
内容に不一致が発生し、第2のOSが正しい処理を行な
えなくなる。すなわち、マルチプロセッサ構成の計算機
において、仮想計算機上のOSが発行したキャッシュの
無効化命令をどのように実行すれば良いか、という課題
がある。
【0015】(2)第2の課題は、プロセッサにおける
走行OSの切り替えに関する。これは、実計算機がプロ
セッサ1個の場合および複数の場合の両方において存在
する課題である。
【0016】第1のOSが走行した後、同一のプロセッ
サにおいて第2のOSが走行し、この第2のOSがキャ
ッシュの内容の無効化命令を発行したとする。このと
き、この無効化命令をそのまま実行してしまうと、前
回、第1のOSが走行中に形成したキャッシュの内容が
不当に無効化され、失われてしまう。この結果、次に第
1のOSを走行させたとき、メモリの内容に不一致が発
生し、第1のOSが正しい処理を行なえなくなる。すな
わち、1つのプロセッサを有する計算機上で複数の仮想
計算機が走行する場合に、キャッシュをどのように制御
すれば良いか、という課題がある。
【0017】本発明の目的は、マルチプロセッサ構成の
計算機において、仮想計算機上のOSが発行したキャッ
シュの無効化命令を、効率良く実行することが可能な仮
想計算機システムを提供することにある。
【0018】本発明の他の目的は、プロセッサにおける
走行OSの切り替え時に、キャッシュを効率良く制御可
能な仮想計算機システムを提供することにある。
【0019】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数のプロセッサと、前記複数のプロセ
ッサによって共有されるメインメモリと、前記プロセッ
サ毎に設けられたキャッシュとを有する1台の計算機上
で、複数のオペレーティング・システムが走行する仮想
計算機システムにおけるキャッシュの制御装置およびそ
の方法であって、前記複数のプロセッサ中の第1のプロ
セッサにおいて走行中のオペレーティング・システム
が、キャッシュの内容を無効化する命令を発行したこと
に応じて、前記第1のプロセッサのキャッシュの内容を
無効化し、前記第1のプロセッサを除く各プロセッサに
おいて、前記走行中のオペレーティング・システムが走
行中か否かを判定し、前記判定が肯定的であるプロセッ
サのキャッシュの内容を無効化するようにしたことを特
徴とする。
【0020】また、プロセッサとメインメモリとキャッ
シュとを有する1台の計算機上で複数のオペレーティン
グ・システムが走行する仮想計算機システムにおけるキ
ャッシュの制御装置およびその方法であって、前記プロ
セッサにおいて、次に走行させようとする第1のオペレ
ーティング・システムが、前記プロセッサで最後に走行
した第2のオペレーティング・システムと同一か否かを
判定し、前記判定結果が肯定的であることに応じて、前
記キャッシュの内容を前記メインメモリに複写すること
なく、前記第1のオペレーティング・システムを前記プ
ロセッサにおいて走行させ、あるいは前記判定結果が否
定的であることに応じて、前記キャッシュの内容を前記
メインメモリに複写して、前記第1のオペレーティング
・システムを前記プロセッサにおいて走行させるように
したことを特徴とする。
【0021】さらに、本発明は、プロセッサとメインメ
モリと複数エントリを備えたキャッシュとを有する1台
の計算機上で複数のオペレーティング・システムが走行
する仮想計算機システムにおけるキャッシュの制御装置
であって、前記キャッシュの各エントリがいずれのオペ
レーティング・システムで使用されているかを示す識別
子を、各エントリごとに記憶するための記憶手段と、前
記メインメモリの一部を前記キャッシュメモリのエント
リに登録するとき、前記プロセッサで走行中のオペレー
ティング・システムの識別子を前記記憶手段の対応する
エントリの領域に書き込む手段と、前記プロセッサにお
いて走行中のオペレーティング・システムが、キャッシ
ュの内容を無効化する命令を発行したことに応じて、前
記走行中のオペレーティング・システムの識別子が付与
されたキャッシュメモリのエントリを無効化する手段と
を備えたことを特徴とする。
【0022】また、本発明は、複数のプロセッサと、前
記複数のプロセッサによって共有されるメインメモリ
と、前記プロセッサ毎に設けられたキャッシュとを有す
る1台の計算機上で複数のプログラムが実行される計算
機システムにおけるキャッシュの制御装置およびその方
法であって、前記複数のプロセッサ中の第1のプロセッ
サにおいて実行中のプログラムが、キャッシュの内容を
無効化する命令を発行したことに応じて、前記第1のプ
ロセッサのキャッシュの内容を無効化し、前記第1のプ
ロセッサを除く各プロセッサにおいて、前記プログラム
が実行中か否かを判定し、前記判定が肯定的であるプロ
セッサのキャッシュの内容を無効化するようにしたこと
を特徴とする。
【0023】また、プロセッサとメインメモリとキャッ
シュとを有する1台の計算機上で複数のプログラムが実
行される計算機システムにおけるキャッシュの制御装置
およびその方法であって、前記プロセッサにおいて、次
に実行させようとする第1のプログラムが、前記プロセ
ッサで最後に実行した第2のプログラムと同一か否かを
判定し、前記判定結果が肯定的であることに応じて、前
記キャッシュの内容を前記メインメモリに複写すること
なく、前記第1のプログラムを前記プロセッサにおいて
実行させるようにし、あるいは前記判定結果が否定的で
あることに応じて、前記キャッシュの内容を前記メイン
メモリに複写して、前記第1のプログラムを前記プロセ
ッサにおいて実行させるようにしたことを特徴とする。
【0024】さらに、本発明は、プロセッサとメインメ
モリと複数エントリを備えたキャッシュとを有する1台
の計算機上で複数のプログラムが実行される計算機シス
テムにおけるキャッシュの制御装置であって、前記キャ
ッシュの各エントリがいずれのプログラムで使用されて
いるかを示す識別子を、各エントリごとに記憶するため
の記憶手段と、前記メインメモリの一部を前記キャッシ
ュメモリのエントリに登録するとき、前記プロセッサで
実行中のプログラムの識別子を前記記憶手段の対応する
エントリの領域に書き込む手段と、前記プロセッサにお
いて実行中のプログラムが、キャッシュの内容を無効化
する命令を発行したことに応じて、前記実行中のプログ
ラムの識別子が付与されたキャッシュメモリのエントリ
を無効化する手段とを備えたことを特徴とする。
【0025】
【作用】以下、本発明の代表的な作用を説明する。
【0026】複数の中の第1のプロセッサにおいて走行
中のオペレーティングシステム(以下、OSという)
が、キャッシュの無効化命令を発行したことに応じて、
第1のプロセッサのキャッシュを無効化する。さらに、
前記第1のプロセッサを除く各プロセッサにおいて、前
記OSが走行中か否かを判定し、この判定が肯定的であ
るプロセッサのキャッシュの内容を無効化する。
【0027】以上のようにして、仮想計算機上のOSが
発行したキャッシュの無効化命令を、前記OSが走行中
のプロセッサに限定して実行することにより、他のOS
の走行に影響を与えないようにすることが出来る。この
ようにして、マルチプロセッサ構成の計算機において、
仮想計算機上のOSが発行したキャッシュの無効化命令
を、効率良く実行可能な仮想計算機システムが提供され
る。
【0028】また、仮想計算機モニタ(VMM)は、プ
ロセッサにおいて走行させようとする複数の中の第1の
OSが、前記プロセッサで最後に走行した第2のOSと
同一か否かを判定する。判定結果が肯定的であれば、仮
想計算機モニタ(VMM)は、キャッシュの内容をメイ
ンメモリに複写することなく、前記第1のOSを前記プ
ロセッサにおいて走行させる。一方、判定結果が否定的
であれば、仮想計算機モニタ(VMM)は、前記プロセ
ッサのキャッシュの内容をメインメモリに複写して、さ
らに、キャッシュの内容を全て無効化した後、前記第1
のOSを前記プロセッサにおいて走行させる。
【0029】以上のようにすれば、第1のOSが走行を
開始した時点では、キャッシュに他のOSのメモリの内
容は保持されていないことになる。従って、第1のOS
が走行中に、キャッシュの無効化命令を発行しても、他
のOSのメモリの内容には、影響を与えない。さらに、
前回走行した第2のOSとは異なる第1のOSを走行さ
せるとき、キャッシュは全て無効化され、メインメモリ
に第1のOSの全てのメモリ内容が保存されている。従
って、第1のOSが走行中に、キャッシュ内の他のOS
のメモリ内容を誤って使用することはない。
【0030】このようにして、プロセッサにおける走行
OSの切り替え時に、キャッシュを効率良く制御可能な
仮想計算機システムが提供される。
【0031】
【実施例】以下、本発明の2つの実施例を、図面を用い
て詳細に説明する。
【0032】(第1の実施例)
【0033】1.計算機システムの構成 図1は、本発明の第1の実施例に係る計算機システムの
構成図である。図1において、各プロセッサ100−i
(i=1,2)は、メインメモリ200を共用してい
る。また、各プロセッサ100−iにはキャッシュ30
0−iが接続されている。さらに、メインメモリ200
には、仮想計算機モニタ(VMM)210およびOS−
k(k=1,2,3,4)がローディングされている。
【0034】本実施例は、仮想計算機上のOSがプロセ
ッサ100−iにおいて発行したPURGE CACH
E命令およびFLUSH CACHE命令を、プロセッ
サ100−iにおいて走行中のOSと同一のOSが走行
中のプロセッサ100−jのキャッシュ300−jに限
定して実行する点に特徴がある。また、本実施例は、プ
ロセッサ100−iにおけるOSの切り替え時に、キャ
ッシュ300を初期化して次のOSを起動する点にも特
徴がある。
【0035】2.キャッシュ制御命令の実行 次に、図2を用いて、本実施例の仮想計算機上のOSが
発行したキャッシュ制御命令の実行動作を説明する。図
2は、図1のキャッシュ300−i(i=1,2)の詳
細な構成を示す。
【0036】図2において、要求VMレジスタ210−
i(i=1,2)は、PURGECACHE命令あるい
はFLUSH CACHE命令を発行したOSの識別子
を保持するレジスタである。走行VMレジスタ220−
iは、プロセッサ100−iにおいて走行中のOSの識
別子を保持するレジスタである。
【0037】仮想計算機モニタ(VMM)210は、各
OSに1以上の値を識別子として付与しており、OSの
起動時にデータ線400−iを通して、キャッシュ30
0−iにこのOSの識別子を送る。送られたOSの識別
子が、走行VMレジスタ220−iに格納される。ま
た、仮想計算機モニタ(VMM)210自身が実行中の
ときには、データ線400−iには0が送られ、走行V
Mレジスタ220−iには0が格納されることになる。
【0038】キャッシュ300−i内の比較器230−
i、セレクタ240−i、および制御回路250−iの
動作については、後で詳しく述べる。
【0039】タグ260−iおよびキャッシュメモリ2
70−iは、それぞれ複数のエントリから構成される。
タグ260−iの各エントリとキャッシュメモリ270
−iの各エントリとは、1対1に対応付けられている。
タグ260−iの各エントリは、有効ビット(V)とア
ドレスフィールドから構成される。有効ビット(V)が
1(有効)のとき、このエントリのアドレスフィールド
に格納されているアドレスで指し示されるメインメモリ
200上のバッファが、該エントリに対応するキャッシ
ュメモリ270のエントリに保持されていることを示
す。また、有効ビット(V)が0(無効)のとき、キャ
ッシュメモリ270の対応するエントリが空き状態であ
ることを示す。
【0040】(a)PURGE CACHE命令の実行 プロセッサ100−1において走行中のOS−1がPU
RGE CACHE命令を発行したときの動作を説明す
る。
【0041】まず、プロセッサ100−1は、信号線4
10−1を介して、制御回路250−1にパージ要求信
号を送る。パージ要求信号を受け取った制御回路250
−1は、タグ260−1の全てのエントリの有効ビット
(V)に0(無効)を格納し、キャッシュメモリ270
−1の全てのエントリを空き状態とする。その後、制御
回路250−1は、パージ要求信号を信号線420−1
に送るとともに、データ線400−1を介して受け取っ
たOS−1の識別子である1をデータ線430−1に送
る。
【0042】この結果、キャッシュ300−2内のデー
タ線440−2にはPURGE CACHE命令をプロ
セッサ100−1において発行したOS−1の識別子で
ある1が送られ、要求VMレジスタ210−2に格納さ
れる。また、キャッシュ300−2には、信号線450
−2を介してパージ要求信号が送られる。
【0043】比較器230−2は、PURGE CAC
HE命令を発行したOSの識別子を保持する要求VMレ
ジスタ210−2とプロセッサ100−2で走行中のO
Sの識別子を保持する走行VMレジスタ220−2との
値を比較し、比較結果を出力する。セレクタ240−2
は、比較器230による比較結果が同一OSを示す場合
に限って、信号線450−2から入力されたパージ要求
信号を制御回路250−2に送る。
【0044】パージ要求信号を送られた制御回路250
−2は、タグ260−2の全てのエントリの有効ビット
(V)に0(無効)を格納することにより、キャッシュ
メモリ270−2の全てのエントリを空き状態とする。
【0045】(b)FLUSH CACHE命令の実行 プロセッサ−1において走行中のOS−1がFLUSH
CACHE命令を発行したときの動作を説明する。
【0046】まず、上述のPURGE CACHE命令
の場合と同様に、プロセッサ100−1は、信号線41
0−1を介して、制御回路250−1にフラッシュ要求
信号を送る。フラッシュ要求信号を受け取った制御回路
250−1は、タグ260−1のエントリの有効ビット
(V)が1(有効)を示すエントリのアドレスフィール
ドが指し示すメインメモリ200上の領域に、キャッシ
ュメモリ270−1が保持するバッファの内容を、デー
タ線460−1を介して格納する。それとともに、タグ
260−1の全てのエントリの有効ビット(V)に0
(無効)を格納し、キャッシュメモリ270−1の全て
のエントリを空き状態とする。その後、制御回路250
−1は、フラッシュ要求信号を信号線420−1に送る
とともに、データ線400−1を介して受け取ったOS
−1の識別子である1をデータ線430−1に送る。
【0047】この結果、キャッシュ300−2内のデー
タ線440−2には、FLUSHCACHE命令をプロ
セッサ100−1において発行したOS−1の識別子で
ある1が送られ、要求VMレジスタ210−2に格納さ
れる。また、キャッシュ300−2には、信号線450
−2を介してフラッシュ要求信号が送られる。
【0048】比較器230−2は、FLUSH CAC
HE命令を発行したOSの識別子を保持する要求VMレ
ジスタ210−2とプロセッサ100−2で走行中のO
Sの識別子を保持する走行VMレジスタ220−2との
値を比較し、比較結果を出力する。セレクタ240−2
は、比較器230による比較結果が同一OSを示す場合
に限って、信号線450−2から入力されたフラッシュ
要求信号を制御回路250−2に送る。
【0049】フラッシュ要求信号を送られた制御回路2
50−2は、タグ260−2のエントリの有効ビット
(V)が1(有効)を示すエントリのアドレスフィール
ドが指し示すメインメモリ200上の領域に、キャッシ
ュメモリ270−2が保持するバッファの内容を、デー
タ線460−2を介して格納する。また、タグ260−
2の全てのエントリの有効ビット(V)に0(無効)を
格納することにより、キャッシュメモリ270−2の全
てのエントリを空き状態とする。
【0050】3.走行OSの切り替え処理 図3は、本実施例の仮想計算機モニタ(VMM)210
による走行OSの切り替え処理のフローチャートであ
る。
【0051】プロセッサ100−iにおけるOS−kの
走行(ステップ3000)が、タイムスライスの終了等
により中断される(ステップ3010)と、タイマ割込
みの発生等により、仮想計算機モニタ(VMM)210
に制御が渡る。仮想計算機モニタ(VMM)210は、
そのスケジューリングに基づいて、次に走行させるOS
−mを選択する(ステップ3020)。そして、この選
択したOS−mがプロセッサ100−iで最後に走行し
たOS−kと同一かを判定(ステップ3030)する。
【0052】判定の結果、同一のOSであれば、選択し
たOS−mを起動(ステップ3050)する。同一のO
Sであるから、キャッシュはそのままである。
【0053】また、判定の結果、異なるOSであれば、
FLUSH CACHE命令を実行して、プロセッサ1
00−iのキャッシュ300−iの内容をメインメモリ
200に複写した後、無効化して(ステップ304
0)、選択したOS−mを起動(ステップ3050)す
る。
【0054】以上のようにすれば、プロセッサ100−
iにおけるOS−mの起動開始時には、キャッシュ30
0−iの内容は全て無効であるか、またはもともとのO
S−mのメモリ情報のみを有することになる。すなわ
ち、キャッシュ300−iは、OS−m以外のメモリ情
報は有しない。従って、走行中のOS−mがFLUSH
【0055】CACHE命令あるいはPURGE CA
CHE命令を発行しても、他のOSのメモリの内容には
何ら影響を与えない。
【0056】以上説明したように、本実施例によれば、
マルチプロセッサ構成の計算機において、仮想計算機上
のOSが発行したキャッシュの無効化命令を効率良く実
行可能な仮想計算機システムを提供できる。
【0057】また、本実施例によれば、プロセッサにお
ける走行OSの切り替え時に、キャッシュを効率良く制
御可能な仮想計算機システムを提供できる。
【0058】なお、仮想計算機システムに限らず、1台
の計算機上で複数のOSが走行可能な計算機システム
に、本発明が適用できることは明らかであろう。また、
仮想計算機システムに限らず、1台の計算機上で複数の
プログラムが実行される一般の計算機システムに、本発
明が適用できることも明らかであろう。
【0059】さらに、本実施例では、キャッシュのパー
ジおよびフラッシュは、キャッシュ全体に対して実行さ
れるとしたが、キャッシュの一部(例えば、特定のペー
ジ)に対して実行される場合にも、本発明が適用できる
ことは明らかであろう。
【0060】(第2の実施例)次に、本発明の第2の実
施例を説明する。本実施例においても、図1に示す計算
機システムの構成を前提とする。ただし、本実施例は、
キャッシュ300−iをOS間で共用し、仮想計算機上
のOSがプロセッサ100−iにおいて発行したPUR
GE CACHE命令およびFLUSH CACHE命
令を、プロセッサ100−iにおいて走行中のOSの識
別子が付与されたキャッシュ300−iのエントリに限
定して実行する点に特徴がある。
【0061】図4を用いて、仮想計算機上のOSが発行
したキャッシュ制御命令の実行動作を説明する。図4
は、本実施例におけるキャッシュ300−i(i=1,
2)の詳細な構成を示す。
【0062】図4において、仮想計算機モニタ(VM
M)210は、各OSに1以上の値を識別子として付与
しており、OSの起動時にデータ線400−iを通し
て、キャッシュ300−iにこのOSの識別子を送る。
また、仮想計算機モニタ(VMM)210自身が実行中
のときには、データ線400−iには0が送られるもの
とする。制御回路250−iの動作については、後で詳
しく述べる。
【0063】タグ260−iおよびキャッシュメモリ2
70−iは、それぞれ複数のエントリから構成される。
タグ260−iの各エントリとキャッシュメモリ270
−iの各エントリとは、1対1に対応付けられている。
タグ260−iの各エントリは、有効ビット(V)とア
ドレスフィールドと仮想計算機識別子(VMID)フィ
ールドとから構成される。
【0064】有効ビット(V)が1(有効)のとき、こ
のエントリのアドレスフィールドに格納されているアド
レスで指し示されるメインメモリ200上のバッファ
が、該エントリに対応するキャッシュメモリ270のエ
ントリに保持されていることを示す。また、制御回路2
50−iは、このエントリを書き込んだときプロセッサ
100−iで走行中であったOSの識別子(これは、デ
ータ線400−iから制御回路250−iに入力されて
いる)を、そのエントリのVMIDフィールドに格納す
る。さらに、有効ビット(V)が0(無効)のとき、キ
ャッシュメモリ270の対応するエントリが空き状態で
あることを示す。
【0065】(a)PURGE CACHE命令の実行 プロセッサ100−1において走行中のOS−1がPU
RGE CACHE命令を発行したときの動作を説明す
る。
【0066】まず、プロセッサ100−1は、信号線4
10−1を介して、制御回路250−1にパージ要求信
号を送る。パージ要求信号を受け取った制御回路250
−1は、タグ260−1のVMIDフィールドの値がデ
ータ線400−1から送られた1であるエントリの有効
ビット(V)に、0(無効)を格納する。これにより、
OS−1が使用していたキャッシュメモリ270−1の
エントリが、空き状態とされる。その後、制御回路25
0−1は、パージ要求信号を信号線420−1に送ると
ともに、データ線400−1を介して受け取ったOS−
1の識別子である1をデータ線430−1に送る。
【0067】この結果、キャッシュ300−2内のデー
タ線440−2にはPURGE CACHE命令をプロ
セッサ100−1において発行したOS−1の識別子で
ある1が送られる。また、キャッシュ300−2には、
信号線450−2を介してパージ要求信号が送られる。
【0068】パージ要求信号を送られた制御回路250
−2は、タグ260−2のVMIDフィールドの値がデ
ータ線440−2から送られた1であるエントリの有効
ビット(V)に、0(無効)を格納する。これにより、
OS−1が使用していたキャッシュメモリ270−2の
エントリが、空き状態となる。
【0069】(b)FLUSH CACHE命令の実行 プロセッサ−1において走行中のOS−1がFLUSH
CACHE命令を発行したときの動作を説明する。
【0070】まず、上述のPURGE CACHE命令
の場合と同様に、プロセッサ100−1は、信号線41
0−1を介して、制御回路250−1にフラッシュ要求
信号を送る。フラッシュ要求信号を受け取った制御回路
250−1は、タグ260−1のエントリの有効ビット
(V)が1(有効)でありかつVMIDフィールドの値
がデータ線400−1から送られた1であるエントリの
アドレスフィールドが指し示すメインメモリ200上の
領域に、キャッシュメモリ270−1が保持するバッフ
ァの内容を、データ線460−1を介して格納する。そ
れとともに、このエントリの有効ビット(V)に0(無
効)を格納し、OS−1が使用していたキャッシュメモ
リ270−1のエントリを空き状態とする。その後、制
御回路250−1は、フラッシュ要求信号を信号線42
0−1に送るとともに、データ線400−1を介して受
け取ったOS−1の識別子である1をデータ線430−
1に送る。
【0071】この結果、キャッシュ300−2内のデー
タ線440−2には、FLUSHCACHE命令をプロ
セッサ100−1において発行したOS−1の識別子で
ある1が送られる。また、キャッシュ300−2には、
信号線450−2を介してフラッシュ要求信号が送られ
る。
【0072】フラッシュ要求信号を送られた制御回路2
50−2は、タグ260−2のエントリの有効ビット
(V)が1(有効)であり、かつVMIDフィールドの
値がデータ線440−2から送られた1であるエントリ
のアドレスフィールドが指し示すメインメモリ200上
の領域に、キャッシュメモリ270−2が保持するバッ
ファの内容を、データ線460−2を介して格納する。
また、このエントリの有効ビット(V)に0(無効)を
格納することにより、OS−1が使用していたキャッシ
ュメモリ270−2のエントリを空き状態とする。
【0073】以上のようにして、本実施例によれば、キ
ャッシュを複数のOS間で効率良く共用可能な仮想計算
機システムを提供できる。
【0074】
【発明の効果】本発明によれば、マルチプロセッサ構成
の計算機において、仮想計算機上のOSが発行したキャ
ッシュの無効化命令を、効率良く実行することが可能な
仮想計算機システムが提供される。また、各プロセッサ
における走行OSの切り替え時に、キャッシュを効率良
く制御することが可能な仮想計算機システムが提供され
る。
【図面の簡単な説明】
【図1】実施例の計算機システムの構成図。
【図2】第1の実施例におけるキャッシュ制御命令の実
行回路図。
【図3】第1の実施例における走行OSの切り替え処理
のフローチャート。
【図4】第2の実施例におけるキャッシュ制御命令の実
行回路図。
【符号の説明】
100−i:プロセッサ、200:メインメモリ、21
0:仮想計算機モニタ,300−i:キャッシュ。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 神 好秀 神奈川県横浜市戸塚区戸塚町5030番地 株 式会社日立製作所ソフトウェア開発本部内

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】複数のプロセッサと、前記複数のプロセッ
    サによって共有されるメインメモリと、前記プロセッサ
    毎に設けられたキャッシュとを有する1台の計算機上で
    複数のオペレーティング・システムが走行する仮想計算
    機システムにおけるキャッシュの制御装置であって、 前記複数のプロセッサ中の第1のプロセッサにおいて走
    行中のオペレーティング・システムが、キャッシュの内
    容を無効化する命令を発行したことに応じて、前記第1
    のプロセッサのキャッシュの内容を無効化する手段と、 前記第1のプロセッサを除く各プロセッサにおいて、前
    記走行中のオペレーティング・システムが走行中か否か
    を判定する手段と、 前記判定が肯定的であるプロセッサのキャッシュの内容
    を無効化する手段とを備えたことを特徴とするキャッシ
    ュの制御装置。
  2. 【請求項2】プロセッサとメインメモリとキャッシュと
    を有する1台の計算機上で複数のオペレーティング・シ
    ステムが走行する仮想計算機システムにおけるキャッシ
    ュの制御装置であって、 前記プロセッサにおいて、次に走行させようとする第1
    のオペレーティング・システムが、前記プロセッサで最
    後に走行した第2のオペレーティング・システムと同一
    か否かを判定する手段と、 前記判定結果が肯定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写することなく、前
    記第1のオペレーティング・システムを前記プロセッサ
    において走行させる手段と、 前記判定結果が否定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写して、前記第1の
    オペレーティング・システムを前記プロセッサにおいて
    走行させる手段とを備えたことを特徴とするキャッシュ
    の制御装置。
  3. 【請求項3】プロセッサとメインメモリと複数エントリ
    を備えたキャッシュとを有する1台の計算機上で複数の
    オペレーティング・システムが走行する仮想計算機シス
    テムにおけるキャッシュの制御装置であって、 前記キャッシュの各エントリがいずれのオペレーティン
    グ・システムで使用されているかを示す識別子を、各エ
    ントリごとに記憶するための記憶手段と、 前記メインメモリの一部を前記キャッシュメモリのエン
    トリに登録するとき、前記プロセッサで走行中のオペレ
    ーティング・システムの識別子を前記記憶手段の対応す
    るエントリの領域に書き込む手段と、 前記プロセッサにおいて走行中のオペレーティング・シ
    ステムが、キャッシュの内容を無効化する命令を発行し
    たことに応じて、前記走行中のオペレーティング・シス
    テムの識別子が付与されたキャッシュメモリのエントリ
    を無効化する手段とを備えたことを特徴とするキャッシ
    ュの制御装置。
  4. 【請求項4】複数のプロセッサと、前記複数のプロセッ
    サによって共有されるメインメモリと、前記プロセッサ
    毎に設けられたキャッシュとを有する1台の計算機上で
    複数のオペレーティング・システムが走行する仮想計算
    機システムにおけるキャッシュの制御方法であって、 前記複数のプロセッサ中の第1のプロセッサにおいて走
    行中のオペレーティング・システムが、キャッシュの内
    容を無効化する命令を発行したことに応じて、前記第1
    のプロセッサのキャッシュの内容を無効化するステップ
    と、 前記第1のプロセッサを除く各プロセッサにおいて、前
    記走行中のオペレーティング・システムが走行中か否か
    を判定するステップと、 前記判定が肯定的であるプロセッサのキャッシュの内容
    を無効化するステップとを備えたことを特徴とするキャ
    ッシュの制御方法。
  5. 【請求項5】プロセッサとメインメモリとキャッシュと
    を有する1台の計算機上で複数のオペレーティング・シ
    ステムが走行する仮想計算機システムにおけるキャッシ
    ュの制御方法であって、 前記プロセッサにおいて、次に走行させようとする第1
    のオペレーティング・システムが、前記プロセッサで最
    後に走行した第2のオペレーティング・システムと同一
    か否かを判定するステップと、 前記判定結果が肯定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写することなく、前
    記第1のオペレーティング・システムを前記プロセッサ
    において走行させるステップと、 前記判定結果が否定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写して、前記第1の
    オペレーティング・システムを前記プロセッサにおいて
    走行させるステップとを備えたことを特徴とするキャッ
    シュの制御方法。
  6. 【請求項6】複数のプロセッサと、前記複数のプロセッ
    サによって共有されるメインメモリと、前記プロセッサ
    毎に設けられたキャッシュとを有する1台の計算機上で
    複数のプログラムが実行される計算機システムにおける
    キャッシュの制御装置であって、 前記複数のプロセッサ中の第1のプロセッサにおいて実
    行中のプログラムが、キャッシュの内容を無効化する命
    令を発行したことに応じて、前記第1のプロセッサのキ
    ャッシュの内容を無効化する手段と、 前記第1のプロセッサを除く各プロセッサにおいて、前
    記プログラムが実行中か否かを判定する手段と、 前記判定が肯定的であるプロセッサのキャッシュの内容
    を無効化する手段とを備えたことを特徴とするキャッシ
    ュの制御装置。
  7. 【請求項7】プロセッサとメインメモリとキャッシュと
    を有する1台の計算機上で複数のプログラムが実行され
    る計算機システムにおけるキャッシュの制御装置であっ
    て、 前記プロセッサにおいて、次に実行させようとする第1
    のプログラムが、前記プロセッサで最後に実行した第2
    のプログラムと同一か否かを判定する手段と、 前記判定結果が肯定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写することなく、前
    記第1のプログラムを前記プロセッサにおいて実行させ
    る手段と、 前記判定結果が否定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写して、前記第1の
    プログラムを前記プロセッサにおいて実行させる手段と
    を備えたことを特徴とするキャッシュの制御装置。
  8. 【請求項8】プロセッサとメインメモリと複数エントリ
    を備えたキャッシュとを有する1台の計算機上で複数の
    プログラムが実行される計算機システムにおけるキャッ
    シュの制御装置であって、 前記キャッシュの各エントリがいずれのプログラムで使
    用されているかを示す識別子を、各エントリごとに記憶
    するための記憶手段と、 前記メインメモリの一部を前記キャッシュメモリのエン
    トリに登録するとき、前記プロセッサで実行中のプログ
    ラムの識別子を前記記憶手段の対応するエントリの領域
    に書き込む手段と、 前記プロセッサにおいて実行中のプログラムが、キャッ
    シュの内容を無効化する命令を発行したことに応じて、
    前記実行中のプログラムの識別子が付与されたキャッシ
    ュメモリのエントリを無効化する手段とを備えたことを
    特徴とするキャッシュの制御装置。
  9. 【請求項9】複数のプロセッサと、前記複数のプロセッ
    サによって共有されるメインメモリと、前記プロセッサ
    毎に設けられたキャッシュとを有する1台の計算機上で
    複数のプログラムが実行される計算機システムにおける
    キャッシュの制御方法であって、 前記複数のプロセッサ中の第1のプロセッサにおいて実
    行中のプログラムが、キャッシュの内容を無効化する命
    令を発行したことに応じて、前記第1のプロセッサのキ
    ャッシュの内容を無効化するステップと、 前記第1のプロセッサを除く各プロセッサにおいて、前
    記プログラムが実行中か否かを判定するステップと、 前記判定が肯定的であるプロセッサのキャッシュの内容
    を無効化するステップとを備えたことを特徴とするキャ
    ッシュの制御方法。
  10. 【請求項10】プロセッサとメインメモリとキャッシュ
    とを有する1台の計算機上で複数のプログラムが実行さ
    れる計算機システムにおけるキャッシュの制御方法であ
    って、 前記プロセッサにおいて、次に実行させようとする第1
    のプログラムが、前記プロセッサで最後に実行した第2
    のプログラムと同一か否かを判定するステップと、 前記判定結果が肯定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写することなく、前
    記第1のプログラムを前記プロセッサにおいて実行させ
    るステップと、 前記判定結果が否定的であることに応じて、前記キャッ
    シュの内容を前記メインメモリに複写して、前記第1の
    プログラムを前記プロセッサにおいて実行させるステッ
    プとを備えたことを特徴とするキャッシュの制御方法。
JP5269978A 1993-10-01 1993-10-01 キャッシュの制御装置および制御方法 Pending JPH07105091A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5269978A JPH07105091A (ja) 1993-10-01 1993-10-01 キャッシュの制御装置および制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5269978A JPH07105091A (ja) 1993-10-01 1993-10-01 キャッシュの制御装置および制御方法

Publications (1)

Publication Number Publication Date
JPH07105091A true JPH07105091A (ja) 1995-04-21

Family

ID=17479875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5269978A Pending JPH07105091A (ja) 1993-10-01 1993-10-01 キャッシュの制御装置および制御方法

Country Status (1)

Country Link
JP (1) JPH07105091A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011336A (ja) * 2003-05-29 2005-01-13 Matsushita Electric Ind Co Ltd オペレーティングシステム切り替え可能な情報処理装置
JP2008293472A (ja) * 2007-04-24 2008-12-04 Fujitsu Ltd 計算機装置およびそのキャッシュリカバリ方法
JP2009282920A (ja) * 2008-05-26 2009-12-03 Toshiba Corp キャッシュメモリ装置
US8161161B2 (en) 2005-10-31 2012-04-17 Sony Computer Entertainment, Inc. Information processing method and information processing apparatus
JP2013257911A (ja) * 2004-07-30 2013-12-26 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
JP2015176426A (ja) * 2014-03-17 2015-10-05 日本電気株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
US9218287B2 (en) 2011-01-24 2015-12-22 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP2019185744A (ja) * 2018-03-30 2019-10-24 インテル・コーポレーション 暗号ドメイン間における動的リソース割り振りのための技法
JP2020123382A (ja) * 2020-04-16 2020-08-13 株式会社三菱Ufj銀行 制御プログラム

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005011336A (ja) * 2003-05-29 2005-01-13 Matsushita Electric Ind Co Ltd オペレーティングシステム切り替え可能な情報処理装置
US9164918B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US9507730B2 (en) 2004-07-30 2016-11-29 Intel Corporation Maintaining processor resources during architectural events
US10740249B2 (en) 2004-07-30 2020-08-11 Intel Corporation Maintaining processor resources during architectural events
JP2013257911A (ja) * 2004-07-30 2013-12-26 Intel Corp アーキテクチャイベントの間のプロセッサリソースの保持
US9086958B2 (en) 2004-07-30 2015-07-21 Intel Corporation Maintaining processor resources during architectural events
US10303620B2 (en) 2004-07-30 2019-05-28 Intel Corporation Maintaining processor resources during architectural events
US9996475B2 (en) 2004-07-30 2018-06-12 Intel Corporation Maintaining processor resources during architectural events
US9152561B2 (en) 2004-07-30 2015-10-06 Intel Corporation Maintaining processor resources during architectural events
US9164901B2 (en) 2004-07-30 2015-10-20 Intel Corporation Maintaining processor resources during architectural events
US8161161B2 (en) 2005-10-31 2012-04-17 Sony Computer Entertainment, Inc. Information processing method and information processing apparatus
JP2008293472A (ja) * 2007-04-24 2008-12-04 Fujitsu Ltd 計算機装置およびそのキャッシュリカバリ方法
JP2009282920A (ja) * 2008-05-26 2009-12-03 Toshiba Corp キャッシュメモリ装置
US9218287B2 (en) 2011-01-24 2015-12-22 Panasonic Intellectual Property Corporation Of America Virtual computer system, virtual computer control method, virtual computer control program, recording medium, and integrated circuit
JP2015176426A (ja) * 2014-03-17 2015-10-05 日本電気株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP2019185744A (ja) * 2018-03-30 2019-10-24 インテル・コーポレーション 暗号ドメイン間における動的リソース割り振りのための技法
JP2020123382A (ja) * 2020-04-16 2020-08-13 株式会社三菱Ufj銀行 制御プログラム

Similar Documents

Publication Publication Date Title
US5761729A (en) Validation checking of shared memory accesses
US5802585A (en) Batched checking of shared memory accesses
US5787480A (en) Lock-up free data sharing
US5758183A (en) Method of reducing the number of overhead instructions by modifying the program to locate instructions that access shared data stored at target addresses before program execution
US8234642B2 (en) Filtering processor requests based on identifiers
US6456891B1 (en) System and method for transparent handling of extended register states
US6233599B1 (en) Apparatus and method for retrofitting multi-threaded operations on a computer by partitioning and overlapping registers
US7073044B2 (en) Method and apparatus for sharing TLB entries
US5933598A (en) Method for sharing variable-grained memory of workstations by sending particular block including line and size of the block to exchange shared data structures
US8255591B2 (en) Method and system for managing cache injection in a multiprocessor system
US8104035B2 (en) Program for controlling a virtual computer and computer system for virtulization technology
JP2916420B2 (ja) チェックポイント処理加速装置およびデータ処理方法
CN101097544B (zh) 虚拟化事务存储器的全局溢出方法
US7165164B2 (en) Method and apparatus including heuristic for sharing TLB entries
US8032716B2 (en) System, method and computer program product for providing a new quiesce state
US8572624B2 (en) Providing multiple quiesce state machines in a computing environment
US5297281A (en) Multiple sequence processor system
US6321328B1 (en) Processor having data buffer for speculative loads
JP3862959B2 (ja) マイクロプロセッサのロード/ストア命令制御回路、およびロード/ストア命令制御方法
US5293602A (en) Multiprocessor computer system with dedicated synchronizing cache
US5896520A (en) Virtual computer system of multi-processor constitution
JPH07105091A (ja) キャッシュの制御装置および制御方法
EP0404560A2 (en) Improved multiprocessor system
JPH0816474A (ja) マルチプロセッサシステム
US7107404B2 (en) Method and system for data processing for controlling a cache memory