CN116324747A - 基于每个分组中的路径信息类型进行数据分组的有序传递 - Google Patents
基于每个分组中的路径信息类型进行数据分组的有序传递 Download PDFInfo
- Publication number
- CN116324747A CN116324747A CN202180068661.6A CN202180068661A CN116324747A CN 116324747 A CN116324747 A CN 116324747A CN 202180068661 A CN202180068661 A CN 202180068661A CN 116324747 A CN116324747 A CN 116324747A
- Authority
- CN
- China
- Prior art keywords
- path
- field
- destination device
- address
- data packet
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/466—Transaction processing
- G06F9/467—Transactional memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0038—System on Chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/38—Universal adapter
- G06F2213/3808—Network interface controller
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multi Processors (AREA)
- Communication Control (AREA)
- Information Transfer Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种系统可包含多个电子装置和多个硬件收发器。所述多个电子装置可经由接口网络彼此耦合,并且可包含多个小芯片。其中至少一个收发器包含在所述多个电子装置中的相应电子装置中或耦合到所述相应电子装置的所述多个硬件收发器可各自被配置成从源装置接收数据分组。所述数据分组可各自包含路径字段和网桥类型字段,所述路径字段包含指示到目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息。所述源装置和所述目的地装置可各自包含小芯片。所述多个硬件收发器可各自进一步被配置成使用每个接收到的数据分组的所述路径信息和所述网桥类型信息将接收到的数据分组传输到所述目的地装置。
Description
优先权申请
本申请要求2020年8月31日申请的第17/007,247号美国申请的优先权,所述美国申请以全文引用的方式并入本文中。
背景技术
小芯片是一种用于集成各种处理功能性的新兴技术。一般来说,小芯片系统由离散模块(各自被称为“小芯片”)构成,所述离散模块集成在中介层上,且在许多实例中视需要通过一或多个已建立的网络互连,以向系统提供所要功能。中介层和所包含的小芯片可封装在一起,以便于与较大系统的其它组件互连。每个小芯片可包含一或多个个别集成电路或“芯片”(IC),其可能与离散电路组件组合,并且共同耦合到相应衬底以便于附接到中介层。系统中的大多数或所有小芯片将被个别地配置成用于通过一或多个已建立的网络进行通信。
小芯片作为系统的个别模块的配置不同于在单芯片上实施的此系统,所述芯片在一个衬底(例如单个裸片)上含有不同装置块(例如,知识产权(IP)块),例如芯片上系统(SoC),或集成在印刷电路板(PCB)上的多个离散封装装置。一般来说,小芯片提供比离散封装装置更好的性能(例如,更低的功率消耗、减少的时延等),并且小芯片提供比单裸片芯片更大的生产效益。这些生产效益可包含更高的良率或减少的开发成本和时间。
小芯片系统可包含例如一或多个应用(或处理器)小芯片和一或多个支持小芯片。此处,应用小芯片与支持小芯片之间的区别只是对小芯片系统可能的设计情境的参考。因此,例如,合成视觉小芯片系统可包含(仅借助于实例)用以产生合成视觉输出的应用小芯片,以及例如存储器控制器小芯片、传感器接口小芯片或通信小芯片等支持小芯片。在典型的用例中,合成视觉设计者可设计应用小芯片并且从其它方获取支持小芯片。因此,由于避免设计和生产支持小芯片中所体现的功能性,因此减少了设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很困难的IP块紧密集成,例如使用不同处理技术或使用不同特征大小(或利用不同的接触技术或间距)制造的IP块。因此,可以模块化方式组装具有不同物理、电气或通信特性的多个IC的组合件或IC组合件,以提供实现所要功能性的组合件。小芯片系统还可促进调适以适应将并入有小芯片系统的不同较大系统的需要。在实例中,IC或其它组合件可针对特定功能的功率、速度或发热进行优化,如同传感器可能发生的情况一样,相比于在单个裸片上尝试与其它装置集成,所述IC或其它组合件可更容易地与其它装置集成。另外,通过减小裸片的整体大小,小芯片的良率往往高于更复杂的单裸片装置的良率。
附图说明
根据下文给出的详细描述和本公开的各种实施例的附图,将更充分地理解本公开。然而,图式不应视为将本公开限制于具体实施例,而是仅用于解释和理解。
图1A和1B示出根据实施例的小芯片系统的实例。
图2示出根据实施例的存储器控制器小芯片的实例的组件。
图3示出根据实施例的使用接口网络的装置布局中的电子装置(例如使用小芯片协议接口(CPI)网络的小芯片布局中的小芯片)之间的路由的实例。
图4是根据本公开的一些实施例的适用于传输在其路径字段中具有不同类型的路径信息的数据分组的系统的数据分组的框图。
图5是根据本公开的一些实施例的作为图4的数据分组的具体实例的数据分组的框图。
图6是示出根据本公开的一些实施例的用于确定有序分组传输的路径的方法的操作的流程图。
图7是示出根据本公开的一些实施例的用于使用被传输的每个分组中的路径和网桥类型字段值来确定有序分组传输的路径的方法的操作的流程图。
图8是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
下文所描述的图1提供小芯片系统和在其中操作的组件的实例。在此类小芯片系统的上下文中,数据分组各自具有路径字段,并且在其路径字段中具有公共值的数据分组当从源端点(例如,小芯片)传输到目的地端点(例如另一个小芯片)时相对于彼此排序。此类数据分组包含从源端点(例如,请求者)发送到目的地装置以在目的地端点处发起操作的请求分组。一些用例要求含有相同地址的请求分组在从源端点流到目标端点时进行排序。一些其它用例要求含有相同事务标识符(TID)的请求分组在从源端点流向目标端点时进行排序。可能还有其它用例要求在请求分组从源端点流到目标端点时,对指定字段中含有公共值的请求分组进行排序。因为不同的分组通信标准和协议共存并由不同的装置供应商使用,因此仅支持其中一种用例的网络的适用性有限。因此,需要在小芯片系统中支持两个或更多个此类用例。
本发明主题支持在指定字段中具有公共值的数据分组(例如,请求分组)的有序传递,所述数据分组使用数据分组中的另一字段来指示指定字段中包含的信息的类型,从而支持例如使用不同标准和/或不同协议从不同供应商的装置发送的数据分组。在一个实例中,路径字段中具有公共值的请求分组彼此排序,以便从源端点传递到目标端点。每个请求分组的路径字段含有路径信息,并且可以填充与请求分组相关联的目的地地址(或所述地址的一部分)或请求者的TID。目的地地址和TID是两种类型的路径信息,(例如,不同供应商使用的)不同协议使用所述路径信息来标识用于传递请求分组的目的地端点。每个请求分组中的另一个字段,网桥类型(BTYPE)字段,指示在所述请求分组中使用了哪些类型的路径信息(目的地地址或TID)。
本发明主题支持在例如小芯片的电子装置之间逐个分组地传输例如请求分组的数据分组时基于地址的排序和基于事务标识符的排序。虽然目的地地址和TID在本公开中被讨论为用于在不同标准或协议之间桥接的选项或网桥类型的实例,但是本发明主题也可以应用于具有指示数据分组的有序传递的目的地端点的其它选项或网桥类型的用例。
图1A和1B示出根据实施例的小芯片系统110的实例。图1A是安装在外围板105上的小芯片系统110的表示,其可通过例如外围组件互连高速(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模式,AIB信道宽度为40位的倍数:(40、80、120……)。AIB信道宽度包含传输和接收信号。信道可配置成具有对称数目的传输(TX)和接收(RX)输入/输出(I/O),或者具有非对称数目的传输器和接收器(例如,所有传输器或所有接收器)。信道可取决于哪一个小芯片提供主时钟而充当AIB主体或从属。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信道,外加辅助信道。辅助信道含有用于AIB初始化的信号。列内的所有AIB信道(辅助信道除外)具有相同配置(例如,全部为TX、全部为RX,或者一半为TX且一半为RX,以及具有相同数目的数据I/O信号)。在实例中,以邻近于AUX信道的AIB信道开始,以连续递增次序对AIB信道编号。与AUX相邻的AIB信道被定义为AIB信道零。
AIB信道通常被配置成一半TX数据加上一半RX数据、全部为TX数据,或全部为RX数据外加相关联时钟和混杂控制。在一些实例实施例中,TX数据信号相比于RX数据信号的数目在设计时确定且无法作为系统初始化的一部分来配置。
CPI分组协议(点到点和可路由)在AIB信道内使用对称的接收和传输I/O单元。CPI串流协议允许更灵活地利用AIB I/O单元。在一些实例实施例中,用于串流模式的AIB信道可将I/O单元配置为全部TX、全部RX,或一半TX和一半RX。
通常,个别小芯片上的CPI接口可包含串行化-反串行化(SERDES)硬件。SERDES互连非常适用于需要高速信令和低信号计数的情境。然而,对于复用和解复用、错误检测或校正(例如,使用块级循环冗余检查(CRC))、链路级重试或前向错误校正,SERDES可能会引起额外的功耗和更长的等待时间。然而,在低时延或能量消耗是超短距离小芯片到小芯片互连的主要关注点时,可利用时钟速率允许以最少时延进行数据传送的并行接口。CPI包含用于使这些超短距离小芯片互连的时延和能耗两者最小化的元件。
对于流控制,CPI采用基于信用的技术。如应用小芯片125的接收方向如存储器控制器小芯片140的发送方提供表示可用缓冲器的信用。在实例中,CPI接收方包含用于给定传输时间单位的每个虚拟信道的缓冲器。因此,如果CPI接收方在时间上支持五个消息和单个虚拟信道,则接收方具有布置成五个条目的五个缓冲器(例如,每一单位时间一个条目)。如果支持四个虚拟信道,则接收方具有布置成五个条目的二十个缓冲器。每个缓冲器保持一个CPI分组的有效负载。
当发送方向接收方进行传输时,发送方基于传输而使可用信用递减。一旦接收方的所有信用已消耗,发送方就停止向接收方发送分组。这确保接收方始终具有可用缓冲器以存储传输。
当接收方处理接收到的分组并释放缓冲器时,接收方将可用缓冲空间传达回发送方。指示发送方可用的缓冲空间可接着由发送方使用的此信用值返回允许传输额外信息。
还说明了小芯片网状网络160,其使用直接小芯片到小芯片技术,而不需要NOC130。小芯片网状网络160可在CPI或另一小芯片到小芯片协议中实施。小芯片网状网络160通常实现小芯片流水线,其中一个小芯片充当到流水线的接口,而流水线接口中的其它小芯片仅与自身介接。
此外,还可使用专用装置接口来互连小芯片,所述专用装置接口例如一或多个工业标准存储器接口145(例如,同步存储器接口,例如DDR5、DDR6)。小芯片系统或个别小芯片到外部装置的连接(例如,较大系统可通过所要接口(例如,PCIE接口))。在实例中,例如可通过主机接口小芯片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)、图形DDR类型6SDRAM(GDDR6 SDRAM)等等。非易失性存储器装置的实例包含但不限于与非(NAND)型快闪存储器、存储类存储器(例如,相变存储器或基于忆阻器的技术)、铁电RAM(FeRAM)等。所说明实例包含作为小芯片的存储器装置150,然而,存储器装置150可驻存在其它地方,如在板105上的不同封装中。对于许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠存储器裸片,例如堆叠或另外与一或多个DRAM装置通信的一或多个SRAM装置。存储器控制器140还可用以协调小芯片系统110中的多个存储器小芯片之间的操作;例如,在一或多个层级的高速缓存存储装置中利用一或多个存储器小芯片,并且使用一或多个额外存储器小芯片作为主存储器。小芯片系统110还可包含多个存储器控制器140,其可用以提供用于单独处理器、传感器、网络等的存储器控制功能性。例如小芯片系统110的小芯片架构提供允许通过更新后的小芯片配置适配于不同存储器存储技术和不同存储器接口而不需要重新设计系统结构的其余部分的优点。
图2示出根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器175通信)、网络通信接口225(例如,用于与小芯片网络180介接且与其它小芯片通信),以及一组原子和合并操作250。此组的成员可包含例如写入合并单元155、危险单元(160)、内置原子单元165或PAU 170。各种组件是按逻辑说明的,并且它们未必会被实施。例如,内置原子单元165有可能包括沿着到裸片外存储器的路径的不同装置。例如,内置原子可在存储器小芯片上的接口装置/缓冲器中,如上文所论述。相比之下,可编程原子操作170可能在存储器控制器小芯片105上的单独处理器中实施(但在各种实例中,可在其它位置中实施,例如在存储器小芯片上实施)。
裸片外存储器控制器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、写入合并单元265和内置(例如,预定)原子操作单元265可各自被实施为具有其它组合逻辑电路系统(如加法器、移位器、比较器、与门、或门、异或门或其任何合适的组合)或其它逻辑电路系统的状态机。这些组件还可包含一或多个寄存器或缓冲器以存储操作数或其它数据。PAU 270可实施为一或多个处理器核心或控制电路系统,以及具有其它组合逻辑电路系统或其它逻辑电路系统的各种状态机,且还可包含一或多个寄存器、缓冲器或存储器以存储地址、可执行指令、操作数和其它数据,或可实施为处理器。
写入合并单元255接收读取数据和请求数据,并且合并请求数据和读取数据以产生具有读取数据和将在响应或返回数据分组中使用的源地址的单个单元。写入合并单元255将合并后的数据提供到高速缓存210的写入端口(或等效地,提供到高速缓存控制器215以写入到高速缓存210)。任选地,写入合并单元255将合并的数据提供到网络通信接口225以编码且准备响应或返回数据分组以在小芯片网络280上进行传输。
当请求数据用于内置原子操作时,内置原子操作单元265从写入合并单元265或直接从裸片外存储器控制器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获得数据,且提供到PAU270以执行请求的可编程原子操作。在原子操作之后,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示出根据实施例的使用接口网络的装置布局300中的电子装置(例如使用小芯片协议接口(CPI)网络的小芯片布局300中的小芯片)之间的路由的实例。装置布局300包含电子装置,在本实例中,电子装置可以包含单个小芯片310A、310B、310C、310D、310E、310F、310G和310H形式的一或多个电子装置,这些电子装置通过包括节点330A、330B、330C、330D、330E、330F、330G和330H的网络互连。节点330A-330H可以容纳在NOC 340中,所述NOC是单独的小芯片或另一小芯片的一部分(例如,图1的NOC 130被示为应用小芯片125的一部分),或者节点330A-330H可以分布在小芯片系统的其它结构中,例如在小芯片310A-310H中的一个或多个中。每个节点可以包含一或多个交换机和/或收发器,其被布置和控制以提供如本文所述的通信。电子装置310A-310H各自包含硬件收发器320A-320H中的一个。在一个实施例中,电子装置310A-310H各自为小芯片,并且网络是CPI网络。因此,装置布局(或小芯片布局)300包含小芯片310A、310B、310C、310D、310E、310F、310G和310H,它们通过包括节点330A、330B、330C、330D、330E、330F、330G和330H的CPI网络互连。小芯片310A-310H各自包含硬件收发器320A-320H中的一个。
CPI分组可使用高级接口总线(AIB)在小芯片310之间传送。AIB提供物理层功能性。物理层使用具有转发时钟的源同步数据传递来传输和接收数据。相对于所传输时钟在SDR或DDR处跨越AIB传送分组。AIB支持各种信道宽度。当在SDR模式中操作时,AIB信道宽度为20位的倍数(20、40、60……),并且对于DDR模式,AIB信道宽度为40位的倍数:(40、80、120……)。AIB信道宽度包含传输和接收信号。信道可被配置成具有对称数目的传输(TX)和接收(RX)输入/输出(I/O),或者具有非对称数目的传输器和接收器(例如,所有传输器或所有接收器)。
AIB适配器提供到AIB链路层的接口和到AIB物理层(PHY)的接口。AIB适配器提供数据分级寄存器、上电复位定序器和控制信号移位寄存器。
AIB物理层由AIB I/O单元组成。AIB I/O单元(在一些实例实施例中由硬件收发器320实施)可为仅输入、仅输出或双向的。AIB信道由一组AIB I/O单元构成,单元的数目取决于AIB信道的配置。一个小芯片上的接收信号连接到成对小芯片上的传输信号。在一些实例实施例中,每一列包括辅助(AUX)信道和编号为0到N的数据信道。
数据分组通过网络节点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,从而允许创建任意大小的小芯片网络。
可以根据在逐个分组的基础上指定的路径和排序要求,经由接口网络(例如,CPI网络)在电子装置(例如,小芯片)310之间传输数据分组。在各种实施例中,从不同供应商提供的电子装置生成的数据分组可以遵循不同的标准和/或协议。例如,数据分组各自包含路径字段,所述路径字段含有可用于将所述数据分组路由到其目的地端点的路径信息。然而,遵循不同协议的数据分组可以在路径字段中具有不同类型的路径信息。例如,遵循CPI协议的数据分组的路径字段含有与所述数据分组相关联的目的地装置地址的一部分,而遵循高级可扩展接口(AXI)协议的数据分组的路径字段则含有与所述数据分组相关联的事务标识符(TID)。本发明主题提供了在例如本公开中所讨论的CPI网络的网络中进行数据分组的有序传递的此类不同类型的路径信息之间的桥接。在各种实施例中,在传输的每个数据分组中指定路径信息和路径信息的类型,使得网络可以支持具有关于如何指定路径信息的不同要求的多个用例。
图4是根据本公开的一些实施例的适用于传输在其路径字段中具有不同类型的路径信息的数据分组的系统的数据分组400的框图。系统可以包含经由接口网络(例如,包含节点330A-330H)彼此耦合的多个电子装置(例如,电子装置310A-310H)和各自包含在多个电子装置中的电子装置中或耦合到所述电子装置的多个硬件收发器(例如,硬件收发器320A-320H)。多个硬件收发器可以各自从多个电子装置的源装置接收数据分组,并将接收到的数据分组传输到多个电子装置的目的地装置。这些数据分组可以各自是数据分组400的实例。
数据分组400包含路径(PATH)字段402、网桥类型(BTYPE)字段404、事务标识符/地址(TA)字段406以及含有用于系统操作的任何类型数据的一或多个额外字段。PATH字段402含有路径信息,所述路径信息指示借以将数据分组400传递到目的地装置的路径。BTYPE字段404含有指示路径字段中的路径信息的类型的网桥类型信息。路径信息的类型可以是例如目的地装置的地址或与数据分组400相关联的TID。PATH字段402中的地址可以是目的地装置的地址的一部分,其中地址的剩余部分包含在数据分组400的一或多个额外字段中。例如,地址可以是目的地装置的存储器位置地址的子字段(用于存取同一装置上的不同存储器位置的分组可以采用不同的路径)。PATH字段402中的信息可以是TID的一部分,其中TID的剩余部分包含在数据分组400的一或多个额外字段中。TA字段406包含TID或目的地装置的地址,这取决于BTYPE字段的值。如果BTYPE字段404的值指示PATH字段402含有地址,则TA字段406含有TID。如果BTYPE字段404的值指示PATH字段402含有TID,则TA字段406含有地址(其可以是目的地装置的地址的一部分)。
在接收到每个数据分组400之后,硬件收发器可以至少使用包含在所述数据分组中的路径信息和网桥类型信息将所述数据分组传输到目的地装置。数据分组400可以是用于在目的地装置中发起操作的请求分组。在其PATH字段402中具有公共值且在其BTYPE字段404中具有公共值的请求分组在其传递到目的地装置时相对于彼此进行排序。通过使用具有如数据分组400所示格式的请求分组,例如CPI网络的接口网络可以逐个分组地支持基于地址的排序和基于TID的排序两者。
图5是根据本公开的一些实施例的作为数据分组400的具体实例的数据分组500的框图。当在CPI网络中的分组传输中使用时,数据分组500可以表示数据分组400的实例。如图5所示,数据分组500被划分为流控制单元(微片),每个单元由36位组成。数据分组500的第一微片501包含小芯片协议(CP)字段512、路径(PATH)字段514、目的地标识符(DID)字段516、序列继续(SC)字段518、长度(LEN)字段520和命令(CMD)字段522。数据分组500的第二微片502包含地址(ADDR)字段524、TID/地址(TA)字段526、另一ADDR字段528、H字段530、B字段532和TU字段534。数据分组500的第三微片503包含信用返回(CR)/保留(RSV)字段536、另一ADDR字段538、源标识符(SID)字段540、网桥类型(BTYPE)字段542和外部命令(EXCMD)字段544。微片504和505(在微片503之后并且在它们之间具有任意数量的类似微片)各自包含CR/RSV字段536和桥接器/供应商(BRIDGE/VENDOR)字段546。微片506和507(在微片505之后并且在它们之间具有任意数量的类似微片)各自包含信用返回(CR)/写使能掩码(WEM)字段548和数据(DATA)字段550。数据分组500在图5中示出,并且在此通过实例而非限制的方式进行讨论。在各种实施例中,适合根据本发明主题使用的数据分组各自包含至少PATH字段514、BTYPE字段542和一或多个其它字段,以提供传递分组所需的完整信息(例如TA字段526)。
CP字段512是两位字段,其指示CR/RSV字段536是含有CR数据、RSV数据还是应被忽略,CR/WEM字段548是含有CR数据、WEM数据还是应被忽略,以及PATH字段514是否应用于控制正在传输的数据分组的排序。例如,CP字段512可以指示数据分组500是使用无序传递、使用PATH字段514上的路径信息的有序传递还是通过单个预定(例如,默认)路径的有序传递来传输到目的地装置。
可以表示PATH字段402的实例的PATH字段514是含有路径信息的八位字段,其中路径信息的类型在BTYPE字段542中指示。当包含在PATH字段514中的路径信息用于确定用于传递的路径时,PATH字段514中具有相同值和相同类型的路径信息的所有数据分组500通过接口网络有序传递到目的地装置来进行传输。因此,这些数据分组500的次序在源装置与目的地装置之间的传输期间保持不变。路径信息的类型可以包含目的地装置的地址的一部分(在所示实例中为位7至14)或与正在传输的数据分组500相关联的TID。在一个实例中,如果BTYPE字段542的值为0,则PATH字段514含有目的地装置的地址部分。如果BTYPE字段542的值为1,则PATH字段514含有TID。BTYPE字段542的值2或更大可以保留以供将来使用,以适应其它一或多个选项。当不需要用于另一用途时,如果BTYPE字段542的值为2或更大,则PATH字段514可以含有目的地装置的地址部分作为默认值。
DID字段516存储十二位DID。DID唯一地标识网络中的目的地(例如,目的地小芯片)。所有具有SC字段525设置的数据分组500的序列保证按次序传递。LEN字段520是指示数据分组500中包含的微片的数目的五位字段。长度字段520的解释可以是非线性的。例如,值0-22可以解释为数据分组500中的0-22个微片,而值23-27可以解释为数据分组500的33-37个微片(即,比指示值多10个)。长度字段530的其它值可以由供应商定义,而不是由协议定义。
数据分组500的命令存储在CMD字段522中,CMD字段是七位字段。命令可以是写入命令、读取命令、预定义的原子操作命令、定制的原子操作命令、读取响应、确认响应或供应商特定命令。另外,命令可以指示数据分组500的虚拟信道。例如,不同的命令可用于不同的虚拟信道,或者七位命令字段535的1、2、3或4位可用于指示虚拟信道,而剩余的位可用于指示命令。
存储器存取命令可进一步标识要写入或存取的字节数目、要存取的存储器空间(例如,裸片外存储器375或用于定制原子操作的指令存储器)或其任何适当组合。在一些实例实施例中,命令可以指示稍后的微片的额外位标识命令。例如,可以通过在七位CMD字段522中使用供应商特定命令并使用另一或多个字段(例如,DATA字段550)的一部分或全部来包含较大命令来发送较大数据传送命令。
当需要时,ADDR字段524、528和538可以各自含有目的地装置的地址的一部分。在所示实例中,ADDR字段524、528和538分别含有位15至33、3至6和34至41。
TA字段526的内容(其可以表示TA字段406的实例)取决于BTYPE字段542中的网桥类型信息。如果BTYPE字段542中的网桥类型信息指示PATH字段514含有与正在传输的数据分组500相关联的目的地装置的地址的一部分,则TA字段526含有与正在传输的数据分组500相关联的TID。如果BTYPE字段542中的网桥类型信息指示PATH字段514含有TID,则TA字段526含有地址的一部分(在所示实例中为位7至14)。
H字段530、B字段532和TU字段可各自含有目的地装置的地址的一或多个低位。SID字段526存储八位源ID。SID唯一地标识网络中的源装置(例如,源小芯片)。
BTYPE字段542可以表示BTYPE字段404的一个实例,它是一个四位字段,含有标识PATH字段514中的路径信息类型的网桥类型信息,如上文所论述。
数据分组500的扩展命令存储在EXCMD字段544中,EXCMD字段是可用于补充CMD字段522的八位字段。
在微片503、504和505中的每一个中,CR/RSV字段536是用于信用返回的四位字段。如果CP字段501被启用用于信用返回,则CR字段提供数据以返回信用(例如,指示来自传输器的缓冲器可以接受额外数据)。如果CP字段501未被启用用于信用返回,则RSV指示位被保留(例如,用于未来使用或由CP字段501控制的其它分组相关目的)。在微片504和505中的每一个中,BRIDGE/VENDOR字段546含有允许在不同协议或标准(例如,在CPI与AXI之间)之间桥接的信息,例如由不同供应商使用的信息。
在微片506和507中的每一个中,CR/WEM字段548是四位字段。如果WEM被启用,则CR/WEM字段548指示是否要写入DATA字段550中的32位数据的对应字节中的每一个。因此,单个微片的大小总是36位,但可含有0-32位的待写入数据。如果CR被启用,CR/WEM字段548的两位标识信用返回是否用于虚拟信道0、1、2或3,而CR/WEM字段548的其它两位标识要返回的信用数目为0、1、2或3。
图6是示出根据本公开的一些实施例的用于确定有序分组传输的路径的方法600的操作的流程图。可以执行方法600,用于通过经由各种路由将多个电子装置彼此连接的接口网络在包含多个电子装置(例如,小芯片)的系统中的源装置与目的地装置之间传输数据分组。在实例中,源装置和/或目的地装置各自是小芯片,并且接口网络包含如本公开中所讨论的CPI网络。在实例中,多个电子装置包含存储器装置。
在610,从源装置接收数据分组。所述数据分组各自包含指示到多个电子装置的目的地装置的路径的路径信息和指示所包含的路径信息的类型的网桥类型信息。在620,使用接收到的数据分组中的每个分组的路径信息和网桥类型信息将接收到的数据分组传输到目的地装置。每个数据分组中的网桥类型信息指示所述数据分组中的路径信息是目的地装置的地址(或地址的一部分)还是与所述数据分组相关联的TID。具有相同路径信息(即,相同地址或相同TID)和相同网桥类型信息的数据分组通过有序传递到目的地装置来进行传输。响应于指示路径信息是地址的网桥类型信息,具有相同地址的数据分组按照数据分组接收的次序传输到由地址标识的目的地装置(必要时在一或多个额外地址字段中具有额外地址位)。响应于指示路径信息是TID的网桥类型信息,具有相同TID的数据分组按照每个数据分组接收的次序传输到次序被发送到由与TID相关联的地址标识的并且包含在每个数据分组的一或多个地址字段中的目的地装置。
图7是示出根据本公开的一些实施例的用于使用所传输的每个分组中的路径和网桥类型字段值来确定有序分组传输的路径的方法700的操作的流程图。方法700可以表示用于通过将多个电子装置通过各种路由连接到彼此的接口网络在包含多个电子装置(例如,小芯片)的系统中的源装置与目的地装置之间传输数据分组的方法600的另一实施例。
在710,从源装置接收数据分组。所述数据分组各自包含路径字段和网桥类型字段,路径字段包含指示到多个电子装置的目的地装置的路径的路径信息,网桥类型字段包含指示路径字段中的路径信息的类型的网桥类型信息。数据分组的实例是数据分组400,其中数据分组500是用于CPI网络的更具体实例。
在720,确定每个接收到的数据分组的网桥类型字段的值。在一个实例中,协议字段可以具有至少两个值中的一者:第一值(例如,0)和第二值(例如,1)。第一值指示数据分组的路径字段中的路径信息是与数据分组相关联的目的地装置的地址(或地址的部分)。第二值指示数据分组的路径字段中的路径信息是与数据分组相关联的TID。
在730,如果接收到的数据分组的网桥类型字段具有第一值,则经由其路径字段中的地址标识的路径将接收到的数据分组传输到目的地装置。路径字段可含有目的地装置的地址的一部分,而地址的剩余部分包含在数据分组的一或多个其它字段中。在其路径字段中具有相同值(地址)的数据分组通过有序传递传输到目的地装置。在740,如果接收到的数据分组的网桥类型字段具有第二值,则经由其路径字段中的TID标识的路径将接收到的数据分组传输到目的地装置。目的地装置的地址包含在数据分组的一或多个字段(路径字段除外)中。在其路径字段中具有相同值(TID)的数据分组通过有序传递传输到目的地装置。
图8是本文讨论的技术中的任何一或多者(例如,方法600或方法700)可借以实施的实例机器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可另外包含存储装置(例如,驱动单元)808、信号生成装置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中,根据实例1和2中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置的主题可以任选地包含:按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
在实例4中,根据实例1至3中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置的主题可以任选地包含:使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置。所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。
在实例5中,根据实例1至4中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置的主题可以任选地包含:使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
在实例6中,根据实例4和5中的任何一个或任何组合所述的数据分组可以任选地包含地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址,并且根据实例4和5中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置可以任选地包含使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置;以及使用所述接收到的数据分组中的第二数据分组的所述地址/事务标识符字段中的所述地址将所述第二数据分组传输到所述目的地装置。所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值。所述事务标识符与所述目的地装置的所述地址相关联。
在实例7中,一种系统可以包含多个电子装置和多个硬件收发器。所述多个电子装置可以经由接口网络彼此耦合,并且可以包含多个小芯片。其中至少一个收发器包含在所述多个电子装置中的相应电子装置中或耦合到所述相应电子装置的多个硬件收发器可以各自被配置成从源装置接收数据分组。所述数据分组可以各自包含路径字段和网桥类型字段,所述路径字段包含指示到目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息。所述源装置和所述目的地装置可以各自包含所述多个小芯片中的小芯片。所述多个硬件收发器可以各自进一步被配置成使用接收到的数据分组中的每个分组的所述路径信息和所述网桥类型信息将所述接收到的数据分组传输到所述目的地装置。
在实例8中,根据实例7所述的主题可以任选地被配置成使得多个硬件收发器各自被配置成按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
在实例9中,根据实例7和8中的任何一个或任何组合所述的主题可以任选地被配置成使得所述多个硬件收发器各自被配置成:使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置,所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。
在实例10中,根据实例9所述的主题可以任选地被配置成使得所述多个硬件收发器各自被配置成:使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
在实例11中,根据实例10所述的主题可以任选地被配置成使得所述数据分组各自包括地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址。
在实例12中,根据实例7至11中的任何一个或任何组合所述的主题可以任选地被配置成包含存储器装置,所述存储器装置包含所述多个电子装置和所述接口网络,因此所述数据分组各自包含含有存储器存取命令的命令字段。
在实例13中,一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时可以使所述系统执行包含以下各项的操作:从包含多个小芯片并且经由接口网络彼此耦合的多个电子装置的源装置接收数据分组;以及使用接收到的数据分组中的每个分组的所述路径信息和所述网桥类型信息将所述接收到的数据分组传输到所述目的地装置。所述数据分组可以各自包含路径字段,所述路径字段包含指示到所述多个电子装置的目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息。所述源装置和所述目的地装置可以各自包含所述多个小芯片中的小芯片。
在实例14中,根据实例13所述的数据分组可以任选地包含用于操作包含所述多个电子装置的存储器装置的命令。
在实例15中,根据实例13和14中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置的主题可以任选地包含:按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
在实例16中,根据实例13至15中的任何一个或任何组合所述的将所述接收到的数据分组传输到所述目的地装置的主题可以任选地包含:使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置;以及使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置。所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
在实例17中,根据实例16所述的数据分组可以任选地各自包含地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址。
在实例18中,一种系统可以包含多个电子装置和多个硬件收发器。所述多个电子装置可以经由接口网络彼此耦合,并且包含多个小芯片。其中至少一个收发器包含在所述多个电子装置中的相应电子装置中或耦合到所述相应电子装置的所述多个硬件收发器可以各自被配置成执行操作,包含在所选电子装置处,从所述多个电子装置的第一源装置接收第一数据分组。所述第一数据分组各自包含指示到所述多个电子装置的第一目的地装置的第一路径的第一路径信息且包含指示所述第一路径信息的类型的第一网桥类型信息。所述操作可进一步包含:响应于所述第一路径信息和所述第一网桥类型信息,通过第一路径配置将接收到的第一数据分组传输到所述第一目的地装置;以及从所述多个电子装置的第二源装置接收第二数据分组。所述第二数据分组各自包含指示到所述多个电子装置的第二目的地装置的第二路径的第二路径信息且包含指示所述第二路径信息的类型的第二网桥类型信息。所述操作可进一步包含响应于所述第二路径信息和所述第二网桥类型信息,通过第二路径配置将接收到的第二数据分组传输到所述第二目的地装置。所述第一源装置、所述第一目的地装置、所述第二源装置和所述第二目的地装置可以各自包含所述多个小芯片中的小芯片。
在实例19中,根据实例18所述的主题可以任选地被配置成使得所述接收到的第一和第二数据分组各自包含含有路径信息的路径字段,所述第一数据分组在所述路径字段中含有第一路径值,并且所述第二数据分组在所述路径字段中含有第二路径值。
在实例20中,根据实例19所述的主题可以任选地被配置成使得所述接收到的第一和第二数据分组各自包含含有网桥类型信息的网桥类型字段,所述第一数据分组在所述网桥类型字段中含有第一类型值,并且所述第二数据分组在所述网桥类型字段中含有第二类型值。
在实例21中,根据实例20所述的主题可以任选地被配置成使得所述第一类型值指示所述第一路径值是所述第一目的地装置的地址的一部分还是与所述第一目的地装置相关联的事务标识符的一部分,并且所述第二类型值指示所述第二路径值是所述第二目的地装置的地址的一部分还是与所述第二目的地装置相关联的事务标识符的一部分。
Claims (21)
1.一种方法,其包括:
在耦合到接口网络的多个电子装置之间传输数据,所述多个电子装置包含多个小芯片,所述传输包含:
从源装置接收数据分组,所述数据分组各自包含路径字段和网桥类型字段,所述路径字段包含指示到目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息,所述源装置和所述目的地装置各自包含所述多个小芯片中的小芯片;以及
使用接收到的数据分组中的每个分组的所述路径信息和所述网桥类型信息将所述接收到的数据分组传输到所述目的地装置。
2.根据权利要求1所述的方法,其中所述数据分组含有用于操作所述多个电子装置中的一或多个存储器装置的命令。
3.根据权利要求1所述的方法,其中将所述接收到的数据分组传输到所述目的地装置包括:按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
4.根据权利要求1所述的方法,其中将所述接收到的数据分组传输到所述目的地装置包括:使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置,所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。
5.根据权利要求1所述的方法,其中将所述接收到的数据分组传输到所述目的地装置包括:使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
6.根据权利要求1所述的方法,其中所述数据分组各自包括地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址,并且其中将所述接收到的数据分组传输到所述目的地装置包括:
使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置,所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分;以及
使用所述接收到的数据分组中的第二数据分组的所述地址/事务标识符字段中的所述地址将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
7.一种系统,其包括:
经由接口网络彼此耦合的多个电子装置,所述多个电子装置包含多个小芯片;以及
多个硬件收发器,其中至少一个收发器包含在所述多个电子装置中的相应电子装置中或耦合到所述相应电子装置,所述多个硬件收发器各自被配置成:
从源装置接收数据分组,所述数据分组各自包含路径字段和网桥类型字段,所述路径字段包含指示到目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息,所述源装置和所述目的地装置各自包含所述多个小芯片中的小芯片;以及
使用接收到的数据分组中的每个分组的所述路径信息和所述网桥类型信息将所述接收到的数据分组传输到所述目的地装置。
8.根据权利要求7所述的系统,其中所述多个硬件收发器各自被配置成:按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
9.根据权利要求7所述的系统,其中所述多个硬件收发器各自被配置成:使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置,所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分。
10.根据权利要求9所述的系统,其中所述多个硬件收发器各自被配置成:使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
11.根据权利要求10所述的系统,其中所述数据分组各自包括地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址。
12.根据权利要求7所述的系统,其包括存储器装置,所述存储器装置包含所述多个电子装置和所述接口网络,其中所述数据分组各自包含含有存储器存取命令的命令字段。
13.一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时使所述系统执行包括以下各项的操作:
从包含多个小芯片并且经由接口网络彼此耦合的多个电子装置的源装置接收数据分组,所述数据分组各自包含路径字段和网桥类型字段,所述路径字段包含指示到所述多个电子装置的目的地装置的路径的路径信息,所述网桥类型字段包含指示所述路径字段中的所述路径信息的类型的网桥类型信息,所述源装置和所述目的地装置各自包含所述多个小芯片中的小芯片;以及
使用接收到的数据分组中的每个分组的所述路径信息和所述网桥类型信息将所述接收到的数据分组传输到所述目的地装置。
14.根据权利要求13所述的非暂时性机器可读媒体,其中所述数据分组含有用于操作包含所述多个电子装置的存储器装置的命令。
15.根据权利要求13所述的非暂时性机器可读媒体,其中将所述接收到的数据分组传输到所述目的地装置包括:按照从所述源装置接收所述数据分组的次序将所述接收到的数据分组中的在所述路径字段中具有公共值的数据分组传输到所述目的地装置。
16.根据权利要求13所述的非暂时性机器可读媒体,其中将所述接收到的数据分组传输到所述目的地装置包括:
使用所述接收到的数据分组中的第一数据分组的所述路径字段中的地址将所述第一数据分组传输到所述目的地装置,所述第一数据分组在所述网桥类型字段中具有指示所述路径字段中的地址的值,所述地址是所述目的地装置的所述地址的至少一部分;以及
使用所述接收到的数据分组中的第二数据分组的所述路径字段中的事务标识符将所述第二数据分组传输到所述目的地装置,所述第二数据分组在所述网桥类型字段中具有指示所述路径字段中的事务标识符的值,所述事务标识符与所述目的地装置的所述地址相关联。
17.根据权利要求16所述的非暂时性机器可读媒体,其中所述数据分组各自包括地址/事务标识符字段,所述地址/事务标识符字段在所述网桥类型字段中的所述值指示所述路径字段中的所述地址时包含的值为所述事务标识符,并且在所述网桥类型字段中的所述值指示所述路径字段中的所述事务标识符时包含的值为所述地址。
18.一种系统,其包括:
经由接口网络彼此耦合的多个电子装置,所述多个电子装置包含多个小芯片;以及
多个硬件收发器,其中至少一个收发器包含在所述多个电子装置中的相应电子装置中或耦合到所述相应电子装置,所述多个硬件收发器各自被配置成执行包括以下各项的操作:
在所选电子装置处,从所述多个电子装置的第一源装置接收第一数据分组,所述第一数据分组各自包含指示到所述多个电子装置的第一目的地装置的第一路径的第一路径信息且包含指示所述第一路径信息的类型的第一网桥类型信息;
响应于所述第一路径信息和所述第一网桥类型信息,通过第一路径配置将接收到的第一数据分组传输到所述第一目的地装置;
从所述多个电子装置的第二源装置接收第二数据分组,所述第二数据分组各自包含指示到所述多个电子装置的第二目的地装置的第二路径的第二路径信息且包含指示所述第二路径信息的类型的第二网桥类型信息;以及
响应于所述第二路径信息和所述第二网桥类型信息,通过第二路径配置将接收到的第二数据分组传输到所述第二目的地装置,
其中所述第一源装置、所述第一目的地装置、所述第二源装置和所述第二目的地装置各自包含所述多个小芯片中的小芯片。
19.根据权利要求18所述的系统,其中所述接收到的第一和第二数据分组各自包括含有路径信息的路径字段,其中所述第一数据分组在所述路径字段中含有第一路径值,并且其中所述第二数据分组在所述路径字段中含有第二路径值。
20.根据权利要求19所述的系统,其中所述接收到的第一和第二数据分组各自包括含有网桥类型信息的网桥类型字段,其中所述第一数据分组在所述网桥类型字段中含有第一类型值,并且其中所述第二数据分组在所述网桥类型字段中含有第二类型值。
21.根据权利要求20所述的系统,其中所述第一类型值指示所述第一路径值是所述第一目的地装置的地址的一部分还是与所述第一目的地装置相关联的事务标识符的一部分,并且其中所述第二类型值指示所述第二路径值是所述第二目的地装置的地址的一部分还是与所述第二目的地装置相关联的事务标识符的一部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,247 US11392527B2 (en) | 2020-08-31 | 2020-08-31 | Ordered delivery of data packets based on type of path information in each packet |
US17/007,247 | 2020-08-31 | ||
PCT/US2021/039519 WO2022046278A1 (en) | 2020-08-31 | 2021-06-29 | Ordered delivery of data packets based on type of path information in each packet |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116324747A true CN116324747A (zh) | 2023-06-23 |
Family
ID=80353695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180068661.6A Pending CN116324747A (zh) | 2020-08-31 | 2021-06-29 | 基于每个分组中的路径信息类型进行数据分组的有序传递 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11392527B2 (zh) |
CN (1) | CN116324747A (zh) |
WO (1) | WO2022046278A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12013808B2 (en) | 2019-03-15 | 2024-06-18 | Intel Corporation | Multi-tile architecture for graphics operations |
US11658922B2 (en) | 2020-08-31 | 2023-05-23 | Micron Technology, Inc. | Optional path ordering in packet-based network |
US11392527B2 (en) | 2020-08-31 | 2022-07-19 | Micron Technology, Inc. | Ordered delivery of data packets based on type of path information in each packet |
CN112395011B (zh) * | 2020-11-24 | 2022-11-29 | 海宁奕斯伟集成电路设计有限公司 | 命令响应信息的返回方法、返回控制装置和电子设备 |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5495482A (en) * | 1989-09-29 | 1996-02-27 | Motorola Inc. | Packet transmission system and method utilizing both a data bus and dedicated control lines |
JP4847583B2 (ja) * | 2006-06-07 | 2011-12-28 | クゥアルコム・インコーポレイテッド | 効率的なオーバ・ザ・エア・アドレス方法および装置 |
US9710384B2 (en) | 2008-01-04 | 2017-07-18 | Micron Technology, Inc. | Microprocessor architecture having alternative memory access paths |
US8122229B2 (en) | 2007-09-12 | 2012-02-21 | Convey Computer | Dispatch mechanism for dispatching instructions from a host processor to a co-processor |
US9015399B2 (en) | 2007-08-20 | 2015-04-21 | Convey Computer | Multiple data channel memory module architecture |
FR2924877B1 (fr) | 2007-12-11 | 2011-04-01 | Thales Sa | Procede et module de correction d'erreurs de transmission dans un flux de donnees, systeme de communication comprenant ledit module |
US8423745B1 (en) | 2009-11-16 | 2013-04-16 | Convey Computer | Systems and methods for mapping a neighborhood of data to general registers of a processing element |
US20120303528A1 (en) | 2010-01-07 | 2012-11-29 | Accells Technologies (2009), Ltd. | System and method for performing a transaction responsive to a mobile device |
US9059932B2 (en) | 2011-11-03 | 2015-06-16 | Qualcomm Incorporated | Packet ordering based on delivery route changes in communication networks |
US8824477B2 (en) | 2011-11-03 | 2014-09-02 | Qualcomm Incorporated | Multiple delivery route packet ordering |
US10430190B2 (en) | 2012-06-07 | 2019-10-01 | Micron Technology, Inc. | Systems and methods for selectively controlling multithreaded execution of executable code segments |
US9712186B1 (en) | 2014-04-18 | 2017-07-18 | Altera Corporation | Serial memory interface circuitry for programmable integrated circuits |
US9900250B2 (en) | 2015-03-26 | 2018-02-20 | Cisco Technology, Inc. | Scalable handling of BGP route information in VXLAN with EVPN control plane |
US10498654B2 (en) | 2015-12-28 | 2019-12-03 | Amazon Technologies, Inc. | Multi-path transport design |
CN107766079B (zh) | 2016-08-19 | 2022-03-11 | 北京百度网讯科技有限公司 | 处理器以及用于在处理器上执行指令的方法 |
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 |
US10628365B2 (en) * | 2017-11-17 | 2020-04-21 | Hewlett Packard Enterprise Development Lp | Packet tunneling for multi-node, multi-socket systems |
US11461527B2 (en) * | 2018-02-02 | 2022-10-04 | Micron Technology, Inc. | Interface for data communication between chiplets or other integrated circuits on an interposer |
US10924399B2 (en) | 2018-03-15 | 2021-02-16 | Cisco Technology, Inc. | Segment routing packet policies and functions including an engineered reverse reply path providing efficiencies in communicating packets in a network |
IL315283A (en) * | 2018-03-30 | 2024-10-01 | Google Llc | Mediation parts of transactions in ritualistic channels attributed to connection |
US11132233B2 (en) | 2018-05-07 | 2021-09-28 | Micron Technology, Inc. | Thread priority management in a 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 |
EP3938880A1 (en) | 2019-03-14 | 2022-01-19 | Marvell Asia Pte, Ltd. | Ethernet enabled solid state drive (ssd) |
US12013808B2 (en) * | 2019-03-15 | 2024-06-18 | Intel Corporation | Multi-tile architecture for graphics operations |
US11836524B2 (en) | 2019-08-29 | 2023-12-05 | Micron Technology, Inc. | Memory interface for a multi-threaded, self-scheduling reconfigurable computing fabric |
US11755501B2 (en) | 2020-03-27 | 2023-09-12 | Intel Corporation | Efficient data sharing for graphics data processing operations |
US11392527B2 (en) | 2020-08-31 | 2022-07-19 | Micron Technology, Inc. | Ordered delivery of data packets based on type of path information in each packet |
US11658922B2 (en) | 2020-08-31 | 2023-05-23 | Micron Technology, Inc. | Optional path ordering in packet-based network |
-
2020
- 2020-08-31 US US17/007,247 patent/US11392527B2/en active Active
-
2021
- 2021-06-29 CN CN202180068661.6A patent/CN116324747A/zh active Pending
- 2021-06-29 WO PCT/US2021/039519 patent/WO2022046278A1/en active Application Filing
-
2022
- 2022-07-15 US US17/866,130 patent/US11789885B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20220350768A1 (en) | 2022-11-03 |
US20220066971A1 (en) | 2022-03-03 |
US11392527B2 (en) | 2022-07-19 |
US11789885B2 (en) | 2023-10-17 |
WO2022046278A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116325665A (zh) | 将高速点对点接口通道映射到分组虚拟通道 | |
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 | |
US11924313B2 (en) | Multiple protocol header processing | |
CN116325690A (zh) | 用于对多个元素进行编码的单个字段 | |
US11693690B2 (en) | Method of completing a programmable atomic transaction by ensuring memory locks are cleared | |
US11695704B2 (en) | Reduced sized encoding of packet length field | |
CN116325707A (zh) | 透明的包拆分和重组 | |
US20230195348A1 (en) | Method of organizing a programmable atomic unit instruction memory | |
CN114385250B (zh) | 小芯片系统内的小芯片i/o信道的初始化定序 | |
US11588745B2 (en) | Early credit return for credit-based flow control | |
CN116325706A (zh) | 网络信用返回机制 | |
CN116261849A (zh) | 组合写入启用掩码和信用返回字段 | |
CN116235479A (zh) | 用于多流量控制单元接口的流量控制 | |
CN116636189A (zh) | 用于网络装置中的缓冲包的包仲裁 | |
CN114385237B (zh) | 用于低时延寄存器错误校正的方法和设备及机器可读介质 | |
CN114385538B (zh) | 电路中的管线合并 | |
CN116569156A (zh) | 同步接口的有效负载奇偶校验保护 | |
CN116635824A (zh) | 桶式处理器中的线程调度控制及存储器分割 | |
WO2022115167A2 (en) | Multiple channel memory system | |
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 |