JPH11501750A - スペキュラティブなシステムメモリ読取りを行う方法および装置 - Google Patents

スペキュラティブなシステムメモリ読取りを行う方法および装置

Info

Publication number
JPH11501750A
JPH11501750A JP9504625A JP50462597A JPH11501750A JP H11501750 A JPH11501750 A JP H11501750A JP 9504625 A JP9504625 A JP 9504625A JP 50462597 A JP50462597 A JP 50462597A JP H11501750 A JPH11501750 A JP H11501750A
Authority
JP
Japan
Prior art keywords
memory
read
data
system memory
host
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
JP9504625A
Other languages
English (en)
Other versions
JP3732518B2 (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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JPH11501750A publication Critical patent/JPH11501750A/ja
Application granted granted Critical
Publication of JP3732518B2 publication Critical patent/JP3732518B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol

Landscapes

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

Abstract

(57)【要約】 メモリ読取り中のコンピュータ・システム・パフォーマンスを向上させる方法。従来技術のコンピュータ・システムはマイクロプロセッサがシステムメモリから読取りを行っている間にかなりの時間の不利益がある。この時間の不利益は、マイクロプロセッサの読取り要求を受け取るとただちにシステムメモリからデータをスペキュラティブに取り出す本発明の方法によって軽減される。マイクロプロセッサが読取り要求を開始し、その要求がメモリ・コントローラによってデコードされる。デコードが完了する前に、メモリ・コントローラはシステムメモリ・デバイスからデータをスペキュラティブに取り出し始める。したがって、デコード・ステップで要求データがシステムメモリに入っていると判断された場合、データを取り出すのに要する時間が短縮される。

Description

【発明の詳細な説明】 スペキュラティブなシステムメモリ読取りを行う方法および装置 発明の分野 本発明は、コンピュータ・システムメモリ・コントローラに関する。具体的に は、本発明はスペキュラティブ(speculative)なシステムメモリ読取りを行う 方法および装置に係わる。発明の背景 従来のコンピュータ・システムの1タイプは、外部キャッシュと、システムメ モリと、システム・バス上にある様々な周辺装置とに接続されたマイクロプロセ ッサを含む。マイクロプロセッサは、キャッシュ・メモリ、システムメモリと、 またメモリ・コントローラ・チップを介して周辺装置と通信する。メモリ・コン トローラ・チップは、マイクロプロセッサの要求時にこれらのメモリ構成要素と の間のデータ転送を調整する。従来技術のメモリ・コントローラ・チップの一例 は、本発明の共同譲受人である米国カリフォルニア州サンタクララのインテル・ コーポレイション製の82434LX/NX PCIキャッシュおよびメモリ・ コントローラ(PCMC)である。 第1図に、メモリ・コントローラ・チップを使用した従来技術のコンピュータ ・システムを示す。マイクロプロセッサ110は、ホスト・バス160上の外部 キャッシュ120とシステムメモリ130とに結合されている。ホスト・バス1 60はメモリ・コントローラ140に接続されている。メモリ・コントローラ1 40には第2のバスであるシステム・バス150が接続されている。メモリ・コ ントローラ140は、マイクロプロセッサ110と、システム・バス150に結 合されているデバイスとの間のブリッジとして機能する。たとえば、システム・ バスは、グラフィックス・アクセラレータ、ハード・ドライブ・コントローラ、 およびアドイン・ボードなどのデバイスを組み込むことができる。 メモリ・コントローラ140は、マイクロプロセッサ110からのデータ転送 要求を処理する。メモリ・コントローラ140は、マイクロプロセッサ110か ら読取り要求または書込み要求を受け取り、どのデバイスがそのデータの発信源 または送り先であるかを判断する。マイクロプロセッサは標準マイクロプロセッ サ・タイミングを使用して読取り要求または書込み要求を出す。 従来のメモリ・コントローラ140の1タイプは、(マイクロプロセッサと通 信するための)マイクロプロセッサ・インタフェースと、(外部キャッシュと通 信するための)キャッシュ・コントローラと、(システムメモリと通信するため の)システムメモリ・コントローラと、(システム・バスと通信するための)バ ス・コントローラとを含む。メモリ・コントローラのこれらの機能構成要素は、 1つの集積回路チップ内に組み込まれる。あるいは、メーカによってはこれらの 機能を複数のチップに分割しているものもある。 メモリ・コントローラのマイクロプロセッサ・インタフェース・ユニットは、 たとえばマイクロプロセッサから読取りコマンドを受け取り、(1)「ソース」 すなわち要求データが入っているデバイスと、(2)そのデバイス内のどのアド レスでそのデータを見つけるかを判断する。ソースがシステム・バス上のデバイ スであると判断された場合、バス・コントローラが引き継ぐ。ソースがシステム メモリであると判断された場合は、システムメモリ・コントローラが引き継ぐ。 システムメモリ読取りが要求されると、キャッシュ・コントローラは要求された データをキャッシュ内で探索する。キャッシュ内に所望の読取りデータがある場 合、キャッシュ・ヒットがあり、そのデータがマイクロプロセッサに送られる。 システムメモリ・コントローラは、キャッシュ・ヒットをセンスするとシステム メモリ読取りには移らない。キャッシュからデータを取り出すこの方法によって 、マイクロプロセッサがシステムメモリ・データを取り出すのに要する時間が短 縮されてコンピュータ・システムのパフォーマンスが向上する。 外部キャッシュの使用によってシステム・パフォーマンスが向上するが、キャ ッシュにヒットされなかった場合のシステムメモリ読取りに伴うかなりの時間の 不利益がある。ダイナミック・ランダム・アクセス・メモリ(DRAM)を含む システムメモリの一例では、システムメモリから最初のデータ・ワードを取り出 すのに7クロックを要する。しかし、マイクロプロセッサがシステムメモリから データ・ワードを2つ要求するとすれば、2番目のデータ・ワードを返す時間が 大幅に短縮されることになる(すなわち2クロックになる)。 ある種の従来技術のコンピュータ・システムは、マイクロプロセッサが1ライ ン全体を要求したかどうかにかかわらず、読取り操作中にシステムメモリから1 ライン全体(4データ・ワード)を取り出すことによって、この時間の節約を利 用する。米国カリフォルニア州サンタクララのインテル・コーポレイション製の ペンティアム/Eプロセッサに基づくコンピュータ・システムの場合、各データ ・ワードは64ビットを含む。 したがって、システムメモリ読取り中のシステム・パフォーマンスを向上させ るために、システムメモリから第1のデータ・ワードを返すのに要するクロック ・サイクル数を減らす必要があることがわかるであろう。したがって、システム メモリからデータ・ワードを取り出すのに要する時間を少なくすることによって システム・パフォーマンス向上を可能にする方法を提供することが望ましい。発明の概要 メモリ読取り中のコンピュータ・システム・パフォーマンスを向上させる方法 が望ましい。マイクロプロセッサは、アドレスとメモリ・ソースを指定し、所望 のデータの記憶場所を示すことによってメモリ読取りを要求する。デコード回路 がメモリ読取り要求をデコードして、メモリ・ソースに対応するメモリ・デバイ スを識別する。メモリ読取り要求のデコードと並列して、送られてきたアドレス に基づいてシステムメモリからスペキュラティブにデータが取り出される。デコ ード回路が、システムメモリが要求されたメモリ・ソースではなかったと判断し た場合、スペキュラティブな読み取りは打ち切られる。したがってそのスペキュ ラティブに読み出されたデータはマイクロプロセッサによって使用されない。デ コード回路がシステムメモリが要求されたメモリ・ソースであったと判断した場 合、スペキュラティブに読み出されたデータはマイクロプロセッサに供給される 。 本発明のその他の特徴および利点は、添付図面および以下の詳細な説明を読め ば明らかになろう。図面の簡単な説明 本発明を以下の図面で示すが、これらは例示的なものであって限定的なもので はない。 第1図は、従来技術のコンピュータ・システムを示す図である。 第2図は、従来技術のメモリ・コントローラを示す図である。 第3図は、従来技術のメモリ読取り要求中にアサートされる信号のタイミング 図である。 第4図は、本発明の一実施形態による、アサートされる信号のタイミング図で ある。 第5図は、本発明の一実施形態による状態図である。詳細な説明 スペキュラティブなシステムメモリ読取りを行う方法および装置について説明 する。以下の説明では、本発明を十分に理解することができるように特定のシス テム構成要素、バス・サイクル、およびタイミング波形など多くの特定の詳細を 記載する。しかし、当業者なら、本発明を実施するためにこれらの特定の詳細を 使用する必要はないことがわかるであろう。他の場合には、本発明が不明瞭にな らないように、周知の構成要素または方法については詳述していない。 第2図を参照すると、従来技術のメモリ・コントローラ140が図示されてい る。メモリ・コントローラ140は、デコード回路240と読取り制御回路26 0を含むマイクロプロセッサ・インタフェース210を備える。メモリ・コント ローラ140はさらにキャッシュ・コントローラ220と、バス・コントローラ 250と、システムメモリ・コントローラ230とを備える。 マイクロプロセッサ・インタフェース210は、ホスト・バス160を介して マイクロプロセッサ110に結合されている。本発明の他の実施形態では、1つ または複数のマイクロプロセッサがホスト・バス160を介してメモリ・コント ローラ140に結合されている。マイクロプロセッサ110は、ホスト・バス1 60で信号をアサートすることによってメモリ・コントローラ140に読取り操 作と書込み操作を要求する。この信号をデコード回路がホスト・バス160を介 して受け取り、(1)読取り操作と書取り操作のどちらが要求されたか、(2) 読取り元デバイスと書込み先デバイスは何か、(3)読取り元デバイスまたは書 込み先デバイス内の所望のアドレスは何かを判断する。 読取り操作が要求されたと判断されると、読取り制御回路260に制御が移さ れる。読取り制御回路260は、システム・バス150、システムメモリ130 、キャッシュ120のいずれかからの読取り操作の制御をつかさどる。本発明の 一実施形態では、読取り制御回路260は状態機械を備える。読取り制御状態機 構の動作の詳細については後述する。 キャッシュ・コントローラ220はキャッシュ120との間のアクセスを制御 する。キャッシュ・コントローラ220の1つの機能は、キャッシュ・コヒーレ ンスを維持することである。マイクロプロセッサ110がシステムメモリ130 にデータを要求するたびに、要求データが入っていないかどうかキャッシュ12 0が調べられる。入っている場合はキャッシュ・ヒットになり、システムメモリ 130からではなくキャッシュ120からデータが読み取られる。あるいは、そ のデータがキャッシュ120内に見つからない場合、キャッシュ・ミスになり、 データはシステムメモリ130からマイクロプロセッサ110とキャッシュ12 0の両方に転送される。一実施形態では、キャッシュ・コントローラは状態機械 を備える。 一実施形態では、キャッシュ120は「ライトスルー」キャッシュ・コヒーレ ンス・プロトコルを使用する。マイクロプロセッサがシステムメモリ130に書 込み中、キャッシュ・ヒットが検出されると、キャッシュ120内とシステムメ モリ130内の両方データが更新される。キャッシュ・ミスが検出されると、シ ステムメモリのみが更新される。 あるいは、キャッシュ120は「ライトバック」キャッシュ・コヒーレンス・ プロトコルを使用する。マイクロプロセッサのシステムメモリ130への書込み 中にキャッシュ120にヒットがあると、キャッシュ120のみが新しいデータ で更新される。新しいデータは後でシステムメモリ130に書き戻される。マイ クロプロセッサの書込みがキャッシュ120のミスの場合、システムメモリ13 0のみが更新される。 一実施形態では、キャッシュ120はバースト・スタティック・ランダム・ア クセス・メモリ(SRAM)を含む。他の実施形態では、キャッシュ120は非 同期SRAMを含む。SRAMのサイズは、256キロバイトか512キロバイ ト、またはコンピュータ・システムの構成によって決まるその他の適切なサイズ とすることができる。 メモリ・コントローラ140はさらにシステムメモリ・コントローラ230を 含む。システムメモリ・コントローラ230は、マイクロプロセッサ110から の読取り要求および書込み要求に応答して、システムメモリ130に適切な制御 信号を供給する役割を負う。一実施形態では、システムメモリ・コントローラ2 30は状態機械を備える。 一実施形態では、システムメモリ130はDRAMアレイを含む。したがって 、システムメモリ・コントローラ230の一実施形態は、DRAMにリフレッシ ュ信号を供給するためのリフレッシュ・タイマ回路を備える。 バス・コントローラ250を使用して、システム・バス150の要求を制御す る。たとえば、マイクロプロセッサ110はシステム・バス150に結合された 周辺装置にデータを要求する。するとバス・コントローラ250はシステム・バ ス・プロトコルに従ってシステム・バス130上で適切なアドレスと制御信号を アサートする。一実施形態では、システム・バス・プロトコルは周辺構成要素相 互接続(PCI)プロトコルであり、したがってバス・コントローラ250はP CIブリッジとして機能する。 バス・コントローラ250はシステムメモリ130とシステム・バス150と の間のインタフェースもとる。たとえば、システム・バス130上にあるデバイ スがシステムメモリ130のデータ読取りまたはデータ書込みを要求する。バス ・コントローラ250は、その操作を完了するために適切な制御信号を駆動して システムメモリ130に送る。 第3図に、マイクロプロセッサ110からの従来技術の読取り要求のタイミン グ図を示す。以下の説明では、信号名を「アサートされた」および「アサート解 除された」と言う。「#」記号で示す信号は、アクティブ・ローであり、したが って、論理0状態でアサートされる。その他の信号はアクティブ・ハイであり、 したがって論理1状態のときにアサートされる。当業者なら、信号をアクティブ ・ローまたはアクティブ・ハイと言うことが本発明の範囲を限定しないことがわ かるであろう。 従来技術のメモリ・コントローラが直面する1つの問題は、メモリからデータ ・ワードを取り出すのに特定の最小クロック数を要することである。この最小ク ロック数を減らすのは2つの理由から難しい。第1に、待ち時間はシステムメモ リ・デバイス130の指定アクセス時間に依存する。第2に、読取り要求のデコ ードと、対応する信号のセットアップとに使われる時間が必要であり、したがっ て短縮するのは難しい。たとえば、従来技術のメモリ・コントローラを使用する 第3図に示すタイミング図では、読取り要求に応答してマイクロプロセッサ11 0にデータを返すのに7クロックを要する。 クロック300中に、マイクロプロセッサ110によって読取り要求がアサー トされる。マイクロプロセッサ110は、ホスト・バス160上でアドレス・ス トローブ「ADS#」をアサートし、バス・サイクルの開始を示す。同じクロッ ク中に、マイクロプロセッサ110はADDRESS信号バス上でアドレスをア サートする。一実施形態では、ADDRESS信号バスは32ビット・バスから 成る。あるいは、ADDRESS信号バスは特定のマイクロプロセッサおよびコ ンピュータ・システム構成に応じて、その他の様々な幅のうちの1つから成る。 デコード・クロック310でこのアドレスをデコード回路240が受け取る。 その後、デコード回路はそのアドレスを処理する。アドレスは、システムメモリ 130またはシステム・バス150に結合されたデバイスからのデータ要求を示 す。デコード回路240は、読取り要求操作のために読取り制御回路260に制 御を移す。 読取り制御回路260は、マイクロプロセッサ110がその読取り要求でどの デバイスを指定したかに応じて適切な制御ブロックをイネーブルする。クロック 320中に、読取り制御回路260によって読取り要求信号R_REQがアサー トされる。さらに、読取り制御回路260によってメモリ・イネーブル信号ME M_ENがアサートされ、システムメモリが読取りの対象となる要求ソースであ ることを示す。システムメモリ・コントローラ230はMEM_EN信号をセン スし、読取り操作を完了するためにシステムメモリ130への必要な信号をアサ ートする。 システムメモリ読取りまたは書込みを行うときは常にキャッシュ120が探索 されることを想起されたい。キャッシュ120が要求データを持っていると判断 された場合、クロック320でキャッシュ・コントローラ220によってHIT 信号がアサートされる。HIT信号が読取り制御回路260によって検出される と、読取り制御回路260はシステムメモリ・コントローラ230にシステムメ モリ読取り操作を打ち切らせる。同じクロック320中に、キャッシュ・コント ローラ220によってホスト・バス160上でバースト・レディすなわちBRD Y#信号がアサートされ、読取り要求に応答してマイクロプロセッサ110のデ ータ・ピンにデータが置かれたことを示す。 読取り操作がキャッシュでヒットしないと仮定した場合、システムメモリコン トローラ230はクロック330〜370の間、システムメモリ読取りを継続す る。次に、クロック370中に、要求データがマイクロプロセッサ110に返さ れ、キャッシュ220に書き込むことができる。同時にBRDY#信号がアサー トされる。第3図に示す実施形態の場合、システムメモリ130からデータを返 すのに7クロックを要することに留意されたい。また、このクロックの大部分は システムメモリ・コントローラ220が要求データを取り出すのに使用されてい たことに留意されたい。 システムメモリ・コントローラ230の従来の一実施形態は、システムメモリ ・コントローラが1ワードしか要求しない場合でも4個の連続するデータ・ワー ドを取り出す。次にこの4ワードは、マイクロプロセッサ・プログラム内の後の シーケンスで必要になる場合に備えてキャッシュに格納される。4ワードが取り 出されるのは、いったん最初のワードを読み取ると隣接データ・ワードを取り出 すのに要するクロック数がかなり少なくなるためである。たとえば、キャッシュ ・コントローラの一実施形態は、4回の連続読取りの読取りを行い、最初の読取 りでは7クロックを使用し、2回目から4回目までは2クロックを使用する。し たがって、メモリ・コントローラは7−2−2−2のメモリ読取りサイクルを行 うことができる。 前述のように、システムメモリ150から最初のデータ・ワードを取り出すの に要するクロック・サイクル数を減らすのは難しい場合が多い。後述するように 、本発明の方法はすべてのマイクロプロセッサ読取り操作中にスペキュラティブ なシステムメモリ読取りを行うことによってこの問題を軽減する。 したがって、スペキュラティブなシステムメモリ読取りを行う方法および装置 について説明する。説明する方法は、デコード回路と読取り制御回路とバス・コ ントローラとを含むメモリ・コントローラによって行われる。 従来技術の方法では、クロック310でマイクロプロセッサの読取り要求がデ コードされ、クロック320でデータが取り出されたことを想起されたい。それ に対して、本発明の方法は、デコード・ステップと並列してシステムメモリ13 0からデータを読み取る。デコード・ステップでシステムメモリが要求されたソ ースであったと判断された場合、データは1クロック早くマイクロプロセッサ1 10に返される。それに対して、デコード・ステップでシステムメモリが要求さ れたソースではなかったと判断された場合は、システムメモリから取り出された データは単に使用されないだけである。 第4図に本発明の一実施形態によるタイミング図を示す。図3に示す方法と同 様に、クロック400でマイクロプロセッサ110が読取り要求を開始し、した がってADS#信号がアサートされる。同じクロック中に、ADDRESS信号 バスでアドレス信号がアサートされる。前述のように、ADDRESS信号バス は複数のビットを含む。本発明の一実施形態では、ADDRESSビットの第1 のグループは、マイクロプロセッサがどのデバイスからデータを読み取りたいか を示す。ADDRESSビットの第2のグループは、所望のデバイス内でデータ が入っているアドレスを示す。ADDRESSビットの特定の割当ては、使用す るマイクロプロセッサ、メモリ・デバイス、およびバス・プロトコルのタイプに よって異なり、したがって本発明の範囲を限定することを意味しない。 クロック410中にデコード回路240はマイクロプロセッサ110からの読 取り要求をデコードする。同じクロック中に、R_REQ信号がアサートされて 読取り操作を示し、MEM_EN信号がアサートされてシステムメモリ130か らの読取りを示す。読取り制御回路260はこれらの信号を第3図のタイミング 図より1クロック早くアサートすることに留意されたい。これは、読取り制御回 路260が、デコード回路240に関係なく、システムメモリ・コントローラ2 30に対してシステムメモリ130からの読取りを行うように指示するためであ る。システムメモリ・コントローラ230は、第2のグループのADDRESS ビットを使用してメモリ・デバイス内の要求データがある部分を示すことによっ て、システムメモリ130からの読取りを行う。 デコーダ回路240はマイクロプロセッサ110からの読取り要求のデコード を終了し、クロック420で適切な処置をとる。要求されたデバイス(すなわち 第1のグループのADDRESSビット)がシステムメモリ130が正しいソー スであったことを示していたことをデコード回路240が示した場合、処置は行 われない。したがって、クロック430〜460の間、システムメモリからデー タが取り出される。次にクロック460でBRDY#信号がアサートされ、マイ クロプロセッサ110のデータ・ピンでデータがレディになっていることを示す 。 それに対して、デコード回路240が、システムメモリ130がデータの正し いソースではなかったことを検出した場合は、クロック420中にABORT信 号をアサートする。この状況が発生するのは、マイクロプロセッサ110がたと えばシステム・バス150上のデバイスからの読取りを要求した場合である。A BORT信号は読取り制御回路260とシステムメモリ・コントローラ230に よって検出される。ABORT信号を検出すると、システムメモリ・コントロー ラ230は現行読取り操作を停止する。一実施形態では、システムメモリ・コン トローラ230は状態機械を含み、ABORT信号を受け取ると読取り操作が正 常に終了した状態が示される。 本明細書に記載の実施形態では、キャッシュ制御論理回路220はシステムメ モリ130のスペキュラティブな読み取りによって影響を受けない。キャッシュ 制御論理回路220は、読取り制御回路260の指示に従って、要求されたデー タがないかキャッシュ120を探索する。 第5図に読取り制御回路260の一実施形態の状態機械を示す。IDLE状態 は、現在読取り操作が行われていないことを示す。SPEC READ状態は、 システムメモリ・コントローラ230によってスペキュラティブな読み取りが行 われていることを示す。MEMORY READ状態は、システムメモリ・コン トローラ230によって非スペキュラティブなシステムメモリ読取りが行われて いることを示す。 状態機械はIDLE状態で始まる。マイクロプロセッサ110から読取り要求 (すなわちADS#信号)を受け取ると、経路510で示すようにSPEC R EAD状態になる。システムメモリ読取りを受け取っていない場合は、読取り制 御回路は経路560を通ってIDLE状態のままである。 読取り制御回路260は2つの条件のうちの1つが発生するまでSPEC R EAD状態のままである。デコード回路240が、システムメモリ130が正し いデバイスであると判断した場合は、経路520を通ってMEMORY REA D状態になる。デコード回路が、システムメモリ130が正しいデバイスではな いと判断した場合は、経路530を通ってIDLE状態になる。システムメモリ ・コントローラ230がスペキュラティブな読み取り操作を正常に停止するのは この状態の間である。 システムメモリ130がアクセスされている間、読取り制御回路260は(経 路540に示すように)MEMORY READ状態のままである。BRDY# のアサートによって示される通りデータが取り出されて使用可能になると、読取 り制御回路260は経路550を通ってIDLE状態になる。 一実施形態では、第5図の状態機械はプログラマブル論理アレイ(PLA)か ら成る。あるいは、第5図の状態機械はマイクロコードなどの記憶命令を使用し て実施される。他の実施形態では、第5図の状態機械は組合せ論理ゲートとフリ ップフロップから成る。 したがって、スペキュラティブなシステムメモリ読取りを行う方法および装置 について説明した。この方法は、マイクロプロセッサと(1)外部キャッシュ、 (2)システムメモリ、および(3)システム・バスとの間のインターフェース をとるためにメモリ・コントローラによって行われる。あるいは、本発明の方法 は、上記のデバイスのうちの1つまたは複数の装置のないマイクロプロセッサ・ コンピュータ・システムでも行うことができる。さらに、本発明は複数のマイク ロプロセッサ、複数のシステムメモリ・デバイス、システム・バス上の複数のデ バイス、または複数の外部キャッシュを使用するコンピュータ・システムでも採 用することができる。 以上の詳細な説明では、スペキュラティブなシステムメモリ読取りを行う方法 および装置について説明した。本発明の方法および装置について、その特定の実 施形態を参照しながら説明した。しかし、本発明のより広い精神および範囲から 逸脱することなく、本発明に様々な修正および変更を加えることができることは 明らかであろう。したがって、本明細書および図面は限定的な意味ではなく例示 的な意味で捉えるべきである。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,DE, DK,ES,FI,FR,GB,GR,IE,IT,L U,MC,NL,PT,SE),OA(BF,BJ,CF ,CG,CI,CM,GA,GN,ML,MR,NE, SN,TD,TG),AP(KE,LS,MW,SD,S Z,UG),UA(AM,AZ,BY,KG,KZ,MD ,RU,TJ,TM),AL,AM,AT,AT,AU ,AZ,BB,BG,BR,BY,CA,CH,CN, CZ,CZ,DE,DE,DK,DK,EE,EE,E S,FI,FI,GB,GE,HU,IL,IS,JP ,KE,KG,KP,KR,KZ,LK,LR,LS, LT,LU,LV,MD,MG,MK,MN,MW,M X,NO,NZ,PL,PT,RO,RU,SD,SE ,SG,SI,SK,SK,TJ,TM,TR,TT, UA,UG,US,UZ,VN (72)発明者 ランゲンドルフ,ブライアン・ケイ アメリカ合衆国 95762 カリフォルニア 州・エル ドラド ヒルズ・リンハースト コート・1910 (72)発明者 ハイエク,ジョージ・アール アメリカ合衆国 95682 カリフォルニア 州・キャメロン パーク・コリングウッド ドライブ・3132

Claims (1)

  1. 【特許請求の範囲】 1.メモリ読取り中のコンピュータ・システム・パフォーマンスを向上させる方 法であって、 (A)要求されたデータを読み取る第1のメモリ・ソースと前記第1のメモリ ・ソース内の第1のアドレスとを指定する読取り要求を受け取るステップと、 (B)前記読取り要求をデコードして前記第1のメモリ・ソースに対応するデ バイスを識別するステップと、 (C)ステップ(B)が完了したかどうかに関係なく前記第1のアドレスを使 用してシステムメモリからスペキュラティブなデータのフェッチを開始するステ ップとを含む方法。 2.前記システムメモリがダイナミック・ランダム・アクセス・メモリ(DRA M)を含むことを特徴とする請求項1に記載の方法。 3.(D)ステップ(B)で前記第1のメモリ・ソースに対応する前記デバイス が前記システムメモリではないと判断された場合にステップ(C)を打ち切るス テップをさらに含む請求項1に記載の方法。 4.前記読取り要求がホストによってアサートされ、ステップ(D)が、 ステップ(B)で前記第1のメモリ・ソースに対応する前記デバイスが前記シ ステムメモリであると識別された場合は前記ホストに前記スペキュラティブなデ ータを返すステップをさらに含むことを特徴とする請求項3に記載の方法。 5.前記ホストがマイクロプロセッサであり、前記読取り要求がマイクロセッサ 読取りタイミングを使用して発行されることを特徴とする請求項4に記載の方法 。 6.読取り操作を自動的に行う方法であって、 (A)ホストから、第1のアドレス信号と第1のデバイス信号を含む第1のデ ータの場所を指定する読取りコマンドを受け取るステップと、 (B)前記第1のデバイス信号をデコードして前記第1のデータが入っている 第1のデバイスを識別するステップと、 (C)ステップ(B)が完了する前に、システムメモリから前記第1のアドレ ス信号に対応するスペキュラティブなデータの取出しを開始するステップと、 (D)ステップ(B)で前記第1のデバイスが前記システムメモリであると識 別された場合に前記読取りコマンドに応答して前記ホストに前記スペキュラティ ブ・データを返すステップとを含む方法。 7.前記システムメモリがダイナミック・ランダム・アクセス・メモリ(DRA M)をさらに含むことを特徴とする請求項6に記載の方法。 8.ステップ(D)が、 ステップ(B)で前記第1のデバイスが前記システムメモリではないと判断さ れた場合にステップ(C)を打ち切るステップをさらに含むことを特徴とする請 求項6に記載の方法。 9.前記ホストがマイクロプロセッサであり、前記読取りコマンドがマイクロプ ロセッサ読取りタイミングに従って前記ホストによって発行されることを特徴と する請求項6に記載の方法。 10.(A)スペキュラティブ読取り制御回路が読取りコマンドを受け取るとた だちに前記読取りコマンドのアドレスを使用してシステムメモリ・デバイスから スペキュラティブにデータの取出しを開始する、前記アドレスとデバイス・コー ドとを含む前記読取りコマンドをホストから受け取る前記スペキュラティブ読取 り制御回路と、 (B)前記読取りコマンドをデコードして前記デバイス・コードに関連づけら れたメモリ・デバイスを識別し、識別された前記メモリ・デバイスが前記システ ムメモリ・デバイスではない場合、前記スペキュラティブ読取り制御回路への打 切り信号をアサートするデコード回路とを備えるメモリ・コントローラ。 11.前記スペキュラティブ読取り制御回路が状態機械をさらに備えることを特 徴とする請求項10に記載のメモリ・コントローラ。 12.ホストと、 前記ホストが使用するデータ値を格納するシステムメモリ・デバイスと、 前記ホストおよび前記システムメモリ・デバイスに結合されたメモリ・コント ローラとを備え、前記メモリ・コントローラは、 (A)読取りコマンドがアドレスとデバイス・コードを含み、スペキュラティ ブ読取り制御回路が前記読取りコマンドを受け取るとただちに前記読取りコマン ドの前記アドレスを使用して前記システムメモリ・デバイスからスペキュラティ ブにデータを取り出す、前記ホストから前記読取りコマンドを受け取る前記スペ キュラティブ読取り制御回路と、 (B)前記読取りコマンドをデコードして前記デバイス・コードに関連づけら れたメモリ・デバイスを識別し、識別された前記メモリ・デバイスが前記システ ムメモリ・デバイスではない場合、前記スペキュラティブ読取り制御回路への打 切り信号をアサートするデコード回路とをさらに備えるコンピュータ・システム 。 13.前記スペキュラティブ読取り制御回路が状態機械をさらに備えることを特 徴とする請求項12に記載のコンピュータ・システム。 14.前記システムメモリ・デバイスがダイナミック・ランダム・アクセス・メ モリ(DRAM)を含むことを特徴とする請求項12に記載のコンピュータ・シ ステム。
JP50462597A 1995-12-28 1996-07-15 スペキュラティブなシステムメモリ読取りを行う方法および装置 Expired - Fee Related JP3732518B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/580,323 1995-12-28
US08/580,323 US5603010A (en) 1995-12-28 1995-12-28 Performing speculative system memory reads prior to decoding device code
PCT/US1996/011715 WO1997024672A1 (en) 1995-12-28 1996-07-15 Performing speculative system memory reads

Publications (2)

Publication Number Publication Date
JPH11501750A true JPH11501750A (ja) 1999-02-09
JP3732518B2 JP3732518B2 (ja) 2006-01-05

Family

ID=24320634

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50462597A Expired - Fee Related JP3732518B2 (ja) 1995-12-28 1996-07-15 スペキュラティブなシステムメモリ読取りを行う方法および装置

Country Status (8)

Country Link
US (1) US5603010A (ja)
EP (1) EP0812437B1 (ja)
JP (1) JP3732518B2 (ja)
AU (1) AU6493696A (ja)
DE (1) DE69617404T2 (ja)
HK (1) HK1006235A1 (ja)
TW (1) TW409206B (ja)
WO (1) WO1997024672A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926831A (en) * 1996-10-11 1999-07-20 International Business Machines Corporation Methods and apparatus for control of speculative memory accesses
US6148380A (en) * 1997-01-02 2000-11-14 Intel Corporation Method and apparatus for controlling data transfer between a synchronous DRAM-type memory and a system bus
US6493802B1 (en) 1998-06-18 2002-12-10 Compaq Information Technologies Group, L.P. Method and apparatus for performing speculative memory fills into a microprocessor
US6081874A (en) * 1998-09-29 2000-06-27 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6067603A (en) * 1998-10-01 2000-05-23 International Business Machines Corporation Non-uniform memory access (NUMA) data processing system that speculatively issues requests on a node interconnect
US6865652B1 (en) * 2000-06-02 2005-03-08 Advanced Micro Devices, Inc. FIFO with undo-push capability
US6888777B2 (en) * 2002-08-27 2005-05-03 Intel Corporation Address decode
US7159066B2 (en) * 2002-08-27 2007-01-02 Intel Corporation Precharge suggestion
US7120765B2 (en) * 2002-10-30 2006-10-10 Intel Corporation Memory transaction ordering
US7469316B2 (en) * 2003-02-10 2008-12-23 Intel Corporation Buffered writes and memory page control
US7480774B2 (en) * 2003-04-01 2009-01-20 International Business Machines Corporation Method for performing a command cancel function in a DRAM
US7076617B2 (en) * 2003-09-30 2006-07-11 Intel Corporation Adaptive page management
US7810013B2 (en) * 2006-06-30 2010-10-05 Intel Corporation Memory device that reflects back error detection signals
US7627804B2 (en) * 2006-06-30 2009-12-01 Intel Corporation Memory device with speculative commands to memory core
US9619382B2 (en) * 2013-08-19 2017-04-11 Intel Corporation Systems and methods for read request bypassing a last level cache that interfaces with an external fabric
US9665468B2 (en) 2013-08-19 2017-05-30 Intel Corporation Systems and methods for invasive debug of a processor without processor execution of instructions
US9632947B2 (en) 2013-08-19 2017-04-25 Intel Corporation Systems and methods for acquiring data for loads at different access times from hierarchical sources using a load queue as a temporary storage buffer and completing the load early
US9361227B2 (en) 2013-08-30 2016-06-07 Soft Machines, Inc. Systems and methods for faster read after write forwarding using a virtual address

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
IT1216087B (it) * 1988-03-15 1990-02-22 Honeywell Bull Spa Sistema di memoria con selezione predittiva di modulo.
CA2044487A1 (en) * 1990-06-15 1991-12-16 Michael E. Tullis Lookaside cache
US5353429A (en) * 1991-03-18 1994-10-04 Apple Computer, Inc. Cache memory systems that accesses main memory without wait states during cache misses, using a state machine and address latch in the memory controller

Also Published As

Publication number Publication date
HK1006235A1 (en) 1999-02-19
DE69617404D1 (de) 2002-01-10
AU6493696A (en) 1997-07-28
EP0812437A4 (en) 1999-01-13
DE69617404T2 (de) 2002-08-01
EP0812437B1 (en) 2001-11-28
US5603010A (en) 1997-02-11
TW409206B (en) 2000-10-21
EP0812437A1 (en) 1997-12-17
JP3732518B2 (ja) 2006-01-05
WO1997024672A1 (en) 1997-07-10

Similar Documents

Publication Publication Date Title
JPH11501750A (ja) スペキュラティブなシステムメモリ読取りを行う方法および装置
US6058461A (en) Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
US5568620A (en) Method and apparatus for performing bus transactions in a computer system
US5802576A (en) Speculative cache snoop during DMA line update
US6836829B2 (en) Peripheral device interface chip cache and data synchronization method
US5778431A (en) System and apparatus for partially flushing cache memory
JP2509766B2 (ja) キャッシュメモリ交換プロトコル
US11500797B2 (en) Computer memory expansion device and method of operation
US6219745B1 (en) System and method for entering a stream read buffer mode to store non-cacheable or block data
JPH09510308A (ja) 高度パイプライン式バス・アーキテクチャ
KR20080068940A (ko) 마이크로컨트롤러 기반 플래시 메모리 디지털 제어기시스템용 명령 디코더
US5630147A (en) System management shadow port
JP2001147854A (ja) 処理システム、書き込みバッファユニット内の格納の最適化方法、並びに、データの格納及び分配方法
US20020199062A1 (en) Speculative memory command preparation for low latency
US5974497A (en) Computer with cache-line buffers for storing prefetched data for a misaligned memory access
US5987570A (en) Performing overlapping burst memory accesses and interleaved memory accesses on cache misses
US6754779B1 (en) SDRAM read prefetch from multiple master devices
TW200415655A (en) Precharge suggestion
JPH0926930A (ja) マルチプロセッサ・キャッシュ・コヒーレント・コンピュータ・システムにおいてメモリ・アクセスを迅速に開始する方法および装置
JP4144990B2 (ja) データ処理システム及び初期化方法
US5649232A (en) Structure and method for multiple-level read buffer supporting optimal throttled read operations by regulating transfer rate
US7130965B2 (en) Apparatus and method for store address for store address prefetch and line locking
KR20010108428A (ko) 데이터 트랜잭션 액세스 시스템 및 방법
US5812815A (en) Address tenure control for cache management wherein bus master addresses are internally latched in a cache controller
US5809534A (en) Performing a write cycle to memory in a multi-processor system

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050817

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20051013

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20091021

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20101021

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees