JP2022128226A - メモリ制御回路およびその制御方法 - Google Patents
メモリ制御回路およびその制御方法 Download PDFInfo
- Publication number
- JP2022128226A JP2022128226A JP2021026640A JP2021026640A JP2022128226A JP 2022128226 A JP2022128226 A JP 2022128226A JP 2021026640 A JP2021026640 A JP 2021026640A JP 2021026640 A JP2021026640 A JP 2021026640A JP 2022128226 A JP2022128226 A JP 2022128226A
- Authority
- JP
- Japan
- Prior art keywords
- access
- write
- read
- priority
- control circuit
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 9
- 239000000872 buffer Substances 0.000 claims description 19
- 230000015556 catabolic process Effects 0.000 description 11
- 238000006731 degradation reaction Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 11
- 230000006866 deterioration Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1057—Data output buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1048—Data bus control circuits, e.g. precharging, presetting, equalising
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1051—Data output circuits, e.g. read-out amplifiers, data output buffers, data output registers, data output level conversion circuits
- G11C7/1069—I/O lines read out arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1084—Data input buffers, e.g. comprising level conversion circuits, circuits for adapting load
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1096—Write circuits, e.g. I/O line write drivers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
【課題】リードとライトとの切り替わり、およびページミスによる性能低下を抑制する。【解決手段】複数のバンクを含むメモリにアクセスするメモリ制御回路は、外部回路からのアクセス要求を保持する保持手段と、複数のバンクの状態を管理する管理手段と、保持手段に保持されているアクセス要求のアクセス種別と複数のバンクの状態とに基づいて、リードとライトの何れのアクセス種別のコマンド発行を優先するかを決定する決定手段と、優先すると決定されたアクセス種別に対応するアクセス要求のコマンドを発行する発行手段と、を備える。【選択図】図1
Description
本発明は、メモリにアクセスするメモリ制御回路に関するものである。
コンピュータシステムの主記憶装置としては一般的にDRAMが使用されている。コンピュータシステムの高機能化、高性能化に伴い、DRAMに対する性能要求は高まっており、その性能を最大限に引き出すことが求められている。
DRAMの性能低下の主な要因は、ページミスの発生やリードとライトの切り替わりの発生である。特許文献1では、リードとライトの切り替わりによる性能低下を抑制するために、リードまたはライトを優先コマンドとし、コマンドキューから優先コマンドを全て取り出したら優先コマンドを切り替える手法が開示されている。
しかしながら、特許文献1ではDRAMのページミスによる性能低下が考慮されていない。そのため、優先コマンドに該当するコマンドにページミスが多い場合にはDRAMの性能低下を抑制することができない。
本発明は、このような問題に鑑みてなされたものであり、リードとライトとの切り替わり、およびページミスによる性能低下を抑制する技術を提供することを目的としている。
上述の問題点を解決するため、本発明に係るメモリ制御回路は以下の構成を備える。すなわち、複数のバンクを含むメモリにアクセスするメモリ制御回路は、
外部回路からのアクセス要求を保持する保持手段と、
前記複数のバンクの状態を管理する管理手段と、
前記保持手段に保持されているアクセス要求のアクセス種別と前記複数のバンクの状態とに基づいて、リードとライトの何れのアクセス種別のコマンド発行を優先するかを決定する決定手段と、
前記保持手段に保持されたアクセス要求のうち前記決定手段により優先すると決定されたアクセス種別に対応するアクセス要求のコマンドを発行する発行手段と、
を備える。
外部回路からのアクセス要求を保持する保持手段と、
前記複数のバンクの状態を管理する管理手段と、
前記保持手段に保持されているアクセス要求のアクセス種別と前記複数のバンクの状態とに基づいて、リードとライトの何れのアクセス種別のコマンド発行を優先するかを決定する決定手段と、
前記保持手段に保持されたアクセス要求のうち前記決定手段により優先すると決定されたアクセス種別に対応するアクセス要求のコマンドを発行する発行手段と、
を備える。
本発明によれば、リードとライトとの切り替わり、およびページミスによる性能低下を抑制する技術を提供することができる。
以下、添付図面を参照して実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る発明を限定するものではない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
(第1実施形態)
本発明に係るメモリ制御回路の第1実施形態として、ページミスやリードとライトの切り替わりの発生による性能低下を抑制するメモリ制御回路を例に挙げて以下に説明する。
本発明に係るメモリ制御回路の第1実施形態として、ページミスやリードとライトの切り替わりの発生による性能低下を抑制するメモリ制御回路を例に挙げて以下に説明する。
<メモリ制御回路の構成>
図1は、第1実施形態に係るメモリ制御回路100の構成を示す図である。メモリ制御回路100は、外部回路から受信したアクセス入力に基づいてメモリに対するアクセスコマンドを発行する回路である。
図1は、第1実施形態に係るメモリ制御回路100の構成を示す図である。メモリ制御回路100は、外部回路から受信したアクセス入力に基づいてメモリに対するアクセスコマンドを発行する回路である。
アクセス保持回路110は、外部回路から受信した複数のアクセス要求を保持する。バンク制御回路120は、アクティブ選択回路121、プリチャージ選択回路122、バンク状態管理回路123と、を含む。
アクティブ選択回路121は、アクセス保持回路110が保持するアクセスのうちどのアクセスに対してバンクをアクティブするか決定し、アクティブ(ACT)コマンドを発行する。プリチャージ選択回路122は、アクセス保持回路110が保持するアクセスのうちどのアクセスに対してバンクをプリチャージするかを決定し、プリチャージ(PRE)コマンドを発行する。バンク状態管理回路123は、アクティブコマンドとプリチャージコマンドの発行を監視してバンクの状態を管理する。
リードライト制御回路130は、優先コマンド管理回路131と、リードライト選択回路132と、を含む。
優先コマンド管理回路131は、バンク状態管理回路123が管理するバンク状態を使用してリードまたはライトの何れのアクセス種別のコマンド発行を優先するか決定する。以下では、コマンド発行を優先するアクセス種別を優先コマンドと呼ぶ。詳細については図2を参照して後述する。リードライト制御回路132は、アクセス保持回路110が保持するアクセスから、優先コマンドが示すアクセス種別に対応するアクセス(リードまたはライト)を決定し、リード(RD)コマンドまたはライト(WR)コマンドを発行する。
<メモリ制御回路の動作>
図2は、第1実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路131が優先コマンドを決める動作を示している。優先コマンド管理回路131は、毎サイクルこのフローチャートに従って優先コマンドを決定するものとする。また、アクセス保持回路110にアクセスがないときは、リードを優先コマンドとする。
図2は、第1実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路131が優先コマンドを決める動作を示している。優先コマンド管理回路131は、毎サイクルこのフローチャートに従って優先コマンドを決定するものとする。また、アクセス保持回路110にアクセスがないときは、リードを優先コマンドとする。
J101~J103では、優先コマンド管理回路131は、アクセス保持回路110にリードおよび/またはライトのコマンドがあるか否か判断する。リードもライトもなければ(J101でYES)「リード」を優先コマンドにする(S132)。リードのみあれば(J102でYES)「リード」を優先コマンドにする(S132)。ライトのみあれば(J103でYES)「ライト」を優先コマンドにする(S131)。
リードとライトの両方がある場合(J103でNO)、現在の優先コマンドがリードかライトかを判断する(J100)。なお、現在の優先コマンドは、前回のサイクルで優先すると決定されたアクセス種別(リードまたはライト)である。
優先コマンドが「リード」である場合(J100でYES)、優先コマンドと同じディレクション(ここでは「リード」)であり、既に対象のページがオープンされているアクセスがあるかを判定する。優先コマンドが「ライト」である場合(J100でNO)、優先コマンドと同じディレクション(ここでは「ライト」)であり、既に対象のページがオープンされているアクセスがあるかを判定する。
該当するアクセスがある場合は優先コマンドを変更せず(S111、S121)、該当するアクセスがない場合は優先コマンドを変更する(S112、S122)。
図3は、メモリ制御回路100の動作を説明するタイミング図である。また、図9は、予め指定された、各コマンド間の最短発行間隔の例を示す図である。例えば、リードコマンドを連続して発行する場合、1回目のリードコマンドと2回目のリードコマンドとの間を最短で4サイクル空ける必要がある。
ここでは、アクセス保持回路110が保持するアクセスを3つとし、アクセス0、アクセス1、アクセス2として表す。各アクセスには「バンク、ページ、リード/ライト、回数」が内容として含まれる。なお、回数は、リードまたはライトのコマンドが発行される度にデクリメントされるものとする。
また、ここでは、バンク数を2つとし、バンク状態管理回路123が管理するバンク状態を、バンク状態0、バンク状態1として表す。各バンク状態には「オープン/クローズ、ページ(オープンの場合)」が内容として含まれる。
さらに、アクティブ選択回路121、プリチャージ選択回路122、リードライト選択回路132が発行するバンク0へのコマンドをコマンド0、バンク1へのコマンドをコマンド1として表す。
T0において、バンク0はクローズ、バンク1はページ1がオープンされている状態であるものとする。T1において、アクセス2のためのバンク1へのリードコマンドが発行され、アクセス2の回数はデクリメントされる。T2において、アクセス0のためのバンク0へのアクティブコマンドが発行され、バンク状態0がオープンに変化する。
T5、T9において、再びアクセス2のためのバンク1へのリードコマンドが発行され、アクセス2は完了し、アクセス保持回路110から削除される。T9において、優先コマンド管理回路131は、アクセス1がページミスしているが、ページがオープンされているリードがないため、優先コマンドをライトに変える。
T13において、アクセス1のためのバンク1へのプリチャージコマンドが発行され、バンク状態1がクローズに変化する。T20において、アクセス0のためのバンク0へのライトコマンドが発行され、アクセス0の回数はデクリメントされる。T21において、アクセス1のためのバンク1へのアクティブコマンドが発行され、バンク状態1がオープンに変化する。
T24、T28、T32において、再びアクセス0のためのバンク0へのライトコマンドが発行され、アクセス0は完了し、アクセス保持回路110から削除される。T32において、優先コマンド管理回路131は、ページがオープンされているライトがないため、優先コマンドをリードに変える。
T43において、アクセス1のためのバンク1へのリードコマンドが発行され、アクセス1は完了し、アクセス保持回路110から削除される。
<効果>
図10は、従来技術におけるメモリ制御回路の動作を説明するタイミング図である。具体的には、図3におけるアクセスと同様のアクセスに対する、従来技術におけるメモリ制御回路の動作を示している。従来技術においては、リードを全て実行した後にライトを実行することになるため、T52に最後のライトが実行される。すなわち、第1実施形態ではT43に最後のリードが実行されているため、従来技術に比較し早く処理が完了できることが分かる。
図10は、従来技術におけるメモリ制御回路の動作を説明するタイミング図である。具体的には、図3におけるアクセスと同様のアクセスに対する、従来技術におけるメモリ制御回路の動作を示している。従来技術においては、リードを全て実行した後にライトを実行することになるため、T52に最後のライトが実行される。すなわち、第1実施形態ではT43に最後のリードが実行されているため、従来技術に比較し早く処理が完了できることが分かる。
以上説明したとおり第1実施形態によれば、バンクの状態を考慮して優先コマンドを決定する。これにより、ページミスによる性能低下を抑制することができる。特に、現在の優先コマンドでページミスによる性能低下を抑制できる場合は優先コマンドを切り替えない。一方、現在の優先コマンドでページミスによる性能低下を抑制できない場合は優先コマンドを切り替える。
(第2実施形態)
第2実施形態では、ページミスが発生しているバンクの存在有無をさらに考慮して優先コマンドを決定する形態について説明する。なお、メモリ制御回路の構成は第1実施形態(図1)と同様であるため説明は省略する。
第2実施形態では、ページミスが発生しているバンクの存在有無をさらに考慮して優先コマンドを決定する形態について説明する。なお、メモリ制御回路の構成は第1実施形態(図1)と同様であるため説明は省略する。
<メモリ制御回路の動作>
図4は、第2実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路131が優先コマンドを決める動作を示している。優先コマンド管理回路131は、毎サイクルこのフローチャートに従って優先コマンドを決定するものとする。また、アクセス保持回路110にアクセスがないときは、「リード」を優先コマンドとする。
図4は、第2実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路131が優先コマンドを決める動作を示している。優先コマンド管理回路131は、毎サイクルこのフローチャートに従って優先コマンドを決定するものとする。また、アクセス保持回路110にアクセスがないときは、「リード」を優先コマンドとする。
J201~J203では、優先コマンド管理回路131は、アクセス保持回路110にリードおよび/またはライトのコマンドがあるか否か判断する。リードもライトもなければ(J201でYES)「リード」を優先コマンドにする(S232)。リードのみあれば(J202でYES)「リード」を優先コマンドにする(S232)。ライトのみあれば(J203でYES)「ライト」を優先コマンドにする(S231)。
リードとライトの両方がある場合(J203でNO)、優先コマンドがリードかライトかを判断する(J200)。
優先コマンドが「リード」である場合(J200でYES)、ページミス中のバンクがあるか否かを判定する(J210)。ページミス中のバンクがある場合はJ211に進み、無い場合は優先コマンドを変更しない(S213)。J211では、ページがオープンされている優先コマンドと同じディレクション(ここでは「リード」)をすべて実行するためにかかる時間のほうがページミス時間以上であるか否かを判定する。大きい(または同じ)場合(J211でYES)は、優先コマンドを変更しない(S211)。一方、ページミス時間未満である場合(J211でNO)は、優先コマンドを「ライト」に変更する(S212)。
優先コマンドが「ライト」である場合(J200でNO)、ページミス中のバンクがあるか否かを判定する(J220)。ページミス中のバンクがある場合はJ221に進み、無い場合は優先コマンドを変更しない(S223)。J221では、ページがオープンされている優先コマンドと同じディレクション(ここでは「ライト」)をすべて実行するためにかかる時間のほうがページミス時間よりも大きいか否かを判定する。大きい(または同じ)場合(J221でYES)は、優先コマンドを変更しない(S221)。一方、小さい場合(J221でNO)は、優先コマンドを「リード」に変更する(S222)。
図5は、メモリ制御回路100の動作を説明するタイミング図である。最短のコマンド発行間隔は、第1実施形態(図9)と同様であるとする。
ここでは、アクセス保持回路110が保持するアクセスが4つあり、アクセス0、アクセス1、アクセス2、アクセス3として表す。各アクセスには「バンク、ページ、リード/ライト、回数」が内容として含まれる。なお、回数は、リードまたはライトのコマンドが発行される度にデクリメントされるものとする。
また、ここでは、バンク数を3つとし、バンク状態管理回路123が管理するバンク状態を、バンク状態0、バンク状態1、バンク状態2として表す。各バンク状態には「オープン/クローズ、ページ(オープンの場合)」が内容として含まれる。
さらに、アクティブ選択回路121、プリチャージ選択回路122、リードライト選択回路132が発行するバンク0へのコマンドをコマンド0、バンク1へのコマンドをコマンド1、バンク2へのコマンドをコマンド2として表す。
T0において、バンク0はクローズ、バンク1はページ1がオープン、バンク2はクローズされている状態であるものとする。T1において、アクセス2のためのバンク1へのリードコマンドが発行され、アクセス2の回数はデクリメントされる。T2において、アクセス3のためのバンク2へのアクティブコマンドが発行され、バンク状態2がオープンに変化する。T4において、アクセス0のためのバンク0へのアクティブコマンドが発行され、バンク状態0がオープンに変化する。
T5、T9において、再びアクセス2のためのバンク1へのリードコマンドが発行され、アクセス2は完了し、アクセス保持回路110から削除される。T9において、優先コマンド管理回路131は、アクセス3はページがオープンされているリードであるが、バンク1のページミス時間を満たすのに充分な回数のリードではないと判定し、優先コマンドをライトに変える。なお、ページミス時間とは、次にリードできるようになるまでの時間を意味する。
T13において、アクセス1のためのバンク1へのプリチャージコマンドが発行され、バンク状態1がクローズに変化する。T20において、アクセス0のためのバンク0へのライトコマンドが発行され、アクセス0の回数はデクリメントされる。T21において、アクセス1のためのバンク1へのアクティブコマンドが発行され、バンク状態1がオープンに変化する。
T24、T28において、再びアクセス0のためのバンク0へのライトコマンドが発行され、アクセス0は完了し、アクセス保持回路110から削除される。T28において、優先コマンド管理回路131は、ライトがなくなるため、優先コマンドをリードに変える。T39において、アクセス1のためのバンク1へのリードコマンドが発行され、アクセス1は完了し、アクセス保持回路110から削除される。T43において、アクセス3のためのバンク2へのリードコマンドが発行され、アクセス3は完了し、アクセス保持回路110から削除される。
<効果>
図11は、従来技術におけるメモリ制御回路の動作を説明するタイミング図である。具体的には、図5におけるアクセスと同様のアクセスに対する、従来技術におけるメモリ制御回路の動作を示している。従来技術においては、リードを全て実行した後にライトを実行することになるため、T49に最後のライトが実行される。すなわち、第2実施形態ではT43に最後のリードが実行されるため、従来技術に比較し早く処理が完了できることが分かる。
図11は、従来技術におけるメモリ制御回路の動作を説明するタイミング図である。具体的には、図5におけるアクセスと同様のアクセスに対する、従来技術におけるメモリ制御回路の動作を示している。従来技術においては、リードを全て実行した後にライトを実行することになるため、T49に最後のライトが実行される。すなわち、第2実施形態ではT43に最後のリードが実行されるため、従来技術に比較し早く処理が完了できることが分かる。
以上説明したとおり第2実施形態によれば、バンクの状態を考慮して優先コマンドを決定する。これにより、ページミスによる性能低下を抑制することができる。
(第3実施形態)
本発明に係るメモリ制御回路の第3実施形態として、ページミスやリードとライトの切り替わりの発生による性能低下を抑制するメモリ制御回路を例に挙げて以下に説明する。特に、ライトデータバッファやリードデータバッファの状態を併せて考慮する点が第1実施形態と異なる。
本発明に係るメモリ制御回路の第3実施形態として、ページミスやリードとライトの切り替わりの発生による性能低下を抑制するメモリ制御回路を例に挙げて以下に説明する。特に、ライトデータバッファやリードデータバッファの状態を併せて考慮する点が第1実施形態と異なる。
<メモリ制御回路の構成>
図6は、第3実施形態に係るメモリ制御回路200の構成を示す図である。メモリ制御回路200は、外部回路から受信したアクセス入力に基づいてメモリに対するアクセスコマンドを発行する回路である。メモリ制御回路200は、第1実施形態のメモリ制御回路100に対して、ライトデータバッファ210、リードデータバッファ220が追加されている。
図6は、第3実施形態に係るメモリ制御回路200の構成を示す図である。メモリ制御回路200は、外部回路から受信したアクセス入力に基づいてメモリに対するアクセスコマンドを発行する回路である。メモリ制御回路200は、第1実施形態のメモリ制御回路100に対して、ライトデータバッファ210、リードデータバッファ220が追加されている。
ライトデータバッファ210は、外部回路から入力されたデータを不図示のメモリにデータ書き込みを行う際に利用されるライトバッファである。一方、リードデータバッファ220は、外部回路が不図示のメモリからデータ読み取りを行う際に利用されるリードバッファである。そして、優先コマンド制御回路231は、これらのバッファの状態も考慮して優先コマンドを決定する。
<メモリ制御回路の動作>
図7は、第3実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路231が優先コマンドを決める動作を示している。図7のフローチャートは、第1実施形態のフローチャート(図2)にJ300、J400が追加されたものに相当する。
図7は、第3実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路231が優先コマンドを決める動作を示している。図7のフローチャートは、第1実施形態のフローチャート(図2)にJ300、J400が追加されたものに相当する。
優先コマンドが「リード」であり(J100でYES)、ページがオープンされているリードがある(J110でYES)場合、J300に進む。J300では、優先コマンド管理回路231は、リードデータバッファの使用量が閾値以上の場合(J300でYES)、優先コマンドを「ライト」に変更する(S112)。
優先コマンドが「ライト」であり(J100でNO)、ページがオープンされているライトがない(J120でNO)場合、J400に進む。J400では、優先コマンド管理回路231は、ライトデータバッファの使用量が閾値以上の場合(J400でYES)、優先コマンドを変更しない(S121)。
以上説明したとおり第3実施形態によれば、バンク状態を考慮しつつ、リードデータバッファが閾値以上のときには、「リード」を優先しないようにすることができる。また、ライトデータバッファが閾値以上のときには、「ライト」を優先するようにすることができる。これにより、ページミスによる性能低下をさらに抑制することができる。
(第4実施形態)
第4実施形態では、ページミス中のバンクの有無をさらに考慮して優先コマンドを決定する形態について説明する。なお、メモリ制御回路の構成は第3実施形態(図6)と同様であるため説明は省略する。
第4実施形態では、ページミス中のバンクの有無をさらに考慮して優先コマンドを決定する形態について説明する。なお、メモリ制御回路の構成は第3実施形態(図6)と同様であるため説明は省略する。
<メモリ制御回路の動作>
図8は、第4実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路231が優先コマンドを決める動作を示している。図8のフローチャートは、第2実施形態のフローチャート(図4)にJ300、J400が追加されたものに相当する。
図8は、第4実施形態における優先コマンド決定のフローチャートである。具体的には、優先コマンド管理回路231が優先コマンドを決める動作を示している。図8のフローチャートは、第2実施形態のフローチャート(図4)にJ300、J400が追加されたものに相当する。
優先コマンドが「リード」であり(J200でYES)、ページミス中のバンクのページミス時間よりもページがオープンされているリードをすべて実行する時間のほうが大きい(J211でYES)場合、J300に進む。J300では、優先コマンド管理回路231は、リードデータバッファの使用量が閾値以上の場合(J300でYES)、優先コマンドを「ライト」に変更する(S212)。
優先コマンドが「ライト」であり(J200でNO)、ページミス中のバンクのページミス時間よりもページがオープンされているライトをすべて実行する時間のほうが小さい(J221でNO)場合、J400に進む。J400では、優先コマンド管理回路231は、ライトデータバッファの使用量が閾値以上の場合(J400でYES)、優先コマンドを変更しない(S221)。
以上説明したとおり第4実施形態によれば、バンク状態を考慮しつつ、リードデータバッファが閾値以上のときには、「リード」を優先しないようにすることができる。また、ライトデータバッファが閾値以上のときには、「ライト」を優先するようにすることができる。これにより、ページミスによる性能低下をさらに抑制することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
100 メモリ制御回路; 110 アクセス保持回路; 120 バンク制御回路; 121 アクティブ選択回路; 122 プリチャージ選択回路; 123 バンク状態管理回路; 130 リードライト制御回路; 131 優先コマンド管理回路; 132 リードライト選択回路
Claims (9)
- 複数のバンクを含むメモリにアクセスするメモリ制御回路であって、
外部回路からのアクセス要求を保持する保持手段と、
前記複数のバンクの状態を管理する管理手段と、
前記保持手段に保持されているアクセス要求のアクセス種別と前記複数のバンクの状態とに基づいて、リードとライトの何れのアクセス種別のコマンド発行を優先するかを決定する決定手段と、
前記保持手段に保持されたアクセス要求のうち前記決定手段により優先すると決定されたアクセス種別に対応するアクセス要求のコマンドを発行する発行手段と、
を備えることを特徴とするメモリ制御回路。 - 前記管理手段は、前記複数のバンクのそれぞれについて、オープンされているか否か、および、オープンされている場合はどのページがオープンされているかを管理する
ことを特徴とする請求項1に記載のメモリ制御回路。 - 前記決定手段は、
前記保持手段にリードのアクセス要求のみが保持されている場合はリードを優先し、
前記保持手段にライトのアクセス要求のみが保持されている場合はライトを優先し、
前記保持手段にリードとライトの両方のアクセス要求が保持されているとき、前記決定手段により前回優先すると決定されたアクセス種別で既にページをオープンしているアクセスがある場合は優先するアクセス種別を変更せず、当該アクセスがない場合は優先するアクセス種別を変更する
ことを特徴とする請求項2に記載のメモリ制御回路。 - アクティブまたはプリチャージのコマンドを発行するバンク制御手段をさらに備える
ことを特徴とする請求項1または2に記載のメモリ制御回路。 - リード、ライト、アクティブ、プリチャージの各コマンド間の最短発行間隔が予め指定されている
ことを特徴とする請求項4に記載のメモリ制御回路。 - 前記管理手段は、前記複数のバンクのそれぞれについて、前記最短発行間隔に基づいて、あるバンクへのページミスが発生した際の当該バンクへのリードまたはライトのコマンド発行が可能となるまでのページミス時間をさらに管理し、
前記決定手段は、
前記保持手段にリードのアクセス要求のみが保持されている場合はリードを優先し、
前記保持手段にライトのアクセス要求のみが保持されている場合はライトを優先し、
前記保持手段にリードとライトの両方のアクセス要求が保持されておりかつページミスが発生しているバンクが存在しない場合は、優先するアクセス種別を変更せず、
前記保持手段にリードとライトの両方のアクセス要求が保持されておりかつページミスが発生しているバンクが存在する場合は、前記保持手段に保持されたアクセス要求のうち既にページをオープンしているアクセスと同じ種別のアクセス要求をすべて実行するためにかかる時間が前記ページミス時間以上である場合は優先するアクセス種別を変更せず、前記ページミス時間未満である場合は優先するアクセス種別を変更する
ことを特徴とする請求項5に記載のメモリ制御回路。 - 前記決定手段は、前回優先すると決定したアクセス種別がライトでありかつ前記メモリへのデータ書き込みバッファの使用量が閾値以上である場合、バンクの状態に関わらず優先するアクセス種別をライトのまま保持する
ことを特徴とする請求項1乃至6の何れか1項に記載のメモリ制御回路。 - 前記決定手段は、前回優先すると決定したアクセス種別がリードでありかつ前記メモリからのデータ読み取りバッファの使用量が閾値以上である場合、バンクの状態に関わらず優先するアクセス種別をリードのまま保持する
ことを特徴とする請求項1乃至7の何れか1項に記載のメモリ制御回路。 - 複数のバンクを含むメモリにアクセスするメモリ制御回路の制御方法であって、
前記メモリ制御回路は、外部回路からのアクセス要求を保持する保持手段と、前記複数のバンクの状態を管理する管理手段と、を備え、前記制御方法は、
前記保持手段に保持されているアクセス要求のアクセス種別と前記複数のバンクの状態とに基づいて、リードとライトの何れのアクセス種別のコマンド発行を優先するかを決定する決定工程と、
前記保持手段に保持されたアクセス要求のうち前記決定工程により優先すると決定されたアクセス種別に対応するアクセス要求のコマンドを発行する発行工程と、
を含むことを特徴とする制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021026640A JP2022128226A (ja) | 2021-02-22 | 2021-02-22 | メモリ制御回路およびその制御方法 |
US17/668,415 US11923037B2 (en) | 2021-02-22 | 2022-02-10 | Memory control circuit and method for controlling the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021026640A JP2022128226A (ja) | 2021-02-22 | 2021-02-22 | メモリ制御回路およびその制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022128226A true JP2022128226A (ja) | 2022-09-01 |
Family
ID=82899764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021026640A Pending JP2022128226A (ja) | 2021-02-22 | 2021-02-22 | メモリ制御回路およびその制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11923037B2 (ja) |
JP (1) | JP2022128226A (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20240143224A1 (en) * | 2022-10-31 | 2024-05-02 | Sk Hynix Nand Product Solutions Corp. | Systems, methods, and media for prioritizing read accesses to storage devices |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6087742B2 (ja) | 2013-06-14 | 2017-03-01 | キヤノン株式会社 | 半導体装置、および、チップ識別子の設定方法 |
KR20150017526A (ko) * | 2013-08-07 | 2015-02-17 | 삼성전자주식회사 | 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법 |
JP6950149B2 (ja) | 2015-09-08 | 2021-10-13 | ソニーグループ株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
-
2021
- 2021-02-22 JP JP2021026640A patent/JP2022128226A/ja active Pending
-
2022
- 2022-02-10 US US17/668,415 patent/US11923037B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220270655A1 (en) | 2022-08-25 |
US11923037B2 (en) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5272274B2 (ja) | メモリアクセスの順序を変更するシステム、装置、および方法 | |
JP4742116B2 (ja) | アウトオブオーダdramシーケンサ | |
US7907469B2 (en) | Multi-port memory device for buffering between hosts and non-volatile memory devices | |
US20130326132A1 (en) | Memory system and method having unidirectional data buses | |
JP6146128B2 (ja) | データ処理装置 | |
JP2021530808A (ja) | メモリの複数のランクを有するシステムのダイナミックランダムアクセスメモリリフレッシュの構成 | |
CN110543433B (zh) | 一种混合内存的数据迁移方法及装置 | |
US6125422A (en) | Dependent bank memory controller method and apparatus | |
JP2022128226A (ja) | メモリ制御回路およびその制御方法 | |
KR20230048560A (ko) | 적응형 메모리 트랜잭션 스케줄링 | |
US6742089B1 (en) | Access controller and access method for controlling access from a CPU to a memory based on use states of plural access ports | |
US20230325121A1 (en) | Memory controller, control method for controlling memory controller, and storage medium | |
CN109791469A (zh) | 设置高速缓冲存储器的时钟速度/电压的装置及方法 | |
US11694735B2 (en) | Memory controller and method of controlling the memory controller | |
CN111694772A (zh) | 存储器控制器 | |
US20060123187A1 (en) | Memory controller to utilize DRAM write buffers | |
JP2006268753A (ja) | Dma回路及びコンピュータシステム | |
JPWO2006132006A1 (ja) | メモリ制御装置及びメモリ制御方法 | |
US10877888B2 (en) | Systems and methods for providing distributed global ordering | |
CN113946435A (zh) | 内存管理技术及计算机系统 | |
US20170075571A1 (en) | Memory device and control method thereof | |
US12001682B2 (en) | PIM computing system and memory controller thereof | |
CN110390973B (zh) | 存储器控制器 | |
US20230418474A1 (en) | Pim computing system and memory controller thereof | |
WO2023162465A1 (ja) | ライトバッファ制御回路 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240221 |