一种ID编号动态重分配的方法、计算机设备及介质与流程
未命名
07-15
阅读:110
评论:0
一种id编号动态重分配的方法、计算机设备及介质
技术领域
1.本发明涉及id编号分配技术领域,具体涉及一种id编号动态重分配的方法、计算机设备及介质。
背景技术:
2.axi4.0协议是amba协议的一种,该总线是基于id(标号)进行读写数据传输的顺序控制的,axi协议没有规定id的标准位宽,因此不同的主机和不同的从机会出现不同的id位宽的情况。
3.相关技术的解决方法为,若主机发出的id的位宽为mid,从机接受的id的位宽为sid,如果mid《sid,直接在mid的左侧进行高位补零,补齐成sid的位宽后,再发送至从机。
4.如果mid》sid,有两种处理方法,第一种为防止出现这种情况,即要求从机必须和master有相同的id位宽。这样带来的弊端是,如果从机是三方采购的ip,那么需要三方重新进行设计,修改id的位宽,这样会带来开发周期的额外消耗。同时,有的第三方ip无法进行id位宽的修改,这就限定了从机选择的范围。如果从机是自研开发的模块,那么就需要从机支持和主机有相同的id位宽,通常这样会带来较大的资源浪费和额外的硬件电路的资源消耗。
5.第二种为,直接把mid截位后连接至sid,这样可能会引入系统问题和错误,比如mid位8位,sid为6位。mid 8’b11010100和mid 8’b10010100的低6位是相同的,则这种直接截位的方式,会造成这两个mid在slave接受和处理的是相同id,这样使得从机将本来不需要保序的不同id的响应进行保序,额外的增加了资源的消耗和系统性能的浪费,同时,master还需要记住这两个id发出的顺序,以根据顺序,恢复这两个id的响应数据是属于某一个id的,增加了资源消耗,增加了响应的延迟,大幅度降低了系统的性能。
技术实现要素:
6.为解决现有技术中的不足,本发明提供一种id编号动态重分配的方法、计算机及介质。
7.本发明第一方面提供一种id编号动态重分配的方法,包括:接收发送方发送的请求以及请求的原始id编号;在多个的预设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号,预设id编号的位宽与接收方id编号的位宽相同;若原始id编号对应有一个目标id编号,将原始id编号对应的目标id编号作为请求对应的目标id编号;若原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将原始id编号映射为目标id编号;向接收方发送目标id编号以及请求,以使接收方根据目标id编号执行请求。
8.有益效果为:本发明首先接收请求以及请求的原始id编号,根据接收方的位宽预设有多个预设id编号,在多个预设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号,由于预设id编号是根据接收方的位宽预设的,因此预设id编号的位宽符
合接收方的位宽,从而实现发送给接收方的id编号的位宽符合接收方的位宽。向接收方发送目标id编号以及请求,以使接收方根据目标id编号执行请求,本发明实现了发送给接收方的id编号的位宽符合接收方的位宽,不需要对接收方位宽进行修改,降低开发周期的额外消耗和资源浪费,本发明与相关技术中对发送方id编号进行截位相比,不对发送方id编号做截位操作,两个不同的发送方id编号的低位有可能是相同的,截位后,有可能出现将不同的发送方id编号截成相同的id编号的情况,同时,若原始id编号已经对应有一个目标id编号,则将原始id编号对应的目标id编号作为请求对应的目标id编号,若原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将原始id编号映射为目标id编号,也就是说,相同的原始id编号会被映射为相同的目标id编号,不同的原始id编号会被映射为不同的目标id编号,本发明不会出现两个发送方id在接收方接受和处理的是相同id的情况,保证由发送方传给接收方的id编号是唯一的编号。
9.结合第一方面,在第一方面第一实施方式中,将原始id编号存储到与目标id编号对应的存储空间中。
10.结合第一方面第一实施方式,在第一方面第二实施方式中,接收接收方发送的第一响应信息,第一响应信息是接收方执行请求后生成的,第一响应信息中包含目标id编号;根据存储空间确定与目标id编号对应的原始id编号;根据原始id编号形成第二响应信息,将第二响应信息发送给发送方。
11.有益效果为:本发明在得到请求的原始id编号对应的目标id编号后,将请求的原始id编号存储到目标id编号对应的存储空间中,当响应结束后,接收方发送第一响应信息,第一响应信息中包含目标id编号,便于根据存储空间确定与目标id编号对应的原始id编号,根据原始id编号形成第二响应信息,将第二响应信息发送给发送方,从而使发送方接收到响应结束的信息。
12.结合第一方面,在第一方面第三实施方式中,将映射次数为0的预设id编号判定为未被分配的预设id编号。
13.有益效果为:预设id编号的映射次数为0时,说明该预设id编号没有被分配给任何一个原始id编号,将其判定为未被分配的预设id编号,从而可以将其分配给其他的原始id编号。
14.结合第一方面第三实施方式,在第一方面第四实施方式中,在多个的预设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号的步骤,方法还包括:将目标id编号的映射次数加一;当接收到响应结束信息后,将响应结束信息对应的目标id编号的映射次数减一。
15.有益效果为:将目标id编号的映射次数加一,当接收到响应结束信息后,将响应结束信息对应的目标id编号的映射次数减一,当映射次数为0时,才可将其分配给其他原始id编号,保证由发送方传给接收方的id编号是唯一编号。
16.结合第一方面,在第一方面第五实施方式中,预设id编号的数量是根据接收方id编号的位宽确定的。
17.有益效果为:保证发送给接收方的目标id编号的位宽符合接收方的位宽。
18.本发明第二方面提供一种计算机设备,包括,至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少
一个处理器执行,从而执行第一方面及其可选实施方式中任一项的id编号动态重分配的方法。
19.本发明第三方面提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,计算机指令用于使计算机执行第一方面及其可选实施方式中任一项的id编号动态重分配的方法。
附图说明
20.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式。
21.图1示出了本发明实施例提供的id编号动态重分配的方法流程示意图;图2示出了本发明实施例提供的目标id编号对应的存储空间示意图;图3示出了本发明实施例提供的不同请求映射过程举例示意图;图4示出了本发明实施例提供的不同请求或相同请求映射过程举例示意图;图5示出了本发明实施例提供的一种计算机设备的硬件结构示意图;图6示出了本发明实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
22.下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.在本发明的描述中,需要说明的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性。
24.本发明实施例提供了一种id编号动态重分配的方法,如图1所示,包括以下步骤:步骤s001:接收发送方发送的请求以及请求的原始id编号。
25.在一可选实施例中,请求可以是写请求、读请求。
26.在一可选实施例中,不同请求的原始id编号有可能是一样的,示例性地,exclusive read操作的原始id编号为x,exclusive write操作的原始id编号也为x。
27.步骤s002:在多个的预设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号,预设id编号的位宽与接收方id编号的位宽相同。
28.在一可选实施例中,预设id编号的数量是根据接收方id编号的位宽确定的,预设id编号的数量小于或等于,其中,n表示接收方id编号的位宽。示例性地,接收方id编号的位宽为4位,则预设id编号的数量最多为个,也就是16个。
29.步骤s003:判断原始id编号是否对应有一个目标id编号。
30.步骤s004:若所述原始id编号对应有一个目标id编号,将所述原始id编号对应的目标id编号作为所述请求对应的目标id编号。
31.步骤s005:若所述原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将所述原始id编号映射为目标id编号。
32.步骤s006向接收方发送目标id编号以及请求,以使接收方根据目标id编号执行请
求。
33.本发明实施例首先接收请求以及请求的原始id编号,根据接收方的位宽预设有多个预设id编号,在多个预设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号,由于预设id编号是根据接收方的位宽预设的,因此预设id编号的位宽符合接收方的位宽,从而实现发送给接收方的id编号的位宽符合接收方的位宽。向接收方发送目标id编号以及请求,以使接收方根据目标id编号执行请求,本发明实施例实现了发送给接收方的id编号的位宽符合接收方的位宽,不需要对接收方位宽进行修改,降低开发周期的额外消耗和资源浪费,本发明实施例与相关技术中对发送方id编号进行截位相比,不对发送方id编号做截位操作,两个不同的发送方id编号的低位有可能是相同的,截位后,有可能出现将不同的发送方id编号截成相同的id编号的情况,同时,若原始id编号已经对应有一个目标id编号,则将原始id编号对应的目标id编号作为请求对应的目标id编号,若原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将原始id编号映射为目标id编号,也就是说,相同的原始id编号会被映射为相同的目标id编号,不同的原始id编号会被映射为不同的目标id编号,本发明实施例不会出现两个发送方id在接收方接受和处理的是相同id的情况,保证由发送方传给接收方的id编号是唯一的编号。
34.在一可选实施例中,本发明实施例提供的id编号动态重分配的方法,将原始id编号存储到与目标id编号对应的存储空间。
35.在一可选实施例中,如图2所示,为目标id编号对应的存储空间示意图。一个预设id编号对应一个存储空间。
36.在一可选实施例中,本发明实施例提供的id编号动态重分配的方法,包括:首先,接收接收方发送的第一响应信息,第一响应信息是接收方执行请求后生成的,第一响应信息中包含目标id编号。
37.其次,根据存储空间确定与目标id编号对应的原始id编号。
38.最后,根据原始id编号形成第二响应信息,将第二响应信息发送给发送方。
39.在一可选实施例中,本发明实施例在得到请求的原始id编号对应的目标id编号后,将请求的原始id编号存储到目标id编号对应的存储空间中,当响应结束后,接收方发送第一响应信息,第一响应信息中包含目标id编号,便于根据存储队列确定与目标id编号对应的原始id编号,根据原始id编号形成第二响应信息,将第二响应信息发送给发送方,从而使发送方接收到响应结束的信息。
40.在一可选实施例中,如图1所示,在本发明实施例提供的id编号动态重分配的方法的步骤s004中,若原始id编号对应有一个目标id编号,将原始id编号对应的目标id编号作为请求对应的目标id编号。
41.在本发明实施例中,存在不同的请求对应相同的原始id编号的情况,若已经为第一请求对应的原始id编号分配了一个目标id编号,则再接收到第二请求后,发现该第二请求对应的原始id编号与第一请求对应的原始id编号相同,则将第一请求对应的原始id编号的目标id编号,确定为第二请求对应的原始id编号对应的目标id编号。
42.在一可选实施例中,如图3所示为不同请求映射过程举例示意图,当读请求与写请求的原始id编号一样时,也就是图3中原始id编号为x,将读请求与写请求的原始id编号映射成一样的目标id编号,也就是图3中的y。
43.在一可选实施例中,示例性地,如表1所示,为不同请求映射过程举例,序号为1的读请求,原始id编号为1001,将原始id编号1001映射为0,序号为2的读请求,原始id编号为2001,将原始id编号2001映射为1,序号为3的写请求,原始id编号为1001,与序号为1的读请求的原始id编号相同,故将原始id编号1001同样映射为0,序号为4的写请求,原始id编号为2001,与序号为3的读请求的原始id编号相同,故将原始id编号2001同样映射为1。
44.在一可选实施例中,响应是指将数据读取或者写入,响应结束是指将数据读取或者写入完成,在表1中,响应值为exokay或okay,exokay和okay的形式不同,但是处理方式相同。
45.表1:不同请求映射过程在一可选实施例中,不论不同的请求还是相同的请求,只要原始id编号相同,就将原始id编号映射为相同的目标id编号,示例性地,如图4所示,为不同请求或相同请求映射过程举例示意图,读请求1到读请求n的原始id编号都为x,则将读请求1到读请求n的目标id编号都映射为y,写请求的原始id编号也为x,则将写请求的目标id编号也射为y。
46.在一可选实施例中,示例性地,如表2所示,为不同请求或相同请求映射过程举例,序号为1,2,3的读请求的原始id编号都为1001,则将序号为1,2,3的读请求的原始id编号都映射为0,序号为4的写请求原始id编号为1001,则将序号为4的写请求原始id编号也射为0。
47.表2:不同请求或相同请求映射过程举例在一可选实施例中,如图1所示,在本发明实施例提供的id编号动态重分配的方法的步骤s005中,若原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将原始id编号映射为目标id编号。
48.在一可选实施例中,若原始id编号不对应任何目标id编,也就是该原始id编号未被分配过目标id编号,则将该原始id编号映射为任意一个未被分配的目标id编号。
49.在一可选实施例中,若原始id编号不对应任何目标id编号,就在多个未被分配的预设id编号中任意选择一个目标id编号,作为该原始id编号对应的目标id编号,实现预设id编号的动态分配。
50.在一可选实施例中,本发明实施例提供的id编号动态重分配的方法,将映射次数为0的预设id编号判定为未被分配的预设id编号。
51.在一可选实施例中,本发明实施例提供的id编号动态重分配的方法,在多个的预
设id编号中选择一个目标id编号,将请求的原始id编号映射为目标id编号的步骤,方法还包括:将目标id编号的映射次数加一;当接收到响应结束信息后,将响应结束信息对应的目标id编号的映射次数减一。
52.在一可选实施例中,对于每个目标id编号,会对其进行映射次数的记录,当某一目标id编号被映射一次,此目标id编号的映射次数加一,当此目标id编号接收到响应结束的信息,将此目标id编号的映射次数减一,直至该目标id编号的映射次数为0时,将其判定为未被分配的预设id编号。
53.在一可选实施例中,若发送方id编号的位宽大于接收方id编号的位宽,则发送方能发送的原始id编号的数量大于接收方可以接收的id的数量,此时预设id编号的数量也一定是小于发送所能发送的原始id编号的数量的,因此,当接收到原始id编号后,会存在没有未被分配的预设id编号可以分配给原始id编号的情况,此时id编号需要被挂起等待,直到其中一个预设id编号的映射次数为0,将该预设id编号作为挂起队列中第一个id编号的目标id编号。
54.在一可选实施例中,当发送方id编号的位宽大于接收方id编号的位宽时,为了尽可能地减少等待时间,预设id编号的数量取2n。
55.在一可选实施例中,若发送方id编号的位宽小于接收方id编号的位宽,为了避免资源浪费,可以将预设id编号的数量取2m,m为发送方id编号的位宽。
56.本发明实施例还提供一种计算机设备,如图5是根据一示例性实施例提出的一种计算机设备的硬件结构示意图。
57.如图5所示,该设备包括一个或多个处理器501以及存储器502,存储器502包括持久内存、易失内存和硬盘,图5中以一个处理器501为例。该设备还可以包括:输入装置503和输出装置504。
58.处理器501、存储器502、输入装置503和输出装置504可以通过总线或者其他方式连接,图5中以通过总线连接为例。
59.处理器501可以为中央处理器(central processing unit,cpu)。处理器501还可以为其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
60.存储器502作为一种非暂态计算机可读存储介质,包括持久内存、易失内存和硬盘,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本技术实施例中的业务管理方法对应的程序指令模块。处理器501通过运行存储在存储器502中的非暂态软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述任意一种id编号动态重分配的方法。
61.存储器502可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据、需要使用的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储
器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器502可选包括相对于处理器501远程设置的存储器,这些远程存储器可以通过网络连接至数据处理装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
62.输入装置503可接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键信号输入。输出装置504可包括显示屏等显示设备。
63.一个或者多个模块存储在存储器502中,当被一个或者多个处理器501执行时,执行如图1所示的方法。
64.上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,具体可参见如图1和图2所示的实施例中的相关描述。
65.本发明实施例还提供了一种计算机可读存储介质,如图6所示,计算机可读存储介质中存储有计算机可执行指令601,该计算机可执行指令601可执行上述任意方法实施例中的id编号动态重分配的方法。
66.存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)、随机存储记忆体(random access memory,ram)、快闪存储器(flash memory)、硬盘(hard disk drive,hdd)或固态硬盘(solid-state drive,ssd)等;存储介质还可以包括上述种类的存储器的组合。
67.显然,上述实施例仅仅是为清楚地说明所作的举例,而并非对实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或变动仍处于本发明创造的保护范围之中。
技术特征:
1.一种id编号动态重分配的方法,其特征在于,包括:接收发送方发送的请求以及所述请求的原始id编号;在多个的预设id编号中选择一个目标id编号,将所述请求的所述原始id编号映射为所述目标id编号,所述预设id编号的位宽与接收方id编号的位宽相同;若所述原始id编号对应有一个目标id编号,将所述原始id编号对应的目标id编号作为所述请求对应的目标id编号;若所述原始id编号不对应任何目标id编号,在多个未被分配的预设id编号中选择一个目标id编号,将所述原始id编号映射为目标id编号;向所述接收方发送所述目标id编号以及所述请求,以使所述接收方根据所述目标id编号执行所述请求。2.根据权利要求1所述的id编号动态重分配的方法,其特征在于,所述方法还包括:将所述原始id编号存储到与所述目标id编号对应的存储空间中。3.根据权利要求2所述的id编号动态重分配的方法,其特征在于,所述方法还包括:接收所述接收方发送的第一响应信息,所述第一响应信息是所述接收方执行所述请求后生成的,所述第一响应信息中包含所述目标id编号;根据所述存储空间确定与所述目标id编号对应的所述原始id编号;根据所述原始id编号形成第二响应信息,将所述第二响应信息发送给所述发送方。4.根据权利要求1所述的id编号动态重分配的方法,其特征在于,包括:将映射次数为0的预设id编号判定为未被分配的预设id编号。5.根据权利要求4所述的id编号动态重分配的方法,其特征在于,所述在多个的预设id编号中选择一个目标id编号,将所述请求的所述原始id编号映射为所述目标id编号的步骤,所述方法还包括:将所述目标id编号的映射次数加一;当接收到响应结束信息后,将所述响应结束信息对应的所述目标id编号的映射次数减一。6.根据权利要求1所述的id编号动态重分配的方法,其特征在于,包括:所述预设id编号的数量是根据接收方id编号的位宽确定的。7.一种计算机设备,其特征在于,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,从而执行如权利要求1-6中任一项所述的id编号动态重分配的方法。8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行如权利要求1-6中任一项所述的id编号动态重分配的方法。
技术总结
本发明提供一种ID编号动态重分配的方法、计算机设备及介质,包括:接收发送方发送的请求以及请求的原始ID编号;在多个的预设ID编号中选择一个目标ID编号,将请求的原始ID编号映射为目标ID编号,预设ID编号的位宽与接收方ID编号的位宽相同;若所述原始ID编号对应有一个目标ID编号,将所述原始ID编号对应的目标ID编号作为所述请求对应的目标ID编号;若所述原始ID编号不对应任何目标ID编号,在多个未被分配的预设ID编号中选择一个目标ID编号,将所述原始ID编号映射为目标ID编号;向接收方发送目标ID编号以及请求,以使接收方根据目标ID编号执行请求。本发明实现ID编号的态重分配。本发明实现ID编号的态重分配。本发明实现ID编号的态重分配。
技术研发人员:强鹏 刘蕊丽
受保护的技术使用者:太初(无锡)电子科技有限公司
技术研发日:2023.06.12
技术公布日:2023/7/12
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
