CN112256330B - 用于加速数字信号处理的risc-v指令集扩展方法 - Google Patents

用于加速数字信号处理的risc-v指令集扩展方法 Download PDF

Info

Publication number
CN112256330B
CN112256330B CN202011209184.4A CN202011209184A CN112256330B CN 112256330 B CN112256330 B CN 112256330B CN 202011209184 A CN202011209184 A CN 202011209184A CN 112256330 B CN112256330 B CN 112256330B
Authority
CN
China
Prior art keywords
instruction
digital signal
signal processing
risc
type
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.)
Active
Application number
CN202011209184.4A
Other languages
English (en)
Other versions
CN112256330A (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.)
National Defense Technology Innovation Institute PLA Academy of Military Science
Original Assignee
National Defense Technology Innovation Institute PLA Academy of Military Science
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 National Defense Technology Innovation Institute PLA Academy of Military Science filed Critical National Defense Technology Innovation Institute PLA Academy of Military Science
Priority to CN202011209184.4A priority Critical patent/CN112256330B/zh
Publication of CN112256330A publication Critical patent/CN112256330A/zh
Application granted granted Critical
Publication of CN112256330B publication Critical patent/CN112256330B/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/30181Instruction operation extension or modification
    • 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/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3824Operand accessing

Abstract

本发明公开了一种用于加速数字信号处理的RISC‑V指令集扩展方法,用于构建用于数字信号处理的RISC‑V指令集,包括:根据数字信号处理的算法类型,确定用于数字信号处理的扩展指令的操作类型集合;根据处理器架构,设置扩展指令的操作数类型;根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式;对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建扩展指令子集;根据RISC‑V指令集的指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC‑V指令集。本发明的方法能够克服现有RISC‑V指令集应用于数字信号处理时,存在的运算类型欠缺、数据宽度灵活性和数据结果精度不足问题,提高处理器在进行数字信号处理时的性能。

Description

用于加速数字信号处理的RISC-V指令集扩展方法
技术领域
本发明涉及数字信号处理技术领域,具体涉及一种用于加速数字信号处理的RISC-V指令集扩展方法。
背景技术
指令集是处理器底层硬件与运行于其上的软件之间的桥梁和接口,处理器通过从内存中读取指令,并进行译码和执行,完成复杂的运算和控制任务。每个处理器都有特定的指令集与其进行对应,指令集的设计直接影响到处理器的性能。目前的处理器设计中,除了需要为基本运算和控制设定相应的指令集外,通常还需要设计面向特定应用领域的扩展指令集。面向特定应用领域的指令集子系统是将复杂的运算控制流程简化为相应的操作,并由处理器根据解码的信息直接运行,能够避免通过基本指令集产生复杂控制运算流程。
RISC-V指令集是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),是一个完全开放的、标准的、能够支持各种应用的全新指令集。RISC-V指令集包含一个非常小的基础指令集和一系列可选的指令集。其中,基础指令集为整数指令集RV32I与RV64I,分别提供32位与64位的地址空间;其他的可选指令集包括乘除运算、原子操作、浮点运算、压缩指令、位运算、事务存储、以及向量计算等。RISC-V指令集的特点在于规整的指令编码和模块化的指令子集,同时指令集也预留了大量的指令编码空间,可以高效实现用户的自定义扩展。用户通过灵活选择不同的模块组合或者进行扩展,可以构建适用于任何一个领域的微处理器,比如云计算、存储、并行计算、虚拟化/容器、低功耗嵌入式和数字信号处理等领域。
现有的数字信号处理(Digital Signal Processing,DSP)通常具有如下的运算特征:在数字滤波、傅里叶变换、向量矩阵等典型DSP应用场景中,都有大量的乘累加操作;对于定点数据,针对不同的应用场景,数据宽度通常为8bit、16bit或32bit;数字信号处理通常还支持饱和运算和舍入运算,以保证数据精度。然而,由于目前RISC-V指令集没有点积和乘累加等数字信号处理的运算类型的指令,并且主要针对数据位宽为32bit或64bit的数据进行处理,同时也缺少饱和操作、舍入操作等精度有效性处理操作的指令支持,导致现有的RISC-V指令集应用于数字信号处理时存在着较大的局限性。
发明内容
为解决上述现有技术中存在的技术问题,本发明提供一种用于加速数字信号处理的RISC-V指令集扩展方法。
为此,本发明公开了一种用于加速数字信号处理的RISC-V指令集扩展方法,所述方法用于构建用于数字信号处理的RISC-V指令集,包括:
根据数字信号处理的算法类型,确定用于数字信号处理的扩展指令的操作类型集合;
根据处理器架构,设置扩展指令的操作数类型;
根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式;
对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建扩展指令子集;
根据RISC-V指令集的指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC-V指令集。
在一些可选的实施方式中,根据数字信号处理的算法类型,确定数字信号处理的各个核心算法的运算类型,对所有运算类型进行归类和整合,生成用于数字信号处理的扩展指令的操作类型集合。
在一些可选的实施方式中,数字信号处理的各个核心算法的运算类型采用BDTI-DSP基准测试中的12类运算。
在一些可选的实施方式中,根据处理器架构,将扩展指令的操作数类型分为有符号数和无符号数两类,并采用SIMD方式,将操作数设置为8×8bit、4×16bit和2×32bit三种位宽类型。
在一些可选的实施方式中,根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式为可选择的饱和操作和舍入操作两种数据处理模式。
在一些可选的实施方式中,对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集和单指令单数据指令子集三个扩展指令子集。
在一些可选的实施方式中,根据RISC-V指令集的指令格式,采用以下步骤对扩展指令子集进行编码:
选择不同的custom指令子集,对扩展指令子集的opcode区间进行编码,以区分不同的扩展指令子集;
根据每一个扩展指令子集的操作类型,在RISC-V指令集的funct7区间中设计编码方式,以保证覆盖扩展指令子集的所有操作类型;
根据扩展指令子集的操作数类型和数据处理模式,在RISC-V指令集的funct7区间和funct3区间选择特定的位进行编码表示。
本发明技术方案的主要优点如下:
本发明的用于加速数字信号处理的RISC-V指令集扩展方法能够构建用于数字信号处理的RISC-V指令集,克服现有的RISC-V指令集应用于数字信号处理时,存在的运算类型欠缺、数据宽度灵活性不足和数据结果精度不足等问题,显著提高处理器在进行数字信号处理时的性能。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的用于加速数字信号处理的RISC-V指令集扩展方法的流程图;
图2为本发明一实施例的RISC-V指令集中寄存器-寄存器类型指令的指令格式示意图;
图3为本发明一实施例的RISC-V指令集中寄存器-立即数类型指令的指令格式示意图;
图4为本发明一实施例的用于加速数字信号处理的RISC-V指令集扩展方法中扩展指令子集的编码过程的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明具体实施例及相应的附图对本发明技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图,详细说明本发明一实施例提供的技术方案。
如图1所示,本发明一实施例提供了一种用于加速数字信号处理的RISC-V指令集扩展方法,该方法用于构建用于数字信号处理的RISC-V指令集,包括以下步骤:
根据数字信号处理的算法类型,确定用于数字信号处理的扩展指令的操作类型集合;
根据处理器架构,设置扩展指令的操作数类型;
根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式;
对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建扩展指令子集;
根据RISC-V指令集的指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC-V指令集。
以下对本发明一实施例提供的用于加速数字信号处理的RISC-V指令集扩展方法中的各个步骤进行具体说明。
步骤1,根据数字信号处理的算法类型,确定用于数字信号处理的扩展指令的操作类型集合;
本发明一实施例中,根据数字信号处理的算法类型,确定数字信号处理的各个核心算法的运算类型,对所有运算类型进行归类和整合,生成用于数字信号处理的扩展指令的操作类型集合,操作类型集合也为运算类型集合。
具体地,本发明一实施例中,数字信号处理的各个核心算法的运算类型采用BDTI-DSP基准测试中的12类运算。
BDTI-DSP基准测试指的是现有的由BDTI(Berkeley Design Technology Int.)提出的一种DSP基准测试,该BDTI-DSP基准测试是一种介于过于简单的MIPS(Microprocessorwithout interlocked piped stages)类指标和过于复杂的完全基于应用的指标之间的评价方法,该BDTI-DSP基准测试是一种DSP性能衡量标准。BDTI-DSP基准测试覆盖12类数字信号处理运算,这12类运算能够代表数字信号处理中的核心算法的运算类型。
根据BDTI基准测试中的12类运算,对每一类运算涉及的操作进行分析,生成如表1所示的用于数字信号处理的扩展指令的操作类型集合。
表1扩展指令的操作类型集合
加/减 并行加减 交叉加减 平均值
乘法 点积 移位 高/低位打包
比较 乘加/乘减
步骤2,根据处理器架构,设置扩展指令的操作数类型;
根据现有的处理器架构,处理器的通用寄存器的宽度通常为64bit或32bit。为此,本发明一实施例中,针对通用寄存器的宽度为64bit的处理器,将扩展指令的操作数类型分为有符号数和无符号数两类,并采用SIMD方式,将操作数设置为8×8bit、4×16bit和2×32bit三种位宽类型,以在将RISC-V指令集用于数字信号处理时,增加处理器在不同应用场景下的灵活性,提升处理器的数据并行处理能力。同理,针对通用寄存器的宽度为32bit的处理器,可以将扩展指令的操作数类型分为有符号数和无符号数两类,并采用SIMD方式,将操作数设置为4×8bit和2×16bit两种位宽类型。
单指令多数据(Single Instruction Multiple Data,SIMD)是一种实现数据级并行的结构技术,SIMD技术通过在一条单独的指令中对多个数据同时执行多个同样的运算操作,以增加处理器的吞吐量,能够极大地提高在多媒体和各种数字信号处理中广泛应用的向量运算的计算速度。
步骤3,根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式;
由于现有的数字信号处理为了保证数据精度,能够支持和设置饱和运算和舍入运算。为此,本发明一实施例中,根据数字信号处理的精度运算特点,针对不同运算类型,设置扩展指令的数据处理模式为可选择的饱和操作和舍入操作两种数据处理模式。
其中,饱和操作指的是当运算结果超出数据位宽的表示范围时,直接取表示范围的最大值或最小值;舍入操作指的是当运算结果超出数据位宽的表示范围时,采用0舍1入方式对运算结果进行截断。
步骤4,对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建扩展指令子集;
具体地,对操作类型集合、操作数类型和数据处理模式进行组合,构建三个扩展指令子集,三个扩展指令子集分别包括:单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集和单指令单数据指令子集。
本发明一实施例中,基于上述步骤1、步骤2和步骤3确定的操作类型集合、操作数类型和数据处理模式的具体内容,构建如表2所示的单指令多数据的寄存器-寄存器类型(SIMD-R)指令子集、如表3所示的单指令多数据的寄存器-立即数类型(SIMD-I)指令子集、以及如表4所示的单指令单数据(Non-SIMD)指令子集。
表2单指令多数据:寄存器-寄存器类型(SIMD-R)
加法 减法 并行加减 交叉加减
乘法 点积 算术右移 逻辑右移
逻辑左移 最小值 最大值 比较(小于)
比较(等于) 平均值 高位打包 低位打包
表3单指令多数据:寄存器-立即数类型(SIMD-I)
算术右移 逻辑右移 逻辑左移 绝对值
表4单指令单数据(Non-SIMD)
乘加 乘减 32位乘加 32位乘减
步骤5,根据RISC-V指令集的指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC-V指令集;
具体地,根据RISC-V指令集中寄存器-寄存器类型指令格式和寄存器-立即数类型指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC-V指令集。
参见图2,寄存器-寄存器类型指令的指令格式的长度为32位,包括6个字段:第6~0位的opcode区间为操作码字段,用于定义指令子集;第11~7位的rd区间为目的寄存器字段,用于表示目的寄存器号;第14~12位的funct3区间为功能编码字段,用于定义具体指令;第19~15位的rs1区间为第一个源寄存器字段,用于表示第一个源寄存器号;第24~20位的rs2区间为第二个源寄存器字段,用于表示第二个源寄存器号;第31~25位的funct7区间为功能编码字段,用于定义具体指令。
参见图3,寄存器-立即数类型指令的指令格式的长度为32位,包括5个字段:第6~0位的opcode区间为操作码字段,用于定义指令子集;第11~7位的rd区间为目的寄存器字段,用于表示目的寄存器号;第14~12位的funct3区间为功能编码字段,用于定义具体指令;第19~15位的rs1区间为源寄存器字段,用于表示源寄存器号;第31~20位的imm区间为立即数字段,用于表示立即数的值。
其中,opcode区间定义了4组custom指令子集,分别为custom-0、custom-1、custom-2、custom-3,可用于进行自定义指令扩展。
本发明一实施例中,通过利用空闲的custom指令子集来实现扩展指令子集的编码。具体地,根据译码流程,按照扩展指令子集在三个粒度上的层次划分,基于RISC-V指令集的编码格式,采用如下步骤对扩展指令子集进行编码:
选择不同的custom指令子集,对扩展指令子集的opcode区间进行编码,以区分不同的扩展指令子集;
根据每一个扩展指令子集的操作类型,在RISC-V指令集的funct7区间中设计编码方式,以保证覆盖扩展指令子集的所有操作类型;
根据扩展指令子集的操作数类型和数据处理模式,在RISC-V指令集的funct7区间和funct3区间选择特定的位进行编码表示。
以下基于上述构建的单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集、以及单指令单数据指令子集三个扩展指令子集对扩展指令子集的编码过程进行具体说明。
步骤51,选择不同的custom指令子集,对扩展指令子集的opcode区间进行编码,以区分不同的扩展指令子集;
如图4所示,为三个扩展指令子集分别选择custom指令子集,作为各自的opcode区间编码;对于单指令多数据的寄存器-寄存器类型指令子集,选择custom-0,即opcode为0001011;对于单指令多数据的寄存器-立即数类型指令子集,选择custom-1,即opcode为0101011;对于单指令单数据指令子集,选择custom-2,即opcode为1011011。如此,形成的三个扩展指令子集,与RISC-V指令集中通过opcode区间已经定义的其他指令子集不会产生冲突,同时还可以复用原有的opcode译码结构,避免芯片译码段和指令发射段复杂度增加。
步骤52,根据每一个扩展指令子集的操作类型,在RISC-V指令集中的funct7区间中设计编码方式,以保证覆盖扩展指令子集的所有操作类型;
具体地,由于单指令多数据的寄存器-寄存器类型指令子集中包含16个操作类型,RISC-V指令集中寄存器-寄存器类型指令的指令格式中,funct7区间为功能编码字段,用于定义具体指令;为此,使用该funct7区间的高5位,即funct7[6:2],区分单指令多数据的寄存器-寄存器类型指令子集中的16个操作类型,占用32个编码空间中的16个,其余16个留用,可用于满足后续扩展需求。
由于单指令多数据的寄存器-立即数类型指令子集中包含4个操作类型,RISC-V指令集中寄存器-立即数类型指令的指令格式中,可以使用imm区间的高7位作为功能编码字段,用于定义具体指令;为此,使用该imm区间的高5位,即imm[11:7],区分单指令多数据的寄存器-立即数类型指令子集中的4个操作类型,占用32个编码空间中的4个,其余28个留用,可用于满足后续扩展需求。
由于单指令单数据指令子集中包含4个操作类型,均为寄存器-寄存器类型,RISC-V指令集中寄存器-寄存器类型指令的指令格式中,规定rs1区间和rs2区间分别用于表示第一个源寄存器号和第二个源寄存器号,单指令单数据指令子集为三个源操作数;为此,使用funct7区间的高5位,即funct7[6:2],用于表示第三个源寄存器号,使用funct7区间的低2位,即funct7[1:0],区分单指令单数据指令子集中的4个操作类型,占用4个编码空间中的4个。
步骤53,根据扩展指令子集的操作数类型和数据处理模式,在RISC-V指令集中的funct7区间和funct3区间选择特定的位进行编码表示。
由于单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集、以及单指令单数据指令子集三个扩展指令子集的操作数包含有符号数或者无符号数两种类型;为此,使用RISC-V指令集的指令格式中的funct3区间的最高位,即funct3[2],用于区分有符号数或者无符号数。
由于单指令多数据的寄存器-寄存器类型指令子集和单指令多数据的寄存器-立即数类型指令子集两个扩展指令子集的运算结果可以进行饱和处理,即数据处理模式包括饱和操作;为此,使用RISC-V指令集的指令格式中的funct3区间的中间位,即funct3[1],用于选择是否进行饱和操作。
由于单指令多数据的寄存器-寄存器类型指令子集和单指令多数据的寄存器-立即数类型指令子集两个扩展指令子集的运算结果可以进行舍入处理,即数据处理模式包括舍入操作;为此,使用RISC-V指令集的指令格式中的funct3区间的中间位,即funct3[0],用于选择是否进行舍入操作。
由于单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集两个扩展指令子集的SIMD模式包含8×8bit、4×16bit、2×32bit共三种;为此,对于单指令多数据的寄存器-寄存器类型指令子集,使用RISC-V指令集的指令格式中的funct7区间的低2位,即funct7[1:0],用于区分3种向量模式,占用4个编码空间中的3个;对于单指令多数据的寄存器-立即数类型指令子集,使用RISC-V指令集的指令格式中的imm区间的第6、7位,即imm[6:5],用于区分3种向量模式,占用4个编码空间中的3个。
可见,本发明一实施例提供的用于加速数字信号处理的RISC-V指令集扩展方法至少能够取得以下有益效果:
通过在RISC-V指令集中扩展增加典型运算指令,并引入SIMD模式,能够增加处理器的数据吞吐量,提升处理器在进行数字信号处理时的性能;
通过设置8×8bit、4×16bit和2×32bit三种位宽类型,使数据位宽覆盖8bit、16bit或32bit,能够提高扩展后的RISC-V指令集用于数字信号处理时的数据位宽的选择灵活性,以满足不同应用场景下的数据精度需求;
扩展指令子集的编码方式与RISC-V指令集保持一致,能够避免引入新的指令格式,可复用原有的指令译码、指令发射结构以及寄存器资源,有效地避免芯片复杂度的提升。
本发明一实施例提供的用于加速数字信号处理的RISC-V指令集扩展方法能够构建用于数字信号处理的RISC-V指令集,克服现有的RISC-V指令集应用于数字信号处理时,存在的运算类型欠缺、数据宽度灵活性不足和数据结果精度不足等问题,显著提高处理器在进行数字信号处理时的性能。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。此外,本文中“前”、“后”、“左”、“右”、“上”、“下”均以附图中表示的放置状态为参照。
最后应说明的是:以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (3)

1.一种用于加速数字信号处理的RISC-V指令集扩展方法,其特征在于,所述方法用于构建用于数字信号处理的RISC-V指令集,包括:
根据数字信号处理的算法类型,确定用于数字信号处理的扩展指令的操作类型集合;
根据处理器架构,设置扩展指令的操作数类型;
其中,根据处理器架构,将扩展指令的操作数类型分为有符号数和无符号数两类,并采用SIMD方式,将操作数设置为8×8bit、4×16bit和2×32bit三种位宽类型;
根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式;
其中,根据数字信号处理的精度运算特点,设置扩展指令的数据处理模式为可选择的饱和操作和舍入操作两种数据处理模式;
对扩展指令的操作类型集合、操作数类型和数据处理模式进行组合,构建单指令多数据的寄存器-寄存器类型指令子集、单指令多数据的寄存器-立即数类型指令子集和单指令单数据指令子集三个扩展指令子集;
根据RISC-V指令集的指令格式,对扩展指令子集进行编码,构建用于数字信号处理的RISC-V指令集;
其中,根据RISC-V指令集的指令格式,采用以下步骤对扩展指令子集进行编码:
选择不同的custom指令子集,对扩展指令子集的opcode区间进行编码,以区分不同的扩展指令子集,其中,对于单指令多数据的寄存器-寄存器类型指令子集,选择custom-0,对于单指令多数据的寄存器-立即数类型指令子集,选择custom-1,对于单指令单数据指令子集,选择custom-2;
根据每一个扩展指令子集的操作类型,在RISC-V指令集的funct7区间中设计编码方式,以保证覆盖扩展指令子集的所有操作类型;
根据扩展指令子集的操作数类型和数据处理模式,在RISC-V指令集的funct7区间和funct3区间选择特定的位进行编码表示。
2.根据权利要求1所述的用于加速数字信号处理的RISC-V指令集扩展方法,其特征在于,根据数字信号处理的算法类型,确定数字信号处理的各个核心算法的运算类型,对所有运算类型进行归类和整合,生成用于数字信号处理的扩展指令的操作类型集合。
3.根据权利要求2所述的用于加速数字信号处理的RISC-V指令集扩展方法,其特征在于,数字信号处理的各个核心算法的运算类型采用BDTI-DSP基准测试中的12类运算。
CN202011209184.4A 2020-11-03 2020-11-03 用于加速数字信号处理的risc-v指令集扩展方法 Active CN112256330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011209184.4A CN112256330B (zh) 2020-11-03 2020-11-03 用于加速数字信号处理的risc-v指令集扩展方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011209184.4A CN112256330B (zh) 2020-11-03 2020-11-03 用于加速数字信号处理的risc-v指令集扩展方法

Publications (2)

Publication Number Publication Date
CN112256330A CN112256330A (zh) 2021-01-22
CN112256330B true CN112256330B (zh) 2021-11-09

Family

ID=74268798

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011209184.4A Active CN112256330B (zh) 2020-11-03 2020-11-03 用于加速数字信号处理的risc-v指令集扩展方法

Country Status (1)

Country Link
CN (1) CN112256330B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112947999B (zh) * 2021-03-10 2022-06-28 超睿科技(上海)有限公司 一种精简指令集计算机指令功能扩展的方法及装置
CN114721720B (zh) * 2022-06-07 2022-09-02 中科亿海微电子科技(苏州)有限公司 一种指令集扩展方法、装置、电子设备及存储介质

Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101162423A (zh) * 2007-11-20 2008-04-16 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
CN103207773A (zh) * 2006-08-18 2013-07-17 高通股份有限公司 使用标量/向量指令处理数据的系统和方法
CN103793208A (zh) * 2014-01-22 2014-05-14 芯原微电子(上海)有限公司 矢量dsp 处理器和协处理器协同运作的数据处理系统
CN108885660A (zh) * 2015-12-17 2018-11-23 查尔斯斯塔克德雷珀实验室有限公司 用于元数据处理的技术
CN109144573A (zh) * 2018-08-16 2019-01-04 胡振波 基于risc-v指令集的二级流水线架构
CN109189475A (zh) * 2018-08-16 2019-01-11 算丰科技(北京)有限公司 可编程人工智能加速器指令集的构建方法
CN109857460A (zh) * 2019-02-20 2019-06-07 南京华捷艾米软件科技有限公司 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法
CN111090465A (zh) * 2019-12-19 2020-05-01 四川长虹电器股份有限公司 一种rv32ic指令集的译码系统及其译码方法
CN111143038A (zh) * 2019-12-31 2020-05-12 江苏金智科技股份有限公司 Risc-v架构微处理器内核信息模型建模及生成方法
CN111324383A (zh) * 2020-02-28 2020-06-23 西安微电子技术研究所 一种基于risc-v指令扩展的安全协处理器结构
CN111400986A (zh) * 2020-02-19 2020-07-10 西安智多晶微电子有限公司 一种集成电路计算设备及计算处理系统
CN111459546A (zh) * 2020-03-30 2020-07-28 芯来智融半导体科技(上海)有限公司 一种实现操作数位宽可变的装置及方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6446195B1 (en) * 2000-01-31 2002-09-03 Intel Corporation Dyadic operations instruction processor with configurable functional blocks
CN111507336B (zh) * 2020-03-18 2022-11-18 杭州电子科技大学 基于risc-v的卷积神经网络的文字识别方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103207773A (zh) * 2006-08-18 2013-07-17 高通股份有限公司 使用标量/向量指令处理数据的系统和方法
CN101162423A (zh) * 2007-11-20 2008-04-16 浙江大学 一种支持多模式的媒体增强流水线乘法单元设计方法
CN103793208A (zh) * 2014-01-22 2014-05-14 芯原微电子(上海)有限公司 矢量dsp 处理器和协处理器协同运作的数据处理系统
CN108885660A (zh) * 2015-12-17 2018-11-23 查尔斯斯塔克德雷珀实验室有限公司 用于元数据处理的技术
CN109144573A (zh) * 2018-08-16 2019-01-04 胡振波 基于risc-v指令集的二级流水线架构
CN109189475A (zh) * 2018-08-16 2019-01-11 算丰科技(北京)有限公司 可编程人工智能加速器指令集的构建方法
CN110018848A (zh) * 2018-09-29 2019-07-16 安凯(广州)微电子技术有限公司 一种基于risc-v的混合混算系统及方法
CN109857460A (zh) * 2019-02-20 2019-06-07 南京华捷艾米软件科技有限公司 基于risc-v架构的矩阵卷积计算方法、接口、协处理器及系统
CN111090465A (zh) * 2019-12-19 2020-05-01 四川长虹电器股份有限公司 一种rv32ic指令集的译码系统及其译码方法
CN111143038A (zh) * 2019-12-31 2020-05-12 江苏金智科技股份有限公司 Risc-v架构微处理器内核信息模型建模及生成方法
CN111400986A (zh) * 2020-02-19 2020-07-10 西安智多晶微电子有限公司 一种集成电路计算设备及计算处理系统
CN111324383A (zh) * 2020-02-28 2020-06-23 西安微电子技术研究所 一种基于risc-v指令扩展的安全协处理器结构
CN111459546A (zh) * 2020-03-30 2020-07-28 芯来智融半导体科技(上海)有限公司 一种实现操作数位宽可变的装置及方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"一种支持同时多线程的VLIW DSP架构 ";沈钲;《电子学报》;20100215;第38卷(第2期);第352-358页 *
"基于AHB总线的RISC-V微处理器设计与实现";郝振和等;《计算机工程与应用》;20200204(第20期);第52-58页 *

Also Published As

Publication number Publication date
CN112256330A (zh) 2021-01-22

Similar Documents

Publication Publication Date Title
CN110036368B (zh) 用于执行算术运算以累加浮点数的装置及方法
KR102270020B1 (ko) 디지털 신호 프로세싱 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서
RU2263947C2 (ru) Целочисленное умножение высокого порядка с округлением и сдвигом в архитектуре с одним потоком команд и множеством потоков данных
US8224883B2 (en) Packed add-subtract operation in a microprocessor
RU2275677C2 (ru) Способ, устройство и команда для выполнения знаковой операции умножения
US10678540B2 (en) Arithmetic operation with shift
CN103294446B (zh) 一种定点乘累加器
KR100705507B1 (ko) 확장가능한 프로세서 아키텍처에 진보된 명령어들을부가하는 방법 및 장치
CN112256330B (zh) 用于加速数字信号处理的risc-v指令集扩展方法
CN103221916A (zh) 执行乘乘累加指令
CN107533460B (zh) 紧缩有限冲激响应(fir)滤波处理器、方法、系统和指令
CN102576302B (zh) 微处理器及用于微处理器上增强精确度乘积和计算的方法
CN110909883A (zh) 用于执行指定三元片逻辑操作的指令的系统和方法
US7013321B2 (en) Methods and apparatus for performing parallel integer multiply accumulate operations
CN111124495B (zh) 一种数据处理方法、解码电路及处理器
US7219117B2 (en) Methods and systems for computing floating-point intervals
CN110914800B (zh) 基于寄存器的复数处理
Hasan et al. Runtime partial reconfiguration for embedded vector processors
CN112130899A (zh) 一种堆栈计算机
CN116610362B (zh) 一种处理器指令集译码方法、系统、设备和存储介质
Zang et al. Issue mechanism for embedded simultaneous multithreading processor
CN115373744A (zh) 基于risc-v的拓展vm指令集编码方法
De Massas et al. Experiments around SPARC Leon-2 for MPEG encoding
CN117708475A (zh) 一种基于rvv1.0扩展的复数序列fft蝶形运算方法
CN116991481A (zh) 一种运算指令的执行方法、装置以及介质

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