CN108959180A - 一种数据处理方法及系统 - Google Patents

一种数据处理方法及系统 Download PDF

Info

Publication number
CN108959180A
CN108959180A CN201810623994.0A CN201810623994A CN108959180A CN 108959180 A CN108959180 A CN 108959180A CN 201810623994 A CN201810623994 A CN 201810623994A CN 108959180 A CN108959180 A CN 108959180A
Authority
CN
China
Prior art keywords
data register
instruction
vector
identification information
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.)
Granted
Application number
CN201810623994.0A
Other languages
English (en)
Other versions
CN108959180B (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.)
Beijing Exploration Technology Co Ltd
Original Assignee
Beijing Exploration Technology Co Ltd
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 Beijing Exploration Technology Co Ltd filed Critical Beijing Exploration Technology Co Ltd
Priority to CN201810623994.0A priority Critical patent/CN108959180B/zh
Publication of CN108959180A publication Critical patent/CN108959180A/zh
Application granted granted Critical
Publication of CN108959180B publication Critical patent/CN108959180B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)

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 (10)

1.一种数据处理方法,其特征在于,所述方法包括:
指令执行单元,获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,将所述向量运算指令写入所述VALU中;
所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,将所述计算结果写入第二数据寄存器中。
2.如权利要求1所述的方法,其特征在于,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
3.如权利要求1所述的方法,其特征在于,所述数据存取单元,根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,具体包括:
所述数据存取单元,针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
所述数据存取单元,根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
所述数据存取单元,将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
4.如权利要求1所述的方法,其特征在于,所述VALU,根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果,具体包括:
所述VALU,根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
所述VALU,依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
所述VALU,将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
5.如权利要求1所述的方法,其特征在于,所述VALU,将所述计算结果写入第二数据寄存器中之后,所述方法还包括:
所述数据存取单元,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
6.一种数据处理系统,其特征在于,所述系统包括:
指令执行单元,用于获取向量运算指令,其中,所述向量运算指令包括第一指令、第二指令和第三指令,所述第一指令,包括第一操作码、至少两个第一数据寄存器标识信息、每个第一数据寄存器标识信息对应的起始操作数地址和步进,所述第二指令,包括第二操作码、源寄存器标识信息、所述至少两个第一数据寄存器标识信息,所述第三指令,包括第三操作码、运算类型、循环次数;
所述指令执行单元,还用于将所述向量运算指令,写入所述源寄存器标识信息对应的源寄存器中;
数据存取单元,用于从所述源寄存器中获取所述向量运算指令;
所述数据存取单元,还用于根据所述向量运算指令中的每个第一数据寄存器标识信息对应的起始操作数地址、步进,和所述循环次数,从向量存储单元中获取每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,并将所述每个第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数,写入对应的第一数据寄存器中;
每个第一数据寄存器,用于将该第一数据寄存器中的至少一个目标操作数,写入向量算数逻辑单元VALU中;
所述源寄存器,用于将所述向量运算指令写入所述VALU中;
所述VALU,用于根据所述向量运算指令以及每个第一数据寄存器对应的、数量为所述循环次数的目标操作数,进行向量计算,得到计算结果;
所述VALU,还用于将所述计算结果写入第二数据寄存器中。
7.如权利要求6所述的系统,其特征在于,所述运算类型包括向量内积类型、标量算数运算类型、带偏移量的向量内积运算、带偏移量的标题算术运算类型中的至少一种类型。
8.如权利要求6所述的系统,其特征在于,所述数据存取单元,具体用于:
针对每个第一数据寄存器,在所述向量存储单元中,根据所述向量运算指令中的该第一数据寄存器标识信息对应的起始操作数地址,获取该起始操作数地址对应的起始操作数;
根据该第一数据寄存器标识信息对应的步进和所述循环次数,以所述起始操作数地址为起始地址,依次获取每间隔所述步进的地址对应的、数量为第一数量的第二操作数,其中,所述第一数量,为循环次数减去1得到的数值;
将所述起始操作数和所述第二操作数,确定为该第一数据寄存器标识信息对应的、数量为所述循环次数的目标操作数。
9.如权利要求6所述的系统,其特征在于,所述VALU,具体用于:
根据所述向量运算指令中包括的运算类型,确定出第一运算公式和第二运算公式;
依次针对所述循环次数中的每个数字,将所述每个第一数据寄存器标识信息对应的该数字排序上的目标操作数,代入所述第一运算公式,得到该数字对应的第一计算结果;
将至少一个第一计算结果,代入所述第二运算公式,得到所述计算结果。
10.如权利要求6所述的系统,其特征在于,所述数据存取单元,还用于:
在所述VALU将所述计算结果写入第二数据寄存器中之后,将写入第二数据寄存器中的计算结果,写入所述向量存储单元中。
CN201810623994.0A 2018-06-15 2018-06-15 一种数据处理方法及系统 Active CN108959180B (zh)

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 true CN108959180A (zh) 2018-12-07
CN108959180B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353125A (zh) * 2018-12-20 2020-06-30 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN116594693A (zh) * 2023-07-04 2023-08-15 中国兵器科学研究院 一种空间远距离传输数据编解码指令集系统及计算系统
CN117170750A (zh) * 2023-09-04 2023-12-05 上海合芯数字科技有限公司 多源操作数指令的调度方法、装置、处理器、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
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有限公司 向量加载指令

Patent Citations (3)

* Cited by examiner, † Cited by third party
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 北京中科寒武纪科技有限公司 一种用于执行神经网络运算以及矩阵/向量运算的装置和方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111353125A (zh) * 2018-12-20 2020-06-30 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN111353125B (zh) * 2018-12-20 2022-04-22 上海寒武纪信息科技有限公司 运算方法、装置、计算机设备和存储介质
CN116594693A (zh) * 2023-07-04 2023-08-15 中国兵器科学研究院 一种空间远距离传输数据编解码指令集系统及计算系统
CN116594693B (zh) * 2023-07-04 2023-09-22 中国兵器科学研究院 一种空间远距离传输数据编解码指令集系统及计算系统
CN117170750A (zh) * 2023-09-04 2023-12-05 上海合芯数字科技有限公司 多源操作数指令的调度方法、装置、处理器、设备及介质
CN117170750B (zh) * 2023-09-04 2024-04-30 上海合芯数字科技有限公司 多源操作数指令的调度方法、装置、处理器、设备及介质

Also Published As

Publication number Publication date
CN108959180B (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN108959180A (zh) 一种数据处理方法及系统
JP3708176B2 (ja) データ処理装置及びデータ処理方法
CN104040482B (zh) 用于在打包数据元素上执行增量解码的系统、装置和方法
US20100312988A1 (en) Data processing apparatus and method for handling vector instructions
CN109313567A (zh) 虚拟化精确的基于事件的采样
CN104011650B (zh) 使用输入写掩码和立即数从源写掩码寄存器在目的地写掩码寄存器中设置输出掩码的系统、装置和方法
US9323530B2 (en) Caching optimized internal instructions in loop buffer
JPS6024985B2 (ja) デ−タ処理方式
CN104025022B (zh) 用于具有推测支持的向量化的装置和方法
CN104866443B (zh) 可中断存储独占
CN100361072C (zh) 流水线处理一系列处理指令的方法和设备
CN104350461B (zh) 具有不同的读和写掩码的多元素指令
EP0220682A2 (en) Data processing system
CN110362802A (zh) 用于将单据信息录入系统的方法、装置、计算设备、介质
CN109416633B (zh) 用于执行重新排列操作的设备及方法
US20140156978A1 (en) Detecting and Filtering Biased Branches in Global Branch History
JP3137117B2 (ja) 高速処理計算機
US6611956B1 (en) Instruction string optimization with estimation of basic block dependence relations where the first step is to remove self-dependent branching
CN110058886A (zh) 用于计算两个区块操作数中的半字节的数量积的系统和方法
RU2011152760A (ru) Оптимизации кода с использованием компилятора с двумя порядками следования байтов
CN108733412A (zh) 一种运算装置和方法
JPH0319986B2 (zh)
US6832334B2 (en) Computer register watch
US10180829B2 (en) System and method for modulo addressing vectorization with invariant code motion
EP0447101B1 (en) Processor with data format-independent instructions

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A data processing method and system

Granted publication date: 20220422

Pledgee: Jiang Wei

Pledgor: BEIJING INTENGINE TECHNOLOGY Co.,Ltd.

Registration number: Y2024980019734