CN114238208A - 一种内存控制器及芯片产品 - Google Patents

一种内存控制器及芯片产品 Download PDF

Info

Publication number
CN114238208A
CN114238208A CN202111527858.XA CN202111527858A CN114238208A CN 114238208 A CN114238208 A CN 114238208A CN 202111527858 A CN202111527858 A CN 202111527858A CN 114238208 A CN114238208 A CN 114238208A
Authority
CN
China
Prior art keywords
memory
delay value
memory controller
protocol
command
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.)
Pending
Application number
CN202111527858.XA
Other languages
English (en)
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 CN202111527858.XA priority Critical patent/CN114238208A/zh
Publication of CN114238208A publication Critical patent/CN114238208A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/065Partitioned buffers, e.g. allowing multiple independent queues, bidirectional FIFO's
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Landscapes

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

Abstract

本申请实施例提供一种内存控制器及芯片产品,所述内存控制器包括:异步FIFO模块,被配置为同步源自第一时钟域和源自第二时钟域的数据或者命令,其中,所述第一时钟域是由内存控制器的时钟频率所限定的时钟域,所述第二时钟域是由内存的时钟频率所限定的时钟域;处理单元,被配置为根据测量延时值和内存协议所规定的任意两条相邻命令之间的协议延时值得到所述任意两条相邻命令之间的发送间隔延时值,其中,所述测量延时值是通过测量相邻两条命令或相邻两拍数据从内存控制模块传到内存物理接口上的间隔时间变化量确定的。通过本申请的一些实施例有效减少内存控制器从发射命令到完成传输数据的延时。

Description

一种内存控制器及芯片产品
技术领域
本申请涉及内存控制器领域,具体而言本申请实施例涉及一种内存控制器及芯片产品。
背景技术
目前Soc系统(即系统级芯片)中包括:内存(例如,Dram)、内存控制器(例如,Dramcontroller)以及内存物理接口(例如,Dram Phy)。内存控制器Dram controller负责读写指令调度以及Dram的时序控制,而Dram phy负责将完成调度后的指令按照Dram的要求完成编码,将相应的写数据并发送给内存Dram,以及接受从内存Dram读取的内存数据。
相关技术中内存物理接口(例如,Dram phy)和内存(例如,Dram)按照同步时钟设计,即,内存物理接口(例如,Dram phy)的数字逻辑与内存(例如,Dram)具有相同的时钟频率,或者其1/2或者1/4的时钟频率,即这些单元之间处于同步时钟域。
由于内存(例如,Dram)在执行读read、写write以及激活active等各种操作需要满足时序要求,因此内存控制器(例如,Dram controller)在读写命令调度时需要满足内存(例如,Dram)的这些要求,所以内存控制器(例如,Dram controller)通过一些计时器计时来满足这些要求。相关技术中为了准确计时,内存控制器(例如,Dram controller)的主要逻辑(包含计时器)与内存物理接口(例如,Dram phy)是同步时钟设计,这导致了通过内存控制器进行调度命令和传输数据的延时增加很多。
因此如何提升内存控制器的性能成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种内存控制器及芯片产品,通过本申请的一些实施例有效减少内存控制器调度命令和传输数据的延时。
第一方面,本申请的一些实施例提供一种内存控制器,所述内存控制器包括:异步FIFO模块,被配置为同步源自第一时钟域和源自第二时钟域的数据或者命令,其中,所述第一时钟域是由内存控制器的时钟频率所限定的时钟域,所述第二时钟域是由内存的时钟频率所限定的时钟域;处理单元,被配置为根据测量延时值和内存协议所规定的任意两条相邻命令之间的协议延时值得到所述任意两条命令之间的发送间隔延时值,其中,所述测量延时值是通过测量相邻两条命令从内存控制模块传到内存物理接口上的间隔时间变化量确定的,所述变化量的大小与所述异步FIFO模块相关。
本申请的一些实施例将内存控制器(例如,Dram controller)与内存物理接口/内存(例如,Dram phy/Dram)之间的同步设计改为异步设计,使得无论内存(或者内存物理接口)运行在任何时钟频率下,内存控制器(例如,Dram controller)都运行在一个较高的时钟频率下,从而减少内控控制器调度命令和传输数据的延时。
在本申请的一些实施例中,所述任意两个相邻命令包括前一命令和后一命令,所述处理单元被配置为:通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值;获取预先测量得到的所述测量延时值;根据所述协议延时值和所述测量延时值得到所述发送间隔延时值。
由于本申请的一些实施例的内存控制器(例如,Dram controller)和内存/内存物理接口(例如,Dram/dram_phy)是异步设计,因此当两个命令在内存控制器的命令调度之间的间隔时间t1,与他们被传输到内存(例如,Dram接口)接口上的间隔时间t2并不一定相等,因此需要修正内存控制器上计数器上的计数值,以使内存控制器输出的命令满足协议要求。
在本申请的一些实施例中,所述处理单元被配置为:通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值为大于第一时长t1;获取所述间隔时间变化量的最小值为delta1;通过如下公式求解得到所述发送间隔延时值:发送间隔延时值>=t1-delat1。
本申请的一些实施例通过确定发送间隔延时值的这种算法可以保证发送到内存物理接口的两个相邻命令满足接口协议的要求,进而保证这些命令被内存准确执行。
在一些实施例中,所述处理器被配置为:通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值为小于第二时长t2;获取所述间隔时间变化量的最大值为delta0;通过如下公式求解得到所述发送间隔延时值:发送间隔延时值<t1-delat0。
本申请的一些实施例通过确定发送间隔延时值的这种算法可以保证发送到内存物理接口的两个相邻命令满足接口协议的要求,进而保证这些命令被内存准确执行。
在一些实施例中,所述处理单元被配置为对所述发送间隔延时值进行取整操作得到目标计数值。
本申请的一些实施例通过取整操作可以得到能够被计数器计数的值,方便内存控制器进行命令或者数据调度。
在一些实施例中,所述内存控制器还包括:计数器,被配置为根据发送所述前一命令的时刻和所述目标计数值进行计数。
本申请的一些实施例通过计数器对计算得到的发送间隔延时值计时,可以保证命令调度的结果满足内存的要求。
在一些实施中,所述内存控制器还包括:命令调度器,被配置为在所述计数器对所述目标计数值计数结束时,向所述内存物理接口发送所述后一命令。
本申请的一些实施例通过命令调度器完成内存控制器对命令的调度。
第二方面,本申请的一些实施例提供一种芯片产品,所述芯片产品包括:处理器,被配置为向内存发送请求;如第一方面任意实施例所述的内存控制器,被配置为接收所述请求并将所述请求转化为满足内存接口协议的一个或多个命令信号。
在一些实施例中,所述处理器与所述内存控制器工作于相同的时钟域。
在一些实施例中,所述芯片产品还包括:总线模块,被配置为与所述处理器和所述内存控制器连接,其中所述总线模块与所述内存控制器工作于相同的时钟域。
在一些实施例中,所述芯片产品还包括:内存接口模块以及内存,其中,所述内存接口模块与所述内存控制器工作于不同的时钟域。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为相关技术提供的芯片产品的组成框图;
图2为本申请实施例提供的芯片产品的组成框图之一;
图3为本申请实施例提供的芯片产品的组成框图之二;
图4为本申请实施例提供的内存控制器的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
Dram:指动态随机存取存储器。
Dram controller:完成Dram内存读写操作及调度,使得读写操作满足相关协议,以及完成数据传输。
Dram PHY:将Dram controller的调度命令变成满足Dram spec标准的控制信号和数据信号,以及在Dram Controller和Dram之间完成数据传输,通常为模数混合电路。
SOC:system on chip。
时钟同步:时钟之间频率相等或成倍数关系,并保持固定的相位,不同时钟触发时序逻辑之间需要做setup、hold时序检查。
时钟异步:不同时钟触发时序逻辑之间不需要做setup、hold时序检查。
Twr:write recovery time。
相关技术为了使得内存(例如,Dram)能够提供最大的带宽,希望内存(例如,Dram)和内存物理接口(例如,Dram Phy)以最大的频率运行。但是内存控制器(例如,Dramcontroller)是可综合设计,它的运行频率不能随着内存(例如,Dram)和内存物理接口(例如,Dram Phy)频率同步提高。由于他们是同步设计,当内存控制器的运行频率达不到内存(例如,Dram)和内存物理接口(例如,Dram Phy)运行频率时,则内存控制器只能以内存或者内存物理接口的1/2频率甚至是1/4频率运行。当内存控制器(例如,Dram controller)的运行频率下降后,它调度命令和传输数据的延时会相应增加,这对访存延时敏感的系统影响会比较大。例如,Dram工作在5600Mb/s时,其时钟运行频率为2800Mhz,如果Dramcontroller的逻辑部分运行频率不能达到2800Mhz,那么只能运行在1400Mhz;甚至如果不能运行在1400Mhz,那么他只能运行在700Mhz,那么dram controller调度命令和传输数据的延时会几乎相应增加好几倍。
如图1所示,在传统的实现方案中,Dram(作为内存的一个具体示例),Dram phy(作为内存物理接口的一个具体示例)和Dram controller(作为内存控制器的一个具体示例)主要逻辑(特指与dram phy接口部分)是同步设计。而Dram controller主要逻辑与图1的总线模块或者与处理器可能是同步设计,也有可能是异步设计,这与系统时钟有关。假设Dramcontroller调度命令和传输数据需要花费10个时钟周期。如果Dram的最大传输速率最大支持5600Mb/s,则Dram的时钟频率为2.8GHz,由于同步时钟设计的要求,要求Dramcontroller运行在2.8GHz,或者1.4GHz,或者700Mhz。如果Dram controller运行频率最高只能达到1.35GHz,那么它只能运行在700Mhz。这时dram controller调度命令和传输数据需要花费10个时钟周期=1/0.7*10=14.3ns。
本申请的一些实施例至少为了减少内存控制器调度命令和传输数据的延时。例如,在本申请的一些实施例中,为了减少避免内存控制器(例如,Dram controller)运行在一个较低的时钟频率而造成的调度命令和传输数据的延时,将内存控制器(例如,dramcontroller)与内存物理接口/内存(例如,Dram phy/Dram)之间的同步设计改为异步设计,使得无论内存或者内存物理接口运行在什么频率下,内存控制器都运行在一个较高的频率下,从而减少其调度命令和传输数据的延时。
请参看图2,图2为本申请的一些实施例提供的芯片产品10,该芯片产品10包括:处理器100、总线模块700、内存控制器200、内存物理接口300以及内存400,其中,在图2中内存控制器工作于第一时钟域600,而内存物理接口300和内存400工作于第二时钟域500。也就是说,与相关技术不同的是,在本申请的一些实施例中内存控制器200与内存(或内存物理接口)之间是异步设计。
图2的处理器100被配置为向内存发送请求(例如,对内存进行读写的请求)。在本申请的一些实施例中,内存控制器200通过总线模块700与处理器100连接。在本申请的一些实施例中,内存控制器与总线模块700或者处理器100属于同步设计,在本申请的另一些实施例中,内存控制器与总线模块700或者处理器100属于异步设计,本申请的实施例对此不做限定。
图2的内存控制器200被配置为接收来自于处理器100的请求并将所述请求转化为满足内存400的接口协议的一个或多个命令信号。
在一些实施例中,图2的芯片产品的内存物理接口模块300与内存控制器200工作于不同的时钟域。
例如,如图3所示,本申请一些实施例的芯片产品10包括:Dram controller、Dramphy以及Dram,其中,Dram controller模块中包括异步FIFO模块,该Dram controller模块通过异步FIFO模块与内存物理接口300进行通信。与图1同步设计的芯片产品的具体示例的效果不同(具体示例可参考上文对图1的描述),采用本申请一些实施例提供的图3的方案之后,可以让Dram controller运行在最高频率1.35GHz下,这时Dram、Dram phy运行频率是2.8Ghz,dram controller运行频率是1.35Ghz,所以dram controller调度命令和传输数据需要花费10个时钟周期=1/1.35*10=7.4ns,节省了6.9ns。
下面结合图4示例性阐述本申请一些实施例提供的内存控制器200。
本申请一些实施例提供的内存控制器200包括:异步FIFO模块240以及处理单元210。
异步FIFO模块240被配置为同步源自第一时钟域和源自第二时钟域的数据或者命令,其中,所述第一时钟域是由内存控制器的时钟频率所限定的时钟域,所述第二时钟域是由内存的时钟频率所限定的时钟域。
可以理解的是,在大规模ASIC或FPGA设计中,多时钟系统往往是不可避免的,这样就产生了不同时钟域数据传输的问题,其中一个比较好的解决方案就是使用异步FIFO来作不同时钟域数据传输的缓冲区,这样既可以使相异时钟域数据传输的时序要求变得宽松,也提高了它们之间的传输效率。本申请的一些实施例采用异步FIFO模块可以解决跨时钟域的问题,在应用时需根据实际情况考虑好异步FIFO模块的深度即可。
处理单元210被配置为根据测量延时值和内存协议所规定的任意两条相邻命令之间的协议延时值得到所述任意两条相邻命令之间的发送间隔延时值,其中,所述测量延时值是通过测量相邻两条命令或相邻两拍数据从内存控制模块传到内存物理接口上的间隔时间变化量确定的。例如,所述测量延时值是通过测量相邻两条命令从内存控制模块传到内存物理接口上时的命令间隔时间的变化量确定的。
需要说明的是,内存控制器至少可用于命令调度,而要完成不同命令的调度需要预先知道被调度命令之间的延时。本申请一些实施例的内存控制器和内存(或内存物理接口)属于异步设计,因此如果直接根据与该内存控制器相连的内存对应的协议规定的被调度命令之间的内存协议所规定的延时值得到内存控制器的计数器的计数值会导致内存无法获取被调度的命令。为了解决该问题,本申请的一些实施例需要处理单元210预先计算出相邻命令之间的发送间隔延时值,而该发送间隔延时值与内存协议所规定的延时值相关。
也就是说,本申请的一些实施例将内存控制器(例如,Dram controller)与内存物理接口/内存(例如,Dram phy/Dram)之间的同步设计改为异步设计,使得无论内存(或者内存物理接口)运行在任何时钟频率下,内存控制器(例如,Dram controller)都运行在一个较高的时钟频率下,从而减少内控控制器调度命令和传输数据的延时。
例如,在本申请的一些实施例中,所述任意两个相邻命令包括前一命令和后一命令,所述处理单元210被配置为:通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值;获取预先测量得到的所述测量延时值;根据所述协议延时值和所述测量延时值得到所述发送间隔延时值。由于本申请的一些实施例的内存控制器(例如,Dramcontroller)和内存/内存物理接口(例如,Dram/dram_phy)是异步设计,因此当两个命令在内存控制器的命令调度之间的间隔时间t1,与他们被传输到内存(例如,Dram接口)接口上的间隔时间t2并不一定相等,因此需要修正内存控制器上计数器上的计数值,以使内存控制器输出的命令满足协议要求。
下面内存控制器以dram controller为例阐述一下获取发送间隔延时值的意义和方法。
由于在本申请的一些实施例中,Dram controller和Dram/Dram_phy是异步设计,两个相邻命令在内存控制器的命令调度之间的间隔时间t1,与这两个相邻命令被传输到Dram接口上的间隔时间t2并不一定相等。虽然t1符合Dram标准(即t1是内存协议所规定的协议延时值),但是t2并一定符合标准,所以在命令调度时需要特殊处理以得到任意相邻两条命令的发送间隔延时值。对于特定的Dram controller,Dram phy,Dram系统中,他们运行在特定的频率下,两条命令从命令调度器传到Dram物理接口上时,他们的命令间隔变化的最大值为delta0(可以为正,也可以为负),变化的最小值为delta1(可以为正,也可以为负),delta0>delta1。对于特定的系统和特定的频率,delta0和delta1是确定的,而且可以测量的。
如果Dram标准(即与内存对应的协议)中要求两个命令之间的命令间隔>=t1,则由于本申请的内存控制器与内存物理接口之间是异步设计,因此在本申请的一些实施例中要求两个相邻命令之间的间隔>=t1-delat1;如果Dram标准中要求两个相邻命令之间的命令间隔<t1,则由于本申请的内存控制器与内存物理接口之间是异步设计,在本申请的一些实施例中要求两个相邻命令之间的间隔<t1-delat0。
也就是说,在本申请的一些实施例中,所述通过所述内存的属性参数值获取发送所述前一命令和所述后一命令的内存协议所规定的延时值,包括:通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值为大于第一时长t1;获取所述间隔时间变化量的最大值为delta1;通过如下公式求解得到所述发送间隔延时值:发送间隔延时值>=t1+delat1。
在本申请的另一些实施例中,所述通过内存协议获取发送所述前一命令和所述后一命令的协议延时值,包括:获取发送所述前一命令和所述后一命令的内存协议所规定的延时值为小于第二时长t2;所述获取预先测量得到的测量延时值,包括:获取所述间隔时间变化量的最大值为delta0;所述根据所述内存协议所规定的协议延时值和所述测量延时值得到所述发送间隔延时值,包括:通过如下公式求解得到所述发送间隔延时值:发送间隔延时值<=t2+delat0。
本申请的一些实施例通过确定发送间隔延时值的这种算法可以保证发送到内存物理接口的两个相邻命令满足接口协议的要求,进而保证这些命令被内存准确执行。
可以理解的是,为了使得计数器可以根据发送间隔延时值进行准确计数,在本申请的一些实施例中,处理单元210被配置为对所述发送间隔延时值进行取整操作得到目标计数值。本申请的一些实施例通过取整操作可以得到能够被计数器计数的值,方便内存控制器进行命令或者数据调度。
需要说明的是,为了使得内存控制器完成命令调度,在本申请的一些实施例中,内存控制器还包括:计数器220以及命令调度器230,其中,计数器220被配置为根据发送所述前一命令的时刻和所述目标计数值进行计数。命令调度器被配置为在所述计数器对所述目标计数值计数结束时,向所述内存物理接口发送所述后一命令。
本申请的一些实施例通过命令调度器完成内存控制器对命令的调度。
例如,以Dram内存和某一条具体命令为例示例性阐述获取计数器的计数值的方法。在本申请的一些实施例中可以用以下办法计算Dram标准相关参数和计数值,下面以Twr参数为例,展示在DDR4400下如何计算相应的计数值。对于DDR4400,其Dram/Dram_phy的时钟频率为2.2Ghz,但是由于异步设计,Dram controller可以运行在最高2GHz频率下,其周期T=500ps。Dram标准要求Twr>29.965ns=29965ps,但由于异步设计导致本申请一些实施例的delat0=800ps,delta1=-200ps,所以要求该参数对应的计数值计算如下:(29965-(-200))/500=60.33,向上取整为61。
可以理解的是,采用本申请的一些实施例可以让Dram controller运行在最大频率上,减少调度命令和传输数据延时,而不受Dram的运行频率限制,让各自发挥最大的性能,而不受对方的运行频率干扰。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

Claims (11)

1.一种内存控制器,其特征在于,所述内存控制器包括:
异步FIFO模块,被配置为同步源自第一时钟域和源自第二时钟域的数据或者命令,其中,所述第一时钟域是由内存控制器的时钟频率所限定的时钟域,所述第二时钟域是由内存的时钟频率所限定的时钟域;
处理单元,被配置为根据测量延时值和内存协议所规定的任意两条相邻命令之间的协议延时值得到所述任意两条相邻命令之间的发送间隔延时值,其中,所述测量延时值是通过测量相邻两条命令或相邻两拍数据从内存控制模块传到内存物理接口上的间隔时间变化量确定的。
2.如权利要求1所述的内存控制器,其特征在于,所述任意两个相邻命令包括前一命令和后一命令,所述处理单元被配置为:
通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值;
获取预先测量得到的所述测量延时值;
根据所述协议延时值和所述测量延时值得到所述发送间隔延时值。
3.如权利要求2所述的内存控制器,其特征在于,
所述处理单元被配置为:
通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值为大于第一时长t1;
获取所述间隔时间变化量的最大值为delta1;
通过如下公式求解得到所述发送间隔延时值:
发送间隔延时值>=t1+delat1。
4.如权利要求1-3任一项所述的内存控制器,其特征在于,
所述处理单元被配置为:
通过所述内存协议获取发送所述前一命令和所述后一命令的协议延时值为小于第二时长t2;
获取所述间隔时间变化量的最大值为delta0;
通过如下公式求解得到所述发送间隔延时值:
发送间隔延时值<=t2+delat0。
5.如权利要求3-4任一项所述的内存控制器,其特征在于,所述处理单元被配置为对所述发送间隔延时值进行取整操作得到目标计数值。
6.如权利要求5所述的内存控制器,其特征在于,所述内存控制器还包括:
计数器,被配置为根据发送所述前一命令的时刻和所述目标计数值进行计数。
7.如权利要求6所述的内存控制器,其特征在于,所述内存控制器还包括:
命令调度器,被配置为在所述计数器对所述目标计数值计数结束时,向所述内存物理接口发送所述后一命令。
8.一种芯片产品,其特征在于,所述芯片产品包括:
处理器,被配置为向内存发送请求;
如权利要求1-7任一项所述的内存控制器,被配置为接收所述请求并将所述请求转化为满足内存接口协议的一个或多个命令信号。
9.如权利要求8所述的芯片产品,其特征在于,所述处理器与所述内存控制器工作于相同的时钟域。
10.如权利要求8-9任一项所述的方法,其特征在于,所述芯片产品还包括:
总线模块,被配置为与所述处理器和所述内存控制器连接,其中所述总线模块与所述内存控制器工作于相同的时钟域。
11.如权利要求8-9任一项所述的芯片产品,其特征在于,所述芯片产品还包括:内存接口模块以及内存,其中,所述内存接口模块和与所述内存控制器工作于不同的时钟域。
CN202111527858.XA 2021-12-14 2021-12-14 一种内存控制器及芯片产品 Pending CN114238208A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111527858.XA CN114238208A (zh) 2021-12-14 2021-12-14 一种内存控制器及芯片产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111527858.XA CN114238208A (zh) 2021-12-14 2021-12-14 一种内存控制器及芯片产品

Publications (1)

Publication Number Publication Date
CN114238208A true CN114238208A (zh) 2022-03-25

Family

ID=80756088

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111527858.XA Pending CN114238208A (zh) 2021-12-14 2021-12-14 一种内存控制器及芯片产品

Country Status (1)

Country Link
CN (1) CN114238208A (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519688B1 (en) * 2000-09-29 2003-02-11 S3 Incorporated Read data valid loop-back for high speed synchronized DRAM controller
CN1588552A (zh) * 2004-09-16 2005-03-02 联合信源数字音视频技术(北京)有限公司 有异步缓存的双倍速动态随机存取存储器控制装置及方法
CN101000590A (zh) * 2007-01-22 2007-07-18 北京中星微电子有限公司 一种读取内存中数据的方法和系统
US20080028249A1 (en) * 2006-03-31 2008-01-31 Agrawal Parag V System and method for adaptive frequency scaling
US20090193203A1 (en) * 2008-01-24 2009-07-30 Brittain Mark A System to Reduce Latency by Running a Memory Channel Frequency Fully Asynchronous from a Memory Device Frequency
CA2707914A1 (en) * 2009-07-29 2011-01-29 Vimicro Corporation Operation frequency adjusting system and method
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
US20110302356A1 (en) * 2010-06-07 2011-12-08 Xilinx, Inc. Scalable memory interface system
CN103377154A (zh) * 2012-04-25 2013-10-30 无锡江南计算技术研究所 存储器的访存控制装置及方法、处理器及北桥芯片
US20150117582A1 (en) * 2013-10-25 2015-04-30 Advanced Micro Devices, Inc. Predictive periodic synchronization using phase-locked loop digital ratio updates
CN106708167A (zh) * 2015-11-13 2017-05-24 北京兆易创新科技股份有限公司 一种调整时钟的方法及控制器
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6519688B1 (en) * 2000-09-29 2003-02-11 S3 Incorporated Read data valid loop-back for high speed synchronized DRAM controller
CN1588552A (zh) * 2004-09-16 2005-03-02 联合信源数字音视频技术(北京)有限公司 有异步缓存的双倍速动态随机存取存储器控制装置及方法
US7966439B1 (en) * 2004-11-24 2011-06-21 Nvidia Corporation Apparatus, system, and method for a fast data return memory controller
US20080028249A1 (en) * 2006-03-31 2008-01-31 Agrawal Parag V System and method for adaptive frequency scaling
CN101000590A (zh) * 2007-01-22 2007-07-18 北京中星微电子有限公司 一种读取内存中数据的方法和系统
US20090193203A1 (en) * 2008-01-24 2009-07-30 Brittain Mark A System to Reduce Latency by Running a Memory Channel Frequency Fully Asynchronous from a Memory Device Frequency
CA2707914A1 (en) * 2009-07-29 2011-01-29 Vimicro Corporation Operation frequency adjusting system and method
US20110302356A1 (en) * 2010-06-07 2011-12-08 Xilinx, Inc. Scalable memory interface system
CN103377154A (zh) * 2012-04-25 2013-10-30 无锡江南计算技术研究所 存储器的访存控制装置及方法、处理器及北桥芯片
US20150117582A1 (en) * 2013-10-25 2015-04-30 Advanced Micro Devices, Inc. Predictive periodic synchronization using phase-locked loop digital ratio updates
CN106708167A (zh) * 2015-11-13 2017-05-24 北京兆易创新科技股份有限公司 一种调整时钟的方法及控制器
CN108139994A (zh) * 2016-05-28 2018-06-08 华为技术有限公司 内存访问方法及内存控制器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宁宁;: "挣脱频率的束缚内存异步技术", 现代计算机(普及版), no. 06, 5 June 2006 (2006-06-05) *
金大超;冷建伟;: "异步时钟域信号同步的实现", 天津理工大学学报, no. 03, 15 June 2017 (2017-06-15) *

Similar Documents

Publication Publication Date Title
US10423553B2 (en) System-on-chip including asynchronous interface and driving method thereof
TWI451252B (zh) 具有調適預測之關鍵字組轉遞
US5931926A (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
EP2965470B1 (en) High-resolution link-path delay estimator and method for estimating a signal-path delay
US10969821B2 (en) Latency synchronization across clock domains
US10320407B1 (en) Low power synchronization of multiple analog to digital converters
US20120042105A1 (en) Bus arbitration apparatus
US6738917B2 (en) Low latency synchronization of asynchronous data
AU2013204757A1 (en) Synchronisation of a system of distributed computers
US6226698B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
CN106533399B (zh) 修改时钟信号的电路和方法及执行时间敏感任务的装置
Bhadra et al. A low power UART design based on asynchronous techniques
CN109067399B (zh) 一种多采样率的adc控制器实现方法
JP7299890B2 (ja) ポインタオフセットを用いた非同期バッファ
KR20160047484A (ko) 주변 장치들로부터 하나의 와이어로의 irq 라인들의 수를 최소화하는 방법
CN114238208A (zh) 一种内存控制器及芯片产品
US20040006662A1 (en) Preemptive round robin arbiter
JP7404133B2 (ja) 計測システム、及びその制御方法
EP0752642B1 (en) Method and apparatus for dynamically calculating degrees of fullness of a synchronous fifo
CN113032305A (zh) 一种接口中断测量方法及装置
US7302508B2 (en) Apparatus and method for high speed data transfer
CN114528998A (zh) 用于量子测控系统的多板卡信号同步方法、设备及介质
CN110958540B (zh) 一种usb音频的转换方法及装置
Fara et al. Scheduling replica voting in fixed-priority real-time systems
CN107566199A (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