集成电路、控制方法和电子设备与流程

文档序号:33704482发布日期:2023-03-31 21:00阅读:24来源:国知局
集成电路、控制方法和电子设备与流程

1.本发明涉及通信技术领域,具体涉及一种集成电路、控制方法和电子设备。


背景技术:

2.随着互联网技术的不断发展,电子设备的普及度越来越高,用户可以通过电子设备(例如,手机、个人电脑等)上安装的软件获取各种信息。软件依赖于指令的执行,因此指令的发射效率越高,指令的运行效率越高,软件的运行速度也越高。而在现有技术中,受到硬件的限制,指令的发射效率有限。


技术实现要素:

3.有鉴于此,本发明实施例的目的在于提供一种集成电路、控制方法和电子设备,用于通过增加指令发射槽的数量的方式使得不同类型的指令可以被同时发送,提升了指令的发射效率,从而提升指令的运行效率。
4.根据本发明实施例的第一方面,提供一种集成电路,包括:
5.多个指令发射槽,被配置为分别存储对应类型的指令;
6.判断电路,被配置为根据接收的目标指令的类型,从所述多个指令发射槽中确定所述目标指令对应的目标指令发射槽;
7.指令控制电路,被配置为响应于所述目标指令满足指令发射条件,控制所述目标指令发射槽发射所述目标指令。
8.根据本发明实施例的第二方面,提供一种控制方法,所述方法包括:
9.获取目标指令;
10.根据所述目标指令的类型向目标指令发射槽发送所述目标指令;
11.响应于所述目标指令满足指令发射条件,控制所述目标指令发射槽发射所述目标指令。
12.根据本发明实施例的第三方面,提供一种电子设备,其中,所述电子设备包括至少一个如第一方面所述的集成电路。
13.根据本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储计算机程序指令,其中,所述计算机程序指令在被处理器执行时实现如第二方面所述的方法。
14.根据本发明实施例的第五方面,提供一种计算机程序产品,包括计算机程序/指令,其中,该计算机程序/指令被处理器执行以实现如第二方面所述的方法。
15.本发明实施例的集成电路包括多个发射槽、判断电路以及指令控制电路,其中多个发射槽被配置为分别存储对应类型的指令,判断电路被配置为根据接收的目标指令的类型,从多个指令发射槽中确定目标指令对应的目标指令发射槽,指令控制电路被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。在本发明实施例中,不同类型的指令可以对应于不同的指令发射槽,也即,本发明实施例通过增加指令发射槽的数量的方式使得不同类型的指令可以被同时发送,提升了指令的发射效率,从而提升指
令的运行效率。
附图说明
16.通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
17.图1是本发明第一实施例的集成电路的示意图;
18.图2是本发明实施例的集成电路的一种结构示意图;
19.图3是本发明第二实施例的控制方法的流程图;
20.图4是本发明第三实施例的控制方法的流程图;
21.图5是本发明实施例的集成电路的另一种结构示意图;
22.图6是本发明第四实施例的控制方法的流程图;
23.图7是本发明第五实施例的电子设备的示意图。
具体实施方式
24.以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
25.此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
26.同时,应当理解,在以下的描述中,“电路”是指由至少一个元件或子电路通过电气连接或电磁连接构成的导电回路。当称元件或电路“连接到”另一元件或称元件/电路“连接在”两个节点之间时,它可以是直接耦接或连接到另一元件或者可以存在中间元件,元件之间的连接可以是物理上的、逻辑上的、或者其结合。相反,当称元件“直接耦接到”或“直接连接到”另一元件时,意味着两者不存在中间元件。
27.除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
28.在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
29.软件依赖于指令的执行,因此指令的发射效率越高,指令的运行效率越高,软件的运行速度也越高。而在现有技术中,用于发射指令的指令发射槽的数量较少,通常为一个,这使得大量的指令均被存储在同一个指令发射槽中等待发射。
30.而指令发射槽对指令的存储方式为队列方式,也即,先进入队列的指令在前执行,后进入队列的指令在后执行。因此若排序在指令发射槽最前位的指令未发射,则排序在该指令后的其他指令也无法被发射出去,这导致了指令的发射效率较低。且指令的发射效率低导致了当前运行的指令的数量较少,因此对硬件资源的利用率也不高。同时,这两种因素限制了软件的运行效率。
31.图1是本发明第一实施例的集成电路的示意图。如图1所示,本实施例的集成电路
可以包括判断电路11、多个指令发射槽12和指令控制电路13。
32.其中,多个指令发射槽12被配置为分别存储对应类型的指令,该多个是指至少两个,以及该不同类型可根据需求进行定义及设置,示例性的,可根据执行电路的不同定义类型,例如,执行电路a执行的指令定义为类型a1,执行电路b执行的指令定义为类型b1等。进一步,也可将不同执行电路的指令定义为一个类型,例如,执行电路c和执行电路d执行的指令较少,为避免资源浪费,可不需要分别单独设置对应的指令发射槽,将执行电路c和执行电路d执行的指令定义为类型c1。
33.在本发明实施例中,每个指令发射槽对应于一个类型,使得该指令发射槽存储其对应类型的指令。例如,指令发射槽a1对应的类型为a1,指令发射槽b1对应的类型为b1,指令发射槽c1对应的类型为c1,则指令发射槽a1用于存储类型a1的指令,指令发射槽b1用于存储类型b1的指令,指令发射槽c1用于存储类型c1的指令。进一步,指令发射槽与类型的对应关系不一定是一一对应的。相同类型的指令可存储在不同的发射槽中,即一个指令类型可对应两个或两个以上的指令发射槽,例如,指令发射槽a1’对应的类型为a1,指令发射槽b1’对应的类型为a1,则指令发射槽a1’也用于存储类型a1的指令,指令发射槽b1’也用于存储类型b1的指令。
34.在其他可能的实现方式中,还可根据指令执行时长的不同定义类型,例如,执行时长在a时间段的指令定义为类型a2,执行时长在b时间段的指令定义为类型b2,执行时长在c时间段的指令定义为类型c2等,对应的,指令发射槽a2用于存储类型a2的指令,指令发射槽b2用于存储类型b2的指令,指令发射槽c2用于存储类型c2的指令。对于类型的定义以及多发射槽与类型的对应关系,本发明实施例对其不做限定,具体根据实际情况确定。
35.判断电路11被配置为根据接收的目标指令的类型,从多个指令发射槽中确定所述目标指令对应的目标指令发射槽。例如,经判断电路11确定接收到的目标指令的类型为a1,则从多个指令发射槽中确定指令发射槽a1或指令发射槽a1’为存储该目标指令的目标指令发射槽。进一步,对于判断电路11确定接收到的目标指令的类型,可在指令中添加类型字段,判断电路11通过该目标指令的类型字段的信息确定其类型;或者,判断电路11可直接根据目标指令中指示其对应的执行电路的地址信息,确定该目标指令的类型。同样,对于判断电路识别指令的类型,本发明实施例对其不做限定,具体根据实际情况确定。
36.指令控制电路13被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。该指令发射条件可以为目标指令对应的执行电路当前是否有执行能力,或者当前是否有其他指令影响该目标指令的执行等。即若目标指令对应的执行电路当前无执行能力,则确定该目标指令不满足指令发送条件;或者,若目标指令的执行需要其他指令执行完成后才可执行,而该其他指令还未执行完成的情况下,则确定该目标指令不满足指令发送条件。当目标指令不满足指令发送条件时,可通过指令控制电路13控制不发射该目标指令。
37.本实施例的集成电路包括判断电路、多个指令发射槽以及指令控制电路,其中判断电路被配置为根据目标指令的类型确定目标指令对应的目标指令发射槽,目标指令可存储在该目标指令发射槽中,指令控制电路被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。在本实施例中,不同类型的指令可以对应于不同的指令发射槽,也即,本实施例通过增加指令发射槽的数量的方式使得不同类型的指令可以被同
时发送,解决了因为不同类型的指令在发射槽中相互阻挡导致执行电路空闲的问题,不仅提升了指令的发射效率,而且提升了指令的运行效率。
38.图2是本发明实施例的集成电路的一种结构示意图。图2所示的箭头方向表征数据(包括指令、指令对应的指令标识、指令之间的相关性以及指令执行电路可缓存的指令数量)的传输方向。如图2所示,本发明实施例的集成电路包括主控制处理器21、判断电路22、指令发射槽23a、指令发射槽23b、指令发射槽23c、指令同步电路24、指令控制电路25a、指令控制电路25b、指令控制电路25c、指令执行电路26a和指令执行电路26c。在本发明实施例中,判断电路22、指令发射槽23a、指令发射槽23b、指令发射槽23c、指令同步电路24、指令控制电路25a、指令控制电路25b、指令控制电路25c、指令执行电路26a和指令执行电路26c构成了协控制处理器20。
39.其中,主控制处理器21被配置为发送目标指令。判断电路22被配置为根据目标指令的类型,或者目标指令的类型以及类别,从指令发射槽23a、指令发射槽23b和指令发射槽23c中确定目标指令对应的目标指令发射槽。指令控制电路25a、指令控制电路25b和指令控制电路25c均被分别配置为,响应于指令发射槽23a、指令发射槽23b和指令发射槽23c中待发射的指令满足指令发射条件,控制对应的指令发射槽发射该待发射的指令。指令执行电路26a和指令执行电路26c均被配置为执行其接收的指令。
40.指令发射槽23a和指令发射槽23b为同一类型的指令对应的指令发射槽,指令控制电路25a为指令发射槽23a的指令控制电路,指令控制电路25b为指令发射槽23b的指令控制电路,指令执行电路26a为指令发射槽23a和指令发射槽23b对应的指令执行电路,指令同步电路24为指令发射槽23a和指令发射槽23b对应的指令同步电路。指令发射槽23c为另一类型的目标指令对应的指令发射槽,指令控制电路25c为指令发射槽23c的指令控制电路,指令执行电路26c为指令发射槽23c对应的指令执行电路。
41.在本发明实施例中,目标指令的类别包括自定义指令和配置指令,该自定义指令是指需要执行电路完成指示操作的指令,配置指令用于指示配置对应的自定义指令的寄存器参数,其中,一个自定义指令可对应多个配置指令,即一个自定义指令的执行需要多个配置指令的配置,因此,在自定义指令执行,需要先执行其对应的配置指令。以及,自定义指令和其对应的多个配置指令的类型相同,即执行电路a执行的自定义指令的类型为类型a1,则该自定义指令对应的配置指令的类型也为a1。在本发明实施例中,a1类型的指令包括两类,自定义指令a11和配置指令a12。
42.多个指令发射槽被配置为分别存储对应类别的指令。
43.在本发明实施例的一种可选的实现方式中,每个指令发射槽对应同一类型的两个类别,即自定义指令和其对应的配置指令按照指令执行顺序被存储在同一个指令发射槽中,例如,自定义指令a11和配置指令a12都被存储在指令发射槽23c中,配置指令a12需要先被执行,则可将配置指令a12存储在自定义指令a11之前。
44.在本发明实施例的另一种可选的实现方式中,每个指令发射槽对应同一类型的同一类别,即不同类型的指令被存储在不同的指令发射槽中,且自定义指令和其对应的配置指令被分别存储在不同的指令发射槽中,自定义指令被存储在第一发射槽,配置指令被存储在第二发射槽,例如,自定义指令a11被存储在指令发射槽23a中,配置指令a12被存储在指令发射槽23b中。
45.指令发射槽23a被配置为生成自定义指令的指令标识。且指令发射槽23a和指令发射槽23b之间设置有指令同步电路24。指令同步电路24被配置为根据自定义指令-配置指令的对应关系确定配置指令对应的指令标识,使得存储在第一发射槽中的自定义指令和其对应的存储在第二发射槽中的多个配置指令建立绑定关系。指令控制电路25a和指令控制电路25b被配置为控制指令发射槽23a和指令发射槽23b同步发射同一指令标识对应的自定义指令和配置指令。其中,同步发射是指保证将自定义指令对应的配置指令全部发出后,再发送该自定义指令。
46.在这一实现方式中,指令同步电路24还被配置为根据指令发射槽23a中待发射的自定义指令(也即,指令发射槽23a中排序在最前位的自定义指令)的指令标识(也即,第一指令标识)以及令发射槽23b中待发射的配置指令(也即,指令发射槽23b中排序在最前位的配置指令)的指令标识(也即,第二指令标识)确定指令排序结果。指令控制电路25a被配置为响应于指令排序结果表征第二指令标识排序在第一指令标识后且自定义指令满足发射条件,控制指令发射槽23a发射自定义指令;指令控制电路25b被配置为响应于指令排序结果表征第一指令标识与第二指令标识排序相同且配置指令满足发射条件,控制指令发射槽23b发射配置指令。
47.容易理解,图2所示的集成电路包括两个类型(例如为向量指令和矩阵指令)以及两个类别(包括自定义指令和配置指令)的指令对应的指令发射槽、两个类型以及两个类别的指令对应的指令发射槽的指令控制电路,和两个类型以及两个类别的指令对应的指令执行电路,但是在本发明实施例中,指令发射槽的数量、指令控制电路的数量和指令执行电路的数量均可以根据目标指令的类型数量进行调整,例如可以均为一个,也可以均为多个,本发明实施例不对指令发射槽、指令控制电路和指令执行电路的数量进行限制。
48.下面通过方法实施例对本发明实施例的集成电路所实现的控制方法进行说明。图3是本发明第二实施例的控制方法的流程图。如图3所示,本实施例的方法包括如下步骤:
49.步骤s100,获取目标指令。
50.在本实施例中,主控制处理器可以通过预定指令接口向协控制处理器,具体可以为协控制处理器的判断电路发送目标指令。主控制处理器也即主控制器,为在具有多个指令控制器的电子设备中,起主要作用的指令控制器,能够根据一定的逻辑运算要求发出指令,控制电子设备的输入、运算和输出这三部分的协调工作。
51.目标指令包括自定义指令和配置指令,其中自定义指令具体可以为risc-v指令。risc-v指令是一种基于risc(reduced instruction set computing,精简指令集计算机)原则的开源指令集架构,被设计成可以根据具体场景自由选择适合的指令集的指令集架构,因此具有较高的灵活性和普适性。可选地,本实施例的自定义指令的类型可以为向量指令、标量指令、矩阵指令等。risc-v指令可以由主控制处理器通过协控制处理器的预定指令接口传输给协控制处理器。
52.risc-v指令的可存放的信息有限,因此在本实施例中通过配置指令存放risc-v指令的运算信息,运算信息可以包括risc-v指令的运算数据的尺寸、长度、类型等。不同risc-v指令所需要的寄存器参数可能相同,也可能不同。
53.步骤s200,根据目标指令的类型向目标指令发射槽发送目标指令。
54.判断电路在接收到主控制处理器发送的目标指令后,可以根据目标指令的指令类
型向对应的目标指令发射槽发送指令。
55.在本实施例中,自定义指令与其对应的配置指令可以对应于同一指令发射槽,因此判断电路可以将该自定义指令与其对应的配置指令发送至同一目标指令发射槽,以使得目标指令发射槽可以同时对该自定义指令与其对应的配置指令进行存储。
56.以图2所示的集成电路为例进行说明。主控制处理器21可以通过预定指令接口向协控制处理器20的判断电路22发送类型为向量指令的指令l1(即自定义指令)以及指令l1对应的配置指令。指令发射槽23c为向量类型的指令发射槽。协控制处理器20可以控制判断电路22根据指令l1的类型确定指令发射槽23c为指令l1和指令l1对应的配置指令对应的目标指令发射槽,并向指令发射槽23c发送指令l1以及对应的配置指令。
57.可选地,为了便于自定义指令的执行,协控制处理器可以控制目标指令发射槽存储配置指令后存储该配置指令对应的自定义指令,以在自定义指令执行前对寄存器进行配置。
58.步骤s300,响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。
59.在本实施例中,指令控制电路可以响应于待发射的目标指令满足指令发射条件,控制目标指令发射槽发射目标指令,以使得目标指令执行电路执行目标指令。待发射的目标指令也即指令发射槽中排序在最前位的目标指令。指令发射条件可以包括目标指令执行电路有能力接收指令,也即,目标指令执行电路可以接收并存储的指令数量不为0。目标指令执行电路是指接收从指令发射槽中发出目标指令的下游模块。
60.在本实施例中,自定义指令与其对应的配置指令(也即,不同类别的指令)被分别存储在同一指令发射槽,且自定义指令和其对应的配置指令按照执行顺序存储在指令发射槽中,因此在确定目标指令满足指令发射条件后,即目标指令执行电路当前有能力接收指令,指令控制电路可以直接控制目标指令发射槽发射目标指令。
61.仍旧以图2所示的集成电路为例进行说明。指令控制电路25c在确定指令l1和对应的配置指令满足指令发射条件后,可以控制指令发射槽23c向指令执行电路26c发射指令l1和对应的配置指令。
62.本实施例的集成电路包括主控制处理器、判断电路、多个指令发射槽以及指令控制电路,其中主控制处理器被配置为发送目标指令,多个指令发射槽被配置为分别存储对应类型的指令,且每个指令发射槽中存储同一类型的不同类别的指令;判断电路被配置为根据接收的目标指令的类型,从多个指令发射槽中确定目标指令对应的目标指令发射槽,指令控制电路被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。在本实施例中,不同类型的指令可以对应于不同的指令发射槽,也即,本实施例通过增加指令发射槽的数量的方式使得不同类型的指令可以被同时发送,提升了指令的发射效率,从而提升指令的运行效率。
63.图4是本发明第三实施例的控制方法的流程图。如图4所示,本实施例的方法包括如下步骤:
64.步骤s100’,获取目标指令。
65.在本实施例中,步骤s100’的实现方式与步骤s100的实现方式相似,在此不再赘述。
66.步骤s200’,根据目标指令的类型和类别,向目标指令发射槽发送目标指令。
67.判断电路在接收到主控制处理器发送的目标指令后,可以根据目标指令的指令类型和类别,向对应的目标指令发射槽发送指令。
68.在本实施例中,自定义指令与其对应的配置指令可以被分别存储在不同指令发射槽,因此协控制处理器可以控制判断电路将该自定义指令与其对应的配置指令发送至不同目标指令发射槽,以使得目标指令发射槽可以分别对该自定义指令与其对应的配置指令进行存储。
69.仍旧以图2所示的集成电路为例进行说明。主控制处理器21可以通过预定指令接口向协控制处理器20的判断电路22发送类型为矩阵指令的指令l2以及指令l2对应的配置指令l3。指令发射槽23a和指令发射槽23b均为矩阵类型对应的指令发射槽,以及指令发射槽23a用于存储矩阵类型的自定义指令,指令发射槽23b用于存储矩阵类型的配置指令。协控制处理器20可以控制判断电路22根据指令l2的类型确定指令发射槽23a为指令l2对应的目标指令发射槽,并向指令发射槽23a发送指令l2;并且,协控制处理器20可以控制判断电路22根据配置指令l3的类型确定指令发射槽23b为矩阵类型的配置指令的目标指令发射槽,并向指令发射槽23b发送配置指令l3。
70.在本实施例中,指令发射槽的深度(也即,可存储的目标指令的最大数量)可以根据对应类型的指令的统计数量确定。例如,可以根据在预定时间长度内接收到的某个类型的指令的数量所在的区间、或者预定时间长度内接收该类型的指令的数量与在该时间长度内接收到的所有指令的总数量的占比等,确定该类型对应的指令发射槽的深度。即不同的指令发射槽的深度可不相同,如果其对应的类型的指令数量比较多,则指令发射槽深度较大。进一步,指令发射槽的深度还可以根据对应类别的指令的统计数量确定,例如,一个自定义指令一般会对应多个配置指令,所以存储配置指令的深度会比存储自定义指令的深度大。
71.步骤s300’,响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。
72.在本实施例中,自定义指令与其对应的配置指令被分别存储在不同指令发射槽。为了保证各自定义指令与其对应的配置指令可以被同步发射,第一发射槽与第二发射槽之间还设置有指令同步电路。
73.在该实现方式中,用于存储自定义指令的第一发射槽还被配置为生成自定义指令的指令标识。指令同步电路被配置为获取第一发射槽中各自定义指令的指令标识,并根据自定义指令-配置指令的对应关系确定配置指令对应的指令标识,然后向指令控制电路发送各自定义指令的指令标识以及各配置指令的指令标识。指令控制电路被配置为控制第一发射槽和第二发射槽同步发射同一指令标识对应的自定义指令和配置指令。
74.在本实施例中,协控制处理器可以控制第一发射槽通过各种现有的方式生成自定义指令的指令标识,例如根据接收到自定义指令的时刻确定自定义指令的指令标识等。例如,第一发射槽接收到指令l2的时刻为2021年9月23日15:55,则指令l2对应的指令标识可以为202109231555。或者,根据接收指令的顺序依次为接收的目标指令分配序号,以作为该接收的目标指令的指令标识。
75.具体地,指令同步电路还被配置为根据第一指令标识和第二指令标识确定指令排
序结果。其中第一指令标识为第一发射槽中待发射的自定义指令的指令标识,第二指令标识为第二发射槽中待发射的配置指令的指令标识。指令控制电路被配置为响应于指令排序结果表征第一指令标识与第二指令标识排序相同,且配置指令满足指令发射条件,控制第二发射槽发射配置指令;响应于指令排序结果表征第二指令标识排序在第一指令标识后,且自定义指令满足指令发射条件,控制第一发射槽发射自定义指令。
76.第一指令标识和第二指令标识的排序表征自定义指令与对应的配置指令的发射情况。在本实施例中,若第二指令标识排序在第一指令标识后,表示对于第一发射槽中待发射的自定义指令而言,其对应的配置指令已被第二发射槽发射,因此指令控制电路可以在确定自定义指令满足指令发射条件后,控制第一发射槽发射自定义指令;若第一指令标识与第二指令标识排序相同,表示对于第一发射槽中待发射的自定义指令而言,其对应的配置指令未被第一发射槽全部发射,因此为了保证配置指令在前被发射,指令控制电路可以在确定配置指令满足指令发射条件后,控制第二发射槽发射配置指令。
77.仍旧以图2所示的集成电路为例进行说明。指令发射槽23a中存储有多个矩阵类型的自定义指令,包括指令a1、指令b1和指令c1,其中指令a1为待发射的自定义指令。指令发射槽23b中存储有多个矩阵类型的配置指令,包括指令a2、指令b2、指令c2、指令d2和指令e2,其中指令a2和指令b2为同一自定义指令对应的待发射的配置指令。协控制处理器20可以控制同步电路24获取指令a1的指令标识,也即标识s1,并获取指令a2的指令标识,也即标识s2,并控制同步电路24根据标识s1和标识s2确定指令排序结果,然后向指令控制电路25a和指令控制电路25b发送指令排序结果。
78.若指令排序结果表征标识s2排序在标识s1后,且指令a1满足指令发射条件,指令控制电路25a可以控制指令发射槽23a向指令执行电路26a发射指令a1;若指令排序结果表征标识s1与标识s2排序相同,且指令a2和指令b2均满足指令发射条件,指令控制电路25b可以控制指令发射槽23b向指令执行电路26a发射指令a2和指令b2。
79.本实施例的集成电路包括主控制处理器、判断电路、多个指令发射槽、指令同步电路以及指令控制电路,其中主控制处理器被配置为发送目标指令,多个发射槽被配置为分别存储对应类型和对应类别的指令,判断电路被配置为根据接收的目标指令的类型,从多个指令发射槽中确定目标指令对应的目标指令发射槽,指令控制电路被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。在本实施例中,不同类型的指令被存储在不同的指令发射槽中,且不同类别的指令被存储在不同的指令发射槽中,本实施例通过增加指令发射槽的数量的方式使得不同类型的指令可以被同时发送,提升了指令的发射效率。同时,也解决了自定义指令的配置指令数目众多,导致每个类型的指令发射槽中保存的自定义指令的数量偏少的问题,进一步提升了指令的运行效率。
80.图5是本发明实施例的集成电路的另一种结构示意图,图5所示的箭头方向表征数据(包括指令、指令对应的地址范围信息和指令之间的相关性检测信息)的传输方向。如图5所示,本发明实施例的集成电路包括主控制处理器51、判断电路52、指令发射槽53a、指令发射槽53b、指令控制电路55a、指令控制电路55b、指令执行电路56a以及指令执行电路56b。
81.其中,主控制处理器51被配置为发送目标指令。判断电路52被配置为根据目标指令的类型,从指令发射槽53a和指令发射槽53b中确定目标指令对应的目标指令发射槽。指令控制电路55a和指令控制电路55b均被配置为响应于目标指令满足指令发射条件,控制对
应的指令发射槽发射目标指令。
82.在本发明实施例的一种可选的实现方式中,指令发射条件包括目标指令与各非目标指令之间的相关性均表征第一地址范围与第二地址范围未产生重叠。其中,第一地址范围为目标指令的地址范围,第二地址范围为非目标指令的地址范围。因此图5所示的集成电路还包括相关性检测电路54a和相关性检测电路54b。判断电路52还被配置为确定目标指令的第一地址范围。关性检测电路54a和相关性检测电路54b均被配置为确定目标指令与各非目标指令之间的相关性。
83.可选地,第一地址范围为目标指令的第一读地址范围和/或第一写地址范围,第二地址范围为非目标指令的第二读地址范围和/或第二写地址范围,相关性检测电路54a和相关性检测电路54b均包括第一逻辑电路、第二逻辑电路和第三逻辑电路(图5中未示出)。且第一逻辑电路被配置为判断第一读地址范围与第二写地址范围是否产生重叠,第二逻辑电路被配置为判断第一写地址范围与第二写地址范围是否产生重叠,第三逻辑电路被配置为判断第一写地址范围与第二读地址范围是否产生重叠。
84.在指令发射槽53a为目标指令发射槽时,指令发射槽53a用于缓存发送至指令执行电路56a的目标指令,相关性检测电路54a为指令发射槽53a对应的相关性检测电路,该相关性检测电路54a用于检测指令发射槽53a中待发射的目标指令与非目标指令之间的相关性,其中非目标指令包括其他发射槽(除指令发射槽53a外的所有指令发射槽)中的指令以及所有指令执行电路中正在执行的指令。指令控制电路55a为指令发射槽53a对应的指令控制电路,在相关性检测电路54a确定指令发射槽53a中待发射的目标指令与各非目标指令之间相关性均表征第一地址范围与对应第二地址范围未产生重叠后,指令控制电路55a控制将待发射的目标指令发射到指令执行电路56a。同样,在指令发射槽53b为目标指令发射槽时,指令发射槽53b用于缓存发送至指令执行电路56b的目标指令,相关性检测电路54b为指令发射槽53b对应的相关性检测电路,指令控制电路55b为指令发射槽53b对应的指令控制电路。
85.容易理解,图5所示的集成电路中的不同指令发射槽均分别对应于一个相关性检测电路,但是在本发明实施例中,相关性检测电路的数量也可以为一个,也即,相关性检测电路54a和相关性检测电路54b。同时,图5所示的集成电路包括两个指令发射槽(也即,指令发射槽53a和指令发射槽53b)、两个指令控制电路(也即,指令控制电路55a和指令控制电路55b)和两个指令执行电路(也即,指令执行电路56a和指令执行电路56b),但是在本发明实施例中,指令发射槽的数量、指令控制电路的数量和指令执行电路的数量均可以为两个及以上,本发明实施例不对指令发射槽、指令控制电路和指令执行电路的数量进行限制。且图5所示的集成电路同样可以包括用于存储同一类型的自定义指令的第一发射槽(图中未示出)和用于存储配置指令的第二发射槽(图中未示出)且第一发射槽和第二发射槽之间可以设置有指令同步电路,以使得指令控制电路可以控制第一发射槽和第二发射槽同步发射同一指令标识对应的自定义指令和配置指令。
86.下面通过同样方法实施例对本发明实施例的集成电路所实现的控制方法进行说明。图6是本发明第四实施例的控制方法的流程图。如图6所示,本实施例的方法包括如下步骤:
87.步骤s100”,获取目标指令。
88.在本实施例中,步骤s100”的实现方式与步骤s100的实现方式相似,在此不再赘
述。
89.步骤s200”,根据目标指令的类型向目标指令发射槽发送目标指令。
90.在本实施例中,协控制处理器可以控制判断电路对自定义指令进行解码处理,并确定自定义指令对应的第一地址范围。本实施例的第一地址范围可以为目标指令的读地址范围和写地址范围中的至少一项。
91.在确定自定义指令的第一读地址范围和第一写地址范围后,协控制处理器可以控制判断电路根据目标指令的类别向对应的目标指令发射槽发送自定义指令的第一读地址范围和第一写地址范围,以使得发射槽指令可以对自定义指令的第一读地址范围和第一写地址范围进行存储,并控制指令发射槽向相关性检测电路发送自定义指令的第一读地址范围和第一写地址范围。同时,协控制处理器可以控制判断电路向对应的指令发射槽发送自定义指令以及配置指令,以使得指令发射槽可以以队列的形式对自定义指令和配置指令进行存储。
92.以图5所示的集成电路为例进行说明。主控制处理器51通过协控制处理器50的预定指令接口向协控制处理器50发送自定义指令,协控制处理器50可以控制判断电路52对自定义指令进行解码,确定自定义指令对应的第一读地址范围和第一写地址范围,然后,协控制处理器50可以控制判断电路52根据自定义指令的类型向指令发射槽53a(也即,目标指令发射槽)发送自定义指令以及自定义指令对应的第一读地址范围和第一写地址范围中的至少一项,并控制指令发射槽53a向相关性检测电路54a发送自定义指令对应的第一读地址范围和第一写地址范围中的至少一项。
93.容易理解,队列遵循先进先出的原则,也就是说,先进入队列的指令在前执行,后进入队列的指令在后执行,因此若指令发射槽中包括多个指令,则目标指令为指令发射槽的队列中排序在最前位的自定义指令以及该自定义指令对应的配置指令。
94.步骤s300”,响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。
95.获取信息的过程也即根据接收到的指令对数据进行读处理和写处理的过程,而指令之间的读/写范围往往会产生重叠,并导致软件运行错误。例如,目标指令的写地址范围为0x8049320-0x8049350,非目标指令的读地址范围为0x8049330-0x8049380,产生重叠的地址范围为0x8049330-0x8049350。若在目标指令执行完毕前就执行目标指令,则目标指令读取到的0x8049330-0x8049350这部分数据可能为未完成写入(或者更新)的数据,也即,目标指令读取的部分数据为错误数据,因此会导致软件运行错误。
96.因此为了避免软件运行错误,在本实施例中,指令发射条件可以包括目标指令与非目标指令之间的相关性表征第一地址范围与各第二地址范围均未产生重叠。
97.在本实施例中,协控制处理器可以控制相关性检测电路从除存储该目标指令的指令发射槽外,其余指令发射槽中获取未执行的指令的第二地址范围,以及从各指令执行电路中正在执行的指令的第二地址范围。也就是说,非目标指令包括其余指令发射槽中未执行的指令以及各指令执行电路中正在执行的指令。
98.以图5所示的集成电路为例进行说明。协控制处理器50控制相关性检测电路54a检测指令发射槽53a中的自定义指令与非目标指令之间的相关性。在检测自定义指令与非目标指令之间的相关性之前,协控制处理器50可以控制相关性检测电路54a从指令发射槽53b
获取待执行的指令的第二地址范围,并从存储器中获取指令执行电路56a以及指令执行电路56b中正在执行的指令的第二地址范围。
99.在获取各非目标指令的第二地址范围后,协控制处理器50可以控制相关性检测电路的第一逻辑电路判断目标指令的第一读地址范围与各非目标指令的第二写地址范围是否产生重叠、控制第二逻辑电路判断目标指令的第一写地址范围与各非目标指令的第二写地址范围是否产生重叠、控制第三逻辑电路判断目标指令的第一写地址范围与第二读地址范围是否产生重叠。
100.在确定自定义指令与非目标指令之间的相关性后,协控制处理器可以控制相关性检测电路向指令控制电路发送自定义指令与非目标指令之间的相关性。
101.仍旧以图5所示的集成电路为例进行说明。协控制处理器50可以控制相关性检测电路54a向指令控制电路55a发送指令发射槽53a中的自定义指令与各非目标指令之间的相关性。
102.若各相关性均表征自定义指令的第一地址范围与对应非目标指令的第二地址范围未产生重叠,指令控制电路可以确定目标指令满足指令发射条件,并控制目标指令发射槽向对应的目标指令执行电路发射目标指令。
103.可选地,在本实施例中,指令发射条件也可以包括目标指令执行电路可存储的指令数量不小于对应的目标指令的数量。
104.本实施例的集成电路包括主控制处理器、判断电路、多个指令发射槽、相关性检测电路和指令控制电路,其中主控制处理器被配置为发送目标指令,多个发射槽被配置为分别存储不同类型的指令,判断电路被配置为根据接收的目标指令的类型,从多个指令发射槽中确定目标指令对应的目标指令发射槽,相关性检测电路被配置为确定目标指令与各非目标指令之间的相关性,指令控制电路被配置为响应于目标指令满足指令发射条件,控制目标指令发射槽发射目标指令。在本实施例中,不同类型的指令可以对应于不同的指令发射槽,也即,本实施例通过增加指令发射槽的数量的方式使得不同类型的指令可以被同时发送,提升了指令的发射效率,从而提升指令的运行效率。同时,本实施例可以通过硬件的方式控制当前待执行指令保持等待状态,直至当前待执行指令与其余正在执行或待执行的指令的读/写范围不会产生重叠,从而降低软件的运行负担。
105.图7是本发明第五实施例的电子设备的示意图。图7所示的电子设备为非通用数据处理装置,其至少包括本发明实施例中的集成电路701和存储器702。集成电路701和存储器702通过总线703连接。存储器702适于存储集成电路701可执行的指令或软件。由此,集成电路701通过执行存储器702所存储的命令,从而执行如上所述的本发明实施例的方法流程实现对于数据的处理和对于其他装置的控制。总线703将上述多个组件连接在一起,同时将上述组件连接到显示控制器704和显示装置以及输入/输出(i/o)装置705。输入/输出(i/o)装置705可以是鼠标、键盘、调制解调器、网络接口、触控输入装置、体感输入装置、打印机以及本领域公知的其他装置。典型地,输入/输出(i/o)装置705通过输入/输出(i/o)控制器706与系统相连。
106.其中,存储器702可以存储软件组件,例如操作系统、通信模块、交互模块以及应用。以上所述的每个模块和应用程序都对应于完成一个或多个功能和在发明实施例中描述的方法的一组可执行程序指令。
107.上述根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应理解,流程图和/或框图的每个块以及流程图图例和/或框图中的块的组合可以由计算机程序指令来实现。这些计算机程序指令可以被提供至通用计算机、专用计算机或其它可编程数据处理设备的处理器,以产生机器,使得(经由计算机或其它可编程数据处理设备的处理器执行的)指令创建用于实现流程图和/或框图块或块中指定的功能/动作的装置。
108.同时,如本领域技术人员将意识到的,本公开实施例的各个方面可以被实现为系统、方法或计算机程序产品。因此,本公开实施例的各个方面可以采取如下形式:完全硬件实施方式、完全软件实施方式(包括固件、常驻软件、微代码等)或者在本文中通常可以都称为“电路”、“模块”或“系统”的将软件方面与硬件方面相结合的实施方式。此外,本公开的方面可以采取如下形式:在一个或多个计算机可读介质中实现的计算机程序产品,计算机可读介质具有在其上实现的计算机可读程序代码。
109.可以利用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质可以是如(但不限于)电子的、磁的、光学的、电磁的、红外的或半导体系统、设备或装置,或者前述的任意适当的组合。计算机可读存储介质的更具体的示例(非穷尽列举)将包括以下各项:具有一根或多根电线的电气连接、便携式计算机软盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、光纤、便携式光盘只读存储器(cd-rom)、光存储装置、磁存储装置或前述的任意适当的组合。在本公开实施例的上下文中,计算机可读存储介质可以为能够包含或存储由指令执行系统、设备或装置使用的程序或结合指令执行系统、设备或装置使用的程序的任意有形介质。
110.计算机可读信号介质可以包括传播的数据信号,所述传播的数据信号具有在其中如在基带中或作为载波的一部分实现的计算机可读程序代码。这样的传播的信号可以采用多种形式中的任何形式,包括但不限于:电磁的、光学的或其任何适当的组合。计算机可读信号介质可以是以下任意计算机可读介质:不是计算机可读存储介质,并且可以对由指令执行系统、设备或装置使用的或结合指令执行系统、设备或装置使用的程序进行通信、传播或传输。
111.用于执行针对本公开各方面的操作的计算机程序代码可以以一种或多种编程语言的任意组合来编写,所述编程语言包括:面向对象的编程语言如java、smalltalk、c++、php、python等;以及常规过程编程语言如“c”编程语言或类似的编程语言。程序代码可以作为独立软件包完全地在用户计算机上、部分地在用户计算机上执行;部分地在用户计算机上且部分地在远程计算机上执行;或者完全地在远程计算机或服务器上执行。在后一种情况下,可以将远程计算机通过包括局域网(lan)或广域网(wan)的任意类型的网络连接至用户计算机,或者可以与外部计算机进行连接(例如通过使用因特网服务供应商的因特网)。
112.以上所述仅为本公开的优选实施例,并不用于限制本公开,对于本领域技术人员而言,本公开可以有各种改动和变化。凡在本公开的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1