存储方法、装置、终端设备及计算机可读存储介质与流程

文档序号:33321816发布日期:2023-03-03 21:03阅读:24来源:国知局
存储方法、装置、终端设备及计算机可读存储介质与流程

1.本技术属于计算机技术领域,尤其涉及一种存储方法、装置、终端设备及计算机可读存储介质。


背景技术:

2.终端设备在使用一段时间之后,随着终端设备的存储空间的频繁分配和释放,终端设备的存储空间中会产生碎片空间。当存储空间中包括较多碎片空间时,容易发生越界存储的情况。例如,当存储地址超过了碎片空间的地址范围(即落入已用空间),将会破坏已用空间内的数据。越界存储情况的发生,容易导致相关程序的崩溃、降低程序运行的安全性。


技术实现要素:

3.本技术实施例提供了一种存储方法、装置、终端设备及计算机可读存储介质,可以有效避免越界存储情况的发生,进而提高程序运行的安全性。
4.第一方面,本技术实施例提供了一种存储方法,应用于存储空间,所述存储空间中包括至少一个碎片空间,每个所述碎片空间的前端和/或后端为已用空间,所述方法包括:
5.获取第一地址,所述第一地址为存储数据的起始地址;
6.当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围;
7.获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间;
8.根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址;
9.将所述存储数据的起始地址从所述第一地址更新为所述第二地址。
10.本技术实施例中,当存储数据的起始地址越界时,获取目标空间的起始地址,相当于确定出即将跳转到的碎片空间;根据存储数据的起始地址的越界范围和目标空间的起始地址计算第二地址,将存储数据的起始地址更新为第二地址,即调整存储数据的起始地址。通过上述方法,能够在存储数据的起始地址越界时,及时调整存储数据的起始地址,有效避免了越界存储情况的发生,进而提高了程序运行的安全性。
11.在第一方面的一种可能的实现方式中,在当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围之前,所述方法还包括:
12.若所述第一地址满足第一预设条件或第二预设条件,则所述第一地址不属于所述存储空间中的任意一个所述碎片空间;
13.其中,所述第一预设条件为所述第一地址大于第i个碎片空间的结束地址、且小于第i+1个碎片空间的起始地址,所述第二预设条件为所述第一地址小于第1个碎片空间的起始地址或大于第n个碎片空间的结束地址,其中,i为小于n的正整数,所述n为所述存储空间中所述碎片空间的总个数。
14.在第一方面的一种可能的实现方式中,所述当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,包括:
15.当所述第一地址不属于任意一个所述碎片空间,判断所述第一地址是否大于第j个碎片空间的结束地址,其中,j为小于或大于n的正整数,所述n为所述存储空间中所述碎片空间的总个数;
16.若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围。
17.在第一方面的一种可能的实现方式中,所述若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围,包括:
18.若所述第一地址大于所述第j个碎片空间的结束地址,则判断所述j是否小于所述n;
19.若所述j小于所述n,则判断所述第一地址是否小于第j+1个碎片空间的起始地址;
20.若所述第一地址小于所述第j+1个碎片空间的起始地址,则将所述第j个碎片空间后端的已用空间的地址范围确定为所述第一地址的所述越界范围;
21.若所述j等于所述n,则所述第一地址的所述越界地址为大于所述第j个碎片空间的结束地址。
22.在第一方面的一种可能的实现方式中,所述根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址,包括:
23.计算所述第一地址的越界范围的起始地址和所述第一地址的地址差值;
24.根据所述地址差值和所述目标空间的起始地址计算所述第二地址。
25.在第一方面的一种可能的实现方式中,所述方法还包括:
26.当所述第一地址属于所述存储空间中的任意一个所述碎片空间,所述存储数据的起始地址维持所述第一地址。
27.在第一方面的一种可能的实现方式中,在将所述存储数据的起始地址从所述第一地址更新为所述第二地址之后,所述方法还包括:
28.当所述第二地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第二地址的越界范围;
29.根据所述第二地址的越界范围和所述目标空间的起始地址计算第三地址;
30.将所述存储数据的起始地址从所述第二地址更新为所述第三地址。
31.第二方面,本技术实施例提供了一种存储装置,应用于存储空间,所述存储空间中包括至少一个碎片空间,每个所述碎片空间的前端和/或后端为已用空间,所述装置包括:
32.第一获取单元,用于获取第一地址,所述第一地址为存储数据的起始地址;
33.越界确定单元,用于当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围;
34.第二获取单元,用于获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间;
35.地址计算单元,用于根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址;
36.地址更新单元,用于将所述存储数据的起始地址从所述第一地址更新为所述第二地址。
37.第三方面,本技术实施例提供了一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如上述第一方面中任一项所述的存储方法。
38.第四方面,本技术实施例提供了一种计算机可读存储介质,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上述第一方面中任一项所述的存储方法。
39.第五方面,本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的存储方法。
40.可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
41.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
42.图1是本技术实施例提供的碎片空间的示意图;
43.图2是本技术实施例提供的存储方法的流程示意图;
44.图3是本技术实施例提供的存储方法的应用场景示意图;
45.图4是本技术另一实施例提供的存储方法的应用场景示意图;
46.图5是本技术实施例提供的存储装置的结构框图;
47.图6是本技术实施例提供的终端设备的结构示意图。
具体实施方式
48.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
49.应当理解,当在本技术说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
50.如在本技术说明书和所附权利要求书中所使用的那样,术语“若”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。
51.另外,在本技术说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
52.在本技术说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本技术的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书
中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。
53.首先介绍本技术实施例的应用背景。
54.随着卷积神经网络的发展,人工智能行业的芯片设计也呈现了蓬勃发展的趋势。其中绝大部分芯片都需要大容量存储用来存储输入特征值、输出特征值、计算权重、或者其他计算中间结果,这时候存储的高效利用就显得尤为重要。一般的设计中,会设计一个共享存储空间,用来存储各个子模块的输入数据,输出结果,以及各种参数,由于各个子模块的工作时间不一样,需要的数据大小也不一样,这就带来一个问题,随着工作时间的进展,共享存储空间中会产生碎片空间。
55.示例性的,参见图1,是本技术实施例提供的碎片空间的示意图。图1中的(a)所示为系统初始化时的共享存储空间,图1中的(b)所示为第一次分配存储空间后的共享存储空间(图中阴影部分为已用空间,空白部分为可用空间),图1中的(c)所示为多次分配存储空间后的共享存储空间。从图1可以看出,多次分配存储空间后,共享存储空间中产生了多个碎片空间(图中空白部分),每个碎片空间的前端和/或后端为已用空间。
56.当存储空间中包括较多碎片空间时,容易发生越界存储的情况。例如,当存储地址超过了碎片空间的地址范围(即落入已用空间),将会破坏已用空间内的数据。越界存储情况的发生,容易导致相关程序的崩溃、降低程序运行的安全性。为了解决上述问题,本技术实施例提供了一种存储方法。
57.参见图2,是本技术实施例提供的存储方法的流程示意图,作为示例而非限定,所述方法可以包括以下步骤:
58.s201,获取第一地址,第一地址为存储数据的起始地址。
59.例如:存储数据的起始地址为0x400,则从0x400处开始存储数据。实际应用中,第一地址通常是动态分配的地址,可以通过地址指针获取第一地址。当然,部分应用中,第一地址也可以是固定占用地址,该情况下,第一地址是固定的,可以将预设的存储数据的起始地址确定为第一地址。
60.在一个实施例中,首先需要确定第一地址是否越界。本技术实施例中,地址越界可以理解为,第一地址不属于碎片空间,而属于已用空间。
61.可选的,可以通过判断第一地址是否属于碎片空间的方式确定第一地址是否越界;若第一地址不属于任意一个碎片空间,则第一地址越界;若第一地址属于任意一个碎片空间,则第一地址未越界。具体的:
62.若第一地址满足第一预设条件或第二预设条件,则第一地址不属于存储空间中的任意一个碎片空间。
63.其中,第一预设条件为所述第一地址大于第i个碎片空间的结束地址、且小于第i+1个碎片空间的起始地址,第二预设条件为第一地址小于第1个碎片空间的起始地址或大于第n个碎片空间的结束地址,其中,i为小于n的正整数,n为存储空间中碎片空间的总个数。
64.在一个应用场景中,参见图3,是本技术实施例提供的存储方法的应用场景示意图。如图3所示的存储空间中包括两个碎片空间,每个碎片空间的前端和后端分别为已用空间(如图3中的灰度部分)。判断第一地址是否属于存储空间中的任意一个碎片空间的过程
可以为:先判断第一地址是否大于碎片空间1的结束地址end_addr1、且小于碎片空间2的起始地址st_addr2;若是,则第一地址不属于存储空间中的任意一个碎片空间;若不是,则继续判断第一地址是否小于第碎片空间1的起始地址st_addr1或大于碎片空间2的结束地址end_addr2;若是,则第一地址不属于存储空间中的任意一个碎片空间;若不是,则第一地址属于碎片空间1或碎片空间2。
65.如图3所示,碎片空间1的结束地址为碎片空间1后端的已用空间的起始地址,碎片空间1后端的已用空间的结束地址为碎片空间2的起始地址。由上述地址关系,可选的,可以通过判断第一地址是否属于已用空间的方式确定第一地址是否越界;若第一地址属于任意一个已用空间(即不属于任意一个碎片空间),则第一地址越界;若第一地址不属于任意一个已用空间(即属于存储空间中的某个碎片空间),则第一地址未越界。具体的:
66.若第一地址满足第三预设条件,则第一地址属于存储空间中的已用空间;其中,第三预设条件为第一地址大于第h个已用空间的起始地址、且小于第h个已用空间的结束地址。
67.继续图3所示的应用场景,图3中包括3个已用空间。首先判断第一地址是否属于第一个已用空间,即判断第一地址是否大于第1个已用空间的起始地址、且小于第1个已用空间的结束地址(即碎片空间1的起始地址st_addr1);若是,则第一地址属于第1个已用空间;若不是,则继续判断第一地址是否属于第二个已用空间,依次类推。
68.由于碎片空间或已用空间的地址较容易获取,因此,本技术实施例中,将第一地址与碎片空间或已用空间的起始地址、结束地址进行比对,以确定第一地址是否越界,通过上述方法,能够较准确、较快捷地判定越界情况。
69.若第一地址越界,执行s202-s205;若第一地址未越界,执行s206。
70.s202,当第一地址不属于存储空间中的任意一个碎片空间,确定第一地址的越界范围。
71.越界范围用于表示第一地址所属的已用空间的地址范围。
72.在一个实施例中,如s201实施例中所述,确定第一地址是否越界的过程中,可以判断第一地址是否属于碎片空间,也可以判断第一地址是否属于已用空间。因此,在执行s201步骤的过程中,即可确定第一地址的越界范围。
73.在另一个实施例中,s202可以包括以下步骤:
74.当第一地址不属于任意一个碎片空间,判断第一地址是否大于第j个碎片空间的结束地址;若第一地址大于第j个碎片空间的结束地址,则根据j的大小确定第一地址的越界范围。其中,j为小于或大于n的正整数,n为存储空间中碎片空间的总个数。
75.可选的,根据j的大小确定第一地址的越界范围可以包括以下步骤:
76.若第一地址大于第j个碎片空间的结束地址,则判断j是否小于n;
77.若j小于n,则判断第一地址是否小于第j+1个碎片空间的起始地址;
78.若第一地址小于第j+1个碎片空间的起始地址,则将第j个碎片空间后端的已用空间的地址范围确定为第一地址的越界范围;
79.若j等于n,则第一地址的越界地址为大于第j个碎片空间的结束地址。
80.继续图3所示的应用场景,当第一地址不属于任意一个碎片空间(即第一地址越界),判断第一地址是否大于第1个碎片空间的结束地址;若否,则第一地址的越界范围为小
于第1个碎片空间的起始地址;若是,由于1《2(n=2),则判断第一地址是否小于第2个碎片空间的起始地址;若是,则第一地址的越界范围为end_addr1~st_addr2;若否,则判断第一地址是否大于第2个碎片空间的结束地址;若是,则第一地址的越界范围为大于end_addr2。
81.本技术实施例中,由于碎片空间的地址范围较容易获取,通过上述方法,能够准确、快捷地确定出第一地址的越界范围。另外,在确定出第一地址的越界范围后,可以利用越界范围验证s201的结论,实现双向验证,提高越界确定结果的准确性。
82.s203,获取目标空间的起始地址。
83.其中,目标空间为存储空间中的任意一个碎片空间。
84.在一个应用场景中,终端设备可以通过交互装置向用户显示碎片空间的编号,在用户输入相应编号后,终端设备将用户选择的编号对应的碎片空间确定为目标空间,并获取目标空间的起始地址。
85.在另一个应用场景中,在开发阶段,开发人员可以预设目标空间的起始地址,并将其存储在预设的寄存器中。在应用过程中,从寄存器中获取目标空间的起始地址。
86.s204,根据第一地址的越界范围和目标空间的起始地址计算第二地址。
87.在一个实施例中,s204可以包括以下步骤:
88.计算第一地址的越界范围的起始地址和第一地址的地址差值;根据地址差值和目标空间的起始地址计算第二地址。
89.继续图3所示的应用场景,假设第一地址位于碎片空间1后端的已用空间中,目标空间为碎片空间1,则地址差值为addr-end_addr1,其中,addr为第一地址,end_addr1为碎片空间1后端已用空间的起始地址(即第一地址的越界范围的起始地址)。第二地址为addr-end_addr1+st_addr1-1,其中,st_addr1为碎片空间1的起始地址。
90.假设第一地址位于碎片空间1后端的已用空间中,目标空间为碎片空间2,则地址差值为addr-end_addr1。第二地址为addr-end_addr1+st_addr2+1,其中,st_addr2为碎片空间2的起始地址。
91.本技术实施例中,通过计算得到的第二地址,能够准确地落入碎片空间,有效避免了地址越界的情况。
92.进一步的,为了节约计算时间,在另一个实施例中,s204可以包括:
93.预先存储不同的越界范围、不同的目标空间对应的跳转地址;根据第一地址的越界范围和目标空间获取相应的跳转地址;根据第一地址和跳转地址计算第二地址。
94.示例性的,如图3所示的存储空间中有2个碎片空间,相应的,可以设置两个寄存器add_wrap_sel1和add_wrap_sel2分别存储两个碎片空间各自对应的跳转地址。在每个寄存器中,存储有不同越界范围各自对应的跳转地址。例如,在add_wrap_sel1寄存器中存储有st_addr1-end_addr1-1(越界范围为碎片空间1后端的已用空间的地址范围、且目标空间为碎片空间1对应的跳转地址)和st_addr2-end_addr1+1(越界范围为碎片空间2后端的已用空间的地址范围、且目标空间为碎片空间1对应的跳转地址)。
95.本技术实施例中,由于跳转地址是预先存储好的,因此,在第二地址的计算过程中,节省了地址差值的计算过程,只需将第一地址和跳转地址相加即可,大大节约了计算时间。
96.s205,将存储数据的起始地址从第一地址更新为第二地址。
97.通过s201-s205所述的方法,当存储数据的起始地址越界时,获取目标空间的起始地址,相当于确定出即将跳转到的碎片空间;根据存储数据的起始地址的越界范围和目标空间的起始地址计算第二地址,将存储数据的起始地址更新为第二地址,即调整存储数据的起始地址。通过上述方法,能够在存储数据的起始地址越界时,及时调整存储数据的起始地址,有效避免了越界存储情况的发生,进而提高了程序运行的安全性。
98.在一个应用场景中,在计算第二地址的过程中,存储空间中又占用了部分碎片空间、或部分已用空间被释放,这将会改变存储空间中碎片空间和已用空间的结构,导致计算出的第二地址仍越界。为了解决该问题,可以多次调整地址,直到调整出未越界的地址。
99.相应的,在一个实施例中,在s205之后,存储方法还包括:
100.当第二地址不属于存储空间中的任意一个碎片空间,确定第二地址的越界范围;根据第二地址的越界范围和目标空间的起始地址计算第三地址;将存储数据的起始地址从第二地址更新为第三地址。
101.上述步骤与s202、s204和s205相同,具体可参见上述对s202、s204和s205的描述,在此不再赘述。在执行过程中,第一地址已更新为第二地址,因此,将第二地址作为步骤s202、s204和s205中的第一地址进行处理。
102.s206,当第一地址属于存储空间中的任意一个碎片空间,存储数据的起始地址维持第一地址。
103.若第一地址未越界,则仍以第一地址作为存储数据的起始地址。
104.在另一个应用场景中,有部分数据需要重复使用,这种场景下,也可以利用本技术实施例所示的存储方法进行数据存储或读取。参见图4,是本技术另一实施例提供的存储方法的应用场景示意图。如图4所示,碎片空间space1和碎片空间space2部分区域重合。
105.如图4所示的场景2_1中,当第一个碎片空间space1的起始地址为第一地址,对碎片空间space1使用后,利用本技术上述实施例中的方法,将第二地址确定为碎片空间space2的起始地址,将第一地址更新为第二地址,则继续对碎片空间space2使用。即使用碎片空间space1之后,循环使用碎片空间space2。
106.如图4所示的场景2_2中,当第二个碎片空间space2的起始地址为第一地址,对碎片空间space2使用后,利用本技术上述实施例中的方法,将第二地址确定为碎片空间space1的起始地址,将第一地址更新为第二地址,则继续对碎片空间space1使用。即使用碎片空间space2之后,循环使用碎片空间space1。
107.在图4应用场景中,相应的,s201中第二预设条件需要包括第一地址等于第n个碎片空间的结束地址,第三预设条件需要包括第一地址等于第h个已用空间的起始地址。需要说明的是,本技术实施例中,根据实际应用,可以对第一预设条件、第二预设条件和第三预设条件自行设定,在此不对上述三个预设条件做具体限定。无论三个预设条件各自包含的数值范围如何变化,均在本技术实施例的保护范围内。
108.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限定。
109.对应于上文实施例所述的存储方法,图5是本技术实施例提供的存储装置的结构框图,为了便于说明,仅示出了与本技术实施例相关的部分。
110.参照图5,该装置包括:
111.第一获取单元51,用于获取第一地址,所述第一地址为存储数据的起始地址。
112.越界确定单元52,用于当所述第一地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第一地址的越界范围,所述越界范围用于表示所述第一地址所属的已用空间的地址范围。
113.第二获取单元53,用于获取目标空间的起始地址,其中,所述目标空间为所述存储空间中的任意一个所述碎片空间。
114.地址计算单元54,用于根据所述第一地址的越界范围和所述目标空间的起始地址计算第二地址。
115.地址更新单元55,用于将所述存储数据的起始地址从所述第一地址更新为所述第二地址。
116.可选的,装置5还包括:
117.越界判断单元56,用于若所述第一地址满足第一预设条件或第二预设条件,则所述第一地址不属于所述存储空间中的任意一个所述碎片空间;
118.其中,所述第一预设条件为所述第一地址大于第i个碎片空间的结束地址、且小于第i+1个碎片空间的起始地址,所述第二预设条件为所述第一地址小于第1个碎片空间的起始地址或大于第n个碎片空间的结束地址,其中,i为小于n的正整数,所述n为所述存储空间中所述碎片空间的总个数。
119.可选的,越界确定单元52还用于:
120.当所述第一地址不属于任意一个所述碎片空间,判断所述第一地址是否大于第j个碎片空间的结束地址,其中,j为小于或大于n的正整数,所述n为所述存储空间中所述碎片空间的总个数;若所述第一地址大于所述第j个碎片空间的结束地址,则根据所述j的大小确定所述第一地址的越界范围。
121.可选的,越界确定单元52还用于:
122.若所述第一地址大于所述第j个碎片空间的结束地址,则判断所述j是否小于所述n;若所述j小于所述n,则判断所述第一地址是否小于第j+1个碎片空间的起始地址;若所述第一地址小于所述第j+1个碎片空间的起始地址,则将所述第j个碎片空间后端的已用空间的地址范围确定为所述第一地址的所述越界范围;若所述j等于所述n,则所述第一地址的所述越界地址为大于所述第j个碎片空间的结束地址。
123.可选的,地址计算单元54还用于:
124.计算所述第一地址的越界范围的起始地址和所述第一地址的地址差值;根据所述地址差值和所述目标空间的起始地址计算所述第二地址。
125.可选的,装置5还包括:
126.地址维持单元57,用于当所述第一地址属于所述存储空间中的任意一个所述碎片空间,所述存储数据的起始地址维持所述第一地址。
127.可选的,越界确定单元52还用于:
128.当所述第二地址不属于所述存储空间中的任意一个所述碎片空间,确定所述第二地址的越界范围。
129.可选的,地址计算单元54还用于:
130.根据所述第二地址的越界范围和所述目标空间的起始地址计算第三地址。
131.可选的,地址更新单元55还用于:
132.将所述存储数据的起始地址从所述第二地址更新为所述第三地址。
133.需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
134.另外,图5所示的存储装置可以是内置于现有的终端设备内的软件单元、硬件单元、或软硬结合的单元,也可以作为独立的挂件集成到所述终端设备中,还可以作为独立的终端设备存在。
135.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
136.图6是本技术实施例提供的终端设备的结构示意图。如图6所示,该实施例的终端设备6包括:至少一个处理器60(图6中仅示出一个)处理器、存储器61以及存储在所述存储器61中并可在所述至少一个处理器60上运行的计算机程序62,所述处理器60执行所述计算机程序62时实现上述任意各个存储方法实施例中的步骤。
137.所述终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。该终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图6仅仅是终端设备6的举例,并不构成对终端设备6的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备等。
138.所称处理器60可以是中央处理单元(central processing unit,cpu),该处理器60还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
139.所述存储器61在一些实施例中可以是所述终端设备6的内部存储单元,例如终端设备6的硬盘或内存。所述存储器61在另一些实施例中也可以是所述终端设备6的外部存储设备,例如所述终端设备6上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。进一步地,所述存储器61还可以既包括所述终端设备6的内部存储单元也包括外部存储设备。所述存储器61用于存储操作系统、应用程序、引导装载程序(boot loader)、数据以及其他程序等,例如所述计算机程序的程序代码等。所述存储器61还可以用于暂时地存储已经输出或者将要输出的数据。
140.本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储
有计算机程序,所述计算机程序被处理器执行时实现可实现上述各个方法实施例中的步骤。
141.本技术实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行时实现可实现上述各个方法实施例中的步骤。
142.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质。例如u盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
143.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
144.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
145.在本技术所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
146.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
147.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1