JPWO2012102002A1 - 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路 - Google Patents

仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路 Download PDF

Info

Publication number
JPWO2012102002A1
JPWO2012102002A1 JP2012554667A JP2012554667A JPWO2012102002A1 JP WO2012102002 A1 JPWO2012102002 A1 JP WO2012102002A1 JP 2012554667 A JP2012554667 A JP 2012554667A JP 2012554667 A JP2012554667 A JP 2012554667A JP WO2012102002 A1 JPWO2012102002 A1 JP WO2012102002A1
Authority
JP
Japan
Prior art keywords
data
storage area
processor
secure
storage
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.)
Ceased
Application number
JP2012554667A
Other languages
English (en)
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co 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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2012102002A1 publication Critical patent/JPWO2012102002A1/ja
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Abstract

セキュアOSと通常OSとを実行するプロセッサと、キャッシュメモリとを備える仮想計算機システムである。キャッシュメモリは、格納するデータについて、外部のメインメモリにおけるセキュア記憶領域から読み出されたデータであるか否かを識別可能に格納する。そして、キャッシュメモリは、プロセッサが通常OSを実行している際に発生する、セキュア記憶領域への書き戻しの断続的に実行される回数を抑制するように、メインメモリへのデータの書き戻しを行う。

Description

本発明は、キャッシュメモリを備える仮想計算機システムに関する。
従来、1つの物理計算機上で複数のオペレーティングシステム(Operating System:OS)を実行する仮想計算機システムが知られている。
例えば、特許文献1〜特許文献4には、プロセッサとキャッシュメモリとを備える仮想計算機システムについての技術が記載されている。
ところで、秘匿すべき情報を取り扱う仮想計算機システムにおいては、セキュリティ保護の観点から、その秘匿すべき情報は、信頼できる特定のプログラム(以下、「セキュアプログラム」という。)以外のプログラムによってアクセス(読み出し又は書き込み)されないように保護されていることが望まれる。
このため、仮想計算機システムには、プロセッサのモードが特定の特権モード(以下、「セキュアモード」と呼ぶ。)である場合に限って、メインメモリの記憶領域のうちの特定の記憶領域(以下、「セキュア領域」と呼ぶ。)へのアクセスを許可するMPU(Memory Protection Unit:メモリ保護ユニット)と、セキュアプログラムに限って実行制御を行う信頼できる特定のオペレーティングシステム(以下、「セキュアOS」と呼ぶ。)と、セキュアプログラム以外のプログラムに限って実行制御を行うオペレーティングシステム(以下、「通常OS」と呼ぶ。)とを備えるものがある。そして、このような仮想計算機システムにおいて、秘匿すべき情報がセキュア領域に格納され、プロセッサが、セキュアモードである場合に限ってセキュアOSを実行し、プロセッサが、セキュアモードよりも下位の特権モード(以下、「通常特権モード」と呼ぶ。)である場合には通常OSを実行することで、その秘匿すべき情報は、セキュアプログラム以外のプログラムから保護される。
特開昭62−105250号公報 特開平07−105091号公報 特開2001−282560号公報 WO 2009/075070号公報 特開2000−242512号公報
上記構成を備える仮想計算機システムがキャッシュメモリを搭載している場合において、キャッシュメモリに、セキュア領域に記憶されていたデータが格納されているときには、プロセッサが通常特権モードで通常OSを実行制御している期間中に、キャッシュメモリの利用に伴って、そのデータについての、キャッシュメモリによるセキュア領域への書き戻し(以下、「通常OS実行制御時におけるセキュア領域への書き戻し」と呼ぶ。)が発生することがある。
以下、通常OS実行制御時におけるセキュア領域への書き戻しが発生した場合に、この仮想計算機システムで行われることとなる処理について説明する。
通常OS実行制御時におけるセキュア領域への書き戻しが発生すると、MPUは、プロセッサのモードがセキュアモードでないため、そのデータについてのセキュア領域への書き込みを許可せずに、プロセッサへ例外の発生を通知する。すると、プロセッサは、セキュア領域へのデータの書き戻しを実現するために、(1)プロセッサのレジスタ値等といったプロセッサの状態を示す情報をメインメモリの所定のコンテクスト退避領域に退避させ、(2)プロセッサのモードをセキュアモードに変更し、(3)所定のコンテクスト退避領域に退避していた、セキュアOS実行時のプロセッサの状態を示す情報をプロセッサのレジスタ値等に復元して、実行するOSを、通常OSからセキュアOSへと切り替える。すると、MPUがセキュア領域へのデータの書き込みを許可するようになるので、キャッシュメモリによるデータの書き戻しが実行される。その後、プロセッサは、通常特権モードでの通常OSの実行制御を再開するために、(1)プロセッサのレジスタ値等といったプロセッサの状態を示す情報をメインメモリの所定のコンテクスト退避領域に退避させ、(2)プロセッサのモードを通常特権モードに変更し、(3)所定のコンテクスト退避領域に退避していた、通常OS実行時のプロセッサの状態を示す情報をプロセッサのレジスタ値等に復元して、実行するOSを、セキュアOSから通常OSへと切り替える。
このように、通常OS実行制御時におけるセキュア領域への書き戻しが発生すると、プロセッサは、少なくとも2回のコンテクストスイッチングを行わなければならない。このため、通常OS実行制御時におけるセキュア領域への書き戻しにおける処理時間が比較的大きく(例えば、数ms)なってしまう。
従って、一定の処理性能が必要となる仮想計算機システムにとっては、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が低減されることが望ましい。
そこで、本発明は係る問題に鑑みてなされたものであり、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が、従来よりも低減される可能性を高くする仮想計算機システムを提供することを目的とする。
上記課題を解決するために本発明に係る仮想計算機システムは、第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムとから構成される仮想計算機システムであって、前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとを備え、前記キャッシュメモリは、前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納部と、前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻部とを有することを特徴とする。
上述の構成を備える本発明に係る仮想計算機システムによると、プロセッサが第2モード(通常特権モード)で第2オペレーティングシステム(通常OS)を実行している場合における、セキュア記憶領域(セキュア領域)への書き戻しについて、断続的に実行される回数が抑制されることとなる。
このことによって、この仮想計算機システムは、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が、従来よりも低減される可能性を高くすることができる。
仮想計算機システム100の主要なハードウエア構成を示すブロック図 プロセッサ101が有する動作モードを模式的に示す模式図 キャッシュメモリ102の主要なハードウエア構成を示すブロック図 (a)アドレス構成図、(b)第0ウェイ310のハードウエア構成を示すブロック図 データ読出機能ブロックの機能ブロック図 データ格納機能ブロックの機能ブロック図 置換対象選択部610の機能構成を示す機能ブロック図 参照時刻情報が取り得る値を模式的に示した模式図 格納処理のフローチャート 第1変形データ格納機能ブロックの機能ブロック図 第1変形データ格納処理のフローチャート スリープ命令発行時処理のフローチャート スリープ命令のスリープ命令種と電力削減レベル情報(EV)との対応関係を示す対応表 第2変形データ格納機能ブロックの機能ブロック図 第1変形スリープ命令発行時処理のフローチャート 第3変形データ格納機能ブロックの機能ブロック図 第2変形スリープ命令発行時処理のフローチャート 第4変形データ格納機能ブロックの機能ブロック図 第2変形データ格納処理のフローチャート 第5変形データ格納機能ブロックの機能ブロック図 第3変形データ格納処理のフローチャート 変形例における仮想計算機システムのブロック図
<実施の形態1>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、特権モードであるセキュアモードを有するプロセッサと、セキュア記憶領域を含むメインメモリと、プロセッサがセキュアモードである場合に限って、セキュア記憶領域へのアクセスを許可するMPUと、プロセッサが利用する4ウェイセットアソシアティブ方式のキャッシュメモリとを備える仮想計算機システムについて説明する。
この仮想計算機システムにおいて、秘匿されるべきデータ(例えば、デジタル書作物を復号するための暗号キー、個人情報を含む住所録データ等)は、セキュア記憶領域に記憶される。そして、その秘匿されるべきデータへのアクセスが許可されているセキュアプログラムは、プロセッサがセキュアモードである場合に限って実行されるセキュアOSに限って実行制御される。セキュアプログラム以外のアプリケーションプログラムは、セキュアモードよりも下位の特権モードである通常特権モードで実行される通常OSに限って実行制御される。
キャッシュメモリの各ウェイを構成するラインのそれぞれは、格納するデータに加えて、その格納するデータがメインメモリから読み出された際にプロセッサによって実行されていたOSを特定するOS識別子を格納する。そして、キャッシュメモリは、同一インデックスによって指定されるラインのうちのいずれかについてメインメモリへの書き戻しを行う必要が生じた場合おいて、OS識別子を参照して、スリープ状態となっている通常OSが存在するときに、メインメモリへの書き戻しを行う必要が生じれば、そのOSが実行されていた期間に読み出されたデータを優先して書き戻しを行う。
以下、本実施の形態1に係る仮想計算機システムの構成について図面を参照しながら説明する。
<構成>
図1は、仮想計算機システム100の主要なハードウエア構成を示すブロック図である。
同図に示す通り、仮想計算機システム100は、ハードウエアとしてはコンピュータ装置であり、集積回路110と入力装置130と出力装置140とから構成される。
集積回路110は、プロセッサ101とキャッシュメモリ102とメインメモリ103とMPU104と周辺回路105とROM106と第1インターフェース107と第2インターフェース108と内部バス120とから構成される。
メインメモリ103は、内部バス120に接続され、プロセッサ101の動作を規定するプログラムと、プロセッサ101が利用するデータとを記憶する。メインメモリ103の記憶領域のうちの一部の領域は、秘匿されるべきデータを記憶するためのセキュア記憶領域として設定されている。
ROM106は、内部バス120に接続され、プロセッサ101の動作を規定するプログラムと、プロセッサ101が利用するデータとを記憶する。
周辺回路105は、内部バス120に接続され、プロセッサ101によって制御され、タイマ機能等を有する。
第1インターフェース107と第2インターフェース108とは、それぞれ内部バス120に接続され、それぞれ内部バス120と入力装置130との間の信号のやり取りを仲介する機能、内部バス120と出力装置140との間の信号のやり取りを仲介する機能を有する。
入力装置130は、キーボード、マウス等で構成され、第1インターフェース107に接続され、プロセッサ101によって制御され、キーボード、マウス等を通じてユーザからの操作コマンドを受け付け、受け付けた操作コマンドをプロセッサ101に送る機能を有する。
出力装置140は、ディスプレイ、スピーカー等を内蔵し、第2インターフェース108に接続され、プロセッサ101によって制御され、内蔵するディスプレイ、スピーカー等を用いて文字列、画像、音声等を表示・出力する機能を有する。
MPU104は、内部バス120とプロセッサ101とに接続され、プロセッサ101によって制御され、プロセッサ101の要求するメモリアクセスを処理する機能を有する。特に、プロセッサ101と連動して、プロセッサ101がセキュア領域へのアクセスを要求した場合において、プロセッサ101の動作モードがセキュアモード(後述)のときに、そのアクセスを実行し、プロセッサ101の動作モードが通常特権モード(後述)又はユーザモード(後述)のときに、そのアクセスを実行せずに、プロセッサ101に対して、例外発生割り込み(以下、「セキュア記憶領域アクセス例外割り込み」と呼ぶ。)を行う機能を有する。
プロセッサ101は、キャッシュメモリ102とMPU104とに接続され、メインメモリ103又はROM106に記憶されているプログラムを実行することで、キャッシュメモリ102とメインメモリ103とMPU104と周辺回路105とROM106と入力装置130と出力装置140とを制御して、仮想計算機システム100を、コンピュータ装置として機能させる機能を有する。
また、プロセッサ101は、ロード命令実行時、ストア命令実行時、及び命令フェッチ実行時に、現在実行制御しているOSを識別するOS識別子をキャッシュメモリ102に出力する機能を有する。さらに、プロセッサ101は、自プロセッサの消費電力を削減するための命令である、指定するOSをスリープ状態とするスリープ命令を発行する機能と、スリープ状態のOSを通常状態とするウェイクアップ命令を発行する機能とを有する。
図2は、プロセッサ101が有する動作モードを模式的に示す模式図である。
同図に示されるように、プロセッサ101は、アプリケーションプログラム(図中のタスクA221〜タスクZ216)を実行するユーザモード210と、通常OS(図中の第1OS221〜第nOS222)を実行する第1の特権モード(以下、「通常特権モード220」と呼ぶ。)と、通常特権モードよりも上位の特権モードであって、セキュアOS231を実行する第2の特権モード(以下、「セキュアモード230」と呼ぶ。)と、セキュアモードよりも上位の特権モードであって、OSの実行制御を行うハイパバイザ241を実行する第3の特権モード(以下、「ハイパバイザモード240」と呼ぶ。)とを有する。
ここで、タスクA211〜タスクK212は、メインメモリ103の記憶領域の一部であるセキュア記憶領域(後述)に記憶されている、秘匿されるべきデータへのアクセスが許可されているセキュアプログラムであって、セキュアOS231によって実行制御される。
これらのうち、タスクL213〜タスクZ216は、秘匿されるべきデータへのアクセスが許可されていない通常プログラムであって、第1OS221〜第nOS222のいずれかによって実行制御される。そして、タスクA211〜タスクK212は、秘匿されるべきデータへのアクセスが許可されているセキュアプログラムであって、セキュアOS231によって実行制御される。
ハイパバイザ241は、OSの実行制御を行う機能に加えて、プロセッサ101が通常OS実行時にMPU104からセキュア記憶領域アクセス例外割り込みを受けた場合に、(1)プロセッサ101のレジスタ値等といったプロセッサ101の状態を示す情報をメインメモリ103の所定のコンテクスト退避領域に退避させ、(2)プロセッサ101のモードをセキュアモードに変更し、(3)所定のコンテクスト退避領域に待機していた、セキュアOS実行時のプロセッサ101の状態を示す情報をプロセッサ101のレジスタ値等に復元して、実行するOSを、通常OSからセキュアOSへと切り替える機能を有する。
再び図1に戻って、仮想計算機システム100のハードウエア構成の説明を続ける。
キャッシュメモリ102は、内部バス120とプロセッサ101とに接続される、4ウェイセットアソシアティブ方式の、命令、データ共用キャッシュメモリである。
図3は、キャッシュメモリ102の主要なハードウエア構成を示すブロック図である。
同図に示す通り、キャッシュメモリ102は、コントローラ301と入出力回路302と第0ウェイ310と第1ウェイ311と第2ウェイ312と第3ウェイ313とから構成される。
コントローラ301は、入出力回路302と第0ウェイ310と第1ウェイ311と第2ウェイ312と第3ウェイ313とに接続され、内蔵する記憶素子に記憶されているプログラムを実行することで、入出力回路302と第0ウェイ310と第1ウェイ311と第2ウェイ312と第3ウェイ313とを制御して、キャッシュメモリ102を4ウェイセットアソシアティブ方式のキャッシュメモリとして機能させる機能を有する。
第0ウェイ310〜第3ウェイ313は、それぞれ、互いに同等の機能を有し、互いに同等な構成を備えている。よって、以下、特別な断りがある場合を除いて、これらのウェイの代表として、第0ウェイ310について説明する。
第0ウェイ310は、コントローラ301と入出力回路302とに接続され、コントローラ301によって制御され、メインメモリ103の記憶領域を指定するアドレスにおける一部のビット列からなるインデックスによって指定されるライン記憶領域を複数備えるSRAM(Static Random Access Memory)であって、プロセッサ101が利用する命令又はデータであるビット列(以下、単に「データ」と呼ぶ。)を記憶する機能を有する。
図4(a)は、メインメモリ103の記憶領域を指定するアドレスの構成を示すアドレス構成図である。
図4(a)に示される通り、メインメモリ103の記憶領域を指定するアドレスは、上位ビット側のビット列であるタグ401と下位ビット側のビット列であるインデックス402とから構成される。
図4(b)は、第0ウェイ310のハードウエア構成を示すブロック図である。
図4(b)に示される通り、第0ウェイ310は、タグ記憶領域411とダーティビット記憶領域412とバリッドビット記憶領域413とOS識別子記憶領域414とカウンタ記憶領域415とセキュアビット記憶領域416とデータ記憶領域417とからなる、インデックスによって指定されるライン記憶領域を複数備えるSRAMである。
データ記憶領域417は、プロセッサ101が利用するデータを格納する記憶領域である。
タグ記憶領域411は、データ記憶領域417に格納されているデータの、メインメモリ103におけるアドレスを構成するタグを格納する記憶領域である。
ダーティビット記憶領域412は、データ記憶領域417に格納されているデータがメインメモリ103との間のコヒーレンシが保証されているか否かを示すダーティビットを格納する記憶領域である。ここで、このダーティビットは、データ記憶領域417に格納されているデータが、メインメモリ103との間のコヒーレンシが保証されていない場合に“1”となり、保証されている場合に“0”となる。
バリッドビット記憶領域413は、データ記憶領域417に格納されているデータが有効であるか否かを示すバリッドビットを格納する記憶領域である。ここで、このバリッドビットは、データ記憶領域417に格納されているデータが有効である場合に“1”となり、無効である場合に“0”となる。
OS識別子記憶領域414は、データ記憶領域417に格納されているデータがメインメモリ103から読み出された際にプロセッサによって実行されていたOSを特定するOS識別子を記憶する複数ビットからなるOS識別ビットを格納する記憶領域である。
カウンタ記憶領域415は、同一インデックスによって指定される、第0ウェイ310〜第3ウェイ313の4つのライン格納領域について、データ記憶領域417にデータが格納された順番を示す2ビットのカウンタ値を格納する記憶領域である。このカウンタ値は、コントローラ301によってカウントされる。ここで、このカウンタ値は、より値が大きい程、より過去にデータが格納されたことを示している。すなわち、カウンタ値が“11”であれば最も古い過去にデータが格納されたことを示し、カウンタ値が“00”であれば最も新しい過去にデータが格納されたことを示す。
セキュアビット記憶領域416は、データ記憶領域417に格納されているデータが、セキュア領域に記憶されていたものであるか否かを示すセキュアビットを格納する記憶領域である。ここで、このセキュアビットは、データ記憶領域417に格納されているデータが、セキュア領域に記憶されていたものである場合に“1”となり、セキュア領域に記憶されていたものでない場合に“0”となる。
入出力回路302は、コントローラ301と第0ウェイ310と第1ウェイ311と第2ウェイ312と第3ウェイ313とプロセッサ101と内部バス120とに接続され、コントローラ301によって制御され、第0ウェイ310〜第3ウェイ313にデータを書き込む機能と、第0ウェイ310〜第3ウェイ313からデータを読み出す機能と、第0ウェイ310〜第3ウェイ313からデータの読み出しを試みた場合において、該当するデータが保持されていないときにキャッシュミス信号を出力する機能とを有する。
上記構成を備えるキャッシュメモリ102は、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで、(1)タグとインデックスとが入力されてデータを読み出すデータ読出機能と、(2)タグとインデックスとデータとOS識別子とが入力されてデータを格納するデータ格納機能とを実現する。
以下、これらの機能について、図面を用いて説明する。
図5は、前述のデータ読出機能を実現するデータ読出機能ブロックの機能ブロック図である。このデータ読出機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、データ読出機能ブロックは、第0ウェイ310〜第3ウェイ313と比較器部510〜比較器部513と論理和部520〜論理和部523とトライステートバッファ部530〜トライステートバッファ部533と論理和否定部540とワイヤードオア部550とタグ入力部501とインデックス入力部502とキャッシュミス信号出力部503とデータ出力部504とから構成される。
タグ入力部501は、図5中に図示されないプロセッサ101と、比較器部510〜比較器部513とに接続され、プロセッサ101から送られて来たアドレスを構成するタグを受け取った場合に、受け取ったタグを比較器部510〜比較器部513へ送る機能を有する。
インデックス入力部502は、図5中に図示されないプロセッサ101と、第0ウェイ310〜第3ウェイ313とに接続され、プロセッサ101から送られて来たアドレスを構成するインデックスを受け取った場合に、読出信号と受け取ったインデックスとを第0ウェイ310〜第3ウェイ313へ送る機能を有する。
第0ウェイ310は、前述したように、インデックスによって指定されるライン記憶領域を複数備えるSRAMであって、インデックス入力部502と比較器部510と論理和部520とトライステートバッファ部530とに接続される。
比較器部510〜比較器部513は、それぞれ、互いに同等の機能を有する。よって、ここでは、これらの比較器部の代表として、比較器部510の説明を行う。
比較器部510は、タグ入力部501と第0ウェイ310と論理和部520とに接続され、タグ入力部501と第0ウェイ310とのそれぞれからタグが送られてくると、それらのタグを比較し、それらのタグが一致する場合に論理値“1”の信号を出力し、それらのタグが一致しない場合に論理値“0”の信号を出力する機能を有する。
論理和部520〜論理和部523は、それぞれ互いに同等の機能を有する。よって、ここでは、これらの論理和部の代表として、論理和部520の説明を行う。
論理和部520は、比較器部510と第0ウェイ310とトライステートバッファ部530と論理和否定部540とに接続され、比較器部510から送られてくる信号と第0ウェイ310から出力されるバリッドビットとの論理和信号を出力する機能を有する。
トライステートバッファ部530〜トライステートバッファ部533は、それぞれ互いに同等の機能を有する。よって、ここでは、これらのトライステートバッファ部の代表として、トライステートバッファ部530の説明を行う。
トライステートバッファ部530は、第0ウェイ310と論理和部520とワイヤードオア部550とに接続され、論理和部520から出力される信号が論理値“0”の場合に出力がハイインピーダンス状態となり、論理和部520から出力される信号が論理値“1”の場合に第0ウェイ310から出力されるデータを出力する機能を有する。
論理和否定部540は、論理和部520〜論理和部523と、キャッシュミス信号出力部503とに接続され、論理和部520〜論理和部523から出力される信号の論理和否定信号を生成して、キャッシュミス信号として出力する機能を有する。
ワイヤードオア部550は、トライステートバッファ部530〜トライステートバッファ部533と、データ出力部504とに接続され、トライステートバッファ部530〜トライステートバッファ部533のワイヤードオア信号を生成して、データ信号として出力する機能を有する。
キャッシュミス信号出力部503は、論理和否定部540と図5中に図示されないプロセッサ101と図5中に図示されないMPU104とに接続され、論理和否定部540から出力されるキャッシュミス信号を、プロセッサ101とMPU104とに出力する機能を有する。
データ出力部504は、ワイヤードオア部550と図5中に図示されないプロセッサ101とに接続され、ワイヤードオア部550から出力されるデータ信号を、プロセッサ101に出力する機能を有する。
図6は、前述のデータ格納機能を実現するデータ格納機能ブロックの機能ブロック図である。このデータ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、データ格納機能ブロックは、第0ウェイ310〜第3ウェイ313と置換対象選択部610とライトバック部620と格納部630とから構成される。
置換対象選択部610は、プロセッサ101とライトバック部620と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、第0ウェイ310〜第3ウェイ313のうちのいずれかにデータを格納する必要が生じた場合に、データを格納すべき1つのウェイを、これら4つのウェイの中から選択する機能を有する。
図7は、置換対象選択部610の機能構成を示す機能ブロック図である。
同図に示されるように、置換対象選択部610は、第0参照時刻計算部700と第1参照時刻計算部710と第2参照時刻計算部720と第3参照時刻計算部730と選択部740とから構成される。
第0参照時刻計算部700〜第3参照時刻計算部730は、それぞれ、互いに同等の機能を有している。よって、以下、特別な断りがある場合を除いて、これらの参照時刻計算部の代表として、第0参照時刻計算部700について説明する。
第0参照時刻計算部700は、プロセッサ101と格納部630と第0ウェイ310と選択部740とに接続され、第0ウェイ310から読み出されたバリッドビットとOS識別子とカウンタ値とを参照して、参照時刻情報(後述)を生成する機能を有する。
図7に示されるように、第0参照時刻計算部700は、さらに、テーブル更新部701と開放レベルテーブル記憶部702と参照時刻情報更新部705と参照時刻情報保持部706とから構成される。
開放レベルテーブル記憶部702は、テーブル更新部701と参照時刻情報更新部705とに接続され、開放レベルテーブルを記憶する機能を有する。
開放レベルテーブルは、OS識別子703と状態704とが対応付けられてなるテーブルである。
OS識別子703は、プロセッサ101の実行制御対象となるOSを識別するための識別子であって、プロセッサ101の実行制御対象となるOS毎に予め設定されている。
状態704は、対応付けられているOS識別子によって識別されるOSの状態を示す情報であって、対応するOSが、プロセッサ101によって起動されているが、過去にプロセッサ101が発行したスリープ命令によって、そのOSが現にスリープ状態となっていることを示すスリープ(SLEEP)状態と、対応するOSが、スリープ状態以外の状態となっていることを示すラン(RUN)状態との2つの状態のうちのいずれかの状態を示す。
例えば、開放レベルテーブル記憶部702が記憶する開放レベルテーブルによると、セキュアOSがスリープ状態であり、第1OSがラン状態であり、第nOSがラン状態であることがわかる。
テーブル更新部701は、プロセッサ101と開放レベルテーブル記憶部702とに接続され、プロセッサ101によって発行されたスリープ命令とウェイクアップ命令とを検知して、開放レベルテーブル記憶部702が記憶する開放レベルテーブルを更新する機能を有する。
参照時刻情報更新部705は、格納部630と開放レベルテーブル記憶部702と第0ウェイ310と参照時刻情報保持部706とに接続され、以下の3つの機能を有する。
読出機能:格納部630からインデックスを受け取ると、受け取ったインデックスで指定される、第0ウェイ310のライン記憶領域に記憶されている、バリッドビットとOS識別子とカウンタ値とを読み出す機能。
状態ビット生成機能:第0ウェイ310からOS識別子を読み出した場合に、開放レベルテーブル記憶部702に記憶されている開放レベルテーブルを参照して、読み出したOS識別子によって識別されるOSが、(1)通常OSであって、かつ(2)スリープ状態である場合に論理値“1”となり、それ以外の場合に論理値“0”となる状態ビットを生成する機能。
参照時刻情報更新機能:第0ウェイ310からバリッドビットとOS識別子とカウンタ値とを読み出した場合において、状態ビットを生成したときに、第0ウェイ310から読み出したバリッドビットとカウンタ値と、生成した状態ビットとを用いて、参照時刻情報更新部705が記憶する参照時刻情報(後述)を更新する機能。
参照時刻情報保持部706は、参照時刻情報更新部705と選択部740とに接続され、参照時刻情報を記憶する機能を有する。
参照時刻情報は、参照時刻情報更新部705によって第0ウェイ310から読み出されたバリッドビットの反転信号である1ビットのインバリッドビットと、参照時刻情報更新部705によって生成された1ビットの状態ビットと、参照時刻情報更新部705によって第0ウェイ310から読み出された2ビットのカウンタ値とからなる4ビットの信号からなる。
選択部740は、第0参照時刻計算部700〜第3参照時刻計算部730とライトバック部620とに接続され、(1)第0参照時刻計算部700の参照時刻情報保持部706に記憶されている、第0ウェイ310に対応する参照時刻情報と、(2)第1参照時刻計算部710の参照時刻情報保持部716に記憶されている、第1ウェイ311に対応する参照時刻情報と、(3)第2参照時刻計算部720の参照時刻情報保持部736に記憶されている、第2ウェイ312に対応する参照時刻情報と、(4)第3参照時刻計算部730の参照時刻情報保持部746に記憶されている、第3ウェイ313に対応する参照時刻情報とを比較して、これらの4つの参照時刻情報のうち、最も大きな値を示す参照時刻情報に対応するウェイを選択して、選択したウェイを特定するウェイ選択信号を、ライトバック部620へ送る機能を有する。ここで、最も大きな値を示す参照時刻情報が複数ある場合には、最も小さなウェイ番号のウェイを選択する。
図8は、参照時刻情報が取り得る値を模式的に示した模式図である。
同図に示されるように、参照時刻情報は、上位ビット側から順に、1ビットのインバリッドビット801と1ビットの状態ビット802と2ビットのカウンタ値803とから構成される。
参照時刻情報810は、インバリッドビット801の論理値が“1”である場合における、参照時刻情報を示し、参照時刻情報820は、インバリッドビット801の論理値が“0”であり、状態ビット802の論理値が“1”である場合における、参照時刻情報を示し、参照時刻情報830〜参照時刻情報833は、インバリッドビット801の論理値が“0”であり、状態ビット802の論理値が“0”である場合における、参照時刻情報を示している。
同図に示されるように、インバリッドビット801の論理値が“1”である参照時刻情報の方が、インバリッドビット801の論理値が“0”である参照時刻情報よりも大きな値となる。このことによって、選択部740は、選択対象となる4つの参照時刻情報の中にインバリッドビット801の論理値が“1”となるものが存在する場合には、インバリッドビット801の論理値が“1”となる参照時刻情報に対応するウェイの中から、ウェイを選択することとなる。これは、すなわち、選択部740が、ウェイの選択を行う場合に、無効なデータが保持されているウェイの方を、有効なデータが保持されているウェイよりも優先して選択することを示している。
また、インバリッドビット801の論理値が“0”である参照時刻情報については、状態ビット802の論理値が“1”である参照時刻情報の方が、状態ビット802の論理値が“0”である参照時刻情報よりも大きな値となる。このことによって、選択部740は、選択対象となる4つの参照時刻情報の中に状態ビット802の論理値が“1”となるものが存在する場合には、状態ビット802の論理値が“1”となる参照時刻情報に対応するウェイの中から、ウェイを選択することとなる。これは、すなわち、選択部740が、無効なデータが保持されているウェイが存在しない場合においてウェイの選択を行うときに、スリープ状態である通常OSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方を、それ以外のウェイよりも優先して選択することを示している。
これに対して、選択部740が行うウェイの選択において、スリープ状態であるセキュアOSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、他のウェイに対して特段優先されることはない。
再び図6に戻って、データ格納機能ブロックの説明を続ける。
ライトバック部620は、内部バス120と置換対象選択部610と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、以下の3つの機能を有する。
ライトバック機能:格納部630からインデックスを受け取った場合において、置換対象選択部610からウェイ選択信号を受け取ったときに、置換対象選択部610から受け取ったウェイ選択信号によって特定されるウェイにおける、格納部630から受け取ったインデックスによって指定されるライン記憶領域に保持されているバリッドビットの論理値とダーティビットの論理値との双方が“1”であれば、そのライン記憶領域に保持されているデータをメインメモリ103に書き戻す書戻処理を行う機能。ここで、メインメモリ103への書き戻しは、そのライン記憶領域に保持されているタグと受け取ったインデックスとによって構成されるアドレスを用いて行う。
ダーティビット更新機能:書戻処理を行った場合に、書戻処理の対象となったライン記憶領域に保持されているダーティビットの論理値を“0”に更新して、置換対象選択部610から受け取ったウェイ選択信号と、ダーティビットの論理値を“0”に更新した旨を示すダーティビット更新信号とを格納部630に送る機能。
スルー機能:格納部630からインデックスを受け取った場合において、置換対象選択部からウェイ選択信号を受け取ったときに、受け取ったウェイ選択信号によって特定されるウェイにおける、受け取ったインデックスによって指定されるライン記憶領域に保持されているバリッドビットの論理値とダーティビットの論理値との少なくとも一方が“0”であれば、書き戻しを行わずに、置換対象選択部610から受け取ったウェイ選択信号と、バリッドビットの論理値とダーティビットの論理値との少なくとも一方が“0”である旨を示すスルー信号とを格納部630に送る機能。
格納部630は、プロセッサ101と内部バス120と置換対象選択部610とライトバック部620とに接続され、以下の2つの機能を有する。
インデックス送信機能:キャッシュメモリ102が、新たにプロセッサ101が利用するデータを格納する場合において、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取った場合に、受け取ったインデックスを置換対象選択部610とライトバック部620へと送るインデックス送信処理を行う機能。
格納機能:インデックス送信処理を行った場合において、(1)ライトバック部620からダーティビット更新信号とウェイ選択信号とを受け取ったとき、又は(2)ライトバック部620からスルー信号とウェイ選択信号とを受け取ったときに、(A)ライトバック部620から受け取ったウェイ選択信号と、プロセッサ101から受け取ったインデックスとによって指定されるライン記憶領域(以下、「指定ライン記憶領域」と呼ぶ。)に、プロセッサ101から受け取ったタグと、プロセッサ101又はメインメモリ103から受け取ったデータとを格納して、(B)指定ライン記憶領域に保持されている、ダーティビットとバリッドビットとOS識別子とセキュアビットとを更新して、(C)第0ウェイ310〜第3ウェイ313における、プロセッサ101から受け取ったインデックスによって指定される各ライン記憶領域に保持されているカウンタ値のそれぞれを更新する機能。ここで、格納部630は、ダーティビットの更新を、ダーティビットの論理値が“0”となるように行い、バリッドビットの更新を、バリッドビットの論理値が“1”となるように行い、OS識別子の更新を、プロセッサ101から受け取ったOS識別子を用いて行い、セキュアビットの更新を、プロセッサから受け取ったタグとインデックスとで構成されるアドレスが、セキュア領域を指定するものであるか否かに基づいて行い、カウンタ値の更新を、より過去にデータが格納されたライン記憶領域であるほど、より値が大きくなるように行う。
以上のように構成される仮想計算機システム100の行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、仮想計算機システム100の行う動作のうち、特徴的な動作である格納処理について説明する。
<格納処理>
格納処理は、キャッシュメモリ102が、内蔵する第0ウェイ310〜第3ウェイ313のいずれかに、プロセッサ101が利用するデータを新たに格納する処理である。
図9は、格納処理のフローチャートである。
格納処理は、格納部630が、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取ったことで開始される。
格納処理が開始されると、格納部630は、プロセッサ101から受け取ったインデックスを置換対象選択部610とライトバック部620へと送る(ステップS900)。
格納部630からインデックスが送られてくると、置換対象選択部610は、第0ウェイ310〜第3ウェイ313のそれぞれから、そのインデックスで指定されるライン記憶領域に記憶されている、バリッドビットとOS識別子とカウンタ値とを読み出す(ステップS910)。
そして、置換対象選択部610は、第0ウェイ310〜第3ウェイ313のそれぞれについて、読み出したバリッドビットとOS識別子とカウンタ値と、記憶する開放レベルテーブルとから、記憶する参照時刻情報を更新する(ステップS920)。
第0ウェイ310〜第3ウェイ313のそれぞれについての参照時刻情報を更新すると、置換対象選択部610は、これら参照時刻情報のうち、最も値の大きな値を示す参照時刻情報に対応するウェイを選択して、この選択したウェイを特定するウェイ選択信号を、ライトバック部620へ送る(ステップS930)。
置換対象選択部610からウェイ選択信号が送られてくると、ライトバック部620は、置換対象選択部610から受け取ったウェイ選択信号によって特定されるウェイにおける、格納部630から受け取ったインデックスによって指定されるライン記憶領域に保持されているバリッドビットの論理値とダーティビットの論理値との双方が“1”であるか否かを調べる(ステップS940)。
ステップS940の処理において、バリッドビットの論理値とダーティビットの論理値との双方が“1”である場合に(ステップS940:Yes)、ライトバック部620は、そのライン記憶領域に保持されているデータをメインメモリ103に書き戻して(ステップS950)、そのライン記憶領域に保持されているダーティビットの論理値を“0”に更新して(ステップS960)、置換対象選択部610から受け取ったウェイ選択信号と、ダーティビットの論理値を“0”に更新した旨を示すダーティビット更新信号とを格納部630に送る。
ステップS940の処理において、バリッドビットの論理値とダーティビットの論理値との少なくとも一方が“0”である場合に(ステップS940:No)、ライトバック部620は、書き戻しを行わずに、置換対象選択部610から受け取ったウェイ選択信号と、バリッドビットの論理値とダーティビットの論理値との少なくとも一方が“0”である旨を示すスルー信号とを格納部630に送る(ステップS970)。
ステップS960の処理が終了した場合、又はステップS970の処理が終了した場合に、格納部630は、ライトバック部620から受け取ったウェイ選択信号と、プロセッサ101から受け取ったインデックスとによって指定されるライン記憶領域に、プロセッサから受け取ったタグと、プロセッサ101又はメインメモリ103から受け取ったデータとを格納する(ステップS980)。さらに、格納部630は、ライトバック部620から受け取ったウェイ選択信号と、プロセッサ101から受け取ったインデックスとによって指定されるライン記憶領域に保持されている、ダーティビットとバリッドビットとOS識別子とセキュアビットとを更新して、第0ウェイ310〜第3ウェイ313における、プロセッサ101から受け取ったインデックスによって指定される各ライン記憶領域に保持されているカウンタ値のそれぞれを更新する(ステップS990)。
ステップS990の処理が終了すると、キャッシュメモリ102は、その格納処理を終了する。
<考察>
一般に、キャッシュメモリを有する仮想計算機システムにおいて、キャッシュメモリに保持されているデータのうち、スリープ状態である通常OSがプロセッサによって実行制御されていた際にメインメモリから読み出されたデータは、しばらくの間(そのOSがスリープ状態である期間)、プロセッサによって利用される可能性が低くなることが知られている。
上記構成の仮想計算機システム100は、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに格納する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、スリープ状態である通常OSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、それ以外のウェイよりも優先されるように行う。
このことにより、仮想計算機システム100は、スリープ状態である通常OSが存在している場合に、キャッシュメモリ102を比較的効率的に利用することができる。
一方、セキュアOSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータは、セキュア記憶領域から読み出された可能性がある。
セキュアOSがスリープ状態である場合、すなわち、プロセッサ101によって通常OSが実行制御されている状態である場合おいて、セキュア記憶領域から読み出されたデータを書き戻そうとすると、一旦、プロセッサ101の動作モードをセキュアモードに切り替える必要があるため、実行するOSを通常OSからセキュアOSへと切り替えなければならない。そして、この切り替えには、比較的大きな処理時間がかかってしまう。
上記構成の仮想計算機システム100は、セキュアOSがスリープ状態である場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、スリープ状態であるセキュアOSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、それ以外のウェイよりも優先されるように行うことはない。
このことにより、仮想計算機システム100は、スリープ状態である通常OSとスリープ状態であるセキュアOSとを同等に取り扱う従来の仮想計算機システムに比べて、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が低減される可能性が高くなっている。
なお、一般に、セキュアOSがプロセッサによって実行制御されていた際にメインメモリから読み出されたデータは、必ずしもセキュア領域から読み出されたものであるとは限られない。しかしながら、仮想計算機システム100において、プロセッサ101によって実行制御されているセキュアOSが取り扱うデータの全てが、セキュア領域に記憶されているように運用することも可能である。そして、この場合、ライン記憶領域に格納されているOS識別子がセキュアOSを示していることが、そのライン記憶領域に記憶されているデータがセキュア領域から読み出されたものであることを示すこととなる。
<実施の形態2>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1における仮想計算機システム100の一部を変形した第1変形仮想計算機システムについて説明する。
実施の形態2に係る第1変形仮想計算機システムは、そのハードウエア構成が実施の形態1に係る仮想計算機システム100と同一のものであるが、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が実施の形態1に係る仮想計算機システム100と異なっている。
実施の形態1に係る仮想計算機システム100は、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに記憶する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、スリープ状態である通常OSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、それ以外のウェイよりも優先されるように行う構成の例であった。これに対して、実施の形態2に係る第1変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てを一気に開放する構成の例である。ここで、ライン記憶領域を開放するとは、対象となるライン記憶領域に格納されているデータについて、メインメモリ103との間のコヒーレンシが保証されている状態とした上で、対象となるライン記憶領域のバリッドビットの論理値を“0”とすることをいう。
以下、本実施の形態2に係る第1変形仮想計算機システムの構成について、図面を参照しながら、実施の形態1に係る仮想計算機システム100との相違点を中心に説明する。
<構成>
第1変形仮想計算機システムのハードウエア構成は、実施の形態1に係る仮想計算機システム100のハードウエア構成と同一のものである。よって、ここではその説明を省略する。
これに対して、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が、実施の形態1に係る仮想計算機システム100から変形されている。そして、このことによって、実施の形態1に係る仮想計算機システム100においてキャッシュメモリ102が実現していたデータ格納機能が、第1変形データ格納機能に変形されている。
以下、この第1変形データ格納機能について図面を用いて説明する。
図10は、第1変形データ格納機能を実現する第1変形データ格納機能ブロックの機能ブロック図である。この第1変形データ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、第1変形データ格納機能ブロックは、実施の形態1に係るデータ格納機能ブロックから、置換対象選択部610が置換対象選択部1010に変形され、ライトバック部620がライトバック部1020に変形されている。
置換対象選択部1010は、プロセッサ101とライトバック部1020と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、以下の2つの機能を有する。
第1変形読出機能:格納部630からインデックスを受け取ると、受け取ったインデックスで指定される、第0ウェイ310〜第3ウェイ313のライン記憶領域のそれぞれに記憶されている、バリッドビットとカウンタ値とを読み出す読出処理を行う機能。
ウェイ選択機能:読出処理を行った場合に、各ウェイについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる3ビットの選択用ビット列を生成し、生成した4つの選択用ビット列のうち、最も大きな値を示す選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部1020へ送る機能。ここで、最も大きな値を示す選択用ビット列が複数ある場合には、最も小さなウェイ番号のウェイを選択する。
ライトバック部1020は、プロセッサ101と内部バス120と置換対象選択部1010と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、実施の形態1に係るライトバック部620の有するライトバック機能とダーティビット更新機能とスルー機能とに加えて、以下の2つの機能を有する。
セキュアビット検索機能:プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知して、第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となるライン記憶領域が存在するか否かを調べて、セキュアビットの論理値が“1”となるライン記憶領域が存在する場合に、それらのライン記憶領域のそれぞれについて、ライン記憶領域を指定するウェイ番号とインデックスとを取得するセキュアビット探索処理を行う機能。
セキュアデータ書戻機能:セキュアビット探索処理を行った場合において、ライン記憶領域を指定するウェイ番号とインデックスとの組を1組以上取得した場合に、それらの組それぞれによって指定されるライン記憶領域の全てについて、ライン記憶領域に保持されているデータを連続してメインメモリ103に書き戻して、それらの組それぞれによって指定されるライン記憶領域の全てについて、バリッドビットの論理値を“0”に更新する機能。
以上のように構成される第1変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、第1変形仮想計算機システムの行う動作のうち、特徴的な動作である第1変形データ格納処理とスリープ命令発行時処理とについて説明する。
<第1変形データ格納処理>
第1変形データ格納処理は、キャッシュメモリ102が、内蔵する第0ウェイ310〜第3ウェイ313のいずれかに、プロセッサ101が利用するデータを新たに格納する処理である。
図11は、第1変形データ格納処理のフローチャートである。
第1変形データ格納処理は、格納部630が、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取ったことで開始される。
第1変形データ格納処理が開始されると、格納部630は、プロセッサ101から受け取ったインデックスを置換対象選択部1010とライトバック部620へと送る(ステップS1100)。
格納部630からインデックスが送られてくると、置換対象選択部1010は、第0ウェイ310〜第3ウェイ313のそれぞれから、そのインデックスで指定されるライン記憶領域に記憶されている、バリッドビットとカウンタ値とを読み出す(ステップS1110)。そして、置換対象選択部1010は、各ウェイについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる3ビットの選択用ビット列を生成し、生成した4つの選択用ビット列のうち、最も大きな値を示す選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部620へ送る(ステップS1120)。
ステップS1140の処理〜ステップS1190の処理のそれぞれは、実施の形態1に係る格納処理(図9参照)における、ステップS940の処理〜ステップS990の処理のそれぞれにおいて、置換対象選択部610を置換対象選択部1010に読み替えて、ライトバック部620をライトバック部1020に読み替えたものと同等の処理となっている。よってここでは、これらの説明を省略する。
ステップS1190の処理が終了すると、キャッシュメモリ102は、その第1変形データ格納処理を終了する。
<スリープ命令発行時処理>
スリープ命令発行時処理は、キャッシュメモリ102が行う処理であって、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、セキュアビットの論理値が“1”となるライン記憶領域の全てを開放する処理である。
図12は、スリープ命令発行時処理のフローチャートである。
スリープ命令発行時処理は、ライトバック部1020が、プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知することで開始される。
スリープ命令発行時処理が開始されると、ライトバック部1020は、第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となるライン記憶領域が存在するか否かを調べる(ステップS1200)。
ステップS1200の処理において、該当するライン記憶領域が存在する場合(ステップS1200:Yes)に、ライトバック部1020は、それらのライン記憶領域のそれぞれについて、ライン記憶領域を指定するウェイ番号とインデックスとを取得する(ステップS1210)。そして、ライトバック部1020は、さらに、取得したウェイ番号とインデックスとの組それぞれによって指定されるライン記憶領域の全てについて、ライン記憶領域に保持されているデータを連続してメインメモリ103に書き戻して(ステップS1220)、それらの組それぞれによって指定されるライン記憶領域の全てについて、バリッドビットの論理値を“0”に更新する(ステップS1230)。
ステップS1230の処理が終了した場合、又は、ステップS1200の処理において、該当するライン記憶領域が存在しない場合(ステップS1200:No)に、キャッシュメモリ102は、そのスリープ命令発行時処理を終了する。
<考察>
上記構成の第1変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てを一気に開放することとなる。
このことによって、この第1変形仮想計算機システムは、セキュアOSがスリープ状態である期間中において、セキュアビットの論理値が“1”となるライン記憶領域を解放した以降に、通常OS実行制御時におけるセキュア領域への書き戻しが発生しなくなる。
従って、この第1変形仮想計算機システムは、プロセッサがセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリが、セキュアビットの論理値が“1”となるライン記憶領域の全てを一気に開放しない従来の仮想計算機システムに比べて、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が低減される可能性が高くなっている。
<実施の形態3>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態2における第1仮想計算機システムの一部を変形した第2変形仮想計算機システムについて説明する。
実施の形態3に係る第2変形仮想計算機システムは、そのハードウエア構成が実施の形態2に係る第1変形仮想計算機システムと同一のものであるが、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が実施の形態2に係る第1変形仮想計算機システムと異なっている。
実施の形態2に係る第1変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てを一気に開放する構成の例であって、プロセッサ101の発行するスリープ命令が複数種存在し、スリープ命令のそれぞれが、複数の電力削減レベルのうちのいずれかに属しているとしても、それらのスリープ命令の属する電力削減レベルを考慮することがない構成の例であった。これに対して実施の形態3に係る第2変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域を一気に開放する構成の例ではあるが、その発行されたスリープ命令の属する電力レベルに応じて、開放するライン記憶領域の適用範囲を制限する構成の例である。
以下、本実施の形態3に係る第2変形仮想計算機システムの構成について、図面を参照しながら、実施の形態2に係る第1変形仮想計算機システムとの相違点を中心に説明する。
<構成>
第2変形仮想計算機システムのハードウエア構成は、実施の形態2に係る第1変形仮想計算機システムのハードウエア構成と同一のものである。よって、ここではその説明を省略する。
これに対して、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が、実施の形態2に係る第1変形仮想計算機システムから変形されている。そして、このことによって、実施の形態2に係る第1変形仮想計算機システムにおいてキャッシュメモリ102が実現していた第1変形データ格納機能が、第2変形データ格納機能に変形されている。
また、プロセッサ101が発行するスリープ命令は複数種存在し、各スリープ命令は、それぞれ互いに電力削減レベルの異なる4種のスリープ命令種のいずれかに属している。そして、スリープ命令のそれぞれは、電力削減レベルを示す2ビットの電力削減レベル情報(EV)に対応付けられている。
図13は、スリープ命令のスリープ命令種と電力削減レベル情報(EV)との対応関係を示す対応表である。
同図に示される通り、この対応表は、スリープ命令種1300と電力削減レベル1310と電力削減レベル情報(EV)1320とが対応付けられて構成されている。
スリープ命令種1300は、スリープ命令が属するスリープ命令の種類であって、スリープ命令には、INST0、INST1、INST2、INST3との4つの種類が存在している。
電力削減レベル1310は、対応するスリープ命令種1300の電力削減レベルを示している。ここで、電力削減レベルとは、スリープの深さのレベルのことである。そして、電力削減レベルがより小さい程、スリープの深さのレベルがより深いことを示している。
電力削減レベル情報(EV)1320は、対応するスリープ命令種1300に対応付けられた2ビットのビット列であり、対応するスリープ命令種1300の電力削減レベルがより小さい程、より小さな値となっている。
以下、第2変形データ格納機能について図面を用いて説明する。
図14は、第2変形データ格納機能を実現する第2変形データ格納機能ブロックの機能ブロック図である。この第2変形データ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、第2変形データ格納機能ブロックは、実施の形態2に係る第1変形データ格納機能ブロックから、ライトバック部1020がライトバック部1420に変形されている。
ライトバック部1420は、プロセッサ101と内部バス120と置換対象選択部1010と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、実施の形態2に係るライトバック部1020の有するライトバック機能とダーティビット更新機能とスルー機能とに加えて、以下の2つの機能を有する。
変形セキュアビット検索機能:プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知して、(1)第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となり、かつ、(2)カウンタ値が、そのスリープ命令に対応する電力削減レベル情報(EV)の値以上となるライン記憶領域が存在するか否かを調べて、該当するライン記憶領域が存在する場合に、それらのライン記憶領域のそれぞれについて、ライン記憶領域を指定するウェイ番号とインデックスとを取得する変形セキュアビット探索処理を行う機能。
変形セキュアデータ書戻機能:変形セキュアビット探索処理を行った場合において、ライン記憶領域を指定するウェイ番号とインデックスとの組を1組以上取得した場合に、それらの組それぞれによって指定されるライン記憶領域の全てについて、ライン記憶領域に保持されているデータを連続してメインメモリ103に書き戻して、それらの組それぞれによって指定されるライン記憶領域の全てについて、バリッドビットの論理値を“0”に更新する機能。
以上のように構成される第2変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、第2変形仮想計算機システムの行う動作のうち、実施の形態2に係る第1変形仮想計算機システムの行うスリープ命令発行時処理から一部の処理が変形された第1変形スリープ命令発行時処理について説明する。
<第1変形スリープ命令発行時処理>
第1変形スリープ命令発行時処理は、キャッシュメモリ102が行う処理であって、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、セキュアビットの論理値が“1”となり、かつ、カウンタ値が、そのスリープ命令に対応する電力削減レベル情報(EV)の値以上となるライン記憶領域の全てを開放する処理である。
図15は、第1変形スリープ命令発行時処理のフローチャートである。
第1変形スリープ命令発行時処理は、ライトバック部1420が、プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知することで開始される。
この第1変形スリープ命令発行時処理は、実施の形態2に係る第1変形仮想計算機システムの行うスリープ命令発行時処理(図12参照)から、ステップS1200の処理がステップS1500の処理に変形され、ステップS1510の処理〜ステップS1530の処理のそれぞれは、ステップS1210の処理〜ステップS1230の処理のそれぞれにおいて、ライトバック部1020をライトバック部1420に読み替えたものと同等の処理となっている。よってここではステップS1500の処理について説明する。
第1変形スリープ命令発行時処理が開始されると、ライトバック部1420は、第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となり、かつ、カウンタ値が、そのスリープ命令に対応する電力削減レベル情報(EV)の値以上となるライン記憶領域が存在するか否かを調べる(ステップS1500)。
ステップS1500の処理において、該当するライン記憶領域が存在する場合(ステップS1500:Yes)に、ステップS1510以下の処理を行う。
ステップS1530の処理が終了した場合、又は、ステップS1500の処理において、該当するライン記憶領域が存在しない場合(ステップS1500:No)に、キャッシュメモリ102は、その第1変形スリープ命令発行時処理を終了する。
<考察>
上記構成の第2変形仮想計算機システムは、実施の形態2に係る第2変形仮想計算機システムと比べて、スリープ命令の命令種に応じて、開放するライン記憶領域の範囲を制御することができるようになる。
<実施の形態4>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態2における第1変形仮想計算機システムの一部を変形した第3変形仮想計算機システムについて説明する。
実施の形態4に係る第3変形仮想計算機システムは、そのハードウエア構成が実施の形態2に係る第1変形仮想計算機システムと同一のものであるが、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が実施の形態2に係る第1変形仮想計算機システムと異なっている。
実施の形態2に係る第1変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てを一気に開放する構成の例であった。これに対して、実施の形態4に係る第3変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てについて、同一インデックスで指定されるウェイのカウンタ値のそれぞれを、セキュアビットの論理値が“1”となるライン記憶領域のカウンタ値の方が、セキュアビットの論理値が“0”となるライン記憶領域のカウンタ値よりも小さくなるように更新する構成の例である。
以下、本実施の形態4に係る第3変形仮想計算機システムの構成について、図面を参照しながら、実施の形態2に係る第1変形仮想計算機システムとの相違点を中心に説明する。
<構成>
第3変形仮想計算機システムのハードウエア構成は、実施の形態2に係る第1変形仮想計算機システムのハードウエア構成と同一のものである。よって、ここではその説明を省略する。
これに対して、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が、実施の形態2に係る第1変形仮想計算機システムから変形されている。そして、このことによって、実施の形態2に係る第1変形仮想計算機システムにおいてキャッシュメモリ102が実現していた第1変形データ格納機能が、第3変形データ格納機能に変形されている。
以下、この第3変形データ格納機能について図面を用いて説明する。
図16は、第3変形データ格納機能を実現する第3変形データ格納機能ブロックの機能ブロック図である。この第3変形データ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、第3変形データ格納機能ブロックは、実施の形態2に係る第1変形データ格納機能ブロックから、ライトバック部1020がライトバック部1620に変形されている。
ライトバック部1620は、プロセッサ101と内部バス120と置換対象選択部1010と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、実施の形態2に係るライトバック部1020の有するライトバック機能とダーティビット更新機能とスルー機能とに加えて、以下の2つの機能を有する。
第2変形セキュアビット探索機能:プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知して、第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となるライン記憶領域が存在するか否かを調べて、セキュアビットの論理値が“1”となるライン記憶領域が存在する場合に、それらのライン記憶領域について、ライン記憶領域を指定するインデックスを取得する第2変形セキュアビット探索処理を行う機能。
カウンタ値更新機能:第2変形セキュアビット探索処理を行った場合において、ライン記憶領域を指定するインデックスを1つ以上取得した場合に、それらのインデックスの全てについて、同一インデックスで指定されるウェイのカウンタ値のそれぞれを、セキュアビットの論理値が“1”となるライン記憶領域のカウンタ値の方が、セキュアビットの論理値が“0”となるライン記憶領域のカウンタ値よりも小さくなるように更新する機能。
以上のように構成される第3変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、第3変形仮想計算機システムの行う動作のうち、実施の形態2に係る第1変形仮想計算機システムの行うスリープ命令発行時処理から一部の処理が変形された第2変形スリープ命令発行時処理について説明する。
<第2変形スリープ命令発行時処理>
第2変形スリープ命令発行時処理は、キャッシュメモリ102が行う処理であって、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、セキュアビットの論理値が“1”となるライン記憶領域の全てについて、同一インデックスで指定されるウェイのカウンタ値のそれぞれを、セキュアビットの論理値が“1”となるライン記憶領域のカウンタ値の方が、セキュアビットの論理値が“0”となるライン記憶領域のカウンタ値よりも小さくなるように更新する処理である。
図17は、第2変形スリープ命令発行時処理のフローチャートである。
第1変形スリープ命令発行時処理は、ライトバック部1420が、プロセッサ101によって発行された、セキュアOSをスリープ状態とするスリープ命令を検知することで開始される。
第2変形スリープ命令発行時処理が開始されると、ライトバック部1620は、第0ウェイ310〜第3ウェイ313の中から、セキュアビットの論理値が“1”となるライン記憶領域が存在するか否かを調べる(ステップS1700)。
ステップS1700の処理において、該当するライン記憶領域が存在する場合(ステップS1700:Yes)に、ライトバック部1620は、該当するライン記憶領域それぞれについて、同一インデックスで指定されるウェイのカウンタ値のそれぞれを、セキュアビットの論理値が“1”となるライン記憶領域のカウンタ値の方が、セキュアビットの論理値が“0”となるライン記憶領域のカウンタ値よりも小さくなるように更新する(ステップS1710)。
ステップS1710の処理が終了した場合、又は、ステップS1700の処理において、該当するライン記憶領域が存在しない場合(ステップS1700:No)に、キャッシュメモリ102は、その第2変形スリープ命令発行時処理を終了する。
<考察>
上記構成の第3変形仮想計算機システムは、プロセッサ101がセキュアOSをスリープ状態とするスリープ命令を発行した場合に、キャッシュメモリ102が、セキュアビットの論理値が“1”となるライン記憶領域の全てについて、同一インデックスで指定されるウェイのカウンタ値のそれぞれを、セキュアビットの論理値が“1”となるライン記憶領域のカウンタ値の方が、セキュアビットの論理値が“0”となるライン記憶領域のカウンタ値よりも小さくなるように更新する。このことによって、セキュアOSがスリープ状態となる期間において、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が、従来よりも低減される可能性が高くなる。
<実施の形態5>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1における仮想計算機システム100の一部を変形した第4変形仮想計算機システムについて説明する。
実施の形態5に係る第4変形仮想計算機システムは、そのハードウエア構成が実施の形態1に係る仮想計算機システム100と同一のものであるが、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が実施の形態1に係る仮想計算機システム100と異なっている。
実施の形態1に係る仮想計算機システム100は、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに記憶する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、スリープ状態である通常OSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、それ以外のウェイよりも優先されるように行う構成の例であった。これに対して、実施の形態5に係る第4変形仮想計算機システムは、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに記憶する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、セキュアエリア以外から読み出されたデータが格納されているウェイの方が、セキュアエリアから読み出されたデータが格納されているウェイよりも優先されるように行う構成の例である。
以下、本実施の形態5に係る第4変形仮想計算機システムの構成について、図面を参照しながら、実施の形態1に係る仮想計算機システムとの相違点を中心に説明する。
<構成>
第4変形仮想計算機システムのハードウエア構成は、実施の形態1に係る仮想計算機システム100のハードウエア構成と同一のものである。よって、ここではその説明を省略する。
これに対して、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が、実施の形態1に係る仮想計算機システム100から変形されている。そして、このことによって、実施の形態1に係る仮想計算機システム100においてキャッシュメモリ102が実現していたデータ格納機能が、第4変形データ格納機能に変形されている。
以下、この第4変形データ格納機能について図面を用いて説明する。
図18は、第4変形データ格納機能を実現する第4変形データ格納機能ブロックの機能ブロック図である。この第4変形データ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、第4変形データ格納機能ブロックは、実施の形態1に係るデータ格納機能ブロックから、置換対象選択部610が置換対象選択部1810に変形されている。
置換対象選択部1810は、プロセッサ101とライトバック部620と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、以下の2つの機能を有する。
第2変形読出機能:格納部630からインデックスを受け取ると、受け取ったインデックスで指定される、第0ウェイ310〜第3ウェイ313のライン記憶領域のそれぞれに記憶されている、バリッドビットとセキュアビットとカウンタ値とを読み出す読出処理を行う機能。
第1変形ウェイ選択機能:読出処理を行った場合に、各ウェイについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出したセキュアビットの反転信号である1ビットの非セキュアビットが中位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる4ビットの変形選択用ビット列を生成し、生成した4つの変形選択用ビット列のうち、最も大きな値を示す変形選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部620へ送る機能。ここで、最も大きな値を示す変形選択用ビット列が複数ある場合には、最も小さなウェイ番号のウェイを選択する。
以上のように構成される第3変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、第4変形仮想計算機システムの行う動作のうち、特徴的な動作である第2変形データ格納処理について説明する。
<第2変形データ格納処理>
第2変形データ格納処理は、キャッシュメモリ102が、内蔵する第0ウェイ310〜第3ウェイ313のいずれかに、プロセッサ101が利用するデータを新たに格納する処理である。
図19は、第2変形データ格納処理のフローチャートである。
第2変形データ格納処理は、格納部630が、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取ったことで開始される。
第2変形データ格納処理が開始されると、格納部630は、プロセッサ101から受け取ったインデックスを置換対象選択部1810とライトバック部620へと送る(ステップS1900)。
格納部630からインデックスが送られてくると、置換対象選択部1810は、第0ウェイ310〜第3ウェイ313のそれぞれから、そのインデックスで指定されるライン記憶領域に記憶されている、バリッドビットとセキュアビットとカウンタ値とを読み出す(ステップS1910)。そして、置換対象選択部1810は、各ウェイについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出したセキュアビットの反転信号である1ビットの非セキュアビットが中位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる4ビットの変形選択用ビット列を生成し、生成した4つの変形選択用ビット列のうち、最も大きな値を示す変形選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部620へ送る(ステップS1920)。
ステップS1940の処理〜ステップS1990の処理のそれぞれは、実施の形態1に係る格納処理(図9参照)における、ステップS940の処理〜ステップS990の処理のそれぞれにおいて、置換対象選択部610を置換対象選択部1810に読み替えたものと同等の処理となっている。よってここでは、これらの説明を省略する。
ステップS1990の処理が終了すると、キャッシュメモリ102は、その第2変形データ格納処理を終了する。
<考察>
上記構成の第4変形仮想計算機システムは、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに記憶する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、セキュアエリア以外から読み出されたデータが格納されているウェイの方が、セキュアエリアから読み出されたデータが格納されているウェイよりも優先されるように行う。
このことによって、この第3変形仮想計算機システムは、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度を、従来よりも低減する可能性を高くすることができる。
<実施の形態6>
<概要>
以下、本発明に係る仮想計算機システムの一実施形態として、実施の形態1における仮想計算機システム100の一部を変形した第5変形仮想計算機システムについて説明する。
実施の形態6に係る第5変形仮想計算機システムは、そのハードウエア構成が実施の形態1に係る仮想計算機システム100と同一のものであるが、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が実施の形態1に係る仮想計算機システム100と異なっている。
実施の形態1に係る仮想計算機システム100は、キャッシュメモリ102が、プロセッサ101が利用するデータを新たに記憶する場合において、メインメモリ103への書き戻しが発生するときに、書き戻し対象とするウェイの選択を、スリープ状態である通常OSがプロセッサ101によって実行制御されていた際にメインメモリ103から読み出されたデータが格納されているウェイの方が、それ以外のウェイよりも優先されるように行う構成の例であった。これに対して、実施の形態6に係る第5変形仮想計算機システムは、キャッシュメモリ102が、格納するデータがセキュア記憶領域から読み出されたか否かを区別して、セキュア記憶領域以外の記憶領域から読み出されたデータを第0ウェイ310と第1ウェイ311とのいずれかに格納し、セキュア記憶領域から読み出されたデータを第2ウェイ312と第3ウェイ313とのいずれかに格納する構成の例である。
以下、本実施の形態6に係る第5変形仮想計算機システムの構成について、図面を参照しながら、実施の形態1に係る仮想計算機システム100との相違点を中心に説明する。
<構成>
第5変形仮想計算機システムのハードウエア構成は、実施の形態1に係る仮想計算機システム100のハードウエア構成と同一のものである。よって、ここではその説明を省略する。
これに対して、コントローラ301に内蔵される記憶素子に記憶されているプログラムの一部が、実施の形態1に係る仮想計算機システム100から変形されている。そして、このことによって、実施の形態1に係る仮想計算機システム100においてキャッシュメモリ102が実現していたデータ格納機能が、第5変形データ格納機能に変形されている。
以下、この第5変形データ格納機能について図面を用いて説明する。
図20は、第5変形データ格納機能を実現する第5変形データ格納機能ブロックの機能ブロック図である。この第5変形データ格納機能ブロックは、コントローラ301が内蔵する記憶素子に記憶されているプログラムを実行して、入出力回路302と、第0ウェイ310〜第3ウェイ313とを制御することで実現される。
同図に示されるように、第5変形データ格納機能ブロックは、実施の形態1に係るデータ格納機能ブロックから、置換対象選択部610が置換対象選択部2010に変形され、格納部630が格納部2030に変形されている。
置換対象選択部2010は、プロセッサ101とライトバック部620と格納部630と第0ウェイ310〜第3ウェイ313とに接続され、以下の2つの機能を有する。
第3変形読出機能:格納部2030からタグとインデックスを受け取ると、受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域を示しているか否かを調べ、(1)受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域を示している場合に、受け取ったインデックスで指定される、第0ウェイ310と第1ウェイ311とのライン記憶領域のそれぞれに記憶されている、バリッドビットとカウンタ値とを読み出すセキュア読出処理を行い、(2)受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域以外の記憶領域を示している場合に、受け取ったインデックスで指定される、第2ウェイ312と第3ウェイ313とのライン記憶領域のそれぞれに記憶されている、バリッドビットとカウンタ値とを読み出す非セキュア読出処理を行う機能。
第2変形ウェイ選択機能:(1)セキュア読出処理を行った場合に、第0ウェイ310と第1ウェイ311とについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる3ビットのセキュア選択用ビット列を生成し、生成した2つのセキュア選択用ビット列のうち、最も大きな値を示すセキュア選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部620へ送り、(2)非セキュア読出処理を行った場合に、第2ウェイ312と第3ウェイ313とについて、読み出したバリッドビットの反転信号である1ビットのインバリッドビットが上位ビット側、読み出した2ビットのカウンタ値が下位ビット側となる3ビットの非セキュア選択用ビット列を生成し、生成した2つの非セキュア選択用ビット列のうち、最も大きな値を示す非セキュア選択用ビット列に対応するウェイを選択して、このウェイを特定するウェイ選択信号を、ライトバック部620へ送る機能。ここで、最も大きな値を示す選択用ビット列が複数ある場合には、最も小さなウェイ番号のウェイを選択する。
格納部630は、プロセッサ101と内部バス120と置換対象選択部610とライトバック部620とに接続され、実施の形態1に係る格納機能に加えて、以下の変形インデックス送信機能を有する。
変形インデックス送信機能:キャッシュメモリ102が、新たにプロセッサ101が利用するデータを格納する場合において、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取った場合に、受け取ったタグとインデックスとを置換対象選択部2010へ送り、受け取ったインデックスをライトバック部620へ送る変形インデックス送信処理を行う機能。
以上のように構成される第5変形仮想計算機システムの行う動作について、以下図面を参照しながら説明する。
<動作>
ここでは、第5変形仮想計算機システムの行う動作のうち、実施の形態1に係る仮想計算機システム100の行う格納処理から一部の処理が変形された第3変形データ格納処理について説明する。
<第3変形データ格納処理>
第3変形データ格納処理は、キャッシュメモリ102が、内蔵する第0ウェイ310〜第3ウェイ313のいずれかに、プロセッサ101が利用するデータを新たに格納する処理である。
図21は、第3変形データ格納処理のフローチャートである。
第3変形格データ納処理は、格納部2030が、プロセッサ101からタグとインデックスとOS識別子とを受け取り、さらに、プロセッサ101又はメインメモリ103から格納するデータを受け取ったことで開始される。
第3変形データ格納処理が開始されると、格納部2030は、プロセッサ101から受け取ったタグとインデックスとを置換対象選択部2010へ送り、受け取ったインデックスをライトバック部620へと送る(ステップS2100)。
格納部2030からタグとインデックスとが送られてくると、置換対象選択部2010は、受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域を示しているか否かを調べる(ステップS2110)。
ステップS2110の処理において、受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域を示している場合に(ステップS2110:Yes)、置換対象選択部2010は、受け取ったインデックスで指定される、第0ウェイ310と第1ウェイ311とのライン記憶領域のそれぞれに記憶されている、バリッドビットとカウンタ値とを読み出す(ステップS2120)。
ステップS2110の処理において、受け取ったタグとインデックスとで構成されるアドレスが、セキュア記憶領域以外の記憶領域を示している場合に(ステップS2110:No)、置換対象選択部2010は、受け取ったインデックスで指定される、第2ウェイ312と第3ウェイ313のライン記憶領域とのそれぞれに記憶されている、バリッドビットとカウンタ値とを読み出す(ステップS2125)。
ステップS2120の処理が終了した場合、又は、ステップS2125の処理が終了した場合に、キャッシュメモリ102は、ステップS2140以降の処理を行う。
ステップS2140の処理〜ステップS2190の処理のそれぞれは、実施の形態1に係る格納処理(図9参照)における、ステップS940の処理〜ステップS990の処理のそれぞれにおいて、置換対象選択部610を置換対象選択部2010に読み替えて、格納部630を格納部2030に読み替えたものと同等の処理となっている。よってここでは、これらの説明を省略する。
ステップS2190の処理が終了すると、キャッシュメモリ102は、その第3変形データ格納処理を終了する。
<考察>
上記構成の第5変形仮想計算機システムは、キャッシュメモリ102が、格納するデータがセキュア記憶領域から読み出されたか否かを区別して、セキュア記憶領域以外の記憶領域から読み出されたデータを第0ウェイ310と第1ウェイ311とのいずれかに格納し、セキュア記憶領域から読み出されたデータを第2ウェイ312と第3ウェイ313とのいずれかに格納する。このことによって、通常OS実行制御時におけるセキュア領域への書き戻しは、発生することがない。
<補足>
以上、本発明に係る仮想計算機システムの一実施形態として、実施の形態1〜実施の形態6において、6つの仮想計算機システムの例について説明したが、以下のように変形することも可能であり、本発明は上述した実施の形態で示した通りの仮想計算機システムに限られないことはもちろんである。
(1)実施の形態1において、仮想計算機システム100が1つのプロセッサを備える構成の例について説明したが、仮想計算機システムとして成立することができれば、必ずしもプロセッサの数は1つに限られる必要はなく、例えば、2つ、3つといった複数個であっても構わない。プロセッサの数が複数個の場合には、一例として、複数のプロセッサが1つのキャッシュメモリを共用する構成の例が考えられる。また、別の一例として、プロセッサの数だけキャッシュメモリが存在し、それぞれのプロセッサが1つのキャッシュメモリを専有して利用する構成の例等も考えられる。
(2)実施の形態1において、キャッシュメモリ102が4ウェイセットアソシアティブ方式である構成の例について説明したが、セットアソシアティブ方式のキャッシュメモリであれば、必ずしも4つのウェイを備える構成に限られる必要はなく、例えば、8つのウェイを備える構成、2つのウェイを備える構成といった構成であっても構わない。
(3)実施の形態1において、プロセッサ101が通常特権モードとセキュアモードとハイパバイザモードとの3つの特権モードを有し、通常OSが通常特権モードで実行され、セキュアOSがセキュアモードで実行され、ハイパバイザがハイパバイザモードで実行される構成の例について説明した。しかしながら、通常OSが実行される特権モードよりも上位の特権モードでセキュアOSが実行される構成であれば、プロセッサ101の有する特権モードの数が3つである構成に限られる必要はない。一例として、プロセッサが下位特権モードと上位特権モードとの2つの特権モードを有し、通常OSが下位特権モードで実行され、セキュアOSとハイパバイザとが上位特権モードで実行される構成の例が考えられる。また、別の一例として、プロセッサが4つの特権モードを有する構成の例等が考えられる。
(4)実施の形態1において、第0参照時刻計算部700〜第3参照時刻計算部730のそれぞれが開放テーブルを記憶する開放テーブル記憶部を有する構成の例について説明した。しかしながら、第0参照時刻計算部700〜第3参照時刻計算部730のそれぞれが開放テーブルを参照することができる構成であれば、必ずしも第0参照時刻計算部700〜第3参照時刻計算部730のそれぞれが開放テーブル記憶部を有する必要はない。一例として、第0参照時刻計算部700〜第3参照時刻計算部730のそれぞれが開放テーブル記憶部を備えずに、置換対象選択部610が1つの開放テーブル記憶部を備え、第0参照時刻計算部700〜第3参照時刻計算部730のそれぞれが、置換対象選択部610に備えられている開放テーブル記憶部に記憶されている開放テーブルを参照するという構成の例が考えられる。
(5)実施の形態1において、プロセッサ101とキャッシュメモリ102とメインメモリ103とMPU104と周辺回路105とROM106と第1インターフェース107と第2インターフェース108と内部バス120とが1つの集積回路110に集積されている場合の例について説明したが、これらの回路が必ずしも1つの集積回路に集積されている必要はない。例えば、プロセッサ101とキャッシュメモリ102とが第1の集積回路に集積され、その他の回路が第2の集積回路に集積される構成されていても構わないし、例えば、各回路がそれぞれ互いに異なる集積回路に集積される構成であっても構わない。
(6)以下、さらに本発明の一実施形態に係る仮想計算機システムの構成及びその変形例と各効果について説明する。
(a)本発明の一実施形態に係る仮想計算機システムは、第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムとから構成される仮想計算機システムであって、前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとを備え、前記キャッシュメモリは、前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納部と、前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻部とを有することを特徴とする。
上述の構成を備える本実施形態に係る仮想計算機システムによると、プロセッサが第2モード(通常特権モード)で第2オペレーティングシステム(通常OS)を実行している場合における、セキュア記憶領域(セキュア領域)への書き戻しについて、断続的に実行される回数が抑制されることとなる。
このことによって、この仮想計算機システムは、通常OS実行制御時におけるセキュア領域への書き戻しの発生頻度が、従来よりも低減される可能性を高くすることができる。
図22は、上記変形例における仮想計算機システム2200の概略構成図である。
同図に示されるように仮想計算機システム2200は、プロセッサ2210とキャッシュメモリ2220と書込制御部2230とから構成される。そして、キャッシュメモリ2220は、第0ウェイ2221と第1ウェイ2222と第2ウェイ2223と第3ウェイ2224とデータ格納部2225と書戻部2226とから構成される。
プロセッサ2210はデータ格納部2225と書戻部2226と書込制御部2230とに接続され、第1モードと第2モードとを有し、第1モードで第1オペレーティングシステムを実行し、第2モードで第2オペレーティングシステムを実行する。
このプロセッサ2210は、一例として、実施の形態1におけるプロセッサ101(図1参照)として実現される。第1モードは、一例として、実施の形態1におけるプロセッサ101の有するセキュアモード230(図2参照)として実現される。第2モードは、一例として、実施の形態1におけるプロセッサ101の有する通常特権モード220(図2参照)として実現される。第1オペレーティングシステムは、一例として、実施の形態1におけるセキュアOS220(図2参照)として実現される。第2オペレーティングシステムは、一例として、実施の形態1における第1OS221(図2参照)として実現される。
書込制御部2230は、プロセッサ2210とデータ格納部2225と書戻部2226とメインメモリ2240とに接続され、プロセッサ2210が第1モードであるときに限って、外部のメインメモリ2240における所定のセキュア記憶領域への書き込みを許可する機能を有する。この書込制御部2230は、一例として、実施の形態1におけるMPU104(図1参照)として実現される。
第0ウェイ2221は、データ格納部2225と書戻部2226とに接続され、プロセッサ2210によって外部のメインメモリ2240から読み出されたデータを格納する機能を有する。この第0ウェイ2221は、一例として、実施の形態1における第0ウェイ310(図3参照)として実現される。
第1ウェイ2222は、データ格納部2225と書戻部2226とに接続され、プロセッサ2210によって外部のメインメモリ2240から読み出されたデータを格納する機能を有する。この第1ウェイ2222は、一例として、実施の形態1における第1ウェイ311(図3参照)として実現される。
第2ウェイ2223は、データ格納部2225と書戻部2226とに接続され、プロセッサ2210によって外部のメインメモリ2240から読み出されたデータを格納する機能を有する。この第2ウェイ2223は、一例として、実施の形態1における第2ウェイ312(図3参照)として実現される。
第3ウェイ2224は、データ格納部2225と書戻部2226とに接続され、プロセッサ2210によって外部のメインメモリ2240から読み出されたデータを格納する機能を有する。この第3ウェイ2223は、一例として、実施の形態1における第3ウェイ313(図3参照)として実現される。
データ格納部2225は、第0ウェイ2221と第1ウェイ2222と第2ウェイ2223と第3ウェイ2224とプロセッサ2210と書込制御部2230とに接続され、プロセッサ2210がメインメモリ2240からデータを読み出す際に、セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、第0ウェイ2221〜第3ウェイ2224のうちの新規格納可能状態であるウェイのいずれかに格納する機能を有する。このデータ格納部2225は、一例として、実施の形態1における格納部630(図6参照)として実現される。
書戻部2226は、第0ウェイ2221と第1ウェイ2222と第2ウェイ2223と第3ウェイ2224とプロセッサ2210と書込制御部2230とに接続され、第2オペレーティングシステムを実行するプロセッサ2210がメインメモリ2240にアクセスする際に発生する、第0ウェイ2221〜第3ウェイ2224のウェイのうちの少なくとも1つを新規格納可能状態とするためのセキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、第0ウェイ2221〜第3ウェイ2224のウェイに格納されているデータのメインメモリ2240への書き戻しを行う機能を有する。この書戻部2226は、一例として、実施の形態1における、置換対象選択部610(図6参照)とライトバック部620(図6参照)とからなるブロックして実現される。
(b)また、前記キャッシュメモリは、格納するデータについて、前記セキュア記憶領域から読み出されたデータであることを示すセキュア識別情報を格納するためのセキュア識別情報格納領域を有し、前記データ格納部は、前記プロセッサによって前記メインメモリから読み出されたデータを前記複数のウェイのいずれかに格納する場合において、当該データが前記セキュア記憶領域から読み出されたものであるときに限って、前記セキュア識別情報を当該データに対応付けて前記セキュア識別情報格納領域に格納することで前記識別を可能とするとしてもよい。
このような構成にすることで、セキュア識別情報格納領域にセキュア識別情報が格納されているか否かを調べるという比較的簡素な処理を行うことで、ウェイに格納されているデータが、セキュア記憶領域からデータが読み出されたか否かを識別することができるようになる。
(c)また、前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、前記キャッシュメモリは、前記ライン格納領域のそれぞれについての、格納するデータが前記メインメモリとの間でコヒーレンシが保たれていないことを示すダーティ情報を格納するためのダーティ情報格納領域と、前記ライン格納領域のそれぞれについて、格納するデータが前記メインメモリとの間でコヒーレンシが保たれていない場合に限って、前記ダーティ情報格納領域に前記ダーティ情報が格納されるように、前記ダーティ情報格納領域への前記ダーティ情報の格納を制御するダーティ情報格納制御部とを有し、前記所定アルゴリズムは、前記第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合に、前記ダーティ情報格納領域に前記ダーティ情報が格納されているライン格納領域のうちの、前記セキュア識別情報格納領域に前記セキュア識別情報が格納されているライン格納領域の全てについて、格納されているデータを連続して前記セキュア記憶領域へ書き戻すアルゴリズムであるとしてもよい。
このような構成にすることで、前記第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合に、キャッシュメモリに含まれるライン格納領域のうち、セキュア記憶領域から読み出されたデータが格納されていたライン格納領域の全てついて、格納するデータをセキュア記憶領域へ書き戻すこととなる。そして、このことによって、キャッシュメモリに格納しているデータの中に、セキュア記憶領域へ書き戻す対象となるものが存在しなくなる。
(d)また、電力削減命令のそれぞれは、複数の電力削減レベルのうちのいずれかに属し、前記キャッシュメモリは、前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域を有し、前記書戻部は、前記書き戻しを、発行された電力削減命令の属する電力削減レベルによって定められる所定の優先度以上の新規格納優先度が前記新規格納優先度格納領域に格納されているライン格納領域に限って行うとしてもよい。
このような構成にすることで、電力削減命令の電力削減レベルに応じて、セキュア記憶領域への書き戻す対象となるデータの範囲を制限することができるようになる。
(e)また、前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、前記キャッシュメモリは、前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域と、前記データ格納部によって、いずれかのライン格納領域にデータが格納される際に、当該ライン格納領域を指定するインデックスによって指定される各ライン格納領域について、前記セキュア識別情報格納領域にセキュア識別情報が格納されているライン格納領域についての新規格納優先度の方が、前記セキュア識別情報格納領域にセキュア識別情報が格納されていないライン格納領域についての新規格納優先度よりも低くなるように、前記新規格納優先度格納領域に格納されている新規格納優先度を更新する新規格納優先度更新部とを有し、前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、同一のインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度となるライン格納領域に格納されているデータについて書き戻すアルゴリズムであるとしてもよい。
このような構成にすることで、メインメモリへのデータの書き戻しが発生する場合に、書き戻しの対象となるデータについて、セキュア記憶領域以外の記憶領域から読み出されたデータの方が、セキュア記憶領域から読み出されたデータよりも優先されることとなる。
(f)また、前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、前記キャッシュメモリは、前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域と、前記第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合に、前記セキュア識別情報格納領域にセキュア識別情報が格納されているライン格納領域についての新規格納優先度の方が、前記セキュア識別情報格納領域にセキュア識別情報が格納されていないライン格納領域についての新規格納優先度よりも低くなるように、前記新規格納優先度格納領域に格納されている新規格納優先度を更新する新規格納優先度更新部とを有し、前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、同一のインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度のライン格納領域に格納されているデータについて書き戻すアルゴリズムであるとしてもよい。
このような構成にすることで、第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合において、メインメモリへのデータの書き戻しが発生するときに、書き戻しの対象となるデータについて、セキュア記憶領域以外の記憶領域から読み出されたデータの方が、セキュア記憶領域から読み出されたデータよりも優先されることとなる。
(g)また、前記複数のウェイのそれぞれは、前記メインメモリにおける記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、前記キャッシュメモリは、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域についての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納するための新規格納優先度格納領域と、前記第2オペレーティングシステムの実行制御状態がスリープ状態である場合において、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のそれぞれについて、前記第2オペレーティングシステムを実行するプロセッサによって読み出されたデータが格納されているライン格納領域についての新規格納優先度の方が、前記第1オペレーティングシステムを実行するプロセッサによって読み出されたデータが格納されているライン格納領域についての新規格納優先度よりも低くなるように新規格納優先度を生成して前記新規格納優先度格納領域に格納する新規格納優先度格納部とを有し、前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度となるライン格納領域に格納されているデータについて書き戻すアルゴリズムであるとしてもよい。
このような構成にすることで、第2オペレーティングシステムの実行制御状態がスリープ状態である場合において、メインメモリへのデータの書き戻しが発生するときに、書き戻しの対象となるデータについて、第2オペレーティングシステムを実行するプロセッサによって読み出されたデータの方が、第1オペレーティングシステムを実行するプロセッサによって読み出されたデータよりも優先されることとなる。
(h)また、前記複数のウェイは、第1ウェイと第2ウェイとを含み、前記データ格納部は、前記セキュア記憶領域から読み出されたデータに限って前記第1ウェイに格納し、前記セキュア記憶領域以外の記憶領域から読み出されたデータに限って前記第2ウェイに格納することで前記識別を可能とし、前記所定アルゴリズムは、前記セキュア記憶領域以外の記憶領域から読み出されたデータを格納する場合において、前記メインメモリへの書き戻しが発生するとき、前記第2ウェイを前記メインメモリへの書き戻しの対象ウェイとするアルゴリズムであるとしてもよい。
このような構成にすることで、プロセッサが第2モードで第2オペレーティングシステムを実行している場合における、セキュア記憶領域への書き戻しが発生しなくなる。
本発明は、キャッシュメモリを有する仮想計算機システムに広く利用することができる。
100 仮想計算機システム
110 集積回路
101 プロセッサ
102 キャッシュメモリ
103 メインメモリ
104 MPU
105 周辺回路
106 ROM
107 第1インターフェース
108 第2インターフェース
130 入力回路
140 出力回路
610 置換対象選択部
620 ライトバック部
630 格納部

Claims (12)

  1. 第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムとから構成される仮想計算機システムであって、
    前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、
    前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとを備え、
    前記キャッシュメモリは、
    前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納部と、
    前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻部とを有する
    ことを特徴とする仮想計算機システム。
  2. 前記キャッシュメモリは、格納するデータについて、前記セキュア記憶領域から読み出されたデータであることを示すセキュア識別情報を格納するためのセキュア識別情報格納領域を有し、
    前記データ格納部は、前記プロセッサによって前記メインメモリから読み出されたデータを前記複数のウェイのいずれかに格納する場合において、当該データが前記セキュア記憶領域から読み出されたものであるときに限って、前記セキュア識別情報を当該データに対応付けて前記セキュア識別情報格納領域に格納することで前記識別を可能とする
    ことを特徴とする請求項1記載の仮想計算機システム。
  3. 前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、
    前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、
    前記キャッシュメモリは、
    前記ライン格納領域のそれぞれについての、格納するデータが前記メインメモリとの間でコヒーレンシが保たれていないことを示すダーティ情報を格納するためのダーティ情報格納領域と、
    前記ライン格納領域のそれぞれについて、格納するデータが前記メインメモリとの間でコヒーレンシが保たれていない場合に限って、前記ダーティ情報格納領域に前記ダーティ情報が格納されるように、前記ダーティ情報格納領域への前記ダーティ情報の格納を制御するダーティ情報格納制御部とを有し、
    前記所定アルゴリズムは、前記第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合に、前記ダーティ情報格納領域に前記ダーティ情報が格納されているライン格納領域のうちの、前記セキュア識別情報格納領域に前記セキュア識別情報が格納されているライン格納領域の全てについて、格納されているデータを連続して前記セキュア記憶領域へ書き戻すアルゴリズムである
    ことを特徴とする請求項2記載の仮想計算機システム。
  4. 電力削減命令のそれぞれは、複数の電力削減レベルのうちのいずれかに属し、
    前記キャッシュメモリは、前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域を有し、
    前記書戻部は、前記書き戻しを、発行された電力削減命令の属する電力削減レベルによって定められる所定の優先度以上の新規格納優先度が前記新規格納優先度格納領域に格納されているライン格納領域に限って行う
    ことを特徴とする請求項3記載の仮想計算機システム。
  5. 前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、
    前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、
    前記キャッシュメモリは、
    前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域と、
    前記データ格納部によって、いずれかのライン格納領域にデータが格納される際に、当該ライン格納領域を指定するインデックスによって指定される各ライン格納領域について、前記セキュア識別情報格納領域にセキュア識別情報が格納されているライン格納領域についての新規格納優先度の方が、前記セキュア識別情報格納領域にセキュア識別情報が格納されていないライン格納領域についての新規格納優先度よりも低くなるように、前記新規格納優先度格納領域に格納されている新規格納優先度を更新する新規格納優先度更新部とを有し、
    前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、同一のインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度となるライン格納領域に格納されているデータについて書き戻すアルゴリズムである
    ことを特徴とする請求項2記載の仮想計算機システム。
  6. 前記複数のウェイのそれぞれは、前記メインメモリの記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、
    前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、
    前記キャッシュメモリは、
    前記ライン格納領域のそれぞれについての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納する新規格納優先度格納領域と、
    前記第1オペレーティングシステムを実行するプロセッサによって電力削減命令が発行された場合に、前記セキュア識別情報格納領域にセキュア識別情報が格納されているライン格納領域についての新規格納優先度の方が、前記セキュア識別情報格納領域にセキュア識別情報が格納されていないライン格納領域についての新規格納優先度よりも低くなるように、前記新規格納優先度格納領域に格納されている新規格納優先度を更新する新規格納優先度更新部とを有し、
    前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、同一のインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度のライン格納領域に格納されているデータについて書き戻すアルゴリズムである
    ことを特徴とする請求項2記載の仮想計算機システム。
  7. 前記複数のウェイのそれぞれは、前記メインメモリにおける記憶領域を指定するアドレスにおける所定の一部のビット列からなるインデックスによって指定される、前記メインメモリから読み出されたデータを格納するためのライン格納領域を複数含み、
    前記データ格納部は、前記格納を、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、新規格納可能状態であるウェイのライン格納領域に対して行い、
    前記キャッシュメモリは、
    前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域についての、同一インデックスで指定されるライン記憶領域のうちのいずれかを新規格納可能状態とするための優先度を示す新規格納優先度を格納するための新規格納優先度格納領域と、
    前記第2オペレーティングシステムの実行制御状態がスリープ状態である場合において、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のそれぞれについて、前記第2オペレーティングシステムを実行するプロセッサによって読み出されたデータが格納されているライン格納領域についての新規格納優先度の方が、前記第1オペレーティングシステムを実行するプロセッサによって読み出されたデータが格納されているライン格納領域についての新規格納優先度よりも低くなるように新規格納優先度を生成して前記新規格納優先度格納領域に格納する新規格納優先度格納部とを有し、
    前記所定アルゴリズムは、前記新規格納優先度格納領域に格納されている新規格納優先度を参照して、前記プロセッサが前記メインメモリからアドレスを指定してデータを読み出す際に、当該アドレスを構成するインデックスによって指定されるライン格納領域のうち、最も高い新規格納優先度となるライン格納領域に格納されているデータについて書き戻すアルゴリズムである
    ことを特徴とする請求項2記載の仮想計算機システム。
  8. 前記複数のウェイは、第1ウェイと第2ウェイとを含み、
    前記データ格納部は、前記セキュア記憶領域から読み出されたデータに限って前記第1ウェイに格納し、前記セキュア記憶領域以外の記憶領域から読み出されたデータに限って前記第2ウェイに格納することで前記識別を可能とし、
    前記所定アルゴリズムは、前記セキュア記憶領域以外の記憶領域から読み出されたデータを格納する場合において、前記メインメモリへの書き戻しが発生するとき、前記第2ウェイを前記メインメモリへの書き戻しの対象ウェイとするアルゴリズムである
    ことを特徴とする請求項1記載の仮想計算機システム。
  9. 第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムと、前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとから構成される仮想計算機システムを制御する仮想計算機制御方法であって、
    前記キャッシュメモリが、前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納ステップと、
    前記キャッシュメモリが、前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻ステップとを含む
    ことを特徴とする仮想計算機制御方法。
  10. 第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムと、前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとから構成される仮想計算機システムに、自システムを制御する仮想計算機制御処理を実行させるための仮想計算機制御プログラムであって、
    前記仮想計算機制御処理は、
    前記キャッシュメモリが、前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納ステップと、
    前記キャッシュメモリが、前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻ステップとを含む
    ことを特徴とする仮想計算機制御プログラム。
  11. 第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムと、前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとから構成される仮想計算機システムに、自システムを制御する仮想計算機制御処理を実行させるための仮想計算機制御プログラムを記録する記録媒体であって、
    前記仮想計算機制御処理は、
    前記キャッシュメモリが、前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納ステップと、
    前記キャッシュメモリが、前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻ステップとを含む
    ことを特徴とする記録媒体。
  12. 第1モードと第2モードとを有するプロセッサと、当該プロセッサによって当該第1モードで実行される第1オペレーティングシステムと、当該プロセッサによって当該第2モードで実行される第2オペレーティングシステムとから構成される集積回路であって、
    前記プロセッサが前記第1モードであるときに限って、外部のメインメモリにおける所定のセキュア記憶領域への書き込みを許可する書込制御部と、
    前記プロセッサによって前記メインメモリから読み出されたデータを格納する複数のウェイを有するキャッシュメモリとを備え、
    前記キャッシュメモリは、
    前記プロセッサが前記メインメモリからデータを読み出す際に、前記セキュア記憶領域からデータが読み出されたか否かを識別可能に、当該データを、前記複数のウェイのうちの新規格納可能状態であるウェイのいずれかに格納するデータ格納部と、
    前記第2オペレーティングシステムを実行する前記プロセッサが前記メインメモリにアクセスする際に発生する、前記複数のウェイのうちの少なくとも1つを新規格納可能状態とするための前記セキュア記憶領域へのデータの書き戻しについて、断続的に実行される回数が抑制されるように、前記セキュア記憶領域からデータが読み出されたか否かを識別して、識別結果を用いた所定アルゴリズムで、前記複数のウェイに格納されているデータの前記メインメモリへの書き戻しを行う書戻部とを有する
    ことを特徴とする集積回路。
JP2012554667A 2011-01-24 2012-01-23 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路 Ceased JPWO2012102002A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2011011649 2011-01-24
JP2011011649 2011-01-24
PCT/JP2012/000379 WO2012102002A1 (ja) 2011-01-24 2012-01-23 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路

Publications (1)

Publication Number Publication Date
JPWO2012102002A1 true JPWO2012102002A1 (ja) 2014-06-30

Family

ID=46580578

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012554667A Ceased JPWO2012102002A1 (ja) 2011-01-24 2012-01-23 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路

Country Status (3)

Country Link
US (1) US9218287B2 (ja)
JP (1) JPWO2012102002A1 (ja)
WO (1) WO2012102002A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8914466B2 (en) * 2011-07-07 2014-12-16 International Business Machines Corporation Multi-level adaptive caching within asset-based web systems
JP6117068B2 (ja) * 2013-09-20 2017-04-19 株式会社東芝 情報処理装置、およびプログラム
JP6129702B2 (ja) * 2013-09-24 2017-05-17 株式会社東芝 情報処理装置、情報処理システム、プログラム
KR101502827B1 (ko) * 2014-03-20 2015-03-17 주식회사 에이디칩스 컴퓨터 시스템에서의 캐시 무효화 방법
US11106588B2 (en) * 2017-11-28 2021-08-31 International Business Machines Corporation Deferred method of allocating disk space for lightning segments
US10635831B1 (en) * 2018-01-06 2020-04-28 Ralph Crittenden Moore Method to achieve better security using a memory protection unit
JP6776292B2 (ja) * 2018-03-20 2020-10-28 株式会社東芝 情報処理装置、情報処理方法、およびプログラム
US11429733B2 (en) * 2018-11-15 2022-08-30 International Business Machines Corporation Sharing secret data between multiple containers
JP2020135555A (ja) * 2019-02-21 2020-08-31 Necソリューションイノベータ株式会社 処理実行方法
JP7350699B2 (ja) 2020-09-11 2023-09-26 株式会社東芝 ライトバックキャッシュ装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09237225A (ja) * 1996-03-01 1997-09-09 Toshiba Corp キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JP2004145780A (ja) * 2002-10-28 2004-05-20 Mitsubishi Electric Corp マルチプロセッサ・キャッシュ装置
JP2009020555A (ja) * 2007-07-10 2009-01-29 Panasonic Corp スワップ処理装置
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4775955A (en) 1985-10-30 1988-10-04 International Business Machines Corporation Cache coherence mechanism based on locking
DE3650021T2 (de) 1985-10-30 1995-03-09 Ibm Cache-Speicherübereinstimmungsvorrichtung mit Verriegelung.
JPH07105091A (ja) 1993-10-01 1995-04-21 Hitachi Ltd キャッシュの制御装置および制御方法
US7941647B2 (en) * 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
JP4072271B2 (ja) 1999-02-19 2008-04-09 株式会社日立製作所 複数のオペレーティングシステムを実行する計算機
JP2001282560A (ja) 2000-03-31 2001-10-12 Hitachi Ltd 仮想計算機制御方法及びその実施装置並びにその処理プログラムを記録した記録媒体
US7558723B2 (en) * 2003-12-12 2009-07-07 Microsoft Corporation Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices
CN101438290B (zh) * 2006-05-01 2011-10-05 联发科技股份有限公司 用于包括处理器和缓存虚拟存储器的系统中的安全语境切换的方法和装置
CN101689106B (zh) * 2007-06-12 2013-10-09 松下电器产业株式会社 多处理器控制装置、多处理器控制方法以及多处理器控制电路
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
US9135024B2 (en) * 2008-11-30 2015-09-15 Red Hat Israel, Ltd. Playing multimedia content at remote graphics display client

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09237225A (ja) * 1996-03-01 1997-09-09 Toshiba Corp キャッシュ機能を有するコンピュータ及びキャッシュメモリ制御方法
JP2004145780A (ja) * 2002-10-28 2004-05-20 Mitsubishi Electric Corp マルチプロセッサ・キャッシュ装置
JP2009020555A (ja) * 2007-07-10 2009-01-29 Panasonic Corp スワップ処理装置
WO2009075070A1 (ja) * 2007-12-10 2009-06-18 Panasonic Corporation 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路

Also Published As

Publication number Publication date
WO2012102002A1 (ja) 2012-08-02
US20130166848A1 (en) 2013-06-27
US9218287B2 (en) 2015-12-22

Similar Documents

Publication Publication Date Title
WO2012102002A1 (ja) 仮想計算機システム、仮想計算機制御方法、仮想計算機制御プログラム、記録媒体、及び集積回路
US8898666B2 (en) Virtual machine system and virtual machine system control method for controlling program execution on a plurality of processors that have a plurality of privileged modes
JP4814786B2 (ja) データ処理システムにおけるメモリ管理
JP5204656B2 (ja) スレッド間同期通信のための装置、システム、および、その方法
US10261796B2 (en) Processor and method for executing in-memory copy instructions indicating on-chip or off-chip memory
US7529916B2 (en) Data processing apparatus and method for controlling access to registers
KR20130036189A (ko) 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한
JP2007242003A (ja) メモリ属性を用いるための技術
JP7096840B2 (ja) 能力メタデータを管理するための装置及び方法
JP5226010B2 (ja) 共有キャッシュ制御装置、共有キャッシュ制御方法及び集積回路
WO2006120367A1 (en) A data processing apparatus and method employing multiple register sets
JP2019521447A (ja) キャッシュエントリ転送のためにキャッシュ位置情報を記憶するシステム及び方法
JP4364878B2 (ja) 演算処理装置
JP5289688B2 (ja) プロセッサシステム及びプロセッサシステムを動作させるオペレーティングシステムプログラムの処理方法
TWI722022B (zh) 用於處理資料的設備、方法及電腦程式
JP7070384B2 (ja) 演算処理装置、メモリ装置、及び演算処理装置の制御方法
JP4088763B2 (ja) コンピュータシステム及び該コンピュータシステムに適したハードウェア/ソフトウェアロジック並びにキャッシュ方法
JP2017219931A (ja) 情報処理装置、情報処理方法、およびプログラム
US11907138B2 (en) Multimedia compressed frame aware cache replacement policy
JPS62197842A (ja) キヤツシユメモリ制御方式
US20230161618A1 (en) Hierarchical asymmetric core attribute detection
US20220197679A1 (en) Modifying device status in single virtual function mode
US11294710B2 (en) Thread switch for accesses to slow memory
JP2000293437A (ja) キャッシュメモリ装置及びキャッシュメモリ制御方法
JP5993687B2 (ja) ワンチッププロセッサ

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140606

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20140606

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141001

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150804

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150908

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151027

A045 Written measure of dismissal of application

Free format text: JAPANESE INTERMEDIATE CODE: A045

Effective date: 20160223