JP5576030B2 - データ応答を順序変更するためのシステム - Google Patents

データ応答を順序変更するためのシステム Download PDF

Info

Publication number
JP5576030B2
JP5576030B2 JP2008120193A JP2008120193A JP5576030B2 JP 5576030 B2 JP5576030 B2 JP 5576030B2 JP 2008120193 A JP2008120193 A JP 2008120193A JP 2008120193 A JP2008120193 A JP 2008120193A JP 5576030 B2 JP5576030 B2 JP 5576030B2
Authority
JP
Japan
Prior art keywords
data
memory
memory controller
bus
response
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 - Fee Related
Application number
JP2008120193A
Other languages
English (en)
Other versions
JP2008276783A (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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2008276783A publication Critical patent/JP2008276783A/ja
Application granted granted Critical
Publication of JP5576030B2 publication Critical patent/JP5576030B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4234Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus
    • G06F13/4239Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being a memory bus with asynchronous protocol
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Description

本発明は、メモリ・コントローラに関し、特に、データ応答の順序変更(reordering)に関するものである。
決定性(deterministic)メモリ・システム102のメモリ・コントローラ101は、トランザクションの発生順序と同じ順序でメモリからデータを返送される(図1参照)。これは、メモリの帯域幅使用効率を低下させ、トランザクションの読取り待ち時間を増加させることがある。返送データが発生順序から外れた順序で戻ることを可能にされる場合、これらの両特性が改善されることがある。
図2を参照すると、メモリ・コントローラ101とメモリ・モジュール201との間およびメモリ・モジュール相互間のポイント・ツー・ポイント・リンクが2つの単方向バス、即ち、読取りトラフィック(読取りデータ)バス202と書込みおよびコマンド・トラフィック(コマンド/書込み)バス203とに分離される。メモリ・コントローラ101は、メモリ・モジュール201へのコマンドを発生する発生キュー204を含む。一旦要求がメモリ・モジュールに送出されると、読取り要求が発生キュー204から応答キュー205に移される。発生および応答の統一キューを用いるアーキテクチャを使用することも可能であるということに留意されたい。応答キュー205の機能は、読取りデータの返送を適切な読取り要求に関連付けることである。読取り要求206は、トランザクションIDとも呼ばれるID207に関係付けられ、そのID207は、その読取り要求を識別するために要求コンポーネントによって使用される。
デイジー・チェーンの使用により、特定のメモリ・コントローラから1つのメモリ・モジュールまでの距離は、そのメモリ・コントローラからのそのメモリ・モジュールまでの距離の関数となる。従って、2つの異なるメモリ・モジュールにあてられたメモリ・トランザクションは、2つの異なる時間に返送データ・バスを使用し始めることを望むであろう。しかし、それらがバスを要求する時間が多少の重なることがある。
図3は、メモリ・コントローラに最も近接したそのシステム内の返送データ・リンクの使用状況のうち、特にTとして表わされた最新のスケジューリングの時点から、Tにおいてスケジュールされているトランザクションがそのリンクを使用し得る最後の時点までの、そのリンクの使用状況を示す。リンク・ビジーとして表されたスロットは、読取りデータを返送することによってそのリンクが利用されている期間を識別するために使われる。フリーのスロットはブランクのスペースによって表わされる。Wは、読取りトランザクションがこのリンクを必要とする最初のウィンドウであり、Wは、トランザクションがそのリンクを必要とする最後のウィンドウである。典型的には、Wは、デイジー・チェーンにおける最初のメモリ・モジュールからの読取りデータがそのリンクの使用を開始する時間に対応し、Wは、そのチェーンにおける最後のメモリ・モジュールへのメモリ要求がこのリンクの使用を完了する時間に対応する。縦の太いラインは、そのリンクを使用した最後のトランザクションの完了時間を表わす。
現時点における既存の解決方法は、コマンドが発生される順序と同じ順序で返送データが戻ることを可能にしている。これを強化するために、およびデータの返送がリンク上で混乱しないことを保証するために、メモリ・コントローラは返送リンクの最後の使用状況を追跡する。この情報は、単一のレジスタまたはカウンタを使用することによって追跡される。メモリ・コントローラは、返送データ・リンクが次のメモリ読取り要求をスケジュールために利用し得るかどうかを決定するためにこのレジスタを使用する。読取り要求をスケジュールするとき、このレジスタが更新される。
順序通りの返送は、メモリ・コントローラが、最後のトランザクションの完了後、読取りデータを返送するトランザクションだけをスケジュールする、ということを必要とする。図3に示されるように、この方法は、最後の読取りデータの返送が完了する前に、スケジューラが多くの機会を断念しなければならないという結果を生じる。
メモリ・コントローラが、順序不同の(即ち、要求が送出された順序とは異なる順序での)読取りデータを許容する場合、メモリ・コントローラは、最後の読取りトランザクション・データの切離しを始める前にスケジューリング・ウィンドウ内のアイドル・ギャップを使用することができるであろう。これは、メモリ・コントローラが、スケジューリング・ウィンドウWおよびW内にあるすべてのビジー時間を追跡する、ということを必要とするであろう。
そのようなシステムでは、メモリ・コントローラは、FIFO応答キュー、即ち、既にメモリ・モジュールに対して発生されており且つデータを返送する過程にある読取りトランザクションに関するキュー、を維持する。そのキューは、いくつかの異なる方法で具現化することが可能である。そのような1つの具現化方法が図4に示される。図4で見られるように、発生されるすべての読取りトランザクションがキューの最後部に入れられ、読取りデータのすべての返送が先頭のエントリに関連付けられる。
読取りデータの順序どおりの返送は帯域幅利用率を低下させ、ポイント・ツー・ポイント相互接続を使用するメモリ・システムにおける待ち時間を増加させる。
メモリ・データが、それが発生される順序とは異なる順序で戻ることを可能にするためには、メモリ・コントローラが返送のデータを適切な読取りデータに関連付けることができるようにするための機構が提供されなければならない。そのような方法の1つは、順付けを識別するために各返送データにタグを挿入することであろう。この機構は、メモリ・コントローラがタグを生成および監視することを必要とするであろう。プロトコルは、タグを組込むように修正されなければならないであろう。応答キューは、タグの突き合わせを可能にするように修正されなければならないであろう。応答キューは、データが戻ることを可能にするように修正されなければならないであろう。図5は、そのような方法に関する可能な具現化方法示す。読取りデータは、応答キューにおいてルックアップを行うために使用されるタグに関連付けられる。その関連付けられたトランザクション情報は、タグの一致があるときに読出される。
読取りデータ・タグを使用することの不利な点は、メモリ・コントローラが、軌跡を生成し且つタグを維持するための更なるロジックを必要とするであろうということである。更に、タグはすべての読取りデータに関係付けられなければならず、これは、読取りデータを伝送するために、利用可能な帯域幅を低下させるであろう。
従って、本発明の目的は、データ応答を順序変更するためのメモリ・コントローラを提供することにある。
本発明の実施例によれば、順序不同のデータ応答を行うためのシステムが、決定性システムとリンクを介して決定性システムに電気的に接続されたコントローラとを含む。コントローラは、そのコントローラから発生された要求に対応するその決定性システムからのデータ応答が順序不同で返送されることを可能にするトランザクション・スケジューリング機構を含む。
本発明の一実施例によれば、決定性システムにおいて要求のデータ応答が順序不同で返送されることを可能にするシステムが、プロセッサが読取り得るメモリ装置に格納された自己順序変更キューを含んでいる。その自己順序変更キューは、トランザクション・タグを使わずに、データ応答をプロセッサの対応するデータ要求と突き合わせる。
本発明の一実施例によれば、データ・チャネル利用率を高めるための方法を遂行するためにプロセッサが実行し得る命令を実装するコンピュータ・プログラムが提供される。その方法は、コントローラと決定性システムとの間のリンクにおいて最後のn個のスケジュールされたデータ・トランザクションにカウンタを割り当てるステップと、各データ・トランザクションに関連したビジー期間を決定するステップと、スケジュールされたデータ・トランザクション相互間における未使用の期間を決定するステップと、未使用の期間において次のデータ・トランザクションをスケジュールするステップとを含む。
本発明の一実施例によれば、順序不同のデータ応答を行うためのシステムが、決定性システムと、リンクを介して決定性システムに電気的に接続されたコントローラであって、そのコントローラから発生された要求に対応するその決定性システムからのデータ応答が順序不同で返送されることを可能にするトランザクション・スケジューリング機構を含む、コントローラと、メモリ装置に階層的に格納され、コントローラに電気的に接続された複数の自己順序変更キューであって、データ要求に対する応答がタグ・ビットに従って複数の自己順序変更キューの1つに格納される、複数の自己順序変更キューと、を含む。
本発明の実施例によれば、データ・チャネルの利用率が監視され、トランザクション・タグを付加せずに、データ・チャネル利用率を高めるように決定性システム602のデータ応答がコントローラ601によって順序変更される(図6参照)。決定性システム602は、例えば、メモリ、暗号化されたデータを返送する暗号化ユニット、アクセラレータ(例えば、XMLアクセラレータ)、或いは、機能を遂行し、結果等を返送するオフロード・エンジン(例えば、JAVAオフロード・エンジン)であってもよい。なお、その決定性システムでは、各チャネルおよび処理ユニットの待ち時間を決定することが可能である。
例えば、ハードウェアおよび/またはソフトウェアで具現化されたコントローラ601のメカニズムがデータ・チャネルの利用機会を監視する。例えば、コントローラ601は、データ・チャネル利用機会を監視するためのカウンタを実装してもよい。
自己順序変更キュー603は、いずれのトランザクション・タグも使用せずに、データ応答を対応するデータ要求と突き合わせる。
自己順序変更キューは、支援能力を高めるために、制限されたタグ・サイズを備えたシステムにおいて使用されてもよい。
本発明の実施例は、決定性システムのプロトコルまたはハードウェアを変更することなくデータ・チャネル利用率を高める。制限されたタグ・サイズを有するシステム(例えば、ハイパートランスポート(hypertransport))ために拡張機能が利用可能である。
本発明の実施例は、タグを使用しない或いは制限されたサイズのタグを使用する既存のメモリ・プロトコルを変更せずに、メモリ・コントローラ601が読取りデータの返送順序を追跡することを可能にするための機構および技術を含む。メモリ・コントローラ601は、読取りデータが返送される順序と応答キュー603の順序が一致するように応答キュー603を順序変更する。コントローラ601は1つまたは複数のプロセッサ604に接続される。コントローラ601は、プロセッサ604と離れているように示されているが、プロセッサ604上に、例えば、チップ構成のシステム内に実装されてもよい。
本発明の実施例による機構は、メモリ・コントローラ601が、読取りデータの返送と共にタグを伝送せずに、非発生順序で戻る返送データを追跡することを可能にする。その機構は、読取りデータと共にタグを伝送するが限定された数のタグ・ビットを有するメモリ・システムにおいて非発生順のデータ返送をサポートすることもできる。メモリ・コントローラ601は、返送データ・チャネルの使用を追跡することができる。
更に、その機構は、トランザクションがそれの発生順序とは異なる順序で戻ることを可能にすることによって、メモリ・サブシステムにおける帯域幅利用率を高め且つ読取り待ち時間を少なくする。
この機構は、返送データの追跡するための返送チャネルにおけるタグの使用を不要にし、それによって、データおよびコマンド帯域幅における影響並びにチャネルの電力消費量を減らすかまたは最小にする。
次に例示的な実施態様を参照すると、返送データ・チャネルが使用されるようその返送データ・チャネルの使用を追跡する能力、および、読取り要求をスケジュールした後、メモリ読取り要求が発生されるときに応答キューを順序変更する能力は、返送データ・リンクの使用を追跡する能力と、データが返送される順序を識別する能力とによって促進される。
応答キューにおいて順序を維持するために、検索または返送、および順序変更または挿入を含むオペレーションを行うことが必要である。検索または返送に関しては、データ応答が到達するとき、トランザクション情報が検索され、返送の順序が適切に更新される。順序変更または挿入に関しては、読取り要求がメモリ・モジュールに送られるとき、応答キューが、トランザクションの返送順序を更新させる。発生される読取り要求は、応答キューにも入れられ、その適切な返送順序と関連付けられなければならない。
本明細書に開示された機構は、スケジューラがデータを返送するように読取りトランザクションをスケジュールし得るウィンドウを増加させる。この方式は、リンクの最後のn個のビジー期間の始まりを追跡すn個のカウンタを使用する。なお、nは自然数である。図7は、各カウンタによって追跡されたビジー期間の終了を表わす。カウンタは、リンクを使用するようにスケジュールされた最後のn個の応答を追跡するためにソートされる。なお、カウンタ0は、カウンタn よりも前のトランザクションを追跡し、カウンタn は、そのリンクを使用するようにスケジュールされた最後のトランザクションを追跡する。本発明の一実施例によれば、最後のn個の応答のスケジュールを知ることによって、新たなトランザクション、例えば、2つの既にスケジュールされたトランザクション(例えば、応答2および3)の間の応答4をスケジュールすることに関して判断を行うことが可能である(図7参照)。
メモリ・コントローラ601が、例えば、図7における応答2および3の間に応答4を挿入するという判断を行うとき、それは、トランザクションが任意の事前にスケジュールされたトランザクションの読取りバーストと重なるようにトランザクションがデータを返送しない、ということを保証する。
いずれのカウンタI に関しても、それが0よりも大きい且つ下記の条件が満たされる場合、トランザクションはスケジュール可能ではない。
カウンタ>LSTART およびカウンタ<LEND 、或いは
(カウンタ+tReadData)>LSTART および(カウンタ+tReadData)LEND
但し、LSTARTは、トランザクションがリンクを要求する最初のものであり、
ENDは、それがリンクを要求するときの最後のものであり、
ReadData は、読取りデータが返送のために必要とする期間である。
カウンタによって捕捉されたビジー期間の前のビジー期間がわからないので、下記の条件も保証されなければならない。
カウンタ<Lstart
スケジューリングの判断を行った後、リンクの終了時間が正しいカウンタに置かれ、従って、残りのカウンタが更新される。
図8は、スケジューリングの判断に続いてカウンタを更新するためのメモリ・コントローラを示す。マルチプレクサ(MUX)701への入力は、カウンタi-1702を更新するべき値を決定するために使用される。
シフト(SHIFT)i-1 が1にセットされるとき(カウンタI<Lstart)、カウンタi-1=カウンタi
置換(REPLACE)n-1 が1にセットされるとき、カウンタi-1=Lstart
保存(RETAIN)i-1 が1にセットされるとき、カウンタi-1=カウンタi-1-1.
図9、10、11、12、および13は、MUX制御信号を生成する方法を示す。
RETAINi-1=!REPLACEi-1!SHIFTi-1(図9は、SHIFTおよびREPLACE信号を使用してRETAIN信号を生成する方法を示す)
SHIFTi-1=COUNTERi<LSTART(図10は、カウンタn-1がカウンタnの値によって更新されるべきであるかどうかを決定するためのロジックの使用を示す)
REPLACEi=1
i=nである場合、REPLACE=COUNTER<LSTART=SHIFTn−1
i<nである場合、REPLACE=COUNTER<LSTART およびREPLACE=0(図11、図12、および図13は、デコーダ1001およびREPLACE信号を生成するためのロジックを示す)
応答キュー603(図6)は、データ返送の順序変更が1つのリンクされたリストと見なされることを可能にする。このリストでは、リストにおける第1素子即ちリストの先頭が、返送されるべきトランザクションに関する情報を保持する。メモリ要求の発生時にキューにアクセスし且つそれを更新するために必要な主なオペレーションは、検索することおよび順序変更することを含む。
検索オペレーションは、先頭の要素を返送すること、および先頭ポインタをキューにおける次の要素に移動させることを意味する。順序変更または挿入オペレーションは、キューを全探索することおよび要素を適切な位置に置くことを含む。
各キュー・エントリは、エントリの返送順序、それが指すトランザクションの識別子(ID)、および有効ビットを保持する。有効ビットは、各エントリの有効性を表わす。
返送順序は、トランザクションが完了したときを表わす。エントリはその返送順序によってアドレスされ、この順序は動的に更新される。動的な返送順序は、セルフ・インクリメント/セルフ・デクリメント・カウンタ、シフト・レジスタ等の形で維持することが可能である。最初に完了すべきトランザクション、または返送順序の先頭におけるトランザクションが返送順序ゼロと関連付けられる。各エントリは、それが返送順序の先頭に達するときに読取られ、しかも1回しか読取られない。
メモリ要求の発生時にキューにアクセスし且つそれを更新するために必要な主なオペレーションは、検索および順序変更含む。
図14および図15は、それぞれ、ハードウェアおよびロジックで検索オペレーションを行う方法を示す。検索は、読取りデータがメモリ・コントローラに到達するときに行われる。メモリ・コントローラは、読取りデータに関連したトランザクションIDを検索すること、およびこれを読取りデータと共にメモリ・コントローラに返送することを必要とする。メモリ・コントローラは、ANDのような論理ユニット1101を使用して検索エントリを有効化し、返送順序キュー1102への入力を決定し、トランザクションIDキュー1103を識別する。
検索信号がアサートされ、これは、どのトランザクションIDが返送順序ゼロを有するかを決定するために比較オペレーションを開始させる。図15は、エントリの有効性検査(ステップ1202)を含む検索オペレーション1201を示す。このオペレーションにおける無効エントリという結果は、ノー・アクション(ステップ1203)を生じる。オペレーション1201は、返送順序がゼロに等しいかどうかを決定すること(ステップ1204)を含み、その結果が否定的である場合、返送順序を進める(ステップ1205)。オペレーション1201は、IDを読出すこと(ステップ1206)および有効ビットをクリアすること(ステップ1207)を含む。キューにおいてヒットが生じるとき、トランザクションIDが読出され、すべての返送順序が更新される。
図16および図17は、それぞれ、更新ロジックのハードウェア実施態様およびそれの論理(フローチャート)示す。
読取り要求がメモリ・コントローラからメモリに発生されるときに、順序変更オペレーションが行なわれる。プロセッサが発生したトランザクションIDが適切なエントリIDと共に自己順序変更の連想メモリに格納される必要がある。更に、他の読取り要求の返送順序も更新されなければならないであろう。
順序変更ハードウェアが、発生された要求の返送順序1301を決定し、既存の未処理の要求1302の返送順序を更新し、利用可能なエントリにそれのトランザクションIDおよび対応する返送順序を書込む。
図17を参照すると、順序変更方法は、順序変更要求を受取ること(ステップ1402)、その要求の有効性検査すること(ステップ1402)、無効な要求に対してアクションが取られないこと(ステップ1403)を含む。その方法は、その返送順番が挿入順序よりも大きいかまたはそれに等しいかがチェックされ(ステップ1404)、これが肯定される場合、返送順序を遅らせること(ステップ1406)を含む。これが否定される場合、アクションは取られない(ステップ1405)。
キュー順序変更機構は、限定された数の利用可能なタグ・ビットを有するシステムに拡張することが可能である。そのようなシステムでは、図18に示されるように、応答キューを自己順序変更キューの階層に編成することが可能である。メモリ・サブシステム(キュー発生ロジック)1501に要求を発生するとき、メモリ・コントローラは、タグ・ビット識別ロジック1502によって識別されるようにキュー・デコード・ロジック1503を介して自己順序変更キュー1505にその要求を入れる。メモリ・モジュールは、その後、データに対する応答キューをルックアップするために使用されるタグ・ビット1504と共にそのデータを返送する。各自己順序変更キュー1505は上述のものと同様のものであることに留意されたい。
図18のシステムに関しては、タグ・ビットの数はlog2(自己順序変更キューの数)によって決定される。この場合、数値発生キューは、2(タグ・ビットの数)に等しい。自己順序変更キューを指標化するために使用されるタグ・ビットの数は、決定性システムのタグ・サイズよりも小さいかまたはそれに等しい。更に、自己順序変更キューを指標化するために使用されるタグ・ビットは決定性化システムのタグ・ビットのサブセットであるかまたは決定性システムのタグ・ビットと同様のものである。限定されたタグ・サイズを有するシステムに対して拡張を行うことも可能である。というのは、それが、予期されたデータ応答順序を追跡するためにおよびデータ応答を自己順序変更キューにおける対応する要求と突き合わせるために自己順序変更キューを使用することによって階層的識別方式を支援するためである。
キュー・デコード・ロジック1503は、データを複数の自己順序変更キュー1505に挿入し(図19)、およびそのキュー1505から検索する(図20)。詳しく云えば、挿入オペレーション1506(図19)は、返送データにおけるタグ・ビットの値を決定すること(ステップ1507)、およびその値を決定すると、そのタグ・ビットに関連したキューを順序変更ること(ステップ1508)を含む。検索オペレーション1509(図20)は、データ要求におけるタグ・ビットの値を決定すること(ステップ1510)、およびそのタグ・ビットの値に基づいてキューからのデータを検索すること(ステップ1511)を含む。
本発明が、ハードウェア、ソフトウェア、ファームウェア、特殊目的のプロセッサ、或いはそれらの組合せという様々な形式で具現化することが可能であるということは明らかであろう。1つの実施例では、本発明は、プログラム記憶装置において現実的に体現されるアプリケーション・プログラムのようなソフトウェアとして具現化することも可能である。そのアプリケーション・プログラムは、任意の適当なアーキテクチャを含むマシンにアップロードされ、そのマシンによって実行され得るものである。
図21を参照すると、本発明の実施例に従ってデータ応答を順序変更するためのコンピュータ・システム1601は、特に、中央処理ユニット(CPU)1602、メモリ1603、および入力/出力(I/O)インターフェース1604を含み得る。コンピュータ・システム1601は、一般に、I/Oインターフェース1604を介して、ディスプレイ1605、並びに、マウスおよびキーボードのような種々の入力装置1606に接続される。支援回路は、キャッシュ、電源、クロック回路、および通信バスのような回路を含み得る。メモリ1603は、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、ディスク・ドライブ、テープ・ドライブ、或いはそれらの組合せを含み得る。本発明は、信号源1608からの信号を処理するためにCPU1602によってメモリ1603に格納され且つ実行されるルーチン1607として具現化することができる。そのため、コンピュータ・システム1601は、本発明のルーチン1607を実行するときに特殊目的のコンピュータ・システムとなる汎用コンピュータ・システムである。
コンピュータ・システム1601は、更に、オペレーティング・システムおよびマイクロ命令コードも含む。本明細書に記述された種々のプロセスおよび機能は、マイクロ命令コードの一部であるか、または、オペレーティング・システムによって実行されるアプリケーション・プログラムの一部(或いは、それの組合せ)であってもよい。更に、付加的なデータ記憶装置および印刷装置のような種々の他の周辺機器がそのコンピュータ・システムに接続されてもよい。
添付図面に示された構成システム・コンポーネントおよび方法のうちのいくつかはソフトウェアで具現化することが可能であるので、システム・コンポーネント(あるいはプロセス)間の実際の接続は、本発明がプログラムされる方法に依存して異なってもよいということも明らかであろう。本明細書において提供される本発明の教示があれば、当業者は、本発明に関するこれらの及び同様の具現化方法或いは構成を考察することができるであろう。
データ応答を順序変更するためのシステムおよび方法に関する実施例を説明したが、上記教示内容に照らして当業者が修正および変更を行い得るということに留意されたい。従って、本発明の範囲および趣旨内にある本発明の特定の実施例において変更を施し得ることは明らかであろう。
本発明の実施例によるメモリ・コントローラと決定性システムとの間のポイント・ツー・ポイント・リンクを示す概略図である。 ポイント・ツー・ポイント・メモリ・アーキテクチャを示す概略図である。 返送データ・リンクの使用状態を経時的に示す概略図である。 メモリ・システムにおける応答キューが読取りデータの順序通りの返送を伴うというアーキテクチャを示す概略図である。 返送データを順序不同で返送するメモリ・システムにおける応答キューのアーキテクチャを示すブロック図である。 本発明の実施例によるメモリ・コントローラと決定性システムとの間のポイント・ツー・ポイント・リンクを示すブロック図である。 本発明の実施例によるリンク利用カウンタの値を追跡するためのカウンタ機構のリンク・スケジューリング・ウィンドウを経時的に示す概略図である。 本発明の実施例によるカウンタ値を更新するための機構のブロック図である。 本発明の実施例に従って保持信号を生成するための論理図である。 本発明の実施例に従ってシフト信号を生成するための論理図である。 本発明の実施例に従って置換信号を生成するための論理図である。 本発明の別の実施例に従って置換信号を生成するための論理図である。 本発明の更に別の実施例に従って置換信号を生成するための論理図である。 本発明の実施例による検索論理ハードウェアの概略図である。 本発明の実施例による検索オペレーションのフローチャートである。 本発明の実施例による更新オペレーションのハードウェア具現化態様の概略図である。 本発明の実施例による順序変更オペレーションのフローチャートである。 本発明の実施例によるマルチレベル自己順序変更キューのハードウェア具現化態様の概略図である。 自己順序変更キューの番号nへのキュー・デコード・ロジックの挿入オペレーションのフローチャートである。 自己順序変更キューの番号nからのキュー・デコード・ロジックの検索オペレーションのフローチャートである。 本発明の実施例に従って、メモリ・システムにおける応答の順序変更を具現化するためのコンピュータ・システムの概略図である。

Claims (11)

  1. データ・チャネルの利用率を高めるためのシステムであって、
    複数のメモリ・モジュールをデイジー・チェーンで備えているメモリ・システムと、
    前記メモリ・システムにリンクを介して電気的に接続されたメモリ・コントローラと
    を備えており、
    前記メモリ・コントローラは、要求順序を有するデータ要求を前記メモリ・システムに送信し、
    前記メモリ・システムは、前記データ要求を前記メモリ・コントローラから受信し、前記データ要求に対する複数のデータ応答を前記メモリ・コントローラに送信し、
    前記メモリ・コントローラは、前記複数のデータ応答を前記メモリ・システムから受信し、当該受信した複数のデータ応答それぞれを複数のキューのうちの一つに格納し、
    前記リンクは、前記メモリ・コントローラから前記メモリ・システムへデータ要求を送信するためのバス(以下、第1のバスという)と、前記メモリ・システムから前記メモリ・コントローラへデータ応答を返送するためのバス(以下、第2のバスという)を備えており、
    前記メモリ・コントローラは、前記複数のデータ応答による前記第2のバスの使用を追跡して、前記複数のデータ応答が返送される順序と前記複数のキューの順序が一致するように、前記データ応答に関連付けられたタグを使わずに前記複数のキューにおいて前記複数のデータ応答を順序変更し、且つ、前記複数のメモリ・モジュールうち、前記複数のメモリ・モジュールそれぞれからからのデータ応答のうちの最初のデータ応答を返送する第1のメモリ・モジュールからの第1のデータ応答が前記第2のバスの使用を開始する時間と、前記複数のメモリ・モジュールそれぞれからからのデータ応答のうちの最後のデータ応答を返送する第2のメモリ・モジュールからの第2の応答が前記第2のバスの使用を完了する時間との間のリンク・ウィンドウ内において前記各データ応答が前記第2のバスを使用する各ビジー期間を決定し、前記ウィンドウ内において前記ビジー期間以外の期間(以下、未使用期間という)がある場合に、当該未使用の期間内にデータ応答を返送するように挿入する、
    前記システム。
  2. 前記メモリ・コントローラは、前記リンク・ウィンドウ内におけるn個のビジー期間に割り当てられたn個のカウンタを含み、nは自然数である、請求項1に記載のシステム。
  3. 前記メモリ・コントローラは、前記n個のビジー期間への前記n個のカウンタの割り当てを、デクリメンタを介して更新する、請求項2に記載のシステム。
  4. 前記メモリ・コントローラは、前記n個のビジー期間への前記n個のカウンタの割り当てと、前記n個のビジー期間への前記n個のカウンタの割り当てを置換し、シフトし、および保存するグループから選択された命令とを受け取るマルチプレクサを備えている、請求項2に記載のシステム。
  5. 前記マルチプレクサは、カウンタの割り当てを出力するために、前記プロセッサが実行し得る命令を実装する回路として構成されている、請求項に記載のシステム。
  6. 複数のメモリ・モジュールをデイジー・チェーンで備えているメモリ・システムと前記メモリ・システムにリンクを介して電気的に接続されたメモリ・コントローラとの間のデータ・チャネルの利用率を高めるための方法であって、
    前記メモリ・コントローラが、要求順序を有するデータ要求を前記メモリ・システムに送信するステップと、
    前記メモリ・システムが、前記データ要求を前記メモリ・コントローラから受信し、前記データ要求に対する複数のデータ応答を前記メモリ・コントローラに送信するステップと、
    前記メモリ・コントローラが、前記複数のデータ応答を前記メモリ・システムから受信し、当該受信した複数のデータ応答それぞれを複数のキューのうちの一つに格納するステップと
    を含み、
    前記リンクは、前記メモリ・コントローラから前記メモリ・システムへデータ要求を送信するためのバス(以下、第1のバスという)と、前記メモリ・システムから前記メモリ・コントローラへデータ応答を返送するためのバス(以下、第2のバスという)を備えており、
    前記メモリ・コントローラ前記複数のデータ応答による前記第2のバスの使用を追跡して、前記複数のデータ応答が返送される順序と前記複数のキューの順序が一致するように、前記データ応答に関連付けられたタグを使わずに前記複数のキューにおいて前記複数のデータ応答を順序変更し、且つ、前記複数のメモリ・モジュールうち、前記複数のメモリ・モジュールそれぞれからからのデータ応答のうちの最初のデータ応答を返送する第1のメモリ・モジュールからの第1のデータ応答が前記第2のバスの使用を開始する時間と、前記複数のメモリ・モジュールそれぞれからからのデータ応答のうちの最後のデータ応答を返送する第2のメモリ・モジュールからの第2の応答が前記第2のバスの使用を完了する時間との間のリンク・ウィンドウ内において前記各データ応答が前記第2のバスを使用する各ビジー期間を決定し、前記ウィンドウ内において前記ビジー期間以外の期間(以下、未使用期間という)がある場合に、当該未使用の期間内にデータ応答を返送するように挿入するステップ
    をさらに含む、前記方法。
  7. 前記メモリ・コントローラは、前記リンク・ウィンドウ内におけるn個のビジー期間に割り当てられたn個のカウンタを含み、nは自然数である、請求項に記載の方法。
  8. 前記メモリ・コントローラは、前記n個のビジー期間への前記n個のカウンタの割り当てを、デクリメンタを介して更新する、請求項に記載の方法。
  9. 前記メモリ・コントローラは、前記n個のビジー期間への前記n個のカウンタの割り当てと、前記n個のビジー期間への前記n個のカウンタの割り当てを置換し、シフトし、および保存するグループから選択された命令とを受け取るマルチプレクサを備えている、請求項に記載の方法。
  10. 前記マルチプレクサは、カウンタの割り当てを出力するために、前記プロセッサが実行し得る命令を実装する回路として構成されている、請求項に記載の方法。
  11. 複数のメモリ・モジュールをデイジー・チェーンで備えているメモリ・システムと前記メモリ・システムにリンクを介して電気的に接続されたメモリ・コントローラとの間のデータ・チャネルの利用率を高めるための方法を実行するためにプロセッサが実行し得る命令を実装するコンピュータ・プログラムであって、前記プロセッサに、請求項10のいずれか一項に記載の方法の各ステップを実行させる、前記コンピュータ・プログラム。
JP2008120193A 2007-05-04 2008-05-02 データ応答を順序変更するためのシステム Expired - Fee Related JP5576030B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/744,546 US9021482B2 (en) 2007-05-04 2007-05-04 Reordering data responses using ordered indicia in a linked list
US11/744546 2007-05-04

Publications (2)

Publication Number Publication Date
JP2008276783A JP2008276783A (ja) 2008-11-13
JP5576030B2 true JP5576030B2 (ja) 2014-08-20

Family

ID=39940500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008120193A Expired - Fee Related JP5576030B2 (ja) 2007-05-04 2008-05-02 データ応答を順序変更するためのシステム

Country Status (3)

Country Link
US (1) US9021482B2 (ja)
JP (1) JP5576030B2 (ja)
TW (1) TW200910096A (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962706B2 (en) * 2008-02-14 2011-06-14 Quantum Corporation Methods and systems for improving read performance in data de-duplication storage
US20100211714A1 (en) * 2009-02-13 2010-08-19 Unisys Corporation Method, system, and apparatus for transferring data between system memory and input/output busses
US8090892B2 (en) * 2009-06-12 2012-01-03 Freescale Semiconductor, Inc. Ordered queue and methods therefor
JP5613517B2 (ja) * 2010-09-30 2014-10-22 京セラドキュメントソリューションズ株式会社 情報処理装置
JP5659817B2 (ja) * 2011-01-21 2015-01-28 ソニー株式会社 相互接続装置
US8880819B2 (en) 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses
US9032177B2 (en) 2012-12-04 2015-05-12 HGST Netherlands B.V. Host read command return reordering based on time estimation of flash read command completion
CN104657222B (zh) * 2015-03-13 2017-11-21 浪潮集团有限公司 一种面向smp调度系统的优化方法
JP2017033612A (ja) * 2015-07-29 2017-02-09 淳生 越塚 半導体記憶装置及びその制御方法
US10628340B2 (en) 2018-01-18 2020-04-21 Nxp Usa, Inc. Method for reordering out of order responses from decomposed requests in bridge IP
US11874782B1 (en) * 2018-07-20 2024-01-16 Robert Gezelter Fast mass storage access for digital computers
US11775467B2 (en) * 2021-01-14 2023-10-03 Nxp Usa, Inc. System and method for ordering transactions in system-on-chips

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2632093B1 (fr) 1988-05-25 1990-08-10 Bull Sa Memoire modulaire
US6006343A (en) * 1993-07-30 1999-12-21 Texas Instruments Incorporated Method and apparatus for streamlined testing of electrical circuits
US6286011B1 (en) * 1997-04-30 2001-09-04 Bellsouth Corporation System and method for recording transactions using a chronological list superimposed on an indexed list
US6385708B1 (en) 1998-11-16 2002-05-07 Infineon Technologies Ag Using a timing-look-up-table and page timers to determine the time between two consecutive memory accesses
US6345353B2 (en) * 1999-07-20 2002-02-05 Microchip Technology Incorporated Stack pointer with post increment/decrement allowing selection from parallel read/write address outputs
US6571332B1 (en) * 2000-04-11 2003-05-27 Advanced Micro Devices, Inc. Method and apparatus for combined transaction reordering and buffer management
US8781873B2 (en) * 2001-04-02 2014-07-15 Siebel Systems, Inc. Method and system for scheduling activities
TWI308011B (en) * 2002-08-09 2009-03-21 Interdigital Tech Corp Efficient memory allocation in a wireless transmit/receiver unit
US7570634B2 (en) * 2005-08-30 2009-08-04 Freescale Semiconductor, Inc. Priority queuing of frames in a TDMA network
US7577773B1 (en) * 2005-09-09 2009-08-18 Qlogic, Corporation Method and system for DMA optimization

Also Published As

Publication number Publication date
TW200910096A (en) 2009-03-01
US9021482B2 (en) 2015-04-28
JP2008276783A (ja) 2008-11-13
US20080276240A1 (en) 2008-11-06

Similar Documents

Publication Publication Date Title
JP5576030B2 (ja) データ応答を順序変更するためのシステム
US7181598B2 (en) Prediction of load-store dependencies in a processing agent
US7644204B2 (en) SCSI I/O coordinator
US20110119426A1 (en) List based prefetch
US8281103B2 (en) Method and apparatus for allocating storage addresses
US9304952B2 (en) Memory control device, storage device, and memory control method
US20070288694A1 (en) Data processing system, processor and method of data processing having controllable store gather windows
US8166246B2 (en) Chaining multiple smaller store queue entries for more efficient store queue usage
WO2024036985A1 (zh) 存储系统及其计算存储处理器、固体硬盘和数据读写方法
CN112955876A (zh) 具有对写入操作的改进处理的用于数据处理网络的i/o相干请求节点
US7769954B2 (en) Data processing system and method for processing data
CN116361232A (zh) 片上缓存的处理方法、装置、芯片及存储介质
CN113791892B (zh) 数据通路仲裁方法、数据通路仲裁装置及芯片
CN112015527A (zh) 管理从提交队列获取和执行命令
US20060253662A1 (en) Retry cancellation mechanism to enhance system performance
CN118295710A (zh) 多端口发射的空间回收方法、装置、设备和介质
US8990473B2 (en) Managing requests to open and closed banks in a memory system
US20220091986A1 (en) Method and apparatus for reducing the latency of long latency memory requests
JP2005339299A (ja) ストレージ装置のキャッシュ制御方法
US8452920B1 (en) System and method for controlling a dynamic random access memory
EP4064062A1 (en) System, apparatus, and method for scheduling metadata requests
JP2001109662A (ja) キャッシュ装置及び制御方法
US20140013148A1 (en) Barrier synchronization method, barrier synchronization apparatus and arithmetic processing unit
CN114153756B (zh) 面向多核处理器目录协议的可配置微操作机制
EP1115065B1 (en) Effective channel priority processing for transfer controller with hub and ports

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110124

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121025

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121106

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130111

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130111

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20130111

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130314

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20130430

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130614

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20130705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20131128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140617

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20140617

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140703

R150 Certificate of patent or registration of utility model

Ref document number: 5576030

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees