CN1591316A - 同步周期正交数据转换器 - Google Patents

同步周期正交数据转换器 Download PDF

Info

Publication number
CN1591316A
CN1591316A CN200410078696.6A CN200410078696A CN1591316A CN 1591316 A CN1591316 A CN 1591316A CN 200410078696 A CN200410078696 A CN 200410078696A CN 1591316 A CN1591316 A CN 1591316A
Authority
CN
China
Prior art keywords
vector
component
components
group
order
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
CN200410078696.6A
Other languages
English (en)
Other versions
CN100517212C (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.)
Via Technologies Inc
Original Assignee
Via Technologies 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
Priority claimed from US10/666,083 external-priority patent/US7284113B2/en
Application filed by Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1591316A publication Critical patent/CN1591316A/zh
Application granted granted Critical
Publication of CN100517212C publication Critical patent/CN100517212C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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

一种正交数据转换器,用以将循序向量分量流的分量转换成为并序向量分量流的分量。数据转换器包括:一输入转子(rotator),是依据一数量(amount)来旋转每一组对应分量,该数量对应着该组对应分量的时隙;多个缓存器文件,是耦接至输入转子,用以接收一组已旋转对应分量,且其中一缓存器是用以储存每一组被旋转对应分量;一输出转子,是耦接至这些缓存器文件,用以接收储存在缓存器的多个向量分量,并依据一数量来旋转这些向量分量,该数量是对应这些向量分量的时隙;以及一控制器,当每一向量的分量已被储存于缓存器时,用以控制这些缓存器文件的寻址(addressing)以及这些向量分量的旋转。

Description

同步周期正交数据转换器
技术领域
本发明涉及一种数据格式的转换,特别涉及一种系统与方法,适用于以向量处理时的数据重整,用以将循序(垂直)向量分量流转换为并序(全向量或水平)向量分量流。
背景技术
图形数据可以向量格式来表示,此向量格式是包括几何分量(即为X,Y,Z与W)或像素值分量(即为R,G,B,A)。几何引擎是用以处理向量的分量;图1是表示为典型的几何引擎处理图形向量的方块图。图形向量10是被输入至一输入缓冲器12之中,此输入缓冲器12是以传统的记忆储存方式来储存图形向量。图形向量具有分量Xi,Yi,Zi以及Wi。输入缓冲器12是输出图形向量到一向量运算逻辑单元(vector arithmetic logic unit,ALU)14,此向量ALU 14是用以执行位于图形向量10的函数。向量ALU 14输出已处理过的图形向量18,此图形向量18是与输入图形向量10具有相同的向量格式。明确地说,被处理过的图形向量18包括Xout,Yout,Zout与Wout的分量,向量ALU 14是处理在时间并列(全向量或水平)向量分量流中的向量分量,每一分量X,Y,Z与W是在同一时间被向量ALU 14处理,而使得向量ALU 14的输出包含与输入图形向量10具有相同格式的每一向量Xout,Yout,Zout与Wout。
目前,纯量图形处理器是用以处理在垂直向量分量流中的图形向量。图2是表示为一用以处理图形向量的使用纯量ALU的单指令多数据(singleinstruction,multiple data,sIMD)处理单元。图形向量10是输入至一输入缓冲器20,输入缓冲器20是为一4排正交存取内存,此为已知常用的技术。输入缓冲器20是可用以重新排列每一图形向量10成为一般的分量。明确地说,输入缓冲器20的输出将为具有一般分量的向量,此向量是为一垂直向量格式。如图2所示,输入缓冲器20是输出一分量向量22,此分量向量22是具有一般或类分量。例如,此分量向量22为仅包含X分量或仅包含Y分量。
输入缓冲器20是在时间循序(垂直方向)向量分量流输出分量向量22至一纯量处理器24,此纯量处理器24是用以单独运算分量向量22的每一分量。纯量处理器24包括四个纯量ALU 26a-26d,其详细的操作情形可参考美国专利申请案号:No.10/354,795。
纯量处理器24是输出一纯量结果向量30,此纯量结果向量30是具有被运算后的向量分量的结果。由于纯量处理器24是用以运算在时间循序(垂直)向量分量流中的向量分量,明显地,纯量结果向量30是为一垂直(时间循序)格式。然而,纯量结果向量30具有与图形向量10不相同的向量格式,因此,纯量结果向量30需要被转换为一时间并序(全向量或水平方向)格式。
发明内容
本发明的目的是提出一种输出正交转换器,可用以将纯量处理器的分量重新排列为特定的格式。因此,输出正交转换器是用以转换纯量结果向量成为并序向量分量流的形式。
另外,本发明的目的更提出一种输出正交转换器,是用以在纯量处理器的操作后,重新排列向量分量成为并序向量分量流。另外,本发明更提出一种用于将垂直向量分量流同步转换为并序向量的方法。
依据本发明的目的,是提出一正交数据转换器,用以将循序向量分量流的分量转换成为并序向量分量流的分量。数据转换器包括:一输入转子(rotator),是依据一数量来旋转这些向量的每一相关分量组,数量是随着已旋转相关分量组的时隙而改变;多个缓存器文件,是耦接至输入转子,用以接收已旋转相关分量组,且其中一缓存器是用以储存每一已旋转相关分量组;一输出转子,是耦接至这些缓存器文件,用以接收储存于缓存器的多个向量分量,并依据一数量来旋转这些向量分量,该数量是随着这些向量分量的时隙而改变;以及一控制器,当每一向量的相关分量已被储存在缓存器时,用以控制这些缓存器文件的寻址(addressing)以及这些向量分量的旋转。由上述可知,控制器是可依据一预定顺序,将这些向量分量写入这些缓存器文件,在此同时,并依据一定顺序读取这些向量分量,用以产生并序向量分量流。
在本发明的较佳实施例中,这些缓存器文件具有多个分量缓存器,用以储存这些向量分量。每一向量具有x分量,且这些缓存器文件具有x列的分量缓存器。一般来说,每一列将具有x个分量缓存器。这些缓存器文件是用以在同一时钟周期内,进行写入与读取的操作。此外,控制器可轮流进行水平写入与读出的操作以及垂直写入与读出的操作。输出转子是可将这些向量分量旋转至一位置,该位置是为该输入转子的相对位置。
另外,本发明更提出一种方法,用以转换多个向量,是由一时间循序格式转换为一时间并序格式,其中,在时间循序格式中,这些向量包括多个相关分量组,且每一相关分量组是在同一时隙(time slot),以及,在时间并序格式中,每一向量是在一时隙。首先,依据一数量来旋转这些向量的每一相关分量组,数量是随着已旋转相关分量组的时隙而改变,并将每一已旋转相关分量组写入至多个缓存器文件的一缓存器;接着,读取位于这些缓存器文件的该缓存器,用以接收缓存器所储存的多个向量分量,并藉由一数量来旋转这些向量分量,数量是随着这些向量的时隙而改变。读取与写入到这些缓存器文件是可以在相同的周期内进行。在其中一实施例中,这些缓存器文件是可在n个时钟周期内,进行水平地读取与写入,接着在下一n个时钟周期内,进行垂直地读取与写入。因此,在每个n个时钟周期内,本发明的方法是可轮流进行水平写入与读出的操作以及垂直写入与读出的操作。
附图说明
图1是表示为典型的几何引擎处理图形向量的方块图。
图2是表示为一用以处理图形向量的使用纯量ALU的单指令多数据处理单元。
图3是表示为依据本发明的正交转换器的结构图。
图4所示,是表示为输入转子34的方块图。
图5所示,是表示为输出转子38的方块图。
图6所示,是用以表示用以产生转子控制位A1、A2以及位置位AB0-AB3的控制器36的结构图。
图7是表示为一多分量向量数据转换器。
图8所示,是表示为使用正交转换器32的四个分量正交转换的时序图。
附图符号说明
10-图形向量;12-缓冲器;14-向量运算逻辑单元;18-图形向量;20-输入缓冲器;22-分量向量;24-纯量处理器;30-纯量结果向量;26a-26d-纯量ALU;32-输出正交转换器;34-输入转子;36-控制器;40a-40d-缓存器文件排;38-输出转子;44a-44d、48a-48d-第一阶多路复用器排;46a-46d、50a-50d-第二阶多路复用器排。
具体实施方式
请参考图标说明,其中,所有图示是为说明本发明的较佳实施例,但本发明的实施范围并不限于此。图3是表示为依据本发明的正交转换器的结构图。由图2的纯量处理器24所产生的纯量结果向量30是被提供至一输入转子34。由前述可知,纯量结果向量30是在时间循序向量分量流中,藉以使相关分量存在于相同的时隙(slot)之中。例如,纯量结果向量30a包括X分量X0-X3,同样地,纯量结果向量30b包括Y分量Y0-Y3。在本实施例中的图形向量30虽然如已知技术所揭露的图形向量具有四个分量(即为X,Y,Y,Z以及W),不过,本发明的图形向量30并不限于此,亦可包括具有更多或更少分量的图形向量。
输入转子34是以一预定位置的旋转次数来旋转纯量结果向量30的分量,上述预定位置的旋转次数是由控制器36所决定,控制器36是传送一输入旋转控制信号至输入转子34以决定上述预定位置的旋转次数。在旋转之后,纯量结果向量30将被写入缓存器文件排B0-B3的分量缓存器中。缓存器文件排B0-B3具有缓存器文件Bx.0至Bx.3,用以储存纯量结果向量30的分量。控制器36是传送地址信号AB0-AB3至缓存器文件排B0-B3,用以读取或写入向量分量到预期的分量缓存器B0.0-B3.3。另外,控制器36是经由地址线AB0-AB3来控制将向量分量写入缓存器文件排B0-B3或由缓存器文件排B0-B3读出向量分量。分量缓存器B0.0-B3.3是可在相同的时钟周期内被读取或写入。
由分量缓存器B0.0-B3.3所提供的向量分量是由输出转子38所接收,此输出转子38是以一预定位置的旋转次数来旋转向量分量。另外,缓存器文件排B0-B3可以利用一种方法来读取,并以全向量格式来输出分量。因此,输出转子38所输出的已处理向量18是具有时间并序格式的向量分量。例如,输出转子38输出第一已处理向量18a,且此第一已处理向量18a具有分量X1,Y1,Z1与W1。由上述可知,输出转子38所输出的已处理向量18是位于时间并序向量分量流之中。
如图4所示,是表示为输入转子34的方块图。输入转子34包括第一阶多路复用器排44a-44d,此第一阶多路复用器排44a-44d是连接至第二阶多路复用器排46a-46d。纯量结果向量30是提供分量至第一阶多路复用器44a-44d的输入端。因此,第一阶多路复用器44a-44d的输入端a、b、c与d是接收X0,X1,X2,X3;Y0,Y1,Y2,Y3;Z0,Z1,Z2,Z3;等向量分量。第二阶多路复用器46a-46d是将旋转后的分量输出至分量缓存器B0.0-B3.3中。多路复用器46a的输出端A是连接至缓存器文件排B0,多路复用器46b的输出端B是连接至缓存器文件排B1,多路复用器46c的输出端C是连接至缓存器文件排B2,而多路复用器46d的输出端D是连接至缓存器文件排B3。控制器36的地址线AB0-AB3是用以在缓存器排B0-B3中,选择欲被写入向量分量的缓存器B0.0-B3.3。输入与输出转子控制位A0与A1是用以控制多路复用器44a-44d与46a-46d的操作,例如,向量分量可被输出的特定方向(亦即为适当地旋转)。另外,第一阶多路复用器44a-44d是由旋转控制位A1所控制,而第二阶多路复用器46a-46d是由旋转控制位A0所控制。由上述可知,本发明是可提供任何向量分量于每一第二阶多路复用器46a-46d的输入端。
如图5所示,是表示为输出转子38的方块图。输出转子38是相似于输入转子34,且使用相同的输入与输出控制位A0与A1来控制向量分量的旋转。输出转子38具有第一阶多路复用器排48a-48d,此第一阶多路复用器排48a-48d是输入端是连接至缓存器文件排B0-B3。由上述可知,多路复用器48a的输入端a是连接至缓存器文件排B0,多路复用器48b的输入端b是连接至缓存器文件排B1,多路复用器48c的输入端c是连接至缓存器文件排B2,而多路复用器48d的输入端d是连接至缓存器文件排B3。控制器36的地址线AB0-AB3是用以在缓存器排B0-B3中,选择欲被写入向量分量的缓存器B0.0-B3.3。转子控制位A1是用以选择输出第一阶多路复用器48a-48d其中一输入端的向量分量。第一阶多路复用器48a-48d的输出是相对应输出至第二阶多路复用器50a-50d的其中一输入。转子控制位A0是用以选择第二阶多路复用器50a-50d其中一输出端以作为输出。因此,藉由选择适当地选择转子控制位A0与A1的组合,则可用以控制第一阶多路复用器48a-48d与第二阶多路复用器50a-50d,以旋转缓存器向量分量。因此,第二阶多路复用器50a-50d可产生并序(全向量或水平)向量分量流。
如图6所示,是用以表示用以产生转子控制位A1、A2以及位置位AB0-AB3的控制器36的结构图。控制器36具有向上计数器52以及一向下计数器53。向上计数器52是依据指令周期来增加计数,向下计数器53则依据指令周期来减少计数。向上计数器52具有三个输出端,分别为0,1与2。向上计数器52的输出端0与输出端1是为输入与输出控制位A0与A1。向上计数器52的输出端2是提供一选择信号H/L至四个多路复用器61,60,62以及64。向下计数器53具有两个输出端0与1,是被输入至地址54,56与58以及多路复用器61。地址54,56与5 8是用以分别加入常数值1,2与3至向下计数器53的计数中,并将计数总和分别提供至多路复用器60,62与64的输入端。多路复用器60,62与64的输出端是提供缓存器排B0-B3的寻址。在指令周期1-4期间,选择信号H/L信号是用以选择多路复用器61,60,62或64的向上计数器输入端,藉以在指令周期1-4期间,提供如图8所示的地址。在指令周期5-8期间,选择信号H/L是用以选择多路复用器61的向下计数地址,并选择被提供至多路复用器62,62与64的加法电路的输出,藉以在指令周期5-8期间,提供如图8所示的地址。在周期9-12期间,选择信号H/L信号是再度选择向上计数器的输出,以提供至地址线AB0-AB3。
控制器36产生输入与输出旋转控制位A0与A1,在一周期期间中,如同地址线AB0-AB3一样,是依据适当的顺序,将向量分量写入分量缓存器或由分量缓存器读出向量分量。为了适当地重新排列分量数据成为适当地格式,分量首先需“水平”地写入分量缓存器B0.0-B3.3之中,接着,当新的分量被写入分量缓存器B0.0-B3.3的同时,则以“垂直”地由缓存器B0.0-B3.3中读出已被写入的分量。当新数据被写入缓存器B0.0-B3.3的同时,分量是同时地以”水平”地由缓存器B0.0-B3.3中读出。上述的操作是持续地反复,藉以转换上述的分量。
如图8所示,是表示为使用正交转换器32的四个分量正交转换的时序图。时序图是显示分量缓存器B0.0-B3.3是以地址线AB0-AB3来加以寻址。另外,时序图是表示缓存器文件排B0-B3的输入向量分量,并表示缓存器文件排B0-B3的输出向量分量,以及用于输入与输出向量的数量,如图8所示。
在第一到第四周期期间(意即周期1-4),向量分量是以”水平”地写入分量缓存器B0.0-B3.3。明确地说,在第一(1)指令周期期间,在第一时序的相关分量X0,X1,X2以及X3是被写入各自的分量缓存器B0.0,B1.0,B2.0以及B3.0。在第二(2)指令周期期间,在第二时序的相关分量Y0,Y1,Y2以及Y3是由输入转子34以顺时针旋转一个位置(Y3,Y0,Y1,Y2),并分别被写入分量计数器B0.1,B1.1,B2.1以及B3.1。同样地,在第三(3)指令周期期间,在第三时序的相关分量Z0,Z1,Z2以及Z3是由输入转子34以顺时针旋转两个位置(Z2,Z3,Z0,Z1),并分别被写入分量计数器B0.2,B1.2,B2.2以及B3.2。在第四(4)指令周期期间,在第四时序的相关分量W0,W1,W2以及W3是由输入转子34以顺时针旋转三个位置(W1,W2,W3,W0),并分别被写入分量计数器B0.3,B1.3,B2.3以及B3.3。在第一到第四指令周期期间,向量分量是仅被写入分量缓存器B0.0-B3.3,但并不由分量缓存器B0.0-B3.3读出。控制器36产生输入与输出旋转控制位A0与A1以及地址线AB0-AB3,用以以适当的顺序写入向量分量。
由第五(5)到第八(8)指令周期期间,是包括由分量缓存器B0.0-B3.3中读出向量分量以及将向量分量写入分量缓存器B0.0-B3.3的情形。如图8所示,在第五(5)指令周期期间,地址线AB0-AB3是依据图8所显示的表格来寻址适当的分量缓存器。一旦地址缓存器被寻址,则在先前在寻址周期期间被写入分量缓存器的分量将被读出,当向量分量被读出时,则新的向量分量将被写入分量缓存器中。因此,在第五(5)指令周期期间,向量分量X0,Y0,Z0与W0将分别由缓存器B0.0,B1.1,B2.2以及B3.3中被读出,且向量分量X4,X5,X6与X7是被分别写入B0.0,B1.1,B2.2以及B3.3。如图8所示,在第五(5)指令周期期间,并不需要旋转输入与输出向量。另外,在缓存器上已经存在一“45度计数器正向(顺时针)旋转”,例如,刚被读出的对角线的缓存器B0.0,B1.1,B2.2与B3.3成为新第一水平的缓存器组,用以作为写入。在周期6中,缓存器B1.0,B2.1,B3.2以及B0.3成为新第二水平的缓存器组,用以作为写入,这是由于在第6周期时,缓存器B1.0,B2.1,B3.2以及B0.3被读出。在周期7时,缓存器B2.0,B3.1,B0.2以及B1.3成为新第三水平的缓存器组,用以作为写入,这是由于在第7周期时,缓存器B1.0,B2.1,B3.2以及B0.3被读出。最后,在第8周期时,缓存器B3.0,B0.1,B1.2以及B2.3成为新第四水平的缓存器组,用以作为写入,这是由于在第8周期时,缓存器B1.0,B2.1,B3.2以及B0.3被读出。在第5至第8指令周期期间,分量缓存器是依据如图8所示的寻址来被“垂直地”读出与写入。
在第9周期期间,分量缓存器B0.0-B3.3是水平地读出与写入向量分量。在第九(9)到第十二指令周期中,用以寻址分量缓存器B0.0-B3.3的方法以及用以旋转输入与输出向量的方法是与第一到第四(1-4)指令周期相同。因此,在第九(9)指令周期期间,输出向量为X4,Y4,Z4与W4,上述的输出向量是在第五至第8(5-8)指令周期时被写入。另外,在第九(9)指令周期期间,X分量X8,X9,X10与X11是被写入到各自的分量缓存器。由此可知,在第九(9)到第十二(12)指令周期期间,向量分量是被“水平”地写入与读出。
为了持续转换向量分量到并序向量分量流,其程序是可选择性地“垂直”地写入与读出向量分量以及”水平”地写入与读出向量分量。由此可知,在第十二(12)指令周期期间之后,如第五(5)个指令周期所示的寻址与旋转将会再次出现,并会继续持续。由上述可知,第五(5)到第八(8)指令周期期间的寻址与旋转样本将会反复地出现,以作为向量分量的“垂直”写入与读出,而第九(9)到第十二(12)指令周期的样本将会反复地出现,以作为向量分量的“水平”写入与读出。此程序将会持续直到所有向量分量均被转换为止。
如上所述,是关于四个分量的向量。然而,在本发明的方法中,可适用于具有任何分量数目的向量,如图7所示。例如,数据流可表示成如下所示:
Xi={Xi0,Xi1,...,Xin-1}            (1)
其中,n为数据流中的分开的符记的宽度,且i为数据流中的分开的符记的数目。
然后在一些符记i的起始,将会产生输出Yi+j
Yi+j={Yi+j0,Yi+j1,...,Yi+jn-1}={Xij,Xi+1j,...,Xi+n-1j}    (2)
其中,j<n
为了了解上述的输出Yi+j,在此以一n排、高度为n的正交内存结构来作说明,如图7所示。输入数据为X,是利用分量来编入索引,而输出数据为Y,亦由分量来编入索引。内存输入数据为I,是利用排数来编入索引,而内存输出数据为0,亦由分量来编入索引。另外,读出地址与写入地址分别为R与W,亦由分量来编入索引。
在第一阶段,内存在每一个时钟j时被写入到每一个排数i,如下列所示:
Wij=j                                       (3)
Iij=X((i+j)mod n)j                              (4)
其中,“mod”,函数是用以保留除法之后的余数,而函数((i+j)mod n)是执行在j>0时的每一数值的顺时针旋转,旋转的次数是依据i值的大小。若i=0,则将不会执行任何旋转。若i=1,则执行一次的顺时针旋转。若i=2,则执行两次的顺时针旋转。若i=3,则执行三次的顺时针旋转。
在此同时,之前被写入的数据将由同样的位置被读出,如下列所示:
Rij=j                                   (5)
Yij=O((i+j)mod n)j                          (6)
其中,函数((i+j)mod n)是执行在j>0时的每一数值的顺时针旋转,旋转的次数是依据i值的大小。
此即为“水平”的读-写阶段。在n个时钟之后,之前所有的数据将会被读出,且新的数据将被写入。就此而论,上述的流程是由“水平”的读-写阶段切换到“垂直”的读-写阶段,例如,数据是以“水平”  地被写入,而以“垂直”地被读出。
在每一个时钟j时,数据是由每一排i被读入n排,如下列所示:
Rij=(i+j)modn                           (7)
Yij=O((i+j)mod n)j                         (8)
00032在此同时,新数据将被“垂直”地写入,以置于再下一个阶段时,数据能够被“水平”地读出,如下列所示:
Wij=(j+j)modn                           (9)
Iij=X((i+j)mod n)j                        (10)
上述的流程是持续地在“水平”与“垂直”之间转换每一个n列数据。输出流闲置的周期数是等于输入流闲置的周期数,以产生总延迟数的周期数为n。
由图7的说明可知,依据本发明的方法来重信排列数据,若需要去读/写元素j/*,则具有相同地址的排数将会被存取。然而,若需要去读/写元素*/i,则数据将会以“对角线地”被读出,以使每一排数的地址据以增加或减少。另外,在图7中,亦说明当在写入阶段时,数据是依据存取地址而会被旋转,当在读出阶段时,则数据将被反向旋转回来。
本发明虽以一较佳实施例揭露如上,然其并非用以限定本发明,任何熟习此项技艺者,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视后附的申请专利范围所界定者为准。

Claims (25)

1.一种数据转换器,用以转换一个群组的多个向量,是由一时间循序格式转换为一时间并序格式,其中,在该时间循序格式中,这些向量的多个对应分量形成多个组,每一组包括一时隙,以及,在该时间并序格式中,每一向量具有一时隙,该数据转换器包括:
一输入转子,是依据一数量来旋转每一组对应分量,该数量对应该组对应分量的时隙;
一排多个缓存器文件,是耦接至该输入转子,用以接收该被旋转的组对应分量,且具有一缓存器文件来储存每一被旋转的组对应分量;
一输出转子,是耦接至这些缓存器文件,用以接收并旋转一向量的多个分量至一数量,该数量是对应该向量的时隙;以及
一控制器,当每一向量的对应分量已被储存在该排缓存器文件的一缓存器时,用以控制该排缓存器文件的寻址,以及,控制该排缓存器文件的寻址,以搜集每一个向量的分量,以用于后续的输出旋转。
2.如权利要求1所述的数据转换器,其中,每一向量具有n个相关分量,其索引值是为0至(n-1),所以有0至(n-1)组对应分量;且,该输入转子是依据该数量,并以顺时针旋转这些相关分量组,该数量是等于这些相关分量组的索引值。
3.如权利要求1所述的数据转换器,其中,这些向量的数量为n个,其索引值为0至(n-1);且,该输出转子是依据该数量,并以顺时针旋转这些向量的这些向量分量,该数量是等于这些向量的索引值。
4.如权利要求1所述的数据转换器,其中,于该排缓存器文件中的每一缓存器文件包括一缓存器,用以储存这些向量分量。
5.如权利要求4所述的数据转换器,其中,每一向量具有n个分量,且每一缓存器文件具有n个分量缓存器。
6.如权利要求5所述的数据转换器,其中,该排缓存器文件具有n个缓存器文件。
7.如权利要求1所述的数据转换器,其中,该排缓存器文件是用以在同一时钟周期内写入与读出这些相关分量组。
8.如权利要求1所述的数据转换器,其中,该控制器可在该排缓存器文件中,轮流进行水平写入与读出的操作以及垂直写入与读出的操作。
9.如权利要求8所述的数据转换器,其中,该向量具有n个分量,且该控制器是水平地写入n组相关分量后并水平地读出n个向量。
10.如权利要求9项所述的数据转换器,其中,在该控制器水平地写入n组的相关分量后水平地读出n个向量之后,该控制器是垂直地写入n组相关分量后并垂直地读出n个向量。
11.如权利要求1所述的数据转换器,其中,该输出转子是将这些向量分量旋转至一位置,该位置是为该输入转子的相对相反的位置。
12.一种用以将一个群组的多个向量由一时间循序格式转换为一时间并序格式的方法,其中,在该时间循序格式中,这些向量的多个对应分量形成多个组,每一组包括一时隙,以及,在该时间并序格式中,每一向量具有一时隙,该方法包括:
对于每一组对应分量,依据一数量来旋转这些对应分量,该数量是对应该对应分量的时隙,并将每一组被旋转相关分量写入至一排多个缓存器文件中的一组分开的缓存器;以及
对于该群组中的每一个向量,读取该排缓存器文件中的被选择缓存器,用以搜集这些向量的分量,并旋转这些被搜集分量一数量,该数量是对应该向量的时隙。
13.如权利要求12所述的方法,其中,若这些分量是被水平地写入该排缓存器文件,则这些分量是被水平地由该排缓存器文件中读出。
14.如权利要求12所述的方法,其中,若这些分量是被垂直地写入该排缓存器文件,则这些分量是被垂直地由该排缓存器文件中读出。
15.如权利要求12所述的方法,其中,当其中一组对应分量被写入时,则在同一时钟周期内,一向量的分量被读出。
16.如权利要求12所述的方法,其中,每一向量具有n个分量,且,n组对应分量是在n个时钟周期内被水平地写入,且这些向量亦在相同的该n个时钟周期内被水平地读出。
17.如权利要求16所述的方法,其中,在该n个时钟周期后随之而来的其它n个时钟周期内,n组相关分量是被垂直地写入,且多个向量被垂直地读出。
18.一种数据转换器,用以转换一个群组的多个向量,是由一时间循序格式转换为一时间并序格式,其中,在该时间循序格式中,这些向量的多个对应分量形成多个组,每一组包括一时隙,以及,在该时间并序格式中,每一向量具有一时隙,该数据转换器包括:
一输入旋转装置,是依据一第一预定数量,来旋转这些向量的每一组对应向量,该第一预定数量是对应一特定组相关分量;
一储存装置,是耦接于该输入旋转装置,用以储存一组被旋转对应分量;以及
一输出旋转装置,是耦接于该储存装置,用以从该储存装置中接收一向量的分量,并依据一第二预定数量,来旋转这些分量,该第二预定数量是对应该特定组相关分量。
19.如权利要求18所述的数据转换器,其中,
该输入旋转装置为一输入转子,是依据该第一预定数量来旋转所有向量的每一组对应分量,该第一预定数量是对应一组对应分量的时隙;
该储存装置包括一排多个缓存器文件,具有一缓存器文件是用以储存每一组被旋转对应分量;以及
该输出旋转装置为一输出转子,依据该第二预定数量,来接收并旋转一向量的分量,该第二预定数量是对应该向量的时隙。
20.如权利要求19所述的数据转换器,其中,该储存装置是用以在同一时钟周期内写入与读出这些向量分量。
21.如权利要求20所述的数据转换器,其中,该储存装置是在一预定数目的时钟周期内,用以水平地写入这些对应分量,接着并水平地读出多个向量。
22.如权利要求21所述的数据转换器,其中,在其它预定数目的时钟周期内,该储存装置是用以垂直地写入这些对应分量,接着并垂直地读出多个向量。
23.如权利要求18所述的数据转换器,其中,更包括一控制装置,是耦接至该输入旋转装置、该储存装置与该输出旋转装置,用以控制该输入旋转装置、该储存装置与该输出旋转装置的操作。
24.如权利要求23所述的数据转换器,其中,该控制装置是用以控制将这些向量分量写入与读出该储存装置,并用以控制该输入旋转装置与该输出旋转装置,以旋转这些向量分量。
25.如权利要求18所述的数据转换器,其中,该输出旋转装置是将这些相关分量组旋转至一方向,该方向是与该输入旋转装置旋转一组对应分量的方向相反。
CNB2004100786966A 2003-09-19 2004-09-17 同步周期正交数据转换器和数据转换方法 Active CN100517212C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/666,083 2003-09-19
US10/666,083 US7284113B2 (en) 2003-01-29 2003-09-19 Synchronous periodical orthogonal data converter

Publications (2)

Publication Number Publication Date
CN1591316A true CN1591316A (zh) 2005-03-09
CN100517212C CN100517212C (zh) 2009-07-22

Family

ID=34619749

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100786966A Active CN100517212C (zh) 2003-09-19 2004-09-17 同步周期正交数据转换器和数据转换方法

Country Status (2)

Country Link
CN (1) CN100517212C (zh)
TW (1) TWI263934B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792260A (zh) * 2010-03-17 2012-11-21 高通Mems科技公司 用于以交替的定向进行帧缓冲器存储及检索的系统及方法
CN106775592A (zh) * 2011-12-23 2017-05-31 英特尔公司 使用三个标量项的超级乘加(超级madd)指令

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102792260A (zh) * 2010-03-17 2012-11-21 高通Mems科技公司 用于以交替的定向进行帧缓冲器存储及检索的系统及方法
CN106775592A (zh) * 2011-12-23 2017-05-31 英特尔公司 使用三个标量项的超级乘加(超级madd)指令
CN106775592B (zh) * 2011-12-23 2019-03-12 英特尔公司 处理器、用于计算系统的方法、机器可读介质和计算机系统

Also Published As

Publication number Publication date
TWI263934B (en) 2006-10-11
CN100517212C (zh) 2009-07-22
TW200512644A (en) 2005-04-01

Similar Documents

Publication Publication Date Title
EP0390907B1 (en) Parallel data processor
EP0248906B1 (en) Multi-port memory system
US5410727A (en) Input/output system for a massively parallel, single instruction, multiple data (SIMD) computer providing for the simultaneous transfer of data between a host computer input/output system and all SIMD memory devices
JP2021508125A (ja) 行列乗算器
US7761694B2 (en) Execution unit for performing shuffle and other operations
WO2001035224A1 (en) Bit-serial memory access with wide processing elements for simd arrays
EP1586991A2 (en) Processor with plurality of register banks
JP2010521728A (ja) データ圧縮のための回路及びこれを用いるプロセッサ
CN102541809A (zh) 一种动态可重构处理器
CN106846255B (zh) 图像旋转实现方法及装置
EP2943875A1 (en) Data processor and method for data processing
CN116521611A (zh) 一种深度学习处理器的泛化架构设计方法
CN1268231A (zh) 数据块规模可变的2维逆向离散余弦变换机
EP1314099B1 (en) Method and apparatus for connecting a massively parallel processor array to a memory array in a bit serial manner
CN1591316A (zh) 同步周期正交数据转换器
EP0383342B1 (en) Microprocessor
CN101101538A (zh) 处理器
CN112463218B (zh) 指令发射控制方法及电路、数据处理方法及电路
KR101555545B1 (ko) 메모리 제어장치 및 정보처리장치
US6728863B1 (en) Wide connections for transferring data between PE's of an N-dimensional mesh-connected SIMD array while transferring operands from memory
FR3118505A1 (fr) Système de traitement de matrices par plusieurs processeurs simultanément
CN111258632B (zh) 数据选择装置、数据处理方法、芯片及电子设备
JP2011103025A (ja) データ入出力装置およびそれを用いたデータ処理装置
JP2887369B2 (ja) 2次元配列データアクセス装置
JP2824976B2 (ja) 2次元配列データ回転装置

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