TWI641995B - 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 - Google Patents
動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 Download PDFInfo
- Publication number
- TWI641995B TWI641995B TW106140706A TW106140706A TWI641995B TW I641995 B TWI641995 B TW I641995B TW 106140706 A TW106140706 A TW 106140706A TW 106140706 A TW106140706 A TW 106140706A TW I641995 B TWI641995 B TW I641995B
- Authority
- TW
- Taiwan
- Prior art keywords
- hierarchy
- dynamic random
- instruction
- memory cell
- random access
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 17
- 238000012544 monitoring process Methods 0.000 claims abstract description 51
- 101100328518 Caenorhabditis elegans cnt-1 gene Proteins 0.000 description 23
- 238000010586 diagram Methods 0.000 description 6
- 230000003111 delayed effect Effects 0.000 description 5
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 3
- 101150044602 Slc28a2 gene Proteins 0.000 description 2
- 239000003990 capacitor Substances 0.000 description 2
- 238000002372 labelling Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- 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/1668—Details of memory controller
- G06F13/1684—Details of memory controller using multiple buses
-
- 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/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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/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/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
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/04—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
- G11C16/0483—Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/24—Bit-line control circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/26—Sensing or reading circuits; Data output circuits
-
- H—ELECTRICITY
- H05—ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
- H05K—PRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
- H05K2201/00—Indexing scheme relating to printed circuits covered by H05K1/00
- H05K2201/10—Details of components or other objects attached to or integrated in a printed circuit board
- H05K2201/10007—Types of components
- H05K2201/10159—Memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Dram (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
- Charge And Discharge Circuits For Batteries Or The Like (AREA)
Abstract
動態隨機存取記憶體之再充電(refresh)排程。一指令佇列使要發送至一動態隨機存取記憶體的操作指令於其中排隊。一微控制器以一計數器計數完全再充電(包括一次性再充電以及逐堆再充電)該動態隨機存取記憶體的一階層的次數,並在該計數器之計數尚未達一上限、且該階層無存取指令等待於該指令佇列時,連續對該階層一次性再充電。該微控制器計時每累積一監控時間單位,則令該計數器減一。
Description
本案係有關於動態隨機存取記憶體(DRAM)之再充電(refresh)排程。
動態隨機存取記憶體(Dynamic Random Access Memory,DRAM)是一種半導體記憶體,是利用電容內儲存電荷的多寡來代表一個二進位位元(bit)是1還是0。由於電容會有漏電的現象,因此動態隨機存取記憶體(DRAM)有再充電(refresh)需求,以維護所儲存的數據可靠度。
本案有關於動態隨機存取記憶體(DRAM)之再充電(refresh)排程。
根據本案一種實施方式實現的一種動態隨機存取記憶體控制器包括一指令佇列(command queue)以及一微控制器。該指令佇列使要發送至一動態隨機存取記憶體的操作指令於其中排隊。該微控制器以一計數器計數對該動態隨機存取記憶體的一階層(rank)完全再充電的次數,並在該計數器之計數尚未達一上限、且無對應於該階層之存取指令等待於該指令佇列時,連續對該階層執行一次性再充電(per-rank refreshing)。
該微控制器計時每累積一監控時間單位,則令該計數器減一。如此一來,動態隨機存取記憶體之再充電是集中於運算資源閒散時進行。
本案概念更可實現為動態隨機存取記憶體控制方法,包括以下步驟:提供一指令佇列,使要發送至一動態隨機存取記憶體的操作指令於其中排隊;;以一計數器計數對該動態隨機存取記憶體的一階層完全再充電的次數;在該計數器之計數尚未達一上限、且無對應於該階層之存取指令等待於該指令佇列時,連續對該階層執行一次性再充電;且計時每累積一監控時間單位,則令該計數器減一。
本案所揭露之前述動態隨機存取記憶體控制器以及控制方法係根據各階層的閒置狀況,來動態排程對該階層的再充電操作,具體而言,係於某一監控時間單位內於該階層閒置的區間,連續反覆對該階層進行一次性再充電操作,而不必固定地每隔一監控時間單位才進行一次性再充電操作,使後續數個監控時間單位(如,Nx(tREFI))無須耗費資源於該階層的再充電,從而提高對應於該階層的存取指令的執行效率。本發明另一方面係於對某一階層的某一記憶單元堆進行再充電操作時,動態調整對應於該階層各個記憶單元堆所對應存取指令的優先級,使得未輪到再充電的記憶單元堆對應的存取指令得以被執行,使得該階層等待於該指令佇列的存取指令不會被過度延滯。
下文特舉實施例,並配合所附圖示,詳細說明本發明內容。
100‧‧‧動態隨機存取記憶體
102‧‧‧動態隨機存取記憶體控制器
104‧‧‧指令佇列
106‧‧‧微控制器
108‧‧‧晶片組
bank11…bank18、bank21…bank28‧‧‧記憶體單元堆
rank1、rank2‧‧‧階層(儲存空間)
t11…t18、t21…t28‧‧‧第一、第二階層單堆再充電時間點
T1_1、T1_2、T2_1、T2_2‧‧‧時間點
tREFI‧‧‧監控時間單位
tRFCpr‧‧‧時限
S302‧‧‧步驟,計數器Cnt1減1
S304‧‧‧步驟,有對應於階層rank1之存取指令等待於指令佇列?
S306‧‧‧步驟,計數器Cnt1>=8?
S308‧‧‧步驟,此輪監控時間單位tREFI不再對階層rank1做再充電
S310‧‧‧步驟,對階層rank1一次性再充電(計數器Cnt1加1)
S312‧‧‧步驟,計時tRFCpr
S314‧‧‧步驟,有對應於階層rank1之存取指令等待於指令佇列?
S316‧‧‧步驟,計數器Cnt1>=8?
S318‧‧‧步驟,對階層rank1一次性再充電(計數器Cnt1加1)
S320‧‧‧此輪監控時間單位tREFI不再對階層rank1做再充電
S322‧‧‧計數器Cnt1>=1?
S324‧‧‧步驟,對階層rank1之複數個記憶單元堆
bank11‧‧‧bank18逐堆再充電(計數器Cnt1加1)
S402‧‧‧步驟,階層rank1一次性再充電送出?
S404‧‧‧步驟,已滿足時限tRFCpr?
S406‧‧‧步驟,調降該指令佇列中對應於階層rank1的存取指令之優先權
S408‧‧‧步驟,復原該指令佇列中對應於階層rank1之存取指令之優先權
S410‧‧‧步驟,監控階層rank1之記憶單元堆bank11~bank18個別的再充電請求
S412‧‧‧步驟,調升該指令佇列中對應於階層rank1除記憶單元堆bank1i外的其他記憶單元堆的存取指令之優先權
S414‧‧‧步驟,已滿足時限tRFCpb?
S416‧‧‧步驟,調降該指令佇列中對應於記憶單元堆bank1i的存取指令之優先權
S418‧‧‧步驟,復原該指令佇列中對應於階層rank1之存取指令之優先權
第1圖為方塊圖,根據本案一種實施方式圖解一動態隨機存取記憶體100以及相關之動態隨機存取記憶體控制器102;第2圖為時序圖,根據本案一種實施方式劃分一個監控時間單位tREFI;第3A、3B圖為流程圖,圖解微控制器106所實施之階層rank1之再充電指令排程,每監控時間單位tREFI實施一次;以及第4A、4B圖為流程圖,圖解微控制器106所實施之階層rank1存取指令排程。
以下敘述列舉本發明的多種實施例。以下敘述介紹本發明的基本概念,且並非意圖限制本發明內容。實際發明範圍應依照申請專利範圍界定之。
第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的北橋上,但並不意圖限定之。
動態隨機存取記憶體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。
動態隨機存取記憶體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。
第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階層、甚至未來更多階層之記憶體架構上。
此外,該等第一階層單堆再充電時間點t11…t18可如圖等距相距(相距一第一時間間隔),甚至該等第二階層單堆再充電時間點t21…t28也可如圖等距相距(相距一第二時間間隔)。第一階層單堆再充電時間點t11可如圖重疊監控時間單位tREFI的起始點。第一階層單堆再充電時間點t18可與下一監控時間單位中的第一階層單堆再充電時間點t11同樣相距該第一時間間隔。第二階層單堆再充電時間點t28可與下一監控時間單位中的第二階層單堆再充電時間點t21同樣相距該第二時間間隔。圖例中,第一時間間隔等同第二時間間隔。第一階層單堆再充電時間點t11與第二階層單堆再充電時間點t21的時間間隔可等同上述第二階層單堆再充電時間點t21與第一階層單堆再充電時間點t12的時間間隔。此段所述概念係均時劃分監控時間單位tREFI給所有記憶單元堆。同樣概念也可施行於4階層、甚至未來更多階層之記憶體架構上。
至於對階層一次性再充電(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。
以下方便說明,專對階層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也是同樣的設計概念。
若步驟S304判定有對應於該階層rank1之存取指令等待於該指令佇列104,步驟S322會檢查計數器Cnt1是否為0,以判斷此回合監控時間單位tREFI是否急迫需要再充電。若計數器Cnt1大於零,此回合監控時間單位tREFI非急迫需要再充電,流程進入步驟S312提供緩衝時間(此例為時限tRFCpr,也可為其他時間長度)以執行該指令佇列104中對應於該階層rank1之存取指令。如此一來,指令佇列104中對應於該階層rank1之存取指令優先於該階層rank1之再充電。待步驟S314確認已無對應於階層rank1的存取指令等待於該指令佇列104,閒置的運算資源同樣可用於重覆施行階層rank1之一次性再充電(per-rank charging),直至步驟S316判斷出計數器Cnt1之計數達8。
若步驟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)。
第3A、3B圖可施行於動態隨機存取記憶體的其他階層上。例如,微控制器106可為階層rank2提供另一計數器(標號為Cnt2)進行第3A、3B圖程序。計數器Cnt2可在第2圖所示之第二階層單堆再充電時間點t21減一,以維護之。
第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之存取指令之優先權。
若步驟S402判定該回合監控時間單位tREFI不對階層rank1做一次性再充電(pet-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),則流程結束。
本案更揭露動態隨機存取記憶體控制方法。任何依循以上概念施作於一動態隨機存取記憶體上的控制方法,皆屬於本案所欲保護範圍。本案所揭露之前述動態隨機存取記憶體控制器以及控制方法係根據階層rank1或者rank2的閒置狀
況,來動態排程對階層rank1或者rank2的再充電操作,具體而言,係於某一監控時間單位tREFI內對應之階層閒置的區間,連續反覆對該階層進行一次性再充電操作,而不必固定地每隔一監控時間單位才進行一次性再充電操作,使後續數個監控時間單位(如,Nx(tREFI))無須耗費資源於該階層的再充電,從而提高對應於該階層的存取指令的執行效率。本發明另一方面係於對某一階層的某一記憶單元堆進行再充電操作時,動態調整對應於該階層各個記憶單元堆所對應存取指令的優先級,使得未輪到再充電的記憶單元堆對應的存取指令得以被執行,使得該階層等待於該指令佇列的存取指令不會被過度延滯。
動態隨機存取記憶體更有其他變形。除了支援逐堆再充電(per-bank refreshing)的LPDDR3以及LPDDR4規格,也有不支援逐堆再充電、僅採一次性再充電(per-rank refreshing)的DDR3以及DDR4。關於DDR3以及DDR4規格,步驟S324所執行的操作是對階層rank1作一次性再充電,掌握優先於該階層rank1之存取指令、對該階層rank1再充電的原則,即在此種情形下,儘管有該階層rank1之存取指令待處理,在計數器Cnt1為0時,對該階層rank1的再充電需求更為迫切,優先級更高。此外,DDR3以及DDR4無關第4B圖之單堆再充電監控。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟悉此項技藝者,在不脫離本發明之精神和範圍內,當可做些許更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
Claims (20)
- 一種動態隨機存取記憶體控制器,包括:一指令佇列,使要發送至一動態隨機存取記憶體的操作指令於其中排隊;以及一微控制器,以一計數器計數對該動態隨機存取記憶體的一階層完全再充電的次數,並在該計數器之計數尚未達一上限、且無對應於該階層之存取指令等待於該指令佇列時,連續對該階層執行一次性再充電,其中,該微控制器計時每累積一監控時間單位,則令該計數器減一。
- 如申請專利範圍第1項所述之動態隨機存取記憶體控制器,其中:該微控制器在該計數器達該上限時,不再於對應的監控時間單位對該階層進行再充電。
- 如申請專利範圍第1項所述之動態隨機存取記憶體控制器,其中:該微控制器在有對應於該階層之存取指令等待於該指令佇列、且該計數器大於零時,優先於該階層之再充電,執行該指令佇列中該階層之存取指令。
- 如申請專利範圍第1項所述之動態隨機存取記憶體控制器,其中:該微控制器在有對應於該階層之存取指令等待於該指令佇列、但該計數器為零時,優先於對應於該階層之存取指令,對該階層進行再充電。
- 如申請專利範圍第1項所述之動態隨機存取記憶體控制器,其中:該微控制器在有對應於該階層之存取指令等待於該指令佇列、但該計數器為零時,對該階層之複數個記憶單元堆逐堆再充電,使未輪到再充電的記憶單元堆得以被存取。
- 如申請專利範圍第5項所述之動態隨機存取記憶體控制器,其中:該微控制器再充電該階層之單一記憶單元堆時,更調升該指令佇列中對應於該階層除該單一記憶單元堆外的其他記憶單元堆的存取指令之優先權;且該微控制器結束再充電該階層之所述單一記憶單元堆時,更復原該指令佇列中對應於該階層除該單一記憶單元堆外的其他記憶單元堆的存取指令之優先權。
- 如申請專利範圍第5項所述之動態隨機存取記憶體控制器,其中:該微控制器再充電該階層之單一記憶單元堆時,更調降該指令佇列中對應於該單一記憶單元堆的存取指令之優先權。
- 如申請專利範圍第7項所述之動態隨機存取記憶體控制器,其中:該微控制器結束再充電該階層之所述單一記憶單元堆時,更復原該指令佇列中對應於該單一記憶單元堆的存取指令之優先權。
- 如申請專利範圍第1項所述之動態隨機存取記憶體控制 器,其中:該微控制器對該階層一次性再充電時,更調降該指令佇列中對應於該階層的存取指令之優先權。
- 如申請專利範圍第9項所述之動態隨機存取記憶體控制器,其中:該微控制器結束對該階層一次性再充電時,更復原該指令佇列中對應於該階層之存取指令之優先權。
- 一種動態隨機存取記憶體控制方法,包括:提供一指令佇列,使要發送至一動態隨機存取記憶體的操作指令於其中排隊;以一計數器計數對該動態隨機存取記憶體的一階層完全再充電的次數;在該計數器之計數尚未達一上限、且無對應於該階層之存取指令等待於該指令佇列時,連續對該階層執行一次性再充電;且計時每累積一監控時間單位,則令該計數器減一。
- 如申請專利範圍第11項所述之動態隨機存取記憶體控制方法,更包括:在該計數器達該上限時,不再於對應的監控時間單位對該階層再充電。
- 如申請專利範圍第11項所述之動態隨機存取記憶體控制方法,更包括: 在有對應於該階層之存取指令等待於該指令佇列、且該計數器大於零時,優先於該階層之再充電,執行該指令佇列中該階層之存取指令。
- 如申請專利範圍第11項所述之動態隨機存取記憶體控制方法,更包括:在有對應於該階層之存取指令等待於該指令佇列、但該計數器為零時,優先於對應於該階層之存取指令,對該階層進行再充電。
- 如申請專利範圍第11項所述之動態隨機存取記憶體控制方法,更包括:在有對應於該階層之存取指令等待於該指令佇列、但該計數器為零時,對該階層之複數個記憶單元堆逐堆再充電,使未輪到再充電的記憶單元堆得以被存取。
- 如申請專利範圍第15項所述之動態隨機存取記憶體控制方法,更包括:再充電該階層之單一記憶單元堆時,更調升該指令佇列中對應於該階層除該單一記憶單元堆外的其他記憶單元堆的存取指令之優先權;且結束再充電該階層之所述單一記憶單元堆時,更復原該指令佇列中對應於該階層除該單一記憶單元堆外的其他記憶單元堆的存取指令之優先權。
- 如申請專利範圍第15項所述之動態隨機存取記憶體控制方法,更包括: 再充電該階層之單一記憶單元堆時,更調降該指令佇列中對應於該單一記憶單元堆的存取指令之優先權。
- 如申請專利範圍第17項所述之動態隨機存取記憶體控制方法,更包括:結束再充電該階層之所述單一記憶單元堆時,更復原該指令佇列中對應於該單一記憶單元堆的存取指令之優先權。
- 如申請專利範圍第11項所述之動態隨機存取記憶體控制方法,更包括:對該階層一次性再充電時,更調降該指令佇列中對應於該階層的存取指令之優先權。
- 如申請專利範圍第19項所述之動態隨機存取記憶體控制方法,更包括:結束對該階層一次性再充電時,更復原該指令佇列中對應於該階層之存取指令之優先權。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
??201710083491.4 | 2017-02-16 | ||
CN201710083491.4A CN106875971B (zh) | 2017-02-16 | 2017-02-16 | 动态随机存取存储器控制器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201832081A TW201832081A (zh) | 2018-09-01 |
TWI641995B true TWI641995B (zh) | 2018-11-21 |
Family
ID=59166994
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106140706A TWI641995B (zh) | 2017-02-16 | 2017-11-23 | 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 |
Country Status (3)
Country | Link |
---|---|
US (2) | US9966129B1 (zh) |
CN (1) | CN106875971B (zh) |
TW (1) | TWI641995B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
BR112019021554B1 (pt) * | 2017-04-14 | 2024-02-27 | Huawei Technologies Co., Ltd | Método de renovação de memória, controlador de memória, aparelho de renovação de memória, sistema de computador e meio de armazenamento legível por computador |
JP6780897B2 (ja) | 2017-04-14 | 2020-11-04 | ホアウェイ・テクノロジーズ・カンパニー・リミテッド | メモリリフレッシュ技術及びコンピュータシステム |
US11327656B2 (en) * | 2018-08-03 | 2022-05-10 | Mobileye Vision Technologies Ltd. | Accessing a dynamic memory module |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200817913A (en) * | 2006-03-30 | 2008-04-16 | Intel Corp | Dynamic update adaptive idle timer |
TW201039345A (en) * | 2009-04-23 | 2010-11-01 | Ibm | Refresh controller and refresh controlling method for embedded DRAM |
CN101091221B (zh) * | 2004-12-28 | 2012-04-18 | 高通股份有限公司 | 引导式自动刷新同步 |
CN103559142A (zh) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | 动态随机访问存储器的刷新方法 |
CN102655022B (zh) * | 2010-12-28 | 2016-06-15 | 海力士半导体有限公司 | 半导体存储器件的刷新控制电路和方法 |
CN106128499A (zh) * | 2016-06-28 | 2016-11-16 | 田彬 | 一种用于DRAM或eDRAM刷新的装置及刷新方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6356485B1 (en) * | 1999-02-13 | 2002-03-12 | Integrated Device Technology, Inc. | Merging write cycles by comparing at least a portion of the respective write cycle addresses |
US6931480B2 (en) * | 2001-08-30 | 2005-08-16 | Micron Technology, Inc. | Method and apparatus for refreshing memory to preserve data integrity |
JP2004088470A (ja) * | 2002-08-27 | 2004-03-18 | Sony Corp | 復号装置及び復号方法 |
DE10306062B3 (de) * | 2003-02-13 | 2004-08-19 | Infineon Technologies Ag | Speichermodul mit einer Mehrzahl von integrierten Speicherbauelementen und einer Refresh-Steuerschaltung |
US20050108460A1 (en) * | 2003-11-14 | 2005-05-19 | Intel Corporation | Partial bank DRAM refresh |
JP2006260630A (ja) * | 2005-03-15 | 2006-09-28 | Elpida Memory Inc | 半導体記憶装置における不良解析方法及び半導体記憶装置 |
US20060271739A1 (en) * | 2005-05-24 | 2006-11-30 | Shu-Fang Tsai | Management of transfer of commands |
US7490224B2 (en) * | 2005-10-07 | 2009-02-10 | International Business Machines Corporation | Time-of-life counter design for handling instruction flushes from a queue |
KR100810060B1 (ko) * | 2006-04-14 | 2008-03-05 | 주식회사 하이닉스반도체 | 반도체 메모리 소자 및 그의 구동방법 |
US8484410B2 (en) * | 2010-04-12 | 2013-07-09 | Intel Corporation | Method to stagger self refreshes |
US9299400B2 (en) | 2012-09-28 | 2016-03-29 | Intel Corporation | Distributed row hammer tracking |
US9032141B2 (en) | 2012-11-30 | 2015-05-12 | Intel Corporation | Row hammer monitoring based on stored row hammer threshold value |
US20150318035A1 (en) * | 2014-05-02 | 2015-11-05 | Qualcomm Incorporated | Priority adjustment of dynamic random access memory (dram) transactions prior to issuing a per-bank refresh for reducing dram unavailability |
US9728245B2 (en) | 2015-02-28 | 2017-08-08 | Intel Corporation | Precharging and refreshing banks in memory device with bank group architecture |
US9576637B1 (en) * | 2016-05-25 | 2017-02-21 | Advanced Micro Devices, Inc. | Fine granularity refresh |
-
2017
- 2017-02-16 CN CN201710083491.4A patent/CN106875971B/zh active Active
- 2017-05-19 US US15/599,859 patent/US9966129B1/en active Active
- 2017-05-19 US US15/599,818 patent/US10216658B2/en active Active
- 2017-11-23 TW TW106140706A patent/TWI641995B/zh active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101091221B (zh) * | 2004-12-28 | 2012-04-18 | 高通股份有限公司 | 引导式自动刷新同步 |
TW200817913A (en) * | 2006-03-30 | 2008-04-16 | Intel Corp | Dynamic update adaptive idle timer |
TW201039345A (en) * | 2009-04-23 | 2010-11-01 | Ibm | Refresh controller and refresh controlling method for embedded DRAM |
CN102655022B (zh) * | 2010-12-28 | 2016-06-15 | 海力士半导体有限公司 | 半导体存储器件的刷新控制电路和方法 |
CN103559142A (zh) * | 2013-11-05 | 2014-02-05 | 中国科学院声学研究所 | 动态随机访问存储器的刷新方法 |
CN106128499A (zh) * | 2016-06-28 | 2016-11-16 | 田彬 | 一种用于DRAM或eDRAM刷新的装置及刷新方法 |
Also Published As
Publication number | Publication date |
---|---|
US9966129B1 (en) | 2018-05-08 |
US20180232329A1 (en) | 2018-08-16 |
CN106875971B (zh) | 2021-01-22 |
US10216658B2 (en) | 2019-02-26 |
CN106875971A (zh) | 2017-06-20 |
TW201832081A (zh) | 2018-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3662475B1 (en) | Partial refresh technique to save memory refresh power | |
US10268405B2 (en) | Dynamic rank switching for low power volatile memory | |
US9418723B2 (en) | Techniques to reduce memory cell refreshes for a memory device | |
TWI641995B (zh) | 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 | |
TWI477964B (zh) | 在記憶體中頁面存取之控制系統及方法 | |
US10535393B1 (en) | Configuring dynamic random access memory refreshes for systems having multiple ranks of memory | |
KR20170045795A (ko) | 메모리 장치 및 이를 포함하는 메모리 시스템 | |
KR20170057704A (ko) | 액세스 동작과 리프레쉬 동작의 충돌을 제어하는 메모리 장치 및 이를 포함하는 메모리 시스템 | |
EP2600253A1 (en) | Semiconductor device and data processing system | |
US10572389B2 (en) | Cache control aware memory controller | |
WO2017092282A1 (zh) | 一种用于DRAM或eDRAM刷新的装置及其方法 | |
US10318187B2 (en) | Memory controller and memory system including the same | |
US20240289020A1 (en) | Memory system with multiple memory ranks and method of operating the memory system with multiple memory ranks | |
US20070053235A1 (en) | Semiconductor memory device | |
US20200333980A1 (en) | Data processing system and operating method thereof | |
US8750068B2 (en) | Memory system and refresh control method thereof | |
TWI685840B (zh) | 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法 | |
US11016704B2 (en) | Semiconductor system including various memory devices capable of processing data | |
TWI730332B (zh) | 處理系統與控制方法 | |
JP4463019B2 (ja) | メモリ制御装置 | |
TW202333060A (zh) | 用於在動態隨機存取記憶體記憶體控制器中高效更新管理之訊務感知可適性預充電排程器 | |
JP2022159759A (ja) | メモリ管理装置、メモリ管理方法及びメモリ管理プログラム |