CN117897697A - 用于芯片到芯片接口的按需分组化 - Google Patents

用于芯片到芯片接口的按需分组化 Download PDF

Info

Publication number
CN117897697A
CN117897697A CN202280058949.XA CN202280058949A CN117897697A CN 117897697 A CN117897697 A CN 117897697A CN 202280058949 A CN202280058949 A CN 202280058949A CN 117897697 A CN117897697 A CN 117897697A
Authority
CN
China
Prior art keywords
protocol
words
interface
word
size
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
Application number
CN202280058949.XA
Other languages
English (en)
Inventor
K·斯里尼瓦桑
S·阿玛德
Y·阿贝尔
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.)
Xilinx Inc
Original Assignee
Xilinx Inc
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 Xilinx Inc filed Critical Xilinx Inc
Publication of CN117897697A publication Critical patent/CN117897697A/zh
Pending legal-status Critical Current

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/42Bus transfer protocol, e.g. handshake; Synchronisation
    • 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
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/4009Coupling between buses with data restructuring
    • 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/4009Coupling between buses with data restructuring
    • G06F13/4018Coupling between buses with data restructuring with data-width conversion
    • 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
    • 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/4265Bus transfer protocol, e.g. handshake; Synchronisation on a point to point bus
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3009Header conversion, routing tables or routing tags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9057Arrangements for supporting packet reassembly or resequencing

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)
  • Communication Control (AREA)

Abstract

本文中的实施方案描述按需分组化,其中太大而不能直接转换为用于芯片到芯片(C2C)接口(140)的数据字(DW)(130)的数据(115)改为被分组化。当识别大于C2C接口(140)的DW(130)的协议字(115)时,协议层(120a)可以执行分组化,其中多个协议字(115)被分组化并且作为传送被发送。在一个实施方案中,协议层(120a)移除协议字(120a)中的一些或全部控制数据或信号,使得协议字不再超过DW(130)的大小。然后,这些缩短的协议字(115)可以被映射到DW(130)并且作为单独的分组在C2C(140)上传输。然后,协议层(120a)可以收集从协议字(115)中移除的控制数据的部分,并将该数据作为单独的分组在C2C接口(140)上传输。

Description

用于芯片到芯片接口的按需分组化
技术领域
本公开的示例大体上涉及用于跨越芯片到芯片接口传送数据的按需分组化,其中所传送的数据字超过接口中的导线的数量。
背景技术
随着计算机系统变得更加紧密地集成,芯片到芯片(C2C)接口被更加广泛地使用。一种这样的计算系统是使用C2C接口来与一个或多个小芯片(例如,高速I/O或高带宽存储器(HBM))通信的锚定芯片(例如,处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或片上系统(SOC))。为了实现基于小芯片的架构,必须清楚地定义C2C接口。C2C接口受限于海滨(例如锚定芯片的侧面)的面积,该面积限制了可以通过接口的信号和导线的数量。因此,通过以高数据速率运行接口来实现所需的带宽。
然而,在芯片中执行的应用电路所使用的数据协议可以具有与C2C接口所支持的数据字(DW)的大小不同的字长。如果数据协议具有大于C2C接口所使用的DW的字长,则芯片不能执行协议字与DW之间的一对一映射。相反,单个协议字可被细分并作为多个DW跨C2C接口发送。然而,协议字可能仅略大于DW,这意味着浪费了C2C的许多带宽。另一种方法是限制总线接口的功能,使得必须跨C2C发送更少的数据,但是减少功能可能不是一个选项。
发明内容
一个实施方案描述了一种集成电路,其包括应用电路、芯片到芯片(C2C)接口以及连接在应用电路与C2C接口之间的协议层。该协议层被配置为从应用电路接收要在C2C接口上传输的多个协议字,每个协议字超过由C2C接口支持的数据字(DW)的大小,并且通过将多个协议字的子部分映射到单独的DW(其中子部分中的每个子部分等于或小于DW的大小)并且生成包含多个协议字的未被包括在子部分中的剩余部分的至少一个DW来对多个协议字进行分组化。
本文描述的另一实施方案是一种系统,其包括经由芯片到芯片(C2C)接口连接到第二集成电路的第一集成电路,其中该第一集成电路包括连接在应用电路与C2C接口之间的协议层。该协议层被配置为从应用电路接收要在C2C接口上传输的多个协议字,每个协议字超过由C2C接口支持的数据字(DW)的大小,并且对将多个协议字的子部分映射到单独的DW的多个协议字进行分组化,其中每个子部分等于或小于DW的大小,并且生成包含未被包括在该子部分中的多个协议字的剩余部分的至少一个DW。
本文描述的另一个实施方案是一种方法,该方法包括:在集成电路中的协议层处接收要在C2C接口上传输的多个协议字,其中多个协议字中的每个协议字都超过由C2C接口支持的数据字(DW)的大小;并且通过将多个协议字的子部分映射到单独的DW来对多个协议字进行分组化,其中该子部分中的每个子部分等于或小于DW的大小;并且生成包含多个协议字的未被包括在该子部分中的剩余部分的至少一个DW。
附图说明
为了能够详细理解上述特征的方式,可以通过参考示例性具体实施来获得上文简要概括的更具体的描述,其中一些示例性具体实施在附图中示出。然而,应当注意,附图仅示出了典型的示例性具体实施并且因此不应被视为限制其范围。
图1是根据示例的具有用于针对芯片到芯片接口执行按需分组化的分组化器的通信系统的框图。
图2是根据示例的用于执行按需分组化的流程图。
图3示出了根据示例的对跨C2C接口传输的数据进行分组化。
图4是根据示例的用于编码控制信号以避免分组化的流程图。
图5示出了根据示例的可编码及不可编码的控制信号。
图6是根据示例的用于解码控制信号并对在C2C接口处接收到的数据字执行反向分组化的流程图。
具体实施方式
下文中参考附图描述各种特征。应当注意,附图可以按比例绘制也可以不按比例绘制,并且类似结构或功能的元件在所有附图中由相似的附图标号表示。应当注意,附图仅旨在便于对特征的描述。它们并不旨在作为对特征的详尽描述也不旨在作为对权利要求的范围的限制。另外,所例示的示例不必具有所示出的所有方面或优点。结合特定示例描述的方面或优点不一定限于该示例,并且即使未被如此示出或未被如此明确描述也可在任何其他示例中得以实践。
本文中的实施方案描述按需分组化,其中太大而不能直接转换为用于C2C接口的DW的数据改为被分组化。例如,由于有限的导线,C2C可能能够支持仅288比特的DW,但是协议(例如,数据流协议)可以生成300比特的字。当在C2C接口上传输时,协议字可以被映射到两个DW,但是这将意味着C2C接口的576比特被用于仅传输300比特,导致C2C接口的带宽的52%的利用。相反,当识别大于C2C接口的DW的协议字时,协议层可以执行分组化,其中多个协议字被分组化并且作为传送被发送。在一个实施方案中,协议层移除协议字中的一些或全部控制数据或信号(例如,选通信号、冗余比特、错误校正比特、标志等),使得协议字不再超过DW的大小。然后,这些缩短的协议字可以被映射到DW并且作为单独的分组在C2C上传输。然后,协议层可以收集从协议字中移除的控制数据的部分,并将该数据作为单独的分组在C2C接口上传输。虽然这可能引入一些延迟(因为接收芯片必须等待接收到控制比特,然后其才能重建协议字),但是它减少了在C2C接口中浪费的带宽量。
在另一个实施方案中,代替对大的协议字进行分组化,协议层可以对控制数据进行编码以减小协议字的大小,使得它们等于或小于DW的大小。例如,控制数据可以具有连续的一或零的序列。代替存储每个一或零,协议层可以仅对协议字进行编码以指示该序列在何处开始或结束。然而,如果协议层不能编码协议字以使得其小于DW,则可以使用分组化。
图1是根据示例的具有针对C2C接口140执行按需分组化的分组化器125的通信系统100的框图。如图所示,系统100包括集成电路(IC或芯片)105A和105B。通信系统100可以是锚定小芯片系统,或者两个IC使用C2C接口直接通信的任何其他系统。IC 105可以是ASIC、FPGA、SoC、CPU、存储器等。一个IC 105可以是主IC,而另一个是辅IC,或者IC 105可以是对等体。在一个实施方案中,IC 105可以并排设置在同一衬底上,或者它们可以以堆叠形式布置。
在该示例中,每个IC 105包括类似的组件:应用电路110、协议层120、链路层130和物理(PHY)层135。应用电路110表示执行用户功能的任何电路。电路110可以包括不可编程(硬化)电路,诸如处理器核、数据处理引擎、图形处理单元等等。或者电路110可包括可编程电路,诸如可配置逻辑块(CLB)或可由用户即时定制的其它类型的可编程逻辑。在任何情况下,应用电路110生成使用C2C接口140传送到另一IC 105的数据。
应用电路110使用特定协议来向IC 105中的其它硬件元件(例如协议层120)传输数据。该协议通常不同于用于在C2C接口140上传输数据的协议。当在C2C接口140上传输从应用电路110接收到的数据时,协议层120执行转换以将与应用电路110所使用的协议兼容的协议字115映射到与C2C接口140兼容的DW 150。本文的实施方案不限于任何特定类型的协议,而是可以应用于其中内部电路使用与C2C接口140不同或不兼容的通信协议的任何IC。例如,应用电路110可以使用诸如高级可扩展接口(AXI)、AXI流、高级微控制器总线架构(AMBA-CXS)或快速外围组件互连(PCIe)的数据协议。
协议层120包括用于将协议字115转换为DW 150以及将DW 150转换为协议字115的分组化器125。尽管下文更详细地讨论,但一般来说,分组化器125(例如,协议层120中的电路)移除协议字115的控制数据中的一些或全部,使得所得缩短协议字115可一对一地映射到DW 150。然后,可以在单独的分组(例如,另一个DW 150)中发送所移除的控制数据。然后,接收IC 105中的分组化器125可以从分组(例如,DW 150)重建协议字115,并将协议字115传输到应用电路。以这种方式,相对于将一个协议字115映射到两个或更多个DW 150,可以更有效地使用C2C接口140的带宽。
IC 105还包括链路层130和PHY层135,用于沿着C2C接口140进行通信。如上所述,C2C接口140可以具有有限的不动产以在IC 105之间形成有线连接。结果,DW 150中的大小(例如,比特的数量)可小于协议字115的大小。但是可以执行分组化以便以有效的方式减小协议字115的大小以最大化C2C接口的带宽。
图2是根据示例的用于执行按需分组化的方法200的流程图。在框205处,协议层中的分组化器确定从应用电路接收到的协议字是否超过用于跨C2C接口传输数据的DW的大小。在该实施方案中,协议字有时大于DW,但其它时候不是。例如,一些协议字可以比其它协议字具有更多数据或更多控制比特。在另一示例中,应用电路可使用两个不同协议来将数据传输到协议层,其中一个协议(例如,流协议)具有超过DW的大小的协议字,但另一协议(例如,存储器映射协议)不具有。
如果协议字不超过DW的大小,则在框210处,分组化器执行协议字到DW的一对一映射。即,协议字中的所有比特可被映射到DW中的对应比特。结果,可以跨C2C接口在单个DW中传输协议字。
然而,如果协议字超过DW的大小,则在框215处,分组化器对多个协议字进行分组化。即,分组化器通过移除字中的控制数据/比特的全部或一部分来缩短协议字,使得缩短的协议字可以被映射到对应的DW并且在C2C接口上传输。
此分组化可表示为两个框,其中在框220处,分组化器将协议字的数据部分映射到单独的DW分组中。例如,分组化器可以从协议字中移除所有控制比特,使得这些字现在仅包含数据比特(例如,用户或应用数据)并且等于或小于DW。结果,这些协议字现在可以与DW一对一地映射。
在另一示例中,分组化器可仅移除控制比特的一部分(例如,选通信号)但留下其它类型的控制比特(例如,错误冗余比特),使得协议字包含控制比特的剩余部分以及数据比特或用户数据。再次,这假设移除控制比特的部分充分地缩短了协议字,使得它们等于或小于DW。无论是控制数据/比特的全部还是仅部分被移除,缩短的协议字然后可以被映射到DW并且作为相应的分组被发送。
在框225处,分组化器生成包含在框220处从多个协议字中的每个协议字移除的控制数据的DW分组。即,分组化器可收集在框220处从所有协议字移除的控制数据/比特,并且然后跨C2C接口在其自己的分组(例如,DW)中传输此控制数据。框220和225在图3中示出。
图3示出了根据示例的对跨C2C接口传输的数据进行分组化。在此示例中,发送器(例如,图1中的IC 105中的一者)想要将八个协议字115传输到接收器(例如,图1中的IC105中的另一者)。每个协议字115包括控制数据和用户数据。假设每个协议字115(控制数据加用户数据)的总大小超过C2C接口所支持的DW的大小。
为了减小协议字115的大小以使得它们可以被映射到DW,分组化器从每个协议字115中移除控制数据。如图3的左下所示,分组化器然后将协议字115的用户数据(例如,数据部分)作为单独的DW(即,DW 150B-150I)发送。分组化器还收集从协议字115移除的控制数据,并将其作为单独的分组(即,DW 150A)来传输。以这种方式,八个协议字115被分组化并且作为九个DW 150A-150I在C2C接口上传输。
虽然图3示出了移除所有控制数据,但如上文所提及,分组化器可仅必须移除一些控制数据以便充分减小协议字115的大小以执行与DW的一对一映射。此外,分组化为一组(其中收集它们的控制数据)的协议字115的数量可以是用户集属性。图3示出了分组化八个协议字115,但是在其他实施方案中,可以收集并分组化4或16个协议字115。例如,分组化器可以接收四个协议字,从那些字中移除一些或全部控制数据,并且在C2C接口上传输五个(或六个)DW,其中这五个DW中的一个DW(或六个DW中的两个DW)包括控制数据。
图3的右侧示出了在协议层处接收九个DW 150A-150I的接收器。为了将DW 150转换回由发送器生成的相同协议字115,分组化器必须接收包含控制数据的DW 150A。一旦接收到此分组,分组化器就可以通过将DW 150A中的控制数据与DW 150B-150I中的对应用户数据组合来重建协议字115。
相对于例如将每个协议字映射到两个DW,执行分组化可导致改进的带宽利用率。在这种情况下,C2C接口将必须传输用于八个协议字115的16个DW。虽然分组化可以注入一些额外的延迟(因为分组化器必须等待包含控制数据的DW 150A以便将DW 150B-150I转换回协议字115),但是C2C接口仅必须传输九个DW,这节省了可以用于传输其他协议字(例如,另一批八个协议字)的带宽。
图4是根据示例的用于编码控制信号以避免分组化的方法400的流程图。虽然相对于将协议字映射到多个DW,分组化可以改善性能,但是它确实增加了延迟。因此,将协议字中的控制数据进行编码使得协议字的大小等于或小于DW的大小可能是有利的,这是因为这样做将准许一对一映射且避免与分组化相关联的延迟。方法400示出了可以对控制数据进行编码的分组化器。
在框405处,分组化器确定协议字是否超过DW的大小。这可类似于方法200中的框205,其中在一些情况下,协议字可大于DW,但在其它情况下,协议字可等于或小于DW。如果协议字等于或小于DW,则方法400进行到方法200的框210,其中使用一对一映射来传输协议字。否则,方法400进行到框410,其中分组化器确定控制信号中是否存在空洞。换句话说,分组化器确定协议字中的控制数据是否可以被编码为更小的大小。通常,如果控制数据包括空洞(例如,两侧以零为边界的一的序列,或者两侧以一为边界的零的序列,或者一的序列在多个协议字的传送的非最后字中结束,或者一的序列在多个协议字的传送的最后字中开始),则这意味着控制数据不能被编码。在此情况下,方法400进行到方法200的框215,其中如图3中所示执行分组化。
图5示出了根据示例的可编码及不可编码的控制数据。即,图5示出了具有空洞的协议字的传送中的控制数据和不具有空洞的控制数据。图5中的控制数据为AXI流中的选通信号,但本文中的实施方案可应用于具有带有一或零的序列(例如,可识别模式)的控制数据的任何协议。在该示例中,带有阴影的控制数据部分指示“一”(有效比特),而控制数据的空部分指示“零”(无效比特)。此外,实施方案还可以应用于具有带有其他类型的可识别模式的控制数据的任何协议。例如,控制数据可以具有一和零的一个或多个模式(例如,0011001100),其可以使用较少的比特来编码。因此,实施方案不限于包含一或零的序列的控制数据。
图5中的前四个示例示出了用于传送不具有空洞的协议字的控制数据。在这些示例中,控制数据可以被编码或压缩。例如,代替传输控制数据中的所有比特,DW可以仅指示传送中的非最后协议字中的第一有效字节位置的位置(即,当TLAST为0时),或者传送中的最后协议字中的第一无效字节的位置(即,当TLAST为1时)。标志比特可用于指示何时用于传送的控制数据中的数据的所有字节有效。以这种方式,当选通信号中不存在空洞时,DW仅需要几个比特(例如,32比特或更少)来编码或表示所有控制数据。控制数据的此编码或压缩可足以减小协议字的大小,使得可在编码的协议字与DW之间执行一对一映射。例如,如果协议字是300比特但DW是288,则对协议字中的控制数据进行编码可以将其减少到288比特或更少,使得每个比特可以被映射到DW的对应比特。
图5中的底部六个示例示出了在控制数据中存在空洞的示例,这意味着控制数据不能被编码或压缩。使用AXI流作为示例,如果以下条件中的一个或多个条件为假,则协议字的传送具有空洞:
TLAST==0且TKEEP[W-1]==0
TKEEP[N-1:0]都是1,并且TKEEP[M-1:N+K]都是1,并且TKEEP[N+K-1:N]都是0,其中K>=1,M>N+1,M<=W。
TKEEP[N-1:0]都是0,并且TKEEP[M-1:N+K]都是0,并且TKEEP[N+K-1:N]都是1,其中K>=1,M>N+1,M<=W。
TLAST==1且TKEEP[0]==0,其中W是AXI-S接口处的TKEEP信号的宽度,M是协议字中的数据比特,并且N是协议字中的控制比特。
返回到方法400,假设在传送中不存在空洞(例如,一组协议字),方法400进行到框415,其中分组化器对控制数据进行编码,使得经编码协议字的大小不超过DW的大小。使用图5中的示例,DW的一些比特用于指示传送中的非最后协议字中的第一有效字节位置的位置,或者传送中的最后协议字中的第一无效字节位置的位置。标志字节可用于指示何时用于传送的控制数据中的数据的所有字节有效。
在框420处,分组化器可在到相应DW的传送中针对编码的协议字执行一对一映射。结果,编码的协议字可以在C2C上以与原始不超过DW的大小的协议字相同的效率进行传输。因此,对协议字进行编码避免了由分组化引入的延迟。
可以在数学上描述对协议字的编码。假设协议(例如,总线接口)向协议层传输包括M个数据比特(例如,用户数据)和N个控制比特的字。假设DW具有可用的D条导线。该问题陈述如下:假定M+N>D,M<D,N<D,定义了在受限功能下将N限制为K的方法,使得M+K≤D,并且定义了当N不能被限制为K时将N分组化的方法,使得可以实现带宽和延迟之间的期望折衷。当传送到达使得N不能被压缩为K时,分组化器对传送进行分组化,如框410的“是”结果所示。分组化可以表示如下:令R为正整数,使得N*R≤D-1<N*(R+1)。分组化器累积R个传送,剥离N个控制比特,并将它们分别累积在寄存器中。一旦累积了R个传送,分组化器就发送“报头”微片,其将是R个控制比特,随后是R个传送。这在上面的图3中示出。
否则,如果N可以被压缩为K,则分组化器压缩协议字,使得这些编码字可以与DW一对一地映射。这由方法400中的框415和420示出。
此外,方法400可经修改以与始终生成超过DW的大小的协议字的协议一起使用。在这种情况下,可以省略块405的逻辑,这是因为协议字总是大于DW。然而,分组化仍然是“按需”的,这是因为分组化器可以即时确定协议字是否可以被编码或压缩(例如,当控制数据没有空洞时),并且如果是,则在不执行分组化的情况下传输编码的协议字。然而,如果协议字不能被压缩或编码使得它们的大小被减小到等于或小于DW的大小,则执行分组化。
图6是根据示例的用于解码控制信号并且对在芯片到芯片接口处接收到的数据字执行反向分组化的方法600的流程图。虽然方法400描述了发送器IC中的分组化器中的逻辑,但是方法600描述了接收器IC中的分组化器中的逻辑。
在框605处,分组化器在跨C2C接口传输之后从PHY层和链路层接收DW。在框610处,分组化器确定DW是正常(即,未被编码或分组化)发送、使用编码的控制数据还是通过分组化。例如,传送中的第一DW可具有用于指示传输分组化器如何处理协议字(例如,与DW的直接一对一映射、执行控制数据编码或分组化)的一个或多个比特。
如果DW被正常发送(即,原始协议字不超过DW的大小),则方法600进行到框615,其中分组化器将DW转换回协议字。
然而,如果传输分组化器对控制数据进行编码,则方法600进行到框620,其中接收分组化器对DW中的控制数据进行解码。即,分组化器可评估编码的数据并确定传送中的非最后协议字中的第一有效字节位置的位置,或传送中的最后协议字中的第一无效字节位置的位置。或者分组化器可以评估标志比特以确定何时用于传送的控制数据中的数据的所有字节都有效。
在框625处,一旦解码,分组化器就可使用此信息来将解码的DW转换为原始协议字。
如果DW被分组化,则方法600进行到框630,其中接收分组化器等待直到接收到整个分组传送为止。例如,如图3中所示,分组化器可知道每个分组化传送包括九个DW,并且像这样,当检测到DW为传送中的第一个字时,分组化器等待直到接收到该传送中的所有九个DW为止。
在框635处,分组化器将移除的控制数据合并回协议字中。以这种方式,分组化过程被反转,使得原始协议字被重建,如图3的最后步骤所示。
在前文中,参考了在本公开中呈现的实施方案。然而,本公开的范围不限于具体描述的实施方案。相反,所描述的特征和元件的任何组合(无论是否涉及不同的实施方案)都被设想为实现和实践所设想的实施方案。此外,尽管本文所公开的实施方案可以实现优于其他可能的解决方案或优于现有技术的优点,但特定的优点是否通过给定的实施方案被实现不限制本公开的范围。因此,前述方面、特征、实施方案和优点只是例示性的,并且不被认为是所附权利要求的要素或限制,除非在权利要求中有明确记载。
如本领域的技术人员将理解的,本文所公开的实施方案可以体现为系统、方法或计算机程序产品。因此,各方面可以采用完全硬件实施方案、完全软件实施方案(包括固件、驻留软件、微代码等)或组合软件和硬件方面的实施方案的形式,其在本文中全都可以被一般地称为“电路”、“模块”或“系统”。此外,各方面可以采用体现在一个或多个计算机可读介质中的计算机程序产品的形式,该一个或多个计算机可读介质具有体现在其上的计算机可读程序代码。
可以利用一个或多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是(例如但不限于)电、磁、光、电磁、红外或半导体系统、装置或设备或者前述各项的任何合适的组合。计算机可读存储介质的更具体示例(不完全列表)将包括以下:具有一条或多条导线的电连接件;便携式计算机软盘;硬盘;随机存取存储器(RAM);只读存储器(ROM);可擦除可编程只读存储器(EPROM或闪存);光纤;便携式压缩盘只读存储器(CD-ROM);光存储设备;磁存储设备;或前述各项的任何合适的组合。在本文件的上下文中,计算机可读存储介质是可包含或存储供指令执行系统、装置或设备使用或者与其结合使用的程序的任何有形介质。
计算机可读信号介质可包括具有体现在其中(例如,在基带中或作为载波的一部分)的计算机可读程序代码的传播数据信号。此类传播信号可以采用多种形式中的任何一种形式,包括但不限于电磁、光或它们的任何合适的组合。计算机可读信号介质可以是并非计算机可读存储介质并且可以传达、传播或传送供指令执行系统、装置或设备使用或者与其结合使用的程序的任何计算机可读介质。
体现在计算机可读介质上的程序代码可以使用任何适当的介质来传输,包括但不限于无线、有线、光纤电缆、RF等或前述各项的任何合适的组合。
用于进行针对本公开的各方面的操作的计算机程序代码可以一种或多种编程语言的任何组合来编写,包括面向对象的编程语言(诸如Java、Smalltalk、C++等等)和常规过程式编程语言(诸如“C”编程语言或类似的编程语言)。程序代码可整个地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上执行并且部分地在远程计算机上执行或者整个地在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。
本公开的各方面在下文参考根据本公开中呈现的实施方案的方法、装置(系统)和计算机程序产品的流程图图示和/或框图进行描述。应当理解,流程图图示和/或框图的每个框以及流程图图示和/或框图中的框的组合可以通过计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的方式。
这些计算机程序指令还可以存储在可以指引计算机、其他可编程数据处理装置或其他设备以特定方式起作用的计算机可读介质中,使得存储在计算机可读介质中的指令产生包括实现在流程图和/或框图的一个或多个框中指定的功能/动作的指令的制品。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使一系列操作步骤在计算机、其他可编程装置或其他设备上执行以产生计算机实现的方法,使得在计算机或其他可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或多个框中指定的功能/动作的过程。
图中的流程图和框图示出了根据本发明的各种示例的系统、方法和计算机程序产品的可能具体实施的架构、功能性和操作。就这一点而言,流程图或框图中的每个框可以表示指令的包括用于实现指定逻辑功能的一个或多个可执行指令的模块、段或部分。在一些另选的具体实施中,框中指出的功能可以不按照图中指出的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反顺序执行。还将注意到,框图和/或流程图图示中的每个框以及框图和/或流程图图示中的框的组合可由执行指定功能或动作或者执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现。
所公开的技术的一些非限制性示例可表示为如下:
实施例1.一种集成电路,所述集成电路包括:
应用电路;
芯片到芯片(C2C)接口;和
协议层,所述协议层连接在所述应用电路与所述C2C接口之间,其中,所述协议层被配置为:
从所述应用电路接收要在所述C2C接口上传输的多个协议字,每个协议字超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的剩余部分。
实施例2.根据实施例1所述的集成电路,其中所述多个协议字的所述剩余部分包括所述多个协议字中的控制数据,其中所述子部分包括用户数据。
实施例3.根据实施例2所述的集成电路,其中所述至少一个DW包含来自所述多个协议字中的每个协议字的控制数据,但是不包含来自所述多个协议字的用户数据。
实施例4.根据实施例1所述的集成电路,其中所述DW的所述大小被限制为所述C2C接口中的导线的数量。
实施例5.根据实施例1所述的集成电路,所述集成电路还包括:
链路层;和
物理(PHY)层,其中所述链路层和所述PHY层耦合在所述协议层和所述C2C接口之间。
实施例6.根据实施例1所述的集成电路,其中所述协议层被配置为:在对所述多个协议字进行分组化之前,确定所述多个协议字中的至少一个协议字包括不能被编码以减小所述协议字中的所述至少一个协议字的所述大小以使得其等于或小于所述DW的所述大小的控制数据。
实施例7.根据实施例1所述的集成电路,其中所述协议层被配置为:
从所述应用电路接收第一协议字;
确定所述第一协议字中的控制数据能够被编码以减小所述第一协议字的所述大小,使得其等于或小于所述DW的所述大小;
在所述C2C接口上传输包括所编码的控制数据的所述第一协议字而不进行分组化。
实施例8.根据实施例7所述的集成电路,其中所编码的控制数据指示可识别模式在所述第一协议字中的位置。
实施例9.一种系统,所述系统包括:
第一集成电路,所述第一集成电路经由芯片到芯片(C2C)
接口连接到第二集成电路,
其中所述第一集成电路包括连接在应用电路和所述C2C接口之间的协议层,其中所述协议层被配置为:
从所述应用电路接收要在所述C2C接口上传输的多个协议字,每个协议字超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的所述剩余部分。
实施例10.根据实施例9所述的系统,其中所述多个协议字的所述剩余部分包括所述多个协议字中的控制数据,其中所述子部分包括用户数据。
实施例11.根据实施例10所述的系统,其中所述至少一个DW包含来自所述多个协议字中的每个协议字的控制数据,但是不包含来自所述多个协议字的用户数据。
实施例12.根据实施例9所述的系统,其中所述DW的所述大小被限制为所述C2C接口中的导线的数量。
实施例13.根据实施例9所述的系统,所述系统还包括:
链路层;和
物理(PHY)层,其中所述链路层和所述PHY层耦合在所述协议层和所述C2C接口之间。
实施例14.根据实施例9所述的系统,其中所述协议层被配置为:在对所述多个协议字进行分组化之前,确定所述多个协议字中的至少一个协议字包括不能被编码以减小所述协议字中的所述至少一个协议字的所述大小以使得其等于或小于所述DW的所述大小的控制数据。
实施例15.根据实施例9所述的系统,其中所述协议层被配置为:
从所述应用电路接收第一协议字;
确定所述第一协议字中的控制数据能够被编码以减小所述第一协议字的所述大小,使得其等于或小于所述DW的所述大小;
在所述C2C接口上传输包括所编码的控制数据的所述第一协议字而不进行分组化。
实施例16.根据实施例15所述的系统,其中所编码的控制数据指示可识别模式在所述第一协议字中的位置。
实施例17.一种方法,所述方法包括:
在集成电路中的协议层处接收要在C2C接口上传输的多个协议字,其中所述多个协议字中的每个协议字都超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的所述剩余部分。
实施例18.根据实施例17所述的方法,其中所述多个协议字的所述剩余部分包括所述多个协议字中的控制数据,其中所述子部分包括用户数据。
实施例19.根据实施例18所述的方法,其中所述至少一个DW包含来自所述多个协议字中的每个协议字的控制数据,但是不包含来自所述多个协议字的用户数据。
实施例20.根据实施例17所述的方法,其中所述DW的所述大小被限制为所述C2C接口中的导线的数量。
虽然前述内容针对特定示例,但在不脱离本发明的基本范围的情况下可以设计出其他的和另外的示例,并且本发明的范围由所附权利要求确定。

Claims (15)

1.一种集成电路,所述集成电路包括:
应用电路;
芯片到芯片(C2C)接口;和
协议层,所述协议层连接在所述应用电路与所述C2C接口之间,其中,所述协议层被配置为:
从所述应用电路接收要在所述C2C接口上传输的多个协议字,每个协议字超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的剩余部分。
2.根据权利要求1所述的集成电路,其中所述多个协议字的所述剩余部分包括所述多个协议字中的控制数据,其中所述子部分包括用户数据。
3.根据权利要求2所述的集成电路,其中所述至少一个DW包含来自所述多个协议字中的每个协议字的控制数据,但是不包含来自所述多个协议字的用户数据。
4.根据权利要求1所述的集成电路,其中,所述DW的所述大小被限制为所述C2C接口中的导线的数量。
5.根据权利要求1所述的集成电路,所述集成电路还包括:
链路层;和
物理(PHY)层,其中所述链路层和所述PHY层耦合在所述协议层和所述C2C接口之间。
6.根据权利要求1所述的集成电路,其中所述协议层被配置为:在对所述多个协议字进行分组化之前,确定所述多个协议字中的至少一个协议字包括不能被编码以减小所述协议字中的所述至少一个协议字的所述大小以使得其等于或小于所述DW的所述大小的控制数据。
7.根据权利要求1所述的集成电路,其中所述协议层被配置为:
从所述应用电路接收第一协议字;
确定所述第一协议字中的控制数据能够被编码以减小所述第一协议字的所述大小,使得其等于或小于所述DW的所述大小;以及
在所述C2C接口上传输包括所编码的控制数据的所述第一协议字而不进行分组化;其中所编码的控制数据指示可识别模式在所述第一协议字中的位置。
8.一种系统,所述系统包括:
第一集成电路,所述第一集成电路经由芯片到芯片(C2C)接口连接到第二集成电路,
其中所述第一集成电路包括连接在应用电路和所述C2C接口之间的协议层,其中所述协议层被配置为:
从所述应用电路接收要在所述C2C接口上传输的多个协议字,每个协议字超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的所述剩余部分。
9.根据权利要求8所述的系统,其中所述多个协议字的所述剩余部分包括所述多个协议字中的控制数据,其中所述子部分包括用户数据,并且其中所述至少一个DW包含来自所述多个协议字中的每个协议字的控制数据,但是不包含来自所述多个协议字的用户数据。
10.根据权利要求8所述的系统,其中所述DW的所述大小被限制为所述C2C接口中的导线的数量。
11.根据权利要求8所述的系统,所述系统还包括:
链路层;和
物理(PHY)层,其中所述链路层和所述PHY层耦合在所述协议层和所述C2C接口之间。
12.根据权利要求8所述的系统,其中,所述协议层被配置为:在对所述多个协议字进行分组化之前,确定所述多个协议字中的至少一个协议字包括不能被编码以减小所述协议字中的所述至少一个协议字的所述大小以使得其等于或小于所述DW的所述大小的控制数据。
13.根据权利要求8所述的系统,其中所述协议层被配置为:
从所述应用电路接收第一协议字;
确定所述第一协议字中的控制数据能够被编码以减小所述第一协议字的所述大小,使得其等于或小于所述DW的所述大小;
在所述C2C接口上传输包括所编码的控制数据的所述第一协议字而不进行分组化。
14.根据权利要求13所述的系统,其中所编码的控制数据指示可识别模式在所述第一协议字中的位置。
15.一种方法,所述方法包括:
在集成电路中的协议层处接收要在C2C接口上传输的多个协议字,其中所述多个协议字中的每个协议字都超过由所述C2C接口支持的数据字(DW)的大小,以及
通过以下步骤对所述多个协议字进行分组化:
将所述多个协议字的子部分映射到单独的DW,其中所述子部分中的每个子部分等于或小于所述DW的所述大小,以及
生成至少一个DW,所述至少一个DW包含未被包括在所述子部分中的所述多个协议字的所述剩余部分。
CN202280058949.XA 2021-09-01 2022-05-26 用于芯片到芯片接口的按需分组化 Pending CN117897697A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/464,642 2021-09-01
US17/464,642 US11636061B2 (en) 2021-09-01 2021-09-01 On-demand packetization for a chip-to-chip interface
PCT/US2022/031208 WO2023033887A1 (en) 2021-09-01 2022-05-26 On-demand packetization for a chip-to-chip interface

Publications (1)

Publication Number Publication Date
CN117897697A true CN117897697A (zh) 2024-04-16

Family

ID=82100289

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280058949.XA Pending CN117897697A (zh) 2021-09-01 2022-05-26 用于芯片到芯片接口的按需分组化

Country Status (4)

Country Link
US (1) US11636061B2 (zh)
KR (1) KR20240046830A (zh)
CN (1) CN117897697A (zh)
WO (1) WO2023033887A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240045822A1 (en) * 2022-08-02 2024-02-08 Xilinx, Inc. Systems and Methods to Transport Memory Mapped Traffic amongst integrated circuit devices

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7006898B2 (en) * 2003-07-17 2006-02-28 Proton Energy Systems, Inc. Method and apparatus for operating and controlling a power system
US7398325B2 (en) 2003-09-04 2008-07-08 International Business Machines Corporation Header compression in messages
US7437500B2 (en) * 2005-08-05 2008-10-14 Lsi Corporation Configurable high-speed memory interface subsystem
US8972828B1 (en) * 2008-09-18 2015-03-03 Compass Electro Optical Systems Ltd. High speed interconnect protocol and method
US10230665B2 (en) 2013-12-20 2019-03-12 Intel Corporation Hierarchical/lossless packet preemption to reduce latency jitter in flow-controlled packet-based networks
US10135760B2 (en) * 2015-06-30 2018-11-20 Ciena Corporation Flexible Ethernet chip-to-chip inteface systems and methods
US11249837B2 (en) 2019-03-01 2022-02-15 Intel Corporation Flit-based parallel-forward error correction and parity
US11973624B2 (en) * 2019-11-29 2024-04-30 Intel Corporation Extended link-training time negotiated on link start-up

Also Published As

Publication number Publication date
US20230066736A1 (en) 2023-03-02
WO2023033887A1 (en) 2023-03-09
US11636061B2 (en) 2023-04-25
KR20240046830A (ko) 2024-04-09

Similar Documents

Publication Publication Date Title
US8111704B2 (en) Multiple compression techniques for packetized information
KR101645502B1 (ko) 다중―프로토콜 sereds phy 장치
US7849252B2 (en) Providing a prefix for a packet header
US7243173B2 (en) Low protocol, high speed serial transfer for intra-board or inter-board data communication
US20100027559A1 (en) Transmission device and data extended transmission method
US8935453B2 (en) Completion combining to improve effective link bandwidth by disposing at end of two-end link a matching engine for outstanding non-posted transactions
US10802995B2 (en) Unified address space for multiple hardware accelerators using dedicated low latency links
KR100881191B1 (ko) 멀티 프로토콜 씨리얼 인터페이스 장치 및 그에 따른soc 장치
US20100138573A1 (en) System including transmitter and receiver
JP2006526363A (ja) Pciエクスプレスにおけるパケット結合
CN111064545B (zh) 基于fpga实现具有spw接口的专网地检装置及方法
CN117897697A (zh) 用于芯片到芯片接口的按需分组化
CN104991883A (zh) 片间互联的发送、接收装置及发送、接收方法及系统
US7386626B2 (en) Bandwidth, framing and error detection in communications between multi-processor clusters of multi-cluster computer systems
WO2019223673A1 (zh) 一种编码方法及相关设备
US7849243B2 (en) Enabling flexibility of packet length in a communication protocol
Saadé et al. A system-level overview and comparison of three High-Speed Serial Links: USB 3.0, PCI Express 2.0 and LLI 1.0
CN116107953A (zh) 芯粒间的通讯方法和系统
US20230035810A1 (en) Method for data processing of frame receiving of an interconnection protocol and storage device
CN115706661A (zh) 同步高速信令互连
CN111865741B (zh) 数据传输方法及数据传输系统
CN116795763B (zh) 基于axi协议的数据分组传输的方法、片上系统和芯片
US20220405223A1 (en) Method and system for data transactions on a communications interface
US20240163010A1 (en) Operation method for an electronic device and an electronic device capable of performing an advanced line coding
US20240121326A1 (en) Operation method for an electronic device and an electronic device capable of performing an advanced line coding

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication