CN101446890A - 流处理装置、流处理方法和数据处理系统 - Google Patents

流处理装置、流处理方法和数据处理系统 Download PDF

Info

Publication number
CN101446890A
CN101446890A CNA2008101794807A CN200810179480A CN101446890A CN 101446890 A CN101446890 A CN 101446890A CN A2008101794807 A CNA2008101794807 A CN A2008101794807A CN 200810179480 A CN200810179480 A CN 200810179480A CN 101446890 A CN101446890 A CN 101446890A
Authority
CN
China
Prior art keywords
mentioned
stream
data
data stream
control
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.)
Pending
Application number
CNA2008101794807A
Other languages
English (en)
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.)
Renesas Electronics Corp
Original Assignee
Renesas Technology Corp
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 Renesas Technology Corp filed Critical Renesas Technology Corp
Publication of CN101446890A publication Critical patent/CN101446890A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Computer And Data Communications (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

本发明提供一种流处理装置、流处理方法和数据处理系统。与数据流区分而另行准备控制用流,根据控制用流而先进行程序和参数的更新。在对流处理装置内的程序和参数进行存储的存储器中准备双缓存区域。还预先记载输入到控制用流中的数据流的位置,用于读出数据流的缓存器也进行多路化,从而先读出进行下一处理的数据流的起始部分。根据本发明,能够提供一种能够使连续地处理多个数据流时的处理性能提高的流处理装置。

Description

流处理装置、流处理方法和数据处理系统
技术领域
本发明涉及处理数据串的流处理技术。
背景技术
与本发明相关的背景技术存在专利文献1所示出的方法。在专利文献1中示出了这样的装置,即该装置根据来自数据流处理部内的处理器的请求而实现该处理器的命令存储器、数据存储器内的程序/数据集的重写。
专利文献1:日本特开2004-179809号公报
发明内容
在连续处理多个数据流的情况下,当从某一数据流的处理完成到下一数据流的处理开始为止需要花费时间时,这样的时间是无用的,会造成流处理装置的有效性能下降。在流处理装置中对数据流的处理使用处理器的情况下,在数据流的处理中使用的程序的大部分不相同,或者必需的参数存在很大不同时,在开始各数据流处理之前,直到可在流处理装置中利用这些程序和参数为止需要很长的时间,将会给性能带来很大的影响。另外,在流被存储在外部的存储器的情况下,当开始新的流处理时,从存储器到读出流的最初部分为止需要耗费时间,在此期间流处理装置的工作停止。这会带来如下的问题:当特别是流切换频率较高时,将会给性能带来很大的影响。
本发明的目的在于,使连续处理多个数据流时的处理性能提高。
本发明的上述及其他目的和新特征将会根据本说明书的记载以及附图而得到明确。
简单说明本申请中所公开的发明中具有代表性的技术方案的概要,如下。
即,与数据流区分而另行准备控制用的控制流,与数据流的处理相比,先根据控制流进行保持在可从流处理用的处理器高速访问的存储器中的程序和参数的重写处理。换言之,与处理器对缓冲存储器内的数据流的运算处理相并行,上述数据传送控制装置在其外部和上述缓冲存储器之间对数据流和控制流的数据传送进行控制。
简单说明在本申请中所公开的发明中具有代表性的技术方案所能得到的效果,如下。
即,能够在进行流处理的处理器中进行某一数据流处理时,对于进行下一处理的数据流的全部或者最初的部分,将它们预先准备到可从进行数据流处理的处理器进行高速访问的内置存储器中。另外,即便是在需要按各数据流而不同的处理内容或不同的处理参数的情况下,也能够利用控制流预先将必需的程序或参数准备到可从进行数据流的处理器高速访问的内置存储器中。因此,在连续地处理多个流的情况下,能够抑制在某一流处理和下一流处理之间的转移期间进行数据流的处理的处理器的等待时间,使流处理装置的有效性能提高。
附图说明
图1是表示流处理装置的流输入输出结构的第一例的框图。
图2是应用流处理装置示出数据处理系统的一例的框图。
图3是例示从总线进行访问时存储器的地址映射(map)的说明图。
图4是例示从总线进行访问时流处理装置的地址映射的说明图。
图5是例示DMA控制寄存器的结构的说明图。
图6是例示DMA寄存器组的状态标志寄存器的结构的说明图。
图7是例示从流处理处理器对程序进行访问时的地址映射的说明图。
图8是例示从流处理处理器对数据进行访问时的地址映射的说明图。
图9是例示对第一缓存器映射区域进行访问时地址转换的内容的说明图。
图10是例示控制流的结构的说明图。
图11是例示控制指令首部的字段(field)结构的说明图。
图12是例示第一流处理装置的控制指令的指令类型和功能的关系的说明图。
图13是例示指令类型0的控制指令的结构的说明图。
图14是例示指令类型1的控制指令的结构的说明图。
图15是例示指令类型4的控制指令的结构的说明图。
图16是例示的流处理装置的工作定时的时序图。
图17是例示利用副控制流进行了功能扩展的流处理装置中的流输入输出结构的说明图。
图18是例示使用副控制流的流处理装置中的控制指令的指令类型和功能的关系的说明图。
图19是例示第二指令类型的控制指令的结构的说明图。
标号说明
100...流处理装置
110...总线接口
120...DMA控制器
130...流缓存器
131...第一缓存区域
133...第p缓存区域
140...控制寄存器
150...控制流解析单元
155...控制流地址队列
160...命令存储器
161...双缓存区域C
162...双缓存区域D
163...固定区域B
170...数据存储器
171...双缓存区域A
172...双缓存区域B
173...固定区域A
180...流处理器
190...位处理引擎
200...主处理器
300...存储器控制装置
350...存储器
400...输入输出装置
500...总线
700...控制流
706...副控制流
710...控制流存储区域
801~803...输入流
901~903...输出流
1201...缓存器开始地址寄存器
1202...缓存器结束地址寄存器
1203...缓冲写地址寄存器
1204...缓冲读地址寄存器
1205...存储器源地址寄存器
1206...存储器偏移地址寄存器
1207...最大偏移地址寄存器
1208...状态标志寄存器
1210~1290...DMA寄存器组
1291...工作中标志
1292...读/写模式
1293...缓存充满(full)标志
5140...控制寄存器空间
5160...命令存储器空间
5170...数据存储器空间
6100...边界标志字段
6130...流缓存器空间
6131~6133...缓存器映射区域
6160...命令存储器空间
6170...数据存储器空间
6200...指令类型字段
6300...参数字段
6301...输入流组ID字段
6302...末尾标志字段
6311...数据长度字段
6312...最大流长度字段
6315...数据存储目标地址字段
6316...副控制流地址字段
7100~7200...控制指令组
7210~7220...控制指令
7221...控制指令首部
7226~7229...控制参数
具体实施方式
1.实施方式的概要
首先,对在本申请中所公开的发明的具有代表性的实施方式的概要进行说明。在对具有代表性的实施方式的概要的说明中添加括号来参照的附图参照标号,只不过是例示出的包含在其所标记的结构要素的概念中的标号。
(1)一种流处理装置,输入数据流来实施运算处理,将其结果作为数据流进行输出,其中,
该流处理装置具有缓冲存储器(130)和处理器(180),
将流处理所需的信息作为控制流输入到上述缓冲存储器,
上述控制流具有与所要输入的数据流的取得处有关的信息、以及数据流的运算处理所需要的参数,根据与上述数据流的取得处有关的信息将数据流输入到上述缓冲存储器,上述处理器根据控制流的参数对已输入到上述缓冲存储器的数据流进行运算处理。
由此,能够在处理器进行数据流的处理时,预先利用控制流将进行下一处理的数据流的全部或一部分或者所需要的程序、参数准备在缓冲存储器等中。由此,能够抑制在某一流处理和下一流处理的转移期间内进行的数据流的处理的处理器的等待时间,从而能够使流处理装置的有效性能提高。
(2)根据(1)所述的流处理装置,其中,还具有从流处理装置的外部向上述缓冲存储器传送控制流和数据流的传送控制装置(120)。可以不使上述处理器承担这些传送控制。
(3)根据(2)所述的流处理装置,其中,还具有控制单元(150),其对控制流进行解析而取得上述参数和与上述数据流的取得处有关的信息,并且,对上述传送控制装置设定传送控制条件。可以不使上述处理器承担基于控制流的处理。
(4)根据(3)所述的流处理装置,其中,还具有数据存储器(170),其被传送上述参数,并且可由上述处理器进行访问。即便在需要按各数据流而不同的处理参数的情况下,也能够预先利用控制流将所需要的参数准备在数据存储器中。
(5)根据(4)所述的流处理装置,其中,还具有命令存储器(160),上述控制单元从控制流取得与运算顺序有关的信息,并向上述命令存储器传送所取得的与上述运算顺序有关的信息,并且上述命令存储器可由上述处理器进行访问;上述处理器使用从命令存储器所读出的与运算顺序有关的信息来进行上述运算处理。即便在需要按各数据流而不同的处理参数的情况下,也能够预先利用控制流将所需要的运算顺序的信息预先准备在命令存储器中。
(6)根据(4)所述的流处理装置,其中,控制流具有与辅助控制流(706)的启动有关的信息;上述辅助控制流具有处理数据流所需要的参数;上述控制单元根据上述控制流的内容而对上述传送控制单元设定传送控制条件,将上述辅助控制流传送到上述缓冲存储器;上述处理器基于传送到缓存器的辅助控制流的上述参数来进行运算处理。在不同的数据流的处理中反复使用相同参数的情况下,不需要各控制流中每次含有相同的参数,由此能有助于控制流的数据量削减、存储器区域的容量削减、以及数据传送时间的缩短。在流处理装置的工作频率的高速化方面也是有利的。
(7)根据(5)所述的流处理装置,其中,控制流具有与辅助控制流的启动有关的信息;上述辅助控制流具有与处理数据流所需的运算顺序有关的信息;上述控制单元根据上述辅助控制流的内容对上述传送控制单元设定传送控制条件,使上述辅助流传送到上述缓冲存储器;上述处理器基于传送到缓存器的上述运算顺序的信息来进行运算处理。在不同的数据流的处理中反复使用相同的运算顺序的情况下,不需要各控制流每次含有相同的运算顺序的信息,由此能够有助于控制流的数据量削减、存储器区域的容量削减、以及数据传送时间的缩短。在流处理装置的工作频率的高速化方面也是有利的。
(8)根据(1)所述的流处理装置,其中,在处理1条输入数据流时,将结果分成多个数据流而进行输出。对数据流的处理内容是任意的。
(9)根据(1)所述的流处理装置,其中,参照多个输入流,并通过参照上述多个输入流而实施运算处理,输出上述运算处理的结果。对数据流的处理内容是任意的。
(10)根据(1)所述的流处理装置,其中,上述处理器依照运算顺序进行流处理;上述缓冲存储器暂时保存已经输入的数据流和所要输出的数据流;上述处理器能够对上述缓冲存储器进行随机访问。对处理器而言,对缓冲存储器的访问形式是有通融性的。
(11)根据(1)所述的流处理装置,其中,上述处理器依照运算顺序进行流处理;上述流处理装置还具有用于存储上述处理器可读写的数据的数据存储器,上述数据存储器能够在接受上述处理器的访问时进行地址转换处理;上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有一个数据流的存储器区域和存储有其他数据流的存储器区域各自映射的逻辑地址进行替换处理。利用该双缓存器结构,能够将用于下一流处理的控制流和数据流预先存储到缓冲存储器中,而并不对处理器进行的流处理带来影响。通过地址映射的替换,用于处理器参照数据存储器的所要执行的程序记叙并不需要使参照数据在双缓存器中任一者的区域中发生变更。
(12)根据(1)所述的流处理装置,其中,上述处理器依照运算顺序进行流处理;上述流处理装置还具有用于存储表示上述处理器的运算顺序的程序的命令存储器,上述命令存储器能够在接受上述处理器的访问时进行地址转换处理;上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有表示针对一个数据流的运算顺序的程序的存储器区域和存储有针对下一数据流的运算顺序的程序的存储器区域各自映射的逻辑地址进行替换处理。对于表示运算顺序的程序的存储区域也具有与上述同样的效果。
(13)一种流处理装置,输入数据流来实施运算处理,将其结果作为数据流进行输出,其中,该流处理装置具有:缓冲存储器;数据传送控制装置,用于上述缓冲存储器和上述流处理装置的外部之间的数据传送控制;以及处理器,用于存储在上述缓冲存储器中的数据流的运算处理,上述数据传送控制装置,根据存储在缓冲存储器中的控制流具有的与数据流的取得处相关的信息,将上述数据流传送到上述缓冲存储器中,上述处理器基于传送到上述缓冲存储器中的控制流具有的数据流的运算处理所需要的参数,对上述缓冲存储器内的数据流进行运算处理,与上述处理器对上述缓冲存储器内的数据流的运算处理相并行,上述数据传送控制装置在其外部与上述缓冲存储器之间对数据流和控制流的数据传送进行控制。
由此,可以与数据流的运算处理并行地将下一数据流的处理所需要的参数、运算顺序的信息以及数据流预先存储在缓冲存储器中而进行利用。因此,在连续地处理多个流时,能够抑制在某一流处理和下一流处理的转移期间进行数据流处理的处理器的等待时间,能够使流处理装置的有效性能提高。
(14)根据(13)所述的流处理装置,其中,还具有基于存储在上述缓冲存储器中的控制流的解析结果进行控制的控制单元,上述控制单元基于控制流具有的与数据流的取得处相关的信息,对上述数据传送控制装置设定传送条件。
(15)根据(13)所述的流处理装置,其中,还具有可由上述处理器读写的数据存储器;上述控制单元将控制流具有的数据流的运算处理所需要的参数设定在上述数据存储器中。能够使用控制流将下一数据流的处理所需要的参数等预先存储在数据存储器中。
(16)根据(13)所述的流处理装置,其中,还具有可由上述处理器读写的数据存储器;上述数据存储器能够在从上述处理器进行访问时进行地址转换处理;上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有一个数据流的存储器区域和存储有其他数据流的存储器区域各自映射的逻辑地址进行替换。
(17)根据(13)所述的流处理装置,其中,还具有存储表示上述处理器的运算顺序的程序的命令存储器,上述命令存储器能够在从上述处理器进行访问时进行地址转换处理;上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有表示针对一个数据流的运算顺序的程序的存储器区域和存储有针对下一数据流的运算顺序的程序的存储区域各自映射的逻辑地址进行替换。
(18)一种流处理方法,对数据流实施运算处理并将结果作为数据流输出,该流处理方法包括第一处理~第三处理。第一处理是准备1个以上的控制流作为流处理所需要的信息的处理,该控制流具有与要处理的数据流的取得处相关的信息、以及数据流的处理所需要的参数;第二处理是根据所准备的控制流的与上述数据流的取得处相关的信息而参照数据流的处理;第三处理是参照所准备的控制流的上述参数来进行运算的处理。
(19)一种数据处理系统,具有:流处理装置,其被输入数据流实施运算处理,将其结果作为数据流输出;存储器,作为针对上述数据流的流处理所需要的信息而存储有控制流和上述数据流;以及主处理器,对上述存储器和上述流处理装置进行控制,其中,上述控制流具有与输入的数据流的取得处相关的信息、以及数据流的运算处理所需要的参数,上述流处理装置具有缓冲存储器和处理器,将上述控制流从上述存储器输入到缓冲存储器,按照所输入的上述控制流拥有的与数据流的取得处相关的信息而将数据流输入到上述缓冲存储器,上述处理器根据控制流的参数对输入到上述缓冲存储器的数据流进行运算处理。
(20)根据(19)所述的数据处理系统,其中,上述主处理器进行向上述存储器存储控制流和上述数据流的控制,上述流处理装置具有从上述存储器向上述缓冲存储器传送上述控制流和上述数据流的传送控制装置。
(21)根据(19)所述的数据处理系统,其中,作为半导体器件例如形成在1个半导体衬底上。
2.详细的实施方式
对实施方式进行更为详细的描述。以下,基于附图详细说明用于实施本发明的优选实施方式。在用于说明用来实施发明的优选实施方式的所有附图中,对具有相同功能的部件进行相同的标号,省略其反复的说明。
图1例示出本发明的流处理装置的输入输出流的结构。如图1所示,流处理装置100将作为数据流的输入的第一输入流801~第n输入流803、作为数据流的输出的第一输出流901~第m输出流903、以及作为控制用流的输入的控制流700作为输入输出流进行处理。输入流和输出流虽然记载了多个,但也可以是各为1个流的情况,还可以是输入输出中仅一方为1个流的情况。
流处理装置100能够同时参照1个以上输入流,同时输出1个以上输出流。另外,流处理装置100与输入流、输出流的输入输出处理独立地参照控制流700。
图2中例示出应用流处理装置100的数据处理系统。首先对系统结构进行说明。流处理装置100经由总线500连接在主处理器200、存储器控制装置300、存储器350、以及输入输出装置400上。
在图2所示的系统结构中,存储器350为主存储装置。主处理器200控制系统整体,还进行如成为用于使用流处理装置100的触发器那样的控制。主处理器200工作所需要的程序存储在存储器350中,主处理器200经由存储器控制装置300对存储器350进行访问。输入输出装置400用于与外部的连接。来自外部设备的数据从输入输出装置400输入之后,暂时存储在存储器350中,然后再进行处理。流处理装置100和主处理器200对数据的处理结果暂时存储在存储器350中,从输入输出装置400向外部设备输出。
接着,对流处理装置100的内部结构进行说明。总线接口110是用于连接总线500和流处理装置100内部的接口。控制寄存器140是用于控制流处理装置100整体的工作的控制信息被置位的寄存器,可从总线500一方进行访问。控制寄存器140有时根据需要也由多个寄存器构成。
DMA控制器120进行伴随流的输入输出而进行的数据传送、以及命令存储器160、数据存储器170与总线500一方之间的数据传送。另外,DMA控制器120具有分路传送数据的功能,可从总线500一方向命令存储器160和数据存储器170直接进行访问。对DMA控制器120的传送控制信息的置位,由主处理器200进行,或者由控制流解析单元进行。另外,还可以由流处理器180进行对DMA控制器120的传送控制信息的置位,若在流处理上存在需要,则流处理器180也可以灵活地进行流输入输出的控制。
流缓存器130是暂时保存进行了输入输出处理的流的内容的缓冲存储器。在流缓存器130中也暂时保存控制流700。在进行流的输入输出时,DMA控制器120进行流缓存器130与总线500一方的传送。
流处理器180是主要处理数据流的处理器,按照存储在命令存储器160中的程序进行工作。另外,作为流处理器180的作业用数据存储器,配置有数据存储器170。流处理器180通过检测在流缓存器130中存储有数据流的数据这一情况,从而从流缓存器130读取该数据并进行预定的数据处理(流处理),将其结果写入流缓存器。
位处理引擎190提供如下的功能:以所指定的位宽从数据流依次取出数据,或者以所指定的位宽将数据写入到流。位处理引擎190在流处理器180对各种位长的连续的数据进行处理时被采用,作为所谓的加速器而发挥作用。位处理引擎190连接在流缓存器130上,能够以32位或64位等访问流缓存器130的单位统一从流缓存器130读出流数据,或将流数据写入流缓存器130。
控制流地址队列155是经由控制寄存器140而保持存储有控制流700的起始地址的FIFO缓存器。通常,控制流700在流处理装置100启动前由主处理器200生成并被存储在存储器350中,流处理装置100根据控制流700进行处理。因此,流处理装置100在启动时需要表示存储在存储器350中的控制流700的所在位置的起始地址。为了使用这样的地址取得所需的控制流,控制流解析单元对DMA控制器120控制设定和启动。进而,控制流解析单元150根据控制流700的内容对DMA控制器120、流处理器180的设定和启动进行控制。另外,还具有根据需要将控制流700的内容的一部分写入命令存储器160和数据存储器170的功能。
在此,在下面详细说明流处理装置100之前,对流处理装置100使用了控制流的处理的概要进行说明。存储有控制流的存储器350的地址由主处理器200写入控制寄存器140,控制流解析单元150经由控制流地址队列155使用该地址对DMA控制器120的控制流用传送信道进行初始设定。据此控制流被传送到流缓存器130。控制流解析单元150对传送到流缓存器130的控制流进行解析,将控制流中带有的参数等存储在数据存储器170或命令存储器160等中,另外,根据控制流中带有的输入流地址字段所指定的地址信息,使用DMA控制器120将数据流存储在流缓存器130中。一组流由控制流、以及与控制流对应的数据流构成。当数据流被输入到流缓存器130时,执行命令存储器160内的程序的流处理器180对输入到流缓存器130的数据流的数据依次实施解码等的作为预定数据处理的流处理,处理结果通过DMA控制器120的控制而被存储在由相同目的地的控制流所指定的存储器350的区域中。这样的处理按由一组控制流和数据流构成的每个流反复执行。尤其是在对构成一组的流的数据流进行流处理时,与其并行地,预先输入构成下一组的流的控制流和数据流。即,在流处理器180对数据流进行流处理中,预先读取构成下一组的流的控制流和数据流。以下,对于实现这样的功能的流处理装置100的各部分进行详细说明。
图3示出将流处理装置100进行处理的流存储在存储器350时的区域分配的例子。在图3中,存储器地址是从总线500访问存储器350时的地址。另外,图3所示的存储器地址是一个例子,也可以根据系统结构或主处理器200的程序等情况进行变更。
作为输入流存储区域,代表性地示出第一输入流存储区域A811~第n输入流存储区域A813的区域A部分(区域组A)、第一输入流存储区域B821~第n输入流存储区域B813的区域B部分(区域组B)、以及第一输入流存储区域C831的区域C部分(区域组C),但其以后根据系统需要也同样存在所需量的输入流的区域组。流处理装置100具有同时输入多个流的功能,以区域组为单位对输入流进行处理。若作为输入流存储区域而准备多个区域组,则能够在多个区域组存储了多种输入流之后连续地进行流处理。
虽然按输入流的区域组准备有相同个数的输入流存储区域,但也可以按每个流处理而使同时参照的输入流的数量不相同。在这种情况下,剩余的输入流存储区域成为未使用状态。
为了便于说明,采用对按区域组同时参照的输入流存储区域进行了总括的方式进行了说明,若能够进行存储器350的区域管理,则不需要将输入流存储区域固定配置在1处。另外,也可以根据需要动态管理属于各区域组的输入流存储区域的个数。
输入流的存储区域作为在流处理装置100完成了存储于区域中的输入流的处理的时刻而由输入输出装置400新输入的流区域再次进行利用。
另外,在图3中,作为输出流存储区域,代表性地示出了第一输出流存储区域A911~第m输出流存储区域A913的区域A部分(区域组A)、第一输出流存储区域B921~第m输出流存储区域B913的区域B部分(区域组B)、第一输出流存储区域C931的区域C部分(区域组C),但其后根据系统需要也同样存在所需量的输出流的区域组。流处理装置100具有在某个流的处理中同时输出多个流的功能。通过准备多个输出流的区域组,能够存储了连续进行了流处理的结果而不会盖写以前的结果。
虽然按输出流的区域组准备了相同个数的输出流存储区域,但也能存在按每个流处理来变更要输出的流数的情况。
为了便于说明,采用对按区域组的输出流存储区域进行了总括的方式进行了说明,若能够进行存储器350的区域管理,则不需要将输出流存储区域固定配置在1处。另外,也可以根据需要动态管理属于各区域组的输出流存储区域的个数。
输出流的存储区域由流处理装置100写入结果,将其结果从输入输出装置400输出等,从而不可能由流处理装置100写入新的数据,并且在不需要保存输出结果的时刻,作为流处理装置100重新写入结果的区域而被再次利用。
在控制流存储区域710中存储在启动流处理装置100时传递给流处理装置的控制流700。控制流700的生成由主处理器200进行。存在如下情况:流处理装置100在根据某一控制流700进行处理的期间被输入新的数据流,当由流处理装置100进行处理的准备已经就绪时,将产生为用于新的数据流处理而生成控制流700的需要。在这样的情况下,预先将控制流存储区域710分为多个区域,在其他区域生成新的控制流700以避免覆盖在当前处理中使用着的控制流700。
当某一控制流700的处理全部完成时,控制流解析单元150经由控制寄存器140、总线接口110对主处理器200进行通知。主处理器200使用该通知判断存储有该控制流700的区域是否可以再次利用。
图4示出从总线500一方访问流处理装置100时的地址空间的例子。该地址空间存在控制寄存器空间5140、命令存储器空间5160、数据存储器空间5170。
在控制寄存器空间5140中,存在于控制寄存器140中的寄存器、或存在于DMA控制器120的DMA控制用的寄存器被映射,主处理器200可以通过这些寄存器对流处理装置100进行控制。
在命令存储器空间5160中,命令存储器160被映射,在流处理装置100工作前,可由主处理器200写入流处理器180的程序。
在数据存储器空间5170中,数据存储器170被映射,在流处理装置100工作前,可由主处理器200设定流处理装置100所需的初始参数。
在命令存储器空间5160和数据存储器空间5170中,存在一部分实际上没有映射存储器的空间,可以对应于命令存储器160和数据存储器170的容量扩展。
在图5中示出存在于DMA控制器120中的DMA控制用的寄存器的结构。DMA控制用的寄存器是从第一DMA寄存器组1210到第gDMA寄存器组1290的多个寄存器组构成。各寄存器组构成DMA数据传送信道。各寄存器组包括缓存器开始地址寄存器1201、缓存器结束地址寄存器1202、缓冲写地址寄存器1203、缓冲读地址寄存器1204、存储器基地址寄存器1205、存储器偏移地址寄存器1206、最大偏移地址(offset)寄存器1207、状态标志寄存器1208。寄存器1201~1204是流缓存器130一方的地址指定用寄存器,寄存器1205~1207是存储器350一方的地址指定用寄存器。总之,如后所述,这些寄存器用于JIS(日本工业标准)流缓存器130和存储器350之间的双地址传送控制。
DMA寄存器组的个数需要由DMA控制器120可能同时传送的最大传送数以上。即,DMA寄存器组的最低限度数量需要是如下的数量,即:流处理装置100在处理时同时参照的可能最大输入流数与同时输出的可能最大流数量之和的二倍再加上控制流的读出所需要的数量1。需要同时参照的可能最大输入流数量与同时输出的可能最大流数量之和的二倍是由于以下原因:能够开始进行作为下一处理对象的输入流的在先输入处理、以及在与当前的输入流相关的处理结果即输出流在流缓存器130中剩余的时刻与要进行下一处理的输入流相关的处理结果的输出。
但是,与由输入流的读出延迟引起的流处理装置100的性能下降相比,由输出流的输出开始延迟引起的流处理装置100的性能下降通常较小,因此考虑到电路规模等,也考虑如下的方法:与当前的输入流相关的处理结果即输出流从流缓存器130完全输出之后,进行与要进行下一处理的输入流相关的的处理结果的输出所需要的DMA控制器120的设定,并开始输出。在这样的情况下,所需要的DMA寄存器组的最低限度数量是:流处理装置100在处理时同时参照的最大输入流数的2倍与同时输出的最大流数之和再加上控制流的读出所需要的数量1。
1个DMA寄存器组对应于基于DMA控制器120的DMA传送的1个传送信道。缓存器开始地址寄存器1201保持被分给对应的传送信道的流缓存器130的存储区域的起始地址、缓存器结束地址寄存器1202保持紧接结束地址之后的地址。缓冲写地址寄存器1203保持接着将数据写入缓存器的地址,缓冲读地址寄存器1204保持接着将数据从缓存器读出的地址,并进行更新以按照各数据的写入、读出指示下一地址。当通过更新地址而与保持在缓存器结束地址寄存器1202中的地址一致时,返回到保持在缓存器开始地址1201中的地址。
存储器基地址寄存器1205保持存储器350的传送源区域、或者传送目标区域的起始地址。存储器偏移寄存器1206保持对存储器350的下一读出或者写入目标地址与保持于存储器基地址寄存器1205中的值的差量。对应的传送信道进行更新,使得在每次对存储器350读出或写入时指示下一地址。
最大偏移地址寄存器1207表示在由存储器偏移寄存器1206所保持的值中可容许的最大值。存储器偏移寄存器1206的值与最大偏移地址寄存器1207一致之后在对应的信道中产生了向存储器350读出或写入的处理时,可停止该信道向流处理器180或主处理器200通知。利用这样的功能,能够按DMA的传送信道限定可在存储器350中使用的区域,能够实现存储器350的内容保护。
状态标志寄存器1208保持对应的传送信道的工作状态、传送方向、以及分配给流缓存器130的区域的缓存充满状态。
图6例示出状态标志寄存器的结构。工作中标志1291在对应的传送信道正在工作时变为1,在处于停止时变为0。工作中标志1291在开始该传送信道的传送时被设定为1。当该传送信道的传送完成时,DMA控制器120自动地返回到0。读/写模式标志1292在对应的传送信道从流处理装置100向存储器350传送时被设定为1、在从存储器350向流处理装置100传送时被设定为0。缓存充满标志1293在分配给对应的信道的流缓存器130内的区域被有效的数据完全填满时被设定为1,除此之外被设定为0。可知,若在DMA传送中缓冲写地址寄存器1203的内容和缓冲读地址寄存器1204的内容不同,则有效的数据一定保持在流缓存器130内,但在缓冲写地址寄存器1203的内容和缓冲读地址寄存器1204的内容相同时,考虑到在缓存器中完全不存在有效数据的状态和缓存器完全被有效数据所填满的状态这两者,因此为了判断处于哪一状态而需要缓存充满标志1293。
图7示出流处理器180的程序读出用的存储器空间即命令存储器空间6160的结构。命令存储器空间6160考虑将来的扩展,仅对一部分进行命令存储器160的映射。在命令存储器160中存在双缓存区域C161、双缓存区域D162、固定区域B163的区域。
双缓存区域C161和双缓存区域D162在每次由流处理器180完成某一数据流的处理时,将对命令存储器空间6160的地址映射相互替换。例如双缓存区域C161被分配地址00000-08000,双缓存区域D162被分配地址08000-10000时,流处理器180利用地址00000-08000执行着双缓存区域C161的程序的情况下,在双缓存区域D162预先存储用于下一流处理的程序,在双缓存区域C161的程序执行结束的时刻,将双缓存区域D162的映射切换为地址00000-08000,将双缓存区域C161的映射切换为地址08000-10000,流处理器180能够利用地址00000-08000在上述下一流处理中执行双缓存区域D162的程序。如此,若预先将用于某一数据流的处理的程序存储在一个区域,则可以在该数据流的处理期间内对另一个区域的内容进行重写,可同时进行面向利用流处理器180的数据流处理和下一数据流处理的程序的写入处理。固定区域B163是用于存储可在各种各样的数据流处理中公用的程序(子程序)的区域。此外,用于对地址映射进行交互切换的逻辑例如存储在命令存储器中,切换指示根据控制流的处理状况和流处理器180的处理状况进行即可。另外,在考虑到根据结构而不存在固定区域B163的情况,或者按数据流而不需要替换程序的情况下,则不需要双缓存区域C161和双缓存区域D162。
图8示出流处理器180的数据读写用的存储器空间的结构。在数据读写用的存储器空间中存在数据存储器空间6170和流缓存器空间6130的部分。
数据存储器空间6170考虑将来的扩展,仅在一部分对数据存储器170进行映射。数据存储器170存在双缓存区域A171、双缓存区域B172、固定区域A173的区域。
双缓存区域A171和双缓存区域B172在每次由流处理器180完成某一数据流的处理时,将针对数据存储器空间6170的地址映射相互替换。因此,若预先将用于某一数据流的处理的参数存储在一个区域,则可以在该数据流的处理期间内对另一个区域的内容进行重写,可同时进行面向利用流处理器180的数据流处理和下一数据流处理的参数的写入处理。地址映射与上述命令存储器160的情况同样地进行即可。
固定区域A173作为在各种数据流处理中所需要的作业用数据存储器而进行利用。另外,考虑到根据结构而不存在固定区域A173的情况,或者按数据流而不需要替换程序的情况下,则不需要双缓存区域A171和双缓存区域B172。
对于流缓存器空间6130,考虑流缓存器130的将来的扩展,仅在一部分对流缓存器130进行映射。通过将流缓存器130映射在流处理器180的数据读写用存储器空间,虽然限于被分配的缓存区域的尺寸,但可在其范围内对流数据进行随机访问。由于存在即便是流数据也会局部地存在一块数据的情况,因此可以由流处理器180对流数据的某一部分进行随机访问,这是较为便利的。例如,可用于以下用途,即:在可随机访问的范围内预先生成了后半部分的数据之后再生成前半部分的数据,或者直到中途为止生成流,之后取消所生成的数据的输出。
流缓存器130被分成多个区域而进行利用,使各区域与利用DMA控制器120的传送信道相对应而进行利用。即,从在DMA寄存器组的缓存器开始地址寄存器1201中所指定的地址到缓存器结束地址寄存器1202的紧前的地址与流缓存器130的1个区域相对应。流缓存器空间6130按DMA的传送信道而划分空间,对于划分出的各空间,使其映射在各传送信道中使用的流缓存器130的区域。
图9示出关注分配给某一传送信道的流缓存器130内的区域时,在流缓存器空间6130中如何被映射区域。在图9中,关注流缓存器空间6130的第一缓存区域131而进行示出。第一缓存区域131通过地址转换来进行映射,以使得使用其区域的DMA传送信道的DMA寄存器组的缓冲写地址寄存器1203或者缓冲读地址寄存器1204所保持的地址到达第一缓存映射区域6131的起始位置。该传送信道用于输入流时,使用缓冲读地址寄存器1204保持的地址,在用于输出流时使用缓冲写地址寄存器1203保持的地址。通过如此进行地址转换,流处理器180在某一时刻成为处理对象的范围的起始部分总是成为相同的地址,由流处理器180进行工作的程序的开发变得容易。总之,流缓存器130具有作为FIFO缓存器的功能,因此流缓存器130内的缓存区域的物理地址为可变的。这样的地址转换例如在用于流处理器180对流缓存器130进行访问的访问地址的地址运算时进行即可。此时成为所需要的偏移的缓存器读地址或者缓存器写地址由DMA控制器120取得即可。
当对流缓存器130使用缓存器空间6130而从流处理器180直接读写的情况下,需要使用一部分流处理器180进行工作的程序来进行成为直接读写的对象的缓存器所对应的DMA传送信道的缓存管理指示器的管理。
需要进行如下处理:确认在进行着输入流的处理的传送信道中是否在参照前已读入完流缓存器130所需要的充分的数据,在需要参照读入到流缓存器130中的部分的处理全部完成的时刻进行读进流的处理。在确认数据是否已读入完时,使用该DMA传送信道的缓存充满标志1293、缓冲写地址寄存器1203和缓冲读地址寄存器1204来进行。为了读进流,通过使该DMA传送信道的缓冲读地址寄存器1204的值增加读进的长度量来进行。当变为缓存器结束地址寄存器1202以后的值时,使成为从缓存器结束地址寄存器1202的值中减去缓存器开始寄存器1201的值而得到的值。在缓冲读地址寄存器1204的更新时,同时还进行缓存充满标志1293的更新。
需要进行如下处理:确认在进行着输出流的处理传送信道中是否在写入前存在流缓存器130所需要的足够的空余,在对流缓存器130的写入处理完成的时刻进行写入流。在确认是否存在流缓存器130所需要的足够的空余时,使用该DMA传送信道的缓存充满标志1293、缓冲写地址寄存器1203和缓冲读地址寄存器1204来进行。为了写入流,通过使该DMA传送信道的缓冲写地址寄存器1203的值增加写入的长度量来进行。当变为缓存器结束地址寄存器1202以后的值时,使成为从缓存器结束地址寄存器1202的值中减去缓存器开始寄存器1201的值而得到的值。在缓冲写地址寄存器1203更新时,同时还进行缓存充满标志1293的更新。
图10例示出控制流700的结构。控制流由1个以上控制指令组7100、7200、7900构成,各自的控制指令组由1个以上控制指令7210、7220、7290构成。各自的控制指令由控制指令首部7221以及与其相连的0个以上控制参数7226构成。1个控制指令组具有成为流处理时同时参照的1组输入流的处理所对应的控制信息。通过排列多个控制指令组,能够由流处理装置100连续地处理多个组的输入流。
图11例示出控制指令首部7221的字段结构。控制指令首部7221具有边界标志字段6100、指令类型字段6200、以及参数字段6300。
边界标志字段6100是用于表示是1个控制指令组的最后的控制指令的标志。当为1个控制指令组的最后的控制指令时指定1,当为除此之外的控制指令时指定0。构成1个控制指令组的控制指令的个数是可变的,因此控制流解析单元150参照边界标志字段6100而对1个控制指令组的最后进行判断。
指令类型字段6200在指定指令类型的字段中,对指定控制指令的功能的值进行指定。控制流解析单元150根据指令类型字段6200的值判断处理的内容、以及该控制指令所包含的参数结构。
参数字段6300在存储构成指令的参数的字段中,根据指令类型字段6200的值不同而使字段具有的含义不同。
图12例示出指令类型字段6200的值和指令的功能的关系。
指令类型0具有如下功能:在对其指令首部所属的控制指令组所对应的流进行处理时,对存储有作为处理对象的输入流的地址进行指定。指令类型0的控制指令首部取为如图13所示的结构。在指令类型0中,对指令类型字段6200指定0。末尾标志6302是表示该控制指令首部所属的控制指令组位于控制流700的最后的标志,在为最后的情况下指定1,在除此以外的情况下指定0。即,在末尾标志6302为1的指令类型0的控制指令、或者其以后的控制指令中,对边界标志字段指定1时,作为控制流700的最后的控制指令而进行处理。
预约区域是未使用区域。对输入流组ID字段6301指定输入流组ID。指令类型0需要指定第一控制参数7226,在第一控制参数7226中存在输入流地址字段6305。对输入流地址字段6305指定存储有作为处理对象的输入流的地址。该地址是图3所示的地址空间中的地址。
输入流组ID是输入流的识别号码,当在流处理时同时参照的1组输入流为多个输入流的情况下,用于识别输入流。控制流解析单元150处理控制指令时,根据输入流组ID,确定用于输入流的输入的DMA传送信道的分配,从而流处理器180可以正确参照要在处理时参照的输入流。
当流处理时同时参照的1组输入流的组为多个输入流时,对1个控制指令组使用多个输入流组ID的不重复的指令类型0,指定所有的输入流。当同时参照的1组输入流的组为单独的输入流时,对输入流组ID通常指定0。
指令类型1的控制指令首部为图14所示的结构。指令类型1具有如下功能:对以紧前的指令类型0的控制指令所指定的输入流的最大尺寸进行设定。
指令类型1在指令类型字段6200中指定1。最大流长度字段6312是指定对输入流的尺寸限制的字段。由最大流长度字段6312所设定的值通过控制流解析单元150写入存在于对应的输入流的传送信道的DMA寄存器组中的最大偏移地址寄存器1207。通过指定最大流长度,能够按每个输入流限制存储器区域,可以进行存储器保护。另外,当输入流一部分损坏而导致处理无法正常进行,无法判断输入流的最后时,也在想要对输入流进行以最大流长度指定了输入流的长度以上的处理的时刻由DMA控制器120向流处理器180发出通知,所以能够避免处理不结束的危险。
指令类型4的控制指令首部为图15所示的结构。指令类型4具有将任意的数据写入命令存储器160或数据存储器170、控制寄存器140的功能。
指令类型4在指令类型字段6200中指定4。在数据长度字段6311中指定写入的数据长度。对于长度而言,指定将32位单位作为1个字码的字码数。长度指定单位也可以与系统相应地进行变更。在指令类型4中,在第一控制参数中具有数据存储目标地址字段6315。在数据存储目标地址字段6315中,作为数据存储目标指定与图4所示的地址空间相对应的地址。当存在与命令存储器160或者数据存储器170的双缓存器空间相对应的地址时,由控制流解析单元150进行地址转换,在图4所示的地址空间中一个区域由流处理器180正在使用,因此进行控制使得访问目标成为另一个区域。因此,利用指令类型4的控制指令写入到命令存储器160或者数据存储器170的双缓存区域时,对数据存储目标地址字段指定较小地址一方即可。
对于用指令类型4写入的数据,依次存储在第二控制参数以后由数据长度字段6311所指定的个数。
还使用指令类型4的控制指令进行输出流的存储目标的设定。在指令类型4中,能够对数据存储器170的任意的区域写入参数,所以预先确定由数据存储器170存储输出流的存储目标地址的地址,用指令类型4的控制指令对其地址写入输出目标地址,如果利用由流处理器180进行工作的程序参照输出目标地址设定位于DMA控制器120中的DMA控制寄存器,则能够在所指定的地址写入输出流。
由于利用流处理器180进行工作的程序来进行输出流的存储目标、DMA控制寄存器的设定,因此输出流的输出方法的自由度较高。例如,也可以将与同时参照的1组的多个输入流相关的处理结果汇集为1条输出流,或者按在流中含有的信息的种类将1条输入流分成多个输出流来进行输出。另外,还可以将用不同的控制指令组所指定的输入流的处理结果作为连续的1条输出流而进行输出。
按在流中含有的信息的种类将1条输入流分成多个输出流,特别是对于MPEG-2等图像编解码器的解码处理是有效的。在对图像编解码器进行解码时,可以并行执行IDCT处理等对系数进行转换的处理、以及从已基于运动矢量对参照图像进行了解码的图像读出的处理。在输入流中含有IDCT处理等的系数和运动矢量信息这两者,因此,如果由流处理装置100将这些参数转换为容易在IDCT处理、运动矢量处理中利用的格式,进而将各参数作为其他流进行输出,则容易并行执行IDCT处理和基于运动矢量读出参照图像的处理。
输入流无法在由DMA控制器120开始对应的传送信道的工作开之后,从存储器350读出数据,在已读出到流缓存器130的内容被写入为止,由流处理器180开始处理,但输出流能够在进行了DMA控制器120的设定之后向流缓存器130写入,因此对于输出流,即便由流处理器180进行DMA控制寄存器的设定,对流处理装置100的处理性能的影响也是较少的。
图16例示出流处理装置100的工作定时。使用该图16整体说明流处理装置100的工作。
在利用流处理装置100之前,首先由主处理器200进行流处理装置100的初始化处理(TR1)。需要设定DMA控制寄存器而对DMA的传送信道分配流缓存器130的区域。另外,在根据需要对命令存储器160进行初始程序、流处理的基础上,写入可公共利用的子程序等,写入可对数据存储器170公用的参数。
然后,由主处理器200进行处于存储在存储器350中的状态的输入流的处理所需要的控制流700的生成。如果完成了控制流700的生成,对位于控制寄存器140中的控制流700的起始地址指定用寄存器写入控制流700的地址。通过这样的操作使流处理装置100启动。当向控制流700的起始地址指定用寄存器写入控制流700的地址时,该地址被暂时写入控制流地址队列155。在控制流地址队列155中保持1个以上地址的状态下,控制流解析单元150不进行控制流700的处理时,控制流解析单元150进行与控制流700的DMA传送信道对应的DMA寄存器组的初始化,开始控制流700的读出,控制流解析单元150开始控制流700的处理(TR2)。
控制流解析单元150依照控制流700进行处理,在与输入流的读出所需要的信息相符的时刻进行输入流读出处理所需要的DMA传送设定,使输入流的读出开始(TR3),在1个控制指令组的处理全部完成的时刻启动基于流处理器180的流处理(TR4)。此时,用于输入流的读出的DMA传送信道的信息被传送到流处理器180,另外可用于输出流的输出的DMA传送信道的信息也被传到流处理器180。能够根据需要将多个输出流同时输出,因此将作为可用于输出流的输出的DMA传送信道而由流处理装置100所预先确定的信道条数传到流处理器180作为可用于输出的DMA传送信道。
在由流处理器180开始流处理的同时,控制流解析单元150开始下一控制指令组的处理(TR5)。此时,由控制指令将对命令存储器160和数据存储器170进行写入时使用的双缓存区域的分配调换,以避免对流处理器180中的处理带来影响。通过进行下一控制指令组的处理,将下一输入流的处理所需要的程序写入命令存储器160,将参数写入数据存储器170。另外,还进行下一输入流的读出所需要的DMA控制用的寄存器的设定。此时,利用在当前的输入流读出中使用的DMA传送信道、可用于输出流的输出且传递到流处理器180的DMA传送信道以外的信道。
在与下一输入流对应的控制指令组的处理完成的时刻,控制流解析单元150启动在下一输入流的读出中使用的DMA传送信道,开始输入流的在先读取(TR6)。如果此时是参照多个输入流的处理,则进行所需的所有输入流的在先读取。
在下一控制指令组的处理完成,且由流处理器180执行的输入流的处理完成的时刻,控制流解析单元150使来自流处理器180的命令存储器160和数据存储器170的双缓存区域的分配交换,将用于下一输入流的读出的DMA传送信道传给流处理器180,在下一输入流处理时将可用于输出流的输出的DMA传送信道传给流处理器180。然后重新启动流处理器180。在流处理器180被启动的时刻输入流的起始部分的读出完成,程序、参数也已经准备好,因此流处理器180能够立刻开始处理(TR7)。
以后、反复进行同样的处理直到控制流700的最后的控制指令组的处理完成为止,能够使流处理器180几乎不停止地进行处理。
利用控制流地址队列155,可在流处理装置100进行工作时指定下一控制流700。控制流700的生成需要在输入流被存储在存储器350中的状态下进行。即便是在流处理装置100工作中,也存在从输入输出装置400输入新的输入流而存储在存储器350中的情况,在这种情况下,即便流处理装置100处于工作中,只要由主处理器200生成下一控制流700,写入到位于控制寄存器140中的控制流700的起始地址指定用寄存器,则在控制流地址队列155中存储下一控制流700的地址,控制流解析单元150能够连续处理多个控制流700。
在以上的说明中,将流处理装置100作为1个装置进行了记述,但也可以将流处理装置100、主处理器200、存储器控制装置300、输入输出装置400、总线500作为集成在1个半导体衬底上的半导体器件而进行实现。
图17示出对上述的流处理装置100的功能进行了扩展的例子。在图17中,流处理装置100除了处理图1中的输入输出对象的流之外,还能处理副控制流706。因此,流处理装置100能够采用控制流700来利用图18所示的指令类型。为了处理副控制流706,对于上述流处理装置100,在可由控制流700利用的指令中追加指令类型2。指令类型0、指令类型1、指令类型4与上述相同。
指令类型2的控制指令首部具有图19所示的结构。指令类型2的具有如下功能:与指令类型4的功能同样地,将任意的数据写入命令存储器160或数据存储器170、控制寄存器140。在指令类型4中,将要写入的数据作为控制参数存储在控制指令内,而在指令类型2中,将要写入的数据作为副控制流706读出。即,在指令类型2中,需要在存储器350内准备存储副控制流706的区域,预先存储要写入到该区域的数据串。
在指令类型2中对指令类型字段6200指定2。在数据长度字段6311中指定要写入的数据长度。对于长度而言,指定将32位单位作为1个字码的字码数。在指令类型2中,在第一控制参数中具有数据存储目标地址字段6315。在数据存储目标地址字段6315中,作为数据存储目标指定与图4所示的地址空间相对应的地址。当存在与命令存储器160或者数据存储器170的双缓存器空间相对应的地址时,由控制流解析单元150进行地址转换,进行控制以使得成为在图4所示的地址空间中未被流处理器180利用的区域。因此,在利用指令类型2的控制指令写入到命令存储器160或者数据存储器170的双缓存区域时,若在数据存储目标地址字段中指定较小地址一方,则进行不会对流处理器180的工作产生影响的处理。
在指令类型2中,使第二控制参数具有副控制流地址字段6316。在副控制流地址字段6316中指定存储有副控制流706的开始地址。该地址是图3所示的地址空间中的地址。
副控制流706的内容是用指令类型2写入到命令存储器160、数据存储器170或者控制寄存器140的数据串。因此,需要使用指令类型2写入到命令存储器160程序的种类或写入到数据存储器170的一块的量来准备副控制流706。
控制流解析单元150在处理指令类型2的控制指令时,进行被分配的DMA传送信道的初始化和启动,以使读出副控制流706,通过DMA控制器120将副控制流706的内容传送给命令存储器160、数据存储器170或者控制寄存器140。控制流解析单元150在等待副控制流706的传送的完成之后,进行下一控制指令的处理。
为了副控制流706的数据传送,与图1的情况相比,需要具有多条DMA的传送信道。因此,DMA寄存器组与其相比也需要多个。
当使用指令类型2时,与仅使用指令类型4生成控制流700的情况相比,尤其是写入命令存储器160的程序的处理变得容易。一般而言,要处理的输入流的格式基于某一标准或规格,因此在流处理中所需要的程序的种类也能够进行限定。在使用指令类型4时,需要按每个控制指令组对在指令流中相当于程序的数据串进行复制等处理来生成控制流700,但在使用指令类型2时,只要预先确定的区域存储所需要的程序,则用指令类型2指定存储了程序的起始地址即可,因此并不需要复制相当于程序的数据串,能够减少主处理器200的处理或者对存储器350的访问。
本发明的流处理装置能够应用于对图像、声音等进行了编码的流的生成、以及对图像、声音等进行了编码的流的解码。图像、音声分别具有编码标准、且图像、声音分别具有多个编码标准。另外,还能够用于含有对图像、声音进行了编码的流的各种数据流的加密或已加密的数据流的解码处理。数字电视、DVD等对图像、音频流或加密流进行处理的设备很多,在这些设备中流处理装置需要进行各种标准的流处理,需要按照流所属的标准来变更要处理的程序和参数。在本发明的流处理装置中,能够在伴随程序、参数的变更的同时,由流处理器有效地连续地进行各种格式的流的处理,能够使用具有相同性能的流处理器进行多个流处理。
以上基于实施方式对本发明人所完成的发明进行了具体说明,但是本发明并不限于此,当然在不脱离本发明的要点的范围内可以进行各种变更。

Claims (21)

1.一种流处理装置,输入数据流来实施运算处理,并将其结果作为数据流进行输出,其中,
该流处理装置具有缓冲存储器和处理器,
将流处理所需的信息作为控制流输入到上述缓冲存储器,
上述控制流具有与输入的数据流的取得处有关的信息以及数据流的运算处理所需要的参数,根据与上述数据流的取得处有关的信息将数据流输入到上述缓冲存储器,上述处理器根据控制流的参数对已输入到上述缓冲存储器的数据流进行运算处理。
2.根据权利要求1所述的流处理装置,其特征在于,
还具有从流处理装置的外部向上述缓冲存储器传送控制流和数据流的传送控制装置。
3.根据权利要求2所述的流处理装置,其特征在于,
还具有控制单元,其对控制流进行解析来取得上述参数和与上述数据流的取得处有关的信息,并且,对上述传送控制装置设定传送控制条件。
4.根据权利要求3所述的流处理装置,其特征在于,
还具有数据存储器,其被传送上述参数,并且能够由上述处理器进行访问。
5.根据权利要求4所述的流处理装置,其特征在于,
还具有命令存储器,上述控制单元从控制流取得与运算顺序有关的信息,并向上述命令存储器传送所取得的与上述运算顺序有关的信息,并且,上述命令存储器能够由上述处理器进行访问;
上述处理器使用从命令存储器读出的与运算顺序有关的信息来进行上述运算处理。
6.根据权利要求4所述的流处理装置,其特征在于,
控制流具有与辅助控制流的启动有关的信息;
上述辅助控制流具有处理数据流所需要的参数;
上述控制单元根据上述控制流的内容对上述传送控制单元设定传送控制条件,使上述辅助控制流传送到上述缓冲存储器;
上述处理器基于传送到缓存器的辅助控制流的上述参数来进行运算处理。
7.根据权利要求5所述的流处理装置,其特征在于,
控制流具有与辅助控制流的启动有关的信息;
上述辅助控制流具有与处理数据流所需的运算顺序有关的信息;
上述控制单元根据上述辅助控制流的内容对上述传送控制单元设定传送控制条件,使上述辅助流传送到上述缓冲存储器;
上述处理器基于传送到缓存器的上述运算顺序的信息来进行运算处理。
8.根据权利要求1所述的流处理装置,其特征在于,
在处理1条输入数据流时,将结果分成多个数据流而进行输出。
9.根据权利要求1所述的流处理装置,其特征在于,
参照多个输入流,并通过参照上述多个输入流来实施运算处理,输出上述运算处理的结果。
10.根据权利要求1所述的流处理装置,其特征在于,
上述处理器依照运算顺序进行流处理;
上述缓冲存储器暂时存储已经输入的数据流和要输出的数据流;
上述处理器能够对上述缓冲存储器进行随机访问。
11.根据权利要求1所述的流处理装置,其特征在于,
上述处理器依照运算顺序进行流处理;
上述流处理装置还具有用于存储上述处理器能够读写的数据的数据存储器;
上述数据存储器能够在接受上述处理器的访问时进行地址转换处理;
上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有一个数据流的存储区域和存储有其他数据流的存储区域各自映射的逻辑地址进行替换。
12.根据权利要求1所述的流处理装置,其特征在于,
上述处理器依照运算顺序进行流处理;
上述流处理装置还具有用于存储表示上述处理器的运算顺序的程序的命令存储器;
上述命令存储器能够在接受上述处理器的访问时进行地址转换处理;
上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有表示针对一个数据流的运算顺序的程序的存储区域和存储有针对下一数据流的运算顺序的程序的存储区域各自映射的逻辑地址进行替换。
13.一种流处理装置,输入数据流来实施运算处理,将其结果作为数据流进行输出,其中,
该流处理装置具有:
缓冲存储器;
数据传送控制装置,用于上述缓冲存储器和上述流处理装置的外部之间的数据传送控制;以及
处理器,用于存储在上述缓冲存储器中的数据流的运算处理,
上述数据传送控制装置,根据存储在缓冲存储器中的控制流具有的与数据流的取得处相关的信息,将上述数据流传送到上述缓冲存储器中,上述处理器基于传送到上述缓冲存储器中的控制流具有的数据流的运算处理所需要的参数,对上述缓冲存储器内的数据流进行运算处理,
与上述处理器对上述缓冲存储器内的数据流进行的运算处理相并行,上述数据传送控制装置在其外部与上述缓冲存储器之间对数据流和控制流的数据传送进行控制。
14.根据权利要求13所述的流处理装置,其特征在于,
还具有基于存储在上述缓冲存储器中的控制流的解析结果进行控制的控制单元,
上述控制单元基于控制流具有的与数据流的取得处相关的信息,对上述数据传送控制装置设定传送条件。
15.根据权利要求13所述的流处理装置,其特征在于,
还具有能够由上述处理器读写的数据存储器;
上述控制单元将控制流具有的数据流的运算处理所需要的参数设定在上述数据存储器中。
16.根据权利要求13所述的流处理装置,其特征在于,
还具有能够由上述处理器读写的数据存储器;
上述数据存储器能够在接受上述处理器的访问时进行地址转换处理;
上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有一个数据流的存储区域和存储有其他数据流的存储区域各自映射的逻辑地址进行替换。
17.根据权利要求13所述的流处理装置,其特征在于,
还具有存储表示上述处理器的运算顺序的程序的命令存储器,上述命令存储器能够在从上述处理器进行访问时进行地址转换处理;
上述地址转换处理是如下的处理,即:在结束一个数据流的处理、开始下一数据流的处理时,对存储有表示针对一个数据流的运算顺序的程序的存储区域和存储有针对下一数据流的运算顺序的程序的存储区域各自映射的逻辑地址进行替换。
18.一种流处理方法,对数据流实施运算处理并将结果作为数据流输出,该流处理方法包括如下处理:
准备1个以上的控制流作为流处理所需要的信息的处理,该控制流具有与要处理的数据流的取得处相关的信息、以及数据流的处理所需要的参数,;
根据所准备的控制流的与上述数据流的取得处相关的信息来参照数据流的处理;以及
参照所准备的控制流的上述参数来进行运算的处理。
19.一种数据处理系统,具有:
流处理装置,其输入数据流而实施运算处理,将其结果作为数据流输出;
存储器,作为针对上述数据流的流处理所需要的信息而存储控制流和上述数据流;以及
主处理器,对上述存储器和上述流处理装置进行控制,
其中,上述控制流具有与输入的数据流的取得处相关的信息、以及数据流的运算处理所需要的参数,
上述流处理装置具有缓冲存储器和处理器,将上述控制流从上述存储器输入到缓冲存储器,按照所输入的上述控制流拥有的与数据流的取得处相关的信息而将数据流输入到上述缓冲存储器,上述处理器根据控制流的参数对输入到上述缓冲存储器的数据流进行运算处理。
20.根据权利要求19所述的数据处理系统,其特征在于,
上述主处理器进行向上述存储器存储控制流和上述数据流的控制,
上述流处理装置具有从上述存储器向上述缓冲存储器传送上述控制流和上述数据流的传送控制装置。
21.根据权利要求19所述的数据处理系统,其特征在于,
作为半导体器件形成在1个半导体衬底上。
CNA2008101794807A 2007-11-29 2008-11-28 流处理装置、流处理方法和数据处理系统 Pending CN101446890A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007308347 2007-11-29
JP2007308347A JP2009134391A (ja) 2007-11-29 2007-11-29 ストリーム処理装置、ストリーム処理方法及びデータ処理システム

Publications (1)

Publication Number Publication Date
CN101446890A true CN101446890A (zh) 2009-06-03

Family

ID=40676972

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101794807A Pending CN101446890A (zh) 2007-11-29 2008-11-28 流处理装置、流处理方法和数据处理系统

Country Status (4)

Country Link
US (1) US20090144527A1 (zh)
JP (1) JP2009134391A (zh)
CN (1) CN101446890A (zh)
TW (1) TW200930103A (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625105A (zh) * 2012-03-27 2012-08-01 广东威创视讯科技股份有限公司 基于单芯片的多通道视频编解码数据传输方法及装置
CN107111523A (zh) * 2014-11-11 2017-08-29 瑞萨电子株式会社 命令执行控制系统和命令执行控制方法
CN107273100A (zh) * 2017-06-15 2017-10-20 华为技术有限公司 一种数据实时处理及存储装置
CN110191068A (zh) * 2018-02-22 2019-08-30 丛林网络公司 检测网络设备流缓存的陈旧存储器地址
CN113703874A (zh) * 2021-09-06 2021-11-26 深信服科技股份有限公司 一种数据流处理方法、装置、设备及可读存储介质
WO2021253359A1 (zh) * 2020-06-18 2021-12-23 华为技术有限公司 一种图指令处理方法及装置
CN114090079A (zh) * 2021-11-16 2022-02-25 海光信息技术股份有限公司 串操作方法、串操作装置以及存储介质
CN114845035A (zh) * 2021-01-30 2022-08-02 华为技术有限公司 一种分布式拍摄方法,电子设备及介质

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8456478B2 (en) * 2008-10-30 2013-06-04 Microchip Technology Incorporated Microcontroller with integrated graphical processing unit
JP5862397B2 (ja) * 2012-03-22 2016-02-16 富士通株式会社 演算処理装置
JP6011194B2 (ja) * 2012-09-21 2016-10-19 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US9270999B2 (en) 2013-09-25 2016-02-23 Apple Inc. Delayed chroma processing in block processing pipelines
US9215472B2 (en) * 2013-09-27 2015-12-15 Apple Inc. Parallel hardware and software block processing pipelines
US9766823B2 (en) * 2013-12-12 2017-09-19 Memory Technologies Llc Channel optimized storage modules
US20150350369A1 (en) * 2014-05-30 2015-12-03 Qualcomm Incorporated Method For Reducing Pre-Fetching Of Multimedia Streaming Data With Minimal Impact On Playback User Experience
US11789896B2 (en) * 2019-12-30 2023-10-17 Star Ally International Limited Processor for configurable parallel computations
KR20220161852A (ko) * 2021-05-31 2022-12-07 삼성전자주식회사 복수의 버스들로 정보를 송수신하는 컴퓨팅 장치 및 이의 동작 방법
JP7313025B1 (ja) 2021-11-12 2023-07-24 合同会社Kosumi ストリームインターフェースを持つプロセッサ及びシステム

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5752073A (en) * 1993-01-06 1998-05-12 Cagent Technologies, Inc. Digital signal processor architecture
JPH08116534A (ja) * 1994-10-18 1996-05-07 Seiko Epson Corp 画像データ符号化装置およびその方法並びに画像データ復号化装置およびその方法
JP3434653B2 (ja) * 1996-12-05 2003-08-11 富士通株式会社 マルチメディアデータ蓄積伝送方法及び装置
US6654389B1 (en) * 1999-11-23 2003-11-25 International Business Machines Corporation System and method for searching patterns in real-time over a shared media
JP2002041358A (ja) * 2000-07-24 2002-02-08 Sony Corp プロセッサシステム
US6901500B1 (en) * 2000-07-28 2005-05-31 Silicon Graphics, Inc. Method and apparatus for prefetching information and storing the information in a stream buffer
EP1364298B1 (en) * 2000-11-12 2013-08-28 Advanced Micro Devices, Inc. 3-d rendering engine with embedded memory
US7106909B2 (en) * 2001-12-25 2006-09-12 Canon Kabushiki Kaisha Method and apparatus for encoding image data in accordance with a target data size
US7430654B2 (en) * 2003-07-09 2008-09-30 Via Technologies, Inc. Dynamic instruction dependency monitor and control system
JP2006202271A (ja) * 2004-12-22 2006-08-03 Nec Electronics Corp ストリームプロセッサ及び情報処理装置
JP2007034392A (ja) * 2005-07-22 2007-02-08 Nec Electronics Corp 情報処理装置及びデータ処理方法
JP2007034643A (ja) * 2005-07-27 2007-02-08 Fujitsu Ltd メモリ装置
US7949824B2 (en) * 2006-04-11 2011-05-24 Emc Corporation Efficient data storage using two level delta resemblance

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102625105A (zh) * 2012-03-27 2012-08-01 广东威创视讯科技股份有限公司 基于单芯片的多通道视频编解码数据传输方法及装置
CN107111523B (zh) * 2014-11-11 2020-10-20 瑞萨电子株式会社 命令执行控制系统和命令执行控制方法
CN107111523A (zh) * 2014-11-11 2017-08-29 瑞萨电子株式会社 命令执行控制系统和命令执行控制方法
CN107273100B (zh) * 2017-06-15 2021-06-08 华为技术有限公司 一种数据实时处理及存储装置
WO2018228493A1 (zh) * 2017-06-15 2018-12-20 华为技术有限公司 一种数据实时处理及存储装置
CN107273100A (zh) * 2017-06-15 2017-10-20 华为技术有限公司 一种数据实时处理及存储装置
US11178077B2 (en) 2017-06-15 2021-11-16 Huawei Technologies Co., Ltd. Real-time data processing and storage apparatus
CN110191068A (zh) * 2018-02-22 2019-08-30 丛林网络公司 检测网络设备流缓存的陈旧存储器地址
WO2021253359A1 (zh) * 2020-06-18 2021-12-23 华为技术有限公司 一种图指令处理方法及装置
CN114845035A (zh) * 2021-01-30 2022-08-02 华为技术有限公司 一种分布式拍摄方法,电子设备及介质
CN114845035B (zh) * 2021-01-30 2024-04-26 华为技术有限公司 一种分布式拍摄方法,电子设备及介质
CN113703874A (zh) * 2021-09-06 2021-11-26 深信服科技股份有限公司 一种数据流处理方法、装置、设备及可读存储介质
CN113703874B (zh) * 2021-09-06 2023-09-05 深信服科技股份有限公司 一种数据流处理方法、装置、设备及可读存储介质
CN114090079A (zh) * 2021-11-16 2022-02-25 海光信息技术股份有限公司 串操作方法、串操作装置以及存储介质

Also Published As

Publication number Publication date
US20090144527A1 (en) 2009-06-04
TW200930103A (en) 2009-07-01
JP2009134391A (ja) 2009-06-18

Similar Documents

Publication Publication Date Title
CN101446890A (zh) 流处理装置、流处理方法和数据处理系统
US7171566B2 (en) Data encryption and decryption
US7225431B2 (en) Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture
KR20090026941A (ko) 복수개의 비휘발성 데이터 저장매체를 구비한 저장장치의가상 파일 시스템에서 어드레스 맵핑을 수행하는 방법 및그 장치
US20020004904A1 (en) Cryptographic data processing systems, computer program products, and methods of operating same in which multiple cryptographic execution units execute commands from a host processor in parallel
US8677045B2 (en) Transaction reordering system and method with protocol indifference
JP6633119B2 (ja) 自律的メモリの方法及びシステム
US8069333B2 (en) Converting logical to real number to access shared configuration information in event driven state transiting reconfigurable system
CN101189578A (zh) 用于程序代码转换期间的本机代码和目标代码的组合执行的方法及装置
KR20160031503A (ko) 마이크로프로세서에서의 선택적 리네이밍을 위한 방법 및 장치
CN102279712A (zh) 一种适用于互联网存储系统的存储控制方法、系统和装置
CN102246151A (zh) 存储器装置及其控制方法
US20220237041A1 (en) Parallel processing system performing in-memory processing
US20120066481A1 (en) Dynamic instruction splitting
US8010802B2 (en) Cryptographic device having session memory bus
US20050234861A1 (en) Sharing of non-divisible files
US20080209085A1 (en) Semiconductor device and dma transfer method
CN108293027B (zh) 数据流送单元和用于操作数据流送单元的方法
US7664919B2 (en) Cache system
WO2006058358A8 (de) Verfahren zum steuern der zyklischen zuführung von instruktionswörtern zu rechenelementen und datenverarbeitungseinrichtung mit einer solchen steuerung
US8245243B1 (en) Transforming device drivers to improve efficiency
JP2006506727A (ja) コピーレジスタファイルを有するvliw
CN101216757A (zh) 一种risc处理器及其数据访存方法
US20070150528A1 (en) Memory device and information processing apparatus
US20080028166A1 (en) Data processing system and method for operating a data processing system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: RENESAS ELECTRONICS CO., LTD.

Free format text: FORMER OWNER: RENESAS TECHNOLOGY CORP.

Effective date: 20100925

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20100925

Address after: Kanagawa

Applicant after: Renesas Electronics Corporation

Address before: Tokyo, Japan, Japan

Applicant before: Renesas Technology Corp.

AD01 Patent right deemed abandoned

Effective date of abandoning: 20090603

C20 Patent right or utility model deemed to be abandoned or is abandoned