一种采用RISC架构的CPU系统转让专利

申请号 : CN201910864343.5

文献号 : CN110688156B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 高剑刚高红光过锋李宏亮郑方许勇张昆杨萱

申请人 : 无锡江南计算技术研究所

摘要 :

本发明提供一种直接支持64个结构寄存器的RISC指令集编码格式,属于计算机体系结构和处理器微结构技术领域。该直接支持64个结构寄存器的RISC指令集编码格式中,所有指令编码保持32位定长,编码字段包括结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd、主操作码OPC、功能码FUNC、子功能码SUBF、立即数#b、立即数#c、立即数偏移字段disp。本发明在不增加指令字长,满足RISC指令集基本功能需求的前提下,降低因结构寄存器数量不足而带来的编程难度,避免小容量结构寄存器与大容量物理寄存器之间进行映射的逻辑开销。

权利要求 :

1.一种采用RISC架构的CPU系统,其特征在于,包括采用RISC指令集的CPU、Ra源操作数寄存器、Rb源操作数寄存器、Rc目标寄存器、Rd目标寄存器、64个64位结构寄存器(R0 R63);

~

CPU的所有指令编码均为32位等长,支持64个64位结构寄存器(R0 R63);

~

其中,所述指令编码中包括字段为6位的结构寄存器索引字段Ra、字段为6位的结构寄存器索引字段Rb、字段为6位的结构寄存器索引字段Rc、字段为6位的结构寄存器索引字段Rd、字段为4位的主操作码OPC、字段为4位的功能码FUNC、字段为4位的子功能码SUBF、字段为8位的立即数#b、字段为6位的立即数#c、用以进行地址偏移的立即数偏移字段disp;所述主操作码OPC、功能码FUNC、子功能码SUBF均为4位二进制编码,所述主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令;所述结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd均为6位二进制编码,所述结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd可表示范围为0~63、支持对64个结构寄存器(R0 R63)的直接访问;所述RISC指令集包括~用以操作数小于等于2的整数操作类指令和浮点操作类指令的简单运算指令格式、用以融合乘加和条件选择操作数等于3的整数操作类指令和浮点操作类指令的复合运算指令格式、用以转移指令的转移指令格式、用以访存指令的存储器指令格式和杂项指令格式。

2.如权利要求1所述的一种采用RISC架构的CPU系统,其特征在于:所述简单运算指令格式包括使用立即数的立即数式简单运算指令格式和不使用立即数的寄存器式简单运算指令格式。

3.如权利要求1或2所述的一种采用RISC架构的CPU系统,其特征在于:所述复合运算指令格式包括使用立即数的立即数式复合运算指令格式和不使用立即数的寄存器式复合运算指令格式。

4.如权利要求2所述的一种采用RISC架构的CPU系统,其特征在于:所述寄存器式简单运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb和作为目标寄存器编号使用的结构寄存器索引字段Rc。

5.如权利要求2所述的一种采用RISC架构的CPU系统,其特征在于:所述立即数式简单运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、作为目标寄存器编号使用的结构寄存器索引字段Rc和1个8位的立即数#b。

6.如权利要求3所述的一种采用RISC架构的CPU系统,其特征在于:所述寄存器式复合运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc和作为目标寄存器编号使用的结构寄存器索引字段Rd。

7.如权利要求3所述的一种采用RISC架构的CPU系统,其特征在于:所述立即数式复合运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、作为目标寄存器编号使用的结构寄存器索引字段Rd和1个6位的立即数#c。

8.如权利要求1或2所述的一种采用RISC架构的CPU系统,其特征在于:所述转移指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra和21位立即数偏移字段disp,所述转移指令测试结构寄存器索引字段Ra所指定的结构寄存器中的内容,并根据21位立即数偏移字段disp确定跳转目标。

9.如权利要求1或2所述的一种采用RISC架构的CPU系统,其特征在于:所述存储器指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Rb和16位立即数偏移字段disp,所述访存指令将结构寄存器索引字段Rb所指定的结构寄存器中的内容加上16位立即数偏移字段disp作为存储器地址。

10.如权利要求1或2所述的一种采用RISC架构的CPU系统,其特征在于:所述杂项指令格式包括12位立即数偏移字段disp。

说明书 :

一种采用RISC架构的CPU系统

技术领域

[0001] 本发明属于计算机体系结构和处理器微结构技术领域,涉及一种采用RISC架构的CPU系统。

背景技术

[0002] CPU从指令集的特点上可以分为两类:复杂指令运算集CISC和精简指令运算集RISC。RISC的指令系统相对简单,硬件只实现有限且最常用的指令,大部分复杂的操作则通过编译技术由简单指令合成。
[0003] 目前中高档服务器中普遍采用RISC架构的CPU。常见的RISC指令集,包括IBM的PowerPC、MIPS公司的MIPS、SUN公司的Sparc、DEC的Alpha、Acorn的ARM架构和UCB的RISC-V架构。
[0004] RISC指令集的多数指令为寄存器之间的操作。足量的寄存器可以暂存后续操作所需要的中间结果,减少对内存的装入和存储,加快运行速度。因此RISC架构的CPU中通常都设置了较大容量的通用寄存器组。但受指令编码长度限制,单条指令中可用以表示寄存器索引的字段有限。上述列出的RISC指令集中,均采用4位或5位寄存器索引,即同一时刻可以使用的结构寄存器最多为32个。

发明内容

[0005] 本发明针对现有的技术存在的上述问题,提供一种采用RISC架构的CPU系统,本发明所要解决的技术问题是:如何提供一种采用RISC架构的CPU系统,直接支持64个结构寄存器的RISC指令集编码格式。
[0006] 本发明的目的可通过下列技术方案来实现:
[0007] 一种直接支持64个结构寄存器的RISC指令集编码格式,所有指令编码均为32位等长,所述指令编码中包括字段为6位的结构寄存器索引字段Ra、字段为6位的结构寄存器索引字段Rb、字段为6位的结构寄存器索引字段Rc、字段为6位的结构寄存器索引字段Rd、字段为4位的主操作码OPC、字段为4位的功能码FUNC、字段为4位的子功能码SUBF、字段为8位的立即数#b、字段为6位的立即数#c、用以进行地址偏移的立即数偏移字段disp;所述主操作码OPC、功能码FUNC、子功能码SUBF均为4位二进制编码,所述主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令;所述结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd均为6位二进制编码,所述结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd可表示范围为0~63、支持对64个结构寄存器(R0 R63)的直接访问;还包括指令集,所述指令集~包括用以操作数小于等于2的整数操作类指令和浮点操作类指令的简单运算指令格式、用以融合乘加和条件选择操作数等于3的整数操作类指令和浮点操作类指令的复合运算指令格式、用以转移指令的转移指令格式、用以访存指令的存储器指令格式和杂项指令格式。
[0008] 优选的,所述简单运算指令格式包括使用立即数的立即数式简单运算指令格式和不使用立即数的寄存器式简单运算指令格式。
[0009] 优选的,所述复合运算指令格式包括使用立即数的立即数式复合运算指令格式和不使用立即数的寄存器式复合运算指令格式。
[0010] 优选的,所述寄存器式简单运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb和作为目标寄存器编号使用的结构寄存器索引字段Rc。
[0011] 优选的,所述立即数式简单运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、作为目标寄存器编号使用的结构寄存器索引字段Rc和1个8位的立即数#b。
[0012] 优选的,所述寄存器式复合运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc和作为目标寄存器编号使用的结构寄存器索引字段Rd。
[0013] 优选的,所述立即数式复合运算指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、作为目标寄存器编号使用的结构寄存器索引字段Rd和1个6位的立即数#c。
[0014] 优选的,所述转移指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra和21位立即数偏移字段disp,所述转移指令测试结构寄存器索引字段Ra所指定的结构寄存器中的内容,并根据21位立即数偏移字段disp确定跳转目标。
[0015] 优选的,所述存储器指令格式包括作为源操作数寄存器编号使用的结构寄存器索引字段Rb和16位立即数偏移字段disp,所述访存指令将结构寄存器索引字段Rb所指定的结构寄存器中的内容加上16位立即数偏移字段disp作为存储器地址。
[0016] 优选的,所述杂项指令格式包括12位立即数偏移字段disp。
[0017] 本发明中所有指令编码均为32位等长,指令编码中包括字段为6位的结构寄存器索引字段Ra、字段为6位的结构寄存器索引字段Rb、字段为6位的结构寄存器索引字段Rc、字段为6位的结构寄存器索引字段Rd、字段为4位的主操作码OPC、字段为4位的功能码FUNC、字段为4位的子功能码SUBF、字段为8位的立即数#b、字段为6位的立即数#c、用以进行地址偏移的立即数偏移字段disp,主操作码OPC、功能码FUNC、子功能码SUBF均为4位二进制编码,主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令,结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd均为6位二进制编码,可表示范围为0~63,支持对64个结构寄存器(R0 R63)的直接访问,还包括指令集,~指令集包括用以操作数小于等于2的整数操作类指令和浮点操作类指令的简单运算指令格式、用以融合乘加、条件选择的复合运算指令格式、用以转移指令的转移指令格式、用以访存指令的存储器指令格式和杂项指令格式,在不增加指令字长,满足RISC指令集基本功能需求的前提下,降低因结构寄存器数量不足而带来的编程难度,避免小容量结构寄存器与大容量物理寄存器之间进行映射的逻辑开销。

附图说明

[0018] 图1是本发明中立即数式简单运算指令格式、寄存器式简单运算指令格式、立即数式复合运算指令格式、寄存器式复合运算指令格式、转移指令格式、存储器指令格式和杂项指令格式的结构示意图

具体实施方式

[0019] 以下是本发明的具体实施例并结合附图,对本发明的技术方案作进一步的描述,但本发明并不限于这些实施例。
[0020] 请参阅图1,本实施例中的直接支持64个结构寄存器的RISC指令集编码格式,所有指令编码均为32位等长,指令编码中包括字段为6位的结构寄存器索引字段Ra、字段为6位的结构寄存器索引字段Rb、字段为6位的结构寄存器索引字段Rc、字段为6位的结构寄存器索引字段Rd、字段为4位的主操作码OPC、字段为4位的功能码FUNC、字段为4位的子功能码SUBF、字段为8位的立即数#b、字段为6位的立即数#c、用以进行地址偏移的立即数偏移字段disp;主操作码OPC、功能码FUNC、子功能码SUBF均为4位二进制编码,主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令;结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd均为6位二进制编码,所述结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd可表示范围为0~63、支持对64个结构寄存器(R0 R63)的直接访问;还包括指令集,指令集包~括用以操作数小于等于2的整数操作类指令和浮点操作类指令的简单运算指令格式、用以融合乘加和条件选择操作数等于3的整数操作类指令和浮点操作类指令的复合运算指令格式、用以转移指令的转移指令格式、用以访存指令的存储器指令格式和杂项指令格式。
[0021] 此处,所有指令编码均为32位等长,指令编码中包括字段为6位的结构寄存器索引字段Ra、字段为6位的结构寄存器索引字段Rb、字段为6位的结构寄存器索引字段Rc、字段为6位的结构寄存器索引字段Rd、字段为4位的主操作码OPC、字段为4位的功能码FUNC、字段为
4位的子功能码SUBF、字段为8位的立即数#b、字段为6位的立即数#c、用以进行地址偏移的立即数偏移字段disp,主操作码OPC、功能码FUNC、子功能码SUBF均为4位二进制编码,主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令,结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc、结构寄存器索引字段Rd均为6位二进制编码,可表示范围为0~63,支持对64个结构寄存器(R0 R63)的直接访问,还包括指令集,指令~
集包括用以操作数小于等于2的整数操作类指令和浮点操作类指令的简单运算指令格式、用以融合乘加、条件选择的复合运算指令格式、用以转移指令的转移指令格式、用以访存指令的存储器指令格式和杂项指令格式,在不增加指令字长,满足RISC指令集基本功能需求的前提下,降低因结构寄存器数量不足而带来的编程难度,避免小容量结构寄存器与大容量物理寄存器之间进行映射的逻辑开销。
[0022] 主操作码OPC、功能码FUNC、子功能码SUBF用以区分不同功能的指令,三个码都是指令编码的一部分,取不同的值表示不同的指令。比如OPC.FUNC.SUBF为 4.5.6、4.5.7、3.2.1代表了三条不同功能的指令。
[0023] 简单运算指令格式可以包括使用立即数的立即数式简单运算指令格式和不使用立即数的寄存器式简单运算指令格式。
[0024] 复合运算指令格式可以包括使用立即数的立即数式复合运算指令格式和不使用立即数的寄存器式复合运算指令格式。
[0025] 寄存器式简单运算指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb和作为目标寄存器编号使用的结构寄存器索引字段Rc。寄存器式简单运算指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0026] 立即数式简单运算指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、作为目标寄存器编号使用的结构寄存器索引字段Rc和1个8位的立即数#b。立即数式简单运算指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0027] 寄存器式复合运算指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、结构寄存器索引字段Rc和作为目标寄存器编号使用的结构寄存器索引字段Rd。寄存器式复合运算指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0028] 立即数式复合运算指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra、结构寄存器索引字段Rb、作为目标寄存器编号使用的结构寄存器索引字段Rd和1个6位的立即数#c。立即数式简单运算指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0029] 转移指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Ra和21位立即数偏移字段disp,转移指令测试结构寄存器索引字段Ra所指定的结构寄存器中的内容,并根据21位立即数偏移字段disp确定跳转目标。转移指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0030] 存储器指令格式可以包括作为源操作数寄存器编号使用的结构寄存器索引字段Rb和16位立即数偏移字段disp,访存指令将结构寄存器索引字段Rb所指定的结构寄存器中的内容加上16位立即数偏移字段disp作为存储器地址。存储器指令格式在指令长度固定为32的前提下,采用6位结构寄存器号进行编址。
[0031] 杂项指令格式可以包括12位立即数偏移字段disp。杂项指令格式主要用以与具体处理器实现相关的特殊指令,部分指令使用12位立即数偏移字段disp进一步区分不同的功能。
[0032] 本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。