提供节点智能锁定的处理器间通信协议的制作方法

文档序号:6496074阅读:204来源:国知局
专利名称:提供节点智能锁定的处理器间通信协议的制作方法
技术领域
本发明通常涉及电子学领域,更具体地,涉及提供节点智能锁定的处理器间通信(IPC)协议/网络。
背景技术
多数电子系统包括许多联网的单元(组件),诸如形成系统的硬件和软件。在多数系统中,存在用于负责在形成联网单元的不同组件之间的通信以及在不同联网单元自身之间的通信的层。这个层一般被称为处理器间通信(IPC)层。
最近几年,为了解决处理器间通信,已经引入了若干协议。IPC产品的一个例子是PCI AGP控制器(PAC),其集成了Host-to-PCI网桥、动态随机存取存储器(DRAM)控制器和数据路径以及加速图形接口(AGP)界面。IPC产品的另一个例子是OMAPTM平台。这些平台都没有提供多少在硬件层面之上的支持,并且也几乎没有在较低层面组件或信道层面(物理层)提供设计灵活性。
例如,PAC平台是封闭的体系结构并且被嵌入在操作系统的TAPI层面中,其中IPC码不能由开发者访问。因此,这些平台不延伸到组件层面并且它们也不允许动态指配IPC资源、硬件支持能力或多节点路由等,也不能允许IPC资源的动态指配。对于更低能耗和更少系统等待时间的需求,在现有技术中需要一种IPC网络,其能够提供IPC节点的智能锁定,从而当在IPC系统中寻找能够提供所需业务的处理器时,具有较少的浪费时间和较少的能耗。


在所附权利要求中特别给出本发明的相信是新颖的特征。参考以下说明,结合附图可以很好地理解本发明,在附图中相似的附图标记指代相似的组件,附图中图1显示了根据本发明的实施例的IPC网络的图。
图2显示了根据本发明的实施例的IPC栈。
图3显示了根据本发明的实施例的IPC组件IPC指配。
图4显示了根据本发明的实施例的主IPC表。
图5显示了根据本发明的实施例的信道指配的图。
图6显示了突出根据本发明的实施例在IPC客户端初始化例程期间涉及的步骤的图。
图7显示了突出根据本发明的实施例在IPC客户端初始化期间涉及的步骤的图。
图8显示了根据本发明的实施例的IPC封装的第一层面的图。
图9显示了突出在根据本发明的实施例的IPC组件初始化期间采取的步骤的图。
图10显示了突出在根据本发明的实施例的组件初始化期间采取的步骤的图。
图11显示了根据本发明的实施例,在IPC客户端和IPC服务器之间的IPC数据传递。
图12显示了根据本发明的实施例的IPC数据报头的图。
图13显示了在根据本发明的实施例的IPC数据请求期间采取的步骤的图。
图14显示了根据本发明的实施例的IPC网络。
图15显示了根据本发明的电子设备,诸如无线电通信设备。
图16和17显示了根据本发明实施例的出站流的图。
图18显示了根据本发明的实施例的入站流的图。
图19显示了根据本发明实施例的IPC网络的图。
图20显示了一流程图,其突出了在根据本发明执行节点的智能锁定时采取的一些步骤。
图21显示了根据本发明的实施例的IPC网络。
具体实施例方式
尽管由申请文件通过限定本发明特征的权利要求(其被认为是新颖的)作出结论,但是应当认为,通过以下说明并结合附图可以更好地理解本发明。
本发明的IPC对于在系统中操作的不同处理器所需要的彼此通信提供了支持。例如,在包括应用处理器(AP)和基带处理器(BP)的无线电通信设备中使用的双处理器(或多处理器)无线电体系结构中,IPC以有效的方式对于处理器所需要的彼此通信提供了支持。IPC提供该支持,而无需对AP或BP的设计施加任何约束。
IPC允许采取IPC作为其处理器间通信栈的任何处理器在一起共存并且操作,就好像这两个处理器实际上在共享公共操作系统和存储器的相同处理器内核上运行一样。随着在通信设备中使用多个处理器成为规范,本发明的IPC提供了不同处理器之间的可靠通信。
IPC硬件提供了将不同处理器与IPC网络结合的物理连接。在本发明的一个实施例中,数据分组优选地在不同主机之间异步地传输。连接至IPC网络的处理器使它们的物理和逻辑地址被静态地或动态地指配(例如,IPC地址)。而且,由于在本发明的一个实施例中,数据分组可以在IPC网络内部的任一方向中流动,所以它们需要携带其试图达到的处理器的目的地地址。优选地,还使用现有的循环冗余检查(CRC)技术来检查分组。尽管本发明的IPC网络的网络活动可能与在使用IP传输层的互联网网络(例如传输控制协议/互联网协议(TCP/IP)网络)上建立的那些网络活动有些相似之处,但是本发明的IPC不像TCP/IP网络中那样被划分为具有网关的较小网络。
现在参考图1,显示了根据本发明的实施例的IPC网络100。IPC网络100包括多个IPC客户端102-106,以及IPC服务器108,该IPC服务器108使用不同的IPC物理链路联接至IPC客户端102-106,其中作为说明性的例子,不同的IPC物理链路诸如共享的存储器110、通用异步接收机/发射机(UART)112和通用串行总线(USB)114。应当注意,对于本发明的IPC,IPC客户端102-106可以与当前IPC服务器108协商以交换角色。如果IPC客户端102-106协商成为IPC服务器并且成为新的IPC服务器,那么给定IPC服务器中的改变,全部剩余的IPC客户端被指令改变服务器的IP地址。
在图2中,显示了根据本发明的实施例的IPC服务器108(或IPC客户端102-108)的IPC栈200。IPC栈200被设计为集成在操作系统(OS)中并且提供对于组件业务量的处理器间通信需求的支持。IPC栈由以下三个主层构成(1).IPC表示管理器(202)-这个层用于翻译不同系统组件(例如,软件线程)之间的不同数据类型。
(2).IPC会话管理器(204)-这个层是对于IPC栈和全部系统组件之间的传入/传出IPC业务量的中央储存库。IPC会话管理器204具有若干功能对于共同参与的IPC组件指配组件ID;判定IPC数据是否需要被封装;路由IPC数据,终止IPC业务量;为IPC处理器设置保持器;提供IPC地址,指配及鉴权IPC客户端等。
IPC传输层Transport Layer(208)-位于IPC会话管理器(层)204之内,IPC传输层208提供了非常基本的循环冗余检查,用于在不同处理器之间传输IPC数据。另外,IPC传输层208负责将IPC消息路由至它们在IPC网络100上的最终目的地。传输层的路由功能仅仅在IPC服务器上启用。
IPC路由器模块(210)-将IPC数据传输至目的组件(未显示)。传入IPC消息除了携带其它信息之外,还携带始发者组件ID、IPC消息操作码,诸如音频和调制解调器。注意到,根据本发明的实施例,唯一的操作码被指配给每一组件/软件线程(例如,参见图5中的502),诸如联接至IPC网络的音频和调制解调器。IPC会话管理器204依靠路由器模块210来将IPC数据发送到正确的(一个或多个)组件。
(3).设备接口层(206)-负责管理IPC物理到逻辑的IPC信道。
它的主要功能是完全抽取IPC硬件,使得栈IPC变为独立于硬件。设备接口层206管理下面的IPC链路的物理带宽,以支持全部IPC逻辑信道。在传入路径中,设备接口层206从不同的物理信道110-114拾取数据并将它们向上传递到IPC栈的其它部分。在传出路径上,设备接口层206通过将IPC逻辑信道发送到合适的物理信道上,而管理它们的数据负载。设备接口层206还在将属于相同IPC信道的IPC分组发送至IPC硬件之前,链接它们。在IPC会话管理器204和IPC设备接口层206之间预协商信道需求。设备接口层206规定了硬件端口,该硬件端口进一步给IPC客户端102-106提供了设备接口。
参考图3,显示了IPC组件ID指配例程。任何希望参与IPC通信的新组件必须首先在步骤302向它的IPC会话管理器(例如,会话管理器204)请求IPC识别编号(ID)。然后,本地会话管理器(例如,位于组件所联接至的客户端中的会话管理器)将向IPC服务器的会话管理器警告新的IPC组件,并且在步骤304中将提供组件ID指配。根据本发明的实施例,组件ID是动态的,并且可以由会话管理器(例如,服务器的会话管理器)重新指配。主IPC服务器位置最有可能在主AP上。每一IPC节点优选地将具有唯一的IPC节点ID,并且会话管理器将在其数据库中对于每一参与的IPC节点保存以下信息-IPC节点类型例如,特定的BP或AP、无线局域网(WLAN)AP等-IPC地址IPC节点的IPC地址。
-数据类型IPC节点的数据类型-操作码列表这是组件已经预订的全部IPC消息操作码的列表。
-组件ID全部组件ID的列表。
现在参考图4,其中显示了IPC栈以及全部主IPC表。动态路由表402包括节点类型(处理器类型)、IPC地址/端口#信息、数据类型和预订列表。预订列表包括在特定节点上IPC支持的全部消息操作码的列表的指针。组件路由表404包括将操作码信息与预订至每个特定操作码的全部组件链接的信息。最后,信道资源表406包括每个信道ID与物理信道ID列表的链接。
在图5中,显示了根据本发明的IPC栈如何为诸如软件线程(例如音频等)这样的组件提供IPC信道的框图。在步骤504中,组件502首先请求IPC信道。在步骤506中,图5中显示的会话管理器在使用所定义的API与设备层协商组件的请求。然后设备层(设备接口)请求硬件资源,例如数据信道508。在步骤510中,图5所示的会话管理器响应于该请求,向请求者授权IPC信道。接下来,组件502在指配的信道508上发送其数据。然后设备层将数据转发至IPC网络。逻辑到物理信道ID的映射是IPC设备接口的功能。
现在参考图6,IPC客户端初始化中的第一个步骤是在IPC客户端602和IPC服务器604之间发送登记请求(步骤606)。然后在步骤608中,IPC服务器604鉴权IPC客户端602的请求。随后在步骤610中,将IPC地址发送到IPC客户端并完成登记。在步骤612中,IPC客户端的会话管理器将其动态路由表的复本发送至IPC服务器。
图7中显示了在IPC客户端初始化处理期间采取的更具体的步骤。
在步骤702中,客户端会话管理器(在表中显示为会话(客户端))将配置请求发送至IPC服务器的会话管理器(在表中显示为会话(服务器))。在步骤704中,由IPC服务器的会话管理器请求鉴权。然后,在步骤706中执行在IPC客户端和IPC服务器之间的鉴权。
配置请求中的参数包括节点类型和数据类型。会话服务器响应于步骤702中的配置请求,为请求者指配IPC地址。如果不存在用于请求者的动态路由表,它还建立该动态路由表。然后,在步骤708中它向请求者发送配置指示。配置指示参数包括服务器的IPC地址和客户端的新指配的IPC地址。
响应于接收到配置指示,附装于会话客户端的组件可以向客户端会话管理器请求控制/数据。然后在步骤710中,会话客户端将配置指示确认消息发送至会话服务器。“配置指示确认”消息没有参数。一旦接收到步骤710中的配置指示确认消息,会话服务器就可以启动到新配置的会话客户端的IPC流。然后在步骤712和714中,会话服务器将配置更新消息发送至会话客户端。这导致在步骤716和718中,图7中显示的这两个会话客户端更新它们各自的动态路由表(未显示)并将配置更新确认消息发送至会话服务器。一旦接收到配置更新确认消息,会话服务器就确定全部IPC参与者都已经被更新。
当分组被IPC会话管理器接收时,它成为包括源组件ID、目的地ID、信道ID和BP或AP类型的数据形式。如果没有插入目的地ID,那么IPC会话管理器将添加目的地组件ID。IPC会话管理器还将插入IPC地址。是IPC会话管理器根据接收的消息操作码而发现目的地ID。目的地ID基于查询表。每一次组件预订新的IPC消息操作码(例如,音频组件通过向IPC会话管理器发送请求而预订音频消息)时,这个查询表都被动态更新。
在图8中,显示了根据本发明的实施例,在组件和其IPC会话管理器之间的通用目的地ID发现序列期间的事件顺序。在步骤802中,组件发送其源ID(但没有目的地ID)、目的地BP或AP的类型、以及包括报头和数据的IPC数据。在步骤804中,IPC会话管理器查看IPC数据报头操作码和目的地BP或AP的类型,以查询相应的动态路由表并找到正确的目的地地址。在步骤806中,IPC会话管理器插入组件的IPC地址并将其向下发送至设备层。
在图9中,显示了在IPC组件初始化期间采取的典型步骤。一旦BP已经由图9中所示的IPC服务器配置,它就允许组件,诸如组件902预订不同的业务。在步骤904中,组件将自己预订功能,诸如音频、视频等。然后,组件预订信息被发送至IPC会话管理器,用于组件ID的创建(如果还没有指配ID)并为特定的IPC地址创建或更新动态路由表(步骤906)。在步骤908中,会话管理器以来自步骤906的信息更新IPC服务器。在步骤912中,动态路由表的确认被IPC服务器发送至IPC客户端。一旦服务器被警告,新的动态路由表就在步骤910中更新并广播至全部参与的处理器。
在图10中,在组件(客户端)1002、也称为客户端会话管理器的会话(客户端)1004以及也称为服务器会话管理器的会话(服务器)1006之间,显示了相同的组件初始化过程。由组件(客户端)1002发送步骤1008中的组件配置请求。响应于该请求,客户端会话管理器1004与其设备层(未显示)协商逻辑信道。客户端会话管理器1004还指配组件ID并将新的操作码列表添加至其动态路由表(未显示)。在步骤1010中,客户端会话管理器1004发送配置应答,该配置应答包括组件ID和信道ID作为参数。响应于该配置应答,组件(客户端)1002从客户端的会话管理器1004接收其ID和信道ID。
一旦客户端会话管理器1004在步骤1010应答步骤1008中的配置请求,客户端会话管理器1004就在步骤1012中发送配置更新请求至会话服务器1006。用于配置更新请求的参数是动态路由表中已经作出的任何新的改变。会话管理器对于该IPC地址更新动态路由表。然后,在步骤1016中服务器会话管理器1006向全部IPC客户端发送配置更新,而它在步骤1014中向IPC客户端发送配置更新指示。服务器的会话管理器1006确定IPC服务器已经利用被发送的改变而更新了其路由表。
步骤1016的配置更新消息包括动态路由表作为(一个或多个)参数,在步骤1018中,会话服务器1006在该配置更新消息中更新动态路由表并发送配置更新确认消息。然后,会话服务器1006确定全部IPC参与者已经被更新。
IPC会话管理器确定传入和传出IPC分组的路由路径。传出分组的路由由组件的IPC地址确定。如果发现目的地地址是本地处理器的地址,那么在会话管理器内部执行IPC到操作系统(OS)的映射。如果发现目的地地址是本地IPC客户端的地址,那么分组被发送至IPC栈,用于进一步处理(例如,封装)。注意,如果目的地组件与发送IPC分组的组件位于相同的处理器上,那么不需要封装并且通过正常的OS消息呼叫(例如,Microsoft Message Queue等)传递该分组。以这种方式,组件不必担心修改它们的消息输入方案。它们仅需要将它们的消息登入方法从OS特定的设计改变为IPC呼叫。
对于传入的分组,如果消息的目的地地址不等于IPC服务器的地址,那么传入的分组被路由至合适的IPC客户端。传入的分组的路由由IPC服务器的会话管理器处理。否则,消息被取决于组件目的地ID是否被设置为有效组件ID或OXFF而被转发至正确的一个组件或多个组件。
IPC路由器模块将IPC数据传输至目的地组件。传入的IPC消息除了其它信息之外,还携携带始发者组件ID和IPC消息操作码,例如音频、调制解调器等的操作码。IPC会话管理器依赖于它的组件路由表,发送IPC数据至正确的(一个或多个)组件。动态路由表和组件路由表都由IPC服务器/客户端更新。
在加电期间,每一组件必须将自己登记至它的会话管理器,以获得IPC组件ID。另外,它还必须预订传入的IPC消息,诸如音频、调制解调器等。该消息被存储在组件路由表中,以供IPC会话管理器使用。
如图11所示,当组件1102在步骤1104将其数据请求发送至IPC会话管理器时,在目的地IPC节点(例如,BP)进行检查。如果IPC节点不支持IPC消息操作码,则错误应答返回至组件1102。除了错误应答,IPC会话管理器还返回对于能够接收该特定操作码的全部IPC节点的更新。由组件决定它将消息改发至哪个IPC节点。如果会话管理器确定目的地组件位于IPC网络中而不是本地处理器中,那么在数据在IPC网络上发送之前,IPC会话管理器1106以IPC报头信息封装数据。
在图12中,显示了根据本发明的实施例的IPC数据报头1202。该报头包括源IPC地址和目的地IPC地址、源端口、由IPC路由器提供的目的地端口、由IPC传输器提供的长度及检查和信息、以及由会话管理器提供的源IPC组件和目的地IPC组件。消息操作码、消息长度和IPC数据由组件1204提供。
图13中显示了根据本发明的实施例的典型的IPC数据请求。在步骤1302中,组件发送更新请求。组件更新参数优选地包括节点类型和操作码。组件搜索支持其目的地操作码的节点类型。如果节点类型等于0xFF,则会话管理器将组件信息发送至关于全部IPC参与者的全部节点表。如果操作码字段等于0xFF,则会话管理器向组件发送属于特定节点类型的操作码列表。另一方面,如果操作码具有特定的值,则会话管理器向组件发送真值或假值,其对应于节点类型支持还是不支持该特定操作码。
在步骤1304,组件更新指示被发送至组件。如果节点类型等于0xFF,则节点表被返回至组件。如果操作码字段等于0xFF,则操作码的列表被返回至组件。然而,如果操作码是特定的值,则返回真或假消息。在步骤1306,作出组件数据请求。关于组件数据请求的参数包括节点类型、IPC消息操作码、IPC消息数据、信道ID和组件ID。
在组件数据请求中,会话管理器检查节点类型,以确定是否支持该操作码。如果节点类型不支持该操作码,则在步骤1308发送组件更新指示。然而,如果节点类型支持该操作码,则在步骤1310将数据请求发送至设备层。数据请求参数包括IPC消息、信道ID和IPC报头。
设备层调度基于信道ID发送数据请求消息。设备层基于端口#报头信息选择IPC硬件。一旦提交了数据,就在步骤1312中将数据确认消息发送至会话管理器。在步骤1314,会话管理器将组件数据确认消息发送至组件。组件可以在发送更多的IPC消息之间等待该确认。一旦接收到该数据确认,组件就可以发送下一IPC消息。
在步骤1316,设备层发送数据指示消息,其包括IPC消息数据和IPC报头。会话管理器检查消息的目的地IPC报头,并且如果该报头与本地IPC地址不同,则会话管理器发送(路由)该消息至正确的IPC节点。在步骤1310,会话管理器发送数据请求至具有保留信道ID的设备层。会话管理器检查目的地组件ID,并且如果它等于0xFF,则路由该消息至预订了该操作码的全部组件。在步骤1318,会话管理器发送组件数据指示消息,并且组件接收IPC数据。
IPC栈为了通信而使用在全部参与的IPC节点之间的保留控制信道。在加电时,IPC服务器的会话管理器使用这个链路,以将消息广播至IPC客户端或者反之。在正常操作期间,这个控制信道被用于在全部AP和BP之间携带控制信息。
在图14中,显示了位于IPC栈和IPC硬件之间的控制信道1402-1406。当在不同的IPC硬件之间发送数据时,控制信道信息1408也同数据分组1410一起被发射。IPC客户端初始时在IPC控制信道上广播它的配置请求。IPC服务器接收该广播并以该客户端的IPC地址作出响应。这个IPC地址变为与该特定处理器(AP或BP)的动态路由表相关联。
IPC应用程序接口(APIs)下面列出了用于本发明的IPC协议的一些API。
1).到IPC会话管理器的组件接口CreateComponentInst()在IPC会话管理器中创建组件数据库。在属于IPC地址的动态数据路由表中使用诸如组件数据类型这样的信息以及对消息操作码的预订。
OpenChannelKeep()打开IPC信道,并且如果一条IPC信道可用,则发出ChannelGrant()。保留信道,直至发出CloseChannel()。组件将QoS请求发送至IPC会话管理器。如果还没有指配组件ID(例如,ChannelGrant()),则IPC信道指配组件ID。
OpenChannel()打开IPC信道,并且如果一条IPC信道可用,则发出ChannelGrant()。
参数与用于OpenChannelKeep()的相同。
OpenChannelWThru()打开IPC信道,并且如果一条IPC信道可用,则发出ChannelGrant()。这是对于写入通过信道的请求,其表示在这条信道上关断封装(例如,Non UDP AT命令)。
CloseChannel()请求关闭IPC信道。组件不再需要该信道。然后释放资源。
ChannelGrant()信道被授权给请求者。如果还没有指配信道ID,则由IPC会话管理器指配信道ID。
ChannelError()发生了信道错误。信道被关闭并且通知请求者。
ChannelDataIndication()向请求者警告要传送信道上的数据。这个消息由IPC表示管理器发送至目标组件。它还包括控制信道数据。
DataChannelRequest()请求者希望在打开的信道上发送数据。它还包括控制信道数据。
ChannelClose()请求关闭IPC信道。信道不活动计时器期满,并且与超时相关联的信道关闭。它也可能是由于信道错误而引起的。
2).到/自IPC设备接口的IPC会话管理器OpenChannel()打开逻辑IPC信道,并且如果一条逻辑IPC信道可用,则发出ChannelGrant()。IPC会话管理器将信道优先权请求发送至IPC设备接口管理器。
CloseChannel()请求关闭IPC逻辑信道。组件决定不再需要该信道。
ChannelGrant()一条逻辑信道被授权给请求者。
ChannelError()发生了信道错误(例如,在传入数据上的CRC故障或者物理信道故障)。
ChannelDataIndication()请求者被警告要发送信道上的数据。
DataChannelRequest()请求者希望在逻辑信道上发送数据。
ChannelClose()请求关闭IPC信道。信道不活动计时器期满,并且与超时相关联的信道关闭。它也可能是由于信道错误而引起的。
3).到IPC表示管理器的IPC会话管理器ChannelDataIndication()请求者被警告要传送信道上的数据。该信息要以正确的数据格式转发至目标组件。
4).IPC硬件/IPC栈接口OpenChannel()打开物理IPC信道,并且如果一条物理IPC信道可用,则发出ChannelGrant()。IPC会话管理器将信道优先权请求发送至IPC硬件。
CloseChannel()请求关闭IPC物理信道。该组件不再需要该信道。
ChannelGrant()物理信道被授权给请求者。
ChannelError()发生信道错误(例如,传入数据上的CRC故障或物理信道故障)。
ChannelDataIndication()请求者被警告要发送信道上的数据。
DataChannelRequest()请求者希望在物理信道上发送数据。
ChannelClose()请求关闭IPC信道。信道不活动计时器期满,并且与超时相关联的信道关闭。它也可能是由于信道错误而引起的。
在图15中,显示了电子设备的框图,该电子设备诸如是无线电通信设备(例如,蜂窝电话等)1500,其具有使用IPC网络彼此通信的基带处理器(BP)1502和应用处理器(AP)1504。本发明的IPC协议提供了在诸如通信设备这样的系统中的多个处理器之间的通信。IPC允许移动应用(MA)客户端(例如iDENTMWLAN)登记到MA服务器,诸如个人通信系统(PCS)应用,并且为两个MA提供了自由通信的手段而对于取决于其自身MA内部的软件体系结构、操作系统、软件等没有任何限制。
IPC协议允许将任何IPC相符的MA动态添加到用于通信的IPC链路中。于是,形成了IPC网络而无需依赖任何编译时间或者无需消耗任何其它软件。本发明的IPC给出了关于软件组件与IPC栈通信的标准途径,并且栈之下的硬件也被抽取,使得组件可以选择不同的链路用来通信。
现在参考图16,显示了三个组件,诸如软件线程1602、1604和1606,还显示了它们如何建立出站流。例如软件现场1602发送对于预定QoS1608的请求1612并提交它的操作码预订列表1610。接下来,响应于消息1618,软件线程1602被指配了信道ID 1614和组件ID 1616。根据本发明的实施例,诸如软件线程1602、1604和1606这样的组件被取决于它们的需求而指配了IPC硬件资源。可以取决于系统需求而动态安装或卸载组件1602、1604和1606。
在图17中,组件1602、1604和1606在它们所指配的信道上发送IPC数据,所述信道诸如是用于软件线程1602的信道1702。组件1602、1604和1606提交它们的数据以及目标IPC节点,尽管当没有指定节点时组件也可以将它们的消息广播至全部IPC节点。组件1602、1604和1606不需要知道目的地组件ID,也无需知道它们相关联的信道以及它们的IPC地址。关于入站流,消息操作码识别组件。例如,在图18中,组件1602、1604和1606由消息操作码识别。通过先前讨论的组件路由表发现组件ID。IPC会话管理器将传入的数据路由到已经预订了消息中的IPC操作码的全部组件。
IPC节点的智能锁定为了提供改进的开销效率和能量管理,根据本发明的IPC协议/网络基于IPC网络内部操作的处理器状态,提供节点(任何IPC服务器或客户端处理器,在无线电环境中也称为MA)的智能锁定。例如,当MA试图通过使用智能锁定而在IPC网络上找到对于特定业务(例如,MP3解码器等)的支持时,源应用程序将找到能够以最有效的方式提供业务的处理器或MA。这对于MA应用程序提供了改进的电池寿命和较少的等待时间。
在一个实施例中,正在请求的或源MA将向IPC服务器的IPC栈发送消息,该消息带有对应于所请求的业务(例如MP3业务)的特定操作码。然后,IPC栈将检查其操作码表以确定所请求的业务,并且然后IPC栈将检查其预订列表以了解哪些MA/节点能够支持所请求的业务,在这个特定实例中,是执行MP3解码。
作为描述性的例子,如果IPC网络上的3个MA可以提供MP3解码业务,但是一个处在深度睡眠模式中,另一个忙于执行其它任务且没有用于执行MP3解码所必需的未使用处理马力,而第三个MA可以执行MP3处理,则IPC栈将消息发送回正在请求的MA并根据能够执行MP3解码业务的MA的当前状态而通知它哪个MA可以执行MP3解码。
如果正在请求的MA并不特别地需要使用特定MA,则它将使用IPC服务器的IPC栈已经推荐的MA。以这种方式,将最好地利用整个IPC网络上的资源。位于IPC服务器的IPC栈中的是具有操作在IPC网络中的每一MA(节点)的当前操作状态的表。该表将记录哪些MA/IPC客户端当前处于睡眠模式或者忙于执行其它任务。与操作码和预订列表一起,操作状态表将使IPC网络知道全部MA的当前操作条件,包括它们的业务量负载和能力、以及它们当前是否在睡眠模式。
为了提供在IPC服务器中的操作状态表中存储的必需信息,如果IPC网络中的MA希望进入睡眠模式,它将通过发送控制消息或API到IPC服务器使它知道自己将要进入睡眠模式,而警告IPC服务器。
当MA醒来并返回正常操作时,它们也将警告IPC服务器,使得使用表可以被更新。对于每一MA的业务量负载信息也由MA提供给IPC服务器,例如在MA开始诸如视频解码这样的任务之前,它将发送消息到IPC服务器,以通知IPC服务器它将开始任务并且它的一定量的(例如,20%)处理能力当前被使用。可替换地,当节点达到一定的计算使用阈值级别时,例如当它们达到计算能力的50%或者它们能够周期性地每隔几分钟提供它们的使用级别时,节点能够向IPC服务器报告。
为了执行本发明的需求,IPC服务器,诸如图1所示的IPC服务器108将记录全部节点(IPC客户端102-106)的操作条件,并且将使用操作条件信息、以及IPC服务器108从全部IPC客户接收的动态路由表信息、还有组件路由表,来对于哪一节点更好地适于处理业务请求作出智能判定。
现在参考图19,其中显示了流程图,其中突出了根据本发明的实施例所采取的一些步骤。在步骤1902,需要执行业务请求的处理器(MA)向IPC服务器(例如,IPC服务器108)发送业务请求消息。在步骤1904,IPC服务器将使用其操作码列表比较操作码,并且确定正在请求的是哪种业务,并且将审核(一个或多个)预订列表,以确定哪些节点(MA)能够在IPC网络内提供所请求的业务。在步骤1906,IPC服务器将从能够提供所请求业务(例如,MP3解码)的那些MA中确定哪一个处于处理该请求的最佳操作状态。
然后,IPC服务器审核它的被频繁更新的操作状态表,并确定哪个MA处于处理业务请求的最佳条件。例如,情况可能是,在能够支持所请求的业务的三个MA中,一个处于睡眠模式,一个从资源的观点看完全被占用用于处理任何其它业务请求,一个可能具有足够的能力处理该请求。在步骤1908中,IPC服务器将消息发送至业务请求者,向它通知哪个MA将处理该业务请求。IPC服务器还能够在注意到所选择的MA正在执行业务的同时更新其操作状态表,并相应调节其操作能力(例如,注意到MA正使用其运算能力的10%执行所请求的业务)。
在图20中,显示了操作状态表2000,诸如可以在IPC服务器的IPC栈中发现的操作状态表。操作状态表将记录当前在IPC网络上的全部处理器(节点)2010以及它们相应的操作状态2012。作为描述性的例子,操作状态表2000能够在行2002中包括关于节点1的信息以及它的当前操作状态,并且在这个情况中,节点1处理器处于睡眠模式。
来自节点1处理器的操作状态可以被使用IPC控制消息发送至IPC服务器。在这个情况中,节点1处理器将控制消息发送至IPC服务器,令其知道它正在进入睡眠模式以例如保存能量。行2004显示节点2当前忙并且不能再处理任何业务请求。忙状态可以是由于这样的事实,即节点2处理器当前工作在一个或多个请求上并且没有任何其它可用计算能力来处理任何更多的请求。根据本发明的实施例的节点2处理器将频繁发送控制消息,通知IPC服务器它当前处理其它业务请求的能力怎样。
在行2006,显示节点3处理器当前可用于处理任何业务请求,因为它当前可能不在执行任何业务。在行2008,显示节点4处理器50%可用,但是其MP3解码能力不可用(例如,可能当前正在使用)。
所以,如果在这个特定实例中,业务请求者已经要求了MP3解码业务,则IPC服务器将首先找到IPC网络中能够处理MP3解码业务请求的全部节点(例如,节点1-4),然后它将搜索操作状态表2000,以确定哪一节点最适合处理该请求。在这个实例中,节点3将处于处理该业务请求的最佳条件。IPC服务器发送消息至业务请求者,通知它节点3将处理其请求。
在本发明的另一实施例中,业务请求者可以不仅仅通过发送具有对应于所请求业务的操作码的消息而发送对于特定业务的请求,而是还能够通知IPC服务器它希望特定的节点处理该请求。在这个特定情况中,如果例如业务请求者希望节点4处理业务请求,则IPC服务器能够保持检查其操作状态表直至发现节点4可用,并且在此刻分配节点4处理该业务请求。
在图21中,显示了根据本发明另一实施例的菊花链IPC网络2100。IPC网络2100包括IPC服务器2100和多个节点,诸如客户端1-3(2102-2106)。客户端2(2104)包括菊花链子客户端组2.1和2.2(2108和2110)。根据本发明的实施例,由于网络2100具有子客户端,IPC服务器2112能够周期性地向客户端2(2104)例如发送当前操作状态表信息,诸如操作状态表2000。客户端2(2104)能够在其存储器中存储操作状态表信息并使用该信息将节点分配给由其子客户端2108和/或2110作出的业务请求。以这种方式,由子客户端2108或子客户端2110发送的业务请求可以被客户端2(2104)处理,而无需IPC服务器2100作出业务分配决定。
如果客户端2(22104)处理来自子客户端2108或2110的业务请求,并通知它哪个节点用于所请求的业务,那么它必须立即通知IPC服务器2100,使得它能够更新其操作状态表并保持当前在网络中的全部节点的操作状态信息。使操作状态表信息“降落”到菊花链IPC网络的较低层面允许更快地作出业务请求判定,因为业务请求不必经过多个层。可以发送操作状态表信息,以基于预定的基础而选择某些客户端,所述预定的基础诸如当对于IPC服务器2112中的操作表的更新已经被更新时(例如,节点(客户端)中的一个已经进入睡眠并且通知了IPC服务器2112),或者在已经经过了预定时间段之后。
尽管已经说明和描述了本发明的优选实施例,但是可以清楚地看出,本发明不限于此。对于本领域技术人员可以得到多种修改、改变、变型、替换和等同物,而不脱离所附权利要求中所限定的本发明。
权利要求
1.一种处理器间通信(IPC)网络,包括IPC服务器;联接至所述IPC服务器的一个或多个IPC客户端;并且所述IPC服务器包括操作状态表,其记录所述一个或多个IPC客户端的操作状态,所述IPC服务器在接收到业务请求时,确定在所述一个或多个IPC客户端中最适合处理所述业务请求的IPC客户端。
2.根据权利要求1所述的IPC网络,其中所述业务请求包括向所述IPC服务器通知正在请求的业务的操作码。
3.根据权利要求2所述的IPC网络,其中所述IPC服务器在接收到所述操作码时,确定在所述一个或多个IPC客户端中能够支持所请求业务的IPC客户端。
4.根据权利要求3所述的IPC网络,其中所述一个或多个客户端向所述IPC服务器发送消息,该消息由所述IPC服务器用来更新所述操作状态表。
5.根据权利要求4所述的IPC网络,其中所述业务请求者可以请求特定的节点用于处理所述业务请求,并且所述IPC服务器将监控所述操作状态表,以确定所述特定节点可用于处理所述业务请求的时间。
6.一种用于在具有一个或多个节点以及联接至所述一个或多个节点的IPC服务器的处理器间通信(IPC)网络中提供节点智能锁定的方法,包括以下步骤(a)在所述IPC服务器处接收业务请求;(b)确定所述一个或多个节点中能够处理所述业务请求的节点;(c)使用位于所述IPC服务器内的操作状态表,从已经在步骤(b)中确定能够处理所述业务请求的所述一个或多个节点中选择处理所述业务请求的最佳一个节点。
7.根据权利要求6所述的方法,进一步包括(d)向所述业务请求者发送消息,通知它将处理所述业务请求的节点。
8.根据权利要求6所述的方法,其中所述操作表包括关于所述一个或多个节点中每一个的当前操作状态的信息,并且所述IPC服务器基于所述操作状态信息,确定所述一个或多个节点中最适合执行由所述业务请求所请求的所述业务的节点。
9.根据权利要求6所述的方法,其中所述业务请求者发送所述业务请求的步骤(a)能够指定其希望执行所述业务的所述一个或多个节点中的节点,并且所述IPC服务器能够确定所述被指定的节点当前是否可用于处理所述业务请求。
10.根据权利要求9的方法,其中如果所述IPC服务器确定由所述业务请求者所指定的所述节点当前不能执行所述所请求的业务,则所述IPC服务器将频繁检查所述操作状态表,直到所指定的节点可用于执行所述业务,在该点处,所述IPC服务器将发送消息到所述业务请求者,通知它所述所请求的节点可用于执行所述所请求的业务。
11.根据权利要求6所述的方法,其中所述一个或多个节点周期性地发送消息到所述IPC服务器,所述消息更新所述操作状态表中的所述信息。
全文摘要
一种IPC协议/网络,其允许节点的智能锁定,以减小开销,并且提供了改善的能量管理。所述IPC服务器记录IPC网络节点的行动,并且使用操作状态表(2000),它能够确定能够处理业务请求(例如,MP3解码)的节点。通过记录网络内节点的当前操作条件,处理器可以具有更好的电池寿命,并且改善了应用程序的等待时间。所述IPC服务器将不仅记录哪个节点能够处理哪种业务,而且基于其对于每个节点操作状态的了解,它还可以知道哪个节点能够处理该业务请求。
文档编号G06F15/173GK1864146SQ200480028937
公开日2006年11月15日 申请日期2004年9月27日 优先权日2003年10月3日
发明者沙尔贝勒·克哈万德, 吴剑平, 琼·克哈万德, 刘斌 申请人:摩托罗拉公司(在特拉华州注册的公司)
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1