一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

芯片算法升级方法、装置和芯片与流程

2022-05-06 10:29:07 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,具体而言,涉及一种芯片算法升级方法、装置和芯片。


背景技术:

2.随着科学技术的发展,越来越多的电子设备开始进入人们的工作生活,人们可以通过电子设备来运行一些应用程序以实现各种各样的功能,以达到娱乐或工作的目的。一般地,电子设备需要通过芯片来执行相应的算法才能实现相应的功能。
3.相关技术中,各种各样的算法都被应用在芯片领域中,比如一些加密算法等。为了修复程序的漏洞或增加电子设备的功能,就需要对电子设备的芯片中的算法进行升级,一般可以通过将包含需要升级的新算法的代码下载到芯片,并在芯片中通过芯片内核运行新算法的代码以替换芯片中原有算法的方式来对芯片中的算法进行升级。
4.然而,由于相关技术中升级的方式需要下载并运行新算法的代码,导致占用的内核资源的增加,进一步导致升级时间过长的问题。


技术实现要素:

5.本技术的目的在于提供一种芯片算法升级方法、装置和芯片,可以达到缩短算法升级的时间、提高算法升级效率的效果。
6.本技术的实施例是这样实现的:本技术实施例的第一方面,提供一种芯片算法升级方法, 应用于芯片,所述芯片上内置有目标算法模块,所述方法包括:获取指令序列,并将所述指令序列存储至所述芯片的指令存储单元,其中,所述指令序列通过对所述目标算法模块的升级后固件进行编译得到,所述指令序列中包括按执行顺序排列的多个基础指令,所述基础指令为所述芯片的硬件逻辑可识别的指令;从所述指令存储单元读取所述基础指令,并执行所述基础指令,直至所述指令存储单元中存储的所述指令序列的所有基础指令被执行完毕,并确定所述目标算法模块中的算法升级完毕。
7.可选地,所述基础指令包括:加法指令、减法指令、乘法指令、除法指令、求模指令、指数指令、查表指令。
8.可选地,所述获取指令序列,并将所述指令序列存储至所述芯片的指令存储单元,包括:以烧录方式获取所述指令序列以及将所述指令序列存储至所述芯片的指令存储单元。
9.可选地,所述从所述指令存储单元读取所述基础指令,包括:按照所述执行顺序从所述指令存储单元读取所述基础指令。
10.可选地,所述从所述指令存储单元读取所述基础指令,并执行所述基础指令,包
括:从所述指令存储单元读取所述基础指令,并对所述基础指令进行解析,得到解析结果,所述解析结果包括:运算类型、参与运算的数据存储地址、数据长度;将所述解析结果发送至所述芯片的控制单元;由所述控制单元根据所述解析结果控制所述基础指令的执行。
11.可选地,所述由所述控制单元根据所述解析结果控制所述基础指令的执行,包括:由所述控制单元根据所述参与运算的数据存储地址以及所述数据长度读取待运算数据;按照所述运算类型对所述待运算数据进行运算,以完成所述基础指令的执行。
12.可选地,所述由所述控制单元根据所述参与运算的数据存储地址以及所述数据长度读取待运算数据,包括:由所述控制单元根据所述参与运算的数据存储地址以及所述数据长度从所述芯片的数据存储单元中读取待运算数据。
13.可选地,所述按照所述运算类型对所述待运算数据进行运算,以完成所述基础指令的执行,包括:由所述控制单元将所述待运算数据以及所述运算类型发送给所述芯片的基础运算单元,由所述基础运算单元以所述运算类型对所述待运算数据进行运算,并将运算结果发送给所述数据存储单元进行存储。
14.本技术实施例的第二方面,提供了一种芯片算法升级装置,应用于芯片,所述芯片上内置有目标算法模块,所述装置包括:获取单元,用于获取指令序列,并将所述指令序列存储至所述芯片的指令存储单元,其中,所述指令序列通过对所述目标算法模块的升级后固件进行编译得到,所述指令序列中包括按执行顺序排列的多个基础指令,所述基础指令为所述芯片的硬件逻辑可识别的指令;执行确定模块,用于从所述指令存储单元读取所述基础指令,并执行所述基础指令,直至所述指令存储单元中存储的所述指令序列的所有基础指令被执行完毕,并确定所述目标算法模块中的算法升级完毕。
15.本技术实施例的第三方面,提供了一种芯片,所述芯片包括:指令存储单元、控制单元、数据存储单元以及基础运算单元;所述指令存储单元用于存储指令序列,其中,所述指令序列通过对所述目标算法模块的升级后固件进行编译得到,所述指令序列中包括按执行顺序排列的多个基础指令,所述基础指令为所述芯片的硬件逻辑可识别的指令;所述控制单元用于从所述指令存储单元读取所述指令序列中的基础指令,并根据所述基础指令的解析结果控制所述基础指令的执行;所述数据存储单元用于存储待运算数据;所述基础运算单元用于以所述解析结果中的运算类型对所述待运算数据进行运算,并将运算结果发送给所述数据存储单元进行存储。本技术实施例的有益效果包括:本技术实施例提供的一种芯片算法升级方法,通过获取指令序列,并将该指令序列存储至该芯片的指令存储单元,从该指令存储单元读取该基础指令,并执行该基础指令,
直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,并确定该目标算法模块中的算法升级完毕。
16.其中,获取指令序列,并将该指令序列存储至该芯片的指令存储单元,由于该指令序列通过对上述目标算法模块的升级后固件进行编译得到,并且中包括按该执行顺序排列多个基础指令,就可以将用户或相关技术人员选择的需要升级的算法转换为简单的指令序列,并且由于该指令序列包括的各基础指令和需要运算的各数据均是原本就存储在该芯片中的,这样就不用将用于实现需要升级的算法的代码全部写入该芯片中,而是通过对该芯片中原本就存储的各数据按照该芯片中原本就存储的各基础指令进行运算就可以实现对该芯片的目标算法模块或算法或固件进行升级的目的。
17.并且,从该指令存储单元读取该基础指令,并执行该基础指令,直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,就可以确定该目标算法模块的固件已经完成升级,进而可以确定对该芯片的算法完成升级。如此,可以降低在算法升级时对该芯片的内核资源的占用,进而可以达到缩短算法升级的时间、提高算法升级效率的效果。
附图说明
18.为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
19.图1是本技术实施例提供的一种芯片的结构示意图;图2为本技术实施例提供的第一种芯片算法升级方法的流程图;图3为本技术实施例提供的第二种芯片算法升级方法的流程图;图4为本技术实施例提供的第三种芯片算法升级方法的流程图;图5为本技术实施例提供的第四种芯片算法升级方法的流程图;图6为本技术实施例提供的第五种芯片算法升级方法的流程图;图7为本技术实施例提供的第六种芯片算法升级方法的流程图;图8为本技术实施例提供的一种芯片算法升级装置的结构示意图。
具体实施方式
20.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
21.因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
22.在相关技术中,各种各样的算法都被应用在芯片领域中,比如一些加密算法等。为了修复程序的漏洞或增加电子设备的功能,就需要对电子设备的芯片中的算法进行升级,
一般可以通过将包含需要升级的新算法的代码下载到芯片,并在芯片中通过芯片内核运行新算法的代码以替换芯片中原有算法的方式来对芯片中的算法进行升级。然而,这种方案需要下载并运行新算法的代码,这就造成了占用的内核资源的增加,进一步导致升级时间过长的问题。另外,一般也可以通过硬件来实现芯片中的算法,但是一般芯片的硬件架构在封装之后是无法随意修改的,所以一个架构的硬件只能实现特定算法的功能,这样就无法对芯片中的算法进行针对性的升级。
23.为此,本技术实施例提供了芯片算法升级方法,通过获取指令序列,并将指令序列存储至芯片的指令存储单元,从指令存储单元读取基础指令,并执行基础指令,直至指令存储单元中存储的指令序列的所有基础指令被执行完毕,并确定算法升级完毕,可以达到缩短算法升级的时间、提高算法升级效率的效果。
24.本技术实施例以应用在芯片中的芯片算法升级方法为例进行说明。但不表明本技术实施例仅能应用于芯片中进行算法升级。
25.图1是本技术实施例提供的一种芯片的结构示意图,参见图1,该芯片可以包括指令存储单元a、控制单元b、基础运算单元c、数据存储单元d。
26.可选地,指令存储单元a用于存储各种指令,比如可以存储加法指令、减法指令等一些用于进行基本运算的指令。
27.可选地,基础运算单元c用于按照相应的运算类型对数据进行相应的运算。例如,可以将数据a和数据b进行求和。
28.可选地,数据存储单元d可以用于存储各种各样的数据。并且,数据存储单元d还可以包括多个数据存储子单元,每个数据存储子单元可以存储由基础运算单元c运算得到的各个运算结果。本技术实施例对此不作限定。
29.另外,数据存储单元d中的数据存储子单元的数量可以根据实际需要进行设置,例如,如图1所示的,可以将数据存储子单元的数量为4个,当然也可以将各数据存储子单元的数量设置为其他可能的值。本技术实施例对此不作限定。
30.可选地,控制单元b可以控制指令存储单元a存储或删除指令、也可以从数据存储单元d中获取存储在数据存储单元d中的各数据、还可以控制基础运算单元c将从数据存储单元d中获取的各数据进行运算。本技术实施例对此不作限定。
31.一种可能的方式中,该芯片还可以包括指令获取单元。
32.指令获取单元用于在控制单元b的控制下,从指令存储单元a中读取存储在指令存储单元a中的各指令,并将读取到的各指令发送给控制单元b。
33.一般地,该芯片可以应用在各种各样的领域,以实现各种各样的功能,具体可以通过在芯片中烧录不同的代码以实现不同的功能。
34.该芯片或该可编程器件可以是单片机、处理器(cpu)、可编程逻辑控制器(plc)。
35.示例性地,该芯片上可以内置有目标算法模块,该目标算法模块中可以存储有相应的算法,通过执行该算法,可以使得该芯片实现相应的功能。
36.可选地,该算法可以是任意可能的算法,例如,该算法可以是高级加密标准(advanced encryption standard,简称aes)算法,aes算法是一种对称加密算法。该算法也可以是椭圆曲线密码编码学(elliptic curves cryptography,简称ecc)算法,ecc算法是一种公开密钥算法。本技术实施例对此不作限定。
37.下面对本技术实施例提供的芯片算法升级方法进行详细地解释说明。
38.图2为本技术提供的一种芯片算法升级方法的流程图,该方法可以应用于电子设备,该电子设备可以是前述的芯片、装载该芯片的设备或与该芯片通信连接的其他设备。参见图2,本技术实施例提供一种芯片算法升级方法,包括:步骤1001:获取指令序列,并将该指令序列存储至该芯片的指令存储单元。
39.可选地,该指令序列可以通过对上述目标算法模块的升级后固件进行编译得到。
40.该目标算法模块的升级后固件可以是指该芯片需要升级的算法对应的程序。当然,该芯片需要升级的算法可以是用户或相关技术人员根据实际需要选择的算法。本技术实施例对此不作限定。
41.可选地,该目标算法模块中可以存储有相应的算法,对该芯片进行算法升级可以是指升级该目标算法模块中的算法,具体可以是通过执行该指令序列中所有的基础指令来将该目标算法模块中存储的算法进行修改、组合或重新编译以实现对算法的升级。
42.固件可以是指该芯片内部保存的驱动程序。通过运行该固件,该芯片就可以按照标准的驱动实现特定机器的运行动作和特定的功能。
43.可选地,该指令序列中包括按执行顺序排列的多个基础指令。
44.具体地,该指令序列可以用于指示执行各基础指令的顺序,还可以用于指示需要运算的各个数据、各数据存储在该芯片中的数据存储地址、各数据的数据长度。这些需要运算的数据可以是存储在上述数据存储单元d中的数据。本技术实施例对此不作限定。
45.另外,该指令序列可以是由于该芯片连接的带有处理功能的升级设备对该芯片需要升级的算法进行运算得到的。具体地,该升级设备可以通过该芯片需要升级的算法进行解码、编译、转换,以生成该指令序列。这样,就不需要该芯片直接对需要升级的算法进行解码或编译,可以进一步降低该芯片的处理压力和内核资源占用。
46.可选地,该执行顺序可以是由该升级设备对该芯片需要升级的算法进行解码、编译,得到的用于将当前该芯片的该目标算法模块中的固件或算法升级为需要升级的固件或算法的执行各基础指令的顺序。
47.也就是说,在按照该执行顺序执行各基础指令的情况下,就可以将当前该芯片的该目标算法模块中的固件或算法升级为用户或相关技术人员选择的固件或算法。
48.可选地,该基础指令为该芯片的硬件逻辑可识别的指令。
49.具体地,该基础指令可以包括:加法指令、减法指令、乘法指令、除法指令、求模指令、指数指令、查表指令等能够被该芯片的硬件逻辑识别的指令。理所当然地,该基础指令还可以包括其他任意可能的指令。本技术实施例对此不作限定。
50.值得说明的是,由于该指令序列通过对上述目标算法模块的升级后固件进行编译得到,并且中包括按该执行顺序排列的多个基础指令,就可以将用户或相关技术人员选择的需要升级的算法转换为简单的指令序列,并且由于该指令序列包括的各基础指令和需要运算的各数据均是原本就存储在该芯片中的。这样,就不用将用于实现需要升级的算法的代码全部写入该芯片中,而是通过对该芯片中原本就存储的各数据按照该芯片中原本就存储的各基础指令进行运算就可以实现对该芯片的目标算法模块或算法或固件进行升级的目的。如此,可以降低在算法升级时对该芯片的内核资源的占用,进而可以达到缩短算法升级的时间、提高算法升级效率的效果。
51.步骤1002:从该指令存储单元读取该基础指令,并执行该基础指令,直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,并确定该目标算法模块中的算法升级完毕。
52.可选地,从该指令存储单元读取该基础指令的顺序可以是上述执行顺序。也就是说,可以按照该执行顺序来从该指令存储单元读取出各基础指令。本技术实施例对此不作限定。
53.可选地,也可以按照其他预先设定的调取顺序从该指令存储单元中获取各基础指令,或者可以从该指令存储单元中随机获取各基础指令。具体可以由相关技术人员根据实际需要进行设置。
54.另外,该预先设定的调取顺序可以是由相关技术人员提前设置的用于指示从该指令存储单元读取该基础指令的顺序。该预先设定的调取顺序可以与该执行顺序相同,也可以与该执行顺序不同。
55.理所当然地,还可以直接从该指令存储单元中获取全部的基础指令,然后在执行各基础指令时,按照该执行顺序执行各基础指令。本技术实施例对此不作限定。
56.可选地,执行该基础指令可以是指从该指令序列指示需要运算的各数据存储的地址获取一定数据长度的各数据,并按照对应的基础指令对一定数据长度的各数据进行运算,以得到运算结果。本技术实施例对此不作限定。
57.值得说明的是,在该指令序列的所有基础指令均被执行的情况下,则表征已经按照该执行顺序将各数据全部按照对应的基础指令进行运算并且得到了运算结果。这样,就可以确定该目标算法模块的固件已经完成升级,进而可以确定对该芯片的算法完成升级。
58.在本技术实施例中,通过获取指令序列,并将该指令序列存储至该芯片的指令存储单元,从该指令存储单元读取该基础指令,并执行该基础指令,直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,并确定该目标算法模块中的算法升级完毕。
59.其中,获取指令序列,并将该指令序列存储至该芯片的指令存储单元,由于该指令序列通过对上述目标算法模块的升级后固件进行编译得到,并且中包括按该执行顺序排列的多个基础指令,就可以将用户或相关技术人员选择的需要升级的算法转换为简单的指令序列,并且由于该指令序列包括的各基础指令和需要运算的各数据均是原本就存储在该芯片中的,这样就不用将用于实现需要升级的算法的代码全部写入该芯片中,而是通过对该芯片中原本就存储的各数据按照该芯片中原本就存储的各基础指令进行运算就可以实现对该芯片的目标算法模块或算法或固件进行升级的目的。
60.并且,从该指令存储单元读取该基础指令,并执行该基础指令,直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,就可以确定该目标算法模块的固件已经完成升级,进而可以确定对该芯片的算法完成升级。如此,可以降低在算法升级时对该芯片的内核资源的占用,进而可以达到缩短算法升级的时间、提高算法升级效率的效果。
61.一种可能的实现方式中,在图2的基础上,参见图3,获取指令序列,并将该指令序列存储至该芯片的指令存储单元,包括:步骤1003:以烧录方式获取该指令序列以及将该指令序列存储至该芯片的指令存储单元。
62.一般地,烧录是指给芯片或可编程器件写入程序或下载程序,也就是给芯片或该
可编程器件里存入程序文件,即录入用于实现特定功能的程序或数据。
63.示例性地,可以通过专门的编辑器件来对该芯片进行烧录。例如,可以通过六管测试烧录器、半自动烧录、全自动烧录器等编辑器件来对该芯片进行烧录。
64.值得说明的是,在由上述升级设备对该芯片需要升级的算法进行解码、编译、转换以生成该指令序列之后,通过烧录方式将该指令序列写入该芯片的指令存储单元中,就不需要该芯片直接对需要升级的算法进行解码或编译,可以进一步降低该芯片的处理压力和内核资源占用。
65.一种可能的实现方式中,在图2的基础上,参见图4,从该指令存储单元读取该基础指令,并执行该基础指令,包括:步骤1004:从该指令存储单元读取该基础指令,并对该基础指令进行解析,得到解析结果。
66.可选地,该解析结果包括:运算类型、参与运算的数据存储地址、数据长度。
67.示例性地,运算类型具体可以用于指示该基础指令是对各数据进行求和、对各数据进行求差、对各数据进行求积、对各数据进行求差、对各数据进行求模、对各数据进行求幂、对各数据进行求绝对值、在该芯片的数据存储单元中查找各数据等类型的指令。本技术实施例对此不作限定。
68.参与运算的数据存储地址就是该指令序列指示的需要运算的各数据存储在该芯片中的数据存储地址。
69.步骤1005:将该解析结果发送至该芯片的控制单元。
70.可选地,可以由上述的指令获取单元将该解析结果发送至该控制单元。
71.步骤1006:由该控制单元根据该解析结果控制该基础指令的执行。
72.示例性地,若该解析结果包括的运算类型为将数据a和数据b相乘并且将数据a和数据b相乘求得的乘积a与数据c进行求差处理得到最终的运算结果b,那么在执行该基础指令之后,将数据a和数据b相乘得到的乘积a就可以是a=a*b,再将乘积a与数据c进行求差处理得到的运算结果b就可以是b=a-c。
73.这样,就可以按照上述执行顺序执行各基础指令,并在各基础指令后分别得到一个运算结果,直至执行完所有的基础指令。如此,就可以准确地对该指令序列指示的需要处理的数据进行相应的运算,以得到准确地运算结果,进而实现对该芯片的算法的升级。
74.一种可能的实现方式中,在图4的基础上,参见图5,由该控制单元根据该解析结果控制该基础指令的执行,包括:步骤1007:由该控制单元根据该参与运算的数据存储地址以及该数据长度读取待运算数据。
75.可选地,该待运算数据就是该指令序列指示的需要运算的各数据。
76.可选地,该数据长度可以是指需要运算的各数据的数据长度,也可以是指在执行各基础指令对各数据进行运算时,各数据需要用到的数据长度。本技术实施例对此不作限定。
77.例如,若该参与运算的数据有数据a和数据b,数据a的数据长度为4,而数据b的数据长度为6,那么,在对数据a和数据b进行运算时,可以只获取与数据a的数据长度相同的数据b与数据a进行运算。
78.又例如,数据a为1.234,而数据b为0.12345,那么,在对数据a和数据b进行运算时,就可以只获取数据b中的前四个数据长度的数值与数据a进行运算。本技术实施例对此不作限定。
79.步骤1008:按照该运算类型对该待运算数据进行运算,以完成该基础指令的执行。
80.这样,就可以完成一个基础指令的执行,在一个基础指令执行完成的情况下,就可以按照上述执行顺序继续执行排列在这个基础指令之后的基础指令,直至完成所有的基础指令,就可以确定该目标算法模块中的算法升级完毕。
81.一种可能的实现方式中,在图5的基础上,参见图6,由该控制单元根据该参与运算的数据存储地址以及该数据长度读取待运算数据,包括:步骤1009:由该控制单元根据该参与运算的数据存储地址以及该数据长度从该芯片的数据存储单元中读取待运算数据。
82.由于该指令序列包括的各基础指令和需要运算的各数据均是原本就存储在该芯片中的,那么就可以从该芯片的数据存储单元中读取待运算数据根据各基础指令来进行运算。这样,就不用将用于实现需要升级的算法的代码全部写入该芯片中,而是通过对该芯片中原本就存储的各数据按照该芯片中原本就存储的各基础指令进行运算就可以实现对该芯片的目标算法模块或算法或固件进行升级的目的。如此,可以降低在算法升级时对该芯片的内核资源的占用,进而可以达到缩短算法升级的时间、提高算法升级效率的效果。
83.一种可能的实现方式中, 在图6的基础上,参见图7,按照该运算类型对该待运算数据进行运算,以完成该基础指令的执行,包括:步骤1010:由该控制单元将该待运算数据以及该运算类型发送给该芯片的基础运算单元,由该基础运算单元以该运算类型对该待运算数据进行运算,并将运算结果发送给该数据存储单元进行存储。
84.可选地,由于该数据存储单元可以包括多个数据存储子单元,那么,就可以将该运算结果分别发送给各数据存储子单元进行存储。
85.示例性地,可以按照该运算类型将该运算结果分别存储在各数据存储子单元中。例如,该数据存储单元包括4个数据存储子单元,那么这4个数据存储子单元可以分别存储加法指令、减法指令、乘法指令、除法指令执行后得到的运算结果。本技术实施例对此不作限定。
86.这样,就可以将该指令序列中的各基础指令按照该执行顺序执行得到的各运算结果均存储在该数据存储单元中,直至完成所有的基础指令,将所有的运算结果存储在该数据存储单元的情况下,就可以确定该目标算法模块的固件已经完成升级,进而可以确定对该芯片的算法完成升级。
87.下面以通过运算下式(1):a = a*a,式(2):b= a/c,式(3):c=d b,式(4):q=c*e计算16个32bit的数据以求得最终的运算结果q为例进行解释说明。
88.由上式可见,该执行顺序为依次执行与上式(1)对应的乘法指令、与上式(2)对应的除法指令、与上式(3)对应的加法指令和与上式(4)对应的乘法指令。
89.各基础指令的格式可以是{操作码 操作数1起始地址 操作数2起始地址 结果存储起始地址 数据长度}。
90.可选地,该操作码可以用于指示上述运算类型,例如,与上式(1)对应的乘法指令
的操作码可以是90h,与上式(2)对应的除法指令的操作码可以是91h,与上式(3)对应的加法指令的操作码可以是92h,与上式(4)对应的乘法指令的操作码也可以是90h。其中,h可以是指运算进制为16进制。
91.另外,90h的操作码还可以具体指示对应的指令为乘法指令,91h的操作码还可以具体指示对应的指令为除法指令,92h的操作码还可以具体指示对应的指令为加法指令。
92.可选地,该操作数1起始地址可以是指参与运算的其中一个数据的数据存储地址,该操作数2起始地址可以是指参与运算的另一个数据的数据存储地址。
93.在执行各基础指令的情况下,可以通过该操作数1起始地址和该操作数2起始地址从上述数据存储单元中获取需要用到的、参与运算的数据。若该操作数1起始地址和该操作数2起始地址对应的数据为空,那么就可以停止执行当前的基础指令,而按照上述执行顺序执行下一个基础指令。本技术实施例对此不做限定。
94.例如,上式(1)中的数据a的起始地址为00h,那么,与上式(1)对应的基础指令的操作数1起始地址和操作数2起始地址均可以为00h。
95.可选地,该结果存储起始地址可以是指对该待运算数据进行运算得到的各运算结果的存储地址。
96.例如,上式(1)中的运算结果a的结果存储起始地址为100h,那么,与上式(1)对应的基础指令的结果存储起始地址可以为100h。
97.可选地,该数据长度可以是指在执行各基础指令对各数据进行运算时,各数据需要用到的数据长度。例如,该数据长度可以是10h。本技术实施例对此不作限定。
98.那么,与上式(1)对应的基础指令就可以是{90 00 00 100 10}。
99.然而,在上式(2)中,参与运算的其中一个数据为上式(1)中的运算结果a,而参与运算的另一个数据为数据c的起始地址为80h,那么,与上式(2)对应的基础指令的操作数1起始地址和操作数2起始地址分别可以为100h和80h。
100.若上式(2)中的运算结果b的结果存储起始地址为00h,那么与上式(2)对应的基础指令就可以是{91 100 80 00 10}。
101.在上式(3)中,参与运算的其中一个数据为上式(2)中的运算结果b,而参与运算的另一个数据为数据d的起始地址为180h,那么,与上式(2)对应的基础指令的操作数1起始地址和操作数2起始地址分别可以为00h和180h。
102.若上式(3)中的运算结果c的结果存储起始地址为80h,那么与上式(3)对应的基础指令就可以是{92 00 180 80 10}。
103.在上式(4)中,参与运算的其中一个数据为上式(3)中的运算结果c,而参与运算的另一个数据为数据e的起始地址为100h,那么,与上式(2)对应的基础指令的操作数1起始地址和操作数2起始地址分别可以为80h和100h。
104.若上式(4)中的运算结果q的结果存储起始地址为00h,那么与上式(4)对应的基础指令就可以是{90 80 100 00 10}。
105.一种可能的方式,各基础指令的格式还可以是{操作码 操作数1起始地址 操作数2起始地址 结果存储起始地址 数据长度 跳转码}。
106.可选地,该跳转码可以用于指示各基础指令之间的运算关系,比如指示按照上述执行顺序排列在当前执行的基础指令的下一个基础指令中参与运算的两个数据中的任一
个数据是否为当前执行的基础指令得到的运算结果。
107.若是,那么在执行完当前基础指令的情况下,可以按照该跳转码将按照上述执行顺序排列在当前执行的基础指令的下一个基础指令中的该操作数1起始地址或该操作数2起始地址对应跳转到与当前执行的基础指令得到的运算结果对应的结果存储起始地址。
108.可选地,可以用不同符号的标记来区分不同的运算类型。该符号可以是数字、字母等。
109.例如,可以用数字1来标记按照上述执行顺序排列在当前执行的基础指令的下一个基础指令中参与运算的两个数据中的至少一个数据为当前执行的基础指令得到的运算结果,可以用数字2来标记按照上述执行顺序排列在当前执行的基础指令的下一个基础指令中参与运算的两个数据均不是当前执行的基础指令得到的运算结果。本技术实施例对此不作限定。
110.那么,上述的与上式(1)对应的基础指令就可以是{90 00 00 100 10 1},上述的与上式(2)对应的基础指令就可以是{91 100 80 00 10 1},上述的与上式(3)对应的基础指令就可以是{92 00 180 80 10 1},上述的与上式(4)对应的基础指令就可以是{90 80 100 00 10 2}。本技术实施例对此不做限定。
111.一种可能的方式,式(1)a = a*a 可以表征执行与式(1)对应的基础指令可以从上述数据存储单元读取16个数据并实现乘法,并将运算结果a写入该数据存储单元。
112.式(2)b= a/c 可以表征执行与式(2)对应的基础指令从该数据存储单元读取16个数据并实现除法,并可以将运算结果b写入该数据存储单元。
113.式(3)c=d b 可以表征执行与式(3)对应的基础指令从该数据存储单元读取16个数据并实现加法,并将运算结果c写入该数据存储单元。
114.式(4)q=c*e 可以表征执行与式(4)对应的基础指令从该数据存储单元读取16个数据并实现乘法,并将运算结果q写入该数据存储单元。
115.另外,该控制单元可以获取整个运算过程得到的各个运算结果。
116.理所当然地,在上述运算过程中,可以分别从该数据存储单元中的各数据存储子单元读取数据,也可以将各个运算结果分别写入到该数据存储单元中的各数据存储子单元。本技术实施例对此不作限定。
117.还可以由上述控制单元将从该数据存储单元中的一个数据存储子单元读取的16个32位的数据迁移到该数据存储单元中的另一个数据存储子单元。本技术实施例对此不作限定。
118.下述对用以执行的本技术所提供芯片算法升级方法的装置等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
119.图8是本技术实施例提供的一种芯片算法升级装置的结构示意图,参见图8,应用于上述芯片,该芯片上内置有目标算法模块,该装置包括:获取模块201,用于获取指令序列,并将该指令序列存储至该芯片的指令存储单元。
120.其中,该指令序列通过对该目标算法模块的升级后固件进行编译得到,该指令序列中包括按执行顺序排列的多个基础指令,该基础指令为该芯片的硬件逻辑可识别的指令;
执行确定模块202,用于从该指令存储单元读取该基础指令,并执行该基础指令,直至该指令存储单元中存储的该指令序列的所有基础指令被执行完毕,并确定该目标算法模块中的算法升级完毕。
121.上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。
122.以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,简称asic),或,一个或多个微控制器,或,一个或者多个现场可编程门阵列(field programmable gate array,简称fpga)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,简称cpu)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称soc)的形式实现。
123.下述对本技术所提供的一种芯片进行详细地说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
124.本技术实施例提供了一种芯片,继续参见图1,该芯片包括:指令存储单元a、控制单元b、数据存储单元d以及基础运算单元c。
125.指令存储单元a用于存储指令序列。
126.可选地,该指令序列通过对该目标算法模块的升级后固件进行编译得到。
127.可选地,该指令序列中包括按执行顺序排列的多个基础指令。
128.具体地,该指令序列可以用于指示执行各基础指令的顺序,还可以用于指示需要运算的各个数据、各数据存储在该芯片中的数据存储地址、各数据的数据长度。这些需要运算的数据可以是存储在数据存储单元d中的数据。本技术实施例对此不作限定。
129.可选地,该基础指令为该芯片的硬件逻辑可识别的指令。
130.控制单元b用于从该指令存储单元读取该指令序列中的基础指令,并根据该基础指令的解析结果控制该基础指令的执行。
131.可选地,控制单元b从该指令存储单元读取该基础指令的顺序可以是该执行顺序。
132.可选地,该解析结果包括:运算类型、参与运算的数据存储地址、数据长度。
133.其中,控制单元b具体还可以用于根据该参与运算的数据存储地址以及该数据长度从该芯片的数据存储单元中读取待运算数据。
134.另外,执行该基础指令可以是指从该指令序列指示需要运算的各数据存储的地址获取一定数据长度的各数据,并按照对应的基础指令对一定数据长度的各数据进行运算,以得到运算结果。本技术实施例对此不作限定。
135.基础运算单元c用于以该解析结果中的运算类型对待运算数据进行运算,并将运算结果发送给数据存储单元d进行存储。
136.可选地,该待运算数据就是该指令序列指示的需要运算的各数据。
137.示例性地,若该解析结果包括的运算类型为将数据a和数据b相乘并且将数据a和数据b相乘求得的乘积a与数据c进行求差处理得到最终的运算结果b,那么在执行该基础指令之后,将数据a和数据b相乘得到的乘积a就可以是a=a*a,再将乘积a与数据c进行求差处理得到的运算结果b就可以是b=a-c。
138.数据存储单元d用于存储待运算数据。
139.数据存储单元d还可以包括多个数据存储子单元,每个数据存储子单元可以存储由基础运算单元c运算得到的各个运算结果。本技术实施例对此不作限定。
140.一种可能的方式中,该芯片还可以包括指令获取单元。该指令获取单元可以用于在控制单元b的控制下,从指令存储单元a中读取存储在指令存储单元a中的各指令,并将读取到的各指令发送给控制单元b。该指令获取单元还可以用于将该解析结果发送至该控制单元。
141.在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
142.作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
143.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
144.上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文:read-only memory,简称:rom)、随机存取存储器(英文:random access memory,简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。
145.上仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
146.以上所述仅为本技术的优选实施例而已,并不用于限制本技术,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献