支持访问由操作系统环境外的资源提供的功能的方法和系统的制作方法

文档序号:6596668阅读:564来源:国知局
专利名称:支持访问由操作系统环境外的资源提供的功能的方法和系统的制作方法
技术领域
本发明领域涉及用于支持访问由操作系统环境外的资源提供的功能的方法,以及其处理子系统和处理系统。
背景技术
诸如用户应用的计算机程序应用通常被写成在操作系统(OS)环境中运行。此外,这些计算机程序应用通常利用例如OS及其基础软件层和硬件所提供的标准/公用功能,以执行标准/公用功能。通过由操作系统使之可用的应用编程接ロ(API),这种标准功能通常对于计算机程序应用而言是可访问的,从而计算机程序应用仅向适当的API做出“功能调用”,用于访问需要的功能。 总的来说,计算机系统包括単一处理器架构,或者将两个或多个相同处理器核心连接至单一共享主存储器并且在公共OS的实例下操作的对称多处理器(SMP)架构。因此,基本上,包括计算机核心的所有系统资源在OS的控制下,或可借助其而访问。在接收到对于API的这种功能调用吋,OS保留执行该调用功能所需要的资源,并且初始化该功能以执行。然后,OS将任何返回的參数等回传至调用该功能的计算机程序应用。非対称多处理(ASMP)是多处理器系统的已知可选方法,因此,并非所有处理器核心被视为相同的(即使它们物理上是相同的)。例如,一个处理器核心可以被指定为“主”处理器核心,而ー个或多个其他处理器核心被指定为“从”处理器核心。OS可以通过与例如单一处理器架构类似的方式,在“主”处理器上运行,但可以将某些任务或功能指配为由ー个或多个“从”处理器核心执行。通过这种方式,重复的或耗时的任务可以被OS “外包”给从处理器核心,从而解放了主处理器核心以执行其他任务。此外,时间关键的任务可以被指配给从处理器核心,其能够不间断地执行该任务,或者需要复杂计算的任务可以被指配给从处理器器核心,其包含专用硬件,以比仅在软件中执行更有效率地执行这种复杂计算。值得注意的是,从处理器核心资源处于OS的直接控制之外(在功能性和/或物理含义上)。結果,为了应用访问外包的功能,OS与软件通信是必要的,诸如在从处理器核心上运行的监瞀程序。典型的是,与单一系统的处理器核心相反,通过将两个处理器核心视为如同它们是分离的联网的计算设备,并且使用标准通信方法,可以实现这种通信,其中,所述标准通信方法例如是基于伯克利套接字API的套接字API方式。这种支持在ASMP处理器核心之间通信的已知方法的问题是,这种通信机制旨在支持跨网络通信等,而非在相同处理系统内的处理器核心之间的通信。結果,这种连接的建立,例如,通过每个处理器核心建立套接字,是比较繁琐的。此外,在这种通信机制中使用的特征,诸如例外处理,当仅在相同处理系统中的处理器核心之间通信时,是非必要的,因此,支持这些特征大大降低了通信机制的效率。当实施非対称多处理时遇到的进ー步问题是,多年以来,对称多处理已经成为多处理器架构的主导方式。因此,计算机程序应用通常被写成在単一处理器架构或SMP架构上运行,从而所有系统资源在OS控制下。此外,计算机程序应用很少被写成不需要解释,或使用传统代码段、示例代码段等。为了避免需要重写已经存在的计算机程序应用,可取的是,能够在ASMP系统上使用已经为SMP系统编写的计算机程序应用。然而,识别与待由在OS控制以外的硬件(例如,从处理器核心)执行的功能相关的现有应用代码的那些部分,从而需要根据使用的通信方式进行修改,是极其困难的,因为对于这种代码的具体了解可能是不可实现的。

发明内容
本发明提供如随附的权利要求中所描述的、用于支持访问由操作系统环境外的资源提供的功能的方法,处理子系统、包括处理子系统的处理系统、和计算机程序产品。本发明的具体实施例在从属权利要求中阐述。本发明的这些和其他方面将从下文描述的实施例中显而易见,或者參考这些实施、例而得到阐明。


參考附图,仅通过示例的方式,将描述本发明的进ー步细节、方面和实施例。在附图中,相同參考符号用于识别相同或功能相似元件。为了简洁明了,附图中的元件被示出,但是没有必要按比例画出。图I示出了处理系统的简化示例。图2和图3示出了通过图I的操作系统环境外的资源提供的功能的示例。图4示出了主操作系统缓冲池的部分的示例。图5和图6示出了用于支持访问通过操作系统环境外的资源提供的功能的方法的简化流程图的示例。图7和图8示出了用于支持访问通过操作系统环境外的资源提供的功能的方法的简化流程图的可选示例。图9至图11示出了建立应用程序代码的方法的示例。图12示出了典型计算系统。
具体实施例方式例如,在此參考支持访问操作系统环境外所提供/处于其外的加速器功能,来描述本发明。然而,应该明白的是,本发明的概念不限于支持访问加速器功能,并且可以实现为支持访问通过操作系统环境外的资源而提供的任何功能。因为使用本领域的技术人员已知的电子组件和电路,在极大程度上可以实施本发明的被示出的实施例,所以不会以比下文认为必需示出的更深程度来解释详细说明,以便理解和领会本发明的基础概念,并且以便不模糊和分散本发明的教导。參考图1,示出了处理系统100的简化示例,处理系统100包括设置成在操作系统环境105中操作的第一处理子系统110,以及设置成基本在操作系统环境105的外部操作的至少又ー个(第二)处理子系统120。用于示出的示例的第一处理子系统110包括处理器核心112的形式的ー个或多个处理模块。将主操作系统的实例设置成在处理器核心112上执行,以便主操作系统将用于每个处理器核心112的公共编码区域101、公共数据区域102、和局部数据区域103提供给第一处理子系统120。用于示出的示例的至少另ー(第二)处理子系统120包括处理器核心122的形式的ー个或多个处理模块。在一个示例中,监瞀程序的实例可以被设置成在第二处理子系统120的处理器核心122上执行,以便向第二处理子系统提供有用于每个处理器核心122的公共核心区域106、公共数据区域107、以及局域数据区域108。处理系统100还可以包括位于操作系统环境105内并且可访问至少另ー(第二)处理子系统和120的存储器区域,其示例性示例是处于以操作系统缓冲池130的形式。对于示例性实例,第一处理子系统110可以包括対称性多处理器(SMP)构架,对称性多处理器架构包括多个处理核心112。相反地,第二处理子系统120可以包括非対称性多处理器(ASMP)构架,非对称性多处理器构架包括一个或多个处理核心122。以该方式,处理系统100可以包括混合SMP和ASMP构架。
此外,在示出示例时,第一和第二处理子系统110、120的每个包括处理器核心112、122的形式的多个处理模块,在一些不例中,处理子系统可以包括一个或多个处理模块,处理模块包括任何合适的硬件配置。例如,处理子系统可以包括ー个或多个中央处理单元(CPU)。可选地,处理子系统可以包括一个或者多个专用处理硬件元件,诸如设置成执行一个或多个专用功能的数字信号处理器(DSP)或微处理器。还可选地,处理子系统可以包括处理元件的组合,诸如ー个或多个CPU和一个或多个专用DSP/微控制器的组合。因此,关于在此使用的处理模块可以涉及诸如CPU、DSP等的用于处理信号的任何合适硬件配置。根据本发明的第一方面的ー些示例,针对被示出的示例包括处理核心112的第一处理子系统Iio的一个或多个处理模块被设置成执行主运行时刻程序代码116,主运行时刻程序代码116被设置以从应用114接收对例如通过处理子系统120的由操作系统环境105外的资源提供的功能的调用。在接收这种调用之后,(例如使用主运行时刻程序代码116)的第一处理子系统110被设置成将来自被接收的调用内的功能參数复制到可访问提供被调用功能的操作系统环境105外的资源的存储器区域,例如,复制到操作系统缓冲池130内的存储器区域。对于示出的示例,主运行时刻程序代码116可以包括主加速器运行时刻(HART)接ロ,主加速器运行时刻接ロ被设置成支持访问操作系统环境105外的资源提供的加速器功能。根据本发明的第二方面的ー些示例,针对被示出的示例包括处理核心122的第二处理子系统120的一个或多个处理模块被设置成执行辅助运行时刻程序代码126,辅助运行时刻程序代码126被设置成接收指示,该指示是需要执行通过第二处理子系统120提供的功能。在接收这种指示之后,第二处理子系统120 (例如,通过执行辅助运行时刻程序代码126)被设置成从操作系统环境105内的存储器区域检索功能參数,例如从操作系统缓冲池130内的存储器区域中;并且设置成利用被检索的功能參数建立用于所需功能的功能调用。对于示出的示例,辅助运行时刻程序代码126可以包括加速器运行时刻(ART)接ロ,カロ速器运行时刻接ロ被配置成支持访问第二处理子系统120提供的加速器功能。图2示出了操作系统环境105外的资源提供的功能的示例,例如,通过诸如应用114而访问的第二处理子系统120所提供的。用于所述功能的调用214被操作系统环境中存在的主接ロ运行时刻程序116接收,其选择用于提供调用功能的资源,例如处理核心122中的一个空闲的处理核心122,并且在选择用于提供调用功能的资源时,将功能參数复制到选定的资源可访问的存储器区域中,并且将由此提供的功能需要被执行的指示发送到用于选择资源的辅助接ロ运行时刻程序126。可选地,主接ロ运行时刻程序116可以简单地将功能參数复制到可以访问被选择的资源的存储器区域,并且根据辅助接ロ运行程序126,以检测其中功能參数的存在。以该种方式,在从主接ロ运行时刻程序116接收这种指示之后,或者检测在存储器区域内的功能參数之后,辅助接ロ运行时刻程序126能够从存储器区域简单地检索功能參数,并且能够利用被检索的功能參数建立用于所需要的功能的功能调用。显著地,在操作系统环境中的应用,或者即使操作系统本身,在不需要建立诸如通过常规系统所需要的套接ロ API的方式的、繁琐(cumbersome)的通信连接的情形下,能够访问操作系统环境的外部提供的功能。此外,基本避免在诸如例外处理等的这种常规通信机制中使用的不必要的特征。因此,提供了ー种支持访问操作系统环境外的资源提供的功能的更加简单有效的 机制。此外,提供了操作系统环境内的存储器区域的使用,该存储器区域通过操作系统环境外的资源可被访问,以便在处理子系统之间传递功能參数。以该种方式,可以缓减对于没有必要作为内部处理通信的一部分而被复制和传输的这种參数的需要,从而进ー步提高通过操作系统环境外的资源所提供的访问功能的效率。如图2中示出的示例,在选择提供调用功能的这种资源之前,可以将主接ロ运行时刻程序116设置成等待资源以变成空闲(例如,针对处理核心122之ー变成空闲)。以该种方式,以处理核心等级可以执行资源调度,从而提供资源调度的基本粗粒度。在一个示例中,主运行时刻程序代码(HARO116通过保持空闲的处理核心122的踪迹,或者通过将调用记录(log)到处理核心122、或来自处理核心122的一个或多个返回的方式,可以实现这种资源调度。图3示出了通过操作系统环境105外的资源提供的、例如通过诸如应用114访问的第二处理子系统120提供的功能的可选示例。通过设置在操作系统环境中的主接ロ运行时刻程序116,可以接收用于所述功能的调用214。如图3中示出的示例,基于用于各种处理核心的性能信息,主接ロ运行时刻可以选择用于提供被调用的功能的资源,例如,最小负载的处理核心、或者能够处理整个功能性能要求的处理核心122。例如,每个处理核心122可以包括在其上执行的性能监控器程序代码310 (或逻辑),例如,作为辅助接ロ运行时刻程序126的部分,其将运行时刻性能数据提供给主接ロ运行时刻程序116。随后,主接ロ运行时刻程序116可以使用集合的核心性能数据320,以确定处理核心122的相应负荷,并且选择具有最少负荷的处理核心,以提供被调用的功能。以该种方式,主接ロ运行时刻程序116能够提供操作系统环境105外的资源的动态运行时刻平衡。可选地,为了避免提供运行时刻性能数据的这种性能监控器310的干扰性,在一个示例中,例如通过从基准(benchmarks)计算或简单推断,预先运行时刻可以生成剖析数据(profiling data)。以该种方式,不需要从处理核心122反馈,但是需要定时数据等,以便通过处理核心122正执行的任何特定功能根据预先生成的剖析数据可以访问主接ロ运行时刻程序116。
现參考图4,示出了图I的主操作系统缓冲池130的部分的示例。对于示出的示例,通常通过ART-Comms-Buffer-Area 410示出的OS缓冲池130的第一区域被分配以由主运行时刻程序116使用,以便将数据传输到辅助运行时刻程序126或从辅助运行时刻程序126传输数据。以该种方式,通过简单地将数据复印到存储器ART-Comms-Buffer-Area410的这个分配区域,主运行时刻程序116和辅助运行时刻程序126彼此之间能够传输诸如功能參数、返回參数等的数据。在该示例中,这避免了通过诸如使用套接ロ API等的多个常规通信机制的方式来传输这种数据的需要。图4 也不出了通常通过 Host_OS_fake_Ethernet_Buffer_Area 420 不出的 OS 缓冲池130的又一区域。OS缓冲池130的该区域被分配,以提供用于操作系统环境105外的资源的缓冲空间,诸如处理子系统120,其对于主操作系统和操作系统环境外的资源是公共的。现參考图5,示出了诸如图I的主运行时刻程序(HART) 116可以实现的、根据本发明的ー个方面的一些实施例的支持访问通过操作系统环境外的资源提供的功能的简化流 程图500的示例。该方法在步骤505开始,以接收对于用于主操作系统环境外的资源提供的功能的主运行时刻接ロ的调用。根据ー些示例,随后该方法可以包括在步骤510中确定提供调用功能的操作系统环境外的资源是否空闲。如果没有这种资源空闲/可用,则该方法移至步骤515,并且在返回到步骤510之前等待一段时间,以便确定住何资源是否已变成空闲/可用的。一旦提供调用功能的操作系统环境外的资源是空闲/可用的,则该方法移到步骤520。根据ー些可选实施例,如虚线中示出的部分流程图大致指示地,在步骤505中,在接收对于用于通过主操作系统环境外的资源提供的功能的主运行时刻接ロ的调用之后,该方法可以反而包括诸如基于使得运行时刻因此平衡的操作系统环境外的资源的性能数据,而可以执行动态资源分配517。在接收这种动态资源分配之后,随后该方法移至步骤520。在步骤520中,将针对主运行时刻接ロ的被接收调用中提供的功能參数与用于识别需要被执行的特定功能的功能标识符,一起复制到能够访问提供调用功能的主操作系统环境外的资源的存储器区域(例如,图4的ART_Comms_Buffer_Area 410)。对于示出的示例,在存储器区域内的功能标识符和功能參数的存在随后被通过信号通知到提供调用功能的操作系统环境外的资源。尤其对于示出的示例而言,在存储器区域中的功能标识符和功能參数的存在被通过信号通知到在操作系统环境外部的至少ー个处理模块上执行的辅助运行时刻接ロ,诸如图I的第二处理子系统120的ART 126,如步骤525所示。对于示出的示例,通过到图I的ART 126的中断的方式,可以通过信号通知功能标识符和功能參数的存在,如步骤530所示。在确定是否有必要等待功能返回之前,随后在535更新用于操作系统环境的外部提供/位于其外部的资源的集中资源表,如步骤540中所示。例如,可以使用功能标识符,以查找对于特定功能调用而言是否需要功能返回。如果不需要功能返回,该方法需要移到步骤545,并且该方法以RETURN_0K指示结束。相反地,如果需要功能返回,该方法移到步骤550,并且睡眠直至从操作系统环境外的资源接收返回。接收在可访问操作系统环境外的资源的存储器区域内(例如图4的ART_Comms_Buffer_Area 410)的返回參数存在的指示之后,其中,对于示出的实施例而言,包括来自操作系统环境外的资源的辅助运行时刻接ロ的中断555,诸如图I的第二处理子系统120的ART126,则该方法移至其中从所述存储器区域(例如图4的ART_Comms_Buffer_Area 410)接收返回參数的步骤560。随后在步骤565更新集中资源表,并且在步骤570建立包括检索返回參数的返回功能。随后通过在步骤575将包括检索返回參数的返回功能返回,该方法结束。现參考图6,示出了诸如通过图I的辅助运行时刻程序(ART) 126可以实现的、根据本发明的另一方面的一些示例的用于支持访问通过操作系统环境外的资源提供的功能的被简化流程图600的示例。
该方法在步骤605开始,以接收诸如图I的第二子系统120提供的功能的、操作系统环境的这种外部资源提供的功能所需要的指示。这种指示可以包括从操作系统环境内的处理子系统的中断,例如,即从图I的主运行时刻程序(HART) 116发送的終端。可选地,通过操作系统环境的这种外部资源提供的功能所需要的这种指示可以包括轮询主操作系统的缓冲描述符,并且识别主操作系统的缓冲区描述符环内的缓冲区描述符,其中,主操作系统的缓冲区描述符环与用于由位于操作系统缓冲池中的这种资源提供的功能的功能參数相关。在接收这种指示之后,该方法移至步骤610,在步骤610中从操作系统环境内的存储器区域(例如,图4的ART_Comms_BufTer_Area410)检索功能參数和用于所要求的功能的功能标识符,其中,处理子系统驻留在操作系统环境外部。在已经检索功能參数之后,使用在步骤615中检索的功能參数和功能标识符来建立功能调用,针对示出的示例,随后将其发送到用于执行所需要功能的加速器代码,如通常620和625所述。在随后接收返回功能630之后,在635将返回參数从接收的返回功能复制到操作系统环境内的存储区域(例如ART_Comms_Buffer_Area 410),其中,处理子系统驻留在操作系统环境外部。随后将操作系统环境(例如,图4的ART_Comms_Buffer_Area410)内的存储器区域内返回參数的存在通过诸如图I的对主运行时刻程序(HART) 116的中断645的方式,被指示到操作系统环境内的处理子系统。随后该方法在步骤650结束。如參考图5和图6的上文所述,在不需要建立繁琐通信机制的需要的情形下,并且在不需要在处理子系统之间传输功能參数和其他数据的情形下,通过诸如在操作系统环境内运行的ー个或多个应用,或者通过其操作系统,可以访问操作系统环境外的资源提供的功能。替代地,在可以访问操作系统环境外的资源的操作系统环境内的存储器被用于交换这种參数和数据,从而显著地简化和提高访问这种功能的有效性。针对图5和图6中示出的示例,操作系统环境外的资源提供的功能被简化成包括自组服务,从而当需要时调用这种功能,并且在所需要的服务或功能完成之后,被调用的功能返回并且被停止。然而,在一个示例中,操作系统环境外的资源提供的功能不需要被限制为自组服务和功能。例如,这种功能可以包括如下的服务或功能,其一旦被初始化则基本上持续运行,并且从而在数据接收之后提供服务或功能。根据ー些可选示例,在诸如图I的HART 116的操作系统环境内运行的运行时刻程序代码可以被设置成,在接收将被传送到操作系统环境外部的处理子系统的数据存在的指示之后,利用用于映射到操作系统环境的外部目的地对象的存储空间的存储器区域的指针,交换用于映射到操作系统环境内的源对象的存储空间的存储器区域的标识符。此外,并且根据又ー些可选示例,在诸如ART的操作系统环境外部的处理子系统内运行的运行程序代码可以被设置成,在接收到将传送到操作系统环境内的对象的数据的存在的指示之后,其中,所述对象例如是操作系统环境内或其操作系统运行的任务或应用,则将映射到操作系统环境外部的源对象的存储空间的存储器区域的指针与映射到操作系统环境内的目的地对象的存储空间的存储器区域的指针做交換。现參考图7和图8,示出了诸如通过图I的主运行时刻程序(HART)116和辅助运行时刻程序(ART) 126实施的、根据本发明的一些实施例的用于支持访问操作系统环境外的资源提供的该种数据路径功能的方法的简化流程图700、800的示例。尤其是对于示出的示例而言,通过操作系统环境外部的处理子系统120提供的功能包括提供以太网服务,从而通过诸如应用114或OS本身来将待传输的数据分组放置到存储器区域中,并且随后对HART116进行调用,以通过以太网连接(未示出)影响数据分组的传输。例如,又參考回图4,示出了通过处理子系统120可访问的OS缓冲池130的部分内的存储器430的Host_0S_ART_ Ethernet_Buffer区域,并且其可以被映射到操作系统环境内运行的应用114的存储空间。以该种方式,可以将存储器430的Host_OS_ART_Ethernet_Buffer区域使用为用于将要被传输和/或接收的数据分组的缓冲器。图7的方法在705开始,从而以例如从诸如应用114或从OS本身接收到其调用的方式,由HART 116接收数据分组将需要被传输的指示。该方法随后移至步骤710,在步骤710中,根据OS怎么处理用于以太网操作的缓冲描述符,HARTl 16可以从主OS缓冲区描述符环(主OS BD环)获取与其中存储将被传输的数据分组的存储器区域相对应的缓冲区描述符,或者仅获得缓冲区描述符的指针。针对示出的示例,其中存储将被传输的数据分组的存储器区域(并且因此其与缓冲区描述符相关)包括存储器430的H0st_OS_ART_Ethernet_Buffe区域。接下来,在步骤720中,诸如大致通过图I中的功能124示出的,用于处理子系统120 (ART_Ethernet_Process)内的以太网处理的功能标识符和任何需要的功能參数(包括获取的主OS缓冲器描述符或主OS缓冲器描述符指针),可以被加载到图4的ART_CommS缓冲区410中,并且在步骤725中随后将它们的存在通过信号通知到ART126。针对示出的示例,通过将中断信号通知到图I的ART 126的方式可以实现,如730中所示。在通过ART 126接收指示图4的ART_Comms缓冲区410内的功能标识符和參数存在的中断730之后,如步骤735所示,该方法移至步骤740,在步骤740中,ART 126从ART_Comms缓冲区域410检索功能參数(包括获取的主OS缓冲描述符或主OS缓冲描述符指针)和功能ID。接下来,在步骤742中,针对示例性示例,使用获取的主OS缓冲器描述符或主OS缓冲器描述符指针,可以更新与图4的存储器420的Host_OS_fake_Ethernet_Buffer区域相对应的处理子系统120的缓冲器描述符环(称为“ART BD环”)内的缓冲器描述符。因此,以该种方式,映射到操作系统环境内源对象的存储空间的图4的存储器430的Host_0S_ART_Ethernet_Buffer区域的指针被有效地与被映射到操作系统环境外部的目的地对象的存储空间的存储器420的Host_OS_fake_Ethernet_Buffer区域的指针进行交換。接着缓冲器描述符指针的这种交换,用于ART BD环内的Host_0S_fake_Ethernet_Buffer缓冲器描述符420的指针现将指向其中数据分组已被放置的存储器的物理区域。实际上,在没有实际需要将数据分组本身从ー个物理存储位置复制或传输至另ー个的情形下,已经将数据分组重新安置到Host_OS_fake_Ethernet_Buffer 420。随后,该方法移至步骤745,其中图I的ART 126使用被检索的功能标识符和參数,以对以太网控制器(未示出)建立调用,并且在步骤750上发送该调用。随后将该方法在步骤755结束。虽然未示出,其中在步骤710至735中,仅在HART 116和ART 126之间传送主OS缓冲器描述符的指针(相对于主OS缓冲器描述符本身),该方法还可以包括将返回状态提供返回到OS或初始化传输的应用。图8的方法在步骤805开始,以接收需要提供至操作系统环境105的应用、或至操作系统本身的处理子系统120内的数据分组。尤其是针对示出的示例而言,步骤805包括通过以太网控制器(未示出)通过以太网连接来接收数据分组。接下来,在步骤810中,对于示出的示例,调用辅助运行时刻接ロ(ART) 216的缓冲管理器(ART_buf_Mgr),以获取访问图 4 的 Host_OS_fake_Ethernet_Buffer 区域 420。在获取访问 Host_OS_fake_Ethernet_Buffer区域420之后,在步骤815,将接收的数据分组复制到缓冲器,并且更新图I的处理 子系统120的缓冲器描述符环(ART BD环)内的Host_OS_fake_Ethernet_Buffer区域420的相对应缓冲器描述符,并且在步骤820中标记处理子系统120内运行的ART的以太网处理(ART_Ethernet_Process),以指示已经接收分组。接下来,在步骤825中,ART_Ethernet_Process确定接收数据分组的目的地,并且执行接收数据分组的任何需要的处理。例如,其可以确定被接收的数据分组是否要i)被传递到用于主操作系统的主操作系统,以进行操作;或者ii)处理到这样的点,以便其随后可以被传递到在主操作系统环境中运行的任务
/应用已经确定接收的分组的目的地之后,该方法移到步骤830,在步骤830中,根据OS怎么处理以太网操作的缓冲器指针,ART_Ethernet_Pix)CesS可以从ART缓冲器描述符环(ART BD环)获取与其中数据分组被存储的存储器区域相对应的缓冲区描述符,或者仅获取对于缓冲区描述符的指针。对于示出的示例,其中数据分组被存储的存储器区域(并且因此其与缓冲区描述符相关)包括存储器420的Host_OS_fake_Ethernet_Buffe区域。接下来,在步骤840中,ART_Ethernet_Process将返回參数(包括ART缓冲器描述符或仅仅其的指针)加载到存储器区域410的ART_C0mmS_Buffer区域,并且在步骤850中,例如通过中断855的方式,将存储器区域410的ART_Comms_Buffer区域中的返回參数的存在通过信号通知到HART。随后该方法在步骤860中结束。在中断855接收之后,HART随后可以从ART_Comms buffer区域410检索功能參数(包括被获取的ART缓冲器描述符或ART缓冲器描述符指针),并且对于示出的示例,使用获取的ART缓冲器描述符或ART缓冲器描述符指针来更新在与存储器430的Host_0S_ART_Ethernet_Buffer区域相对应的主OS的缓冲器描述符环(主OS BD环)内的缓冲器描述符。因此,以该种方式,用于映射到操作系统环境外部的源对象的存储空间的存储器420的Host_OS_fake_Ethernet_Buffer区域的指针被有效地与用于被映射到操作系统环境内的目的地对象的存储空间的存储器430的Host_OS_ART_Ethernet_Buffer区域的指针进行交換。 接着缓冲器描述符指针的这种交换,用于主OS BD环内的Host_0S_ART_Ethernet_Buffer缓冲器描述符430的指针现将指向其中数据分组已被放置的存储器的物理区域。实际上,在没有实际需要将数据分组本身从ー个物理存储位置复制或传输至另ー个的情形下,已经将数据分组重新安置到Host_OS_ART_Ethernet_Buffer 430。HART116于是可以执行与图5的步骤560至575相似的步骤,其中,例如在数据分组的目的地是应用114的情况下,HART发送功能返回至应用114,以通知应用114在Host_OS_ART_Ethernet缓冲区域430中存在数据分组。以与图7的方法相同的方式,存储器430的Host_OS_ART_Ethernet_Buffer区域可以被映射到应用114的存储空间,以便在从HART接收功能返回之后,应用114能够从其中检索数据分组。以这种方式,通过操作系统环境的外部处理子系统提供的功能将被应用到的数据,其中,针对示出的示例而言其包括数据分组,不需要在处理和子系统之间传输。相反,通过将数据存储到数据缓冲器区域,其中,数据缓冲器区域被映射到需要功能的操作系统环境内的应用的存储空间和用于通过操作系统环境外部处理子系统提供的功能的存储空间这两者上,仅需要将缓冲器描述符指针如上所述操作,并且在图7中示出的示例的情形下,以便在主操作系统缓冲器描述符环和提供需要功能的处理子系统的缓冲器描述符环之间复制缓冲描述符。此外,通常是以下的情况,其中,OS分配用于将在任务之间,诸如在应用114和HART116之间传送的參数的存储器区域。通常,在返回到调用任务之后,通过OS可以再生(reclaim)存储器的该区域。通过交换缓冲器描述符点,如上所述,将缓冲器内的数据和參数有效地传输到另ー缓冲器。结果,如果在通过操作系统环境外的资源(例如,ART)使用数据和參数之前进行对于调用任务的返回,在指针交换之后,通过OS再生的存储器区域将是相应的缓冲器描述符所指向的区域。因此,OS将再生存储器区域,而不是包含数据和參数的存储器区域。因此,将不丢失数据和參数,并且不需要为了此种丢失而被复制。当图7和图8中示出的示例与通过以太网连接而传输和接收的数据分组的传送相关时,这些示例可以等同地应用到数据路径的其他形式。通过示例的方式,通过操作系统环境外的资源提供的数据路径功能可以包括与传输层数据(例如,层I、层2和层3等)相关的数据路径。此外,对于图7和图8中示出的示例,将用于映射到源对象的存储空间的缓冲器的指针与映射到目的地对象的存储空间的缓冲器的指针的交換的步骤包括交换缓冲器描述符指针。然而,需要考虑的是,其中诸如消息列队的、用于存储器的參考区域的可选机制被使用,以相似的方式可以交换这些机制中使用的这些指针。现參考图9,根据本发明的另一方面的一些实施例,示出了用于建立应用程序代码的方法的示例。针对示例性实例,应用源代码910包括与通过操作系统环境外的资源提供的功能相关的程序代码912、914的两个段。与通过操作系统环境外的资源提供的功能相关的这种程序代码912、914被识别,并且其被从初始源代码910中提取,以及由包括用于取代功能的主接ロ运行时刻代码的调用的取代代码920所取代,将在操作系统环境中执行所述主接ロ运行时刻代码。具体而言,针对示例性示例,与第一功能相关的程序代码912由包括用于第一功能的主接ロ运行时刻代码的调用的代替代码922所取代,并且与第二功能相关的程序代码914由包括用于第二功能的主接ロ运行时刻代码的调用的代替代码924所取代。、
随后被提取的程序代码912、914被放置到ー个或多个库中,ー个或多个库利用将通过操作系统环境的外部处理子系统执行的辅助运行时刻代码而被编译。此外,建立类型识别表和功能调用表,以允许这些功能被调用并且允许在运行时刻接ロ之间传送功能參数和返回值,如通常在930所示。现參考图10,示出了用于建立如图9中所示的应用程序代码的方法的简化流程图1000的示例。该方法在步骤1005开始,并且移到步骤1010,在步骤1010中程序代码被加载。接下来,在步骤105中,用于能够加速的代码和目标系统配置信息的一个或多个定义被加载。接下来,在步骤1020中,使用被加载的定 义,确定被加载的程序代码是否包括基于被加载的定义而能够被加速的代码。例如,程序代码可以包括程序类型标识符,或利用定义这些标识符的加载定义,可以指定能够被加速的代码的特定识别段。可选地,加载定义可以简单地定义与能够被加速的代码的段相关的功能名称等。如果确定加载的程序代码不包括能够被加速的代码,则该方法移到步骤1055,在步骤1055中,该程序代码被编译,以在操作系统下执行,并且该方法在步骤1060结束。然而,參考回步骤1020,如果确定加载的程序代码包括能够被加速的代码,针对能够被加速的代码的每个被识别的段,基于被加载的目标系统配置信息,确定目标系统是否配置成加速这种代码。如果确定该目标系统不配置成加速代码的段,该方法移动到用于代码的段的步骤1055。然而,针对能够被加速的代码的每个段和针对目标系统被配置成加速,该方法移到步骤1030,在步骤1030中,为将被加速的代码的段,建立用于功能參数和返回參数的定义类型表。接下来,在步骤1035中,从程序代码中提取将被加速的代码的段,并且将其放置在利用在操作系统环境的外部将被执行的辅助运行时刻接ロ来编译的库中。随后,在步骤1040中,为辅助运彳丁时刻接ロ建立功能调用表。随后利用将在 呆作系统环境内执彳丁的王运行时刻接ロ的调用的代码,在程序代码中取代被提取的代码,如步骤1045中所述。例如,可以利用基于用于调用至主运行时刻接口内的恰当模块的代码,来取代被提取的代码。随后建立用于提取代码的參数大小和參数大小表,如步骤1050中所示。一旦对于能够被加速的代码的每个段而言,步骤1025至1050已经完成,则方法继续移动到步骤1055,其中,包括代码的取代的段的程序代码被编译,以在操作系统下执行,并且该方法在步骤1060结束。以该种方式,可以将应用程序代码编译,以诸如基于定义和目标系统配置信息,在单ー处理器/SMP上或图I中示出的混合S MP/ASMP上运行。具体而言,与操作系统环境外的资源提供的功能相关的代码的段可以从程序代码自动地提取;可以被放置在将与外部资源的辅助运行时刻接ロ链接的库内;并且以主运行时刻接ロ的调用被取代。以该种方式,可以将功能的ASMP加速自动地链接到应用程序代码。图11示出了图9和图10的方法可以形成其部分的应用程序建立处理1100的示例。建立处理开始,以向编译器Iio提供程序资源代码,大致如1102所述。编译器1110基于编译定义1105可以识别在程序源代码内的代码段,其提取并且被放置在将利用辅助运行时刻接ロ而被编译的ー个或多个库1116中,诸如图I的ART 216。编译器1110也建立用于辅助运行接ロ的功能调用和类型定义表1112,1114,其被用于使得被提取的功能将被调用,并且用于在诸如图I的HART 116的主运行时刻接ロ、和辅助运行时刻接ロ、以及參数大小表1118之间传送功能參数和返回值。编译器1110使用在功能调用表内提供的功能标识符,以到主运行时刻接口内的调用来取代被提取的代码段,并且在编译器1110利用在功能调用表内提供的功能标识符,以进入主运行时刻接ロ的调用,替换提取的代码段,并且将修改的程序代码传输至建立器1120。建立器120建立主运行时刻接ロ功能表1124、主运行时刻接ロ驱动器文件1126、和初始化文件1128,以及辅助运行时刻接ロ初始化文件1125。以该种方式,在HART侧,建立器1120提供由HART使用的所有表(尤其是从应用侧的调用结构),建立OS初始化和系统初始化所需要的任何表格(此将包括图4中示出的缓冲区域410、420、430的初始化),并且提供用于链接程序的命令,以包括HART和诸如支持HART需要的程序元素的任何其他库元素(例如,驱动器、ART对象等)。在一个示例中,可以将ART对象加载器建立成HART,从而允许ART和提取的代码在初始化时或在运行时刻中动态地被加载到例如辅助处理核心上。如果操作系统不允许这种动态加载,则随后通过 整体系统初始化处理可以加载ART和被提取的代码对象。反之,在ART侧,针对每个ART,建立器1120建立ART需要的表,利用用于ART环境的正确方法将所有提取的代码放置到库中,并且建立链接命令,以允许将被加载进入到例如,辅助处理核心的整个图像建立。在一个示例中,可能存有用于每个ART的两个(或更多)最终对象代码模块。第一个是在包括ART和提取的代码的系统的初始化处被加载的ー个。第二个可以是通过其本身提取的代码。第二种方法允许在ART中可用模块的动态运行时刻更新。该功能通过HAR和ART默认模块满足。随后可以编译被修正的程序代码,以在主操作系统下的目标系统上运行。在一个示例中,用于在操作系统环境内运行诸如图I的应用114的应用,并且将诸如图4的Host_OS_fake_Ethernet缓冲区域420的存储器区域映射至其上的虚拟地址空间与在诸如图I的处理子系统120的、操作系统环境的外部处理子系统内将存储器区域映射至其上的虚拟地址空间不同。在该种情形下,有必要在处理子系统120内校正指针等,其中,指针等例如从应用114传送至处理子系统120。用于实现这一点的方法可以是使得建立器1120将转化(translation)例行程序插入在ART调用和返回例行程序中,或者插入到提取的代码116本身中。大体上在1132、1134和1136示出的各种主运行时刻接ロ文件与用于辅助运行时刻接ロ的功能调用和类型定义表1112,1114、以及主运行时刻接ロ功能表1124、主运行时刻接ロ驱动器文件1126、和初始化文件1128 —起被链接,如大体在1130所示。相似地,大体在1142、1144和1146处示出的各种辅助运行时刻接ロ文件与用于辅助运行时刻接ロ的功能调用和类型定义表1112、1114、包含代码1116的被提取段的库、以及辅助运行时刻接ロ初始化文件1125 —起被链接。对象建立器1150随后可以建立用于主运行时刻接口和辅助运行时刻接ロ的对象代码文件,通常如1155所示。以其最基本形式,在OS、ー个或多个应用、HART接ロ、以及ー个或多个ART接ロ的四种元件的任何之一内可以实施本发明的各种方面的示例。在一个示例中,可以将HART和ART配置成仅具有默认功能可用,例如,至/从ART通信的HART ;添加功能;删除功能;开始功能;停止功能。由于不同系统可以包括与物理硬件和OS相关联的引导的其自己特定方法,所以将使用根据本发明的方面的示例而采用的元件的引导/初始化处理的普遍原理,描述引导处理的下列示例。
在物理硬件的重设置中,可以执行引导加载程序。引导加载程序的目的是初始化硬件,以便OS能够运行,为了从非易失存储设备加载所有代码(诸如图12和下文描述的存储设备1210),并且将控制传输至刚被加载的代码。在整个SMP系统中加载的代码可以包括OS。然而,针对在图I中示出的示例,处理系统100包括混合SMPASMP系统。因此,在ー个示例中,有时称为“系统管理程序(hypervisor)”的中间程序可以被最先加载。系统管理程序的目的是双重的。’首先,在引导时间,系统管理程序可以被配置成执行下列操作将系统物理存储器分配给对象建立器生成的每个建立表;设置存储器管理単元,以便OS和ART具有它们的公共和私有存储器;加载OS;加载ART ;以及允许OS和ART开始执行。第二,在运行时刻,系统管理程序提供用于在OS和ART之间的共享资源的控制点。这通常需要系统管理程序在处理器核心(CPU)中的不同层面执行。这与在例如USER(用户)层面和SUPERVISOR (管理器)层面的硬件中支持的当前CPU配置相似,其中,OS核例行程序在SUPERVISOR层面运行,而所有其他代码在USER层面运行。在一个示例中,某些CPU可以包括第三层面,其可以被具体配置成用于HYPERVISOR(系统管理程序),因此,其提供所有层面,而对于其他CPU,系统管理程序代码可能仅是在SUPERVISOR层面运行的代码,其余代码在USER层面运行。在一个示例中,一旦OS已经被启动,部分初始化处理可以是设置所有驱动器,包括HART,其根据OS特定OS实施方式而可能具有在可以允许其向OS请求缓冲空间410、420、430的建立处理期间产生的表。而且,在其中HART本身执行初始化的一个示例中,将链接至ART,并且如果建立表需要,HART可以被配置成将功能加载至ART。在某些示例中,功能也可以由系统管理程序作为ART的部分而预加载。例如,这可以是,例如,可以加载以太网ART处理的方式,以便当OS需要以太网功能时,其是可用的。本发明可以被实施为用于在计算机系统上运行的计算机程序,至少包括代码部分,当在诸如计算机系统的可编程装置上运行时,执行根据本发明的方法的步骤,或使得可编程设备能够执行根据本发明的设备或系统的功能。现在參考图12,示出了可以被用于实施本发明实施例中的处理功能的典型的计算系统1200。这种类型的计算系统可以被用于接入点和无线通信単元中。本领域的技术人员也将意识到如何使用其他计算机系统或架构实施本发明。计算系统1200可以表示为,例如,台式机、膝上型或笔记本计算机、手持型计算设备(PDA、蜂窝电话、掌上型计算机等)、主机、服务器、客户端或对于给定应用或环境可能是需要或适当的任何其他类型的特殊或一般用途计算设备。计算系统1200可以包括一个或多个处理器、诸如处理器1204。处理器1204可以使用诸如微处理器、微控制器或其他控制模块的一般或特殊用途处理引擎来实施。在这个示例中,处理器1204被连接至总线1202或其他通信介质。计算系统1200也可以包括主存储器1208,诸如随机存取存储器(RAM)或其他动态存储器,用于存储待由处理器1204执行的信息和指令。主存储器1208也可以被用于在待由处理器1204执行的指令的执行期间,存储临时变量或其他中间信息。计算系统1200同样可以包括耦合至总线1202用于存储用于处理器1204的静态信息和指令的只读存存储器(ROM),或其他静态存储设备。计算系统1200也可以包括信息存储系统1210,其可以包括,例如,介质驱动器1212和可移除存储接ロ 1220。介质驱动器1212可以包括驱动器或支持固定或移动存储介质的其他机构,诸如硬盘驱动器、软盘驱动器、磁带驱动器、光盘驱动器、光盘(CD)或数字视频驱动器(DVD)读取或写入驱动器(R或W)、或其他可移动或固定介质驱动器。存储介质1218可以包括,例如,硬盘、软盘 、磁带、光盘、⑶或DVD或由介质驱动器1212读取或写入的其他固定或移动介质。如这些示例所示的,存储介质1218可以包括具有存储于其中的特定计算机软件或数据的计算机可读存储介质。在可选实施例中,信息存储系统1210可以包括用于允许计算机程序或其他指令或数据被加载到计算系统1200的其他相似构件。这些构件可以包括,例如,移动存储単元1222和接ロ 1220,诸如程序盒以及盒接ロ、移动存储器(例如,闪存或其他移动存储模块)和存储槽、以及允许软件和数据被从移动存储単元1218传输至计算系统1200的其他移动存储单元1222和接ロ 1220。计算系统1200也能够包括通信接ロ 1224。通信接ロ 1224可以被用于允许软件和数据在计算系统1200和外部设备之间被传输。通信接ロ 1224的示例可以包括调制解调器、网络接ロ(诸如以太网或其他NIC卡)、通信端ロ(诸如,通用串行总线(USB)端ロ)、PCMCIA槽和卡等。经由通信接ロ 1224传输的软件和数据是信号的形式,其可以是能够由通信接ロ1224接收的电子、电磁和光或其他信号。这些信号经由信道1128被提供至通信接ロ 1224。这个信道1228可以承载信号,并且可以使用无线介质、有线或线缆、光纤或其他通信介质来实施。信道的某些示例包括电话线、蜂窝电话链路、RF链路、网络接ロ、局域或广域网以及其他通信信道。在此文献中,术语“计算机程序产品”、“计算机可读介质”等可以被一般用于指诸如存储器1208、存储设备1218、或存储单元1222的介质。这些和其他形式的计算机可读介质可以存储由处理器1204使用的ー个或多个指令,以导致处理器执行指定操作。这些指令通常被称为“计算机程序代码”(其可以通过计算机程序或其他分组的形式而被分组),当被执行时,使得计算系统1200执行本发明的实施例的功能。应注意的是,代码可以直接导致处理器执行指定操作,被编译成执行指定操作,以及/或者与其他软件、硬件和/或固件元件组合(例如,用于执行标准功能的库)以执行指定操作。在其中利用软件实施这些元件的实施例中,利用例如移动存储驱动器122、驱动器1212、或通信接ロ 1224,可以将软件存储在计算机可读介质中,并且加载到计算系统1200中。控制模块(在这个示例中为软件指令或计算机程序代码)当由处理器1204执行时,导致处理器1204执行如此处所描述的本发明的功能。—种计算机程序是诸如特定应用程序和/或操作系统的指令的列表。例如,计算机程序可以包括子例行程序、函数、流程、对象方法、对象实施方式、可执行应用、小应用程序、服务器小程序、源代码、对象代码、共享库/动态加载库、和/或其他被设计用于在计算机系统上执行的指令序列中的ー个或多个。计算机程序可以被内部存储在计算机可读存储介质上,或者经由计算机可读传输介质而被传输到计算机系统。计算机程序的所有或某些可以提供在被永久、可移动地或者远程地耦合到信息处理系统的计算机可读介质上。例如,并且非限定性的是,计算机可读介质可以包括任意数目的下列项目包括盘和带存储介质的磁存储介质;诸如压缩盘的光存储介质(例如,CD-ROM、CD-R等)和数字视频盘存储介质;包括诸如闪存、EEPROM、EPR0M、ROM的基于半导体的存储单元的非易失性存储器存储介质;铁磁数字存储器;MRAM ;包括寄存器、缓冲器或高速缓存、主存储器、RAM等的易失性存储介质;以及包括计算机网络、点对点通信设备、和载波传输介质等的数据传输介质。计算机处理通常包括执行(运行)程序或程序的部分、当前程序值和状态信息、以及操作系统用于管理程序执行的资源。操作系统(OS)是管理计算机的资源共享并且为程序员提供用于访问这些资源的接ロ的软件。操作系统处理系统数据和用户输入,并且通过分配并管理作为服务的任务和内部系统资源,以响应用户和系统的程序。例如,计算机系统可以包括至少ー个处理单元、相关联的存储器、和多个输入/输出(I/o)设备。当执行计算机程序时,计算机系统根据计算机程序来处理信息,并且经由I/O设备产生结果的输出信息。在前面的说明中,已经參考本发明的实施例的具体示例描述了本发明。然而,将显而易见的是,在不脱离如随附的权利要求中所述的本发明的更广泛精神和范围的条件下,可以做出各种修改和变更。为了实现相同功能的构件的任何布置是有效“相关联”的,以便实现期望的功能。因此,此处被组合以实现特定功能的任意两个构件可以被视为彼此“相关联”,以便实现期望的功能,而无论架构或中间构件如何。同样,如此相关联的任意两个构件也可以被视为彼此“可操作地连接”,或者“可操作地耦合”,以实现期望的功能。此外,本领域的技术人员应明白的是,上文描述的这些操作之间的界限仅是解释性的。多种操作可以被组合成单ー操作,单ー操作可以被分布在另外的操作中,并且操作可以至少在时间上部分重叠地被执行。而且,可选实施例可以包括特定操作的多个实例,在各种其他实施例中,操作的顺序可以被改变。而且,例如,其示例或部分可以被实施为可转换成物理电路系统的逻辑表示的物理电路系统的软件或代码表示,诸如通过任何适当类型的硬件描述语言。
而且,本发明不限于以非可编程硬件实施的物理设备或単元,但也可以应用于能够通过根据适当的程序代码操作而执行期望设备功能的可编程设备或单元,诸如主机、迷你计算机、服务器、工作站、个人计算机、笔记本、个人数字助理、电子游戏机、机动车和其他嵌入系统、蜂窝电话和各种其他无线设备,在本申请中,其被统称为“计算机系統”。然而,其他修改、变化和替代也是可能的。因此,这些说明和附图应视为解释性而非限制性含义。在权利要求中,在放置在括号内的任何參考符号不应被解释为限定权利要求。“包括”ー词不排除在权利要求中除了所列示的那些还存在其他元件或步骤。此外,此处所使用的术语“ー个”被定义为ー个或超过ー个。而且,在权利要求中诸如“至少ー个”和“ー个或多个”的引导短语的使用,不应被解释为暗示通过不定冠词“ー个”引入的另ー权利要求元件将含有这种被引入的权利要求元件的任何特定权利要求限于仅含有一个这种元件,即使当相同权利要求包括引导性短语“至少ー个”和“ー个或多个”和诸如“一个”的不定冠词时也是如此。这对于定冠词的使用也是一祥。除非另有 说明,诸如“第一”和“第二”的术语被用于任意地区别这种术语所描述的元件。因此,这些术语未必g在指示这些元件的临时或其他优先次序。在彼此不同的权利要求中叙述的某些措施的这一事实,并不表示这些措施的组合不能被有利地使用。
权利要求
1.一种用于支持访问由操作系统环境外的资源提供的功能的方法,所述方法包括 接收对于由所述操作系统环境外的资源提供的功能的调用;以及 将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所述资源可访问的存储器区域。
2.根据权利要求I所述的方法,进一步包括将在所述存储器区域内的被复制参数的存在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源。
3.根据权利要求2所述的方法,其中,将在所述存储器区域内的被复制参数的所述存在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源包括将中断发送至处于所述操作系统环境外的至少一个处理模块上运行的辅助运行时刻程序代码。
4.根据权利要求2所述的方法,进一步包括,在随后接收到对于所述操作系统环境外的资源可访问的所述存储器区域内的返回参数的存在的指示时,从所述存储器区域检索这样的返回参数,并且利用所检索到的返回参数来建立用于所接收到的调用的返回功能。
5.根据权利要求I所述的方法,其中,在所接收到的调用内的功能参数被复制到的所述操作系统外的资源可访问的所述存储器区域包括操作系统缓冲池的部分。
6.根据权利要求I所述的方法,进一步包括维护用于所述操作系统环境外的资源的集中资源表。
7.根据权利要求I所述的方法,进一步包括,在接收到对于待被传递至所述操作系统环境外的处理子系统的数据的存在的指示时,将用于映射至在所述操作系统环境内的源对象的存储器空间的存储器区域的指针与用于映射至所述操作系统环境外的目的地对象的存储器空间的存储器区域的指针交换。
8.一种计算机程序产品,包括用于支持访问由操作系统环境外的资源所提供的功能的可执行程序代码,所述可执行程序代码操作中用于 接收对于由所述操作系统环境外的资源提供的功能的调用;以及 将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所述资源可访问的存储器区域。
9.一种被布置成在操作系统环境中操作的处理子系统,所述处理子系统包括至少一个处理模块,所述至少一个处理模块包括被布置成接收对于由所述操作系统环境外的资源提供的功能的调用的输入;其中,所述至少一个处理模块被设置成,在接收到这样的调用时,将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的资源可访问的存储器区域。
10.一种用于支持访问由操作系统环境外的资源提供的功能的方法,所述方法包括,在处理子系统处 接收由所述处理子系统提供的功能需要被执行的指示; 从在所述处理子系统驻留在其外部的操作系统环境内的存储器区域中检索功能参数;以及 利用所检索到的功能参数,建立对于所需要的功能的功能调用。
11.根据权利要求10所述的方法,其中,接收由所述处理子系统提供的功能需要被执行的指示包括从在所述操作系统环境内的处理子系统接收中断。
12.根据权利要求10所述的方法,其中,在所述操作环境内的所述存储器区域包括操作系统缓冲池的部分,并且接收由所述处理子系统提供的功能需要被执行的指示包括识别与位于主操作系统缓冲器描述符环内的所述操作系统缓冲池中所述功能参数相关的缓冲器描述符。
13.根据权利要求10所述的方法,其中,所述方法进一步包括,在随后从执行所需要的功能的功能元件接收到功能返回时,将返回参数复制到所述操作系统环境内的所述存储器区域,并且将在所述操作系统环境内的所述存储器区域中的所述返回参数的存在通过信号通知需要所述功能被执行的处理子系统。
14.根据权利要求10所述的方法,其中,所述方法进一步包括 为所述操作系统环境轮询主操作系统的缓冲器描述符环;以及 在识别与所述需要功能对于其待由所述处理子系统执行的被缓冲数据相关的所述主操作系统缓冲器描述符环内的缓冲器描述符时,将所识别的所述主操作系统缓冲器描述符环内的缓冲器描述符复制到用于提供所需要的功能的所述处理子系统的缓冲器描述符环内的缓冲器描述符中。
15.根据权利要求14所述的方法,其中,所述方法进一步包括 接收待从所需要的功能返回到所述主操作系统环境的数据; 将所接收的数据存储到在操作系统环境内的存储器区域;以及 将与所接收的数据被存储到的所述存储器区域相关的缓冲器描述符从提供所需要的功能的所述处理子系统的所述缓冲器描述符环复制到所述主操作系统缓冲器描述符环。
16.根据权利要求10所述的方法,进一步包括,在接收到待被传递至操作系统环境内的对象的数据的存在的指示时,将用于映射至所述操作系统环境外的源对象的存储器空间的存储器区域的指针与映射到在所述操作系统环境内的目的地对象的存储器空间的存储器区域的指针交换。
17.—种包括用于支持访问由操作系统环境外的资源提供的功能的可执行程序代码的计算机程序产品,所述可执行程序代码在处理子系统内操作用于 接收由所述处理子系统提供的功能需要被执行的指示; 从在所述处理子系统驻留于其外部的操作系统环境内的存储器区域中检索功能参数; 利用所检索的功能参数,建立对于所需要的功能的功能调用。
18.一种被布置成执行辅助运行时刻程序代码的处理子系统,所述处理子系统包括至少一个处理模块,所述至少一个处理模块包括被布置成接收由所述处理子系统提供的功能需要被执行的指示的输入;其中,所述至少一个处理模块被布置成,在接收到这样的指示时,从在所述处理子系统驻留于其外部的操作系统环境内的存储区域中检索功能参数;并且利用所检索的功能参数,建立对于所需要的功能的功能调用。
19.根据权利要求18所述的处理子系统,其中,所述至少一个处理模块被进一步布置成,执行性能监控器程序代码,以用于将运行时刻性能数据提供给在所述操作系统环境内运行的主接口运行时刻程序。
20.—种处理系统,包括 第一处理子系统,所述第一处理子系统被布置成在操作系统环境内操作;以及 至少一个进一步处理子系统,所述至少一个进一步处理子系统被布置成在所述操作系统环境外操作, 其中,所述第一处理子系统包括被布置成执行主运行时刻程序代码的至少一个第一处理模块,所述至少一个第一处理模块被布置成接收对于由所述操作系统环境外的资源提供的功能的调用;以及在接收到这样的调用时,将功能参数从所接收的调用内复制到提供被调用功能的所述操作系统环境外的资源可访问的存储器区域, 以及其中,所述至少一个进一步处理子系统包括被布置成执行辅助运行时刻程序代码的至少一个第二处理模块,所述至少一个第二处理模块被布置成接收由所述处理子系统提供的功能需要被执行的指示,并且在接收到这样的指示时,从所述操作系统环境内的存储器区域检索功能参数;以及利用所检索的功能参数,建立对于所需要的功能的功能调用。
21.一种用于建立应用程序代码的方法,所述方法包括 识别与待由操作系统环境外的资源提供的功能相关的程序代码; 提取所识别的程序代码,并且将所提取的代码放置到至少一个库中,以通过将由所述操作系统环境外的处理子系统执行的辅助运行时刻代码来编译;以及 以包括对于将在所述操作系统环境内被执行的主接口运行时刻代码的调用的程序代码来替换所提取的代码。
22.一种包括用于建立应用程序代码的可执行程序代码的计算机程序产品,所述可执行程序代码操作中用于 识别与待由操作系统环境外的资源提供的功能相关的程序代码; 提取所识别的程序代码,并且将所提取的代码放置到至少一个库中,以通过将由所述操作系统环境外的处理子系统执行的运行时刻代码来编译;以及 以包括对于将在所述操作系统环境内执行的接口运行时刻代码的调用的程序代码来替换所提取的代码。
23.根据权利要求8、17或22的任何一项所述的计算机可读存储元件,其中,所述计算机可读存储介质包括硬盘、CD-ROM、光存储设备、磁存储设备、ROM (只读存储器)、PROM (可编程只读存储器)、EPROM (可擦除可编程只读存储器)、EEPROM (电可擦除可编程只读存储器)以及闪存中的至少一个。
全文摘要
一种用于支持访问由操作系统环境外的资源提供的功能的方法(500),所述方法包括接收对于由所述操作系统环境外的资源提供的功能的调用(505);以及将功能参数从在接收的调用内复制到对于提供被调用功能的操作系统环境外的资源可访问的存储器区域(520)。
文档编号G06F9/22GK102667714SQ200980162601
公开日2012年9月12日 申请日期2009年11月25日 优先权日2009年11月25日
发明者安德利亚·阿夸维瓦, 约翰·拉尔斯通 申请人:飞思卡尔半导体公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1