CN103597784A - 用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统 - Google Patents
用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统 Download PDFInfo
- Publication number
- CN103597784A CN103597784A CN201280027321.XA CN201280027321A CN103597784A CN 103597784 A CN103597784 A CN 103597784A CN 201280027321 A CN201280027321 A CN 201280027321A CN 103597784 A CN103597784 A CN 103597784A
- Authority
- CN
- China
- Prior art keywords
- slave unit
- node
- switching fabric
- bandwidth
- route
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/15—Interconnection of switching modules
- H04L49/1553—Interconnection of ATM switching modules, e.g. ATM switching fabrics
- H04L49/1576—Crossbar or matrix
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Abstract
本发明描述一种用于动态地创建和服务便携式计算装置“PCD”的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统。所述系统和方法包含接收包括主装置-从属装置对的客户端请求,以及进行对对应于所述主装置-从属装置对的从属装置的搜索。为交换结构内和跨交换结构的通信创建路线,且所述路线对应于所述主装置-从属装置对。对应于所述所创建的路线的一个或一个以上句柄或阵列可存储在存储器装置中。接下来,可设定跨所述路线的带宽。在设定跨所述新创建的路线的所述带宽之后,可使用所述所创建的路线来服务发起所述主装置-从属装置对的所述客户端请求。进行对所述从属装置的所述搜索可包含比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符。交换结构内和跨交换结构的所述搜索还可包含检视结构路线检查表,以寻找可在交换结构内询问的从属装置。
Description
技术领域
背景技术
便携式计算装置(“PCD”)在个人和专业级别上正成为人们必不可少的东西。这些装置可包含蜂窝式电话、便携式/个人数字助理(“PDA”)、便携式游戏控制台、便携式导航单元、掌上型计算机和其它便携式电子装置。
PCD可运行各种类型的软件,用于提供各种功能和特征。举例来说,PCD可运行娱乐软件,其可提供例如观看视频和玩视频游戏等功能。PCD还可支持其它类型的软件,例如商务软件或书写软件,例如电子表格、电子邮件和/或文字处理软件。
通常,上文所述的在PCD上运行的软件需要来自作为主装置-从属装置对链接在一起的各种硬件的动作。举例来说,主装置-从属装置对可包含充当主装置的移动显示处理器,其向例如外部总线接口等从属装置发出命令。在常规PCD中,主装置-从属装置对之间的关系通常是静态的,且在PCD开始执行上文所述的软件时在运行时之前建立。
在常规PCD中,主装置-从属装置对之间的关系通常记录在在运行时之前创建的表中。所述表通常列出若干不同情境,用于支持对应于特定主装置-从属装置对的不同工作负载的不同带宽。
常规PCD的一个问题是当主装置-从属装置对存在于相对于彼此不同的交换结构中时,主装置-从属装置表变得非常复杂。所述表的另一问题在于其只能基于在创建所述表时设定的固定值来解决带宽需求。当为PCD引入新的主装置-从属装置对时,会出现额外的问题。新的主装置-从属装置对可能需要在PCD离线时写入的不动主装置-从属装置表的大量重写。
因此,此项技术中需要一种解决这些问题的方法和系统。具体地说,此项技术中需要一种用于在可存在于类似交换结构内和/或跨不同交换结构的硬件组件的运行时动态地创建主装置-从属装置对的方法和系统。此项技术中存在对在不使用不动表格的情况下在运行中或实时地计算和调整交换结构和总线的带宽的方法和系统的需要。
发明内容
本发明描述一种用于动态地创建和服务便携式计算装置(“PCD”)的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统。所述系统和方法包含接收包括主装置-从属装置对的客户端请求,以及进行对对应于所述主装置-从属装置对的从属装置的搜索。可为交换结构内和跨交换结构的通信创建路线,其对应于所述主装置-从属装置对。对应于所述所创建的路线的一个或一个以上句柄或阵列可存储在存储器装置中。接下来,可设定所述路线上的带宽。在设定跨所述新创建的路线的所述带宽之后,可使用所述所创建的路线来服务发起所述主装置-从属装置对的所述客户端请求。进行对所述从属装置的所述搜索可包含比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符。交换结构内和跨交换结构的所述搜索还可包含检视结构路线检查表,以寻找可在交换结构内询问的从属装置。
附图说明
在图中,相同参考标号在各个视图中始终指代相同部分,除非另有指示。对于具有例如“102A”或“102B”等字母符号表示的参考标号,字母符号表示可区分存在于同一图中的两个相同部分或元件。当参考标号意图包含在所有图中具有相同参考标号的所有部分时,可省略参考标号的字母符号表示。
图1是说明用于动态地创建和服务便携式计算装置(“PCD”)的交换结构内和跨所述交换结构的主装置-从属装置对的系统的示范性元件的功能框图;
图2是说明系统101的功能框图,系统101用于动态地创建和服务主装置-从属装置对,其包含驻存在每一处理器110中的内部芯片总线(“ICB”)驱动器模块103,所述ICB驱动器模块103有助于形成PCD100的交换结构内和跨所述交换结构的若干不同主装置-从属装置对;
图3是说明总线架构的交换结构的细节的功能框图;
图4是用于支持位于不同交换结构内的主装置-从属装置对之间的各种路线的节点图的图;
图5是图4中所说明的第一交换结构的主级别节点的第一路线检查表;
图6是图4中所说明的第二交换结构的主级别节点的第二路线检查表;
图7是说明用于动态地创建和服务便携式计算装置(“PCD”)的交换结构内和跨所述交换结构的主装置-从属装置对的方法的逻辑流程图;以及
图8是说明用于使用从属装置识别符来搜索从属装置的子方法或例程的逻辑流程图;
图9A说明示范性第一软件请求类型;
图9B说明示范性第二软件请求类型;
图9C是说明对应于图7的用于基于来自利用从图9A到9B中所说明的软件请求类型得出的Ib和Ab值的PCD的软件请求的当前需求动态地调整总线或交换结构设定的子方法或例程的逻辑流程图;
图9D是说明当通过所述系统和方法创建主装置-从属装置对时创建的句柄的图;
图10A是管理图1的便携式计算装置的资源的节点架构的第一方面的图;
图10B是管理图1的PCD的资源的节点架构的第二方面的总图;
图10C是管理图1的PCD的资源的节点架构的第二方面的细节图;
图10D是说明用于创建用于管理PCD的资源的节点架构的方法的流程图;
图10E是说明用于创建用于管理PCD的资源的节点架构的方法的图10D的延续流程图;
图11是说明用于接收PCD中的软件架构中的节点结构数据的图10D的子方法或例程的流程图;
图12是说明用于创建PCD的软件架构中的节点的图10D到10E的子方法或例程的流程图;
图13是说明用于创建PCD的软件架构中的客户端的图12的子方法或例程的流程图;以及
图14是说明用于相对于PCD的软件架构中的资源来创建客户端请求的方法的流程图。
具体实施方式
词语“示范性的”在本文中意味着“充当实例、个例或说明”。不必将本文中描述为“示范性”的任何方面解释为与其它方面相比为优选或有利的。
在此描述中,术语“应用程序”也可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件及补丁。另外,本文中所提到的“应用程序”还可包括本质上不可执行的文件,例如可能需要打开的文档或其它需要存取的数据文件。
术语“内容”还可包含具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件及补丁。另外,本文中所提到的“内容”还可包括本质上不可执行的文件,例如可能需要打开的文档或其它需要存取的数据文件。
如本描述中所使用,术语“组件”、“数据库”、“模块”、“系统”等意在指代计算机相关实体,不管是硬件、固件、硬件与软件的组合、软件,还是执行中的软件。举例来说,组件可为(但不限于为)在处理器上运行的进程、处理器、对象、可执行程序、执行线程、程序及/或计算机。作为说明,在计算装置上运行的应用程序和计算装置两者均可为组件。一个或一个以上组件可驻存在进程和/或执行线程内,且组件可位于一个计算机上且/或分布在两个或两个以上计算机之间。另外,这些组件可从上面存储有各种数据结构的各种计算机可读媒体执行。所述组件可例如根据具有一个或一个以上数据包的信号(例如,来自借助于所述信号与本地系统、分布式系统中的另一组件交互及/或跨越例如因特网等网络而与其它系统交互的一个组件的数据)借助于本地及/或远程过程而通信。
在此描述中,术语“通信装置”、“无线装置”、“无线电话”、“无线通信装置”和“无线手持机”可互换使用。随着第三代(“3G”)和第四代(“4G”)无线技术的出现,较大的带宽可用性已使更多的便携式计算装置能够具有更多种的无线能力。
在此描述中,术语“移动装置”(“PCD”)用以描述依靠有限容量电力供应器(例如电池)来操作的任何装置。尽管依靠电池操作的PCD已经使用了数十年,但随着第三代(“3G”)和第四代(“4G”)无线技术的出现,所耦合的可再充电电池的技术进步已使大量PCD能够具有多种能力。因此,PCD可为蜂窝式电话、卫星电话、寻呼机、个人数字助理(“PDA”)、智能电话、导航装置、智能本或阅读器、媒体播放器、前面所提到的装置的组合、具有无线连接的膝上型计算机,等等。
图1:用于动态地创建和服务PCD100的主装置-从属装置对的系统元件
参看图1,此图为用于实施用于动态地创建和服务交换结构内或跨交换结构的主装置-从属装置对的方法和系统的呈无线电话的形式的PCD100的示范性非限制方面的功能框图。如图所示,PCD100包含芯片上系统102,其具有多核中央处理单元(“CPU”)110A、图形处理器110B以及模拟信号处理器126。这些处理器110A、110B、126可耦合在一起。
CPU110A可包括第零核222、第一核224以及第N核226,如所属领域的技术人员所理解。在替代实施例中,作为使用CPU110A和图形处理器110B的替代,还可使用一个或一个以上数字信号处理器(“DSP”),如所属领域的技术人员所理解。
PCD100可包括由处理器110执行的内部芯片总线(“ICB”)驱动器模块103。所属领域的技术人员将认识到,每一ICB驱动器模块103可包括一个或一个以上软件模块,在不脱离本发明的情况下,其可分为各个部分,且由不同处理器110、126执行。
ICB驱动器模块103可负责主装置-从属装置对的动态创建和服务,以用于处理和支持应用程序模块105所发出的软件请求。可存在两种类型的ICB驱动器模块103:上层(“UL”)类型103A;以及下层(“LL”)类型103B。一般来说,UL ICB驱动器类型103A将通常由可支持各种应用模块105的一个或一个以上处理器110、126执行。LL ICB驱动器类型103B将通常由称为资源电力管理器107的一个硬件元件执行。
运行LL ICB驱动器103B的资源电力管理器107将通常负责应用和设定带宽值。这些带宽值将由资源电力管理器107应用于下文结合图2所述的一个或一个以上总线和/或交换结构。资源电力管理器107通常负责设定交换结构和总线的时钟速度以及从属装置的时钟速度。从属装置通常为支持来自运行应用模块105的主处理器110的请求的硬件组件。
与资源电力管理器107组合的ICB驱动器103A、103B允许在运行时为可存在于类似交换结构内和/或不同跨交换结构的硬件组件动态地创建主装置-从属装置对。ICB驱动器103A、B和资源电力管理器107可在运行中或实时计算和调整交换结构和总线的带宽。
在特定方面中,本文所描述的方法步骤中的一者或一者以上可由存储在存储器112中的可执行指令和参数实施,所述指令和参数包含ICB驱动器103A、B。形成ICB驱动器103A、B的这些指令可由CPU110、模拟信号处理器126以及资源电力管理器107执行。另外,处理器110A、126、存储器112、存储在其中的指令,或其组合可充当用于执行本文所述的方法步骤中的一者或一者以上的装置。
图1:PCD100的其它元件
如图1中所说明,显示器控制器128和触摸屏控制器130耦合到多核CPU110A。在芯片上系统102外部的触摸屏显示器132耦合到显示器控制器128和触摸屏控制器130。
图1还说明视频译码器/解码器(“编解码器”)134,例如逐行倒相(“PAL”)编码器、循序色彩与存储(“SECAM”)编码器、国家电视系统委员会(“NTSC”)编码器,或任何其它类型的耦合到多核中央处理单元(“CPU”)110A的视频编码器134。视频放大器136耦合到视频编码器134和触摸屏显示器132。视频端口138耦合到视频放大器136。如图2中所描绘,通用串行总线(“USB”)控制器140耦合到CPU110A。并且,USB端口142耦合到USB控制器140。订户身份模块(SIM)卡146也可耦合到CPU110A。此外,如图1所示,数码相机148可耦合到CPU110A。在示范性方面中,数码相机148是电荷耦合装置(“CCD”)相机或互补金属氧化物半导体(“CMOS”)相机。
如图1中进一步说明,立体声音频CODEC150可耦合到模拟信号处理器126。此外,音频放大器152可耦合到立体声音频CODEC150。在示范性方面中,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1展示麦克风放大器158可也耦合到立体声音频CODEC150。另外,麦克风160可耦合到麦克风放大器158。在特定方面中,调频(“FM”)无线电调谐器162可耦合到立体声音频CODEC150。并且,FM天线164耦合到FM无线电调谐器162。另外,立体声耳机166可耦合到立体声音频CODEC150。
图1进一步指示射频(“RF”)收发器168可耦合到模拟信号处理器126。RF开关170可耦合到RF收发器168和RF天线172。如图1中所示,小键盘174可耦合到模拟信号处理器126。并且,具有麦克风176的单声道耳机可耦合到模拟信号处理器126。另外,振动器装置178可耦合到模拟信号处理器126。图1还展示电力供应器180(例如电池)耦合到芯片上系统102。在特定方面中,所述电力供应器包含可再充电DC电池或从连接到AC电源的交流(“AC”)-DC变压器得到的DC电力供应器。
如图1中所描绘,触摸屏显示器132、视频端口138、USB端口142、相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声头戴式送受话器166、RF开关170、RF天线172、小键盘174、单声道耳机176、振动器178、热传感器157B以及电力供应器180在芯片上系统322外部。
图2是说明用于动态地创建和服务主装置-从属装置对的系统101的功能框图。所述系统包含上层(“UL”)内部芯片总线(“ICB”)驱动器模块103A,其通常驻存在每一处理器110中。ICB驱动器模块103A可帮助形成PCD100的交换结构内和跨所述交换结构的若干不同主装置-从属装置对。系统101还包含下层(“LL”)ICB驱动器103B,其通常驻存在资源电力管理器102内。
如上文所述,ICB驱动器模块103通常包括软件。然而,驱动器模块103可用硬件和/或硬件与软件的组合来实施。每一UL ICB驱动器模块103A可耦合到由相应处理器110执行的相应应用程序模块105。举例来说,第一UL ICB模块103A1可耦合到第一应用模块105A1和第二应用程序模块105A2。
应用程序模块105可包括PCD100可用的任何数目的不同类型的程序模块。举例来说,程序模块105可包含(但不限于)用于支持如视频游戏、音频文件和视频等娱乐编程的图形处理软件;用于支持如文字处理、电子邮件、电子表格、日历等商务应用程序的商务软件。其它程序模块105包含(但不限于)导航程序,例如全球定位卫星(“GPS”)程序、可下载的定制应用程序,例如用于购物、学习等。
在图2中,说明四个中央处理单元(“CPU”)110A、110B、110C和110N。每一CPU110可耦合到相应的交换结构107。下文将结合图3描述关于交换结构107的进一步细节。
第一交换结构107A可耦合到第一CPU110A和第二CPU110B、移动显示处理器110D、双数据速率同步动态随机存取存储器(“DDR SDRAM”)112、配置端口111以及资源电力管理器102。第二交换结构107B可耦合到第三CPU110C、动态存储器分配/存取(“DMA”)引擎109、资源电力管理器102、外部总线接口113以及数字信号处理器114。第三交换结构107N耦合到第四CPU110N、主硬件元件115以及从属硬件元件117。
第一CPU110A可称为系统1010的主装置-从属装置层级中的第一主装置。第二CPU110B、第三CPU110C和第四CPU110N可分别称为第二、第三和第四主装置。其它主装置可包含(但不限于)充当第五主装置的移动显示处理器110D、充当第六主装置的数字信号处理器(“DSP”),以及充当第七主装置的动态存储器分配/存取(“DMA”)引擎109。
同时,配置端口111、DDR存储器112以及外部总线接口113可称为系统101的主装置-从属装置层级中的第一、第二和第三从属装置。这些从属装置中的每一者可服务相应主装置所产生的软件请求。
如先前所述,图2中说明七个主装置。所属领域的技术人员将了解,在不改变本发明范围的情况下,系统101中可使用更少数目或更大数目的主装置。对于从属装置也是这样:如所属领域的技术人员理解,可使用更少数目或更大数目的从属装置。
驻存在CPU110上的UL ICB驱动器103A可检视相应主装置CPU110的每一应用程序模块105所发出的软件请求。结合LL ICB驱动器103B的UL ICB驱动103A还可响应于其对软件请求的检视以及其对应需求而调整交换结构107的设定。
在PCD100的示范性实施例中,系统101中的主装置的数目将通常超过从属装置的数目。举例来说,具有系统101的PCD100可具有在约四十到约五十之间个主装置以及在约十到约十五之间个从属装置。
根据示范性系统101,UL ICB驱动器103可接收来自应用程序模块105的客户端请求。举例来说,第一ICB驱动器103A1可接收来自第一应用模块105A1的创建客户端请求。创建客户端请求可包含主装置-从属装置对,例如移动显示处理器(“MDP”)110D(主装置)与外部总线接口113(从属装置)。
MDP110D(主装置)驻存在第一交换结构107A内,而外部总线接口113(从属装置)驻存在第二交换结构107B内。在常规技术中,在客户端请求的创建之前的运行时之前,将需要创建静态或不动表格。此静态表格将列出MDP110D(主装置)与外部总线接口113(从属装置)之间的关系和路线。
作为在此时存取静态表格的替代,系统101可进行跨交换结构107的搜索,以确定MDP110D(主装置)与外部总线接口113(从属装置)之间的一个或一个以上通信路线。一旦确定主装置与从属装置之间的此路线,系统101就可为可在不同交换结构107内和跨不同交换结构107延伸的通信路线设定带宽。下文将结合图4到10描述用于动态地创建和服务PCD100的交换结构内和跨所述交换结构的主装置-从属装置对的方法的进一步细节。
图3是说明图2的第一交换结构107A的细节的功能框图。交换结构107A可通常称为总线架构,如所属领域的技术人员所理解。此图中的字母“M”表示交换结构107A的主装置-从属装置层级中的主装置,而此图中的字母“S”表示从属装置。
第一交换结构107A包括网络拓扑,其中网络节点(M1、M2、M5、S1、S2)经由一个或一个以上网络交换器,例如通过纵横交换器307而彼此连接。图3中所说明的此第一交换结构107A通常与图2的第一交换结构107A对应。交换结构107A与其它总线设计相比可提供更好的总通过量,因为业务分散在多个物理链路上。
在图3的示范性实施例中,第一主装置1110A可耦合到第一从属装置1111和第二从属装置2112。类似地,第二主装置2110B可耦合到第一从属装置1111和第二从属装置2112。依此类推。在撰写本文时,交换结构107的示范性实施方案是PCI Express。如图3中所说明,示范性第一交换结构107A的三个主装置M1、M2和M5可利用各种纵横交换器307A、307B和307C中的每一者来连接到相应的从属装置。
图4是用于支持位于三个不同交换结构107A、107B和107C内的主装置-从属装置对之间的各种路线的节点图或节点架构403的图;节点架构403说明ICB驱动器103如何表征位于不同交换结构107内和其之间的主装置-从属装置对之间的关系。
节点架构403包括仲裁器节点405,仲裁器节点405耦合到第一交换结构107A。仲裁器节点405可针对每一交换结构107而存在。然而,图4仅说明第一交换结构107A的单个仲裁器节点405。仲裁器节点405可从在特定主硬件装置上运行的应用模块105中的每一者接收软件请求。
第一交换接口包括三个主装置:对应于第一CPU110A的第一主节点M1110A、对应于第二CPU110B的第二主节点M2110B,以及对应于图2的MDP110D的第五主节点M5110D。
第一交换结构107A具有两个从属装置:对应于配置端口111的第一从属节点S1111,以及对应于图2的DDR SDRAM112的第二从属节点S2112。第一交换结构107可进一步包括第一网关节点G1400A1以及第二网关节点G2402A1。交换结构107的每一第二网关节点G2402耦合到每一交换结构的第一网关节点G1400。每一第二网关节点G2402发起两个不同交换结构107之间的通信,而每一对应的第一网关节点G1400接收所述通信。
举例来说,第一交换结构107A的第二网关节点G2402A1可发起从第一交换结构107A发送到第二交换结构的第一网关节点G1400B1的通信。相反,第二网关节点G2402B1可发起从第二交换结构107B发送到第一交换结构107A的第一网关节点G1400A1的通信。
特定交换结构107的每一第二网关节点G2402可充当特定交换结构107的主装置的从属装置,且接着在第二网关节点G2402正建立与另一网关节点(例如另一交换结构107上的第一网关节点G1400)的通信时充当主装置。举例来说,对于从第二主装置M2110B流到第二网关节点G2402A1的通信,第二网关节点G2402A1充当相对于第二主装置M2110B的从属装置。然而,相对于第二交换结构107B上的第一网关节点G1A400B1,第二主装置M2110B充当主装置,而第一网关节点G1A400B1充当相对于第二网关节点G2402A1的从属装置。在其它示范性实施例中,跨不同交换结构108的第一网关G1400与第二网关G2402之间的这些配对可由充当从属装置和主装置两者的单个网关节点(未说明)以软件表示。
第一和第二网关节点G1400和G2402允许不同交换结构107之间的通信。通过使用第一网关节点G1400和第二网关节点G2402,第一结构107A的主装置M可定位可能驻存在不同交换结构107(例如第二交换结构107B)中的特定从属节点S,如图4中所说明。
举例来说,设想源自第一结构107的仲裁器节点405的软件请求曾请求包括第一交换结构107A的第五主节点M5110D与第二交换结构107B的第三从属节点S3113的主装置-从属装置对。ICB驱动器103将首先确定所请求的第三从属节点S3113是否为第一交换结构107A的部分。ICB驱动器103将把所请求的第三从属装置S3113的识别符与第一交换结构107A的第一和第二从属节点S1和S2的识别符进行比较。
一旦ICB驱动器103确定所请求的第三从属装置S3113不存在于第一交换结构内,ICB驱动器103就将接着向第二网关节点G2402A1(沿线段A)发出请求,以在下一交换结构107B中进行搜索。第二网关节点G2402A1将接着向第一网关400B1发出命令或指令(沿线段B),以进行对第二交换结构107D的搜索,以寻找所请求的第三从属装置S3113。第二交换结构107B的第一网关400B一将接着使用第三从属节点的作为三的唯一识别符来进行对第三从属节点(作为3113)的搜索,以作为关于第二交换结构107B相对于从属节点S进行比较的基础。
一旦已找到第三从属节点S3113,第一网关G1400B1就将发出建立第一交换结构107B的第三从属装置S3113与第一网关节点G1400B1之间的通信链路的命令(沿线段C)。因此,ICB驱动器103将记录第一交换结构107A的第五主装置110D与第二交换结构107B的所请求第三主装置S3113之间所建立的路线。
如图4中所说明,第二交换结构107B可包括三个主节点M3110C,M6114以及M7109:主节点M3110C对应于图2的第三处理器110C;主节点M6与图2的DSP114对应;且主节点M7109与图2的DMA引擎109对应。第二交换结构107B可进一步包括将第二交换结构107B耦合到第三交换结构107C的额外网关节点G1B400B2和G2B402B2。类似地,第三交换结构107C可包括两个主节点M4110N和Mn115以及单个从属节点SN117。
节点架构403可进一步包括耦合到RPM节点102的三个交换结构节点407A、407B和407C。交换结构节点407可与图2的交换结构107对应。类似地,RPM节点102可与图2的资源电力管理器102对应。
RPM节点102可向交换结构节点407发出命令,以便控制用于特定交换结构107内的节点的其相应带宽参数。如图4中所说明,交换结构107的每一从属装置S或第二网关G2耦合到对应的交换节点407。
图5是图4中所说明的第一交换结构107A的主级别节点的第一路线检查表507。第一路线检查表507列出可由相应主装置检查的第一交换结构107A的从属装置,其中ICB驱动器模块103正在运行中或动态地形成主装置-从属装置对。此路线检查表507由ICB驱动器模块103在其在第一交换结构107A内搜索由特定应用程序模块105发出的软件请求中所请求的特定从属装置时使用。表507中的一(1)值指示相应主装置可与特定从属装置协商来确定特定从属装置是否与软件请求中的从属装置匹配。表507中的零(0)值指示相应主装置可不与特定从属装置协商来确定特定从属装置是否与软件请求中的从属装置匹配。
举例来说,当图4的第一网关节点G1400A1正充当源自第二交换结构107B的第二网关G2A402B1的通信的主装置时,不准许第一网关节点G1400A1用如表507的第四行和第四列中的零所反映的第二网关G2402A1进行对从属装置的搜索。阻止相对于第二网关G2402A1对从属装置的搜索可防止假如在第一网关G1400A1与第二网关G2402A1之间允许此搜索的话将会发生的无尽的编程循环。
图6是图4中所说明的第二交换结构107B的主级别节点的第二路线检查表607。第二路线检查表607列出可由相应主装置检查的第二交换结构107B的从属装置,其中ICB驱动器模块103正在运行中或动态地形成主装置-从属装置对。此路线检查表607由ICB驱动器模块103在其在第二交换结构107B内搜索由特定应用程序模块105发出的软件请求中所请求的特定从属装置时使用。表607中的一(1)值指示相应主装置可与特定从属装置协商来确定特定从属装置是否与软件请求中的从属装置匹配。表607中的零(0)值指示相应主装置可不与特定从属装置协商来确定特定从属装置是否与软件请求中的从属装置匹配。
举例来说,当第一网关G1B400B2正充当源自第三交换结构107C的第二网关G2402C1的通信的主装置时,不准许第一网关G1B400B2用如表607的第四行和第四列中的零反映的第二网关G2B402B2进行对从属装置的搜索。阻止相对于第二网关G2B402B2对从属装置的搜索可防止无尽的编程循环,如果在第一网关G1B400B2与第二网关G2B402B2之间允许此搜索,那么无尽的编程循环将发生。第三交换结构107C也将具有路线检查表。然而,用于第三交换结构107的此路线表未说明,且将容易产生,如所属领域的技术人员所理解。
图7是说明用于动态地创建和服务便携式计算装置(“PCD”)的交换结构107内和跨交换结构107的主装置-从属装置对的方法700的逻辑流程图。框705是方法700的第一步骤。在框705中,ICB驱动器模块103可接收包括主装置-从属装置对的客户端请求。客户端请求可由在例如如图2中所说明的第一CPU110等处理器上运行的应用程序模块105产生。
接下来,在例程框710中,ICB驱动器103可进行对框705中的客户端请求中所提供的主装置-从属装置对中的从属装置的搜索。ICB驱动器103可使用对应于所请求从属装置的唯一识别符,以便执行所述搜索。在此例程框710中,ICB驱动器模块103将利用图4中所说明的节点架构403,以便进行对所请求从属装置的搜索。下文将结合图8描述此例程框710的进一步细节。通常,可驻存在如图2中所说明的对应CPU110上的上层ICB(“ULICB”)驱动器103A可执行此例程框710中的步骤。
在例程框710之后,在框715中,ICB驱动器模块103将基于例程框710中所进行的搜索为主装置-从属装置对创建交换结构107内和跨交换结构107的路线。此路线将列出通常包括主装置(例如如图4中所说明的第五主装置M5110D)的开始点。所述路线还将包含如图4中所说明的三个区段A、B和C,将遍历所述区段以建立选定主装置-从属装置对之间的通信。
接下来,在框720中,列出形成可存在于不同交换结构107内和/或跨不同交换结构107的主装置-从属装置对的特定节点的句柄或阵列将被提供回到发起客户端请求的应用程序模块105。随后,在例程框725中,ICB驱动器模块103可设定任何交换结构107内和跨任何交换结构107的所建立路线的带宽。根据此例程框725,下层ICB(“LL ICB”)驱动器模块103B将执行此例程的步骤。驻存在RPM102上的LL ICB驱动器模块103B将通过从RPM节点102向结构节点407以及如图4中所说明的特定结构107的节点发出命令来设定跨所建立路线的带宽。将结合图9进一步详细地描述关于例程框725的进一步细节。
接下来在框730中,客户端请求内的所请求动作将接着由可存在于不同交换结构107内和跨不同交换结构107而存在的主装置-从属装置对执行。方法700返回到框705或方法700可结束。
图8是说明用于使用从属装置识别符来搜索主装置-从属装置对的从属装置的子方法或例程715的逻辑流程图。框805是子方法或例程715的第一步骤。在框805中,ICB驱动器模块103A检视结构路线检查表,例如分别在图5和图6中说明的表500和表600,以便确定哪些从属装置可在特定结构107内询问,以用于从客户端请求识别主装置-从属装置对的所请求从属装置。
接下来,在框810中,ICB驱动器模块103A可将所请求从属装置的从属装置识别符与路线检查表中所列出的从属装置识别符进行比较。接下来,在决策框815中,ICB驱动器模块103A确定当前从属装置识别符之间是否存在匹配。如果对决策框815的查询是肯定的,那么遵循“是”分支到框825。如果对决策框815的查询是否定的,那么遵循“否”分支到决策框820。
在框825中,ICB驱动器103A记录已遍历而到达所匹配的从属装置的路线。此路线可包含仅在单个交换结构107内发生的通信区段,或遍历一个或一个以上不同交换结构107的通信区段。接下来,在框830中,ICB驱动器模块103A可返回列出被遍历以建立由应用程序模块105发出的客户端请求中所包含主装置-从属装置对的所有节点的句柄或阵列。子方法或例程715接着返回到图7的步骤715。
返回参看决策框820,其在达到决策框815的否定条件时发生,ICB驱动器模块103A确定是否已询问了特定交换结构的所有从属装置,以寻找所请求的从属装置。如果对决策框820的查询是否定的,那么遵循“否”分支返回到框805。如果对决策框820的查询是肯定的,那么遵循“是”分支返回到框835,其中ICB驱动器模块103A进行到网关节点,例如如图4中所说明的网关节点G2402A1。
接下来,在框840中,通过ICB驱动器模块103A存储网关识别符。ICB驱动器模块103A在框845中接着进入下一结构107,例如第二交换结构107B中,且通过返回到框805而开始新的搜索。框845可通常对应于利用第一网关节点G1A400B1作为主装置的ICB驱动器模块103A。在框805中,假定第一网关G1A400B1是正用于搜索的当前主装置,ICB驱动器模块103A将查看如图6中所说明的结构路线检查表600的第三行。
如下文将进一步详细描述,方法700和系统101利用某些度量来管理交换结构107内和跨交换结构107的带宽。图9A到9B说明由方法700和系统101用来管理通常为由在特定处理器110上运行的应用程序模块105发出的任何软件请求的部分的带宽需求的度量。
具体地说,图9A说明示范性第一软件请求类型401。此第一软件请求类型401可源自被表征为“突发性”。可用两个不同度量来测量每一软件请求,例如第一“突发性”软件请求类型401:瞬时带宽(Ib)和平均带宽(Ab)。
瞬时带宽(Ib)可表示跨交换结构107的主装置-从属装置层级中的所有主装置的交换结构107的最差情况需要/情境。Ib可通常被表征为总线或交换结构的“速度限制”,因为此参数可由ICB驱动器模块103用来设定交换结构107的频率。用以确定Ib的计算和/或对应等式对于源自特定应用程序模块105的每一类型的软件请求可为唯一的。
平均带宽(Ab)可表示经由一个或一个以上交换结构107传播的实际数据大小。Ab可由ICB驱动器模块103用来设定一个或一个以上交换结构107的主装置与从属装置之间的仲裁规则。
将第一软件请求类型401表征为“突发性”以解决实现一个或一个以上交换结构107的不连续使用的软件请求。这些软件请求类型可在非常短的时间间隔内经由交换结构107发射大数据块,且接着在某一时间周期内保持休眠。休眠阶段可通常持续长于用以发射大数据块的活动时间。
对于第一“突发性”软件请求类型401,可通过以下等式确定Ib值:
等式1 Ib=BS/W
其中“Ib”是瞬时带宽;“BS”是以字节数目表达的块大小,且“W”是以时间单位(例如毫秒)表达的窗大小。
第一“突发性”软件请求类型的Ab值可通过以下等式确定:
等式2 Ab=BS/P
其中“Ab”是平均带宽;“BS”是以字节数目表达的块大小,且“P”是以时间单位(例如毫秒)表达的周期。
图9A说明两个不同“突发性”软件请求401A、401B。第一软件请求401A具有第一数据块402A,而第二软件请求401B具有第二数据块402B。
在此示范性实施例中,第一周期P1404A和第二周期P2404A的量值是相等的,而第一窗W1406A和第二窗W2406B(其为周期P1和P2内的时间帧)具有相对于彼此不同的量值。第一块大小BS1408A和第二块大小BS2408B也具有彼此不同的量值。
由于第一块大小BS1402A的量值相对于第一周期P1404A相对较小,于是鉴于第一软件请求类型的等式(2),第一突发性软件请求401A的平均带宽Ab值将不是那么重要。同时,由于第二块大小BS2402B的量值相对于第二周期P1404B相对较大,于是第二突发性软件请求401B的平均带宽Ab值将稍大于第一软件请求401A。
因为每一软件请求401A、401B的块大小BS具有接近于其窗大小W1406A、W2406B的量值,因此鉴于用于此软件请求类型的等式(1),这两个请求401的瞬时带宽值Ib可较重要。这些请求401A、401B的Ib值两者也可在量值上彼此非常接近。
图9B说明可被表征为“CPU”类型501的示范性第二软件请求类型501。CPU软件请求类型501通常源自中央处理单元(CPU)110。瞬时带宽Ib值可如下确定:
等式3: Ib=处理量带宽
其中“Ib”为瞬时带宽;且处理量带宽是CPU110的所要时钟速度。
CPU软件请求类型501的平均带宽Ab值可如下确定:
等式4: Ab=T×Z%(百分比)
其中“Ab”是平均带宽;其中“T”是上文所述的处理量带宽;且“Z%”是使用百分比,或高速缓冲存储器未中百分比,如图9B中所说明。
举例来说,对于以50%的使用率以每秒100Mb移动数据的DMA引擎109,平均带宽Ab值将等于100×0.50,其为每秒五十Mb。此DMA引擎109的瞬时带宽Ib将等于每秒100Mb。
同时,以1GHz运行的CPU110转变为每秒800Mb的处理量。此处理量值将等于瞬时带宽Ib。如果CPU110利用具有10%的高速缓冲存储器未中率的高速缓冲存储器,那么平均带宽Ab值将等于(800×0.10),其为每秒80Mb。
所属领域的技术人员将认识到,可依据瞬时带宽Ib和平均带宽Ab值不同地界定其它软件请求类型。这些仍待确定的软件请求类型可包括用于达到Ib和Ab值的不同等式。但因为软件请求类型将依据Ib和Ab值来表达,于是不同软件请求类型可聚集在一起,以向ICB驱动器模块103提供对总线107的当前需求的良好估计。
图9C是说明用于基于来自PCD100的软件请求的当前需求而动态地调整总线或交换结构设定的子方法或例程725(对应于图7)的逻辑流程图。对于此子方法725,通常驻存在如图2中所说明的RPM102上的LL ICB驱动器模块103B将执行这些步骤。然而,所属领域的技术人员认识到,还可在不脱离本发明的范围的情况下,使用驻存在CPU110上的UL ICB驱动器103A。
决策框915是子方法725的第一步骤。在框915中,ICB驱动器模块103B确定是否需要将软件请求转换为标准化瞬时带宽(Ib)和平均带宽(Ab)值。如果对决策框915的查询是否定的,那么遵循“否”分支到框925。如果对决策框915的查询是肯定的,那么遵循“是”分支到决策框920。
在框920中,ICB驱动器模块103B基于软件请求类型和对应等式(例如上文结合图9A和图9B所述的等式(1)到(4))将软件请求的带宽参数转换为瞬时带宽(Ib)和平均带宽(Ab)值。
在框925中,ICB驱动器模块103B计算已由PCD100的相应主装置110发出的所有软件请求的所有平均带宽(Ab)值的总和。接下来,在框930中,ICB驱动器模块103B确定两个值之间的最大值:相对于所有软件请求的所有平均带宽(Ab)值的总和(这是在框925中所计算的值)所比较的最大瞬时带宽(Ib)值。
接下来,在框935中,ICB驱动器模块103B基于框930中所计算的最大值(单个最大Ib值与所有Ab值的总和)设定总线频率。在框940中,ICB驱动器模块103B基于跨所有软件请求的总计平均带宽(Ab)以及框935中建立的时钟频率值来设定总线107的总线仲裁配置。
在框945中,ICB驱动器模块103B将总线频率和总线仲裁配置发射到每一交换结构107。接着,子方法725返回到框730。
图9D是说明在系统101和方法700创建主装置-从属装置对时所形成的句柄或阵列数据结构1002的图。句柄1002由ICB驱动器模块103B结合图4中所说明的节点而使用。图4中所说明的每一节点具有相对于所形成的主装置-从属装置对的句柄1002。图9D中所说明的句柄1002的特定集合对应于如图4中所说明的第一交换结构107A的第五主装置M5110D与第二交换结构107D的第三从属装置S3113之间形成的主装置-从属装置对。
将图4的主装置-从属装置对M5/S3的第一句柄1002A指派给第一交换结构107A的仲裁器节点405,如图9D中所说明。将把第二句柄1002B指派给图4中所说明的第一交换结构107的第五主装置M5110D。类似地,将把第三句柄1002C指派给图4中的第一交换结构107A的第二网关G2402A1。将把第四句柄1002D指派给图4中的第二交换结构107A的第一网关G1A400B1。
每一句柄1002可包括指派给句柄1002的当前节点,以及将从当前节点接收信息或将信息发射到当前节点的其它节点。举例来说,第二句柄1002B可包括对应于第一交换结构107A的第五主装置110D和第一交换结构107A的第二网关节点G2402A1的所指派节点M5。
类似地,第四句柄1002D可包括作为第二交换结构107B的第一网关G1A400B1的当前节点,将第四句柄1002D指派给所述当前节点。第四句柄1002D可进一步包括第一交换结构107A的第二网关G2402A1。第四句柄1002D对应于存在于第一交换结构107A的第二网关节点G2402A1与第二交换结构107B的第一网关节点G1A400B1之间的图4的通信区段“B”。这些句柄1002中的每一者可由ICB驱动器模块103存储在存储器中。
提供如下文所述的图10A到13以描述如何建立和维持图4的节点架构。图10A是用于建立和维持图4中所说明的节点架构的软件架构500A的第一方面的图。
图10A是包括表示软件或硬件(或两者)的功能块的图。图10A说明架构或框架管理器440,其耦合到多个硬件和软件元件,例如但不限于:ICB驱动器模块103;中央处理单元110,通常也称为第一硬件元件(硬件元件#1);用于CPU110的时钟442,通常也称为第二硬件元件(硬件元件#2);总线仲裁器或调度器422,通常也称为第三硬件元件(硬件元件#3);总线程序A-444A,通常也称为第一软件元件(软件元件#1);总线程序B-444B,通常也称为第二软件元件(软件元件#2);时钟程序AHB,通常也称为第三软件元件(软件元件#3);由软件元件监视的动作或功能,通常指示为按键448;以及旧式元件450,其包括软件元件或硬件元件或两者。
旧式软件元件的实例可包含但不限于动态环境管理器(DEM)。这是句柄处理器休眠事件的处理器间通知的软件模块。举例来说,第一处理器A使用DEM来接收第二处理器B已闲置/从闲置恢复的通知。在较新的硬件上,已将此软件功能性归入路线处理器模块(RPM)子系统/通信协议中。存在其它旧式软件元件,且其包含在本发明的范围内。
旧式硬件元件的实例可包含但不限于AMBA(高级微控制器总线架构)高性能总线(AHB)。在较老的PCD100上。AHB可包括主要系统总线,而在较新的PCD100上,系统总线结构107完全不同,且AHB总线仅用于特殊应用来与尚未更新的模块通信以经由新系统总线结构进行通信。存在其它旧式软件元件,且其包含在本发明的范围内。
框架管理器440可包括计算机指令库,其管理数据结构,例如与前面提到的硬件和软件元件中的每一者通信的节点。框架管理器440可负责创建一个或一个以上资源,其可形成如在图10A的虚线A的右侧说明的节点602、622、642和646。
框架管理器440可直接与驻存在CPU110上的每一ICB驱动器模块103通信。图10A的右侧上的每一节点602、622、642和646是图10A的虚线A的左手侧上的每一软件或硬件元件的表示或模型。图10A的右侧通常对应于上文所述的图4中所反映的节点架构。对于本发明的剩余部分,如图10B中所说明,将用参考标号601来表示一般或非特定节点。
如先前所述,图10A的每一示范性节点602、622、642和646可包括一个或一个以上资源。资源可包括软件元件或硬件元件或两者。举例来说,第一节点602包括通常与第一硬件元件或中央处理单元110对应的单个资源。对于本发明中所描述的软件架构,节点601的每一资源可具备包括一个或一个以上字母数字字符的唯一名称。在图10A中所说明的示范性实施例中,第一节点602的资源已被指派有资源名称“core/cpu”。此示范性资源名称通常对应于所属领域的技术人员已知的常规文件命名结构。然而,如所属领域的技术人员认识到,含有字母数字字符和/或符号的任何其它组合的其它类型的资源名称也在本发明的范围内。
在图10A的示范性实施例中,第二节点622包括多个资源。具体地说,在此特定示范性实施例中,第二节点622具有第一资源,其包括对应于总线仲裁器或调度器422的单个硬件元件。第二节点622的第二资源包括通常对应于总线程序A444A的第一软件元件的软件元件。第二节点622的第三资源包括通常对应于总线程序B444B的第二软件元件的另一软件元件。所属领域的技术人员认识到,用于给定节点601的任何组合和任何数目的资源和资源类型也在本发明的范围内。
除创建节点601之外,框架管理器440还可创建或例示标记650。标记可包括一个或一个以上旧式元件,例如硬件元件或软件元件(或两者,以及多个这些元件),其不容易映射本身或不容易与框架管理器440所管理的软件架构兼容。标记650可支持节点601的资源,这意味着节点601的资源可取决于标记650。标记650的一个实例可包含串驱动器。串驱动器可能不容易配合在结合图10A所描述的架构内。标记650可由节点601及在图11的框1125中收集的其相依性阵列数据来参考。
图10A还说明第一客户端648,其通常对应于两个软件元件448、450的动作或功能。在图10A中所说明的示范性实施例中,第一客户端648通常对应于可在由便携式计算装置100支持的特定应用程序模块105内发生的按键动作。然而,所属领域的技术人员认识到,除按键之外的软件元件的其它动作和/或功能也在本发明的范围内。下文将结合图13描述关于客户端请求648及其相应创建的进一步细节。
图10A还说明特定架构元件之间的关系。举例来说,图10A说明客户端648与第一节点602之间的关系。具体地说,第一客户端648可产生客户端请求675A(以虚线说明),其由包括资源“/core/cpu”的第一节点602管理或处置。通常,存在预定或设定数目个类型的客户端请求675。下文将结合图13进一步详细描述客户端请求675。
图10A中所显示的其它关系包含用虚线680说明的相依性。相依性是另一节点601的相应资源之间的关系。相依性关系通常指示第一资源(A)依赖于第二资源(B),第二资源(B)为第一资源(A)提供信息。此信息可为由第二资源(B)执行的操作的结果,或可仅包括第一资源(A)所需的状态信息,或其任何组合。第一资源(A)和第二资源(B)可为同一节点601的部分,或其可为不同节点601的部分。
在图10A中,第一节点602依赖于第二节点622,如由起于第一节点602且延伸到622处的第二节点的相依性箭头680B指示。图10A还说明第一节点602还依靠第三节点642,如由相依性箭头680A所说明。图10A还说明第二节点622依靠第四节点646,如由相依性箭头680C所说明。所属领域的技术人员认识到,用图10A的虚箭头说明的相依性680在本质上只是示范性的,且相应节点601之间的相依性的其它组合在本发明的范围内。
所述架构或框架管理器440负责维持上文所述的关系,其包含但不限于图10A中所说明的客户端请求675和相依性680。框架管理器440将尝试例示或创建尽可能多的节点601,只要任何给定节点601的相依性680完整即可。当支持相依性的资源存在或处于就绪状态以用于处置与相依性680有关的信息时,相依性680是完整的。
举例来说,如果由于存在于第三节点642中的第一节点602之间的相依性关系680A而尚未创建包括单个资源“/clk/cpu”的第三节点642,那么框架管理器440可不创建或建立包括单个资源“/core/cpu”的第一节点602。一旦框架管理器440已创建了第三节点642,那么框架管理器440就可因相依性关系680A而创建第二节点602。
如果框架管理器440不能够创建或例示特定节点601,因为其相依性680中的一者或一者以上是不完整的,那么框架管理器440将继续运行或执行对应于由框架管理器440成功创建的那些节点601的步骤。框架管理器440通常将跳过对因不完整的相依性而可能不存在的特定节点601的调用,其中相依性资源尚未创建,且将反映所述不完整状态的消息返回给所述调用。
在多核环境中,例如图1中所说明,框架管理器440可创建或例示单独核(例如,图1的第一、第二和第N核222、224和226)上的节点601。节点601可通常在多核环境中在单独核上且并行地创建,只要节点601不彼此相依,且在特定节点的所有对应相依性(如下文所述)均完整的情况下。
图10B是管理图1的PCD100的资源的系统的软件架构500B1的第二方面的概图。在此概图中,每一节点601的一个或一个以上资源尚未具备唯一名称。图10B的节点或资源图500B1仅包括由架构或框架管理器440支持的节点601、标记650、客户端648、事件690以及查询功能695。已说明每一节点601具有椭圆形形状以及具有特定方向的箭头680,其表示节点601内的资源之间的相应相依性。
可使图10A到10B中所说明的节点架构内的调用具有别名,或节点601内的资源的实际资源名称。根据一个示范性实施例,不存在相对于标记650作出客户端请求675的方式,因为客户端648与标记650之间无接口,因此这通常意味着与标记650交换的信息通常源自节点601或资源,而不是客户端648。
举例来说,图10B的第一节点601A具有相依性箭头680A,以指示第一节点601A依靠第二节点601B的两个资源(资源#2和#3)。类似地,第一节点601A具有相依性箭头680B,以指示第一节点601A也依靠第一标记650,其通常包括硬件或软件或其组合的旧式元件。
图10B还说明第一节点601A的客户端648可如何向第一节点601A发出客户端请求675。在发出这些客户端请求675之后,第二节点601B可触发事件690,或提供对查询695的响应,其中对应于事件690和查询695的消息流回到客户端648。
图10C是管理图1的PCD100的资源的系统的软件架构500B2的第二方面的详细图。图10C说明节点或资源图500B2,其仅包括具有特定却是示范性资源名称的节点601,以及对应于图10A中的那些的客户端648、事件690以及查询功能695。已说明每一节点601具有椭圆形形状和具有特定方向的箭头680,其表示节点601内的资源之间的相应相依性。
举例来说,第一节点602具有相依性箭头680B,以指示第一节点602依靠第二节点622的三个资源。类似地,包括第二软件元件444B且通常在图10C中用参考字母“C”表示的第三资源“/bus/ahb/sysB/”具有相依性箭头680C,其指示此第三资源(C)依靠第四节点646的单个“/clk/sys/ahb”资源。
图10C还说明来自节点601的输出数据,其可包括一个或一个以上事件690或查询功能695。查询功能695类似于事件690。查询功能695可具有可为或可不为唯一的查询句柄。查询功能通常不是外部识别的,且通常其不具有状态。查询功能695可用以确定节点601的特定资源的状态。查询功能695和事件690可具有与所建立的客户端648的关系,且这些关系由定向箭头697表示,以指示来自相应事件690和查询功能695的信息被传递到特定客户端648。图10C还说明图10C的第二节点622如何经由相依性箭头680D而依靠第一标记650。
图10B到10C的节点或资源图500B表示存储器中存在且由框架管理器440及可包括节点601的相关数据结构管理的关系。节点或资源图500B可由框架管理器440自动产生,以作为用于识别由框架管理器440管理的相应元件之间的关系且用于软件团队的故障查找的有用工具。
图10D是说明用于创建例如图4中所说明的用于管理PCD100的资源的软件架构的方法1000A。框1005是用于管理PCD100的资源的方法或过程1000的第一例程。在例程框1005中,可通过框架管理器440执行或运行例程以用于接收节点结构数据。节点结构数据可包括相依性阵列,其概述特定节点601可与其它节点601具有的相依性。下文将结合图11描述关于节点结构数据以及此例程或子方法705的进一步细节。
接下来,在框1010中,框架管理器440可检视作为在框1005中接收的节点结构数据的部分的相依性数据。在决策框715中,框架管理器440可确定节点结构数据是否界定叶节点601。叶节点601通常表示待基于节点结构数据而创建的节点不具有任何相依性。如果对决策框1015的询问是肯定的,意味着用于创建当前节点的节点结构数据不具有任何相依性,那么框架管理器440继续到例程框1025。
如果对决策框1015的询问是否定的,那么遵循“否”分支到决策框1020,其中框架管理器确定节点结构数据内的所有硬相依性是否均存在。硬相依性可包括其中资源没有其便无法存在的一种相依性。同时,软相依性可包括其中资源可使用相依资源作为任选步骤的一种相依性。软相依性意味着当在节点架构内时,甚至当软相依性不存在时,可创建或例示具有软相依性的节点601或节点601的资源。如上文所述,可将标记650参考为软相依性。
软相依性的实例可包括优化特征,其对于面向含有多个资源的601的资源的操作来说不是重要的。框架管理器440可针对所有存在的硬相依性,且甚至在针对具有未创建的软相依性的那些节点或资源而不存在软相依性时,创建或例示节点或资源。可使用回调特征来参考软相依性,使得当软相依性变为可用于框架管理器440时,框架管理器440将向参考软相依性的每一回调告知软相依性现在可用。
如果对决策框1020的询问是否定的,那么遵循“否”分支到框1027,其中节点结构数据由框架管理器440存储在例如存储器等临时存储装置中,且框架管理器440创建与此未例示节点相关联的回调特征。
如果对决策框1015的询问是肯定的,那么遵循“是”分支到路程1025,其中基于例程框1005中接收到的节点结构数据来创建或例示节点601。下文将结合图13描述例程框1025的进一步细节。接下来,在框1030中,框架管理器440使用其唯一资源名称公布新创建的节点601,使得其它节点601可将信息发送到新创建的节点601,或从新创建的节点601接收信息。
现在参看图10E,其为图10D的接续流程图,在框1035中,框架管理器440向依靠新创建的节点601的其它节点601通知新创建的节点601已例示且准备好接收或发射信息。根据一个示范性方面,当相依节点(如图10B的节点601B)被创建时,立即触发通知,即递归地执行通知。因此如果构造图10B的节点601B,那么立即通知节点601A。此通知可允许构造节点601A(因为节点601B是节点601A的最终相依性)。节点601B的构造可导致其它节点601被通知,且依此类推。在依靠节点601B的最终资源完成之前,节点601B完成不了。
第二略微更复杂的实施方案是将所有通知放到单独的通知队列上,且接着在单个时间点贯通所述队列,即,反复地执行所述通知。因此当构造图10B的节点601B时,将对节点601A的通知推送到列表上。接着执行所述列表,且节点601A被通知。这致使对其它额外节点601(除节点601A之外,图10B中未说明)的通知被放在同一列表上,且接着在对节点601A的通知被发送之后,接着发送所述通知。对其它节点601的通知(除对节点601A的通知之外)不发生,直到与节点601B和节点601A相关联的所有工作已完成之后为止。
逻辑上,这两个实施方案完全等效,但其在实施时具有不同的存储器消耗特性。递归实现是简单的,但可能消耗任意量的堆叠空间,其中堆叠消耗是相依性表的深度的函数。反复实施方案略微更加复杂,且需要多一点的静态存储器(通知列表),但堆叠使用率是恒定的,而与相依性表的深度无关,例如图10B中所说明。
并且,框1035中的节点创建的通知不限于其它节点。所述通知还可在内部用于别名构造。系统500中的任何任意元件均可在节点(或标记)变为可用时使用同一机制来请求通知,而不仅仅是其它节点。节点和非节点两者均可使用同一通知机制。
在决策框1040中,框架管理器440基于当前节点601的创建来确定其它节点601或软相依性现在是否释放以用于创建或例示。决策框1040通常确定现在是否可创建资源,因为某些相依性关系680已经由最近已经历创建或例示的当前节点满足。
如果对决策框1040的询问是肯定的,那么遵循“是”分支回到例程框1025,其中现在由于刚创建的节点601实现相依性而创建或例示所释放的节点601。
如果对决策框1040询问是否定的,那么遵循“否”分支到框1045,其中框架管理器440可管理如图4中所说明的软件架构的元件之间的通信。接下来,在框1050中,框架管理器440可继续通过使用与特定资源相关联的资源名称记录或记下资源所采取的动作。在框架管理器440或框架管理器440所管理的元件中的任一者(例如资源、节点601、客户端648、事件695和查询功能697)所采取的任何动作之后,可通过框架管理器440执行框1045。框1045是节点架构的又一重要方面,其中框架管理器440可维持活动的运行日志,其根据创建了特定元件(例如节点601的资源)的作者所提供的其唯一识别符或名称而列出每一元件所执行的动作。
与现有技术相比,框1050中列出指派给系统的每一资源的唯一名称的此活动日志是唯一的,且可提供显著优点,例如用于调试或错误故障查找。使节点架构500为唯一的许多方面中的另一方面是单独团队可彼此独立地对不同硬件和/或软件元件进行工作,其中每一团队将能够使用唯一且容易跟踪的资源名称,而无需创建表格来翻译由其它团队和/或原始设备制造商(OEM)指派的较无意义且通常令人困惑的资源名称。
接下来,在决策框1055中,框架管理器440确定是否已请求框架管理器440所记录的活动日志。如果对决策框1055的询问是否定的,那么遵循“否”分支到过程的末尾,其中过程返回到例程1005。如果对决策框1055的询问是肯定的,那么遵循“是”分支到框1060,其中框架管理器440将包括有意义的资源名称以及通过所述资源名称执行的相应动作的活动日志发送到输出装置,例如打印机或显示屏和/或两者。所述过程接着返回到上文所述的例程框1005。
图11是说明图10D的用于接收PCD100的软件架构中的节点结构数据的子方法或例程1005的流程图。框1105是图10D的子方法或例程1005中的第一步骤。在框1105中,框架管理器440可接收软件或硬件元件(例如图10D的CPU110和时钟442)的唯一名称。如先前所论述,节点601必须参考至少一个资源。每一资源具有一名称,且所述名称在系统500中必须是唯一的。系统500内的所有元件可用唯一名称来识别。每一元件具有从角色角度看是唯一的名称。换句话说,通常,系统500内不存在具有同一名称的两个元件。根据所述系统的示范性方面,节点601的资源可通常在系统上具有唯一名称,但不要求客户端或事件名称是唯一的,但客户端或事件名称可根据需要为唯一的。
为了方便,可利用使用斜杠“/”字符来创建唯一名称的常规树文件命名结构或文件命名“隐喻”,例如但不限于用于CPU110的“/core/cpu”以及用于时钟442的“/clk/cpu”。然而,如所属领域的技术人员认识到,含有字母数字字符和/或符号的任何其它组合的其它类型的资源名称也在本发明的范围内。
接下来,在框1110中,框架管理器440可接收与正创建的节点601的一个或一个以上资源相关联的一个或一个以上驱动器功能的数据。驱动器功能通常包括待由特定节点601的一个或一个以上资源完成的动作。举例来说,在图10A到10B中,节点602的资源/core/cpu的驱动器功能可请求其需要的总线带宽量和CPU时钟频率,以便提供已请求的所请求处理量。将经由节点642和节点622中的资源的客户端(未说明)作出这些请求。节点642中的/clk/cpu的驱动器功能将通常负责根据其从节点602的/core/cpu资源接收到的请求而实际设定物理时钟频率。
在框1115中,框架管理器440可接收节点属性数据。节点属性数据通常包括界定节点策略的数据,例如安全性(可经由用户空间应用程序接入节点)、远程性(可从系统中的其它处理器接入节点)以及可接入性(资源可支持多个同时客户端)。框架管理器440还可界定允许资源超驰默认框架行为(例如请求评估或记录策略)的属性。
随后,在框1120中,框架管理器440可接收正创建的特定节点601的定制用户数据。如“C”编程语言领域的技术人员所理解,用户数据可包括空“星形”字段。所属领域的技术人员还将用户数据称为“相信我”字段。示范性定制用户数据可包含但不限于表格,例如频率表、寄存器映射等。在框1120中接收的用户数据不由系统500参考,但在定制未被框架管理器440辨识或完全支持的情况下,允许资源的定制。此用户数据结构是既定将针对特定或具体使用而扩展的“C”编程语言中的基础类。
所属领域的技术人员认识到,用于扩展特定类的具体使用的其它种类的数据结构在本发明的范围内。举例来说,在“C++”(C加加)编程语言中,等效结构可包括关键词“公开”,其将变为节点601内的资源的扩展机制。
接下来,在框1125中,框架管理器440可接收相依性阵列数据。相依性阵列数据可包括正创建的节点601所依靠的一个或一个以上资源601的唯一且具体名称。举例来说,如果正创建图10C的第一节点602,那么在此框1125中,相依性阵列数据可包括第二节点622的三个资源的资源名称,以及第一节点602所依靠的第三节点642的单个资源名称。
随后,在框1130中,框架管理器440可接收资源阵列数据。资源阵列数据可包括正创建的当前节点的参数,例如在正创建图10B到10C的第一节点602的情况下的与此第一节点602相关的参数。资源阵列数据可包括以下数据中的一者或一者以上:其它资源的名称;单位;最大值;资源属性;插件数据;以及类似于框1120的定制用户数据的定制资源数据。插件数据通常识别从软件库检索的功能,且通常列出可由正创建的特定节点或多个节点支持的客户端类型。插件数据还允许客户端创建和破坏的定制。在框1130之后,过程返回到图10D的框1010。
在图11中,已用虚线说明了属性数据框1115、定制用户数据框1120以及相依性阵列数据框1125,以指示这些特定步骤是任选的,且不是任何给定节点601均需要的。同时,已用实线说明了唯一名称框1105、驱动器功能框1110以及资源阵列数据框1130,以指示例程1005的这些步骤通常对于创建节点601是强制性的。
图12是说明用于创建PCD100的软件架构中的节点的图10D的子方法或例程1025的流程图。例程框1205是根据一个示范性实施例的用于例示或创建节点601的子方法或例程1025中的第一例程。在例程框1205中,在此步骤中创建与正例示的节点601相关联的一个或一个以上客户端648。下文将结合图13进一步详细描述关于例程框1205的进一步细节。
在框1210中,框架管理器可创建或例示对应于框705的节点结构数据的一个或一个以上资源。接下来,在框1215中,框架管理器440可激活例程块1005的例程块1110中所接收到的驱动器功能。根据一个示范性方面,可使用在例程框1005的资源阵列数据块1130中接收到的最大值来激活驱动器功能。根据另一优选示范性方面,可用连同来自例程1005的节点结构数据传递的任选初始值来激活每一驱动器功能。如果不提供初始数据,那么以0(最小值)例示驱动器功能。还通常以使得其知晓其正被初始化的方式来激活驱动器功能。这使资源能够执行初始化特定的任何操作,但无需在正常或例行操作期间执行。过程接着返回到图10D的步骤1030。
图13是说明用于创建PCD100的软件架构中的客户端648的图12的子方法或例程1205的流程图。框1305是其中创建一个或一个以上资源601的客户端648的例程框1205的第一步骤。在框1205中,框架管理器440接收指派给正创建的客户端648的名称。类似于资源名称,客户端648的名称可包括任何类型的字母数字和/或符号。
接下来,在框1310中,如果存在对正创建的此客户端648的任何特定定制,那么可通过框架管理器440接收定制的用户数据。已用虚线来说明框1310,以指示所述步骤是任选的。框1310的定制用户数据类似于上文结合节点601的资源的创建而论述的定制用户数据。
在框1315中,框架管理器440接收指派给正创建的特定客户端的客户端类型类别。在撰写本文时,客户端类型类别可包括四种类型中的一者:(a)所需的,(b)脉冲,(c)向量,以及(d)等时。所述客户端类型类别列表可依据系统101正管理的资源且依据依赖于节点601的资源的应用程序而扩展。
所需的类别通常与从所需客户端648传递到特定资源601的标度值的处理对应。举例来说,所需的请求可包括某一数目的每秒百万个指令(MIP)。同时,脉冲类别通常与在某一时间周期内完成某一活动的请求的处理对应,而无对开始时间或停止时间的任何指定。
等时类别通常与对通常再次发生的动作的请求对应,且具有明确定义的开始时间和明确定义的结束时间。向量类别通常与通常是串行或并行需要的多个动作的部分的数据阵列对应。
随后,在框1320中,框架管理器440接收指示客户端648是已被指定为同步还是异步的数据。同步客户端648是通常要求框架管理器442锁定节点601的资源,直到资源601返回数据以及资源601已完成来自同步客户端648的所请求任务的指示为止。
另一方面,异步客户端648可由通过框架管理器440存取的一个或一个以上线程436(见图4)并行处置。框架440可创建对线程436的回调,且可在回调已由相应线程436执行时返回值。所属领域的技术人员认识到,异步客户端648不像同步客户端648在同步客户端648的任务正在被执行时那样锁住资源。
在框1320之后,在决策框1325中,框架管理器440确定客户端645所识别的资源是否可用。如果对决策框1325的询问是否定的,那么遵循“否”分支到框1330,其中将空值或消息返回给用户,从而指示客户端648此时无法创建。
如果对决策框1325的询问是肯定的,那么遵循“是”分支到决策框1335,其中框架管理器440确定客户端648所识别的每一资源是否支持框1310中所提供的客户端类型。如果对决策框1335的询问是否定的,那么遵循“否”分支返回到框1330,其中返回空值或消息,从而指示客户端648此时无法创建。
如果对决策框1335的询问是肯定的,那么遵循“是”分支到框1340,其中框架管理器440在存储器中创建或例示客户端648。接下来,在框1345中,如果在框1310中接收到任何定制用户数据,例如任选自变量,那么将用特定节点601的相应资源映射这些任选自变量。接下来,在框1350中,新创建的客户端645耦合到在闲置状态下或在所请求状态上的其对应的一个或一个以上资源,如上文在图10C中所说明。过程接着返回到图12的框1210。
图14是说明用于相对于PCD100的软件架构中的资源601来创建客户端请求675的方法1400的流程图。通常在如上文结合图10D到10E以及图13所述的客户端创建和节点创建之后执行方法1400。
框1405是用于相对于资源601创建客户端请求675的方法1400中的第一步骤。此方法1400将描述以下三种类型的请求675如何由框架管理器440处置:(a)所需的,(b)脉冲以及(c)向量。如上文所提到的请求675的名称所暗示,客户端请求675通常与上文结合图14所创建且描述的客户端类型对应。
在框1405中,框架管理器440可接收与特定客户端请求675(例如上文所提到的三个中的一者:(a)所需的,(b)脉冲以及(c)向量)相关联的数据。与所需请求相关联的数据通常包括从所需客户端648传递到特定资源601的标度值。举例来说,所需的请求可包括某一数目的每秒百万个指令(MIP)。同时,脉冲请求包括在某一时间周期内完成某一活动的请求,而无开始时间或停止时间的任何指定。用于向量请求的数据通常包括需要串行或并行完成的多个动作的阵列。向量请求可包括任意长度的值。向量请求通常具有大小值和值阵列。可扩展节点601的每一资源以具有指针字段,以便支持向量请求。在“C”编程语言中,如所属领域的技术人员所理解,指针字段由并集函数支持。
接下来,在框1410中,框架管理器440通过由上文结合图13所述的方法而创建的客户端648发出请求。随后,在框1415中,如果请求为所需类型或向量类型,那么框架管理器440加倍缓冲正通过客户端传递的请求数据。如果请求是脉冲类型,那么框架管理器440跳过框1415。
对于所需请求,在此框1415中,将来自先前请求的值保存在存储器中,使得框架管理器440可确定当前组的所请求值中的先前所请求值之间是否存在任何差异。对于向量请求,先前请求通常不维持在存储器中,但节点601的资源可针对特定实施方案而根据需要维持先前请求。因此,对于向量类型的请求,框1415是任选的。
在框1420中,框架管理器440计算当前组的所请求值中的先前组所请求值之间的增量或差异。在决策框1425中,框架管理器确定当前组的所请求值是否与先前组的所请求值相同。换句话说,框架管理器440确定当前组的所请求值与先前组的所请求值之间是否存在差异。如果当前组与先前组的所请求值之间不存在差异,那么遵循“是”分支(其跳过框1430到框1470)到框1475,其中过程结束。
如果对决策框1425的询问是否定的,意味着所述组所请求值相对于所述组预先请求值不同,那么遵循“否”分支到决策框1430。
在决策框1430中,框架管理器440确定当前请求是否为异步请求。如果对决策框1430的询问是否定的,那么遵循“否”分支到框1440,其中对应于客户端请求675的资源601被框架管理器440锁定。如果对决策框1430的询问是肯定的,意味着当前请求是异步请求类型,那么遵循“是”分支到框1435,其中可将请求推送到另一线程上,且可由另一核执行,前提是多核系统(类似于图1的多核系统)当前由框架管理器440管理。已用虚线说明了框1435,以指示在PCD100为单核中央处理系统的情况下,此步骤可为任选的。
随后,在框1440中,对应于请求675的资源601被框架管理器440锁定。接下来,在框1445中,资源601执行更新功能,其通常对应于在图11的框1130中接收到的资源阵列数据的插件数据。更新功能通常包括负责根据新客户端请求的新资源状态的功能。更新功能将其先前状态与客户端请求中的所请求状态进行比较。如果所请求状态大于先前状态,那么更新功能将执行客户端请求。然而,如果所请求状态等于或小于当前状态以及资源正在其下操作的状态,那么将不执行客户端请求,以便增加效率,因为老状态实现或满足所请求状态。更新功能获取来自客户端的新请求,且将其与所有其它活动请求聚集起来,以确定资源的新状态。
举例来说,多个客户端可正请求一总线时钟频率。对总线时钟的更新功能将通常取所有客户端请求中的最大者,且将其用作总线时钟的新所要状态。这不是所有资源均将使用同一更新功能的情况,但存在将由多个资源使用的一些更新功能。一些常见更新功能将取客户端请求中的最大者、取客户端请求中的最小者且对客户端请求进行求和。或者资源可界定其自己的定制更新功能,前提是其资源需要以某一独特方式聚集请求。
接下来,在框1450中,框架管理器440将数据传递到对应于客户端648的资源,使得所述资源可执行节点601的资源特定的驱动器功能。驱动器功能应用如更新功能所计算的资源状态。这可需要更新硬件设定,将请求发出到相依资源,调用旧式功能或以上各项的某一组合。
在先前实例中,更新功能计算所请求的总线时钟频率。驱动器功能可接收所述所请求频率,且其可更新时钟频率控制HW,以在所述频率下运行。注意,有时驱动器功能可能不满足更新功能已计算的确切所请求状态。在此情况下,驱动器功能可选择最满足所述请求的频率。举例来说,总线时钟HW可仅能够在128MHz和160MHz下运行,但所请求状态可为150MHz。在此情况下,驱动器功能应在160MHz下运行,因为其超过所请求状态。
接下来,在框1455中,框架440从已在框1450中执行了驱动器功能的资源接收状态控制。随后,在框1460中,如果相对于资源来界定,那么可触发事件690,使得对应于事件690的数据被传回到客户端648。事件可在另一线程中处理。这可最小化资源锁定的情况下所花费的时间量,且允许如图1中所说明的多核系统中的更并行的操作。可以类似于可如何相对于资源界定请求的方式来相对于资源界定一个或一个以上事件690,如此方法1400中所描述。换句话说,事件创建过程可较大程度上与客户端创建过程并行。与事件不同的一个地方是有可能界定仅在某些阈值交叉时触发的事件。
仅基于阈值而触发的事件的此界定允许以下通知:资源何时被超额预订(其具有比其可支持的同时用户多的同时用户),其指示系统过载条件;或资源何时变低/关闭,其可允许关断其它东西,恢复在系统变为超额预订时停用的功能等。因为可结合阈值进行事件登记,因此其减少了系统必须对事件通知所做的工作量,以仅在存在确实必要的某一事件时发生。还可能在每次状态改变时为事件登记。
接下来,在任选框1465中,如果正处理的请求为向量请求,那么通常执行此任选框1465。任选框1465通常包括检查或确定,以评定向量指针是否仍位于用户传递到向量中的相同数据上。如果对此任选框1465的询问是肯定的,意味着指针仍指向由用户传递到向量中的相同数据,那么清除指针,使得对旧数据的参考不予维持。与脉冲请求和所需请求相比,通常执行此任选框1465以在正处理向量请求时考虑上文所述的加倍缓冲框1415。
随后,在框1470中,框架440解锁所请求的资源,使得其它客户端请求648可由特定节点601的当前但不是现在释放的所请求资源处置。所述过程接着返回到第一框1405,以用于接收下一客户端请求。
鉴于上文的揭示内容,编程领域的技术人员能够毫无困难地基于例如本说明书中的流程图和相关联的描述而编写计算机代码或识别适当硬件和/或电路来实施所揭示的本发明。因此,不将特定一组程序代码指令或详述硬件装置的揭示视为对充分理解如何制作和使用本发明来说是必要的。在以上描述中且结合可说明各种过程流的图更详细地阐释所主张的计算机实施的过程的发明性功能性。
在一个或一个以上示范性方面中,所描述的功能可在硬件、软件、固件或其任何组合中实施。如果以软件来实施,那么可将所述功能作为一个或一个以上指令或代码存储在计算机可读媒体上或经由计算机可读媒体传输。计算机可读媒体包括计算机存储媒体与包括促进计算机程序从一处传递到另一处的任何媒体的通信媒体两者。存储媒体可为可由计算机存取的任何可用媒体。作为实例而非限制,此计算机可读媒体可包含RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置,或可用以运载或存储呈指令或数据结构形式的所要程序代码且可通过计算机存取的任何其它媒体。
同样,可恰当地将任何连接称作计算机可读媒体。举例来说,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(“DSL”)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输软件,那么同轴电缆、光纤电缆、双绞线、DSL或例如红外线、无线电及微波的无线技术包括于媒体的定义中。
如本文中所使用,磁盘及光盘包括压缩光盘(“CD”)、激光光盘、光学光盘、数字多功能光盘(“DVD)、软磁盘及蓝光光盘,其中磁盘通常磁性地再现数据,而光盘使用激光光学地再现数据。上文的组合也应包括在计算机可读媒体的范围内。
尽管已详细说明和描述了选定方面,但将理解,在不脱离如所附权利要求书所界定的本发明的精神和范围的情况下,可对本文进行各种替代和更改。
Claims (40)
1.一种用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法,其包括:
接收包括主装置-从属装置对的客户端请求;
进行对对应于所述主装置-从属装置对的从属装置的搜索;
为对应于所述主装置-从属装置对的通信创建路线;
将对应于所述路线的一个或一个以上句柄存储在存储器装置中;
设定所述路线的带宽;以及
使用所述所创建的路线且在设定所述路线的所述带宽之后处理所述客户端请求。
2.根据权利要求1所述的方法,其中进行对所述从属装置的所述搜索包括比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符。
3.根据权利要求1所述的方法,其中进行对所述从属装置的所述搜索包括检视结构路线检查表,以寻找可在交换结构内询问的从属装置。
4.根据权利要求1所述的方法,其中进行对所述从属装置的所述搜索包括跨所述PCD的一个或一个以上不同交换结构进行搜索。
5.根据权利要求1所述的方法,其进一步包括利用节点架构来跟踪通信,其中每一主装置由一节点表示,且每一从属装置由一节点表示。
6.根据权利要求1所述的方法,其中设定所述路线的所述带宽进一步包括将所述客户端请求的参数转换为瞬时带宽Ib和平均带宽Ab值。
7.根据权利要求6所述的方法,其中通过以下等式确定所述瞬时带宽Ib:
Ib=BS/W
其中“BS”为以字节数目表达的块大小,且“W”是以时间单位表达的窗大小。
8.根据权利要求6所述的方法,其中通过以下等式确定所述平均带宽Ab:
Ab=BS/P
其中“BS”为以字节数目表达的块大小,且“P”是以时间单位表达的周期。
9.根据权利要求6所述的方法,其中通过以下等式确定所述平均带宽Ab:
Ab=T×(Z%)
其中“Ab”为平均带宽;其中“T”为发出软件请求的中央处理单元的所要时钟速度;且“Z%”为使用和高速缓冲存储器未中的百分比中的至少一者的百分比。
10.根据权利要求6所述的方法,其中从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求的总和中计算所述平均带宽Ab,且从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求中的最大者中计算所述瞬时带宽。
11.一种用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的计算机系统,所述系统包括:
处理器,其可操作以用于:
接收包括主装置-从属装置对的客户端请求;
进行对对应于所述主装置-从属装置对的从属装置的搜索;
为对应于所述主装置-从属装置对的通信创建路线;
将对应于所述路线的一个或一个以上句柄存储在存储器装置中;
设定所述路线的带宽;以及
使用所述所创建的路线且在设定所述路线的所述带宽之后处理所述客户端请求。
12.根据权利要求11所述的系统,其中进行对所述从属装置的所述搜索包括比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符。
13.根据权利要求11所述的系统,其中进行对所述从属装置的所述搜索包括检视结构路线检查表,以寻找可在交换结构内询问的从属装置。
14.根据权利要求11所述的系统,其中进行对所述从属装置的所述搜索包括跨所述PCD的一个或一个以上不同交换结构进行搜索。
15.根据权利要求11所述的系统,其所述处理器进一步可操作以用于利用节点架构来跟踪通信,其中每一主装置由一节点表示,且每一从属装置由一节点表示。
16.根据权利要求11所述的系统,其中设定所述路线的所述带宽进一步包括将所述客户端请求的参数转换为瞬时带宽Ib和平均带宽Ab值。
17.根据权利要求16所述的系统,其中通过以下等式确定所述瞬时带宽Ib:
Ib=BS/W
其中“BS”为以字节数目表达的块大小,且“W”是以时间单位表达的窗大小。
18.根据权利要求16所述的系统,其中通过以下等式确定所述平均带宽Ab:
Ab=BS/P
其中“BS”为以字节数目表达的块大小,且“P”是以时间单位表达的周期。
19.根据权利要求16所述的系统,其中通过以下等式确定所述平均带宽Ab:
Ab=T×(Z%)
其中“Ab”为平均带宽;其中“T”为发出软件请求的中央处理单元的所要时钟速度;且“Z%”为使用和高速缓冲存储器未中的百分比中的至少一者的百分比。
20.根据权利要求16所述的系统,其中从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求的总和中计算所述平均带宽Ab,且从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求中的最大者中计算所述瞬时带宽。
21.一种用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的计算机系统,所述系统包括:
用于接收包括主装置-从属装置对的客户端请求的装置;
用于进行对对应于所述主装置-从属装置对的从属装置的搜索的装置;
用于为对应于所述主装置-从属装置对的通信创建路线的装置;
用于将对应于所述路线的一个或一个以上句柄存储在存储器装置中的装置;
用于设定所述路线的带宽的装置;以及
用于使用所述所创建的路线且在设定所述路线的所述带宽之后处理所述客户端请求的装置。
22.根据权利要求21所述的系统,其中所述用于进行对所述从属装置的所述搜索的装置包括用于比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符的装置。
23.根据权利要求21所述的系统,其中所述用于进行对所述从属装置的所述搜索的装置包括用于检视结构路线检查表以寻找可在交换结构内询问的从属装置的装置。
24.根据权利要求21所述的系统,其中所述用于进行对所述从属装置的所述搜索的装置进一步包括跨所述PCD的一个或一个以上不同交换结构进行搜索。
25.根据权利要求21所述的系统,其进一步包括用于利用节点架构来跟踪通信的装置,其中每一主装置由一节点表示,且每一从属装置由一节点表示。
26.根据权利要求21所述的方法,其中所述用于设定所述路线的所述带宽的装置进一步包括用于将所述客户端请求的参数转换为瞬时带宽Ib和平均带宽Ab值的装置。
27.根据权利要求26所述的系统,其中通过以下等式确定所述瞬时带宽Ib:
Ib=BS/W
其中“BS”为以字节数目表达的块大小,且“W”是以时间单位表达的窗大小。
28.根据权利要求26所述的系统,其中通过以下等式确定所述平均带宽Ab:
Ab=BS/P
其中“BS”为以字节数目表达的块大小,且“P”是以时间单位表达的周期。
29.根据权利要求26所述的系统,其中通过以下等式确定所述平均带宽Ab:
Ab=T×(Z%)
其中“Ab”为平均带宽;其中“T”为发出软件请求的中央处理单元的所要时钟速度;且“Z%”为使用和高速缓冲存储器未中的百分比中的至少一者的百分比。
30.根据权利要求26所述的系统,其中从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求的总和中计算所述平均带宽Ab,且从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求中的最大者中计算所述瞬时带宽。
31.一种计算机程序产品,其包括其中体现有计算机可读程序代码的计算机可用媒体,所述计算机可读程序代码适于经执行以实施用于创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法,所述方法包括:
进行对对应于所述主装置-从属装置对的从属装置的搜索;
为对应于所述主装置-从属装置对的通信创建路线;
将对应于所述路线的一个或一个以上句柄存储在存储器装置中;
设定所述路线的带宽;以及
使用所述所创建的路线且在设定所述路线的所述带宽之后处理所述客户端请求。
32.根据权利要求31所述的计算机程序产品,其中进行对所述从属装置的所述搜索包括比较指派给主装置-从属装置层级中的每一从属装置的唯一识别符。
33.根据权利要求31所述的计算机程序产品,其中进行对所述从属装置的所述搜索包括检视结构路线检查表,以寻找可在交换结构内询问的从属装置。
34.根据权利要求31所述的计算机程序产品,其中进行对所述从属装置的所述搜索包括跨所述PCD的一个或一个以上不同交换结构进行搜索。
35.根据权利要求31所述的计算机程序产品,其中所述程序代码实施所述方法进一步包括:
利用节点架构来跟踪通信,其中每一主装置由一节点表示,且每一从属装置由一节点表示。
36.根据权利要求31所述的计算机程序产品,其中设定所述路线的所述带宽进一步包括将所述客户端请求的参数转换为瞬时带宽Ib和平均带宽Ab值。
37.根据权利要求36所述的计算机程序产品,其中通过以下等式确定所述瞬时带宽Ib:
Ib=BS/W
其中“BS”为以字节数目表达的块大小,且“W”是以时间单位表达的窗大小。
38.根据权利要求36所述的计算机程序产品,其中通过以下等式确定所述平均带宽Ab:
Ab=BS/P
其中“BS”为以字节数目表达的块大小,且“P”是以时间单位表达的周期。
39.根据权利要求36所述的计算机程序产品,其中通过以下等式确定所述平均带宽Ab:
Ab=T×(Z%)
其中“Ab”为平均带宽;其中“T”为发出软件请求的中央处理单元的所要时钟速度;且“Z%”为使用和高速缓冲存储器未中的百分比中的至少一者的百分比。
40.根据权利要求36所述的计算机程序产品,其中从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求的总和中计算所述平均带宽Ab,且从对应于所述所创建的路线的交换结构内和跨所述交换结构的所有客户端请求中的最大者中计算所述瞬时带宽。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/101,937 | 2011-05-05 | ||
US13/101,937 US8595366B2 (en) | 2011-05-05 | 2011-05-05 | Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device |
PCT/US2012/035847 WO2012151162A2 (en) | 2011-05-05 | 2012-04-30 | Method and system for dynamically creating and servicing master-slave pairs within and across switch fabrics of a portable computing device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103597784A true CN103597784A (zh) | 2014-02-19 |
CN103597784B CN103597784B (zh) | 2016-09-28 |
Family
ID=46062763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280027321.XA Expired - Fee Related CN103597784B (zh) | 2011-05-05 | 2012-04-30 | 用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8595366B2 (zh) |
EP (1) | EP2705433B1 (zh) |
JP (1) | JP5759619B2 (zh) |
KR (1) | KR101503209B1 (zh) |
CN (1) | CN103597784B (zh) |
WO (1) | WO2012151162A2 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971072B2 (en) * | 2011-12-30 | 2015-03-03 | Bedrock Automation Platforms Inc. | Electromagnetic connector for an industrial control system |
US11967839B2 (en) | 2011-12-30 | 2024-04-23 | Analog Devices, Inc. | Electromagnetic connector for an industrial control system |
US9467297B2 (en) | 2013-08-06 | 2016-10-11 | Bedrock Automation Platforms Inc. | Industrial control system redundant communications/control modules authentication |
US10834094B2 (en) | 2013-08-06 | 2020-11-10 | Bedrock Automation Platforms Inc. | Operator action authentication in an industrial control system |
US9191203B2 (en) | 2013-08-06 | 2015-11-17 | Bedrock Automation Platforms Inc. | Secure industrial control system |
US11144630B2 (en) | 2011-12-30 | 2021-10-12 | Bedrock Automation Platforms Inc. | Image capture devices for a secure industrial control system |
US8862802B2 (en) * | 2011-12-30 | 2014-10-14 | Bedrock Automation Platforms Inc. | Switch fabric having a serial communications interface and a parallel communications interface |
US11314854B2 (en) | 2011-12-30 | 2022-04-26 | Bedrock Automation Platforms Inc. | Image capture devices for a secure industrial control system |
US8868813B2 (en) | 2011-12-30 | 2014-10-21 | Bedrock Automation Platforms Inc. | Communications control system with a serial communications interface and a parallel communications interface |
US9727511B2 (en) | 2011-12-30 | 2017-08-08 | Bedrock Automation Platforms Inc. | Input/output module with multi-channel switching capability |
US9437967B2 (en) | 2011-12-30 | 2016-09-06 | Bedrock Automation Platforms, Inc. | Electromagnetic connector for an industrial control system |
US10834820B2 (en) | 2013-08-06 | 2020-11-10 | Bedrock Automation Platforms Inc. | Industrial control system cable |
US9600434B1 (en) | 2011-12-30 | 2017-03-21 | Bedrock Automation Platforms, Inc. | Switch fabric having a serial communications interface and a parallel communications interface |
CN103748943A (zh) * | 2012-08-17 | 2014-04-23 | 华为技术有限公司 | 用户设备配对处理方法、网络侧设备和用户设备 |
US10613567B2 (en) | 2013-08-06 | 2020-04-07 | Bedrock Automation Platforms Inc. | Secure power supply for an industrial control system |
US10013172B2 (en) * | 2015-07-10 | 2018-07-03 | The Keyw Corporatin | Electronic data storage device with multiple configurable data storage mediums |
KR102409158B1 (ko) | 2016-05-10 | 2022-06-14 | 엘에스일렉트릭(주) | 슬레이브 디바이스 제어 방법 |
US10169274B1 (en) | 2017-06-08 | 2019-01-01 | Qualcomm Incorporated | System and method for changing a slave identification of integrated circuits over a shared bus |
JP7106984B2 (ja) * | 2018-05-22 | 2022-07-27 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置、情報処理システム及びプログラム |
SE2030332A1 (en) * | 2020-11-06 | 2022-05-07 | Aakerfeldt Erik | Seamless multiplayer experience |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020075941A1 (en) * | 2000-12-14 | 2002-06-20 | Motorola, Inc. | Multiple access frequency hopping network with interference anticipation |
US20040258135A1 (en) * | 2003-06-19 | 2004-12-23 | Higgins Robert J. | Diversity synchronous connection-oriented audio communication modes |
US7028096B1 (en) * | 1999-09-14 | 2006-04-11 | Streaming21, Inc. | Method and apparatus for caching for streaming data |
US20090259736A1 (en) * | 2008-04-15 | 2009-10-15 | Juniper Networks, Inc. | Label-based target host configuration for a server load balancer |
WO2010048048A2 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Configuration management in distributed data systems |
US20100115167A1 (en) * | 2008-11-05 | 2010-05-06 | Mediatek Inc. | Shared Resource Arbitration |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
USRE38428E1 (en) | 1995-05-02 | 2004-02-10 | Apple Computer, Inc. | Bus transaction reordering in a computer system having unordered slaves |
US6072798A (en) | 1995-11-01 | 2000-06-06 | Whittaker Corporation | Network access communication switch |
KR100266256B1 (ko) * | 1997-12-31 | 2000-09-15 | 강병호 | 프로세서와 디바이스들 간의 통신 장치 |
US6570849B1 (en) * | 1999-10-15 | 2003-05-27 | Tropic Networks Inc. | TDM-quality voice over packet |
TWI223942B (en) * | 2001-02-20 | 2004-11-11 | Li Jian Min | Contents transmission network system and creating method thereof |
US20030208572A1 (en) | 2001-08-31 | 2003-11-06 | Shah Rajesh R. | Mechanism for reporting topology changes to clients in a cluster |
US7188202B1 (en) | 2003-09-29 | 2007-03-06 | Emc Corporation | Techniques for accessing devices through a set of serial buses |
US20050091432A1 (en) | 2003-10-28 | 2005-04-28 | Palmchip Corporation | Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs |
US7623524B2 (en) | 2003-12-22 | 2009-11-24 | Intel Corporation | Scheduling system utilizing pointer perturbation mechanism to improve efficiency |
JP2005250833A (ja) * | 2004-03-04 | 2005-09-15 | Nec Electronics Corp | バスシステム及びアクセス制御方法 |
US7773591B2 (en) * | 2007-07-06 | 2010-08-10 | Integrated Device Technology, Inc. | Integrated memory for storing egressing packet data, replay data and to-be egressed data |
US20090307408A1 (en) | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US7934046B2 (en) | 2008-07-02 | 2011-04-26 | International Business Machines Corporation | Access table lookup for bus bridge |
JP2011095966A (ja) | 2009-10-29 | 2011-05-12 | Yamaha Corp | アクセスコントローラ |
US8539132B2 (en) * | 2011-05-16 | 2013-09-17 | Qualcomm Innovation Center, Inc. | Method and system for dynamically managing a bus of a portable computing device |
-
2011
- 2011-05-05 US US13/101,937 patent/US8595366B2/en active Active
-
2012
- 2012-04-30 WO PCT/US2012/035847 patent/WO2012151162A2/en active Application Filing
- 2012-04-30 EP EP20120720749 patent/EP2705433B1/en not_active Not-in-force
- 2012-04-30 KR KR1020137032235A patent/KR101503209B1/ko not_active IP Right Cessation
- 2012-04-30 CN CN201280027321.XA patent/CN103597784B/zh not_active Expired - Fee Related
- 2012-04-30 JP JP2014509343A patent/JP5759619B2/ja not_active Expired - Fee Related
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7028096B1 (en) * | 1999-09-14 | 2006-04-11 | Streaming21, Inc. | Method and apparatus for caching for streaming data |
US20020075941A1 (en) * | 2000-12-14 | 2002-06-20 | Motorola, Inc. | Multiple access frequency hopping network with interference anticipation |
US20040258135A1 (en) * | 2003-06-19 | 2004-12-23 | Higgins Robert J. | Diversity synchronous connection-oriented audio communication modes |
US20090259736A1 (en) * | 2008-04-15 | 2009-10-15 | Juniper Networks, Inc. | Label-based target host configuration for a server load balancer |
WO2010048048A2 (en) * | 2008-10-24 | 2010-04-29 | Microsoft Corporation | Configuration management in distributed data systems |
US20100115167A1 (en) * | 2008-11-05 | 2010-05-06 | Mediatek Inc. | Shared Resource Arbitration |
Also Published As
Publication number | Publication date |
---|---|
EP2705433B1 (en) | 2015-05-20 |
US8595366B2 (en) | 2013-11-26 |
JP2014513494A (ja) | 2014-05-29 |
WO2012151162A2 (en) | 2012-11-08 |
WO2012151162A3 (en) | 2013-01-10 |
JP5759619B2 (ja) | 2015-08-05 |
KR20140014273A (ko) | 2014-02-05 |
KR101503209B1 (ko) | 2015-03-24 |
CN103597784B (zh) | 2016-09-28 |
EP2705433A2 (en) | 2014-03-12 |
US20120284354A1 (en) | 2012-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103597784A (zh) | 用于动态地创建和服务便携式计算装置的交换结构内和跨所述交换结构的主装置-从属装置对的方法和系统 | |
Liu et al. | Adaptive asynchronous federated learning in resource-constrained edge computing | |
CN103765387B (zh) | 便携式计算装置中的分布式资源管理 | |
CN105684377B (zh) | 一种创建支持mpp数据库中的可重读隔离级别的分布式事务管理器的系统和方法 | |
CN104335137B (zh) | 管理计算系统的功耗和性能 | |
US7831734B2 (en) | Method and system for remote configuration of network devices | |
CN103782275A (zh) | 用于管理便携式计算装置的资源的系统和方法 | |
CN103098033A (zh) | 用于管理便携式计算设备的资源的系统和方法 | |
WO2014165160A1 (en) | System and method for performing a transaction in a massively parallel processing database | |
CN108920153A (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN104303149A (zh) | 用于调度便携式计算设备中的请求的方法和系统 | |
CN106534281A (zh) | 一种数据请求的响应方法、装置及系统 | |
EP2425585B1 (en) | System and method for managing configurations of ncpi devices | |
CN106296135A (zh) | 事件提醒方法、装置及终端 | |
CN114650320B (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN103782277B (zh) | 用于管理便携式计算装置上的平行资源请求的方法及系统 | |
CN109889406A (zh) | 用于管理网络连接的方法、装置、设备和存储介质 | |
CN110325980B (zh) | 用于数据库绑定型应用的用户界面后端集群的扩展方法 | |
CN116233495A (zh) | 节目资源的推荐方法、装置、节目管理引擎以及存储介质 | |
CN110457392B (zh) | 副本读写方法及装置 | |
CN117389399A (zh) | 一种多核协同复位方法、装置、设备及介质、一种车辆 | |
CN116243915A (zh) | 一种数据处理方法、装置、计算机设备和计算机可读存储介质 | |
CN115167156A (zh) | 设备添加方法及装置、系统、介质及电子设备 | |
EP4197133A1 (en) | Entities and methods for supporting distributed data analysis in a communication network | |
CN114064667A (zh) | 一种数据处理的方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160928 Termination date: 20190430 |