コンピュータメモリを管理する方法であって、仮想アドレスを物理アドレスにマップするためのページテーブルエントリー、および複数のデータブロックを含むキャッシュを保持するステップ101と、前記仮想アドレスへの参照に応答して、前記ページテーブルエントリーを用いて前記仮想アドレスを前記物理アドレスへと変換するステップ102と、データを前記物理アドレスから前記キャッシュ内へフェッチするステップ103とを含む方法において、前記ページテーブルエントリーが、複数のインジケータを含み、それぞれのデータブロックが、前記複数のインジケータのうちの1つに対応し、前記データを前記キャッシュ内へフェッチするステップ103が開始すると、当該方法が、前記複数のインジケータから選択された1つのインジケータ110がセットされていることに応答して、前記対応するデータブロックをゼロ化するさらなるステップ104を含むことを特徴とする方法。前記ページテーブルエントリーがビットマスクを含み、前記インジケータが、前記ビットマスク内に含まれているビットであることを特徴とする、請求項1に記載の方法。前記ページテーブルエントリーが、前記複数のデータブロックを含むメモリページに関連付けられ、前記方法が、データブロックを受け取る中間ステップと、前記データブロックを前記メモリページ内に格納する中間ステップと、前記データブロックが対応する前記インジケータをクリアする中間ステップとを含むことを特徴とする、請求項1に記載の方法。前記データブロックが対応していない、前記複数のインジケータのうちの残りのインジケータをセットするさらなるステップを含むことを特徴とする、請求項1に記載の方法。さらなるデータブロックを上書きする後続ステップと、前記さらなるデータブロックが対応する前記インジケータをクリアする後続ステップとを含むことを特徴とする、請求項3または4に記載の方法。コンピュータプログラム製品であって、プログラムがコンピュータ上で実行されたときに請求項1に記載の方法を実行するためのコンピュータ実行可能命令を含む、コンピュータプログラム製品。オペレーティングシステムを含むことを特徴とする、請求項6に記載のコンピュータプログラム製品。仮想アドレスを物理アドレスにマップするためのページテーブルエントリー、および複数のデータブロックを含むキャッシュを保持するステップ101を行うための手段と、前記仮想アドレスへの参照に応答して、前記ページテーブルエントリーを用いて前記仮想アドレスを前記物理アドレスへと変換するステップ102、およびデータを前記物理アドレスから前記キャッシュ内へフェッチするステップ103を行うための手段とを含むデバイスにおいて、前記ページテーブルエントリーが、複数のインジケータを含み、それぞれのデータブロックが、前記複数のインジケータのうちの1つに対応し、当該デバイスが、前記データを前記キャッシュ内へフェッチするステップ103が行われると、前記複数のインジケータから選択された1つのインジケータ110がセットされていることに応答して、前記対応するデータブロックをゼロ化するステップ104を行うためのさらなる手段を含むことを特徴とするデバイス。中央処理装置、メモリマネージメントユニット、およびデータキャッシュのうちの少なくとも1つを含むことを特徴とする、請求項8に記載のデバイス。前記ページテーブルエントリーを格納するように構成されている変換ルックアサイドバッファをさらに含み、前記仮想アドレスが、前記変換ルックアサイドバッファを用いて変換される102ことを特徴とする、請求項8または9に記載のデバイス。本発明の目的は、ページフリッピングの際にゼロ化を行う必要性をなくすかまたは少なくする、仮想メモリマネージメントに対する改善されたアプローチを提示することである。さらなる目的は、限られている帯域幅のメモリに適した方法を提供することであり、すなわち、その速度でデータがCPUによってメモリから読み出され、またはメモリに格納され得る。他のさらなる目的は、メモリバス、すなわち、メインメモリを、そのメインメモリに入るデータおよびそのメインメモリから出るデータの流れを管理するメモリコントローラに接続するコンピュータサブシステムに課される負荷を少なくすることにある。本明細書においては、メインメモリプライマリーストレージまたは内部メモリとも呼ばれるとは、ランダムアクセスメモリRAM、読み取り専用メモリROM、プロセッサレジスタ、またはプロセッサキャッシュなど、CPUによって直接アクセス可能な任意のストレージを意味する。この目的は、コンピュータメモリを管理する方法によって達成され、本方法は、仮想アドレスを物理アドレスにマップするためのページテーブルエントリー、および複数のデータブロックを含むキャッシュを保持するステップと、仮想アドレスへの参照に応答して、ページテーブルエントリーを用いて仮想アドレスを物理アドレスへと変換するステップと、データを物理アドレスからキャッシュ内へフェッチするステップとを含み、ページテーブルエントリーは、複数のインジケータを含み、それぞれのデータブロックは、複数のインジケータのうちの1つに対応し、データをキャッシュ内へフェッチするステップが開始すると、本方法は、前記複数のインジケータから選択された1つのインジケータがセットされていることに応答して、対応するデータブロックをゼロ化するさらなるステップを含む。この目的はさらに、コンピュータプログラム製品であって、プログラムがコンピュータ上で実行されたときに前記方法を実行するためのコンピュータ実行可能命令を含む、コンピュータプログラム製品によって、または前記方法を実行するようにプログラムもしくは構成されているデバイスによって達成される。本発明の主要なアイディアは、仮想アドレス、すなわち、アプリケーションのワーキングメモリ内のあるロケーションを表すインデックスと、対応する物理アドレスとの間におけるマッピングを格納するためにOSの仮想メモリシステムによって使用されるデータ構造であるページテーブルを増強することである。仮想メモリのコンテキストにおいては、仮想アドレスは、アクセスプロセスにとってのみ一意であり、その一方で物理アドレスは、メインメモリの実際のストレージセルを指す。本発明のさらなる発展形態は、従属請求項および以降の説明から得ることができる。以降では、添付の図面を参照して、本発明についてさらに説明する。本発明の一実施形態に従ってコンピュータメモリを管理するために、仮想アドレスを物理アドレスにマップするためのページテーブルエントリーが保持される。さらに、複数のデータブロックを含むキャッシュが保持される。ページテーブルエントリーは、複数のインジケータを含み、それぞれのデータブロックは、1つのインジケータに対応する。仮想アドレスへの参照に応答して、その仮想アドレスは、ページテーブルエントリーを用いて物理アドレスへと変換され、データが、その物理アドレスからキャッシュ内へフェッチされる。データをフェッチすると、インジケータがセットされていることに応答して、対応するデータブロックがゼロ化される。以降では、図1を参照して、本発明による方法を例として説明する。図1のフローチャート100は、第1の処理ステップ101、第2の処理ステップ102、第3の処理ステップ103、および第4の処理ステップ104を含む。一連の矢印は、処理ステップ101から103を通って、内部ストレージ110と合流し、最終的に第4の処理ステップ104へとわたるコントロールのフローを表している。このフロー内では、第1のシンボルから始まって第2のシンボルで終わる矢印は、コントロールが第1のシンボルから第2のシンボルへわたることを示している。目下の実施形態においては、本方法は、専用のメモリマネージメントユニットMMUによって適用される。マイクロプロセッサの設計においては、MMUとは、CPUによって要求されるメモリへのアクセスを処理することを担当する任意のコンピュータハードウェアコンポーネントを意味する。仮想メモリマネージメント、すなわち、仮想アドレスを物理アドレスへ変換することのほかに、MMUは、メモリ保護、バスアービトレーション、および、8ビットシステムなどのよりシンプルなコンピュータアーキテクチャーにおけるバンク切り替えなどの技術をサポートすることができる。メモリは物理的に断片化されることがあり、二次ストレージ上へオーバーフローすることさえあるという事実の一方で、プロセスが、切れ目のないワーキングメモリ一般にはアドレス空間と呼ばれるの概念に基づくことを可能にするために、MMUは、ページングをサポートし、ひいては、当技術分野においてページドMMUPMMUとして知られている形式を取る。CPUがメモリにアクセスするのに必要とする平均時間を少なくするために、PMMUはさらに、CPUキャッシュ、すなわち、最も頻繁に使用されるメインメモリロケーションからのデータのコピーを格納するように構成されている、より小さな、より高速なメモリをコントロールする。CPUは、メインメモリ内のあるロケーションからの読み取り、またはそのロケーションへの書き込みを行う必要がある場合には、まず、そのデータのコピーがキャッシュ内にあるかどうかをチェックする。そのデータのコピーがキャッシュ内にある場合には、CPUはすぐに、キャッシュからの読み取り、またはキャッシュへの書き込みを行い、これは、メインメモリからの読み取り、またはメインメモリへの書き込みよりも、本質的に高速である。キャッシングのコンテキストにおいては、メインメモリは、キャッシュのバッキングストアと呼ばれる場合がある。より具体的には、PMMUによってコントロールされるCPUキャッシュは、データのフェッチおよび格納をスピードアップするためのデータキャッシュ、ならびに、実行可能な命令およびデータの両方に関する仮想メモリマネージメントをスピードアップするための変換ルックアサイドバッファTLBを含む。TLBは、仮想アドレスを物理アドレスにマップするページテーブルエントリーPTEを含む固定された数のスロットを含む。典型的な一実施態様においては、それぞれのPTEは、32から64の間のビットを含む。第1の処理ステップ101において、PMMUは、仮想アドレスを物理アドレスにマップするためのPTEを保持する。さらにPMMUは、複数のデータブロックを含むキャッシュを保持し、それらのデータブロックは一般に、CPUキャッシングのコンテキストにおいては、キャッシュラインまたはキャッシュブロックと呼ばれる。典型的に、それぞれのデータブロックは、8から512バイトのサイズにわたる。ハードウェアアクセラレーションを最大にするために、目下のPMMUは、現況技術の32ビットおよび64ビットのCPUアーキテクチャーにおいては1バイトから16バイトにわたることが典型的である単一のCPU命令によって要求される可能性があるデータの量よりも大きいデータブロックを採用する。第1の処理ステップ101において保持されているPTEは、複数のインジケータを含み、それぞれのデータブロックは、1つのインジケータに対応し、このインジケータは、その対応するデータブロックを要求元のアプリケーションに提供する前にゼロ化する必要があるかどうかを示す。したがって、このインジケータは、フラグ、すなわち真または偽の値のいずれかを有するブール変数の形態を取る。PTEによって必要とされるストレージ容量を最小限に抑えるために、それぞれのインジケータは、ビットの形態を取り、そのバイナリー値のそれぞれは、割り当てられた意味を有する。CPUが複数のインジケータを単一のビット単位のオペレーション内にセットすることをさらに可能にするために、それらのビットは、コンピュータ計算においてはビットマスクとして知られている適切にサイズ設定されたベクトルへとグループ化される。代替実施形態においては、平均の書き込みスピードを犠牲にしてPTEのサイズをさらに減らすために、それぞれのビットを、複数のデータブロックに対応するように解釈して、ビットマスクを構成するビットの数を有効に減らすことができる。中間のステップ図示せずにおいて、OSは、アプリケーションによる要求に応じて、ネットワークインターフェースカード、ネットワークアダプタ、またはローカルエリアネットワークLANアダプタとしても知られている関連付けられたネットワークインターフェースコントローラNICを用いて、コンピュータネットワークを介してデータブロックを受け取る。スループットを最大にするために、データブロックは、ギガビットイーサネットGbE、1GigE接続を用いて、すなわち、IEEE802.3-2008標準によって定義されているように1ギガビット/秒の速度で伝送される。CPUを用いてI/Oデータをコピーするというオーバーヘッドを避けることによってオペレーションをさらにスピードアップするために、OSは、ページフリッピングを採用して、アプリケーションによって指定されたメモリページ内にそのI/Oデータを格納する。メモリページを構成するデータブロックのうちの一部のみが、I/Oオペレーションによって修正され、影響を受けない残りのデータブロックは、すぐにはゼロ化されないと想定すると、OSは、ゼロ化されるデータブロックに対応する、PTEのビットマスク内のビットをセットし、その一方で、修正されたデータブロックに対応するビットをクリアする。イーサネットはパケット交換プロトコルであるため、I/Oデータは、パケット、またはこのコンテキストにおいてはイーサネットフレームと呼ばれるデータ伝送単位の形態を取る。このフレームは、単なる確認応答に必要とされる場合などの64バイトの下限と、コンピュータネットワーキングの技術分野においては一般に最大伝送単位MTUと呼ばれる9000バイト以上の上限との間でさまざまなサイズとすることができる。4から64キロバイトの典型的なメモリページサイズを考慮に入れると、従来のメモリマネージメントシステムならば、このシナリオにおいて、それぞれのパケットを受け取った際に消去する必要があるメモリページの多大な部分に起因して多大なゼロ化のオーバーヘッドをCPUおよびメモリに課すことになる。したがって、本発明のさらなる利点は、小規模から中規模のパケットデータを受け取ることに対するその特有の適性にある。ほとんどの場合において、NICを通じて受け取られるデータの量は、PTEによって定義されたデータブロックの固定サイズの倍数と一致しない可能性がある。そのような場合においては、I/Oによって影響を受ける最初のおよび/または最後のデータブロックの少なくとも一部が、定義されないままとなる。その中に含まれているデータを要求元のアプリケーションに開示することを避けるために、OSは、ページフリッピングの前に、データブロックのうちのその残りの部分をすぐにゼロ化する必要がある。代替実施形態においては、NICを通じてデータを受け取る代わりに、プログラムをCPUによって実行するためにメインメモリ内へロードするようOSに要求することができる。この場合には、実行ファイル全体の物理的な転送を避けるために、プログラムローダは、ページテーブルおよびTLBを更新し、実行ファイル用に指定された仮想アドレスを、関連付けられたオブジェクトファイルのコンテンツにマップすることを有効に宣言する。このようにしてマップされた仮想メモリのセグメントは、メモリマップされたファイルと一般に呼ばれ、使用されていないプログラムコードをメインメモリ内へロードする必要性をいっさいなくすことができるという利点を有する。場合によっては、ロードされるプログラムは、BSSblockstartedbysymbolとして知られているセクションを含み、これは、BSSセグメントと呼ばれる場合が多く、はじめに、すなわち、プログラムの実行が開始するときに、ゼロの値のデータで満たされることを予期されている静的に割り当てられた変数を含む。この場合には、実行の前にBSSセクション全体をゼロ化することを避けるために、OSは、ゼロ化されるデータブロックに対応する、PTEのビットマスク内のビットをセットし、その一方で、プログラムのその他のデータセグメントに対応するビットをクリアすることによって、同様に上述のメカニズムを採用する。第2の処理ステップ102において、仮想アドレスがCPU命令によって参照されたことに応答して、PMMUは、仮想アドレスを物理アドレスへと変換することによって、仮想メモリマネージメントというその主要な機能を果たす。このために、PMMUは、第1の処理ステップ101のTLB内に含まれているPTEを採用する。より詳細には、PMMUは最初に、目下の仮想アドレスに対応するPTEを探してTLBを検索する。マッチするものが見つかると、すなわち、仮想メモリマネージメントの技術分野においてTLBヒットとして知られている状況になると、そのマッチするPTEから直接、物理アドレスを取り出すことができる。マッチするものが見つからないと、すなわち、一般にTLBミスと呼ばれる状況になると、PMMUには、OSによって保持されているページテーブルを調べることが要求される。このページテーブルが、マッチするPTEを含む場合には、PMMUは、そのPTEをTLB内にキャッシュし、失敗しているCPU命令を再実行する。第3の処理ステップ103において、PMMUは、第2の処理ステップ102において得られた物理アドレスにアクセスし、その中に含まれているデータブロックをCPUのデータキャッシュ内へフェッチし始める。データキャッシュがこの時点で既に満杯である場合には、占有されているキャッシュラインを上書きする必要が生じることがあり、新たにフェッチされたデータブロックを収容するために、その前のコンテンツを破棄する必要が生じることがある。どのキャッシュラインの占有を解消するかを選択するためのさまざまなアルゴリズムが、当技術分野において知られている。データキャッシュ上のいかなる書き込みオペレーションもスピードアップするために、データキャッシュは、ライトバックキャッシュライトビハインドキャッシュと呼ばれる場合もあるの形態を取る。このポリシーによれば、書き込みは、すぐにはバッキングストアに反映されない。代わりに、PMMUは、どのキャッシュラインがCPUによって上書きされているかを追跡把握し、それに応じて、それらのロケーションをダーティーとしてマークする。ダーティーなキャッシュラインの占有を解消する前に、それぞれのデータブロックがバッキングストアに書き戻されて、その更新されたコンテンツがその後の読み取りアクセスのために保存される。このアプローチは、コンピュータサイエンスにおいてはレイジーライトとして知られている。データブロックを書き戻したら、PMMUは、そのデータブロックがいつか取り出された場合にゼロ化されることを防止するためにPTEのビットマスク内の対応するビットをクリアする必要がある。それぞれのデータブロックをフェッチするために、空いているキャッシュラインが識別されると、または占有されているキャッシュラインが解放されると、PMMUは、自分の内部ストレージ110内で見つかったPTE内に含まれているビットマスクを調べる。その対応するビットがセットされている場合には、PMMUは、メインメモリからデータブロックを取り出さずに、第4の処理ステップ104においてそれぞれのキャッシュラインをゼロ化してから、そのデータブロックを要求元のアプリケーションが利用できるようにする。上述のさまざまな方法のステップは、プログラムされたコンピュータによって実行することができるということを当業者なら容易に認識するであろう。本明細書においては、いくつかの実施形態は、プログラムストレージデバイス、たとえばデジタルデータストレージメディアをカバーするように意図されており、それらのプログラムストレージデバイスは、マシンまたはコンピュータによって読み取ることができ、マシンによって実行可能なまたはコンピュータによって実行可能な命令のプログラムをエンコードし、前記命令は、本明細書に記載の方法のステップのうちのいくつかまたはすべてを実行する。それらのプログラムストレージデバイスは、たとえば、デジタルメモリ、磁気ディスクもしくは磁気テープなどの磁気ストレージメディア、ハードドライブ、または光学的に読み取り可能なデジタルデータストレージメディアとすることができる。これらの実施形態はまた、本明細書に記載の方法の前記ステップを実行するようにプログラムされたコンピュータをカバーするように意図されている。本発明は、その他の特定の装置および/または方法で具体化することもできる。記載した実施形態は、すべての点で例示的なものにすぎず、限定的なものではないとみなすべきである。とりわけ、本発明の範囲は、本明細書に記載の説明および図ではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等物の意味および範囲内に収まるすべての変更は、特許請求の範囲内に包含される。