CN114691556A - 一种提供与外部存储设备连接的通用物理层及其连接方法 - Google Patents
一种提供与外部存储设备连接的通用物理层及其连接方法 Download PDFInfo
- Publication number
- CN114691556A CN114691556A CN202110170188.4A CN202110170188A CN114691556A CN 114691556 A CN114691556 A CN 114691556A CN 202110170188 A CN202110170188 A CN 202110170188A CN 114691556 A CN114691556 A CN 114691556A
- Authority
- CN
- China
- Prior art keywords
- data
- data path
- physical layer
- fifo
- clk
- 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 19
- 230000005540 biological transmission Effects 0.000 claims abstract description 48
- 230000000873 masking effect Effects 0.000 claims abstract description 3
- 230000000630 rising effect Effects 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 6
- 240000007320 Pinus strobus Species 0.000 description 23
- 238000010586 diagram Methods 0.000 description 22
- 230000003111 delayed effect Effects 0.000 description 10
- PXXLQQDIFVPNMP-UHFFFAOYSA-N 3-(diethylcarbamoyl)benzoic acid Chemical compound CCN(CC)C(=O)C1=CC=CC(C(O)=O)=C1 PXXLQQDIFVPNMP-UHFFFAOYSA-N 0.000 description 9
- 230000001934 delay Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 239000000872 buffer Substances 0.000 description 3
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000001174 ascending effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/18—Address timing or clocking circuits; Address control signal generation or management, e.g. for row address strobe [RAS] or column address strobe [CAS] signals
-
- 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/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- 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
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1009—Data masking during input/output
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1039—Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/06—Address interface arrangements, e.g. address buffers
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
- G11C7/1012—Data reordering during input/output, e.g. crossbars, layers of multiplexers, shifting or rotating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Synchronisation In Digital Transmission Systems (AREA)
Abstract
本发明涉及一种提供与外部存储设备连接的统一架构的通用物理层。该物理层包括用于将并行数据发送到外部存储设备的传输数据路径(100)和用于从外部存储设备接收串行数据的接收数据路径(200)。该通用物理层的特征在于用于屏蔽串行数据的选通的接收使能逻辑(300),其中,该传输数据路径(100)和该接收数据路径(200)分别包括FIFO电路(4)、数据旋转器(2)和用于延迟调谐的可调延迟逻辑,以及用于多通道支持的按位纠偏(10)。此外,本发明还涉及一种与外部存储设备的连接方法。
Description
技术领域
本发明总体上涉及电脑内存技术领域,具体涉及一种提供与外部存储设备连接的统一架构的通用物理层。此外,本发明还涉及一种与外部存储设备连接的方法。
背景技术
随着电子系统处理速度的提高,高速芯片间信令越来越受到关注。高速芯片间通信通常需要精确的时钟信号使数据信号时钟同步,并且通常希望这种时钟信号在宽时钟频率范围内提供这种精度。
为了提供延迟线或时钟延迟,已经做了很多努力,以在数据传输中实现适当的信号定时。以下参照文献中讨论了其中一些工作。
US9712145B2公开了一种延迟线电路,其包括多个延迟电路和可变延迟线电路。该多个延迟电路接收输入信号并产生第一输出信号;该第一输出信号对应于延迟的输入信号或反相输入信号;该可变延迟线电路接收该第一输出信号。可变延迟线电路包括输入端、输出端、第一路径和第二路径。该输入端用于接收第一输出信号;该输出端用于输出第二输出信号;该第一路径包括第一多个逆变器和第一电路;第二路径包括第二多个逆变器和第二电路。基于从延迟线控制器接收到的控制信号,选择性地通过第一或第二路径发送接收到的第一输出信号。
US20110063931A1公开了一种从DDR存储器读取数据并将数据写入DDR存储器的输入/输出接口。该接口包括数据电路和选通电路,其中该选通电路包括前导码逻辑、与选通时钟一起工作的第一计数器、与ASIC生成时钟一起工作的第二计数器、选通寄存电路和第一同步器。该前导码逻辑从该DDR存储器接收选通信号,并生成前导码信号。该第一计数器产生选通寄存电路的第一输入;第二计数器产生选通寄存电路的第二输入。当不读取数据时,该选通寄存电路可控地将来自DDR存储器的选通信号替换为相应的非转换信号。该数据电路包括FIFO缓冲器和第二同步器。其中,该FIFO缓冲器通过选通时钟接收数据,该第二同步器响应ASIC生成时钟,从而产生数据表示。
前述参照文献和其他现有解决方案致力于提供改进的输入/输出数据传输。然而,它们仍然有许多局限性和不足。例如,使用延迟线来实现粗和精细延迟调谐。但是,这种方法需要占用很大的面积并且消耗大量的功率。此外,它们均未公开利用可变计数指示来满足不同内存协议的接收使能逻辑。
因此,仍然需要一种通用物理层,以克服上述问题和缺点。
发明内容
如下的本发明内容简述提供了对本发明的某些方面的基本理解。该内容简述不是本发明的广泛概述,其唯一的目的是以简化的形式呈现本发明的一些概念,作为后文中更详细描述的序言。
本发明的一个目的是提供一种通用物理层,其允许将外部存储设备扩展到更高的时钟速度。
本发明的另一个目的是提供一种通用物理层,其具有支持各种前导码、中间码和后导码要求的灵活性。
本发明的又一个目的是提供一种通用物理层,其能够满足不同内存接口协议的延迟要求。
本发明的又一个目的是提供一种通用物理层,其利用混合方法来实现粗延迟和精细延迟调谐。
本发明的又一个目的是提供一种通用物理层,其采用接收使能逻辑来满足不同的内存协议。
本发明的又一个目的是提供一种通用物理层,其能够支持与多秩外部存储设备的连接。
进一步地,本发明的另一个目的是提供一种通用物理层,该物理层能够处理多通道传输和纠偏,而不需要额外的纠偏结构。
本发明的又一个目的是提供与外部存储设备连接的方法。
因此,可以通过本发明的教导来实现这些目的。本发明涉及一种提供与外部存储设备连接的统一架构的通用物理层。所述通用物理层包括用于向外部存储设备发送并行数据的传输数据路径,和用于从外部存储设备接收串行数据的接收数据路径,其特征在于,所述物理层还包括用于屏蔽数据选通的接收使能逻辑,其中所述传输数据路径和所述接收数据路径分别包括FIFO电路、数据旋转器和用于延迟调谐的可调延迟逻辑,以及用于多通道支持的按位纠偏(per-bit-deskew)。
此外,本发明还涉及一种使用上述的通用物理层向外部存储设备发送并行数据的方法。所述方法包括以下步骤:在传输数据路径处输入所述并行数据;通过FIFO电路和数据旋转器实现粗延迟调谐;通过可调延迟逻辑实现精细延迟调谐;串行化所述并行数据以及将所述串行化数据传输到外部设备。
另外,本发明还涉及一种使用上述的通用物理层从外部存储设备接收串行数据的方法。所述方法包括以下步骤:在接收数据路径处输入所述串行数据;基于包括上升沿和下降沿的选通边沿,利用分频器划分所述串行数据的选通;通过FIFO电路和数据旋转器实现粗延迟调谐;通过可调延迟逻辑实现精细延迟调谐。
结合本文下面提供的详细描述并适当参照附图,本发明的前述和其他目的、特征、方面和优点将变得更容易理解。
附图说明
为了可以详细理解本发明的上述特征,以上简要概述的本发明的更具体描述可以通过实施例来引出,其中一些实施例在附图中示出。然而,应当注意,附图仅示出了本发明的典型实施例,因此不应视为对本发明范围的限制,因为本发明可允许其他的等效实施例。
通过参照以下附图,本发明的这些和其他特征、益处和优点将变得显而易见,相同的附图标记指代整个视图中的相同结构,其中:
图1示出了根据本发明实施例的传输数据路径。
图2示出了根据本发明实施例的传输数据路径的时序图。
图3示出了根据本发明实施例的传输数据路径的结构框图。
图4示出了图3所示的传输数据路径的FIFO操作的第一示例。
图5示出了图3所示的传输数据路径在用于读取索引时钟交叉的时序图。
图6示出了图3所示的传输数据路径在用于串行输出的时序图。
图7示出了图3所示的传输数据路径的第一总体时序图。
图8示出了图3所示的传输数据路径的FIFO操作的第二示例。
图9示出了图3所示的传输数据路径的第二总体时序图。
图10示出了根据本发明实施例的用于传输数据路径的多秩逻辑。
图11示出了根据本发明实施例的FIFO单元的操作,以实现针对不同秩的不同UI延迟。
图12示出了根据本发明实施例的用于传输数据路径的多通道逻辑。
图13示出了根据本发明实施例的接收数据路径。
图14示出了根据本发明实施例的接收数据路径的时序图。
图15示出了根据本发明实施例的接收数据路径的结构框图。
图16示出了根据本发明实施例的接收数据路径的每个时钟的时钟位置。
图17示出了根据本发明实施例的在接收数据路径中由多个锁存器实现的FIFO电路。
图18示出了图17所示的接收数据路径的时钟与锁存器之间的关系。
图19示出了根据本发明实施例的接收数据路径中的计数器。
图20示出了根据本发明实施例的带有接收数据路径的中间码的时序图。
图21示出了根据本发明实施例的具有接收数据路径的前导码和后导码的时序图。
图22示出了根据本发明实施例的接收数据路径的FIFO操作。
图23示出了根据图22的第一FIFO读出。
图24示出了根据图22的第二FIFO读出。
图25示出了根据图22的第三FIFO读出。
图26示出了根据图22的后续FIFO操作。
图27示出了根据本发明实施例的数据偏斜场景的时序图。
图28示出了根据图27的FIFO操作。
图29示出了根据图28的FIFO读出。
图30示出了根据本发明实施例的多通道数据路径偏斜的时序图。
图31示出了根据本发明实施例的用于中心对齐的调整的时序图。
图32示出了根据图31的FIFO操作。
图33示出了根据图32的FIFO读出。
图34示出了根据本发明实施例的接收使能逻辑的时序图。
图35示出了根据本发明实施例的接收使能逻辑的结构框图。
图36示出了根据图35的不具有选通切换的数据传输的时序图。
图37示出了根据图35的具有选通切换的数据传输的时序图。
图38示出了图35所示的在数据传输中具有接收使能逻辑的选通切换的总体时序图。
图39示出了图35中所示接收使能逻辑的半速率时钟数据传输的总体时序图。
具体实施方式
根据需要,在此公开了本发明的详细实施例。然而,应当理解,所公开的实施例仅仅是本发明的示例,其可以以各种形式实施。因此,本文公开的具体结构和功能细节不应解释为限制性的,而仅作为权利要求的基础。应当理解的是,附图及其详细描述并非旨在将本发明限制为所公开的特定形式,相反地,本发明将覆盖落入权利要求书所定义的本发明范围内的所有修改、等同形式和替代形式。在本申请中通篇所使用的术语中,词语“可以(may)”表示允许的意义(即意味着有可能),而不是强制性的意义(即必须)。类似地,词语“包括(include,including,includes)”表示包括但不限于。此外,除非另有说明,否则词语“一(a,an)”表示“至少一个”,词语“复数(plurality)”表示一个或多个。在使用缩写词或技术术语的情况下,它们表示在该技术领域公认的通用含义。
在下文中,通过各种实施方式参照附图来描述本发明,其中在附图中使用的附图标记在整个说明书中对应于相似的元件。然而,本发明可以许多不同的形式实施,并且不应被解释为限于本文阐述的实施例。相反地,提供的实施例使得本公开变得充分且完整,并将向本领域技术人员充分传达本发明的范围。在以下的详细描述中,为所描述的实施方式的各个方面提供了数值和范围。这些数值和范围仅应被视为示例,而无意于限制权利要求的范围。另外,许多材料被认定为适合于实施的各个方面。这些材料将被视为示例性的,并且不意图限制本发明的范围。
本发明涉及一种提供与外部存储设备连接的统一架构的通用物理层,该通用物理层包括用于向外部存储设备发送并行数据的传输数据路径(100)和用于从外部存储设备接收串行数据的接收数据路径(200),其特征在于,还包括用于屏蔽数据的选通的接收使能逻辑(300)。该传输数据路径(100)和该接收数据路径(200)分别包括FIFO电路(4)、数据旋转器(2)和用于延迟调谐的可调延迟逻辑,以及用于多通道支持的按位纠偏(10)。
根据本发明的一个实施例,该传输数据路径(100)还包括配置成选择读取基础索引的时钟交叉复用器(6)、配置成串行化并行数据的串行器(8)以及配置成支持多秩数据传输的多秩逻辑。
根据本发明的一个实施例,该接收数据路径(200)还包括配置成分割数据的选通的分频器(12)和配置成扩展用户读取使能以覆盖选通切换的计数器。
根据本发明的一个实施例,该接收数据路径(200)的FIFO电路(4)与多个锁存器相关联,用于处理选通切换、多通道数据传输和纠偏。
根据本发明的一个实施例,该接收使能逻辑(300)包括逻辑门电路。
在下文中,将对包括传输数据路径(100)、接收数据路径(200)和接收使能逻辑(300)的物理层的每个特征进行更详细的描述,并将给出示例用于详细的解释。通过这些示例,可以更容易地理解和实现本发明的优点。然而,应当理解的是,以下示例并非用于以任何方式限制本发明的范围。
传输数据路径(100)
图1示出了根据本发明实施例的传输数据路径(100)。该传输数据路径(100)可以传输从较慢时钟域的内部源生成的并行数据,并将并行数据串行化到较快时钟域的外部设备。待传输的数据以并行格式呈现在CLK_A域中的传输数据路径(100)的左侧。然后,输入数据可以在传输数据路径(100)中从CLK_A域跨越到CLK_B域,并且在发送到外部设备之前进一步串行化。
在以下教导中,可以假设传输数据路径(100)发送N等于4的输入数据[N-1:0]。N的值包括但不限于2、4、8和16。此外,可以假设输入数据首先传输位-0,后传输位-(N-1)。同样,在其它实施例中,输入数据可以先传输位-(N-1),后传输位-0。
参照图2,CLK_A和CLK_B示出为具有相同的时钟频率,但相位不同。CLK_B的相位可进一步以由传输数据路径(100)监测的一定量延迟。CLK_A和CLK_B是自由运行的时钟。串行输出数据上的每个插槽都可以看作一个单位间隔(UI)。
图3示出了根据本发明实施例的传输数据路径的结构框图。该传输数据路径(100)可用于各种协议,包括但不限于DDR3、DDR4、DDR5、LPDDR3、LPDDR4、LPDDR5、HBM2、HBM3和LVDS。CLK_B可以通过可调延迟逻辑从CLK_A生成。可调延迟逻辑包括可调延迟。可调延迟逻辑可进一步包括90度延迟。该可调延迟可以使用相位内插器、延迟锁相环(DLL)或纯延迟单元来实现。其后,CLK_B可以指向90度延迟,然后指向按位纠偏(10),其用作额外的精细延迟以生成CLK_B_90。CLK_B也可以直接指向按位纠偏(10)以生成CLK_B_0。90度延迟可以使用相位内插器、DLL或纯延迟单元来实现。本质上,CLK_B_0是CLK_B的延迟版本,而CLK_B_90是CLK_B_0的90度延迟版本。参照图3,该传输数据路径(100)可分为两部分,其中左侧的逻辑可由CLK_A时钟同步,而右侧的逻辑可由CLK_B时钟同步。
此后,该输入数据可以通过数据旋转器(2)进入该传输数据路径(100)。该数据旋转器(2)和先进先出(FIFO)电路(4)(包括但不限于四个FIFO单元U0-U3)可用于通过特定UI延迟输入数据。该数据旋转器(2)可以使用左旋转功能来实现。例如,当输入数据是“DCBA”并且数据旋转器(2)的索引是1时,将使输入数据向左旋转1并且旋转的输出数据将是“CBAD”。通常,对于2位输入,该数据旋转器索引可以是1位。对于4位输入,该数据旋转器索引可以是2位。对于8位输入,该数据旋转器索引可以是3位。同时,U0–U3写入索引可以是log2(M)位,其中M是FIFO单元的条目数。在本实施例中,每个FIFO单元中有八个条目,因此U0–U3的每个写入索引均为3位。在本实施例中,出于说明的目的,所期望的UI延迟可被称为通用字母A。A的位值可以通过数据旋转器索引的位值与U0–U3写入索引的位值之和获得。在本实施例中,数据旋转器索引是2位的,因为有4位输入,而U0–U3的每个写入索引是3位的,因为每个FIFO单元中有8个条目,因此A的位值等于5位,这意味着在传输数据路径(100)中有32个可能的UI延迟。在另一实施例中,数据旋转器索引可以是1位,而U0–U3的每个写入索引可以是2位,因此A的位值等于3位,这意味着在传输数据路径(100)中有8个可能的UI延迟。
基于本实施例中的2位数据旋转器索引和3位U0-U3写入索引,数据旋转器索引和U0-U3写入索引可以由以下逻辑方程生成。应当理解,可以根据数据旋转器索引的位值和FIFO单元写入索引的位值来调整以下逻辑方程。
数据旋转器索引=A的低2位,A[1:0];
U0写入索引=写入基础索引+A的高3位,A[4:2]+按位_或(A[1:0]);
U1写入索引=写入基础索引+A[4:2]+A的第二位,A[1];
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0]);以及
U3写入索引=写入基础索引+A[4:2]
在一个示例中,通过传输数据路径(100)的输入数据“DCBA”的期望延迟数是8,因此A[4:0]是8UI或5'b01000。数据旋转器索引和U0–U3写入索引可以如下确定。
数据旋转器索引=A[1:0]=0;
U0写入索引=写入基础索引+A[4:2]+按位_或(A[1:0])=0+2+0=2;
U1写入索引=写入基础索引+A[4:2]+A[1]=0+2+0=2;
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0])=0+2+0=2;以及
U3写入索引=写入基础索引+A[4:2]=0+2=2
写入基础索引从0开始,在每个周期递增。在本示例中,A的低2位,即A[1:0]为“00”,因此其十进制值为0。A的高3位,即A[4:2]是“010”,因此其十进制值是2。除非A的第一位和第二位中的一个或两个是“1”,否则按位_或(A[1:0])的值为0。A的第二位,即A[1]为“0”,因此其十进制值为0。除非A的第一位和第二位都是“1”,否则按位_和(A[1:0])的值为0。由于数据旋转器索引为0,而U0–U3写入索引为2,因此输入数据“DCBA”将旋转0,并写入每个FIFO单元的条目2中,如图4所示。
参照图5,CLK_A域中的读取基础索引从0开始,并在每个时钟周期上递增。读取基础索引被复制到CLK_B_0域中的读取索引。CLK_B_0延迟的调整方式是从CLK_A延迟200ps。图3所示的时钟交叉复用器(6)用于在读取基础索引本身或半周期延迟读取基础索引之间进行选择。在一个示例中,将CLK_B_0的可调延迟设置为“延迟设置1”,将时钟交叉复用器(6)选择设置为0,从而将CLK_A域的读取基础索引复制到CLK_B_0域的读取索引。在另一个示例中,其中CLK_B_0的可调节延迟被设置为“延迟设置2”,时钟交叉复用器(6)选择设置为1,因此CLK_A域的半周期延迟读取基础索引被复制到CLK_B_0处的读取索引。时钟交叉复用器(6)选择可以基于CLK_B_0相对于CLK_A的总延迟来设置,以防止从CLK_A域到CLK_B_0域交叉时发生任何时序冲突。
随后,读取索引可用于从4个FIFO单元读取数据。当读取索引为0时,将首先读取FIFO单元的条目0。串行化程序(8)使用CLK_B_0和CLK_B_90作为多路复用器“选择”,并从4位FIFO输出数据中选择1位,以实现4:1的串行化,如图6所示。
参照图7,旋转器索引保持为0。因此,新的输入数据总是写入FIFOs U0-U3的下一个条目。在每个CLK_B_0周期中,读取基础索引通过时钟交叉复用器(6)复制到CLK_B_0域中的读取索引,如前一节所述。2个CLK_A周期之后,读取基础索引将增加到2。CLK_B_0域的读取索引也变为2。数据“DCBA”将呈现在FIFOs的输出上,然后被串行化。因此,传输数据路径(100)在输入和输出之间实现了总共8UI+200ps的延迟。
在另一个示例中,通过传输数据路径(100)的输入数据“DCBA”的期望延迟是9,因此A[4:0]是9UI或5'b01001。该数据旋转器(2)可以使用右旋转功能来实现。数据旋转器索引和U0–U3写入索引可以如下确定。
数据旋转器索引=A[1:0]=1;
U0写入索引=写入基础索引+A[4:2]+按位_或(A[1:0])=0+2+1=3;
U1写入索引=写入基础索引+A[4:2]+A[1]=0+2+0=2;
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0])=0+2+0=2;以及
U3写入索引=写入基础索引+A[4:2]=0+2=2
由于数据旋转器索引为1,并且数据旋转器(2)使用右旋转功能实现,因此输入数据“ABCD”被右旋转为“DABC”。“D”被写入FIFO UO的条目3,而“ABC”则相应地被写入FIFOU1-U3的条目2,如图8所示。
参照图9,读取基础索引从0开始,并在每个周期中递增。在每个周期中,U0-U3的写入索引和读取基础索引都增加1。旋转器索引保持为1。2个时钟周期后,使用CLK_B_0处的读取索引从FIFO读取“CBA”。再过一个时钟周期,使用CLK_B_0的读取索引从FIFO读取“D”。因此,传输数据路径(100)在输入和输出之间实现了总共9UI+200ps的延迟。故通过操纵数据旋转器(2)、U0-U3写入索引和CLK_B_0的时钟延迟,本发明能够实现从输入数据到最终串行输出的各种延迟。
根据本发明的一个实施例,外部设备必须连接到不同的设备或不同秩,因此需要不同的延迟。例如,一组数据必须以4UI的延迟传输到一个设备,而另一组数据必须以7UI的延迟传输到另一个设备。这可以通过更改每个设备的旋转器索引和U0–U3写入索引来实现。图10示出了与传输数据路径(100)相关联的用于支持多秩传输的多秩逻辑。
参照图10,该多秩逻辑可用于确定数据正传输到哪些设备,并为每个设备分配适当的旋转器索引和写入索引。在一个示例中,秩-0要求延迟4UI,秩-1要求延迟5UI,秩-2要求延迟6UI,秩-3要求延迟7UI。该数据旋转器(2)可以使用左旋转功能来实现。在第一个周期中,“DCBA”的输入数据以4UI的延迟传输到秩-0,因此A[4:0]是4UI或5'b01000。写入基础索引从0开始。
数据旋转器索引=A[1:0]=0。所以旋转后的数据仍然是“DCBA”。
U0写入索引=写入基础索引+A[4:2]+按位_或(A[1:0])=0+1+0=1;
U1写入索引=写入基础索引+A[4:2]+A[1]=0+1+0=1;
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0])=0+1+0=1;以及
U3写入索引=写入基础索引+A[4:2]=0+1=1
在第二个周期中,“HGFE”的输入数据以5UI的延迟传输到秩-1,因此A[4:0]是5UI或5'b00101。写入基础索引增量为1。
数据旋转器索引=A[1:0]=1。所以旋转后的数据是“GFEH”。
U0写入索引=写入基础索引+A[4:2]+按位_或(A[1:0])=1+1+1=3;
U1写入索引=写入基础索引+A[4:2]+A[1]=1+1+0=2;
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0])=1+1+0=2;以及
U3写入索引=写入基础索引+A[4:2]=1+1=2
在第三个周期中,“LKJI”的输入数据以7UI的延迟传输到秩-3,因此A[4:0]是7UI或5'b00111。写入基础索引增量为2。
数据旋转器索引=A[1:0]=3。所以旋转后的数据是“ILKJ”。
U0写入索引=写入基础索引+A[4:2]+按位_或(A[1:0])=2+1+1=4;
U1写入索引=写入基础索引+A[4:2]+A[1]=2+1+1=4;
U2写入索引=写入基础索引+A[4:2]+按位_和(A[1:0])=2+1+1=4;以及
U3写入索引=写入基础索引+A[4:2]=2+1=3
图11示出了FIFO单元的上述操作,以实现不同秩的不同UI延迟。
根据本发明的一个实施例,本发明可以具有多个数据通道,其中每个通道具有N位并行输入数据和1个串行输出。每条通道可能有不同的时钟。因此,每个通道可能需要调整稍有不同的时钟,因此它使得每个通道使用按位纠偏(10)。参照图12,旋转器索引和FIFOU0-U3写入索引集中生成并分布到所有通道。同时,对于每个通道在本地实现时钟交叉复用器(6)。此配置实现了通过FIFO单元以及数据旋转器(2)进行粗延迟调谐,并通过可调延迟逻辑进行精细延迟调谐。由于FIFO读取索引直接由CLK_时钟同步,因此这种配置还最小化了通过传输数据路径(100)的延迟。换句话说,时钟交叉直接发生在读取索引处。以这种配置实施时,不需要在FIFO单元的数据输出处发生时钟交叉。此外,不需要可能导致额外延迟和面积的额外管道级。这种配置还减小了面积和功率,因为通常用相位内插器实现的可调延迟逻辑可以变小,其中的粗延迟已经由FIFO单元和数据旋转器(2)处理。
接收数据路径(200)
图13示出了根据本发明实施例的接收数据路径(200)。该接收数据路径(200)可以从外部设备捕获串行数据并将串行数据转换为并行形式。待捕获数据以串行格式呈现在CLK_X域中的接收数据路径(200)的左侧。输入数据由该接收数据路径(200)捕获,然后从CLK_X域跨越到CLK_Y域,并以并行格式发送用于内部消耗。在以下教导中,可以假设接收数据路径(200)接收N等于4的输入数据[N-1:0]。N的值包括但不限于2、4、8和16。参照图14,CLK_X和CLK_Y没有相同的时钟频率。此外,CLK_Y和CLK_X具有不同的时钟相位。
图15示出了根据本发明实施例的接收数据路径的结构框图。该接收数据路径(200)可用于各种协议,包括但不限于DDR3、DDR4、DDR5、LPDDR3、LPDDR4、LPDDR5、HBM2、HBM3和LVDS。第一分频器(12)基于CLK_X的上升沿对输入时钟CLK_X进行分频,而第二分频器(12)基于CLK_X的下降沿对输入时钟CLK_X进行分频。此后,两个分频器(12)的输出分别被送往可调延迟逻辑和可选的按位纠偏(10)以生成CLK_X_0和CLK_X_90。可调延迟逻辑可以使用相位内插器、DLL或纯延迟单元来实现。如图15所示,左逻辑可由CLK_X_0和CLK_X_90时钟同步,而右逻辑可由CLK_Y时钟同步。
图16示出了根据本发明实施例的每个时钟的时钟位置。在CLK_X上应用可调延迟逻辑的目的是将CLK_X与数据窗口的中心对齐。来自CLK_X的CLK_X_0除以2,经过可调延迟逻辑和可选的按位纠偏(10)后,具有200ps的延迟。CLK_X_90从CLK_X_0移位90度。可以看到,CLK_X_0和CLK_X_90的每一边沿都与图16数据窗口的中心对齐。
参照图15和17,FIFO电路(4)中的FIFO单元都可以用触发器或锁存器的阵列来实现。可选地,每个FIFO单元还可以与第一级强臂锁存器和锁存器阵列耦合。在上述两个实施例中,CLK_X_0和CLK_X_90的高/低相位都用于将输入数据采样到FIFO单元U0-U3中,并增加U0–U3的写入索引。图17示出了FIFO单元与第一级强臂锁存器和锁存器阵列耦合的实施例。强臂锁存器在高速数据采样时更可靠,并且不易受噪声影响。图18示出了图17所示的时钟和锁存器之间的关系。FIFO U0的强臂锁存器可以通过CLK_X_0的上升沿进行时钟同步,而FIFO U0的锁存器在CLK_X_0的高相位期间是透明的。U0写入索引可以通过CLK_X_0的下降沿来计时。如图18所示,尽管在CLK_X_0或CLK_X_90的不同时钟边沿,类似的机制也可能适用于U1–U3 FIFO单元。在另一个实施例中,可以使用单一热码环形计数器(one hot ringcounter)代替写入索引和解码器,而不是使用用于U0–U3写入索引的二进制值。
此后,一旦输入数据被捕获到FIFO U0-U3中,则可以在FIFO数据稳定之后读出数据。从FIFO读出的数据可以从CLK_Y时钟域读取。可使用户读取使能输入生效来表明从FIFO单元读出。在某些设置中,用户读取使能输入必须扩展以覆盖选通切换,该选通切换例如前导码、中间码和后导码。在存在1个前导码周期和1个后导码周期的示例中,可以生成FIFO读取使能,该FIFO读取使能从用户读取使能输入扩展2个CLK_Y周期。如果用户读取使能必须延长一定数量的周期,则可以通过使用计数器来实现。图19示出了计数器的实现。该计数器被输入的反相启用。当输入高电平时,计数器将加载扩展值。当输入低电平时,计数器将从扩展值开始递减。当输入为高电平或计数器值不为0时,则输出为高电平。一旦计数器值变为0且输入为低电平,则输出为低电平。
使用计数器的两种情况如图20所示。情况1表明,计数器可以将对应于FIFO读取使能的输出扩展所需的周期。情况2表明,当有两个连续的高脉冲输入时,输出将在输入的两个高脉冲之间形成高电平。这就是中间码的情况。计数器可以通过将用户读取使能驱动到计数器的输入中并将前导码和后导码之和作为扩展值,来扩展用户读取使能以覆盖前导码和后导码。
图21示出了存在1个前导码周期和1个后导码周期的情况。使用计数器,FIFO读取使能可以扩展1个CLK_Y,其中1个CLK_Y等于2个CLK_X。
参照图22,串行数据已被捕获到FIFO单元中。U0 FIFO的条目0和U1 FIFO的条目0都与由于前导码导致的无用数据“X”一起存储。实际数据从U2 FIFO的条目-0开始。因此,起始偏移(START_OFFSET)可以设置为2。U0读取索引初始化为0+按位_或(起始偏移[1:0])。如果起始偏移在二进制值中设置为2或“10”,则U0读取索引将初始化为0+1=1。U1读取索引被初始化为0+起始偏移[1]。如果起始偏移设置为2,则U1读取索引初始化为0+1=1。U2读取索引初始化为0+按位_和(起始偏移[1:0])。如果起始偏移设置为2,则U2读取索引将初始化为0+0=0。无论起始偏移如何,U3读取索引始终初始化为0。因此,在FIFO读取使能为高电平的第一周期期间,可以读取出:U0读取索引=1,U1读取索引=1,U2读取索引=0和U3读取索引=0。在这种情况下,可以使用右旋转功能来实现数据旋转器(2)。旋转器索引可以设置为起始偏移[1:0],在本情况中该起始偏移[1:0]为2。因此,FIFO的输出“BADC”右转2,变为“DCBA”,这与串行输入流“A,B,C,D”的预期输出一致。同时,将用户读取使能输入作为数据有效限定符发送回用户,这意味着“DCBA”的旋转输出是有效数据。从那时起,在每个周期,只要FIFO读取使能为高电平,U0-U3读取索引就会增加1。旋转器索引保持在起始偏移[1:0],且每个周期均为2。在下一个周期中,FIFO的输出“FEHG”将被旋转并变为“HGFE”,如图24所示,这与串行输入流“E,F,G,H”的预期输出一致。同时,将用户读取使能输入作为数据有效限定符发送回用户,这意味着“HGFE”的旋转输出是有效数据。
在下一个周期中,FIFO输出将为“XXXX”,如图25所示。无论旋转如何,这都不是有效数据。由于用户读取使能输入被连续地发送回用户以进行数据验证,因此在该周期中,用户读取使能为0,从而使输出数据无效。由于FIFO读取使能已变为低电平,U0-U3读取索引将保持其值,不再递增。
上述方法可以继续用于后续的输入数据。例如,“I、J、K、L、M、N、O、P”的下一个输入流将占用FIFO单元中接下来的条目,如图26所示。如果用户读取使能有效,FIFO读取使能将再次被扩展,并且U0-U3读取索引将从其先前的值开始递增。因此,U0读取索引为4,U1读取索引为4,U2读取索引为3,U3读取索引为3。FIFO输出[3:0]则为“JILK”。在旋转了2之后,输出数据为“LKJI”,这与输入流“I,J,K,L”的预期输出一致。在下一个周期中,FIFO输出为“NMPO”,旋转后输出为“PONM”,这与输入流“M,N,O,P”的预期输出一致。
根据本发明的一个实施例,输入数据可以偏斜一个或多个周期。当输入数据延迟和输入时钟延迟不匹配时,会引入偏差。例如,参照图27,源位置的CLK_X和源位置的输入数据是对齐的。然而,当它们到达接收器时,与仅延迟100ps的输入数据相比,CLK_X延迟超过2UI。因此,第一个有效数据“A”存储在FIFO U0的条目0中。下一个有效数据“B””存储在FIFOU1的条目0中,如图28所示。一个无用数据由于前导码而存在,而另外三个无用数据由于后导码而存在。为了处理这种情况,可以将起始索引(START_INDEX)更改为1。因此,U0读取索引被初始化为1,U1-U3读取索引被初始化为0。类似地,旋转器索引也被设置为1作为起始索引。图29示出了当FIFO读取使能为高电平时的随后3个周期的输出数据。
根据本发明的一个实施例,本发明有多个数据通道,每个通道都有自己的时钟或数据偏斜,如图30所示。如上述实施例所述,可以通过调整每个通道上的按位纠偏(10)并为每个通道设置不同的起始偏移,来实现通道到通道(lane-to-lane)的对齐和偏移量。参照图31,CLK_X_0和CLK_X_90的上升沿和下降沿与每个有效数据的中心对齐。每条通道的每个FIFO的状态如图32所示。可以通过为每条通道配置不同的起始偏移来实现通道对齐,而无需附加逻辑或周期惩罚。图33示出了在一个周期后如何读出每个通道。因此,可以看出,接收数据路径(200)可以处理任意数量的前导码、后导码和中间码。此外,通过利用锁存器,接收数据路径(200)可以节省面积和功率。另外,接收数据路径(200)可以处理数据到时钟的偏斜和通道到通道的偏斜,而无需附加逻辑或管道级。
接收使能逻辑(300)
对于使用双向选通的协议,包括但不限于LPDDR3、LPDDR4、LPDDR5、DDR3、DDR4和DDR5,被称为数据选通(DQS)的输入时钟仅在特定的时序窗口期间有效。在此时序窗口之外,选通是未知的。因此,选通不能用作接收数据路径(200)的直接时钟。选通必须经过接收使能信号被准予或门控。图34示出了接收使能信号的工作方式。门控选通(在图34中称为‘门控DQS’)在接收数据路径(200)中用作CLK_X,如之前的实施例所述。此外,由TRise指示的窗口是在需要接收使能生效的情况下用于接收使能的上升的窗口。TFall指示的窗口是在需要使接收使能无效的情况下用于接收使能的下降的窗口。
图35示出了根据本发明实施例的接收使能逻辑(300)的框图。接收使能信号可以通过以下方式生成:将接收使能的上升沿放置在TRise的中间,并且将接收使能的下降沿放置在TFall的中间。使用的核心时钟可以是CLK_Y。CLK_Y的频率可以与DQS的频率相同。同样,CLK_Y的频率可以是DQS频率的一半或四分之一。在下面的实施例中,假定CLK Y与DQS具有相同的频率。值得注意的是,接收使能逻辑(300)的两个重要点是三个主要信号的产生以及接收使能(RXEOP)从CLK_Y到DQS域的传递。三个主要信号包括但不限于接收使能(RXENA)、分组接收结束(RXEOP)和分组接收结束(RXEOP)的FIFO加载使能。
首先,当内存控制器已经向外部存储设备发出读取命令时,内存控制器可以使用户读取使能信号有效。该用户读取使能是对接收数据路径(200)的指示,所读取的数据预期从外部存储设备返回。用户读取使能在一定数量的CLK_Y周期内有效,该周期等于其想要读取的数据突发周期的长度。例如,如果内存控制器发送了针对8个数据块的读取命令,则由于是双倍数据速率,突发读取时钟周期是4,其中1个数据块对应于0.5个时钟周期。因此,用户读取使能在4个时钟内有效。然而,包括但不限于DDR4、LPDDR4和DDR5的一些协议可能需要额外的选通切换,例如选通上的前导码和后导码。图36和图37显示了2个情况。在第一种情况下,想要执行共8个数据块的4个时钟的读取突发,并且没有任何前导码或后导码。在第二种情况下,想要执行具有附加的2个前导码周期和1个后导码周期的4个时钟的读取突发。
对于第一种情况,参照图36,首先从用户读取使能复制RXENA,缩短1个周期。此后,RXEOP将在RXENA结束时生效。当CLK_Y与DQS的频率相同时,RXEOP FIFO加载使能在RXENA之后发生。如果CLK_Y的频率是DQS的一半,那么RXEOP FIFO加载使能将不同。当RXEOP FIFO加载使能为高电平时,RXEOP FIFO加载指针将在每个CLK_Y周期递增。RXEOP的值被写入RXEOPFIFO加载指针所指向的RXEOP FIFO位置。在这种情况下,只有RXEOP FIFO的条目2的写入值为1。条目0和条目1用0写入。
对于第二种情况,参照图37,存在4个时钟的读取突发,具有额外的2个前导码周期和1个后导码周期。用户读取使能由内存控制器在4个CLK_Y周期生效。对于RXENA,用户读取使能由于2个前导码和1个后导码延长了3个时钟周期,并且还缩短了1个周期,因此总共有6个周期。RXEOP仍然在RXENA结束时有效。与第一种情况相同,RXEOP FIFO加载使能在RXENA之后发生。当RXEOP FIFO加载使能处于高电平且位于加载指针指向的位置时,RXEOP的值被写入RXEOP FIFO。RXEOP FIFO的条目0至4用0写入,只有条目5用值1写入。
随后,RXENA通过不具有输出缓冲器的传输数据路径(100)。该传输数据路径(100)用于将RXENA延迟任意量,以便将RXENA对齐原始DQS的TRise窗口的中间。传输数据路径可以与RXENA或RXEOP耦合以确保可以生成信号,该信号封装了用于读取的有效DQS。本实施例中的传输数据路径(100)可以用作具有延迟调谐的慢到快时钟串行器,以将慢时钟域中的RXENA或RXEOP传输到快时钟域。图38显示了标记为A-J的事件的时序图,以便于更清晰的说明。
A、用户读取使能由内存控制器在4个时钟周期生效。
B、生成RXENA并扩展了额外的3个时钟,总共7个时钟周期。该扩展是为了覆盖DQS的前导码和后导码。
C、RXENA由传输数据路径(100)和可调延迟逻辑延迟,从而使得RXENA的上升沿被放置在原始DQS的第一上升沿之前以及在原始DQS的TRise窗口内。
D、RXENA最终(RXENA Final)来源于RXENA,因为RXENA最终是通过如图35所示的逻辑门电路,由RXEOP FIFO加载使能与RXENA之间的或(OR)运算获得。此外,通过逻辑门电路,由原始DQS和RXENA结束之间的和(AND)运算获得门控DQS。
E、在门控DQS的第一个下降沿,RXEOP FIFO卸载使能生效。
F、对于接下来的6个时钟周期,RXEOP FIFO被卸载。
G、当加载指针到达条目5时,从RXEOP FIFO卸载值“1”。这将导致RXEOP FIFO卸载使能在下一个周期中失效。
H、在这个时期,RXENA已经失效。但是,由于RXEOP FIFO卸载使能仍然处于高电平,故RXENA最终仍然处于高电平。
I、RXEOP FIFO卸载使能失效。
J、RXENA最终也失效,因为RXENA和RXEOP FIFO卸载使能失效。
根据本发明的一个实施例,只需稍加修改,接收使能逻辑(300)可以扩展到半速率CLK_Y(即CLK_Y频率除以2),或四分之一速率CLK_Y(即CLK_Y频率除以4),或更慢。也可以相应地划分DQS。使用分频时钟使本发明能够扩展到DDR5及更高级别。图39示出了当CLK_Y和DQS除以2时本发明的操作。在本实施例中,串行输入数据可以是8突发数据流,在原始DQS上具有1个前导码和1个后导码。为了更清楚的解释,事件被标记为A-L。
A、用户读取使能由用户生效。由于CLK_Y除以2,因此1个分割CLK_Y的周期相当于原始/全速率CLK_Y的2个周期。因此,对于相同的数据量,用户读取使能仅在2个时钟内有效。
B、RXENA由4位表示。每一位代表一个UI间隔(在1个分割CLK_Y中有4个UI)。因此,当RXENA[3:0]为4'b1111时,意味着RXENA在1个完全分割CLK_Y内生效。当RXENA[3:0]为4'b0011时,则RXENA仅在分割CLK_Y的前半部分生效。在这里,RXENA被保持3个分割CLK_Y周期或10个UI(即具有10位的“1”)以覆盖前导码。
C、RXEOP FIFO加载使能在2个时钟周期内有效,比RXENA少1个周期。
D、当RXEOP FIFO加载使能生效时,RXEOP仅在最后一个周期有效。
E、RXENA[3:0]的4位被串行化,并通过传输数据路径(100)中的类似方案延迟。调整延迟的方式使得串行化RXENA的上升沿放置在原始DQS的第一个上升沿之前,并且在原始DQS的TRise窗口内。
F、RXENA最终通过逻辑门电路由RXEOP FIFO卸载使能和RXENA之间的或(OR)运算获得。
G、门控DQS是通过逻辑门电路在原始DQS与RXENA最终之间进行的和(AND)运算获得。
H、通过在门控DQS的每个上升沿处分割门控DQS来生成分割DQS。通过在门控DQS的每个下降沿上分割门控DQS,以生成90度分割DQS。
I、在门控DQS的第一个下降沿,RXEOP FIFO卸载使能生效。
J、对于接下来的2个时钟周期,RXEOP FIFO是空载的。
K、当卸载指针达到条目1时,从RXEOP FIFO卸载值“1”。这将导致RXEOP FIFO卸载使能在下一个周期中失效。
L、RXEOP FIFO卸载使能失效。RXENA最终也失效,因为RXENA和RXEOP FIFO卸载使能都失效。
因此,接收使能逻辑(300)可以处理任意数量的前导码、后导码和中间码。在DQS时钟域中不需要额外的计数器来计算接收使能信号的宽度。在现有的解决方案中,额外的计数器必须知道不同的内存协议,因为每个内存协议的选通切换次数不同。相反,接收使能逻辑(300)利用包含三个主要信号生成的可变计数指示来满足不同的存储器协议。这一点非常重要,因为DQS是以高速运行,而RXEOP FIFO对于传输突发长度(包括数据周期、前导码和后导码)至关重要。RXENA最终的下降与门控DQS的下降是同步的。因此它不受DQS漂移的影响。此外,RXEOP FIFO可以非常小,例如,只有3个条目。加载指针和卸载指针可以使用单一热码环形计数器来实现快速操作。另外,接收使能逻辑(300)允许以半速率或半频率运行CLK_Y以获得更高的DDR5协议速度。
通过说明书和附图,对本领域技术人员而言,对这些实施例的各种修改均是显而易见的。与本文描述的各种实施例相关联的原理可以应用于其他实施例。因此,对发明的描述无意限于与附图一起示出的实施例,而是提供与本文公开或建议的原理以及新颖性和发明性特征相一致的最广泛范围。因此,凡依照本发明作出的替代方案、修改和变化均落入本发明和所附权利要求书的范围内。
在本发明的所附权利要求和先前描述中,除非上下文由于表达语言或必要含义的需要,否则词语“包括(comprise)”或其变体“包括(comprises)”、“包括(comprising)”均以包括性的含义使用。即,在本发明的各个实施例中,指定所陈述的特征的存在但不排除其他特征的存在或增加。
Claims (13)
1.一种提供与外部存储设备连接的统一架构的通用物理层,所述通用物理层包括:
传输数据路径(100),用于将并行数据传输到所述外部存储设备;以及
接收数据路径(200),用于从所述外部存储设备接收串行数据;
其特征在于:
接收使能逻辑(300),用于屏蔽所述串行数据的选通;
其中,所述传输数据路径(100)和所述接收数据路径(200)分别包括FIFO电路(4)、数据旋转器(2)和用于延迟调谐的可调延迟逻辑,以及用于多通道支持的按位纠偏(10)。
2.根据权利要求1所述的通用物理层,其特征在于,所述传输数据路径(100)还包括配置成选择读取基础索引的时钟交叉复用器(6)。
3.根据权利要求1所述的通用物理层,其特征在于,所述传输数据路径(100)还包括配置成用于串行化所述并行数据的串行器(8)。
4.根据权利要求1所述的通用物理层,其特征在于,所述接收数据路径(200)还包括用于分割所述串行数据的选通的分频器(12)。
5.根据权利要求1所述的通用物理层,其特征在于,所述传输数据路径(100)还包括配置成用于支持多秩数据传输的多秩逻辑。
6.根据权利要求1所述的通用物理层,其特征在于,所述接收数据路径(200)的FIFO电路(4)与多个锁存器相关联,用于处理选通切换、多通道数据传输和纠偏。
7.根据权利要求1所述的通用物理层,其特征在于,所述接收数据路径(200)还包括用于扩展用户读取使能以覆盖选通切换的计数器。
8.根据权利要求1所述的通用物理层,其特征在于,所述接收使能逻辑(300)包括逻辑门电路。
9.一种使用权利要求1所述的通用物理层将并行数据传输到外部存储设备的方法,包括以下步骤:
在传输数据路径(100)处输入所述并行数据;
通过FIFO电路(4)和数据旋转器(2)实现粗延迟调谐,通过可调延迟逻辑实现精细延迟调谐;
串行化所述并行数据以形成串行数据;以及
将所述串行数据传输到外部设备。
10.一种使用权利要求1所述的通用物理层从外部存储设备接收串行数据的方法,所述方法包括以下步骤:
在接收数据路径(200)处输入所述串行数据;
基于包括上升沿和下降沿的选通边沿,利用分频器(12)来划分所述串行数据的选通;以及
通过FIFO电路(4)和数据旋转器(2)实现粗延迟调谐,并且通过可调延迟逻辑实现精细延迟调谐。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括如下步骤:在所述接收数据路径(200)处输入所述串行数据之前,通过接收使能逻辑(300)屏蔽所述串行数据的选通。
12.根据权利要求10所述的方法,其特征在于,所述方法还包括如下步骤:扩展用户读取使能以覆盖由计数器进行的选通切换。
13.根据权利要求11所述的方法,其特征在于,所述屏蔽所述串行数据的选通的步骤包括如下步骤:生成三个信号,包括接收使能、分组接收结束和分组接收结束的FIFO加载使能。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
MYPI2020007156 | 2020-12-29 | ||
MYPI2020007156 | 2020-12-29 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114691556A true CN114691556A (zh) | 2022-07-01 |
Family
ID=82119006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110170188.4A Pending CN114691556A (zh) | 2020-12-29 | 2021-02-05 | 一种提供与外部存储设备连接的通用物理层及其连接方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11373694B1 (zh) |
CN (1) | CN114691556A (zh) |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1080132A1 (ru) * | 1982-11-19 | 1984-03-15 | Предприятие П/Я В-8751 | Устройство дл ввода информации |
US5127002A (en) * | 1991-07-17 | 1992-06-30 | Motorola, Inc. | Time slot assigner for use in a serial communication system |
US20060129869A1 (en) * | 2000-12-30 | 2006-06-15 | Vitesse Semiconductor Corporation | Data de-skew method and system |
US20060126615A1 (en) * | 2004-12-10 | 2006-06-15 | Angtin Matthew J | Transferring data among a logical layer, physical layer, and storage device |
CN101258555A (zh) * | 2005-09-01 | 2008-09-03 | 美光科技公司 | 用于在高速应用中将并行数据转换为串行数据的方法和设备 |
CN101496367A (zh) * | 2005-11-04 | 2009-07-29 | Nxp股份有限公司 | 串行互联多通道的对齐和纠偏 |
US20100058261A1 (en) * | 2008-09-04 | 2010-03-04 | Markov Igor L | Temporally-assisted resource sharing in electronic systems |
US20100306437A1 (en) * | 2009-05-26 | 2010-12-02 | Heath Matthew W | Method and apparatus to selectively extend an embedded microprocessor bus through a different external bus |
US20110063931A1 (en) * | 2009-09-11 | 2011-03-17 | Avago Technologies Enterprise IP (Singapore) Pte. Ltd. | Interfaces, circuits, and methods for communicating with a double data rate memory device |
CN102668378A (zh) * | 2009-12-25 | 2012-09-12 | 佳能株式会社 | 信息处理装置或信息处理方法 |
US20180157287A1 (en) * | 2016-12-06 | 2018-06-07 | Intel Corporation | Providing reduced latency credit information in a processor |
CN111684771A (zh) * | 2017-09-18 | 2020-09-18 | 英特尔公司 | 时间编码数据通信协议、用于生成和接收数据信号的装置和方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5531513B2 (ja) * | 2009-09-01 | 2014-06-25 | 富士通株式会社 | デスタッフ回路および伝送装置 |
US9203387B2 (en) | 2014-02-24 | 2015-12-01 | Taiwan Semiconductor Manufacturing Company, Ltd. | Delay line circuit with variable delay line unit |
-
2021
- 2021-02-05 CN CN202110170188.4A patent/CN114691556A/zh active Pending
- 2021-02-06 US US17/169,430 patent/US11373694B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
SU1080132A1 (ru) * | 1982-11-19 | 1984-03-15 | Предприятие П/Я В-8751 | Устройство дл ввода информации |
US5127002A (en) * | 1991-07-17 | 1992-06-30 | Motorola, Inc. | Time slot assigner for use in a serial communication system |
US20060129869A1 (en) * | 2000-12-30 | 2006-06-15 | Vitesse Semiconductor Corporation | Data de-skew method and system |
US20060126615A1 (en) * | 2004-12-10 | 2006-06-15 | Angtin Matthew J | Transferring data among a logical layer, physical layer, and storage device |
CN101258555A (zh) * | 2005-09-01 | 2008-09-03 | 美光科技公司 | 用于在高速应用中将并行数据转换为串行数据的方法和设备 |
CN101496367A (zh) * | 2005-11-04 | 2009-07-29 | Nxp股份有限公司 | 串行互联多通道的对齐和纠偏 |
US20100058261A1 (en) * | 2008-09-04 | 2010-03-04 | Markov Igor L | Temporally-assisted resource sharing in electronic systems |
US20100306437A1 (en) * | 2009-05-26 | 2010-12-02 | Heath Matthew W | Method and apparatus to selectively extend an embedded microprocessor bus through a different external bus |
US20110063931A1 (en) * | 2009-09-11 | 2011-03-17 | Avago Technologies Enterprise IP (Singapore) Pte. Ltd. | Interfaces, circuits, and methods for communicating with a double data rate memory device |
CN102668378A (zh) * | 2009-12-25 | 2012-09-12 | 佳能株式会社 | 信息处理装置或信息处理方法 |
US20180157287A1 (en) * | 2016-12-06 | 2018-06-07 | Intel Corporation | Providing reduced latency credit information in a processor |
CN111684771A (zh) * | 2017-09-18 | 2020-09-18 | 英特尔公司 | 时间编码数据通信协议、用于生成和接收数据信号的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220208240A1 (en) | 2022-06-30 |
US11373694B1 (en) | 2022-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5905766A (en) | Synchronizer, method and system for transferring data | |
EP2036090B1 (en) | Synchronous memory read data capture | |
US8527676B2 (en) | Reducing latency in serializer-deserializer links | |
US7796652B2 (en) | Programmable asynchronous first-in-first-out (FIFO) structure with merging capability | |
US6654897B1 (en) | Dynamic wave-pipelined interface apparatus and methods therefor | |
KR100457868B1 (ko) | 엘러스틱 인터페이스 장치 및 그 방법 | |
US7555590B2 (en) | Fast buffer pointer across clock domains | |
KR100470995B1 (ko) | 클럭수신 동기회로를 갖는 멀티클럭 도메인 데이터 입력처리장치 및 그에 따른 클럭신호 인가방법 | |
US7292500B2 (en) | Reducing read data strobe latency in a memory system | |
US4979190A (en) | Method and apparatus for stabilized data transmission | |
US7783911B2 (en) | Programmable bus driver launch delay/cycle delay to reduce elastic interface elasticity requirements | |
KR20200088650A (ko) | 클럭 신호에 동기되는 신호 생성 회로 및 이를 이용하는 반도체 장치 | |
US20070201286A1 (en) | Input circuit of a semiconductor memory device and method of controlling the same | |
US7224638B1 (en) | Reliability clock domain crossing | |
US20030141908A1 (en) | Clock ratio dsta synchronizer | |
US8023608B2 (en) | Communication system using multi-phase clock signals | |
CN109062538B (zh) | 环形先进先出缓冲器及数据传输接口、系统、方法 | |
CN114691556A (zh) | 一种提供与外部存储设备连接的通用物理层及其连接方法 | |
CN114978202B (zh) | 一种支持多模式串行化的i/o发送器电路 | |
US8718215B2 (en) | Method and apparatus for deskewing data transmissions | |
EP3871062A2 (en) | Asynchronous asic | |
KR20020058912A (ko) | 레지스터 제어 지연고정루프 |
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 |