具有粒度的增加立即数能力的处理器和方法技术

技术编号:11864218 阅读:92 留言:0更新日期:2015-08-12 13:37
处理器可以寻址双字长存储空间(例如64比特寻址)。处理器可以被配置为解码一连串的三条指令和第四指令,该一连串的三条指令引起任意的64比特立即值中的48个比特被构建在寄存器中,该第四指令完成该64比特值并且分支到使用寄存器中64比特值确定的存储位置或访问使用寄存器中64比特值确定的存储位置。指令集架构中的单独的指令可以被提供用于64比特寄存器的16比特部分的非破坏性写入。

【技术实现步骤摘要】

在一个方面,以下涉及微处理器架构,更具体的方面,涉及所公开的处理器架构特 征的微架构实施方式。
技术介绍
微处理器的架构涉及可以由微处理器处理的一组指令以及这些指令使得微处理 器做的事情。微处理器的架构可以根据多种特征进行分类。一个主要的特征是指令集被认 为是"复杂"的还是具有"精简复杂度"。通常地,术语复杂指令集计算机(CISC)和精简指令 集计算机(RISC)分别用于指代这种架构。现在,许多现代处理器架构具有传统上与仅CISC 或RISC架构相关联的特征。特别地,RISC和CISC之间的含义的主要区别在于算术指令是 否执行存储操作。 RISC指令集可以要求所有的指令是完全一样的比特数(例如32个比特)。而且, 这些比特可能需要根据格式的有限集合进行分配。例如,可以要求每条指令的所有操作码 为相同的比特数(例如6)。这意味着在这种架构中可以提供给高达2~6(64)条唯一指令。 在一些情况下,主操作码可以指定指令的类型,并且某个比特数被用作功能标识符,该功能 标识符在这种指令的不同变形之间进行区分(例如,所有的加法指令可以具有相同的6比 特数字的主操作码标识符,但是每个是不同类型的加法指令,例如忽略溢出的加法和在溢 出时俘获(trap)的加法)。 可以根据标识源操作数、结果的目的地、或在执行由"操作码"比特标识的操作期 间使用的常量而分配剩余比特(除了"操作码"比特以外的)。例如,算术操作可以使用6 个比特用于操作码、另外6个比特用于功能码(在本文中统称为"操作码"比特),并且然后 各使用5个比特来标识一个目的地和两个源寄存器。即使RISC架构可能要求所有的指令 为相同的长度,并不是每条指令会要求所有的比特都被填充,尽管所有的指令仍然使用至 少32个比特的存储。
技术实现思路
本公开的一个方面涉及在处理器中实现的方法。该方法包括输入四条指令并且解 码四条指令中的每条指令以标识四条指令中的每条指令中相应的立即值、目的地寄存器、 和目的地寄存器的相应的不同部分。该方法还提供将来自四条所指令的立即值中的每个立 即值增加到由四条指令中的每条所指定的目的地寄存器的相应的不同部分的当前内容,并 且然后将程序执行重定向至使用从该增加得到的值确定的存储器地址。 在一个示例中,按顺序输入四条指令,并且四条指令的最后一条指令标识目的地 寄存器的最低部分、并指定以下各项中的至少一项:到从该增加得到的值确定的目标地址 的分支和到从该增加得到的值确定的目标地址的跳转。例如,这些指令中的前三条指令可 以用于读取目的地寄存器中的当前值、以不破坏并非由该条指令寻址的目的地寄存器的部 分的内容的方式执行该增加,并且按顺序中的第四条指令读取目的地寄存器中的当前值、 执行该增加和执行利用从该增加的结果计算出的目标地址的条件分支或跳转。 本公开的另一个方面涉及生成可以根据上述方法进行处理的指令。此方法的示例 包括确定程序控制应当从起始位置传送到的目的地位置和基于目的地位置和起始位置确 定立即值。该方法包括准备指令的序列和操作码描述数据,每条指令包括所确定的立即值 的部分、指示寄存器的相应的不同部分,操作码描述数据由处理器用来配置执行单元、以将 序列的每条指令中所包括的所确定的立即值的部分增加到寄存器的相应的不同部分处的 内容。指令的序列中的最后一条指令包括可由该处理器解译以发起将程序控制传送到基于 从执行指令的序列得到的值确定的存储器地址的数据。 本公开的另一个方面涉及在微处理器中执行的方法,该方法包括从指令源接收四 条指令,将四条指令中的三条指令解码为操作,每个操作使得该处理器将立即值增加至在 该条指令所指示的寄存器中相应位置处的寄存器。立即值具有比寄存器的比特大小更少的 比特。该方法包括执行这三条指令,并且然后通过以下来执行第四条指令:将第四条指令指 定的立即值增加至根据这三条指令的执行得到的寄存器中的值,并且然后在为分支操作、 跳转操作、加载操作和存储操作中的至少一个操作确定存储器地址时使用该立即值。 本公开的另一个方面包括处理器,包括解码单元,该解码单元被配置为解码表示 从指令源提供的指令的数据。这些指令符合包括增加立即数指令的集合的指令集架构,每 条增加立即数指令至少指定存储器和立即值。该解码单元被配置为将来自增加立即数指令 的集合中的指令解码为指示该条指令的立即值要被增加到的目的地寄存器的相应的不同 部分、并且然后存储增加的结果,其中增加立即数指令的集合共同地寻址目的地寄存器的 四个不同部分中的至少三个部分。执行单元与解码单元耦合并且被配置为根据从解码单元 接收的数据来执行操作。 在一个示例中,增加立即数指令的集合中每条增加立即数指令指定源寄存器、目 的地寄存器和立即值。解码单元被配置为将这些指令解码为指示该条指令的立即值要非 破坏性地被增加到的源寄存器的相应的部分,并且然后在目的地寄存器中存储该增加的结 果。在一个示例中,增加立即数指令的集合包括指示该寄存器的最高四分位数的增加立即 数指令、指示寄存器的第三四分位数的增加立即数指令和指示寄存器的第二四分位数的增 加立即数指令。 本公开的另一个方面涉及包括寄存器文件的处理器,该寄存器文件包括多个寄存 器,多个寄存器包括具有一定大小的通用寄存器,与寄存器文件耦合的执行单元,其中执行 单元能够执行立即数的非破坏性增加,该立即数具有以每个通用寄存器的每个不同四分位 数的、该大小的四分之一,并且解码单元被配置为解码单独的指令以执行具有该条指令所 指定的通用寄存器的每个不同四分位数的立即值的增加。 一个方面还包括在能够操纵寄存器的半字长部分的微处理器中指令控制执行的 方法。该方法包括解码和执行使得微处理器在双字长寄存器的相应部分中建立任意值的部 分的三条指令;解码和执行在寄存器中完成任意值、并将程序计数器寄存器设置为基于在 寄存器中已完成的值确定的值的第四指令。 一个方面涉及在微处理器中指令控制执行的方法,包括在该微处理器中将指令解 码成指示程序计数器基准、寄存器标识符、立即值和操作码标识符的数据,并且将操作码标 识符解译为指示立即值要被符号扩展、字对准、并被增加到程序计数器的当前值,并且该增 加的结果要被存储在使用寄存器标识符进行标识的寄存器中。处理器可以被设计成实现上 述方法。 加载存储单元(LSU)可以耦合至寄存器文件并且被配置为接收该结果和在由寄 存器标识符所标识的寄存器中存储该结果。寄存器重命名单元可以被配置为将由寄存器标 识符所标识的架构寄存器映射到寄存器文件中的物理寄存器。 本公开的一个方面涉及在处理器中处理机器可执行指令的方法,包括:访问表示 要在处理器中被执行的指令的数当前第1页1 2 3 4 本文档来自技高网
...

【技术保护点】
一种在处理器中实现的方法,包括:输入四条指令;解码所述四条指令中的每条指令,以标识所述四条指令中的每条指令中的相应的立即值、目的地寄存器和所述目的地寄存器的相应的不同部分;将来自所述四条指令的立即值中的每个立即值增加到由所述四条指令中的每条指令所指定的目的地寄存器的所述相应的不同部分的当前内容;以及然后将程序执行重定向至使用从所述增加得到的值确定的存储器地址。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:R·萨达卡
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:英国;GB

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1