700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 数据采集电路 读数据窗口的控制方法及装置与流程

数据采集电路 读数据窗口的控制方法及装置与流程

时间:2020-08-28 00:53:57

相关推荐

数据采集电路 读数据窗口的控制方法及装置与流程

本发明涉及存储器的读取技术,尤其涉及一种数据采集电路、读数据窗口的控制方法、装置、及内存控制器。

背景技术:

ddr内存控制器对双倍速率同步动态随机存储器ddrxsdram(doubledatarate,简称“ddr”;synchronousdynamicrandomaccessmemory,简称“sdram”),的数据读取过程是利用读数据选通信号dqs来判断何时存在有效的读数据dq,同时通过读数据选通信号dqs与内部系统时钟的关系来决定如何将返回数据dq同步到系统时钟域内。但是考虑到不同的系统环境,比如不同的pcb走线、不同的工作频率等,使得读数据选通信号dqs与内部系统时钟的相位关系完全不确定。尤其是对于ddr3/4内存模组的fly-by的走线方式,如图1所示,在内存控制器发出读命令后,读命令会逐一经过各个内存芯片,如图1中的箭头所示经过内存芯片1至内存芯片8,然后间隔相同时钟(读取潜伏期,readlatency)周期返回读数据选通信号dqs以及读数据dq,这样导致来自同一个内存通道上(经过内存芯片1~8的通道)的不同内存芯片的读数据选通信号dqs返回到内存控制器的时间不同,使得读数据窗口难以确定。

对于此种情况,现有技术中通常采用延时电路,以在内存控制器发出读命令后,对内存控制器产生的gate信号进行延时处理,得到rdgate信号,该rdgate信号的高电平位于读dqs信号的中间,以保证dqs对内存数据的完整读取。但是,由于内存控制器原始的gate信号脉冲宽度固定,突发长度(burst_length,简称“bl”为4时,gate信号的宽度为2个时钟周期;bl为8时gate信号的宽度为4个时钟周期,因此,经过延时之后的rdgate信号脉冲宽度与gate信号一致,也为固定宽度。为了节省设计开销,支持多存储体(rank)的内存控制器在每一个数据处理单元中仅集成一个rdgate模块,即用一个rdgate模块来处理共享同一数据通道的多个rank返回的读dqs信号。这种情况下,如果不同rank之间的距离较远,导致读dqs信号之间的相位差过大,会导致有效的读dqs信号被内部rdgate信号过滤掉,从而产生错误。如图2所示,内存控制器根据rank0返回的rddqs0确定rdgate信号的位置,rddqs_clean_0信号由rdgate截取rddqs0得到,由于一个数据处理单元只有一个rdgate模块,所以rdgate信号确定之后其位置就不再变化。当rank1(距离内存控制器比rank0远)返回rddqs1时,通过rdgate信号截取rddqs1得到一个正确的时钟信号rddqs_clean_1。但是当rank2(距离内存控制器比rank1远)返回rddqs2时,因为rddqs2信号的最后一个下降沿晚于rdgate信号的下降沿,导致截取得到的rddqs_clean_2信号的最后一个时钟周期的高电平宽度较窄。如果返回的rddqs更晚很有可能导致最后一个时钟周期被rdgate信号完全抹掉。很显然,丢失的时钟周期对应的读数据也会丢失,所以采用现有的技术会限制一个内存通道所能支持的最大rank数量。

因此,无论是图1中的不同内存芯片间的间距问题或分布在一个内存芯片或不同芯片上的各个rank间的间距问题,都会导致一个内存通道所能支持的最大rank数量受限制,也就是说,内存控制器发出读命令后的读数据窗口难以被准确确定以读取到全部rank中的数据,读数据窗口的不准确易引发读数据丢失的问题。

技术实现要素:

为解决现有技术中存在的问题,本发明提供一种读数据窗口的控制方法、装置、数据采集电路及内存控制器,以产生准确的读数据窗口保证对多存储体数据的完整读取。

第一方面,本发明实施例提供一种数据采集电路,包括:

延时电路,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;

与所述延时电路连接的下降沿产生门延迟信号电路,所述下降沿产生门延迟信号电路接收每个存储体对应的dqs信号,接收所述延时电路输出的所述第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

与所述下降沿产生门延迟信号电路和所述延时电路连接的选择电路,所述选择电路用于根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

可选的,所述下降沿产生门延迟信号电路,还用于根据预设计数值,确定每个存储体对应的所述第二门延迟信号的信号宽度;根据所述第二门延迟信号的起始位置和所述信号宽度,生成每个存储体对应的所述第二门延迟信号。

可选的,所述下降沿产生门延迟信号电路,还用于根据读命令的突发长度bl,确定所述预设计数值;当所述ddrxsdram为ddr4型存储器时,确定所述预设计数值=bl/2-2,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述预设计数值=bl/2-1,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

可选的,所述选择电路包括:或门、选择器;

所述或门与所述延时电路和所述下降沿产生门延迟信号电路分别连接,用于接收所述延时电路输出的所述第一门延迟信号,接收所述下降沿产生门延迟信号电路输出的所述第二门延迟信号;对所述第一门延迟信号和所述第二门延迟信号进行或运算,得到或处理后的门延迟信号;

所述选择器与所述下降沿产生门延迟信号电路和所述或门分别连接,用于在所述ddrxsdram为ddr4型存储器时,选通所述下降沿产生门延迟信号电路输出的所述第二门延迟信号;确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;还用于在所述ddrxsdram为ddr2型或ddr3型存储器时,选通所述或门输出的所述或处理后的门延迟信号;确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述或处理后的门延迟信号的信号宽度。

可选的,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

第二方面,本发明实施例提供一种内存控制器,包括:门信号生成模块,还包括前述第三方面中的任一项所述的数据采集电路;其中,所述门信号生成模块用于在所述内存控制器发出读取ddrxsdram内存数据的读命令后,生成所述初始门信号;所述数据采集电路中的所述延时电路与所述门信号生成模块连接,用于接收所述初始门信号。

第三方面,本发明实施例提供一种读数据窗口的控制方法,包括:

在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;

在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

可选的,所述在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号,包括:

根据预设计数值,确定所述第二门延迟信号的信号宽度;

根据所述第二门延迟信号的起始位置和所述信号宽度,生成所述第二门延迟信号。

可选的,还包括:

根据读命令的突发长度bl,确定所述预设计数值;

相应的,所述根据预设计数值,确定所述第二门延迟信号的信号宽度,包括:

若所述ddrxsdram为ddr2型或ddr3型存储器,则所述预设计数值=bl/2-2,确定所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;

若所述ddrxsdram为ddr4型存储器,则所述预设计数值=bl/2-1,确定所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

可选的,所述根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口,包括:

若所述ddrxsdram为ddr4型存储器,则确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;

若所述ddrxsdram为ddr2型或ddr3型存储器,则确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度与所述第一门延迟信号的信号宽度之和。

可选的,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

第四方面,本发明实施例提供一种读数据窗口的控制装置,包括:

第一门延迟信号生成模块,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;第二门延迟信号生成模块,用于在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

确定模块,用于根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

可选的,所述第二门延迟信号生成模块,包括:

确定子模块,用于根据预设计数值,确定所述第二门延迟信号的信号宽度;

生成子模块,用于根据所述第二门延迟信号的起始位置和所述信号宽度,生成所述第二门延迟信号。

可选的,所述确定模块,还用于根据读命令的突发长度bl,确定所述预设计数值;当所述ddrxsdram为ddr4型存储器时,确定所述预设计数值=bl/2-2,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述预设计数值=bl/2-1,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

可选的,所述确定模块,包括:

第一确定子模块,用于当所述ddrxsdram为ddr4型存储器时,确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;

第二确定子模块,用于当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度与所述第一门延迟信号的信号宽度之和。

可选的,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

本发明提供的数据采集电路、读数据窗口的控制方法、装置及内存控制器,通过在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号;根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。由于第二门延迟信号是基于每个存储体对应的dqs的下降沿在第一门延迟信号中第一次出现的位置生成的,使得第二门延迟信号,或第一门延迟信号与第二门延迟信号可以覆盖住距离内存控制器最远的存储体(rank),从而保证了内存控制器对ddrxsdram存储器读数据窗口的准确确定,保证对ddrx存储器数据读取的可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为ddrxsdram内存的拓扑结构;

图2为现有技术中多rank返回的读dqs被rdgate信号截取的示意图;

图3a为一示例性实施例示出的本发明读数据窗口的控制方法的流程图;

图3b为现有技术中的门信号处理电路;

图3c为读命令后gate信号的示意图;

图3d为图3a所示实施例的一信号波形示意图;

图4a为另一示例性实施例示出的本发明读数据窗口的控制方法的流程图;

图4b为图4a所示实施例的一信号波形示意图;

图4c为图4a所示实施例的另一信号波形示意图;

图5为一示例性实施例示出的本发明读数据窗口的控制装置的结构示意图;

图6为另一示例性实施例示出的本发明读数据窗口的控制装置的结构示意图;

图7为一示例性实施例示出的本发明数据采集电路的结构示意图;

图8为另一示例性实施例示出的本发明数据采集电路的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”及“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,下面以具体的实施例对本发明的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图3a为一示例性实施例示出的本发明读数据窗口的控制方法读数据窗口的控制方法的流程图,如图3a所示,本实施例的读数据窗口的控制方法包括:

步骤301、在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号。

在本步骤中,图3b为一种常见的门信号(以下简称“gate信号”)处理电路,其中rdgate信号在内存控制器内部产生,为固定宽度脉冲信号。内存控制器在发出读命令后一段时间内,需要提供该gate信号,以使dqs信号使能,从而驱动dq总线输出数据。对于bl(burst_length)为4的读命令,gate信号的宽度为2个时钟周期;对于burst_length为8的读命令,gate信号的宽度为4个时钟周期,如图3c所示。其中,图3c中为了说明问题的方便将读命令(rd)和gate信号的时间间隔设为1个时钟周期(sys_clk),与实际情况有可能不同,这里仅以1个时钟周期示意性表示。gate信号经过图3b中的延时单元延时后产生rdgate信号。延时单元的调整过程一般在gateleveling阶段实现,主要目的是调整rdgate信号与读dqs信号的相位关系,使得rdgate信号的高电平脉冲正好位于读dqs信号的中间(如图2中所示,rdgate信号位于rddqs0信号的中间)。有关gateleveling过程为本领域的现有技术,本实施例对此不作具体限定。本步骤中,基于现有技术图3b中的门信号处理电路,对初始门信号(即图3b中的gate信号)与首个dqs(即图3b和图3d中的rddqs)之间的相位关系进行调整,生成第一门延迟信号(gate_dly)。其中,该第一门延迟信号(gate_dly)的高电平的起始位置(图3d中的c点所示)位于读数据的首个数据选通信号dqs的读前导区域内。如图3d中的ab段表示ddr内存的读前导区域,读前导区域就是在dqs的起始,dq传输数据之前,dqs信号会有一段预设个数个时钟周期长度的低电平,称为读前导(readpreamble)。本步骤中生成的该第一门延迟信号(gate_dly)与图3b中经过延时单元生成的rdgate信号不同的是,该第一门延迟信号位于第一个dqs的读前导区域,且该第一门延迟信号不需要如图2所示使得rdgate信号的高电平脉冲正好位于读dqs信号的中间。

步骤302、在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号。

在本步骤中,如图3d所示,由返回的rddqs信号下降沿采集gate_dly信号生成gate_neg信号,其中rddqs信号的第一个下降沿决定gate_neg信号的起始位置。也就是说,对于每个存储体(rank)来说,其所对应的读dqs的下降沿在该第一门延迟信号(gate_dly)中第一次出现的位置(图3d中的d点所示),得到每个存储体对应的第二门延迟信号(gate_neg)的起始位置,生成每个存储体对应的第二门延迟信号(gate_neg)。

步骤303、根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

在本步骤中,对于不同型号的ddr内存,其读命令所对应的bl不同,因此,可以根据ddr型号的不同,根据不同的bl确定该第二门延迟信号(gate_neg)的高电平持续时长,从而,根据ddr型号的不同,选择根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。也就是说,有些ddr内存的读数据窗口可能就是第二门延迟信号的高电平信号持续时长,有些ddr内存的读数据窗口可能需要由第一门延迟信号和第二门延迟信号两者高电平的持续时长进行确定。本领域技术人员可以根据ddr内存的型号及其所对应的bl,确定采用哪种读数据窗口的确定方式,本实施例对此不作具体限定。

本发明实施例提供的读数据窗口的控制方法,通过在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号;根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。由于第二门延迟信号是基于每个存储体对应的dqs的下降沿在第一门延迟信号中第一次出现的位置生成的,使得第二门延迟信号,或第一门延迟信号与第二门延迟信号可以覆盖住距离内存控制器最远的存储体(rank),从而保证了内存控制器对ddrxsdram存储器读数据窗口的准确确定,保证对ddrx存储器数据读取的可靠性。

图4a为另一示例性实施例示出的本发明读数据窗口的控制方法的流程图。在图3a所示实施例的基础上,本实施例的读数据窗口的控制方法具体包括:

步骤401、在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号。

其中,如图3d所示,该第一门延迟信号(gate_dly)的信号宽度小于等于读命令的突发长度bl/2。即第一门延迟信号(gate_dly)的上升沿位于读dqs的读前导(preamble)区域,该过程可以由gateleveling过程完成。该第一门延迟信号(gate_dly)的脉冲宽度只需要保证rddqs的第一个上升沿(即首个dqs的上升沿)可以采集到第一门延迟信号(gate_dly)即可,并不一定为固定的burst_length/2,因此,第一门延迟信号(gate_dly)的宽度可以小于或等于burst_length/2。

步骤402、根据预设计数值,确定第二门延迟信号的信号宽度。

其中,该预设计数值可以根据读命令的突发长度bl进行确定。

若ddrxsdram为ddr2型或ddr3型存储器,则预设计数值=bl/2-2,确定第二门延迟信号的信号宽度为预设计数值+1个时钟周期。也就是说,当burst_length为8时预设计数值的最大计数值为2(如图3d中的counter计数器值所示),第二门延迟信号(gate_neg)的宽度为3个时钟周期;当burst_length为4时预设计数值的最大计数值为0,第二门延迟信号(gate_neg)的宽度为1个时钟周期。

若ddrxsdram为ddr4型存储器,则预设计数值=bl/2-1,确定第二门延迟信号的信号宽度为预设计数值+1个时钟周期。如图4b所示,也就是说,当burst_length为8时预设计数值的最大计数值为3(如图4b中的counter计数器值所示),第二门延迟信号(gate_neg)的宽度为4个时钟周期;当burst_length为4时预设计数值的最大计数值为1,第二门延迟信号(gate_neg)的宽度为2个时钟周期。

步骤403、根据第二门延迟信号的起始位置和信号宽度,生成第二门延迟信号。

在本步骤中,如图3d所示,线段de为该第二门延迟信号(gate_neg)的信号宽度,其起始于rddqs的第一个下降沿,止于3个时钟周期的信号长度。

步骤404a、若ddrxsdram为ddr4型存储器,则确定ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的第二门延迟信号的信号宽度。

在本步骤中,参考图4b所示的ddr4型存储器,此时,通过gatelevleing过程将第一门延迟信号(gate_dly)的上升沿置于rddqs的读前导preamble区域,在rddqs的第一个下降沿置第二门延迟信号(gate_neg)信号为1,最后一个下降沿置第二门延迟信号(gate_neg)为0,这时生成的第二门延迟信号(gate_neg)完全可以把有效的dqs信号过滤出来,从而可以有效支持ddr4类型的内存。因此,对于ddr4型存储器来说,其每个存储体(rank)对应的读数据窗口(rdgate)为每个存储体对应的第二门延迟信号(gate_neg)的信号宽度。即,rdgate信号与gate_neg信号相同。

步骤404b、若ddrxsdram为ddr2型或ddr3型存储器,则确定ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的第二门延迟信号的信号宽度与第一门延迟信号的信号宽度之和。

在本步骤中,参考图3d所示的为ddr2/3型存储器,此时,通过gatelevleing过程将第一门延迟信号(gate_dly)的上升沿置于rddqs的读前导preamble区域,在rddqs的第一个下降沿置第二门延迟信号(gate_neg)信号为1,最后一个下降沿置第二门延迟信号(gate_neg)为0,这时生成的第二门延迟信号(gate_neg)与第一门延迟信号(gate_dly)合并完全可以把有效的dqs信号过滤出来,即读数据窗口rdgate的信号宽度为从c点开始到e点结束。

可见,对于ddrx内存来说,以第一门延迟信号(gate_dly)的上升沿作为起始,当第一门延迟信号(gate_dly)的下降沿晚于rddqs的最后一个下降沿时(但是需要早于postamble的结束时间),可以以第一门延迟信号(gate_dly)的下降沿作为读数据窗口rdgate信号的终止;当第一门延迟信号(gate_dly)的下降沿早于rddqs的最后一个下降沿时,以第二门延迟信号(gate_neg)的下降沿作为读数据窗口rdgate信号的终止。

以3个存储体rank为例,参见图4c(rddqs0为读取第一个存储体rank0的dqs信号,rddqs1为读取第二个存储体rank1的dqs信号,rddqs2为读取第三个存储体rank2的dqs信号;rdgate0为读取第一个存储体rank0的读数据窗口,rdgate1为读取第二个存储体rank1的读数据窗口,rdgate2为读取第三个存储体rank2的读数据窗口),基于前述各个步骤,本发明实施例提供的读数据窗口的控制方法,其所有的rank仍然共享gateleveing过程,完成后确定第一门延迟信号(gate_dly),但是因为读数据窗口rdgate信号的关闭时机由返回的rddqs最后一个下降沿决定。所以即使是距离最远的存储体rank2,其返回的读dqs也会被读数据窗口rdgate完全包住,不会出现现有技术中存在的读数据丢失的问题。如图4c所示,通过rdgate0信号截取rddqs0得到一个无毛刺的正确的时钟信号rddqs_clean_0;通过rdgate1信号截取rddqs1得到一个无毛刺的正确的时钟信号rddqs_clean_1;通过rdgate2信号截取rddqs2得到一个无毛刺的正确的时钟信号rddqs_clean_2。保证了内存控制器对ddrxsdram存储器读数据窗口的准确确定,从而保证对ddrx存储器数据读取的可靠性。

图5为一示例性实施例示出的本发明读数据窗口的控制装置的结构示意图,如图5所示,该装置包括:

第一门延迟信号生成模块51,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号。

第二门延迟信号生成模块52,用于在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号。

确定模块53,用于根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

本实施例提供的读数据窗口的控制装置,可以执行上述图3a所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。

本实施例提供的读数据窗口的控制装置,通过在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号;根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。由于第二门延迟信号是基于每个存储体对应的dqs的下降沿在第一门延迟信号中第一次出现的位置生成的,使得第二门延迟信号,或第一门延迟信号与第二门延迟信号可以覆盖住距离内存控制器最远的存储体(rank),从而保证了内存控制器对ddrxsdram存储器读数据窗口的准确确定,保证对ddrx存储器数据读取的可靠性。

图6为另一示例性实施例示出的本发明读数据窗口的控制装置的结构示意图,如图6所示,在上述实施例的基础上,

第二门延迟信号生成模块52,包括:

确定子模块521,用于根据预设计数值,确定第二门延迟信号的信号宽度。

生成子模块522,用于根据第二门延迟信号的起始位置和信号宽度,生成第二门延迟信号。

可选的,确定模块53,还用于根据读命令的突发长度bl,确定预设计数值;当ddrxsdram为ddr4型存储器时,确定预设计数值=bl/2-2,第二门延迟信号的信号宽度为预设计数值+1个时钟周期;当ddrxsdram为ddr2型或ddr3型存储器时,确定预设计数值=bl/2-1,第二门延迟信号的信号宽度为预设计数值+1个时钟周期。

可选的,确定模块53,包括:

第一确定子模块531,用于当ddrxsdram为ddr4型存储器时,确定ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的第二门延迟信号的信号宽度;

第二确定子模块532,用于当ddrxsdram为ddr2型或ddr3型存储器时,确定ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的第二门延迟信号的信号宽度与第一门延迟信号的信号宽度之和。

可选的,第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

本实施例提供的读数据窗口的控制装置,可以执行上述图4a所示的方法实施例,其实现原理和技术效果类似,在此不再赘述。

图7为一示例性实施例示出的本发明数据采集电路的结构示意图,如图7所示,该装置包括:

延时电路71,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与首个dqs上升沿的相位关系,生成第一门延迟信号。

与延时电路71连接的下降沿产生门延迟信号电路72,下降沿产生门延迟信号电路72接收每个存储体对应的dqs信号,接收延时电路71输出的第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号;

与下降沿产生门延迟信号电路72和延时电路71连接的选择电路73,选择电路73用于根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

图8为另一示例性实施例示出的本发明数据采集电路的结构示意图,如图8所示,在上述实施例的基础上,

可选的,下降沿产生门延迟信号电路72,还用于根据预设计数值,确定每个存储体对应的第二门延迟信号的信号宽度;根据第二门延迟信号的起始位置和信号宽度,生成每个存储体对应的第二门延迟信号。

可选的,下降沿产生门延迟信号电路72,还用于根据读命令的突发长度bl,确定预设计数值;当ddrxsdram为ddr4型存储器时,确定预设计数值=bl/2-2,第二门延迟信号的信号宽度为预设计数值+1个时钟周期;当ddrxsdram为ddr2型或ddr3型存储器时,确定预设计数值=bl/2-1,第二门延迟信号的信号宽度为预设计数值+1个时钟周期。

可选的,选择电路73包括:或门731、选择器732;

或门731与延时电路71和下降沿产生门延迟信号电路72分别连接,用于接收延时电路71输出的第一门延迟信号,接收下降沿产生门延迟信号电路52输出的第二门延迟信号;对第一门延迟信号和第二门延迟信号进行或运算,得到或处理后的门延迟信号;

选择器732与下降沿产生门延迟信号电路72和或门731分别连接,用于在ddrxsdram为ddr4型存储器时,选通下降沿产生门延迟信号电路52输出的第二门延迟信号;确定ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的第二门延迟信号的信号宽度;还用于在ddrxsdram为ddr2型或ddr3型存储器时,选通或门输出的或处理后的门延迟信号;确定ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的或处理后的门延迟信号的信号宽度。

可选的,第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

本发明实施例提供的数据采集电路,基于图3b所示的现有的设计方案,增加了下降沿产生门延迟信号电路72,并增加了选择电路73用于产生最终的读数据窗口rdgate信号。其中,该选择电路73可以包括,或门731和选择器732。该数据采集电路以延时之后的第一门延迟信号(gate_dly)作为数据输入;以存储体(rank)返回的读dqs信号rddqs作为时钟输入;通过每个存储体的dqs(rddqs)的下降沿采集第一门延迟信号(gate_dly),确定第二门延迟信号(gate_neg)的起始位置;在第二门延迟信号(gate_neg)变为1后,继续通过rddqs的下降沿计数;达到预设的计数值之后置第二门延迟信号(gate_neg)为0,从而确定第二门延迟信号(gate_neg)的结束位置;在ddr2或ddr3模式下,可以设置ddr2/3模式为0,通过将第二门延迟信号(gate_neg)与第一门延迟信号(gate_dly)进行逻辑或之后得到最终的读数据窗口rdgate信号,用于过滤ddr2/3内存返回的读dqs信号;在ddr4模式下,可以设置ddr4模式为1,通过将第二门延迟信号(gate_neg)通过选择器732被选出,得到最终的读数据窗口rdgate信号,用于过滤ddr4内存返回的读dqs信号。该数据采集电路保证了对内存控制器对ddrxsdram存储器读数据窗口的准确确定,从而保证对ddrx存储器数据读取的可靠性。

本发明实施例还提供一种ddrxsdram内存控制器,包括:门信号生成模块,该门信号生成模块用于生成图7或图8中所示的gate信号,还包括图7或图8所示实施例中的任一项所述的数据采集电路;其中,门信号生成模块用于在内存控制器发出读取ddrxsdram内存数据的读命令后,生成初始门信号(即gate信号);数据采集电路中的延时电路与门信号生成模块连接,用于接收初始门信号。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

技术特征:

1.一种数据采集电路,其特征在于,包括:

延时电路,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;

与所述延时电路连接的下降沿产生门延迟信号电路,所述下降沿产生门延迟信号电路接收每个存储体对应的dqs信号,接收所述延时电路输出的所述第一门延迟信号;在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

与所述下降沿产生门延迟信号电路和所述延时电路连接的选择电路,所述选择电路用于根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

2.根据权利要求1所述的数据采集电路,其特征在于,

所述下降沿产生门延迟信号电路,还用于根据预设计数值,确定每个存储体对应的所述第二门延迟信号的信号宽度;根据所述第二门延迟信号的起始位置和所述信号宽度,生成每个存储体对应的所述第二门延迟信号。

3.根据权利要求2所述的数据采集电路,其特征在于,

所述下降沿产生门延迟信号电路,还用于根据读命令的突发长度bl,确定所述预设计数值;当所述ddrxsdram为ddr4型存储器时,确定所述预设计数值=bl/2-2,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述预设计数值=bl/2-1,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

4.根据权利要求1所述的数据采集电路,其特征在于,所述选择电路包括:或门、选择器;

所述或门与所述延时电路和所述下降沿产生门延迟信号电路分别连接,用于接收所述延时电路输出的所述第一门延迟信号,接收所述下降沿产生门延迟信号电路输出的所述第二门延迟信号;对所述第一门延迟信号和所述第二门延迟信号进行或运算,得到或处理后的门延迟信号;

所述选择器与所述下降沿产生门延迟信号电路和所述或门分别连接,用于在所述ddrxsdram为ddr4型存储器时,选通所述下降沿产生门延迟信号电路输出的所述第二门延迟信号;确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;还用于在所述ddrxsdram为ddr2型或ddr3型存储器时,选通所述或门输出的所述或处理后的门延迟信号;确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述或处理后的门延迟信号的信号宽度。

5.根据权利要求1~4任一项所述的数据采集电路,其特征在于,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

6.一种内存控制器,其特征在于,包括:门信号生成模块,还包括权利要求1~5任一项所述的数据采集电路;其中,所述门信号生成模块用于在所述内存控制器发出读取ddrxsdram内存数据的读命令后,生成所述初始门信号;所述数据采集电路中的所述延时电路与所述门信号生成模块连接,用于接收所述初始门信号。

7.一种读数据窗口的控制方法,其特征在于,包括:

在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;

在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口。

8.根据权利要求7所述的方法,其特征在于,所述在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号,包括:

根据预设计数值,确定所述第二门延迟信号的信号宽度;

根据所述第二门延迟信号的起始位置和所述信号宽度,生成所述第二门延迟信号。

9.根据权利要求8所述的方法,其特征在于,还包括:

根据读命令的突发长度bl,确定所述预设计数值;

相应的,所述根据预设计数值,确定所述第二门延迟信号的信号宽度,包括:

若所述ddrxsdram为ddr2型或ddr3型存储器,则所述预设计数值=bl/2-2,确定所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;

若所述ddrxsdram为ddr4型存储器,则所述预设计数值=bl/2-1,确定所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

10.根据权利要求8所述的方法,其特征在于,所述根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定ddrxsdram存储器中的每个存储体对应的读数据窗口,包括:

若所述ddrxsdram为ddr4型存储器,则确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;

若所述ddrxsdram为ddr2型或ddr3型存储器,则确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度与所述第一门延迟信号的信号宽度之和。

11.根据权利要求8~10任一项所述的方法,其特征在于,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

12.一种读数据窗口的控制装置,其特征在于,包括:

第一门延迟信号生成模块,用于在用于读数据的首个数据选通信号dqs的读前导区域内,确定初始门信号与所述首个dqs上升沿的相位关系,生成第一门延迟信号;

第二门延迟信号生成模块,用于在每个存储体对应的dqs的第一个下降沿,采集所述第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的所述第二门延迟信号;

确定模块,用于根据每个存储体对应的所述第二门延迟信号,或者根据所述第一门延迟信号和每个存储体对应的所述第二门延迟信号,确定存储器中的每个存储体对应的读数据窗口。

13.根据权利要求12所述的装置,其特征在于,所述第二门延迟信号生成模块,包括:

确定子模块,用于根据预设计数值,确定所述第二门延迟信号的信号宽度;

生成子模块,用于根据所述第二门延迟信号的起始位置和所述信号宽度,生成所述第二门延迟信号。

14.根据权利要求13所述的装置,其特征在于,

所述确定模块,还用于根据读命令的突发长度bl,确定所述预设计数值;当所述ddrxsdram为ddr4型存储器时,确定所述预设计数值=bl/2-2,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期;当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述预设计数值=bl/2-1,所述第二门延迟信号的信号宽度为所述预设计数值+1个时钟周期。

15.根据权利要求12所述的装置,其特征在于,所述确定模块,包括:

第一确定子模块,用于当所述ddrxsdram为ddr4型存储器时,确定所述ddr4型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度;

第二确定子模块,用于当所述ddrxsdram为ddr2型或ddr3型存储器时,确定所述ddr2型或ddr3型存储器中的每个存储体对应的读数据窗口为每个存储体对应的所述第二门延迟信号的信号宽度与所述第一门延迟信号的信号宽度之和。

16.根据权利要求12~15任一项所述的装置,其特征在于,所述第一门延迟信号的信号宽度小于等于读命令的突发长度bl/2。

技术总结

本发明提供一种数据采集电路、读数据窗口的控制方法、装置及内存控制器,通过在用于读数据的首个数据选通信号DQS的读前导区域内,确定初始门信号与首个DQS上升沿的相位关系,生成第一门延迟信号;在每个存储体对应的DQS的第一个下降沿,采集第一门延迟信号,得到每个存储体对应的第二门延迟信号的起始位置,生成每个存储体对应的第二门延迟信号;根据每个存储体对应的第二门延迟信号,或者根据第一门延迟信号和每个存储体对应的第二门延迟信号,确定每个存储体对应的读数据窗口。保证了内存控制器对DDRx SDRAM存储器读数据窗口的准确确定,保证了对DDRx存储器数据读取的可靠性。

技术研发人员:黄帅;王焕东;刘志佳

受保护的技术使用者:龙芯中科技术有限公司

技术研发日:.06.26

技术公布日:.01.03

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。