包含多个处理电路和存储电路的数据处理装置的制作方法

文档序号:6460565阅读:312来源:国知局
专利名称:包含多个处理电路和存储电路的数据处理装置的制作方法
技术领域
本发明涉及含多个如处理电路和存储电路的基本电路的数据处理装置。本发明可以应用于,比如,视频处理装置,用于将视频数据从一种显示格式转换为另一种显示格式。
背景技术
按下面的方式处理数据是可能的。第一处理电路处理数据块以便得到经过一次处理的数据块,经过一次处理的数据块被写入存储电路。随后,第二数据处理器读取经过一次处理的数据块并处理,得到经过二次处理的数据块,经过二次处理的数据块被写入同一个或另一个存储电路,等等。换句话说,有效地,数据处理电路构成了数据处理链。每一处理电路执行数据处理链的不同元件。存储电路在两个连续的数据处理电路之间提供缓冲存储器。
向每个处理电路提供程序存储器是可能的。因而程序存储器将包括一套指令,使处理电路去执行数据处理链涉及到的元件。欧洲专利,申请公开号为0 373 714(代理人文档号PHN12762),公开了一种数据处理器,它包括多个处理器单元以及对应每个处理器单元一个程序存储器。
发明概述本发明的一个目的是能够比较容易地进行程序设计。
按照本发明,一种数据处理装置,包含多个如处理电路和存储电路的基本电路,包含一个控制器。控制器被编程为响应任务初始化数据,连续地把控制数据用于基本电路的某个子集。这使得数据处理装置按照一定的数据处理链处理数据块。每个基本电路的子集执行数据处理链的不同元件。
本发明考虑了以下几个方面。在现有技术的数据处理装置中,编程数据处理装置需要几套指令。每套指令被指定对应不同的处理电路。因此,现有技术的数据处理装置的软件程序比较庞大。另外,数据处理电路的各套指令必须匹配,因为数据处理链的每个元件必须与其相邻的元件相匹配,如果有的话。因此,为了执行特定的数据处理链,编写软件程序将是比较地复杂。如果现有数据处理装置由于要处理,比如不同类型的数据,必须执行不同的数据处理链时,程序编制将更复杂。
根据本发明,任务初始化数据定义一个数据处理链,数据处理链按照处理操作由几个元件组成。控制器响应任务初始化数据,编程控制基本电路的某些子集,这样每个子集就连续地执行数据处理链的不同元件。也就说,响应任务初始化的要求,控制器被编程为适当地编程控制数据处理装置的基本电路。因而,足以把任务初始化数据应用于数据处理装置使得数据处理装置按期望的形式处理数据块。所以,通过按任务初始化数据的形式定义一个或多个数据处理链,可以简化数据处理装置的编程。因此本发明可以得到比较容易的程序设计。
本发明的这些特点及其它特点,将在下面结合附图更详细地说明。
附图简述

图1是一概念图,示出了上文中描述的本发明的基本特点;图2是一概念图,示出了其它特点;图3是一方框图,示出了按照本发明的视频处理装置;图4是一方框图,示出了视频处理装置的第一过滤器模块;图5是一方框图,示出了视频处理装置的输出模块;图6是一方框图,示出了视频处理装置如何处理像素模块的示例;图7是一方框图,示出了视频处理装置的控制寄存器;图8是一方框图,示出了视频处理装置的基本操作方案;图9是一方框图,示出了视频处理装置的控制器;图10是控制器的调度程序的部分示意图;图11是控制器的取数据文件的示意图;图12是控制器执行的一系列步骤的示意图;图13是一方框图,示出了视频处理装置的主总线接口。
发明的实施方案在下面的解释中要涉及到标号。相同的实体在所有图中用相同的字母表示。几个相似的实体可能出现在同一图中,这时,在标号后添加数字或下标,以示区别。当其值不重要(不关心其值)时,为了方便起见,数字或下标可以被省略或用星号代替。这些规则适用于说明书和权利要求。
图1示出了上文中描述的本发明的基本特点。一种数据处理装置包含多个基本电路如处理电路[PRC]和存储电路[MEM]。数据处理装置还包括控制器[MCP]。控制器[MCP]被程序以响应任务初始化数据[TID]而连续地把控制数据[CD]用于基本电路的子集。这使得数据处理装置按照一定的数据处理链[DPC]处理数据块[DB]。每个基本电路的子集执行数据处理链[DPC]的不同项[E]。
以下几个方面已经考虑了关于图1中示出的特点。一般地,在处理新数据块前,一直等待直到一个数据块被处理完是可能的。在这种情况下,数据处理装置一次就只能处理一个数据块。该方法的优点是数据处理装置的控制比较简单,但其缺点是单位时间内它只能处理很少的数据块。也就是说,数据处理比较慢。
相反,当数据处理装置还忙于处理一个或多个其它数据块时,它可以开始处理新的数据块。在这种情况下,数据处理装置就同时处理几个数据块。能这样做是因为,在特定的瞬间,基本电路的不同子集能够分别地处理不同的数据块。这种方法的优点是在单位时间里能处理相当多的数据块。换言之,数据处理比较快。但是,由于基本电路的不同子集必须编程以便并行地处理不同的数据块,所以数据处理装置的控制相对地复杂了。
图2示出了以下的其它特点。控制器[MCP]包括控制处理器[CPU]和控制存储器[CMEM]。控制存储器[CMEM]包含子程序[SR]的集合。每个子程序[SR]对应数据处理链[DPC]的一个项[E]。它使得控制处理器[CPU]把控制数据[CD]应用于基本电路[PRC/MEM]的子集,作为响应,基本电路[PRC/MEM]的子集将执行数据处理链[DPC]涉及到的项[E]。每个子程序[SR],涉及到数据处理链[DPC]的项[E],接着是其它项[E],还使控制处理器[CPU]把指针[P]写入任务延续文件[TCF]。指针[P]表明子程序[SR]涉及到一系列与数据处理链[DPC]相关的项[E]。
如图2所示的控制存储器[CMEM]还包括内核[KRNL]。内核[KRNL]分别使控制处理器[CPU]去读取新的任务初始化数据[RD(TID)],表示子程序[SR]涉及到数据处理链[DPC]的第一项[E]。它还让控制处理器[CPU]去读取包含在任务延续文件中的指针[RD(P∈TCF)]。内核还促使控制处理器[CPU]去执行由新的任务初始化数据和已经读出的指针表示的子程序[EXEC(SR)]。
上文中提到的含在控制存储器[CMEM]内的信息分别促使控制处理器[CPU]去执行一系列控制行为。一个控制行为使数据处理装置开始处理新的数据块。其它控制行为使数据处理装置接着已经开始的数据处理,连续地处理数据块。更具体地,含在控制存储器[CMEM]内的信息自动地使控制处理器[CPU]去程序控制基本电路的不同子集。每个子集与其它子集并行地处理不同的数据块。如图2所示的特点因此自动地管理并行的不同数据块的处理。也就是说,把一系列任务初始化数据应用于数据处理装置是完全可以的。余下的由控制器[MCP]来完成。因此,如图2所示的特点,允许同时处理不同的数据块而无须要求复杂的软件。
如图1所示的特征可以适用于,比如,视频处理装置。可以选择地,如图2所示的特征也可以适用。视频处理装置可以用于,比如,将视频数据从一种显示格式更改为另一种显示格式,如通过更改线数和每条线上的像素数或二者之一。视频处理装置也可以用于比如,在主图片中插入子图片和图形或二者之一。
图3示出了根据本发明的视频处理装置。视频处理装置通过主总线从主存储器接[HWY]收数据,主存储器未示出。作为响应,它提供视频输出流[VIDOUT],可以应用于,比如,视频显示装置或视频记录装置。视频处理装置包括一个主总线接口[MBIF],两个过滤器模块第一和第二过滤器模块[XPB1,XPB2],一个输出模块[XPC],一个输出流电路[SO]和一个控制器[MCP]。两个过滤器模块[XPB]和输出模块[XPC]通过两条内部总线第一和第二内部总线[XBUS1,XBUS2]连接到主总线接口[MBIF]。控制器[MCP]通过控制总线[CBUS]连接到如图3所示的其它各个模块。存在数据允许数据在两个过滤器模块[XPB]和输出模块[XPC]之间传输的路径。这些路径在图3中示出了但未命名。
图4示出了第一过滤器模块[XPB1]。第二过滤器模块[XPB2]是同样的。第一过滤器模块[XPB1]包括两个内部总线接口[IBIF],各自对应内部总线[XBUS]和数据传输电路[TRNSFR]。数据传输电路[TRNSFR]允许数据传输到其它过滤器模块即第二过滤器模块[XPB2]和输出模块[XPC]。第一过滤器模块[XPB1]还包括一个输入交叉开关(crossbar)[XBARI];一个输出交叉开关[XBARO];按第一到第二十四SRAM[SRAM1-SRAM24]形式排列的24个存储电路;按第一到第二水平过滤器[HFIL1,HFIL2]和第一到第二垂直过滤器[VFIL1,VFIL2]形式排列的4个处理器电路。输入交叉开关[XBARI]可以从其它过滤器模块即第二过滤器模块[XPB2]或从输出模块[XPC]接收数据。
图5示出了输出模块[XPC]。输出模块[XPC]包括两个内部总线接口[IBIF],各自对应内部总线[XBUS]和数据传输电路[TRNSFR]。输出模块[XPC]还包括两个输入交叉开关[XBARI1,XBARI2];一个输出交叉开关[XBARO];按第一到第二十四SRAM[SRAM1-SRAM24]的形式排列的24个存储电路;和按矩阵/解矩阵电路[MD]形式排列的5个处理电路;两个抽样[UPS];一个混和器?[BLND]和一个查找表[LUT]。第一和第二输入交叉开关[XBARI1,XBAR2]可以从两个过滤器[XPB]接收数据。第二输入交叉开关[XBARI2]也可以从控制器[MCP]接收数据。输出交叉开关[XBARO]可以把数据应用于流输出电路[SO]和控制器[MCP]。
如图3所示的视频处理装置的基本操作如下。主总线接口[MBIF]通过主总线[HWY]从主存储器取像素块,主存储器在图4中未示出。接下来,主总线接口[MBIF]通过一条内部总线[XBUS]把像素块传输到在一个过滤器模块[XPB]或输出模块[XPC]内的SRAM。再往后,在过滤器模块[XPB]或输出模块[XPC]内的一个处理电路处理像素块。由此得到了经过一次处理的模块。经过一次处理的模块被存储在另一个SRAM内。接着,同一个或另一个处理电路可以处理经过一次处理的像素块。这样一步接一步连续地处理直到像素块被完全处理,被完全处理过的像素块被存储在输出模块[XPC]内的SRAM里。随后,输出模块[XPC]把完全处理过的像素块传输到流输出电路[SO]。
上文中描述了视频处理装置对不同像素块实施连续地处理。接下来,流输出电路[SO]接收连续的完全处理过的像素块。赋予像素以适当的格式接收并增加一些同步信号。于是就得到了视频输出流[VIDOUT]。
图6示出了处理像素块的一个示例。它包括步骤第(ⅰ)步、第(ⅰ+1)步和第(ⅰ+2)处理步骤[PS(ⅰ)、PS(ⅰ+1)、PS(ⅰ+2)]。假设如图3所示的主总线接口[MBIF]已经从主存储器取得了像素块。因此像素块在主总线接口[MBIF]内。
在第(ⅰ)处理步骤[PS(ⅰ)],主总线接口[MBIF]通过第一内部总线[XBUS1]把像素块传输到在第一过滤器模块[XPB1]内的第一SRAM[SRAM1]。在第(ⅰ+1)处理步骤[PS(ⅰ+1)],第一过滤器模块[XPB1]处理像素块。更具体地,第一水平过滤器[HFIL1]从第一SRAM[SRAM1]一个像素一个像素地读取像素块,读取像素、处理像素并将处理后的像素写入输出模块[XPC]的第12SRAM[SRAM12]。这一传输是通过如图4所示的第一过滤器模块[XPB1]的输出交叉开关[XBARO]和数据传输电路[TRNSFR],以及通过如图5所示的输出模块[XPC]的第一输入交叉开关[XBARI1]进行的。因此,在第(ⅰ+1)处理步骤[PS(ⅰ+1)]结束时,输出模块[XPC]的第12SRAM[SRAM12将具由经过处理的像素块。在第(ⅰ+2)处理步骤[PS(ⅰ+2)],输出模块[XPC]把经过处理的像素块传输到流输出电路[SO]。
如图6所示的处理符合由单一水平过滤器构成的视频处理链。图3所示的视频处理装置允许由许多不同的视频处理链。比方说,允许视频处理链包括一系列过滤器,可以并行地处理,也可以是其它形式的处理如弯曲、向上或向下采样。包含在两个过滤器模块[XPB]和输出模块[XPC]内的SRAM,被用作视频处理链中两个连续的项之间的先入先出(FIFO)存储器,一个项对应一个特定的处理操作。
一般地,如图3所示的视频处理装置每步都可以开始处理新的像素块。因此,视频处理装置在某一处理步骤期间可以同步地处理不同的数据块。比如,参见图6,在第(ⅰ+1)处理步骤[PS(ⅰ+1)],主总线接口[MBIF]可以把新像素块传输到第一或第二过滤器模块[XPB1,XPB2]或输出模块[XPC]的SRAM。新的像素块可以经历,比如,图6所示的视频处理链。在这种情况下,图6所示的操作由处理新像素块的操作替换了。
还有,图3所示的视频处理装置在每一处理步骤可以开始处理两个新像素块。这要涉及到两条内部总线[XBUS]。每条内部总线[XBUS]在单一处理步骤内,允许将像素块从主总线接口[MBIF]传输到第一或第二过滤器模块[XPB1,XPB2]或输出模块[XPC]。比如,参见图6及图6所示的第(ⅰ)处理步骤[PS(ⅰ)],当主总线接口[MBIF]通过第一内部总线[XBUS1]将相关的像素块传输到第一过滤器模块[XPB1]的第一SRAM[SRAM1]时,主总线接口[MBIF]还可以通过第二内部总线[XBUS2]把其它像素块传输到第一过滤器模块[XPB1]的其它SRAM或第二过滤器模块[XPB2]的或输出模块[XPC]的一个SRAM。
图3所示的控制器[MCP]使视频处理装置按照一定的视频处理链处理像素块。该处理包括前文中结合图6所描述的一系列处理步骤[PS]。另外,在某一步骤内的处理只包括视频处理装置中的电路的某一个子集。对每一处理步骤,控制器[MCP]为该步骤涉及到的电路子集相应地编程。
比如,如图6所示的处理中,更具体些,在第(ⅰ+1)处理步骤[PS(ⅰ+1)]中。该处理涉及到了图4所示的第一水平过滤器[HFIL1]的如下电路第一SRAM[SRAM1]、输入交叉开关[XBARI1]、第一水平过滤器[HFIL1]、输出交叉开关[XBARO]和传输模块[TRNSFR]。该处理还涉及到图5中所示的输出模块[XPC]的如下电路第一输入交叉开关[XBARI1]和第十二SRAM[SRAM12]。
图3所示的控制器[MCP]程序控制上述电路,结合起来实施图6所示的第(ⅰ+1)处理步骤[PS(ⅰ+1)]的处理。控制器[MCP]程序控制第一过滤器模块[XPB1]的第一SRAM[SRAM1],因而提供需要过滤的像素块。比如,通过定义适当的读开始地址就可以这样进行。控制器程序控制第一过滤器模块[XPB1]的输入交叉开关[XBARI1]使第一[SRAM1]与第一水平过滤器[HFIL1]结合。控制器程序控制第一水平过滤器[HFIL1]使之实施期望的类型的过滤。控制器[MCP]程序控制输出交叉开关[XBARO]和第一过滤器模块[XPB1]的数据传输电路[TRNSFR]和输出模块[XPC]的第一输入交叉开关[XBARI1],使得这些电路结合第一过滤器模块[XPB1]的第一水平过滤器[HFIL1]与输出模块[XPC]的第十二SRAM[SRAM12]。最后,控制器[MCP]程序控制输出模块[XPC]内的第十二SRAM[SRAM12],以使经过过滤的像素被适当地存储。比如,通过定义适当的写开始地址就可以这样进行。
图4所示的两个过滤器模块[XPB]的电路和图5所示的输出模块[XPC]具有控制寄存器。控制寄存器的内容定义属于该控制寄存器的电路的功能性行为。因此,如图3所示的控制器[MCP]通过将控制数据写入各自的控制寄存器对在过滤器模块[XPB]和输出模块[XPC]内的电路进行编程。控制器[MCP]也可以通过管理已经包含在该电路的控制寄存器内的控制数据来实现程序控制电路。
图7示出了一个控制寄存器[CREG]。控制寄存器[CREG]包括正面寄存器[FREG]、影子寄存器[SREG]和寄存器控制器[RCNTRL]。其基本操作如下。控制寄存器[CREG]通过控制总线[CBUS]从控制器[MCP]接收控制数据,控制总线[CBUS]和控制器[MCP]均见图3。该控制数据首先被写入正面寄存器[FREG]。响应来自控制器[MCP]的控制指令,寄存器控制器[RCNTRL]可以让控制数据传输到影子寄存器[SREG]。在影子寄存器[SREG]内的控制数据定义属于该控制寄存器的电路的功能性行为。当包含在正面寄存器[FREG]的控制数据传输到影子寄存器[SREG]时,含在影子寄存器[SREG]内控制数据可以传回正面寄存器[FREG]。响应来自控制器[MCP]的指令,寄存器控制器[RCNTRL]使这样的数据交换能够进行。
图8示出了如图3中所示的视频处理装置的基本操作方案。水平刻度代表时钟周期。视频处理装置可以选择地实施处理步骤[PS]和配置步骤[CS]。
在处理步骤[PS]中,视频处理装置可以操作一个或多个像素块。比如说,一个像素块可以经过处理电路或简单地从一个存储电路传输到另一个存储电路。类似地,另一个像素块可以经过另一个处理电路或传输到再另一个存储电路。这些像素块的操作,是由视频处理装置内的包含在各自的影子寄存器内的控制数据定义的。
在处理步骤[PS]中,图3所示的控制器[MCP],当数据经过处理后,可以把控制数据写入不同的控制寄存器。它还指示各自寄存器控制器在随后的配置步骤[CS]中应该执行什么行为。在影子寄存器中的各个控制数据不会被更改,因为这些控制数据定义要实施的数据操作。处理步骤中把控制数据写入正面寄存器可以看作是一连串处理步骤的预备。也就是说,当数据被第(n)处理步骤[PS(n)]操作时,第(n+1)处理步骤[PS(n+1)]操作已经定义了。
在配置步骤[CS]中,各个影子寄存器的内容可以更改。比如,参见图8所示的控制寄存器[CREG],寄存器控制器[RCNTRL]可以使影子寄存器[SREG]代替包含在正面寄存器[FREG]内的控制数据。寄存器控制器[RCNTRL]可以让影子寄存器[SREG]内的控制数据不改变。这样,如果有这样的传输,配置步骤[CS]仅仅涉及到各个控制寄存器之间的控制数据的传输。另外,控制数据可以在各自寄存器内同步地传输。因此,配置步骤只需要几个时钟周期。
处理步骤[PS]和配置步骤[CS]可以选择地按下面的方式一个接一个地进行。假设图3所示的视频处理电路执行一个处理步骤。这一般是指不同的处理电路处理像素块。已经处理完其像素块的处理电路发信号给图3所示的控制器[MCP],告知它已经完成其任务。当控制器[MCP]收到来自每个被激活的处理电路的准备信号时,开始配置步骤。同样地,控制寄存器已经把作为指令信号的控制数据传输给已经完成任务的控制器[MCP]。这意味着适当的控制数据已经在影子寄存器内了。当控制器[MCP]已经收到来自传输控制数据的每个控制寄存器的这种配置信号时,就开始处理步骤[PS]。
图9示出了视频处理装置的控制器[MCP]。控制器[MCP]包括控制处理器[CPU]和控制存储器[CMEM]。控制存储器[CMEM]含以下各项内核[KRNL]、子程序库[SR]、调度程序[SCHED]、取数据文件[DFF]和任务延续文件[TCF]。控制存储器[CMEM]也可以包含数据项,比如变量。内核[KRNL]和子程序[SR]包含控制处理器[CPU]的指令。调度程序[SCHED]、取数据文件[DFF]和任务延续文件[TCF]包含子程序的地址。
一个子程序[SR]定义处理步骤[PS]中的某数据块的操作。比如,如图6所示,在第(ⅰ+1)处理步骤[PS(ⅰ+1)]中,一个像素块从第一过滤器模块[XPB1]的第一SRAM[SRAM1]读出,使之通过第一过滤器模块[XPB1]的第一水平过滤器[HFIL1]被处理,处理后的像素块被写入输出模块[XPC]的第十二SRAM[SRAM12]。该操作是借助程序[SR]定义的。根据视频信号处理,程序[SR]涉及到视频处理链的特定的项。
更具体地,程序[SR]使控制处理器[CPU]程序控制视频处理装置,这样就可以实施要求的操作了。换句话说,程序[SR]让控制处理器[CPU]把控制数据写入涉及到操作的电路的控制寄存器[CREG],或转移已经包含在控制寄存器[CREG]内的控制命令,或二者都做,这样一来,这些电路的影子寄存器[SREG]就有了适当的控制数据。
图10示出了调度程序[SCHED]的一部分。用具有行和列的矩阵来表示调度程序[SCHED]。图10只示出了调度程序[SCHED]的一部分第(j)行和第(j+1)行[R(j),R(j+1)],和第(k)列到第(k+7)列[C(k),…C(k+7)]。调度程序[SCHED]的一部分示出了关于图片的一条线的周期。每各单元定义视频处理装置的一项特定任务。关于数据块的任务包含在主存储器中。任务的编号,0、1、2、3或4,定义数据是什么类型的和按照数据处理和传输,视频处理装置应该如何处理。
比如说,任务1可能是关于一张高清晰度图片的亮度像素块。任务2可能是关于同一张高清晰度图片的色度像素块。任务3可能是关于标准清晰度图片的亮度像素块。每个不同的像素块必须根据不同的视频信号处理链来处理。任务4可能是关于调度程序[SCHED]的新数据。它由含新数据的更新的调度程序[SCHED]构成。任务0(零)是所谓的空任务。空任务不涉及到数据块,因此,它不能使视频处理装置传输和处理任何数据。
更进一步说,定义一项非空任务(1、2、3、4)的单元含有子程序的起始地址。这是子程序链的第一个子程序,促使视频处理装置执行要求的任务。下文中,其起始地址被包含在调度程序[SCHED]内的子程序将被称作第一子程序。程序链的每个子程序执行不同的处理步骤。
子程序链的构成和管理是通过图9中所示的包含在控制存储器[CMEM]内的各项来完成的内核[KRNL]、取数据文件[DFF]和任务延续文件[TCF]。也就是说,这些项使控制处理器[CPU]控制视频处理装置,使之适当地实施调度程序[SCHED]定义的各种任务。下面将更详细地解释。
参见图3,第一子程序命令主总线接口[MBIF]从主存储器取相关的数据块。另外,第一子程序将把第二子程序的起始地址写入取数据文件[DFF],如图9所示。第二子程序使主总线接口[MBIF]把数据块传输到第一或第二过滤器模块[XPB1,XPB2]的或输出模块[XPC]的存储电路。该传输将通过第一或第二内部总线[XBUS1,XBUS2]进行,根据第一子程序的起始地址是否分别在图10示出的调度程序[SCHED]的第(j)行或第(j+1)行[R(j),R(j+1)]。只有当确认了相关的数据块出现在主总线接口[MBIF]时,才执行第二子程序。最后,第二子程序在一定延时后执行。该延时是通过控制存储器[CMEM]内的取数据文件[DFF]来完成的。
图11示出了取数据文件[DFF]。取数据文件[DFF]在功能上可以看作是以列表形式的三种寄存器的结合初级的,中级的和最终总线(highway)取寄存器[HFP0、HFP1、HFP2]。每个总线取寄存器[HFP]对应4个连续的处理步骤。更具体地说,总线取寄存器[HFP]的每一行对应一个处理步骤。
取数据文件[DFF]的功能如下。在第(n)步,如图9所示的控制处理器[CPU]执行第一子程序,第一子程序在图10所示的调度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k)列[C(k)]的单元内被定义。这些第一子程序将使控制处理器[CPU]把各自的第二子程序的起始地址写入初级总线取寄存器[HFP0]的第一行。在随后的第(n+1)步,控制处理器[CPU]执行第一子程序,该第一子程序在图10所示的调度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k+1)列[C(k+1)]的单元内被定义。这些第一子程序将使控制处理器[CPU]把各自的第二子程序的起始地址写入初级总线取寄存器[HFP0]的第二行。
上文中描述的步骤是一步一步连续的。因此,初级总线取寄存器[HFP0]将填满第(n+4)步。在中级总线取寄存器[HFP1]的内容复制到最终总线取寄存器[HFP2]后,其内容被复制到中级总线取寄存器[HFP1]。实际上,总线取寄存器[HFP]移动一位给余下的4个处理步骤的每个周期。在第(ⅰ+5)步,如图9所示的控制处理器[CPU]执行第一子程序,该第一子程序在图10所示的调度程序[SCHED]的第(j)行和第(j+1)行[R(j),R(j+1)]以及第(k+5)列[C(k+5)]的单元内被定义。由于初级总线取寄存器[HFP0]已经空了,这些第一子程序将使控制处理器[CPU]把各自的第二子程序的起始地址写入初级总线取寄存器[HFP0]的第一行。
如图9所示的控制处理器[CPU]从最终总线取寄存器[HFP2]读出各自的第二子程序的起始地址,以便执行这些子程序。更具体地,当控制处理器[CPU]已经把第二子程序的起始地址写入初级总线取寄存器[HFP0]的单元时,它就从在同一位置的最终总线取寄存器[HFP2]的单元内读出第二子程序的起始地址。之后,控制处理器[CPU]将执行后面的,其起始地址已经从最终总线取寄存器[HFP2]的单元内读出了的第二子程序。这里已经解释了总线取寄存器[HFP]移动一位给余下的4个处理步骤的每个周期。
因此,图11所示的取数据文件[DFF],在来自主存储器的数据请求任务的第一子程序与任务的第二子程序之间,带来了8步的延时,以及第二子程序是把这些数据从图3所示的主总线接口[MBIF]传输到图3所示的第一或第二过滤器模块[XPB1,XPB2]或输出模块[XPC]。这一延时说明一个反应时间,它伴随着通过主总线[HWY]和主总线接口[MBIF]取数据。对反应时间以及主总线接口[MBIF],将在下面更详细地说明。
当控制处理器[CPU]已经执行任务的第一和第二子程序时,作为任务主体的数据块将出现在第一或第二过滤器模块或输出模块的存储电路中。然后,视频处理装置准备好处理数据块,或仅仅传输它,通过第三和后面的子程序。这些子程序被执行如下。
第二子程序使图9所示的控制处理器[CPU]把第三子程序的起始地址写入图9所示的任务延续文件[TCF]。该写入行为在执行第二子程序的过程中完成。在接下来的处理步骤中,控制处理器[CPU]读取第三子程序并执行该子程序。这促使控制处理器[CPU]把第四子程序的起始地址,如果有,就写入任务延续文件[TCF]。这样的步骤一直进行下去,直到任务的最后一个子程序被执行。然后,结束任务。
参见图9,内核[KRNL]是这样的程序,它使控制处理器[CPU]读取调度程序[SCHED]内的子程序的地址、取数据文件[DFF]和任务延续文件[TCF],并象上文中所描述的那样执行这些子程序。内核[KRNL]可以被由图3所示的流输出电路[S0]产生的中断信号激活。该中断信号表示视频输出流[VIDOUT]已经到达当前帧内的一点。流输出电路[S0]可以把中断信号应用于控制处理器[CPU]从而在,比如,视频输出流[VIDOUT]已经到达倒数第二消隐线时,激活内核[KRNL]。在关于一帧的最后像素块的任务之后,内核[KRNL]可能被停止。图10中所示的调度程序[SCHED]最好包括一项特殊任务适时地停止所有处理并复位视频处理装置中的电路。
图12示出了一系列步骤,内核[KRNL]使处理器执行每一步处理。当然,假设内核[KRNL]是激活的。这一系列步骤包括从第一步到第五步[S1-S5]。
在第一步[S1],控制处理器读取图10所示的调度程序[SCHED]内的两个单元[RD(SCHED)]。这两个单元的读取是根据当前处理步骤和当前线。参见图10,每处理属于某线的一步,控制处理器向右移一列。每处理一条新线,控制处理器向下移两行。行可以根据处理步骤的编号来定义。比如,如图10,一条线包括8个处理步骤。前面已经解释了调度程序[SCHED]的单元,以子程序链的第一子程序的起始地址的形式来定义任务。因此,在第一步[S1],控制处理器读取两个第一子程序起始地址并把这些起始地址写入子程序执行文件。该文件可以是,比如,寄存器的集合形式。
在第二步[S2],控制处理器读取在最终总线取寄存器内的一行上的两个单元[RD(HFP2)]。这两个单元是根据当前处理步骤来读取的。参见图11,每处理一步,控制处理器就向下移一行,直到最后一行。之后,下一行就成了最终总线取寄存器[HFP2]的最上面一行。前面已经解释了最终总线取寄存器[HFP2]的单元包含任务中的第二子程序的起始地址。因此,在第二步[S2],控制处理器读取两个第二子程序起始地址并把这些起始地址写入子程序执行文件。
在第三步,控制处理器读取如图3所示的流输出电路[S0]中的指针[RD(S0)]。指针表示缓冲器满,已处理过的像素在以视频输出流[VIDOUT]的形式输出前,暂时存储在缓冲器内。指针告知控制处理器[CPU],可以说,流输出电路[S0]是否需要另外的已处理过的像素。
在第四步[S4],控制处理器读取包含在图9所示的任务延续文件[TCF]中的起始地址。这些起始地址涉及到任务中的第三和另外的子程序。也就是说,任务延续文件[TCF]包含除了任务的第一和第二子程序之外的子程序的起始地址。控制处理器将从任务延续文件[TCF]中读出的起始地址写入子程序执行文件的地址。
在第五步[S5],控制处理器一个接一个的读取包含在子程序执行文件中起始地址。作为响应,控制处理器应用这些起始地址,一个接一个第执行子程序。因此,可以这样说对每一处理步骤,控制处理器生成一个要在第一到第四步[S1-S4]中执行的子程序的清单,而实际上是在第五步执行该清单中的子程序。
内核[KRNL]的下一个方面,在图11中未示出。一般地,图3所示的视频处理装置处理连续的像素块的速度要比流输出电路[S0]以视频输出流[VIDOUT]的形式输出像素的速度要快。因此,视频处理装置需要不时地中断,以免流输出电路[S0]溢出。借助临时地不激活内核[KRNL],可以使视频处理装置中断其处理。
内核[KRNL]包括这样一些特点以防止图3所示的视频处理装置,可以说是太超前于视频输出流[VIDOUT]。4个处理步骤的每个周期,内核[KRNL]使图9所示的控制处理器[CPU]读流输出电路[S0]中的寄存器,流输出电路表示将要被输出的当前像素的位置。该寄存器因而表明视频装置中的处理是否好象是太超前于流输出电路[VIDOUT]。如果视频处理装置太超前,内核[KRNL]就在一定的时间周期内不被激活。
图13示出了如图3所示的视频处理装置的主总线接口[MBIF]。它包括两个缓冲存储器第一和第二缓冲存储器[IRAM1,IRAM2],每个缓冲存储器的大小为2kb。每个缓冲存储器[IRAM]被分为8个块第一到第八块[B1,…B8],每块的大小为256字节。
主总线的基本操作如下。在4个处理步骤的每个周期,缓冲存储器[IRAM]可选择地连接到主总线[HWY]和内部总线[XBUS]。也就是说,在4个处理步骤的一个周期内,第一缓冲存储器[IRAM1]连接到主总线[HWY],而第二缓冲存储器[IRAM2]连接到内部总线[XBUS],如图13所示。在4个处理步骤的下一个周期将反过来应用第二缓冲存储器[IRAM2]连接到主总线[HWY],而第一缓冲存储器[IRAM1]连接到内部总线[XBUS]。缓冲存储器[IRAM1/IRAM2],在4个处理步骤的给定周期里,连接到主总线[HWY],用于从外部主存储器接收数据。同时,另一个缓冲存储器[IRAM2/IRAM1],连接到内部总线[XBUS],用于把已经从主存储器接收到的数据传输到第一或第二过滤器模块或输出模块。因此,4个连续处理步骤的每个周期内,缓冲存储器改变器角色。
从主存储器到第一或第二过滤器模块或输出模块的数据传输需要4个连续处理步骤的3个周期。在第一周期,控制器要求主总线接口[MBIF]从主存储器取数据。在第二周期,将数据从主存储器传输到已经连接到主总线[HWY]的缓冲存储器[IRAM1/IRAM2]。在第三周期,同一个缓冲存储器[IRAM1/IRAM2]连接到内部总线[XBUS]并把数据从缓冲存储器[IRAM1/IRAM2]传输到第一或第二过滤器模块或输出模块。应当注意到这里有相应的取数据文件,上文中描述的第一、第二和第三周期分别地对应初始取数据寄存器[HPF0],中级数据寄存器[HPF1]和最终数据寄存器[HPF2],如图11所示。
主总线接口[MBIF]按下面的方式存储数据。缓冲存储器[IRAM]对应4个处理步骤的一个周期。主总线接口[MBIF]把将要在该周期的第一处理步骤从缓冲存储器[IRAM]传输到第一或第二过滤器模块或输出模块的数据存储到第一或第二模块[B1,B2]。更具体地,把将要通过第一内部总线[XBUS1]传输的数据存储到第一模块[B1],把将要通过第二内部总线[XBUS2]传输的数据存储到第二模块[B2]。在该周期的第二处理步骤将要通过第一和第二内部总线[XBUS1,XBUS2]传输的数据被分别存储在第三和第四模块[B3,B4],等等。
总之,第一和第二模块[B1,B2]、第三和第四模块[B3,B4]、第五和第六模块[B5,B6]、以及第七和第八模块[B7,B8]分别对应一个周期的4个步骤,第一、第二、第三和第四处理步骤。奇数号模块包括将要通过第一内部总线[XBUS1]传输的数据。偶数号模块包含将要通过第二内部总线[XBUS2]传输的数据。因此,如图10所示的调度程序[SCHED]的每个单元与缓冲存储器[IRAM]中指定的模块[B]相关联。由于调度程序[SCHED]的每个单元定义需要由视频处理电路处理的特定的数据块,数据块将要存储在主总线接口[MBIF]的哪个位置被预定义了。
如图9所示的调度程序[SCHED]可以按如下的方式写入控制器[MCP]的控制存储器[CMEM]。图10所示的调度程序[SCHED]可以包括一个或多个定义更新调度程序[SCHED]的任务的单元。已经提到过,图10所示的4号任务可能涉及到调度程序[SCHED]的新数据。第4号任务将使视频处理装置从主存储器读取定义调度程序[SCHED]新的部分的数据块,并把该数据块从主存储器传输到控制存储器[CMEM]。
主存储器可以包含压缩过的调度程序。一般地,任何数据压缩技术都可以用来压缩包含在调度程序内的数据。比如,图10所示的调度程序[SCHED]的一部分包括一系列连续的含有任务1的单元。因此,调度程序[SCHED]可以借助表示含有任务1的一系列单元来压缩,分别替代对每个单元定义任务1。如图9所示的控制处理器[CPU]可以按程序解压以压缩形式的调度程序的新的部分的数据块。因此,图10所示的任务4不仅仅是使定义调度程序的新的部分的数据块从主存储器中读出,还要解压缩数据块并依次添加到调度程序。
图3所示的视频处理装置可以物理地实现,并连续地按下面的方式操作。第一步,视频处理装置被制造,比如按含有图3所示的各种模块的集成电路的形式被制造。
第二步,把各种软件项目装入控制存储器[CMEM],如图9所示。内核[KRNL]和子程序[SR]就是这些软件的示例。另外的软件可以是,比如,使调度程序[SCHED]的第一部分装入控制存储器[CMEM]的安装程序。安装程序还建立取数据文件[DFF]和任务延续文件[TCF]的概要,比如,通过为这些项目定义合适的存储范围。被装入控制存储器[CMEM]的控制软件项目,可以包含在数据载体上,如磁盘或非易失性存储器。控制软件项目可以通过通信网络如因特网,从这些载体上检索到。
第三步,一个或多个调度程序[SCHED]被装入通过主总线[HWY]连接到图3所示的视频处理装置的存储器。调度程序[SCHED]是一套编程软件项目。已经装入控制存储器[CMEM]的控制软件使控制器[MCP]能够执行包含在调度程序[SCHED]内的程序软件。控制器[MCP]读调度程序[SCHED]并执行在其中的程序项目。当执行一个程序软件时,使得视频处理装置取出一个数据块并处理它。因此,视频处理装置将连续地处理数据块。这些数据块可能在同一个存储器如调度程序[SCHED]或在单独的存储器内。装入连接到主总线[HWY]的存储器调度程序[SCHED],可以包含在数据载体如,磁盘或非易失性存储器上调度程序[SCHED]可以通过通信网络如因特网,从这些载体上检索到。
如图3所示的以及结合图4到图13进一步描述的视频处理装置,是实施图1所示的基本特点的一个示例。基本电路诸如图1所示的处理电路[PRC]和存储电路[MEM],表现为包括在分别如图4和图5所示的过滤器模块[XPB]和输出模块[XPC]内各种电路形式。图1所示的任务初始化数据[TID],表现为包含在如图10所示的调度程序[SCHED]内的数据形式。相应包含在调度程序[SCHED]内的数据,图9所示的控制器[MCP]把数据应用于各种处理和包含在过滤器模块[XPB]和输出模块[XPC]中存储电路。这使得视频处理装置象,比如图6所示的那样处理数据块。
上文中的附图及其描述,解释了本发明,却不是对本发明的限制。很显然,在后面的权利要求的范围内有许多变化。因此,我们需要如下的详细备注。
可以借助软件或硬件,或软件和硬件,用多种方法完成本发明的功能。所以,附图完全是示意性的,每个图仅仅代表本发明的可能的实施方案。因此,尽管附图中图示不同的功能当作不同的模块,这并不意味着排除一个单一的软件或硬件执行几项功能。也不排除软件或硬件的组合,或软件和硬件的组合执行一项功能。
权利要求中的任何引用符号都不能看作是权利要求的限制。“包括”一词并不排除还有权利要求中未列出的元件或步骤。在元件和步骤前面的“一个”并不排除这样的元件或步骤出现多个。
权利要求
1.一种包括如处理电路[PRC]和存储电路[MEM]的多个基本电路的数据处理装置,其特征在于数据处理装置包括控制器[MCP],响应任务初始化数据[TID],被编程为连续地将控制数据[CD]应用于基本电路的不同子集,以便使数据处理装置按照一定的数据处理链[DPC]处理数据块[DB],从而使基本电路的每个子集执行数据处理链[DPC]的一个不同的项[E]。
2.如权利要求1的数据处理装置,其特征是控制器[MCP]包括控制处理器[CPU]和控制存储器[CMEM],控制存储器[CMEM]含有一个子程序[SR]的集合,每个子程序[SR]对应数据处理链[DPC]的一个项[E],并使得控制处理器[CPU]把控制数据[CD]应用于基本电路[PRC/MEM]的子集,作为响应,将执行数据处理链[DPC]涉及到的项[E],每个子程序[SR]涉及到数据处理链[DPC]的一个项[E],该元件后还跟着另一个项[E],还使控制处理器[CPU]把指针[P]写入任务延续文件[TCF],指针[P]表示涉及到数据处理链[DPC]的后面的项[E]的子程序;和基本控制程序[KRNL]分别使控制处理器[CPU]读取新的任务连续数据[RD(TID)],新的任务连续数据[TID]表示涉及到数据处理链[DPC]的第一项的子程序[SR],读取包含在任务延续文件中的指针[RD(P:TCF)],并执行由该新的任务延续文件[TCF]和该指针[P]表示的子程序。
3.一种数据处理装置的配置方法,包括一个控制器[MCP]和如处理电路[PRC]和存储电路[MEM]的多个基本电路,该方法包括步骤对控制器[MCP]编程,以便控制器响应任务初始化数据[TID],连续地把控制数据[CD]应用于基本电路的不同子集,这使得数据处理装置按照一定的数据处理链[DPC]处理数据块[DB],从而使本电路的每个子集执行数据处理链[DPC]的一个不同的项[E]。
4.一种用于数据处理装置的计算机程序产品,数据处理装置包括一个控制器[MCP]和如处理电路[PRC]和存储电路[MEM]的多个基本电路,该计算机程序产品包括一套指令,当指令被装入数据处理装置的控制器[MCP]时,使控制器[MCP]响应任务初始化数据[TID]连续地把控制数据应用于基本电路的不同子集,使数据处理装置按照一定的数据处理链[DPC]处理数据块,从而使基本电路的每个子集执行数据处理链[DPC]的一个不同的项[E]。
5.一种用于数据处理装置的计算机程序产品,数据处理装置包括一个控制器[MCP]和如处理电路[PRC]和存储电路[MEM]的多个基本电路,该计算机程序产品包括任务初始化数据[TID],当执行任务初始化数据[TID]时,使控制器[MCP]连续地把控制数据[CD]应用于基本电路的某一子集,从而使得数据处理装置按照一定的数据处理链[DPC]处理数据块,基本电路的每个子集执行数据处理链[DPC]的一个不同的项[E]。
全文摘要
一种数据处理装置包括多个基本电路,如处理电路[PRC]和存储电路[MEM]。数据处理装置还包括控制器[MCP]。控制器[MCP]被程序控制,以便响应任务初始换数据[TID],连续地把控制数据[CD]应用于基本电路的不同子集。这使得数据处理装置按照一定的数据处理链[DPC]处理数据块[DB]。基本电路的每个子集执行数据处理链[DPC]的一个不同的项[E]。
文档编号G06F9/30GK1320237SQ00801696
公开日2001年10月31日 申请日期2000年6月13日 优先权日1999年6月15日
发明者B·布鲁, M·杜兰顿 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1