(57)【特許請求の範囲】
【請求項１】
メモリ領域上のクリア対象の領域を含むメモリクリア要求を送信するプロセッサと、
前記プロセッサから送信される読み書き命令に応じて前記メモリ領域に対する読み書きを実行する読み書き処理部と異なる処理部であって、バスを介して前記プロセッサから受け取ったメモリクリア要求に基づいてクリア対象の領域に対するクリア処理を実施するとともに、前記クリア処理の完了通知を前記プロセッサへ前記バスを介して送信する処理部と、
前記プロセッサが前記処理部へ送信した前記メモリクリア要求を検出し、前記メモリクリア要求の検出に応じて、前記クリア対象の領域に対応するキャッシュメモリ中の領域を割り出し、割り出した領域に格納されたデータを無効化するキャッシュ制御部と、
を含むことを特徴とするメモリクリア機構。
【請求項２】
前記メモリクリア要求は、当該メモリクリア要求の識別子をさらに含み、
前記処理部は、前記メモリクリア要求に対応するクリア処理の完了時に、前記識別子を含む前記完了通知を前記プロセッサへ送信する
請求項１に記載のメモリクリア機構。
【請求項３】
プロセッサが、メモリ領域上のクリア対象の領域を含むメモリクリア要求を送信し、
前記プロセッサから送信される読み書き命令に応じて前記メモリ領域に対する読み書きを実行する読み書き処理部と異なる処理部が、バスを介して前記プロセッサから受け取った前記メモリクリア要求に基づいてクリア対象の領域に対するクリア処理を実施するとともに、前記クリア処理の完了通知を前記プロセッサへバスを介して送信し、
キャッシュ制御部が、前記プロセッサが前記処理部へ送信した前記メモリクリア要求を検出し、前記メモリクリア要求の検出に応じて、前記クリア対象の領域に対応するキャッシュメモリ中の領域を割り出し、割り出した領域に格納されたデータを無効化する、
ことを含むメモリクリア機構のメモリクリア方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本案は、計算機システムにおいて、メモリ領域を再割り当てする際にゼロクリアを必要とするシステムや、テーブル処理プログラムにおいて全件クリア等の処理においてゼロクリアの実行を必要とするシステムに適用可能なメモリクリア機構に関する。
【背景技術】
【０００２】
従来、計算機システムにおいて、メモリ領域を再割り当てするような必要が生じた場合には、メモリ領域をリフレッシュするために、ＣＰＵのようなプロセッサから通常のストア命令によってメモリ領域のゼロクリアを実施したり（特許文献１参照）、ダイレクト・メモリ・アクセス(ＤＭＡ)コントローラによってゼロクリアを実施したり（特許文献２参照）、メモリクリア回路を設けることによってゼロクリアを実施する（特許文献３参照）ことが行われている。
【特許文献１】特開昭６０−１９７９９４号公報
【特許文献２】特開昭６０−１９７９９５号公報
【特許文献３】特開平０１−９４５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、従来技術におけるゼロクリア方法では、ゼロクリア処理に必要な時間がメモリアクセスのスループット性能に依存する。このため、ゼロクリア処理に長い時間を要することがあった。
【０００４】
また、メモリクリア回路によるゼロクリアにおいても、ソフトウェアによるキャッシュ無効化の処理を行う必要があるため、ゼロクリア処理に長い時間を要することがあった。
【０００５】
このため、仮想マシン(Virtual Machine:ＶＭ)やオペレーティングシステム(ＯＳ)において、ページを再利用する際におけるゼロクリアや、ハードウェアシミュレーションでのメモリクリアのような高速なメモリクリア(ゼロクリア)が要求されるケースに十分に対応できない場合があった。
【０００６】
本案の目的は、ゼロクリア処理に要する時間を短縮可能なメモリクリア機構を提供することである。
【課題を解決するための手段】
【０００７】
本案は、メモリ領域上のゼロクリア対象の領域及びサイズを含むメモリクリア要求を発行するプロセッサと、
前記メモリクリア要求をバスを介して前記プロセッサから受け取り、このメモリクリア要求に基づいてゼロクリア対象の領域に対するゼロクリア処理を実施するするとともに、前記メモリクリア要求に対応するメモリクリア完了通知を前記プロセッサへバスを介して送信するメモリクリア回路と
を含むメモリクリア機構である。
【０００８】
また、本案のメモリクリア機構は、前記バス上を流れるメモリクリア要求を検出し、前記ゼロクリア対象の領域に対応するキャッシュメモリ上の領域を割り出し、その領域に格納されたデータを無効化するキャッシュ制御部をさらに備えることができる。
【０００９】
また、本案は、プロセッサが、メモリ領域上のゼロクリア対象の領域及びサイズを含む
メモリクリア要求を発行し、
メモリクリア回路が前記メモリクリア要求をバスを介して前記プロセッサから受け取り、
前記メモリクリア回路が前記メモリクリア要求に基づいてゼロクリア対象の領域に対するゼロクリア処理を実施し、
前記メモリクリア回路が前記メモリクリア要求に対応するメモリクリア完了通知を前記プロセッサへバスを介して送信する
ことを含むメモリクリア機構のメモリクリア方法である。
【発明の効果】
【００１０】
本案によれば、ゼロクリア処理に要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本案の実施形態について、図面を用いて説明する。以下の実施形態の構成は例示であり、本案は実施形態の構成に限定されない。
【００１２】
〈課題の解決方法〉
本案では、ゼロクリア処理に要する時間の短縮化を図るために、メモリ装置側にゼロクリア回路(メモリクリア回路)を備える。ゼロクリア回路は、例えば、ＤＲＡＭ(ダイナミ
ック・ランダム・アクセス・メモリ)が備える複数のメモリセルを同時に指定し、各メモ
リセルに対するチャージ(電荷)を一時に開放することによって、ゼロクリアを実現する。ゼロクリア回路は、指定されたアドレスと、開放すべきメモリ領域のサイズを示す信号(
サイズ信号)とに応じて、該当するメモリ領域に対するゼロクリア処理を実行する。
【００１３】
アドレス及びサイズ信号は、例えばＣＰＵ(中央演算処理装置)のようなプロセッサから発行される。このため、ゼロクリア専用命令を実装することができる。即ち、プロセッサがアドレス及びサイズ信号を含むゼロクリア専用命令を発行する構成を適用することができる。
【００１４】
例えば、ゼロクリアが指定されるサイズは、２のべき乗とし、アドレスは指定サイズに整合する構成を適用することができる。さらに、ゼロクリア回路において、単純なデコーダを用いて指定メモリ領域を判定できる構成を適用することができる。
【００１５】
このようなゼロクリア回路を含むメモリクリア機構は、ページ再利用時のページ全体クリアのような所定メモリ領域のゼロクリアを必要とするシステムに適用することができる。
【００１６】
〈メモリクリア機構の概要〉
図１は、メモリクリア機構の原理説明図である。図１には、メモリクリア機構に適用可能な、例えばＤＲＡＭのメモリ領域が示されている。メモリ領域は、所定行及び所定列に配列された複数のメモリセルからなり、各メモリセルに対する読み書き回路が設けられている。各メモリセルには行アドレス指定信号線及び列アドレス指定信号線が接続されており、読み書き回路は、行及び列アドレス指定信号線に対する信号入力を検知することで、制御対象のメモリセルを特定することができる。
【００１７】
通常のメモリアドレス指定回路では、行及び列のそれぞれに対する一つの信号線のみが、行アドレス指定信号及び列アドレス指定信号によって指定され、その行及び列に対するメモリセルの値(０又は１)が読み出される。ゼロクリア時には、そのメモリセルにゼロが書き込まれる。
【００１８】
これに対し、本案に係るゼロクリア回路では、行及び列に対する複数のアドレス信号線が同時に指定され、これによって、複数の行及び複数の列からなるゼロクリア対象の領域が指定される。ゼロクリア回路は、指定された領域に含まれる各メモリセルの内容をゼロクリアする。
【００１９】
図２は、メモリクリア命令実行の流れを示す説明図である。本案に係るメモリクリア機構では、プロセッサ(ＣＰＵ)１が、メモリクリア命令の実行を開始する(図２(１))。即ち、ＣＰＵ１は、ゼロクリア回路２に対し、ゼロクリア専用命令を発行する。ゼロクリア回路２は、図１に示したようなメモリ領域に関して、ＣＰＵ１からのメモリクリア命令(メ
モリクリア要求)を解釈し、これに応じたゼロクリア処理を実施するコントローラである
。
【００２０】
このとき、ＣＰＵ１からゼロクリア専用命令としてのメモリクリア命令“Mclear<addr>,<size>”が発行される。メモリクリア命令は、ゼロクリア対象の領域を指定するアドレ
ス“<addr>”と、ゼロクリア対象の領域のサイズ“<size>”とを含んでいる。
【００２１】
メモリクリア命令がＣＰＵ１によって実行されると、メモリクリアのバストランザクションが発生する。これにより、ＣＰＵ１は、バスＢを介して、メモリクリア命令を含むメモリクリア要求をゼロクリア回路に送信する(図２(２))。
【００２２】
ゼロクリア回路２では、メモリクリア命令に従って、ゼロクリア対象の領域が特定され、例えば、その領域に含まれる各メモリセルのチャージを開放することで、当該領域のメモリクリア(ゼロクリア)を実行する(図２(３))。
【００２３】
メモリクリアが終了すると、ゼロクリア回路２は、メモリクリア完了通知を生成し、バスＢを介してメモリクリア完了通知をＣＰＵ１に送る(図２(４))。このようにして、ゼロクリア回路２側でメモリクリアが終了すると、メモリクリア完了通知がバストランザクションとしてＣＰＵ１に届く。すると、ＣＰＵ１は、メモリクリア命令を終了する(図２(５))。このとき、メモリクリア命令のブロックが解除される。
【００２４】
上記した構成及び動作によれば、プロセッサやＤＭＡによってゼロ“０”の連続書き込み処理を実行する場合に比べて、高速に所定領域のゼロクリアを実現することができる。また、メモリの領域クリアが高速化されることで、ページ再利用時のページクリアが高速化され、再利用までの時間が短縮化される。また、或る程度の大きさを持ったデータ領域をゼロクリアすることが必要な処理の高速化を図ることができる。
【００２５】
〈具体例１〉
次に、図１及び図２を用いて説明したメモリクリア機構の具体例１について説明する。具体例１における、メモリクリア機構の構成は、図２と同様であり、ゼロクリア対象の領域を含むメモリ領域に対してゼロクリア処理を実行するゼロクリア回路(メモリクリア回
路)２と、ゼロクリア回路２とバスＢを介して接続され、メモリクリア命令を実行するプ
ロセッサ(ＣＰＵ)１とを備えている。
【００２６】
具体例１では、ＣＰＵ１は、メモリクリア命令の実行を開始すると、メモリクリアが完了する(メモリクリア完了通知を受領する)まで、他の命令の実行を停止する。また、ゼロクリア回路２は、メモリ領域の指定領域に対するメモリクリア(ゼロクリア)を行う。即ち、ゼロクリア回路２によるゼロクリア対象の領域が予め定められる。もっとも、メモリクリア命令で、ゼロクリア対象の領域が任意に定められるようにしても良い。
【００２７】
さらに、メモリクリアのバス信号が新たに設けられる。例えば、この分野で最近よく適
用されているスプリット・トランザクション(split transaction)における要求(request)及び完了(complete)の各メッセージに関して、requestにメモリクリア要求をマッピング
し、completeにメモリクリア完了をマッピングする。
【００２８】
以上を、図１及び図２に示した原理に適用して、指定領域に対する高速なゼロクリア(
メモリクリア)を実施することができる。
【００２９】
〈具体例２〉
図３は、具体例２の構成例を示す。具体例１では、ＣＰＵ１が、メモリクリア要求を送信すると、メモリクリア完了を受領するまで、他の命令の実行を停止する。具体例１の構成に加えて、具体例２では、図３に示すように、ゼロクリア回路２が、ゼロクリア対象の領域毎のクリアフラグ３を持つ。
【００３０】
即ち、ゼロクリア回路２は、ＣＰＵ１からのメモリクリア要求を受け取ると、そのメモリクリア要求に対応するゼロクリア対象領域に対するクリアフラグ３を更新(オン“１”
にセット)し、メモリクリア完了をＣＰＵ１に送信する。その後、ゼロクリア回路２は、
クリアフラグ３がオンのゼロクリア対象領域に対するゼロクリア処理を実施する。
【００３１】
これによって、ＣＰＵ１におけるメモリクリア命令実行の時間(メモリクリア完了を待
つ時間)が短縮化される。従って、ＣＰＵ１は、メモリクリア要求を送信してから、短い
時間で次の命令を実行することができる。
【００３２】
〈具体例３〉
図４は、具体例３の構成例を示す。具体例３では、具体例１の構成(図２)に加えて、ＣＰＵ１のキャッシュコントローラにクリアスヌープ機構(監視部)４を設ける。監視部４は、バスＢ上を流れるメモリクリアトランザクション(メモリクリア要求、メモリクリア完
了)をスヌープして、メモリクリア命令の発生を監視し、メモリクリア要求から、ゼロク
リア対象の領域を特定し、対応するＣＰＵ１内のキャッシュメモリ５上の領域に対するゼロクリアを実施する。
【００３３】
具体例３によれば、キャッシュメモリ５の状態を、メモリ領域と一致した状態にすることができる。なお、具体例３に関して、キャッシュコントローラ(監視部)４及びキャッシュメモリ５は、ＣＰＵ１に備えられている例を示した。しかし、監視部４及びキャッシュメモリ５の少なくとも一つがＣＰＵ１の外にあっても良い。
【００３４】
〈具体例４〉
図５は、具体例４の構成例を示す。具体例４では、具体例１の構成(図２)に加えて、或いは、具体例１で説明したバストランザクション(メモリクリア要求、メモリクリア完了)に代えて、メモリクリアの非同期型命令が適用される。
【００３５】
具体例４では、ＣＰＵ１は、メモリクリア要求を発行した後、そのメモリクリア要求に対応するメモリクリア完了を受領する前に、他の命令を実行することができる。具体例４では、図５に示すように、アドレス及びサイズにタグ“<tag>”を加えたメモリクリア命
令“Amclear <addr>,<size>,<tag>”が発行される。
【００３６】
タグは、命令種別の識別子として用いられ、メモリクリア完了通知にも、そのタグが付与される。即ち、ＣＰＵ１は、タグを有するメモリクリア完了“Amclcomp <tag>”をゼロクリア回路２から受け取る。
【００３７】
ＣＰＵ１は、メモリクリア完了通知のタグを識別することで、メモリクリア完了に対応
するメモリクリア要求を識別し、その要求に対応する処理が完了したことを認識することができる。具体例４によれば、ＣＰＵ１は、複数のゼロクリア対象の領域(例えば複数の
ページ)に対するメモリクリア要求を連続的に発行することができる。これによって、多
数の領域を高速にゼロクリアすることができる。
【００３８】
〈具体例５〉
次に、具体例５として、具体例３で説明したキャッシュ不整合を解消する構成の詳細について説明する。本案は、メモリクリア機構を仮想マシン(ＶＭ)やオペレーティングシステムのページクリア目的で使用することを想定している。ページクリアを目的とする場合における、ゼロクリア対象のメモリは、通常メモリ空間である。このような通常メモリ空間は、キャッシュ可能領域を含んでおり、キャッシュ可能領域に対するゼロクリアが実施された場合には、キャッシュ不整合を抑止する必要がある。
【００３９】
このため、具体例５では、キャッシュのスヌープ機構の中に、メモリクリアトランザクションをキャッシュ無効化とみなす仕組みを導入する。
【００４０】
図６は、具体例５の構成例を示し、図７は、クリアスヌープ部４(監視部、キャッシュ
制御部)の構成例を示す。具体例５の構成は、具体例３の構成(図４)とほぼ同様である(図４)。図６及び図７において、クリアスヌープ部(監視部)４は、ＣＰＵ１から送信される
メモリクリア要求(図２(２))を検出し、キャッシュメモリ５の対応する領域の無効化(invalidate)トランザクションとして動作する。
【００４１】
図６及び図７において、監視部４は、スヌープバス(バスＢ)からメモリクリアトランザクションをスヌープするトランザクションモニタ７と、メモリクリア要求からゼロクリア対象のキャッシュメモリ５上のアドレス・領域を検出するアドレス・領域検出器(アドレ
スデコーダ)８と、アドレスデコーダ８で検出されたアドレス・領域を無効化するキャッ
シュ操作部９(プロトコルデコーダ９Ａ及び状態管理部９Ｂ)とを備えている。
【００４２】
なお、図６には、キャッシュメモリ５として、Ｎ−ウェイ設定連想キャッシュが示されている。当該キャッシュメモリ５は、複数のウェイからなり、各ウェイは、データ領域とタグ領域とを有するテーブルを備えており、各領域は、次のウェイに関連付けられている。データ領域には、キャッシュされたデータが格納され、タグ領域には、データのメモリ領域上のアドレスと、キャッシュ上での状態(ステータス)とが格納される。
【００４３】
監視部４は、メモリクリア要求をスヌープすると、ゼロクリア回路２によるゼロクリア処理と並列にキャッシュメモリ５上のクリアを実施する。
【００４４】
本案では、監視部４は、メモリクリア要求を無効化(invalidate)として解釈する。また、通常の無効化では、１キャッシュラインのみを対象として無効化操作が実施される。これに対し、本案では、メモリクリア要求中のクリアサイズ及びアドレスに従って、該当する総てのキャッシュラインに対応する無効化操作が実施される。
【００４５】
通常のキャッシュ・スヌープ機構では、ＭＥＳＩプロトコルと呼ばれる手順でキャッシュ操作が実行される。ＭＥＳＩプロトコルでは、キャッシュ状態は、データ領域(キャッ
シュ)のデータがメモリ領域との間で共有されていることを示す“Share(Ｓ)”，データ領域のデータがキャッシュ上のみで保持されていることを示す“Exclusive(Ｅ)”，メモリ
領域上のデータがキャッシュ上でのみ更新されていることを示す“Modify(Ｍ)”，及びデータ領域のデータが無効であることを示す“Invalidated(Ｉ)”からなる４つの状態間で
遷移する。
【００４６】
キャッシュ操作部９は、次のように動作する。プロトコルデコーダ９Ａは、メモリトランザクション(メモリクリア要求)を、ＭＥＳＩプロトコルによる状態遷移命令として解釈する。状態管理部９Ｂは、各タグ領域におけるキャッシュ状態を管理しており、アドレスデコーダ８で検出されたアドレス・領域に対応するデータ領域に対応するタグ中のキャッシュ状態(Ｓ，Ｅ，Ｍのいずれか一つ)を、総て無効化“Ｉ”に書き換える。これによって、ゼロクリア対象領域に対応するキャッシュデータが無効化される。これによって、キャッシュ不整合が抑止される。
【００４７】
以上説明した具体例１〜５の構成は、本案の目的を逸脱しない範囲で、適宜組み合わせることができる。
【図面の簡単な説明】
【００４８】
【図１】メモリクリア機構の原理説明図。
【図２】メモリクリア機構の動作説明図(具体例１の構成例)。
【図３】メモリクリア機構の具体例２の構成例。
【図４】メモリクリア機構の具体例３の構成例。
【図５】メモリクリア機構の具体例４の構成例。
【図６】メモリクリア機構の具体例５の構成例。
【図７】メモリクリア機構の具体例５の構成例。
【符号の説明】
【００４９】
Ｂ・・・バス
１・・・ＣＰＵ
２・・・メモリクリア回路(ゼロクリア回路)
３・・・クリアフラグ
４・・・クリアスヌープ部
５・・・キャッシュメモリ
７・・・トランザクションモニタ
８・・・アドレス・領域検出器
９・・・キャッシュ操作部
９Ａ・・・プロトコルデコーダ
９Ｂ・・・状態管理部
【図１】
0005286943.tif 000002
【図２】
0005286943.tif 000003
【図３】
0005286943.tif 000004
【図４】
0005286943.tif 000005
【図５】
0005286943.tif 000006
【図６】
0005286943.tif 000007
【図７】
0005286943.tif 000008