JP2000242545A - データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法 - Google Patents

データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法

Info

Publication number
JP2000242545A
JP2000242545A JP2000030533A JP2000030533A JP2000242545A JP 2000242545 A JP2000242545 A JP 2000242545A JP 2000030533 A JP2000030533 A JP 2000030533A JP 2000030533 A JP2000030533 A JP 2000030533A JP 2000242545 A JP2000242545 A JP 2000242545A
Authority
JP
Japan
Prior art keywords
memory access
access request
memory
queue
source
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.)
Pending
Application number
JP2000030533A
Other languages
English (en)
Inventor
Jeremy G Harris
ジェレミィ・ジィ・ハリス
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.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems 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 Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2000242545A publication Critical patent/JP2000242545A/ja
Pending 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison
    • 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/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems

Landscapes

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

Abstract

(57)【要約】 【課題】 メモリ・アクセス時間およびメモリバンド幅
とは無関係に、データ処理システム内のメモリ・アクセ
ス要求のスループットを向上させる方法および装置を提
供すること。 【解決手段】 メモリ・アクセス要求のソースと、この
メモリ・アクセス要求のターゲットであるデータ記憶要
素との間に、メモリ・アクセス要求処理ユニットが配置
される。このメモリ・アクセス要求処理ユニットは、メ
モリ・アクセス要求を一時的に格納することができるい
くつかの待ち行列要素からなる待ち行列を備える。比較
論理が、この待ち行列のウィンドウを監視し、データ記
憶要素にまだ送られていないメモリ・アクセス要求を表
すデータ記憶要素へ送るための1つまたは複数の待ち行
列要素を選択する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、データ処理システ
ムにおいてメモリ・アクセス要求を処理する装置と方法
に関する。
【0002】
【従来の技術】アーキテクチャが単純なデータ処理シス
テムの場合、1つのプロセッサがバスを介して主メモリ
に接続される。この種の単純なアーキテクチャは、メモ
リの待ち時間とメモリバンド幅によりパフォーマンスが
厳密に制限されている。そのため、最新のデータ処理シ
ステムはそのほとんどが多重レベルのメモリ階層を備え
る。メモリ階層の最上位、すなわちプロセッサのすぐ下
には、高速で小型の、キャッシュ・メモリと呼ばれるメ
モリ要素が設けられている。その下には主メモリ、大容
量記憶装置が続く。さらに、たとえばプロセッサと同じ
集積回路上に配置された内部キャッシュ・メモリと、プ
ロセッサとは別の集積回路上に配置された外部キャッシ
ュ・メモリなど、2つまたはそれ以上のレベルのキャッ
シュ・メモリが設けられている場合もある。
【0003】したがって一般的な最新のデータ処理シス
テムは、メモリの高位レベルがより速いアクセス時間、
すなわちより少ない待ち時間に関連付けられ、低位レベ
ルがより遅いアクセス時間、すなわちより多くの待ち時
間に関連付けられた、多重レベルのメモリ階層を有す
る。ただし、このメモリ階層の各レベル間には依然とし
て待ち時間の相違が残されており、多重レベルのメモリ
階層であるにもかかわらず、一方ではプロセッサと、他
方では主メモリまたは大容量記憶装置との間に、全体的
な待ち時間の相違が依然として存在している。
【0004】このメモリ階層の各レベルでメモリのメモ
リ・アクセス時間が増加すると、システムのパフォーマ
ンスは確実に向上するが、プロセッサとメモリ階層レベ
ルとの間の固有の待ち時間の相違は、技術的な面だけで
なく経済的な理由からも、将来のデータ処理システムの
特徴として残ることになる。
【0005】
【発明が解決しようとする課題】したがって本発明は、
メモリ・アクセス時間を高速にあるいはメモリバンド幅
を増やす以外の方法で、メモリ・アクセス要求がデータ
処理システムによって処理される効率を向上させること
を対象にする。
【0006】より詳細には、本発明の一目的は、メモリ
・アクセス時間およびメモリバンド幅とは無関係に、デ
ータ処理システム内のメモリ・アクセス要求のスループ
ットを向上させるための方法および装置を提供すること
である。
【0007】
【課題を解決するための手段】本発明の具体的かつ好ま
しい態様については、添付の特許請求の範囲の独立項お
よび従属項に詳細に記載されている。従属項の特徴は独
立項の特徴と適切に組み合わせてもよく、特許請求の範
囲に明示的に記載されている以外の組み合わせも可能で
ある。
【0008】本発明の第1の態様によれば、メモリ・ア
クセス要求のソースからのメモリ・アクセス要求出力の
流れを、ターゲット・データ記憶要素が受け取る前に、
インターセプトし、順序変更するように設計されたメモ
リ・アクセス要求処理ユニットが設けられている。一般
的なメモリ・アクセス要求の例は、読取り要求および書
込み要求である。メモリ・アクセス要求処理ユニット
は、メモリ・アクセス要求を受け取るための入力と、メ
モリ・アクセス要求を送るための出力を備える。複数の
待ち行列要素を備える待ち行列は、入力で受け取られる
メモリ・アクセス要求を受け取り、一時的に格納し、出
力への転送を保留するように配列される。この待ち行列
要素に格納されたメモリ・アクセス要求に関して比較演
算を実行するように動作可能な、比較論理が設けられて
いる。比較演算の結果は、待ち行列から出力への転送に
少なくとも1つのメモリ・アクセス要求を選択すること
である。このようにして比較論理は、メモリ・アクセス
要求がデータ記憶要素に供給される順序を動的に順序変
更する。
【0009】メモリ・アクセス要求処理ユニットは、多
重レベルのシステム階層における任意の2つのレベル間
に配置することができる。たとえば、プロセッサとキャ
ッシュ・メモリとの間、メモリ階層の異なるレベルにあ
る2つのキャッシュ・メモリ間、または主メモリと大容
量記憶媒体との間などに配置することができる。この大
容量記憶媒体は、CD−ROMまたはハード・ディスク
のようなその他の大容量記憶媒体であってもよい。
【0010】本発明の第1の態様の一例では、メモリ・
アクセス要求処理ユニットは、複数のリスト要素を備え
るリスト記憶装置をさらに備える。各リスト要素は、以
前に待ち行列から出力へ送られたメモリ・アクセス要求
から導出されたリスト・エントリを、そのメモリ・アク
セス要求がデータ記憶要素側で処理中である限り格納す
るように配列される。メモリ・アクセス要求が待ち行列
から出力に送られる順序が動的に選択されるように、比
較論理は、待ち行列に格納されたメモリ・アクセス要求
をリスト記憶装置に格納されたリスト・エントリと比較
するように配列される。このようにして、後のメモリ・
アクセス要求の処理を妨げるような種類のデータ記憶要
素によって以前のメモリ・アクセス要求がなお処理中で
ある場合、データ記憶要素へのメモリ・アクセス要求の
転送を抑制することができる。逆に言えば、同じ種類ま
たは補足的な種類のデータ記憶要素によって現在処理さ
れているメモリ・アクセス要求があるため、通常より高
速に処理することができる場合、待ち行列に格納された
メモリ・アクセス要求を、待ち行列に格納された他のメ
モリ・アクセス要求より前に進めることができる。
【0011】この例では、メモリ・アクセス要求がその
データ記憶要素の待ち行列から出力に送られる際に、リ
スト・エントリが生成される。このリスト・エントリに
は、送られている待ち行列要素のアドレス部分から導出
されるメモリ・アクセス要求タイプ部分を含んでいる。
さらにこのリスト・エントリには、メモリ・アクセス要
求完了時にそれによってリスト・エントリを識別するこ
とが可能で、データ記憶要素がメモリ・アクセス要求を
処理するとそれによってキャンセルされる識別子部分を
含むことができる。比較論理は、待ち行列からデータ記
憶要素へのメモリ・アクセス要求のうち、いずれか1つ
のリスト・エントリのメモリ・アクセス要求タイプ部分
に合致するアドレス部分を有するものの転送を妨げるよ
うに形成されている。またこの比較論理は、どのリスト
・エントリのメモリ・アクセス要求タイプ部分にも合致
しないアドレス部分を有するメモリ・アクセス要求を、
待ち行列からデータ記憶要素へ優先的に送るように動作
することができる。
【0012】データ記憶要素となるキャッシュ・メモリ
の例を挙げると、前のメモリ・アクセス要求にキャッシ
ュ・ミスが発生した場合に、前のメモリ・アクセス要求
と同じキャッシュ・ラインへのメモリ・アクセス要求を
妨げることができる。その場合、別のキャッシュ・ライ
ンへのメモリ・アクセス要求がヒットすると、比較論理
による待ち行列からデータ記憶要素への転送が可能にな
る。
【0013】データ記憶要素となる主メモリの別の例を
挙げると、前のデータ要求をなお処理中の任意のメモリ
・バンクへメモリ・アクセス要求が送られるのを妨げる
ように、比較論理を形成することができる。
【0014】本発明の第1の態様の他の例では、待ち行
列要素がそれぞれ、メモリ・アクセス要求が入力側で受
け取られたときに優先度値を受け取るように配列され
た、ソース優先度レベル記憶部分を備える。比較論理
は、メモリ・アクセス要求が待ち行列から出力へ送られ
る順序を動的に選択するために、少なくとも待ち行列要
素内に格納されたメモリ・アクセス要求のソース優先度
値を比較するようになっている。このようにして、後で
生成されたメモリ・アクセスを前に生成されたメモリ・
アクセス要求より先にデータ記憶要素に到達させること
が可能になり、したがって、優先度の高いメモリ・アク
セス要求の方を速く処理することができる。この優先度
値は、メモリ・アクセス要求処理ユニットの入力ステー
ジによって標準ソースを使用するメモリ・アクセス要求
の属性から決定することができる。あるいは別法とし
て、この優先度値を、この機能を備えるように特別に設
計する必要のあるソースによって、各メモリ・アクセス
要求内で明示的に指定することができる。
【0015】本発明の第1の態様の他の例では、比較論
理が、リスト・エントリを備えている待ち行列要素内に
格納されたメモリ・アクセス要求のソース優先度値を比
較するように構成され、その結果、メモリ・アクセス要
求が待ち行列から出力へ送られる順序を動的に選択する
ように、前述の例の機能が組み合わされている。この比
較には、メモリ・アクセス要求のソース優先度値以外の
部分を含めることもできる。
【0016】前述の各例では、既存のメモリ・アクセス
要求ソースとデータ記憶要素の設計を修正する必要なし
に、待ち行列および比較論理、ならびに設けられている
場合はリストに関連付けられた追加の回路に、ソースか
らデータ記憶要素への通信リンクを挿入することができ
る。ただし、ソース優先度値を使用する例では、そのソ
ース優先度値がソース側で定義付けられている場合、修
正されたソースが必要である。逆に言えば、入力される
メモリ・アクセス要求処理ユニットのステージによって
標準形式のメモリ・アクセス要求の属性からソース優先
度値が決定される場合は、標準ソースを使用することが
できる。
【0017】本発明の第2の態様によれば、メモリ・ア
クセス要求のソースと、そのソースによって生成される
メモリ・アクセス要求を処理するためのデータ記憶要素
と、前述の本発明の第1の態様に従ってそのソースとデ
ータ記憶要素との間に配列されたメモリ・アクセス要求
処理ユニットとを含むデータ処理システムが提供され
る。使用に際してメモリ・アクセス要求処理ユニット
は、ソースから送られるメモリ・アクセス要求をインタ
ーセプトして待ち行列に入れ、システム全体のパフォー
マンスが向上するように、データ記憶要素に送られるシ
ーケンスを動的に順序変更する。
【0018】本発明の第3および第4の態様によれば、
複数の待ち行列を備えたメモリ・アクセス要求処理ユニ
ットが提供される。さらにこのメモリ・アクセス要求処
理ユニットには、入力ステージとしてルータが設けられ
る。このルータは、ソースから受け取ったメモリ・アク
セス要求を適切な待ち行列に送るように配列される。こ
の経路指定は、メモリ・アクセス要求のタイプ分類に従
って実行される。このタイプ分類は、ルータ自体が各メ
モリ・アクセス要求の分析に基づいて行うことができ
る。別法として、メモリ・アクセス要求がそれぞれ、ソ
ースによって追加される明示的なタイプ分類を含むこと
もできる。
【0019】本発明の第3の態様のメモリ・アクセス要
求処理ユニットは、リスト記憶装置をさらに備える。こ
のリスト記憶装置は複数のリスト要素を有する。各リス
ト要素は、以前に待ち行列の1つから出力へ送られたメ
モリ・アクセス要求から導出されるリスト・エントリを
格納するように配列される。比較論理が設けられてい
る。この比較論理は、待ち行列要素内に格納されたメモ
リ・アクセス要求をリスト記憶装置に格納された各リス
ト・エントリと比較する比較演算を実行するように動作
可能である。この比較演算の結果、少なくとも1つまた
は複数のメモリ・アクセス要求の選択が実行される。次
いでこの選択された1つまたは複数のメモリ・アクセス
要求が、出力に送られる。複数待ち行列は、異なる待ち
行列からの転送に異なる総合的な優先度レベルを与える
ことによって促進される。その際の、異なる総合的な待
ち行列優先度レベルは比較演算に反映する。
【0020】本発明の第4の態様は、特にメモリ読取り
要求用のメモリ・アクセス要求処理ユニットを提供す
る。複数の読取り待ち行列が、待ち行列要素内に格納さ
れているメモリ読取り要求に関する比較演算を実行する
ように動作可能な比較論理と共に提供される。この比較
演算の結果、前記メモリ読取り要求のうちの少なくとも
1つが、出力に送るために選択される。本発明の第3の
態様の場合と同様、比較論理はさらに待ち行列ごとにこ
の選択に優先順位をつける。
【0021】前述のように、本発明のいくつかの例およ
び態様によるメモリ・アクセス要求処理ユニットは、入
ってくるメモリ・アクセス要求にソース優先度値のタグ
を付けることを必要とする。
【0022】したがって本発明の第5の態様では、この
機能を備えたソースを提供する。本発明の第5の態様の
メモリ・アクセス要求ソースは、少なくとも第1および
第2のメモリ・アクセス要求生成ユニットを備える。こ
のソースは、それぞれのメモリ・アクセス要求生成ユニ
ットによって生成されたメモリ・アクセス要求に、異な
る優先度値のタグを付けるように動作可能である。これ
らの優先度値は、後続のメモリ・アクセス要求処理ユニ
ットがメモリ・アクセス要求のタイプ分類を行う際の基
準を与えるのに役立つ。
【0023】本発明の第6の態様は、メモリ・アクセス
要求のソースおよびデータ記憶要素を含むデータ処理シ
ステムにおいて、メモリ・アクセス要求を処理する方法
を提供する。ソースから送られたメモリ・アクセス要求
は、データ記憶要素に送られる前に一時的に待ち行列に
保持される。この待ち行列からデータ記憶要素へのメモ
リ・アクセス要求の転送は、待ち行列の要素に格納され
たメモリ・アクセス要求の論理的比較に基づいて行われ
る。この論理的比較は、待ち行列に格納された各メモリ
・アクセス要求の一部として含まれるオペランドとして
のソース優先度レベル、および/またはその時点で待ち
行列からデータ記憶要素に送られた場合に、データ記憶
要素が現在メモリ・アクセス要求を処理できる確率を有
する。
【0024】本発明についてよりよく理解し、それを実
施できる方法を示すために、例示的なものとして添付の
図面を参照する。
【0025】
【発明の実施の形態】図1は、メモリ・アクセス要求の
ソース10と、データ記憶要素20として表されている
メモリ・アクセス要求のターゲットとを示す概略図であ
る。このソース10とデータ記憶要素20は従来の設計
のものでよい。ソース10とデータ記憶要素20との間
に、メモリ・アクセス要求処理ユニット(RHU)25
が挿入される。下記に詳細に示すように、メモリ・アク
セス要求処理ユニット25の機能は、メモリ・アクセス
要求のソースと、ターゲットであるデータ記憶要素との
間で、メモリ・アクセス要求の流れを待ち行列に入れ、
これを順序変更することである。順序変更は、ソース優
先度レベル、および/または所与のメモリ・アクセス要
求がその時にデータ記憶要素内で効率よく動作できる見
込みの、いずれかを基準にして実行される。図1および
後続の図で、先頭に矢印の付いた線は制御ラインを示
す。
【0026】メモリ・アクセス要求処理ユニット25
は、待ち行列30と、転送ユニット40と、無効化ユニ
ット35とを備える。待ち行列30は、ヘッド・エンド
36およびテール・エンド38を有し、待ち行列エンド
36と38との間に配列された複数の要素32で構成さ
れる。各待ち行列要素32は、1つのメモリ・アクセス
要求を一時的に格納することができる。転送ユニット4
0は、比較論理45と、各アクセスに対してデータ記憶
要素20にすでに送信されているがまだ完了していない
エントリを維持するためのリスト記憶装置42とを備え
る。このリスト記憶装置42は、リスト・エントリを格
納できる複数の要素44を備える。リスト・エントリ
は、リスト要素44に格納され、データ記憶要素に送ら
れたがまだ完了していないメモリ・アクセス要求に関す
るデータとして定義される。
【0027】転送ユニット40は、待ち行列のウィンド
ウ34を監視するように配置されている。このウィンド
ウ34は、ヘッド・エンド36からテール・エンド38
までのすべての待ち行列要素32をカバーするように広
がっていても良く、また、(図1に示すように)ヘッド
・エンド36にある要素と、待ち行列の両エンド36と
38との間の待ち行列要素32の中間部分のある1つと
の間の待ち行列部分だけをカバーするようになっていて
もよい。比較論理45は、転送の目標であるデータ記憶
要素20にまだ送られていないメモリ・アクセス要求を
表す、1つまたは複数の待ち行列要素32を選択するよ
うに形成されている。この選択は、待ち行列30に保持
されたメモリ・アクセス要求を今なおデータ記憶要素2
0側で保留しているメモリ・アクセス要求と比較するこ
とに基づいて行われるものであって、この比較の論理は
システム設計の知識、最も具体的にはデータ記憶要素の
設計知識を使って設計される。
【0028】たとえば、キャッシュ・メモリと主メモリ
設計の様々な態様が、以下に記載するように比較論理に
反映される。
【0029】第1に比較論理45は、前のアクセスがキ
ャッシュ・ミスを発生した場合に、キャッシュ・メモリ
にそのメモリ・アクセス要求が送られるのを妨げるよう
に形成することができる。転送は、保留されているリス
ト・エントリを基準にして、キャッシュ・ミスに続いて
起こる主メモリ・アクセスに対して妨げられる。たとえ
ば、メモリ・アクセス要求が転送と見られるが、同じキ
ャッシュ・ライン・セレクタ・ビットを有するリスト・
エントリがある場合には、その転送は妨げられるであろ
う。
【0030】さらに、メモリのページへの保留されてい
るアクセスがある場合、このページはオープンであると
言われ、この場合、そのページへのさらなるメモリ・ア
クセス要求を実行するのには通常よりも少ないクロック
・サイクルでよい。ここで、主メモリは、それぞれがメ
モリの何ページ(たとえば256)かを含むいくつかの
個々のチップ(たとえば1MBのRAMチップ)を備え
ていると想定していることに留意されたい。したがって
比較論理45は、直接シーケンスで1ページのメモリに
対するすべてのメモリ・アクセス要求を選択するように
構成することができる。所与のページのすべてのアドレ
スが共通のアドレス・ビット部分を共用しているので、
この選択は、アドレス・ビット52に基づいて実行する
ことができる。
【0031】他の例は、あるメモリ・バンクに対してす
でに保留中のメモリ・アクセス要求があることを示す、
少なくとも1つのリスト・エントリがある場合、主メモ
リのそのバンクに対するメモリ・アクセス要求の転送を
妨げるかまたは禁止するものである。ここで、個々のメ
モリ・チップはメモリ・バンクのグループに分けられて
いる(たとえば、1バンク当たり1MBチップの64個
のチップで64MBのメモリ・バンクを形成する)と想
定されることに留意されたい。このメモリ・バンクはバ
ッファを有し、したがってビジーの場合に他のアクセス
要求を受け入れられることもあるが、バンクがビジーの
場合はメモリ・アクセス要求をビジーでない他のメモリ
・バンクに送るか、または少なくとも保留しているメモ
リ・アクセス要求が少なくなるようにメモリ・バンクに
送ることが依然として好ましい。
【0032】他の例は、メモリ・バンクのデッドタイム
を考慮に入れるように比較論理45を構成するものであ
る。デッドタイムとは、メモリ・バンクが内部動作に費
やす時間である。デッドタイムの発生および継続時間
は、メモリ・バンク設計の知識があれば予測可能であ
る。たとえば、書込み要求後には一定の平均または最低
の継続時間のデッドタイムが常に発生する可能性があ
る。読取り要求の場合は、別のデッドタイムが発生する
可能性がある。したがって、リスト・エントリの消去機
構は、メモリ・アクセス要求タイプ部分63に対して敏
感な遅延ラインを含むことがある。このようにして、適
切なデッドタイムの間、データ記憶要素とメモリ・アク
セス要求処理ユニット25との間に制御ループを実装す
る必要のない方法で、メモリ・アクセス要求の転送が妨
げられるかまたは防止される。
【0033】無効化ユニット35は、ソース10からの
命令の下で、待ち行列30からエントリをキャンセルす
るための機構を備えている。これは、以前に送られたメ
モリ・アクセス要求の結果をソースがまだ受け取ってお
らず、ソースにとってはもう必要でなくなった場合に役
立つことがある。無効化コマンドは、待ち行列エントリ
がまだデータ記憶要素20に送られていない場合に、そ
れによって識別されて待ち行列から削除できる要求ラベ
ルを指定する。したがって無効化機構を含めると、不必
要になったメモリ・アクセス要求がデータ記憶要素に届
かないようにすることによって、ソースとデータ記憶要
素との間の通信効率をさらに向上させることができる。
これは、メモリ・アクセス要求の重要部分が様々なレベ
ルでプロセッサおよびキャッシュ・メモリによって生成
される可能性がある、マルチスレッドまたはパイプライ
ン・プロセッサで特に有利な可能性がある。
【0034】別の無効化ユニットなしで無効化機構を実
施する代替方法は、比較論理などによって識別できる無
効化コマンドを確保しておくことであろう。たとえば無
効化コマンドは、アドレス・ビット52および/または
データ・ビット56に対する特別なビット・パターンで
識別可能である。この無効化コマンドは、たとえば制御
ビット54のビット形で、無効化されるメモリ・アクセ
ス要求のためのラベルを含むこともある。さらにこの無
効化コマンドには、比較論理45から迅速なアテンショ
ンを受け取ったことを保証するために制御ビット・サブ
セット55に適切な値を書き込むことで、高い優先度レ
ベル、好ましくは最高の優先度レベルが与えられる。無
効化コマンドを比較論理45で処理すると、無効化コマ
ンドに占有された待ち行列エントリが削除され、無効化
されるメモリ・アクセス要求の待ち行列エントリが削除
される。
【0035】無効化機構は有利であるが、一部の実施形
態では省略される場合があることを理解されたい。
【0036】図2は、待ち行列30、比較論理45、お
よびリスト記憶装置42をさらに詳細に示す図である。
図2を見ればわかるように、各待ち行列要素32は、要
素がまだデータ記憶要素20に送られていないメモリ・
アクセス要求を含むか否かを示すための有効ビット5
0、アドレス・ビット52、制御ビット54(読取り/
書込み情報を含む)、およびデータ・ビット56を備え
る。
【0037】アドレス・ビット52のサブセット53
は、データ記憶要素20が同様の後続メモリ・アクセス
要求、すなわち同じ値のアドレス・サブセット・ビット
53を有する未処理のメモリ・アクセス要求がある場合
に送られるメモリ・アクセス要求を処理することができ
ない確率を反映するのに十分なように定義される。この
確率は、2つの確率(0%/100%)か、または3つ
以上のレベルを有する場合がある。
【0038】制御ビット54のサブセット55は、ソー
ス優先度値を搬送するために確保される。0(最低ソー
ス優先度)から3(最高ソース優先度)までの範囲内で
2つのビット優先度値を搬送するために確保されるビッ
トは、そのためのビットとして、たとえば2ビットとす
ることができる。比較論理45は、この優先度値をその
論理のオペランドとして使用するように配列される。
【0039】ソース優先度レベルは、ソース10によっ
て設定され、待ち行列30に書き込まれる。ソース・レ
ベル優先度を使用して、様々なソース設計に関して考慮
すべき点を反映させることが可能であり、以下にそのい
くつかの例を挙げて説明する。
【0040】図3は、P0およびP1とラベル表示され
た第1および第2のプロセッサ16および16’を含
む、多重プロセッサのプロセッサ・ユニット10形式の
ソース例を示す図である。使用に際して、各プロセッサ
はメモリ読取り要求のジェネレータとなる。多重プロセ
ッサ配列は、内部優先度レベルを有する各スレッドを使
用して、制御の複数スレッドを処理する。内部優先度レ
ベルのコピーまたはそこから導出された別の値が、メモ
リ・アクセス要求優先度レジスタに格納される。第1お
よび第2のプロセッサ16および16’は、それぞれア
クセス優先度レジスタ13および13’を有する。この
メモリ・アクセス要求優先度レジスタに格納された優先
度レベル値は、その後待ち行列30の制御ビット・サブ
セット55に書き込まれる。以上、プロセッサを2つだ
け備えた多重プロセッサ・ソースについて説明したが、
記載された例は、たとえば4、16、またはそれ以上の
いくつのプロセッサにでも拡張できることを理解された
い。
【0041】図4は、メモリ読取り要求の2つのジェネ
レータ、すなわち仮想アドレスから物理アドレスに変換
するためのメモリ管理ユニット(MMU)14と、ロー
ド/ストア・ユニット12とを有する、プロセッサ10
形式のソースについて、他の例を示す図である。この例
では、MMUテーブル・メモリ読取り要求を、ロード/
ストア・ユニット12から送られる一般的なメモリ読取
り要求よりも高いソース優先度レベルとすることで、プ
ロセッサのパフォーマンスを向上させることができる。
次いで単一ビット17および18がそれぞれロード/ス
トア・ユニット12およびMMU14に使用され、読取
り要求優先度レベルを表示する。ソース優先度ビット
は、MMU14から送られるすべてのメモリ読取り要求
の場合は値1、ロード/ストア・ユニット12から送ら
れるすべてのメモリ読取り要求の場合は値0となるよう
に設定される。このソース優先度ビット17または18
は、2ビットの制御ビット・サブセット55の最下位ビ
ットとして待ち行列30に書き込まれる。このサブセッ
ト55の最上位ビットは、メモリ書込み要求の場合は値
0、メモリ読取り要求の場合は値1に設定される。メモ
リ・アクセス要求処理ユニット25は、読取り/書込み
制御ライン、またはソースが提供する他の標準読取り/
書込み識別子を使用して、読取り要求と書込み要求を区
別することができるので、この最上位ビットを設定する
ためにソースにハードウェアを追加する必要はない。書
込みアクセスを検出すると、サブセット55の両方のビ
ットがゼロに設定され、書込みアクセスを示す「0,
0」、一般的な読取り要求を示す「1,0」、およびM
MUテーブル読取り要求を示す「1,1」という、3つ
の値が付けられたソース優先度レベルが与えられる。第
4の可能値「0,1」はこの例では定義されない。別法
として、MMU 14とロード/ストア・ユニット12
はそれぞれ、読取り書込み要求に対して異なる優先度レ
ベル値を直接生成することができる。所望であれば、M
MU 14とロード/ストア・ユニット12のどちらか
からの書込み要求に共通の優先度値を保持することがで
きる。この代替設計を使用すると、メモリ・アクセス要
求処理ユニットは、読取り要求と書込み要求とを区別す
るために、入ってくるメモリ・アクセス要求を選別する
必要がない。
【0042】他の例(図示せず)は、スペキュラティブ
・ロードを使用するプロセッサである。スペキュラティ
ブ・ロードは、通常のロードよりも低いソース優先度レ
ベルにすることができる。さらに、スペキュラティブ・
コード・パスには、ブランチの各コード・パスの「進路
(way)」が最終的にそのコードの実行で使用される
「進路」である確率を反映するソース優先度レベルが与
えられる。
【0043】他の例(図示せず)では、優先度レベルの
範囲内で所定の優先度レベルにすることができる、主メ
モリからキャッシュ・メモリへのプリフェッチに対する
ものである。
【0044】再度図2を参照すると、リスト要素44は
それぞれ有効ビット64と、その他保留中のメモリ・ア
クセス要求の中から当該のメモリ・アクセス要求を識別
可能にするのに十分なI.D.ビット65と、待ち行列
要素32のアドレス・サブセット・ビット53に対応す
るアドレス・サブセット・ビット63とを備える。この
アドレス・サブセット・ビット63は、アクセス・タイ
プを定義するのに使用される。待ち行列30および転送
ユニット40は、メモリ・アクセス要求がこの待ち行列
30からデータ記憶要素20へ送られるときに、そのメ
モリ・アクセス要求を供給している待ち行列要素32か
らのサブセット・ビット53が、修正済みまたは修正さ
れていない形式で、現在無効のリスト要素44、すなわ
ちリセットされた有効ビット64を備えたリスト要素の
サブセット・ビット63に書き込まれるように形成され
ている。次いでこのリスト要素44は、その有効ビット
64を設定し、それによってそのリスト要素を現在のリ
スト・エントリとして定義することで、有効の表示が付
けられる。I.D.ビット65もこの時点で定義され
る。このI.D.ビット65のコピーは、メモリ・アク
セス要求と共にラベル表示目的で、データ記憶要素20
に送られる。その後、メモリ・アクセス要求がデータ記
憶要素20に送られ、そのための新しいリスト・エント
リが作成されるので、待ち行列要素32を削除すること
ができる。メモリ・アクセス要求が格納されている待ち
行列要素32の有効ビット50をリセットすることで、
待ち行列30からのメモリ・アクセス要求の削除が誘発
される。
【0045】転送ユニット40は、データ記憶要素20
によってメモリ・アクセス要求が完了した時点で、その
アクセスに関するリスト要素がキャンセルされるように
構成されている。これは、メモリ・アクセス要求の完了
時に、データ記憶要素20がI.D.ビット65のコピ
ーを転送ユニットに戻すと発生する。キャンセルは、デ
ータ記憶要素側で保留を持続している間そのメモリ・ア
クセス要求に対してオープン状態を保持してきた、リス
ト要素44の有効ビット64をリセットすることで実行
される。このI.D.ビット65は、サブセット53と
は異なる、たとえば待ち行列要素のアドレス・ビット5
2のサブセットから形成することができる。リスト・エ
ントリ44の有効ビット64をリセットすると、比較論
理45から見た、そのリスト・エントリ状態が除去され
る。
【0046】読取り要求が完了した場合、そのデータは
データ記憶要素20からソース10へ直接転送される。
読取り完了は、データ記憶要素20からソース10への
バス転送のスヌーピングを基準にして、たとえば転送ユ
ニット40によって検出される場合がある。
【0047】書込み要求が完了した場合、データ記憶要
素20は書込み完了時にどんなメッセージも転送しない
ことがある。その後転送ユニット40は、リスト・エン
トリ生成後特定期間のうちに、メモリ書込み要求に関係
するリスト・エントリをキャンセルするように構成する
ことができる。この特定期間は、データ記憶要素20が
書込みアクセスを完了するのに必要な通常の時間に近づ
くように事前に決められる。この場合、I.D.ビット
は、たとえば生成時間、所期の存続期間、または予定さ
れたキャンセル時間を反映する時間部分を含む。したが
ってこのI.D.ビットは時間部分とラベル部分とを含
む。
【0048】変形例では、このI.D.ビット65また
は少なくともそのラベル部分のビットをなしですますこ
とができる。データ記憶要素が待ち行列から送られる順
序でメモリ・アクセス要求に応答すれば、I.D.ビッ
トをラベル用として用いることは不要になる。この場
合、リスト要素44は、転送順でリスト記憶装置42内
に配置することができる。次いで、データ記憶要素20
がアクセス完了データを送る度に、このリスト要素44
を削除することができる。
【0049】転送ユニット40は、ウィンドウ34の有
効要素のアドレス・サブセット・ビット53と、リスト
記憶装置42の有効要素のアドレス・サブセット・ビッ
ト63とを比較することによって、送るメモリ・アクセ
ス要求を選択するように構成されている。有効リスト要
素44のいずれかのアドレス・サブセット・ビット63
に合致するビット53を備えたメモリ・アクセス要求
は、待ち行列30からデータ記憶要素20への転送が比
較論理45によって妨げられる。さらに転送ユニット4
0は、優先度が同じである複数のアクセスは、待ち行列
30からの転送の際、待ち行列のヘッド・エンド36に
最も近いものが第1に送られるようにすることができ
る。いかなるシステムにおいても、データ記憶要素20
とソース10は、それぞれ未処理のある有限な最大数の
メモリ・アクセス要求を持つことができる。したがっ
て、それに応じてリスト要素44の数を選択することが
できる。
【0050】前述の実施形態は、メモリ・アクセス要求
処理ユニットからデータ記憶要素へのメモリ・アクセス
要求の転送に関して、ソース依存型制御およびターゲッ
ト依存型制御の両方を含むものとして説明してきた。た
だし、ソース依存型制御では、メモリ・アクセス要求処
理ユニットからデータ記憶要素へのメモリ・アクセス要
求の転送が、リスト記憶装置内に維持されている保留中
のメモリ・アクセス要求のリスト・エントリを参照しな
がら、ターゲット・データ記憶要素に特有の考慮すべき
点のみに基づいて実行されるという実施形態の提供を省
略できることを理解されよう。さらに、図3および図4
ならびに後続を参照しながら本文で論じたソース設計
は、特に、ソース依存型制御の要素を含み、メモリ・ア
クセス要求にソース優先度値のタグが付けられることを
予想して設計された、メモリ・アクセス要求処理ユニッ
トで使用するためのものである。
【0051】同様に、ターゲット依存型制御では、メモ
リ・アクセス要求処理ユニットからデータ記憶要素への
メモリ・アクセス要求の転送が、ソース優先度に関して
考慮すべき点のみに基づいて実行され、この場合に保留
中のメモリ・アクセス要求のリストを維持するためのリ
スト記憶装置が免除できるという実施形態の提供を省略
できることも理解されよう。
【0052】ただしこれらすべての実施形態では、デー
タ記憶要素によってメモリ・アクセス要求が受け取ら
れ、それによってシステム効率を向上させるために、シ
ーケンスを順序変更および時刻変更する際に、メモリ・
アクセス要求を待ち行列に入れることを活用する。
【0053】図5ないし図8は、本発明の前述および他
の実施形態が適用可能な、異なる例を示す図である。
【0054】図5は、レジスタ103、演算論理ユニッ
ト(ALU)104、命令ユニット102、およびロー
ド/ストア・ユニット101を含むプロセッサを示す図
であって、これらの要素は従来の相互接続を有し、それ
以外は従来の設計になっている。ロード/ストア・ユニ
ット101は、メモリ・アクセス要求のソース10を形
成する。ロード/ストア・ユニット101からメモリ・
アクセス要求を受け取るように接続された内部キャッシ
ュ105は、データ記憶要素20を形成する。メモリ・
アクセス要求処理ユニット25は、プロセッサのロード
/ストア・ユニット101によってキャッシュ・メモリ
105に送られるメモリ・アクセス要求の効率を向上さ
せるために、キャッシュ・メモリ105とロード/スト
ア・ユニット101との間に挿入される。
【0055】図6は、本発明の実施形態の他の例を示す
図であって、ここでプロセッサ101〜105によって
ソース10が形成され、外部キャッシュ111によって
データ記憶要素20が形成される。このプロセッサは、
図5に示すように要素101〜104を備え、さらに内
部キャッシュ105も備える。メモリ・アクセス要求処
理ユニット25は、プロセッサの内部キャッシュ105
から外部キャッシュ111へメモリ・アクセス要求を送
る際の効率を向上させるように、プロセッサ101〜1
05と外部キャッシュ111との間に挿入される。
【0056】図7は、本発明の実施形態の他の例を示す
図であって、ここでメモリ・アクセス要求処理ユニット
25は、ソース10を構成する外部キャッシュ111
と、データ記憶要素20を構成する主メモリ・ユニット
120との間に挿入される。プロセッサ・ユニット11
0は内部キャッシュを含む場合と含まない場合がある。
【0057】図8は、本発明の実施形態の他の例を示す
図であって、ここでメモリ・アクセス要求処理ユニット
25は、メモリ階層の1レベルであるL2にあるキャッ
シュ・メモリ112と、メモリ階層で次に高いレベルで
あるL3にある他のキャッシュ113との間に挿入され
る。この例では、キャッシュ・メモリ112および11
3は、それぞれソース10およびデータ記憶要素20を
形成する。
【0058】図9は、本発明の第2の実施形態を示す図
であって、ここでメモリ・アクセス要求処理ユニット2
5は2つの別々の待ち行列30および130、すなわち
読取り待ち行列30と書込み待ち行列130を有する。
入力ステージとしてルータ22がメモリ・アクセス要求
処理ユニット25のソース側に設けられ、入ってくるメ
モリ・アクセス要求を、アクセスのタイプによって、読
取り待ち行列30と書込み待ち行列130のどちらかに
送るようになっている。この経路指定は、読取り/書込
み制御ライン、またはソース10によって与えられる他
の標準的な読取り/書込み識別子を使用して実行するこ
とができる。たとえば、すべてのメモリ読取り要求は、
データ・ビットをデフォルト値に設定した状態で、ソー
スによって送ることができる。読取り待ち行列にはウィ
ンドウ34があり、書込み待ち行列にはウィンドウ13
4がある。このウィンドウ34と134は、サイズが異
なる場合がある。転送ユニット40は、読取り待ち行列
30と書込み待ち行列130に対して、それぞれ別個の
比較論理ブロック45と145を有する。各比較論理ブ
ロックは、待ち行列からの待ち行列要素と、現在はデー
タ記憶要素20にある読取り要求とメモリ書込み要求の
両方に対して単一のリストとして表示されている、リス
ト記憶装置42内にあるエントリとを比較するように構
成されている。ただし、読取り要求とメモリ書込み要求
に対して別々のリストが維持されていることもあり、そ
れぞれの比較論理ブロック45、145は、関連する待
ち行列からの待ち行列要素と、関連するリスト内のリス
ト要素とを比較するようにのみ配列されることを理解さ
れよう。読取りおよび書込み用に、別々の待ち行列と関
連付けられた論理ブロックとを用意することによって、
効率を向上させ各ブロックの論理構造を単純化するため
に、論理ブロック45、145をメモリ・アクセス要求
タイプに合わせて特別に調整することができる。さら
に、書込み要求よりも読取り要求の方に高い転送優先度
を与えても、また、その逆でもよい。ただし通常は、一
般にメモリ読取り要求の結果の方が処理流れの速度より
も重要であるという事実から見て、読取り要求に全体的
に高い優先度を与える方が有益であろう。
【0059】したがって第2の実施形態では、第1の実
施形態を参照しながら述べたような、明示的なソース依
存型優先度値はないが、その代わりに、アクセス・タイ
プを基準にして優先度を与え、ソース10から入ってく
るアクセス要求を受け取って送信するルータ22でメモ
リ・アクセス要求タイプを識別するようにすることによ
って、ソースに関する考慮すべき点が組み込まれてい
る。ただし、このデータ記憶要素依存型制御は、第1の
実施形態を参照しながら述べたものと同じ形式を取って
いる。
【0060】第2の実施形態については、無効化機構を
参照せずに述べてきた。ただし無効化機構は、第1の実
施形態を参照しながら述べたように、1つまたは複数の
別々の無効化ユニットに含まれるか、または無効化コマ
ンドを介して含まれることを理解されたい。無効化ユニ
ットの場合、各待ち行列に対して別々の無効化ユニット
が用意されるか、1つまたは複数の待ち行列に対して1
つの無効化ユニットが用意される。たとえば、無効化ユ
ニットは読取り待ち行列にまたはそれぞれの読取り待ち
行列に用意されることはあるが、その書込み待ち行列に
またはそれぞれの書込み待ち行列に設けられることはな
い。
【0061】図10は、本発明の第3の実施形態による
メモリ・アクセス要求処理ユニット25を示す概略的構
成図である。このメモリ・アクセス要求処理ユニット2
5は、図3、図4およびそれに続く本文を参照しながら
上記に述べたソースのような、読取りアクセス要求に異
なる優先度値を示すタグを付けるソース10で使用する
ように特に設計されている。タグに表示された優先度値
を基準にして、入ってくる読取りアクセス要求を受け取
って、複数の読取り待ち行列の1つに向けて送り、入っ
てくる書込みアクセス要求を受け取って、少なくとも1
つの書込み待ち行列に送るように、ルータ22が用意さ
れている。
【0062】図10には、第1の読取り待ち行列30お
よび第2の読取り待ち行列80、ならびに単一の書込み
待ち行列130が示されている。ルータ22は、第1の
読取り待ち行列30が優先度の高い読取り要求を受け取
り、第2の読取り待ち行列80が優先度の低い読取り要
求を受け取り、書込み待ち行列が書込み要求を受け取る
ように配列される。
【0063】図のように、書込み待ち行列が1つしかな
い場合は、読取り/書込み制御ラインを基準にして、読
取り/書込み経路指定が実行される。この場合、ソース
は読取りアクセス要求に優先度値を与えるだけでよい。
これに対して、複数の書込み待ち行列がある場合は、ソ
ースの優先度値は読取りアクセス要求ならびに書込みア
クセス要求に割り当てられ、経路指定はソースの優先度
値だけを基準にして実行される。
【0064】複数の読取り待ち行列に、共通の比較論理
ブロック45が設けられている。複数の読取り待ち行列
30および80に共通の1つのリスト記憶装置42が用
意される。読取り待ち行列30と80は、それぞれウィ
ンドウ34と84によって、読取り論理ブロック45に
接続される。この実施形態では、書込み待ち行列130
には別の論理ブロック145が設けられ、書込み待ち行
列ウィンドウ134を監視するように配列される。さら
に、保留中の読取り要求とメモリ書込み要求が、リスト
記憶装置42と142でそれぞれ別々にグループ化され
るように、書込み待ち行列130に対して別のリスト記
憶装置142が特別に設けられている。
【0065】したがって第3の実施形態では、アクセス
要求処理の優先度がソース依存型で決定される。第1の
実施形態を参照しながら述べたものと同様のターゲット
依存型制御の形式が提供されてもよいが、省略すること
もできる。
【0066】第3の実施形態の変形例では、ルータ22
は、第2の実施形態と同様に、読取り要求とメモリ書込
み要求との間で読取り要求を検出し、ソースの優先度値
によって送るように配列される。その後ソース10は、
読取り要求に優先度値を示すタグを付けるだけでよい。
【0067】さらに、第3の実施形態の他の変形例で
は、メモリ・アクセス要求処理ユニット25は、ROM
デバイスのような読取り専用データ記憶要素で使用され
るように設計される。この場合、ソース10はメモリ読
取り要求のみを転送し、書込み待ち行列130と関連付
けられた論理ブロック145、ならびにリスト記憶装置
142は省略される。
【0068】以上、本発明の具体的な実施形態について
述べてきたが、本発明の精神および範囲を逸脱すること
なく、多くの修正/追加および/または置換が実行でき
ることを理解されよう。
【図面の簡単な説明】
【図1】本発明の第1の実施形態を示す概略構成図であ
る。
【図2】第1の実施形態の一部を詳細に示す図である。
【図3】第1の実施形態の他の部分を詳細に示す図であ
る。
【図4】図3の一部に関する代替設計を示す図である。
【図5】本発明の第1の例を示す図である。
【図6】本発明の第2の例を示す図である。
【図7】本発明の第3の例を示す図である。
【図8】本発明の第4の例を示す図である。
【図9】本発明の第2の実施形態を示す概略構成図であ
る。
【図10】本発明の第3の実施形態を示す概略構成図で
ある。
【符号の説明】
10 ソース 20 データ記憶要素 25 メモリ・アクセス要求処理ユニット(RHU) 30 待ち行列 32 待ち行列要素 34 ウィンドウ 35 無効化ユニット 36 ヘッド・エンド 38 テール・エンド 40 転送ユニット 42 リスト記憶装置 44 リスト要素 45 比較論理
───────────────────────────────────────────────────── フロントページの続き (71)出願人 591064003 901 SAN ANTONIO ROAD PALO ALTO,CA 94303,U. S.A. (72)発明者 ジェレミィ・ジィ・ハリス イギリス国・エイチピイ8 4エイエフ・ バッキンガムシャー・バックス・チャルフ ォント セント ジャイルス・ロッジ レ ーン・20

Claims (24)

    【特許請求の範囲】
  1. 【請求項1】 メモリ・アクセス要求のソースとメモリ
    ・アクセス要求を処理するデータ記憶要素とを含む、デ
    ータ処理システム用のメモリ・アクセス要求処理ユニッ
    トであって、 メモリ・アクセス要求を受け取る入力と、 メモリ・アクセス要求を転送する出力と、 出力への転送を保留中の、メモリ・アクセス要求を入力
    側で受け取り、一時的に格納するように形成された複数
    の待ち行列要素を備える待ち行列と、 前記待ち行列要素内に格納されたメモリ・アクセス要求
    に関して比較演算を実行し、その比較演算の結果とし
    て、待ち行列から出力に送る少なくとも1つの前記メモ
    リ・アクセス要求を選択する比較論理とを含む、メモリ
    ・アクセス要求処理ユニット。
  2. 【請求項2】 待ち行列から出力に送られたメモリ・ア
    クセス要求から導出されたリスト・エントリを格納する
    ようにそれぞれが配列された、複数のリスト要素を備え
    たリスト記憶装置をさらに含み、比較演算が、前記待ち
    行列要素内に格納された前記メモリ・アクセス要求と、
    前記リスト格納装置内に格納された前記リスト・エント
    リとを比較する請求項1に記載のユニット。
  3. 【請求項3】 メモリ・アクセス要求が前記待ち行列か
    ら前記出力へ送られる際に、前記当該メモリ・アクセス
    要求のアドレス部分から導出されたメモリ・アクセス要
    求のタイプ部分を含むリスト・エントリが生成されるよ
    うに動作する請求項2に記載のユニット。
  4. 【請求項4】 前記リスト・エントリが、前記リスト・
    エントリを識別でき、キャンセルされる識別子部分をさ
    らに含む請求項3に記載のユニット。
  5. 【請求項5】 前記比較論理が、前記リスト・エントリ
    のいずれか1つの前記メモリ・アクセス要求タイプ部分
    に合致するアドレス部分を有する、前記待ち行列から前
    記出力へのメモリ・アクセス要求の転送を妨げるように
    配列される請求項3に記載のユニット。
  6. 【請求項6】 前記比較論理が、いずれかの前記リスト
    ・エントリの前記メモリ・アクセス要求タイプ部分に合
    致しないアドレス部分を有する、前記待ち行列から前記
    出力へのメモリ・アクセス要求の転送を優先的に動作す
    る請求項3に記載のユニット。
  7. 【請求項7】 前記待ち行列要素がそれぞれ、メモリ・
    アクセス要求が入力側で受け取られたときに優先度値を
    受け取るように配列されたソース優先度レベル記憶部分
    を備え、前記比較演算が、少なくとも前記待ち行列要素
    内に格納された前記メモリ・アクセス要求のソース優先
    度値を比較する請求項1に記載のユニット。
  8. 【請求項8】 前記待ち行列要素がそれぞれ、メモリ・
    アクセス要求が入力側で受け取られたときに優先度値を
    受け取るように形成されたソース優先度レベル記憶部分
    を備え、前記比較演算が、前記リスト・エントリを備え
    た前記待ち行列要素内に格納された前記メモリ・アクセ
    ス要求のソース優先度値を比較する請求項2に記載のユ
    ニット。
  9. 【請求項9】 前記待ち行列がヘッド・エンドからテー
    ル・エンドまで延在し、比較論理が、前記ヘッド・エン
    ドから前記ヘッド・エンドとテール・エンドとの中間位
    置まで延在する待ち行列要素のウィンドウを横切って待
    ち行列に接続されて、ウィンドウ内および前記リスト・
    エントリ内に配置された待ち行列要素内に格納されたメ
    モリ・アクセス要求の比較をできるようにし、前記待ち
    行列が、前記入力側で受け取られたメモリ・アクセス要
    求を前記ヘッド・エンド方向に待ち行列要素内に優先的
    にロードするように、前記入力に接続される請求項1に
    記載のユニット。
  10. 【請求項10】 前記待ち行列がヘッドからテールまで
    延在し、前記待ち行列要素と前記リスト・エントリのい
    ずれかを比較できるように、前記比較論理が、前記待ち
    行列ヘッドから前記待ち行列テールまで延在する待ち行
    列要素のウィンドウを横切って前記待ち行列に接続され
    る請求項1に記載のユニット。
  11. 【請求項11】 前記待ち行列要素が、それによって前
    記待ち行列内のメモリ・アクセス要求の位置を突き止め
    られるメモリ・アクセス要求ラベルを格納するための部
    分を含み、前記ユニットが入力側での無効化コマンドの
    受取りに応答して、そのメモリ・アクセス要求ラベルに
    よって指定されたメモリ・アクセス要求を削除する請求
    項1に記載のユニット。
  12. 【請求項12】 データ処理システムであって、 メモリ・アクセス要求のソースと、 前記ソースによって生成されたメモリ・アクセス要求を
    処理するためのデータ記憶要素とを含み、 前記ソースから前記データ記憶要素へ送られたメモリ・
    アクセス要求をインターセプトするように前記ソースと
    前記データ記憶要素との間に挿入されたメモリ・アクセ
    ス要求処理ユニットをさらに含み、前記メモリ・アクセ
    ス要求処理ユニットが、 前記ソースからメモリ・アクセス要求を受け取る入力
    と、 メモリ・アクセス要求を前記データ記憶要素へ転送する
    出力と、 前記データ記憶要素への転送を保留中の、前記ソースか
    ら受け取ったメモリ・アクセス要求を受け取り、一時的
    に格納するようにそれぞれが配列された、複数の待ち行
    列要素を備えた待ち行列と、 前記待ち行列要素内に格納された前記メモリ・アクセス
    要求に関して比較演算を実行し、前記比較演算の結果と
    して、前記待ち行列から前記データ記憶要素へ少なくと
    も1つの前記メモリ・アクセス要求を送る比較論理とを
    含む、データ処理システム。
  13. 【請求項13】 前記ソースがプロセッサのロード/ス
    トア・ユニットであり、前記データ記憶要素がプロセッ
    サの内部キャッシュ・メモリである請求項12に記載の
    システム。
  14. 【請求項14】 前記ソースがプロセッサであり、前記
    データ記憶要素がプロセッサの外部キャッシュ・メモリ
    である請求項12に記載のシステム。
  15. 【請求項15】 前記ソースがプロセッサ・ユニットで
    あり、前記データ記憶要素が主メモリである請求項12
    に記載のシステム。
  16. 【請求項16】 前記プロセッサ・ユニットがプロセッ
    サと内部キャッシュ・メモリを含む請求項15に記載の
    システム。
  17. 【請求項17】 前記ソースが第1のメモリであり、前
    記データ記憶要素がシステム階層のより高レベルにある
    第2のメモリである請求項12に記載のシステム。
  18. 【請求項18】 前記第1のメモリと第2のメモリが異
    なるレベルのキャッシュ・メモリである請求項17に記
    載のシステム。
  19. 【請求項19】 前記第1のメモリがキャッシュ・メモ
    リであり、前記第2のメモリが主メモリである請求項1
    7に記載のシステム。
  20. 【請求項20】 メモリ・アクセス要求のソースとメモ
    リ・アクセス要求を処理するデータ記憶要素とを含む、
    データ処理装置用のメモリ・アクセス要求処理ユニット
    であって、 メモリ・アクセス要求を受け取る入力と、 メモリ・アクセス要求を転送する出力と、 出力への転送を保留中の、入力側で受け取ったメモリ・
    アクセス要求を受け取り、一時的に格納するように配列
    された、複数の待ち行列要素をそれぞれ備えた複数の待
    ち行列と、 メモリ・アクセス要求のタイプ分類に従って、前記メモ
    リ・アクセス要求を異なる前記待ち行列に送るように、
    前記入力と前記待ち行列の間に配置されたルータと、 前記待ち行列の1つから前記出力へ送られたメモリ・ア
    クセス要求から導出されたリスト・エントリを格納する
    ように、それぞれが形成された複数のリスト要素を含む
    リスト記憶装置と、 前記リスト・エントリがそれぞれ前記リスト記憶装置に
    格納された状態で、前記待ち行列要素内に格納されたメ
    モリ・アクセス要求に関して比較演算を実行し、前記比
    較演算の結果として、前記出力に転送する少なくとも1
    つの前記メモリ・アクセス要求を選択するように動作可
    能であり、さらに待ち行列ごとにメモリ・アクセス要求
    の選択に優先順位をつける比較論理とを含む、メモリ・
    アクセス要求処理ユニット。
  21. 【請求項21】 メモリ・アクセス要求処理ユニットで
    使用するメモリ・アクセス要求のソースであって、少な
    くとも第1と第2のメモリ・アクセス要求生成ユニット
    を備え、前記それぞれのメモリ・アクセス要求生成ユニ
    ットによって生成されたメモリ・アクセス要求に異なる
    優先度値を示すタグを付けるように動作可能であり、前
    記優先度値が各メモリ・アクセス要求のメモリ・アクセ
    ス要求タイプの分類を行う際の基準を与えるのに役立つ
    請求項20に記載のソース。
  22. 【請求項22】 メモリ読取り要求のソースとメモリ読
    取り要求を処理するデータ記憶要素とを含む、データ処
    理装置用のメモリ読取り要求処理ユニットであって、 メモリ読取り要求を受け取る入力と、 メモリ読取り要求を送る出力と、 出力への転送を保留中の、メモリ読取り要求を受け取
    り、一時的に格納するように配置された、複数の待ち行
    列要素をそれぞれ備える複数の読取り待ち行列と、 メモリ読取り要求のタイプ分類に従って、メモリ読取り
    要求を前記入力から異なる前記読取り待ち行列に送るよ
    うに、前記入力と前記読取り待ち行列との間に配置され
    たルータと、 前記待ち行列要素内に格納された前記メモリ読取り要求
    に関して比較演算を実行し、前記比較演算の結果とし
    て、前記出力に転送少なくとも1つの前記メモリ読取り
    要求を選択するように動作可能であって、さらに待ち行
    列ごとにメモリ読取り要求の選択に優先順位をつける比
    較論理とを含む、メモリ読取り要求処理ユニット。
  23. 【請求項23】 メモリ読取り要求処理ユニットで使用
    するためのメモリ読取り要求のソースであって、少なく
    とも第1と第2のメモリ読取り要求生成ユニットを備
    え、前記それぞれのメモリ読取り要求生成ユニットから
    送られたメモリ読取り要求に異なる優先度値を示すタグ
    を付けるように動作可能であり、前記優先度値が各メモ
    リ読取り要求のメモリ読取り要求タイプの分類を行う際
    の基準である請求項22に記載のソース。
  24. 【請求項24】 メモリ・アクセス要求のソースおよび
    データ記憶要素を含むデータ処理システムにおけるメモ
    リ・アクセス要求を処理する方法であって、前記ソース
    によって送られるメモリ・アクセス要求が、前記データ
    記憶要素に送られる前に一時的に待ち行列に保持され、
    メモリ・アクセス要求が前記待ち行列の要素に格納され
    たメモリ・アクセス要求の論理的比較に基づいて前記待
    ち行列から前記データ記憶要素へ渡され、前記論理的比
    較が、前記待ち行列に書き込まれた各メモリ・アクセス
    要求に付された少なくとも1つのソース優先度レベルを
    オペランドとして有し、その時点で前記待ち行列から前
    記データ記憶要素に送られた場合に、前記データ記憶要
    素が現在前記メモリ・アクセス要求を処理できる確率を
    有する方法。
JP2000030533A 1999-02-08 2000-02-08 データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法 Pending JP2000242545A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/246,614 US6601151B1 (en) 1999-02-08 1999-02-08 Apparatus and method for handling memory access requests in a data processing system
US09/246614 1999-02-08

Publications (1)

Publication Number Publication Date
JP2000242545A true JP2000242545A (ja) 2000-09-08

Family

ID=22931422

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000030533A Pending JP2000242545A (ja) 1999-02-08 2000-02-08 データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法

Country Status (4)

Country Link
US (1) US6601151B1 (ja)
EP (1) EP1026594A3 (ja)
JP (1) JP2000242545A (ja)
CA (1) CA2298242A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211364A (ja) * 2008-03-04 2009-09-17 Sanyo Electric Co Ltd メモリ制御回路
WO2012127628A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6763416B1 (en) * 1999-07-29 2004-07-13 Micron Technology, Inc. Capturing read data
US6895482B1 (en) * 1999-09-10 2005-05-17 International Business Machines Corporation Reordering and flushing commands in a computer memory subsystem
KR100921851B1 (ko) * 2001-06-28 2009-10-13 소니 가부시끼 가이샤 전자 장치, 정보 처리 장치, 어댑터 장치 및 정보 교환시스템
US6851011B2 (en) * 2001-08-09 2005-02-01 Stmicroelectronics, Inc. Reordering hardware for mass storage command queue
TW561349B (en) * 2002-03-01 2003-11-11 Via Tech Inc Scheduling method and device of read/write request in control chip
ATE504446T1 (de) * 2002-12-02 2011-04-15 Silverbrook Res Pty Ltd Totdüsenausgleich
US7051175B2 (en) * 2003-01-17 2006-05-23 Hewlett-Packard Development Company, L.P. Techniques for improved transaction processing
JP4175185B2 (ja) * 2003-06-06 2008-11-05 日本電気株式会社 ネットワーク情報記録装置
US7636810B2 (en) * 2003-11-26 2009-12-22 Intel Corporation Method, system, and apparatus for memory compression with flexible in-memory cache
US7103735B2 (en) * 2003-11-26 2006-09-05 Intel Corporation Methods and apparatus to process cache allocation requests based on priority
TWI256555B (en) * 2003-12-12 2006-06-11 Via Tech Inc An apparatus and a method of request priority queue arbitration
US7373467B2 (en) * 2004-05-17 2008-05-13 Hewlett-Packard Development Company, L.P. Storage device flow control
US7313657B1 (en) * 2005-03-24 2007-12-25 Sprint Communications Company L.P. Conflict avoidance in data store replication
JP4568168B2 (ja) * 2005-05-17 2010-10-27 株式会社日立製作所 情報処理方法及びシステム
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
KR20070108432A (ko) * 2006-01-23 2007-11-12 엘지전자 주식회사 장치관리 스케줄링 방법
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
CN101681282A (zh) * 2006-12-06 2010-03-24 弗森多系统公司(dba弗森-艾奥) 用于共享的、前端、分布式raid的装置、系统和方法
GB2445168A (en) * 2006-12-29 2008-07-02 Symbian Software Ltd Loading resource administer program into main or higher memory depending on the type of usage requests being sent to the program.
US7870351B2 (en) * 2007-11-15 2011-01-11 Micron Technology, Inc. System, apparatus, and method for modifying the order of memory accesses
US8713248B2 (en) * 2009-06-02 2014-04-29 Nokia Corporation Memory device and method for dynamic random access memory having serial interface and integral instruction buffer
US9176913B2 (en) 2011-09-07 2015-11-03 Apple Inc. Coherence switch for I/O traffic
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US8904451B2 (en) * 2012-04-13 2014-12-02 Theplatform, Llc Systems for prioritizing video processing events based on availability of media file and agent to process the event type
CN102929562B (zh) * 2012-10-09 2015-05-06 无锡江南计算技术研究所 基于识别标识的可扩展重排序方法
US9928183B2 (en) 2014-09-26 2018-03-27 Ampere Computing Llc Priority framework for a computing device
WO2016068870A1 (en) * 2014-10-28 2016-05-06 Hewlett Packard Enterprise Development Lp Media controller with coordination buffer
US10198789B2 (en) * 2016-12-13 2019-02-05 Advanced Micro Devices, Inc. Out-of-order cache returns

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325510A (en) * 1990-05-25 1994-06-28 Texas Instruments Incorporated Multiprocessor system and architecture with a computation system for minimizing duplicate read requests
US5276838A (en) * 1991-03-04 1994-01-04 International Business Machines Corporation Dynamically repositioned memory bank queues
US5673415A (en) * 1993-12-03 1997-09-30 Unisys Corporation High speed two-port interface unit where read commands suspend partially executed write commands
US5826109A (en) * 1994-01-04 1998-10-20 Intel Corporation Method and apparatus for performing multiple load operations to the same memory location in a computer system
US5832304A (en) * 1995-03-15 1998-11-03 Unisys Corporation Memory queue with adjustable priority and conflict detection
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5630096A (en) * 1995-05-10 1997-05-13 Microunity Systems Engineering, Inc. Controller for a synchronous DRAM that maximizes throughput by allowing memory requests and commands to be issued out of order
US5848226A (en) * 1996-06-03 1998-12-08 Xerox Corporation Prioritized data transfer through buffer memory in a digital printing system
US5983326A (en) * 1996-07-01 1999-11-09 Sun Microsystems, Inc. Multiprocessing system including an enhanced blocking mechanism for read-to-share-transactions in a NUMA mode
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6023745A (en) * 1996-08-08 2000-02-08 Neomagic Corporation Scoreboarding for DRAM access within a multi-array DRAM device using simultaneous activate and read/write accesses
US5842038A (en) * 1996-10-10 1998-11-24 Unisys Corporation Optimized input/output memory access request system and method
US6134634A (en) * 1996-12-20 2000-10-17 Texas Instruments Incorporated Method and apparatus for preemptive cache write-back
US6112265A (en) * 1997-04-07 2000-08-29 Intel Corportion System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US6058461A (en) * 1997-12-02 2000-05-02 Advanced Micro Devices, Inc. Computer system including priorities for memory operations and allowing a higher priority memory operation to interrupt a lower priority memory operation
US5983325A (en) * 1997-12-09 1999-11-09 Advanced Micro Devices, Inc. Dataless touch to open a memory page
US6052772A (en) * 1998-04-13 2000-04-18 International Business Machines Corporation Memory request protocol method

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009211364A (ja) * 2008-03-04 2009-09-17 Sanyo Electric Co Ltd メモリ制御回路
WO2012127628A1 (ja) * 2011-03-22 2012-09-27 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法
JP5630568B2 (ja) * 2011-03-22 2014-11-26 富士通株式会社 演算処理装置、情報処理装置及び演算処理装置の制御方法

Also Published As

Publication number Publication date
CA2298242A1 (en) 2000-08-08
US6601151B1 (en) 2003-07-29
EP1026594A2 (en) 2000-08-09
EP1026594A3 (en) 2007-06-20

Similar Documents

Publication Publication Date Title
JP2000242545A (ja) データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法
JP3937365B2 (ja) データ処理システムにおけるメモリリクエスト再順序付け法
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
US6112265A (en) System for issuing a command to a memory having a reorder module for priority commands and an arbiter tracking address of recently issued command
US5875472A (en) Address conflict detection system employing address indirection for use in a high-speed multi-processor system
US6065103A (en) Speculative store buffer
US6944724B2 (en) Method and apparatus for decoupling tag and data accesses in a cache memory
US6173369B1 (en) Computer system for processing multiple requests and out of order returns using a request queue
US5958040A (en) Adaptive stream buffers
JP4298800B2 (ja) キャッシュメモリにおけるプリフェッチ管理
US6643747B2 (en) Processing requests to efficiently access a limited bandwidth storage area
US6993630B1 (en) Data pre-fetch system and method for a cache memory
JPH06318177A (ja) キャッシュ・ミス・ペナルティを減少させる方法、装置及びコンピュータ・システム
US6161167A (en) Fully associate cache employing LRU groups for cache replacement and mechanism for selecting an LRU group
US8352712B2 (en) Method and system for specualtively sending processor-issued store operations to a store queue with full signal asserted
JP2005533295A5 (ja)
TWI235916B (en) Multilevel cache structure and method using multiple issue algorithm with over subscription avoidance for high bandwidth cache pipeline
US7844777B2 (en) Cache for a host controller to store command header information
US6507892B1 (en) L1 cache memory
US9086976B1 (en) Method and apparatus for associating requests and responses with identification information
JP2004199677A (ja) キャッシュを動作させるためのシステム及び方法
US6976128B1 (en) Cache flush system and method
US20220100423A1 (en) Memory controller system and a method for memory scheduling of a storage device
JP2005508549A (ja) アンキャッシュ素子のための帯域幅の向上
US7181575B2 (en) Instruction cache using single-ported memories