CN116303191B - 一种晶片到晶片接口互联的方法、设备及介质 - Google Patents

一种晶片到晶片接口互联的方法、设备及介质 Download PDF

Info

Publication number
CN116303191B
CN116303191B CN202310537595.3A CN202310537595A CN116303191B CN 116303191 B CN116303191 B CN 116303191B CN 202310537595 A CN202310537595 A CN 202310537595A CN 116303191 B CN116303191 B CN 116303191B
Authority
CN
China
Prior art keywords
data
wafer
interface
wafers
compression
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.)
Active
Application number
CN202310537595.3A
Other languages
English (en)
Other versions
CN116303191A (zh
Inventor
李剑峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Xinyaohui Technology Co ltd
Original Assignee
Xinyaohui Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Xinyaohui Technology Co ltd filed Critical Xinyaohui Technology Co ltd
Priority to CN202310976442.9A priority Critical patent/CN116881188B/zh
Priority to CN202310537595.3A priority patent/CN116303191B/zh
Publication of CN116303191A publication Critical patent/CN116303191A/zh
Application granted granted Critical
Publication of CN116303191B publication Critical patent/CN116303191B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1004Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Testing Or Measuring Of Semiconductors Or The Like (AREA)

Abstract

本申请提供一种晶片到晶片接口互联的方法、设备及介质。方法包括:响应于数据发送,输入待发送数据到接口缓存;通过协议处理单元,对待发送数据进行数据切割得到切割后数据,对其进行循环冗余校验计算生成循环冗余计算结果,将其添加到切割后数据中从而进行组装和条带化分发得到分发后数据,进行编码操作得到编码后数据,对编码后数据进行扰码和组帧后通过所述传输接口发送,响应于数据接收,通过传输接口获取待接收数据;通过协议处理单元,对待接收数据进行定帧和解扰后再进行解码操作得到解码后数据,对其进行数据聚合处理得到聚合后数据,进行循环冗余校验和数据组合后输入到接口缓存。如此有助于数据传输速率高和数据传输可靠性。

Description

一种晶片到晶片接口互联的方法、设备及介质
技术领域
本申请涉及芯片设计技术领域,尤其涉及一种晶片到晶片接口互联的方法、设备及介质。
背景技术
随着半导体工艺的进步和芯片设计规模的增长,芯片的面积也越来越大,***级芯片(system on chip,SOC)也即片上***的性能提升变得更加困难,并且同时还面对漏电流增大、散热处理难度增加以及芯片时钟主频增长缓慢等问题。半导体工艺制程上的突破也很难让SOC做到最优的性能和极低的功耗,并且还面对上升的芯片制造成本和制造良率下降的问题。为了利用现有工艺技术制造出性能和功耗符合要求的芯片,将SOC拆分成多个晶片(die),利用封装和互联技术来构建芯片组或者多芯片模块。例如,通过芯粒(chiplet)技术,将原本集成于同一个***单晶片中的各个功能块拆分,分开制造后通过封装和互联技术来最终集成封装为一个***芯片组。经过封装后的多个晶片之间的数据互联要确保正确性,晶片到晶片(die to die)接口互联也需要具有高数据带宽、低延时和高可靠性的特性,才能满足如网络、大规模数据中心和人工智能等领域的应用需求。但是,现有技术中的晶片到晶片接口互联的方式难以满足数据传输速率高和数据传输可靠性高的需求。
为此,本申请提供了一种晶片到晶片接口互联的方法、设备及介质,用于解决现有技术中的技术难题。
发明内容
第一方面,本申请提供了一种晶片到晶片接口互联的方法。多个晶片中的每一个晶片包括晶片到晶片接口用于该晶片和所述多个晶片中相对于该晶片的另一晶片之间的数据互联,所述方法应用于第一晶片,所述第一晶片是所述多个晶片中的任一晶片,所述第一晶片的晶片到晶片接口包括接口缓存、协议处理单元和传输接口,所述方法包括:响应于所述第一晶片的数据发送,输入待发送第一数据到所述接口缓存;通过所述协议处理单元,对所述待发送第一数据进行数据切割得到切割后数据,对所述切割后数据进行循环冗余校验计算生成循环冗余计算结果,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到分发后数据,对所述分发后数据进行编码操作得到编码后数据,对所述编码后数据进行扰码和组帧得到待发送第二数据;通过所述传输接口,发送所述待发送第二数据,响应于所述第一晶片的数据接收,通过所述传输接口获取待接收第一数据;通过所述协议处理单元,对所述待接收第一数据进行定帧和解扰后再进行解码操作得到解码后数据,对所述解码后数据进行数据聚合处理得到聚合后数据,对所述聚合后数据进行循环冗余校验和数据组合得到待接收第二数据;输入所述待接收第二数据到所述接口缓存。
通过本申请的第一方面,可以满足数据传输速率高和数据传输可靠性高的需求,还可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。
在本申请的第一方面的一种可能的实现方式中,所述编码操作基于第一编码方案,所述解码操作基于第一解码方案,所述第一编码方案对应所述第一解码方案。
在本申请的第一方面的一种可能的实现方式中,所述第一编码方案是64/67编码,所述第一解码方案是64/67解码。
在本申请的第一方面的一种可能的实现方式中,所述待发送第一数据来自与所述第一晶片相关联的用户数据接口,所述待接收第二数据被发送给所述用户数据接口。
在本申请的第一方面的一种可能的实现方式中,所述待接收第二数据在被发送给所述用户数据接口之前进行速率适配处理。
在本申请的第一方面的一种可能的实现方式中,所述待发送第二数据被发送到相对于所述第一晶片的第二晶片的晶片到晶片接口的传输接口。
在本申请的第一方面的一种可能的实现方式中,通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到所述分发后数据,包括:通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而按照突发长度的设置进行组装和条带化分发得到所述分发后数据。
在本申请的第一方面的一种可能的实现方式中,所述传输接口是串行器解串器接口。
在本申请的第一方面的一种可能的实现方式中,所述协议处理单元是Interlaken协议处理单元。
在本申请的第一方面的一种可能的实现方式中,通过所述协议处理单元,至少在对所述待发送第一数据进行数据切割得到切割后数据之前,对所述接口缓存中的所述待发送第一数据进行速率适配处理。
在本申请的第一方面的一种可能的实现方式中,通过所述协议处理单元,在对所述切割后数据进行循环冗余校验计算生成所述循环冗余计算结果的过程中同步生成控制字段用于记录所述切割后数据的描述信息。
在本申请的第一方面的一种可能的实现方式中,所述多个晶片是同质晶片或者异质晶片。
在本申请的第一方面的一种可能的实现方式中,所述多个晶片对应同一***单晶片中的功能块,所述多个晶片通过各自的晶片到晶片接口被封装到一起从而构成与所述***单晶片对应的***芯片组。
在本申请的第一方面的一种可能的实现方式中,所述多个晶片通过芯粒技术被封装到一起。
在本申请的第一方面的一种可能的实现方式中,所述编码操作基于第一编码方案,所述编码后数据包括多个压缩前数据,所述多个压缩前数据的大小均为第一数值的比特位,所述第一数值是基于所述第一编码方案,其中,对所述编码后数据进行扰码和组帧得到所述待发送第二数据,包括:对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据,并且对所述多个压缩前数据进行前向纠错计算生成冗余纠错码,将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,对更新后的所述编码后数据进行扰码和组帧得到所述待发送第二数据。
在本申请的第一方面的一种可能的实现方式中,所述第一编码方案是64/67编码,所述第一数值是67。
在本申请的第一方面的一种可能的实现方式中,更新前的所述编码后数据的大小和所述更新后的所述编码后数据的大小一致,所述多个压缩后数据对应所述多个压缩前数据中的数据域,对所述多个压缩前数据进行前向纠错计算生成的所述冗余纠错码对应所述多个压缩前数据中的用于同步的比特域。
在本申请的第一方面的一种可能的实现方式中,所述解码操作基于第一解码方案,所述第一编码方案对应所述第一解码方案,其中,对所述解码后数据进行数据聚合处理得到聚合后数据,包括:对所述解码后数据进行解压缩和反向转码后再进行前向纠错检验,然后进行数据聚合处理得到所述聚合后数据。
在本申请的第一方面的一种可能的实现方式中,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据,包括:压缩所述多个压缩前数据中的用于同步的比特域从而用于传输所述冗余纠错码,以及保持所述多个压缩前数据中的数据域。
在本申请的第一方面的一种可能的实现方式中,所述传输接口的与所述多个压缩前数据相关联的链路传输带宽等于所述传输接口的与所述多个压缩后数据相关联的链路传输带宽。
在本申请的第一方面的一种可能的实现方式中,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据是基于所述第一编码方案,所述第一编码方案是基于与所述协议处理单元相关联的晶片到晶片接口互联协议。
第二方面,本申请实施例还提供了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据上述任一方面的任一种实现方式的方法。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
第四方面,本申请实施例还提供了一种计算机程序产品,所述计算机程序产品包括存储在计算机可读存储介质上的指令,当所述指令在计算机设备上运行时使得所述计算机设备执行根据上述任一方面的任一种实现方式的方法。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种通过多个彼此互联的晶片集成得到***芯片组的示意图;
图2为本申请实施例提供的一种通过晶片到晶片接口互联的多个晶片的示意图;
图3为本申请实施例提供的另一种通过晶片到晶片接口互联的多个晶片的示意图;
图4为本申请实施例提供的一种晶片到晶片接口互联的方法的流程示意图;
图5为本申请实施例提供的一种通过晶片到晶片接口且基于第一编码方案进行数据发送过程的流程示意图;
图6为本申请实施例提供的一种通过晶片到晶片接口且基于第一解码方案进行数据接收过程的流程示意图。
具体实施方式
下面将结合附图对本申请实施例作进一步地详细描述。
应当理解的是,在本申请的描述中,“至少一个”指一个或一个以上,“多个”指两个或两个以上。另外,“第一”、“第二”等词汇,除非另有说明,否则仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。
图1为本申请实施例提供的一种通过多个彼此互联的晶片集成得到***芯片组的示意图。如图1所示,***芯片组110包括四个晶片,分别为晶片A 102、晶片B 104、晶片C106和晶片D 108。其中,图1中所示的***芯片组110所包括的四个晶片,也就是晶片A 102、晶片B 104、晶片C 106和晶片D 108,都属于晶片(die)。晶片也叫裸晶或裸片,是以半导体材料制作而成未经封装的一小块集成电路的本体。晶片可以理解为芯片未封装前的晶粒,是从硅晶元(wafer)上用激光切割而成的小片,每一个晶片就是一个独立的功能芯片。将一个晶片作为一个单位封装起来成为芯片。晶片是不能直接使用的,因为晶片未经过封装没有引脚也没有散热片。***单晶片指的是在单个晶片上实现整个***的功能,也叫做片上***或者***级芯片(system on chip,SOC)。随着芯片设计规模的迅速增长,***功能变得更加丰富也更加复杂,单个晶片的面积也迅速增长,要在单个晶片上实现整个***的功能也就是制备***单晶片面临越来越大的挑战,例如性能提升变得更难、散热处理难度更大、漏电流增大、芯片时钟主频率增长更慢等。而且晶片面积增长和芯片设计复杂度的增加也带来了制造良率下降的问题。为了能在提升性能同时还做到控制成本和功耗,将原本在***单晶片上实现的整个***的功能拆分后通过多个晶片来实现,利用封装和互联技术来构建芯片组或者多芯片模块。例如,通过芯粒(chiplet)技术,将原本集成于同一个***单晶片中的各个功能块拆分,分开制造后通过封装和互联技术来最终集成封装为一个***芯片组。
继续参阅图1,图1所示的***芯片组110可以对应整个***的功能。***芯片组110所实现的***的功能可以原本是在单个晶片上实现的也就是可以通过***单晶片实现,而在图1中将***芯片组110的功能拆分后,通过四个晶片也即晶片A 102、晶片B 104、晶片C 106和晶片D 108来实现。晶片A 102、晶片B 104、晶片C 106和晶片D 108彼此之间通过晶片到晶片(die to die)接口互联来实现数据互联。从图1中可以看出,晶片A 102、晶片B 104、晶片C 106和晶片D 108中的任一个晶片与其它三个晶片分别地存在晶片到晶片接口互联关系(图1中用一个双向箭头示出一个晶片到晶片接口互联关系)。晶片之间的互联接口用于晶片之间的数据互联,也对应了晶片到晶片接口互联,必须满足高数据带宽、低延时和高可靠性等特性,才能用于集成封装多个晶片进而满足芯片在网络、超大规模数据中心和人工智能等领域的应用。这里,晶片到晶片接口互联意味着将一个晶片与另一个晶片互联后用于封装在一起,每个晶片都包括至少一个带有物理接口的模块。具有公共接口的一个晶片可以通过短距离导线与另一个晶片进行通信。晶片到晶片接口互联可以分成同质晶片和异质晶片两种情形。其中,同质晶片主要是进行晶片拆分,将两个或者更多个相等的或者同质的晶片数据互联,使得这些更小个的多个晶片表现得像单个晶片。例如,图1中的四个晶片也即晶片A 102、晶片B 104、晶片C 106和晶片D 108,可以均是中央处理器(Central Processing Unit)。异质晶片主要是进行封装集成,将不同功能集成到统一封装后的芯片组里。例如图1中的晶片A 102和晶片B 104可以是中央处理器,而晶片C 106和晶片D 108可以是图形处理器(graphic processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)、张量处理器(tensor processing unit,TPU)或数据处理器(data processing unit,DPU)。因此,不同的半导体制备工艺,不同的集成封装方式,这些可能影响晶片到晶片接口互联的有关细节。例如,晶片到晶片接口互联可能用于一个中央处理器的晶片与另一个中央处理器的晶片之间的数据互联,也可能用于一个中央处理器的晶片与神经网络处理器的晶片之间的数据互联。另外,晶片到晶片接口互联一般采用特定的协议、规则、策略等,用于规范晶片之间高速数据传输的有关细节。例如,可以在流量控制、调度功能、带宽、数据通道等有关方面做出优化或者提出需求,从而更好地满足如网络、超大规模数据中心和人工智能等业务场景。例如,晶片到晶片接口互联可能采用支持多通道传输的协议,并且在数据传输带宽方面可能要达到10千兆位每秒(Gbps)至300Gbps或者更高速率。晶片到晶片接口互联可能还需要支持串行器解串器(SERializer/DESerializer,SERDES)。SERDES意味着在发送端将多路低速并行信号转换成高速串行信号后以差分方式传输,在接收端将高速串行信号转换成低速并行信号。为了支持SERDES,在接收端需要集成时钟数据恢复(clock data recovery,CDR)电路,利用CDR电路从数据边沿信息恢复时钟信号并进行采样来恢复数据信号。因为要将多个晶片封装集成到一起,所以晶片到晶片接口互联也是集成在芯片组内部,例如图1所示的晶片A 102、晶片B 104、晶片C106和晶片D 108彼此之间的数据互联被集成在***芯片组110内部。这样意味着,当晶片之间的数据互联发生了问题,例如出现了数据传输错误、数据丢失等,很难对问题进行定位也很难做出修正。但是,随着对晶片之间的数据传输速率要求越来越高,也给确保晶片之间数据传输的可靠性和正确性带来更大的挑战。为此,本申请实施例提供了一种晶片到晶片接口互联的方法、设备及介质,用于使得晶片到晶片接口互联的方式可以满足数据传输速率高和数据传输可靠性高的需求。
图2为本申请实施例提供的一种通过晶片到晶片接口互联的多个晶片的示意图。如图2所示,晶片E 210与晶片F 220之间通过各自的晶片到晶片接口实现数据互联。具体地,晶片E 210包括晶片到晶片接口E 212,快速***组件互联接口E 214,高带宽存储器接口E 216,以及以太网接口E 218。晶片F 220包括晶片到晶片接口F 222,快速***组件互联接口F 224,高带宽存储器接口F 226,以及以太网接口F 228。其中,晶片E 210所包括的晶片到晶片接口E 212用于与晶片F 220所包括的晶片到晶片接口F 222进行物理连接,从而实现晶片E 210和晶片F 220之间的数据互联。而晶片E 210所包括的快速***组件互联接口E 214和晶片F 220所包括的快速***组件互联接口F 224都用于支持快速***组件互联(peripheral component interconnect express,PCIE)标准,例如用于连接PCIE标准设备,从而可以用于连接服务器和高性能计算中心。晶片E 210所包括的高带宽存储器接口E216以及晶片F 220所包括的高带宽存储器接口F 226都用于连接高带宽存储器(HighBandwidth Memory,HBM)从而可用于如网络交换、网络报文转发及图形处理器等业务场景。晶片E 210所包括的以太网接口E 218和晶片F 220所包括的以太网接口F 228均用于提供与以太网(ethernet)有关的功能,例如接入以太网网卡等。图2所示的晶片E 210与晶片F220,各自包括多种不同功能的接口,从而可以用于各种业务场景,例如可以通过晶片E 210所包括的快速***组件互联接口E 214接入PCIE总线或者通过晶片F 220所包括的高带宽存储器接口F 226接入HBM等。而在晶片E 210与晶片F 220之间通过晶片E 210所包括的晶片到晶片接口E 212与晶片F 220所包括的晶片到晶片接口F 222的物理连接实现了晶片之间数据互联,从而使得晶片E 210与晶片F 220对外表现得像一个晶片,这样在提升性能同时还做到控制成本和功耗。晶片E 210与晶片F 220之间的晶片到晶片接口互联,也就是晶片E 210所包括的晶片到晶片接口E 212与晶片F 220所包括的晶片到晶片接口F 222的之间的数据互联,需要满足特定的协议、规则、策略等提出的输出传输方面的要求,也可能需要在流量控制、调度功能、带宽、数据通道等方面满足要求。
图3为本申请实施例提供的另一种通过晶片到晶片接口互联的多个晶片的示意图。如图3所示,晶片G 310包括第一晶片到晶片接口G 312,第二晶片到晶片接口G 313,高带宽存储器接口G 316,以及以太网接口G 318。晶片H 320包括第一晶片到晶片接口H 322,第二晶片到晶片接口H 323,高带宽存储器接口H 326,以及以太网接口H 328。晶片G 310和晶片H 320之间通过晶片G 310所包括第一晶片到晶片接口G 312与晶片H 320所包括的第一晶片到晶片接口H 322的物理连接实现了晶片之间数据互联,从而使得晶片G 310与晶片H 320对外表现得像一个晶片,这样在提升性能同时还做到控制成本和功耗。另外,晶片G310还通过第二晶片到晶片接口G 313可以与另一晶片连接,晶片H 320还通过第二晶片到晶片接口H 323可以与另一晶片连接。晶片G 310与晶片H 320之间的晶片到晶片接口互联,需要满足特定的协议、规则、策略等提出的输出传输方面的要求,也可能需要在流量控制、调度功能、带宽、数据通道等方面满足要求。
参阅图1、图2和图3,晶片到晶片接口互联意味着将一个晶片与另一个晶片互联后用于封装在一起,每个晶片都包括至少一个带有物理接口的模块。具有公共接口的一个晶片可以通过短距离导线与另一个晶片进行通信。根据多个晶片集成封装成一个芯片组的方式,也根据多个晶片的功能划分和接口布置,一个晶片可能有一个或者多个晶片到晶片接口,每个晶片到晶片接口也可能采用特定的协议、规则、策略等,用于满足在数据传输、流量控制、调度功能、带宽、数据通道等有关方面的要求。而这些协议、规则、策略等,可能也会对晶片到晶片接口互联的具体细节提出要求,例如通信通道数量、控制字结构、数据编码和数据解码、流量控制选项等。为此,需要提供一种晶片到晶片接口互联的方法,可以满足数据传输速率高和数据传输可靠性高的需求,还可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。下面结合图4详细说明。
图4为本申请实施例提供的一种晶片到晶片接口互联的方法的流程示意图。其中,图4所示晶片到晶片接口互联的方法适用于多个晶片,多个晶片中的每一个晶片包括晶片到晶片接口用于该晶片和所述多个晶片中相对于该晶片的另一晶片之间的数据互联。所述方法应用于第一晶片,所述第一晶片是所述多个晶片中的任一晶片,所述第一晶片的晶片到晶片接口包括接口缓存、协议处理单元和传输接口。如图4所示,方法包括以下步骤。
步骤S402:响应于所述第一晶片的数据发送,输入待发送第一数据到所述接口缓存。
步骤S404:通过所述协议处理单元,对所述待发送第一数据进行数据切割得到切割后数据,对所述切割后数据进行循环冗余校验计算生成循环冗余计算结果,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到分发后数据,对所述分发后数据进行编码操作得到编码后数据,对所述编码后数据进行扰码和组帧得到待发送第二数据。
步骤S406:通过所述传输接口,发送所述待发送第二数据。
步骤S408:响应于所述第一晶片的数据接收,通过所述传输接口获取待接收第一数据。
步骤S410:通过所述协议处理单元,对所述待接收第一数据进行定帧和解扰后再进行解码操作得到解码后数据,对所述解码后数据进行数据聚合处理得到聚合后数据,对所述聚合后数据进行循环冗余校验和数据组合得到待接收第二数据。
步骤S412:输入所述待接收第二数据到所述接口缓存。
图4所示的晶片到晶片接口互联的方法适用于多个晶片,多个晶片中的每一个晶片包括晶片到晶片接口用于该晶片和所述多个晶片中相对于该晶片的另一晶片之间的数据互联。所述方法应用于第一晶片,所述第一晶片是所述多个晶片中的任一晶片,所述第一晶片的晶片到晶片接口包括接口缓存、协议处理单元和传输接口。多个晶片对应了将多个功能块组合在一起组成一块芯片,每个功能块之间的接口是晶片到晶片接口。第一晶片是所述多个晶片中的任一晶片,第一晶片的晶片到晶片接口提供了第一晶片与另一晶片之间的数据互联。参阅上述的各个步骤,在步骤S402,响应于所述第一晶片的数据发送,输入待发送第一数据到所述接口缓存。这里所述第一晶片可以从用户侧接收数据并将用户侧的数据输入到所述接口缓存。在一些实施例中,可以通过所述接口缓存进行速率适配处理,这样有助于整体上数据传输的稳定性和可靠性。接着,在步骤S404,通过所述协议处理单元,对所述待发送第一数据进行数据切割得到切割后数据。所述第一晶片的晶片到晶片接口可能采用特定的协议、规则、策略等,用于满足在数据传输、流量控制、调度功能、带宽、数据通道等有关方面的要求。而这些协议、规则、策略等,可能也会对晶片到晶片接口互联的具体细节提出要求,例如通信通道数量、控制字结构、数据编码和数据解码、流量控制选项等。这里,所述协议处理单元主要用于提供必要的处理功能以满足所述第一晶片的晶片到晶片接口所采用的协议、规则、或者策略等在数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。在步骤S404中通过所述协议处理单元对所述待发送第一数据进行数据切割得到切割后数据。这里意味着在协议层进行数据切割,这是考虑到后续流程中突发长度的设置和控制字组装需要,一次传输的数据长度称为突发长度。一般来说,进行数据切割是以固定比特位(例如64比特位)为单位切割数据。对所述切割后数据进行循环冗余校验计算生成循环冗余计算结果。进行循环冗余校验计算以生成循环冗余计算结果,是为了后续流程的循环冗余校验(cyclic redundancy check,CRC)。CRC利用了能根据数据包或文件等数据生成简短的固定位数校验码的散列函数,用来校验数据传输或者保存后可能出现的错误。可以在数据传输或者保存之前计算校验码并将校验码附加到数据后面,这样接收方可以进行校验以确定数据是否发生变化。在步骤S404,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到分发后数据。这里,组装意味着数据切割和控制字组装。在一些实施例中,在数据切割的基础上将协议控制字与代表了要传输的数据的数据字一起结合突发长度的设置进行组装。条带化意味着根据数据通道和通道化数据传输方面的要求,使得分发后数据可以通过多个通道发送,例如每个通道可以对应一个SERDES物理链路。因此,响应于所述第一晶片的数据发送,待发送第一数据被输入到所述接口缓存,然后被数据切割得到切割后数据,再然后将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到分发后数据。如此完成了从待发送第一数据到分发后数据的转换,也体现了在协议层进行控制的细节,可以用于满足例如通信通道数量、控制字结构等要求。接着,在步骤S404,对所述分发后数据进行编码操作得到编码后数据,对所述编码后数据进行扰码和组帧得到待发送第二数据。进行编码操作意味着进行帧层控制字组装,其中包括添加同步字作为元帧同步头用于确定元帧位置。应当理解的是,进行编码操作一般是基于所述第一晶片的晶片到晶片接口所采用的特定的协议、规则、策略等,例如协议可能规定了特定的编码格式,要求将原来的数据按照一定的规则编写成特定的编码格式下的数据。在一些实施例中,进行编码操作意味着将64比特位的数据编码成67比特位的数据。在进行编码操作得到编码后数据之后,对所述编码后数据进行扰码和组帧得到待发送第二数据。这样有助于增强数据完整性和链路稳定性。最后,在步骤S406,通过所述传输接口,发送所述待发送第二数据。在一些实施例中,传输接口与多个SERDES通道连接,待发送第二数据可以经过对齐后经多个SERDES通道发送出去。
继续参阅图4及上述各个步骤,在步骤S408,响应于所述第一晶片的数据接收,通过所述传输接口获取待接收第一数据。接着,在步骤S410,通过所述协议处理单元,对所述待接收第一数据进行定帧和解扰后再进行解码操作得到解码后数据,对所述解码后数据进行数据聚合处理得到聚合后数据,对所述聚合后数据进行循环冗余校验和数据组合得到待接收第二数据。如此,从所述传输接口接收的待接收第一数据,例如通过SERDES接口接收到的数据,经过定帧和解扰后,也就是完成了帧定位和解扰码。接着,进行解码操作,解码后的数据进行数据聚合处理,最后再经过循环冗余校验和数据组合,恢复出用户数据,最后写入数据缓存。可以经过速率适配调整后再发送到用户侧接口。
如此,图4所示的一种晶片到晶片接口互联的方法,可以满足数据传输速率高和数据传输可靠性高的需求,还可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。图4所示的晶片到晶片接口互联的方法,其中的编码操作和解码操作可以是基于所述第一晶片的晶片到晶片接口所采用的具体协议,例如按照其中规定的编码格式和规则进行编码和解码。一般情况下,晶片之间接口需要较大的数据传输带宽,并且还具有流量控制及通道化传输特性。在网络芯片的业务场景下,为了实现高速数字通信传输,可以在晶片之间接口采用特定通信协议的接口与SERDES的组合。
在一种可能的实施方式中,所述编码操作基于第一编码方案,所述解码操作基于第一解码方案,所述第一编码方案对应所述第一解码方案。在一些实施例中,所述第一编码方案是64/67编码,所述第一解码方案是64/67解码。如此,通过彼此对应的第一编码方案和第一解码方案,可以实现所述第一晶片的晶片到晶片接口的数据发送和数据接收。其中,64/67编码意味着将原来的数据按照一定的规则编写成特定的编码格式下的数据,也就是将64比特位的数据编码成67比特位的数据。64/67解码意味着将67比特位的数据解码成64比特位的数据。
在一种可能的实施方式中,所述待发送第一数据来自与所述第一晶片相关联的用户数据接口,所述待接收第二数据被发送给所述用户数据接口。在一些实施例中,所述待接收第二数据在被发送给所述用户数据接口之前进行速率适配处理。如此,通过速率适配处理,有助于整体上数据传输的稳定性和可靠性。
在一种可能的实施方式中,所述待发送第二数据被发送到相对于所述第一晶片的第二晶片的晶片到晶片接口的传输接口。如此,实现了第一晶片和第二晶片之间的数据互联。
在一种可能的实施方式中,通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到所述分发后数据,包括:通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而按照突发长度的设置进行组装和条带化分发得到所述分发后数据。如此,在数据切割的基础上将协议控制字与代表了要传输的数据的数据字一起结合突发长度的设置进行组装。条带化意味着根据数据通道和通道化数据传输方面的要求,使得分发后数据可以通过多个通道发送,例如每个通道可以对应一个SERDES物理链路。因此,将所述循环冗余计算结果添加到所述切割后数据中从而按照突发长度的设置进行组装和条带化分发得到所述分发后数据,意味着结合了突发长度的设置也就是一次传输的数据长度的设置,这样有助于后续通过多个通道如多个SERDES通道进行数据传输。
在一种可能的实施方式中,所述传输接口是串行器解串器接口。在一种可能的实施方式中,所述协议处理单元是Interlaken协议处理单元。一般情况下,晶片之间接口需要较大的数据传输带宽,并且还具有流量控制及通道化传输特性。在网络芯片的业务场景下,为了实现高速数字通信传输,可以在晶片之间接口采用特定通信协议的接口与SERDES的组合。上面提到,图4所示的晶片到晶片接口互联的方法,其中的编码操作和解码操作可以是基于所述第一晶片的晶片到晶片接口所采用的具体协议,例如按照其中规定的编码格式和规则进行编码和解码。例如,Interlaken协议规定了64/67编码这一特定编码格式,也就是意味着,当所述协议处理单元是Interlaken协议处理单元时,所述第一晶片的晶片到晶片接口是基于Interlaken协议进行晶片之间数据互联,因此需要将原来的数据按照一定的规则编写成特定的编码格式下的数据,也就是将64比特位的数据编码成67比特位的数据。应当理解的是,Interlaken协议处理单元是针对Interlaken协议做出优化设计。所述协议处理单元还可能适配其它的芯片之间通信协议,例如XAUI协议和PCIE协议等。取决于具体采用的协议,还有传输接口的设置等,可以采用相应的编码方案和解码方案,从而可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。
在一种可能的实施方式中,通过所述协议处理单元,至少在对所述待发送第一数据进行数据切割得到切割后数据之前,对所述接口缓存中的所述待发送第一数据进行速率适配处理。如此,通过速率适配处理,有助于整体上数据传输的稳定性和可靠性。
在一种可能的实施方式中,通过所述协议处理单元,在对所述切割后数据进行循环冗余校验计算生成所述循环冗余计算结果的过程中同步生成控制字段用于记录所述切割后数据的描述信息。如此,生成的控制字段可以用于数据切割和控制字组装。例如,控制字段可以记录所述切割后数据的描述信息以体现协议层控制细节,如控制字结构等。
在一种可能的实施方式中,所述多个晶片是同质晶片或者异质晶片。在一种可能的实施方式中,所述多个晶片对应同一***单晶片中的功能块,所述多个晶片通过各自的晶片到晶片接口被封装到一起从而构成与所述***单晶片对应的***芯片组。在一种可能的实施方式中,所述多个晶片通过芯粒技术被封装到一起。应当理解的是,不同的半导体制备工艺,不同的集成封装方式,这些可能影响晶片到晶片接口互联的有关细节。例如,晶片到晶片接口互联可能用于同质晶片如一个中央处理器的晶片与另一个中央处理器的晶片之间的数据互联,也可能用于异质晶片如一个中央处理器的晶片与神经网络处理器的晶片之间的数据互联。
继续参阅图4,图4所示的一种晶片到晶片接口互联的方法,可以满足数据传输速率高和数据传输可靠性高的需求,还可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。图4所示的晶片到晶片接口互联的方法,其中的编码操作和解码操作可以是基于所述第一晶片的晶片到晶片接口所采用的具体协议,例如按照其中规定的编码格式和规则进行编码和解码。随着对数据传输带宽和数据传输速率提出了更高的要求,也在数据传输可靠性和数据纠错方面带来了更大的挑战。并且,还需要考虑到具体采用的编码方案和解码方案,可能因晶片到晶片接口所采用的协议、规则、策略等而有所变化,因此有必要在协议层处理部分提供一种通用的数据保护机制,能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护,包括能增强对链路数据的错误检测和提供误码纠正机制,进而可以提高晶片之间互联接口高速数据传输的可靠性,满足如网络、大规模数据中心和人工智能等领域的应用需求。下面详细说明这些改进。
在一种可能的实施方式中,所述编码操作基于第一编码方案,所述编码后数据包括多个压缩前数据,所述多个压缩前数据的大小均为第一数值的比特位,所述第一数值是基于所述第一编码方案,其中,对所述编码后数据进行扰码和组帧得到所述待发送第二数据,包括:对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据,并且对所述多个压缩前数据进行前向纠错计算生成冗余纠错码,将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,对更新后的所述编码后数据进行扰码和组帧得到所述待发送第二数据。如此,利用前向纠错(forward errorcorrection,FEC)技术,实现在通信***中控制传输错误并且对连同数据发送额外的信息进行错误恢复从而降低比特误码率。具体地,利用FEC技术,通过增强要发送的数据加上一定的冗余纠错码后一起发送,这样接收方可以根据纠错码对接收到的数据进行差错检测以及进行纠错。这样,在所述编码后数据所包括的多个压缩前数据的基础上,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据,并且对所述多个压缩前数据进行前向纠错计算生成冗余纠错码,将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据。如此,通过利用FEC技术来生成冗余纠错码,从而加强了数据保护,能够降低晶片之间接口数据传输的误码率,并且还对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据,这样就降低了数据规模,从而后续可以将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,例如可以在待发送的数据尾部添加冗余数据域,从而降低对数据传输带宽的影响。最后,对更新后的所述编码后数据进行扰码和组帧得到所述待发送第二数据,在增强数据保护的同时也降低了对数据传输带宽的影响。应当注意的是,所述编码操作基于第一编码方案,所述多个压缩前数据的大小均为第一数值的比特位,所述第一数值是基于所述第一编码方案。因此,上述增强的数据保护机制可以适配通信协议具体规定的第一编码方案,因此能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护。在一些实施例中,所述第一编码方案是64/67编码,所述第一数值是67。也就是说,所述多个压缩前数据的大小均为67个比特位。
进一步地,在一些实施例中,更新前的所述编码后数据的大小和所述更新后的所述编码后数据的大小一致,所述多个压缩后数据对应所述多个压缩前数据中的数据域,对所述多个压缩前数据进行前向纠错计算生成的所述冗余纠错码对应所述多个压缩前数据中的用于同步的比特域。如此,在基于第一编码方案进行编码操作得到所述编码后数据所包括的多个压缩前数据之后,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据。并且,更新前的所述编码后数据的大小和所述更新后的所述编码后数据的大小一致。这意味着,在利用FEC技术来生成冗余纠错码并且将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,没有改变数据的大小,而是通过压缩转码来获得了压缩的数据空间用于传输FEC算法的冗余数据域也就是FEC纠错码。并且,所述多个压缩后数据对应所述多个压缩前数据中的数据域,这意味着在保持数据域不变的前提下,用冗余部分来存储纠错码,因此整体上的编码后数据在更新前后的大小保持不变。例如,设多个压缩前数据是四个大小均为67比特位的数据(例如所述第一数值为67),在压缩后这四个大小均为67比特位的数据变成了261比特位,然后纠错码占据7个比特。这意味着,更新前的所述编码后数据的大小是四个大小均为67比特位的数据也就是268比特位,而所述更新后的所述编码后数据的大小是261比特位加上被纠错码占据的7个比特位因此仍为268比特位。这样在不改变链路传输带宽的情况下引入了FEC纠错机制,通过在接收端增加相应的反向转码和FEC解码操作,就可以增强数据保护。在一些实施例中,FEC算法可以是RS(536,522)算法,相应的冗余纠错码为140比特,可以保护5220比特的数据。也就是说,在发送端根据输入的数据块(大小为5220比特)计算出冗余纠错码(大小为140比特),将冗余纠错码合并在数据块的尾部后一并传输。在接收端根据帧定界后的FEC数据块及逆行FEC校验计算,如果发现数据域的数据有错,则可以根据纠错码进行纠错从而恢复出正确的数据。采用这种FEC算法的数据保护方案可以纠正数据域最多70个比特的错误。
进一步地,在一种可能的实施方式中,所述解码操作基于第一解码方案,所述第一编码方案对应所述第一解码方案,其中,对所述解码后数据进行数据聚合处理得到聚合后数据,包括:对所述解码后数据进行解压缩和反向转码后再进行前向纠错检验,然后进行数据聚合处理得到所述聚合后数据。如此,在发送端利用FEC技术来加强数据保护的基础上,也在接收端相应的反向转码和FEC解码操作(例如可以在接收端将压缩掉的用于同步的同步头比特恢复添加到对应的数据块位置),这样建立起了晶片之间数据互联的通用的数据保护机制,一方面利用FEC技术来生成冗余纠错码并且将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,这样可以通过FEC算法生成的冗余纠错码来纠正数据域内的错误和提供数据传输可靠性,另一方面通过压缩转码以确保整体上的编码后数据在更新前后的大小保持不变,这样避免了因为引入冗余纠错码而增加链路传输带宽,而且是利用了冗余数据域也就不影响数据域本身(对所述多个压缩前数据进行前向纠错计算生成的所述冗余纠错码对应所述多个压缩前数据中的用于同步的比特域),在保持链路传输带宽不变的前提下实现了FEC保护。另外,编码操作和解码操作都可以结合具体的通信协议的要求。例如,Interlaken协议规定了第一编码方案是64/67编码这种特定编码格式,则可以进行相应的压缩转码,例如将四个大小均为67比特位的数据进行压缩转码得到261比特位,从而提供7个比特位给冗余纠错码。换句话说,可以灵活地根据具体的通信协议的要求以及具体的编码解码方案来采用合适的FEC算法,从而可以适配通信协议具体规定的第一编码方案,因此能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护。另外,通过选择与第一编码方案对应的第一解码方案,在发送端利用FEC技术来加强数据保护的基础上,也在接收端相应的反向转码和FEC解码操作,这样建立起了晶片之间数据互联的通用的数据保护机制,能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护,包括能增强对链路数据的错误检测和提供误码纠正机制,进而可以提高晶片之间互联接口高速数据传输的可靠性,满足如网络、大规模数据中心和人工智能等领域的应用需求。
进一步地,在一种可能的实施方式中,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据,包括:压缩所述多个压缩前数据中的用于同步的比特域从而用于传输所述冗余纠错码,以及保持所述多个压缩前数据中的数据域。在一些实施例中,所述传输接口的与所述多个压缩前数据相关联的链路传输带宽等于所述传输接口的与所述多个压缩后数据相关联的链路传输带宽。在一些实施例中,对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据是基于所述第一编码方案,所述第一编码方案是基于与所述协议处理单元相关联的晶片到晶片接口互联协议。在一些实施例中,所述第一解码方案也是基于与所述协议处理单元相关联的晶片到晶片接口互联协议。如此,实现了灵活地根据具体的通信协议的要求以及具体的编码解码方案来采用合适的FEC算法,从而可以适配通信协议具体规定的第一编码方案,因此能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护。另外,通过选择与第一编码方案对应的第一解码方案,在发送端利用FEC技术来加强数据保护的基础上,也在接收端相应的反向转码和FEC解码操作,这样建立起了晶片之间数据互联的通用的数据保护机制,能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护,包括能增强对链路数据的错误检测和提供误码纠正机制,进而可以提高晶片之间互联接口高速数据传输的可靠性,满足如网络、大规模数据中心和人工智能等领域的应用需求。
图5为本申请实施例提供的一种通过晶片到晶片接口且基于第一编码方案进行数据发送过程的流程示意图。如图5所示,通过晶片到晶片接口且基于第一编码方案进行数据发送过程由以下步骤组成。
步骤S502:数据缓存。
步骤S504:数据切割。
步骤S506:循环冗余校验计算和生成控制字。
步骤S508:组装和条带化处理。
步骤S510:基于第一编码方案编码。
步骤S512:基于第一编码方案压缩转码。
步骤S514:前向纠错计算。
步骤S516:扰码和组帧。
图5所示的通过晶片到晶片接口且基于第一编码方案进行数据发送过程,可以参考在图4所示的晶片到晶片接口互联的方法,因此可以满足数据传输速率高和数据传输可靠性高的需求,还可以灵活地适配各种协议、规则、策略等在如数据传输、流量控制、调度功能、带宽、数据通道等方面的要求。进一步地,图5所示的通过晶片到晶片接口且基于第一编码方案进行数据发送过程,还在步骤S512基于第一编码方案压缩转码以及在步骤S514前向纠错计算,因此在协议层处理部分引入了基于FEC技术的通用的数据保护机制,能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护,包括能增强对链路数据的错误检测和提供误码纠正机制,进而可以提高晶片之间互联接口高速数据传输的可靠性,满足如网络、大规模数据中心和人工智能等领域的应用需求。
图6为本申请实施例提供的一种通过晶片到晶片接口且基于第一解码方案进行数据接收过程的流程示意图。如图6所示,通过晶片到晶片接口且基于第一解码方案进行数据接收过程由以下步骤组成。
步骤S602:定帧和解扰。
步骤S604:基于第一解码方案进行解码。
步骤S606:基于第一解码方案解压缩和反向转码。
步骤S608:前向纠错校验。
步骤S610:数据聚合处理。
步骤S612:循环冗余校验。
步骤S614:数据组合。
步骤S616:数据缓存。
图6所示的通过晶片到晶片接口且基于第一解码方案进行数据接收过程,可以参考在图4所示的晶片到晶片接口互联的方法,体现了在接收端采取的相应操作。并且进一步地,图6所示的通过晶片到晶片接口且基于第一解码方案进行数据接收过程,在步骤S606基于第一解码方案解压缩和反向转码以及在步骤S608前向纠错校验,因此在协议层处理部分,在发送端利用FEC技术来加强数据保护的基础上,也在接收端相应的反向转码和FEC解码操作,这样建立起了晶片之间数据互联的通用的数据保护机制。
参阅图5和图6,图5所示的通过晶片到晶片接口且基于第一编码方案进行数据发送过程,在步骤S512基于第一编码方案压缩转码以及在步骤S514前向纠错计算,图6所示的通过晶片到晶片接口且基于第一解码方案进行数据接收过程,在步骤S606基于第一解码方案解压缩和反向转码以及在步骤S608前向纠错校验,因此,实现了灵活地根据具体的通信协议的要求以及具体的编码解码方案来采用合适的FEC算法,从而可以适配通信协议具体规定的第一编码方案,因此能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护。通过选择与第一编码方案对应的第一解码方案,在发送端利用FEC技术来加强数据保护的基础上,也在接收端相应的反向转码和FEC解码操作,这样建立起了晶片之间数据互联的通用的数据保护机制,能够灵活地根据具体的通信协议的要求以及具体的编码解码方案来增强数据保护,包括能增强对链路数据的错误检测和提供误码纠正机制,进而可以提高晶片之间互联接口高速数据传输的可靠性,满足如网络、大规模数据中心和人工智能等领域的应用需求。
本申请实施例提供的方法和设备是基于同一发明构思的,由于方法及设备解决问题的原理相似,因此方法与设备的实施例、实施方式、示例或实现方式可以相互参见,其中重复之处不再赘述。本申请实施例还提供一种***,该***包括多个计算设备,每个计算设备的结构可以参照上述所描述的计算设备的结构。该***可实现的功能或者操作可以参照上述方法实施例中的具体实现步骤和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机指令,当所述计算机指令在计算机设备(如一个或者多个处理器)上运行时可以实现上述方法实施例中的方法步骤。所述计算机可读存储介质的处理器在执行上述方法步骤的具体实现可参照上述方法实施例中所描述的具体操作和/或上述装置实施例中所描述的具体功能,在此不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。本申请实施例可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质上实施的计算机程序产品的形式。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(如软盘、硬盘、磁带)、光介质、或者半导体介质。半导体介质可以是固态硬盘,也可以是随机存取存储器,闪存,只读存储器,可擦可编程只读存储器,电可擦可编程只读存储器,寄存器或任何其他形式的合适存储介质。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述。可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请实施例的精神和范围。本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并或删减;本申请实施例***中的模块可以根据实际需要进行划分、合并或删减。如果本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (16)

1.一种晶片到晶片接口互联的方法,其特征在于,多个晶片中的每一个晶片包括晶片到晶片接口用于该晶片和所述多个晶片中相对于该晶片的另一晶片之间的数据互联,所述方法应用于第一晶片,所述第一晶片是所述多个晶片中的任一晶片,所述第一晶片的晶片到晶片接口包括接口缓存、协议处理单元和传输接口,所述方法包括:
响应于所述第一晶片的数据发送,输入待发送第一数据到所述接口缓存;
通过所述协议处理单元,对所述待发送第一数据进行数据切割得到切割后数据,对所述切割后数据进行循环冗余校验计算生成循环冗余计算结果,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到分发后数据,对所述分发后数据进行编码操作得到编码后数据,对所述编码后数据进行扰码和组帧得到待发送第二数据;
通过所述传输接口,发送所述待发送第二数据,
响应于所述第一晶片的数据接收,通过所述传输接口获取待接收第一数据;
通过所述协议处理单元,对所述待接收第一数据进行定帧和解扰后再进行解码操作得到解码后数据,对所述解码后数据进行数据聚合处理得到聚合后数据,对所述聚合后数据进行循环冗余校验和数据组合得到待接收第二数据;
输入所述待接收第二数据到所述接口缓存,
所述编码操作基于第一编码方案,所述编码后数据包括多个压缩前数据,所述多个压缩前数据的大小均为第一数值的比特位,所述第一数值是基于所述第一编码方案,其中,对所述编码后数据进行扰码和组帧得到所述待发送第二数据,包括:对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的多个压缩后数据,并且对所述多个压缩前数据进行前向纠错计算生成冗余纠错码,将所述冗余纠错码加入所述多个压缩后数据从而更新所述编码后数据,对更新后的所述编码后数据进行扰码和组帧得到所述待发送第二数据,
更新前的所述编码后数据的大小和所述更新后的所述编码后数据的大小一致,所述多个压缩后数据对应所述多个压缩前数据中的数据域,对所述多个压缩前数据进行前向纠错计算生成的所述冗余纠错码对应所述多个压缩前数据中的用于同步的比特域,
所述解码操作基于第一解码方案,所述第一编码方案对应所述第一解码方案,其中,对所述解码后数据进行数据聚合处理得到聚合后数据,包括:对所述解码后数据进行解压缩和反向转码后再进行前向纠错检验,然后进行数据聚合处理得到所述聚合后数据,
对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据,包括:压缩所述多个压缩前数据中的用于同步的比特域从而用于传输所述冗余纠错码,以及保持所述多个压缩前数据中的数据域,
所述传输接口的与所述多个压缩前数据相关联的链路传输带宽等于所述传输接口的与所述多个压缩后数据相关联的链路传输带宽,
对所述多个压缩前数据分别进行压缩转码得到与所述多个压缩前数据一一对应的所述多个压缩后数据是基于所述第一编码方案,所述第一编码方案是基于与所述协议处理单元相关联的晶片到晶片接口互联协议。
2.根据权利要求1所述的方法,其特征在于,所述第一编码方案是64/67编码,所述第一解码方案是64/67解码。
3.根据权利要求1所述的方法,其特征在于,所述待发送第一数据来自与所述第一晶片相关联的用户数据接口,所述待接收第二数据被发送给所述用户数据接口。
4.根据权利要求3所述的方法,其特征在于,所述待接收第二数据在被发送给所述用户数据接口之前进行速率适配处理。
5.根据权利要求1所述的方法,其特征在于,所述待发送第二数据被发送到相对于所述第一晶片的第二晶片的晶片到晶片接口的传输接口。
6.根据权利要求1所述的方法,其特征在于,通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而进行组装和条带化分发得到所述分发后数据,包括:通过所述协议处理单元,将所述循环冗余计算结果添加到所述切割后数据中从而按照突发长度的设置进行组装和条带化分发得到所述分发后数据。
7.根据权利要求1所述的方法,其特征在于,所述传输接口是串行器解串器接口。
8.根据权利要求1所述的方法,其特征在于,所述协议处理单元是Interlaken协议处理单元。
9.根据权利要求1所述的方法,其特征在于,通过所述协议处理单元,至少在对所述待发送第一数据进行数据切割得到切割后数据之前,对所述接口缓存中的所述待发送第一数据进行速率适配处理。
10.根据权利要求1所述的方法,其特征在于,通过所述协议处理单元,在对所述切割后数据进行循环冗余校验计算生成所述循环冗余计算结果的过程中同步生成控制字段用于记录所述切割后数据的描述信息。
11.根据权利要求1所述的方法,其特征在于,所述多个晶片是同质晶片或者异质晶片。
12.根据权利要求1所述的方法,其特征在于,所述多个晶片对应同一***单晶片中的功能块,所述多个晶片通过各自的晶片到晶片接口被封装到一起从而构成与所述***单晶片对应的***芯片组。
13.根据权利要求1所述的方法,其特征在于,所述多个晶片通过芯粒技术被封装到一起。
14.根据权利要求1所述的方法,其特征在于,所述第一编码方案是64/67编码,所述第一数值是67。
15.一种计算机设备,其特征在于,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现根据权利要求1至14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在计算机设备上运行时使得所述计算机设备执行根据权利要求1至14中任一项所述的方法。
CN202310537595.3A 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质 Active CN116303191B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310976442.9A CN116881188B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质
CN202310537595.3A CN116303191B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310537595.3A CN116303191B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202310976442.9A Division CN116881188B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质

Publications (2)

Publication Number Publication Date
CN116303191A CN116303191A (zh) 2023-06-23
CN116303191B true CN116303191B (zh) 2023-09-15

Family

ID=86803433

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202310537595.3A Active CN116303191B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质
CN202310976442.9A Active CN116881188B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202310976442.9A Active CN116881188B (zh) 2023-05-15 2023-05-15 一种晶片到晶片接口互联的方法、设备及介质

Country Status (1)

Country Link
CN (2) CN116303191B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117135133B (zh) * 2023-10-20 2023-12-29 中诚华隆计算机技术有限公司 一种Chiplet芯片内的网络互连方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700313A (zh) * 2004-05-21 2005-11-23 凌阳科技股份有限公司 可扩展晶片连接脚位的方法及晶片、记忆体晶片
US9124383B1 (en) * 2010-09-23 2015-09-01 Ciena Corporation High capacity fiber-optic integrated transmission and switching systems
CN108111930A (zh) * 2017-12-15 2018-06-01 中国人民解放军国防科技大学 基于高密度存储器的多裸片高阶光交换结构
CN111710662A (zh) * 2020-07-01 2020-09-25 无锡中微亿芯有限公司 一种通用多裸片硅堆叠互连结构
CN115312475A (zh) * 2021-05-06 2022-11-08 美光科技公司 用于半导体裸片组合件的囊封翘曲减少及相关联方法及***

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105024948A (zh) * 2014-04-30 2015-11-04 深圳市中兴微电子技术有限公司 一种基于芯片的数据传输方法、装置及***
CN117749323A (zh) * 2021-01-25 2024-03-22 华为技术有限公司 数据传输的方法、装置、设备、***及可读存储介质
US20220320046A1 (en) * 2021-03-31 2022-10-06 Taiwan Semiconductor Manufacturing Company Limited Semiconductor package including semiconductor dies having different lattice directions and method of forming the same

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1700313A (zh) * 2004-05-21 2005-11-23 凌阳科技股份有限公司 可扩展晶片连接脚位的方法及晶片、记忆体晶片
US9124383B1 (en) * 2010-09-23 2015-09-01 Ciena Corporation High capacity fiber-optic integrated transmission and switching systems
CN108111930A (zh) * 2017-12-15 2018-06-01 中国人民解放军国防科技大学 基于高密度存储器的多裸片高阶光交换结构
CN111710662A (zh) * 2020-07-01 2020-09-25 无锡中微亿芯有限公司 一种通用多裸片硅堆叠互连结构
CN115312475A (zh) * 2021-05-06 2022-11-08 美光科技公司 用于半导体裸片组合件的囊封翘曲减少及相关联方法及***

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA 的GFP 通用成帧协议***设计;王秀翠等;《网络与信息安全 信息技术与信息化》;第197-200页 *

Also Published As

Publication number Publication date
CN116303191A (zh) 2023-06-23
CN116881188A (zh) 2023-10-13
CN116881188B (zh) 2024-01-09

Similar Documents

Publication Publication Date Title
US11907140B2 (en) Serial interface for semiconductor package
CN116303191B (zh) 一种晶片到晶片接口互联的方法、设备及介质
CN109426636B (zh) 一种fpga片间高位宽数据传输的方法及装置
US11023412B2 (en) RDMA data sending and receiving methods, electronic device, and readable storage medium
US11954059B2 (en) Signal processing chip and signal processing system
US11539461B2 (en) Encoding method and related device
WO2021147050A1 (zh) 一种基于PCIe的数据传输方法及装置
MX2014013560A (es) Aparato y metodo de transmision y recepcion de paquete en sistema de radiofusion y comunicacion.
US11695508B2 (en) Data processing method and related apparatus
CN102231141B (zh) 一种数据读、写方法及***
US11636061B2 (en) On-demand packetization for a chip-to-chip interface
WO2021249260A1 (zh) 数据的传输方法及装置、电路板、存储介质、电子装置
CN109818705B (zh) 传送、接收子速率信号方法及装置、设备
CN114301485B (zh) 接口组件和数据传输方法
WO2022062881A1 (zh) 一种数据处理方法、通信装置及通信设备
US11902171B2 (en) Communication system between dies and operation method thereof
WO2023137666A1 (zh) 数据传输方法和数据传输装置
WO2021169184A1 (zh) 一种线路编码方法及装置
WO2022193098A1 (zh) 数据传输方法、通信设备及***
US20220405223A1 (en) Method and system for data transactions on a communications interface
WO2023071309A1 (zh) 数据传输的方法、装置、设备、***及可读存储介质
CN115658576A (zh) PCIe和RapidIO复合任务包传递***及方法
CN118118417A (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
GR01 Patent grant
GR01 Patent grant