CN111124496A - 一种多周期指令处理方法、处理器和电子设备 - Google Patents
一种多周期指令处理方法、处理器和电子设备 Download PDFInfo
- Publication number
- CN111124496A CN111124496A CN201911356368.0A CN201911356368A CN111124496A CN 111124496 A CN111124496 A CN 111124496A CN 201911356368 A CN201911356368 A CN 201911356368A CN 111124496 A CN111124496 A CN 111124496A
- Authority
- CN
- China
- Prior art keywords
- instruction
- processor
- execution unit
- self
- cycle
- 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.)
- Granted
Links
Images
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/30181—Instruction operation extension or modification
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本申请实施例提供一种多周期指令处理方法、处理器和电子设备,属于计算机领域,用以解决单周期指令处理器不支持自定义多周期指令的技术问题。其中,处理器设有自定义指令执行单元,用于产生主动暂停信号,以及通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,其他功能单元为流水线架构中除自定义指令执行单元以外的功能单元,自定义多周期指令为执行阶段包括多个微操作的自定义指令;自定义指令执行单元,还用于在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作。本申请提供的上述方法、处理器和电子设备,能够基于单周期指令处理器实现对自定义多周期指令的处理。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种多周期指令处理方法、处理器和电子设备。
背景技术
计算机之所以能够处理指令、进行运算,是因为中央处理器(central processingunit,CPU)能从存放程序的内存里取出一条指令,译码后执行这条指令,紧接着又是取指令、译码、执行指令,直至遇到停机指令。
目前,处理器(例如CPU,central processing unit)大多采用流水线方式来处理指令。处理器的流水线(pipeline)方式,类似于工业生产中的装配流水线,在处理器中,由多个不同功能的电路单元组成一条指令处理流水线,一条指令被分成与电路单元数目对应的多个微操作,再由这些电路单元分别依次执行,例如一条指令可以被划分为取指、译码和执行三个阶段,分别由取指单元、译码单元和执行单元来分别完成,取指单元在一个时钟周期内完成第一条指令的取指后,在第二个时钟周期内进行第二条指令的取指,译码单元在第二个时钟周期内进行第一条指令的译码,在第三个时钟周期内进行第二条指令的译码,执行单元在第三个时钟周期进行第一条指令的执行,如此依次类推,从整个处理器的宏观工作效率角度而言,相当于在一个时钟周期完成一条指令,因此提高了CPU的运算速度。
根据处理器内部流水线设计,处理器包括支持单周期指令类型和支持多周期指令类型。其中,已有技术下,部分支持单周期指令的处理器,虽然设置了自定义指令功能,但受限于原有的流水线设计,仅能支持单周期自定义指令扩展,无法基于单周期指令处理器实现多周期指令的处理。
发明内容
本申请实施例提供了一种多周期指令扩展方法、装置和处理器,用以解决已有技术中单周期指令处理器不支持自定义多周期指令的问题。
第一方面,本申请提供一种处理器,支持单周期指令且设有自定义指令执行单元,其中:
自定义指令执行单元,用于产生主动暂停信号,以及通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,其他功能单元为流水线架构中除自定义指令执行单元以外的功能单元,自定义多周期指令为执行阶段包括多个微操作的自定义指令;
自定义指令执行单元,还用于在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作。
可选的,自定义指令执行单元与处理器外部具有预设访问带宽的存储器连接;
依次执行自定义多周期指令的执行阶段所包括的多个微操作时,自定义指令执行单元,进一步用于:
根据指定访问路径,通过直接访问处理器外部具有预设访问带宽的存储器,以获取执行多个微操作所需的运算数据。
可选的,自定义指令执行单元,进一步用于:
通过主动暂停信号,控制处理器外部存储器,在其他功能单元暂停运行期间,允许自定义指令执行单元具有唯一访问权限。
可选的,处理器内部还设有第一内部逻辑控制模块和门控电路;
自定义指令执行单元,通过门控电路与第一内部逻辑控制模块信号连接,第一内部逻辑控制模块的内部控制逻辑与处理器原有内部控制逻辑保持一致,门控电路用于在任一输入有效时,均控制输出为有效信号;
主动暂停信号与处理器外部暂停信号作为门控电路的输入,依次经门控电路、第一内部逻辑控制模块后,输出至其他功能单元。
可选的,处理器还设有第二内部逻辑控制模块;
第二内部逻辑控制模块的内部控制逻辑与第一内部逻辑控制模块保持一致,外部暂停信号经第二内部逻辑控制模块,输出至自定义指令执行单元。
可选的,在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作时,自定义指令执行单元,进一步用于:
通过计数方式判断多个微操作是否执行完毕,确定多个微操作未执行完毕时,屏蔽外部暂停信号,直至多个微操作被执行完毕。
第二方面,本申请还提供一种电子设备,包括如上述任一项的处理器和设于处理器外部的存储器;
存储器包括访问控制接口和外部存储空间,自定义指令执行单元产生的主动暂停信号输出至访问控制接口;
访问控制接口,用于根据主动暂停信号,在其他功能单元暂停运行期间内,控制自定义指令执行单元对外部存储空间具有唯一访问权限。
第三方面,本申请还提供一种多周期指令处理方法,基于支持单周期指令且设有自定义指令执行单元的处理器实施,具体包括:
自定义指令执行单元产生主动暂停信号,通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行;其他功能单元为流水线架构中除自定义指令执行单元以外的功能单元,自定义多周期指令为执行阶段包括多个微操作的自定义指令;
自定义指令执行单元,在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作。
可选的,依次执行自定义多周期指令的执行阶段所包括的多个微操作,进一步包括:
自定义指令执行单元根据指定访问路径,通过直接访问处理器外部具有预设访问带宽的存储器,以获取执行多个微操作所需的运算数据;
和/或,
自定义指令执行单元,通过主动暂停信号控制处理器外部存储器,在其他功能单元暂停运行期间,允许自定义指令执行单元具有唯一访问权限。
可选的,自定义指令执行单元产生主动暂停信号之前,进一步包括:
复制处理器原有的内部控制逻辑,获得第一内部逻辑控制模块和第二内部逻辑控制模块;
通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,具体包括:
将主动暂停信号与处理器外部暂停信号输入至预设的门控电路,依次经门控电路、第一内部逻辑控制模块后,输出至其他功能单元,门控电路用于在任一输入有效时,均控制输出为有效信号;
和/或,
复制处理器原有的内部控制逻辑,获得第一内部逻辑控制模块和第二内部逻辑控制模块之后,进一步包括:
通过第二内部逻辑控制模块,接收外部暂停信号并输出至自定义指令执行单元;
在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作,进一步包括:
通过计数方式判断多个微操作是否执行完毕,确定多个微操作未执行完毕时,屏蔽外部暂停信号,直至多个微操作被执行完毕。
在本申请实施例中,利用处理器的自定义指令功能和暂停机制,对原有仅支持单周期指令的处理器加以改进,通过自定义指令执行单元产生主动暂停信号,其他功能单元受暂停信号控制,在自定义多周期指令的执行阶段暂停运行,在此暂停期间,自定义指令执行单元可继续执行多周期指令的多个微操作,不受原有流水线架构的影响,从而实现自定义多周期指令的处理,使改进后的处理器可同时支持单周期指令和多周期指令的自定义扩展。
附图说明
图1为已有技术中的单周期指令处理器相关结构示意图;
图2为本申请实施例中改进后的可支持多周期指令的处理器的相关结构示意图;
图3为已有技术中单周期指令处理的部分信号波形示意图;
图4为本申请实施例中改进后的多周期指令处理的部分信号波形示意图;
图5为已有技术中单周期指令处理流水线示意图;
图6为本申请实施例中改进后的多周期指令处理流水线示意图;
图7为本申请实施例中多周期指令的执行受暂停信号控制暂停的波形示意图;
图8为本申请实施例中多周期指令的执行阶段屏蔽暂停信号控制的波形示意图;
图9为本申请实施例中通过内部计数实现连续多周期指令执行的波形示意图;
图10为本申请实施例中电子设备的结构示意图;
图11为本申请实施例中多周期指令处理方法的流程示意图。
具体实施方式
下面将结合附图详细描述本申请实施例的技术方案。
本申请实施例提供了一种多周期指令处理方法、处理器和电子设备,基于支持自定指令功能的单周期指令处理器实现,在其基础上加以改进。为便于理解本申请实施例所提供的技术方案,下面首先对改进前的已有处理器中与本申请实施例有关的硬件结构进行必要阐述。
参阅图1所示,已有的部分支持单周期指令的处理器,一般设有自定义指令执行单元,设置于执行单元中。处理器的系统指令集所能涵盖的操作多是有限的,对于系统指令集中未能涉及的操作,则可通过自定义指令执行单元实现,用户可添加自定义指令到指令集中,通过自定义指令执行单元处理更多自定义指令,以支持更多自定义操作。
并且,已有处理器中,设有暂停机制,暂停信号通过内部逻辑组件控制后,输出至处理器内核中流水线架构下的各个功能单元和其他受暂停信号控制的对象。
已有处理器的暂停信号包括外部暂停信号和内部暂停信号,外部暂停信号则是指处理器接收到的外部输入的暂停信号,内部暂停信号是处理器内部产生的暂停信号,例如调试接口所产生的暂停信号就属于内部暂停信号。然后,内部暂停信号和外部暂停信号一起作为内部逻辑组件的输入,经内部逻辑组件控制后输出至流水线架构的各个功能单元和其他受暂停信号控制的内部组件。
基于已有的诸如上述结构的处理器,本申请实施例对其加以改进,改进后的处理器的相关结构参阅图2所示。
下面结合图2,对本申请实施例提出的多周期指令处理方法、处理器以及电子设备进行具体阐述。
本申请实施例首先提出了一种处理器,其自定义指令执行单元,用于产生主动暂停信号,以及通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行;并且,自定义指令执行单元,还在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作。
其中,参阅图2所示,在本申请实施例中,将处理器流水线架构下的各个功能单元划分为执行单元和其他功能单元的方式示出。其他功能单元为流水线架构中除自定义指令执行单元以外的功能单元。例如,一条指令包含取指、译码和执行三个阶段,由流水线架构中的取指单元、译码单元和执行单元来分别完成,则此种情形下,其他功能单元则包括取指单元和译码单元。
需要说明的是,在本申请实施例中,单周期指令,为执行阶段仅包括一个待执行微操作的指令,单周期指令的执行阶段的执行仅需占用一个时钟周期;多周期指令,为执行阶段包括两个以上待执行微操作的指令,多周期指令的执行阶段的执行需要占用多个时钟周期。自定义单周期指令和自定义多周期指令,则分别为指令集中由用户自定义的单周期指令和多周期指令。
因此,除非特别说明,本申请实施例中的自定义多周期指令均为执行阶段包括多个微操作的自定义指令,而并非是整个处理过程需占用多个时钟周期的指令。
一般在取指阶段和译码阶段之后,进入执行阶段,在执行阶段,由自定义指令执行单元对译码单元解析出来的结果进行实际的运算和执行,例如,一条指令的执行阶段的微操作可能是两个指定寄存器的加减操作,也可能是比较大小等多个具体操作。
自定义指令的实现,需要预先在指令集中添加相应的自定义指令。预实现多周期指令,则需要先将相应的自定义多周期指令添加到指令集中。
处理器会逐一处理指令集中的指令。首先取指单元会进行取指令的操作,从指定的存储器中读取一条自定义指令,然后译码单元对当前这条指令进行解析,然后将解析出的内容传递给执行单元,译码单元会同时解析出当前这条指令是否为自定义指令,如果为自定义指令,则会使能自定义指令执行单元来执行。
自定义指令执行单元接收到使能信号后,会判断当前这条指令为单周期指令还是多周期指令,即判断执行阶段包括单一一个微操作还是包括多个微操作。如果是单周期指令,则继续按照处理器原有流水线继续处理;如果为多周期指令,则产生主动暂停信号,然后通过主动暂停信号,控制流水线架构中除自定义指令执行单元以外的其他功能单元暂停运行,例如取指单元和译码单元均暂停运行。在此暂停期间,自定义指令执行单元则依次执行当前多周期指令的执行阶段所指示的多个微操作。
其中,作为一种可实施方式,产生主动暂停信号包括产生高电平或低电平的暂停信号。通过主动暂停信号,控制其他功能单元暂停运行,则包括通过控制主动暂停信号的电平状态,进而控制受控对象是否暂停运行,具体电平如何控制应根据处理器原有的暂停机制具体设置。
例如,一般而言,暂停信号为高电平时有效,当暂停信号为高电平时,整个处理器中受暂停信号控制的部分处于冻结状态,当暂停信号恢复低电平时则无效,处理器继续运行。
其中,在本申请实施例中,延续暂停信号为高电平时为有效的原则,自定指令执行单元产生主动暂停信号,包括产生高电平暂停信号,当多周期指令的执行阶段被执行完毕后,则恢复主动暂停信号为低电平。即本申请实施例中,产生主动暂停信号这一步骤,不可理解为暂停信号从无到有的产生,而可以包括控制暂停信号的电平状态从无效变为有效的情况。
并且,本申请实施例中,暂停信号包括外部暂停信号、内部暂停信号和主动暂停信号,其中,外部暂停信号来自于处理器外部,内部暂停信号由处理器内部控制逻辑产生;而主动暂停信号是本申请改进后的处理器中,自定义指令执行单元依据自定义指令新生成的,由自定义指令执行单元根据需要来产生和维护的信号。主动暂停信号与原有的外部暂停信号以及内部暂停信号对于处理器中受暂停信号控制的组件具有等同控制效力。
具体地,需要说明的是,在本申请实施例中,设多周期指令的执行阶段需要占用m个时钟周期,则主动暂停信号维持有效的时间为m-1个时钟周期。例如,从执行阶段开始时刻,自定义指令执行单元控制主动暂停信号由低电平变为高电平,高电平维持时间为m-1个时钟周期,第m-1个时钟周期结束后,主动暂停信号恢复为低电平。
即自定义指令执行单元,维持高电平的时间为多周期指令的执行阶段的总时长减去1个时钟周期,执行阶段最后1个时钟周期恢复为低电平。
设当前处理中的多周期指令为第n条指令,那么在第n条指令的执行阶段的最后1个时钟周期,自定义指令执行单元将执行阶段的运算结果写入处理器内部的寄存器;同时,在最后1个时钟周期,取指单元和译码单元恢复运行,取指单元进行第n+2条指令的取指,译码单元进行第n+1条指令的译码。
即本申请实施例中,其他功能单元暂停运行的时间,并不是多周期指令的执行阶段的全部时间内均暂停,只是前m-1个时钟周期暂停,这是由于第m个时钟周期时,自定义指令执行单元已完成了相应的微操作,第m个周期仅是将运算结果写入寄存器,其他功能单元的运行并不影响第m个时钟周期的操作。
由此,自定义指令执行单元在产生主动暂停信号之前,需要首先明确当前处理的多周期指令的执行阶段需要占用几个时钟周期。
例如,一般而言,基于现有流水线架构,假设当前待处理指令为自定义指令A,译码单元会在暂停前通知执行单元当前待处理指令A是自定义指令,执行单元得知是自定义指令后,就会使能自定义指令执行单元来执行,自定义指令执行单元首先判断指令A是否为多周期指令,如果是个m(m≥2,为正整数)周期的自定义指令,那么自定义指令执行单元就启动计数器生成一个m-1周期内维持高电平的主动暂停信号;如果自定义指令A为单周期的自定义指令,那么自定义指令执行单元就控制主动暂停信号为低不生效,即无需变更主动暂停信号的电平状态,继续维持低电平;如果自定义指令A为时长不固定,但最多k周期的自定义指令,那么产生k-1个时钟周期维持高电平的主动暂停信号;或者对于执行阶段包含特殊操作的其他指令,按照实际的执行时长来产生相应的主动暂停信号,具体本申请实施例不再赘述。
本申请实施例中,主动暂停信号变为有效高电平的时刻与当前处理中的多周期指令的执行阶段的起始时刻保持同步。在硬件上,通过同步时序逻辑电路设计实现,也就是以时钟周期为单位进行设计。每个时钟周期执行设计逻辑并将结果存储起来,具体的逻辑电路表现为与门、非门等等逻辑门的组合和串联,每个逻辑门的输入到输出都是有延时的。同步时序逻辑的时钟周期必须要大于这个设计逻辑部门的延时;否则逻辑还没有执行完,结果就被存储,会导致错误。
因此如果一个处理器执行一条指令的所有操作,例如之前所说的取指、译码、执行都在一个时钟周期内。那么处理的时间会比较长,从而导致处理器频率受限。
此外,已有技术中还存在如下弊端:通过处理器原有的通路访问数据会需要额外的访问数据的指令,并且,进入到多周期指令的执行阶段时,原有处理器中的自定义指令执行单元只能访问处理器内部寄存器,这就意味着数据的访问带宽受到处理器内部寄存器的限制。
对此,本申请实施例中,参阅图2所示,自定义指令执行单元与处理器外部具有预设访问带宽的存储器连接,自定义指令执行单元根据指定访问路径,通过直接访问处理器外部具有预设访问带宽的存储器,以获取执行多个微操作所需的运算数据。运算数据,即执行微操作所需读取的数据,或者说微操作执行的数据对象。
即与已有技术中自定义指令执行方式不同的是,本申请实施例中,在其他功能单元暂停运行期间,自定义指令执行单元通过访问外部存储器来执行相应的多个微操作。处理器外部的存储器可以根据实际需要设置相应的访问带宽,即被访问的存储器应具有足够的访问带宽。而指定访问路径可以由自定义指令执行单元预先获取。
这样,自定义指令执行单元可直接访问外部存储器,一方面无需额外的访问数据的指令,节省处理周期;另一方面,外部存储器的访问带宽更易扩展,这样可以不受处理器内部寄存器访问带宽的限制,提高了执行阶段数据的处理效率。
参阅图2所示,在本申请实施例中,作为一种可实施方式,处理器外部的存储器包括访问控制接口和外部存储空间,其中访问控制接口,用于控制访问者的权限。
具体地,自定义指令执行单元可以与处理器外部的访问控制接口信号连接,在其他功能单元暂停运行的同时,可以通过外设的访问控制接口,控制处理器外部存储空间仅对自定义指令执行单元开放访问权限,且该访问权限是唯一的,即在其他功能单元暂停运行期间,处理器中除自定义指令执行单元以外的其他单元或者组件均无法访问上述预设带宽的存储器的存储空间,只有自定义指令执行单元能够访问。
例如,为自定义指令执行单元分配独立的访问接口,当接收到主动暂停信号时,关闭其他接口,仅保留自定义指令执行单元对应的访问接口为有效状态。
这种自定义指令执行单元对于外部存储空间的独立访问权限的设计,可防止处理器中其他组件访问外部存储器对自定义多周期指令执行阶段的执行造成影响,从而进一步保证多周期指令的执行阶段的多个微操作被高效执行。
进一步地,参阅图2所示,处理器中设有内部逻辑组件,在原有内部逻辑组件基础上,复制原有内部逻辑,将原有内部逻辑组件作为第一内部逻辑控制模块,复制后的内部逻辑组件作为第二内部逻辑控制模块,改进后的处理器内的内部逻辑组件则包括第一内部逻辑控制模块和第二内部逻辑控制模块。
自定义指令执行单元,通过门控电路与第一内部逻辑控制模块信号连接,进一步地,自定义指令执行单元产生的主动暂停信号,与处理器外部暂停信号一起作为门控电路的输入,依次经门控电路、第一内部逻辑控制模块后,输出至流水线架构中除自定义指令执行单元以外的其他功能单元。
例如,门控电路为一或门,当主动暂停信号与外部暂停信号中有任一为高电平时,门控电路的输出均为高电平的有效暂停信号,实现了主动暂停信号对其他功能单元的暂停控制,也保留了处理器原有的外部暂停信号对于其他功能单元的控制功能。
其中,门控电路可以是任何一种能够实现“或”逻辑的数字逻辑电路。
这样基于上述方案,可实现原有单周期指令处理器对于自定义多周期指令的支持,且无需改动原处理器固有的流水线架构,仅仅是利用了暂停机制,对原有处理器改动较小。
原有处理器支持单周期指令波形图参见图3所示,本申请实施例改进后的支持多周期指令的波形图参见图4所示。原有处理器单周期指令处理流水线参见图5所示,本申请实施例改进后的多周期指令处理流水线参见图6所示。
在本申请实施例中,多周期执行阶段的执行与原有暂停信号(包括外部暂停信号和内部暂停信号)之间的协调,可以采用以下两种方式:
方式一:暂停优先。
作为一种可实施方式,还保留处理器原有的暂停信号对于自定义指令执行单元的控制功能,当产生处理器外部暂停信号或者调试功能产生内部暂停信号时,自定义指令执行单元也相应暂停,保证原有暂停功能的完备性。具体地,外部暂停信号经第二内部逻辑控制模块,输出至自定义指令执行单元。
其中,由于第二内部逻辑控制模块所采用的控制逻辑与原有内部逻辑保持一致,因此,这种设计使得改进后的处理器中,外部暂停信号对于自定义指令执行单元仍然具有原有的控制作用。相应的多周期指令受控暂停的波形图参见图7所示。
方式二:执行优先。
可选的,当因为产生处理器外部暂停或者调试功能等原因产生内部暂停信号时,自定义指令执行单元也可以使用下面的方式来提高多周期指令的处理效率。此时自定义指令执行单元判断正在执行的多周期自定义指令的执行阶段是否完成,若未完成,则忽略外部暂停信号,继续进行指令执行动作。该方式可有效利用暂停期间的时间来进行多周期自定义指令执行动作。
具体地,在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作时,自定义指令执行单元,可以通过计数方式判断多个微操作是否执行完毕,确定多个微操作未执行完毕时,屏蔽外部暂停信号,直至多个微操作被执行完毕,相应的波形图参见图8所示。
其中,通过计数方式判断多个微操作是否执行完毕,包括根据自定义多周期指令的执行阶段所需占用的时钟周期的个数,对应进行计数,例如,当自定义多周期指令的执行阶段包含3个微操作,需要占用3个时钟周期来执行,则自定义执行单元从执行开始计数,初始值设为0,每隔一个时钟周期计数加1,若在此期间,收到外部暂停信号,则判断计数值是否为3,小于3则继续执行,忽略外部暂停信号,计数值等于3说明已执行完毕,则接受外部暂停信号控制,暂停运行。
此外,当有连续自定义多周期指令出现时,还可以利用自定义指令执行单元内部计数来识别新指令的到来,例如,如图9所示,图中自定义指令A的执行阶段需要占用两个时钟周期,自定义指令B的执行阶段占用一个时钟周期,第一个自定义指令A从执行阶段起始时刻开始计数,每一个时钟周期加1,计数到2后自动复位为0,接下来第二个自定义指令A重新开始计数,计数到2后自动复位为0,接着执行自定义指令B,这样不影响连续多周期自定义指令的执行。
基于同一发明构思,本申请实施例还提供一种电子设备,参阅图10所示,包括如上的处理器和设于处理器外部的存储器,存储器包括访问控制接口和外部存储空间,自定义指令执行单元产生的主动暂停信号输出至访问控制接口,访问控制接口,用于根据主动暂停信号,在其他功能单元暂停运行期间内,控制自定义指令执行单元对外部存储空间具有唯一访问权限。
基于同一发明构思,本申请实施例还提供一种多周期指令处理方法,参阅图11所示,包括如下流程:
S1101:自定义指令执行单元产生主动暂停信号,通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行。
其中,其他功能单元与自定义多周期指令的定义同上,此处不再赘述。
基于本申请实施例的处理器结构设计,当高电平的主动暂停信号经门控电路(例如一或门)、第一内部逻辑控制模块后输出至其他功能单元时,其他功能单元暂停运行,即其他单周期指令的取指、译码等微操作均暂停。
在S1101之前,作为一种可实施方式,复制处理器原有的内部控制逻辑,获得第一内部逻辑控制模块和第二内部逻辑控制模块,并将自定义指令执行单元与门控电路和外部存储器均建立连接。
具体地,通过主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,可以采用如下方式实现:
将主动暂停信号与处理器外部暂停信号输入至预设的门控电路,依次经门控电路、第一内部逻辑控制模块后,输出至其他功能单元,门控电路具有“或”逻辑。
S1102:自定义指令执行单元,在其他功能单元暂停运行期间,依次执行自定义多周期指令的执行阶段所包括的多个微操作。
可选的,依次执行自定义多周期指令的执行阶段所包括的多个微操作,进一步包括:
自定义指令执行单元根据指定访问路径,通过直接访问处理器外部具有预设访问带宽的存储器,以获取执行多个微操作所需的运算数据。
可选的,自定义指令执行单元,通过主动暂停信号控制处理器外部存储器,在其他功能单元暂停运行期间,允许自定义指令执行单元具有唯一访问权限。
在S1102之前,通过第二内部逻辑控制模块,接收外部暂停信号并输出至自定义指令执行单元,使得自定义指令执行单元继续受外部暂停信号的控制。
可选的,自定义指令执行单元,通过计数方式判断多个微操作是否执行完毕,确定多个微操作未执行完毕时,屏蔽外部暂停信号,直至多个微操作被执行完毕。具体屏蔽方法参见上述描述,此处不再赘述。
综上,已有技术中支持单周期的处理器,不仅不能够支持多周期指令,在面临人工智能算子等大数据位宽的运算任务时,受处理器内存、寄存器等资源的访问带宽、原有流水线架构限制,运算速度较低,无法达到预期要求,运算效率有待提升。
本申请实施例中,利用处理器的暂停机制和自定义指令功能,实现了多周期指令处理,且通过自定义指令执行单元直接访问外存储器,扩展了访问带宽,处理流程更为简要,进一步提高了对多周期指令的处理效率,改进后的处理器可应对神经网络的卷积运算等算子的复杂微操作,运算效率也有所提升。
需要理解,本文中的“第一”,“第二”等描述,仅仅为了描述的简单而对相似概念进行区分,并不具有其他限定作用。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,的程序可以存储于计算机可读存储介质中,存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:opticaldisc)及其任意组合。
以上,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (10)
1.一种处理器,支持单周期指令且设有自定义指令执行单元,其特征在于:
所述自定义指令执行单元,用于产生主动暂停信号,以及通过所述主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,所述其他功能单元为流水线架构中除所述自定义指令执行单元以外的功能单元,所述自定义多周期指令为执行阶段包括多个微操作的自定义指令;
所述自定义指令执行单元,还用于在所述其他功能单元暂停运行期间,依次执行所述自定义多周期指令的执行阶段所包括的多个微操作。
2.根据权利要求1所述的处理器,其特征在于:
所述自定义指令执行单元与处理器外部具有预设访问带宽的存储器连接;
依次执行所述自定义多周期指令的执行阶段所包括的多个微操作时,所述自定义指令执行单元,进一步用于:
根据指定访问路径,通过直接访问所述处理器外部具有预设访问带宽的存储器,以获取执行所述多个微操作所需的运算数据。
3.根据权利要求2所述的处理器,其特征在于,所述自定义指令执行单元,进一步用于:
通过所述主动暂停信号,控制所述处理器外部存储器,在所述其他功能单元暂停运行期间,允许所述自定义指令执行单元具有唯一访问权限。
4.根据权利要求1所述的处理器,其特征在于,所述处理器内部还设有第一内部逻辑控制模块和门控电路;
所述自定义指令执行单元,通过门控电路与所述第一内部逻辑控制模块信号连接,所述第一内部逻辑控制模块的内部控制逻辑与处理器原有内部控制逻辑保持一致,所述门控电路用于在任一输入有效时,均控制输出为有效信号;
所述主动暂停信号与处理器外部暂停信号作为所述门控电路的输入,依次经所述门控电路、所述第一内部逻辑控制模块后,输出至所述其他功能单元。
5.根据权利要求4所述的处理器,其特征在于,所述处理器还设有第二内部逻辑控制模块;
所述第二内部逻辑控制模块的内部控制逻辑与所述第一内部逻辑控制模块保持一致,所述外部暂停信号经所述第二内部逻辑控制模块,输出至所述自定义指令执行单元。
6.根据权利要求5所述的处理器,其特征在于,在所述其他功能单元暂停运行期间,依次执行所述自定义多周期指令的执行阶段所包括的多个微操作时,所述自定义指令执行单元,进一步用于:
通过计数方式判断所述多个微操作是否执行完毕,确定所述多个微操作未执行完毕时,屏蔽所述外部暂停信号,直至所述多个微操作被执行完毕。
7.一种电子设备,其特征在于,包括如权利要求1-6任一项所述的处理器和设于所述处理器外部的存储器;
所述存储器包括访问控制接口和外部存储空间,所述自定义指令执行单元产生的主动暂停信号输出至所述访问控制接口;
所述访问控制接口,用于根据所述主动暂停信号,在其他功能单元暂停运行期间内,控制所述自定义指令执行单元对所述外部存储空间具有唯一访问权限。
8.一种多周期指令处理方法,其特征在于,基于支持单周期指令且设有自定义指令执行单元的处理器实施,具体包括:
所述自定义指令执行单元产生主动暂停信号,通过所述主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行;所述其他功能单元为流水线架构中除所述自定义指令执行单元以外的功能单元,所述自定义多周期指令为执行阶段包括多个微操作的自定义指令;
所述自定义指令执行单元,在所述其他功能单元暂停运行期间,依次执行所述自定义多周期指令的执行阶段所包括的多个微操作。
9.根据权利要求8所述的方法,其特征在于,依次执行所述自定义多周期指令的执行阶段所包括的多个微操作,进一步包括:
所述自定义指令执行单元根据指定访问路径,通过直接访问处理器外部具有预设访问带宽的存储器,以获取执行所述多个微操作所需的运算数据;
和/或,
所述自定义指令执行单元,通过所述主动暂停信号控制所述处理器外部存储器,在所述其他功能单元暂停运行期间,允许所述自定义指令执行单元具有唯一访问权限。
10.根据权利要求8所述的方法,其特征在于,所述自定义指令执行单元产生主动暂停信号之前,进一步包括:
复制处理器原有的内部控制逻辑,获得第一内部逻辑控制模块和第二内部逻辑控制模块;
通过所述主动暂停信号,控制其他功能单元在自定义多周期指令的执行阶段暂停运行,具体包括:
将所述主动暂停信号与处理器外部暂停信号输入至预设的门控电路,依次经所述门控电路、所述第一内部逻辑控制模块后,输出至所述其他功能单元,所述门控电路用于在任一输入有效时,均控制输出为有效信号;
和/或,
复制处理器原有的内部控制逻辑,获得第一内部逻辑控制模块和第二内部逻辑控制模块之后,进一步包括:
通过第二内部逻辑控制模块,接收外部暂停信号并输出至所述自定义指令执行单元;
在所述其他功能单元暂停运行期间,依次执行所述自定义多周期指令的执行阶段所包括的多个微操作,进一步包括:
通过计数方式判断所述多个微操作是否执行完毕,确定所述多个微操作未执行完毕时,屏蔽所述外部暂停信号,直至所述多个微操作被执行完毕。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911356368.0A CN111124496B (zh) | 2019-12-25 | 2019-12-25 | 一种多周期指令处理方法、处理器和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911356368.0A CN111124496B (zh) | 2019-12-25 | 2019-12-25 | 一种多周期指令处理方法、处理器和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124496A true CN111124496A (zh) | 2020-05-08 |
CN111124496B CN111124496B (zh) | 2022-06-21 |
Family
ID=70502136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911356368.0A Active CN111124496B (zh) | 2019-12-25 | 2019-12-25 | 一种多周期指令处理方法、处理器和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124496B (zh) |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1250909A (zh) * | 1998-10-12 | 2000-04-19 | 北京多思科技工业园股份有限公司 | 指令控制替换方法及其装置 |
CN1309347A (zh) * | 1999-11-15 | 2001-08-22 | 德克萨斯仪器股份有限公司 | 具有改良的指令集体系结构的微处理器 |
CN1437102A (zh) * | 2002-09-11 | 2003-08-20 | 北京南思达科技发展有限公司 | 宏指令集对称式并行体系结构微处理器 |
CN1653407A (zh) * | 2002-05-14 | 2005-08-10 | 飞利浦半导体德累斯顿公开股份有限公司 | 用于控制数据处理单元的关闭的方法 |
US20120144160A1 (en) * | 2010-12-07 | 2012-06-07 | King Fahd University Of Petroleum And Minerals | Multiple-cycle programmable processor |
CN103294567A (zh) * | 2013-05-31 | 2013-09-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种单发射五级流水处理器的精确异常处理方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN104834629A (zh) * | 2015-05-28 | 2015-08-12 | 中国电子科技集团公司第四十七研究所 | 总线型的中央处理器 |
CN105279016A (zh) * | 2014-07-21 | 2016-01-27 | 英特尔公司 | 线程暂停处理器、方法、系统及指令 |
CN107111523A (zh) * | 2014-11-11 | 2017-08-29 | 瑞萨电子株式会社 | 命令执行控制系统和命令执行控制方法 |
US20180032335A1 (en) * | 2016-07-31 | 2018-02-01 | Microsoft Technology Licensing, Llc | Transactional register file for a processor |
CN108475196A (zh) * | 2015-12-02 | 2018-08-31 | 斯瓦姆64有限责任公司 | 数据处理 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
US20190042513A1 (en) * | 2018-06-30 | 2019-02-07 | Kermin E. Fleming, JR. | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
-
2019
- 2019-12-25 CN CN201911356368.0A patent/CN111124496B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1250909A (zh) * | 1998-10-12 | 2000-04-19 | 北京多思科技工业园股份有限公司 | 指令控制替换方法及其装置 |
CN1309347A (zh) * | 1999-11-15 | 2001-08-22 | 德克萨斯仪器股份有限公司 | 具有改良的指令集体系结构的微处理器 |
CN1653407A (zh) * | 2002-05-14 | 2005-08-10 | 飞利浦半导体德累斯顿公开股份有限公司 | 用于控制数据处理单元的关闭的方法 |
CN1437102A (zh) * | 2002-09-11 | 2003-08-20 | 北京南思达科技发展有限公司 | 宏指令集对称式并行体系结构微处理器 |
US20120144160A1 (en) * | 2010-12-07 | 2012-06-07 | King Fahd University Of Petroleum And Minerals | Multiple-cycle programmable processor |
CN103294567A (zh) * | 2013-05-31 | 2013-09-11 | 中国航天科技集团公司第九研究院第七七一研究所 | 一种单发射五级流水处理器的精确异常处理方法 |
CN104424129A (zh) * | 2013-08-19 | 2015-03-18 | 上海芯豪微电子有限公司 | 基于指令读缓冲的缓存系统和方法 |
CN105279016A (zh) * | 2014-07-21 | 2016-01-27 | 英特尔公司 | 线程暂停处理器、方法、系统及指令 |
CN107111523A (zh) * | 2014-11-11 | 2017-08-29 | 瑞萨电子株式会社 | 命令执行控制系统和命令执行控制方法 |
CN104834629A (zh) * | 2015-05-28 | 2015-08-12 | 中国电子科技集团公司第四十七研究所 | 总线型的中央处理器 |
CN108475196A (zh) * | 2015-12-02 | 2018-08-31 | 斯瓦姆64有限责任公司 | 数据处理 |
US20180032335A1 (en) * | 2016-07-31 | 2018-02-01 | Microsoft Technology Licensing, Llc | Transactional register file for a processor |
US20190042513A1 (en) * | 2018-06-30 | 2019-02-07 | Kermin E. Fleming, JR. | Apparatuses, methods, and systems for operations in a configurable spatial accelerator |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
Also Published As
Publication number | Publication date |
---|---|
CN111124496B (zh) | 2022-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4390946A (en) | Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences | |
KR101594090B1 (ko) | 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 | |
KR101334863B1 (ko) | 루프 제어 시스템 및 방법 | |
EP0241946A2 (en) | Information processing system | |
US7962729B2 (en) | Dynamic runtime range checking of different types on a register using upper and lower bound value registers for the register | |
US8332597B1 (en) | Synchronization of external memory accesses in a dataflow machine | |
RU2630745C2 (ru) | Пары инструкций установления очерёдности исполнения инструкций, процессоры, способы и системы | |
US9996127B2 (en) | Method and apparatus for proactive throttling for improved power transitions in a processor core | |
US11132201B2 (en) | System, apparatus and method for dynamic pipeline stage control of data path dominant circuitry of an integrated circuit | |
US5253349A (en) | Decreasing processing time for type 1 dyadic instructions | |
CN111124496B (zh) | 一种多周期指令处理方法、处理器和电子设备 | |
US20170039072A1 (en) | Method for branch prediction | |
JP3738253B2 (ja) | プログラム・ループを並列に処理する方法および装置 | |
Geuns et al. | Automatic dataflow model extraction from modal real-time stream processing applications | |
EP1058877A1 (en) | Jitter free instruction execution | |
KR100576560B1 (ko) | 추측 레지스터 조정 방법 및 장치 | |
CN106933661B (zh) | 一种调试嵌入式系统多中断的方法和装置 | |
KR970011209B1 (ko) | 실행된 명령 스트림을 추적하기 위해 사용되는 신호를 발생하기 위한 회로를 포함하는 마이크로프로세서 | |
JP2503223B2 (ja) | 先行制御方式 | |
WO2018082344A1 (zh) | 一种软硬件协同分支指令预测方法及装置 | |
JP2770420B2 (ja) | マイクロプログラム制御方式 | |
JPS6133506A (ja) | プログラマブル・コントロ−ラ | |
WO2022130113A1 (en) | Systems and methods for dynamic control of secure mode of operation in processor | |
JPS5927351A (ja) | デ−タ処理装置 | |
JPS6255738A (ja) | プログラムカウンタトレ−ス機構をもつデ−タ処理装置 |
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 |