CN1349159A - 微处理器向量处理方法 - Google Patents

微处理器向量处理方法 Download PDF

Info

Publication number
CN1349159A
CN1349159A CN01131568A CN01131568A CN1349159A CN 1349159 A CN1349159 A CN 1349159A CN 01131568 A CN01131568 A CN 01131568A CN 01131568 A CN01131568 A CN 01131568A CN 1349159 A CN1349159 A CN 1349159A
Authority
CN
China
Prior art keywords
vector
component
instruction
registor
scalar
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
CN01131568A
Other languages
English (en)
Other versions
CN1142484C (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 University of Defense Technology
Original Assignee
National University of Defense Technology
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 University of Defense Technology filed Critical National University of Defense Technology
Priority to CNB011315687A priority Critical patent/CN1142484C/zh
Publication of CN1349159A publication Critical patent/CN1349159A/zh
Application granted granted Critical
Publication of CN1142484C publication Critical patent/CN1142484C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Abstract

本发明公开了一种微处理器向量处理方法,在满足硬件实现简单、功耗低、成本低的前提下实现微处理器向量处理。本发明利用微处理器原有的流水线结构,设计向量指令集,增加向量寄存器组和向量控制逻辑,在译码段增加对向量指令的译码支持,用硬件执行循环过程,利用标量流水线功能部件和控制信号,实现微处理器对向量处理的支持。向量指令集包括向量访存、向量运算、向量长度寄存器操作三类指令;向量寄存器组包括4个向量寄存器和1个向量长度寄存器;在译码段中设计一个有限状态机来完成对向量指令的控制。本发明不需专门的多功能部件实现了微处理器对向量处理的支持,硬件复杂度小,成本低,向量处理效率高,可靠性高。

Description

微处理器向量处理方法
技术领域:本发明涉及微处理器设计中向量处理方法,尤其是要求低功耗、低成本、高性能的嵌入式微处理器设计中向量处理方法。
背景技术:随着信息处理进程的加快,越来越多的领域开始使用微处理器。其中,很大一部分应用领域如信息家电、移动通信、GPS系统等等要求处理器具有低功耗、低成本的特点,这些应用领域统称为嵌入式领域,在这些应用领域使用的微处理器统称为嵌入式微处理器。越来越多的多媒体应用如可视电话、PDA等对嵌入式微处理器的性能提出了更高的要求。这些应用的特点是数据量大、要求处理速度高,一般采用嵌入式微处理器负责运算和控制,采用其它专用芯片如数字信号处理芯片(DSP)等完成多媒体处理部分,系统中拥有多个芯片,成本较高。
对于数据量大,同样的操作要对多个数据实施的应用领域如多媒体应用领域,向量处理是一种提高处理器成批数据处理性能的有效方法,通过将用于处理相同操作的循环语句向量化,不仅可以减少程序的代码量,还能将循环迭代之间的相关性隐藏到向量指令中,提高硬件的执行效率。
长期以来,通用微处理器中的向量处理一般是采用多功能部件,如加法器、乘法器或向量协处理器来实现的,如Intel公司在http:∥www.intel.com网址公布的x86系列处理器中的多媒体增强指令集(MMX)体系结构以及后来的SSE、SSE2体系结构即流SIMD(单指令多数据)扩展指令集体系结构等,硬件设计复杂、消耗大量的芯片资源、功耗高、成本也比较高,不适合在要求低功耗、低成本的嵌入式应用领域中使用。英国的ARM公司虽然在http:∥www.arm.com网址公布了ARM系列嵌入式微处理器,并且于2001年下半年在微处理器论坛上展示了第一款支持SIMD的ARM V6体系结构的嵌入式处理器,但投产至少需要等到2002年。其他公司的嵌入式微处理器产品还没有看到对SIMD或者向量运算的支持。对于嵌入式微处理器向量处理的方法国内外尚无公开出版的技术资料。
发明内容:本发明所要解决的技术问题是在满足硬件实现简单、功耗低、成本低、不提高硬件复杂度的前提下,不须采用其它多功能部件,实现微处理器向量处理,尤其是实现嵌入式微处理器向量处理,相对于非向量化的处理流程,获得较高性能加速比。
本发明的技术方案是:利用微处理器原有的流水线结构,设计向量指令集,增加向量寄存器组和向量控制逻辑,在译码段增加对向量指令的译码支持,用硬件执行循环过程,利用标量流水线功能部件和控制信号,实现微处理器对向量处理的支持。
向量处理的实现,需要提供给程序员可以见到的接口,这就是向量指令。程序员可以利用这些指令,编制出支持向量处理的程序和应用。
本发明在指令集中增设了向量指令集,它包括三类向量指令:向量访存指令、向量运算指令以及向量长度寄存器操作指令。
向量访存指令主要在存储器和向量寄存器之间互相传递向量,向量分量在向量寄存器中从第1个寄存器开始顺序存储。向量访存指令包括:
LDV Vd,Rd功能是将Rd寄存器给出的地址对应的向量装载入Vd向量寄存器;
STV Vd,Rd功能是将Vd向量寄存器给出的向量存储入Rd寄存器给出的地址对应的存储器中。
向量运算指令用于在两个向量之间或者在一个向量与一个标量之间进行运算,并将计算结果存储到目标向量寄存器中。本发明设计的向量运算指令有向量逻辑运算指令和向量算术运算指令及向量传输操作指令。所有向量逻辑运算指令和向量算术运算指令要求在两个等长的向量之间或者在一个向量与一个标量之间进行运算。向量逻辑运算指令包括:向量与、向量或、向量异或;向量算术运算指令包括:向量加、向量减、向量乘、向量无符号乘、向量标量加、向量标量减、向量标量乘、向量标量无符号乘;向量传输操作主要指向量赋值。向量运算指令具体格式为:
ANDV Vd,Vn,Vs,功能是向量与,向量寄存器Vn和Vs中的各个分量分别进行逻辑与操作后赋值到向量寄存器Vd,即Vd:={(Vn)AND(Vs)};
ORRV Vd,Vn,Vs,功能是向量或,向量寄存器Vn和Vs中的各个分量分别进行逻辑或操作后赋值到向量寄存器Vd,即Vd:={(Vn)OR
(Vs)};
EORV Vd,Vn,Vs,功能是向量异或,向量寄存器Vn和Vs中的各个分量分别进行逻辑异或操作后赋值到向量寄存器Vd,即Vd:={(Vn)EOR(Vs)};
SUBV Vd,Vn,Vs,功能是向量减,将向量寄存器Vn中的各个分量分别减去Vs中的各个分量后赋值到向量寄存器Vd,即Vd:={(Vn)-(Vs)};
RSBV Vd,Vn,Vs,功能是向量反向减,将向量寄存器Vs中的各个分量分别减去Vn中的各个分量后赋值到向量寄存器Vd,即Vd:={(Vs)-(Vn)};
ADDV Vd,Vn,Vs,功能是向量加,向量寄存器Vn和Vs中的各个分量分别进行加操作后赋值到向量寄存器Vd,即Vd:={(Vn)+(Vs)};
MULV Vd,Vn,Vs,功能是向量乘,向量寄存器Vn和Vs中的各个分量分别进行乘操作后赋值到向量寄存器Vd,即Vd:={(Vn)*(Vs)};
UMULV Vd,Vn,Vs,功能是向量无符号乘,向量寄存器Vn和Vs中的各个分量分别进行无符号乘操作后赋值到向量寄存器Vd,即Vd:={(Vn)*(Vs)};
ADDSV Vd,Vn,Rd,功能是向量标量加,向量寄存器Vn中的各个分量分别加上标量寄存器Rd的值之后赋值到向量寄存器Vd,即Vd:=Vn+(Rd);
SUBSV Vd,Vn,Rd,功能是向量标量减,向量寄存器Vn中的各个分量分别减去标量寄存器Rd的值之后赋值到向量寄存器Vd,即Vd:=Vn-(Rd);
RSBSV Vd,Vn,Rd,功能是向量标量反向减,标量寄存器Rd的值减去向量寄存器Vn中的各个分量后赋值到向量寄存器Vd,即Vd:=(Rd)-Vn;
MULSV Vd,Vn,Rd,功能是向量标量乘,向量寄存器Vn中的各个分量分别和标量寄存器Rd的值进行乘操作后赋值到向量寄存器Vd,即Vd:=Vn*(Rd);
UMULSV Vd,Vn,Rd,功能是向量标量无符号乘,向量寄存器Vn中的各个分量分别和标量寄存器Rd的值进行无符号乘操作后赋值到向量寄存器Vd,即Vd:=Vn*(Rd);
MOVV Vd,Vn,功能是向量赋值,将向量寄存器Vn的各个分量赋值到向量寄存器Vd中,即Vd:=Vn;
向量长度寄存器操作指令是在向量长度寄存器VLR和一个通用标量寄存器之间互相传递数据或者将一个立即数传递到向量长度寄存器VLR中,用于决定向量访存、向量逻辑运算、向量算术运算、向量赋值的有效向量分量的个数。向量长度寄存器操作指令格式为:
MOVI2S Rd功能是将标量寄存器Rd的低6位传送到VLR中;
MOVI2S#S功能是将立即数S的低6位传送到VLR中;
MOVS2I Rd功能是将VLR传送到标量寄存器Rd的低6位中。
本发明所设计的向量指令集中的指令最多同时涉及到3个向量寄存器,为了降低微处理器实现的复杂度,增加微处理器的可扩展性,尽量降低耗费的芯片面积,降低功耗,本发明在嵌入式微处理器中设计4个向量寄存器V0、V1、V2、V3和1个向量长度寄存器VLR。经过模拟,在每个向量拥有64个分量的时候,既能满足向量应用数据量大的特点,又不占用太大的芯片面积,具有较好的性能价格比,因此本发明每个向量寄存器拥有64个向量分量。与此相应,向量长度寄存器VLR的长度设置成6位,只有低6位有效,可以设置为0到63的值,表示向量操作涉及到的向量分量个数是1到64个。当本发明在32位微处理器中应用时每个向量分量设计为32位,当本发明在64位微处理器中应用时每个向量分量设计为64位,向量分量的长度可随着微处理器的字长变化。
向量指令执行的过程与微处理器的流水线有关,微处理器的流水线有几段,则向量指令执行有几步,一般都包括取指、译码、执行等,这与标量指令的执行过程是一样的。由于向量指令的操作数是包括若干向量分量的向量寄存器,因此它的译码过程与标量指令的译码过程不同。本发明在译码段中设计一个有限状态机来完成对多周期的向量指令的控制,由向量长度寄存器VLR来控制一条向量指令中相同操作重复执行的次数。有限状态机产生复杂指令控制信号来控制多周期的向量指令执行:如果是向量指令,首先从VLR得到向量长度的值以决定向量操作的向量分量的个数;然后区分该指令是乘法指令、访存指令还是ALU运算指令(即向量逻辑运算指令和不包括乘法、无符号乘法指令的向量算术运算指令以及向量传输指令),并根据VLR的值,由译码段循环产生相应的控制信号;若在微处理器中乘法操作与ALU操作分离实现,则对于乘法指令,进入标量乘法状态并产生用于控制标量乘法的微控制信号,完成一个向量分量的乘法操作后,再开始第二个向量分量的乘法操作;如果是访存指令,则译码段发出第一个向量分量的访存请求控制信号,当第一个向量分量的访存请求完成之后,再进行第二个向量分量的访存请求的控制;如果是ALU运算指令,则根据运算的类型,由译码段产生单个向量分量的运算控制微信号,当完成一个向量分量的运算之后,再开始第二个向量分量的运算;此时,有限状态机进入多个状态的循环,并发出互锁流水线信号,停止取指段的后续取指操作;有限状态机的状态转变由向量长度寄存器VLR控制,如果向量分量操作的次数达到向量长度寄存器的值,则将状态转变回开始状态,否则继续处理下一个向量分量。如果是向量长度传输指令,则按照标量寄存器传输指令处理方法进行处理,即在一个标量寄存器和VLR之间进行传输,或者将一个立即数传递入VLR中;如果是一般指令(包括标量指令),则译码段产生一般指令的微控制信号。译码段向量控制逻辑采用有限状态机实现了对多周期的向量指令的控制,消除了多重有限状态机嵌套可能导致的毛刺现象,用简单的时序逻辑实现了复杂的循环控制,提高了微处理器的可靠性。
本发明硬件上实现了向量指令和标量指令混合译码,可以支持向量、标量指令的混合执行,不需要特殊的处理就可以在标量指令和向量指令之间进行切换,降低了程序的复杂度。使用本发明能达到以下有益效果:1.利用嵌入式微处理器的流水线结构,增加向量寄存器组和向量控制逻辑,增加对向量指令的译码支持,用硬件执行循环过程,利用已有的标量流水线功能部件和控制信号,实现了微处理器对向量处理的支持,硬件复杂度小,不需专门协处理器、多功能部件等实现向量处理,系统实现简单,成本低。2.设计的向量指令集功能齐全,囊括了所有常用的向量操作,向量处理效率高。3.本发明设计4个向量寄存器,每个向量寄存器拥有64个向量分量,向量分量的长度可随着微处理器字长相应变化,占用较小的芯片面积就能实现向量所有操作,降低了微处理器实现的复杂度,增加了微处理器的可扩展性,满足嵌入式微处理器功耗低、复杂度低、成本低的特点。4.本发明支持向量指令、标量指令的混合执行,向量指令和标量指令的混合执行无需特殊操作,有利于降低程序复杂度。5.译码段设计了一个有限状态机来完成对多周期的向量指令的控制,消除了多重有限状态机嵌套可能导致的毛刺现象,用简单的时序逻辑实现了复杂的循环控制,提高了微处理器的可靠性。6.本发明将循环迭代之间的相关性隐藏到向量指令中,程序的代码少,有效提高了处理器成批数据处理性能,提高了硬件的执行效率,本发明不仅适用于嵌入式微处理器,也适用于
通用微处理器。相对于非向量化的处理流程,可以达到较高
的性能加速比。
附图说明:
图1是本发明在银河TS-1嵌入式微处理器中向量寄存器的设置示意图;
图2是本发明在银河TS-1嵌入式微处理器中向量指令执行的流水线示意图;
图3是本发明在银河TS-1嵌入式微处理器中译码段向量处理状态转换图;
图4是向量处理流程和非向量处理流程的性能评价结果对照表(VLR是向量长度);
具体实施方式:本发明已应用在国防科学技术大学自行研制的银河TS-1嵌入式微处理器中。如图1所示,本发明在银河TS-1中设置了V0、V1、V2、V3共4个向量寄存器,它们可以存贮64个向量分量,银河TS-1嵌入式微处理器是32位字长,因此每个向量分量长32位。
图2是银河TS-1指令执行的流水线,包括取指段、译码段、操作数准备段、执行段、数据访问段、写回段六个流水段。向量指令在银河TS-1中的执行过程是:
1.取指:流水线的取指段的地址发生器产生新的指令地址,根据新的指令地址先查询指令Cache中是否有所需指令,如果有,则将Cache中指令返回给取指段,否则从存贮器中取指令,取得的指令放于指令寄存器中。
2.译码:译码段将指令寄存器中指令进行译码,形成微控制信号并将读出的源操作数一起存放在译码段的锁存器中,译码段中设计一个有限状态机来完成对多周期的向量指令的控制。
3.操作数准备:操作数准备段根据译码段锁存器中内容,也即译码段形成的微控制信号和源操作数,对操作数进行移位或者传递等准备动作。如果是向量乘法指令,还要对源操作数进行乘法操作。操作数准备段形成的微控制信号以及结果存放在操作数准备段锁存器中。
4.ALU执行:ALU执行段根据操作数准备段锁存器中的内容,对操作数准备段形成的结果进行ALU运算操作,即向量逻辑运算和不包括乘法、无符号乘法的向量算术运算以及向量传输操作。ALU执行段形成的微控制信号以及结果存放在ALU执行段锁存器中。
5.数据访问:数据访问段将ALU执行段锁存器中的内容根据需要更新到数据Cache中。当检测到需要进行写数据的存贮器访问请求时,数据访问段向数据Cache发出访存请求,将数据写到数据Cache中,再由数据Cache将数据更新到存贮器中。如果指令没有数据Cache访问请求,则将微控制信号以及结果存放到数据访问段锁存器中。
6.写回:写回段根据数据访问段锁存器中的内容,将指令操作结果写入到向量寄存器中。写回段根据向量寄存器地址、向量分量地址,产生相应的写向量寄存器控制信号,将结果写入到向量寄存器中。
图3是本发明译码段向量处理状态转换图,它是一个有限状态机,图中的圆圈表示译码段所处的状态,在任意一个时钟周期内,译码段只能处于其中一种状态;图中的箭头表示状态之间的转换,箭头上的文字表示进行状态转换所需满足的条件。由向量长度寄存器VLR控制一条向量指令中相同操作重复执行的次数。有限状态机产生复杂指令控制信号来控制多周期的向量指令执行:如果是向量指令,首先从VLR得到向量长度的值以决定向量操作的向量分量的个数;然后区分该指令是乘法指令、访存指令还是ALU运算指令(即向量逻辑运算指令和不包括乘法、无符号乘法指令的向量算术运算指令以及向量传输指令),并根据VLR的值,由译码段循环产生相应的控制信号;若在微处理器中乘法操作与ALU操作分离实现,则对于乘法指令,则进入标量乘法状态并产生用于控制标量乘法的微控制信号,完成一个向量分量的乘法操作后,再开始第二个向量分量的乘法操作;如果是访存指令,则译码段发出第一个向量分量的访存请求控制信号,当第一个向量分量的访存请求完成之后,再进行第二个向量分量的访存请求的控制;如果是ALU运算指令,则根据运算的类型,由译码段产生单个向量分量的运算控制微信号,当完成一个向量分量的运算之后,再开始第二个向量分量的运算;此时,有限状态机进入多个状态的循环,并发出互锁流水线信号,停止取指段的后续取指操作;有限状态机的状态转变由向量长度寄存器VLR控制,如果向量分量操作的次数达到向量长度寄存器的值,则将状态转变回开始状态,否则继续处理下一个向量分量。如果是向量长度传输指令,则按照标量寄存器传输指令处理方法进行处理,即在一个标量寄存器和VLR之间进行传输,或者将一个立即数传递入VLR中;如果是一般指令(如标量指令、中断指令等),则译码段产生一般指令的微控制信号。
图4是向量处理流程和非向量处理流程的性能评价结果对照表,其中的VLR表示向量长度寄存器的取值,也即在向量操作中涉及的向量分量的个数。例如,非向量版本的程序需要10条指令,而向量版本的程序需要7条指令;当向量长度为32的时候,非向量版本程序需要2282个时钟周期执行完毕,而向量版本程序仅需要666个时钟周期执行完毕,向量版本程序相对于非向量版本程序的加速比为3.43。当向量长度为64的时候,非向量版本程序需要4554个时钟周期执行完毕,而向量版本程序只需要1272个时钟周期执行完毕,向量版本程序相对于非向量版本程序的加速比为3.58。

Claims (4)

1.一种微处理器向量处理方法,采用它设计的微处理器拥有与一般微处理器相同的流水线结构、功能部件和控制信号,其特征在于设计向量指令集,增加向量寄存器组和向量控制逻辑,在译码段增加对向量指令的译码支持,用硬件执行循环过程,利用标量流水线功能部件和控制信号,实现微处理器对向量处理的支持。
2.根据权利要求1所述的微处理器向量处理方法,其特征在于所述向量指令集包括向量访存指令、向量运算指令以及向量长度寄存器操作指令三类向量指令:
1)向量访存指令主要在存储器和向量寄存器之间互相传递向量,向量分量在向量寄存器中从第1个寄存器开始顺序存储,它包括:
LDV Vd,Rd功能是将Rd寄存器给出的地址对应的向量装载入Vd向量寄存器;
STV Vd,Rd功能是将Vd向量寄存器给出的向量存储入Rd寄存器给出的地址对应的存储器中;
2)向量运算指令用于在两个向量之间或者在一个向量与一个标量之间进行运算,并将计算结果存储到目标向量寄存器中;向量运算指令有向量逻辑运算指令和向量算术运算指令及向量分量按位操作指令;所有向量逻辑运算指令和向量算术运算指令要求在两个等长的向量之间或者在一个向量与一个标量之间进行运算;向量逻辑运算指令包括:向量与、向量或、向量异或;向量算术运算指令包括:向量加、向量减、向量乘、向量无符号乘、向量标量加、向量标量减、向量标量乘、向量标量无符号乘;向量分量按位操作主要指向量赋值;向量运算指令具体格式为:
ANDV Vd,Vn,Vs,功能是向量与,向量寄存器Vn和Vs中的各个分量分别进行逻辑与操作后赋值到向量寄存器Vd,即Vd:={(Vn)AND(Vs)};
ORRV Vd,Vn,Vs,功能是向量或,向量寄存器Vn和Vs中的各个分量分别进行逻辑或操作后赋值到向量寄存器Vd,即Vd:={(Vn)OR(Vs)};
EORV Vd,Vn,Vs,功能是向量异或,向量寄存器Vn和Vs中的各个分量分别进行逻辑异或操作后赋值到向量寄存器Vd,即Vd:={(Vn)EOR(Vs)};
SUBV Vd,Vn,Vs,功能是向量减,将向量寄存器Vn中的各个分量分别减去Vs中的各个分量后赋值到向量寄存器Vd,即Vd:={(Vn)-(Vs)};
RSBV Vd,Vn,Vs,功能是向量反向减,将向量寄存器Vs中的各个分量分别减去Vn中的各个分量后赋值到向量寄存器Vd,即Vd:={(Vs)-(Vn)};
ADDV Vd,Vn,Vs,功能是向量加,向量寄存器Vn和Vs中的各个分量分别进行加操作后赋值到向量寄存器Vd,即Vd:={(Vn)+(Vs)};
MULV Vd,Vn,Vs,功能是向量乘,向量寄存器Vn和Vs中的各个分量分别进行乘操作后赋值到向量寄存器Vd,即Vd:={(Vn)*(Vs)};
UMULV Vd,Vn,Vs,功能是向量无符号乘,向量寄存器Vn和Vs中的各个分量分别进行无符号乘操作后赋值到向量寄存器Vd,即Vd:={(Vn)*(Vs)};
ADDSV Vd,Vn,Rd,功能是向量标量加,向量寄存器Vn中的各个分量分别加上标量寄存器Rd的值之后赋值到向量寄存器Vd,即Vd:=Vn+(Rd);
SUBSV Vd,Vn,Rd,功能是向量标量减,向量寄存器Vn中的各个分量分别减去标量寄存器Rd的值之后赋值到向量寄存器Vd,即Vd:=Vn-(Rd);
RSBSV Vd,Vn,Rd,功能是向量标量反向减,标量寄存器Rd的值减去向量寄存器Vn中的各个分量后赋值到向量寄存器Vd,即Vd:=(Rd)-Vn;
MULSV Vd,Vn,Rd,功能是向量标量乘,向量寄存器Vn中的各个分量分别和标量寄存器Rd的值进行乘操作后赋值到向量寄存器Vd,即Vd:=Vn*(Rd);
UMULSV Vd,Vn,Rd,功能是向量标量无符号乘,向量寄存器Vn中的各个分量分别和标量寄存器Rd的值进行无符号乘操作后赋值到向量寄存器Vd,即Vd:=Vn*(Rd);
MOVV Vd,Vn,功能是向量赋值,将向量寄存器Vn的各个分量赋值到向量寄存器Vd中,即Vd:=Vn;
3)向量长度寄存器操作指令是在向量长度寄存器VLR和一个通用标量寄存器之间互相传递数据或者将一个立即数传递到向量长度寄存器VLR中,用于决定向量访存、向量逻辑运算、向量算术运算、向量赋值的有效向量分量的个数;向量长度寄存器操作指令格式为:
MOVI2S Rd功能是将标量寄存器Rd的低6位传送到VLR中;
MOVI2S#S功能是将立即数S的低6位传送到VLR中;
MOVS2I Rd功能是将VLR传送到标量寄存器Rd的低6位中。
3.根据权利要求1所述的微处理器向量处理方法,其特征在于所述向量寄存器组包括4个向量寄存器和1个向量长度寄存器VLR,每个向量寄存器设计为最大拥有64个向量分量,向量长度寄存器VLR的长度设置成6位,只有低6位有效,向量分量的长度可随着微处理器的字长变化。
4.根据权利要求1所述的微处理器向量处理方法,其特征在于所述向量控制逻辑主要是指在译码段中设计了一个有限状态机来完成对多周期的向量指令的控制,由向量长度寄存器VLR来控制一条向量指令中相同操作重复执行的次数;有限状态机产生复杂指令控制信号来控制多周期的向量指令执行:如果是向量指令,首先从VLR得到向量长度的值以决定向量操作的向量分量的个数;然后区分该指令是乘法指令、访存指令还是ALU运算指令(即向量逻辑运算指令和不包括乘法、无符号乘法指令的向量算术运算指令以及向量按位操作指令),并根据VLR的值,由译码段循环产生相应的控制信号;若在微处理器中乘法操作与ALU操作分离实现,则对于乘法指令,则进入标量乘法状态并产生用于控制标量乘法的微控制信号,完成一个向量分量的乘法操作后,再开始第二个向量分量的乘法操作;如果是访存指令,则译码段发出第一个向量分量的访存请求控制信号,当第一个向量分量的访存请求完成之后,再进行第二个向量分量的访存请求的控制;如果是ALU运算指令,则根据运算的类型,由译码段产生单个向量分量的运算控制微信号,当完成一个向量分量的运算之后,再开始第二个向量分量的运算;此时,有限状态机进入多个状态的循环,并发出互锁流水线信号,停止取指段的后续取指操作;有限状态机的状态转变由向量长度寄存器VLR控制,如果向量分量操作的次数达到向量长度寄存器的值,则将状态转变回开始状态,否则继续处理下一个向量分量;如果是向量长度传输指令,则按照标量寄存器传输指令处理方法进行处理,即在一个标量寄存器和VLR之间进行传输,或者将一个立即数传递入VLR中。如果是一般指令(如标量指令、中断指令等),则译码段产生一般指令的微控制信号。
CNB011315687A 2001-11-28 2001-11-28 微处理器向量处理方法 Expired - Fee Related CN1142484C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011315687A CN1142484C (zh) 2001-11-28 2001-11-28 微处理器向量处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011315687A CN1142484C (zh) 2001-11-28 2001-11-28 微处理器向量处理方法

Publications (2)

Publication Number Publication Date
CN1349159A true CN1349159A (zh) 2002-05-15
CN1142484C CN1142484C (zh) 2004-03-17

Family

ID=4670693

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011315687A Expired - Fee Related CN1142484C (zh) 2001-11-28 2001-11-28 微处理器向量处理方法

Country Status (1)

Country Link
CN (1) CN1142484C (zh)

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833468A (zh) * 2010-04-28 2010-09-15 中国科学院自动化研究所 在高性能计算系统中生成向量处理指令集结构的方法
CN102012802A (zh) * 2010-11-25 2011-04-13 中国人民解放军国防科学技术大学 面向向量处理器数据交换的方法及装置
CN102156637A (zh) * 2011-05-04 2011-08-17 中国人民解放军国防科学技术大学 向量交叉多线程处理方法及向量交叉多线程微处理器
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102262525A (zh) * 2011-08-29 2011-11-30 孙瑞琛 基于矢量运算的矢量浮点运算装置及方法
CN102411773A (zh) * 2011-07-28 2012-04-11 中国人民解放军国防科学技术大学 面向向量处理器的去均值归一化积相关系数的向量化实现方法
CN102508776A (zh) * 2011-11-03 2012-06-20 中国人民解放军国防科学技术大学 多线程交叉双精度短向量结构的评测激励自动构造方法
CN102750133A (zh) * 2012-06-20 2012-10-24 中国电子科技集团公司第五十八研究所 支持simd的32位三发射的数字信号处理器
CN104903850A (zh) * 2012-12-28 2015-09-09 英特尔公司 用于滑动窗口编码算法的指令
CN105612494A (zh) * 2013-10-09 2016-05-25 Arm有限公司 用于控制推测向量运算效能的数据处理设备及方法
WO2017016486A1 (en) * 2015-07-30 2017-02-02 Huawei Technologies Co., Ltd. System and method for variable lane architecture
CN106990940A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 一种向量计算装置
WO2017185392A1 (zh) * 2016-04-26 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行向量四则运算的装置和方法
WO2017185404A1 (zh) * 2016-04-26 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行向量逻辑运算的装置及方法
WO2018024094A1 (zh) * 2016-08-05 2018-02-08 上海寒武纪信息科技有限公司 一种运算装置及其操作方法
CN107861757A (zh) * 2017-11-30 2018-03-30 上海寒武纪信息科技有限公司 运算装置以及相关产品
CN111310910A (zh) * 2017-10-30 2020-06-19 上海寒武纪信息科技有限公司 一种计算装置及方法
US10761991B2 (en) 2016-04-26 2020-09-01 Cambricon Technologies Corporation Limited Apparatus and methods for circular shift operations
US11157593B2 (en) 2016-04-26 2021-10-26 Cambricon Technologies Corporation Limited Apparatus and methods for combining vectors
US11734383B2 (en) 2016-01-20 2023-08-22 Cambricon Technologies Corporation Limited Vector and matrix computing device

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4349265B2 (ja) * 2004-11-22 2009-10-21 ソニー株式会社 プロセッサ
CN101840323B (zh) * 2010-03-25 2012-02-08 龙芯中科技术有限公司 支持标量复用的非全流水向量除法开方装置及方法
US11263008B2 (en) * 2017-03-20 2022-03-01 Intel Corporation Systems, methods, and apparatuses for tile broadcast

Cited By (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833468B (zh) * 2010-04-28 2013-05-08 中国科学院自动化研究所 在高性能计算系统中生成向量处理指令集结构的方法
CN101833468A (zh) * 2010-04-28 2010-09-15 中国科学院自动化研究所 在高性能计算系统中生成向量处理指令集结构的方法
CN102012802A (zh) * 2010-11-25 2011-04-13 中国人民解放军国防科学技术大学 面向向量处理器数据交换的方法及装置
CN102012802B (zh) * 2010-11-25 2013-01-16 中国人民解放军国防科学技术大学 面向向量处理器数据交换的方法及装置
CN102156637A (zh) * 2011-05-04 2011-08-17 中国人民解放军国防科学技术大学 向量交叉多线程处理方法及向量交叉多线程微处理器
CN102200964A (zh) * 2011-06-17 2011-09-28 孙瑞琛 基于并行处理的fft装置及其方法
CN102411773A (zh) * 2011-07-28 2012-04-11 中国人民解放军国防科学技术大学 面向向量处理器的去均值归一化积相关系数的向量化实现方法
CN102411773B (zh) * 2011-07-28 2013-03-27 中国人民解放军国防科学技术大学 面向向量处理器的去均值归一化积相关系数的向量化实现方法
CN102262525A (zh) * 2011-08-29 2011-11-30 孙瑞琛 基于矢量运算的矢量浮点运算装置及方法
CN102262525B (zh) * 2011-08-29 2014-11-19 孙瑞玮 基于矢量运算的矢量浮点运算装置及方法
CN102508776A (zh) * 2011-11-03 2012-06-20 中国人民解放军国防科学技术大学 多线程交叉双精度短向量结构的评测激励自动构造方法
CN102750133B (zh) * 2012-06-20 2014-07-30 中国电子科技集团公司第五十八研究所 支持simd的32位三发射的数字信号处理器
CN102750133A (zh) * 2012-06-20 2012-10-24 中国电子科技集团公司第五十八研究所 支持simd的32位三发射的数字信号处理器
CN104903850A (zh) * 2012-12-28 2015-09-09 英特尔公司 用于滑动窗口编码算法的指令
CN104903850B (zh) * 2012-12-28 2018-09-18 英特尔公司 用于滑动窗口编码算法的指令
US10261789B2 (en) 2013-10-09 2019-04-16 Arm Limited Data processing apparatus and method for controlling performance of speculative vector operations
CN105612494B (zh) * 2013-10-09 2019-07-12 Arm 有限公司 用于控制推测向量运算效能的数据处理设备及方法
CN105612494A (zh) * 2013-10-09 2016-05-25 Arm有限公司 用于控制推测向量运算效能的数据处理设备及方法
US10884756B2 (en) 2015-07-30 2021-01-05 Futurewei Technologies, Inc. System and method for variable lane architecture
US10691463B2 (en) 2015-07-30 2020-06-23 Futurewei Technologies, Inc. System and method for variable lane architecture
WO2017016486A1 (en) * 2015-07-30 2017-02-02 Huawei Technologies Co., Ltd. System and method for variable lane architecture
CN106990940A (zh) * 2016-01-20 2017-07-28 南京艾溪信息科技有限公司 一种向量计算装置
US11734383B2 (en) 2016-01-20 2023-08-22 Cambricon Technologies Corporation Limited Vector and matrix computing device
CN106990940B (zh) * 2016-01-20 2020-05-22 中科寒武纪科技股份有限公司 一种向量计算装置及运算方法
CN107315568A (zh) * 2016-04-26 2017-11-03 北京中科寒武纪科技有限公司 一种用于执行向量逻辑运算的装置
US11436301B2 (en) 2016-04-26 2022-09-06 Cambricon Technologies Corporation Limited Apparatus and methods for vector operations
WO2017185392A1 (zh) * 2016-04-26 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行向量四则运算的装置和方法
US11507640B2 (en) 2016-04-26 2022-11-22 Cambricon Technologies Corporation Limited Apparatus and methods for vector operations
CN107315717A (zh) * 2016-04-26 2017-11-03 北京中科寒武纪科技有限公司 一种用于执行向量四则运算的装置和方法
US11341211B2 (en) 2016-04-26 2022-05-24 Cambricon Technologies Corporation Limited Apparatus and methods for vector operations
US10761991B2 (en) 2016-04-26 2020-09-01 Cambricon Technologies Corporation Limited Apparatus and methods for circular shift operations
CN107315717B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
WO2017185404A1 (zh) * 2016-04-26 2017-11-02 北京中科寒武纪科技有限公司 一种用于执行向量逻辑运算的装置及方法
US10997276B2 (en) 2016-04-26 2021-05-04 Cambricon Technologies Corporation Limited Apparatus and methods for vector operations
US11100192B2 (en) 2016-04-26 2021-08-24 Cambricon Technologies Corporation Limited Apparatus and methods for vector operations
US11157593B2 (en) 2016-04-26 2021-10-26 Cambricon Technologies Corporation Limited Apparatus and methods for combining vectors
WO2018024094A1 (zh) * 2016-08-05 2018-02-08 上海寒武纪信息科技有限公司 一种运算装置及其操作方法
CN111310910A (zh) * 2017-10-30 2020-06-19 上海寒武纪信息科技有限公司 一种计算装置及方法
CN111310910B (zh) * 2017-10-30 2023-06-30 上海寒武纪信息科技有限公司 一种计算装置及方法
CN107861757B (zh) * 2017-11-30 2020-08-25 上海寒武纪信息科技有限公司 运算装置以及相关产品
CN107861757A (zh) * 2017-11-30 2018-03-30 上海寒武纪信息科技有限公司 运算装置以及相关产品

Also Published As

Publication number Publication date
CN1142484C (zh) 2004-03-17

Similar Documents

Publication Publication Date Title
CN1142484C (zh) 微处理器向量处理方法
CN109791488B (zh) 用于执行用于复数的融合乘-加指令的系统和方法
US10372668B2 (en) Hardware processors and methods for tightly-coupled heterogeneous computing
CN101178644B (zh) 一种基于复杂指令集计算机结构的微处理器架构
US11029958B1 (en) Apparatuses, methods, and systems for configurable operand size operations in an operation configurable spatial accelerator
CN111512292A (zh) 用于可配置空间加速器中的非结构化数据流的装置、方法和系统
EP3776229A1 (en) Apparatuses, methods, and systems for remote memory access in a configurable spatial accelerator
CN100378653C (zh) 双算术逻辑单元精简指令集8位微控制器
WO2020005444A1 (en) Apparatus, methods, and systems for low latency communication in a configurable spatial accelerator
TW201802668A (zh) 可中斷及可重啟矩陣乘法指令、處理器、方法和系統
CN102103487A (zh) 用于在单个指令中执行移位和异或运算的方法和装置
CN101299185A (zh) 一种基于cisc结构的微处理器构架及指令实现方式
CN108292220B (zh) 用于加速图形分析的装置和方法
JP2021057004A (ja) 行列演算アクセラレータの命令のための装置、方法、及びシステム
JP2019197531A (ja) 連鎖タイル演算を実施するためのシステムおよび方法
CN101739235A (zh) 将32位dsp与通用risc cpu无缝混链的处理器装置
CN110909882A (zh) 用于执行水平铺块操作的系统和方法
CN1297888C (zh) 32位媒体数字信号处理器
CN101211256A (zh) 一种专用双流水线risc指令系统及其操作方法
CN101739383B (zh) 一种可配置处理器体系结构和控制方法
Abdelhamid et al. Condensing an overload of parallel computing ingredients into a single architecture recipe
Uvieghara et al. An experimental single-chip data flow CPU
Draper et al. Implementation of a 256-bit wideword processor for the data-intensive architecture (DIVA) processing-in-memory (PIM) chip
Fox A HOL specification of the ARM instruction set architecture
Spaderna et al. An integrated floating point vector processor for DSP and scientific computing

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee