当前位置: 首页 > 专利查询>英特尔公司专利>正文

在多处理器系统中的处理器之间传送消息的方法与装置制造方法及图纸

技术编号:2889226 阅读:214 留言:0更新日期:2012-04-11 18:40
一种通过本地总线耦合在本地处理器与存储器上,并通过第二总线进一步耦合在主处理器上的消息单元,所述消息单元包括: a)入站空闲存储装置,用于存储供主处理器读的数据; b)入站空闲电路装置,耦合在入站空闲存储装置上,用于在入站空闲队列中的数据上进行操作; c)入站邮件存储装置,用于存储主处理器写入的数据;以及 d)入站邮件电路装置,耦合在入站邮件存储装置上,用于在外出空闲队列中的数据上进行操作。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及多处理器系统领域。更具体地,本专利技术涉及在多处理器系统中的处理器之间传送消息的方法与装置。消息只是用来传送操作参数与数据的数据结构。消息是由在一个或多个平台上执行的一个或多个进程(即应用)生成的。平台包含一个处理器或处理器簇、关联的存储器、局部存储器总线及存储器输入/输出总线。平台内的这些元件构成一个操作环境。再者,平台执行操作系统的一单个实例。换言之,计算机系统为分布式处理系统,在其中单一的操作系统支持多个处理器。在一个特定平台上的进程之一生成消息之后,便将它送至另一处理器平台供处理。一则消息可用指向驻留在存储器中的控制块的指针指示,控制块中包含指令及指向附加信息数据块的其它指针。例如,控制块可指定特定的外围设备(即,硬盘驱动器),并请求从该设备的指定扇区读取数据。在“紧耦合”(即处理器共用单个高速缓冲存储器)的处理器的对称多处理器系统(SMP)及在用公用总线结构将处理器“松”耦合在一起的不对称多处理器系统中的处理器之间利用消息传递。当将消息从第一平台中的一个处理器传递给第二平台中的第二处理器时,消息必须排队以便消息指向的处理器在其资源空闲时可处理该消息。对消息进行排队的先有技术方法主要采用软件技术实现。这些方法需要对共享的队列结构进行多次原子访问。例如,在单一处理器上运行的多个进程可共用位于由这些处理器共用的存储器中的一个消息队列。进程之一为了得到原子访问,操作系统授予请求存取队列的进程一个给予该进程对队列独享权(即原子访问)的信号。信号只是给予进程对共享数据结构(即操作系统上下文的一部分)的独享存取的操作系统变量。这时进程便可在队列上增加或删除消息。当一个特定的进程控制该信号时,它便封锁要求存取该队列的其它进程。其它进程在可以获得对该共享结构的存取之前必须等待第一进程释放该信号。在多处理器系统中,一个以上的处理器可能同时试图得到对该信号的存取。从而,为了同步(即原子访问)需要总线封锁。当一个处理器将总线封锁时,另一处理器便不能存取存储器中的同一共享结构(即存储器块)直到第一处理器解锁总线为止。由于信号是在系统存储器中的,即使其它处理器没有在争用信号时也将它们封锁。因此,在能被挂起的软件模块中(即多任务操作系统)永远不能使用总线封锁。作为替代,当在这些应用中得到与释放信号时,便需要对操作系统核心的调用。由于在等待信号或等待总线存取时各进程花费在空闲上的时间量,上述操作非常低效。再者,上述对操作系统核心的调用导致昂贵的上下文切换。上下文只是专用于一个应用的存储区(即应用代码与数据)。应用上下文包括标志、变量及当前进程状态。由于信号是在与应用上下文不同的上下文(即操作系统上下文)中的一个操作系统变量,系统资源对切换上下文是必须的。例如,在改变数据指针的上下文切换中,将指针压到栈上并且还修改进程控制参数。不具有总线封锁能力的先有技术计算机系统采用高度复杂的算法来提供处理器之间的同步。在这些系统中,进一步降低了性能。从而,存在着对不用信号而允许高效地直接存取队列的方法与装置的需求。本专利技术涉及用于在多处理器系统中的处理器之间传送消息的方法与装置。本方法与装置允许不对称多处理器系统中的处理器之间的消息通信。不对称多处理器系统只是其中的处理器并发执行不同操作系统的系统。例如,应用平台上的应用处理器正在运行诸如Windows NTTM等标准应用操作系统软件。然而,I/O平台上的处理器则正在运行适用于I/O操作的特定操作系统(诸如,实时操作系统RTOS)。具体地,本专利技术提供一个快速与直接的机制,用于从在一个或多个处理器平台上执行的一个或多个进程将消息排队到包含一个本地处理器的平台上。本专利技术提供将消息缓冲器分配给其它平台的入站空闲队列(inbound free queue)、及投送来自I/O平台外部的处理器与总线代理的消息的入站(inbound)工作队列。此外,本专利技术提供投送从本地处理器(即I/O平台的处理器)到另一处理器平台(即主处理器)的消息而使其它平台上的处理器能检索这些消息的外出工作队列(outbound work queue)。本专利技术还提供主处理器能将消息缓冲器释放到其中的外出空闲队列(outbound free queue)。这一队列在主处理器处理过消息之后将消息缓冲器释放给本地处理器。本专利技术用在主平台与I/O平台之间提供非常快速与高效的硬件队列接口的消息单元来管理这些队列。本专利技术在单个PCI总线事务周期中能提供空闲消息缓冲器或“空”指示器(即读消息单元中的寄存器)。再者,本专利技术能在单个PCI总线事务中投送或检索消息或“满”指示器(即写入到消息单元中的寄存器)。用硬件接口管理队列,本专利技术提供了超过先有技术软件队列管理技术的若干优点。首先当进程试图在满或空队列上执行队列操作时,本专利技术避免了死锁或锁定。在检测到试图从空表或队列中取时,本专利技术的消息单元很快返回一个空指示。类似地,当检测到试图投送到满队列时,本专利技术很快返回特定队列是满的指示。能用最少的硬件资源高效地实现本专利技术。再者,由于本专利技术在单个总线事务处理周期中执行队列存取,便消除了同步(即取得与释放信号)的必要性,并明显地改进了系统性能。队列存取只是在队列上加上一个元素或从队列上去掉一个元素。队列存取可包含定位下一元素、改变该元素及修改一个队列描述符以为下一次队列存取指示下一元素等特定任务。本专利技术是自动执行这些任务的。正在进行这些任务期间,必须封锁队列使得另一进程不能获得同一消息缓冲器或改写另一消息。本专利技术在一次总线事务中提供队列存取得益于单个PCI总线事务内在地是原子的这一事实(即执行该事务的总线代理的独占存取)。再者,本专利技术通过就绪与重试信号自动处理同步。再者,由于本专利技术排除了对信号的需求,冻结系统资源的上下文切换不再必要。由于对消息传送单元中的寄存器单一的读或写是存取一个特定队列所需要的,并且读或写可在一个总线事务处理中完成,因此信号不再需要。在附图的图中以示例方式而不是限制方式展示本专利技术,附图中相同的参照指示相同元素,附图中附图说明图1展示实现本专利技术的不对称多处理器计算机系统的方框图;图2展示包含本专利技术的I/O平台;图3展示本专利技术的一个实施例;图4展示本专利技术的循环队列;图5进一步展示本专利技术的循环队列操作;图6A展示本专利技术的入站空闲状态机;图6B展示用于入站空闲状态机的状态图;图7A展示本专利技术的入站投递状态机;图7B展示入站邮件状态机的状态图;图8A展示本专利技术的外出检索状态机;图8B展示外出检索状态机的状态图;以及图9A展示本专利技术的外出释放状态机;与图9B展示外出释放状态机的状态图。图1展示实现本专利技术的多处理器计算机系统的方框图。多处理器系统100包括主处理器102。主处理器102可包含多个处理器(即紧耦合处理器簇)。主处理器102通过主总线103耦合在主存储器104上。存储器总线103还将主处理器102与存储器104耦合到主芯片组105上。主芯片组105包含存储器控制器、高速缓冲存储器控制器及提供存储器总线103与输入/输出(I/O)总线106(诸如PCI总线)之间的接口的桥。主芯片组105是本技术中已知的。例如,当主处理器102为Intel制造的PentiumTM处理器时,适当的主芯片组105为也是Intel制造的本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:B·达维斯W·T·福拉尔E·加尔布斯
申请(专利权)人:英特尔公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1