CN111090465A - 一种rv32ic指令集的译码系统及其译码方法 - Google Patents

一种rv32ic指令集的译码系统及其译码方法 Download PDF

Info

Publication number
CN111090465A
CN111090465A CN201911317893.1A CN201911317893A CN111090465A CN 111090465 A CN111090465 A CN 111090465A CN 201911317893 A CN201911317893 A CN 201911317893A CN 111090465 A CN111090465 A CN 111090465A
Authority
CN
China
Prior art keywords
instruction
bit
unit
decoding
risc
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
Application number
CN201911317893.1A
Other languages
English (en)
Other versions
CN111090465B (zh
Inventor
陶磊
姜志强
李想
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan Changhong Electric Co Ltd
Original Assignee
Sichuan Changhong Electric Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sichuan Changhong Electric Co Ltd filed Critical Sichuan Changhong Electric Co Ltd
Priority to CN201911317893.1A priority Critical patent/CN111090465B/zh
Publication of CN111090465A publication Critical patent/CN111090465A/zh
Application granted granted Critical
Publication of CN111090465B publication Critical patent/CN111090465B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30025Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy 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

本发明公开了一种RV32IC指令集的译码系统,包括RV32I指令集单元,包含32位I类型RISC‑V指令的编码信息;RV32C指令集单元,包含16位压缩RISC‑V指令的编码信息;32位指令重建单元,用于将16位RISC‑V压缩指令转化为对应的32位RISC‑V指令;还包括32位指令拆分单元、控制与数据生成单元和选择器,系统针对RV32IC指令集设计出最少的运算单元并加以复用,高效编码运算控制信号,由此大大减小逻辑的面积,从而从根本上降低了译码的逻辑复杂性以及有效减少译码逻辑单元数,为低功耗低面积的RISC‑V处理器设计提供了一种高效的译码系统和方法。

Description

一种RV32IC指令集的译码系统及其译码方法
技术领域
本发明涉及处理器技术领域,具体的说,是一种RV32IC指令集的译码系统及其译码方法。
背景技术
RISC-V指令集是由2010年加州大学伯克利分校提出的一种开源指令集。32位ARM指令集格式的条件码cond完全对齐。32位RISC-V指令集格式的操作码opcode完全对齐,且功能位funct3也在相同的比特位上。16位RISC-V指令集格式的操作码op完全对齐,且功能位funct3也在相同的比特位上。
RISC-V指令集较ARM指令集具有更加规整的指令格式。如何对RISC-V指令进行快速译码并高效编码运算处理的控制信号以及操作数据是设计低功耗、低面积的RISC-V处理器的一个关键。传统的译码方式是直接全译,即每一条指令对应着自己的全译码逻辑,尚未对一些共有的逻辑单元进行复用。因此,随着指令数的增加,译码逻辑面积也近是呈线性增加,导致功耗也跟随着增加。此外,译码产生的运算控制信号与运算单元的类型息息相关,较多的运算单元意味着越大的逻辑面积,不利于降低芯片的功耗。
发明内容
本发明的目的在于提供一种RV32IC指令集的译码系统及其译码方法,用于解决现有技术中编码方式的逻辑复杂度高、逻辑面积大,从而功耗非常高的问题。
本发明通过下述技术方案解决上述问题:
一种RV32IC指令集的译码系统,包括
RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;
RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;
32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;
32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;
控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;
选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连。
优选地,所述控制与数据生成单元之后连接有运算单元。
优选地,所述运算单元包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元,根据指令类型进行运算类型的选择。
优选地,所述加法运算单元适用于加法指令、减法指令、相等比较指令和小于比较指令;异或运算单元可以适用于异或指令;或运算单元可以使用于或运算指令;与运算单元可以适用于与运算指令;带符号右移运算单元可以适用于左移运算指令、右移运算指令。
还包括一种RV32IC指令集的译码方法,适用于上述编码系统,所述方法包括如下步骤:
步骤1:系统接收输入的RV32IC指令,并根据该指令的低两比特位进行判断,若为“11”则跳转到步骤4,否则跳转到步骤2;
步骤2:根据op位即低两比特位以及funct3位和/或funct4位快速译出16位指令,跳转至步骤3;
步骤3:将16为指令转换为对应的32位指令,然后跳转至步骤4;
步骤4:根据RV32I指令集的编码对其inst[6:2]位,即opcode[6:2]位进行判断,然后依据funct3位或funct7位译出该32位指令。
优选地,所述方法还包括步骤5:对控制与数据生成单元依据指令信息进行编码运算控制信号、非运算控制信号以及操作数处理。
本发明与现有技术相比,具有以下优点及有益效果:
(1)本发明将16位指令转为32位指令,统一为32位指令格式,降低32位指令拆分以及控制与数据生成的逻辑复杂度;
(2)本发明针对RV32IC指令集设计出最少的运算单元并加以复用,高效编码运算控制信号,由此大大减小逻辑的面积,从而从根本上降低了译码的逻辑复杂性以及有效减少译码逻辑单元数,为低功耗低面积的RISC-V处理器设计提供了一种高效的译码方法。
(3)本发明针对32位指令提出了详细的逐层次的译码流程以及相应的译码系统,很好的解决现有技术中译码的逻辑面积大的问题。
附图说明
图1为本发明的RV32IC指令集的译码系统的组成结构及指令流向示意图。
图2为本发明的RV32IC指令集的译码方法的流程示意图。
图3为本发明的32位RISC-V指令集格式图。
具体实施方式
下面结合实施例对本发明作进一步地详细说明,但本发明的实施方式不限于此。
实施例1:
结合附图1所示,一种RV32IC指令集的译码系统,包括
RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;
RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;
32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;
32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;
控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;
选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连,一般采用2选1的选择器即可,附图1中表示为MUX。
本系统后还可设置包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元的运算单元,用于对系统的控制与数据生成单元所输出的指令进行运算,但运算单元的结构并不仅限于此,可以根据实际应用的需要进行运算单元的增减。
系统的具体工作流程如图2所示,具体的,以支持RISC-V的32位I类及32位C类指令集RV32IC为例:
若输入指令为一条RV32I类指令,系统接收后进入如下流程:
step1:判断该指令的inst[1:0],发现是“11”,表明是一条RV32I类指令。
step2:判断inst[6:2]位,依据RV32I类指令集的编码信息进行判断该指令所属RV32I类中的类型。
step3:如果属于RV32I类中的U型或者J型指令,类型可见32位RISC-V指令集格式表,如图3所示,则利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息;如果不属于RV32I类型中的U型或者J型指令,则再次依据指令的funct3或funct7比特位译出该指令,同时利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm,源寄存器地址信息rs1,rs2,以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息。
step4:将上述产生的指令数据信息以及指令控制信息送入控制与数据生成单元,将数据信息进行处理,如将立即数信息处理后得到32位的立即数;同时,根据指令的控制信息,选择对应的运算单元,并编码运算控制信号为使用该运算单元,如减法指令可以选择使用加法器运算单元,编码运算控制信号为使用加法运算单元。非运算操作的控制信号,如读写数据存储器的操作,回写通用寄存器的操作,也应由该指令的含义去指示产生。
若输入指令为一条RV32C类指令,进入如下流程:
step1:判断该指令的inst[1:0],发现不是“11”,表明是一条RV32C类指令。
step2:依据该指令的op位,funct3位或者funct4位直接快速译出该指令。
step3:将该16位压缩指令转为32位指令。
step4:如果属于RV32I类中的U型或者J型指令,同如图3所示,则利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息;如果不属于RV32I类型中的U型或者J型指令,则再依据指令的funct3或funct7比特位译出该指令,同时利用32位指令拆分单元提取出该指令数据信息,包括立即数信息imm,源寄存器地址信息rs1,rs2,以及目标寄存器地址信息rd,同时根据该指令的含义,设置对应的指令控制信息。
step5:将上述产生的指令数据信息以及指令控制信息送入控制与数据生成单元,将数据信息进行处理,如将立即数信息处理后得到32位的立即数;同时,根据指令的控制信息,选择对应的运算单元,并编码运算控制信号为使用该运算单元,如左移指令可以选择使用右移运算单元,编码运算控制信号为使用右移运算单元。非运算操作的控制信号,如读写数据存储器的操作,回写通用寄存器的操作,也应由该指令的含义去指示产生。
尽管这里参照本发明的解释性实施例对本发明进行了描述,上述实施例仅为本发明较佳的实施方式,本发明的实施方式并不受上述实施例的限制,应该理解,本领域技术人员可以设计出很多其他的修改和实施方式,这些修改和实施方式将落在本申请公开的原则范围和精神之内。

Claims (6)

1.一种RV32IC指令集的译码系统,其特征在于:包括
RV32I指令集单元,包含32位I类型RISC-V指令的编码信息;
RV32C指令集单元,包含16位压缩RISC-V指令的编码信息;
32位指令重建单元,用于将16位RISC-V压缩指令转化为对应的32位RISC-V指令;
32位指令拆分单元,用于将32位RISC-V指令进行拆分,提取指令中包含的指令信息;
控制与数据生成单元,用于将32位指令拆分单元提取的指令信息进行控制编码与数据处理,生成控制信号与操作数据;
选择器,其输入端为系统输入入口,同时与32位指令重建单元的输出端相连,用于输入数据和32位指令重建单元输出数据的判断选择,输出端与32位指令拆分单元相连。
2.根据权利要求1所述的RV32IC指令集的译码系统,其特征在于:所述控制与数据生成单元之后连接有运算单元。
3.根据权利要求2所述的RV32IC指令集的译码系统,其特征在于:所述运算单元包括加法运算单元、异或运算单元、或运算单元、与运算单元以及带符号右移运算单元,根据指令类型进行运算类型的选择。
4.根据权利要求2所述的RV32IC指令集的译码系统,其特征在于:所述加法运算单元适用于加法指令、减法指令、相等比较指令和小于比较指令;异或运算单元可以适用于异或指令;或运算单元可以使用于或运算指令;与运算单元可以适用于与运算指令;带符号右移运算单元可以适用于左移运算指令、右移运算指令。
5.一种RV32IC指令集的译码方法,其特征在于,所述方法包括如下步骤:
步骤1:系统接收输入的RV32IC指令,并根据该指令的低两比特位进行判断,若为“11”则跳转到步骤4,否则跳转到步骤2;
步骤2:根据op位即低两比特位以及funct3位和/或funct4位快速译出16位指令,跳转至步骤3;
步骤3:将16位指令转换为对应的32位指令,然后跳转至步骤4;
步骤4:根据RV32I指令集的编码对其inst[6:2]位,即opcode[6:2]位进行判断,然后依据funct3位或funct7位译出该32位指令。
6.根据权利要求5所述的RV32IC指令集的译码方法,其特征在于,所述方法还包括步骤5:对控制与数据生成单元依据指令信息进行编码运算控制信号、非运算控制信号以及操作数处理。
CN201911317893.1A 2019-12-19 2019-12-19 一种rv32ic指令集的译码系统及其译码方法 Active CN111090465B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911317893.1A CN111090465B (zh) 2019-12-19 2019-12-19 一种rv32ic指令集的译码系统及其译码方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911317893.1A CN111090465B (zh) 2019-12-19 2019-12-19 一种rv32ic指令集的译码系统及其译码方法

Publications (2)

Publication Number Publication Date
CN111090465A true CN111090465A (zh) 2020-05-01
CN111090465B CN111090465B (zh) 2022-08-19

Family

ID=70395765

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911317893.1A Active CN111090465B (zh) 2019-12-19 2019-12-19 一种rv32ic指令集的译码系统及其译码方法

Country Status (1)

Country Link
CN (1) CN111090465B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256330A (zh) * 2020-11-03 2021-01-22 中国人民解放军军事科学院国防科技创新研究院 用于加速数字信号处理的risc-v指令集扩展方法

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
CN1147307A (zh) * 1994-05-03 1997-04-09 先进Risc机器有限公司 多指令集的数据处理
TW525087B (en) * 1999-10-01 2003-03-21 Hitachi Ltd Processor architecture for executing two different fixed-length instruction sets
CN101256504A (zh) * 2008-03-17 2008-09-03 中国科学院计算技术研究所 一种支持x86虚拟机的risc处理器装置及方法
US20080256332A1 (en) * 2005-07-01 2008-10-16 Stmicroelectronics Sa Processes and devices for compression and decompression of executable code by a microprocessor with a RISC architecture
CN102436781A (zh) * 2011-11-04 2012-05-02 杭州中天微系统有限公司 基于隐式相关性和隐式旁路的微处理器指令拆分装置
CN104407880A (zh) * 2014-10-27 2015-03-11 杭州中天微系统有限公司 支持硬件非对齐存储访问的risc处理器加载/存储单元
CN105677298A (zh) * 2015-12-30 2016-06-15 李朝波 一种将计算机指令中立即数扩展的方法和装置
CN108780394A (zh) * 2015-12-29 2018-11-09 英特尔公司 用于转换编码格式的硬件装置和方法
CN109918130A (zh) * 2019-01-24 2019-06-21 中山大学 一种具有快速数据旁路结构的四级流水线risc-v处理器
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5574927A (en) * 1994-03-25 1996-11-12 International Meta Systems, Inc. RISC architecture computer configured for emulation of the instruction set of a target computer
CN1147307A (zh) * 1994-05-03 1997-04-09 先进Risc机器有限公司 多指令集的数据处理
TW525087B (en) * 1999-10-01 2003-03-21 Hitachi Ltd Processor architecture for executing two different fixed-length instruction sets
US20050262329A1 (en) * 1999-10-01 2005-11-24 Hitachi, Ltd. Processor architecture for executing two different fixed-length instruction sets
US20080256332A1 (en) * 2005-07-01 2008-10-16 Stmicroelectronics Sa Processes and devices for compression and decompression of executable code by a microprocessor with a RISC architecture
CN101256504A (zh) * 2008-03-17 2008-09-03 中国科学院计算技术研究所 一种支持x86虚拟机的risc处理器装置及方法
CN102436781A (zh) * 2011-11-04 2012-05-02 杭州中天微系统有限公司 基于隐式相关性和隐式旁路的微处理器指令拆分装置
CN104407880A (zh) * 2014-10-27 2015-03-11 杭州中天微系统有限公司 支持硬件非对齐存储访问的risc处理器加载/存储单元
CN108780394A (zh) * 2015-12-29 2018-11-09 英特尔公司 用于转换编码格式的硬件装置和方法
CN105677298A (zh) * 2015-12-30 2016-06-15 李朝波 一种将计算机指令中立即数扩展的方法和装置
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法
CN109918130A (zh) * 2019-01-24 2019-06-21 中山大学 一种具有快速数据旁路结构的四级流水线risc-v处理器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
YAJIE WANG等: ""An Application-Specific Microprocessor for Energy Metering Based on RISC-V", 《IEEE》 *
YAJIE WANG等: "An Application-Specific Microprocessor for Energy Metering Based on RISC-V", 《IEEE》 *
霍佳琦: "抗打印扫描数字水印算法研究与实现", 《中国优秀硕士论文电子期刊网 信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256330A (zh) * 2020-11-03 2021-01-22 中国人民解放军军事科学院国防科技创新研究院 用于加速数字信号处理的risc-v指令集扩展方法
CN112256330B (zh) * 2020-11-03 2021-11-09 中国人民解放军军事科学院国防科技创新研究院 用于加速数字信号处理的risc-v指令集扩展方法

Also Published As

Publication number Publication date
CN111090465B (zh) 2022-08-19

Similar Documents

Publication Publication Date Title
CN108292222B (zh) 用于数据解压缩的硬件装置和方法
US8832166B2 (en) Floating point multiplier circuit with optimized rounding calculation
TWI731868B (zh) 用於使用硬體與軟體之壓縮的系統、方法及裝置
CN102520903B (zh) 支持定浮点可重构的长度可配置的向量最大/最小值网络
CN105264779A (zh) 使用simd指令的数据压缩和解压
KR101584660B1 (ko) 엔트로피 인코딩된 명령 시퀀스의 실행가능한 형태로의 변환 및 스토리지를 위한 방법들 및 장치
KR100991700B1 (ko) 처리 장치, 처리 방법 및 컴퓨터로 판독가능한 기록 매체
US7574583B2 (en) Processing apparatus including dedicated issue slot for loading immediate value, and processing method therefor
CN111090465B (zh) 一种rv32ic指令集的译码系统及其译码方法
CN104156195A (zh) 扩展双精度的80位浮点处理单元在处理器中的集成系统及方法
CN110941450B (zh) 一种risc处理器的指令发射处理电路
Wang et al. Code compression for embedded systems using separated dictionaries
CN101325418B (zh) 一种基于概率查表的哈夫曼快速解码方法
Bonny et al. Huffman-based code compression techniques for embedded processors
CN109558169B (zh) 一种微处理器指令集在线可重构方法
JP5989293B2 (ja) 多重命令語処理装置におけるフィードバック接続の実行時間選択
TW201419140A (zh) 可重新配置的指令編碼方法、執行方法及電子裝置
Bonny et al. Efficient code compression for embedded processors
JPWO2007145319A1 (ja) プロセッサ、および、命令制御方法
JP5122277B2 (ja) データ処理方法、処理装置、多重命令ワードセット生成方法、コンパイラプログラム
TW201319934A (zh) 可重新配置的指令編碼方法及處理器架構
US5765013A (en) Digital signal processor
Bonny et al. Instruction re-encoding facilitating dense embedded code
CN105426161A (zh) 一种power指令集向量协处理器的译码电路
Xianhua et al. Efficient code size reduction without performance loss

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