用于在系统处理器和协处理器之间进行消息传送的系统和方法技术方案

技术编号:2845499 阅读:203 留言:0更新日期:2012-04-11 18:40
一种用于在通过总线连接的处理器和协处理器之间进行消息传送的方法和系统。该方法允许多线程系统处理器请求位于总线上的处理器或协处理器的服务。消息控制块被存储在存储器中,其标识目标处理器的物理地址,以及专用于请求该服务的线程的存储器中的存储器单元。当系统处理器请求处理器或协处理器的服务时,创建指向消息控制块的DCR命令。通过消息控制块中包含的信息或被传输到处理器或协处理器的信息来构建消息。处理器或协处理器消息的返回地址与线程号相并置,以便处理器或协处理器可创建返回消息,该返回消息特别地标识专用于请求线程以便响应消息的存储的存储器空间。

【技术实现步骤摘要】

本专利技术涉及在处理器/协处理器之间交换消息的多处理器计算系统。特别是,本专利技术涉及运行多个线程的处理器,其中每个线程可请求用于运行指令子集以获得完成线程的执行所需的数据的协处理器服务。
技术介绍
通过使用在多个处理器之间的分布式计算来运行程序,导致了计算系统的发展。在这些多处理器系统中,一个处理器可以开始运行指令线程,该指令线程需要从所链接的协处理器获得额外的信息。这需要消息传送协议调用协处理器来运行专用指令集,并转发协处理器的结果,以便可以继续运行。当这些处理器中之一正在运行同一程序的运行序列的多个线程时,使用所链接的多个处理器会得到额外的好处。通过使用多线程处理系统,在一个线程正等待来自协处理器的数据时,能够通过运行程序的其它线程而继续处理。这样,通过在单个程序的界限内声明多个线程,实现最终提高了程序的整体处理速度的并行性。然而,多处理器系统的性能取决于很多因素,诸如处理器之间的信息流控制、对协处理器的请求的调度、以及在处理器和协处理器之间建立和解除连接的时间。在多处理器/多线程环境中,处理器之间的消息传送变得甚至更为复杂。在多线程处理器中的每个线程必须知道其自身的线程身份,至少就用于每个线程的不同索引寄存器来说,将必须为每个线程进行初始化,从而访问对线程特定的数据。由于每个线程需要私用消息缓冲器和响应缓冲器,所以每个线程将必须建立独立的DMA或消息控制块(MCB)。用于每个线程的消息控制块的复制需要用于每个处理器的本地高速存储器的显著增加。此外,当接收到上述结果时,必须通知请求协处理器服务的特定线程,以便可以进行线程的运行。本专利技术的消息传送协议减轻了依赖于用于支持的另一处理器的多线程运行的复杂性。
技术实现思路
提供了一种用于在通过系统总线互连的系统处理器之间进行消息传送的系统和方法。根据本专利技术,系统处理器运行同一进程内的多个线程。为所处理线程中的每一个提供具有共享和专用存储器的系统存储器。通过用于每个协处理器的消息控制块来影响经由系统总线连接的协处理器和线程之间的通信。该消息控制块标识协处理器的物理地址、用于来自协处理器的响应的存储器返回地址以及将被发送的消息的存储器单元(location)。当线程的运行创建对协处理器服务的请求时,系统处理器创建设备控制寄存器(DCR)命令,该DCR命令具有标识用于目标协处理器的消息控制块的指针。在所述消息控制块指定的地址处的系统存储器中构建将被发送至协处理器的消息。所构建的消息包括数据净荷,以及标识出用于从协处理器返回的响应数据的系统存储器中的返回地址的数据。直接存储器存取(DMA)控制器响应于该DCR命令,并获得经过系统总线与目标协处理器的连接。一旦连接被建立,就将消息发送至协处理器。发送至协处理器的消息包括与DMA控制器的处理线程号相并置(concatenate)的返回地址。从协处理器返回的响应消息包括返回地址和所并置的线程号。这样,系统处理器知道在存储器中的哪里存储该返回消息,并且能够标识并唤醒空闲的线程,从而允许其继续进行处理。本专利技术避免了必须为可能请求同一协处理器的服务的每个线程复制消息控制块,并且能够明确标识返回消息及请求线程。唤醒指示被嵌入返回消息中,以唤醒请求线程用以后续处理。附图说明图1是例示用于与远程目标处理器进行通信的处理器组件的框图; 图2是系统处理器共享存储器中存储的消息控制块的例图;图3例示了DMA控制器用来构建传输给目标处理器的消息的消息命令格式;以及图4例示了DMA控制器创建的用于传输给协处理器的消息格式。具体实施例方式现在参考图1,示出了运行应用程序的多线程处理器20。将用于运行的指令和用于处理的数据从L2高速缓存装入L1高速缓存21,L2高速缓存(未示出)与系统接口单元SIU 16相关联。主存储器(未示出)经由PLB 15连接至SIU 16,并将数据提供给L2高速缓存,并随后将其提供给L1高速缓存。应该理解,虽然例示了单个L1高速缓存,但实际的实现方式可以包括用于指令和数据的独立L1高速缓存。本地存储器10提供具有存储单元以及所有线程共享的存储空间的多线程处理器20,所述存储单元专用于多线程处理器所运行的每个线程。当多线程处理器20运行需要得自远程协处理器14的信息的指令时,它构建用于在存储器10内的适当的消息缓冲器中进行传输的消息净荷,其可专用于通过内部总线19请求服务的特定线程。通过移动至DCR指令启动对用于传输给远程目标协处理器14的消息的创建。响应于DCR指令的运行,接着由硬件将“移动至DCR”命令通过DCR总线22发布至DMA控制器11中的DCR寄存器。通过将在下文中描述的从DCR命令以及从DCR指令所指向的消息控制块中追加字段,DMA控制器11基于多线程DMA控制器11的DCR寄存器中的移动至DCR指令而创建消息。现在参考图2,例示了移动至DCR命令的格式。消息控制块(MCB)索引字段将偏移定义到包含用于目标处理器或协处理器的消息控制块(MCB)的本地存储器10a的共享区之中。消息标记字段(message-tag(0:7))使该消息与特定的忙位(busy bit)相关联,而消息长度(message-length(0:7))定义了消息的传输长度。请求该消息的线程号在命令中并未明确规定,但处理器基于运行下述指令的线程可以得知该线程号,所述指令运行移动至DCR命令。根据本专利技术,如稍后将显而易见的那样,请求线程号被追加到消息地址,以清楚地定义将被发送的响应消息在哪里,以及将消息净荷存储于请求线程的专用存储器中的哪里。通过存储器10的共享存储器部分10a中所存储的消息控制块(MCB)来确定消息的目标处理器或协处理器14的地址,该MCB通常具有图3所示的形式,其中两个条目(字0中的D buff ADR(0:31),字节0-3,以及字1中的D buff ADR(32:35),字节0)被并置,以形成目标处理器或协处理器14的系统物理地址。字1的字节1标识将被发送至目标协处理器的消息的格式。字1的字节2包括消息缓冲器索引(0:7),其是消息净荷所驻留的消息净荷系统存储器10b的专用线程存储区中的局部地址。净荷的其余地址位是发出该消息的线程号,并标识出哪个线程存储区将被寻址。在消息被构造时,线程号被并置到消息缓冲索引。字1的字节数3是对于线程存储器单元的索引,其组成存储来自协处理器的响应消息的响应缓冲器的局部地址R_Buf_Index(0:7)。响应消息缓冲器的附加地址位是发出该消息的线程号,并标识出哪个线程存储区将被寻址。响应缓冲器的其余地址位表示发出请求的处理器20的系统地址。系统地址、线程号以及R_Buf_Index被并置,以形成响应消息的完整的指定地址。在将该响应消息转发至系统处理器20时,协处理器将该响应消息地址添加至相应的响应消息,以便定位正确的专用存储器部分。因此,消息控制块具有可标识将被传输的消息净荷的专用线程存储器中的单元的索引,以及并非对线程特定的响应消息的单元的索引。在消息被创建时,处理器知道哪个线程已请求过将要发送的消息,并且表示附加地址位的经配置的系统地址和线程号可用于完成所发送的消息净荷的地址和用于存储响应的单元。这允许所有的线程使用单个消息控制块来访问同一目标处理器。注意,由于仅由本地设备本文档来自技高网
...

【技术保护点】
一种用于在通过系统总线连接的系统处理器和协处理器之间进行消息传送的方法,包括:在对通过所述系统总线连接的每个处理器或协处理器进行系统操作之前,在存储器中存储消息控制块,所述消息控制块标识所述处理器或协处理器的物理地址、将被存储的来自 所述处理器或协处理器的响应的存储器单元地址、以及将被发送的消息的存储器单元;创建移动至设备控制寄存器的命令,所述命令具有标识所述消息控制块的设备控制寄存器指针;在所述消息控制块指定地址处的存储器中构建用于传输至所述处理器或协 处理器的消息,所述消息包括用于将被存储的响应消息的所述返回地址,并具有用于所述外出消息的格式信息;由直接存储器存取控制器通过设备控制寄存器命令指针来访问消息控制块;以及将所述消息控制块中标识的消息发送至所述处理器或协处理器。

【技术特征摘要】
US 2005-8-5 11/198,0421.一种用于在通过系统总线连接的系统处理器和协处理器之间进行消息传送的方法,包括在对通过所述系统总线连接的每个处理器或协处理器进行系统操作之前,在存储器中存储消息控制块,所述消息控制块标识所述处理器或协处理器的物理地址、将被存储的来自所述处理器或协处理器的响应的存储器单元地址、以及将被发送的消息的存储器单元;创建移动至设备控制寄存器的命令,所述命令具有标识所述消息控制块的设备控制寄存器指针;在所述消息控制块指定地址处的存储器中构建用于传输至所述处理器或协处理器的消息,所述消息包括用于将被存储的响应消息的所述返回地址,并具有用于所述外出消息的格式信息;由直接存储器存取控制器通过设备控制寄存器命令指针来访问消息控制块;以及将所述消息控制块中标识的消息发送至所述处理器或协处理器。2.根据权利要求1的方法,还包括从所述总线接收由所述处理器或协处理器发送的响应消息;将所述响应消息存储于所述外出消息中指定的所述存储器单元。3.根据权利要求2的方法,还包括在所述外出消息中提供用于标识与所述外出消息相关联的忙位的消息标记;以及在响应消息中检测用于激活对所述响应消息的处理的所述忙位。4.根据权利要求1的方法,还包括提供作为所述响应消息的地址的一部分的运行线程号;以及在接收到所述响应消息时激活相应的运行线程。5.根据权利要求1的方法,其中在对于处理线程特定的存储器单元中创建所述消息,所述处理线程请求到所述处理器或协处理器的传输。6.根据权利要求5的方法,还包括将所述消息控制块中的所述存储器返回地址与对应于所述请求线程的线程号相并置。7.根据权利要求1的方法,其中当接收到响应消息时,创建具有在所述设备控制寄存器命令中用于激活处理线程的消息标记的所述消息。8.根据权利要求1的方法,其中所述消息控制块位于正由系统处理器运行的多个线程所共享的共享存储器中。9.根据权利要求8的方法,其中所述消息控制块包括用于将被发送消息的所述存储器单元的局部地...

【专利技术属性】
技术研发人员:JT布里奇斯GT戴维斯TA萨托里乌斯MS西格尔
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1