JP2009524168A - 効率的なメモリ階層管理 - Google Patents

効率的なメモリ階層管理 Download PDF

Info

Publication number
JP2009524168A
JP2009524168A JP2008551564A JP2008551564A JP2009524168A JP 2009524168 A JP2009524168 A JP 2009524168A JP 2008551564 A JP2008551564 A JP 2008551564A JP 2008551564 A JP2008551564 A JP 2008551564A JP 2009524168 A JP2009524168 A JP 2009524168A
Authority
JP
Japan
Prior art keywords
instruction
cache
data
data cache
fetch address
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.)
Granted
Application number
JP2008551564A
Other languages
English (en)
Other versions
JP5065298B2 (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2009524168A publication Critical patent/JP2009524168A/ja
Application granted granted Critical
Publication of JP5065298B2 publication Critical patent/JP5065298B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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
    • 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • G06F12/0848Partitioned cache, e.g. separate instruction and operand caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Advance Control (AREA)
  • Debugging And Monitoring (AREA)
  • Communication Control (AREA)
  • Automatic Assembly (AREA)

Abstract

プロセッサでは、プログラムのいくつかの部分および複数の命令が、該プログラムの実行の前にデータキャッシュ内に存在できる状況がある。該プロセッサの性能を改良するために、命令キャッシュ内でミスがあった後に該データキャッシュ内で命令をフェッチするハードウェア技術およびソフトウェア技術が提供される。命令キャッシュ内に命令が存在しない場合、命令フェッチアドレスがデータフェッチアドレスとして該データキャッシュに送られる。その供給された命令フェッチアドレスで該データキャッシュ内に有効データが存在している場合、該データは実際には命令であり、該データキャッシュのエントリはフェッチされ、命令としてプロセッサ複合体に供給される。データキャッシュが該命令に関してチェックされるべきであることを命令キャッシュ内のミスについて示すために、追加ビットが命令ページテーブル内に含まれることができる。

Description

本開示は一般に、命令キャッシュおよびデータキャッシュを有するメモリから命令をフェッチするための技術に関し、より具体的には、命令がデータキャッシュに存在する場合、該データキャッシュから該命令を直接フェッチすることにより命令キャッシュ内でのミスの後に該命令をフェッチするための改良された手法に関する。
携帯電話、ラップトップコンピュータ、携帯情報端末(PDAs)などの一般の携帯(portable)製品は、通信プログラムおよびマルチメディアプログラムなどのプログラムを実行するプロセッサの使用を必要とする。このような製品のための処理システムは、命令およびデータを格納するためのプロセッサおよびメモリ複合体(complex)を含む。例えば、命令およびデータは、例えば、命令キャッシュ、データキャッシュ、およびシステムメモリを含むマルチレベルのキャッシュから成る階層メモリ内に格納されることができる。個別の命令キャッシュおよび個別のデータキャッシュの使用はハーバードアーキテクチャ(Harvard architecture)として知られている。ハーバードアーキテクチャは命令キャッシュをデータキャッシュから隔離しているので、複数の命令がデータキャッシュ内に格納されると、複数の問題が生じる可能性がある。
ハーバードアーキテクチャを用いて処理する汎用システムでは、命令がデータキャッシュ内に格納されうる状況が生じる。例えば、プログラムが暗号化されるか、または圧縮された形である場合、それは、該プログラムを実行可能にする前に解読され(decrypted)/圧縮解除され(decompressed)なければならない。解読/圧縮解除プロセスは、暗号化された/圧縮されたプログラムを処理するためにそれをデータとして扱い、解読された/圧縮解除された命令をシステムメモリに至る途中に、データキャッシュ(例えば、レベル1データキャッシュ)内にデータとして格納する。Java(登録商標)バイトコードからの命令の生成は、システムメモリへの、データキャッシュを含むデータ経路を使用して格納されるデータとして命令が最初に扱われる他の状況である。プログラム命令がデータとして扱われているプログラムの初期の状態は、プログラムの少なくともいくつかの部分が該プログラムの実行前に該データキャッシュ内に存在する可能性があるので、メモリ階層内でコヒーレンス問題を生成する。
コヒーレンス問題を解決するために、典型的にはソフトウェア手法がとられ、ここにおいて該データキャッシュ内の該プログラムまたはプログラムセグメントがプログラム制御下でシステムメモリに移動され、典型的には命令キャッシュは任意の古いプログラムセグメントのキャッシュを取り除く(clean)ために無効にされ、次いでプログラムを備える命令がシステムメモリからフェッチされる。実行前のシステムメモリからの命令のフェッチおよびデータキャッシュからシステムメモリへの命令の移動は数サイクル要し、プログラムがプロセッサ上で実行される前にデータキャッシュ上に最初に存在する命令にアクセスするために生じなければならない処理時間のオーバヘッドのためにプロセッサの性能を低下させる可能性がある。
発明の概要
そのいくつかの観点の中で、本開示は、データキャッシュ内の命令を処理する(dealing with)ためのオーバヘッドが、プロセッサの性能を限定しており、場合によっては、達成され得るサービスの品質を限定している可能性があることを認識する。本開示はまた、データキャッシュ内に存在している命令にアクセスすることが望ましい場合があることも認識する。
さらに、本開示は、命令が命令キャッシュ内で見いだされず(命令キャッシュミス)、そしてその命令がデータキャッシュ内にあると決定されると、その命令をデータキャッシュから直接フェッチするための装置、方法、およびコンピュータ可読媒体を説明する。命令キャッシュミス後にデータキャッシュから命令を直接フェッチすることによって、プロセッサ性能は改良されることができる。
このような目的のために、本発明の1つの実施形態は、命令キャッシュから分離されているデータキャッシュ内で命令を見いだす方法を含む。このような方法では、フェッチ試行は命令フェッチアドレスにおけるその命令に関する命令キャッシュ内でミスしたことが決定される。命令フェッチアドレスはデータフェッチアドレスに変換される。さらに、データキャッシュ内でのフェッチ試行は、変換されたデータフェッチアドアレスにおける命令に関してなされる。
本発明の他の実施形態は、命令をフェッチするためのプロセッサ複合体に対処する。プロセッサ複合体は、命令キャッシュ、データキャッシュ、および第1のセレクタを適切に含むことができる。第1のセレクタは、命令フェッチアドレスまたはデータフェッチアドレスを選択するために使用される。選択されたフェッチアドレスはデータキャッシュに適用され、それによって命令またはデータはデータキャッシュから選択的にフェッチされることができる。
本明細書で開示された本発明の概念ならびに他の特徴のより完全な理解が、下記の詳細な説明および添付図面から明らかである。
詳細な説明
本開示の発明の観点が、本開示のいくつかの実施形態が示される添付図面を参照してより完全に説明される。しかし、本発明の実施形態は、様々な形で具現化されることができ、本明細書で記載される実施形態に対して限定されるものと解釈されるべきではない。むしろこれらの実施形態は、この開示が徹底的で完全であり、当業者に対して開示の範囲を完全に伝達するように提供される。
本開示が方法、システム、またはコンピュータプログラム製品として具現化されることができることが理解されよう。したがって、本明細書で開示される本発明の概念は、ハードウェア実施形態、ソフトウェア実施形態、またはソフトウェアとハードウェアの観点を備えた実施形態の形をとることができる。さらに本明細書で開示される本発明の概念は、媒体内で具現化されるコンピュータ使用可能プログラムコードを有するコンピュータ使用可能記憶媒体上でのコンピュータプログラム製品の形をとることができる。ハードディスク、CD−ROMs、光学記憶装置、フラッシュメモリ、または磁気記憶装置を含む任意の適切なコンピュータ可読媒体が使用されることができる。
プロセッサにロードされ、アセンブルされ(assembled)、コンパイルされる(compiled)ことができるコンピュータプログラムコードは、C、C++、ネイティブアセンブラ(native Assembler)、JAVA、スモールトーク(Smalltalk)、JavaScript(登録商標)、Visual Basic(登録商標)、TSQL、パール(Perl)などのプログラミング言語で、または本開示の教示にしたがった様々な他のプログラミング言語で最初に書かれることができる。プログラムコードまたはコンピュータ可読媒体は、フォーマットがプロセッサによって理解可能であるオブジェクトコードなどの機械語コードを意味する。本開示のソフトウェア実施形態は、特定のプログラミング言語を用いるそれらの実装に依存しない。プログラムコードが実行されると、プログラムコードのための動作環境を定義する新しいタスクが生成される。
図1は、本開示の1つの実施形態が使用されることができる例示の無線通信システム100を示す。説明のために、図1は、3つの遠隔装置120、130、および150ならびに2つの基地局140を示す。典型的な無線通信システムは、複数の遠隔装置および複数の基地局を有することできることが認識されるであろう。遠隔装置120、130、および150は、以下さらに詳細に説明されるように本開示を具現化するように構成されたコンポーネント125A、125C、および125Bによってそれぞれ表されるように複数のハードウェアコンポーネント、複数のソフトウェアコンポーネント、または両方を含む。図1は、複数の基地局140から遠隔装置120、130、および150への順方向リンク信号180ならびに遠隔装置120、130、および150から複数の基地局140への逆方向リンク信号190を示す。
図1では遠隔装置120は移動電話として示され、遠隔装置130はポータブル(portable)コンピュータとして示され、遠隔装置150は無線ローカルループ(local loop)システム内の固定位置(fixed location)遠隔装置として示されている。例えば、遠隔装置は、携帯電話、ハンドヘルド(handheld)パーソナル通信システム(PCS)装置、携帯情報端末などのポータブルデータ装置、またはメータ読取り装置などの固定位置データ装置であってよい。図1には本開示の教示による複数の遠隔装置が示されているが、本開示はこれらの例示的な示された装置に限定されない。本開示は、命令キャッシュ、データキャッシュ、およびシステムメモリと共にプロセッサを有する任意の装置内で適切に使用されることができる。
図2は、通常のデータキャッシュ動作が本明細書でさらに説明されるより効率的な命令フェッチのために適応されるプロセッサおよびメモリの複合体200の機能ブロック図である。プロセッサおよびメモリの複合体200は、プロセッサ202、レベル1(L1)命令キャッシュ204、L1命令キャッシュ制御装置206、L1データキャッシュ208、L1データキャッシュ制御装置210、制御セクション211、およびシステムメモリ212を含む。L1命令キャッシュ制御装置206は、セット連想(associative)キャッシュ内で使用されることができる、命令タグマッチング(matching)のための命令内容アドレス可能(addressable)メモリを含むことができる。制御セクション211は、多重化エレメント(elements)220、226、および234、ゲーティング(gating)デバイス232および238、ならびにインバータ240を含む。プロセッサ複合体に接続することができる周辺デバイスは、本開示の説明の明瞭化のために示されていない。プロセッサおよびメモリ複合体200は、システムメモリ212内に格納されるプログラムコードを実行するためにコンポーネント125A〜C内で適切に使用されることができる。
プロセッサおよびメモリ複合体200内で命令をフェッチするために、プロセッサ202は、望まれる命令の命令フェッチアドレス(IA)214を生成し、命令フェッチアドレスをL1命令キャッシュ制御装置206に送る。L1命令キャッシュ制御装置206は、命令がL1命令キャッシュ204内に存在するかどうかを調べるためにチェックする。例えば、このチェックは、供給された命令フェッチアドレスとの一致のために連想サーチ(search)で内部の内容アドレス可能メモリ(CAM)を使用することにより実行される。命令が存在するときに一致が生じ、L1命令キャッシュ制御装置206は、命令が命令キャッシュ204内に存在することを示す。命令が存在しない場合、一致がCAMの連想サーチで見いだされず、L1命令キャッシュ制御装置206は、命令が命令キャッシュ204内に存在しないことを示す。
命令が存在する場合、命令フェッチアドレスでの命令が命令キャッシュ204から選択される。次いで命令は、プロセッサ202に多重化エレメント226を介して命令出力バス216上で送られる。
命令が命令キャッシュ内に存在しない場合、命令キャッシュミス信号(I$M=1)218が、ミスが生じたことを示すアクティブに設定される。命令キャッシュ内でミスを検出すると、該プロセッサおよびメモリ複合体200は、L1データキャッシュ208から望まれる命令をフェッチしようと試みる。この目的のために、多重化エレメント220は、命令フェッチアドレス214を選択するためにミス信号(I$M=1)218によって使用可能にされる。次いで、命令フェッチアドレス214は、多重化エレメント220を通ってDアドレスバス222上に進み、データフェッチアドレスとしてL1データキャッシュ制御装置210に送られる。プロセッサおよびメモリ複合体200は、例えば、Dアドレスバス222上への命令フェッチアドレス214の適用が、Dアドレスバス222へのアクセスが得られることができる前にアービトレーション(arbitration)または待ち期間を必要としうるのでシステムの論理ビューを表すことが認識される。プロセッサが生成したデータアドレス223と共に命令フェッチアドレス214を多重化するためにとられる手法は、変更されることができ、命令キャッシュおよびデータキャッシュ設計でとられる特定の手法に依存する。
L1データキャッシュ制御装置210は、例えば、供給された命令フェッチアドレスについて、内部の連想サーチにより、供給された命令フェッチアドレスにおいてL1データキャッシュ208内にヒットがあるかどうかを調べ見るためにチェックする。ヒットは、供給された命令フェッチアドレスにデータが存在することを示す。実際にはこのデータは命令であり、データキャッシュのエントリは、L1データキャッシュ208からフェッチされ、データ出力バス224上に置かれる。L1データキャッシュ208からフェッチされるデータを命令としてプロセッサに供給するために、多重化エレメント226が適切に使用されることができる。命令キャッシュ内にミスがあり、それに続いて命令フェッチアドレスでデータキャッシュ内にヒットがあるとき、データ出力バス224は多重化エレメント226によって選択され、データキャッシュからフェッチされたデータをプロセッサの命令バス228上に置く。アクティブハイ(active high)であるミス信号(I$M=1)218によって示される命令キャッシュ内のミスの発生、それに続くアクティブハイであるヒット信号(D$H=1)230によって示される同じ命令フェッチアドレスでのデータキャッシュ内のヒットは、ANDゲート232によって論理的に表される。ANDゲート232の出力は、多重化エレメント226のための選択信号233である。データキャッシュ内で見いだされた命令はまた、ANDゲート232によって論理的に提供される選択信号233を使用して多重化エレメント234によって命令キャッシュ204の中にロードするために多重化される。データ出力バス224が命令をプロセッサに転送している間、プロセッサの読取りデータ入力236は、選択信号233の逆のもの(inverse)を提供するためのインバータ240を使用してANDゲート238によって非活動化される。
供給された命令フェッチアドレスでデータキャッシュ内にミスがあったことが決定された場合、命令はデータキャッシュ内にはなく、命令はシステムメモリ212からフェッチされる。ヒット信号(D$H=1)230はまた、データキャッシュ208内で命令の位置を捜し出そうと試みてミスが生じたことをその非アクティブ状態によって示すためにL1命令キャッシュ制御装置206に送られる。他のシグナリング手段は、データキャッシュ208内で命令の位置を捜し出そうと試みてミスが生じたことを示すために使用されることができることに留意されたい。命令は命令キャッシュ204内になく、そしてデータキャッシュ208内にないので、それはシステムメモリ212からフェッチされなければならない。命令がシステムメモリ212から得られると、命令はプロセッサ202に送られる。命令キャッシュまたはデータキャッシュ内でのミスのせいで命令を供給するための、およびデータキャッシュ内でのミスのせいでデータを供給するためのシステムメモリからの経路は、本開示を明らかに示すために図示されていないことに留意されたい。
図3は、データキャッシュ内にデータとして最初に格納された命令を処理することに一般に関連したオーバヘッドを最小限に抑えるために、命令キャッシュ内でミスがあった後にデータキャッシュ内で命令を直接フェッチするための方法300の例示的流れ図である。図3のステップと図2のエレメントとの間の例示的な関係は、プロセッサおよびメモリ複合体200からのエレメントが、方法300のステップを実行するためにどのようにして適切に協働することができるかを説明することによって示される。
命令をフェッチするために、命令フェッチアドレスはステップ304で生成される。例えば、プロセッサ202などのプロセッサは、望まれる命令の命令フェッチアドレスを生成し、命令フェッチアドレス214をL1命令キャッシュコントローラ206に送る。ステップ308では、命令キャッシュのヒットまたはミスがあるかどうかが決定される。例えば、L1命令キャッシュコントローラ206は、命令が命令キャッシュ204内に存在するかどうかを見るためにチェックする。命令が存在する場合、その存在はヒットとして示される。命令が存在する場合、方法300はステップ312に進み、命令フェッチアドレスでの命令が選択される。ステップ316では命令がプロセッサに送られる。例えば、選択された命令は、命令出力バス216上に置かれ、多重化エレメント226を介してプロセッサ202に送られる。
ステップ308において決定されたときに命令が命令キャッシュ内に存在しない場合、ステップ320において、ミスが生じ、そしてデータキャッシュから命令をフェッチするための試行がなされるという表示が与えられる。例えば、命令フェッチアドレス214が、データフェッチアドレス222として多重化エレメント220を通ってデータキャッシュ208に送られる。ステップ324では、例えば、チェックが、供給された命令フェッチアドレスに有効データが存在するかどうかを見るためにL1データキャッシュコントローラ210によってなされる。供給された命令フェッチアドレスにおいてデータキャッシュ内に有効データが存在する場合、そのデータは実際には命令であり、ステップ328でそのデータキャッシュのエントリがフェッチされる。ステップ316では、データキャッシュからフェッチされたデータは、命令としてプロセッサに送られる。例えば、データキャッシュ208からデータ出力バス224上にフェッチされるデータは、多重化エレメント226を通って送られ、命令バス228上でプロセッサ202に命令として供給される。
ステップ324では、供給された命令フェッチアドレスでデータキャッシュ内にミスがあった場合、命令はデータキャッシュ内になく、ステップ332において命令がシステムメモリからフェッチされる。例えば、データキャッシュヒット信号(D$H=1)230は、データキャッシュ208内で命令の位置を捜し出そうと試みてミスが生じたことをその非アクティブ状態によって示すためにL1命令キャッシュ制御装置206に送られる。命令は命令キャッシュ204内になく、データキャッシュ208内にないので、命令はシステムメモリ212からフェッチされなければならない。命令がシステムメモリ212から得られると、命令はステップ316で示されるようにプロセッサ202に送られる。
図4は、本開示による命令フェッチの効率的な動作のために通常のデータキャッシュ動作が適応される命令ページテーブルを含むプロセッサおよびメモリ複合体400の機能ブロック図である。プロセッサおよびメモリ複合体400は、プロセッサ402、レベル1(L1)命令キャッシュ404、命令メモリ管理装置(IMMU)およびキャッシュ制御(IMMU/$制御)406、L1データキャッシュ408、データメモリ管理装置(DMMU)およびキャッシュ制御(DMMU/$制御)410、制御セクション411、ならびにメモリ階層412を含む。IMMU/$制御406は、例えば、仮想対物理命令アドレス変換プロセスを含むことができる。制御セクション411は、多重化エレメント432、438、および448、ゲーティングデバイス428、444、および452、ならびにインバータ454を含む。プロセッサ複合体に接続することができる周辺装置は、本開示の説明を明瞭にするために示されていない。プロセッサおよびメモリ複合体400は、システムメモリ412内に格納されるプログラムコードを実行するためにコンポーネント125A〜C内で適切に使用されることができる。
命令キャッシュは、命令キャッシュの性能を改良するために命令ページテーブルを含む変換ルックアサイド(look aside)バッファ(TLB)を使用することができる。例えば、仮想ページ数に関連した物理ページ数および各ページ数のエントリに関連した追加情報のリストを有する命令ページテーブル。命令ページテーブルのエントリは、命令アドレス範囲内のメモリの1ページが命令キャッシュまたはデータキャッシュ内にロードされると、生成される。メモリのページのロードは、オペレーティングシステム(OS)の監視下で行われることができる。動作において、命令ページテーブルは、TLBに供給された仮想ページ数との一致のために調査される。命令ページテーブルを有するTLBが命令MMUおよびキャッシュ制御406の一部として本明細書で説明されているが、代替の手法が使用されることができることが理解されよう。
プロセッサおよびメモリ複合体400内で命令をフェッチするために、プロセッサ402は、望まれた命令のために命令フェッチアドレス(IA)414を生成し、その命令フェッチアドレスをIMMU/$制御406に送る。IMMU/$制御406内に配置されたページテーブル416などの命令ページテーブル内の適切なエントリは、IA414の一部である供給されたページ数に基づいて選択される。選択されたページテーブルのエントリに基づいた命令アドレスは、IA414の一部でもあるページアドレスと組み合わされて、L1命令キャッシュ404に内部的に適用される命令アドレス(GA)418を生成する。ページテーブル416から選択されたエントリは、そのエントリと共に格納された追加情報を含む。各ページテーブルのエントリと共に格納されることができる情報の追加ビットのうちの1つは、Dビット420としてラベル付けされるチェックデータキャッシュ属性である。
Dビットは、命令ページテーブル内のエントリが1ページの命令をデータキャッシュ内にロードすることにより生成されると、または処理中にデータキャッシュ内の1ページ内に格納される命令を生成すると、「1」に設定される。典型的にはDビットは、ページの内容がデータと命令の両方として使用されることができることを示すためにオペレーティングシステム(OS)によって設定される。例示のシナリオでは、命令として使用されることになるデータを生成するプログラムは、適切なページが関連のページテーブルのエントリ内でDビットを設定することによって表されることを要求するためにOSを呼び出す。他のシナリオではプログラムは、設定されたDビットを用いて既に確立されているページをOSに要求することもできる。Dビットは、必ずしも明白に消去される必要はない。プログラムが、データキャッシュが適切なDビットまたは複数のDビットを設定させることによって命令を含むことができることを規定する場合、その仕様書はプログラムの期間中に有効であってよい。次にDビットまたは複数のDビットは、ページテーブルが異なるプロセスのために使用されると、その後消去され(cleared)てよい。
IMMU/$制御406は、命令が命令キャッシュ404内に存在するかどうかを見るためにチェックする。命令が存在する場合、この存在はヒットとして示される。命令が存在する場合、命令フェッチアドレスにおける命令は命令キャッシュ404から選択される。次いで命令は、命令出力バス422上で多重化エレメント438を通ってプロセッサ402に送られる。命令が存在しない場合、ミスが生じ、そして命令キャッシュミス信号(I$M=1)424が、ミスが生じたことを示すているという表示がIMMU/$制御406によって与えられる。
選択されたDビットが「1」に設定されていることに関連して命令キャッシュ内のミスを検出すると、プロセッサおよびメモリ複合体400は、望まれた命令をL1データキャッシュ408からフェッチしようとする。この試行は、例えばゲーティング機能で選択されたDビットを使用することによって適切に実行されることができる。選択されたページテーブルのエントリからのDビット420は、Dビット信号426として出力される。例えば、Dビット信号426は、ミス表示(I$M=1)424と共にANDゲート428によって論理積をとられる(ANDed)。次いでANDゲート428の出力430は、生成された命令アドレス(GA)418またはプロセッサ402からのデータアドレス433を選択するために多重化エレメント432によって使用される。選択されると、GA418は、多重化エレメント432を通ってDアドレスバス(DA)434上に進み、命令がデータフェッチアドレスにおいてデータキャッシュ408内に存在するかどうかを決定するためにデータMMUおよびキャッシュ制御410に送られる。例えば、Dアドレスバス434上への生成された命令アドレス418の適用にはDアドレスバス434へのアクセスが得られることができる前にアービトレーションまたは待ち期間が必要なので、プロセッサおよびメモリ複合体400はシステムの論理ビューを表すことが認識される。プロセッサが生成したデータアドレス433と共に生成された命令アドレス418を多重化するためにとられる手法は、変更されることができ、命令キャッシュおよびデータキャッシュ設計でとられる特定の手法に依存する。
次いで、データキャッシュは、供給された命令フェッチアドレスに有効データが存在するかどうかを見るためにチェックする。供給された命令フェッチアドレスに有効データが存在する場合、実際にはデータは命令であり、データキャッシュのエントリは、L1データキャッシュ408からフェッチされ、データ出力バス436上に置かれる。データキャッシュのエントリを命令としてプロセッサに供給するために、例えば多重化エレメント438が使用される。多重化エレメント438は、命令キャッシュ内にミスがあり、選択されたDビットが「1」に設定され、それに続いて命令フェッチアドレスでデータキャッシュ内にヒットがあるとき、データ出力バス436をプロセッサの命令バス440上に進むように使用可能にされる。アクティブハイであるミス信号(I$M=1)424によって示される命令キャッシュ内のミスの発生、および「1」に設定されるDビット信号426、それに続く、アクティブハイであるヒット信号(D$H=1)442によって示される生成された命令アドレスにおけるデータキャッシュ内のヒットが、ANDゲート444によって論理的に表される。ANDゲート444の出力は多重化エレメント438のための選択信号446である。データ出力バス上の命令はまた、選択信号446を使用して多重化エレメント448によって命令キャッシュ内にロードするために多重化される。L1データキャッシュのデータ出力バス436は命令をプロセッサ402に転送している間に、データ出力バス436は、インバータ454によって提供される選択信号446の逆のものを使用してANDゲート452によってプロセッサの読取りデータ入力450への転送に関してゲートオフされる。
供給された命令フェッチアドレスにおいてデータキャッシュ内にミスがあったと決定された場合、命令はデータキャッシュ内になく、命令はシステムメモリ412からフェッチされる。ヒット信号(D$H=1)442は、データキャッシュ408内で命令の位置を捜し出そうと試みてミスが生じたことを、その非アクティブ状態によって示すためにIMMU/$制御406にも送られる。命令がシステムメモリ412から得られると、命令はプロセッサ402に送られる。命令キャッシュまたはデータキャッシュ内のミスにより命令を供給するための、およびデータキャッシュ内のミスによりデータを供給するためのメモリ階層からの経路は示されていないが、使用されるアプリケーションおよびプロセッサに一致する多種多様の接続手法のうちの任意のものが使用されることができることを留意されたい。
図5は、命令キャッシュ内でミスがあった後にデータキャッシュ内で命令をフェッチするための方法500の例示の流れ図であり、チェックデータキャッシュ属性は、データキャッシュが命令のためにチェックされるべきであることを示す。図5のステップと図4のエレメントとの間の例示の関係は、図5の方法500のステップを実行するために適切に使用されることができるプロセッサおよびメモリ複合体400からの例示のエレメントを参照することによって示される。
命令をフェッチするために、望まれた命令のための命令フェッチアドレスが、ステップ502で生成される。例えば、プロセッサ402などのプロセッサは、命令フェッチアドレスを生成し、命令フェッチアドレス414をL1命令キャッシュコントローラ406に送る。命令フェッチアドレスは、ページ数504およびページアドレス506で構成される仮想アドレスであってよい。ステップ508では、命令ページテーブル416などの命令ページテーブル内の適切なエントリが供給されたページ数504に基づいて選択される。選択されたページテーブルのエントリに基づいて生成されたアドレスは、ステップ509で命令キャッシュアドレスを生成するためにページアドレス506と組み合わされる。
命令ページテーブル416から選択されたエントリは、そのエントリと共に格納される追加情報を含む。各ページテーブルのエントリと共に格納されることができる情報の追加ビットのうちの1つは、Dビット420としてラベル付けられるビットなどのチェックデータキャッシュ属性である。ステップ510でこの属性が選択される。
ステップ512では、命令キャッシュのヒットまたはミスがあるかどうかが決定される。例えば、命令キャッシュは、命令が存在するかどうかを見るためにチェックする。命令が存在する場合、その存在はヒットとして示される。命令が存在する場合、方法500はステップ514に進み、命令フェッチアドレスでの命令が選択される。ステップ516において命令がプロセッサに送られる。例えば、選択された命令は命令出力バス422上に置かれ、多重化エレメント438を介してプロセッサ402の命令バス440に送られる。
ステップ512で決定されたときに命令が命令キャッシュ内に存在しない場合、ミスが生じたという表示が与えられ、方法500はステップ518に進む。ステップ518では、ステップ510で選択されたDビットは、Dビットが、データキャッシュが命令のためにチェックされるべきであることを示す「1」に設定されているかどうかを見るためにチェックされる。Dビットが「1」に設定された場合、ステップ520でプロセッサはデータキャッシュから命令をフェッチしようとする。例えば、生成された命令フェッチアドレス418は、データフェッチアドレス434としてデータキャッシュに送られる。
ステップ524において、データキャッシュは、供給された命令フェッチアドレスに有効データが存在するかどうかを見るためにチェックする。供給された命令フェッチアドレスに有効データが存在する場合、実際にはデータは命令であり、ステップ528でデータキャッシュのエントリがフェッチされる。ステップ516では、データキャッシュからフェッチされたデータが命令としてプロセッサに送られる。例えば、データ出力バス436上にフェッチされたデータは、多重化エレメント438を介して送られ、命令バス440上で命令としてプロセッサ402に供給される。
ステップ518に戻ると、ステップ518でDビットが「0」であったと決定されると、命令がデータキャッシュ内に存在しないことが知られ、方法500はステップ522に進む。ステップ524で決定されたように、ステップ522はまた、供給された命令フェッチアドレスでデータキャッシュ内にミスがあった状況のために到達される。いずれにしても、命令は命令キャッシュ内にまたはデータキャッシュ内に存在しないことが知られ、ステップ522で示すように命令はシステムメモリからフェッチされる。例えば、システムメモリ412は命令のためにアクセスされることになる。命令がシステムメモリ412から得られると、命令はステップ516で示されるようにプロセッサ402に送られる。
図6は、データとして生成され、データキャッシュ内に格納されるプログラムコードを実行するための方法600の例示の流れ図である。この方法に従うプログラムコードは、図2および図4に関連して説明されたものなどの命令キャッシュ、データキャッシュ、およびシステムメモリを有するプロセッサおよびメモリ複合体上で実行されることができ、図1のコンポーネント125A〜C内で適切に使用されることができる。
ステップ602では、プログラムがコードを生成する。この種の生成は、例えば、プログラムが圧縮されたプログラムから実行可能なコードを生成するときに行われることができる。生成されたコードは、最初は、データとして扱われ、それが生成された後にデータキャッシュ内に格納される。プログラムを実行する前に、命令キャッシュは、ステップ604で無効にされる。無効ステップは、生成されたコードと同一のアドレスには命令がないことを保証する。ステップ606において、生成されたコードは、命令キャッシュ内のプログラムアドレス空間から命令をフェッチすることによってプロセッサによって実行され、データキャッシュ内に格納される命令を含むことができる。データキャッシュ内に格納されるそれらの命令について、本開示の技術は、データキャッシュが命令キャッシュ内におけるミスの発生時の命令に関してチェックされることを可能にすることにより後続されることができる。データキャッシュ内で命令を見いだすと、命令はプロセッサ上で実行するためにデータキャッシュから直接フェッチされる。
本開示は現在好ましい情況で開示されているが、本教示は本開示および添付の特許請求の範囲に一致する様々な情況に適応されることができることが認識されるであろう。
本開示の1つの実施形態が使用されることができる例示的な無線通信システムのブロック図。 本発明の1つの実施形態による、メモリの効率的な命令フェッチ動作のためにデータキャッシュ動作が適応されるプロセッサおよびメモリ複合体の機能ブロック図。 本開示によりデータキャッシュ内にデータとして最初に格納された命令に関連したミス処理のオーバヘッドを低減するために、該データキャッシュ内に格納された該命令をフェッチする例示的な方法の流れ図。 本開示による効率的な命令フェッチのためにデータキャッシュ動作が適応される命令ページテーブルを含むプロセッサおよびメモリ複合体の機能ブロック図。 本開示による、データキャッシュ内に格納された命令をフェッチする例示的な方法の流れ図。 本開示による、データとして生成されてデータキャッシュ内に格納されるコードを実行する例示的な方法の流れ図。

Claims (20)

  1. 下記を具備する、命令キャッシュから分離しているデータキャッシュ内で命令を見いだすための方法:
    フェッチ試行が命令フェッチアドレスでの前記命令に関して前記命令キャッシュ内でミスしたことを決定すること、
    前記命令フェッチアドレスをデータフェッチアドレスに変換すること、および
    前記変換されたデータフェッチアドレスでの前記命令に関して前記データキャッシュ内でフェッチ試行をすること。
  2. 前記データキャッシュ内にデータとして格納される命令を生成すると、チェックデータキャッシュ属性をアクティブに設定することをさらに備える、請求項1に記載の方法。
  3. チェックデータキャッシュ属性がアクティブかどうかを決定すること、および
    前記チェックデータキャッシュ属性がアクティブである場合だけ前記命令に関して前記データキャッシュ内で前記フェッチ試行を可能にすることをさらに備える、請求項2に記載の方法。
  4. 前記チェックデータキャッシュ属性は命令ページテーブル内に格納されたビットである、請求項2に記載の方法。
  5. 前記命令フェッチアドレスを変換する前記ステップは、下記をさらに具備する請求項1に記載の方法:
    前記命令フェッチアドレスおよびデータフェッチアドレスを多重化すること、ならびに
    前記変換されたデータフェッチアドレスとして前記データキャッシュに適用すべき前記命令フェッチアドレスを選択すること、ここにおいて前記命令フェッチアドレスは、前記命令フェッチ試行が前記命令キャッシュ内でミスしたことを決定した後に選択される。
  6. 前記データキャッシュ内でフェッチ試行をする前記ステップは、下記をさらに具備する、請求項1に記載の方法:
    前記データキャッシュ内での前記命令ヒットを決定すること、および
    前記命令を前記データキャッシュからフェッチすること。
  7. 下記をさらに備える、請求項1に記載の方法:
    前記データキャッシュ内での前記フェッチ試行がミスしたことを決定すること、および
    前記データキャッシュ内での前記フェッチ試行がミスしたことを命令メモリ制御に通知すること。
  8. 前記命令をシステムメモリからフェッチすること
    をさらに備える、請求項7に記載の方法。
  9. 下記を具備するプロセッサ複合体:
    命令キャッシュ、
    データキャッシュ、および
    選択信号に基づいて命令フェッチアドレスまたはデータフェッチアドレスを選択するための第1のセレクタ、前記選択信号は、前記命令フェッチアドレスまたは前記データフェッチアドレスを前記データキャッシュに適用させ、それによって命令またはデータが前記データキャッシュから選択的にフェッチされることができる。
  10. 前記第1のセレクタの前記選択信号は、データアクセス動作に応答して前記データフェッチアドレスを選択する、請求項9に記載のプロセッサ複合体。
  11. 前記第1のセレクタの前記選択信号は、ミスが前記命令キャッシュ内での命令フェッチ動作で生じたことを、命令ミス信号が示す場合に前記命令フェッチアドレスを選択する、請求項9に記載のプロセッサ複合体。
  12. プロセッサの命令バス入力に適用されるべき前記命令キャッシュからの命令出力バスまたは前記データキャッシュからのデータ出力バスを選択するための第2のセレクタをさらに備える、請求項9に記載のプロセッサ複合体。
  13. 前記第2のセレクタは、前記第1のセレクタにより選択された前記命令フェッチアドレスにおいてミスが前記命令キャッシュ内で生じ、かつヒットが前記データキャッシュ内で生じた場合に、前記データキャッシュからの前記データ出力バスを選択する、請求項12に記載のプロセッサ複合体。
  14. 前記第2のセレクタは、ヒットが前記命令キャッシュ内で生じる場合に前記命令出力バスを選択する、請求項12に記載のプロセッサ複合体。
  15. 前記命令キャッシュの命令バス入力に適用されるべきシステムメモリからのメモリ出力バスまたは前記データキャッシュからのデータ出力バスを選択するための第3のセレクタ
    をさらに備える、請求項9に記載のプロセッサ複合体。
  16. 前記第3のセレクタは、前記第1のセレクタにより選択された前記命令フェッチアドレスにおいてミスが前記命令キャッシュ内で生じ、かつヒットが前記データキャッシュ内で生じた場合に、前記データキャッシュからの前記データ出力バスを選択する、請求項15に記載のプロセッサ複合体。
  17. 下記を具備する、プログラムコードを実行するための方法:
    データキャッシュ内にデータとして格納される命令を生成すること、
    前記生成された命令を使用する前記プログラムコードの実行の前に命令キャッシュを無効にすること、および
    前記命令が前記命令キャッシュ内で見いだされない場合に前記データキャッシュから直接、命令をフェッチすること、それによって前記プログラムコードが実行される。
  18. 前記命令を生成するステップは、前記データキャッシュ内に複数の命令をロードする前記動作を含む、請求項17に記載の方法。
  19. 前記命令キャッシュを前記無効にすることは、
    前記生成された命令が格納される前記命令キャッシュの一部分だけを無効にすることをさらに備える、請求項17に記載の方法。
  20. 下記をさらに具備する、請求項17に記載の方法:
    命令が前記データキャッシュ内にあり得ることを示すために命令ページテーブル内でチェックデータキャッシュ属性をオンに設定すること、および
    前記命令が前記命令キャッシュ内で見いだされず、かつ前記チェックデータキャッシュ属性がオンである場合に、前記データキャッシュから前記命令をフェッチすること。
JP2008551564A 2006-01-20 2007-01-22 効率的なメモリ階層管理 Expired - Fee Related JP5065298B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/336,282 2006-01-20
US11/336,282 US7552283B2 (en) 2006-01-20 2006-01-20 Efficient memory hierarchy management
PCT/US2007/060815 WO2007085011A2 (en) 2006-01-20 2007-01-22 Efficient memory hierarchy management

Publications (2)

Publication Number Publication Date
JP2009524168A true JP2009524168A (ja) 2009-06-25
JP5065298B2 JP5065298B2 (ja) 2012-10-31

Family

ID=38058452

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008551564A Expired - Fee Related JP5065298B2 (ja) 2006-01-20 2007-01-22 効率的なメモリ階層管理

Country Status (12)

Country Link
US (1) US7552283B2 (ja)
EP (1) EP1974256B1 (ja)
JP (1) JP5065298B2 (ja)
KR (1) KR100955101B1 (ja)
CN (2) CN101371224B (ja)
AT (1) ATE467174T1 (ja)
BR (1) BRPI0707149A2 (ja)
CA (1) CA2635116C (ja)
DE (1) DE602007006276D1 (ja)
ES (1) ES2345733T3 (ja)
RU (1) RU2397534C2 (ja)
WO (1) WO2007085011A2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1820720B1 (en) * 2004-11-22 2009-01-14 HONDA MOTOR CO., Ltd. Method for installing run channel for automobile and device for installing run channel for automobile
JP4376173B2 (ja) * 2004-11-30 2009-12-02 本田技研工業株式会社 モール装着方法及びその装置
WO2007057978A1 (ja) * 2005-11-16 2007-05-24 Honda Motor Co., Ltd. 軟性部材の取付方法及びその取付装置
EP1953073B1 (en) * 2005-11-24 2011-06-22 Honda Motor Co., Ltd. Method and device for installing open seal
US7555605B2 (en) * 2006-09-28 2009-06-30 Freescale Semiconductor, Inc. Data processing system having cache memory debugging support and method therefor
KR100877611B1 (ko) * 2007-02-08 2009-01-09 삼성전자주식회사 플래시 메모리 내장 마이크로 컨트롤러 유닛 시스템 및상기 마이크로 컨트롤러 유닛의 플래시 메모리 접근 방법
US8255629B2 (en) * 2009-06-22 2012-08-28 Arm Limited Method and apparatus with data storage protocols for maintaining consistencies in parallel translation lookaside buffers
JP5903173B2 (ja) * 2012-02-22 2016-04-13 ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. コンピュータ上のオペレーティングシステムからの論理プロセッサの隠蔽
US9311239B2 (en) 2013-03-14 2016-04-12 Intel Corporation Power efficient level one data cache access with pre-validated tags
CN105074653B (zh) 2013-03-28 2018-11-23 慧与发展有限责任合伙企业 使计算刀片设备和扩展刀片设备的存储器可供由操作系统使用
US9747116B2 (en) 2013-03-28 2017-08-29 Hewlett Packard Enterprise Development Lp Identifying memory of a blade device for use by an operating system of a partition including the blade device
US10289467B2 (en) 2013-03-28 2019-05-14 Hewlett Packard Enterprise Development Lp Error coordination message for a blade device having a logical processor in another system firmware domain
US9715449B2 (en) 2014-03-31 2017-07-25 International Business Machines Corporation Hierarchical translation structures providing separate translations for instruction fetches and data accesses
US9734083B2 (en) * 2014-03-31 2017-08-15 International Business Machines Corporation Separate memory address translations for instruction fetches and data accesses
US9824021B2 (en) 2014-03-31 2017-11-21 International Business Machines Corporation Address translation structures to provide separate translations for instruction fetches and data accesses

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644138A (ja) * 1992-04-29 1994-02-18 Sun Microsyst Inc キャッシュ・メモリを利用したデータ処理システム
JPH086853A (ja) * 1994-06-22 1996-01-12 Hitachi Ltd 記憶制御方法
JP2002007212A (ja) * 2000-06-19 2002-01-11 Sony Corp キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1984002799A1 (en) * 1982-12-30 1984-07-19 Ibm A hierarchical memory system including separate cache memories for storing data and instructions
US5287467A (en) * 1991-04-18 1994-02-15 International Business Machines Corporation Pipeline for removing and concurrently executing two or more branch instructions in synchronization with other instructions executing in the execution unit
JPH06100982B2 (ja) * 1992-05-20 1994-12-12 工業技術院長 階層キャッシュ・メモリ装置
US5737749A (en) * 1996-05-20 1998-04-07 International Business Machines Corporation Method and system for dynamically sharing cache capacity in a microprocessor
US6260114B1 (en) * 1997-12-30 2001-07-10 Mcmz Technology Innovations, Llc Computer cache memory windowing
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US7873776B2 (en) * 2004-06-30 2011-01-18 Oracle America, Inc. Multiple-core processor with support for multiple virtual processors
GB2426082B (en) 2005-05-09 2007-08-15 Sony Comp Entertainment Europe Memory caching in data processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644138A (ja) * 1992-04-29 1994-02-18 Sun Microsyst Inc キャッシュ・メモリを利用したデータ処理システム
JPH086853A (ja) * 1994-06-22 1996-01-12 Hitachi Ltd 記憶制御方法
JP2002007212A (ja) * 2000-06-19 2002-01-11 Sony Corp キャッシュ・メモリ・システム及びキャッシュ・メモリ制御方法

Also Published As

Publication number Publication date
KR20080091481A (ko) 2008-10-13
WO2007085011A2 (en) 2007-07-26
JP5065298B2 (ja) 2012-10-31
RU2008134124A (ru) 2010-02-27
KR100955101B1 (ko) 2010-04-28
US20070174553A1 (en) 2007-07-26
RU2397534C2 (ru) 2010-08-20
CN102866879A (zh) 2013-01-09
WO2007085011A3 (en) 2007-10-04
ATE467174T1 (de) 2010-05-15
CN101371224B (zh) 2013-03-27
CN102866879B (zh) 2015-10-28
ES2345733T3 (es) 2010-09-30
CA2635116A1 (en) 2007-07-26
CA2635116C (en) 2011-05-17
EP1974256B1 (en) 2010-05-05
BRPI0707149A2 (pt) 2011-04-19
US7552283B2 (en) 2009-06-23
DE602007006276D1 (de) 2010-06-17
EP1974256A2 (en) 2008-10-01
CN101371224A (zh) 2009-02-18

Similar Documents

Publication Publication Date Title
JP5065298B2 (ja) 効率的なメモリ階層管理
US7797494B2 (en) Arithmetic processor, information processing apparatus and memory access method in arithmetic processor
US7073044B2 (en) Method and apparatus for sharing TLB entries
KR101019266B1 (ko) 물리적으로-태그된 동작을 사용하는 가상으로-태그된 명령 캐시
US8190652B2 (en) Achieving coherence between dynamically optimized code and original code
US20070088919A1 (en) Mechanisms and methods for using data access patterns
US8370604B2 (en) Method and system for caching attribute data for matching attributes with physical addresses
US11474956B2 (en) Memory protection unit using memory protection table stored in memory system
US5617553A (en) Computer system which switches bus protocols and controls the writing of a dirty page bit of an address translation buffer
WO2007073624A1 (en) Virtual translation lookaside buffer
JP2017516228A (ja) 自己書き換えコードのハードウェアサポートを提供する方法及び装置
US7269825B1 (en) Method and system for relative address translation
US11907301B2 (en) Binary search procedure for control table stored in memory system
US6810473B2 (en) Replacement algorithm for a replicated fully associative translation look-aside buffer
US8661169B2 (en) Copying data to a cache using direct memory access
US7171540B1 (en) Object-addressed memory hierarchy that facilitates accessing objects stored outside of main memory
US7076635B1 (en) Method and apparatus for reducing instruction TLB accesses
JP2007286990A (ja) キャッシュメモリ装置及びそれに用いるキャッシュメモリ制御方法並びにそのプログラム
RU2433456C2 (ru) Виртуально маркированный кэш команд с поведением физически маркированного
CN115080464B (zh) 数据处理方法和数据处理装置
MX2008009316A (en) Efficient memory hierarchy management
JPH08161226A (ja) データ先読み制御方法,キャッシュ制御装置およびデータ処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110607

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110831

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120124

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20120423

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20120501

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120511

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120809

R150 Certificate of patent or registration of utility model

Ref document number: 5065298

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

Year of fee payment: 3

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