JP6818962B2 - メモリ履歴管理システム - Google Patents
メモリ履歴管理システム Download PDFInfo
- Publication number
- JP6818962B2 JP6818962B2 JP2020549909A JP2020549909A JP6818962B2 JP 6818962 B2 JP6818962 B2 JP 6818962B2 JP 2020549909 A JP2020549909 A JP 2020549909A JP 2020549909 A JP2020549909 A JP 2020549909A JP 6818962 B2 JP6818962 B2 JP 6818962B2
- Authority
- JP
- Japan
- Prior art keywords
- history
- memory
- history information
- data value
- entry
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
- G06F12/0895—Caches characterised by their organisation or structure of parts of caches, e.g. directory or tag array
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Memory System (AREA)
- Debugging And Monitoring (AREA)
Description
例えば、特許文献1には、次のようなシステムが開示されている。
システムバスに対して発行されるコマンドが監視される。また、キャッシュメモリがバススヌープ機能を備える。キャッシュメモリの更新が発生すると、更新前のデータが記憶部に格納される。そして、記憶部に格納されたデータがメインメモリに書き戻されることにより、メインメモリがチェックポイント時の状態に戻される。
前記キャッシュメモリは、前記メインメモリの中の複数の記憶領域に対応する複数のエントリを有する。
それぞれのエントリは、記録フラグを有する。
前記メモリ履歴管理システムは、
前記1つ以上の履歴情報が記録される履歴メモリと、
ライト命令が発生したときに、発生したライト命令の対象となる記憶領域である対象領域に対応するエントリの記録フラグを参照し、参照された記録フラグが、履歴情報の未記録を意味する未記録状態値を示す場合に、前記対象領域から前記キャッシュメモリへ読み込まれたデータ値を含む履歴情報を前記履歴メモリに記録し、且つ、参照された記録フラグに、履歴情報の記録済みを意味する記録済み状態値を設定する履歴記録回路と、を備える。
メモリ履歴管理システム100について、図1から図24に基づいて説明する。
図1に基づいて、メモリ履歴管理システム100の構成を説明する。
メモリ履歴管理システム100は、コンピュータ200に備わる。
プロセッサ201の具体例は、CPU(Central Processing Unit)である。
メインメモリ202の具体例は、RAM(Random Access Memory)である。
ライトアロケート方式は、ライトミス(ライト命令が発生したときのキャッシュミス)が発生したときに、メインメモリからキャッシュメモリへデータ値が読み込まれる方式である。ライトアロケート方式では、リードミス(リード命令が発生したときのキャッシュミス)が発生したときにも、メインメモリからキャッシュメモリへデータ値が読み込まれる。データ値は単にデータともいう。
メモリ履歴管理システム100では、キャッシュミス時にメインメモリ202からキャッシュメモリ110へ読み込まれるデータ値が利用される。これにより、履歴情報を記録するためにメインメモリ202からデータ値を取得する、という動作が不要となる。
履歴メモリ120は、メインメモリ202とは別に用意されたメモリであってもよいし、メインメモリ202の一部であってもよい。
メモリ再現部130は、ソフトウェアとハードウェアとのいずれによって実現されてもよい。または、メモリ再現部130は、ソフトウェアとハードウェアとの組み合わせによって実現されてもよい。
メモリ再現部130がソフトウェアによって実現される場合、例えば、コンピュータ200をメモリ再現部130として機能させるためのプログラムがプロセッサ201によって実行される。
メモリ再現部130がハードウェアによって実現される場合、例えば、メモリ再現部130として機能する専用回路が実装される。
メインメモリ202は、複数の記憶領域を有する。
それぞれの記憶領域は、アドレスによって識別される。
キャッシュメモリ110は、複数のエントリ111を有する。複数のエントリ111は、メインメモリ202の中の複数の記憶領域に対応する。
それぞれのエントリ111は、エントリ番号によって識別される。
アドレス欄には、エントリ111に対応する記憶領域のアドレスが格納される。
データ値欄には、エントリ111に対応する記憶領域のデータ値が格納される。
フラグ欄は、有効フラグ(v)とダーティフラグ(d)と記録フラグ(r)とを有する。
有効フラグ(v)は、アドレスおよびデータ値が有効であるか否かを示す。アドレスおよびデータ値が有効であることを意味するフラグ値を「有効値」と称する。アドレスおよびデータ値が無効であることを意味するフラグ値を「無効値」と称する。つまり、有効フラグ(v)には、無効値(0)または有効値(1)が設定される。有効フラグ(v)の初期値は無効値(0)である。
ダーティフラグ(d)は、データ値の書き込みが行われたか否かを示す。具体的には、ダーティフラグ(d)は、エントリ111に対応する記憶領域に対するライト命令が発生したか否かを示す。データ値の書き込みが行われたことを意味するフラグ値を「書き込み状態値」と称する。データ値の書き込みが行われていないことを意味するフラグ値を「不変状態値」と称する。つまり、ダーティフラグ(d)には、不変状態値(0)または書き込み状態値(1)が設定される。ダーティフラグ(d)が書き込み状態値(1)を示す場合、エントリ111のデータ値欄に格納されているデータ値が、メインメモリ202の記憶領域に格納されているデータ値と一致していない可能性がある。このエントリ111が無効化される場合には、データ値欄に格納されているデータ値をメインメモリ202の記憶領域に書き込む必要がある。ダーティフラグ(d)の初期値は不変状態値(0)である。
記録フラグ(r)は、履歴情報が記録されたか否かを示す。履歴情報の記録済みを意味するフラグ値を「記録済み状態値」と称する。履歴情報の未記録を意味するフラグ値を「未記録状態値」と称する。つまり、記録フラグ(r)には、未記録状態値(0)または記録済み状態値(1)が設定される。記録フラグ(r)の初期値は未記録状態値(0)である。
キャッシュ制御回路112は、キャッシュミス時にメインメモリ202の記憶領域からデータ値を読み込み、読み込んだデータ値をキャッシュメモリ110のエントリ111に格納する。
履歴記録回路113は、1つ以上の履歴情報を履歴メモリ120に記録する。
記憶領域とエントリ111とは、ダイレクトマップ方式で互いに対応付けられている。つまり、記憶領域のアドレスとエントリ111のエントリ番号とが互いに対応付けられている。
本実施の形態において、アドレス“0xN1N2N3”の記憶領域は、エントリ番号“N2”のエントリ111に対応付けられている。“N1”、“N2”および“N3”は一桁の整数を表す。
例えば、アドレス“0x100”の記憶領域は、エントリ番号“0”のエントリ111に対応付けられている。アドレス“0x110”の記憶領域とアドレス“0x110”の記憶領域とのそれぞれは、エントリ番号“1”のエントリ111に対応付けられている。アドレス“0x120”の記憶領域は、エントリ番号“2”のエントリ111に対応付けられている。アドレス“0x130”の記憶領域は、エントリ番号“3”のエントリ111に対応付けられている。
履歴メモリ120には、1つ以上の履歴情報121が記録される。
それぞれの履歴情報121は、履歴番号(#)と処理識別子とアドレスとデータ値とを含む。
履歴番号(#)は、履歴情報121を識別する。
処理識別子は、データ処理を識別する。データ処理の具体例は周期処理である。周期処理は、プロセッサ201によって周期的に実行される。処理識別子の具体例は周期番号である。周期番号は周期処理を識別する。
メモリ履歴管理システム100の動作はメモリ履歴管理方法に相当する。
メモリ履歴管理方法には、履歴記録方法とメモリ再現方法とが含まれる。
履歴記録方法は、履歴記録回路113の動作に相当する。
メモリ再現方法は、メモリ再現部130の動作に相当する。
プロセッサ201は、複数のデータ処理を順番に実行する。
それぞれのデータ処理には、1つ以上のアクセス命令が含まれる。アクセス命令は、リード命令とライト命令との総称である。リード命令は、データ値を読み出す命令である。ライト命令は、データ値を書き込む命令である。
以降の説明において、アクセス命令の発生は、プロセッサ201によるアクセス命令の実行に相当する。
発生したアクセス命令の情報は処理識別子を含む。この処理識別子は、実行中のデータ処理を識別する。実行中のデータ処理は、発生したアクセス命令を含むデータ処理である。
発生したアクセス命令の情報はアドレスを含む。このアドレスは、メインメモリ202の中の複数の記憶領域のうち、発生したアクセス命令の対象となる記憶領域を識別する。
発生したアクセス命令の情報はアクセス種類を含む。このアクセス種類は、発生したアクセス命令の種類である。
発生したアクセス命令がライト命令である場合、発生したアクセス命令の情報はライト値を含む。ライト値は、ライト命令で指定されたデータ値、すなわち、ライト後のデータ値である。
キャッシュメモリ110の中の複数のエントリ111のうち、対象領域に対応するエントリ111を「対応エントリ」と称する。
複数のデータ処理のうち、発生したアクセス命令を含むデータ処理を「対象処理」と称する。つまり、対象処理は、実行中のデータ処理である。
但し、対象領域のデータ値が対応エントリに格納されている場合、キャッシュ制御回路112は、データ値の読み込みとデータ値の格納とを行わない。
また、対象領域とは別の記憶領域のデータ値が対応エントリのデータ値欄に格納されている場合、キャッシュ制御回路112はライトバックを行う。つまり、キャッシュ制御回路112は、対応エントリのデータ値欄に格納されているデータ値を該当の記憶領域に書き出した後に、読み込んだデータ値を対応エントリのデータ値欄に格納する。
(1)発生したアクセス命令がライト命令である場合、キャッシュ制御回路112は、対応エントリのデータ値欄に格納されているデータ値(ライト前のデータ値)をライト後のデータ値に更新する。
さらに、キャッシュ制御回路112は、対応エントリのダーティフラグに書き込み状態値を設定する。
(2)キャッシュ制御回路112は、対象領域のアドレスを対応エントリのアドレス欄に設定する。
(3)キャッシュ制御回路112は、対応エントリの有効フラグに有効値を設定する。
具体的には、発生したアクセス命令の情報、および、対象領域から読み込まれたデータ値、などが履歴記録回路113に入力される。
ステップS101からステップS106は、アクセス命令が発生する毎に実行される。
発生したアクセス命令がライト命令である場合、処理はステップS102に進む。
発生したアクセス命令がリード命令である場合、処理はステップS105に進む。
対応エントリの記録フラグが未記録状態値を示す場合、処理はステップS103に進む。
対応エントリの記録フラグが記録済み状態値を示す場合、処理はステップS105に進む。
記録される履歴情報は、対象処理の処理番号と、対象領域のアドレスと、ライト前のデータ値とを含む。
ライト前のデータ値は、キャッシュミス時に対象領域からキャッシュメモリ110へ読み込まれたデータ値である。
但し、対象処理の開始時に対象領域のデータ値が対応エントリのデータ値欄に格納されていた場合、ライト前のデータ値は、ライト後のデータ値が対応エントリのデータ値欄に書き込まれる前に対応エントリのデータ値欄に格納されていたデータ値である。
(1)rクリア命令がプロセッサ201から入力された場合に、履歴記録回路113は、対象処理が終了したと判定する。rクリア命令は、それぞれのエントリ111の記録フラグをクリアするための命令である。
(2)外部からrクリア信号が入力された場合に、履歴記録回路113は、対象処理が終了したと判定する。rクリア信号は、それぞれのエントリ111の記録フラグをクリアするための命令である。
(3)発生したアクセス命令が特定領域を対象とするアクセス命令である場合に、履歴記録回路113は、対象処理が終了したと判定する。特定領域は、データ処理の終了時にアクセスされる記憶領域である。
対象処理が終了していない場合、履歴記録方法の処理は終了する。
ステップS106の後、履歴記録方法の処理は終了する。
まず、第1データ処理が実行され、その後、第2データ処理が実行されるものとする。
図7のアクセス命令リスト211は、第1データ処理に含まれる7つのアクセス命令を示している。
図8のアクセス命令リスト212は、第2データ処理に含まれる3つのアクセス命令を示している。
図9において、第1データ処理の第1アクセス命令が発生した。第1データ処理の第1アクセス命令は、アドレス“0x100”の記憶領域を対象とするリード命令である。
キャッシュ制御回路112は、アドレス“0x100”の記憶領域からデータ値“0xaaaa”を読み込み、読み込んだデータ値を第0エントリ111のデータ値欄に格納する。また、キャッシュ制御回路112は、第0エントリ111のアドレス欄にアドレス“0x100”を設定する。そして、キャッシュ制御回路112は、有効フラグ(v)に有効値(1)を設定する。
第1アクセス命令はリード命令であるため、履歴記録回路113は、履歴情報121を記録しない。
キャッシュ制御回路112は、アドレス“0x110”の記憶領域からデータ値“0xbbbb”を読み込み、読み込んだデータ値を第1エントリ111のデータ値欄に格納する。また、キャッシュ制御回路112は、第1エントリ111のアドレス欄にアドレス“0x110”を設定する。そして、キャッシュ制御回路112は、第1エントリ111の有効フラグ(v)に有効値(1)を設定する。
さらに、キャッシュ制御回路112は、第1エントリ111のデータ値欄にライト値“0x1111”を書き込む。そして、キャッシュ制御回路112は、第1エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
履歴記録回路113は、アドレス“0x110”の記憶領域から読み込まれたライト前のデータ値“0xbbbb”を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“1”とアドレス“0x110”とが含まれる。そして、履歴記録回路113は、第1エントリの記録フラグ(r)に記録済み状態値(1)を設定する。
キャッシュ制御回路112は、アドレス“0x120”の記憶領域からデータ値“0xcccc”を読み込み、読み込んだデータ値を第2エントリ111のデータ値欄に格納する。また、キャッシュ制御回路112は、第2エントリ111のアドレス欄にアドレス“0x120”を設定する。そして、キャッシュ制御回路112は、有効フラグ(v)に有効値(1)を設定する。
第2アクセス命令はリード命令であるため、履歴記録回路113は、履歴情報121を記録しない。
アドレス“0x120”の記憶領域から読み出されたデータ値“0xcccc”は、第2エントリ111に格納済みである。
履歴記録回路113は、第2エントリ111からライト前のデータ値“0xcccc”を取得し、取得したデータ値を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“1”とアドレス“0x120”とが含まれる。そして、履歴記録回路113は、第2エントリ111の記録フラグ(r)に記録済み状態値(1)を設定する。
キャッシュ制御回路112は、第2エントリのデータ値欄にライト値“0xcccc”を書き込む。そして、キャッシュ制御回路112は、第2エントリのダーティフラグ(d)に書き込み状態値(1)を設定する。
キャッシュ制御回路112は、アドレス“0x130”の記憶領域からデータ値“0xdddd”を読み込み、読み込んだデータ値を第3エントリ111のデータ値欄に格納する。また、キャッシュ制御回路112は、第3エントリ111のアドレス欄にアドレス“0x130”を設定する。そして、キャッシュ制御回路112は、第3エントリ111の有効フラグ(v)に有効値(1)を設定する。
さらに、キャッシュ制御回路112は、第3エントリ111のデータ値欄にライト値“0xdddd”を書き込む。そして、キャッシュ制御回路112は、第3エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
履歴記録回路113は、アドレス“0x130”の記憶領域から読み込まれたライト前のデータ値“0xdddd”を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“1”とアドレス“0x130”とが含まれる。そして、履歴記録回路113は、第3エントリの記録フラグ(r)に記録済み状態値(1)を設定する。
アドレス“0x130”の記憶領域から読み出されたデータ値“0xdddd”は、第3エントリ111に格納済みである。
第3エントリ111の記録フラグ(r)が記録済み値(1)を示すため、履歴記録回路113は、履歴情報121を記録しない。
キャッシュ制御回路112は、第3エントリ111のデータ値欄にライト値“0x2222”を書き込む。そして、キャッシュ制御回路112は、第3エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
アドレス“0x130”の記憶領域に対するデータ値“0x2222”が、第3エントリ111に格納されている。
第3エントリ111の記録フラグ(r)が記録済み値(1)を示すため、履歴記録回路113は、履歴情報121を記録しない。
図17において、第2データ処理の第1アクセス命令が発生した。第2データ処理の第1アクセス命令は、アドレス“0x110”の記憶領域を対象とするライト命令である。ライト値は“0x3333”である。
アドレス“0x110”の記憶領域に対するデータ値“0x1111”が、第1エントリ111のデータ値欄に格納されている。
第1エントリ111の記録フラグ(r)が未記録状態値(0)を示すため、履歴記録回路113は、履歴情報121を記録する。具体的には、履歴記録回路113は、第1エントリ111のデータ値欄からデータ値“0x1111”を取得し、取得されたデータ値を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“2”とアドレス“0x110”とが含まれる。そして、履歴記録回路113は、第1エントリ111の記録フラグ(r)に記録済み状態値(1)を設定する。
キャッシュ制御回路112は、第1エントリ111のデータ値欄にライト値“0x3333”を書き込む。そして、キャッシュ制御回路112は、第1エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
アドレス“0x210”の記憶領域に対応する第1エントリ111には、アドレス“0x110”の記憶領域に対するデータ値“0x3333”が格納されている。
そのため、キャッシュ制御回路112はライトバックを行う。つまり、キャッシュ制御回路112は、第1エントリ111のデータ値欄に格納されているデータ値“0x3333”をアドレス“0x110”の記憶領域に書き込む。
ライトバックの後、キャッシュ制御回路112(または履歴記録回路113)は、第1エントリ111の記録フラグ(r)に未記録状態値(0)を設定する。
さらに、キャッシュ制御回路112は、第1エントリ111のデータ値欄にライト値“0xeeee”を書き込む。そして、キャッシュ制御回路112は、第1エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
履歴記録回路113は、アドレス“0x210”の記憶領域から読み込まれたライト前のデータ値“0xeeee”を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“2”とアドレス“0x210”とが含まれる。そして、履歴記録回路113は、第1エントリの記録フラグ(r)に記録済み状態値(1)を設定する。
アドレス“0x110”の記憶領域に対応する第1エントリ111には、アドレス“0x210”の記憶領域に対するデータ値“0xeeee”が格納されている。
そのため、キャッシュ制御回路112はライトバックを行う。つまり、キャッシュ制御回路112は、第1エントリ111のデータ値欄に格納されているデータ値“0xeeee”をアドレス“0x210”の記憶領域に書き込む。
ライトバックの後、キャッシュ制御回路112(または履歴記録回路113)は、第1エントリ111の記録フラグ(r)に未記録状態値(0)を設定する。
さらに、キャッシュ制御回路112は、第1エントリ111のデータ値欄にライト値“0x3333”を書き込む。そして、キャッシュ制御回路112は、第1エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
履歴記録回路113は、アドレス“0x110”の記憶領域から読み込まれたライト前のデータ値“0x3333”を含む履歴情報121を生成し、生成された履歴情報121を履歴メモリ120に記録する。履歴情報121には、さらに、処理識別子“2”とアドレス“0x110”とが含まれる。そして、履歴記録回路113は、第1エントリの記録フラグ(r)に記録済み状態値(1)を設定する。
ステップS111において、メモリ再現部130は、1つ以上の履歴情報が履歴メモリ120に記録されているか判定する。
この場合について、目的のデータ処理以後に実行されたデータ処理の処理識別子を含んだ1つ以上の履歴情報を単に1つ以上の履歴情報という。
1つ以上の履歴情報が履歴メモリ120に記録されていない場合、メモリ再現方法の処理は終了する。
この逆順は、1つ以上の履歴情報の新しい順に相当する。
具体的には、対応領域は、メインメモリ202の中の複数の記憶領域のうち、選択された履歴情報に含まれるアドレスで識別される記憶領域である。
未選択の履歴情報が有る場合、処理はステップS112に進む。
未選択の履歴情報が無い場合、メモリ再現方法の処理は終了する。
例えば、目的のデータ処理が開始されたときのメインメモリ202の状態が再現される。
履歴メモリ120には、図21に示す6つの履歴情報121が記録されているものとする。
メモリ再現部130は、処理識別子“2”を含んだ3つの履歴情報121から各々の履歴情報121を記録順とは逆順に選択し、選択された履歴情報121に対応する記憶領域に選択された履歴情報121に含まれるデータ値を書き込む。
まず、メモリ再現部130は、履歴番号“6”の履歴情報121を選択する。履歴番号“6”の履歴情報121に対応する記憶領域は、アドレス“0x110”の記憶領域である。また、履歴番号“6”の履歴情報121に含まれるデータ値は“0x3333”である。そのため、メモリ再現部130は、アドレス“0x110”の記憶領域にデータ値“0x3333”を書き込む。
次に、メモリ再現部130は、履歴番号“5”の履歴情報121を選択する。履歴番号“5”の履歴情報121に対応する記憶領域は、アドレス“0x210”の記憶領域である。また、履歴番号“5”の履歴情報121に含まれるデータ値は“0xeeee”である。そのため、メモリ再現部130は、アドレス“0x210”の記憶領域にデータ値“0xeeee”を書き込む。
そして、メモリ再現部130は、履歴番号“4”の履歴情報121を選択する。履歴番号“5”の履歴情報121に対応する記憶領域は、アドレス“0x210”の記憶領域である。また、履歴番号“5”の履歴情報121に含まれるデータ値は“0xeeee”である。そのため、メモリ再現部130は、アドレス“0x210”の記憶領域にデータ値“0xeeee”を書き込む。
メモリ再現部130は、図23で説明した処理の後に、以下の処理を実行する。
メモリ再現部130は、処理識別子“1”を含んだ3つの履歴情報121から各々の履歴情報121を記録順とは逆順に選択し、選択された履歴情報121に対応する記憶領域に選択された履歴情報121に含まれるデータ値を書き込む。
まず、メモリ再現部130は、履歴番号“3”の履歴情報121を選択する。履歴番号“3”の履歴情報121に対応する記憶領域は、アドレス“0x130”の記憶領域である。また、履歴番号“3”の履歴情報121に含まれるデータ値は“0xdddd”である。そのため、メモリ再現部130は、アドレス“0x130”の記憶領域にデータ値“0xdddd”を書き込む。
次に、メモリ再現部130は、履歴番号“2”の履歴情報121を選択する。履歴番号“2”の履歴情報121に対応する記憶領域は、アドレス“0x120”の記憶領域である。また、履歴番号“2”の履歴情報121に含まれるデータ値は“0xcccc”である。そのため、メモリ再現部130は、アドレス“0x120”の記憶領域にデータ値“0xcccc”を書き込む。
そして、メモリ再現部130は、履歴番号“1”の履歴情報121を選択する。履歴番号“1”の履歴情報121に対応する記憶領域は、アドレス“0x110”の記憶領域である。また、履歴番号“1”の履歴情報121に含まれるデータ値は“0xbbbb”である。そのため、メモリ再現部130は、アドレス“0x110”の記憶領域にデータ値“0xbbbb”を書き込む。
メモリ履歴管理システム100は、キャッシュメモリ110の各エントリに記録フラグを有する。履歴フラグは、履歴メモリ120への書き込みの有無を示す。また、メモリ履歴管理システム100は、メインメモリ202の中の最新のデータ値と履歴メモリ120の中の履歴情報とに基づいて、メインメモリ202の中の過去のデータ値を再現するメモリ再現部130を備える。
これにより、メモリ履歴管理システム100は、メインメモリ202の状態を少ないメモリ容量で再現することができる。例えば、周期処理を行うコンピュータシステムにおいて、メモリ履歴管理システム100は、過去の周期のメモリ値を少ないメモリ容量で再現することができる。メモリ値は、メインメモリ202の中のデータ値である。
最新のメモリ値との差分を示す履歴情報に基づいて過去のデータ値が再現されるため、再現に必要なデータ量が少ない。履歴メモリ120に空きが無くなった場合、メモリ履歴管理システム100は、古い順に履歴情報を上書きすることによって、新たな履歴情報の記録を続けることができる。一方、初期値とライト時の差分データとを記録する方式では、履歴メモリに空きが無くなったために古い履歴情報が上書きされてしまうと、過去のデータ値を再現することができない。
キャッシュメモリ110の各エントリが記録フラグを有することにより、同じエントリに対する複数回のライト命令について履歴情報の記録を抑制することができる。具体的には、同じエントリに対する複数回のライト命令が発生しても、履歴情報の記録を1回にすることができる。そのため、履歴情報の記録量が削減される。
メモリ履歴管理システム100において、ライトアロケート方式のキャッシュメモリ110が利用される。そして、キャッシュミス時にメインメモリ202から読み出されるデータ値がライト前のデータ値として利用される。これにより、履歴情報の記録のためにメインメモリ202からライト前のデータ値を取得する必要がなくなる。
メモリ履歴管理システム100において、履歴情報の記録はハードウェア(履歴記録回路113)によって行われる。そのため、ソフトウェア(データ処理)の処理時間に影響を与えずに、履歴情報の記録を行うことができる。
データ処理毎にメインメモリ202の再現を行う必要が無い場合、データ処理毎に履歴情報を管理する必要はない。つまり、履歴情報に処理識別子を含める必要はない。
ライト後のメモリ値がライト前のメモリ値と同じである場合に履歴情報を記録しない形態について、主に実施の形態1と異なる点を図25から図29に基づいて説明する。
メモリ履歴管理システム100の構成は、実施の形態1における構成と同じである(図1から図5を参照)。
図25に基づいて、履歴記録方法を説明する。
ステップS201において、履歴記録回路113は、発生したアクセス命令の種類を判定する。
ステップS201は、実施の形態1におけるステップS101と同じである(図6参照)。
発生したアクセス命令がライト命令である場合、処理はステップS202に進む。
発生したアクセス命令がリード命令である場合、処理はステップS206に進む。
ステップS202は、実施の形態1におけるステップS102と同じである(図6参照)。
対応エントリの記録フラグが未記録状態値を示す場合、処理はステップS203に進む。
対応エントリの記録フラグが記録済み状態値を示す場合、処理はステップS206に進む。
ライト後のデータ値がライト前のデータ値と異なる場合、処理はステップS204に進む。
ライト後のデータ値がライト前のデータ値と同じである場合、処理はステップS206に進む。
ステップS204は、実施の形態1におけるステップS103と同じである(図6参照)。
ステップS205は、実施の形態1におけるステップS104と同じである(図6参照)。
対象処理が終了した場合、履歴記録回路113は、それぞれのエントリ111の記録フラグに未記録状態値を設定する。
ステップS206は、実施の形態1におけるステップS105およびステップS106と同じである(図6参照)。
まず、第1データ処理が実行され、その後、第2データ処理が実行されるものとする。
第1データ処理において、実施の形態1と同じく、7つのアクセス命令が発生する(図7参照)。
第2データ処理において、実施の形態1と同じく、3つのアクセス命令が発生する(図8参照)。
アドレス“0x120”の記憶領域から読み出されたライト前のデータ値“0xcccc”は、第2エントリ111に格納済みである。
ライト後のデータ値“0xcccc”は、ライト前のデータ値“0xcccc”と同じである。
そのため、履歴記録回路113は、履歴情報121を記録しない。また、履歴記録回路113は、第2エントリ111の記録フラグ(r)に記録済み状態値(1)を設定しない。
アドレス“0x210”の記憶領域に対応する第1エントリ111には、アドレス“0x110”の記憶領域に対するデータ値“0x3333”が格納されている。
そのため、キャッシュ制御回路112はライトバックを行う。つまり、キャッシュ制御回路112は、第1エントリ111のデータ値欄に格納されているデータ値“0x3333”をアドレス“0x110”の記憶領域に書き込む。
ライトバックの後、キャッシュ制御回路112(または履歴記録回路113)は、第1エントリ111の記録フラグ(r)に未記録状態値(0)を設定する。
図27における処理は、実施の形態1の図18における処理と同じである。
さらに、キャッシュ制御回路112は、第1エントリ111のデータ値欄にライト値“0xeeee”を書き込む。そして、キャッシュ制御回路112は、第1エントリ111のダーティフラグ(d)に書き込み状態値(1)を設定する。
ライト後のデータ値“0xeeee”は、ライト前のデータ値“0xeeee”と同じである。
そのため、履歴記録回路113は、履歴情報121を記録しない。また、履歴記録回路113は、第1エントリ111の記録フラグ(r)に記録済み状態値(1)を設定しない。
履歴メモリ120には、4つの履歴情報121が記録されている。一方、実施の形態1では、6つの履歴情報121が記録された(図21参照)。
第1履歴情報121は、実施の形態1における第1履歴情報121に対応する。
第2履歴情報121は、実施の形態1における第3履歴情報121に対応する。
第3履歴情報121は、実施の形態1における第4履歴情報121に対応する。
第4履歴情報121は、実施の形態1における第6履歴情報121に対応する。
実施の形態1における第2履歴情報121と実施の形態1における第5履歴情報121とのそれぞれに対応する履歴情報121は、図29の履歴メモリ120に記録されていない。
データ値が変化しない場合に履歴情報が記録されないため、履歴メモリ120の容量を削減することができる。メインメモリ202の一部が履歴メモリ120として利用される場合、履歴メモリ120への書き込み回数が削減されることにより、メインメモリ202における帯域削減を図ることができる。
履歴記録回路113の代わりにキャッシュ制御回路112が、ライト後のデータ値をライト前のデータ値と比較してもよい。
ライト後のデータ値がライト前のデータ値と同じである場合、キャッシュ制御回路112は、対応エントリのダーティフラグに書き込み状態値を設定しない。つまり、対応エントリのダーティフラグは不変状態値を示す。履歴記録回路113は、対応エントリのダーティフラグを参照する。対応エントリのダーティフラグが書き込み状態値を示さない場合、つまり、対応エントリのダーティフラグが不変状態値を示す場合、履歴記録回路113は、履歴情報を記録しない。
メモリ履歴管理システム100の構成は、図1から図5において説明した構成に限られない。
例えば、キャッシュ制御回路112と履歴記録回路113とのそれぞれは、キャッシュメモリ110の外部に設けられてもよい。
例えば、メモリ再現部130は、コンピュータ200とは別のコンピュータに設けられてもよい。
メモリ再現装置220は、コンピュータ200とは別に設けられたコンピュータであり、プロセッサ221およびメインメモリ222などのハードウェアを備える。また、メモリ再現装置220は、メモリ再現部223というソフトウェア要素を備える。
メインメモリ222にはメモリ再現プログラムが記憶され、プロセッサ221がメモリ再現プログラムを実行する。
メモリ再現プログラムは、メモリ再現部223としてコンピュータを機能させるためのプログラムである。
但し、メモリ再現部223は、専用回路のようなハードウェアによって実現されてもよい。
Claims (7)
- 1つ以上のアクセス命令が発生する前のメインメモリの状態を再現するために、キャッシュミス時に前記メインメモリからキャッシュメモリへ読み込まれるデータ値を利用することによって、1つ以上の履歴情報を管理するメモリ履歴管理システムであって、
前記キャッシュメモリは、前記メインメモリの中の複数の記憶領域に対応する複数のエントリを有し、
それぞれのエントリは、記録フラグを有し、
前記メモリ履歴管理システムは、
前記1つ以上の履歴情報が記録される履歴メモリと、
ライト命令が発生したときに、発生したライト命令の対象となる記憶領域である対象領域に対応するエントリの記録フラグを参照し、参照された記録フラグが、履歴情報の未記録を意味する未記録状態値を示す場合に、前記対象領域から前記キャッシュメモリへ読み込まれたデータ値を含む履歴情報を前記履歴メモリに記録し、且つ、参照された記録フラグに、履歴情報の記録済みを意味する記録済み状態値を設定する履歴記録回路と、を備える
メモリ履歴管理システム。 - 前記履歴メモリに記録された1つ以上の履歴情報から各々の履歴情報を記録順とは逆順に選択し、選択された履歴情報に対応する記憶領域に選択された履歴情報に含まれるデータ値を書き込むことによって、前記1つ以上のアクセス命令が発生する前の前記メインメモリの状態を再現するメモリ再現部を備える
請求項1に記載のメモリ履歴管理システム。 - 前記履歴記録回路は、
順番に実行される複数のデータ処理のそれぞれの実行中にライト命令が発生したときに、実行中のデータ処理を識別する処理識別子をさらに含む履歴情報を前記履歴メモリに記録し、
前記複数のデータ処理のそれぞれの終了時に、それぞれのエントリの記録フラグを前記未記録状態値に更新する
請求項1に記載のメモリ履歴管理システム。 - 目的のデータ処理以後に実行されたデータ処理の処理識別子を含んだ1つ以上の履歴情報から各々の履歴情報を記録順とは逆順に選択し、選択された履歴情報に対応する記憶領域に選択された履歴情報に含まれるデータ値を書き込むことによって、前記目的のデータ処理が開始されたときの前記メインメモリの状態を再現するメモリ再現部を備える
請求項3に記載のメモリ履歴管理システム。 - 前記履歴記録回路は、ライト命令が発生したときに、対象領域に対応する対応エントリの記録フラグを参照し、参照された記録フラグが前記未記録状態値を示す場合に、発生したライト命令のライト後のデータ値を、前記対象領域から前記キャッシュメモリへ読み込まれたライト前のデータ値と比較し、前記ライト後のデータ値が前記ライト前のデータ値と異なる場合に、前記ライト前のデータ値を含む履歴情報を前記履歴メモリに記録し、且つ、参照された記録フラグに前記記録済み状態値を設定する
請求項1から請求項4のいずれか1項に記載のメモリ履歴管理システム。 - 前記キャッシュメモリは、ライトアロケート方式のキャッシュメモリであり、
前記履歴記録回路は、ライトミス時に前記対象領域から前記キャッシュメモリへ読み込まれたデータ値を含む履歴情報を前記履歴メモリに記録する
請求項1から請求項5のいずれか1項に記載のメモリ履歴管理システム。 - 前記メモリ履歴管理システムは、前記キャッシュメモリを備え、
前記キャッシュメモリが、前記履歴記録回路を備える
請求項1から請求項6のいずれか1項に記載のメモリ履歴管理システム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2018/037979 WO2020075276A1 (ja) | 2018-10-11 | 2018-10-11 | メモリ履歴管理システム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP6818962B2 true JP6818962B2 (ja) | 2021-01-27 |
| JPWO2020075276A1 JPWO2020075276A1 (ja) | 2021-02-18 |
Family
ID=70164048
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2020549909A Expired - Fee Related JP6818962B2 (ja) | 2018-10-11 | 2018-10-11 | メモリ履歴管理システム |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP6818962B2 (ja) |
| TW (1) | TW202014899A (ja) |
| WO (1) | WO2020075276A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN118964232B (zh) * | 2024-10-16 | 2024-12-31 | 上海芯力基半导体有限公司 | 一种数据访问方法及处理器 |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3083786B2 (ja) * | 1996-09-30 | 2000-09-04 | 株式会社東芝 | メモリ更新履歴保存装置およびメモリ更新履歴保存方法 |
| JP2000181790A (ja) * | 1998-12-18 | 2000-06-30 | Toshiba Corp | メモリ更新履歴保存装置 |
-
2018
- 2018-10-11 JP JP2020549909A patent/JP6818962B2/ja not_active Expired - Fee Related
- 2018-10-11 WO PCT/JP2018/037979 patent/WO2020075276A1/ja not_active Ceased
-
2019
- 2019-04-26 TW TW108114651A patent/TW202014899A/zh unknown
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2020075276A1 (ja) | 2021-02-18 |
| WO2020075276A1 (ja) | 2020-04-16 |
| TW202014899A (zh) | 2020-04-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4688584B2 (ja) | ストレージ装置 | |
| EP2329361B1 (en) | Aggregation of write traffic to a data store | |
| US20040010663A1 (en) | Method for conducting checkpointing within a writeback cache | |
| US8914579B2 (en) | Access device, information recording device, controller, and information recording system | |
| TWI406127B (zh) | 更新使用者資料的方法 | |
| KR100370893B1 (ko) | 일괄 소거형 비휘발성 메모리 장치 | |
| CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
| JP2013222435A (ja) | 半導体記憶装置及びその制御方法 | |
| US20210263862A1 (en) | Maintaining ghost cache statistics for demoted data elements | |
| US20100205391A1 (en) | Memory system and managing method therefor | |
| JP2010152747A (ja) | ストレージシステム、ストレージのキャッシュ制御方法、及びキャッシュ制御プログラム | |
| JP5286796B2 (ja) | メモリ制御装置 | |
| CN104137100A (zh) | 数据库装置、程序及数据处理方法 | |
| JP2009020696A (ja) | 情報処理装置及びシステム | |
| JP6818962B2 (ja) | メモリ履歴管理システム | |
| US10430287B2 (en) | Computer | |
| CN112015159B (zh) | 一种基于双核mcu的故障记录存储方法及计算机系统 | |
| CN115048457B (zh) | 基于区块链的状态数据的处理方法、装置和存储介质 | |
| JP2008047155A (ja) | 一括消去型不揮発性メモリおよび携帯電話 | |
| JP2009020695A (ja) | 情報処理装置及びシステム | |
| JP2006099802A (ja) | 記憶制御装置およびキャッシュメモリの制御方法 | |
| JPH08137748A (ja) | コピーバックキャッシュを有するコンピュータ及びコピーバックキャッシュ制御方法 | |
| JP7572520B1 (ja) | ストレージ装置、ストレージ制御方法、及びプログラム | |
| JPH0784886A (ja) | キャッシュメモリ制御方法およびキャッシュメモリ制御装置 | |
| TW201418984A (zh) | 保護碟資料完整性的方法及實現其之電腦程式產品 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20201105 |
|
| A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20201105 |
|
| A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20201124 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20201201 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201228 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6818962 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |