CN1659508A - 空间块协处理器通信 - Google Patents

空间块协处理器通信 Download PDF

Info

Publication number
CN1659508A
CN1659508A CN03813109.9A CN03813109A CN1659508A CN 1659508 A CN1659508 A CN 1659508A CN 03813109 A CN03813109 A CN 03813109A CN 1659508 A CN1659508 A CN 1659508A
Authority
CN
China
Prior art keywords
fifo storer
counter
counting
data
controller
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
CN03813109.9A
Other languages
English (en)
Other versions
CN100437466C (zh
Inventor
J·胡格布鲁格
P·斯特拉维斯
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.)
Koninklijke Philips NV
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 CN1659508A publication Critical patent/CN1659508A/zh
Application granted granted Critical
Publication of CN100437466C publication Critical patent/CN100437466C/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
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/10Indexing scheme relating to groups G06F5/10 - G06F5/14
    • G06F2205/106Details of pointers, i.e. structure of the address generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2205/00Indexing scheme relating to group G06F5/00; Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F2205/12Indexing scheme relating to groups G06F5/12 - G06F5/14
    • G06F2205/123Contention resolution, i.e. resolving conflicts between simultaneous read and write operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)
  • Testing Of Coins (AREA)
  • Executing Machine-Instructions (AREA)
  • Communication Control (AREA)
  • Bus Control (AREA)

Abstract

本发明基于为FIFO的输入或输出端口保持两个计数器的思想。提供了一种用于从协处理器将数据单元写入到FIFO存储器中的设备。所述设备被嵌入在包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中。所述设备包括用于计数在所述FIFO存储器中可用的空位的第一计数器,和用于计数被写入到所述FIFO存储器中的数据单元的数量的第二计数器。所述设备还包括一个控制装置,用于对所述第一计数器进行所述FIFO存储器中可用的空位的检验,并且用于对所述第二计数器进行是否预定数量N个数据单元已经被写入到所述FIFO存储器的检验。在一个数据单元已经被写入到所述FIFO存储器中之后,所述控制装置递减所述第一计数器的计数并且递增所述第二计数器的计数。最后,所述设备包括一个用于输出数据单元到所述FIFO存储器的输出装置。当所述第二计数器的计数已经达到所述预定数量N时,所述控制装置发布第一消息并且发布对在所述FIFO存储器中可用的空位的第一个呼叫到所述控制器。所述输出装置转发所述第一消息和/或所述第一个呼叫到所述控制器。

Description

空间块协处理器通信
本发明涉及一种用于从协处理器写入数据单元到FIFO的设备和方法,一种用于从FIFO存储器读取数据单元到协处理器中以及多重处理计算机系统的设备和方法。
像高清晰度电视(HDTV)、广播卫星服务、电视会议、交互式存储媒体等等的新的应用和服务,在视频域以及音频域中需要大量的数据处理。因此,在那些应用中被涉及的数据率使得计算十分消耗时间。
当应付在信号处理中的计算需求时,设计者通常采用两种结构方法,即专用和可编程的方法。专用结构旨在充分利用算法的计算特点。专用结构的VLSI实现按照范围、功率和性能被最佳化。专用结构的优点是它们提供了一种好性能,然而它们对于进一步扩展一种算法集合缺乏灵活性。另一方面,因为仅仅通过应用必要的软件修改,算法能够被进一步扩展,所以所述可编程的方法能够满足对更大的灵活性的需要。由于多个应用可以在硬件上运行这样一个事实,因此,每个应用硬件的成本被降低。可编程结构的缺点是,该结构以及应用模块必须更快,因为算法的计算性质未被充分利用。这个问题可以通过实现多重处理策略被解决。因此,提供一种具有足够的并行性的应用模块以便充分利用多处理器结构的计算资源是必需的。为信号处理应用提供并行性的一个这样的应用模型是康氏(Kahn)处理网络模型。所述应用在多处理器结构中一被执行,就能够显著提高处理速度。
一个典型的康氏处理网络包括多个处理网络、进程和FIFO存储器(先入先出)。在这样一个处理网络中,通过一个处理器或一个协处理器,一个进程被实现,并且一个FIFO代表一个通信信道,即所述处理器通过FIFO缓冲器彼此通信。所述FIFO具有单独的阅读器和单独的记录器。一个进程通常定义所述应用的功能性。它通过输入和输出端口和它的环境交互作用。一个进程可以处于三种状态之一,即运行、阻塞或准备状态。例如,如果一个进程设法从一个空FIFO读出或者设法写到一个满FIFO中,则所述进程将被阻塞。
在康氏处理网络中,所述进程以流水线方式彼此通信,即,在所述流水线中最慢的进程定义它的吞吐量。如果所述计算在进程中完全平衡,则它将减少在所述应用模块内的有效的并行性。
通常,进程通过FIFO彼此通信。现在,当这些进程像软件进程一样被实现时,一种FIFO的实现包括一个用于存储数据的缓冲器、一个读出指针、一个写入指针以及用于在所述缓冲器中同步数据和空位的空位和数据信号量。因此,写入到FIFO中首先通过在所述FIFO中等待自由空位,即空间而被实现。当在所述FIFO中有一个可用空位时,数据被输入到FIFO中并且写入指针被递增。最后,显示有效数据已经被增加到FIFO中。从FIFO读出与写入对称,即,空位和数据以及记录器和阅读器指针的角色已经改变。
在一个多重处理环境中,像总线等等的可用的通信资源通常有冲突。通信费用随着在所述结构中处理器数量的增加而增加。因此,按照减少的通信最佳化应用模型会带来改进的速度。通过仔细地选择权标结构并且控制在通信信道上被传送的权标数量,减少的通信是能实现的。
因此,本发明的一个目的是改进在多重处理环境中协处理器和控制器之间的通信。
通过一种根据权利要求1用于从协处理器写数据单元到FIFO存储器中的设备、一种根据权利要求7用于从协处理器写数据单元到FIFO存储器中的方法、一种根据权利要求12用于从FIFO存储器读出数据单元到协处理器中的设备、一种根据权利要求18用于从FIFO存储器读出数据单元到协处理器中的方法、以及一种根据权利要求23的多重处理计算机系统,所述目的被达到。
本发明基于一种思想,即,保持两个计数器用于FIFO的输入或输出端口。
根据本发明,提供了一种用于从协处理器写数据单元到FIFO存储器中的设备。所述设备被嵌入在一个包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中。所述设备包括一个用于计数在所述FIFO存储器中的可用空位的第一计数器,以及一个用于计数被写入到所述FIFO存储器中的数据单元数量的第二计数器。所述设备还包括一个控制装置,用于对所述第一计数器进行所述FIFO存储器中可用的空位的检验,并且用于对所述第二计数器进行是否预定数量的N个数据单元已经被写入到所述FIFO存储器的检验。在一个数据单元已经被写入到所述FIFO存储器之后,所述控制装置递减所述第一计数器的计数并且递增所述第二计数器的计数。最后,所述设备包括一个用于输出数据单元到所述FIFO存储器的输出装置。当所述第二计数器的计数已经达到所述预定的数量N时,所述控制装置发布第一消息,并且发布对于在所述FIFO存储器中可用空位的第一个呼叫到所述控制器。所述输出装置转发所述第一消息和/或所述第一个呼叫到所述控制器。
根据本发明的写入设备的优点是,通过使用所述第一和第二计数器用于写入数据到所述FIFO存储器中,当写入到所述FIFO时,对于一个执行写入操作的协处理器,不必请求控制器两个信号量操作(P和V操作),从而,减少在协处理器和控制器之间的通信业务量。
根据本发明的一个实施方案,所述第一消息指示足够的数据单元已经被写入到所述FIFO存储器中。因为所述消息只在N个数据单元已经被写入到所述FIFO中之后被传送,所以,有利地,在协处理器和控制器之间的通信业务量被进一步减少,。
根据本发明的另一个实施方案,当数据单元被输出到所述FIFO存储器时,所述控制装置递增一个写入指针。
仍根据本发明的另一个实施方案,所述控制装置在所述写入指针被递增之后执行绕回测试。
根据本发明的一个实施方案,所述控制装置在发布所述第一消息之后重置所述第二计数器,即,所述计数器在它的计数已经达到N并且所述消息已经被发布之后被重置,以便计数能够再次开始。
根据本发明的另一个实施方案,在所述第一计数器的所述计数变成零之前,所述控制装置发布对于在所述FIFO存储器中可用空位的所述第一个呼叫到所述控制器。因为这样一个呼叫的等待时间被隐藏,所以这是有利的。
本发明还涉及一种用于从协处理器写数据单元到FIFO的方法。所述方法对应于上述用于写数据单元的设备。
此外,本发明还提供了一种用于从FIFO读出数据单元到协处理器中的设备和方法。所述设备和方法与写入设备和写入方法是互补的。这里,数据被从FIFO传送到协处理器。代替所述第一消息和第一个呼叫,发布指示足够的数据单元已经被从所述FIFO读出,即,该空位是可用的第二消息,以及在所述FIFO中请求可用的数据单元的第二个呼叫。
根据本发明,根据权利要求23的一种的多重处理计算机系统也被提供。而且,根据权利要求24,本发明还提供了一种计算机程序用于实现所述方法。
现在,将参考附图更详细地解释本发明,其中:
图1表示根据本发明的一个实施方案的一个多重处理计算机系统的框图,
图2表示一个与图1中的协处理器有关的写入设备的框图,以及
图3表示一个与图1中的协处理器有关的读出设备的框图。
图1表示根据本发明的一个实施方案的一个多重处理计算机系统的框图。所述计算机系统包括优选地以FIFO存储器形式的存储体1、三个CPU3、三个协处理器2、一个控制器4以及一个像总线的,用于把所述FIFO存储器与CPU3、协处理器2和控制器4连接起来的互连。优选地,所述控制器4实现为按照协处理器2的请求来执行信号量操作的可编程的处理器,并且通过专用环状网优选地与协处理器2通信。一部分进程在软件中被实现并且在可编程的处理器,即,CPU3上运行,然而,另一部分进程在专用硬件中被实现并且在协处理器2上运行。存储器1在处理器3和协处理器2之间被共享并且通常是一个随机存储器。
关于所谓的CAKE结构的细节,请参考2001年四月,哥本哈根,CODES 2001会刊中第92-97页,贝森特(Basant)等人撰写的“Exploring Design Space of Parallel Realizations:MPEG-2Decoder Case Study(探究并行实现的设计空间:MPEG-2解码器实例研究)”。
图2显示一个与图1中的协处理器2有关的写入设备的框图。所述写入设备包括第一计数器10和第二计数器20、控制装置30和输出装置40,其中所述控制装置30分别被连接到所述第一和第二计数器10、20以及所述输出装置40。所述控制装置30具有一个端子31,协处理器2能够被连接到该端子31。所述输出装置40具有一个可连接到所述FIFO1的第一端子41和可连接到控制器4的第二端子42,其中所述连接通过专用环状网被优选地实现。
所述第一计数器10被用于计数在所述FIFO 1中可用的空位,即,所述第一计数器10的计数是可用的空位(room_available)。它包括在所述FIFO 1中自由空间的数量,在对于自由空间或空位的呼叫需要被发布之前,数据能够被写入到其中。所述第二计数器20被用于计数在所述FIFO 1中可用的数据,即,所述第二计数器20的计数是被制造的数据(data_produced)。它包括已经被写入到FIFO1中,但是还没有被报告给控制器4的数据的数量。
首先,控制装置30检验第一计数器10,即,可用空位计数器10的计数。如果第一计数器10的计数是零,则控制装置30发布第一个呼叫C1,即,获得空位(get_room)呼叫到控制器4以便在FIFO1中请求空位。如果控制器4返回一个当前在FIFO中没有可用的空位的消息,则控制装置30重复发布获得空位呼叫,直到控制器4返回在FIFO1中有可用的空位。当在所述FIFO中有可用的空间时,输出装置40输出数据到FIFO1,该数据被存储在那里。下一步,控制装置30递增一个写入指针并且执行指针绕回测试。
通过把写入/读出指针与缓冲器结束地址比较,所述绕回测试被执行,并且如果它们彼此相等,则所述写入/读出指针被调整到缓冲器开始地址。优选地,缓冲器开始以及缓冲器结束地址被存储在所述协处理器中。
此后,控制装置30递减第一计数器10,即,可用空位计数器的计数,并且递增第二计数器20,即,被制造的数据(data_produced)计数器的计数。控制装置30确定第二计数器20的计数是否已经达到预定的数量N,指示N个数据单元已经被写入到FIFO中,并且因此可用来被从所述FIFO1读出。第二计数器20的计数一达到预定的数量N,控制装置30就发布第一消息M1,即放置数据(put_data),到控制器4。可替代地,所述放置数据消息可以具有一个指示多少数据已经被制造的变元。
图3显示一个与图1中的协处理器2有关的读出设备的框图。所述读出设备包括第三计数器50和第四计数器60,控制装置70和输入装置80,其中所述控制装置70分别被连接到所述第三和第四计数器50、60以及所述输入装置80。所述控制装置70具有一个端子71,协处理器2可以被连接到该端子71。所述输入装置80具有一个可连接到所述FIFO1的第一端子81和可连接到控制器4的第二端子82,其中所述连接通过专用环状网被优选地实现。
所述第三计数器50被用于计数在所述FIFO 1中可用的数据,即,所述第一计数器10的计数是可用的数据(data_available)。它包括在所述FIFO 1中自由数据单元的数量,在对于数据的呼叫需要被发布之前,它可以被读出。所述第四计数器60被用于计数在所述FIFO 1中可用的自由空间或空位,即,所述第二计数器20的计数是被制造的空位(room_produced)。它包括已经被从FIFO缓冲器1读出,但是还没有被报告给控制器4的数据的数量。
首先,控制装置70检验第三计数器50,即,可用数据计数器的计数。如果第三计数器50的计数是零,则控制装置70发布第二个呼叫C2,即,获得数据呼叫到控制器4以便在FIFO 1中请求数据。如果控制器4返回一个当前在FIFO 1中没有可用的数据的消息,则控制装置70重复发布获得数据呼叫,直到控制器4返回一个在FIFO1中有可用的数据。当在所述FIFO 1中有可用的数据时,输入装置80从FIFO 1输入或者读出数据。下一步,控制装置70递增一个读出指针并且执行指针绕回测试。
此后,控制装置70递减第三计数器50,即,可用数据计数器的计数,并且递增第四计数器60,即,被制造的空位计数器的计数。控制装置70确定第四计数器60的计数是否已经达到预定的数量N,指示N个数据单元已经被从FIFO 1读出,并且因此有数据可以被写入到其中的可用的空间。第四计数器60的计数一达到预定的数量N,控制装置70就发布第二消息M2,即放置空位(put_room),到控制器4。可替代地,所述放置空位消息可具有一个指示多少数据已经被制造的变元。
因此,作为一个可编程处理器而被实现的控制器4必须能够从写入设备的控制装置30接受一个获得空位呼叫和一个放置数据消息,以及从读出设备的控制装置70接受获得数据呼叫和放置空位消息。当控制器4接收一个获得空位呼叫时,它把相应的空位信号量的值重置到零并且返回以前的空位信号量值。这个值随后被返回到协处理器2或者它的相关的发布获得空位呼叫的写入设备。当控制器4从与协处理器2有关的写入设备接收放置数据消息时,它增加数据信号量一个特定的值。这个值可以是预定的值N或者可替代地是放置数据消息的变元。
控制器4对获得数据呼叫和放置空位消息的反应的实现类似于获得空位呼叫和放置数据消息的实现。当控制器4接收一个获得数据呼叫时,它把相应的数据信号量的值重置到零并且返回以前的数据信号量值。这个值随后被返回到协处理器2或者它的相关的发布获得数据呼叫的读出设备。当控制器4从与协处理器2有关的读出设备接收放置空位消息时,它增加空位信号量一个特定的值。这个值可以是预定的值N或者可替代地是放置空位消息的变元。
通过在第一计数器10,即可用数据计数器或者第三计数器50,即可用空位计数器变成零之前发布在FIFO 1中请求数据或空位的获得数据或获得空位呼叫,上面被描述的通信方案可以被改进。这种改进将隐藏获得数据/获得空位呼叫的等待时间。
一种低端MIPS PR 1910处理器可以被用作控制器4。
如上所述,进程可以在一个可编程的处理器上或者在一个专用协处理器上被实现。在两者之间的选择是经典的硬件/软件共同设计问题。优选地,在FIFO通信协议缓冲接入中,指针递增和指针绕回测试在硬件,即专用协处理器中被实现,然而,信号量操作在软件中被实现。因为,例如叫醒睡眠进程这样的进程的复杂性,所以希望在软件中执行信号量操作,即所述进程在可编程的处理器上被执行。

Claims (24)

1.在一个包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中,用于将数据单元从协处理器写入到FIFO存储器中的设备,所述设备包括:
用于计数在所述FIFO存储器中可用的空位的第一计数器;
用于计数被写入到所述FIFO存储器中的数据单元数量的第二计数器;
控制装置,用于对所述第一计数器进行所述FIFO存储器中的可用空位的检验、用于对所述第二计数器进行是否预定数量N个数据单元已经被写入到所述FIFO存储器的检验、用于在一个数据单元已经被写入到所述FIFO存储器之后,递减所述第一计数器的计数并且用于递增所述第二计数器的计数;以及
用于输出数据单元到所述FIFO存储器的输出装置;
其中所述控制装置被用于在所述第二计数器的计数已经达到所述预定数量N时发布第一消息;
其中所述控制装置被用于发布对所述FIFO存储器中可用空位的第一个呼叫到所述控制器;并且
其中所述输出装置被用于转发所述第一消息和/或所述第一个呼叫到所述控制器。
2.根据权利要求1中所述的设备,其中,所述第一消息指示足够的数据单元已经被写入到所述FIFO存储器中。
3.根据权利要求2中所述的设备,其中,所述控制装置还被用于当数据单元被输出到所述FIFO存储器时,递增一个写入指针。
4.根据权利要求3中所述的设备,其中,所述控制装置还被用于在所述写入指针被递增之后执行一个绕回测试。
5.根据权利要求2中所述的设备,其中所述控制装置被用于在发布所述第一消息之后重置所述第二计数器。
6.根据权利要求1或2中所述的设备,其中,所述控制装置被用于在所述第一计数器的所述计数变成零之前,发布对所述FIFO存储器中可用空位的所述第一个呼叫到所述控制器。
7.在一个包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中,用于将数据单元从协处理器写入到FIFO存储器中的方法,所述方法包括步骤:
检验第一计数器,指示在所述FIFO存储器中可用的空位,以便确定在所述FIFO存储器中是否有空位可用;
发布对所述FIFO存储器中可用空位的第一个呼叫到所述控制器,直到在所述FIFO存储器中有空位;
输出数据单元到所述FIFO存储器;
在一个数据单元已经被写入到所述FIFO存储器之后,递减所述第一计数器的计数;
在一个数据单元已经被写入到所述FIFO存储器之后,递增一个用于计数被写入到所述FIFO存储器中的数据单元数量的第二计数器;
检验所述第二计数器以便确定是否预定数量N个数据单元已经被写入到所述FIFO存储器;以及
当所述第二计数器的计数已经达到所述预定数量N时,发布足够的数据单元已经被写入到所述FIFO存储器中的第一消息。
8.根据权利要求7中所述的方法,还包括步骤:当数据单元已经被写入到所述FIFO存储器时,递增一个写入指针。
9.根据权利要求8中所述的方法,还包括步骤:在所述写入指针被递增之后,执行一个绕回测试。
10.根据权利要求7中所述的方法,还包括步骤:在发布所述第一消息之后,重置所述第二计数器。
11.根据权利要求7中所述的方法,还包括步骤:在所述第一计数器的计数变成零之前,发布对所述FIFO存储器中可用空位的所述第一个呼叫到所述控制器。
12.在一个包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中,用于从FIFO存储器读出数据单元到协处理器中的设备,所述设备包括:
用于计数在所述FIFO存储器中可用的数据单元的第三计数器;
用于计数被从所述FIFO存储器读出的数据单元数量的第四计数器;
控制装置,用于对所述第三计数器进行所述FIFO存储器中可用的数据单元的检验、用于检验所述第四计数器以便确定是否预定数量N个数据单元已经被从所述FIFO存储器读出、用于在一个数据单元已经被从所述FIFO存储器读出之后,递减所述第三计数器的计数并且用于递增所述第四计数器的计数;以及
用于从所述FIFO存储器输入数据单元的输入装置;
其中所述控制装置被用于在所述第四计数器的计数已经达到所述预定数量N时发布第二消息;
其中所述控制装置被用于发布对所述FIFO存储器中可用的数据单元的第二个呼叫到所述控制器;并且
其中所述输出装置被用于转发所述第二消息和/或所述第二个呼叫到所述控制器。
13.根据权利要求12中所述的设备,其中,所述第二消息指示足够的数据单元已经从所述FIFO存储器读出。
14根据权利要求13中所述的设备,其中,当数据单元被从所述FIFO存储器输入时,所述控制装置还被用于递增一个读出指针。
15.根据权利要求14中所述的设备,其中,所述控制装置还被用于在所述读出指针被递增之后执行一个绕回测试。
16.根据权利要求13中所述的设备,其中所述控制装置被用于在发布所述第二消息之后重置所述第四计数器。
17.根据权利要求13中所述的设备,其中,所述控制装置被用于在所述第三计数器的所述计数变成零之前,发布对所述FIFO存储器中可用的数据单元的所述第二个呼叫到所述控制器。
18.在一个包括至少一个协处理器、一个FIFO存储器和一个控制器的多重处理环境中,用于从FIFO存储器读出数据单元到协处理器中的方法,所述方法包括步骤:
检验第三计数器,指示在所述FIFO存储器中可用的数据单元,以便确定在所述FIFO存储器中是否有数据单元可用;
发布对所述FIFO存储器中可用数据单元的第二个呼叫到所述控制器,直到在所述FIFO存储器中有数据单元;
从所述FIFO存储器输入数据单元;
在一个数据单元已经被从所述FIFO存储器读出之后,递减所述第三计数器的计数;
在一个数据单元已经被从所述FIFO存储器读出之后,递增一个用于计数被从所述FIFO存储器读出的数据单元数量的第四计数器;
检验所述第四计数器以便确定是否预定数量N个数据单元已经被从所述FIFO存储器读出;以及
当所述第四计数器的计数已经达到所述预定数量N时,发布足够的数据单元已经被从所述FIFO存储器读出的第二消息。
19.根据权利要求18中所述的方法,还包括步骤:当数据单元被从所述FIFO存储器读出时,递增一个读出指针。
20.根据权利要求19中所述的方法,还包括步骤:在所述读出指针被递增之后,执行绕回测试。
21.根据权利要求18中所述的方法,还包括步骤:在发布所述第二消息之后,重置所述第四计数器。
22.根据权利要求18中所述的方法,还包括步骤:在所述第三计数器的计数变成零之前,发布对在所述FIFO存储器中可用数据单元的所述第二呼叫到所述控制器。
23.多重处理计算机系统,包括:
一个FIFO存储器;
至少一个协处理器;
一个控制器,
一个根据权利要求1到6用于写入的设备和/或一个根据权利要求12到17用于读出的设备。
24.一种计算机程序,包括计算机程序代码装置,用于当所述计算机程序在一台计算机上被运行时,导致计算机执行如权利要求7到11中所述的方法以及如权利要求18到22中所述的方法的步骤。
CNB038131099A 2002-06-07 2003-05-21 向/从fifo存储器读取/写入数据单元的设备和方法 Expired - Fee Related CN100437466C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP02077223.2 2002-06-07
EP02077223 2002-06-07

Publications (2)

Publication Number Publication Date
CN1659508A true CN1659508A (zh) 2005-08-24
CN100437466C CN100437466C (zh) 2008-11-26

Family

ID=29724463

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB038131099A Expired - Fee Related CN100437466C (zh) 2002-06-07 2003-05-21 向/从fifo存储器读取/写入数据单元的设备和方法

Country Status (8)

Country Link
US (1) US20050177659A1 (zh)
EP (1) EP1514172B1 (zh)
JP (1) JP2005529397A (zh)
CN (1) CN100437466C (zh)
AT (1) ATE322713T1 (zh)
AU (1) AU2003233024A1 (zh)
DE (1) DE60304468T2 (zh)
WO (1) WO2003104968A2 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107135200A (zh) * 2017-03-29 2017-09-05 中国航空无线电电子研究所 基于fpga的高速串行总线数据发送方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4486854A (en) * 1981-10-15 1984-12-04 Codex Corporation First-in, first-out memory system
DE3689151D1 (de) * 1986-12-30 1993-11-11 Ibm Nicht-sperrender Warteschlangenmechanismus.
CA1286421C (en) * 1987-10-14 1991-07-16 Martin Claude Lefebvre Message fifo buffer controller
US5450546A (en) * 1992-01-31 1995-09-12 Adaptec, Inc. Intelligent hardware for automatically controlling buffer memory storage space in a disk drive
US5313638A (en) * 1992-03-24 1994-05-17 International Business Machines Corp. Method using semaphores for synchronizing communication between programs or processes resident in a computer system
US5434975A (en) * 1992-09-24 1995-07-18 At&T Corp. System for interconnecting a synchronous path having semaphores and an asynchronous path having message queuing for interprocess communications
GB2291230B (en) * 1992-10-15 1996-10-16 Fujitsu Ltd Fifo memory devices
US5544327A (en) * 1994-03-01 1996-08-06 International Business Machines Corporation Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied
US5664223A (en) * 1994-04-05 1997-09-02 International Business Machines Corporation System for independently transferring data using two independently controlled DMA engines coupled between a FIFO buffer and two separate buses respectively
US5717954A (en) * 1995-10-13 1998-02-10 Compaq Computer Corporation Locked exchange FIFO
US6192427B1 (en) * 1997-05-02 2001-02-20 Texas Instruments Incorporated Input/output buffer managed by sorted breakpoint hardware/software
US6188699B1 (en) * 1997-12-11 2001-02-13 Pmc-Sierra Ltd. Multi-channel encoder/decoder
US6122713A (en) * 1998-06-01 2000-09-19 National Instruments Corporation Dual port shared memory system including semaphores for high priority and low priority requestors
US6279062B1 (en) * 1998-12-28 2001-08-21 Compaq Computer Corp. System for reducing data transmission between coprocessors in a video compression/decompression environment by determining logical data elements of non-zero value and retrieving subset of the logical data elements
US6401149B1 (en) * 1999-05-05 2002-06-04 Qlogic Corporation Methods for context switching within a disk controller
US20010004747A1 (en) * 1999-12-16 2001-06-21 International Business Machines Corporation Method and system for operating a computer system
EP1182543B1 (en) * 2000-08-17 2005-08-24 Texas Instruments Incorporated Maintaining remote queue using two counters in transfer controller with hub and ports
US20020146023A1 (en) * 2001-01-09 2002-10-10 Regan Myers Transport stream multiplexer utilizing smart FIFO-meters
US6877049B1 (en) * 2002-05-30 2005-04-05 Finisar Corporation Integrated FIFO memory management control system using a credit value

Also Published As

Publication number Publication date
WO2003104968A2 (en) 2003-12-18
ATE322713T1 (de) 2006-04-15
WO2003104968A3 (en) 2004-12-29
DE60304468T2 (de) 2007-03-15
EP1514172B1 (en) 2006-04-05
DE60304468D1 (de) 2006-05-18
EP1514172A2 (en) 2005-03-16
US20050177659A1 (en) 2005-08-11
AU2003233024A1 (en) 2003-12-22
CN100437466C (zh) 2008-11-26
JP2005529397A (ja) 2005-09-29

Similar Documents

Publication Publication Date Title
US20010003193A1 (en) Informatiion streaming in a multi-process system using shared memory
US7490185B2 (en) Data processing system, access control method, and access control device
US20020135589A1 (en) Unit and method for memory address translation and image processing apparatus comprising such a unit
SK31194A3 (en) Multi-media signal processor computer system
US20100095307A1 (en) Self-synchronizing hardware/software interface for multimedia soc design
US20050091465A1 (en) FIFO memory with single port memory modules for allowing simultaneous read and write operations
CN1598876A (zh) 输出多位元影像数据的控制装置、系统与方法
CN112948293A (zh) 一种多用户接口的ddr仲裁器及ddr控制器芯片
CN114399035A (zh) 搬运数据的方法、直接存储器访问装置以及计算机系统
CA2130064C (en) Method and apparatus for transferring data between a host processor and a subsystem processor in a data processing system
CN1804822A (zh) 多中断的缓存装置和方法
US6374244B1 (en) Data transfer device
CN103765888A (zh) 分析辅助编码
KR20070082835A (ko) 직접 메모리 액세스 제어장치 및 방법
CN100437466C (zh) 向/从fifo存储器读取/写入数据单元的设备和方法
US5343557A (en) Workstation controller with full screen write mode and partial screen write mode
US6832310B1 (en) Manipulating work queue elements via a hardware adapter and software driver
CN112631658B (zh) 指令发送方法、芯片和电子设备
WO2021223639A1 (zh) 数据处理装置以及相关产品
CN1269045C (zh) 一种实现多个数据队列处理时动态分配存储器的方法
CN112380154A (zh) 数据传输方法和数据传输装置
CN102984599B (zh) 基于RapidIO协议网络的视频采集传输装置及方法
US6549211B1 (en) System and method for increasing the efficiency and reliability of the storage of sequential data
EP1290635A1 (en) Data-processing arrangement for processing different types of data
JPH02171846A (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
ASS Succession or assignment of patent right

Owner name: NXP CO., LTD.

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

Effective date: 20071109

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

Effective date of registration: 20071109

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklijke Philips Electronics N.V.

C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081126

Termination date: 20120521