CN108959180B - 一种数据处理方法及系统 - Google Patents
一种数据处理方法及系统 Download PDFInfo
- Publication number
- CN108959180B CN108959180B CN201810623994.0A CN201810623994A CN108959180B CN 108959180 B CN108959180 B CN 108959180B CN 201810623994 A CN201810623994 A CN 201810623994A CN 108959180 B CN108959180 B CN 108959180B
- Authority
- CN
- China
- Prior art keywords
- data register
- vector
- identification information
- instruction
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
Abstract
本发明公开了一种数据处理方法及系统,该方法中,向量运算指令中包括三个指令,第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数,这样的向量运算指令,可提高向量计算速度。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种数据处理方法及系统。
背景技术
现有技术中,向量计算过程速度较慢。
发明内容
本发明的目的在于提供一种数据处理方法及系统,用以解决现有技术中向量运算过程速度较慢的问题。
为实现上述目的,本发明的技术方案为:
第一,本发明提供一种数据处理方法,所述方法包括:
指令执行单元,获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,将所述向量运算指令写入所述VALU中;
所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,将所述计算结果写入第二数据寄存器中。
进一步的,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
进一步的,所述数据存取单元,根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,具体包括:
所述数据存取单元,针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
所述数据存取单元,根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
所述数据存取单元,将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
进一步的,所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果,具体包括:
所述VALU,根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
所述VALU,依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
所述VALU,将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
进一步的,所述VALU,将所述计算结果写入第二数据寄存器中之后,所述方法还包括:
所述数据存取单元,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
第二,本发明还提供一种数据处理系统,所述系统包括:
指令执行单元,用于获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,还用于将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,用于从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,还用于根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,用于将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,用于将所述向量运算指令写入所述VALU中;
所述VALU,用于根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,还用于将所述计算结果写入第二数据寄存器中。
进一步的,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
进一步的,所述数据存取单元,具体用于:
针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
进一步的,所述VALU,具体用于:
根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
进一步的,所述数据存取单元,还用于:
在所述VALU将所述计算结果写入第二数据寄存器中之后,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
本发明具有如下优点:
本发明中,向量运算指令中包括三个指令,第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数,这样的向量运算指令,可提高向量计算速度。
附图说明
图1为本发明提供的一种数据处理方法的流程示意图;
图2为本发明提供的第一指令的结构示意图;
图3为本发明提供的第二指令的结构示意图;
图4为本发明提供的第三指令的结构示意图;
图5为本发明提供的将目标操作数写入第一数据寄存器的流程示意图;
图6为本发明提供的向量存储单元中存储的数据的展示图;
图7为本发明提供的另一种向量存储单元中存储的数据的展示图;
图8为本发明提供的一种数据处理系统的结构示意图;
图9为本发明提供的另一种数据处理系统的结构示意图;
具体实施方式
以下实施例用于说明本发明,但不用来限制本发明的范围。
实施例1
本发明实施例1提供一种数据处理方法,该方法的流程示意图可参见图1,该方法包括下述步骤:
步骤101,指令执行单元,获取向量运算指令,其中,向量运算指令包括第一指令、第二指令和第三指令,第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,第二指令,包括第二操作码、源寄存器标识信息、至少两个第一数据寄存器标识信息,第三指令,包括第三操作码、运算类型、循环次数。
其中,上述运算类型可包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
上述第一指令的结构示意图可参见图2,图2中,第一指令依次包括操作码、目标寄存器和操作数。其中,这里的操作码,可为第一操作码,这里的目标寄存器,可为至少两个第一数据寄存器标识信息,这里的操作数,可为每个第一数据寄存器标识信息对应的操作数。
上述第二指令的结构示意图可参见图3,图3中,第二指令依次包括操作码、源寄存器和目标寄存器。其中,这里的操作码,可为第二操作码,这里的源寄存器,可为源寄存器标识信息,这里的目标寄存器,可为第一指令中提及的至少两个第一数据寄存器标识信息。
上述第三指令的结构示意图可参见图4,图4中,第三指令依次包括操作码、计算类型和循环次数。其中,这里的操作码,可为第三操作码。
步骤102,指令执行单元,将向量运算指令,写入源寄存器标识信息对应的源寄存器中。
步骤103,数据存取单元,从源寄存器中获取向量运算指令。
步骤104,数据存取单元,根据向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为循环次数的目标操作数,并将每个第一数据寄存器标识信息对应的、数量为循环次数的目标操作数,写入对应的第一数据寄存器中。
数据存取单元,根据向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为循环次数的目标操作数,具体实现方式如下:
1、数据存取单元,针对每个第一数据寄存器,在向量存储单元中,根据向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数。
2、数据存取单元,根据该第一数据寄存器标识信息对应的步进和循环次数,以起始操作数地址为起始地址,依次获取每间隔步进的地址对应的、数量为第一数量的第二操作数,其中,第一数量,为循环次数减去1得到的数值。
3、数据存取单元,将起始操作数和第二操作数,确定为该第一数据寄存器标识信息对应的、数量为循环次数的目标操作数。
例如,参见图5,图5为将目标操作数写入第一数据寄存器的流程示意图。图5中,外部寄存器未源寄存器,该外部寄存器中包括四个第一数据寄存器的标识信息,即A、B、C、D,还包括A、B、C、D分别对应的步进Sa、Sb、Sc、Sd。数据存取单元从外部寄存器中获取A、B、C、D及其分别对应的Sa、Sb、Sc、Sd,根据这些信息,从向量存储单元中获取A、B、C、D分别对应的目标操作数,并将A、B、C、D分别对应的目标操作数分别写入A、B、C、D中。其中,地址A对应的数据为a0,地址A+Sa对应的数据为a1,依此类推,每个地址对应一个数据。
步骤105,每个第一数据寄存器,将该第一数据寄存器对应的、数量为循环次数的目标操作数,写入向量算数逻辑单元(Vector Arithmetic Logic Unit,VALU)中。
步骤106,源寄存器,将向量运算指令写入VALU中;
步骤107,VALU,根据向量运算指令以及每个第一数据寄存器对应的、数量为循环次数的目标操作数,进行向量计算,得到计算结果。
其中,VALU可支持任意类型的运算,比如,可以是d=a+b、d=a-b、d=a*b、d=a*b+c或d=a*b-c等,d为运算结果,a、b、c,分别为不同第一数据寄存器标识信息对应的目标操作数,d为计算结果。
具体的,VALU可通过执行下述操作,得到上述计算结果:
1、根据向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式。
2、依次针对循环次数中的每个数字,将每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入第一运算公式,得到该数字对应的第一计算结果。
3、将至少一个第一计算结果,代入第二运算公式,得到计算结果。
为了使得读者更容易理解上述计算过程,下面举一个例子说明,参见图6,图6为向量存储单元中存储的数据的展示图。图6中,包括3个方框,从左边开始,第一个方框中的数据分别为a1、a2…aY,第二个方框中的数据分别为b1、b2…bY,第二个方框中的数据分别为c1、c2…cY,其中,Y不小于循环次数。第一个方框中的数据的起始地址为EAA,第二个方框中的数据的起始地址为EBA,第三个方框中的数据的起始地址为ECA,EAA、EBA、ECA分别对应的数据为a1、b1、c1。
另外,至少两个第一数据寄存器的数量为3个,这三个第一数据寄存器的标识信息分别为A、B、C。
第一种情况下,若A对应的步进为1,B对应的步进为1,C对应的步进为1,循环次数为N,计算结果D0=a1*b1+c1+a2*b2+c2+…+aN*bN+cN。
第二种情况下,若A对应的步进为0,B对应的步进为1,C对应的步进为1,循环次数为N,计算结果D1=a1*b1+c1+a1*b2+c2+…+a1*bN+cN。
第二种情况下,若A对应的步进为2,B对应的步进为1,C对应的步进为2,循环次数为N,计算结果D2=a1*b1+c1+a3*b2+c3+…+a(2N)*bN+c(2N)。
计算出结果后,将上述三种情况下的计算结果存入向量存储单元中,这时的向量存储单元中存储的数据的展示图可参见图7,图7中,包括4个方框,从左边开始,第一~第三个方框为图6中的内容,第四个方框中包括的D0、D1、D2。
步骤108,VALU,将计算结果写入第二数据寄存器中。
执行步骤108后,数据存取单元,还可将写入第二数据寄存器中的计算结果,写入向量存储单元中。
经过特殊设计的处理器能够加速运算过程,同时,优化设计的向量运算指令,也会提高处理器性能。本发明中,向量运算指令中包括三个指令,第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,第二指令,包括第二操作码、源寄存器标识信息、至少两个第一数据寄存器标识信息,第三指令,包括第三操作码、运算类型、循环次数,这样的向量运算指令,可提高向量计算过程的速度。
实施例2
本发明实施例2提供一种数据处理系统,该系统的结构示意图可参见图8,该系统包括处理器20、指令存储单元21、总线接口22,其中:
处理器20,包括VALU23、数据寄存器1、2、3、4、数据存取单元24、向量存储单元25、外部寄存器26、内部寄存器27、指令执行单元28、指令译码单元29、程序计数器30;
VALU23,分别与数据寄存器1、2、3、4、外部寄存器26、指令执行单元连接28;
数据寄存器1、2、3、4,分别与数据存取单元24连接;
数据存取单元24,分别与外部寄存器26以及向量存储单元25连接;
向量存储单元25,与总线接口22连接;
外部寄存器26,分别与指令执行单元28、内部寄存器27连接;
指令执行单元28,分别与指令译码单元29、内部寄存器26、程序计数器30连接;
指令译码单元29,与指令存储单元21连接;
内部寄存器27,与程序计数器30连接;
程序计数器30,与指令存储单元21连接;
其中,VALU23用于进行向量计算,数据寄存器1、2、3,可向VALU23输入数据,数据寄存器4只能接收VALU23输出的数据。向量存储单元25,用于通过总线接口22向外部总线进行读写访问。数据存取单元24,用于外部寄存器26、数据寄存器1、2、3、4、向量存储单元25之间交换数据,内部寄存器27与外部寄存器26可以直接被指令访问。指令译码单元28,用于将从指令存储单元21中获取到的向量运算指令解码。
上述提及的数据寄存器1、2、3,相当于实施例1中的第一数据寄存器,上述数据寄存器4,相当于实施例1中的第二数据寄存器,上述外部寄存器26,相当于实施例1中提及的源寄存器。
本发明实施例2中提供的数据处理系统,可执行实施例1中提供的任一实现方式的数据处理方法。
经过特殊设计的处理器能够加速运算过程,同时,优化设计的向量运算指令,也会提高处理器性能。实施例2提供的数据处理系统,可提高向量计算速度,另外,该数据处理系统是根据实施例1提及的向量运算指令进行向量运算的,这样的向量运算指令了提高处理器性能,进而可提高向量计算速度。
实施例3
本发明实施例3提供另一种数据处理系统,该系统的结构示意图可参见图9,该系统包括:
指令执行单元301,用于获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元301,还用于将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器304中;
数据存取单元302,用于从所述源寄存器304中获取所述向量运算指令;
所述数据存取单元302,还用于根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元306中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器303,用于将该第一数据寄存器303中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器304,用于将所述向量运算指令写入所述VALU中;
所述VALU305,用于根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU305,还用于将所述计算结果写入第二数据寄存器中。
进一步的,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
进一步的,所述数据存取单元302,具体用于:
针对每个第一数据寄存器303,在所述向量存储单元306中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
进一步的,所述VALU305,具体用于:
根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
进一步的,所述数据存取单元,还用于:
在所述VALU将所述计算结果写入第二数据寄存器中之后,将写入第二数据寄存器中的计算结果,写入所述向量存储单元306中。
实施例1~3中的各技术特征,可自由组合,本发明对此不进行任何限定。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (8)
1.一种数据处理方法,其特征在于,所述方法包括:
指令执行单元,获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,将所述向量运算指令写入所述VALU中;
所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,将所述计算结果写入第二数据寄存器中;
所述根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,具体包括:
所述数据存取单元,针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
所述数据存取单元,根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
所述数据存取单元,将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
2.如权利要求1所述的方法,其特征在于,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
3.如权利要求1所述的方法,其特征在于,所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果,具体包括:
所述VALU,根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
所述VALU,依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
所述VALU,将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
4.如权利要求1所述的方法,其特征在于,所述VALU,将所述计算结果写入第二数据寄存器中之后,所述方法还包括:
所述数据存取单元,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
5.一种数据处理系统,其特征在于,所述系统包括:
指令执行单元,用于获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,还用于将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,用于从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,还用于根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,用于将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,用于将所述向量运算指令写入所述VALU中;
所述VALU,用于根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,还用于将所述计算结果写入第二数据寄存器中;
所述根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,具体包括:
所述数据存取单元,针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
所述数据存取单元,根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
所述数据存取单元,将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
6.如权利要求5所述的系统,其特征在于,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
7.如权利要求5所述的系统,其特征在于,所述VALU,具体用于:
根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
8.如权利要求5所述的系统,其特征在于,所述数据存取单元,还用于:
在所述VALU将所述计算结果写入第二数据寄存器中之后,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623994.0A CN108959180B (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810623994.0A CN108959180B (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108959180A CN108959180A (zh) | 2018-12-07 |
CN108959180B true CN108959180B (zh) | 2022-04-22 |
Family
ID=64489255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810623994.0A Active CN108959180B (zh) | 2018-06-15 | 2018-06-15 | 一种数据处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108959180B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353125B (zh) * | 2018-12-20 | 2022-04-22 | 上海寒武纪信息科技有限公司 | 运算方法、装置、计算机设备和存储介质 |
CN116594693B (zh) * | 2023-07-04 | 2023-09-22 | 中国兵器科学研究院 | 一种空间远距离传输数据编解码指令集系统及计算系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
CN107851020A (zh) * | 2015-08-26 | 2018-03-27 | 华为技术有限公司 | 用于指令存储器效率的设备和处理架构 |
CN108140011A (zh) * | 2015-10-14 | 2018-06-08 | Arm有限公司 | 向量加载指令 |
-
2018
- 2018-06-15 CN CN201810623994.0A patent/CN108959180B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107851020A (zh) * | 2015-08-26 | 2018-03-27 | 华为技术有限公司 | 用于指令存储器效率的设备和处理架构 |
CN108140011A (zh) * | 2015-10-14 | 2018-06-08 | Arm有限公司 | 向量加载指令 |
WO2017185418A1 (zh) * | 2016-04-29 | 2017-11-02 | 北京中科寒武纪科技有限公司 | 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108959180A (zh) | 2018-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6340097B2 (ja) | リードマスク及びライトマスクにより制御されるベクトル移動命令 | |
JP6466388B2 (ja) | 方法及び装置 | |
KR101597774B1 (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
TWI517038B (zh) | 用於在多維度陣列中之元件偏移計算的指令 | |
US20090313442A1 (en) | Circular buffer support in a single instruction multiple data (simd) data processsor | |
JPH04313121A (ja) | インストラクションメモリ装置 | |
US20020188830A1 (en) | Bit replacement and extraction instructions | |
CN107315717B (zh) | 一种用于执行向量四则运算的装置和方法 | |
KR101618669B1 (ko) | 마스크 레지스터를 이용한 점프를 위한 시스템, 장치, 및 방법 | |
US11579881B2 (en) | Instructions for vector operations with constant values | |
JP2018500630A (ja) | 4次元モートン座標変換プロセッサ、方法、システム、及び命令 | |
WO2021249054A1 (zh) | 一种数据处理方法及装置、存储介质 | |
CN108959180B (zh) | 一种数据处理方法及系统 | |
CN108292228B (zh) | 用于基于通道的步进收集的系统、设备和方法 | |
JP2018500659A (ja) | 高速ベクトルによる動的なメモリ競合検出 | |
TWI559219B (zh) | 用於選擇向量運算之元素的裝置及方法(二) | |
US10338926B2 (en) | Processor with conditional instructions | |
US10545757B2 (en) | Instruction for determining equality of all packed data elements in a source operand | |
CN110058884B (zh) | 用于计算型存储指令集运算的优化方法、系统及存储介质 | |
CN110914801B (zh) | 在数据处理设备中的向量交叉 | |
JP5664198B2 (ja) | 演算処理装置 | |
JP5753603B2 (ja) | データ要素内のビットをゼロ化するためのシステム、装置、および方法 | |
WO2019005151A1 (en) | SYSTEMS, APPARATUSES, AND METHODS FOR ADDING-MULTIPLYING COMPLEX DOUBLE NUMBERS OF SIGNED WORDS | |
WO2022067510A1 (zh) | 一种处理器、处理方法及相关设备 | |
JP2877468B2 (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 |