CN116010309B - 存储器控制器、***及片上***、时序参数控制方法 - Google Patents
存储器控制器、***及片上***、时序参数控制方法 Download PDFInfo
- Publication number
- CN116010309B CN116010309B CN202310132750.3A CN202310132750A CN116010309B CN 116010309 B CN116010309 B CN 116010309B CN 202310132750 A CN202310132750 A CN 202310132750A CN 116010309 B CN116010309 B CN 116010309B
- Authority
- CN
- China
- Prior art keywords
- phase
- command
- memory controller
- time sequence
- memory
- 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
Links
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Dram (AREA)
Abstract
本公开提供一种存储器控制器、***及片上***、时序参数控制方法,该存储器控制器包括命令仲裁器及时序参数控制模块;命令仲裁器,被配置为根据命令使用的目标相位,将与目标相位对应的命令有效信号置为有效;时序参数控制模块,被配置为针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动计数器按照第一预设值递减计数;在计数到第二预设值时,将与第二预设值对应的相位的时序参数满足信号置为有效。通过该方案,可避免存储器控制器损失时钟周期才能发出命令的问题,可提高存储器控制器的控制效率。
Description
技术领域
本公开涉及存储器技术领域,尤其涉及一种存储器控制器、***及片上***、时序参数控制方法。
背景技术
常规的内存(内存储器)可包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM),且内存一般使用的都是DRAM。对于内存来说,其内部包括多个存储器阵列,每个存储器阵列包括行和列。当需要对某一个地址进行读写时,首先要对地址所在行发送行激活(Active)命令,然后才能发送读(Read)/写(Write)命令。如果需要切换到另一个行地址进行读/写,需要把当前激活的行关闭,即发送Precharge命令后再激活新的行,然后再进行读/写。
在目前的芯片产品中,存储器的频率CK一般都大于存储器控制器的频率MC_CLK,例如两者之比为1:2或1:4。当MC_CLK:CK=1:N时,存储器控制器到端口物理层芯片(Physical,PHY)之间的接口DFI(The DDRPHY Interface)有N(N大于1)个相位,分别为phase0,phase1…phaseN-1。存储器控制器可从不同的相位向内存发出命令。对于存储器控制器来说,其向内存所发送的命令需要满足存储器说明书定义的时序参数,例如同一个存储器阵列的Active命令到Read/Write命令的延时时间不小于行寻址到列寻址延迟时间tRCD,从Active命令到Precharge命令的延时时间不小于内存行有效至预充电的最短周期tRAS等。因此,存储器控制器对时序参数的控制直接影响着内存的性能。
然而,目前的存储器控制器在对各种命令对应的时序参数进行控制时,就同一个命令而言,只是单纯地从该命令所发出的相位来设置与该命令对应的时序参数的实际初始计数值,未对时序参数的默认初始计数值的奇偶性进行区分,如此,可能会导致在特殊情况下,时序参数在已满足延时要求的基础上,还要再额外延迟一定的存储器时钟周期cycle才能被存储器控制器识别到,进而导致存储器控制器损失一定的cycle才能发出相应的命令,影响了存储器控制器的控制效率,进而影响了内存的性能。
发明内容
本公开的目的是提供一种存储器控制器、***及片上***、时序参数控制方法,可避免存储器控制器损失一定cycle才能发出命令的问题,提高存储器控制器的控制效率。
根据本公开的一个方面,提供一种存储器控制器,包括命令仲裁器及时序参数控制模块;
所述命令仲裁器,被配置为:根据当前发出的命令所使用的目标相位,将与所述目标相位对应的命令有效信号置为有效;
所述时序参数控制模块,被配置为:针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个存储器控制器的时钟周期按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效,表征所述命令仲裁器可在该相位发送与所述时序参数满足信号对应的时序参数指示的后续命令;所述第一预设值是存储器频率与存储器控制器频率的比值,在所述比值下形成的每种相位存在对应的第二预设值。
本公开一种可行的实现方式中,所述时序参数控制模块,具体被配置为:针对对应于所述命令的每种时序参数,将与该时序参数对应的计数器的实际初始计数值初始化为:该时序参数的默认初始计数值与第二预设值之和;所述第二预设值是所述目标相位的相位号。
本公开一种可行的实现方式中,在所述存储器控制器频率与所述存储器频率之比为1:2的情况下,存在第零相位及第一相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1;在所述存储器控制器频率与所述存储器频率之比为1:4的情况下,存在第零相位、第一相位、第二相位及第三相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1,与所述第二相位对应的相位号为2,与所述第三相位对应的相位号为3。
本公开一种可行的实现方式中,所述相位的个数与所述比值的数值相同。
本公开一种可行的实现方式中,所述计数器的计数值为非负数,且在当前的计数值小于所述比值的情况下,其在下一个存储器控制器时钟周期的计数值被配置为0。
本公开一种可行的实现方式中,所述时序参数为行寻址到列寻址延迟时间tRCD、内存行有效至预充电的最短周期tRAS、行到行的延时tRRD或写恢复延时tWR。
根据本公开的另一方面,还提供一种时序参数控制方法,应用于包括命令仲裁器及时序参数控制模块的存储器控制器,所述方法包括:
所述命令仲裁器根据当前发出的命令所使用的目标相位,将与所述目标相位对应的命令有效信号置为有效;
所述时序参数控制模块针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个存储器控制器的时钟周期按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效,表征所述命令仲裁器可在该相位发送与所述时序参数满足信号对应的时序参数指示的后续命令;
所述第一预设值是存储器频率与存储器控制器频率的比值,在所述比值下形成的每种相位存在对应的第二预设值。
本公开一种可行的实现方式中,所述针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,包括:
针对对应于所述命令的每种时序参数,将与该时序参数对应的计数器的实际初始计数值初始化为:该时序参数的默认初始计数值与第二预设值之和;所述第二预设值是所述目标相位的相位号。
根据本公开的另一方面,还提供一种存储器控制***,包括上述任一实施例中的存储器控制器、存储器装置以及连接于所述存储器控制器及所述存储器装置之间的端口物理层芯片(Physical,PHY)。
在一种可行的实现方式中,存储器装置可以是动态随机存取存储器,上述动态随机存取存储器可以是图形双倍速率同步动态随机存储器(Graphics Double DataRateSynchronous Dynamic Random Access Memory,GDDR SDRAM)。
根据本公开的另一方面,还提供一种片上***(System on Chip,SOC),该片上***包括上述存储器控制***。在一些使用场景下,该SOC的产品形式体现为GPU(GraphicsProcessing Unit,图形处理器) SOC;在另一些使用场景下,该SOC的产品形式体现为CPU(CentralProcessing Unit,中央处理器) SOC。
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的片上***SOC。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
根据本公开的另一方面,还提供一种电子设备,包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。
附图说明
图1是现有技术提供的时序参数控制时序图之一;
图2是现有技术提供的时序参数控制时序图之二;
图3为本公开一个实施例的存储器控制器的结构示意图;
图4为本公开一个实施例的时序参数控制时序图之一;
图5为本公开一个实施例的时序参数控制时序图之二;
图6为本公开一个实施例的时序参数控制时序图之三;
图7为本公开一个实施例的时序参数控制时序图之四;
图8为本公开一个实施例的时序参数控制方法的流程示意图。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任一和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
先对本公开实施例中所涉及的概念进行定义:
假设当MC_CLK:CK=1:2时,存在第零相位及第一相位,且与第零相位对应的相位号为0,表示为phase0,与第一相位对应的相位号为1,表示为phase1。假设当MC_CLK:CK=1:4时,存在第零相位、第一相位、第二相位及第三相位;且与第零相位对应的相位号为0,表示为phase0,与第一相位对应的相位号为1,表示为phase1,与第二相位对应的相位号为2,表示为phase2,与第三相位对应的相位号为3,表示为phase3。
cmd_vld_p0、cmd_vld_p1……cmd_vld_pn分别是存储器控制器内的命令仲裁器发出的命令有效信号,1表示命令有效。cmd_vld_p0有效表示phase0命令有效,对应DFI接口的phase0;cmd_vld_p1有效表示phase1命令有效,对应DFI接口的phase1;cmd_vld_pn有效表示phasen命令有效,对应DFI接口的phase n。
dfi_address_p0、dfi_address_p1……dfi_address_p n分别表示DFI接口的phase0命令接口、DFI接口的phase1命令接口、DFI接口的phase n命令接口,当然,在实际应用场景中,该命令接口可能还包括其他信号,此处省略。
trcd_cnt表示与tRCD时序参数对应的计数器。
timing_ok表示时序参数满足,1为信号有效。根据不同的时序参数,可以细分为对应的信号,例如针对tRCD时序参数,与之对应的timing_ok为trcd_ok,表示tRCD时序参数满足。trcd_ok具体包括trcd_ok_p0/p1/p n,trcd_ok_p0表示phase0时序满足,trcd_ok_p1表示phase1时序满足,trcd_ok_pn表示phase n时序满足。
param_trcd表示与tRCD时序参数对应的默认初始计数值,由存储器说明书中定义。
现有的存储器控制器在对与各种命令对应的时序参数进行控制时,就同一个命令而言,只是单纯地从该命令所发出的相位来设置与该命令对应的时序参数的实际初始计数值,未对时序参数的默认初始计数值的奇偶性进行区分,如此,可能会导致在特殊情况下,即使时序参数已满足存储器说明书定义的延时要求,但还要再额外延迟一定的存储器时钟周期cycle才能被存储器控制器识别到,进而导致存储器控制器需要多等待至少1个cycle(即损失至少1个cycle)才能确定自身已具备发出相应命令的条件,影响了存储器控制器的控制效率,进而影响了内存的性能。
下面将针对现有技术中所面临的上述特殊情况进行举例说明。
在MC_CLK:CK=1:2时,针对某一具体的时序参数,计数器从与该时序参数对应的实际初始计数值开始计数;计数过程中,每个MC_CLK,计数器的计数值减1,以此类推,直至计数器的计数值减至0,时序满足,表示存储器控制器在此之后才可发送与该时序参数对应的后续命令。
其中,若命令是在phase0发出时,实际初始计数值=存储器说明书定义中为该时序参数设定的默认初始计数值除以2后向上取整(当前数值有小数,则丢弃小数后将当整数值+1);若命令是在phase1发出,实际初始计数值=该时序参数设定的默认初始计数值与2求和所得到的和值除以2后向下取整(当前数值有小数,则丢弃小数取整)。
上述设计在默认初始计数值是奇数,并且命令是在phase0发出时,会造成1个cycle的损失,也会在默认初始计数值是偶数,并且命令是在phase1发出时,造成1个cycle的损失。
具体的,假设时序参数是tRCD,表示存储器控制器在发出Active命令后需要等待tRCD的默认初始计数值个cycle的时延才可发送Read/Write命令。
当与tRCD对应的默认初始计数值param_trcd=5(奇数),且Active0命令是从phase0发出时,计数器的实际初始计数值start_value=ceiling(param_trcd/2)=ceiling(5/2)=3,ceiling表示向上取整。计数器需要经过3个MC_CLK(6个CK)才能减至为0,表示存储器控制器需要6个CK后才可向存储器发送Read/Write命令。假设后续需要发送Read命令,如图1所示,在存储器装置侧,Active0(简化为ACT0) 命令到READ0命令的延时是6个cycle,会造成一个cycle的损失。
当与tRCD对应的默认初始计数值param_trcd=4(偶数),且Active0 命令从phase1发出时,计数器的实际初始计数值start_value=Rounddown((param_trcd+2)/2)=Rounddown((4+2)/2)=3,Rounddown表示向下取整。计数器需要经过3个MC_CLK(由于是从phase1发出,因此对应5个CK)才能减至为0,表示存储器控制器需要5个CK后才可向存储器发送Read/Write命令。假设后续需要发送Read命令,如图2所示,在存储器装置侧,ACT0命令到READ0 命令的延时是5个cycle,会造成一个周期的损失。
与之类似的,当MC_CLK:CK=1:4时,采用上述类似的做法,如果不区分phase0、phase1、phase2及phase3时序是否满足,也会损失一定的cycle。
基于此,本公开的目的是提供一种基于存储器控制器的时序参数控制方案,可避免存储器控制器损失一定的cycle才能发出命令的问题,以提高存储器控制器的控制效率。
具体地,本公开一个实施例提出一种存储器控制器,可以包括命令仲裁器及时序参数控制模块。当然,存储器控制器还可以包括其他模块,例如DFI接口控制模块。
以图3为例,图3示出一种具体的存储器控制器100,包括命令仲裁器101、时序参数控制模块102以及DFI接口控制模块103。
其中,存储器控制器100发出的命令通过符合DFI接口协议的DFI命令接口107发给PHY 104,PHY 104再经由存储器命令接口108将命令转换成符合存储器接口协议的命令,再通过存储器命令接口108发给存储器装置105。
当然,图3中DFI命令接口107仅仅示出dfi_address信号接口进行表示,可以理解,DFI命令接口107还可以包括其他未示出的命令接口。
当MC_CLK:CK=1:2,包括有phase0(P0)及phase1(P1)两个相位,当MC_CLK:CK=1:4时,包括有phase0(P0)、phase1(P1)、phase2(P2)及phase3(P3)四个相位。也即是说,在每个存储器控制器的时钟周期内包括的相位个数,等于存储器频率CK与存储器控制器频率MC_CLK的比值。
在本公开实施例中,当上层用户层要对存储器装置105进行读/写时,先通过AXI(Advanced eXtensible Interface)总线接口向存储器控制器100发送对应的Read/Write命令。
存储器控制器100将接收到的命令整理成有时序的队列后,由存储器控制器100的命令仲裁器101根据队列时序从队列中选择命令,经由DFI接口控制模块103、PHY 104将命令发送至存储器装置105。
在命令仲裁器101发出Read/Write命令之前,需要根据Read/Write命令所要访问的地址所在行是否已被激活,进而确定是否需要先针对该地址所在行发出Active命令,以对该地址所在行进行激活,待完成激活后,可针对该地址所在行发出Read/Write命令。若该地址所在行处于未激活状态,且其他地址所在行当前处于激活状态,则需要先向其他地址所在行发出Precharge命令后,才能对该地址所在行发出Active命令。
值得指出的是,上述命令仲裁器101控制Active命令的发出时机的过程,是较为成熟的现有技术,此处不再赘述。
在本公开实施例中,为了实现对时序参数的准确控制,对于存储器控制器100而言,可对其发出的命令进行跟踪。
其中,存储器控制器100所跟踪的命令,可以是存储器控制器100对存储器装置105进行读/写控制过程中所涉及到的至少一种命令,例如Active命令、Read命令、Write命令、Precharge命令等。
前文提及,每个存储器控制器的时钟周期内包括的相位个数,等于存储器频率CK与存储器控制器频率MC_CLK的比值,因此,在MC_CLK:CK≠1:1的情况下,在每个存储器控制的时钟周期内,包括多个相位。针对同一命令,当前存在的任意相位均可发出该命令,进而使得命令仲裁器101发出命令时,该命令的发出相位不固定。
在本公开实施例中,为了便于后续时序参数控制模块102能够区分出命令来自于哪个相位,针对每种相位,设置对应的命令有效信号cmd_vld(1有效)。例如,当前MC_CLK:CK=1:2,存在第零相位phase0以及第一相位phase1,也相应地设置cmd_vld_p0以及cmd_vld_p1。cmd_vld_p0有效表示从phase0发出的命令有效,cmd_vld_p1有效表示从phase1发出的命令有效。再例如,当前MC_CLK:CK=1:4,存在第零相位phase0、第一相位phase1、第二相位phase2以及第三相位phase3,也相应的设置cmd_vld_p0、cmd_vld_p1、cmd_vld_p2以及cmd_vld_p3。
基于此,为了便于后续时序参数控制模块102能够区分出命令来自于哪个相位,在本公开实施例中,命令仲裁器101,被配置为:根据当前发出的命令所使用的目标相位,将与目标相位对应的命令有效信号置为有效。
为了避免MC_CLK和CK频率不匹配时所损失的时钟周期,时序参数控制模块102,被配置为:针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个MC_CLK按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效。
其中,第一预设值是存储器频率与存储器控制器频率的比值,在该比值下形成的每种相位存在对应的第二预设值。
可选的,与各个相位对应的第二预设值是目标相位的相位号。
例如,当前存在第零相位phase0以及第一相位phase1,与phase0对应的第二预设值是0,与phase1对应的第二预设值是1。
具体的,在本公开实施例中,针对待控制的每种时序参数(即预设的对应于所述命令的每种时序参数),可设置对应的时序参数满足信号timing_ok(1有效)以及计数器。当然,针对每种时序参数满足信号,也存在对应的命令,表示在时序参数满足信号为有效的情况下,当前已具备发送该命令的条件。
其中,待控制的时序参数,可以是存储器控制器100对存储器装置105进行读/写控制过程中,在当前发出的命令之后可能需要遵循的时序参数,例如可以是:时序参数为行寻址到列寻址延迟时间tRCD、内存行有效至预充电的最短周期tRAS、行到行的延时tRRD及写恢复延时tWR中的至少一种。
以tRCD为例,与之对应的timing_ok可以是trcd_ok,且根据当前所包括的相位,具体细分为trcd_ok_p0/p1/pn。trcd_ok_p0有效时表示phase0时序满足,trcd_ok_p1有效时表示phase1时序满足,trcd_ok_pn有效时表示phasen时序满足。与tRCD时序参数对应的计数器为trcd_cnt。与trcd_ok对应的命令为Read命令以及Write命令。
时序参数控制模块102根据各个cmd_vld的有效状态,确定当前发出的命令所使用的目标相位后,即可针对对应于所述命令的每种时序参数,根据目标相位以及与该时序参数对应的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值start_value。
一种可选的初始化方式为:针对对应于所述命令的每种时序参数,时序参数控制模块102将与该时序参数对应的计数器的start_value初始化为:该时序参数的默认初始计数值与第二预设值之和。
每种时序参数的默认初始计数值由存储器说明书定义。与各个相位对应的第二预设值是该相位的相位号。
在MC_CLK:CK=1:2的情况下,存在第零相位及第一相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1;在MC_CLK:CK=1:4的情况下,存在第零相位、第一相位、第二相位及第三相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1,与所述第二相位对应的相位号为2,与所述第三相位对应的相位号为3。
假设MC_CLK:CK=1:4,且当前控制的时序参数为tRCD。若命令是从phase0发出(目标相位为phase0),那么trcd_start_value= param_trcd+0;若命令是从phase1发出(目标相位为phase1),那么trcd_start_value=param_trcd+1;若命令是从phase2发出(目标相位为phase2),那么trcd_start_value= param_trcd+2;若命令是从phase3发出(目标相位为phase3),那么trcd_start_value=param_trcd+3。
在完成初始化后,针对每种时序参数,时序参数控制模块102启动与之对应的计数器在每个MC_CLK,按照CK / MC_CLK进行递减计数。例如,在MC_CLK:CK=1:2时,每个MC_CLK到达后,时序参数控制模块102将计数器的计数值减2;在MC_CLK:CK=1:4时,每个MC_CLK到达后,时序参数控制模块102将计数器的计数值减4。
当然,值得指出的是,在本公开实施例中,各个计数器的计数值被定义为非负数,那么在计数器当前的计数值小于CK / MC_CLK的情况下,其在下一个存储器控制器时钟周期的计数值被配置为0。例如,若MC_CLK:CK=1:2,当计数器小于2为1时,计数器的下一个计数值为跳变为0;若MC_CLK:CK=1:4,当计数器小于4为3时,计数器的下一个计数值为跳变为0。
在启动计数器后,针对对应于所述命令的每种时序参数,时序参数控制模块102监控与之对应的计数器的计数值,且在与之对应的计数器计数到第二预设值时,将与第二预设值对应的相位的时序参数满足信号置为有效。
被置为有效的时序参数满足信号对应的相位,表示命令仲裁器101在后续可在该相位发送与时序参数满足信号对应的时序参数指示的后续命令。
例如,MC_CLK:CK=1:2,且当前控制的时序参数为tRCD。经过多个MC_CLK,当时序参数控制模块102检查到trcd_cnt的计数值减为1时,由于1是与phase1对应的第二预设值,表示phase1时序满足,则将trcd_ok_p1信号置为1,表示命令仲裁器101在后续可在phase1发出与trcd_ok对应的命令,即Read命令以及Write命令。
在下一个MC_CLK,时序参数控制模块102检查到trcd_cnt的计数值减为0时,由于0是与phase0对应的第二预设值,表示phase0时序满足,则将trcd_ok_p0信号置为1,由于当前trcd_ok_p1、trcd_ok_p0均有效,因此,命令仲裁器101在后续可在phase1发出与trcd_ok对应的命令,也可在phase0发出与trcd_ok对应的命令。
当然,当与特定相位对应的时序参数满足信号被置为有效(即该特定相位满足时序)后,并不意味着命令仲裁器101在下一个存储器控制器的时钟周期内的该特定相位一定会发出对应的命令。该对应的命令的发出时机由具体的应用场景所决定。
值得指出的是,针对各种时序参数,均是并行的执行上述过程。
下面将以MC_CLK:CK=1:2,时序参数是tRCD为例,对存储器控制器100控制tRCD的几种情况进行说明。
如图4所示,当与tRCD对应的默认初始计数值param_trcd=5为奇数,命令仲裁器101在phase0发出ACT0命令时,trcd_cnt从trcd_start_value = param_trcd = 5开始计数。每个MC_CLK 计数减2,当时序参数控制模块102检查到计数器trcd_cnt减到1时,trcd_ok_p1信号为1,表示相应的Read命令/Write命令可以在后续的phase1发出。当trcd_cnt减到0后,trcd_ok_p0 和trcd_ok_p1信号为1,表示相应的Read命令/Write命令可以在phase0发出,也可以在phase1发出。
在图4中,当命令仲裁器101检查到trcd_ok_p1有效后,即可在后续的phase1 发出READ0 命令,而无需再等待一个MC_CLK使得计数值减为0。从图4可以看出,DFI接口的dfi_address_p0 和dfi_address_p1 经过PHY104的转换后,转换到存储器装置105的ACT0 到READ0的延时是5 个存储器时钟周期,没有时钟损耗。
如图5所示,当param_trcd=4为偶数,命令仲裁器101在phase0发出ACT0命令时,trcd_cnt从trcd_start_value = param_trcd = 4开始计数。每个MC_CLK 计数减2,当时序参数控制模块102检查到计数器减到0时,trcd_ok_p0和trcd_ok_p1均为1,表示相应的Read命令/Write命令可以在phase0发出也可以在phase1发出。
在图5中,当命令仲裁器101检查到trcd_ok_p0有效后,在phase0 发出READ0 命令。可以看到DFI接口的命令接口信号dfi_address_p0 和dfi_address_p1经过PHY 的转换后,转换到存储器装置105的ACT0 到READ0的延时是4 个存储器时钟周期,没有时钟损耗。
如图6所示,当param_trcd=5为奇数,命令仲裁器101在phase1发出ACT0命令时,trcd_cnt从trcd_start_value = param_trcd +1 = 6开始计数。每个MC_CLK计数值减2,当检查到计数器减到0时,trcd_ok_p0 和trcd_ok_p1均为1, 表示相应的Read命令/Write命令可以在phase0发出,也可以在phase1发出。
当命令仲裁器101检查到trcd_ok_p0, trcd_ok_p1有效后,在phase0发出READ0命令。可以看到DFI接口的命令接口信号dfi_address_p0 和dfi_address_p1 经过PHY的转换后,转换到存储器装置105的ACT0 到READ0的delay是5 个存储器时钟周期,没有时钟损耗。
如图7所示,当param_trcd=4偶数,命令仲裁器101在phase1发出ACT0命令时,trcd_cnt从trcd_start_value = param_trcd +1 = 5开始计数。每个MC_CLK 计数减2,当检查到计数器减到1时,trcd_ok_p1信号为1,表示相应的Read命令/Write命令可以在phase1发出。当trcd_cnt减到0后,trcd_ok_p0 和trcd_ok_p1信号为1, 表示相应的Read命令/Write命令可以在phase0发出,也可以在phase1发出。
当命令仲裁器101检查到trcd_ok_p1 有效后,在phase1 发出READ0命令。可以看到DFI接口的命令接口信号dfi_address_p0 和dfi_address_p1 经过PHY 的转换后,转换到存储器装置105的ACT0 到READ0的delay是4 个存储器时钟周期,没有时钟损耗。
有上述内容可知,在本公开实施例中,通过区分命令具体从哪个目标相位发出,以及针对每个相位,设置对应的时序参数实际初始计数值、时序参数满足信号以及用于表示时序参数满足信号置有效的第二预设值,可有针对性地应对各种默认初始计数值与各种相位的情况,进而可以避免不同默认初始计数值与不同phase在MC_CLK和CK频率不匹配时,所带来的时钟周期损失的问题。
此外,本公开实施例还提供一种存储器控制***,包括上述任一实施例中的存储器控制器、存储器装置、以及连接于所述存储器控制器及所述存储器装置之间的端口物理层芯片PHY。
可选的,存储器装置可以是动态随机存取存储器,上述动态随机存取存储器可以是图形双倍速率同步动态随机存储器GDDR SDRAM。
由于采用上述存储器控制器,可避免存储器控制器损失时钟周期才能发出命令的问题,提高控制效率,相应的,对于包括该存储器控制器的存储器控制***而言,也可提高内存访问性能。
此外,本公开实施例还提供一种SOC,该SOC包括上述存储器控制***。在一些使用场景下,该SOC的产品形式体现为GPU(Graphics Processing Unit,图形处理器) SOC;在另一些使用场景下,该SOC的产品形式体现为CPU(Central Processing Unit,中央处理器)SOC。
由于内存的性能对SOC的性能影响较大,相应的,在基于存储器控制***可提高内存访问性能的基础上,可间接地提高SOC的性能。
此外,本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的SOC。在一些使用场景下,该电子组件的产品形式体现为显卡;在另一些使用场景下,该电子组件的产品形式体现为CPU主板。
此外,本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。
此外,本公开实施例还提供一种时序参数控制方法,应用于存储器控制器,存储器控制器包括命令仲裁器及时序参数控制模块。
请参照图8,该时序参数控制方法可以包括:
步骤S110:命令仲裁器根据当前发出的命令所使用的目标相位,将与所述目标相位对应的命令有效信号置为有效。
步骤S120:时序参数控制模块针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个存储器控制器的时钟周期按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效。
该被置为有效的时序参数满足信号对应的相位,表征所述命令仲裁器可在该相位发送与所述时序参数满足信号对应的时序参数指示的后续命令。
所述第一预设值是存储器频率与存储器控制器频率的比值,在所述比值下形成的每种相位存在对应的第二预设值。
可选的,所述针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,包括:
针对对应于所述命令的每种时序参数,将与该时序参数对应的计数器的实际初始计数值初始化为:该时序参数的默认初始计数值与第二预设值之和;所述第二预设值是所述目标相位的相位号。
可选的,在所述存储器控制器频率与所述存储器频率之比为1:2的情况下,存在第零相位及第一相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1;在所述存储器控制器频率与所述存储器频率之比为1:4的情况下,存在第零相位、第一相位、第二相位及第三相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1,与所述第二相位对应的相位号为2,与所述第三相位对应的相位号为3。
可选的,与各个相位对应的第二预设值是该相位的相位号。
可选的,所述相位的个数与所述比值的数值相同。
可选的,所述计数器的计数值为非负数,且在当前的计数值小于所述比值的情况下,其在下一个存储器控制器时钟周期的计数值被配置为0。
可选的,所述时序参数为行寻址到列寻址延迟时间tRCD、内存行有效至预充电的最短周期tRAS、行到行的延时tRRD或写恢复延时tWR。
基于上述方案,通过区分命令具体从哪个目标相位发出,以及针对每个相位,设置对应的时序参数实际初始计数值、时序参数满足信号以及用于表示时序参数满足信号置有效的第二预设值,可有针对性地应对各种默认初始计数值与各种相位的情况,进而可以避免不同默认初始计数值与不同phase在MC_CLK和CK频率不匹配时,所带来的时钟周期损失的问题。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (10)
1.一种存储器控制器,包括命令仲裁器及时序参数控制模块;
所述命令仲裁器,被配置为:根据当前发出的命令所使用的目标相位,将与所述目标相位对应的命令有效信号置为有效;
所述时序参数控制模块,被配置为:针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个存储器控制器的时钟周期按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效,表征所述命令仲裁器可在该相位发送与所述时序参数满足信号对应的时序参数指示的后续命令;
所述第一预设值是存储器频率与存储器控制器频率的比值,在所述比值下形成的每种相位存在对应的第二预设值;
与该时序参数对应的计数器的实际初始计数值初始化为:该时序参数的默认初始计数值与第二预设值之和;所述第二预设值是所述目标相位的相位号。
2.根据权利要求1所述的存储器控制器,在所述存储器控制器频率与所述存储器频率之比为1:2的情况下,存在第零相位及第一相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1;在所述存储器控制器频率与所述存储器频率之比为1:4的情况下,存在第零相位、第一相位、第二相位及第三相位,且与所述第零相位对应的相位号为0,与所述第一相位对应的相位号为1,与所述第二相位对应的相位号为2,与所述第三相位对应的相位号为3。
3.根据权利要求1所述的存储器控制器,所述相位的个数与所述比值的数值相同。
4.根据权利要求1所述的存储器控制器,所述计数器的计数值为非负数,且在当前的计数值小于所述比值的情况下,其在下一个存储器控制器时钟周期的计数值被配置为0。
5.根据权利要求1-4任一项所述的存储器控制器,所述时序参数为行寻址到列寻址延迟时间tRCD、内存行有效至预充电的最短周期tRAS、行到行的延时tRRD或写恢复延时tWR。
6.一种时序参数控制方法,应用于包括命令仲裁器及时序参数控制模块的存储器控制器,所述方法包括:
所述命令仲裁器根据当前发出的命令所使用的目标相位,将与所述目标相位对应的命令有效信号置为有效;
所述时序参数控制模块针对预设的对应于所述命令的每种时序参数,根据有效的所述命令有效信号指示的所述目标相位及该时序参数的默认初始计数值,初始化与该时序参数对应的计数器的实际初始计数值,并启动所述计数器在每个存储器控制器的时钟周期按照第一预设值递减计数;在所述计数器计数到第二预设值时,将与所述第二预设值对应的相位的时序参数满足信号置为有效,表征所述命令仲裁器可在该相位发送与所述时序参数满足信号对应的时序参数指示的后续命令;
所述第一预设值是存储器频率与存储器控制器频率的比值,在所述比值下形成的每种相位存在对应的第二预设值;
与该时序参数对应的计数器的实际初始计数值初始化为:该时序参数的默认初始计数值与第二预设值之和;所述第二预设值是所述目标相位的相位号。
7.一种存储器控制***,包括权利要求1-5中任一所述的存储器控制器、存储器装置、连接于所述存储器控制器及所述存储器装置之间的端口物理层芯片PHY。
8.一种片上***,包括权利要求7所述的存储器控制***。
9.一种电子组件,包括权利要求8所述的片上***。
10.一种电子设备,包括权利要求9所述的电子组件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132750.3A CN116010309B (zh) | 2023-02-20 | 2023-02-20 | 存储器控制器、***及片上***、时序参数控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310132750.3A CN116010309B (zh) | 2023-02-20 | 2023-02-20 | 存储器控制器、***及片上***、时序参数控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116010309A CN116010309A (zh) | 2023-04-25 |
CN116010309B true CN116010309B (zh) | 2023-07-21 |
Family
ID=86033643
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310132750.3A Active CN116010309B (zh) | 2023-02-20 | 2023-02-20 | 存储器控制器、***及片上***、时序参数控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010309B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342615A (zh) * | 2021-06-29 | 2021-09-03 | 海光信息技术股份有限公司 | 命令监控方法、装置、控制器、***、设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7142470B2 (en) * | 2005-03-22 | 2006-11-28 | Mediatek Inc. | Methods and systems for generating latch clock used in memory reading |
US9160518B1 (en) * | 2014-09-30 | 2015-10-13 | Realtek Semiconductor Corporation | Half-rate clock-data recovery circuit and method thereof |
CN112631966B (zh) * | 2020-12-17 | 2024-01-26 | 海光信息技术股份有限公司 | 一种数据处理方法、内存控制器、处理器及电子设备 |
CN113553277B (zh) * | 2021-06-24 | 2023-06-09 | 西安电子科技大学 | 一种ddr5 sdram的高吞吐率、低延迟phy接口电路装置 |
-
2023
- 2023-02-20 CN CN202310132750.3A patent/CN116010309B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342615A (zh) * | 2021-06-29 | 2021-09-03 | 海光信息技术股份有限公司 | 命令监控方法、装置、控制器、***、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116010309A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6396515B2 (ja) | 有向自動リフレッシュ同期 | |
US5873114A (en) | Integrated processor and memory control unit including refresh queue logic for refreshing DRAM during idle cycles | |
US7433992B2 (en) | Command controlling different operations in different chips | |
US8225064B2 (en) | Storage region allocation system, storage region allocation method, and control apparatus | |
CN107924375B (zh) | 用于高速存储器接口的命令仲裁 | |
US6477598B1 (en) | Memory controller arbitrating RAS, CAS and bank precharge signals | |
US5889714A (en) | Adaptive precharge management for synchronous DRAM | |
US10902890B2 (en) | Method, apparatus and system for a per-DRAM addressability mode | |
US11922061B2 (en) | Adaptive memory refresh control | |
US8468281B2 (en) | Apparatus to improve bandwidth for circuits having multiple memory controllers | |
KR20170039451A (ko) | 메모리 모듈 및 이를 포함하는 반도체 메모리 시스템 | |
US7373453B2 (en) | Method and apparatus of interleaving memory bank in multi-layer bus system | |
US9685220B2 (en) | DDR controller, method for implementing the same, and chip | |
US20160307619A1 (en) | Smart in-module refresh for dram | |
US6892289B2 (en) | Methods and structure for using a memory model for efficient arbitration | |
CN110058793B (zh) | 一种刷新处理方法、装置、***及内存控制器 | |
US7646649B2 (en) | Memory device with programmable receivers to improve performance | |
CN102236622A (zh) | 提高动态存储器带宽利用率的动态存储器控制器及方法 | |
KR20230023014A (ko) | Dram 커맨드 스트리크 관리 | |
CN116010309B (zh) | 存储器控制器、***及片上***、时序参数控制方法 | |
WO2022094267A1 (en) | Interactive memory self-refresh control | |
US8301816B2 (en) | Memory access controller, system, and method | |
WO2022178772A1 (zh) | 一种存储器的刷新方法、存储器、控制器及存储*** | |
CN101609439A (zh) | 具有分时总线的电子***与共用电子***的总线的方法 | |
KR20230004912A (ko) | 효율적인 메모리 버스 관리 |
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 |