CN106796505B - 指令执行的方法及处理器 - Google Patents
指令执行的方法及处理器 Download PDFInfo
- Publication number
- CN106796505B CN106796505B CN201480081514.2A CN201480081514A CN106796505B CN 106796505 B CN106796505 B CN 106796505B CN 201480081514 A CN201480081514 A CN 201480081514A CN 106796505 B CN106796505 B CN 106796505B
- Authority
- CN
- China
- Prior art keywords
- instruction
- token
- execution unit
- instruction execution
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 124
- 230000008569 process Effects 0.000 claims description 70
- 230000015654 memory Effects 0.000 claims description 67
- 230000005540 biological transmission Effects 0.000 claims description 13
- 238000004891 communication Methods 0.000 claims description 13
- 235000013399 edible fruits Nutrition 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000000605 extraction Methods 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- KLDZYURQCUYZBL-UHFFFAOYSA-N 2-[3-[(2-hydroxyphenyl)methylideneamino]propyliminomethyl]phenol Chemical compound OC1=CC=CC=C1C=NCCCN=CC1=CC=CC=C1O KLDZYURQCUYZBL-UHFFFAOYSA-N 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 201000001098 delayed sleep phase syndrome Diseases 0.000 description 2
- 208000033921 delayed sleep phase type circadian rhythm sleep disease Diseases 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3871—Asynchronous instruction pipeline, e.g. using handshake signals between stages
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Abstract
一种指令执行的方法及处理器。该方法包括:令牌管理单元向第一指令执行单元发送第一读令牌,用于指示第一指令执行单元读取待执行的第一指令的操作数(S301);第一指令执行单元根据第一读令牌的指示读取第一指令的操作数(S302),释放第一读令牌(S303);令牌管理单元在确定释放第一读令牌后,向第二指令执行单元发送第二读令牌(S304);第一指令执行单元根据第一指令的操作数,执行第一指令(S305),并将执行的结果写入寄存器组(S306)。该方法中,一个指令执行单元在指令执行的过程中,及时释放读令牌,能够便于令牌管理单元向下一个指令执行单元分配读令牌,这样令牌管理单元能够对读令牌进行协调管理和控制,从而能够保证指令执行的效率。
Description
技术领域
本发明实施例涉及计算机领域,并且更具体地,涉及一种指令执行的方法及处理器。
背景技术
在同步处理器中,系统都是基于时钟的,或者说同步的。这些系统由子系统构造而成,子系统用触发器(或寄存器)存储不同的状态,从一个状态变到另一个状态依赖于全局时钟信号。触发器内的状态更新在时钟信号的边沿完成。同步处理器的性能受最差环节的影响。为了提高同步处理器的处理能力,一般的方法是提高全局时钟的频率,但是更高的频率将会导致更高的功耗。
异步处理器中没有全局时钟,甚至没有时钟,子系统间通过绑定通信协议进行流水操作,或是通过控制时钟的产生和传输来驱动功能电路工作的自定时系统。异步处理器的指令可以按最可能快的速度执行,并且异步处理器的功耗明显降低。
传统的异步处理器采用muller-c电路实现异步流水线,通过请求-应答方式处理数据,但是这种异步流水线不紧凑,并且多级流水线对竞争资源的访问过于复杂,这样导致处理效率低。
发明内容
本发明实施例提供了一种指令执行的方法及处理器,该方法处理效率高。
第一方面,提供了一种指令执行的方法,所述方法由处理器中的执行部件EU执行,所述EU用于从总线接口部件BIU的指令队列中获取第一指令,执行所述第一指令并将执行所述第一指令的结果写入寄存器组,所述EU包括令牌管理单元和至少两个指令执行单元,所述至少两个指令执行单元包括第一指令执行单元和第二指令执行单元,所述方法包括:
所述令牌管理单元向所述第一指令执行单元发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元读取待执行的所述第一指令的操作数;
所述第一指令执行单元根据所述第一读令牌的指示,读取所述第一指令的操作数;
所述第一指令执行单元在所述读取所述第一指令的操作数的过程开始后,释放所述第一读令牌;
所述令牌管理单元在确定所述释放所述第一读令牌后,向所述第二指令执行单元发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令;
所述第一指令执行单元根据所述第一指令的操作数,执行所述第一指令;
所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组。结合第一方面,在第一方面的第一种可能的实现方式中,所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组,包括:
所述第一指令执行单元接收所述令牌管理单元发送的第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌,以便于所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌,包括:
所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程的完成时刻前的第一时刻,释放所述第一写令牌并向所述令牌管理单元发送第一写令牌释放消息,其中,所述第一时刻至所述完成时刻之间的时长等于预设的第一阈值,所述第一阈值小于所述将执行所述第一指令的结果写入所述寄存器组的过程的时长;
所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,包括:
所述令牌管理单元在接收到所述第一写令牌释放消息时,向所述第二指令执行单元发送第二写令牌。
结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述第一指令执行单元在所述读取所述第一指令的操作数的过程开始后,释放所述第一读令牌,包括:
所述第一指令执行单元在所述读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值,所述第二阈值小于所述读取所述第一指令的操作数的过程的时长;
所述令牌管理单元在确定所述释放所述第一读令牌后,向所述第二指令执行单元发送第二读令牌,包括:
所述令牌管理单元在接收到所述第一读令牌释放消息时,向所述第二指令执行单元发送第二读令牌。
结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,所述EU还包括预译码单元,
所述从BIU的指令队列中获取第一指令,包括:所述预译码单元从所述BIU的指令队列中获取所述第一指令;
所述方法还包括:所述预译码单元对所述第一指令进行预译码,确定用于执行所述第一指令的指令执行单元为所述第一指令执行单元,将所述第一指令发送至所述第一指令执行单元,并将所述第一指令执行单元的标识发送至所述令牌管理单元。
结合上述第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述方法还包括:
所述预译码单元从所述BIU的指令队列中获取所述第二指令;
所述预译码单元对所述第二指令进行预译码,确定用于执行所述第二指令的指令执行单元为所述第二指令执行单元;
所述预译码单元将所述第二指令发送至所述第二指令执行单元,并将所述第二指令执行单元的标识发送至所述令牌管理单元。
结合上述第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,在所述令牌管理单元向第一指令执行单元发送第一读令牌之前,所述方法还包括:所述令牌管理单元从所述预译码单元接收所述第一指令执行单元的标识;
所述令牌管理单元向第一指令执行单元发送第一读令牌,包括:所述令牌管理单元根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌;
在所述第一指令执行单元根据所述第一读令牌的指示,读取所述第一指令的操作数之前,所述方法还包括:所述第一指令执行单元从所述预译码单元接收所述第一指令;
在所述向第二指令执行单元发送第二读令牌之前,所述方法还包括:所述令牌管理单元从所述预译码单元接收所述第二指令执行单元的标识;
所述向第二指令执行单元发送第二读令牌,包括:根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
第二方面,提供了一种处理器,所述处理器中的执行部件EU用于从总线接口部件BIU的指令队列中获取第一指令,执行所述第一指令并将执行所述第一指令的结果写入寄存器组,所述EU包括令牌管理单元和至少两个指令执行单元,所述至少两个指令执行单元包括第一指令执行单元和第二指令执行单元:
所述令牌管理单元,用于向所述第一指令执行单元发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元读取待执行的所述第一指令的操作数;
所述第一指令执行单元,用于根据所述第一读令牌的指示,读取所述第一指令的操作数;在所述读取所述第一指令的操作数的过程开始后,释放所述第一读令牌;
所述令牌管理单元,还用于在确定所述释放所述第一读令牌后,向所述第二指令执行单元发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令;
所述第一指令执行单元,还用于根据所述第一指令的操作数,执行所述第一指令,并将执行所述第一指令的结果写入所述寄存器组。
结合第二方面,在第二方面的第一种可能的实现方式中,所述令牌管理单元,还用于向所述第一指令执行单元发送第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元,具体用于接收所述令牌管理单元发送的所述第一写令牌,在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌;
所述令牌管理单元,还用于在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述令牌管理单元,还用于向所述第一指令执行单元发送第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元,具体用于接收所述令牌管理单元发送的所述第一写令牌,在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌;
所述令牌管理单元,还用于在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
结合第二方面或者上述第二方面的任一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一指令执行单元,具体用于在所述读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值,所述第二阈值小于所述读取所述第一指令的操作数的过程的时长;
所述令牌管理单元,具体用于在接收到所述第一读令牌释放消息时,向所述第二指令执行单元发送第二读令牌。
结合第二方面或者上述第二方面的任一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述EU还包括预译码单元,
所述预译码单元,用于从所述BIU的指令队列中获取所述第一指令;
所述预译码单元,还用于对所述第一指令进行预译码,确定用于执行所述第一指令的指令执行单元为所述第一指令执行单元,将所述第一指令发送至所述第一指令执行单元,并将所述第一指令执行单元的标识发送至所述令牌管理单元。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述预译码单元,还用于:
从所述BIU的指令队列中获取所述第二指令;
对所述第二指令进行预译码,确定用于执行所述第二指令的指令执行单元为所述第二指令执行单元;
将所述第二指令发送至所述第二指令执行单元,并将所述第二指令执行单元的标识发送至所述令牌管理单元。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述令牌管理单元,还用于从所述预译码单元接收所述第一指令执行单元的标识,从所述预译码单元接收所述第二指令执行单元的标识;
所述第一指令执行单元,还用于从所述预译码单元接收所述第一指令;
所述令牌管理单元,具体用于根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌;根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
第三方面,提供了一种通信设备,所述通信设备包括处理器和存储器,所述处理器和所述存储器通过总线系统连接,
所述处理器,包括上述第二方面或者第二方面的任一种可能的实现方式所述的处理器;
所述存储器,用于存储所述处理器运行的程序和数据。
本发明实施例中,一个指令执行单元在执行指令的过程中,及时释放读令牌,能够便于令牌管理单元向另一个指令执行单元分配读令牌,这样令牌管理单元能够对读令牌进行协调管理和控制,从而能够保证指令执行的效率。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是一个微型计算机的示意图。
图2是一个处理器的结构的示意图。
图3是本发明一个实施例的指令执行的方法的流程图。
图4是本发明一个实施例的指令执行单元的流水线的示意图。
图5是本发明一个实施例的EU的框图。
图6是本发明另一个实施例的指令执行的方法的流程图。
图7是本发明另一个实施例的指令执行的方法的流程图。
图8是本发明另一个实施例的指令执行单元的流水线的一个示意图。
图9是本发明另一个实施例的指令执行单元的流水线的另一个示意图。
图10是本发明另一个实施例的处理器的框图。
图11是本发明一个实施例的通信设备的框图。
图12是本发明另一个实施例的通信设备的框图。
图13是本发明一个实施例的处理器用于智能无线抄表系统的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是一个微型计算机的示意图。图1中的微型计算机包括微处理器11、存储器12和I/O接口13。其中微处理器11、存储器12和I/O接口13之间通过总线连接,如图1所示,总线包括地址总线14、数据总线15和控制总线16。并且,其中I/O接口13与外部设备21连接。
其中,存储器12可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data Rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DRRAM)。应注意,本文的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
其中,微处理器11是微型计算机的中央处理器(Central Processing Unit,CPU),也可以称为处理器。处理器是一种集成电路芯片,具有信号处理能力。处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现成可编程门阵列(Field Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。
可以理解的是,本文描述的实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
如图2所示,处理器包括执行部件(Execute Unit,EU)和总线接口部件(BusInterface Unit,BIU)。
BIU中的输入输出控制电路与外部总线连接,可以访问存储器12或I/O接口13。地址加法器用于完成逻辑地址向物理地址的变换。
可理解,BIU从存储器12获取指令,并将指令写入指令序列。EU可以从BIU的指令队列中获取指令。队列是先入先出(first in first out,FIFO)的线性表。所以EU从BIU的指令队列获取指令的顺序与BIU从存储器获取的指令的顺序一致。
EU中的执行部分控制电路用于执行指令。具体地,EU从BIU的指令队列中获取指令,对指令进行预译码,并执行指令。
本发明实施例涉及对EU执行指令的过程的改进。具体地,图3是本发明一个实施例的指令执行的方法的流程图。图3所示的方法由处理器中的EU执行。EU用于从BIU的指令队列中获取第一指令,执行该第一指令并将执行该第一指令的结果写入寄存器组。所述EU包括令牌管理单元和至少两个指令执行单元,所述至少两个指令执行单元包括第一指令执行单元和第二指令执行单元。在所述获取第一指令后,图3所示的方法包括:
301,所述令牌管理单元向所述第一指令执行单元发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元读取待执行的所述第一指令的操作数。
302,所述第一指令执行单元根据所述第一读令牌的指示,读取所述第一指令的操作数。
303,所述第一指令执行单元在所述读取所述第一指令的操作数的过程开始后,释放所述第一读令牌。
304,所述令牌管理单元在确定所述释放所述第一读令牌后,向所述第二指令执行单元发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令。
305,所述第一指令执行单元根据所述第一指令的操作数,执行所述第一指令。
306,所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组。
本发明实施例中,一个指令执行单元在指令执行的过程中,及时释放读令牌,能够便于令牌管理单元向下一个指令执行单元分配读令牌,这样令牌管理单元能够对读令牌进行协调管理和控制,从而能够保证指令执行的效率。
应理解,本发明实施例中,令牌管理单元和指令执行单元可以是逻辑电路。其中,令牌管理单元,也可以称为寄存器令牌(Register Token,Reg Token)单元,或者寄存器令牌电路。指令执行单元(instruction Execute Unit,iEU)是处理器内部的执行单元。
例如,至少两个指令执行单元可以包括:乘累加(Multiply And Accumulate,MAC)单元、算术逻辑单元(Arithmetic Logic Unit,ALU)、查表(Look Up Table,LUT)单元、加载(Load,LD)单元、存储(Store,ST)单元等。其中ALU由与门(And Gate)和或门(Or Gate)构成。
可理解,令牌管理单元与每一个指令执行单元进行连接。具体地,可以通过内部总线进行连接。
可选地,EU还可包括预译码(pre decode)单元。具体地,从BIU的指令队列中获取第一指令可以是指:预译码单元从BIU的指令队列中获取第一指令。进一步地,预译码单元对该第一指令进行预译码,确定用于执行该第一指令的指令执行单元为第一指令执行单元。随后,预译码单元可将第一指令发送至第一指令执行单元,并将第一指令执行单元的标识发送至令牌管理单元。
相应地,可理解,在301之前,所述令牌管理单元从所述预译码单元接收所述第一指令执行单元的标识。并且,在301中,所述令牌管理单元根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌。
相应地,可理解,在302之前,所述第一指令执行单元从所述预译码单元接收所述第一指令。
本发明实施例中,假设指令队列中与第一指令相邻的待执行的指令为第二指令。那么类似地,预译码单元从BIU的指令队列中获取第二指令。进一步地,预译码单元对该第二指令进行预译码,确定用于执行该第二指令的指令执行单元为第二指令执行单元。随后,预译码单元可将第二指令发送至第二指令执行单元,并将第二指令执行单元的标识发送至令牌管理单元。
相应地,可理解,在304之前,所述令牌管理单元从所述预译码单元接收所述第二指令执行单元的标识。并且,在304中,所述令牌管理单元根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
应注意,本发明实施例中,标识可以序号,或者也可以是物理地址,或者也可以是其他的标识,本发明对此不作限定。
可选地,本发明实施例中,令牌管理单元在从预译码单元接收多个指令执行单元的标识之后,可以将多个指令执行单元的标识生成一个标识序列。该标识序列中记录接收到的标识的顺序。之后,令牌管理单元可以按照该标识序列依次地执行类似于304的步骤。
可选地,在302中,第一指令执行单元确定第一指令的操作数已经就绪并且在从令牌管理单元接收第一读令牌后,读取第一指令的操作数。
具体地,若预译码单元确定第一指令的操作数来源为寄存器组,那么第一指令执行单元从寄存器组读取第一指令的操作数。若预译码单元确定第一指令的操作数来源为该第一指令,那么第一指令执行单元从第一指令中读取第一指令的操作数。
可选地,可以通过产生一个读时钟(clk)读取第一指令的操作数。
可选地,作为一个实施例,306可以包括:所述令牌管理单元向所述第一指令执行单元发送第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;所述第一指令执行单元在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌;所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
这样,令牌管理单元能够通过写令牌实现对指令执行单元写操作的控制,即令牌管理单元能够对写入寄存器组的过程进行协调管理,进而能够保证效率。
可选地,本发明实施例中,令牌管理单元在从预译码单元接收多个指令执行单元的标识之后,可以将多个指令执行单元的标识生成一个标识序列。该标识序列中记录接收到的标识的顺序。之后,令牌管理单元可以按照该标识序列,确定将写令牌发送至哪一个指令执行单元。
其中,作为一个实施例,所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌,可以包括:所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程的完成时刻前的第一时刻,释放所述第一写令牌并向所述令牌管理单元发送第一写令牌释放消息,其中,所述第一时刻至所述完成时刻之间的时长等于预设的第一阈值,所述第一阈值小于所述将执行所述第一指令的结果写入所述寄存器组的过程的时长。
可选地,第一指令执行单元可以采用一个时延电路释放第一写令牌。例如,若时延电路设置第一时延t1,那么采用该时延电路,即在第一时延t1之后再释放第一写令牌。
相应地,所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,可包括:所述令牌管理单元在接收到所述第一写令牌释放消息时,向所述第二指令执行单元发送第二写令牌。
类似地,可以理解,第二指令执行单元接收到第二写令牌后,可根据第二写令牌的指示,将执行第二指令的结果写入寄存器组。
应注意,本发明实施例中的第一阈值是预设值,本发明对该第一阈值的大小不作限定。只需保证306与第二指令执行单元将执行第二指令的结果写入寄存器组的过程不产生冲突即可。
这样,指令执行单元在写操作结束前释放写令牌,能够使令牌管理单元及时地将写令牌发送至下一个执行指令的指令执行单元,能够使指令执行单元充分地并行运行,进而能够进一步提高效率。
类似地,作为一个实施例,303可包括:所述第一指令执行单元在所述读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值,所述第二阈值小于所述读取所述第一指令的操作数的过程的时长。
可选地,在303中,第一指令执行单元可以采用一个时延电路释放第一读令牌。例如,若时延电路设置第二时延t2,那么采用该时延电路,即在第二时延t2之后再释放第一读令牌。
相应地,304可包括:所述令牌管理单元在接收到所述第一读令牌释放消息时,向所述第二指令执行单元发送第二读令牌。
与302类似地,可以理解,第二指令执行单元接收到第二读令牌后,可根据第二读令牌的指示,读取第二指令的操作数。
应注意,本发明实施例中的第二阈值是预设值,本发明对该第二阈值的大小不作限定。只需保证302与第二指令执行单元读取第二指令的操作数的过程不产生冲突即可。
具体地,对一个指令执行单元来说,例如第一指令执行单元,执行第一指令的过程可如图4所示。该过程包括:
211,读取(fetch)指令。
具体地,第一指令执行单元读取第一指令。
212,指令解码(decode)。
可选地,指令执行单元可以在211中确定第一指令的操作数的来源,也可以在212中通过指令解码确定第一指令的操作数的来源,本发明对此不作限定。
213,读取指令的操作数。
具体地,第一指令执行单元在从令牌管理单元接收第一读令牌后,根据第一读令牌的指示,读取第一指令的操作数。
可理解,第一指令执行单元在221时刻从令牌管理单元接收第一读令牌。
并且,可理解,第一指令执行单元在222时刻释放该第一读令牌。即,第一指令执行单元在读取第一指令的操作数的过程结束前,释放该第一读令牌。
214,执行指令。
具体地,第一指令执行单元根据第一指令的操作数,执行第一指令。
215,写入操作。
215的写入操作是指将执行指令的结果写入寄存器组。
具体地,第一指令执行单元在从令牌管理单元接收第一写令牌后,在执行第一指令结束后,根据第一写令牌的指示,将执行第一指令的结果写入寄存器组。
可理解,第一指令执行单元在223时刻从令牌管理单元接收第一写令牌。并且,由于在223时刻,第一指令执行单元执行第一指令的过程还未完成,于是第一指令执行单元并没有在223时刻开始写入操作。
并且,可理解,第一指令执行单元在224时刻释放该第一写令牌。即,第一指令执行单元在写入操作的过程结束前,释放该第一写令牌。
另外,图4中还包括220阶段。可以理解,220为等待阶段,第一指令执行单元在212之后已确定第一指令的操作数就绪,但是还未从令牌管理单元接收第一读令牌。该220阶段可以理解为是等待第一读令牌的阶段。
可理解,EU从BIU的指令队列中源源不断地获取指令代码,满负荷地连续执行指令。其中,至少两个指令执行单元中的任意一个指令执行单元执行指令的过程与图3所示的第一指令执行单元执行第一指令的过程类似。
应注意,本发明实施例中,对至少两个指令执行单元的数目不作限定。例如,图5是EU的一个示意图。图5中的EU 100包括预译码单元101、令牌管理单元102和至少两个指令执行单元。其中,图5中示出的至少两个指令执行单元为5个,分别为指令执行单元1031、指令执行单元1032、指令执行单元1033、指令执行单元1034和指令执行单元1035。并且,预译码单元101、令牌管理单元102和至少两个指令执行单元之间通过内部总线系统1004连接。
图6是本发明另一个实施例的指令执行的方法的流程图。其中,以图5所示的EU100为基础,且以三个指令为例进行描述。图6所示的方法包括:
401,预译码单元101获取第一指令。
具体地,预译码单元101从BIU的指令队列中获取第一指令。
402,预译码单元101对第一指令进行预译码。
具体地,预译码单元101确定将执行第一指令的指令执行单元为指令执行单元1032。并且,预译码单元101可确定指令执行单元1032的标识为第一标识。
可选地,预译码单元101也可以通过预译码确定第一指令的操作数的来源。
403,预译码单元101将第一标识发送至令牌管理单元102,将第一指令发送至指令执行单元1032。
可选地,预译码单元101也可以将第一指令的操作数的来源告知指令执行单元1032。
404,预译码单元101获取第二指令。
具体地,预译码单元101从BIU的指令队列中获取第二指令,第二指令时指令队列中与第一指令相邻的指令。
405,预译码单元101对第二指令进行预译码。
具体地,预译码单元101确定将执行第二指令的指令执行单元为指令执行单元1031。并且,预译码单元101可确定指令执行单元1031的标识为第二标识。
可选地,预译码单元101也可以通过预译码确定第二指令的操作数的来源。
406,预译码单元101将第二标识发送至令牌管理单元102,将第二指令发送至指令执行单元1031。
可选地,预译码单元101也可以将第二指令的操作数的来源告知指令执行单元1031。
407,预译码单元101获取第三指令。
具体地,预译码单元101从BIU的指令队列中获取第三指令,第三指令时指令队列中与第二指令相邻的指令。
408,预译码单元101对第三指令进行预译码。
具体地,预译码单元101确定将执行第三指令的指令执行单元为指令执行单元1033。并且,预译码单元101可确定指令执行单元1033的标识为第三标识。
可选地,预译码单元101也可以通过预译码确定第三指令的操作数的来源。
409,预译码单元101将第三标识发送至令牌管理单元102,将第三指令发送至指令执行单元1033。
可选地,预译码单元101也可以将第三指令的操作数的来源告知指令执行单元1033。
可理解,预译码单元101从BIU的指令队列中源源不断地获取指令,对指令进行预译码,将指令发送至将执行指令的对应的指令执行单元,并将对应的指令执行单元的标识发送至令牌管理单元102。
501,令牌管理单元102将第一读令牌发送至指令执行单元1032。
可理解,501在403之后执行。具体地,令牌管理单元102根据第一标识,将第一读令牌发送至指令执行单元1032。
可理解,在501之前,令牌管理单元102生成第一读令牌。
502,指令执行单元1032根据第一读令牌的指示,读取第一指令的操作数。
可理解,502是在403之后,且在501之后执行的。
具体地,第一指令的操作数的来源可能为该第一指令,也可能为寄存器组。
503,指令执行单元1032释放第一读令牌。
可选地,指令执行单元1032可以在读取第一指令的操作数的过程的结束时刻前的第一时刻,释放第一读令牌。
其中,第一时刻至结束时刻之间的时长可以小于第一时长阈值。
504,指令执行单元1032发送第一读令牌释放消息至令牌管理单元102。
可理解,在503之后,指令执行单元1032可以生成第一读令牌释放消息。
505,指令执行单元1032执行第一指令。
可理解,505是在502结束之后执行的。
506,令牌管理单元102将第二读令牌发送至指令执行单元1031。
可理解,506在406之后,且在504之后执行。具体地,令牌管理单元102在接收到第一读令牌释放消息后,根据第二标识,将第二读令牌发送至指令执行单元1031。
可理解,在506之前,令牌管理单元102生成第二读令牌。
507,指令执行单元1031根据第二读令牌的指示,读取第二指令的操作数。
可理解,507是在406之后,且在506之后执行的。
具体地,第二指令的操作数的来源可能为该第二指令,也可能为寄存器组。
508,指令执行单元1031释放第二读令牌。
可选地,指令执行单元1031可以在读取第二指令的操作数的过程的结束时刻前的第二时刻,释放第二读令牌。
其中,第二时刻至结束时刻之间的时长可以小于第二时长阈值。
509,指令执行单元1031发送第二读令牌释放消息至令牌管理单元102。
可理解,在508之后,指令执行单元1031可以生成第二读令牌释放消息。
510,指令执行单元1031执行第二指令。
可理解,510是在507结束之后执行的。
511,令牌管理单元102将第三读令牌发送至指令执行单元1033。
可理解,511在409之后执行。具体地,令牌管理单元102在接收到第二读令牌释放消息后,根据第三标识,将第三读令牌发送至指令执行单元1033。
可理解,在511之前,令牌管理单元102生成第三读令牌。
512,指令执行单元1033根据第三读令牌的指示,读取第三指令的操作数。
可理解,512是在409之后,且在511之后执行的。
具体地,第三指令的操作数的来源可能为该第三指令,也可能为寄存器组。
513,指令执行单元1033释放第三读令牌。
可选地,指令执行单元1033可以在读取第三指令的操作数的过程的结束时刻前的第三时刻,释放第三读令牌。
其中,第三时刻至结束时刻之间的时长可以小于第三时长阈值。
514,指令执行单元1033发送第三读令牌释放消息至令牌管理单元102。
可理解,在513之后,指令执行单元1033可以生成第三读令牌释放消息。
515,指令执行单元1033执行第三指令。
可理解,515是在512结束之后执行的。
另外,本发明实施例中,当一个指令执行单元在执行指令过程中需跳转到新的指令时,例如,若指令执行单元1031执行第二指令的过程中需跳转到第四指令,预译码单元101获取第四指令并确定执行该第四指令的指令执行单元。例如,假设执行该第四指令的指令执行单元为指令执行单元1032。
那么,预译码单元101将该第四指令发送至指令执行单元1032。应注意,在指令执行单元1031执行跳转的清除工作结束之后,预译码单元101将该第四指令发送至指令执行单元1032。同时,令牌管理单元102生成第四读令牌并发送至指令执行单元1032,以便指令执行单元1032读取第四指令的操作数并执行第四指令。
也就是说,当跳转到新的指令时,令牌管理单元102直接为执行该新的指令的指令执行单元生成读令牌,而不依赖于其他的读令牌释放消息。
并且,可理解,在执行该新的指令之后,该新的指令的执行结果不写入寄存器组,而是返回跳转前的指令的执行过程。
进一步地,如图7所示,在图6所示的实施例之后,还可以包括:
516,令牌管理单元102将第一写令牌发送至指令执行单元1032。
可理解,516在504之后执行。具体地,令牌管理单元102根据第一标识,将第一写令牌发送至指令执行单元1032。
可理解,在516之前,令牌管理单元102生成第一写令牌。
517,指令执行单元1032根据第一写令牌的指示,将执行第一指令的结果写入寄存器组。
可理解,517在516之后,且在505之后执行。
518,指令执行单元1032释放第一写令牌。
可选地,指令执行单元1032可以在517的过程的结束时刻前的第四时刻,释放第一写令牌。
其中,第四时刻至结束时刻之间的时长可以小于第四时长阈值。
519,指令执行单元1032发送第一写令牌释放消息发送至令牌管理单元102。
可理解,在518之后,指令执行单元1032可以生成第一写令牌释放消息。
520,令牌管理单元102将第二写令牌发送至指令执行单元1031。
可理解,520在509之后,且在519之后执行。具体地,令牌管理单元102在接收到第一写令牌释放消息后,根据第二标识,将第二写令牌发送至指令执行单元1031。
可理解,在520之前,令牌管理单元102生成第二写令牌。
521,指令执行单元1031根据第二写令牌的指示,将执行第二指令的结果写入寄存器组。
可理解,521在520之后,且在510之后执行。
522,指令执行单元1031释放第二写令牌。
可选地,指令执行单元1031可以在521的过程的结束时刻前的第五时刻,释放第二写令牌。
其中,第五时刻至结束时刻之间的时长可以小于第五时长阈值。
523,指令执行单元1031发送第二写令牌释放消息发送至令牌管理单元102。
可理解,在522之后,指令执行单元1031可以生成第二写令牌释放消息。
524,令牌管理单元102将第三写令牌发送至指令执行单元1033。
可理解,524在514之后,且在523之后执行。具体地,令牌管理单元102在接收到第二写令牌释放消息后,根据第三标识,将第三写令牌发送至指令执行单元1033。
可理解,在524之前,令牌管理单元102生成第三写令牌。
525,指令执行单元1032根据第三写令牌的指示,将执行第三指令的结果写入寄存器组。
可理解,525在524之后,且在515之后执行。
526,指令执行单元1033释放第三写令牌。
可选地,指令执行单元1033可以在525的过程的结束时刻前的第六时刻,释放第三写令牌。
其中,第六时刻至结束时刻之间的时长可以小于第三时长阈值。
527,指令执行单元1033发送第三写令牌释放消息发送至令牌管理单元102。
可理解,在526之后,指令执行单元1033可以生成第三写令牌释放消息。
应注意,本发明实施例中,如果第二指令的操作数的来源为第一指令的执行结果,也就是说,第二指令的操作数依赖于第一指令,两者具有依赖关系。那么,可理解,507是在517之后执行的。
同样,如果第三指令的操作数依赖于第二指令的结果,那么,可理解,512是在521之后执行的。
同样,如果第三指令的操作数依赖于第一指令的结果,那么,可理解,512是在517之后执行的。
应注意,图6和图7所示的实施例中,序号的大小不代表执行的顺序,也就是说,不能将每个步骤前的序号作为执行顺序的限定。
针对图6和图7所示的流程,图8是指令执行单元1031、指令执行单元1032和指令执行单元1033的流水线的示意图。其中,第一指令、第二指令和第三指令的操作数之间没有依赖关系。
图8中,506、501和511分别为指令执行单元1031、指令执行单元1032和指令执行单元1033获取读令牌的过程。508、503和513分别为执行单元1031、指令执行单元1032和指令执行单元1033释放读令牌的过程。520、516和524分别为指令执行单元1031、指令执行单元1032和指令执行单元1033获取写令牌的过程。522、518和526分别为执行单元1031、指令执行单元1032和指令执行单元1033释放写读令牌的过程。
针对图6和图7所示的流程,图9是指令执行单元1031、指令执行单元1032和指令执行单元1033的流水线的另一示意图。其中,第一指令和第三指令的操作数之间具有依赖关系。具体地,第三指令的操作数依赖于第一指令的执行结果。
图9中,512是在517之后执行的。可理解,对指令执行单元1033来说,在511获取第三读令牌时,该第三指令的操作数还未就绪。在517之后,该第三指令的操作数就绪后,才执行512。
在图8和图9中,斜划线的时间段为等待阶段。具体地,在507、502和512前的等待阶段是指指令的操作数未就绪或者还未收到读令牌;在517和525前的等待阶段是指还未收到写令牌。对照图9和图8,可以看出,指令间具有依赖关系时,等待阶段的时间较长。
从图8和图9可以看出,各条流水线并行进行,并且流水线布局紧凑。
本发明实施例中,一个指令执行单元在执行指令的过程中,及时释放读令牌,能够便于令牌管理单元向另一个指令执行单元分配读令牌,这样令牌管理单元能够对读令牌进行协调管理和控制,从而能够保证指令执行的效率。
图10是本发明一个实施例的处理器的框图。图10中的处理器1000包括EU 100。EU100包括令牌管理单元1001和至少两个指令执行单元1002。其中至少两个指令执行单元1002包括第一指令执行单元10021和第二指令执行单元10022。
执行部件EU 100用于从总线接口部件BIU的指令队列中获取第一指令,执行所述第一指令并将执行所述第一指令的结果写入寄存器组。具体地,
所述令牌管理单元1001,用于向所述第一指令执行单元10021发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元10021读取待执行的所述第一指令的操作数;
所述第一指令执行单元10021,用于根据所述第一读令牌的指示,读取所述第一指令的操作数;在所述读取所述第一指令的操作数的过程开始后,释放所述第一读令牌;
所述令牌管理单元1001,还用于在确定所述释放所述第一读令牌后,向所述第二指令执行单元10022发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元10022读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令;
所述第一指令执行单元10021,还用于根据所述第一指令的操作数,执行所述第一指令,并将执行所述第一指令的结果写入所述寄存器组。
本发明实施例中,一个指令执行单元在执行指令的过程中,及时释放读令牌,能够便于令牌管理单元向另一个指令执行单元分配读令牌,这样令牌管理单元能够对读令牌进行协调管理和控制,从而能够保证指令执行的效率。
可选地,作为一个实施例,所述令牌管理单元1001,还用于向所述第一指令执行单元10021发送第一写令牌,所述第一写令牌用于指示所述第一指令执行单元10021将执行所述第一指令的结果写入所述寄存器组。
所述第一指令执行单元10021,具体用于接收所述令牌管理单元1001发送的所述第一写令牌,在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌。
所述令牌管理单元1001,还用于在确定所述释放所述第一写令牌后,向所述第二指令执行单元10022发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元10022将执行所述第二指令的结果写入所述寄存器组。
可选地,作为另一个实施例,所述第一指令执行单元10021,具体用于在所述将执行所述第一指令的结果写入所述寄存器组的过程的完成时刻前的第一时刻,释放所述第一写令牌并向所述令牌管理单元1001发送第一写令牌释放消息,其中,所述第一时刻至所述完成时刻之间的时长等于预设的第一阈值,所述第一阈值小于所述将执行所述第一指令的结果写入所述寄存器组的过程的时长。
所述令牌管理单元1001,具体用于在接收到所述第一写令牌释放消息时,向所述第二指令执行单元10022发送第二写令牌。
可选地,作为另一个实施例,所述第一指令执行单元10021,具体用于在所述读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元1001发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值,所述第二阈值小于所述读取所述第一指令的操作数的过程的时长。
所述令牌管理单元1001,具体用于在接收到所述第一读令牌释放消息时,向所述第二指令执行单元10022发送第二读令牌。
可选地,作为另一个实施例,所述EU 100还包括预译码单元,所述预译码单元,用于从所述BIU的指令队列中获取所述第一指令;所述预译码单元,还用于对所述第一指令进行预译码,确定用于执行所述第一指令的指令执行单元为所述第一指令执行单元,将所述第一指令发送至所述第一指令执行单元,并将所述第一指令执行单元的标识发送至所述令牌管理单元。
可选地,作为另一个实施例,所述预译码单元,还用于:从所述BIU的指令队列中获取所述第二指令;对所述第二指令进行预译码,确定用于执行所述第二指令的指令执行单元为所述第二指令执行单元;将所述第二指令发送至所述第二指令执行单元,并将所述第二指令执行单元的标识发送至所述令牌管理单元。
可选地,作为另一个实施例,所述令牌管理单元1001,还用于从所述预译码单元接收所述第一指令执行单元的标识,从所述预译码单元接收所述第二指令执行单元的标识。所述第一指令执行单元10021,还用于从所述预译码单元接收所述第一指令。所述令牌管理单元1001,具体用于根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌;根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
可理解,本发明实施例中,至少两个指令执行单元1002可以包括多个指令执行单元。多个指令执行单元可以用于执行不同类型的指令,或者,多个指令执行单元中的两个指令执行单元也可以用于执行相同类型的指令。
本发明实施例中,能够通过增加指令执行单元102的数目来提高处理器1000的处理性能,也就是说,能够达到以面积换速度的效果。
可理解,图10所示的处理器1000能够实现前述图3至图9的实施例中由处理器执行的过程,为避免重复,这里不再赘述。
图11是本发明一个实施例的通信设备的框图。图11所示的通信设备700包括处理器701和存储器702,所述处理器701和所述存储器702通过总线系统703连接。
所述处理器701,包括图10所述的处理器1000;
所述存储器702,用于存储所述处理器701运行的程序和数据。
这样,本发明前述实施例中的处理器能够用于一种通信设备,且上述处理器具有较高的处理效率,进而该处理器能够提高通信设备的性能。
应注意,处理器701可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质可以位于存储器中,处理器701读取存储器702中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器702可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM和DR RAM。本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
图12是本发明另一个实施例的通信设备的框图。包括处理器1000和存储器2000。处理器1000包括EU 100、指令提取单元104、指令缓存单元105、数据缓存单元106、复用器(multiplexer,MUX)107和寄存器组108。其中EU 100包括预译码单元101、令牌管理单元102和五个指令执行单元:指令执行单元1031、指令执行单元1032、指令执行单元1033、指令执行单元1034和指令执行单元1035。
图12中的各个组件通过总线系统连接在一起,其中总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图12中将各种总线都标为总线系统。
应注意,处理器1000可能是一种集成电路芯片,具有信号处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器1000可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质可以位于存储器中,处理器1000读取存储器2000中的信息,结合其硬件完成上述方法的步骤。
可以理解,本发明实施例中的存储器2000可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是ROM、PROM、EPROM、EEPROM或闪存。易失性存储器可以是RAM,其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如SRAM、DRAM、SDRAM、DDR SDRAM、ESDRAM、SLDRAM和DRRAM。本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个ASIC、DSP、DSPD、PLD、FPGA、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可以在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段以通信方式耦合至处理器。
可选地,假设指令执行单元1031为乘累加(Multiply And Accumulate,MAC)单元,指令执行单元1032为算术逻辑单元(Arithmetic Logic Unit,ALU),指令执行单元1033为查表(Look Up Table,LUT)单元,指令执行单元1034为加载(Load,LD)单元,指令执行单元1035为存储(Store,ST)单元。
指令提取单元104用于从存储器2000获取指令序列。指令缓存单元105用于由指令提取单元104缓存指令序列。
预译码单元101用于从指令提取单元104获取指令序列。
数据缓存单元106用于由加载单元和存储单元将缓存数据。
复用器,也可以称为多路转换器、数据选择器或多路开关等。
图13是本发明一个实施例的处理器用于智能无线抄表系统的示意图。图13所示的智能无线抄表系统包括核心系统710、用户接口720、射频730和抄表应用微控制单元(APPMicro Control Unit,APP MCU)740。其中,核心系统710包括数字信号处理器(DigitalSignal Processor,DSP)711和FLASH 712。射频730包括射频集成电路(Radio FrequencyIntegrated Circuit,RFIC)731和功率放大器(Power Amplifier,PA)732。
其中,FLASH 712是存储芯片,用于存储DSP运行的程序。RFIC 731可以是无线信号处理芯片。
可理解,本发明前述实施例中的处理器可以应用与图13中的DSP 711,该DSP 711可以是单核数字信号处理器,用于处理无线基带信号,从而实现无线业务传输。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种指令执行的方法,所述方法由处理器中的执行部件EU执行,所述EU用于从总线接口部件BIU的指令队列中获取第一指令,执行所述第一指令并将执行所述第一指令的结果写入寄存器组,其特征在于,所述EU包括令牌管理单元和至少两个指令执行单元,所述至少两个指令执行单元包括第一指令执行单元和第二指令执行单元,所述方法包括:
所述令牌管理单元向所述第一指令执行单元发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元读取待执行的所述第一指令的操作数;
所述第一指令执行单元根据所述第一读令牌的指示,读取所述第一指令的操作数;
所述第一指令执行单元在所述读取所述第一指令的操作数的过程开始后,且在读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值;
所述令牌管理单元在接收到所述第一读令牌释放消息时,向所述第二指令执行单元发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令;
所述第一指令执行单元根据所述第一指令的操作数,执行所述第一指令;
所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组。
2.根据权利要求1所述的方法,其特征在于,所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组,包括:
所述第一指令执行单元接收所述令牌管理单元发送的第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌,以便于所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
3.根据权利要求2所述的方法,其特征在于,所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌,包括:
所述第一指令执行单元在所述将执行所述第一指令的结果写入所述寄存器组的过程的完成时刻前的第一时刻,释放所述第一写令牌并向所述令牌管理单元发送第一写令牌释放消息,其中,所述第一时刻至所述完成时刻之间的时长等于预设的第一阈值,所述第一阈值小于所述将执行所述第一指令的结果写入所述寄存器组的过程的时长;
所述令牌管理单元在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,包括:
所述令牌管理单元在接收到所述第一写令牌释放消息时,向所述第二指令执行单元发送第二写令牌。
4.根据权利要求1所述的方法,其特征在于,所述第二阈值小于所述读取所述第一指令的操作数的过程的时长。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述EU还包括预译码单元,
所述从BIU的指令队列中获取第一指令,包括:所述预译码单元从所述BIU的指令队列中获取所述第一指令;
所述方法还包括:所述预译码单元对所述第一指令进行预译码,确定用于执行所述第一指令的指令执行单元为所述第一指令执行单元,将所述第一指令发送至所述第一指令执行单元,并将所述第一指令执行单元的标识发送至所述令牌管理单元。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
所述预译码单元从所述BIU的指令队列中获取所述第二指令;
所述预译码单元对所述第二指令进行预译码,确定用于执行所述第二指令的指令执行单元为所述第二指令执行单元;
所述预译码单元将所述第二指令发送至所述第二指令执行单元,并将所述第二指令执行单元的标识发送至所述令牌管理单元。
7.根据权利要求6所述的方法,其特征在于,
在所述令牌管理单元向第一指令执行单元发送第一读令牌之前,所述方法还包括:所述令牌管理单元从所述预译码单元接收所述第一指令执行单元的标识;
所述令牌管理单元向第一指令执行单元发送第一读令牌,包括:所述令牌管理单元根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌;
在所述第一指令执行单元根据所述第一读令牌的指示,读取所述第一指令的操作数之前,所述方法还包括:所述第一指令执行单元从所述预译码单元接收所述第一指令;
在所述向第二指令执行单元发送第二读令牌之前,所述方法还包括:所述令牌管理单元从所述预译码单元接收所述第二指令执行单元的标识;
所述向第二指令执行单元发送第二读令牌,包括:根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
8.一种处理器,所述处理器中的执行部件EU用于从总线接口部件BIU的指令队列中获取第一指令,执行所述第一指令并将执行所述第一指令的结果写入寄存器组,其特征在于,所述EU包括令牌管理单元和至少两个指令执行单元,所述至少两个指令执行单元包括第一指令执行单元和第二指令执行单元:
所述令牌管理单元,用于向所述第一指令执行单元发送第一读令牌,所述第一读令牌用于指示所述第一指令执行单元读取待执行的所述第一指令的操作数;
所述第一指令执行单元,用于根据所述第一读令牌的指示,读取所述第一指令的操作数;
在所述读取所述第一指令的操作数的过程开始后,且在读取所述第一指令的操作数的过程的结束时刻前的第二时刻,释放所述第一读令牌并向所述令牌管理单元发送第一读令牌释放消息,其中,所述第二时刻至所述结束时刻之间的时长等于预设的第二阈值;
所述令牌管理单元,还用于在在接收到所述第一读令牌释放消息时,向所述第二指令执行单元发送第二读令牌,所述第二读令牌用于指示所述第二指令执行单元读取待执行的第二指令的操作数,其中,所述第二指令是在所述指令队列中与第一指令相邻的待执行的指令;
所述第一指令执行单元,还用于根据所述第一指令的操作数,执行所述第一指令,并将执行所述第一指令的结果写入所述寄存器组。
9.根据权利要求8所述的处理器,其特征在于:
所述令牌管理单元,还用于向所述第一指令执行单元发送第一写令牌,所述第一写令牌用于指示所述第一指令执行单元将执行所述第一指令的结果写入所述寄存器组;
所述第一指令执行单元,具体用于接收所述令牌管理单元发送的所述第一写令牌,在执行所述第一指令后,根据所述第一写令牌的指示,将执行所述第一指令的结果写入所述寄存器组;在所述将执行所述第一指令的结果写入所述寄存器组的过程开始后,释放所述第一写令牌;
所述令牌管理单元,还用于在确定所述释放所述第一写令牌后,向所述第二指令执行单元发送第二写令牌,所述第二写令牌用于指示所述第二指令执行单元将执行所述第二指令的结果写入所述寄存器组。
10.根据权利要求9所述的处理器,其特征在于:
所述第一指令执行单元,具体用于在所述将执行所述第一指令的结果写入所述寄存器组的过程的完成时刻前的第一时刻,释放所述第一写令牌并向所述令牌管理单元发送第一写令牌释放消息,其中,所述第一时刻至所述完成时刻之间的时长等于预设的第一阈值,所述第一阈值小于所述将执行所述第一指令的结果写入所述寄存器组的过程的时长;
所述令牌管理单元,具体用于在接收到所述第一写令牌释放消息时,向所述第二指令执行单元发送第二写令牌。
11.根据权利要求8所述的处理器,其特征在于:所述第二阈值小于所述读取所述第一指令的操作数的过程的时长。
12.根据权利要求8至11任一项所述的处理器,其特征在于,所述EU还包括预译码单元,
所述预译码单元,用于从所述BIU的指令队列中获取所述第一指令;
所述预译码单元,还用于对所述第一指令进行预译码,确定用于执行所述第一指令的指令执行单元为所述第一指令执行单元,将所述第一指令发送至所述第一指令执行单元,并将所述第一指令执行单元的标识发送至所述令牌管理单元。
13.根据权利要求12所述的处理器,其特征在于,所述预译码单元,还用于:
从所述BIU的指令队列中获取所述第二指令;
对所述第二指令进行预译码,确定用于执行所述第二指令的指令执行单元为所述第二指令执行单元;
将所述第二指令发送至所述第二指令执行单元,并将所述第二指令执行单元的标识发送至所述令牌管理单元。
14.根据权利要求13所述的处理器,其特征在于,
所述令牌管理单元,还用于从所述预译码单元接收所述第一指令执行单元的标识,从所述预译码单元接收所述第二指令执行单元的标识;
所述第一指令执行单元,还用于从所述预译码单元接收所述第一指令;
所述令牌管理单元,具体用于根据所述第一指令执行单元的标识,向所述第一指令执行单元发送所述第一读令牌;根据所述第二指令执行单元的标识,向所述第二指令执行单元发送所述第二读令牌。
15.一种通信设备,其特征在于,所述通信设备包括处理器和存储器,所述处理器和所述存储器通过总线系统连接,
所述处理器,包括权利要求8至14任一项所述的处理器;
所述存储器,用于存储所述处理器运行的程序和数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/085555 WO2016029444A1 (zh) | 2014-08-29 | 2014-08-29 | 指令执行的方法及处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106796505A CN106796505A (zh) | 2017-05-31 |
CN106796505B true CN106796505B (zh) | 2019-03-08 |
Family
ID=55398655
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480081514.2A Active CN106796505B (zh) | 2014-08-29 | 2014-08-29 | 指令执行的方法及处理器 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20170185411A1 (zh) |
EP (1) | EP3176692A4 (zh) |
CN (1) | CN106796505B (zh) |
WO (1) | WO2016029444A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020062297A1 (zh) * | 2018-09-30 | 2020-04-02 | 深圳市大疆创新科技有限公司 | 令牌管理方法、装置、芯片及可移动平台 |
CN109947479A (zh) * | 2019-01-29 | 2019-06-28 | 安谋科技(中国)有限公司 | 指令执行方法及其处理器、介质和系统 |
US11900156B2 (en) * | 2019-09-24 | 2024-02-13 | Speedata Ltd. | Inter-thread communication in multi-threaded reconfigurable coarse-grain arrays |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744033A (zh) * | 2004-09-02 | 2006-03-08 | 国际商业机器公司 | 流水线处理的方法和设备 |
CN103874968A (zh) * | 2011-08-03 | 2014-06-18 | 康奈尔大学 | 用于高性能异步电路的节能流水线电路模板 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5185873A (en) * | 1988-02-19 | 1993-02-09 | Hitachi, Ltd. | Control system with flag indicating two or less data inputs and counter indicating two or more controlling data driven execution method |
US5784631A (en) * | 1992-06-30 | 1998-07-21 | Discovision Associates | Huffman decoder |
KR100243100B1 (ko) * | 1997-08-12 | 2000-02-01 | 정선종 | 다수의 주프로세서 및 보조 프로세서를 갖는 프로세서의구조 및 보조 프로세서 공유 방법 |
US7447879B2 (en) * | 2006-02-09 | 2008-11-04 | International Business Machines Corporation | Scheduling instructions in a cascaded delayed execution pipeline to minimize pipeline stalls caused by a cache miss |
CN101136735B (zh) * | 2006-09-12 | 2010-05-12 | 中兴通讯股份有限公司 | 使用通用异步收发报机的半双工串口通信系统及通信方法 |
US7930578B2 (en) * | 2007-09-27 | 2011-04-19 | International Business Machines Corporation | Method and system of peak power enforcement via autonomous token-based control and management |
US9652301B2 (en) * | 2010-09-15 | 2017-05-16 | Wisconsin Alumni Research Foundation | System and method providing run-time parallelization of computer software using data associated tokens |
-
2014
- 2014-08-29 WO PCT/CN2014/085555 patent/WO2016029444A1/zh active Application Filing
- 2014-08-29 CN CN201480081514.2A patent/CN106796505B/zh active Active
- 2014-08-29 EP EP14900708.0A patent/EP3176692A4/en not_active Withdrawn
-
2017
- 2017-02-28 US US15/445,677 patent/US20170185411A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1744033A (zh) * | 2004-09-02 | 2006-03-08 | 国际商业机器公司 | 流水线处理的方法和设备 |
CN103874968A (zh) * | 2011-08-03 | 2014-06-18 | 康奈尔大学 | 用于高性能异步电路的节能流水线电路模板 |
Non-Patent Citations (1)
Title |
---|
"LOW-POWER HIGH-PERFORMANCE ASYNCHRONOUS GENERAL PURPOSE ARMv7 PROCESSOR FOR MULTI-CORE APPLICATIONS";Michel Laurence;《13th International Forum on Embedded MPSoC and Multicore》;20130719;32-38 |
Also Published As
Publication number | Publication date |
---|---|
EP3176692A4 (en) | 2018-09-19 |
US20170185411A1 (en) | 2017-06-29 |
EP3176692A1 (en) | 2017-06-07 |
CN106796505A (zh) | 2017-05-31 |
WO2016029444A1 (zh) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7996581B2 (en) | DMA engine | |
CN103827818B (zh) | Fifo加载指令 | |
CN105379121A (zh) | 基于时钟时延调整的异步处理器的方法和设备 | |
CN113220108B (zh) | 计算机可读取存储介质、操作频率调整方法及装置 | |
CN105487987B (zh) | 一种处理并发顺序读io的方法及装置 | |
CN106796505B (zh) | 指令执行的方法及处理器 | |
US9342478B2 (en) | Processor with reconfigurable architecture including a token network simulating processing of processing elements | |
US20240311149A1 (en) | Detecting infinite loops in a programmable atomic transaction | |
US8589602B2 (en) | Data transfer engine with delay circuitry for blocking transfers | |
US20170068452A1 (en) | Data operating method, device, and system | |
US20240086200A1 (en) | Self-scheduling threads in a programmable atomic unit | |
US20160187958A1 (en) | Techniques for managing power and performance for a networking device | |
CN111984557A (zh) | 数据处理方法、装置和系统 | |
JP2013525917A (ja) | エミュレート電気的消去可能(eee)メモリおよび動作方法 | |
CN102859488B (zh) | 具有任务流程控制的协处理器 | |
JP6277279B2 (ja) | エミュレーションにおけるパーティショニングおよびプラットフォームのプロトタイピングを用いたダイナミックインターコネクト | |
US10205666B2 (en) | End-to-end flow control in system on chip interconnects | |
CN107590086B (zh) | 一种通讯连接装置及方法、通讯单板 | |
CN102103490B (zh) | 一种利用流水处理提高内存效率的方法 | |
CN102043750B (zh) | 一种微处理器总线结构及微处理器 | |
US9189438B2 (en) | Method and apparatus for dynamic power saving with flexible gating in a cross-bar architecture | |
CN107077381A (zh) | 异步指令执行装置和方法 | |
CN105760317A (zh) | 数据写系统和用于核心处理器的数据写方法 | |
CN104714779A (zh) | 指令处理方法及装置 | |
US20140351555A1 (en) | Digital signal processor and method for addressing a memory in a digital signal processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |