JP2014517431A - メモリコントローラおよびかかるメモリコントローラの動作方法 - Google Patents

メモリコントローラおよびかかるメモリコントローラの動作方法 Download PDF

Info

Publication number
JP2014517431A
JP2014517431A JP2014516433A JP2014516433A JP2014517431A JP 2014517431 A JP2014517431 A JP 2014517431A JP 2014516433 A JP2014516433 A JP 2014516433A JP 2014516433 A JP2014516433 A JP 2014516433A JP 2014517431 A JP2014517431 A JP 2014517431A
Authority
JP
Japan
Prior art keywords
transaction
entry
ordered
list
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.)
Granted
Application number
JP2014516433A
Other languages
English (en)
Other versions
JP6072783B2 (ja
Inventor
アンドリュー キャンベル、マイケル
エドウィン リグレー、クリストファー
スタンレイ フィーロ、ブレット
Original Assignee
エイアールエム リミテッド
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 エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2014517431A publication Critical patent/JP2014517431A/ja
Application granted granted Critical
Publication of JP6072783B2 publication Critical patent/JP6072783B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • G06F13/1631Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests through address comparison

Abstract

不均等アクセスタイミング特性を有するタイプのメモリデバイスへのアクセスを制御するために、メモリコントローラが提供される。メモリコントローラは少なくとも1つのトランザクションソースから発行されたトランザクションを受信するためのインターフェースを有し、各トランザクションは、そのトランザクションのためにアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられる優先順位指標を含む。インターフェースによって受信され、まだメモリデバイスに発行されていないトランザクションを、未決着のトランザクションとして一時的に記憶するために、バッファが使用され、バッファは、少なくとも1つの優先順位ベースで順序付けられたリストと、少なくとも1つのアクセスタイミングで順序付けられたリストとを含む、記憶された未決着のトランザクションのための複数の順序付けられたリストを維持する。各優先順位ベースで順序付けられたリストは多数のエントリを有し、各エントリは未決着のトランザクションのうちの1つに関連付けられ、各エントリは、関連付けられた未決着のトランザクションの優先順位指標に基づいてその優先順位ベースで順序付けられたリスト内に順序付けられる。各アクセスタイミングで順序付けられたリストは多数のエントリを有し、各エントリは未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられた未決着のトランザクションは、グループ内の1つのトランザクションのメモリアドレスがアクセスされると、メモリデバイスによってそのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成する。アービトレーション回路は、複数の順序付けられたリストが、未決着のトランザクションからメモリデバイスに発行されるウィニングトランザクションを選択するように参照される、アービトレーション動作を実行する。次いで、ウィニングトランザクションに対するエントリが、複数の順序付けられたリストから除去される。アービトレーション動作が実行される時に、以前に選択されたウィニングトランザクションが、特定のアクセスタイミングで順序付けられたリストにエントリを有し、アクセスタイミングで順序付けられたリストがまだ非空白である場合、アービトレーション動作は、所定の例外条件の非存在下で、ウィニングトランザクションとして、アクセスタイミングで順序付けられたリストにエントリを有する未決着のトランザクションのうちの1つを選択するように構成される。かかるアプローチにより、種々のトランザクションの優先順位が考慮されることを確実としながら、メモリアクセス時間を向上させるために、トランザクションの再順序付けの間でバランスが達成されることを可能にする。

Description

本発明はメモリコントローラおよびかかるメモリコントローラの動作方法に関し、より詳細には、メモリアドレスのアクセスにかかる時間が、メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等(non-uniform)アクセスタイミング特性を有するタイプのメモリデバイスへのアクセスを制御するための、メモリコントローラに関する。
現代の多くのデータ処理システムは、不均等アクセスタイミング特性を有するメモリデバイスを使用する。例えば、多くの場合、メモリデバイス内のメモリアドレスの特定の行へのアクセスを可能にすることに伴い初期時間オーバーヘッドが生じるが、その行内のアドレスに対してアクセスのシーケンスが生じる場合、その初期オーバーヘッドは、複数のアクセスにおいて少しづつ償却することができる。しかしながら、シーケンスの各アクセスが異なる行にアクセスする場合、行を有効化するオーバーヘッドはアクセス毎に別々に生じるため、全てが同じ行にアクセスするアクセスのシーケンスと比較した場合に、かかるアクセスのシーケンスについてより長いアクセスタイミング特性がもたらされる。
上記の性質を示す1つのメモリデバイスのタイプは、複数のバンクを含むメモリデバイスであり、各バンクは複数の行を含み、各行はその行にアクセスする前に活性化する必要がある。かかるメモリデバイスの一例はDRAM(動的ランダムアクセスメモリ)メモリデバイスである。その行にアクセスする前に各行を活性化する必要があるため、トランザクションによって指定された特定のメモリアドレスのアクセスタイミングは、そのメモリアドレスを含む行が、現在、既に活性化されているかどうかに依存して変動すると考えられる。
アクセスする前に行を活性化しなければならないため、上述のパフォーマンスペナルティが生じるだけでなく、行の活性化プロセスの実行中に消費される電力による、電力消費ペナルティも生じる。したがって、アクセス時間の向上を試みるように、および特に、その行が活性化された場合に特定の行に対して可能な複数のアクセスが行われることを確実にするように、かかるメモリに発行されるトランザクションを再順序付け(reorder)することが望ましいと考えられる。Proceedings of the 27th International Symposium on Computer Architecture 2000,14 June 2000, pages 128−138に記載される、S Rixner et al,Computer Systems Laboratory,Stanford University,California,USAによる記事「Memory Access Scheduling」は、DRAMアーキテクチャ、およびDRAMの不均等アクセス時間を有効利用するために、メモリ動作を再順序付けするように使用可能な多数のメモリアクセススケジューリング技術について記載している。
メモリ帯域幅は、種々のタイプのシステム、例えばメディア処理システムにおけるより高いパフォーマンスの実現における制限要因となるため、測定されたアクセス時間を削減するためにメモリ動作を再順序付けするためのかかる技術は非常に有益であり得る。しかしながら、多くの現実の用途において、かかるメモリデバイスを組み込むシステム内の他の測定基準(metrics)を考慮することも必要である。特に、メモリアクセスタイミングを最適化するためにメモリアクセス再順序付けが単独で実行される場合、かかる再順序付けが、システムの別の測定基準に許容不可能なレベルまで悪影響を与えかねない可能性がある。
一例として、ある形式の優先順位指標はデータ処理システム内で発行される各トランザクションに関連付けられることが多い。これは、トランザクションを発行するマスターデバイスによって追加される明示的な優先順位指標にしてもよい、またはトランザクションから推測される非明示的な優先順位指標にしてもよい。例えば、他のマスターデバイスによって実行されているアクティビティよりもあるマスターデバイスのアクティビティがより重要である(または少なくともより待ち時間に対する許容度が低い)ことが理解され得、また、こうして、かかるマスターデバイスによって発行されるトランザクションを、推測されるより高い優先順位を有するように構成することができる。多くの場合、かかる優先順位指標は、それらのトランザクションで必要なサービスの質を示し、このため、アクセス時間を削減するためにメモリデバイスに発行されるトランザクションを再順序付けしたいという希望とかかるサービスの質の要件とのバランスを取ることを確実にすることが重要である。
したがって、かかるバランスを実現することができる向上したメモリコントローラを提供することが望ましい。
第1の態様から見ると、本発明は、メモリデバイスへのアクセスを制御するためのメモリコントローラを提供し、メモリデバイスは、メモリアドレスへのアクセスにかかる時間がメモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、メモリコントローラは、少なくとも1つのトランザクションソースから発行されたトランザクションを受信するように構成されるインターフェースであって、各トランザクションは、そのトランザクションでアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、インターフェースと、未決着の(pending)トランザクションとして、インターフェースによって受信されメモリコントローラによってメモリデバイスへまだ発行されていないトランザクションを一時的に記憶するように構成される記憶装置であって、記憶装置は、記憶された未決着のトランザクションの複数の順序付けられたリストを維持し、複数のリストは少なくとも1つの優先順位ベースで順序付けられたリストと、少なくとも1つのアクセスタイミングで順序付けられたリストとを含む、記憶装置と、を備え、各優先順位ベースで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、関連付けられた未決着のトランザクションの優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内において順序付けられ、各アクセスタイミングで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられる未決着のトランザクションは、前記グループ内の1つのトランザクションのメモリアドレスがアクセスされると、不均等アクセスタイミング特性に配慮したメモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、アービトレーション回路は、前記未決着のトランザクションからメモリデバイスに発行されるウィニングトランザクションを選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行するように構成され、記憶装置は、複数の順序付けられたリストから、ウィニングトランザクションのためのいかなるエントリも除去するように構成され、アービトレーション動作が実行される場合に、最後にアービトレーション動作が実行された時に選択されたウィニングトランザクションは、少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合、アービトレーション動作は、所定の例外条件が存在しない限り,ウィニング(winning)トランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する未決着のトランザクションのうちの1つを選択するように構成される。
本発明に従い、メモリデバイスに送信されるように待機している未決着のトランザクションを追跡するために2つの異なるタイプの順序付けられたリストが使用され、第1のタイプのリストは、優先順位ベースで順序付けられたリストであり、第2のタイプのリストはアクセスタイミングで順序付けられたリストである。アービトレーション(arbitration:調停)回路は、メモリデバイスに発行されるウィニングトランザクションを選択するためにアービトレーション動作を実行する場合にリストの両方のタイプを参照するように構成される。ウィニングトランザクションがアクセスタイミングで順序付けられたリストのうちの1つから選択されると、アービトレーション回路は(所定の例外条件の存在下で)そのアクセスタイミングで順序付けられたリストから以降のウィニングトランザクションを選択する傾向があり、一方で、そのアクセスタイミングで順序付けられたリストは、未決着のトランザクションに対するエントリを含み続ける。
かかるアプローチにより、メモリデバイス内のアクセスタイミングを向上させるための未決着のトランザクションの再順序付けと、その高い優先順位のトランザクションが過度に遅延しないことを確実にするための、未決着のトランザクションに関連付けられた優先順位指標を考慮する必要性との間でバランスを取ることが可能になる。
一実施形態において、最後にアービトレーション動作が実行された時に選択されたウィニングトランザクションが、少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有しない場合、または、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有するが、その少なくとも1つのアクセスタイミングで順序付けられたリストは現在空白である場合、アービトレーション動作は、ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する未決着のトランザクションを選択するように構成される。これにより、より高い優先順位の未決着のトランザクションが適時にサービスされる。
一実施形態において、特定のアクセスタイミングで順序付けられたリストによって参照されるエントリ数が非常に多くなる場合でも、高い優先順位の未決着のトランザクションが適時にサービスされることを確実にするためにさらなるステップを実行できる。特に、一実施形態において、メモリコントローラは、前記アクセスタイミングで順序付けられたリストのうちの1つから選択された少なくとも連続するウィニングトランザクションの数を監視し、閾値条件の発生時にリミッタ信号をアサートするように構成されるリミッタ回路をさらに含む。前記リミッタ信号がアサートされる場合に所定の例外条件が検出され、最後にアービトレーション動作が実行された時に選択されたウィニングトランザクションが、少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合でも、アービトレーション回路は、アービトレーション動作の次の実行によって、ウィニングトランザクションとして、少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する未決着のトランザクションを選択させるように、リミッタ信号のアサートに応答する。
かかる一実施形態において、閾値条件は、いくつかの最大カウント値の形態を取るのみでもよく、カウント値は、優先順位ベースで順序付けられたリストからウィニングトランザクションが選択されるたびにリセットされ、アクセスタイミングで順序付けられたリストからウィニングトランザクションが選択されるたびに増分する。したがって、アービトレーション回路が特定のアクセスタイミングで順序付けられたリストからウィニング要求を連続的に選択する場合に、カウント値は、閾値条件に達するポイントまで増加すると考えられる。閾値条件に達すると、アービトレーション回路は、次いで、アクセスタイミングで順序付けられたリストがまだ空白ではない場合でも、関連する優先順位ベースで順序付けられたリストから次のウィニングトランザクションを選択する。
修正された実施形態において、リミッタ回路はカウンタの形態を取るだけではなくてもよいが、その代わりに、特定のアクセスタイミングで順序付けられたリストから選択されるウィニングトランザクションの数の増加を、優先順位の低下と関連付けてもよい。次いで、リミッタ回路に、関連する優先順位ベースで順序付けられたリスト内の最も高い優先順位の未決着のトランザクションの指標が提供される場合、優先順位ベースで順序付けられたリストからの次のウィニングトランザクションの選択に切り替える代わりに、アクセスタイミングで順序付けられたリストからウィニングトランザクションの選択を停止することが適切であるポイントを決定することができる。
優先順位ベースで順序付けられたリストは、種々の方法で構成することができる。しかしながら、一実施形態において、各優先順位ベースで順序付けられたリストは、多数のサブリストを含み、各エントリは各サブリストのエントリが同じ優先順位指標を有するトランザクションに関するように、1つのサブリスト内にあり、サブリストは優先順位指標に基づいてそれらの優先順位ベースで順序付けられたリスト内において順序付けられ、各サブリスト内において、そのサブリストのエントリは、前記インターフェースによる関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる。このため、かかる実施形態において、各優先順位ベースで順序付けられたリストは、未決着のトランザクションおよび同じ優先順位の指標値を有するトランザクションの間で維持される一時的な順序付けに関連付けられた優先順位の指標値毎に、一組のサブリストを含む。
一実施形態において、各アクセスタイミングで順序付けられたリスト内において、エントリは、前記インターフェースによって関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる。
メモリデバイスは、種々の形態を取ることができる。しかしながら、一実施形態において、メモリデバイスは、複数のバンクを含み、前記少なくとも1つの優先順位ベースで順序付けられたリストは、未決着のトランザクションが存在する各バンクに対して別々の優先順位ベースで順序付けられたリストを含む。
さらに、一実施形態において、各バンクは複数の行を含み、指定されたメモリアドレスに対するアクセスタイミングが、その指定されたメモリアドレスを含む行が既にアクティブ化されているかどうかに依存して変動するように、各行は、その行にアクセスする前に活性化することが必要である。かかる構造を有するあるタイプのメモリデバイスは、DRAM(動的ランダムアクセスメモリ)メモリデバイスである。かかる実施形態において、前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含んでもよい。
一実施形態において、メモリコントローラは、前記インターフェースによって受信された各トランザクションに応答して、前記複数の順序付けられたリストのうちの少なくとも1つに、そのトランザクションに対するエントリを割り当てるための割り当て回路をさらに含む。各トランザクションがインターフェースによって受信される時に割り当てを実行することにより、クリティカルパスから割り当てプロセスを除去できる。特に、ウィニング要求をアービトレーション回路によって選択する必要がある時に、アービトレーション動作は、一時的記憶装置内に維持される複数の順序付けられたリストを参照することによって、迅速に簡便に実行されてもよい。
特定の一実施形態において、前記インターフェースによって受信された各トランザクションについて、割り当て回路は、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つおよび前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つの両方に、そのトランザクションに対するエントリを割り当てるように構成される。このため、各未決着のトランザクションは、典型的には2つのエントリ、つまり、優先順位ベースで順序付けられたリスト内の1つおよびアクセスタイミングで順序付けられたリスト内の1つを有する。
各優先順位ベースで順序付けられたリスト内のエントリは、種々の形態を取ることができる。しかしながら、一実施形態において、各優先順位ベースで順序付けられたリスト内において、各エントリはヘッドインジケータおよびテールインジケータを含み、エントリが優先順位ベースで順序付けられたリスト内のヘッド位置にある場合はヘッドインジケータが設定され、エントリが優先順位ベースで順序付けられたリスト内のテール位置にある場合にはテールインジケータが設定される。各エントリは、優先順位ベースで順序付けられたリスト内の次のエントリへのポインタをさらに含み、次のエントリは、次のエントリを指したエントリよりもヘッド位置からより離れた位置にある。これは、優先順位ベースで順序付けられたリストのヘッドおよびテール位置において明確にフラグ設定を行いながら、各優先順位ベースで順序付けられたリストにおける種々のエントリの間の相対的な順序付けを維持するための簡便かつ効果的なメカニズムを提供する。
一実施形態において、各エントリは、さらに、関連付けられた未決着のトランザクションの優先順位指標を識別する。これは、新しいエントリが優先順位ベースで順序付けられたリストに割り当てられ必要がある場合に必要な割り当てプロセスに役立つ。
特定の一実施形態において、各エントリは、前記次のエントリに関連付けられた未決着のトランザクションの優先順位指標をさらに識別する。割り当てプロセスは、次いで、その関連付けられた未決着のトランザクションの優先順位指標と次のエントリに関連付けられた未決着のトランザクションの優先順位指標との特定の組み合わせを有する特定のエントリを見つけるために、エントリを解析することができるため、これは、割り当てプロセスにおいてさらに役立つ。
特に、一実施形態において、メモリコントローラは、前記インターフェースによって受信された現在のトランザクションに応答して、現在のトランザクションによって指定されたメモリアドレスを考慮して選択された前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの選択された1つに前記現在のトランザクションのエントリを割り当てるために、割り当て回路をさらに含む。割り当て回路は、関連付けられた未決着のトランザクションの優先順位指標が現在のトランザクションの優先順位指標よりも大きいまたはこれと等しく、前記次のエントリに関連付けられた未決着のトランザクションの優先順位指標が現在のトランザクションの優先順位指標未満である、選択された優先順位ベースで順序付けられたリスト内のエントリを識別するように構成される。次いで、割り当て回路は、現在のトランザクションの新しいエントリを、前記識別されたエントリに隣接するが、前記識別されたエントリよりもヘッド位置からより離れるように順序付けられる、選択された優先順位ベースで順序付けられたリストに追加するようにさらに構成される。
上記の解析中、検討中の識別されたエントリに次のエントリがない場合、つまり識別されたエントリがリスト内のテール位置にある場合、次のエントリに関連付けられた未決着のトランザクションの優先順位指標は、適切な場合、リスト内のテール位置のエントリが、上記のメカニズムを使用して識別でき、次いで、リストの新しいテール位置を形成する位置に新しいエントリを追加できるように、現在のトランザクションの優先順位指標よりも低いものと解釈されるいくつかの所定の値に設定されてもよい。
一実施形態において、識別されたエントリのポインタは新しいエントリを指すように更新され、新しいエントリのポインタは、前記次のエントリを指すように構成される。
随意な拡張(optional enhancement)に従い、その次のエントリに関連付けられた未決着のトランザクションの優先順位指標を更新するように、例えばその次のエントリに関連付けられた未決着のトランザクションの上げられた優先順位を示すために、新しいエントリが挿入された時に上記の次のエントリも修正できる。例えば所定の大きさだけ優先順位指標を増加させるだけで、これを行うことができる多数の方法が存在する。しかしながら、一実施形態において、関連付けられた未決着のトランザクションの優先順位指標は、新しいエントリに関連付けられた現在のトランザクションの優先順位指標に相当するように更新される。(本明細書において「バディ(buddying)」スキームとも称される。)かかる優先順位向上技術は、より低い優先順位トランザクションの無限のブロックを防止することができるため、予測可能な待ち時間計算が可能になる。一実施形態において、新しいエントリの後の次のエントリのみに影響するように優先順位向上技術を構成することができるが、代替の実施形態において、新しく挿入されたエントリの後で1つよりも多いエントリの優先順位を上げるように使用してもよい。
一実施形態において、優先順位ベースで順序付けられたリスト内のテール位置に新しいエントリがある場合、割り当て回路によって、新しいエントリのテールインジケータが設定され、以前はテール位置にあったエントリのテールインジケータがクリアされる。
さらに、一実施形態において、関連付けられた未決着のトランザクションの優先順位指標が現在のトランザクションの優先順位指標よりも大きいまたは等しい選択された優先順位ベースで順序付けられたリスト内にエントリが存在しない場合、割り当て回路は、ヘッド位置において現在のトランザクションの新しいエントリを追加するように構成され、新しいエントリのヘッドインジケータが設定され、新しいエントリのポインタは、前はヘッド位置にあったエントリを指すように構成され、以前はヘッド位置にあったエントリはそのヘッドインジケータをクリアしている。
上記に記載の割り当てプロセスの実行時において、選択された優先順位ベースで順序付けられたリストは、例えば割り当てられる現在のトランザクションが、未決着のトランザクションが存在しないバンクに向けられているため、現在、エントリを有しなくてもよい。その場合、割り当て回路は、現在のトランザクションに割り当てられる新しいエントリによって、そのヘッドインジケータおよびそのテールインジケータの両方を設定するように構成されてもよく、そのエントリは、実際には、関連する優先順位ベースで順序付けられたリストを作成し、そのリストのエントリにすぎない。
アクセスタイミングで順序付けられたリスト内の各エントリを構成できる多数の方法が存在する。しかしながら、一実施形態において、各エントリは、優先順位ベースで順序付けられたリスト内のエントリと同様の構成を有し、その各エントリにおいて、ヘッドインジケータおよびテールインジケータを含み、エントリがアクセスタイミングで順序付けられたリストのヘッド位置にある場合にはヘッドインジケータが設定され、エントリがアクセスタイミングで順序付けられたリストのテール位置にある場合にはテールインジケータが設定され、各エントリは、アクセスタイミングで順序付けられたリストにおいて次のエントリへのポインタをさらに含み、次のエントリは、該次のエントリを指すエントリよりもヘッド位置から離れた位置にある。
一実施形態において、トランザクションソースによって発行されたバーストトランザクションは、メモリコントローラによって受信されてもよい。かかるトランザクションソースがバーストトランザクションに対して指定し得るバーストサイズが、メモリデバイスによって可能にされる最大バーストサイズを超え得る場合が多く、したがって、かかるバーストトランザクションは、メモリデバイスの複数のリンクバーストトランザクションに変換されてもよい。各リンクバーストトランザクションは、メモリコントローラによって別々のトランザクションとして処理される。一実施形態において、メモリコントローラ内の割り当て回路は、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つ内のエントリに、前記リンクバーストトランザクションの最初のものを割り当て、次いで残りのリンクトランザクションの全てを、前記エントリに関連付けられたスパーリスト(spur-list:拍車リスト)のスパーリストエントリに割り当てるように、構成できる。
かかる方法で種々のリンクバーストトランザクションを構成することにより、アービトレーション回路が、特別な場合として、リンクバーストトランザクションを処理することを可能にする。特に、アービトレーション動作の実行時に、アービトレーション動作が最後に実行される時に選択されたウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つ内にエントリを有し、そのエントリがそれに関連付けられた前記スパーリストを有する場合に、アービトレーション動作は、ウィニングトランザクションとして、前記スパーリスト内にスパーリストエントリを有するリンクトランザクションのうちの1つを選択するように構成される。かかるアプローチにより、残りのリンクバーストトランザクションの優先順位が設定される。これは、システムのその他の場所においてあてはまるため有益であり、かかるバーストトランザクションが完了するのを待ちながら特定のリソースを占有してもよく、したがって、メモリデバイスが最初のリンクトランザクションの処理によってかかるバーストトランザクションを処理開始する場合に、残りのリンクトランザクションを迅速に連続して処理できる場合に、非常に有益である。
一実施形態において、ウィニング要求としてリンクトランザクションの全てが選択された場合のみ、アービトレーション動作は、以降のウィニングトランザクションとして、アクセスタイミングで順序付けられたリスト内の次のエントリに関連付けられたトランザクションを選択するように構成される。
各バンクが複数の行を含み、複数のバンクを含むメモリデバイスの前述の例を考慮すると、次いで一実施形態において、各アクセスタイミングで順序付けられたリスト内において、各エントリは、アクセスタイミングで順序付けられたリストの指標が提供されるバンクおよび行の指標を含む。
各トランザクションに関連付けられた優先順位指標は、種々の形態を取ることができる。それはトランザクションの詳細から生成された非明示的な優先順位の指標(例えばトランザクションを発行するマスターデバイスの指標)であってもよいが、一実施形態において、優先順位指標は、トランザクションのフィールド内に提供される明示的な優先順位指標である。特定の一実施形態において、優先順位指標はサービスの質(QoS)レベルの指標である。
存在する場合、そのアクセスタイミングで順序付けられたリストから先行するトランザクションが選択された場合にアクセスタイミングで順序付けられたリストからのウィニングトランザクションの選択に対するアービトレーション動作のバイアスを中断する所定の例外条件は、種々の形態を取ることができる。しかしながら、一実施形態において、所定の例外条件は、特定の未決着のトランザクションの優先順位指標を、高い優先順位を表すように変更する条件であり、アービトレーション回路は、その所定の例外条件の存在下で、ウィニングトランザクションとして前記特定の未決着のトランザクションを選択するように構成され、記憶装置は、複数の順序付けられたリストからそのウィニングトランザクションのためのいかなるエントリも除去するように構成される。
かかる条件は、例えば、特定のトランザクションで可能にされる最大待ち時間が存在し、その最大待ち時間が近づいている時に、タイムアウト条件によってトリガされてもよい。別の実施形態において、ハザードのクリアが可能になる前に特定のトランザクションを処理する必要があるシステム内の他の場所でハザード条件が検出されてもよい。
上記のリンクバーストトランザクションが作成され、アクセスタイミングで順序付けられたリスト内のスパーリストに割り当てられる特定の一実施形態において、次いで、アービトレーション回路は、まず、残りのリンクバーストトランザクションが、存在する所定の例外条件に応答する前にウィニング要求として選択されることを確実にし、その後に、ウィニングトランザクションとして、優先順位が最も高い未決着のトランザクションになるまで優先順位が上げられている特定の未決着のトランザクションを選択する。
上に記載の実施形態のメモリコントローラはいずれかのタイプのトランザクションで使用できる。例えば、かかる技術は、メモリデバイスに発行される書き込みトランザクションで利用することができる。しかしながら、一実施形態において、本技術は、メモリデバイスに発行される読み込まれたトランザクションについて利用される。読み込みトランザクションおよび書き込みトランザクションの両方を上に記載の技術に適用することができるように、別の実施形態において、上に記載されたメカニズムを再現できることが理解されよう。
一実施形態において、アービトレーション回路は一度に1つのアービトレーション動作のみを実行し、このため、一度に単一のウィニングトランザクションのみを選択するように構成されるが、代替の実施形態において、アービトレーション回路は、複数のアービトレーション動作を並列に実行し、このため、一度に複数のウィニングトランザクションを選択するように構成されてもよい。これは、メモリデバイスが複数のウィニングトランザクションを並列に処理することができる状況において有用である。
第2の態様から見ると、本発明は、メモリデバイスへのアクセスを制御する方法を提供し、メモリデバイスは、メモリアドレスのアクセスにかかる時間がメモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、方法は、少なくとも1つのトランザクションソースから発行されるトランザクションを受信することであって、各トランザクションはそのトランザクションについてアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記受信することと、未決着のトランザクションとして、出力インターフェースからメモリデバイスへまだ出力されていないそれらの受信されたトランザクションを記憶装置内に一時的に記憶することであって、記憶装置は記憶された未決着のトランザクションのために複数の順序付けられたリストを維持し、少なくとも1つの優先順位ベースで順序付けられたリストと少なくとも1つのアクセスタイミングで順序付けられたリストとを含む、前記記憶することと、多数のエントリを有するように各優先順位ベースで順序付けられたリストを構成することであって、各エントリは未決着のトランザクションのうちの1つに関連付けられ、各エントリは関連付けられた未決着のトランザクションの優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内に順序付けられる、前記構成することと、多数のエントリを有するように各アクセスタイミングで順序付けられたリストを構成することであって、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、未決着のトランザクションは、前記グループ内の1つのトランザクションのメモリアドレスにアクセスされると、不均等アクセスタイミング特性を考慮するメモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成する各アクセスタイミングで順序付けられたリストに関連付けられる、前記構成することと、前記出力インターフェースから前記メモリデバイスに出力されるウィニングトランザクションを前記未決着のトランザクションから選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行し、複数の順序付けられたリストからウィニングトランザクションのためのエントリを除去することと、を含み、アービトレーション動作が実行される場合に、最後にアービトレーション動作が実行された時に選択されたウィニングトランザクションは、少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、少なくとも1つのアクセスタイミングで順序付けられたリストはまだ非空白であり、アービトレーション動作は、所定の例外条件が存在しない限り、ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する未決着のトランザクションのうちの1つを選択するように構成される。
第3の態様から見ると、本発明は、メモリデバイスへのアクセスを制御するためのメモリコントローラを提供し、メモリデバイスは、メモリアドレスへのアクセスにかかる時間がメモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、メモリコントローラは、少なくとも1つのトランザクションソースから発行されたトランザクションを受信するためのインターフェース手段であって、各トランザクションは、そのトランザクションのためにアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、インターフェース手段と、メモリコントローラによってメモリデバイスへまだ発行されていないインターフェース手段によって受信されたそれらのトランザクションを未決着のトランザクションとして一時的に記憶するための記憶手段であって、記憶された未決着のトランザクションの複数の順序付けられたリスト手段を維持し、リスト手段は、少なくとも1つの優先順位ベースで順序付けられたリスト手段と少なくとも1つのアクセスタイミングで順序付けられたリスト手段とを含む、記憶手段とを含み、各優先順位ベースで順序付けされたリスト手段は多数のエントリを持ち、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、関連付けられた未決着のトランザクションの優先順位指標に基づいてその優先順位ベースで順序付けられたリスト手段内に順序付けられ、各アクセスタイミングで順序付けられたリスト手段は多数のエントリを持ち、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリスト手段に関連付けられる未決着のトランザクションは、グループ内の1つのトランザクションのメモリアドレスにアクセスされると、不均等アクセスタイミング特性を配慮したメモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、前記未決着のトランザクションから、前記メモリデバイスに発行されるウィニングトランザクションを選択するように、前記複数の順序付けられたリスト手段が参照されるアービトレーション動作を実行するためのアービトレーション手段を含み、前記記憶手段は、前記複数の順序付けられたリスト手段から、前記ウィニングトランザクションに対するエントリを除去し、アービトレーション動作が実行される時に、最後にアービトレーション動作が実行された時に選択されたウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段のうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段はまだ非空白であり、アービトレーション動作は、所定の例外条件が存在しない限り、ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段内にエントリを有する未決着のトランザクションのうちの1つを選択する。
さらに、例示にすぎないが、添付の図面に示されるその実施形態を参照して、本発明を説明する。
一実施形態に従うメモリコントローラを組み込むデータ処理システムのブロック図である。 一実施形態に従う図1のDRAMメモリのブロック図である。 一実施形態に従う図1のDRAMメモリコントローラのブロック図である。 一実施形態に従う優先順位ベースで順序付けられたリストのエントリを概略的に示す。 優先順位ベースで順序付けられたリストから形成するように順序付けられた複数のかかるエントリを概略的に示す。 一実施形態に従うアクセスタイミングで順序付けられたリストのエントリを概略的に示す。 アクセスタイミングで順序付けられたリストを形成するように順序付けられた複数のかかるエントリを概略的に示す。 一実施形態に従う図3のリスト割り当て回路によって実行されるステップを図示する流れ図である。 図6のステップ365を実行するために一実施形態で実行されるステップのシーケンスを示す流れ図である。 新しいエントリが、図7の技術に従って既存の優先順位ベースで順序付けられたリストへ挿入される様子を概略的に示す。 一実施形態に従う図3のアービトレーション回路によって実行されるステップを示す流れ図である。 一実施形態に従うリミッタ回路の動作を概略的に示す。 代替の実施形態に従うリミッタ回路の動作を概略的に示す。 代替の実施形態に従うリミッタ回路の動作を概略的に示す。 一実施形態に従う、それぞれ、優先順位ベースで順序付けられたリストから、およびアクセスタイミングで順序付けられたリストから、エントリをポップする場合に実行されるステップを示す。 一実施形態に従う、それぞれ、優先順位ベースで順序付けられたリストから、およびアクセスタイミングで順序付けられたリストから、エントリをポップする場合に実行されるステップを示す。 図11Aのプロセスに従う優先順位ベースで順序付けられたリストからエントリがポップされる様子を概略的に示す。 代替の実施形態に従う、図3のリスト割り当て回路によって実行されるステップを示す流れ図である。 図13の読み込み向上ステップ730および735が、一実施形態に従い、優先順位ベースで順序付けられたリストのエントリに影響する様子を概略的に示す。 一実施形態に従う、図13のステップ740および745によって、アクセスタイミングで順序付けられたリストからスパーリストを生成できる様子を概略的に示す。 代替の実施形態に従う、図3のアービトレーション回路によって実行されるステップを示す流れ図である。
図1は、相互接続回路30を介して、多数のスレーブデバイス55、60と結合される複数のマスターデバイス10、20を含むデータ処理システムのブロック図である。スレーブデバイスのうちの1つは、DRAMメモリコントローラ50を介して相互接続30に結合されるDRAMメモリデバイス55である。
相互接続回路30は、トランザクションを実行することを可能にするために、多数の接続パス35を介してマスターデバイスおよびスレーブデバイスを結合する。各トランザクションは、マスターデバイスからスレーブデバイスへのアドレス転送、およびマスターデバイスおよびスレーブデバイスの間の1つ以上のデータ転送で構成される。相互接続30内のトランザクションの取り扱いのために使用されてもよい多数の公知のプロトコルが存在する。例示を目的として、以下に記載される実施形態では、相互接続回路は、別々のアドレスチャネルおよびデータチャネルが提供される分割トランザクションプロトコルを利用し、データ転送のタイミングが、特定のトランザクションのアドレス転送のタイミングと分離されていると想定される。一特定の実施形態において、相互接続回路はAXIプロトコルに従って動作し、相互接続回路の接続パス35は5つのチャネル、すなわち読み込みアドレスチャネル、書き込みアドレスチャネル、読み込みデータチャネル、書き込みデータチャネル、および書き込み応答チャネルを提供する。
アドレス転送の発行によって各マスターデバイスがトランザクションを開始する時に、そのマスターデバイスは、典型的には、トランザクションを識別するためにアドレス転送を有するトランザクション識別子を発行するため、それらのデータ転送をアドレス転送と一致させるために、トランザクションのデータ転送と関連させて前記トランザクション識別子を使用できる。
相互接続回路30の制御回路40内において、ID追加/除去回路は、異なるマスターデバイスからのそのトランザクションを相互接続回路30内で一意に識別することを確実にするように提供されてもよい。例えば、応答をそのマスターデバイスに戻すルーティングを可能にすることができるマスター番号を有するそのトランザクション識別子を拡張するように、関連付けられたマスターデバイスによって発行される各トランザクション識別子について、かかるID追加および除去回路を構成してもよい。同様に、転送がマスターデバイスに再びルーティングされる場合に、ID追加/除去回路は、応答転送が関連付けられたマスターデバイス10、20に戻る前にマスター番号を取り除く。応答を適切なマスターデバイスに戻すルーティングを可能にするだけでなく、相互接続回路30内の新しい形態のトランザクション識別子を形成するためのマスター番号を有するトランザクション識別子の拡張子は、さらに、異なるトランザクション識別子を有するトランザクションを再順序付けする能力を有するスレーブデバイス50、55、60が、これらがもともと同じトランザクション識別子を有する場合であっても、異なるマスターデバイスからのトランザクションを再順序付けすることができるという結果を有する。
相互接続30の制御回路40は、さらなる機能を含んでもよいことがさらに理解されよう。例えば、潜在的なデッドロック条件を検出するために、可能な場合、デッドロックによって、同時に進行させることができるトランザクションのシーケンスを検出するために、およびかかるデッドロックの発生を回避するために、相互接続30内に周期性従属性回避スキーム(CDAS:cyclic dependency avoidance scheme)制御回路が提供されてもよい。制御回路40は、かかるハザード(hazard)条件が正しく処理されることを目的に、種々のハザード条件、例えば書き込みハザード後の読み込みを監視するためにスコアボーディングおよびハザード検知回路をさらに含んでもよい。これは、例えば、以前のトランザクションが完了するまでの1つのトランザクションの前方への伝播の停止を伴ってもよい。
DRAMメモリコントローラ50を考慮すると、上記の記載から、DRAMメモリコントローラ50はトランザクションのストリームを受信し、各トランザクションは典型的にはトランザクション識別子を有することが理解されよう。以下により詳細に記載されるように、本明細書に記載されたDRAMメモリコントローラの実施形態に従い、DRAMメモリコントローラは、DRAM55のアクセス時間を向上させることを目的として、それらのトランザクションを再順序付けすることができる。DRAMメモリコントローラは、相互接続30によって使用されるトランザクションプロトコルの順序付けの制約に従うように、相互接続回路30への出力前に応答を再順序付けすることを確実にできるように、いくつかの内部バッファリングを含む。例えば、これは同じトランザクション識別子を有するトランザクションで必要であってもよく、スレーブから戻る応答は順序通りに戻る必要があり、このため、DRAM効率を向上させるためのかかるトランザクションに関してローカルで実行される再順序付けは、相互接続30への応答転送の出力前に逆の方向にする必要がある。
トランザクションの別のプロパティは、トランザクションの明示的なフィールドとして、またはトランザクションから決定することができるいくらかの干渉のために優先順位指標を含んでもよい(例えばマスター110によって発行されるトランザクションがマスター220によって発行されるトランザクションよりも高い優先順位を有することが理解され得る)。本明細書に記載された特定の一実施形態において、各トランザクションは、サービスの質(QoS)指標の形態の明示的な優先順位指標を含む。本明細書に記載された技術に従い、DRAMメモリコントローラ50は、DRAM55へのアクセス時間を向上させるように、しかし一方で、それらのQoS指標を考慮してトランザクションが適切にサービスされることを確実にするように、トランザクションのQoSレベル指標を考慮しながら、トランザクションを再順序付けすることを試みる。
図2は、一実施形態に従う図1のDRAM55を概略的に示す。DRAM55は、複数のバンク130、135、140で構成され、各バンクは複数の行で構成される。各バンクに関連付けられ、DRAMメモリコントローラ50によって発行されるアクセスコマンドに応答するアクセス回路100、110、120が提供される。各アクセス回路100、110、120は、関連付けられたバンクから少なくとも1つのデータ行を記憶するための行バッファ105、115、125を含む。行内のデータ値にアクセスするために、その行はまず、メモリコントローラから発行されたRASコマンドを介して関連行バッファに移動させる必要があり、かかるRASコマンドは、本明細書においてアクティブコマンドとも称される。行バッファに行が記憶されると、次いで、その行内の個々のメモリアドレスは、メモリコントローラから発行されるCASコマンドを介してアクセスすることができる。最終的には、行へのアクセスが完了する場合、または新しい行にアクセスする必要がある場合、メモリコントローラからプリチャージコマンドが発行され、行バッファ内の行の現在のコンテンツを、DRAM55内における関連付けられたバンクに再び記憶させる。
このため、そのコンテンツに以降アクセスすることができるように、行を活性化する際に生じる、多大なアクセス時間ペナルティ、および現実の電力消費ペナルティが存在し、したがって、行が活性化された後、したがって、行バッファ内にコンテンツが記憶された後で、行のコンテンツが以降はバンクに戻される前に、その行のメモリアドレスに対する複数のアクセスが実行されると有利であることが理解される。以下により詳細に記載されるように、記載された実施形態のDRAMメモリコントローラはこれを実現するためにトランザクションの再順序付けを実行することができ、これによりアクセス時間および電力消費を低減することができるが、かかる再順序付けがトランザクションのQoS要件に悪影響を及ぼさないことを確実にするように、さらに、トランザクションに関連付けられた優先順位指標を考慮する。
図3は、一実施形態に従う図1のDRAMメモリコントローラ50を概略的に示す。相互接続30から受信された入力トランザクションは、いくつかのローカル再順序付け制御回路210を含んでもよい入力インターフェース200に提供される。この再順序付け制御回路210は、これらのトランザクションをDRAMメモリによって順序に関係なく扱うために、例えば、実際に、同じトランザクション識別子を有する複数のトランザクションを切断するように、入力トランザクションのトランザクション識別子を変更してもよい。しかしながら、この実施形態では、相互接続30が同じトランザクション識別子を有するトランザクションのDRAMからの応答が順序通りに返ることを必要とすると想定されるため、これらのトランザクションを、相互接続30に再びいずれかの応答が出力される前に再び順序付けることが必要となる。したがって、応答データが相互接続30に出力される前にローカル再順序付けを可能にするように、再順序付け制御回路210内にデータバッファ215を提供できる。
一実施形態において、書き込みトランザクションに関連して、以下に記載される技術を利用できるが、図3の例示を目的として、入力トランザクションは全て読み込みトランザクションであり、したがって、相互接続回路への応答出力は読み込みデータであると想定される。書き込みトランザクションについて、応答は、書き込み応答チャネルに提供される状態の情報となる。読み込みトランザクションおよび書き込みトランザクションの両方についての技術を利用することが望ましい場合、図3に示される回路を全体的または部分的に複製することができるため、読み込みトランザクションに一組の回路が提供され、書き込みトランザクションに複製された一組の回路が提供される。
図3に示されるように、インターフェース200は、随意に、バーストフォーマット化回路205を含んでもよい。特に、マスターデバイス10、20のうちの1つは、DRAMメモリのアクセスに許可されるバースト長を超えるバースト長を有するバーストトランザクションを発行してもよい。したがって、インターフェース200によって受信されたかかるバーストトランザクションは、バーストフォーマット化回路205によって複数のリンクバーストトランザクションに変換されてもよく、各リンクバーストトランザクションはメモリコントローラによって別々のトランザクションとして処理される。再順序付け制御回路210からの各リンクバーストトランザクションについて、内部トランザクション識別子を提供することができる。
DRAMメモリコントローラ50は、メモリコントローラ50によってDRAM55へまだ発行されていないインターフェース200によって受信されたトランザクションを、未決着のトランザクションとして一時的に記憶するための未決着のトランザクションバッファ230を含む。各トランザクションの関連する詳細を維持するだけではなく、未決着のトランザクションバッファ230は、一組の重複した順序付けられたリスト235を維持し、これらのリストは、少なくとも1つの未決着のトランザクションが存在する各バンクに対して優先順位ベースで順序付けられたリスト(かかる優先順位ベースで順序付けられたリストは本明細書においてQoSリストと称される)、および少なくとも1つの未決着のトランザクションが存在する各バンクの各行に対してアクセスタイミングで順序付けられたリストを含む(かかるリストは本明細書において行ヒットリストと称される)。各トランザクションはインターフェース200によって受信されるため、これは、順序付けられたリスト235のうちの少なくとも1つ内のエントリにその未決着のトランザクションを割り当てるように構成される、リスト割り当て回路220に受け渡される。特に、一実施形態において、リスト割り当て回路220は、関連QoSリストおよび関連行ヒットリストの両方内のエントリに、各未決着のトランザクションを割り当てる。リストおよびリスト割り当て回路220の動作のさらなる詳細を、残りの図を参照して後述する。
一実施形態において、バッファ230は、複数のバッファエントリを含み、各バッファエントリは未決着のトランザクションの詳細を記憶するために使用される。各バッファエントリに関連付けられた情報は、次いで、関連のQoSリストおよび行ヒットリスト内の関連付けられたトランザクションの位置を記載するように使用される。次いで、リストそれ自体が仮想リストになる。
DRAMメモリ55に新しいトランザクションを発行することが必要な場合、例えばDRAMメモリ55が新しいトランザクションを処理する能力を有するとメモリコントローラ50が決定するため、アービトレーション回路240は、未決着のトランザクションから、DRAM55に発行されるウィニングトランザクションを選択するように複数の順序付けられたリスト235が参照される、アービトレーション動作を実行するように構成される。アービトレーション回路の動作は、以下により詳細に記載されるが、一般的に、アービトレーション回路によって実行されるアービトレーション動作は、最後のウィニングトランザクションがその行ヒットリストから選択される場合に、行ヒットリストのうちの1つからエントリを選択し続けるという偏りがある。しかしながら、個々のトランザクションに関連付けられたQoSレベルを考慮するように、特定の条件によって、アービトレーション回路をその自然なバイアスから偏向させる。
アービトレーション回路240によって選択される各ウィニングトランザクションの詳細が、トランザクションを記憶するためにローカルバッファ255および各トランザクションを実行するようにDRAMに対するコマンドのシーケンスを作成するためのDRAMスケジューラー260を含む、メモリインターフェース250に出力される。各トランザクションによって必要なアクセスを実行するにはDRAMスケジューラーから複数のコマンドを発行することが必要であり得るため、典型的にバッファ255が必要であり、インターフェースに加えて、DRAMスケジューラー260とDRAM55との間のパスは、クロックサイクル毎にシングルコマンドのみを発行できるようにされてもよい。このため、メモリインターフェース250による実行プロセスにおいて複数のトランザクション、例えばDRAMの異なるバンクに向けられたトランザクションが存在してもよく、これらのトランザクションの実行に必要な種々のコマンドは、必要なアクセス回路100、110、120の可用性を考慮して、DRAMスケジューラー260によってスケジュールされる。
前述のように、DRAMスケジューラー260によって発行されるコマンドは、行をアクティブ化するためのRASコマンド、行内の特定のメモリアドレスにアクセスするための一連のCASコマンド、およびDRAMの関連行に再び行バッファのコンテンツを記憶するためのプリチャージコマンドを含んでもよい。一連のトランザクションが、全てが同じ行にアクセスするメモリインターフェースによって扱われるように、トランザクションを再順序付けすることができる場合、これらのトランザクションのうちのいくつかは、先行するトランザクションとの関連において必要なRASコマンドが既に発行されているため、必要なアクセスを実行するために、相当するCASコマンドをDRAMスケジューラー260から発行することのみが必要になる。さらに、以降のトランザクションが同じ行へアクセスするためのものでもある場合、次いで、現在のトランザクションにはプリチャージコマンドは不要である。
一実施形態において、相互接続回路30の外側において、(図1に概略的に示されるように)図3に示されるコンポーネントの全てを提供してもよいが、特定の実施形態において、DRAMメモリコントローラ50のコンポーネントのうちの1つ以上を、相互接続30のインターフェースブロックの一部として、相互接続30の内部に提供してもよいことが理解されよう。例えば、一実施形態において、メモリインターフェース250以外のコンポーネントの全てが、相互接続30内に提供されてもよく、一方で、メモリインターフェース250のみが相互接続30とDRAM55との間のインターフェースの外側に提供される。しかしながら、図3に示されるコンポーネントがデータ処理システム内に物理的に常駐するかどうかにかかわらず、これらのコンポーネントは、DRAM55の「メモリコントローラ」と総称される。
前述のように、未決着のトランザクションバッファ230内に維持される一タイプのリストはQoSリストであり、各QoSリストは多数のQoSリストエントリで構成される。各QoSリストエントリは、図4Aのエンティティ300によって概略的に示される形態を取る。図4Aで使用される用語は以下の意味を持つ。
Ptr:指定されたバンクに対してQoSで順序付けられたリストにおける次のアイテムに対するポインタ
バンク:このエントリに記憶されたトランザクションの対象となるバンク
QoS:このエントリに記憶されたトランザクションに対するQoS値
pQoS:Ptrによって指されるエントリ(「次のエントリ」)に記憶されたトランザクションのQoS値
V:エントリは有効である(つまりまだ処理されていないトランザクションを含む)
L:エントリが指定されたバンクリストの最後の(テール)トランザクションを含むことを示すように設定
F:エントリが指定されたバンクリストの最初の(ヘッド)トランザクションを含むことを示すように設定
さらに、各エントリ300内のボックス305によって識別された番号は、トランザクションの詳細がバッファ230内に記憶される位置を識別する。
バンク1の例示的な投入されたQoSリストは、したがって、図4Bのリスト310によって概略的に示される形態を取ってもよい。図4Bで見られるように、QoSリスト310は、多数のサブリスト311、312、313、314で形成されると考えることができる。各サブリスト内において、各エントリは同じQoS指標を有し、各サブリスト内のエントリの相対的な順序付けは、メモリコントローラ50のインターフェース200によるこれらのトランザクションの一時的な受信順序に基づく。図4Bに示されるように、サブリスト311内の唯一のエントリは、それがQoSリスト310に対するヘッドトランザクションであることを示すように設定されたその最初フラグを有し、同様に、サブリスト314内の最後のトランザクションは、それが特定のQoSリストのテールトランザクションであることを示すように設定されたその最後のフィールドを有する。
さらに上述のように、未決着のトランザクションバッファ230内で維持される別のタイプの順序付けられたリストは行ヒットリストであり、一実施形態の行ヒットリスト内の各エントリは、図5Aに示されるエントリ320の形態を取る。図5Aのエントリ320で使用される用語のそれぞれの意味は以下の通りである。
HPtr:ヒットポインタ。行ヒットリスト内の次のアイテムを指す(後述するインバーストヒットを除く)
バンク:このエントリに記憶されたトランザクションの対象となるバンク
行:このエントリに記憶されたトランザクションの対象となる行
T:エントリが指定された行ヒットリストに対してテールトランザクションを含むことを示すように設定
H:エントリが指定された行ヒットリストに対してヘッドトランザクションを含むことを示すように設定
IB:エントリが規則的な行ヒットではなくインバースト行ヒットを含むことを示すように設定
新しい未決着のトランザクションが未決着のトランザクションバッファ230に割り当てられる時に、行ヒットリストテールとしてマークされる一致するバンク/行を有する記憶されたトランザクションが既に存在する場合に、新しいトランザクションに対するエントリが、新しいテールを形成するためにそのリストに押し出される。押し出されない場合には、新しい行ヒットリストを形成するためにエントリが割り当てられる。バンク1、行4に対する投入された行ヒットリストの一例は、このため、リスト330として図5Bに概略的に示される形態を取ってもよい。
図6は、一実施形態に従う図3のリスト割り当て回路220の動作を示す流れ図であり、この実施形態では、インバースト行ヒットフィールドIBは使用されないと想定される。ステップ350において、リスト割り当て回路220は割り当てる新しいトランザクションを受信し、そのトランザクションは、バンクA、行Bに向けられ、ZのQoS値を有する。ステップ355において、バンクAのQoSリストが既に存在するかどうか、つまりバンクAに向けられている他の未決着のトランザクションが存在するかどうかが決定される。存在しない場合、次いでプロセスはステップ375に進み、ここで、バンクAの新しいQoSリスト内にエントリが作成され、そのエントリの最初および最後フラグが共に設定される。バンクAのQoSリストが存在しない場合には、バンクA、行Bの行ヒットリストも存在しないことであり、したがって、ステップ375が実行される場合に、プロセスは、さらにステップ390を実行し、ここで、バンクA、行Bの行ヒットリスト内にエントリが作成され、そのエントリのヘッドとテールの両フラグが設定される。
ステップ355において、QoSリストがバンクAに存在しないことが決定され、次いでステップ360において、現在のトランザクションのQoS値ZがバンクAのQoSリスト内の最も高い優先順位のエントリ、つまりその最初のフィールドが設定されたエントリのQoS値よりも大きいかどうかが決定される。大きい場合には、次いでこれは、QoSリストのヘッド位置に新しいトランザクションを追加するべきであることを示し、したがって、プロセスはステップ370に進み、ここで、既存のQoSリストのヘッドにエントリが作成され、そのエントリはそのQoSリストの以前のヘッドから最初フラグを継承する。しかしながら、QoS値ZがバンクAのQoSリスト内の最も高い優先順位のエントリのQoS値よりも大きくないと想定すると、次いでプロセスは、ステップ365に進み、ここでエントリが作成され、バンクAのQoSリスト内の適切な位置に配置される。図6のステップ365を実行する1つの方法について、図7を参照して後述する。
ステップ365またはステップ370の後で、バンクAおよび行Bの行ヒットリストが存在するかどうかがステップ380において決定される。そうでない場合には、プロセスはステップ390へと分岐するが、バンクA、行Bで使用できる行ヒットリストが既に存在すると想定すると、プロセスはステップ385に進み、その行ヒットリストのテールにおいて新しいエントリが作成され、そのエントリは以前のテールエントリからテールフラグを継承する。
図7は、一実施形態に従う図6のステップ365を実行するために使用可能な一連のステップを示す流れ図である。ステップ400において、パラメーターNは0と等しくなるように設定され、その後ステップ405においてエントリNのQoSレベルがQoS値Zより大きいまたはこれと等しいかどうか、さらにエントリNで識別されたpQoS値がQoS値Z未満であるかどうかが決定される。そうではない場合、次いでステップ410において最後のQoSリストエントリが解析されたかどうかが決定され、そうでない場合にはステップ415においてパラメーターNが増分され、プロセスがステップ405に返る。特定のエントリについて、ステップ405で設定された条件に適合すると決定されると、プロセスは、ステップ420に進み、ここでQoSリスト内のエントリNの直後にエントリが作成される。ステップ405の条件がリスト内の一エントリについて常に適合できるように、リスト内の最後のエントリは、常にQoS値Z未満であると考えられるある所定の値に設定されるpQoS値を有することができる。例えば、図4Bを参照すると、かかる所定のレベルは、QoSリストのテールエントリ内の記号「X」によって示される。
ステップ420においてエントリを作成するだけでなく、ステップ425において適切である場合に最後フラグが設定され(典型的にはこれは、エントリNから最後フラグを継承することによって行うことができる)、さらに、ステップ430においてエントリNに対するポインタおよびpQoS値が更新される。
このプロセスは図8に概略的に示されており、ここで図4Aに示されるエントリは、修正されたQoSリスト450を作成するように、新しいエントリ455として図4BのQoSリスト310内に挿入される。特に、割り当てられる新しいトランザクションのQoS値Zはこの場合「4」であり、このためエントリ457は、それは(図4BのQoSリスト310内の相当するエントリから明らかなように)4のQoS値および1のpQoS値を最初に有するため、図7のステップ405の条件に適合するエントリNとして識別される。したがって、エントリ457から元のポインタ値を継承する新しいエントリ455が割り当てられ、一方で、新しいエントリ455を指すようにエントリ457が修正される。さらに、エントリ457に記憶されたpQoS値は、次のエントリ455のQoS値を正しく識別するように、「1」から「4」へと更新される。新しいエントリ455はQoSリスト内の最後のエントリではないため、その最後フラグは設定されない。
上に記載の実施形態は、図7および8を参照し、図6のステップ365を実行するための適した1つのメカニズムを記載しているが、各エントリは、割り当てプロセスを簡略化および高速化するために、QoSおよびpQoSの両方の値を維持しており、所望の場合、他の技術も利用できることが理解されよう。例えば、所望の場合、テーブルウォークプロセス(table walk process)を使用できる。
図9は、一実施形態に従う図3のアービトレーション回路240によって実行されるアービトレーション動作を示す流れ図である。新しいトランザクションをメモリインターフェース250への受け渡しのために選択することが必要な場合、ステップ500においてアービトレーション動作が開始し、その後ステップ505において、リミッタ信号が設定されたかどうかが決定される。この信号については、図10Aから図10Cを参照して後で詳述する。しかしながら、そのリミッタ信号が設定されない限り、プロセスは、ステップ510に進み、ここで、以前に調停されたエントリ(つまりアービトレーション動作が最後に実行されたより前のウィニング要求に相当するエントリ)がその行ヒットリストのテールとしてマークされたかどうかが決定される。マークされていない場合、これは、関連行ヒットリストがまだ空白ではないことを示し、したがって、プロセスはステップ520へと分岐し、ここでアービトレーション動作によって選択されるエントリは、以前に調停されたエントリのヒットポインタによって指される行ヒットリスト内のそのエントリである。
しかしながら、ステップ510において、以前に調停されたエントリがその行ヒットリストのテールとしてマークされたことが決定される場合、プロセスはステップ515に進み、ここで、関連バンクQoSリストのヘッドのエントリが次のウィニングエントリとして選択される。関連バンクについて、メモリインターフェース250は、典型的には、アービトレーション回路240に対して、新しいトランザクションを受信できるバンクを識別する。このため、典型的にはステップ515において考慮される単一のQoSリストのみが存在する。
ステップ515またはステップ520の後、プロセスはステップ525に進み、ここで選択されるエントリがQoSリストおよび行ヒットリストからポップされ、このプロセスは、図11Aおよび図11Bを参照して後述される。
図10Aは、一実施形態で使用されてもよいリミッタ回路550の例を概略的に示す。一特定の実施形態において、リミッタ回路は各バンクに対して別々に提供され、アービトレーション回路240の一部を形成すると考えられる。各リミッタ回路は、関連付けられたバンクのウィニングトランザクションが行ヒットリストから選択される度に増分されるカウンタ555を含む。さらに、ウィニングトランザクションがそのバンクのQoSリストから選択される度に、カウンタがリセットされる。カウンタ555によって維持されるカウント値が所定の閾値に達すると、リミッタ信号が設定される。図9のステップ505を参照すると、リミッタ信号が設定される時に、最後のウィニングトランザクションがテール位置ではない行ヒットリストエントリによるものである場合であっても、次のウィニングトランザクションが行ヒットリストではなくQoSリストから選択されるように、プロセスをステップ515に直接進ませることが理解される。かかるアプローチにより、特定のバンク内の特定の行に対する多数の未決着のトランザクションの存在下においても、その他のトランザクションのQoSレベルが考慮されるため、特定の行に対する多数の未決着のトランザクションの存在下において、高い優先順位のトランザクションが許容不可能な度合まで遅延することがないようにする。
図10Bは、簡単なカウンタの代わりに、いくつかの利益解析機能565を実行するための回路が使用されるリミッタ回路の代替例を示す。図10Aのカウンタ555によって受信された信号に加えて、利益解析機能565は、関連バンクに対してQoSリストのヘッドエントリに関連付けられたQoS値の指標を受信する。DRAMメモリの性質のために、図10C等のグラフは、特定の行においてメモリアドレスへの連続的なアクセスの行ヒットの利益を識別して形成することができる。アクセスが可能になる前に行をアクティブ化する必要があり、典型的にはその行を再びプリチャージする前に必要な所定の遅延も存在するため、初期における行ヒットの利益は非常に大きい。このため、その期間において、グラフは、図10Cに示される水平の形式を取る。しかしながら、その初期の期間の後で、特定の行内の複数のアクセスにおいて償却されるオーバーヘッドのために、曲線状のグラフ570が示すように、利益はゆっくりと低下していく。したがって、図10Cのグラフは、つまり特定の行への連続アクセスに関連付けられた低下する優先順位スケールに変換することができる。つまり、連続するアクセス数が増加すると、それらのアクセスに関連付けられた効果的なQoS値は減少する。したがって、いくつかのポイントにおいて、その疑似QoS値はQoSリストのヘッドに関連付けられたQoS値未満のレベルに落ち込み、そのポイントにおいて、次のウィニングトランザクションが行ヒットリストからの代わりにバンクQoSリストのヘッドから選択されるように、リミッタ信号を設定できる。
図11Aは、QoSリストからエントリをポップするように、図9のステップ525において実行されるステップを表す流れ図である。ステップ600においてそのかかるエントリをポップすることが必要であると決定される場合、プロセスはステップ605に進み、ここで、ポップされるエントリがQoSリストのヘッドにあるかどうかが決定される。これは、図9のステップ515の実行の結果として図9のステップ525に達した場合には明らかにあてはまるが、図9のステップ520によってステップ525に達した場合には必ずしもあてはまらない。特に、行ヒットリストからエントリが選択される場合、バンクQoSリスト内のその相当するエントリは、そのバンクQoSリスト内のいずれの位置であってもよい。
ステップ605において、ポップされるエントリがQoSリストのヘッドにあると決定される場合、プロセスはステップ610に進み、ここで、ポップされたエントリによって指されるエントリに最初フラグが設定される。さらに、ポップされているエントリの有効フラグが、そのエントリがもう有効ではないことを示すためにクリアされる。ポップされるべきエントリがQoSリストのヘッドにない場合、プロセスはステップ615に進み、ここで、ポップされたエントリを指すエントリは、ポップされたエントリのポインタ、ポップされたエントリのpQoS値およびポップされたエントリの最後フラグ状態を継承する。再び、ポップされているエントリの有効フラグが、そのエントリがもう有効ではないことを示すためにクリアされる。
ステップ615において実行されるプロセスが図12に概略的に図示されており、ここで、QoSリスト470内のエントリ477がポップされ、その結果として、以前はエントリ477を指していたエントリ475は、そのポインタをエントリ478に指すように更新し、そのpQoS値をエントリ478のQoS値を反映するように更新する。ポップされたエントリ477はその最後フラグを設定しておらず、エントリ475も、その最後エントリを設定していない。
図11Bは、行ヒットリストからエントリをポップする場合に実行される相当するステップを示す。図11Bの図11Aとの比較に見られるように、プロセスは概して同じである。ポップされたエントリが行ヒットリストのヘッドにある場合、次いで、ステップ660において、ポップされたエントリによって指されるエントリ内のヘッドフラグが設定される。しかしながら、ポップされたエントリが行ヒットリストのヘッドにない場合、ステップ665において、ポップされたエントリを指すエントリはポップされたエントリのポインタおよびテールフラグ状態を継承する。
図13は代替の実施形態に従う図3のリスト割り当て回路220によって実行されるステップを図示する流れ図である。上記の図6を有する図13と比較して、図13のステップ700〜725および750〜760は、それぞれ、図6のステップ350〜375および380〜390に相当するため、これらのステップについてはさらに記載されないことが理解されよう。しかしながら、図13の流れ図において、4つの追加のステップすなわちステップ730〜745が実行される。
特に、図13において、QoSリストは、有効または無効にすることができる読み込み向上(escalation)機能を含み、この読み込み向上機能は、さらに、バディス(budding:発芽)スキームと称される。読み込み向上機能が有効ではない場合、プロセスはステップ740に進む。しかしながら、読み込み向上機能が有効にされている場合、プロセスはステップ735に進み、ポイントされたエントリのQoS値はQoS値Zと等しくなるよう増加される。これは、図8を参照して上述されているものと同じ割り当てを示す図14に概略的に示されているが、さらに、読み込まれた向上機能の効果を示す。特に、新しいエントリ455が導入される場合、次のエントリ460のQoS値は、新しいエントリのQoS値と等しくなるように増加する、つまり4のQoS値を示す。そのため、挿入されたエントリ455内で識別されたpQoS値は値4をとる。そうでない場合には、プロセスは図8を参照して前述されるものと全く同じである。かかるアプローチの利点は、新しいエントリがQoSリスト内のエントリ460の前に挿入された場合にエントリ460がその優先順位を上げることであり、そのために、これは、より低い優先順位のトランザクションの無限のブロックを防止することができるため、予測可能な待ち時間計算を可能にする。図13に記載される実施形態において、ポイントされたエントリのQoS値はQoS値Zと等しくなるように更新されるが、これは必要条件ではなく、読み込み向上スキームの代替の実施形態において、ポイントされたエントリのQoS値をある所定の大きさだけ増加させることのみで十分であることが理解されよう。
ステップ740および745は、上述のリンクバーストトランザクションを処理する。特に、一実施形態において、行ヒットリストは、1つ以上のスパーリストをサポートするように構成することができ、各スパーリストはリンクバーストトランザクションを識別する多数のスパーリストエントリを有する。このため、ステップ740において、割り当てられる新しいトランザクションが、リンクバーストトランザクションであり、以前のそれに関連付けられたリンクバーストトランザクションがバンクA、行Bの行ヒットリスト内のエントリを既に割り当てられているバーストトランザクションであるかどうかが決定される。あると決定される場合、プロセスは、ステップ745に進み、ここでバンクA、行Bの行ヒットリストからスパーリスト上にスパーリストエントリが作成され、そのエントリはIBフラグを設定することによって、「インバースト(in-burst)」としてマークされる。これは、行ヒットリスト480について図15に概略的に示される。特に、最初のリンクバーストランザクションが行ヒットリスト480内のエントリ485に割り当てられる。しかしながら、以降のリンク各バーストトランザクションは、スパーリスト内のスパーリストエントリ487、489に割り当てられる。かかるスパーリストエントリは、例えば図16を参照して記載されるように、アービトレーション中に異なる方法で処理することができる。
特に、図16は、代替の実施形態に従う図3のアービトレーション回路240によって実行されてもよいアービトレーション動作を示す。上記の図9と比較して、ステップ825〜845は図9のステップ505〜525に相当し、したがって、さらに本明細書に記載されないことが理解されよう。しかしながら、ステップ825の前に、多数のさらなるステップが実行される。特に、ステップ805において、そのインバーストフラグを設定するスパーリストエントリが以前に調停されたエントリを指すかどうかが決定される。このため、図15を参照して、以前に調停されたエントリがエントリ485である場合、これは、エントリ487がそれを指すことになる。同様に、以前に調停されたエントリがエントリ487である場合、これは、エントリ489がエントリ487を指すことになる。
この条件に適合する場合は常に、プロセスはステップ810へと分岐し、ここで、インバーストフラグを設定するスパーリストエントリがウィニングトランザクションを識別するために選択され、その後、ステップ845において、選択されたエントリが行ヒットリストからポップされる(およびその相当するエントリは関連QoSリストからポップされる)。
しかしながら、ステップ805において識別されたかかるスパーリストエントリが存在しないと想定して、プロセスはステップ815に進み、ここで、TimedOutフラグが設定されたトランザクションが存在するかどうかが決定される。特に、この実施形態では、所定の例外条件の一例としてTimedOutフラグが使用され、所定の例外条件の存在を識別するためにTimedOutフラグが設定される場合には、通常のアービトレーションプロセスは実行されず、代わりにプロセスはステップ820へと分岐する。TimedOutフラグは、種々の理由により設定することができる。しかしながら、一実施形態において、データ処理システム内の他の場所の要素は、そのトランザクションの待ち時間の上限に達している、またはそのトランザクションが処理されるまで種々の他のトランザクションを処理できない等のために、特定のトランザクションになるべく早い処理が必要であることを識別してもよい。したがって、これらの要素は、そのトランザクションの優先順位を上げる制御信号を発行することにより、TimedOutフラグをその特定のトランザクションのためのメモリコントローラ内に設定する。かかるTimedOutフラグを維持してもよい多数の場所が存在する。しかしながら、一実施形態において、そのTimedOutフラグは、未決着のトランザクションバッファ230内の各未決着のトランザクションの詳細に関連して維持される。
TimedOutフラグがいずれかのトランザクションに対して設定される場合、プロセスはステップ820に進み、ここで、そのTimedOutフラグが設定されるトランザクションが選択される。TimedOutフラグが設定された複数のトランザクションがある場合、例えばそのTimedOutフラグが設定されたトランザクションの間で無作為に選択することにより、ステップ820において適切な選択技術を使用してウィニングトランザクションを選択することができる。しかしながら、典型的には、これは、トランザクションに関連付けられたQoS値がメモリコントローラ50によって適切に優先順位が設定されていないことを示すため、概して、TimedOutフラグが設定された複数のトランザクションは存在しないという予想がある。その場合、ステップ825からステップ835の分岐をより頻繁に行い、それによって、トランザクションにTimedOutフラグが設定される可能性が低下するように、リミッタ信号が設定される要件を低くすることが適切である。
上記の技術に従い、メモリコントローラは、それらの優先順位レベル内でトランザクションの一時的な順序を同時に保持しながら、トランザクションの重要な再順序付けによって行ヒットの発生率を向上させることができるリスト割り当ておよびアービトレーション動作を実行する。これにより、システムレベルでトランザクションのQoS要件を維持しながら、アクセス待ち時間を低減させるように、トランザクションの再順序付けの間でバランスを確定することができる。
本明細書において特定の実施形態を記載しているが、本発明はこれらに制限されず、それに対するその多くの修正および追加を、本発明の範囲内で行ってもよいことが理解されよう。例えば、本発明の範囲から逸脱せずに、以下の従属請求項の種々の特徴を組み合わせることができる。

Claims (31)

  1. メモリデバイスへのアクセスを制御するためのメモリコントローラであって、前記メモリデバイスは、メモリアドレスへのアクセスにかかる時間が前記メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、前記メモリコントローラは、
    少なくとも1つのトランザクションソースから発行されたトランザクションを受信するように構成されるインターフェースであって、各トランザクションは、そのトランザクションでアクセスされるメモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記インターフェースと、
    未決着のトランザクションとして、前記インターフェースによって受信された、前記メモリコントローラによって前記メモリデバイスへまだ発行されていないそれらのトランザクションを一時的に記憶するように構成される記憶装置であって、前記記憶装置は、前記記憶された未決着のトランザクションの複数の順序付けられたリストを維持し、前記複数のリストは少なくとも1つの優先順位ベースで順序付けられたリストと、少なくとも1つのアクセスタイミングで順序付けられたリストとを含む、前記記憶装置と、を備え、
    各優先順位ベースで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、前記関連付けられた未決着のトランザクションの前記優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内において順序付けられ、
    各アクセスタイミングで順序付けられたリストは多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスがアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、
    アービトレーション回路は、前記未決着のトランザクションから前記メモリデバイスに発行されるウィニング(winning)トランザクションを選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行するように構成され、前記記憶装置は、前記複数の順序付けられたリストから、前記ウィニングトランザクションのためのいかなるエントリも除去するように構成され、
    前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する前記未決着のトランザクションのうちの1つを選択するように構成される、メモリコントローラ。
  2. 最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有しない場合に、または前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有するが、少なくとも1つのアクセスタイミングで順序付けられたリストが現在空白である場合に、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択するように構成される、請求項1に記載のメモリコントローラ。
  3. 各優先順位ベースで順序付けられたリストは、多数のサブリストを含み、各エントリは、各サブリストの前記エントリが同じ優先順位指標を有するトランザクションに関するように、1つのサブリスト内にあり、前記サブリストは、前記優先順位指標に基づいてそれらの優先順位ベースで順序付けられたリスト内に順序付けられ、各サブリスト内において、そのサブリストの前記エントリは、前記インターフェースによる前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる、請求項1または2に記載のメモリコントローラ。
  4. 各アクセスタイミングで順序付けられたリスト内において、前記エントリは、前記インターフェースによる前記関連付けられた未決着のトランザクションの一時的な受信順序に基づいて順序付けられる、いずれかの先行する請求項に記載のメモリコントローラ。
  5. 前記メモリデバイスは複数のバンクを含み、前記少なくとも1つの優先順位ベースで順序付けられたリストは、未決着のトランザクションが存在する各バンクに対して別々の優先順位ベースで順序付けられたリストを含む、いずれかの先行する請求項に記載のメモリコントローラ。
  6. 各バンクは複数の行を含み、指定されたメモリアドレスを含む前記行が既に活性化されているかどうかに依存して、その指定されたメモリアドレスへの前記アクセスタイミングが変動するように、各行がアクセスされるのに先だって、その行を活性化する必要があり、
    前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含む、請求項5に記載のメモリコントローラ。
  7. 前記インターフェースによって受信された各トランザクションに応答して、前記複数の順序付けられたリストのうちの少なくとも1つにおいてそのトランザクションに対するエントリを割り当てるように、割り当て回路をさらに備える、いずれかの先行する請求項に記載のメモリコントローラ。
  8. 前記インターフェースによって受信された各トランザクションについて、前記割り当て回路は、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つおよび前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つの両方において、そのトランザクションに対するエントリを割り当てるように構成される、請求項7に記載のメモリコントローラ。
  9. 各優先順位ベースで順序付けられたリスト内において、各エントリは、ヘッドインジケータとテールインジケータとを含み、前記ヘッドインジケータは、前記エントリが前記優先順位ベースで順序付けられたリスト内のヘッド位置にある場合に設定され、前記テールインジケータは、前記エントリが前記優先順位ベースで順序付けられたリスト内のテール位置にある場合に設定され、
    各エントリは、前記優先順位ベースで順序付けられたリスト内に、次のエントリへのポインタをさらに含み、前記次のエントリは、前記次のエントリを指したエントリよりも、前記ヘッド位置からより離れた位置にある、いずれかの先行する請求項に記載のメモリコントローラ。
  10. 各エントリは、前記関連付けられた未決着のトランザクションの前記優先順位指標をさらに識別する、請求項9に記載のメモリコントローラ。
  11. 各エントリは、前記次のエントリに関連付けられた前記未決着のトランザクションの前記優先順位指標をさらに識別する、請求項10に記載のメモリコントローラ。
  12. 前記インターフェースによって受信された現在のトランザクションに応答して、前記現在のトランザクションによって指定された前記メモリアドレスに配慮して選択された前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの選択された1つに、前記現在のトランザクションに対するエントリを割り当てるための割り当て回路をさらに含み、
    前記割り当て回路は、前記関連付けられた未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも高いまたは等しく、前記次のエントリに関連付けられた前記未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも低い、前記選択された優先順位ベースで順序付けられたリスト内のエントリを識別するように構成され、
    前記割り当て回路は、前記現在のトランザクションの新しいエントリを、前記識別されたエントリと隣接するが、前記識別されたエントリよりも前記ヘッド位置からより離れるように順序付けられる、前記選択された優先順位ベースで順序付けられたリストへ追加するようにさらに構成される、請求項11に記載のメモリコントローラ。
  13. 前記識別されたエントリの前記ポインタは前記新しいエントリを指すように更新され、前記新しいエントリの前記ポインタは前記次のエントリを指すように構成される、請求項12に記載のメモリコントローラ。
  14. 前記次のエントリ内で、前記関連付けられた未決着のトランザクションの前記優先順位指標が更新される、請求項13に記載のメモリコントローラ。
  15. 前記関連付けられた未決着のトランザクションの前記優先順位指標は、前記新しいエントリに関連付けられた前記現在のトランザクションの前記優先順位指標に相当するように更新される、請求項14に記載のメモリコントローラ。
  16. 前記新しいエントリが前記優先順位ベースで順序付けられたリスト内の前記テール位置にある場合に、前記割り当て回路によって、前記新しいエントリに前記テールインジケータを設定し、以前は前記テール位置にあった前記エントリの前記テールインジケータをクリアする、請求項12〜15のいずれかに記載のメモリコントローラ。
  17. 前記関連付けられた未決着のトランザクションの優先順位指標が前記現在のトランザクションの前記優先順位指標よりも高いまたは等しい、前記選択された優先順位ベースで順序付けられたリストにエントリがない場合に、前記割り当て回路は、前記ヘッド位置に前記現在のトランザクションの前記新しいエントリを追加するように構成され、前記新しいエントリに前記ヘッドインジケータが設定され、前記新しいエントリの前記ポインタは、以前に前記ヘッド位置であった前記エントリを指し、前記ヘッド位置にあった前記エントリのヘッドインジケータがクリアされるように構成される、請求項12〜16のうちのいずれかに記載のメモリコントローラ。
  18. 前記選択された優先順位ベースで順序付けられたリストが現在エントリを有しない場合に、前記割り当て回路は、前記現在のトランザクションに割り当てられた前記新しいエントリにそのヘッドインジケータとそのテールインジケータとの両方を設定するように構成される、請求項12〜17のうちのいずれかに記載のメモリコントローラ。
  19. 各アクセスタイミングで順序付けられたリスト内において、各エントリは、ヘッドインジケータとテールインジケータとを含み、前記ヘッドインジケータは、前記エントリが前記アクセスタイミングで順序付けられたリスト内のヘッド位置にある場合に設定され、前記テールインジケータは、前記エントリが前記アクセスタイミングで順序付けられたリスト内のテール位置にある場合に設定され、
    各エントリは、前記アクセスタイミングで順序付けられたリスト内の次のエントリへのポインタをさらに含み、前記次のエントリは、前記次のエントリを指したエントリよりも前記ヘッド位置からより離れた位置にある、いずれかの先行する請求項に記載のメモリコントローラ。
  20. 前記少なくとも1つのトランザクションソースによって発行されたバーストトランザクションは、前記メモリデバイスの複数のリンクバーストトランザクションに変換され、前記メモリコントローラは、
    前記リンクバーストトランザクションのうちの最初のものを前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つのエントリに割り当て、次いで、前記エントリに関連付けられたスパーリストのスパーリストエントリに前記残りのリンクトランザクションの全てを割り当てるように構成される割り当て回路と、をさらに含む、請求項19に記載のメモリコントローラ。
  21. 前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、そのエントリは、それに関連付けられた前記スパーリストを有し、前記アービトレーション動作は、前記ウィニングトランザクションとして、前記スパーリスト内にスパーリストエントリを有する前記リンクトランザクションのうちの1つを選択するように構成される、請求項20に記載のメモリコントローラ。
  22. 前記リンクトランザクションの全てがウィニング要求として選択される場合にのみ、前記アービトレーション動作は、それに続く以降のウィニングトランザクションとして、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの前記1つに前記次のエントリに関連付けられた前記トランザクションを選択するように構成される、請求項21に記載のメモリコントローラ。
  23. 前記メモリデバイスは、複数のバンクを含み、各バンクは、複数の行を含み、前記少なくとも1つのアクセスタイミングで順序付けられたリストは、未決着のトランザクションが存在する各バンクの各行に対して別々のアクセスタイミングで順序付けられたリストを含み、
    各アクセスタイミングで順序付けられたリスト内において、各エントリは、前記アクセスタイミングで順序付けられたリストが提供された前記バンクおよび行の指標を含む、請求項19〜22のいずれかに記載のメモリコントローラ。
  24. 前記優先順位指標は、各トランザクションのフィールド内に提供される明示的な優先順位指標である、いずれかの先行する請求項に記載のメモリコントローラ。
  25. 前記優先順位指標はサービスの質(QoS)レベル指標である、請求項24に記載のメモリコントローラ。
  26. 前記所定の例外条件は、特定の未決着のトランザクションの前記優先順位指標を、高い優先順位を表すように変更させる条件であり、前記アービトレーション回路は、前記所定の例外条件が存在する場合に、前記ウィニングトランザクションとして前記特定の未決着のトランザクションを選択するように構成され、前記記憶装置は、前記複数の順序付けられたリストからそのウィニングトランザクションのためのいかなるエントリも除去するように構成される、いずれかの先行する請求項に記載のメモリコントローラ。
  27. 前記アクセスタイミングで順序付けられたリストのうちの1つから選択される、少なくとも連続するウィニングトランザクションの数を監視し、閾値条件の発生時にリミッタ信号をアサートするように構成されるリミッタ回路と、
    前記リミッタ信号がアサートされる場合に前記所定の例外条件が検出され、前記アービトレーション回路は、前記リミッタ信号のアサートに応答し、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションが、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリストがまだ非空白である場合でも、前記アービトレーション動作の次の実行によって、前記ウィニングトランザクションとして、前記少なくとも1つの優先順位ベースで順序付けられたリストのうちの1つ内のヘッド位置にエントリを有する前記未決着のトランザクションを選択する、
    いずれかの先行する請求項に記載のメモリコントローラ。
  28. 前記インターフェースによって受信された前記トランザクションは読み込まれたトランザクションである、いずれかの先行する請求項に記載のメモリコントローラ。
  29. 前記アービトレーション回路は、複数のアービトレーション動作を並列で実行するように構成される、いずれかの先行する請求項に記載のメモリコントローラ。
  30. メモリデバイスへのアクセスを制御する方法であって、前記メモリデバイスは、メモリアドレスのアクセスにかかる時間は前記メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、前記方法は、
    少なくとも1つのトランザクションソースから発行されるトランザクションを受信することであって、各トランザクションはそのトランザクションについてアクセスされる前記メモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記受信することと、
    未決着のトランザクションとして、出力インターフェースから前記メモリデバイスへまだ出力されていないそれらの受信されたトランザクションを記憶装置内に一時的に記憶することであって、前記記憶装置は前記記憶された未決着のトランザクションのために複数の順序付けられたリストを維持し、前記複数のリストは少なくとも1つの優先順位ベースで順序付けられたリストと少なくとも1つのアクセスタイミングで順序付けられたリストとを含む、前記記憶することと、
    多数のエントリを有するように各優先順位ベースで順序付けられたリストを構成することであって、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは前記関連付けられた未決着のトランザクションの前記優先順位指標に基づいて、その優先順位ベースで順序付けられたリスト内に順序付けられる、前記構成することと、
    多数のエントリを有するように各アクセスタイミングで順序付けられたリストを構成することであって、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリストに関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスがアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成する、前記構成することと、
    前記出力インターフェースから前記メモリデバイスに出力されるウィニングトランザクションを前記未決着のトランザクションから選択するように、前記複数の順序付けられたリストが参照されるアービトレーション動作を実行し、前記複数の順序付けられたリストから前記ウィニングトランザクションに対するエントリを除去することと、を含み、
    前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリストのうちの1つにエントリを有し、少なくとも1つのアクセスタイミングで順序付けられたリストはまだ非空白であり、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリストにエントリを有する前記未決着のトランザクションのうちの1つを選択する、前記方法。
  31. メモリデバイスへのアクセスを制御するためのメモリコントローラであって、前記メモリデバイスは、メモリアドレスへのアクセスにかかる時間が前記メモリデバイス内の先行するアクセスアクティビティに依存するように、不均等アクセスタイミング特性を有し、前記メモリコントローラは、
    少なくとも1つのトランザクションソースから発行されたトランザクションを受信するためのインターフェース手段であって、各トランザクションは、そのトランザクションのためにアクセスされる前記メモリアドレスを指定し、そのトランザクションに関連付けられた優先順位指標を含む、前記インターフェース手段と、
    前記メモリコントローラによって前記メモリデバイスへまだ発行されていない前記インターフェース手段によって受信されたそれらのトランザクションを未決着のトランザクションとして一時的に記憶するための記憶手段であって、前記記憶された未決着のトランザクションの複数の順序付けられたリスト手段を維持し、前記リスト手段は、少なくとも1つの優先順位ベースで順序付けられたリスト手段と少なくとも1つのアクセスタイミングで順序付けられたリスト手段とを含む、前記記憶手段と、を有し
    各優先順位ベースで順序付けられたリスト手段は多数のエントリを有し、各エントリは前記未決着のトランザクションのうちの1つに関連付けられ、各エントリは、関連付けられた未決着のトランザクションの優先順位指標に基づいてその優先順位ベースで順序付けられたリスト手段内に順序付けられ、
    各アクセスタイミングで順序付けられたリスト手段は多数のエントリを有し、各エントリは、前記未決着のトランザクションのうちの1つに関連付けられ、各アクセスタイミングで順序付けられたリスト手段に関連付けられる前記未決着のトランザクションは、グループ内の1つのトランザクションの前記メモリアドレスにアクセスされると、前記不均等アクセスタイミング特性に配慮した前記メモリデバイスによって、そのメモリアドレスに効率的にアクセスすることができる、トランザクショングループを形成し、
    前記メモリコントローラはさらに、
    前記未決着のトランザクションから前記メモリデバイスに発行されるウィニングトランザクションを選択するように、前記複数の順序付けられたリスト手段が参照されるアービトレーション動作を実行するためのアービトレーション手段を含み、
    前記記憶手段は、前記複数の順序付けられたリスト手段から、前記ウィニングトランザクションに対するエントリを除去し、
    前記アービトレーション動作が実行される場合に、最後に前記アービトレーション動作が実行された時に選択された前記ウィニングトランザクションは、前記少なくとも1つのアクセスタイミングで順序付けられたリスト手段のうちの1つにエントリを有し、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段はまだ非空白であり、前記アービトレーション動作は、所定の例外条件が存在しない限り、前記ウィニングトランザクションとして、その少なくとも1つのアクセスタイミングで順序付けられたリスト手段内にエントリを有する前記未決着のトランザクションのうちの1つを選択する、前記メモリコントローラ。
JP2014516433A 2011-06-24 2012-05-29 メモリコントローラおよびかかるメモリコントローラの動作方法 Active JP6072783B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
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
US13/067,775 2011-06-24
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 true JP2014517431A (ja) 2014-07-17
JP6072783B2 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015511052A (ja) * 2013-01-17 2015-04-13 インテル コーポレイション 共有メモリ・ファブリックを介したメモリ・アクセスの調停
JP2016042355A (ja) * 2014-08-14 2016-03-31 エイアールエム リミテッド 相互接続回路のための伝送制御検査
CN110073340A (zh) * 2016-12-19 2019-07-30 Arm有限公司 事务处理

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101292309B1 (ko) * 2011-12-27 2013-07-31 숭실대학교산학협력단 반도체칩 및 메모리 제어방법, 그리고 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
KR101949382B1 (ko) * 2012-04-04 2019-02-18 삼성전자주식회사 서비스 품질의 향상을 위한 시스템 온 칩 및 시스템 온 칩의 제어 방법
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
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
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
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
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
CN107273059A (zh) * 2017-07-06 2017-10-20 郑州云海信息技术有限公司 一种存储命令的配置方法及系统
US11360934B1 (en) 2017-09-15 2022-06-14 Groq, Inc. Tensor streaming processor architecture
US11868804B1 (en) 2019-11-18 2024-01-09 Groq, Inc. Processor instruction dispatch configuration
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
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
US11455370B2 (en) 2018-11-19 2022-09-27 Groq, Inc. Flattened input stream generation for convolution with expanded kernel
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 摩尔线程智能科技(北京)有限责任公司 存储器访问电路及存储器访问方法、集成电路和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124984A (ja) * 1997-05-02 1999-01-29 Matsushita Electric Ind Co Ltd 複数アドレス保持記憶装置
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
JP2004252985A (ja) * 2003-02-19 2004-09-09 Canon Inc メモリ要求の動的並べ替え

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2325061B (en) * 1997-04-30 2001-06-06 Advanced Risc Mach Ltd Memory access protection
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 松下电器产业株式会社 存储器控制装置
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1124984A (ja) * 1997-05-02 1999-01-29 Matsushita Electric Ind Co Ltd 複数アドレス保持記憶装置
US6088772A (en) * 1997-06-13 2000-07-11 Intel Corporation Method and apparatus for improving system performance when reordering commands
JP2004252985A (ja) * 2003-02-19 2004-09-09 Canon Inc メモリ要求の動的並べ替え

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015511052A (ja) * 2013-01-17 2015-04-13 インテル コーポレイション 共有メモリ・ファブリックを介したメモリ・アクセスの調停
JP2016042355A (ja) * 2014-08-14 2016-03-31 エイアールエム リミテッド 相互接続回路のための伝送制御検査
CN110073340A (zh) * 2016-12-19 2019-07-30 Arm有限公司 事务处理
JP2020502660A (ja) * 2016-12-19 2020-01-23 エイアールエム リミテッド トランザクション操作
JP7084406B2 (ja) 2016-12-19 2022-06-14 アーム・リミテッド トランザクション操作

Also Published As

Publication number Publication date
KR101883155B1 (ko) 2018-07-30
EP2724240B1 (en) 2015-06-24
KR20140048186A (ko) 2014-04-23
JP6072783B2 (ja) 2017-02-01
IL229736A (en) 2017-07-31
RU2014102242A (ru) 2015-07-27
IL229736A0 (en) 2014-01-30
CN103620570B (zh) 2017-02-15
EP2724240A1 (en) 2014-04-30
US8775754B2 (en) 2014-07-08
US20120331197A1 (en) 2012-12-27
CN103620570A (zh) 2014-03-05
MY165068A (en) 2018-02-28
WO2012175929A1 (en) 2012-12-27
RU2597520C2 (ru) 2016-09-10

Similar Documents

Publication Publication Date Title
JP6072783B2 (ja) メモリコントローラおよびかかるメモリコントローラの動作方法
US9639280B2 (en) Ordering memory commands in a computer system
US8266389B2 (en) Hierarchical memory arbitration technique for disparate sources
US6092158A (en) Method and apparatus for arbitrating between command streams
US8996824B2 (en) Memory reorder queue biasing preceding high latency operations
KR101270848B1 (ko) 트래픽 클래스들과 관련된 포트들을 갖는 다중 포트 메모리 제어기
US9141568B2 (en) Proportional memory operation throttling
US20210073152A1 (en) Dynamic page state aware scheduling of read/write burst transactions
CN111742305A (zh) 调度具有不统一等待时间的存储器请求
US10503670B2 (en) Dynamic per-bank and all-bank refresh
US10152434B2 (en) Efficient arbitration for memory accesses
WO2011126625A2 (en) Scheduling memory access requests using predicted memory timing and state information
US8505016B2 (en) Enhanced shortest-job-first memory request scheduling
EP3361388B1 (en) Distribution of master device tasks among bus queues
US9195621B2 (en) System and method for assigning memory access transfers between communication channels
CN111684430A (zh) 支持同一信道上对不统一等待时间的存储器类型的响应
TWI704488B (zh) 網路裝置、用於網路裝置之記憶體系統及操作網路裝置之方法
CN115202842A (zh) 任务调度方法及装置
US20230135952A1 (en) System for managing access to a memory resource by multiple users

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