CN116325665A - 将高速点对点接口通道映射到分组虚拟通道 - Google Patents
将高速点对点接口通道映射到分组虚拟通道 Download PDFInfo
- Publication number
- CN116325665A CN116325665A CN202180068456.XA CN202180068456A CN116325665A CN 116325665 A CN116325665 A CN 116325665A CN 202180068456 A CN202180068456 A CN 202180068456A CN 116325665 A CN116325665 A CN 116325665A
- Authority
- CN
- China
- Prior art keywords
- interface
- command
- physical channel
- data
- channel
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- 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/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- 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
Abstract
本公开的实施方案涉及用于将点对点通道映射到分组虚拟通道的系统及方法。具有点对点接口的芯片将点对点数据转换成分组格式。所述点对点通道经映射到分组传输协议的虚拟通道。来自多个点对点通道的信息可组合于单个分组中。本公开的实施方案的益处之一是,点对点装置可连接到分组化网络,而不会失去单独通道用于不同类型的通信的益处。这允许现存点对点装置使用分组化网络进行通信,而无内部修改或性能降级。
Description
优先权申请案
本申请案主张2020年8月31日申请的序列号为17/007,592的美国申请案的优先权权益,所述美国申请案以其全文引用的方式并入本文中。
关于政府支持的声明
本发明根据第HR00111830003号协议在美国政府的支持下完成,由美国国防部高级研究计划局(DARPA)授予。美国政府对本发明享有一定权利。
技术领域
本公开的实施例大体上涉及网络协议,且更明确来说,涉及将高速点对点接口通道映射到分组虚拟通道。
背景技术
一种常见高速点对点接口AXI具有用于在装置之间进行通信的5个通道。5个通道是读取地址通道、读取数据通道、写入地址通道、写入数据通道及写入响应通道。读取及写入地址通道发送地址及控制信息。读取及写入数据通道发送数据。
小芯片是一种用于集成各种处理功能性的新兴技术。一般来说,小芯片系统是由集成于中介层上且被封装在一起的离散芯片(例如,不同衬底或裸片上的集成电路(IC))组成。此布置与在一个衬底(例如单个裸片)上含有相异装置块(例如知识产权块)的单个芯片(例如IC)(例如芯片上系统(SoC))或集成于板上的离散封装装置相异。一般来说,小芯片提供比离散封装装置更好的性能(例如低功耗、减少的时延等),且小芯片提供比单个裸片芯片更大的生产效益。这些生产效益可包含更高良率或减少的开发成本及时间。
小芯片系统大体上由一或多个应用小芯片及支持小芯片组成。在此,应用小芯片与支持小芯片之间的区别仅涉及小芯片系统的可能设计场景。因此,例如,合成视觉小芯片系统可包含用于产生合成视觉输出的应用小芯片以及支持小芯片,例如存储器控制器小芯片、传感器接口小芯片或通信小芯片。在典型用例中,合成视觉设计者可设计应用小芯片且从其他方获得支持小芯片。因此,通过避免体现于支持小芯片中的功能性的设计及生产,减小了设计支出(例如,在时间或复杂性方面)。小芯片还支持原本可能很难的知识产权块的紧密集成,例如使用不同特征大小的知识产权块。因此,例如,在先前制造产生期间设计的具有更大特征大小的装置或其中特征大小针对功率、速度或热产生进行优化—如针对传感器可能发生的那样—的那些装置可与具有不同特征大小的装置集成,这比尝试在单个裸片上这样做更容易。另外,通过减小裸片的整体大小,小芯片的良率趋向于比更复杂的单裸片装置的良率更高。
附图说明
从下文给出的详细描述及从本公开的各个实施例的附图将更加完全地理解本公开。然而,图式不应理解为将本公开限于特定实施例,而是仅用于解释及理解目的。
图1A及1B说明根据实施例的小芯片系统的实例。
图2说明根据实施例的存储器控制器小芯片的实例的组件。
图3说明根据实施例的使用小芯片协议接口(CPI)网络在小芯片之间路由的实例。
图4是根据本公开的一些实施例的包括多个流量控制单元(微片(flit))的数据分组的框图。
图5是根据本公开的一些实施例的将来自AXI主装置的信号转换成CPI分组的电路的框图。
图6是根据本公开的一些实施例的将CPI分组转换成到AXI主装置的信号的电路的框图。
图7是根据本公开的一些实施例的将CPI分组转换成到AXI辅装置的信号的电路的框图。
图8是根据本公开的一些实施例的将来自AXI辅装置的信号转换成CPI分组的电路的框图。
图9是展示根据本公开的一些实施例的由电路在将AXI信号转换成分组时执行的方法的操作的流程图。
图10是本公开的实施例可在其中操作的实例计算机系统的框图。
具体实施方式
本公开的实施方案是针对用于从与单独读取及写入通道的并行、同步、多通道连接映射到分组虚拟通道的系统及方法。出于本描述的目的,技术将在AXI及CPI的上下文中描述,但这是作为实例而非限制。具有AXI接口的芯片将AXI数据转换成分组格式。AXI通道中的信息被多路复用到更少信号上且在多个循环内传送。AXI通道经映射到分组传输协议的虚拟通道。
将AXI通道转换成无虚拟通道的分组格式可能会阻碍信息在AXI通道中的独立传送;如果分组传送因为AXI通道中的一者的信息在目的地处受到流量控制而停止,那么其它AXI通道的信息也被阻塞且无法流动。因此,通过将AXI通道映射到进行独立流量控制的虚拟通道,任何阻塞将以逐通道为基础,从而允许处理一些AXI通道,而不会因为另一AXI通道停止而阻塞。
来自多个AXI通道的数据可组合于单个分组中。举例来说,AXI写入地址事务与其对应写入数据事务组合成虚拟通道0上的单个分组。虚拟通道可在分组的标头的命令字段中指定。继续此实例实施例的映射,AXI写入响应事务使用虚拟通道1作为分组被传送;AXI读取地址事务使用虚拟通道2作为分组被传送;且AXI读取数据事务使用虚拟通道3作为分组被传送。
本公开的实施方案的益处之一是,AXI装置可连接到分组化网络,而不会失去单独通道用于不同类型的通信的优势。这允许现存AXI装置使用分组化网络通信而无内部修改或性能降级。对受益于本公开的相关领域的技术人员来说,其它益处将是显而易见的。
用于本文中的实例的特定AXI协议是AXI4,但技术可同样也适用于AXI3、AXI4-Lite、AXI一致性扩展(ACE)及AXI-Lite。
图1A及1B说明根据实施例的小芯片系统110的实例。图1A是安装于外围板105上的小芯片系统110的表示,外围板105可通过例如外围组件互连高速(PCIe)连接到更大计算机系统。小芯片系统110包含封装衬底115、中介层120及四个小芯片:应用小芯片125、主机接口小芯片135、存储器控制器小芯片140及存储器装置小芯片150。如将从以下论述明显看出,其它系统可包含许多额外小芯片以提供额外功能性。小芯片系统110的封装被说明为具有盖子或覆盖物165,但可使用用于小芯片系统的其它封装技术及结构。图1B是为了清楚起见标记小芯片系统110中的组件的框图。
应用小芯片125被说明为包含用以支持用于小芯片间通信的小芯片网络155的片上网络(NOC)130。在实例实施例中,NOC 130可被包含于应用小芯片125上。在实例中,NOC130可响应于所选择的支持小芯片(例如小芯片135、140及150)而定义,从而使得设计者能够选择用于NOC 130的适当数目的小芯片网络连接或交换机。在实例中,NOC 130可经定位于单独小芯片上,或甚至经定位于中介层120内。在本文中所论述的实例中,NOC 130实施CPI网络。
CPI是支持虚拟通道在小芯片之间实现灵活且高速的交互的基于分组的网络。CPI实现从小芯片内网络到小芯片网络155的桥接。举例来说,高级可扩展接口(AXI)是一种用于设计芯片内通信的广泛使用的规范。然而,AXI规范涵盖各种各样的物理设计选项,例如物理通道的数目、信号时序、功率等。在单个芯片内,这些选项通常经选择以满足设计目标,例如功耗、速度等。然而,为了实现小芯片系统的灵活性,使用适配器(例如CPI)在可实施于各个小芯片中的各个AXI设计选项之间介接。通过启用物理通道到虚拟通道映射及利用分组化协议封装基于时间的信令,CPI跨小芯片网络155桥接小芯片内网络。
CPI可使用各种不同物理层来传输分组。物理层可包含简单的导电连接或驱动器以增加电压,或以其它方式促进在较长距离内传输信号。一个此类物理层的实例可包含高级接口总线(AIB),在各个实例中,其可实施于中介层120中。尽管本文中描述AIB物理层的细节,但可使用具有类似或不同特性的其它物理层。AIB使用源同步数据传送与转发时钟来传输及接收数据。分组相对于所传输的时钟以单倍数据速率(SDR)或双倍数据速率(DDR)跨AIB传送。时钟速率的其它倍数也是可能的。
各个通道宽度由AIB及其它物理层支持。当以SDR模式操作时,AIB通道宽度是20位的倍数(20、40、60、…),且对于DDR模式是40位的倍数:(40、80、120、…)。AIB通道宽度包含传输(TX)及接收(RX)信号两者。通道可经配置以具有对称数目个TX及RX输入/输出(I/O),或具有非对称数目个传输器及接收器(例如全为传输器或全为接收器)。提供主时钟的小芯片是主小芯片;另一小芯片是辅小芯片。在此类情况中,主小芯片可具有与其它小芯片的独立性,且其可具有对一或多个辅小芯片的监督权。此关系可类似于有时使用贬义且过时的术语主控及从属描述的装置之间的关系。AIB I/O单元(cell)支持三种时控模式:异步(即非时控)、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通道。在实例中,针对SDR模式,以80个I/O单元(即40个TX及40个RX)的增量来配置AIB通道,而针对DDR模式是40个I/O单元。CPI流式传输协议可使用SDR或DDR操作模式中的AIB通道。在此,在实例中,针对SDR及DDR模式两者,AIB通道是以40个I/O单元为增量。在实例中,每一AIB通道被指派唯一接口标识符。标识符在CPI复位及初始化期间用于确定跨邻近小芯片的成对AIB通道。在实例中,接口标识符是包括七位小芯片标识符、七位列标识符及六位链路标识符的20位值。AIB物理层使用AIB带外移位寄存器来传输接口标识符。20位接口标识符使用移位寄存器的位32到51跨AIB接口在两个方向上传送。
AIB将一组堆叠AIB通道定义为AIB通道列。AIB通道列具有某数目个AIB通道加辅助(AUX)通道。AUX通道含有用于AIB初始化的信号。列内的所有AIB通道(除了AUX通道之外)都具有相同配置(例如全为TX、全为RX或一半TX及一半RX,且还具有相同数目个数据I/O信号)。在实例中,以邻近于AUX通道的AIB通道开始,以连续增加的顺序对AIB通道进行编号。邻近于AUX的AIB通道被定义为AIB通道0。
一般来说,个别小芯片上的CPI接口可包含序列化-反序列化(SERDES)硬件。SERDES互连对于其中期望具有低信号计数的高速信令的情形效果良好。然而,SERDES可导致用于多路复用及多路分用、错误检测或校正(例如,使用块级循环冗余校验(CRC))、链路级重试或前向错误校正的额外功耗及更长时延。然而,当低时延或能量消耗是超短距离(ultra-short reach)小芯片对小芯片互连的主要关注点时,可利用具有允许以最小时延进行数据传送的时钟速率的并行接口。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上的不同封装中。针对许多应用,可提供多个存储器装置小芯片。在实例中,这些存储器装置小芯片可各自实施一种或多种存储技术。在实例中,存储器小芯片可包含不同技术的多个堆叠式存储器裸片(例如,与一或多个DRAM装置堆叠或以其它方式与其通信的一或多个SRAM装置)。存储器控制器小芯片140还可用于协调小芯片系统110中的多个存储器小芯片之间的操作(例如,在一或多个高速缓存存储级中利用一或多个存储器小芯片及将一或多个额外存储器小芯片用作主存储器)。小芯片系统110还可包含多个存储器控制器小芯片140,其可用于为单独处理器、传感器、网络等提供存储器控制功能性。例如小芯片系统110的小芯片架构提供允许在无需重新设计系统结构的剩余部分的情况下通过升级的小芯片配置来适应不同存储器存储技术及适应不同存储器接口的优点。
图2说明根据实施例的存储器控制器小芯片205的实例的组件。存储器控制器小芯片205包含高速缓存210、高速缓存控制器215、裸片外存储器控制器220(例如,用于与裸片外存储器275通信)、网络通信接口225(例如,用于与小芯片网络285介接及与其它小芯片通信)及一组原子及合并操作单元250。此组的成员可包含例如写入合并单元255、危险清除单元260、内置原子操作单元265或PAU 270。各个组件是在逻辑上进行说明的,而非说明为它们一定会被实施。举例来说,内置原子操作单元265沿着到裸片外存储器的路径很可能包括不同装置。举例来说,内置原子操作单元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可各自与另一组合逻辑电路系统(例如加法器、移位器、比较器、与(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,其还将所得数据写入到高速缓存210。在将所得数据写入到高速缓存210之后,被设置的任何对应危险位将由存储器危险清除单元260清除。
PAU 270实现与内置原子操作的性能相当的可编程原子操作(还称为“定制原子操作”)的高性能(高处理量及低时延)。不同于执行多个存储器存取,响应于指定可编程原子操作及存储器地址的原子操作请求,存储器控制器小芯片205中的电路系统将原子操作请求传送到PAU 270且设置存储在存储器危险寄存器中的对应于原子操作中使用的存储器行的存储器地址的危险位,以确保不会对那个存储器行执行其它操作(读取、写入或原子),接着,在原子操作完成之后便清除所述危险位。经提供用于PAU 270执行可编程原子操作的额外直接数据路径允许额外写入操作而不会受到由通信网络的带宽施加的任何限制且不会增加通信网络的任何拥塞。
PAU 270包含多线程处理器,例如(举例来说)基于RISC-V ISA的多线程处理器,其具有一或多个处理器核心且进一步具有用于执行可编程原子操作的扩展指令集。当具备用于执行可编程原子操作的扩展指令集时,PAU 270可经体现为一或多个混合线程处理器。在一些实例实施例中,PAU 270提供桶式(barrel-style)循环瞬时线程切换以维持高的每时钟指令速率。
可编程原子操作可由PAU 270执行,涉及对所请求数据的可编程原子操作的请求。用户可准备编程代码来提供此类可编程原子操作。举例来说,可编程原子操作可为相对简单的多循环操作,例如浮点加法,或相对复杂的多指令操作,例如布隆(Bloom)过滤器插入。可编程原子操作可与预定原子操作相同或不同,只要它们是由用户定义而非由系统供应商定义即可。对于这些操作,高速缓存控制器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。
CPI分组可使用AIB在小芯片310之间传送。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适配器提供到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通道。在一些实例实施例中,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通道。在一些实例实施例中,接口标识符是包括7位小芯片标识符、7位列标识符及6位链路标识符的20位值。AIB物理层使用AIB带外移位寄存器来传输接口标识符。20位接口标识符使用移位寄存器的位32到51跨AIB接口在两个方向上传送。
在一些实例实施例中,AIB通道从邻近于AUX通道的AIB通道开始以连续增加的顺序编号。邻近于AUX的AIB通道被定义为AIB通道0。
通过实例,图3展示由包括8个节点330的网络连接的8个小芯片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是2位字段,其指示分组中的稍后微片的CR/RSV字段是否含有CR数据、RSV数据或是否应被忽略以及路径字段410是否应用于控制分组排序。在一些实例实施例中,控制路径字段405中的值0或1指示CR/RSV字段455、480、490含有信用回传数据;控制路径字段405中的值2或3指示CR/RSV字段455、480、490含有RSV数据;值0指示路径字段410被忽略;值1或3指示路径字段410用于确定数据分组400的路径;且值2指示将使用单个路径排序。在一些实例实施例中,使用1位字段。替代地,控制路径字段405的高位可被认为是1位字段,其控制CR/RSV字段450、455是否含有信用回传数据或RSV数据。
路径字段410是8位字段。当控制路径字段405指示路径字段410用于确定数据分组400的路径时,保证针对路径字段410具有相同值的所有数据分组都采用通过网络的相同路径。因此,数据分组的顺序将在发送方与接收方之间不变。如果控制路径字段405指示将使用单个路径排序,那么确定每一分组的路径,就好像路径字段410被设置为0一样。因此,所有分组都采用相同路径且顺序将不变,无论每一数据分组的路径字段410的实际值为何。如果控制路径字段405指示路径字段410将被忽略,那么数据分组在不考虑路径字段410的值的情况下被路由,且数据分组可由接收方以与其被发送方发送的顺序不同的顺序接收。然而,这可避免网络中的拥塞且允许增大装置中的处理量。
DID字段415存储12位DID。DID唯一地标识网络中的目的地(例如目的地小芯片)。保证都设置了SC字段420的数据分组序列被按序递送。长度字段425是5位字段,其指示包括数据分组400的微片的数目。长度字段425的解译可为非线性的。举例来说,值0到22可被解译为数据分组400中的0到22个微片,且值23到27可被解译为数据分组400中的33到37个微片(即,比所指示值多10)。长度字段425的其它值可为供应商定义的,而非协议定义的。
数据分组400的命令被存储于命令字段430中,其是7位字段。命令可为写入命令、读取命令、预定义原子操作命令、定制原子操作命令、读取响应、确认响应或供应商特定的命令。另外,命令可指示数据分组400的虚拟通道。举例来说,不同命令可用于不同虚拟通道,或7位命令字段430的1、2、3或4个位可用于指示虚拟通道,且剩余位可用于指示命令。根据一些实例实施例,下表展示基于协议的虚拟通道,且命令在下方。
虚拟通道 | CPI协议 | AXI协议 |
0 | 读取/写入请求 | 写入请求 |
1 | 读取/写入响应 | 写入响应 |
2 | 未使用 | 读取请求 |
3 | 未使用 | 读取响应 |
命令的地址可在路径字段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的命令的其它方法。因此,代替将第二协议的分组完全封装于数据分组400的数据字段内用于经由网络使用第一协议传输,添加标识分组400的协议的一个或两个微片的低得多的开销允许网络支持两种协议(在此实例中,CPI及AXI)。
存储器存取命令可识别要写入或存取的字节的数目、要存取的存储器空间(例如裸片外存储器275或用于定制原子操作的指令存储器)或其任何合适组合。在一些实例实施例中,命令可指示后一微片的额外位标识命令。举例来说,多字节命令可通过使用7位命令字段430中的供应商特定的命令及使用含有更大命令的7位扩展命令(EXCMD)字段475的一部分或全部来发送。因此,针对命令字段430的某些值,分组400仅包含一个标头微片(例如,图4中展示的第一标头微片,其含有字段405到430)。针对命令字段430的其它值,分组400包含预定额外数目个标头微片(例如,如图4中展示的两个额外标头微片,其含有字段435到475)或预定总数目个标头微片(例如,如图4中展示的总共3个标头微片,其含有字段405到475)。
如果CR被启用,那么CR/RSV字段455、480、490的两个位识别信用回传是否用于虚拟通道0、1、2或3,且CR/RSV字段455、480、490的另两个位指示要回传的信用的数目是0、1、2还是3。
图5是根据本公开的一些实施例的将来自AXI主装置的信号转换成CPI分组的电路500的框图。电路500包含:状态机505;先进先出(FIFO)缓冲器(还称为FIFO)510A、510B、510C、510D、510E及510F;寄存器535;多路复用器(MUX)525及555;错误校正码(ECC)产生器545;仲裁器560;存储器565;及信用更新器570。电路500的组件经由硬件迹线、总线或其它物理连接进行连接。
电路500的左侧连接到AXI主装置。电路500的右侧连接到CPI网络。电路500从AXI主装置接收读取地址、写入地址及写入数据命令并将对应CPI分组提供到CPI网络。
状态机505向AXI主装置提供ARREADY、AWREADY及WREADY信号。每一信号(如果升高)指示电路500准备好接收对应输入。ARREADY信号(如果升高)指示电路500准备好接收读取地址。AWREADY信号(如果升高)指示电路500准备好接收写入地址。WREADY信号(如果升高)指示电路500准备好接收写入数据。
AXI主装置向状态机505提供ARVALID、AWVALID及WVALID信号,其中的每一者可经升高以指示对应输入是有效的或经降低以指示对应输入不是有效的。ARVALID信号在升高时指示AXI主装置正向FIFO 510A提供有效读取地址。AWVALID信号在升高时指示AXI主装置正向FIFO 510B提供有效写入地址。WVALID信号在升高时指示AXI主装置正向FIFO 510C到510F中的一或多者提供有效写入数据。
因此,当ARREADY及ARVALID信号两者都升高时,电路500处理由AXI主装置输入到读取地址FIFO 510A的读取地址。类似地,当AWREADY及WVALID信号两者都升高时,电路500处理由AXI主装置输入到写入地址FIFO 510B的写入地址。读取或写入地址被提供到仲裁器560,仲裁器560产生对应CPI分组。
针对读取命令,仅需要地址(无需数据)。仲裁器560用信用更新器570验证足够信用在对应于读取命令的虚拟通道(例如虚拟通道2)上可用并更新虚拟通道的可用信用。CPI分组的每一字段由AXI主装置提供(例如地址)、由电路500静态定义(例如源标识符)、由电路500基于AXI信号动态定义(例如,通过基于由AXI主装置提供的地址查找存储器565中的目的地ID或通过基于由AXI主装置提供的命令及数据确定分组的长度)或由电路500基于电路500的状态动态定义(例如,选择可用事务ID)。CPI分组被提供到MUX 555且保持于寄存器535中以供ECC产生器545存取。所产生CPI分组被提供到CPI网络。
不同于读取命令,写入命令使用地址及数据两者。当WREADY及WVALID信号两者都升高时,数据由电路500从FIFO 510C到510F中的一或多者中的AXI主装置接收。接收到的数据被提供到MUX 525,MUX 525选择有效数据并将其提供到MUX 555,MUX 555重新组织数据并将所述数据封装到数据微片(例如,包括图4的字段480及485的微片)中。因此,当写入地址从AXI主装置接收时,写入命令的CPI分组的标头由仲裁器560形成,且当写入数据被接收时,CPI分组的主体由MUX 555形成。在写入地址已经接收到AWFIFO中且写入数据已经接收到WFIFO中之后,完成的CPI分组被提供到CPI网络。
图6是根据本公开的一些实施例的将CPI分组转换成到AXI主装置的信号的电路600的框图。电路600包含:状态机605;先进先出(FIFO)缓冲器(还称为FIFO)630A、630B、630C、630D、675A及675B;寄存器615A、615B、615C、615D、615E、615F及640;多路复用器(MUX)620A、620B、620C、620D、620E、620F、620G、680A及680B;ECC检验器650;及映射器685A及685B。电路600的组件经由硬件迹线、总线或其它物理连接进行连接。在一些实例实施例中,电路500与电路600集成,且电路500及600的各个组件也经由硬件迹线、总线或其它物理连接进行连接。
电路600的左侧连接到AXI主装置。电路600的右侧连接到CPI网络。电路600从CPI网络接收CPI分组并向AXI主装置提供对应AXI信号。
电路600使用FIFO 630A到630D从CPI网络接收数据。输入数据还被提供到寄存器640以供ECC检验器650处理。接收到的数据由MUX 620A到620G中的一或多者处理以设置寄存器615C到615F中的数据,如果接收到的CPI分组含有读取数据;发送适当RVALID、BVALID及BLAST信号;及使用映射器685A及685B将CPI分组的事务ID映射到AXI写入响应标识符(BID)或读取数据标识符(RID),当主装置发出对应于CPI响应的CPI请求时,此映射已在映射器中建立并记录,及使用寄存器615A及615B在写入响应通道或读取数据通道上发送适当信号。
状态机605向AXI主装置提供BVALID、RVALID及RLAST信号并从AXI主装置接收BREADY及RREADY信号。BVALID信号(如果升高)指示电路600正在寄存器615A中提供写入响应信号。RVALID信号(如果升高)指示电路600正在寄存器615B到615F中的一或多者中提供读取数据。RLAST信号(如果升高)指示当前读取数据是突发的最后读取传送。BREADY信号(如果升高)指示AXI主装置正接受来自寄存器615A的写入响应信号。RREADY信号(如果升高)指示AXI主装置正接受来自寄存器615B到615F的读取数据。因此,通过使用电路500及600,AXI主装置经启用以经由CPI网络与其它装置通信,而无需修改AXI主装置。
图7是根据本公开的一些实施例的将CPI分组转换成到AXI辅装置的信号的电路700的框图。电路700包含:状态机705;FIFO缓冲器(还称为FIFO)710A、710B、710C、710D、775A及775B;寄存器715A、715B、715C、715D、715E、715F及735;多路复用器(MUX)720A、720B、720C、720D、720E、720F、720G、780A及780B;ECC检验器750;及映射器785A及785B。电路700的组件经由硬件迹线、总线或其它物理连接进行连接。
电路700的右侧连接到AXI辅装置。电路700的左侧连接到CPI网络。电路700从CPI网络接收读取及写入请求分组并向AXI辅装置提供对应AXI信号。
CPI分组经由FIFO 710A到710D接收。CPI分组的一部分被提供到寄存器735以供ECC检验器750进行错误检验。接收到的CPI分组由MUX 720A到720G处理以确定包含于CPI分组中的命令并提取命令的地址。举例来说,映射器785A及785B可基于传入CPI分组的TID及命令字段确定要使用的标识符(例如读取地址标识符(ARID)或写入地址标识符(AWID))。ID及地址被提供到对应FIFO(例如FIFO缓冲器775A或775B)及对应MUX 780A或780B。MUX在FIFO缓冲器的输出与映射器的当前输出之间做出选择并向寄存器715A提供读取命令的正确地址或向寄存器715B提供写入命令的正确地址。写入数据被提供于寄存器715C到715F中的一或多者中。
状态机705从AXI辅装置接收ARREADY、AWREADY及WREADY信号。每一信号(如果升高)指示AXI主装置准备好接收对应输入。ARREADY信号(如果升高)指示AXI主装置准备好接收读取地址。AWREADY信号(如果升高)指示AXI主装置准备好接收写入地址。WREADY信号(如果升高)指示AXI主装置准备好接收写入数据。
状态机705向AXI辅装置提供ARVALID、AWVALID及WVALID信号,其中的可各自经升高以指示对应输入是有效的或经降低以指示对应输入不是有效的。ARVALID信号在升高时指示电路700正向寄存器715A提供有效读取地址。AWVALID信号在升高时指电路700正向FIFO 715B提供有效写入地址。WVALID信号在升高时指示电路700正向寄存器715C到715F中的一或多者提供有效写入数据。
因此,当ARREADY及ARVALID信号两者都升高时,AXI辅装置处理由电路700提供于读取地址寄存器715A中的读取地址。类似地,当AWREADY及WVALID信号两者都升高时,AXI辅装置处理由电路700提供于写入地址FIFO 715B中的写入地址。
图8是根据本公开的一些实施例的将来自AXI辅装置的信号转换成CPI分组的电路800的框图。电路800包含:状态机805;FIFO缓冲器(还称为FIFO)830A、830B、830C、830D、830E及830F;寄存器840;MUX 825及855;错误校正码(ECC)产生器845;仲裁器860;存储器865(例如RAM);及信用更新器870。电路800的组件经由硬件迹线、总线或其它物理连接进行连接。在一些实例实施例中,电路700与电路800集成,且电路700及800的各个组件也经由硬件迹线、总线或其它物理连接进行连接。
电路800的右侧连接到AXI辅装置。电路800的左侧连接到CPI网络。电路800从AXI辅装置接收AXI响应信号并将对应CPI分组提供到CPI网络。
针对写入响应,无需回传数据,仅需回传写入被成功处置的确认。仲裁器860用信用更新器870验证足够信用可在对应于写入响应的虚拟通道(例如虚拟通道1)上可用并更新虚拟通道的可用信用。CPI分组的每一字段由电路800静态定义(例如源标识符)或由电路800基于AXI信号动态定义(例如,使用由AXI主装置提供的BID查找存储于存储器865中的已经先在对应CPI写入请求分组中接收到的信息(例如CPI事务ID、源ID及命令)来确定响应分组的事务ID、目的地ID、命令及长度)。CPI分组被提供到MUX 855且保持于寄存器840中以供ECC产生器845存取。所产生CPI分组被提供到CPI网络。
不同于写入响应,读取响应使用数据。当RREADY及RVALID信号两者都升高时,数据由电路800从FIFO 830C到830F中的一或多者中的AXI辅装置接收。接收到的数据被提供到MUX 825,MUX 825选择有效数据并将其提供到MUX 855,MUX 855重新组织数据并将所述数据封装到数据微片(例如,包括图4的字段480及485的微片)中。因此,当读取数据从AXI辅装置接收时,读取数据响应命令的CPI分组的标头由仲裁器860及存储器865两者形成,且CPI分组的主体由MUX 855形成。CPI分组的每一字段由AXI主装置提供(例如数据)、由电路800静态定义(例如源标识符)或由电路800基于AXI信号动态定义(例如,使用由AXI主装置提供的RID查找存储于存储器865中的已经先在对应CPI读取请求分组中接收到的信息(例如CPI事务ID、源ID及命令)来确定响应分组的事务ID、目的地ID、命令及长度。完成的CPI分组被提供到CPI网络。
状态机805从AXI辅装置接收BVALID、RVALID及RLAST信号并向AXI主装置提供BREADY及RREADY信号。BVALID信号(如果升高)指示AXI辅装置正向缓冲器830A提供写入响应信号。RVALID信号(如果升高)指示AXI辅装置正向缓冲器830B到830F中的一或多者提供读取数据。RLAST信号(如果升高)指示当前读取数据是突发的最后读取传送。BREADY信号(如果升高)指示电路800正接受来自缓冲器830A的写入响应信号。RREADY信号(如果升高)指示电路800正接受来自缓冲器830B到830F的读取数据。因此,通过使用电路700及800,AXI辅装置经启用以经由CPI网络与其它装置通信,而无需修改AXI辅装置。
图9是展示根据本公开的一些实施例的由电路在将AXI信号转换成分组时执行的方法900的操作的流程图。方法900包含操作910、920、930及940。通过实例而非限制,方法900被描述为由图1到3及5到8的装置使用图4的数据分组执行。
在操作910中,电路(例如图5的电路500或图8的电路800)经由AXI连接接收AXI命令。举例来说,图5中展示的AW*信号或AR*信号可由电路500接收且分别与写入请求或读取请求命令相关联。作为另一实例,图8中展示的B*或R*信号可由电路800接收且分别与写入响应或读取响应命令相关联。
基于AXI命令,在操作920中,电路选择虚拟通道。举例来说,可为写入请求选择虚拟通道0,为写入响应选择虚拟通道1,为读取请求选择虚拟通道2或为读取响应选择虚拟通道3。
在操作930中,电路产生指示虚拟通道的数据分组。举例来说,可产生数据分组400,其中虚拟通道被指示为命令字段430的部分。针对与地址相关联的命令(例如,从一地址读取的读取命令或写入到所述地址的写入命令,其中的任一者可从AXI主装置接收),用所述地址填充地址字段435、445及460。
在操作940中,电路经由总线传输数据分组。举例来说,电路500及电路800可为存储器控制器小芯片205的组件,从而允许存储器控制器小芯片205对接AXI装置及小芯片网络285两者。替代地,电路500及电路800可为与存储器控制器小芯片(例如小芯片310A)通信的不同小芯片(例如小芯片310D)的组件。因此,AXI装置通过使用电路500及电路800启用以使用小芯片网络与小芯片装置通信。
在较小修改下,方法900可与除了AXI及CPI之外的协议一起使用。举例来说,在经修改操作910中,电路经由第一连接接收第一协议的命令。命令可在专用于命令的连接上接收(例如,针对读取及写入使用单独专用地址线)。替代地,可接收指示命令的信号(例如,指示多个可能命令中的一者的多位连接;当没有提供地址时两者都是低的两个单线连接,其中一者在读取地址被提供时为高,且另一者在写入地址被提供时为高;或其任何合适组合),且响应于检测到命令,从共同连接读取地址。
继续此经修改实例,在经修改操作920中,基于第一协议的命令选择虚拟通道。在经修改操作930中,为第二协议产生命令的分组。在经修改操作940中,电路使用第二协议传输数据分组。因此,通过使用经修改方法900,经由第一协议接收的命令使用利用第二协议传输(例如,经由网络)的虚拟通道转换成分组。在一些实例实施例中,经修改方法900由不同协议的两个基于分组的网络之间的网桥使用。在其它实例实施例中,经修改方法900用于使用协议(例如CPI)在直接有线协议(例如AXI)与基于分组的网络之间介接,如针对未经修改方法900所描述。
图10说明本文中论述的技术(例如方法)中的任一者或多者可利用其、在其中或通过其实施的实例机器1000的框图。如本文中描述,实例可包含机器1000中的逻辑或数个组件或机构或可由所述逻辑或数个组件或机构操作。电路系统(例如处理电路系统)是实施于包含硬件(例如简单电路、门、逻辑等)的机器1000的有形实体中的电路集合。电路系统成员关系可随着时间推移而为灵活的。电路系统包含在操作时可单独或组合地执行指定操作的成员。在实例中,电路系统的硬件可经不变地设计以实行特定操作(例如硬接线)。在实例中,电路系统的硬件可包含可变地连接的物理组件(例如执行单元、晶体管、简单电路等),包含物理上经修改(例如,不变质量粒子的磁性、电可移动置放等)以对所述特定操作的指令进行编码的机器可读媒体。在连接物理组件时,硬件构成的基础电性质(例如)从绝缘体改变为导体或反之亦然。指令使得嵌入式硬件(例如,执行单元或加载机构)能够经由可变连接创建硬件中的电路系统的成员以在操作时实行特定操作的部分。因此,在实例中,机器可读媒体元件是电路系统的部分或当装置正在操作时通信地耦合到电路系统的其它组件。在实例中,物理组件中的任一者可用于多于一个电路系统的多于一个成员中。例如,在操作中,执行单元可在一时间点用于第一电路系统的第一电路中,且在不同时间由第一电路系统中的第二电路或由第二电路系统中的第三电路再使用。关于机器1000的这些组件的额外实例如下。
在替代性实施例中,机器1000可作为独立装置操作或可连接(例如联网)到其它机器。在联网部署中,机器1000可作为服务器-客户端网络环境中作为服务器机器、客户端机器或两者而操作。在实例中,机器1000可充当对等(P2P)(或其它分布式)网络环境中的对等机器。机器1000可为个人计算机(PC)、平板PC、机顶盒(STB)、个人数字助理(PDA)、移动电话、网络设备、网络路由器、交换机或桥接器或能够(循序或以其它方式)执行指定由所述机器所采取的动作的指令的任何机器。此外,虽然仅说明单个机器,但术语“机器”还应被视为包含个别或联合执行一组(或多组)指令以执行本文中论述的方法中的任一或多者的机器的任何集合,例如云计算、软件即服务(SaaS)、其它计算机集群配置。
机器(例如计算机系统)1000可包含硬件处理器1002(例如中央处理单元(CPU)、图形处理单元(GPU)、硬件处理器核心或其任何组合)、主存储器1004、静态存储器(例如用于固件、微代码、基本输入输出(BIOS)、统一可扩展固件接口(UEFI)的存储器或存储装置等)1006及大容量存储装置1008(例如硬盘驱动器、磁带驱动器、快闪存储装置或其它块装置),其中一些或所有可经由互连(例如总线)1030彼此通信。机器1000可进一步包含显示器单元1010、字母数字输入装置1012(例如键盘)及用户接口(UI)导航装置1014(例如鼠标)。在实例中,显示器单元1010、输入装置1012及UI导航装置1014可为触摸屏显示器。机器1000可另外包含存储装置(例如驱动单元)1008、信号产生装置1018(例如扬声器)、网络接口装置1020及一或多个传感器1016(例如全球定位系统(GPS)传感器、指南针、加速度计或其它传感器)。机器1000可包含输出控制器1028,例如用以通信或控制一或多个外围装置(例如打印机、读卡器等)的串行(例如通用串行总线(USB))、并行、或其它有线或无线(例如红外(IR)、近场通信(NFC)等)连接。
处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008的寄存器可为或包含机器可读媒体1022,在其上存储体现本文中描述的技术或功能中的任一或多者或由本文中描述的技术或功能中的任一或多者利用的一或多组数据结构或指令1024(例如软件)。指令1024还可在其由机器1000执行期间完全或至少部分驻留于处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008的寄存器中的任一者内。在实例中,硬件处理器1002、主存储器1004、静态存储器1006或大容量存储装置1008的一个或任何组合可构成机器可读媒体1022。虽然将机器可读媒体1022说明为单个媒体,但术语“机器可读媒体”可包含经配置以存储一或多个指令1024的单个媒体或多个媒体(例如集中式或分布式数据库或相关联高速缓存及服务器)。
术语“机器可读媒体”可包含能够存储、编码或携载由机器1000执行且致使机器1000执行本公开的技术中的任一或多者的指令,或能够存储、编码或携载由此类指令使用或与此类指令相关联的数据结构的任何媒体。非限制性机器可读媒体实例可包含固态存储器、光学媒体、磁性媒体及信号(例如射频信号、其它基于光子的信号、声音信号等)。在实例中,非暂时性机器可读媒体包括具有含不变(例如静止)质量的多个粒子的机器可读媒体,且因此是物质的组合物。因此,非暂时性机器可读媒体是不包含暂时性传播信号的机器可读媒体。非暂时性机器可读媒体的特定实例可包含:非易失性存储器,例如半导体存储器装置(例如电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM))及快闪存储器装置;磁盘,例如内部硬盘及可装卸磁盘;磁光盘;及CD-ROM及DVD-ROM磁盘。
在实例中,存储或以其它方式提供于机器可读媒体1022上的信息可表示指令1024,例如指令1024本身或可从其导出指令1024的格式。可从其导出指令1024的此格式可包含源代码、经编码指令(例如呈压缩或加密形式)、经封装指令(例如,分为多个包)或类似者。表示机器可读媒体1022中的指令1024的信息可由处理电路系统处理成用于实施本文中论述的任何操作的指令。举例来说,从信息导出指令1024(例如,由处理电路系统处理)可包含:编译(例如,从源代码、目标代码等)、解译、加载、组织(例如,动态或静态链接)、编码、解码、加密、解密、封装、解封装或以其它方式将信息操纵为指令1024。
在实例中,指令1024的导出可包含信息的汇编、编译或解译(例如,通过处理电路系统)以从由机器可读媒体1022提供的一些中间或预处理格式创建指令1024。信息在提供于多个部分中时可经组合、解包及修改以创建指令1024。举例来说,信息可在一个或若干远程服务器上的多个压缩源代码包(或目标代码或二进制可执行代码等)中。源代码包可在经由网络输送时被加密且在必要时进行解密、解压缩、汇编(例如链接)及在本地机器处编译或解译(例如编译或解译成库、独立可执行文件等)且由本地机器执行。
指令1024可进一步使用传输媒体经由利用数个传送协议(例如帧中继、因特网协议(IP)、传输控制协议(TCP)、用户数据报协议(UDP)、超文本传送协议(HTTP)等)中的任一者的网络接口装置1020通过通信网络1026发射或接收。实例通信网络可包含局域网(LAN)、广域网(WAN)、分组数据网络(例如因特网)、移动电话网络(例如蜂窝网络)、普通老式电话(POTS)网络及无线数据网络(例如电气及电子工程师协会(IEEE)802.11系列标准(称为)、IEEE 802.16系列标准(称为/>))、IEEE 802.15.4系列标准、对等(P2P)网络,等等。在实例中,网络接口装置1020可包含一或多个物理插孔(例如以太网络、同轴或电话插孔)或一或多个天线以连接到通信网络1026。在实例中,网络接口装置1020可包含多个天线以使用单输入多输出(SIMO)、多输入多输出(MIMO)或多输入单输出(MISO)技术中的至少一者进行无线通信。术语“传输媒体”应被视为包含能够存储、编码或携载由机器1000执行的指令的任何无形媒体,且包含用于促进此类软件的通信的数字或模拟通信信号或其它无形媒体。传输媒体是机器可读媒体。
在前述说明书中,已经描述本公开的一些实例实施方案。说明书及图式应被视为意在说明而非限制。下文是本公开的实施方案的实例的非穷举列表。
实例1是一种系统,其包括:到物理通道的接口;到总线的总线接口;及逻辑,其经配置以执行包括以下的操作:经由所述接口在所述物理通道上检测就绪信号;基于在所述物理通道上检测到所述就绪信号,识别命令;基于所述命令,选择虚拟通道;产生指示所述虚拟通道的数据分组;及经由所述总线接口传输所述数据分组。
在实例2中,实例1所述的标的物包含,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
在实例3中,实例1至2所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
在实例4中,实例1至3所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述系统进一步包括:到第二物理通道的第二接口;所述操作进一步包括:经由所述第二接口且从主装置接收与所述命令相关联的地址;且所述数据分组进一步指示所述地址。
在实例5中,实例4所述的标的物包含,其中:所述地址的所述接收是基于对所述就绪信号的所述检测。
在实例6中,实例1至5所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述系统进一步包括:到第二物理通道的第二接口;所述操作进一步包括:经由所述第二接口且从辅装置接收与所述命令相关联的响应;且所述数据分组进一步指示所述响应。
在实例7中,实例1至6所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述系统进一步包括:到第二物理通道的第二接口;所述操作进一步包括:经由所述第二接口接收与所述命令相关联的数据;且所述所产生数据分组进一步包括所述数据。
在实例8中,实例1至7所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
实例9是一种方法,其包括:经由到物理通道的接口在所述物理通道上检测就绪信号;基于在所述物理通道上检测到所述就绪信号,识别命令;基于所述命令,选择虚拟通道;产生指示所述虚拟通道的数据分组;及经由总线传输所述数据分组。
在实例10中,实例9所述的标的物包含,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
在实例11中,实例9至10所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
在实例12中,实例9至11所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述方法进一步包括:经由到第二物理通道的第二接口且从主装置接收与所述命令相关联的地址;且所述数据分组进一步指示所述地址。
在实例13中,实例12所述的标的物包含,其中:所述地址的所述接收是基于对所述就绪信号的所述检测。
在实例14中,实例9至13所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述方法进一步包括:经由到第二物理通道的第二接口且从辅装置接收与所述命令相关联的响应;且所述数据分组进一步指示所述响应。
在实例15中,实例9至14所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述方法进一步包括:经由到第二物理通道的第二接口接收与所述命令相关联的数据;且所述所产生数据分组进一步包括所述数据。
在实例16中,实例9至15所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
实例17是一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时致使所述系统执行包括以下的操作:经由到物理通道的接口在所述物理通道上检测就绪信号;基于在所述物理通道上检测到所述就绪信号,识别命令;基于所述命令,选择虚拟通道;产生指示所述虚拟通道的数据分组;及经由总线传输所述数据分组。
在实例18中,实例17所述的标的物包含,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
在实例19中,实例17至18所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
在实例20中,实例17至19所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述操作进一步包括:经由到第二物理通道的第二接口且从主装置接收与所述命令相关联的地址;且所述数据分组进一步指示所述地址。
在实例21中,实例20所述的标的物包含,其中:所述地址的所述接收是基于对所述就绪信号的所述检测。
在实例22中,实例17至21所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述操作进一步包括:经由到第二物理通道的第二接口且从辅装置接收与所述命令相关联的响应;且所述数据分组进一步指示所述响应。
在实例23中,实例17至22所述的标的物包含,其中:到所述物理通道的所述接口是到第一物理通道的第一接口;所述操作进一步包括:经由到第二物理通道的第二接口接收与所述命令相关联的数据;且所述所产生数据分组进一步包括所述数据。
在实例24中,实例17至23所述的标的物包含,其中:基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
实例25是包含指令的至少一种机器可读媒体,所述指令在由处理电路系统执行时致使所述处理电路系统执行用以实施实例1至24中的任一者的操作。
实例26是一种包括用于实施实例1至24中的任一者的构件的设备。
实例27是一种用于实施实例1至24中的任一者的系统。
实例28是一种用于实施实例1至24中的任一者的方法。
Claims (24)
1.一种系统,其包括:
到物理通道的接口;
到总线的总线接口;及
逻辑,其经配置以执行包括以下的操作:
经由所述接口在所述物理通道上检测就绪信号;
基于在所述物理通道上检测到所述就绪信号,识别命令;
基于所述命令,选择虚拟通道;
产生指示所述虚拟通道的数据分组;及
经由所述总线接口传输所述数据分组。
2.根据权利要求1所述的系统,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
3.根据权利要求1所述的系统,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
4.根据权利要求1所述的系统,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述系统进一步包括:
到第二物理通道的第二接口;
所述操作进一步包括:
经由所述第二接口且从主装置接收与所述命令相关联的地址;且
所述数据分组进一步指示所述地址。
5.根据权利要求4所述的系统,其中:
所述地址的所述接收是基于对所述就绪信号的所述检测。
6.根据权利要求1所述的系统,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述系统进一步包括:
到第二物理通道的第二接口;
所述操作进一步包括:
经由所述第二接口且从辅装置接收与所述命令相关联的响应;且
所述数据分组进一步指示所述响应。
7.根据权利要求1所述的系统,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述系统进一步包括:
到第二物理通道的第二接口;
所述操作进一步包括:
经由所述第二接口接收与所述命令相关联的数据;且
所述所产生数据分组进一步包括所述数据。
8.根据权利要求1所述的系统,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
9.一种方法,其包括:
经由到物理通道的接口在所述物理通道上检测就绪信号;
基于在所述物理通道上检测到所述就绪信号,识别命令;
基于所述命令,选择虚拟通道;
产生指示所述虚拟通道的数据分组;及
经由总线传输所述数据分组。
10.根据权利要求9所述的方法,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
11.根据权利要求9所述的方法,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
12.根据权利要求9所述的方法,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述方法进一步包括:
经由到第二物理通道的第二接口且从主装置接收与所述命令相关联的地址;且
所述数据分组进一步指示所述地址。
13.根据权利要求12所述的方法,其中:
所述地址的所述接收是基于对所述就绪信号的所述检测。
14.根据权利要求9所述的方法,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述方法进一步包括:
经由到第二物理通道的第二接口且从辅装置接收与所述命令相关联的响应;且
所述数据分组进一步指示所述响应。
15.根据权利要求9所述的方法,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述方法进一步包括:
经由到第二物理通道的第二接口接收与所述命令相关联的数据;且
所述所产生数据分组进一步包括所述数据。
16.根据权利要求9所述的方法,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
17.一种存储指令的非暂时性机器可读媒体,所述指令在由系统执行时致使所述系统执行包括以下的操作:
经由到物理通道的接口在所述物理通道上检测就绪信号;
基于在所述物理通道上检测到所述就绪信号,识别命令;
基于所述命令,选择虚拟通道;
产生指示所述虚拟通道的数据分组;及
经由总线传输所述数据分组。
18.根据权利要求17所述的非暂时性机器可读媒体,其中所述数据分组的所述传输包括将所述数据分组传输到存储器控制器小芯片。
19.根据权利要求17所述的非暂时性机器可读媒体,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是读取请求选择虚拟通道2。
20.根据权利要求17所述的非暂时性机器可读媒体,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述操作进一步包括:
经由到第二物理通道的第二接口且从主装置接收与所述命令相关联的地址;且
所述数据分组进一步指示所述地址。
21.根据权利要求20所述的非暂时性机器可读媒体,其中:
所述地址的所述接收是基于对所述就绪信号的所述检测。
22.根据权利要求17所述的非暂时性机器可读媒体,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述操作进一步包括:
经由到第二物理通道的第二接口且从辅装置接收与所述命令相关联的响应;且
所述数据分组进一步指示所述响应。
23.根据权利要求17所述的非暂时性机器可读媒体,其中:
到所述物理通道的所述接口是到第一物理通道的第一接口;
所述操作进一步包括:
经由到第二物理通道的第二接口接收与所述命令相关联的数据;且
所述所产生数据分组进一步包括所述数据。
24.根据权利要求17所述的非暂时性机器可读媒体,其中:
基于所述命令的对所述虚拟通道的所述选择包括基于所述命令是写入请求选择虚拟通道0。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/007,592 | 2020-08-31 | ||
US17/007,592 US11360920B2 (en) | 2020-08-31 | 2020-08-31 | Mapping high-speed, point-to-point interface channels to packet virtual channels |
PCT/US2021/038657 WO2022046260A1 (en) | 2020-08-31 | 2021-06-23 | Mapping high-speed, point-to-point interface channels to packet virtual channels |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116325665A true CN116325665A (zh) | 2023-06-23 |
Family
ID=80353700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180068456.XA Pending CN116325665A (zh) | 2020-08-31 | 2021-06-23 | 将高速点对点接口通道映射到分组虚拟通道 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11360920B2 (zh) |
CN (1) | CN116325665A (zh) |
WO (1) | WO2022046260A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795763A (zh) * | 2023-07-31 | 2023-09-22 | 摩尔线程智能科技(北京)有限责任公司 | 基于axi协议的数据分组传输的方法、片上系统和芯片 |
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 (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190065413A1 (en) * | 2017-08-25 | 2019-02-28 | Intel Corporation | Burst-sized linked list elements for a queue |
US20190319915A1 (en) * | 2018-04-16 | 2019-10-17 | Lexmark International, Inc. | System and Methods for Changing Addresses of One or More Components |
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 |
US11412075B2 (en) | 2020-08-31 | 2022-08-09 | Micron Technology, Inc. | Multiple protocol header processing |
US20220066975A1 (en) * | 2020-09-01 | 2022-03-03 | Texas Instruments Incorporated | Bit stream transformation in parallel data interfaces |
US20230026653A1 (en) * | 2021-07-21 | 2023-01-26 | Dell Products L.P. | Transmit and receive channel swap for information handling systems, |
KR20230052479A (ko) * | 2021-10-13 | 2023-04-20 | 삼성전자주식회사 | 보조 프로세서 및 이를 포함하는 전자 시스템 |
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 |
KR20020087053A (ko) | 2000-02-14 | 2002-11-21 | 톰슨 라이센싱 소시에떼 아노님 | 수 개의 패킷에 걸쳐 분할된 메시지를 송신하는 방법 |
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 |
KR20100015790A (ko) | 2007-03-23 | 2010-02-12 | 빅풋 네트웍스, 인크. | 메시지 병합 장치 및 그 방법 |
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 | ソニー株式会社 | 暗号処理装置、および暗号処理方法、並びにプログラム |
WO2012132263A1 (ja) | 2011-03-28 | 2012-10-04 | パナソニック株式会社 | 中継器、中継器の制御方法、およびプログラム |
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 |
CN104919763A (zh) | 2012-11-29 | 2015-09-16 | 松下知识产权经营株式会社 | 通信装置、具有通信装置的路由器、总线系统以及具有总线系统的半导体电路的电路基板 |
JP5793690B2 (ja) * | 2012-12-28 | 2015-10-14 | パナソニックIpマネジメント株式会社 | インタフェース装置、およびメモリバスシステム |
WO2014115207A1 (ja) | 2013-01-25 | 2014-07-31 | パナソニック株式会社 | バスインタフェース装置、中継装置、およびそれらを備えたバスシステム |
WO2014128802A1 (ja) * | 2013-02-19 | 2014-08-28 | パナソニック株式会社 | インタフェース装置およびバスシステム |
US20150109024A1 (en) | 2013-10-22 | 2015-04-23 | Vaughn Timothy Betz | Field Programmable Gate-Array with Embedded Network-on-Chip Hardware and Design Flow |
WO2016056473A1 (ja) | 2014-10-07 | 2016-04-14 | 日本電信電話株式会社 | 秘密計算システム、中継装置、それらの方法、プログラム、および記録媒体 |
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 |
WO2017196143A1 (en) | 2016-05-12 | 2017-11-16 | Lg Electronics Inc. | A method and device for improved advanced microcontroller bus architecture (amba) and advanced extensible interface (axi) operations |
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 |
WO2019089816A2 (en) | 2017-10-31 | 2019-05-09 | 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 | 华为技术有限公司 | 一种报文处理的方法、网络节点和系统 |
KR102407128B1 (ko) | 2018-01-29 | 2022-06-10 | 마이크론 테크놀로지, 인크. | 메모리 컨트롤러 |
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 | 华为技术有限公司 | 处理报文分片的方法、装置和系统 |
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 |
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 |
US11119972B2 (en) | 2018-05-07 | 2021-09-14 | Micron Technology, Inc. | 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 |
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 |
US11513839B2 (en) | 2018-05-07 | 2022-11-29 | Micron Technology, Inc. | Memory request size 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 |
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 |
US11418455B2 (en) | 2020-08-31 | 2022-08-16 | Micron Technology, Inc. | Transparent packet splitting and recombining |
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 |
-
2020
- 2020-08-31 US US17/007,592 patent/US11360920B2/en active Active
-
2021
- 2021-06-23 CN CN202180068456.XA patent/CN116325665A/zh active Pending
- 2021-06-23 WO PCT/US2021/038657 patent/WO2022046260A1/en active Application Filing
-
2022
- 2022-05-13 US US17/744,085 patent/US11954055B2/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 |
CN116795763A (zh) * | 2023-07-31 | 2023-09-22 | 摩尔线程智能科技(北京)有限责任公司 | 基于axi协议的数据分组传输的方法、片上系统和芯片 |
CN116795763B (zh) * | 2023-07-31 | 2023-11-21 | 摩尔线程智能科技(北京)有限责任公司 | 基于axi协议的数据分组传输的方法、片上系统和芯片 |
Also Published As
Publication number | Publication date |
---|---|
US11360920B2 (en) | 2022-06-14 |
US11954055B2 (en) | 2024-04-09 |
US20220269633A1 (en) | 2022-08-25 |
WO2022046260A1 (en) | 2022-03-03 |
US20220066969A1 (en) | 2022-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116325665A (zh) | 将高速点对点接口通道映射到分组虚拟通道 | |
US11924313B2 (en) | Multiple protocol header processing | |
CN116325690A (zh) | 用于对多个元素进行编码的单个字段 | |
CN116325707A (zh) | 透明的包拆分和重组 | |
CN114388040B (zh) | 通知进程或可编程原子操作捕获的方法 | |
US11789885B2 (en) | Ordered delivery of data packets based on type of path information in each packet | |
CN116325706A (zh) | 网络信用返回机制 | |
CN116250224A (zh) | 包长度字段的大小减小的编码 | |
CN116601617A (zh) | 使用同步接口进行次级装置检测 | |
CN114385240A (zh) | 组织可编程原子单元指令存储器的方法 | |
CN116583829A (zh) | 可编程原子操作符资源锁定 | |
CN116235479A (zh) | 用于多流量控制单元接口的流量控制 | |
CN116261849A (zh) | 组合写入启用掩码和信用返回字段 | |
CN114385241A (zh) | 完成可编程原子事务的方法 | |
CN116250218A (zh) | 用于基于信用值的流控的早期信用值返回 | |
CN114385236A (zh) | 传递可编程原子操作符到存储器控制器 | |
CN114385237B (zh) | 用于低时延寄存器错误校正的方法和设备及机器可读介质 | |
CN116325693A (zh) | 基于分组的网络中的可选路径排序 | |
CN116583823A (zh) | 使用长向量仲裁的异步管线合并 | |
US11714655B2 (en) | Pipeline merging in a circuit | |
CN116569156A (zh) | 同步接口的有效负载奇偶校验保护 | |
CN116685942A (zh) | 在处理器中重用飞行中寄存器数据 | |
WO2022086732A1 (en) | Static identifiers for a synchronous interface | |
CN116569157A (zh) | 通过同步接口的经延迟通信 | |
CN116529721A (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 |