(57)【特許請求の範囲】
【請求項１】
命令シーケンスに応答してデータ処理操作を遂行可能であり、前記データ処理操作がメモリからデータ項目を取り出す読み込み操作及びデータ項目を前記メモリに書き込む書き込み操作を含み、前記メモリが不揮発性メモリである、プロセッサ・コアと、
前記命令シーケンスを実行する場合に、前記プロセッサ・コアにより前記メモリから取り出され、前記メモリに書き込まれる前記データ項目のローカル・コピーを格納可能なライトバック・キャッシュと、
前記プロセッサ・コアにより始動された前記書き込み操作の表示を格納可能な記憶ユニットと、を備えるデータを処理する装置であって、
前記プロセッサ・コアが、
前記プロセッサ・コアによる前記書き込み操作の対象であり、そのための表示が前記記憶ユニットに格納されるデータ項目の前記ローカル・コピーを前記ライトバック・キャッシュから前記メモリへとはき出させること、及び、
前記記憶ユニットに格納された前記書き込み操作の前記表示を消去すること、
により前記命令シーケンス内の終了命令に応答可能である、
データを処理する装置。
【請求項２】
前記不揮発性メモリがバイト・アドレス可能である、請求項１に記載の装置。
【請求項３】
前記プロセッサ・コアがさらに、前記プロセッサ・コアにより始動される前記書き込み操作の前記表示を前記命令シーケンス内の開始命令の後に前記記憶ユニットに格納させることが可能である、請求項１又は２のいずれかに記載の装置。
【請求項４】
前記メモリの所定の部分を指定する保留している書き込み命令に、前記開始命令が先行し、前記終了命令が後続する場合、前記プロセッサ・コアは、前記メモリの前記所定の部分への書き込み操作を遂行することのみが可能である、請求項３に記載の装置。
【請求項５】
前記メモリの所定の部分を指定する保留している書き込み命令に前記開始命令が先行せず、前記終了命令が後続していない場合、前記プロセッサ・コアは、前記メモリの前記所定の部分への書き込み操作が遂行されることを防止可能である、請求項３に記載の装置。
【請求項６】
前記プロセッサ・コアが、前記命令シーケンス内の前記終了命令及び後続の開始命令に対し、前記命令シーケンス内の前記後続する開始命令を、前記終了命令が完了するまで引き延ばすことにより応答可能である、請求項３に記載の装置。
【請求項７】
前記プロセッサ・コアが、前記命令シーケンス内の前記終了命令及び後続のメモリ操作命令に対し、前記命令シーケンス内の前記後続のメモリ操作命令を、前記終了命令が完了するまで引き延ばすことにより応答可能である、請求項３に記載の装置。
【請求項８】
前記プロセッサ・コアが、前記命令シーケンス内の前記終了命令及び後続の命令に対し、前記命令シーケンス内の前記後続の命令を、前記終了命令が完了するまで引き延ばすことにより応答可能である、請求項１から７までのいずれかに記載の装置。
【請求項９】
前記記憶ユニットが、ファーストイン・ファーストアウト記憶ユニットである、請求項１から８までのいずれかに記載の装置。
【請求項１０】
前記プロセッサ・コアが前記ファーストイン・ファーストアウト記憶ユニットを備える、請求項９に記載の装置。
【請求項１１】
前記記憶ユニットがライトバック・キャッシュにより提供され、前記プロセッサ・コアにより始動される前記書き込み操作の前記表示が、前記ライトバック・キャッシュに格納されるキャッシュ・ラインに関連したマーカとして格納され、前記マーカのうちの１つのマ−カに関する設定が、前記キャシュ・ラインのうちの１つのキャシュ・ラインの少なくとも一部を形成するデータ項目のローカル・コピーが前記プロセッサ・コアによる前記書き込み操作の前記対象であるか否かを示す、請求項１から８までのいずれかに記載の装置。
【請求項１２】
前記記憶ユニットが、前記プロセッサ・コアにより始動される前記書き込み操作の少なくとも部分的なメモリ・アドレスを、前記表示として格納可能である、請求項１から１０までのいずれかに記載の装置。
【請求項１３】
前記記憶ユニットに格納された前記表示が、前記書き込み操作に対応するデータ項目が前記ライトバック・キャッシュに格納される少なくとも１つのキャッシュ・ブロックを示す、請求項１から１０までのいずれかに記載の装置。
【請求項１４】
前記プロセッサ・コアがさらに、仮想対物理メモリ・アドレス・マッピングを決定するためにページ・テーブルを参照可能であり、前記ページ・テーブル内の各エントリが、前記エントリが所定のメモリ・アドレス空間に対応するか否かを示すフラグを含み、前記プロセッサ・コアが、前記プロセッサ・コアにより始動される前記所定のメモリ・アドレス空間への書き込み操作の表示を、前記記憶ユニットに格納させることが可能である、請求項１から１３までのいずれかに記載の装置。
【請求項１５】
前記プロセッサ・コアが、前記開始命令内の符号化に応答して、前記メモリ内のコントローラが、前記ライトバック・キャッシュから前記メモリへはき出されたデータ項目の前記ローカル・コピーをコミットするためのコマンドの受領を確認するまで、前記終了命令に後続する全ての命令を引き延ばすことが可能である、請求項３、又は請求項３に従属する場合の請求項４から１４までのいずれかに記載の装置。
【請求項１６】
前記プロセッサ・コアが、前記開始命令内の符号化に応答して、前記メモリ内のコントローラが、前記ライトバック・キャッシュから前記メモリにはき出されたデータ項目の前記ローカル・コピーが前記メモリにコミットされたことを示すまで、前記終了命令に後続する全ての命令を引き延ばすことが可能である、請求項３に記載、又は請求項３に従属する場合の請求項４から１５までのいずれかに記載の装置。
【請求項１７】
さらに、はき出し条件に応答して、前記プロセッサ・コアによる少なくとも１つの書き込み操作の前記対象であり、そのための表示が前記記憶ユニットに格納されている、前記ライトバック・キャッシュに格納された前記ローカル・コピーのうちの少なくとも１つのローカル・コピーを、前記ライトバック・キャッシュから前記メモリにはき出させ、前記記憶ユニットに格納された前記少なくとも１つの書き込み操作の少なくとも１つの対応する表示を消去可能である、請求項１から１６までのいずれかに記載の装置。
【請求項１８】
前記はき出し条件が、前記記憶ユニットが満杯である場合に満足される、請求項１７に記載の装置。
【請求項１９】
前記はき出し条件が、前記ライトバック・キャッシュに格納されたローカル・コピーが前記メモリに追い出される場合に満足される、請求項１７に記載の装置。
【請求項２０】
前記はき出し条件が、前記ライトバック・キャッシュに格納されたローカル・コピーがキャッシュ・コヒーレンス機構によりスヌープされ、そのための表示が前記記憶ユニットに格納される場合に満足される、請求項１７に記載の装置。
【請求項２１】
前記ライトバック・キャッシュが、前記ライトバック・キャッシュに格納されたキャシュ・ラインに関連したマーカを格納可能であり、マーカの設定が、対応する表示が前記記憶ユニットに格納されていることを示す、請求項２０に記載の装置。
【請求項２２】
前記記憶ユニットが内容アドレス可能記憶ユニットである、請求項１から２１までのいずれかに記載の装置。
【請求項２３】
命令シーケンスに応答してデータ処理操作を遂行するステップであって、前記データ処理操作がメモリからデータ項目を取り出す読み込み操作及びデータ項目を前記メモリに書き込む書き込み操作を含み、前記メモリが不揮発性メモリである、ステップと、
前記命令シーケンスを実行する場合に、前記メモリから取り出され、前記メモリに書き込まれる前記データ項目のローカル・コピーをライトバック・キャッシュに格納するステップと、
前記データ処理操作を遂行するステップにおいて始動された前記書き込み操作の表示を格納するステップと、
前記書き込み操作の対象であり、そのための表示が前記ローカル・コピーを格納するステップにおいて格納されたデータ項目の前記ローカル・コピーを前記ライトバック・キャッシュから前記メモリへとはき出させるステップ、及び
前記表示を格納するステップにおいて格納された前記書き込み操作の前記表示を消去するステップ、
により命令シーケンス内の終了命令に応答するステップと、
を含む、データを処理する方法。
【請求項２４】
命令シーケンスに応答してデータ処理操作を遂行するための手段であって、前記データ処理操作がデータ項目をメモリから取り出す読み込み操作及びデータ項目を前記メモリに書き込む書き込み操作を含み、前記メモリが不揮発性メモリである、データ処理操作を遂行するための手段と、
前記命令シーケンスを実行する場合に、前記メモリから取り出され、前記メモリに書き込まれる前記データ項目のローカル・コピーを格納するための手段であって、前記メモリに関連したライトバック構成を有する、格納するための手段と、
データ処理操作を遂行するための前記手段により始動された前記書き込み操作の表示を格納するための手段と、
前記書き込み操作の対象であり、そのための表示が前記ローカル・コピーを格納するための前記手段により格納されたデータ項目の前記ローカル・コピーを前記ライトバック・キャッシュから前記メモリへとはき出させ、且つ、
表示を格納するための前記手段において格納された前記書き込み操作の前記表示を消去する、
前記命令シーケンス内の終了命令に応答するための手段と、
を備える、データを処理するための装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、データ処理装置に関する。より詳細には、本開示は、ライトバック・キャッシュを有するデータ処理装置に関する。
【背景技術】
【０００２】
データ処理装置によってデータ処理操作されるデータ項目が格納される不揮発性メモリへのアクセスを、データ処理装置に提供することが知られている。不揮発性メモリであって、制御された再起動が原因であれ、又は予期しない事象が原因であれ、データ処理システムへの電力が中断され且つ復活された後、この不揮発性メモリの内容は、永続的である。
【０００３】
データ処理装置のプロセッサに関連したライトバック・キャッシュをデータ処理装置に提供することも知られており、ライトバック・キャッシュ内には、メモリから取り出され、メモリに書き出されるデータ項目のローカル・コピーが一時的に格納される。キャッシュはライトバック構成を有しているので、キャッシュ内に格納され、修正されるデータ項目は、必要な場合にのみ、例えばデータ項目を保持するキャッシュ・ラインがキャッシュから追い出されるため、メモリに書き出される。
【０００４】
しかしながら、ライトバック・キャッシュ及び不揮発性メモリへのアクセスの両者を提供することは、困難さを呈し得る。ライトバック・キャッシュ及び不揮発性メモリを備える装置を改善するための技術が、本明細書で説明される。
【発明の概要】
【課題を解決するための手段】
【０００５】
第１の構成例によれば、命令シーケンスに応答してデータ処理操作を遂行可能であり、データ処理操作が、メモリからデータを取り出す読み込み操作及びメモリにデータ項目を書き込む書き込み操作を含み、メモリが、不揮発性メモリである、プロセッサ・コアと、命令シーケンスを実行する場合にプロセッサ・コアによりメモリから取り出され、メモリに書き込まれるデータ項目のローカル・コピーを格納可能なライトバック・キャッシュと、プロセッサ・コアにより始動される書き込み操作の表示（ｉｎｄｉｃａｔｉｏｎ）を格納可能な記憶ユニットとを備え、プロセッサ・コアが、プロセッサ・コアにより書き込み操作の対象であり、そのための表示が記憶ユニットに格納されるデータ項目のローカル・コピーをライトバック・キャッシュからメモリへとはき出させること、及び記憶ユニットに格納された書き込み操作の表示を消去すること、により命令シーケンス内の終了命令に応答可能である、データ処理のための装置が提供される。
【０００６】
第２の構成例によれば、命令シーケンスに応答してデータ処理操作を遂行するステップであって、データ処理操作が、メモリからデータ項目を取り出す読み込み操作、及びメモリにデータ項目を書き込む書き込み操作を含み、メモリが不揮発性メモリである、ステップと、命令シーケンスを実行する場合にメモリから取り出され、メモリに書き込まれるデータ項目のローカル・コピーをライトバック・キャッシュ内に格納するステップと、データ処理操作を遂行するステップにおいて始動された書き込み操作の表示を格納するステップと、書き込み操作の対象であり、そのための表示がローカル・コピーを格納するステップにおいて格納されたデータ項目のローカル・コピーを、ライトバック・キャッシュからメモリへとはき出させるステップ、及び表示を格納するステップにおいて、格納された書き込み操作の表示を消去するステップにより命令シーケンス内の終了命令に応答するステップと、を含むデータ処理の方法が提供される。
【０００７】
第３の構成例によれば、命令シーケンスに応答してデータ処理操作を遂行するための手段であって、データ処理操作が、データ項目をメモリから取り出す読み込み操作及びデータ項目をメモリに書き込む書き込み操作を含み、メモリが不揮発性メモリである、データ処理操作を遂行するための手段と、命令シーケンスを実行する場合に、メモリから取り出され、メモリに書き込まれるデータ項目のローカル・コピーを格納するための手段であって、メモリに関するライトバック構成を有する、格納するための手段と、データ処理操作を遂行するための手段により始動される書き込み操作の表示を格納するための手段と、書き込み操作の対象であり、そのための表示がローカル・コピーを格納するための手段により格納されたデータ項目のローカル・コピーを、ライトバック・キャッシュからメモリへとはき出させ、且つ表示を格納するための手段において格納された書き込み操作の表示を消去する、命令シーケンス内の終了命令に応答するための手段とを含む、データを処理するための装置が提供される。
【０００８】
さらに、本技術は、添付の図面に例示されるそれらの実施例を参照して、例としてのみ説明される。
【図面の簡単な説明】
【０００９】
【図１】一実施例におけるデータ処理装置を含むデータ処理システムを模式的に例示する図である。
【図２】一実施例において、データ処理装置が仮想対物理的アドレス変換を決定するために使用されるページ・テーブルを模式的に例示する図である。
【図３】一実施例のプロセッサ・コア内で提供されるＦＩＦＯ記憶ユニットを模式的に例示する図である。
【図４】一実施例におけるレベル１キャッシュを模式的に例示する図である。
【図５】一実施例のデータ処理装置が実行することができる命令シーケンス例を示す図である。
【図６】一実施例における２つの命令の各々内の制御情報の符号化を示す図である。
【図７】一実施例のデータ処理装置内で行われる一連のステップを示す図である。
【図８】一実施例のデータ処理装置内で行われる一連のステップを示す図である。
【図９】一実施例のデータ処理装置内で行われる一連のステップを示す図である。
【図１０】一実施例のデータ処理装置内で行われる一連のステップを示す図である。
【図１１】一実施例におけるデータ処理装置内で採用される一連のステップを模式的に例示する図である。
【発明を実施するための形態】
【００１０】
少なくとも幾つかの実施例は、命令シーケンスに応答してデータ処理を遂行可能であるプロセッサ・コアを備えるデータを処理するための装置であって、データ処理操作が、メモリからデータ項目を取り出す読み込み操作及びメモリにデータ項目を書き込む書き込み操作を含み、メモリが、不揮発性メモリ、命令シーケンスを実行する場合にプロセッサ・コアによりメモリから取り出され、且つメモリに書き込まれるデータ項目のローカル・コピーを格納可能であるライトバック・キャッシュ、及びプロセッサ・コアにより始動される書き込み操作の表示を格納可能である記憶ユニットであり、プロセッサ・コアが、プロセッサ・コアによる書き込み操作の対象であり、そのための表示が記憶装置内に格納されるデータ項目のローカル・コピーをライトバック・キャッシュからメモリへとはき出しさせること、及び記憶ユニット内に格納された書き込み操作の表示を消去すること、により命令シーケンス内の終了命令に応答可能である、データを処理するための装置を提供する。
【００１１】
本技術は、不揮発性メモリからデータ項目を読み込み、且つ不揮発性メモリにこれらの（変更された）データ項目を書き込もうとするプロセッサ・コアによりもたらされる上記の課題に対処しており、不揮発性メモリへのデータ項目の書き込みはライトバック・キャッシュを介して仲介される。特に、本装置は、プロセッサ・コアにより不揮発性メモリに対して始動される書き込み操作の表示を格納可能である記憶ユニットを備える。この記憶ユニットの提供に関連して、プロセッサ・コアがデータ処理操作を遂行中にその操作に応答可能である命令が、命令の範囲内に追加され、この命令（「終了（ＥＮＤ）命令」）に応答して、プロセッサ・コアは、プロセッサ・コアにより始動される書き込み操作に対応する表示が現在記憶ユニットに格納されている、ライトバック・キャッシュ内のこれらのエントリをライトバック・キャッシュから不揮発性メモリへとはき出させる。ライトバック・キャッシュから不揮発性メモリへのデータ項目の「はき出し（ｃｌｅａｎｉｎｇ）」は、本明細書では、ライトバック・キャッシュに格納された当該データ項目の修正されたコピーが、不揮発性メモリに格納されている元のデータ項目を更新するために使用されることを意味するものと理解されたい。次いで、記憶ユニットの内容もまた消去される。従って、データ処理装置のプログラマが、（書き込み命令の実行により始動される）書き込み操作の特別な順序付けが不揮発性メモリに関連して行われることを保証したい場合、このことは、本装置が実行すべきデータ処理操作を定義するためにプログラマにより与えられる命令シーケンスへの終了命令の追加により実行され得る。
【００１２】
いくつかの実施例では、不揮発性メモリは、バイト・アドレス可能である。しかしながら、その他の形式のアドレス指定能力もまた考えられ、したがって、不揮発性メモリはワード・アドレス可能、キャッシュ・ライン・アドレス可能等であってもよい。
【００１３】
いくつかの実施例では、プロセッサ・コアはさらに、プロセッサ・コアにより始動される書き込み操作の表示を命令シーケンス内の開始命令後に記憶ユニットに格納させることが可能である。従って、システム・プログラマが書き込み操作の「書き込みセット」をカプセル化する（開始命令により先導され、終了命令により完結する）ことを可能とする、プロセッサ・コアが応答する、さらなる命令が、命令セットに追加され得る。次いで、ライトバック・キャッシュの操作という意味で、且つ（スケジューリング上の理由により、特定の命令が実行される順序を変更することができる）プロセッサ・コアの操作によってではなく、プログラマにより望まれた（他の書き込み操作に対してこの書き込みセットの）書き込み順序が、不揮発性メモリの内容において重視されることを保証することができる。
【００１４】
いくつかの実施例では、プロセッサ・コアは、メモリの所定の部分を特定する保留中の書き込み命令が開始命令により先行され、終了命令が後続する場合、メモリの所定の部分への書き込み操作のみを遂行することが可能である。同様に、いくつかの実施例では、プロセッサ・コアは、メモリの所定の部分を特定する保留中の書き込み命令が開始命令により先行されておらず、終了命令が後続しない場合、メモリの所定の部分への書き込み操作を防止可能である。このことは、プロセッサ・コアに対してアクセス可能とするメモリ・アドレス空間の特定の部分、例えば、不揮発性メモリにより提供される当該部分を、そこへ書き込もうとしている書き込み命令が開始命令により先行され、終了命令が後続しない限り、書き込むことができないように保護することを可能とする。このことは、このメモリ部分、例えば不揮発性メモリを、これを破損する「予期せぬ書き込み」（例えば、プログラム中のバグで引き起こされる）から保護する。
【００１５】
プロセッサ・コアは、終了命令（多分さらに開始命令）の存在が識別された場合に実行される命令シーケンス内のその他の命令を取り扱うために複数の方法が準備され得る。例えば、いくつかの実施例では、プロセッサ・コアは、命令シーケンス内の後続の開始命令を終了命令が完了するまで引き延ばす（ｓｔａｌｌ）ことにより、命令シーケンス内の終了命令及び後続の開始命令に応答可能である。開始命令は、次の書き込みセットの開始を定義するためにプログラマに利用可能であり、従ってプロセッサ・コアが終了命令の後に後続の開始命令に遭遇した場合、終了命令が完了する（すなわち、プロセッサ・コアのパイプラインから排出される）まで後続の開始命令を引き延ばすことにより、先行する書き込みセットが処理されるまでこの次の書き込みセットが取り扱われないことを保証することができる。
【００１６】
いくつかの実施例では、プロセッサ・コアは、命令シーケンス内の後続のメモリ操作命令を終了命令が完了するまで引き延ばすことにより、命令シーケンス内の終了命令及び後続のメモリ動作命令に応答可能である。従って、（命令シーケンス内の１つ又は複数のメモリ操作命令に応答して行われることになる）１つ又は複数のメモリ操作は、これらが命令シーケンス内の終了命令に続く場合、引き延ばされることができ、従って、事前定義の終了命令が完了するまで、これらのメモリ操作の結果が不揮発性メモリに効果を及ぼすことができないことを保証し、終了命令で完了する書き込みセットに一層の保護レベルを提供する。
【００１７】
実際に、いくつかの実施例では、プロセッサ・コアは、命令シーケンス内の後続の命令を終了命令が完了するまで引き延ばすことにより、命令シーケンス内の終了命令及び後続の命令に応答可能である。従って、終了命令で完結する書き込みセットに対するさらなる保護レベルは、このように、命令シーケンス内の全ての後続の命令を、終了命令が完了するまで引き延ばし得ることで提供される。
【００１８】
プロセッサ・コアにより始動される不揮発性メモリへの書き込み操作の表示が格納される記憶ユニットは、複数の形式を取ることができ、いくつかの実施例では、記憶ユニットはファーストイン・ファーストアウト（ＦＩＦＯ）記憶ユニットである。このＦＩＦＯ構造は、プロセッサ・コアによりアクセス可能でさえあれば、装置内の複数の異なる場所で提供され得るが、いくつかの実施例では、プロセッサ・コアは、ファーストイン・ファーストアウト記憶ユニットを備える。このことは、プロセッサ・コアによるＦＩＦＯ構造へのアクセス及び保守を容易にする。
【００１９】
代替として、いくつかの実施例では、記憶ユニットは、ライトバック・キャッシュにより提供され、プロセッサ・コアにより始動される書き込み操作の表示は、ライトバック・キャッシュ内に格納されたキャッシュ・ラインに関連したマーカとして格納され、このマーカのうちの１つのマーカに関する設定は、キャッシュ・ラインのうちの１つのキャッシュ・ラインの少なくとも一部を形成するデータ項目のローカル・コピーがプロセッサ・コアによる書き込み操作の対象であるか否かを表示する。従って、マーカ（例えば、設定又は消去され得るビット）は、データ項目が当該キャッシュ・ライン内に格納される場合、ライトバック・キャッシュの各キャッシュ・ラインに格納されることがあり、このマーカに関する設定は、キャッシュ・ライン内の少なくとも１つのデータ項目がプロセッサ・コアによる不揮発性メモリへの書き込み操作の対象であることを表示する。このことは、これらのデータ項目を識別することに関連した複数の方法で、特に要求された情報の直接の可用性により（すなわち、装置内の別の構造を参照することなく）ライトバック・キャッシュの構成を容易にすることができる。
【００２０】
いくつかの実施例では、記憶ユニットは、プロセッサ・コアにより始動される書き込み操作の少なくとも部分的なメモリ・アドレスを表示として格納可能である。完全なメモリ・アドレスも、同様に十分格納され得るが、明らかに大きな記憶容量を必要とし、部分的なメモリ・アドレスは、このアドレスがライトバック・キャッシュのキャッシュ・ライン内の対応するエントリを識別することが可能でありさえすれば、十分である。
【００２１】
いくつかの実施例では、記憶ユニットに格納された表示は、書き込み操作に対応するデータ項目がライトバック・キャッシュに格納される少なくとも１つのキャッシュ・ブロックを示す。このことは、特に、同一のキャッシュ・ブロックへの書き込みの連携を容易にすることができ、このことで、先行する書き込み操作が既にキャッシュ内の同一のキャッシュ・ブロックに関連した記憶ユニットに書き込んでいる場合、ライトバック・キャッシュからの不揮発性メモリへのはき出しが、一般にキャッシュ・ブロックベースで起き、且つ先行する書き込み操作のために格納された表示が、後続の書き込み操作のはき出しもまた起きることを保証することから、その後の記憶ユニットへの書き込み操作の追加の表示を格納する必要はない。
【００２２】
いくつかの実施例では、プロセッサ・コアはさらに、仮想対物理メモリ・アドレス・マッピングを決定するためにページ・テーブルを参照可能であり、ページ・テーブル内の各エントリは、当該エントリが所定のメモリ・アドレス空間に対応するか否かを表示するためのフラグを含み、プロセッサ・コアは、プロセッサ・コアにより始動される所定のメモリ・アドレス空間に対する書き込み操作の表示を記憶ユニットに格納させることが可能である。プロセッサ・コアは、単に不揮発性メモリだけではなくさらなるメモリ・デバイスにアクセスすることができ、次いで、ページ・テーブルに格納された付加的情報が、不揮発性メモリにより提供される完全なアクセス可能アドレス空間の領域を識別し、プロセッサ・コアが、記憶ユニットのみに不揮発性メモリへの書き込み操作に関連した情報を移すことを可能とすることができる。
【００２３】
個別のシステム要件に応じて、ライトバック・キャッシュ内に格納されたデータ項目のローカル・コピーの不揮発性メモリへのはき出しに関する異なるレベルの確実性が要求され得る。従って、いくつかの実施例では、プロセッサ・コアは、メモリ内のコントローラが、ライトバック・キャッシュからはき出されたデータ項目のローカル・コピーをメモリへコミット（ｃｏｍｍｉｔ）するためのコマンドの受領を確認するまで、終了命令に後続する全ての命令を引き延ばすための開始命令内の符号化に応答可能である。従って、開始命令及び終了命令によりカプセル化された書き込みセットは、キャッシュされたデータ項目をメモリにコミットするためのコマンドの受信確認のおかげで、不揮発性メモリのメモリ・コントローラにより既に取り扱われていることを保証され得る。
【００２４】
しかしながら、いくつかのアプリケーションにとっては、実際に、書き込みセットが不揮発性メモリ内で持続的となっていることを知ることが重要であり、従って、いくつかの実施例では、プロセッサ・コアは、メモリ内のコントローラが、ライトバック・キャッシュからメモリへはき出されたデータ項目のローカル・コピーがメモリにコミットされていることを表示するまで、終了命令に後続する全ての命令を引き延ばすように開始命令内の符号化に応答可能である。従って、終了命令に後続する全ての命令は、最終的に、ライトバック・キャッシュ内にキャッシュされた対応するデータ項目が実際に不揮発性メモリにコミットされたことを（不揮発性メモリ・コントローラからの表示のおかげで）知らされるまで、引き延ばさせられ得る。
【００２５】
終了命令へのプロセッサ・コアの応答に加えて、不揮発性メモリに格納されたデータ項目に関連したライトバック・キャッシュ内にキャッシュされたデータ項目のはき出しもまた、別な時に行うことができ、いくつかの実施例では、本装置はさらに、はき出し（ｃｌｅａｎ）条件に応答して、プロセッサ・コアによる少なくとも１つの書き込み操作の対象であり、そのための表示が記憶ユニットに格納されている、ライトバック・キャッシュに格納されたローカル・コピーのうちの少なくとも１つのローカル・コピーをライトバック・キャッシュからメモリにはき出させ、記憶ユニットに格納された少なくとも１つの書き込み操作の少なくとも１つの対応する表示を消去可能である。従って、（少なくとも部分的な）ライトバック・キャッシュの内容をライトバック・キャッシュから不揮発性メモリへはき出させる１つ又は複数のはき出し（ｃｌｅａｎ）条件が定義され得る。
【００２６】
いくつかの実施例では、はき出し条件は、記憶ユニットが一杯になると満足される。記憶ユニットが一杯になると、その中にはそれ以上の表示を格納することができず、従って、このことが、はき出しを発生させる好都合な状況となる。この状況では、不揮発性メモリへはき出されるべき記憶ユニット内の対応するエントリを有する、ライトバック・キャッシュに格納された全てのデータ項目にとって一般的なことであるが、記憶ユニット容量の一部分のみが解放される、部分的なはき出しもまた考えられる。
【００２７】
いくつかの実施例では、はき出し条件は、ライトバック・キャッシュに格納されたローカル・コピーがメモリに追い出される（ｅｖｉｃｔｅｄ）場合に満足される。無論、当該ローカル・コピーのメモリへの追い出しは、本来、当該ローカル・コピーのはき出しを引き起こすが、本技術によれば、記憶ユニット内の対応するエントリのみがこの追い出されたローカル・コピーへの対応を消去されことになるか、又はライトバック・キャッシュに格納されている全てのデータ項目が不揮発性メモリへとはき出され、記憶ユニットの全ての内容が消去される、完全はき出しもまた予想される。
【００２８】
いくつかの実施例では、はき出し条件は、ライトバック・キャッシュに格納されたローカル・コピーがコヒーレンス機構によりスヌープ（ｓｎｏｏｐ）される場合に満足され、そのための表示が記憶ユニットに格納される。キャッシュ・コヒーレンス機構によるこのようなスヌープ（すなわち、装置が属するデータ処理システム内の別のキャッシュにより始動される）は、複数の方法で取り扱われ得るが、ライトバック・キャッシュに格納されたローカル・コピーのはき出しは、スヌープに対して比較的単純な応答がなされることを可能とし、データ項目が現在最新であることを表示する。
【００２９】
いくつかの実施例では、ライトバック・キャッシュは、ライトバック・キャッシュに格納されたキャッシュ・ラインに関連付けられたクリーン・オン・スヌープ・マーカを格納可能であり、クリーン・オン・スヌープ・マーカの設定は、対応する表示が記憶ユニットに格納されていることを示す。対応する表示が格納されていること、すなわち、このキャッシュ・ラインが、最後には不揮発性メモリへとはき出される必要がある少なくとも１つのデータ項目を含むこと、及びこのエントリが、スヌープされた場合はき出されるべきことを示す、これらのクリーン・オン・スヌープ・マーカは、ライトバック・キャッシュが、対応する表示が記憶ユニットに格納されているか否かを決定するために記憶ユニットをさらに参照することなく、キャッシュ・コヒーレンス機構によりなされるスヌープに直接応答することを可能とする。記憶ユニットの性質及び構成に応じて、このことは、別な方法で、例えば、記憶ユニットが内容アドレス可能（ｃｏｎｔｅｎｔ  ａｄｄｒｅｓｓａｂｌｅ：連想可能）であることを要求しても、又は記憶ユニットを通じて反復検索を要求してもよい。
【００３０】
しかしながら、いくつかの実施例では、記憶ユニットは、特定の表示（すなわち、ライトバック・キャッシュに格納された特定のデータ項目に関連している）が現在記憶ユニットに格納されているか否かの決定を容易にすることができる、内容アドレス可能（連想）記憶ユニットである。
【００３１】
少なくともいくつかの実施例は、命令シーケンスに応答してデータ処理操作を遂行するステップであって、データ処理操作が、メモリからデータ項目を取り出す読み込み操作及びメモリにデータ項目を書き込む書き込み操作を含み、メモリが不揮発性メモリである、データ処理操作を遂行するステップと、命令シーケンスを実行する場合にメモリから取り出され、且つメモリに書き込まれるデータ項目のローカル・コピーをライトバック・キャッシュに格納するステップと、データ処理操作を遂行するステップにおいて始動された書き込み操作の表示を格納するステップと、書き込み操作の対象であり、そのための表示がローカル・コピーを格納するステップにおいて格納されたデータ項目のローカル・コピーをライトバック・キャッシュからメモリへはき出させること、及び表示を格納するステップにおいて格納された書き込み操作の表示を消去すること、により命令シーケンス内の終了命令に応答するステップと、を含むデータ処理の方法を提供する。
【００３２】
少なくともいくつかの実施例は、命令シーケンスに応答してデータ処理操作を遂行する手段であって、データ処理操作が、メモリからデータ項目を取り出す読み込み操作及びメモリにデータ項目を書き込む書き込み操作を含み、メモリが不揮発性メモリである、データ処理操作を遂行する手段と、命令シーケンスを実行する場合にメモリから取り出され、且つメモリに書き込まれるデータ項目のローカル・コピーを格納するための手段であって、格納するための手段がメモリに関連したライトバック構成を有する、格納手段と、データ処理操作を遂行するための手段により始動される書き込み操作の表示を格納する手段と、書き込み操作の対象であり、そのための表示がローカル・コピーを格納する手段により格納された、データ項目のローカル・コピーをライトバック・キャッシュからメモリへはき出させ、且つ表示を格納するための手段において格納された書き込み操作の表示を消去する、命令シーケンス内の終了命令に応答するための手段と、を含むデータ処理のための装置を提供する。
【００３３】
図１は、システム・バス１４を介してＤＲＡＭメモリ１６及び不揮発性バイト・アドレス可能メモリ１８に結合されたＣＰＵ１２を備える、データ処理システム１０を模式的に例示する。ＤＲＡＭメモリ１６は、ＤＲＡＭコントローラ２０及びＤＲＡＭ記憶装置２２を備える。同様に、不揮発性メモリ１８は、不揮発性メモリ・コントローラ２４及び不揮発性記憶装置２６を備える。
【００３４】
本例示的実施例で、システム・オン・チップ・デバイスの一部を形成する、ＣＰＵ１２は、プロセッサ・コア３０及び２階層のキャッシュ、すなわち、レベル１（Ｌ１）キャッシュ３２及びレベル２（Ｌ２）キャッシュ３４を備える。コア３０それ自身は、本明細書では４つのステージのみが純粋に例示の簡単化及び分かりやすさのために示される実行パイプライン３６、すなわち、フェッチ／デコード／イシュー（ｉｓｓｕｅ）・ステージ３８、２つの実行ステージ４０、４２及びコミット・ステージ４４を備える。また、コア３０内には、ＦＩＦＯコントローラ４８及びＦＩＦＯ記憶装置５０自身を備えるＦＩＦＯ記憶ユニット４６が提供される。コア・パイプライン３６のフェッチ／デコード／イシュー・ステージ３８は、コア３０がメモリ（例えば、ＤＲＡＭ１６又は不揮発性メモリ１８いずれか）から取り出した命令シーケンス内の命令、特に、本技術を参照すると、不揮発性バイト・アドレス可能（ＮＶＢＡ）メモリ１８へデータ項目を書き込もうとするこれらの書き込み命令を識別するように構成される。これらの書き込みのために、フェッチ／デコード／イシュー・ステージ３８は、この書き込み命令が遂行されることを求めている書き込み操作を表示するエントリが、ＦＩＦＯ記憶装置５０に格納されるべきであることを、ＦＩＦＯ４６の制御ユニット３８に信号伝達する。この実施例では、このことは、当該書き込み命令により特定されるメモリ・アドレスの一部に対応し、この部分は、Ｌ１キャッシュ３２のキャッシュ・ライン内に作成される対応したエントリを一意に識別するために十分である。Ｌ１キャッシュ３２は、ライトバック構成を有するように構成され、この構成にしたがって、Ｌ１キャッシュ３２により格納された変更されたデータ項目が、当該データ項目が元々取り出されたメモリ内で直ちに更新されることはないが、暫くの間、Ｌ１キャッシュ３２内に保持され得る。暫くの間とは、例えば、当該データ項目を保持するキャシュ・ラインが追い出される、又はこのデータ項目を「はき出す（ｃｌｅａｎ）」ために明示的コマンドがＬ１キャッシュ３２により受け取られる、又はＬ１キャッシュ３２が該当データ項目をはき出すことにより応答するキャッシュ・コヒーレンス機構の一部としてのスヌープに対するＬ１キャッシュ３２の応答を受信するまでである。
【００３５】
ＦＩＦＯ記憶ユニット４６は、コア３０内に提供されて、データ処理システム１０が不揮発性メモリ１８内の内容を、特に、電源故障又はシステム障害に対する可能性に直面した場合に、信頼できるように維持することを可能とする。不揮発性メモリ１８は永続的である（ＤＲＡＭ１６とは異なり）ことから、ここでは、プロセッサ・コア３０が、不揮発性メモリ１８に指示された一定の書き込みセットの全てが、別の書き込みセットが開始される以前に、不揮発性メモリ１８に格納されたデータが、矛盾がない状態にあることを確実にするために、コミットされていることを知るためのソフトウェアに対する機構を有すると規定される。例えば、プロセッサ・コア３０により実行されるプログラム命令シーケンス（ソフトウェア）が、リンク・リストへの追加に関係する場合、当該ブロックへのポインターが更新され、不揮発性メモリ１８に書き戻される前に、リンク・リストの新しい要素を不揮発性メモリ１８へ書き戻すことが必要である。ＤＲＡＭ１６等の揮発性メモリに関しては、ＤＲＡＭの内容が永続的ではないことから、プロセッサ・コア３０により実行される障壁はこのような信頼性を保証できるが、不揮発性メモリ１８の内容の場合、障壁は、これがコア・パイプライン３６による命令／実行の一定の順序付けを保証するだけであることから、十分ではないことに注目されたい。対照的に、Ｌ１キャッシュ３２及びＬ２キャッシュ３４の動作がコア３０に対して透過的であり、従って、不揮発性メモリ及び少なくとも１つのライトバック・キャッシュ（この実例ではＬ１キャッシュ３２等）を扱う場合、障壁は、電源故障又はデータ処理システム１０内の故障がそこに格納されているデータと矛盾する結果とならないように、不揮発性メモリ１８の内容の永続的な状態が常に維持されることを保証することができない。
【００３６】
図２は、仮想メモリ・アドレス（プロセッサ・コア３０に対して内部的に使用される）を物理メモリ・アドレス（ＤＲＡＭ１６及び不揮発性メモリ１８内で使用される）に変換するためにプロセッサ・コア３０により使用されるページ・テーブルを示す。ページ・テーブル内の付加的なマーカ（図の中ではＮＶＢＡとラベルが付けられた、設定／非設定ビット）は、不揮発性メモリ１８に対応するこれらのメモリ・アドレスを示す。不揮発性メモリ対応するアドレ変換についてのこのラベル付けは、命令シーケンス内で遭遇する書き込み命令が、不揮発性メモリへの書き込み操作を行わせる時点を、プロセッサ・コア３０が識別することを可能とする。一般的には、プロセッサ・コア３０は、次いで、この書き込み操作に対応してＦＩＦＯ４６内のエントリを事前設定するように構成されることができるが、本明細書で説明される特定の実施例では、プロセッサ・コア３０のアーキテクチャは、書き込み操作が不揮発性としるされたメモリの領域に対して実行することを許可されるために、対応する書き込み命令もまた、ｎｖｂａ＿ｂｅｇｉｎ命令（不揮発性メモリに関連した書き込みセットの開始を識別するために使用される）が先行し、ｎｖｂａ＿ｅｎｄ命令（不揮発性メモリに関連した書き込みセットの終了を識別するために使用される）が後続することができるようになっている。ＮＶＢＡとして示されるメモリの全ての領域に関連した書き込み命令に遭遇するが、書き込み命令にｎｖｂａ＿ｂｅｇｉｎ命令が先行せず、ｎｖｂａ＿ｅｎｄ命令が後続しない場合、プロセッサ・コア３０は、当該書き込み命令により特定された書き込み操作が実行されることを防止するように構成される。この取り決めは、他の状態にメモリを改悪する恐れのある予期せぬ書き込み（すなわち、プロセッサ・コア３０が実行する命令シーケンス内のバグ）から不揮発性メモリを保護する。
【００３７】
しかしながら、不揮発性メモリに関連し、ｎｖｂａ＿ｂｅｇｉｎ命令及びｎｖｂａ＿ｅｎｄ命令によりはさまれている、書き込み命令に遭遇した場合、プロセッサ・コア３０は、ＦＩＦＯ制御４８及びＬ１キャッシュ３２に対して、この書き込み命令に応答して実行されるべき書き込み操作の表示が、ＦＩＦＯ記憶装置５０に追加されるべきであることを示す。ＦＩＦＯ記憶装置５０の４つのエントリが現在書き込み操作Ａ〜Ｄの表示で事前設定されている構成例内の、ＦＩＦＯ４６が図３に示される。図に示されるように、これらの表示は、書き込み操作の目標メモリ・アドレス（又は、実際に単なる部分的なメモリ・アドレス、これらが、Ｌ１キャッシュ３２内の対応するエントリを識別するのに十分である場合）を含むことができ、又は、替わりに、対応するエントリがＬ１キャッシュ３２内でみつかる場所を示す、キャッシュ・ブロック・インジケータであっても良い。ＦＩＦＯ制御ユニット４８は、ＦＩＦＯ４６の全体的な制御を維持し、要求されるエントリの追加及びエントリの削除を管理する（個別に又はＦＩＦＯの全内容いずれか）。ＦＩＦＯ４６が、Ｌ１キャッシュ内の特定のデータ項目がＦＩＦＯ記憶装置５０内の対応するエントリを有するか否かに関してＬ１キャッシュからの問い合わせに応答することを要求される場合、ＦＩＦＯ記憶装置５０は、この機能を提供するために内容アドレス可能な方法で構成され得る。このような個別の問い合わせが受信され得る１つの実例は、Ｌ１キャッシュからのデータ項目の追い出しのためであり、この追い出しに応答して、ＦＩＦＯ制御４８は、ＦＩＦＯ記憶装置５０内の対応するエントリを除去させるように構成され得る。代替として、Ｌ１キャッシュからの内容問い合わせは、Ｌ１キャッシュにより受信されるスヌープ問い合わせに応答して図４を参照して以降に説明されるようにキャッシュ・コヒーレンス機構における関与の一環として受信されてもよく、ＦＩＦＯ４６に対してこの内容アドレス可能メモリ構成を提供する必要性を回避し、従ってコア３０への比較的小さな追加でＦＩＦＯ４６事前設定を容易にするために、Ｌ１キャッシュ自身は、対応するエントリが現在ＦＩＦＯ４６内に保持されているか否かの表示を格納するように構成され得る。最終的に、図３に示すように、ＦＩＦＯ制御４８はさらに、ＦＩＦＯ記憶装置５０が完全に事前設定されてきているか（従って、さらにエントリが作成可能となっていない）否かを監視するように構成される。ＦＩＦＯ記憶装置５０が完全に事前設定されている場合には、ＦＩＦＯ制御４８はこの事実をＬ１キャッシュ３２に信号伝達し、次いでＬ１キャッシュ内の対応するエントリを迅速に不揮発性メモリ１８に書き戻させ、且つＦＩＦＯ４６の内容が消去される。
【００３８】
図４は、Ｌ１キャッシュ３２のいくつかのより詳細を模式的に例示したもので、このライトバック・キャッシュがコントローラ６０及び複数のキャシュ・ライン６２を有することを示す。キャッシュ・コントローラ６０は、データ項目及びコア３０から受信される制御信号を監視し、制御信号は、パイプライン３６及びＦＩＦＯ制御４８両者から受信される。キャッシュ・ライン６２は、プロセッサ・コアによりそのデータ処理操作において使用されるデータ項目を格納するように構成され、各キャシュ・ラインはデータ項目それ自身及び関連したステータス・マーカ（通常の方法で、ダーティー（ｄｉｒｔｙ）／有効等）両者を格納する。しかしながら、さらに、各キャシュ・ラインの１ビットは、本明細書では、キャシュ・ラインがＮＶＢＡメモリに対する書き込みデータ項目を含むことを示す、特別な目的のマーカ６４として定義されることに注目されたい。このビットは、等価的に、クリーン・オン・スヌープ・マーカ（ｃｌｅａｎ−ｏｎ−ｓｎｏｏｐ  ｍａｒｋｅｒ）として取り扱うことができ、キャシュ・ライン６２の１つにおいてヒットする、スヌープが別のキャッシュ／ＣＰＵから受信された場合、マーカ６４の存在は、当該キャシュ・ラインをＮＶＢＡメモリへはき出させる。実際に、より一般的には、マーカ６４は、イベントが発生した場合にはき出されるべきラインを示すために使用され得る。このことは、このローカルなＬ１キャッシュ３２がもはや当該ラインの内容を排他的に制御し得ないことを意味する、キャシュ・ラインの追い出しは、まさに、マーカ６４がこのようにクリーン・オン・エビクト・マーカ（ｃｌｅａｎ−ｏｎ−ｅｖｉｃｔ  ｍａｒｋｅｒ）として見なされ得る、１つのこのような実例である。例示された構成では、キャッシュ・コントローラ６０は、データ処理システム１０のメモリ・システム内の他のキャッシュから受信されるスヌープを監視するように構成され、別のキャッシュからのスヌープが、マーカ６４が、このキャシュ・ラインがＮＶＢＡメモリ内のデータ項目に関連することを示す、キャッシュ３２のキャシュ・ライン６２内に格納されたデータ項目に関連して受信された場合、キャッシュ・コントローラ６０は、直ちに当該キャシュ・ラインを追い出させるように構成される。このイベントはまた、ＦＩＦＯ４６内の全ての対応する内容が消去され得るようにＦＩＦＯ制御４８に信号伝達する。次いで、他のキャッシュからのスヌープへの応答は、スヌープされたデータ項目が有効であることを示すことができる。
【００３９】
図５は、図１に示されたプロセッサ・コア３０により実行され得る命令シーケンス例を示す。シーケンスの最初の部分（ラベルＡ）は、不揮発性バイト・アドレス可能メモリ内に格納されていないデータ項目にアクセスする、読み込み、書き込み、及びデータ処理命令に関連した複数の命令を有する。その後に、読み込み、データ処理及び書き込み命令が、不揮発性バイト・アドレス可能メモリ１８内に格納されているデータ項目に（少なくとも部分的には）関連する最初の領域（書き込みセット）の開始を定義するｎｖｂａ＿ｂｅｇｉｎ命令が続く。この最初の領域（書き込みセット）（ラベルＢ）は、ｎｖｂａ＿ｅｎｄ命令で完結する。その後に、不揮発性バイト・アドレス可能メモリに格納されているデータ項目に関連しない第２の命令セット（Ａ）が続く。最後に、不揮発性書き込みアドレス可能メモリ１８に格納されたデータ項目に（少なくとも部分的には）関連した読み込み、データ処理及び書き込み命令の第２の領域（書き込みセット）（Ｂ）は、第２のｎｖｂａ＿ｂｅｇｉｎ命令及び第２のｎｖｂａ＿ｅｎｄ命令により定義される。ｎｖｂａ＿ｂｅｇｉｎ及びｎｖｂａ＿ｅｎｄ命令の事前設定は、アクセスされたデータ項目が、ライトバック・キャッシュによりアクセスがキャッシュされる不揮発性メモリに格納される場合にさえも、（互いに関連する）本技術が順序付けを維持することができる書き込みセットをプログラマが定義することを可能とする。
【００４０】
図６は、一実施例におけるｎｖｂａ＿ｂｅｇｉｎ及びｎｖｂａ＿ｅｎｄ命令の符号化例を示す。各命令は、ｎｖｂａ＿ｂｅｇｉｎ又はｎｖｂａ＿ｅｎｄ命令いずれであるかをそれぞれ定義するオペコードを含む。さらに、各命令内の符号化空間は、本技術に関連した制御情報を提供するために使用される。ｎｖｂａ＿ｂｅｇｉｎ命令は、クリーン・タイプを定義する制御情報を含む。クリーン・タイプは、Ｌ１キャッシュ３２がＮＶＢＡメモリ１８へ内容をはき出す場合に、不揮発性メモリ・コントローラ２４から要求される応答のタイプを指定する。２つの応答のタイプの例が示される。第１の場合には、不揮発性メモリ・コントローラは、内容をはき出すためのコマンドが受信されたことを単に確認することができる。第２の場合には、不揮発性メモリ・コントローラは、クリーン・コマンドが実行されたこと、すなわち、内容が不揮発性メモリ内で更新されており、従って永続的であると保証されたことを確認することができる。ｎｖｂａ＿ｅｎｄ命令は、ｎｖｂａ＿ｅｎｄ命令が完了するまで、ｎｖｂａ＿ｅｎｄ命令に後続する命令がどのように取り扱われるかを定義する制御情報を含む。これらの後続する命令に何等の制限も課せられていない場合であっても、ｎｖｂａ＿ｅｎｄ命令が完了するまで引き延ばしを行わせることができる命令のタイプを示す、様々な制限レベル例が示される。図示のように、これらには、全ての後続のｎｖｂａ＿ｂｅｇｉｎ命令、全ての後続のＮＶＢＡメモリへの書き込み、全ての後続のメモリ操作、又は全ての後続の命令がある。従って、ｎｖｂａ＿ｂｅｇｉｎ命令及びｎｖｂａ＿ｅｎｄ命令によりカプセル化された書き込みセットへの保護の度合いを変化させながら実装することができる。
【００４１】
ここで、本技術を実装するために、一実施例のデータ処理装置内で実行される、又は代替的に、一実施例の方法内に見られる様々なステップの説明が続く。図７〜１０は、本技術の様々な機能をサポートするデータ処理装置内で進行する動作及び監視の異なる態様を示す。例えば、図７は、ＮＶＢＡメモリ１８に関連した特定の命令を監視する一連のステップを模式的に例示する。フローは、データ処理装置が命令シーケンスを実行するステップ７０において開始すると考えられ得る。ステップ７２において、ｂｅｇｉｎ＿ｎｖｂａ命令が先行もせず、ｅｎｄ＿ｎｖｂａ命令が後続してもいない、ＮＶＢＡメモリに向かう書き込み命令に遭遇しているか否かを判断する。従って、これが肯定される場合、識別された（ステップ７４）書き込み命令は、実行させられず、フローはステップ７０に戻る。書き込み命令の不実行は、複数の形、例えば、単に命令を抑止する、処理障害を生成するなど、を取り得る。このように、書き込み命令がステップ７２において識別されない場合、フローは直接ステップ７０に戻る。
【００４２】
図８は、書き込みセットの順序付けをサポートするように実装された一連のステップを模式的に例示する。データ処理装置が命令シーケンスを実行するフローは、ステップ７６において始まると考えられ得る。その後、ステップ７８において、以前のｎｖｂａ＿ｅｎｄ命令が未だ完了待ちであるにも関わらず、ｎｖｂａ＿ｂｅｇｉｎ命令に遭遇したか否かを判断する。言い換えれば、前の書き込みセットが未だにデータ処理装置により処理されている過程にあるにも関わらず、命令シーケンス内の第２の書き込みセットの開始が発見された。この実施例では、これらの書き込みセットの順序付けを厳密に保証するために、このような条件がステップ７８において満足される場合、フローは、ステップ８０に進み、そこで新しいｎｖｂａ＿ｂｅｇｉｎ命令は先行するｎｖｂａ＿ｅｎｄ命令が完了するまで引き延ばされる。その後、フローはステップ７６に戻る。或いは、ステップ７８において条件が満たされない場合、フローはまたステップ７６に戻る。
【００４３】
図９は、Ｌ１キャッシュ３２が関係するキャッシュ・コヒーレンス機構に関連した一連のステップを模式的に例示する。ステップ８２は、データ処理装置により進行中の命令シーケンスの実行を表しており、そこでは、これらのステップのフローが先頭の開始と考えられ得る。ステップ８４において、ライトバック・キャッシュ３２内のエントリがメモリに追い出されることを選択されているか、又はキャッシュ・コヒーレンス機構によりスヌープされているか否かを判断する。これらの事象のいずれもが発生していない場合、フローは単純にスペック８２に戻る。しかしながら、これらのいずれかが発生している場合、（ステップ８６）Ｌ１キャッシュ３２内の対応するエントリは、メモリへとはき出され、Ｌ１キャッシュ３２は、ＦＩＦＯ４６内の対応するエントリが消去されるべきであることをＦＩＦＯ制御４８に信号伝達する。
【００４４】
図１０は、ＦＩＦＯ４６自身の管理に関する。プロセッサ・コア３０による命令シーケンスの実行（ステップ８８）中に、ステップ９０においてＦＩＦＯ記憶装置５０が満杯となるか否かが判断される。否定される場合、フローは単純にステップ８８に戻る。しかしながら、ＦＩＦＯが満杯となる場合には、フローはステップ９２に進み、そこで、ＦＩＦＯ内の対応するエントリを有するライトバック・キャッシュ内の全てのエントリが（不揮発性メモリ１８へと）はき出され、ＦＩＦＯ記憶装置５０は片付けられる（ｃｌｅａｒｅｄ）。
【００４５】
図１１は、一実施例の方法において実行される一連のステップを示す。データ処理装置による進行中の命令シーケンスの実行は、ステップ１００により表される。その後、ＮＶＢＡメモリに対する書き込みセットをカプセル化しているｎｖｂａ＿ｂｅｇｉｎ／ｎｖｂａ＿ｅｎｄ命令対に命令シーケンス内で遭遇したか否かが判断される。こうではない場合、フローはステップ１００に戻る。このような書き込みセットが識別されると、ステップ１０４において、この書き込みセットに要求されているライトバック・キャッシュ・クリーンのタイプがｎｖｂａ＿ｂｅｇｉｎ命令から判断される。ステップ１０６において、ｎｖｂａ＿ｅｎｄ命令に後続する命令が取り扱われるべき方法がｎｖｂａ＿ｅｎｄ命令から決定される。次いで（ステップ１０８）、実質的に書き込みセットを形成する命令が実行されることが可能であり、ＮＶＢＡメモリへの書き込み操作を引き起こすように構成されるこれらの命令に対してＦＩＦＯ４６内のエントリが作成され、修正されたデータ項目がＬ１キャッシュ３２内にキャッシュされる。ｎｖｂａ＿ｅｎｄ命令自身が実行されると（ステップ１１０）、ＦＩＦＯ４６内にＮＶＢＡメモリ１８に対応するエントリを有するＬ１キャッシュ３２内のデータ項目のはき出しが始動され、ＦＩＦＯ４６が片付けられる。次いで、ステップ１１４において、要求されたクリーン・タイプ（ｎｖｂａ＿ｂｅｇｉｎ内で指定された）が完了したか、すなわち、ＮＶＢＡメモリ・コントローラ２４がクリーン・コマンドの受領を確認したか、又は（必要であれば）さらにクリーンの完了を確認したか否かが判断される。否定される場合、フローはステップ１１６を介してループし、そこでは、ｎｖｂａ＿ｅｎｄ命令に後続する（ｎｖｂａ＿ｅｎｄ命令内で指定されたタイプの）命令は引き延ばされる。はき出しが確認されると、フローはステップ１００に戻る。
【００４６】
本発明の例示的実施例を添付の図面を参照して本明細書内で詳細に説明してきたが、本発明がこれらの正確な実施例に限定されないこと、及び、様々な変更、追加及び修正が添付の特許請求の範囲により定義される本発明の範囲及び精神を逸脱することなく当業者によりそれらの中に影響を及ぼし得ることを理解されたい。例えば、従属クレームの機能の様々な組み合わせが、本発明の範囲を逸脱することなく独立クレームの機能を用いて行うことができるであろう。
【図１】
0006684266.tif 000002
【図２】
0006684266.tif 000003
【図３】
0006684266.tif 000004
【図４】
0006684266.tif 000005
【図５】
0006684266.tif 000006
【図６】
0006684266.tif 000007
【図７】
0006684266.tif 000008
【図８】
0006684266.tif 000009
【図９】
0006684266.tif 000010
【図１０】
0006684266.tif 000011
【図１１】
0006684266.tif 000012