JP2008500668A - 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法 - Google Patents

多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法 Download PDF

Info

Publication number
JP2008500668A
JP2008500668A JP2007527567A JP2007527567A JP2008500668A JP 2008500668 A JP2008500668 A JP 2008500668A JP 2007527567 A JP2007527567 A JP 2007527567A JP 2007527567 A JP2007527567 A JP 2007527567A JP 2008500668 A JP2008500668 A JP 2008500668A
Authority
JP
Japan
Prior art keywords
memory
latency time
group
memory device
time group
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
JP2007527567A
Other languages
English (en)
Other versions
JP2008500668A5 (ja
JP4926963B2 (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 JP2008500668A publication Critical patent/JP2008500668A/ja
Publication of JP2008500668A5 publication Critical patent/JP2008500668A5/ja
Application granted granted Critical
Publication of JP4926963B2 publication Critical patent/JP4926963B2/ja
Active 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/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
    • 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

多数のメモリ装置を有するメモリシステムが、物理メモリの異なる領域に対して異なるレイテンシ時間を可能にすることと、頻繁にアクセスされるメモリアドレスを物理メモリの最短レイテンシ時間領域に位置づけるのに役立つアドレスマップを提供することと、頻繁にアクセスされるメモリアドレスを物理メモリの最短レイテンシ時間領域に割り当てることとによって、平均アクセスレイテンシ時間を短縮する。

Description

技術分野
開示される実施形態は、一般的にはコンピュータメモリシステムおよび方法に関し、特に多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおける性能の改善に関する。
背景
コンピュータシステムが発展し続けるにつれて、メモリシステムが、全体的なシステム性能の制限要因になっている。メモリ帯域幅の重要性が増加し続ける一方で、メモリレイテンシ時間が、システム性能においてやはり重要な役割を果たしている。たとえば、より高い信号速度では、メモリ装置の多数のランク間の伝搬遅延は、一クロックサイクルを超えて、潜在的に、メモリ装置の異なるランク間の様々なアクセスレイテンシ時間に帰着する可能性がある。ダイレクト・ランバス・ダイナミックランダムアクセスメモリ(RDRAM)を用いるメモリシステムは、かかるシステムの一例である。ダブルデータレート(DDR)およびDDR−IIなどの他のメモリタイプは、DRAMの異なるランク(たとえば異なるメモリモジュール)が、異なるアクセスレイテンシ時間を有することを潜在的に可能にする信号トポロジおよび相互接続トポロジを用いる。
ダイレクトRDRAMを用いるシステムは、他よりも早く応答できる装置のランクに遅延を加えることによって、DRAMの全てのランクにわたって1つの均一なレイテンシ時間を実行するチャネルレベライゼーション(channel levelization)(以下では「グローバルレベライゼーション」とも呼ぶ)を利用した。これにより、結果として有効帯域幅の増加がもたらされる。なぜなら、DRAMの異なるランク間に存在するデータバブルが除去されるからである。また、これによって、メモリコントローラの設計が単純化される。チャネルレベライゼーションは、いくつかの重要な利点を提供する一方でまた、別の状況ではより少ないレイテンシ時間で応答可能な装置のランクのDRAMレイテンシ時間を増加させる悪影響がある。その結果、アプリケーションによっては、グローバルレベライゼーションによる性能の低下があり得る。
実施形態の説明
概要
以下でより詳細に説明するように、メモリシステムにおけるメモリ装置へのアクセスを制御する方法において、メモリシステムのメモリ装置は、第1のレイテンシ時間グループおよび第2のレイテンシ時間グループを含むレイテンシ時間グループに割り当てられる。第1のレイテンシ時間グループは、第2のレイテンシ時間グループより短いレイテンシ時間を有する。さらに、メモリアドレス空間の第1および第2の部分は識別され、アドレス空間の第1の部分は、第1のレイテンシ時間グループに割り当てられた少なくとも1つのメモリ装置にマップされ、一方で、アドレス空間の第2の部分は、第2のレイテンシ時間グループに割り当てられた少なくとも1つのメモリ装置にマップされる。アドレス空間の第1の部分に、アドレス空間の第2の部分より短いアクセスレイテンシ時間を提供することにより、結果として、メモリシステムの性能の改善をもたらすことができる。いくつかの実施形態において、3以上のレイテンシ時間グループ、およびメモリアドレス空間の3以上の部分が用いられる。
いくつかの実施形態において、メモリ装置には、コマンドインターフェースに結合されたメモリアレイが含まれるが、このコマンドインターフェースは、遅延値の受信のためにメモリシステムに結合されるように構成されている。メモリ装置にはまた、コマンドインターフェースおよび出力データパスに結合された遅延装置が含まれる。遅延装置は、メモリアレイから検索されかつ出力データパスで伝送されるデータを、遅延値によって決定される遅延期間、遅延させるように構成されている。他の実施形態において、レイテンシ時間制御信号を用いて、メモリアクセスレイテンシ時間を制御してもよい。
いくつかの実施形態において、多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおけるメモリ装置へのアクセスを制御する方法には、メモリアクセス要求を復号してメモリ装置識別子を提供するステップと、メモリ装置識別子に関連するレイテンシ時間グループを識別するステップであって、このレイテンシ時間グループが、メモリシステムにおける複数のレイテンシ時間グループの1つであるステップと、識別されたレイテンシ時間グループを、前のメモリアクセス要求に関連するレイテンシ時間グループと比較するステップと、比較の結果に応じてタイミング制御信号を生成するステップと、が含まれる。いくつかの実施形態において、メモリコントローラは、メモリシステムにおけるメモリ装置へのアクセスを制御するこの方法を実行するように構成されているが、この方法の実行は、前および現在のメモリアクセス要求の時間を比較し、かつ次に、比較の結果を、前および現在のメモリアクセス要求のためのレイテンシ時間グループ情報と組み合わせて用いて、バス衝突を回避するために現在のメモリアクセスコマンドの発行を遅延させるべきかどうかを決定することによる。
いくつかの実施形態において、システムには、メモリコントローラと、メモリコントローラに結合された第1のメモリモジュールと、メモリコントローラに結合された第2のメモリモジュールと、が含まれる。第1のメモリモジュールには、第1のバッファおよび第1のバッファに結合された第1のメモリ装置が含まれる。第1のバッファは、第1の割り当てられたアクセスレイテンシ時間を有する。第2のメモリモジュールには、第2のバッファおよび第2のバッファに結合された第2のメモリ装置が含まれる。第2のバッファは、第2の割り当てられたアクセスレイテンシ時間を有する。
第1のメモリモジュールは、第2のメモリモジュールと直列に配置してもよい。第1の割り当てられたアクセスレイテンシ時間には、読み出し要求がコントローラから第1のバッファに送出される時間から、読み出し完了データが第1のバッファからコントローラへ送られ、コントローラによってサンプリングされる時間までを含んでもよい。第2の割り当てられたアクセスレイテンシ時間には、読み出し要求がコントローラから第2のバッファに送出される時間から、読み出し完了データが第2のバッファからコントローラへ送られ、コントローラによってサンプリングされる時間までを含んでもよい。
いくつかの実施形態において、第1および第2のメモリモジュールに配置されたメモリ装置が、アクセスされ得る。第1のメモリモジュールへの第1のアクセスレイテンシ時間を、割り当ててもよい。第1のメモリモジュールには、第1のバッファおよび第1のバッファに結合された第1のメモリ装置が含まれる。第2のメモリモジュールへの第2のアクセスレイテンシ時間が、割り当てられる。第2のメモリモジュールには、第2のバッファおよび第2のバッファに結合された第2のメモリ装置が含まれる。
グループレベライゼーションの利点は、実行負荷のほとんどが、ソフトウェア(たとえばBIOS)にあるということである。たとえば、この技術は、マザーボードメーカ、システムインテグレータ、エンドユーザ等がイネーブルできるBIOSオプションとして、既製のメモリコントローラ(たとえばSiS R658)で実行することができる。実行負荷のほとんどがソフトウェアにあるので、エンドユーザは、多数の装置ID/ランクマッピングから選択するか、または自身のカスタムマッピングを生成することができる。
グローバルレベライゼーション
図1は、グローバルレベライゼーションを用いるメモリシステム100のブロック図である。メモリシステム100には、多数のパラレル伝送線路(以下では「チャネル」とも呼ぶ)を介して直列に接続された1つまたは複数のメモリ装置104−1、...、104−Nに結合されたメモリコントローラ102が含まれる。いくつかの実施形態において、パラレル伝送線路には、データバス、要求バス、基準電圧(VRef)線路、マスタへのクロック(clock to master)(CTM)線路、マスタからのクロック(clock from master)(CFM)線路およびシリアル(SOut)バスが含まれる。他の実施形態において、バスまたは伝送線路の追加または他の構成を用いてもよい。メモリ装置104(たとえばDRAM、RDRAM)は、別個のメモリチップまたはメモリモジュール112(たとえばSIMM、DIMM、RIMM、C−RIMM)の一部とすることができる。図1Aは、RDRAMと共に典型的に用いられるメモリシステムアーキテクチャを示すが、開示される技術が、多重アクセスレイテンシ時間を伴う任意のメモリシステムアーキテクチャ(たとえばDDR、DDR−II等)に適用可能であることに留意されたい。
いくつかの実施形態において、メモリコントローラ102には、メモリ装置104と通信するための高速メモリインターフェース106が含まれる。メモリ装置104のそれぞれには、コマンドインターフェース108が含まれ、このインターフェース108にはプログラマブル遅延装置110が含まれるが、この遅延装置110は、アクセスレイテンシ時間を調節するために必要な遅延を提供するように構成することができる。メモリ装置104は、メモリコントローラ102から異なる電気的距離に存在し、結果として、メモリ装置104とメモリコントローラ102との間で、信号の異なるフライト時間をもたらしてもよい。メモリ装置104はまた、異なるCASレイテンシレイテンシ時間をサポートし、メモリコントローラ102によるアクセスレイテンシレイテンシ時間の差を導いてもよい。いくつかの実施形態において、各メモリ装置104のそれぞれのプログラマブル遅延装置110は、それぞれの指定された期間の間、出力データを格納するように構成され、アクセスされたメモリ装置に依存しない時間に、データが、メモリアクセス動作に応じてメモリコントローラ102に到達するようにする。したがって、メモリシステム100における各メモリ装置104は、メモリシステム100における最大レイテンシ時間のメモリ装置104(すなわちメモリ装置104−N)と同じレイテンシ時間Lで応答する。
いくつかの実施形態において、遅延装置110は、周知のプログラマブル遅延装置および設計技術を用いて実現される。しかしながら、クロック速度が増加するにつれて、メモリ装置104および/またはメモリコントローラ102の設計に著しい影響(たとえばサイズの増加)を与えることも、システムを限られた数のメモリ装置104に制限することもなく、グローバルレベライゼーションに必要とされる遅延を提供できる遅延装置110を設計することは、ますます困難になる。いくつかの実施形態において、遅延装置100は、指定されたクロックサイクル数だけ出力データ信号を遅延させるために、シフトレジスタおよび出力マルチプレクサを用いて実現される。指定されたクロックサイクル数は、遅延装置が埋め込まれているメモリ装置のレジスタに格納される。いくつかの実施形態において、レジスタは、初期化中に、メモリコントローラ102によって実行されるレジスタ書き込み動作を介してロードされ得る。他の実施形態において、レジスタは、メモリコントローラ102によってメモリ装置へ送られるコマンドに符号化される可変遅延をロードされ得る。クロックサイクル数は、初期化中に、メモリコントローラ102から最も遠いメモリ装置のメモリアクセスレイテンシ時間を計算することによって、決定することができる。
グローバルレベライゼーションを用いるメモリシステムを含む従来のメモリシステムでは、メモリアドレスは、従来のやり方でメモリ装置104に割り当てられる。図1Bに示すように、従来のメモリ割り当て方式は、オペレーティングシステム(OS)手順を低アドレス(より多くのメモリが必要とされるにつれて上に行く)に割り当て、アプリケーションプログラムを高アドレス(より多くのメモリが必要とされるにつれて下に行く)に割り当ててもよい。さらに、メモリアドレスは、(マップ114に示すように)、線形的なやり方でメモリ装置104にマップされ、最低アドレスが、チャネルの一端部におけるメモリ装置(たとえば、メモリコントローラ102に最も近いメモリ装置)にマップされ、最高アドレスが、チャネルのもう一方の端部におけるメモリ装置にマップされる。図1Bに示す例では、メモリ空間の一部分がオペレーティングシステムおよびアプリケーションによって用いられているだけであり、それは、多くのコンピュータシステムの通常動作中には、典型的である。上記のアドレスマッピング方式は、OS手順が、メモリコントローラ102に最も近いメモリ装置104に格納され、最も頻繁に用いられるアプリケーションプログラムが、メモリコントローラ102から最も遠く離れたメモリ装置104に格納されるという結果になる。このメモリ割り当て手法は、アクセスレイテンシ時間Lがアクセスされるメモリ装置に依存しないので、グローバルレベライゼーションを備えたメモリシステムを用いるコンピュータでは問題ではない。しかしながら、このメモリ割り当て手法は、異なるメモリ装置が異なるアクセスレイテンシ時間を有するシステムでは、次善的に作動することになり得る。
グループレベライゼーション
図2Aは、領域ベースのグループレベライゼーションを用いるメモリシステム200のブロック図である。メモリシステム200は、メモリアドレスがメモリ装置104にマップされる方法を除いて、メモリシステム100と同様である。さらに、システム200では、プログラマブル遅延装置110は、各レイテンシ時間グループにおけるメモリ装置が共通のアクセスレイテンシ時間を有するように、構成されているが、しかし、各レイテンシ時間グループは、別個のアクセスレイテンシ時間を有し、メモリコントローラ202に最も近いレイテンシ時間グループにおける装置が、メモリコントローラ202から最も遠いレイテンシ時間グループにおける装置より短いアクセスレイテンシ時間を有する。
メモリシステム200において、メモリコントローラ102に最も近いメモリ装置104(たとえば、装置104−0、104−1および104−2)は、頻繁にアクセスされるメモリ位置(たとえば、アプリケーションプログラムおよびオペレーティングシステムによって用いられるアドレス位置)にマップされるか又は割り当てられ、メモリコントローラから最も遠いメモリ装置104(たとえば104−5から104−N)は、アクセス頻度のより少ないメモリアドレスにマップされるか又は割り当てられる。最初に最短レイテンシ時間グループから優先的にメモリを割り当てることによって、オペレーティングシステムが、このマッピングを利用し、性能を改善できることに留意されたい。また、メモリが満杯である場合には、オペレーティングシステムは、メモリのどのエリアが最も頻繁にアクセスされるかを監視し、次に、より短いレイテンシ時間グループとより長いレイテンシ時間グループとの間であちこちにデータを移動させて、性能を改善することができる。また、メモリシステムの動作を監視し、メモリ帯域幅ニーズおよびアプリケーションのメモリ占有量などの要素の関数として最適な平均システムレイテンシ時間を決定することによって、各レイテンシ時間グループにおける装置の数を動的に変更してシステム性能を最適化し、次に、装置の再割り当てが予測されるシステム性能を改善するであろう場合には、レイテンシ時間グループ間で装置を再割り当てすることが可能である。
図2Bは、グループレベライゼーションと共に用いるためのメモリマップ214を示す。装置1および2(104−1および104−2)は、アプリケーションプログラム用のアドレスにマップされ、一方で、装置5からN(104−5から104−N)は、アクセス頻度のより少ないメモリアドレスにマップされる。OS手順が、アプリケーションプログラムよりさらに一層頻繁にアクセスされるので、チャネルの第1の装置(装置0)にやはりマップされることに留意されたい。より一般的には、OS手順および最も頻繁に用いられるアプリケーションプログラム用のアドレスは、最短レイテンシ時間グループGにおけるメモリ装置にマップされる。レイテンシ時間グループは、次に論じる。
メモリ装置104をメモリアドレス空間における部分に割り当てることに加えて、各メモリ装置104は、異なるレイテンシ時間をそれぞれ有するレイテンシ時間グループG...Gのセットのうちの1つに割り当てられる。たとえば、図2Aでは、チャネルは、以下ではレイテンシ時間グループG(近いグループ)およびG(遠いグループ)と呼ばれる、メモリ装置104の2つのレイテンシ時間グループに分割される。レイテンシ時間グループGに割り当てられたメモリ装置104は、グループにおける最大レイテンシ時間装置のレイテンシ時間L(クロックサイクルで測定される)に均一化され、一方で、レイテンシ時間グループGに割り当てられたメモリ装置104は、グループGにおける最大レイテンシ時間装置のレイテンシ時間Lに均一化される。いくつかの実施形態において、レイテンシ時間Lは、グループGのLレイテンシ時間よりNクロックサイクル長い、すなわちL=L+Nであるが、ここで、Nは、限定するわけではないが、コントローラクロックサイクルに対するメモリバスクロックサイクルの比率、クロックサイクルでのデータパケット長さ、およびレイテンシ時間差を始めとする様々な基準に基づいて選択され、一方で、遅延装置は、グループGにおける最大レイテンシ時間装置とグループGにおける最大レイテンシ時間装置との間で、ゼロ遅延に設定される。いくつかの実施形態において、Nは4に等しいが、それは、RDRAM装置を用いる少なくともいくつかのメモリシステムのメモリバスクロックサイクルにおけるデータパケット長さである。
レイテンシ時間LおよびNは、限定するわけではないが、システム構成、メモリ装置のランク数、装置密度、マザーボードレイアウト、フロントサイドバス(FSB)速度、メモリバス速度、メモリコントローラクロック速度、フロントサイドバスのタイミングに合致するために必要なレイテンシ時間、およびメモリ装置104の転送速度を始めとする多くの要素に基づいて決定することができる。特定のレイテンシ時間グループに割り当てられるメモリ装置104の数は、アプリケーションに基づき、必要に応じて設定することができる。かくして、次の式、
<L < (1)
が満たされる場合には、グループレベライゼーションを用いることにより、レイテンシ時間Lを有するグローバルレベライゼーションと比較して、潜在的な性能の改善が得られる。
上記の実施形態が2つのレイテンシ時間グループを有するのに対して、他の実施形態では、3以上のレイテンシ時間グループが用いられる。
図3は、グループレベライゼーションで用いるメモリ装置104のブロック図である。メモリ装置104には、一般に、メモリアレイ302に結合されたコマンドインターフェース108が含まれる。コマンドインターフェース108には、メモリコントローラ202から受信された信号を処理するための、およびメモリアレイ302にメモリアクセスコマンド(たとえば、読み出し、書き込み)を供給するためのメモリアクセス制御部304が含まれる。メモリ装置104には、入力および出力データパス308および310が含まれる。出力データパス310は、プログラマブル遅延装置110に結合され、遅延装置110は、メモリアレイ302から検索したデータを、レジスタ306に格納された遅延値に従って遅延させる。遅延値(クロックサイクルで測定できる)は、図4に関連して説明するように、メモリコントローラ202が送るレイテンシ時間制御信号によって決定される。
図4は、グループレベライゼーションで用いるメモリコントローラ202の一実施形態のブロック図である。いくつかの実施形態において、メモリコントローラ202には、フロントサイドバスインターフェース402(たとえば、データプロセッサまたはCPUとの通信を取り扱うための)、グラフィックインターフェース404(たとえばAGPインターフェース)、I/Oインターフェース408、調停ユニット406、コントローラロジック410、メモリ412、および高速メモリインターフェース106が含まれる。いくつかの実施形態では、これらの構成要素の1つまたは複数が、コントローラには含まれない(たとえば、フロントサイドバスインターフェースは、コントローラ202がCPUと一体化されているインプリメンテーションでは省略してもよい)。コントローラロジック410は、メモリ412に結合されるが、メモリ412には、グループ表414、最後のグループ416、初期化コード418、およびグループレベライゼーションコード420が含まれる。図4が、メモリコントローラの一特定実施形態を表わすことに留意されたい。開示されるグループレベライゼーション技術は、多くのタイプのメモリコントローラ(たとえば、インテル(Intel)プロセッサ、AMDプロセッサ、GPU、ネットワークプロセッサ等と共に用いられるメモリコントローラ)を用いて利用することができる。いくつかの実施形態において、初期化コード418およびグループレベライゼーションコード420は、BIOS EPROMに格納されるが、このBIOS EPROMは、バスまたは他の相互接続構造を介してメモリコントローラ202に結合される別個のチップとすることができる。
メモリコントローラ202の初期化中に、初期化コード418は、コントローラロジック410によって実行される。初期化コードは、メモリ装置をレイテンシ時間グループに割り当てる役割、したがって、グループ表414のエントリ部に記入する役割を担う。グループ表414のフォーマットおよび内容は、以下でより詳細に論じる。いくつかの実施形態において、グループ表414は、静的表ではなく、システムが起動されるたびに動的に作成され、システムにおける変更(たとえば、メモリが追加されたかまたは除去されたかも知れない)を明らかにする。他の実施形態において、グループ表414は、メモリアクセス頻度が変化するとともに、変更することができる。
また、初期化中に、グループレベライゼーションコード420は、各レイテンシ時間グループにおける全てのメモリ装置が確かに同じレイテンシ時間を有するように、実行される。システムが最初に起動されたとき、特定のレイテンシ時間グループにおける第1の装置へのアクセスレイテンシ時間は、グループにおける最後の装置へのアクセスレイテンシ時間より短くてもよい。グループレベライゼーションコード420は、同じグループにおける全てのメモリ装置にわたってレイテンシ時間を均一化する役割を担う。そうするために、グループレベライゼーションコード420は、グループにおけるメモリ装置のそれぞれにどれだけの遅延(必要ならば)を加えるかを決定して、メモリ装置が、グループにおける最大レイテンシ時間メモリ装置のレイテンシ時間と一致するようにする。最短レイテンシ時間を有する、各グループのメモリ装置は、グループレベライゼーションコードの制御下で、たとえば、レジスタ306(図3)にしかるべき値を格納することによって、自身の遅延装置110(図3)を構成してもよい。その後、このプロセスは、各レイテンシ時間グループに対して繰り返される。いくつかの実施形態において、グループレベライゼーションコードは、初期化コード418の一部として実行される。
動作中に、メモリ要求は、インターフェース402、404および408を介して受信され、キュー422に格納される。キュー422に格納されたメモリ要求は、従来の調停技術(たとえば、ラウンドロビン、優先権等)を用い、調停ユニット406によってメモリアクセス競合に対して検査される。調停ユニット406は、キュー422に格納された要求からメモリ要求を選択し、選択されたメモリ要求をコントローラロジック410へ転送する。その後、選択されたメモリ要求のN−ビットアドレス(たとえば28ビット、32ビットまたは64ビットアドレス)が、特定のメモリ装置104の特定のバンク、行および列にアクセスするために復号される。サンプルアドレスマッピング(すなわちNアドレスビットのマップ)を、以下の表Iに示す。
Figure 2008500668
アドレスの装置IDフィールドには、メモリシステム200における特定のメモリ装置を示す値が含まれ、バンクフィールドには、装置IDによって識別されたメモリ装置内のサブアレイを示す値が含まれ、行および列フィールドには、装置IDおよびバンク値に関連するメモリバンクにおける特定の位置を識別する値が含まれる。しかしながら、次に説明するように、装置IDの値は、メモリシステムにおける関連メモリ装置の物理的位置は特定しない。
コントローラロジック410は、(たとえばビットマスキング技術を用いて)メモリアドレスから装置IDを抽出し、それをグループ表414への索引として用いる。グループ表は、それぞれのメモリ装置が割り当てられているレイテンシ時間グループを示す、各メモリ装置それぞれのためのエントリ部を有する。いくつかの実施形態において、グループ表414は、(図2に関した)以下の表IIに示すフォーマットを有する。
Figure 2008500668
グループ表414は、図6に関連して説明するプロセスを用いて、メモリアドレス(それらの装置IDによって表わされる)と、メモリ装置104を割り当てられているレイテンシ時間グループG...Gとの間のマッピングを提供する。表IIはまた、物理メモリ装置、すなわちそれらの装置IDおよびグループ値がグループ表に格納されている物理メモリ装置の位置を示すのに対して、いくつかの実施形態(たとえば、ここでは、メモリ装置が、それらの装置IDを用いてアドレス指定される)では、物理メモリ位置は、グループ表414に格納されない。他の実施形態において、グループ表414は、各メモリ装置の物理位置を格納する。
メモリアクセス要求のための物理メモリ装置およびレイテンシ時間グループが、グループ表414から一旦決定されると、連続するメモリアクセス要求が異なるグループに向けられている場合には、データバス衝突を回避するために、それらの要求を遅延させることが必要であり得る。連続する要求のレイテンシ時間グループが異なる場合、および特に、現在のメモリ要求が、前のメモリアクセス要求(最後のグループのデータ構造416に格納されたデータによって識別される)のレイテンシ時間グループより短いレイテンシ時間グループのメモリ装置におけるデータを読み出す要求である場合には、コントローラロジック410は、直前および現在のメモリアクセスコマンドによって返されるデータ間の衝突を回避するのに十分な時間量だけ、現在のメモリアクセスコマンドの伝送を遅延させる。より一般的には、現在および前のメモリアクセス要求のグループレイテンシ時間を用いて、前のメモリアクセス要求の伝送と現在のメモリアクセス要求の伝送との間の最小時間遅延を決定することができる。現在および前のメモリアクセス要求間の時間が、決定された最小時間遅延より短い場合には、現在のメモリアクセストランザクションの伝送は、少なくとも最小時間遅延が、前のメモリアクセス要求の伝送から経過するまで、遅延されなければならない。メモリアクセスが、要求が連続ではなく、十分な時間量だけ分離されている場合には、データバス衝突がないはずなので、後のメモリアクセス要求を遅延させる必要はない。
連続するメモリアクセス要求間の遅延は、多くの方法で実行可能であり、これらの方法には、メモリアクセスコマンドを送る前の、コントローラロジック410による、または指定された時間量(たとえば、指定されたコントローラクロックサイクル数、または指定されたメモリバスサイクル数)だけメモリアクセスコマンドの伝送を遅延させるために、メモリインターフェース106にタイミング回路をプログラムすることによる、定義済みの数の「ノーオペレーション」コマンドの実行などがある。
上記の技術を用いることにより、メモリ装置104−0、104−1および104−2にマップされたメモリアドレスへのメモリ要求は、グローバルレベライゼーションによって提供されるレイテンシ時間Lより短いグループレイテンシ時間Lを有する。同様に、メモリ装置104−5から104−Nにマップされたメモリアドレスへのメモリ要求は、グローバルレベライゼーションによって提供されるレイテンシ時間L以上のグループレイテンシ時間Lを有する。
図5は、グループレベライゼーションを用い、かつ容量の増加および/またはよりよいシグナルインテグリティのためのバッファを含むメモリシステム500のブロック図である。メモリシステム500には、一般に、直列接続バッファ504に結合されたメモリコントローラ502が含まれる。各バッファは、1つまたは複数のメモリ装置に結合され、これらのメモリ装置は、共同でメモリモジュールを形成する。いくつかの実施形態において、グループレベライゼーションは、各個別のメモリモジュールを、それ自身のレイテンシ時間グループに指定することによって実現することができる。他の実施形態において、バッファに最も近い、モジュール内のメモリ装置は、あるレイテンシ時間グループにあってもよく、一方で、バッファからさらに遠い、同じモジュールのメモリ装置は、別のレイテンシ時間グループにあってもよい。この構成では、異なるモジュールにおけるメモリ装置のサブセットが、同じレイテンシ時間グループにあることができる。あるいは、多数のメモリモジュールを、同じレイテンシ時間グループに割り当てることができる。
図6は、グループレベライゼーションを用いるメモリシステム200で使用するメモリ装置にメモリアドレスを割り当てるプロセスの流れ図である。いくつかの実施形態において、メモリ装置にメモリアドレスを割り当てるプロセスは、メモリシステム200の初期化中に生じる。このプロセスは、メモリ装置104をレイテンシ時間グループG...Gに割り当てること(ステップ600)によって始まる。任意の数のレイテンシ時間グループG...Gが存在でき、各グループは、異なるレイテンシ時間を有する。次に、メモリシステム200のメモリアドレス空間における最も頻繁にアクセスされる部分が、識別される(ステップ602)。これは、監視装置(たとえばメモリアクセス監視回路)、監視ソフトウェア、またはメモリアクセス要求を監視しかつメモリアドレス空間の様々な部分に対するメモリアクセス頻度を決定する、メモリコントローラにおける監視ロジックを用いて、システム開発中または実行中に行なわれる実験を介して達成できる。最終ステップには、メモリアドレス空間の識別された部分を、割り当てられたレイテンシ時間グループにおけるメモリ装置104へマップするステップ604が含まれる。これによって、最も頻繁にアクセスされるアドレス(または、より正確には、最も頻繁にアクセスされるアドレス領域)が、メモリコントローラ202に最も近いメモリ装置にマップされ、平均アクセスレイテンシ時間が短縮されるという結果になる。アクセス頻度は経時的に変化する可能性があることに留意されたい。したがって、従来のグローバルレベライゼーション技術より優れたグループレベライゼーション技術の利点は、メモリアクセス頻度の監視に基づいて、メモリアドレスマッピングを動的に変更する能力である。換言すれば、いくつかの実施形態において、ステップ602および604を適切な時に再実行して、最も頻繁にアクセスされるアドレス領域を、最小レイテンシ時間を有するレイテンシ時間グループへ、またはより一般的には、少なくとも1つの他のレイテンシ時間グループのレイテンシ時間より小さな関連レイテンシ時間を有するレイテンシ時間グループへ再マップするようにする。
図7は、グループレベライゼーションを用いるメモリシステム200においてレイテンシ時間を制御するプロセスの流れ図である。いくつかの実施形態では、グループレベライゼーションを用いるメモリシステム200においてレイテンシ時間を制御するプロセスは、メモリシステム200の動作中に生じる。このプロセスは、メモリアクセス要求を復号してメモリ装置IDを提供すること(ステップ700)によって始まる。メモリシステム200は、メモリ装置識別子に関連するレイテンシ時間グループを識別する(ステップ702)。いくつかの実施形態において、このステップは、表IIに示す構造を有するグループ表414への索引としてメモリ装置IDを用いることによって、達成される。一旦レイテンシ時間グループが識別される(ステップ702)と、それは、前のメモリアクセス要求に関連するレイテンシ時間グループおよび前のメモリアクセス要求の時間と比較される(ステップ704)。比較(ステップ704)に応じて、タイミング制御信号が生成される(ステップ706)。より具体的には、現在のメモリ要求が、現在の要求の直前のメモリ読み出し要求より短いレイテンシ時間グループのメモリ装置におけるデータを読み出す要求である場合には、タイミング制御信号は、コントローラロジックに、直前および現在のメモリアクセスコマンドによって返されるデータ間の衝突を回避するのに必要な時間量だけ、現在のメモリアクセスコマンドの伝送を遅延させる。
いくつかのシステムにとっては、データバス衝突を回避するために、多数の前のトランザクションとの比較が必要であり得る。メモリシステムの最大グループレイテンシ時間と最小グループレイテンシ時間との差が大きい(多数のメモリバスサイクル)場合には、ステップ704は、現在のメモリ要求のレイテンシ時間グループを、Kの前のメモリアクセスコマンドのそれぞれのレイテンシ時間グループと比較することが必要になり得るが、ここで、Kは、潜在的に現在のメモリアクセス要求と干渉する可能性がある前のメモリアクセス要求の最大数を表わす。さらに、現在のメモリ要求が遅延される量は、あるとすると、潜在的に衝突するメモリ要求が生じた時間と同様に、潜在的に衝突するメモリ要求間のレイテンシ時間における差の関数である。たとえば、メモリシステムの最大グループレイテンシ時間と最小グループレイテンシ時間との差が、8メモリバスサイクルである場合、および各読み出し要求が、メモリバスで4メモリバスサイクルを占める場合には、コントローラロジックは、データバス衝突が生じないことを保証するために、現在のレイテンシ時間グループを、多数の前のメモリアクセス要求と比較する必要があるであろう。現在のメモリアクセス要求が、前のメモリアクセスのいずれかと干渉すると分かった場合には、現在のメモリアクセス要求のためのメモリアクセスコマンドの伝送は、前および現在のメモリアクセス要求に応じて返されるデータの衝突を回避するのに必要な時間量(たとえば、ある数のコントローラクロックサイクルまたはある数のメモリバスサイクル)だけ、遅延される。
前述の記載は、説明のために、特定の実施形態に関連して記載した。しかしながら、上記の例証的な説明は、包括的であるようにも、本発明を開示された形態に正確に限定するようにも意図されていない。上記の教示に鑑みて、多くの変更および変形が可能である。これらの実施形態は、本発明の原理およびその実際的な適用例を最も良く説明し、それによって、他の当業者が、本発明、および意図された特定の用途に適した様々な変更を伴う様々な実施形態を最も良く利用できるようにするように選択され記載されたものである。
グローバルレベライゼーションを用いるメモリシステムのブロック図である。 グローバルレベライゼーションを用いるメモリシステムのメモリマップである。 グループレベライゼーションを用いるメモリシステムのブロック図である。 グループレベライゼーションを用いるメモリシステムのメモリマップである。 グループレベライゼーションで用いるメモリ装置のブロック図である。 グループレベライゼーションで用いるメモリコントローラのブロック図である。 グループレベライゼーションを用い、かつ容量増加用のバッファを含むメモリシステムのブロック図である。 グループレベライゼーションを用いるメモリシステムで用いられるメモリ装置に、メモリアドレスを割り当てるプロセスの流れ図である。 グループレベライゼーションを用いるメモリシステムにおいてレイテンシ時間を制御するプロセスの流れ図である。

Claims (37)

  1. メモリシステムにおけるメモリ装置へのアクセスを制御する方法であって、
    前記メモリシステムにおけるメモリ装置を、第1のレイテンシ時間グループおよび第2のレイテンシ時間グループを含むレイテンシ時間グループに割り当てるステップであって、前記第1のレイテンシ時間グループが、前記第2のレイテンシ時間グループより短いレイテンシ時間を有するステップと、
    メモリアドレス空間の少なくとも第1および第2の部分を識別するステップと、
    前記アドレス空間の前記第1の部分を、前記第1のレイテンシ時間グループに割り当てられた少なくとも1つのメモリ装置にマップするステップと、
    前記アドレス空間の前記第2の部分を、前記第2のレイテンシ時間グループに割り当てられた少なくとも1つのメモリ装置にマップするステップと、
    を含む方法。
  2. 前記マッピングが、前記アドレス空間の前記第1の部分に、前記アドレス空間の前記第2の部分より短いレイテンシ時間を提供し、それにより、結果としてシステム性能の改善をもたらす、請求項1に記載の方法。
  3. 前記識別が、前記メモリアドレス空間の様々な部分へのアクセスの頻度に基づいており、前記アドレス空間の前記第1の部分が、前記アドレス空間の前記第2の部分より頻繁にアクセスされる、請求項1に記載の方法。
  4. メモリ装置識別子を含むメモリアクセス要求を受信するステップと、
    前記識別子に基づいて、前記メモリ装置のレイテンシ時間グループを決定するステップと、
    前記メモリ装置の前記レイテンシ時間グループに基づいて、タイミング制御信号を生成するステップと、
    をさらに含む、請求項1に記載の方法。
  5. 前記メモリ装置の前記レイテンシ時間グループを決定するステップが、
    前記レイテンシ時間グループを、前のメモリ要求に関連するレイテンシ時間グループと比較するステップと、
    前記比較に基づいて、タイミング制御信号を生成するステップと、
    をさらに含む、請求項4に記載の方法。
  6. 前記第1および第2のレイテンシ時間グループの前記レイテンシ時間が、前記第1および第2のレイテンシ時間グループに割り当てられたメモリ装置ならびにメモリコントローラを相互接続するチャネルにおける信号の電気的なフライト時間に少なくとも部分的に起因する、請求項1に記載の方法。
  7. 多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおいて用いるように構成されたメモリ装置であって、
    メモリアレイと、
    前記メモリアレイに結合され、かつ遅延値を受信するためにメモリシステムに結合されるように構成されたコマンドインターフェースであって、前記遅延値が、複数のレイテンシ時間グループにおけるそれぞれのレイテンシ時間グループに関連するコマンドインターフェースと、
    前記コマンドインターフェースおよび出力データパスに結合された遅延装置であって、前記メモリアレイから検索されかつ前記出力データパスで伝送されるデータを、前記遅延値によって決定された遅延期間、遅延させるように構成された遅延装置と、
    を含むメモリ装置。
  8. 各レイテンシ時間グループが、異なる遅延値に関連している、請求項7に記載のメモリ装置。
  9. 少なくとも1つのレイテンシ時間グループに関連する少なくとも1つの遅延値が、このレイテンシ時間グループに割り当てられたメモリ装置およびメモリコントローラを相互接続するチャネルにおける信号の電気的なフライト時間に少なくとも部分的に起因する、請求項8に記載のメモリ装置。
  10. 前記それぞれのレイテンシ時間グループに関連する前記遅延値が、前記グループにおける最大アクセスレイテンシ時間に基づく、請求項7に記載のメモリ装置。
  11. 前記メモリ装置がメモリモジュールに含まれ、前記メモリモジュールが、前記それぞれのレイテンシ時間グループに割り当てられる、請求項7に記載のメモリ装置。
  12. 前記メモリモジュールが、バッファを介して前記メモリコントローラに結合される、請求項11に記載のメモリ装置。
  13. 前記遅延装置がシフトレジスタを含む、請求項7に記載のメモリ装置。
  14. 多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおけるメモリ装置へのアクセスを制御する方法であって、
    メモリアクセス要求を復号してメモリ装置識別子を提供するステップと、
    前記メモリ装置識別子に関連するレイテンシ時間グループを識別するステップであって、前記レイテンシ時間グループが、前記メモリシステムにおける複数のレイテンシ時間グループの1つであるステップと、
    前記識別されたレイテンシ時間グループを、前のメモリアクセス要求に関連するレイテンシ時間グループと比較するステップと、
    前記比較の結果に応じてタイミング制御信号を生成するステップと、
    を含む方法。
  15. タイミング制御信号を生成するステップが、
    前記識別されたレイテンシ時間グループおよび前記前のメモリアクセス要求に関連する前記レイテンシ時間グループに対応する最小時間差が、前記メモリアクセス要求と前記前のメモリアクセス要求との間の時間差より大きいかどうかを決定するステップと、
    前記決定が正である場合には、バス衝突を回避するのに十分な時間、前記メモリアクセス要求のためのメモリアクセスコマンドの発行を遅延させるステップと、
    をさらに含む、請求項14に記載の方法。
  16. メモリアクセスコマンドの発行を遅延させるステップが、
    前記メモリアクセスコマンドを発行する前に、少なくとも1つのノーオペレーションコマンドを発行するステップをさらに含む、請求項15に記載の方法。
  17. 前記タイミング制御信号が、前記メモリアクセス要求に関連するメモリアクセスコマンドの伝送を遅延させるために用いられる、請求項14に記載の方法。
  18. 多重アクセスレイテンシ時間をサポートするコンピュータシステムで用いるためのコンピュータプログラムプロダクトであって、前記コンピュータプログラムプロダクトが、コンピュータ可読記憶媒体およびそこに埋め込まれたコンピュータプログラム機構を含み、前記コンピュータプログラム機構が、
    メモリアクセス要求を復号してメモリ装置識別子を提供するステップと、
    前記メモリ装置識別子に関連するレイテンシ時間グループを識別するステップであって、前記識別されたレイテンシ時間グループが、前記コンピュータシステムのメモリシステムにおける複数のレイテンシ時間グループの1つであるステップと、
    前記識別されたレイテンシ時間グループを、前のメモリアクセス要求に関連するレイテンシ時間グループと比較するステップと、
    前記比較の結果に応じてタイミング制御信号を生成するステップと、
    を含むコンピュータプログラムプロダクト。
  19. 前記レイテンシ時間グループが、前記メモリ装置識別子を用いてルックアップ表にアクセスすることによって識別される、請求項18に記載のコンピュータプログラムプロダクト。
  20. 各レイテンシ時間グループが、異なるメモリアクセスレイテンシ時間に関連する、請求項18に記載のコンピュータプログラムプロダクト。
  21. 少なくとも1つのレイテンシ時間グループに関連する少なくとも1つのメモリアクセスレイテンシ時間が、このレイテンシ時間グループに割り当てられたメモリ装置およびメモリコントローラを相互接続するチャネルにおける信号の電気的なフライト時間に少なくとも部分的に起因する、請求項20に記載のコンピュータプログラムプロダクト。
  22. 前記識別されたレイテンシ時間グループに関連する前記メモリアクセスレイテンシ時間が、前記識別されたレイテンシ時間グループにおける最大アクセスレイテンシ時間に基づく、請求項20に記載のコンピュータプログラムプロダクト。
  23. 多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおけるメモリ装置へのアクセスを制御するためのシステムであって、
    プロセッサに結合されるように構成され、かつ命令を含むコンピュータプログラムプロダクトを含むメモリであって、前記命令が、前記プロセッサによって実行されたときに、
    メモリアクセス要求を復号してメモリ装置識別子を提供するステップと、
    前記メモリ装置識別子に関連するレイテンシ時間グループを識別するステップであって、前記識別されたレイテンシ時間グループが、前記システムのメモリシステムにおける複数のレイテンシ時間グループの1つであるステップと、
    前記識別されたレイテンシ時間グループを、前のメモリアクセス要求に関連するレイテンシ時間グループと比較するステップと、
    前記比較の結果に応じてタイミング制御信号を生成するステップと、
    の動作を前記プロセッサに実行させるメモリを含むシステム。
  24. 前記レイテンシ時間グループが、前記メモリ装置識別子を用いてルックアップ表にアクセスすることによって識別される、請求項23に記載のシステム。
  25. 前記レイテンシ時間グループが、多くのレイテンシ時間グループから選択され、各レイテンシ時間グループが、異なるメモリアクセスレイテンシ時間に関連している、請求項23に記載のシステム。
  26. 少なくとも1つのレイテンシ時間グループに関連する少なくとも1つのメモリアクセスレイテンシ時間が、このレイテンシ時間グループに割り当てられたメモリ装置およびメモリコントローラを相互接続するチャネルにおける信号の電気的なフライト時間に少なくとも部分的に起因する、請求項25に記載のシステム。
  27. 前記識別されたレイテンシ時間グループに関連する前記メモリアクセスレイテンシ時間が、前記識別されたレイテンシ時間グループにおける最大アクセスレイテンシ時間に基づく、請求項25に記載のシステム。
  28. 多重メモリアクセスレイテンシ時間をサポートするメモリシステムにおけるメモリ装置へのアクセスを制御するためのシステムであって、
    メモリアクセス要求を復号してメモリ装置識別子を提供するための手段と、
    前記メモリ装置識別子に関連するレイテンシ時間グループを識別するための手段であって、前記識別されたレイテンシ時間グループが、前記システムのメモリシステムにおける複数のレイテンシ時間グループの1つである手段と、
    前記識別されたレイテンシ時間グループを、前のメモリアクセス要求に関連するレイテンシ時間グループと比較するための手段と、
    前記比較の結果に応じてタイミング制御信号を生成するための手段と、
    を含むシステム。
  29. 各レイテンシ時間グループが、異なるメモリアクセスレイテンシ時間に関連している、請求項28に記載のシステム。
  30. 少なくとも1つのレイテンシ時間グループに関連する少なくとも1つのメモリアクセスレイテンシ時間が、このレイテンシ時間グループに割り当てられたメモリ装置およびメモリコントローラを相互接続するチャネルにおける信号の電気的なフライト時間に少なくとも部分的に起因する、請求項29に記載のシステム。
  31. メモリコントローラと、
    前記メモリコントローラに結合された第1のメモリモジュールであって、前記第1のメモリモジュールが、第1のバッファおよび前記第1のバッファに結合された第1のメモリ装置を含み、前記第1のバッファが、第1の割り当てられたアクセスレイテンシ時間を有する第1のメモリモジュールと、
    前記メモリコントローラに結合された第2のメモリモジュールであって、前記第2のメモリモジュールが、第2のバッファおよび前記第2のバッファに結合された第2のメモリ装置を含み、前記第2のバッファが、第2の割り当てられたアクセスレイテンシ時間を有する第2のメモリモジュールと、
    を含むシステム。
  32. 前記第1のメモリモジュールが、前記第2のメモリモジュールと直列に配置されている、請求項31に記載のシステム。
  33. 前記第1の割り当てられたアクセスレイテンシ時間が、読み出し要求が前記コントローラから前記第1のバッファに送出される時間から、読み出し完了データが前記第1のバッファから前記コントローラへ送られ、前記コントローラによってサンプリングされる時間までを含む、請求項31に記載のシステム。
  34. 前記第2の割り当てられたアクセスレイテンシ時間が、読み出し要求が前記コントローラから前記第2のバッファに送出される時間から、読み出し完了データが前記第2のバッファから前記コントローラへ送られ、前記コントローラによってサンプリングされる時間までを含む、請求項31に記載のシステム。
  35. 第1の関連するレイテンシ時間を有する第1のメモリ装置と、
    第2の関連するレイテンシ時間を有する第2のメモリ装置と、
    前記第1および第2のメモリ装置に結合されたバッファであって、前記メモリ装置とメモリコントローラとの間に置かれるバッファと、
    を含むメモリモジュール。
  36. メモリコントローラと、
    第1のメモリモジュールであって、
    前記メモリコントローラに結合されたバッファと、
    前記バッファに結合された第1のメモリ装置と、
    前記バッファに結合された第2のメモリ装置と、
    を含む第1のメモリモジュールと、
    を含むシステムであって、
    前記第1のメモリ装置が、第1の関連するレイテンシ時間を有し、前記第2のメモリ装置が、第2の関連するレイテンシ時間を有するシステム。
  37. 第1および第2のメモリモジュールに配置されたメモリ装置にアクセスする方法であって、
    第1のアクセスレイテンシ時間を前記第1のメモリモジュールに割り当てるステップであって、前記第1のメモリモジュールが、第1のバッファおよび前記第1のバッファに結合された第1のメモリ装置を含むステップと、
    第2のアクセスレイテンシ時間を前記第2のメモリモジュールに割り当てるステップであって、前記第2のメモリモジュールが、第2のバッファおよび前記第2のバッファに結合された第2のメモリ装置を含むステップと、
    を含む方法。
JP2007527567A 2004-05-21 2005-05-20 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法 Active JP4926963B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/850,803 US7222224B2 (en) 2004-05-21 2004-05-21 System and method for improving performance in computer memory systems supporting multiple memory access latencies
US10/850,803 2004-05-21
PCT/US2005/018246 WO2005114669A2 (en) 2004-05-21 2005-05-20 System and method for improving performance in computer memory systems supporting multiple memory access latencies

Publications (3)

Publication Number Publication Date
JP2008500668A true JP2008500668A (ja) 2008-01-10
JP2008500668A5 JP2008500668A5 (ja) 2008-05-29
JP4926963B2 JP4926963B2 (ja) 2012-05-09

Family

ID=35266747

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007527567A Active JP4926963B2 (ja) 2004-05-21 2005-05-20 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法

Country Status (5)

Country Link
US (1) US7222224B2 (ja)
EP (1) EP1754229B1 (ja)
JP (1) JP4926963B2 (ja)
CN (1) CN1977336B (ja)
WO (1) WO2005114669A2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008021314A (ja) * 2006-07-13 2008-01-31 Internatl Business Mach Corp <Ibm> データの優先順位付けを用いるマルチレベルのメモリ・アーキテクチャ
JP2009064360A (ja) * 2007-09-07 2009-03-26 Canon Inc メモリコントローラ及びその制御方法
JP2009093227A (ja) * 2007-10-03 2009-04-30 Canon Inc メモリアクセス制御装置及びメモリアクセス制御方法
US8391087B2 (en) 2010-06-21 2013-03-05 Renesas Electronics Corporation Semiconductor device
US9053762B2 (en) 2011-05-10 2015-06-09 Renesas Electronics Corporation Pipeline-controlled semiconductor memory device with reduced power consumption and memory access time
JP2016212754A (ja) * 2015-05-12 2016-12-15 富士通株式会社 メモリ装置及びメモリ装置の制御方法
JP2017049713A (ja) * 2015-08-31 2017-03-09 株式会社メガチップス メモリコントローラ
US11822789B2 (en) 2011-12-27 2023-11-21 Intel Corporation Methods and apparatus to manage workload memory allocation

Families Citing this family (82)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6471635B1 (en) * 2000-02-10 2002-10-29 Obtech Medical Ag Anal incontinence disease treatment with controlled wireless energy supply
US6464628B1 (en) * 1999-08-12 2002-10-15 Obtech Medical Ag Mechanical anal incontinence
EP1253877B1 (en) 2000-02-10 2005-05-11 Potencia Medical AG Mechanical impotence treatment apparatus
AU759363B2 (en) 2000-02-10 2003-04-10 Implantica Patent Ltd. Controlled urinary incontinence treatment
AU778406B2 (en) * 2000-02-11 2004-12-02 Potentica Ag Controlled impotence treatment
EP1255514B1 (en) 2000-02-14 2006-04-26 Potencia Medical AG Male impotence prosthesis apparatus with wireless energy supply
DE60111019T2 (de) * 2000-02-14 2006-05-11 Potencia Medical Ag Penisprothese
KR100448717B1 (ko) * 2002-08-02 2004-09-13 삼성전자주식회사 메모리 시스템
US9314691B2 (en) 2002-12-10 2016-04-19 Sony Computer Entertainment America Llc System and method for compressing video frames or portions thereof based on feedback information from a client device
US20090118019A1 (en) 2002-12-10 2009-05-07 Onlive, Inc. System for streaming databases serving real-time applications used through streaming interactive video
US9138644B2 (en) 2002-12-10 2015-09-22 Sony Computer Entertainment America Llc System and method for accelerated machine switching
KR100564635B1 (ko) * 2004-10-25 2006-03-28 삼성전자주식회사 메모리 모듈 내에서의 인터페이스 타이밍을 제어하는메모리 시스템 및 그 방법
US7512762B2 (en) * 2004-10-29 2009-03-31 International Business Machines Corporation System, method and storage medium for a memory subsystem with positional read data latency
US7331010B2 (en) 2004-10-29 2008-02-12 International Business Machines Corporation System, method and storage medium for providing fault detection and correction in a memory subsystem
JP2006236105A (ja) * 2005-02-25 2006-09-07 Canon Inc アクセス制御装置及びその制御方法
KR100588599B1 (ko) * 2005-05-03 2006-06-14 삼성전자주식회사 메모리 모듈 및 메모리 시스템
US20070005922A1 (en) * 2005-06-30 2007-01-04 Swaminathan Muthukumar P Fully buffered DIMM variable read latency
US7701797B2 (en) * 2006-05-15 2010-04-20 Apple Inc. Two levels of voltage regulation supplied for logic and data programming voltage of a memory device
US7852690B2 (en) * 2006-05-15 2010-12-14 Apple Inc. Multi-chip package for a flash memory
US7551486B2 (en) * 2006-05-15 2009-06-23 Apple Inc. Iterative memory cell charging based on reference cell value
US7911834B2 (en) 2006-05-15 2011-03-22 Apple Inc. Analog interface for a flash memory die
US7511646B2 (en) * 2006-05-15 2009-03-31 Apple Inc. Use of 8-bit or higher A/D for NAND cell value
US8000134B2 (en) 2006-05-15 2011-08-16 Apple Inc. Off-die charge pump that supplies multiple flash devices
US7639542B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Maintenance operations for multi-level data storage cells
US7639531B2 (en) * 2006-05-15 2009-12-29 Apple Inc. Dynamic cell bit resolution
US7568135B2 (en) * 2006-05-15 2009-07-28 Apple Inc. Use of alternative value in cell detection
US7613043B2 (en) * 2006-05-15 2009-11-03 Apple Inc. Shifting reference values to account for voltage sag
JP5065618B2 (ja) * 2006-05-16 2012-11-07 株式会社日立製作所 メモリモジュール
US7861140B2 (en) * 2006-10-31 2010-12-28 Globalfoundries Inc. Memory system including asymmetric high-speed differential memory interconnect
US20080104352A1 (en) * 2006-10-31 2008-05-01 Advanced Micro Devices, Inc. Memory system including a high-speed serial buffer
US7788414B2 (en) * 2007-01-16 2010-08-31 Lantiq Deutschland Gmbh Memory controller and method of controlling a memory
WO2008154625A2 (en) 2007-06-12 2008-12-18 Rambus Inc. In-dram cycle-based levelization
US7729168B2 (en) 2007-06-28 2010-06-01 Intel Corporation Reduced signal level support for memory devices
JP5103663B2 (ja) * 2007-09-27 2012-12-19 ルネサスエレクトロニクス株式会社 メモリ制御装置
US20090157940A1 (en) * 2007-12-15 2009-06-18 Hitachi Global Storage Technologies Netherlands, B.V. Techniques For Storing Data In Multiple Different Data Storage Media
US8825965B2 (en) * 2008-01-08 2014-09-02 Cisco Technology, Inc. System and methods for memory expansion
EP2244662B1 (en) 2008-01-28 2021-09-29 Implantica Patent Ltd. Blood clot removal device and system
WO2009096861A1 (en) 2008-01-29 2009-08-06 Milux Holding Sa Methods and instruments for treating obesity and gastroesophageal reflux disease
US20090215538A1 (en) * 2008-02-22 2009-08-27 Samuel Jew Method for dynamically synchronizing computer network latency
WO2010042019A1 (en) 2008-10-10 2010-04-15 Milux Holding Sa Heart help device, system, and method
EP4282462A3 (en) 2008-10-10 2024-02-21 MedicalTree Patent Ltd. Heart help device, system, and method
US8874215B2 (en) 2008-10-10 2014-10-28 Peter Forsell System, an apparatus, and a method for treating a sexual dysfunctional female patient
EP2349078A4 (en) 2008-10-10 2018-02-07 Kirk Promotion LTD. Fastening means for implantable medcial control assembly
WO2010042058A1 (en) 2008-10-10 2010-04-15 Milux Holding S.A. An improved artificial valve
ES2962384T3 (es) 2008-10-10 2024-03-18 Implantica Patent Ltd Aparato para el tratamiento de la disfunción sexual femenina
US8135723B2 (en) * 2008-11-12 2012-03-13 Microsoft Corporation Leveraging low-latency memory access
US9949812B2 (en) 2009-07-17 2018-04-24 Peter Forsell Vaginal operation method for the treatment of anal incontinence in women
US10952836B2 (en) 2009-07-17 2021-03-23 Peter Forsell Vaginal operation method for the treatment of urinary incontinence in women
US8375180B2 (en) 2010-02-05 2013-02-12 International Business Machines Corporation Storage application performance matching
US8639879B2 (en) * 2010-03-25 2014-01-28 International Business Machines Corporation Sorting movable memory hierarchies in a computer system
US10114746B2 (en) * 2010-10-14 2018-10-30 Micron Technology, Inc. Nonvolatile storage using low latency and high latency memory
US8725128B2 (en) 2010-12-10 2014-05-13 Alcatel Lucent Pre-fetching of assets to user equipment
US9081893B2 (en) * 2011-02-18 2015-07-14 Microsoft Technology Licensing, Llc Dynamic lazy type system
US11099982B2 (en) * 2011-03-31 2021-08-24 Oracle International Corporation NUMA-aware garbage collection
US10140208B2 (en) 2011-03-31 2018-11-27 Oracle International Corporation NUMA-aware garbage collection
WO2013147755A1 (en) * 2012-03-27 2013-10-03 Hewlett-Packard Development Company, L.P. Nonvolatile memory bank groups
EP2839377A4 (en) 2012-04-20 2015-12-02 Enmotus Inc STORAGE SYSTEM WITH DATA MANAGEMENT MECHANISM AND METHOD FOR OPERATION THEREOF
GB2516435A (en) * 2013-04-05 2015-01-28 Continental Automotive Systems Embedded memory management scheme for real-time applications
KR20140123203A (ko) * 2013-04-11 2014-10-22 삼성전자주식회사 메모리 시스템
US9141541B2 (en) 2013-09-20 2015-09-22 Advanced Micro Devices, Inc. Nested channel address interleaving
WO2015047402A1 (en) * 2013-09-30 2015-04-02 Hewlett-Packard Development Company, L.P. Programming memory controllers to allow performance of active memory operations
GB2518884A (en) * 2013-10-04 2015-04-08 Ibm Network attached storage system and corresponding method for request handling in a network attached storage system
US9992090B2 (en) 2014-01-08 2018-06-05 Bank Of America Corporation Data metrics analytics
US9547834B2 (en) * 2014-01-08 2017-01-17 Bank Of America Corporation Transaction performance monitoring
US9804931B2 (en) 2014-04-25 2017-10-31 Rambus Inc. Memory mirroring utilizing single write operations
WO2015164049A1 (en) * 2014-04-25 2015-10-29 Rambus, Inc. Memory mirroring
KR20150145465A (ko) * 2014-06-19 2015-12-30 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US9606928B2 (en) 2014-08-26 2017-03-28 Kabushiki Kaisha Toshiba Memory system
KR102076196B1 (ko) * 2015-04-14 2020-02-12 에스케이하이닉스 주식회사 메모리 시스템, 메모리 모듈 및 메모리 모듈의 동작 방법
JP6459820B2 (ja) * 2015-07-23 2019-01-30 富士通株式会社 記憶制御装置、情報処理装置、および制御方法
KR102532581B1 (ko) * 2016-03-17 2023-05-17 에스케이하이닉스 주식회사 메모리 장치를 포함하는 메모리 시스템 및 그의 동작 방법
KR102617843B1 (ko) * 2016-05-13 2023-12-27 에스케이하이닉스 주식회사 메모리 시스템 및 이의 동작 방법
US20180032429A1 (en) * 2016-07-29 2018-02-01 Intel Corporation Techniques to allocate regions of a multi-level, multi-technology system memory to appropriate memory access initiators
DE102016218280B4 (de) * 2016-09-22 2018-07-19 Infineon Technologies Ag Vorrichtung, die einen Überlagerungsmechanismus umfasst, System mit Vorrichtungen, die jeweils einen Überlagerungsmechanismus mit einer individuellen programmierbaren Verzögerung umfassen
US10095421B2 (en) 2016-10-21 2018-10-09 Advanced Micro Devices, Inc. Hybrid memory module bridge network and buffers
US10331581B2 (en) 2017-04-10 2019-06-25 Hewlett Packard Enterprise Development Lp Virtual channel and resource assignment
US10489225B2 (en) 2017-08-10 2019-11-26 Bank Of America Corporation Automatic resource dependency tracking and structure for maintenance of resource fault propagation
US10990525B2 (en) * 2018-12-12 2021-04-27 Mipsology SAS Caching data in artificial neural network computations
EP3895024A1 (en) * 2018-12-12 2021-10-20 Mipsology SAS Caching data in artificial neural network computations
US11526632B2 (en) 2019-09-04 2022-12-13 Rambus Inc. Securing address information in a memory controller
US11243804B2 (en) 2019-11-19 2022-02-08 Micron Technology, Inc. Time to live for memory access by processors
US11199995B2 (en) 2019-11-19 2021-12-14 Micron Technology, Inc. Time to live for load commands

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266615A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
JPH11110280A (ja) * 1997-10-02 1999-04-23 Toshiba Corp 半導体メモリシステム
JPH11242629A (ja) * 1997-10-09 1999-09-07 Matsushita Electric Ind Co Ltd メモリシステム
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
US20020038405A1 (en) * 1998-09-30 2002-03-28 Michael W. Leddige Method and apparatus for implementing multiple memory buses on a memory module
US20020084458A1 (en) * 2000-12-28 2002-07-04 Halbert John B. Multi-tier point-to-point buffered memory interface
US20020144071A1 (en) * 2001-03-29 2002-10-03 Williams Michael W. Method and apparatus for handling memory read return data from different time domains
JP2002342153A (ja) * 2001-04-24 2002-11-29 Rambus Inc 多様に配置されたメモリ・コンポーネントからメモリ・オペレーションを調整する方法と装置
JP2003203481A (ja) * 2001-11-07 2003-07-18 Samsung Electronics Co Ltd Casレイテンシを利用してロッキングレゾリューション調節が可能な遅延同期ループ回路
WO2004025478A1 (ja) * 2002-09-11 2004-03-25 Fujitsu Limited メモリブロック間のレイテンシ差を活用するデータ処理装置および方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6807609B1 (en) * 1989-12-04 2004-10-19 Hewlett-Packard Development Company, L.P. Interleaving read and write operations on a bus and minimizing buffering on a memory module in a computer system
US6111796A (en) * 1999-03-01 2000-08-29 Motorola, Inc. Programmable delay control for sense amplifiers in a memory
US6646953B1 (en) * 2000-07-06 2003-11-11 Rambus Inc. Single-clock, strobeless signaling system
US6877079B2 (en) * 2001-03-06 2005-04-05 Samsung Electronics Co., Ltd. Memory system having point-to-point bus configuration
US6658523B2 (en) * 2001-03-13 2003-12-02 Micron Technology, Inc. System latency levelization for read data
US6785793B2 (en) * 2001-09-27 2004-08-31 Intel Corporation Method and apparatus for memory access scheduling to reduce memory access latency
JP4159415B2 (ja) * 2002-08-23 2008-10-01 エルピーダメモリ株式会社 メモリモジュール及びメモリシステム
US7089412B2 (en) * 2003-01-17 2006-08-08 Wintec Industries, Inc. Adaptive memory module
US7020757B2 (en) * 2003-03-27 2006-03-28 Hewlett-Packard Development Company, L.P. Providing an arrangement of memory devices to enable high-speed data access
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7366864B2 (en) * 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06266615A (ja) * 1993-03-12 1994-09-22 Hitachi Ltd 順次データ転送型メモリ及び順次データ転送型メモリを用いたコンピュータシステム
JPH11110280A (ja) * 1997-10-02 1999-04-23 Toshiba Corp 半導体メモリシステム
JPH11242629A (ja) * 1997-10-09 1999-09-07 Matsushita Electric Ind Co Ltd メモリシステム
US20020038405A1 (en) * 1998-09-30 2002-03-28 Michael W. Leddige Method and apparatus for implementing multiple memory buses on a memory module
JP2001290697A (ja) * 2000-04-06 2001-10-19 Hitachi Ltd 情報処理システム
US20020084458A1 (en) * 2000-12-28 2002-07-04 Halbert John B. Multi-tier point-to-point buffered memory interface
US20020144071A1 (en) * 2001-03-29 2002-10-03 Williams Michael W. Method and apparatus for handling memory read return data from different time domains
JP2002342153A (ja) * 2001-04-24 2002-11-29 Rambus Inc 多様に配置されたメモリ・コンポーネントからメモリ・オペレーションを調整する方法と装置
JP2003203481A (ja) * 2001-11-07 2003-07-18 Samsung Electronics Co Ltd Casレイテンシを利用してロッキングレゾリューション調節が可能な遅延同期ループ回路
WO2004025478A1 (ja) * 2002-09-11 2004-03-25 Fujitsu Limited メモリブロック間のレイテンシ差を活用するデータ処理装置および方法

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008021314A (ja) * 2006-07-13 2008-01-31 Internatl Business Mach Corp <Ibm> データの優先順位付けを用いるマルチレベルのメモリ・アーキテクチャ
JP2009064360A (ja) * 2007-09-07 2009-03-26 Canon Inc メモリコントローラ及びその制御方法
JP2009093227A (ja) * 2007-10-03 2009-04-30 Canon Inc メモリアクセス制御装置及びメモリアクセス制御方法
US8516214B2 (en) 2007-10-03 2013-08-20 Canon Kabushiki Kaisha Memory access control device, command issuing device, and method
US8762676B2 (en) 2007-10-03 2014-06-24 Canon Kabushiki Kaisha Memory access control device, command issuing device, and method
US8391087B2 (en) 2010-06-21 2013-03-05 Renesas Electronics Corporation Semiconductor device
US9053762B2 (en) 2011-05-10 2015-06-09 Renesas Electronics Corporation Pipeline-controlled semiconductor memory device with reduced power consumption and memory access time
US20150235692A1 (en) * 2011-05-10 2015-08-20 Renesas Electronics Corporation Pipeline-controlled semiconductor memory device with reduced power consumption and memory access time
US9412435B2 (en) 2011-05-10 2016-08-09 Renesas Electronics Corporation Pipeline-controlled semiconductor memory device with reduced power consumption and memory access time
US11822789B2 (en) 2011-12-27 2023-11-21 Intel Corporation Methods and apparatus to manage workload memory allocation
JP2016212754A (ja) * 2015-05-12 2016-12-15 富士通株式会社 メモリ装置及びメモリ装置の制御方法
JP2017049713A (ja) * 2015-08-31 2017-03-09 株式会社メガチップス メモリコントローラ

Also Published As

Publication number Publication date
EP1754229B1 (en) 2012-07-11
US7222224B2 (en) 2007-05-22
EP1754229A2 (en) 2007-02-21
JP4926963B2 (ja) 2012-05-09
US20050262323A1 (en) 2005-11-24
WO2005114669A3 (en) 2006-03-16
CN1977336B (zh) 2012-02-22
WO2005114669A2 (en) 2005-12-01
CN1977336A (zh) 2007-06-06

Similar Documents

Publication Publication Date Title
JP4926963B2 (ja) 多重メモリアクセスレイテンシ時間をサポートするコンピュータメモリシステムにおける性能を改善するためのシステムおよび方法
JP6761891B2 (ja) 柔軟なアドレスデコード機能を備えるメモリコントローラ
US7287101B2 (en) Direct memory access using memory descriptor list
US6393512B1 (en) Circuit and method for detecting bank conflicts in accessing adjacent banks
US7539842B2 (en) Computer memory system for selecting memory buses according to physical memory organization information stored in virtual address translation tables
US6393534B1 (en) Scheduler for avoiding bank conflicts in issuing concurrent requests to main memory
KR100841139B1 (ko) 메모리 액세스 요청들을 관리하는 방법 및 장치
CN111742305A (zh) 调度具有不统一等待时间的存储器请求
JP7384806B2 (ja) 連動メモリデバイスに対するメモリ要求のスケジューリング
US10152434B2 (en) Efficient arbitration for memory accesses
KR100585116B1 (ko) 멀티 뱅크 메모리의 억세스 효율을 개선한 아비터, 이를구비한 메모리 억세스 중재 시스템 및 그 방법
US11474942B2 (en) Supporting responses for memory types with non-uniform latencies on same channel
US20230342307A1 (en) Transmission of address translation type packets
CN116324744A (zh) 具有多个命令子队列和对应的仲裁器的存储器控制器
EP3462327A2 (en) Systems, methods and apparatus for memory access and scheduling
US8667199B2 (en) Data processing apparatus and method for performing multi-cycle arbitration
US6360305B1 (en) Method and apparatus for optimizing memory performance with opportunistic pre-charging
US9176906B2 (en) Memory controller and memory system including the same
JPH10260895A (ja) 半導体記憶装置およびそれを用いた計算機システム
EP4323877A1 (en) Adaptive memory access management
JP2024512623A (ja) マルチキューメモリコントローラのためのクレジット方式

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080408

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080408

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110317

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110617

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111011

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120208

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

Free format text: PAYMENT UNTIL: 20150217

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4926963

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

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