CN116235487A - 多协议标头处理 - Google Patents
多协议标头处理 Download PDFInfo
- Publication number
- CN116235487A CN116235487A CN202180066491.8A CN202180066491A CN116235487A CN 116235487 A CN116235487 A CN 116235487A CN 202180066491 A CN202180066491 A CN 202180066491A CN 116235487 A CN116235487 A CN 116235487A
- Authority
- CN
- China
- Prior art keywords
- packet
- field
- protocol
- command
- chiplet
- 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 claims abstract description 49
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000015654 memory Effects 0.000 claims description 127
- 230000008901 benefit Effects 0.000 abstract description 8
- 238000005538 encapsulation Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 26
- 230000004044 response Effects 0.000 description 14
- 230000005540 biological transmission Effects 0.000 description 13
- 239000000872 buffer Substances 0.000 description 12
- 238000013461 design Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000002131 composite material Substances 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 239000000758 substrate Substances 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000033228 biological regulation Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000020169 heat generation Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 239000012212 insulator Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本公开的实施方案涉及用于处理支持多个协议的标头的系统及方法。分组的标头包含指示所述分组的所述协议的桥接类型(BTYPE)字段。基于所述BTYPE字段的值,所述分组的命令字段被不同地解译。本公开的实施方案的益处之一是,可使用单个网络来携载不同协议的分组,而无需封装开销。
Description
优先权申请
本申请案主张2020年8月31日申请的序列号为17/007,748的美国申请案的权益,所述申请案的全部内容以引用的方式并入本文中。
关于政府支持的声明
本发明根据第HR00111830003号协议在美国政府的支持下完成,由美国国防部高级研究计划局(DARPA)授予。美国政府对本发明拥有一定权利。
技术领域
本公开的实施例大体上涉及网络协议,且更具体来说,涉及使用标头在由网络支持的多个协议之间进行区分的联网。
背景技术
网络支持特定协议,且根据为所述协议定义的分组格式来解译分组。分组的字段在分组内的预定义位置中,且对于所有分组一致地解译。例如,因特网协议(IP)我们具有4位版本字段及4位因特网标头长度字段、6位差异化服务代码点字段、2位显式拥塞通知字段及16位总长度字段的IP标头,所述字段以所述顺序出现在每一IP分组的前32位中。
小芯片是一种用于集成各种处理功能性的新兴技术。一般来说,小芯片系统由集成在中介层上且封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))组成。此布置与在一个衬底(例如,单个裸片)上含有相异装置块(例如,知识产权块)的单个芯片(例如,IC)(例如芯片上系统(SoC))或集成在板上的离散封装装置相异。一般来说,与离散封装的装置相比,小芯片提供更好性能(例如,更低功耗、降低的延迟等),且小芯片提供比单裸片芯片更大的生产益处。这些生产益处可包含更高良率或减少的开发成本及时间。
小芯片系统通常由一或多个应用小芯片及支持小芯片组成。此处,应用小芯片与支持小芯片之间的区别仅涉及小芯片系统的可能设计场景。因此,例如,合成视觉小芯片系统可包含用于产生合成视觉输出的应用小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型用例中,合成视觉设计者可设计应用小芯片,且从其他方获得支持小芯片。因此,通过避免设计及生产体现在支持小芯片中的功能性,减少设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很困难的IP块的紧密集成,例如使用不同特征大小的IP块。因此,例如,在先前制造期间设计的具有较大特征尺寸的装置,或其中特征大小针对功率、速度或热量产生进行优化—如针对传感器可能发生的那样—的那些装置可与具有不同特征大小的装置集成,这比试图在单个裸片上这样做更容易。另外,通过减小裸片的总体大小,小芯片的良率趋向于高于更复杂的单裸片装置的良率。
附图说明
将从下面给出的详细描述及从本公开的各种实施例的附图中更充分地理解本公开。然而,图式不应被视为将本公开限定于特定实施例,而仅用于解释及理解。
图1A及1B说明根据实施例的小芯片系统的实例。
图2说明根据实施例的存储器控制器小芯片的实例的组件。
图3说明根据实施例的使用小芯片协议接口(CPI)网络在小芯片之间路由的实例。
图4是根据本公开的一些实施例的包括多个流量控制单元(微片(flit))的数据分组的框图。
图5是展示根据本公开的一些实施例的由电路在处理具有支持多个协议的标头的分组时执行的方法的操作的流程图。
图6是展示根据本公开的一些实施例的由电路在处理具有支持多个协议的标头的分组时执行的方法的操作的流程图。
图7是展示根据本公开的一些实施例的由电路在产生支持多个协议的分组的标头时执行的方法的操作的流程图。
图8是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的实施方案涉及用于处理支持多个协议的标头的系统及方法。分组的标头包含指示分组的协议的桥接类型(BTYPE)字段。基于BTYPE字段的值,分组的命令字段被不同地解译。
本公开的实施方案的益处之一是,可使用单个网络来携载不同协议的分组,而无需封装的开销。这允许支持现有协议的现有网络支持新协议,而无需修改现有网络客户端。减少传送、接收及解封装封装数据所花费的处理循环。另外,在执行处理时所消耗的功率减少。由于减少网络开销,包括通信装置的系统的性能也得以提高。其它益处对于受益于本公开的相关领域的技术人员来说将是显而易见的。
图1A及1B说明根据实施例的小芯片系统110的实例。图1A是安装在外围板105上的小芯片系统110的表示,外围板105可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统110包含封装衬底115、中介层120及四个小芯片:应用小芯片125、主机接口小芯片135、存储器控制器小芯片140及存储器装置小芯片150。其它系统可包含许多额外小芯片来提供额外功能性,如将从以下论述明白。小芯片系统110的封装说明为具有盖子或盖165,但可使用用于小芯片系统的其它封装技术及结构。图1B是为清晰起见标记小芯片系统中的组件的框图。
应用小芯片125被说明为包含芯片上网络(NOC)130以支持用于小芯片间通信的小芯片网络155。在实例实施例中,NOC 130可包含在应用小芯片125上。在实例中,NOC 130可响应于所选择支持小芯片(例如,小芯片135、140及150)来定义,从而使设计者能够为NOC130选择适当数目的小芯片网络连接或交换机。在实例中,NOC 130可位于单独小芯片或甚至在中介层120内。在本文讨论的实例中,NOC 130实施CPI网络。
CPI是一种基于分组的网络,其支持虚拟通道以实现小芯片之间的灵活其高速的交互。CPI实现从小芯片内网络到小芯片网络155的桥接。例如,高级可扩展接口(AXI)是设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖各种物理设计选项,例如物理通道的数目、信号时序、功率等。在单个芯片中,通常选择这些选项来满足设计目标,例如功耗、速度等。然而,为实现小芯片系统的灵活性,使用适配器(例如CPI)在可实施于在各种小芯片中的各种AXI设计选项之间进行介接。通过启用物理通道到虚拟通道映射且用分组化协议封装基于时间的信令,CPI跨越小芯片网络155对小芯片内网络进行桥接。
CPI可使用各种不同的物理层来传输分组。物理层可包含简单的导电连接或驱动器,以增加电压或以其它方式促进在更长距离内传输信号。一个此物理层的实例可包含高级接口总线(AIB),其在各种实例中可在中介层120中实施。AIB使用具有转发时钟的源同步数据传送来传输及接收数据。关于所传输时钟,分组以单数据速率(SDR)或双数据速率(DDR)跨域AIB传送。AIB支持各种通道宽度。在SDR模式下操作时,AIB通道宽度为20位的倍数(20、40、60、…),且针对DDR模式为40位的倍数:(40、80、120、…)。AIB通道宽度包含传输(TX)及接收(RX)信号。通道可经配置以具有对称数目的TX及RX输入/输出(I/O),或具有非对称数目的传输器及接收器(例如,全为传输器或全为接收器)。取决于提供主时钟的小芯片,通道可充当AIB主通道或从通道。AIB I/O单元支持三种时控模式:异步(即非时控)、SDR及DDR。在各种实例中,非时控模式用于时钟及一些控制信号。SDR模式可使用专用的仅SDRI/O单元或双用的SDR/DDR I/O单元。
在实例中,CPI分组协议(例如,点对点或可路由)可在AIB通道内使用对称接收及传输I/O单元。CPI流式传输协议允许更灵活地使用AIB I/O单元。在实例中,用于流式传输模式的AIB通道可将I/O单元配置为全为TX、全为RX或一半TX及一半RX。CPI分组协议可在SDR或DDR操作模式中使用AIB通道。在实例中,AIB通道针对SDR模式以80个I/O单元(即,40个TX及40个RX)的增量配置,且针对DDR模式以40个I/O单元的增量配置。CPI流式传输协议可在SDR或DDR操作模式中使用AIB通道。此处,在实例中,对于SDR及DDR模式两者,AIB通道以40个I/O单元为增量。在实例中,为每一AIB通道指派唯一接口标识符。所述标识符在CPI复位及初始化期间用于确定跨越邻近小芯片的成对AIB通道。在实例中,接口标识符是20位值,其包括七位小芯片小片标识符、七位列标识符及六位链路标识符。AIB物理层使用AIB带外移位寄存器传输接口标识符。使用移位寄存器的位32-51,跨越AIB接口在两个方向上传送20位接口标识符。
AIB将一组堆叠的AIB通道定义为AIB通道列。AIB通道列具有某个数目的AIB通道加上辅助(AUX)通道。AUX通道含有用于AIB初始化的信号。列内的所有AIB通道(除AUX通道)具有相同配置(例如,全为TX、全为RX或一半TX及一半RX,以及具有相同数目的数据I/O信号)。在实例中,AIB通道从邻近于AUX通道的AIB通道开始以连续增加的顺序编号。邻近于AUX的AIB通道被定义为AIB通道0。
一般来说,个别小芯片上的CPI接口可包含序列化-反序列化(SERDES)硬件。SERDES互连对于其中期望具有低信号计数的高速信令的情形效果良好。然而,SERDES可导致用于多路复用及多路分用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向错误校正的额外功耗及更长延时。然而,当低延时或能耗是超短距离小芯片对小芯片互连的主要关注点时,可利用具有允许以最小延时进行数据传送的时钟速率的并行接口。CPI包含用以使这些超短距离小芯片互连中的延时及能耗两者最小化的元件。
对于流量控制,CPI采用基于信用的技术。接收方(例如应用小芯片125)向发送方(例如存储器控制器小芯片140)提供表示可用缓冲器的信用。在实例中,CPI接收方在给定的传输时间单位内包含每一虚拟通道的缓冲器。因此,如果CPI接收方在时间上支持五个消息及单个虚拟通道,那么接收方具有布置在五个行中的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟通道,那么接收方具有布置在五个行中的二十个缓冲器。每一缓冲器保持一个CPI分组的有效负载。
当发送方向接收方传输时,发送方基于传输使可用信用递减。一旦消耗接收方的所有信用,发送方就将停止向接收方发送分组。这确保接收方始终具有可用缓冲器来存储传输。
在接收方处理所接收分组且释放缓冲器时,接收方将可用缓冲器空间传达回发送方。然后,此信用返回可由发送方使用来允许传输额外信息。
还说明的是使用直接小芯片对小芯片技术而不需要NOC 130的小芯片网状网络160。小芯片网状网络160可在CPI或另一小芯片对小芯片协议中实施。小芯片网状网络160通常启用小芯片的管线,其中一个小芯片用作到管线的接口,而管线中的其它小芯片仅与其自身介接。
另外,专用装置接口,例如一或多个行业标准存储器接口145(例如,举例来说,同步存储器接口,例如DDR5、DDR6),也可用于互连小芯片。可通过所需接口(例如,PCIE接口)将小芯片系统或个别小芯片连接到外部装置(例如较大系统)。在实例中,此外部接口可通过主机接口小芯片135来实施,在所描绘实例中,主机接口小芯片135提供小芯片系统110外部的PCIE接口。当行业中的惯例或标准已经集中于这样的一个接口上时,通常采用此专用接口145。将存储器控制器小芯片140连接到动态随机存取存储器(DRAM)存储器装置小芯片150的DDR接口145的所说明实例仅为这样的一个行业惯例。
在各种可能的支持小芯片中,存储器控制器小芯片140很可能存在于小芯片系统110中,这归因于存储几乎无处不在地用于计算机处理并且为用于存储器装置的复杂先进技术。因此,使用其它厂商生产的存储器装置小芯片150及存储器控制器小芯片140使小芯片系统设计者能够利用由先进的生产商生产的稳健产品。一般来说,存储器控制器小芯片140提供用于读取、写入或擦除数据的存储器装置特定接口。通常,存储器控制器小芯片140可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作往往特定于存储器装置小芯片150,例如与非(NAND)快闪或存储类存储器中的垃圾收集,以及NAND快闪存储器中的温度调节(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理表示与逻辑表示之间提供间接级别。在其它类型的存储器中,例如DRAM,一些存储器操作(例如刷新)可在某些时间由主机处理器或存储器控制器控制,且在其它时间由DRAM存储器装置或由与一或多个DRAM装置相关联的逻辑(例如接口芯片(在实例中,缓冲器))来控制。
原子操作是例如可由存储器控制器小芯片140执行的数据操纵。在其它小芯片系统中,原子操作可由其它小芯片执行。例如,“增量”的原子操作可由应用小芯片125在命令中指定,其中所述命令包含存储器地址及可能的增量值。在接收到命令时,存储器控制器小芯片140从所指定存储器地址检索数字,使所述数字递增命令中指定的量,且存储结果。在成功完成后,存储器控制器小芯片140向应用小芯片125提供命令成功的指示。原子操作避免跨越小芯片网状网络160传输数据,从而实现此类命令的较低延时执行。
原子操作可分类为内置原子或可编程(例如,自定义)原子。内置原子是在硬件中不可改变地实施的有限操作集。可编程原子是可在存储器控制器小芯片140的可编程原子单元(PAU)(例如,自定义原子单元(CAU))上运行的小程序。图1说明包括PAU的存储器控制器小芯片的实例。
存储器装置小芯片150可为或包含易失性存储器装置或非易失性存储器的任一组合。易失性存储器装置的实例包含(但不限于)随机存取存储器(RAM)—例如DRAM)同步DRAM(SDRAM)及图形双数据速率类型6SDRAM(GDDR6 SDRAM)等。非易失性存储器装置的实例包含(但不限于)NAND型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)及铁电RAM(FeRAM)等。所说明实例包含作为存储器装置小芯片150的存储器装置;然而,存储器装置可驻留在别处,例如在板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片(例如,一或多个SRAM装置与一或多个DRAM装置堆叠或以其它方式与一或多个DRAM装置通信)。存储器控制器小芯片140还可用于协调小芯片系统110中的多个存储器小芯片之间的操作(例如,在一或多个级别的高速缓存存储中利用一或多个存储器小芯片,及使用一或多个额外存储器小芯片作为主存储器)。小芯片系统110还可包含多个存储器控制器小芯片140,其可用于为单独处理器、传感器、网络等提供存储器控制功能性。例如小芯片系统110的小芯片架构提供允许在不需要重新设计系统结构的其余部分的情况下通过更新的小芯片配置来适应不同存储器存储技术及不同存储器接口的优势。
图2说明根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器175通信)、网络通信接口225(例如,用于与小芯片网络180介接及与其它小芯片通信)以及一组原子及合并操作单元250。此组的成员可包含例如写入合并单元255、危险清除单元260、内置原子单元265或PAU 270。各个组件在逻辑上进行说明,而非说明为它们一定会被实施。例如,内置原子单元265可能包括沿到裸片外存储器的路径的不同装置。例如,内置原子单元可在存储器小芯片上的接口装置/缓冲器中,如上文论述。相反,PAU 270可能在存储器控制器小芯片205上的单独处理器中实施(但在各种实例中,可在其它位置中实施,例如在存储器小芯片上)。
裸片外存储器控制器220直接耦合到裸片外存储器275(例如,经由总线或其它通信连接),以提供到一或多个裸片外存储器的写入操作及从一或多个裸片外存储器的读取操作,例如裸片外存储器275及裸片外存储器280。在所描绘实例中,裸片外存储器控制器220还经耦合用于输出到原子及合并操作单元250以及用于输入到高速缓存控制器215(例如,存储器侧高速缓存控制器)。
在实例配置中,高速缓存控制器215直接耦合到高速缓存210,且可耦合到网络通信接口225用于输入(例如传入读取或写入请求),且经耦合用于输出到裸片外存储器控制器220。
网络通信接口225包含分组解码器230、网络输入队列235、分组编码器240及网络输出队列245,以支持基于分组的小芯片网络285,例如CPI。小芯片网络285可在处理器、存储器控制器、混合线程处理器、可配置处理电路或通信接口之间及当中提供分组路由。在此基于分组的通信系统中,每一分组通常包含目的地及源寻址,以及任何数据有效负载或指令。在实例中,小芯片网络285可实施为具有折叠克劳斯(Clos)配置的交叉开关集合或提供额外连接的网状网络,这取决于配置。
分组解码器230可将所接收分组转换为存储器控制器205的存储器命令(例如,读取命令、写入命令、突发读取或写入、原子操作或其任一合适组合)。所述命令可基于分组的协议来选择。例如,命令字段的特定值可解译为用于第一协议的第一命令及用于第二协议的第二命令。
在各种实例中,小芯片网络285可为异步交换构造的部分。此处,数据分组可沿各种路径中的任一者路由,使得取决于路由,任何所选择数据分组可在多个不同时间中的任一者到达经寻址目的地。另外,小芯片网络285可至少部分地实施为同步通信网络,例如同步网状通信网络。考虑通信网络的两种配置都用于根据本公开的实例。
存储器控制器小芯片205可接收具有例如源地址、读取请求及物理地址的分组。作为响应,裸片外存储器控制器220或高速缓存控制器215将从指定物理地址(其可在裸片外存储器275或高速缓存210中)读取数据,且将含有所请求数据的响应分组组装到源地址。类似地,存储器控制器小芯片205可接收具有源地址、写入请求及物理地址的分组。作为响应,存储器控制器小芯片205将数据写入指定物理地址(其可在高速缓存210中或在裸片外存储器275或280中),且将含有数据被存储到存储器的确认的响应分组组装到的源地址。
因此,如果可能,存储器控制器小芯片205可经由小芯片网络285接收读取及写入请求,且使用与高速缓存210介接的高速缓存控制器215处理请求。如果所述请求不能够由高速缓存控制器215处置,那么裸片外存储器控制器220通过与裸片外存储器275或280、原子及合并操作单元250或两者通信来处置所述请求。如上文所述,一或多个级别的高速缓存也可在裸片外存储器275或280中实施,且在一些此类实例中,可通过高速缓存控制器215直接存取。由裸片外存储器控制器220读取的数据可由高速缓存控制器215高速缓存在高速缓存210中用于稍后使用。
原子及合并操作单元250经耦合以接收(作为输入)裸片外存储器控制器220的输出,且向高速缓存210、网络通信接口225或直接向小芯片网络285提供输出。存储器危险清除(复位)单元260、写入合并单元255及内置(例如,预定)原子操作单元265可各自实施为具有其它组合逻辑电路系统(例如加法器、移位器、比较器、AND门、OR门、XOR门或其任一合适组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数及其它数据,或可实施为处理器。
写入合并单元255接收读取数据及请求数据,且合并请求数据及读取数据以创建具有待在响应或返回数据分组中使用的读取数据及源地址的单个单元。写入合并单元255将经合并数据提供到高速缓存210的写入端口(或等效地,提供到高速缓存控制器215以写入高速缓存210)。任选地,写入合并单元255将经合并数据提供到网络通信接口225,以编码及准备响应或返回数据分组用于在小芯片网络285上传输。
当请求数据用于内置原子操作中时,内置原子操作单元265从写入合并单元255或直接从裸片外存储器控制器220接收请求且读取数据。执行原子操作,且使用写入合并单元255,将所得数据写入高速缓存210,或提供到网络通信接口225以编码及准备响应或返回数据分组用于在小芯片网络285上传输。
内置原子操作单元265处置预定义原子操作,例如提取及递增或比较及交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。原子存储器操作从通过小芯片网络285传输的请求分组发起。请求分组具有物理地址、原子操作符类型、操作数大小,及任选地多达32个字节的数据。原子操作对高速缓存210的高速缓冲存储器线执行读取-修改-写入,必要时填充高速缓冲存储器。原子操作符响应可为简单的完成响应,或具有多达32字节的数据的响应。实例原子存储器操作符包含提取及AND、提取及OR、提取及XOR、提取与加法、提取与减法、提取及递增、提取与递减、提取及最小、提取及最大、提取及交换以及比较及交换。在各种实例实施例中,支持32位及64位操作,以及对16或32字节的数据的操作。本文公开的方法还与支持较大或较小操作及更多或更少数据的硬件兼容。
内置原子操作还可涉及对所请求数据的“标准”原子操作的请求,例如相对简单的单循环整数原子,例如提取及递增或比较及交换,这将以与不涉及原子操作的常规存储器读取或写入操作相同的处理量发生。对于这些操作,高速缓存控制器215通常可通过设置危险位(在硬件中)在高速缓存210中保留高速缓存线,使得高速缓存线在其处于转变中时不能够由另一过程读取。数据从裸片外存储器275或高速缓存210获得,且被提供到内置原子操作单元265以执行所请求原子操作。在原子操作之后,除将所得数据提供到数据分组编码器240以对传出数据分组进行编码用于在小芯片网络285上传输之外,内置原子操作单元265还将所得数据提供到写入合并单元255,写入合并单元255也将所得数据写入高速缓存210。在将所得数据写入高速缓存210之后,将由存储器危险清除单元260清除被设置的任何对应危险位。
PAU 270实现与内置原子操作的性能相当的可编程原子操作(也称为“自定义原子操作”)的高性能(高处理量及低延时)。不同于执行多个存储器存取,响应于指定可编程原子操作及存储器地址的原子操作请求,存储器控制器小芯片205中的电路系统将原子操作请求传送到PAU 270,且设置存储在对应于原子操作中使用的存储器线的存储器地址的存储器危险寄存器中的危险位,以确保在所述存储器线上不执行其它操作(读取、写入或原子),然后在原子操作完成时清除所述危险位。为执行可编程原子操作的PAU 270提供的额外直接数据路径允许额外写入操作,而不受到通信网络的带宽的任何限制,且不增加通信网络的任何拥塞。
PAU 270包含多线程处理器,例如,例如基于RISC-V ISA的多线程处理器,其具有一或多个处理器核心,且进一步具有用于执行可编程原子操作的扩展指令集。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可体现为一或多个混合线程处理器。在一些实例实施例中,PAU 270提供桶式循环瞬时线程切换以维持高每时钟指令速率。
可编程原子操作可由PAU 270执行,涉及对所请求数据的可编程原子操作的请求。用户可准备编程代码来提供此可编程原子操作。例如,可编程原子操作可为相对简单的多循环操作(例如浮点加法),或相对复杂的多指令操作,例如布隆(Bloom)过滤器插入。可编程原子操作可与预定原子操作相同或不同,只要其由用户而不是系统供应商定义即可。对于这些操作,高速缓存控制器215可通过设置危险位(在硬件中)在高速缓存210中保留高速缓存线,使得高速缓存线在其处于转变中时不能够由另一过程读取。数据从高速缓存210或裸片外存储器275或280获得,且被提供到PAU 270以执行所请求可编程原子操作。在原子操作之后,PAU 270将向网络通信接口225提供所得数据,以直接编码具有所得数据的传出数据分组用于在小芯片网络285上传输。另外,PAU 270将向高速缓存控制器215提供所得数据,高速缓存控制器215也将所得数据写入高速缓存210。在将所得数据写入高速缓存210之后,将由高速缓存控制器215清除被设置的任何对应危险位。
在所选择实例中,针对可编程原子操作所采取的方法是提供多个自定义原子请求类型,其可通过小芯片网络285从例如处理器或其它系统组件的原始源发送到存储器控制器小芯片205。高速缓存控制器215或裸片外存储器控制器220将请求识别为自定义原子,且将请求转发到PAU 270。在代表性实施例中,PAU 270:(1)是能够高效地执行用户定义的原子操作的可编程处理元件;(2)可执行到存储器的加载及存储、算术及逻辑运算,且控制流决策;及(3)利用具有一组新的专门指令的RISC-V ISA来促进与此类控制器215、220的交互,以按原子方式执行用户定义的操作。在所需实例中,RISC-V ISA含有一组完整的指令,其支持高级语言运算符及数据类型。PAU 270可利用RISC-V ISA,但当包含在存储器控制器小芯片205内时通常将支持更有限的指令集及有限的寄存器堆大小以减小单元的裸片大小。
如上文提及,在将读取数据写入高速缓存210之前,将由存储器危险清除单元260清除针对所保留高速缓存线的设置危险位。因此,当请求及读取数据由写入合并单元255接收时,复位或清除信号可由存储器危险清除单元260传输到高速缓存210,以复位所保留高速缓存线的设置存储器危险位。此外,复位此危险位将释放涉及指定(或保留)高速缓存线的挂起读取或写入请求,将未决读取/写入请求提供到入站请求多路复用器以供选择及处理。
图3说明根据实施例的使用CPI网络在小芯片布局300中的小芯片之间路由的实例。小芯片布局300包含小芯片310A、310B、310C、310D、310E、310F、310G及310H。小芯片310A到310H通过包括节点330A、330B、330C、330D、330E、330F、330G及330H的网络互连。小芯片310A到310H中的每一者包含标记为320A到320H的硬件收发器。
可使用AIB在小芯片310之间传送CPI分组。AIB提供物理层功能性。物理层使用具有转发时钟的源同步数据传送来传输及接收数据。分组以关于所传输时钟的SDR或DDR处跨越AIB传送。各种通道宽度由AIB支持。当在SDR模式中操作时,AIB通道宽度是20位的倍数(20、40、60、…),且对于DDR模式,AIB通道宽度是40位的倍数(40、80、120、…)。AIB通道宽度包含TX及RX信号两者。通道可经配置以具有对称数目的TX及RX(I/O)或具有非对称数目的传输器及接收器(例如,全为传输器或全为接收器)。取决于哪个小芯片提供主时钟,通道可充当AIB主通道或从通道。
AIB适配器提供到AIB链路层的接口及到AIB物理层(PHY)的接口。AIB适配器提供数据分级寄存器、上电复位定序器及控制信号移位寄存器。
AIB物理层由AIB I/O单元组成。AIB I/O单元(在一些实例实施例中,由硬件收发器320实施)可为仅输入、仅输出或双向的。AIB通道由一组AIB I/O单元组成,且单元的数目取决于AIB通道的配置。一个小芯片上的接收信号连接到成对小芯片上的传输信号。在一些实例实施例中,每一列包括编号为0到N的AUX通道及数据通道。
AIB通道通常经配置为一半TX数据加一半RX数据、全为TX数据或全为RX数据加相关联时钟及杂项控制。在一些实例实施例中,TX与RX数据信号的数目在设计时间确定,且不能够经配置为系统初始化的部分。
CPI分组协议(点对点及可路由)在AIB通道内使用对称的接收及传输I/O单元。CPI流式传输协议允许更灵活地使用AIB I/O单元。在一些实例实施例中,用于流式传输模式的AIB通道可将I/O单元配置为全为TX、全为RX或一半TX及一半RX。
由网络节点330在小芯片310当中路由数据分组。节点330可基于数据分组的一或多个数据字段来确定向其转发所接收数据分组的下一个节点330。例如,可对源或目的地地址、源或目的地端口、虚拟通道或其任一合适组合进行散列,以选择连续网络节点或可用网络路径。以此方式选择路径可用于平衡网络流量。
因此,在图3中,展示从小芯片310A到小芯片310D的数据路径。数据分组由硬件收发器320A发送到网络节点330A;由网络节点330A转发到网络节点330C;由网络节点330C转发到网络节点330D;且由网络节点330D传送到小芯片310D的硬件收发器320D。
图3中还展示从小芯片310A到小芯片310G的第二数据路径。数据分组由硬件收发器320A发送到网络节点330A;由网络节点330A转发到网络节点330B;由网络节点330B转发到网络节点330D;由网络节点330D转发到网络节点330C;由网络节点330C转发到网络节点330E;由网络节点330E转发到网络节点330F;由网络节点330F转发到网络节点330H;由网络节点330H转发到网络节点330G;且由网络节点330G递送到小芯片310G的硬件收发器320G。如在图3中清晰可见,通过网络的多个路径可用于在任何一对小芯片之间传输数据。
AIB I/O单元支持三种时控模式:异步(即非时控)、SDR及DDR。非时控模式用于时钟及一些控制信号。SDR模式可使用专用的仅SDR I/O单元或双用的SDR/DDR I/O单元。
CPI分组协议(点对点及可路由)可在SDR或DDR操作模式中使用AIB通道。在一些实例实施例中,对于SDR模式,AIB通道以80个I/O单元(即40个TX及40个RX)为增量,且对于DDR模式,以40个I/O单元为增量。
CPI流式传输协议可在SDR或DDR操作模式中使用AIB通道。在一些实例实施例中,对于两种模式(SDR及DDR),AIB通道以40个I/O单元为增量。
为每一AIB通道指派唯一接口标识符。所述标识符在CPI复位及初始化期间用于确定跨越邻近小芯片的成对AIB通道。在一些实例实施例中,接口标识符是20位值,其包括七位小芯片小片标识符、七位列标识符及六位链路标识符。AIB物理层使用AIB带外移位寄存器传输接口标识符。使用移位寄存器的位32-51,跨越AIB接口在两个方向上传送20位接口标识符。
在一些实例实施例中,AIB通道从邻近于AUX通道的AIB通道开始以连续增加的顺序编号。邻近于AUX的AIB通道被定义为AIB通道0。
图3通过实例的方式展示由包括八个节点330的网络连接的八个小芯片310。更多或更少小芯片310及更多或更少节点330可包含在小芯片网络中,从而允许创建任意大小的小芯片的网络。
图4是根据本公开的一些实施例的包括多个微片的数据分组400的框图。数据分组400被划分为微片,其中的每一者由36个位组成。数据分组400的第一微片包含控制路径字段405、路径字段410、目的地标识符(DID)字段415、序列继续(SC)字段420、长度字段425及命令字段430。第二微片包含地址字段435及445、业务id(TID)字段440及保留(RSV)字段450。第三个微片包含信用返回(CR)/RSV字段455、地址字段460、源标识符(SID)465、桥接类型(BTYPE)470及扩展命令(EXCMD)475。每一剩余微片包含CR/RSV字段(例如,CR/RSV字段480及490)及数据字段(例如,数据字段485及495)。
控制路径字段405是两位字段,其指示分组中稍后微片的CR/RSV字段是否含有CR数据、RSV数据或应被忽略,以及路径字段410是否应用于控制分组的排序。在一些实例实施例中,控制路径字段405中的值0或1指示CR/RSV字段455、480、490含有CR数据;控制路径字段405中的值2或3指示CR/RSV字段455、480、490含有RSV数据;值0指示路径字段410被忽略;值1或3指示路径字段410用于确定数据分组400的路径;且值2表示将使用单路径排序。在一些实例实施例中,使用1位字段。替代地,控制路径字段405的高位可被认为是控制CR/RSV字段440、450是否含有CR数据或RSV数据的1位字段。
路径字段410是八位字段。当控制路径字段405指示路径字段410用于确定数据分组400的路径时,保证针对路径字段410具有相同值的所有数据分组都采用通过网络的相同路径。因此,数据分组的顺序在发送方与接收方之间将不改变。如果控制路径字段405指示将使用单路径排序,那么为每一分组确定路径,就像路径字段410被设置为零一样。因此,所有分组采用相同路径,且顺序将不改变,而不管每一数据分组的路径字段410的实际值如何。如果控制路径字段405指示将忽略路径字段410,那么在不考虑路径字段410的值的情况下路由数据分组,且可由接收器以与发送方发送数据分组的顺序不同的顺序接收数据分组。这可避免网络中的拥塞,且允许装置中的更大处理量。
DID字段415存储十二位DID。DID唯一地标识网络中的目的地(例如,目的地小芯片)。保证都设置了SC字段420的数据分组序列按顺序递送。长度字段425是指示包括数据分组400的微片的数目的五位字段。长度字段425的解译可为非线性的。例如,值0到22可被解译为数据分组400中的0到22个微片,且值23到27可被解译为数据分组400中的33到37个微片(即,比所指示值多10个)。长度字段425的其它值可为供应商定义的,而不是协议定义的。
用于数据分组400的命令存储在命令字段430中,命令字段430是七位字段。所述命令可为写入命令、读取命令、预定义原子操作命令、自定义原子操作命令、读取响应、确认响应或特定于供应商的命令。另外,所述命令可指示数据分组400的虚拟通道。例如,不同命令可用于不同虚拟通道,或七位命令字段430的1、2、3或4个位可用于指示虚拟通道,且剩余位可用于指示命令。根据一些实例实施例,下表展示基于协议及命令的虚拟通道。
命令的地址可在路径字段410、地址字段435、445及460或其任一合适组合中指示。例如,4字节对准的41位地址的38个高位可通过将地址字段460、435、410及445按顺序(高位在先)级联来指示。TID字段440用于将响应匹配到请求。例如,如果第一分组400是标识待读取的存储器位置的读取请求,那么含有读取数据的响应性第二分组400将在TID字段440中包含相同值。
SID字段465标识数据分组400的源。因此,分组400的接收方可通过将SID字段465中的值复制到响应性分组的DID字段415中来发送响应性分组。4位BTYPE字段470指定用于分组400的命令集。BTYPE为0指示确定分组400的命令(例如,基于CPI协议及命令字段430确定的命令)的第一方法。BTYPE为1指示确定分组400的命令(例如,基于AXI协议及EXCMD字段475的命令)的第二方法。其它BTYPE值指示确定分组400的命令的其它方法。例如,BTYPE为2可指示基于PCIe协议的命令,其中所述命令从接下来的微片中的格式及类型字段确定。通过在每一32位PCIe微片之前加上(或附加)零,PCIe分组可通过36位CPI网络传输,而无需其它修改。
在一些实例实施例中,如果命令字段430指示存在扩展标头,那么无论BTYPE字段470的值如何,EXCMD字段475都含有命令。在这些实例实施例中,根据BTYPE字段470的值解译EXCMD字段475中指示的命令。
因此,添加标识分组400的协议的一或两个微片的低得多的开销允许网络支持多个协议(在此实例中,CPI及AXI或PCIe),而不是将第二协议的分组完全封装在数据分组400的数据字段内用于使用第一协议通过网络传输。
存储器存取命令可标识待写入或存取的字节数、待存取的存储器空间(例如,裸片外存储器275或用于自定义原子操作的指令存储器)或其任一合适组合。在一些实例实施例中,命令可指示稍后微片的额外位标识命令。例如,可通过在七位命令字段430中使用特定于供应商的命令,且使用7位扩展命令(EXCMD)字段475的一部分或全部来包含较大命令来发送多字节命令。因此,对于命令字段430的某些值,分组400仅包含一个标头微片(例如,图4中所展示的第一标头微片,其含有字段405到430)。对于命令字段430的其它值,分组400包含预定额外数目的标头微片(例如,如在图4中所展示的两个额外标头微片,其含有字段435到475)或预定总数目的标头微片(例如,如在图4中所展示的三个总标头微片,其含有字段405到475)。
如果启用CR,CR/RSV字段445、480、490的两个位标识CR是否用于虚拟通道0、1、2或3,且CR/RSV字段445、480及490的其它两个位指示待返回的信用的数目是否为0、1、2或3。
图5是展示根据本公开的一些实施例的由电路在处理具有支持多个协议的标头的分组时执行的方法500的操作的流程图。方法500包含操作510、520及530。通过实例但非限制的方式,方法500被描述为由图1到3的装置使用图4的数据分组执行。
在操作510中,逻辑(例如,在CPI网络中实施为图3的小芯片310D的图2的存储器控制器小芯片205)从源(例如,小芯片310A)接收包括第一字段及第二字段的分组。在一些实例实施例中,分组是数据分组400,第一字段是BTYPE字段470,且第二字段是EXCMD字段475。为清楚起见,应理解,如从图4清楚,“第一字段”及“第二字段”的以上标识仅用于标识,但将这两个字段彼此区分开;且不指示字段在数据分组400内的定位。
在操作520中,逻辑基于第一字段确定分组的协议。在一些实例实施例中,如果存储在BTYPE字段470中的BTYPE为0,那么分组的协议为CPI,且如果BTYPE是1,那么分组的协议为AXI。其它BTYPE值可保留或由供应商定义。
在操作530中,基于协议及第二字段,逻辑确定由分组指示的命令。例如,如果协议是CPI,那么通过将EXCMD字段475中的值与CPI命令的表进行比较来确定命令。作为另一实例,如果协议是AXI,那么通过将EXCMD字段475中的值与AXI命令的表进行比较来确定命令。在一些实例实施例中,一个所支持协议的命令是另一所支持协议的命令的严格子集。例如,一个协议可支持不同数据大小(例如,1、2、4、8、16、24、32、40、48、56、64及128字节)的未发布写入、发布写入、配置写入、读取及原子操作,而另一协议支持读取及写入操作,但不支持原子操作。
可基于协议对分组执行额外操作。例如,第一协议(例如,AXI)可包含标头中的字段,其指示分组的服务质量(例如,使用4位值,其中较高值具有较高优先级)或保护类型(例如,安全或不安全),而第二协议(例如,CPI)可不包含这些字段,或可在标头中的不同位置中具有一或多个字段。因此,在一些实例实施例中,基于分组的协议是第一协议及存储服务质量的指示的第三字段的值,接收装置可确定分组的服务质量。基于第二分组的协议是第二协议,忽略第三字段,且不确定服务质量。作为另一实例,基于分组的协议是第一协议及存储保护类型的指示的第三字段的值,接收装置可确定分组的保护类型。基于第二分组的协议是第二协议,忽略第三字段,且不确定保护类型。
在处理具有较低服务质量的分组之前,可处理具有较高服务质量的分组。具有相等服务质量的分组可按照所接收的顺序、在虚拟通道的循环服务中或其任一合适组合来处理。不具有服务质量的分组(例如,使用不提供服务质量字段的协议接收的分组)可就像服务质量是预定值(例如,最低值、最高值或中值)那样来处置。
因此,通过使用方法500,使单个分组标头能够支持多个协议的命令集。这使得支持不同协议的现有装置能够通信,而不需要完全封装一种格式的数据分组以符合网络协议。因此,节省计算、网络及存储器资源,从而减少延时及功耗。
图6是展示根据本公开的一些实施例的由电路在处理具有支持多个协议的标头的分组时执行的方法600的操作的流程图。方法600包含操作610、620、630、640及650。通过实例但非限制的方式,方法600被描述为由图1到3的装置使用图4的数据分组执行。
在操作610中,电路(例如,在CPI网络中实施为图3的小芯片310D的图2的存储器控制器小芯片205)接收分组的第一微片,第一微片包括第三字段(例如,分组400的第一微片的CMD字段430)。为清楚起见,应理解,如从图4清楚,“第一字段”、“第二字段”及“第三字段”的以上标识仅用于标识,但将这三个字段彼此区分开;且不指示字段在数据分组400内的定位。同样地,“第一微片”及“第二微片”的标识仅用于标识,但将微片彼此区分开,且不指示微片在数据分组400内的定置。
在操作620中,电路接收分组的第二微片,第二微片包括第一字段(例如,分组400的另一微片的BTYPE字段470)及第二字段(EXCMD字段475)。
电路基于第三字段确定第一字段指示分组的协议(操作630)。例如,在非扩展分组格式中,CMD字段430可指示默认协议中的命令,但CMD字段330的某些值指示分组包含包括BTYPE字段470及EXCMD字段475的扩展标头。当解译扩展标头时,BYTPE字段470指示分组的协议,且EXCMD字段475指示命令。在一些实例实施例中,CMD字段430的一个位指示标头是否被扩展。
在操作640中,电路基于第一字段指示分组的协议及第一字段的确定来确定分组的协议。例如,如果CMD字段430指示存在扩展标头,且BTYPE字段470为0,那么可将分组的协议确定为CPI。替代地,如果CMD字段430指示存在扩展标头,且BTYPE字段470为1,那么可将分组的协议确定为AXI。
基于协议及第二字段,电路确定由分组指示的命令(操作650)。例如,EXCMD字段475中的特定命令值可解译为使用一个协议的读取命令及使用另一协议的写入命令,但通过根据BTYPE字段470中指示的协议解译命令,可正确地辨别分组的源(例如,小芯片310A)的意图。
因此,通过使用方法600,使单个分组标头能够支持多个协议的命令集。这使得支持不同协议的现有装置能够通信,而不需要完全封装一种格式的数据分组以符合网络协议。因此,节省计算、网络及存储器资源,从而减少延时及功耗。另外,与方法500相比,增强对默认协议的支持,从而减少与非扩展标头一起发送的分组的标头开销,进一步减少计算、网络及存储器资源的消耗。
图7是展示根据本公开的一些实施例的由电路在产生支持多个协议的分组的标头时执行的方法的操作的流程图。方法700包含操作710、720及730。作为实例而非限制,方法700被描述为由图1到3的装置使用图4的数据分组执行。方法700可由传输装置结合执行方法500或方法600的接收装置执行。
在操作710中,电路(例如,图3的小芯片310A的硬件收发器)使用第一协议接收命令。例如,可使用小芯片310A内的专用信令协议或AXI协议从连接到电路的AXI装置接收命令。
基于第一协议,在操作720中,电路产生分组的标头。标头包含指示第一协议的第一字段及指示命令的第二字段。例如,可产生包括图4的字段405到475的标头,其中BYTPE字段470指示第一协议,且命令字段430或扩展命令字段475指示命令。
在操作730中,电路传输分组的标头。标头由分组的其余部分(如果存在)跟随。例如,写入命令标头指示待写入的地址,且分组的主体指示待写入的数据,但读取命令标头指示待读取的地址而未由额外数据跟随。
因此,通过使用方法700,在对分组标头进行微小修改的情况下,使得多个协议的数据分组能够跨越网络传输。这使得支持不同协议的现有装置能够通信,而不需要完全封装一种格式的数据分组以符合网络协议。因此,节省计算、网络及存储器资源,从而减少延时及功耗。
图8说明实例机器800的框图,可借助于实例机器800、在实例机器800中或通过实例机器800来实施本文论述的技术(例如,方法)中的任一或多者。如本文所描述,实例可包含机器800中的逻辑或数个组件或机构或可由所述逻辑或数个组件或机构操作。电路系统(例如,处理电路系统)是在包含硬件(例如,简单电路、门、逻辑等)的机器800的有形实体中实施的电路的集合。电路系统成员资格可随着时间的推移而为灵活的。电路系统包含可在操作时单独或组合执行指定操作的成员。在实例中,电路系统的硬件可经不变地设计以实行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如,执行单元、晶体管、简单电路等),其包含经物理地修改(例如,磁性地、电性地、可移动地放置不变质量的粒子等)的机器可读媒体以对特定操作的指令进行编码。举例来说,在连接物理组件时,硬件组成的基础电性质从绝缘体改变为导体,反之亦然。指令使嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接在硬件中创建电路系统的成员,以在操作中时实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的部分,或者在装置操作时可通信地耦合到电路系统的其它组件。在实例中,物理组件中的任一者可在一个以上电路系统的一个以上成员中使用。举例来说,在操作下,执行单元可在一个时间点在第一电路系统的第一电路中使用,并且可在不同时间由第一电路系统中的第二电路或第二电路系统中的第三电路重新使用。这些组件关于机器800的额外实例如下。
在替代实施例中,机器800可作为独立装置操作,或者可连接(例如,联网)到其它机器。在联网部署中,机器800可在服务器-客户端网络环境中以服务器机器、客户端机器或两者的身份进行操作。在实例中,机器800可在对等(P2P)(或其它分布式)网络环境中充当对等机器。机器800可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器械、网络路由器、交换机或网桥或能够执行指定待由所述机器采取的动作的指令(循序或以其它方式)的任何机器。此外,虽然仅说明单个机器,但是术语“机器”也应被认为包含机器的任何集合,其个别地或共同地执行一组(或多组)指令以执行本文论述的方法中的一或多者,例如云计算、软件即服务(SaaS)、其它计算机集群配置。
机器(例如,计算机系统)800可包含硬件处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核或其任一组合)、主存储器804、静态存储器(例如,用于固件、微码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等的存储器或存储装置)806及大容量存储装置808(例如,硬盘驱动器、磁带驱动器、快闪存储装置或其它块装置),其中的一些或全部可通过互连(例如总线)830彼此通信。机器800可进一步包含显示单元810、字母数字输入装置812(例如,键盘)及用户接口(UI)导航装置814(例如,鼠标)。在实例中,显示单元810、输入装置812或UI导航装置814可为触摸屏显示器。机器800可额外地包含信号产生装置818(例如,扬声器)、网络接口装置820以及一或多个传感器816,例如全球定位系统(GPS)、传感器、指南针、加速度计或其它传感器。机器800可包含输出控制器828,例如串行(例如,通用串行总线(USB)、并行或其它有线或无线(例如,红外(IR)、近场通信(NFC)等)连接以传达或控制一或多个外围装置(例如,打印机、读卡器等)。
处理器802、主存储器804、静态存储器806或大容量存储装置808的寄存器可为或包含机器可读媒体822,在机器可读媒体822上存储一或多组数据结构或指令824(例如,软件),其体现本文描述的技术或功能中的任一或多者或由其利用。指令824还可在由机器800执行期间完全或至少部分地驻留在处理器802、主存储器804、静态存储器806或大容量存储装置808的寄存器中的任一者内。在实例中,硬件处理器802、主存储器804、静态存储器806或大容量存储装置808的一个或任一组合可构成机器可读媒体822。尽管机器可读存储媒体822被说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令824的单个媒体或多个媒体(例如,集中式或分布式数据库或相关联高速缓存及服务器)。
术语“机器可读媒体”可包含能够存储、编码或携载由机器800执行并且致使机器800执行本公开的技术中的任一或多者的指令或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任一媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体及信号(例如,射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括带有具有不变(例如,静止)质量的多个粒子的机器可读媒体,且因此是是物质的组成。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如,电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可卸除磁盘;磁光盘;以及光盘只读存储器(CD-ROM)及数字多功能盘只读存储器(DVD-ROM)盘。
在实例中,存储在或以其它方式提供在机器可读媒体822上的信息可代表指令824,例如指令824自身或可从其导出指令824的格式。指令824可从其导出的此格式可包含源代码、经编码指令(例如,以压缩或加密的形式)、封装指令(例如拆分为多个包)或类似者。机器可读媒体822中代表指令824的信息可由处理电路系统处理为用以实施本文论述的操作中的任一者的指令。例如,从信息导出指令824(例如,由处理电路处理)可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态或静态链接)、编码、解码、加密、解密、封装、解封装,或以其它方式将信息操纵为指令824。
在实例中,指令824的导出可包含信息的汇编、编译或解译(例如,通过处理电路系统),以从由机器可读媒体822提供的某种中间或预处理格式创建指令824。当以多个部分提供时,可组合、解包及修改信息以创建指令824。例如,信息可在一或若干远程服务器上的多个压缩源代码包(或目标代码或二进制可执行代码等)中。源代码包可在通过网络传输时经加密且在必要时经解密、解压缩、组装(例如,链接),以及在本地机器处编译或解译(例如,编译或解译成库、独立可执行文件等中)且由本地机器执行。
指令824可进一步利用数种传送协议(例如,帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一种经由网络接口装置820使用传输媒体通过通信网络826传输或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如,因特网)、移动电话网络(例如,蜂窝网络)、普通老式电话(POTS)网络,及无线数据网络(例如,电气及电子工程师协会(IEEE)802.11系列标准,称为Wi-IEEE 802.16系列标准,称为)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置820可包含一或多个物理插孔(例如,以太网、同轴或电话插孔)或一或多个天线以连接到通信网络826。在实例中,网络接口装置820可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者进行无线通信。术语“传输媒体”应被认为包含能够存储、编码或携载由机器800执行的指令的任何无形媒体,并且包含数字或模拟通信信号或其它无形媒体以促进此软件的通信。传输媒体是机器可读媒体。
在前述说明书中,已描述本公开的一些实例实施方案。显而易见的是,在不脱离如所附权利要求书中阐述的本公开的实施例的更广泛范围及精神的情况下,可对其进行各种修改。因此,说明书及图式应被认为是说明意义而不是限制意义的。下面是本公开的实施方案的实例的非穷尽列表。
实例1是一种系统,其包括:存储器装置;存储器控制器,其连接到存储器装置;以及逻辑,其经配置以执行包括以下的操作:接收分组的标头,所述标头包括第一字段及第二字段;基于所述第一字段,确定所述分组的协议;以及基于所述协议及所述第二字段,确定由所述分组指示的命令。
在实例2中,实例1的标的物包含,其中所述操作进一步包括:基于所述协议及第三字段,确定所述分组的服务质量。
在实例3中,实例1至2的标的物包含,其中所述操作进一步包括:基于所述协议及第三字段,确定所述分组的保护类型。
在实例4中,实例1至3的标的物包含,其中:所述分组是第一分组;所述命令是第一命令;所述协议是第一协议;且所述操作进一步包括:处理所述第一命令;接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及处理所述第二命令。
在实例5中,实例4的标的物包含,其中:所述第二字段等于所述第四字段;且所述第一命令不同于所述第二命令。
在实例6中,实例4至5的标的物包含,其中所述操作进一步包括:基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及基于所述第二协议,不确定所述第二分组的服务质量。
在实例7中,实例4至6的标的物包含,其中所述操作进一步包括:基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及基于所述第二协议,不确定所述第二分组的保护类型。
在实例8中,实例1至7的标的物包含,其中所述操作进一步包括:基于所述协议及所述命令,标识所述分组的虚拟通道。
在实例9中,实例1至8的标的物包含,其中所述操作进一步包括:基于所述协议,确定所述分组的所述标头中的数个流量控制单元(微片)。
在实例10中,实例1至9的标的物包含,其中所述分组的所述标头的所述接收包括:接收包括第三字段的第一流量控制单元(微片);接收包括所述第一字段及所述第二字段的第二微片;以及基于所述第三字段,确定基于所述第一字段来执行所述分组的所述协议的所述确定。
实例11是一种方法,其包括:由存储器控制器接收分组的标头,所述标头包括第一字段及第二字段;基于所述第一字段,确定所述分组的协议;以及基于所述协议及所述第二字段,确定由所述分组指示的命令。
在实例12中,实例11的标的物包含,基于所述协议及第三字段,确定所述分组的服务质量。
在实例13中,实例11至12的标的物包含,基于所述协议及第三字段,确定所述分组的保护类型。
在实例14中,实例11至13的标的物包含,其中:所述分组是第一分组;所述命令是第一命令;所述协议是第一协议;且所述方法进一步包括:处理所述第一命令;接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及处理所述第二命令。
在实例15中,实例14的标的物包含,其中:所述第二字段等于所述第四字段;且所述第一命令不同于所述第二命令。
在实例16中,实例14至15的标的物包含,基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及基于所述第二协议,不确定所述第二分组的服务质量。
在实例17中,实例14至16的标的物包含,其中所述操作进一步包括:基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及基于所述第二协议,不确定所述第二分组的保护类型。
实例18是一种系统,其包括:第一小芯片的逻辑,其经配置以执行操作包括以下的操作:使用第一协议接收命令;基于所述第一协议,产生包括第一字段及第二字段的分组的标头,所述第一字段指示所述第一协议,且所述第二字段指示所述命令;以及向所述存储器控制器传输所述分组的所述标头;以及所述存储器控制器的逻辑,其经配置以执行包括以下的操作:接收所述分组的所述标头;基于所述第一字段,确定所述分组的协议是所述第一协议;以及基于所述所确定协议及所述第二字段,确定所述所指示命令。
在实例19中,实例18的标的物包含,其中所述操作进一步包括:基于所述分组的所述协议是所述第一协议及第三字段的值,确定所述分组的服务质量。
在实例20中,实例18至19的标的物包含,其中所述操作进一步包括:基于所述分组的所述协议是所述第一协议及第三字段的值,确定所述分组的保护类型。
在实例21中,实例18至20的标的物包含,其中:所述分组是第一分组;所述命令是第一命令;且所述操作进一步包括:处理所述第一命令;接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及处理所述第二命令。
在实例22中,实例21的标的物包含,其中:所述第二字段等于所述第四字段;且所述第一命令不同于所述第二命令。
在实例23中,实例21至22的标的物包含,其中所述操作进一步包括:基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及基于所述第二协议,不确定所述第二分组的服务质量。
在实例24中,实例21至23的标的物包含,其中所述操作进一步包括:基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及基于所述第二协议,不确定所述第二分组的保护类型。
实例25是包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时致使所述处理电路系统执行用以实施实例1至24中的任一者的操作。
实例26是一种包括用以实施实例1至24中的任一者的构件的设备。
实例27是一种用以实施实例1至24中的任一者的系统。
实例28是一种用以实施实例1至24中的任一者的方法。
Claims (24)
1.一种系统,其包括:
存储器装置;
存储器控制器,其连接到所述存储器装置;以及
逻辑,其经配置以执行包括以下的操作:
接收分组的标头,所述标头包括第一字段及第二字段;
基于所述第一字段,确定所述分组的协议;以及
基于所述协议及所述第二字段,确定由所述分组指示的命令。
2.根据权利要求1所述的系统,其中所述操作进一步包括:
基于所述协议及第三字段,确定所述分组的服务质量。
3.根据权利要求1所述的系统,其中所述操作进一步包括:
基于所述协议及第三字段,确定所述分组的保护类型。
4.根据权利要求1所述的系统,其中:
所述分组是第一分组;
所述命令是第一命令;
所述协议是第一协议;且
所述操作进一步包括:
处理所述第一命令;
接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;
基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;
基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及
处理所述第二命令。
5.根据权利要求4所述的系统,其中:
所述第二字段等于所述第四字段;且
所述第一命令不同于所述第二命令。
6.根据权利要求4所述的系统,其中所述操作进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及
基于所述第二协议,不确定所述第二分组的服务质量。
7.根据权利要求4所述的系统,其中所述操作进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及
基于所述第二协议,不确定所述第二分组的保护类型。
8.根据权利要求1所述的系统,其中所述操作进一步包括:
基于所述协议及所述命令,标识所述分组的虚拟通道。
9.根据权利要求1所述的系统,其中所述操作进一步包括:
基于所述协议,确定所述分组的所述标头中的数个流量控制单元(微片)。
10.根据权利要求1所述的系统,其中所述分组的所述标头的所述接收包括:
接收包括第三字段的第一流量控制单元(微片);
接收包括所述第一字段及所述第二字段的第二微片;以及
基于所述第三字段,确定基于所述第一字段来执行所述分组的所述协议的所述确定。
11.一种方法,其包括:
由存储器控制器接收分组的标头,所述标头包括第一字段及第二字段;
基于所述第一字段,确定所述分组的协议;以及
基于所述协议及所述第二字段,确定由所述分组指示的命令。
12.根据权利要求11所述的方法,其进一步包括:
基于所述协议及第三字段,确定所述分组的服务质量。
13.根据权利要求11所述的方法,其进一步包括:
基于所述协议及第三字段,确定所述分组的保护类型。
14.根据权利要求11所述的方法,其中:
所述分组是第一分组;
所述命令是第一命令;
所述协议是第一协议;且
所述方法进一步包括:
处理所述第一命令;
接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;
基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;
基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及
处理所述第二命令。
15.根据权利要求14所述的方法,其中:
所述第二字段等于所述第四字段;且
所述第一命令不同于所述第二命令。
16.根据权利要求14所述的方法,其进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及
基于所述第二协议,不确定所述第二分组的服务质量。
17.根据权利要求14所述的方法,其进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及
基于所述第二协议,不确定所述第二分组的保护类型。
18.一种系统,其包括:
第一小芯片的逻辑,其经配置以执行操作包括以下的操作:
使用第一协议接收命令;
基于所述第一协议,产生包括第一字段及第二字段的分组的标头,所述第一字段指示所述第一协议,且所述第二字段指示所述命令;以及
向所述存储器控制器传输所述分组的所述标头;以及
所述存储器控制器的逻辑,其经配置以执行包括以下的操作:
接收所述分组的所述标头;
基于所述第一字段,确定所述分组的协议是所述第一协议;以及
基于所述所确定协议及所述第二字段,确定所述所指示命令。
19.根据权利要求18所述的系统,其中所述操作进一步包括:
基于所述分组的所述协议是所述第一协议及第三字段的值,确定所述分组的服务质量。
20.根据权利要求18所述的系统,其中所述操作进一步包括:
基于所述分组的所述协议是所述第一协议及第三字段的值,确定所述分组的保护类型。
21.根据权利要求18所述的系统,其中:
所述分组是第一分组;
所述命令是第一命令;且
所述操作进一步包括:
处理所述第一命令;
接收第二分组的第二标头,所述第二标头包括第三字段及第四字段;
基于所述第三字段,确定所述第二分组的第二协议,所述第二协议与所述第一协议不同;
基于所述第二协议及所述第四字段,确定由所述第二分组指示的第二命令;以及
处理所述第二命令。
22.根据权利要求21所述的系统,其中:
所述第二字段等于所述第四字段;且
所述第一命令不同于所述第二命令。
23.根据权利要求21所述的系统,其中所述操作进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的服务质量;以及
基于所述第二协议,不确定所述第二分组的服务质量。
24.根据权利要求21所述的系统,其中所述操作进一步包括:
基于所述第一协议及所述第一分组的第五字段,确定所述第一分组的保护类型;以及
基于所述第二协议,不确定所述第二分组的保护类型。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,748 | 2020-08-31 | ||
US17/007,748 US11412075B2 (en) | 2020-08-31 | 2020-08-31 | Multiple protocol header processing |
PCT/US2021/038669 WO2022046261A1 (en) | 2020-08-31 | 2021-06-23 | Multiple protocol header processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116235487A true CN116235487A (zh) | 2023-06-06 |
Family
ID=80353698
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180066491.8A Pending CN116235487A (zh) | 2020-08-31 | 2021-06-23 | 多协议标头处理 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11412075B2 (zh) |
CN (1) | CN116235487A (zh) |
WO (1) | WO2022046261A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954055B2 (en) | 2020-08-31 | 2024-04-09 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
Family Cites Families (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5265207A (en) * | 1990-10-03 | 1993-11-23 | Thinking Machines Corporation | Parallel computer system including arrangement for transferring messages from a source processor to selected ones of a plurality of destination processors and combining responses |
US6650660B1 (en) | 1999-07-27 | 2003-11-18 | Pluris, Inc. | Apparatus and method for synchronization of multiple data paths and recovery from lost synchronization |
JP2003522507A (ja) | 2000-02-14 | 2003-07-22 | トムソン ライセンシング ソシエテ アノニム | 幾つかのパケットに分割されるメッセージの送信方法 |
US6404737B1 (en) | 2000-08-10 | 2002-06-11 | Ahead Communications Systems, Inc. | Multi-tiered shaping allowing both shaped and unshaped virtual circuits to be provisioned in a single virtual path |
US8255567B2 (en) | 2001-09-06 | 2012-08-28 | Broadcom Corporation | Efficient IP datagram reassembly |
US7142540B2 (en) * | 2002-07-18 | 2006-11-28 | Sun Microsystems, Inc. | Method and apparatus for zero-copy receive buffer management |
US20050047439A1 (en) | 2003-08-26 | 2005-03-03 | Madajczak Tomasz Bogdan | System to process packets according to an assigned sequence number |
US7613209B1 (en) | 2004-03-30 | 2009-11-03 | Extreme Networks, Inc. | System and method for egress packet marking |
US7165131B2 (en) | 2004-04-27 | 2007-01-16 | Intel Corporation | Separating transactions into different virtual channels |
GB2419785B (en) | 2004-10-27 | 2007-10-17 | Roke Manor Research | A method of determining reliability of data |
US8631483B2 (en) | 2005-06-14 | 2014-01-14 | Texas Instruments Incorporated | Packet processors and packet filter processes, circuits, devices, and systems |
WO2008118804A1 (en) * | 2007-03-23 | 2008-10-02 | Bigfoot Networks, Inc. | Device for coalescing messages and method thereof |
US7783823B2 (en) * | 2007-07-31 | 2010-08-24 | Hewlett-Packard Development Company, L.P. | Hardware device data buffer |
JP4989548B2 (ja) | 2008-04-22 | 2012-08-01 | キヤノン株式会社 | データ変換装置及びその制御方法 |
US9495194B1 (en) | 2008-10-17 | 2016-11-15 | Dispersive Networks, Inc. | Dispersive storage area networks |
US8392667B2 (en) | 2008-12-12 | 2013-03-05 | Nvidia Corporation | Deadlock avoidance by marking CPU traffic as special |
US8539130B2 (en) | 2009-09-24 | 2013-09-17 | Nvidia Corporation | Virtual channels for effective packet transfer |
JP2013506917A (ja) | 2009-09-30 | 2013-02-28 | サンプリファイ システムズ インコーポレイテッド | 圧縮及び復元を用いたマルチ・プロセッサの波形データ交換の改善 |
US8473567B2 (en) | 2010-03-29 | 2013-06-25 | Intel Corporation | Generating a packet including multiple operation codes |
KR101077900B1 (ko) * | 2010-04-09 | 2011-10-31 | 숭실대학교산학협력단 | 네트워크 효율성을 고려한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치 |
US20120033563A1 (en) * | 2010-08-05 | 2012-02-09 | Apple Inc. | Packet classification and prioritization using an ip header in a mobile wireless device |
KR101841173B1 (ko) | 2010-12-17 | 2018-03-23 | 삼성전자주식회사 | 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법 |
JP5682525B2 (ja) | 2011-03-28 | 2015-03-11 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
CN103238302B (zh) * | 2011-03-28 | 2016-07-06 | 松下知识产权经营株式会社 | 中继器、中继器的控制方法 |
US8798038B2 (en) | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
US9712464B2 (en) | 2012-01-19 | 2017-07-18 | Mitsubishi Electric Corporation | Multichannel gateway, multiplex transmission line communication system, multiplex transmission line communication method and computer-readable recording medium storing program |
US9329670B2 (en) * | 2012-06-05 | 2016-05-03 | International Business Machines Corporation | Predicting energy savings |
US9191313B2 (en) | 2012-10-15 | 2015-11-17 | International Business Machines Corporation | Communications over multiple protocol interfaces in a computing environment |
US9479196B2 (en) | 2012-10-22 | 2016-10-25 | Intel Corporation | High performance interconnect link layer |
JP6191833B2 (ja) | 2012-11-29 | 2017-09-06 | パナソニックIpマネジメント株式会社 | 通信装置、通信装置を有するルータ、バスシステム、およびバスシステムを有する半導体回路の回路基板 |
WO2014103144A1 (ja) | 2012-12-28 | 2014-07-03 | パナソニック株式会社 | インタフェース装置、およびメモリバスシステム |
JP5853211B2 (ja) | 2013-01-25 | 2016-02-09 | パナソニックIpマネジメント株式会社 | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム |
JP5895153B2 (ja) | 2013-02-19 | 2016-03-30 | パナソニックIpマネジメント株式会社 | インタフェース装置およびバスシステム |
US20150109024A1 (en) | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
CN106796763B (zh) | 2014-10-07 | 2020-07-28 | 日本电信电话株式会社 | 秘密计算系统、中继装置、它们的方法、及记录介质 |
US9632862B2 (en) | 2014-12-20 | 2017-04-25 | Intel Corporation | Error handling in transactional buffered memory |
US9667560B2 (en) | 2014-12-24 | 2017-05-30 | Nicira, Inc. | Flow sequencing |
US10419990B2 (en) | 2015-01-16 | 2019-09-17 | Sharp Kabushiki Kaisha | Wireless terminals, base stations, communication systems, communication methods, and integrated circuits |
US10509764B1 (en) * | 2015-06-19 | 2019-12-17 | Amazon Technologies, Inc. | Flexible remote direct memory access |
US10582379B2 (en) * | 2015-08-28 | 2020-03-03 | Lg Electronics Inc. | Method for supporting and setting IPsec in mobile communication |
US10467155B2 (en) | 2015-10-26 | 2019-11-05 | Micron Technology, Inc. | Command packets for the direct control of non-volatile memory channels within a solid state drive |
US9946462B1 (en) | 2016-02-15 | 2018-04-17 | Seagate Technology Llc | Address mapping table compression |
US10877915B2 (en) | 2016-03-04 | 2020-12-29 | Intel Corporation | Flattening portal bridge |
US10705987B2 (en) | 2016-05-12 | 2020-07-07 | Lg Electronics Inc. | Autonomous prefetch engine |
US10374947B2 (en) * | 2016-09-30 | 2019-08-06 | Huawei Technologies Co., Ltd. | Method and apparatus for encapsulating / decapsulating data packets at a radio access node |
US9800514B1 (en) * | 2016-12-15 | 2017-10-24 | Red Hat, Inc. | Prioritizing data packets in a network |
US10581554B2 (en) | 2017-01-13 | 2020-03-03 | Dolby Laboratories Licensing Corporation | Systems and methods to generate copies of data for transmission over multiple communication channels |
KR20180118329A (ko) | 2017-04-21 | 2018-10-31 | 에스케이하이닉스 주식회사 | 메모리 시스템, 데이터 처리 시스템 및 그것의 동작 방법 |
US10404402B2 (en) * | 2017-09-22 | 2019-09-03 | Cisco Technology, Inc. | Security protection of terabit ethernet PCS layer using alignment markers |
US11093251B2 (en) * | 2017-10-31 | 2021-08-17 | Micron Technology, Inc. | System having a hybrid threading processor, a hybrid threading fabric having configurable computing elements, and a hybrid interconnection network |
CN113904983A (zh) | 2017-12-27 | 2022-01-07 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
US10956086B2 (en) | 2018-01-29 | 2021-03-23 | Micron Technology, Inc. | Memory controller |
US11461527B2 (en) * | 2018-02-02 | 2022-10-04 | Micron Technology, Inc. | Interface for data communication between chiplets or other integrated circuits on an interposer |
CN111903098B (zh) | 2018-03-22 | 2022-01-28 | 华为技术有限公司 | 处理报文分片的方法、装置和系统 |
US11126587B2 (en) | 2018-05-07 | 2021-09-21 | Micron Technology, Inc. | Event messaging in a system having a self-scheduling processor and a hybrid threading fabric |
US11513837B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread commencement and completion using work descriptor packets in a system having a self-scheduling processor and a hybrid threading fabric |
US11132233B2 (en) | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
US11513839B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Memory request size management in a multi-threaded, self-scheduling processor |
US11513840B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Thread creation on local or remote compute elements by a multi-threaded, self-scheduling processor |
US11068305B2 (en) | 2018-05-07 | 2021-07-20 | Micron Technology, Inc. | System call management in a user-mode, multi-threaded, self-scheduling processor |
US11119972B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | Multi-threaded, self-scheduling processor |
US11074078B2 (en) | 2018-05-07 | 2021-07-27 | Micron Technology, Inc. | Adjustment of load access size by a multi-threaded, self-scheduling processor to manage network congestion |
US11075647B2 (en) | 2019-02-27 | 2021-07-27 | Movidius Limited | Methods and apparatus to compress data |
US10707875B1 (en) * | 2019-05-10 | 2020-07-07 | Achronix Semiconductor Corporation | Reconfigurable programmable integrated circuit with on-chip network |
US11734420B2 (en) | 2019-05-31 | 2023-08-22 | Colorado State University Research Foundation | Snooping invalidation and snooping detection device and method |
CN112785486A (zh) | 2019-11-07 | 2021-05-11 | 英特尔公司 | 用于图像去噪声的自适应可变形核预测网络 |
WO2021186399A1 (en) | 2020-03-18 | 2021-09-23 | Marvell Israel (M.I.S.L) Ltd. | Packet buffer spill-over in network devices |
US11360920B2 (en) | 2020-08-31 | 2022-06-14 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
-
2020
- 2020-08-31 US US17/007,748 patent/US11412075B2/en active Active
-
2021
- 2021-06-23 WO PCT/US2021/038669 patent/WO2022046261A1/en active Application Filing
- 2021-06-23 CN CN202180066491.8A patent/CN116235487A/zh active Pending
-
2022
- 2022-07-14 US US17/865,141 patent/US11924313B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11954055B2 (en) | 2020-08-31 | 2024-04-09 | Micron Technology, Inc. | Mapping high-speed, point-to-point interface channels to packet virtual channels |
Also Published As
Publication number | Publication date |
---|---|
US11412075B2 (en) | 2022-08-09 |
US20220360649A1 (en) | 2022-11-10 |
US11924313B2 (en) | 2024-03-05 |
WO2022046261A1 (en) | 2022-03-03 |
US20220070284A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11360920B2 (en) | Mapping high-speed, point-to-point interface channels to packet virtual channels | |
CN116235487A (zh) | 多协议标头处理 | |
US11777864B2 (en) | Transparent packet splitting and recombining | |
US11539623B2 (en) | Single field for encoding multiple elements | |
US11658922B2 (en) | Optional path ordering in packet-based network | |
US11695704B2 (en) | Reduced sized encoding of packet length field | |
US11789885B2 (en) | Ordered delivery of data packets based on type of path information in each packet | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
US20220263769A1 (en) | Combined write enable mask and credit return field | |
CN116601617A (zh) | 使用同步接口进行次级装置检测 | |
CN116325706A (zh) | 网络信用返回机制 | |
CN116250218A (zh) | 用于基于信用值的流控的早期信用值返回 | |
CN116235479A (zh) | 用于多流量控制单元接口的流量控制 | |
CN114385241A (zh) | 完成可编程原子事务的方法 | |
CN116529721A (zh) | 按需可编程原子内核加载 | |
CN116324753A (zh) | 用于配置多个输入-输出信道的方法 | |
CN116635824A (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 |