CN106875971B - 动态随机存取存储器控制器及其控制方法 - Google Patents

动态随机存取存储器控制器及其控制方法 Download PDF

Info

Publication number
CN106875971B
CN106875971B CN201710083491.4A CN201710083491A CN106875971B CN 106875971 B CN106875971 B CN 106875971B CN 201710083491 A CN201710083491 A CN 201710083491A CN 106875971 B CN106875971 B CN 106875971B
Authority
CN
China
Prior art keywords
hierarchy
recharging
memory cell
instruction
dynamic random
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.)
Active
Application number
CN201710083491.4A
Other languages
English (en)
Other versions
CN106875971A (zh
Inventor
陈忱
沈鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Zhaoxin Semiconductor Co Ltd
Original Assignee
Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Zhaoxin Integrated Circuit Co Ltd filed Critical Shanghai Zhaoxin Integrated Circuit Co Ltd
Priority to CN201710083491.4A priority Critical patent/CN106875971B/zh
Priority to US15/599,818 priority patent/US10216658B2/en
Priority to US15/599,859 priority patent/US9966129B1/en
Publication of CN106875971A publication Critical patent/CN106875971A/zh
Priority to TW106140706A priority patent/TWI641995B/zh
Application granted granted Critical
Publication of CN106875971B publication Critical patent/CN106875971B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1684Details of memory controller using multiple buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital 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/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/04Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS
    • G11C16/0483Erasable programmable read-only memories electrically programmable using variable threshold transistors, e.g. FAMOS comprising cells having several storage transistors connected in series
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/24Bit-line control circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/26Sensing or reading circuits; Data output circuits
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K2201/00Indexing scheme relating to printed circuits covered by H05K1/00
    • H05K2201/10Details of components or other objects attached to or integrated in a printed circuit board
    • H05K2201/10007Types of components
    • H05K2201/10159Memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (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)需求,以维护所存储的数据可靠度。
发明内容
本申请有关于动态随机存取存储器的再充电(refresh,或称为刷新)调度。
根据本申请一种实施方式实现的一种动态随机存取存储器控制器包括一指令队列(command queue)以及一微控制器。该指令队列使要发送至一动态随机存取存储器的操作指令在其中排队。该微控制器以一计数器计数对该动态随机存取存储器的一阶层(rank)完全再充电的次数,并在该计数器的计数尚未达一上限、且无对应于该阶层的存取指令等待于该指令队列时,连续对该阶层执行一次性再充电(per-rank refreshing)。该微控制器计时每累积一监控时间单位,则令该计数器减一。如此一来,动态随机存取存储器的再充电是集中于运算资源闲散时进行。
本申请概念更可实现为动态随机存取存储器控制方法,包括以下步骤:提供一指令队列,使要发送至一动态随机存取存储器的操作指令在其中排队;以一计数器计数对该动态随机存取存储器的一阶层完全再充电的次数;在该计数器的计数尚未达一上限、且无对应于该阶层的存取指令等待于该指令队列时,连续对该阶层执行一次性再充电;且计时每累积一监控时间单位,则令该计数器减一。
本申请所公开的前述动态随机存取存储器控制器以及控制方法根据各阶层的闲置状况,来动态调度对该阶层的再充电操作,具体而言,于某一监控时间单位内于该阶层闲置的区间,连续反复对该阶层进行一次性再充电操作,而不必固定地每隔一监控时间单位才进行一次性再充电操作,使后续数个监控时间单位(如,Nx(tREFI))无须耗费资源在该阶层的再充电,从而提高对应于该阶层的存取指令的执行效率。本发明另一方面在对某一阶层的某一存储单元堆进行再充电操作时,动态调整对应于该阶层各个存储单元堆所对应存取指令的优先级,使得未轮到再充电的存储单元堆对应的存取指令得以被执行,使得该阶层等待于该指令队列的存取指令不会被过度延滞。
下文特举实施例,并配合所附图示,详细说明本发明内容。
附图说明
图1为方块图,根据本申请一种实施方式图解一动态随机存取存储器100以及相关的动态随机存取存储器控制器102;
图2为时序图,根据本申请一种实施方式划分一个监控时间单位tREFI;
图3A、3B为流程图,图解微控制器106所实施的阶层rank1的再充电指令调度,每监控时间单位tREFI实施一次;以及
图4A、4B为流程图,图解微控制器106所实施的阶层rank1存取指令调度。
【符号说明】
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。动态随机存取存储器控制器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-bankrefreshing)的耗时为tRFCpb,占用对象是单个存储单元堆(bank)。时限tRFCpr通常远长于时限tRFCpb。一种实施方式中,时限tRFCpr长达210ns,而时限tRFCpb仅90ns。动态随机存取存储器100的再充电是依监控时间单位(以下标号tREFI)调度。一阶层的完全再充电(可能采一次性再充电per-rank refreshing或是一系列的逐堆再充电per-bank refreshing)通常被设计成每个监控时间单位tREFI中发生一回。但在本发明中,一次性再充电(per-rankrefreshing)可集中反复发生后、在后续数个监控时间单位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-bankrefreshing以实现对阶层rank1完全再充电)的次数。步骤S302在每回合监控时间单位tREFI之始,将计数器Cnt1递减1。步骤S304判断有无对应于阶层rank1的存取指令等待于该指令队列104。阶层rank1无存取指令等待于该指令队列104时,步骤S306更检查计数器Cnt1的计数是否达一上限(此例设定为8,等同阶层rank1的存储单元堆bank11…bank18的数量)。若计数器Cnt1的计数未达8,步骤S310对阶层rank1执行一次性再充电(per-rankcharging),计数器Cnt1随之递增1。步骤S312计时达时限tRFCpr,确认一次性再充电(per-rank charging)单次实施完毕后,可以步骤S314以及步骤S316确认指令队列104以及计数器Cnt1的状况。倘若还是无对应于阶层rank1的存取指令等待于该指令队列104、且该计数器Cnt1的计数还是未达8,则步骤S318再次对阶层rank1执行一次性再充电(per-rankcharging),计数器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-rankcharging),直至步骤S316判断出计数器Cnt1的计数达8。
若步骤S322判断计数器Cnt1为0,此回合监控时间单位tREFI急迫需要再充电,步骤S324对该阶层rank1的多个存储单元堆bank11~bank18逐堆再充电(per-bankrefreshing)以实现对阶层rank1完全再充电,计数器Cnt1随阶层rank1的完全再充电递增1。如此一来,未轮到再充电的存储单元堆得以被存取。阶层rank1等待于该指令队列104的存取指令不会被过度延滞。在一实施方式中,步骤S322可依照图2所示第一阶层单堆再充电时间点t11…t18对该阶层rank1的多个存储单元堆bank11~bank18逐堆再充电(per-bankrefreshing)。
图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做一次性再充电(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),则流程结束。
本申请更公开动态随机存取存储器控制方法。任何依循以上概念施作于一动态随机存取存储器上的控制方法,皆属于本申请所欲保护范围。本申请所公开的前述动态随机存取存储器控制器以及控制方法根据阶层rank1或者rank2的闲置状况,来动态调度对阶层rank1或者rank2的再充电操作,具体而言,在某一监控时间单位tREFI内对应的阶层闲置的区间,连续反复对该阶层进行一次性再充电操作,而不必固定地每隔一监控时间单位才进行一次性再充电操作,使后续数个监控时间单位(如,Nx(tREFI))无须耗费资源在该阶层的再充电,从而提高对应于该阶层的存取指令的执行效率。本发明另一方面是在对某一阶层的某一存储单元堆进行再充电操作时,动态调整对应于该阶层各个存储单元堆所对应存取指令的优先级,使得未轮到再充电的存储单元堆对应的存取指令得以被执行,使得该阶层等待于该指令队列的存取指令不会被过度延滞。
动态随机存取存储器更有其他变形。除了支持逐堆再充电(per-bankrefreshing)的LPDDR3以及LPDDR4规格,也有不支持逐堆再充电、仅采一次性再充电(per-rank refreshing)的DDR3以及DDR4。关于DDR3以及DDR4规格,步骤S324所执行的操作是对阶层rank1作一次性再充电,掌握优先于该阶层rank1的存取指令、对该阶层rank1再充电的原则,即在此种情形下,尽管有该阶层rank1的存取指令待处理,在计数器Cnt1为0时,对该阶层rank1的再充电需求更为迫切,优先级更高。此外,DDR3以及DDR4无关图4B的单堆再充电监控。
虽然本发明已以优选实施例公开如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围当视所附权利要求书界定范围为准。

Claims (14)

1.一种动态随机存取存储器控制器,包括:
指令队列,使要发送至动态随机存取存储器的操作指令在其中排队;以及
微控制器,以计数器计数对该动态随机存取存储器的一阶层完全再充电的次数,并在该计数器的计数尚未达一上限、且无对应于该阶层的存取指令等待于该指令队列时,连续对该阶层执行一次性再充电,该一次性再充电每次占用该阶层的全部存储单元堆,并且该微控制器在有对应于该阶层的存取指令等待于该指令队列、但该计数器为零时,对该阶层的多个存储单元堆执行逐堆再充电,该逐堆再充电每次占用该阶层的单个存储单元堆,使未轮到再充电的存储单元堆得以被存取,
其中,该微控制器计时每累积一监控时间单位,则令该计数器减一,
其中,该微控制器在对应的监控时间单位内对应的阶层闲置的区间,连续反复对该阶层进行该一次性再充电操作,而不每隔一监控时间单位进行该一次性再充电操作;以及
该微控制器在该计数器达该上限时,不再在对应的监控时间单位对该阶层进行再充电。
2.如权利要求1所述的动态随机存取存储器控制器,其中:
该微控制器在有对应于该阶层的存取指令等待于该指令队列、且该计数器大于零时,优先于该阶层的再充电,执行该指令队列中该阶层的存取指令。
3.如权利要求1所述的动态随机存取存储器控制器,其中:
该微控制器再充电该阶层的单一存储单元堆时,还调升该指令队列中对应于该阶层除该单一存储单元堆外的其他存储单元堆的存取指令的优先权;且
该微控制器结束再充电该阶层的所述单一存储单元堆时,还恢复该指令队列中对应于该阶层除该单一存储单元堆外的其他存储单元堆的存取指令的优先权。
4.如权利要求1所述的动态随机存取存储器控制器,其中:
该微控制器再充电该阶层的单一存储单元堆时,还调降该指令队列中对应于该单一存储单元堆的存取指令的优先权。
5.如权利要求4所述的动态随机存取存储器控制器,其中:
该微控制器结束再充电该阶层的所述单一存储单元堆时,还恢复该指令队列中对应于该单一存储单元堆的存取指令的优先权。
6.如权利要求1所述的动态随机存取存储器控制器,其中:
该微控制器对该阶层一次性再充电时,还调降该指令队列中对应于该阶层的存取指令的优先权。
7.如权利要求6所述的动态随机存取存储器控制器,其中:
该微控制器结束对该阶层一次性再充电时,还恢复该指令队列中对应于该阶层的存取指令的优先权。
8.一种动态随机存取存储器控制方法,包括:
提供指令队列,使要发送至动态随机存取存储器的操作指令在其中排队;
以计数器计数对该动态随机存取存储器的一阶层完全再充电的次数;
在该计数器的计数尚未达一上限、且无对应于该阶层的存取指令等待于该指令队列时,连续对该阶层执行一次性再充电,该一次性再充电每次占用该阶层的全部存储单元堆;
在有对应于该阶层的存取指令等待于该指令队列、但该计数器为零时,对该阶层的多个存储单元堆执行逐堆再充电,该逐堆再充电每次占用该阶层的单个存储单元堆,使未轮到再充电的存储单元堆得以被存取;以及
计时每累积一监控时间单位,则令该计数器减一,
其中,所述方法还包括:
在对应的监控时间单位内对应的阶层闲置的区间,连续反复对该阶层进行该一次性再充电操作,而不每隔一监控时间单位进行该一次性再充电操作;以及
在该计数器达该上限时,不再在对应的监控时间单位对该阶层进行再充电。
9.如权利要求8所述的动态随机存取存储器控制方法,还包括:
在有对应于该阶层的存取指令等待于该指令队列、且该计数器大于零时,优先于该阶层的再充电,执行该指令队列中该阶层的存取指令。
10.如权利要求8所述的动态随机存取存储器控制方法,还包括:
再充电该阶层的单一存储单元堆时,还调升该指令队列中对应于该阶层除该单一存储单元堆外的其他存储单元堆的存取指令的优先权;且
结束再充电该阶层的所述单一存储单元堆时,还恢复该指令队列中对应于该阶层除该单一存储单元堆外的其他存储单元堆的存取指令的优先权。
11.如权利要求8所述的动态随机存取存储器控制方法,还包括:
再充电该阶层的单一存储单元堆时,还调降该指令队列中对应于该单一存储单元堆的存取指令的优先权。
12.如权利要求11所述的动态随机存取存储器控制方法,还包括:
结束再充电该阶层的所述单一存储单元堆时,还恢复该指令队列中对应于该单一存储单元堆的存取指令的优先权。
13.如权利要求8所述的动态随机存取存储器控制方法,还包括:
对该阶层一次性再充电时,还调降该指令队列中对应于该阶层的存取指令的优先权。
14.如权利要求13所述的动态随机存取存储器控制方法,还包括:
结束对该阶层一次性再充电时,还恢复该指令队列中对应于该阶层的存取指令的优先权。
CN201710083491.4A 2017-02-16 2017-02-16 动态随机存取存储器控制器及其控制方法 Active CN106875971B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201710083491.4A CN106875971B (zh) 2017-02-16 2017-02-16 动态随机存取存储器控制器及其控制方法
US15/599,818 US10216658B2 (en) 2017-02-16 2017-05-19 Refreshing of dynamic random access memory
US15/599,859 US9966129B1 (en) 2017-02-16 2017-05-19 Controller and control method for dynamic random access memory
TW106140706A TWI641995B (zh) 2017-02-16 2017-11-23 動態隨機存取記憶體控制器以及動態隨機存取記憶體控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710083491.4A CN106875971B (zh) 2017-02-16 2017-02-16 动态随机存取存储器控制器及其控制方法

Publications (2)

Publication Number Publication Date
CN106875971A CN106875971A (zh) 2017-06-20
CN106875971B true CN106875971B (zh) 2021-01-22

Family

ID=59166994

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710083491.4A Active CN106875971B (zh) 2017-02-16 2017-02-16 动态随机存取存储器控制器及其控制方法

Country Status (3)

Country Link
US (2) US10216658B2 (zh)
CN (1) CN106875971B (zh)
TW (1) TWI641995B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110520929B (zh) 2017-04-14 2022-07-22 华为技术有限公司 内存刷新方法、装置及计算机系统
AU2017409368B2 (en) * 2017-04-14 2022-07-07 Huawei Technologies Co., Ltd. Memory refresh technology and computer system
CN113168385A (zh) * 2018-08-03 2021-07-23 御眼视觉技术有限公司 访问动态存储器模块

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055760A (zh) * 2006-04-14 2007-10-17 海力士半导体有限公司 半导体存储器件的自刷新操作
CN102324247A (zh) * 2010-04-12 2012-01-18 英特尔公司 交错自刷新的方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
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
US7953921B2 (en) 2004-12-28 2011-05-31 Qualcomm Incorporated Directed auto-refresh synchronization
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
US7587547B2 (en) 2006-03-30 2009-09-08 Intel Corporation Dynamic update adaptive idle timer
TW201039345A (en) 2009-04-23 2010-11-01 Ibm Refresh controller and refresh controlling method for embedded DRAM
US8284615B2 (en) 2010-12-28 2012-10-09 Hynix Semiconductor Inc. Refresh control circuit and method for semiconductor memory device
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
CN103559142B (zh) * 2013-11-05 2017-03-08 中国科学院声学研究所 动态随机访问存储器的刷新方法
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
CN106128499A (zh) 2016-06-28 2016-11-16 田彬 一种用于DRAM或eDRAM刷新的装置及刷新方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101055760A (zh) * 2006-04-14 2007-10-17 海力士半导体有限公司 半导体存储器件的自刷新操作
CN102324247A (zh) * 2010-04-12 2012-01-18 英特尔公司 交错自刷新的方法

Also Published As

Publication number Publication date
TWI641995B (zh) 2018-11-21
US10216658B2 (en) 2019-02-26
TW201832081A (zh) 2018-09-01
CN106875971A (zh) 2017-06-20
US20180232329A1 (en) 2018-08-16
US9966129B1 (en) 2018-05-08

Similar Documents

Publication Publication Date Title
KR20190130262A (ko) 해머 리프레쉬 동작을 수행하는 리프레쉬 제어 회로, 메모리 장치 및 메모리 장치의 동작 방법
CN106875971B (zh) 动态随机存取存储器控制器及其控制方法
US20170249104A1 (en) Memory controller and request scheduling method using the same
CN110546707B (zh) 内存刷新技术及计算机系统
US10535393B1 (en) Configuring dynamic random access memory refreshes for systems having multiple ranks of memory
CN110520929B (zh) 内存刷新方法、装置及计算机系统
US9411757B2 (en) Memory interface
CN1822224B (zh) 能利用缓冲器刷新数据的存储器装置及其刷新方法
KR20170045795A (ko) 메모리 장치 및 이를 포함하는 메모리 시스템
US8244972B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
US10180795B2 (en) Memory system utilizing a page buffer for prioritizing a subsequent read request over a pending write
CN105518784A (zh) 具有用于高可靠性操作的存储控制器的数据处理器和方法
CN106856098B (zh) 一种用于DRAM或eDRAM刷新的装置及其方法
US10446215B1 (en) System and method for adaptively optimized refresh of memory
EP2160686A2 (en) Phased garbage collection and house keeping operations in a flash memory system
US20180046389A1 (en) Memory controller and memory system including the same
CN110556139B (zh) 用以控制存储器的电路及相关的方法
CN106875970B (zh) 动态随机存取存储器控制器及其控制方法
US20200333980A1 (en) Data processing system and operating method thereof
CN111158585B (zh) 一种内存控制器刷新优化方法、装置、设备和存储介质
CN112259141B (zh) 动态随机存取存储器的刷新方法及内存控制器、电子装置
TW202333060A (zh) 用於在動態隨機存取記憶體記憶體控制器中高效更新管理之訊務感知可適性預充電排程器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CP03 Change of name, title or address

Address after: Room 301, 2537 Jinke Road, Zhangjiang High Tech Park, Pudong New Area, Shanghai 201203

Patentee after: Shanghai Zhaoxin Semiconductor Co.,Ltd.

Address before: Room 301, 2537 Jinke Road, Zhangjiang hi tech park, Shanghai 201203

Patentee before: VIA ALLIANCE SEMICONDUCTOR Co.,Ltd.

CP03 Change of name, title or address