CN102750133A - 支持simd的32位三发射的数字信号处理器 - Google Patents
支持simd的32位三发射的数字信号处理器 Download PDFInfo
- Publication number
- CN102750133A CN102750133A CN2012102058120A CN201210205812A CN102750133A CN 102750133 A CN102750133 A CN 102750133A CN 2012102058120 A CN2012102058120 A CN 2012102058120A CN 201210205812 A CN201210205812 A CN 201210205812A CN 102750133 A CN102750133 A CN 102750133A
- Authority
- CN
- China
- Prior art keywords
- unit
- data
- instruction
- address
- bit
- 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
Links
Images
Landscapes
- Advance Control (AREA)
Abstract
本发明公开了一种支持SIMD的32位三发射的数字信号处理器。本发明包含3条并行发射的流水线:数据存取流水线、整数运算流水线、向量运算流水线,每条流水线具备独立的译码和执行单元,并支持SIMD操作。本发明主要由程序存储器接口单元、数据存储器接口单元、指令取指单元、流水线控制单元、***总线、数据存取流水线单元、整数运算流水线单元、向量运算流水线单元、数据寄存器、地址寄存器、向量寄存器、协处理器接口单元、浮点运算单元经电路连接组成。本发明支持3条流水线并行执行,提高了DSP的并行处理能力;支持单周期并行执行4组16位的乘加操作,支持5组数据运算和1组数据存取操作同时执行,提升了DSP的数据处理能力。
Description
技术领域
本发明涉及数字信号处理器,具体是一种支持SIMD的32位三发射的DSP。
背景技术
DSP能实时处理数字信号,具备远超通用处理器的数据处理能力,在数据通信、多媒体处理等领域发挥着重要的作用。随着通信技术和多媒体技术的高速发展,对DSP数据处理能力的要求也越来越高。提升DSP数据处理能力的方法主要有提升DSP主频、采用多核构架提升整个电路的处理能力、采用多发射结构提升DSP核的并行处理能力等。目前随着DSP主频越来越高,继续提高的成本和难度也越来越高;而多核架构虽然可以降低对DSP核的要求,但会大大增加整个SOC电路的设计难度。因此在提高主频和采取多核架构之外,多发射结构也越来越普及。本发明采用3发射结构,3条流水线能够并行执行;尤其为了提升乘加处理能力,单独设计了向量处理流水线,该流水线和另两条流水线完全独立执行,主要支持并行的数据运算。
发明内容
本发明的目的是克服现有技术中存在的不足,提高处理器的并行运算能力及乘加运算能力,提供一种支持SIMD的32位三发射的数字信号处理器,是面向多媒体处理和数据通信领域的数字信号处理器。
按照本发明提供的技术方案,所述的支持SIMD的32位三发射的数字信号处理器,包括3条并行发射的流水线:数据存取流水线、整数运算流水线、向量运算流水线,每条流水线具备独立的译码和执行单元,并支持SIMD操作;
所述数据存取流水线,包括存取译码单元、存取控制单元、地址运算单元、地址产生单元;存取译码单元和存取控制单元通过控制信号与地址产生单元和地址运算单元相连,控制地址产生单元和地址运算单元的运算,地址产生单元和地址运算单元通过数据总线与地址寄存器和数据寄存器相连,从地址寄存器和数据寄存器中读取数据进行运算,结果写回地址寄存器或者生成访存地址送到数据存储器接口;存取译码单元对指令取指单元发射过来的存取类指令进行译码;存取控制单元根据存取译码结果控制地址运算单元和地址产生单元的操作;地址运算单元对来自地址寄存器、数据寄存器或立即数的地址数据进行计算,得到的结果保存在地址寄存器中;地址产生单元根据寻址模式等生成访存地址;只有数据存取流水线能对外部存储器进行读写操作,其余两条流水线只对寄存器操作;
所述整数运算流水线,包括ALU译码单元、算术控制单元、位处理单元、算术逻辑单元、协处理器接口单元;ALU译码单元和算术控制单元通过控制信号与算术逻辑单元和位处理单元相连,控制算术逻辑单元和位处理单元的运算,算术逻辑单元和位处理单元通过数据总线与数据寄存器相连,从数据寄存器中读取数据进行处理,并把结果写回数据寄存器中;位处理单元用于执行位操作,包括位***、位提取、位替换和移位操作等;协处理器接口单元负责和协处理器进行数据交流;
所述向量运算流水线,包括乘加译码单元、乘加控制单元、向量运算单元;乘加译码单元和乘加控制单元通过控制信号与向量运算单元相连,控制向量运算单元的运算,向量运算单元通过数据总线与数据寄存器和向量寄存器相连,从数据寄存器或向量寄存器中读取数据进行处理,并把结果写回数据寄存器或向量寄存器中;向量运算单元中包含操作数提取单元、4个16*32的乘法单元、2个64位累加器,主要用于执行并行的乘、乘加、乘加减操作,支持SIMD;
还包括:
指令取指单元,为3条流水线共用的取指单元,用于控制该单元中的程序计数器实现程序的顺序执行和跳转,并对数据冲突做出预测;通过程序存储器接口读入程序数据到指令取指单元的指令缓冲器中,并对指令缓冲器中的指令码进行判断,根据判断结果把32位或16位指令码分别发送到相应的流水线中;
浮点运算单元,作为协处理器,通过协处理器接口单元连接到整数运算流水线;拥有独立的浮点指令集,通过整数运算流水线执行浮点运算,并把处理结果通过整数运算流水线送回数据寄存器;
寄存器文件:包含16个32位地址寄存器、16个32位数据寄存器、16个32位向量寄存器以及特殊功能寄存器;地址寄存器用于地址运算和访存地址生成,数据寄存器用于整数运算和向量运算,向量寄存器用于支持向量运算中的SIMD操作,都支持不同的流水线同时从不同端口并行的读写数据;
程序存储器接口通过地址总线和程序总线与指令取指单元相连,接收指令取指单元发送过来的取指地址,并把指令数据通过程序总线发送给指令取指单元;指令取指单元通过指令总线与存取译码单元、ALU译码单元、乘加译码单元相连,并能够并行发送3条指令到这3个译码单元中;所述数据寄存器、向量寄存器、地址寄存器通过数据总线和数据存储器接口单元相连,通过数据存储器接口和外部数据存储器进行数据交换;流水线控制单元通过流水线控制信号和各执行部件相连,控制各执行部件的执行,并接受各执行部件的反馈。
所述支持SIMD的32位三发射的数字信号处理器具备多媒体处理专用指令和Viterbi解码专用指令,支持16位指令和浮点运算指令,支持定点和浮点运算,其中16位指令为32位指令的子集;具有独立的数据高速缓存和程序高速缓存。
每条流水线具备其专有的指令,在指令的操作码中专门设计两位用于区分这三类指令;在指令取指阶段,指令取指单元对这两位进行预译码来确定指令类别,然后分类发送到相应的流水线。
本发明采用层次化的存储器组织方式,第一级最靠近执行部件的为内部寄存器文件,包括16个32位的地址寄存器、16个32位的数据寄存器、16个32位的向量寄存器;第二级为高速缓存;第三级为数据存储器;两个32位地址寄存器能够组成64位地址寄存器对,两个32位向量寄存器能够组成64位向量寄存器对,两个32位数据寄存器能够组成64位数据寄存器对,4个向量寄存器或数据寄存器能够组成128位数据寄存器组,用于支持SIMD操作。
本发明采用5级流水线结构,分别是取指、译码、执行1、执行2、写回,其中译码和执行部分分别拥有3组独立的部件。
3条流水线共用指令取指单元在译码、执行1、执行2、写回阶段独立并行执行;其中数据存取流水线负责地址运算、存储器存取、无条件跳转,整数运算流水线负责加减操作、逻辑操作、比较操作、移位操作、浮点运算、位操作、条件跳转,向量运算流水线主要负责执行单个或多个并行的乘、乘加、乘加减、乘减加操作。
所述指令取指单元具有指令预译码功能,根据指令预译码结果决定指令发射到数据存取流水线、整数运算流水线或向量运算流水线中;指令取指单元中包含一个16*16位的指令缓冲器,指令取指单元判断指令缓冲器出口处的指令,决定指令发射的位数和条数,最多能同时发射3条32位指令;当指令缓冲器中的数据小于等于128bit时,指令取指单元会通过程序存储器接口读入128位程序数据。
所述向量运算流水线具有独立的指令译码和指令控制单元、独立向量运算单元、专用的指令集;向量运算单元中包括操作数提取单元、4个16*32的乘法单元,两个64位的ACC,专用的指令集中包含SIMD指令,支持并行的乘法、乘加、乘减、乘加减等操作;最多支持并行执行4组16位或2组32位的乘法或乘加、乘减、乘加减操作。
本发明拥有专门用于向量处理流水线的向量处理类指令,向量处理类指令支持对128位数据寄存器组Xn、XVn的操作,用于支持单指令执行4组并行的16位乘加操作;其中Xn是由4个32位数据寄存器组成的数据寄存器组,XVn是由4个32位向量寄存器组成的数据寄存器组。
本发明是一颗面向嵌入式***应用的低功耗、高速度、高性能数字信号处理器,主要应用于无线通信、图像处理、实时控制等嵌入式应用***。本发明采用超标量RSIC指令构架,支持单时钟周期3条指令的并行发射,支持16/32位指令译码,支持单周期4MAC操作,支持丰富的DSP寻址模式,支持SIMD操作,支持浮点运算。
本发明的优点是:本发明是一种支持单指令多数据流(SIMD)和三发射的32位定点/浮点数字信号处理器,它将不同的指令并行发射到相应的执行单元,支持3条流水线并行操作,同时还支持SIMD类的指令。本发明支持3条流水线并行执行,提高了DSP的并行处理能力;增加了独立的向量运算单元,支持单周期并行执行4组16位的乘加操作,加上和向量流水线并行执行的整数运算单元和数据存取单元,本发明能够支持5组数据运算和1组数据存取操作同时执行,提升了DSP的数据处理能力。
附图说明
图1为本发明DSP的基本结构框图。
图2为本发明DSP的多级存储器层次结构图。
图3为本发明DSP的指令取指单元结构图。
图4为本发明DSP的向量运算单元基本框图。
图5为本发明DSP的多端口寄存器文件数据流向图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明。
本发明数字信号处理器采用3发射、5级流水线结构,具备3条并行执行的流水线,每条流水线具备取指、译码、执行1、执行2、写回5级流水。其中取指单元为3条流水线共用,译码和执行部分具备3组独立的部件。
本发明数字信号处理器的指令集中包含16位指令和32位指令,其中16位指令是32位指令的子集。本发明的指令集中除了具备DSP通用指令外,还设计有多媒体处理专用指令、Viterbi解码专用指令、向量处理指令和浮点运算指令。多媒体处理专用指令包括求向量平均值、矩阵运算、字节提取等指令,用于加速多媒体处理;Viterbi解码专用指令包括位交错、位分离、Viterbi追踪返回等指令,用于加速Viterbi解码;向量处理类指令主要用于SIMD操作,支持对128位数据的操作,支持单周期4MAC操作;浮点运算指令用于支持浮点运算。
如图1所示,本发明包含3条并行发射的流水线:数据存取流水线、整数运算流水线、向量运算流水线,每条流水线具备独立的译码和执行单元,并支持SIMD操作。
本发明主要由程序存储器接口单元、数据存储器接口单元、指令取指单元、流水线控制单元、***总线、数据存取流水线单元、整数运算流水线单元、向量运算流水线单元、数据寄存器、地址寄存器、向量寄存器、协处理器接口单元、浮点运算单元经电路连接组成。其中,数据存取流水线单元包含存取译码单元、存取控制单元、地址运算单元、地址产生单元;整数运算流水线单元包含ALU译码单元、算术控制单元、算术逻辑单元、位处理单元;向量运算流水线单元包含乘加译码单元、乘加控制单元、向量运算单元。浮点运算单元作为协处理器经协处理器接口单元连接到整数运算流水线。程序存储器接口单元、数据存储器接口单元是与外部数据交流的接口,其中程序存储器接口中包含可配置的程序高速缓存,数据存储器接口中包含可配置的数据高速缓存。流水线控制单元用于流水线状态管理和异常处理。通用寄存器文件由16个32位地址寄存器、16个32位数据寄存器和16个32位向量寄存器组成,构成了最靠近处理器的第一级存储器,第二级为高速缓存,第三级为数据存储器。
本发明中各模块的连接关系如图1所示。程序存储器接口通过地址总线和程序总线与指令取指单元相连,接收指令取指单元发送过来的取指地址,并把指令数据通过程序总线发送给指令取指单元。指令取指单元通过指令总线与存取译码单元、ALU译码单元、乘加译码单元及其相关指令控制单元相连,并可并行发送3条指令到这3个译码单元中。存取译码单元和存取控制单元通过控制信号与地址产生单元和地址运算单元相连,控制地址产生单元和地址运算单元的运算。地址产生单元和地址运算单元通过数据总线与地址寄存器和数据寄存器相连,从地址寄存器和数据寄存器中读取数据进行运算,结果写回地址寄存器或者生成访存地址送到数据存储器接口。ALU译码单元和算术控制单元通过控制信号与算术逻辑单元和位处理单元相连,控制算术逻辑单元和位处理单元的运算。算术逻辑单元和位处理单元通过数据总线与数据寄存器相连,从数据寄存器中读取数据进行处理,并把结果写回数据寄存器中。乘加译码单元和乘加控制单元通过控制信号与向量运算单元相连,控制向量运算单元的运算。向量运算单元通过数据总线与数据寄存器和向量寄存器相连,从数据寄存器或向量寄存器中读取数据进行处理,并把结果写回数据寄存器或向量寄存器中。数据寄存器、向量寄存器、地址寄存器通过数据总线和数据存储器接口单元相连,通过数据存储器接口和外部数据存储器进行数据交换。流水线控制单元通过流水线控制信号和各执行部件相连,控制各执行部件的执行,并接受各执行部件的反馈。浮点运算单元通过协处理器接口连接到整数运算流水线,通过整数运算流水线读取指令和数据,执行相关操作,并把处理结果通过整数运算流水线送回数据寄存器。
本DSP核通过程序存储器接口从外部存储器中读入指令到指令取指单元的指令缓冲器中,并通过对指令缓冲器出口处指令的预译码确定指令的类型并发送到相应的流水线中,最多可并行发送3条指令。流水线中的译码单元和指令控制单元在接收到取指单元发送过来的指令后,对指令进行译码,产生相关的控制信号,确定操作数的类型和来源,并把操作数送入执行单元。整数运算流水线和向量运算流水线中的执行单元在译码单元产生的控制信号的控制下,对操作数进行计算,生成的结果在写回阶段送入相应的寄存器中。数据存取流水线的执行单元执行地址运算或生成数据存取操作的访存地址,并在写回阶段把地址运算的结果保存到相应的地址寄存器,或者根据生成的访存地址对外部存储器进行数据读写操作。
程序存储器接口是连接外部程序总线和内部指令取指单元的接口,其内部包含一个可配置的程序高速缓存,可以使能或关闭该高速缓存。数据存储器接口是连接内部通用寄存器和外部数据总线的接口,提供数据交流的接口,其内部包含一个可配置的数据高速缓存。
指令取指单元是3条流水线共用的部件,其通过程序存储器接口读入指令,并对指令进行预译码后发送到相应流水线。
数据存取流水线包括存取译码单元、存取控制单元、地址运算单元、地址产生单元;存取译码单元对指令取指单元发射过来的存取类指令进行译码;存取控制单元根据存取译码结果控制地址运算单元和地址产生单元的操作;地址运算单元对来自地址寄存器、数据寄存器或立即数的地址数据进行计算,得到的结果保存在地址寄存器中;地址产生单元根据寻址模式等生成访存地址。数据存取流水线负责地址计算和数据存取工作,执行内部通用寄存器和外部存储器之间的数据交流,同时也负责数据寄存器和地址寄存器之间的数据交流。
整数运算流水线包括ALU译码单元、算术控制单元、位处理单元、算术逻辑单元(ALU)、协处理器接口单元;位处理单元用于执行位操作指令,包括位***、位提取、位替换和移位操作等;协处理器接口单元负责和协处理器进行数据交流。整数运算流水线接收从取指单元发送过来的指令并执行,执行结果写回到数据寄存器中,主要负责加减等算术运算、与或非等逻辑运算、移位等位操作。
向量运算流水线包括乘加译码单元、乘加控制单元、向量运算单元。乘加译码单元对取指单元发送过来的指令进行译码,生成相关控制信号;乘加控制单元根据译码结果控制向量运算单元的运算;向量运算单元中包含操作数提取单元、4个16*32的乘法单元、2个64位累加器(ACC),主要用于执行并行的乘、乘加、乘加减等操作,支持SIMD。向量运算流水线主要负责单指令执行多路并行的运算,最多可支持4组16位的乘加运算并行执行。
流水线控制单元负责生成相应的控制信号,控制各流水线的运行。流水线控制单元接收现阶段各流水线的状态,并对中断、陷阱等作出判断,生成下一阶段各流水线状态,控制各流水线下一阶段的运行。
如图2所示,本发明采用层次化的存储器组织方式,最靠近执行部件的为内部寄存器文件,包括16个32位的地址寄存器、16个32位的数据寄存器、16个32位的向量寄存器;第二级为高速缓存;第三级为数据存储器。本发明的程序存储器接口中包括程序高速缓存,数据存储器接口中包括数据高速缓存,存储器接口可以通过相应配置来决定是否使用高速缓存(CACHE)。本发明的通用寄存器可以组合使用,两个32位地址寄存器能够组成64位地址寄存器对,两个32位向量寄存器能够组成64位向量寄存器对,两个32位数据寄存器能够组成64位数据寄存器对,4个向量寄存器或数据寄存器能够组成128位数据寄存器组,用于支持SIMD操作。
如图3所示,本发明的指令取指单元负责从外部读取指令到指令BUF(缓冲器),并对指令进行预译码后发送到相应流水线中。指令取指单元包括一个256位的指令BUF、预译码单元、取指请求生成单元、取指取消信号生成单元、取指地址生成单元、循环指令处理单元、分支跳转指令处理单元。指令BUF用于保存读入的指令,当指令BUF中的数据低于128位时,取指单元会生成取指请求信号,并读取128位指令数据到指令BUF中。取指请求生成单元根据流水线状态和指令BUF中的数据位数来产生取指请求信号。取指取消信号生成单元根据流水线状态来判断取指活动是否取消,若要取消则生成取指取消信号。循环指令处理单元、分支跳转指令处理单元分别对循环指令、分支跳转指令进行处理,计算出新的PC值。取指地址生成单元根据原PC值和循环指令、分支跳转指令的处理结果,生成下一周期指令取指地址。指令预译码单元包括整数运算指令生成逻辑、向量运算指令生成逻辑、数据存取指令生成逻辑等,主要负责对指令BUF中的低几位进行判断,确定从中读出的指令条数和位数,最多可同时读出3条32位指令,并发送到相应流水线中。
如图4所示,本发明的向量运算单元主要包括数据前推逻辑、操作数提取单元、4个16*32的乘法单元、4级CSA、2个64位ACC。乘加译码单元和乘加控制单元对指令进行译码后生成向量运算单元的控制信号。经过数据前推处理后的操作数送入操作数提取单元中,操作数主要来自数据寄存器、立即数或前一周期的运算结果,指令操作数最多为128bit,来自数据寄存器组Xn或XVn。操作数提取单元根据指令译码的结果对操作数进行提取,并把提取后的操作数送到各个乘法单元和ACC中。如执行一条支持4组16位乘加并行执行的SIMD指令时,操作数提取单元就把输入的64位操作数以16位半字为单位分别送到4个乘法单元中,执行4组并行的16位乘法操作;把输入的128位操作数以32位字为单位分别后送到两个ACC中,执行4组并行的32位加法操作;两个ACC的执行结果经过结果生成逻辑处理后组合生成128位的向量运算结果,写回到128位的数据寄存器组Xn或XVn中。因此向量运算单元能同时支持4组16位乘加并行执行:32+16*16;并把生成的4个32位结果组合成128位数据写回到数据寄存器组。
如图5所示,本发明的通用寄存器文件为多端口的存储体。通用寄存器包括地址寄存器、数据寄存器、向量寄存器,这三组寄存器文件都是多端口的存储体,支持并行的读写操作。三组寄存器都支持和外部存储器的进行数据交流,同时还支持不同的流水线从其中读取数据进行运算。地址寄存器支持数据存取流水线从中读取数据进行地址运算;数据寄存器支持整数运算、向量运算、数据存取三条流水线从中读取数据进行运算;向量寄存器支持向量运算流水线从中读取数据进行运算。
Claims (10)
1. 支持SIMD的32位三发射的数字信号处理器,其特征是:包括3条并行发射的流水线:数据存取流水线、整数运算流水线、向量运算流水线,每条流水线具备独立的译码和执行单元,并支持SIMD操作;
所述数据存取流水线,包括存取译码单元、存取控制单元、地址运算单元、地址产生单元;存取译码单元和存取控制单元通过控制信号与地址产生单元和地址运算单元相连,控制地址产生单元和地址运算单元的运算,地址产生单元和地址运算单元通过数据总线与地址寄存器和数据寄存器相连,从地址寄存器和数据寄存器中读取数据进行运算,结果写回地址寄存器或者生成访存地址送到数据存储器接口;存取译码单元对指令取指单元发射过来的存取类指令进行译码;存取控制单元根据存取译码结果控制地址运算单元和地址产生单元的操作;地址运算单元对来自地址寄存器、数据寄存器或立即数的地址数据进行计算,得到的结果保存在地址寄存器中;地址产生单元根据寻址模式等生成访存地址;只有数据存取流水线能对外部存储器进行读写操作,其余两条流水线只对寄存器操作;
所述整数运算流水线,包括ALU译码单元、算术控制单元、位处理单元、算术逻辑单元、协处理器接口单元;ALU译码单元和算术控制单元通过控制信号与算术逻辑单元和位处理单元相连,控制算术逻辑单元和位处理单元的运算,算术逻辑单元和位处理单元通过数据总线与数据寄存器相连,从数据寄存器中读取数据进行处理,并把结果写回数据寄存器中;位处理单元用于执行位操作,包括位***、位提取、位替换和移位操作等;协处理器接口单元负责和协处理器进行数据交流;
所述向量运算流水线,包括乘加译码单元、乘加控制单元、向量运算单元;乘加译码单元和乘加控制单元通过控制信号与向量运算单元相连,控制向量运算单元的运算,向量运算单元通过数据总线与数据寄存器和向量寄存器相连,从数据寄存器或向量寄存器中读取数据进行处理,并把结果写回数据寄存器或向量寄存器中;向量运算单元中包含操作数提取单元、4个16*32的乘法单元、2个64位累加器,主要用于执行并行的乘、乘加、乘加减操作,支持SIMD;
还包括:
指令取指单元,为3条流水线共用的取指单元,用于控制该单元中的程序计数器实现程序的顺序执行和跳转,并对数据冲突做出预测;通过程序存储器接口读入程序数据到指令取指单元的指令缓冲器中,并对指令缓冲器中的指令码进行判断,根据判断结果把32位或16位指令码分别发送到相应的流水线中;
浮点运算单元,作为协处理器,通过协处理器接口单元连接到整数运算流水线;拥有独立的浮点指令集,通过整数运算流水线执行浮点运算,并把处理结果通过整数运算流水线送回数据寄存器;
寄存器文件:包含16个32位地址寄存器、16个32位数据寄存器、16个32位向量寄存器以及特殊功能寄存器;地址寄存器用于地址运算和访存地址生成,数据寄存器用于整数运算和向量运算,向量寄存器用于支持向量运算中的SIMD操作,都支持不同的流水线同时从不同端口并行的读写数据;
程序存储器接口通过地址总线和程序总线与指令取指单元相连,接收指令取指单元发送过来的取指地址,并把指令数据通过程序总线发送给指令取指单元;指令取指单元通过指令总线与存取译码单元、ALU译码单元、乘加译码单元相连,并能够并行发送3条指令到这3个译码单元中;所述数据寄存器、向量寄存器、地址寄存器通过数据总线和数据存储器接口单元相连,通过数据存储器接口和外部数据存储器进行数据交换;流水线控制单元通过流水线控制信号和各执行部件相连,控制各执行部件的执行,并接受各执行部件的反馈。
2.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,具备多媒体处理专用指令和Viterbi解码专用指令,支持16位指令和浮点运算指令,支持定点和浮点运算,其中16位指令为32位指令的子集。
3.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,具有独立的数据高速缓存和程序高速缓存。
4.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,每条流水线具备其专有的指令,在指令的操作码中专门设计两位用于区分这三类指令;在指令取指阶段,指令取指单元对这两位进行预译码来确定指令类别,然后分类发送到相应的流水线。
5.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,采用层次化的存储器组织方式,第一级最靠近执行部件的为内部寄存器文件,包括16个32位的地址寄存器、16个32位的数据寄存器、16个32位的向量寄存器;第二级为高速缓存;第三级为数据存储器;两个32位地址寄存器能够组成64位地址寄存器对,两个32位向量寄存器能够组成64位向量寄存器对,两个32位数据寄存器能够组成64位数据寄存器对,4个向量寄存器或数据寄存器能够组成128位数据寄存器组,用于支持SIMD操作。
6.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,采用5级流水线结构,分别是取指、译码、执行1、执行2、写回,其中译码和执行部分分别拥有3组独立的部件。
7.如权利要求6所述支持SIMD的32位三发射的数字信号处理器,其特征是,3条流水线共用指令取指单元在译码、执行1、执行2、写回阶段独立并行执行;其中数据存取流水线负责地址运算、存储器存取、无条件跳转,整数运算流水线负责加减操作、逻辑操作、比较操作、移位操作、浮点运算、位操作、条件跳转,向量运算流水线主要负责执行单个或多个并行的乘、乘加、乘加减、乘减加操作。
8.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,所述指令取指单元具有指令预译码功能,根据指令预译码结果决定指令发射到数据存取流水线、整数运算流水线或向量运算流水线中;指令取指单元中包含一个16*16位的指令缓冲器,指令取指单元判断指令缓冲器出口处的指令,决定指令发射的位数和条数,最多能同时发射3条32位指令;当指令缓冲器中的数据小于等于128bit时,指令取指单元会通过程序存储器接口读入128位程序数据。
9.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,所述向量运算流水线具有独立的指令译码和指令控制单元、独立向量运算单元、专用的指令集;向量运算单元中包括操作数提取单元、4个16*32的乘法单元,两个64位的ACC,专用的指令集中包含SIMD指令,支持并行的乘法、乘加、乘减、乘加减等操作;最多支持并行执行4组16位或2组32位的乘法或乘加、乘减、乘加减操作。
10.如权利要求1所述支持SIMD的32位三发射的数字信号处理器,其特征是,拥有专门用于向量处理流水线的向量处理类指令,向量处理类指令支持对128位数据寄存器组Xn、XVn的操作,用于支持单指令执行4组并行的16位乘加操作;其中Xn是由4个32位数据寄存器组成的数据寄存器组,XVn是由4个32位向量寄存器组成的数据寄存器组。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210205812.0A CN102750133B (zh) | 2012-06-20 | 2012-06-20 | 支持simd的32位三发射的数字信号处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210205812.0A CN102750133B (zh) | 2012-06-20 | 2012-06-20 | 支持simd的32位三发射的数字信号处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750133A true CN102750133A (zh) | 2012-10-24 |
CN102750133B CN102750133B (zh) | 2014-07-30 |
Family
ID=47030356
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210205812.0A Active CN102750133B (zh) | 2012-06-20 | 2012-06-20 | 支持simd的32位三发射的数字信号处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102750133B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218346A (zh) * | 2012-11-13 | 2013-07-24 | 长沙景嘉微电子股份有限公司 | 一种应用于射频通信接收机中的数字信号处理器 |
CN104699458A (zh) * | 2015-03-30 | 2015-06-10 | 哈尔滨工业大学 | 定点向量处理器及其向量数据访存控制方法 |
CN105426161A (zh) * | 2015-11-12 | 2016-03-23 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN106991073A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于向量运算的数据读写调度器及保留站 |
WO2017185395A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN108139886A (zh) * | 2015-12-04 | 2018-06-08 | 谷歌有限责任公司 | 用于图像处理器的多功能执行通道 |
CN108228236A (zh) * | 2017-12-06 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持流水的高效指令发射处理电路 |
WO2019047281A1 (zh) * | 2017-09-07 | 2019-03-14 | 中国科学院微电子研究所 | 面向比特粒度的信息处理*** |
CN111580866A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111656319A (zh) * | 2017-12-22 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 利用特定数检测的多流水线架构 |
CN111651201A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量合并运算的装置和方法 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111913746A (zh) * | 2020-08-31 | 2020-11-10 | 中国人民解放军国防科技大学 | 一种低开销嵌入式处理器设计方法 |
CN112099762A (zh) * | 2020-09-10 | 2020-12-18 | 上海交通大学 | 快速实现sm2密码算法的协处理***及方法 |
CN112230995A (zh) * | 2020-10-13 | 2021-01-15 | 广东省新一代通信与网络创新研究院 | 一种指令的生成方法、装置以及电子设备 |
WO2022141321A1 (zh) * | 2020-12-30 | 2022-07-07 | 深圳市大疆创新科技有限公司 | Dsp处理器及其并行计算方法 |
CN115826910A (zh) * | 2023-02-07 | 2023-03-21 | 成都申威科技有限责任公司 | 一种向量定点的alu处理*** |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188275A (zh) * | 1996-08-19 | 1998-07-22 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
CN1349159A (zh) * | 2001-11-28 | 2002-05-15 | 中国人民解放军国防科学技术大学 | 微处理器向量处理方法 |
US8108652B1 (en) * | 2007-09-13 | 2012-01-31 | Ronald Chi-Chun Hui | Vector processing with high execution throughput |
-
2012
- 2012-06-20 CN CN201210205812.0A patent/CN102750133B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1188275A (zh) * | 1996-08-19 | 1998-07-22 | 三星电子株式会社 | 多媒体信号处理器中的单指令多数据处理方法及其装置 |
CN1349159A (zh) * | 2001-11-28 | 2002-05-15 | 中国人民解放军国防科学技术大学 | 微处理器向量处理方法 |
US8108652B1 (en) * | 2007-09-13 | 2012-01-31 | Ronald Chi-Chun Hui | Vector processing with high execution throughput |
Non-Patent Citations (2)
Title |
---|
MASAKI TOYOKURA等: "A Video DSP with a Macroblock-Level-Pipeline and a SIMD Type Vector-Pipeline Architecture for MPEG2 CODEC", 《IEEE JOURNAL OF SOLID-STATE CIRCUITS》, vol. 29, no. 12, 31 December 1994 (1994-12-31), pages 1474 - 1481, XP000495322, DOI: doi:10.1109/4.340420 * |
王亮等: "基于对指令数据区分访问的混合cache低功耗策略", 《计算机应用研究》, vol. 25, no. 6, 15 June 2008 (2008-06-15), pages 1894 - 1896 * |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103218346A (zh) * | 2012-11-13 | 2013-07-24 | 长沙景嘉微电子股份有限公司 | 一种应用于射频通信接收机中的数字信号处理器 |
CN104699458A (zh) * | 2015-03-30 | 2015-06-10 | 哈尔滨工业大学 | 定点向量处理器及其向量数据访存控制方法 |
CN105426161A (zh) * | 2015-11-12 | 2016-03-23 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN105426161B (zh) * | 2015-11-12 | 2017-11-07 | 天津大学 | 一种power指令集向量协处理器的译码电路 |
CN108139886A (zh) * | 2015-12-04 | 2018-06-08 | 谷歌有限责任公司 | 用于图像处理器的多功能执行通道 |
CN108139886B (zh) * | 2015-12-04 | 2021-11-16 | 谷歌有限责任公司 | 用于图像处理器的多功能执行通道 |
CN106991073A (zh) * | 2016-01-20 | 2017-07-28 | 南京艾溪信息科技有限公司 | 用于向量运算的数据读写调度器及保留站 |
CN111580866B (zh) * | 2016-01-20 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
CN111580866A (zh) * | 2016-01-20 | 2020-08-25 | 中科寒武纪科技股份有限公司 | 一种向量运算装置及运算方法 |
WO2017185395A1 (zh) * | 2016-04-26 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行向量比较运算的装置和方法 |
CN111651201B (zh) * | 2016-04-26 | 2023-06-13 | 中科寒武纪科技股份有限公司 | 一种用于执行向量合并运算的装置和方法 |
CN111651201A (zh) * | 2016-04-26 | 2020-09-11 | 中科寒武纪科技股份有限公司 | 一种用于执行向量合并运算的装置和方法 |
CN111857822A (zh) * | 2016-08-05 | 2020-10-30 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
CN111857822B (zh) * | 2016-08-05 | 2024-04-05 | 中科寒武纪科技股份有限公司 | 一种运算装置及其操作方法 |
WO2019047281A1 (zh) * | 2017-09-07 | 2019-03-14 | 中国科学院微电子研究所 | 面向比特粒度的信息处理*** |
CN108228236A (zh) * | 2017-12-06 | 2018-06-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持流水的高效指令发射处理电路 |
CN111656319A (zh) * | 2017-12-22 | 2020-09-11 | 阿里巴巴集团控股有限公司 | 利用特定数检测的多流水线架构 |
CN111656319B (zh) * | 2017-12-22 | 2023-06-13 | 阿里巴巴集团控股有限公司 | 利用特定数检测的多流水线架构 |
CN111913746A (zh) * | 2020-08-31 | 2020-11-10 | 中国人民解放军国防科技大学 | 一种低开销嵌入式处理器设计方法 |
CN112099762A (zh) * | 2020-09-10 | 2020-12-18 | 上海交通大学 | 快速实现sm2密码算法的协处理***及方法 |
CN112099762B (zh) * | 2020-09-10 | 2024-03-12 | 上海交通大学 | 快速实现sm2密码算法的协处理***及方法 |
CN112230995A (zh) * | 2020-10-13 | 2021-01-15 | 广东省新一代通信与网络创新研究院 | 一种指令的生成方法、装置以及电子设备 |
CN112230995B (zh) * | 2020-10-13 | 2024-04-09 | 广东省新一代通信与网络创新研究院 | 一种指令的生成方法、装置以及电子设备 |
WO2022141321A1 (zh) * | 2020-12-30 | 2022-07-07 | 深圳市大疆创新科技有限公司 | Dsp处理器及其并行计算方法 |
CN115826910A (zh) * | 2023-02-07 | 2023-03-21 | 成都申威科技有限责任公司 | 一种向量定点的alu处理*** |
Also Published As
Publication number | Publication date |
---|---|
CN102750133B (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102750133B (zh) | 支持simd的32位三发射的数字信号处理器 | |
Fang et al. | swdnn: A library for accelerating deep learning applications on sunway taihulight | |
CN106843810B (zh) | 跟踪指令的控制流程的设备、方法以及机器可读介质 | |
CN104603795B (zh) | 实现用户级线程的即时上下文切换的指令和微架构 | |
Kumar | The hp pa-8000 risc cpu | |
CN109144573A (zh) | 基于risc-v指令集的二级流水线架构 | |
CN109074260A (zh) | 乱序的基于块的处理器和指令调度器 | |
CN108292215A (zh) | 用于加载-索引和预取-聚集操作的指令和逻辑 | |
CN104813279B (zh) | 用于减少具有步幅式访问模式的向量寄存器中的元素的指令 | |
CN105426160A (zh) | 基于sprac v8指令集的指令分类多发射方法 | |
US20130054939A1 (en) | Integrated circuit having a hard core and a soft core | |
GB2553783A (en) | Vector multiply-add instruction | |
KR20120019329A (ko) | 프로세서, 메모리 관리 장치 및 방법 | |
CN102508643A (zh) | 一种多核并行数字信号处理器及并行指令集的运行方法 | |
CN101739235A (zh) | 将32位dsp与通用risc cpu无缝混链的处理器装置 | |
CN107667345A (zh) | 打包数据对齐加计算指令、处理器、方法和*** | |
CN102402415B (zh) | 一种动态可重构阵列内数据缓存的装置及方法 | |
CN103109261A (zh) | 用于通用逻辑操作的方法和设备 | |
CN109739556B (zh) | 一种基于多并行缓存交互及计算的通用深度学习处理器 | |
US11726912B2 (en) | Coupling wide memory interface to wide write back paths | |
CN105373367A (zh) | 支持标向量协同工作的向量simd运算结构 | |
CN108475192A (zh) | 分散减少指令 | |
CN101539852B (zh) | 用于执行条件存储指令的方法、处理器和信息处理设备 | |
CN104536914B (zh) | 基于寄存器访问标记的相关处理装置和方法 | |
Collange | Simty: generalized SIMT execution on RISC-V |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |