JP2022163404A - メモリ制御回路、情報処理システム及びメモリ制御方法 - Google Patents
メモリ制御回路、情報処理システム及びメモリ制御方法 Download PDFInfo
- Publication number
- JP2022163404A JP2022163404A JP2021068311A JP2021068311A JP2022163404A JP 2022163404 A JP2022163404 A JP 2022163404A JP 2021068311 A JP2021068311 A JP 2021068311A JP 2021068311 A JP2021068311 A JP 2021068311A JP 2022163404 A JP2022163404 A JP 2022163404A
- Authority
- JP
- Japan
- Prior art keywords
- access
- priority
- type
- switching
- access 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 39
- 230000010365 information processing Effects 0.000 title description 5
- 230000004044 response Effects 0.000 claims 2
- 230000015556 catabolic process Effects 0.000 description 8
- 238000006731 degradation reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 230000003111 delayed effect Effects 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 5
- 230000006870 function Effects 0.000 description 2
- 230000007334 memory performance Effects 0.000 description 2
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/1048—Data bus control circuits, e.g. precharging, presetting, equalising
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/409—Read-write [R-W] circuits
- G11C11/4096—Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches
-
- 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
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- 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/1063—Control signal output circuits, e.g. status or busy flags, feedback command signals
-
- 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/1096—Write circuits, e.g. I/O line write drivers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4078—Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Memory System (AREA)
Abstract
【課題】優先するアクセスの種類を切り替える際に、メモリに対するアクセス要求を適切に実行し、メモリの性能低下を抑制するメモリ制御回路を提供する。【解決手段】メモリ制御回路は、メモリに対するアクセス要求を保持するアクセス保持部と、アクセス保持部に保持されたアクセス要求に基づいて、2種類のアクセス要求について優先するアクセスの種類の切り替えを行う優先状態管理部と、アクセス保持部に保持されたアクセス要求を選択し実行するアクセス選択部とを有する。アクセス選択部は、優先するアクセスの種類の切り替え途中の状態であり、切り替え前の優先するアクセスの種類のアクセス要求が実行可能な時間があれば、切り替え前の優先するアクセスの種類のアクセス要求を選択し、優先するアクセスの種類の切り替え途中の状態でなければ、優先するアクセスの種類のアクセス要求を選択する。【選択図】図1
Description
本発明は、メモリ制御回路、情報処理システム及びメモリ制御方法に関する。
コンピュータシステムの主記憶装置として、一般的にDRAM(Dynamic Random Access Memory)が使用されている。コンピュータシステムの高機能化、高性能化に伴い、DRAMに対する性能要求は高まっている。DRAMにおける性能低下の要因として、例えばページミスや、リード動作とライト動作との切り替わりがある。この性能低下を抑制するためのメモリ制御回路の様々な手法が提案されている。
例えば、特許文献1には、リード動作とライト動作の切り替わりによる性能低下を抑制する技術が提案されている。特許文献1では、リードアクセス又はライトアクセスを優先するアクセスの種類とし、コマンドキューから優先するアクセスの種類のアクセス要求をすべて取り出したら優先するアクセスの種類を切り替えることで、性能低下の抑制を図っている。
ここで、優先するアクセスの種類を切り替える際に、DRAMのページミスのために切り替えた後に優先するアクセスの種類のアクセス要求が実行できないことがある。この切り替えた後のアクセス要求が実行できない間、切り替える前に優先するアクセスの種類のアクセス要求であれば実行可能なことがあり、結果としてDRAMの性能が低下してしまうことがある。
本発明は、優先するアクセスの種類を切り替える際に、メモリに対するアクセス要求を適切に実行し、メモリの性能低下を抑制することを目的とする。
本発明に係るメモリ制御回路は、メモリに対するアクセス要求を1つ以上保持する保持手段と、前記保持手段に保持されたアクセス要求に基づいて、2種類の前記アクセス要求について優先するアクセスの種類の切り替えを行う第1の状態管理手段と、前記保持手段に保持されたアクセス要求を選択し実行するアクセス選択手段とを有し、前記アクセス選択手段は、優先するアクセスの種類の切り替え途中の状態であり、切り替え前の優先するアクセスの種類のアクセス要求が実行可能な時間があれば、切り替え前の優先するアクセスの種類のアクセス要求を選択し、優先するアクセスの種類の切り替え途中の状態でなければ、優先するアクセスの種類のアクセス要求を選択することを特徴とする。
本発明によれば、優先するアクセスの種類を切り替える際に、メモリに対するアクセス要求を適切に実行することができ、メモリの性能低下を抑制することができる。
以下、本発明の実施形態を図面に基づいて説明する。
(第1の実施形態)
図1は、本発明の一実施形態におけるメモリ制御回路を用いた情報処理システム(コンピュータシステム)の構成例を示すブロック図である。情報処理システムは、メモリ制御回路100、処理ユニット151、及びメモリ152を有する。メモリ制御回路100は、処理ユニット151から発行された、メモリ152に対するアクセス要求を受信する。また、メモリ制御回路100は、受信したアクセス要求の内から任意のアクセス要求を選択し、選択したアクセス要求に応じてメモリ152にコマンドを発行する。処理ユニット152は、例えばCPU(Central Processing Unit)等の演算処理装置(プロセッサ)であり、メモリ152に対するアクセス要求を発行する。メモリ152は、例えばDRAMであり、メモリ制御回路100からのコマンドに基づいてアクセス要求に応じた動作を行う。なお、メモリ152は、DRAMに限られるものではなく、フラッシュメモリ等の他のメモリであってもよい。
図1は、本発明の一実施形態におけるメモリ制御回路を用いた情報処理システム(コンピュータシステム)の構成例を示すブロック図である。情報処理システムは、メモリ制御回路100、処理ユニット151、及びメモリ152を有する。メモリ制御回路100は、処理ユニット151から発行された、メモリ152に対するアクセス要求を受信する。また、メモリ制御回路100は、受信したアクセス要求の内から任意のアクセス要求を選択し、選択したアクセス要求に応じてメモリ152にコマンドを発行する。処理ユニット152は、例えばCPU(Central Processing Unit)等の演算処理装置(プロセッサ)であり、メモリ152に対するアクセス要求を発行する。メモリ152は、例えばDRAMであり、メモリ制御回路100からのコマンドに基づいてアクセス要求に応じた動作を行う。なお、メモリ152は、DRAMに限られるものではなく、フラッシュメモリ等の他のメモリであってもよい。
制御回路100は、アクセス保持部110、アクティブ選択部121、プリチャージ選択部122、バンク状態管理部123、優先状態管理部131、及びアクセス選択部132を有する。アクセス保持部110は、処理ユニット151が発行するメモリ152に対するアクセス要求を受信し、受信したアクセス要求を保持する。アクセス保持部110は、受信したアクセス要求を1つ以上保持することができる。アクセス要求には、少なくともアクセスの種類(リード/ライト)及びアドレスが含まれているものとする。また、アクセス要求には、アクセスの優先度が付与されている。アクセスの種類は、リード/ライト以外にも、例えばNAND FLASH(登録商標)メモリで用いられるイレースなどがあってもよい。
アクティブ選択部121は、アクセス保持部110が保持するアクセス要求のうちのどのアクセス要求に対してメモリ152のバンクをアクティブするかを決定して、そのバンクをオープンするためのアクティブコマンド(ACT)を発行する。プリチャージ選択部122は、アクセス保持部110が保持するアクセス要求のうちのどのアクセス要求に対してメモリ152のバンクをプリチャージするかを決定して、そのバンクをクローズするためのプリチャージコマンド(PRE)を発行する。バンク状態管理部123は、アクティブコマンドとプリチャージコマンドの発行を監視して、メモリ152における各バンクの状態を管理する。
優先状態管理部131は、アクセス保持部110が保持するアクセス要求及びバンク状態管理部123が管理するバンク状態に基づいて、リードアクセス又はライトアクセスの2種類のアクセスのどちらを優先するアクセスの種類のアクセスとするか決定する。アクセス選択部132は、優先するアクセスの種類に応じて、アクセス保持部110が保持するアクセス要求のうちのどのアクセス要求に対してリードアクセスやライトアクセスをするか決定してリードコマンド(RD)又はライトコマンド(WR)を発行する。
図2は、優先状態管理部131が優先するアクセスの種類を決定する処理の例を示すフローチャートである。優先状態管理部131は、毎サイクル、図2に示すフローチャートに従って優先するアクセスの種類を決定するものとする。初期状態での優先するアクセスの種類はリードアクセスとする。
ステップS201にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求があるか否かを判定する。優先状態管理部131は、アクセス保持部110に保持されているアクセス要求がないと判定した場合(ステップS201においてNO)にはステップS202へ進む。一方、アクセス保持部110に保持されているアクセス要求があると判定した場合(ステップS201においてYES)にはステップS203へ進む。
ステップS202にて、優先状態管理部131は、優先するアクセスの種類を保持し、切り替え途中の状態ではないと判断して終了する。
ステップS203にて、優先状態管理部131は、アクセス保持回路110に保持されているアクセス要求のうち、優先度が一番高いアクセス要求が優先するアクセスの種類と同じであるか否かを判定する。ここで、優先状態管理部131は、優先度が一番高いアクセス要求がリードアクセス及びライトアクセスの双方ある時は同じであると判定する。また、優先状態管理部131は、優先度が一番高いアクセス要求と優先するアクセスの種類が共にリードアクセスの時、及び優先度が一番高いアクセス要求と優先するアクセスの種類が共にライトアクセスの時は同じであると判定する。それ以外は、優先度が一番高いアクセス要求と優先するアクセスの種類とが異なると判定する。優先状態管理部131は、優先度が一番高いアクセス要求と優先するアクセスの種類とが同じであると判定した場合(ステップS203においてYES)にはステップS202へ進む。一方、優先度が一番高いアクセス要求と優先するアクセスの種類とが異なると判定した場合(ステップS203においてNO)にはステップS204へ進む。
ステップS204にて、優先状態管理部131は、ページミス時間とスイッチング時間との比較を行い、ページミス時間がスイッチング時間よりも大きいか否かを判定する。ここでのページミス時間とは、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求のリードコマンド又はライトコマンドを発行するまでの時間を、バンク状態管理部123が管理するバンク状態に基づいて算出したものとする。また、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求のリードコマンド又はライトコマンドが複数ある場合、それらの中で最も短いものとする。また、スイッチング時間とは、メモリ152の仕様で定められているアクセスをリードアクセスからライトアクセスに切り替えるまでの時間、もしくはその逆にライトアクセスからリードアクセスに切り替えるまでに必要な時間である。ここでは、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求がリードアクセスである場合には、ライトアクセスからリードアクセスに切り替えるまでに必要な時間をスイッチング時間とする。また、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求がライトアクセスである場合には、リードアクセスからライトアクセスに切り替えるまでに必要な時間をスイッチング時間とする。
ページミス時間がスイッチング時間よりも大きい時は、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求のリードコマンドを発行するまでの間に、別のライトアクセスが実行可能であることを表している。同様に、ページミス時間がスイッチング時間よりも大きい時は、アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求のライトコマンドを発行するまでの間に、別のリードアクセスが実行可能であることを表している。したがって、優先状態管理部131は、ページミス時間がスイッチング時間よりも大きいと判定した場合(ステップS204においてYES)にはステップS205へ進む。一方、ページミス時間がスイッチング時間以下であると判定した場合(ステップS204においてNO)にはステップS206へ進む。
ステップS205にて、優先状態管理部131は、優先するアクセスの種類を保持し、切り替え途中の状態であると判断して終了する。
ステップS206にて、優先状態管理部131は、優先するアクセスの種類をアクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求の種類に切り替え、切り替え途中の状態ではないと判断して終了する。
優先状態管理部131は、毎サイクル、図2に示したフローチャートに従って優先するアクセスの種類を決定する。このため、前サイクルで切り替え途中であると判断していてもアクセス保持部110において優先度が一番高いアクセス要求が優先するアクセスの種類と同じになれば、優先するアクセスの種類を保持し、切り替え途中の状態ではないと判断する(S202)。この時は優先するアクセスの種類の切り替えを中止する。
図3は、アクセス選択部132が実行するアクセスを決定する処理の例を示すフローチャートである。アクセス選択部132は、毎サイクル、図3に示すフローチャートに従って実行するアクセスを決定するものとする。
ステップS301にて、アクセス選択部132は、切り替え途中の状態であるか否かを判定する。切り替え途中の状態であるかどうかは、図2に示したフローチャートで算出できる。アクセス選択部132は、切り替え途中の状態ではないと判定した場合(ステップS301においてNO)にはステップS302へ進む。一方、切り替え途中の状態であると判定した場合(ステップS301においてYES)にはステップS304へ進む。
ステップS302にて、アクセス選択部132は、アクセス保持部110に保持しているアクセス要求の中に、優先するアクセスの種類のアクセス要求があるか否かを判定する。アクセス選択部132は、優先するアクセスの種類のアクセス要求がないと判定した場合(ステップS302においてNO)にはステップS303へ進み、アクセスを実行しないで終了する。一方、優先するアクセスの種類のアクセス要求があると判定した場合(ステップS302においてYES)にはステップS305へ進む。
ステップS304にて、アクセス選択部132は、優先するアクセスの種類のアクセス要求を実行しても、優先するアクセスの種類を切り替えた後の優先するアクセスの種類のアクセス要求が遅れずに実行可能であるか否かを判定する。アクセス選択部132は、まず、優先するアクセスの種類のアクセス要求がアクセス保持部110にあるか否かを判定する。そして、優先するアクセスの種類のアクセス要求があれば、そのアクセス要求を実行した際に切り替え後の優先するアクセスの種類のアクセス要求を実行するタイミングが遅れずに実行できるかをバンク状態管理部123が管理するバンク状態に基づいて判定する。アクセス選択部132は、優先するアクセスの種類のアクセス要求を実行しても、切り替え後の優先するアクセスの種類のアクセス要求が遅れずに実行可能であるかと判定した場合(ステップS304においてYES)にはステップS305へ進む。一方、優先するアクセスの種類のアクセス要求を実行すると、切り替え後の優先するアクセスの種類のアクセス要求が遅れずに実行することができないと判定した場合(ステップS304においてNO)にはステップS303へ進む。
ステップS305にて、アクセス選択部132は、アクセス保持部110に保持しているアクセス要求から優先するアクセスの種類のアクセス要求を選択して実行する。
次に、図4~図6を参照して、本実施形態におけるメモリ制御回路100の動作について説明する。ここでは、メモリ152におけるバンク数を2つとし、バンク0(Bank0)及びバンク1(Bank1)に対する下記のコマンド発行する様子を示す。
・アクティブコマンド(ACTコマンド)(An)
・プリチャージコマンド(PREコマンド)(Pn)
・リード/ライトコマンド(RDコマンド/WRコマンド)(Rn及びWn)
・オートプリチャージ付きリードコマンド(RDAコマンド)(RDAn)
・オートプリチャージ付きライトコマンド(WRAコマンド)(WRAn)
nは数字でアクセスの番号を表している。
・アクティブコマンド(ACTコマンド)(An)
・プリチャージコマンド(PREコマンド)(Pn)
・リード/ライトコマンド(RDコマンド/WRコマンド)(Rn及びWn)
・オートプリチャージ付きリードコマンド(RDAコマンド)(RDAn)
・オートプリチャージ付きライトコマンド(WRAコマンド)(WRAn)
nは数字でアクセスの番号を表している。
図4は、メモリ制御回路100の動作例を説明する図である。この例では初期状態でアクセス保持部110に優先度の低いリードアクセス1-4のアクセス要求が保持されていて、その後に優先度の高いライトアクセス5のアクセス要求を受信する例を示す。表1に、この例における各アクセスの番号、バンク番号、アクセスの種類、及び優先度を示す。初期状態では、優先するアクセスの種類がリードアクセス(401)でアクティブ選択部121がアクセス1対するACTコマンド(421)を発行済であるものとする。
優先度の高いライトアクセス5のアクセス要求が受信されると、優先状態管理部131が、優先するアクセスの種類を判定する。優先状態管理部131が図2に示したフローチャートに従って判定を行い、この例では優先度が一番高いアクセス要求と優先するアクセスの種類とが異なっていると判定される。さらにページミス時間がスイッチング時間よりも大きいと判定され、切り替え途中の状態であると判定される。続いて、アクセス選択部132が実行するアクセス要求を図3に示したフローチャートに従って判定を行う。この例では優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス5を実行するタイミングが遅れずに実行できるものとする。切り替え途中の状態(412)で、アクセス保持部110に優先するアクセスの種類のアクセス2があって、アクセス2を実行したとしても、優先するアクセスの種類を切り替えた後に優先するアクセス5を実行するタイミングが遅れずに実行できる。このため、優先するアクセスの種類であるリードアクセスを実行する。この例では、Bank1に対して、優先するアクセスの種類であるリードアクセス2のアクセス要求をアクセス選択部132が選択して実行する(431)。同様に、切り替え途中の状態(412)である間に、Bank1に対して、優先するアクセスの種類であるリードアクセス3、4のアクセス要求をアクセス選択部132が選択して実行する(432、433)。
優先状態管理部131は、時間が経過してページミス時間がスイッチング時間以下になると、切り替え途中の状態(412)から切り替え途中の状態ではない(413)として、優先するアクセスの種類をライトアクセスに切り替える(402)。アクセス保持部110が保持するアクセス要求で優先度が一番高いアクセス要求となるアクセス5がライトアクセスであるため、このアクセスを行うためにプリチャージ選択部122は、Bank0に対してPREコマンド(422)が発行可能になると発行する。さらに、アクティブ選択部121は、ACTコマンド(423)が発行可能になると発行する。その後、優先するアクセスの種類がライトアクセス(402)になり、スイッチング時間が経過すると、アクセス保持部110に保持されているライトアクセスで優先度が一番高いアクセス5をアクセス選択部132が選択して実行する(424)。
本例のように、優先するアクセスの種類を切り替える際に、メモリ152のページミスのために切り替えた後に優先するアクセスの種類のアクセス要求が実行できないが、切り替える前に優先するアクセスの種類のアクセス要求であれば実行できることがある。この例では、アクセス(431~433)が実行できる。これに対して、切り替え途中の状態がなく、優先するアクセスの種類のアクセス要求を実行する場合には、アクセス(431~433)を実行することができない。したがって、本実施形態では、メモリ152に対するアクセス要求を適切に実行し、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
図5は、メモリ制御回路100の別の動作例を説明する図である。この例では初期状態でアクセス保持部110に優先度の低いリードアクセス1-3のアクセス要求が保持されていて、その後に優先度の高いライトアクセス4のアクセス要求を受信する例を示す。表2に、この例における各アクセスの番号、バンク番号、アクセスの種類、及び優先度を示す。初期状態では、優先するアクセスの種類がリードアクセス(501)でアクセス選択部132がアクセス1対するRDAコマンド(521)を発行済であるものとする。
優先度の高いライトアクセス4のアクセス要求が受信されると、優先状態管理部131が、優先するアクセスの種類を判定する。優先状態管理部131が図2に示したフローチャートに従って判定を行い、この例では優先度が一番高いアクセス要求と優先するアクセスの種類とが異なっていると判定される。さらにページミス時間がスイッチング時間よりも大きいと判定され、切り替え途中の状態であると判定される。続いて、アクセス選択部132が実行するアクセス要求を図3に示したフローチャートに従って判定を行う。この例では優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス4を実行するタイミングが遅れずに実行できるものとする。切り替え途中の状態(512)で、アクセス保持部110に優先するアクセスの種類のアクセス2があって、アクセス2を実行したとしても、優先するアクセスの種類を切り替えた後に優先するアクセス4を実行するタイミングが遅れずに実行できる。このため、優先するアクセスの種類であるリードアクセスを実行する。この例では、Bank1に対して、優先するアクセスの種類であるリードアクセス2のアクセス要求をアクセス選択部132が選択して実行する(531)。同様に、切り替え途中の状態(512)である間に、Bank1に対して、優先するアクセスの種類であるリードアクセス3のアクセス要求をアクセス選択部132が選択して実行する(532)。
優先状態管理部131は、時間が経過してページミス時間がスイッチング時間以下になると、切り替え途中の状態(512)から切り替え途中の状態ではない(513)として、優先するアクセスの種類をライトアクセスに切り替える(502)。アクセス保持部110が保持するアクセス要求で優先度が一番高いアクセス要求となるアクセス4がライトアクセスであるため、このアクセスを行うためにアクティブ選択部121は、Bank0に対してACTコマンド(522)が発行可能になると発行する。その後、優先するアクセスの種類がライトアクセス(502)になり、スイッチング時間が経過すると、アクセス保持部110に保持されているライトアクセスで優先度が一番高いアクセス4をアクセス選択部132が選択して実行する(523)。
本例のように、優先するアクセスの種類を切り替える際に、メモリ152のページミスのために切り替えた後に優先するアクセスの種類のアクセス要求が実行できないが、切り替える前に優先するアクセスの種類のアクセス要求であれば実行できることがある。この例では、アクセス(531、532)が実行できる。これに対して、切り替え途中の状態がなく、優先するアクセスの種類のアクセス要求を実行する場合には、アクセス(531、532)を実行することができない。したがって、本実施形態では、メモリ152に対するアクセス要求を適切に実行し、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
図6は、メモリ制御回路100の別の動作例を説明する図である。この例では初期状態でアクセス保持部110に優先度の低いライトアクセス1-3のアクセス要求が保持されていて、その後に優先度の高いリードアクセス4のアクセス要求を受信する例を示す。表3に、この例における各アクセスの番号、バンク番号、アクセスの種類、及び優先度を示す。初期状態では、優先するアクセスの種類がライトアクセス(601)でアクセス選択部132がアクセス1対するWRAコマンド(621)を発行済であるものとする。
優先度の高いリードアクセス4のアクセス要求が受信されると、優先状態管理部131が、優先するアクセスの種類を判定する。優先状態管理部131が図2に示したフローチャートに従って判定を行い、この例では優先度が一番高いアクセス要求と優先するアクセスの種類とが異なっていると判定される。さらにページミス時間がスイッチング時間よりも大きいと判定され、切り替え途中の状態であると判定される。続いて、アクセス選択部132が実行するアクセス要求を図3に示したフローチャートに従って判定を行う。この例では優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス4を実行するタイミングが遅れずに実行できるものとする。切り替え途中の状態(612)で、アクセス保持部110に優先するアクセスの種類のアクセス2があって、アクセス2を実行したとしても、優先するアクセスの種類を切り替えた後に優先するアクセス4を実行するタイミングが遅れずに実行できる。このため、優先するアクセスの種類であるライトアクセスを実行する。この例では、Bank1に対して、優先するアクセスの種類であるライトアクセス2のアクセス要求をアクセス選択部132が選択して実行する(631)。同様に、切り替え途中の状態(612)である間に、Bank1に対して、優先するアクセスの種類であるライトアクセス3のアクセス要求をアクセス選択部132が選択して実行する(632)。
優先状態管理部131は、時間が経過してページミス時間がスイッチング時間以下になると、切り替え途中の状態(612)から切り替え途中の状態ではない(613)として、優先するアクセスの種類をリードアクセスに切り替える(602)。アクセス保持部110が保持するアクセス要求で優先度が一番高いアクセス要求となるアクセス4がリードアクセスであるため、このアクセスを行うためにアクティブ選択部121は、Bank0に対してACTコマンド(622)が発行可能になると発行する。その後、優先するアクセスの種類がリードアクセス(602)になり、スイッチング時間が経過すると、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセス4をアクセス選択部132が選択して実行する(623)。
本例のように、優先するアクセスの種類を切り替える際に、メモリ152のページミスのために切り替えた後に優先するアクセスの種類のアクセス要求が実行できないが、切り替える前に優先するアクセスの種類のアクセス要求であれば実行できることがある。この例では、アクセス(631、632)が実行できる。これに対して、切り替え途中の状態がなく、優先するアクセスの種類のアクセス要求を実行する場合には、アクセス(631、632)を実行することができない。したがって、本実施形態では、メモリ152に対するアクセス要求を適切に実行し、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
(第2の実施形態)
以下に説明する第2の実施形態は、前述した第1の実施形態とは、優先状態管理部131が優先するアクセスの種類を決定する処理が異なり、それ以外は第1の実施形態と同様である。以下、第2の実施形態での優先状態管理部131が優先するアクセスの種類を決定する処理について説明する。図7は、第2の実施形態における優先状態管理部131が優先するアクセスの種類を決定する処理の例を示すフローチャートである。優先状態管理部131は、毎サイクル、図7に示すフローチャートに従って優先するアクセスの種類を決定するものとする。
以下に説明する第2の実施形態は、前述した第1の実施形態とは、優先状態管理部131が優先するアクセスの種類を決定する処理が異なり、それ以外は第1の実施形態と同様である。以下、第2の実施形態での優先状態管理部131が優先するアクセスの種類を決定する処理について説明する。図7は、第2の実施形態における優先状態管理部131が優先するアクセスの種類を決定する処理の例を示すフローチャートである。優先状態管理部131は、毎サイクル、図7に示すフローチャートに従って優先するアクセスの種類を決定するものとする。
ステップS701にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求があるか否かを判定する。優先状態管理部131は、アクセス保持部110に保持されているアクセス要求がないと判定した場合(ステップS701においてNO)にはステップS702へ進む。一方、アクセス保持部110に保持されているアクセス要求があると判定した場合(ステップS701においてYES)にはステップS703へ進む。
ステップS702にて、優先状態管理部131は、優先するアクセスの種類を保持し、切り替え途中の状態ではないと判断して終了する。
ステップS703にて、優先状態管理部131は、図2に示したステップS203と同様にして、アクセス保持回路110に保持されているアクセス要求のうち、優先度が一番高いアクセス要求が優先するアクセスの種類と同じであるか否かを判定する。優先状態管理部131は、優先度が一番高いアクセス要求と優先するアクセスの種類とが同じであると判定した場合(ステップS703においてYES)にはステップS704へ進む。一方、優先度が一番高いアクセス要求と優先するアクセスの種類とが異なると判定した場合(ステップS703においてNO)にはステップS704へ進む。
ステップS704にて、優先状態管理部131は、アクセス保持部110に保持している優先度が一番高いアクセス要求が優先するアクセスの種類と同じであっても、優先するアクセスの種類を切り替えるか否かを判定する。優先状態管理部131は、優先するアクセスの種類を切り替えると判定した場合(ステップS704においてYES)にはステップS705へ進む。一方、優先するアクセスの種類を切り替えないと判定した場合(ステップS704においてNO)にはステップS702へ進む。
ステップS705にて、優先状態管理部131は、図2に示したステップS204と同様にして、ページミス時間とスイッチング時間との比較を行い、ページミス時間がスイッチング時間よりも大きいか否かを判定する。優先状態管理部131は、ページミス時間がスイッチング時間よりも大きいと判定した場合(ステップS705においてYES)にはステップS706へ進む。一方、ページミス時間がスイッチング時間以下であると判定した場合(ステップS705においてNO)にはステップS707へ進む。
ステップS706にて、優先状態管理部131は、優先するアクセスの種類を保持し、切り替え途中の状態であると判断して終了する。
ステップS707にて、優先状態管理部131は、優先するアクセスの種類をアクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求の種類に切り替え、切り替え途中の状態ではないと判断して終了する。
図8は、図7のステップS704での処理の例を示すフローチャートである。
ステップS801にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセス要求がリードアクセス及びライトアクセスの双方あるか否かを判定する。優先状態管理部131は、リードアクセス及びライトアクセスのうちのどちらか一方しかないと判定した場合(ステップS801においてNO)にはステップS802へ進む。一方、リードアクセス及びライトアクセスの双方があると判定した場合(ステップS801においてYES)にはステップS803へ進む。
ステップS801にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセス要求がリードアクセス及びライトアクセスの双方あるか否かを判定する。優先状態管理部131は、リードアクセス及びライトアクセスのうちのどちらか一方しかないと判定した場合(ステップS801においてNO)にはステップS802へ進む。一方、リードアクセス及びライトアクセスの双方があると判定した場合(ステップS801においてYES)にはステップS803へ進む。
ステップS802にて、優先状態管理部131は、優先するアクセスの種類を切り替えないと判断して図7に示したフローチャートに戻る。
ステップS803にて、優先状態管理部131は、優先するアクセスの種類のアクセス要求でのページミス時間が優先するアクセスの種類ではないアクセス要求でのページミス時間よりも大きいか否かを判定する。アクセス保持部110に保持しているアクセス要求で優先度が一番高いアクセス要求のリードコマンド又はライトコマンドが複数ある場合、それぞれそれらの中で最も短いもの同士で比較する。優先するアクセスの種類のアクセス要求でのページミス時間が優先するアクセスの種類ではないアクセス要求でのページミス時間よりも大きい場合は、優先するアクセスの種類を変更した方が早くアクセス要求を実行できることを示している。優先状態管理部131は、優先するアクセスの種類のアクセス要求でのページミス時間が優先するアクセスの種類ではないアクセス要求でのページミス時間よりも大きいと判定した場合(ステップS803においてYES)にはステップS804へ進む。一方、優先するアクセスの種類のアクセス要求でのページミス時間が優先するアクセスの種類ではないアクセス要求でのページミス時間以下であると判定した場合(ステップS803においてNO)にはステップS802へ進む。
ステップS804にて、優先状態管理部131は、優先するアクセスの種類を切り替えると判断して図7に示したフローチャートに戻る。
このように、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセスがリードアクセス及びライトアクセスの双方があるときに、それぞれのアクセスでのページミス時間に基づいて、優先するアクセスの種類を切り替えるか判断する。ページミス時間が、優先するアクセスの種類のアクセス要求の方が優先するアクセスの種類ではないアクセス要求よりも大きい時には、優先状態管理部131は、優先するアクセスの種類を切り替える。したがって、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
図9は、図7のステップS704での処理の他の例を示すフローチャートである。
この例では、優先状態管理部131は転送数のカウンタを有している。転送数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびにカウント値が1増加される。また、転送数と同様に、優先状態管理部131は、転送量のカウンタ及び転送サイクル数のカウンタを有している。転送量のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびに有効な転送量がカウント値に加算される。また、転送サイクル数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびに転送サイクル数がカウント値に加算される。
この例では、優先状態管理部131は転送数のカウンタを有している。転送数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびにカウント値が1増加される。また、転送数と同様に、優先状態管理部131は、転送量のカウンタ及び転送サイクル数のカウンタを有している。転送量のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびに有効な転送量がカウント値に加算される。また、転送サイクル数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行するたびに転送サイクル数がカウント値に加算される。
ステップS901にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセス要求がリードアクセス及びライトアクセスの双方あるか否かを判定する。優先状態管理部131は、リードアクセス及びライトアクセスのうちのどちらか一方しかないと判定した場合(ステップS901においてNO)にはステップS902へ進む。一方、リードアクセス及びライトアクセスの双方があると判定した場合(ステップS901においてYES)にはステップS903へ進む。
ステップS902にて、優先状態管理部131は、優先するアクセスの種類を切り替えないと判断して図7に示したフローチャートに戻る。
ステップS903にて、優先状態管理部131は、優先するアクセスの種類を切り替えてからの転送数、転送量、転送サイクル数のいずれかが閾値以上であるか否かを判定する。転送数のカウンタ、転送量のカウンタ、転送サイクル数のカウンタのいずれかがそれぞれの閾値以上であるときは、優先するアクセスの種類ではないアクセスについて転送の遅延時間が大きくなっている可能性があることを示している。優先状態管理部131は、優先するアクセスの種類を切り替えてからの転送数、転送量、転送サイクル数のいずれかが閾値以上であると判定した場合(ステップS903においてYES)にはステップS904へ進む。一方、優先するアクセスの種類を切り替えてからの転送数、転送量、転送サイクル数のいずれもが閾値未満であると判定した場合(ステップS903においてNO)にはステップS902へ進む。
ステップS904にて、優先状態管理部131は、優先するアクセスの種類を切り替えると判断して図7に示したフローチャートに戻る。
なお、前述した例では、転送数のカウンタ、転送量のカウンタ、転送サイクル数のカウンタを有しているものとしたがすべて必要であるものではなく、いずれか一つ以上であってもよい。
なお、前述した例では、転送数のカウンタ、転送量のカウンタ、転送サイクル数のカウンタを有しているものとしたがすべて必要であるものではなく、いずれか一つ以上であってもよい。
このように、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセスがリードアクセス及びライトアクセスの双方があるときに、転送数、転送量、転送サイクル数に基づいて、優先するアクセスの種類を切り替えるか判断する。切り替え後の転送数、転送量、転送サイクル数のいずれかが閾値以上である時には、優先状態管理部131は、優先するアクセスの種類を切り替える。したがって、従来のものに比べて優先するアクセスの種類が切り替わらないことでアクセスが遅くなることを抑制することができる。
図10は、図7のステップS704での処理の他の例を示すフローチャートである。
この例では、優先状態管理部131は経過サイクル数のカウンタを有している。経過サイクル数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、1サイクル経過する毎にカウント値が1増加される。
この例では、優先状態管理部131は経過サイクル数のカウンタを有している。経過サイクル数のカウンタは、優先するアクセスの種類を切り替える際にカウント値が0に初期化され、1サイクル経過する毎にカウント値が1増加される。
ステップS1001にて、優先状態管理部131は、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセス要求がリードアクセス及びライトアクセスの双方あるか否かを判定する。優先状態管理部131は、リードアクセス及びライトアクセスのうちのどちらか一方しかないと判定した場合(ステップS1001においてNO)にはステップS1002へ進む。一方、リードアクセス及びライトアクセスの双方があると判定した場合(ステップS1001においてYES)にはステップS1003へ進む。
ステップS1002にて、優先状態管理部131は、優先するアクセスの種類を切り替えないと判断して図7に示したフローチャートに戻る。
ステップS1003にて、優先状態管理部131は、経過サイクル数のカウンタのカウント値に基づいて、優先するアクセスの種類を切り替えてからの経過時間が閾値以上であるか否かを判定する。ここでは1サイクルの時間は一定とし、経過サイクル数は経過時間を表している。経過サイクル数が閾値以上であるときは、優先するアクセスの種類ではないアクセス要求の転送の遅延時間が大きくなっている可能性があることを示している。優先状態管理部131は、優先するアクセスの種類を切り替えてからの経過時間が閾値以上であると判定した場合(ステップS1003においてYES)にはステップS1004へ進む。一方、優先するアクセスの種類を切り替えてからの経過時間が閾値未満であると判定した場合(ステップS1003においてNO)にはステップS1002へ進む。
ステップS1004にて、優先状態管理部131は、優先するアクセスの種類を切り替えると判断して図7に示したフローチャートに戻る。
このように、アクセス保持部110に保持されているアクセス要求で優先度が一番高いアクセスがリードアクセス及びライトアクセスの双方があるときに、切り替え後の経過時間に基づいて、優先するアクセスの種類を切り替えるか判断する。切り替え後の経過時間が閾値以上である時には、優先状態管理部131は、優先するアクセスの種類を切り替える。したがって、従来のものに比べて優先するアクセスの種類が切り替わらないことでアクセスが遅くなることを抑制することができる。
なお、図8~図10に示した例を適宜組み合わせてもよい。
なお、図8~図10に示した例を適宜組み合わせてもよい。
(他の実施形態)
図3のステップS304では、優先するアクセスの種類のアクセス要求を実行した際に切り替え後の優先するアクセスの種類のアクセス要求を実行するタイミングが遅れずに実行できるかをバンク状態管理部123が管理するバンク状態に基づいて判定している。これに限らず、以下に説明するような判定を行ってもよい。
図3のステップS304では、優先するアクセスの種類のアクセス要求を実行した際に切り替え後の優先するアクセスの種類のアクセス要求を実行するタイミングが遅れずに実行できるかをバンク状態管理部123が管理するバンク状態に基づいて判定している。これに限らず、以下に説明するような判定を行ってもよい。
1つの例では、アクセス選択部132は、まずバンク状態管理部123が管理するバンク状態に基づいて、優先するアクセスの種類のアクセス要求がACTコマンドの発行が不要であるか否かを判定する。ACTコマンドの発行が不要であり、かつ優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセスが遅れずに実行できる場合は、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行する。それ以外の場合はアクセスを実行しない。ACTコマンドの発行が必要であると、ACTコマンドを発行したことによって優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を実行する際にPREコマンドやACTコマンドが遅れることがある。このため、ACTコマンドの発行が不要であることを判定すれば、優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を遅れずに実行できるかを簡単に判定することができる。したがって、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
また、他の例としては、アクセス選択部132は、まずバンク状態管理部123が管理するバンク状態に基づいて、優先するアクセスの種類のアクセス要求と切り替え後の優先するアクセスの種類のアクセス要求とのバンクが同一かを判定する。バンクが同一ではなく、かつ優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセスが遅れずに実行できる場合は、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行する。それ以外の場合はアクセスを実行しない。バンクが同一である時は、優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を実行する際にPREコマンドやACTコマンドが遅れることがある。このため、バンクが同一ではないことを判定すれば、優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を遅れずに実行できるかを簡単に判定することができる。したがって、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
また、他の例としては、アクセス選択部132は、まずバンク状態管理部123が管理するバンク状態に基づいて、優先するアクセスの種類のアクセス要求がリフレッシュ対象のバンクであるかを判定する。リフレッシュ対象のバンクではなく、かつ優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセスが遅れずに実行できる場合は、優先するアクセスの種類のアクセス要求をアクセス選択部132で選択して実行する。それ以外の場合はアクセスを実行しない。リフレッシュ対象バンクである時は、優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を実行する際にPREコマンドやACTコマンドが遅れることがある。このため、リフレッシュ対象バンクでないことを判定することで、優先するアクセスの種類を切り替えた後に優先するアクセスの種類のアクセス要求を遅れずに実行できるかを簡単に判定することができる。したがって、従来のものに比べてメモリ152のページミスによる性能低下を抑制することができる。
(本発明の他の実施形態)
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本発明は、前述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、前記実施形態は、何れも本発明を実施するにあたっての具体化のほんの一例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100:メモリ制御回路 110:アクセス保持部 121:アクティブ選択部 122:プリチャージ選択部 123:バンク状態管理部 131:優先状態管理部 132:アクセス選択部 151:処理ユニット 152:メモリ
Claims (15)
- メモリに対するアクセス要求を1つ以上保持する保持手段と、
前記保持手段に保持されたアクセス要求に基づいて、2種類の前記アクセス要求について優先するアクセスの種類の切り替えを行う第1の状態管理手段と、
前記保持手段に保持されたアクセス要求を選択し実行するアクセス選択手段とを有し、
前記アクセス選択手段は、
優先するアクセスの種類の切り替え途中の状態であり、切り替え前の優先するアクセスの種類のアクセス要求が実行可能な時間があれば、切り替え前の優先するアクセスの種類のアクセス要求を選択し、
優先するアクセスの種類の切り替え途中の状態でなければ、優先するアクセスの種類のアクセス要求を選択することを特徴とするメモリ制御回路。 - 前記2種類のアクセス要求は、リードアクセスのアクセス要求とライトアクセスのアクセス要求とであることを特徴とする請求項1に記載のメモリ制御回路。
- 前記メモリの各バンクの状態を管理する第2の状態管理手段を有し、
前記アクセス選択手段は、優先するアクセスの種類の切り替え途中の状態であり、前記第2の状態管理手段が管理するバンクの状態に基づいて、切り替え前の優先するアクセスの種類のアクセス要求を実行した際に切り替え後の優先するアクセスの種類のアクセス要求が遅れずに実行できると判定した場合に、切り替え前の優先するアクセスの種類のアクセス要求を選択することを特徴とする請求項1又は2に記載のメモリ制御回路。 - 前記メモリの各バンクの状態を管理する第2の状態管理手段を有し、
前記第1の状態管理手段は、優先するアクセスの種類の切り替えを行う際、前記第2の状態管理手段が管理するバンクの状態に基づいて算出された切り替え後の優先するアクセスの種類のアクセス要求のコマンドを発行するまでの時間が、切り替え前の優先するアクセスの種類のアクセス要求のアクセスから切り替え後の優先するアクセスの種類のアクセス要求のアクセスに切り替えるまでに必要な時間よりも大きい場合に優先するアクセスの種類の切り替え途中とすることを特徴とする請求項1~3の何れか1項に記載のメモリ制御回路。 - 前記保持手段に保持されたアクセス要求を選択し実行する際に、前記第2の状態管理手段が管理するバンクの状態に基づいて、
前記アクセス要求に応じてバンクをオープンするためのアクティブコマンドを発行するアクティブ選択手段と、
前記アクセス要求に応じてバンクをクローズするためのプリチャージコマンドを発行するプリチャージ選択手段とを有することを特徴とする請求項3又は4に記載のメモリ制御回路。 - 前記アクセス要求には優先度が付与されており、
前記第1の状態管理手段は、優先するアクセスの種類が、前記保持手段に保持された前記アクセス要求のうちで優先度が一番高い前記アクセス要求と異なる場合に優先するアクセスの種類の切り替えを行うことを特徴とする請求項1~5の何れか1項に記載のメモリ制御回路。 - 前記第1の状態管理手段は、さらに、前記保持手段が前記2種類のアクセス要求を保持しており、優先するアクセスの種類のアクセス要求のコマンドを発行するまでの時間が、優先するアクセスの種類ではないアクセス要求のコマンドを発行するまでの時間が大きい場合に優先するアクセスの種類の切り替えを行うことを特徴とする請求項6に記載のメモリ制御回路。
- 前記第1の状態管理手段は、さらに、優先するアクセスの種類を切り替えてからの転送数、転送量、及び転送サイクル数のいずれかが閾値以上である場合に優先するアクセスの種類の切り替えを行うことを特徴とする請求項6又は7に記載のメモリ制御回路。
- 前記第1の状態管理手段は、さらに、優先するアクセスの種類を切り替えてからの経過時間が閾値以上である場合に優先するアクセスの種類の切り替えを行うことを特徴とする請求項6~8の何れか1項に記載のメモリ制御回路。
- 前記アクセス選択手段は、優先するアクセスの種類の切り替え途中の状態であり、前記第2の状態管理手段が管理するバンクの状態に基づいてアクティブコマンドの発行が不要である場合に切り替え前の優先するアクセスの種類のアクセス要求を選択することを特徴とする請求項3~5の何れか1項に記載のメモリ制御回路。
- 前記アクセス選択手段は、優先するアクセスの種類の切り替え途中の状態であり、前記第2の状態管理手段が管理するバンクの状態に基づいて、優先するアクセスの種類のアクセス要求と切り替え後の優先するアクセスの種類のアクセス要求とのバンクが異なる場合に切り替え前の優先するアクセスの種類のアクセス要求を選択することを特徴とする請求項3~5の何れか1項に記載のメモリ制御回路。
- 前記アクセス選択手段は、優先するアクセスの種類の切り替え途中の状態であり、前記第2の状態管理手段が管理するバンクの状態に基づいて、優先するアクセスの種類のアクセス要求がリフレッシュ対象のバンクでない場合に切り替え前の優先するアクセスの種類のアクセス要求を選択することを特徴とする請求項3~5の何れか1項に記載のメモリ制御回路。
- 前記第1の状態管理手段は、優先するアクセスの種類の切り替え途中の状態であり、前記保持手段が保持している前記アクセス要求のうちで優先度が一番高いアクセス要求が切り替え後の優先するアクセスの種類と異なる場合、優先するアクセスの種類の切り替えを中止することを特徴とする請求項1~12の何れか1項に記載のメモリ制御回路。
- メモリに対するアクセス要求を発行する発行する処理手段と、
前記処理手段から発行された前記アクセス要求を受信する請求項1~13の何れか1項に記載のメモリ制御回路と、
前記メモリ制御回路からの前記アクセス要求に応じた動作を行う前記メモリとを有することを特徴とする情報処理システム。 - メモリに対するアクセス要求を1つ以上保持する保持手段に前記アクセス要求を保持する保持工程と、
前記保持手段に保持されたアクセス要求に基づいて、2種類の前記アクセス要求について優先するアクセスの種類の切り替えを行う第1の状態管理工程と、
前記保持手段に保持されたアクセス要求を選択し実行するアクセス選択工程とを有し、
前記アクセス選択工程では、
優先するアクセスの種類の切り替え途中の状態であり、切り替え前の優先するアクセスの種類のアクセス要求が実行可能な時間があれば、切り替え前の優先するアクセスの種類のアクセス要求を選択し、
優先するアクセスの種類の切り替え途中の状態でなければ、優先するアクセスの種類のアクセス要求を選択することを特徴とするメモリ制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021068311A JP2022163404A (ja) | 2021-04-14 | 2021-04-14 | メモリ制御回路、情報処理システム及びメモリ制御方法 |
US17/718,796 US11756593B2 (en) | 2021-04-14 | 2022-04-12 | Memory control circuit, information processing system, and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021068311A JP2022163404A (ja) | 2021-04-14 | 2021-04-14 | メモリ制御回路、情報処理システム及びメモリ制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2022163404A true JP2022163404A (ja) | 2022-10-26 |
Family
ID=83603080
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021068311A Pending JP2022163404A (ja) | 2021-04-14 | 2021-04-14 | メモリ制御回路、情報処理システム及びメモリ制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11756593B2 (ja) |
JP (1) | JP2022163404A (ja) |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7187572B2 (en) * | 2002-06-28 | 2007-03-06 | Rambus Inc. | Early read after write operation memory device, system and method |
EP1482412B1 (en) * | 2003-05-30 | 2006-08-23 | Agilent Technologies Inc | Shared storage arbitration |
US7284077B2 (en) * | 2003-09-12 | 2007-10-16 | International Business Machines Corporation | Peripheral interface system having dedicated communication channels |
US7386658B2 (en) * | 2004-03-15 | 2008-06-10 | Intel Corporation | Memory post-write page closing apparatus and method |
US8266383B1 (en) * | 2009-09-28 | 2012-09-11 | Nvidia Corporation | Cache miss processing using a defer/replay mechanism |
JP6950149B2 (ja) | 2015-09-08 | 2021-10-13 | ソニーグループ株式会社 | メモリコントローラ、メモリシステム、および、メモリコントローラの制御方法 |
-
2021
- 2021-04-14 JP JP2021068311A patent/JP2022163404A/ja active Pending
-
2022
- 2022-04-12 US US17/718,796 patent/US11756593B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11756593B2 (en) | 2023-09-12 |
US20220335990A1 (en) | 2022-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102130578B1 (ko) | 반도체 장치 | |
US20150046642A1 (en) | Memory command scheduler and memory command scheduling method | |
JP6146128B2 (ja) | データ処理装置 | |
JP2009157887A (ja) | ロードストアキューの制御方法及びその制御システム | |
KR20070086640A (ko) | 메모리내의 명령을 실행하기 위한 우선순위 부여 방식 | |
US7822952B2 (en) | Context switching device | |
JP2014154119A (ja) | メモリ制御装置及び半導体記憶装置 | |
JP2013196108A (ja) | ストレージ制御装置、ストレージ制御方法、及びストレージ制御プログラム | |
JP2006236239A (ja) | データ処理システム及びデータ伸長方法 | |
TW201935259A (zh) | 半導體裝置及匯流排產生器 | |
JP2018022440A5 (ja) | ||
JP2022163404A (ja) | メモリ制御回路、情報処理システム及びメモリ制御方法 | |
KR102190688B1 (ko) | 관련된 응용들에 상호 참조하는 적응적 컨텍스트 스위칭을 수행하는 방법 및 시스템 | |
US11923037B2 (en) | Memory control circuit and method for controlling the same | |
WO2010122607A1 (ja) | 記憶制御装置及びその制御方法 | |
JP6237945B1 (ja) | メモリ制御装置 | |
JP2014092813A (ja) | メモリ制御装置、メモリ制御方法およびプログラム | |
JP2022118548A (ja) | メモリコントローラ及びその制御方法 | |
JP2001256106A (ja) | メモリアクセスシステム | |
KR101866681B1 (ko) | 페이지 크기를 동적으로 제어하는 페이지 제어 방법 및 장치 | |
JP2011034214A (ja) | メモリ制御装置 | |
JP4569628B2 (ja) | ロードストアキューの制御方法及びその制御システム | |
JP2006331008A (ja) | メモリインタフェース | |
US20140095792A1 (en) | Cache control device and pipeline control method | |
JP2000172552A (ja) | メモリアクセス装置及びそのアクセス方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20240408 |