JP4047281B2 - キャッシュメモリをメインメモリに同期させる方法 - Google Patents

キャッシュメモリをメインメモリに同期させる方法 Download PDF

Info

Publication number
JP4047281B2
JP4047281B2 JP2003550068A JP2003550068A JP4047281B2 JP 4047281 B2 JP4047281 B2 JP 4047281B2 JP 2003550068 A JP2003550068 A JP 2003550068A JP 2003550068 A JP2003550068 A JP 2003550068A JP 4047281 B2 JP4047281 B2 JP 4047281B2
Authority
JP
Japan
Prior art keywords
memory
entry
data
cache
area
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
Application number
JP2003550068A
Other languages
English (en)
Other versions
JP2005512192A (ja
JP2005512192A5 (ja
Inventor
ベルント エム. ガムメル,
トーマス キューネムント,
ホルガー ゼトラーク,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Infineon Technologies AG filed Critical Infineon Technologies AG
Publication of JP2005512192A publication Critical patent/JP2005512192A/ja
Publication of JP2005512192A5 publication Critical patent/JP2005512192A5/ja
Application granted granted Critical
Publication of JP4047281B2 publication Critical patent/JP4047281B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

本発明は、キャッシュメモリをメインメモリに同期させる方法に関し、キャッシュメモリは、データをプロセッサとメインメモリとの間にバッファ格納するために提供され、キャッシュメモリのメモリエントリは、少なくとも1つのデータ領域および1つの識別領域を有する。本発明は、さらに、この方法を実行するキャッシュメモリに関する。
キャッシュメモリは、最近のほとんどすべてのコンピュータにおいて、プロセッサとメインメモリとの間の非常に高速のバッファメモリとして提供され、プロセッサキャッシュメモリ、または、略して、CPUキャッシュと呼ばれることも多い。CPUキャッシュは極めて高速であるが、コスト上の理由で、メインメモリよりもはるかに小さい。CPUキャッシュを有さない中央処理ユニットと比較して、CPUキャッシュを有する中央処理ユニットの実行速度は(メインメモリが同じサイズである場合、当然)著しく速い。
第1のレベルのキャッシュメモリと第2のレベルのキャッシュメモリとは区別される。第1のレベルのキャッシュメモリは、プロセッサ内に直接配置され、これにより、待ちサイクルなしに、プロセッサによってプロセッサクロックレートでアクセスされ得る。他方、第2のレベルのキャッシュメモリは、例えば、メインボード上に配置され、従って、プロセッサクロックレートよりも低速のボードクロックレートで動作する。
さらに、マイクロプレセッサは、実行するプログラムを処理するために「スタック」とも呼ばれるスタックメモリを必要とする。プロセッサは、プログラムを処理するときに、順次連続するプログラム命令を処理することだけでなく、例えば、サブルーチンが呼出された場合等、プログラムジャンプを実行することを必要とするときはいつでも、戻りアドレスを保持するためにスタックが用いられる。サブルーチンが完了した後、サブルーチンのジャンプが実行されるのと同じ場所からプログラムの処理を再開するために、プログラムは、このアドレスにジャンプして戻る。スタックは、この場合、通常、揮発性メモリである。
CPUキャッシュおよびスタックの両方は、コンピュータのメインメモリに同期させなければならない。このようなCPUキャッシュを実現し、かつ、メインメモリとの同期を実行するために、複数の標準的技術が用いられ得る。これらの標準的技術は、「ライトスルー(write−through)」または「ライトバック(write−back)」法として公知であり、例えば、J.L.Hennessey、D.A.Patersonによる教科書「Computer Architecture、A Quantitative Approach」(Second Edition、Morgan Kaufmann Publications、San Francisco、1996年)に記載される。
従って、例えば、プログラムを処理する際に、メモリ領域、より厳密には、キャッシュメモリまたはスタック内のメモリエントリが、イネーブルまたは消去されなければならず、これにより、メインメモリからの他のデータがそこで格納され得る。以下の簡単な例は、これを説明するのに役立つ。「マルチタスク(multitasking)」環境において、タスク交換、すなわち、別のプログラムの呼び出しが行われる。実行されるべき新しいタスクBは、通常、中断されたか、または完了したタスクと同じ論理メモリに配置される。タスクBが、CPUキャッシュに依然として保持されたタスクAからのデータに誤って、または、不正にアクセスすることができないように、CPUおよびスタック内のタスクAのメモリ領域またはメモリエントリは、無効に(無効化)または消去されなければならない。このために、アドレス領域、このアドレス領域に割り当てられたデータ領域、およびアドレス領域に割り当てられた識別領域を含むメモリエントリにフラグを含むメモリフィールドを提供することが知られている。このメモリエントリは、その後、メモリフィールドのフラグを、データ領域に格納されたデータが有効性を有しないことを示す第1の状態にすることによって無効化されるか、または無効にされる。
さらに、メモリエントリの識別領域にさらなるメモリフィールドを提供することが知られている。このさらなるメモリフィールドは、データ領域が改変され、データ領域のコンテンツがメインメモリにまだライトバックされていないかどうかをフラグによって示す。このメモリエントリの無効化の前のライトバックは、同期と呼ばれる。
無効化およびライトバックのタスクは、通常、プロセッサのオペレーティングシステムによって実行される。このために、CPUキャッシュ内の個々のラインを無効化またはライトバックするために用いられ得る特定の制御レジスタまたは命令がプロセッサに利用可能である。CPUキャッシュ内のすべてのメモリエントリを無効化またはライトバックする手段として、制御レジスタ、制御メカニズム、または命令の使用もまた知られている。上述の従来のプロシージャは、オペレーティングシステムが、非常に複雑であり、(CPUキャッシュのすべてのメモリエントリではない)CPUキャッシュのより大きいメモリ領域を無効化またはライトバックするために時間を要するという不利な点を有する。CPUの完全な無効化またはライトバックは、さらに、他のタスクからのデータが不必要に同期され得、これにより性能が悪化するという不利な点を有する。
メインメモリを有するCPUキャッシュのキャッシュコヒーレンスを維持するために、EP0 439 325 B1号はアドレスモニタを提供することを提示する。
本発明の目的は、キャッシュメモリとメインメモリとの間に簡単な方法で同期を確立することを可能にする機会を規定することである。
この目的は、請求項1の特徴を有する方法によって達成される。本発明によるこの方法は、
a)プロセッサが比較プロセスのために同期値を提供するステップであって、この値は、キャッシュメモリ(単数または複数)のデータ領域のどのエントリ(単数または複数)がメインメモリに同期されるかを決定するために用いられる、ステップと、
b)キャッシュメモリのキャッシュ論理回路が、提供された同期値を、各メモリエントリの少なくとも1つのメモリフィールドのコンテンツと比較するステップと、
c)提供された該同期値が、少なくとも1つのメモリフィールドのコンテンツと一致した場合、キャッシュメモリのキャッシュ論理回路は、第1の状態の識別領域の第3のメモリフィールドのフラグをチェックするステップであって、第1の状態は、最後の同期以降、メモリエントリのデータ領域が変更されたことを示す、ステップと、
d)フラグが該所与の第1の状態である場合、メモリエントリのデータ領域のコンテンツがメインメモリに転送されるステップと
を包含する。
従って、第1のメモリのコンテンツは、同期の検索基準として利用され、ここで、メインメモリとの同期は、第3のメモリフィールドのフラグが、最後の同期以降のデータ領域の変更を示すメモリエントリの場合にのみ生じる。
好ましくは、最後の同期以降、第3のメモリフィールドのフラグがメモリエントリのデータ領域が変更されていないことを示す状態を有する場合、第2のメモリフィールドのフラグは、メモリエントリが無効値を有することを示す第1の状態に設定される。この方法ステップは、原理的にはライトバックされるべきであるが、最後の同期以降、全く変更されなかったすべてのこれらのメモリエントリを無効化する簡単な手段を提供する。あるいは、第2のメモリフィールドのフラグの無効化を示す適切な状態にする代わりに、当該のデータ領域のコンテンツを消去することも考えられ得る。これは、高いセキュリティ要件を有する応用分野において特に有利であり得る。
さらなる有利な方法ステップにおいて、第3のメモリフィールドのフラグは、最後の同期以降、メモリエントリのデータメモリに変更がないことを示す第2の状態にされる。換言すると、これは、メモリエントリとメインメモリとの間の同期プロシージャが首尾良く行われた後、第3のメモリフィールドのフラグが「消去」され、これにより、さらなる検索プロセスにおいてメインメモリとの同期が再び実行されることはない。
メモリエントリのメインメモリとの同期は反復プロセスであり、これにより、ステップa)〜ステップd)またはステップa)〜ステップe)は、それぞれ、提供された同期値と、メモリエントリの第1のメモリフィールドのコンテンツとの間が一致しなくなるまで繰返される。
メモリエントリのデータ領域のコンテンツのメインメモリへの転送は、
aa)キャッシュメモリのメモリエントリのアドレスを決定するステップと、
bb)アドレスをメモリエントリのアドレス領域からプロセッサに転送するステップと、
cc)メモリエントリをプロセッサによってアドレス指定するステップと、
dd)メモリエントリのデータ領域のコンテンツを読み出すステップと、
ee)メモリエントリのデータ領域のコンテンツをメインメモリ内に格納するステップと
を包含する。
従って、メモリエントリをメインメモリに同期させる可能なプロシージャは、従来技術においても一般的であるように、第1のメモリフィールドの値が同期値と等しい場合、メモリエントリに属するアドレスをアドレス領域からプロセッサに転送し、その後、キャッシュメモリ内の公知の検索プロシージャを適用することである。
好ましくは、ステップbb)とcc)との間に、レジスタに別のフラグが設定され得、このレジスタは、中央処理ユニット内のキャッシュメモリの外部に配置され、かつ、プロセッサによって読み出されることが可能である。フラグは、ライトバックプロシージャが実行されたことのインジケータとして用いられる。フラグがこのレジスタに設定されると、第3のメモリフィールド内で設定されたフラグの検索が再び行われる。検索プロセスが開始するとすぐに、ステップee)の後にレジスタ内のフラグがリセットされる。キャッシュメモリのすべてのメモリエントリが1つの検索パス内でチェックされ、レジスタにフラグが設定されない場合、これは、すべての疑わしいメモリエントリが、メインメモリに同期されたことを意味する。
本発明によるメモリは、特に、高いセキュリティ要件を有する応用分野での使用が意図される。特に、コンピュータ全体が単一のチップに収容される、例えば、スマートカードにおいて用いられ得る。このようなスマートカードは、キャッシュカード、アイデンティティカード、テレフォンカード、SIMカード等として用いられ得る。この使用は、異なった組織、例えば、異なったサービスプロバイダが、相互に関連性のないコンピュータにおいて異なったプログラムを格納する場合に特に有利である。その後、各プログラムユニットに1つの暗号鍵が割り当てられ得る(各組織がコンピュータ内に1つのプログラムユニットを格納すると仮定して)。
キャッシュメモリをメインメモリに同期させる本発明による方法は、高速かつエネルギー効率的に実現され得、これにより、固有の電力供給のない応用分野にとって特に有利である。これは、例えば、コンタクトレスで動作するスマートカードに当てはまる。
本発明の有利な実施形態において、メインメモリにおける各メモリエントリは、3つのメモリ領域を有する。データ領域は、実際のデータ、すなわち、プログラムコマンド、または、メインメモリによってすでにコピーされたか、または、プロセッサの論理回路によってこれにコピーされることをさらに必要とする処理されるべきデータを含み、アドレス領域は、関連したアドレスを含み、識別領域は、キャッシュ論理回路によって生成された情報を含む。この情報は、メインメモリからの新しいデータの再ロードを管理するため、および、メモリが一杯である場合に上書きされるべきメモリエントリを置換するために必要とされ、例えば、対応するメモリエントリが有効であるかどうか、最後に用いられたのはいつか、およびどれほど頻繁に用いられたかに関する情報である。特に、第1のメモリフィールドは、識別領域に提供され、このフィールドは、メモリのデータ領域にデータが格納された際に暗号鍵が用いられたかどうか、または、それはどの暗号鍵を用いて行われたかを示す値を含む。
識別領域の第1のメモリフィールドは2つの目的を満たす。
第1に、ここから、メモリのデータ領域にデータが格納された際に暗号鍵が用いられたかどうか、または、それはどの暗号鍵かということが推測され得る。これは、第1のメモリフィールドとデータ領域との間に直接的な関連性があるという情報をもたらす。特に、セキュリティ関連の応用分野、例えば、キャッシュカードの場合、書き込まれるべきデータを符号化してデータ領域に格納することは有用であり得る。符号化されたデータがこのデータ領域から読み出されるべき場合は直ちに、データを復号化するために用いられ得るのはどの鍵かを特定するために情報の一部分が必要とされる。この情報は、第1のメモリフィールドの値が暗号鍵それ自体か、またはそうでない場合、暗号鍵を示すポインタを含み得る識別領域の第1のメモリフィールドから取り出され得る。以下の記載において、冒頭でタスクと呼ばれた異なったプログラムユニットが、各々、異なった鍵で暗号化および復号化されると想定される。これにより、各第1のメモリフィールドは、異なった鍵、または暗号鍵を示す異なった値を含み得る。
第1のメモリフィールドに存在する値は、ここで、有利にも、キャッシュメモリをコンピュータのメインメモリに同期させるために用いられ得る。2つのプログラムユニットが交換された場合、通常、終了したプログラムユニットに割り当てられたデータがキャッシュメモリ内で無効化またはライトバックされるべきことを意味する。同じプログラムユニットからのデータを含むすべてのメモリエントリが識別領域の第1のメモリフィールド内で同じ値を有するという事実に基づき、これらは、容易に識別され、かつさらに処理され得る。プログラムの実行、従って、2つのプログラムユニット間の交換を制御するプロセッサは、終了されるべきプログラムユニットに割り当てられた値を第1のメモリフィールドにおいて見出し、かつ、各場合について割り当てられたデータ領域を無効か、消去、またはライトバックすることのみを必要とする。
最も単純な場合、識別領域の第1のメモリフィールドは1ビット幅であり、これにより、2つの異なった暗号鍵を示すことが可能である。
好ましい実施形態において、メモリエントリのデータ領域は複数のワードを含む。この場合のワードは、任意のビット幅を有し得る。メモリエントリのすべてのワードが同じビット幅である場合は明らかに有利である。
このような実施形態において、第1のメモリフィールドは、好ましくは、データ領域の各ワードに割り当てられる。これは、データ領域の各ワードに異なった暗号鍵を割り当てることが可能であることを意味する。考えられる代替案は、メモリエントリのデータ領域におけるワードの数に関係なく、さらに少ない第1のメモリフィールドが割り当てられることを含む。この場合、データ領域における複数のワードが同じ暗号鍵に割り当てられる。
メモリのさらなる有利な実施形態において、メモリエントリのアドレス領域が、メモリエントリの物理アドレスを保持する、複数のビットを含む第1のアドレス領域と、プログラムユニットの論理アドレスの最上位ビットを保持する、複数のビットを含む第2のアドレス領域とに分割される。これに代えて、第2のアドレス領域は、さらに、プログラムユニットの論理アドレスを示すポインタを含み得る。このアプローチは、以下の利点を有する。2つのプログラムユニットが交換された場合、プロセッサは、終了されるべきプログラムユニットの割り当てられた論理アドレスの第2のアドレス領域を見出し得る。これは、1つのプログラムユニットに属するデータでさえ、異なったメモリエントリのデータ領域において異なった暗号鍵で復号化され得ることを意味する。これは、非常に複雑な符号化、ならびに、不正なアクセスに対して高い信頼性およびセキュリティを達成するが、コンピュータのメインメモリとの同期は、識別領域の第1のメモリ領域における同一の値を検索する場合にのみ効率的であることが明らかになる。
第2のメモリフィールドは、好ましくは、識別領域に提供され、このフィールドは、データ領域に格納されるのは有効値か無効値かを示すフラグを含む。第2のメモリフィールドは、「有効フラグ」として従来技術において公知である。第2のメモリフィールドにおけるフラグが無効値に対応する状態を有する場合、当該のメモリエントリのデータ領域は、簡単に消去または変更され得る。しかしながら、第2のメモリフィールドにおけるフラグの状態が有効値を表す場合、データが変更または消去され得る前にメインメモリとの同期が必要とされる。
メモリは、識別領域において第3のメモリフィールドを含む場合、このフィールドは、プロセッサによってメモリのデータ領域における値が変更されたかどうかを示すフラグを含む。第3のメモリフィールドは、「ダーティーフラグ(dirty flag)」とも呼ばれる。当該のメモリエントリのデータ領域における値が変更されるとすぐに第3のメモリフィールドにおけるフラグが第1の状態になる。フラグ信号、例えば、2つのプログラムユニットが交換された場合、データ領域の対応するコンテンツは、メインメモリに同期されなければならない。
好ましくは、メモリは「nウェイセットアソシアティブ(n−way set asociative)キャッシュメモリ」として設計される。このタイプのメモリは、このメモリが多数のメモリエントリを含む場合であっても、プロセッサが、選択された方法でキャッシュメモリのメモリエントリにアクセスし得るという有利な点を有する。nウェイセットアソシアティブキャッシュメモリは、当該分野においてかなり前から知られているため、動作および関連する有利な点について、ここではこれ以上は説明されない。
本発明によるコンピュータは、プロセッサに接続された上述のメモリを備える。さらに、メモリおよび/またはプロセッサに接続された接続の手段が提供される。さらに、接続手段は、例えば、中央処理ユニットおよびキャッシュメモリを含むプロセッサチップの外側の外部メモリとして設計され得るメインメモリに接続される。
本発明は、例示的実施形態を参照して、および添付の図面を用いて、以下において、より詳細に記載される。
図1は、コンピュータ10の構造を例示的実施形態で表す模式的表現を含む。コンピュータ10は、プロセッサ12、メインメモリ14、およびメモリ(キャッシュメモリ)13を備え、これらは、例えば、バスライン等の接続16のそれぞれの手段を介して互いに接続される。コンピュータ10は、例えば、すべてのコンピュータに接続された入力/出力の手段等のさらなるコンポーネントを備え得る。入力/出力の手段は、中央処理ユニット11と、キーボード、スクリーン、プリンタ、磁気ディスク記憶媒体、ディスクドライブ、CD−ROMドライブ、モデム、読み出し/書き込みデバイス等の周辺デバイス(図示せず)との間でのデータの転送を制御する。プロセッサ12およびメモリ13は、共に中央処理ユニット11を形成する。中央処理ユニット11およびメインメモリ14と、存在し得る他の任意のコンポーネントは、好ましくは、単一チップ上に集積される。これは、参照符号15がラベル付けされた破線によって模式的に示される。
図1に示される中央処理ユニット11は、メモリ13にアクセスし得る1つのプロセッサ12のみを備え、示されるプロセッサ12のように、メモリ13、および場合によってはメモリ14にアクセスする少なくとも1つのさらなるプロセッサ(図示せず)もまた提供され得る。
図2は、第1の実施形態の本発明によるメモリエントリの構造を示す。メモリエントリは、当該分野にて公知のように、アドレス領域21、データ領域23、および識別領域22を有する。データ領域23は、実際のデータを含むが、アドレス領域21は、対応するメモリエントリ20のメモリアドレスを含む。識別領域22は、メモリエントリ(第2のメモリフィールド26)の有効性に関する情報、および、最後の同期(第3のメモリフィールド27)以降、データ領域23のデータが変更されかどうかに関する情報を含む。この第3のメモリフィールドも従来技術において「ダーティーフラグ」として知られている。第2のメモリフィールドは、通常、「有効フラグ」と呼ばれる。
さらに、識別領域22に第1のメモリフィールド25が提供される。メモリフィールド25は、例えば、4つのメモリフィールド25a〜25dに再分割される。データ領域23のサブデータ領域30a〜30dは、メモリフィールド25a〜25dの各々に割り当てられる。サブデータ領域30a〜30dの各々に1つのワードであるように設計され、ここで、各ワードが、例えば、32ビット幅であり得る。第1のメモリフィールド25a〜25dは、各々、領域30a〜30dにおけるデータを符号化するために利用されるのはどの暗号鍵かを示す情報の一部分を含む。特に、これは、第1のメモリフィールド25aに割り当てられた暗号鍵が、データ領域30aにおけるデータを符号化および復号化することを意味する。同様の方法で、データ領域30dにおけるデータは、第1のメモリフィールド25dに割り当てられた暗号鍵で処理され得る。例えば、各フィールドが1ビット幅である場合、2つの暗号鍵の合計を示すポインタが可能である。暗号鍵は、別々のレジスタに格納され得るが、これ以上詳細には記載されない。第1のメモリフィールド25の値をメモリエントリ20から読み出すプロセッサは、その後、当該レジスタに割り当てられた暗号鍵を決定し得、それぞれ、第1のメモリフィールドに割り当てられたサブデータ領域30a〜30dに符号化されて保持されるデータを復号化し得る。
第1のメモリフィールド25a〜25dにおける暗号鍵を示すポインタを格納する代わりに、暗号鍵が、第1のメモリフィールドに直接保持される。これは、非常に多くであるが、非常に短い暗号鍵がある場合に特に有用な代替案である。当然、メモリフィールド15a〜25dの各々は複数ビット幅であることが必要である。
図3は、本発明によるメモリエントリ20の別の例示的実施形態を示す。これは、アドレス領域21が第1および第2のアドレス領域40、41に再分割されるという点で、図2のメモリエントリとは異なる。アドレス領域40の各々は、ビット幅である。16ビット幅である第1のアドレス領域40は、例えば、メモリエントリの物理アドレスを含む。12ビット幅である第2のアドレス領域41は、プログラムユニットの論理アドレスの最上位ビットを含む。ここで、各プログラムユニットが、所定の論理アドレス空間に書き込まれることが想定される。このメモリブロックの論理アドレスは、すべて同一である。これは、プログラムユニットが、論理アドレスの最上位ビットから区別され得ることを意味する。1つのプログラムユニットに属する本発明によるキャッシュメモリにおけるメモリエントリのすべてがメインメモリと同期されるべき場合、キャッシュメモリの第2のアドレス領域におけるすべての同一値について検索され得る。これは、異なった暗号鍵が、1つのプログラムユニット内でも用いられ得るという有利な点を有する。
図2の第1の例示的実施形態において、第1のメモリフィールド25に入力された値が同期の検索基準として用いられる。メモリエントリを有するメモリを示す図4の以下の記載から明らかになるように、この場合、サブメモリフィールド25a〜25dの1つだけが、比較基準として用いられるが、その代わりに、全ビットシーケンスが、第1のメモリフィールド25に格納される。
図4に示されるメモリ13は、4ウェイセットアソシアティブキャッシュメモリとして設計される。メモリ13は、右側の連続的に0〜3の番号が付けられた合計4セットを含む。4つのセットの各々は、同一の数のメモリエントリを含む。nウェイセットアソシアティブキャッシュメモリの動作の設計およびモードは、従来技術から公知であるので、これ以上説明する必要はない。しかしながら、キャッシュメモリ13がメインメモリ14に同期される方法が明確に図4によって説明され得る。
2つのメモリエントリは、例えば、セット1〜3の各々において強調表示され、ここで、各識別領域22にデータが提供される。ここで、iは、メモリエントリのインデックスである。iは、(0、1、...n×m−1)からの値であり、ただし、nは、セットの数であり、mは、セットごとのメモリエントリの数である。
図2の記載においてすでに示されたように、サブメモリフィールド25a〜25dの1つがサブデータ領域30a〜30dの1つに割り当てられる。サブメモリフィールド25a〜25dの各々が1ビット幅に過ぎないので、値「1」は、第1の暗号鍵を示し、値「0」は、第2の暗号鍵を示し、この暗号鍵により、割り当てられたサブデータ領域30a〜30dにおけるデータが符号化される。1つの暗号鍵が1つの特定のプログラムユニットに割り当てられると想定されるので、これは、第1のメモリフィールド25における暗号鍵を示すポインタがある場合はいつでも、関連したサブデータ領域は、同期される必要があり得るデータのアイテムを含むことを意味する。従って、同期するために、アドレス領域21に保持された情報が用いられるのではなく、第1のメモリフィールド25に含まれる暗号鍵を示すポインタが調べられる。
例えば、メモリフィールド25a〜25dにおいて「0」が割り当てられたこれらのすべてのメモリエントリは同期される。このために、プロセッサは、「1−1−1−1」を除くすべての値を含む同期値をキャッシュ論理回路に転送する。従って、この同期値を第1のメモリフィールド25の4ビット値と比較すると、メモリエントリ37、43、73、91、107および123が、ビットとしてフラグされる。これらのメモリエントリを見つけ出した後、キャッシュ論理回路は、これらのうちのどこで第3のメモリフィールド27が第2の状態(ここでは「0」)を含むのかをチェックする。これは、メモリエントリ91および123に当てはまる。第3のメモリフィールド27の第2の状態は、同期のために、サブデータ領域30a〜30dの1つに変更がなかったことを示す。従って、メモリエントリ91および123における第2のメモリフィールド25のフラグは無効化され得る。これは、このメモリエントリ91および123における第2のメモリフィールドのフラグが第1の状態(ここでは「1」)にされたことを意味する。
残りのメモリエントリ37、43、73および107において、無効化の前にメインメモリとの同期が必要である。この場合の同期は、対応するサブデータ領域30a〜30dに位置するデータがメインメモリに転送されることを意味する。同期のために、キャッシュ論理回路は、見つけ出された第1のメモリエントリのアドレスに気付き、検索パスは、例えば、メモリエントリ0から、メモリエントリのより小さい数から大きい数の方向に実行される。ヒットを生成する第1のメモリエントリは、数37を有する。キャッシュ論理回路は、対応するセット(この例においてはセット1)のアドレスを出力する。同時に、別のフラグは、ライトバックプロシージャが実行されたことを示す特定のレジスタ(ライトバックレジスタとして知られている)において設定され得る。その後、メモリエントリのアドレス領域(21)は、このセットをアドレス指定するキャッシュ論理回路によって読み出され得る。通常のライトバックプロシージャは、このようにして読み出されたばかりのアドレス領域を用いて関連する検索プロセスを実行することによって実行され、すなわち、メモリエントリのアドレス領域のコンテンツがメインメモリに格納され、第2および第3のメモリフィールド26、27のフラグがリセットされる。キャッシュ論理回路は、ライトバックレジスタにセットされたさらなるフラグから別の検索プロセスが開始されたことを知る。一旦これが行われると、ライトバックレジスタにおけるさらなるフラグがリセットされる。同期値が第1のメモリフィールド25の4ビットコードと一致する別のメモリエントリが見つけ出された場合、記載されたプロシージャが再び最初から行われる。キャッシュ論理回路が、フラグがライトバックレジスタに設定されることなく、0〜n×m−1のすべてのメモリエントリを通過した場合、これは、すべての疑わしいメモリエントリが同期されたことを意味する。
図1は、本発明によるコンピュータの構造を模式的に示す。 図2は、第1の実施形態のメモリエントリの構造を示す。 図3は、第2の実施形態のメモリエントリの構造を示す。 図4は、nウェイセットアソシアティブメモリとして設計された複数のメモリエントリからなるメモリを示す。

Claims (13)

  1. キャッシュメモリをメインメモリに同期させる方法であって、該キャッシュメモリは、プロセッサとメインメモリとの間にデータをバッファ格納するために提供され、該キャッシュメモリは、データを格納するための少なくとも1つのデータ領域と1つの識別領域とを有する複数のメモリエントリを含み、
    該方法は、
    a)該プロセッサが、比較のために同期値をキャッシュメモリ(13)のキャッシュ論理回路に提供するステップであって、該値は、該キャッシュメモリ(13)のデータ領域(23)のどのメモリエントリ(20)(単数または複数)が該メインメモリ(14)に同期されるべきかを決定するために該キャッシュ論理回路によって用いられる、ステップと、
    b)該キャッシュメモリ(13)の該キャッシュ論理回路が、該提供された同期値と各メモリエントリ(20)の少なくとも1つのメモリフィールド(25)のコンテンツとを比較するステップであって、該比較のために用いられた該メモリフィールドは、どの暗号鍵を用いてデータが該メモリエントリ(20)の該データ領域に格納されたのかを示す値を含む、ステップと、
    c)該提供された同期値が、該少なくとも1つのメモリフィールド(25)のコンテンツと一致した場合、該キャッシュメモリ(13)の該キャッシュ論理回路は、該識別領域の第3のメモリフィールド(27)のフラグをチェックすることにより、該フラグが第1の状態を示すか否かを決定するステップであって、該第1の状態は、最後の同期以降、該メモリエントリ(20)の該データ領域(23)に格納されているデータに変更がなされたことを示す、ステップと、
    d)該フラグが該所与の第1の状態である場合、該メモリエントリ(20)の該データ領域に格納されている該データが該キャッシュ論理回路によって該メインメモリ(14)に転送されるステップと
    を包含する、方法。
  2. 前記比較のために用いられた前記メモリフィールドは、暗号鍵を含む、請求項1に記載の方法。
  3. 前記比較のために用いられた前記メモリフィールドは、暗号鍵に対するポインタを含む、請求項1に記載の方法。
  4. メモリエントリ(20)の前記データ領域(23)は、複数のワード(30a〜30d)を含む、請求項1〜の1つに記載の方法。
  5. 前記メモリフィールド(25)は、複数のサブフィールド(25a〜25d)を含み、該複数のサブフィールドのそれぞれは、前記データ領域(23)の前記複数のワード(30a〜30d)のうちの対応する1つに割り当てられる、請求項に記載の方法。
  6. メモリエントリ(20)のアドレス領域(21)は、複数のビットを含む第1のアドレス領域(40)であって、メモリエントリ(20)の物理アドレスを保持する第1のアドレス領域(40)と、複数のビットを含む第2のアドレス領域であって、プログラムユニットの論理アドレスの最上位ビットを保持する第2のアドレス領域とに分割される、請求項1〜の1つに記載の方法。
  7. 第2のメモリフィールド(26)が前記識別領域(22)に備えられており、該第2のメモリフィールドは、有効値または無効値のどちらが前記データ領域(23)に格納されているかを示すフラグを含む、請求項1〜の1つに記載の方法。
  8. 前記第2のメモリフィールド(26)に含まれている前記フラグは、有効値または無効値のどちらが前記データ領域(23)に格納されているかを示す所与の第2の状態を有する、請求項に記載の方法。
  9. 前記ステップa)〜d)は、前記提供された同期値と、前記比較のために用いられたメモリエントリの前記メモリフィールドのコンテンツとの一致が存在しなくなるまで繰返される、請求項1〜の1つに記載の方法。
  10. 前記メモリエントリ(20)の前記データ領域に格納されている前記データを前記メインメモリ(14)に転送する前記ステップd)は、
    aa)前記キャッシュメモリ(13)の該メモリエントリ(20)のアドレスを決定するステップと、
    bb)該アドレスを該メモリエントリ(20)のアドレス領域(21)から前記プロセッサ(12)に転送するステップと、
    cc)該メモリエントリ(20)を該プロセッサ(12)によってアドレス指定するステップと、
    dd)該メモリエントリの該データ領域(23)に格納されている該データを読み出すステップと、
    ee)該メモリエントリ(20)の該データ領域(23)に格納されている該データを該メインメモリ内に格納するステップと
    を包含する、請求項1〜の1つに記載の方法。
  11. 前記ステップbb)と前記ステップcc)との間に、レジスタに別のフラグが設定され、該レジスタは、前記キャッシュメモリ(13)の外側に配置され、前記プロセッサ(12)によって読み出され得、該フラグは、ライトバックプロシージャが実行されたことを示す、請求項10に記載の方法。
  12. 前記ステップee)の後、前記レジスタ内の前記フラグがリセットされる、請求項11に記載の方法。
  13. 請求項1〜12の1つに記載の方法を実行するようにセットアップされたキャッシュメモリ。
JP2003550068A 2001-11-28 2002-10-31 キャッシュメモリをメインメモリに同期させる方法 Expired - Fee Related JP4047281B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10158393A DE10158393A1 (de) 2001-11-28 2001-11-28 Speicher für die Zentraleinheit einer Rechenanlage, Rechenanlage und Verfahren zum Synchronisieren eines Speichers mit dem Hauptspeicher einer Rechenanlage
PCT/DE2002/004066 WO2003048943A2 (de) 2001-11-28 2002-10-31 Speicher für die zentraleinheit einer rechenanlage, rechenanlage und verfahren zum synchronisieren eines speichers mit dem hauptspeicher einer rechenanlage

Publications (3)

Publication Number Publication Date
JP2005512192A JP2005512192A (ja) 2005-04-28
JP2005512192A5 JP2005512192A5 (ja) 2005-12-22
JP4047281B2 true JP4047281B2 (ja) 2008-02-13

Family

ID=7707285

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003550068A Expired - Fee Related JP4047281B2 (ja) 2001-11-28 2002-10-31 キャッシュメモリをメインメモリに同期させる方法

Country Status (6)

Country Link
US (1) US7181576B2 (ja)
EP (1) EP1449091B1 (ja)
JP (1) JP4047281B2 (ja)
DE (2) DE10158393A1 (ja)
TW (1) TW200301856A (ja)
WO (1) WO2003048943A2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7386676B2 (en) * 2005-01-21 2008-06-10 International Buiness Machines Coporation Data coherence system
US20070005552A1 (en) * 2005-07-01 2007-01-04 Udo Klein Methods and systems for reducing transient memory consumption in an object-oriented system
US7533135B2 (en) * 2005-07-01 2009-05-12 Sap Aktiengesellschaft Methods and systems for reducing database accesses in an object-oriented system
US7765398B2 (en) * 2005-07-07 2010-07-27 At&T Intellectual Property I, L.P. Method of promulgating a transaction tool to a recipient
JP2008293378A (ja) * 2007-05-25 2008-12-04 Panasonic Corp プログラム書き換え装置
US8443150B1 (en) * 2008-11-04 2013-05-14 Violin Memory Inc. Efficient reloading of data into cache resource
US7591019B1 (en) 2009-04-01 2009-09-15 Kaspersky Lab, Zao Method and system for optimization of anti-virus scan
JP5353828B2 (ja) 2010-06-14 2013-11-27 富士通セミコンダクター株式会社 プロセッサ及びプロセッサシステム
US10915463B2 (en) 2017-04-28 2021-02-09 International Business Machines Corporation Synchronizing requests to access computing resources
US10360393B2 (en) * 2017-04-28 2019-07-23 International Business Machines Corporation Synchronizing write operations

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4319079A (en) * 1979-09-13 1982-03-09 Best Robert M Crypto microprocessor using block cipher
US4573119A (en) * 1983-07-11 1986-02-25 Westheimer Thomas O Computer software protection system
US4700330A (en) * 1985-10-30 1987-10-13 Digital Equipment Corporation Memory for a digital data processing system including circuit for controlling refresh operations during power-up and power-down conditions
US5045996A (en) * 1986-11-12 1991-09-03 Xerox Corporation Multiprocessor cache memory housekeeping
JPH01154261A (ja) 1987-12-11 1989-06-16 Toshiba Corp 情報処理装置
EP0325421B1 (en) * 1988-01-20 1994-08-10 Advanced Micro Devices, Inc. Organization of an integrated cache unit for flexible usage in supporting multiprocessor operations
EP0330425B1 (en) * 1988-02-23 1995-12-06 Digital Equipment Corporation Symmetric multi-processing control arrangement
GB8814077D0 (en) * 1988-06-14 1988-07-20 Int Computers Ltd Data memory system
US5081675A (en) * 1989-11-13 1992-01-14 Kitti Kittirutsunetorn System for protection of software in memory against unauthorized use
JPH03216744A (ja) 1990-01-22 1991-09-24 Fujitsu Ltd 内蔵キャッシュ・メモリ制御方式
US5224166A (en) * 1992-08-11 1993-06-29 International Business Machines Corporation System for seamless processing of encrypted and non-encrypted data and instructions
US5481610A (en) * 1994-02-28 1996-01-02 Ericsson Inc. Digital radio transceiver with encrypted key storage
FR2728980B1 (fr) * 1994-12-30 1997-01-31 Thomson Csf Dispositif de securisation de systemes d'information organises autour de microprocesseurs
US6009498A (en) * 1995-02-16 1999-12-28 Fujitsu Limited Disk control unit for holding track data in cache memory
US5778427A (en) 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
KR19980032776A (ko) * 1996-10-16 1998-07-25 가나이 츠토무 데이타 프로세서 및 데이타 처리시스템
US6157999A (en) * 1997-06-03 2000-12-05 Motorola Inc. Data processing system having a synchronizing link stack and method thereof
WO1999028887A2 (de) * 1997-12-01 1999-06-10 Siemens Aktiengesellschaft Verfahren zur reduzierung von speicherplatzbedarf für einen elektronischen ersten schlüssel und anordnung zur ver- und entschlüsselung
TW417048B (en) * 1999-03-03 2001-01-01 Via Tech Inc Mapping method of distributed cache memory
EP1118941B1 (de) * 2000-01-18 2008-01-02 Infineon Technologies AG Mikroprozessoranordnung und Verfahren zum Betreiben einer Mikroprozessoranordnung
DE10101552A1 (de) * 2001-01-15 2002-07-25 Infineon Technologies Ag Cache-Speicher und Verfahren zur Adressierung
US6745294B1 (en) * 2001-06-08 2004-06-01 Hewlett-Packard Development Company, L.P. Multi-processor computer system with lock driven cache-flushing system

Also Published As

Publication number Publication date
TW200301856A (en) 2003-07-16
US7181576B2 (en) 2007-02-20
DE50206838D1 (de) 2006-06-22
JP2005512192A (ja) 2005-04-28
DE10158393A1 (de) 2003-06-12
WO2003048943A3 (de) 2004-04-08
EP1449091A2 (de) 2004-08-25
WO2003048943A2 (de) 2003-06-12
EP1449091B1 (de) 2006-05-17
US20050005071A1 (en) 2005-01-06

Similar Documents

Publication Publication Date Title
US6523118B1 (en) Secure cache for instruction and data protection
KR101461378B1 (ko) 동기화 simd 벡터
KR100204741B1 (ko) 제1및 제2캐시 메모리 사용방법
JP3239218B2 (ja) キャッシュ管理システム
KR101025354B1 (ko) 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법
US20100332850A1 (en) Cache structure for a computer system providing support for secure objects
US5418927A (en) I/O cache controller containing a buffer memory partitioned into lines accessible by corresponding I/O devices and a directory to track the lines
CA1080365A (en) Data security system employing automatic time stamping mechanism
KR101662969B1 (ko) 동적으로 할당된 더티 마스크 공간을 이용한 메모리 관리
CN111201518B (zh) 用于管理能力元数据的设备和方法
US20230161704A1 (en) Computing system with direct invalidation in a hierarchical cache structure based on at least one designated key identification code
JP4047281B2 (ja) キャッシュメモリをメインメモリに同期させる方法
CN112334884A (zh) 用于控制对有界指针的使用的装置和方法
JP3929872B2 (ja) キャッシュメモリ、プロセッサ及びキャッシュ制御方法
US6862663B1 (en) Cache having a prioritized replacement technique and method therefor
US20050027960A1 (en) Translation look-aside buffer sharing among logical partitions
CN101133395B (zh) 实时调页的计算装置及操作方法
US20050228951A1 (en) Virtualized load buffers
JP3733604B2 (ja) キャッシュメモリ
GB2037466A (en) Computer with cache memory
US7234027B2 (en) Instructions for test & set with selectively enabled cache invalidate
US7181587B1 (en) Mapping an arbitrary number of contiguous memory pages at an arbitrary alignment
US11971821B2 (en) Computing system with write-back and invalidation in a hierarchical cache structure based on at least one designated key identification code
US6219757B1 (en) Cache flush operation for a stack-based microprocessor
KR920005296B1 (ko) 정보처리장치

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070528

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20070608

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070905

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20071011

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: 20071113

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101130

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4047281

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111130

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121130

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131130

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees