JP3937365B2 - データ処理システムにおけるメモリリクエスト再順序付け法 - Google Patents

データ処理システムにおけるメモリリクエスト再順序付け法 Download PDF

Info

Publication number
JP3937365B2
JP3937365B2 JP31189397A JP31189397A JP3937365B2 JP 3937365 B2 JP3937365 B2 JP 3937365B2 JP 31189397 A JP31189397 A JP 31189397A JP 31189397 A JP31189397 A JP 31189397A JP 3937365 B2 JP3937365 B2 JP 3937365B2
Authority
JP
Japan
Prior art keywords
request
memory
requests
access
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP31189397A
Other languages
English (en)
Other versions
JPH10228417A (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.)
MagnaChip Semiconductor Ltd
Original Assignee
MagnaChip Semiconductor Ltd
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 MagnaChip Semiconductor Ltd filed Critical MagnaChip Semiconductor Ltd
Publication of JPH10228417A publication Critical patent/JPH10228417A/ja
Application granted granted Critical
Publication of JP3937365B2 publication Critical patent/JP3937365B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、メモリサブシステムを備えたデータ処理システムに関し、より詳しくは、帯域幅および並行性(concurrency)を最大にし、これにより全メモリサブシステムおよびデータ処理システムの速度を増大させるべくメモリサブシステムへのリクエストを制御することに関する。
【0002】
【従来の技術】
最近のデータ処理システムでは、メモリサブシステムの速度は、全システム速度に影響を与える主要な制限ファクタである。一般に、メモリアクセスは、コンピュータプロセッサおよびデータバスがメモリアクセスリクエストを発生しかつ搬送する速度より非常に遅いため、メモリボトルネックが存在する。メモリアクセスの速度が遅いことは、書込みリクエストではなく、読取りリクエストが存在するときに特に感じられる。これは、読取りリクエストは、リクエストプロセッサがデータを待機することを表示するためである。
低メモリ速度により引き起こされるボトルネックは、コンピュータプロセッサの速度が、一般的なメモリコンポーネンツの速度より高速で増大するときに、よりひどくなる。また、メモリボトルネックは、メモリサブシステムを共有する多重プロセッサを有するコンピュータシステムおよびネットワークアーキテクチャーが導入されるときに悪化する。
【0003】
メモリボトルネックを緩和させる1つの慣用的なアプローチは、データ処理システム内の種々のレベルでデータキャッシングを使用することである。例えば、低速で安価なディスクメモリサブシステムのデータの一部は、高速システムRAM(ランダムアクセスメモリ)にコピーすなわち「キャッシュ(cached) 」される。システムRAMのデータの一部は、次に、高速ではあるが高価な少数のRAMを保有する「第2レベル」キャシュRAMサブシステムにキャッシュされる。データの一部も、同じチップにプロセッサとして存在する更に高速の「第1レベル」キャッシュメモリにキャッシュされる。データキャッシングは、低速メモリへのアクセスを最小にする有効な技術である。しかしながら、或る点で、種々のメモリレベルは依然としてアクセスする必要がある。従って、キャッシングを用いるか否かに係わらず、メモリアクセスをスピードアップする技術は依然として必要である。
【0004】
メモリアクセスをスピードアップする試みとして、メモリを多重バンクに編成する方法がある。このメモリアーキテクチャーの下では、メモリの第1バンクとして繁忙サービスは第1バンクのメモリ位置にアクセスするリクエストであり、利用可能バンクは、次のリクエストが第2バンクのメモリ位置を目的とする場合に、次のメモリアクセスリクエストのサービスを開始する。メモリ位置は、連続的にアクセスされる連続メモリアドレスが異なるバンク内にあるように、バンク間でインターリーブされる。
メモリバンクの慣用的使用に付随する問題は、アドレスがバンク間でインターリーブされる場合でも、連続アクセスリクエストが、依然として、時々、共通バンク内のアドレスを目的とすることである。この状況では、慣用的なメモリサブシステムは、メモリサブシステムが第2リクエストおよび任意の連続リクエストのサービスを開始する前に、共通バンクが利用できるようになることを依然として待機しなければならない。このような強制待機は無駄である。なぜならば、第3リクエストが異なる利用可能メモリバンクを目的とするため、さもなくば第3アクセスリクエストのサービスを開始できるからである。また、インターリーブされたバンク内へのメモリの単なる編成は、前述のように、読取りリクエストが対比書込みリクエストを有するという特別緊急性をアドレスしない。
【0005】
【発明が解決しようとする課題】
当業界で要望されていることは、メモリリクエストがサービスを待機しなければならない時間を最短にすることにより帯域幅および並行性を最大にすべく、メモリサブシステムへのアクセスを制御する方法である。より詳しくは、先行リクエストが利用不可能メモリ位置を目的とするため未だサービスされない場合でも、メモリサブシステムが、利用可能メモリ位置にアクセスするリクエストのサービスを開始できるようにする方法が要望されている。また、特に、プロセッサが、次のタスクに進む前にメモリ書込みの完了を待機する必要がない「後書込み(posted-write) 」システムでは、書込みリクエストより重要な読取りリクエストに特別な優先順位を与える方法が要望されている。
【0006】
【課題を解決するための手段】
本発明は、メモリアクセスリクエストがサービスを行なうようにスケジュールされる順序を制御することによりメモリサブシステムの速度を増大させる方法および装置を提供する。
本発明の一実施形態によれば、複数のメモリアクセスリクエストを再順序付けする方法が提供され、本発明の方法は、複数のリクエストを受け入れる段階と、複数のリクエストから、利用可能なメモリ位置にアクセスするリクエストを選択する段階と、選択されたリクエストをスケジューリングする段階とを有している。
本発明の他の実施形態によれば、アクセスメモリへのリクエストを選択する段階が、複数のリクエストの中に、利用可能なメモリ位置にアクセスする読取りリクエストが存在するか否かを決定する段階と、このような読取りリクエストが存在することを決定する場合には、利用可能なメモリ位置にアクセスする読取りリクエストを選択する段階と、利用可能な位置にアクセスする読取りリクエストが存在しないと決定する場合には、利用可能なメモリ位置にアクセスする非読取りリクエストを選択する段階とからなる。
【0007】
【発明の実施の形態】
本願明細書の以下の記載および図面を参照することにより、本発明の本質および長所が更に理解されよう。
本発明は、データ処理システムにおいてリクエストされたメモリ演算がスケジュールされる順序を制御する技術に関する。
図1は、本発明が具現されるコンピュータシステム101の簡単化されたブロック図である。この高レベルで示されたコンピュータシステムの形態は標準的なものであり、このため図1には「PRIOR ART 」と記されている。しかしながら、このシステムがメモリへのアクセスを管理する本発明を採用しているものであれば、システム101のようなコンピュータシステムは従来技術ではない。既知のプラクティスによれば、コンピュータシステム101は、バスサブシステム111を介して多数の周辺装置と通信する1つ以上のプロセッサ103を有している。一般に、これらの周辺装置は、ランダムアクセスメモリ(RAM)サブシステム107およびディスクメモリサブシステム109等のメモリサブシステムと、キーボード104またはマウス105等の入力装置と、ディスプレイ102のような出力装置とを有している。他の一般的な周辺装置(図示せず)として、プリンタ、テープメモリサブシステム、遠隔ネットワーク形サーバメモリサブシステム等がある。
【0008】
本願明細書では、用語「バスサブシステム」は、システム101の種々のコンポーネンツを、意図するままに相互通信させるあらゆる機構を包含するものとして広範囲に使用される。例えば、バスサブシステム111は単一バスとして概略的に示されているが、一般的なコンピュータシステムは、ローカルバス、1つ以上の拡大バス、直列ポート、並列ポート、ネットワーク接続部等の多数の「バス」を有している。一般に、コンピュータシステム101のコンポーネンツを、同じ物理的配置にする必要はない。
図1は、本発明を具現するコンピュータシステムを示すものであるが、単なる一形式である。当業者ならば、多くのコンピュータシステム形式および構成が本発明の具現に適していることが容易に理解されよう。
【0009】
図2は、本発明の多重プロセッサの実施形態201を示すブロック図である。データ処理システム201は、多数のプロセッサP1〜P4(それぞれ、参照番号203、204、205、206で示されている)を有している。これらのプロセッサは、メモリバス215に接続されている。メモリバス215は、リクエスト再順序付けユニット214を介して、メモリサブシステム216に接続されている。
プロセッサP1〜P4は、メモリサブシステム216に対するリクエストをメモリバス215に発生する。リクエスト再順序付けユニット214は、メモリバス215からのリクエストを受け入れ、該リクエストを、後述するようにして、本発明の技術に従ってスケジュールする。或る実施形態では、メモリバス215はIntel P6バス、プロセッサの個数は4つ以下、プロセッサはIntel Pentium Pro-compatibleプロセッサである。
【0010】
図3は、二重ブリッジ形メモリバスを備えた本発明の多重プロセッサの実施形態を示すブロック図である。データ処理システム202は、多数のプロセッサP1〜P8(それぞれ、参照番号223、224、・・・230で示されている)を有している。これらのプロセッサのうち、P1〜P4は第1メモリバス211に接続され、プロセッサP5〜P8は第2メモリバス212に接続されている。2つのメモリバス211、212は、これらの両バスおよび第3バス215の間の切換えを遂行するコントローラ/クロスバースイッチ213により架橋されている。第3バス215は、リクエスト再順序付けユニット214を介して、メモリサブシステム216に接続されている。バス211、212、215は、バスサブシステムに属するものと考えられる。
【0011】
コントローラ/クロスバースイッチ213は、干渉性チェックを遂行しかつバス211、212のうちの一方のバスから他方のバスへの演算を反映するのに必要な情報をルーチングする。プロセッサP1〜P4は、メモリサブシステム216に対するリクエストを第1メモリバス211に発生する。プロセッサP5〜P8は、メモリサブシステム216に対するリクエストを第2メモリバス212に発生する。コントローラ/クロスバースイッチ213は、2つのメモリバス211、212からのメモリリクエストを第3バス215にルーチングする。リクエスト再順序付けユニット214は、第3バス215からのリクエストを受け入れ、該リクエストを、後述するようにして、本発明の技術に従ってスケジュールする。或る実施形態では、各メモリバス211、212はIntel P6バス、各メモリに接続されるプロセッサの個数は4つ以下、プロセッサはIntel Pentium Pro-compatibleプロセッサである。
【0012】
図4は、発明の背景の部分で論じた従来技術によるリクエストされたメモリ演算の順序付けを示す概略図である。図示を簡単化することのみの理由で、図示の全てのリクエストされたメモリ演算は読取り演算である。図4において、複数のリクエストされたメモリ演算303(各リクエストされたメモリ演算は目的メモリアドレスを有している)は、データ処理システムの一部301によりメモリサブシステム216に提供される。リクエスト/メモリアドレスは、A110、A104、A99、A50、A2、A1(それぞれ、参照番号305、306、・・・310で示されている)の順序をなしている。
メモリサブシステム216は、各リクエストされた演算の遂行を順に開始する。リクエストされた演算が利用可能である場合には、メモリサブシステム216はリクエストされた演算の遂行を開始する。そうでない場合には、メモリサブシステムは目的メモリアドレスが利用可能になることを待機する。この待機は、発明の背景の部分で説明した、利用可能アドレスを目的とする連続リクエストされた演算がサービスされ始める状況では無駄なことである。
【0013】
リクエストされた演算303によりリクエストされたデータは、該リクエストされた演算303の順序に一致する順序312で戻される(322)。この例では、データの順序312は、D111、D104、D99、D50、D2、D1(それぞれ、参照番号315、316、・・・320で示されている)である。図5は、本発明のリクエストされたメモリ演算の再順序付けを広く示す概略図である。図示を簡単化することのみの理由で、図示の全てのリクエストされた演算は読取り演算である。図5において、複数のリクエストされた演算303(各リクエストされたメモリ演算は目的メモリアドレスを有している)は、データ処理システムの一部301により提供される。
リクエスト/メモリアドレス303は、A110、A104、A99、A50、A2、A1(それぞれ、参照番号305、306、・・・310で示されている)の初期順序をなしている。これらのリクエストされた演算は、連続的遂行を行なう新しい順序付け311に従ってメモリサブシステム216に提供される(323)。再順序付けは、利用不可能な目的アドレスにより引き起こされるメモリサブシステム216での待機を最短にするように、後述の技術に従って遂行される。リクエスト/アドレスの順序は、この例では、A99、A110、A1、A104、A2、A50の順序に最適化される(311)。
【0014】
データは、D99、D110、D1、D104、D2、D50の最適順序で、メモリサブシステム216から読み取られる(324)。これらのデータは、次に、D110、D104、D99、D50、D2、D1(それぞれ、参照番号315、316、・・・320で示されている)の順序312に再順序付けされる(313)。再順序付けされたデータ順序は、初期リクエスト順序と一致する。再順序付けされたデータは、戻される(322)。データは、初期リクエスト順序に従って戻されるので、例えばプロセッサのようなメモリ演算をリクエストする構成要素(図示せず)は、リクエストされた演算がメモリサブシステム216により実際に遂行される順序を意識する必要はない。
図5には、図示を容易化する目的で、リクエストされた読取り演算のみが示されている。一般に、リクエストされた演算も書込み演算である。書込みのためのデータは、書込みリクエスト/アドレス自体と一緒に再順序付けされなくてはならない。一般に、書込みの前に読取りが遂行されるように、同じアドレスへのリクエストされた読取りが続く、リクエストされた書込みが再順序付けされる状況を防止するステップをとらなくてはならない。不正確な読取りを防止する1つの方法は、書込みリクエストが既にスケジュールされたことをシステムの一部301が演繹するまで、該部分301が、読取りリクエストが続く書込みリクエストを発行しないようにすることである。他の方法は、システムの一部301が、制限されることなくリクエストを発行できるようにし、次に、再順序付けプロセス自体の間に前記状況を積極的に防止することである。後者の方法では、例えばプロセッサのようなメモリ演算をリクエストする構成要素(図示せず)は、再順序付けが行なわれることを意識する必要はない。
【0015】
図6は、本発明を具現するデータ処理システム401を示す機能的ブロック図である。システムの一部301は、メモリアクセスリクエスト303およびリクエスト303の或るものと関連する「W」データ403を発行する。「W」データは、リクエストされたメモリ演算(単一および複数)と関連するデータであり、目的メモリ位置(単一および複数)に書き込まれるべきデータを有している。リクエスト303および「W」データ403は、例えば、データ処理システムの一部301におけるバスサブシステム(図示せず。このバスサブシステムは図1のバスサブシステム111と同じである)から発行される。
リクエスト再順序付けユニット214内で、アドレス再順序付けサブユニット311がリクエスト303を受けかつこれらを一時的にバッファに記憶する。本発明の実施形態では、アドレス再順序付けサブユニット311は、オプションとしての衝突検出器404を介して、リクエスト303を受ける。アドレス再順序付けサブユニット311に入るとき、リクエスト303には初期順序を付すことができる。アドレス再順序付けサブユニット311は、下記の技術に従って、リクエストの新しい順序408で、メモリサブシステム216にリクエストを提供する。
【0016】
リクエスト再順序付けユニット214内の第1データ再順序付けサブユニット406は、「W」データ403を受ける。第1データ再順序付けサブユニット406は、アドレス再順序付けサブユニット311からの方向で、「W」データの新しい順序410で、「W」データをメモリサブシステム216に提供する。「W」データ403の新しい順序410は、リクエスト303の新しい順序408に一致する。
メモリサブシステム216はリクエストを満たしかつ得られた全ての「R」データ412をリクエスト再順序付けユニット214に戻す。「R」データはリクエストされたメモリ演算(単一または複数)から得られ、目的メモリ位置(単一または複数)からのデータ読取りを含んでいる。
【0017】
リクエスト再順序付けユニット214内で、第2データ再順序付けサブユニット313が「R」データを受けかつ該「R」データをデータ処理システムの一部301に戻す。リクエスト303が初期順序を有する場合には、第2データ再順序付けサブユニット313は、「R」データを戻す(414)前に、「R」データ412への順序を復元する(これにより、復元された順序はリクエスト303の初期順序に一致する)。本発明の実施形態では、第2データ再順序付けサブユニット313および第1データ再順序付けサブユニット406は、アドレス再順序付けサブユニット311からの方向を受けるべく接続された単一ユニットにおいて実施される。
図6の本発明の実施形態は、一般に、進行中の実行時ダイナミック態様で演算する。リクエスト再順序付けユニット214は、新しいリクエストおよび対応「W」データをダイナミックに受け入れる。リクエスト再順序付けユニット214は、対応する「W」データのリクエストおよび410のための新しい最適順序408に従って、リクエストおよび対応する「W」データをメモリサブシステム216にダイナミックに提供する。リクエスト再順序付けユニット214は、メモリサブシステム216からの「R」データを、ダイナミックに受け、再順序付けしかつ戻す。
【0018】
本発明の幾つかの実施形態の衝突検出器404は、当該アドレスへの早期のあらゆる書込みが完了するまで、アドレスからの読取りが起こらないように確保する1つの方法を実施する。このように確保することにより、衝突検出器404は、リクエスト再順序付けによって、アドレスからの早期で誤差のある読取りを行なうという上記問題を引き起こすことを防止する。衝突検出器404は次の段落で説明するように作動し、上記問題を引き起こすリクエストシーケンスが、第1位置でアドレス再順序付けサブユニット311に入ることを防止する。早期読取りの問題を防止する他の方法は、本発明の技術に基づくものであることは明白であろう。例えば、衝突検出器404をもたない本発明の実施形態では、アドレス再順序付けサブユニット311自体がリクエストシーケンスをモニタリングし、かつ同じアドレスへの読取りリクエストが続く書込みリクエストの順序を反転させないようにする。
【0019】
衝突検出器404では、入ってくる読取りリクエストの目的アドレスが、アドレス再順序付けサブユニット311に待機する全てのリクエストのアドレスに対してチェックされる。読取りリクエストが書込みリクエストのアドレスの1つと一致する場合には、読取りリクエストが停止され、読取りリクエストがアドレス再順序付けサブユニット311に入ることを防止する。一致する書込みリクエストが最終的にアドレス再順序付けサブユニット311を出てメモリサブシステム216に向かうと、「衝突」が消滅しかつ読取りリクエストがアドレス再順序付けサブユニット311に入ることが可能になる。
リクエスト再順序付けユニット214に入ると、リクエストは、リクエストの初期順序を定める省略時優先順位(default priorities) を有する。リクエストの新しい順序を確立することにより、本発明は、リクエストに新しい優先順位を割り当てる。現在利用可能なアドレスを目的とするこれらのリクエストは、高い優先順位で割り当てられる。
【0020】
リクエストの省略時優先順位は、任意の基準すなわち発見的規則(heuristic rules)により決定される。本発明の実施形態では、新しいリクエストより高い優先順位をもつものとして、古いリクエストが定められる。リクエストのエイジ(age)は、例えば、リクエストが発行された時、リクエストが受けられた時、またはリクエストに関するタイムスタンプにより決定される。本発明の他の実施形態では、省略時優先順位は、リクエストに関連する優先順位フィールドにより決定される。省略時優先順位はまた、最初にリクエストを発した構成要素(例えば、プロセッサ)のアイデンティティによっても影響を受ける。
本発明の実施形態では、リクエスト再順序付けユニット214は、プロセッサで遂行されるようにソフトウェアに実施される。本発明の実施形態では、ソフトウェアは、コンピュータが読取り可能な記憶媒体を備えたコンピュータプログラム製品に記憶される。コンピュータが読取り可能な記憶媒体として、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、CD−ROM、ハードディスク等がある。本発明の実施形態では、リクエスト再順序付けユニット214はソフトウェアで構成できる。
【0021】
図7は、本発明の実施形態によるアドレス再順序付けサブユニット311でのリクエスト順序付けを示すフローチャートである。図6を参照しつつ、図7を説明する。図7の実施形態では、アドレス再順序付けサブユニット311は、ステップ502において、再順序付けサブユニット311でバッファされたリクエストが、利用可能なアドレスを目的としているか否かを決定する。YES(503)であれば、ステップ504において、再順序付けサブユニット311が、新しい順序408へのリクエストをスケジュールし、従ってデータ再順序付けサブユニット406に対応するあらゆる「W」データをスケジュールさせる。スケジュールされたリクエストは、ステップ504で、アドレス再順序付けサブユニット311から取り出される。本発明の好ましい実施形態では、アドレス再順序付けサブユニットは、ステップ504で、利用可能なアドレスを目的とするリクエスト間の最高の省略時優先順位を有するリクエストをスケジュールする。
【0022】
リクエストのスケジューリングは、リクエストがメモリサブシステム216に供給するリクエストのキューに入れられる。本発明の好ましい実施形態では、キューの長さはゼロであり、リクエストはこれらがスケジュールされるやいなや、メモリサブシステム216に提供される。
本発明の実施形態では、メモリサブシステムはメモリのバンクを有し、メモリアドレスは、メモリアドレスが存在するバンクが利用可能であるときに利用可能である。本発明の実施形態では、メモリサブシステムは、インターリーブされたアドレスを備えたメモリのバンクを有し、メモリアドレスは、メモリアドレスが存在するバンクが利用可能であるときに利用可能である。本発明は、メモリのバンクを備えたメモリサブシステムへのアクセスを制御するのに特に適している。また、本発明は、インターリーブされたアドレスを備えたメモリのバンクを備えたメモリサブシステムへのアクセスを制御するのにも特に適している。また、本発明は、半導体メモリサブシステムまたは同様なメモリサブシステムまたはより高速のメモリサブシステムのようなメモリサブシステムへのアクセスを制御するのにも特に適している。
【0023】
図8は、書込みリクエストに関して読取りリクエストを好都合にする本発明の実施形態のリクエストスケジューリングを示すフローチャートである。発明の背景のセクションで述べたように、読取りリクエストは、リクエスティングプロセッサがデータを待機することを表示するので、できる限り迅速に読取りリクエストを取り扱うことが特に有効である。従って、読取りリクエストは、他の演算(例えば書込み演算)よりも厳格なリクエスト形式である。図6を参照しつつ、図8を説明する。
図8の実施形態では、アドレス再順序付けサブユニット311は、先ずステップ610で、再順序付けサブユニット311でバッファされるリクエストの読取りリクエストが利用可能なアドレスを目的とするか否かを決定する。YESであれば(611)、アドレス再順序付けサブユニット311は、ステップ612で、新しい順序付け408への読取りリクエストをスケジュールする。本発明の好ましい実施形態では、アドレス再順序付けサブユニットは、ステップ612は、利用可能なアドレスを目的とする読取りリクエスト間の最高の省略時優先順位を有するリクエストをスケジュールする。スケジュールされた読取りリクエストは、ステップ612で、再順序付けサブユニット311から取り出される。
【0024】
ステップ610において、再順序付けサブユニット311の読取りリクエストが利用可能なアドレスを目的としないことを決定すると(613)、再順序付けサブユニット311は、ステップ614において、再順序付けサブユニット311のリクエストのうちの書込みリクエストが利用可能なアドレスを目的とするか否かを決定する。YESであれば(616)、アドレス再順序付けサブユニット311は、ステップ618において、新しい順序付け408への書込みリクエストをスケジュールしかつデータ再順序付けサブユニット406に任意の対応する「W」データをスケジュールさせる(410)。本発明の好ましい実施形態では、ステップ618において、利用可能なアドレスを目的とする書込みリクエスト間の最高の省略時優先順位を有するリクエストをスケジュールする。スケジュールされた書込みリクエストは、ステップ618で、再順序付けサブユニット311から取り出される。
【0025】
多くのメモリサブシステムでは、書込みリクエストは、メモリサブシステムに入る書込みデータとメモリサブシステムを出る読取りデータとの間のメモリサブシステムのポテンシャルバスコンテンションのため、読取りリクエストがスケジュールされた直後にスケジュールされることはない。本発明がこのようなメモリサブシステムへのアクセスを制御するのに使用されるとき、この可能性のあるコンテンションを考慮すべきである。可能性のあるコンテンションを防止する1つの方法は、利用可能なアドレスを目的とする書込みリクエストが存在するか否かだけでなく、書込みデータがクリアされているか否かを尋ねるようにステップ614を変更することである。例えば、前にスケジュールされたリクエストが読取りリクエストでない場合、または前にスケジュールされたリクエストの実行時間と問題の書込みリクエストの実行時間との間で確保されている場合には、書込みパスはクリアされていると決定できる。書込みリクエストが存在しかつ書込みパスがクリアされている場合にのみ(616)、書込みリクエストがステップ618でスケジュールされる。
【0026】
前の段落で説明したメモリサブシステムでは、バスターンアラウンド中または読取りリクエストの取扱いから書込みリクエストの取扱いへの移行中に時間が喪失される。喪失時間を短縮させるため、本発明の実施形態は、オプションとして、ステップ618の後に、ターンアラウンドを最小にするバースト書込みステップを設けることができる。バースト書込みステップ620は、ステップ618で書込みリクエストがスケジュールされたならば、書込みリクエストのバーストがステップ620で連続的にスケジュールされる挙動を実施する。この場合、書込みリクエストは、グループとして一体化されるのが有効なため、「バースト可能」な形式である。
図9は、図8のバースト書込みステップを示すフローチャートである。図9は、殆ど説明を要しないものである。図9から分かるように、利用可能なアドレスを目的とする書込みリクエストがもはや存在しなくなるか(626)、所定数Xの書込みリクエストが現在のバースト中にスケジュールされかつ利用可能なアドレスを目的とする読取りリクエストが存在するようになる(626)まで、ステップ622で、利用可能なアドレスへの書込みリクエストがスケジュールされる。本発明の一実施形態では、個数Xはシステム条件に基づいて調節される。例えば、Xの値は、ソフトウェアプログラム、ディップスイッチ等によりレジスタに記憶することができる。図3に示すような8個のIntel Pentiam Pro プロセッサを備えた本発明の実施形態では、Xの値として4が適していることが判明している。
【0027】
図10は、インターリーブされた多重バンクメモリシステムへのリクエストを制御する本発明の実施形態701を示すブロック図である。図10において、バス111は、リクエストバッファ703と呼ばれるシフトバッファの入力エンド705に、メモリリクエストを送る。
リクエストバッファ703は、要素705のような多数の要素(各要素は1つのリクエストを記憶できる)を有している。8個の要素をもつバッファは、本発明の8個のIntel Pentiam Pro プロセッサの実施形態に適していることが判明している。要素内には、「形式」707、「ID」709および「バンク」711としてリクエストが記憶される。リクエストの形式707は、「読取り」または「書込み」の値をとることができる。リクエストのID709は、リクエストの目的アドレスを特定化する。本発明の一実施形態では、リクエストのID自体はアドレスではなく、インデックス、すなわちアドレスを保持するアドレスバッファ(図示せず)へのポインタである。リクエストのバンク711は、目的アドレスが帰属するメモリのバンクである。各要素はまた、要素が現在リクエストを保有しているか否かを告げる「有効」ビット713を保有している。
【0028】
リクエストバッファ703は、読取り717または書込み719にメモリのどのバンクが現在利用可能であるかを表示するメモリコントローラ715からの情報を受けるように接続されている。どのバンクが利用可能であるかに関する情報に基づいて、リクエストバッファは、どのリクエストが利用可能アドレスを目的としているかを決定する。リクエストバッファ703は、利用可能なアドレスを書込みMUX727に目的付ける全ての書込みリクエストを与える(725)。読取りMAX723は、読取り/書込みスケジューラ731への目的利用可能な読取りリクエスト721の最も古い読取りリクエストを与える。また、読取りMAX723は、最も古い目的利用可能な読取りリクエスト729の存在を表示する「利用可能な読取り」フラグ735を発生する。読取り/書込みスケジューラ731および優先ジェネレータ737は、「利用可能な書込み」フラグ739を受ける。
【0029】
読取り/書込みスケジューラ731および優先ジェネレータ737は、協働して実施形態701の再順序付け規則(reordering rules)を実施する。実施形態701の再順序付け規則について、図8および図9に関連して説明した通りである。
優先ジェネレータ737は、後述のように、読取りリクエストの現在の優先順位741および書込みリクエストの現在の優先順位743を決定する。一部が現在の優先順位に基づいて、読取り/書込みスケジューラ731は、後述のように、最も古い目的利用可能な読取りリクエスト729または最も古い目的利用可能な書込みリクエスト733をスケジュールするか(745)。ひとたびリクエストがスケジュールされると(745)、メモリコントローラ715はリクエストを受け入れ、優先ジェネレータ737およびシフトコントローラ751は、読取りリクエスト747または書込みリクエスト749には、スケジュールされたか否かが知らされる。
【0030】
シフトコントローラ751はリクエストバッファ703のコンテンツを知るため接続される。リクエストがスケジュールされた後、シフトコントローラ751は、リクエストバッファ703からの当該リクエストを取り出す。これを行なうため、シフトコントローラ751は2つの機能を遂行する。第1の機能は、シフトコントローラ751が、今スケジュールされたリクエストの形式(すなわち、読取り形式747または書込み形式749)に一致する最も古い目的利用可能なリクエストを識別することにより、どのリクエストが今スケジュールされたものであるかを演繹することである。第2の機能は、シフトコントローラ751が、リクエストバッファに情報を提供して、1つの読取りリクエストにより今スケジュールされたリクエストより古い全てのリクエストを、リクエストバッファ703の入力エンド705(すなわち、新しいエンド)からシフトすることである。
【0031】
上記のように、リクエストバッファ703は、若い方のエンド705および反対側の古い方のエンド706を備えたシフトレジスタとして構成されている。バッファ703にリクエストが入るエイジは、必然的に、若い方のエンド705から古い方のエンド706に向かって増大するリクエストバッファ703内の流れは、全ての要素に同時に加えられるバッファの各要素Xについての下記規則を用いて制御される。これらの規則の効果は、リクエストバッファ703がそのコンテンツをシフトして非占拠要素を満たし、これにより、若い方のエンド705での充満のための若い方の要素の利用可能性を最高にする。
規則1: 要素Xまたは古い要素が使用されない場合には、要素Xのコンテントが隣接する若い要素に置換される。
【0032】
規則2: 要素Xまたは古い要素がメモリシステムに行くことをスケジュールされている場合には、要素Xのコンテントが隣接する若い要素に置換される。
規則3: 上記両規則1および2の条件が満たされない場合には、要素Xのコンテントが不変に維持される。
実施形態701は衝突検出器404(図10には示されていない)を用いて作動するように設計されているため、アドレスへの能動書込みリクエストには同じアドレスへの能動リクエストが続かないものと仮定する。実施形態701は、衝突検出器をリクエストバッファ703に付加することにより、このような仮定を行なわないように変更できる。
図11は、読取り741のための現在の優先順位を与える、図10の読取り/書込みスケジューラ731のリクエストスケジューリングを示すフローチャートである。図11において、リクエストが利用可能なアドレスを目的とする場合には(803)、最も古い読取りリクエストがスケジュールされる(801)。そうでない場合には(805)、前の読取りリクエストが書込みパスをクリアするようにスケジュールされてから充分な時間が経過している場合には、利用可能なアドレス809を目的とする最も古い書込みリクエストがスケジュールされる(807)。
【0033】
図12は、書込み743のための現在の優先順位を与える、図10の読取り/書込みスケジューラ731のリクエストスケジューリングを示すフローチャートである。図12において、リクエストが利用可能なアドレスを目的とする場合には(823)、最も古い読取りリクエストがスケジュールされる(821)。そうでない場合には(825)、利用可能なアドレス829を目的とする最も古い読取りリクエストがスケジュールされる(827)。
図13、図14、図15は、図10の読取り/書込み優先ジェネレータ737での読取り/書込み優先ジェネレーションを示すフローチャートである。図13から分かるように、目的利用可能な読取りリクエストが存在しない場合(905)および目的利用可能な書込みリクエストが存在する場合(909)にのみ、読取り741の現在の優先順位が書込みの優先順位に変更される(907、913)。必要ならば(910、912)、書込みの現在の優先順位を確立する前に、優先ジェネレータが待機する(915)。この待機は、前の読取りリクエストがスケジュールされた後に充分な時間経過を与えることにより(911)、クリアナ書込みパスを確保するためのものである。待機の間、書込み優先順位および読取り優先順位のいずれも主張されない(すなわち、優先順位は決定されない)。
【0034】
図15から分かるように、現在の優先順位が主張されないと、この状態は、目的利用可能な書込みリクエストが存在せず(919)かつ所定数Xの書込みが連続的に書き込まれなくなるまで維持される(917)。本発明の8個のPentium Pro を用いた実施形態において首尾よく作動するための、Xについての4つの値が見出されている。
以上、本発明の特定実施形態について全て説明したが、種々の変更を行なうことができる。従って、上記説明は、本発明の範囲を制限するものではなく、本発明およびその均等物の範囲は特許請求の範囲の記載により定められる。
ソースコード付録
マイクロフィッシュソースコード付録として、本発明の一実施形態を実施するソースコードがある。このソースコードは、回路を記載する産業において使用されているVerilog のハードウェア記載言語にある。適当なコンパイラでコンパイルするとき、ソースコードは本発明のシミュレーションを行なうことができる。適当なコンパイラとして、例えばSun Microsystems社のSparc ワークステーションに使用できる、Cadence Design Systems社から市販されているTurbo-Verilog がある。ソースコードに使用されるVerilog のサブセットは、Synopsys, Inc.社から市販されている標準合成ツールを用いてゲートへの合成、従って集積回路(IC)を選択する実施形態が可能である。
【図面の簡単な説明】
【図1】本発明が具現されるコンピュータシステムを示すブロック図である。
【図2】本発明の多重プロセッサの実施形態を示す高レベルブロック図である。
【図3】二重ブリッジ形メモリバスを備えた本発明の多重プロセッサの実施形態を示す高レベルブロック図である。
【図4】従来技術によるリクエストされたメモリ演算の順序を示す概略図であり、リクエストされた読取り演算を示すものである。
【図5】本発明によるリクエストされたメモリ演算の順序を示す概略図であり、リクエストされた読取り演算を示すものである。
【図6】本発明の一実施形態を示すブロック図である。
【図7】本発明の実施形態におけるリクエスト順序を示すフローチャートである。
【図8】本発明の読取りに適した実施形態におけるリクエストスケジュールを示すフローチャートである。
【図9】本発明の読取りに適した実施形態におけるリクエストスケジューリングを示すフローチャートである。
【図10】本発明の一実施形態を示す回路ブロック図である。
【図11】図10の読取り/書込みスケジューラのリクエストスケジューリングを示すフローチャートである。
【図12】図10の読取り/書込みスケジューラのリクエストスケジューリングを示すフローチャートである。
【図13】図10の優先ジェネレータにおける読取り/書込み優先ジェネレーションを示すフローチャートである。
【図14】図10の優先ジェネレータにおける読取り/書込み優先ジェネレーションを示すフローチャートである。
【図15】図10の優先ジェネレータにおける読取り/書込み優先ジェネレーションを示すフローチャートである。
【符号の説明】
101 コンピュータシステム
102 ディスプレイ
103 プロセッサ
104 キーボード
105 マウス
107 ランダムアクセスメモリ(RAM)
109 ディスクメモリサブシステム

Claims (12)

  1. データ処理システムにおける複数のメモリアクセスリクエストを再順序付けする方法において、
    複数のリクエストを受け入れる段階と、
    複数のリクエストから、利用可能なメモリ位置にアクセスするリクエストを選択する段階と、
    選択されたリクエストをスケジューリングする段階とを有し、
    リクエストを選択する前記段階が、
    複数のリクエストの中に、利用可能なメモリ位置にアクセスする読取りリクエストが存在するか否かを決定する段階と、
    前記決定する段階が、このような読取りリクエストが存在することを決定する場合には、利用可能なメモリ位置にアクセスする読取りリクエストを選択する段階と、
    前記決定する段階で、利用可能な位置にアクセスする読取りリクエストが存在しないことを決定する場合には、利用可能なメモリ位置にアクセスする書込みリクエストを選択する段階とからなり、
    選択されたリクエストをスケジューリングする前記段階が、
    前記選択された読取りリクエストをスケジュールし、
    取りリクエストをスケジュールする前記段階の後に、バースト書込みを可能とするために複数の前記書込みリクエストを連続してスケジューリングすることを特徴とする方法。
  2. 前記リクエストを選択する段階が、利用可能なメモリ位置へのアクセスをリクエストする、複数のリクエストの中の最も古いリクエストを選択する段階からなることを特徴とする請求項1に記載の方法。
  3. 複数のリクエストからの少なくとも1つのリクエストが戻り値を作り、複数のリクエストの戻り値を収集する段階と、
    複数のリクエストの元の順序付けに従って、収集された戻り値を順序付けする段階とを更に有することを特徴とする請求項1に記載の方法。
  4. 前記複数のリクエストが、同じメモリ位置への読取りリクエストおよび書込みリクエストを保有しているか否かを検出する段階を更に有することを特徴とする請求項1に記載の方法。
  5. 前記各メモリ位置が複数のメモリバンクの1つと関連しており、前記リクエストを選択する段階が、
    複数のリクエストからのリクエストによりアクセスがリクエストされるメモリ位置を識別する段階と、
    識別されたメモリ位置が対応する複数のメモリバンクのうちの1つのメモリバンクを識別する段階と、
    識別されたメモリバンクが利用可能であるか否かを決定する段階とからなることを特徴とする請求項1に記載の方法。
  6. メモリアクセスリクエストを再順序付けするデータ処理システムにおいて、
    複数のメモリアクセスリクエストを保持するリクエストバッファと、
    複数のメモリアクセスリクエストのうちの少なくとも幾つかのメモリアクセスリクエストにより探索されるメモリ位置の利用可能性を決定するための利用可能性決定器と、
    複数のメモリアクセスリクエストのうちから利用可能なメモリ位置にアクセスするメモリアクセスリクエストを選択すべく、前記利用可能性決定器に応答するリクエスト再順序付けユニットとを有し、
    前記リクエスト再順序付けユニットが、
    利用可能なメモリ位置にアクセスする読取りリクエストが存在する場合に、該読取りリクエストを識別するための、前記利用可能性決定器に応答する読取り識別器と、
    利用可能なメモリ位置にアクセスする書込みリクエストが存在する場合に、該書込みリクエストを識別するための、前記利用可能性決定器に応答する書込み識別器と、
    識別された読取りリクエストが存在する場合に該読取りリクエストを選択しかつ識別された読取りリクエストが存在しない場合に識別された書込みリクエストを選択するコントローラとを有し、
    前記リクエスト再順序付けユニットが、
    前記選択された読取りリクエストをスケジューリングし、
    前記読取りリクエストをスケジューリングした後に、バースト書込みを可能とするために、複数の前記書込みリクエストを連続してスケジューリングすることを特徴とするデータ処理システム。
  7. 前記リクエスト再順序付けユニットが、利用可能なメモリ位置へのアクセスをリクエストする、複数のリクエストのうちの最も古いリクエストを選択することを特徴とする請求項6に記載のデータ処理システム。
  8. 前記複数のリクエストからの少なくとも1つのリクエストが戻り値を作り、
    複数のリクエストの元の順序付けに従って、複数のリクエストの戻り値を収集しかつ収集された戻り値を順序付けするデータ再順序付けユニットを更に有することを特徴とする請求項6に記載のデータ処理システム。
  9. しいリクエストが、前記複数のリクエストのうちの書込みリクエストによりアクセスがリクエストされるメモリ位置と同じメモリ位置へのアクセスをリクエストするものであるか否かを検出する衝突検出器を更に有することを特徴とする請求項に記載のデータ処理システム。
  10. 前記複数のリクエストのうちの幾つかのリクエストにはデータが付随し、
    選択されたメモリアクセスリクエストに付随する任意のデータを選択するリクエスト再順序付けユニットに応答するデータ再順序付けユニットを更に有し、選択リクエストおよび付随するデータが、メモリコントローラに受け入れられることを特徴とする請求項6に記載のデータ処理システム。
  11. 各メモリ位置が、複数のメモリバンクのうちの1つのメモリ位置に関連しており、
    利用可能性決定器が、メモリバンクが利用可能であるか否かを表示するメモリコントローラに接続されていることを特徴とする請求項6に記載のデータ処理システム。
  12. プログラムを実行しかつ複数のメモリアクセスリクエストのうちの少なくとも幾つかのメモリアクセスリクエストを発行する少なくとも1つのプロセッサと、
    メモリ位置を備えたメモリシステムと、
    該メモリシステムにより実行するための、選択されたメモリアクセスリクエストを受け入れるメモリコントローラとを更に有することを特徴とする請求項6に記載のデータ処理システム。
JP31189397A 1996-11-15 1997-11-13 データ処理システムにおけるメモリリクエスト再順序付け法 Expired - Lifetime JP3937365B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US3106396P 1996-11-15 1996-11-15
US08/808,849 US6272600B1 (en) 1996-11-15 1997-02-28 Memory request reordering in a data processing system
US60/031063 1997-02-28
US08/808849 1997-02-28

Publications (2)

Publication Number Publication Date
JPH10228417A JPH10228417A (ja) 1998-08-25
JP3937365B2 true JP3937365B2 (ja) 2007-06-27

Family

ID=26706784

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31189397A Expired - Lifetime JP3937365B2 (ja) 1996-11-15 1997-11-13 データ処理システムにおけるメモリリクエスト再順序付け法

Country Status (5)

Country Link
US (2) US6272600B1 (ja)
EP (1) EP0843262B1 (ja)
JP (1) JP3937365B2 (ja)
KR (1) KR100524575B1 (ja)
DE (1) DE69732020T2 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6405267B1 (en) * 1999-01-22 2002-06-11 S3 Graphics Co., Ltd. Command reordering for out of order bus transfer
US6499090B1 (en) * 1999-12-28 2002-12-24 Intel Corporation Prioritized bus request scheduling mechanism for processing devices
JP2001356961A (ja) 2000-06-13 2001-12-26 Nec Corp 調停装置
US6564304B1 (en) * 2000-09-01 2003-05-13 Ati Technologies Inc. Memory processing system and method for accessing memory including reordering memory requests to reduce mode switching
US6970936B2 (en) * 2000-12-19 2005-11-29 International Business Machines Corporation Data processing system and method of communication that employ a request-and-forget protocol
US6885672B1 (en) * 2000-12-20 2005-04-26 Bellsouth Intellectual Property Corporation System and method for provisioning virtual circuit orders on an asynchronous transfer mode subnetwork
US6782435B2 (en) * 2001-03-26 2004-08-24 Intel Corporation Device for spatially and temporally reordering for data between a processor, memory and peripherals
US6826630B2 (en) * 2001-09-14 2004-11-30 Seagate Technology Llc Prioritizing commands in a data storage device
US6877077B2 (en) * 2001-12-07 2005-04-05 Sun Microsystems, Inc. Memory controller and method using read and write queues and an ordering queue for dispatching read and write memory requests out of order to reduce memory latency
US20030137519A1 (en) * 2002-01-22 2003-07-24 Nazanda Rima M. Method and apparatus to handle multiple requests to different memory agents
US7039774B1 (en) * 2002-02-05 2006-05-02 Juniper Networks, Inc. Memory allocation using a memory address pool
US7149857B2 (en) * 2002-05-14 2006-12-12 Micron Technology, Inc. Out of order DRAM sequencer
US6941407B2 (en) * 2002-09-27 2005-09-06 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US7000060B2 (en) * 2002-09-27 2006-02-14 Hewlett-Packard Development Company, L.P. Method and apparatus for ordering interconnect transactions in a computer system
US6993637B1 (en) * 2002-11-07 2006-01-31 Lsi Logic Corporation Unified memory system for multiple processors and method for controlling the same
US7093059B2 (en) 2002-12-31 2006-08-15 Intel Corporation Read-write switching method for a memory controller
KR100750273B1 (ko) * 2003-01-27 2007-08-17 마츠시타 덴끼 산교 가부시키가이샤 메모리 제어장치
AU2003900733A0 (en) * 2003-02-19 2003-03-06 Canon Kabushiki Kaisha Dynamic Reordering of Memory Requests
US7136958B2 (en) * 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7644197B1 (en) * 2003-10-15 2010-01-05 Sun Microsystems, Inc. Queue management by multiple processors
US7120743B2 (en) * 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US7412574B2 (en) * 2004-02-05 2008-08-12 Micron Technology, Inc. System and method for arbitration of memory responses in a hub-based memory system
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7447240B2 (en) 2004-03-29 2008-11-04 Micron Technology, Inc. Method and system for synchronizing communications links in a hub-based memory system
US7228362B2 (en) * 2004-03-31 2007-06-05 Intel Corporation Out-of-order servicing of read requests with minimal additional storage
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7363419B2 (en) * 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US20060069812A1 (en) * 2004-09-30 2006-03-30 Osborne Randy B Method to mitigate performance turnaround in a bidirectional interconnect
US20060171234A1 (en) * 2005-01-18 2006-08-03 Liu Skip S DDR II DRAM data path
US20060161743A1 (en) * 2005-01-18 2006-07-20 Khaled Fekih-Romdhane Intelligent memory array switching logic
US20060171233A1 (en) * 2005-01-18 2006-08-03 Khaled Fekih-Romdhane Near pad ordering logic
GB2440689A (en) * 2005-09-26 2008-02-06 Imagination Tech Ltd Allocation of data storage in a multithreaded data storage system
GB0519597D0 (en) 2005-09-26 2005-11-02 Imagination Tech Ltd Scalable multi-threaded media processing architecture
US8195903B2 (en) * 2006-06-29 2012-06-05 Oracle America, Inc. System and method for metering requests to memory
US8234457B2 (en) * 2006-06-30 2012-07-31 Seagate Technology Llc Dynamic adaptive flushing of cached data
US20080086599A1 (en) * 2006-10-10 2008-04-10 Maron William A Method to retain critical data in a cache in order to increase application performance
US20080086598A1 (en) * 2006-10-10 2008-04-10 Maron William A System and method for establishing cache priority for critical data structures of an application
JP4410270B2 (ja) * 2007-04-17 2010-02-03 株式会社東芝 バス制御装置
US20100293343A1 (en) * 2007-11-19 2010-11-18 Perego Richard E Scheduling based on turnaround event
JP4569628B2 (ja) * 2007-12-28 2010-10-27 日本電気株式会社 ロードストアキューの制御方法及びその制御システム
US7734854B2 (en) * 2008-01-04 2010-06-08 International Business Machines Corporation Device, system, and method of handling transactions
JP5414209B2 (ja) * 2008-06-30 2014-02-12 キヤノン株式会社 メモリコントローラおよびその制御方法
US8108584B2 (en) * 2008-10-15 2012-01-31 Intel Corporation Use of completer knowledge of memory region ordering requirements to modify transaction attributes
JP4840440B2 (ja) * 2008-12-24 2011-12-21 ソニー株式会社 画像処理装置およびその方法、並びにプログラム
US20110246692A1 (en) * 2010-03-31 2011-10-06 International Business Machines Corporation Implementing Control Using A Single Path In A Multiple Path Interconnect System
US8688880B2 (en) * 2010-06-23 2014-04-01 International Business Machines Corporation Centralized serialization of requests in a multiprocessor system
US9424210B1 (en) * 2010-10-22 2016-08-23 Altera Corporation SDRAM memory organization and efficient access
US20120198124A1 (en) * 2011-01-28 2012-08-02 Apple Inc. Methods and systems for optimizing read operations in a non-volatile memory
US8880819B2 (en) * 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
JP5842174B2 (ja) 2013-03-13 2016-01-13 パナソニックIpマネジメント株式会社 バス制御装置、中継装置およびバスシステム
US9747048B2 (en) 2014-06-02 2017-08-29 Micron Technology, Inc. Systems and methods for packing data in a scalable memory system protocol
KR102359404B1 (ko) * 2014-11-19 2022-02-15 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그 동작 방법
US10362109B2 (en) 2016-03-30 2019-07-23 Task Performance Group, Inc. Cloud operating system and method
GB2551351B (en) 2016-06-14 2019-05-08 Imagination Tech Ltd Executing memory requests out of order
US11099778B2 (en) * 2018-08-08 2021-08-24 Micron Technology, Inc. Controller command scheduling in a memory system to increase command bus utilization
CN115022277B (zh) * 2022-06-22 2024-05-14 支付宝(杭州)信息技术有限公司 一种双栈网络下的业务处理方法、装置以及设备

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58222361A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
US4590586A (en) * 1984-07-12 1986-05-20 Sperry Corporation Forced clear of a memory time-out to a maintenance exerciser
JP3255908B2 (ja) * 1988-06-30 2002-02-12 エルジー・セミコン・カンパニー・リミテッド メモリー制御ユニット
US5060145A (en) * 1989-09-06 1991-10-22 Unisys Corporation Memory access system for pipelined data paths to and from storage
US5499356A (en) * 1989-12-29 1996-03-12 Cray Research, Inc. Method and apparatus for a multiprocessor resource lockout instruction
US5224214A (en) * 1990-04-12 1993-06-29 Digital Equipment Corp. BuIffet for gathering write requests and resolving read conflicts by matching read and write requests
EP0513519A1 (en) * 1991-05-15 1992-11-19 International Business Machines Corporation Memory system for multiprocessor systems
JPH04372030A (ja) * 1991-06-21 1992-12-25 Meidensha Corp プロセッサのメモリアクセス方式
JPH0823843B2 (ja) * 1991-10-11 1996-03-06 インターナショナル・ビジネス・マシーンズ・コーポレイション メモリ・コントローラ、及びデータ処理システム
DE69230129T2 (de) * 1991-12-18 2000-06-15 Sun Microsystems Inc Schreibüberlappung mit Verhinderung des Überschreibens
US5412788A (en) * 1992-04-16 1995-05-02 Digital Equipment Corporation Memory bank management and arbitration in multiprocessor computer system
US5440713A (en) * 1992-05-29 1995-08-08 Industrial Technology Research Institute M-way N-port paged-interleaved memory system
EP0575651A1 (en) * 1992-06-24 1993-12-29 International Business Machines Corporation Multiprocessor system
US5485594A (en) * 1992-07-17 1996-01-16 International Business Machines Corporation Apparatus and method using an atomic fetch and add for establishing temporary ownership of a common system resource in a multiprocessor data processing system
US5339442A (en) * 1992-09-30 1994-08-16 Intel Corporation Improved system of resolving conflicting data processing memory access requests
JP3010947B2 (ja) * 1992-11-26 2000-02-21 日本電気株式会社 メモリアクセス制御装置
US5740402A (en) * 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
US5416739A (en) * 1994-03-17 1995-05-16 Vtech Computers, Ltd. Cache control apparatus and method with pipelined, burst read
US5642494A (en) * 1994-12-21 1997-06-24 Intel Corporation Cache memory with reduced request-blocking
US5596740A (en) * 1995-01-26 1997-01-21 Cyrix Corporation Interleaved memory conflict resolution with accesses of variable bank widths and partial return of non-conflicting banks
US5581729A (en) * 1995-03-31 1996-12-03 Sun Microsystems, Inc. Parallelized coherent read and writeback transaction processing system for use in a packet switched cache coherent multiprocessor system
US5638534A (en) * 1995-03-31 1997-06-10 Samsung Electronics Co., Ltd. Memory controller which executes read and write commands out of order
US5887146A (en) * 1995-08-14 1999-03-23 Data General Corporation Symmetric multiprocessing computer with non-uniform memory access architecture
US5745913A (en) * 1996-08-05 1998-04-28 Exponential Technology, Inc. Multi-processor DRAM controller that prioritizes row-miss requests to stale banks
US6240458B1 (en) * 1998-12-22 2001-05-29 Unisys Corporation System and method for programmably controlling data transfer request rates between data sources and destinations in a data processing system

Also Published As

Publication number Publication date
DE69732020D1 (de) 2005-01-27
KR19980042453A (ko) 1998-08-17
DE69732020T2 (de) 2005-12-15
EP0843262B1 (en) 2004-12-22
EP0843262A3 (en) 2002-08-21
JPH10228417A (ja) 1998-08-25
US6976135B1 (en) 2005-12-13
US6272600B1 (en) 2001-08-07
KR100524575B1 (ko) 2006-01-27
EP0843262A2 (en) 1998-05-20

Similar Documents

Publication Publication Date Title
JP3937365B2 (ja) データ処理システムにおけるメモリリクエスト再順序付け法
US5649157A (en) Memory controller with priority queues
US6606692B2 (en) Prioritized bus request scheduling mechanism for processing devices
US6832280B2 (en) Data processing system having an adaptive priority controller
US6425060B1 (en) Circuit arrangement and method with state-based transaction scheduling
US6317811B1 (en) Method and system for reissuing load requests in a multi-stream prefetch design
US6732242B2 (en) External bus transaction scheduling system
KR100724557B1 (ko) 아웃 오브 오더 dram 시퀀서
US6092158A (en) Method and apparatus for arbitrating between command streams
AU598857B2 (en) Move-out queue buffer
WO1998045780A2 (en) Method and apparatus for reordering commands and restoring data to original command order
US6754739B1 (en) Computer resource management and allocation system
JP2000242545A (ja) データ処理システムにおいてメモリ・アクセス要求を処理するための装置および方法
US6654837B1 (en) Dynamic priority external transaction system
KR100328726B1 (ko) 메모리 엑세스 시스템 및 그 제어방법
JP2002024007A (ja) プロセッサシステム
JP2000330866A (ja) メモリ制御方法およびメモリ制御システム
JP2003131939A (ja) メモリ装置
JPH08305653A (ja) 記憶装置の入出力制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041111

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041227

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20060201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060713

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060719

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060913

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20060913

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20060913

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20061019

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20061024

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061027

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061120

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070214

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070316

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120406

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130406

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20140406

Year of fee payment: 7

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

EXPY Cancellation because of completion of term