首页> 中国专利> RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器

RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器

摘要

本发明公开一种RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器,涉及处理器技术领域。所述寄存器架构包括:若干通用寄存器和若干特殊寄存器;其中:所述通用寄存器,用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;所述特殊寄存器,用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位和超出位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,同时不会明显降低处理器的性能。

著录项

  • 公开/公告号CN114661355A

    专利类型发明专利

  • 公开/公告日2022-06-24

    原文格式PDF

  • 申请/专利权人 深圳市智想科技有限公司;

    申请/专利号CN202210566219.2

  • 发明设计人 杨智华;周黄;赵文攀;

    申请日2022-05-24

  • 分类号G06F9/30;G06F15/80;

  • 代理机构深圳协成知识产权代理事务所(普通合伙);

  • 代理人章小燕

  • 地址 518000 广东省深圳市南山区粤海街道高新区社区粤兴二道6号武汉大学深圳产学研大楼A904

  • 入库时间 2023-06-19 15:46:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-24

    公开

    发明专利申请公布

说明书

技术领域

本发明涉及处理器技术领域,尤其涉及一种RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器。

背景技术

随着集成电路技术的发展,处理器的规模越来越大,结构越来越复杂,同时性能也越来越高。

目前的处理器中,根据指令集的技术特点上大致分成两大种类架构:复杂指令集处理器(Complex Instruction Set Computing,CISC)和精简指令集处理器(ReducedInstruction Set Computing,RISC)。RISC架构的指令集系统相对简单,只需要实现有限的常用且比较简单的指令,其他的复杂操作通过编译技术由多条指令组合完成。

目前,基于RISC架构的处理器是采用寄存器到寄存器的结构模型,即运算操作的源操作数来自寄存器,然后将运算结果存储到寄存器。因此,RISC架构处理器通常拥有固定数目(多数是16或32个)的通用寄存器并将其寻址方式直接编码在指令编码中。在软件程序中,通常根据某些指令执行后产生的结果标志位作为程序改变进程的判断条件,因此标志位的存储和读取操作的复杂程度会影响处理器执行软件程序的性能。另外,某些指令执行后的结果可能会产生超出单个寄存器位宽的结果,因此超出位宽部分的结果的存储和读取操作的复杂程度也会影响处理器执行软件程序的性能。

所以,目前处理器在指令执行后,其执行结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度。

发明内容

本发明实施例旨在提供一种RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器,旨在解决现有的目前处理器在指令执行后的结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

为解决上述技术问题,本发明第一方面实施例提供以下技术方案:一种RISC架构处理器的寄存器架构,所述寄存器架构包括:若干通用寄存器和若干特殊寄存器;其中:

所述通用寄存器,用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;

所述特殊寄存器,用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。

本发明第二方面实施例提供以下技术方案:一种RISC架构处理器的寄存器组,所述寄存器组是以本发明第一方面实施例所述的RISC架构处理器的寄存器架构为标准构建。

本发明第三方面实施例提供以下技术方案:一种RISC架构处理器,所述RISC架构处理器包括本发明第二方面实施例所述的RISC架构处理器的寄存器组。

与现有技术相比较,本发明实施例提供的一种RISC架构处理器的寄存器架构、寄存器组及RISC架构处理器,通过提供一种RISC架构处理器的寄存器架构,所述寄存器架构包括若干通用寄存器和若干特殊寄存器;所述通用寄存器用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;所述特殊寄存器用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位和超出位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,同时不会明显降低处理器的性能。从而解决现有的处理器在指令执行后的结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明提供的一种RISC架构处理器的寄存器架构的结构示意图;

图2是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取通用寄存器的值进行运算的示意图;

图3是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果写入到通用寄存器的示意图;

图4是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取常值0特殊寄存器的值进行运算的示意图;

图5是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果写入到常值0特殊寄存器的示意图;

图6是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取程序计数器特殊寄存器的值进行运算的示意图;

图7是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果写入到程序计数器特殊寄存器的示意图;

图8是本发明提供一种RISC架构处理器的寄存器架构中处理器执行指令时将此指令更新到所述程序计数器特殊寄存器的示意图;

图9是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取溢出位特殊寄存器的值进行运算的示意图;

图10是本发明提供一种RISC架构处理器的寄存器架构中溢出位特殊寄存器忽略写入的ALU的运算结果而保持标志位原值的示意图;

图11是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果更新到溢出位特殊寄存器的标志位值的示意图;

图12是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取零标志位/相等标志位特殊寄存器的值进行运算的示意图;

图13是本发明提供一种RISC架构处理器的寄存器架构中零标志位/相等标志位特殊寄存器忽略写入的ALU的运算结果而保持标志位原值的示意图;

图14是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果更新到零标志位/相等标志位特殊寄存器的标志位值的示意图;

图15是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取进位/借位/大于标志位/小于标志位特殊寄存器的值进行运算的示意图;

图16是本发明提供一种RISC架构处理器的寄存器架构中进位/借位/大于标志位/小于标志位特殊寄存器忽略写入的ALU的运算结果而保持标志位原值的示意图;

图17是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果更新到进位/借位/大于标志位/小于标志位特殊寄存器的标志位值的示意图;

图18是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取符号特殊寄存器的值进行运算的示意图;

图19是本发明提供一种RISC架构处理器的寄存器架构中符号特殊寄存器忽略写入的ALU的运算结果而保持标志位原值的示意图;

图20是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果更新到符号特殊寄存器的标志位值的示意图;

图21是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取乘法结果/除法结果特殊寄存器的值进行运算的示意图;

图22是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果写入到乘法结果/除法结果特殊寄存器的示意图;

图23是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作MDU读取乘法结果/除法结果特殊寄存器的值进行运算的示意图;

图24是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将MDU的结果写入到乘法结果/除法结果特殊寄存器的示意图;

图25是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令操作ALU读取链接程序计数器特殊寄存器的值进行运算的示意图;

图26是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将ALU的运算结果写入到链接程序计数器特殊寄存器的示意图;

图27是本发明提供一种RISC架构处理器的寄存器架构中处理器根据指令将LinkPC值写入到链接程序计数器特殊寄存器的示意图;

图28是本发明提供的一种RISC架构处理器的寄存器组的结构示意图;

图29是本发明提供的一种RISC架构处理器的结构示意图;

图30是根据现有的一种方法计算乘法结果的方法示意图。

具体实施方式

为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。需要说明的是,当元件被表述“固定于”另一个元件,它可以直接在另一个元件上、或者其间可以存在一个或多个居中的元件。当一个元件被表述“连接”另一个元件,它可以是直接连接到另一个元件、或者其间可以存在一个或多个居中的元件。本说明书所使用的术语“上”、“下”、“内”、“外”、“底部”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”“第三”等仅用于描述目的,而不能理解为指示或暗示相对重要性。

除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本说明书中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。本说明书所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。

此外,下面所描述的本发明不同实施例中所涉及的技术特征只要彼此之间未构成冲突就可以相互结合。

在一个实施例中,如图1所示,本发明提供一种RISC架构处理器的寄存器架构,所述寄存器架构包括:若干通用寄存器和若干特殊寄存器;其中:

所述通用寄存器,用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;

所述特殊寄存器,用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。

在本实施例中,通过提供一种RISC架构处理器的寄存器架构,所述寄存器架构包括若干通用寄存器和若干特殊寄存器;所述通用寄存器用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;所述特殊寄存器用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位和超出位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,同时不会明显降低处理器的性能。从而解决现有的目前处理器在指令执行后的结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

在一个实施例中,如图1所示,所述寄存器架构包括若干通用寄存器和若干特殊寄存器。

具体地,所述寄存器架构具有32个通用寄存器空间,包括8个特殊寄存器和24个通用寄存器GPR0-GPR23;其中:

24个所述通用寄存器,用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;

8个所述特殊寄存器,用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。

在一个实施例中,如图2至图3所示,所述寄存器架构包括24个通用寄存器GPR0-GPR23,用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作。

具体地,24个所述通用寄存器GPR0~GPR23不具有特殊含义和用途,处理器中所有可以操作通用寄存器的指令均可以对上述24个所述通用寄存器GPR0~GPR23进行正常读写操作。

如图2所示,处理器根据指令操作ALU(Arithmetic and Logic Unit算术逻辑单元)读取24个所述通用寄存器GPR0~GPR23中一个或多个通用寄存器的值进行运算。

如图3所示,处理器根据指令将ALU的运算结果写入到所述通用寄存器GPR0~GPR23中,所述ALU的运算结果会被正常地存储在24个所述通用寄存器GPR0~GPR23中的一个或多个通用寄存器。

在一个实施例中,如图4和图5所示,所述寄存器架构包括:1个常值0特殊寄存器,所述常值0特殊寄存器用于储存固定常值0。

具体地,所述常值0特殊寄存器是专用于存储数值“0”的特殊寄存器,该常值0特殊寄存器永远存储着常值“0”。

处理器中所有可以读取通用寄存器的指令均可以对所述数值0特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述常值0特殊寄存器进行写入操作,但是,所述常值0特殊寄存器会忽略写入结果而永远保持常值“0”。

如图4所示,处理器根据指令操作ALU读取所述常值0特殊寄存器的值进行运算。

如图5所示,处理器根据指令将ALU的运算结果写入所述常值0特殊寄存器中,但是,所述常值0特殊寄存器会忽略写入的所述ALU的运算结果而始终保持所述常值0特殊寄存器中的常值为“0”。

在一个实施例中,如图6至图8所示,所述寄存器架构包括:1个程序计数器(Program Counter,PC)特殊寄存器,所述程序计数器特殊寄存器用于储存程序计数器的值。

具体地,所述程序计数器特殊寄存器是专用于存储程序计数器PC值的特殊寄存器,即专用于存储处理器当前执行的指令的程序计数器PC值。处理器执行每条指令的同时会将当前指令的程序计数器(PC)值更新到所述程序计数器特殊寄存器中。

处理器中所有可以读取通用寄存器的指令均可以对所述程序计数器特殊寄存器进行读取操作,读取结果是当前指令的PC值,处理器中所有可以写入通用寄存器的指令均可以对所述程序计数器特殊寄存器进行写入操作,但是,所述程序计数器特殊寄存器会忽略写入结果而保持当前指令的PC值。

如图6所示,处理器根据指令操作ALU读取所述程序计数器特殊寄存器的值进行运算。

如图7所示,处理器根据指令将ALU的运算结果写入所述程序计数器特殊寄存器,但所述程序计数器特殊寄存器会忽略写入的所述ALU的运算结果而保持所述程序计数器特殊寄存器的原PC值。

如图8所示,每一条指令对应的PC值在处理器中的Execution Unit(指令执行单元)执行此指令时被更新到所述程序计数器特殊寄存器中。Execution Unit是处理器中执行指令操作的单元模块,其至少包含译码器(Decoder)、算术逻辑单元(ALU)、乘除法单元(MDU)和控制单元(Control Unit)。

在一个实施例中,如图9至图11所示,所述寄存器架构包括:1个溢出位(Overflow)特殊寄存器,所述溢出位特殊寄存器用于储存溢出位Overflow。

具体地,所述溢出位特殊寄存器是专用于存储二进制补码加减法溢出位Overflow的特殊寄存器。所述溢出位特殊寄存器的最低位是标志位,其余位永远是“0”。当处理器执行二进制补码加减法类指令时,运算结果产生的溢出位Overflow会被存储到所述溢出位特殊寄存器的标志位中。

处理器中所有可以读取通用寄存器的指令均可以对所述溢出位特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述溢出位特殊寄存器进行写入操作,但是,所述溢出位特殊寄存器器忽略写入结果,只会根据当前指令结果更新标志位值(当此指令为加减法类指令)或保持标志位原值(当此指令为非加减法类指令)。

如图9所示,处理器根据指令操作ALU读取所述溢出位特殊寄存器的值进行运算。

如图10所示,处理器根据指令将ALU的运算结果写入所述溢出位特殊寄存器,但所述溢出位特殊寄存器会忽略写入的所述ALU的运算结果而保持标志位原值(当此指令为非加减法类指令),或如图11所示,根据二进制补码加法计算的结果更新标志位值(当此指令为加减法类指令)。

在一个实施例中,如图12至图14所示,所述寄存器架构包括:1个零标志位(Zero)/相等标志位(Equal)特殊寄存器,所述零标志位/相等标志位特殊寄存器用于储存零标志位Zero或相等标志位Equal。

具体地,所述零标志位/相等标志位特殊寄存器是专用于存储运算结果是否为0的标志位Zero,或比较类指令的结果是否相等的标志位Equal的特殊寄存器。所述零标志位/相等标志位特殊寄存器的最低位为标志位,其余位永远是“0”。当处理器执行运算类指令时,根据运算结果的数值是否为“0”产生零标志位Zero并将其存储到所述零标志位/相等标志位特殊寄存器的标志位中;当处理器执行比较类指令时,根据比较结果是否相等产生相等标志位Equal并将其存储到所述零标志位/相等标志位特殊寄存器的标志位中。

处理器中所有可以读取通用寄存器的指令均可以对所述零标志位/相等标志位特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述零标志位/相等标志位特殊寄存器进行写入操作,但是所述零标志位/相等标志位特殊寄存器忽略写入结果,只会根据当前指令结果更新标志位值(当此指令为运算或比较类指令)或保持标志位原值(当此指令为非运算或比较类指令)。

如图12所示,处理器根据指令操作ALU读取所述零标志位/相等标志位特殊寄存器的值进行运算。

如图13所示,处理器根据指令将ALU的运算结果写入所述零标志位/相等标志位特殊寄存器,但所述零标志位/相等标志位特殊寄存器会忽略写入的所述ALU的运算结果而保持标志位原值(当此指令为非运算或比较类指令),或如图14所示根据ALU的运算结果更新标志位值(当此指令为运算或比较类指令)。

在一个实施例中,如图15至图17所示,所述寄存器架构包括:1个进位(Carry)/借位(Borrow)/大于标志位(Greater)/小于标志位(Less)特殊寄存器,所述进位/借位/大于标志位/小于标志位特殊寄存器用于储存二进制补码加减法结果的进位Carry或借位Borrow,或用于储存比较指令结果的大于标志位Greater或小于标志位Less。

具体地,所述进位/借位/大于标志位/小于标志位特殊寄存器是专用于储存二进制补码加减法结果的进位或借位,或用于存储比较类指令的结果是否大于的标志位或小于的标志位的特殊寄存器。所述进位/借位/大于标志位/小于标志位特殊寄存器的最低位为标志位,其余位永远是“0”。当处理器执行二进制补码加减法指令时,将运算结果产生的进位Carry/借位Borrow存储到进位/借位/大于标志位/小于标志位特殊寄存器;当处理器执行比较大于类指令时,根据比较结果是否大于以产生大于标志位Greater并将其存储到所述进位/借位/大于标志位/小于标志位特殊寄存器的标志位中;当处理器执行比较小于类指令时,根据比较结果是否小于以产生小于标志位Less并将其存储到所述进位/借位/大于标志位/小于标志位特殊寄存器的标志位中。

处理器中所有可以读取通用寄存器的指令均可以对所述进位/借位/大于标志位/小于标志位特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述进位/借位/大于标志位/小于标志位特殊寄存器进行写入操作,但是所述进位/借位/大于标志位/小于标志位特殊寄存器忽略写入结果,只会根据当前指令结果更新标志位值(当此指令为二进制补码加减法或比较类指令)或保持标志位原值(当此指令为非二进制补码加减法或比较类指令)。

如图15所示,处理器根据指令操作ALU读取所述进位/借位/大于标志位/小于标志位特殊寄存器的值进行运算。

如图16所示,处理器根据指令可以将ALU的运算结果写入所述进位/借位/大于标志位/小于标志位特殊寄存器,但所述进位/借位/大于标志位/小于标志位特殊寄存器会忽略写入的所述ALU的运算结果而保持标志位原值(当此指令为非二进制补码加减法或比较类指令),或如图17所示根据ALU的运算结果更新标志位值(当此指令为二进制补码加减法或比较类指令)。

在一个实施例中,如图18至图20所示,所述寄存器架构包括:1个符号(Sign)特殊寄存器,所述符号特殊寄存器用于储存运算结果的符号Sign。

具体地,所述符号特殊寄存器是专用于存储运算结果(按二进制补码形式)的符号的标志位Sign的特殊寄存器。所述符号特殊寄存器的最低位为标志位,其余位永远是“0”。当处理器执行运算类指令时,根据运算结果的符号产生标志位Sign并将其存储到所述符号特殊寄存器的标志位中。

处理器中所有可以读取通用寄存器的指令均可以对所述符号特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述符号特殊寄存器进行写入操作,但是所述符号特殊寄存器忽略写入结果,只会根据当前指令结果更新标志位值(当此指令为运算类指令)或保持标志位原值(当此指令为非运算类指令)。

如图18所示,处理器根据指令可以操作ALU读取所述符号特殊寄存器的值进行运算。

如图19所示,处理器根据指令可以将ALU的运算结果写入所述符号特殊寄存器,但所述符号特殊寄存器会忽略写入的所述ALU的运算结果而保持标志位原值(当此指令为非运算类指令),或如图20所示根据ALU的运算结果更新标志位值(当此指令为运算类指令)。

在一个实施例中,如图21至图24所示,所述寄存器架构包括:1个乘积(MultiplyProduct)/除法商(Division Quotient)/除法余数(Division Remainder)特殊寄存器,所述乘积/除法商/除法余数特殊寄存器用于储存乘积结果Product或除法商Quotient/除法余数Remainder。

具体地,所述乘积/除法商/除法余数特殊寄存器是专用于存储乘除法运算结果中超出单个寄存器位宽部分的特殊寄存器,同时所述乘法结果/除法结果特殊寄存器也可以和上述通用寄存器GPR0~GPR23一样作为普通的通用寄存器使用。当处理器执行乘法类指令时,根据运算结果将结果乘法结果Product中超出单个寄存器位宽部分存储到所述乘法结果/除法结果特殊寄存器中;当处理器执行除法类指令时,根据指令的定义而选择将运算结果中的商Quotient或余数Remainder存储到所述乘法结果/除法结果特殊寄存器中。

处理器中所有可以读取通用寄存器的指令均可以对所述乘积/除法商/除法余数特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述乘法结果/除法结果特殊寄存器进行写入操作。

如图21所示,处理器根据指令操作ALU读取此寄存器的值进行运算(当此指令为非乘除法类指令)。

如图22所示,处理器根据指令将ALU的运算结果写入所述乘积/除法商/除法余数特殊寄存器(当此指令为非乘除法类指令)。

如图23所示,处理器根据指令操作MDU(乘除法单元)读取所述乘积/除法商/除法余数特殊寄存器的值进行运算(当此指令为乘除法类指令并且从此寄存器读取源操作数);如图24所示,处理器根据指令将MDU的结果写入所述乘积/除法商/除法余数特殊寄存器(当此指令为乘除法类指令)。

在一个实施例中,如图25至图27所示,所述寄存器架构包括:1个链接程序计数器(Program Counter,PC)特殊寄存器,所述链接程序计数器特殊寄存器用于储存链接PC值。

具体地,所述链接程序计数器特殊寄存器是专用于存储链接类指令PC值的特殊寄存器,同时所述链接程序计数器特殊寄存器也可以和上述通用寄存器GPR0~GPR23一样作为普通的通用寄存器使用。当处理器执行链接类指令时将指令的Link PC存储到所述链接程序计数器特殊寄存器中。

处理器中所有可以读取通用寄存器的指令均可以对所述链接程序计数器特殊寄存器进行读取操作,所有可以写入通用寄存器的指令均可以对所述链接程序计数器特殊寄存器进行写入操作。

如图25所示,处理器根据指令操作ALU读取所述链接程序计数器特殊寄存器的值进行运算。

如图26所示,处理器根据指令将ALU的运算结果写入所述链接程序计数器特殊寄存器(当此指令为非链接类指令)。

如图27所示,处理器根据指令将Link PC值写入所述链接程序计数器特殊寄存器(当此指令为链接类指令)。

基于同一构思,在一个实施例中,如图28所示,本发明提供一种RISC架构处理器的寄存器组,所述寄存器组(REG)是以上述任一实施例所述的RISC架构处理器的寄存器架构为标准构建。

进一步地,所述寄存器组包括:

R0,专用于存储常值“0”的常值0特殊寄存器;

R1,专用于存储程序计数器PC的程序计数器特殊寄存器;

R2,专用于存储二进制补码加减法溢出位Overflow的溢出位特殊寄存器;

R3,专用于存储运算结果是否为0的标志位Zero,或比较类指令的结果是否相等的标志位Equal的零标志位/相等标志位特殊寄存器;

R4,专用于存储二进制补码加减法进位Carry/借位Borrow,或比较类指令的结果是否大于的标志位Greater或小于的标志位Less的进位/借位/大于标志位/小于标志位特殊寄存器;

R5,专用于存储运算结果的符号的标志位Sign的符号特殊寄存器;

R6,可用于存储乘除法运算结果中超出单个寄存器位宽部分的乘法结果/除法结果特殊寄存器,也可作为普通的通用寄存器使用;

R7,可用于存储链接类指令PC值的链接程序计数器寄存器,也可作为普通的通用寄存器使用;

R8~R31,普通的通用寄存器;

上述的寄存器R0~R31位宽均为32位,分配在RISC架构处理器指令集编码中的通用寄存器编码空间。

在本实施例中,所述RISC架构处理器的寄存器架构与上述任一实施例所述的RISC架构处理器的寄存器架构是一致,具体的结构与功能可以参考上述任一实施例所述的RISC架构处理器的寄存器架构,且所述寄存器架构实施例中的技术特征在所述寄存器组实施例中均对应适用,这里不再赘述。

在本实施例中,通过提供一种RISC架构处理器的寄存器组,所述寄存器组是RISC架构处理器的寄存器架构为标准构建,所述RISC架构处理器的寄存器架构包括若干通用寄存器和若干特殊寄存器;所述通用寄存器用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;所述特殊寄存器用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位和超出位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,同时不会明显降低处理器的性能。从而解决现有的目前处理器在指令执行后的结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

基于同一构思,在一个实施例中,如图29所示,本发明提供一种RISC架构处理器,所述RISC架构处理器包括:指令存储器(IMEM)、取指令单元(IF)、指令译码单元(Decoder)、算术逻辑单元(ALU)、乘除法单元(MDU)、控制单元(Control Unit)以及上述任一实施例所述的RISC架构处理器的寄存器组(REG)。

在本实施例中,所述RISC架构处理器的寄存器组与上述任一实施例所述的RISC架构处理器的寄存器组REG是一致,具体的结构与功能可以参考上述任一实施例所述的RISC架构处理器的寄存器组,在此不再赘述。

在本实施例中,通过提供一种RISC架构处理器,所述RISC架构处理器包括RISC架构处理器的寄存器组,所述寄存器组是RISC架构处理器的寄存器架构为标准构建,所述RISC架构处理器的寄存器架构包括若干通用寄存器和若干特殊寄存器;所述通用寄存器用于提供给处理器根据通用寄存器的指令对所述通用寄存器执行通用的读写操作;所述特殊寄存器用于提供处理器根据指定的指令对所述特殊寄存器执行条件判断、跳转类操作或运算类操作。从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位和超出位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,同时不会明显降低处理器的性能。从而解决现有的目前处理器在指令执行后的结果对标志位操作的复杂程度和/或超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

为了便于理解本发明的以上发明构思,下面结合附图和具体实施例,对本发明的以上发明构思进行更详细的说明,但本发明并不限于这些具体实施例。

在现有技术中,目前RISC架构处理器在指令执行后,其执行结果对标志位操作处理一般有以下方法:方法A是将标志位舍弃不存储,部分标志位可以通过专用指令,或软件复杂编程处理,有些则需要复杂的硬件异常去处理;方法B是将所有标志位整合存储在一个特殊寄存器中(其可能同时是通用寄存器),然后在需要时通过指令去读取整个寄存器的值(如果此寄存器不是通用寄存器则需要专用指令),读取后再通过指令运算屏蔽其他位获得需要的标志位的状态;或者通过多条专用指令对应每个标志位实现单个标志位的读取或判断操作。

此外,目前RISC架构处理器在指令执行后,其执行结果对对超出单个寄存器位宽的计算结果的处理一般有以下方法:方法C是将超出部分结果舍弃不做单独的存储,通过专用指令,或软件复杂编程处理;方法D是将整个结果存储在一个特殊的位宽足够大的非通用寄存器中,然后在需要时通过专用指令分次逐步读取到多个通用寄存器中,然后再进行操作。

实施例1:

在本实施例中,以一实现累加计算的程序为例,RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组(REG)的实现方法,和RISC架构处理器采用上述现有技术中提到的方法A和方法B作进一步的对比说明。

在本实施例中,需要求出:无符号数A0+A1+A2的值。

在实施例1中,RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组的实现方法,其编程解决方法如下:

(需要说明的是:在以下实施例中,寄存器在以下本发明的实现方法统一标记为Rn, n=0,1,2...,具体含义可参考所述寄存器组的实施例的描述)。

1、设A0,A1,A2分别存储在通用寄存器R8、R9和R10;计算A0(R8)+A1(R9),得到S1并存储到通用寄存器R8,其中进位C1直接存储在特殊寄存器R4(专用于存储进位/借位/大于标志位/小于标志位特殊寄存器);该步骤需要1条指令,寄存器占用结果为:R4(C1),R8(S1),R9(A1),R10(A2)。

2、将R4传输到通用寄存器R9;该步骤需要1条指令,寄存器占用结果为:R4(C1),R8(S1),R9(C1),R10(A2)。

3、计算S1(R8)+A2(R10),得到S2并存储到R10,其中进位C2直接存储在R4;该步骤需要1条指令,寄存器占用结果为:R4(C2),R8(S1),R9(C1),R10(S2)。

4、计算C1(R9)+C2(R4),得到C3并存储到R8,则{C3, S2}为最后结果;该步骤需要1条指令,寄存器占用结果为:R4(C2),R8(C3),R9(C1),R10(S2)。

上述方法使用的寄存器为R4,R8,R9,R10,总数为4个,使用的指令数为4条。

对比例1:

对比例1中,RISC架构处理器采用上述现有技术中的方法A:处理器采用舍弃无符号数加法进位Carry的实现方法,其编程解决方法如下:

(需要说明的是:在以下实施例中,通用寄存器在以下现有技术中的方法A和方法B统一标记为Gn, n=0,1,2...):

1、设A0,A1,A2分别存储在G8,G9,G10;计算A0(G8)+A1(G9),得到S1并存储到G11,该步骤需要1条指令,寄存器占用结果为:G8(A0),G9(A1),G10(A2),G11(S1)。

2、根据S1,A0,A1的值判断是否有进位,最后将进位结果C1(0或1)存储到G8;该步骤需要p条指令(p>1,典型值为4,具体数值与采用的运算方法以及指令有关),其中包含比较跳转类分支指令、传输类指令等,寄存器占用结果为:G8(C1),G9(A1),G10(A2),G11(S1)。

3、计算S1(G11)+A2(G10),得到S2并存储到G9;该步骤需要1条指令,寄存器占用结果为:G8(C1),G9(S2),G10(A2),G11(S1)。

4、根据S2,S1,A2的值判断是否有进位,最后将进位结果C2存储到G10;该步骤需要p条指令,寄存器占用结果为:G8(C1),G9(S2),G10(C2),G11(S1)。

5、计算C1(G8)+C2(G10),得到C3并存储到G11,则{C3, S2}为最后结果;该步骤需要1条指令,寄存器占用结果为:G8(C1),G9(S2),G10(C2),G11(C3)。

上述方法使用的寄存器为G8,G9,G10,G11,总数为4个,使用的指令数为(3+2*p)条,当p为典型值4时,具体指令数为11条。

对比例2:

对比例2中,RISC架构处理器采用上述现有技术中的方法B:处理器采用将标志位集中存储在一个特殊寄存器PSR的实现方法,其编程解决方法如下:

1、设A0,A1,A2分别存储在G8,G9,G10;计算A0(G8)+A1(G9),得到S1并存储到G8,其中进位C1直接存储在PSR,该步骤需要1条指令,寄存器占用结果为:G8(S1),G9(A1),G10(A2),PSR(C1)。

2、将特殊寄存器PSR传输到通用寄存器G9,将通用寄存器G9中的进位移位到最低位(如果进位本来就在最低位则不需要移位),将通用寄存器G9中除进位外的其他标志位清0,得到C1;该步骤需要p条指令(p>1,典型值为3,具体数值与采用的运算方法以及指令有关),其中包含传输类指令、逻辑运算类指令、移位类指令等。寄存器占用结果为:G8(S1),G9(C1),G10(A2),PSR(C1)。

3、计算S1(G8)+A2(G10),得到S2并存储到G10,其中进位C2直接存储在PSR,该步骤需要1条指令,寄存器占用结果为:G8(S1),G9(C1),G10(S2),PSR(C2)。

4、将特殊寄存器PSR传输到通用寄存器G8,将通用寄存器G8中的进位移位到最低位(如果进位本来就在最低位则不需要移位),将通用寄存器G8中除进位外的其他标志位清0,得到C2;该步骤需要p条指令,其中包含传输类指令、逻辑运算类指令、移位类指令等。寄存器占用结果为:G8(C2),G9(C1),G10(S2),PSR(C2)。

5、计算C1(G9)+C2(G8),得到C3并存储到G9,则{C3, S2}为最后结果;该步骤需要1条指令,寄存器占用结果为:G8(C2),G9(C3),G10(S2),PSR(C2)。

上述方法使用的寄存器为G8,G9,G10,PSR,总数为4个,使用的指令数为(3+2*p)条,当p为典型值3时,具体指令数为9条。

从以上实施例1、对比例1和对比例2中的编程解决方法的比较中可以得出,RISC架构处理器采用上述现有技术中的方法A或方法B,其编程解决方法的解决步骤和指令比较多,处理器在指令执行后,其执行结果对标志位操作的复杂程度可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度等其中一种或多种问题。而RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组REG的实现方法,其编程解决方法的解决步骤和指令均为最少,从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理标志位的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,提高处理器在处理标志位操作的相关问题时能获得更好的性能。可以解决RISC架构处理器采用上述现有技术中的方法A或方法B所造成的对标志位操作的复杂程度可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

实施例2:

在本实施例中,以一实现乘加计算的程序为例,RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组的实现方法,和RISC架构处理器采用上述现有技术中提到的实现方法C和方法D作进一步的对比说明。

在本实施例中,需要求出:无符号数A*B+W的值。

在实施例2中,RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组的实现方法,其编程解决方法如下:

1、设A,B,W分别存储在R6,R8,R9;计算A(R6)*B(R8),得到P,P的低位一半部分PL直接存储到R8,P的高位一半部分PH直接存储到R6(可用于存储乘除法运算结果中超出单个寄存器位宽部分的乘法结果/除法结果特殊寄存器);该步骤需要1条指令,寄存器占用结果为:R6(PH),R8(PL),R9(W)。

2、计算PL(R8)+W(R9),得到S1并存储到R8,其中进位C1直接存储在R4;该步骤需要1条指令,寄存器占用结果为:R4(C1),R6(PH),R8(S1),R9(W)。

3、计算PH(R6)+C1(R4),得到S2并存储到R9,则{C2, S2, S1}为最后结果(根据乘法特性,此次加法运算不会产生进位);该步骤需要1条指令,寄存器占用结果为:R4(C2),R6(PH),R8(S1),R9(S2)。

上述方法使用的寄存器为R4,R6,R8,R9,总数为4个,使用的指令数为3条。

对比例3:

对比例3中,RISC架构处理器采用上述现有技术中的方法D:处理器采用将乘积存储在一个特殊的位宽足够大的非通用寄存器DWR的实现方法,其编程解决方法如下:

1、设A,B,W分别存储在G6,G8,G9;计算A(G6)*B(G8),得到P,P被直接存储到非通用寄存器DWR中;该步骤需要1条指令,寄存器占用结果为:G6(A),G8(B),G9(W),DWR(P)。

2、将非通用寄存器DWR的低位一半PL传输到通用寄存器G6;该步骤需要1条指令,寄存器占用结果为:G6(PL),G8(B),G9(W),DWR(P)。

3、将非通用寄存器DWR的高位一半PH传输到通用寄存器G8;该步骤需要1条指令,寄存器占用结果为:G6(PL),G8(PH),G9(W),DWR(P)。

4、计算PL(G6)+W(G9),得到S1并存储到G6;该步骤需要1条指令,寄存器占用结果为:G6(S1),G8(PH),G9(W),DWR(P)。

5、根据处理器架构上述对比例1或对比例2的方法计算得到进位C1并存储到G9。该步骤需要p条指令,寄存器占用结果为:G6(S1),G8(PH),G9(C1),DWR(P)。

6、计算PH(G8)+C1(G9),得到S2并存储到G8,则{S2, S1}为最后结果(根据乘法特性,此次加法运算不会产生进位);该步骤需要1条指令,寄存器占用结果为:G6(S1),G8(S2),G9(C1),DWR(P)。

上述方法使用的寄存器为G6,G8,G9,DWR,总数为4个,使用的指令数为(5+p)条,当p为典型值3或4时,具体指令数为8或9条。

对比例4:

对比例4中,RISC架构处理器采用上述现有技术中的方法C:处理器采用将超出部分结果舍弃不做单独的存储的实现方法,其编程解决方法如下:

1、设A,B,W分别存储在G1,G3,G11;将(A*B)标记为(Aa*Bb),其中A,B代表数的高位一半部分,a,b代表数的低位一半部分,分别将A,a,B,b存储到4个通用寄存器G1、G2、G3、G4中;该步骤需要m指令(m>1,典型值为6,具体数值与采用的运算方法以及指令有关),其中包括传输类指令、移位类指令、逻辑运算类指令等,寄存器占用结果为:G1(A),G2(a),G3(B),G4(b),G11(W)。

2、按图30的方法计算,得到P;该步骤需要q指令(q>1,典型值约为10~15,具体数值与采用的运算方法以及指令有关),其中包括乘法类指令、加法类指令、传输类指令、移位类指令等,其中加法指令需要根据处理器架构按上述对比例1或对比例2的方法处理进位,寄存器占用结果为:G1~G11(使用寄存器数目与运算方法和指令有关,占用更少寄存器数目的可能性存在)。

3、按上述对比例3中的第4,5,6继续,得到最后结果。该步骤需要(2+p)条指令,寄存器占用结果为:G1~G11。

上述方法使用的寄存器为G1~G11,总数为12个,使用的指令数为(m+q+2+p)条,当m,q,p为典型值时,具体指令数为21~30条。

从以上实施例2、对比例3和对比例4中的编程解决方法的比较中可以得出,RISC架构处理器采用上述现有技术中的方法C或方法D,其编程解决方法的解决步骤和指令比较多,处理器在指令执行后,其执行结果对乘除法类的超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度等其中一种或多种问题。而RISC架构处理器采用包括本发明提出的RISC架构处理器的寄存器架构为标准构建的寄存器组的实现方法,其编程解决方法的解决步骤和指令均为最少,从而可以减少处理器指令集条件判断/跳转类指令的种类,减少专用于处理乘除法类的超出单个寄存器位宽的计算结果的指令类型和数目,降低处理器硬件设计的实现难度和成本,提高处理器执行条件判断、跳转类操作或运算类操作的性能,降低此类操作的指令开销,提高处理器在处理乘除法类的超出单个寄存器位宽的计算结果的相关问题时能获得更好的性能。可以解决RISC架构处理器采用上述现有技术中的方法C或方法D所造成的对乘除法类的超出单个寄存器位宽的计算结果可能会造成处理器性能下降,造成增加硬件设计电路的复杂度以及软件编写的复杂度的问题。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号