JP2023068341A - メモリコントローラ、メモリコントローラの制御方法およびプログラム - Google Patents
メモリコントローラ、メモリコントローラの制御方法およびプログラム Download PDFInfo
- Publication number
- JP2023068341A JP2023068341A JP2021179351A JP2021179351A JP2023068341A JP 2023068341 A JP2023068341 A JP 2023068341A JP 2021179351 A JP2021179351 A JP 2021179351A JP 2021179351 A JP2021179351 A JP 2021179351A JP 2023068341 A JP2023068341 A JP 2023068341A
- Authority
- JP
- Japan
- Prior art keywords
- refresh
- dram
- timing
- entire area
- timing adjustment
- 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
Images
Classifications
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40618—Refresh operations over multiple banks or interleaving
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40603—Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
【課題】DRAMの複数のリフレッシュ方式から適切なリフレッシュ方式を選択することにより、メモリ利用効率の低下を抑制できるようにする。【解決手段】メモリコントローラは、DRAMのリフレッシュ対象領域が異なる複数のリフレッシュ方式のうちの少なくとも一つが前記DRAMの全領域をリフレッシュするリフレッシュ方式であり、前記DRAMの全領域をリフレッシュするリフレッシュ方式でリフレッシュを実行する周期より長い周期で前記DRAMの全領域にアクセスできない特定の事象が発生するメモリコントローラであって、リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生するか否かに応じて、前記複数のリフレッシュ方式のうちの一つのリフレッシュ方式を選択する選択手段を有する。【選択図】図3
Description
本開示は、メモリコントローラ、メモリコントローラの制御方法およびプログラムに関する。
近年のDRAMの高速化に対応する上で、DRAMと正しく通信するためにクロック信号とコマンド信号間と、データストローブ信号とデータ信号間のタイミング調整やキャリブレーションが重要になっている。温度や電圧の変動に伴い、各信号間にタイミングのずれが生じた場合、DRAMと正しく通信できない事態が発生する。そのため、定期的にDRAMへのリードやライトなどのメモリアクセスを停止し、各信号間のタイミング調整やキャリブレーションを実行するが、実行中はメモリアクセスができないため、メモリ利用効率が低下してしまう。
これに対して、同じくメモリアクセスができなくなるリフレッシュ実行期間にタイミング調整とキャリブレーションを実行することで、メモリ利用効率を低下させない工夫がなされている。
特許文献1には、メモリデータのバースト長(BL)を第1BLから第2BLに切り替えられたことにより生じる第1BLと第2BLとの差に対応する期間に、少なくとも一つの遅延量を基準遅延量に近づくように制御するメモリコントローラが記載されている。
特許文献2には、メモリデバイスにデータを書き出すデータ出力バッファと、メモリデバイスからデータを読み出すとともに、第1のループバック経路でデータ出力バッファに接続するデータ入力バッファとを有する半導体装置が記載されている。
しかし、最近では、更なるメモリ利用効率の向上のために、DRAMの全領域をリフレッシュするオールバンクリフレッシュではなく、DRAMを構成する複数領域毎にリフレッシュするパーバンクリフレッシュを利用する傾向にある。パーバンクリフレッシュは、リフレッシュを実行している領域以外はメモリアクセスが可能であり、リフレッシュによりDRAMの全領域にメモリアクセスできなくなることはない。そのため、これまでのように、タイミング調整とキャリブレーションをリフレッシュ実行期間で行うことが困難である。
本開示の目的は、DRAMの複数のリフレッシュ方式から適切なリフレッシュ方式を選択することにより、メモリ利用効率の低下を抑制できるようにすることである。
メモリコントローラは、DRAMのリフレッシュ対象領域が異なる複数のリフレッシュ方式のうちの少なくとも一つが前記DRAMの全領域をリフレッシュするリフレッシュ方式であり、前記DRAMの全領域をリフレッシュするリフレッシュ方式でリフレッシュを実行する周期より長い周期で前記DRAMの全領域にアクセスできない特定の事象が発生するメモリコントローラであって、リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生するか否かに応じて、前記複数のリフレッシュ方式のうちの一つのリフレッシュ方式を選択する選択手段を有する。
本開示によれば、DRAMの複数のリフレッシュ方式から適切なリフレッシュ方式を選択することにより、メモリ利用効率の低下を抑制することができる。
(第1の実施形態)
図1は、第1の実施形態によるメモリコントローラ100の構成例を示す図である。メモリコントローラ100は、DRAM110とバスマスタ120に接続される。バスマスタ120は、アドレス情報とライトデータを含むメモリアクセス要求をメモリコントローラ100に送信する。メモリコントローラ100は、バスマスタ120から受信したメモリアクセス要求を基にDRAMコマンドを生成し、DRAMコマンドをDRAM110に送信する。また、メモリコントローラ100は、送信したDRAMコマンドに基づいて、DRAM110に対してデータ転送を行う。DRAM110は、複数の領域(複数のバンク)を有し、全領域(全バンク)を一度にリフレッシュするオールバンクリフレッシュと、任意の領域(任意のバンク)をリフレッシュするパーバンクリフレッシュが可能である。DRAM110は、パーバンクリフレッシュを複数回実行して全バンクをリフレッシュする途中でオールバンクリフレッシュを実行すると、パーバンクリフレッシュではリフレッシュされなかった残りバンクの全てをリフレッシュすることができる。
図1は、第1の実施形態によるメモリコントローラ100の構成例を示す図である。メモリコントローラ100は、DRAM110とバスマスタ120に接続される。バスマスタ120は、アドレス情報とライトデータを含むメモリアクセス要求をメモリコントローラ100に送信する。メモリコントローラ100は、バスマスタ120から受信したメモリアクセス要求を基にDRAMコマンドを生成し、DRAMコマンドをDRAM110に送信する。また、メモリコントローラ100は、送信したDRAMコマンドに基づいて、DRAM110に対してデータ転送を行う。DRAM110は、複数の領域(複数のバンク)を有し、全領域(全バンク)を一度にリフレッシュするオールバンクリフレッシュと、任意の領域(任意のバンク)をリフレッシュするパーバンクリフレッシュが可能である。DRAM110は、パーバンクリフレッシュを複数回実行して全バンクをリフレッシュする途中でオールバンクリフレッシュを実行すると、パーバンクリフレッシュではリフレッシュされなかった残りバンクの全てをリフレッシュすることができる。
なお、DRAM110は、コンデンサとトランジスタを含む記憶素子を有し、記憶素子に電荷が蓄えられた状態を「1」とし、記憶素子に電荷が蓄えられていない状態を「0」とすることで、データを記憶素子に記憶する。DRAM110は、記憶素子の電荷量が時間経過とともに減少するので、データの消失を防ぐために、定期的なリフレッシュ(データの再書き込み)を行う必要がある。
メモリコントローラ100は、DRAMコマンド生成部101と、リフレッシュタイミング生成部102と、タイミング調整指示部103と、タイミング調整部104を有する。
DRAMコマンド生成部101は、バスマスタ120から受信したメモリアクセス要求を基に、DRAM110に送信するリードライトコマンドを生成する。また、DRAMコマンド生成部101は、DRAM110をリフレッシュするためのリフレッシュコマンドも生成する。
リフレッシュタイミング生成部102は、パーバンクリフレッシュを実行するタイミングを生成する。リフレッシュタイミング生成部102は、DRAM110が要求するパーバンクリフレッシュの実行周期を計測し、その実行周期を計測する毎に、DRAMコマンド生成部101とタイミング調整指示部103にリフレッシュタイミングを送信する。
タイミング調整指示部103は、タイミング調整部104がタイミング調整とキャリブレーションを実行するタイミングを生成する。本実施形態でのタイミング調整とキャリブレーションは、パーバンクリフレッシュの実行周期の整数倍(N倍)の周期で実行する必要があるものとしている。タイミング調整指示部103は、リフレッシュタイミング生成部102からN個のリフレッシュタイミングを受信する度に、タイミング調整部104にタイミング調整指示を送信する。
タイミング調整部104は、タイミング調整指示部103からのタイミング調整指示を受信する。すると、タイミング調整部104は、DRAM110と正しく通信できるように、クロック信号とコマンド信号間と、データストローブ信号とデータ信号間のタイミング調整とキャリブレーションを実行する。タイミング調整部104は、DRAM110に対して、クロック信号とコマンド信号を送信する。また、タイミング調整部104は、DRAM110に対して、データストローブ信号とデータ信号を送受信する。
データストローブ信号は、リードライトコマンドに応じて、データを読み出すタイミングまたはデータを書き込むタイミングを示す信号である。
DRAMコマンド生成部101は、リフレッシュタイミング生成部102からリフレッシュタイミングを受信し、かつ、リフレッシュコマンドを発行する必要があれば、パーバンクリフレッシュコマンドとオールバンクリフレッシュコマンドのいずれかを生成する。DRAMコマンド生成部101は、N個のリフレッシュタイミングを受信する、つまり、タイミング調整指示が生成されるリフレッシュタイミングを受信すると、オールバンクリフレッシュコマンドを、それ以外であれば、パーバンクリフレッシュコマンドを生成する。
図2は、第1の実施形態によるDRAMコマンド生成部101の構成例を示す図である。DRAMコマンド生成部101は、リードライトコマンド生成部1011と、リフレッシュタイミング管理部1012と、リフレッシュコマンド生成部1013と、コマンド選択部1014を有する。
リードライトコマンド生成部1011は、バスマスタ120から受信したメモリアクセス要求を基に、DRAM110に送信するリードライトコマンドを生成する。
リフレッシュタイミング管理部1012は、タイミング調整検出用カウンタとパーバンクリフレッシュ制御用カウンタを有する。タイミング調整検出用カウンタは、受信したリフレッシュタイミングでタイミング調整が実行されるか否かを検出するためのカウンタである。タイミング調整検出用カウンタは、初期値が0であり、リフレッシュタイミングを受信するとカウントアップされ、N個のリフレッシュタイミングを受信すると0にクリアされる。
パーバンクリフレッシュ制御用カウンタは、パーバンクリフレッシュコマンドの発行を制御するためのカウンタである。パーバンクリフレッシュ制御用カウンタは、初期値が0であり、リフレッシュタイミングを受信するとカウントアップされ、M個のリフレッシュタイミングを受信すると0にクリアされる。Mは、(DRAM110の全バンク数÷1つのパーバンクリフレッシュコマンドでリフレッシュ対象となるバンク数)で計算される値である。
リフレッシュタイミング管理部1012が、タイミング調整検出用カウンタの値が(N-1)より小さい状態でリフレッシュタイミングを受信する場合を説明する。その場合、リフレッシュタイミング管理部1012は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。本実施形態では、パーバンクリフレッシュコマンドの対象バンクは、パーバンクリフレッシュ制御用カウンタの値を使用して指定するが、パーバンクリフレッシュ制御用カウンタの値を基に何らかの計算をした値で指定してもよい。
リフレッシュタイミング管理部1012が、タイミング調整検出用カウンタの値が(N-1)と同じである状態でリフレッシュタイミングを受信する場合を説明する。その場合、リフレッシュタイミング管理部1012は、オールバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。
この時、リフレッシュタイミング管理部1012は、パーバンクリフレッシュ制御用カウンタが(M-1)より小さい場合には、リフレッシュコマンド生成指示をマスクするためのリフレッシュコマンド生成指示マスクをアサートする。リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされている間、リフレッシュコマンド生成部1013にリフレッシュコマンド生成指示を送信しない。リフレッシュタイミング管理部1012は、パーバンクリフレッシュ制御カウンタが(M-1)と同じ値である場合にリフレッシュタイミングを受信すると、リフレッシュコマンド生成指示マスクをデアサートする。リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがデアサートされている間、リフレッシュコマンド生成部1013にリフレッシュコマンド生成指示を送信可能である。
リフレッシュコマンド生成部1013は、リフレッシュタイミング管理部1012からのリフレッシュコマンド生成指示に基づいて、パーバンクリフレッシュコマンド、または、オールバンクリフレッシュコマンドを生成する。
コマンド選択部1014は、リードライトコマンド生成部1011が生成するリードライトコマンド、または、リフレッシュコマンド生成部1013が生成するリフレッシュコマンドを選択する。そして、コマンド選択部1014は、選択したリードライトコマンドまたはリフレッシュコマンドをタイミング調整部104を介してDRAM110に送信する。
図3は、第1の実施形態によるDRAMコマンド生成部101の挙動を示す波形図である。図3では、タイミング調整は、パーバンクリフレッシュの実行周期の12倍(N=12)の周期で実行する必要があるものとしている。また、DRAM110の全バンク数は8であり、1つのパーバンクリフレッシュコマンドでリフレッシュ対象となるバンク数は1である。したがって、M=8である。以下、メモリコントローラ100の制御方法を説明する。
時刻T0では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T1では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信する。その受信時のタイミング調整検出用カウンタの値は、10であり、(N-1)ではないので、受信したリフレッシュタイミングでは、タイミング調整は実行されない。よって、リフレッシュタイミング管理部1012は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。リフレッシュコマンド生成部1013は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示を受信すると、パーバンクリフレッシュコマンドを生成する。
時刻T2~T4では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T5では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信する。その受信時のタイミング調整検出用カウンタの値は、11であり、(N-1)であるので、受信したリフレッシュタイミングによってタイミング調整は実行される。よって、リフレッシュタイミング管理部1012は、オールバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。リフレッシュコマンド生成部1013は、オールバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示を受信すると、オールバンクリフレッシュコマンドを生成する。また、リフレッシュタイミング管理部1012は、その受信時のパーバンクリフレッシュ制御用カウンタの値が、3であり、(M-1)ではないので、リフレッシュコマンド生成指示マスクをアサートする。
時刻T6~T8では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T9では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信するが、リフレッシュコマンド生成指示マスクがアサートされているため、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。
時刻T10~T12では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T13では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信するが、リフレッシュコマンド生成指示マスクがアサートされているため、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。
時刻T14~T16では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T17では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信するが、リフレッシュコマンド生成指示マスクがアサートされているため、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。
時刻T18~T20では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T21では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信するが、リフレッシュコマンド生成指示マスクがアサートされているため、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。リフレッシュタイミング管理部1012は、その受信時のパーバンクリフレッシュ制御用カウンタの値が7であり、(M-1)であるので、リフレッシュタイミング受信によりリフレッシュコマンド生成指示マスクをデアサートする。
時刻T22~T24では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
時刻T25では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信する。その受信時のタイミング調整検出用カウンタの値は、4であり、(N-1)ではないので、受信したリフレッシュタイミングでは、タイミング調整は実行されない。よって、リフレッシュタイミング管理部1012は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。リフレッシュコマンド生成部1013は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示を受信すると、パーバンクリフレッシュコマンドを生成する。
時刻T26~T28では、リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信しない。
なお、本実施形態では、タイミング調整指示部103がタイミング調整とキャリブレーションを実行するタイミングを生成する。しかし、リフレッシュタイミング管理部1012が、リフレッシュタイミング生成部102からN個のリフレッシュタイミングを受信する度に、タイミング調整部104にタイミング調整指示を送信してもよい。
以上のように、リフレッシュタイミング生成部102は、クロック信号の周期の4倍の周期で、リフレッシュタイミングを生成する。タイミング調整指示部103は、リフレッシュタイミング生成部102からN個(12個)のリフレッシュタイミングを受信する度に、タイミング調整部104にタイミング調整指示を送信する。タイミング調整部104は、タイミング調整指示部103からのタイミング調整指示を受信すると、クロック信号とコマンド信号間と、データストローブ信号とデータ信号間のタイミング調整とキャリブレーションを実行する。タイミング調整とキャリブレーションは、温度や電圧変化に対応するため、定期的に実行する必要がある。タイミング調整とキャリブレーションの実行周期は、リフレッシュタイミングの周期のN倍(12倍)の周期である。
リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信すると、タイミング調整検出用カウンタとパーバンクリフレッシュ制御用カウンタをカウントアップする。タイミング調整検出用カウンタの値が(N-1)である場合には、タイミング調整とキャリブレーションが行われるタイミングである。タイミング調整検出用カウンタの値が(N-1)でない場合には、タイミング調整とキャリブレーションが行われないタイミングである。
タイミング調整部104がタイミング調整とキャリブレーションを行っている期間では、メモリコントローラ100は、DRAM110に対して、アクセスすることができなくなってしまう。
オールバンクリフレッシュは全バンクをリフレッシュするので、DRAM110がオールバンクリフレッシュを実行している期間では、メモリコントローラ100がDRAM110にアクセスすることはない。したがって、DRAM110がオールバンクリフレッシュを実行している期間では、タイミング調整部104は、タイミング調整とキャリブレーションを行うことが可能である。
これに対し、パーバンクリフレッシュは一部のバンクをリフレッシュするので、DRAM110がパーバンクリフレッシュを実行している期間では、メモリコントローラ100は、DRAM110のリフレッシュを行っていないバンクにアクセス可能である。したがって、DRAM110がパーバンクリフレッシュを実行している期間では、タイミング調整部104は、タイミング調整とキャリブレーションを行うことができない。
リフレッシュタイミング管理部1012がリフレッシュタイミングを受信したとき、タイミング調整検出用カウンタの値が(N-1)である場合には、タイミング調整とキャリブレーションが行われる。その場合、リフレッシュタイミング管理部1012は、オールバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。
リフレッシュタイミング管理部1012がリフレッシュタイミングを受信したとき、タイミング調整検出用カウンタの値が(N-1)でない場合には、タイミング調整とキャリブレーションが行われない。その場合、リフレッシュタイミング管理部1012は、パーバンクリフレッシュ制御用カウンタの値に応じて、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。
オールバンクリフレッシュの実行期間は、パーバンクリフレッシュの実行期間より長い。オールバンクリフレッシュの実行期間では、メモリコントローラ100が、長期間、DRAM110にアクセスすることができない。そこで、オールバンクリフレッシュの後では、リフレッシュタイミング管理部1012は、DRAM110へのアクセス可能期間を一定期間確保にするため、リフレッシュコマンド生成指示マスクをアサートする。リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされている期間では、リフレッシュタイミングを受信しても、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。これにより、この期間では、パーバンクリフレッシュが行われないので、メモリコントローラ100は、オールバンクリフレッシュの後、DRAM110へのアクセス可能期間を一定期間確保にすることができる。
リフレッシュタイミング管理部1012は、リフレッシュタイミングを受信したとき、タイミング調整検出用カウンタの値が(N-1)でない場合、リフレッシュコマンド生成指示マスクに応じて、リフレッシュコマンド生成指示を送信する。具体的には、リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされていない期間では、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。また、リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされていない期間では、リフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信しない。
本実施形態によれば、メモリコントローラ100は、タイミング調整とキャリブレーションの実行タイミングであるか否かに応じて、オールバンクリフレッシュまたはパーバンクリフレッシュのリフレッシュコマンドを生成する。タイミング調整とキャリブレーションは、オールバンクリフレッシュの実行中に行われるので、DRAM110の利用効率の低減を抑制することができる。また、パーバンクリフレッシュの実行中には、タイミング調整とキャリブレーションが行われないので、DRAM110の利用効率の低減を抑制することができる。また、オールバンクリフレッシュの後のリフレッシュコマンド生成指示マスクがアサートされている期間では、リフレッシュコマンド生成指示が送信されないので、DRAM110の利用効率を向上させることができる。
(第2の実施形態)
図4は、第2の実施形態によるメモリコントローラ100の構成例を示す図である。第2の実施形態は、第1の実施形態によるDRAMコマンド生成部101を異なる形態にしたものであり、タイミング調整とキャリブレーションの実行周期がパーバンクリフレッシュの実行周期の整数倍でない場合にも対応する実施形態である。以下、第2の実施形態が第1の実施形態と異なる点を説明する。
図4は、第2の実施形態によるメモリコントローラ100の構成例を示す図である。第2の実施形態は、第1の実施形態によるDRAMコマンド生成部101を異なる形態にしたものであり、タイミング調整とキャリブレーションの実行周期がパーバンクリフレッシュの実行周期の整数倍でない場合にも対応する実施形態である。以下、第2の実施形態が第1の実施形態と異なる点を説明する。
図4のメモリコントローラ100は、図1のメモリコントローラ100に対して、リフレッシュタイミング生成部102とタイミング調整指示部103を削除したものであり、DRAMコマンド生成部101とタイミング調整部104を有する。
DRAMコマンド生成部101は、パーバンクリフレッシュの実行周期とタイミング調整の実行周期を計測する。DRAMコマンド生成部101は、パーバンクリフレッシュの実行タイミングになると、次のパーバンクリフレッシュの実行タイミングまでの間にタイミング調整の実行タイミングが発生するか否かを判定する。DRAMコマンド生成部101は、発生すると判定した場合には、オールバンクリフレッシュコマンドを生成し、発生しないと判定した場合には、パーバンクリフレッシュコマンドを生成する。DRAMコマンド生成部101は、オールバンクリフレッシュコマンドを生成する場合には、タイミング調整部104にタイミング調整指示を送信する。
タイミング調整部104は、DRAMコマンド生成部101からのタイミング調整指示を受信する。すると、タイミング調整部104は、DRAM110と正しく通信できるように、クロック信号とコマンド信号間と、データストローブ信号とデータ信号間のタイミング調整とキャリブレーションを実行する。
図5は、第2の実施形態によるDRAMコマンド生成部101の構成例を示す図である。DRAMコマンド生成部101は、リードライトコマンド生成部1011と、リフレッシュタイミング管理部1012と、リフレッシュコマンド生成部1013と、コマンド選択部1014を有する。さらに、DRAMコマンド生成部101は、リフレッシュ実行周期計測部1015と、タイミング調整実行周期計測部1016を有する。リードライトコマンド生成部1011とリフレッシュコマンド生成部1013とコマンド選択部1014は、第1の実施形態と同様である。
リフレッシュ実行周期計測部1015は、パーバンクリフレッシュの実行周期を計測するカウントダウンタイマを有する。リフレッシュ実行周期計測部1015は、タイマの初期値がパーバンクリフレッシュの実行周期であり、現在のタイマ値をリフレッシュタイミング管理部1012に出力する。リフレッシュ実行周期計測部1015は、タイマ値が0になると、パーバンクリフレッシュの実行周期をタイマにセットして、再度計測を開始する。
タイミング調整実行周期計測部1016は、タイミング調整の実行周期を計測するカウントダウンタイマを有する。タイミング調整実行周期計測部1016は、タイマの初期値がタイミング調整の実行周期であり、現在のタイマ値をリフレッシュタイミング管理部1012に出力する。タイミング調整実行周期計測部1016は、タイマ値が0になると、タイミング調整の実行周期をタイマにセットして、再度計測を開始する。また、タイミング調整実行周期計測部1016は、リフレッシュタイミング管理部1012がタイミング調整指示を送信した場合も、タイマにタイミング実行周期をセットして、再度計測を開始する。
リフレッシュタイミング管理部1012は、パーバンクリフレッシュ制御用カウンタを有する。パーバンクリフレッシュ制御用カウンタは、パーバンクリフレッシュコマンドの発行を制御するためのカウンタである。パーバンクリフレッシュ制御用カウンタは、初期値が0であり、リフレッシュ実行周期計測部1015がリフレッシュ実行周期を計測するとカウントアップされる。また、パーバンクリフレッシュ制御用カウンタは、リフレッシュ実行周期計測部1015がM回リフレッシュ実行周期を計測すると、0にクリアされる。Mは、(DRAM110の全バンク数÷1つのパーバンクリフレッシュコマンドでリフレッシュ対象となるバンク数)で計算される値である。
リフレッシュタイミング管理部1012は、リフレッシュ実行周期計測部1015のタイマ値が0になると、タイミング調整実行周期計測部1016のタイマ値がパーバンクリフレッシュ実行周期以上であるか否かを判定する。これにより、リフレッシュタイミング管理部1012は、現在と次のパーバンクリフレッシュ実行の間で、タイミング調整を実行する必要があるか否かを判定する。
まず、タイミング調整実行周期計測部1016のタイマ値がパーバンクリフレッシュ実行周期以上である場合を説明する。その場合、リフレッシュタイミング管理部1012は、パーバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。
次に、タイミング調整実行周期計測部1016のタイマ値がパーバンクリフレッシュ実行周期未満である場合を説明する。その場合、リフレッシュタイミング管理部1012は、オールバンクリフレッシュコマンドの生成を指示するリフレッシュコマンド生成指示をリフレッシュコマンド生成部1013に送信する。この時、リフレッシュタイミング管理部1012は、パーバンクリフレッシュ制御用カウンタの値が(M-1)より小さい場合には、リフレッシュコマンド生成指示をマスクするリフレッシュコマンド生成指示マスクをアサートする。
リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされている間、リフレッシュコマンド生成部1013にリフレッシュコマンド生成指示を送信しない。リフレッシュコマンド生成指示マスクは、パーバンクリフレッシュ制御カウンタが(M-1)と同じ値である場合に、リフレッシュ実行周期計測部1015のタイマ値が0になると、デアサートされる。リフレッシュタイミング管理部1012は、リフレッシュコマンド生成指示マスクがアサートされていない間、リフレッシュコマンド生成部1013にリフレッシュコマンド生成指示を送信可能である。また、リフレッシュタイミング管理部1012は、オールバンクリフレッシュコマンド生成を指示する場合、タイミング調整指示をタイミング調整部104に送信する。
本実施形態によれば、メモリコントローラ100は、タイミング調整とキャリブレーションの実行周期がパーバンクリフレッシュの実行周期の整数倍でない場合にも対応可能である。本実施形態は、第1の実施形態と同様の効果を得ることができる。
第1および第2の実施形態では、タイミング調整部104は、データストローブ信号とデータ信号間のタイミング調整を実行すると説明したが、メモリコントローラ100が出力するデータ用クロック信号とデータ信号間のタイミング調整を実行してもよい。
以上のように、メモリコントローラ100は、DRAM110のリフレッシュ対象領域が異なる複数のリフレッシュ方式を選択することができる。複数のリフレッシュ方式は、オールバンクリフレッシュとパーバンクリフレッシュを含む。オールバンクリフレッシュは、DRAM110の全領域をリフレッシュするリフレッシュ方式である。パーバンクリフレッシュは、DRAM110の一部の領域をリフレッシュするリフレッシュ方式である。
メモリコントローラ100では、オールバンクリフレッシュでリフレッシュを実行する周期より長い周期でDRAM110の全領域にアクセスできない特定の事象が発生する。DRAM110の全領域にアクセスできない特定の事象は、例えば、メモリコントローラ100がDRAM110との通信を行うためのタイミング調整またはキャリブレーションである。
DRAMコマンド生成部101は、選択部として機能し、リフレッシュ実行期間にDRAM110の全領域にアクセスできない特定の事象が発生するか否かに応じて、複数のリフレッシュ方式のうちの一つのリフレッシュ方式を選択する。リフレッシュ実行期間は、図1のリフレッシュタイミング生成部102が生成するリフレッシュタイミングに基づくリフレッシュ実行期間、または、図5のリフレッシュ実行周期計測部1015が計測するリフレッシュ実行周期に基づくリフレッシュ実行期間である。リフレッシュ実行期間は、所定の周期で設けられる。
DRAMコマンド生成部101は、リフレッシュ実行期間にDRAM110の全領域にアクセスできない特定の事象が発生する場合には、オールバンクリフレッシュを選択する。また、DRAMコマンド生成部101は、リフレッシュ実行期間にDRAM110の全領域にアクセスできない特定の事象が発生しない場合には、パーバンクリフレッシュを選択する。
例えば、DRAMコマンド生成部101は、各リフレッシュ実行期間で、リフレッシュ実行期間にタイミング調整またはキャリブレーションが発生する場合には、オールバンクリフレッシュを選択する。また、DRAMコマンド生成部101は、各リフレッシュ実行期間で、リフレッシュ実行期間にタイミング調整またはキャリブレーションが発生しない場合には、パーバンクリフレッシュを選択する。
図3では、DRAMコマンド生成部101は、時刻T5のリフレッシュタイミングに基づくリフレッシュ実行期間で、オールバンクリフレッシュを選択する。そして、DRAMコマンド生成部101は、オールバンクリフレッシュを選択したリフレッシュ実行期間の直後の一または複数のリフレッシュ実行期間では、DRAM110のリフレッシュを行わないように制御する。その期間では、リフレッシュコマンド生成指示マスクがアサートされている。
以上のように、メモリコントローラ100は、DRAM110に接続され、リフレッシュ対象領域が異なる複数のリフレッシュ方式を有する様々なメモリコントローラに利用できる。メモリコントローラ100は、リフレッシュ実行期間にタイミング調整やキャリブレーションの実行という特定の事象が発生するかにより、複数のリフレッシュ方式から適切なリフレッシュ方式を選択することで、メモリ利用効率の低下を抑制できる。
(その他の実施形態)
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
本開示は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
なお、上述の実施形態は、何れも本開示を実施するにあたっての具体例を示したものに過ぎず、これらによって本開示の技術的範囲が限定的に解釈されない。すなわち、本開示はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100:メモリコントローラ、101:DRAMコマンド生成部、102:リフレッシュタイミング生成部、103:タイミング調整指示部、104:タイミング調整部、110:DRAM、120:バスマスタ、1011:リードライトコマンド生成部、1012:リフレッシュタイミング管理部、1013:リフレッシュコマンド生成部、1014:コマンド選択部、1015:リフレッシュ実行周期計測部、1016:タイミング調整実行周期計測部
Claims (8)
- DRAMのリフレッシュ対象領域が異なる複数のリフレッシュ方式のうちの少なくとも一つが前記DRAMの全領域をリフレッシュするリフレッシュ方式であり、前記DRAMの全領域をリフレッシュするリフレッシュ方式でリフレッシュを実行する周期より長い周期で前記DRAMの全領域にアクセスできない特定の事象が発生するメモリコントローラであって、
リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生するか否かに応じて、前記複数のリフレッシュ方式のうちの一つのリフレッシュ方式を選択する選択手段を有することを特徴とするメモリコントローラ。 - 前記複数のリフレッシュ方式は、
前記DRAMの全領域をリフレッシュするリフレッシュ方式と、
前記DRAMの一部の領域をリフレッシュするリフレッシュ方式とを含むことを特徴とする請求項1に記載のメモリコントローラ。 - 前記選択手段は、
前記リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生する場合には、前記DRAMの全領域をリフレッシュするリフレッシュ方式を選択し、
前記リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生しない場合には、前記DRAMの一部の領域をリフレッシュするリフレッシュ方式を選択することを特徴とする請求項2に記載のメモリコントローラ。 - 前記DRAMの全領域にアクセスできない特定の事象は、前記DRAMとの通信を行うためのタイミング調整またはキャリブレーションであることを特徴とする請求項1~3のいずれか1項に記載のメモリコントローラ。
- 前記DRAMの全領域にアクセスできない特定の事象は、前記DRAMとの通信を行うためのタイミング調整またはキャリブレーションであり、
前記リフレッシュ実行期間は、所定の周期で設けられ、
前記選択手段は、各リフレッシュ実行期間で、前記リフレッシュ実行期間に前記タイミング調整または前記キャリブレーションが発生する場合には、前記DRAMの全領域をリフレッシュするリフレッシュ方式を選択し、前記リフレッシュ実行期間に前記タイミング調整または前記キャリブレーションが発生しない場合には、前記DRAMの一部の領域をリフレッシュするリフレッシュ方式を選択することを特徴とする請求項3に記載のメモリコントローラ。 - 前記選択手段は、前記DRAMの全領域をリフレッシュするリフレッシュ方式を選択したリフレッシュ実行期間の直後の一または複数のリフレッシュ実行期間では、前記DRAMのリフレッシュを行わないように制御することを特徴とする請求項5に記載のメモリコントローラ。
- DRAMのリフレッシュ対象領域が異なる複数のリフレッシュ方式のうちの少なくとも一つが前記DRAMの全領域をリフレッシュするリフレッシュ方式であり、前記DRAMの全領域をリフレッシュするリフレッシュ方式でリフレッシュを実行する周期より長い周期で前記DRAMの全領域にアクセスできない特定の事象が発生するメモリコントローラの制御方法であって、
リフレッシュ実行期間に前記DRAMの全領域にアクセスできない特定の事象が発生するか否かに応じて、前記複数のリフレッシュ方式のうちの一つのリフレッシュ方式を選択する選択ステップを有することを特徴とするメモリコントローラの制御方法。 - コンピュータを、請求項1~6のいずれか1項に記載されたメモリコントローラとして機能させるためのプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021179351A JP2023068341A (ja) | 2021-11-02 | 2021-11-02 | メモリコントローラ、メモリコントローラの制御方法およびプログラム |
US18/051,811 US20230133458A1 (en) | 2021-11-02 | 2022-11-01 | Memory controller, control method for memory controller, and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021179351A JP2023068341A (ja) | 2021-11-02 | 2021-11-02 | メモリコントローラ、メモリコントローラの制御方法およびプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023068341A true JP2023068341A (ja) | 2023-05-17 |
Family
ID=86144829
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2021179351A Pending JP2023068341A (ja) | 2021-11-02 | 2021-11-02 | メモリコントローラ、メモリコントローラの制御方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US20230133458A1 (ja) |
JP (1) | JP2023068341A (ja) |
-
2021
- 2021-11-02 JP JP2021179351A patent/JP2023068341A/ja active Pending
-
2022
- 2022-11-01 US US18/051,811 patent/US20230133458A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230133458A1 (en) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3662475B1 (en) | Partial refresh technique to save memory refresh power | |
JP6169658B2 (ja) | 有向自動リフレッシュ同期 | |
JP5063041B2 (ja) | 向上されたリフレッシュメカニズムを有するダイナミック半導体メモリ | |
EP3422191B1 (en) | Semiconductor device and data processing system | |
US10725698B2 (en) | Memory controller and control method thereof | |
KR20180128800A (ko) | 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법 | |
JP3922487B2 (ja) | メモリ制御装置および方法 | |
CN110556139B (zh) | 用以控制存储器的电路及相关的方法 | |
JP4275033B2 (ja) | 半導体記憶装置とテスト回路及び方法 | |
CN110058793B (zh) | 一种刷新处理方法、装置、系统及内存控制器 | |
CN112612596B (zh) | 命令调度方法、装置、设备和存储介质 | |
KR20080069298A (ko) | 반도체 메모리 장치 및 그의 동작 제어방법 | |
KR20220062710A (ko) | 로우 해머를 완화시키는 메모리 장치 및 이를 이용하는 반도체 시스템 | |
JP2023068341A (ja) | メモリコントローラ、メモリコントローラの制御方法およびプログラム | |
JP7373034B1 (ja) | 擬似スタティックランダムアクセスメモリ | |
US20220319582A1 (en) | Memory management apparatus, memory management method, and computer-readable recording medium storing memory management program | |
US12026107B2 (en) | Mitigating interference between commands for different access requests in LPDDR4 memory system | |
US20200331485A1 (en) | Command control system, vehicle, command control method and non-transitory computer-readable medium | |
JP4561089B2 (ja) | 記憶装置 | |
US20230266894A1 (en) | Memory control apparatus, method for controlling memory control apparatus, and storage medium | |
KR20240037100A (ko) | 의사 스태틱 랜덤 액세스 메모리 | |
TWI736155B (zh) | 用於多個記憶裝置的控制方法及相關的記憶體系統 | |
CN109582615B (zh) | 一种ddr3控制系统 | |
TW202407702A (zh) | 虛擬靜態隨機存取記憶體 | |
KR20210036440A (ko) | 메모리 저장 장치 및 동작 방법 |