JP7614865B2 - メモリコントローラ及びその制御方法 - Google Patents

メモリコントローラ及びその制御方法 Download PDF

Info

Publication number
JP7614865B2
JP7614865B2 JP2021015139A JP2021015139A JP7614865B2 JP 7614865 B2 JP7614865 B2 JP 7614865B2 JP 2021015139 A JP2021015139 A JP 2021015139A JP 2021015139 A JP2021015139 A JP 2021015139A JP 7614865 B2 JP7614865 B2 JP 7614865B2
Authority
JP
Japan
Prior art keywords
read
write
commands
command
active
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021015139A
Other languages
English (en)
Other versions
JP2022118548A (ja
Inventor
大介 白石
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2021015139A priority Critical patent/JP7614865B2/ja
Priority to US17/578,797 priority patent/US11694735B2/en
Publication of JP2022118548A publication Critical patent/JP2022118548A/ja
Application granted granted Critical
Publication of JP7614865B2 publication Critical patent/JP7614865B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1048Data bus control circuits, e.g. precharging, presetting, equalising
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1051Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
    • G11C7/1063Control signal output circuits, e.g. status or busy flags, feedback command signals
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1078Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
    • G11C7/109Control signal input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)
  • Dram (AREA)

Description

本発明は、メモリコントローラ及びその制御方法に関するものである。
コンピュータシステムの主記憶装置として、一般的にDRAMが使用されている。コンピュータシステムの高機能化、高性能化に伴い、DRAMに対する性能要求は高まっており、その性能を最大限に引き出すためにメモリコントローラの様々な手法が提案されている。
DRAMの異なるバンクへのアクティブコマンドを発行する場合に、アクティブコマンド間にtRRD(RAS to RAS Delay)の間隔を空ける必要がある。先行するアクティブコマンドに続くリードライトコマンドが、後続のアクティブコマンドに対するリードコマンドまたはライトコマンドの開始前に完了してしまうと、データバスにtRRDに起因するギャップが発生してメモリ利用効率が低下する要因となる。
特許文献1では、アクティブコマンドが発行されたリードコマンドまたはライトコマンド数を計測し、その数が予め設定された閾値未満になった場合に、リードコマンドまたはライトコマンド数が多いメモリアクセス要求に対するアクティブコマンドの優先度を上げる。
特開2020-109642号公報
特許文献1に示される手法によると、アクティブコマンドを発行したリードコマンドまたはライトコマンド数が予め設定された閾値未満になった場合に、リードコマンドまたはライトコマンド数が多いメモリアクセス要求に対するアクティブコマンドの優先度を上げる。そのため、リードコマンドまたはライトコマンド数が少ないメモリアクセス要求に対するアクティブコマンドの発行が待たされ続けることがある。そのため、所定時間待たされたアクティブコマンドを優先するためにタイムアウトを検出する機能が必要となる。また、タイムアウトしたアクティブコマンドが複数存在した場合、リードコマンドまたはライトコマンド数が最も多いメモリアクセス要求に対するアクティブコマンドを発行する。このため、リードコマンドまたはライトコマンド数が少ないメモリアクセス要求に対するアクティブコマンドの発行が長時間待たされてしまう。
この課題を解決するため、例えば本発明のメモリコントローラは以下の構成を備える。すなわち、
複数バンクから構成されるメモリにアクセスするメモリコントローラであって、
バスマスタからのリードもしくはライトのアクセス要求を複数保持する保持回路と、
該保持回路に保持されたアクセス要求の1つを選択してリードコマンドもしくはライトコマンドを発行するリードライト制御回路と、
前記保持回路に保持されたアクセス要求を選択してアクティブコマンドを発行するアクティブ制御回路とを備え、
前記アクティブ制御回路は、
前記保持回路に保持されるアクセス要求のうちアクティブコマンドが発行されたアクセスのリードコマンド数を合計したアクティブ済リードコマンド数とライトコマンド数を合計したアクティブ済ライトコマンド数を生成する生成回路と、
tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値未満でなく、前記アクティブ済リードコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数が第3の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値未満でなく、前記アクティブ済ライトコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数が第3の閾値以上となるライトアクセスのアクティブコマンドを優先して発行し、
tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値以上でなく、前記アクティブ済リードコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数と前記アクティブ済リードコマンド数を加算した数が第2の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値以上でなく、前記アクティブ済ライトコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数と前記アクティブ済ライトコマンド数を加算した数が第2の閾値以上となるライトアクセスのアクティブコマンドを優先して発行し、
アクティブコマンドの発行を優先する複数のアクセス要求が存在している場合、前記保持回路に最も古くから保持されているアクセス要求のアクティブコマンドを優先して発行する選択回路を備える
ことを特徴とする。
本発明によれば、リードもしくはライトコマンド数が少ないメモリアクセス要求に対するアクティブコマンド発行を長時間待たせることなく、tRRDに起因するメモリ利用効率低下を抑制することが可能になる。
実施形態におけるメモリコントローラの構成図。 実施形態におけるアクセス保持回路エントリの構成図。 実施形態におけるアクティブ制御回路の構成図。 実施形態におけるアクティブコマンド選択回路の選択処理を示すためのフローチャート。 実施形態におけるアクティブコマンド選択回路の選択処理を示すためのフローチャート。 実施形態におけるアクティブコマンド選択の動作例を示す図。 従来技術におけるアクティブコマンド選択の動作例を示す図。
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
図1は、本実施形態におけるメモリコントローラ100の構成図である。メモリコントローラ100は、複数バンクから構成されるDRAM110と、バスマスタ120に接続される。バスマスタ120は、アドレス情報とライトデータを含むメモリアクセス要求をメモリコントローラ100に送信する。メモリコントローラ100は、バスマスタ120から受信したメモリアクセス要求を基にDRAMコマンドを生成し、生成したDRAMコマンドをDRAM110に送信する。また、メモリコントローラ100は、送信したDRAMコマンドに基づいてDRAM110とデータ転送を行う。
まず、メモリコントローラ100におけるアクセス保持回路101を説明する。アクセス保持回路101は、バスマスタ120から出力されるDRAM110に対するリードアクセス要求、又はライトアクセス要求(以下、これらを単にメモリアクセス要求という)を複数保持するバッファである。アクセス保持回路101は、m個(m≧2)のエントリで構成する。なお、図示では、4つのエントリ数を示しているが、あくまで例示である。アクセス保持回路101が保持できるエントリ数mに、特に制限はない。図2は、実施形態アクセス保持回路101における1つのエントリ1011の構成図である。従って、アクセス保持回路101には、図2に示すエントリ1011をm本有することになる。図2に示すように、エントリ1011は、リクエスト種別、対象バンク、対象ページ、対象カラム、残りリードライトコマンド数のフィールドを有している。アクセス保持回路101は、バスマスタ120から受信したメモリアクセスを各フィールドに対応するように変換して保持する。各フィールドに格納する情報は次の通りである。
(a)リクエスト種別フィールド
当該エントリに格納したメモリアクセス要求の種別を示す
WRITE メモリアクセス要求がライト(データの書込み)
READ メモリアクセス要求がリード(データの読込み)
(b)対象バンクフィールド
当該エントリに格納したメモリアクセス要求がアクセスするバンクアドレス
(c)対象ページフィールド
当該エントリに格納したメモリアクセス要求がアクセスするページアドレス
(d)対象カラムフィールド
当該エントリに格納したメモリアクセス要求がアクセスする先頭カラムアドレス
(e)残りリードライトコマンド数フィールド
当該エントリに格納したメモリアクセス要求により実行される残りDRAMリードライトコマンドの数
アクセス保持回路101は、バスマスタ120からのメモリアクセス要求を受信すると、格納しているメモリアクセス要求の最後尾に続くエントリに、そのメモリアクセス要求を格納する。アクセス保持回路101からメモリアクセス要求を読み出す場合、任意のエントリから読み出し可能である。
続いて、アクセス保持回路101に入力されるエントリ制御信号について説明する。エントリ制御信号は、エントリ番号フィールド、削除フィールド、更新フィールドで構成される。削除フィールドに1がセットされている場合、アクセス保持回路101はエントリ番号フィールドが示すエントリを削除する。更新フィールドに1がセットされている場合、アクセス保持回路101は、エントリ番号フィールドが示すエントリのカラムフィールドを、次DRAMコマンドがアクセスする先頭カラムアドレスに更新する。また、アクセス保持回路101は、残りリードライトコマンド数フィールドを1減算した値に更新する。
次に、リードライト制御回路102を説明する。リードライト制御回路102は、アクセス保持回路101が保持するメモリアクセス要求の全てを参照可能である。リードライト制御回路102は、アクセス保持回路101が保持するメモリアクセス要求のうち、アクセスするページがオープンされているメモリアクセス要求から任意のメモリアクセス要求を選択する。メモリアクセス要求がアクセスするページがオープンされているか否かは、アクセス保持回路エントリ1011の対象バンクフィールドおよび対象ページフィールド、バンク状態管理回路103が生成するバンク状態から判断する。そして、リードライト制御回路102は、選択したメモリアクセス要求からリードコマンドやライトコマンドを生成し、DRAMコマンド選択回路105に出力する。本実施形態のリードライト制御回路102は、リードライトのスイッチングペナルティを抑制するため、リードコマンドとライトコマンドを連続して発行するようにメモリアクセス要求を選択する。そして、リードライト制御回路102は、現在リードアクセスとライトアクセスのどちらを優先して選択しているかを示す優先ディレクションをアクティブ制御回路104に出力する。
続いて、リードライト制御回路102がエントリ制御信号を生成する手順を説明する。メモリアクセス要求により実行される最後のリードコマンドやライトコマンドを発行すると、対応するメモリアクセス要求の処理は完了する。従って、この場合、リードライト制御回路102は、アクセス保持回路101から対応するエントリを削除するようにエントリ制御信号を生成する。一方、最後でないリードコマンドやライトコマンドを発行した場合、リードライト制御回路102は、アクセス保持回路101の対応するエントリを更新するようにエントリ制御信号を生成する。ただし、最後のリードコマンドやライトコマンドを発行した場合は対応するエントリを更新する必要はない。発行したリードコマンドやライトコマンドが最後か否かは、アクセス保持回路エントリ1011の残りリードライトコマンド数フィールドが1であるかで判断する。
次に、バンク状態管理回路103を説明する。バンク状態管理回路103は、DRAMコマンド選択回路105からコマンド発行状態を示す情報を受信し、バンク状態を更新する。コマンド発行状態を示す情報は、DRAM110に発行したコマンド種別、および、コマンドが発行されたバンク、ページから構成される。バンク状態は、DRAM110を構成するバンク毎にページをオープンしているかと、オープンしているページアドレスを含んでいる。
次に、アクティブ制御回路104を説明する。アクティブ制御回路104は、アクセス保持回路101が保持するメモリアクセス要求の全てを参照可能である。アクティブ制御回路104の入力は、アクセス保持回路101が格納するメモリアクセス要求、バンク状態管理回路103が出力するバンク状態、リードライト制御回路102が出力する優先ディレクションである。アクティブ制御回路104は、アクセス保持回路101が格納するメモリアクセス要求とバンク状態に基づいて、アクティブ済リードコマンド数とアクティブ済ライトコマンド数を生成する。そして、アクティブ制御回路104は、生成したアクティブ済リードコマンド数とアクティブ済ライトコマンド数と、アクセス保持回路101が格納するメモリアクセス要求、バンク状態、優先ディレクションに基づいてアクティブコマンドを生成し、DRAMコマンド選択回路105に出力する。
図3は本実施形態におけるアクティブ制御回路104のブロック構成図である。実施形態のアクティブ制御回路104は、アクティブ済コマンド数生成回路1041とアクティブコマンド選択回路1042から構成される。
アクティブ済コマンド数生成回路1041は、バンク状態に基づいてアクセス保持回路101が格納するメモリアクセス要求のそれぞれについて対象バンクが対象ページをオープンしているか否かを判断する。そして、リードとライトそれぞれで対象ページがオープンしていると判断されたメモリアクセス要求のリードライトコマンド数を合計することでアクティブ済リードコマンド数とアクティブ済ライトコマンド数を生成する。
アクティブコマンド選択回路1042は、アクティブ済リードコマンド数とアクティブ済ライトコマンド数、アクセス保持回路101が格納するメモリアクセス要求、及び、バンク状態と優先ディレクションに基づいて、次に発行するアクティブコマンドを生成する。アクティブコマンド選択回路1042の動作をさらに詳しく説明する。図4A,4Bは本実施形態のアクティブコマンド選択回路1042によるアクティブコマンド選択アルゴリズムのフロー図である。
S200にて、アクティブコマンド選択回路1042は、アクセス保持回路101内にアクティブコマンド発行が必要なメモリアクセス要求が存在するのを待つ。つまり、アクセス保持回路101内にアクティブコマンド発行が必要なメモリアクセス要求が存在しない場合、アクティブコマンド選択回路1042はアクティブコマンドを発行しない。また、アクティブコマンド選択回路1042は、アクティブコマンド発行が必要なメモリアクセス要求が存在すると判定した場合、S201に処理を進める。
S201にて、アクティブコマンド選択回路1042は、アクセス保持回路101内に保持されたメモリアクセス要求の中に、優先ディレクションに該当するメモリアクセス要求が存在するかを判定する。アクティブコマンド選択回路1042は、優先ディレクションに該当するメモリアクセス要求が存在すると判定した場合はS202に、存在しないと判定した場合はS208(図4B)に処理を進める。
S202にて、アクティブコマンド選択回路1042は、次の条件1が成立するか否かを判定する。
条件1:優先ディレクションに該当するアクティブ済コマンド数 ≧ tRCD÷tCCD(少数点以下は切り上げ)
S202にて、アクティブコマンド選択回路1042が、上記条件1が成立すると判定した場合はS203、成立しないと判定した場合はS206に処理を進める。
S203にて、アクティブコマンド選択回路1042は、アクセス保持回路101に保持され、かつ、アクティブコマンド発行が必要、かつ、優先ディレクションに該当するメモリアクセス要求に次の条件2を満たすものがあるか判定する。
条件2:優先ディレクションに該当するアクティブ済コマンド数+優先ディレクションに該当するリードコマンドまたはライトコマンド数) ≧ (tRCD+tRRD)÷tCCD(少数点以下は切り上げ))
アクティブコマンド選択回路1042は、上記条件2を満たすメモリアクセス要求が存在すると判定した場合はS204、存在しないと判定した場合はS205に処理を進める。
S204にて、アクティブコマンド選択回路1042は、上記条件2を満たすメモリアクセス要求のうち最も古いメモリアクセス要求に対してアクティブコマンドを発行する。
また、S206にて、アクティブコマンド選択回路1042は、アクセス保持回路101内の優先ディレクションに該当するメモリアクセス要求について次の条件3を満たすものがあるか判定する。
条件3:優先ディレクションに該当するリードコマンドまたはライトコマンド数 ≧ (tRRD÷tCCD(少数点以下は切り上げ))
S206にて、アクティブコマンド選択回路1042は、上記条件3をメモリアクセス要求が存在すると判定した場合はS207、存在しないと判定した場合はS205に処理を進める。
S207にて、アクティブコマンド選択回路1042は、条件3を満たすメモリアクセス要求のうち最も古いメモリアクセス要求に対してアクティブコマンドを発行する(S207)。
S205(S203の条件2を満たさない、またはS206の条件3を満たさない場合)、アクティブコマンド選択回路1042は、アクセス保持回路101の優先ディレクションに該当するメモリアクセス要求のうち最も古いメモリアクセス要求に対してアクティブコマンドを発行する。
S208にて、アクティブコマンド選択回路1042は、次の条件4が成立するか判定する。
条件4:優先ディレクションに該当しないアクティブ済コマンド数 ≧ tRCD÷tCCD(少数点以下は切り上げ)
アクティブコマンド選択回路1042は、上記条件4が成立すると判定した場合はS209、成立しないと判定した場合はS212に処理を進める。
S209にて、アクティブコマンド選択回路1042は、アクセス保持回路101に保持され、かつ、アクティブコマンド発行が必要、かつ、優先ディレクションに該当しないメモリアクセス要求に、次の条件5を満たすものがあるか判定する。
条件5:優先ディレクションに該当しないアクティブ済コマンド数+メモリアクセス要求の優先ディレクションに該当しないリードコマンドまたはライトコマンド数) ≧ (tRCD+tRRD)÷tCCD(少数点以下は切り上げ)
アクティブコマンド選択回路1042は、上記条件5を満たすメモリアクセス要求が存在すると判定した場合はS210、存在しないと判定した場合はS211に処理を進める。
S210にて、アクティブコマンド選択回路1042は、上記条件5を満たすメモリアクセス要求のうち最も古いメモリアクセス要求に対してアクティブコマンドを発行し、処理をS200に戻す。
S212にて4、アクティブコマンド選択回路1042は、アクセス保持回路101内の優先ディレクションに該当しないメモリアクセス要求について次の条件6を満たすものがあるか判定する。
条件6:メモリアクセス要求の優先ディレクションに該当しないリードコマンドまたはライトコマンド数) ≧ tRRD÷tCCD(少数点以下は切り上げ)
アクティブコマンド選択回路1042は、上記条件6を満たすメモリアクセス要求が存在した場合はS213に、存在しないと判定した場合はS211に処理を進める。
S213にて、アクティブコマンド選択回路1042は、上記条件6を満たすメモリアクセス要求のうち最も古いメモリアクセス要求に対してアクティブコマンドを発行する。
S211にて(S209の条件5を満たさない、またはS212の条件6を満たさない場合)、アクティブコマンド選択回路1042は、アクセス保持回路101の優先ディレクションに該当しないメモリアクセス要求のうち、最も古いメモリアクセス要求に対してアクティブコマンドを発行する。
最後に、DRAMコマンド選択回路105を説明する。DRAMコマンド選択回路105は、リードライト制御回路102から出力されるリードコマンドまたはライトコマンド、アクティブ制御回路104から出力されるアクティブコマンドから任意の1つを選択してDRAM110に発行する。本実施形態には記載していないが、プリチャージやリフレッシュ等コマンドも合わせて選択してもよい。
図5は本実施形態におけるアクティブコマンド選択の動作例を示す図である。本動作例の前提は、優先ディレクションはリードであり、タイミング制約期間やアクセス保持回路101に保持されるメモリアクセス要求の状態は図中に示すものとする。また、アクセス保持回路101に保持されるメモリアクセス要求それぞれには説明のため、メモリアクセス要求0~3と識別子を付与している。
タイミングT1において、アクティブ済リードコマンド数は0であり、(tRCD÷tCCD=5)未満である。よって、DRAMコマンド選択回路105は、アクティブコマンド発行が必要、かつ、残りリードライトコマンド数が(tRRD÷tCCD=3)以上のメモリアクセス要求のうちで最も古いメモリアクセス要求である、メモリアクセス要求2に対するアクティブコマンドを発行する。
タイミングT4において、アクティブ済リードコマンド数は3であり、(tRCD÷tCCD=5)未満である。よって、DRAMコマンド選択回路105は、アクティブコマンド発行が必要、かつ、残りリードライトコマンド数が(tRRD÷tCCD=3)以上のメモリアクセス要求のうちで最も古いメモリアクセス要求である、メモリアクセス要求3に対するアクティブコマンドを発行する。
タイミングT7において、アクティブ済リードコマンド数は7であり、(tRCD÷tCCD=5)以上である。よって、DRAMコマンド選択回路105は、アクティブ済リードコマンド数+残りリードライトコマンド数が((tRCD+tRRD)÷tCCD=8)以上のメモリアクセス要求のうちで最も古いメモリアクセス要求である、メモリアクセス要求0に対するアクティブコマンドを発行する。
タイミングT10において、DRAMコマンド選択回路105は、アクティブコマンド発行が必要な最後のメモリアクセス要求である、メモリアクセス要求1に対するアクティブコマンドを発行する。
図6は従来技術におけるアクティブコマンド選択の動作例を示す図である。図5に示す本実施形態における動作例と前提条件は同じである。従来技術ではリードコマンド数またはライトコマンド数が最も少ないメモリアクセス要求0に対するアクティブコマンドは、タイミングT10にて発行される。
以上のように、アクティブコマンドが発行されているリードコマンド数とライトコマンド数とtRCDを考慮した上で、tRRDに起因するデータパスのギャップを抑制できるメモリアクセス要求のアクティブコマンドを優先して発行する。これにより、リードコマンド数またはライトコマンド数が少ないメモリアクセス要求のアクティブコマンド発行を長時間待たせることなく、tRRDに起因するメモリ利用効率低下を抑制することが可能になる。
なお、上記実施形態では、バスマスタとして1つの例を示したが、複数のバスマスタが存在しても構わない。
本発明は、DRAMに接続されて複数メモリアクセス要求から任意のメモリアクセス要求を選択してコマンドを発行する様々なメモリコントローラに利用できる。
100…メモリコントローラ、101…アクセス保持回路、102…リードライト制御回路、103…バンク状態管理回路、104…アクティブ制御回路、105…DRAMコマンド選択回路、110…DRAM、120…バスマスタ、1011…アクセス保持回路エントリ、1041…アクティブ済コマンド数生成回路、1042…アクティブコマンド選択回路

Claims (4)

  1. 複数バンクから構成されるメモリにアクセスするメモリコントローラであって、
    バスマスタからのリードもしくはライトのアクセス要求を複数保持する保持回路と、
    該保持回路に保持されたアクセス要求の1つを選択してリードコマンドもしくはライトコマンドを発行するリードライト制御回路と、
    前記保持回路に保持されたアクセス要求を選択してアクティブコマンドを発行するアクティブ制御回路とを備え、
    前記アクティブ制御回路は、
    前記保持回路に保持されるアクセス要求のうちアクティブコマンドが発行されたアクセスのリードコマンド数を合計したアクティブ済リードコマンド数とライトコマンド数を合計したアクティブ済ライトコマンド数を生成する生成回路と、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値未満でなく、前記アクティブ済リードコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数が第3の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値未満でなく、前記アクティブ済ライトコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数が第3の閾値以上となるライトアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値以上でなく、前記アクティブ済リードコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数と前記アクティブ済リードコマンド数を加算した数が第2の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値以上でなく、前記アクティブ済ライトコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数と前記アクティブ済ライトコマンド数を加算した数が第2の閾値以上となるライトアクセスのアクティブコマンドを優先して発行し、
    アクティブコマンドの発行を優先する複数のアクセス要求が存在している場合、前記保持回路に最も古くから保持されているアクセス要求のアクティブコマンドを優先して発行する選択回路を備える
    ことを特徴とするメモリコントローラ。
  2. 前記第1の閾値は、アクティブコマンドから同じバンクへのリードコマンドまたはライトコマンドまでのタイミング制約期間に発行できるリードコマンドまたはライトコマンドの数であり、
    前記第2の閾値は、アクティブコマンドから同じバンクへのリードコマンドまたはライトコマンドまでのタイミング制約期間と、アクティブコマンドから異なるバンクへのアクティブコマンドまでのタイミング制約期間とを加算した期間に発行できるリードコマンドまたはライトコマンド数であり、
    前記第3の閾値は、アクティブコマンドから異なるバンクへのアクティブコマンドまでのタイミング制約期間に発行できるリードコマンドまたはライトコマンド数である
    ことを特徴とする請求項に記載のメモリコントローラ。
  3. 前記リードライト制御回路は、
    リードコマンドまたはライトコマンドのどちらを優先して発行するかを示す優先ディレクションに基づいてリードコマンドおよびライトコマンドを発行し、
    前記選択回路は、
    前記アクティブコマンドを優先して発行するリードアクセス要求およびライトアクセス要求のうち前記優先ディレクションに該当するアクセスのアクティブコマンドを優先して発行する
    ことを特徴とする請求項1または2に記載のメモリコントローラ。
  4. バスマスタからのリードもしくはライトのアクセス要求を複数保持する保持回路と、
    該保持回路に保持されたアクセス要求の1つを選択してリードコマンドもしくはライトコマンドを発行するリードライト制御回路と、
    前記保持回路に保持されたアクセス要求を選択してアクティブコマンドを発行するアクティブ制御回路とを有するメモリコントローラの制御方法であって、
    前記アクティブ制御回路にて、
    前記保持回路に保持されるアクセス要求のうちアクティブコマンドが発行されたアクセスのリードコマンド数を合計したアクティブ済リードコマンド数とライトコマンド数を合計したアクティブ済ライトコマンド数を生成し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値未満でなく、前記アクティブ済リードコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数が第3の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値未満でなく、前記アクティブ済ライトコマンド数が第1の閾値未満である場合、前記保持回路に保持されるアクセス要求のうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数が第3の閾値以上となるライトアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済ライトコマンド数が第1の閾値以上でなく、前記アクティブ済リードコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なリードアクセスそれぞれのリードコマンド数と前記アクティブ済リードコマンド数を加算した数が第2の閾値以上となるリードアクセスのアクティブコマンドを優先して発行し、
    tRCDが予め定められた条件を満たすとともに、前記アクティブ済リードコマンド数が第1の閾値以上でなく、前記アクティブ済ライトコマンド数が第1の閾値以上であった場合、前記保持回路に保持されるアクセスのうちアクティブコマンド発行が必要なライトアクセスそれぞれのライトコマンド数と前記アクティブ済ライトコマンド数を加算した数が第2の閾値以上となるライトアクセスのアクティブコマンドを優先して発行する
    アクティブコマンドの発行を優先する複数のアクセス要求が存在している場合、前記保持回路に最も古くから保持されているアクセス要求のアクティブコマンドを優先して発行する
    ことを特徴とするメモリコントローラの制御方法。
JP2021015139A 2021-02-02 2021-02-02 メモリコントローラ及びその制御方法 Active JP7614865B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2021015139A JP7614865B2 (ja) 2021-02-02 2021-02-02 メモリコントローラ及びその制御方法
US17/578,797 US11694735B2 (en) 2021-02-02 2022-01-19 Memory controller and method of controlling the memory controller

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021015139A JP7614865B2 (ja) 2021-02-02 2021-02-02 メモリコントローラ及びその制御方法

Publications (2)

Publication Number Publication Date
JP2022118548A JP2022118548A (ja) 2022-08-15
JP7614865B2 true JP7614865B2 (ja) 2025-01-16

Family

ID=82611611

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021015139A Active JP7614865B2 (ja) 2021-02-02 2021-02-02 メモリコントローラ及びその制御方法

Country Status (2)

Country Link
US (1) US11694735B2 (ja)
JP (1) JP7614865B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12182410B2 (en) * 2022-09-21 2024-12-31 SK hynix NAND Product Solutions Corporation Systems, methods, and media for recovering worker shares from read prioritization
US12340118B2 (en) 2022-10-31 2025-06-24 Sk Hynix Nand Product Solutions Corp. Systems, methods, and media for prioritizing read accesses to storage devices
JP7695292B2 (ja) * 2023-05-01 2025-06-18 キヤノン株式会社 メモリコントローラ、メモリコントローラの制御方法及びプログラム

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281327A1 (en) 2013-03-15 2014-09-18 Qualcomm Incorporated System and method to dynamically determine a timing parameter of a memory device
JP2018081642A (ja) 2016-11-18 2018-05-24 キヤノン株式会社 メモリコントローラおよび方法
JP2020109642A (ja) 2018-12-31 2020-07-16 京セラドキュメントソリューションズ株式会社 メモリ制御装置、メモリ制御方法及び画像形成装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11049545B2 (en) * 2019-04-23 2021-06-29 Micron Technology, Inc. Methods for adjusting row hammer refresh rates and related memory devices and systems
JP7414477B2 (ja) * 2019-11-08 2024-01-16 キヤノン株式会社 メモリコントローラ、メモリコントローラで実施される方法および装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140281327A1 (en) 2013-03-15 2014-09-18 Qualcomm Incorporated System and method to dynamically determine a timing parameter of a memory device
JP2018081642A (ja) 2016-11-18 2018-05-24 キヤノン株式会社 メモリコントローラおよび方法
JP2020109642A (ja) 2018-12-31 2020-07-16 京セラドキュメントソリューションズ株式会社 メモリ制御装置、メモリ制御方法及び画像形成装置

Also Published As

Publication number Publication date
JP2022118548A (ja) 2022-08-15
US20220246187A1 (en) 2022-08-04
US11694735B2 (en) 2023-07-04

Similar Documents

Publication Publication Date Title
JP7614865B2 (ja) メモリコントローラ及びその制御方法
JP5238747B2 (ja) ハブベースのシステムメモリにおける書込みコマンドを終了させる方法とシステム
JP6146128B2 (ja) データ処理装置
JP7407167B2 (ja) メモリの複数のランクを有するシステムのダイナミックランダムアクセスメモリリフレッシュの構成
US20130326132A1 (en) Memory system and method having unidirectional data buses
JP6237945B1 (ja) メモリ制御装置
US7707328B2 (en) Memory access control circuit
US11923037B2 (en) Memory control circuit and method for controlling the same
JP7493311B2 (ja) バスシステムおよびその制御方法
JPH11224221A (ja) メモリ制御装置および方法
JP4934857B2 (ja) メモリアクセス制御装置、コンピュータ、メモリアクセス制御方法およびメモリアクセス制御プログラム
US20230325121A1 (en) Memory controller, control method for controlling memory controller, and storage medium
JP7695292B2 (ja) メモリコントローラ、メモリコントローラの制御方法及びプログラム
US20250190146A1 (en) Memory controller, method of controlling memory controller and memory device
WO2010122607A1 (ja) 記憶制御装置及びその制御方法
CN118550453A (zh) 具有多个存储器列的存储器系统及其操作方法
US20250199722A1 (en) Memory controller, control method and memory device
JP7414477B2 (ja) メモリコントローラ、メモリコントローラで実施される方法および装置
JP3698902B2 (ja) メモリアクセス装置及びそのアクセス方法
JPS6191740A (ja) メモリ・アクセス制御方式
JP2000227895A (ja) 画像データ転送装置および画像データ転送方法
JPH10333979A (ja) バンクアクセス制御方式
JPH11184761A (ja) リードモディファイライト制御システム
JPH07153268A (ja) 情報記録装置
JP2024152432A (ja) メモリ制御装置及びメモリ制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240126

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240813

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20241008

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20241227

R150 Certificate of patent or registration of utility model

Ref document number: 7614865

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150