CN117640549A - 一种跨die的反向保序方法及系统 - Google Patents
一种跨die的反向保序方法及系统 Download PDFInfo
- Publication number
- CN117640549A CN117640549A CN202311775508.4A CN202311775508A CN117640549A CN 117640549 A CN117640549 A CN 117640549A CN 202311775508 A CN202311775508 A CN 202311775508A CN 117640549 A CN117640549 A CN 117640549A
- Authority
- CN
- China
- Prior art keywords
- die
- destination
- address
- req
- source
- 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
- 238000000034 method Methods 0.000 title claims abstract description 74
- 238000004321 preservation Methods 0.000 title claims description 11
- 229940072293 axid Drugs 0.000 claims description 31
- SGXXNSQHWDMGGP-IZZDOVSWSA-N nizatidine Chemical compound [O-][N+](=O)\C=C(/NC)NCCSCC1=CSC(CN(C)C)=N1 SGXXNSQHWDMGGP-IZZDOVSWSA-N 0.000 claims description 31
- 239000000783 alginic acid Substances 0.000 claims description 8
- 238000012216 screening Methods 0.000 claims description 7
- 239000011668 ascorbic acid Substances 0.000 claims description 2
- 239000004148 curcumin Substances 0.000 claims description 2
- 238000013461 design Methods 0.000 abstract description 4
- ZXVONLUNISGICL-UHFFFAOYSA-N 4,6-dinitro-o-cresol Chemical compound CC1=CC([N+]([O-])=O)=CC([N+]([O-])=O)=C1O ZXVONLUNISGICL-UHFFFAOYSA-N 0.000 description 28
- 230000005540 biological transmission Effects 0.000 description 25
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 17
- 239000012634 fragment Substances 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000002955 isolation Methods 0.000 description 5
- 238000004806 packaging method and process Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000008929 regeneration Effects 0.000 description 2
- 238000011069 regeneration method Methods 0.000 description 2
- 239000004334 sorbic acid Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 1
- 201000010099 disease Diseases 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
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/113—Arrangements for redundant switching, e.g. using parallel planes
- H04L49/118—Address processing within a device, e.g. using internal ID or tags for routing within a switch
-
- 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
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及芯片设计技术领域,特别是涉及一种跨die的反向保序方法及系统,其通过在目的die的RHUB中建立接收缓存表,在该接收缓存表中记录接收并允许发送给die内片上网络的每笔访问请求的读写身份标识和源die的地址;当目的die接收到访问请求,则遍历接收缓存表,若在接收缓存表中已经记录下与待发送的访问请求相同的读写身份标识且不同源die地址时,拦截待发送的访问请求,能够防止乱序的发生,解决了不同源die向同一目的die发送具有同一读写身份标识的访问请求时,目的die发送的响应数据也会出现乱序问题。
Description
技术领域
本发明涉及芯片设计技术领域,特别是涉及一种跨die的反向保序方法及系统。
背景技术
数据片上网络(data network on chip,DNOC)和寄存器片上网络(registernetwork on chip,RNOC)都是片上网络(NoC)的架构,用于连接片上各个模块或IP核,实现高效、低延迟的数据传输和通信。其中,RNOC主要通过寄存器读写实现核之间的数据传输和通信,适用于小数据量的控制访问的系统设计;DNOC主要是通过数据包交换实现IP核之间的数据传输和通信,适用于大数据量的数据访问的系统设计。
Die中的IP核之间通过NOC通信,IP核之间通过NOC将数据包从源die发送到物理连接的另一个目的die中,能够实现直接相连的两个die之间进行一对一的跨die传输。但是上述访问方法存在以下问题:
1.若源die与目的die未直接相连,则无法访问。
2.若同一源die向不同目的die发送具有同一读写身份标识的访问请求时,源die接收的响应数据会出现乱序问题。
3.若不同源die向同一目的die发送具有同一读写身份标识的访问请求时,目的die发送的响应数据也会出现乱序问题。
4.die间片上网络的传输协议复杂度较高以及硬件传输资源分配不均。
发明内容
为了解决第3个技术问题,本发明采用的技术方案为:
第一方面,本发明实施例提供了一种跨die的反向保序方法,所述方法包括:
E100,获取目的die接收R个源die发送的访问请求,其中第f个访问请求reqf中携带的读写身份标识axidf和源die地址saddrf,f的取值范围为1到R,R≥2;
E200,获取目的die中控制单元RHUBt的接收缓存表tablet,tablet中包括K个接收列表tabt,每个接收列表记录接收的访问请求的读写身份标识和源die地址;tabt={tt1,tt2,…,ttq,…,ttK},ttq为第q个接收列表,ttq包括读写身份标识axidq、源die地址saddrq以及以及具有axidq和saddrq的访问请求发出且未响应的数量cntq,其中q的取值范围为1到K;
E300,根据目的die接收的reqf中携带的axidf遍历tabt,筛选出读写身份标识与axidf相同的接收列表ttq;
E400,判断reqf的saddrf与ttq的saddrq是否相同,若相同,cntq加1,允许reqf正常访问;否则,拦截reqf。
第二方面,本发明实施例提供了一种跨die的反向保序系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现上述跨die的反向保序方法。
本发明与现有技术相比具有明显的有益效果,借由上述技术方案,本发明提供的一种跨die的反向保序方法及系统可达到相当的技术进步性及实用性,并具有产业上的广泛利用价值,其至少具有以下有益效果:
本发明提供了一种跨die的反向保序方法及系统,通过接收缓存表判断是否拦截待发送的访问请求,保证不会出现在目的die中出现响应返回过程中的乱序问题,解决了不同源die向同一目的die发送具有同一读写身份标识的访问请求时,目的die发送的响应数据也会出现乱序问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的一种多级跨die访问方法流程图;
图2为本发明实施例二提供的一种跨die的正向保序方法流程图;
图3为本发明实施例三提供的一种跨die的反向保序方法流程图;
图4为本发明实施例四提供的一种跨die的访问方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了解决第一个技术问题,本发明实施例提出了实施例一。
实施例一
请参阅图1,其示出了一种多级跨die访问方法,所述方法包括以下步骤:
S100,获取源die0中IP0发送的访问请求req,req中携带有用户信息和目的地址addrA,addrA包括目的diet的地址和目的IPt的地址。
其中,die中包括多个IP核、die内片上网络RNOC、控制单元RHUB以及die间片上网络DNOC的互联接口。
其中,IP核(Intellectual Property)为预先设计、经过验证、可重复使用的成熟的功能模块。IP0为die0中的一个IP核。需要说明的是,本发明实施例中的IP均为IP核,以下不再声明。
其中,在die内部的IP核之间通过die内片上网络RNOC0进行互联通信。在die之间通过die间片上网络DNOC进行互联通信。Die内片上网络RNOC0为寄存器片上网络(registernetwork on chip,RNOC)。die间片上网络DNOC为数据片上网络(data network on chip,DNOC)。
其中,控制单元RHUB用于将跨die互联的访问请求打包为符合die间片上网络DNOC协议的数据包,或者解析die间片上网络DNOC发送的数据包,并调度数据包。
其中,访问请求为读请求或者写请求。
可选的,addrA的高位为目的diet的地址,低位为目的IPt的地址。
其中,用户信息包括源IP0的身份信息和其他信息。其中源IP0的身份信息为源IP0的唯一身份标识。其中,其他信息包括但不限于数据长度、位宽和源IP0的身份标识等信息。
可选的,IP0通过控制通道将req发送给RNOC0。
S200,源die0中的die内片上网络RNOC0解析req中携带的用户信息和addrA得到目的diet的地址。需要说明的是,通过die内的die内片上网络RNOC0先进行初步筛选,判断req的目的diet是否为当前die,若是则为die内通信,否则为die间通信。初步筛选能够进一步的减少查找的范围,降低查找的复杂度。
进一步,当目的diet的地址为当前die的地址时,根据目的IPt的地址将用户信息发送给源die0的目的IPt。需要说明的是,判断目的diet的地址是否为0,也即判断addrA的高位地址是否为0,当高位地址为0时,说明目的diet的地址为当前die的地址;否则为其他的目的die。当目的diet的地址不是当前die的地址时,将req发送给源die0中的RHUB0并执行以下步骤S220-S240。
S220,RHUB0解析req得到用户信息和addrA,按照预设规则将addrA中提取的目的diet的地址重新生成目的地址addrB,将用户信息和addrA打包为数据包pack;并将addrB和pack发送给die间片上网络DNOC。
其中,预设规则为DNOC的地址格式。addrB符合DNOC的网络传输协议。例如,根据DNOC网络接口的编码和目的diet的地址重组为目的地址addrB。
优选的,RNOC0通过控制通道将req发送给RHUB0。RHUB0分别通过写地址通道发送addrB、通过写数据通道发送pack给die间片上网络DNOC。
其中,数据包pack的打包格式符合DNOC的封装协议。
addrB能够使DNOC在转发到不同的die内时只需要解析addrB,来判断是否需要停止在die内转发,不需要解析其他大量的与无关信息,进而实现轻量化的快速转发。
S240,DNOC根据路由表转发addrB和pack,其中,将addrB和pack转发到第i个diei时,diei的DNOC接口解析addrB得到目的diet的地址。
其中,die与die之间通过物理连线互联。在DNOC的路由表中保存了指向目的die的地址的路径。DNOC能够根据路由表选择正确的路径将数据发送给下一个die,下一个die也会根据自己的路由表进行转发,以此类推,直到转发给目的die,停止转发。
进一步,当目的diet的地址与diei的地址不同时,继续转发给下一个die,否则,diei为目的diet,将pack发送给diei的RHUBi并执行以下步骤:
S242,RHUBi解析pack得到用户信息和addrA,提取addrA中的目的IPt的地址;将用户信息和IPt的地址发送给diei的die内片上网络RNOCi。
需要说明的是,在每个die中都包括die内寻址的RNOC、传输控制信息类的RHUBi以及用于跨die寻址的DNOC接口。
其中,当得到目的die时,RHUBi不再需要目的diet的地址,直接将addrA中的地址进行剥离,提取出目的IPt的地址。提取得到的目的IPt的地址用于传送给die内片上网络RNOC使其根据目的IPt的地址将相应的用户信息传送给目的IPt。
S243,RNOCi根据目的IPt的地址将用户信息发送给diei中的目的IPt。
本发明实施例通过将目的diet的地址重新生成目的地址addrB,同时将用户信息和addrA打包为数据包pack,通过DNOC转发addrB和pack,在转发的过程中通过解析addrB并判断目的diet的地址与当前die的地址是否相同来判断当前die是否为目的die,不需要解析pack,降低了解析的数据量和复杂度,提高转发速度和效率,进而实现轻量化的快速转发。同时,由于中间作为转发节点的die不需要解析pack,能够防止pack中的信息泄露,增加pack传输的安全性。
作为一个优选实施例,所述方法还包括:
S220还包括:RHUB0解析req得到用户信息、源地址和addrA,按照预设规则将addrA中提取的目的diet的地址重新生成目的地址addrB,将用户信息、源地址和addrA打包为数据包pack;并将addrB和pack发送给die间片上网络DNOC。
S242还包括,RHUBi解析pack得到用户信息、源地址和addrA,提取addrA中的目的IPt的地址;将用户信息和IPt的地址发送给diei的die内片上网络RNOCi。需要说明的是,RHUBi不需要将源地址发送给RNOCi,源地址是为了在响应的过程中提供将响应数据返回给源die0中的IP0的地址。
作为一个优选实施例,所述方法还包括响应步骤,其中:
S300,RNOCi接收目的IPt的响应信息responset,当源die0的地址为当前die的地址时,根据源IP0的地址将responset返回给源IP0;否则,将responset返回给RHUBi并执行以下步骤:
S320,RHUBi接收responset,并将responset和源地址打包为数据包packt,将源die0的地址重新生成为addrR,DNOC根据addrR将packt返回给源die0。
需要说明的是,将源die0的地址重新生成为addrR的步骤与根据目的diet的地址重新生成目的地址addrB的步骤相同。addrR符合DNOC的网络传输协议。
响应信息会随着packt原路返回,并且在响应信息返回的过程中,依然首先经过RNOCi判断响应信息是当前die的响应信息还是跨die的响应信息,若是当前die的响应信息则直接在die内传送给相应的目的IP;若是跨die的响应信息,则需要通过RHUBi将响应信息打包为数据包通过DNOC转发给源die,通过源die返回给相应的源IP0。
通过步骤S100-S200能够完成访问请求的跨die访问,结合S300能够完成访问请求的完整的跨die访问和响应的过程。die间通过对目的地址addrB的解析和判断来实现多级跨die的快速访问,解决了当源die与目的die未直接相连时无法访问的技术问题。
基于与实施例一的方法实施例相同的发明构思,实施例一还提供了一种多级跨die访问系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现实施例一提供的一种多级跨die访问方法,其中一种多级跨die访问方法在实施例一中已经详细说明,不再赘述。
源die在发起读写请求时,可能会出现两笔或者多笔访问请求数据中携带相同的读写身份标识但目的die不同的情况,这些具有相同读写身份标识的访问请求数据通过源die被顺序发送给不同的目的die。由于各自不同的目的die各自独立处理访问请求,并且不同的目的die的处理延时可能并不相同,因此会导致目的die返回响应数据的顺序并不会完全按照从源die发出的顺序进行,进而导致RHUB返回的响应数据乱序。因此,为了解决第二个技术问题,本发明实施例提供了实施例二。
实施例二
为了解决响应乱序的问题,实施例二通过在源die的RHUB0中建立发送缓存表,在该缓存表中主要记录下发送出去的每一笔跨die访问请求的读写身份标识和目的die的地址。当访问请求需要跨die访问时,需要首先遍历该发送缓存表,若在发送缓存表中已经记录下了与待发送的访问请求的读写身份标识相同且目的die的地址不同的访问请求记录时,为了防止乱序的情况发生,需要拦截待发送的访问请求,直到在缓存表中所有的相同读写身份标识且不同目的die的地址的访问请求都得到响应之后,再将拦截的待发送的访问请求的读写身份标识和目的die的地址记录到缓存表中并发送出去。也即,实施例二通过发送缓存表拦截与表中任意一个列表的读写身份标识相同且目的die的地址不同的访问请求,直到表中的相关列表都得到响应之后再将拦截的访问请求重新记录到发送缓存表中并发送出去,能够保证不会出现乱序的情况,返回的响应数据一定的是按照发出的顺序返回。
请参阅图2,其示出了一种跨die的正向保序方法,所述方法包括以下步骤:
T200,获取源die发送的访问请求req0中携带的读写身份标识axid0和目的die的地址daddr0。
其中,源die为发起访问请求的die。目的die地址为访问请求访问的目标die。
作为一个优选实施例,所述读写身份标识为读地址身份标识或写地址身份标识。
T400,获取源die的控制单元RHUB0中的发送缓存表table0,table0中包括N个发送列表tab0,每个发送列表记录发送且未得到响应的访问请求的读写身份标识和目的die地址;tab0={t1,t2,…,ti,…,tN},ti为第i个发送列表,ti包括读写身份标识axidi、目的die地址daddri以及具有axidi和daddri的访问请求发出且未响应的数量cnti,其中i的取值范围为1到N;其中,所述tab0中不包括具有相同axidi和不同daddri的两个列表。
需要说明的是,源die中包括控制单元RHUB0。
可选的,N的取值为32。
T600,根据axid0遍历tab0,筛选出读写身份标识与axid0相同的发送列表ti。通过读写身份标识筛选出读写身份标识相同的候选发送列表,以缩小查找范围。
T620,当daddr0与ti的daddri相同时,cnti的计数值加1,允许req0的跨die访问。通过cnti计数读写身份标识和目的die的地址都相同的访问请求的发送数量,能够节约发送缓存表重复记录的存储空间。
其中,每增加一笔相同读写身份标识和相同目的die地址的访问请求,ti的计数值cnti加1。每当收到一笔相同读写身份标识和相同目的die地址的响应数据时,ti的计数值cnti减1,直至cnti等于0。当cntj等于0,说明源die发送出去的与ti中的读写身份标识和目的die地址均相同的访问请求都返回了响应数据,当cntj等于0时ti这个列表释放,释放的列表可以被重新占用。
T640,当daddr0与ti的daddri不同时,拦截req0的访问。
发送缓存表中已经记录了发送出去且尚未得到响应的访问请求中存在读写身份标识相同且目的die不同的访问请求,拦截req0的访问,能够防止响应数据乱序的问题,解决了由于同一源die向不同目的die发送具有同一读写身份标识的访问请求时源die接收的响应数据会出现乱序问题。
作为一个优选实施例,在T640之后还包括以下步骤:
T642,当发送列表ti的cnti为0,根据req0的axid0和addr0在table0中记录一个新的发送列表,允许req0的跨die访问。
需要说明的是,当ti的cnti为0时,说明从源die中已经发出去的与req0具有相同读写身份标识且不同目的die的地址的访问请求中不存在未得到响应的访问请求,因此当源die再次发送与无效的ti中相同的读写身份标识且不同的目的die地址的访问请求时,此时,由于ti这个列表无效,则可以正常建立新的列表,且不会拦截这笔访问请求,允许正常进行跨die访问,此时再发送req0不会出现乱序问题。另外,每次在发送访问请求时遍历发送缓存表,由于发送缓存表中保存的信息只有关键的读写身份标识和目的die的地址,没有其他冗余的信息,通过读写身份标识首先筛选出符合条件的列表,因此其查表的复杂度低,查找速度快。
需要说明的是,对于发送缓存表,由于具有相同读写身份标识和相同目的die的地址的多笔请求占用一个列表,且相同读写身份标识且不同目的die的地址的读写请求被拦截,无法在发送缓存表中新建列表,因此在发送缓存表中不存在具有相同读写身份标识且不同目的die的多个候选列表,因此与daddr0不同的目的die地址的发送列表最多只有一个。
作为一个优选实施例,所述T620还包括:
当daddr0与ti的daddri相同时,判断cnti的计数值是否等于预设最大值,当cnti的计数值等于预设最大值,拦截req0的访问;当cnti的计数值小于预设最大值时,cnti的计数值加1,允许req0的跨die访问。通过预设最大值,能够限制同一个die发送的具有相同读写身份标识和相同目的die的访问请求的数量,防止大量访问请求的涌入导致目的die的堵塞。
作为一个优选实施例,所述方法还包括:
T700,获取table0的发送列表最大数量阈值Nmax,当tab0中的读写身份标识与axid0均不相同,且N=Nmax时,拦截req0的访问;否则,在table0中记录req0的axid0和daddr0建立一个新的发送列表。也即当需要新建列表时,若发送缓存表中的记录已经达到最大值时,也会进行拦截,以保证所有发送出去的访问请求都记录在发送缓存表中。其中,Nmax为用户指定的数量阈值。
作为一个优选实施例,在发送的访问请求中,会由于误操作或者其他原因,发起目的die并不存在的访问请求,当存在这样的访问请求时,在发送缓存表中会正常建立列表,但是由于目的die不存在,这个列表对应的访问请求将不会得到响应数据,也即这笔数据会一直占用发送缓存表的空间,无法消除。为了解决该问题,所述方法还包括:T800,优化发送缓存表table0的步骤,包括:
T810,获取源die连接的X个die的地址addr={addr1,addr2,…,addrx,…,addrX},addrx为第x个与源die连接的die,x的取值范围为1到X。需要说明的是,每个die都能够获取到与其互联的拓扑信息,得到互联的其他die的地址信息。可选的,第x个与源die连接的die为直接连接的die,或者为间接连接的die。
T820,根据addr遍历table0,获取table0中不属于addr的F个目的die地址Ndaddr,其中F≥0。需要说明的是,在Ndaddr中包括F个目的die地址。由于Ndaddr中的目的die都不属于源die的互联拓扑中的die,也即携带Ndaddr中的目的die地址的访问请求不可能被发送到目的die中,更不可能返回相应的响应数据,这样携带Ndaddr中的目的die的访问请求对应的列表就会一直存在于table0,并且不会消失,这样的访问请求建立的列表占用发送缓存表的空间资源。
T830,获取允许正常访问的访问请求队列,从访问请求队列中分别提取Ndaddr对应的F个访问请求,得到隔离队列fence;为fence中的每个访问请求配置预设响应数据。
可选的,根据访问请求的读写身份标识不同,访问请求队列为读请求队列或写请求队列。
其中,预设响应数据为用户指定的响应数据。优选的,预设响应数据为空信息。
T840,将提取fence后的访问请求队列打包为数据包进行传输,获取正常响应队列。
需要说明的是,提取fence后的访问请求队列为正常访问的访问请求队列,其中不再具有无法发送到目的die的访问请求。
T850,源die的RHUB0将正常响应队列和隔离队列的预设响应数据调度给die内片上网络RNOC进行返回。
需要说明的是,由于table0已经能够保证响应数据的按序返回,因此在调度时,同样是在保序的情况下返回的响应数据。这样在fence中的访问请求得到了响应数据,不仅能够消除table0中占用的列表,释放发送缓存表的资源,而且能够给相应的访问请求一个响应信息,结束该笔访问请求。
作为一个优选实施例,T840和T850之间还包括:T841,源die接收到不同die返回的正常响应数据,RHUB0按照不同目的die将正常响应数据进行重排解包,得到不同目的die返回的正常响应数据队列。
通过T800的优化发送缓存表的步骤能够消除由于误操作或者其他原因导致的在发送缓存表记录不存在目的die的列表数据。
需要说明的是,实施例二中的访问请求与实施例一中的访问请求相同,访问请求从源die的源IP发起,在经过源die的die内片上网络和RHUB,通过DNOC网络路由到目的die,经过目的die的RHUB、die内片上网络访问目的IP;其访问过程以及响应过程均与实施例一相同,不再赘述。不同的是在访问期间,在源die的RHUB将接收到的访问请求向源die的die间片上网络发送之前,利用每个访问请求的读写身份标识和目的die的地址遍历RHUB中的发送缓存表,查找在发送缓存表中是否存在相同读写身份标识且不同目的die的地址的列表,若存在则拦截该访问请求,在发送缓存表中的相关列表得到响应之后,再允许被拦截的访问请求正常发送给die间片上网络,以保证响应的顺序,防止乱序。
基于与实施例二的方法实施例相同的发明构思,实施例二还提供了一种跨die的正向保序系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现实施例一提供的一种跨die的正向保序方法,其中一种跨die的正向保序方法在实施例一中已经详细说明,不再赘述。
上述实施例二能够实现正向保序。但是对于同一个目的die接收来自不同源die的访问请求时,若接收到的访问请求具有相同的读写身份标识时,返回响应数据时,由于读写身份标识相同,RHUB无法区分将响应信息返回给哪一个源die,此时也会出现响应信息返回乱序的问题。因此,为了解决第三个技术问题,本发明提供了实施例三。
实施例三
为了解决响应乱序的问题,实施例三同样采用在RHUB中建表的方式进行,在目的die的RHUB中建立接收缓存表,在该接收缓存表中记录下接收并允许发送给die内片上网络的每笔访问请求的读写身份标识和源die的地址。die内片上网络将记录到缓存表中的访问请求发送给目的IP并获取对应的响应数据。当访问请求通过RHUB发送给目的die的RNOC网络时,需要首先遍历在接收缓存表,若在接收缓存表中已经记录下了与待发送的访问请求相同的读写身份标识且不同源die地址时,为了防止乱序的发生,拦截待发送的访问请求。当接收缓存表中的相关列表得到响应时,则允许被拦截的访问请求正常访问并记录在接收缓存表中,保证不会出现在目的die中出现响应返回过程中的乱序问题。
请参阅图2,其示出了一种跨die的反向保序方法,所述方法包括:
E100,获取目的die接收R个源die发送的访问请求,其中第f个访问请求reqf中携带的读写身份标识axidf和源die地址saddrf,f的取值范围为1到R,R≥2。
E200,获取目的die中控制单元RHUBt的接收缓存表tablet,tablet中包括K个接收列表tabt,每个接收列表记录接收的访问请求的读写身份标识和源die地址;tabt={tt1,tt2,…,ttq,…,ttK},ttq为第q个接收列表,ttq包括读写身份标识axidq、源die地址saddrq以及以及具有axidq和saddrq的访问请求发出且未响应的数量cntq,其中q的取值范围为1到K。
需要说明的是,在目的die中,需要经过RHUBt解析数据包得到相应的访问请求数据,然后由RHUBt将相应的数据发送给die内片上网络进行路由,发送给最终的目的IP中。在RHUBt将相应的数据发送给die内片上网络进行路由时,将发送给die内片上网络的访问请求数据记录在接收缓存表tablet中,保证每发送一笔数据记录一笔数据。在接收缓存表中只记录读写身份标识axidq、源die地址saddrq和数量cntq的数据,不记录其他无关信息,能够减少空间资源的占用,同时数量cntq能够进一步减少空间资源的占用。
E300,根据目的die接收的reqf中携带的axidf遍历tabt,筛选出读写身份标识与axidf相同的接收列表ttq。同理,通过首选筛选读写身份标识的方式能够进一步的缩小查找的范围,降低计算复杂度。
E400,判断reqf的saddrf与ttq的saddrq是否相同,若相同,cntq加1,允许reqf正常访问;否则,拦截reqf。
实施例三通过E100-E400提供的方法,通过将发送给die内片上网络的访问请求记录在接收缓存表tablet中,当待发送给die内片上网络的访问请求与表中任意一个列表中记录的身份标识相同且源die不同时,则拦截发送,进而保证返回的响应数据不会出现乱序的情况,解决了不同源die向同一目的die发送具有同一读写身份标识的访问请求时,目的die发送的响应数据也会出现乱序问题。另外,访问请求遍历接收缓存表时,由于接收缓存表中保存的信息只有关键的读写身份标识和源die的地址,没有其他冗余的信息,通过读写身份标识首先筛选出符合条件的列表,因此其查表的复杂度低,查找速度快。
作为一个优选实施例,在E400之后还包括以下步骤:E500,当接收列表ttq的cntq等于0时,根据reqf的axidf和saddrf在tablet中记录一个新的接收列表,且允许将reqf发送给die内片上网络。
需要说明的是,当cntq等于0时,说明ttq的响应数据都已经返回,因此不再拦截reqf,允许reqf正常发送给die内片上网络,并在tablet中正常建立reqf对应的新的列表,以保证后续访问请求的顺序访问。
作为一个优选实施例,E400还包括,判断reqf的saddrf与ttq的saddrq是否相同,若相同,判断cntq的计数值是否等于预设最大阈值,当cntq的计数值等于预设最大阈值时则拦截reqf的访问,当cntq的计数值小于预设最大值时cntq加1,允许reqf正常访问;否则,拦截reqf。通过预设最大阈值能够限制每次发给die内片上网络具有相同读写身份标识和相同源die的访问请求的数量,能够防止访问堵塞。
作为一个优选实施例,所述方法还包括:
E600,获取tablet的接收列表最大数量阈值Kmax,当tabt中的读写身份标识与axidf均不相同,且K=Kmax时,拦截reqf的访问;否则,在tablet中记录reqf的axidf和saddrf建立一个新的接收列表。其中,Kmax为用户指定的数量阈值。当接收缓存表中的列表数量已经达到最大数量时,也会进行拦截,以保证所有发送给die内片上网络的访问请求都记录在接收缓存表中。
作为一个优选实施例,在E100之前还包括,目的die中RHUBt将接收到的数据包进行解析得到R个源die发送的访问请求以及每个访问请求的目的地址addrA;提取addrA中的目的IPt的地址,所述目的IPt的地址用于使目的die中的die内片上网络根据目的IPt的地址将访问请求发送给目的IPt。需要说明的是,目的地址addrA与实施例一中的相同,不再赘述。
作为一个优选实施例,所述方法还包括以下步骤:E500,目的die中的die内片上网络接收reqf的响应信息responsef,当源die的地址为当前die的地址时,根据源die的地址将responsef返回给源IP;否则,将responsef返回给目的die中的RHUBt,RHUBt将接收缓存列表中reqf的列表ttq的cntq减1。
需要说明的是,实施例三中的访问请求与实施例一中的访问请求相同,访问请求从源die的源IP发起,在经过源die的die内片上网络和RHUB,通过DNOC网络路由到目的die,经过目的die的RHUB、die内片上网络访问目的IP;其访问过程以及响应过程均与实施例一相同,不再赘述。不同的是在访问期间,在目的die的RHUB将接收到的访问请求向目的die的die内片上网络发送之前,利用每个访问请求的读写身份标识和源die的地址遍历RHUB中的接收缓存表,查找在接收缓存表中是否存在相同读写身份标识且不同源die的地址的列表,若存在则拦截该访问请求,在接收缓存表中的相关列表得到响应之后,再允许被拦截的访问请求正常发送给目的die的die内片上网络,以保证响应的顺序,防止乱序。
基于与实施例三的方法实施例相同的发明构思,实施例三还提供了一种跨die的反向保序系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现实施例三提供的一种跨die的反向保序方法,其中一种跨die的反向保序方法在实施例三中已经详细说明,不再赘述。
实施例一提供的一种多级跨die访问方法能够实现多级跨die,在通过die间片上网络能够实现跨die的数据传输,但是由于跨die传输的数据长度不确定,有些数据长度较大,有些数据长度较小,造成die间片上网络的传输协议复杂度较高,而且数据长度较大的数据在通过die间片上网络传输时需要通过多个时钟周期完成传输,这样会导致传输过程占用较长时间的硬件传输资源,导致硬件传输资源分配不均的问题。为了解决该问题本发明提供了实施例四。
实施例四
为了解决上述die间片上网络的传输协议复杂度较高以及硬件传输资源分配不均的问题,本发明实施例四将在die间片上网络之间传输的所有数据都拆分为数据长度相同的数据片段,将每个数据片段独立打包为数据包,并在接收端再次将数据包按照拆分的顺序进行重组并解析得到完整数据,通过该方法不仅能够简化协议而且能够进一步的解决硬件传输资源分配不均的问题。
请参阅图4,其示出了一种跨die的访问方法,所述方法包括:
P100,源die0通过die间片上网络接收H个目的die返回的响应数据包序列rpack={rpack1,rpack2,…,rpackh,…,rpackH},rpackh为第h个die返回的响应数据包序列,h的取值的范围为1到H;rpack中的所有响应数据包中的数据长度相同;rpackh中包括由一个响应数据拆分的多个数据片段并将每个数据片段分别独立打包得到的多个数据包。
需要说明的是,rpackh中包括W个响应数据包,其中W≥0。
其中,源die0为发送访问请求的die。目的die为接收访问请求并返回响应数据的die。
其中,rpackh中包括的一个响应数据对应的的多个数据包具有相同读写身份标识和源die0的地址的数据包。
P200,源die0的控制单元RHUB0解析rpack中的所有数据包,得到返回每个数据包的目的die的地址。
需要说明的是,数据包的格式与实施例一中数据包的格式相同,在数据包中包括源地址、目的die的地址和数据片段。
P300,按照每个数据包的目的die的地址将每个数据包按照顺序重新分发到不同目的die的响应队列中,得到H个目的die的响应队列。
需要说明的是,在源die0将数据拆分为数据片段并将每个数据片段独立打包为数据包之后,目的die的控制单元RHUB以每个数据包为单位进行调度并发送给die间片上网络,由于调度是以数据包为单位进行调度,在调度的过程中可能会将不同目的die的数据包交叉调度,导致同一数据的多个不同数据包之间插入其他目的die返回的数据包,进而导致乱序。为了防止乱序问题的产生,在解析之前需要将数据包按照目的die的不同将数据包放到每个目的die对应的响应队列中,这样能够保证返回的顺序不会错乱。
P400,解析每个目的die的响应队列得到所有响应数据,将响应数据调度给die内片上网络进行返回。由于每个目的die的响应队列是保序的,因此能够得到正确的相响应数据。
通过将数据拆分再重组的方式,不仅能够降低die间片上网络协议的复杂度,而且能够防止由于传输数据长度过大导致硬件资源分配不均的问题。
作为一个优选实施例,P100中的rpackh中的每个数据包携带有响应数据的总长度;其中:
P300还包括:按照每个数据包的目的die的地址将每个数据包按照顺序重新放入目的die的响应队列中,当每个目的die的响应队列中放入数据包的数据长度等于相应的响应数据的总长度时,得到H个目的die的响应队列。数据包是按照顺序依次返回给源die0,源die0按照顺序分别放入来自于不同目的die的响应队列中,因此能够保证返回的响应数据的顺序返回。
作为一个优选实施例,在所述P100之前还包括:
P010,目的die通过目的die的控制单元RHUB将每个响应数据burst拆分为数据长度相同的多个数据片段single,将拆分的每个数据片段single进行独立打包,得到每个数据片段的响应数据包;其中每个响应数据burst对应的多个响应数据包的数据长度、读写身份标识和源die0的地址均相同。需要说明的是,当响应数据burst本身的数据长度小于等于数据片段single的数据长度时,此时响应数据burst自己单独打包为一个数据包。
P020,将得到的响应数据包通过die间片上网络发送给源die0。通过将数据长度拆分为固定长度的数据片段,能够使得通过die间片上网络传输的所有数据包的大小相同,进而使die间网络的传输协议得到进一步的简化。
作为一个优选实施例,所述P100中响应数据包包括读响应数据包和写响应数据包;其中:
P300还包括,按照每个数据包的目的die的地址和数据包的类型,将每个数据包按照顺序重新分发到不同目的die的写响应队列和读响应队列中,得到H个目的die的写响应队列和读响应队列。
P400还包括,分别解析每个目的die的写响应队列和读响应队列得到所有的写响应数据和读响应数据,将写响应数据和读响应数据分别调度给die内片上网络进行返回。通过该步骤能够进一步的划分读写响应数据,保证保序返回。
作为一个优选实施例,所述die间片上网络为数据片上网络(data network onchip,DNOC)。所述die内片上网络为寄存器片上网络(register network on chip,RNOC)。
作为一个优选实施例,其中:P400还包括:解析每个目的die的响应队列得到所有响应数据,获取隔离队列的预设响应数据,将解析到的所有响应数据和预设响应数据调度给die内片上网络进行返回;其中,隔离队列中的访问请求为源die0的RHUB0提取的目的die无效且未通过die间片上网络发送给目的die的访问请求。其中,隔离队列及其预设响应数据与实施例二相同,不再赘述。通过P400不仅能够简化die间片上网络的传输协议,而且能够保证数据返回的顺序。
作为一个优选实施例,所述目的die无效的获取方法为:获取源die连接的X个die的地址addr={addr1,addr2,…,addrx,…,addrX},addrx为第x个与源die连接的die,x的取值范围为1到X;将根据addr遍历发送缓存表table0,获取table0中不属于addr的F个目的die地址Ndaddr,其中F≥0;其中Ndaddr中的目的die无效;其中,table0中记录源die0的RHUB0向die间片上网络发送的访问请求。需要说明的是,该无效目的die的获取步骤与实施例二中的T810-T820相同,不再赘述。
作为一个优选实施例,所述访问请求包括写地址请求和写数据请求。
基于与实施例四的方法实施例相同的发明构思,实施例四还提供了一种跨die的访问系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现实施例三提供的一种跨die的访问方法,其中一种跨die的访问方法在实施例三中已经详细说明,不再赘述。
虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员还应理解,可以对实施例进行多种修改而不脱离本发明的范围和精神。本发明公开的范围由所附权利要求来限定。
Claims (9)
1.一种跨die的反向保序方法,其特征在于,所述方法包括:
E100,获取目的die接收R个源die发送的访问请求,其中第f个访问请求reqf中携带的读写身份标识axidf和源die地址saddrf,f的取值范围为1到R,R≥2;
E200,获取目的die中控制单元RHUBt的接收缓存表tablet,tablet中包括K个接收列表tabt,每个接收列表记录接收的访问请求的读写身份标识和源die地址;tabt={tt1,tt2,…,ttq,…,ttK},ttq为第q个接收列表,ttq包括读写身份标识axidq、源die地址saddrq以及以及具有axidq和saddrq的访问请求发出且未响应的数量cntq,其中q的取值范围为1到K;
E300,根据目的die接收的reqf中携带的axidf遍历tabt,筛选出读写身份标识与axidf相同的接收列表ttq;
E400,判断reqf的saddrf与ttq的saddrq是否相同,若相同,cntq加1,允许reqf正常访问;否则,拦截reqf。
2.根据权利要求1所述的方法,其特征在于,在E400之后还包括以下步骤:
E500,当接收列表ttq的cntq等于0时,根据reqf的axidf和saddrf在tablet中记录一个新的接收列表,且允许将reqf发送给die内片上网络。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括以下步骤:
E500,目的die中的die内片上网络接收reqf的响应信息responsef,当源die的地址为当前die的地址时,根据源die的地址将responsef返回给源IP;否则,将responsef返回给目的die中的RHUBt,RHUBt将接收缓存列表中reqf的列表ttq的cntq减1。
4.根据权利要求1所述的方法,其特征在于,在E100之前还包括:目的die中RHUBt将接收到的数据包进行解析得到R个源die发送的访问请求以及每个访问请求的目的地址addrA;提取addrA中的目的IPt的地址,所述目的IPt的地址用于使目的die中的die内片上网络根据目的IPt的地址将访问请求发送给目的IPt。
5.根据权利要求1所述的方法,其特征在于,E400还包括,判断reqf的saddrf与ttq的saddrq是否相同,若相同,判断cntq的计数值是否等于预设最大阈值,当cntq的计数值等于预设最大阈值时则拦截reqf的访问,当cntq的计数值小于预设最大值时cntq加1,允许reqf正常访问;否则,拦截reqf。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
E600,获取tablet的接收列表最大数量阈值Kmax,当tabt中的读写身份标识与axidf均不相同,且K=Kmax时,拦截reqf的访问;否则,在tablet中记录reqf的axidf和saddrf建立一个新的接收列表。
7.根据权利要求1所述的方法,其特征在于,所述die内片上网络为寄存器片上网络。
8.根据权利要求1所述的方法,其特征在于,所述访问请求为写地址请求和写数据请求。
9.一种跨die的反向保序系统,所述系统包括处理器和非瞬时性计算机可读存储介质,所述非瞬时性计算机可读存储介质中存储有至少一条指令或至少一段程序,其特征在于,所述至少一条指令或所述至少一段程序由处理器加载并执行以实现权利要求1-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775508.4A CN117640549A (zh) | 2023-12-21 | 2023-12-21 | 一种跨die的反向保序方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311775508.4A CN117640549A (zh) | 2023-12-21 | 2023-12-21 | 一种跨die的反向保序方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117640549A true CN117640549A (zh) | 2024-03-01 |
Family
ID=90032220
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311775508.4A Pending CN117640549A (zh) | 2023-12-21 | 2023-12-21 | 一种跨die的反向保序方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117640549A (zh) |
-
2023
- 2023-12-21 CN CN202311775508.4A patent/CN117640549A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7813342B2 (en) | Method and apparatus for writing network packets into computer memory | |
US9253093B2 (en) | Method for processing data packets in flow-aware network nodes | |
CN117440053B (zh) | 一种多级跨die访问方法及系统 | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
US20060047849A1 (en) | Apparatus and method for packet coalescing within interconnection network routers | |
US8571848B2 (en) | System and method of network emlation for test of on-line server processing heavy traffic | |
US11502967B2 (en) | Methods and apparatuses for packet scheduling for software-defined networking in edge computing environment | |
CN101257457A (zh) | 网络处理器复制报文的方法和网络处理器 | |
US11151073B1 (en) | Augmenting data plane functionality with field programmable integrated circuits | |
CN109564502B (zh) | 应用于存储设备中的访问请求的处理方法和装置 | |
US20240039995A1 (en) | Data access system and method, device, and network adapter | |
US9838500B1 (en) | Network device and method for packet processing | |
CN118509399A (zh) | 一种报文处理方法、装置、电子设备及存储介质 | |
EP2524295B1 (en) | Memory management using packet segmenting and forwarding | |
US9537799B2 (en) | Phase-based packet prioritization | |
US9665519B2 (en) | Using a credits available value in determining whether to issue a PPI allocation request to a packet engine | |
CN117640549A (zh) | 一种跨die的反向保序方法及系统 | |
CN117640550A (zh) | 一种跨die的正向保序方法 | |
CN117640548A (zh) | 一种跨die的访问方法及系统 | |
CN107615259A (zh) | 一种数据处理方法及系统 | |
US9804959B2 (en) | In-flight packet processing | |
US11824752B2 (en) | Port-to-port network routing using a storage device | |
US20150254100A1 (en) | Software Enabled Network Storage Accelerator (SENSA) - Storage Virtualization Offload Engine (SVOE) | |
US9548947B2 (en) | PPI de-allocate CPP bus command | |
CN109150591A (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 |