CN114242138A - 一种延时控制器、内存控制器以及时序控制方法 - Google Patents
一种延时控制器、内存控制器以及时序控制方法 Download PDFInfo
- Publication number
- CN114242138A CN114242138A CN202111456142.5A CN202111456142A CN114242138A CN 114242138 A CN114242138 A CN 114242138A CN 202111456142 A CN202111456142 A CN 202111456142A CN 114242138 A CN114242138 A CN 114242138A
- Authority
- CN
- China
- Prior art keywords
- bit
- request
- memory
- operations
- write
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 37
- 238000004590 computer program Methods 0.000 claims description 7
- 239000000126 substance Substances 0.000 claims 3
- 238000013461 design Methods 0.000 abstract description 7
- 230000002708 enhancing effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 15
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000001934 delay Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 101150098958 CMD1 gene Proteins 0.000 description 1
- 101100382321 Caenorhabditis elegans cal-1 gene Proteins 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
- G11C19/28—Digital stores in which the information is moved stepwise, e.g. shift registers using semiconductor elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
Abstract
本申请实施例提供一种延时控制器、内存控制器以及时序控制方法,该延时控制器包括:位宽可扩展的移位寄存器,被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,其中,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位;处理单元,被配置为通过确定所述比特位数据被移动的位数来确定延时时长,并根据所述延时时长确定到达发送所述所有操作中各操作的时间;其中,所述移位寄存器的位宽至少可根据接收的请求总数目和各请求包括的所有操作的总数目进行调整。本申请的一些实施例减少内存控制内计数器的数量,同时增强设计的可扩展性。
Description
技术领域
本申请涉及延时控制领域,具体而言本申请实施例涉及一种延时控制器、内存控制器以及时序控制方法。
背景技术
为了实现内存控制器与内存物理接口之间的信号传输,需要确定各信号的延时计时,以满足相关接口协议的通信要求。例如,内存控制器和DDRPHY之间的信号传输需要满足接口协议(例如,DFI接口协议),为了实现接口(例如,DFI接口)上各个信号持续时间和延时的要求,现有的内存控制器会为每个参数设置一个计数器。
现有的内存控制器通过计数器的方式虽然可以完成DFI接口上各个信号持续时间及其延时的要求,但由于DFI接口上信号和参数较多,同时为支持不同的特性要求,各个信号之间的延时也有所不同,为满足不同特性和不同应用的需求,势必要增加更多的计数器,这也增加了设计的复杂度。同时当有新的特性和需求出现时,又要增加新的计数器与之对应,这种实现方式的可扩展性也较差。
发明内容
本申请实施例的目的在于提供一种延时控制器、内存控制器以及时序控制方法,本申请的一些实施例通过移位寄存器作为命令延时和持续的计时器,减少内存控制内计数器的数量,简化接口协议的转换,同时增强设计的可扩展性。
第一方面,本申请的一些实施例提供一种延时控制器,所述延时控制器包括:位宽可扩展的移位寄存器,被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,其中,每个请求包含一个或者多个操作,每个操作在所述比特位数据有各自对应的比特位;处理单元,被配置为被配置为通过确定所述比特位数据被移动的位数来确定延时时长,并根据所述延时时长确定到达发送所述所有操作中各操作的时间;其中,所述移位寄存器的位宽至少可根据接收的请求总数目和各请求包括的所有操作的总数目进行调整。
与相关技术方案的内存控制器为每个请求包括的每个信号分别设置一个计数器来实现延时技术方式相比,本申请的一些实施例为了减少计数器的数量,简化接口协议的转换,同时增强设计的可扩展性,采用移位命令行的方式来处理不同周期,不同延时的接口信号,同时可以支持内存(例如,DRAM)的不同特性和不同应用的扩展需求。
在一些实施例中,所述请求的个数为1,所述请求包括m个命令,m为大于或等于1的整数;其中,所述移位寄存器被配置为包括m位有效位且通过移位输出各有效位,且相邻两次输出所述有效位的时间间隔满足相邻两个操作的延时值要求;所述处理单元被配置为根据所述有效位被移动的位数得到当前操作的延时时长和持续时长,并在所述延时时长满足预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与一个请求对应的两个相邻操作。
本申请的一些实施例提供一种对于单个请求对应的移位寄存器的配置方式,通过本申请实施例的单请求的移位寄存器处理方式可以通过增加移位寄存器位宽的方式扩展任一请求包括的操作的数量。
在一些实施例中,所述请求为来自于处理器的内存读请求或者内存写请求。
本申请的一些实施例可以适用于内存读请求和写请求,方便这些读写请求的命令类型。
在一些实施例中,所述请求为内存写请求,所述目标接口协议为DFI接口协议,所述内存写请求对应写命令、写使能和写数据共三个操作,发送所述写命令与所述写使能的第一时间间隔为i个时钟周期,发送所述写使能与所述写数据的第二时间间隔为j个时钟周期;其中,所述移位寄存器被配置为:将所述比特位数据,移动k比特位输出针对所述写命令操作的有效位,移动“k+i-1”个比特位输出针对所述写使能操作的有效位,移动“k+i+j-1”个比特位输出针对所述写数据操作的有效位;所述处理器被配置为:根据各次收到的有效位,确认到达所述写命令操作的起始时间、所述写使能操作的起始时间以及所述写数据操作的起始时间,其中,k为大于或等于0的整数,i和j为大于或等于1的整数。
本申请的一些实施例提供一种采用移位寄存器实现针对写数据请求设置的多个操作的延时计时方案,通过与该请求对应的有效位被移动的比特位数来确定与该请求对应的各命令信号的发送时间。
在一些实施例中,所述请求的个数为L个,且L个请求共包括n个操作,L和n为大于1的整数;其中,所述移位寄存器被配置为包括n个有效位,并通过移位输出n次有效位;所述的处理单元被配置为根据被所述移位寄存器输出的有效位所对应的目标请求的目标操作,确认到达发送所述目标操作的时间。
本申请的一些实施例还可以将多个请求对应的各操作的延时计时设置在移位寄存器中,使得本申请的技术方案具备良好的可扩展性。
在一些实施例中,第k请求属于所述L个请求中的任一个请求,第k请求包括p个操作,k和p为大于或等于1的整数,其中,所述移位寄存器还被配置为:通过移位输出p个针对所述第k请求的有效位;所述处理单元被配置为:根据与所述第k请求对应的有效位被移动的比特位的数目来确定当前操作的延时时长和持续时长,并在所述延时时长满足所述预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与所述第k请求对应的两个相邻操作。
本申请的一些实施例对于多个请求中的各请求也设置了可扩展的移位方式,提升了技术方案的扩展性。
在一些实施例中,所述位宽可扩展的移位寄存器的宽度为M,则所述移位寄存器包括M个串联连接的触发器,且每个触发器与一个比特位对应,所述有效位被配置于一个D触发器上。
本申请的一些实施例通过多个D触发器组成的移位寄存器,实现与各请求对应的各命令的延时计时,在减少计数器的基础上提升了技术方案的扩展性。
第二方面,本申请的一些实施例提供一种内存控制器,所述内存控制器包括:至少一个如上述第一方面任意实施例所述的延时控制器;以及命令生成及发送器,被配置为生成持续时长满足设定要求的所述各操作对应的信号,并接收所述延时控制器生成的触发指令向目标接口发送各操作对应的信号。
第三方面,本申请的一些实施例提供一种芯片产品,所述芯片产品包括:处理器、如第一方面所述的内存控制器、内存物理接口以及内存;其中,所述处理器被配置为向内存控制器发送一个或多个内存操作的请求,所述内存控制器被配置为按照所述内存物理接口采用的接口协议将所述请求拆分为多个满足延时要求的操作并将所述操作通过内存接口向所述内存发送,所述内存被配置为执行所述内存操作。
第四方面,本申请的一些实施例提供一种时序控制方法,所述时序控制方法包括:确定存储于可扩展移位寄存器上的比特位数据被移动的位数来确定延时时长,其中,所述位宽可扩展的移位寄存器被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位;根据所述延时时长确定到达发送各操作所对应信号的时间,其中,所述各操作是一个或多个请求包括的操作。
第五方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第四方面任意实施例的方法。
第六方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第四方面任意实施例所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的内存系统(以DRAM内存单元为例)的组成结构示意图;
图2为相关技术提供的DFI接口协议包括的与写请求相关的各命令的时序图;
图3为相关技术提供的写方向处理单元的组成示意图;
图4为本申请实施例提供的内存控制器的组成框图;
图5为本申请实施例提供的移动寄存器的工作示意图;
图6为本申请实施例提供的单个命令对应的命令的移位过程示意图;
图7为本申请实施例提供的两个请求对应的多个命令的移位过程示意图;
图8为本申请实施例提供的移位寄存器的组成结构示意图;
图9为本申请实施例提供的时序控制方法的流程图;
图10为本申请实施例提供的电子设备的组成框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为相关技术提供的内存系统(以DRAM内存单元为例)的组成结构示意图。
DRAM是内存系统中重要的数据存储单元。如图1所示,处理器10(例如,CPU/SOC)需要读写数据时,会先向内存控制器20发送读请求或者写请求,内存控制器20按DRAM和接口协议(例如,DFI协议)处理该读请求或者写请求,然后将处理完的读请求或者写请求经第二接口102(例如,DFI接口)发送给内存物理接口PHY,该内存物理接口PHY处理完经第三接口103(例如,DRAM接口)发送给内存单元DRAM。可以理解的是,内存控制器20和内存物理接口30两者之间的信号(包括命令和数据)传输需要满足DFI接口协议标准。
下面以处理器发出的内存写命令为例示例性阐述相关技术的延时控制方案。
如图2所示,CPU/SOC在某一时刻向内存控制器20发送一个写请求(对应于图2第一行的write信号),内存控制器20需要按照DFI时钟(即图2的DFI Clock)将其转换成写命令(dfi_cmd)、写数据使能(dfi_wrdata_en)和写数据(dfi_wrdata)三组DFI信号(或称为转化为三种操作)发送给内存物理接口PHY,同时按照DFI接口协议要求写命令和写数据使能之间有一定的延时(Tphy_wrlat),写数据使能和写数据之间也要有一定的延时(Tphy_wrdata)。具体地,图2采用②至③示出的延时时长Tphy_wrlat示意性阐述写命令与写使能之间的延时,图2采用③至⑤示出的延时时长Tphy_wrdat示意性阐述写使能与写数据之间的延时。另外,每组信号本身也有持续时间的要求,如图2第三行的写命令dfi_cmd需要持续一个或者多个命令周期(one/two cycle command,1N/2N mode)对应于图2第三行cmdcycle对应的由①至②示出的时长,图2第四行的写命令使能dfi_wrdata_en和图2第五行的写数据dfi_wrdata需要持续burst_length/2的时钟周期,具体的图2由③至④示出的时长示意性阐述写使能命令的持续时长,图2由⑤至⑥示出的时长示意性阐述写数据。当CPU/SOC发送读请求时,内存控制器也需像写请求作类似处理。可以理解的是,图2中实在DFI时钟的上升沿产生写命令、写使能或者写数据信号。
如图3所示,该图示出了相关技术提供的一种用计数器实现各命令延时计时的实现方式。图3的第一计数器201被配置为实现写命令的持续时间,第二计数器202被配置为实现写命令(dfi_cmd)和写数据使能(dfi_wrdata_en)之间的延时计时,第三计数器203被配置为实现写数据使能到写数据(dfi_wrdata)之间的延时计时,第四计数器204被配置为实现写数据使能和写数据的持续时间。这种实现方式虽然可以完成DFI信号的协议转换,但用到的计数器较多,当有新的特性出现时,需要开辟新的计数器。可以理解的是,当图3的第一计数器计时完成时,则该写方向处理单元会向内存物理接口单元发送写命令dfi_cmd,当图3的第二计数器计时完成时,则该写方向处理单元会向内存物理接口单元发送写使能dfi_wrdata_en,当图3的第三计数器计时完成时则该写方向处理单元将向内存物理接口发送写数据dfi_wrdata并在第四计数器计时完成时判定写数据持续时长结束。图3包括的写数据缓存单元205以及写数据控制单元206,写数据缓存单元205通过写请求会提前将需要发送到内存物理接口的写数据dfi_wrdata存放在此,写数据控制单元206是写数据的时序控制,使写数据dfi_wrdata满足和写数据使能dfi_wrdata_en之间的延时及写数据dfi_wrdata本身的持续时间要求。
不难理解的是,随着DDR5多周期命令、2N mode的出现以及Write CRC,Read CRC等特性,使得DFI接口信号的处理变得越来越复杂,原本使用计数器的方式虽然可以处理这些特性的要求,但随着特性的增加,需要处理的信号和参数也要增加,对内存控制器来说所需要的计数器也会随之增加,同时也增加了设计的复杂度。也就是说,随着DDR5的问世,多周期命令、2N mode以及Write CRC和Read CRC等特性的要求,需要处理的信号(即操作个数)及其延时就会更多,如何处理好它们的延时控制成为内存器控制器需要面临的问题。
本申请的一些实施例至少为了减少计数器的数量,简化DFI接口协议的转换,同时增强设计的可扩展性,采用移位命令行的方式来处理不同周期,不同延时的DFI接口信号,同时可以支持DRAM不同特性和不同应用的扩展需求。
下面结合图4-图8示例性阐述本申请一些实施例提供的延时控制器。
如图4所示,本申请的一些实施例提供一种延时控制器100,该延时控制器100包括:位宽可扩展的移位寄存器111以及处理单元112。
位宽可扩展的移位寄存器111被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,其中,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位(或称为有效位)。
可以理解的是,在本申请的一些实施例中,各请求是来自于处理器对内存单元的操作请求,例如,这些请求包括处理器发出的内存读请求,或者内存写请求等。在本申请的一些实施例中,定义移位寄存器位宽的时候需要考虑一个请求所对应的所有操作各自的持续时间以及各相邻操作互相之间的延时,有效位的位数需足够宽,能包含所有请求所对应的所有操作的要求。例如,设计的移位寄存器用于存储包括两个操作的一个请求,且这两个操作的延时间隔为2个时钟周期,持续时长分别为1个时钟周期,假设移动移位为一个时钟周期,则该移位寄存器位宽至少应该为4,其中,第1位用于存储前一操作的有效位,第2位和第3位用于记录后一操作与前一操作的延时时长,第4位用于存储后一操作的有效位。
处理单元112被配置为被配置为通过确定所述比特位数据被移动的位数来确定延时时长,并根据所述延时时长确定到达发送所述所有操作中各操作的时间。例如,在一些实施例中位移可扩展的移位寄存器用于移位与一个请求对应的多个操作,则该处理单元112可以被配置为通过确定与各操作分别对应有效位被移动的比特位的数目来确定当前操作的延时时长和持续时长,并在所述延时时长满足预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与一个请求对应的多个操作,且所述预设延时时长、所述当前命令的类型以及所述下一个命令的类型是由目标接口协议预先设定的。例如,目标接口协议为DFI协议,则所述预设延时时长、所述当前命令的类型以及所述下一个命令的类型都是由DFI协议规定的。
需要说明的是,图4的移位寄存器111的位宽至少可根据接收的请求总数目和各请求包括的所有操作的总数目进行调整。
与相关技术方案的内存控制器为每个请求包括的每个信号分别设置一个计数器来实现延时技术方式相比,本申请的一些实施例为了减少计数器的数量,简化接口协议的转换,同时增强设计的可扩展性,采用移位命令行的方式来处理不同周期,不同延时的接口信号,同时可以支持内存(例如,DRAM)的不同特性和不同应用的扩展需求。
为了进一步提升本申请技术方案的通用性和可扩展性,图4的位宽可扩展的移位寄存器可以用于一个请求的延时控制也可以用于多个请求的延时控制。
下面结合两个示例阐述本申请实施例的一个请求和多个请求的延时控制方法。
在本申请的一些实施例中,可扩展移位寄存器被配置为对一个请求的多个操作进行移位,且该请求包括m个操作,m为大于或等于1的整数。例如,该移位寄存器被配置为包括m位有效位且通过移位输出各有效位,且相邻两次输出所述有效位的时间间隔满足相邻两个操作的延时值要求。相应的处理单元被配置为根据所述有效位被移动的位数得到当前操作的延时时长和持续时长,并在所述延时时长满足预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与一个请求对应的两个相邻操作。
也就是说,在本申请的一些实施例中,对于位宽可扩展的移位寄存器用于处理一个请求延时控制,即在位宽可扩展的移位寄存器上处理延期的请求的个数为1,若该请求包括m个操作,则在本申请的一些实施例中移位寄存器111被配置为:包括m位有效位,且被配置为通过移位输出m次所述有效位,且相邻两次输出所述有效位的时间间隔满足相邻两个操作的延时值要求。本申请的一些实施例提供一种对于单个请求对应的移位寄存器的配置方式,通过本申请实施例的单请求的移位寄存器处理方式可以通过增加移位寄存器位宽的方式扩展任一请求包括的命令的数量。
例如,在本申请的一些实施例中,由位宽可扩展的移位寄存器处理的一个请求为内存写请求,所述目标接口协议为DFI接口协议,所述内存写请求对应写命令、写使能和写数据共三个操作,发送所述写命令与所述写使能的第一时间间隔为i个时钟周期,发送所述写使能与所述写数据的第二时间间隔为j个时钟周期,相应的图4的移位寄存器111被配置为:对该寄存器上存储的比特位数据,移动k比特位输出针对所述写命令的有效位,移动“k+i-1”个比特位输出针对所述写使能的有效位,移动“k+i+j-1”个比特位输出针对所述写数据的有效位。相应的,所述处理单元被配置为:根据各次收到的有效位确定移位数目,并根据所述数目确定到达所述写命令的起始时间、所述写使能的起始时间以及所述写数据的起始时间,其中,k为大于或等于0的整数,i和j为大于或等于1的整数。本申请的一些实施例提供一种针对一个请求设置一个有效位实现该请求对应的多个命令的延时计时方案,通过与该请求对应的有效位被移动的比特位数来确定与该请求对应的各命令信号的发送时间。
例如,本申请一些实施例将宽度可扩展的移位寄存器每左移(或者右移)一位定义为一个时钟周期的延时,比如4bit的移位命令行,0001(1)->0010(2)->0100(4)->1000(8),不难理解的是,从数字1到数字2(即将有效位从起始的第0比特位移动至第1个比特位,也就是移动一个比特位)代表一个周期的延时,从数字1到数字4(即将有效位从起始的第0比特位移动至第2个比特位,也就是移动两个比特位)代表两个周期的延时,从数字1到数字8(即将有效位从起始的第0比特位移动至第3个比特位,也就是移动三个比特位)代表三个周期的延时,以此类推,实现各种延时周期的计数。延时控制器100包括的处理单元112可以根据当前时刻从移位寄存器111读出的数字的值并根据起始比特位(与一个请求对应,即一个请求对应一个起始比特位)的位置确定该有效位相对于起始比特位被移动的比特位数,进而确定延时的周期数目,并最终根据确定的延时周期的数目实现延时控制。例如,当处理单元112根据读取的数值确认延时周期数目达到延时要求,则触发下一个命令对应的信号即时向内存物理接口进行发送。
下面结合图5和图6示例性阐述采用位宽可扩展的移位寄存器处理写请求的延时控制的过程。
如图5所示,该图示例性提供了由延时控制器处理写请求的过程(或称为写请求延时控制器)。在图5中包括一个移位寄存器301(作为位移可扩展的移位寄存器的一个示例),该移位寄存器301包括多个比特位,其中,每个比特位在图3中是以各条虚线隔离开的各个小框表征的。从图5可以看出,移位寄存器301在第2个小方格即第1比特位(整个移位寄存器的位数从第0比特位开始)作为写请求对应的写命令的起始比特位,由处理单元(图5中未示出该单元)发送写命令dfi_cmd并根据移位寄存器对该起始比特位移动的比特位的数目确定该命令的持续时间。处理单元会根据起始比特位被移动的比特位的数目确认写使能的延时时间结束,并触发发送写使能dfi_wrdata_en,同时由处理器根据比特位被移动的数目确认该命令的持续时长。最后处理单元会根据起始比特位被移动的比特位的数目确认写数据的延时时间结束,则触发发送写数据dfi_wrdata,同时将数据缓存单元WrDataBuffer缓存的写数据和写数据对应的循环冗余纠正码WrDataCrc(如果Write CRC使能)向内存单元进行发送。
图5的移位命令行会先收到写请求,然后移位产生写命令(dfi_cmd)的起始时间(对应于写请求的起始比特位),处理单元根据这个命令的持续时间参数(Tcmd_cycle)产生相应的写命令信号。内存控制器的处理单元会记录写命令的起始时间(移位命令行相对应的bit位),然后根据写命令和写数据使能(dfi_wrdata_en)之间的延时参数(Tphy_wrlat)产生写数据使能的起始时间,再根据写数据使能的持续时间参数(Tburst_len)产生写数据使能信号。同理,内存控制器会记录写数据使能的起始时间(移位命令行相对应的bit位),然后根据写数据使能和写数据(dfi_wrdata)之间的延时参数(Tphy_wrdata)产生写数据的起始时间,再根据写数据的持续时间参数(Tburst_len)产生写数据信号。
如图6所示,该图是针对单个请求采用移位寄存器实现延时控制的示例。图6的移位寄存器用于实现DFI命令的移位,假设写命令(dfi_cmd)的持续时间参数Tcmd_cycle=2,写数据使能(dfi_wrdata_en)和写数据(dfi_wrdata)的持续时间参数Tburst_len=4,写命令和写数据使能之间的延时参数Tphy_wrlat=3,写数据使能和写数据之间的延时参数Tphy_wrdata=6。移位命令行会先收到写请求,然后输出写命令,根据写命令的持续时间产生两个时钟周期的写命令信号(dfi_cmd)。写命令和写数据使能之间的间隔等于3,移位寄存器移动3个bit位输出写数据使能,根据写数据使能的持续时间产生四个时钟周期的写数据使能信号(dfi_wrdata_en)。同理,写数据使能和写数据之间的间隔等于6,移位寄存器移动6个bit位输出写数据,根据写数据的持续时间产生四个时钟周期的写数据信号(dfi_wrdata)。
在本申请的一些实施例中,对于位宽可扩展的移位寄存器用于处理多个请求延时控制,例如,请求的个数为L个,且L个请求共包括n个操作,L和n为大于1的整数;其中,所述移位寄存器被配置为包括n个有效位,并通过移位输出n次有效位;所述的处理单元被配置为根据被所述移位寄存器输出的有效位所对应的目标请求的目标操作,确认到达发送所述目标操作的时间。也就是说,本申请的一些实施例还可以将多个请求对应的各操作的延时计时设置在移位寄存器中,使得本申请的技术方案具备良好的可扩展性。可以理解是,在本申请的一些实施例中,第k请求属于所述L个请求中的任一个请求,第k请求包括p个操作,k和p为大于或等于1的整数,其中,所述移位寄存器还被配置为:通过移位输出p个针对所述第k请求的有效位;所述处理单元被配置为:根据与所述第k请求对应的有效位被移动的比特位的数目来确定当前操作的延时时长和持续时长,并在所述延时时长满足预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与所述第k请求对应的两个相邻操作。本申请的一些实施例对于多个请求中的各请求也设置了可扩展的移位方式,提升了技术方案的扩展性。
下面结合图7示例性阐述多个请求的延时控制过程。
如图7所示,为提高效率,实现流水线工作,本申请的一些实施例也可以实现多个请求同时进行移位转换。假设写命令(dfi_cmd)的持续时间参数Tcmd_cycle=2,写数据使能(dfi_wrdata_en)和写数据(dfi_wrdata)的持续时间参数Tburst_len=2,写命令和写数据使能之间的延时参数Tphy_wrlat=m,写数据使能和写数据之间的延时参数Tphy_wrdata=n-m。移位命令行会先收到写请求1,然后输出写命令1,根据写命令的持续时间产生两个时钟周期的写命令信号(dfi_cmd1)。写命令和写数据使能之间的间隔等于m,移位寄存器移动m个bit位输出写数据使能,根据写数据使能的持续时间产生两个时钟周期的写数据使能信号(dfi_wrdata_en1)。同理,写数据使能和写数据之间的间隔等于n-m,移位寄存器移动n-m个bit位输出写数据,根据写数据的持续时间产生两个时钟周期的写数据信号(dfi_wrdata1)。在第一组命令在作移位操作时,如果有第二组命令请求进来时,也可以类似操作,例如,移位寄存器由单bit位有效(单比特位有效是指移位寄存器中只用到1位,如1,2,4等)变成多bit位有效,如图中所示当新的命令进来时移位寄存器由8(1000)->9(1001),最低bit位代表新进来的命令,第二组请求的写命令、写数据使能和写数据的输出使用类似第一组的原理进行控制。
可以理解的是,若有新的特性需求出现时,采用本申请的移位寄存器实现计时控制只需更改移位命令行的位宽,不需要增加其数量就可实现其功能。
需要说明的是,本申请的一些实施例虽然只描述了DFI接口上写请求的移位命令行的处理,在读请求时也可以做类似处理,只是和写请求的方向不同。另外对于非DFI接口的其他类型的接口也可以采用本申请实施例的移位寄存器实现命令延时时间的计时。
在本申请的一些实施例中,图4的位宽可扩展的移位寄存器111的宽度为M,则所述移位寄存器包括M个串联连接的触发器,且每个触发器与一个比特位对应,所述有效位被配置于一个D触发器上。本申请的一些实施例通过多个D触发器组成的移位寄存器,实现与各请求对应的各命令的延时计时,在减少计数器的基础上提升了技术方案的扩展性。
例如,如图8所示,在该图中示例出n个串联连接的D触发器,用于代表n比特位位宽的移位寄存器。如图8移位寄存器的电路图所示,移位寄存器由D触发器串接组成,每一级触发器的输出端Q串联到下一级触发器的输入端D。每级触发器都有时钟脉冲(例如,DFI时钟脉冲)控制,在时钟脉冲作用下,每个时钟脉冲依次移动一位。经过n个时钟周期,可以移动n个bit位。假设移位寄存器的初始状态为0000,收到一个命令请求后变为0001,经过一个时钟脉冲移位后变为0010,再经过一个时钟脉冲移位后变为0100,以此类推,实现移位的同时完成了计时,进而可以用于延时控制。
如图4所示,本申请的一些实施例提供一种内存控制器20,该内存控制器20包括:延时控制器100以及命令生成及发送器113,其中,延时控制器100可参考上文描述,命令生成及发送器113被配置为生成持续时长满足设定要求的所述各操作对应的信号,并接收所述延时控制器生成的触发指令向目标接口发送各操作对应的信号。与图1的内存控制器不同的是本申请的一些实施例的延时控制器100是由位移可扩展的移位寄存器实现的。对于延时控制器100的具体工作过程可以参考上文描述,为避免重复在此不做过多赘述。
如图4所示,本申请的一些实施例提供一种芯片产品,该芯片产品包括:处理器10、内存控制器20以及内存物理接口30以及内存(图中未示出);其中,所述处理器10被配置为向内存控制器20发送一个或多个内存操作的请求,所述内存控制器20被配置为按照所述内存物理接口采用的接口协议将所述请求拆分为多个满足延时要求的操作并将所述操作通过内存接口向所述内存发送,所述内存被配置为执行所述内存操作。
对于延时控制器100的具体工作过程可以参考上文描述,为避免重复在此不做过多赘述。
如图9所示,本申请的一些实施例提供一种时序控制方法,所述时序控制方法包括:S101,确定存储于可扩展移位寄存器上的比特位数据被移动的位数来确定延时时长,其中,所述位宽可扩展的移位寄存器被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位;S102,根据所述延时时长确定到达发送各操作所对应信号的时间,其中,所述各操作是一个或多个请求包括的操作。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述方法任意实施例的技术方案。
如图10所示,本申请的一些实施例提供一种电子设备500,包括存储器510、处理器520以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意实施例所述的方法。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图9中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种延时控制器,其特征在于,所述延时控制器包括:
位宽可扩展的移位寄存器,被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,其中,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位;
处理单元,被配置为通过确定所述比特位数据被移动的位数来确定延时时长,并根据所述延时时长确定到达发送所述所有操作中各操作的时间;
其中,所述移位寄存器的位宽至少可根据接收的请求总数目和各请求包括的所有操作的总数目进行调整。
2.如权利要求1所述的延时控制器,其特征在于,所述请求的个数为1,且所述请求包括m个操作,m为大于或等于1的整数;
其中,
所述移位寄存器被配置为包括m位有效位且通过移位输出各有效位,且相邻两次输出所述有效位的时间间隔满足相邻两个操作的延时值要求;
所述处理单元被配置为根据所述有效位被移动的位数得到当前操作的延时时长和持续时长,并在所述延时时长满足预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与一个请求对应的两个相邻操作。
3.如权利要求2所述的延时控制器,其特征在于,所述请求为来自于处理器的内存读请求或者内存写请求。
4.如权利要求2-3任一项所述的延时控制器,其特征在于,所述请求为内存写请求,所述目标接口协议为DFI接口协议,所述内存写请求对应写命令、写使能和写数据共三个操作,发送所述写命令与所述写使能的第一时间间隔为i个时钟周期,发送所述写使能与所述写数据的第二时间间隔为j个时钟周期;
其中,
所述移位寄存器被配置为:将所述比特位数据,移动k比特位输出针对所述写命令操作的有效位,移动“k+i-1”个比特位输出针对所述写使能操作的有效位,移动“k+i+j-1”个比特位输出针对所述写数据操作的有效位;
所述处理单元被配置为:根据各次收到的有效位,确认到达所述写命令操作的起始时间、所述写使能操作的起始时间以及所述写数据操作的起始时间,其中,k为大于或等于0的整数,i和j为大于或等于1的整数。
5.如权利要求1所述的延时控制器,其特征在于,所述请求的个数为L个,且L个请求共包括n个操作,L和n为大于1的整数;
其中,
所述移位寄存器被配置为包括n个有效位,并通过移位输出n次有效位;
所述的处理单元被配置为根据被所述移位寄存器输出的有效位所对应的目标请求的目标操作,确认到达发送所述目标操作的时间。
6.如权利要求5所述的延时控制器,其特征在于,第k请求属于所述L个请求中的任一个请求,所述第k请求包括p个操作,k和p为大于或等于1的整数,其中,
所述移位寄存器还被配置为:通过移位输出p个针对所述第k请求的有效位;
所述处理单元被配置为:根据与所述第k请求对应的有效位被移动的比特位的数目来确定当前操作的延时时长和持续时长,并在所述延时时长满足所述预设延时时长时触发下一个操作被发送,其中,所述当前操作和所述下一个操作是与所述第k请求对应的两个相邻操作。
7.如权利要求1-6任一项所述的延时控制器,其特征在于,所述位宽可扩展的移位寄存器的宽度为M,则所述移位寄存器包括M个串联连接的触发器,且每个触发器与一个比特位对应。
8.一种内存控制器,其特征在于,所述内存控制器包括:
至少一个如权利要求1-7任一项所述的延时控制器;以及
命令生成及发送器,被配置为生成持续时长满足设定要求的所述各操作对应的信号,并接收所述延时控制器生成的触发指令向目标接口发送各操作对应的信号。
9.一种芯片产品,其特征在于,所述芯片产品包括:处理器、如权利要求8所述的内存控制器、内存物理接口以及内存;
其中,所述处理器被配置为向内存控制器发送一个或多个内存操作的请求,所述内存控制器被配置为按照所述内存物理接口采用的接口协议将所述请求拆分为多个满足延时要求的操作并将所述操作通过内存接口向所述内存发送,所述内存被配置为执行所述内存操作。
10.一种时序控制方法,其特征在于,所述时序控制方法包括:
确定存储于可扩展移位寄存器上的比特位数据被移动的位数来确定延时时长,其中,所述位宽可扩展的移位寄存器被配置为逐位移动一个或者多个请求中包括的所有操作的比特位数据,每个请求包含一个或者多个操作,每个操作在所述比特位数据中有各自对应的比特位;
根据所述延时时长确定到达发送各操作所对应信号的时间,其中,所述各操作是所述一个或多个请求包括的操作。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时可实现权利要求10所述的方法。
12.一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现权利要求10所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456142.5A CN114242138A (zh) | 2021-12-01 | 2021-12-01 | 一种延时控制器、内存控制器以及时序控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111456142.5A CN114242138A (zh) | 2021-12-01 | 2021-12-01 | 一种延时控制器、内存控制器以及时序控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114242138A true CN114242138A (zh) | 2022-03-25 |
Family
ID=80752669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111456142.5A Pending CN114242138A (zh) | 2021-12-01 | 2021-12-01 | 一种延时控制器、内存控制器以及时序控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114242138A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061789A (zh) * | 2022-06-09 | 2022-09-16 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
WO2024073910A1 (zh) * | 2022-10-08 | 2024-04-11 | 长鑫存储技术有限公司 | 一种延时控制电路、方法和半导体存储器 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101554025A (zh) * | 2005-01-20 | 2009-10-07 | 马维尔国际贸易有限公司 | 存储高效滑动窗口求和 |
CN209517154U (zh) * | 2019-01-31 | 2019-10-18 | 上海创远仪器技术股份有限公司 | 支持实现精确延时处理的电路结构 |
CN111400232A (zh) * | 2020-04-10 | 2020-07-10 | 芯启源电子科技有限公司 | 一种基于数据位宽展开的scramble与descramble硬件实现方法 |
CN112631966A (zh) * | 2020-12-17 | 2021-04-09 | 海光信息技术股份有限公司 | 一种数据处理方法、内存控制器、处理器及电子设备 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
-
2021
- 2021-12-01 CN CN202111456142.5A patent/CN114242138A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101554025A (zh) * | 2005-01-20 | 2009-10-07 | 马维尔国际贸易有限公司 | 存储高效滑动窗口求和 |
CN209517154U (zh) * | 2019-01-31 | 2019-10-18 | 上海创远仪器技术股份有限公司 | 支持实现精确延时处理的电路结构 |
WO2021129689A1 (zh) * | 2019-12-23 | 2021-07-01 | 深圳市中兴微电子技术有限公司 | 数据位宽转换方法和装置 |
CN113094309A (zh) * | 2019-12-23 | 2021-07-09 | 深圳市中兴微电子技术有限公司 | 一种数据位宽转换方法和装置 |
CN111400232A (zh) * | 2020-04-10 | 2020-07-10 | 芯启源电子科技有限公司 | 一种基于数据位宽展开的scramble与descramble硬件实现方法 |
CN112631966A (zh) * | 2020-12-17 | 2021-04-09 | 海光信息技术股份有限公司 | 一种数据处理方法、内存控制器、处理器及电子设备 |
Non-Patent Citations (3)
Title |
---|
SUNDARAJAN RANGACHARI ETC.: "Scalable Low Power FFT/IFFT Architecture with Dynamic Bit Width Configurability", 2014 27TH INTERNATIONAL CONFERENCE ON VLSI DESIGN AND 2014 13TH INTERNATIONAL CONFERENCE ON EMBEDDED SYSTEMS, 6 February 2014 (2014-02-06) * |
戴强 等: "面向流密码的反馈移位寄存器专用指令集扩展", 小型微型计算机系统, vol. 35, no. 8, 15 August 2014 (2014-08-15) * |
朱雨雯 等: "反馈移位寄存器在通用可重构处理器上的配置生成与优化设计", 计算机应用研究, vol. 33, no. 06, 30 June 2016 (2016-06-30) * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061789A (zh) * | 2022-06-09 | 2022-09-16 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
CN115061789B (zh) * | 2022-06-09 | 2024-02-09 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
WO2024073910A1 (zh) * | 2022-10-08 | 2024-04-11 | 长鑫存储技术有限公司 | 一种延时控制电路、方法和半导体存储器 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114242138A (zh) | 一种延时控制器、内存控制器以及时序控制方法 | |
US7467251B2 (en) | Flash memory data storage apparatus | |
EP0301383B1 (en) | Pseudo random pattern generating device | |
US6046616A (en) | Two dimensional random pulse generator | |
US5978883A (en) | Block interleaving and deinterleaving method and device therefor | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
US7529960B2 (en) | Apparatus, system and method for generating self-generated strobe signal for peripheral device | |
TWI502603B (zh) | 積體電路 | |
CN113867796B (zh) | 利用多状态机提高读性能的协议转换桥及实现方法 | |
JP2007293845A (ja) | 直列データ源からのデータを並列フォーマットで読取る方法および装置 | |
JP2001014841A (ja) | データ記憶装置 | |
EP1122737A1 (en) | Circuit for managing the transfer of data streams from a plurality of sources within a system | |
JP2510268B2 (ja) | デ―タ保持回路 | |
CN115952326B (zh) | 一种链表式数据结构及其数据处理方法、存储介质、电子设备 | |
US20230073160A1 (en) | Clock generating device, controller, and storage device | |
US20020004881A1 (en) | Data transfer apparatus and data transfer method | |
CN117095713B (zh) | 一种基于传输速率的信号相位转换电路 | |
RU2248033C1 (ru) | Преобразователь кода грея в параллельный двоичный код | |
RU2691852C2 (ru) | Регистр сдвига | |
KR20160100363A (ko) | 오직 수신기 클록에 의한 CCIe 수신기 로직 레지스터 기입 | |
JP4524724B2 (ja) | 入出力装置 | |
JP3072168B2 (ja) | メモリ動作調停回路 | |
JPH10340596A (ja) | データ記憶装置および半導体記憶装置 | |
SU658556A1 (ru) | Преобразователь кода гре в двоичный код | |
SU991421A1 (ru) | Генератор случайных чисел |
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 |