CN1320479C - 并行运算设备、娱乐设备、处理方法和半导体设备 - Google Patents

并行运算设备、娱乐设备、处理方法和半导体设备 Download PDF

Info

Publication number
CN1320479C
CN1320479C CNB01803389XA CN01803389A CN1320479C CN 1320479 C CN1320479 C CN 1320479C CN B01803389X A CNB01803389X A CN B01803389XA CN 01803389 A CN01803389 A CN 01803389A CN 1320479 C CN1320479 C CN 1320479C
Authority
CN
China
Prior art keywords
arithmetic
pen recorder
inner product
multiply
term
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.)
Expired - Fee Related
Application number
CNB01803389XA
Other languages
English (en)
Other versions
CN1394314A (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.)
Sony Interactive Entertainment Inc
Original Assignee
Sony Computer Entertainment Inc
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 Sony Computer Entertainment Inc filed Critical Sony Computer Entertainment Inc
Publication of CN1394314A publication Critical patent/CN1394314A/zh
Application granted granted Critical
Publication of CN1320479C publication Critical patent/CN1320479C/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/3001Arithmetic instructions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/48Indexing scheme relating to groups G06F7/48 - G06F7/575
    • G06F2207/4802Special implementations
    • G06F2207/4814Non-logic devices, e.g. operational amplifiers

Landscapes

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

Abstract

本发明提供一种并行运算设备,能够容易地执行向量内积运算以及高效的矩阵运算。并行运算设备(100a)成对配备了寄存器(120a至120d)和FMAC(140a至140d),前者记录要进行运算的算术项,后者根据这些寄存器(120a至120d)中记录的算术项执行乘加运算。选择器(130a、130b)***寄存器(120a)和FMAC(140a)之间。选择器(130a、130b)在矩阵运算期间向FMAC(140a)提供寄存器(120a)中记录的算术项,在向量内积运算期间以循环方式一个一个地选择寄存器(120a至120d)并向FMAC(140a)提供选定的寄存器中记录的算术项。

Description

并行运算设备、娱乐设备、处理方法和半导体设备
技术领域
本发明涉及使用多个运算单元实现并行处理的技术,更确切地说,涉及实现高速处理的并行运算处理技术,比如对计算机图形的几何处理。
背景技术
要用三维计算机图形显示的某些物体可以模拟为多个基本图形(多边形)的一组。多边形的顶点用齐次座标表示为四维坐标(x,y,z,w)。对多边形顶点的坐标根据观察点坐标进行坐标变换,并且根据距离进行透视变换等。也就是,变换的方式为较远的物体显得较小。这种处理序列称为“几何处理”。
几何处理具有多种模式。例如,使用4×4变换矩阵的矩阵运算用于执行多边形的旋转、扩大、缩小、透视投影和平行移动。内积运算用于确定例如受光表面的亮度。矩阵和内积运算都需要乘加运算。
在三维计算机图形中,通常用于高端***的使用浮点的处理方法也用在娱乐设备领域,以产生娱乐图像比如视频游戏图像;以及必须严格限制成本的领域,比如便携信息终端。这是因为使用浮点的处理方法增加了数据的动态范围,并且易于编程,所以适于复杂的处理。
在浮点处理中,为了进行浮点数的矩阵运算,可以采用一种并行运算设备,它含有多个浮点乘加运算器(FMAC:Floating MultiplyAccumulator浮点乘累加器),能够高效地进行矩阵运算。多个FMAC实现并行运算操作,提高了处理速度。
某些设备,比如进行三维图像处理的娱乐设备和个人计算机,使用这种并行运算设备进行上述几何处理,能够高速地获得精细逼真的三维图像。
对于具有例如四个FMAC并行放置的并行运算设备,该并行运算设备易于进行数学表达式1所示的、使用4×4变换矩阵的矩阵运算。然而,它却难于进行数学表达式2所示的、向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)之间的内积运算。
这是因为要进行处理的坐标X、Y、Z和W是在与四个FMAC一对一的对应关系中独立运算的。
下面进行更具体的解释。
进行数学表达式1中的矩阵运算时,变换矩阵的一行对应的元素值和要进行变换坐标的坐标值,送入四个FMAC中的每一个,作为进行操作的算术项。输入的变换矩阵元素值和坐标的坐标值进行乘加运算,以执行矩阵运算。例如,变换矩阵第一行上的元素值(M11,M12,M13,M14)和坐标的坐标值(Vx,Vy,Vz,Vw)进行乘加运算,计算“M11·Vx+M12·Vy+M13·Vz+M14·Vw”。由于四个FMAC中的每一个都进行类似的乘加运算,矩阵运算便能高效地完成。在上式中,“·”表示乘法。
进行数学表达式2中的内积运算时,四个FMAC中的每一个只涉及元素X、Y、Z和W中的一个元素值。所以,Ax和Bx、Ay和By、Az和Bz以及Aw和Bw分别提供给四个FMAC。计算Ax·Bx、Ay·By、Az·Bz以及Aw·Bw作为它们各自的输出。因此,执行数学表达式2还需要一个单独的加法器,把四个FMAC的输出加起来,这就增加了电路的规模。
从以上论述显而易见,常规的并行运算设备能够提供高效的矩阵运算处理。不过,仅仅由并行提供的FMAC不能执行向量内积运算,往往需要一个附加的加法器。
(数学表达式1)
M 11 M 12 M 13 M 14 M 21 M 22 M 23 M 24 M 31 M 32 M 33 M 34 M 41 M 42 M 43 M 44 V x V y V z V w = M 11 · V x + M 12 · V y + M 13 · V z + M 14 · V w M 21 · V x + M 22 · V y + M 23 · V z + M 24 · V w M 31 · V x + M 32 · V y + M 33 · V z + M 34 · V w M 41 · V x + M 42 · V y + M 43 · V z + M 44 · V w
(数学表达式2)
(Ax,Ay,Az,Aw)·(Bx,By,Bz,Bw)=Ax·Bx+Ay·By+Az·Bz+Aw·Bw
发明内容
本发明的一个主要目的就是提供一种并行运算设备,在矩阵运算的效率与常规并行运算设备相同的情况下,能够容易地进行向量内积运算。
依据本发明的、解决上述问题的并行运算设备包括多个配对的记录装置和运算装置,前者记录要进行运算的算术项,后者根据记录装置中记录的算术项进行乘加运算,其中,在所有配对的所述记录装置中选择一个,而且为了向配对中的运算装置提供选定的记录装置中记录的算术项,在任何一对记录装置和运算装置之间***选择装置。
当选择装置在选择装置本身***的配对中选择记录装置时,本发明的并行运算设备能够执行每对中相互独立的、使用算术项的运算。也就是,可能进行类似于常规技术中的矩阵运算。
相反,当选择装置以循环方式在所有记录装置中一个接一个地选择记录装置时,可能使用每对的记录装置中记录的算术项执行运算。也就是,本发明的并行运算设备能够容易地执行内积运算而无须使用其它的电路,比如加法器。
这种并行运算设备也可以在记录装置和运算装置的配对中没有***选择装置时,在记录装置和运算装置之间***临时记录装置,用于临时记录配对中记录装置中记录的算术项。在这种情况下,选择装置的构造方式为,如果选定的记录装置所在的配对中没有***选择装置,就向运算装置提供临时记录装置中记录的算术项。
***临时记录装置,排除了从记录装置取出算术项时,记录装置输出端口的占用需求。这使得其中***了临时记录装置的配对的记录装置和运算装置能够执行其它处理。
在并行运算设备中,所有配对中的记录装置在矩阵运算期间记录用于矩阵运算的第一算术项,而在向量内积运算期间记录用于向量内积运算的第二算术项,选择装置的构造方式为,从配对本身的记录装置向配对本身的运算装置输入第一算术项,在内积运算期间,构造方式为,在所有配对中以循环方式一个一个地选择记录装置,并从选定的记录装置向配对本身的运算装置提供第二算术项。
每个运算装置执行运算的内容,是采用该配对的记录装置中记录的算术项,独立地分配到该配对的,并且,如果这种并行运算设备用于三维计算机图形,这种运算就与四维坐标分量的任何一个相关联。
本发明的另一个实施例是选择性地执行矩阵运算和向量内积运算的一种并行运算设备,包括多个记录装置,在矩阵运算期间记录用于矩阵运算的第一算术项,而在内积运算期间记录用于内积运算的第二算术项;多个运算装置,与多个记录装置形成一对一的对应关系,在矩阵运算期间每个运算装置接收对应的记录装置中记录的第一算术项后执行乘加运算,在内积运算期间运算装置中预定的一个接收所有记录装置中记录的第二算术项后执行乘加运算;以及选择装置,在矩阵运算期间选择对应于预定运算装置的记录装置,并向预定的运算装置提供这个记录装置中记录的第一算术项,而在内积运算期间,以循环方式一个一个地选择多个记录装置,并向预定的运算装置提供选定的记录装置中记录的第二算术项。
在这种并行运算设备中,运算装置的构造方式为,例如当算术项表示为浮点数时,进行浮点数的乘加运算。
依据本发明的娱乐设备是通过对表示物***置和形状的坐标进行矩阵运算,以及对用于表示物体图像的向量进行内积运算,从而对娱乐图像进行图像处理的一种娱乐设备,包括多个寄存器,在矩阵运算期间记录用于矩阵运算的第一算术项,在内积运算期间记录用于内积运算的第二算术项;多个乘加运算器,与多个寄存器形成一对一的对应关系,在矩阵运算期间通过每个乘加运算器接收对应的寄存器中记录的第一算术项进行乘加运算,在内积运算期间通过乘加运算器中预定的一个接收所有寄存器中记录的第二算术项进行乘加运算;以及一个选择器,在矩阵运算期间选择预定的乘加运算器对应的寄存器,并向预定的乘加运算器提供这个寄存器中记录的第一算术项,并且在内积运算期间以循环方式一个一个地选择多个寄存器,并向预定的乘加运算器提供选定的寄存器中记录的第二算术项。
本发明的另一个娱乐设备是通过进行矩阵和坐标值之间的矩阵运算,对表示物***置和形状的坐标进行坐标变换,以及进行物体表面法线方向上的法线向量和光源的位置向量之间的内积运算,以确定物体表面的显示模式,从而对娱乐图像进行图像处理的一种娱乐设备,包括多个寄存器,在矩阵运算期间记录坐标值和矩阵的任何一行对应的元素值,在内积运算期间记录法线向量和位置向量的任何一个分量对应的分量值;若干乘加运算器,与多个寄存器形成一对一的对应关系,在矩阵运算期间通过每个乘加运算器接收对应的寄存器中记录的坐标值和矩阵的一行对应的元素值进行乘加运算,在内积运算期间通过乘加运算器中预定的一个接收所有寄存器中记录的法线向量和位置向量的分量值进行乘加运算;一个选择器,在矩阵运算期间选择预定乘加运算器对应的寄存器,并向预定的乘加运算器提供这个寄存器中记录的坐标值和矩阵的一行对应的元素值,在内积运算期间以循环方式一个一个地选择多个寄存器,并向预定的乘加运算器提供选定寄存器中记录的法线向量和位置向量的分量值。
依据本发明的处理方法是能够选择性地执行矩阵运算和向量内积运算的一种处理方法,由配备了多个运算装置的一种设备来执行,包括以下步骤:在矩阵运算期间,根据运算装置的特性把算术项分配给多个运算装置,以提供用于矩阵运算的算术项,从而根据分配的算术项进行乘加运算;而在内积运算期间,提供在一个预定的运算装置中进行内积运算所用的算术项,使该运算装置能够根据算术项进行乘加运算。
依据本发明的计算机程序是可能选择性地执行矩阵运算和向量内积运算的一种计算机程序,使一台配备了多个运算装置的计算机执行以下步骤:在矩阵运算期间,根据运算装置的特性把算术项分配给多个运算装置,以提供用于矩阵运算的算术项,从而根据分配的算术项进行乘加运算;而在内积运算期间,提供在一个预定的运算装置中进行内积运算所用的算术项,使该运算装置能够根据算术项进行乘加运算。
依据本发明的半导体设备是可能选择性地执行矩阵运算和向量内积运算的一种半导体设备,内置于一台设备中,该设备含有配备了多个运算装置的计算机,使该设备执行以下步骤:在矩阵运算期间,根据运算装置的特性把算术项分配给多个运算装置,以提供用于矩阵运算的算术项,从而使每个运算装置能够根据分配的算术项进行乘加运算;而在内积运算期间,提供在一个预定的运算装置中进行内积运算所用的算术项,使该运算装置能够根据算术项进行乘加运算。
附图简要说明
图1是一台娱乐设备的框图;
图2是一台并行运算设备的框图;
图3是一个FMAC的内部框图;
图4是一个流程图,显示内积运算处理的过程;以及
图5是一台并行运算设备的框图。
具体实施方式
参考文中的附图具体介绍本发明的实施例。
图1说明了依据本发明的、包括并行运算设备的一个娱乐设备配置实例。
这个娱乐设备1包括两条总线,一条主总线B1和一条次总线B2,连接着多个半导体设备,每个都具有指定的功能。这些总线B1和B2通过总线接口INT互相连接或者断开。
主总线B1连接到主CPU 10(它是一个主要的半导体设备)、主存储器11(它由RAM组成)、主DMAC(直接存储器访问控制器)12、MPEG(运动图象专家组)解码器13和图形处理单元(下文中称为“GPU”)14(具有内建的帧存储器15作为图形存储器)。GPU 14连接到CRTC(CRT控制器)16以产生视频输出信号,所以帧存储器15中绘制的数据可以显示在未画出的显示设备上。
娱乐设备1激活时,主CPU 10通过总线接口INT从次总线B2上的ROM 23加载一个自举程序,并执行该自举程序以启动操作***。它控制介质驱动器27,从这个介质驱动器27中安装的介质28读取应用程序或数据,并将它存放在主存储器11中。它对从介质28读出的多种数据执行以上介绍的几何处理,比如多个基本图形(多边形)组成的三维物体数据(多边形顶点(代表点)的坐标值)。然后,它产生一个显示列表,其内容包含多边形定义信息(所用多边形形状的说明、其绘制位置、多边形组件的类型、颜色或纹理),作为几何处理的结果。
并行运算设备100包括在主CPU 10中,它用于几何处理等。后面将要介绍并行运算设备100的细节。
GPU 14是具有以下功能的一种半导体设备,存放绘图环境(包括多边形组件的绘图数据)、根据主CPU 10通知的显示列表读取绘图环境来进行透视图处理(绘图处理)以及在帧存储器15中绘制多边形。帧存储器15也可以用作纹理存储器。因此,帧存储器15中的象素图像可以作为纹理粘贴在要绘制的多边形上。
主DMAC 12是一种半导体设备,不仅控制着向主总线B1连接着的每个电路的DMA传递,而且还根据总线接口INT的状态控制着向次总线B2连接着的每个电路的DMA传递。MDEC 13是一种半导体设备,与主CPU 10并行运作,具有数据解压的功能,这些数据是以例如MPEG(运动图象专家组)或JPEG(联合图象专家组)格式压缩的。
次总线B2连接到次CPU 20(包括一个微处理器)、次存储器21(它由RAM组成)、次DMAC 22、ROM 23(其中存放着一种控制程序比如操作***)、声音处理半导体设备(SPU:声音处理单元)24(它读取声音存储器25中存放的声音数据并产生音频输出)、通讯控制部件(ATM)26(它通过未画出的网络与外部设备交换信息)、介质驱动器27(其中可以加载一种介质28,比如CD-ROM和DVD-ROM)和输入设备31。
次CPU 20根据ROM 23中存放的控制程序进行多种操作。次DMAC 22是一种半导体设备,它控制某些操作,比如只有当总线接口INT断开总线B1和次总线B2时,才进行向次总线B2连接着的每个电路的DMA传递。输入设备31配备着连接终端32,通过它从操纵装置33提供输入信号。
带有这种配置的娱乐设备1可以高速地进行矩阵运算和内积运算,在几何处理期间,通过主CPU 10中包括的并行运算设备100进行这些运算,下面将要介绍。
并行运算设备100高速地执行多边形顶点坐标变换时要进行的、变换矩阵和顶点坐标值之间的矩阵运算,以及确定显示条件比如物体表面亮度时要进行的、表面法线方向上的法线向量和光源位置向量的内积运算。
<实施例1>
图2显示了主CPU 10中包括的并行运算设备100的一个配置实例。
这个并行运算设备100a通过主总线B1从主存储器11获取几何处理需要的多边形顶点的坐标值和数据(算术项),比如矩阵运算所用的变换矩阵,并进行运算。
并行运算设备100a配置为从控制电路110、寄存器120a至120d、选择器130a和130b、FMAC 140a至140d作为运算单元,以及内部存储设备150。寄存器120a至120d和内部存储设备150通过内部总线B连接。
寄存器120a至120d中每一个与FMAC 140a至140d形成一对,寄存器设计为与FMAC具有一对一的对应关系。为了进行使用4×4变换矩阵的矩阵运算和四维向量的内积运算,这个实施例使用四对寄存器和FMAC,不过可以根据处理的需要确定适当的配对数目。
在寄存器120a和FMAC 140a之间配备了选择器130a和130b。
在这个实施例中,矩阵运算和内积运算所用的算术项是以浮点数给出的,但是不必说也可以使用定点数来代替。当算术项由定点数表示时,将会使用定点数乘加运算器而不是FMAC 140a至140d。
控制电路110控制着并行运算设备100a的整个运作。例如,该控制电路控制着内部存储设备150、寄存器120a至120d中算术项的记录以及选择器130a和130b的操作。
在控制电路110的控制下,寄存器120a至120d从内部存储设备150内的算术项(比如矩阵运算或内积运算之类的运算所用的变换矩阵的元素值、要进行变换之坐标的坐标值和向量分量值)中取得并记录分配给各自寄存器的算术项。
进行四维向量的内积运算时,寄存器从两个四维向量的分量值中,取得并记录分配给各自寄存器的分量值,作为算术项。例如,对两个四维向量(Ax,Ay,Az,Aw)和(Bx,By,Bz,Bw),寄存器120a记录分量值Ax和Bx,寄存器120b记录分量值Ay和By,寄存器120c记录分量值Az和Bz,寄存器120d记录分量值Aw和Bw。
使用4×4变换矩阵进行矩阵运算时,寄存器取得并记录要进行变换的四维坐标的坐标值和变换矩阵中分配给各自寄存器的一行中的元素值,作为算术项。例如,除了四维坐标的坐标值之外,寄存器120a至120d还记录变换矩阵的元素值;寄存器120a记录变换矩阵第一行的元素值,寄存器120b记录变换矩阵第二行的元素值,寄存器120c记录变换矩阵第三行的元素值,寄存器120d记录变换矩阵第四行的元素值,作为它们各自的算术项。寄存器120a至120d中每一个记录变换矩阵中每一行第一列的元素值和要进行变换的四维坐标的第一个分量值的一对、第二列的元素值和第二个分量值的一对、第三列的元素值和第三个分量值的一对、第四列的元素值和第四个分量值的一对,而且这些值每次读取一对。
不仅如此,寄存器120a至120d还记录与之形成一对的FMAC140a至140d的计算结果。
选择器130a和130b选择寄存器120a至120d之一,取得要记录在选定寄存器中的算术项,并把它提供给FMAC 140a。进行内积运算时,这些选择器以循环方式选择寄存器120a至120d之一,取得要记录在选定寄存器中的算术项,并把它提供给FMAC 140a。进行矩阵运算时,这些选择器总是选择寄存器120a,取得寄存器120a中记录的算术项,并把它提供给FMAC 140a。
根据当时进行运算的内容和运算进展情况等等,选择器130a和130b选择控制电路110指定的一个寄存器。
FMAC 140a至140d取得寄存器120a至120d中记录的两个算术项,并进行乘加。
图3是FMAC 140a的内部框图。由于其它FMAC 140b至140d也具有类似的配置,这里只介绍FMAC 140a的配置,省略其它FMAC140b至140d的介绍。
为了对取得的算术项进行乘加,配备了浮点数乘法器(FMUL:Floating MULtiply)141和浮点数加法器(FADD:Floating ADDer)142。取得的两个算术项首先由FMUL 141相乘。相乘的结果送到FADD 142。FADD 142把从FMUL 141送来的、相乘的结果一个一个地加起来。
例如,一个接一个地取得a0至an和b0至bn作为算术项时,FMAC140a获得以下计算结果:
a0·b0+a1·b1+a2·b2+…+a(n-1)·b(n-1)+an·bn
FMAC 140a至140d向它们各自配对的寄存器提供计算结果。
使用选择器130a和130b,在内积和矩阵运算期间FMAC 140a至140d执行以下运算。
进行内积运算时,FMAC 140a把由寄存器120a至120d通过选择器130a和130b提供的两个向量中分量的分量值相乘,并把相乘的结果一个一个地加起来。进行乘和加的次数可以计数,使内积运算的进展状态可知,在内积运算完成之前防止随后的指令启动。
进行矩阵运算时,FMAC 140a至140d把从对应的寄存器120a至120d取得的变换矩阵的元素值与形成配对的四维坐标的坐标值相乘,并把相乘的结果一个一个地加起来。
在控制电路110的控制下,内部存储设备150从主存储器11取得多边形顶点的坐标值、矩阵运算所用的变换矩阵的元素值、向量分量值的几何处理所需的数据,并记录这些值。不仅如此,内部存储设备150还从寄存器120a至120d取得和记录计算结果。这些计算结果通过内部存储设备150发送到主存储器11。
在内部存储设备150和主存储器11之间进行直接存储器访问传递,它允许高速数据交换,而且适于需要大容量数据处理的处理,比如图像处理。
下面介绍的处理过程是并行运算设备100a进行数学表达式2中的内积运算,也就是向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)之间的内积运算。图4是这种处理过程的一个流程图。
并行运算设备100a通过直接存储器访问传递取得主存储器11中存放的向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)的分量值,并把这些分量值记录在内部存储设备150中(步骤S101)。
寄存器120a至120d从内部存储设备150中存放的向量A(Ax,Ay,Az,Aw)和向量B(Bx,By,Bz,Bw)的分量值中取得分配给各自寄存器的分量值。也就是,寄存器120a取得Ax和Bx,寄存器120b取得Ay和By,寄存器120c取得Az和Bz,寄存器120d取得Aw和Bw(步骤S102)。
选择器130a和130b选择寄存器120a至120d之一,取得要记录在选定寄存器中的、向量A和向量B的分量值,并把它们提供给FMAC140a。控制电路110根据内积运算的进展状态,确定应当选择寄存器120a至120d中的哪一个。在控制电路110的控制下,选择器130a和130b选择寄存器120a至120d之一。这时,这些选择器首先选择寄存器120a,取得Ax和Bx,并把它们提供给FMAC 140a(步骤S103)。FMAC 140a使用FMUL 141和FADD 142进行Ax和Bx之间的乘加运算(步骤S104)。进行第一次乘加运算之前,清除FMAC 140a的内部状态。
乘加运算之后,FMAC 140a确定内积运算是否已经完成(步骤S105)。通过了解用于内积运算的向量分量值的数目,可以确定内积运算是否已经完成。对进行乘加运算的次数计数,当计数值等于收到的向量的分量值数目时,就确定内积运算已经完成。这样就可能从计数值发现从其中应当提取后续分量值的寄存器。内积运算是否已经完成的确定结果发送到控制电路110。
在这种情况下,内积运算尚未完成(步骤S105:N),所以控制电路110使选择器130a和130b选择寄存器120b。在控制电路110的控制下,选择器130a和130b选择寄存器120b,取得Ay和By,并把它们提供给FMAC 140a。FMAC 140a取得Ay和By后,FMUL 141和FADD 142进行乘加运算以获得Ax·Bx+Ay·By。同样,重复步骤S103至S105,直到内积运算完成,获得Ax·Bx+Ay·By+Az·Bz+Aw·Bw。
确定内积运算已经完成(步骤S105:Y)之后,FMAC 140a向寄存器120a提供计算结果(步骤S106)。输出之后,FMAC 140a清除内部状态(步骤S107)。输出的计算结果从寄存器120a向内部存储设备150提供并发送到主存储器11。
这就完成了内积运算。
选择器130a和130b允许在不同分量的分量值之间进行计算,使内积运算更容易进行。选择器130a和130b配备在寄存器120a和FMAC 140a之间,这并不意味着仅限于此。这些选择器也可以配备在寄存器120b和FMAC 140b之间、在寄存器120c和FMAC 140c之间或者在寄存器120d和FMAC 140d之间。
进行矩阵运算时,选择器130a和130b总是选择寄存器120a,只把寄存器120a中记录的算术项提供给FMAC 140a,而从不把其它寄存器120b至120d中记录的算术项提供给FMAC 140a。寄存器120b至120d中记录的算术项送入FMAC 140b至140d,FMAC 140b至140d与之形成它们各自的配对并进行处理。
例如,进行数学表达式1中的矩阵运算时,寄存器120a记录变换矩阵第一行的元素值(M11,M12,M13,M14)和四维坐标的坐标值(Vx,Vy,Vz,Vw)。寄存器120b记录变换矩阵第二行的元素值(M21,M22,M23,M24)和四维坐标的坐标值(Vx,Vy,Vz,Vw)。寄存器120c记录变换矩阵第三行的元素值(M31,M32,M33,M34)和四维坐标的坐标值(Vx,Vy,Vz,Vw)。寄存器120d记录变换矩阵第四行的元素值(M41,M42,M43,M44)和四维坐标的坐标值(Vx,Vy,Vz,Vw)。
FMAC 140a至140d顺序地取得FMAC与之形成它们各自配对的寄存器120a至120d中记录的元素值和坐标值,并进行运算。假设以FMAC 140a为例,FMAC 140a通过选择器130a和130b从寄存器120a取得M11和Vx,并使用FMUL 141计算M11·Vx。它们把这个结果送到FADD 142。然后,它们取得M12和Vy,并计算M12·Vy,把这个结果送到FADD 142并计算M11·Vx+M12·Vy。然后,它们对M13和Vz以及M14和Vw进行同样的计算,并计算M11·Vx+M12·Vy+M13·Vz+M14·Vw。其它FMAC 140b至140d进行同样的运算。因此,FMAC 140a至140d进行并行运算,从而与常规技术同样的速度执行4×4矩阵运算。
正如以上的介绍,并行运算设备100a是选择性地进行矩阵运算和向量内积运算的一种设备。该并行运算设备至少配备了寄存器120a至120d(在矩阵运算期间它们记录变换矩阵的元素值作为算术项,在内积运算期间它们记录向量分量值作为算术项)、FMAC 140a至140d(它们取得寄存器120a至120d中记录的算术项并进行乘加运算)、选择器130a和130b(它们从寄存器120a至120d中选择一个寄存器并向FMAC 140a提供选定的寄存器中寄存的算术项)。寄存器120b至120d与FMAC 140b至140d形成一对一的对应关系。选择器130a和130b在矩阵运算期间向FMAC 140a提供寄存器120a中记录的变换矩阵的元素值,而在内积运算期间以循环方式一个一个地选择寄存器120a至120d并向FMAC 140a提供选定的寄存器中记录的向量分量值。
从以上显而易见,选择器130a和130b使得可能选择性地进行矩阵运算和内积运算。
<实施例2>
图5是依据另一个实施例的一台并行运算设备100b的框图。
与图2所示的并行运算设备100a相比,并行运算设备100b的不同之处只有在寄存器120b至120d的输出端配备了临时寄存器160b至160d。
这个并行运算设备100b配置为寄存器120a至120d记录算术项,FMAC 140a至140d根据寄存器120a至120d中记录的算术项进行乘加运算。选择器130a和130b***寄存器120a和FMAC 140a之间,临时寄存器160b至160d***寄存器120b至120d和FMAC 140b至140d之间。选择器130a和130b从寄存器120a和临时寄存器160b至160d之中选择一个,并向FMAC 140a提供选定的寄存器120a或临时寄存器160b至160d中记录的算术项。这些元素的运算受到控制电路110的控制。
临时寄存器160b至160d与寄存器120b至120d具有一对一的对应关系。当它们对应的寄存器120b至120d中记录的算术项要送到FMAC 140b至140d或选择器130a和130b时,临时寄存器160b至160d临时存放这些值。
由于临时寄存器160b至160d临时存放来自寄存器120b至120d的算术项,即使算术项没有同时从寄存器120b至120d送入FMAC140a,如内积运算的情况,寄存器120b至120d的读取端口也不会被内积运算所用的算术项占用。因此,FMAC 140a正在进行矩阵运算的同时,其它FMAC 140b至140d还能够从寄存器120b至120d取得后续的算术项,进行乘加运算。
在以上介绍的实施例中,使用并行运算设备100的娱乐设备是作为实例来介绍,并不仅限于此。本发明的并行运算设备可以使用进行并行运算处理和至少进行矩阵运算和内积运算的任何信息处理器。另外,寄存器和乘加运算器(FMAC)配对的数目不限于4。可以按照有关设备进行的处理确定配对的数目。
不仅如此,还能够通过使计算机执行本发明的计算机程序来实现并行运算设备100。通过计算机可访问的记录介质比如磁盘设备或半导体存储器中记录的计算机程序和计算机中包含的控制程序(OS等)之间的合作,这个实施例在带有多个FMAC的计算机上形成了对应于选择器130a和130b的功能块。
正如以上的介绍,本发明在执行矩阵运算与常规技术同样高效的同时,还能够容易地执行向量内积运算。

Claims (9)

1.一种并行运算设备,包括:
多个配对的记录装置和运算装置,所有配对的所述记录装置在矩阵运算期间记录用于所述矩阵运算的第一算术项,而在向量内积运算期间记录用于所述内积运算的第二算术项,所有配对的所述运算装置根据所述记录装置中记录的算术项进行乘加运算,其中,
在所有配对的所述记录装置中选择一个,并且在预定的一对记录装置和运算装置之间***用于向所述配对中的运算装置提供选择的记录装置中所记录的所述算术项的选择装置;
所述选择装置在所述矩阵运算期间的构造方式为,从配对本身的记录装置向配对本身的运算装置输入所述第一算术项,在所述内积运算期间,构造方式为,在所有配对中以循环方式一个一个地选择所述记录装置,并从选定的记录装置向配对本身的运算装置提供所述第二算术项。
2.根据权利要求1的并行运算设备,其特征在于,在记录装置和运算装置的配对中没有***所述选择装置时,在记录装置和运算装置之间***临时记录装置,用于临时记录配对中记录装置中记录的所述算术项,以及
所述选择装置的构造方式为,如果选定的记录装置所在的配对中没有***所述选择装置,就向所述运算装置提供所述临时记录装置中记录的算术项。
3.根据权利要求1的并行运算设备,其特征在于,每个所述运算装置执行运算的内容,是采用所述配对的记录装置中记录的所述算术项,独立地分配到所述配对的。
4.根据权利要求3的并行运算设备,其特征在于,所述运算是与四维坐标分量的任何一个相关联的一种运算。
5.一种并行运算设备,选择性地执行矩阵运算和向量内积运算,包括:
多个记录装置,在所述矩阵运算期间记录用于所述矩阵运算的第一算术项,而在所述内积运算期间记录用于所述内积运算的第二算术项;
多个运算装置,与所述多个记录装置形成一对一的对应关系,在所述矩阵运算期间每个运算装置接收对应的记录装置中记录的所述第一算术项后执行乘加运算,在所述内积运算期间运算装置中预定的一个接收所有记录装置中记录的所述第二算术项后执行乘加运算;以及
选择装置,在所述矩阵运算期间选择对应于所述预定运算装置的记录装置,并向所述预定运算装置提供这个记录装置中记录的第一算术项,而在所述内积运算期间,以循环方式一个一个地选择所述多个记录装置,并向所述预定运算装置提供选定的记录装置中记录的第二算术项;
其中,所述算术项表示为浮点数,所述运算装置被构造为进行浮点数的乘加运算。
6.一种娱乐设备,通过对表示物***置和形状的坐标进行矩阵运算,以及对用于表示所述物体图像的向量进行内积运算,从而对娱乐图像进行图像处理,包括:
多个寄存器,在所述矩阵运算期间记录用于所述矩阵运算的第一算术项,在所述内积运算期间记录用于所述内积运算的第二算术项;
多个乘加运算器,与所述多个寄存器形成一对一的对应关系,在所述矩阵运算期间通过每个乘加运算器接收对应的寄存器中记录的所述第一算术项进行乘加运算,在所述内积运算期间通过乘加运算器中预定的一个接收所有寄存器中记录的所述第二算术项进行乘加运算;以及
一个选择器,在所述矩阵运算期间选择所述预定乘加运算器对应的寄存器,并向所述预定乘加运算器提供这个寄存器中记录的第一算术项,在所述内积运算期间以循环方式一个一个地选择所述多个寄存器,并向所述预定乘加运算器提供选定的寄存器中记录的第二算术项。
7.一种娱乐设备,通过进行矩阵和坐标值之间的矩阵运算,对表示物***置和形状的坐标进行坐标变换,以及进行所述物体表面法线方向上的法线向量和光源的位置向量之间的内积运算,以确定所述物体表面的显示模式,从而对娱乐图像进行图像处理,包括:
多个寄存器,在所述矩阵运算期间记录坐标值和所述矩阵的任何一行对应的元素值,在所述内积运算期间记录所述法线向量和所述位置向量的任何一个分量对应的分量值;
若干乘加运算器,与所述多个寄存器形成一对一的对应关系,在所述矩阵运算期间通过每个乘加运算器接收对应的寄存器中记录的所述坐标值和所述矩阵的所述一行对应的元素值进行乘加运算,在所述内积运算期间通过乘加运算器中预定的一个接收所有寄存器中记录的所述法线向量和所述位置向量的分量值进行乘加运算;
一个选择器,在所述矩阵运算期间选择所述预定乘加运算器对应的寄存器,并向所述预定乘加运算器提供这个寄存器中记录的所述坐标值和所述矩阵的所述一行对应的元素值,在所述内积运算期间以循环方式一个一个地选择所述多个寄存器,并向所述预定乘加运算器提供选定寄存器中记录的所述法线向量和所述位置向量的分量值。
8.一种处理方法,能够选择性地执行矩阵运算和向量内积运算,由配备了多个配对的记录装置和运算装置的一种设备来执行,所有配对的所述运算装置根据所述记录装置中记录的算术项进行乘加运算,该方法包括以下步骤:
在所有配对的所述记录装置中,在所述矩阵运算期间记录用于所述矩阵运算的第一算术项,而在向量内积运算期间记录用于所述内积运算的第二算术项;
在所有配对的所述记录装置中选择一个,并且在预定的一对记录装置和运算装置之间***用于向所述配对中的运算装置提供选择的记录装置中所记录的所述算术项的选择装置;
配置所述选择装置,在所述矩阵运算期间,从配对本身的记录装置向配对本身的运算装置输入所述第一算术项,在所述内积运算期间,在所有配对中以循环方式一个一个地选择所述记录装置,并从选定的记录装置向配对本身的运算装置提供所述第二算术项。
9.一种半导体设备,能选择性地执行矩阵运算和向量内积运算,内置于一台设备中,该设备含有配备了多个配对的记录装置和运算装置的计算机,所有配对的所述运算装置根据所述记录装置中记录的算术项进行乘加运算,所述设备执行以下步骤:
在所有配对的所述记录装置中,在所述矩阵运算期间记录用于所述矩阵运算的第一算术项,而在向量内积运算期间记录用于所述内积运算的第二算术项;
在所有配对的所述记录装置中选择一个,并且在预定的一对记录装置和运算装置之间***用于向所述配对中的运算装置提供选择的记录装置中所记录的所述算术项的选择装置;
配置所述选择装置,在所述矩阵运算期间,从配对本身的记录装置向配对本身的运算装置输入所述第一算术项,在所述内积运算期间,在所有配对中以循环方式一个一个地选择所述记录装置,并从选定的记录装置向配对本身的运算装置提供所述第二算术项。
CNB01803389XA 2000-11-02 2001-11-02 并行运算设备、娱乐设备、处理方法和半导体设备 Expired - Fee Related CN1320479C (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
JP335787/2000 2000-11-02
JP335787/00 2000-11-02
JP2000335787 2000-11-02
JP318590/01 2001-10-16
JP2001318590A JP3338043B2 (ja) 2000-11-02 2001-10-16 並列演算装置、エンタテインメント装置、演算処理方法、コンピュータプログラム、半導体デバイス
JP318590/2001 2001-10-16
PCT/JP2001/009616 WO2002037317A1 (fr) 2000-11-02 2001-11-02 Dispositif d'operation parallele, dispositif recreatif, procede de fonctionnement, programme informatique et dispositif a semi-conducteur

Publications (2)

Publication Number Publication Date
CN1394314A CN1394314A (zh) 2003-01-29
CN1320479C true CN1320479C (zh) 2007-06-06

Family

ID=26603342

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB01803389XA Expired - Fee Related CN1320479C (zh) 2000-11-02 2001-11-02 并行运算设备、娱乐设备、处理方法和半导体设备

Country Status (8)

Country Link
US (1) US20020143838A1 (zh)
EP (1) EP1335299A4 (zh)
JP (1) JP3338043B2 (zh)
KR (1) KR100882113B1 (zh)
CN (1) CN1320479C (zh)
AU (1) AU2002212702A1 (zh)
TW (1) TW571202B (zh)
WO (1) WO2002037317A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050099641A (ko) 2002-09-24 2005-10-14 인터디지탈 테크날러지 코포레이션 계산효율적인 수학 엔진
JP4046716B2 (ja) * 2004-10-06 2008-02-13 株式会社ソニー・コンピュータエンタテインメント 情報処理装置およびデータ伝送方法
JP3768516B1 (ja) 2004-12-03 2006-04-19 株式会社ソニー・コンピュータエンタテインメント マルチプロセッサシステムとそのシステムにおけるプログラム実行方法
JP2007122209A (ja) * 2005-10-26 2007-05-17 Nec System Technologies Ltd 3次元グラフィックス描画装置、その方法及びプログラム
JP4981398B2 (ja) * 2006-10-05 2012-07-18 日本電信電話株式会社 並列演算システム
KR100919236B1 (ko) * 2007-05-22 2009-09-30 한국전자통신연구원 병렬 프로세서를 이용한 3차원 그래픽 기하 변환 방법
CN102722412A (zh) * 2011-03-31 2012-10-10 国际商业机器公司 组合计算装置和方法
US8893083B2 (en) * 2011-08-09 2014-11-18 International Business Machines Coporation Collective operation protocol selection in a parallel computer
CN102411558B (zh) * 2011-10-31 2015-05-13 中国人民解放军国防科学技术大学 面向向量处理器的大矩阵相乘的向量化实现方法
US9411726B2 (en) * 2014-09-30 2016-08-09 Samsung Electronics Co., Ltd. Low power computation architecture
US20230056246A1 (en) * 2021-08-03 2023-02-23 Micron Technology, Inc. Parallel matrix operations in a reconfigurable compute fabric

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58207177A (ja) * 1982-05-28 1983-12-02 Nec Corp 演算装置
JPH07141325A (ja) * 1993-11-17 1995-06-02 Oki Electric Ind Co Ltd 信号処理装置
EP0952516A2 (en) * 1998-04-23 1999-10-27 Nec Corporation Product sum operation device capable of carrying out fast operation
US6005590A (en) * 1996-03-27 1999-12-21 Mitsubishi Denki Kabushiki Kaisha Geometrical operation apparatus for performing high speed calculations in a three-dimensional computer graphic display system
CN1253340A (zh) * 1998-10-30 2000-05-17 惠普公司 分布式运算体系结构的信号处理

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3763365A (en) * 1972-01-21 1973-10-02 Evans & Sutherland Computer Co Computer graphics matrix multiplier
US6556044B2 (en) * 2001-09-18 2003-04-29 Altera Corporation Programmable logic device including multipliers and configurations thereof to reduce resource utilization
US5278781A (en) * 1987-11-12 1994-01-11 Matsushita Electric Industrial Co., Ltd. Digital signal processing system
US5222230A (en) * 1988-01-29 1993-06-22 Texas Instruments Incorporated Circuitry for transferring data from a data bus and temporary register into a plurality of input registers on clock edges
US5311459A (en) * 1992-09-17 1994-05-10 Eastman Kodak Company Selectively configurable integrated circuit device for performing multiple digital signal processing functions
JP3649478B2 (ja) * 1995-07-20 2005-05-18 株式会社ソニー・コンピュータエンタテインメント 画像情報処理装置及び画像情報処理方法
US6247036B1 (en) * 1996-01-22 2001-06-12 Infinite Technology Corp. Processor with reconfigurable arithmetic data path
DE19625569A1 (de) * 1996-06-26 1998-01-02 Philips Patentverwaltung Signalprozessor
US5889689A (en) * 1997-09-08 1999-03-30 Lucent Technologies Inc. Hierarchical carry-select, three-input saturation
EP1049025B1 (en) * 1998-01-21 2009-08-19 Panasonic Corporation Method and apparatus for arithmetic operations
US6526430B1 (en) * 1999-10-04 2003-02-25 Texas Instruments Incorporated Reconfigurable SIMD coprocessor architecture for sum of absolute differences and symmetric filtering (scalable MAC engine for image processing)
US6606700B1 (en) * 2000-02-26 2003-08-12 Qualcomm, Incorporated DSP with dual-mac processor and dual-mac coprocessor
US6557022B1 (en) * 2000-02-26 2003-04-29 Qualcomm, Incorporated Digital signal processor with coupled multiply-accumulate units

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58207177A (ja) * 1982-05-28 1983-12-02 Nec Corp 演算装置
JPH07141325A (ja) * 1993-11-17 1995-06-02 Oki Electric Ind Co Ltd 信号処理装置
US6005590A (en) * 1996-03-27 1999-12-21 Mitsubishi Denki Kabushiki Kaisha Geometrical operation apparatus for performing high speed calculations in a three-dimensional computer graphic display system
EP0952516A2 (en) * 1998-04-23 1999-10-27 Nec Corporation Product sum operation device capable of carrying out fast operation
CN1253340A (zh) * 1998-10-30 2000-05-17 惠普公司 分布式运算体系结构的信号处理

Also Published As

Publication number Publication date
KR100882113B1 (ko) 2009-02-06
US20020143838A1 (en) 2002-10-03
AU2002212702A1 (en) 2002-05-15
WO2002037317A1 (fr) 2002-05-10
CN1394314A (zh) 2003-01-29
EP1335299A4 (en) 2009-09-23
KR20020069217A (ko) 2002-08-29
TW571202B (en) 2004-01-11
JP3338043B2 (ja) 2002-10-28
JP2002202964A (ja) 2002-07-19
EP1335299A1 (en) 2003-08-13

Similar Documents

Publication Publication Date Title
US11847550B2 (en) Sparse convolutional neural network accelerator
US10884734B2 (en) Generalized acceleration of matrix multiply accumulate operations
US10528864B2 (en) Sparse convolutional neural network accelerator
CN1320479C (zh) 并行运算设备、娱乐设备、处理方法和半导体设备
CN108537330B (zh) 应用于神经网络的卷积计算装置及方法
CN1203428C (zh) 信息处理装置
CN1993728A (zh) 用于浮点纹理数据的过滤单元
JP4759614B2 (ja) 処理装置
CN111898733B (zh) 一种深度可分离卷积神经网络加速器架构
US20220391206A1 (en) Generalized acceleration of matrix multiply accumulate operations
CN111459877A (zh) 基于FPGA加速的Winograd YOLOv2目标检测模型方法
WO2009093836A2 (en) Method, medium, and system for compressing and decoding mesh data in three-dimensional mesh model
JP2018067154A (ja) 演算処理回路および認識システム
US20220083857A1 (en) Convolutional neural network operation method and device
CN110414672B (zh) 卷积运算方法、装置及***
US7180518B2 (en) Image processing apparatus, image processing system, and image processing method
CN1311405C (zh) 图像处理装置
Zeng et al. Optimizing frequency domain implementation of CNNs on FPGAs
US20080055307A1 (en) Graphics rendering pipeline
CN112598566A (zh) 基于gpu的cuda的图像处理方法、装置和存储介质
CN114692841A (zh) 数据处理装置、数据处理方法及相关产品
CN113298236A (zh) 基于数据流结构的低精度神经网络计算装置及加速方法
JP2003225392A (ja) パチンコ機の画像転送装置
CN1231038A (zh) 运算装置和运算方法

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070606

Termination date: 20201102