JP6072783B2 - メモリコントローラおよびかかるメモリコントローラの動作方法 - Google Patents
メモリコントローラおよびかかるメモリコントローラの動作方法 Download PDFInfo
- Publication number
- JP6072783B2 JP6072783B2 JP2014516433A JP2014516433A JP6072783B2 JP 6072783 B2 JP6072783 B2 JP 6072783B2 JP 2014516433 A JP2014516433 A JP 2014516433A JP 2014516433 A JP2014516433 A JP 2014516433A JP 6072783 B2 JP6072783 B2 JP 6072783B2
- Authority
- JP
- Japan
- Prior art keywords
- entry
- transaction
- list
- ordered
- priority
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 65
- 230000004044 response Effects 0.000 claims description 16
- 230000000694 effects Effects 0.000 claims description 9
- 230000009471 action Effects 0.000 claims description 4
- 230000002123 temporal effect Effects 0.000 claims 3
- 238000004587 chromatography analysis Methods 0.000 claims 1
- 230000008569 process Effects 0.000 description 43
- 238000010586 diagram Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000002411 adverse Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 238000001994 activation Methods 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000034303 cell budding Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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)
- Memory System (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Bus Control (AREA)
Description
Ptr:指定されたバンクに対してQoSで順序付けられたリストにおける次のアイテムに対するポインタ
バンク:このエントリに記憶されたトランザクションの対象となるバンク
QoS:このエントリに記憶されたトランザクションに対するQoS値
pQoS:Ptrによって指されるエントリ(「次のエントリ」)に記憶されたトランザクションのQoS値
V:エントリは有効である(つまりまだ処理されていないトランザクションを含む)
L:エントリが指定されたバンクリストの最後の(テール)トランザクションを含むことを示すように設定
F:エントリが指定されたバンクリストの最初の(ヘッド)トランザクションを含むことを示すように設定
HPtr:ヒットポインタ。行ヒットリスト内の次のアイテムを指す(後述するインバーストヒットを除く)
バンク:このエントリに記憶されたトランザクションの対象となるバンク
行:このエントリに記憶されたトランザクションの対象となる行
T:エントリが指定された行ヒットリストに対してテールトランザクションを含むことを示すように設定
H:エントリが指定された行ヒットリストに対してヘッドトランザクションを含むことを示すように設定
IB:エントリが規則的な行ヒットではなくインバースト行ヒットを含むことを示すように設定
Claims (28)
- メモリデバイスへのアクセスを制御するためのメモリコントローラであって、前記メモリデバイスは、それぞれが複数の行を含む複数のバンクを含み、メモリアドレスへのアクセスにかかる時間が前記メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、
前記メモリコントローラは、
少なくとも1つのトランザクションソースから発行されたトランザクションを受信するように構成されるインターフェースであって、各トランザクションは、そのトランザクションでアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記インターフェースと、
未決着のトランザクションとして、前記インターフェースによって受信された、前記メモリコントローラによって前記メモリデバイスへまだ発行されていないそれらのトランザクションを一時的に記憶するように構成される記憶装置であって、前記記憶装置は、前記記憶された未決着のトランザクションの複数の順序付けられたリストを維持し、前記複数のリストは少なくとも1つの優先順位ベースで順序付けられたリストと、少なくとも1つのアクセスタイミングで順序付けられたリストとを含み、前記少なくとも1つの優先順位ベースで順序付けられたリストは、未決着のトランザクションが存在する前記メモリデバイスの各バンクに対して別々の優先順位ベースで順序付けられたリストを含み、前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含む、前記記憶装置と、を備え、
各優先順位ベースで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、前記関連付けられた未決着のトランザクションの前記優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内において順序付けられ、各優先順位ベースで順序付けられたリストは、多数のサブリストを含み、各エントリは、各サブリストの前記エントリが同じ優先順位指標を有するトランザクションに関するように、1つのサブリスト内にあり、前記サブリストは、前記優先順位指標に基づいてそれらの優先順位ベースで順序付けられたリスト内に順序付けられ、各サブリスト内において、そのサブリストの前記エントリは、前記インターフェースによる前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられ、
各アクセスタイミングで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスがアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、
アービトレーション回路は、前記未決着のトランザクションから前記メモリデバイスに発行されるウィニング(winning)トランザクションを選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行するように構成され、前記記憶装置は、前記複数の順序付けられたリストから、前記ウィニングトランザクションのためのいかなるエントリも除去するように構成され、
前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する前記未決着のトランザクションのうちの1つを選択するように構成され、
最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有しない場合に、または前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有するが、少なくとも1つのアクセスタイミングで順序付けられたリストが現在空白である場合に、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択するように構成される、
メモリコントローラ。 - 各アクセスタイミングで順序付けられたリスト内において、前記エントリは、前記インターフェースによる前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる、請求項1に記載のメモリコントローラ。
- 特定のメモリアドレスへのアクセスタイミングが、その特定のメモリアドレスを含む行がすでに活性化されているか否かに依存して変動するように、各行がアクセスされるのに先だって、その行は活性化される必要がある、請求項1または2に記載のメモリコントローラ。
- 前記インターフェースによって受信された各トランザクションに応答して、前記複数の順序付けられたリストのうちの少なくとも1つにおいてそのトランザクションに対するエントリを割り当てるように、割り当て回路をさらに備える、請求項1から3のいずれかに記載のメモリコントローラ。
- 前記インターフェースによって受信された各トランザクションについて、前記割り当て回路は、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つおよび前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つの両方において、そのトランザクションに対するエントリを割り当てるように構成される、請求項4に記載のメモリコントローラ。
- 各優先順位ベースで順序付けられたリスト内において、各エントリは、ヘッドインジケータとテールインジケータとを含み、前記ヘッドインジケータは、前記エントリが前記優先順位ベースで順序付けられたリスト内のヘッド位置にある場合に設定され、前記テールインジケータは、前記エントリが前記優先順位ベースで順序付けられたリスト内のテール位置にある場合に設定され、
各エントリは、前記優先順位ベースで順序付けられたリスト内に、次のエントリへのポインタをさらに含み、前記次のエントリは、前記次のエントリを指したエントリよりも、前記ヘッド位置からより離れた位置にある、請求項1から5のいずれかに記載のメモリコントローラ。 - 各エントリは、前記関連付けられた未決着のトランザクションの前記優先順位指標をさらに識別する、請求項6に記載のメモリコントローラ。
- 各エントリは、前記次のエントリに関連付けられた前記未決着のトランザクションの前記優先順位指標をさらに識別する、請求項7に記載のメモリコントローラ。
- 前記インターフェースによって受信された現在のトランザクションに応答して、前記現在のトランザクションによって指定された前記メモリアドレスに配慮して選択された前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの選択された1つに、前記現在のトランザクションに対するエントリを割り当てるための割り当て回路をさらに含み、
前記割り当て回路は、前記関連付けられた未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも高いまたは等しく、前記次のエントリに関連付けられた前記未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも低い、前記選択された優先順位ベースで順序付けられたリスト内のエントリを識別するように構成され、
前記割り当て回路は、前記現在のトランザクションの新しいエントリを、前記識別されたエントリと隣接するが、前記識別されたエントリよりも前記ヘッド位置からより離れるように順序付けられる、前記選択された優先順位ベースで順序付けられたリストへ追加するようにさらに構成される、請求項8に記載のメモリコントローラ。 - 前記識別されたエントリの前記ポインタは前記新しいエントリを指すように更新され、前記新しいエントリの前記ポインタは前記次のエントリを指すように構成される、請求項9に記載のメモリコントローラ。
- 前記次のエントリ内で、前記関連付けられた未決着のトランザクションの前記優先順位指標が更新される、請求項10に記載のメモリコントローラ。
- 前記関連付けられた未決着のトランザクションの前記優先順位指標は、前記新しいエントリに関連付けられた前記現在のトランザクションの前記優先順位指標に相当するように更新される、請求項11に記載のメモリコントローラ。
- 前記新しいエントリが前記優先順位ベースで順序付けられたリスト内の前記テール位置にある場合に、前記割り当て回路によって、前記新しいエントリに前記テールインジケータを設定し、以前は前記テール位置にあった前記エントリの前記テールインジケータをクリアする、請求項9から12のいずれかに記載のメモリコントローラ。
- 前記関連付けられた未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも高いまたは等しい、前記選択された優先順位ベースで順序付けられたリストにエントリがない場合に、前記割り当て回路は、前記ヘッド位置に前記現在のトランザクションの前記新しいエントリを追加するように構成され、前記新しいエントリに前記ヘッドインジケータが設定され、前記新しいエントリの前記ポインタは、以前に前記ヘッド位置であった前記エントリを指し、前記ヘッド位置にあった前記エントリのヘッドインジケータがクリアされるように構成される、請求項9から13のうちのいずれかに記載のメモリコントローラ。
- 前記選択された優先順位ベースで順序付けられたリストが現在エントリを有しない場合に、前記割り当て回路は、前記現在のトランザクションに割り当てられた前記新しいエントリにそのヘッドインジケータとそのテールインジケータとの両方を設定するように構成される、請求項9から14のうちのいずれかに記載のメモリコントローラ。
- 各アクセスタイミングで順序付けられたリスト内において、各エントリは、ヘッドインジケータとテールインジケータとを含み、前記ヘッドインジケータは、前記エントリが前記アクセスタイミングで順序付けられたリスト内のヘッド位置にある場合に設定され、前記テールインジケータは、前記エントリが前記アクセスタイミングで順序付けられたリスト内のテール位置にある場合に設定され、
各エントリは、前記アクセスタイミングで順序付けられたリスト内の次のエントリへのポインタをさらに含み、前記次のエントリは、前記次のエントリを指したエントリよりも前記ヘッド位置からより離れた位置にある、請求項1から15のいずれかに記載のメモリコントローラ。 - 前記少なくとも1つのトランザクションソースによって発行されたバーストトランザクションは、前記メモリデバイスの複数のリンクバーストトランザクションに変換され、前記メモリコントローラは、
前記リンクバーストトランザクションのうちの最初のものを前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つのエントリに割り当て、次いで、前記エントリに関連付けられたスパーリストのスパーリストエントリに前記残りのリンクトランザクションの全てを割り当てるように構成される割り当て回路と、をさらに含む、請求項16に記載のメモリコントローラ。 - 前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、そのエントリは、それに関連付けられた前記スパーリストを有し、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記スパーリスト内にスパーリストエントリを有する前記リンクトランザクションのうちの1つを選択するように構成される、請求項17に記載のメモリコントローラ。
- 前記リンクトランザクションの全てがウィニング要求として選択される場合にのみ、前記アービトレーション動作は、それに続く以降のウィニングトランザクションとして、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの前記1つに前記次のエントリに関連付けられた前記トランザクションを選択するように構成される、請求項18に記載のメモリコントローラ。
- 前記メモリデバイスは、複数のバンクを含み、各バンクは、複数の行を含み、前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含み、
各アクセスタイミングで順序付けられたリスト内において、各エントリは、前記アクセスタイミングで順序付けられたリストが提供された前記バンクおよび行の指標を含む、請求項16から19のいずれかに記載のメモリコントローラ。 - 前記優先順位指標は、各トランザクションのフィールド内に提供される明示的な優先順位指標である、請求項1から20のいずれかに記載のメモリコントローラ。
- 前記優先順位指標はサービスの質(QoS)レベル指標である、請求項21に記載のメモリコントローラ。
- 前記所定の例外条件は、特定の未決着のトランザクションの前記優先順位指標を、高い優先順位を表すように変更させる条件であり、前記アービトレーション回路は、前記所定の例外条件が存在する場合に、前記ウィニングトランザクションとして前記特定の未決着のトランザクションを選択するように構成され、前記記憶装置は、前記複数の順序付けられたリストからそのウィニングトランザクションのためのいかなるエントリも除去するように構成される、請求項1から22のいずれかに記載のメモリコントローラ。
- 前記アクセスタイミングで順序付けられたリストのうちの1つから選択される、少なくとも連続するウィニングトランザクションの数を監視し、閾値条件の発生時にリミッタ信号をアサートするように構成されるリミッタ回路と、
前記リミッタ信号がアサートされる場合に前記所定の例外条件が検出され、前記アービトレーション回路は、前記リミッタ信号のアサートに応答し、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合でも、前記アービトレーション動作の次の実行によって、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択する、
請求項1から23のいずれかに記載のメモリコントローラ。 - 前記インターフェースによって受信された前記トランザクションは読み込みトランザクションである、請求項1から24のいずれかに記載のメモリコントローラ。
- 前記アービトレーション回路は、複数のアービトレーション動作を並列で実行するように構成される、請求項1から25のいずれかに記載のメモリコントローラ。
- メモリデバイスへのアクセスを制御する方法であって、前記メモリデバイスは、それぞれが複数の行を含む複数のバンクを含み、メモリアドレスのアクセスにかかる時間は前記メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、前記方法は、
少なくとも1つのトランザクションソースから発行されるトランザクションを受信することであって、各トランザクションはそのトランザクションについてアクセスされる前記メモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記受信することと、
未決着のトランザクションとして、出力インターフェースから前記メモリデバイスへまだ出力されていないそれらの受信されたトランザクションを記憶装置内に一時的に記憶することであって、前記記憶装置は前記記憶された未決着のトランザクションのために複数の順序付けられたリストを維持し、前記複数のリストは少なくとも1つの優先順位ベースで順序付けられたリストと少なくとも1つのアクセスタイミングで順序付けられたリストとを含み、前記少なくとも1つの優先順位ベースで順序付けられたリストは、未決着のトランザクションが存在する前記メモリデバイスの各バンクに対して別々の優先順位ベースで順序付けられたリストを含み、前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含む、前記記憶することと、
多数のエントリを有するように各優先順位ベースで順序付けられたリストを構成することであって、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは前記関連付けられた未決着のトランザクションの前記優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内に順序付けられ、各優先順位ベースで順序付けられたリストは、多数のサブリストを含み、各エントリは、各サブリストの前記エントリが同じ優先順位指標を有するトランザクションに関するように、1つのサブリスト内にあり、前記サブリストは、前記優先順位指標に基づいてそれらの優先順位ベースで順序付けられたリスト内に順序付けられ、各サブリスト内において、そのサブリストの前記エントリは、前記インターフェースによる前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる、前記構成することと、
多数のエントリを有するように各アクセスタイミングで順序付けられたリストを構成することであって、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスがアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成する、前記構成することと、
前記出力インターフェースから前記メモリデバイスに出力されるウィニングトランザクションを前記未決着のトランザクションから選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行し、前記複数の順序付けられたリストから前記ウィニングトランザクションに対するエントリを除去することと、を含み、
前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、少なくとも1つのアクセスタイミングで順序付けられたリストはまだ非空白であり、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する前記未決着のトランザクションのうちの1つを選択し、
最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有しない場合に、または前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有するが、少なくとも1つのアクセスタイミングで順序付けられたリストが現在空白である場合に、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択する、前記方法。 - メモリデバイスへのアクセスを制御するためのメモリコントローラであって、前記メモリデバイスは、それぞれが複数の行を含む複数のバンクを含み、メモリアドレスへのアクセスにかかる時間が前記メモリデバイス内の先行
するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、前記メモリコントローラは、
少なくとも1つのトランザクションソースから発行されたトランザクションを受信するためのインターフェース手段であって、各トランザクションは、そのトランザクションのためにアクセスされる前記メモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記インターフェース手段と、
前記メモリコントローラによって前記メモリデバイスへまだ発行されていない前記インターフェース手段によって受信されたそれらのトランザクションを未決着のトランザクションとして一時的に記憶するための記憶手段であって、前記記憶された未決着のトランザクションの複数の順序付けられたリスト手段を維持し、前記リスト手段は、少なくとも1つの優先順位ベースで順序付けられたリスト手段と少なくとも1つのアクセスタイミングで順序付けられたリスト手段とを含み、前記少なくとも1つの優先順位ベースで順序付けられたリスト手段は、未決着のトランザクションが存在する前記メモリデバイスの各バンクに対して別々の優先順位ベースで順序付けられたリスト手段を含み、前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段は、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリスト手段を含む、前記記憶手段と、を有し
各優先順位ベースで順序付けられたリスト手段は多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、関連付けられた未決着のトランザクションの優先順位指標に基づいてその優先順位ベースで順序付けられたリスト手段内に順序付けられ、各優先順位ベースで順序付けられたリスト手段は、多数のサブリストを含み、各エントリは、各サブリストの前記エントリが同じ優先順位指標を有するトランザクションに関するように、1つのサブリスト内にあり、前記サブリストは、前記優先順位指標に基づいてそれらの優先順位ベースで順序付けられたリスト手段内に順序付けられ、各サブリスト内において、そのサブリストの前記エントリは、前記インターフェース手段による前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられ、
各アクセスタイミングで順序付けられたリスト手段は多数のエントリを有し、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリスト手段に関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスにアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、
前記メモリコントローラはさらに、
前記未決着のトランザクションから前記メモリデバイスに発行されるウィニングトランザクションを選択するように、前記複数の順序付けられたリスト手段が参照されるアービトレーション動作を実行するためのアービトレーション手段を含み、
前記記憶手段は、前記複数の順序付けられたリスト手段から、前記ウィニングトランザクションに対するエントリを除去し、
前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段のうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段はまだ非空白であり、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段内にエントリを有する前記未決着のトランザクションのうちの1つを選択し、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段のうちの1つにエントリを有しない場合に、または前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段のうちの1つにエントリを有するが、少なくとも1つのアクセスタイミングで順序付けられたリスト手段が現在空白である場合に、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリスト手段のうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択するように構成される、前記メモリコントローラ。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/067,775 | 2011-06-24 | ||
US13/067,775 US8775754B2 (en) | 2011-06-24 | 2011-06-24 | Memory controller and method of selecting a transaction using a plurality of ordered lists |
PCT/GB2012/051203 WO2012175929A1 (en) | 2011-06-24 | 2012-05-29 | A memory controller and method of operation of such a memory controller |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014517431A JP2014517431A (ja) | 2014-07-17 |
JP6072783B2 true JP6072783B2 (ja) | 2017-02-01 |
Family
ID=46229885
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014516433A Active JP6072783B2 (ja) | 2011-06-24 | 2012-05-29 | メモリコントローラおよびかかるメモリコントローラの動作方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US8775754B2 (ja) |
EP (1) | EP2724240B1 (ja) |
JP (1) | JP6072783B2 (ja) |
KR (1) | KR101883155B1 (ja) |
CN (1) | CN103620570B (ja) |
IL (1) | IL229736A (ja) |
MY (1) | MY165068A (ja) |
RU (1) | RU2597520C2 (ja) |
WO (1) | WO2012175929A1 (ja) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101292309B1 (ko) * | 2011-12-27 | 2013-07-31 | 숭실대학교산학협력단 | 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체 |
KR101949382B1 (ko) * | 2012-04-04 | 2019-02-18 | 삼성전자주식회사 | 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법 |
US9535860B2 (en) * | 2013-01-17 | 2017-01-03 | Intel Corporation | Arbitrating memory accesses via a shared memory fabric |
US9606850B2 (en) * | 2013-03-12 | 2017-03-28 | Arm Limited | Apparatus and method for tracing exceptions |
US9396109B2 (en) * | 2013-12-27 | 2016-07-19 | Qualcomm Incorporated | Method and apparatus for DRAM spatial coalescing within a single channel |
GB2525238B (en) | 2014-04-17 | 2021-06-16 | Advanced Risc Mach Ltd | Hazard checking control within interconnect circuitry |
US9442878B2 (en) | 2014-04-17 | 2016-09-13 | Arm Limited | Parallel snoop and hazard checking with interconnect circuitry |
GB2525237B (en) | 2014-04-17 | 2021-03-17 | Advanced Risc Mach Ltd | Reorder buffer permitting parallel processing operations with repair on ordering hazard detection within interconnect circuitry |
US9779025B2 (en) | 2014-06-02 | 2017-10-03 | Micron Technology, Inc. | Cache architecture for comparing data |
US11243898B2 (en) * | 2014-08-01 | 2022-02-08 | Arm Limited | Memory controller and method for controlling a memory device to process access requests issued by at least one master device |
GB2529217A (en) * | 2014-08-14 | 2016-02-17 | Advanced Risc Mach Ltd | Transmission control checking for interconnect circuitry |
US10013385B2 (en) | 2014-11-13 | 2018-07-03 | Cavium, Inc. | Programmable validation of transaction requests |
US20160139806A1 (en) * | 2014-11-13 | 2016-05-19 | Cavium, Inc. | Independent Ordering Of Independent Transactions |
GB2533808B (en) * | 2014-12-31 | 2021-08-11 | Advanced Risc Mach Ltd | An apparatus and method for issuing access requests to a memory controller |
US10241941B2 (en) * | 2015-06-29 | 2019-03-26 | Nxp Usa, Inc. | Systems and methods for asymmetric memory access to memory banks within integrated circuit systems |
CN106469127B (zh) * | 2015-08-21 | 2019-11-15 | 深圳市中兴微电子技术有限公司 | 一种数据访问装置及方法 |
KR102408613B1 (ko) * | 2015-08-27 | 2022-06-15 | 삼성전자주식회사 | 메모리 모듈의 동작 방법, 및 메모리 모듈을 제어하는 프로세서의 동작 방법, 및 사용자 시스템 |
KR20170060203A (ko) | 2015-11-23 | 2017-06-01 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10169235B2 (en) * | 2015-12-15 | 2019-01-01 | Apple Inc. | Methods of overriding a resource retry |
GB2557944B (en) * | 2016-12-19 | 2020-02-12 | Advanced Risc Mach Ltd | Transaction handling |
CN107273059A (zh) * | 2017-07-06 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种存储命令的配置方法及系统 |
US11360934B1 (en) | 2017-09-15 | 2022-06-14 | Groq, Inc. | Tensor streaming processor architecture |
US11114138B2 (en) * | 2017-09-15 | 2021-09-07 | Groq, Inc. | Data structures with multiple read ports |
US11243880B1 (en) | 2017-09-15 | 2022-02-08 | Groq, Inc. | Processor architecture |
US11868804B1 (en) | 2019-11-18 | 2024-01-09 | Groq, Inc. | Processor instruction dispatch configuration |
US11170307B1 (en) | 2017-09-21 | 2021-11-09 | Groq, Inc. | Predictive model compiler for generating a statically scheduled binary with known resource constraints |
US10732897B2 (en) | 2018-07-03 | 2020-08-04 | Western Digital Technologies, Inc. | Quality of service based arbitrations optimized for enterprise solid state drives |
US10817219B2 (en) | 2018-09-12 | 2020-10-27 | Apple Inc. | Memory access scheduling using a linked list |
US10628355B2 (en) * | 2018-09-19 | 2020-04-21 | Arm Limited | Apparatus and method for processing burst read transactions |
US11301546B2 (en) | 2018-11-19 | 2022-04-12 | Groq, Inc. | Spatial locality transform of matrices |
CN111935100B (zh) * | 2020-07-16 | 2022-05-20 | 锐捷网络股份有限公司 | Flowspec规则下发方法、装置、设备及介质 |
US11494120B2 (en) * | 2020-10-02 | 2022-11-08 | Qualcomm Incorporated | Adaptive memory transaction scheduling |
CN116521096B (zh) * | 2023-07-03 | 2023-09-22 | 摩尔线程智能科技(北京)有限责任公司 | 存储器访问电路及存储器访问方法、集成电路和电子设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2325061B (en) * | 1997-04-30 | 2001-06-06 | Advanced Risc Mach Ltd | Memory access protection |
JP2912609B2 (ja) * | 1997-05-02 | 1999-06-28 | 松下電器産業株式会社 | 複数アドレス保持記憶装置 |
US6088772A (en) * | 1997-06-13 | 2000-07-11 | Intel Corporation | Method and apparatus for improving system performance when reordering commands |
US6499090B1 (en) * | 1999-12-28 | 2002-12-24 | Intel Corporation | Prioritized bus request scheduling mechanism for processing devices |
US6578117B2 (en) * | 2001-10-12 | 2003-06-10 | Sonics, Inc. | Method and apparatus for scheduling requests using ordered stages of scheduling criteria |
CN100432958C (zh) * | 2003-01-27 | 2008-11-12 | 松下电器产业株式会社 | 存储器控制装置 |
AU2003900733A0 (en) * | 2003-02-19 | 2003-03-06 | Canon Kabushiki Kaisha | Dynamic Reordering of Memory Requests |
US7299324B2 (en) * | 2003-11-05 | 2007-11-20 | Denali Software, Inc. | Reactive placement controller for interfacing with banked memory storage |
US7328307B2 (en) * | 2004-01-22 | 2008-02-05 | Tquist, Llc | Method and apparatus for improving update performance of non-uniform access time persistent storage media |
KR20060039719A (ko) * | 2004-11-03 | 2006-05-09 | 삼성전자주식회사 | 시스템 버스 성능 개선을 위한 상호접속 장치 |
US7356631B2 (en) | 2005-01-21 | 2008-04-08 | Himax Technologies, Inc. | Apparatus and method for scheduling requests to source device in a memory access system |
US8001338B2 (en) * | 2007-08-21 | 2011-08-16 | Microsoft Corporation | Multi-level DRAM controller to manage access to DRAM |
CN100507885C (zh) * | 2007-09-04 | 2009-07-01 | 北京中星微电子有限公司 | 存储器访问的仲裁方法、系统和设备 |
US8046559B2 (en) * | 2008-03-27 | 2011-10-25 | Intel Corporation | Memory rank burst scheduling |
-
2011
- 2011-06-24 US US13/067,775 patent/US8775754B2/en active Active
-
2012
- 2012-05-29 KR KR1020147000010A patent/KR101883155B1/ko active IP Right Grant
- 2012-05-29 RU RU2014102242/08A patent/RU2597520C2/ru active
- 2012-05-29 JP JP2014516433A patent/JP6072783B2/ja active Active
- 2012-05-29 WO PCT/GB2012/051203 patent/WO2012175929A1/en active Application Filing
- 2012-05-29 MY MYPI2013702369A patent/MY165068A/en unknown
- 2012-05-29 EP EP12726477.8A patent/EP2724240B1/en active Active
- 2012-05-29 CN CN201280031025.7A patent/CN103620570B/zh active Active
-
2013
- 2013-12-01 IL IL229736A patent/IL229736A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN103620570B (zh) | 2017-02-15 |
CN103620570A (zh) | 2014-03-05 |
RU2014102242A (ru) | 2015-07-27 |
MY165068A (en) | 2018-02-28 |
KR101883155B1 (ko) | 2018-07-30 |
US20120331197A1 (en) | 2012-12-27 |
WO2012175929A1 (en) | 2012-12-27 |
KR20140048186A (ko) | 2014-04-23 |
US8775754B2 (en) | 2014-07-08 |
IL229736A0 (en) | 2014-01-30 |
IL229736A (en) | 2017-07-31 |
EP2724240B1 (en) | 2015-06-24 |
EP2724240A1 (en) | 2014-04-30 |
JP2014517431A (ja) | 2014-07-17 |
RU2597520C2 (ru) | 2016-09-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6072783B2 (ja) | メモリコントローラおよびかかるメモリコントローラの動作方法 | |
US9639280B2 (en) | Ordering memory commands in a computer system | |
US8645639B2 (en) | Hierarchical memory arbitration technique for disparate sources | |
US6092158A (en) | Method and apparatus for arbitrating between command streams | |
KR101270848B1 (ko) | 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기 | |
US8560796B2 (en) | Scheduling memory access requests using predicted memory timing and state information | |
US10503670B2 (en) | Dynamic per-bank and all-bank refresh | |
CN111742305A (zh) | 调度具有不统一等待时间的存储器请求 | |
US10152434B2 (en) | Efficient arbitration for memory accesses | |
US8505016B2 (en) | Enhanced shortest-job-first memory request scheduling | |
CN104137081A (zh) | 偏移在先的高等待时间操作的存储器重排序队列 | |
KR102106541B1 (ko) | 공유 리소스 액세스 중재 방법 및 이를 수행하기 위한 공유 리소스 액세스 중재 장치 및 공유 리소스 액세스 중재 시스템 | |
EP3361388B1 (en) | Distribution of master device tasks among bus queues | |
US20080059672A1 (en) | Methods and Apparatus for Scheduling Prioritized Commands on a Bus | |
US9195621B2 (en) | System and method for assigning memory access transfers between communication channels | |
US12073114B2 (en) | Stacked command queue | |
CN115202842A (zh) | 任务调度方法及装置 | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
JP2006172164A (ja) | バス調停システム及びバス調停方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A529 | Written submission of copy of amendment under article 34 pct |
Free format text: JAPANESE INTERMEDIATE CODE: A529 Effective date: 20140220 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150520 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160629 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160721 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20161012 |
|
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: 20161209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20161228 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6072783 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |