CN111459546B - 一种实现操作数位宽可变的装置及方法 - Google Patents
一种实现操作数位宽可变的装置及方法 Download PDFInfo
- Publication number
- CN111459546B CN111459546B CN202010237793.4A CN202010237793A CN111459546B CN 111459546 B CN111459546 B CN 111459546B CN 202010237793 A CN202010237793 A CN 202010237793A CN 111459546 B CN111459546 B CN 111459546B
- Authority
- CN
- China
- Prior art keywords
- operand
- address
- instruction
- general register
- decoding module
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims description 15
- 238000000605 extraction Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30018—Bit or string instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明公开一种实现操作数位宽可变的装置及方法,包括:译码模块、地址解码模块、通用寄存器、操作数生成模块,其中,所述译码模块,用于指令译码;所述通用寄存器,用于暂存数据与传送数据;所述地址解码模块,用于判断所述译码模块中的指令是否需要操作数扩展,若是则解码出通用寄存器的地址索引值,来解码出真实的通用寄存器的地址索引;若否则将译码模块的结果直接送至通用寄存器;操作数生成模块,用于将所述地址解码模块解码出的真实的通用寄存器地址索引取出来进行处理,处理后的结果送至通用寄存器。本发明在不更改处理器原有的架构的基础上,实现了操作数处理位宽的倍增,使得处理能力提高,有效节约资源。
Description
技术领域
本发明涉及指令集技术领域,尤其涉及一种实现操作数位宽可变的装置及方法。
背景技术
当今社会是一个数字信息的时代,人工智能,区块链,物联网等行业是当今社会和未来社会发展的必然趋势,而支撑这些行业发展的基础就是数字信息的处理的芯片,目前传统的处理器或许已经无法满足诸如媒体、通信、人脸识别、数字加密等快速和大量的数字信号处理,单单依靠目前传统的处理器几乎无法满足这么多的应用场景需求。流行的开源处理器RISC-V架构是一个模块化的架构,可以扩展增加新的指令或指令流程,用来提高处理性能,完全可以针对上述场景进行指令的扩展,以应对各种各样的需求。
目前开源处理器架构RISC-V内核中支持操作数位宽一般为32位或者64位,但是在RISC-V处理器架构当中,无法在一个32位架构内执行一条操作数宽度超过32位的指令,比如一条64位操作数位宽的指令便无法执行,或者在64架构也无法执行操作数宽度超过64位的指令,在数字信号处理方面,DSP是必不可少的一个指令集,在常见的支持DSP的32位RISC-V处理器中,一般一条SIMD指令一次只能处理4x8bit或者2x16bit的数据宽度的处理方式,无法支持8x8bit或者4x16bit的数据处理器方式,也就是说一个32位RISC-V处理器架构,指令或者扩展指令操作数宽度不超过32位。同理一个64位RISC-V处理器架构,指令和扩展指令操作数宽度不超过64位。
在现有处理器位宽确定的情况下,无法扩展操作数位宽大于处理器架构位宽的指令,现有的技术方案一般是将指令拆分成多个步骤,比如对于上述32位处理器在处理SIMD指令时无法支持8x8bit和4x16bit操作,现有的技术方案是将一条8x8bit SIMD指令拆分成两条4x8bit;将一条4x16bit指令拆分成两条2x16bit指令。同样这种做法也需要两个时钟周期,削减了处理器的处理性能。
发明内容
为了解决上述技术问题,本发明一种实现操作数位宽可变的装置及方法,提出了一种处理器在操作数位宽固定的情况下,简单高效扩展指令操作数位宽的一种装置和方法,本发明以32位RISC-V架构扩展SIMD DSP指令为例但不局限于SIMD DSP指令来通俗详细的介绍该装置和方法。通过该方法和装置,可以在不改变处理器架构的情况下,扩展指令操作数的宽度,并且扩展出的指令操作数处理数据的形式也从原来的4x8bit变成了8x8bit,原来的2x16bit变成了4x16bit,从而达到提升处理器性能的目的。
为了达到上述目的,本发明的技术方案如下:
一种实现操作数位宽可变的装置,包括:译码模块、地址解码模块、通用寄存器、操作数生成模块,其中,
所述译码模块,用于指令译码;
所述通用寄存器,用于暂存数据与传送数据;
所述地址解码模块,用于判断所述译码模块中的指令是否需要操作数扩展,若是则解码出通用寄存器的地址索引值,来解码出真实的通用寄存器的地址索引;若否则将译码模块的结果直接送至通用寄存器;
所述操作数生成模块,用于将所述地址解码模块解码出的真实的通用寄存器地址索引取出来进行处理,处理后的结果送至通用寄存器。
优选地,所述地址解码模块包括选择器,所述选择器用于判断所述译码中的指令是否需要操作数扩展。
优选地,所述的译码模块包括信息提取单元和指令处理单元,所述的信息提取单元用于提取单元负责提取指令的源操作数和目的操作数;所述指令处理单元用于根据选择器的判断结果,发出控制信号。
优选地,所述控制信号包括SIMD DSP扩展指令,还包括当前操作数位宽无法执行而需要增加操作数位宽的普通指令。
一种实现操作数位宽可变的方法,通过上述任意一项所述的一种实现操作数位宽可变的装置实现,包括以下步骤:
指令译码;
判断指令是否需要进行操作数扩展,若是则使用译码后的操作数地址索引进行地址解码映射,将映射后的地址送至通用寄存器;若否则将译码后的操作数地址送至通用寄存器。
优选地,所述映射的方式为将译码后的操作数地址作为起始地址,在起始地址上向后顺序选出一个地址位置作为真实通用寄存器的地址。
优选地,所述起始地址为不超过通用寄存器的个数的偶数。
基于上述技术方案,本发明的有益效果是:
(1)、本发明是在不更改处理器原有的架构的基础上,实现了操作数处理位宽的倍增,同时处理能力也得到了倍数增加的效果;
(2)、本发明给处理器扩展诸如SIMD DSP这样的指令提供了一个很好的指令融合的方式,原有的指令通过本发明的方式可以由原来的两条4x8bit处理方式的指令,现在融合成一条8x8bit处理方式的指令,原来的两条2x16bit的处理方式的指令,现在融合成一条4x16bit的处理方式的指令,原来的两条32bit的处理方式的指令,现在融合成一条64bit的处理方式的指令;
(3)、本发明在不改变处理器架构的情况下,进行操作数位扩展,能够充分的利用现有的资源,达到资源的有效利用。
附图说明
图1为本发明一种实现操作数位宽可变的方法流程框图;
图2为本发明实施例一中ADD8指令的执行流程图;
图3为本发明实施例二中ADD16指令的执行流程图;
图4为本发明实施例三中ADD64指令的执行流程图;
图5为所有操作数地址的取值及映射后对应的真实通用寄存器号;
图中,各附图标记为:
1-译码模块;2-地址解码模块,3-通用寄存器;4-操作数生成模块。
具体实施方式
为了达到上述目的,提供的技术方案如下:
本发明基于RISC-V处理器架构提供了一种将操作数绑定扩展的装置,如图1所示为该装置执行流程框图,该装置主要由译码模块1、地址解码模块2、通用寄存器3、操作数生成模块4这几部分组成,其中译码模块2是将指令进行译码,该模块本身就是来判断该指令的功能,但同时还会给出一个控制信号,来指示当前的指令是否需要进行操作数扩展;地址解码模块2是通过译码模块1译码出的通用寄存器3地址索引值,来解码出真实的通用寄存器3的地址索引;操作数生成模块4是将通过地址解码模块2解码出的通用寄存器3地址索引所对应的通用寄存器3值取出来进行整合,最终生成一个符合扩展指令位宽的操作数;通用寄存器3,就是处理器中的通用寄存器3,不同处理器的不同架构通用寄存器的3个数和宽度都有可能不同,本发明是以基于RISC-V处理器架构的32个通用寄存器3为例做进一步说明。
上述方案中,译码模块1是用来进行指令的译码,识别出该指令的操作码,操作数地址,目的操作数地址,这是所有处理器译码模块1都需要做的事,但是本发明中该译码模块1还会送出一个控制信号,用来指示当前的指令是否需要进行操作数的扩展,这些指令不只是SIMD DSP扩展指令,还包括当前操作数位宽无法执行而需要增加操作数位宽的普通指令。
上述方案中,地址解码模块2是用一种地址捆绑的形式来得到真实的通用寄存器的操作地址,现在以32位的RISC-V处理器的架构为例进行说明,在32位的RISC-V处理器中,操作数一次可以处理32比特位的数据。根据RISC-V架构规定通用寄存器个数为32个。下面用一个指令扩展的场景进行说明。现在要对上述RISC-V处理器的指令进行扩展,现在假设需要扩展一条指令,该指令需要处理一个操作数位宽为64比特的数据,并且假设这条指令有两个源操作数一个目的操作数,源操作数和目的操作数的位宽都是64位,现在指令中有rs1,rs2,rd代表两个源操作数和一个目的操作数的地址,现在假定第一源操作数(rs1)的地址索引为a,第二源操作数(rs2)的地址索引为b,目的操作数(rd)的地址索引c,这里面a,b,c的取值范围为32以内的偶数,那么地址解码模块就会根据两个源操作数和一个目的操作数的起始地址a,b,c进行地址映射,映射方式是分别以a,b,c为起始地址开始向后顺序选出1个地址作为真实通用寄存器的地址,那么第一源操作数的通用寄存器的真实地址就为a,a+1;同理第二源操作数的通用寄存器的真实地址就为b,b+1;目的操作数的通用寄存器地址为c,c+1;这里需要注意的是,其中起始地址是不能超出通用寄存器的个数的偶数,上面是以RISC-V处理器架构的通用寄存器只有32个为例,所以现在的起始地址索引为不能超过31的偶数,在RISC-V处理器架构中通用寄存器个数不只有32个,所以本发明不局限于RISC-V处理器只有32个通用寄存器,当通用寄存器个数为其他的个数时,本发明地址解码模块同样适用。
上述方案中地址解码模块2内还有一个选择器,该选择器是用来选择译码之后的指令是否需要进行操作数的扩展,该选择器会接受译码模块中得到的个个源操作数和目的操作数的地址,然后通过译码模块给出的控制信号来判断这些源操作数地址和目的操作数地址是否会经过地址解码模块,如果判断该指令是需要进行操作数扩展,那么所有源操作数地址和目的操作数地址都会经过地址解码模块进行地址映射,最终送到通用寄存器当中,如果判断该指令不需要进行操作数扩展,那么所有接受到的源操作数地址和目的操作数地址就是真实的通用寄存器地址,不需要走地址解码模块,直接送给通用寄存器。
上述方案中,操作数生成模块4是在得到地址解码模块2算出的真实操作地址之后,将得到的操作数地址对应的通用寄存器取出来,最终拼接成一个2x32比特的操作数,这个拼接成的操作数供指令使用,指令给出一个操作数地址,实际上是操作了一组绑定的通用寄存器3。并且这些绑定的通用寄存器3是并行访问,还是以一条指令由第一源操作数、第二源操作数、目的操作数为例,第一源操作数的最终结果为{通用寄存器[a+1];通用寄存器[a]},第二源操作数的最终结果为{通用寄存器[b+1],通用寄存器[b]};目的操作数的最终结果为{通用寄存器[c+1],通用寄存器[c]}。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一
本发明以SIMD DSP指令为例,对该指令在RISC-V 32位处理器架构下进行指令处理宽度的扩展和融合,做一具体说明。
首先以一条“ADD8 rd,rs1,rs2”指令为例,该指令是一条8x8bit位加法操作,该指令是需要在32位RISC-V架构下一次处理8对8位加法操作,其算法如下rd.B[x]=rs1.B[x]+rs2.B[x](x=7..0),其中rd是一个64位的目的操作数,rs1是一个64位源操作数索引,rs2是一个64位源操作数索引,B表示一个8位的数,B[0]、B[1]、B[2]、B[3]、B[4]、B[5]、B[6]、B[7]对应操作数的0-7,8-15,16-23,24-31,32-39,40-47,48-55,56-63比特位,该指令是想要在32位的架构下,在一个周期内同时完成8组8位加法操作。
如图2所示,为本发明实施例ADD8指令的执行流程图,在指令经过译码之后,首先会判断该指令是不是SIMD DSP扩展指令ADD8,如果不是SIMD DSP扩展指令ADD8那么就直接使用译码之后真实的操作数地址索引,如果是SIMD DSP扩展指令ADD16,那么取出译码之后的源操作数地址索引进行地址解码映射,现在假设第一源操作数(rs1)的值为0,第二源操作数(rs2)的值为2,目的操作数(rd)的值为4,那么经过地址解码之后,第一源操作数(rs1)映射的通用寄存器的地址索引为0,1;第二源操作数(rs2)映射的通用寄存器地址索引为2,3;目的操作数(rd)映射的通用寄存器地址为4,5。取出第一源操作数(rs1)所映射的通用寄存器0和1的值,这两个寄存器都是32位宽度,0号寄存器的低0-7比特位值分发给rs1.B[0],8-15比特位的值分发给rs1.B[1],16-23比特位的值分发给rs1.B[2],24-31比特位的值分发给rs1.B[3],同理,1号寄存器的低0-7比特位值分发给rs1.B[4],8-15比特位的值分发给rs1.B[5],16-23比特位的值分发给rs1.B[6],24-31比特位的值分发给rs1.B[7];与rs1类似的rs2也是相同的操作,2号寄存器的低0-7比特位值分发给rs2.B[0],8-15比特位的值分发给rs2.B[1],16-23比特位的值分发给rs2.B[2],24-31比特位的值分发给rs2.B[3],同理,3号寄存器的低0-7比特位值分发给rs2.B[4],8-15比特位的值分发给rs2.B[5],16-23比特位的值分发给rs2.B[6],24-31比特位的值分发给rs2.B[7],最后将计算得到的结果rd.B[x]按顺序写回到rd所映射的通用寄存器中,4号寄存器对应rd.B[0]、rd.B[1]、B[2]、rd.B[3],5号寄存器对应rd.B[4]、rd.B[5]、rd.B[6]、rd.B[7]。这样就完成了一次ADD8指令的计算,同时算出8组8bit加法的结果,如此32位RISC-V处理器架构的处理器便可以执行一条64位的指令,实现了指令操作数的扩展,同时增加了运算能力。
实施例二
下面以一条ADD16 rd,rs1,rs2指令为例,该指令是一条16位加法操作,该指令是需要在32位RISC-V架构下一次处理4对16位加法操作,其算法如下rd.H[x]=rs1.H[x]+rs2.H[x](x=3..0),其中rd是一个64位的目的操作数,rs1是一个64位源操作数,rs2是一个64位源操作数,H表示一个16位的数,H[0]、H[1]、H[2]、H[3]对应操作数的0-15,16-31,32-47,48-63比特位,该指令是想要在32位的架构下,在一个周期内完成。
如图3所示,为本发明实施例ADD16指令的执行流程图,在指令经过译码之后,首先会判断该指令是不是SIMD DSP扩展指令ADD16,如果不是SIMD DSP扩展指令ADD16那么就直接使用译码之后真实的操作数地址,如果是SIMD DSP扩展指令ADD16,那么取出译码之后的源操作数地址索引进行地址解码映射,现在假设第一源操作数(rs1)的值为0,第二源操作数(rs2)的值为2,目的操作数(rd)的值为4,那么经过地址解码之后,第一源操作数(rs1)映射的通用寄存器的地址索引为0,1;第二源操作数(rs2)映射的通用寄存器地址索引为2,3;目的操作数(rd)映射的通用寄存器地址为4,5。取出第一源操作数(rs1)所映射的通用寄存器0和1的值,这两个寄存器都是32位宽度,0号寄存器的低16比特位值分发给rs1.H[0],高16比特位的值分发给rs1.H[1],同理1号寄存器的低16比特位的值分发给rs1.H[2],高16比特位的值分发给rs1.H[3],与rs1类似的rs2也是相同的操作最后将计算得到的结果rd.H[x]按顺序写回到rd所映射的通用寄存器中,4号寄存器对应rd.H[0]、rd.H[1],5号寄存器对应rd.H[2]、rd.H[3]。这样就完成了一次ADD16指令的计算。这样一个32位RISC-V处理器架构的处理器便可以执行一条64位的指令,实现了指令操作数的扩展,同时增加了运算能力。
实施例三
如图4所示,为本发明实施例ADD64指令的执行流程图,ADD64 rd,rs1,rs2;该指令是一条普通的64位加法指令,当然在32位RISC-V处理器中进行单周期运算执行是无法完成的,该指令的算法如下,rd.D=rs1.D+rs2.D,其中D的位宽为64位。在指令经过译码之后,首先会判断该指令是不是指令ADD64,如果不是ADD64那么就直接使用译码之后真实的操作数地址索引,如果是ADD64指令,那么取出译码之后的操作数地址索引进行地址解码映射,现在假设第一源操作数(rs1)的值为0,源操操作数2(rs2)的值为2,目的操作数(rd)的值为4,那么经过地址解码之后,第一源操作数(rs1)映射的通用寄存器的地址索引为0,1;第二源操作数(rs2)映射的通用寄存器地址索引为2,3;目的操作数(rd)映射的通用寄存器地址为4,5。取出第一源操作数(rs1)所映射的通用寄存器0和1的值,这两个寄存器都是32位宽度,0号寄存器的值分发给rs1.D的低32位,1号寄存器的值分发给rs1.D的高32位。同理,2号寄存器的值分发给rs2.D的低32位,3号寄存器的值分发给rs2.D的高32位。而写回是将rd.D低32位写到4号寄存器,rd.D高32位写到5号寄存器中。
面以RISC-V处理器有32个通用寄存器为例,详细描述地址索引映射的过程,如图5所示为所有操作数地址的取值及映射后对应的真实通用寄存器号。由图5可以看出,所有的操作数地址的取值都只能是偶数,而通用寄存器中奇数的寄存器和相邻的较小的偶数寄存器绑定。
以上所述仅为本发明所公开的一种实现操作数位宽可变的装置及方法的优选实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书内容所作的等效结构或等效流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (5)
1.一种实现操作数位宽可变的装置,其特征在于,包括:译码模块、通用寄存器、地址解码模块、操作数生成模块,其中,
所述译码模块,用于指令译码;
所述通用寄存器,用于暂存数据与传送数据;
所述地址解码模块,用于判断所述译码模块中的指令是否需要操作数扩展,若是则解码映射出通用寄存器的地址索引值,来解码出真实的通用寄存器的地址索引;若否则将译码模块的结果直接送至通用寄存器;所述映射的方式为将译码后的操作数地址作为起始地址,在起始地址上向后顺序选出一个地址位置作为真实通用寄存器的地址;所述起始地址为不超过通用寄存器的个数的偶数;
所述操作数生成模块,用于将所述地址解码模块解码出的真实的通用寄存器地址索引取出来进行处理,处理后的结果送至通用寄存器。
2.根据权利要求1所述的一种实现操作数位宽可变的装置,其特征在于,所述地址解码模块包括选择器,所述选择器用于判断所述译码中的指令是否需要操作数扩展。
3.根据权利要求2所述的一种实现操作数位宽可变的装置,其特征在于,所述的译码模块包括信息提取单元和指令处理单元,所述的信息提取单元用于提取单元负责提取指令的源操作数和目的操作数;所述指令处理单元用于根据选择器的判断结果,发出控制信号。
4.根据权利要求3所述的一种实现操作数位宽可变的装置,其特征在于,所述控制信号包括SIMDDSP扩展指令,还包括当前操作数位宽无法执行而需要增加操作数位宽的普通指令。
5.一种实现操作数位宽可变的方法,其特征在于,通过权利要求1至4任意一项所述的一种实现操作数位宽可变的装置实现,包括以下步骤:
指令译码;
判断指令是否需要进行操作数扩展,若是则使用译码后的操作数地址索引进行地址解码映射,将映射后的地址送至通用寄存器;若否则将译码后的操作数地址送至通用寄存器;所述映射的方式为将译码后的操作数地址作为起始地址,在起始地址上向后顺序选出一个地址位置作为真实通用寄存器的地址,所述起始地址为不超过通用寄存器的个数的偶数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237793.4A CN111459546B (zh) | 2020-03-30 | 2020-03-30 | 一种实现操作数位宽可变的装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010237793.4A CN111459546B (zh) | 2020-03-30 | 2020-03-30 | 一种实现操作数位宽可变的装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111459546A CN111459546A (zh) | 2020-07-28 |
CN111459546B true CN111459546B (zh) | 2023-04-18 |
Family
ID=71681621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010237793.4A Active CN111459546B (zh) | 2020-03-30 | 2020-03-30 | 一种实现操作数位宽可变的装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111459546B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112256330B (zh) * | 2020-11-03 | 2021-11-09 | 中国人民解放军军事科学院国防科技创新研究院 | 用于加速数字信号处理的risc-v指令集扩展方法 |
CN112764810B (zh) * | 2021-01-20 | 2022-09-20 | 重庆邮电大学 | 一种应用于处理器的寄存器控制simd指令扩展方法 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452428A (en) * | 1988-01-18 | 1995-09-19 | Kabushiki Kaisha Toshiba | Processor having different operand source information temporarily stored in plural holding registers to avoid using microprogram ROM capacity for such information |
CN1226325A (zh) * | 1996-09-23 | 1999-08-18 | Arm有限公司 | 数据处理系统中的输入操作数控制 |
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
CN1508674A (zh) * | 2002-12-18 | 2004-06-30 | ض� | 提供可变宽度的至少六路加法指令的方法及相应装置 |
CN1595389A (zh) * | 1998-03-31 | 2005-03-16 | 英特尔公司 | 执行部分宽度压缩数据指令 |
CN101933005A (zh) * | 2008-02-15 | 2010-12-29 | 飞思卡尔半导体公司 | 外围模块寄存器访问方法和装置 |
CN104137059A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 多寄存器分散指令 |
CN104331267A (zh) * | 2013-07-22 | 2015-02-04 | 国际商业机器公司 | 具有可扩展寄存器寻址的用于指令集架构 |
CN106897097A (zh) * | 2017-02-27 | 2017-06-27 | 深圳市风云实业有限公司 | 一种用epld加载多片fpga的方法及系统 |
CN107688854A (zh) * | 2016-08-05 | 2018-02-13 | 北京中科寒武纪科技有限公司 | 一种能支持不同位宽运算数据的运算单元、方法及装置 |
CN108304217A (zh) * | 2018-03-09 | 2018-07-20 | 中国科学院计算技术研究所 | 将长位宽操作数指令转换为短位宽操作数指令的方法 |
CN109298886A (zh) * | 2017-07-25 | 2019-02-01 | 合肥君正科技有限公司 | Simd指令执行方法、装置及处理器 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110083569A (zh) * | 2019-04-30 | 2019-08-02 | 芯来智融半导体科技(上海)有限公司 | 一种适用于risc-v架构的协处理器接口 |
-
2020
- 2020-03-30 CN CN202010237793.4A patent/CN111459546B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5452428A (en) * | 1988-01-18 | 1995-09-19 | Kabushiki Kaisha Toshiba | Processor having different operand source information temporarily stored in plural holding registers to avoid using microprogram ROM capacity for such information |
CN1226325A (zh) * | 1996-09-23 | 1999-08-18 | Arm有限公司 | 数据处理系统中的输入操作数控制 |
CN1595389A (zh) * | 1998-03-31 | 2005-03-16 | 英特尔公司 | 执行部分宽度压缩数据指令 |
CN1303501A (zh) * | 1998-05-27 | 2001-07-11 | Arm有限公司 | 混合向量/标量寄存器文件 |
CN1508674A (zh) * | 2002-12-18 | 2004-06-30 | ض� | 提供可变宽度的至少六路加法指令的方法及相应装置 |
CN101933005A (zh) * | 2008-02-15 | 2010-12-29 | 飞思卡尔半导体公司 | 外围模块寄存器访问方法和装置 |
CN104137059A (zh) * | 2011-12-23 | 2014-11-05 | 英特尔公司 | 多寄存器分散指令 |
CN104331267A (zh) * | 2013-07-22 | 2015-02-04 | 国际商业机器公司 | 具有可扩展寄存器寻址的用于指令集架构 |
CN107688854A (zh) * | 2016-08-05 | 2018-02-13 | 北京中科寒武纪科技有限公司 | 一种能支持不同位宽运算数据的运算单元、方法及装置 |
CN106897097A (zh) * | 2017-02-27 | 2017-06-27 | 深圳市风云实业有限公司 | 一种用epld加载多片fpga的方法及系统 |
CN109298886A (zh) * | 2017-07-25 | 2019-02-01 | 合肥君正科技有限公司 | Simd指令执行方法、装置及处理器 |
CN108304217A (zh) * | 2018-03-09 | 2018-07-20 | 中国科学院计算技术研究所 | 将长位宽操作数指令转换为短位宽操作数指令的方法 |
CN109918130A (zh) * | 2019-01-24 | 2019-06-21 | 中山大学 | 一种具有快速数据旁路结构的四级流水线risc-v处理器 |
CN110083569A (zh) * | 2019-04-30 | 2019-08-02 | 芯来智融半导体科技(上海)有限公司 | 一种适用于risc-v架构的协处理器接口 |
Non-Patent Citations (3)
Title |
---|
Jongwon Lee.Reducing instruction bit-width for low-power VLIW architectures.《ACM Transactions on Design Automation of Electronic Systems》.2013,18(02),全文. * |
朱雨雯 ; 张红旗 ; 包义保 ; 杜学绘 ; .反馈移位寄存器在通用可重构处理器上的配置生成与优化设计.《计算机应用研究》.2016,(06),全文. * |
李明纬 ; 黄世震 ; .应用分布式算法在FPGA平台实现FIR低通滤波器.《中国集成电路》.2007,(02),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN111459546A (zh) | 2020-07-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6968445B2 (en) | Multithreaded processor with efficient processing for convergence device applications | |
RU2656730C2 (ru) | Процессоры, способы, системы и команды для сложения трех операндов-источников с плавающей запятой | |
US20170364476A1 (en) | Instruction and logic for performing a dot-product operation | |
KR100831472B1 (ko) | 데이터 셔플링을 위한 방법 및 장치 | |
KR101334860B1 (ko) | 고속 회전 연산들을 수행하기 위한 시스템 및 방법 | |
US20190114169A1 (en) | Vector multiplication with accumulation in large register space | |
CN111459546B (zh) | 一种实现操作数位宽可变的装置及方法 | |
CN108415882B (zh) | 利用操作数基础系统转换和再转换的向量乘法 | |
CN108108190B (zh) | 一种计算方法及相关产品 | |
CN111563281A (zh) | 一种支持多种加解密算法的处理器及其实现方法 | |
CN110909882A (zh) | 用于执行水平铺块操作的系统和方法 | |
CN113703832A (zh) | 一种立即数转移指令的执行方法、装置及介质 | |
CN108959180B (zh) | 一种数据处理方法及系统 | |
CN110058884B (zh) | 用于计算型存储指令集运算的优化方法、系统及存储介质 | |
KR101449732B1 (ko) | 계층적인 매우 긴 명령 패킷들을 프로세싱하는 시스템 및 방법 | |
CN114528248A (zh) | 阵列重构方法、装置、设备及存储介质 | |
CN112181496A (zh) | 一种基于开源指令集处理器的ai扩展指令执行方法、装置、存储介质及电子设备 | |
US8572147B2 (en) | Method for implementing a bit-reversed increment in a data processing system | |
JP2000284962A (ja) | マイクロコンピュータ | |
CN117634569A (zh) | 一种基于risc-v扩展指令的量化神经网络加速处理器 | |
CN117389622A (zh) | 向量寄存器数据处理方法、装置和电子设备 | |
JP3088956B2 (ja) | 演算装置 | |
KR100233289B1 (ko) | 레지스터 파일의 데이터 디펜던시 체크를 위한 장치 | |
CN113050994A (zh) | 用于512位操作的系统、装置和方法 | |
JPH117440A (ja) | プロセッサ、コンパイラ、積和演算方法及び記録媒体 |
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 |