JP3937365B2 - データ処理システムにおけるメモリリクエスト再順序付け法 - Google Patents
データ処理システムにおけるメモリリクエスト再順序付け法 Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
- G06F13/1631—Handling 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
【発明の属する技術分野】
本発明は、メモリサブシステムを備えたデータ処理システムに関し、より詳しくは、帯域幅および並行性(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に記載の方法。
- 複数のリクエストからの少なくとも1つのリクエストが戻り値を作り、複数のリクエストの戻り値を収集する段階と、
複数のリクエストの元の順序付けに従って、収集された戻り値を順序付けする段階とを更に有することを特徴とする請求項1に記載の方法。 - 前記複数のリクエストが、同じメモリ位置への読取りリクエストおよび書込みリクエストを保有しているか否かを検出する段階を更に有することを特徴とする請求項1に記載の方法。
- 前記各メモリ位置が複数のメモリバンクの1つと関連しており、前記リクエストを選択する段階が、
複数のリクエストからのリクエストによりアクセスがリクエストされるメモリ位置を識別する段階と、
識別されたメモリ位置が対応する複数のメモリバンクのうちの1つのメモリバンクを識別する段階と、
識別されたメモリバンクが利用可能であるか否かを決定する段階とからなることを特徴とする請求項1に記載の方法。 - メモリアクセスリクエストを再順序付けするデータ処理システムにおいて、
複数のメモリアクセスリクエストを保持するリクエストバッファと、
複数のメモリアクセスリクエストのうちの少なくとも幾つかのメモリアクセスリクエストにより探索されるメモリ位置の利用可能性を決定するための利用可能性決定器と、
複数のメモリアクセスリクエストのうちから利用可能なメモリ位置にアクセスするメモリアクセスリクエストを選択すべく、前記利用可能性決定器に応答するリクエスト再順序付けユニットとを有し、
前記リクエスト再順序付けユニットが、
利用可能なメモリ位置にアクセスする読取りリクエストが存在する場合に、該読取りリクエストを識別するための、前記利用可能性決定器に応答する読取り識別器と、
利用可能なメモリ位置にアクセスする書込みリクエストが存在する場合に、該書込みリクエストを識別するための、前記利用可能性決定器に応答する書込み識別器と、
識別された読取りリクエストが存在する場合に該読取りリクエストを選択しかつ識別された読取りリクエストが存在しない場合に識別された書込みリクエストを選択するコントローラとを有し、
前記リクエスト再順序付けユニットが、
前記選択された読取りリクエストをスケジューリングし、
前記読取りリクエストをスケジューリングした後に、バースト書込みを可能とするために、複数の前記書込みリクエストを連続してスケジューリングすることを特徴とするデータ処理システム。 - 前記リクエスト再順序付けユニットが、利用可能なメモリ位置へのアクセスをリクエストする、複数のリクエストのうちの最も古いリクエストを選択することを特徴とする請求項6に記載のデータ処理システム。
- 前記複数のリクエストからの少なくとも1つのリクエストが戻り値を作り、
複数のリクエストの元の順序付けに従って、複数のリクエストの戻り値を収集しかつ収集された戻り値を順序付けするデータ再順序付けユニットを更に有することを特徴とする請求項6に記載のデータ処理システム。 - 新しいリクエストが、前記複数のリクエストのうちの書込みリクエストによりアクセスがリクエストされるメモリ位置と同じメモリ位置へのアクセスをリクエストするものであるか否かを検出する衝突検出器を更に有することを特徴とする請求項6に記載のデータ処理システム。
- 前記複数のリクエストのうちの幾つかのリクエストにはデータが付随し、
選択されたメモリアクセスリクエストに付随する任意のデータを選択するリクエスト再順序付けユニットに応答するデータ再順序付けユニットを更に有し、選択リクエストおよび付随するデータが、メモリコントローラに受け入れられることを特徴とする請求項6に記載のデータ処理システム。 - 各メモリ位置が、複数のメモリバンクのうちの1つのメモリ位置に関連しており、
利用可能性決定器が、メモリバンクが利用可能であるか否かを表示するメモリコントローラに接続されていることを特徴とする請求項6に記載のデータ処理システム。 - プログラムを実行しかつ複数のメモリアクセスリクエストのうちの少なくとも幾つかのメモリアクセスリクエストを発行する少なくとも1つのプロセッサと、
メモリ位置を備えたメモリシステムと、
該メモリシステムにより実行するための、選択されたメモリアクセスリクエストを受け入れるメモリコントローラとを更に有することを特徴とする請求項6に記載のデータ処理システム。
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)
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)
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 |
-
1997
- 1997-02-28 US US08/808,849 patent/US6272600B1/en not_active Expired - Lifetime
- 1997-11-11 DE DE69732020T patent/DE69732020T2/de not_active Expired - Fee Related
- 1997-11-11 EP EP97119694A patent/EP0843262B1/en not_active Expired - Lifetime
- 1997-11-13 JP JP31189397A patent/JP3937365B2/ja not_active Expired - Lifetime
- 1997-11-14 KR KR1019970060191A patent/KR100524575B1/ko not_active IP Right Cessation
-
2000
- 2000-09-14 US US09/662,068 patent/US6976135B1/en not_active Expired - Lifetime
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 |