CN106302259A - 片上网络中处理报文的方法和路由器 - Google Patents
片上网络中处理报文的方法和路由器 Download PDFInfo
- Publication number
- CN106302259A CN106302259A CN201510260236.3A CN201510260236A CN106302259A CN 106302259 A CN106302259 A CN 106302259A CN 201510260236 A CN201510260236 A CN 201510260236A CN 106302259 A CN106302259 A CN 106302259A
- Authority
- CN
- China
- Prior art keywords
- message
- address
- request message
- router
- request
- 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.)
- Granted
Links
Classifications
-
- 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/109—Integrated on microchip, e.g. switch-on-chip
-
- 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
- H04L45/742—Route cache; Operation thereof
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种片上网络中处理报文的方法和路由器,该方法包括:路由器接收第一处理器核发送的请求报文;该路由器确定缓存的响应报文的地址与该请求报文的地址的关系,该缓存的响应报文包括至少一个第二处理器核的响应报文,该第二处理器核与该路由器不直接相连;该路由器根据该关系,确定对该请求报文的处理方式。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
Description
技术领域
本发明实施例涉及计算机领域,并且更具体地,涉及片上网络中处理报文的方法和路由器。
背景技术
由于处理器厂商与内存厂商相互分离的产业格局,导致了内存技术与处理器技术发展的不同步。在过去的20多年中,处理器的性能以每年大约55%的速度快速提升,而内存性能的提升速度则只有每年10%左右。长期累积下来,不均衡的发展速度造成了当前内存的存取速度严重滞后于处理器的计算速度,内存瓶颈导致高性能处理器难以发挥出应有的功效,这对日益增长的处理能力的需求形成了极大的制约,这种严重阻碍处理器性能发挥的内存瓶颈称为“内存墙”(Memory Wall)。
为了解决内存墙的问题,传统的处理器设计中采用了多层次缓存(Cache)结构来减缓处理器速度与内存速度不匹配性所带来的性能影响。例如Intel Xeon处理器设计中采用L1/L2/L3这样层次化的Cache来构建片上缓存系统,目的是利用程序数据的空间局部性来减少内存的访问时延,在片上面积增加不多的情况下有效降低访存时延,提升性能,这对传统以计算为中心的计算机体系结构来讲是很有效的。
2007年云计算的概念首次被提出以后,亚马逊、国际商业机器公司(International Business Machines Corporation,简称为“IBM”)、谷歌(Google)和微软等大公司先后公布了各自的云计算系统或者计划,使其在学术界和企业界迅速成为关注和研究的热点,成为新的高速增长点。然而在大数据云计算应用环境下,传统架构的处理器表现出许多的不适合性,体现在访存这一方面的不适合性主要体现为大量的缓存缺失(Cache miss),导致系统性能较低。这主要是由于在云计算环境下,大量的网络应用开发者使用了脚本语言,追求开发效率和上线速度,对于软件质量的控制比较弱,很多应用甚至采用边跑边测的策略,未经过严格测试就上线运行。这样的编程特点导致互联网应用程序体量较大并且分支跳转跨度长,多数会超过处理器L1甚至L2缓存的能力范围,从而产生大量的指令缓存缺失,使得很多应用的程序指令只能放在内存和L3缓存中。处理器从这些距离核心较远的地方读取指令,由于没有特殊的直通通道,会产生很大的时延并直接影响性能。显然,针对大数据云计算应用,需要重新优化设计处理器的缓存架构设计。云计算应用还有一个明显特点是单个应用分布在多个计算节点上,应用中存在着大量不相关的并发线程,每个线程处理一段/片数据,数据间相关度低,硬件核/线程上都跑着相同的应用(指令序列),这也为重新设计缓存架构提供了可能性。
处理器领域另外一个重要的发展趋势为片上互连网络(Networks-on-Chip)。未来的多核/众核架构中普遍采用片上互连网络来替代原来的单级总线,从而突破总线的限制,实现多处理器之间的并行的传输。在采用片上互连网络的众核架构中,各级Cache之间的数据传输都是通过片上互连网络来实现的,这为Cache指令/数据的访问时延优化提供了空间。
综上,从云计算应用角度来看,如何进一步降低访存时延,提升处理器的整体性能是亟需解决的问题。
发明内容
本发明提供了一种片上网络中处理报文的方法和路由器,能够进一步降低访存时延,提升处理器的整体性能。
第一方面,提供了一种片上网络中处理报文的方法,包括:路由器接收第一处理器核发送的请求报文;该路由器确定缓存的响应报文的地址与该请求报文的地址的关系,该缓存的响应报文包括至少一个第二处理器核的响应报文,该第二处理器核与该路由器不直接相连;该路由器根据该关系,确定对该请求报文的处理方式。
结合第一方面,在第一方面的第一种可能的实现方式中,该根据该关系,确定对该请求报文的处理方式,包括:在该缓存的响应报文的地址中存在与该请求报文的地址相同的第一地址时,生成目标报文,该目标报文包括与该第一地址对应的响应报文中的数据;向该第一处理器核发送该目标报文;
结合第一方面,在第一方面的第二种可能的实现方式中,该根据该关系,确定对该请求报文的处理方式,包括:在该缓存的响应报文的地址中不存在与该请求报文的地址相同的地址时,向下一跳路由器发送该请求报文。
结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,在向该第一处理器核发送该目标报文之前,该方法还包括:对该目标报文进行编号,得到带编号目标报文;缓存该带编号目标报文。
结合第一方面的第一种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,该方法还包括:将该请求报文标识为已响应请求报文;对该已响应请求报文进行编号,得到带编号已响应请求报文。
结合第一方面,第一方面的第一种至第四种可能的实现方式中任一可能的实现方式,在第一方面的第五种可能的实现方式中,该缓存的响应报文的地址缓存在组关联缓存中;
其中,该确定缓存的响应报文的地址与该请求报文的地址的关系,包括:确定该组关联缓存中与该请求报文的地址相对应的组;确定该组中包括的响应报文的地址与该请求报文的地址的关系。
结合第一方面,第一方面的第一种至第五种可能的实现方式中任一可能的实现方式,在第一方面的第六种可能的实现方式中,该请求报文为读指令请求报文和/或读数据请求报文。
第二方面,提供了一种片上网络中的路由器,包括:请求虚通道、历史响应报文缓存单元、地址比较单元、新报文产生与标识单元;该请求虚通道,用于接收第一处理器核发送的请求报文;该历史响应报文缓存单元,用于缓存响应报文,该响应报文包括至少一个第二处理器核的响应报文,该第二处理器核与该路由器不直接相连;该地址比较单元,用于确定该历史响应报文缓存单元中缓存的该响应报文的地址与该请求虚通道接收到的该请求报文的地址的关系;该新报文产生与标识单元,用于根据该地址比较单元确定的该关系,确定对该请求虚通道接收到的该请求报文的处理方式。
结合第二方面,在第二方面的第一种可能的实现方式中,该路由器还包括发送单元;该新报文产生与标识单元,具体用于在该地址比较单元确定该响应报文的地址中存在与该请求报文的地址相同的第一地址时,生成目标报文,该目标报文包括与该第一地址对应的响应报文中的数据;该发送单元,用于向该第一处理器核发送该新报文产生与标识单元生成的该目标报文。
结合第二方面,在第二方面的第二种可能的实现方式中,该新报文产生与标识单元具体用于:在该地址比较单元确定该历史响应报文缓存单元缓存的该响应报文的地址中不存在与该请求虚通道接收的该请求报文的地址相同的地址时,确定向下一跳路由器发送该请求报文;该发送单元,用于向该下一跳路由器发送该请求报文。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,该路由器还包括:新报文虚通道;在该发送单元向该第一处理器核发送该目标报文之前,该新报文产生与标识单元还用于:对该目标报文进行编号,得到带编号目标报文;该新报文虚通道,用于缓存该新报文产生与标识单元得到的该带编号目标报文。
结合第二方面的第一种或第三种可能的实现方式,在第二方面的第四种可能的实现方式中,该新报文产生与标识单元,还用于:将该请求报文标识为已响应请求报文;对该已响应请求报文进行编号,得到带编号已响应请求报文。
结合第二方面,第二方面的第一种至第四种可能的实现方式中任一可能的实现方式,在第二方面的第五种可能的实现方式中,该历史响应报文缓存单元具体用于:将该响应报文的地址缓存在组关联缓存中;
其中,该地址比较单元具体用于:确定该组关联缓存中与该请求报文的地址相对应的组;确定该组中包括的响应报文的地址与该请求报文的地址的关系。
结合第二方面,第二方面的第一种至第五种可能的实现方式中任一可能的实现方式,在第二方面的第六种可能的实现方式中,该请求虚通道具体用于:接收该请求节点发送的读指令请求报文和/或读数据请求报文。
基于上述技术方案,本发明实施例提供的片上网络中处理报文的方法和路由器,根据缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,并且缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的片上网络中处理报文的方法的示意性流程图;
图2是本发明实施例的片上网络中处理报文的方法的另一示意性流程图;
图3是本发明实施例的片上网络中处理报文的方法的再一示意性流程图;
图4是本发明实施例的片上网络中处理报文的方法的再一示意性流程图;
图5是根据本发明实施例的片上网络中处理报文的方法的再一示意性流程图;
图6是根据本发明实施例的片上网络中处理报文的方法的再一示意性流程图;
图7是根据本发明实施例的组关联缓存的示意图;
图8是根据本发明另一实施例的片上网络中处理报文的方法的示意性流程图;
图9是根据本发明另一实施例的片上网络中处理报文的方法的另一示意性流程图;
图10是根据本发明实施例的路由器的示意性框图;
图11是根据本发明实施例的路由器的另一示意性框图;
图12是根据本发明实施例的路由器的再一示意性框图;
图13是根据本发明另一实施例的路由器的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了根据本发明实施例的片上网络中处理报文的方法的示意性流程图。该方法100可以由片上网络中的路由器执行,如图1所示,该方法100包括:
S110,路由器接收第一处理器核发送的请求报文;
S120,该路由器确定缓存的响应报文的地址与该请求报文的地址的关系,该缓存的响应报文包括至少一个第二处理器核的响应报文,该第二处理器核与该路由器不直接相连;
S130,该路由器根据该关系,确定对该请求报文的处理方式。
具体而言,在路由器接收到第一处理器核发送的请求报文时,确定路由器中缓存的响应报文的地址与该请求报文的地址的关系,路由器中缓存的响应报文包括至少一个与该路由器不直接相连的第二处理器核的响应报文,并根据确定的该关系,确定对该请求报文的处理方式。
因此,本发明实施例的片上网络中处理报文的方法,路由器根据缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,并且该缓存的响应报文包括至少一个与该路由器不直接相连的第二处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
应理解,在本发明实施例中,该第二处理核与该路由器不直接相连,也就是说,该第二处理器核与该路由器在同一个芯片上,但该第二处理器核不是该路由器的本地节点。
应理解,在本发明实施例中,第一处理器核发送的请求报文可以为读指令请求报文和/或读数据请求报文,还可以为其他的请求报文,本发明对此不作限定。
还应理解,在本发明实施例中,第一处理器核发送的请求报文的个数可以为一个或多个,本发明对此不作限定。
可选地,如图2所示,S130包括以下步骤:
S131,在该缓存的响应报文的地址中存在与该请求报文中的地址相同的第一地址时,生成目标报文,该目标报文包括该与第一地址对应的响应报文中的数据;
S132,向该第一处理器核发送该目标报文;
具体而言,在S131中,在缓存的响应报文的地址中存在与请求报文的地址相同的地址时,路由器会对请求报文进行响应,即路由器将与请求报文中的地址相同的地址对应的缓存的响应报文中的数据打包生成目标报文,目标报文的地址为第一处理器核的地址。并且,路由器将被响应过的请求报文发送到末级缓存LLC,如果请求报文为读数据请求报文,路由器改变LLC目录中的向量状态,以表示共享被响应过的请求报文请求读的数据的处理器核的数量。
可选地,如图3所示,S130还包括以下步骤:
S133,在该缓存的响应报文的地址中不存在与该请求报文的地址相同的地址时,向下一跳路由器发送该请求报文;
具体而言,在S133中,路由器比较缓存的响应报文的地址与请求报文的地址,在响应报文的地址中不存在与请求报文的地址相同的地址时,确定将请求报文发送给下一跳路由器,由于请求报文中携带下一跳路由器的具体信息,根据该具体信息可以确定下一跳路由器。
可选地,如图4所示,在S132之前,S130还包括:
S134,对该目标报文进行编号,得到带编号目标报文;
S135,缓存该带编号目标报文。
相应地,S132具体为:向该第一处理器核发送该带编号目标报文。
具体而言,路由器生成的目标报文的个数可能有一个或多个,在目标报文的个数有多个时,可以对该目标报文进行编号,得到带编号目标报文,并且将带编号目标报文进行缓存,在发送该目标报文时可以根据每个目标报文对应的编号的大小进行发送,也可以根据每个带编号目标报文的优先级顺序发送每个带编号目标报文,本发明对此不作限定。
可选地,在该缓存的响应报文的地址中存在与该请求报文的地址相同的第一地址时,如图5所示,S130还包括:
S136,将该请求报文标识为已响应请求报文;
S137,对该已响应请求报文进行编号,得到带编号已响应请求报文。
具体而言,路由器可以将已经响应过的请求报文标识为已响应请求报文,并且对已响应请求报文进行编号,得到带编号已响应请求报文,LLC或者内存可以根据编号确定已经被响应的请求报文的数量,并将剩余的未被响应的请求报文对应的数据或者指令发送给发送未被响应的请求报文的处理器核。
应理解,如果已经响应过的请求报文的读数据请求报文,路由器将LLC目录中与已响应过的请求报文相对应的向量状态设置为共享,例如,在非共享状态下,向量状态可以用“0”表示,共享状态下,向量状态可以用“1”表示,但本发明并不限于此。
在本发明实施例中,可选地,该缓存的响应报文的地址缓存在组关联缓存中,相应地,如图6所示,S120包括:
S121,确定该组关联缓存中与该请求报文的地址相对应的组;
S122,确定该组中包括的响应报文的地址与该请求报文的地址的关系。
具体而言,路由器接收到响应报文(该响应报文包括至少一个该路由器的非本地节的响应报文)后,对响应报文进行解析,并将解析得到的地址缓存在组关联缓存(Set-Associative Buffer)中,同时将响应报文中的数据保存在响应虚通道(Response_VC)中,Set-Associative Buffer中的表象记录了地址和对应数据的映射关系。如图7所示,Set-Associative Buffer可以将多个地址以组(set)的形式进行组织,当需要比较地址时,只需要比较与请求报文的地址相对应的组中包括的响应报文的地址与请求报文的地址的关系,而不需要比较所有响应报文的地址与请求报文的地址的关系,由此能够加速地址比较速度,降低地址比较过程的时延。
举例来说,比如一个8位的地址,低4位相同的地址都放在同一行中,那么剩下的高4位就有16种组合,这16个组合对应的值(地址的高4位)放在该行中;当一个请求报文的地址进来以后,首先找到该地址的低4位对应的set行,读到16个值,这16个值依次和该地址的高4位进行比较,如果相同,则将对应表项中指针(pointer)指向的数据读出,并将数据发送给请求该数据的处理器核。所以不需要比较所有28=256个地址,加快比较速度。
应理解,在响应虚通道中缓存的数据达到一定容量时,路由器会按照一定的规则删除掉某些数据,例如,可以根据共享该数据的处理器核的数量删除共享数量较少的数据,或者根据数据被访问的时间的先后,删除较长时间未被访问的数据,但本发明并不限于此。
因此,本发明实施例的片上网络中处理报文的方法,路由器根据缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,并且缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
以上结合图1至图7详细描述了根据本发明实施例的片上网络中处理报文的方法,下面将结合具体的例子详细描述本发明实施例,应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图8是根据本发明另一实施例的片上网络中处理报文的方法的示意性流程图。如图8所示,该方法200包括:
S201,接收读指令请求报文和/或读数据请求报文;
S202,比较缓存在请求虚通道(Request Virtual channel,简称为“Request_VC”)中的读指令请求报文和/或读数据请求报文携带的地址和响应虚通道中的地址;
S203,在请求虚VC中读指令请求报文和/或读数据请求报文携带的地址与响应VC中的地址匹配时,将响应VC中的数据打包产生新的报文,新报文的目的地为请求节点,而且将新报文标识为第n个指令/数据报文,之后存放到新报文(new_packet buffer)VC中。
S204,修改请求VC中的请求报文为响应过的请求报文,同时标识当前的响应过的请求报文为第n个读指令请求报文/读数据请求报文。
S205,LLC或者内存根据当前已经响应过的读指令请求报文/读数据请求报文个数,向请求节点发送未被响应过的读指令请求报文/读数据请求报文对应的指令/数据;如果为数据请求,将LLC目录中向量状态置为共享。
S206,转发或向对应的本地节点发送新的报文和其他报文。
可选地,在S201中,接收到的读指令请求报文和/或读数据请求报文的个数可以为一个或多个,本发明对此不作限定。
可选地,在S206中,可以同时转发或向对应的本地节点发送新的报文和未被响应过的请求报文,可以先转发或向对应的本地节点发送新的报文,在转发或向对应的本地节点发送未被响应过的请求报文。
图9是根据本发明另一实施例的片上网络中处理报文的方法的另一示意性流程图。如图9所示,该方法300包括:
S301,接收响应报文,进行报文解析,将响应报文对应的地址存放在组关联缓存中(Set-Associative buffer);同时组关联缓存中的表项记录了该地址和对应数据的映射关系;
S302,接收请求报文(Req_Pkt),进行报文解析(decode),解析请求报文后得到的地址进行组关联缓存索引,寻找对应的组(set)中是否有对应的地址与之匹配,如果匹配,则通过指针(pointer)找到对应的数据,生成新的报文,目的地为请求节点;
S303,标记该请求报文已经被响应过;
S304,LLC或内存根据当前已经响应的请求报文个数,向请求节点发送未被响应过的读指令请求报文/读数据请求报文对应的指令/数据;如果为读数据请求,将LLC目录中向量状态置为共享;
S305,转发或向对应的本地节点发送新的报文。
因此,本发明实施例的片上网络中处理报文的方法,路由器根据缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,并且缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
以上结合图1至图9详细描述了根据本发明实施例的片上网络中处理报文的方法,下面将结合图10至图12详细描述根据本发明实施例的片上网络中的路由器。
如图10所示,该路由器10包括:请求虚通道11、历史响应报文缓存单元12、地址比较单元13、新报文产生与标识单元14;
该请求虚通道11,用于接收第一处理器核发送的请求报文;
该历史响应报文缓存单元12,用于缓存响应报文,该响应报文包括至少一个第二处理器核的响应报文,该第二处理器核与该路由器不直接相连;
该地址比较单元13,用于确定该历史响应报文缓存单元12中缓存的该响应报文的地址与该请求虚通道接收到的该请求报文的地址的关系;
该新报文产生与标识单元14,用于根据该地址比较单元13确定的该关系,确定对该请求虚通道11接收到的该请求报文的处理方式。
具体而言,在路由器接收到第一处理器核发送的请求报文时,确定历史响应报文缓存单元中缓存的响应报文的地址与该请求报文的地址的关系,该历史响应报文缓存单元中缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文,并根据确定的该关系,确定对该请求报文的处理方式。
因此,本发明实施例的片上网络中的路由器根据历史响应报文缓存单元中缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,并且历史响应报文缓存单元中缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
在本发明实施例中,可选地,如图11所示,该路由器10还包括:发送单元15;
该新报文产生与标识单元14,具体用于在该地址比较单元13确定该响应报文的地址中存在与该请求报文中的地址相同的第一地址时,生成目标报文,该目标报文包括与该第一地址对应的响应报文中的数据;
该发送单元15,用于向该第一处理器核发送该新报文产生与标识单元14生成的该目标报文。
在本发明实施例中,可选地,该新报文产生与标识单元14具体用于:
在该地址比较单元14确定该历史响应报文缓存单元12缓存的该响应报文的地址中不存在与该请求虚通道接收的该请求报文的地址相同的地址时,确定向下一跳路由器发送该请求报文;
该发送单元15,用于向该下一跳路由器发送该请求报文。
在本发明实施例中,可选地,如图12所示,该路由器10还包括:新报文虚通道16;
在该发送单元15向该第一处理器核发送该目标报文之前,该新报文产生与标识单元14还用于:对该目标报文进行编号,得到带编号目标报文;
该新报文虚通道16,用于缓存该新报文产生与标识单元14得到的该带编号目标报文。
在本发明实施例中,可选地,该新报文产生与标识单元14,还用于:
将该第一请求报文标识为已响应请求报文;
对该已响应请求报文进行编号,得到带编号已响应请求报文。
在本发明实施例中,可选地,该历史响应报文缓存单元12具体用于:将该响应报文的地址缓存在组关联缓存中;
其中,该地址比较单元14具体用于:确定该该组关联缓存中与该请求报文的地址相对应的组;确定该该组中包括的响应报文的地址与该请求报文的地址的关系。
在本发明实施例中,可选地,该请求虚通道11具体用于:接收该请求节点发送的读指令请求报文和/或读数据请求报文。
应理解,根据本发明实施例的片上网络中的路由器10可对应于执行本发明实施例中的片上网络中处理报文的方法100,并且路由器10中的各个模块的上述和其它操作和/或功能分别为了实现图1至图6中的相应流程,为了简洁,在此不再赘述。
因此,本发明实施例的片上网络中的路由器根据历史响应报文缓存单元中缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,历史响应报文缓存单元中缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
以上结合图10至图12详细描述了根据本发明实施例的片上网络中的路由器,下面将结合具体的例子详细描述本发明实施例,应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图13是根据本发明另一实施例的片上网络中的路由器的示意性框图。如图13所示,该路由器20包括:
请求虚通道21,用于接收并缓存接收到的读指令请求报文和/或读数据请求报文;
响应虚通道22,用于缓存接收到的响应报文;
地址比较单元23,用于比较请求虚通道中21缓存的读指令请求报文和/或读数据请求报文的地址与响应虚通道22中缓存的响应报文的地址;
报文产生与标识单元24,用于在地址比较单元23确定响应虚通道22中缓存的响应报文的地址与请求虚通道21中缓存的读指令请求报文和/或读数据请求报文的地址相同时,将响应报文中的数据打包生成新报文,报文的目的地位为请求节点,并将新报文标记为第n个新报文后,将新报文缓存到新报文虚通道25中;
新报文虚通道25,用于缓存被标记的新报文;
该报文产生与标识单元24,还用于修改请求虚通道21中的被响应过的请求报文为响应过的报文,同时标识当前响应过的报文为第n的读指令请求报文和/或读数据请求报文;
发送单元26,用于将新报文和其他未被响应的请求报文一起进行转发或者发送给路由器对应的本地节点。
因此,本发明实施例的片上网络中的路由器根据历史响应报文缓存单元缓存的响应报文的地址与请求报文的地址的关系,确定对请求报文的处理方式,历史响应报文缓存单元中缓存的响应报文包括至少一个与该路由器不直接相连的处理器核的响应报文。由此,能够降低访存时延,提升处理器的整体性能,并能够利用不同处理器核的数据共享机会减少网络访问开销。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
在本发明的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
另外,本文中术语“系统”和“网络”在本文中常可互换使用。应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
在本申请所提供的实施例中,应理解,“与A相应的B”表示B与A相关联,根据A可以确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称为“ROM”)、随机存取存储器(Random Access Memory,简称为“RAM”)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种片上网络中处理报文的方法,其特征在于,包括:
路由器接收第一处理器核发送的请求报文;
所述路由器确定缓存的响应报文的地址与所述请求报文的地址的关系,所述缓存的响应报文包括至少一个第二处理器核的响应报文,所述第二处理器核与所述路由器不直接相连;
所述路由器根据所述关系,确定对所述请求报文的处理方式。
2.根据权利要求1所述的方法,其特征在于,所述根据所述关系,确定对所述请求报文的处理方式,包括:
在所述缓存的响应报文的地址中存在与所述请求报文的地址相同的第一地址时,生成目标报文,所述目标报文包括与所述第一地址对应的响应报文中的数据;
向所述第一处理器核发送所述目标报文。
3.根据权利要求1所述的方法,其特征在于,所述根据所述关系,确定对所述请求报文的处理方式,包括:
在所述缓存的响应报文的地址中不存在与所述请求报文的地址相同的地址时,向下一跳路由器发送所述请求报文。
4.根据权利要求2所述的方法,其特征在于,在向所述第一处理器核发送所述目标报文之前,所述方法还包括:
对所述目标报文进行编号,得到带编号目标报文;
缓存所述带编号目标报文。
5.根据权利要求2或4所述的方法,其特征在于,所述方法还包括:
将所述请求报文标识为已响应请求报文;
对所述已响应请求报文进行编号,得到带编号已响应请求报文。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述缓存的响应报文的地址缓存在组关联缓存中;
其中,所述确定缓存的响应报文的地址与所述请求报文的地址的关系,包括:
确定所述组关联缓存中与所述请求报文的地址相对应的组;
确定所述组中包括的响应报文的地址与所述请求报文的地址的关系。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述请求报文为读指令请求报文和/或读数据请求报文。
8.一种片上网络中的路由器,包括:请求虚通道、历史响应报文缓存单元、地址比较单元、新报文产生与标识单元;
所述请求虚通道,用于接收第一处理器核发送的请求报文;
所述历史响应报文缓存单元,用于缓存响应报文,所述响应报文包括至少一个第二处理器核的响应报文,所述第二处理器核与所述路由器不直接相连;
所述地址比较单元,用于确定所述历史响应报文缓存单元中缓存的所述响应报文的地址与所述请求虚通道接收到的所述请求报文的地址的关系;
所述新报文产生与标识单元,用于根据所述地址比较单元确定的所述关系,确定对所述请求虚通道接收到的所述请求报文的处理方式。
9.根据权利要求8所述的路由器,其特征在于,所述路由器还包括发送单元;
所述新报文产生与标识单元,具体用于在所述地址比较单元确定所述响应报文的地址中存在与所述请求报文的地址相同的第一地址时,生成目标报文,所述目标报文包括与所述第一地址对应的响应报文中的数据;
所述发送单元,用于向所述第一处理器核发送所述新报文产生与标识单元生成的所述目标报文。
10.根据权利要求8所述的路由器,其特征在于,所述新报文产生与标识单元具体用于:
在所述地址比较单元确定所述历史响应报文缓存单元缓存的所述响应报文的地址中不存在与所述请求虚通道接收的所述请求报文的地址相同的地址时,确定向下一跳路由器发送所述请求报文;
所述发送单元,用于向所述下一跳路由器发送所述请求报文。
11.根据权利要求9所述的路由器,其特征在于,所述路由器还包括:新报文虚通道;
在所述发送单元向所述第一处理器核发送所述目标报文之前,所述新报文产生与标识单元还用于:对所述目标报文进行编号,得到带编号目标报文;
所述新报文虚通道,用于缓存所述新报文产生与标识单元得到的所述带编号目标报文。
12.根据权利要求9或11所述的路由器,其特征在于,所述新报文产生与标识单元,还用于:
将所述请求报文标识为已响应请求报文;
对所述已响应请求报文进行编号,得到带编号已响应请求报文。
13.根据权利要求8至12中任一项所述的路由器,其特征在于,所述历史响应报文缓存单元具体用于:
将所述响应报文的地址缓存在组关联缓存中;
其中,所述地址比较单元具体用于:
确定所述组关联缓存中与所述请求报文的地址相对应的组;
确定所述组中包括的响应报文的地址与所述请求报文的地址的关系。
14.根据权利要求8至13中任一项所述的路由器,其特征在于,所述请求虚通道具体用于:
接收所述请求节点发送的读指令请求报文和/或读数据请求报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260236.3A CN106302259B (zh) | 2015-05-20 | 2015-05-20 | 片上网络中处理报文的方法和路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510260236.3A CN106302259B (zh) | 2015-05-20 | 2015-05-20 | 片上网络中处理报文的方法和路由器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106302259A true CN106302259A (zh) | 2017-01-04 |
CN106302259B CN106302259B (zh) | 2020-02-14 |
Family
ID=57633776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510260236.3A Active CN106302259B (zh) | 2015-05-20 | 2015-05-20 | 片上网络中处理报文的方法和路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106302259B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108780437A (zh) * | 2017-12-14 | 2018-11-09 | 深圳市大疆创新科技有限公司 | 核间通信方法、处理器和多处理器通信系统 |
CN112825101A (zh) * | 2019-11-21 | 2021-05-21 | 北京希姆计算科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741605A (zh) * | 2008-11-11 | 2010-06-16 | 华为技术有限公司 | 一种处理报文的方法、设备和系统 |
CN103064979A (zh) * | 2013-01-15 | 2013-04-24 | 中兴通讯股份有限公司 | 一种路由器处理网页数据的方法以及路由器 |
GB2507124A (en) * | 2012-10-22 | 2014-04-23 | St Microelectronics Grenoble 2 | Controlling data transmission rates based on feedback from the data recipient |
CN104137083A (zh) * | 2012-12-28 | 2014-11-05 | 松下电器产业株式会社 | 接口装置及存储器总线系统 |
-
2015
- 2015-05-20 CN CN201510260236.3A patent/CN106302259B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741605A (zh) * | 2008-11-11 | 2010-06-16 | 华为技术有限公司 | 一种处理报文的方法、设备和系统 |
GB2507124A (en) * | 2012-10-22 | 2014-04-23 | St Microelectronics Grenoble 2 | Controlling data transmission rates based on feedback from the data recipient |
CN104137083A (zh) * | 2012-12-28 | 2014-11-05 | 松下电器产业株式会社 | 接口装置及存储器总线系统 |
CN103064979A (zh) * | 2013-01-15 | 2013-04-24 | 中兴通讯股份有限公司 | 一种路由器处理网页数据的方法以及路由器 |
Non-Patent Citations (1)
Title |
---|
刘祥远: "《多核SoC片上网络关键技术研究》", 《博士学位论文电子期刊》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108780437A (zh) * | 2017-12-14 | 2018-11-09 | 深圳市大疆创新科技有限公司 | 核间通信方法、处理器和多处理器通信系统 |
CN112825101A (zh) * | 2019-11-21 | 2021-05-21 | 北京希姆计算科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
CN112825101B (zh) * | 2019-11-21 | 2024-03-08 | 广州希姆半导体科技有限公司 | 芯片架构及其数据处理方法、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106302259B (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10097378B2 (en) | Efficient TCAM resource sharing | |
KR101502896B1 (ko) | 맵 리듀스를 이용한 분산 메모리 클러스터 제어 장치 및 방법 | |
US9274959B2 (en) | Handling virtual memory address synonyms in a multi-level cache hierarchy structure | |
CN104954271B (zh) | Sdn网络中的数据包处理方法和装置 | |
CN105407055B (zh) | 一种内容中心网络的能耗控制方法 | |
CN105138679B (zh) | 一种基于分布式缓存的数据处理系统及处理方法 | |
US11068418B2 (en) | Determining memory access categories for tasks coded in a computer program | |
CN103595805A (zh) | 一种基于分布式集群的数据放置方法 | |
CN108781184A (zh) | 用于在网络设备中提供分类资源的分区的系统和方法 | |
CN108287840A (zh) | 一种基于矩阵哈希的数据存储和查询方法 | |
CN107122130A (zh) | 一种数据重删方法及装置 | |
WO2013114538A1 (ja) | データ管理装置、データ管理方法、データ管理プログラム、及び情報処理装置 | |
EP4170491A1 (en) | Resource scheduling method and apparatus, electronic device, and computer-readable storage medium | |
US10204060B2 (en) | Determining memory access categories to use to assign tasks to processor cores to execute | |
CN115543938A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN111680998A (zh) | 支付路由方法、计算设备和计算机可读存储介质 | |
CN104252416B (zh) | 一种加速器以及数据处理方法 | |
Yamaki et al. | Data prediction for response flows in packet processing cache | |
CN106302259A (zh) | 片上网络中处理报文的方法和路由器 | |
US20200341764A1 (en) | Scatter Gather Using Key-Value Store | |
CN102999443A (zh) | 一种计算机缓存系统的管理方法 | |
CN106156049A (zh) | 一种数据读取的方法和系统 | |
CN105933398A (zh) | 内容分发网络中的访问请求转发方法和系统 | |
Wan et al. | Adaptive batch update in TCAM: How collective optimization beats individual ones | |
US20200004574A1 (en) | Memory access optimization in a processor complex |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |