CN120675950A - 数据处理方法和装置、电子设备以及存储介质 - Google Patents
数据处理方法和装置、电子设备以及存储介质Info
- Publication number
- CN120675950A CN120675950A CN202410310864.7A CN202410310864A CN120675950A CN 120675950 A CN120675950 A CN 120675950A CN 202410310864 A CN202410310864 A CN 202410310864A CN 120675950 A CN120675950 A CN 120675950A
- Authority
- CN
- China
- Prior art keywords
- request
- buffer
- receiving
- packet
- response
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/10—Packet switching elements characterised by the switching fabric construction
- H04L49/103—Packet switching elements characterised by the switching fabric construction using a shared central buffer; using a shared memory
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开的实施例提供了数据方法和装置、电子设备和存储介质。该数据处理方法包括:响应于收到第一请求数据包,确定接收代理节点中用于接收第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中存储的至少一个请求数据包。该方法通过丢弃接收代理节点的接收或存储请求的缓冲区中的至少一个请求数据包并重新向接收代理节点发送该被丢弃的请求数据包,能够保证在接收代理节点的接收或存储请求的缓冲区中至少有一个可用缓冲单元数量,从而防止互连片上网络拥塞或锁死,改善了互连片上网络的性能。
Description
技术领域
本公开涉及一种数据处理方法、数据处理装置、电子设备以及非暂时性存储介质。
背景技术
在计算机网络以及片上网络中,由于网络中的数据流量超出了网络设备(如路由器、交换机等)所能处理的能力,可能会发生网络拥塞或锁死,从而导致网络性能下降、数据传输延迟增加甚至数据丢失的现象。网络拥塞可能会对网络中的数据传输和通信产生负面影响,降低网络的效率和可靠性,导致吞吐率的下降和传输时延的上升。然而,吞吐率需求越高的应用场景越容易出现网络拥塞或锁死,如何防止网络发生拥塞或锁死是计算机网络以及片上网络中至关重要的技术。
发明内容
本公开的至少一个实施例提供了一种数据处理方法,所述数据处理方法包括:响应于收到第一请求数据包,确定接收代理节点中用于接收所述第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包。
本公开的至少一个实施例还提供了一种数据处理装置,所述数据处理装置包括请求代理节点和接收代理节点,所述请求代理节点配置为发起第一请求数据包,所述接收代理节点配置为响应于收到所述第一请求数据包,确定用于接收所述第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包。
本公开的至少一个实施例还提供了一种电子设备,所述电子设备包括存储器和处理器,所述存储器配置为存储计算机可执行指令;以及所述处理器配置为执行所述计算机可执行指令,其中,所述计算机可执行指令被所述处理器执行时实现如上任一实施例所述的方法。
本公开的至少一个实施例还提供了一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由处理器执行时,实现如上任一实施例所述的方法。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本公开的一些实施例,而非对本公开的限制。
图1示出了一种包括片上网络(NOC)的片上系统(SOC)的示意图。
图2示出了本公开至少一实施例提供的一种数据处理方法的流程示意图。
图3示出了本公开至少一实施例提供的一种请求代理节点的工作原理示意图。
图4示出了本公开至少一实施例提供的一种接收代理节点的工作原理示意图。
图5示出了本公开至少一实施例提供的一种数据处理装置的示意图。
图6示出了本公开至少一实施例提供的一种电子设备的示意图。
图7示出了本公开至少一实施例提供的一种非暂时性存储介质的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例的附图,对本公开实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本公开的一部分实施例,而不是全部的实施例。基于所描述的本公开的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其它元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。“上”、“下”、“左”、“右”等仅用于表示相对位置关系,当被描述对象的绝对位置改变后,则该相对位置关系也可能相应地改变。
为了保持对本公开实施例的以下说明清楚且简明,本公开省略了部分已知功能和已知部件的详细说明。
片上系统(SoC)包括处理器核心、内存、输入/输出接口、控制器和其他相关的功能模块。片上网络(NoC,Network-on-Chip)是片上系统内部的一个重要组成部分,是在芯片上实现的网络结构,用于连接芯片内的各种功能模块和处理单元。片上网络通常用于在芯片内部进行数据传输和通信,以实现高效的数据交换和通信。片上网络的设计和实现对于片上系统的性能和效率具有重要影响,因为它直接影响到各个功能模块之间的通信速度和数据传输效率。
随着超大规模集成电路技术的快速发展,处理器芯片的规模也不断增加。单个芯片内部集成了多个处理器核,片上网络被用来替代总线在处理器核之间提供数据传输服务,因此片上网络具有重要的作用。由于片上的资源非常有限,同时大量的数据传输往往具有局部性,在实际应用场景中容易出现片上网络负载不均衡的情况,这会使得网络发生拥塞,甚至出现锁死。
基于一致性集线器接口(CHI,Coherent Hub Interface)的一致性集线器接口互连在芯片设计中得到广泛应用,CHI互连提供了一套全面的分层规范,可用于构建不同规模系统(例如片上系统),系统中包括利用可扩展的一致性接口和片上互连进行通信的多个组件。例如,ARM的一致性网状网络(CMN,Coherent Mesh Network)采用了CHI架构规范,CMN基于片上网络中传输的基本数据单位(例如,流量控制单元或数据包单元(flit))进行通信,具有四种类型的通道(请求通道、响应通道、侦听(Snoop)通道和数据通道),CMN的流量控制采用协议层重试机制,以实现带宽和资源的分配。此外,CMN还整合了端到端的服务质量(QoS)功能。当从属节点没有足够的资源用于接收请求时,提供了一种协议重试机制,用于指示资源的可用性,以避免请求通道的阻塞。从属节点可以负责确定和记录处理请求所需的协议信用类型。在网络互连中,另一种传统方案是采用不同的路由方案来最小化网络拥塞。尽管这些路由算法提供了替代方案,但它们实现起来相对复杂,无法保证无死锁,并且不能提供将高优先级请求数据包传送到目的地的路径。
因此,发明人注意到,需要一种避免片上网络的请求通道的阻塞,保证片上网络无死锁,并且提供将高优先级请求数据包优先快速传送到目的地的路径的技术。
本公开至少一个实施例提供一种数据处理方法。例如,本公开提供的一种数据处理方法包括:响应于收到第一请求数据包,确定接收代理节点中用于接收第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中存储的至少一个请求数据包。
在本公开提供的上述数据处理方法中,提供了一种内部重试机制,该机制通过丢弃接收代理节点的接收或存储请求的缓冲区中的至少一个请求数据包并针对丢弃的请求数据包向请求代理节点生成内部重试响应,请求代理节点检测到内部重试响应以后重新向接收代理节点发送该被丢弃的请求数据包,能够保证在接收代理节点的接收或存储请求的缓冲区中至少有一个可用缓冲单元数量(或可用信用),从而防止互连片上网络拥塞或锁死,还能够保证即使在拥塞场景中也始终可以允许将高优先级请求数据包快速传送到目的地的路径。
本公开至少一个实施例还提供一种数据处理装置,该数据处理装置包括请求代理节点和接收代理节点。请求代理节点配置为发起第一请求数据包,接收代理节点配置为:响应于收到第一请求数据包,确定用于接收第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中存储的至少一个请求数据包。
本公开上述实施例的数据处理装置的技术效果与上述数据处理方法的技术效果相同,因此不再赘述。
下面将结合具体示例对本公开的各个实施例进行说明。
图1示出了一种包括片上网络(NOC)的片上系统(SOC)的示意图。如图1中所示的SOC中,主设备103通过NOC与从设备104进行通信,NOC包括请求代理节点101、互连结构、接收代理节点102和一致性节点(HN)105。互连结构包括多个路由器106以及连接在多个路由器106之间以用于实现各个路由器之间的通信的连接线,多个路由器106之间也可以通过无线网络的方式进行通信。
需要说明的是,虽然本公开以图1为SOC为例进行说明,但这仅是为了方便清楚的说明本公开的技术。例如,图1实际上可以是更大型的计算机系统,本公开对于图1适用的范围不作具体限制,只要能够应用本公开的技术思想的对象均在本公开要保护的范围内。
例如,主设备103可以称为请求节点(RN,Request Node),主设备103可以是不同的主机或处理器(或核心)。请求代理节点101也可以称为发起代理(IA,Initiator Agent),请求代理节点101可以充当主设备103和互连结构之间的通信桥梁,可以接收来自主设备103的请求并且响应该请求。例如,请求代理节点101可以负责处理通信请求、路由调度和数据传输等任务,以确保数据能够有效地在网络中传输。路由器106可以用于连接NOC上的各个组件并且在各个组件之间提供路由功能,例如,路由器106可以用作请求代理节点101、接收代理节点102和一致性节点105之间的通信桥梁,并且在请求代理节点101、接收代理节点102和一致性节点105之间提供通信路由功能。
例如,一致性节点105也可以称为主节点(HN,Home Node),一致性节点105可以负责维护系统(例如片上系统)中的高速缓存的一致性,一致性节点105在从请求代理节点101接收请求数据包(或flit)时可以充当接收代理节点,在从接收代理节点102接收请求数据包时可以充当请求代理节点。一致性节点105可以是指在分布式系统或多处理器(多核)系统中负责维护数据一致性的节点,以确保多个处理器或存储单元之间的数据访问一致性,以避免数据不一致性导致的问题。一致性节点105可以处理缓存一致性协议、内存访问请求和数据更新等任务,以确保系统中的数据一致性。
接收代理节点102也可以称为目标代理(TA,Target Agent),接收代理节点102可以充当互连结构和从设备104之间的通信桥梁,可以接收来自一致性节点105和请求代理节点101的请求并且响应该请求。例如,接收代理节点102在片上网络中可以用于接收和处理来自请求代理节点101通信请求的作用,负责接收数据、进行处理和响应,与请求代理节点101进行协调,以确保数据能够有效地在网络中传输和处理。从设备104也可以称为接收节点(SN,Subordinate Node),例如,从设备104可以是存储器(例如,内存、缓存等)或设备(例如,各种通信设备)。
例如,接收代理节点102和请求代理节点101之间通过互连结构进行通信,请求代理节点101位于互连结构和发起请求数据包的主设备103之间并且用于向接收代理节点发送请求数据包,接收代理节点102位于互连结构和接收请求数据包的从设备104之间并且用于从互连结构接收来自主设备103的请求数据包。
需要说明的是,图1中示出的NOC的网状结构仅是示例性的,NOC的结构也可以是其他各种不同的类型,具体取决于特定的应用和设计需求。例如,NOC还可以包括但不限于节点按照树状层次结构进行连接的树状结构、节点之间的连接和路由可以根据通信负载和系统状态进行动态调整的自适应结构、设计者创建自定义的自定义结构等。图1中示出的SOC中的各种组件(例如,主设备103、从设备104、请求代理节点101、互连结构、接收代理节点102、一致性节点105等)的数量是可以根据实际需要进行调整的。虽然本公开前面大体将图1作为SOC进行介绍,但本公开的技术不限于SOC,图1中示出的示意图也可以是包括多个主机的分布式系统。
图2示出了本公开至少一实施例提供的一种数据处理方法的流程示意图。如图2所示,在本公开的一些实施例中,数据处理方法包括以下步骤S101-S102。
步骤S101,响应于收到第一请求数据包,确定接收代理节点中用于接收第一请求数据包的接收请求缓冲区中的可用缓冲单元数量。
步骤S102,响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中存储的至少一个请求数据包。
图3示出了本公开至少一实施例提供的一种请求代理节点的工作原理示意图。图4示出了本公开至少一实施例提供的一种接收代理节点的工作原理示意图。
如图3所示的请求代理节点可以为图1中示出的请求代理节点101或一致性节点105,如图4所示的接收代理节点可以为图1中示出的接收代理节点102或一致性节点105。例如,一致性节点105可以包括图3中示出的请求代理节点和图4中示出的接收代理节点二者。例如,一致性节点105可以用其中包括的请求代理节点功能模块实现请求代理节点的功能,并且用其中包括的接收代理节点功能模块实现接收代理节点的功能。
当某个核心或处理单元需要进行通信或数据传输时,该某个核心或处理单元会向请求代理节点发送请求(例如,请求数据包或总线传输请求(ftr flit,Fabric TransmitRequest flit))。例如,该请求可以包括数据源地址、目标节点的地址、数据类型、传输方式等信息。例如,如图3中所示,当请求代理节点从主设备接收到请求数据包后,可以将该请求数据包存储在缓存305中,并随后将该请求数据包发送给如图4中的接收代理节点进行处理。例如,请求代理节点还可以在其请求表304中对收到的请求数据包进行备份,直到收到来自接收代理节点返回的对请求数据包的响应指示可以对该备份数据进行释放后才能该备份数据清除。例如,当请求代理节点将一个请求数据包发送给接收代理节点进行处理后,如果收到来自接收代理节点对该请求数据包已经被收到并处理完成的响应(例如,图3中的frp flit),则请求代理节点可以将请求表304中备份的与该请求数据包对应的数据清除或释放。
例如,当请求代理节点收到来自接收代理节点对该请求数据包的响应(例如,图3中的frp flit)后,可以将该响应数据存储在缓存301中,之后再通过响应解码器302对该响应进行解码,以获得该响应中的数据信息。例如,请求代理节点可以通过向主设备返回响应flit(例如图3中的常规响应flit),以向主设备反馈对该请求数据包的处理情况。
如图4所示的接收代理节点可以为图1中示出的接收代理节点102或一致性节点105。例如,响应于从请求代理节点收到请求数据包(例如,图4中的frr flit),接收代理节点确定接收代理节点中用于接收请求数据包的接收请求缓冲区中的可用缓冲单元数量。例如,可用缓冲单元可以是用于接收或存储从请求代理节点收到请求数据包的缓冲区中的可使用空间的大小(例如,指示能存储flit的数量)。例如,接收请求缓冲区包括第一接收请求缓冲区(例如缓存401)和第二接收请求缓冲区(例如缓存402),第一接收请求缓冲区用于接收请求数据包并将接收到的请求数据包中的至少部分请求数据包缓存在第二接收请求缓冲区中。需要说明的是,虽然图4中具体示出了接收请求缓冲区包括缓存401和缓存402两个缓存的情况,但本公开对此不作限制,接收请求缓冲区也可以只包括一个缓存或者两个以上的缓存,接收请求缓冲区包括的缓存的数量可以根据实际需要进行设置。
例如,第一接收请求缓冲区的存储容量可以较小,例如可以存储两个或三个flit,本公开对第一接收请求缓冲区的存储容量不作任何限制,第一接收请求缓冲区的存储容量也可以是能够存储除两个或三个flit之外任何数量的flit的大小。例如,第一接收请求缓冲区的存储容量可以小于第二接收请求缓冲区的存储容量,以保证在第一接收请求缓冲区中读取缓存的请求数据包的速度,并且较大的第二接收请求缓冲区的存储容量也可以实现接收或存储来自请求代理节点的更多请求数据包或flit,从而减轻或防止NOC中的互连反压。
例如,响应于可用缓冲单元数量小于或等于第一阈值,接收代理节点丢弃接收请求缓冲区中存储的至少一个请求数据包。例如,下面以第一阈值为1进行说明,但本公开不限于此,第一阈值也可以为其他任何合适的大小,例如2、3或者更大或更小。
例如,响应于第一接收请求缓冲区的可用缓冲单元数量小于或等于第一阈值且第二接收请求缓冲区中不存在空闲空间,丢弃第二接收请求缓冲区中存储的至少一个请求数据包。
例如,响应于可用缓冲单元数量小于或等于1,接收代理节点丢弃接收请求缓冲区中存储的至少一个请求数据包。例如,当接收代理节点收到请求代理节点发来的请求数据包时,如果接收代理节点确定缓存401中的可用缓冲单元数量或可存储数据包的个数为1(例如,个数为1时表示缓存401为将满状态,但是,本公开对缓存401中的可用缓冲单元数量或可存储数据包的个数为将满状态时的数值不作特别限制,该数值也可以为1之外的其他任何合适的数值,例如,2或3或者更大),并且缓存402中已经没有可用缓冲单元数量或可存储数据包的空间(此时表示缓存402为满状态或已满状态),则接收代理节点丢弃缓存402中存储的至少一个请求数据包。例如,接收代理节点通过内部重试生成单元403向缓存402发送内部重试信号,以通知缓存402放弃至少一个请求数据包。例如,接收代理节点将一个或多个数据包从缓存402发送到内部重试生成单元403,以使得缓存402具有空出的可用缓冲单元以接收或存储来自缓存401的请求数据包,从而保证缓存401常态化保持至少一个可用缓冲单元。
例如,在缓存402通过常规请求flit处理路径将请求数据包发送到目的地逻辑进行处理后,该目的地逻辑如果处于已满状态(即没有空闲的逻辑单元来接收和处理来自缓存402的请求数据包),此时,该目的地逻辑可以向内部重试生成单元403反馈一个OCN(outstanding)为满的状态。例如,当内部重试生成单元403判断目的地逻辑的OCN为满、缓存402为满并且缓存401为将满时,内部重试生成单元403向缓存402发送内部重试信号,以通知缓存402放弃至少一个请求数据包。
例如,在缓存401常态化保持至少一个可用缓冲单元的情况下,接收代理节点可以随时接收来自请求代理节点的任何请求数据包,并在缓存401处于将满状态的情况下,将接收到或者已经缓存的请求数据包缓存到缓存402中。例如,如果缓存402需要接收来自缓存401的请求数据包并且缓存402的状态为满,则接收代理节点可以丢弃缓存402中的至少一个请求数据包,以为需要接收或缓存的来自缓存401的请求数据包挪出缓存空间。
例如,缓存402可以将缓存的请求数据包发送到响应的目的地进行处理。例如,如果4中所示,缓存402可以将缓存的请求数据包通过常规请求flit处理路径发送到目的地或相应的逻辑进行处理。
例如,由于缓存401可以常态化保持至少一个可用缓冲单元,因此接收代理节点可以随时接收来自请求代理节点的请求数据包。例如,如图4中所示,在缓存401接收到来自请求代理节点的具有高优先级的请求数据包时,可以不用将该高优先级的请求数据包缓存到缓存402中,而是通过高优先级flit路径将该高优先级的请求数据包发送到目的地进行处理。例如,缓存401的存储空间可以很小。例如,缓存401的存储空间或可用缓冲单元数量可以为2或3,但本公开的实施例不限于此,缓存401的存储空间或可用缓冲单元数量可以根据需要被设置为其他任何数值。这里,由于缓存401的存储空间很小,使得从缓存401中读取请求数据包(例如优先级高的请求数据包)的速度就很快,从而允许将高优先级请求数据包快速传送到目的地的路径进行处理。
例如,可用缓冲单元数量可以为缓存中的最小存储单元。例如,一个最小存储单元可以存储一个请求数据包或flit。例如,具有高优先级或关键的flit路径将始终是非阻塞的,从而可以保证高优先级或关键的flit永远不会被阻塞(即,一定可以被接收代理节点接收并发送到目的地进行处理)。例如,高优先级flit可以是与CSR(控制状态寄存器)的读/写操作相关的flit。需要说明的是,本公开不对高优先级作任何具体的限制,在实际情况下,可以根据不同的标准对一个请求数据包是否属于优先级请求数据包进行灵活设置。
例如,响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中最早存储的至少一个请求数据包。例如,响应于可用缓冲单元数量小于或等于第一阈值,丢弃缓存402中最早存储的至少一个请求数据包。例如,如果缓存402为FIFO(First In,FirstOut),当新数据进入缓存402时,该新数据被添加到队列的尾部,而当需要删除或丢弃数据时,总是从队列的头部开始删除或丢弃。例如,当需要丢弃接收请求缓冲区中存储的至少一个请求数据包时,最早进入缓存402的数据包最先被丢弃。需要说明的是,本公开对缓存402的类型不作任何限制,只要其具有存储功能即可。例如,当需要丢弃接收请求缓冲区中存储的至少一个请求数据包时,丢弃的请求数据包的可以是缓存402中的任何位置的数据包,也可以以任何预定的顺序或优先级对缓存402中的数据进行丢弃,本公开对此不作任何具体限制,只要缓存402能够具有丢弃其中存储的数据包的功能即可。
例如,响应于接收请求缓冲区中存储的至少一个请求数据包被丢弃,基于丢弃的请求数据包生成重传请求数据包并且将重传请求数据包发送给请求代理节点。例如,当内部重试生成单元403收到缓存402丢弃的至少一个请求数据包后,将该丢弃的至少一个请求数据包中的每个请求数据包中的源地址和目标地址进行交换,以生成重传请求数据包。例如,内部重试生成单元403根据交换后的目标地址将生成的重传请求数据包发送给请求代理节点。例如,内部重试生成单元403根据交换后的目标地址先将生成的重传请求数据包缓存到缓存404中,接收代理节点随后再通过缓存404将该重传请求数据包发送给请求代理节点。
例如,在接收代理节点的待发送至请求代理节点的数据包括重传请求数据包和响应数据包的情况下,相对于响应数据包,优先将重传请求数据包发送给请求代理节点,其中响应数据包为接收代理节点对收到的请求数据包的响应数据。例如,在缓存404中缓存的待发送至请求代理节点的数据包括重传请求数据包和响应数据包的情况下,相对于响应数据包,优先将重传请求数据包发送给请求代理节点。例如,响应数据包可以为接收代理节点对收到的请求数据包的响应数据。例如,响应数据包可以是接收代理节点向请求代理节点反馈的对请求数据的处理结果的响应数据包。例如,优先发送重传请求数据包可以保证被丢弃的请求包被快速地重传和处理,以最大程度地避免影响主设备的数据处理流程。
例如,当请求代理节点收到重传请求数据包后,基于重传请求数据包生成重试请求数据包并且将重试请求数据包发送给接收代理节点进行处理。例如,如图3所示,当请求代理节点从接收代理节点收到重传请求数据包(例如frp flit)后,先将其缓存在缓存301中,随后再发送到响应解码器302进行解码。例如,当响应解码器302确定请求数据包的数据类型是重传请求数据包时,将该重传请求数据包发送到请求重试单元303。
例如,请求重试单元303将该重传请求数据包中的源地址和目标地址进行交换,以生成重试请求数据包。例如,请求重试单元303收到重传请求数据包后,将重传请求数据包的源地址和目标地址进行交换,以生成重试请求数据包并且通知请求表304重新向接收代理节点发送与该重传请求数据包对应的请求数据包,以将该被接收代理节点丢弃的请求数据包发送到接收代理节点进行重新处理。或者,在另一些实施例中,接收代理节点可以基于被丢弃的请求数据包的标识信息(例如标识号)生成重传请求数据包,并将重传请求数据包发送给请求代理节点,请求代理节点接收重传请求数据包后,从存储的请求数据包中查找与重传请求数据包中的标识信息对应的请求数据包进行重发。
需要说明的是,虽然图3和图4中具体地说明了请求代理节点和接收代理节点中的不同单元或模块进行不同的操作,但是,该说明只是为了方便本领域技术人员理解本公开的技术思想。例如,在实际场景中,请求代理节点和接收代理节点各自实现的一个操作步骤可能实际需要更多的功能单元或模块配合完成,请求代理节点和接收代理节点各自实现的多个操作步骤可能实际是单个功能单元或模块完成,本公开对请求代理节点和接收代理节点的具体结构和其中的哪个部分进行哪些操作不作任何限制,只要它们各自能够实现本公开中提供的各种方法步骤的技术思想即可。
例如,在请求代理节点的待发送至接收代理节点的数据包括重试请求数据包和其他请求数据包的情况下,相对于其他请求数据包,优先将重试请求数据包发送给接收代理节点,其中其他请求数据包包括从请求代理节点从主设备收到的请求数据包。例如,在请求代理节点中的请求表304将重试请求数据包发送到缓存305,再通过缓存305将该重试请求数据包发送到接收代理节点。例如,在缓存305中缓存的待发送至接收代理节点的数据包括重试请求数据包和其他请求数据包的情况下,相对于其他请求数据包,优先将重试请求数据包发送给接收代理节点。例如,其他请求数据包可以包括请求代理节点从主设备收到的请求数据包。例如,优先发送重试请求数据包可以保证被丢弃的请求包被快速地发送到接收代理节点进行处理,以最大程度地避免影响主设备的数据处理流程。
在本公开提供的上述数据处理方法中,提供了一种内部重试机制,该机制通过丢弃接收代理节点的接收或存储请求的缓冲区中的至少一个请求数据包并针对丢弃的请求数据包向请求代理节点生成内部重试响应,请求代理节点检测到内部重试响应以后重新向接收代理节点发送该被丢弃的请求数据包,能够保证在接收代理节点的接收或存储请求的缓冲区中至少有一个可用缓冲单元数量(或可用信用),从而防止互连片上网络拥塞或锁死,还能够保证即使在拥塞场景中也始终可以允许将高优先级请求数据包快速传送到目的地的路径。
图5示出了本公开至少一实施例提供的一种数据处理装置50的示意图。该数据处理装置50可以包括请求代理节点501和接收代理节点502。例如请求代理节点501可以配置为发起第一请求数据包。例如,接收代理节点502可以配置为响应于收到第一请求数据包,确定用于接收第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中存储的至少一个请求数据包。
例如,接收代理节点502可以配置为:响应于可用缓冲单元数量小于或等于第一阈值,丢弃接收请求缓冲区中最早存储的至少一个请求数据包。
例如,接收请求缓冲区可以包括第一接收请求缓冲区和第二接收请求缓冲区,第一接收请求缓冲区用于接收请求数据包并将接收到的请求数据包中的至少部分请求数据包缓存在第二接收请求缓冲区中。例如,接收代理节点502可以配置为:响应于第一接收请求缓冲区的可用缓冲单元数量小于或等于第一阈值且第二接收请求缓冲区中不存在空闲空间,丢弃第二接收请求缓冲区中存储的至少一个请求数据包。例如,第一阈值可以为1。
例如,接收代理节点502还配置为:响应于接收请求缓冲区中存储的至少一个请求数据包被丢弃,基于丢弃的请求数据包生成重传请求数据包并且将重传请求数据包发送给请求代理节点501。例如,请求代理节点501还可以配置为:当收到重传请求数据包后,基于重传请求数据包生成重试请求数据包并且将重试请求数据包发送给接收代理节点502进行处理。例如,接收代理节点502和请求代理节点501之间通过互连结构进行通信,请求代理节点501位于互连结构和发起请求数据包的主设备之间并且用于向接收代理节点502发送请求数据包,接收代理节点502位于互连结构和接收请求数据包的从设备之间并且用于从互连结构接收来自主设备的请求数据包。
例如,接收代理节点502可以配置为:在待发送至请求代理节点501的数据包括重传请求数据包和响应数据包的情况下,相对于响应数据包,优先将重传请求数据包发送给请求代理节点501。例如,响应数据包可以为接收代理节点502对收到的请求数据包的响应数据。
例如,请求代理节点501可以配置为:在待发送至接收代理节点502的数据包括重试请求数据包和其他请求数据包的情况下,相对于其他请求数据包,优先将重试请求数据包发送给接收代理节点502。例如,其他请求数据包可以包括请求代理节点501从主设备收到的请求数据包。
例如,接收代理节点502可以配置为:将丢弃的请求数据包中的源地址和目标地址进行交换,以生成重传请求数据包。
例如,请求代理节点501可以配置为:将重传请求数据包中的源地址和目标地址进行交换,以生成重试请求数据包。
需要说明的是,图5所示的数据处理装置50的组件和结构只是示例性的,而非限制性的,根据需要,该数据处理装置50还可以包括其他组件和结构。该数据处理装置50可以包括更多或更少的节点或单元,并且各个节点或单元之间的连接关系不受限制,可以根据实际需求而定。例如,数据处理装置50还可以包括请求节点和接收节点等。
在本公开提供的上述数据处理装置中,提供了一种内部重试机制,该机制通过丢弃接收代理节点的接收或存储请求的缓冲区中的至少一个请求数据包并针对丢弃的请求数据包向请求代理节点生成内部重试响应,请求代理节点检测到内部重试响应以后重新向接收代理节点发送该被丢弃的请求数据包,能够保证在接收代理节点的接收或存储请求的缓冲区中至少有一个可用缓冲单元数量(或可用信用),从而防止互连片上网络拥塞或锁死,还能够保证即使在拥塞场景中也始终可以允许将高优先级请求数据包快速传送到目的地的路径。
本公开至少一些实施例还提供了一种电子设备,该电子设备包括处理器和存储器。例如该存储器配置为存储计算机可执行指令。例如,该处理器配置为执行计算机可执行指令。例如,计算机可执行指令被处理器执行时实现本公开至少一实施例提供的数据处理方法。
图6示出了本公开至少一实施例提供的一种电子设备的示意图。
如图6所示,根据本公开实施例的电子设备600包括处理器601以及存储器602,处理器601和存储器602可以通过总线603进行互连。
处理器601可以根据存储在存储器602中的程序或代码执行各种动作和处理。具体地,处理器601可以是一种集成电路芯片,具有信号的处理能力。例如,上述处理器601可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本公开实施例中公开的各种方法和步骤。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X86架构、ARM架构、RISC-V架构等。
存储器602用于非暂时性存储计算机可执行指令,处理器601用于运行计算机可执行指令。当计算机可执行指令在被处理器601执行时实现本公开至少一实施例提供的数据处理方法。
例如,存储器602可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)、双倍数据速率同步动态随机存取存储器(DDRSDRAM)、增强型同步动态随机存取存储器(ESDRAM)、同步连接动态随机存取存储器(SLDRAM)和直接内存总线随机存取存储器(DRRAM)。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
在本公开提供的上述电子设备中,提供了一种内部重试机制,该机制通过丢弃接收代理节点的接收或存储请求的缓冲区中的至少一个请求数据包并针对丢弃的请求数据包向请求代理节点生成内部重试响应,请求代理节点检测到内部重试响应以后重新向接收代理节点发送该被丢弃的请求数据包,能够保证在接收代理节点的接收或存储请求的缓冲区中至少有一个可用缓冲单元数量(或可用信用),从而防止互连片上网络拥塞或锁死,还能够保证即使在拥塞场景中也始终可以允许将高优先级请求数据包快速传送到目的地的路径。
本公开的至少一个实施例还提供了一种非暂时性存储介质,非暂时性地存储计算机可执行指令。例如,当计算机可执行指令由处理器执行时,实现本公开至少一实施例提供的数据处理方法。
图7是本公开一些实施例提供的一种非暂时性存储介质的示意图。如图7所示,非暂时性存储介质700可以非暂时性地存储计算机可执行指令710,计算机可执行指令710在被计算机执行时实现本公开任一实施例提供的数据处理方法。
类似地,本公开实施例中的非暂时性存储介质可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。应注意,本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
上述非暂时性存储介质的技术效果与上述数据处理方法的技术效果相同,此处不再赘述。
需要说明的是,附图中的流程图和框图,图示了按照本公开的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
一般而言,本公开的各种示例实施例可以在硬件或专用电路、软件、固件、逻辑,或其任何组合中实施。某些方面可以在硬件中实施,而其它方面可以在可以由控制器、微处理器或其它计算设备执行的固件或软件中实施。当本公开的实施例的各方面被图示或描述为框图、流程图或使用某些其它图形表示时,将理解此处描述的方框、装置、系统、技术或方法可以作为非限制性的示例在硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备,或其某些组合中实施。
对于本公开,除了上述示例性描述之外,还有以下几点需要说明:
(1)本公开实施例的附图只涉及到与本公开实施例涉及到的结构,其它结构可参考通常设计。
(2)为了清晰起见,在用于描述本公开的实施例的附图中,层或结构的厚度和尺寸被放大。可以理解,当诸如层、膜、区域或基板之类的元件被称作位于另一元件“上”或“下”时,该元件可以“直接”位于另一元件“上”或“下”,或者可以存在中间元件。
(3)在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合以得到新的实施例。
以上所述仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,本公开的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种数据处理方法,包括:
响应于收到第一请求数据包,确定接收代理节点中用于接收所述第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及
响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包。
2.根据权利要求1所述的数据处理方法,其中,所述响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包,包括:
响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中最早存储的至少一个请求数据包。
3.根据权利要求1所述的数据处理方法,其中,所述接收请求缓冲区包括第一接收请求缓冲区和第二接收请求缓冲区,所述第一接收请求缓冲区用于接收所述第一请求数据包并将接收到的请求数据包中的至少部分请求数据包缓存在所述第二接收请求缓冲区中,所述响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包,包括:
响应于所述第一接收请求缓冲区的可用缓冲单元数量小于或等于第一阈值且所述第二接收请求缓冲区中不存在空闲空间,丢弃所述第二接收请求缓冲区中存储的至少一个请求数据包。
4.根据权利要求1所述的数据处理方法,其中,所述第一阈值为1。
5.根据权利要求1所述的数据处理方法,还包括:
响应于所述接收请求缓冲区中存储的至少一个请求数据包被丢弃,基于丢弃的请求数据包生成重传请求数据包并且将所述重传请求数据包发送给请求代理节点;
当所述请求代理节点收到所述重传请求数据包后,基于所述重传请求数据包生成重试请求数据包并且将所述重试请求数据包发送给所述接收代理节点进行处理,其中,所述接收代理节点和所述请求代理节点之间通过互连结构进行通信,所述请求代理节点位于所述互连结构和发起所述第一请求数据包的主设备之间并且用于向所述接收代理节点发送请求数据包,所述接收代理节点位于所述互连结构和接收所述第一请求数据包的从设备之间并且用于从所述互连结构接收来自所述主设备的请求数据包。
6.根据权利要求5所述的数据处理方法,其中,所述响应于所述接收请求缓冲区中存储的至少一个请求数据包被丢弃,基于丢弃的请求数据包生成重传请求数据包并且将所述重传请求数据包发送给请求代理节点,包括:
在所述接收代理节点的待发送至所述请求代理节点的数据包括重传请求数据包和响应数据包的情况下,相对于所述响应数据包,优先将所述重传请求数据包发送给所述请求代理节点,其中所述响应数据包为所述接收代理节点对收到的请求数据包的响应数据。
7.根据权利要求5所述的数据处理方法,其中,所述当所述请求代理节点收到所述重传请求数据包后,基于所述重传请求数据包生成重试请求数据包并且将所述重试请求数据包发送给所述接收代理节点进行处理,包括:
在所述请求代理节点的待发送至所述接收代理节点的数据包括重试请求数据包和其他请求数据包的情况下,相对于所述其他请求数据包,优先将所述重试请求数据包发送给所述接收代理节点,其中所述其他请求数据包包括所述请求代理节点从所述主设备收到的请求数据包。
8.根据权利要求5所述的数据处理方法,其中,所述基于丢弃的请求数据包生成重传请求数据包,包括:
将所述丢弃的请求数据包中的源地址和目标地址进行交换,以生成所述重传请求数据包。
9.根据权利要求5所述的数据处理方法,其中,所述基于所述重传请求数据包生成重试请求数据包,包括:
将所述重传请求数据包中的源地址和目标地址进行交换,以生成所述重试请求数据包。
10.一种数据处理装置,包括:
请求代理节点,配置为发起第一请求数据包;
接收代理节点,配置为响应于收到所述第一请求数据包,确定用于接收所述第一请求数据包的接收请求缓冲区中的可用缓冲单元数量;以及响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中存储的至少一个请求数据包。
11.根据权利要求10所述的数据处理装置,其中,所述接收代理节点配置为:响应于所述可用缓冲单元数量小于或等于第一阈值,丢弃所述接收请求缓冲区中最早存储的至少一个请求数据包。
12.根据权利要求10所述的数据处理装置,其中,所述接收请求缓冲区包括第一接收请求缓冲区和第二接收请求缓冲区,所述第一接收请求缓冲区用于接收所述第一请求数据包并将接收到的请求数据包中的至少部分请求数据包缓存在所述第二接收请求缓冲区中,并且
其中,所述接收代理节点配置为:响应于第一接收请求缓冲区的可用缓冲单元数量小于或等于第一阈值且第二接收请求缓冲区中不存在空闲空间,丢弃所述第二接收请求缓冲区中存储的至少一个请求数据包。
13.根据权利要求10所述的数据处理装置,其中,所述第一阈值为1。
14.一种电子设备,包括:
存储器,配置为存储计算机可执行指令;以及
处理器,配置为执行所述计算机可执行指令,
其中,所述计算机可执行指令被所述处理器执行时实现根据权利要求1-9中任一项所述的方法。
15.一种非暂时性存储介质,非暂时性地存储计算机可执行指令,其中,当所述计算机可执行指令由处理器执行时,实现根据权利要求1-9中任一项所述的方法。
Priority Applications (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410310864.7A CN120675950A (zh) | 2024-03-18 | 2024-03-18 | 数据处理方法和装置、电子设备以及存储介质 |
| PCT/CN2025/082960 WO2025195330A1 (zh) | 2024-03-18 | 2025-03-17 | 数据处理方法和装置、电子设备以及存储介质 |
| US19/081,851 US20250293993A1 (en) | 2024-03-18 | 2025-03-17 | Data processing method, electronic device, and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202410310864.7A CN120675950A (zh) | 2024-03-18 | 2024-03-18 | 数据处理方法和装置、电子设备以及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| CN120675950A true CN120675950A (zh) | 2025-09-19 |
Family
ID=97028289
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202410310864.7A Pending CN120675950A (zh) | 2024-03-18 | 2024-03-18 | 数据处理方法和装置、电子设备以及存储介质 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US20250293993A1 (zh) |
| CN (1) | CN120675950A (zh) |
| WO (1) | WO2025195330A1 (zh) |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| AU2002214659A1 (en) * | 2000-10-26 | 2002-05-06 | James C. Flood Jr. | Method and system for managing distributed content and related metadata |
| US20070286121A1 (en) * | 2006-06-12 | 2007-12-13 | Mikolaj Kolakowski | Systems and techniques for selective point-to-multipoint retransmission of multicast frames in a wireless network |
| US20130290514A1 (en) * | 2012-04-27 | 2013-10-31 | Alcatel-Lucent Usa Inc. | Dynamic interstitial transitions |
| CN105100874A (zh) * | 2015-06-29 | 2015-11-25 | 百度在线网络技术(北京)有限公司 | 一种用于多媒体播放的方法与设备 |
| US10540316B2 (en) * | 2017-12-28 | 2020-01-21 | Advanced Micro Devices, Inc. | Cancel and replay protocol scheme to improve ordered bandwidth |
| GR20180100189A (el) * | 2018-05-03 | 2020-01-22 | Arm Limited | Δικτυο επεξεργασιας δεδομενων με συμπυκνωση ροης για μεταφορα δεδομενων μεσω streaming |
| US11403253B2 (en) * | 2018-09-13 | 2022-08-02 | Microsoft Technology Licensing, Llc | Transport protocol and interface for efficient data transfer over RDMA fabric |
| WO2020061888A1 (en) * | 2018-09-27 | 2020-04-02 | Intel Corporation | Data stored or free space based fifo buffer |
| CN113300983B (zh) * | 2020-05-29 | 2022-05-31 | 阿里巴巴集团控股有限公司 | 流控方法、设备、系统及存储介质 |
| CN112235829A (zh) * | 2020-10-15 | 2021-01-15 | 展讯通信(上海)有限公司 | 数据传输方法、设备和存储介质 |
| WO2023249270A1 (en) * | 2022-06-20 | 2023-12-28 | Samsung Electronics Co., Ltd. | Method and system for determining quic streams in real-time applications |
-
2024
- 2024-03-18 CN CN202410310864.7A patent/CN120675950A/zh active Pending
-
2025
- 2025-03-17 US US19/081,851 patent/US20250293993A1/en active Pending
- 2025-03-17 WO PCT/CN2025/082960 patent/WO2025195330A1/zh active Pending
Also Published As
| Publication number | Publication date |
|---|---|
| WO2025195330A1 (zh) | 2025-09-25 |
| US20250293993A1 (en) | 2025-09-18 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR101016987B1 (ko) | 집적 회로 | |
| US9264371B2 (en) | Router, method for controlling the router, and computer program | |
| US6876663B2 (en) | Switching system | |
| US20080028090A1 (en) | System for managing messages transmitted in an on-chip interconnect network | |
| US20070133415A1 (en) | Method and apparatus for flow control initialization | |
| US11398980B2 (en) | Packet router with virtual channel hop buffer control | |
| JP2007328813A (ja) | ネットワーク通信におけるデッドロックを回避するためのコンピュータアーキテクチャ | |
| US7643477B2 (en) | Buffering data packets according to multiple flow control schemes | |
| US20050157717A1 (en) | Method and system for transmitting messages in an interconnection network | |
| CN109802889B (zh) | 一种信息传输方法及装置 | |
| US20250119384A1 (en) | Technologies to adjust link efficiency and buffer size | |
| US9537799B2 (en) | Phase-based packet prioritization | |
| US20240129235A1 (en) | Management of packet transmission and responses | |
| CN120675950A (zh) | 数据处理方法和装置、电子设备以及存储介质 | |
| US8854957B2 (en) | Packet retransmission control system, packet retransmission control method and retransmission control program | |
| CN106372013A (zh) | 远程内存访问方法、装置和系统 | |
| US11265268B1 (en) | High-throughput multi-node integrated circuits | |
| US9270582B2 (en) | Forward progress assurance and quality of service enhancement in a packet transferring system | |
| EP4550751A1 (en) | Management of packet transmission and responses | |
| CN117880197A (zh) | 汇聚以实现拥塞管理 | |
| CN120128538A (zh) | 一种网络拥塞控制方法、相关设备及存储介质 | |
| CN118842759A (zh) | 负载分担的方法、装置、终端及计算机可读存储介质 | |
| Flich | Flow Control | |
| JP2000090060A (ja) | マルチプロセッサコンピュ―タシステムにおけるオ―バラン保護用クレジットベ―ズドメッセ―ジプロトコル |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination |