指令生成方法、任务处理方法及电子设备与流程

文档序号:31526367发布日期:2022-09-14 14:29阅读:145来源:国知局
指令生成方法、任务处理方法及电子设备与流程

1.本公开涉及计算机技术领域,特别涉及一种指令生成方法、任务处理方法及电子设备、计算机可读存储介质。


背景技术:

2.在处理系统中,处理核与内存之间具有紧耦合关系。通常情况下,内存位于处理核内,导致可容纳的存储量较小。为缓解存储压力,可将部分使用频率不高的数据,预先压缩之后再进行存储。但是,压缩数据和解压数据均需耗费额外的时间,从而影响处理系统的处理效率。


技术实现要素:

3.本公开提供一种指令生成方法、任务处理方法及电子设备、计算机可读存储介质。
4.第一方面,本公开提供了一种指令生成方法,应用于编译器,该指令生成方法包括:从处理单元待执行的目标任务的任务数据中,确定出满足压缩条件的目标数据,以及所述目标数据的解压预测时长,所述解压预测时长用于指示对与所述目标数据对应的指定压缩数据进行解压的时间;根据所述解压预测时长和所述目标数据对应的处理指令,生成指令执行序列;其中,所述指令执行序列至少包括所述目标数据对应的解压指令。
5.第二方面,本公开提供了一种任务处理方法,应用于解压器,该任务处理方法包括:响应于处理单元发送的解压请求,获取所述解压请求对应的指定压缩数据,所述解压请求为所述处理单元根据指令执行序列中的解压指令发送的请求;解压所述指定压缩数据,获得目标解压数据,以供所述处理单元在触发所述解压指令对应的处理指令的情况下,基于所述目标解压数据进行任务处理。
6.第三方面,本公开提供了一种任务处理方法,应用于处理单元,该任务处理方法包括:在指令执行序列中的解压指令被触发的情况下,向解压器发送解压请求,所述解压请求用于指示解压器对指定压缩数据进行解压,以获得目标解压数据;在所述解压指令对应的处理指令被触发的情况下,根据所述目标解压数据进行任务处理。
7.第四方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理单元和至少一个解压器;所述处理单元,用于在指令执行序列中的解压指令被触发的情况下,向所述解压器发送解压请求,在所述解压指令对应的处理指令被触发的情况下,根据目标解压数据进行任务处理;所述解压器,用于响应于所述处理单元发送的解压请求,获取所述解压请求对应的指定压缩数据,并解压所述指定压缩数据,获得所述目标解压数据;其中,所述解压指令在所述指令执行序列中的位置是根据所述目标数据的解压预测时长和所述处理指令确定的,所述解压预测时长用于指示对与所述目标数据对应的指定压缩数据进行解压的时间。
8.第五方面,本公开提供了一种电子设备,该电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处
理器执行的一个或多个计算机程序,一个或多个所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的任务处理方法。
9.第六方面,本公开提供了一种电子设备,该电子设备包括:多个处理核;以及,片上网络,被配置为交互所述多个处理核间的数据和外部数据;其中,一个或多个所述处理核中存储有一个或多个指令,一个或多个所述指令被一个或多个所述处理核执行,以使一个或多个所述处理核能够执行上述的任务处理方法。
10.第七方面,本公开提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理核/处理器执行时实现上述的任务处理方法。
11.本公开所提供的实施例,根据目标数据的解压预测时长,在与该目标数据对应的处理指令之前的若干条指令处插入解压指令,在该解压指令被处理单元触发的情况下向解压器发送解压请求以对指定压缩数据进行解压,使得处理单元在触发对应的处理指令之前,解压器已经完成解压操作,处理单元可以根据目标解压数据执行任务处理,而且,在解压器执行解压操作时,处理单元可以执行位于解压指令和处理指令中间的指令,不受解压操作的影响,从而可以提升任务处理效率;另外,解压指令与处理指令之间的指令数量不会过多,尽量避免由于过早解压导致目标解压数据对存储空间的长期占用,从而有效缓解存储压力。
12.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
13.附图用来提供对本公开的进一步理解,并且构成说明书的一部分,与本公开的实施例一起用于解释本公开,并不构成对本公开的限制。通过参考附图对详细示例实施例进行描述,以上和其他特征和优点对本领域技术人员将变得更加显而易见,附图如下所示。
14.图1为本公开实施例提供的一种指令生成方法的流程图。
15.图2为本公开实施例提供的一种任务处理方法的流程图。
16.图3为本公开实施例提供的一种单核处理系统的示意图。
17.图4为本公开实施例提供的一种众核处理系统的示意图。
18.图5为本公开实施例提供的一种任务处理方法的流程图。
19.图6为本公开实施例提供的一种任务处理方法的工作过程的示意图。
20.图7为本公开实施例提供的一种任务处理方法的数据时序示意图。
21.图8为本公开实施例提供的一种任务处理方法的工作过程的示意图。
22.图9为本公开实施例提供的一种电子设备的示意图。
23.图10为本公开实施例提供的一种电子设备的工作过程示意图。
24.图11为本公开实施例提供的一种电子设备的框图。
25.图12为本公开实施例提供的一种电子设备的框图。
具体实施方式
26.为使本领域的技术人员更好地理解本公开的技术方案,以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为
仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
27.在不冲突的情况下,本公开各实施例及实施例中的各特征可相互组合。
28.如本文所使用的,术语“和/或”包括一个或多个相关列举条目的任何和所有组合。
29.本文所使用的术语仅用于描述特定实施例,且不意欲限制本公开。如本文所使用的,单数形式“一个”和“该”也意欲包括复数形式,除非上下文另外清楚指出。还将理解的是,当本说明书中使用术语“包括”和/或“由
……
制成”时,指定存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或其群组。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
30.除非另外限定,否则本文所用的所有术语(包括技术和科学术语)的含义与本领域普通技术人员通常理解的含义相同。还将理解,诸如那些在常用字典中限定的那些术语应当被解释为具有与其在相关技术以及本公开的背景下的含义一致的含义,且将不解释为具有理想化或过度形式上的含义,除非本文明确如此限定。
31.通常情况下,处理系统中的处理单元(例如,处理核)与内存采用紧耦合方式设置,甚至将内存设置在处理单元内部,从而导致内存的容量较小,可能影响处理单元或处理系统的数据处理能力。为了缓解存储压力,对于部分不常用的代码段,可将常数区(查找表)进行压缩存储,在使用相关数据时,再对该数据进行解压,从而可能影响处理效率。
32.有鉴于此,本公开实施例提供一种指令生成方法、任务处理方法及电子设备,编译器能够根据压缩条件确定出需要进行压缩存储的目标数据,并确定对应的解压预测时长,根据解压预测时长在目标数据对应的处理指令之前某一位置处插入解压指令,使得在处理单元基于处理指令使用数据之前,触发对应的解压指令,指示解压器对相应的指定压缩数据进行解压,从而保障处理单元在使用该数据时,数据已经被解压,而不必等待解压过程,而且,在解压器执行解压操作过程中,处理单元仍可正常执行指令执行序列中的其他指令,不会影响处理单元的指令执行过程,从而提升处理单元的处理效率。
33.本公开实施例第一方面提供一种指令生成方法,可应用于编译器。
34.图1为本公开实施例提供的一种指令生成方法的流程图。参照图1,该方法包括如下步骤。
35.在步骤s11中,从处理单元待执行的目标任务的任务数据中,确定出满足压缩条件的目标数据,以及目标数据的解压预测时长,解压预测时长用于指示对与目标数据对应的指定压缩数据进行解压的时间。
36.在步骤s12中,根据解压预测时长和目标数据对应的处理指令,生成指令执行序列;其中,指令执行序列至少包括目标数据对应的解压指令。
37.在一些可选的实现方式中,处理单元可以为具有数据处理能力的功能单元。例如,处理单元可以是单核处理系统中的处理核,也可以是众核处理系统中的处理核,本公开实施例对处理单元不作限制。
38.在一些可选的实现方式中,目标任务可以包括图像处理任务、语音处理任务、文本处理任务、视频处理任务中的任意一种,任务数据包括与目标任务相关的各类数据。
39.示例性地,目标任务的任务数据可以包括任务类型、任务代码、执行目标任务所需的参数等内容。
40.需要说明的是,以上对于目标任务以及任务数据仅是举例说明,本公开实施例对此不作限制。
41.在一些可选的实现方式中,为降低任务数据占用的存储空间,可以将任务数据压缩之后,再进行存储。
42.在一些可选的实现方式中,考虑到任务数据可能包括多项数据,且不同数据的使用频次、重要性、数据类型等存在差异,因此,可以根据上述内容,将部分任务数据压缩后进行存储,而将剩余的部分任务数据以正常形式进行存储。基于这种设置方式,可以降低任务数据所占用的存储空间,同时还能避免将经常使用、重要性较高以及难以压缩的任务数据进行压缩存储,兼顾了任务数据的使用便捷性。
43.在一些可选的实现方式中,可以通过设置压缩条件的方式,从目标任务的任务数据中确定出要进行压缩的目标数据。其中,压缩条件可以根据经验、统计数据、任务要求等内容中的任意一种或多种,结合任务数据的数据类型、使用频次、重要性等进行设置,本公开实施例对压缩条件的设置方式以及压缩条件的内容不作限制。编译器在执行预编译过程中,可以对目标任务的任务数据进行解析等处理,从而确定出满足压缩条件的目标数据。
44.示例性地,可以将使用频次较低的任务数据确定为满足压缩条件的数据,从而尽量降低对高频次使用的任务数据频繁地进行压缩和解压处理,以缓解压缩和解压压力。编译器可以对目标任务的任务数据进行解析、分析等处理,确定各项任务数据的使用频次,从而将使用频次较低的任务数据确定为目标数据。
45.例如,可以在压缩条件中设置频次阈值,并通过比较该频次阈值和各项任务数据的使用频次,从而确定出满足压缩条件的任务数据。
46.示例性地,可以将某些特定类型的任务数据确定为满足压缩条件的数据。编译器可以通过对任务数据进行解析、分析等处理,确定各项任务数据的类型,从而将符合特定类型的任务数据确定为目标数据。
47.例如,考虑到稀疏性数据具有较好的压缩效果(压缩效果是指压缩后的数据量较压缩前得以有效降低),因此,可以设置稀疏性数据为满足压缩条件的任务数据。相应的,编译器可以确定各项任务数据是否为稀疏数据,从而确定出满足压缩条件的任务数据。
48.需要说明的是,以上对于压缩条件仅是举例说明,本公开实施例对此不作限制。
49.还需要说明的是,在确定出满足压缩条件的目标数据之后,即可对目标数据进行压缩,获得指定压缩数据,在对指定压缩数据进行解压之后,即可获得目标解压数据。考虑到在压缩和/或解压过程中可能引入损失,因此,目标数据与目标解压数据可能不完全一致,但是这种不一致的程度不会影响目标任务的执行,或者对目标任务的执行影响程序处于可接受范围内。
50.如前所述,在确定出满足压缩条件的目标数据之后,还需确定各个目标数据的解压预测时长。
51.在一些可选的实现方式中,解压预测时长用于指示对与目标数据对应的指定压缩数据进行解压的时间,换言之,解压预测时长即为编译器通过预测确定的、对与该目标数据对应的指定压缩数据进行解压所需的时间。解压预测时长与指定压缩数据的数据量、数据
类型、解压方式、存储空间信息等信息中的至少一种存在关联关系。
52.示例性地,当指定压缩数据的数据量越大,和/或,指定压缩数据的数据类型较为复杂,和/或,解压方式较为繁琐时,则可以确定解压预测时长也相对较长。
53.示例性地,存储空间信息包括数据区的编排情况;相应的,编译器可以预先获取到数据区的编排情况,在确定解压预测时长时,还需要结合数据区的编排情况,确保在对指定压缩数据进行解压之后,数据区具有足够的存储空间用来存储解压后的数据(即目标解压数据)。
54.需要说明的是,以上对于解压预测时长的确定方式仅是举例说明,本公开实施例对此不作限制。
55.在确定目标数据以及目标数据的解压预测时长之后,在步骤s12中,可以根据解压预测时长和目标数据对应的处理指令生成指令执行序列,且该指令执行序列中至少包括目标数据对应的解压指令。
56.其中,解压指令可以指示处理单元对指定压缩数据进行解压,处理指令可以指示处理单元对解压后的数据(即目标解压数据)进行处理。
57.在一些可选的实现方式中,指令执行序列可以是由多条指令按照一定顺序排列形成的队列。如前所述,处理单元可以执行目标任务,指令执行序列即为处理单元可以识别的命令,通过执行指令执行序列,处理单元即可完成目标任务。由于目标任务的不同,指令执行序列的长度、指令的内容等存在相应的差异,本公开实施例对此不作限制。
58.需要强调的是,本公开实施例中的指令执行序列中包括解压指令,且解压指令位于相应的处理指令之前(两者之间可能间隔若干条指令),通过解压指令可以对指定压缩数据进行解压,使得在处理指令要使用相关数据时,数据已经被解压,降低了等待时长,同时,由于解压指令的插入位置是根据解压预测时长确定的,因此,可以避免由于过早解压导致目标解压数据长期占用存储空间的问题。而在相关技术中,指令执行序列中不包括解压指令,因此,当任务数据为压缩数据形式时,需要等待数据的解压过程,导致数据处理效率较低。
59.在一些可选的实现方式中,步骤s12包括:根据解压预测时长和目标数据对应的处理指令在初始指令执行序列中的位置,确定目标数据对应的解压指令在初始指令执行序列中的位置,并将解压指令插入初始指令执行序列中,生成指令执行序列。
60.其中,初始指令执行序列是指未插入解压指令的指令序列。当基于初始指令执行序列执行目标任务时,只有在执行到执行指令时,才开始对该执行指令对应指定压缩数据进行解压,在解压过程中,处理单元被“卡顿”在该处理指令处,无法执行其他指令,从而导致处理效率低下。
61.与之对应的,在本公开实施例中,当获知某一条需要用到压缩数据的处理指令在指令执行序列中的位置之后,根据该压缩数据的解压预测时长,即可确定出在何处(或何时)执行数据解压操作,可以保障在执行到该处理指令时,指定压缩数据已经被解压(即数据处于可用状态),从而保证处理指令的顺利执行。同时,还应尽量避免由于过早解压数据而导致解压后的数据(即目标解压数据)对存储空间的长期占用。
62.在一些可选的实现方式中,可以根据处理指令之前的至少一条指令的预测执行时长确定解压指令的插入位置。其中,预测执行时长是对指令的执行时间长度进行预测获得
的,其可能与指令的类型、数据处理量等相关。
63.例如,初始指令执行序列包括5条指令,分别为z1、z2、z3、z4和z5,对应的预测执行时长为26ns(纳秒)、10ns、6ns、18ns和10ns,其中,z5为目标数据对应的处理指令,且该目标数据对应的解压预测时长为30ns。由此可知,可以在初始指令执行序列中插入一条解压指令,使得在执行z5之前,与目标数据对应的指定压缩数据已经被解压。由于z2、z3和z4的预测执行时长之和为34ns,解压预测时长30ns小于该预测执行时长之和,因此,可以在z1和z2之间设置与z5对应的解压指令z5’,从而在执行到z5时,解压器已经完成解压操作,处理单元可以基于目标解压数据执行z5。
64.需要说明的是,若将z5’插入z1之前,由于z1与z2的预测执行时长之和为36ns,因此,可能在还未执行完z2时,已经生成目标解压数据,从而导致目标解压数据对存储空间的长期占用,导致存储资源的浪费;若将z5’插入z2与z3之间,由于z3与z4的预测执行时长之和为24ns,从而导致处理单元在执行到z5时,还未完成解压操作,处理单元需要等待解压处理过程,从而导致处理效率不高。
65.在一些可选的实现方式中,目标数据对应的解压指令和处理指令之间包括至少一条指令,且至少一条指令的预测执行时长与目标数据的解压预测时长之间的差值小于预设阈值。
66.其中,预设阈值可以根据经验、统计数据和任务要求中的任意一种或多种进行设置,本公开实施例对此不作限制。
67.以上述初始指令执行序列为例进行说明。若预设阈值为5ns,则由于z2、z3和z4的预测执行时长之和为34ns,其与解压预测时长30ns的差值为4ns,小于预设阈值,因此,可以将解压指令z5’插入z1与z2之间。
68.应当理解,由于z3和z4的预测执行时长之和为24ns,其与解压预测时长30ns的差值(绝对值)为6ns,大于预设阈值,因此,不能将解压指令z5’插入z2与z3之间;另外,z1至z4的预测执行时长之和为60ns,其与解压预测时长的差值也大于预设阈值,因此,无法将解压指令插入z1之前。
69.在一些可选的实现方式中,在步骤s12之后,还包括:将指令执行序列发送到处理单元。处理单元在接收到指令执行序列之后,即可根据指令执行序列执行目标任务。
70.在一些可选的实现方式中,为保障目标任务的顺利执行,无论由于何种原因导致解压器未能及时解压指定压缩数据,与该指定压缩数据对应的处理指令均会被暂停执行,直到解压器完成解压操作之后,再由处理单元根据解压后的数据执行相应的处理指令。
71.需要说明的是,上述指令生成方法适用于通用的单核处理系统,也适用于众核处理系统,本公开实施例对此不作限制。
72.本公开实施例第二方面提供一种任务处理方法,可应用于解压器。
73.图2为本公开实施例提供的一种任务处理方法的流程图。参照图2,该方法包括如下步骤。
74.在步骤s21中,响应于处理单元发送的解压请求,获取解压请求对应的指定压缩数据,解压请求为处理单元根据指令执行序列中的解压指令发送的请求。
75.在步骤s22中,解压指定压缩数据,获得目标解压数据,以供处理单元在触发解压指令对应的处理指令的情况下,基于目标解压数据进行任务处理。
76.在一些可选的实现方式中,处理单元根据依次执行指令执行序列,当执行到解压指令的情况下,处理单元生成解压请求,并将解压请求发送给解压器。
77.在一些可选的实现方式中,解压请求可以包括指定压缩数据的地址,指定压缩数据的地址表示指定压缩数据的存储地址,该指定压缩数据的地址可以指示解压器从相应的存储空间中获取对应的指定压缩数据。
78.在一些可选的实现方式中,解压请求可以包括指定压缩数据的地址以及解压标识,其中,解压标识用于对当前解压操作进行标识,以便处理单元在执行处理指令时,根据指定压缩数据的地址以及解压标识,获取到准确的目标解压数据。
79.需要说明的是,以上对于解压请求的内容仅是举例说明,本公开实施例对此不作限制。
80.还需要说明的是,指定压缩数据可以存储在处理单元内部,也可以存储在处理单元的外部存储空间,本公开实施例对指定压缩数据的存储位置不作限制。
81.示例性地,处理单元对应单核处理系统,指定压缩数据可以存储在该处理单元的内存中,也可以存储在该处理单元的外部存储空间;处理单元对应众核处理系统,指定压缩数据可以存储在片内存储空间中,也可以存储在片外存储空间。换言之,处理单元可以指示解压器对片内存储空间的指定压缩数据进行解压,也可以指示解压器对片外存储空间的指定压缩数据进行解压。
82.需要说明的是,片内存储空间主要适用于解压器位于处理单元内部的情况,其包括但不限于处理单元内部的临时存储空间、fifo(first in first out)缓存区、buffer缓冲区中的任意一种或多种;片外存储空间主要适用于解压器位于处理单元外部的情况,且片外存储空间通常可以被一个或多个处理单元访问。
83.如前所述,在获取到解压请求对应的指定压缩数据之后,即可对该指定压缩数据进行解压处理,从而获得目标解压数据。当处理单元在执行到与该解压指令对应的处理指令的情况下,即可基于目标解压数据进行任务处理。其中,可以采用任意一种解压方式对指定压缩数据进行解压处理,本公开实施例对此不作限制。
84.在一些可选的实现方式中,可以通过预设解压模式指示对指定压缩数据的解压方式。
85.在一些可选的实现方式中,在步骤s22中,解压指定压缩数据,获得目标解压数据,包括:根据预设解压模式,对指定压缩数据进行解压处理,获得目标解压数据,其中,解压模式用于指示执行解压操作所遵循的模式。
86.在一些可选的实现方式中,解压模式包括无损解压模式和有损解压模式,指定压缩数据包括程序段和/或参数;相应的,根据预设解压模式,对指定压缩数据进行解压处理,获得目标解压数据,包括:在指定压缩数据属于第一类数据的情况下,采用无损解压模式对指定压缩数据进行解压,获得第一目标解压数据;在指定压缩数据属于第二类数据的情况下,采用有损解压模式对指定压缩数据进行解压,获得第二目标解压数据;其中,第一类数据包括程序段或第一参数,第二类数据包括第二参数,第一参数对任务处理的影响程度大于第二参数。
87.示例性地,第一参数包括关键参数,第二参数包括普通参数,其中,关键参数是对目标任务的处理结果产生重要影响的参数(例如,正则化参数),普通参数是不会对目标任
务的处理结果产生重要影响的参数(包括卷积层的权要系数、批归一化层的归一化系数、神经元的发放门限、复位模电压等)。以上对于第一参数和第二参数仅是举例说明,本领域技术人员可根据实际需求、统计数据以及经验数据确定哪些参数为第一参数,哪些参数为第二参数,本公开实施例对此不作限制。
88.应当理解,通常情况下,有损解压模式较无损解压模式的解压速度更高,但是解压质量相对要低。通过对不同类型的数据选取不同的解压模式,可以进一步提高解压速度,提升解压效率,同时,还能有效兼顾部分数据的解压质量,以便在基于对应的目标解压数据执行处理指令时,处理结果的质量不受影响或影响较小,保障任务处理结果的准确性。
89.需要说明的是,在对指定压缩数据进行解压时,可以采用任意一种与解压模式匹配的解压算法进行解压,本公开实施例对解压算法的类型不作限制。
90.示例性地,若指定压缩数据是按位存储的数据,则对该指定压缩数据进行解压时,可以将该指定压缩数据扩展为int(整型)或fp16(浮点型)数据,从而获得目标解压数据。例如,指定压缩数据为0b 10101011,共占用1字节(byte),基于int方式将其进行解压之后,获得的目标解压数据为0x01,0x00,0x01,0x00,
……
,0x01,共占用8bytes。又如,当基于fp16方式对该指定压缩数据进行解压之后,获得的目标解压数据为0x3c00,0x0,0x3c00,0x0,
……
,0x3c00,0x3c00,共占用16bytes。
91.应当理解,在数据压缩过程中,可以采用与上述解压过程相反的方式对原始数据进行压缩,从而生成相应的指定压缩数据。
92.需要说明的是,如果在对原始数据进行压缩的过程中,使用了有损压缩方式,则在对该压缩数据进行解压时,即便使用无损解压模式,也只能保障在解压过程中不再额外引入损失,生成的解压数据与原始数据相比还是会存在一定的损失,该损失是在压缩过程所引入的。
93.在一些可选的实现方式中,可以在获取到完整的指定压缩数据之后,再开始对该指定压缩数据进行解压处理。基于这种解压方式进行解压时,操作较为简便。
94.然而,考虑到部分情况下,指定压缩数据的数据量可能较大,读取完整的指定压缩数据可能耗时较长,因此,可以采用流数据读取方式获取指定压缩数据,并采用相应的流数据解压方式进行解压处理,即采用边读取边解压(或边调入边解压)的方式进行数据获取和数据解压。
95.在一些可选的实现方式中,指定压缩数据存储在处理单元的外部存储空间中;相应的,在步骤s21中,获取解压请求对应的指定压缩数据,包括:通过流数据读取方式从外部存储空间获取指定压缩数据;在步骤s22中,解压指定压缩数据,获得目标解压数据,包括:通过流数据解压方式对目标解压数据进行解压处理,获得目标解压数据。
96.需要说明的是,本公开实施例提供的解压器可以是设置与处理单元内部的功能模块,也可以是设置于处理单元外的功能模块。下面结合图3和图4对解压器与处理单元的关系进行展开说明。
97.图3为本公开实施例提供的一种单核处理系统的示意图。参照图3,在图3(a)中示出的单核处理系统中,解压器位于处理单元外,两者相对独立,在需要时,两者之间可以建立通信连接,并通过该通信连接执行数据解压以及数据交互等操作;在图3(b)中示出的单核处理系统中,解压器位于处理单元内,解压器可以利用该解压器执行数据解压处理。
98.图4为本公开实施例提供的一种众核处理系统的示意图。参照图4,在图4(a)中示出的众核处理系统中,每个处理单元内均设置有解压器,各个处理单元可基于内部的解压器执行数据解压处理;在图4(b)中示出的众核处理系统中,所有的处理单元共用一个解压器,各个处理单元可根据需求请求解压器执行数据解压处理;在图4(c)中示出的众核处理系统中,设置了多个解压器,且一个解压器对应多个处理单元(即多个处理单元共用一个解压器),当某一处理单元需要执行数据解压处理时,可以向对应的解压器发起请求。
99.需要说明的是,当解压器为处理单元内部的一个功能模块,不涉及处理单元之间的交互时,处理单元直接使用其内部设置的解压器执行相应的解压操作即可;当解压器为设置于处理单元外的、供多个处理单元共用的功能模块时,需要借助处理单元之间的通信网络(例如,众核片上网络)进行仲裁等操作,以避免发生解压器被多个处理单元同时使用的情况。在本公开实施例中,解压器所执行的任务处理方法是在已经确定其当前时间所要服务的处理单元的情况下,所执行的操作。
100.在一些可选的实现方式中,考虑到可能在使用目标解压数据之前的一段时间已经完成解压处理,获得目标解压数据,因此,可以在获得目标解压数据之后,先将其存储到存储空间中备用。其中,该存储空间可以是解压器外部的存储空间,也可以是解压器的内部存储空间,本公开实施例对此不作限制。
101.在一些可选的实现方式中,在步骤s22之后,还包括:将目标解压数据发送到处理单元的临时存储空间,以供处理单元在触发解压指令对应的处理指令的情况下,从临时存储空间获取目标解压数据。换言之,解压器完成解压处理之后,就将目标解压数据发送到处理单元的临时存储空间,处理单元在需要使用目标解压数据时,直接从其临时存储空间读取相应数据即可。
102.在一些可选的实现方式中,解压器中设置有缓冲空间;相应的,在步骤s22之后,还包括:将目标解压数据存储到缓冲空间;在缓冲空间的目标解压数据处于可读状态的情况下,向处理单元发送连接请求;在基于连接请求建立与处理单元的通信连接的情况下,通过流数据发送方式,将目标解压数据发送至处理单元。换言之,解压器对指定压缩数据进行解压处理,并且先将目标解压数据缓存到内部的缓冲空间,当获得足够多的可以读取的目标解压数据时,即可向处理发送连接请求,指示处理单元可以读取目标解压数据;处理单元在确定要使用目标解压数据的情况下,即可根据该连接请求与解压器建立通信连接,并基于该通信连接,采用流数据方式从解压器的缓冲空间读取目标解压数据,相应的,解压器可以删除已经读取的目标解压数据,以缓解缓冲空间的存储压力。
103.示例性地,缓冲空间可以包括基于fifo内存区和/或buffer缓冲区。
104.在本公开实施例中,处理单元在执行处理指令之前,即基于对应的解压指令向解压器发送解压请求,解压器响应于解压请求对指定压缩数据进行解压处理,使得处理单元在执行处理指令时,目标解压数据已经处于可用状态,从而降低处理单元由于等待解压处理产生的耗时,有效了提升任务处理效率。而且,解压器在执行解压处理时,还可以采用边调入边解压的处理方式,以进一步提高解压效率。
105.本公开实施例第三方面提供一种任务处理方法,可应用于处理单元。
106.图5为本公开实施例提供的一种任务处理方法的流程图。参照图5,该方法包括如下步骤。
107.在步骤s51中,在指令执行序列中的解压指令被触发的情况下,向解压器发送解压请求,解压请求用于指示解压器对指定压缩数据进行解压,以获得目标解压数据。
108.在步骤s52中,在解压指令对应的处理指令被触发的情况下,根据目标解压数据进行任务处理。
109.在一些可选的实现方式中,处理单元为具有数据处理能力的功能单元。例如,处理单元可以是单核处理系统中的处理核,也可以是众核处理系统中的处理核,本公开实施例对处理单元不作限制。
110.在一些可选的实现方式中,指令执行序列可以用于执行图像处理任务、语音处理任务、文本处理任务、视频处理任务中的至少一种。
111.需要说明的是,指令被触发可以理解为处理单元执行对应的指令。这是由于考虑到处理单元在接收到某一指令之后,可能不会立即执行该指令,而是可能间隔一段时间之后才执行该指令。
112.在一些可选的实现方式中,处理单元采用栈列形式接收指令执行序列,在栈尾接收到解压指令之后,并不会立即执行该解压指令,而是在从栈头读取出该解压指令之后,才执行该解压指令(即解压指令被触发)。处理指令与之类似,在此不再重复描述。
113.在一些可选的实现方式中,编译器根据目标数据的解压预测时长和目标数据对应的处理指令在初始指令执行序列中的位置,确定目标数据对应的解压指令在初始指令执行序列中的位置,并将解压指令插入初始指令执行序列中,生成指令执行序列。其中,初始指令执行序列是指未插入解压指令的指令序列。
114.需要说明的是,为了保障处理单元在执行处理指令时,目标解压数据已处于可读状态(或者指定压缩数据已经被解压缩),解压指令与处理指令的执行时间之间应该间隔一定的时间段,以使解压器在该时间段内执行对指定解压数据的解压操作。同时,考虑到解压产生的目标解压数据需要占用一定的存储空间,为降低目标解压数据的存储占用时长,因此,解压指令与处理指令的执行时间之间所间隔的时间段不能过长。
115.示例性地,解压指令和对应的处理指令之间间隔有至少一条指令(解压指令在前,处理指令在后),使得处理单元先执行解压指令,指示解压器对指定压缩数据进行解压处理,获得目标解压数据,并在后续执行处理指令时,目标解压数据处于可读状态,从而保证处理指令的顺利执行。同时,解压指令和对应的处理指令之间间隔的指令数量不应过多,以尽量避免由于过早解压数据而导致解压后的数据(即目标解压数据)对存储空间的长期占用。
116.在一些可选的实现方式中,向解压器发送解压请求之后,根据目标解压数据进行任务处理之前,还包括:执行指令执行序列中位于解压指令与处理之间的指令。
117.换言之,处理单元在向解压器发送解压请求之后,在解压器响应于该解压请求执行解压处理的过程中,处理单元仍然可以正常执行指令(该指令为位于解压指令与处理之间的指令),从而在一定程度上提高了处理单元的处理效率。
118.在一些可选的实现方式中,解压器将目标解压数据存储到处理单元的临时存储空间;相应的,根据目标解压数据进行任务处理,包括:从临时存储空间获取目标解压数据;根据目标解压数据执行处理指令。换言之,解压器完成解压处理之后,就将目标解压数据发送到处理单元的临时存储空间,处理单元在需要使用目标解压数据时,直接从其临时存储空
间读取相应数据即可。
119.在一些可选的实现方式中,当执行完处理指令之后,处理单元可以将临时存储空间内与该处理指令对应的目标解压数据置为无效,以供使用临时存储空间存放新的、未使用的目标解压数据。
120.在一些可选的实现方式中,解压器中设置有缓冲空间,且解压器将目标解压数据存储到缓冲空间中;相应的,根据目标解压数据进行任务处理,包括:根据解压器发送的连接请求,建立与解压器之间的通信连接,连接请求是在缓冲空间中的目标解压数据处于可读状态的情况下发送的请求;接收解压器通过流数据发送方式传输的目标解压数据;根据目标解压数据执行处理指令。换言之,解压器对指定压缩数据进行解压处理,并且先将目标解压数据缓存到内部的缓冲空间,当获得足够多的可以读取的目标解压数据时,即可向处理发送连接请求,指示处理单元可以读取目标解压数据;处理单元在确定要使用目标解压数据的情况下,即可根据该连接请求与解压器建立通信连接,并基于该通信连接,采用流数据方式从解压器的缓冲空间读取目标解压数据,相应的,解压器可以删除已经读取的目标解压数据,以缓解缓冲空间的存储压力。
121.在本公开实施例中,在指令执行序列中,解压指令在前,对应的处理指令在后,且两者之间间隔有至少一条指令,处理单元在执行到解压指令时向解压器发送解压请求,指示解压器对指定压缩数据进行解压处理,使得处理单元在执行到对应的处理指令的情况下,目标解压数据已经处于可读状态,保障了处理指令的顺利执行,并且在解压过程中,处理单元可以执行位于解压指令与处理指令之间的指令,提高了处理效果,也提升了任务执行效率。
122.下面结合图6-8对本公开实施例的指令生成方法和任务处理方法进行展开说明。
123.图6为本公开实施例提供的一种任务处理方法的工作过程的示意图。参照图6,处理单元接收指令执行序列,利用其指令解码模块对指令执行序列进行解码,根据解码结果执行指令。其中,解码结果可以包括与指令对应的微代码、输入操作数和结果地址等内容。
124.在一些可选的实现方式中,数据段为设置于片内的存储空间,用于存放指定压缩数据以及目标解压数据,与之相应的指令执行序列包括如下内容。
125.……
decompress(addr,id,addr_data) %解压指令,addr表示指定压缩数据的地址,id表示解压标识,addr_data表示目标解压数据的首地址
……
use(addr_data) %处理指令
……
处理单元的指令解码模块对上述指令执行序列进行解码,触发于对解压指令decompress(addr,id,addr_data)的解码结果,处理单元根据指定压缩数据的地址addr、解压标识id和addr_data目标解压数据的首地址生成解压请求,将解压请求发送至解压器,并将使能信号en置为高电平,以指示解压器执行解压操作。解压器根据解压请求中的addr,从数据段中读取与该addr对应的指定压缩数据,对该指定压缩数据执行解压操作,获得目标解压数据de_data,并根据addr_data将de_data存储至数据段的相应存储空间中。
126.当处理单元执行到处理指令use(addr_data)时,从数据段中读取与该addr_data
对应的de_data,并基于处理指令对该de_data进行处理。在执行完处理指令use(addr_data)之后,处理单元将数据段内的de_data置为无效,释放相应的存储空间,以供基于释放的存储空间存放新的、未使用的目标解压数据。
127.需要说明的是,在解压器执行对指定压缩数据的解压过程中,处理单元可根据指令执行序列执行其他指令(其他指令为该指令执行序列中位于decompress(addr,id,addr_data)与use(addr_data)之间的指令),而不必处于闲置状态;当处理单元根据指令执行序列执行到use(addr_data)时,根据addr_data获取de_data,并对de_data进行处理即可。
128.还需要说明的是,在上述工作过程中,解压器响应于解压请求,通过读操作从数据段内读取到完整的指定压缩数据之后,才进入解压过程。与之相应的,在一些可选的实现方式中,可以采用边读取边解压的方式执行上述任务处理方法。下面结合图7对采用边读取边解压的方式的任务处理方法进行展开说明。
129.图7为本公开实施例提供的一种任务处理方法的数据时序示意图。参照图7,编译器生成目标任务对应的指令执行序列,并将该指令执行序列发送至处理单元。处理单元接收指令执行序列之后,依次执行该指令执行序列中的指令。首先,处理单元基于第一解压指令指示解压器对第一指定压缩数据进行解压,解压器采用流数据读取方式从片外存储空间调入第一指定压缩数据,同时,解压器采用流数据解压方式对已调入的第一指定压缩数据进行解压,从而获得第一目标解压数据,并将第一目标解压数据存储到处理单元的临时存储空间。在此过程中,处理单元根据指令执行序列执行其他指令,并在执行到与第一指定压缩数据对应的第一处理指令时,从临时存储空间读取第一目标解压数据,对第一目标解压数据进行处理,并在执行完该第一处理指令之后,根据指令执行序列中无指令的指示,处于空闲状态。而且,在执行完第一处理之后,临时存储空间内的第一目标解压数据被释放,以为后续指令执行过程中可能生成的目标解压数据(例如,第二目标解压数据)提供存储空间。
130.第二解压指令的执行过程与第一解压指令类似,当执行到第二解压指令时,处理单元指示解压器对第二指定压缩数据进行解压,解压器同样采用流数据读取方式从片外存储空间调入第二指定压缩数据,同时,解压器采用流数据解压方式对已调入的第二指定压缩数据进行解压,从而获得第二目标解压数据,并将第二目标解压数据存储到处理单元的临时存储空间。在此过程中,处理单元根据指令执行序列执行其他指令,并在执行到与第二指定压缩数据对应的第二处理指令时,从临时存储空间读取第二目标解压数据,对第二目标解压数据进行处理,并在执行完该第二处理指令之后,继续执行指令执行序列中的其他指令。并且,在执行完第二处理之后,临时存储空间内的第二目标解压数据被释放,从而为后续指令执行过程中可能生成的目标解压数据提供存储空间。
131.在图6与图7所示的工作过程中,解压器获得目标解压数据之后,将目标解压数据存储到处理单元的临时存储空间内,处理单元执行到相应的处理指令时,再从临时存储空间获取目标解压数据。与之相应的,还存在其他的可选实现方式,即解压器与处理单元直接对接,将目标解压数据直接发送至处理单元,而不再使用临时存储空间,从而可以进一步降低耗时,提高处理效率。
132.下面结合图8对解压器与处理单元直接对接实现任务处理方法的工作过程进行展开说明。
133.图8为本公开实施例提供的一种任务处理方法的工作过程的示意图。参照图8,解压器分别与存储空间和处理单元连接,处理单元的另一端与压缩器连接,压缩器的另一端与该存储空间连接。需要说明的是,图中所示的处理单元是一个广义概念,其既可以指代单个处理核,也可以指代由多个处理核组成的处理阵列,还可以是单个处理核中的运算单元,本公开实施例对此不作限制。
134.在任务处理的工作过程中,解压器从存储空间获取指定压缩数据,解压生成目标解压数据,并将目标解压数据发送至处理单元,处理单元通过相应的处理核对目标解压数据进行处理,获得处理结果数据,并将处理结果数据发送至压缩器。压缩器接收处理结果数据,对处理结果数据进行压缩,生成结果压缩数据,并将结果压缩数据存储到该存储空间内。
135.换言之,目标解压数据直接被解压器发送到处理单元(或处理单元的缓冲区),不再使用临时存储空间存放目标解压数据,只需设置用于存放压缩数据(压缩数据既包括指定压缩数据,也包括结果压缩数据)的存储空间即可。
136.在一些可选的实现方式中,解压器内设置有fifo存储器或buffer缓冲区,因此,解压器无需再将解压获得的数据写回临时存储区,而是直接提供给处理单元,处理单元根据解压数据执行相应的处理指令即可,从而实现边解压边计算的任务执行方式,有效提高了任务执行效率。
137.在一些可选的实现方式中,处理单元触发于指令执行序列中的解压指令,向解压器发送解压请求,该解压请求中包括指定压缩数据rdata在存储空间的地址raddr。解压器接收解压请求,根据raddr从存储空间读取rdata,并对rdata进行解压。在此过程中,解压器采用流数据解压方式对rdata进行解压,并采用流数据发送方式将目标解压数据rdata_raw发送至处理单元。换言之,解压器并不会将rdata全部解压,获得完整的rdata_raw之后,再将完整的rdata_raw一次性发送给处理单元,而是在解压部分rdata,获得部分rdata_raw之后,即将这部分rdata_raw发送至fifo/buffer,基于fifo/buffer将已经解压的数据发送至处理单元,整个过程可以视为基于流数据的形式执行解压操作和发送操作,从而实现以边解压边计算的方式执行目标任务。
138.为了保障这种解压方式的顺利执行,可以设置rdy信号指导解压器向处理单元发送rdata_raw,即在rdata_raw处于可读状态的情况下(即解压器已经解压了部分rdata,获得了可供传输的部分rdata_raw),解压器向处理单元发送rdy信号,处理单元基于rdy信号与解压器建立连接,解压器通过该连接关系向处理单元发送rdata_raw,使得fifo/buffer中出现新的空闲存储空间,以通过该空闲存储空间缓存解压器新解压的数据,实现流式的数据传输。处理单元接收rdata_raw之后,基于处理指令对rdata_raw进行处理,获得处理结果数据wdata_raw,并在第一使能信号wen_raw的控制下,将wdata_raw发送至压缩器。压缩器对wdata_raw进行压缩,获得结果压缩数据wdata,并在第二使能信号wen的控制下,将wdata写入存储空间。
139.需要说明的是,在当前实现方式中,为保障解压器可基于流数据的方式向处理单元发送rdata_raw,因此在解压器中设置了缓存(fifo或者buffer),用于进行数据缓冲,其中,fifo相当于一个硬件存储设备,buffer相当于一段缓冲的数据区域。与之类似的,还可以在压缩器中设置缓存fifo或者buffer,或者在处理单元中也设置相应的缓冲区,作用与
解压器中的缓存(fifo或者buffer)类似,此处不再重复描述。
140.本公开实施例第四方面提供一种电子设备。
141.图9为本公开实施例提供的一种电子设备的示意图。参照图9,该电子设备包括:至少一个处理单元901和至少一个解压器902。
142.处理单元901,用于在指令执行序列中的解压指令被触发的情况下,向解压器发送解压请求,在解压指令对应的处理指令被触发的情况下,根据目标解压数据进行任务处理。
143.解压器902,用于响应于处理单元发送的解压请求,获取解压请求对应的指定压缩数据,并解压指定压缩数据,获得目标解压数据。
144.其中,解压指令在指令执行序列中的位置是根据目标数据的解压预测时长和处理指令确定的,解压预测时长用于指示对与目标数据对应的指定压缩数据进行解压的时间。
145.在一些可选的实现方式中,电子设备还包括:至少一个编译器。其中,编译器,用于从处理单元待执行的目标任务的任务数据中,确定出满足压缩条件的目标数据,以及目标数据的解压预测时长;根据解压预测时长和目标数据对应的处理指令,生成指令执行序列;其中,指令执行序列至少包括目标数据对应的解压指令。
146.下面结合图10对上述电子设备的工作过程进行展开说明。
147.图10为本公开实施例提供的一种电子设备的工作过程示意图。参照图10,该工作过程包括如下步骤。
148.步骤s1001,编译器根据预设的压缩条件,从处理单元待执行的目标任务的任务数据中确定目标数据。
149.步骤s1002,编译器根据目标数据的属性信息和存储空间的编排情况,确定目标数据的解压预测时长。
150.步骤s1003,编译器根据解压预测时长和该目标数据对应的处理指令在初始指令执行序列中的位置,将解压指令插入初始指令执行序列中,生成指令执行序列。
151.其中,解压指令和处理指令之间包括至少一条指令,且至少一条指令的预测执行时长与目标数据的解压预测时长之间的差值小于预设阈值。
152.步骤s1004,编译器将指令执行序列发送给对应的处理单元。
153.步骤s1005,处理单元接收指令执行序列,并基于指令执行序列依次执行各个指令。
154.步骤s1006,在执行到解压指令的情况下,处理单元生成解压请求,并将该解压请求发送给解压器。
155.步骤s1007,解压器接收解压请求,从对应的存储空间中获取指定压缩数据。
156.其中,指定压缩数据可以存储在处理单元内部,也可以存储在处理单元外部,换言之,存储空间可以是处理单元的内部存储空间,也可以是外部存储空间,本公开实施例对此不作限制。
157.步骤s1008,解压器根据预设解压模式,对指定压缩数据进行解压处理,以获取目标解压数据。
158.步骤s1009,在完成数据解压处理之后,解压器将目标解压数据发送给处理单元。
159.步骤s1010,处理单元接收目标解压数据,并基于目标解压数据执行处理指令。
160.需要说明的是,在解压器执行数据解压过程中,处理单元执行指令执行序列中位
于解压指令与处理之间的指令。
161.步骤s1011,在处理单元执行完指令执行序列中的所有指令的情况下,获得处理结果。
162.示例性地,上述压缩和解压过程可以是自动完成的,即用户采用非压缩方式进行编程,在预编译阶段,对任务数据进行分析,当确定任务数据可以被压缩时,自动将这部分任务数据压缩并存储于数据区,并在需要使用此数据之前的若干条指令处插入解压指令(即在对应的处理指令前的若干条指令处插入解压指令),从而生成指令执行序列。处理单元在基于指令执行序列执行任务过程中,由于解压指令位于相应的处理指令之前,因此,解压处理会提前运行,使得解压过程不会影响处理指令的执行过程。而且,在解压过程中,处理单元可以运行解压指令与处理指令中间的指令,进一步保障了处理单元的处理效率。
163.图11为本公开实施例提供的一种电子设备的框图。
164.参照图11,本公开实施例提供了一种电子设备,该电子设备包括:至少一个处理器1101;至少一个存储器1102,以及一个或多个i/o接口1103,连接在处理器1101与存储器1102之间;其中,存储器1102存储有可被至少一个处理器1101执行的一个或多个计算机程序,一个或多个计算机程序被至少一个处理器1101执行,以使至少一个处理器1101能够执行上述的任务处理方法。
165.示例性地,上述处理器1101即对应本公开实施例中的处理单元,该处理器可以连接一个解压器或者在其内部设置一个解压器,以利用解压器执行数据解压处理,并且,存储器1102与该处理器1101对应,可以用来存储指令执行序列以及目标解压数据等。
166.图12为本公开实施例提供的一种电子设备的框图。
167.参照图12,本公开实施例提供了一种电子设备,该电子设备包括多个处理核1201以及片上网络1202,其中,多个处理核1201均与片上网络1202连接,片上网络1202用于交互多个处理核间的数据和外部数据。
168.其中,一个或多个处理核1201中存储有一个或多个指令,一个或多个指令被一个或多个处理核1201执行,以使一个或多个处理核1301能够执行上述的任务处理方法。
169.示例性地,上述处理核1201即对应本公开实施例中的处理单元,可以在至少一个处理核1201中设置解压器,以便基于解压器执行数据解压处理,并且,还可以通过片上网络1202实现各个处理核1201之间的数据交互。
170.在一些实施例中,该电子设备可以是类脑芯片,由于类脑芯片可以采用向量化计算方式,且需要通过外部内存例如双倍速率(double data rate,ddr)同步动态随机存储器调入神经网络模型的权重信息等参数。因此,本公开实施例采用批处理的运算效率较高。
171.本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,所述计算机程序在被处理器/处理核执行时实现上述的基于众核系统的任务处理方法或基于众核系统的指令生成方法。计算机可读存储介质可以是易失性或非易失性计算机可读存储介质。
172.本公开实施例还提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备的处理器中运行时,所述电子设备中的处理器执行上述的基于众核系统的任务处理方法或基于众核系统的指令生成方法。
173.本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、装置中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。在硬件实施方式中,在以上描述中提及的功能模块/单元之间的划分不一定对应于物理组件的划分;例如,一个物理组件可以具有多个功能,或者一个功能或步骤可以由若干物理组件合作执行。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读存储介质上,计算机可读存储介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。
174.如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读程序指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom)、静态随机存取存储器(sram)、闪存或其他存储器技术、便携式压缩盘只读存储器(cd-rom)、数字多功能盘(dvd)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包含计算机可读程序指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
175.这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
176.用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(lan)或广域网(wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
177.这里所描述的计算机程序产品可以通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品可以体现为计算机存储介质,在另一个可选实施例中,计算机程序产品可以体现为软件产品,例如软件开发包(software development kit,sdk)等等。
178.这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
179.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
180.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
181.附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
182.本文已经公开了示例实施例,并且虽然采用了术语,但它们仅用于并仅应当被解释为一般说明性含义,并且不用于限制的目的。在一些实例中,对本领域技术人员显而易见的是,除非另外明确指出,否则可单独使用与特定实施例相结合描述的特征、特性和/或元素,或可与其他实施例相结合描述的特征、特性和/或元件组合使用。因此,本领域技术人员将理解,在不脱离由所附的权利要求阐明的本公开的范围的情况下,可进行各种形式和细节上的改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1