JP2009211416A - プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター - Google Patents
プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター Download PDFInfo
- Publication number
- JP2009211416A JP2009211416A JP2008053890A JP2008053890A JP2009211416A JP 2009211416 A JP2009211416 A JP 2009211416A JP 2008053890 A JP2008053890 A JP 2008053890A JP 2008053890 A JP2008053890 A JP 2008053890A JP 2009211416 A JP2009211416 A JP 2009211416A
- Authority
- JP
- Japan
- Prior art keywords
- cache
- processor
- cache mode
- data
- information
- 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
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】キャッシュモードによる高速処理を可能としつつ、所定条件下でキャッシュモードを無効にして障害時のデータ喪失の影響を最小化することができるプロセッサキャッシュ制御装置の提供。
【解決手段】本発明によるプロセッサキャッシュ制御装置は、キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたプロセス−キャッシュ無効テーブル203と、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段(204,205,206)とを備えることを特徴とする。
【選択図】図3
【解決手段】本発明によるプロセッサキャッシュ制御装置は、キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたプロセス−キャッシュ無効テーブル203と、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段(204,205,206)とを備えることを特徴とする。
【選択図】図3
Description
本発明は、所定条件下でキャッシュモードを無効にするプロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューターに関する。
従来から、マルチプロセッサ装置のメモリモジュールにおいて、一つの書き込みアクセス又はキャッシュオフアクセスを行なう場合において、キャッシュラインがシェア状態にある場合には、キャッシュ無効化処理(パージ)を行うことが知られている(例えば、特許文献1参照)。
特開平10−55313号公報
ところで、プロセッサにおけるメモリウォール問題(コア性能向上とメモリアクセス性能の乖離)の対策として、プロセッサがキャッシュを具備する手法が旧来より用いられてきた(スカラプロセッサ)。また近年では、キャッシュを大容量化・高速化することで悪化の一途を辿るメモリウォールを隠蔽している。これにより、CPU性能向上に伴うソフトスタック(アプリケーション等)の性能向上を担保してきた。これに伴い、キャッシュと下位記憶階層(メモリ、ストレージ等)上のデータ内容が異なる時間が長くなり、特に車載等の高信頼性が要求されるシステムでは、障害発生時(例えばプロセッサでの熱障害、電源瞬断障害等の発生時)のデータ喪失が大きな課題となりつつある。即ち、障害発生時には、プロセッサが自身のキャッシュの内容を下位記憶階層にパージ(データ反映)することが不可能となることにも起因して、キャッシュ上のデータが喪失して、重要データを喪失しうることが大きな課題となりつつある。
そこで、本発明は、キャッシュモードによる高速処理を可能としつつ、所定条件下でキャッシュモードを無効にして障害時のデータ喪失の影響を最小化することができるプロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューターの提供を目的とする。
上記目的を達成するため、第1の発明は、プロセッサキャッシュ制御装置であって、
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする。
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする。
第2の発明は、第1の発明に係るプロセッサキャッシュ制御装置において、
前記キャッシュモード変更手段は、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドでないと判定した場合には、キャッシュモードを有効状態に維持又は変更することを特徴とする。
前記キャッシュモード変更手段は、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドでないと判定した場合には、キャッシュモードを有効状態に維持又は変更することを特徴とする。
第3の発明は、プロセッサキャッシュ制御装置であって、
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする。
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする。
第4の発明は、第3の発明に係るプロセッサキャッシュ制御装置において、
前記キャッシュモード変更手段は、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルでないと判定した場合には、キャッシュモードを有効状態に維持又は変更することを特徴とする。
前記キャッシュモード変更手段は、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルでないと判定した場合には、キャッシュモードを有効状態に維持又は変更することを特徴とする。
第5の発明は、プロセッサに関し、当該プロセッサは、
第1〜4のうちのいずれかの発明に係るプロセッサキャッシュ制御装置と、
前記プロセッサキャッシュ制御装置によりキャッシュモードが制御されるプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュとを備えることを特徴とする。
第1〜4のうちのいずれかの発明に係るプロセッサキャッシュ制御装置と、
前記プロセッサキャッシュ制御装置によりキャッシュモードが制御されるプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュとを備えることを特徴とする。
第6の発明は、プロセッサに関し、当該プロセッサは、
キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする。
キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする。
第7の発明は、プロセッサに関し、当該プロセッサは、
キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする。
キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする。
第8の発明は、第5〜7のうちのいずれかの発明に係るプロセッサにおいて、
前記プロセッサコアは複数のプロセッサコアからなることを特徴とする。
前記プロセッサコアは複数のプロセッサコアからなることを特徴とする。
第9の発明は、コンピューターに関し、該コンピューターは、
第5〜8のうちのいずれかの発明に係るプロセッサと、
前記プロセッサに接続され、キャッシュモードが無効状態のときに前記プロセッサコアによりアクセスされる下位記憶階層とを備えることを特徴とする。
第5〜8のうちのいずれかの発明に係るプロセッサと、
前記プロセッサに接続され、キャッシュモードが無効状態のときに前記プロセッサコアによりアクセスされる下位記憶階層とを備えることを特徴とする。
第10の発明は、第9の発明に係るコンピューターにおいて、
前記プロセッサは、障害が発生した場合に該障害の復旧後に前記下位記憶階層内のデータに基づいてデータ復元処理を行うデータ復元手段を更に備えることを特徴とする。
前記プロセッサは、障害が発生した場合に該障害の復旧後に前記下位記憶階層内のデータに基づいてデータ復元処理を行うデータ復元手段を更に備えることを特徴とする。
第11の発明は、キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルを用いたプロセッサキャッシュ制御方法であって、
プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする。
プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする。
第12の発明は、キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルを用いたプロセッサキャッシュ制御方法であって、
プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする。
プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする。
本発明によれば、キャッシュモードによる高速処理を可能としつつ、所定条件下でキャッシュモードを無効にして障害時のデータ喪失の影響を最小化することができるプロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューターが得られる。
以下、図面を参照して、本発明を実施するための最良の形態の説明を行う。
図1は、本発明によるプロセッサキャッシュ制御装置、プロセッサ及びコンピューターの一実施例に関連する主要構成を示すブロック図である。本実施例のプロセッサキャッシュ制御装置、プロセッサ及びコンピューターは、特に、車両に搭載されるのが好適である。即ち、本実施例のプロセッサキャッシュ制御装置、プロセッサ及びコンピューターは、好ましくは、車載システムを構築するために用いられる。車載システムは、車両制御システムを含めて任意のシステムであってよいが、典型的には、マルチメディア系の車載システムである。
図1において、ラインA1よりも上側の構成は、ソフトウェア構成を示し、ラインA2は、ソフトウェア構成をシステムソフトウェア(OS等)とユーザソフトウェアに仕切るラインである。ラインA1よりも下側の構成は、コンピューター2のハードウェア構成を示し、ラインA3よりも上側はオンチップのハードウェア構成(即ちプロセッサ1のハードウェア構成)を示し、ラインA3よりも下側はオフチップのハードウェア構成を示す。
コンピューター2は、ハードウェア構成としては、図1に示すように、プロセッサ1と、下位記憶階層3とを備える。図1に示すプロセッサ1は、複数のプロセッサコア100、・・・、10nを備えるマルチコアプロセッサである。プロセッサ1は、複数のプロセッサコア100、・・・、10nで共有されるL2キャッシュを備える。プロセッサコア10は、また、キャッシュコントロールレジスタ206と、L1キャッシュ(L1
Inst及びL1 Data)とを備える。尚、以下では、キャッシュとは、L1キャッシュ及びL2キャッシュを含むキャッシュを意味する。下位記憶階層3は、ストレージ4及びメモリ5を備える。下位記憶階層3には、図1に示すソフトウェア(各種プログラムやデータテーブル等)が記憶される。下位記憶階層3には、また、プロセッサ1の各種処理に伴って生成される各種データが記憶される。下位記憶階層3は、後述の如くプロセッサ障害時の重要データを保持する機能を有し、従って、不揮発メモリから構成される。但し、揮発メモリであってもよく、この場合、データ保持可能なセルフリフレッシュモードに移行する。
Inst及びL1 Data)とを備える。尚、以下では、キャッシュとは、L1キャッシュ及びL2キャッシュを含むキャッシュを意味する。下位記憶階層3は、ストレージ4及びメモリ5を備える。下位記憶階層3には、図1に示すソフトウェア(各種プログラムやデータテーブル等)が記憶される。下位記憶階層3には、また、プロセッサ1の各種処理に伴って生成される各種データが記憶される。下位記憶階層3は、後述の如くプロセッサ障害時の重要データを保持する機能を有し、従って、不揮発メモリから構成される。但し、揮発メモリであってもよく、この場合、データ保持可能なセルフリフレッシュモードに移行する。
プロセッサ1は、一般的なプロセッサが具備するように、キャッシュ有効/無効機能を具備する。即ち、プロセッサ1は、キャッシュコントロールレジスタ206に格納される情報に従って、キャッシュモードを無効又は有効にして動作する。キャッシュモードが無効された無効状態では、プロセッサ1は、キャッシュを用いずに(キャッシュをスルーして)下位記憶階層3を用いて各種処理を実行する。また、キャッシュモードが無効されていない有効状態では、プロセッサ1は、キャッシュを用いて各種処理を実行し、必要に応じて(例えばキャッシュがフローしたときだけ)、下位記憶階層3を用いて各種処理を実行する。尚、キャッシュモードが無効されていない有効状態では、キャッシュを用いた高速処理が可能となる。
システムソフトウェアは、図1に示すように、CPUディスパッチャ204と、CPUキャッシュコントローラ205と、プロセス−キャッシュ無効テーブル操作インターフェース202と、プロセス−キャッシュ無効テーブル203とを備える。また、ユーザソフトウェアは、プロセス−キャッシュ無効テーブル操作プログラム201と、データ復元プログラム301とを備える。
CPUキャッシュコントローラ205は、CPUキャッシュモードを変更するためのインターフェースである。CPUキャッシュモードの変更は、後述の図3のフローチャートで説明するが、例えばOSのプロセスディスパッチ機能(CPUディスパッチャ204)を拡張して実現する。
データ復元プログラム301は、障害発生時(例えばプロセッサ1での熱障害、電源瞬断障害等の発生時)に、障害前のメモリ内容(下位記憶階層3内のデータ)からデータを復元するプログラムであり、障害復帰後に実行される。データ復元プログラム301は、典型的には、メモリダンプの解析ツールである。尚、ファイルシステムをデータジャーナリングモードで運用する場合にはデータ復元プログラム301は不要である。また、ライトスルーモードでファイルハンドルする場合もデータ復元プログラム301は不要である。
図2は、プロセス−キャッシュ無効テーブル203の一例を示す図である。プロセス−キャッシュ無効テーブル203には、図2に示すように、プロセッサ1により実行されるアプリケーション(複数も可)を構成する多数のプロセスないしスレッドのうちの、キャッシュモードを無効にして実行されるべきプロセスないしスレッド(以下、代表して「プロセス」という)の識別子が定義される。プロセス−キャッシュ無効テーブル203に定義されるプロセス(以下、「キャッシュ無効化対象プロセス」ともいう)は、ユーザにより選択されるが、好ましくは、データを扱うプロセスであり、より好ましくは、重要データを扱うプロセスである。例えば、キャッシュ無効化対象プロセスは、顧客情報やダイアグ情報(故障/事故解析用データ等)を扱うプロセスや、データベース内のデータを扱うプロセスであってよい。顧客情報は、例えば車両のユーザの各種情報(携帯電話の番号や車両キーのID番号、キャッシュカード番号、認証用生体情報等)を含んでよい。プロセス−キャッシュ無効テーブル203に記述される内容(各プロセスの識別子)は、例えばプロセス−キャッシュ無効テーブル操作プログラム201及びプロセス−キャッシュ無効テーブル操作インターフェース202を介して定義される。典型的には、プロセス−キャッシュ無効テーブル203の内容は、設計時に、各プロセスがデータを扱うか否かや、データを扱う場合には扱うデータの重要性等を考慮してユーザ(典型的には、システムインテグレータ)により設定される。尚、プロセス−キャッシュ無効テーブル203の内容は、事後的に変更(修正)可能とされてもよい。
尚、上述の構成において、プロセッサキャッシュ制御装置は、以下で説明するように、主に、プロセス−キャッシュ無効テーブル203と、CPUディスパッチャ204と、CPUキャッシュコントローラ205と、キャッシュコントロールレジスタ206とにより実現される。
図3は、本実施例のプロセッサキャッシュ制御装置により実施される主要処理の一例を示すフローチャートである。図3に示すキャッシュモード変更処理は、CPUディスパッチャ204が、プロセス−キャッシュ無効テーブル203に基づいて、CPUキャッシュコントローラ205を介してキャッシュコントロールレジスタ206の情報を変更することにより実現される。
図3に示す処理は、CPUディスパッチ開始(プロセスディスパッチ)をトリガとして実行される。
ステップ400では、プロセス−キャッシュ無効テーブル203から今回のディスパッチ対象プロセスが存在するかを探索する。即ち、今回のディスパッチ対象プロセスがプロセス−キャッシュ無効テーブル203においてキャッシュ無効化対象プロセスとして定義されているかを探索する。
ステップ402では、上記ステップ400の探索の結果、今回のディスパッチ対象プロセスの識別子がプロセス−キャッシュ無効テーブル203内に存在するか否かを判定し、今回のディスパッチ対象プロセスの識別子がプロセス−キャッシュ無効テーブル203内に存在する場合には、ステップ404に進み、存在しない場合には、ステップ408に進む。
ステップ404では、現在のキャッシュコントロールレジスタ206の情報に基づいて、キャッシュ有効状態であるか否かを判定する。即ち、現在のキャッシュコントロールレジスタ206の情報がキャッシュ有効状態を表しているか否かが判定される。キャッシュ有効状態である場合には、ステップ406に進み、キャッシュ有効状態でない場合(即ちキャッシュ無効状態である場合)、ステップ406をスキップしてステップ412に進む。
ステップ406では、キャッシュコントロールレジスタ206を介してCPUキャッシュモードを無効にする。即ち、キャッシュコントロールレジスタ206の情報を変更し、キャッシュ無効状態とする。ステップ406の処理が終了すると、ステップ412に進む。
ステップ408では、現在のキャッシュコントロールレジスタ206の情報に基づいて、キャッシュ無効状態であるか否かを判定する。即ち、現在のキャッシュコントロールレジスタ206の情報がキャッシュ無効状態を表しているか否かが判定される。キャッシュ無効状態である場合には、ステップ410に進み、キャッシュ無効状態でない場合(即ちキャッシュ有効状態である場合)、ステップ410をスキップしてステップ412に進む。
ステップ410では、キャッシュコントロールレジスタ206を介してCPUキャッシュモードを有効にする。即ち、キャッシュコントロールレジスタ206の情報を変更し、キャッシュ有効状態とする。ステップ410の処理が終了すると、ステップ412に進む。
ステップ412では、今回のディスパッチ対象プロセスをCPU(プロセッサ1)にディスパッチして、キャッシュモード変更処理が終了する。従って、今回のディスパッチ対象プロセスは、現在のキャッシュモードの状態(有効状態又は無効状態)に従って処理されることになる。例えば、ステップ404を経由した場合には、プロセッサ1は、キャッシュモードを無効にした状態で今回のディスパッチ対象プロセスを実行する。他方、ステップ408を経由した場合には、プロセッサ1は、キャッシュモードを有効にした状態で今回のディスパッチ対象プロセスを実行する。
以上説明した本実施例によれば、とりわけ、以下のような優れた効果が奏される。
本実施例によれば、上述の如く、CPUディスパッチャ204がプロセッサ1にCPUリソースを割り当てる際に、プロセス−キャッシュ無効テーブル203を参照し、キャッシュを無効状態にして動作させるか否かを判定し、該判定結果に応じてキャッシュモードを変更してプロセスを走行させる。これにより、例えばアプリケーションが重要データを操作している間は、キャッシュモードが無効にされるので、この間、仮に障害(例えばプロセッサ1での熱障害、電源瞬断障害等)が発生しても、下位記憶階層3に操作中の重要データが保持される。従って、障害発生時にアプリケーションが操作中のデータを喪失することを防止することができる。尚、例えばアプリケーションがデータを扱っていない間は、キャッシュモードが有効に維持されるので、高速処理が確保される。
また、本実施例によれば、上述の如く、障害に伴う復旧処理は、プロセッサ1の再起動時に下位記憶階層3に保存されているデータ(キャッシュをスルーしているためにデータは全てメモリ5以下の記憶階層に存在する)をデータ復元プロセス301により復元・保存(ストレージ4に保存)する。従って、本実施例によれば、障害発生時にも障害復帰後に重要データを復元することができる。
このように本実施例によれば、システムおける高信頼性・高可用性の向上効果が得られる。かかる効果は、高信頼性・高可用性が要求される車載システムにおいて特に有用となる。
次に、その他の実施例について説明する。以下の説明では、上述の実施例に対して変更される主要な部分のみを説明し、他の構成は同様であってよく、適宜同一の用語(参照符号を含む)を用いて説明する。
図4は、本発明によるプロセッサキャッシュ制御装置、プロセッサ及びコンピューターのその他の実施例に関連する主要構成を示すブロック図である。
以下説明するその他の実施例は、上述の実施例が、プロセスディスパッチをトリガとしてCPUキャッシュモードを変更するのに対して、データ(又はファイル)の操作をトリガとしてCPUキャッシュモードを変更する点が主に異なる。この観点から、以下説明するその他の実施例では、プロセス−キャッシュ無効テーブル203に代えて、データ−キャッシュ無効テーブル503が設定され、それに対応して、データ−キャッシュ無効テーブル操作プログラム501やデータ−キャッシュ無効テーブル操作インターフェース502が設定される。また、CPUディスパッチャ204に代えて、CPUアクセス制御部504が設定される。尚、以下説明するその他の実施例は、上述の実施例とは切り離して実現されてもよいが、上述の実施例と並存することも可能である。
図5は、データ−キャッシュ無効テーブル503の一例を示す図である。データ−キャッシュ無効テーブル503には、図5に示すように、プロセッサ1が実行するアプリケーションが操作するデータないしファイルのうち、キャッシュモードを無効にして操作(編集、消去、付加、更新等)されるべきデータないしファイル(以下、代表して「データ」という)の識別子が定義される。データ−キャッシュ無効テーブル503に定義されるデータ(以下、「キャッシュ無効化対象データ」ともいう)は、ユーザにより選択されるが、好ましくは、データベース内のデータや、その他、喪失しては困る重要データである。例えば、キャッシュ無効化対象データは、顧客情報やダイアグ情報(故障/事故解析用データ等)であってよい。顧客情報は、例えば車両のユーザの各種情報(携帯電話の番号や車両キーのID番号、キャッシュカード番号、生体情報等)を含んでよい。データ−キャッシュ無効テーブル503に記述される内容(各データの識別子)は、例えば検出器−キャッシュ無効テーブルプログラム501及びデータ−キャッシュ無効テーブル操作インターフェース502を介して定義される。典型的には、データ−キャッシュ無効テーブル503の内容は、設計時に、データの重要性等を考慮してユーザ(典型的には、システムインテグレータ)により設定される。尚、データ−キャッシュ無効テーブル503の内容は、事後的に変更(修正)可能とされてもよい。
尚、上述のその他の実施例の構成においては、プロセッサキャッシュ制御装置は、以下で説明するように、主に、データ−キャッシュ無効テーブル503と、CPUアクセス制御部504と、CPUキャッシュコントローラ205と、キャッシュコントロールレジスタ206とにより実現される。
図6は、上記その他の実施例のプロセッサキャッシュ制御装置により実施される主要処理の一例を示すフローチャートである。図6に示すキャッシュモード変更処理は、CPUアクセス制御部504が、データ−キャッシュ無効テーブル503に基づいて、CPUキャッシュコントローラ205を介してキャッシュコントロールレジスタ206の情報を変更することにより実現される。
図6に示す処理は、プロセッサ1が実行するアプリケーションがデータを操作しようとすること(下位記憶階層3内のデータに対してアクセス要求を行うとき)をトリガとして実行される。
ステップ600では、データ−キャッシュ無効テーブル503から今回の操作対象データが存在するかを探索する。即ち、今回の操作対象データがデータ−キャッシュ無効テーブル503においてキャッシュ無効化対象データとして定義されているかを探索する。
ステップ602では、上記ステップ600の探索の結果、今回の操作対象データの識別子がデータ−キャッシュ無効テーブル503内に存在するか否かを判定し、今回の操作対象データの識別子がデータ−キャッシュ無効テーブル503内に存在する場合には、ステップ604に進み、存在しない場合には、ステップ608に進む。
ステップ604では、現在のキャッシュコントロールレジスタ206の情報に基づいて、キャッシュ有効状態であるか否かを判定する。キャッシュ有効状態である場合には、ステップ606に進み、キャッシュ有効状態でない場合(即ちキャッシュ無効状態である場合)、ステップ606をスキップしてステップ612に進む。
ステップ606では、キャッシュコントロールレジスタ206を介してCPUキャッシュモードを無効にする。ステップ606の処理が終了すると、ステップ612に進む。
ステップ608では、現在のキャッシュコントロールレジスタ206の情報に基づいて、キャッシュ無効状態であるか否かを判定する。キャッシュ無効状態である場合には、ステップ610に進み、キャッシュ無効状態でない場合(即ちキャッシュ有効状態である場合)、ステップ610をスキップしてステップ612に進む。
ステップ610では、キャッシュコントロールレジスタ206を介してCPUキャッシュモードを有効にする。ステップ610の処理が終了すると、ステップ612に進む。
ステップ612では、今回の操作対象データに対するCPU(プロセッサ1)のアクセスを許可して(即ち今回の操作対象データの操作を許可して)、本処理が終了する。従って、今回の操作対象データは、現在のキャッシュモードの状態(有効状態又は無効状態)に従って操作されることになる。例えば、ステップ604を経由した場合には、プロセッサ1は、キャッシュモードを無効にした状態で今回の操作対象データを操作する。他方、ステップ608を経由した場合には、プロセッサ1は、キャッシュモードを有効にした状態で今回の操作対象データを操作する。
以上説明したその他の実施例によっても、上述の実施例と同様の効果が奏される。即ち、例えばアプリケーションが重要データを操作している間は、キャッシュモードが無効にされるので、この間、仮に障害(例えばプロセッサ1での熱障害、電源瞬断障害等)が発生しても、下位記憶階層3に操作中の重要データが保持される。従って、障害発生時にアプリケーションが操作中の重要データを喪失することを防止することができ、障害復帰後に、当該重要データを復元することができる。
以上、本発明の好ましい実施例について詳説したが、本発明は、上述した実施例に制限されることはなく、本発明の範囲を逸脱することなく、上述した実施例に種々の変形及び置換を加えることができる。
例えば、上述した実施例では、プロセス−キャッシュ無効テーブル203には、キャッシュモードを無効にして実行されるべきプロセス(キャッシュ無効化対象プロセス)の識別子が定義されているが、等価的に、キャッシュモードを有効にして実行されるべきプロセスの識別子が定義されていてもよい。要するに、プロセス−キャッシュ無効テーブル203には、キャッシュモードを無効にして実行されるべきプロセスを直接的又は間接的に一意に特定できる情報が定義されていればよい。これは、データ−キャッシュ無効テーブル503についても同様である。
また、上述した実施例では、2つ以上のプロセッサコア100、・・・、10nを備えるマルチコアプロセッサが例示されているが、唯一のプロセッサコア10を備えるプロセッサに対しても適用可能である。
1 プロセッサ
2 コンピューター
3 下位記憶階層
4 ストレージ
5 メモリ
10 プロセッサコア
201 プロセス−キャッシュ無効テーブル操作プログラム
202 プロセス−キャッシュ無効テーブル操作インターフェース
203 プロセス−キャッシュ無効テーブル
204 CPUディスパッチャ
205 CPUキャッシュコントローラ
206 キャッシュコントロールレジスタ
301 データ復元プログラム
501 データ−キャッシュ無効テーブル操作プログラム
502 データ−キャッシュ無効テーブル操作インターフェース
503 データ−キャッシュ無効テーブル
504 CPUアクセス制御部
2 コンピューター
3 下位記憶階層
4 ストレージ
5 メモリ
10 プロセッサコア
201 プロセス−キャッシュ無効テーブル操作プログラム
202 プロセス−キャッシュ無効テーブル操作インターフェース
203 プロセス−キャッシュ無効テーブル
204 CPUディスパッチャ
205 CPUキャッシュコントローラ
206 キャッシュコントロールレジスタ
301 データ復元プログラム
501 データ−キャッシュ無効テーブル操作プログラム
502 データ−キャッシュ無効テーブル操作インターフェース
503 データ−キャッシュ無効テーブル
504 CPUアクセス制御部
Claims (12)
- プロセッサキャッシュ制御装置であって、
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする、プロセッサキャッシュ制御装置。 - 前記キャッシュモード変更手段は、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドでないと判定した場合には、キャッシュモードを有効状態に維持又は変更する、請求項1に記載のプロセッサキャッシュ制御装置。
- プロセッサキャッシュ制御装置であって、
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、キャッシュモードの状態を有効状態と無効状態の間で変更するキャッシュモード変更手段とを備えることを特徴とする、プロセッサキャッシュ制御装置。 - 前記キャッシュモード変更手段は、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであると判定した場合には、キャッシュモードを無効状態に維持又は変更し、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルでないと判定した場合には、キャッシュモードを有効状態に維持又は変更する、請求項3に記載のプロセッサキャッシュ制御装置。
- 請求項1〜4のうちのいずれか1項に記載のプロセッサキャッシュ制御装置と、
前記プロセッサキャッシュ制御装置によりキャッシュモードが制御されるプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュとを備える、プロセッサ。 - キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルと、
前記プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする、プロセッサ。 - キャッシュモードの無効状態及び有効状態のいずれかを表す情報が格納されるレジスタと、
前記レジスタに格納される情報に従った状態のキャッシュモードで動作するプロセッサコアと、
前記プロセッサコアに対して設けられるキャッシュと、
キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルと、
前記プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定し、該判定結果に基づいて、前記レジスタ内の情報を変更するキャッシュモード変更手段とを備えることを特徴とする、プロセッサ。 - 前記プロセッサコアは複数のプロセッサコアからなる、請求項5〜7のうちのいずれか1項に記載のプロセッサ。
- 請求項5〜8のうちのいずれか1項に記載のプロセッサと、
前記プロセッサに接続され、キャッシュモードが無効状態のときに前記プロセッサコアによりアクセスされる下位記憶階層とを備えることを特徴とする、コンピューター。 - 前記プロセッサは、障害が発生した場合に該障害の復旧後に前記下位記憶階層内のデータに基づいてデータ復元処理を行うデータ復元手段を更に備える、請求項9に記載のコンピューター。
- キャッシュモードを無効にして実行されるべきプロセスないしスレッドを特定するための情報が記述されたテーブルを用いたプロセッサキャッシュ制御方法であって、
プロセッサコアにプロセスないしスレッドをディスパッチする際に、前記テーブルの情報に基づいて、ディスパッチ対象のプロセスないしスレッドが、キャッシュモードを無効にして実行されるべきプロセスないしスレッドであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする、プロセッサキャッシュ制御方法。 - キャッシュモードを無効にして操作されるべきデータないしファイルを特定するための情報が記述されたテーブルを用いたプロセッサキャッシュ制御方法であって、
プロセッサコアがデータないしファイルを操作する際に、前記テーブルの情報に基づいて、操作対象のデータないしファイルが、キャッシュモードを無効にして操作されるべきデータないしファイルであるか否かを判定する判定ステップと、
前記判定ステップでの判定処理の結果、肯定判定の場合には、キャッシュモードを無効状態に維持又は変更し、否定判定の場合には、キャッシュモードを有効状態に維持又は変更するステップとを備えることを特徴とする、プロセッサキャッシュ制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008053890A JP2009211416A (ja) | 2008-03-04 | 2008-03-04 | プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008053890A JP2009211416A (ja) | 2008-03-04 | 2008-03-04 | プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2009211416A true JP2009211416A (ja) | 2009-09-17 |
Family
ID=41184490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008053890A Pending JP2009211416A (ja) | 2008-03-04 | 2008-03-04 | プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2009211416A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413679A (zh) * | 2019-07-31 | 2019-11-05 | 深圳前海微众银行股份有限公司 | 数据库信息处理方法、装置、设备及可读存储介质 |
-
2008
- 2008-03-04 JP JP2008053890A patent/JP2009211416A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413679A (zh) * | 2019-07-31 | 2019-11-05 | 深圳前海微众银行股份有限公司 | 数据库信息处理方法、装置、设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7774636B2 (en) | Method and system for kernel panic recovery | |
US9430388B2 (en) | Scheduler, multi-core processor system, and scheduling method | |
US8453121B2 (en) | Managing the tracing of the execution of a computer program | |
KR101393992B1 (ko) | 정보 처리 장치, 정보 처리 방법, 및 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 | |
US20110209155A1 (en) | Speculative thread execution with hardware transactional memory | |
TW201019110A (en) | Managing cache data and metadata | |
US8380660B2 (en) | Database system, database update method, database, and database update program | |
JP2005235228A5 (ja) | ||
JP2009032252A (ja) | クラッシュダンプ用のメモリアロケーション | |
JP3611295B2 (ja) | コンピュータシステム、メモリ管理方法及び記憶媒体 | |
US20100058344A1 (en) | Accelerating a quiescence process of transactional memory | |
US20100017581A1 (en) | Low overhead atomic memory operations | |
CN105074656B (zh) | 管理并发谓词表达式的方法和装置 | |
US20100057740A1 (en) | Accelerating a quiescence process of transactional memory | |
US11861390B1 (en) | Transparent disk caching for virtual machines | |
US9575827B2 (en) | Memory management program, memory management method, and memory management device | |
US8132174B2 (en) | Concurrency management in cluster computing of business applications | |
US7010725B2 (en) | Method and apparatus for getting dump of a computer system | |
CN103226499A (zh) | 一种恢复内部存储器中的异常数据的方法及装置 | |
US20150160945A1 (en) | Allocation of load instruction(s) to a queue buffer in a processor system based on prediction of an instruction pipeline hazard | |
JP2008269488A (ja) | ロールバック方法及び情報処理装置 | |
JP2009211416A (ja) | プロセッサキャッシュ制御装置、方法、プロセッサ及びコンピューター | |
US20100229167A1 (en) | Testing operating system isolation using error injection | |
US9626256B2 (en) | Determining failure context in hardware transactional memories | |
JP2009230479A (ja) | マイクロプロセッサ |