Ddr设备的控制方法、装置、设备、芯片及存储介质

文档序号:923746 发布日期:2021-03-02 浏览:3次 >En<

阅读说明:本技术 Ddr设备的控制方法、装置、设备、芯片及存储介质 (Control method, device, equipment, chip and storage medium of DDR equipment ) 是由 郝鑫 邓思华 薛文良 于 2020-07-10 设计创作,主要内容包括:本发明提供一种DDR设备的控制方法、装置以计算机可读存储介质,其中,DDR设备的控制方法包括步骤:获取DDR设备中DDR控制器的第一时钟频率和DDR控制器对应总线的第二时钟频率;计算DDR设备对应每一任务指令间的延时时间,比较计算所得的各个延时时间得到最大延时时间,DDR设备对应任务的数量为DDR设备所能同时处理的最大数量;将第二时钟频率除以第一时钟频率得到的频率比值乘以最大延时时间得到缓冲器的深度值,并将深度值配置给DDR设备。本发明避免了缓冲器的深度值过大导致缓冲器对应芯片面积的浪费和成本的增加,也避免了缓冲器的深度值过小导致总线的拥堵,提高了DDR设备所在计算机系统的运行效率。(The invention provides a control method and a device of DDR equipment and a computer readable storage medium, wherein the control method of the DDR equipment comprises the following steps: acquiring a first clock frequency of a DDR controller in the DDR equipment and a second clock frequency of a bus corresponding to the DDR controller; calculating the delay time between each task instruction corresponding to the DDR equipment, and comparing the calculated delay time to obtain the maximum delay time, wherein the number of the tasks corresponding to the DDR equipment is the maximum number which can be processed by the DDR equipment at the same time; and multiplying the frequency ratio obtained by dividing the second clock frequency by the first clock frequency by the maximum delay time to obtain the depth value of the buffer, and configuring the depth value to the DDR equipment. The method avoids the waste of the area of the corresponding chip of the buffer and the increase of the cost caused by the overlarge depth value of the buffer, also avoids the bus congestion caused by the overlarge depth value of the buffer, and improves the operation efficiency of a computer system in which the DDR equipment is positioned.)

DDR设备的控制方法、装置、设备、芯片及存储介质

技术领域

本发明涉及计算机技术领域,具体涉及一种DDR设备的控制方法、装置、DDR设备、芯片及计算机可读存储介质。

背景技术

DDR(Double Data Rate Synchronous Dynamic Random Access Memory,双倍同步动态随机存储器)常用来做为计算机系统的数据或者指令的存储。在芯片设计中,一般是所有要访问的设备,通过总线(常用的是AXI(Advanced eXtensible Interface))连接到DDR控制器,在DDR控制器的接口处,通常会设计有buffer(缓冲器)用来先缓存一些指令或者数据,防止因为DDR处理速度不平衡导致的总线拥堵,进而致使整个计算机系统运转效率低下。但是如何判定buffer的深度值,在不同的设计中,有不同的考量。太小的buffer深度值容易导致访问设备的访问效率低下,总线拥堵;太大的buffer深度值会导致芯片面积的浪费,成本的增加。

传统的buffer深度值设计有两种方案。在同步电路设计中,buffer深度值一般是2,也就是所谓的乒乓buffer。在异步电路设计中,DDR控制器接口处的buffer用来做异步处理,一般情况下异步处理的方式采用异步FIFO(First input First output,先进先出队列),而FIFO的深度值一般都是2的n次幂,比如4、8、或者是16。传统的buffer深度值设计方案由于没有考虑DDR控制器的处理速度以及处理特性,这样就会导致DDR控制器在不能读写期间,对应的总线一直处于访问状态,如果buffer深度值不够,即buffer已经存满,DDR控制器就不会再接收命令,会挂住总线,导致总线拥堵;如果buffer深度值很大,就会导致芯片面积的浪费。

由此可知,目前不管是在同步电路还是异步电路中,缓冲器的深度值都是固定的,从而会导致在缓冲器深度值不够时,总线拥堵,在缓冲器深度值过大时,导致芯片面积的浪费。

发明内容

基于上述现状,本发明的主要目的在于提供一种DDR设备的控制方法、装置、DDR设备、芯片及计算机可读存储介质,以避免了缓冲器深度值的过大导致缓冲器对应芯片面积的浪费和成本的增加,缓冲器深度值的过小导致总线的拥堵,提高DDR设备所在计算机系统的运行效率。

为实现上述目的,本发明采用的技术方案如下:

一种DDR设备的控制方法,所述DDR设备的控制方法包括以下步骤:

S100,获取DDR设备中DDR控制器的第一时钟频率和所述DDR控制器对应总线的第二时钟频率;

S200,计算所述DDR设备对应每一任务指令间的延时时间,比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间,其中,所述DDR设备对应任务的数量为所述DDR设备所能同时处理的最大数量;

S300,将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值,并将所述深度值配置给所述DDR设备。

优选地,步骤S200包括:

S210,将所述DDR设备对应的任务依次确定为目标任务,并计算所述目标任务对应相邻指令间的延时时间,判断所述目标任务对应指令的延时时间是否计算完毕;

S220,若所述目标任务对应指令的延时时间计算完毕,则继续计算下一目标任务对应相邻指令间的延时时间,直到所有目标任务对应相邻指令间的延时时间计算完毕,得到各个任务对应的延时时间;

S230,比较各个任务对应的延时时间,将各个任务对应的延时时间中的最大值确定为最大延时时间。

优选地,在步骤S210中,所述计算所述目标任务对应相邻指令间的延时时间的步骤包括:

S211,判断所述目标任务的相邻指令中存在的命令种类,其中,每一指令至少对应一种命令:若所述目标任务的相邻指令只存在相同种类的命令,则执行步骤S212;若所述目标任务的相邻指令只存在不同种类的命令,则执行步骤S213;若所述目标任务的相邻指令存在相同种类的命令和不同种类的命令,则执行步骤S214;

S212,确定同一种类命令中,处理时间长的目标命令,将各目标命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;

S213,将各种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;

S214,确定同一种类命令中,处理时间长的目标命令,将目标命令的处理时间和不同种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

优选地,在步骤S200中,所述计算所述DDR设备对应每一任务指令间的延时时间的步骤包括:

S201,获取所述DDR设备对应每一任务指令的充电准备时间、充电处理时间、自刷新处理时间和激活处理时间;

S202,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间;

其中,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间的计算公式为:

tDELY=tRAS+tRP+tRFC+tRCD;

所述tDELY表示延时时间,所述tRAS表示充电准备时间,所述tRP表示充电处理时间,所述tRFC表示自刷新处理时间,所述tRCD表示激活处理时间。

优选地,步骤S300包括:

S310,将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值,并判断所述深度值是否为整数:若所述深度值不为整数,则执行步骤S311;若所述深度值是整数,则执行步骤S312;

S311,对所述深度值向上取整,得到取整后的深度值,并将取整后的深度值配置给所述DDR设备;

S312,将所述深度值配置给所述DDR设备。

本发明还提供一种DDR设备的控制装置,所述DDR设备的控制装置包括:

获取模块,用于获取DDR设备中DDR控制器的第一时钟频率和所述DDR控制器对应总线的第二时钟频率;

计算模块,用于计算所述DDR设备对应每一任务指令间的延时时间;

比较模块,用于比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间,其中,所述DDR设备对应任务的数量为所述DDR设备所能同时处理的最大数量;

所述计算模块还用于将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值;

配置模块,用于将所述深度值配置给所述DDR设备。

优选地,所述计算模块包括:

第一计算单元,用于将所述DDR设备对应的任务依次确定为目标任务,并计算所述目标任务对应相邻指令间的延时时间;

判断单元,用于判断所述目标任务对应指令的延时时间是否计算完毕;

所述第一计算单元还用于在所述判断单元判断结果为是时,继续计算下一目标任务对应相邻指令间的延时时间,直到所有目标任务对应相邻指令间的延时时间计算完毕,得到各个任务对应的延时时间;

所述比较模块还用于比较各个任务对应的延时时间,将各个任务对应的延时时间中的最大值确定为最大延时时间。

优选地,所述第一计算单元包括:

判断子单元,用于判断所述目标任务的相邻指令是否:只存在相同种类的命令;只存在不同种类的命令;存在相同种类的命令和不同种类的命令,其中,每一指令至少对应一种命令;

计算子单元,用于根据所述判断子单元的判断结果计算相邻指令间的延时时间:若所述目标任务的相邻指令只存在相同种类的命令,则确定同一种类命令中,处理时间长的目标命令,将各目标命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;若只存在不同种类的命令,则将各种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;若所述目标任务的相邻指令存在相同种类的命令和不同种类的命令,则确定同一种类命令中,处理时间长的目标命令,将目标命令的处理时间和不同种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

优选地,所述计算模块还包括:

获取单元,用于获取所述DDR设备对应每一任务指令的充电准备时间、充电处理时间、自刷新处理时间和激活处理时间;

第二计算单元,用于根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间;

其中,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间的计算公式为:

tDELY=tRAS+tRP+tRFC+tRCD;

所述tDELY表示延时时间,所述tRAS表示充电准备时间,所述tRP表示充电处理时间,所述tRFC表示自刷新处理时间,所述tRCD表示激活处理时间。

优选地,所述DDR设备的控制装置包括:

判断模块,用于判断所述深度值是否为整数;

取整模块,用于若所述深度值不为整数,则对所述深度值向上取整,得到取整后的深度值;

所述配置模块还用于将取整后的深度值配置给所述DDR设备;若所述深度值是整数,则将所述深度值配置给所述DDR设备。

本发明还提供一种DDR设备,所述DDR设备包括DDR控制器,所述DDR控制器与如上所述的DDR设备的控制装置连接。

优选地,所述DDR设备还包括DDR存储器,所述DDR存储器与所述DDR控制器连接,所述DDR存储器用于存储所述DDR控制器发送的数据;

所述DDR设备还用于与CPU单元连接,接收所述CPU单元发送的数据。

本发明还提供一种芯片。其上具有集成电路,所述集成电路包括如上所述的DDR设备。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有DDR设备的控制程序,所述DDR设备的控制程序被处理器执行时实现如上所述的DDR设备的控制方法的步骤。

【有益效果】

通过获取DDR设备中DDR控制器的第一时钟频率和DDR控制器对应总线的第二时钟频率;计算DDR设备对应每一任务指令间的延时时间,比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间,其中,DDR设备对应任务的数量为DDR设备所能同时处理的最大数量;根据第一时钟频率和第二时钟频率计算得到频率比值,将频率比值乘以最大延时时间得到缓冲器的深度值,并将深度值配置给DDR设备。实现了考虑DDR设备的特性,计算出DDR设备对应每一任务指令间的延时时间,从而确定最大延时时间计算出缓冲器的深度值,得到一个根据DDR设备对应的任务所确定的缓冲器深度值,使缓冲器的深度值不受同步或者异步电路缓冲器固定深度值的限制,避免了缓冲器的深度值过大导致缓冲器对应芯片面积的浪费和成本的增加,也避免了缓冲器的深度值过小导致总线的拥堵,提高了DDR设备所在计算机系统的运行效率,降低了计算机系统芯片的制造成本。

本发明的其他有益效果,将在

具体实施方式

中通过具体技术特征和技术方案的介绍来阐述,本领域技术人员通过这些技术特征和技术方案的介绍,应能理解所述技术特征和技术方案带来的有益技术效果。

附图说明

以下将参照附图对根据本发明的的优选实施方式进行描述。图中:

图1是本发明DDR设备的控制方法一种实施例的流程图;

图2是本发明DDR设备的控制装置一种实施例的结构示意图;

图3是本发明实施例中DDR设备、CPU单元和DDR设备的控制装置之间的一种结构示意图。

具体实施方式

图1是本发明DDR设备的控制方法一种实施例的流程图,该方法包括如下步骤。

步骤S100,获取DDR设备中DDR控制器的第一时钟频率和所述DDR控制器对应总线的第二时钟频率。

在本实施例中,DDR设备包括DDR控制器和DDR存储器。当需要计算buffer深度值时,获取DDR控制器的时钟频率和DDR控制器对应总线的时钟频率。为了区分不同的时钟频率,本实施例将DDR控制器的时钟频率记为第一时钟频率,将总线的时钟频率记为第二时钟频率。需要说明的是,第一时钟频率为DDR控制器的最大时钟频率,第二时钟频率也是总线的最大时钟频率,第一时钟频率和第二时钟频率是固定不变的,在硬件设计的时候就固定的。总线是DDR控制器和CPU(central processing unit,中央处理器)单元之间的总线,CPU单元和DDR控制器通过总线连接,CPU单元会通过总线将任务数据发送给DDR控制器,DDR控制器会处理任务数据的数据传输,将所接收的任务数据发送给DDR存储器中存储,即DDR存储器用于存储DDR控制器发送的数据。具体地,当侦测到获取指令时,通过该获取指令获取预先设置的第一时钟频率和第二时钟频率。该获取指令可为用户根据需要手动触发的,也可以是在特定条件下触发的,如当buffer深度值计算装置与DDR控制器建立连接关系后,由buffer深度值计算装置自动触发的,或者是在buffer深度值计算装置接收到计算指令是触发的。

步骤S200,计算所述DDR设备对应每一任务指令间的延时时间,比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间,其中,所述DDR设备对应任务的数量为所述DDR设备所能同时处理的最大数量。

计算DDR设备对应每一任务指令间的延时时间。需要说明的是,DDR设备至少对应一个任务,每个任务至少有一个指令。在本实施例中,DDR设备对应任务的数量为DDR设备所能同时处理的最大数量。可以理解的是,由于每一任务都会存在至少一个延时时间,因此在计算得到DDR设备对应每一任务指令间的延时时间后,比较所计算得到的各个延时时间,得到各个延时时间中的最大延时时间。具体地,在计算DDR设备对应每一任务指令间的延时时间过程中,可计算每个任务中,每两个指令之间的延时时间,从而得到该任务对应的延时时间。

进一步地,步骤S200包括:

步骤S210,将所述DDR设备对应的任务依次确定为目标任务,并计算所述目标任务对应相邻指令间的延时时间,判断所述目标任务对应指令的延时时间是否计算完毕。

进一步地,将DDR设备对应的任务依次确定为目标任务,并计算目标任务对应相邻指令间的延时时间,判断目标任务对应指令的延时时间是否计算完毕。具体地,可对DDR设备对应的任务进行排序,然后根据排序结果,从前到后依次将任务确定为目标任务。如可根据DDR设备接收到各个任务的时间,从前到后进行排序。在本实施例中,所计算的延时时间是目标任务相邻指令间的延时时间,如A任务存在A1、A2、A3和A4四个指令,则A任务对应的延时时间为A1和A2之间的延时时间、A2和A3之间的延时时间、A3和A4之间的延时时间。可以理解的是,当一个目标任务相邻指令之间的延时时间都计算完毕后,确定该目标任务对应指令的延时时间计算完毕;当该目标任务相邻之间的延时时间未计算完毕时,确定该目标任务对应指令的延时时间未计算完毕,继续计算该目标任务对应相邻指令之间的延时时间。

具体地,在步骤S201中,所述计算所述目标任务对应相邻指令间的延时时间的步骤包括:

S211,判断所述目标任务的相邻指令中存在的命令种类,其中,每一指令至少对应一种命令:若所述目标任务的相邻指令只存在相同种类的命令,则执行步骤S212;若所述目标任务的相邻指令只存在不同种类的命令,则执行步骤S213;若所述目标任务的相邻指令存在相同种类的命令和不同种类的命令,则执行步骤S214。

具体地,计算目标任务对应相邻指令间的延时时间的过程为:判断目标任务相邻指令中存在的命令种类,其中,每一指令至少对应一种命令。目标任务相邻指令中存在命令种类有三种情况,第一种是目标任务的相邻指令只存在相同种类的命令,此时执行步骤S212;第二种是目标任务的相邻指令只存在不同种类的命令,此时执行步骤S213;第三种是目标任务的相邻指令存在相同种类的命令和不同种类的命令,此时执行步骤S214。如某个指令存在充电准备命令、充电处理命令、自刷新命令和激活命令等。当相邻指令中都含有充电处理命令时,充电处理命令为相同种类的命令;当一个指令中含有激活命令,另一个指令中未含有激活命令时,激活命令为不同种类的命令。

S212,确定同一种类命令中,处理时间长的目标命令,将各目标命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

S213,将各种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

S214,确定同一种类命令中,处理时间长的目标命令,将目标命令的处理时间和不同种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

若确定目标任务的相邻指令中只存在相同种类的命令,则确定同一种类命令,处理时间长的命令为目标命令,然后将各个目标命令的处理时间相加,得到目标任务相邻指令间的延时时间。如当A2指令和A3指令中都含有激活命令,但A2指令中激活命令的处理时间大于A3指令中激活命令的处理时间,因此,A2指令中的激活命令为目标命令。若确定目标任务的相邻指令中只存在不同种类的命令,不存在相同种类的命令,则将各种类命令的处理时间相加,即将相邻指令对应的所有命令的处理时间相加,得到目标任务相邻指令间的延时时间。若确定目标任务的相邻指令存在相同种类的命令,以及存在不同种类的命令,则确定同一种类命令中,处理时间长的目标命令,将目标命令的处理时间和不同种类命令的处理时间相加,得到目标任务相邻指令间的延时时间。如当A2指令中除激活命令外还包括a命令,A3指令中除激活命令还包括b命令,则A2和A3指令间的延时时间等于A2指令中的激活命令、a命令和b命令这三个命令的处理时间之和。

步骤S220,若所述目标任务对应指令的延时时间计算完毕,则继续计算下一目标任务对应相邻指令间的延时时间,直到所有目标任务对应相邻指令间的延时时间计算完毕,得到各个任务对应的延时时间。

步骤S230,比较各个任务对应的延时时间,将各个任务对应的延时时间中的最大值确定为最大延时时间。

若该目标任务对应指令的延时时间计算完毕,则继续计算下一目标任务对应相邻指令间的延时时间,直到所有目标任务对应相邻指令间的延时时间计算完毕,得到各个任务对应的延时时间。需要说明的是,各个目标任务相邻指令间的延时时间计算过程相同,本实施例不再重复赘述。当得到各个任务对应的延时时间后,比较各个任务对应的延时时间,将各个任务对应的延时时间中的最大值确定为最大延时时间。需要说明的是,对于DDR设备来说,就是单纯的读操作与写操作,所以考虑单个任务的最大延时时间,就已经是DDR设备所有任务的最大的延时时间了。

进一步地,在步骤S200中,所述计算所述DDR设备对应每一任务指令间的延时时间的步骤包括:

步骤S201,获取所述DDR设备对应每一任务指令的充电准备时间、充电处理时间、自刷新处理时间和激活处理时间。

步骤S202,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间;其中,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间的计算公式为:

tDELY=tRAS+tRP+tRFC+tRCD;

所述tDELY表示延时时间,所述tRAS表示充电准备时间,所述tRP表示充电处理时间,所述tRFC表示自刷新处理时间,所述tRCD表示激活处理时间。

进一步地,在本实施例中,充分考虑DDR控制器处理每两笔指令之间的延时时间,在该延时时间内,DDR控制器接口处一直有访问存在,在DDR控制器的访问过程中,根据DDR的特性,会存在一些特殊的命令,比如active(激活),precharge(充电),auto-refresh(自刷新)等。那么在任意两个指令中,所能遇到的延时时间是DDR插入了充电命令,自刷新命令,激活命令等这些命令对应的相关时间。每一个命令都有一定的处理时间,本实施例中,充电命令包括充电准备命令和充电处理命令。

获取DDR设备对应每一任务指令的充电准备时间、充电处理时间、自刷新处理时间和激活处理时间,并根据充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间。可以理解的是,充电准备时间为执行充电准备命令所需的时间,充电处理时间为执行充电处理命令所需的时间,自刷新处理时间为执行自刷新命令所需的时间,激活处理时间为执行激活命令所需的时间。

具体地,在本实施例中,将充电准备命令的充电准备时间记为tRAS,将充电处理命令的充电处理时间记为tRP,自刷新命令的自刷新处理时间记为tRFC,激活命令的激活处理时间记为tRCD,此时,第一任务的第一指令与第二指令的延时时间为tDELY11=tRAS+tRP+tRFC+tRCD,以次类推计算得到第一任务第二指令与第三指令之间的延时时间tDELY12、第三指令与第四指令之间的延时时间tDELY13……第K-1指令与第K指令之间的延时时间tDELY1K。需要说明的是,计算tDELY11中的tRAS、tRP、tRFC和tRCD是在第一指令和第二指令的同一种类命令中选取的时间长的处理时间进行相加,如对于自刷新命令,若第一指令的自刷新处理时间大于第二指令的自刷新处理时间,则计算tDELY11中的tRFC为第一指令中自刷新命令对应的自刷新处理时间;对于激活命令,若第一指令的激活处理时间小于第二指令的激活处理时间,则计算tDELY11中的tRCD为第二指令中激活命令对应的激活处理时间。当完成第一任务对应指令的延时时间计算后,获取第二任务,计算该第二任务中每两笔指令之间的延时时间,得到tDELY21、tDELY22、tDELY23……tDELY2K;以此类推,对N个任务遍历,计算每两笔指令之间的延时时间,此时DDR设备需要处理的最多任务数量为N个任务;然后通过逐一比较每个延时时间,得到最大延时时间tDELY。其中,tRAS、tRP、tRFC和tRCD对应的处理时间都可以通过查阅DDR的标准协议得到。

可以理解的是,在其它实施例中,每一个指令可以包括充电命令,自刷新命令和激活命令,也可以不包括充电命令,自刷新命令和激活命令,也可以包括其中一个或者多个命令,如包括充电命令和自刷新命令,但不包括激活命令。每个指令对应的命令的数量可以相同,也可以不相同,每个任务对应指令的数量可以相同,也可以不相同。

步骤S300,将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值,并将所述深度值配置给所述DDR设备。

当得到最大延时时间、第一时钟频率和第二时钟频率后,获取预先存储的缓冲器深度值计算公式,将第二时钟频率除以第一时钟频率,得到频率比值,然后将计算所得的频率比值乘以最大延时时间得到缓冲器的深度值,并计算所得的深度值配置给DDR设备,即在硬件设计阶段,将DDR控制器接口的缓冲器的深度值固定为计算所得的深度值。具体地,缓冲器深度值计算公式为:D=(CLK2/CLK1)*tDELYmax;其中,D表示深度值,CLK1表示第一时钟频率,CLK2表示第二时钟频率,tDELYmax为最大延时时间。

对于DDR设备来说,就是单纯的读操作与写操作,所以考虑单个任务的最大延时时间,就已经是DDR设备所有任务的最大的延时时间了,而第二时钟频率是CPU单元访问DDR设备的时钟频率,第一时钟频率是DDR设备运行过程中的时钟频率,因此将第二时钟频率除以第一时钟频率,得到频率比值,可以使得DDR设备和CPU单元之间的数据吞吐量在最繁忙(busy)的情况下是一样的,从而保证CPU单元和DDR设备之间的数据传输不会被阻挡,不会耽误CPU单元的数据传输效率,最后将频率比值乘以最大延时时间得到深度值,使得DDR控制器接口的缓冲器在DDR设备同时处理最多任务数量,都能成功在接收CPU单元发送的数据,避免总线的拥堵。

需要说明的是,计算所得的深度值是CPU单元与DDR控制器之间总线的位宽个数。最大延时时间表示在最大延时时间内,若在DDR设备中插入其他命令,DDR设备不会再进行读写操作,但是在这个时间内CPU单元有可能还在进行读写操作,因此CPU单元还是会发送读写命令给DDR设备,此时就需要缓冲器进行缓存,所以只要确定在最大延时时间内,极限情况下(CPU单元每个周期内都会发送读写命令给DDR设备)CPU单元发了多少命令给DDR设备,DDR设备对应缓冲器就需要缓存多少命令,每个命令就代表一笔读写请求,一笔读写请求在缓存时需要一个位宽的大小。因此,将第二时钟频率除以第一时钟频率得到单位时间内CPU单元所能发送的命令个数,然后乘以最大延时时间,得到DDR设备对应缓冲器需要缓存的命令数量,从而得到DDR设备对应位宽的数量,即得到DDR设备对应缓冲器的深度值。可以理解的是,脉冲信号是一个按一定电压幅度,一定时间间隔连续发出的脉冲信号,脉冲信号之间的时间间隔称为周期,而将在单位时间(如1秒)内所产生的脉冲个数称为频率。频率是描述周期性循环信号(包括脉冲信号)在单位时间内所出现的脉冲数量多少的计量名称;频率的标准计量单位有:Hz(赫兹)、kHz(千赫兹)、MHz(兆赫兹)等,其中1GHz=1000MHz,1MHz=1000kHz,1kHz=1000Hz,计算脉冲信号周期的时间单位及相应的换算关系是:s(秒)、ms(毫秒)、μs(微秒)和ns(纳秒)等,因此,若在计算深度值过程中,第一时钟频率和第二时钟频率之间的单位不一样,以及时钟频率对应周期的单位时间和最大延时时间的单位时间不一样时,要进行单位转换,以保证所计算的深度值的准确性。

本实施例通过获取DDR设备中DDR控制器的第一时钟频率和DDR控制器对应总线的第二时钟频率;计算DDR设备对应每一任务指令间的延时时间,比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间,其中,DDR设备对应任务的数量为DDR设备所能同时处理的最大数量;将第二时钟频率除以第一时钟频率,得到频率比值,将频率比值乘以最大延时时间得到缓冲器的深度值,并将深度值配置给DDR设备。实现了考虑DDR设备的特性,计算出DDR设备对应每一任务指令间的延时时间,从而确定最大延时时间计算出缓冲器的深度值,得到一个根据DDR设备对应的任务所确定的缓冲器深度值,使缓冲器的深度值不受同步或者异步电路缓冲器固定深度值的限制,避免了缓冲器的深度值过大导致缓冲器对应芯片面积的浪费和成本的增加,也避免了缓冲器的深度值过小导致总线的拥堵,提高了DDR设备所在计算机系统的运行效率,降低了计算机系统芯片的制造成本。

进一步地,提出本发明DDR设备的控制方法另一实施例。

所述DDR设备的控制方法另一实施例与上述DDR设备的控制方法的实施例的区别在于,所述步骤S300包括:

步骤f,S310,将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值,并判断所述深度值是否为整数:若所述深度值不为整数,则执行步骤S311;若所述深度值是整数,则执行步骤S312。

S311,对所述深度值向上取整,得到取整后的深度值,并将取整后的深度值配置给所述DDR设备。

S312,将所述深度值配置给所述DDR设备。

当计算得到第一时钟频率和第二时钟频率之间的频率比值,将该频率比值乘以最大延时时间得到缓冲器的深度值后,判断计算所得深度值是否为整数。若确定深度值不为整数,即计算所得的r深度值中含有小数点,则对深度值向上取整,得到取整后的深度值,并将取整后的深度值配置给DDR设备;若计算所得的深度值为整数,则直接将计算所得的深度值配置给DDR设备。如当计算所得的深度值为10.1时,向上取整后所得的深度值为11;当计算所得的深度值为12.9时,向上取整后所得的深度值为13。若确定计算所得深度值为整数,则直接将计算所得的深度值配置给DDR设备。

本实施例通过在计算得到深度值后,判断深度值是否为整数,在确定深度值不为整数时,对深度向上取整,得到取整后的深度值,并将取整后的深度值配置给DDR设备,避免将不是整数的深度值配置给DDR设备,导致将深度值配置给DDR设备的过程失败,提高了缓冲器深度值配置的成功率。

本发明还提供一种DDR设备的控制装置,参照图2,所述DDR设备的控制装置包括:

获取模块10,用于获取DDR设备中DDR控制器的第一时钟频率和所述DDR控制器对应总线的第二时钟频率;

计算模块20,用于计算所述DDR设备对应每一任务指令间的延时时间,其中,所述DDR设备对应任务的数量为所述DDR设备所能同时处理的最大数量;

比较模块30,用于比较计算所得的各个延时时间,得到各个延时时间中的最大延时时间;

所述计算模块20还用于将所述第二时钟频率除以所述第一时钟频率,得到频率比值,将所述频率比值乘以所述最大延时时间得到缓冲器的深度值;

配置模块40,用于将所述深度值配置给所述DDR设备。

进一步地,所述计算模块20包括:

第一计算单元,用于将所述DDR设备对应的任务依次确定为目标任务,并计算所述目标任务对应相邻指令间的延时时间;

判断单元,用于判断所述目标任务对应指令的延时时间是否计算完毕;

所述第一计算单元还用于在所述判断单元判断结果为是时,继续计算下一目标任务对应相邻指令间的延时时间,直到所有目标任务对应相邻指令间的延时时间计算完毕,得到各个任务对应的延时时间;

所述比较模块30还用于比较各个任务对应的延时时间,将各个任务对应的延时时间中的最大值确定为最大延时时间。

进一步地,所述第一计算单元包括:

判断子单元,用于判断所述目标任务的相邻指令是否:只存在相同种类的命令;只存在不同种类的命令;存在相同种类的命令和不同种类的命令,其中,每一指令至少对应一种命令;

计算子单元,用于根据所述判断子单元的判断结果计算相邻指令间的延时时间:若所述目标任务的相邻指令只存在相同种类的命令,则确定同一种类命令中,处理时间长的目标命令,将各目标命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;若只存在不同种类的命令,则将各种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间;若所述目标任务的相邻指令存在相同种类的命令和不同种类的命令,则确定同一种类命令中,处理时间长的目标命令,将目标命令的处理时间和不同种类命令的处理时间相加,得到所述目标任务相邻指令间的延时时间。

进一步地,所述计算模块20还包括:

获取单元,用于获取所述DDR设备对应每一任务指令的充电准备时间、充电处理时间、自刷新处理时间和激活处理时间;

第二计算单元,用于根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间;

其中,根据所述充电准备时间、充电处理时间、自刷新处理时间和激活处理时间对应计算每一任务指令间的延时时间的计算公式为:

tDELY=tRAS+tRP+tRFC+tRCD;

所述tDELY表示延时时间,所述tRAS表示充电准备时间,所述tRP表示充电处理时间,所述tRFC表示自刷新处理时间,所述tRCD表示激活处理时间。

进一步地,所述DDR设备的控制装置包括:

判断模块,用于判断所述深度值是否为整数;

取整模块,用于若所述深度值不为整数,则对所述深度值向上取整,得到取整后的深度值;

所述配置模块40还用于将取整后的深度值配置给所述DDR设备;若所述深度值是整数,则将所述深度值配置给所述DDR设备。

本发明DDR设备的控制装置的具体实施方式与上述DDR设备的控制方法各实施例基本相同,在此不再重复赘述。

本发明还提供一种DDR设备,所述DDR设备包括DDR控制器,所述DDR控制器与如上所述的DDR设备的控制装置连接。

进一步地,所述DDR设备还包括DDR存储器,所述DDR存储器与所述DDR控制器连接,所述DDR存储器用于存储所述DDR控制器发送的数据;

所述DDR设备还用于与CPU单元连接,接收所述CPU单元发送的数据。

进一步地,DDR控制器与DDR设备的控制装置连接,具体地,CPU单元、DDR控制器、DDR存储器和DDR设备的控制装置之间的结构示意图可参照图3。

需要说明的是,关于DDR设备的描述已在上面的实施例中描述,在此不再重复赘述。

本发明还提供一种芯片,该芯片上设置有集成电路,该集成电路包括上述的DDR设备。

需要说明的是,关于DDR设备的描述已在上面的实施例中描述,在此不再重复赘述。

本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有DDR设备的控制程序,所述DDR设备的控制程序被处理器执行时实现如上所述DDR设备的控制方法的步骤。

本发明计算机可读存储介质的具体实施方式与上述DDR设备的控制方法各实施例基本相同,在此不再重复赘述。

本领域的技术人员能够理解的是,在不冲突的前提下,上述各优选方案可以自由地组合、叠加。

应当理解,上述的实施方式仅是示例性的,而非限制性的,在不偏离本发明的基本原理的情况下,本领域的技术人员可以针对上述细节做出的各种明显的或等同的修改或替换,都将包含于本发明的权利要求范围内。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种控制器共享同步方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!