TWI685840B - Controller and control method for dynamic random access memory - Google Patents
Controller and control method for dynamic random access memory Download PDFInfo
- Publication number
- TWI685840B TWI685840B TW106140707A TW106140707A TWI685840B TW I685840 B TWI685840 B TW I685840B TW 106140707 A TW106140707 A TW 106140707A TW 106140707 A TW106140707 A TW 106140707A TW I685840 B TWI685840 B TW I685840B
- Authority
- TW
- Taiwan
- Prior art keywords
- level
- time
- stack
- time point
- recharge
- Prior art date
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
Landscapes
- Engineering & Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Dram (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Abstract
Description
本案係有關於動態隨機存取記憶體(DRAM)之再充電(refresh)排程。 This case is about the refresh schedule of dynamic random access memory (DRAM).
動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)是一種半導體記憶體,是利用電容內儲存電荷的多寡來代表一個二進位位元(bit)是1還是0。由於電容會有漏電的現象,因此動態隨機存取記憶體(DRAM)有再充電(refresh)需求,以維護所儲存的數據可靠度。 Dynamic random access memory (Dynamic Random Access Memory, DRAM) is a semiconductor memory that uses the amount of charge stored in the capacitor to represent whether a binary bit is 1 or 0. Due to the leakage of capacitors, dynamic random access memory (DRAM) needs to be recharged to maintain the reliability of the stored data.
本案有關於動態隨機存取記憶體(DRAM)之再充電(refresh)排程。 This case relates to the refresh schedule of dynamic random access memory (DRAM).
根據本案一種實施方式實現的一種動態隨機存取記憶體控制器包括一指令佇列(command queue)以及一微控制器。該指令佇列使要發送至一動態隨機存取記憶體的操作指令於其中排隊。該微控制器視該指令佇列的內容,於一監控時間單位內複數個第一階層單堆再充電時間點對該動態隨機存取記憶體的一第一階層(rank)的複數個記憶單元堆逐堆進行再充電(per-bank refreshing)。該微控制器更視該指令佇列的內容, 於該監控時間單位內複數個第二階層單堆再充電時間點對該動態隨機存取記憶體的一第二階層的複數個記憶單元堆逐堆進行再充電。該等第二階層單堆再充電時間點與該等第一階層單堆再充電時間點一對一交錯。如此設計使得動態隨機存取記憶體控制器之運算資源得以不過度集中在再充電上。 A dynamic random access memory controller implemented according to an embodiment of the present application includes a command queue and a microcontroller. The command queue queues the operation commands to be sent to a dynamic random access memory. According to the content of the command queue, the microcontroller controls a plurality of first-rank (rank) memory cells of the dynamic random access memory in a plurality of first-tier single-stack recharge time points within a monitoring time unit Recharge (per-bank refreshing) stack by stack. The microcontroller also looks at the content of the command queue, and stacks a plurality of second-level single-stack multiple-level memory cells of the dynamic random-access memory within the monitoring time unit at a recharge time point The stack is recharged. The recharging time points of the second layer single stack and the recharging time points of the first layer single stack are interleaved one-to-one. Such a design allows the computing resources of the dynamic random access memory controller not to be excessively concentrated on recharging.
本案概念更可實現為動態隨機存取記憶體控制方法,包括以下步驟:提供一指令佇列,使要發送至一動態隨機存取記憶體的操作指令於其中排隊;視該指令佇列的內容,於一監控時間單位內複數個第一階層單堆再充電時間點對該動態隨機存取記憶體的一第一階層的複數個記憶單元堆逐堆進行再充電;以及視該指令佇列的內容,於該監控時間單位內複數個第二階層單堆再充電時間點對該動態隨機存取記憶體的一第二階層的複數個記憶單元堆逐堆進行再充電。該等第二階層單堆再充電時間點與該等第一階層單堆再充電時間點一對一交錯。 The concept of this case can also be implemented as a dynamic random access memory control method, including the following steps: providing a command queue to queue operation commands to be sent to a dynamic random access memory; depending on the content of the command queue , Recharging the multiple first-level single-stack multiple-memory unit stacks of the dynamic random-access memory one by one within a monitoring time unit; and depending on the command queue In the monitoring time unit, a plurality of second-level single stack recharge time points in the monitoring time unit recharge the plurality of second-level multiple memory cell stacks of the dynamic random access memory one by one. The recharging time points of the second layer single stack and the recharging time points of the first layer single stack are interleaved one-to-one.
本案所揭露之前述動態隨機存取記憶體控制器以及控制方法為多個階層提供階層交錯的逐堆再充電,使得系統資源不會長時間被再充電需求獨佔。動態隨機存取記憶體的操作指令因而得以順暢執行。 The aforementioned dynamic random access memory controller and control method disclosed in this case provide hierarchical staggered stack-by-stack recharging for multiple hierarchies, so that system resources will not be monopolized by recharging requirements for a long time. The operation instructions of the dynamic random access memory can be smoothly executed.
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。 The following describes the embodiments in detail and the accompanying drawings to explain the content of the present invention in detail.
100‧‧‧動態隨機存取記憶體 100‧‧‧Dynamic Random Access Memory
102‧‧‧動態隨機存取記憶體控制器 102‧‧‧Dynamic Random Access Memory Controller
104‧‧‧指令佇列 104‧‧‧Command queue
106‧‧‧微控制器 106‧‧‧Microcontroller
108‧‧‧晶片組 108‧‧‧ Chipset
bank11…bank18、bank21…bank28‧‧‧記憶體單元堆 bank11…bank18, bank21…bank28‧‧‧Memory cell stack
rank1、rank2‧‧‧階層(儲存空間) rank1, rank2‧‧‧ hierarchy (storage space)
t11…t18、t21…t28‧‧‧第一、第二階層單堆再充電時間點 t11...t18, t21...t28
T1_1、T1_2、T2_1、T2_2‧‧‧時間點 T1_1, T1_2, T2_1, T2_2 ‧‧‧
tREFI‧‧‧監控時間單位 tREFI‧‧‧Monitoring time unit
tRFCpr‧‧‧時限 tRFCpr‧‧‧ time limit
S302‧‧‧步驟,計數器Cnt1減1 S302‧‧‧Step, counter Cnt1 decrements by 1
S304‧‧‧步驟,有對應於階層rank1之存取指令等待於指令佇列? In step S304‧‧‧, there is an access command corresponding to level rank1 waiting for the command queue?
S306‧‧‧步驟,計數器Cnt1>=8? S306‧‧‧Step, counter Cnt1>=8?
S308‧‧‧步驟,此輪監控時間單位tREFI不再對階層rank1做再充電 Step S308‧‧‧, this round of monitoring time unit tREFI no longer recharges rank1
S310‧‧‧步驟,對階層rank1一次性再充電(計數器Cnt1加1) Step S310‧‧‧recharge the rank1 once (counter Cnt1 plus 1)
S312‧‧‧步驟,計時tRFCpr S312‧‧‧step, time tRFCpr
S314‧‧‧步驟,有對應於階層rank1之存取指令等待於指令佇列? In step S314‧‧‧, there is an access command corresponding to rank rank1 waiting for the command queue?
S316‧‧‧步驟,計數器Cnt1>=8? Step S316‧‧‧, counter Cnt1>=8?
S318‧‧‧步驟,對階層rank1一次性再充電(計數器Cnt1加1) Step S318‧‧‧recharge the rank1 once (counter Cnt1 plus 1)
S320‧‧‧此輪監控時間單位tREFI不再對階層rank1做再充電 S320‧‧‧This time monitoring unit tREFI no longer recharges rank rank1
S322‧‧‧計數器Cnt1>=1? S322‧‧‧Counter Cnt1>=1?
S324‧‧‧步驟,對階層rank1之複數個記憶單元堆bank11~bank18逐堆再充電(計數器Cnt1加1) S324‧‧‧Step, recharge each of the multiple memory cell stacks bank11~bank18 of rank rank1 (counter Cnt1 plus 1)
S402‧‧‧步驟,階層rank1一次性再充電送出? S402‧‧‧Step, rank1 is recharged and sent out at one time?
S404‧‧‧步驟,已滿足時限tRFCpr? Step S404‧‧‧ Has the time limit tRFCpr been met?
S406‧‧‧步驟,調降該指令佇列中對應於階層rank1的存取指令之優先權 Step S406‧‧‧ Decrease the priority of the access command corresponding to rank rank1 in the command queue
S408‧‧‧步驟,復原該指令佇列中對應於階層rank1之存取指令之優先權 Step S408‧‧‧ restore the priority of the access command corresponding to the rank rank1 in the command queue
S410‧‧‧步驟,監控階層rank1之記憶單元堆bank11~bank18個別的再充電請求 Step S410‧‧‧ monitor the individual recharge requests of bank11~bank18 of the memory cell stack of rank1
S412‧‧‧步驟,調升該指令佇列中對應於階層rank1除記憶單元堆bank1i外的其他記憶單元堆的存取指令之優先權 Step S412‧‧‧ increase the priority of the access command of the memory unit stack corresponding to the rank rank1 except the memory unit stack bank1i in the command queue
S414‧‧‧步驟,已滿足時限tRFCpb? Step S414‧‧‧ Has the time limit tRFCpb been met?
S416‧‧‧步驟,調降該指令佇列中對應於記憶單元堆bank1i的存取指令之優先權 Step S416‧‧‧Decrease the priority of the access command corresponding to the memory cell bank bank1i in the command queue
S418‧‧‧步驟,復原該指令佇列中對應於階層rank1之存取指令之優先權Step S418‧‧‧ restore the priority of the access command corresponding to rank rank1 in the command queue
第1圖為方塊圖,根據本案一種實施方式圖解一動態隨機存 取記憶體100以及相關之動態隨機存取記憶體控制器102;第2圖為時序圖,根據本案一種實施方式劃分一個監控時間單位tREFI;第3A、3B圖為流程圖,圖解微控制器106所實施之階層rank1之再充電指令排程,每監控時間單位tREFI實施一次;以及第4A、4B圖為流程圖,圖解微控制器106所實施之階層rank1存取指令排程。 Figure 1 is a block diagram illustrating a dynamic
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。 The following description lists various embodiments of the present invention. The following description introduces the basic concept of the present invention and is not intended to limit the content of the present invention. The actual scope of invention shall be defined in accordance with the scope of patent application.
第1圖為方塊圖,根據本案一種實施方式圖解一動態隨機存取記憶體100以及相關之動態隨機存取記憶體控制器102。動態隨機存取記憶體控制器102包括一指令佇列104以及一微控制器106。指令佇列104使要發送至該動態隨機存取記憶體102的操作指令於其中排隊。在微控制器106的運作下,動態隨機存取記憶體100將以最佳化方式再充電,避免阻礙該指令佇列104中操作指令之執行。微控制器106可包括運算電路以及運算程式碼。第1圖實施例是將動態隨機存取記憶體控制器102實現在晶片組108,值得注意的是,在晶片組108與中央處理單元(未繪示)集成在同一片上系統(System on a Chip,SoC)的實施方式中,動態隨機存取記憶體控制器102實現於該片上系統晶片上;在傳統南北橋分立的晶片組108的實施方式中,動態隨機存取記憶體控制器102,更具體而言,係實現於晶片組108 的北橋上,但並不意圖限定之。 FIG. 1 is a block diagram illustrating a dynamic
動態隨機存取記憶體100的記憶單元可由兩條通道(channels)讀取,每條通道又包括多組記憶體模組(Memory Module,例如Dual In-line Memory Module,DIMM),每個記憶體模組又包括多組記憶體顆粒(chip),連結至同一個片選(Chip Select,CS)信號的一組記憶體顆粒稱之為一階層(rank)。舉例而言,如第1圖所示,一個記憶體模組的儲存空間劃分為階層rank1以及階層rank2。同一階層的儲存空間(rank)又可劃分為多個記憶單元堆(banks)。各記憶單元堆(bank)由一組字線以及位線控制。如圖所示,階層rank1的儲存空間包括八個記憶單元堆bank11…bank18,階層rank2的儲存空間包括八個記憶單元堆bank21…bank28。 The memory unit of the dynamic
動態隨機存取記憶體100之再充電可以「階層(rank)」為單位,也可以「記憶單元堆(bank)」為單位。一階層可被一次性再充電(per-rank refreshing),也可被逐堆再充電(per-bank refreshing)。以下標號一次性再充電(per-rank refreshing)的耗時為tRFCpr,將使得該階層在時限tRFCpr都被佔用無法存取。以下標號單堆再充電(per-bank refreshing)的耗時為tRFCpb,佔用對象是單個記憶單元堆(bank)。時限tRFCpr通常遠長於時限tRFCpb。一種實施方式中,時限tRFCpr長達210ns,而時限tRFCpb僅90ns。動態隨機存取記憶體100的再充電是依監控時間單位(以下標號tREFI)排程。一階層之完全再充電(可能採一次性再充電per-rank refreshing或是一系列的逐堆再充電per-bank refreshing)通常被設計成每個監控時間單位 tREFI中發生一回。但在本發明中,一次性再充電(per-rank refreshing)可集中反覆發生後、在後續數個監控時間單位tREFI省略:例如,一階層甚至可在一監控時間單位tREFI反覆一次性再充電達8回,而後續8個監控時間單位tREFI則不發生再充電。在本發明中,一次性再充電(per-rank refreshing)更可被推遲,至後續監控時間單位tREFI集中反覆發生:例如,一階層甚至可在前8個監控時間單位tREFI均不發生再充電,而在最後一監控時間單位tREFI反覆一次性再充電8回。一種實施方式中,監控時間單位tREFI長達7.8us或者3.9us,遠長於上述時限tRFCpr及時限tRFCpb。 The recharging of the dynamic
第2圖為時序圖,根據本案一種實施方式劃分一個監控時間單位tREFI。如圖所示,各監控時間單位tREFI可提供第一階層單堆再充電時間點t11…t18以及第二階層單堆再充電時間點t21…t28,彼此一對一交錯一即順序為t11→t21→t12→t22→t13→t23→t14→t24→t15→t25→t16→t26→t17→t27→t18→t28。第一階層單堆再充電時間點t11…t18對應階層rank1的記憶單元堆bank11…bank18。第二階層單堆再充電時間點t21…t28對應階層rank2的記憶單元堆bank21…bank28。微控制器106可根據指令佇列104的內容,於一監控時間單位tREFI內的該等第一階層單堆再充電時間點t11…t18對記憶單元堆bank11…bank18逐堆進行再充電,以實現完全再充電該階層rank1。微控制器106可根據指令佇列104的內容,於一監控時間單位tREFI內的該等第二階層單堆再充電時間點t21…t28對記憶單元堆bank21…bank28逐堆進行再充電,以實現完全再 充電該階層rank2。以上所述概念是以階層穿插方式而分配監控時間單位tREFI給所有記憶單元堆。同樣概念也可施行於4階層、甚至未來更多階層之記憶體架構上。 Figure 2 is a timing diagram, according to one embodiment of this case, a monitoring time unit tREFI is divided. As shown in the figure, each monitoring time unit tREFI can provide the first layer single stack recharging time t11...t18 and the second layer single stack recharging time t21...t28, interleaved one by one with the sequence of t11→t21 →t12→t22→t13→t23→t14→t24→t15→t25→t16→t26→t17→t27→t18→t28. The recharging time points t11...t18 of the first level single stack correspond to the memory cell stacks bank11...bank18 of the rank rank1. The recharge time points t21...t28 of the second hierarchical single stack correspond to the memory cell banks bank21...bank28 of hierarchical rank2. According to the content of the
此外,該等第一階層單堆再充電時間點t11…t18可如圖等距相距(相距一第一時間間隔),甚至該等第二階層單堆再充電時間點t21…t28也可如圖等距相距(相距一第二時間間隔)。第一階層單堆再充電時間點t11可如圖重疊監控時間單位tREFI的起始點。第一階層單堆再充電時間點t18可與下一監控時間單位中的第一階層單堆再充電時間點t11同樣相距該第一時間間隔。第二階層單堆再充電時間點t28可與下一監控時間單位中的第二階層單堆再充電時間點t21同樣相距該第二時間間隔。圖例中,第一時間間隔等同第二時間間隔。第一階層單堆再充電時間點t11與第二階層單堆再充電時間點t21的時間間隔可等同上述第二階層單堆再充電時間點t21與第一階層單堆再充電時間點t12的時間間隔。此段所述概念係均時劃分監控時間單位tREFI給所有記憶單元堆。同樣概念也可施行於4階層、甚至未來更多階層之記憶體架構上。 In addition, the recharging time points t11...t18 of the first-level single stacks can be equidistant as shown (a first time interval apart), and even the recharging time points t21...t28 of the second-level single stacks can also be shown as Equidistant (a second time interval apart). The recharging time point t11 of the first layer single stack may overlap the starting point of the monitoring time unit tREFI as shown in FIG. The recharge time point t18 of the first hierarchical single stack may be the same as the first time interval from the recharge time point t11 of the first hierarchical single stack in the next monitoring time unit. The second layer single stack recharging time t28 may be the same as the second time interval from the second layer single stack recharging time t21 in the next monitoring time unit. In the legend, the first time interval is equal to the second time interval. The time interval between the first layer single stack recharge time t11 and the second layer single stack recharge time t21 can be equal to the time between the second layer single stack recharge time t21 and the first layer single stack recharge time t12 interval. The concept described in this paragraph is to divide the monitoring time unit tREFI equally to all memory unit stacks. The same concept can be applied to the memory architecture of 4 levels, and even more levels in the future.
至於對階層一次性再充電(per-rank refreshing)的操作,一種實施方式是於某一監控時間單位tREFI內對應之階層rank1或者rank2閒置(在一實施例中,“閒置”即是在該指令佇列104中無對應於階層rank1或者rank2的存取指令待處理)的區間,以閒置的運算資源反覆進行,使後續數個監控時間單位(如,Nx(tREFI))無須耗費資源於該階層的再充電。如第2圖所示,階層rank1之一次性再充電可發生在時間點T1_1、滿足時 限時tRFCpr後的時間點T1_2…以下類推。另有一種實施方式是令一監控時間單位tREFI內的一次性再充電(per-rank refreshing)起始處對齊逐堆再充電(per-bank refreshing)起始處。如第2圖所示,階層rank2之一次性再充電可起始發生在時間點T2_1、更在滿足時限時tRFCpr後再發生在時間點T2_2…以下類推。時間點T2_1對齊第二階層單堆再充電時間點t21。 As for the per-rank refreshing operation, one implementation method is to idle the corresponding rank rank1 or rank2 within a certain monitoring time unit tREFI (in one embodiment, “idle” is in the command There is no interval in the
以下方便說明,專對階層rank1討論再充電排程之細項。 The following is convenient for explanation, and discusses the details of the recharging schedule for class rank1.
第3A、3B圖為流程圖,圖解微控制器106所實施之階層rank1之再充電指令排程,每監控時間單位tREFI實施一次。微控制器106以一計數器(以下標號Cnt1)計數對階層rank1進行再充電(無論採一次性再充電per-rank refreshing或是採多次逐堆再充電per-bank refreshing以實現對階層rank1完全再充電)的次數。步驟S302於每回合監控時間單位tREFI之始,將計數器Cnt1遞減1。步驟S304判斷有無對應於階層rank1之存取指令等待於該指令佇列104。階層rank1無存取指令等待於該指令佇列104時,步驟S306更檢查計數器Cnt1之計數是否達一上限(此例設定為8,等同階層rank1之記憶單元堆bank11…bank18的數量)。若計數器Cnt1之計數未達8,步驟S310對階層rank1執行一次性再充電(per-rank charging),計數器Cnt1隨之遞增1。步驟S312計時達時限tRFCpr,確認一次性再充電(per-rank charging)單次實施完畢後,可以步驟S314以及步驟S316確認指令佇列104以及計數器Cnt1的狀況。倘若還是無對應於階層rank1的存取指令等待於該指令佇列104、且該計數器Cnt1之計 數還是未達8,則步驟S318再次對階層rank1執行一次性再充電(per-rank charging),計數器Cnt1隨之遞增1。如此根據指令佇列104以及計數器Cnt1之狀況而進行的階層rank1一次性再充電(per-rank charging)會連續地重覆施行直至步驟S316判斷出計數器Cnt1之計數達8。根據步驟S320,此回合監控時間單位tREFI將不再對階層rank1進行再充電。步驟S308也是同樣的設計概念。 FIGS. 3A and 3B are flowcharts illustrating the scheduling of the recharging command of the
若步驟S304判定有對應於該階層rank1之存取指令等待於該指令佇列104,步驟S322會檢查計數器Cnt1是否為0,以判斷此回合監控時間單位tREFI是否急迫需要再充電。若計數器Cnt1大於零,此回合監控時間單位tREF1非急迫需要再充電,流程進入步驟S312提供緩衝時間(此例為時限tRFCpr,也可為其他時間長度)以執行該指令佇列104中對應於該階層rank1之存取指令。如此一來,指令佇列104中對應於該階層rank1之存取指令優先於該階層rank1之再充電。待步驟S314確認已無對應於階層rank1的存取指令等待於該指令佇列104,閒置的運算資源同樣可用於重覆施行階層rank1之一次性再充電(per-rank charging),直至步驟S316判斷出計數器Cnt1之計數達8。 If it is determined in step S304 that there is an access command corresponding to rank1 waiting for the
若步驟S322判斷計數器Cnt1為0,此回合監控時間單位tREFI急迫需要再充電,步驟S324對該階層rank1之複數個記憶單元堆bank11~bank18逐堆再充電(per-bank refreshing)以實現對階層rank1完全再充電,計數器Cnt1隨階層rank1之完全再充電遞增1。如此一來,未輪到再充電的記憶單元堆得以被 存取。階層rank1等待於該指令佇列104的存取指令不會被過度延滯。在一實施方式中,步驟S322可依照第2圖所示第一階層單堆再充電時間點t11…t18對該階層rank1之複數個記憶單元堆bank11~bank18逐堆再充電(per-bank refreshing)。 If step S322 determines that the counter Cnt1 is 0, this round of monitoring time unit tREFI urgently needs to be recharged, and step S324 recharges (per-bank refreshing) the plurality of memory cell stacks bank11~bank18 of the rank rank1 one by one (per-bank refreshing) With full recharge, the counter Cnt1 is incremented by 1 with the complete recharge of rank1. In this way, the memory cell stack that has not been recharged is accessed. The access command of the rank rank1 waiting for the
第3A、3B圖可施行於動態隨機存取記憶體的其他階層上。例如,微控制器106可為階層rank2提供另一計數器(標號為Cnt2)進行第3A、3B圖程序。計數器Cnt2可在第2圖所示之第二階層單堆再充電時間點t21減一,以維護之。 Figures 3A and 3B can be implemented on other levels of dynamic random access memory. For example, the
第4A、4B圖為流程圖,圖解微控制器106所實施之階層rank1存取指令排程。第4A、4B圖係基於第3A、3B圖之再充電排程而設計,每監控時間單位tREFI實施一次。步驟S402於每回合監控時間單位tREFI之始檢查階層rank1一次性再充電(per-rank charging)請求的發送狀況。該回合監控時間單位tREFI有作階層rank1的一次性再充電(per-rank charging)時,步驟S404檢查是否滿足時限tRFCpr。若是一次性再充電(per-rank charging)反覆施行的例子,則步驟S404所檢查的會是時限tRFCpr的倍數。未達時限時,為了避免階層rank1存取指令搶到運算資源、卻因階層rank1再充電而拖延,微控制器106以步驟S406調降該指令佇列104中對應於該階層rank1的存取指令之優先權。如此一來,非存取該階層rank1的指令可優先使用運算資源且不被延滯。階層的一次性再充電(per-rank charging)結束、步驟S404判斷時限滿足時,微控制器106執行步驟S408,復原該指令佇列104中對應於該階層rank1之存取指令之優先權。 4A and 4B are flowcharts illustrating the scheduling of the hierarchical rank1 access commands implemented by the
若步驟S402判定該回合監控時間單位tREFI不對階層rank1做一次性再充電(per-rank charging),步驟S410監控階層rank1之記憶單元堆bank11~bank18個別的再充電請求(per-bank refreshing)。對於單一記憶單元堆bank1i之再充電,步驟S412調升該指令佇列104中對應於該階層rank1除該單一記憶單元堆bank1i外的其他記憶單元堆的存取指令之優先權。步驟S414檢查是否滿足時限tRFCpb。未達時限tRFCpb時,為了避免記憶單元堆bank1i存取指令無謂搶到運算資源,微控制器106以步驟S416調降該指令佇列104中對應於該記憶單元堆bank1i的存取指令之優先權。如此一來,非存取該記憶單元堆bank1i的指令可優先使用運算資源且不被延滯。單一記憶單元堆bank1i的再充電結束、步驟S414判斷時限tRFCpb滿足時,微控制器106執行步驟S418,復原該指令佇列104中對應於該階層rank1之所有記憶單元堆(無論之前對應的存取指令之優先權係被調升或調降的記憶單元堆)的存取指令之優先權。步驟S410對記憶單元堆bank11~bank18個別的再充電請求監控及時(例如,達時間點t18,或達監控時間單位tREFI),則流程結束。 If it is determined in step S402 that the round monitoring time unit tREFI does not perform per-rank charging for the rank rank1, step S410 monitors the individual recharge requests (per-bank refreshing) of the memory banks bank11 to bank18 of the rank rank1. For recharging the single memory cell stack bank1i, step S412 increases the priority of the access commands in the
本案更揭露動態隨機存取記憶體控制方法。任何依循以上概念施作於一動態隨機存取記憶體上的控制方法,皆屬於本案所欲保護範圍。本案所揭露之前述動態隨機存取記憶體控制器以及控制方法係根據階層rank1或者rank2的閒置狀況,來動態排程對階層rank1或者rank2的再充電操作,具體而言,係於某一監控時間單位tREFI內對應之階層閒置的區間,連續反覆對該階層進行一次性再充電操作,而不必固定地每隔 一監控時間單位才進行一次性再充電操作,使後續數個監控時間單位(如,Nx(tREFI))無須耗費資源於該階層的再充電,從而提高對應於該階層的存取指令的執行效率。本發明另一方面係於對某一階層的某一記憶單元堆進行再充電操作時,動態調整對應於該階層各個記憶單元堆所對應存取指令的優先級,使得未輪到再充電的記憶單元堆對應的存取指令得以被執行,使得該階層等待於該指令佇列的存取指令不會被過度延滯。 This case also discloses a dynamic random access memory control method. Any control method applied to a dynamic random access memory according to the above concept belongs to the protection scope of this case. The aforementioned dynamic random access memory controller and control method disclosed in this case are based on the idle status of rank1 or rank2 to dynamically schedule the recharging operation of rank1 or rank2, specifically, during a certain monitoring time In the interval where the corresponding stratum in the unit tREFI is idle, a one-time recharge operation is continuously performed on the stratum repeatedly, without having to perform a one-time recharge operation every fixed monitoring time unit, so that subsequent monitoring time units (eg, Nx(tREFI)) does not need to consume resources to recharge the hierarchy, thereby improving the execution efficiency of access commands corresponding to the hierarchy. Another aspect of the present invention is to dynamically adjust the priority of the access command corresponding to each memory cell stack of a hierarchy when recharging a memory cell stack of a hierarchy, so that it is not the turn to recharge the memory The access instruction corresponding to the unit stack is executed, so that the access instruction waiting for the instruction queue of the hierarchy will not be excessively delayed.
動態隨機存取記憶體更有其他變形。除了支援逐堆再充電(per-bank refreshing)的LPDDR3以及LPDDR4規格,也有不支援逐堆再充電、僅採一次性再充電(per-rank refreshing)的DDR3以及DDR4。關於DDR3以及DDR4規格,步驟S324所執行的操作是對階層rank1作一次性再充電,掌握優先於該階層rank1之存取指令、對該階層rank1再充電的原則,即在此種情形下,儘管有該階層rank1之存取指令待處理,在計數器Cnt1為0時,對該階層rank1的再充電需求更為迫切,優先級更高。此外,DDR3以及DDR4無關第4B圖之單堆再充電監控。 Dynamic random access memory has other variants. In addition to the LPDDR3 and LPDDR4 specifications that support per-bank refreshing (per-bank refreshing), there are also DDR3 and DDR4 that do not support per-bank refreshing and only use per-rank refreshing. Regarding the DDR3 and DDR4 specifications, the operation performed in step S324 is to recharge the rank1 at a time, and to grasp the principle of accessing the priority rank1 and recharging the rank1, that is, in this case, although There is an access command of this rank rank1 to be processed. When the counter Cnt1 is 0, the demand for recharging rank1 is more urgent and the priority is higher. In addition, DDR3 and DDR4 have nothing to do with the single stack recharge monitoring in Figure 4B.
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。 Although the present invention has been disclosed as above with preferred embodiments, it is not intended to limit the present invention. Anyone who is familiar with this skill can do some modifications and retouching without departing from the spirit and scope of the present invention. Therefore, the present invention The scope of protection shall be as defined in the scope of the attached patent application.
t11…t18、t21…t28‧‧‧第一、第二階層單堆再充電時間點 t11...t18, t21...t28
T1_1、T1_2、T2_1、T2_2‧‧‧時間點 T1_1, T1_2, T2_1, T2_2 ‧‧‧
tREFI‧‧‧監控時間單位 tREFI‧‧‧Monitoring time unit
tRFCpr‧‧‧時限 tRFCpr‧‧‧ time limit
Claims (18)
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201710083485.9 | 2017-02-16 | ||
CN201710083485.9A CN106875970B (en) | 2017-02-16 | 2017-02-16 | Dynamic random access memory controller and control method thereof |
CN201710083485.9 | 2017-02-16 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201832235A TW201832235A (en) | 2018-09-01 |
TWI685840B true TWI685840B (en) | 2020-02-21 |
Family
ID=59166904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140707A TWI685840B (en) | 2017-02-16 | 2017-11-23 | Controller and control method for dynamic random access memory |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN106875970B (en) |
TW (1) | TWI685840B (en) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108460A1 (en) * | 2003-11-14 | 2005-05-19 | Intel Corporation | Partial bank DRAM refresh |
TW201039345A (en) * | 2009-04-23 | 2010-11-01 | Ibm | Refresh controller and refresh controlling method for embedded DRAM |
CN102324247A (en) * | 2010-04-12 | 2012-01-18 | 英特尔公司 | The method of staggered self-refresh |
US20130182522A1 (en) * | 2012-01-17 | 2013-07-18 | Young-il Lim | Memory device, method of operating the same, and apparatus including the same |
CN103559142A (en) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | Refreshing method for dynamic random access memory |
US20150092508A1 (en) * | 2013-09-27 | 2015-04-02 | Kuljit S. Bains | Directed per bank refresh command |
US20160231963A1 (en) * | 2009-01-22 | 2016-08-11 | Rambus Inc. | Maintenance operations in a dram |
US20160254044A1 (en) * | 2015-02-28 | 2016-09-01 | Intel Corporation | Precharging and refreshing banks in memory device with bank group architecture |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529433B2 (en) * | 2001-04-03 | 2003-03-04 | Hynix Semiconductor, Inc. | Refresh mechanism in dynamic memories |
JP4912718B2 (en) * | 2006-03-30 | 2012-04-11 | 富士通セミコンダクター株式会社 | Dynamic semiconductor memory |
JP5612244B2 (en) * | 2007-10-30 | 2014-10-22 | ピーエスフォー ルクスコ エスエイアールエルPS4 Luxco S.a.r.l. | Semiconductor device and refresh method |
-
2017
- 2017-02-16 CN CN201710083485.9A patent/CN106875970B/en active Active
- 2017-11-23 TW TW106140707A patent/TWI685840B/en active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050108460A1 (en) * | 2003-11-14 | 2005-05-19 | Intel Corporation | Partial bank DRAM refresh |
US20160231963A1 (en) * | 2009-01-22 | 2016-08-11 | Rambus Inc. | Maintenance operations in a dram |
TW201039345A (en) * | 2009-04-23 | 2010-11-01 | Ibm | Refresh controller and refresh controlling method for embedded DRAM |
CN102324247A (en) * | 2010-04-12 | 2012-01-18 | 英特尔公司 | The method of staggered self-refresh |
US20130182522A1 (en) * | 2012-01-17 | 2013-07-18 | Young-il Lim | Memory device, method of operating the same, and apparatus including the same |
US20150092508A1 (en) * | 2013-09-27 | 2015-04-02 | Kuljit S. Bains | Directed per bank refresh command |
CN103559142A (en) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | Refreshing method for dynamic random access memory |
US20160254044A1 (en) * | 2015-02-28 | 2016-09-01 | Intel Corporation | Precharging and refreshing banks in memory device with bank group architecture |
Also Published As
Publication number | Publication date |
---|---|
CN106875970B (en) | 2021-06-01 |
CN106875970A (en) | 2017-06-20 |
TW201832235A (en) | 2018-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7342841B2 (en) | Method, apparatus, and system for active refresh management | |
US10535393B1 (en) | Configuring dynamic random access memory refreshes for systems having multiple ranks of memory | |
CN1822224B (en) | Memory device capable of refreshing data using buffer and refresh method thereof | |
US20070011397A1 (en) | Dram with hidden refresh | |
WO2005119690A1 (en) | Method and system for providing independent bank refresh for volatile memories | |
CN105518784A (en) | Data processor with memory controller for high reliability operation and method | |
WO2017092282A1 (en) | Device and method for refreshing dram or edram | |
US10628348B2 (en) | Memory module with reduced read/write turnaround overhead | |
CN110546707B (en) | Memory refreshing technology and computer system | |
TWI641995B (en) | Controller and control method for dynamic random access memory | |
CN112382321B (en) | Refreshing method of dynamic random access memory, memory controller and electronic device | |
EP4141872A1 (en) | Memory controller and memory system including the same | |
CN116724287A (en) | Memory control method and memory control device | |
US10838884B1 (en) | Memory access quality-of-service reallocation | |
US7298661B2 (en) | Semiconductor memory device | |
CN110556139B (en) | Circuit for controlling memory and related method | |
TWI685840B (en) | Controller and control method for dynamic random access memory | |
CN111158585B (en) | Memory controller refreshing optimization method, device, equipment and storage medium | |
CN112259141B (en) | Refreshing method of dynamic random access memory, memory controller and electronic device | |
JP4463019B2 (en) | Memory control device | |
WO2023171474A1 (en) | Memory controller and memory control method | |
CN114564422A (en) | Dynamic synchronous refresh controller and dynamic synchronous refresh control method for multi-channel DRAM | |
JP2022159759A (en) | Memory management device, memory management method, and memory management program |