JP2017045452A - トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法 - Google Patents

トランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法 Download PDF

Info

Publication number
JP2017045452A
JP2017045452A JP2016157289A JP2016157289A JP2017045452A JP 2017045452 A JP2017045452 A JP 2017045452A JP 2016157289 A JP2016157289 A JP 2016157289A JP 2016157289 A JP2016157289 A JP 2016157289A JP 2017045452 A JP2017045452 A JP 2017045452A
Authority
JP
Japan
Prior art keywords
memory
command
queue
transaction
request
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
JP2016157289A
Other languages
English (en)
Other versions
JP6796430B2 (ja
Inventor
牧 天 張
Mu-Tien Chang
牧 天 張
宏 忠 チョン
Hong-Zhong Zheng
宏 忠 チョン
亮 尹
Liang Yin
亮 尹
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017045452A publication Critical patent/JP2017045452A/ja
Application granted granted Critical
Publication of JP6796430B2 publication Critical patent/JP6796430B2/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/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • 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/1647Handling requests for interconnection or transfer for access to memory bus based on arbitration with interleaved bank access
    • 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/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Abstract

【課題】高性能なトランザクション基盤メモリシステム及びその動作方法を提供する。
【解決手段】本発明のメモリシステムは、アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含むマスターコントローラと、ホストコンピュータに対するインターフェイスと、スレーブコントローラに連結されたリンクバスと、を備え、アドレスマッピングデコーダは、スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングし、マスターコントローラのスケジューラは、メモリ装置のアドレスマッピング情報を利用してトランザクションキュー内のホストコンピュータから受信されたメモリトランザクション要請を再整理する。メモリシステムは、マスターコントローラのトランザクションキュー内のペンディングメモリトランザクション要請に基づいて拡張オープンページポリシーを用いる。
【選択図】図4

Description

本発明は、コンピュータ用メモリシステムに関し、より詳しくは、高性能なトランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法に関する。
同期DRAM(SDRAM)は、メモリコントローラに同期化されるインターフェイスを有し、コンピュータのシステムバスの速度でメモリコントローラに同期して応答する。コンピュータのクロック信号はメモリコントローラのインカミングコマンドをパイプライン(pipeline)処理する内部有限状態マシーン(finite state machine:FSM)を駆動するために使用される。SDRAMのデータストレージは様々なバンクに分割される。バンクの分割はメモリコントローラが様々なメモリアクセスコマンドを同時に処理できるようにする。メモリアクセスコマンドは分離バンク間に内挿(interleave)される。バンクの分割は非同期DRAMより更に高いデータアクセス速度を提供する。
トランザクション基盤(transaction−based)メモリシステムは、最近、高メモリ容量、高帯域幅、及び設計柔軟性に対する関心を集めている。トランザクション基盤メモリシステムの例としては、バッファオンボードタイプ(例えば、Intel(登録商標) Scalable Memory Buffer:SMB)、ハイブリッドメモリキューブ(例えば、Micron(登録商標) Hybrid Memory Cube:HMC)、及びHP(登録商標) Gen−Z(登録商標)を含む。
同期メモリシステムとは異なり、トランザクション基盤メモリシステムにおけるメモリコントローラはDRAMsと直接的に通信しない。代わりに、コンピュータシステムのメモリコントローラ(即ち、マスターコントローラ)はDRAMコントローラ(例えば、スレーブコントローラ)とポイント対ポイントリンクバスを通じて非同期的に通信する。DRAMコントローラはメモリコマンド(例えば、JEDECで標準化されたDDRメモリコマンド)を利用してメモリチャンネル(例えば、DDRメモリチャンネル)を通じてDRAMsと通信する。標準メモリコマンドの例としては、アクティブ、リード、ライト、プリチャージ、及びリフレッシュを含む。アクティブコマンドは特定のバンク内の一行(row)を活性化させる。リード及びライトコマンドは活性化された行に対してリード及びライトバースト(burst)を開始する。プリチャージコマンドは特定のバンク内の活性化された行を閉じる。リフレッシュコマンドはリフレッシュ動作を開始する。メモリバンクは、リフレッシュコマンドが発行されると、プリチャージされる。
従来のトランザクション基盤メモリシステム設計において、マスターコントローラとスレーブコントローラとは緩く結合されており、少量の情報を交換する。緩く結合されたマスターコントローラ及びスレーブコントローラはメモリシステムの設計柔軟性及び効率的管理を提供する。しかし、マスターコントローラとスレーブコントローラとの間の緩い結合は非最適化性能をもたらす。例えば、ランク/バンクインタリービング及び行バッファ管理はスレーブコントローラ単独で処理される。パワー及びコスト問題によって、スレーブコントローラは小型バッファ及び簡単なロジックを含む制限された資源を有する。スレーブコントローラに対する制限された資源はコントローラのスケジューリング及び行バッファ管理能力を制限する。一方、マスターコントローラはスレーブコントローラの制限された能力を克服してメモリシステムの性能を潛在的に改善することができる充分な資源及びバッファを有する。
米国特許第7,089,379号明細書 米国特許第8,380,940号明細書 米国特許公開第2014/0068125号明細書 米国特許公開第2012/0054455号明細書 米国特許公開第2015/0106560号明細書 米国特許公開第2012/0036296号明細書 米国特許公開第2008/0189479号明細書 米国特許公開第2012/0239873号明細書
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、高性能なトランザクション基盤メモリシステム及びメモリモジュール並びにマスターコントローラ及びスレーブコントローラの動作方法を提供することにある。
上記目的を達成するためになされた本発明の一態様によるメモリシステムは、アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含むマスターコントローラと、ホストコンピュータに対するインターフェイスと、スレーブコントローラに連結されたリンクバスと、を備え、前記アドレスマッピングデコーダは、前記スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングし、前記マスターコントローラのスケジューラは、前記メモリ装置の前記アドレスマッピング情報を利用して前記トランザクションキュー内の前記ホストコンピュータから受信されたメモリトランザクション要請を再整理する。前記メモリシステムは、前記マスターコントローラの前記トランザクションキュー内のペンディングメモリトランザクション要請に基づいて拡張オープンページポリシーを用いる。
上記目的を達成するためになされた本発明の一態様によるメモリモジュールは、デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラと、メモリ装置と、を備え、前記デコーダは、メモリトランザクション要請を受信し、前記メモリトランザクション要請に基づいてメモリコマンドを生成し、前記コマンドキュー内に前記メモリコマンドを配置し、更に、前記デコーダは、複数のフラグを受信し、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理する。
上記目的を達成するためになされた本発明の一態様によるメモリシステムにおけるマスターコントローラの動作方法は、リンクバスを通じてスレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、ホストコンピュータからメモリトランザクション要請を受信するステップと、トランザクションキュー内に前記メモリトランザクション要請を配置するステップと、前記メモリ装置の前記アドレスマッピング情報を利用して前記トランザクションキュー内の前記メモリトランザクション要請を再整理するステップと、を有する。
上記目的を達成するためになされた本発明の一態様によるメモリシステムにおけるスレーブコントローラの動作方法は、リンクバスを通じてメモリ装置のアドレスマッピング情報をマスターコントローラに送信するステップと、メモリトランザクション要請を受信するステップと、前記メモリトランザクション要請をデコーディングし、前記デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、コマンドキュー内に前記メモリコマンドを配置するステップと、複数のフラグを受信するステップと、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理するステップと、を有する。
本発明によれば、高性能なトランザクション基盤のメモリシステムとマスターコントローラ及びスレーブコントローラの動作方法が容易に具現される。
従来のトランザクション基盤メモリシステムのブロック図である。 マスターバッファとスレーブバッファとの間のメモリマッピングの比較例を示す図である。 本発明の一実施形態によるマスターバッファとスレーブバッファとの間のメモリマッピングの一例を示す図である。 スレーブコントローラのページオープンポリシーの比較例を示す図である。 本発明の一実施形態によるトランザクション基盤メモリシステムのページオープンポリシーの一例を示す図である。 本発明の一実施形態によるトランザクション基盤メモリシステムの一例を示すブロック図である。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
本発明を具現する多様な新規の詳細及びイベントの組合せを含む上記及び他の望ましい特徴は、図面を参照しながらより詳細に説明し、特許請求の範囲内で示される。ここで説明する特別なシステム及び方法は、制限されるものではなく、図示するために示す。本分野の通常の知識を有する者によって理解されることであって、ここに開示する原理及び特徴は、本開示の範囲を逸脱せずに、多様で数多くの実施形態に適用される。
図面は必ずしも一定の比率で図示したものではなく、類似の構造又は機能の構成要素は図面全体に亘って図示するために同様の参照符号で一般的に示す。図面は明細書で説明する多様な実施形態の説明を容易にするためのみに示す。図面は本明細書に開示する技術的思想の全ての側面を説明するものではなく、特許請求の範囲を制限しない。
本明細書に開示する特徴及び教示(teaching)は、各々個別的に活用されるか、或いはトランザクション基盤メモリシステム及びその動作方法を提供するために他の特徴及び教示と共に活用される。追加の特徴及び教示は別途に或いは組合せて多くで活用される代表的な例について図面を参照しながらより詳細に説明する。詳細な説明は単なる本分野の熟練された者に本教示の態様を実施するための追加的な詳細を教えるための意図のみであり、特許請求の範囲を限定しようとする意図ではない。従って、詳細な説明において開示する特徴の組合せは最も広い意味での教示を実施するために必要としないこともあり、代わりに本教示の特に代表的な例のみを説明する。
以下の説明で、説明の目的のみに、特定名称を本発明の完全な理解を提供するために説明する。しかし、特定細部事項は本発明の開示の教示を実施するために要求されないことは当業者に明らかである。
詳細な説明の一部はアルゴリズム及びコンピュータメモリ内のデータビットに対する動作のシンボル表現の態様で提供される。これらのアルゴリズムの説明及び表現は効果的に他の当業者に作業の実体を伝達するためにデータ処理分野の当業者によって使用される。アルゴリズムは、ここで及び一般的に望む結果に至る段階の自らの一貫性シークェンス(self−consistent sequence)であるとして案出される。アルゴリズムの各段階は物理量の物理的操作が必要である。一般的に必須的でないが、これらの量は格納、伝達、結合、比較、及び異なって操作される電気又は磁気信号の形態を取る。この信号に対してビット、値、エレメント、シンボル、キャラクター、用語、数字等として指称することは、主に共通的な使用の理由の下でしばしば便利である。
しかし、これら及び類似な用語の全ては、適切な物理量に関連し、単なる物理量に適用される便利なラベルであることに留意しなければならない。特別に以下の説明で明確に異なって言及しない限り、説明の全体を通じて“処理”、“コンピューティング”、“計算”、“決定”、“表示”等のような用語を活用する説明は、コンピュータシステムや同様の電子コンピューティング装置の作用及び処理を指称する。ここで、作用及び処理はコンピュータシステムのレジスター及びメモリ内で物理的(電子的)量として表れるデータを他のデータに操作及び変換することを意味する。他のデータはコンピュータシステムのメモリ又はレジスター、他の情報ストレージ、又は伝送、或いは表示装置内で物理量として同様に現れるデータである。
このような多様なシステムに必要な構造は以下の説明で示す。多様なプログラミング言語がここに開示するような発明の教示を具現するために使用される。
また、代表的な実施形態の多様な特徴と従属請求項は本教示の追加的な有用な実施形態を提供するために特別に明示的に列挙しない方式で結合される。また、全ての値の範囲又は個体グループの表示(indications)は、元の開示の目的のためのことは勿論、特許請求の範囲に記載した発明の思想を特定する意図として全ての可能な中間値又は中間個体を示すことを特に言及する。そして、図面内に示す構成要素の次元及び形状は本発明の教示がどのようにして実施されるかに対する理解を助けるために設計されただけであり、また実施形態に示した次元及び形状に限定されないことを特に言及する。
本発明は高性能なトランザクション基盤メモリシステム(transaction−based memory system)及びその動作動方法を提供する。本発明のトランザクション基盤メモリシステムは緩く結合されたマスター及びスレーブコントローラの設計に対する限界を克服する。即ち、緩く結合された設計に対する限界はメモリ装置のアドレスマッピング情報がマスターコントローラに伝達されないことである。本発明のトランザクション基盤メモリシステムのマスターコントローラは、従来スレーブコントローラによって取り扱われるスケジューリング及び行バッファ管理(scheduling and row buffer management)に深く関連する。マスターコントローラは、より深いバッファ及びより複雑なロジックを有し、スレーブコントローラのみに依存する場合に比べ、より優れたスケジューリング及びメモリ管理を決定する。特に、本発明のトランザクション基盤メモリシステムは、より優れたチャンネル/ランク/バンクインタリービング(例えば、より高い並列性)、及びより効率的な行バッファ管理(例えば、より多くのページヒット数)を、以下の例及び実施形態でより詳細に説明する。
図1は、従来のトランザクション基盤メモリシステムのブロック図である。トランザクション基盤メモリシステム100は、マスターコントローラ110(例えば、ホストコントローラ)、スレーブコントローラ120(例えば、DRAMコントローラ)、及びメモリ装置130(例えば、DRAM)を含む。マスターコントローラ110は、メモリ装置130にアクセスするためにCPUから要請(request)を受信し、要請に対応するCPUに応答する。マスターコントローラ110は、エンコーダ111、スケジューラ112、デコーダ113、トランザクションキュー115、及びリードリターンキュー116を含む。
エンコーダ111は、CPUの要請をエンコーディングし、エンコーディングされた要請をトランザクションキュー115内に配置する。エンコーディングされた要請はメモリ装置130のアドレスやアドレスブロックに対するメモリリード及びメモリライトを含む。マスターコントローラ110のスケジューラ112はCPUの要請をトランザクションキュー115内に配置された順にパケット化し、パケット化された要請を、マスターコントローラ110とスレーブコントローラ120との間のリンクバス中の要請リンクを通じてスレーブコントローラ120に送信する。
スレーブコントローラ120は、デコーダ121、スケジューラ122、パケタイザ123、コマンドキュー125、及びリードリターンキュー126を含む。デコーダ121は、要請リンクを通じてマスターコントローラ110から受信されたパケットをデコーディングし、対応するメモリコマンドを生成してコマンドキュー125に配置する。スケジューラ122は、メモリコマンド及び関連するメモリアドレスをメモリ装置130に送信し、メモリ装置130からデータを受信する。スレーブコントローラ120はメモリ装置130からのリードデータをリードリターンキュー126に配置する。パケタイザ123は、メモリ装置130から受信された応答(例えば、メモリアドレスからリードされたデータ)をパケット化し、パケット化された応答をマスターコントローラ110とスレーブコントローラ120との間のリンクバス中の応答リンクを通じてマスターコントローラ110に送信する。
マスターコントローラ110のデコーダ113は、応答リンクを通じてスレーブコントローラ120から受信されたパケットをデコーディングし、デコーディングされたパケットをリードリターンキュー116に配置する。デコーダ113は、データを、リードデータがリードリターンキュー116に配置された順にCPUに送信する。マスターコントローラ110とスレーブコントローラ120との間の通信はリンクバスを通じたパケットの交換に対して制限される。スレーブコントローラ120はメモリ装置(DRAM)130のアドレスマッピング情報をマスターコントローラ110と共有しないため、マスターコントローラ110のスケジューラ112は、要請パケットをスレーブコントローラ120に伝送する時に、トランザクションキュー115内のペンディング要請(pending requests)をプリスケジューリングすることができない。
図2Aは、マスターバッファとスレーブバッファとの間のメモリマッピングの比較例を示す図である。図1の従来のトランザクション基盤メモリシステム100の例を参照すると、マスターコントローラ110はエンコーディングされたCPUの要請(リクエスト)をトランザクションキュー115に単純に配置する。例えば、トランザクションキュー115内の要請及び関連するメモリアドレス及び/又はデータはFIFO(first−infirst−out)バッファに格納される。スケジューラ112はエンコーディングされたCPU要請をメモリアドレス及び/又はデータと共にスレーブコントローラ120に送信する。この時、送信はFIFOバッファ内に要請が配置された順に行われる。マスターコントローラ110はメモリ装置(DRAM)130のアドレスマッピング情報を有しないため、マスターコントローラ110はCPUの要請をトランザクションキュー115内に配置された順に、バンクインタリービング無しでスレーブコントローラ120に送信する。
マスターコントローラ110はマスターバッファ201を有し、スレーブコントローラ120はマスターバッファ201よりも小さいスレーブバッファ202を有する。本実施例において、マスターバッファ201は、8エントリディープ(eight−entries deep)で示し、1回に8つの要請キューのみを格納するのに比べて、スレーブバッファ202は、4エントリディープであり、4つの要請キューのみを格納する。しかし、マスターバッファ201とスレーブバッファ202とは本発明の技術的思想の範囲を逸脱せずに、任意のバッファサイズになる。
マスターバッファ201内の幾つかの要請は同一のバンクに対するマッピングを含む。本実施例で、マスターバッファ201内の要請は4つの連続的なバンク0の要請及び後続するバンク1、バンク2、バンク3、及びバンク4の要請を含む。ここで、バンクの要請はリード要請或いはライト要請である。マスターコントローラ110のスケジューラ112はマスターバッファ201に配置された要請をスレーブバッファ202内の可用エントリ(entries)の個数に基づいてスレーブバッファ202に送信し、残りのエントリをマスターバッファ201内の図に示す上方に押す。初期にスレーブバッファ202は空いているため、4つの連続的なバンク0の要請を含むマスターバッファ201の第1の4つバッファエントリは、スレーブコントローラ120に送信されてスレーブバッファ202に配置される。スレーブバッファ202に到着した要請は4つの連続的なバンク0の要請のみを含むため、スレーブコントローラ120はバンクインタリービングを遂行することができない。従って、スレーブコントローラ120の1つのコア(one core)は1行で4回に亘ってバンク0にアクセス(リード又はライト)する。一方、スレーブコントローラ120の他のコアは他のバンクにアクセスすることができない所謂アイドリング(idling)状態になる。アイドリング状態は遅い応答タイムを発生させるバンク衝突をもたらす。
マスターコントローラ110が、アドレスマッピング情報と、例えばメモリ装置のインカミング要請のチャンネルID、ランクID、バンクID、及び行IDのようなメモリ構成情報とを有する場合、マスターコントローラ110は、CPUの要請を再整理(re−order)し、再整理された(又はインターリーブされた)要請をスレーブコントローラ120に送信する。図2Aを参照すると、マスターバッファ201はバンクID情報を有しない。なぜならば、マスターコントローラ110がアドレスマッピング情報を有しないためである。従って、マスターコントローラ110は要請がマスターバッファ201内に格納されていることによって要請を単純に伝送する。本発明の一実施形態によるアドレスマッピング情報に基づくマスターコントローラ110による再整理は、より効率的なバンクインタリービングを獲得する。
図2Bは、本発明の一実施形態によるマスターバッファとスレーブバッファとの間のメモリマッピングの一例を示す図である。図2Aの例と同様に、マスターバッファ251は4つの連続的なバンク0の要請及び後続するバンク1、バンク2、バンク3、及びバンク4の要請を含む。初期にスレーブバッファ252は空いているため、マスターコントローラ110はマスターバッファ251の4つの要請をスレーブコントローラ120に送信することを許諾する。メモリ装置のアドレスマッピング情報が分かると、マスターコントローラ110はマスターバッファ251内の第1の4つの要請の代わりに第1バンク0の要請、及びバンク1、バンク2、バンク3の要請を含むようにマスターバッファ251内で要請を再整理する。この場合、スレーブコントローラ120はスレーブコントローラ120の可用コアを利用してバンク0、バンク1、バンク2、及びバンク3に同時にアクセスすることによってバンクインタリービングを遂行する。
一実施形態において、マスターコントローラとスレーブコントローラとはシステムブーティング時にアドレスマッピングの選択を交換し、使用者はどのアドレスマッピングスキームを使用するかを決定する。アドレスマッピングスキームは、システムがリブーティングされるか、或いは使用者がアドレスマッピングスキームをその場で(on the fly)再構成する時まで変更されないこともある。システムブーティング時にアドレスマッピングスキームを選択する場合、メモリシステムはメモリコントローラ内にハードウェアデコーダを構成する。ハードウェアデコーダはインカミングアドレスをDRAM内のチャンネル、ランク、バンク、及び行IDsに対応する物理アドレスにデコーディングする。
クローズ(close)ページは毎メモリアクセス(例えば、リード及びライト)の後にプリチャージコマンドによって開始される。クローズページは、行バッファミス(misses)に対するレイテンシ(latency)を減らすが、行バッファヒット(hits)に対するレイテンシを増加させる。なぜならば、クローズされたページは行バッファヒットの場合に再びオープンされなければならないためである。オープンページはミスする時までプリチャージを遅延する。オープンページは、行バッファヒットに対するレイテンシを減らすが、行バッファミスに対するレイテンシを増加させる。行バッファミス及びヒットの率に依存して、スレーブコントローラは、クローズ、オープン、及びプリチャージを決定する。
本発明のトランザクション基盤メモリシステムは成熟するオープンページポリシー(mature open page policy)を提供する。従来のメモリシステムで、スレーブコントローラは、スレーブバッファをスキャンし、位置関係(locality)が不明の場合、ページをクローズする。即ち、ページオープン及びクローズは、オープンページから利益を得られるペンディング要請であっても、スレーブバッファの位置関係のみによって決定される。スレーブコントローラは一般的に小規模のスレーブバッファを有するため、スレーブコントローラは、マスターコントローラからのその後の要請を予見して成熟するオープンページポリシーを適用することができない。このような意味で、スレーブコントローラのみによって具現され、スレーブバッファの大きさに制限されるオープンページポリシーはオープンページの早計な(premature)クローズを頻繁にもたらす。
一実施形態において、マスターコントローラは、マスターバッファ251をスキャンし、ページオープン及びクローズに関する情報をスレーブコントローラに提供する。マスターコントローラは位置関係がマスターバッファ251内で確認されない場合にスレーブコントローラがオープンページをクローズするようにする。マスターコントローラはより深い(deeper)バッファを有し、その後のより多い要請を予見するため、マスターコントローラはより効率的なオープンページポリシー及び行バッファ管理を提供する。
図3Aは、スレーブコントローラのページオープンポリシーの比較例を示す図である。各要請をバンク番号及び行バッファ番号で示す。例えば、Bn:Rmはバンク番号nの行バッファ番号mを示す。各バンクは専用の行バッファを有する。1つのバンク内に多数の行がある。行をオープンすることによって、データは行のバンクに関連する行バッファに置かれる。行バッファはDRAM内で速いキャッシュ(cache)として機能する。行アクセスは、DRAMのバンクの一行(ページ)を活性化し、活性化された行(オープンページ)からのデータを行バッファ内にコピーする。カラムアクセスは、活性化された行のカラムを選択し、活性化された行及び選択されたカラムに対応するブロックのデータを返還する。プリチャージは活性化された行にアクセスする前にDRAMのバンクをチャージ(charge)する。リフレッシュは、DRAM内のデータを維持するために周期的にDRAMをリードし、ライトする。
マスターコントローラはマスターバッファ201内のトランザクションキューの一部をスレーブコントローラに送り、スレーブコントローラは受信されたキューをスレーブバッファ202内に配置する(格納する)。一例として、初期に4エントリディープを有するスレーブバッファ202が空いているため、マスターバッファ201内の4つのキューはスレーブバッファ202にコピーされる。スレーブバッファ202にコピーされたキューはB0:R0に対する1つのキューのみを含むため、スレーブコントローラはB0:R0に対するページをオープンし、B0:R0に対するキューが完了した後にオープンされたページをクローズする。マスターコントローラはスレーブコントローラと情報(例えば、マスターバッファ201内のキュー)を共有しないため、スレーブコントローラは、オープンされたページに対する更に多いキューがスレーブバッファ202内に待機しない場合、オープンされたページをクローズする。この場合、ページオープンを維持する決定及びページをクローズする決定は、スレーブバッファ202内に可用されるキューに基づいてスレーブコントローラのロジックによって単独に決定される。
図3Bは、本発明の一実施形態によるトランザクション基盤メモリシステムのページオープンポリシーの一例を示す図である。本実施形態のトランザクション基盤メモリはマスターバッファ251内のキューを参照してページオープンポリシーを拡張する。初期にスレーブバッファ252は空いているため、マスターバッファ251内の4つのキューはスレーブバッファ252内にコピーされる。スレーブバッファ252にコピーされたキューはB0:R0のページに対する1つのキューのみを含む。しかし、マスターバッファ251はB0:R0に対するページのペンディング(pending)キューを含む。従って、マスターコントローラはB0:R0に対するページオープンを維持するために命令(例えば、フラグ)をスレーブコントローラに送る。なぜならば、同一のページに対するペンディングキューが後続するためである。マスターコントローラの命令に応答して、スレーブコントローラは同一のページに対する待機キューが到着する時までページオープンを維持し、対応するメモリトランザクションは完了する。拡張されたページオープンポリシーのためにマスターコントローラとスレーブコントローラとの間で交換されるフラグを図4を参照して更に具体的に説明する。
図4は、本発明の一実施形態によるトランザクション基盤メモリシステムの一例を示すブロック図である。図1のメモリシステム100と同様に、トランザクション基盤メモリシステム400は、マスターコントローラ410(例えば、メモリコントローラ)、スレーブコントローラ420、(例えば、DRAMコントローラ)、及びメモリ装置430(例えば、DRAM)を含む。マスターコントローラ410は、メモリ装置430にアクセスするためにCPUから要請を受信し、要請に対応するCPUに応答する。
マスターコントローラ410、スレーブコントローラ420、及びメモリ装置430を分離されたブロックで示しているが、マスターコントローラ410、スレーブコントローラ420、及びメモリ装置430は多様な方法で具現されて構成される。一実施形態において、スレーブコントローラ420はメモリ装置430内に常駐(reside)し、メモリ装置430はホストコンピュータのメモリスロット内に挿入される。他の実施形態として、スレーブコントローラ420はホストコンピュータのマスターコントローラ410内に常駐する。
マスターコントローラ410は、エンコーダ411、スケジューラ412、デコーダ413、アドレスマッピングデコーダ414、及びフラグ構成器415を含む。アドレスマッピングデコーダ414はメモリ装置430のアドレスマッピング情報を格納する。アドレスマッピング情報は、チャンネル、ランク、バンク、及び行情報を含む。アドレスマッピングデコーダ414は、アドレスマッピング情報をチャンネルID、ランクID、バンクID、及び行IDを有するエンコーディングされたトランザクションキュー417に格納する。アドレスマッピングデコーダ414は、図2Bの例で示したようにアドレスマッピング情報に基づいてエンコーディングされたトランザクションキューを再整理するため、マスターコントローラ410はスレーブコントローラ420のようなアドレスマッピングを維持する。例えば、新しいメモリ装置430が挿入されると、スレーブコントローラ420は新しいメモリ装置430のアドレスマッピング情報をシステムブーティングタイムの間にマスターコントローラ410に送る。アドレスマッピングデコーダ414はインタリービング及び行バッファ管理の両方に対する要請をデコーディングする。
スケジューラ412は、バンク、ランク、DIMM、及びXORインタリービングを最適化するために多様なスケジューリングスキームを用いる。スケジューリングの例としては、限定されるものではないが、チャンネルラウンドロビン(round robin)、ランクラウンドロビン、及びバンクラウンドロビンを含む。フラグ構成器415は、マスターコントローラ410とスレーブコントローラ420との間の情報交換を促進するために追加フラグを設定する。これらのフラグは、図3Bの例を参照して説明したように、拡張されたページオープンポリシーに基づいてページオープンを維持するために使用される。追加フラグの例としては、限定されるものではないが、要求活性化(requireACT)フラグ及び要求プリチャージ(requirePRE)フラグを含む。これらのフラグはトランザクションキュー417内で要請と共にパケット化される。
スレーブコントローラ420は、デコーダ421、スケジューラ422、パケタイザ423、及びリフレッシュハンドラー424を含む。デコーダ421は、簡単な要請パケット(straight forward request packets)をrequireACT及びrequirePREフラグ(flags)に基づいてメモリコマンドに変換する。リフレッシュハンドラー424は、必要に応じて、requireACT及びrequirePREフラグに基づいて簡単なリフレッシュハンドリングを遂行する。スレーブコントローラ420のリフレッシュコントローラ(図示せず)はリフレッシュ動作の遂行を継続する。リフレッシュハンドラー424はリフレッシュ状況の処理を担当する。例えば、リフレッシュハンドラー424はフラグに基づいて標準リフレッシュ動作を中断(インタラプト)し、リフレッシュ状況処理の後、リフレッシュ動作前の状態からリフレッシュ動作を再開する。
表1は2つの追加フラグ、即ちフラグ構成器415によって構成されたrequireACT及びrequirePREを示す。requireACTフラグは、パケットがフルアドレス(行及び列アドレス)を必要とする時に真(true)として設定される。パケットのフルアドレスを利用して、スレーブコントローラ420は、受信されたパケットを行アドレス選択(RAS)−列アドレス選択(CAS)(又はRAS−CASライト:CASW)にデコーディングする。一方、requirePREフラグは、パケットが部分アドレス、例えばカラムアドレスのみを必要とする時に偽(false)として設定される。この場合、スレーブコントローラ420は、アクティブ行(RAS)を有し、パケットをCAS(又はCASW)にデコーディングする。
requirePREフラグは、マスターコントローラ410が行空間の位置関係(row spatial locality)がマスターバッファ内に存在しないことを決定した時に真(true)として設定される。スレーブコントローラ420は、オープンページをクローズし、新しいページのオープンを準備するようにプリチャージコマンドを以前のコマンドに追加する。一方、requirePREフラグは、行空間の位置関係(row spatial locality)が存在した時に偽として設定される。この場合、スレーブコントローラ420はプリチャージコマンドを以前のコマンドに追加せず、オープンページは、requirePREフラグがオープンページをクローズするように真として設定される時までオープンに維持される。
Figure 2017045452
以下の擬似コード(pseudo−code)は、マスターコントローラ410がrequireACT及びrequirePREフラグをどのようにして構成し、管理するかを一例として示す。マスターコントローラ410は、擬似コード内でinputBufferと称するトランザクションキュー417を含む。requireACT及びrequirePREフラグは初期に真として設定される。マスターコントローラ410はトランザクションキュー417内でインカミング要請をスキャンする。インカミング要請がトランザクションキュー417内のペンディング要請のような同一チャンネル、ランク、バンク、及び行を有する場合、ペンディング要請のrequirePREフラグは偽として設定される。偽requirePREフラグは、インカミング要請が処理される時まで対応するページオープンをそのまま配置する。一方、インカミング要請のrequireACTフラグ及びrequirePREフラグは偽及び真として各々設定される。キュー内でテール(tail)からマッチ(match)が発見されると、スキャニング過程は中止される。なぜならば、これはマッチが発見された後、スキャニング過程を継続することが他のペンディング要請に対して望まない変更になることがあり、ペンディング要請のフラグを変更するためである。マッチがない場合、requireACTフラグ及びrequirePREフラグは変更されず、スレーブコントローラ420がオープンページを自由にクローズすることができる真(true)として設定される。
Figure 2017045452
スレーブコントローラ420は、マスターコントローラ410によって提供されるフラグを有し、requireACT及びrequirePREフラグの状態に基づいてインカミングパケットをメモリコマンドに変換する。表2はスレーブコントローラ420のデコーダ421がrequireACT及びrequirePREフラグの状態に基づいてマスターコントローラ410のインカミングパケットから生成するメモリコマンドの一例を示す。requireACTフラグ及びrequirePREフラグが両方真である場合、デコーダ421はRAS−CAS−PRE或いはRAS−CASW−PREコマンドを発行する。requireACTフラグが真であるが、requirePREフラグが偽である場合、デコーダ421はPREコマンドの追加無しにRAS−CAS或いはRAS−CASWコマンドを発行する。requireACTフラグ及びrequirePREフラグが両方偽である場合、デコーダ421は行活性化又はPREコマンドの追加無しにCAS或いはCASWコマンドを発行する。requireACTフラグが偽であるが、requirePREフラグが真である場合、デコーダ421は行活性化無しにCAS−PRE或いはCASW−PREコマンドを発行する。
Figure 2017045452
スレーブコントローラ420は、特に2つの追加フラグ、即ちrequireACT及びrequirePREの具現によるマスターコントローラ410の変更を収容するためにリフレッシュを差別的に取り扱う。以下の擬似コード(pseudo−code)の一例は、スレーブコントローラ420のリフレッシュハンドラー424がリフレッシュコマンドをどのようにして取り扱っているかを示す。ページオープンの時、リフレッシュハンドラー424はプリチャージコマンドをどれくらい早く施行するかを決定する。現在のバンク状態がアクティブロー状態ではなく、最後のコマンドがプリチャージコマンドである場合、リフレッシュハンドラー424は強制的にプリチャージを決定する。プリチャージを施行するために活性化コマンド及びプリチャージコマンドが挿入される。プリチャージコマンドが先ず発行され、リフレッシュコマンドが暗黙のうちに発行され、その後に活性化コマンドが発行される。活性化コマンドは、リフレッシュコマンドが完了すると、行を再びオープンする。リフレッシュカウンターが0(ゼロ)に到達し、全てのバンクがアイドル状態である場合、リフレッシュコマンドが発行される。
Figure 2017045452
一実施形態において、スケジューラ412は、インターリーブされたメモリトランザクションを最適化するために、マスターコントローラ410のトランザクションキュー417及びスレーブコントローラ420のコマンドキュー425をスケジューリングする。スケジューラ412は、マスターコントローラ410及びスレーブコントローラ420によって要請された従属性を維持する。スケジューラ412は、メモリ装置430のアクセス時にタイミング制約を守りながら、スレーブコントローラ420によってメモリコマンドの従属性を更に維持する。スケジューラ412は、マスターコントローラ410のトランザクションキュー417内のペンディング要請を再整理することによってメモリ性能を最適化する。マスターコントローラ410は、並列性が最大化されるようにできるだけ速やかに要請を送ることを試みる。従って、メモリシステム400の性能が改善される。
スレーブコントローラ420におけるペンディングコマンドは、スレーブコントローラ420が性能を最適化するためにコマンドをできるだけ速やかに発行できる方法で再整理される。要請された従属性が維持され(例えば、リードライトシークェンス)、コマンド従属性が維持され(例えば、RAS CASシークェンス)、可用資源が(バンクがビジー状態ではない)ある限り、スケジューラ412はインカミング要請に関連するコマンドの発行を維持する。一例として、スケジューラ412は、バンク1、1、1、及び2にアクセスするためのコマンドのシークェンスを受信する。スケジューラ412は、バンクシークェンスが1、2、1、及び1になるようにコマンドを再整理する。即ち、スケジューラ412は、バンク2にアクセスするコマンドに対して、以前の全てのコマンドを終了するために待機する必要は無い。要請及びコマンドの従属性が充足される限り資源は可用され、スケジューラ412は、インカミング要請を再スケジューリングし、再スケジューリングされた要請を性能の最適化のためにできる限り速やかに発行する。
一実施形態において、メモリシステムは、マスターコントローラ、ホストコンピュータに対するインターフェイス、及びスレーブコントローラに連結されたリンクバスを備える。マスターコントローラは、アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含む。アドレスマッピングデコーダは、スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングする。マスターコントローラのスケジューラは、メモリ装置のアドレスマッピング情報を利用してトランザクションキュー内のホストコンピュータから受信されたメモリトランザクション要請を再整理する。メモリシステムはマスターコントローラのトランザクションキュー内のペンディングメモリトランザクション要請に基づいて拡張オープンページポリシーを用いる。
アドレスマッピング情報は、チャンネルID、ランクID、バンクID、及び行IDを含む。
マスターコントローラは、フラグ構成器を更に含み、リンクバスを通じてフラグ構成器によって構成された複数のフラグをスレーブコントローラに送信する。
複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含む。
フラグ構成器は、ホストコンピュータから受信されたインカミングメモリトランザクション要求がトランザクションキュー内のペンディングメモリトランザクション要請(request)のチャンネルID、ランクID、バンクID、及び行IDを含む場合、メモリ装置の活性化されたページがオープンされるようにするために要求プリチャージフラグを設定する。
一実施形態において、メモリモジュールは、デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラを備え、またメモリ装置を備える。デコーダは、メモリトランザクション要請を受信し、メモリトランザクション要請に基づいてメモリコマンドを生成し、コマンドキュー内にメモリコマンドを配置する。更に、デコーダは、複数のフラグを受信し、複数のフラグに基づいてコマンドキュー内のメモリコマンドを再整理する。
スレーブコントローラは、複数のフラグに基づいてコマンドキュー内のメモリコマンドを変更して再整理し、変更して再整理されたメモリコマンドに基づいてメモリ装置のリフレッシュ動作を処理するリフレッシュハンドラーを更に含む。
スケジューラは、コマンドキュー内のメモリコマンドに基づいてメモリコマンド及びメモリコマンドに関連するアドレスをメモリ装置に送信する。
メモリモジュールは、パケタイザ及びリードリターンキューを更に含む。メモリ装置から受信されたデータは、リードリターンキュー内に配置され、パケタイザは、データを含むパケットを生成し、リンクバスを通じてパケットをマスターコントローラに送信する。
スレーブコントローラは、メモリコマンド及びメモリコマンドに関連するアドレスを、メモリコマンドがコマンドキューに配置された順にメモリ装置に送信する第2スケジューラを更に含む。
一実施形態において、メモリシステムにおけるマスターコントローラの動作方法は、リンクバスを通じてスレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、ホストコンピュータからメモリトランザクション要請を受信するステップと、トランザクションキュー内にメモリトランザクション要請を配置するステップと、メモリ装置のアドレスマッピング情報を利用してトランザクションキュー内のメモリトランザクション要請を再整理するステップと、を有する。
上記方法において、アドレスマッピング情報は、チャンネルID、ランクID、バンクID、及び行IDを含む。
上記方法は、複数のフラグを構成し、リンクバスを通じて複数のフラグをスレーブコントローラに送信するステップを更に含む。
上記方法において、複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含む。
上記方法は、ホストコンピュータから受信されたインカミングメモリトランザクション要求がトランザクションキュー内のペンディングメモリトランザクション要請のチャンネルID、ランクID、バンクID、及び行IDを含む場合、メモリ装置の活性化されたページがオープンされるようにするために要求プリチャージフラグを設定するステップを更に含む。
一実施形態において、メモリシステムにおけるスレーブコントローラの動作方法は、リンクバスを通じてメモリ装置のアドレスマッピング情報をマスターコントローラに送信するステップと、メモリトランザクション要請を受信するステップと、メモリトランザクション要請をデコーディングし、デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、コマンドキュー内にメモリコマンドを配置するステップと、複数のフラグを受信するステップと、複数のフラグに基づいてコマンドキュー内のメモリコマンドを再整理するステップと、を有する。
上記方法は、複数のフラグに基づいてコマンドキュー内のメモリコマンドを変更して再整理し、変更して再整理されたメモリコマンドに基づいてメモリ装置のリフレッシュ動作を処理するステップを更に含む。
上記方法は、コマンドキュー内のメモリコマンドに基づいてメモリコマンドとメモリコマンドに関連するアドレスをメモリ装置に送信するステップを更に含む。
上記方法は、メモリ装置から受信されたデータをリードリターンキュー内に配置し、データを含むパケットを生成し、リンクバスを通じてパケットをマスターコントローラに送信するステップを更に含む。
上記方法は、メモリコマンド及びメモリコマンドに関連するアドレスを、メモリコマンドがコマンドキューに配置された順にメモリ装置に送信するステップを更に含む。
以上、本発明の実施形態について図面を参照しながら詳細に説明したが、本発明は、上述の実施形態に限定されるものではなく、本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
100、400 トランザクション基盤メモリシステム
110、410 マスターコントローラ
111、411 エンコーダ
112、122、412、422 スケジューラ
113、121、413、421 デコーダ
115、417 トランザクションキュー
116、126、416、426 リードリターンキュー
120、420 スレーブコントローラ
123、423 パケタイザ
125、425 コマンドキュー
130、430 メモリ装置(DRAM)
201、251 マスターバッファ
202、252 スレーブバッファ
414 アドレスマッピングデコーダ
415 フラグ構成器
424 リフレッシュハンドラー

Claims (20)

  1. アドレスマッピングデコーダ、トランザクションキュー、及びスケジューラを含むマスターコントローラと、
    ホストコンピュータに対するインターフェイスと、
    スレーブコントローラに連結されたリンクバスと、を備え、
    前記アドレスマッピングデコーダは、前記スレーブコントローラに連結されたメモリ装置のアドレスマッピング情報をデコーディングし、
    前記マスターコントローラのスケジューラは、前記メモリ装置のアドレスマッピング情報を利用して前記トランザクションキュー内の前記ホストコンピュータから受信されたメモリトランザクション要請を再整理することを特徴とするメモリシステム。
  2. 前記アドレスマッピング情報は、チャンネルID、ランクID、バンクID、及び行IDを含むことを特徴とする請求項1に記載のメモリシステム。
  3. 前記マスターコントローラは、フラグ構成器を更に含み、前記リンクバスを通じて前記フラグ構成器によって構成された複数のフラグを前記スレーブコントローラに送信することを特徴とする請求項1に記載のメモリシステム。
  4. 前記複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含むことを特徴とする請求項3に記載のメモリシステム。
  5. 前記フラグ構成器は、前記ホストコンピュータから受信されたインカミングメモリトランザクション要求が前記トランザクションキュー内のペンディングメモリトランザクション要請のチャンネルID、ランクID、バンクID、及び行IDを含む場合、前記メモリ装置の活性化されたページがオープンされるようにするために前記要求プリチャージフラグを設定することを特徴とする請求項4に記載のメモリシステム。
  6. デコーダ、スケジューラ、コマンドキュー、及びリードリターンキューを含むスレーブコントローラと、
    メモリ装置と、を備え、
    前記デコーダは、メモリトランザクション要請を受信し、前記メモリトランザクション要請に基づいてメモリコマンドを生成し、前記コマンドキュー内に前記メモリコマンドを配置し、更に、
    前記デコーダは、複数のフラグを受信し、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理することを特徴とするメモリモジュール。
  7. 前記スレーブコントローラは、前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを変更して再整理し、前記変更して再整理されたメモリコマンドに基づいて前記メモリ装置のリフレッシュ動作を処理するリフレッシュハンドラーを更に含むことを特徴とする請求項6に記載のメモリモジュール。
  8. 前記スケジューラは、前記コマンドキュー内の前記メモリコマンドに基づいて前記メモリコマンド及び前記メモリコマンドに関連するアドレスを前記メモリ装置に送信することを特徴とする請求項6に記載のメモリモジュール。
  9. パケタイザ及びリードリターンキューを更に含み、
    前記メモリ装置から受信されたデータは、前記リードリターンキュー内に配置され、
    前記パケタイザは、前記データを含むパケットを生成し、リンクバスを通じて前記パケットをマスターコントローラに送信することを特徴とする請求項6に記載のメモリモジュール。
  10. スレーブコントローラは、前記メモリコマンド及び前記メモリコマンドに関連するアドレスを、前記メモリコマンドが前記コマンドキューに配置された順に前記メモリ装置に送信する第2スケジューラを更に含むことを特徴とする請求項6に記載のメモリモジュール。
  11. メモリシステムにおけるマスターコントローラの動作方法であって
    リンクバスを通じてスレーブコントローラからメモリ装置のアドレスマッピング情報を受信するステップと、
    ホストコンピュータからメモリトランザクション要請を受信するステップと、
    トランザクションキュー内に前記メモリトランザクション要請を配置するステップと、
    前記メモリ装置のアドレスマッピング情報を利用して前記トランザクションキュー内の前記メモリトランザクション要請を再整理するステップと、を有することを特徴とする方法。
  12. 前記アドレスマッピング情報は、チャンネルID、ランクID、バンクID、及び行IDを含むことを特徴とする請求項11に記載の方法。
  13. 複数のフラグを構成し、前記リンクバスを通じて前記複数のフラグを前記スレーブコントローラに送信するステップを更に含むことを特徴とする請求項11に記載の方法。
  14. 前記複数のフラグは、要求活性化フラグ及び要求プリチャージフラグを含むことを特徴とする請求項13に記載の方法。
  15. 前記ホストコンピュータから受信されたインカミングメモリトランザクション要求が前記トランザクションキュー内のペンディングメモリトランザクション要請のチャンネルID、ランクID、バンクID、及び行IDを含む場合、前記メモリ装置の活性化されたページがオープンされるようにするために前記要求プリチャージフラグを設定するステップを更に含むことを特徴とする請求項14に記載の方法。
  16. メモリシステムにおけるスレーブコントローラの動作方法であって、
    リンクバスを通じてメモリ装置のアドレスマッピング情報をマスターコントローラに送信するステップと、
    メモリトランザクション要請を受信するステップと、
    前記メモリトランザクション要請をデコーディングし、前記デコーディングされたメモリトランザクション要請に基づいてメモリコマンドを生成するステップと、
    コマンドキュー内に前記メモリコマンドを配置するステップと、
    複数のフラグを受信するステップと、
    前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを再整理するステップと、を有することを特徴とする方法。
  17. 前記複数のフラグに基づいて前記コマンドキュー内の前記メモリコマンドを変更して再整理し、前記変更して再整理されたメモリコマンドに基づいて前記メモリ装置のリフレッシュ動作を処理するステップを更に含むことを特徴とする請求項16に記載の方法。
  18. 前記コマンドキュー内の前記メモリコマンドに基づいて前記メモリコマンド及び前記メモリコマンドに関連するアドレスを前記メモリ装置に送信するステップを更に含むことを特徴とする請求項16に記載の方法。
  19. 前記メモリ装置から受信されたデータをリードリターンキュー内に配置し、前記データを含むパケットを生成し、リンクバスを通じて前記パケットをマスターコントローラに送信するステップを更に含むことを特徴とする請求項16に記載の方法。
  20. 前記メモリコマンド及び前記メモリコマンドに関連するアドレスを、前記メモリコマンドが前記コマンドキューに配置された順に前記メモリ装置に送信するステップを更に含むことを特徴とする請求項16に記載の方法。
JP2016157289A 2015-08-27 2016-08-10 トランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法 Active JP6796430B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201562210935P 2015-08-27 2015-08-27
US62/210,935 2015-08-27
US14/959,773 US9904635B2 (en) 2015-08-27 2015-12-04 High performance transaction-based memory systems
US14/959,773 2015-12-04

Publications (2)

Publication Number Publication Date
JP2017045452A true JP2017045452A (ja) 2017-03-02
JP6796430B2 JP6796430B2 (ja) 2020-12-09

Family

ID=58095608

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016157289A Active JP6796430B2 (ja) 2015-08-27 2016-08-10 トランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法

Country Status (5)

Country Link
US (1) US9904635B2 (ja)
JP (1) JP6796430B2 (ja)
KR (1) KR102401594B1 (ja)
CN (1) CN106484317B (ja)
TW (1) TWI681290B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180188976A1 (en) * 2016-12-30 2018-07-05 Intel Corporation Increasing read pending queue capacity to increase memory bandwidth
TWI645295B (zh) 2017-06-20 2018-12-21 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US10140222B1 (en) 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
US10437482B2 (en) * 2017-07-25 2019-10-08 Samsung Electronics Co., Ltd. Coordinated near-far memory controller for process-in-HBM
CN108628759B (zh) * 2017-12-29 2020-09-01 贵阳忆芯科技有限公司 乱序执行nvm命令的方法与装置
CN113626235A (zh) 2018-06-28 2021-11-09 华为技术有限公司 容错处理的方法、装置和服务器
KR102495539B1 (ko) 2018-07-16 2023-02-06 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US11100013B2 (en) * 2018-08-08 2021-08-24 Apple Inc. Scheduling of read and write memory access requests
US10936507B2 (en) * 2019-03-28 2021-03-02 Intel Corporation System, apparatus and method for application specific address mapping
KR20200129843A (ko) * 2019-05-10 2020-11-18 에스케이하이닉스 주식회사 연산 회로를 포함하는 메모리 장치, 이를 제어하는 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US11526632B2 (en) * 2019-09-04 2022-12-13 Rambus Inc. Securing address information in a memory controller
CN111459414B (zh) * 2020-04-10 2023-06-02 上海兆芯集成电路有限公司 存储器调度方法及存储器控制器
KR20220046211A (ko) 2020-10-07 2022-04-14 에스케이하이닉스 주식회사 저항성 메모리 장치를 제어하기 위한 메모리 컨트롤러 및 이를 포함하는 메모리 시스템
US20230060826A1 (en) * 2021-09-01 2023-03-02 Micron Technology, Inc. Command scheduling component for memory
US20240020058A1 (en) * 2022-07-14 2024-01-18 Xilinx, Inc. Memory controller with a preprocessor
CN116893992B (zh) * 2023-09-11 2023-12-26 西安智多晶微电子有限公司 一种ddr2/3内存控制器的命令重排方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530742A (ja) * 1998-11-16 2002-09-17 インフィネオン・テクノロジーズ・アーゲー 外部デバイスへのアクセスを優先順序付けるための方法および装置
JP2007026366A (ja) * 2005-07-21 2007-02-01 Canon Inc メモリコントローラ
JP2011060162A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd メモリ制御装置
JP2012128815A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP2015511052A (ja) * 2013-01-17 2015-04-13 インテル コーポレイション 共有メモリ・ファブリックを介したメモリ・アクセスの調停

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2675981B2 (ja) * 1993-09-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション スヌープ・プッシュ・オペレーションを回避する方法
US6715046B1 (en) * 2001-11-29 2004-03-30 Cisco Technology, Inc. Method and apparatus for reading from and writing to storage using acknowledged phases of sets of data
US7089379B1 (en) 2002-06-28 2006-08-08 Emc Corporation Large high bandwidth memory system
US7076617B2 (en) * 2003-09-30 2006-07-11 Intel Corporation Adaptive page management
US7162583B2 (en) * 2003-12-29 2007-01-09 Intel Corporation Mechanism to store reordered data with compression
TWI307837B (en) * 2004-09-20 2009-03-21 Novatek Microelectronics Corp Apparatus and method of microcontroller for memory mapping
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
US20080189479A1 (en) 2007-02-02 2008-08-07 Sigmatel, Inc. Device, system and method for controlling memory operations
US20080320255A1 (en) 2007-06-25 2008-12-25 Sonics, Inc. Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets
US8055816B2 (en) * 2009-04-09 2011-11-08 Micron Technology, Inc. Memory controllers, memory systems, solid state drives and methods for processing a number of commands
US8380940B2 (en) 2010-06-25 2013-02-19 Qualcomm Incorporated Multi-channel multi-port memory
US20120054455A1 (en) 2010-08-31 2012-03-01 Qualcomm Incorporated Non-Uniform Interleaving Scheme In Multiple Channel DRAM System
US8949501B1 (en) * 2010-10-31 2015-02-03 Integrated Device Technology, Inc. Method and apparatus for a configurable packet routing, buffering and scheduling scheme to optimize throughput with deadlock prevention in SRIO-to-PCIe bridges
TW201239632A (en) 2011-03-16 2012-10-01 Sunplus Technology Co Ltd Memory access system and method for optimizing SDRAM bandwidth
CN103069757B (zh) * 2011-08-17 2015-07-22 华为技术有限公司 一种报文重组重排序方法、装置和系统
WO2013028827A1 (en) 2011-08-24 2013-02-28 Rambus Inc. Methods and systems for mapping a peripheral function onto a legacy memory interface
US20140068125A1 (en) 2012-08-30 2014-03-06 Lsi Corporation Memory throughput improvement using address interleaving
US9141561B2 (en) * 2012-10-25 2015-09-22 Texas Instruments Incorporated Master circuits having dynamic priority leads coupled with memory controller
CN103870408B (zh) * 2012-12-18 2017-06-06 群联电子股份有限公司 数据处理方法、存储器控制器与存储器储存装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002530742A (ja) * 1998-11-16 2002-09-17 インフィネオン・テクノロジーズ・アーゲー 外部デバイスへのアクセスを優先順序付けるための方法および装置
JP2007026366A (ja) * 2005-07-21 2007-02-01 Canon Inc メモリコントローラ
JP2011060162A (ja) * 2009-09-14 2011-03-24 Ricoh Co Ltd メモリ制御装置
JP2012128815A (ja) * 2010-12-17 2012-07-05 Toshiba Corp メモリシステム
JP2015511052A (ja) * 2013-01-17 2015-04-13 インテル コーポレイション 共有メモリ・ファブリックを介したメモリ・アクセスの調停

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022046413A (ja) * 2020-09-10 2022-03-23 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力
JP7170093B2 (ja) 2020-09-10 2022-11-11 ウェスタン デジタル テクノロジーズ インコーポレーテッド 記憶デバイスのための改良された先読み能力

Also Published As

Publication number Publication date
KR20170026116A (ko) 2017-03-08
US9904635B2 (en) 2018-02-27
KR102401594B1 (ko) 2022-05-24
JP6796430B2 (ja) 2020-12-09
CN106484317A (zh) 2017-03-08
US20170060788A1 (en) 2017-03-02
TW201710904A (zh) 2017-03-16
TWI681290B (zh) 2020-01-01
CN106484317B (zh) 2019-04-19

Similar Documents

Publication Publication Date Title
JP6796430B2 (ja) トランザクション基盤のメモリシステム並びにマスターコントローラ及びスレーブコントローラの動作方法
KR101154708B1 (ko) 메모리 액세스들의 순서를 수정하기 위한 시스템, 장치 및 방법
US7281110B1 (en) Random access memory controller with out of order execution
JP5453546B2 (ja) 複数の仮想キューを含むアドレス変換ユニット
JP4742116B2 (ja) アウトオブオーダdramシーケンサ
JP4748610B2 (ja) 取り出されたデータをメモリに直接に書き込むストレージコントローラによるバッファスペースの最適な使用
EP3724775B1 (en) Cache control aware memory controller
US10846253B2 (en) Dynamic page state aware scheduling of read/write burst transactions
US10152434B2 (en) Efficient arbitration for memory accesses
WO2014206230A1 (zh) 内存访问方法和内存控制器
US6922770B2 (en) Memory controller providing dynamic arbitration of memory commands
US20110276727A1 (en) Quantum burst arbiter and memory controller
US8959278B2 (en) System and method for scalable movement and replication of data
US10853070B1 (en) Processor suspension buffer and instruction queue

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200317

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200616

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201116

R150 Certificate of patent or registration of utility model

Ref document number: 6796430

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250