CN114518902A - 一种内存定序器系统和应用该系统的内存定序方法 - Google Patents
一种内存定序器系统和应用该系统的内存定序方法 Download PDFInfo
- Publication number
- CN114518902A CN114518902A CN202110058327.4A CN202110058327A CN114518902A CN 114518902 A CN114518902 A CN 114518902A CN 202110058327 A CN202110058327 A CN 202110058327A CN 114518902 A CN114518902 A CN 114518902A
- Authority
- CN
- China
- Prior art keywords
- data
- command
- memory
- sequencer
- address
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01R—MEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
- G01R31/00—Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
- G01R31/28—Testing of electronic circuits, e.g. by signal tracer
- G01R31/317—Testing of digital circuits
- G01R31/31724—Test controller, e.g. BIST state machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/4076—Timing circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C19/00—Digital stores in which the information is moved stepwise, e.g. shift registers
Abstract
本发明涉及用于外部内存协议的内存定序器系统(100),该内存定序器系统(100)包括:控制中心(6),其包括微控制器;控制中心片上网络(5),其包括点对点连接以同步和协调通信的节点(51);其特征在于:命令和地址定序器(4),用于生成用于特定内存协议的命令、控制和地址命令;至少一个数据定序器(3),用于为内存接口的每个字节通道生成伪随机或确定性数据模式;其中命令和地址定序器(4)和数据定序器(3)被链接形成复合地址和数据序列而用于内存接口训练、校准和调试;其中,控制中心片上网络(5)将控制中心(6)与命令和地址定序器(4)以及数据定序器(3)互连以提供固件可控性。本发明还公开了一种用于外部内存协议的内存定序的方法(200)。
Description
技术领域
本发明总体上涉及内存管理技术领域,具体涉及一种内存定序器系统和应用该系统的内存定序方法。
背景技术
现代计算机体系结合了超级计算中占主导地位的三种主要存储技术,分别为动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)和磁存储介质。磁存储介质包括硬盘驱动器和磁带。主存储器是用于在计算机内存储数据的主要部件,并且几乎完全由DRAM技术组成。
在现代计算机系统中,一个或多个DRAM内存控制器(DMC)可能包含在处理器包中或集成到驻留在处理器包外部的系统控制器中。不论该DRAM内存控制器的位置如何,其功能都是接受对存储器中给定地址的读写请求,将该请求转换为一个或多个命令并置于存储系统,以适当的顺序和适当的时间将这些命令传送给DRAM设备,并且以系统中的处理器或I/O设备的名义检索或存储数据。
US2005257109A1公开了一种具有分布式算法解释的内置自测(BIST)体系。该体系包括三级概念:集中式BIST控制器、一组定序器和一组内存接口。该BIST控制器存储一组命令,这些命令通常定义了用于测试存储模块的算法,而无需考虑该存储模块的物理特性或时序要求。定序器根据命令协议来解释命令并生成存储操作序列。该内存接口根据该存储模块的物理特性将存储操作应用于存储模块,例如通过基于该存储模块的行-列排布转换地址和数据信号,以实现命令描述的位模式。该命令协议允许以极其简洁的方式描述强大的算法而可应用于具有各种特性的存储模块。
US2008219112A1公开了一种用于产生数字信号模式的设备,其包括存储器、程序定序器、第一和第二电路和事件执行单元。该存储器可在其中存储多个指令,这些指令在被执行时使得在多个节点上生成数字信号模式。该程序定序器可用于控制从存储器中检索和执行多个指令的顺序。该第一电路可响应于时钟信号而依序逐步通过多个不同的输出状态。当该第一电路的输出状态对应于由检索到的特定类型指令识别的输出状态时,该第二电路可识别输出事件。该事件执行单元可响应于该第二电路识别的输出事件,以由所检索到的特定类型指令所指定的方式来控制多个节点上的信号状态。
上述参考文献旨在支持基于模式的地址和数据定序器。然而,它们具有许多局限性和缺点。例如,上述参考文献中的内存定序器体系仅支持基于模式的地址和数据定序器,这些地址和数据定序器限制了由于浅模式队列(shallow pattern queue)而可被驱动的模式复杂性。现有的内存定序器旨在仅支持一种或两种内存协议,并且不可重新编程以支持不同的内存协议。此外,上述参考文献通常支持用于行或列寻址的非并发单个寻址流。除此之外,扩展内存定序器系统的最大挑战是解决使连接到控制中心片上网络(CCNOC)的不同定序器同步的能力,以便确切地对它们进行编排而形成至宽内存接口协议的信号。
因此,仍然需要一种克服上述问题和缺点的内存定序器系统。
发明内容
如下的本发明内容简述提供了对本发明的某些方面的基本理解。该内容简述不是本发明的广泛概述,其唯一的目的是以简化的形式呈现本发明的一些概念,作为后文中更详细描述的序言。
本发明的一个目的是提供一种内存定序器系统,其使用命令和地址定序器以及数据定序器作为手段来编排信号定序。
本发明的另一个目的是提供一种内存定序器系统,其允许定序器与触发器一起链接以形成复杂序列。
本发明的又一个目的是提供一种内存定序器系统,该系统支持协议无关块和协议特定块之间的分区,以支持在不同内存协议之间的可扩展性,例如,用于高带宽存储器(HBMx)的并发的行和列命令定序,或用于双倍数据速率(DDRx)和低功耗双倍数据速率(LPDDRx)的单地址流命令定序。
本发明的又一个目的是提供一种内存定序器系统,其支持高度可编程的控制中心和高度可扩展的控制中心片上网络(CCNOC),其能够通过其时间戳同步体系在不同定序器之间进行自我枚举和触发。
本发明的又一个目的是提供一种用于外部内存协议的内存定序方法。
因此,可以通过本发明的教导来实现这些目的。本发明涉及一种用于外部内存协议的内存定序器系统,包括:控制中心,其包括微控制器;控制中心片上网络,其包括点对点连接以同步和协调通信的节点;其特征在于:
命令和地址定序器,用以生成用于特定内存协议的命令、控制和地址命令;以及
至少一个数据定序器,用于为内存接口的每个字节通道生成伪随机或确定性数据模式;
其中所述命令和地址定序器以及所述数据定序器被链接在一起以形成复杂的地址和数据序列,用于内存接口的训练、校准和调试;所述控制中心片上网络将所述控制中心与所述命令和地址定序器以及所述数据定序器互连,以提供固件可控性。
本发明还涉及一种用于外部内存协议的内存定序方法,其特征在于,包括以下步骤:为每个条目生成命令、地址和数据序列;选择一个或多个地址定序器以生成地址;比较触发值以触发所述地址定序器处的加法器或比较器的递增;链接加法器或比较器以创建地址序列;对命令和地址进行编码和解码以触发数据路径;根据时钟周期的数量,利用移位寄存器实现数据时延;将包括写入数据和读取数据的数据传送到数据定序器;将AXI-lite读取或写入命令转换为控制中心片上网络读取或写入命令;基于从属节点的地址和标识,将所述控制中心片上网络读取或写入命令传送到所述控制中心片上网络的目标从属节点;枚举所述从属节点以将标识分配给每个从属节点;以及使控制中心片上网络时间戳和警报寄存器同步。
结合本文下面提供的详细描述并适当参考附图,本发明的前述和其他目的、特征、方面和优点将变得更容易理解。
附图说明
为了可以详细理解本发明的上述特征,以上简要概述的本发明的更具体描述可以通过实施例来引出,其中一些实施例在附图中示出。然而,应当注意,附图仅示出了本发明的典型实施例,因此不应视为对本发明范围的限制,因为本发明可允许其他的等效实施例。
通过参考以下附图,本发明的这些和其他特征、益处和优点将变得显而易见,相同的附图标记指代整个视图中的相同结构,其中:
图1示出了根据本发明实施例的内存物理层子系统内的内存定序器系统的框图;
图2示出了根据本发明实施例的控制中心的框图;
图3示出了根据本发明实施例的命令和地址定序器以及数据定序器的框图;
图4示出了根据本发明实施例的地址定序器的框图;
图5示出了根据本发明实施例的命令中心片上网络(CCNOC)的树状拓扑;
图6示出了根据本发明实施例的命令中心片上网络(CCNOC)中的节点之间的连接;
图7示出了根据本发明实施例的用于外部内存协议的内存定序方法;
图8示出了根据本发明实施例的命令中心片上网络(CCNOC)的分组类型;
图9示出了根据本发明实施例的在命令中心片上网络(CCNOC)中的分组传送的示例;
图10示出了根据本发明实施例的可编程线性反馈移位寄存器(LFSR)或多输入签名寄存器(MISR)的框图;
图11示出了根据本发明实施例的命令中心片上网络(CCNOC)的枚举;
图12示出了用于所有从属节点之间的时间戳同步的替代方法,包括(a)具有一个主节点和多个从属节点的CCNOC网络之间的连接;(b)当CCNOC主节点被编程并向从属节点1、2和4传送写入分组时;(c)当从属节点1、2和4接收到写入分组并转发给从属节点3和5时;(d)当从属节点3和5接收到写入分组并转发给从属节点6时;以及(e)当从属节点6接收到写入分组时。
具体实施方式
根据需要,在此公开了本发明的详细实施例。然而,应当理解,所公开的实施例仅仅是本发明的示例,其可以以各种形式实施。因此,本文公开的具体结构和功能细节不应解释为限制性的,而仅作为权利要求的基础。应当理解的是,附图及其详细描述并非旨在将本发明限制为所公开的特定形式,相反地,本发明将覆盖落入权利要求书所定义的本发明范围内的所有修改、等同形式和替代形式。在本申请中通篇所使用的术语中,词语“可以(may)”表示允许的意义(即意味着有可能),而不是强制性的意义(即必须)。类似地,词语“包括(include,including,include)”表示包括但不限于。此外,除非另有说明,否则词语“一(a,an)”表示“至少一个”,词语“复数(plurality)”表示一个或多个。在使用缩写词或技术术语的情况下,它们表示在该技术领域公认的通用含义。
在下文中,通过各种实施方式参考附图来描述本发明,其中在附图中使用的附图标记在整个说明书中对应于相似的元件。然而,本发明可以许多不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反地,提供的实施例使得本公开变得充分且完整,并将向本领域技术人员充分传达本发明的范围。在以下的详细描述中,为所描述的实施方式的各个方面提供了数值和范围。这些数值和范围仅应被视为示例,而无意于限制权利要求的范围。另外,许多材料被认定为适合于实施的各个方面。这些材料将被视为示例性的,并且不意图限制本发明的范围。
现将参照图1至图12所示的附图更详细地描述本发明。
参照图1,本发明涉及一种用于外部内存协议的内存定序器系统,包括:控制中心(CC)(6),其包括微控制器(62);控制中心片上网络(CCNOC)(5),其包括点对点连接以同步和协调通信的节点(51);其特征在于,命令和地址定序器(4),用以生成用于特定内存协议的命令、控制和地址命令;以及至少一个数据定序器(3),用于为内存接口的每个字节通道生成伪随机或确定性数据模式;其中该命令和地址定序器(4)以及该数据定序器(3)被链接以形成复合地址和数据序列而用于内存接口的训练、校准和调试;该控制中心片上网络(5)将该控制中心(6)与该命令和地址定序器(4)以及该数据定序器(3)互连,以提供固件可控性。
根据本发明的实施例,该内存定序器系统(100)被插入在内存控制器(1)的DDRPHY接口(DFI)(2)和用于内存接口命令和数据的物理层传送或接收路径(7)之间。
根据本发明的实施例,在该控制中心(6)的微控制器上运行的固件被加载到该控制中心(6)的静态随机存取存储器(SRAM)中,该固件负责通过控制中心片上网络(CCNOC)(5)根据预期的接口内存协议来配置和设置命令和地址定序器(4)以及数据定序器(3)。该控制中心(6)的主要功能是执行外部内存接口初始化序列,以初始化内存主机和附接的内存设备。该控制中心(6)还执行校准和训练,使得物理层可通过其命令和数据总线可靠地与外部存储器进行传输和接收。代表内存控制器的内存设备的特殊序列也由该控制中心(6)执行。该控制中心的核心为微控制器(62),该微控制器包括两级或三级流水线单发行指令处理器。除了该微控制器(62),AXI-lite互连上的其他两个主机为联合测试行动组(JTAG)控制器(61)和直接内存访问(DMA)(63)。
参照图2,该JTAG控制器为外部主机(例如个人计算机或测试仪)提供JTAG访问,以访问AXI-lite互连。该JTAG控制器(61)可发出AXI读取或写入到内存映射的任何位置。该JTAG控制器(61)可用于探测或覆盖寄存器值,以进行调试。该JTAG控制器(61)还可用于将固件下载到指令SRAM(64),该微控制器(62)可由该指令SRAM(64)执行。DMA(63)旨在使该微控制器(62)免于移动大块数据。其主要目的是将数据移入或移出主机存储器物理层的所有通道和数据路径的各个缓冲器,以将数据移入或移出数据SRAM(65)。该数据SRAM(65)用于常规存储,而该指令SRAM(65)用于存储微控制器(62)的固件。其他外围设备例如可编程输入或输出(I/O)、中断控制器(67)、计时器(69)和监视器(66),为该微控制器(62)提供辅助服务,以使独立子系统完整。
参照图3,命令和地址定序器(4)包括命令定序器(41)和地址定序器(43)。该命令和地址定序器(4)在分布式数据定序器的帮助下编排信令序列。
根据本发明的实施例,该命令和地址定序器(4)包括命令序列表(42),用于通过循环遍历该表来解释每个条目以协调命令、地址或数据序列的生成。该命令序列表(42)可以是包括多个条目的深度,每个条目具有多个字段。例如,该命令序列表(42)为八个条目深,每个条目具有示例中的表1所示的字段,并且示例中的表2示出了该命令序列表(42)的使用示例。
参照图4,该命令定序器(41)的条目将选择一个或多个负责地址生成的地址定序器。地址定序器(43)的数量遵循该命令序列表中可用于行或列地址生成的条目数。例如,如果命令序列表包括八个条目,则地址定序器应包括八个地址定序器。每个地址定序器(43)包括一组加法器或比较器,以基于触发值触发同一组内的不同加法器或比较器组的递增。例如,每个地址定序器(43)包括但不限于三组加法器或比较器。这允许地址定序器(43)在其被索引的每个周期增加一个固定的地址偏移量,或者仅当它被另一个加法器或比较器组触发时才增加一个固定的地址偏移量。以不同的顺序链接加法器或比较器将构建不同的寻址序列。
根据本发明的实施例,该命令和地址定序器(4)包括命令编码器和命令解码器。
根据本发明的实施例,该数据定序器(3)还包括具有读取数据缓冲器的读取数据存储器。
根据本发明的实施例,该控制中心片上网络(CCNOC)(5)通过CCNOC主设备(68)连接到AXI-lite,以接收和转换读取或写入命令,并将该读取或写入命令传送到内存定序器系统(100)内的网络。
参照图5,该控制中心片上网络(CCNOC)(5)包括以树状拓扑结构组织的主节点(51)和多个从属节点(52),每个节点包括一组寄存器作为映射到AXI内存空间的内存。配置寄存器用于控制内存定序器以及存储物理层(7)和内存控制器(1)中其他模块的功能。例如,该寄存器可用于设置发送先进先出(TX FIFO)和接收先进先出(RX FIFO)的延迟。该命令和地址定序器(CAS)和该数据定序器(DS)也映射到其中一个从属节点的配置寄存器。每个寄存器都是32位宽。每个从属节点支持的最大寄存器数为1024x32位寄存器或4096字节。
根据本发明的实施例,该主节点(51)具有多个下游端口,每个从属节点(52)具有一个上游端口和多个下游端口。每个上游或下游端口具有引脚列表,如示例中的表3所示。此外,CCNOC节点的端口之间的直接连接如图6所示。但是,连接的实际实现可能会在节点之间插入管道级(pipe stages)以进行时序收敛。
参照图7,本发明还涉及用于外部存储协议的内存定序的方法(200),该方法的特征在于,包括以下步骤:为每个条目生成命令、地址和数据序列;选择一个或多个地址定序器(43)来生成地址;比较触发值以触发该地址定序器(43)处的加法器或比较器的递增;链接加法器或比较器以创建地址序列;对命令和地址进行编码和解码以触发数据路径;根据时钟周期的数量,利用移位寄存器实现数据时延;将包括写入数据和读取数据的数据传送到数据定序器;将AXI-lite读取或写入命令转换为控制中心片上网络读取或写入命令;基于从属节点(52)的地址和标识,将该控制中心片上网络读取或写入命令传送到该控制中心片上网络(5)的目标从属节点(52);枚举该从属节点(52)以将标识分配给每个从属节点(52);以及使控制中心片上网络时间戳和警报寄存器同步。
根据本发明的实施例,根据命令序列表(42)的编程值来生成命令、地址和数据序列。
根据本发明的实施例,编程值确定命令、地址和数据序列的延迟量。
根据本发明的实施例,编码写入命令会触发写入传送数据路径,并且编码读取命令会触发读取接收数据路径,以从内存设备捕获和上传数据。根据外部内存协议的不同,命令编码器可采用P0或P1中的任一相;P0和P1两相;或P0、P1和下个循环的P0三相,以对行或列命令进行编码。
根据本发明的实施例,解码读取命令会触发写入传送数据路径,解码写入命令会触发读取接收数据路径,以从内存主机捕获和卸载数据。如果将内存定序器用作内存设备而非内存主机,则命令解码器用于解码传入命令。命令解码器用于从命令和地址引脚的行或列接收数据路径的RX FIFO接收命令。
根据本发明的实施例,命令编码器和解码器均使用CMD2DATA接口(45)来控制相关的传送或接收数据路径。CMD2DATA接口(45)基本上通过移位寄存器来实现读取时延或写入时延。当命令编码器或解码器触发读取时,该读取触发将延迟N个存储周期,然后再将触发传递到相应的数据定序器(3)。当命令编码器或解码器触发写入时,该写入触发将延迟M个存储周期,然后再将触发传递到相应的数据定序器(3)。由于读取和写入延迟通常是几个时钟周期,这足以根据从命令和地址序列器(4)到达最远数据序列器(3)的需要而多次将CMD2DATA总线流水线化。更靠近流水线的每个数据定序器(3)将配置为具有较少的内部延迟,以确保所有数据定序器(3)能够以相同数量的存储器周期向或从数据总线引脚发送或接收数据。
根据本发明的实施例,传送写入数据的步骤包括循环遍历写入数据序列表以生成写入数据发送模式。写入数据序列表可以是包括多个条目的深度,每个条目具有多个字段。表4中显示了写入数据序列表的示例,为包括八个条目深,每个条目均具有字段。
根据本发明的实施例,传送读取数据的步骤包括循环遍历读取数据序列表以产生读取数据传输模式。读取数据序列表是包括多个条目的深度,每个条目具有多个字段。表5中显示读取数据序列表的示例,为包括8个条目深,每个条目均具有字段。
根据本发明的实施例,将基于地址将目标从属节点(52)分配给分组目的地ID字段,然后将该分组发送到下游。当分组到达从属节点(52)时,该从属节点(52)将检查分组目的地的标识。如果该标识属于从属节点(52),则它将对附加到其的寻址配置寄存器执行读取或写入操作。如果该标识不属于从属节点(52),则该从属节点(52)将把分组发送到其所有下游端口。最终,该分组将被更下游的从属节点(52)占有。如果该标识是针对广播写入或选择性广播写入,并且该从属节点(52)是选择性广播集的一部分,则从属节点(52)将占有该分组。不管是否为其本身占有了该分组,该从属节点(52)将另外向其所有下游端口广播广播写入或选择性广播写入。
根据本发明的实施例,在包括写入分组(53)、读取分组(54)、完成分组(55)和消息分组(56)的分组中传送命令。
参照图8,始终发布CCNOC(5)下方的写入分组(53),更具体地,该目标从属节点(52)将不以写入响应或完成分组(55)来进行响应。主节点(51)向CCNOC(5)发出写入分组(53)之后,将立即发送AXI写入响应。如果分组上的目的地ID是全1,则写入分组(53)可被广播到所有从属节点(52)。每个从属节点(52)还将保持ID掩码,以允许选择性广播。CCNOC下的读取分组(54)始终是拆分事务,换句话说,目标从属节点(52)不需要立即响应读取完成分组(55)。如果主节点(51)将多个读取分组(54)发送到不同的从属节点(52),则读取完成分组(55)会无序地返回到主节点(51)。主节点(51)负责对读取完成进行重新定序,并按顺序发送AXI读取响应。读取分组(54)的目的地ID不会相等,因为读取分组(54)不支持广播。读取完成分组(55)总是可以到达主节点(51),因为只有一个上游端口。如果AXI主节点发送的读取或写入的地址属于CCNOC从属节点的地址范围,但未映射到任何从属节点(52),则CCNOC主节点(51)仍将以0xDEAD_BEEF或其他的固定数据模式响应读取。对于写入,CCNOC主设备将不执行任何操作,并且返回的写入响应为同意(OKAY)。CCNOC主节点(51)中的状态寄存器将被设置为指示AXI访问已映射到不存在的从属ID。
根据本发明的实施例,使控制中心片上网络时间戳同步的步骤包括:从控制中心片上网络主节点(51)向一个从属节点(52)发送读取分组(54);读取从属节点(52)的时间戳寄存器;记录读取分组(54)的发送时间;当从属节点(52)接收到读取分组(54)时,向读取分组(54)发送读取响应;记录控制中心片上网络主节点(51)接收读取响应的时间;将具有当前时间戳和流水线延迟数据的写入分组(53)发送到从属节点(52)的时间戳寄存器,并重复从发送读取分组(54)到从属节点(52)的先前步骤,直到所有从属节点都具有与控制中心片上网络主节点(51)相同的时间戳。流水线延迟是往返延迟的一半,往返延迟为读取响应的接收时间与读取分组的发送时间之差。
参照图12,使控制中心片上网络时间戳同步的步骤还包括用时钟周期数对控制中心片上网络主节点(51)和从属节点(52)的时间戳偏移寄存器进行编程。从控制中心片上网络主节点(51)向所有具有分组数据负载的从属节点(52)广播写入分组(53);用接收到的数据设置从属节点(52)的时间戳寄存器值;将写入的时间戳值发送到下游从属节点(52),并重复从设置时间戳寄存器值开始的所有步骤,直到所有从属节点都与控制中心片上网络主节点(51)具有相同的时间戳。写入分组(53)根据时钟周期数和包含控制中心片上网络主节点(51)时间戳值的数据负载,从控制中心片上网络主节点(51)到达控制中心片上网络从属节点(52)。
根据本发明的实施例,时间戳用于警报触发以执行所有从属节点(52)之间的同步动作。时间戳同步和警报触发中的从属节点(52)实现表6中列出的寄存器,其中时间戳寄存器是一个自由运行的滚动计数器(rollover counter),该计数器会在每个时钟上升沿递增计数。
在下文中,将提供本发明的示例以用于更详细的说明。应当理解的是,以下描述的示例并非用于限制本发明的范围。
实例
生成命令、地址和数据序列
表1:
名称 | 符号 | #字节 | 描述 |
延迟计数 | delay | 8 | 在命令周期之前/之后应用的DFI延迟周期数 |
预/后延迟 | post_delay | 1 | 如果为1,则延迟将在命令周期后应用 |
行命令阶段0 | row_sel_p0 | 3 | 选择与阶段P0相应的地址定序器 |
行命令阶段1 | row_sel_p1 | 3 | 选择与阶段P1相应的地址定序器 |
列命令阶段0 | col_sel_p0 | 3 | 选择与阶段P0相应的地址定序器 |
列命令阶段1 | col_sel_p1 | 3 | 选择与阶段P1相应的地址定序器 |
循环计数器选择 | loop_select | 2 | 从4个循环计数器中选择1个 |
分支等于零的指针 | bez | 3 | 如果所选循环计数器为0,则下一个表条目索引 |
分支不等于零的指针 | bnz | 3 | 如果所选循环计数器不为0,则下一个表条目索引 |
序列结束 | end | 1 | 指示序列的最后一个条目 |
表1显示了命令序列表条目中的命令序列表字段。该命令定序器使用在命令序列表(42)中编程的值来解释要执行的操作的性质。“延迟计数”或“预/后延迟”设置可以共同决定在操作之前或之后要插入的延迟量。如果将“预/后延迟”设置为1,则“延迟计数”在操作完成后应用,否则在操作完成之前应用。延迟计数计算操作之前或之后要等待的DFI周期数。在延迟计数周期内,将会插入无操作(NOP)周期。
行和列命令的阶段0和阶段1字段允许在时钟的不同阶段期间启动不同的命令。例如,如果要在时钟的高相位(阶段0)中插入命令,则将使用行或列命令阶段0。如果要在时钟的低相位(阶段1)中插入命令,则将使用行或列命令阶段1。并非所有的内存接口协议都允许在时钟的不同阶段使用不同的命令。对于仅允许插入时钟级粒度命令的内存接口协议,可以将阶段1的行和列命令编程为7(3’b111)以将其忽略或删除。对于仅支持非并发的行和列访问的内存接口协议,例如双倍数据速率(DDRx)和低功耗双倍数据速率(LPDDRx),将使用行或列命令阶段。
完成命令后,循环计数器选择、分支等于零的指针字段和分支不等于零的指针字段一起工作,以确定要执行的命令序列表中的下一个条目。循环计数器选择用于从要使用的4个循环计数器中选择1个。循环计数器0始终为0,而其他3个循环计数器可以由控制中心(6)预先设置为不同的值。命令完成后,循环计数器选择所指向的循环计数将减1。如果递减后的循环计数器为零,则要执行的命令序列表的下一个条目将是分支等于零的指针所指向的条目。如果递减后的循环计数器不为零,则要执行的命令序列表的下一个条目将是分支不等于零的指针所指向的条目。因此,即使仅限于表中的八个条目,固件也能够配置命令序列表以实现循环和复杂序列。
表2:
表2示出了命令序列表(42)的使用示例。在周期0时,正在执行的条目的指针(current_ptr)处于条目0,并且从地址定序器1中选择了阶段0的行命令输出。在周期1至4时,所有命令输出均为7(3'b111),由于编程了5的后期延迟,因此插入了NOP循环。在周期5时,由于循环计数器不为零,因此循环计数器递减1,并且将条目0的执行再重复4次。在周期30时,循环计数器1到期,因此current_ptr现处于条目1,并且由于预/后延迟为0,命令定序器(41)将在执行条目1之前再等待两个周期。在周期32,从地址定序器2中选择阶段0的列命令输出。由于循环计数器2为1并且分支不等于零的指针(BNZ)为0,current_ptr将跳回到条目0。由于地址定序器1还在进行中,该地址仍将增加,所以将重新发出从周期0到周期32的序列。在周期65时,循环计数器2现为0,结束为1,因此序列将结束。因此,整个命令流为<开始>→<行cmd 0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<行cmd0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<2个周期延迟>→<列cmd1@p0>→<行cmd 0@p0>→<5个周期延迟>→<行cmd0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<行cmd 0@p0>→<5个周期延迟>→<2个周期延迟>→<列cmd 1@p0>→<结束>。
构建地址序列
参照图4,地址定序器(43)可用于在行地址0和行地址1的库和SID之间循环。SID被称为高带宽存储器(HBM)内存设备的堆栈ID地址。假设加法器0映射到库地址,加法器1映射到行地址,加法器2映射到HBM通道的SID。加法器0地址寄存器中加载了库地址的起始值,库0;加法器1地址寄存器加载了行地址的起始值,地址0;加法器2加载SID的起始值,SID 0。加法器0配置为在加法器1(行地址)被触发时触发,加法器1配置为在被命令定序器(41)触发的每个周期触发,而加法器2则配置为在加法器0(库地址)触发时触发。当被触发时,所有三个加法器的增量值均设置为1,以增加一个计数。接下来,将加法器0的结束地址配置为库1的值,加法器1的结束地址也配置为行地址1的值,加法器2的则配置为SID 3的值。当命令定序器(41)首次触发地址定序器(43)时,将输出库地址0、行地址0和SID 0。行地址的下一个值为1。当命令定序器(41)第二次触发地址定序器(43)时,它将输出库地址0、行地址1和SID0。由于行地址1与行的结束地址匹配,它将重置其值回到起始值,即行地址0,并使触发生效以触发加法器0(库地址)递增到库地址1。下次命令定序器(41)触发地址定序器(43)时,它将输出库地址1、行地址0和SID 0。当命令定序器(41)第三次触发地址定序器(43),它将输出库地址1、行地址1和SID 0。由于库地址1与库的结束地址匹配,行地址1与行的结束地址匹配,因此库地址会将其值重置回起始值,即库地址0,并使触发生效以触发SID。下次命令定序器(41)触发地址定序器(43)时,它将输出库地址0、行地址0和SID1。然后重复此过程。
CCNOC端口引脚
表3:
表3列出了CCNOC上游和下游端口的端口引脚列表,如图6所示。
将数据传输到数据定序器
表4:
表4显示了写入数据序列表条目的写入数据序列表字段。在写入数据序列表中的循环类似于命令序列表中的循环。唯一的例外是要传送的数据模式的源取决于线性反馈移位寄存器(LFSR)输出或字段data_sel指向的写入数据缓冲器内容。如果lfsr_sel为1,则LFSR输出被用作写入数据。否则,使用由data_sel指向的写入数据缓冲器的内容。而且写入序列表没有预/后延迟选择,因此总是在数据传送之后应用延迟。写入数据缓冲器是本地先进先出存储,其为八个条目深,允许每个引脚驱动任何自定义模式。data_sel指向其中一个包含要传送数据的条目。
参照图9,写入数据定序器使用的LFSR结构是完全可编程的,以使其能够与任何LFSR多项式一起传送。LFSR反馈路径可由cfg_lfsr_poly[N-1:0]完全配置。当cfg_lfsr_poly[N]为1时,来自dataout[0]的反馈路径将被异或为FF[N]。当出现cfg_lfsr_init时,将LFSR种子初始化到LFSR移位寄存器中。该LFSR结构也可用于多输入签名寄存器(MISR),但是cfg_misr_en始终在写入定序器中置为无效,因此仅在读取定序器中使用。当内存定序器用作内存设备时,写入数据定序器也用于生成数据模式。
表5:
表5显示了读取数据序列表条目的读取数据序列表字段。读取数据存储区包含读取数据缓冲器,该缓冲器用于临时缓冲接收到的数据。要对接收到的数据进行操作,需要使用表5中所示的读取数据序列表。读取数据序列表的功能与写入数据序列表的功能完全相同,并且如果不需要读取和写入数据定序器同时运行,则可以在物理上和逻辑上共享。读取数据缓冲器中捕获的数据可存储在读取数据缓冲器中,以供固件读取而用于将来的操作、调试和检查。该数据可输入到可编程的MISR链中,以生成唯一的签名进行比较。数据还可以与可编程LFSR链进行比较,以鉴定是匹配还是精确位不匹配。相同的可编程LFSR-MISR链用于生成唯一的MISR签名,或者用于生成LFSR数据以与读取数据缓冲器中的数据进行比较用于读取。
CCNOC分组传输
参照图10,CCNOC(5)使用信用方案来调节从一个端口到另一端口的分组传输。信用在rx_credit总线上从接收器发送到发送器,以指示其必须接受CCNOC分组的自由槽数量。该值被显示并保持稳定。一个信用单位等效于tx_data上的1字节传输,tx_data的宽度从发送器到接收器为8位。在重置生效时,发送器将初始化其零信用的下游端口,因此无法传送任何数据。复位无效后,接收器可开始以信用的形式向发送器通告其拥有的FIFO空插槽的数量。接收器每个周期最多可发送三个信用,并且最多可能需要二十个周期才能将其总信用通告给发送器。例如,如果在接收器中实现的FIFO具有等于8个字节的八个条目,则接收器在前两个周期显示2’b11,然后在第三个周期显示2’b10。然后,它应该驱动2’b00,直到有更多的信用可释放出为止。收到信用后,发送器将其对应下游端口的内部计数器增加接收器已释放的信用量。每当发送器传输负载字节,它都需要将其内部计数器加1。只要发送器的那个端口的信用计数器不为零,就允许发送器向接收器发送事务。
在另一种信用方案中,接收器除了循环地发送释放的信用,还可以选择使用N位信用总线来公告信用的总数。例如,如果接收器具有等于8个字节的八个条目,则接收器可以在4位总线上出现8的伪静态值。每当接收器释放了更多的信用时,它只需一次更改信用总线的值,例如从8更改为12。这样做的好处是,发送器无需增加其内部计数器,因为它可以直接从此信用总线获取总信用值。另一个优点是,信用总线是非时序关键的,因为它的值是伪静态的。
CCNOC枚举
当CCNOC主设备枚举所有连接节点时,主设备将检查端口是否连接到从属设备。如果下游端口未连接从属节点,则该端口的tx_stub关联为1。如果tx_stub关联为0,则主设备向ID=0的从属端口发送N=1的“写入分组”,数据=N,其中N=从上游节点收到的“写入分组”写入数据负载。在从属节点上,从属节点接收到该第一个分组的端口被分配为上游端口,而从属节点的所有其他端口被分配为下游端口,而从属节点将自己分配ID=N。如果有一个或多个下游端口的tx_stub关联为0,则从属节点将选择第一个下游端口,并转发ID=0,数据=N+1的“写入分组”。如果没有下游端口,使得所有端口的tx_stub都关键为1,则从属节点将生成带有“枚举响应”的“消息分组”,其数据=本身的从属节点ID,并将该分组发送到上游。这将通知上游节点该枚举已到达叶从属节点。从属节点通过规定的步骤循环其所有下游端口。如果从属节点收到“写入分组”,它将寻找下游的从属节点,并转发ID=0,数据=N+1的“写入分组”。如果从属节点收到带有“枚举响应”的“消息分组”:如果存在另一个下游端口,其tx_stub关联为0,则向该下游端口发送“写入分组”,ID=0,数据=(带有“枚举响应”的“消息分组”的数据)+1,否则,如果没有其他下游端口的tx_stub关联为0,或者所有下游端口的tx_stub均关联为1,则生成带有“枚举响应”的“消息分组”,其中数据=(带有“枚举响应”的“消息分组”的数据)。如果CCNOC主节点接收到带有“枚举响应”的“消息分组”,但不再有尚未以ID=0的“写入分组”数据发送的其他下游端口,则视为该枚举过程已完成。“消息分组”中带有“枚举响应”的数据等于枚举的从属设备总数。
参照图11,CCNOC主设备首先将ID=0和数据=1的“写入分组”发送到最左边的下游端口。最左边的从属设备接收到此消息,将自己的ID设置为1,然后将ID=0和数据=2的“写入分组”转发到其最左边的从属设备。下一个从属设备将自己的ID设置为2。由于没有更多的下游端口(所有tx_stub都关联为1),从属设备2以数据=2将带有“枚举响应”的“消息分组”返回上游。当从属设备1从从属设备2收到“消息分组”时,它会向下一个最左边的从属设备发送数据=3的“消息分组”。该从属设备将自己的ID设置为3。由于没有更多的下游端口,从属设备3以数据=3将带有“枚举响应”的“消息分组”返回上游。当从属设备1从从属设备3收到“消息分组”时,它以数据=4向最右边的从属设备发送“写入分组”。该从属设备将自己的ID设置为4,由于没有更多的下游端口,从属设备4以数据=4将带有“枚举响应”的“消息分组“返回上游。当从属设备1从从属设备4收到“消息分组”时,它以数据=4向上游发送带有“枚举响应”的“消息分组”。当CCNOC主设备从从属设备4收到带有“枚举响应”的“消息分组”后,它以数据=5向最右边的从属设备发送“写入分组”。该从属设备将自己的ID设置为5,并向其单个下游端口发送数据=6的“消息分组”。最后一个从属设备将自己的ID设置为6,因为没有更多的下游端口,从属设备6以数据=6将带有“枚举响应”的“消息分组”返回上游。当从属设备5从从属设备6接收到“消息分组”时,它以数据=6发送带有“枚举响应”的“消息分组”。CCNOC主设备从从属设备5接收该“消息分组”。由于CCNOC主设备已枚举其所有下游端口,因此枚举流程完成,并且知道NOC拓扑中总共有6个从属设备。
CCNOC时间戳同步
利用CCNOC时间戳同步,连接到不同CCNOC节点的不同定序器可了解和理解全局时间。一旦知道了全局时间,便可以在不同的定序器上布设警报,以进行时间同步操作。当CCNOC总线空闲(也就是没有未完成的读取或写入)且CCNOC枚举完成后,便完成了时间同步。每个从属设备还执行表6中列出的寄存器,其中时间戳寄存器是自由运行的滚动计数器,该计数器在每个时钟上升沿递增。
表6:
示例性地,CCNOC主设备的时间戳值为1000,并且CCNOC主设备和从属设备1之间有5个管线。CCNOC主设备通过向从属设备1发送“读取分组”开始。CCNOC主设备应在10个周期后接收“读取响应”。在时间戳1020,CCNOC主设备向从属设备1的时间戳寄存器发送“写入分组”,该从属设备1的时间戳寄存器的数据相对于当前时间戳有5个增值,即1025。5个周期后,从属设备1接收此分组并设置其时间戳寄存器为1025。因此,CCNOC主设备和从属设备1的时间戳寄存器都处于1025,并且可以说是完全同步的。
时间戳与警报寄存器一起使用,以在所有从属节点上执行同步操作。为此,如果打算将写入操作与目标从属节点的预期操作一起使用,CCNOC主设备首先写入警报操作寄存器或警报数据寄存器。然后,用将来的时间戳写入警报时间戳,该时间戳将用于同步事件例如在不同频道或同一频道内启动定序器。当各个从属设备的时间戳寄存器达到“警报时间戳”中的计数时,将在目标从属节点上同时触发“警报操作”。
参照图12(a),CCNOC网络包括以分级方式连接的一个主设备和多个从属设备,这种分级方式是用于相对于CCNOC主设备所有从属设备之间的时间戳同步的替代方法。从属设备具有不同的初始时间戳,因为从属设备在不同的时间退出复位状态。但是,从属设备之间的物理连接是静态的,并且在从属设备之间传输写入分组所需的时钟周期数是已知的。每个从属设备均包括时间戳偏移寄存器,代表当写入分组从该从属设备传出时要添加到该写入分组的数据负载中的附加偏移。时间戳偏移寄存器根据写入分组从一个从属设备传输到另一个从属设备所需的时钟周期数进行编程。如果实现了相同的从属设备,则可以使用相同的值对所有从属设备的‘时间戳偏移’寄存器进行编程。为了简化,时间戳偏移寄存器也可以实现为恒定值。
参照图12(b),每个从属设备的时间戳偏移寄存器值已编程为但不限于9。CCNOC主设备还包括时间戳偏移寄存器,可以将其编程为等于将写入分组从CCNOC主设备传输到与其直接连接的CCNOC从属设备所需时钟周期数的值。时间戳同步可通过单个广播写入分组完成,CCNOC主设备将消息分组广播给所有从属设备,其中分组的数据负载包括主设备时间戳的值。在此示例中,将CCNOC主设备的时间戳值编程为但不限于1000,并且由于已将CCNOC主设备的时间戳偏移值编程为但不限于9,因此写入分组的数据负载通过1000加9来修改,从而在周期0(C0)发送到从属设备1、2和4时,创建修改后的写入分组,其数据负载为1009。
参照图12(c),写入分组在周期9(C9)的9个时钟周期后被接收,其时间戳寄存器的写入值为1009。因此,从属设备1的时间戳可被认为与CCNOC主设备同步,因为两个节点都包含相同的时间戳值1009。同时,从属设备2和4都包含已更新的时间戳寄存器,在第9个周期C9时的时间戳值为1009。从属设备2和4都会在将写入分组转发到从属设备3和5之前将其值添加到各自的时间戳偏移寄存器中,该写入分组将包含因增值9而得到的数据负载值1018。
参照图12(d),从属设备3和5在周期18(C18)时接收写入分组,并且两个从属设备都以写入分组数据负载值1018来设置时间戳寄存器。从属设备3和5与CCNOC主设备同步,因为两个从属设备都具有与主设备相同的时间戳。接下来,从属设备5将在其时间戳偏移中添加该值,并将具有数据负载1027的写入分组转发到从属设备6。
参照图12(e),从属设备6从从属设备5接收写入分组,并将时间戳寄存器设置为1027。最后,由于所有从属设备都包含与CCNOC主设备相同的时间戳,因此时间戳同步得以完成。
在本发明中,命令和地址定序器和数据定序器用作统筹信号定序的手段。此外,本发明形成由定序器簇的链接触发的复合内存序列。除此之外,该内存定序器系统还支持并发的行和列命令定序或单地址流命令定序。此外,该内存定序器系统可以使附加到具有自枚举功能的CCNOC的不同定序器同步,从而可以确定性地编排它们以形成到宽存储接口协议的信号。
上述示例性实施方式采用特定特征示出,但是本发明的范围还可以包括各种其他特征。
通过说明书和附图,对本领域技术人员而言,对这些实施例的各种修改均是显而易见的。与本文描述的各种实施例相关联的原理可以应用于其他实施例。因此,对发明的描述并不限于与附图一起示出的实施例,而是提供与本文所公开或启示的原理以及新颖性和创造性特征相一致的最广泛范围。因此,凡依照本发明作出的替代方案、修改和变化均落入本发明和所附权利要求书的范围内。
应当理解,本文所指的任何现有技术公开文献均不是承认该公开文献构成本领域公知常识的一部分。
Claims (22)
1.一种用于外部内存协议的内存定序器系统(100),包括:
控制中心(6),其包括微控制器(62);
控制中心片上网络(5),其包括点对点连接以同步和协调通信的节点(51);
其特征在于:
命令和地址定序器(4),用于生成用于特定内存协议的命令、控制和地址命令;以及
至少一个数据定序器(3),用于为内存接口的每个字节通道生成伪随机或确定性数据模式;
其中所述命令和地址定序器(4)和所述数据定序器(3)被链接形成复合地址和数据序列而用于内存接口的训练、校准和调试;
其中,所述控制中心片上网络(5)将所述控制中心(6)与所述命令和地址定序器(4)以及所述数据定序器(3)互连,以提供固件可控性。
2.根据权利要求1所述的内存定序器系统(100),其特征在于,所述内存定序器系统(100)被插入在内存控制器(1)的DDR PHY接口(2)和用于所述内存接口命令和数据的物理层传送或接收路径(7)之间。
3.根据权利要求1所述的内存定序器系统(100),其特征在于,所述命令和地址定序器(4)包括命令定序器(41)和地址定序器(43)。
4.根据权利要求3所述的内存定序器系统(100),其特征在于,所述命令和地址定序器(4)包括命令序列表(42),用于通过循环遍历所述表以统筹命令、地址或数据序列生成来解释每个条目。
5.根据权利要求3所述的内存定序器系统(100),其特征在于,所述地址定序器(43)包括一组加法器或比较器,用于基于触发值触发同一组内的不同加法器或比较器组的递增。
6.根据权利要求3所述的内存定序器系统(100),其特征在于,所述命令和地址定序器(4)包括命令编码器和命令解码器。
7.根据权利要求1所述的内存定序器系统(100),其特征在于,所述数据定序器(3)还包括具有读取数据缓冲器的读取数据存储器。
8.根据权利要求1所述的内存定序器系统(100),其特征在于,所述控制中心片上网络(5)连接至AXI-lite,用于在所述内存定序器系统内的网络中接收、转换和传送读取或写入命令。
9.根据权利要求1所述的内存定序器系统(100),其特征在于,所述控制中心片上网络(5)包括以树状拓扑组织的主节点(51)和多个从属节点(52),每个节点包括一组寄存器作为映射到AXI内存空间的内存。
10.根据权利要求9所述的内存定序器系统(100),其特征在于,所述主节点(51)具有多个下游端口,每个从属节点(52)具有一个上游端口和多个下游端口。
11.一种用于外部内存协议的内存定序的方法(200),其特征在于,包括以下步骤:
为每个条目生成命令、地址和数据序列;
选择一个或多个地址定序器来生成地址;
比较触发值以触发所述地址定序器处的加法器或比较器的递增;
链接所述加法器或比较器以创建地址序列;
对所述命令和地址进行编码和解码以触发数据路径;
根据时钟周期的数量,利用移位寄存器实现数据时延;
将包括写入数据和读取数据的数据传送到数据定序器;
将AXI-lite读取或写入命令转换为控制中心片上网络读取或写入命令;
基于从属节点(52)的地址和标识,将所述控制中心片上网络读取或写入命令传送到所述控制中心片上网络(5)的目标从属节点(52);
枚举所述从属节点(52)以将标识分配给每个从属节点(52);以及
使控制中心片上网络时间戳和警报寄存器同步。
12.根据权利要求11所述的方法,其特征在于,根据命令序列表(42)的编程值生成命令、地址和数据序列。
13.根据权利要求12所述的方法,其特征在于,所述编程值确定所述命令、地址和数据序列的延迟量。
14.根据权利要求11所述的方法,其特征在于,编码写入命令会触发写入传送数据路径,编码读取命令会触发读取接收数据路径,以从内存设备捕获并上传数据。
15.根据权利要求11所述的方法,其特征在于,解码读取命令会触发写入传送数据路径,解码写入命令会触发读取接收数据路径,以从内存主机捕获并卸载数据。
16.根据权利要求11所述的方法,其特征在于,所述传送写入数据的步骤还包括循环遍历写入数据序列表以生成写入数据传送模式。
17.根据权利要求11所述的方法,其特征在于,所述传送读取数据的步骤还包括循环遍历读取数据序列表以生成读取数据传送模式。
18.根据权利要求11所述的方法,其特征在于,所述将数据传送到数据定序器的步骤还包括:在读取数据缓冲器中捕获读取数据,用于调试和检查操作、签名生成或位比较。
19.根据权利要求11所述的方法,其特征在于,在包括写入分组(53)、读取分组(54)、完成分组(55)和消息分组(56)的分组中传送所述命令。
20.根据权利要求11所述的方法,其特征在于,所述使控制中心片上网络时间戳同步的步骤还包括:
从控制中心片上网络主节点(51)向一个从属节点(52)发送读取分组(54);
读取所述从属节点的时间戳寄存器(52);
记录所述读取分组(54)的发送时间;
当所述从属节点(52)接收到所述读取分组(54)时,向所述读取分组(54)发送读取响应;
记录控制中心片上网络主节点(51)接收读取响应的时间;
将具有当前时间戳和流水线延迟数据的写入分组(53)发送到所述从属节点(52)的时间戳寄存器;
重复上述步骤,从将读取分组(54)发送到从属节点(52)开始,直到所有从属节点均具有与控制中心片上网络主节点(51)相同的时间戳;
其中所述流水线延迟是往返延迟的一半;
其中,所述往返延迟是所述读取响应的接收时间与读取分组的传送时间之差。
21.根据权利要求11所述的方法,其特征在于,所述使控制中心片上网络时间戳同步的步骤还包括:
利用时钟周期的数量编程控制中心片上网络主节点(51)和从属节点(52)的时间戳偏移寄存器;
从控制中心片上网络主节点(51)向具有分组数据负载的所有从属节点(52)播发写入分组(53);
利用接收到的数据设置从属节点(52)的时间戳寄存器值;
将写入的时间戳值发送到下游从属节点(52);
重复上述步骤,从设置时间戳寄存器值开始,直到所有从属节点均具有与控制中心片上网络主节点(51)相同的时间戳;
其中,所述写入分组(53)根据时钟周期的数量从所述控制中心片上网络主节点(51)传输到控制中心片上网络从属节点(52);
其中,所述数据负载包含控制中心片上网络主节点(51)的时间戳值。
22.根据权利要求20或21所述的方法,其特征在于,所述时间戳用于警报触发,以执行所有从属节点(52)之间的同步动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
MYPI2020006133 | 2020-11-20 | ||
MYPI2020006133 | 2020-11-20 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114518902A true CN114518902A (zh) | 2022-05-20 |
Family
ID=81594847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110058327.4A Pending CN114518902A (zh) | 2020-11-20 | 2021-01-16 | 一种内存定序器系统和应用该系统的内存定序方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11442878B2 (zh) |
CN (1) | CN114518902A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134852A (zh) * | 2023-06-29 | 2023-11-28 | 杭州雄迈集成电路技术股份有限公司 | Ddrphy内部延时电路、运行方法和ddrphy结构 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115344215A (zh) * | 2022-08-29 | 2022-11-15 | 深圳市紫光同创电子有限公司 | 存储器训练方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6963516B2 (en) * | 2002-11-27 | 2005-11-08 | International Business Machines Corporation | Dynamic optimization of latency and bandwidth on DRAM interfaces |
US7392442B2 (en) | 2003-03-20 | 2008-06-24 | Qualcomm Incorporated | Built-in self-test (BIST) architecture having distributed interpretation and generalized command protocol |
US7370169B2 (en) * | 2003-06-30 | 2008-05-06 | Raytheon Company | Efficient memory controller |
US7010654B2 (en) * | 2003-07-24 | 2006-03-07 | International Business Machines Corporation | Methods and systems for re-ordering commands to access memory |
US8135975B2 (en) | 2007-03-09 | 2012-03-13 | Analog Devices, Inc. | Software programmable timing architecture |
US10489069B2 (en) * | 2017-11-29 | 2019-11-26 | International Business Machines Corporation | Address/command chip synchronized autonomous data chip address sequencer for a distributed buffer memory system |
US11488682B2 (en) * | 2020-06-24 | 2022-11-01 | Sandisk Technologies Llc | Calibration for integrated memory assembly |
-
2021
- 2021-01-16 CN CN202110058327.4A patent/CN114518902A/zh active Pending
- 2021-02-06 US US17/169,427 patent/US11442878B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117134852A (zh) * | 2023-06-29 | 2023-11-28 | 杭州雄迈集成电路技术股份有限公司 | Ddrphy内部延时电路、运行方法和ddrphy结构 |
Also Published As
Publication number | Publication date |
---|---|
US11442878B2 (en) | 2022-09-13 |
US20220164298A1 (en) | 2022-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3120683C (en) | Configuration load of a reconfigurable data processor | |
US11188497B2 (en) | Configuration unload of a reconfigurable data processor | |
TWI474320B (zh) | 雙倍資料率虛擬靜態隨機存取記憶體及其控制器、存取與操作方法、寫入與讀取方法 | |
JP5927263B2 (ja) | ホストコンピュータシステムとメモリとの間の通信方法およびメモリ | |
US7043390B2 (en) | Circuit testing with ring-connected test instruments modules | |
KR101028898B1 (ko) | 플렉스레이 통신 장치 | |
JP4740261B2 (ja) | 通信システム及び通信モジュールの通信リンクや通信システムのノードを経由してメッセージのデータを伝送する方法と、この方法を実現するための通信システム。 | |
US6816955B1 (en) | Logic for providing arbitration for synchronous dual-port memory | |
JP2015520459A (ja) | リングトポロジーステータス指示 | |
US11442878B2 (en) | Memory sequencer system and a method of memory sequencing using thereof | |
TW201209821A (en) | Status indication in a system having a plurality of memory devices | |
JP2008310832A (ja) | 高レベル・データ・リンク・コントローラから多数個のディジタル信号プロセッサ・コアに信号を分配するための装置と方法 | |
US11561925B2 (en) | Tensor partitioning and partition access order | |
US7016349B1 (en) | Logic for generating multicast/unicast address (es) | |
US6631455B1 (en) | Logic for initializing the depth of the queue pointer memory | |
JP2023505261A (ja) | メモリと分散計算アレイとの間のデータ転送 | |
US6578118B1 (en) | Method and logic for storing and extracting in-band multicast port information stored along with the data in a single memory without memory read cycle overhead | |
US6581144B1 (en) | Method and logic for initializing the forward-pointer memory during normal operation of the device as a background process | |
KR100532608B1 (ko) | 직/병렬화회로를 구비한 버스시스템 | |
TW202032383A (zh) | 可重組態資料處理器的組態加載和卸載 | |
US20040193836A1 (en) | Electronic systems comprising a system bus | |
McCalpin | Exploiting Fully Asynchronous Messaging Models in HPC Applications | |
US20140250252A1 (en) | First-in First-Out (FIFO) Modular Memory Structure | |
JP2008135047A (ja) | マルチプロセッサ用インタフェース |
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 |