CN101454799B - 用于对图像数据实施基于块和行的处理的集成电路装置 - Google Patents

用于对图像数据实施基于块和行的处理的集成电路装置 Download PDF

Info

Publication number
CN101454799B
CN101454799B CN2007800189257A CN200780018925A CN101454799B CN 101454799 B CN101454799 B CN 101454799B CN 2007800189257 A CN2007800189257 A CN 2007800189257A CN 200780018925 A CN200780018925 A CN 200780018925A CN 101454799 B CN101454799 B CN 101454799B
Authority
CN
China
Prior art keywords
data
memory element
row
input
memory
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
CN2007800189257A
Other languages
English (en)
Other versions
CN101454799A (zh
Inventor
理查德·P·克莱霍斯特
安特内·A·艾博
维莎·乔杜里
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.)
NXP BV
Original Assignee
NXP BV
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 NXP BV filed Critical NXP BV
Publication of CN101454799A publication Critical patent/CN101454799A/zh
Application granted granted Critical
Publication of CN101454799B publication Critical patent/CN101454799B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Processing (AREA)

Abstract

一种集成电路装置,包括:处理器阵列(2),具有处理器元件(4);以及存储器(6),具有按行(32)和列(30)排列的存储元件(8)。存储元件(8)的各列由各处理元件(4)进行寻址。输入定序器(14)和反馈路径(24)协作用于在存储器(6)中将输入数据重新排序,以执行基于块和行的处理。

Description

用于对图像数据实施基于块和行的处理的集成电路装置
技术领域
本发明具体但并非排他地涉及使用单指令多数据(SIMD)数据处理器阵列的集成电路装置,一种操作集成电路装置的方法,以及一种用于操作该集成电路装置的计算机程序。
背景技术
在SIMD处理阵列中,多个处理元件(PE)中分别从公共指令流接收相同的指令,并根据对于所述处理元件而言独一无二的数据(可称为本地数据)执行指令。这样的处理阵列适于(例如可能在图像处理领域中出现的)同时对多个数据项目执行相同操作的高重复性任务。
图1示出了典型的SIMD阵列,具有:处理器阵列2、以及存储器6,处理器阵列2含有多个处理元件4,存储器6具有按列30排列的、相应的多个存储元件8。每个处理元件4对各列30的存储元件8进行处理。指令输入26为所有处理元件并行地接收指令。
使用时,处理元件4同时对各自的存储元件8执行相同的指令(即公共指令)。
该结构提供了一种机制(mechanism),使每个处理元件能够执行或不执行公共指令,也就是说,指令输入26不仅接收公共指令序列,还接收指示由哪个处理元件执行各公共指令的数据。
这样的结构非常适于并行地对数据行(lines of data)进行处理。例如,考虑图像处理应用。这样的应用通常需要逐像素地处理数据,因此图1的并行SIMD结构通过首先对图像的第一行数据进行处理,然后再对下一行数据进行处理(每一行数据并行处理)的方式,能够产生卓越的处理性能。
然而,并不是所有数据都是以这种逐像素方式进行处理的,通常需要并行地对数据块进行处理。例如,诸如MPEG和JPEG之类的压缩算法对8×8的块采用数字余弦变换(DCT)。每个块表示8像素宽和8像素高的图像方块。
考虑另一示例,在该示例中必须对含有8个元素
Figure GSB00000661826100021
(k=0,1...7)的块i执行以下运算:
Q 0 i = F 0 i + C 0 以及
Q k i = F k i + C k (k=1,2...7)
为了实施变换,根据每个元素在块中的位置使用不同系数对其进行处理。
假设存在64个列30以及64个处理元件4,考虑排列在存储元件8的一行中的、与图像中水平行的64个像素相对应的一行数据的情况。一行的64个像素包含在8个不同的块内,并且处理元件4需要对每个块的第一像素、每个块的第二像素等执行不同的操作。
因此,为了在图1所示类型的SIMD阵列中执行处理,需要将公共指令添加到C0中。然而,这仅仅是针对每个块的第一像素的正确指令,其它像素的处理元件不执行指令。然后,使用乘C1的指令对每个块的第二像素进行处理,等等。这样做的结果是,只在8个处理器元件4之一上执行了各个指令。
因此,以该方式对块进行数据处理未能发挥出SIMD阵列的最大能力(full power)。
尽管这是简单的示例,然而在进行基于块的SIMD阵列处理时通常存在类似的处理困难。
当然,将有可能在SIMD阵列上执行某些处理操作,并且在更传统的处理器上执行其它处理操作,然而总的来说,能够在单独类型的设备上执行全部处理操作将更加方便。因此,需要针对块处理操作改进SIMD阵列的处理性能。
在WO2006/027751(Philips)中描述了设计目的略有不同的特定的SIMD阵列处理器。后者不仅允许处理器元件4访问各自的数据列30还允许处理器元件4访问相邻的列30,从而提供了数据列间的通信。这在某些处理操作中能够是十分有用的。
WO2006/027751还描述了能够将像素聚集在存储器中以便进行处理的方式。例如,在一装置中,第一列包括:头2个红像素、头2个绿像素、然后是头2个蓝像素。下一列包括:后2个红像素、后2个绿像素、以及后2个蓝像素。以这种方式沿阵列的水平方向继续扩展。因此,每一列包括一对像素值。这使得仅使用半数的处理元件就能够处理具有一定数目像素的数据行。
然而,该装置并未解决针对某些公共类型的块处理来改进SIMD阵列的处理性能的问题。
发明内容
根据本发明,提供了一种集成电路装置,包括:
处理器阵列,具有用于并行处理数据的多个处理器元件;
存储器阵列,包括可以由多个处理器元件并行访问的多个存储元件;
数据输入端,用于接收数据;
输入定序器,被配置用于接收输入数据,并将数据存储在存储器阵列的存储元件中;
输出处理器,用于从存储器阵列获取数据;
控制器,用于控制处理器阵列;以及
起始于输出处理器终止于输入定序器的反馈路径,所述输入定序器被配置用于从数据输入端和/或从反馈路径接收输入数据,所述输出处理器被配置用于从存储器阵列获取数据,并在输出端输出来自存储器阵列的数据,和/或将数据从存储器阵列沿反馈路径发送回输入定序器,
其中,所述集成电路装置被配置为:将输入数据以第一样式存储在存储元件中,以便以所述样式对数据进行处理,然后将数据从存储元件输出,使数据通过输出处理器、反馈路径和输入定序器,以便在存储元件中以不同样式重新排列数据,然后以所述不同样式对数据执行其他处理。
通过提供输入定序器和反馈路径,可以更高效地对数据进行排列,以便对数据进行并行处理,从而可以提高数据处理的效率。具体而言,能够对数据进行重新排列,使得即使在运算要求不同的数据排列的情况下,也能高效地执行多种操作。
例如,集成电路装置可以对作为数据行排列在数据行中的图像数据进行处理以执行基于像素的操作,然后能够在存储元件中以不同的方式重新排列数据,以执行基于块的操作。
存储器阵列可以是SIMD。
具体而言,存储器阵列可以具有由若干列存储元件构成的阵列,每列可以由一个或多个处理元件中进行寻址。
控制器可以被配置为,使集成电路装置能够可选择地以多种模式之一执行操作,其中,所述输入定序器根据所选择的模式以不同排列将输入数据存储在存储元件中。
模式之一可以是列处理模式,在所述列处理模式下,所述输入定序器被配置为:将数据项的序列作为输入数据接收,并通过先将数据项存储在一列存储元件中,然后依次将数据项存储在随后各列存储元件中的方式,将数据项存储在存储元件中。
模式之一可以是行处理模式,在所述行处理模式下,所述输入定序器被配置为:将数据项的序列作为输入数据接收,并通过先将数据项输出至一行存储元件,然后依次将数据项输出至随后各行存储元件的方式,将数据项输出至存储元件。
模式之一可以是重新排序模式,在所述重新排序模式下,所述输入定序器被配置为:在数据输入端将数据项作为输入数据进行接收,并按照存储元件中的重新排序的顺序将数据项输出至存储器阵列。
在重新排序模式下,控制器可以使数据项环绕起始于输入定序器、经存储元件、输出处理器、以及反馈路径返回至输入定序器的路径流动,从而按照重新排序的顺序将数据项存储在存储元件中。
控制器可以被配置为:以第一样式将输入数据存储在存储元件中,以便以所述样式对数据进行处理,然后将数据从存储元件输出,使数据通过反馈路径和输入定序器,以便在存储元件中以不同样式重新排列数据,然后以所述不同样式对数据执行其他处理。
另一方面,本发明涉及一种操作集成电路装置的方法,所述集成电路装置包括:输入定序器、具有用于并行处理数据的多个处理器元件的处理器阵列、具有可以由多个处理器元件并行访问的多个存储元件的存储器阵列、用于从存储器阵列获取数据的输出处理器、以及起始于输出处理器的输出终止于输入定序器的反馈路径,所述方法包括:
在输入定序器中接收输入数据;
以第一样式将输入数据存储在存储元件中;以及
以不同的第二样式从存储元件输出数据,并将输出数据通过输出处理器、反馈路径和输入定序器发送回存储元件。
另一方面,本发明还涉及一种计算机程序产品,包括计算机程序代码装置,所述计算机程序码装置被配置为,使如以上所述的集成电路装置执行以上所述的方法。
附图说明
为了更好地理解本发明,将参考附图仅以示例的方式来描述实施例,附图中:
图1示出了现有技术的SIMD阵列;
图2示出了根据本发明的第一实施例的集成电路装置;
图3示出了根据本发明的第二实施例的集成电路装置;
图4示出了8×8的数据块;
图5示意性地示出了块处理模式;以及
图6示意性地示出了行处理模式。
在不同的附图中为相同或相似的部件给出相同的参考标记。附图是示意性的而并不是按比例绘制的。
具体实施方式
参考图2,首先将描述根据本发明的集成电路装置的极其简单的示例。该示例是包括处理器阵列2以及存储器阵列6在内的SIMD阵列,其中,处理器阵列2包括用于进行并行处理的多个处理器元件4,存储器阵列6包括多个存储元件8。并行的数据路径10将处理器元件4与各存储元件8相连接。
在输入定序器(sequencer)14的输入端12处,将数据馈送至集成电路装置,其中定序器14按照将于以下详细阐明的方式对数据进行排序,并通过直接存储器访问通道16,将排序后的排序数据直接传送至存储元件8。
输出处理器18从存储元件8获取数据,并利用输出22将其输出。
输出处理器还能够从存储元件8获取数据,并通过反馈路径24将它们送(route)回输入定序器14。
数据流和处理受控制器20控制。
SIMD阵列的部件可以被方便地全部集成到单个芯片(single chip)上。然而,可选地,某些部件可以是独立的。例如,反馈路径24和/或输入定序器14可以作为独立的外部反馈路径和/或部件予以实现。这使得可以在并非专门为所述的本发明的实施例设计的芯片上实现SIMD阵列。
正如下面将予以阐述的,输入定序器14与反馈路径24的组合实现了对于处理的改进。为了清楚起见,将参考具体实施例来描述对根据本发明的SIMD阵列的使用。然而,应该注意的是,该示例比适于在这样的阵列中进行处理的许多示例要简单一些。具体而言,所描述的示例仅仅使用了处理器和存储器阵列2、6中的8个处理器元件4以及8个存储元件8,然而集成电路装置的实际实现可以具有许多比这个数量多得多的元件。
首先考虑以上示例,其中必须计算:
Q 0 i = F 0 i + C 0 以及
Q k i = F k i + C k (k=1,2...7)
在该示例中,输入定序器14将数据重新排序,放入块中,使每个处理器对单个块进行处理。
首先,输入定序器14将8个块中每个块的第一元素发送至8个存储元件8。然后处理器元件4并行地在所有存储元件8上执行“加C0”的指令。然后,定序器将每个块的第二元素发送至相应的存储元件8中,并且并行地对所有块执行“乘以C1”的指令。因此,在该示例中,并行地进行处理,因而其效率比使用图1的处理器要高得多。
反馈路径24使中间结果能够被发送回输入定序器14以进行进一步的处理。正如以下将予以描述的,反馈路径24还可以对数据进行重新排序。
下面将参考图3,说明本发明的IC装置的更实际的示例,图3示出了按列30和行32排列的存储元件8的阵列。每个处理器不是对单个存储元件而对列30进行操作。可以将每列称作“行存储器”。在该具体示例中,每列30包括8个存储元件8,并且存在并行的64个列30,然而还可能存在其他可选方案,特别是可以存在更多的行和列。为了清楚起见,未在图3中示出存储元件8的完整矩阵。存储元件8的行32由可以并行被处理的存储元件构成——参见图3。
当应用于存储元件8时,术语“行”和“列”本质上可以随意使用,但本说明书将使用与图3的取向相对应的行32和列30。还应注意的是,可以将数据行(图4)存储在存储元件的第一列30中。
作为处理的示例,使用图3的示例,考虑执行用于图像压缩的DCT类型的处理的情况,其中DCT处理是在排列成8×8阵列的64个像素的块上进行的。如图4所示,像素被编号为0至63,行40沿图4的水平方向,列42沿图4垂直的方向。因此,元素0至7构成一行数据。
将块序列作为数据项的序列通过输入12发送至输入定序器14,其中每个数据项表示一个像素。按照从元素0至63的顺序发送第一块的像素。然后按照从元素0至63的顺序发送第二块的像素,以此类推,直到第8块。
这8个块提供了用于填充64个行存储器30的数据,其中每个行存储器30具有8个存储元件。输入定序器14按以下方式将输入数据填充到存储元件8中。将第一组8个元素(第一块的元素0至7)存储在第一列30中,将第二组8个元素(第一块的元素8至15)存储在第二列30中,以此类推,直到第一块结束。因此,如果将第i个块的第k个数据元素表示为Dik(其中i=0,1...7并且k=0,1,2...63),那么元素就按照以下第一样式被填充到存储元件8中:
Figure GSB00000661826100071
Figure GSB00000661826100081
然后,处理器并行地对列30进行处理。每一列包含原始块的一行数据(将上表与图4进行比较)。因为每个处理器能够同时执行相同的指令,因此这样处理效率很高。
8×8块上的DCT在行和列上执行余弦变换,以上数据的顺序适于并行地执行第一变换(在图4的列42上)。然而,如果将数据的相同排列用于对行40(图4)执行第二变换,则对数据的排列使得无法并行地进行高效处理。
因此,通过输出处理器18将数据从存储元件8读出,并使数据通过反馈路径24和输入定序器回到行元件30中。按照以下顺序通过输出处理器18输出数据:首先取第一行数据(也就是每列30中的第一存储元件8的全部),然后取包括每列30的第二存储元件8在内的第二行,等等。因此,在示例中,按照D0,0D0,8D0,16...D0,56,D1,0...D7,56,D0,1,D0,10...D7,63的顺序通过输出处理器18输出数据。然后,按照与之前相同的方式将其读回到存储元件8中,首先将第一组8个元素存储到第一列30中,然后以此类推。这使得数据按照以下方式被排成第二样式:
Figure GSB00000661826100082
这些被重新排序的数据适于高效地对行40执行并行的DCT处理。
现在考虑相同处理器将对每个像素进行像素运算的情况。按照之前的方式,通过输出处理器18从行元件读出前一状态下的数据,并通过反馈路径24和输入定序器将其返回存储元件8。换言之,这表示通过反馈路径24对数据进行第二次传送。这再次将数据重新排序,产生如上所示的第三样式:
因此,重新排序的数据的第一列中具有8块中每块的第一像素、第二列中具有8块中每块的第二像素,以此类推,直到8块中每块的最后一个像素。
该数据排列非常有利于高效地执行诸如ZigZag扫描、量化等之类的基于多个像素的操作。
值得注意的是,对反馈路径的使用使得可以在无需首先将每个数据项存储在输入定序器14中的情况下重新排列数据,即使在该情况下重新排序的变化非常巨大(第一列甚至具有最后一块中的一个元素)也是如此。因此,如果需要从第一列开始将数据顺序读入列,那么只有在接收到最后的块之后才能够完成第一列。如果想要在不采用示例中所使用的通过回路24的2个通道的情况下由输入定序器单独地进行重新排序,那么将需要在输入定序器14中存储大量数据。实际上,输入定序器需要具有足够的存储器,以对几乎在任一时刻处理的全部数据进行存储。
在该示例中,执行了复杂的重新排序,但完全不需要将数据存储在输入定序器中。
反馈路径24允许以多种不同方式来处理相同的数据,每次在定序器14中将数据重新排序,以针对各处理操作正确地排列数据。因此,可以针对一个处理操作来排列数据,执行该操作,然后针对随后的处理操作重新排列所述数据,使用不同的顺序,使所述随后的处理操作的执行更加高效。
值得注意的是,如果将输入数据顺序输入到存储元件8中的行中(也就是说,如果逐行将输入数据项的序列填充到存储器阵列6中,即从第一行开始然后陆续填充随后的行),则能够以另一方式实现最终的数据顺序。多次通过反馈路径可以实现相同的效果。可以配置输入定序器,使之以这种方式将数据直接存储在存储元件8中。
以上示例相对简单。然而,在更大的能够一次并行处理全部图像数据行的处理器和存储器阵列(例如320个或640个甚至更多个处理器的阵列)中使用本发明特别有益。例如,在每个列30中可以存在64个存储元件8。本发明支持这样的大阵列以并行处理大量数据。
在这样更大的阵列中,使用反馈路径24节约输入定序器14中存储器容量的作用尤其显著。在这些情况下,在输入定序器14的存储量与将数据按期望的排列方式排列在存储元件8中所需的通过反馈路径的次数之间存在折中。在一种极端情况下,采用具有与存储器阵列相同存储量的输入定序器,能够在没有反馈路径的情况下将数据重新排列为任何样式。
然而,通常该方法针对大存储器阵列所需要的输入定序器14中的存储量是令人望而却步的。此外,在该情况下,通常输入定序器不能在接收到几乎全部数据之前开始写数据,而这将会导致处理延迟。对针对给定存储量,使用反馈路径所获得的交织程度大于不使用反馈路径时能够获得的交织(interleaving)。
在优选实施例中,输入定序器14被配置为采用一种以上的方式来排列数据,从而对数据执行不同的处理。
图5和6一般性地示出了输入定序器排列数据的2种方式;通常,根据对SIMD阵列的确切用途的不同,存在这里未示出的另外的方式。
广义上说,在图5所示的、被称为列模式的第一模式下,从第一列开始,将到达输入端12的输入数据项存储在元件中。然后,当第一列存满时,按箭头50所指示的那样,将数据元素存储在下一列中。
在列模式下,应尽可能将成块到达的输入数据分为行元素中,从而使来自一块的数据被保存在尽可能少的行元素中。由于不同的块位于不同的行元素中,这使得处理器元件4能够同时并行处理不同的块。对于基于块的处理,由于每个处理器元件4尽可能对包含数据块的各行元素30执行操作,因此这使得每个处理器能够高效地并行操作。
应意识到,如果块的长度与每一列30中存储元件8的数目不匹配,那么数据块与列间将不存在精确的对应。这可以通过多种方式予以应对,例如,可以用数目有所减少的元素来填充每一列。例如,在数据列用于存储表示为RGB(红绿蓝)值的2个像素值的情况下,将为每个像素值存储3个值。在这种情况下,每列8个存储元件可用于存储2个像素,剩下8个存储元件中的2个留着不用。
第二操作模式称作行模式,在所述行模式下,输入定序器获取输入数据项,并将所述输入数据项分布在存储元件的行中。从而,在图6所示的该操作模式下,输入定序器14从第一行开始填充,将第一数据项存储在第一列中,然后将随后的数据项存储在随后各列中,直到第一行结束位置。然后,填充第二行,接着填充第三行,以此类推。当不再有数据或在阵列填满的情况下停止填充。
行模式特别适于并行处理行数据,例如,数据以行数据(也就是表示图像的一行的数据项序列)的形式到达的情况。
如上所述,行模式可以通过将数据按行直接存储到存储元件8中,或通过首先将数据按列存储,然后使用反馈路径24将数据重新排序放入行中的方式予以实现。
由于在列模式下无需将行填满,因此这在每一行的长度与正在处理的数据行的长度不相一致的情况下是十分有用的。
应意识到,列模式下的数据块以及行模式下的数据行都只是简单地作为分组的数据项序列到达输入12的,因此无法通过检查数据判断数据是“块”还是“行”。
将数据沿由输入定序器14、存储元件8、输出处理器18、以及反馈路径24、返回至输入定序器14的环路进行发送的操作模式被称作重新排序模式。以上示出了这个比行模式或列模式更复杂的操作模式的示例。
通过提供对模式的选择,所述的实施例使单个的SIMD阵列能够执行各种处理任务。
如在以上具体示例中所示,通过以期望的样式将数据直接存储在存储元件中或通过使数据沿反馈路径流动,能够实现各种模式,并在存储元件中将数据存储成相应的样式。
处理器阵列尤其适于视频处理,在处理器阵列中可以方便地按行对数据行进行某些操作并按块对数据执行其它操作。实施例的集成电路装置能够高效地执行各种处理任务。
本领域技术人员将认识到,所描述的实施例的许多变体是可行的。例如,本领域技术人员将认识到,除了直接存储访问以外,还可以使用其它访问一行数据的方法。
可以对存储元件的个数进行调整,并且存储元件的个数不一定需要与处理元件的个数相同。
可以像上述SIMD一样,将该方法同多结构多数据(MIMD)阵列一起使用。
存储器阵列与处理器阵列无需分开放置,在某些实施例中存储器阵列可由与处理器相结合的存储元件构成,在这种情况下可以将存储元件称为寄存器。
还可以使用诸如在WO2006/027751中描述的那些装置。具体地,可以将处理元件配置为,不仅能够访问一列存储元件还能够访问与相邻处理元件相对应的相邻列。
此外,尽管在所述实施例中未沿反馈路径配备处理或排序元件,然而可选实施例可以包括这样的在反馈路径上的附加处理或排序。

Claims (13)

1.一种集成电路装置,包括:
处理器阵列(2),具有用于并行处理数据的多个处理器元件(4);
存储器阵列(6),包括多个处理器元件(4)可并行访问的多个存储元件(8);
数据输入端(12),用于接收数据;
输入定序器(14),被配置用于接收输入数据,并将数据存储在存储器阵列(6)的存储元件(8)中;
输出处理器(18),用于从存储器阵列(6)获取数据;以及
控制器(20),用于控制处理器阵列(2);
所述集成电路装置还包括:起始于输出处理器(18)终止于输入定序器(14)的反馈路径(24),所述输入定序器(14)被配置用于从数据输入端(12)和/或从反馈路径(24)接收输入数据,所述输出处理器(18)被配置用于从存储器阵列(6)获取数据,并在输出端(22)输出来自存储器阵列(6)的数据,和/或将数据从存储器阵列(6)沿反馈路径(24)发送回输入定序器(14),
其中,所述集成电路装置被配置为:将输入数据以第一样式存储在存储元件(8)中,以便以所述样式对数据进行处理,然后将数据从存储元件输出,使数据通过输出处理器(18)、反馈路径(24)和输入定序器(14),以便在存储元件(8)中以不同样式重新排列数据,然后以所述不同样式对数据执行其他处理。
2.根据权利要求1所述的集成电路装置,其中,存储器阵列(6)包括由列(30)构成的阵列,每列(30)包括多个存储元件(8),每列(30)可由相应的一个或多个处理器元件(4)进行寻址。
3.根据权利要求2所述的集成电路装置,其中,所述控制器(20)被配置为:使处理器阵列可选择地以多种模式之一执行操作,其中,根据所选择的模式,所述输入数据以不同排列被存储在存储元件(8)中。
4.根据权利要求3所述的集成电路装置,其中,所述模式之一是列处理模式,在所述列处理模式下,所述输入定序器(14)被配置为:将数据项的序列作为输入数据接收,并通过先将数据项存储在一列存储元件(30)中,然后依次将数据项存储在随后各列存储元件(30)中的方式,将数据项存储在存储元件(8)中。
5.根据权利要求3或4所述的集成电路装置,其中,所述模式之一是行处理模式,在所述行处理模式下,所述输入定序器(14)被配置为:将数据项的序列作为输入数据接收,并通过先将数据项输出至一行存储元件(32),然后依次将数据项输出至随后各行存储元件(32)的方式,将数据项按行输出至存储元件(8)。
6.根据权利要求3或4所述的集成电路装置,其中,所述模式之一是重新排序模式,在所述重新排序模式下,所述输入定序器(14)被配置为:将数据项的序列作为输入数据接收,并按照存储元件中的重新排序的顺序,而不是按照存储元件的行(32)或列(30)的顺序,将数据项输出至存储元件(8)。
7.根据权利要求6所述的集成电路装置,其中,在所述重新排序模式下,所述控制器被配置为:使数据项环绕起始于输入定序器(14)、经存储元件(8)、输出处理器(18)、以及反馈路径(24)返回至输入定序器(14)的路径流动,从而按照重新排序的顺序,将数据项存储在存储元件(8)中。
8.一种操作集成电路装置的方法,所述集成电路装置包括:输入定序器(14)、具有用于并行处理数据的多个处理器元件(4)的处理器阵列(2)、具有可以由多个处理器元件(4)并行访问的多个存储元件(8)的存储器阵列(6)、用于从存储器阵列(6)获取数据的输出处理器(18)、以及起始于输出处理器(18)的输出终止于输入定序器(14)的反馈路径(24),所述方法包括:
在输入定序器(14)中接收输入数据;
将输入数据以第一样式存储在存储元件(8)中;以及
以不同的第二样式从存储元件(8)输出数据,并将输出数据通过输出处理器(18)、反馈路径(24)和输入定序器(14)发送回存储元件(8)。
9.根据权利要求8所述的方法,其中,所述存储元件(8)按行
(32)和列(30)配置,每列(30)可由相应的一个或多个单独的处理器元件(4)进行寻址,所述方法还包括:
使所述集成电路装置可选择地以多种模式之一执行操作,其中,所述输入定序器(14)被配置为:根据所选择的模式,将输入数据以不同排列存储在存储元件(8)中。
10.根据权利要求9所述的方法,其中,所述模式之一是列处理模式,包括:
将数据项序列作为输入数据接收;以及
通过先将数据项存储在一列存储元件(30)中,然后依次将数据项存储在随后各列存储元件(30)中的方式,将数据项存储在存储元件(8)中。
11.根据权利要求9或10所述的方法,其中,所述模式之一是行处理模式,包括:
将数据项的序列作为输入数据接收;以及
通过先将数据项存储在一行存储元件(32)中,然后依次将数据项存储在随后各行存储元件(32)中的方式,将数据项存储在存储元件(8)中。
12.根据权利要求9或10所述的方法,其中,所述模式之一是重新排序模式,包括:
将数据项的序列作为输入数据接收;以及
按照存储元件(8)中的重新排序的顺序,将数据项存储到存储器阵列(6)中。
13.根据权利要求12所述的方法,包括:在重新排序模式下,将数据项存储到存储器阵列(6)中,将数据项从存储器阵列(6)输出,并将数据项通过反馈路径(24)发送回存储器阵列,以按照重新排序的顺序,将数据项存储在存储元件(8)中。
CN2007800189257A 2006-05-24 2007-05-16 用于对图像数据实施基于块和行的处理的集成电路装置 Expired - Fee Related CN101454799B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06114509.0 2006-05-24
EP06114509 2006-05-24
PCT/IB2007/051882 WO2007135635A1 (en) 2006-05-24 2007-05-16 Integrated circuit arrangement for carrying out block and line based processing of image data

Publications (2)

Publication Number Publication Date
CN101454799A CN101454799A (zh) 2009-06-10
CN101454799B true CN101454799B (zh) 2012-07-04

Family

ID=38481131

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800189257A Expired - Fee Related CN101454799B (zh) 2006-05-24 2007-05-16 用于对图像数据实施基于块和行的处理的集成电路装置

Country Status (5)

Country Link
US (1) US8078830B2 (zh)
EP (1) EP2030166A1 (zh)
JP (1) JP2009538464A (zh)
CN (1) CN101454799B (zh)
WO (1) WO2007135635A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5552692B2 (ja) 2009-02-20 2014-07-16 インテル・コーポレーション マルチモードアクセス可能な記憶装置
GB2470780B (en) * 2009-06-05 2014-03-26 Advanced Risc Mach Ltd A data processing apparatus and method for performing a predetermined rearrangement operation
CN102158722A (zh) * 2011-04-08 2011-08-17 清华大学 立体视频的红青渲染方法及装置
US10534608B2 (en) * 2011-08-17 2020-01-14 International Business Machines Corporation Local computation logic embedded in a register file to accelerate programs
US9529571B2 (en) * 2011-10-05 2016-12-27 Telefonaktiebolaget Lm Ericsson (Publ) SIMD memory circuit and methodology to support upsampling, downsampling and transposition
KR101979392B1 (ko) 2012-05-17 2019-05-16 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 프로그램 방법
US11080210B2 (en) 2018-09-06 2021-08-03 Micron Technology, Inc. Memory sub-system including an in package sequencer separate from a controller
US11061751B2 (en) 2018-09-06 2021-07-13 Micron Technology, Inc. Providing bandwidth expansion for a memory sub-system including a sequencer separate from a controller

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731724A (en) * 1984-11-23 1988-03-15 Sintra System for simultaneous transmission of data blocks or vectors between a memory and one or a number of data-processing units
US4918527A (en) * 1987-12-03 1990-04-17 Etat Francais (Cnet) Device and method with buffer memory, particularly for line/column matrix transposition of data sequences
EP0497493A2 (en) * 1991-01-29 1992-08-05 AT&T Corp. Signal processing system having reduced memory space
CN1142636A (zh) * 1995-08-04 1997-02-12 吴乾弥 管线式一心跳式一单指令多数据阵列处理结构及其方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0420004D0 (en) * 2004-09-09 2004-10-13 Koninkl Philips Electronics Nv Interconnections in SIMD processor architectures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4731724A (en) * 1984-11-23 1988-03-15 Sintra System for simultaneous transmission of data blocks or vectors between a memory and one or a number of data-processing units
US4918527A (en) * 1987-12-03 1990-04-17 Etat Francais (Cnet) Device and method with buffer memory, particularly for line/column matrix transposition of data sequences
EP0497493A2 (en) * 1991-01-29 1992-08-05 AT&T Corp. Signal processing system having reduced memory space
CN1142636A (zh) * 1995-08-04 1997-02-12 吴乾弥 管线式一心跳式一单指令多数据阵列处理结构及其方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jeff Y.F.Hsieh et al..TRANSPOSE MEMORY FOR VIDEO RATE JPEG COMPRESSION ON HIGHLY PARALLEL SINGLE-CHIP DIGITAL CMOS IMAGER.《IMAGE PROCESSING, 2000. PROCEEDINGS. 2000 INTERNATIONAL CONFERENCE ON》.2000,102-105. *
Shorin Kyo et al..An Integrated Memory Array Processor Architecture for Embedded Image Recognition Systems.《Proceedings of the 32nd International Symposium on Computer Architecture(ISCA"05)》.2005,134-145. *
Yoshihiro Fujita et al..A real-time vision system using an integrated memory array processor prototype.《Machine Vision and Applications, Springer-Verlag》.1994,第7卷(第4期),220-228. *

Also Published As

Publication number Publication date
US20090119479A1 (en) 2009-05-07
JP2009538464A (ja) 2009-11-05
WO2007135635A1 (en) 2007-11-29
CN101454799A (zh) 2009-06-10
EP2030166A1 (en) 2009-03-04
US8078830B2 (en) 2011-12-13
WO2007135635A9 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
CN101454799B (zh) 用于对图像数据实施基于块和行的处理的集成电路装置
CN100424654C (zh) 一种矩阵数据存取方法及其矩阵数据存储装置
CN100379246C (zh) 用于处理图像的装置和方法
CN103678190B (zh) 用于数字信号处理的基于片区的交织和解交织
US7797362B2 (en) Parallel architecture for matrix transposition
KR20200128360A (ko) 뎁스 와이즈 컨벌루션 혼합-정밀도 앤피유 타일
CN110222308A (zh) 一种矩阵乘矩阵运算方法及装置
US20140149480A1 (en) System, method, and computer program product for transposing a matrix
CN110263923A (zh) 张量卷积计算方法及系统
EP3605544B1 (en) Image processor comprising a shift register with reduced wiring complexity
US6963341B1 (en) Fast and flexible scan conversion and matrix transpose in a SIMD processor
GB2395299A (en) Selection of an element in a parallel processor array by activating a pair of row and column select lines that connect all the elements in the row or column
US20100070738A1 (en) Flexible results pipeline for processing element
US20040039765A1 (en) Fourier transform apparatus
CN112395092B (zh) 数据处理方法及人工智能处理器
CN101014948A (zh) 单指令多数据处理器结构中的互连
US11194490B1 (en) Data formatter for convolution
CN101401088B (zh) 具有高速pe间数据再配置功能的处理器阵列系统
US20080279463A1 (en) Image processing apparatus, image processing circuit, and image processing method
JP3593439B2 (ja) 画像処理装置
CN110457648A (zh) 一种用于lu分解的脉动阵列结构的实现方法
CN103914429A (zh) 用于粗粒度动态可重构阵列的多模式数据传输互连器
Jacobson et al. Algorithm development for distributed memory multicomputers using CONLAB
CN117273094A (zh) 神经网络加速器及神经网络加速方法、装置
Meyer et al. Oblivious gossiping on tori

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

Granted publication date: 20120704

Termination date: 20130516