专利名称:具有多个处理元件的数据处理系统,控制具有多个处理元件的数据处理系统的方法
技术领域:
本发明涉及一种数据处理系统,包括至少用于处理数据对象流的第一处理元件和第二处理元件,所述第一处理元件被配置成把数据对象从数据对象流传送到第二处理元件,其中第一和第二处理元件被配置来执行应用,所述应用包括任务集,并且其中所述第一和第二处理元件被配置成响应唯一标识符的接收。
本发明还涉及一种用于控制数据处理系统的方法,所述数据处理系统至少包括用于处理数据对象流的第一处理元件和第二处理元件,其中所述第一处理元件被配置成把数据对象从数据对象流传送到第二处理元件,并且其中所述第一和第二处理元件被配置成执行应用,所述应用包括任务集,所述控制方法包括由第一和第二处理元件之一识别唯一标识符的步骤。
已知用于高性能、数据相关的介质处理(例如高清晰度MPEG解码)的多处理元件的体系结构。可以把介质处理应用指定为并发执行的任务集,所述任务由单向数据流单独交换信息。G.Kahn在1974年引入这种应用的形式模型,“The Semantics of a Simple Languagefor Parallel Programming”,1974年8月5-10日的IFIP会议进程,瑞典斯德哥尔摩北荷兰公司,第471-475页,随后是Kahn和MacQueen在1977年的操作描述,“Co-routines and Networks of ParallelProgramming”,北荷兰公司的B.Gilchhirst(等)的信息处理77,第993-998页。此形式模型通常被称为Kahn Process Network(Kahn过程网络)。
应用被认为是可并发执行的任务集。只可以在任务之间由单向数据流来交换信息。任务应当只借助于关于预定义数据流的读取和写入动作来确定通信。根据FIFO特性来缓冲数据流。由于缓冲,所以经由流进行通信的两个任务不必对单个读取或写入动作同步。
在流处理中,由不同的处理元件来执行对数据流的连续操作。例如,第一流可以由图像的像素值组成,所述像素值由第一处理元件处理以便生成8×8个像素块的离散余弦变换(DCT)系数块的第二流。第二处理元件可以处理DCT系数块以便为每个DCT系数块生成所选择并压缩的系数块的流。
图1示出了从现有技术中已知的把应用映射到多处理元件的体系结构的例图。为了实现数据流处理,提供多个处理元件(Proc 1,Proc 2,Proc 3),每当使用来自数据对象流的下一数据对象的数据和/或生成这种流中的下一数据对象时,所述处理元件都能重复地执行特定的操作。所述流从一个处理元件传送到另一个,以便可以由第二处理元件等来处理由第一处理元件生成的流。用于把数据从第一处理元件传送到第二处理元件的一个机制是通过把由所述第一处理元件生成的数据块写入到存储器。
缓冲在网络中的数据流。把每个缓冲器实现为FIFO,确切地说一个写入器和一个或多个读取器。由于此缓冲,写入器和阅读器不必使信道上的单个的读取和写入动作互相同步。从不具有足够可用数据的信道上进行读取会导致读取任务停滞。处理元件可以是仅仅弱编程的专用硬件功能单元。所有处理元件并行运行并且执行它们自己的线程控制。它们一起执行Kahn类型应用,其中把每个任务映射到单个处理元件。所述处理元件允许多任务处理,即可以把多个任务映射到单个处理元件。
由于在时间和空间上分布整个应用的状态和进展,所以应用管理面临应用重新配置、分析应用进展以及调试的问题。特别是动态调度它们任务的多任务处理元件,全局应用很难控制。可能出现未经请求的事件,所述事件请求应用模式改变。分析整个应用进展在具有数据相关的处理和实时要求的系统中有持续的意义。另外,在具有多任务处理的处理元件的多处理器系统上调试应用,要求为每个任务设置断点的能力。按照设置任务断点的需要,用于模式改变的侵入运行任务要求可比度量。
US 6,457,116描述了用于在处理元件的网络中提供处理元件的局部控制的设备。借助于几种互连结构来在完整的阵列中连接处理元件。每种互连结构形成独立的网络,但是所述网络在处理元件的输入开关处连接。网状结构是具有单个源和多个接收器的H树形网络结构,其中可以写入各个处理元件。此配置网络是这样一种机制,按照所述机制编程处理元件的配置存储器并且传递配置数据。布置所述配置网络以便接收器在相同的时钟周期内接收广播。处理元件被配置为存储许多配置存储器上下文,并且选择的配置存储器上下文控制处理元件。处理元件的网络阵列中的每个处理元件具有分配的物理标识。向所述阵列的至少一个处理元件发送数据,所述数据包括控制数据、配置数据、地址掩码和目的地标识。所发送的地址掩码被应用于物理标识并且被应用于目的地标识。比较掩盖的物理标识和掩盖的目的地标识,并且如果它们匹配,响应于所发送的数据来操纵至少一个处理元件。操纵包括选择配置存储器上下文之一来控制处理元件起作用。US 6,108,760描述了可比较的设备,用于处理元件的网络中的位置无关的重新配置。操纵包括用至少一个配置存储器上下文来编程处理元件。
现有技术中数据处理系统的缺点是在特定的时刻执行重新配置。例如,在处理元件的流水线网络情况下,在特定时刻的重新配置意味着不能再保证流水线网络内数据的完整性。
本发明的目的是提供一种用于在Kahn类型的数据处理系统中全局应用控制的通用解决办法。
用所阐述的那种数据处理系统来达到此目的,其特征在于数据对象流还包括唯一标识符,而且第一处理元件还被配置成把所述唯一标识符传送到第二处理元件。
把数据处理系统中的唯一标识符从一个处理元件传送到其它处理元件,如在有序数据流中的元件,与单个时间点相对比,允许在数据空间中的唯一位置进行全局应用控制。例如,可以执行应用重新配置或单个任务重新配置,同时保持流水线处理以及保持数据对象流中数据的完整性。结果提高了数据处理系统的总体性能,这是因为可以避免终止和重新启动应用的执行。
依照本发明的数据处理系统的实施例,其特征在于至少一个处理元件被配置成把唯一标识符插入数据对象流中。如果所述应用准备重新配置,或应当引入断点,那么现有的处理元件之一在不要求任何附加度量的情况下,能够把所述唯一标识符插入数据流。
依照本发明的数据处理系统的实施例其特征在于,任务集的至少一个任务被配置成具有可编程的标识符,其中第一和第二处理元件的相应处理元件被配置成把可编程的标识符与唯一标识符相比较。可编程标识符的目的是允许响应经由数据流传送的特定的唯一标识符。为每个任务对唯一标识符的响应进行编程,以便每个任务可以以各自的方式响应。采用这种方法,在多任务处理的处理元件的情况下,可编程的标识符允许选择应当重新配置的任务。在可编程的标识符和用于运行任务的唯一标识符之间匹配的情况下,这意味着任务准备重新配置。当这两个标识符具有相同的值时或例如当可编程的标识符具有总是强制匹配的保留值时,所述比较导致匹配。
依照本发明的数据处理系统的实施例,其特征在于第一和第二处理元件的至少一个处理元件被配置成当在可编程的标识符和唯一标识符之间匹配时,暂停任务集的相应任务。此实施例的优点是在数据空间内的明确定义点上挂起一个或多个任务的执行。在稍后时刻可能发生应用的重新配置,而没有涉及重新配置的任务,在那时所述任务在各自执行路径上更远。
依照本发明的数据处理系统的实施例,其特征在于第一和第二处理元件的至少一个处理元件被配置成当在可编程的标识符和唯一标识符之间匹配时,产生中断信号。通过产生中断信号,相应的处理元件可以发信号表示任务准备重新配置,或者可以使用所述中断信号来确定任务执行的进展。
依照本发明的数据处理系统的实施例,其特征在于数据处理系统还包括控制处理元件,其中所述控制处理元件被配置成响应于所述中断信号来重新配置应用。需要用于任务重新配置的信息不与唯一标识符相关,这允许唯一标识符的转送和匹配机制独立于任务功能。结果,可以在可再用的硬件或软件组件中实现此机制。
依照本发明的数据处理系统的实施例,其特征在于数据对象流包括多个分组和专用分组,所述多个分组被配置成存储数据对象,所述专用分组被配置成存储唯一标识符。处理元件识别所述专用分组,例如根据它们的分组首部,并且在不破坏数据对象流的情况下转送此未修改的分组。
依照本发明,一种控制数据处理系统的方法,其特征在于所述控制方法还包括下列步骤把唯一标识符插入数据对象流,并且把所述唯一标识符从第一处理元件传送到第二处理元件。此方法允许运行时间的重新配置,同时保持在数据处理系统上运行的应用的数据完整性。除重新配置之外,唯一标识符还可以用来定义调试断点以及确定应用等待时间。
在从属权利要求中描述了数据处理系统和控制数据处理系统的方法的进一步的实施例。
图1示出了依照现有技术把应用映射到数据处理系统上。
图2示出了基于流的处理系统的体系结构的示意性框图。
图3示出了把应用映射到图2中示出的基于流的处理系统的示意性框图。
图4示出了编程为外壳并且插入到依照图2的基于流的处理系统的数据流中位置ID的示意性框图。
图5示出了用于禁止执行依照图2的基于流的处理系统的任务的流程图。
图2依照本发明示出了用于处理数据对象流的处理系统。所述系统包括中央处理器CPU、三个协处理器ProcA、ProcB和ProcC、存储器MEM、外壳(shell)SP、SA、SB和SC以及通信网络CN。外壳SP、SA、SB和SC分别与处理器CPU和协处理器ProcA、ProcB和ProcC相关联。通信网络CN把外壳SP、SA、SB和SC与存储器MEM耦合。分别经由接口IP、IA、IB和IC把处理器CPU和协处理器ProcA、ProcB和ProcC与它们相应的外壳SP、SA、SB和SC耦合。在不同的实施例中,在所述系统中可以包括不同数目的处理器和/或协处理器。例如存储器MEM可以是芯片上存储器。处理器CPU可以是可编程的媒体处理器,而优选地是,协处理器ProcA、ProcB和ProcC是专用处理器,所述协处理器专用于执行有限范围的流处理。每个协处理器ProcA、ProcB和ProcC被配置成把相同的处理操作重复地适用于连续的数据对象流。协处理器ProcA、ProcB和ProcC都可以执行不同的任务或功能,例如可变长度的解码、行程长度解码、运动补偿、图像缩放或执行DCT变换。操作中,每个协处理器ProcA、ProcB和ProcC执行对一个或多个数据流的操作。所述操作可能涉及例如接收流并且产生另一流,或在不产生新流的情况下接收流,或在不接收流的情况下产生流,或修改所接收的流。处理器CPU和协处理器ProcA、ProcB和ProcC能够处理由其它协处理器ProcA、ProcB和ProcC或处理器CPU产生的数据流,甚至产生它们自己的流。流包括一连串数据对象,经由通信网络CN和存储器MEM把数据对象从并且向处理器CPU和协处理器ProcA、ProcB和ProcC转移。接口IP、IA、IB和IC是处理器接口并且为相关联的处理器CPU和协处理器ProcA、ProcB和ProcC来定制它们,以便能够处理处理器CPU和协处理器ProcA、ProcB和ProcC的具体需要。据此,外壳SP、SA、SB和SC具有(协)处理器专用接口,但是外壳SP、SA、SB和SC的总体体系结构对于所有(协)处理器是通用且统一的,以便使在整个系统体系结构中重新使用外壳便于进行,同时允许参数化以及采用专门的应用。在不同的实施例中,所述系统在(协)处理器、外壳和存储器之间可以具有更专用的应用的特定互连结构,该结构具有用于数据存储的多个连接和多个专用缓冲器。在又一实施例中,所述系统可以包括用于处理数据对象流的多个可编程处理器,并且在这种系统中可以用软件来实现外壳的功能。
外壳SP、SA、SB和SC包括用于数据传送的读取/写入单元、同步单元和任务切换单元。外壳SP、SA、SB和SC根据主/从基础来与相关联的(协)处理器通信,其中所述(协)处理器充当主设备。据此,按照来自相应(协)处理器的请求来初始化外壳SP、SA、SB和SC。优选的是,按照请求确认握手机制来实现在相应(协)处理器和外壳SP、SA、SB和SC之间的通信,以便交换变元值并且等待返回的请求值。因此阻塞通信,即控制的各自线程等待完成。可以用软件和/或硬件来实现外壳SP、SA、SB和SC的功能。
优选地是,读取/写入单元实现两个不同的操作,即,使处理器CPU和协处理器ProcA、ProcB和ProcC能从存储器MEM读取数据对象的读取操作,并且使处理器CPU和协处理器ProcA、ProcB和ProcC能把数据对象写入存储器MEM的写入操作。
同步单元分别实现用于同步的两个操作,以便处理在试图从空FIFO中读取或向满FIFO写入时出现的局部阻塞情况。
依照图2的系统体系结构支持多任务处理,意味着可以把几个应用任务映射到单处理器CPU或协处理器ProcA、ProcB和ProcC。多任务处理支持在获得体系结构的灵活性中是重要的,旨在配置应用范围以及在数据处理系统内的不同位置上重新运用相同的硬件处理器。多任务处理意味着需要任务切换单元,用于决定哪个(协)处理器在哪个时间点必须执行获得适当的应用进展的处理。优选地是,与固定编译时间调度相对比,在运行时间执行任务调度。
处理器CPU包括控制处理器,用于控制数据处理系统。数据对象流包括用于保留数据的多个数据分组。为了有效地使所述数据分组化,在数据流上使用可变长度的分组。
图3示出了把示例性应用映射到如上所述的基于流的处理系统的示意性框图。所述应用作为任务集TA、TB_1、TB_2、TC和TP执行,所述任务经由包括数据流DS_Q、DS_R、DS_S和DS_T的数据流通信。由协处理器ProcA执行任务TA,由协处理器ProcB执行任务TB_1和TB_2,由协处理器ProcC执行任务TC,而由处理器CPU执行任务TP。在候选实施例中,应用可以由不同的任务集组成,所述任务不同地映射到处理器CPU和协处理器ProcA、ProcB和ProcC。数据流DS_Q、DS_R、DS_S和DS_T是缓冲数据流,因为它们分别包括如FIFO缓冲器BQ、BR、BS和BT。物理上在存储器MEM中分配FIFO缓冲器BQ、BR、BS和BT。
在执行应用期间,如图3所示,可能必须动态地把任务添加到应用图表或从应用图表中删除。为了执行此操作,在不使存储在FIFO缓冲器BQ、BR、BS和BT中的数据产生不一致问题的情况下,在数据空间内的特定位置执行任务重新配置。为了能够执行此重新配置,以所谓的位置ID形式把唯一标识符插入数据流中,并且把此位置ID存储在专用分组中。对于数据分组以及位置ID分组,统一分组首部包含关于分组类型及其有效载荷大小的信息。可以按照它们唯一的分组类型来从其它分组间辨别所述位置ID分组。外壳SP、SA、SB和SC包含任务表,包括用于映射到相应处理器CPU和协处理器ProcA、ProcB和ProcC的每个任务的可编程字段。可编程字段用于存储编程的位置ID。可以借助于存储映象的IO(MMIO)寄存器来实现编程的位置ID。
处理器CPU和协处理器ProcA、ProcB和ProcC解析输入数据流,并且能够识别位置ID分组。当识别位置ID分组时,处理器CPU和协处理器ProcA、ProcB和ProcC把位置ID分组转送到输出数据流。当接收位置ID分组时,处理器CPU和协处理器ProcA、ProcB和ProcC还经由相应的接口IP、IA、IB和IC把有效载荷,连同相应任务的标识符(即当前正在执行的任务ID)一起,从所述分组(即位置ID)传送到相应的外壳SP、SA、SB和SC。当从处理器CPU或协处理器ProcA、ProcB和ProcC接收位置ID和任务ID时,相应的外壳SP、SA、SB和SC为具有任务ID的任务把所接收的位置ID与编程的位置ID相比较。当匹配时,外壳SP、SA、SB和SC通过向相应的处理器CPU或协处理器ProcA、ProcB和ProcC发送信号来挂起所述任务的进一步处理,并且还向控制处理器发送中断信号。
随后,控制处理器在软件的控制下可以分析或重新配置局部任务状态。在重新配置之后,控制处理器命令外壳SP、SA、SB和SC按照相应的处理器CPU或协处理器ProcA、ProcB和ProcC来布置所述任务的恢复。
处理器CPU和协处理器ProcA、ProcB和ProcC能够产生位置ID分组并且把所述位置ID分组插入数据对象流中。典型情况下,只在预定义的位置上把这些位置ID分组插入数据流中,例如在MPEG帧的末尾。当从(协)处理器请求新任务时,由控制处理器,或者间接地由相应的外壳SP、SA、SB和SC来命令处理器CPU和协处理器ProcA、ProcB和ProcC把这种位置ID分组插入数据流中。
图4更详细地示出了外壳SP、SA、SB和SC。外壳SP包括任务表401,外壳SA包括任务表403,外壳SB包括任务表405,而外壳SC包括任务表407。任务表401包括用于任务TP的可编程字段409,任务表403包括用于任务TA的可编程字段411,任务表405包括分别用于任务TB_1任务TB_2的可编程字段413和415,而任务表407包括用于任务TC的可编程字段417。任务表401、403、405和407可以包括用于在相应处理器CPU和协处理器ProcA、ProcB和ProcC上运行的不同任务的可编程字段,在图4中未示出。图4还示出了包括位置ID分组419的数据流DS_Q、DS_R、DS_S和DS_T。位置ID分组419包括分组首部PH。数据流DS_Q、DS_R、DS_S和DS_T在位置ID分组419之前和之后还包括多个数据分组,在图4中未示出。数据流DS_Q、DS_R、DS_S和DS_T还可以包括更多位置ID分组,在图4中未示出。
再次参照图2、3和4,控制处理器可以决定执行应用重新配置,即从任务集TP、TA、TB_1、TB_2和TC中动态删除任务TP,并且决定直接把任务TA连接到任务TB_2。控制处理器通过把相应任务表401、403和405的位置ID分别写入任务TP、TA和TB_2的可编程字段409、411和415中,来把位置ID PLID_1编程到外壳SP、SA和SB中。控制处理器通过把位置ID以及何时将要产生包含所述位置ID的位置ID分组的信息存储到用于外壳SA的任务表中任务TA的寄存器中,来命令协处理器ProcA产生所述位置ID分组。根据存储在外壳SA中的信息,由协处理器ProcA在任务TA的控制之下把包含位置ID LID_1的位置ID分组419插入数据流DS_Q和DS_R中。任务TA发信号表示通过创建它已经识别了位置ID LID_1,并且命令协处理器ProcA经由接口IA向外壳SA发送其任务ID以及位置ID LID_1。使用任务TA的所接收的任务ID,外壳SA把所接收的位置ID LID_1与用于任务TA的所编程的位置IDPLID_1相比较并且决定这些匹配。外壳SA停止由协处理器ProcA进一步处理任务TA,并且向控制处理器发送中断信号。任务TP根据关于存储在分组首部PH中分组类型的信息来识别在输入数据流DS_R中的位置ID分组419,并且命令处理器CPU把所述位置ID分组419转送到其输出数据流DS_S。任务TP还命令处理器CPU把所识别的位置ID LID_1连同其任务ID一起经由接口IP传送到外壳SP。使用任务TP的所接收的任务ID,外壳SP把所接收的位置ID LID_1与用于任务TP的所编程的位置ID PLID_1相比较并且决定这些匹配。外壳SP停止由处理器CPU进一步处理任务TP,并且向控制处理器发送中断信号。任务TB_2根据关于存储在分组首部PH中分组类型的信息来识别在其输入数据流DS_S中的位置ID分组419,并且命令协处理器ProcB把所述位置ID分组419转送到其输出数据流DS_T。任务TB_2还命令协处理器ProcB把所识别的位置ID LID_1连同其任务ID一起经由接口IB传送到外壳TB。使用所接收的任务ID,外壳TB把所接收的位置ID LID_1与用于任务TB_2的所编程的位置ID PLID_1相比较并且决定这些匹配。外壳SB停止由协处理器ProcB进一步处理任务TB_2,并且向控制处理器发送中断信号。任务TB_1和任务TC还根据有关存储在分组首部PH中的分组类型信息来识别在各自输入数据流中的位置ID分组419。任务TB_1和任务TC命令它们相应的协处理器TB和TC把位置ID分组419转送到它们各自的输出数据流,并且还把所识别的位置ID LID_1连同相应的任务ID一起发送到它们相应的外壳SB和SC。外壳SB和SC检测对于相应接收的任务ID,不存在编程的位置ID,并且在这方面不采取更进一步的动作。在不同的实施例中,不同编程的位置ID可以存在于给定任务的外壳SP、SA、SB和SC的任务表中,并且在这种情况下,把对应于该任务的所接收的位置ID与所有编程的位置ID相比较以便校验是否存在匹配。由于任务TA、TP和TB_2在数据流中相同的位置停止处理,所以FIFO缓冲器BR和BS是空的。控制处理器从应用图表中删除任务TP并且例如使用FIFO缓冲器BR经由数据流DS_R重新连接任务TA和TB_2,并且释放数据流DS_S以及FIFO缓冲器BS。控制处理器通过把信息写入相应的外壳SA和SB中来命令重新启动任务TA和TB_2。
位置ID的概念允许运行时应用重新配置,同时保持多处理器系统中应用图表的数据完整性。结果,不要求终止和重新启动应用的执行,这提高了数据处理系统的总体性能。应用重新配置可能需要例如改变一个或多个任务的参数,修改缓冲器大小或它们在存储器中的位置,修改任务互连结构,修改映射或(协)处理器的任务,实例化并连接更多任务或缓冲器,删除并断开任务或缓冲器。对于多任务处理器,当进行重新配置时处理器可以继续处理其它任务。保留两个特定的可编程位置ID值以便匹配任何接收的位置ID或没有接收位置ID。
在不同的实施例中,位置ID的概念可以用于在具有多任务处理元件的多处理器系统上分析整个应用进展或调试应用。位置ID允许在数据处理中唯一的位置上为每个任务设置调试断点,或者可以用来确定应用的等待时间。在分析整个应用进展的情况下,不要求暂停活动任务,而是例如只产生中断信号就足够了。使用该中断信号可以确定进展。
任务重新配置所需要的信息不是位置ID分组的部分,这允许独立于任务功能来转送位置ID分组、把位置ID与编程的位置ID匹配以及向控制处理器发信号的机制。结果,可以借助于可再用的硬件或软件组件来实现所述机制。
在不同的实施例中,处理器CPU或协处理器ProcA、ProcB和ProcC被配置成存储所遇到的位置ID值,以及在相应外壳SP、SA、SB和SC中位置ID和编程位置ID之间匹配的结果。在另一实施例中,处理器CPU或协处理器ProcA、ProcB和ProcC被配置成只存储在相应外壳SP、SA、SB和SC中的位置ID和编程位置ID之间匹配的结果。代替接收中断信号,控制处理器本身在稍后时刻例如借助于轮询机制调查匹配的结果。在又一实施例中,处理器CPU或协处理器ProcA、ProcB和ProcC被配置成只存储所遇到的位置ID值。所存储的位置ID值可以表明是否已经经由数据流把此位置ID传送到相应的(协)处理器。
外壳SP、SA、SB和SC的任务切换单元负责选择在相应的处理器CPU或协处理器ProcA、ProcB和ProcC上执行的任务。接口IP、IA、IB和IC实现用于接收并匹配分别由处理器CPU和协处理器ProcA、ProcB和ProcC检测的位置ID的机制。可以借助于所谓的Report接口来实现所述机制。处理器CPU和协处理器ProcA、ProcB和ProcC可以通过呼叫Report(task_id,report_type,report_id)来经由相应的接口IP、IA、IB和IC向外壳SP、SA、SB和SC的任务切换单元报告消息。task_id对应于活动任务的任务ID,根据所述任务ID发布Report请求,report_type表明错误状态或有效位置ID,而report_id包含所述位置ID。相应的外壳SP、SA、SB和SC中的任务表401、403、405和407还包括用于各个任务的五个可编程字段,在图4中未示出,分别用于存储使能标志、LocationDisable标志、InterruptEnable标志、ReportType和ReportId。如果设置LocationDisable标志,那么当report_id匹配所编程的位置ID时,根据具有来自相应处理器CPU或协处理器ProcA、ProcB和ProcC的有效report_type的Report请求来禁止活动任务。如果在这种情况下没有设置LocationDisable标志,那么不应该禁止相应的任务。如果为任务设置使能标志,那么该任务可以在相应的处理器CPU或协处理器ProcA、ProcB和ProcC上执行。只要没有为任务设置使能标志,那么该任务决不会在相应的处理器CPU或协处理器ProcA、ProcB和ProcC上执行。图5示出了用于禁止任务执行的流程图。根据报告请求,任务切换单元确定report_type变元是否表明错误状态(501)。如果report_type变元表明错误状态,那么使用task_id把report_id变元作为错误标识符存储在所选择任务的任务表条目的ReportId字段中。此外,把report_type变元存储在ReportType字段中,通过重置任务表中相应的使能标志来禁止活动任务,并且产生中断信号(505)。如果report_type变元有效,那么使用task_id把report_id变元作为所接收的位置ID存储在任务表ReportId字段中,以便选择正确的任务表条目,并且也使用task_id把report_type作为有效标识符存储在所选择任务的任务表条目的ReportType字段中(503)。当任务切换单元接收有效的report_type时,所述任务切换单元把所接收的report_id与存储在任务表的可编程字段中的所编程的位置ID相比较(503),并且确定是否存在匹配(507)。如果不相配,那么不采取进一步的动作(509)。如果所接收的report_id匹配所编程的位置ID,并且没有设置LocationDisable标志(509),那么继续处理相应的任务。这可以有用于运行时测量任务进展。如果设置LocationDisable标志(511),那么重置任务表中的使能标志禁止相应的任务(513)。此外在这两种情况中,如果设置相应任务的InterruptEnable标志(515),那么产生中断信号(517)。如果没有设置InterruptEnable标志,那么不采取进一步的动作(519)。两个编程的位置ID值具有特定的语义如果把第一个设置为全零,那么所编程的位置ID决不会匹配report_id,并且如果把第一个设置为全一,那么所编程的位置ID匹配所有的report_id。
在一些实施例中,处理器CPU和协处理器ProcA、ProcB和ProcC不向所有它们的输出数据流转送位置ID分组。通过整个应用图表数据分组流中的位置ID分组的意图是这样,以致每个任务将相对于在其相应外壳SP、SA、SB和SC中编程的位置ID值(如果有)检查位置ID值一次,以便允许任务重新配置。有时应用图表包含循环,从而应该避免在所述应用图表内这些位置ID分组继续运行。可以通过不把位置ID分组转送到所有任务集的输出数据流来避免应用图表中位置ID分组的连续循环,这对所属领域的技术人员来说是显而易见的。
人们注意到,上述实施例并不局限于本发明,本领域内的技术人员在不脱离所附权利要求的范围内的情况下可以设计很多替换的实施例。在权利要求中,不应当将括号内的任何参考符号看作是对权利要求的限制。词“包括”并不排除那些没有记载在权利要求中的元件或步骤。位于元件之前的词“一个”或“一种”并不排除存在多个这样元件的情况。在产品权利要求所列举的一些装置在中,这些装置的一部分可以被具体化为一个或相同的硬件项。在彼此不同的权利要求中所提到的某些方法,实际上并不意味着把这些方法结合是无益的。
权利要求
1.一种数据处理系统,包括用于处理数据对象流(DS_Q,DS_R,DS_S,DS_T)的至少第一处理元件(CPU,ProcA,ProcB,ProcC)和第二处理元件(CPU,ProcA,ProcB,ProcC),所述第一处理元件被配置成把数据对象从数据对象流传送到所述第二处理元件,其中所述第一和第二处理元件(CPU,ProcA,ProcB,ProcC)被配置成执行应用,所述应用包括任务集(TP,TA,TB_1,TB_2,TC),并且其中第一和第二处理元件的至少一个被配置成响应唯一标识符(LID_1)的接收,其特征在于,所述数据对象流还包括唯一标识符,而且所述第一处理元件还被配置成把所述唯一标识符传送到所述第二处理元件。
2.如权利要求1所述的数据处理系统,其特征在于至少一个处理元件(CPU,ProcA,ProcB,ProcC)被配置成把唯一标识符(LID_1)插入到数据对象流(DS_Q,DS_R,DS_S,DS_T)中。
3.如权利要求1所述的数据处理系统,其特征在于任务集(TP,TA,TB_1,TB_2,TC)的至少一个任务被配置成具有可编程的标识符(PLID_1),其中第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的相应处理元件被配置成把所述可编程的标识符(PLID_1)与唯一标识符(LID_1)相比较。
4.如权利要求3所述的数据处理系统,其特征在于第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的至少一个处理元件被配置成当在可编程的标识符(PLID_1)和唯一标识符(LID_1)之间匹配时,暂停任务集(TP,TA,TB_1,TB_2,TC)的相应任务。
5.如权利要求3所述的数据处理系统,其特征在于第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的至少一个处理元件被配置成当在可编程的标识符(PLID_1)和唯一标识符(LID_1)之间匹配时,产生中断信号。
6.如权利要求3所述的数据处理系统,其特征在于第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的至少一个处理元件被配置成存储唯一标识符(LID_1)。
7.如权利要求3所述的数据处理系统,其特征在于第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的至少一个处理元件被配置成存储所述可编程标识符(PLID_1)与唯一标识符(LID_1)的比较结果。
8.如权利要求5所述的数据处理系统,其特征在于数据处理系统还包括控制处理元件,其中所述控制处理元件被配置成响应于所述中断信号来重新配置应用。
9.如权利要求1所述的数据处理系统,其特征在于所述数据对象流(DS_Q,DS_R,DS_S,DS_T)包括多个分组,所述多个分组被配置成存储数据对象;专用分组(419),所述专用分组被配置成存储唯一标识符(LID_1)。
10.一种用于控制数据处理系统的方法,所述数据处理系统至少包括用于处理数据对象流(DS_Q,DS_R,DS_S,DS_T)的第一处理元件(CPU,ProcA,ProcB,ProcC)和第二处理元件(CPU,ProcA,ProcB,ProcC),其中所述第一处理元件被配置成把数据对象从数据对象流传送到第二处理元件,并且其中所述第一和第二处理元件被配置成执行应用,所述应用包括任务集(TP,TA,TB_1,TB_2,TC),所述控制方法下列步骤由第一和第二处理元件的至少一个识别唯一标识符(LID_1),其特征在于所述控制方法还包括下列步骤把所述唯一标识符插入所述数据对象流中,把所述唯一标识符从所述第一处理元件传送到所述第二处理元件。
11.如权利要求10所述的用于控制数据处理系统的方法,其特征在于由至少一个处理元件(CPU,ProcA,ProcB,ProcC)来执行把所述唯一标识符插入数据对象流(DS_Q,DS_R,DS_S,DS_T)中的步骤。
12.如权利要求10所述的用于控制数据处理系统的方法,其特征在于所述方法还包括下列步骤把标识符(PLID_1)编程到任务集(TP,TA,TB_1,TB_2,TC)的至少一个任务中,由第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的相应的处理元件来把唯一标识符(LID_1)与编程的标识符(PLID_1)相比较。
13.如权利要求12所述的用于控制数据处理系统的方法,其特征在于所述方法还包括下列步骤由第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的相应的处理元件当在所述任务的可编程标识符(PLID_1)和唯一标识符(LID_1)之间匹配时,暂停任务集(TP,TA,TB_1,TB_2,TC)的任务。
14.如权利要求12所述的用于控制数据处理系统的方法,其特征在于所述方法还包括下列步骤由第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的处理元件当在多个任务(TP,TA,TB_1,TB_2,TC)的相应任务的可编程标识符(PLID_1)和唯一标识符(LID_1)之间匹配时,产生中断信号。
15.如权利要求12所述的用于控制数据处理系统的方法,其特征在于所述方法还包括下列步骤由第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的处理元件为多个任务(TP,TA,TB_1,TB_2,TC)的相应任务存储唯一标识符(LID_1)。
16.如权利要求12所述的用于控制数据处理系统的方法,其特征在于所述方法还包括下列步骤由第一和第二处理元件(CPU,ProcA,ProcB,ProcC)的处理元件为多个任务(TP,TA,TB_1,TB_2,TC)的相应任务存储可编程的标识符(PLID_1)与唯一标识符(LID_1)的比较结果。
17.如权利要求14所述的用于控制数据处理系统的方法,其特征在于所述数据处理系统还包括控制处理元件而且方法还包括步骤由控制处理元件响应于中断信号来重新配置应用。
18.如权利要求10所述的用于控制数据处理系统的方法,其特征在于所述数据对象流(DS_Q,DS_R,DS_S,DS_T)包括多个分组,所述多个分组被配置成存储数据对象,专用分组(419),是被配置成存储唯一标识符(LID_1)。
全文摘要
本发明涉及具有多个处理元件(CPU,ProcA,ProcB,ProcC)的数据处理系统中的任务管理。因此提供了一种数据处理系统,至少包括用于处理数据对象流(DS_Q,DS_R,DS_S,DS_T)第一处理元件(CPU,ProcA,ProcB,ProcC)和第二处理元件(CPU,ProcA,ProcB,ProcC),所述第一处理元件被配置成把数据对象从数据对象流传送到所述第二处理元件。所述第一和第二处理元件被配置成并行执行包括任务集(TP,TA,TB_1,TB_2,TC)的应用,并且第一和第二处理元件被配置成响应唯一标识符的接收。为了确保在重新配置应用期间数据的完整性,把所述唯一标识符插入数据流中并且把所述唯一标识符从一个处理元件传送到其它处理元件。当相应的处理元件接收唯一标识符时执行应用重新配置,并且结果在数据空间内的唯一位置上允许全局应用控制。
文档编号G06F9/46GK1833226SQ200480005228
公开日2006年9月13日 申请日期2004年2月18日 优先权日2003年2月27日
发明者M·J·鲁特坦, J·T·J·范埃恩德霍文, E·-J·D·波尔 申请人:皇家飞利浦电子股份有限公司