CN117056253A - 一种统一时钟频率的方法和装置 - Google Patents
一种统一时钟频率的方法和装置 Download PDFInfo
- Publication number
- CN117056253A CN117056253A CN202210488354.XA CN202210488354A CN117056253A CN 117056253 A CN117056253 A CN 117056253A CN 202210488354 A CN202210488354 A CN 202210488354A CN 117056253 A CN117056253 A CN 117056253A
- Authority
- CN
- China
- Prior art keywords
- chip
- cache
- rate
- phase
- serial interface
- 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 71
- 230000015654 memory Effects 0.000 claims abstract description 123
- 230000009977 dual effect Effects 0.000 claims abstract description 34
- 230000005540 biological transmission Effects 0.000 claims description 93
- 210000001503 joint Anatomy 0.000 claims description 6
- 230000001360 synchronised effect Effects 0.000 abstract description 12
- 229920000729 poly(L-lysine) polymer Polymers 0.000 description 50
- 101100082028 Arabidopsis thaliana PLL2 gene Proteins 0.000 description 21
- 238000012545 processing Methods 0.000 description 21
- 101100350613 Arabidopsis thaliana PLL1 gene Proteins 0.000 description 20
- 238000013461 design Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 7
- 230000006855 networking Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 101100476979 Rhodobacter capsulatus sdsA gene Proteins 0.000 description 5
- 238000004590 computer program Methods 0.000 description 5
- 101100520018 Ceratodon purpureus PHY2 gene Proteins 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000011161 development Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101100350628 Arabidopsis thaliana PLL3 gene Proteins 0.000 description 2
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 2
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100520025 Avena sativa PHYA3 gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06F13/1689—Synchronisation and timing concerns
-
- 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
-
- 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
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0002—Serial port, e.g. RS232C
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
Abstract
本申请提供一种统一时钟频率的方法和装置,涉及芯片技术领域,能够在使用串行接口扩展内存时,统一SerDes和DRAM的频率,***工作在同步时钟域,实现低延时。方案为:与主芯片中的串行接口耦合的第一锁相环和与缓存芯片中的串行接口耦合的第二锁相环的时钟同源,缓存芯片中的双列直插式存储模块接口和缓存芯片中的串行接口与第二锁相环耦合。主芯片和缓存芯片进行第一次速率协商,确定第一目标速率;主芯片以第一目标速率初始化缓存芯片,确定缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率;将第一锁相环和第二锁相环的时钟频率均配置为与第二目标速率对应的时钟频率,完成第二次速率协商。本申请实施例用于串行接口扩展DRAM***。
Description
技术领域
本申请实施例涉及芯片技术领域,尤其涉及一种统一时钟频率的方法和装置。
背景技术
目前,双倍数据速率(Double data rate,DDR)体系速度升级缓慢,业界通常使用串行接口,即串行器-解串器(SERializer and DESerializer,SerDes)扩展RRD模组或者其他内存介质提升内存(memory)带宽的速率。
在通过SerDes扩展动态随机存取存储器(Dynamic Random-access memory,DRAM)实现扩展内存的方案中,通常包括主中央处理单元(Central Processing Unit,CPU)芯片、缓存芯片和DRAM芯片。主CPU芯片和缓存芯片间为SerDes串行接口,缓存芯片和DRAM芯片之间为双列直插式存储模块(Dual-Inline-Memory-Modules,DIMM)接口。SerDes的传输频点和DRAM的传输频点是两个体系,没有关联性。
具体来说,由于DRAM的DIMM接口在应用场景中,存在多种传输频点。当DRAM的插槽上***DIMM芯片后,***才能确定DRAM芯片工作的频点。而后,***根据该频点配置缓存芯片中锁相环(Phase Locked Loop,PLL)3和DDR的时钟clk_ddr的时钟频率为与该频点对应的指定频率。而在SerDes接口侧,当前串行协议也通常工作在固定的频点上。因此,在目前的技术中,缓存芯片中的SerDes串行接口侧的时钟clk_sds与DDR的时钟clk_ddr通常是异步时钟,数据流需要在发送(transmit,TX)方向和接收(receive,RX)方向分别跨越时钟域(clock domain)进行异步处理。而且,通常主CPU芯片中的***总线时钟clk_bus和SerDes串行接口的工作时钟clk_sds也是异步时钟,数据在TX方向和RX方向也需进行异步处理。这样,一个数据流在TX方向和RX方向需要跨4次异步时钟域。况且,如果主CPU芯片和缓存芯片不是同源时钟时,一个数据流需跨6次异步时钟域,数据流跨越异步时钟域带来的延时较大。
发明内容
本申请实施例提供一种统一时钟频率的方法和装置,能够在使用串行接口扩展内存时,统一SerDes和DRAM的频率,使得整个***工作在同步时钟域,减少数据流跨越异步时钟次数,最终达成低延时的目标。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种统一时钟频率的方法,应用于通过串行接口扩展内存的***,***包括主芯片、缓存芯片和与缓存芯片耦合的至少一个内存芯片,与主芯片中的串行接口耦合的第一锁相环和与缓存芯片中的串行接口耦合的第二锁相环的时钟同源,缓存芯片中的双列直插式存储模块接口和缓存芯片中的串行接口均与第二锁相环耦合,该方法包括:
***控制主芯片和缓存芯片完成串行接口初始化后,执行主芯片和缓存芯片间的第一次速率协商,确定主芯片访问缓存芯片的第一目标速率;***控制主芯片以第一目标速率对缓存芯片进行初始化完成后,确定缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率;***将主芯片中的第一锁相环的时钟频率和缓存芯片中的第二锁相环的时钟频率均配置为与第二目标速率对应的时钟频率,并控制主芯片与缓存芯片完成第二次速率协商。
其中,串行接口可理解为SerDes,锁相环可以是PLL,双列直插式存储模块可以是DIMM。
由此,在使用串行接口扩展内存的***上,本申请中***的所有SerDes使用同一个同源参考时钟,DRAM的工作时钟,来自于跟SerDes同一个PLL。也就相当DRAM和SerDes的时钟是同源的。
在同源时钟的改动的基础上,在***启动过程中,本申请采用两次速率协商的方式完成速率协商,以达到DRAM和SerDes的频点统一的目的。其中,第一次速率协商中,主芯片和缓存芯片可先协商到一个低频点速率,即第一目标速率。在这个速率下,主芯片可对缓存芯片进行初始化,并获取缓存芯片的信息,即获取缓存芯片上***的内存芯片的速率。主芯片在获得缓存芯片的信息时,可确定DRAM和SerDes共同工作的频点,即为内存芯片***插槽时的DIMM接口的最高速率对应的频点。而后,主芯片初始化主芯片中的PLL和缓存芯片中的PLL的频点为内存芯片的速率对应的频点。基于初始化后的PLL的频点,使得主芯片和缓存芯片进行第二次速率协商,在协商成功时,也就使得DRAM和SerDes协商到了一个统一的目标速率,即第二目标速率。完成两次速率协商后,主芯片、缓存芯片和内存芯片间可开始业务传输。
这样一来,在主芯片和缓存芯片使用公共的参考时钟,且主芯片和缓存芯片的最高速率与缓存芯片上的DIMM接口的内存芯片支持的最高速率相关。当DIMM接口的内存芯片支持的最高速率不同时,主芯片和缓存芯片的串行接口SerDes的传输速率也会同步发生变化。这样,数据在跨多个芯片时,仍然工作在同步时钟域,无异步处理的延时消耗,可降低***在异步时钟额外增加的延时。
在一种可能的设计中,控制主芯片和缓存芯片完成串行接口初始化后,执行主芯片和缓存芯片间的第一次速率协商,以确定主芯片访问缓存芯片的第一目标速率包括:控制主芯片中的第一锁相环和缓存芯片中的第二锁相环根据同源的参考时钟进行倍频处理,得到第一锁相环工作的时钟频率和第二锁相环工作的时钟频率,第一锁相环工作的时钟频率和第二锁相环工作的时钟频率相同;根据第一锁相环工作的时钟频率确定主芯片中的串行接口的传输速率,以及根据第二锁相环工作的时钟频率确定缓存芯片中的串行接口的传输速率;根据主芯片的串行接口的传输速率和缓存芯片中的串行接口的传输速率执行主芯片和缓存芯片间的第一次速率协商,并在协商成功时确定主芯片中的串行接口的传输速率和缓存芯片中的串行接口的传输速率为主芯片访问缓存芯片的第一目标速率。
需理解,在主芯片和缓存芯片上电完成串行接口的初始化后,在主芯片中的第一锁相环和缓存芯片中的第二锁相环中的时钟频率根据同源的参考时钟频率确定后,相当于确定了主芯片的传输速率和缓存芯片的传输速率,且传输速率相同。这样,当主芯片根据确定的传输速率与缓存芯片进行速率协商成功后,相当于确定了主芯片可访问缓存芯片的第一目标速率。或者说,主芯片和缓存芯片间协商到了一个低频速率,主芯片可通过该低频速率访问缓存芯片。
在一种可能的设计中,控制主芯片以第一目标速率对缓存芯片进行初始化完成后,确定缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率包括:控制主芯片的串行接口以第一目标速率访问缓存芯片的寄存器,以对缓存芯片的寄存器进行初始化;控制缓存芯片通过双列直插式存储模块接口访问与缓存芯片对接的内存芯片,确定双列直插式存储模块接口支持的最高速率,将双列直插式存储模块接口支持的最高频率作为第二目标速率;控制缓存芯片将第二目标速率记录在缓存芯片的寄存器中。
考虑到缓存芯片的块DIMM接口上***的内存芯片支持的访问速率可能不同。当主芯片可访问缓存芯片时,缓存芯片可将DIMM接口当前***的内存芯片支持的访问速率记录在缓存芯片的寄存器中。这样,主芯片可从该寄存器中确定内存芯片支持的最高速率(第二目标速率),以将主芯片和缓存芯片的时钟频率调整为与该最高速率匹配的时钟频率,将避免跨异步时钟域,减少数据传输的延时。
在一种可能的设计中,将主芯片中的第一锁相环的时钟频率和缓存芯片中的第二锁相环的时钟频率均配置为与第二目标速率对应的时钟频率,并控制主芯片与缓存芯片完成第二次速率协商包括:控制主芯片从缓存芯片的寄存器中读取第二目标速率;控制主芯片根据第二目标速率初始化第一锁相环的时钟频率和第二锁相环的时钟频率,使第一锁相环的时钟频率和第二锁相环的时钟频率为与第二目标速率对应的时钟频率;控制主芯片的串行接口和缓存芯片的串行接口以第二目标速率进行第二次速率协商。
这样一来,主芯片和缓存芯片中的SerDes,和缓存芯片与内存芯片间的DRAM将工作在统一的时钟频率(频点/第二目标速率)上,且在第一PLL和第二PLL为同源时钟,且缓存芯片中的时钟和串行接口也为同源时钟的基础上,主芯片在通过缓存芯片访问内存芯片时,将避免跨异步时钟域,减少数据传输的延时。
在一种可能的设计中,主芯片的串行接口和缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。也就是说,主芯片和缓存芯片的串行接口进行速率协商时,不会限定只支持某些固定频率(例如PCIE的8Gbps、16Gpbs等)的协商,本申请这种两次速率协商过程,可支持支持任意指定的整数速率进行协商。
第二方面,提供一种通过串行接口扩展内存的***,***包括主芯片、缓存芯片和与缓存芯片耦合的至少一个内存芯片,与主芯片中的串行接口耦合的第一锁相环和与缓存芯片中的串行接口耦合的第二锁相环的时钟同源,缓存芯片中的双列直插式存储模块接口和缓存芯片中的串行接口均与第二锁相环耦合,其中:
主芯片,用于和缓存芯片完成串行接口初始化后,和缓存芯片完成第一次速率协商,确定主芯片访问缓存芯片的第一目标速率;以第一目标速率对缓存芯片进行初始化完成后,确定缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率;将主芯片中的第一锁相环的时钟频率配置为与第二目标速率对应的时钟频率;缓存芯片,用于将缓存芯片中的第二锁相环的时钟频率均配置为与第二目标速率对应的时钟频率;主芯片,还用于与缓存芯片完成第二次速率协商。
第二方面以及第二方面的任一种可能的设计的有益效果可参见对第一方面的说明。
在一种可能的设计中,主芯片,用于控制第一锁相环L根据同源的参考时钟进行倍频处理,得到第一锁相环工作的时钟频率;缓存芯片,用于控制第二锁相环根据同源的参考时钟进行倍频处理,得到第二锁相环工作的时钟频率,第一锁相环工作的时钟频率和第二锁相环工作的时钟频率相同;主芯片,用于根据第一锁相环工作的时钟频率确定主芯片中的串行接口的传输速率;缓存芯片,用于根据第二锁相环工作的时钟频率确定缓存芯片中的串行接口的传输速率;主芯片,用于根据主芯片的串行接口的传输速率和缓存芯片中的串行接口的传输速率执行主芯片和缓存芯片间的第一次速率协商;在协商成功时确定主芯片中的串行接口的传输速率为主芯片访问缓存芯片的第一目标速率;缓存芯片,用于在协商成功时确定缓存芯片中的串行接口的传输速率为主芯片访问缓存芯片的第一目标速率。
在一种可能的设计中,主芯片,用于控制主芯片的串行接口以第一目标速率访问缓存芯片的寄存器,以对缓存芯片的寄存器进行初始化;缓存芯片,用于通过双列直插式存储模块接口访问与缓存芯片对接的内存芯片,确定双列直插式存储模块接口支持的最高速率,将双列直插式存储模块接口支持的最高频率作为第二目标速率;将第二目标速率记录在缓存芯片的寄存器中。
在一种可能的设计中,主芯片,用于从缓存芯片的寄存器中读取第二目标速率;根据第二目标速率初始化第一锁相环的时钟频率和第二锁相环的时钟频率,使第一锁相环的时钟频率和第二锁相环的时钟频率为与第二目标速率对应的时钟频率;控制主芯片的串行接口和缓存芯片的串行接口以第二目标速率进行第二次速率协商。
在一种可能的设计中,主芯片的串行接口和缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。
第三方面,提供一种频率控制装置,频率控制装置应用于通过串行接口扩展内存的***,***包括主芯片、缓存芯片和与缓存芯片耦合的至少一个内存芯片,与主芯片中的串行接口耦合的第一锁相环和与缓存芯片中的串行接口耦合的第二锁相环的时钟同源,缓存芯片中的双列直插式存储模块接口和缓存芯片中的串行接口均与第二锁相环耦合,频率控制装置包括:
速率协商单元,用于控制主芯片和缓存芯片完成串行接口初始化后,控制主芯片和缓存芯片执行主芯片和缓存芯片间的第一次速率协商,以确定主芯片访问缓存芯片的第一目标速率;速率获取单元,用于控制主芯片以第一目标速率对缓存芯片进行初始化完成后,确定缓存芯片与内存芯片间的DIMM接口支持的第二目标速率;速率协商单元,还用于将主芯片中的第一PLL的时钟频率和缓存芯片中的第二PLL的时钟频率均配置为与第二目标速率对应的时钟频率,并控制主芯片与缓存芯片完成第二次速率协商。
第三方面以及第三方面的任一种可能的设计的有益效果可参见对第一方面的说明。
在一种可能的设计中,速率协商单元用于:控制主芯片中的第一锁相环和缓存芯片中的第二锁相环根据同源的参考时钟进行倍频处理,得到第一锁相环工作的时钟频率和第二锁相环工作的时钟频率,第一锁相环工作的时钟频率和第二锁相环工作的时钟频率相同;根据第一锁相环工作的时钟频率确定主芯片中的串行接口的传输速率,以及根据第二锁相环工作的时钟频率确定缓存芯片中的串行接口的传输速率;根据主芯片的串行接口的传输速率和缓存芯片中的串行接口的传输速率执行主芯片和缓存芯片间的第一次速率协商,并在协商成功时确定主芯片中的串行接口的传输速率和缓存芯片中的串行接口的传输速率为主芯片访问缓存芯片的第一目标速率。
在一种可能的设计中,速率获取单元用于:控制主芯片的串行接口以第一目标速率访问缓存芯片的寄存器,以对缓存芯片的寄存器进行初始化;控制缓存芯片通过双列直插式存储模块接口访问与缓存芯片对接的内存芯片,确定双列直插式存储模块接口支持的最高速率,将双列直插式存储模块接口支持的最高频率作为第二目标速率;控制缓存芯片将第二目标速率记录在缓存芯片的寄存器中。
在一种可能的设计中,速率协商单元用于:控制主芯片从缓存芯片的寄存器中读取第二目标速率;控制主芯片根据第二目标速率初始化第一锁相环的时钟频率和第二锁相环的时钟频率,使第一锁相环的时钟频率和第二锁相环的时钟频率为与第二目标速率对应的时钟频率;控制主芯片的串行接口和缓存芯片的串行接口以第二目标速率进行第二次速率协商。
在一种可能的设计中,主芯片的串行接口和缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。
第四方面,提供一种频率控制装置,包括至少一个处理器,至少一个处理器与存储器相连,至少一个处理器用于读取并执行存储器中存储的程序,以使得该装置执行如上述第一方面或第一方面的任一项所述的方法。
第五方面,提供一种频率控制装置,频率控制装置包括主芯片、缓存芯片和内存芯片,主芯片与存储器耦合,用于读取并执行所述存储器中存储的程序指令,以实现如上述第一方面或第一方面的任一项所述的方法。
第六方面,提供一种频率控制装置,该装置包含在电子设备中,该装置具有实现上述任一方面及任一项可能的实现方式中电子设备行为的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,速率协商模块或单元和速率获取模块或单元等。
第七方面,提供一种计算机可读存储介质,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述第一方面以及第一方面的任一种可能的设计所述的方法。
第八方面,提供一种计算机程序产品,当计算机程序产品在计算机或处理器上运行时,使得计算机或处理器执行上述第一方面及任一项可能的实现方式中的方法。
可以理解的是,上述提供的任一种频率控制装置、计算机可读存储介质或计算机程序产品等均可以应用于上文所提供的对应的方法,因此,其所能达到的有益效果可参考对应的方法中的有益效果,此处不再赘述。
本申请的这些方面或其他方面在以下的描述中会更加简明易懂。
附图说明
图1为本申请实施例提供的一种使用SerDes扩展DRAM的方案示意图;
图2为本申请实施例提供的一种串行接口扩展DRAM***组网示意图;
图3为本申请实施例提供的一种***组网结构示意图;
图4为本申请实施例提供的一种统一时钟频率的方法流程示意图;
图5为本申请实施例提供的一种统一时钟频率的方法流程示意图;
图6为本申请实施例提供的一种通过串行接口扩展内存的***结构示意图;
图7为本申请实施例提供的一种通过串行接口扩展内存的***结构示意图;
图8为本申请实施例提供的一种串行接口扩展内存的***结构示意图。
具体实施方式
为了便于理解,示例的给出了部分与本申请实施例相关概念的说明以供参考。如下所示:
DRAM:动态随机存取存储器,是最为常见的***内存。DRAM能将数据保持很短的时间。为了保持数据,DRAM使用电容存储,需隔一段时间刷新(refresh)一次,如果DRAM中的存储单元没有被刷新,存储的信息就会丢失,例如关机就会丢失数据。
DDR:双倍数据速率,目前的DDR1-DDR5是内存的代数,不同代数的内存,传输速率不同,理论上来说,DDR1代表一代。DDR2的传输速率是DDR1的2倍,DDR5的传输速率是DDR3的2倍。
DIMM:可理解为DRAM上的插槽***的内存条,可提供64位数据通道。
SerDes:是一种主流的时分多路复用、点对点的串行通信技术。即在发送端多路低速并行信号被转换成高速串行信号,经过传输媒体,最后在接收端将高速串行信号重新转换成低速并行信号。这种点对点的串行通信技术充分利用传输媒体的信道容量,减少所需的传输信道和器件引脚数目,提升信号的传输速度,从而大大降低通信成本。
异步时钟:当两个时钟间的相位是固定关系的,可以称这两个时钟为同步时钟(synchronous clock)。一般同源,如由同一个混合模式时钟管理程序(Mixed Mode ClockManager,MMCM)或锁相环(Phase Locked Loop,PLL)产生的两个时钟可以称为同步时钟。因此,可以将主时钟和与之对应的衍生时钟约束成同一个时钟组。而无法判定两个时钟间相位时,可以称这两个时钟为异步时钟(asynchronous clocks)。两个来自不同晶振的时钟,一定是异步时钟。通常情况下,设计中不同的主时钟肯定是异步时钟,因此可以将这两个主时钟及其衍生时钟约束成不同的时钟组。
PLL:利用外部输入的参考信号控制环路内部振荡信号的频率和相位。由于PLL可以实现输出信号频率对输入信号频率的自动跟踪,因此PLL通常用于闭环跟踪电路。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在整个计算机***中,内存可谓是决定整机性能的关键因素,光有快的CPU,没有好的内存***与之配合,CPU性能再优秀也无从发挥。目前,服务器CPU核心(从8核到126核)增长了16倍,而Pin针脚数量和内存通道数(从4通道到8通道)仅增长了2倍。可以看出,内存带宽的发展速率跟不上CPU核心的发展速度,平均每核心的DRAM内存带宽,呈现不断下降的趋势。
标准的DDR模组通常采用64位结构,一次可传输64bit二进制数据,对应的是64位并行的内存总线。然而,由于先天限制,并行总线很难实现跨越性的性能提升。首先,并行总线很容易相互干扰,令传输信号不稳定,频率很难迅速提升,内存规格按部就班地缓慢提升并不仅仅是针对市场消费考虑,更多是技术现实使然。其次,内存模组发送出的并行数据要求在同一个传输节拍中同步到达接收端,这就要求印制电路板(Printed Circuit Board,PCB)中的64条线路长度保持严格一致,对PCB设计提出苛刻的要求。而随着内存频率不断提升,允许的线路长度误差越来越小,最终将导致设计线路成为一大难题。从这个趋势来看,并行内存的发展空间有限,最终会向窄位宽和串行化的方向发展。第三,同样由于布线的原因,DDR体系最多只能实现双通道,必须用到128条数据线路,占据大量的PCB面积。即使要实现4通道,主板也没有较大的PCB空间可以利用,数据同步化问题会带来更多的困扰。种种缺陷造成DDR体系速度升级维持缓慢,于是业界开始尝试使用串行接口来扩展DDR模组或者其它内存介质。
目前,可使用开放内存接口(Open Memory Interface,OMI)技术,提升***的内存带宽和容量。针对DDR体系,旨在通过两种方式解决这些近内存挑战:迁移到SerDes,以及使用DIMM控制器。即SerDes连接取代了当前的DDR式接口,以更少的信号提供更高的速度。且OMI基本上从主机移除了内存控制器,将内存控制器整合于内存DIMM上,简化了处理器设计。而且,该控制器可以连接到许多不同类型的内存,充当了内存和处理器之间的桥梁。
如图1所示,在使用SerDes扩展DRAM的方案中,芯片1为主芯片(主CPU芯片),芯片2为缓存芯片,芯片3为内存芯片,一个芯片2上可耦合多个芯片3,以达到扩展内存的目的。芯片1和芯片2之间为SerDes串行接口,芯片2和芯片3之间的接口为DIMM并行接口。
现有的方案中,SerDes的工作频点和DRAM的工作频点没有联系。芯片1中包括总线时钟clk_bus和逻辑时钟(clk_logic),SerDes1(串行接口1)接口侧的PLL1的工作时钟clk_sds1的参考时钟为REF_CLK1,芯片2中SerDes2(串行接口2)接口侧的PLL2的工作时钟clk_sds2的参考时钟为REF_CLK2。芯片2中DIMM接口耦合的PLL3触发DDR物理接口(PhysicalInterface,PHY)2的工作时钟clk_ddr与clk_sds2的参考时钟同源,均为REF_CLK2。
其中,DIMM接口在应用场景中,存在多种频点对应的传输速率,例如DDR5的传输速率有4.8GT/s、5.200GT/s、6.800GT/s和8.400GT/s等。当DRAM的插槽上***DIMM内存条(DDRPHY3)后,芯片1才能确定该DRAM的工作频点。芯片1才能根据DRAM的工作频点配置芯片2中的PLL3的触发DDR PHY2的工作时钟clk_ddr为该工作频点。而芯片2的SerDes2接口侧,当前的串行协议也通常工作在固定的频点上,例如高速串行计算机扩展总线标准(peripheralcomponent interconnect express,PCIE)协议的数据速率(data rate)通常存在多个固定频点的传输速率,例如2.5GT/s、5GT/s、8GT/s、16GT/s和32GT/s。
因此,DRAM和SerDes的工作频点并不统一。也就是说,在目前使用SerDes扩展DRAM的方案中,芯片2中的clk_sds2与clk_ddr通常是异步时钟,数据流需要在TX方向和RX方向分别跨越时钟域,即图1中示出的数据流在经过③指示的TX方向和④指示的RX方向需要进行异步处理。此外,通常,芯片1中的***总线时钟clk_bus与芯片1中的串行接口SerDes1的工作时钟clk_sds1也是异步时钟,当数据流经过图1中的①指示的TX方向和⑥指示的RX方向也需要进行异步处理。
而且,如果芯片1中的SerDes1和芯片2中的SerDes2共用参考时钟,且clk_sds1和clk_sds2的频点统一时,数据流在经过②指示的TX方向和⑤指示的RX方向时,不需要进行异步处理。如果芯片1中的SerDes1和芯片2中的SerDes2不共用参考时钟(PLL1使用REF_CLK1,PLL2使用REF_CLK2)时,数据流在经过②指示的TX方向和⑤指示的RX方向时,就需要进行异步处理。
这样一来,在未统一DRAM和SerDes的工作频点时,如果芯片1和芯片2使用同源时钟,数据流需要跨4次异步时钟域。如果芯片1和芯片2未使用同源时钟,数据流需要跨6次异步时钟域。在这两种情况下,都会额外增加延时,延时基本无法做到小于10ns。
因此,本申请提供一种统一时钟频率的方法和装置,能够解决在在使用串行接口扩展内存时,统一DRAM和SerDes的频率,使得整个***工作在同步时钟域,减少数据流跨越异步时钟次数,最终达成低延时的目标。
其中,在使用串行接口扩展内存的***上,本申请中***的所有SerDes使用同一个同源参考时钟,DRAM的工作时钟,来自于跟SerDes同一个PLL。也就相当DRAM和SerDes的时钟是同源的。
在同源时钟的改动的基础上,在***启动过程中,本申请采用两次速率协商的方式完成速率协商,以达到DRAM和SerDes的频点统一的目的。其中,第一次速率协商中,主芯片和缓存芯片可先协商到一个低频点速率,在这个速率下,主芯片可对缓存芯片进行初始化,并获取缓存芯片的信息,即获取缓存芯片上***的内存芯片的速率。主芯片在获得缓存芯片的信息时,可确定DRAM和SerDes共同工作的频点,即为内存芯片***插槽时的DIMM接口的最高速率对应的频点。而后,主芯片初始化主芯片中的PLL和缓存芯片中的PLL的频点为内存芯片的速率对应的频点。基于初始化后的PLL的频点,使得主芯片和缓存芯片进行第二次速率协商,在协商成功时,也就使得DRAM和SerDes协商到了一个统一的目标速率。完成两次速率协商后,主芯片、缓存芯片和内存芯片间可开始业务传输。
这样一来,在主芯片和缓存芯片使用公共的参考时钟,且主芯片和缓存芯片的最高速率与缓存芯片上的DIMM接口的内存芯片支持的最高速率相关。当DIMM接口的内存芯片支持的最高速率不同时,主芯片和缓存芯片的串行接口SerDes的传输速率也会同步发生变化。这样,数据在跨多个芯片时,仍然工作在同步时钟域,无异步处理的延时消耗,可降低***在异步时钟额外增加的延时。
需要说明的是,通常,传输速率和传输频率(频点)之间存在一定的倍数关系。例如在前端总线(Front Side Bus,FSB)采用的“quad pumped”四倍并发技术进行了改良,该quad pumped为在每个总线时钟周期内传送四次数据。也就是说,总线的数据传输速率等于总线时钟频率的4倍。例如如果总线是333MHz的时钟频率,该总线的数据传输速率为1332MT/s,即为1.332GT/s。
当本申请在确定了SerDes的传输速率和DIMM接口的传输速率一致时,也就相当于确定了PLL1和PLL2的时钟时钟频率一致,再结合PLL1和PLL2为同源参考时钟的情况下,数据在跨主芯片、缓存芯片和内存芯片传输时,不需要进行跨时钟域处理。
本申请提供的统一时钟频率的方法可应用于串行接口扩展DRAM***组网。该组网结构可如图2所示,包括三种类型芯片。其中芯片1为主芯片,或主CPU芯片;芯片2为缓存芯片;芯片3为DRAM内存芯片,包括图2中示意出的芯片3_0、芯片3_1、芯片3_2和芯片3_3。芯片1位于主板上,芯片2和芯片3位于扣板上。当然,图2示出的组网为一种示意形态,芯片2和芯片也可以直接安装在主板上。
芯片1和芯片2之间为串行接口(SerDes),芯片2和芯片3之间的接口为DIMM接口(DIMM并行接口)。芯片1可通过芯片2扩展更多的DIMM接口,即芯片3的数量不限于图2中示出的4个。这种通过串行接口扩展DRAM的方式,可在芯片2中扩展更多的DIMM接口,从而扩大DRAM容量。当串行接口的带宽大于直连的DIMM接口的带宽时,还可以增加与芯片2耦合的芯片3的数量,使得芯片1获得更大的DRAM访问带宽。
其中,芯片2作为缓存芯片,其作用就是为了扩展内存,使得芯片1可访问更多的芯片3。在一些实施例中,芯片1的串行接口也可以为至少2个,一个串行接口耦合到一个芯片2上,以获得更大的DRAM容量。
在本申请图2提供的一种***组网的基础上,本申请的***组网结构具体可以参考图3示出的架构。其中,clk_bus为芯片1中的总线时钟;PLL1为芯片1中的串行接口SerDes1的时钟频率的锁相环,clk_sds1为芯片1中的串行接口SerDes1收发数据的时钟;PLL2为芯片2中的串行接口SerDes2的时钟频率的锁相环,clk_sds2为芯片2中的串行接口SerDes2收发数据的时钟;clk_ddr为芯片2中的DDR PHY2的时钟,或者说芯片2中的DIMM接口的时钟。
需理解,本申请统一SerDes和DRAM时钟频率目的,是为了降低整个***的延时。而降低延时的关键在于,减少数据通路跨异步时钟域。通过本申请的速率统一方式可达到频率的统一,能够使得芯片1、芯片2和芯片3的接口逻辑电路工作在同步时钟域,从而达到不跨异步时钟域的目的。
参考图3,本申请中,芯片1和芯片2的串行接口SerDes1和SerDes2使用公共的参考时钟REF_CLK。本申请可通过软件将PLL1的时钟源和PLL2的时钟源配置为同一个考时钟REF_CLK,使得PLL1和PLL2同源时,可使得芯片1中的SerDes1和芯片2中的SerDes2工作在相同的频点,PLL1和PLL2可起到锁定相同频点的作用。其中该时钟配置过程可以是通过芯片1实现的。由于PLL1和PLL2共用参考时钟,clk_sds1和clk_sds2的频率相同,只有相位的差别。因此,当芯片1的SerDes1输出的数据在芯片2的SerDes2上采样时,只需要调整相位采样即可,不需要进行跨时钟域异步处理。
而且,芯片2中的clk_sds2和clk_ddr的时钟都来自于PLL2,clk_sds2和clk_ddr具有相同的频率关系或者具有倍频关系,总之clk_sds2和clk_ddr处于相同的时钟域。因此,串行接口的控制器(图3中未示出)的数字逻辑与DDR的控制器的数字逻辑处于同步时钟域,不需要进行跨时钟异步处理。
因此,数据流从芯片1经过芯片2达到芯片3的整个通路中,都不需要经过跨时钟域处理,可达到减小延时的目的。
下面对本申请统一时钟频率的方法进行介绍,参考图4,该方法应用于通过串行接口扩展内存的***,该***包括主芯片、缓存芯片和与缓存芯片耦合的至少一个内存芯片。与主芯片中的串行接口耦合的第一PLL和与缓存芯片中的串行接口耦合的第二PLL的时钟同源。缓存芯片中的DIMM接口和缓存芯片中的串行接口均与第二PLL耦合。该方法包括:
401、***控制主芯片和缓存芯片完成串行接口初始化后,执行主芯片和缓存芯片间的第一次速率协商,以确定主芯片访问缓存芯片的第一目标速率。
图4中的主芯片相当于图2和图3中的芯片1,图4中的缓存芯片相当于图2和图3中的芯片2,图4中的内存芯片相当于图2和图3中的芯片3。图4中的第一PLL相当于图3中的PLL1,图4中的第二PLL相当于图3中的PLL2。
在一些实施例中,在***上电后,主芯片可控制主芯片和缓存芯片完成串行接口的初始化,初始化过程中,主芯片可控制第一PLL和第二PLL可根据同源的参考时钟REF_CLK进行时钟频率配置,配置后第一PLL的时钟频率和第二PLL的时钟频率相同,从而使得主芯片的串行接口SerDes1和缓存芯片的串行接口SerDes2的速率相同,均为第一目标速率。这时,主芯片可控制主芯片的串行接口SerDes1和缓存芯片的串行接口SerDes2启动速率协商,执行第一次速率协商。如果协商成功,主芯片确定主芯片访问缓存芯片的速率为第一目标速率。
402、***控制主芯片以第一目标速率对缓存芯片进行初始化完成后,确定缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率。
主芯片可通过串行接口SerDes1和SerDes2访问缓存芯片中的寄存器,对缓存芯片中的寄存器进行初始化,以便缓存芯片中的寄存器可被访问,包括读操作、写操纵和改写操作。此外,主芯片还可对缓存芯片中的DIMM接口进行初始化,得到缓存芯片的DIMM接口中***的内存芯片支持的最高速率,将该最高速率记录在缓存芯片的寄存器中。这里的内存芯片支持的最高速率记为第二目标速率。
403、***将主芯片中的第一锁相环的时钟频率和缓存芯片中的第二锁相环的时钟频率均配置为与第二目标速率对应的时钟频率,并控制主芯片与缓存芯片完成第二次速率协商。
主芯片可访问缓存芯片的寄存器,得到第二目标速率,并将第一PLL和第二PLL的时钟频率配置为与第二目标速率对应的时钟频率,并根据第二目标速率使得主芯片的串行接口SerDes1和缓存芯片的串行接口SerDes2进行第二次速率协商,协商成功后,频率统一过程结束。***中的SerDes核DRAM工作在了统一的频点上。
由此,在通过SerDes接口扩展DDR的***中,本申请可通过主芯片中的第一PLL和第二PLL为同源时钟,且DRAM的时钟耦合在第二PLL的基础上,通过两次速率协商,可使得第一PLL、第二PLL和DRAM的时钟频率统一,数据在该***中跨芯片传输时,仍然工作在同步时钟域,可降低***延时。
在图4示出的***的基础上,下面对本申请提供的统一时钟频率的方法进一步进行介绍。
本申请提供一种统一时钟频率的方法,如图5所示,该方法包括:
501、***确定主芯片、缓存芯片和至少一个内存芯片上电。
例如,该***在终端设备中,当用户对终端设备执行开机操作时,主板上电后,主板上的主芯片、缓存芯片和至少一个内存芯片也上电。
502、***控制主芯片和缓存芯片完成串行接口初始化。
在一些实施例中,主芯片控制主芯片中的第一PLL和缓存芯片中的第二PLL根据同源的参考时钟进行倍频处理,得到第一PLL工作的时钟频率和第二PLL工作的时钟频率,第一PLL工作的时钟频率和第二PLL工作的时钟频率相同。
根据第一PLL工作的时钟频率确定主芯片中的串行接口1(SerDes1)的传输速率,以及根据第二PLL工作的时钟频率确定缓存芯片中的串行接口2(SerDes2)的传输速率。
示例性的,参考图6,主芯片包括逻辑控制器1,缓存芯片包括逻辑控制器2。当逻辑控制器根据总线时钟clk_bus确定主芯片上电时,逻辑控制器1可向串行接口1中的PLL1发送时钟频率配置指示,PLL1可根据参考时钟REF_CLK的基准时钟频率进行倍频处理,得到PLL1工作的时钟频率。逻辑控制器1还可通过串行接口1向串行接口2中的PLL2发送时钟频率配置指示,PLL2根据参考时钟REF_CLK提供的基准时钟频率进行倍频处理,得到PLL2工作的时钟频率。
基于PLL1和PLL2的时钟频率,串行接口1可基于PLL1的时钟频率确定串行接口1确定传输速率,串行接口2可基于PLL2的时钟频率确定串行接口1的传输速率。
例如,参考时钟REF_CLK提供的时钟频率为500MHz,PLL1和PLL2都可进行4倍频处理,得到PLL1和PLL2的时钟频率都为2000MHz。假设默认串行接口的传输速率为PLL的时钟频率的4倍,那么串行接口1和串行接口2的传输速率为8000MT/s,即均为8GT/s。
503、***控制主芯片和缓存芯片完成第一次速率协商,确定主芯片访问缓存芯片的第一目标速率。
在串行接口1和串行接口2的传输速率确定后,主芯片可根据主芯片的串行接口1的传输速率和缓存芯片中的串行接口2的传输速率执行主芯片和缓存芯片间的第一次速率协商,并在协商成功时确定主芯片中的串行接口的传输速率和缓存芯片中的串行接口的传输速率为主芯片访问缓存芯片的第一目标速率。
该速率协商的过程可与现有的速率协商过程类似。例如主芯片中的逻辑控制器1控制串行接口1以8GT/s的传输速率向缓存芯片中的串行接口2发送报文,如果串行接口2以8GT/s的传输速率接收到该报文,并向串行接口1发送了报文接收成功的响应报文,第一次速率协商成功。主芯片可确定串行接口1访问缓存芯片的第一目标速率为8GT/s,主芯片可根据该第一目标速率开始访问缓存芯片,例如通过缓存芯片对内存芯片进行读、写或改写操作等。此时的第一目标速率可理解为低频速率,主芯片和缓存芯片完成低速协商过程。
504、***控制主芯片以第一目标速率访问缓存芯片的寄存器,对缓存芯片的寄存器进行初始化。
在第一目标速率下,主芯片可通过串行接口1和串行接口2访问缓存芯片中的寄存器,以对缓存芯片中的寄存器进行初始化,使得缓存芯片中的寄存器处于工作状态。例如主芯片可通过串行接口1和串行接口2向逻辑控制器2发送寄存器配置初始化指示,逻辑控制器2根据该指示对缓存芯片中的寄存器进行初始化。
在一些实施例中,缓存芯片为一个buffer芯片,通常情况下,缓存芯片上可能无CPU。因此,在第一目标速率下,需要主芯片中的CPU配置缓存芯片中的寄存器,使得缓存芯片中的寄存器工作起来。因此,在本申请中,可通过自定义的报文,以支持主芯片可访问缓存芯片中的寄存器。
505、***控制缓存芯片中的各DIMM接口初始化完成后,获取缓存芯片和内存芯片间的DIMM接口支持的最高速率,记为第二目标速率,控制缓存芯片将第二目标速率记录在缓存芯片的寄存器中。
在对缓存芯片中的各寄存器初始化完成后,在一些实施例中,控制缓存芯片中的各DIMM接口初始化可理解为,控制缓存芯片通过DIMM接口访问与缓存芯片对接的内存芯片,以确定DIMM接口支持的最高速率,将DIMM接口支持的最高频率作为第二目标速率。
具体地,参考图6,缓存芯片中的逻辑控制器2可控制缓存芯片中的DIMM接口DDRPHY2和内存芯片即芯片3的DIMM接口DDR PHY3进行通信,以便逻辑控制器2确定DDR PHY2的插槽上***的芯片3的类型,并确定该类型支持的最高速率。逻辑控制器2将该最高速率记录在缓存芯片的寄存器中。该寄存器例如为REG.max_dimm_rate,用于保存传输速率。
506、***控制主芯片从缓存芯片的寄存器中读取第二目标速率。
在缓存芯片保存了DIMM接口支持的最高速率时,可通过串行接口2向主芯片通知最高速率确定完成。主芯片中的逻辑控制器1再次通过串行接口1和串行接口2访问缓存芯片的寄存器,例如访问上述REG.max_dimm_rate,读取缓存芯片的寄存器存储的DIMM接口支持的最高速率,将该最高速率确定为第二目标速率。
需理解,通常第二目标速率的速率值大于第一目标速率的速率值。第一目标速率是为了实现主芯片和缓存芯片间的低速启动协商确定的,第二目标速率为主芯片在启动后,串行接口间将共同协商的用于主芯片通过缓存芯片访问内存芯片的速率。
507、***控制主芯片根据第二目标速率初始化第一PLL的时钟频率和第二PLL的时钟频率,使第一PLL的时钟频率和第二PLL的时钟频率为与第二目标速率对应的时钟频率。
当主芯片在得到第二目标速率时,逻辑控制器1可根据第二目标速率重新初始化PLL1,逻辑控制器2可根据第二目标速率重新初始化PLL2,即重新确定PLL1和PLL2的时钟频率。
例如第二目标速率为32GT/s,即DIMM接口支持的最高频率为32GT/s,假设串行接口的传输速率和PLL的时钟频率的关系是4倍的关系,逻辑控制器1可确定PLL1被重新初始化后的时钟频率为8000MHz,逻辑控制器2可确定PLL2被重新初始化后的时钟频率为8000MHz。
508、***控制主芯片的串行接口和缓存芯片的串行接口以第二目标速率进行第二次速率协商。
根据步骤507的举例,在重新初始化PLL1和PLL2的时钟频率为8000MHz时,串行接口1的传输速率和串行接口1的传输速率均为第二目标速率32GT/s。此时,逻辑控制器1可控制串行接口1和串行接口2进行第二次速率协商。
例如逻辑控制器1控制串行接口1以32GT/s的传输速率向串行接口2发送报文,串行接口2以32GT/s的传输速率接收该报文,如果接收该报文成功,串行接口2向串行接口1发送协商成功的响应报文。
这样一来,主芯片和缓存芯片中的SerDes,和缓存芯片与内存芯片间的DRAM将工作在统一的时钟频率(频点)上,且在PLL1和PLL2为同源时钟,且clk_ddr和clk_sds2也为同源时钟的基础上,主芯片在通过缓存芯片访问内存芯片时,将避免跨异步时钟域,减少数据传输的延时。
在一些实施例中,主芯片的串行接口和缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率进行协商,并不局限于支持少数固定速率的协商。例如不局限于PCIE支持的GT/s和16GT/s等。
在一些实施例中,经过分析,DARM的工作频点(时钟频率)和SerDes的工作频点可统一。以DDR5为例,DDR5的传输参数和SerDes的传输参数可参见表1。
表1
表1中,DDR TYPE表示DRAM的类型为DDR5,DDR Data Rate表示DDR5的传输数据速率,单位为MT/s,DDR PHY CLK表示DDR5的DIMM接口的时钟频率,DDRC CLK表示DDR5的DDR控制器的时钟频率,SerDes data CLK表示SerDes传输数据的时钟频率。可看出,DDR PHY CLK的时钟频率是SerDes data CLK的时钟频率2倍。假设第一次速率协商的第一目标速率为SerDes data CLK中的2100MT/s实现低速启动后,可通过第二次速率协商得到DDR PHY CLK的时钟频率,即得到第二目标速率例如可为4200MT/s。即本申请可将SerDes data CLK的时钟频率统一为DDR PHY CLK的时钟频率4200MT/s,实现SerDes和DRAM的时钟频率统一。
509、***控制主芯片、缓存芯片和内存芯片间进行业务传输。
通过本申请,在主芯片和缓存芯片使用公共的参考时钟REF_CLK,缓存芯片的DIMM接口的时钟域缓存芯片的串行接口SerDes的时钟同源的基础上,主芯片和缓存芯片最终选取的最高速率,即第二目标速率与缓存芯片上***DIMM接口的内存芯片支持的最高速率相关。当DIMM接口的内存芯片支持的最高速率不同时,串行接口SerDes的传输速率也会同步发生变化,也就相当于将SerDes和DRAM的时钟频率进行了统一。当主芯片在通过缓存芯片访问内存芯片时,即数据流在跨多个芯片时,数据流在同步时钟域中传输,无异步处理延时消耗,可减少数据传输延时。经过分析,在精细设计下,可将整个***额外增加的延时控制在10ns。
需要说明的是,本申请的速率统一过程,或者说频率统一过程发生在***上电的启动过程中,但不限于只在启动过程中执行,也可以在***进行正常的通信流程中,通过抓包执行频率统一的流程。例如主芯片与缓存芯片在数据包传输过程中进行第一次速率协商和第二次速率协商,完成速率统一。
此外,在使用SerDes扩展其他组件,不限于扩展内存的方案中,也可以使用本申请的方法流程实现频率统一,减少延时。
可以理解的是,为了实现上述功能,通过串行接口扩展内存的***包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对通过串行接口扩展内存的***进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图7示出了上述实施例中涉及的通过串行接口扩展内存的***70的一种可能的组成示意图,如图7所示,该通过串行接口扩展内存的***70可以包括:速率协商单元701、速率获取单元702和初始化单元703。
其中,速率协商单元701可以用于支持通过串行接口扩展内存的***70执行上述步骤401、步骤403、步骤503、步骤508、步骤509等,和/或用于本文所描述的技术的其他过程。
速率获取单元702可以用于支持通过串行接口扩展内存的***70执行上述步骤402、步骤505、步骤506等,和/或用于本文所描述的技术的其他过程。
初始化单元703可以用于支持通过串行接口扩展内存的***70执行上述步骤501、步骤502、步骤504、步骤507等,和/或用于本文所描述的技术的其他过程。、
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例提供的通过串行接口扩展内存的***70,用于执行上述统一时钟频率的方法,因此可以达到与上述实现方法相同的效果。
在采用集成的单元的情况下,通过串行接口扩展内存的***70还可以如图8所示的通过串行接口扩展内存的***80,包括处理模块和存储模块。其中,处理模块可以用于对通过串行接口扩展内存的***70的动作进行控制管理,例如,可以用于支持通过串行接口扩展内存的***70执行上述速率协商单元701、速率获取单元702和初始化单元703执行的步骤。存储模块可以用于支持通过串行接口扩展内存的***70存储程序代码和数据等。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。
在一个实施例中,当处理模块为处理器,存储模块为存储器时,处理模块可以是本申请主芯片中的处理器/控制器/控制电路,和/或缓存芯片中的处理器/控制器/控制电路。存储模块可以是主芯片中的存储器和/或缓存芯片中的存储器。本实施例所涉及的通过串行接口扩展内存的***可以为具有图2所示结构的***。
本申请实施例还提供一种电子设备,包括一个或多个处理器以及一个或多个存储器。该一个或多个存储器与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得电子设备执行上述相关方法步骤实现上述实施例中的统一时钟频率方法。
本申请的实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的统一时钟频率的方法。
本申请的实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中电子设备执行的统一时钟频率的方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中电子设备执行的统一时钟频率的方法。
其中,本实施例提供的***、电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
本申请另一实施例提供了一种***,该***可以包括上述主芯片、缓存芯片和多个内存芯片,可以用于实现上述统一时钟频率的方法。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (16)
1.一种统一时钟频率的方法,其特征在于,应用于通过串行接口扩展内存的***,所述***包括主芯片、缓存芯片和与所述缓存芯片耦合的至少一个内存芯片,与所述主芯片中的串行接口耦合的第一锁相环和与所述缓存芯片中的串行接口耦合的第二锁相环的时钟同源,所述缓存芯片中的双列直插式存储模块接口和所述缓存芯片中的串行接口均与所述第二锁相环耦合,所述方法包括:
所述***控制所述主芯片和所述缓存芯片完成串行接口初始化后,执行所述主芯片和所述缓存芯片间的第一次速率协商,确定所述主芯片访问所述缓存芯片的第一目标速率;
所述***控制所述主芯片以所述第一目标速率对所述缓存芯片进行初始化完成后,确定所述缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率;
所述***将所述主芯片中的所述第一锁相环的时钟频率和所述缓存芯片中的所述第二锁相环的时钟频率均配置为与所述第二目标速率对应的时钟频率,并控制所述主芯片与所述缓存芯片完成第二次速率协商。
2.根据权利要求1所述的方法,其特征在于,所述控制所述主芯片和所述缓存芯片完成串行接口初始化后,执行所述主芯片和所述缓存芯片间的第一次速率协商,以确定所述主芯片访问所述缓存芯片的第一目标速率包括:
控制所述主芯片中的所述第一锁相环和所述缓存芯片中的所述第二锁相环根据同源的参考时钟进行倍频处理,得到所述第一锁相环工作的时钟频率和所述第二锁相环工作的时钟频率,所述第一锁相环工作的时钟频率和所述第二锁相环工作的时钟频率相同;
根据所述第一锁相环工作的时钟频率确定所述主芯片中的串行接口的传输速率,以及根据所述第二锁相环工作的时钟频率确定所述缓存芯片中的串行接口的传输速率;
根据所述主芯片的串行接口的传输速率和所述缓存芯片中的串行接口的传输速率执行所述主芯片和所述缓存芯片间的所述第一次速率协商,并在协商成功时确定所述主芯片中的串行接口的传输速率和所述缓存芯片中的串行接口的传输速率为所述主芯片访问所述缓存芯片的所述第一目标速率。
3.根据权利要求1或2所述的方法,其特征在于,所述控制所述主芯片以所述第一目标速率对所述缓存芯片进行初始化完成后,确定所述缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率包括:
控制所述主芯片的串行接口以所述第一目标速率访问所述缓存芯片的寄存器,以对所述缓存芯片的寄存器进行初始化;
控制所述缓存芯片通过所述双列直插式存储模块接口访问与所述缓存芯片对接的内存芯片,确定所述双列直插式存储模块接口支持的最高速率,将所述双列直插式存储模块接口支持的最高频率作为所述第二目标速率;
控制所述缓存芯片将所述第二目标速率记录在所述缓存芯片的寄存器中。
4.根据权利要求3所述的方法,其特征在于,所述将所述主芯片中的所述第一锁相环的时钟频率和所述缓存芯片中的所述第二锁相环的时钟频率均配置为与所述第二目标速率对应的时钟频率,并控制所述主芯片与所述缓存芯片完成第二次速率协商包括:
控制所述主芯片从所述缓存芯片的寄存器中读取所述第二目标速率;
控制所述主芯片根据所述第二目标速率初始化所述第一锁相环的时钟频率和所述第二锁相环的时钟频率,使所述第一锁相环的时钟频率和所述第二锁相环的时钟频率为与所述第二目标速率对应的时钟频率;
控制所述主芯片的串行接口和所述缓存芯片的串行接口以所述第二目标速率进行所述第二次速率协商。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述主芯片的串行接口和所述缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。
6.一种通过串行接口扩展内存的***,所述***包括主芯片、缓存芯片和与所述缓存芯片耦合的至少一个内存芯片,其特征在于,与所述主芯片中的串行接口耦合的第一锁相环和与所述缓存芯片中的串行接口耦合的第二锁相环的时钟同源,所述缓存芯片中的双列直插式存储模块接口和所述缓存芯片中的串行接口均与所述第二锁相环耦合,其中:
所述主芯片,用于和所述缓存芯片完成串行接口初始化后,和所述缓存芯片完成第一次速率协商,确定所述主芯片访问所述缓存芯片的第一目标速率;
以所述第一目标速率对所述缓存芯片进行初始化完成后,确定所述缓存芯片与内存芯片间的双列直插式存储模块接口支持的第二目标速率;
将所述主芯片中的所述第一锁相环的时钟频率配置为与所述第二目标速率对应的时钟频率;
所述缓存芯片,用于将所述缓存芯片中的所述第二锁相环的时钟频率均配置为与所述第二目标速率对应的时钟频率;
所述主芯片,还用于与所述缓存芯片完成第二次速率协商。
7.根据权利要求6所述的***,其特征在于,
所述主芯片,用于控制所述第一锁相环根据同源的参考时钟进行倍频处理,得到所述第一锁相环工作的时钟频率;
所述缓存芯片,用于控制所述第二锁相环根据同源的参考时钟进行倍频处理,得到所述第二锁相环工作的时钟频率,所述第一锁相环工作的时钟频率和所述第二锁相环工作的时钟频率相同;
所述主芯片,用于根据所述第一锁相环工作的时钟频率确定所述主芯片中的串行接口的传输速率;
所述缓存芯片,用于根据所述第二锁相环工作的时钟频率确定所述缓存芯片中的串行接口的传输速率;
所述主芯片,用于根据所述主芯片的串行接口的传输速率和所述缓存芯片中的串行接口的传输速率执行所述主芯片和所述缓存芯片间的所述第一次速率协商;
在协商成功时确定所述主芯片中的串行接口的传输速率为所述主芯片访问所述缓存芯片的所述第一目标速率;
所述缓存芯片,用于在协商成功时确定所述缓存芯片中的串行接口的传输速率为所述主芯片访问所述缓存芯片的所述第一目标速率。
8.根据权利要求6或7所述的***,其特征在于,
所述主芯片,用于控制所述主芯片的串行接口以所述第一目标速率访问所述缓存芯片的寄存器,以对所述缓存芯片的寄存器进行初始化;
所述缓存芯片,用于通过所述双列直插式存储模块接口访问与所述缓存芯片对接的内存芯片,确定所述双列直插式存储模块接口支持的最高速率,将所述双列直插式存储模块接口支持的最高频率作为所述第二目标速率;
将所述第二目标速率记录在所述缓存芯片的寄存器中。
9.根据权利要求8所述的***,其特征在于,
所述主芯片,用于从所述缓存芯片的寄存器中读取所述第二目标速率;
根据所述第二目标速率初始化所述第一锁相环的时钟频率和所述第二锁相环的时钟频率,使所述第一锁相环的时钟频率和所述第二锁相环的时钟频率为与所述第二目标速率对应的时钟频率;
控制所述主芯片的串行接口和所述缓存芯片的串行接口以所述第二目标速率进行所述第二次速率协商。
10.根据权利要求6-9任一项所述的***,其特征在于,所述主芯片的串行接口和所述缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。
11.一种频率控制装置,其特征在于,所述频率控制装置应用于通过串行接口扩展内存的***,所述***包括主芯片、缓存芯片和与所述缓存芯片耦合的至少一个内存芯片,与所述主芯片中的串行接口耦合的第一锁相环和与所述缓存芯片中的串行接口耦合的第二锁相环的时钟同源,所述缓存芯片中的双列直插式存储模块接口和所述缓存芯片中的串行接口均与所述第二锁相环耦合,所述频率控制装置包括:
速率协商单元,用于控制所述主芯片和所述缓存芯片完成串行接口初始化后,控制所述主芯片和所述缓存芯片执行所述主芯片和所述缓存芯片间的第一次速率协商,以确定所述主芯片访问所述缓存芯片的第一目标速率;
速率获取单元,用于控制所述主芯片以所述第一目标速率对所述缓存芯片进行初始化完成后,确定所述缓存芯片与内存芯片间的接口支持的第二目标速率;
所述速率协商单元,还用于将所述主芯片中的所述第一锁相环的时钟频率和所述缓存芯片中的所述第二锁相环的时钟频率均配置为与所述第二目标速率对应的时钟频率,并控制所述主芯片与所述缓存芯片完成第二次速率协商。
12.根据权利要求11所述的频率控制装置,其特征在于,所述速率协商单元用于:
控制所述主芯片中的所述第一锁相环和所述缓存芯片中的所述第二锁相环根据同源的参考时钟进行倍频处理,得到所述第一锁相环工作的时钟频率和所述第二锁相环工作的时钟频率,所述第一锁相环工作的时钟频率和所述第二锁相环工作的时钟频率相同;
根据所述第一锁相环工作的时钟频率确定所述主芯片中的串行接口的传输速率,以及根据所述第二锁相环工作的时钟频率确定所述缓存芯片中的串行接口的传输速率;
根据所述主芯片的串行接口的传输速率和所述缓存芯片中的串行接口的传输速率执行所述主芯片和所述缓存芯片间的所述第一次速率协商,并在协商成功时确定所述主芯片中的串行接口的传输速率和所述缓存芯片中的串行接口的传输速率为所述主芯片访问所述缓存芯片的所述第一目标速率。
13.根据权利要求11或12所述的频率控制装置,其特征在于,所述速率获取单元用于:
控制所述主芯片的串行接口以所述第一目标速率访问所述缓存芯片的寄存器,以对所述缓存芯片的寄存器进行初始化;
控制所述缓存芯片通过所述双列直插式存储模块接口访问与所述缓存芯片对接的内存芯片,确定所述双列直插式存储模块接口支持的最高速率,将所述双列直插式存储模块接口支持的最高频率作为所述第二目标速率;
控制所述缓存芯片将所述第二目标速率记录在所述缓存芯片的寄存器中。
14.根据权利要求13所述的频率控制装置,其特征在于,所述速率协商单元用于:
控制所述主芯片从所述缓存芯片的寄存器中读取所述第二目标速率;
控制所述主芯片根据所述第二目标速率初始化所述第一锁相环的时钟频率和所述第二锁相环的时钟频率,使所述第一锁相环的时钟频率和所述第二锁相环的时钟频率为与所述第二目标速率对应的时钟频率;
控制所述主芯片的串行接口和所述缓存芯片的串行接口以所述第二目标速率进行所述第二次速率协商。
15.根据权利要求11-14任一项所述的频率控制装置,其特征在于,所述主芯片的串行接口和所述缓存芯片的串行接口进行速率协商时,支持任意指定的整数速率。
16.一种计算机可读存储介质,其特征在于,包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行上述权利要求1-5中的任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488354.XA CN117056253A (zh) | 2022-05-06 | 2022-05-06 | 一种统一时钟频率的方法和装置 |
PCT/CN2023/091264 WO2023213224A1 (zh) | 2022-05-06 | 2023-04-27 | 一种统一时钟频率的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210488354.XA CN117056253A (zh) | 2022-05-06 | 2022-05-06 | 一种统一时钟频率的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117056253A true CN117056253A (zh) | 2023-11-14 |
Family
ID=88646253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210488354.XA Pending CN117056253A (zh) | 2022-05-06 | 2022-05-06 | 一种统一时钟频率的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117056253A (zh) |
WO (1) | WO2023213224A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150001188A (ko) * | 2013-06-26 | 2015-01-06 | 한국전자통신연구원 | 디디알 에스디램 모듈 및 그 구성 방법 |
US10095421B2 (en) * | 2016-10-21 | 2018-10-09 | Advanced Micro Devices, Inc. | Hybrid memory module bridge network and buffers |
US10628343B2 (en) * | 2017-02-03 | 2020-04-21 | Futurewei Technologies, Inc. | Systems and methods for utilizing DDR4-DRAM chips in hybrid DDR5-DIMMs and for cascading DDR5-DIMMs |
CN109639403A (zh) * | 2018-11-26 | 2019-04-16 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 同步传输数字阵列天线基带激励数据的方法 |
CN113406993A (zh) * | 2021-07-16 | 2021-09-17 | 盛立安元科技(杭州)股份有限公司 | 基于恢复时钟的fpga芯片时钟域同步方法及相关设备 |
-
2022
- 2022-05-06 CN CN202210488354.XA patent/CN117056253A/zh active Pending
-
2023
- 2023-04-27 WO PCT/CN2023/091264 patent/WO2023213224A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023213224A1 (zh) | 2023-11-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107835988B (zh) | 用于高速存储器接口的低功率时钟定时 | |
US5491814A (en) | Apparatus using a state machine for generating selectable clock frequencies and a fixed frequency for operating a computer bus | |
KR100578112B1 (ko) | 메모리 클럭 신호를 제어하는 컴퓨터 시스템 및그 방법 | |
JP4630512B2 (ja) | 2つのクロックドメイン間でシリアルデータ転送を開始するためのシステムおよび方法 | |
US8305839B2 (en) | Memory device having multiple power modes | |
KR100579053B1 (ko) | 스마트 카드와 메모리 카드간의 멀티 인터페이스 방법 및멀티 인터페이스 카드 | |
US5809291A (en) | Interoperable 33 MHz and 66 MHz devices on the same PCI bus | |
US8397020B2 (en) | Memory array and method with simultaneous read/write capability | |
KR100843771B1 (ko) | 싱글 모드 및 듀얼 모드 액세스를 가진 메모리 | |
JPH07306827A (ja) | P/q整数比関係を有する周波数で動作するディジタル装置間で同期データ伝送を行うための方法および装置 | |
CN114490460A (zh) | 一种用于asic的flash控制器及其控制方法 | |
JP2002519773A (ja) | クロック回路のデータレートを制御する方法および装置 | |
JP3643425B2 (ja) | データ処理方法、データ処理装置及びインターフェイスコントローラ | |
JP2002518729A (ja) | 異なるクロックレートで動作する装置を接続するインターフェイス装置及びインターフェイスの動作方法 | |
EP4202604A1 (en) | Fast self-refresh exit power state | |
CN117056253A (zh) | 一种统一时钟频率的方法和装置 | |
KR100222158B1 (ko) | 버스 제어 장치 및 정보 처리 장치 | |
US20220358061A1 (en) | Unmatched architecture compensation via digital component delay | |
JP2020064413A (ja) | Qspiマスタデバイス、情報処理装置とその制御方法、並びにプログラム | |
US9170768B2 (en) | Managing fast to slow links in a bus fabric | |
US7191353B2 (en) | Coordination of multiple multi-speed devices | |
TWI261171B (en) | Over-clocking method of PCI express card and related device thereof | |
JP2000330927A (ja) | 高速処理装置 | |
JP3974366B2 (ja) | マルチプロセッサ構成の集積回路 | |
CN116391181A (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 |