CN112612596B - 命令调度方法、装置、设备和存储介质 - Google Patents

命令调度方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN112612596B
CN112612596B CN202011612715.4A CN202011612715A CN112612596B CN 112612596 B CN112612596 B CN 112612596B CN 202011612715 A CN202011612715 A CN 202011612715A CN 112612596 B CN112612596 B CN 112612596B
Authority
CN
China
Prior art keywords
command
temperature state
request
read
storage array
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
CN202011612715.4A
Other languages
English (en)
Other versions
CN112612596A (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.)
Haiguang Information Technology Co Ltd
Original Assignee
Haiguang Information Technology 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 Haiguang Information Technology Co Ltd filed Critical Haiguang Information Technology Co Ltd
Priority to CN202011612715.4A priority Critical patent/CN112612596B/zh
Publication of CN112612596A publication Critical patent/CN112612596A/zh
Application granted granted Critical
Publication of CN112612596B publication Critical patent/CN112612596B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Dram (AREA)

Abstract

本申请提供一种命令调度方法、装置、设备和存储介质,该方法包括:获取存储阵列的刷新次数;在所述刷新次数达到第一预设次数时,生成所述存储阵列的温度状态读取请求,并执行温度状态读取请求;获取所述存储阵列当前的温度状态读取次数;判断所述温度状态读取次数是否达到第二预设次数;若所述温度状态读取次数达到所述第二预设次数,生成所述存储阵列的数据选通信号的漂移补偿操作请求;在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿操作请求,并将温度状态读取次数复位。本申请减少了计数器位宽数,节省了硬件资源,降低了仲裁器的复杂度。

Description

命令调度方法、装置、设备和存储介质
技术领域
本申请涉及内存技术领域,具体而言,涉及一种命令调度方法、装置、设备和存储介质。
背景技术
DDR5 SDRAM是第五代双倍数据速率同步动态随机内存芯片颗粒,相比较于DDR4,其IO接口电压降低,接口速率大幅提高,内存容量更大,接口信号减少,因而能够提供低功耗,高带宽,高容量的内存系统。DDR5颗粒从降低功耗角度考量,采用数据总线上数据选通信号DQS和数据线DQ延时不平衡设计,减少了DQ数据线缓冲器门数,以达到降低功耗的目的。新设计由于DQS和DQ在DRAM(Dynamic Random Access Memory,动态随机存取存储器)内部延迟单元数量不一样,因此受到温度和电压变化的影响导致两者歪斜值相应变化。内存控制器必须适时地根据DDR5内部DQS和DQ的歪斜变化来调整DQ数据的发送时间,以达到在温度电压变化导致的DQS信号延迟变化的情况下,DQ抵达时间和DQS采样DQ时间关系固定,进而保证数据写入功能正确。
DDR5通过内部置有DQS延迟单元相同电路的拷贝,来构成环形振荡器,外部系统可以通过MPC DQS Start命令启动环形振荡器计数器,在一定时间内,由内存输入时钟产生计数使能信号,在使能信号有效条件下,环形振荡器计数值可计算出延迟单元的的环形振荡器计数结果,这个的环形振荡器计数结果可近似模拟DQS数据线延迟模拟量。DDR5初始化需要做一系列地址控制命令线训练以及数据总线训练,以及DQS延迟拷贝电路延迟值的初始监测,并被内存控制器通过MRR命令读取作为初始参考值。在正常工作模式中,内存控制系统定时通过MPC DQS Oscillator start命令启动DQS拷贝电路环形振荡器计数器,DRAM定时计数结束后,内存控制器通过MRR46,MRR47命令获得DQS拷贝电路计数器实时计数值。基于DQS拷贝电路环形振荡器计数器的初始计数值和实时计数器计数值,可通过公式计算得到近似的DQS信号线延迟随温度电压变化而变化的数值。内存子系统定时通过MRR命令读取DQS拷贝电路环形振荡器计数值之后,和系统初始训练得到的初始值通过计算可得DQS延迟变化情况,通过调整控制器DQ延迟,可使得DRAM内部DQS采样DQ信号有可靠的建立时间和保持时间裕量,保证DRAM写数据通路功能正确。
DDC(DQS Drift Compensation,DQS漂移补偿)相关的寄存器是MR46(ModeRegister,模式寄存器,简称“MR”)和MR47,控制器需要发送MRR46和MRR47命令,然后根据返回来的寄存器计数值和初始读取值通过计算来更新DQ信号的延迟发送单元值。
类似的,TCR(Temperature Controlled Refresh,温度控制刷新),温度控制刷新也需要MRR(Mode Register Read,模式寄存器读命令)命令来读取DRAM内部寄存器温度状态,并根据当前的温度状态区间做相应的刷新频率调整,TCR相关寄存器是MR4,需要控制器发送MRR4读命令。
MRR命令发送需要在SDRAM的所有存储块Bank都处于空闲状态,因此发送MRR命令需要打断当前读写流水线,需要Pre-charge(预充电)当前存储阵列Rank内所有Bank内已打开的Row(行),因此会降低带宽性能。
假如DDC和TCR控制逻辑按照每一个Rank单独提出请求并由仲裁器仲裁,DDC和TCR控制逻辑提出的请求间隔时间各自不同,有各自的计数器来计时,使得控制器时钟计数位宽过大,而且使用多个计数器,造成资源浪费。
发明内容
本申请实施例的目的在于提供一种命令调度方法、装置、设备和存储介质,减少了计数器位宽数,节省了硬件资源,降低了仲裁器的复杂度。
本申请实施例第一方面提供了一种命令调度方法,包括:获取存储阵列的刷新次数;在所述刷新次数达到第一预设次数时,生成所述存储阵列的温度状态读取请求,并执行所述温度状态读取请求;获取所述存储阵列当前的温度状态读取次数;判断所述温度状态读取次数是否达到第二预设次数;若所述温度状态读取次数达到所述第二预设次数,生成所述存储阵列的数据选通信号的漂移补偿请求;在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求。
于一实施例中,所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求,包括:在独占的仲裁时间区间内,发送对所述各个存储阵列的环形振荡器计数器启动命令;基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令;基于所述预设时序规则,依次发送对所述各个存储阵列的环形振荡器计数结果的读命令。
于一实施例中,还包括:若所述温度状态读取次数未达到所述第二预设次数,在独占的仲裁时间区间内,基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令。
于一实施例中,在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求之前,包括:关闭各个存储阵列中已激活的页面。
于一实施例中,在所述关闭各个存储阵列中已激活的页面之前,还包括:将已缓存的读写命令执行完毕。
于一实施例中,在所述关闭各个存储阵列中已激活的页面之前,还包括:可选的,阻止接收上游器件的读写命令。
于一实施例中,在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求之前,还包括:在所述关闭各个存储阵列中已激活的页面之后,按照预设优先级,将所述各个存储阵列当前缓存的紧急刷新命令执行完毕。
于一实施例中,还包括:接收针对所述读命令的返回数据;校验所述返回数据的完整性,并在所述返回数据出错时,发送报错信息,并重新执行预设次数的所述读命令,直至所述返回数据没有错误后,释放仲裁总线控制权。
本申请实施例第二方面提供了一种命令调度装置,包括:第一获取模块,用于获取存储阵列的刷新次数;第一生成模块,用于在所述刷新次数达到第一预设次数时,生成所述存储阵列的温度状态读取请求,并执行所述温度状态读取请求;第二获取模块,用于获取所述存储阵列当前的温度状态读取次数;判断模块,用于判断所述温度状态读取次数是否达到第二预设次数;第二生成模块,用于若所述温度状态读取次数达到所述第二预设次数,生成所述存储阵列的数据选通信号的漂移补偿请求;执行模块,用于在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求。
于一实施例中,所述执行模块用于:在独占的仲裁时间区间内,发送对所述各个存储阵列的环形振荡器计数器启动命令;基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令;基于所述预设时序规则,依次发送对所述各个存储阵列的环形振荡器计数结果的读命令。
于一实施例中,还包括:发送模块,用于若所述温度状态读取次数未达到所述第二预设次数,基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令。
于一实施例中,还包括:预处理模块,用于在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求之前,关闭各个存储阵列中已激活的页面;所述预处理模块还用于:在所述关闭各个存储阵列中已激活的页面之前,将已缓存的读写命令执行完毕;所述预处理模块还用于:在所述关闭各个存储阵列中已激活的页面之前,可选的,阻止接收上游器件的读写命令。
于一实施例中,所述执行模块还用于,在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求,或者温度状态读取请求和所述漂移补偿请求之前,在所述关闭各个存储阵列中已激活的页面之后,按照预设优先级,将所述各个存储阵列当前缓存的紧急刷新命令执行完毕。
于一实施例中,还包括:接收模块,用于接收针对所述读命令的返回数据;校验模块,用于校验所述返回数据的完整性,并在所述返回数据出错时,发送报错信息,并重新执行预设次数的所述读命令,直至所述返回数据没有错误后,释放仲裁总线控制权。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行本申请实施例第一方面及其任一实施例的方法,以对存储阵列的温度状态读取请求和漂移补偿请求进行调度。
本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的命令调度方法、装置、设备和存储介质,温度状态读取请求间隔基于刷新命令次数计数结果,减少了计数器个数和位宽数,节省了硬件资源;漂移补偿请求间隔基于温度状态读取请求次数,复用了计时信息,节省了单独计数的硬件资源;对于温度状态读取请求和漂移补偿请求命令请求使用独占的仲裁时间进行调度,降低了仲裁器的复杂度,减少了系统缺陷几率。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的结构示意图;
图2为本申请一实施例的命令调度场景的模组原理示意图;
图3为本申请一实施例的命令调度方法的流程示意图;
图4为本申请一实施例的命令调度方法的流程示意图;
图5为本申请一实施例的命令调度装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以对存储阵列的温度状态读取请求和漂移补偿请求进行调度。
于一实施例中,电子设备1可以是手机、平板电脑、笔记本电脑、台式计算机等设备。
为了清楚的描述本实施例的方案,现将涉及的名词定义如下:
DDR:Double Data Rate,双倍速率,即时钟上升和下降沿都传输数据。
SDR:Single Data Rate,只在时钟上升沿或者下降沿传输数据。
SDRAM,Synchronous Dynamic Random Memory,同步动态随机存储器。
DDR5:DDR5 SDRAM的简写,即第五代双倍速率同步动态随机存储器。
RCD:Register Clock Driver,寄存时钟缓冲器。
MC:Memory Controller,内存控制器。
DIMM:Dual In-line Memory,内存模组。
RDIMM:Register DIMM,寄存器内存模组,是一种带RCD来进行CA信号缓冲的DIMM。
UDIMM,Un-buffer DIMM,无缓冲内存模组。
RAS:Reliability,Availability,Stability,稳定性可靠性。
DQ:SDRAM数据信号线。
DQS:SDRAM数据选通信号线,为差分信号,DQ Strobe。
DDC:DQS Drift Compensation,DQS漂移补偿。
TCR:Temperature Controlled Refresh,温度控制刷新。
MPC:Multi-Purpose Command,多用途命令。
MR:Mode Register,模式寄存器。
MRR:Mode Register Read,模式寄存器读命令。
SRX:Self-Refresh Exit,自刷新退出。
ACT:Active,激活。
Pre-charge:预充电。
Rank:存储阵列。
Bank:块。
Bank Group:块组。
Row:行,Active命令只能激活一个Bank内任意一个Row,可称为打开一个页面。
请参看图2,其为本申请一实施例的命令调度场景的模组原理示意图,包括:
逻辑控制模块1.1:是TCR和DDC控制逻辑,负责根据定时电路对所有物理Rank提出MRR4命令、MPC DQS Oscillator Start命令、MRR46命令、MRR47命令请求以及DQ发送延迟单元更新请求。
缓冲器1.2:用于缓冲读写命令请求和写数据,并可以产生ACT命令、RD命令、WR命令、Pre-charge命令,并可以维护当前所打开的Bank页面信息。缓冲器1.2会在刷新模块1.3提出的紧急请求命令时,且对应的Rank有打开的页面时,产生Pre-Charge命令请求并发送给仲裁电路1.4,若时序满足,则请求仲裁电路1.4发送Pre-Charge命令请求,以允许REF命令(刷新命令)可以提出请求。
刷新模块1.3是一种刷新控制逻辑电路,包含时钟计数器,根据所配置的刷新时间间隔、时间参数、以及按Rank维护刷新请求数量和当前刷新请求的紧急状态级别,产生刷新请求。刷新模块1.3在缓冲器1.2的各Rank页面信息显示Rank允许发送REF命令,且当时序满足要求时发出REF请求命令。
仲裁电路1.4是一种仲裁逻辑电路,用于根据预设的优先级,对逻辑控制模块1.1、缓冲器1.2和刷新模块1.3,提出的命令请求仲裁调度发送。
命令发送模块1.5以及CA TX IO接口1.6分别是命令编码和发送IO单元。数据收发IO接口1.7是数据发送和接收IO单元。数据接收模块1.8,用于根据命令发送模块1.5表示的返回数据类型来处理数据,若接收到的数据是正常读数据则走正常读数据通道,并进行数据解CRC(循环冗余校验,Cyclic Redundancy Check)校验、解扰码和ECC校验(纠错内存)。若接收到的数据是MRR命令读数据,则直接丢弃CRC数据,并将数据直接发送给MRR数据完整校验模块1.9。
MRR数据完整性校验模块1.9,是MRR数据完整性校验模块,对接收的MRR数据根据数据特征进行检查,以判断接收数据在正确时才使用,否则报错。
存储与状态寄存器1.10,可用于当前TCR、或者TCR和DDC对各Rank一次完整操作的计数次数、存储各Rank的不同的MRR读返回数据,和错误状态寄存器。该模块提供MRR数据用以调试和上层系统软件使用。同时可以对出错次数计数,以便逻辑控制模块1.1在重复错误次数大于一定次数时报致命错误中断。
每一次SRX之后,在每个Rank当前REF待刷新个数为0后,执行各Rank的MPC DQSOscillator Start命令,然后执行各Rank MRR4读操作,在DQS Oscillator Start计时结束后,依次对各Rank执行MRR46,MRR47请求命令。其时序由逻辑控制模块1.1,控制,由于是顺序执行,所以可以共享一套计数器值。MPC DQS Oscillator运行时间计数需要另外一个计数器,而各Rank的MPC DQS Oscillator命令可以同时发送,因此各Rank共享此一个计数器。
于一实施例中,由于校准命令ZQ(ZQ是DDR一个引脚,在这个引脚上接有一个低公差参考电阻,这个引脚通过一个命令集,通过片上校准引擎来自动校验数据输出驱动器导通电阻与片内终结的终结电阻值。)命令分为ZQCal命令和ZQLatch命令,ZQCal命令大约500个cycle,也可以将ZQCAL命令、ZQLatch命令或者只是ZQLatch命令,在逻辑控制模块1.1中调读发送。在TCR和DDC命令请求独占执行期间,也可以实现ZQ Latch命令的顺带执行,减少仲裁电路复杂度。或者让ZQ Latch命令在TCR命令独占执行期间执行,减少设计复杂度、仲裁电路复杂度和时序错误隐患。
于一实施例中,TCR相关和DDC相关命令也可分别单独操作,TCR对各Rank的MRR4命令连续申请,DDC对各Rank的命令操作连续申请。
请参看图3,其为本申请一实施例的命令调度方法,该方法可由图1所示的电子设备1来执行,并可以基于如图2所示的模组原理,对存储阵列的温度状态读取请求和漂移补偿请求进行调度。该方法包括如下步骤:
步骤301:获取存储阵列的刷新次数。
在本步骤中,刷新次数是基于控制器发送的刷新命令次数,可以由如图2中所示的REF计数器1.12来记录刷新次数。
步骤302:在刷新次数达到第一预设次数时,生成存储阵列的温度状态读取请求,并执行所述温度状态读取请求,温度状态读取计数器加1。
在本步骤中,由于内存芯片颗粒的频繁读写后,芯片的温度会发生升高,读写频率降低或者不读写数据时,芯片颗粒的温度会降低,颗粒温度太高会导致数据丢失,因此为了保证芯片颗粒正常工作,可以在存储阵列刷新一定的次数后进行温度状态读取,根据颗粒的实时温度状态信息调整控制器的读写数据频率,此处第一预设次数就是基于实际需求设定的温度状态读取时间间隔,比如芯片颗粒每5微秒刷新一次,假设第一预设次数是2万,则温度状态读取为每100ms一次。可以由REF计数器1.12在SRX或者上一次TCR执行完毕后清零,并基于某一Rank的发出的REF刷新命令计数。若计数达到所配置的第一预设次数,或者对第一预设次数计数值做减法计数到0,则产生一次TCR请求(即温度状态读取请求)。在正常工作模式下,可以根据对任意选择的某一Rank的刷新命令计数器值,产生一次TCR命令请求,并可以在独占的仲裁时间区间内,执行所述温度状态读取请求。
步骤303:获取存储阵列当前的温度状态读取次数。
在本步骤中,可以基于TCR计数器1.11的计数结果,获得当前的温度状态读取次数。
步骤304:判断温度状态读取次数是否达到第二预设次数。若是进入步骤305,否则进入步骤307。
在本步骤中,以DDR5为例,由于DQS和DQ在DRAM内部延迟单元数量不一样,因此受到温度和电压变化的影响导致两者歪斜值相应变化。内存控制器必须适时地根据DDR5内部DQS和DQ的歪斜变化来调整DQ数据的发送时间,以达到在因为温度与电压变化导致的DQS信号延迟变化的情况下,DQ抵达时间和DQS采样DQ时间关系固定,进而保证数据写入功能正确。因此,每经过一段时间就需要进行数据选通信号的漂移补偿。
于一实施例中,一般TCR相关命令MRR4的读取频率会几倍于DDC相关命令MRR46,MRR47的发送频率,因此可以以TCR执行频率为基准,DDC相关命令可以根据寄存器设置第二预设次数区间内间隔执行。其中,第二预设次数的取值范围可以是1至31。比如第二预设次数为16,若温度状态读取次数达16次,进入步骤305,否则进入步骤307。
于一实施例中,在TCR计数器1.11计数时,可以根据配置的第二预设次数值减法计数或者初始为0进行加法计数,当减法计数到0或者按加法计数和第二预设次数值相等时,进入步骤305。
步骤305:生成存储阵列的数据选通信号的漂移补偿请求。
在本步骤中,若温度状态读取次数达到第二预设次数,在下一次TCR操作时,逻辑控制模块1.1就会调度TCR和DDC发送相关请求命令。即DDC按照TCR的执行间隔次数对所有Rank连续提出命令操作请求。
步骤306:在独占的仲裁时间区间内,对全部存储阵列连续执行温度状态读取请求和漂移补偿请求,复位温度状态读取计数器。
在本步骤中,此时,同时存在TCR命令请求和DDC命令请求需要调度,根据TCR,DDC两种任务特点,在独占的仲裁时间区间内,其他命令部分暂停或者全部暂停执行,使冲裁电路1.4只对所有Rank连续执行TCR和DDC功能相关的命令请求。通过独占时间执行DDC和TCR功能,降低了仲裁逻辑复杂度和消除多种命令请求同时申请仲裁导致的仲裁缺陷几率。
步骤307:基于预设时序规则,依次发送对各个存储阵列温度状态的读命令,并在独占的仲裁时间内,执行所述温度状态读取请求。
在本步骤中,若温度状态读取次数未达到第二预设次数,说明此时只有TCR命令请求需要调度,则由上述的仲裁电路1.4发出每个Rank的MRR4命令(即温度状态的读命令)。
上述命令调度方法,根据TCR,DDC两种任务特点,提出在独占的时间区间内对所有Rank连续执行TCR,DDC功能相关的命令。考虑到TCR相关命令MRR4的读取频率会几倍于DDC相关命令MRR46,MRR47相关的频率,因此TCR按一定的基准对所有Rank连续提出命令操作请求,DDC按照TCR的执行间隔次数对所有Rank连续提出命令操作请求。当只有TCR命令请求的时候,仲裁电路发出每个Rank的MRR4命令。当TCR命令和DDC命令都有操作请求的时候,在独占的仲裁时间区间内对所有Rank连续执行TCR,DDC功能相关的命令请求。
其中,温度状态读取请求间隔,基于刷新命令次数计数结果,减少了计数器位宽数,节省了硬件资源。漂移补偿请求间隔,基于温度状态读取请求次数,复用了计时信息,节省了单独计数的硬件资源。对于温度状态读取请求和漂移补偿请求命令请求,使用独占的仲裁时间进行调度,降低了仲裁器的复杂度,减少了系统缺陷几率。
请参看图4,其为本申请一实施例的命令调度方法,该方法可由图1所示的电子设备1来执行,并可以基于如图2所示的模组原理,对存储阵列的温度状态读取请求和漂移补偿请求进行调度。该方法包括如下步骤:
步骤401:获取存储阵列的刷新次数。详细参见上述实施例中对步骤301的描述。
步骤402:在刷新次数达到第一预设次数时,生成存储阵列的温度状态读取请求,并执行所述温度状态读取请求。详细参见上述实施例中对步骤302的描述。
步骤403:获取存储阵列当前的温度状态读取次数。详细参见上述实施例中对步骤303的描述。
步骤404:判断温度状态读取次数是否达到第二预设次数。若是进入步骤405,否则进入步骤413。详细参见上述实施例中对步骤304的描述。
步骤405:若温度状态读取次数达到第二预设次数,生成存储阵列的数据选通信号的漂移补偿请求。详细参见上述实施例中对步骤305的描述。
步骤406:阻止接收上游器件的读写命令。
步骤407:将已缓存的读写命令执行完毕。
在本步骤中,如果有已缓存的命令请求,则大大增加了命令的延时。因此,为了避免命令延迟过大,在执行TCR和DDC相关命令操作之前,可以向上游器件提出RAS请求(控制器不接收新读写命令),在得到授权后将控制器内缓冲读写命令执行完,上游器件在控制器RAS请求撤销前不得再发读写命令请求。
步骤408:关闭各个存储阵列中已激活的页面。
在上述步骤406至步骤408中,当同时存在DDC命令请求和TCR命令请求需要调度发送时,在发送DDC命令请求和TCR命令请求之前,可以先进行预处理工作,为了实现在独占的仲裁时间内执行DDC命令请求和TCR命令请求的发送,可以将各Rank的激活的页面全部关掉。
于一实施例中,上述步骤406至步骤408具体可以包括:在将各Rank激活的页面全部关掉前,可以在阻止上游读写命令接收的同时,将命令缓冲器1.2中已缓存的待执行读写命令执行完毕,然后请求命令缓冲器1.2关掉所有Rank的所有页面。
于一实施例中,上述步骤406至步骤408具体可以包括:在向上游提出命令停止发送并得到授权后,将命令缓冲器1.2中的待执行读写命令执行完毕,然后请求命令缓冲器1.2关掉所有Rank的所有页面。
于一实施例中,上述步骤406至步骤408具体可以包括:阻止命令缓冲器1.2激活,以及阻止所有读写命令发送,然后申请命令缓冲器1.2关闭所有Rank的所有页面。
上述三种方式都可以将所有Rank的所有页面关闭。
步骤409:按照预设优先级,将各个存储阵列当前缓存的紧急刷新命令执行完毕。
在本步骤中,实际应用中,为了保证SDRAM不会丢失数据,SDRAM的Refresh命令在紧急情况下有更高的优先级。在关闭各个存储阵列中已激活的页面时,可以在发送DDC命令请求和TCR命令请求之前,按照预设优先级,将各个存储阵列当前缓存的紧急刷新命令执行完毕。
于一实施例中,可以将所有Rank待执行的刷新操作请求都执行完,用以消除紧急REF命令的竞争申请所带来仲裁电路仲裁复杂的问题隐患。也可以避免在寄存器MRR操作时,控制器提出紧急REF命令请求而得不到响应使得SDRAM数据丢失。
于一实施例中,在执行完各Rank待刷新的命令后,可以接受上游模块读写命令,但是此时仲裁电路1.4会阻止所有ACT和读写命令。
于一实施例中,在执行DDC或者TCR相关功能之前,命令缓冲器1.2中的命令可以不被执行完毕,也不阻止上游器件读写命令请求,只是申请Pre-Charge所有Rank的所有Bank,并阻止ACT命令发送。
于一实施例中,在执行DDC或者TCR相关功能之前,可以不必执行完待刷新命令请求,如果有刷新命令请求且是紧急的,则将紧急刷新命令请求和DDC或者TCR相关命令请求一起仲裁,紧急刷新命令请求优先级高于其他命令请求。
步骤410:在独占的仲裁时间区间内,发送对各个存储阵列的环形振荡器计数器启动命令。
在本步骤中,在各Rank的刷新命令请求清空或者不再紧急后,若是TCR,DDC合并命令请求,则首先根据时序条件,依次发出各Rank的MPC Oscillator Start(即环形振荡器计数器启动命令),该指令也可以是各Rank同时发送。MPC DQS Oscillator Start命令在缓冲器1.2为空时候被仲裁电路1.4发送。SDRAM内部计数器在DQ线上没有数据传输时候计数,计数结果更准确。
于一实施例中,MPC Oscillator Start命令如果计数时间过长,可以将该命令在步骤406的Pre-charge或者Refresh命令之前发送,或者更早的时间提前发送,以避免该命令后计数器计数时间过长导致等待时间过长。
步骤411:基于预设时序规则,依次发送对各个存储阵列温度状态的读命令。
在本步骤中,然后,基于预设时序规则,依次发送各Rank的MRR4命令,实现依次发送对各个存储阵列温度状态的读命令。
步骤412:基于预设时序规则,依次发送对各个存储阵列的环形振荡器计数结果的读命令。
在本步骤中,基于预设时序规则,依次执行各Rank的MRR46,MRR47命令发送,实现依次发送对各个存储阵列的环形振荡器计数结果的读命令。
步骤413:若温度状态读取次数未达到第二预设次数,基于预设时序规则,依次发送对各个存储阵列温度状态的读命令。然后进入步骤414。详细参见上述实施例中对步骤307的描述。
于一实施例中,当只存在TCR命令请求需要调度,也可以在发送MRR4命令前执行步骤406至步骤409,进行预处理,实现在独占的仲裁时间内执行TCR命令请求的发送。
步骤414:接收针对读命令的返回数据。
在本步骤中,可以通过图2所示的数据接收模块1.8接收针对读命令的返回数据。
步骤415:校验返回数据的完整性,并在返回数据出错时,发送报错信息,并重新执行预设次数的读命令,直至返回数据没有错误后,释放仲裁总线控制权。
在本步骤中,针对读命令的返回数据进行完整性校验,若存储与状态寄存器1.10显示当前寄存器MRR操作读数据校验错误,则存储与状态寄存器1.10的错误计数次数加1,逻辑控制模块1.1重新调度执行TCR和DDC的所有MRR读操作,或者可选的调度执行出错的某些Rank的MRR4,MRR46,MRR47读操作。如果重复次数超过配置的次数(比如3次),则报错,并中断。逻辑控制模块1.1待调度命令发送完成且返回数据没有错误后,逻辑控制模块1.1释放请求命令或者对命令缓冲器1.2的阻止命令或者对上游器件读写命令的阻止命令,释放对仲裁电路的独占控制权。
于一实施例中,也可以软件定时维护DDC和TCR命令的发送,在需要执行DDC和TCR命令时候,由系统软件首先停止读写命令请求发送,然后将缓冲器1.2内命令执行完毕,查询待刷新命令请求低于一定安全数量时候,由系统软件执行DDC和TCR命令的发送,DDC命令是否发送可以根据定时间隔,或者TCR命令个数间隔,或者根据TCR命令操作读取MR4温度区间结果决定是否发送,这种实现方式更加灵活。
上述命令调度方法,TCR相关命令和DDC相关命令发送是在一个连续时间内完成,节省了在不同时间内完成需要重新打断读写流水线的时间。在MRR读命令发送前,可以Pre-charge所有Rank所有已打开的Bank,对缓存的Refresh命令需全部发送,然后执行MRR4,MRR46,MRR47操作,以及DQ延迟单元更新,再重新激活Bank。精简了支持DDC和TCR功能所需的计数器,节省了硬件资源。简化了DDC和TCR的设计,降低了设计复杂度和复杂度,从架构上减少了设计缺陷可能,加速设计验证进程,提高设计质量。通过独占时间执行DDC和TCR功能,降低了仲裁逻辑复杂度和消除多种命令请求同时申请仲裁导致的仲裁缺陷几率。
请参看图5,其为本申请一实施例的命令调度装置500,该装置可应用于图1所示的电子设备1,并可以基于如图2所示的模组原理,对存储阵列的温度状态读取请求和漂移补偿请求进行调度。该装置包括:第一获取模块501、第一生成模块502、第二获取模块503、第二生成模块504和执行模块505,各个模块的原理关系如下:
第一获取模块501,用于获取存储阵列的刷新次数。详细参见上述实施例中对步骤301的描述。
第一生成模块502,用于在刷新次数达到第一预设次数时,生成存储阵列的温度状态读取请求。详细参见上述实施例中对步骤302的描述。
第二获取模块503,用于获取存储阵列当前的温度状态读取次数。判断模块,用于判断温度状态读取次数是否达到第二预设次数。详细参见上述实施例中对步骤303的描述。
第二生成模块504,用于若温度状态读取次数达到第二预设次数,生成存储阵列的数据选通信号的漂移补偿请求。详细参见上述实施例中对步骤304的描述。
执行模块505,用于在独占的仲裁时间区间内,对全部存储阵列连续执行温度状态读取请求和漂移补偿请求。详细参见上述实施例中对步骤305的描述。
于一实施例中,执行模块505用于:在独占的仲裁时间区间内,发送对各个存储阵列的环形振荡器计数器启动命令。基于预设时序规则,依次发送对各个存储阵列温度状态的读命令。基于预设时序规则,依次发送对各个存储阵列的环形振荡器计数结果的读命令。详细参见上述实施例中对步骤410至步骤412的描述。
于一实施例中,还包括:发送模块506,用于若温度状态读取次数未达到第二预设次数,基于预设时序规则,依次发送对各个存储阵列温度状态的读命令。详细参见上述实施例中对步骤306的描述。
于一实施例中,还包括:预处理模块507,用于在在独占的仲裁时间区间内,对全部存储阵列连续执行温度状态读取请求和漂移补偿请求之前,关闭各个存储阵列中已激活的页面。预处理模块507还用于:在关闭各个存储阵列中已激活的页面之前,将已缓存的读写命令执行完毕。预处理模块507还用于:在关闭各个存储阵列中已激活的页面之前,可选的,阻止接收上游器件的读写命令。详细参见上述实施例中对步骤406至步骤408的描述。
于一实施例中,执行模块505还用于,在在独占的仲裁时间区间内,对全部存储阵列连续执行温度状态读取请求和漂移补偿请求之前,在关闭各个存储阵列中已激活的页面之后,按照预设优先级,将各个存储阵列当前缓存的紧急刷新命令执行完毕。细参见上述实施例中对步骤409的描述。
于一实施例中,还包括:接收模块508,用于接收针对读命令的返回数据。校验模块509,用于校验返回数据的完整性,并在返回数据出错时,发送报错信息,并重新执行预设次数的读命令,直至返回数据没有错误后,释放仲裁时间。细参见上述实施例中对步骤414至步骤415的描述。
上述命令调度装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (14)

1.一种命令调度方法,其特征在于,包括:
获取存储阵列的刷新次数;
在所述刷新次数达到第一预设次数时,生成所述存储阵列的温度状态读取请求,并执行所述温度状态读取请求;
获取所述存储阵列当前的温度状态读取次数;
判断所述温度状态读取次数是否达到第二预设次数;
若所述温度状态读取次数达到所述第二预设次数,生成所述存储阵列的数据选通信号的漂移补偿请求;
在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求。
2.根据权利要求1所述的方法,其特征在于,所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求,包括:
在独占的仲裁时间区间内,发送对所述各个存储阵列的环形振荡器计数器启动命令;
基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令;
基于所述预设时序规则,依次发送对所述各个存储阵列的环形振荡器计数结果的读命令。
3.根据权利要求1所述的方法,其特征在于,还包括:
若所述温度状态读取次数未达到所述第二预设次数,基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令。
4.根据权利要求1所述的方法,其特征在于,在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求之前,包括:
关闭各个存储阵列中已激活的页面。
5.根据权利要求4所述的方法,其特征在于,在所述关闭各个存储阵列中已激活的页面之前,还包括:
将已缓存的读写命令执行完毕。
6.根据权利要求4所述的方法,其特征在于,在所述关闭各个存储阵列中已激活的页面之前,还包括:
阻止接收上游器件的读写命令。
7.根据权利要求4所述的方法,其特征在于,在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求之前,还包括:
在所述关闭各个存储阵列中已激活的页面之后,按照预设优先级,将所述各个存储阵列当前缓存的紧急刷新命令执行完毕。
8.根据权利要求2或3所述的方法,其特征在于,还包括:
接收针对所述读命令的返回数据;
校验所述返回数据的完整性,并在所述返回数据出错时,发送报错信息,并重新执行预设次数的所述读命令,直至所述返回数据没有错误后,释放仲裁总线控制权。
9.一种命令调度装置,其特征在于,包括:
第一获取模块,用于获取存储阵列的刷新次数;
第一生成模块,用于在所述刷新次数达到第一预设次数时,生成所述存储阵列的温度状态读取请求,并执行所述温度状态读取请求;
第二获取模块,用于获取所述存储阵列当前的温度状态读取次数;
判断模块,用于判断所述温度状态读取次数是否达到第二预设次数;
第二生成模块,用于若所述温度状态读取次数达到所述第二预设次数,生成所述存储阵列的数据选通信号的漂移补偿请求;
执行模块,用于在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求。
10.根据权利要求9所述的装置,其特征在于,所述执行模块用于:
在独占的仲裁时间区间内,发送对所述各个存储阵列的环形振荡器计数器启动命令;
基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令;
基于所述预设时序规则,依次发送对所述各个存储阵列的环形振荡器计数结果的读命令。
11.根据权利要求9所述的装置,其特征在于,还包括:
发送模块,用于若所述温度状态读取次数未达到所述第二预设次数,基于预设时序规则,依次发送对所述各个存储阵列温度状态的读命令。
12.根据权利要求9所述的装置,其特征在于,还包括:
预处理模块,用于在所述在独占的仲裁时间区间内,对全部所述存储阵列连续执行所述温度状态读取请求和所述漂移补偿请求之前,关闭各个存储阵列中已激活的页面;
所述预处理模块还用于:在所述关闭各个存储阵列中已激活的页面之前,将已缓存的读写命令执行完毕;
所述预处理模块还用于:在所述关闭各个存储阵列中已激活的页面之前,阻止接收上游器件的读写命令。
13.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行如权利要求1至8中任一项所述的方法,以对存储阵列的温度状态读取请求和漂移补偿请求进行调度。
14.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至8中任一项所述的方法。
CN202011612715.4A 2020-12-30 2020-12-30 命令调度方法、装置、设备和存储介质 Active CN112612596B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011612715.4A CN112612596B (zh) 2020-12-30 2020-12-30 命令调度方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011612715.4A CN112612596B (zh) 2020-12-30 2020-12-30 命令调度方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN112612596A CN112612596A (zh) 2021-04-06
CN112612596B true CN112612596B (zh) 2022-07-08

Family

ID=75249655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011612715.4A Active CN112612596B (zh) 2020-12-30 2020-12-30 命令调度方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN112612596B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113643746B (zh) * 2021-07-02 2023-09-26 深圳市宏旺微电子有限公司 闪存数据的分析方法、装置、终端设备及存储介质
CN114496047B (zh) * 2021-12-29 2023-08-29 深圳市紫光同创电子有限公司 双向数据选通采样信号dqs相位的调整方法及装置
CN114649021A (zh) * 2022-03-14 2022-06-21 长鑫存储技术有限公司 一种裕度调整方法、裕度调整电路及存储器

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5683888A (en) * 1979-12-11 1981-07-08 Nec Corp Memory circuit
JPH05189964A (ja) * 1992-01-16 1993-07-30 Mitsubishi Electric Corp Dramコントロール回路及び半導体装置のコントロール回路
JPH08147970A (ja) * 1994-11-21 1996-06-07 Matsushita Electric Ind Co Ltd Dramコントローラ
US6631440B2 (en) * 2000-11-30 2003-10-07 Hewlett-Packard Development Company Method and apparatus for scheduling memory calibrations based on transactions
US7369451B2 (en) * 2005-10-31 2008-05-06 Mosaid Technologies Incorporated Dynamic random access memory device and method for self-refreshing memory cells
JP2010176783A (ja) * 2009-02-02 2010-08-12 Elpida Memory Inc 半導体装置とその制御方法と半導体装置とそれを制御するコントローラとを含む半導体システム
US8489807B2 (en) * 2010-12-03 2013-07-16 International Business Machines Corporation Techniques for performing refresh operations in high-density memories
WO2013164699A2 (en) * 2012-05-01 2013-11-07 Marvell World Trade Ltd. Systems and methods for dqs gating
US20170110178A1 (en) * 2015-09-17 2017-04-20 Intel Corporation Hybrid refresh with hidden refreshes and external refreshes

Also Published As

Publication number Publication date
CN112612596A (zh) 2021-04-06

Similar Documents

Publication Publication Date Title
CN112612596B (zh) 命令调度方法、装置、设备和存储介质
US8909874B2 (en) Memory reorder queue biasing preceding high latency operations
US8862973B2 (en) Method and system for error management in a memory device
US11675659B2 (en) DDR memory error recovery
KR101746735B1 (ko) 고신뢰성 동작을 위한 메모리 제어기를 갖는 데이터 프로세서 및 방법
US9158616B2 (en) Method and system for error management in a memory device
JP2019520639A (ja) インテグラルポストパッケージリペア
US11561862B2 (en) Refresh management for DRAM
CN114902198B (zh) 用于异构存储器系统的信令
US20160117223A1 (en) Method for concurrent system management and error detection and correction requests in integrated circuits through location aware avoidance logic
NL2029034A (en) Adaptive internal memory error scrubbing and error handling
US10446215B1 (en) System and method for adaptively optimized refresh of memory
JP2023521249A (ja) Dramのリフレッシュ管理
CN117083588A (zh) 仲裁期间写入存储体组掩码
KR20230069234A (ko) Dram을 위한 리프레시 관리 목록
US9811453B1 (en) Methods and apparatus for a scheduler for memory access
CN112349342B (zh) 维护ddr5内存子系统的维护装置、方法、设备和存储介质
CN116157866A (zh) 存储器校准系统和方法
WO2017065802A1 (en) Scrubbing data in a memory device
US20220319582A1 (en) Memory management apparatus, memory management method, and computer-readable recording medium storing memory management program
EP3249533A1 (en) Integral post package repair
CN112965816B (zh) 内存管理技术及计算机系统
CN112382321B (zh) 动态随机存取存储器的刷新方法及内存控制器、电子装置
CN112259141B (zh) 动态随机存取存储器的刷新方法及内存控制器、电子装置
CN109582615B (zh) 一种ddr3控制系统

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