CN116325707A - 透明的包拆分和重组 - Google Patents
透明的包拆分和重组 Download PDFInfo
- Publication number
- CN116325707A CN116325707A CN202180067128.8A CN202180067128A CN116325707A CN 116325707 A CN116325707 A CN 116325707A CN 202180067128 A CN202180067128 A CN 202180067128A CN 116325707 A CN116325707 A CN 116325707A
- Authority
- CN
- China
- Prior art keywords
- packet
- chiplet
- packets
- network
- sequence indicator
- 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
Images
Classifications
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- 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
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- 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/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/321—Interlayer communication protocols or service data unit [SDU] definitions; Interfaces between layers
-
- 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]
- H04L69/166—IP fragmentation; TCP segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Abstract
传输装置针对大包产生多个小包且将其传输到接收装置。路由装置将所述多个小包转发到所述接收装置。较小包中的除最后一个包外的每一者都设置了序列指示符。因此,所述接收装置能够确定所述较小包中的每一者为较大包的一部分且缓冲所述较小包或其有效负载。当接收到所述最后一个包时,所述较大包完成且可由所述接收装置处理。所述路由装置延迟来自其它传输装置的将数据传输到所述接收装置的请求,直到所述最后一个包被发送到所述接收装置为止。所述路由装置可继续在除正用于所述大包的虚拟信道外的所有虚拟信道上将业务路由到所述接收装置。
Description
优先权申请
本申请主张2020年8月31日申请的第17/007,492号美国申请的优先权,所述美国申请以全文引用的方式并入本文中。
关于政府支持的声明
本发明是在美国政府支持下依据DARPA授予的合同第HR00111830003号完成的。政府在本发明中具有某些权利。
技术领域
本公开的实施例大体上涉及网络协议,且更具体地说,涉及使用通过网络使用较小包透明地传送大包的方法的联网。
背景技术
包通过网络发送且个别地路由到其目的地。如果多个包是相关的,那么接收装置按需要处理所述多个包。网络不处理大于单个包的数据结构。
小芯片是用于集成各种处理功能性的新兴技术。通常,小芯片系统由集成在中介层上且封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))组成。这种布置不同于单芯片(例如,IC),所述单芯片在一个衬底(例如,单个裸片)上含有不同装置块(例如,知识产权块),例如芯片上系统(SoC),或集成在板上的离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,更低的功耗、缩短的时延等),且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本和时间。
小芯片系统大体上由一或多个应用程序小芯片和支持小芯片组成。此处,应用程序小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计场景的参考。因此,举例来说,合成视觉小芯片系统可包含用于产生合成视觉输出的应用程序小芯片以及支持小芯片,如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型的用例中,合成视觉设计者可设计应用程序小芯片并且从其它方获取支持小芯片。因此,通过避免设计和生产支持小芯片中所包含的功能性,减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持知识产权块的紧密集成,否则可能很难实现,例如使用不同特征大小的那些知识产权块。因此,举例来说,在具有较大特征大小的前一代制造期间设计的装置,或其中针对功率、速度或发热(对于传感器可发生)优化特征大小的那些装置与具有不同特征大小的装置集成可以比尝试在单个裸片上这样做更容易。此外,通过减小裸片的整体大小,小芯片的良率往往会高于更复杂的单裸片装置的良率。
附图说明
根据下文给出的详细描述且根据本公开的各种实施例的附图,将更加充分地理解本公开。然而,附图不应视为将本公开限制于特定实施例,而是仅用于解释和理解。
图1A和1B说明根据实施例的小芯片系统的实例。
图2说明根据实施例的存储器控制器小芯片的实例的组件。
图3说明根据实施例的使用小芯片协议接口(CPI)网络在小芯片之间路由的实例。
图4为根据本公开的一些实施例的包括多个微片的数据包的框图。
图5为展示根据本公开的一些实施例的在透明地拆分包时由电路执行的方法的操作的流程图。
图6为展示根据本公开的一些实施例的在透明地路由经拆分包时由电路执行的方法的操作的流程图。
图7为展示根据本公开的一些实施例的在透明地重组经拆分包时由电路执行的方法的操作的流程图。
图8为本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的实施方案涉及使用多个较小包透明地拆分大包以便经由网络传输的系统和方法。传输装置确定用于接收装置的大包将被拆分成多个较小包。举例来说,大包可超过网络协议的最大大小。传输装置针对大包产生多个小包且将其传输到接收装置。零或多个路由装置沿着从传输装置到接收装置的路径将多个小包转发到接收装置,所述接收装置重组所述小包。
较小包中的除最后一个包外的每一者都设置了序列指示符。最后一个包已清除序列指示符。因此,路由装置和接收装置能够确定较小包中的每一者为较大包的一部分且缓冲较小包或其有效负载。当接收到最后一个包时,较大包完成且可由接收装置处理。
从传输装置到目的地装置的路径上的路由装置识别出大包的传输正在进行。因此,来自其它传输装置的将数据传输到接收装置的请求经延迟,直到具有已清除序列指示符的最后一个包被发送到接收装置为止。以此方式,接收装置在缓冲大包时将不接收不相关包。在一些实例实施例中,序列指示符的处理是基于每个接收装置的每个虚拟信道而不是仅基于每个接收装置。在这些实施例中,路由装置继续在除正用于大包的虚拟信道外的所有虚拟信道上将业务路由到接收装置。
本公开的实施方案的益处中的一者为,可在不增加接收装置的缓冲存储器的情况下利用使用较小包的第二网络协议在网络上透明地传输第一网络协议的大包。与允许在接收装置正缓冲大包时向接收装置传输数据的解决方案(或允许在接收装置正缓冲使用虚拟信道接收的大包的同时使用接收装置的虚拟信道传输数据的解决方案)相比,减少缓冲存储器,减少制造成本,增加制造良率,减小接收组件的物理大小,或其任何合适的组合。在传送、接收和处理数据包中消耗的处理循环减少。另外,在执行处理中消耗的功率减少。包括通信装置的系统的性能也由于联网开销减少而改进。其它益处将对获得本公开的益处的相关领域的技术人员来说显而易见。
减少此类处理循环的此类效率可在包含存储器控制器的小芯片系统中具有特定益处,因此系统提供可在一些实施例中经配置用于实现相对高性能存储器操作的模块化能力,如可能需要的,例如对于执行大量和/或相对高复杂性的计算的系统。允许存储器控制器使用具有较小最大包大小的协议在网络上接收大包使得已经配置成使用大包的其它装置能够得益于在不进行重新配置的情况下使用存储器控制器。
举例来说,各种形式的导航导向系统可能需要基本上同时协调来自多个传感器的数据以执行导航功能。用于实施包含具有一或多种形式存储器的存储器控制器的存储器系统的此类小芯片系统的实例用途将为自动驾驶车辆,其中来自各种测距传感器(例如,雷达、光达和/或超声波传感器)的数据可与来自多个光学传感器(潜在地需要图像处理和图案识别)、陀螺仪、打滑传感器等等的数据相关。
图1A和1B说明根据实施例的小芯片系统110的实例。图1A为安装在外围板105上的小芯片系统110的表示,所述外围板可例如通过外围组件互连高速(PCIe)连接到更广泛的计算机系统。小芯片系统110包含封装衬底115、中介层120和四个小芯片:应用程序小芯片125、主机接口小芯片135、存储器控制器小芯片140和存储器装置小芯片150。其它系统可包含许多额外小芯片以提供额外功能性,如将从以下论述中显而易见。小芯片系统110的封装说明为具有盖或罩盖165,但可使用用于小芯片系统110的其它封装技术和结构。图1B是为了清楚起见标记小芯片系统110中的组件的框图。
应用程序小芯片125说明为包含芯片上网络(NOC)130以支持用于小芯片间通信的小芯片网络155。在实例实施例中,NOC 130可包含在应用程序小芯片125上。在实例中,可响应于所选择的支持小芯片(例如,小芯片135、140和150)来限定NOC 130,从而使设计者能够为NOC 130选择适当数目个小芯片网络连接或开关。在实例中,NOC 130可位于单独小芯片上,或甚至位于中介层120内。在如本文所论述的实例中,NOC 130实施CPI网络。
CPI是基于包的网络,其支持虚拟信道,以实现小芯片之间灵活和高速的交互。CPI实现了从小芯片内网络到小芯片网络155的桥接。举例来说,高级可扩展接口(AXI)是设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖大量的物理设计选项,例如物理信道的数目、信号时序、功率等。在单芯片内,大体上选择这些选项以满足设计目标,例如功率消耗、速度等。然而,为了实现小芯片系统110的灵活性,使用如CPI等适配器在可实施于各种小芯片中的各种AXI设计选项之间介接。通过实现物理信道到虚拟信道的映射且利用包化协议包封基于时间的信令,CPI跨小芯片网络155桥接小芯片内网络。
CPI可使用多种不同的物理层来传输包。物理层可包含简单的导电连接或驱动器以增加电压,或以其它方式促进在较长距离内发射信号。一个此类物理层的实例可包含高级接口总线(AIB),其在各种实例中可在中介层120中实施。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 I/O单元支持三个时钟模式:异步(即,非时控)、SDR和DDR。其它物理层可支持这些时钟模式中的任一者或全部,或额外时钟模式。在各种实例中,非时控模式用于时钟和一些控制信号。SDR模式可使用专用的仅SDR I/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信道。此处,在实例中,AIB信道针对SDR和DDR模式两者以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信号)。在实例中,从与AUX信道相邻的AIB信道开始,以连续递增次序对AIB信道进行编号。与AUX相邻的AIB信道被定义为AIB信道零。
通常,个别小芯片上的CPI接口可包含串行化-反串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令以及低信号计数的情境。然而,对于多路复用和多路分用、错误检测或校正(例如,使用块层级循环冗余校验(CRC))、链路层级重试或前向错误校正,SERDES可能会引起额外的功耗和更长的时延。然而,当低时延或能量消耗是超短距离小芯片到小芯片互连的主要关注点时,可利用时钟速率允许以最小时延进行数据传送的并行接口。CPI包含用以减少这些超短距离小芯片互连的时延和能量消耗的元件。
对于流控制,CPI采用基于信用的技术。例如应用程序小芯片125的接收方向例如存储器控制器小芯片140的发送方提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定传输时间单位的每一虚拟信道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟信道,那么接收方具有布置成五行的五个缓冲器(例如,每一单位时间一行)。如果支持四个虚拟信道,那么接收方具有布置成五行的二十个缓冲器。每一缓冲器保持一个CPI包的有效负载。
当发送方向接收方进行传输时,发送方基于传输而使可用信用递减。一旦接收方的所有信用消耗完,发送方就停止向接收方发送包。这确保接收方始终具有可用缓冲器以存储传输。
当接收方处理接收到的包并释放缓冲器时,接收方将可用缓冲空间传送回到发送方。随后,发送方可使用此信用返回以允许传输额外信息。
还说明了小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要NOC130。小芯片网状网络160可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络160通常实现小芯片流水线,其中一个小芯片充当到流水线的接口,而流水线接口中的其它小芯片仅与自身介接。
另外,还可使用专用装置接口来互连小芯片,所述专用装置接口例如为一或多个工业标准存储器接口145(例如,同步存储器接口,如DDR5、DDR 6)。小芯片系统或个别小芯片到外部装置(例如,较大系统)的连接可通过所要接口(例如,PCIE接口)。在实例中,可通过主机接口小芯片135实施此类外部接口,在所描绘的实例中,所述主机接口小芯片提供小芯片系统110外部的PCIE接口。当行业中的惯例或标准已经汇聚在此类专用存储器接口145上时,通常采用此类接口。作为将存储器控制器小芯片140连接到动态随机存取存储器(DRAM)存储器装置小芯片150的存储器接口145的DDR接口的所说明实例就是此类行业惯例。
在多种可能的支持小芯片中,存储器控制器小芯片140可能存在于小芯片系统110中,这是因为几乎无所不在地使用存储来进行计算机处理以及对存储器装置复杂的现有技术。因此,使用由其他设计者产生的存储器装置小芯片150和存储器控制器小芯片140使小芯片系统设计者能够获得由成熟生产商生产的稳健产品。通常,存储器控制器小芯片140提供用以读取、写入或擦除数据的存储器装置特定的接口。通常,存储器控制器小芯片140可提供额外特征,例如错误检测、错误校正、维护操作或原子操作执行。对于一些类型的存储器,维护操作往往是对存储器装置小芯片150特定的,例如与非(NAND)快闪或存储类存储器中的垃圾收集和NAND快闪存储器中的温度调整(例如,交叉温度管理)。在实例中,维护操作可包含逻辑到物理(L2P)映射或管理,以在数据的物理与逻辑表示之间提供间接层级。在例如DRAM的其它类型的存储器中,例如刷新的一些存储器操作可在某些时间由主机处理器或存储器控制器控制,并且在其它时间由DRAM存储器装置或与一或多个DRAM装置相关联的逻辑控制,所述逻辑例如为接口芯片(在实例中,缓冲器)。
原子操作是例如可由存储器控制器小芯片140执行的数据操纵。在其它小芯片系统中,原子操作可由其它小芯片执行。举例来说,可由应用程序小芯片125在命令中指定“增量”的原子操作,所述命令包含存储器地址并且可能包含增量值。在接收到命令后,存储器控制器小芯片140从指定存储器地址检索数字,使所述数字按命令中所指定的量递增,并存储结果。在成功完成后,存储器控制器小芯片140向应用程序小芯片125提供命令成功的指示。原子操作避免了跨小芯片网状网络160传输数据,从而减少执行此类命令的时延。
原子操作可分类为内置原子或可编程(例如,自定义)原子。内置原子为在硬件中不变地实施的一组有限的操作。可编程原子为可在存储器控制器小芯片140的可编程原子单元(PAU)(例如,自定义原子单元(CAU))上运行的小程序。图1A和1B说明包括PAU的存储器控制器小芯片的实例。
存储器装置小芯片150可为或包含易失性存储器装置或非易失性存储器的任何组合。易失性存储器装置的实例包含但不限于随机存取存储器(RAM)(例如DRAM)、同步DRAM(SDRAM)、图形双数据速率类型6SDRAM(GDDR6 SDRAM)等等。非易失性存储器装置的实例包含但不限于NAND型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)和铁电RAM(FeRAM),等等。所说明实例包含作为存储器装置小芯片150的存储器装置;然而,存储器装置可驻留在别处,例如在板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠式存储器裸片(例如,堆叠或以其它方式与一或多个DRAM装置通信的一或多个SRAM装置)。存储器控制器小芯片140还可用于协调小芯片系统110中的多个存储器小芯片之间的操作(例如,在一或多个层级的高速缓存存储装置中利用一或多个存储器小芯片,并将一或多个额外存储器小芯片用作主存储器)。小芯片系统110还可包含多个存储器控制器小芯片140,如可用以提供用于单独处理器、传感器、网络等的存储器控制功能性。例如小芯片系统110等小芯片架构提供了允许通过更新的小芯片配置适配于不同存储器存储技术和不同存储器接口的益处,而不需要重新设计系统结构的其余部分。
图2说明根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器275通信)、网络通信接口225(例如,用于与小芯片网络285介接且与其它小芯片通信),以及一组原子和合并操作单元250。此组的部件可包含例如写入合并单元255、存储器危险清除单元260、内置原子操作单元265或PAU 270。各种组件是按逻辑说明的,并且它们未必会被实施。举例来说,内置原子操作单元265可能沿着到裸片外存储器275和/或280的路径包括不同装置。举例来说,内置原子操作单元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配置的交叉开关的集合,或提供额外连接的网状网络。
在各种实例中,小芯片网络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可各自被实施为具有其它组合逻辑电路系统(如加法器、移位器、比较器、与门、或门、异或门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元255接收读取数据和请求数据,并且合并请求数据和读取数据以产生具有读取数据和将在响应或返回数据包中使用的源地址的单个单元。写入合并单元255将合并的数据提供到高速缓存210的写入端口(或等效地,提供到高速缓存控制器215以写入到高速缓存210)。任选地,写入合并单元255将合并后的数据提供到网络通信接口225以编码和准备响应或返回数据包以供在小芯片网络285上进行传输。
当请求数据用于内置原子操作时,内置原子操作单元265从写入合并单元255或直接从裸片外存储器控制器220接收请求和读取数据。执行原子操作,且使用写入合并单元255,将所得数据写入到高速缓存210,或提供到网络通信接口225以编码和准备响应或返回数据包以供在小芯片网络285上进行传输。
内置原子操作单元265处理预定义原子操作,如提取并递增或比较并交换。在实例中,这些操作对大小为32字节或更小的单个存储器位置执行简单的读取-修改-写入操作。从经由小芯片网络285传输的请求包发起原子存储器操作。所述请求包具有物理地址、原子操作符类型、操作数大小,和任选地具有至多32字节的数据。原子操作对高速缓存210的高速缓存存储器行执行读取-修改-写入,从而在必要时填充所述高速缓存存储器。原子操作符响应可为简单的完成响应,或具有至多32字节的数据的响应。实例原子存储器操作符包含提取并与、提取并或、提取并异或、提取并相加、提取并减去、提取并递增、提取并递减、提取并最小、提取并最大、提取并交换和比较并交换。在各种实例实施例中,支持32位和64位操作以及对16或32字节的数据的操作。本文所公开的方法还与支持较大或较小操作和较多或较少数据的硬件兼容。
内置原子操作还可涉及对关于所请求数据的“标准”原子操作的请求,例如相对简单的单循环整数原子,例如提取并递增或比较并交换,其吞吐量将与不涉及原子操作的常规存储器读取或写入操作相同。对于这些操作,高速缓存控制器215通常可通过(在硬件中)设置危险位来保留高速缓存210中的高速缓存行,使得高速缓存行在转换时无法被另一进程读取。从裸片外存储器275或高速缓存210获得数据,并将所述数据提供到内置原子操作单元265以执行所请求的原子操作。在原子操作之后,除了将所得数据提供到数据包编码器240以对传出数据包进行编码以供在小芯片网络285上传输之外,内置原子操作单元265还将所得数据提供到写入合并单元255,所述写入合并单元还将所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,存储器危险清除单元260将清除所设置的任何对应危险位。
PAU 270实现了可编程原子操作(也称为“自定义原子操作”)的高性能(高吞吐量和低时延),其与内置原子操作的性能相当。代替执行多个存储器存取,响应于原子操作请求指定可编程原子操作和存储器地址,存储器控制器小芯片205中的电路系统将原子操作请求传送到PAU 270,并设置存储在存储器危险寄存器中对应于原子操作中所使用的存储器行的存储器地址的危险位,以确保不对所述存储器行执行其它操作(读取、写入或原子),然后在原子操作完成后清除所述危险位。为执行可编程原子操作的PAU 270提供的额外的直接数据路径允许额外的写入操作,而不会受到由通信网络的带宽施加的任何限制,并且不会增加通信网络的任何拥塞。
PAU 270包含多线程处理器,例如基于RISC-V ISA的多线程处理器,其具有一或多个处理器核心,并且进一步具有用于执行可编程原子操作的扩展式指令集。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可体现为一或多个混合线程处理器。在一些实例实施例中,PAU 270提供桶式轮循瞬时线程切换以维持较高的每时钟指令速率。
可编程原子操作可由PAU 270执行,其涉及对关于所请求数据的可编程原子操作的请求。用户可准备编程代码以提供此类可编程原子操作。举例来说,可编程原子操作可为相对简单的多循环操作,例如浮点加法,或可为相对复杂的多指令操作,例如布隆过滤器插入(Bloom filter insert)。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户而不是系统供应商定义的。对于这些操作,高速缓存控制器215可通过(在硬件中)设置危险位来保留高速缓存210中的高速缓存行,使得高速缓存行在转变时无法被另一进程读取。从高速缓存210或裸片外存储器275或280获得数据,且提供到PAU 270以执行所请求的可编程原子操作。在原子操作之后,PAU 270将所得数据提供到网络通信接口225以直接编码具有所得数据的传出数据包以供在小芯片网络285上进行传输。另外,PAU 270将所得数据提供到高速缓存控制器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的硬件收发器。网络节点330A-330H还包含一或多个硬件收发器,从而允许通过网络接收和传输微片。在一些实例实施例中,网络节点330A-330H实施为小芯片,其可提供额外功能性。
可使用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信道的配置。一个小芯片上的接收信号连接到成对小芯片上的发射信号。在一些实例实施例中,每一列包括AUX信道和编号为0到N的数据信道。
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信道。在一些实例实施例中,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位接口识别符。
在一些实例实施例中,从与AUX信道相邻的AIB信道开始,以连续递增次序对AIB信道进行编号。与AUX相邻的AIB信道被定义为AIB信道零。
图3借助于实例展示由包括八个节点330的网络连接的八个小芯片310。更多或更少的小芯片310以及更多或更少的节点330可包含在小芯片网络中,从而允许创建任意大小的小芯片的网络。
图4为根据本公开的一些实施例的包括多个微片的数据包400的框图。数据包400经划分成流控制单元(微片),其中的每一者包括36个位。数据包400的第一微片包含控制路径字段405、路径字段410、目的地识别符(DID)字段415、序列继续(SC)字段420、长度字段425和命令字段430。第二微片435和最后一个微片440含有包相关数据。数据包400包含由长度字段425指示的总数目的微片,且因此可不包含第二微片435和最后一个微片440中的一个或两个(例如,如果包中包含仅一个或两个微片)或可包含第二微片435与最后一个微片440之间的一或多个额外微片。
控制路径字段405是两位字段,其指示是否应当使用路径字段410来控制包的排序。在一些实例实施例中,值0指示忽略路径字段410,值1或3指示路径字段410用以确定用于数据包400的路径,且值2指示将使用单个路径排序。在一些实例实施例中,使用1位字段。
路径字段410为八位字段。当控制路径字段405指示使用路径字段410来确定用于数据包400的路径时,用于路径字段410的具有相同值的所有数据包被保证采取穿过网络的相同路径。因此,数据包的次序将在发送方和接收方之间不变。如果控制路径字段405指示将使用单个路径排序,那么确定用于每一包的路径,如同路径字段410设置为零一般。因此,所有包采取相同路径且次序将不变,而与每一数据包的路径字段410的实际值无关。如果控制路径字段405指示将忽略路径字段410,那么路由数据包而不考虑路径字段410的值,且数据包可由接收方以与其由发送方发送的次序不同的次序接收。然而,这可避免网络中的拥塞且允许装置中较大的吞吐量。
DID字段415存储十二位DID。DID唯一地识别网络中的目的地(例如,目的地小芯片)。长度字段425为指示包括数据包400的微片的数目的五位字段。长度字段425的解译可为非线性的。举例来说,值0-22可解译为数据包400中的0-22个微片,且值23-27可解译为数据包400中的33-37个微片(即,比所指示值多10)。长度字段425的其它值可由供应商限定,而非协议限定。
保证按次序递送全部设置了SC字段420的数据包的序列。另外,当路由装置检测到SC字段420被设置在从源到目的地的虚拟信道上的包中时,路由装置不将来自虚拟信道上的其它源的包路由到目的地。一旦从源到目的地的虚拟信道上的已清除SC字段420的包被发送到目的地,路由装置就恢复将来自虚拟信道上的其它源的包路由到目的地。到其它目的地的路由和目的地的其它虚拟信道上的路由不受影响。
用于数据包400的命令存储在命令字段430中,所述命令字段为八位字段。命令可为写入命令、读取命令、预定义原子操作命令、自定义原子操作命令、读取响应、确认响应或供应商特定命令。另外,命令可指示数据包400的虚拟信道。举例来说,不同命令可用于不同虚拟信道,或八位命令字段430的1、2、3或4位可用于指示虚拟信道,且剩余位可用于指示命令。下表展示了根据一些实例实施例的基于协议和命令的虚拟信道。
虚拟信道 | CPI协议 | AXI协议 |
0 | 读取/写入请求 | 写入请求 |
1 | 读取/写入响应 | 写入响应 |
2 | 未使用 | 读取请求 |
3 | 未使用 | 读取响应 |
4 | 优先级读取/写入请求 | 优先级写入请求 |
5 | 优先级读取/写入响应 | 优先级写入响应 |
6 | 未使用 | 优先级读取请求 |
7 | 未使用 | 优先级读取响应 |
用于命令的地址可在路径字段410中指示。存储器存取命令可识别待写入或存取的字节的数目、待存取的存储器空间(例如,裸片外存储器275或用于自定义原子操作的指令存储器),或其任何合适的组合。在一些实例实施例中,命令可指示稍后微片的额外位识别所述命令。举例来说,可以通过使用八位命令字段430中的供应商特定命令且使用第二微片435的一部分或全部存储多字节命令来发送所述多字节命令。因此,对于命令字段430的某些值,包400包含仅一个标头微片(例如,图4中展示的第一标头微片,其含有字段405-430)。对于命令字段430的其它值,包400包含预定额外数目的标头微片或预定总数目的标头微片。
图5为展示根据本公开的一些实施例的在透明地拆分包时由电路执行的方法500的操作的流程图。方法500包含操作510、520、530和540。借助于实例而非限制,方法500被描述为使用图4的数据包由图1-3的装置执行。
在操作510中,第一小芯片(例如,图3的小芯片310A,其实施图2的存储器控制器小芯片205)基于预定阈值(例如,图2的网络所支持的最大包大小)和数据包的大小而确定拆分数据包。在一些实例实施例中,数据包具有不同于网络协议的协议(例如,具有比图2的网络的CPI协议大的最大有效负载的AXI包)。因此,小芯片310A或硬件收发器320A可充当具有第一最大包大小的第一网络与具有第二最大包大小的第二网络之间的桥接器。
在操作520中,第一小芯片从数据包产生各自包括比数据包少的位的多个较小包。举例来说,数据包可包括标头和有效负载。标头指示包的大小、包的源和包的目的地。多个较小包中的每一者还可包括标头和有效负载。多个较小包中的每一者的标头指示较小包的大小、包的源和包的目的地,其中较小包中的每一者的源和目的地与大包的源和目的地相同。较小包中的每一者包含对于所有较小包相同的虚拟信道(例如,由命令字段430指示的虚拟信道)的指示。所有较小包的总有效负载大小等于或大于数据包的有效负载大小,但每一较小包小于数据包。
在操作530中,第一小芯片传输设置了第一序列指示符(例如,第一包的SC字段420)的多个较小包中的第一包。在操作540中,第一小芯片还传输已清除第二序列指示符(例如,第二包的SC字段420)的多个较小包中的第二包。关于操作530和540,术语“第一包”和“第二包”仅在两个包之间进行区分,且并不暗示第一和第二包是多个较小包的顺序第一和第二包。举例来说,“第一包”可为所发送的第一包,且“第二包”可为所发送的最后一个包。作为另一实例,“第一包”可为所发送的(多于两个包中的)倒数第二个包,且“第二包”可为所发送的最后一个包。因此,在操作530与540之间、在操作530之前或这两者,第一小芯片可发送多个较小包的额外包。在一些实例实施例中,在发送较小包中的任一者之前完全执行操作520。在其它实例实施例中,操作520、530和540交错,使得在产生每一较小包时发送所述每一较小包。
通过使用方法500,第一小芯片能够使用具有小于数据包的有效负载的最大有效负载大小的网络协议传输数据包的整个有效负载。使用下文关于图6和7所论述的方法600和700,使得接收装置能够在不修改经设计用于数据包的电路系统或软件指令的情况下重构数据包。以此方式,降低了电路复杂性,从而提高部件的可重用性和生产效率并降低成本。另外,处理循环、存储器消耗和用以传输和接收数据包的数据的功率减少。
图6为展示根据本公开的一些实施例的在透明地路由经拆分包时由电路执行的方法600的操作的流程图。方法600包含操作610、620、630、640、650、660和670。借助于实例而非限制,方法600被描述为使用图4的数据包由图1-3的装置执行。
在操作610中,路由装置(例如,图3的网络节点330C)从第一小芯片(例如,执行方法500的小芯片310A)接收寻址到第二小芯片(例如,小芯片310D)的第一包,所述第一包设置了第一序列指示符。如上文关于方法500所论述,SC字段420指示到同一目的地(或同一目的地的同一虚拟信道)的随后包是较大包的组成部分。
在操作620中,基于第一包经寻址到第二小芯片,路由装置将第一包路由到接收装置。因此,第一包通常被路由到第二小芯片。在一些实例实施例中,更新路由装置的寄存器文件或其它数据结构以记录传输装置的识别符、接收装置的识别符、虚拟信道的识别符或其任何合适的组合。
在操作630中,路由装置从第三小芯片接收寻址到第二小芯片的第三包。举例来说,小芯片310C还可将通过网络节点330C路由的包发送到小芯片310D。
在操作640中,基于第一序列指示符经设置,路由装置延迟第三包到第二小芯片的传输。通过参考在操作620中更新的数据结构,路由装置确定已经向第二小芯片发送具有经设置的序列识别符的包,且所述包的发送装置不同于第三包的发送装置。因此,将第三包传输到第二小芯片将使得第二小芯片中断接收组成部分中包括第一包的较大包。为了避免此情况,路由装置拒绝包,请求第三小芯片尝试重新发送包,或路由装置将包高速缓存在本地存储器存储装置中以供后续传输。
在操作650中,路由装置从第一小芯片接收寻址到第二小芯片的第二包,所述第二包已清除第二序列指示符。在将较大包拆分成两个较小包的最简单情况下,操作650的“第二包”为较大包的第二包。然而,如果较大包被拆分成多于两个包,那么可在第一小包与最后一个包之间接收任何数目的中间包,所述中间包各自设置了序列指示符。因此,操作610的“第一包”可为小包中的除最后一个小包外的任一者,且操作650的“第二包”为大包的最后一个小包。
在操作660中,基于第二包经寻址到第二小芯片,路由装置将第二包路由到第二小芯片。在一些实例实施例中,更新路由装置的寄存器文件或其它数据结构以清除在操作620中记录的传输装置与接收装置之间的关系。因此,当从其它传输装置接收到后续包时,那些包将被路由到接收装置。
在操作670中,在将第二包路由到第二小芯片之后,基于第二序列指示符已经清除,路由装置将第三包路由到第二小芯片。举例来说,如果在操作640中第三包高速缓存于路由装置处,那么现在将第三包发送到第二小芯片。作为另一实例,如果在操作640中路由装置拒绝第三包,那么第三小芯片将第三包重新发送到路由装置,且将第三包路由到第二小芯片。
通过使用方法600,路由装置能够将来自第一小芯片的多个包路由到第二小芯片,而不允许将中间包从其它小芯片传输到第二小芯片且不中断其它业务。举例来说,在基于虚拟信道的系统中,到其它小芯片的业务和到第二小芯片的其它虚拟信道的业务在无中断的情况下继续。以此方式,降低了电路复杂性,从而提高部件的可重用性和生产效率并降低成本。另外,处理循环、存储器消耗和用以传输和接收大包的数据的功率减少。
图7为展示根据本公开的一些实施例的在透明地重组经拆分包时由电路执行的方法700的操作的流程图。方法700包含操作710、720、730和740。借助于实例而非限制,方法700被描述为使用图4的数据包由图1-3的装置执行。
在操作710中,接收装置(例如,图3的小芯片310D)接收第一组包,所述第一组包中的每一包设置了序列指示符。举例来说,执行方法500的传输装置可将大包拆分成多个较小包,其中所述多个较小包中的除最后一个包外的每一者都设置了序列指示符。接收装置接收这些包。
在操作720中,接收装置基于第一组包中的每一包的序列指示符经设置而缓冲所述一组包。举例来说,当接收到第一组包中的每一包时,接收装置可检查所接收包的序列指示符,且如果序列指示符经设置,那么将所接收包添加到缓冲器。接收装置可具有多个缓冲器,每一虚拟信道一个缓冲器。在这些实例实施例中,可基于包的虚拟信道(例如,如由图4的包400的命令字段430所指示或如由包标头的专用虚拟信道字段所指示)而选择用于所接收包的缓冲器。
在操作730中,接收装置接收已清除序列指示符的第二包。继续执行方法500的传输装置的实例,在已清除序列指示符的情况下传输由拆分较大包产生的最后一个小包。因此,操作730的“第二包”可为由传输装置传输的经拆分的大包中的最后一个小包。
在操作740中,基于第二包已清除序列指示符,接收装置将第一组包与第二包组合,以重新创建较大数据包的有效负载。举例来说,当接收到已清除序列指示符的包时,可检查缓冲器的内容。如果缓冲器为空,那么将所接收包作为网络协议的单个包(例如,CPI包)处理。如果缓冲器含有具有经设置的序列指示符的一或多个先前所接收的包,那么将先前所接收的包与具有已清除序列指示符的最后所接收的包组合,以重新创建原始大包。在一些实例实施例中,还重新创建原始大包的标头。在其它实例实施例中,仅通过丢弃小包的标头而重新创建有效负载。将经重构包提供到接收装置的处理器或存储器存储装置。
因此,通过使用方法700,使接收装置能够接收大于网络的最大包大小的包,通过所述网络递送所述包。在其中硬件收发器重构大包的实施例中,不需要对其它电路系统的修改。因此,使期望使用第一网络协议传输的大包的现有装置能够在不修改的情况下使用第二网络协议进行通信。
图8说明实例机器800的框图,可利用所述机器、在所述机器中或通过所述机器实施本文所论述的任一或多种技术(例如,方法)。如本文所描述,实例可包含机器800中的逻辑或数个组件或机构,或可由其操作。电路系统(例如,处理电路系统)是在包含硬件的机器800的有形实体中实施的电路集合(例如,简单电路、门、逻辑等)。电路系统成员资格可随时间推移为灵活的。电路系统包含可在操作时单独或以组合方式执行指定操作的部件。在实例中,可将电路系统的硬件不变地设计成执行特定操作(例如,硬连线)。在实例中,电路系统的硬件可包含可变连接的物理组件(例如,执行单元、晶体管、简单电路等),包含以物理方式修改(例如,不变集中式粒子的磁性、电可移动放置等)以对特定操作的指令进行编码的机器可读媒体。在连接物理组件时,硬件构成的基础电性质例如从绝缘体改变为导体,或反之亦然。指令使得嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接在硬件中创建电路系统的部件,以在操作时进行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的一部分或在装置操作时以通信方式耦合到电路系统的其它组件。在实例中,物理组件中的任一者可用于多于一个电路系统中的多于一个部件中。举例来说,在操作下,执行单元可在一个时间点在第一电路系统的第一电路中使用,且在不同时间由第一电路系统中的第二电路重新使用,或由第二电路系统中的第三电路重新使用。下面是关于机器800的这些组件的额外实例。
在替代实施例中,机器800可用作独立装置或可连接(例如,联网)到其它机器。在联网部署中,机器800可在服务器-客户端网络环境中在服务器机器、客户端机器或这两者的容量中操作。在实例中,机器800可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器800可以是个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络器具、网络路由器、交换机或桥接器,或能够执行(循序或以其它方式)指定待由所述机器采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”也将视为包含个别地或共同地执行一组(或多组)指令以执行本文中所论述的方法中的任何一或多种(例如云计算、软件即服务(SaaS)、其它计算机集群配置)的任何机器集合。
机器(例如,计算机系统)800可包含硬件处理器802(例如,中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器804、静态存储器806(例如,用于固件、微码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)等的存储器或存储装置),以及大容量存储装置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,在其上存储体现本文中所描述的技术或功能中的任何一或多种或被其利用的一组或多组数据结构或指令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系列标准、称为/>的IEEE 802.16系列标准)、IEEE 802.15.4系列标准、对等(P2P)网络等。在实例中,网络接口装置820可包含一或多个物理插口(例如,以太网、同轴或电话插口)或一或多个天线以连接到通信网络826。在实例中,网络接口装置820可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者无线地通信。术语“传输媒体”应被视为包含能够存储、编码或携载用于由机器800执行的指令的任何无形媒体,且包含数字或模拟通信信号或用于促进此类软件的通信的其它无形媒体。传输媒体为机器可读媒体。
在前述说明书中,已描述本公开的一些实例实施方案。将显而易见的是,可以在不脱离如所附权利要求书中阐述的本公开的更广范围的情况下对本公开进行各种修改。因此,说明书和附图应被视为说明性的而非限制性的。下文为本公开的实施的实例方案的非穷尽性列表。
实例1为一种系统,其包括:传输器,其在第一小芯片处;路由器,其经由小芯片网络耦合到所述传输器;以及接收器,其在经由所述小芯片网络耦合到所述路由器的第二小芯片处,其中:所述第一小芯片经配置以执行包括以下各项的操作:基于预定阈值和寻址到所述第二小芯片的数据包的大小而确定拆分所述数据包;从所述数据包产生各自包括比所述数据包少的位的多个较小包;传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
在实例2中,包含根据实例1所述的主题,其中所述路由器经配置以执行包括以下各项的操作:接收所述第一包;基于所述第一包经寻址到所述第二小芯片,将所述第一包路由到所述第二小芯片;从经由所述小芯片网络耦合到所述路由器的第三小芯片接收第三包,所述第三包经寻址到所述第二小芯片;基于所述第一包经寻址到所述第二小芯片且设置了所述第一序列指示符,延迟所述第三包到所述第二小芯片的传输;接收所述第二包;基于所述第二包经寻址到所述第二小芯片,将所述第二包路由到所述第二小芯片;以及在将所述第二包路由到所述第二小芯片之后,基于所述第二包已清除所述第二序列指示符,将所述第三包路由到所述第二小芯片。
在实例3中,包含根据实例2所述的主题,其中:所述延迟所述第三包到所述第二小芯片的所述传输进一步基于所述第一包的虚拟信道与所述第三包的虚拟信道相同。
在实例4中,包含根据实例2至3所述的主题,其中:在将所述第二包路由到所述第二小芯片之后的所述将所述第三包路由到所述第二小芯片进一步基于所述第二包的虚拟信道与所述第三包的虚拟信道相同。
在实例5中,包含根据实例2至4所述的主题,其中所述路由器进一步经配置以执行包括以下各项的操作:从经由所述小芯片网络耦合到所述路由器的第四小芯片接收第四包,所述第四包经寻址到所述第二小芯片;以及基于所述第一包的虚拟信道不同于所述第四包的虚拟信道,将所述第四包路由到所述第二小芯片。
在实例6中,包含根据实例1至5所述的主题,其中所述第二小芯片经配置以执行包括以下各项的操作:接收所述多个较小包;基于所述第一包设置了所述第一序列指示符,缓冲所述第一包;以及基于所述第二包已清除所述第二序列指示符,组合所述多个较小包以重新创建所述数据包的有效负载。
在实例7中,包含根据实例1至6所述的主题,其中:所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及传输设置了序列指示符的所述一组包中的每一包;以及所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包中的所述最后一个包。
在实例8中,包含根据实例1至7所述的主题,其中:所述第二小芯片为存储器控制器小芯片。
在实例9中,包含根据实例8所述的主题,其中:所述存储器控制器小芯片通过存储器接口与至少一个存储器装置小芯片通信。
实例10为一种方法,其包括:由经由小芯片网络耦合到路由器的第一小芯片基于预定阈值和寻址到经由所述小芯片网络耦合到所述路由器的第二小芯片的数据包的大小而确定拆分大包;由所述第一小芯片从所述数据包产生各自包括比所述数据包少的位的多个较小包;由所述第一小芯片在所述小芯片网络上传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及由所述第一小芯片在所述网络上传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
在实例11中,根据实例10所述的主题包含:由所述路由器接收所述第一包;基于所述第一包经寻址到所述第二小芯片,将所述第一包路由到所述第二小芯片;由所述路由器从经由所述小芯片网络耦合到所述路由器的第三小芯片接收第三包,所述第三包经寻址到所述第二小芯片;基于所述第一包经寻址到所述第二小芯片且设置了所述第一序列指示符,延迟所述第三包到所述第二小芯片的传输;由所述路由器接收所述第二包;基于所述第二包经寻址到所述第二小芯片,将所述第二包路由到所述第二小芯片;以及在将所述第二包路由到所述第二小芯片之后,基于所述第二包已清除所述第二序列指示符,将所述第三包路由到所述第二小芯片。
在实例12中,包含根据实例11所述的主题,其中:所述延迟所述第三包到所述第二小芯片的所述传输进一步基于所述第一包的虚拟信道与所述第三包的虚拟信道相同。
在实例13中,包含实例11至12所述的主题,其中:在将所述第二包路由到所述第二小芯片之后的所述将所述第三包路由到所述第二小芯片进一步基于所述第二包的虚拟信道与所述第三包的虚拟信道相同。
在实例14中,根据实例11至13所述的主题包含:由所述路由器从经由所述小芯片网络耦合到所述路由器的第四小芯片接收第四包,所述第四包经寻址到所述第二小芯片;以及基于所述第一包的虚拟信道不同于所述第四包的虚拟信道,将所述第四包路由到所述第二小芯片。
在实例15中,根据实例10至14所述的主题包含:由所述第二小芯片接收所述多个较小包;基于所述第一包设置了所述第一序列指示符,缓冲所述第一包;以及基于所述第二包已清除所述第二序列指示符,组合所述多个较小包以重新创建所述数据包的有效负载。
在实例16中,包含根据实例10至15所述的主题,其中:所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及传输设置了序列指示符的所述一组包中的每一包;以及所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包中的所述最后一个包。
实例17为一种存储指令的非暂时性机器可读媒体,所述指令在由经由小芯片网络耦合到路由器的第一小芯片执行时使得所述第一小芯片执行包括以下各项的操作:基于预定阈值和经由所述小芯片网络耦合到所述路由器的第二小芯片的数据包的大小而确定拆分大包;从所述大包产生各自包括比所述数据包少的位的多个较小包;在所述小芯片网络上传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及在所述小芯片网络上传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
在实例18中,包含根据实例17所述的主题,其中:所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及传输设置了序列指示符的所述一组包中的每一包;以及所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包中的所述最后一个包。
在实例19中,包含根据实例17至18所述的主题,其中:所述第二小芯片为存储器控制器小芯片。
在实例20中,包含根据实例19所述的主题,其中:所述存储器控制器小芯片通过存储器接口与至少一个存储器装置小芯片通信。
实例21为包含指令的至少一个机器可读媒体,所述指令在由处理电路系统执行时使得所述处理电路系统执行操作以实施实例1-20中的任一者。
实例22为一种设备,其包括用以实施实例1至20中的任一者的构件。
实例23为一种用以实施实例1至20中任一者的系统。
实例24为一种用以实施实例1至20中的任一者的方法。
Claims (20)
1.一种系统,其包括:
传输器,其在第一小芯片处;
路由器,其经由小芯片网络耦合到所述传输器;以及
接收器,其在经由所述小芯片网络耦合到所述路由器的第二小芯片处,其中:
所述第一小芯片经配置以执行包括以下各项的操作:
基于预定阈值和寻址到所述第二小芯片的数据包的大小而确定拆分所述数据包;
从所述数据包产生各自包括比所述数据包少的位的多个较小包;
传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及
传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
2.根据权利要求1所述的系统,其中所述路由器经配置以执行包括以下各项的操作:
接收所述第一包;
基于所述第一包经寻址到所述第二小芯片,将所述第一包路由到所述第二小芯片;
从经由所述小芯片网络耦合到所述路由器的第三小芯片接收第三包,所述第三包经寻址到所述第二小芯片;
基于所述第一包经寻址到所述第二小芯片且设置了所述第一序列指示符,延迟所述第三包到所述第二小芯片的传输;
接收所述第二包;
基于所述第二包经寻址到所述第二小芯片,将所述第二包路由到所述第二小芯片;以及
在将所述第二包路由到所述第二小芯片之后,基于所述第二包已清除所述第二序列指示符,将所述第三包路由到所述第二小芯片。
3.根据权利要求2所述的系统,其中:
所述延迟所述第三包到所述第二小芯片的所述传输进一步基于所述第一包的虚拟信道与所述第三包的虚拟信道相同。
4.根据权利要求2所述的系统,其中:
在将所述第二包路由到所述第二小芯片之后的所述将所述第三包路由到所述第二小芯片进一步基于所述第二包的虚拟信道与所述第三包的虚拟信道相同。
5.根据权利要求2所述的系统,其中所述路由器进一步经配置以执行包括以下各项的操作:
从经由所述小芯片网络耦合到所述路由器的第四小芯片接收第四包,所述第四包经寻址到所述第二小芯片;以及
基于所述第一包的虚拟信道不同于所述第四包的虚拟信道,将所述第四包路由到所述第二小芯片。
6.根据权利要求1所述的系统,其中所述第二小芯片经配置以执行包括以下各项的操作:
接收所述多个较小包;
基于所述第一包设置了所述第一序列指示符,缓冲所述第一包;以及
基于所述第二包已清除所述第二序列指示符,组合所述多个较小包以重新创建所述数据包的有效负载。
7.根据权利要求1所述的系统,其中:
所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:
确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及
传输设置了序列指示符的所述一组包中的每一包;以及
所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包的所述最后一个包。
8.根据权利要求1所述的系统,其中:
所述第二小芯片为存储器控制器小芯片。
9.根据权利要求8所述的系统,其中:
所述存储器控制器小芯片通过存储器接口与至少一个存储器装置小芯片通信。
10.一种方法,其包括:
由经由小芯片网络耦合到路由器的第一小芯片基于预定阈值和寻址到经由所述小芯片网络耦合到所述路由器的第二小芯片的数据包的大小而确定拆分大包;
由所述第一小芯片从所述数据包产生各自包括比所述数据包少的位的多个较小包;
由所述第一小芯片在所述小芯片网络上传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及
由所述第一小芯片在所述网络上传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
11.根据权利要求10所述的方法,其进一步包括:
由所述路由器接收所述第一包;
基于所述第一包经寻址到所述第二小芯片,将所述第一包路由到所述第二小芯片;
由所述路由器从经由所述小芯片网络耦合到所述路由器的第三小芯片接收第三包,所述第三包经寻址到所述第二小芯片;
基于所述第一包经寻址到所述第二小芯片且设置了所述第一序列指示符,延迟所述第三包到所述第二小芯片的传输;
由所述路由器接收所述第二包;
基于所述第二包经寻址到所述第二小芯片,将所述第二包路由到所述第二小芯片;以及
在将所述第二包路由到所述第二小芯片之后,基于所述第二包已清除所述第二序列指示符,将所述第三包路由到所述第二小芯片。
12.根据权利要求11所述的方法,其中:
所述延迟所述第三包到所述第二小芯片的所述传输进一步基于所述第一包的虚拟信道与所述第三包的虚拟信道相同。
13.根据权利要求11所述的方法,其中:
在将所述第二包路由到所述第二小芯片之后的所述将所述第三包路由到所述第二小芯片进一步基于所述第二包的虚拟信道与所述第三包的虚拟信道相同。
14.根据权利要求11所述的方法,其进一步包括:
由所述路由器从经由所述小芯片网络耦合到所述路由器的第四小芯片接收第四包,所述第四包经寻址到所述第二小芯片;以及
基于所述第一包的虚拟信道不同于所述第四包的虚拟信道,将所述第四包路由到所述第二小芯片。
15.根据权利要求10所述的方法,其进一步包括:
由所述第二小芯片接收所述多个较小包;
基于所述第一包设置了所述第一序列指示符,缓冲所述第一包;以及
基于所述第二包已清除所述第二序列指示符,组合所述多个较小包以重新创建所述数据包的有效负载。
16.根据权利要求10所述的方法,其中:
所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:
确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及
传输设置了序列指示符的所述一组包中的每一包;以及
所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包的所述最后一个包。
17.一种存储指令的非暂时性机器可读媒体,所述指令在由经由小芯片网络耦合到路由器的第一小芯片执行时使得所述第一小芯片执行包括以下各项的操作:
基于预定阈值和寻址到经由所述小芯片网络耦合到所述路由器的第二小芯片的数据包的大小而确定拆分大包;
从所述大包产生各自包括比所述数据包少的位的多个较小包;
在所述小芯片网络上传输设置了第一序列指示符的所述多个较小包中的第一包,所述第一包经寻址到所述第二小芯片;以及
在所述小芯片网络上传输已清除第二序列指示符的所述多个较小包中的第二包,所述第二包经寻址到所述第二小芯片。
18.根据权利要求17所述的非暂时性机器可读媒体,其中:
所述传输设置了所述第一序列指示符的所述第一包为以下的一部分:
确定所述多个较小包的一组包中的每一包不是所述多个较小包的最后一个包;以及
传输设置了序列指示符的所述一组包中的每一包;以及
所述传输已清除所述第二序列指示符的所述第二包是基于确定所述第二包是所述多个较小包的所述最后一个包。
19.根据权利要求17所述的非暂时性机器可读媒体,其中:
所述第二小芯片为存储器控制器小芯片。
20.根据权利要求19所述的非暂时性机器可读媒体,其中:
所述存储器控制器小芯片通过存储器接口与至少一个存储器装置小芯片通信。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,492 | 2020-08-31 | ||
US17/007,492 US11418455B2 (en) | 2020-08-31 | 2020-08-31 | Transparent packet splitting and recombining |
PCT/US2021/038698 WO2022046264A1 (en) | 2020-08-31 | 2021-06-23 | Transparent packet splitting and recombining |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116325707A true CN116325707A (zh) | 2023-06-23 |
Family
ID=80353701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180067128.8A Pending CN116325707A (zh) | 2020-08-31 | 2021-06-23 | 透明的包拆分和重组 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11418455B2 (zh) |
CN (1) | CN116325707A (zh) |
WO (1) | WO2022046264A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117041186A (zh) * | 2023-10-07 | 2023-11-10 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
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 |
---|---|---|---|---|
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US11296995B2 (en) | 2020-08-31 | 2022-04-05 | Micron Technology, Inc. | Reduced sized encoding of packet length field |
Family Cites Families (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6650660B1 (en) * | 1999-07-27 | 2003-11-18 | Pluris, Inc. | Apparatus and method for synchronization of multiple data paths and recovery from lost synchronization |
MXPA02007857A (es) * | 2000-02-14 | 2002-11-29 | Thomson Licensing Sa | Metodo para la transmision de mensajes divididos en varios paquetes. |
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 |
CN102754078B (zh) * | 2009-09-30 | 2015-05-20 | 阿尔特拉公司 | 使用压缩和解压缩的增强型多处理器波形数据交换 |
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 | 삼성전자주식회사 | 리오더 버퍼를 이용한 메모리 인터리빙 장치 및 그 메모리 인터리빙 방법 |
CN103283192A (zh) | 2011-03-28 | 2013-09-04 | 松下电器产业株式会社 | 中继器、中继器的控制方法以及程序 |
JP5682525B2 (ja) | 2011-03-28 | 2015-03-11 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
US8798038B2 (en) | 2011-08-26 | 2014-08-05 | Sonics, Inc. | Efficient header generation in packetized protocols for flexible system on chip architectures |
EP2806606B1 (en) | 2012-01-19 | 2019-07-03 | Mitsubishi Electric Corporation | Multi-channel gateway device, multiple line communication method and program |
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 |
CN104919763A (zh) | 2012-11-29 | 2015-09-16 | 松下知识产权经营株式会社 | 通信装置、具有通信装置的路由器、总线系统以及具有总线系统的半导体电路的电路基板 |
WO2014103144A1 (ja) | 2012-12-28 | 2014-07-03 | パナソニック株式会社 | インタフェース装置、およびメモリバスシステム |
WO2014115207A1 (ja) | 2013-01-25 | 2014-07-31 | パナソニック株式会社 | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム |
CN104247354B (zh) | 2013-02-19 | 2018-03-30 | 松下知识产权经营株式会社 | 接口装置以及总线系统 |
US20150109024A1 (en) * | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
JP6283119B2 (ja) * | 2014-10-07 | 2018-02-21 | 日本電信電話株式会社 | 秘密計算システム、中継装置、それらの方法、プログラム、および記録媒体 |
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 |
WO2017196138A2 (en) | 2016-05-12 | 2017-11-16 | Lg Electronics Inc. | System and method for early data pipeline lookup in large cache design |
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 |
CN109981457B (zh) * | 2017-12-27 | 2021-09-07 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
EP3746902B1 (en) | 2018-01-29 | 2023-09-27 | 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 |
EP3761571B1 (en) | 2018-03-22 | 2022-06-22 | Huawei Technologies Co., Ltd. | Method, device and system for handling message fragmentation |
US11513839B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Memory request size management in a multi-threaded, self-scheduling processor |
US11132233B2 (en) | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a multi-threaded, self-scheduling processor |
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 |
US11119972B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | 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 |
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 |
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 |
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 | 英特尔公司 | 用于图像去噪声的自适应可变形核预测网络 |
CN115516833A (zh) * | 2020-03-18 | 2022-12-23 | 马维尔以色列(M.I.S.L.)有限公司 | 网络设备中的分组缓冲溢出 |
US11539623B2 (en) | 2020-08-31 | 2022-12-27 | Micron Technology, Inc. | Single field for encoding multiple elements |
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 |
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 |
-
2020
- 2020-08-31 US US17/007,492 patent/US11418455B2/en active Active
-
2021
- 2021-06-23 CN CN202180067128.8A patent/CN116325707A/zh active Pending
- 2021-06-23 WO PCT/US2021/038698 patent/WO2022046264A1/en active Application Filing
-
2022
- 2022-07-14 US US17/865,111 patent/US11777864B2/en active Active
Cited By (3)
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 |
CN117041186A (zh) * | 2023-10-07 | 2023-11-10 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
CN117041186B (zh) * | 2023-10-07 | 2024-01-30 | 苏州仰思坪半导体有限公司 | 数据传输方法、芯片系统、计算设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20220360540A1 (en) | 2022-11-10 |
US20220070105A1 (en) | 2022-03-03 |
US11418455B2 (en) | 2022-08-16 |
US11777864B2 (en) | 2023-10-03 |
WO2022046264A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11777864B2 (en) | Transparent packet splitting and recombining | |
US11924313B2 (en) | Multiple protocol header processing | |
US20230097722A1 (en) | Single field for encoding multiple elements | |
US11695704B2 (en) | Reduced sized encoding of packet length field | |
US11966345B2 (en) | Network credit return mechanisms | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
US11658922B2 (en) | Optional path ordering in packet-based network | |
US11789885B2 (en) | Ordered delivery of data packets based on type of path information in each packet | |
US11588745B2 (en) | Early credit return for credit-based flow control | |
US20220263769A1 (en) | Combined write enable mask and credit return field | |
CN116235479A (zh) | 用于多流量控制单元接口的流量控制 | |
CN116324753A (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 |