CN100533370C - 多处理器系统及运行多处理器系统的方法 - Google Patents

多处理器系统及运行多处理器系统的方法 Download PDF

Info

Publication number
CN100533370C
CN100533370C CNB028130588A CN02813058A CN100533370C CN 100533370 C CN100533370 C CN 100533370C CN B028130588 A CNB028130588 A CN B028130588A CN 02813058 A CN02813058 A CN 02813058A CN 100533370 C CN100533370 C CN 100533370C
Authority
CN
China
Prior art keywords
processor
application specific
counter
another
synchronous
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.)
Expired - Fee Related
Application number
CNB028130588A
Other languages
English (en)
Other versions
CN1522402A (zh
Inventor
I·C·康
O·P·冈瓦尔
A·K·纽夫兰德
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 CN1522402A publication Critical patent/CN1522402A/zh
Application granted granted Critical
Publication of CN100533370C publication Critical patent/CN100533370C/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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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/102Avoiding metastability, i.e. preventing hazards, e.g. by using Gray code counters

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Hardware Redundancy (AREA)
  • Computer And Data Communications (AREA)
  • Advance Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)

Abstract

本发明的一个目的是提供一种能够相对容易调试的多处理器系统和一种运行这种利于调试的多处理器系统的方法。根据本发明的多处理器系统至少包括一个专用处理器(1.6)和另外一个处理器(1.3),以及由所述处理器共享的存储器(1.5),共享存储器(1.5)和所述处理器(1.6,1.3)连接到一个互连网络(1.7)。所述处理器安排用于通过根据同步协议经缓冲区(2.1)相互传递数据。专用处理器(1.3)包括管理与同步协议有关的信息的装置,其中至少部分该信息的副本保存在共享存储器(2.1)中。

Description

多处理器系统及运行多处理器系统的方法
技术领域
本发明涉及一种多处理器系统。
本发明还涉及一种运行多处理器系统的方法。
背景技术
对于很多基于MPEG-x、DVB、DAB和UMTS等标准的产品,信号处理功能决定了性能要求。这要求要有效地实施这些产品的信号处理部分。但是,因为标准的发展和市场要求的改变,实施方案需要有灵活性以及可伸缩性。因为处理数据流,所以建立宏流水线是为这些应用建模的正常方式;在该建立过程中,功能(任务)是阶段,在阶段之间有缓冲区,形成了流水线。因为所有的阶段能够并行运行,所以这是一种使用任务级并行操作(TLP)的方式。
多处理器系统包括多个处理器,非常适合实现这种宏流水线。多处理器系统可以包括几种处理器,例如RISC处理器或VLIW处理器等可编程处理器,或专用硬件。一个处理器可以执行一个特定任务,或以分时方式执行一个以上的任务。随着信号处理功能及它们在多处理器系统中实现的复杂性变得越来越复杂,测试和调试这种系统也逐渐变得更加困难。
发明内容
本发明的一个目的是提供一种能够相对容易调试的多处理器系统和一种运行这种利于调试的多处理器系统的方法。
权利要求1中请求保护一种按照这个目的、根据本发明的多处理器。权利要求8中要求保护一种按照这个目的、根据本发明的方法。
在多处理器系统上实现的宏流水线中,必须在处理器之间交换数据,例如通过缓冲区在处理器之间交换数据。同步协议对于流水线中第一处理器的数据产生与第一处理器之后的第二处理器的数据消费的同步是必需的。这种同步协议使用同步信息,例如一对信号量(semaphore)。例如,第一信号量表示可用于第一处理器写入新数据的缓冲单元数,第二信号量表示可用于第二处理器进行读取的缓冲单元数。
在包含一个专用处理器的实施方案中,优选将管理信息存储在其最重要的地方。例如,当专用处理器安排用于将数据写入缓冲区时,第一信号量对于该处理器(如专用寄存器的形式)应该是可快速访问的。但是当需要调试该系统或必须测试该系统时,如查找流水线中的瓶颈,很难跟踪这个分散的信息。因此根据本发明,在共享存储器中保存至少部分该管理信息的副本。以这种方式,因为较为相关的信息是以集簇方式可用的,所以大大简化了对系统运行的分析。而且因为该信息保存在存储器中,可以可由软件调试器访问。
请注意,US 6,173,307 B1公开了一种包含由多个生产者和多个消费者共享的循环队列的多处理器系统。可以许可任一个生产者或消费者在不干扰队列正确性的情况下,在任意时间抡先占用任一个生产者或消费者。
还请注意,US 4,916,658描述了一种包括一个动态控制的缓冲区的仪器。缓冲区适合存储包括几个存储位置的数据字,其中还包括提供指明下一个要存储到其中的存储位置的第一指示器和指明下一个要从其中获取存储位置的第二指示器的电路,以及提供可用于存储的位置数和可用于获取位置数的电路。
在多处理器系统中,由于任务数可以大于处理器数,所以处理器可以执行一个以上的任务。而且可以重新动态配置多处理器系统,例如为了适合于更改由系统处理的数据流的位速率(bitrate)。在这种情况下,一种如权利要求2中请求保护的根据本发明的多处理器系统的实施方案是有利的。当重新动态配置系统时,因为两个格式都已经同时存在,所以可以更为平稳的完成将特定任务的通信对象从一个硬件任务(使用如存储在外壳命令解释程序中的分布信息)改变成一个软件任务(使用共享存储器中的集中信息)。对于多任务的硬件设备,每个任务都在外壳命令解释程序中(寄存器中)存储了其使用的缓冲区管理信息的私有副本。这增加了外壳命令解释程序的大小。通过在任务之中共享存储器可以避开这个问题。但是,每当换出一个任务时,必须将其缓冲区的当前状态直接存储到存储器中,而且每当再次调度该任务时,必须再次再存储(restore)全部状态。这对运行性能具有不良的影响。通过总是将集中在一起的缓冲区管理信息的副本保存在存储器中,由于在任务转换的缓冲区状态已经在存储器中且是最新的,所以不需要保存该状态。
权利要求3描述了同步协议的第一实施方案。在该实施方案中,每个处理器保存一个相应的同步计数器。生产处理器(即写令牌)保存第一同步计数器Np,消费处理器(读取该信息)保存第二同步计数器Nc。假如用于交换信息的缓冲区的大小为Nb,则可用于第一处理器的令牌数N1是
(1)N1=Nc-Np mod Nb
可用于第二处理器的令牌数N2是
(2)N2=Np-Nc mod Nb
每当生产处理器已经写入一个令牌并将该令牌释放给消费处理器,该处理器更新第一同步计数器Np,每当消费处理器已经读取一个令牌并将该令牌释放给生产处理器,该处理器更新第二同步计数器Nc。
处理器可以在任意时刻通过发出第一命令(请求(claim))检查其能够使用的令牌数。这导致通过比较两个同步计数器来验证缓冲区空间的大小是否可用于该处理器。对于验证,第一处理器使用等式1,第二处理器使用等式2。
第二命令(释放(release))导致分配给该处理器的同步计数器增加已释放的令牌数。
第一和第二命令可以在软件中以函数调用的方式或在硬件中用专用信号来实现。
权利要求4中描述了一个特殊的实施方案。在该实施方案中,至少一个处理器可以在缓冲区中保留一个其可以任意使用的区域,如用于随机访问或临时存储数据。
除了按权利要求3的实施方案保存已释放的令牌数之外,替代做法是可以在计数器中保存可用令牌数。在这种情况下,由消费处理器增加和由生产处理器减少关于可用于写入的令牌数的计数器。由生产处理器增加和由消费处理器减少关于可用于读取的令牌数的计数器。权利要求5中描述了这个实施方案。
虽然可以由任意装置保存共享存储器中的副本,但优选是,专用处理器也更新共享存储器中的副本。专用处理器“知道”管理信息发生变化的时刻。
缓冲区优选位于共享存储器中,例如使用同一个用于管理信息副本的存储器。
因为与处理器耦合的外壳命令解释程序利于多任务处理,所以可以减少处理器必须亲自处理的中断数。这减少了不必要的激活空闲处理器的次数或处理器必须中断其正在处理的另一个任务。以这种方式提高了处理器的效率。
有几种选择可以用于实现这样的外壳命令解释程序,根据中断信号类型和中断信号如何编码来选择中断信号。在一个实施方案中,中断信号表示处理器的一个数据通道。实现这一点的实际做法是将寄存器的位分配给处理器的各个输入通道。例如,32位寄存器能够支持32个输入通道,其中,例如将位0分配给通道0,将位1分配给通道1,等等。当另一个处理器发送一个指示处理器通道k的中断信号时,设置信号寄存器的对应位k。接收处理器的外壳命令解释程序可以通过屏蔽寄存器选择特定中断信号,屏蔽寄存器中的每个位为一个特定通道表明该处理器是否想忽略该中断。例如,如果屏蔽了对应于通道2的位,则该信号不会在处理器中产生中断,不会发生唤醒。在该例中,处理器可能忙于处理,此时屏蔽了所有位,或者处理器/任务可能正在等待一个关于通道1的满/空令牌,在这种情况下处理器/任务不关心通道2上发生的事情。
信号和屏蔽寄存器的位数可为任意值,取决于应该支持的通道数。替代做法是每个通道能够由一个数字支持,并使用列表或查找表确定是否应该为该通道中断处理器。但这是更为复杂的解决方案。
除了通过中断信号的通道号标识中断信号之外,还可以通过任务号来代之标识。在该实施方案中,所有带有用于特定任务的信号的通道在外壳命令解释程序的信号寄存器中设置相同的位。以这种方式,可以唯一寻址等于信号寄存器中位号的任务号,而每个任务可以有一个以上的通道。等待稍稍不如唯一通道标识明确,但是不必要唤醒的数量仍然少,而且能够以有限的硬件支持更多的通道。
当然,只要定义了相关关系,任务号不必与位号相同,(只是以这种方式实现简单)。此外,也可以是任务(组)共享相同的信号中断号。
除了标识由接收方执行的任务之外,也可以告知发送方任务标识号。在这种情况下,接收处理器可以从特定任务中选择中断信号,而不是为特定任务选择中断信号。它可以取决于外部任务号和基于处理器自身爱好或看起来最有用/有效的事物的任务号。
附图说明
在附图中描述了本发明的这些及其它方面。其中
图1示意性显示了一种数据处理器,
图2示意性显示了一种同步计数器指明缓冲区分区的方法,
图3说明了一种用于处理器的同步外壳命令解释程序,以及
图4说明了一种通道控制器。
具体实施方式
图1显示了一种数据处理器,至少包括第一处理装置1.6和第二处理装置1.3。第一处理装置,特定应用处理器1.6能够通过使位于存储器1.5中的缓冲区装置中的令牌变得可用来提供数据。第二处理装置1.3,数字信号处理器,读取令牌进行进一步处理。数据处理器还包括RISC处理器1.1、VLIW处理器1.2和ASIP 1.4。VLIW处理器1.2、DSP 1.3、ASIP 1.4、存储器1.5和ASIC 1.6通过第一总线1.7相互耦合。RISC处理器1.1耦合到第二总线1.8,至于第二总线1.8通过桥接器1.9耦合到第一总线1.7。另一个存储器1.10和外围设备1.11连接到第二总线1.8。处理器可以有辅助单元。例如RISC处理器1.1包括指令缓存1.1.1和数据缓存1.1.2。同样,VLIW处理器包括指令缓存1.2.1和数据缓存1.2.2。DSP1.3包括指令缓存1.3.1、本地存储器1.3.2和地址解码器1.3.3。ASIP 1.4包括本地存储器1.4.1和地址解码器1.4.2。ASIC 1.6包括本地存储器1.6.1和地址解码器1.6.2。为处理装置1.6、1.3各分配一个相应的同步指示器。两个同步指示器都可以由第一处理装置1.6和第二处理装置1.3访问。第一同步指示器至少可由第一处理装置1.6修改,由第二处理装置1.3读取。第二同步指示器至少可由第二处理装置1.3修改,由第一处理装置1.6读取。
每个同步指示器由一个计数器表示。代表第一同步指示器的计数器(wirtec)指示第一处理装置1.6要写入的令牌数。代表第二同步指示器的计数器(readc)指示第二处理装置1.3要读取的令牌数。
只要比较计数器值就能够计算对于各个处理器可用的令牌数,技术人员可以有几种选择来通过计数器表示令牌数。例如,计数器值可以等于令牌数mod n,其中n是一个整数值。另外,计数器的每一阶跃可以表示一个固定的令牌数,或者通过计数器值的阶跃数来表示一个令牌。
在实际实施方案中,计数器是一个指向地址的指针,由此使缓冲区装置可用于另一个处理器。图2中示意性说明了这一点。该图示意性显示了存储器1.5中的缓冲区空间2.1,被第一处理装置1.2用来为第二处理装置1.3提供数据。缓冲区空间2.1配置成一个循环缓冲区。缓冲区空间2.1包括第一区2.2和第二区2.4,其中包含第一处理装置1.6写入的数据,该数据现在可用于第二处理装置1.3。缓冲区空间2.1还包括第三区2.3,可用于第一处理装置1.6写入新数据。生产者计数器writec表示第一区2.2的末端,消费者计数器readc表示第二区2.3的末端。
第一区2.2中的区段2.6和第二区2.4由保留计数器readrsvc和同步计数器readc共同保留。第三区2.3中的区段2.5由保留计数器writersvc和同步计数器writec共同保留。如将要参照图3和4说明的,将包括第一同步计数器writec、第二同步计数器readc、保留计数器readrsvc和writersvc的同步信息与和特定应用设备1.6(图3中以3.1表示)耦合的同步外壳命令解释程序的通道控制器中的其它信息结合存储。
请参看图3,特定应用设备3.1通过同步外壳命令解释程序3.2耦合到总线3.3。以这种方式,特定应用设备3.1负责计算任务,而同步外壳命令解释程序执行通信任务。为了实现这个目标,同步外壳命令解释程序3.2包括总线适配器3.4、存储任务标识的信号寄存器3.5,同步外壳命令解释程序3.2为该任务标识接收了一条消息。同步外壳命令解释程序3.2还包括通道控制器3.6、3.7。这些控制器用于将信号中处理器3.1的命令转换到总线3.3。通常特定应用设备3.1并行执行的任务较可编程处理器3.1的情况要少。
图4更为详细地显示了同步外壳命令解释程序的通道控制器4.1。通道控制器4.1包括普通总线主从单元4.2、寄存器文件(registerfile)4.3和控制单元4.4。
总线适配器3.4和普通总线主从单元4.2共同将通道控制器4.1耦合到总线。总线适配器3.4提供了从例如PI总线或AHB总线等特殊互连网络到普通接口的匹配。普通总线主从单元4.2配置用于将同步信号与普通接口匹配。以这种方式能够以数量相对较少的不同元件支持不同的通道控制器类型和不同的总线。
寄存器文件4.3存储同步信息。
假如处理器3.1的设备同步接口发出信号Claim来请求缓冲区中的一系列可写或可读令牌,则控制单元4.4通过比较远程计数器remotec的本地存储值和它的保留计数器localrsvc来验证这个数是否可用。符号remotec对于输入通道表示writec,对于输出通道表示readc。符号localrsvc对于输入通道表示readrsvc,对于输出通道表示writersvc。
如果验证是肯定的,则返回令牌地址Token Address。否则,将返回为处理器3.1保留的缓冲区空间的上限地址。信号Token Valid表示是否确认对令牌的请求,处理器的同步接口是否可以再次产生信号Claim。以这种方式,可以在每个周期将令牌地址提供给处理器。如果第一验证的结果是否定的,则通道控制器4.1读取地址remotecaddr指示的远程计数器,并通过将在该地址存储的值来替换本地存储值remotec。现在控制单元4.4再次验证请求的令牌数是否可用。
如果请求失败,则通道控制器4.1或者以轮询模式定期轮询远程计数器,或者以中断模式等待其与之通信的处理器的中断。同时通道控制器4.1可以进行另一个任务。通道控制器中的寄存器文件包括指针sgnl_reg_addr,它指示处理器正在与之通信的另一个设备的信号寄存器地址。中断处理器可以在一个设备的信号寄存器中保存为之发生中断的任务或通道指示。
寄存器中的变量inputchannel表示对于通道控制器来说该通道是输入通道还是输出通道以及为该通道选择了这些模式中的哪一种。变量maxtoken和tokensize分别表示缓冲区中可用令牌的总数和令牌的字节大小。
在成功请求之后,更新变量localrsvc与请求的令牌数一致。
寄存器文件除了变量remotec之外,还可包括表示由上一次验证计算的可用令牌数的变量。
假如处理器3.1发信号Release_req,则根据该请求更新本地计数器localc。这个本地计数器1ocalc对于输入通道是readc,对于输出通道是writec。任选地保持信号Release_req为高,从而允许处理器3.1在任何时候释放令牌。但是,这个信号可以用于防止在控制器很难访问总线的时候控制器溢出。
替代做法是,可以在软件中通过使用一个请求(claim)和一个释放释放(release)+函数来实现同步过程。通过执行请求函数,处理器请求用于特定通道的令牌数,并等待到函数返回令牌地址。通过执行释放函数,处理器释放用于特定通道的令牌数。存在单独的函数用于请求用于写的令牌或请求用于读的令牌。类似地可以使用单独的函数用于释放。
根据本发明,在共享存储器中保存至少部分同步信息的副本。
作为副本保存的信息可以包括任何对跟踪专用处理器运行有用的信息,例如由该处理器保存的同步计数器的值。
举例来说,共享存储器中的副本可以按照下面以C语言定义的数据结构排列:
typedef struct
{
int id;               //通道标识号
int maxtokens;        //通道中的最大令牌数
int flags;            //模式标记(例如中断/轮询)
CHP_taskT*producer;   //生产者任务指针
CHP_taskT*consumer;//消费者任务指针
int tokensize;          //令牌大小
char*bufbaseaddr;     //存储器中缓冲区的基地址
unsigned writec;       //写入计数器
unsigned readc;       //读取计数器
unsigned writersvc;      //写入保留计数器
unsigned readrsvc;    //读取保留计数器
CHP_channel_hwT*pchanregs;
CHP_channel_hwT*cchanregs;
}CHP_channelT
除了同步计数器值writec和readc与保留计数器值wirtersvc和readrsvc之外,该数据结构还包括下列数据。
id是标识通道的值,从而能够使一个处理方案包含多个通道,例如从第一处理装置传输数据到第二处理装置的第一通道,从第二处理装置传输数据到第一处理装置的第二通道和从第二处理装置传输数据到第三处理装置的第三通道。
值maxtokens表示缓冲区的大小,即能够存储在缓冲区中的令牌数。
值flags表示通道属性,例如,同步是基于轮询的还是基于中断的,通道缓冲区是直接还是间接分配的。作为替代,可以决定将预定属性赋给通道,例如,将实现限制为基于中断的同步,带有直接分配的缓冲区。在这种情况下可以省略值flags。
producer和consumer是指向结构的指针,描述第一处理装置的任务、生产者和第二处理装置的任务、消费者。
任务结构可以包含例如
—任务标识符(是谁的任务结构)
—函数指针(如果是关于嵌入式处理器的任务,则在引导(booting)之后,root_task能够跳到该函数并启动应用程序。否则无效。)
—设备类型:表示任务应该运行在什么类型的设备上。
这对于启动过程是有用的:在DSP或嵌入式处理器上运行的任务必须以与专用硬件上运行的任务不同的方式初始化。通过获得主设备类型,易于选择正确的引导过程。
—设备号:这使得能够区分如第一和第二硬件协处理器。通过为它们分配一个唯一号能够实现区分。
—通道号
—到通道数据结构的指针列表。
以这种方式,当启动一个例如UNIX任务时,任务可以首先读取其任务结构,然后读取所有与连接到该任务的所有通道有关的信息。这使得引导过程容易得多,并避开下是在此时添加一些任务,必须修改控制过程,使所有任务载入正确的数据结构。整数token_size表示通过通道交换的令牌的大小。
指针bufbaseaddr指存储器中缓冲区的基地址。
指针CHP_channel_hwT*pchanregs和CHP_channel_hwT*cchanregs便于通过软件访问通道控制器的寄存器。这些指针只是指向硬件寄存器的物理地址。如果有一个字段为0,则意味着对应的任务是软件任务。
为了完整,我们还讨论了两个硬件任务正在通信的情况。在这种情况下,将生产者的signaladdr设置为消费者同步外壳命令解释程序的信号寄存器的地址,并将remotecaddr设置为消费者通道控制器localc寄存器的地址。另一种选择是将remotecaddr设置为共享存储器中通道记录的readc字段,但是这有一个缺点是由于消费者的外壳命令解释程序更新存储器稍晚于更新其本地寄存器,远程计数器读取的值会稍微过时一些。为消费者设置寄存器的方式刚好相反。
动态的重新配置导致改变表示特定应用的任务图的拓扑结构。例如这意味着会停止和删除任务,或将特定通道重新连接到其它任务。在该上下文中最让人感兴趣的情况是一个特定通道的一端(生产者或消费者)在什么时候重新连接到另一个任务,这是不同的实施方案。例如,一个生产者任务(硬件)连接到一个硬件消费者任务,在重新配置之后,它必须与一个软件任务通信。在这种情况下,因为通道记录已经存在且是最新的,软件任务可以立即使用通道。对于硬件任务,必须更改其通道管理寄存器中的几个字段,即将signaladdr设置为在其上运行新软件任务的CPU的信号控制器地址。
将remotecaddr设置为通道记录中readc字段的地址。请注意,当以前已经是这种情况,即使两个硬件任务正在通信,也不需要这个步骤。
为了避免硬件任务在正更新寄存器的时候使用这些寄存器,首先将任务挂起,在更新完成之后继续。
利用寄存器中的通道记录,容易实现从一个硬件任务向另一个硬件任务的任务通信方的切换。只在启动前从共享存储器简单加载新任务通道控制器的寄存器。
多个任务可以映射到单个硬件设备上,例如DCT和IDCT。两种任务都可有不同的输入和输出通道,因此需要独立的通道控制器和寄存器。或者,我们可以在设备的外壳命令解释程序中使用相同的寄存器集合来实现用于两个任务的通道,从而减少硅面积。在存储器中没有管理信息副本的情况下,这要求在将一个任务撤出列表时,必须将其通道的管理信息直接存储在存储器中,一旦再次将调度,可以将对应通道的管理信息从存储器恢复到寄存器。
使用所提出的方法,通道寄存器的“影子状态”总是存在于存储器中,因此加快了硬件设备上的任务切换,因为不需要保存通道管理信息的状态。而且,因为撤出列表的任务仍然影响共享存储器通道记录,所以正与撤出的任务通信的任务不会注意到这个任务切换。
要注意的是,本发明要保护的范围不限于这里描述的实施方案。本发明要保护的范围也不受权利要求中标号的限制。词“包括”不排除权利要求中提到的那些部分之外的部分。元件前面的词“一个”不排除多个该种元件。构成本发明一部分的装置既可以以专用硬件的形式实现,也可以以已编程的通用处理器的形式实现。本发明存在于各个新特征或特征组合之中。

Claims (8)

1、多处理器系统,至少包括一个专用处理器和另外一个处理器,以及由所述一个专用处理器和所述另外一个处理器共享的存储器,所述共享的存储器、所述一个专用处理器和所述另外一个处理器耦合到一个互连网络,将所述一个专用处理器和所述另外一个处理器设置成根据同步协议经过缓冲区来相互传递数据,其中所述一个专用处理器包括管理与同步协议有关的信息的装置,其中至少部分该信息的副本保存在所述共享的存储器中。
2、根据权利要求1的多处理器系统,其中所述信息至少包括下列信息成分:
一个表示缓冲区位置的地址,
一个关于缓冲区大小的指示,
一个与数据传输进展过程有关的同步计数器,
其中每个信息成分各在所述共享的存储器中保存一个副本。
3、根据权利要求2的多处理器系统,其中同步计数器由所述另外一个处理器保存,并可由所述一个专用处理器读取,其中所述一个专用处理器保存另一个同步计数器,该同步计数器由所述另外一个处理器读取,其中同步协议包括
第一命令,当由一个处理器发出第一命令时,导致通过比较两个同步计数器验证缓冲区空间大小是否可用于该处理器,
第二命令,当由一个处理器发出第二命令时,导致通过更新其保存的同步计数器来释放它的部分缓冲区空间。
4、根据权利要求3的多处理器系统,其中所述一个专用处理器和另外一个处理器的至少一个本地保存一个保留计数器,其中一个处理器发出的第一命令导致通过将其保留计数器和由另外一个处理器保存的同步计数器进行比较,来验证缓冲区空间大小是否可用于该处理器,当验证结果是肯定的时候更新保留计数器。
5、根据权利要求2的多处理器系统,包括另一个计数器,两个计数器由所述一个专用处理器和所述另外一个处理器保存和读取,一个计数器表示可用于所述一个专用处理器的缓冲区空间大小,另一个计数器对于所述另外一个处理器进行表示。
6、根据权利要求1的多处理器系统,其特征在于所述一个专用处理器还更新共享存储器中的副本。
7、根据权利要求1的多处理器系统,其中缓冲区位于共享存储器中。
8、运行多处理器系统的方法,多处理器系统至少包括一个专用处理器和另外一个处理器,以及由所述一个专用处理器和所述另外一个处理器共享的存储器,所述共享的存储器、所述一个专用处理器和所述另外一个处理器耦合到一个互连网络,根据该方法,将所述一个专用处理器和所述另外一个处理器设置成根据同步协议经过缓冲区来相互传递数据,其中所述一个专用处理器管理与同步协议有关的信息,和将至少部分该信息的副本保存在所述共享的存储器中。
CNB028130588A 2001-06-29 2002-06-20 多处理器系统及运行多处理器系统的方法 Expired - Fee Related CN100533370C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP01202517.7 2001-06-29
EP01202517 2001-06-29

Publications (2)

Publication Number Publication Date
CN1522402A CN1522402A (zh) 2004-08-18
CN100533370C true CN100533370C (zh) 2009-08-26

Family

ID=8180570

Family Applications (3)

Application Number Title Priority Date Filing Date
CNA028130553A Pending CN1531684A (zh) 2001-06-29 2002-06-20 数据处理器及运行数据处理器的方法
CNB028130588A Expired - Fee Related CN100533370C (zh) 2001-06-29 2002-06-20 多处理器系统及运行多处理器系统的方法
CNA028130510A Pending CN1522405A (zh) 2001-06-29 2002-06-20 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNA028130553A Pending CN1531684A (zh) 2001-06-29 2002-06-20 数据处理器及运行数据处理器的方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNA028130510A Pending CN1522405A (zh) 2001-06-29 2002-06-20 数据处理设备和同步数据处理设备中的第一与第二处理装置的方法

Country Status (7)

Country Link
US (2) US20040153524A1 (zh)
EP (3) EP1405175B1 (zh)
JP (3) JP2004531002A (zh)
CN (3) CN1531684A (zh)
AT (1) ATE341027T1 (zh)
DE (1) DE60215007T2 (zh)
WO (3) WO2003003232A2 (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7293155B2 (en) 2003-05-30 2007-11-06 Intel Corporation Management of access to data from memory
TW587374B (en) * 2003-06-03 2004-05-11 Acer Labs Inc Method and related apparatus for generating high frequency signals by a plurality of low frequency signals with multiple phases
US7714870B2 (en) 2003-06-23 2010-05-11 Intel Corporation Apparatus and method for selectable hardware accelerators in a data driven architecture
US7546423B2 (en) * 2003-09-02 2009-06-09 Sirf Technology, Inc. Signal processing system control method and apparatus
JP4148223B2 (ja) * 2005-01-28 2008-09-10 セイコーエプソン株式会社 プロセッサおよび情報処理方法
US20060253662A1 (en) * 2005-05-03 2006-11-09 Bass Brian M Retry cancellation mechanism to enhance system performance
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US20080052527A1 (en) * 2006-08-28 2008-02-28 National Biometric Security Project method and system for authenticating and validating identities based on multi-modal biometric templates and special codes in a substantially anonymous process
US8014387B2 (en) 2007-08-27 2011-09-06 International Business Machines Corporation Providing a fully non-blocking switch in a supernode of a multi-tiered full-graph interconnect architecture
US7958183B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Performing collective operations using software setup and partial software execution at leaf nodes in a multi-tiered full-graph interconnect architecture
US7793158B2 (en) 2007-08-27 2010-09-07 International Business Machines Corporation Providing reliability of communication between supernodes of a multi-tiered full-graph interconnect architecture
US7822889B2 (en) 2007-08-27 2010-10-26 International Business Machines Corporation Direct/indirect transmission of information using a multi-tiered full-graph interconnect architecture
US7809970B2 (en) 2007-08-27 2010-10-05 International Business Machines Corporation System and method for providing a high-speed message passing interface for barrier operations in a multi-tiered full-graph interconnect architecture
US7769892B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for handling indirect routing of information between supernodes of a multi-tiered full-graph interconnect architecture
US7904590B2 (en) 2007-08-27 2011-03-08 International Business Machines Corporation Routing information through a data processing system implementing a multi-tiered full-graph interconnect architecture
US8185896B2 (en) * 2007-08-27 2012-05-22 International Business Machines Corporation Method for data processing using a multi-tiered full-graph interconnect architecture
US7769891B2 (en) 2007-08-27 2010-08-03 International Business Machines Corporation System and method for providing multiple redundant direct routes between supernodes of a multi-tiered full-graph interconnect architecture
US7958182B2 (en) 2007-08-27 2011-06-07 International Business Machines Corporation Providing full hardware support of collective operations in a multi-tiered full-graph interconnect architecture
US8108545B2 (en) 2007-08-27 2012-01-31 International Business Machines Corporation Packet coalescing in virtual channels of a data processing system in a multi-tiered full-graph interconnect architecture
US7840703B2 (en) 2007-08-27 2010-11-23 International Business Machines Corporation System and method for dynamically supporting indirect routing within a multi-tiered full-graph interconnect architecture
US8140731B2 (en) 2007-08-27 2012-03-20 International Business Machines Corporation System for data processing using a multi-tiered full-graph interconnect architecture
US7827428B2 (en) 2007-08-31 2010-11-02 International Business Machines Corporation System for providing a cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7921316B2 (en) 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
US7779148B2 (en) 2008-02-01 2010-08-17 International Business Machines Corporation Dynamic routing based on information of not responded active source requests quantity received in broadcast heartbeat signal and stored in local data structure for other processor chips
US20090198956A1 (en) * 2008-02-01 2009-08-06 Arimilli Lakshminarayana B System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
US8077602B2 (en) 2008-02-01 2011-12-13 International Business Machines Corporation Performing dynamic request routing based on broadcast queue depths
DE102008018951A1 (de) 2008-04-15 2009-10-22 Carl Zeiss Microimaging Gmbh Mikroskop mit Haltefokuseinheit
US8082426B2 (en) * 2008-11-06 2011-12-20 Via Technologies, Inc. Support of a plurality of graphic processing units
US8843682B2 (en) * 2010-05-18 2014-09-23 Lsi Corporation Hybrid address mutex mechanism for memory accesses in a network processor
US8417778B2 (en) 2009-12-17 2013-04-09 International Business Machines Corporation Collective acceleration unit tree flow control and retransmit
US9037907B2 (en) 2011-06-10 2015-05-19 International Business Machines Corporation Operator message commands for testing a coupling facility
US8799522B2 (en) 2011-06-10 2014-08-05 International Business Machines Corporation Executing a start operator message command
US8689240B2 (en) 2011-06-10 2014-04-01 International Business Machines Corporation Transmitting operator message commands to a coupling facility
US8560737B2 (en) 2011-06-10 2013-10-15 International Business Machines Corporation Managing operator message buffers in a coupling facility
US8918797B2 (en) 2011-06-10 2014-12-23 International Business Machines Corporation Processing operator message commands
US8745291B2 (en) 2011-10-04 2014-06-03 Qualcomm Incorporated Inter-processor communication apparatus and method
CN103186501A (zh) * 2011-12-29 2013-07-03 中兴通讯股份有限公司 一种多处理器共享存储方法及系统
US9304880B2 (en) * 2013-03-15 2016-04-05 Freescale Semiconductor, Inc. System and method for multicore processing
US9928117B2 (en) * 2015-12-11 2018-03-27 Vivante Corporation Hardware access counters and event generation for coordinating multithreaded processing
US10437748B1 (en) * 2015-12-29 2019-10-08 Amazon Technologies, Inc. Core-to-core communication
US10042677B2 (en) * 2016-05-25 2018-08-07 Bank Of America Corporation Maintenance conflict tool
US10963183B2 (en) * 2017-03-20 2021-03-30 Intel Corporation Technologies for fine-grained completion tracking of memory buffer accesses
CN107342853B (zh) * 2017-05-25 2019-12-06 兴唐通信科技有限公司 一种低交互开销的计数器同步方法
CN109214616B (zh) 2017-06-29 2023-04-07 上海寒武纪信息科技有限公司 一种信息处理装置、系统和方法
CN113468096A (zh) * 2017-06-26 2021-10-01 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
WO2019001418A1 (zh) 2017-06-26 2019-01-03 上海寒武纪信息科技有限公司 数据共享系统及其数据共享方法
CN109426553A (zh) 2017-08-21 2019-03-05 上海寒武纪信息科技有限公司 任务切分装置及方法、任务处理装置及方法、多核处理器
CN110413551B (zh) 2018-04-28 2021-12-10 上海寒武纪信息科技有限公司 信息处理装置、方法及设备
JP7407653B2 (ja) 2020-04-27 2024-01-04 株式会社平和 遊技機
US11842056B2 (en) * 2021-10-25 2023-12-12 EMC IP Holding Company, LLC System and method for allocating storage system resources during write throttling

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4916658A (en) * 1987-12-18 1990-04-10 International Business Machines Corporation Dynamic buffer control
US5584037A (en) * 1994-03-01 1996-12-10 Intel Corporation Entry allocation in a circular buffer
DE69525531T2 (de) * 1995-09-04 2002-07-04 Hewlett Packard Co Dataverarbeitungssystem mit ringförmiger Warteschlange in einem Seitenspeicher
US5729765A (en) * 1995-12-07 1998-03-17 Samsung Electronics Co., Ltd. Method and apparatus for determining the status of a shared resource
US5951657A (en) * 1996-06-19 1999-09-14 Wisconsin Alumni Research Foundation Cacheable interface control registers for high speed data transfer
US5915128A (en) * 1997-01-29 1999-06-22 Unisys Corporation Serial speed-matching buffer utilizing plurality of registers where each register selectively receives data from transferring units or sequentially transfers data to another register
US6173307B1 (en) * 1998-08-20 2001-01-09 Intel Corporation Multiple-reader multiple-writer queue for a computer system
US6212543B1 (en) * 1998-12-10 2001-04-03 Intel Corporation Asymmetric write-only message queuing architecture
US6389489B1 (en) * 1999-03-17 2002-05-14 Motorola, Inc. Data processing system having a fifo buffer with variable threshold value based on input and output data rates and data block size
US6606666B1 (en) * 1999-11-09 2003-08-12 International Business Machines Corporation Method and system for controlling information flow between a producer and a buffer in a high frequency digital 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
US6424189B1 (en) * 2000-10-13 2002-07-23 Silicon Integrated Systems Corporation Apparatus and system for multi-stage event synchronization
KR100484134B1 (ko) * 2002-02-16 2005-04-18 삼성전자주식회사 선입선출기를 이용한 비동기 데이터 인터페이스 장치

Also Published As

Publication number Publication date
WO2003005196A2 (en) 2003-01-16
WO2003005219A2 (en) 2003-01-16
JP2004534323A (ja) 2004-11-11
EP1405175A2 (en) 2004-04-07
WO2003005219A3 (en) 2003-06-05
WO2003003232A3 (en) 2004-03-18
JP2004531002A (ja) 2004-10-07
US20040153524A1 (en) 2004-08-05
CN1531684A (zh) 2004-09-22
JP2004522233A (ja) 2004-07-22
EP1405184A2 (en) 2004-04-07
WO2003003232A2 (en) 2003-01-09
US20040193693A1 (en) 2004-09-30
DE60215007D1 (de) 2006-11-09
DE60215007T2 (de) 2007-05-03
EP1405175B1 (en) 2006-09-27
EP1421506A2 (en) 2004-05-26
CN1522402A (zh) 2004-08-18
ATE341027T1 (de) 2006-10-15
CN1522405A (zh) 2004-08-18
WO2003005196A3 (en) 2004-01-15

Similar Documents

Publication Publication Date Title
CN100533370C (zh) 多处理器系统及运行多处理器系统的方法
Gustavson The scalable coherent interface and related standards projects
CN1991768B (zh) 与不同种类的资源通信的基于指令系统结构的内定序器
JP2644780B2 (ja) 処理依頼機能を持つ並列計算機
US4374409A (en) Method of and system using P and V instructions on semaphores for transferring data among processes in a multiprocessing system
US9286067B2 (en) Method and apparatus for a hierarchical synchronization barrier in a multi-node system
US6711643B2 (en) Method and apparatus for interrupt redirection for arm processors
CN100499556C (zh) 异构多核处理器高速异步互连通信网络
US9032128B2 (en) Method and system for generating and delivering inter-processor interrupts in a multi-core processor and in certain shared memory multi-processor systems
Dinan et al. Dynamic load balancing of unbalanced computations using message passing
US7464208B2 (en) Method and apparatus for shared resource management in a multiprocessing system
US20060047877A1 (en) Message based interrupt table
JP2001142842A (ja) Dmaハンドシェークプロトコル
CN103282888B (zh) 数据处理方法、图像处理器gpu及第一节点设备
KR20040017822A (ko) 데이터 전송 방법, 시스템 및 컴퓨터 판독가능 매체
US7552269B2 (en) Synchronizing a plurality of processors
US9753765B1 (en) Multi-processor integrated circuits
CN117149471B (zh) 通信方法、装置、嵌入式系统、存储介质以及电子设备
US20220317927A1 (en) Adaptive memory consistency in disaggregated datacenters
US20240111694A1 (en) Node identification allocation in a multi-tile system with multiple derivatives
CN117725019B (zh) 用于gpu集合通信的方法和计算系统
KR20090054780A (ko) 다중 프로세서를 구비한 시스템 온 칩 시스템 내의프로세서간 통신 장치 및 방법
Radovici et al. Asynchronous Syscall Capsules
CN113079179A (zh) 一种区块链高效共识方法、系统、计算机设备及存储介质
CN117725019A (zh) 用于gpu集合通信的方法和计算系统

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: ROYAL PHILIPS ELECTRONICS CO., LTD.

Effective date: 20070817

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

Effective date of registration: 20070817

Address after: Holland Ian Deho Finn

Applicant after: Koninkl Philips Electronics NV

Address before: Holland Ian Deho Finn

Applicant before: Koninklike 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: 20090826

Termination date: 20110620