CN112585593A - 链路层数据打包和封包流控制方案 - Google Patents
链路层数据打包和封包流控制方案 Download PDFInfo
- Publication number
- CN112585593A CN112585593A CN201980054677.4A CN201980054677A CN112585593A CN 112585593 A CN112585593 A CN 112585593A CN 201980054677 A CN201980054677 A CN 201980054677A CN 112585593 A CN112585593 A CN 112585593A
- Authority
- CN
- China
- Prior art keywords
- packet
- link
- candidate
- queue
- packets
- 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
- 238000012856 packing Methods 0.000 title claims description 14
- 238000000034 method Methods 0.000 claims abstract description 36
- 238000013500 data storage Methods 0.000 claims abstract description 28
- 230000004044 response Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 27
- 238000003780 insertion Methods 0.000 claims description 19
- 230000037431 insertion Effects 0.000 claims description 19
- 239000004744 fabric Substances 0.000 abstract description 57
- 238000012546 transfer Methods 0.000 abstract description 16
- 230000015654 memory Effects 0.000 description 31
- 238000004891 communication Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 10
- 239000000523 sample Substances 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/4009—Coupling between buses with data restructuring
-
- 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/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Systems (AREA)
- Bus Control (AREA)
Abstract
公开了用于在计算系统中执行高效数据传送的系统、设备和方法。计算系统包括客户端中的多个织构接口以及织构。所述织构接口中的封包发射器包括多个队列,每个队列用于存储相应类型的封包。所述封包发射器包括多个队列仲裁器,每个队列仲裁器用于从所述多个队列中的相应队列中选择候选封包。所述封包发射器包括用于存储链路封包的缓冲器,所述缓冲器包括用于存储多个候选封包的数据存储空间。所述封包发射器从所述多个队列中选择合格的候选封包,并且将这些候选封包插入所述链路封包中。所述打包仲裁器通过考虑将候选封包插入所述链路封包中的速率与在所述接收器中的接收队列中产生可用数据存储空间的速率之间的不匹配来避免所述接收器处的数据冲突。
Description
发明背景
相关技术的描述
在计算系统中,一些类型的应用程序执行能够比其他应用程序更好地利用并行处理和共享存储器的功能。此类应用程序的实例包括机器学习应用程序、娱乐和实时应用程序以及一些商业、科学、医学和其他应用程序。虽然一些处理器体系结构包括多于一个处理单元(例如,CPU、GPU等)或处理核心,但是在一些情况下,耦接到存储器的一个或两个另外的处理单元或核心不一定提供足够的并行度来提供期望的性能水平。
除了读写访问命令和对应数据外,一致性探测、中断和其他通信消息也通过通信织构(或织构)在系统中传送。织构中的互连的实例是总线体系结构、基于交叉开关的体系结构、片上网络(NoC)通信子系统、管芯之间的通信信道、用于并排堆叠芯片的硅插入件、用于在处理器管芯的顶部竖直堆叠专用管芯的硅通孔(TSV)等。
在许多情况下,织构具有多个物理信道,每个信道都支持相对宽的封包。在单个织构内传送数据时,织构降低时延,因为可使用相对大量的物理线路。然而,当通过织构将单独的管芯连接在一起时并且当将单独的处理节点连接在一起时(每个处理节点具有相应织构),数据通过数量显著减少的物理线路进行传送,这限制了可用带宽。在一些情况下,链路物理线路以管芯上的物理线路数据速率的倍数的数据速率传送数据。然而,当在管芯之间以及节点之间通信时,带宽仍会显著降低。
除了上述传输数据效率低下之外,来自不同源的变化类型的封包多次连同控制信息组合在一起。变化的封包类型的一个或多个源具有不同总线宽度,并且在单个源内的封包之间携载变化量的信息。来自不同源的不同大小的这些封包多次低效地组合在一起,这进一步降低链路带宽效率。
再进一步,当从发射器发送封包的速率与在接收器处接收封包的速率不匹配时,数据毁损通过数据冲突在接收器处发生。在一个实例中,发射器是处理单元中的图形处理单元(GPU),并且接收器是织构。降低来自发射器的封包的发送数据速率的保守方法防止数据毁损,但也进一步降低了链路带宽效率。
鉴于以上内容,期望用于在计算系统中执行高效数据传送的高效方法和系统。
附图说明
通过结合附图参考以下描述,可更好地理解本文描述的方法和机制的优点,在附图中:
图1是计算系统的一个实施方案的框图。
图2是封包发射器的一个实施方案的框图。
图3是用于在计算系统中执行高效数据传送的方法的一个实施方案的流程图。
图4是用于在计算系统中执行高效数据传送的方法的另一实施方案的流程图。
图5是用于在计算系统中执行高效数据传送的方法的另一实施方案的流程图。
图6是封包接收器的一个实施方案的框图。
图7是用于在计算系统中执行高效数据传送的方法的另一实施方案的流程图。
虽然本发明容易有各种修改和替代形式,但是通过举例方式在图式中示出具体的实施方案并且在本文中对其进行详细描述。然而,应理解,图式及其详细描述并不意图将本发明局限于所公开的特定形式,而是相反地,本发明将涵盖落入如所附权利要求限定的本发明的范围内的所有修改、等效物和替代方案。
具体实施方式
在以下描述中,阐述了众多具体细节以提供对本文呈现的方法和机制的透彻理解。然而,本领域普通技术人员应认识到,可在没有这些具体细节的情况下实践各种实施方案。在一些情况下,并未详细示出众所周知的结构、部件、信号、计算机程序指令和技术,以避免混淆本文描述的方法。应了解,为了使说明简单且清楚,图中所示的元件未必按比例绘制。例如,元件的中的一些尺寸可相对于其他元件被放大。
公开了用于在计算系统中执行高效数据传送的各种系统、设备、方法和计算机可读介质。在各种实施方案中,计算系统包括用于处理应用程序的一个或多个客户端。客户端的实例包括通用中央处理单元(CPU)、图形处理单元(GPU)、加速处理单元(APU)、输入/输出(I/O)装置等。计算系统还至少包括功率控制器,以及用于在客户端之间传送消息的多个链路接口。
在各种实施方案中,一个或多个客户端和织构包括织构接口,每个织构接口具有封包发射器和封包接收器。封包发射器包括多个队列,每个队列用于存储相应类型的封包。封包类型的实例包括请求类型、响应类型、探测类型以及令牌或信用类型。类型的其他实例包括封包中的数据类型,诸如命令或消息,它们是控制类型。对于写入请求,在一些实施方案中,写入请求被分成插入命令或控制封包中的写入命令。写入请求也被分成对应于写入命令的单独的写入数据封包。读取请求作为插入命令或控制封包中的读取命令被发送。对读取命令的响应作为插入命令或控制封包中的读取消息被发送。读取响应数据被插入单独的数据封包中。
在一些实施方案中,多个队列中的两个或更多个存储不同大小的封包。在一个实施方案中,封包发射器还包括多个队列仲裁器,每个队列仲裁器用于从多个队列中的相应队列中选择候选封包。封包发射器另外包括用于存储链路封包的缓冲器。在各种实施方案中,链路封包包括用于存储多个候选封包的数据存储空间。链路封包通过不再忙于传送其他数据的链路发送到接收器。在一些实施方案中,用于存储链路封包的缓冲器包括多个寄存器、触发器电路或其他顺序元件。
封包发射器还包括打包仲裁器,所述打包仲裁器从多个队列中选择合格的候选封包并且将这些候选封包插入链路封包中。在一些实施方案中,打包仲裁器基于一个或多个属性来选择候选封包并且将其插入链路缓冲器中,所述一个或多个属性包括年龄、封包类型的优先级级别、服务质量参数、源标识符、应用程序标识符或类型(诸如实时应用程序)、业务类型的指示(诸如实时业务、带宽要求或时延容限要求等)。在各种实施方案中,打包仲裁器还确定填充链路封包是否具有用于给定候选封包的剩余可用数据存储空间。在一些实施方案中,打包仲裁器还确定填充链路封包是否具有在给定候选封包的给定边界上对齐的剩余可用数据存储空间。
打包仲裁器包括控制逻辑,所述控制逻辑用于考虑将候选封包打包(插入)到链路封包中的速率与在接收器中的接收队列中产生可用数据存储空间的速率之间的不匹配。不匹配还由织构中的网络在链路可供用于发射链路封包时添加和删除时钟周期导致。
在一个实例中,当织构接口检测到数据传送错误并且重新发送数据时,从封包发射器的角度来看,空闲时钟周期被插入链路上。在一些情况下,由于贯穿织构中的网络的总线利用和仲裁,在从封包发射器发送的两个链路封包之间不会维持这些空闲周期,而是将其删除。因此,为了避免在接收器的接收队列处发生数据冲突,封包发射器维持启用网络周期的第一计数(每个计数允许下一个链路封包使用连接到封包发射器的链路),以及插入链路封包中的给定类型的候选封包的数量的第二计数。封包发射器存储用于避免存储给定类型的封包的接收队列中的数据冲突的接收器所接收到的链路封包之间的最小周期数的第三计数。封包发射器使用这些计数来确定何时将给定候选封包插入链路封包中。
参见图1,示出计算系统100的一个实施方案的一般化框图。如图所示,计算系统100包括客户端110、存储器控制器130、功率控制器170和链路接口180中的每一者之间的通信织构120。在一些实施方案中,处理节点100的部件是诸如片上系统(SOC)等集成电路(IC)上的个别管芯。在其他实施方案中,部件是封装级系统(SiP)或多芯片模块(MCM)中的个别管芯。
在所示的实施方案中,客户端110包括中央处理单元(CPU)112、图形处理单元(GPU)114和集线器116。集线器116用于与多媒体引擎118通信。CPU 112、GPU 114和多媒体引擎118是能够处理应用程序的计算资源的实例。尽管未示出,但在其他实施方案中,客户端110中包括其他类型的计算资源。CPU 112中的一个或多个处理器核心中的每一个包括用于根据给定的所选择指令集体系结构(ISA)而执行指令的电路。在各种实施方案中,CPU112中的处理器核心中的每一个包括用于处理给定ISA的指令的超标量、多线程微体系结构。在一个实施方案中,GPU 114包括具有大量并行执行通道的高并行数据微体系结构。在一个实施方案中,微体系结构将单指令多数据(SIMD)管道用于并行执行通道。多媒体引擎118包括用于处理多媒体应用程序的音频数据和视觉数据的处理器。
在一个实施方案中,功率控制器170在给定采样间隔期间从客户端110收集数据,诸如预定采样信号。在一些实施方案中,节点100中的管芯上电流传感器和温度传感器也将信息发送到功率控制器170。在一些实施方案中,功率控制器170为客户端110中的计算资源中的每一个选择相应的功率-性能状态(P-state)。P-state至少包括工作电压和工作时钟频率。
尽管示出单个存储器控制器130,但在其他实施方案中,在处理节点100中使用另一数量的存储器控制器。在各种实施方案中,存储器控制器130通过织构120从客户端110接收存储器请求,调度所述存储器请求,并且将所调度存储器请求发送到系统存储器和主存储器中的一者或多者。存储器控制器130还从系统存储器和主存储器接收响应,并且将所述响应发送到客户端110中的请求的对应源。在各种实施方案中,系统存储器通过I/O控制器和总线160以及存储器总线150由来自主存储器的数据填充。具有所请求块的对应高速缓存填充线从主存储器输送到客户端110中的高速缓存存储器子系统中的对应高速缓存存储器子系统,以便完成原始存储器请求。高速缓存填充线被放置在一个或多个级别的高速缓存中。
在一些实施方案中,处理节点100的地址空间至少在CPU 112、GPU 114和集线器116以及一个或多个其他部件(诸如输入/输出(I/O)外围装置(未示出))与其他类型的计算资源之间划分。维护存储器映射以确定哪些地址被映射到哪个部件,以及因此确定对特定地址的存储器请求应被路由到CPU 112、GPU 114和集线器116中的哪一者。在一个实施方案中,系统存储器是多种动态随机存取存储器(DRAM)中的一种,并且存储器控制器130支持对应协议。所述协议确定用于信息传送的值,诸如每个时钟周期的数据传送次数、信号电压电平、信号时序、信号和时钟相位以及时钟频率。在一些实施方案中,主存储器是多种类型的非易失性随机存取二级数据存储装置中的一种。主存储器的实例是硬盘驱动器(HDD)和固态硬盘(SSD)。
在各种实施方案中,通信织构120(或织构120)在计算资源110与存储器控制器130之间来回传送业务,并且包括用于支持相应通信协议的接口。“业务”包括诸如命令、消息、探测、中断以及对应于命令和消息的数据等数据。在一些实施方案中,织构120至少包括用于存储请求和响应的队列、用于在跨内部网络发送请求之前在接收到的请求之间进行仲裁的选择逻辑、用于构建封包并对其进行解码的逻辑以及用于选择封包的路由的逻辑。
在一些实施方案中,织构传输接口(FTI)180通过在链路上传送业务来支持计算系统100与其他计算系统或处理节点之间的通信。在各种实施方案中,跨链路发送的业务包括一个或多个处理节点的操作状态的指示、掉电请求、对请求的响应、中断和其他信息。如图所示,客户端110包括用于CPU 112的FTI 113、用于GPU 114的FTI 115和用于集线器116的FTI 117。另外,存储器控制器130包括FTI 132,而功率控制器170包括FTI 172。织构120包括多个织构传输接口(为便于说明而未示出)。在一些实施方案中,连接到织构传输接口的每个链路是点对点通信信道。在其他实施方案中,连接到织构传输接口的一个或多个链路是端对端通信信道。
在物理级下,链路包括一个或多个通道。在一些实施方案中,织构传输接口包括控制逻辑以及用于通信的缓冲器或队列。在一些实施方案中,织构传输接口和对应链路包括诸如PCIe(外围部件互连高速)、InfiniBand、RapidIO、HyperTransport、先进可扩展接口(AXI)等通信协议连接。
在一些实施方案中,织构传输接口中的每一个包括多个队列,每个队列用于存储相应类型的封包。另外,存在多个队列仲裁器,每个仲裁器用于从多个队列中的相应队列中选择候选封包。计算系统100中的织构传输接口中的一个或多个包括用于存储链路封包的缓冲器,所述缓冲器包括用于存储多个候选封包的数据存储空间。在一些实施方案中,多个队列中的两个或更多个存储不同大小的候选封包。织构传输接口中的打包仲裁器从多个队列中选择合格的候选封包,并且将这些候选封包插入链路封包中。在一些实施方案中,打包仲裁器还确定填充链路封包是否具有在给定候选封包的给定边界上对齐的剩余可用数据存储空间。织构传输接口中的封包接收器包括用于接收由封包发射器发送的链路封包的接收队列。封包发射器中的打包仲裁器通过考虑将候选封包插入链路封包中的速率与在接收器中的接收队列中产生可用数据存储空间的速率之间的不匹配来避免接收器处的数据冲突。
参考图2,示出封包发射器200的一个实施方案的一般化框图。在所示的实施方案中,封包发射器200包括队列210-214,每个队列用于存储相应类型的封包。在一些实施方案中,封包是流控制单元(“flit”)。flit是更大封包的子集。flit通常携载数据和控制信息,诸如更大封包的头信息和尾信息。尽管用于发射的数据被描述为在网络中路由的封包,但在其他实施方案中,用于发射的数据是点对点互连中的比特流或字节流。在各种实施方案中,队列210-214存储将在织构链路上发送的控制封包。对应数据封包(诸如对应于flit的更大封包)从另一源发送。
在一些实施方案中,一个或多个其他源(诸如用于更大数据封包的源)与封包发射器200共享织构链路。因此,织构链路并不总是可用于发送控制封包。封包发射器200还包括打包缓冲器仲裁器250,所述打包缓冲器仲裁器250用于将候选封包230-234中的一个或多个插入链路封包260中。链路封包260具有足够数据存储空间以用于存储织构传输接口(FTI)候选封包230-234中的两个或更多个。在一个实施方案中,当满足两个要求时,封包发射器200在织构链路上发送链路封包260。第一个要求是织构传输接口向封包发射器200发送指示织构链路可用的信号。第二个要求是封包发射器200确定链路封包260不为空。
存储在队列210-214中的控制封包类型的实例包括请求类型、响应类型、探测类型以及令牌或信用类型。在其他实施方案中还包括封包类型的其他实例。如图所示,队列210存储“类型1”的封包,所述封包在一个实施方案中是控制请求类型。队列212存储“类型2”的封包,所述封包在一个实施方案中是控制响应类型。队列214存储“类型N”的封包,所述封包在一个实施方案中是控制令牌或信用类型。
队列仲裁器220从队列210中选择织构传输接口(FTI)候选封包230。在一些实施方案中,队列仲裁器220基于一个或多个属性来选择FTI候选封包230,所述一个或多个属性包括年龄、封包类型的优先级级别、封包的优先级级别、服务质量参数、源标识符、应用程序标识符或类型(诸如实时应用程序)、业务类型(诸如实时业务)的指示、带宽要求或时延容限要求等。以类似方式,队列仲裁器222-224从队列212-214中选择FTI候选封包232-234。
在一些实施方案中,队列仲裁器220-224在每个时钟周期从队列210-214中选择FTI候选封包230-234。在其他实施方案中,在先前选择的FTI候选封包230-234已经被插入链路封包260中之后,队列仲裁器220-224从队列210-214中选择FTI候选封包230-234。在又其他实施方案中,在先前选择的FTI候选封包230-234已经被打包缓冲器仲裁器250选择但由于链路封包260中的不可用数据存储空间、与链路封包260中的给定边界对齐的不可用数据存储空间或其他不满足的条件而未被插入链路封包260中之后,队列仲裁器220-224从队列210-214中选择FTI候选封包230-234。
如图所示,FTI候选封包230-234中的每一个具有不同数据大小240-244。在一些实施方案中,FTI候选封包230-234中的两个或更多个具有相同数据大小。在一个实施方案中,队列210-214中的一个或多个存储不同大小的FTI封包。因此,当队列仲裁器222-224中的给定队列仲裁器选择FTI候选封包时,所选择FTI候选封包具有与从同一队列中选择的先前选择的FTI候选封包不同的大小。在一个实例中,当队列210存储请求类型的封包时,队列210存储大小为128比特的未压缩请求封包,并且存储大小为64比特的已压缩请求封包。因此,队列210的某些条目存储数据大小不同于数据大小240的FTI候选封包。
如图所示,链路封包260被划分成扇区262-266。在一个实施方案中,每个扇区是32比特。扇区262-266的其他数据大小是可能的并且可加以考虑。在一个实施方案中,链路封包260包括八个扇区。在其他实施方案中,链路封包260包括另一数量的扇区。在各种实施方案中,链路封包260被存储在寄存器中。在其他实施方案中,使用其他顺序存储元件。除了存储诸如控制FTI候选封包等数据之外,还存储其他元数据(未示出),诸如扇区262-266中的哪些扇区可用以及哪些扇区被分配的指示。打包缓冲器仲裁器250接收FTI候选封包230-234,并且选择接收到的FTI候选封包230-234中的一个或多个以插入链路封包260中的可用数据存储空间中。在一些实施方案中,打包缓冲器仲裁器250能够在每个时钟周期选择FTI候选封包230-234中的一个并且将其插入链路封包260中。在另一实施方案中,打包缓冲器仲裁器250能够在每个时钟周期选择FTI候选封包230-234中的两个或更多个并且将其插入链路封包260中。
在各种实施方案中,打包缓冲器仲裁器250包括组合逻辑和顺序元件的组合。打包缓冲器仲裁器250以硬件、软件或硬件和软件的组合来实现。在一些实施方案中,打包缓冲器仲裁器250基于一个或多个属性来选择FTI候选封包230-234中的一个或多个并且将其插入链路封包260中,所述一个或多个属性包括封包年龄、封包类型的优先级级别、服务质量参数、源标识符、应用程序标识符或类型(诸如实时应用程序)、业务类型(诸如实时业务)的指示、带宽要求或时延容限要求等。在一些实施方案中,打包缓冲器仲裁器250在每个时钟周期选择FTI候选封包230-234中的一个以便进行插入(打包)。在其他实施方案中,打包缓冲器仲裁器250在每个时钟周期选择FTI候选封包230-234中的两个或多个以便进行插入(打包)。
在各种实施方案中,打包缓冲器仲裁器250还确定链路封包260是否具有用于FTI候选封包232-234中的给定FTI候选封包的剩余可用数据存储空间。在一些实施方案中,打包缓冲器仲裁器250还确定链路封包260是否具有在FTI候选封包232-234中的给定FTI候选封包的给定边界上对齐的剩余可用数据存储空间。在一些实施方案中,打包仲裁器250包括控制逻辑,所述控制逻辑用于考虑将FTI候选封包232-234打包(插入)链路封包260中的速率与在织构链路的另一端处在接收器中的接收队列中产生可用数据存储空间的速率之间的不匹配。此不匹配还由织构中的网络在链路可供用于发射链路封包时添加和删除空闲时钟周期(“磁泡”)导致。
在一个实例中,当织构接口检测到数据传送错误并且重新发送数据时,将空闲时钟周期(“磁泡”)插入织构链路上。在一些情况下,由于贯穿织构中的网络的总线利用和仲裁,在从封包发射器200发送到接收器的两个链路封包之间不会维持这些空闲周期,而是将其删除。因此,为了避免在接收器的接收队列处的数据冲突,在一个实施方案中,打包缓冲器仲裁器250存储用于避免存储给定类型的封包的接收队列中的数据冲突的封包接收器所接收到的链路封包之间的最小周期数的计数。
在一个实例中,织构链路的另一端上的封包接收器具有给定类型的接收队列(例如,控制响应封包),并且此接收队列具有两个可用条目以分配接收到的封包。为了简化访问逻辑并且满足时序要求,在一些实施方案中,接收队列中的两个相同条目可供用于分配接收到的封包,而不是在任何条目中分配给定类型的接收到的封包。在下一个时钟周期中,对应于给定类型的两个已分配封包的信息将被重定位到其他条目。在一个实施方案中,信息被下移(或上移)两个条目。在另一实施方案中,信息被下移(或上移)单个条目。在又一实施方案中,基于属性将所述信息与存储在其他条目中的信息进行分类。前面提供了属性的实例。在各种实施方案中,封包发射器200中的打包缓冲器仲裁器250意识到封包接收器中的实现方式,并且在将FTI候选封包230-234插入链路封包260中时使用此认知。
使用以上实例,打包缓冲器仲裁器250意识到,用于避免数据冲突的封包接收器所接收到的链路封包之间的最小时钟周期(或周期)数是一个周期。例如,在时钟周期1中,封包接收器可接收给定类型的两个控制FTI封包(例如,控制响应封包),并且将它们分配在给定类型的接收队列的两个条目(例如,条目0和1)中。在时钟周期2中,接收队列将对应于最近接收到的控制FTI封包的信息从两个条目(例如,条目0和1)转移到接收队列中的其他条目。例如,在一个实施方案中,存储在接收队列的条目中的信息出于仲裁目的而被分类。
在时钟周期2中,两个条目(例如,条目0和1)无法接收新信息。如果接收到给定类型的一个或多个新的控制FTI封包的新信息,则在两个条目(例如,条目0和1)中发生数据冲突。在时钟周期3中,两个条目(例如,条目0和1)再次可供用于接收新信息以进行分配。因此,在此实例中,对于给定类型的控制FTI封包,封包接收器需要用于避免给定类型的控制FTI封包的数据冲突的封包接收器所接收到的链路封包之间的最小一个时钟周期数。在各种实施方案中,用于避免在第一类型的控制FTI封包的封包接收器处的数据冲突的接收到的链路封包之间的最小时钟周期数与第二类型的控制FTI封包的最小时钟周期数不同。在各种实施方案中,打包缓冲器仲裁器250为诸如“类型1”至“类型N”等控制类型中的每一者的最小时钟周期数存储单独的值。
在一些实施方案中,打包缓冲器仲裁器250另外维持启用网络周期的第一计数,每个启用网络周期允许来自封包发射器200的下一个链路封包260使用织构链路。在一些实施方案中,打包缓冲器仲裁器250还维持插入链路封包260中的给定类型的FTI候选封包的数量的第二计数。因此,打包缓冲器仲裁器250为诸如“类型1”至“类型N”等控制类型中的每一者维持单独的第二计数。在各种实施方案中,打包缓冲器仲裁器250通过将三个操作数相加来确定给定类型的FTI封包的和。第一操作数是给定类型的第二计数。第二操作数是给定类型的存储的最小时钟周期数。并且第三操作数是对应于FTI候选封包的一,所述FTI候选封包将适合于扇区262-266的一个或多个连续扇区,其中所述连续扇区与给定边界对齐。在一个实施方案中,如果打包缓冲器仲裁器250确定和小于第一计数,则打包缓冲器仲裁器250将FTI候选封包插入链路封包260中并且递增第二计数。
现在参考图3,示出用于在计算系统中执行高效数据传送的方法300的一个实施方案。出于讨论的目的,以顺序的次序示出此实施方案中(以及图4至图5和图7中)的步骤。然而,应注意,在所描述方法的各种实施方案中,所描述元素中的一个或多个同时地执行,以与所示不同的次序执行,或者完全省略掉。还可根据需要执行其他另外的元素。本文所述的各种系统或设备中的任一者被配置来实现方法300。
接收封包以在链路上发送(框302)。在一个实例中,处理单元生成控制请求封包以发送到目的地。在另一实例中,存储器控制器生成控制响应封包以发送到请求处理单元。织构传输接口包括封包发射器,所述封包发射器接收控制封包。基于封包类型,将接收到的封包存储在多个队列中(框304)。如前所述,控制封包类型的实例包括请求类型、响应类型、探测类型以及令牌或信用类型。在其他实施方案中还包括封包类型的其他实例。
从每个队列中选择候选封包(框306)。在一些实施方案中,队列仲裁器基于一个或多个属性从队列中选择候选封包,所述一个或多个属性包括年龄、封包类型的优先级级别、封包的优先级级别、服务质量参数、源标识符、应用程序标识符或类型(诸如实时应用程序)、业务类型(诸如实时业务)的指示、带宽要求或时延容限要求等。
如果到接收器的链路可用并且链路封包是非空的(条件框308的“是”分支),则通过到接收器的可用链路发送打包的链路封包(框310)。在一些实施方案中,织构传输接口向封包发射器发送指定织构链路可供用于发送打包的链路封包的信号或其他指示。如果到接收器的链路不可用或链路封包为空(条件框308的“否”分支),则将一个或多个候选封包有条件地打包到链路封包中(框312)。
条件包括链路封包是否具有足够数据存储空间以用于接收给定候选封包。在一些实施方案中,还确定链路封包是否具有在给定候选封包的给定边界上对齐的足够可用数据存储空间。如果链路封包为满(条件框314的“是”分支),则开始等待到接收器的链路变得可用(框316)。然后,方法300的控制流程移动到框310。如果链路封包不为满(条件框314的“否”分支),则方法300的控制流程返回到条件框308,在所述条件框308中确定到接收器的链路是否可用以及链路封包是否为空。
现在转向图4,示出用于在计算系统中执行高效数据传送的方法400的一个实施方案。从多个队列接收候选封包,每个队列存储相应类型的封包(框402)。在一些实施方案中,队列仲裁器在每个时钟周期从队列中选择候选封包。在其他实施方案中,在先前选择的候选封包已经被插入链路封包中之后,队列仲裁器从队列中选择候选封包。在又其他实施方案中,在先前选择的候选封包已经被打包缓冲器仲裁器选择但由于链路封包中的不可用数据存储空间、与链路封包中的给定边界对齐的不可用数据存储空间或其他不满足的条件而未被插入链路封包中之后,队列仲裁器从队列中选择候选封包。
标识一组可用队列(框404)。在一些实施方案中,当给定队列存储一个或多个候选封包时,所述给定队列在所述一组可用队列中。在一个实施方案中,多个队列中的一个或多个对在链路封包在可用链路上发送之前从队列插入链路封包中的封包的数量具有相应限值。在一些实施方案中,所述限值被存储在配置和状态寄存器中。在各种实施方案中,寄存器是可编程的。从所述一组可用队列中选择具有最高优先级的一个队列(框410)。在一些实施方案中,优先级是基于一个或多个属性,所述一个或多个属性包括封包年龄、封包类型的优先级级别、服务质量参数、源标识符、应用程序标识符或类型(诸如实时应用程序)、业务类型的指示(诸如实时业务)、带宽要求或时延容限要求等。
如果所选择队列的候选封包满足插入条件(条件框412的“是”分支),则将候选封包插入链路封包中(框418)。如前所述,在一些实施方案中,确定链路封包是否具有在候选封包的给定边界上对齐的剩余可用数据存储空间。还通过以下方式确定将候选封包插入链路封包中是否会避免接收器处的数据冲突:考虑将候选封包插入链路封包中的速率与在接收器中的接收队列中产生可用数据存储空间的速率之间的不匹配。
如果所选择队列的候选封包不满足插入条件(条件框412的“否”分支),则通知所选择队列选择另一候选封包(框414)。在一个实施方案中,由下一个时钟周期中的所选择队列选择下一个候选封包。在一些实施方案中,降低所选择队列的优先级,直到将候选封包插入链路封包中或发送链路封包(框416)。在其他实施方案中,维持所选择队列的优先级。在又其他实施方案中,维持所选择队列的优先级,但是将所选择队列从所述一组可用队列中删除。然后,方法400的控制流程返回到框404,在所述框404中标识所述一组可用队列。在一些实施方案中,在一个时钟周期内多次重复迭代从框404到框416或框418的循环。
现在参考图5,示出用于在计算系统中执行高效数据传送的方法500的一个实施方案。从所选择队列接收候选封包(框502)。在一个实施方案中,用于打包链路封包的打包缓冲器仲裁器接收候选封包。如果在接收器处不存在用于所选择队列的候选封包的可用空间(条件框504的“否”分支),则从所述一组可用队列中删除所选择队列(框506)。
如果在接收器处存在用于所选择队列的候选封包的可用空间(条件框504的“是”分支),但是在链路封包中不存在用于所选择队列的候选封包的可用空间(条件框508的“否”分支),则从所述一组可用队列中删除所选择队列(框506)。如果在链路封包中存在用于所选择队列的候选封包的可用空间(条件框508的“是”分支),但是链路封包中的可用空间与给定边界不对齐(条件框510的“否”分支),则从所述一组可用队列中删除所选择队列(框506)。如果链路封包中的可用空间与给定边界对齐(条件框510的“是”分支),则将候选封包插入链路封包中(框512)。
参考图6,示出封包接收器600的一个实施方案的一般化框图。在所示的实施方案中,封包接收器600包括队列610-614,每个队列用于存储相应类型的封包。如图所示,封包接收器600从织构链路接收链路封包660。链路封包660具有足够数据存储空间以用于存储两个或更多个织构传输接口(FTI)封包。分布多路分配器逻辑650(或逻辑650)分析链路封包600中的扇区662-666,确定链路封包660中有多少FTI控制封包以及它们在链路封包660中的位置,并且将FTI控制封包发送到队列610-614以用于存储。
存储在队列610-614中的控制封包类型的实例包括请求类型、响应类型、探测类型以及令牌或信用类型。在其他实施方案中还包括封包类型的其他实例。如图所示,队列610存储“类型1”的封包,所述封包在一个实施方案中是控制请求类型。队列612存储“类型2”的封包,所述封包在一个实施方案中是控制响应类型。队列614存储“类型N”的封包,所述封包在一个实施方案中是控制令牌或信用类型。
如图所示,链路封包660被划分成扇区662-666。在一个实施方案中,每个扇区是32比特。扇区662-666的其他数据大小是可能的并且可加以考虑。在一个实施方案中,链路封包660包括八个扇区。在其他实施方案中,链路封包660包括另一数量的扇区。除了存储诸如控制FTI封包等数据之外,还存储其他元数据(未示出),诸如扇区662-666中的哪一个被分配以及控制FTI封包在何处开始的指示,因为控制FTI封包在一些实施方案中具有变化的数据大小。
在各种实施方案中,逻辑650包括组合逻辑和顺序元件的组合。逻辑650以硬件、软件或其组合来实现。如图所示,逻辑650从链路封包660中删除一个或多个控制FTI封包,并且将它们发送到队列610-614。在各种实施方案中,FTI候选封包630-634中的每一个具有不同数据大小640-644。在一些实施方案中,FTI候选封包630-634中的两个或更多个具有相同数据大小。在一个实施方案中,队列610-614中的一个或多个存储不同大小的FTI封包。因此,当逻辑650将诸如FTI封包630等FTI封包发送到队列610时,所述FTI封包具有与发送到相同队列的先前FTI封包不同的大小。在实例中,当队列610存储请求类型的封包时,队列610存储大小为128比特的未压缩请求封包,并且存储大小为64比特的已压缩请求封包。因此,队列610的某些条目存储数据大小不同于数据大小640的FTI候选封包。
在一个实施方案中,队列610-614中的每一个具有两个可用条目以分配接收到的封包。为了简化访问逻辑并且满足时序要求,在一些实施方案中,队列610-614中的两个相同条目可供用于分配接收到的封包,而不是在任何条目中分配FTI封包630-634。如图所示,顶部的两个条目用于接收FTI封包630-634中的一个或多个。在其他实施方案中,使用队列610-614内的另一数量的条目和其他位置。在一些实施方案中,有效字段611、613和615用于指示可用条目。在一个实施方案中,存储在有效字段611、613和615中的否定值指示可用条目,而存储在有效字段611、613和615中的断言值指示已分配条目。
在下一个时钟周期中,队列610-614中新分配的信息被重定位到其他条目。在一个实施方案中,信息被下移(或上移)两个条目。在另一实施方案中,信息被下移(或上移)单个条目。在又一实施方案中,基于属性将所述信息与存储在其他条目中的信息进行分类。前面提供了属性的实例。在各种实施方案中,(图2的)封包发射器200意识到封包接收器600中的实现方式,并且在将FTI候选封包插入链路封包中时使用此认知。
在一些实施方案中,逻辑650在边带连接上将封包类型中的每一者的令牌或信用652发送到封包发射器。在一些实施方案中,当发送存储的FTI封包以进行处理时,基于队列610-614中的条目的解除分配,队列610-614中的一个或多个的可用条目的数量增加超过默认值,诸如两个条目。在此类情况下,封包发射器将其存储的值更新为用于避免队列610-614中的数据冲突的封包接收器600所接收到的链路封包之间的最小周期数。
现在参考图7,示出用于在计算系统中执行高效数据传送的方法700的一个实施方案。存储第一计数,其中所述第一计数是用于避免存储给定类型的封包的接收队列中的数据冲突的接收器所接收到的链路封包之间的最小周期数(框702)。通过链路将包括一个或多个命令封包的链路封包发送到接收器(框704)。重置启用网络周期的第二计数,其中每个启用网络周期允许下一个链路封包使用所述链路(框706)。重置第三计数,其中所述第三计数是插入链路封包中的给定类型的候选封包的数量(框708)。
如果链路由织构中的网络启用(条件框710的“是”分支),则递增第二计数(框712)。如果存在满足插入条件的给定类型的候选封包(条件框714的“是”分支),则通过将第一计数、第三计数和对应于候选封包的一相加来确定和(框716)。如果和小于第二计数(条件框720的“是”分支),则将给定类型的候选包插入链路封包中(框722)。另外,递增第三计数(框724)。然后,方法700的控制流程移动到框726。类似地,如果不存在满足插入条件的给定类型的候选封包(条件框714的“否”分支),或者如果和不小于第二计数(条件框720的“否”分支),则方法700的控制流程移动到条件框726。
如果链路封包准备好被发送(条件框726的“是”分支),则方法700的控制流程返回到条件框704,在所述条件框704中通过链路将包括一个或多个命令封包的链路封包发送到接收器。在一些实施方案中,当织构传输接口发送信号或链路可用并且链路封包为非空的其他指示时,所述链路封包被认为是准备好的。如果链路封包尚未准备好被发送(条件框726的“否”分支),则方法700等待到下一个时钟周期(框728)。例如,如果织构传输接口没有发送信号或者链路可用或链路封包为空的其他指示,则所述链路封包尚未准备好被发送。然后,方法700的控制流程通过框“A”返回到条件框710,在所述条件框710处确定链路是否被织构中的网络启用。
在各种实施方案中,使用软件应用程序的程序指令来实现先前所述的方法和/或机制。程序指令以高级编程语言(诸如C)描述硬件的行为。替代地,使用硬件设计语言(HDL),诸如Verilog。程序指令存储在非暂时性计机算可读存储介质上。众多类型的存储介质可用。在使用期间,计算系统可访问存储介质,以将程序指令和附带数据提供给计算系统以执行程序。计算系统包括至少一个或多个存储器和执行程序指令的一个或多个处理器。
应强调,上述实施方案仅是实现方式的非限制性实例。一旦完全理解以上公开内容,众多变化和修改对于本领域技术人员而言将变得明显。所附权利要求意图被解释为涵盖所有此类变化和修改。
Claims (20)
1.一种设备,其包括:
多个队列,每个队列被配置来存储相应类型的封包;
多个队列仲裁器,每个队列仲裁器被配置来从所述多个队列中的相应队列中选择候选封包;
打包仲裁器,所述打包仲裁器被配置来:
从所述多个队列中标识一组可用队列;
响应于确定一个队列具有所述一组可用队列的最高优先级,从所述一组可用队列中选择第一队列;以及
响应于确定来自所述第一队列的所述候选封包满足插入条件,将来自所述第一队列的所述候选封包插入包括用于多个候选封包的空间的链路封包中。
2.如权利要求1所述的设备,其中响应于确定来自所选择队列的所述候选封包不满足插入条件,所述打包仲裁器进一步被配置来通知对应于所选择队列的队列仲裁器选择不同候选封包。
3.如权利要求1所述的设备,其中响应于确定来自所选择队列的所述候选封包不满足插入条件,所述打包仲裁器进一步被配置来降低所选择队列的优先级,直到检测到以下中的一者:
候选封包被插入所述链路封包中;以及
所述链路封包被发送。
4.如权利要求1所述的设备,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定所述链路封包中存在可用数据存储空间以存储来自所选择队列的所述候选封包。
5.如权利要求4所述的设备,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定所述链路封包中的所述可用数据存储空间与给定边界对齐。
6.如权利要求1所述的设备,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定接收器处存在可用数据存储空间以存储来自所选择队列的所述候选封包。
7.如权利要求1所述的设备,其中响应于确定通过链路将链路封包发送到接收器,所述打包仲裁器进一步被配置来重置以下中的每一者:
启用网络周期的第一计数,每个启用网络周期允许下一个链路封包使用所述链路;以及
插入链路封包中的给定类型的候选封包的数量的第二计数。
8.如权利要求7所述的设备,其中响应于确定所述链路可供用于通过所述链路将下一个链路封包发送到所述接收器,所述打包仲裁器进一步被配置来递增所述第一计数。
9.如权利要求8所述的设备,其中响应于确定存在满足插入所述下一个链路封包中的条件的所述给定类型的候选封包,所述打包仲裁器进一步被配置来通过将以下项相加来确定和:
所述第二计数,
对应于所述候选封包的一,以及
用于避免存储所述给定类型的封包的接收队列中的数据冲突的所述接收器所接收到的链路封包之间的最小周期数。
10.如权利要求9所述的设备,其中响应于确定所述和小于所述第一计数,所述打包仲裁器进一步被配置来:
将所述给定类型的所述候选封包插入所述下一个链路封包中;以及
递增所述第二计数。
11.如权利要求2所述的设备,其中所述一组可用队列包括一个或多个队列,所述一个或多个队列:
存储至少一个有效封包;并且
尚未被选择连续给定次数。
12.一种方法,其包括:
将封包存储在多个队列中,每个队列被配置来存储相应类型的封包;
通过多个队列仲裁器从所述多个队列中的每一个中选择候选封包;
通过控制逻辑从所述多个队列中标识一组可用队列;
响应于通过所述控制逻辑确定一个队列具有所述一组可用队列的最高优先级,通过所述控制逻辑从所述一组可用队列中选择所述队列;以及
响应于确定来自所选择队列的所述候选封包满足插入条件,通过所述控制逻辑将来自所选择队列的所述候选封包插入包括用于多个候选封包的空间的链路封包中。
13.如权利要求12所述的方法,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定接收器处存在可用数据存储空间以存储来自所选择队列的所述候选封包。
14.如权利要求12所述的方法,其中响应于确定通过链路将链路封包发送到接收器,所述方法还包括重置以下中的每一者:
启用网络周期的第一计数,每个启用网络周期允许下一个链路封包使用所述链路;以及
插入链路封包中的给定类型的候选封包的数量的第二计数。
15.如权利要求14所述的方法,其中响应于确定所述链路可供用于通过所述链路将下一个链路封包发送到所述接收器,所述方法还包括:递增所述第一计数。
16.如权利要求15所述的方法,其中响应于确定存在满足插入所述下一个链路封包中的条件的所述给定类型的候选封包,所述方法还包括:通过将以下项相加来确定和:
所述第二计数,
对应于所述候选封包的一,以及
用于避免存储所述给定类型的封包的接收队列中的数据冲突的所述接收器所接收到的链路封包之间的最小周期数。
17.如权利要求16所述的方法,其中响应于确定所述和小于所述第一计数,所述方法还包括:
将所述给定类型的所述候选封包插入所述下一个链路封包中;以及
递增所述第二计数。
18.一种存储程序指令的非暂时性计算机可读存储介质,其中所述程序指令能由处理器执行以:
将封包存储在多个队列中,每个队列被配置来存储相应类型的封包;
从所述多个队列中的每一个中选择候选封包;
从所述多个队列中标识一组可用队列;
响应于确定一个队列具有所述一组可用队列的最高优先级,从所述一组可用队列中选择所述队列;以及
响应于确定来自所选择队列的所述候选封包满足插入条件,将来自所选择队列的所述候选封包插入包括用于多个候选封包的空间的链路封包中。
19.如权利要求18所述的处理节点,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定所述链路封包中存在可用数据存储空间以存储来自所选择队列的所述候选封包。
20.如权利要求18所述的处理节点,其中确定来自所选择队列的所述候选封包满足插入条件包括:确定接收器处存在可用数据存储空间以存储来自所选择队列的所述候选封包。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/105,367 US20200059437A1 (en) | 2018-08-20 | 2018-08-20 | Link layer data packing and packet flow control scheme |
US16/105,367 | 2018-08-20 | ||
PCT/US2019/039276 WO2020040873A1 (en) | 2018-08-20 | 2019-06-26 | Link layer data packing and packet flow control scheme |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112585593A true CN112585593A (zh) | 2021-03-30 |
Family
ID=67297339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980054677.4A Pending CN112585593A (zh) | 2018-08-20 | 2019-06-26 | 链路层数据打包和封包流控制方案 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20200059437A1 (zh) |
EP (1) | EP3841484B1 (zh) |
JP (1) | JP7161032B2 (zh) |
KR (1) | KR102584507B1 (zh) |
CN (1) | CN112585593A (zh) |
WO (1) | WO2020040873A1 (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020097733A1 (en) * | 2001-01-24 | 2002-07-25 | Kanta Yamamoto | Packet transmitting apparatus |
US20040163084A1 (en) * | 2001-07-05 | 2004-08-19 | Srinivas Devadas | Method and apparatus for allocating link bandwidth |
CN1904868A (zh) * | 2005-07-11 | 2007-01-31 | 商辉达股份有限公司 | 用于包化总线的组合包 |
CN101681277A (zh) * | 2006-12-13 | 2010-03-24 | 先进微装置公司 | 用以减缓crc负担之命令封包包装 |
CN102203752A (zh) * | 2008-07-29 | 2011-09-28 | Vl有限公司 | 具有多个队列之间的仲裁的数据处理电路 |
US20120163396A1 (en) * | 2010-12-22 | 2012-06-28 | Brocade Communications Systems, Inc. | Queue speed-up by using multiple linked lists |
US20160233980A1 (en) * | 2015-02-11 | 2016-08-11 | Broadcom Corporation | Codeword builder for communication systems |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6721334B1 (en) * | 1999-02-18 | 2004-04-13 | 3Com Corporation | Method and apparatus for packet aggregation in packet-based network |
JP2001197067A (ja) | 2000-01-06 | 2001-07-19 | Nippon Telegr & Teleph Corp <Ntt> | データ連結転送方法及びシステム、並びにデータ連結転送プログラムを記録した記録媒体 |
US7757033B1 (en) | 2004-02-13 | 2010-07-13 | Habanero Holdings, Inc. | Data exchanges among SMP physical partitions and I/O interfaces enterprise servers |
ATE439721T1 (de) | 2004-11-11 | 2009-08-15 | Koninkl Philips Electronics Nv | Verfahren für warteschlangen und zum zusammensetzen von paketen auf prioritätsbasis |
US8019910B2 (en) * | 2007-07-31 | 2011-09-13 | Hewlett-Packard Development Company, L.P. | Transaction flow control in PCI express fabric |
GB2458952B (en) * | 2008-04-04 | 2012-06-13 | Micron Technology Inc | Queue processing method |
JP2010027032A (ja) | 2008-06-17 | 2010-02-04 | Nec Electronics Corp | Fifo装置及びfifoバッファへのデータ格納方法 |
US8665724B2 (en) * | 2009-06-12 | 2014-03-04 | Cygnus Broadband, Inc. | Systems and methods for prioritizing and scheduling packets in a communication network |
JP6387711B2 (ja) * | 2014-07-04 | 2018-09-12 | 株式会社ソシオネクスト | データ転送装置及びデータ転送方法 |
JP7000988B2 (ja) * | 2018-05-21 | 2022-01-19 | 富士通株式会社 | パケット転送装置及びパケット転送方法 |
-
2018
- 2018-08-20 US US16/105,367 patent/US20200059437A1/en active Pending
-
2019
- 2019-06-26 CN CN201980054677.4A patent/CN112585593A/zh active Pending
- 2019-06-26 EP EP19740191.2A patent/EP3841484B1/en active Active
- 2019-06-26 JP JP2021509755A patent/JP7161032B2/ja active Active
- 2019-06-26 WO PCT/US2019/039276 patent/WO2020040873A1/en unknown
- 2019-06-26 KR KR1020217007733A patent/KR102584507B1/ko active IP Right Grant
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020097733A1 (en) * | 2001-01-24 | 2002-07-25 | Kanta Yamamoto | Packet transmitting apparatus |
US20040163084A1 (en) * | 2001-07-05 | 2004-08-19 | Srinivas Devadas | Method and apparatus for allocating link bandwidth |
CN1904868A (zh) * | 2005-07-11 | 2007-01-31 | 商辉达股份有限公司 | 用于包化总线的组合包 |
CN101681277A (zh) * | 2006-12-13 | 2010-03-24 | 先进微装置公司 | 用以减缓crc负担之命令封包包装 |
CN102203752A (zh) * | 2008-07-29 | 2011-09-28 | Vl有限公司 | 具有多个队列之间的仲裁的数据处理电路 |
US20120163396A1 (en) * | 2010-12-22 | 2012-06-28 | Brocade Communications Systems, Inc. | Queue speed-up by using multiple linked lists |
US20160233980A1 (en) * | 2015-02-11 | 2016-08-11 | Broadcom Corporation | Codeword builder for communication systems |
Also Published As
Publication number | Publication date |
---|---|
US20200059437A1 (en) | 2020-02-20 |
EP3841484A1 (en) | 2021-06-30 |
EP3841484B1 (en) | 2022-10-19 |
WO2020040873A1 (en) | 2020-02-27 |
JP7161032B2 (ja) | 2022-10-25 |
KR102584507B1 (ko) | 2023-10-04 |
JP2021534684A (ja) | 2021-12-09 |
KR20210040447A (ko) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10062422B2 (en) | Various methods and apparatus for configurable mapping of address regions onto one or more aggregate targets | |
JP7108135B2 (ja) | 並び替えの間のキャッシュ一貫性を維持する方法 | |
JP2022516739A (ja) | 再構成可能データ・プロセッサの仮想化 | |
CN111742305A (zh) | 调度具有不统一等待时间的存储器请求 | |
EP3732578B1 (en) | Supporting responses for memory types with non-uniform latencies on same channel | |
US20220091980A1 (en) | Memory access response merging in a memory hierarchy | |
KR102456086B1 (ko) | 네트워크 스위치에서의 큐 | |
US11994996B2 (en) | Transmission of address translation type packets | |
US20220414028A1 (en) | Network interface device | |
KR20220103931A (ko) | 메모리와 분산된 계산 어레이 간의 데이터 전송 | |
US10540304B2 (en) | Power-oriented bus encoding for data transmission | |
US20120303848A1 (en) | System and method for allocating transaction id in a system with a plurality of processing modules | |
US10684965B2 (en) | Method to reduce write responses to improve bandwidth and efficiency | |
EP3841484B1 (en) | Link layer data packing and packet flow control scheme | |
CN114830102A (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 |