CN116991477A - 旋转类指令执行方法、系统及执行单元 - Google Patents
旋转类指令执行方法、系统及执行单元 Download PDFInfo
- Publication number
- CN116991477A CN116991477A CN202310976173.6A CN202310976173A CN116991477A CN 116991477 A CN116991477 A CN 116991477A CN 202310976173 A CN202310976173 A CN 202310976173A CN 116991477 A CN116991477 A CN 116991477A
- Authority
- CN
- China
- Prior art keywords
- result
- mask
- bit
- source operand
- control signal
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 230000002159 abnormal effect Effects 0.000 claims abstract description 41
- 230000004927 fusion Effects 0.000 claims description 140
- 125000004122 cyclic group Chemical group 0.000 claims description 35
- 230000008569 process Effects 0.000 claims description 11
- 230000005856 abnormality Effects 0.000 claims description 10
- 238000012216 screening Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000013461 design Methods 0.000 description 4
- 230000007547 defect Effects 0.000 description 2
- 230000000873 masking effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种旋转类指令执行方法、系统及执行单元,通过设置的旋转类指令执行单元基于获取的目标旋转类指令的控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,并将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。本发明实现了执行旋转类指令在单周期内完成,并且具有能良好的支撑指令集和指令功能扩展能力,另外整体电路结构时序性能良好能支持更高的运行频率。
Description
技术领域
本发明涉及数据处理领域,特别是涉及一种旋转类指令执行方法、系统及执行单元。
背景技术
由于数据信息业务规模不断扩大,对处理器运算性能提出了越来越高的要求。处理器设计复杂度不断提高,容易引入设计错误。为了降低处理器的设计复杂度,众多处理器厂商开始转向RISC处理器路线。随着RISC指令集的不断完善,以及处理器性能的提升,旋转类指令数量逐渐增加,指令功能也越来越丰富。
为了实现处理功能丰富的旋转类指令的目的,现有技术中相应提出了多种方案如下:
专利US4569016公开了一种旋转类指令执行装置,但是其结构无法满足现在的64位数据处理,以及更多样的旋转类指令需求。专利US005881274A公开了一种加法和旋转逻辑组成的执行装置,但是随着加法和旋转运算的多样化细分,CPU(中央处理单元)的核心频率不断提升,在一个周期内完成加法和旋转运算将变得越来越困难。专利CN104484154A公开的一种执行循环指令而不读取进位位的装置中,虽然提及了循环指令和循环单元,但是没有进一步阐述循环单元的硬件电路结构。专利CN101011014A公开了一种将第一操作数旋转然后插入所选部分到第二操作数的相应位置,并将第二操作数所插入位置之外的位设定为零的操作方法。其相当于是一种指令功能。该专利仅仅做了一个操作过程的描述,没有介绍其对应的电路实现结构。专利CN104011652A公开了一种操作数旋转之后,再通过掩码操作进行打包的方法,并把该方法设计成指令。该专利仅用示例图描述了数据打包过程,没有阐述其电路实现结构。
因此,现有技术出现的旋转类指令执行方案具有很难实现处理功能丰富的旋转类指令,不能实现在单周期内完成执行,且整体电路结构时序性能差,不能支持更高的运行频率的缺陷。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种旋转类指令执行方法、系统及执行单元,用于解决以上现有技术问题。
为实现上述目的及其他相关目的,本发明提供一种旋转类指令执行方法,所述方法包括:对目标旋转类指令进行译码,获得译码信息;从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息;利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息;基于所述控制信号、立即数以及源操作数信息,由旋转类指令执行单元在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
于本发明的一实施例中,利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息包括:利用第一操作数地址以及第二操作数地址分别访问通用目的寄存器获取第一源操作数以及第二源操作数。
于本发明的一实施例中,所述旋转类指令执行单元包括:执行定点异常寄存器更新的CA运算电路,用于在所述控制信号具有定点异常寄存器更新需求时,根据第一源操作数、第二源操作数以及立即数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;执行条件寄存器更新及运算的循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路;其中,通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码,并由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得符号位扩展结果,最后通过融合运算及结果选择电路根据获得的符号位扩展结果、旋转移位结果以及掩码获得运算结果。
于本发明的一实施例中,所述CA运算电路包括:CA掩码生成器以及与所述CA掩码生成器连接的CA运算模块;其中,执行定点异常寄存器更新的方式包括:在所述控制信号具有定点异常寄存器更新需求时,由CA掩码生成器根据第二源操作数以及立即数生成CA掩码,并通过CA运算模块根据所述CA掩码和第一源操作数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新。
于本发明的一实施例中,所述循环移位运算电路,包括:格式化模块、移位量多路复用器和与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:掩码输入多路复用器以及与掩码输入多路复用器连接的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;其中,执行条件寄存器更新及运算的方式包括:通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值且在所述控制信号具有条件寄存器需求时同时获得CR结果;通过掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值,再通过掩码生成器根据掩码开始值和掩码结束值,生成64位的掩码,并通过融合运算及结果选择电路将64位的旋转移位值以及64位的掩码进行融合运算,获得融合运算结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过融合运算及结果选择电路基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
于本发明的一实施例中,所述融合运算及结果选择电路包括:融合运算模块以及与所述融合运算模块连接的结果多路复用器;其中,所述融合运算模块用于将64位的旋转移位值以及64位的掩码进行融合运算获得融合运算结果;所述结果多路复用器用于基于控制信号选择融合运算结果或符号位扩展结果作为运算结果;或者,所述融合运算及结果选择电路包括融合所述融合运算模块以及结果多路复用器逻辑的融合多路复用运算模块。
于本发明的一实施例中,所述旋转类指令执行单元的结构包括:循环移位运算电路、融合CA运算逻辑的掩码运算电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器;其中,所述执行电路用于基于所述控制信号,通过循环移位运算电路根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由融合CA运算逻辑的掩码运算电路根据第二源操作数以及立即数计算掩码并在所述控制信号具有定点异常寄存器更新需求时同时获得CA掩码,通过融合CA运算逻辑的融合运算模块将旋转移位结果以及掩码进行融合获得融合运算结果并根据CA掩码获得CA结果,再通过符号位扩展运算电路根据第一源操作数以及第二源操作数获得的符号位扩展结果,最后通过结果多路复用器选择获得的符号位扩展结果或融合运算结果为运算结果。
于本发明的一实施例中,所述循环移位运算电路,包括:格式化模块、移位量多路复用器以及与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:融合CA运算逻辑的掩码输入多路复用器以及与融合CA运算逻辑的掩码输入多路复用器连接的融合CA运算逻辑的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;其中,所述旋转类指令执行单元执行运算的方式包括:通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得CR结果;通过融合CA运算逻辑的掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值并在所述控制信号具有定点异常寄存器更新需求时同时获得6位的CA掩码编码值,再通过融合CA运算逻辑的掩码生成器根据掩码开始值和掩码结束值生成64位的掩码且在接收到CA掩码编码值的情况下生成64位的CA掩码,并通过融合CA运算逻辑的融合运算模块将64位的旋转移位值、64位的掩码进行融合运算,获得融合运算结果且在接收到CA掩码的情况下生成CA结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过结果多路复用器基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
为实现上述目的及其他相关目的,本发明提供一种旋转类指令执行系统,应用于RISC处理器,所述系统包括:指令译码器、通用目的寄存器、旋转类指令执行单元、条件寄存器以及定点异常寄存器;其中,指令译码器与旋转类指令执行单元以及通用目的寄存器通信连接,所述旋转类指令执行单元与通用目的寄存器、条件寄存器以及定点异常寄存器通信连接;所述指令译码器,用于对目标旋转类指令进行译码获得译码信息,以供从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息;所述通用目的寄存器,用于利用所述操作数地址信息获取对应的源操作数信息;旋转类指令执行单元,用于基于所述控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
为实现上述目的及其他相关目的,本发明提供一种旋转类指令执行单元,所述单元包括:旋转类指令执行电路,用于基于获取的对应目标旋转类指令的控制信号、立即数、第一源操作数以及第二源操作数,在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
如上所述,本发明是一种旋转类指令执行方法、系统及执行单元,具有以下有益效果:本发明通过设置的旋转类指令执行单元基于获取的目标旋转类指令的控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,并将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。本发明实现了执行旋转类指令在单周期内完成,并且具有能良好的支撑指令集和指令功能扩展能力,另外整体电路结构时序性能良好能支持更高的运行频率。
附图说明
图1显示为本发明一实施例中的旋转类指令执行方法的流程示意图。
图2显示为本发明一实施例中的旋转类指令执行单元的结构示意图。
图3显示为本发明一实施例中的旋转类指令执行单元的第一种结构示意图。
图4显示为本发明一实施例中的旋转类指令执行单元的第二种结构示意图。
图5显示为本发明一实施例中的旋转类指令执行单元的结构示意图。
图6显示为本发明一实施例中的旋转类指令执行单元的第三种结构示意图。
图7显示为本发明一实施例中的旋转类指令执行系统的结构示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,在下述描述中,参考附图,附图描述了本发明的若干实施例。应当理解,还可使用其他实施例,并且可以在不背离本发明的精神和范围的情况下进行机械组成、结构、电气以及操作上的改变。下面的详细描述不应该被认为是限制性的,并且本发明的实施例的范围仅由公布的专利的权利要求书所限定。这里使用的术语仅是为了描述特定实施例,而并非旨在限制本发明。空间相关的术语,例如“上”、“下”、“左”、“右”、“下面”、“下方”、““下部”、“上方”、“上部”等,可在文中使用以便于说明图中所示的一个元件或特征与另一元件或特征的关系。
在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。
其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本发明范围的范围内,可以言及到第二部分、成分、区域、层或段。
再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
本发明的一种旋转类指令执行方法,通过设置的旋转类指令执行单元基于获取的目标旋转类指令的控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,并将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。本发明实现了执行旋转类指令在单周期内完成,并且具有能良好的支撑指令集和指令功能扩展能力,另外整体电路结构时序性能良好能支持更高的运行频率。
与此同时,为了使本发明的目的、技术方案及优点更加清楚明白,通过下述实施例并结合附图,对本发明实施例中的技术方案的进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定发明。
在对本发明进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释:
<1>RISC(Reduced Instruction Set Computer,精简指令集计算机)对应大量的RISC指令集。
<2>CPU(Central Processing Unit,中央处理器),本发明的处理器为RISC CPU可执行RISC指令集中的旋转类指令。
<3>GPR(General Purpose Register,通用目的寄存器)本发明的通用目的寄存器GPR用于存放指令所需的源操作数和指令执行的结果。
<4>CR(Conditional Register,条件寄存器)本发明的条件寄存器存储更新条件寄存器值。
<5>XER(Fixed point exception register,定点异常寄存器)本发明的定点异常寄存器存储更新定点指令的异常状态。
下面以附图为参考,针对本发明的实施例进行详细说明,以便本发明所述技术领域的技术人员能够容易地实施。本发明可以以多种不同形态体现,并不限于此处说明的实施例。
如图1展示本发明实施例中的一种旋转类指令执行方法的流程示意图。
应用于RISC处理器,所需处理的目标旋转类指令为RISC指令。
所述方法包括:
步骤S1:对目标旋转类指令进行译码,获得译码信息。
在一实施例中,对目标旋转类指令译码,即根据指令码携带的信息筛选出具体的旋转指令进行译码。
在一实施例中,本发明的旋转类指令执行方法所支持旋转类指令的功能包括:符号位扩展、旋转(循环移位)、算术移位、掩码运算以及更新CR和XER等功能,其涉及的旋转类指令部分如表1。
表1:旋转类指令表
步骤S2:从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息。在一实施例中,由于目标旋转类指令以及目标旋转类指令的指令码具有多种执行信息,包括目标旋转类指令的编号决定是否需要定点异常寄存器更新,且通过指令码的对应条件寄存器的更新的标志位决定该条件寄存器是否更新;因此基于目标旋转类指令的译码信息可以分离出表示是否在执行过程中进行定点异常寄存器更新、条件寄存器更新以及执行何种运算的控制信号,以及需要进行运算所需要的立即数以及源操作数的操作数地址。
步骤S3:利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息。
在一实施例中,本发明执行目标旋转类指令所使用的源操作数为两个,操作数地址信息包括:第一源操作数的操作数地址以及第二源操作数的操作数地址。因此,利用第一操作数地址以及第二操作数地址分别访问通用目的寄存器获取第一源操作数以及第二源操作数。
步骤S4:基于所述控制信号、立即数以及源操作数信息,由旋转类指令执行单元在一个时钟周期内完成该目标旋转类指令的执行运算。
为了更好的描述旋转类指令执行单元的结构,现结合具体实施例进行说明旋转类指令执行单元的三种实现结构。
对于旋转类指令执行单元的第一种结构以及第二种结构,结合附图2进行说明。
在一实施例中,采用第一种结构以及第二种结构的所述旋转类指令执行单元包括:
执行定点异常寄存器更新的CA运算电路,用于在所述控制信号具有定点异常寄存器更新需求时,根据第一源操作数、第二源操作数以及立即数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;
执行条件寄存器更新及运算的循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路;其中,所述循环移位运算电路、掩码运算电路、符号位扩展运算电路连接所述融合运算及结果选择电路;
其中,通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码,并由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得符号位扩展结果,最后通过融合运算及结果选择电路根据获得的符号位扩展结果、旋转移位结果以及掩码获得运算结果。
在一具体实施例中,对于旋转类指令执行单元的第一种结构,如图3,所述CA运算电路包括:CA掩码生成器1以及与所述CA掩码生成器1连接的CA运算模块2;所述循环移位运算电路,包括:格式化模块3、移位量多路复用器4以及与格式化模块3以及移位量多路复用器4连接的64:1旋转多路复用器5;所述掩码运算电路,包括:掩码输入多路复用器6以及与掩码输入多路复用器6连接的掩码生成器7;所述符号位扩展运算电路,包括:符号位选择和扩展模块8以及与符号位选择和扩展模块8连接的位扩展结果多路复用器9;所述融合运算及结果选择电路包括:融合运算模块10以及与所述融合运算模块10连接的结果多路复用器11;
其中,执行定点异常寄存器更新的方式包括:在所述控制信号具有定点异常寄存器更新需求时,由CA掩码生成器1根据第二源操作数以及立即数生成CA掩码,并通过CA运算模块2根据所述CA掩码和第一源操作数计算对应判断移位过程中是否出现进位异常的1位的CA结果,以供对定点异常寄存器进行更新;
执行条件寄存器更新及运算的方式包括:通过格式化模块3基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器4基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器5根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得4位的CR结果;通过掩码输入多路复用器6基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值,再通过掩码生成器7根据掩码开始值和掩码结束值,生成64位的掩码,并通过融合运算模块10将64位的旋转移位值以及64位的掩码进行融合运算,可以清除指定数据位或者插入掩码,并获得融合运算结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过结果多路复用器11基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
在一具体实施例中,对于旋转类指令执行单元的第二种结构,其与第一种结构的不同之处在于,所述融合运算及结果选择电路采用融合第一种结构的所述融合运算模块以及结果多路复用器逻辑的融合多路复用运算模块12。
如图4,其结构具体包括:所述CA运算电路包括:CA掩码生成器1以及与所述CA掩码生成器1连接的CA运算模块2;所述循环移位运算电路,包括:格式化模块3、移位量多路复用器4以及与格式化模块3以及移位量多路复用器4连接的64:1旋转多路复用器5;所述掩码运算电路,包括:掩码输入多路复用器6以及与掩码输入多路复用器6连接的掩码生成器7;所述符号位扩展运算电路,包括:符号位选择和扩展模块8以及与符号位选择和扩展模块8连接的位扩展结果多路复用器9;所述融合运算及结果选择电路包括:融合所述融合运算模块以及结果多路复用器逻辑的融合多路复用运算模块12;
其中,执行定点异常寄存器更新的方式包括:在所述控制信号具有定点异常寄存器更新需求时,由CA掩码生成器1根据第二源操作数以及立即数生成CA掩码,并通过CA运算模块2根据所述CA掩码和第一源操作数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;
执行条件寄存器更新及运算的方式包括:通过格式化模块3基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器4基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器5根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得4位的CR结果;通过掩码输入多路复用器6基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值,再通过掩码生成器7根据掩码开始值和掩码结束值,生成64位的掩码,并通过融合多路复用运算模块12将64位的旋转移位值以及64位的掩码进行融合运算,获得融合运算结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过融合多路复用运算模块12基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
在一具体实施例中,如图5,采用第三种结构的所述旋转类指令执行单元包括:
循环移位运算电路、融合CA运算逻辑的掩码运算电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器;其中,融合CA运算逻辑的融合运算模块连接所述循环移位运算电路以及融合CA运算逻辑的掩码运算电路;所述结果多路复用器连接所述融合CA运算逻辑的融合运算模块以及符号位扩展运算电路;
其中,所述执行电路用于基于所述控制信号,通过循环移位运算电路根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由融合CA运算逻辑的掩码运算电路根据第二源操作数以及立即数计算掩码并在所述控制信号具有定点异常寄存器更新需求时同时获得CA掩码,通过融合CA运算逻辑的融合运算模块将旋转移位结果以及掩码进行融合获得融合运算结果并根据CA掩码获得CA结果,再通过符号位扩展运算电路根据第一源操作数以及第二源操作数获得的符号位扩展结果,最后通过结果多路复用器选择获得的符号位扩展结果或融合运算结果为运算结果。
对于旋转类指令执行单元的第三种结构,其与以上两种结构的不同之处在于,不采用执行定点异常寄存器更新的CA运算电路,仅通过在掩码运算电路以及融合运算模块中增加部分CA逻辑,也可以实现CA的计算。但是需要说明的是,融合CA运算逻辑的融合运算模块中由于使用的是经过循环移位运算电路之后的数据来计算CA,因此CA的掩码值生成和CA运算会跟之前两个结构的逻辑略有不同,但是并不影响最终结果的正确性。
在一具体实施例中,如图6,旋转类指令执行单元的第三种结构具体包括:
所述循环移位运算电路,包括:格式化模块3、移位量多路复用器4以及与格式化模块3以及移位量多路复用器连接4的64:1旋转多路复用器5;所述掩码运算电路,包括:融合CA运算逻辑的掩码输入多路复用器13以及与融合CA运算逻辑的掩码输入多路复用器13连接的融合CA运算逻辑的掩码生成器14;所述符号位扩展运算电路,包括:符号位选择和扩展模块8以及与符号位选择和扩展模块8连接的位扩展结果多路复用器9;融合CA运算逻辑的融合运算模块15以及与所述融合运算模块15连接的结果多路复用器11;
其中,所述旋转类指令执行单元执行运算的方式包括:
通过格式化模块3基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器4基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器5根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得4位的CR结果;
通过融合CA运算逻辑的掩码输入多路复用器13基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值并在所述控制信号具有定点异常寄存器更新需求时同时获得6位的CA掩码编码值,再通过融合CA运算逻辑的掩码生成器14根据掩码开始值和掩码结束值生成64位的掩码且在接收到CA掩码编码值的情况下生成64位的CA掩码,并通过融合CA运算逻辑的融合运算模块15将64位的旋转移位值、64位的掩码进行融合运算,获得融合运算结果且在接收到CA掩码的情况下生成CA结果;
通过符号位选择和扩展模块8选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器9根据控制信号选取一64位的符号位扩展结果;
通过结果多路复用器11基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
步骤S5:将旋转类指令执行单元获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
具体的,将旋转类指令执行单元获得的运算结果储存至所述通用目的寄存器;并且在旋转类指令执行单元获得1位的CA结果(0代表非异常,1代表异常)的情况下,对XER的第CA位进行相应的更新,变为对应的0或1。在旋转类指令执行单元获得4位的CR结果即按顺序排列的对应是否大于阈值位(0或1),是否小于阈值位(0或1)、是否等于阈值位(0或1)及保留位,来更新CR的第0字段域。
与上述实施例原理相似的是,本发明提供一种旋转类指令执行系统。
以下结合附图提供具体实施例:
如图7展示本发明实施例中的一种旋转类指令执行系统的结构示意图。
应用于RISC处理器,所述系统包括:
指令译码器101、通用目的寄存器102、旋转类指令执行单元103、条件寄存器104以及定点异常寄存器105;
其中,指令译码器101与旋转类指令执行单元103以及通用目的寄存器102通信连接,所述旋转类指令执行单元103与通用目的寄存器102、条件寄存器104以及定点异常寄存器105通信连接;
所述指令译码器101,用于对目标旋转类指令进行译码获得译码信息,以供从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息;
所述通用目的寄存器102,用于利用所述操作数地址信息获取对应的源操作数信息;
旋转类指令执行单元103,用于基于所述控制信号、立即数以及源操作数信息,由旋转类指令执行单元在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器102,且在目标旋转类指令具有条件寄存器104和/或定点异常寄存器105更新需求时进行相应的更新。根据条件寄存器104执行条件判断逻辑,完成一些带条件的指令判断;根据定点异常寄存器105执行定点状态逻辑,即读取定点异常寄存器105中各个状态位,判断定点指令执行结果是否出现异常。
由于该旋转类指令执行系统的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
在一实施例中,利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息包括:利用第一操作数地址以及第二操作数地址分别访问通用目的寄存器获取第一源操作数以及第二源操作数。
在一实施例中,所述旋转类指令执行单元103包括:执行定点异常寄存器更新的CA运算电路,用于在所述控制信号具有定点异常寄存器更新需求时,根据第一源操作数、第二源操作数以及立即数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;执行条件寄存器更新及运算的循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路;其中,通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码,并由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得符号位扩展结果,最后通过融合运算及结果选择电路根据获得的符号位扩展结果、旋转移位结果以及掩码获得运算结果。
在一实施例中,所述CA运算电路包括:CA掩码生成器以及与所述CA掩码生成器连接的CA运算模块;其中,执行定点异常寄存器更新的方式包括:在所述控制信号具有定点异常寄存器更新需求时,由CA掩码生成器根据第二源操作数以及立即数生成CA掩码,并通过CA运算模块根据所述CA掩码和第一源操作数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新。
在一实施例中,所述循环移位运算电路,包括:格式化模块、移位量多路复用器以及与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:掩码输入多路复用器以及与掩码输入多路复用器连接的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;其中,执行条件寄存器更新及运算的方式包括:通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值且在所述控制信号具有条件寄存器需求时同时获得CR结果;通过掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值,再通过掩码生成器根据掩码开始值和掩码结束值,生成64位的掩码,并通过融合运算及结果选择电路将64位的旋转移位值以及64位的掩码进行融合运算,获得融合运算结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过融合运算及结果选择电路基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
在一实施例中,所述融合运算及结果选择电路包括:融合运算模块以及与所述融合运算模块连接的结果多路复用器;其中,所述融合运算模块用于将64位的旋转移位值以及64位的掩码进行融合运算获得融合运算结果;所述结果多路复用器用于基于控制信号选择融合运算结果或符号位扩展结果作为运算结果;或者,所述融合运算及结果选择电路包括融合所述融合运算模块以及结果多路复用器逻辑的融合多路复用运算模块。
在一实施例中,所述旋转类指令执行单元103的结构包括:循环移位运算电路、融合CA运算逻辑的掩码运算电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器;其中,所述执行电路用于基于所述控制信号,通过循环移位运算电路根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由融合CA运算逻辑的掩码运算电路根据第二源操作数以及立即数计算掩码并在所述控制信号具有定点异常寄存器更新需求时同时获得CA掩码,通过融合CA运算逻辑的融合运算模块将旋转移位结果以及掩码进行融合获得融合运算结果并根据CA掩码获得CA结果,再通过符号位扩展运算电路根据第一源操作数以及第二源操作数获得的符号位扩展结果,最后通过结果多路复用器选择获得的符号位扩展结果或融合运算结果为运算结果。
在一实施例中,所述循环移位运算电路,包括:格式化模块、移位量多路复用器以及与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:融合CA运算逻辑的掩码输入多路复用器以及与融合CA运算逻辑的掩码输入多路复用器连接的融合CA运算逻辑的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;其中,所述旋转类指令执行单元执行运算的方式包括:通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得CR结果;通过融合CA运算逻辑的掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值并在所述控制信号具有定点异常寄存器更新需求时同时获得6位的CA掩码编码值,再通过融合CA运算逻辑的掩码生成器根据掩码开始值和掩码结束值生成64位的掩码且在接收到CA掩码编码值的情况下生成64位的CA掩码,并通过融合CA运算逻辑的融合运算模块将64位的旋转移位值、64位的掩码进行融合运算,获得融合运算结果且在接收到CA掩码的情况下生成CA结果;通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;通过结果多路复用器基于控制信号选择融合运算结果或符号位扩展结果作为运算结果
本发明提供一种旋转类指令执行单元,所述单元包括:旋转类指令执行电路,用于基于获取的对应目标旋转类指令的控制信号、立即数、第一源操作数以及第二源操作数,在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
由于该旋转类指令执行单元的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
在一实施例中,如图2,所述旋转类指令执行电路包括:CA运算电路、循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路;其中,通过CA运算电路在所述控制信号具有定点异常寄存器更新需求时,根据第一源操作数、第二源操作数以及立即数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码,并由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得符号位扩展结果,最后通过融合运算及结果选择电路根据获得的符号位扩展结果、旋转移位结果以及掩码获得运算结果;由于该CA运算电路、循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路的具体结构以及实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
或者,如图5,所述旋转类指令执行电路包括:循环移位运算电路、融合CA运算逻辑的掩码运算更新电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器;其中,通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由融合CA运算逻辑的掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码并在所述控制信号具有定点异常寄存器更新需求时同时获得CA掩码,通过融合CA运算逻辑的融合运算模块将旋转移位结果以及掩码进行融合获得融合运算结果并根据CA掩码获得CA结果,再通过结果多路复用器选择由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得的符号位扩展结果或融合运算结果为运算结果。由于该循环移位运算电路、融合CA运算逻辑的掩码运算更新电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器的具体结构以及实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
由此,本发明实现了所有旋转类指令都在单周期内完成且兼容32位和64位数据处理,并且具有能良好的支撑指令集和指令功能扩展以及整体电路结构时序性能良好,能支持更高的运行频率的优势。
综上所述,本发明的旋转类指令执行方法、系统及执行单元,通过设置的旋转类指令执行单元基于获取的目标旋转类指令的控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,并将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。本发明实现了执行旋转类指令在单周期内完成,并且具有能良好的支撑指令集和指令功能扩展能力,另外整体电路结构时序性能良好能支持更高的运行频率。所以,本发明有效克服了现有技术中的种种缺点而具高度产业利用价值。
上述实施例仅示例性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,但凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
Claims (10)
1.一种旋转类指令执行方法,其特征在于,所述方法包括:
对目标旋转类指令进行译码,获得译码信息;
从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息;
利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息;
基于所述控制信号、立即数以及源操作数信息,由旋转类指令执行单元在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至所述通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
2.根据权利要求1中所述的旋转类指令执行方法,其特征在于,利用所述操作数地址信息访问通用目的寄存器获取对应的源操作数信息包括:
利用第一操作数地址以及第二操作数地址分别访问通用目的寄存器获取第一源操作数以及第二源操作数。
3.根据权利要求2中所述的旋转类指令执行方法,其特征在于,所述旋转类指令执行单元包括:
执行定点异常寄存器更新的CA运算电路,用于在所述控制信号具有定点异常寄存器更新需求时,根据第一源操作数、第二源操作数以及立即数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新;
执行条件寄存器更新及运算的循环移位运算电路、掩码运算电路、符号位扩展运算电路以及融合运算及结果选择电路;
其中,通过循环移位运算电路基于所述控制信号根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由掩码运算电路基于所述控制信号根据第二源操作数以及立即数计算掩码,并由符号位扩展运算电路基于所述控制信号根据第一源操作数以及第二源操作数获得符号位扩展结果,最后通过融合运算及结果选择电路根据获得的符号位扩展结果、旋转移位结果以及掩码获得运算结果。
4.根据权利要求3中所述的旋转类指令执行方法,其特征在于,所述CA运算电路包括:CA掩码生成器以及与所述CA掩码生成器连接的CA运算模块;
其中,执行定点异常寄存器更新的方式包括:在所述控制信号具有定点异常寄存器更新需求时,由CA掩码生成器根据第二源操作数以及立即数生成CA掩码,并通过CA运算模块根据所述CA掩码和第一源操作数计算对应判断移位过程中是否出现进位异常的CA结果,以供对定点异常寄存器进行更新。
5.根据权利要求3中所述的旋转类指令执行方法,其特征在于,所述循环移位运算电路,包括:格式化模块、移位量多路复用器和与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:掩码输入多路复用器以及与掩码输入多路复用器连接的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;
其中,执行条件寄存器更新及运算的方式包括:
通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值且在所述控制信号具有条件寄存器需求时同时获得CR结果;
通过掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值,再通过掩码生成器根据掩码开始值和掩码结束值,生成64位的掩码,并通过融合运算及结果选择电路将64位的旋转移位值以及64位的掩码进行融合运算,获得融合运算结果;
通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;
通过融合运算及结果选择电路基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
6.根据权利要求5中所述的旋转类指令执行方法,其特征在于,所述融合运算及结果选择电路包括:融合运算模块以及与所述融合运算模块连接的结果多路复用器;其中,所述融合运算模块用于将64位的旋转移位值以及64位的掩码进行融合运算获得融合运算结果;所述结果多路复用器用于基于控制信号选择融合运算结果或符号位扩展结果作为运算结果;
或者,所述融合运算及结果选择电路包括融合所述融合运算模块以及结果多路复用器逻辑的融合多路复用运算模块。
7.根据权利要求2中所述的旋转类指令执行方法,其特征在于,所述旋转类指令执行单元的结构包括:
循环移位运算电路、融合CA运算逻辑的掩码运算电路、符号位扩展运算电路、融合CA运算逻辑的融合运算模块以及结果多路复用器;
其中,所述旋转类指令执行单元用于基于所述控制信号,通过循环移位运算电路根据第一源操作数、第二源操作数以及立即数计算获得旋转移位结果且在所述控制信号具有条件寄存器需求时同时获得CR结果,再由融合CA运算逻辑的掩码运算电路根据第二源操作数以及立即数计算掩码并在所述控制信号具有定点异常寄存器更新需求时同时获得CA掩码,通过融合CA运算逻辑的融合运算模块将旋转移位结果以及掩码进行融合获得融合运算结果并根据CA掩码获得CA结果,再通过符号位扩展运算电路根据第一源操作数以及第二源操作数获得的符号位扩展结果,最后通过结果多路复用器选择获得的符号位扩展结果或融合运算结果为运算结果。
8.根据权利要求7中所述的旋转类指令执行方法,其特征在于,所述循环移位运算电路,包括:格式化模块、移位量多路复用器和与格式化模块以及移位量多路复用器连接的64:1旋转多路复用器;所述掩码运算电路,包括:融合CA运算逻辑的掩码输入多路复用器以及与融合CA运算逻辑的掩码输入多路复用器连接的融合CA运算逻辑的掩码生成器;所述符号位扩展运算电路,包括:符号位选择和扩展模块以及与符号位选择和扩展模块连接的位扩展结果多路复用器;
其中,所述旋转类指令执行单元执行运算的方式包括:
通过格式化模块基于第一源操作数进行格式化获得格式化数据,再通过移位量多路复用器基于所述控制信号,从第二源操作数和立即数中选择出6位的移位量值,再由64:1旋转多路复用器根据移位量值对格式化数据进行筛选得到64位的旋转移位值,且在所述控制信号具有条件寄存器需求时同时获得CR结果;
通过融合CA运算逻辑的掩码输入多路复用器基于控制信号从第二源操作数和立即数中选择6位的掩码值开始值和6位的掩码结束值并在所述控制信号具有定点异常寄存器更新需求时同时获得6位的CA掩码编码值,再通过融合CA运算逻辑的掩码生成器根据掩码开始值和掩码结束值生成64位的掩码且在接收到CA掩码编码值的情况下生成64位的CA掩码,并通过融合CA运算逻辑的融合运算模块将64位的旋转移位值、64位的掩码进行融合运算,获得融合运算结果且在接收到CA掩码的情况下生成CA结果;
通过符号位选择和扩展模块选择第一源操作数或者第二源操作数中相应数据位作为符号位扩展至最高位获得多个64位的符号位扩展结果,并通过位扩展结果多路复用器根据控制信号选取一64位的符号位扩展结果;
通过结果多路复用器基于控制信号选择融合运算结果或符号位扩展结果作为运算结果。
9.一种旋转类指令执行系统,其特征在于,应用于RISC处理器,所述系统包括:指令译码器、通用目的寄存器、旋转类指令执行单元、条件寄存器以及定点异常寄存器;
其中,指令译码器与旋转类指令执行单元以及通用目的寄存器通信连接,所述旋转类指令执行单元与通用目的寄存器、条件寄存器以及定点异常寄存器通信连接;
所述指令译码器,用于对目标旋转类指令进行译码获得译码信息,以供从所述译码信息中分离该指令所对应的控制信号、立即数以及操作数地址信息;
所述通用目的寄存器,用于利用所述操作数地址信息获取对应的源操作数信息;
旋转类指令执行单元,用于基于所述控制信号、立即数以及源操作数信息,在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
10.一种旋转类指令执行单元,其特征在于,所述单元包括:
旋转类指令执行电路,用于基于获取的对应目标旋转类指令的控制信号、立即数、第一源操作数以及第二源操作数,在一个时钟周期内完成该目标旋转类指令的执行运算,以供将获得的运算结果储存至通用目的寄存器,且在目标旋转类指令具有条件寄存器和/或定点异常寄存器更新需求时进行相应的更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310976173.6A CN116991477B (zh) | 2023-08-03 | 2023-08-03 | 旋转类指令执行方法、系统及执行单元 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310976173.6A CN116991477B (zh) | 2023-08-03 | 2023-08-03 | 旋转类指令执行方法、系统及执行单元 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991477A true CN116991477A (zh) | 2023-11-03 |
CN116991477B CN116991477B (zh) | 2024-01-30 |
Family
ID=88526228
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310976173.6A Active CN116991477B (zh) | 2023-08-03 | 2023-08-03 | 旋转类指令执行方法、系统及执行单元 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991477B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
CN1766834A (zh) * | 2005-01-20 | 2006-05-03 | 西安电子科技大学 | 双算术逻辑单元精简指令集8位微控制器 |
US20080263331A1 (en) * | 2007-04-18 | 2008-10-23 | Le Hung Q | Universal Register Rename Mechanism for Instructions with Multiple Targets in a Microprocessor |
CN101650645A (zh) * | 2009-09-04 | 2010-02-17 | 浙江大学 | 协处理器指令集的扩展装置 |
CN108415728A (zh) * | 2018-03-01 | 2018-08-17 | 中国科学院计算技术研究所 | 一种用于处理器的扩展浮点运算指令执行方法及装置 |
CN108427573A (zh) * | 2018-03-01 | 2018-08-21 | 中国科学院计算技术研究所 | 用于处理器的适于短操作数的扩展指令执行方法及装置 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN114721720A (zh) * | 2022-06-07 | 2022-07-08 | 中科亿海微电子科技(苏州)有限公司 | 一种指令集扩展方法、装置、电子设备及存储介质 |
CN116521236A (zh) * | 2023-05-11 | 2023-08-01 | 江苏华创微系统有限公司 | 一种基于risc-v指令集的流水线译码方法 |
-
2023
- 2023-08-03 CN CN202310976173.6A patent/CN116991477B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5685009A (en) * | 1994-07-20 | 1997-11-04 | Exponential Technology, Inc. | Shared floating-point registers and register port-pairing in a dual-architecture CPU |
CN1766834A (zh) * | 2005-01-20 | 2006-05-03 | 西安电子科技大学 | 双算术逻辑单元精简指令集8位微控制器 |
US20080263331A1 (en) * | 2007-04-18 | 2008-10-23 | Le Hung Q | Universal Register Rename Mechanism for Instructions with Multiple Targets in a Microprocessor |
CN101650645A (zh) * | 2009-09-04 | 2010-02-17 | 浙江大学 | 协处理器指令集的扩展装置 |
CN108415728A (zh) * | 2018-03-01 | 2018-08-17 | 中国科学院计算技术研究所 | 一种用于处理器的扩展浮点运算指令执行方法及装置 |
CN108427573A (zh) * | 2018-03-01 | 2018-08-21 | 中国科学院计算技术研究所 | 用于处理器的适于短操作数的扩展指令执行方法及装置 |
CN109144573A (zh) * | 2018-08-16 | 2019-01-04 | 胡振波 | 基于risc-v指令集的二级流水线架构 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN114721720A (zh) * | 2022-06-07 | 2022-07-08 | 中科亿海微电子科技(苏州)有限公司 | 一种指令集扩展方法、装置、电子设备及存储介质 |
CN116521236A (zh) * | 2023-05-11 | 2023-08-01 | 江苏华创微系统有限公司 | 一种基于risc-v指令集的流水线译码方法 |
Non-Patent Citations (1)
Title |
---|
陈智勇;: "流水线微处理器的设计与实现", 桂林电子科技大学学报, pages 219 - 223 * |
Also Published As
Publication number | Publication date |
---|---|
CN116991477B (zh) | 2024-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3592230B2 (ja) | データ処理装置 | |
US9292286B2 (en) | Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction sequence | |
US7287152B2 (en) | Conditional execution per lane | |
EP2569694B1 (en) | Conditional compare instruction | |
EP0766169B1 (en) | Processor and control method for performing proper saturation operation | |
US5996057A (en) | Data processing system and method of permutation with replication within a vector register file | |
US20120023308A1 (en) | Parallel comparison/selection operation apparatus, processor, and parallel comparison/selection operation method | |
US20070088772A1 (en) | Fast rotator with embedded masking and method therefor | |
EP1267258A2 (en) | Setting up predicates in a processor with multiple data paths | |
JP2000029688A (ja) | レジスタとメモリとの間のデ―タ転送 | |
JPH0810428B2 (ja) | データ処理装置 | |
EP1267255A2 (en) | Conditional branch execution in a processor with multiple data paths | |
US20150121041A1 (en) | Processor and methods for immediate handling and flag handling | |
JP2001034471A (ja) | Vliw方式プロセッサ | |
US20030037085A1 (en) | Field processing unit | |
CN116991477B (zh) | 旋转类指令执行方法、系统及执行单元 | |
JP2004355597A (ja) | ベクトルデータのアドレス参照方法およびベクトルプロセッサ | |
US7003651B2 (en) | Program counter (PC) relative addressing mode with fast displacement | |
JP3802038B2 (ja) | 情報処理装置 | |
US20050154773A1 (en) | Data processing apparatus and method for performing data processing operations on floating point data elements | |
EP1102161A2 (en) | Data processor with flexible multiply unit | |
JP2005508554A (ja) | データ操作を利用したデータの計算と処理方法、及び、その装置 | |
CN110914801A (zh) | 在数据处理设备中的向量交叉 | |
JP2003241960A (ja) | プロセッサ、該プロセッサにおける演算命令処理方法及び演算制御方法 | |
JP2006053830A (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 |