CN1605066A - 数据处理系统 - Google Patents

数据处理系统 Download PDF

Info

Publication number
CN1605066A
CN1605066A CN02824948.8A CN02824948A CN1605066A CN 1605066 A CN1605066 A CN 1605066A CN 02824948 A CN02824948 A CN 02824948A CN 1605066 A CN1605066 A CN 1605066A
Authority
CN
China
Prior art keywords
processor
data
data object
storer
stream
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
CN02824948.8A
Other languages
English (en)
Other versions
CN1311348C (zh
Inventor
J·T·J·范埃德霍文
E·J·波
M·J·鲁特坦
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.)
Entropic Communications LLC
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1605066A publication Critical patent/CN1605066A/zh
Application granted granted Critical
Publication of CN1311348C publication Critical patent/CN1311348C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Image Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

说明了一种多处理器数据处理系统,其中,处理器(12a,12b,12c)通过共享的存储器(10)彼此通信。每一处理器包括一个管理单元(18a)和一个通信单元(12a)。写处理器(11a)的管理单元保持着规定为存储由读处理器(12b)读取的数据对象的存储器(10)中空闲的一段的信息。读处理器(11b)的管理单元(18b)保持着规定写处理器已经为所述数据对象写入了完成的数据的存储器(10)中一段的信息。安排这些处理器通过处理器同步通道给另一处理器发送消息(M,M′),以便更新在所述其它处理器的管理单元中的信息。安排每一处理器当需要访问的位置位于由它的管理单元所定义的段外时就挂起数据对象流的处理。

Description

数据处理系统
技术领域
本发明涉及具有多处理器的数据处理系统。
背景技术
用于高性能、依赖于数据的媒体处理例如用于高清晰度MPEG解码的异类多处理器结构是已知的。媒体处理应用可以指定为一组并行执行的任务,这些任务只通过单向数据流交换信息。G..Kahn已经在1974年引入这种应用的一种正式模型,“The Semantics of a SimpleLanguage for Parallel Programming”,(并行编程用的简单语言的语义学)IFIP第74次会议会议录,八月5-10日,斯德哥尔摩,瑞典,North-Holland publ.Co.1974,第471-475页,随后在1977年又由Kahn和MacQueen在下面的文章中进行可操作说明,“Co-routines and Networks of parallel Programming”,(并行编程的协例程和网络)Information Processing 77,B Gilchhirst(ED.),North-Holland publ.Co.1974,第993-998页。这一正式模型现在一般称为Kahn处理网络。
公知一个应用是一组可并行执行的任务。信息只可以通过单向数据流在这些任务间交换。这些任务只应该通过关于预定数据流的读写过程确定性地进行通信。数据流在FIFO行为的基础上进行缓冲存储。由于这一缓冲存储,两个任务通过数据流的通信不必与单个的读写处理同步。
在流处理中,数据流的连续操作是在不同的处理器上实施的。例如,第一流可能包含图像的像素值,它们由第一处理器处理以产生8×8像素块的DCT(离散余弦变换)系数块的流。第二处理器可以处理该DCT系数块,以产生为每一DCT系数块的选定的和经压缩的系数块的流。
图1表示现有技术中公知的一个应用对处理器映射的示意图。为实现数据流处理,提供了一些处理器,每一处理器能够重复执行一种特定的操作,每次使用从数据对象流的下一数据对象来的数据,和/或产生这种流中的下一数据对象。所述流经一个处理器传送到另一个,使得由第一处理器产生的流可以由第二处理器处理,如此等等。从第一处理器传送数据到第二处理器的机理是把由第一处理器产生的数据块写入存储器。
网络中的数据流被缓冲存储。每一缓冲器作为FIFO而实现,确切地说是一个写入者,一个或多个读取者。由于这一缓冲存储,写入者和读取者不需要在通道上对单个的读和写动作相互同步。从没有足够可用数据的通道的读出将引起读任务停止。协处理器可以是专用硬件功能单元,它只可以进行很有限的编程。所有协处理器并行运行,执行它们自己的控制线程。它们一起执行Kahn型的应用,其中每一任务被映射到一个单一的协处理器。这些协处理器允许多任务,亦即多个Kahn任务可以映射到单一处理器。
发明内容
因此,本发明的一个目的是改进Kahn型数据处理系统的操作。
这一目的是通过根据权利要求1的数据处理系统而实现的。在根据本发明的数据处理中,保持了关于存储器使用的分布式管理,通过所述存储器处理器彼此交换数据流。在一方面,写处理器的管理单元维护了定义存储器中某一段的信息,该段是空闲的以用于存储由其它处理器读取的数据对象。另一方面,第二处理器的管理单元维护了定义存储器中某一段的信息,该段中第一处理器已经为这些数据对象写入已完成的数据。它的优点是,写处理器不需要用第二处理器检查它写的每一数据对象,看它是否会覆盖读处理器仍然需要的旧的数据对象。相似地,读处理器不需要用写处理器检查每一数据对象,看其是否已经有效。代之为,每一处理器使用它的管理单元检查是否允许存储器访问。这只需要局部通信。为维护管理单元中的信息,全局通信是必需的,这一点是确实的,但是这可以一次为一组数据对象进行。
对管理单元的更新消息既可以以如权利要求2中定义的推方式也可以以如权利要求3中定义的拉方式发生。在拉方式中,读处理器请求得到有多少数据对象已经由写处理器写过。写处理器用表明已经写过的数据对象数量的消息对此作出响应。相似地,写处理器请求得到有多少数据对象已经被读取,读处理器用表明这一数量的消息对此作出响应。因此,需要两个消息来更新管理单元中的信息。
在如权利要求2中说明的推方式中,写处理器给读处理器的管理单元发送消息,告知有多少数据对象已经可用。相似地,读处理器给写处理器发送消息,告知已经被读取的数据对象的数目,由所述数据对象占据的存储器空间被释放用来写新的数据对象。因此,推方式具有只需要一个消息用来更新管理单元中的信息的优点。
在一个实施例中,根据本发明的数据处理系统中的处理器可以验证每一单个访问是否在它自己的段内,亦即被允许还是不被允许。例如,读处理器可以验证它希望读取的每一数据对象是否在它自己的段内。然而,在权利要求4中说明了一个更为优选的实施例。在该实施例中,处理器能够一次对一组数据对象进行验证。以这种方式,可以保证,一个任务一旦启动,它再不会被中断,直到完整的数据块被处理完毕。这对一个完整的数据块必须被一次处理完的那些操作诸如数字余弦变换来说是特别有利的。以这种方式,可以避免在中断任务时必须保存大量状态信息。
权利要求5的实施例具有这样的优点,当第二处理器所具有的数据对象不足以继续一个特别的任务时,可以为执行其它任务使用它的处理能力。
在权利要求6的实施例中,第二处理器是用于执行一个流处理任务范围的功能特定的专用处理器,这些任务是诸如可变长度解码、运行长度解码、运动补偿、图像缩放、或者执行DCT变换。
处理器不必顺序访问指定的存储器段。优选地处理器被安排去执行这样的读和/或写操作,它允许随机访问如权利要求7中所要求的由管理单元规定的所述存储器中段内的位置。
附图说明
参考附图详细说明本发明的这些和其它方面,附图中:
图1表示根据现有技术把应用映射到处理器的示意图;
图2是基于处理系统的流结构的原理框图;
图3是在图2的系统中的同步操作和I/O操作的示意图;
图4是共享存储器的示意图;
图5是使用图4的存储器更新根据图2的每一管理单元中的局部空间值的机理;
图6是具有单一写入者和多个读取者的FIFO缓冲器的示意图;
图7是用于一个三站流的有穷存储器缓冲器的实现;
图8更详细地表示形成处理系统一部分的处理器;和
图9A-9C是读取和管理超高速缓冲存储器中的数据的有效性的示意图。
具体实施方式
图2表示根据本发明的一个处理系统。该系统包括存储器10、若干处理器11a、11b、11c和一个仲裁器16。处理器11a-c的每一个包括计算单元12a、12b、12c和管理单元18a、18b、18c。处理器11a、11b、11c是按举例方式表示的,在实际中,可以使用任何数目的处理器。处理器11a-c通过地址总线14和数据总线13连接到存储器10。处理器11a-c连接到仲裁器16,它们彼此通过同步通道连接,所述同步通道包括管理单元18a-c,后者通过通信网络19诸如令牌环彼此连接。
优选地,处理器11a-c是专用处理器;每一个专门用于高效执行一个有限范围的流处理任务。亦即安排每一处理器重复对通过数据总线13接收的连续数据对象施加同样的处理操作。处理器11a-c每一个可以执行一个不同的任务或功能,例如可变长度解码,运行长度解码,运动补偿,图像缩放或者执行DCT变换。另外,也可以包括可编程处理器,诸如TriMedia、或MIPS处理器。
在操作中,每一处理器11a-c对一个或者多个数据流执行操作。所述操作例如可以包括接收一个流和产生另一个流,或接收一个流而不产生新流,或产生一个流而不接收流,或修改一个接收的流。处理器11a-c能够处理由另外的一个处理器11a-c产生的数据流,或者甚至它们自身产生的流。一个流包括连续的数据对象,这些数据对象通过存储器10从或向处理器11a-c传输。
为读或写来自数据对象的数据,处理器11a-c访问存储器10中分配给该流的那部分。
图3表示读和写处理以及它们相关的同步操作的示意图。从协处理器的观点看,一个数据流像一个具有当前访问点的无穷的数据带。从协处理器(计算单元)发布的获取空间调用请求对由图3中的小箭头指示的当前访问点前面的一定的数据空间的访问许可。如果这一许可被授予,则该协处理器可以在所请求的空间亦即图3b的带框的窗口内使用由n_bytes参量指示的变长数据和由offset参量指示的随机访问位置执行读和写动作。
如果许可未被授予,则该调用返回“假”。在一个或者多个获取空间调用-和可选地几个读/写动作-后,协处理器可以决定该处理或该数据空间的某些部分已经结束,并发布一个释放空间调用。这一调用把访问点前移一定数目的字节,亦即图3d的n_bytes2,其中,其大小由先前授予的空间所限制。
图4表示存储器10的一个逻辑存储器空间20,它包含一系列具有逻辑连续地址的存储器位置。图5表示两个处理器11a和11b如何通过存储器10交换数据对象。存储器空间20包含分配给不同流的子空间21、22、23。作为一个例子,图4中详细表示出由下边界地址LB和上边界地址HB限定的子空间22。在该子空间22中,在地址A2和A1之间的存储器位置,也用段A2-A1指明,包含有效数据,可为读处理器11b所用。在地址A1和该子空间的高边界HB之间的存储器位置,以及在该子空间的低边界LB和地址A2之间的存储器位置,也用段A1-A2指明,可用于写处理器11a写新数据。作为一个例子,假定处理器11b访问在分配给由处理器11a产生的流的存储器位置中存储的数据对象。
在上述例子中,流的数据被写入存储器位置的一个循环序列中,每次从逻辑最低地址LB开始到达逻辑最高地址HB。这通过图5中的存储器子空间的循环表示来说明,其中下边界LB和上边界HB彼此相邻。
管理单元18b保证处理器11b在被处理的流的有效数据写入这些存储器位置之前不访问存储器位置22。相似地,这里使用管理单元18a来保证处理器11a不覆盖存储器10中的有用数据。在图2所示的实施例中,管理单元18a、b形成环18a、b、c的一部分,其中,同步信号从一个处理器11a-c传送给下一个,或当这些信号在任何后继的处理器11a-c不需要时封锁和覆盖它们。管理单元18a、18b、18c一起形成一个同步通道。管理单元18a维护用于从处理器11a向处理器11b传输数据对象流的存储器空间的信息。在所示实施例中,管理单元18a存储值A1,它是可用于由处理器11a写的段A1-A2的地址范围的开始点A1的表示。它还存储值S1,它是该段的大小的代表。然而,所述地址范围也可以用它们的边界或者用上边界A2和值S1指示。相似地,管理单元18b存储值A2,它是包含为处理器11b的有效数据的段A2-A1的开始点A2的表示。它还存储值S2,它是该段的大小的表示。当处理器11a开始产生用于处理器11b的数据时,段A2-A1的大小S2应该初始化为零,因为还没有为后面的处理器11b可用的有效数据。在处理器11a开始向存储器子空间22写数据之前,它通过第一指令C1(getspace)请求该空间内的一段。这一指令的一个参数是它要求的大小n。如果有多个存储器子空间可用的话,则它还包括为识别该子空间的参数。子空间可以由识别通过该子空间传输的流而识别。只要要求的大小n小于或等于由管理单元18a为该段存储的大小S1,管理单元18a就授权这一请求。这时处理器11a可以用它所请求访问的存储器空间的段A1-A2的大小n向A1-A2’这部分写入数据对象。
如果所需要的数目n超过指示的数目S1,则产生处理器11a挂起所指示的流的处理。产生处理器11a然后可以进行为另一个它正在产生的流的处理,或者产生处理器11a可以完全暂停处理。如果所需要的数目超过指示的数目,则产生处理器11a将执行指令,该指令在晚些时间再次指示所需要的具有新数据的存储器位置的数目,直到产生处理器11a检测到下列事件,即所需要的数目没有超过由接收处理器11a指示的位置。在检测到这一事件后,产生处理器11a继续处理。
为了要同步,在存储器10中的数据流内容变为有效后,产生数据流的产生处理器11a-c发送其数据流内容变为有效的存储器10中的位置数目的指示。在本例中,如果处理器11a已经写了一些数据对象,占据了空间m,则它发送第二指令C2(putspace),指明所述数据对象可由第二处理器11b进一步处理所用。该指令的参数m表明在存储器子空间22内的要释放的该段的大小。可以包括另外一个参数来表明该存储器子空间。在接收到这一指令时,管理单元18a从可用大小S中减去m,同时增加地址A1:
A1=A1m,式中,是按模HB-LB求和。
管理单元18a另外给处理器11b的管理单元18b发送一个消息M。在接收到这一消息后,管理单元18b给A2-A1的大小S2增加m。当接收处理器,这里是11b,达到需要新数据的流来进行处理的阶段时,它发送一个指令C1(k),指示需要具有新数据的存储器位置数目k。在该指令后,如果来自管理单元18b的回答指示这一需要的数目没有超过由产生处理器11a所指示的位置的话,则接收处理器11b的计算单元12b继续处理。
如果所需要的数目k超过指示的数目S2,则接收处理器11b挂起所指示的流的处理。接收处理器11b然后可以进行为另一个它正在处理的流的处理,或者接收处理器可以完全暂停处理。如果所需要的数目k超过指示的数目S2,则接收处理器11b将执行指令,该指令在晚些时间再次指示所需要的具有新数据的存储器位置的数目,直到在接收处理器11b中记录到下列事件,即所需要的数目k没有超过由产生处理器11a指示的位置A1。在记录这一事件后,接收处理器11b恢复该流的处理。
在上述例子中,一个流的数据写入一个循环的存储器位置系列中,每次到达逻辑最高地址HB时就从逻辑最低地址LB开始。这会引起产生处理器11a赶上接收处理器而覆盖接收处理器仍然需要的那些数据的可能。当希望防止产生处理器11a-c覆盖这种数据时,每次在接收处理器11a-c停止处理来自存储器中的存储器位置的内容后,接收处理器11a-c就发送存储器中不再需要的存储器位置数目的指示。这可以借助由产生处理器11a使用的同一指令C2(putdata)实现。这一指令包括不再需要的存储器位置的数目m’。另外,它可以包括流或者存储器空间的标识,如果处理多于一个流的话。在接收到这一指令时,管理单元18b从大小S2中减去m’,并按存储器子空间的大小为模给地址A2增加m’。管理单元18b还给产生处理器11a的管理单元18a发送一个消息M’。在接收到这一消息时,产生处理器11a的管理单元18a增加大小S1。
这意味着,一个流中的数据可以被覆盖直到当前的起始位置24a-c,如在图4中为若干不同的流所示的那样。这一指示被记录在产生处理器11a-c中。当产生处理器11a-c达到它的这一处理阶段时,即它需要把来自产生的流中的数据写到存储器中的一些新位置时,该产生处理器11a-c执行一个指令,表明为新数据的需要而要求的存储器位置的数目。在该指令后,如果由产生处理器11a-c记录的指示表示这一需要的数目没有超过由接收处理器11a-c指示的位置的话,则产生处理器11a-c继续处理。
优选地,具有有效内容的位置数目和可以被覆盖的位置数目要按标准位置数目来表明,而不是按在该流中的数据对象的数目来表明。它的效果是,产生和接收数据流的处理器不必指明具有同样块大小的位置的有效性和可重用性。其优点是,可以设计每一个产生和接收处理器11a-c而无需知道其它处理器11a-c的块大小。以小的块大小工作的处理器11a-c不需要等待以大的块大小工作的处理器。
存储器位置的指示可以用几种方式进行。一种方式是指示有效的或者可以被覆盖的另外的存储器位置的数目。另一种解决方案是传输最后的有效或者可覆盖的位置的地址。
优选地,至少一个处理器11a-c能够交替操作不同的流。对于每一接收到的流,处理器11a-c局部地保持有关存储器位置的信息,直到该位置数据是有效的,和对每一产生的流它保持有关在存储器中可达到的能写入新数据的位置的信息。
管理单元18a、b、c的实现和操作不需在读和写端口之间加以区别,虽然特别的实例也许对这些有区别。由管理单元18a、b、c实现的操作有效地隐藏了实现的诸多方面,诸如FIFO缓冲器22的大小、它在存储器中的位置20,关于为关联存储器的循环FIFO的地址的任何折返机理,超高速缓冲存储策略,超高速缓冲存储的一致性,全局I/O定位限制,数据总线宽度,存储器定位限制,通信网络结构和存储器组织。
优选地,管理单元18a-c对未格式化的字节序列进行操作。在由写入者11a和读取者11b使用的通信数据流的同步包的大小之间不需要任何相关。数据内容的语义解释留给协处理器,亦即计算单元12a、12b。任务不知道应用图形关联结构(incidence structure),像它正与哪一些其它任务在通信,这些任务映射在哪些协处理器上,和哪一些其它的任务映射在同一个协处理器上。
在管理单元18a-c的高性能实现中,可以通过在管理单元18a-c包含的读/写单元和同步单元并行发布读调用、写调用、获取空间调用、释放空间调用。作用于管理单元18a-c的不同端口的调用没有互相的排序(ordering)的限制,而作用于管理单元18a-c的相同端口上的调用则必须根据调用程序任务或协处理器排序。对于这种情况,当前一调用返回时,协处理器可以发布下一调用,在软件实现中是通过功能调用的返回而在硬件实现中是通过提供一个应答信号。
在读调用中的大小参量即n_bytes的零值可以保留以便为执行从存储器预取数据到由port_ID和offset参量指示的位置处的管理单元的超高速缓冲存储器。这种操作可以用于由管理单元执行的自动预取。相似地,可以预留写调用中的零值用于超高速缓冲存储器的刷新请求,虽然自动的超高速缓冲存储器刷新是管理单元的责任。
可选地,所有5种操作都接受另外一个最后的task_ID参量。这通常是一个从先前的获取任务(gettask)调用作为结果值得到的小的正数。使用获取任务调用,协处理器(计算单元)可以请求它的管理单元分配一个新的任务,例如,如果由于可用的数据对象不够,计算单元不能用当前任务进行。在出现这一获取任务调用时,管理单元返回新任务的标识。在操作读、写、释放空间和获取空间中这一参量的零值是为那些不是任务特定的但是与协处理器控制相关的调用预留的。
在优选实施例中,数据流的通信的设置(set-up)是连接到有穷大小的FIFO缓冲器上的一个写入者和一个读取者的流。这种流需要具有有穷和固定大小的FIFO缓冲器。它在存储器中预先分配,并且在其线性地址范围内应用一个循环寻址机理以得到适当的FIFO行为机构。
然而,在基于图2和图6的另外的实施例中,由一个任务产生的数据流要由具有不同输入端口的两个或者多个不同的消费者消费。这种情形可以用术语分叉(forking)来描述。然而,我们希望既为多任务硬件协处理器也为在CPU上运行的软件任务重新使用该任务实现。这是通过具有与它们的基本功能的固定数目的端口相对应的任务而实现的。由应用配置引发的任何分叉的需要都要由管理单元解决。
显然,通过只维持两个分开的正常的流缓冲器,通过双倍所有写和释放空间操作和通过对双倍的获取空间检查的结果值执行与操作,流分叉可以由管理单元18a-c实现。优选地,不要这样来执行,因为其代价将包括双倍的写带宽和或许更多的缓冲器空间。相反,优选用两个或更多个读取者和一个写入者共享同一FIFO缓冲器来实现。
图6表示具有单一写入者和多个读取者的FIFO缓冲器的示意图。同步机构必须保证在A和C之间按配对方式的排序之后在A和B之间有正常的按配对方式的排序,而B和C没有相互的限制,例如假定它们是纯粹的读取者。这在与执行写操作的协处理器相关联的管理单元中是通过分别跟踪为每一读取者(A到B和A到C)可用的空间而实现的。当写入者执行一个局部获取空间调用时,它的n_bytes参量与这些空间值的每一个相比较。这是通过使用在所述流表中分叉的额外行而实现的,它由一个额外的字段或列连接以指示改变到下一行。
这对于大多数不使用分叉的情况只提供很小的开销而同时又不限定只有两路分叉。优选仅由写入者实现。读取者不需要知道这种情况。
在基于图2和图7的另外一个实施例中,数据流作为根据带模型的一个三站流实现。每一站对流过的数据流执行某些更新。三站流的应用的一个例子是一个写入者、一个中间的监督者和最后一个读取者。在这种例子中,第二任务优选地观察通过的数据,并且可能检查某些数据,而大多数情况是允许数据通过而不进行修改。较不经常的是它可以决定改变流中的少数项。这可以通过处理器在缓冲器中就地更新而有效实现,以避免把整个流内容从一个缓冲器复制到另一个。在实际中,这在下述情形下可以是有用的:当硬件协处理器在通信,而主CPU11干预要修改该流以改正硬件缺陷,修改稍微不同的流格式,或者只是为了调试。这一配置可以由所有三个处理器实现,它们共享存储器中的单一流缓冲器,以减少存储器流量和处理器工作负载。任务B不会实际去读或写整个数据流。
图7表示为一个三站流的有穷存储器缓冲器的实现。这一三路缓冲器的适当的语义包括维持A、B和C彼此之间一个严格的排序和保证窗口不重叠。以这种方式,该三路缓冲器是从图4的所示的两路缓冲器的扩展。这种多路循环FIFO由上述管理单元的操作和由在优选实施例中讨论的带释放空间消息的分布式实现方式直接支持。对在单一FIFO中的站不局限于3个。在一个站既消费又产生有用数据的就地处理中也可以只用两个站。在这种情况下两个任务都执行就地处理来彼此交换数据,在缓冲器中不留空的空间。
在基于图2的另外的实施例中说明了对缓冲器的单一访问。这种单一访问缓冲器只包括单一端口。在这一例子中在任务或者处理器之间不执行数据交换。代之为,它只是局部使用的所述管理单元的一个标准通信操作的应用程序。管理单元的建立包括标准缓冲器存储器,有一个与其连接的单一访问点。这时任务使用该缓冲器作为局部的中间结果暂存器或超高速缓冲存储器。从结构的观点看来,这可能具有优点,诸如为几个目的和任务组合使用较大的存储器,和例如使用软件可配置的存储器大小。此外,作为中间结果暂存器存储器以节省这一建立的任务特定的算法使用,还可以很好地应用于在多任务协处理器中存储和检索任务状态。在这种情况下为状态交换执行读/写操作不是任务功能代码自身的一部分,而是处理器控制代码的一部分。由于缓冲器不用于与其它任务通信,因此通常不需要对该缓冲器执行释放空间和获取空间操作。
在基于图2和图8的另一个实施例中,根据优选实施例的管理单元18a-c另外包括一个数据超高速缓冲存储器,用于在协处理器12和存储器20之间的数据传输亦即读操作和写操作。在管理单元18a-c中的数据超高速缓冲存储器的实现提供了数据总线宽度的透明变换,对全局互联亦即数据总线13的定位限制的解决,和减少对全局互联的I/O操作的数目。
优选地,管理单元18a-c包括单独的读写接口,每一个具有一个超高速缓冲存储器,然而这些超高速缓冲存储器从应用程序功能的观点是看不见的。这里,使用释放空间和获取空间操作的机理用来明确地控制超高速缓冲存储器一致性。超高速缓冲存储器在将通信网络(数据总线)13的全局互联与协处理器读和写端口的解耦中起重要作用。这些超高速缓冲存储器对于有关速度、能力和区域的系统性能有主要的影响。
在授权一个任务端口对流数据窗口的访问被保证为专有的。其结果是在这一区域上的读和写操作是安全的,并且在第一侧不需要中间的处理器间通信。通过局部获取空间请求来从循环FIFO的一个前任获得新的存储器空间来扩展该访问窗口。如果超高速缓冲存储器某些部分被标记以对应这种扩展,而且任务有兴趣读取该扩展中的数据,则超高速缓冲存储器中这样的部分需要被无效化。然后对这一位置所发生的读操作会发生缓存失中,并且把新的有效数据加载到该超高速缓冲存储器。精心制作的管理单元的实现可以使用获取空间来发布预取请求以减少超高速缓冲存储器失中的代价。通过局部释放空间请求以便给循环FIFO的后继者留下新的存储器空间来收缩该访问窗口。如果这种收缩的某些部分在超高速缓冲存储器中发生,并且该部分已经被写,则超高速缓冲存储器的该部分需要被刷新,以使得局部数据可为其它处理器所使用。给其它协处理器发送释放空间消息必须推迟,直到超高速缓冲存储器的刷新完成和存储器操作的安全排序得到保证。
与同属超高速缓冲存储器一致性机构诸如总线探听(snooping)相比,为明确的超高速缓冲存储器一致性控制只使用局部获取空间和释放空间在大系统结构中相对容易实现。另外它不提供通信开销,例如像在超高速缓冲存储器通体写结构中那样。
获取空间和释放空间操作被规定在字节粒度上操作。超高速缓冲存储器的主要责任是为协处理器隐藏全局互联数据传输大小和数据传输定位的限制。优选地,数据传输大小在同前的定位上设定为16字节,但小到2字节的同步的数据量可有效地被使用。因此,同一存储器字或者传输单元可以同时在不同协处理器的超高速缓冲存储器中存储,而无效信息则是在每一超高速缓冲存储器中在字节的粒度上处理的。
图8表示处理器12和管理单元18的组合,用于图2所示的处理系统。更详细地表示出的管理单元18包括控制器181、含有流信息的第一表(流表)182和含有任务信息的第二表(任务表)183。管理单元18还包括一个用于处理器12的超高速缓冲存储器184。在同步接口18中的超高速缓冲存储器184的存在允许简单地设计超高速缓冲存储器和简化超高速缓冲存储器控制。在一个或者多个超高速缓冲存储器之外,在处理器12中也可以存在诸如指令超高速缓冲存储器。
控制器181通过指令总线Iin连接到相应处理器,亦即12a,用于接收类型C1、C2的指令。反馈线FB用作给所述处理器反馈,例如对缓冲器空间的请求的授权。控制器有一条消息输入线Min以接收来自环中一个前行的管理单元的消息。它还有一条消息输出线Mout以给后继的管理单元传送消息。管理单元可以给它的后继者传送的消息的一个例子是一部分缓冲器存储器被释放。控制器181具有地址总线STA和TTA,分别选择流表182和任务表183的地址。它另外还有数据总线STD和TTD,分别从这些表读/写数据。
管理单元18传输和从其它处理器(图3中未示出)接收同步信息和至少存储接收到的信息。管理单元18另外包括一个超高速缓冲存储器184,用于在处理器12局部存储来自数据流的数据的复本。超高速缓冲存储器184通过局部地址总线185和局部数据总线186连接到处理器12。原理上,处理器12可以用图1的处理系统的存储器10的位置的地址寻址超高速缓冲存储器184。如果超高速缓冲存储器184包含被寻址的数据的内容的一个有效复制件,则处理器12访问包含该复制件的超高速缓冲存储器184中的位置,而不访问存储器10(图1)。处理器12优选是设计非常有效地执行一类操作例如MPEG解码的专门处理器内核。在该系统中的不同处理器中的处理器内核可以具有不同的专门作用。同步接口18及其超高速缓冲存储器184对于所有不同的处理器可以是相同的,只有超高速缓冲存储器的大小可根据处理器12的不同需要而修改。
优选管理单元18用于管理从存储器10向超高速缓冲存储器184预取数据和/或从超高速缓冲存储器184向存储器10回写数据。当管理单元18接收一个信号,告知存储器10包含有效数据直到某一个存储器位置,则优选地使管理单元18的控制器181给超高速缓冲存储器184发信号以便从存储器10直到该位置预取数据。管理单元18的控制器181检测数据何时被预取。如果处理器12请求访问新数据,则仅当管理单元18已经接收到告知该位置可用的信号和超高速缓冲存储器184已经为这些位置预取数据后,管理单元18才允许处理器12从新位置读数据。相似地,当处理器12给管理单元18发信号,告知它已经完成对一直到存储器中某点的位置的写时,管理单元18使超高速缓冲存储器184回写数据到存储器10中直到被通知的那一点。管理单元18检测该回写何时完成,并仅在回写完成后才通过同步消息网络传输关于已经完成的位置数目的信息。
这样,使用对存储器访问数据对象流的可预测性来改善超高速缓冲存储器管理。
相似地,管理单元18可以响应来自处理器内核12关于处理器12已经完成直到存储器中某点的流的读取的信号,这是通过对直到该位置的存储器位置使用的超高速缓冲存储器位置作标记以作为为超高速缓冲存储器置换的第一可用位置而实现的。当处理器12给管理单元18发信号告知打算写一个流的数据到存储器中直到某一位置时,管理单元18可以通过分配映射到所涉及的存储器位置的超高速缓冲存储器位置来响应。
在所示实施例中,在同步接口之间的同步消息网络是令牌环网络。这具有允许较少的连接数量的优点。此外,令牌环自身的结构是可缩放的,使得可以增加或者删除一个节点而对接口设计没有什么影响。然而,在其它实施例中,可以以不同方式来实现通信网络,例如,基于总线的网络,或者交换矩阵网络,以使同步延迟最小。
在一个实施例中,第一表182包含下列由处理器处理的多个流的信息:
-指向存储器10中数据应该被写或读的地址,
-指示可用于缓冲存储正在通信的处理器之间数据流的存储器内的存储器段的大小的值,
-指示可用于连接到与管理单元连接的处理器的处理器的那一段的该部分的大小的空间值,
-识别流和正在读或者写该流的处理器的全局标识gsid。
在一个实施例中,第二表183包含下列关于被执行的任务的信息:
-为所述任务处理的一个或者多个流的标识,
-每一任务可用的预算,
-指示该任务被允许或被禁止的任务允许标志,
-指示任务已经准备好还是未准备好运行的任务可运行标志。
优选地,表183为每一任务只包含为一个流的一个标识,例如该任务的第一流。优选地,该标识是对该流表的索引。这样,通过把所述索引和端口号码p相加,管理单元18就可以简单地计算其它流相应的id。端口号码可以作为由连接到管理单元的处理器给出的指令的参数传送。
图9表示在三种不同的情形下读取和管理超高速缓冲存储器中的数据的有效性。在该图中每一种情形都假定读请求发生在空的超高速缓冲存储器184中,导致超高速缓冲存储器失中。在该图的左半部分原理性表示处理器11的计算单元12和超高速缓冲存储器184,右半部分原理性表示当一个读请求R发生时超高速缓冲存储器184所涉及的部分。另外还示出供超高速缓冲存储器取数据的存储器10的部分。
图9a表示读请求R,它导致从超高速缓冲存储器184中取存储器传输单元MTU,亦即一个字,它整个被包含在授权的窗口W内。显然,这整个MTU字在存储器中是有效的,不需要特定的有效(或无效)测量。
在图9b中读请求R有一个结果,即一个MTU字从存储器10被取到超高速缓冲存储器184中,所取的字部分延伸到处理器获得的空间W之外,不过保留在在管理单元18中作为可用而被局部地管理的空间W2内。如果使用获取空间参量的话,则该字MTU将部分被宣布为无效,而一旦获取空间窗口W被扩展则它将需要被重新读。然而,如果可用空间W2的实际值被检查的话,则整个字可以标记为有效。
在图9c中读请求R具有这样的效果,使从存储器10中取到超高速缓冲存储器184中的MTU字部分延伸到不知道要被保存的、并且仍有可能被某些其它处理器写的空间S内。这时当字MTU被加载到超高速缓冲存储器184中时,必须把字MTU中的相应区域S’标记为无效。如果后来该字的这一部分S’被访问,则需要重新读字MTU。
此外,一个单一读请求(参见图9C中的R’)可以覆盖多于一个存储器字,这或者是因为它横跨两个连续字的边界。如果处理器12的读接口比存储器字宽的话,这也可以发生。图9A-C表示比请求的缓冲器空间W相对大的存储器字。在实际中,所请求的窗口W常常大很多,然而在极端的情况下,整个循环通信缓冲器也可以和单个的存储器字一样小。
在超高速缓冲存储器一致性控制中,在获取空间、读操作和有效(或无效)标记之间,以及在释放空间、写操作和“脏”标记和刷新之间有紧密的关系。在一个“Kahn”型应用中,端口具有专用的方向,或输入或输出。优选使用分开的读和写超高速缓冲存储器,这将简化一些实现问题。因为对于多个流,协处理器将线性地处理整个循环地址空间,读超高速缓冲存储器可选地支持预取,写超高速缓冲存储器可选地支持预刷新,在两次读访问内移动到下一字,前一字的超高速缓冲存储器位置可以为预期的未来使用变为可用的。读和写数据路径的分开实现也更容易支持来自协处理器的读和写请求,例如在流水线式的协处理器实现中并行发生的。
另外协处理器以字节粒度写数据,超高速缓冲存储器管理在该超高速缓冲存储器中的每字节的“脏”位。在释放空间请求时,超高速缓冲存储器刷新从超高速缓冲存储器到与由这一请求指示的地址范围量叠的共享存储器的这些字。所述“脏”位要用于总线写请求中的写屏蔽,以保证该存储器决不写在访问窗口之外的字节位置。

Claims (11)

1.数据处理系统,包括:
-存储器;
-连接到存储器的至少一个第一和一个第二处理器,两者都被安排来处理数据对象流,第一处理器被安排成通过在存储器中的逻辑上连续的位置存储数据对象而将来自该流的连续数据对象传送给第二处理器,其中,每一处理器包括一个管理单元和一个计算单元,
-第一处理器的管理单元,它维护规定了存储器中的一段的信息,该段是空闲的以存储由其它处理器读取的数据对象,
-第二处理器的管理单元,它维护规定了存储器中的一段的信息,该段中已由第一处理器为所述数据对象写入了完成的数据,
-处理器同步通道,每一个所述处理器被安排成通过该处理器同步通道给其它处理器以发信号的方式发送一个消息以更新在所述其它处理器的管理单元中的信息,并且每一处理器被安排成当它需要访问的位置处于由它的管理单元所规定的段之外时就挂起对数据对象流的处理。
2.根据权利要求1的数据处理系统,其特征在于,安排第一处理器发送一个消息,告知它使存储器中的适量的数据对象成为可用的,并安排第二处理器发送一个消息,告知它不再需要访问适量的数据对象。
3.根据权利要求1的数据处理系统,其特征在于,安排第一处理器发送一个消息,告知它需要适量的存储器以供写数据对象,安排第二处理器发送一个消息,告知它需要适量的数据对象。
4.根据权利要求2的数据处理系统,其特征在于,安排第一处理器的计算单元给它的功能单元发布一个命令,指示在它的段内是否有适量的存储器可用于写新数据对象,和安排第二处理器的计算单元给它的功能单元发布一个命令,指示在所述第二处理器的该段内是否有适量的数据对象可用。
5.根据权利要求1的数据处理系统,其中,所述第二处理器是一个多任务处理器,能够交织处理至少一个第一和一个第二任务,其中,所述至少第一和第二任务处理数据对象流。
6.根据权利要求1的数据处理系统,其中,第二处理器是用于执行一系列流处理任务的功能特定的专用协处理器。
7.根据权利要求1的数据处理系统,其中,安排这些处理器执行读和/或写操作以允许随机访问由其管理单元定义的所述存储器中的段内的位置。
8.根据权利要求5的数据处理系统,其中,
当第一任务的一组数据对象的处理被中断时,暂时禁止所述数据对象组的进一步处理,
其中,当所述第一任务的所述数据元素组的处理被中断时,执行第二任务的数据对象的处理。
9.根据权利要求8的数据处理系统,其中,在一个任务中断后,舍弃该组数据对象的部分处理的实际任务状态和阻止该组数据对象的一部分的确认操作。
10.根据权利要求9的数据处理系统,其中,在一个被中断的任务恢复后,处理器重新起动该组数据对象的处理,从而舍弃所述组的先前的处理。
11.根据权利要求1的数据处理系统,其中,在所述存储器中暂时存储中间数据。
CNB028249488A 2001-12-14 2002-12-05 数据处理系统 Expired - Fee Related CN1311348C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01204886 2001-12-14
EP01204886.4 2001-12-14

Publications (2)

Publication Number Publication Date
CN1605066A true CN1605066A (zh) 2005-04-06
CN1311348C CN1311348C (zh) 2007-04-18

Family

ID=8181433

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB028249488A Expired - Fee Related CN1311348C (zh) 2001-12-14 2002-12-05 数据处理系统

Country Status (8)

Country Link
US (1) US7356670B2 (zh)
EP (1) EP1459178B1 (zh)
JP (1) JP4322119B2 (zh)
CN (1) CN1311348C (zh)
AT (1) ATE388438T1 (zh)
AU (1) AU2002351136A1 (zh)
DE (1) DE60225473T2 (zh)
WO (1) WO2003052587A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101479704B (zh) * 2006-03-27 2013-09-04 相干逻辑公司 为多处理器系统设计程序
CN108241484A (zh) * 2016-12-26 2018-07-03 上海寒武纪信息科技有限公司 基于高带宽存储器的神经网络计算装置和方法

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60235888D1 (de) * 2002-09-12 2010-05-20 St Microelectronics Asia Pseudo- Zweidimensionaler Speicher mit wahlfreiem Zugriff
US20060050155A1 (en) * 2004-09-02 2006-03-09 Ing Stephen S Video camera sharing
US7484131B2 (en) * 2005-09-13 2009-01-27 International Business Machines Corporation System and method for recovering from a hang condition in a data processing system
US8130841B2 (en) * 2005-12-29 2012-03-06 Harris Corporation Method and apparatus for compression of a video signal
CN100395731C (zh) * 2006-02-23 2008-06-18 华为技术有限公司 处理器及其数据操作方法
JP2007241612A (ja) * 2006-03-08 2007-09-20 Matsushita Electric Ind Co Ltd マルチマスタシステム
JP4304676B2 (ja) * 2006-10-31 2009-07-29 日本電気株式会社 データ転送装置、データ転送方法、及びコンピュータ装置
EP1956484B1 (en) * 2007-02-07 2011-10-19 Robert Bosch Gmbh Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory
JP4903092B2 (ja) 2007-07-05 2012-03-21 株式会社リコー 画像処理装置、画像処理制御方法、及び画像処理制御プログラム
US20090125706A1 (en) * 2007-11-08 2009-05-14 Hoover Russell D Software Pipelining on a Network on Chip
US8261025B2 (en) 2007-11-12 2012-09-04 International Business Machines Corporation Software pipelining on a network on chip
US7873701B2 (en) * 2007-11-27 2011-01-18 International Business Machines Corporation Network on chip with partitions
US8423715B2 (en) 2008-05-01 2013-04-16 International Business Machines Corporation Memory management among levels of cache in a memory hierarchy
US8438578B2 (en) 2008-06-09 2013-05-07 International Business Machines Corporation Network on chip with an I/O accelerator
US8555292B2 (en) * 2008-06-27 2013-10-08 Microsoft Corporation Synchronizing communication over shared memory
US8019873B2 (en) * 2008-09-30 2011-09-13 Microsoft Corporation Mesh platform utility computing portal
KR101814221B1 (ko) * 2010-01-21 2018-01-02 스비랄 인크 스트림 기반 계산을 구현하기 위한 범용 다중 코어 시스템을 위한 방법 및 장치
WO2012051577A1 (en) 2010-10-15 2012-04-19 Coherent Logix, Incorporated Disabling communication in a multiprocessor system
US20150032922A1 (en) * 2012-02-28 2015-01-29 Nec Corporation Computer system, method of processing the same, and computer readble medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5113522A (en) * 1989-05-17 1992-05-12 International Business Machines Corporation Data processing system with system resource management for itself and for an associated alien processor
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5123094A (en) * 1990-01-26 1992-06-16 Apple Computer, Inc. Interprocessor communications includes second CPU designating memory locations assigned to first CPU and writing their addresses into registers
JP2992394B2 (ja) * 1992-01-21 1999-12-20 株式会社日立製作所 マルチプロセッサシステム
JP2642039B2 (ja) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション アレイ・プロセッサ
US5568614A (en) * 1994-07-29 1996-10-22 International Business Machines Corporation Data streaming between peer subsystems of a computer system
JPH08241186A (ja) * 1995-03-07 1996-09-17 Fujitsu Ltd バッファメモリ管理ユニット及びバッファメモリ管理方法
US5832262A (en) * 1995-09-14 1998-11-03 Lockheed Martin Corporation Realtime hardware scheduler utilizing processor message passing and queue management cells
DE69825710T2 (de) * 1997-11-28 2005-07-14 Matsushita Electric Industrial Co., Ltd., Kadoma Audio-Video Dekodierungssystem

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101479704B (zh) * 2006-03-27 2013-09-04 相干逻辑公司 为多处理器系统设计程序
CN103530187A (zh) * 2006-03-27 2014-01-22 相干逻辑公司 为多处理器系统设计程序
CN103530187B (zh) * 2006-03-27 2017-01-18 相干逻辑公司 为多处理器系统设计程序
CN108241484A (zh) * 2016-12-26 2018-07-03 上海寒武纪信息科技有限公司 基于高带宽存储器的神经网络计算装置和方法

Also Published As

Publication number Publication date
JP4322119B2 (ja) 2009-08-26
US7356670B2 (en) 2008-04-08
DE60225473T2 (de) 2009-03-26
AU2002351136A8 (en) 2003-06-30
JP2005513611A (ja) 2005-05-12
WO2003052587A3 (en) 2004-03-25
ATE388438T1 (de) 2008-03-15
WO2003052587A2 (en) 2003-06-26
AU2002351136A1 (en) 2003-06-30
DE60225473D1 (de) 2008-04-17
US20050183091A1 (en) 2005-08-18
CN1311348C (zh) 2007-04-18
EP1459178B1 (en) 2008-03-05
EP1459178A2 (en) 2004-09-22

Similar Documents

Publication Publication Date Title
CN1311348C (zh) 数据处理系统
CN1320458C (zh) 数据处理系统
US8373714B2 (en) Virtualization of graphics resources and thread blocking
CN100375067C (zh) 异构多核微处理器局部空间共享存储方法
CN113674133B (zh) Gpu集群共享显存系统、方法、装置及设备
CN1620649A (zh) 隐藏存储器刷新以及刷新隐藏存储器
US9063876B2 (en) System and method for simultaneously storing and read data from a memory system
CN1295609C (zh) 数据处理系统、通信装置和处理数据的方法
CN102870089A (zh) 将数据存储到虚拟高速存储系统中的系统和方法
JPH05128071A (ja) 多重プロセツサ・システムの性能の最適化装置及び方法
JP4753549B2 (ja) キャッシュメモリおよびシステム
US20100275208A1 (en) Reduction Of Memory Latencies Using Fine Grained Parallelism And Fifo Data Structures
KR20150104591A (ko) 공유 및 관리 메모리 통합 액세스
CN102129396B (zh) 一种实时快速的线程间数据交换方法
US20070168615A1 (en) Data processing system with cache optimised for processing dataflow applications
WO2001016760A1 (en) Switchable shared-memory cluster
CN1602469A (zh) 用在多处理器数据处理系统中的数据处理方法和相应的数据处理系统
Hall et al. Memory management in a PIM-based architecture
Ostheimer Parallel Functional Computation on STAR: DUST—
Uehara et al. A framework for customizing coherence protocols of distributed file caches in lucas file system
Al-Shaer Distributed Memory Management: Design Issues and Future Trends
JPH10247182A (ja) マルチプロセッサシステム

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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

Free format text: FORMER OWNER: KONINKLIJKE PHILIPS ELECTRONICS N.V.

Effective date: 20070914

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

Effective date of registration: 20070914

Address after: Holland Ian Deho Finn

Patentee after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Patentee before: Koninklijke Philips Electronics N.V.

ASS Succession or assignment of patent right

Owner name: TRIDENT MICROSYSTEMS (FAR EAST)CO., LTD.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20100819

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: EINDHOVEN, NETHERLANDS TO: CAYMAN ISLANDS, GRAND CAYMAN ISLAND

TR01 Transfer of patent right

Effective date of registration: 20100819

Address after: Grand Cayman, Cayman Islands

Patentee after: Trident Microsystems (Far East) Ltd.

Address before: Holland Ian Deho Finn

Patentee before: Koninkl Philips Electronics NV

ASS Succession or assignment of patent right

Owner name: ENTROPY COMMUNICATION CO., LTD.

Free format text: FORMER OWNER: TRIDENT MICROSYSTEMS (FAR EAST) LTD.

Effective date: 20130218

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

Effective date of registration: 20130218

Address after: American California

Patentee after: Entropic Communications, Inc.

Address before: Grand Cayman, Cayman Islands

Patentee before: Trident Microsystems (Far East) Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070418

Termination date: 20171205

CF01 Termination of patent right due to non-payment of annual fee