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

上传人:32 文档编号:4059583 上传时间:2018-08-13 格式:PDF 页数:30 大小:7.47MB
返回 下载 相关 举报
摘要
申请专利号:

CN200980162601.X

申请日:

2009.11.25

公开号:

CN102667714A

公开日:

2012.09.12

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/22变更事项:专利权人变更前:飞思卡尔半导体公司变更后:恩智浦美国有限公司变更事项:地址变更前:美国得克萨斯变更后:美国得克萨斯|||授权|||实质审查的生效IPC(主分类):G06F 9/22申请日:20091125|||公开

IPC分类号:

G06F9/22; G06F9/06

主分类号:

G06F9/22

申请人:

飞思卡尔半导体公司

发明人:

约翰·拉尔斯通; 安德利亚·阿夸维瓦

地址:

美国得克萨斯

优先权:

专利代理机构:

中原信达知识产权代理有限责任公司 11219

代理人:

李宝泉;周亚荣

PDF下载: PDF下载
内容摘要

一种用于支持访问由操作系统环境外的资源提供的功能的方法(500),所述方法包括:接收对于由所述操作系统环境外的资源提供的功能的调用(505);以及将功能参数从在接收的调用内复制到对于提供被调用功能的操作系统环境外的资源可访问的存储器区域(520)。

权利要求书

1: 一种用于支持访问由操作系统环境外的资源提供的功能的方法, 所述方法包括 : 接收对于由所述操作系统环境外的资源提供的功能的调用 ; 以及 将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所 述资源可访问的存储器区域。
2: 根据权利要求 1 所述的方法, 进一步包括将在所述存储器区域内的被复制参数的存 在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源。
3: 根据权利要求 2 所述的方法, 其中, 将在所述存储器区域内的被复制参数的所述存 在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源包括 : 将中断发 送至处于所述操作系统环境外的至少一个处理模块上运行的辅助运行时刻程序代码。
4: 根据权利要求 2 所述的方法, 进一步包括, 在随后接收到对于所述操作系统环境外 的资源可访问的所述存储器区域内的返回参数的存在的指示时, 从所述存储器区域检索这 样的返回参数, 并且利用所检索到的返回参数来建立用于所接收到的调用的返回功能。
5: 根据权利要求 1 所述的方法, 其中, 在所接收到的调用内的功能参数被复制到的所 述操作系统外的资源可访问的所述存储器区域包括操作系统缓冲池的部分。
6: 根据权利要求 1 所述的方法, 进一步包括维护用于所述操作系统环境外的资源的集 中资源表。
7: 根据权利要求 1 所述的方法, 进一步包括, 在接收到对于待被传递至所述操作系统 环境外的处理子系统的数据的存在的指示时, 将用于映射至在所述操作系统环境内的源对 象的存储器空间的存储器区域的指针与用于映射至所述操作系统环境外的目的地对象的 存储器空间的存储器区域的指针交换。
8: 一种计算机程序产品, 包括用于支持访问由操作系统环境外的资源所提供的功能的 可执行程序代码, 所述可执行程序代码操作中用于 : 接收对于由所述操作系统环境外的资源提供的功能的调用 ; 以及 将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所 述资源可访问的存储器区域。
9: 一种被布置成在操作系统环境中操作的处理子系统, 所述处理子系统包括至少一个 处理模块, 所述至少一个处理模块包括被布置成接收对于由所述操作系统环境外的资源提 供的功能的调用的输入 ; 其中, 所述至少一个处理模块被设置成, 在接收到这样的调用时, 将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的资源可 访问的存储器区域。
10: 一种用于支持访问由操作系统环境外的资源提供的功能的方法, 所述方法包括, 在 处理子系统处 : 接收由所述处理子系统提供的功能需要被执行的指示 ; 从在所述处理子系统驻留在其外部的操作系统环境内的存储器区域中检索功能参数 ; 以及 利用所检索到的功能参数, 建立对于所需要的功能的功能调用。
11: 根据权利要求 10 所述的方法, 其中, 接收由所述处理子系统提供的功能需要被执 行的指示包括 : 从在所述操作系统环境内的处理子系统接收中断。
12: 根据权利要求 10 所述的方法, 其中, 在所述操作环境内的所述存储器区域包括操 2 作系统缓冲池的部分, 并且接收由所述处理子系统提供的功能需要被执行的指示包括 : 识 别与位于主操作系统缓冲器描述符环内的所述操作系统缓冲池中所述功能参数相关的缓 冲器描述符。
13: 根据权利要求 10 所述的方法, 其中, 所述方法进一步包括, 在随后从执行所需要的 功能的功能元件接收到功能返回时, 将返回参数复制到所述操作系统环境内的所述存储器 区域, 并且将在所述操作系统环境内的所述存储器区域中的所述返回参数的存在通过信号 通知需要所述功能被执行的处理子系统。
14: 根据权利要求 10 所述的方法, 其中, 所述方法进一步包括 : 为所述操作系统环境轮询主操作系统的缓冲器描述符环 ; 以及 在识别与所述需要功能对于其待由所述处理子系统执行的被缓冲数据相关的所述主 操作系统缓冲器描述符环内的缓冲器描述符时, 将所识别的所述主操作系统缓冲器描述符 环内的缓冲器描述符复制到用于提供所需要的功能的所述处理子系统的缓冲器描述符环 内的缓冲器描述符中。
15: 根据权利要求 14 所述的方法, 其中, 所述方法进一步包括 : 接收待从所需要的功能返回到所述主操作系统环境的数据 ; 将所接收的数据存储到在操作系统环境内的存储器区域 ; 以及 将与所接收的数据被存储到的所述存储器区域相关的缓冲器描述符从提供所需要的 功能的所述处理子系统的所述缓冲器描述符环复制到所述主操作系统缓冲器描述符环。
16: 根据权利要求 10 所述的方法, 进一步包括, 在接收到待被传递至操作系统环境内 的对象的数据的存在的指示时, 将用于映射至所述操作系统环境外的源对象的存储器空间 的存储器区域的指针与映射到在所述操作系统环境内的目的地对象的存储器空间的存储 器区域的指针交换。
17: 一种包括用于支持访问由操作系统环境外的资源提供的功能的可执行程序代码的 计算机程序产品, 所述可执行程序代码在处理子系统内操作用于 : 接收由所述处理子系统提供的功能需要被执行的指示 ; 从在所述处理子系统驻留于其外部的操作系统环境内的存储器区域中检索功能参 数; 利用所检索的功能参数, 建立对于所需要的功能的功能调用。
18: 一种被布置成执行辅助运行时刻程序代码的处理子系统, 所述处理子系统包括至 少一个处理模块, 所述至少一个处理模块包括被布置成接收由所述处理子系统提供的功能 需要被执行的指示的输入 ; 其中, 所述至少一个处理模块被布置成, 在接收到这样的指示 时, 从在所述处理子系统驻留于其外部的操作系统环境内的存储区域中检索功能参数 ; 并 且利用所检索的功能参数, 建立对于所需要的功能的功能调用。
19: 根据权利要求 18 所述的处理子系统, 其中, 所述至少一个处理模块被进一步布置 成, 执行性能监控器程序代码, 以用于将运行时刻性能数据提供给在所述操作系统环境内 运行的主接口运行时刻程序。
20: 一种处理系统, 包括 : 第一处理子系统, 所述第一处理子系统被布置成在操作系统环境内操作 ; 以及 至少一个进一步处理子系统, 所述至少一个进一步处理子系统被布置成在所述操作系 3 统环境外操作, 其中, 所述第一处理子系统包括被布置成执行主运行时刻程序代码的至少一个第一处 理模块, 所述至少一个第一处理模块被布置成接收对于由所述操作系统环境外的资源提供 的功能的调用 ; 以及在接收到这样的调用时, 将功能参数从所接收的调用内复制到提供被 调用功能的所述操作系统环境外的资源可访问的存储器区域, 以及其中, 所述至少一个进一步处理子系统包括被布置成执行辅助运行时刻程序代码 的至少一个第二处理模块, 所述至少一个第二处理模块被布置成接收由所述处理子系统提 供的功能需要被执行的指示, 并且在接收到这样的指示时, 从所述操作系统环境内的存储 器区域检索功能参数 ; 以及利用所检索的功能参数, 建立对于所需要的功能的功能调用。
21: 一种用于建立应用程序代码的方法, 所述方法包括 : 识别与待由操作系统环境外的资源提供的功能相关的程序代码 ; 提取所识别的程序代码, 并且将所提取的代码放置到至少一个库中, 以通过将由所述 操作系统环境外的处理子系统执行的辅助运行时刻代码来编译 ; 以及 以包括对于将在所述操作系统环境内被执行的主接口运行时刻代码的调用的程序代 码来替换所提取的代码。
22: 一种包括用于建立应用程序代码的可执行程序代码的计算机程序产品, 所述可执 行程序代码操作中用于 : 识别与待由操作系统环境外的资源提供的功能相关的程序代码 ; 提取所识别的程序代码, 并且将所提取的代码放置到至少一个库中, 以通过将由所述 操作系统环境外的处理子系统执行的运行时刻代码来编译 ; 以及 以包括对于将在所述操作系统环境内执行的接口运行时刻代码的调用的程序代码来 替换所提取的代码。
23: 根据权利要求 8、 17 或 22 的任何一项所述的计算机可读存储元件, 其中, 所述计算 机可读存储介质包括硬盘、 CD-ROM、 光存储设备、 磁存储设备、 ROM(只读存储器) 、 PROM(可 编程只读存储器) 、 EPROM(可擦除可编程只读存储器) 、 EEPROM(电可擦除可编程只读存储 器) 以及闪存中的至少一个。

说明书


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

    技术领域 本发明领域涉及用于支持访问由操作系统环境外的资源提供的功能的方法, 以及 其处理子系统和处理系统。
     背景技术 诸如用户应用的计算机程序应用通常被写成在操作系统 (OS) 环境中运行。此外, 这些计算机程序应用通常利用例如 OS 及其基础软件层和硬件所提供的标准 / 公用功能, 以 执行标准 / 公用功能。 通过由操作系统使之可用的应用编程接口 (API) , 这种标准功能通常 对于计算机程序应用而言是可访问的, 从而计算机程序应用仅向适当的 API 做出 “功能调 用” , 用于访问需要的功能。
     总的来说, 计算机系统包括单一处理器架构, 或者将两个或多个相同处理器核心 连接至单一共享主存储器并且在公共 OS 的实例下操作的对称多处理器 (SMP) 架构。因此, 基本上, 包括计算机核心的所有系统资源在 OS 的控制下, 或可借助其而访问。在接收到对 于 API 的这种功能调用时, OS 保留执行该调用功能所需要的资源, 并且初始化该功能以执
     行。然后, OS 将任何返回的参数等回传至调用该功能的计算机程序应用。
     非对称多处理 (ASMP) 是多处理器系统的已知可选方法, 因此, 并非所有处理器核 心被视为相同的 (即使它们物理上是相同的) 。例如, 一个处理器核心可以被指定为 “主” 处 理器核心, 而一个或多个其他处理器核心被指定为 “从” 处理器核心。OS 可以通过与例如单 一处理器架构类似的方式, 在 “主” 处理器上运行, 但可以将某些任务或功能指配为由一个 或多个 “从” 处理器核心执行。通过这种方式, 重复的或耗时的任务可以被 OS“外包” 给从 处理器核心, 从而解放了主处理器核心以执行其他任务。 此外, 时间关键的任务可以被指配 给从处理器核心, 其能够不间断地执行该任务, 或者需要复杂计算的任务可以被指配给从 处理器器核心, 其包含专用硬件, 以比仅在软件中执行更有效率地执行这种复杂计算。
     值得注意的是, 从处理器核心资源处于 OS 的直接控制之外 (在功能性和 / 或物理 含义上) 。结果, 为了应用访问外包的功能, OS 与软件通信是必要的, 诸如在从处理器核心 上运行的监督程序。 典型的是, 与单一系统的处理器核心相反, 通过将两个处理器核心视为 如同它们是分离的联网的计算设备, 并且使用标准通信方法, 可以实现这种通信, 其中, 所 述标准通信方法例如是基于伯克利套接字 API 的套接字 API 方式。
     这种支持在 ASMP 处理器核心之间通信的已知方法的问题是, 这种通信机制旨在 支持跨网络通信等, 而非在相同处理系统内的处理器核心之间的通信。 结果, 这种连接的建 立, 例如, 通过每个处理器核心建立套接字, 是比较繁琐的。 此外, 在这种通信机制中使用的 特征, 诸如例外处理, 当仅在相同处理系统中的处理器核心之间通信时, 是非必要的, 因此, 支持这些特征大大降低了通信机制的效率。
     当实施非对称多处理时遇到的进一步问题是, 多年以来, 对称多处理已经成为多 处理器架构的主导方式。因此, 计算机程序应用通常被写成在单一处理器架构或 SMP 架构上运行, 从而所有系统资源在 OS 控制下。此外, 计算机程序应用很少被写成不需要解释, 或 使用传统代码段、 示例代码段等。为了避免需要重写已经存在的计算机程序应用, 可取的 是, 能够在 ASMP 系统上使用已经为 SMP 系统编写的计算机程序应用。然而, 识别与待由在 OS 控制以外的硬件 (例如, 从处理器核心) 执行的功能相关的现有应用代码的那些部分, 从 而需要根据使用的通信方式进行修改, 是极其困难的, 因为对于这种代码的具体了解可能 是不可实现的。 发明内容
     本发明提供如随附的权利要求中所描述的、 用于支持访问由操作系统环境外的资 源提供的功能的方法, 处理子系统、 包括处理子系统的处理系统、 和计算机程序产品。
     本发明的具体实施例在从属权利要求中阐述。
     本发明的这些和其他方面将从下文描述的实施例中显而易见, 或者参考这些实施 例而得到阐明。 附图说明 参考附图, 仅通过示例的方式, 将描述本发明的进一步细节、 方面和实施例。在附 图中, 相同参考符号用于识别相同或功能相似元件。为了简洁明了, 附图中的元件被示出, 但是没有必要按比例画出。
     图 1 示出了处理系统的简化示例。
     图 2 和图 3 示出了通过图 1 的操作系统环境外的资源提供的功能的示例。
     图 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 的第一 处理子系统 110 的一个或多个处理模块被设置成执行主运行时刻程序代码 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 之一变成空闲) 。以该 种方式, 以处理核心等级可以执行资源调度, 从而提供资源调度的基本粗粒度。 在一个示例 中, 主运行时刻程序代码 (HART) 116 通过保持空闲的处理核心 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, 示出了图 1 的主操作系统缓冲池 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, 示出了诸如图 1 的主运行时刻程序 (HART) 116 可以实现的、 根据本发 明的一个方面的一些实施例的支持访问通过操作系统环境外的资源提供的功能的简化流 程图 500 的示例。
     该方法在步骤 505 开始, 以接收对于用于主操作系统环境外的资源提供的功能的 主运行时刻接口的调用。根据一些示例, 随后该方法可以包括在步骤 510 中确定提供调用 功能的操作系统环境外的资源是否空闲。如果没有这种资源空闲 / 可用, 则该方法移至步 骤 515, 并且在返回到步骤 510 之前等待一段时间, 以便确定任何资源是否已变成空闲 / 可 用的。一旦提供调用功能的操作系统环境外的资源是空闲 / 可用的, 则该方法移到步骤 520。 根据一些可选实施例, 如虚线中示出的部分流程图大致指示地, 在步骤 505 中, 在 接收对于用于通过主操作系统环境外的资源提供的功能的主运行时刻接口的调用之后, 该 方法可以反而包括诸如基于使得运行时刻因此平衡的操作系统环境外的资源的性能数据, 而可以执行动态资源分配 517。在接收这种动态资源分配之后, 随后该方法移至步骤 520。
     在步骤 520 中, 将针对主运行时刻接口的被接收调用中提供的功能参数与用于识 别需要被执行的特定功能的功能标识符, 一起复制到能够访问提供调用功能的主操作系统 环境外的资源的存储器区域 (例如, 图 4 的 ART_Comms_Buffer_Area 410) 。对于示出的示 例, 在存储器区域内的功能标识符和功能参数的存在随后被通过信号通知到提供调用功能 的操作系统环境外的资源。尤其对于示出的示例而言, 在存储器区域中的功能标识符和功 能参数的存在被通过信号通知到在操作系统环境外部的至少一个处理模块上执行的辅助 运行时刻接口, 诸如图 1 的第二处理子系统 120 的 ART 126, 如步骤 525 所示。对于示出的 示例, 通过到图 1 的 ART 126 的中断的方式, 可以通过信号通知功能标识符和功能参数的存 在, 如步骤 530 所示。
     在确定是否有必要等待功能返回之前, 随后在 535 更新用于操作系统环境的外部 提供 / 位于其外部的资源的集中资源表, 如步骤 540 中所示。例如, 可以使用功能标识符, 以查找对于特定功能调用而言是否需要功能返回。如果不需要功能返回, 该方法需要移到 步骤 545, 并且该方法以 RETURN_OK 指示结束。 相反地, 如果需要功能返回, 该方法移到步骤 550, 并且睡眠直至从操作系统环境外的资源接收返回。
     接收在可访问操作系统环境外的资源的存储器区域内 (例如 : 图 4 的 ART_Comms_
     Buffer_Area 410) 的返回参数存在的指示之后, 其中, 对于示出的实施例而言, 包括来自操 作系统环境外的资源的辅助运行时刻接口的中断 555, 诸如图 1 的第二处理子系统 120 的 ART126, 则该方法移至其中从所述存储器区域 (例如 : 图 4 的 ART_Comms_Buffer_Area 410) 接收返回参数的步骤 560。 随后在步骤 565 更新集中资源表, 并且在步骤 570 建立包括检索 返回参数的返回功能。随后通过在步骤 575 将包括检索返回参数的返回功能返回, 该方法 结束。
     现参考图 6, 示出了诸如通过图 1 的辅助运行时刻程序 (ART) 126 可以实现的、 根 据本发明的另一方面的一些示例的用于支持访问通过操作系统环境外的资源提供的功能 的被简化流程图 600 的示例。
     该方法在步骤 605 开始, 以接收诸如图 1 的第二子系统 120 提供的功能的、 操作系 统环境的这种外部资源提供的功能所需要的指示。 这种指示可以包括从操作系统环境内的 处理子系统的中断, 例如, 即从图 1 的主运行时刻程序 (HART) 116 发送的终端。可选地, 通 过操作系统环境的这种外部资源提供的功能所需要的这种指示可以包括轮询主操作系统 的缓冲描述符, 并且识别主操作系统的缓冲区描述符环内的缓冲区描述符, 其中, 主操作系 统的缓冲区描述符环与用于由位于操作系统缓冲池中的这种资源提供的功能的功能参数 相关。
     在接收这种指示之后, 该方法移至步骤 610, 在步骤 610 中从操作系统环境内的存 储器区域 (例如, 图 4 的 ART_Comms_Buffer_Area410) 检索功能参数和用于所要求的功能的 功能标识符, 其中, 处理子系统驻留在操作系统环境外部。在已经检索功能参数之后, 使用 在步骤 615 中检索的功能参数和功能标识符来建立功能调用, 针对示出的示例, 随后将其 发送到用于执行所需要功能的加速器代码, 如通常 620 和 625 所述。在随后接收返回功能 630 之后, 在 635 将返回参数从接收的返回功能复制到操作系统环境内的存储区域 (例如 : ART_Comms_Buffer_Area 410) , 其中, 处理子系统驻留在操作系统环境外部。 随后将操作系 统环境 (例如, 图 4 的 ART_Comms_Buffer_Area410) 内的存储器区域内返回参数的存在通过 诸如图 1 的对主运行时刻程序 (HART) 116 的中断 645 的方式, 被指示到操作系统环境内的 处理子系统。随后该方法在步骤 650 结束。
     如参考图 5 和图 6 的上文所述, 在不需要建立繁琐通信机制的需要的情形下, 并且 在不需要在处理子系统之间传输功能参数和其他数据的情形下, 通过诸如在操作系统环境 内运行的一个或多个应用, 或者通过其操作系统, 可以访问操作系统环境外的资源提供的 功能。替代地, 在可以访问操作系统环境外的资源的操作系统环境内的存储器被用于交换 这种参数和数据, 从而显著地简化和提高访问这种功能的有效性。
     针对图 5 和图 6 中示出的示例, 操作系统环境外的资源提供的功能被简化成包括 自组服务, 从而当需要时调用这种功能, 并且在所需要的服务或功能完成之后, 被调用的功 能返回并且被停止。 然而, 在一个示例中, 操作系统环境外的资源提供的功能不需要被限制 为自组服务和功能。 例如, 这种功能可以包括如下的服务或功能, 其一旦被初始化则基本上 持续运行, 并且从而在数据接收之后提供服务或功能。
     根据一些可选示例, 在诸如图 1 的 HART 116 的操作系统环境内运行的运行时刻 程序代码可以被设置成, 在接收将被传送到操作系统环境外部的处理子系统的数据存在的 指示之后, 利用用于映射到操作系统环境的外部目的地对象的存储空间的存储器区域的指针, 交换用于映射到操作系统环境内的源对象的存储空间的存储器区域的标识符。
     此外, 并且根据又一些可选示例, 在诸如 ART 的操作系统环境外部的处理子系统 内运行的运行程序代码可以被设置成, 在接收到将传送到操作系统环境内的对象的数据的 存在的指示之后, 其中, 所述对象例如是操作系统环境内或其操作系统运行的任务或应用, 则将映射到操作系统环境外部的源对象的存储空间的存储器区域的指针与映射到操作系 统环境内的目的地对象的存储空间的存储器区域的指针做交换。
     现参考图 7 和图 8, 示出了诸如通过图 1 的主运行时刻程序 (HART) 116 和辅助运行 时刻程序 (ART)126 实施的、 根据本发明的一些实施例的用于支持访问操作系统环境外的 资源提供的该种数据路径功能的方法的简化流程图 700、 800 的示例。尤其是对于示出的示 例而言, 通过操作系统环境外部的处理子系统 120 提供的功能包括提供以太网服务, 从而 通过诸如应用 114 或 OS 本身来将待传输的数据分组放置到存储器区域中, 并且随后对 HART 116 进行调用, 以通过以太网连接 (未示出) 影响数据分组的传输。例如, 又参考回图 4, 示 出了通过处理子系统 120 可访问的 OS 缓冲池 130 的部分内的存储器 430 的 Host_OS_ART_ Ethernet_Buffer 区域, 并且其可以被映射到操作系统环境内运行的应用 114 的存储空间。 以该种方式, 可以将存储器 430 的 Host_OS_ART_Ethernet_Buffer 区域使用为用于将要被 传输和 / 或接收的数据分组的缓冲器。 图 7 的方法在 705 开始, 从而以例如从诸如应用 114 或从 OS 本身接收到其调用的 方式, 由 HART 116 接收数据分组将需要被传输的指示。该方法随后移至步骤 710, 在步骤 710 中, 根据 OS 怎么处理用于以太网操作的缓冲描述符, HART116 可以从主 OS 缓冲区描述 符环 (主 OS BD 环) 获取与其中存储将被传输的数据分组的存储器区域相对应的缓冲区描 述符, 或者仅获得缓冲区描述符的指针。 针对示出的示例, 其中存储将被传输的数据分组的 存储器区域 (并且因此其与缓冲区描述符相关) 包括存储器 430 的 Host_OS_ART_Ethernet_ Buffe 区域。
     接下来, 在步骤 720 中, 诸如大致通过图 1 中的功能 124 示出的, 用于处理子系统 120(ART_Ethernet_Process) 内的以太网处理的功能标识符和任何需要的功能参数 (包括 获取的主 OS 缓冲器描述符或主 OS 缓冲器描述符指针) , 可以被加载到图 4 的 ART_Comms 缓 冲区 410 中, 并且在步骤 725 中随后将它们的存在通过信号通知到 ART126。针对示出的示 例, 通过将中断信号通知到图 1 的 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_OS_ ART_Ethernet_Buffer 区域的指针被有效地与被映射到操作系统环境外部的目的地对象的 存储空间的存储器 420 的 Host_OS_fake_Ethernet_Buffer 区域的指针进行交换。
     接 着 缓 冲 器 描 述 符 指 针 的 这 种 交 换, 用 于 ART BD 环 内 的 Host_OS_fake_ Ethernet_Buffer 缓冲器描述符 420 的指针现将指向其中数据分组已被放置的存储器的物
     理区域。实际上, 在没有实际需要将数据分组本身从一个物理存储位置复制或传输至另一 个的情形下, 已经将数据分组重新安置到 Host_OS_fake_Ethernet_Buffer 420。
     随后, 该方法移至步骤 745, 其中图 1 的 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, 将接收的数据分组复制到缓冲器, 并且更新图 1 的处理 子系统 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_Process 可以从 ART 缓冲器描述符环 (ART BD 环) 获取与其中数据分组被存储的存储器区域相对应的缓冲区描述符, 或者仅获取 对于缓冲区描述符的指针。 对于示出的示例, 其中数据分组被存储的存储器区域 (并且因此 其与缓冲区描述符相关) 包括存储器 420 的 Host_OS_fake_Ethernet_Buffe 区域。
     接下来, 在步骤 840 中, ART_Ethernet_Process 将返回参数 (包括 ART 缓冲器描述 符或仅仅其的指针) 加载到存储器区域 410 的 ART_Comms_Buffer 区域, 并且在步骤 850 中, 例如通过中断 855 的方式, 将存储器区域 410 的 ART_Comms_Buffer 区域中的返回参数的存 在通过信号通知到 HART。随后该方法在步骤 860 中结束。
     在中断 855 接收之后, HART 随后可以从 ART_Comms buffer 区域 410 检索功能参 数 (包括被获取的 ART 缓冲器描述符或 ART 缓冲器描述符指针) , 并且对于示出的示例, 使 用获取的 ART 缓冲器描述符或 ART 缓冲器描述符指针来更新在与存储器 430 的 Host_OS_ ART_Ethernet_Buffer 区域相对应的主 OS 的缓冲器描述符环 (主 OS BD 环) 内的缓冲器描 述符。因此, 以该种方式, 用于映射到操作系统环境外部的源对象的存储空间的存储器 420 的 Host_OS_fake_Ethernet_Buffer 区域的指针被有效地与用于被映射到操作系统环境内 的目的地对象的存储空间的存储器 430 的 Host_OS_ART_Ethernet_Buffer 区域的指针进行 交换。
     接 着 缓 冲 器 描 述 符 指 针 的 这 种 交 换, 用 于 主 OS BD 环 内 的 Host_OS_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 中示出的示例与通过以太网连接而传输和接收的数据分组的传送相 关时, 这些示例可以等同地应用到数据路径的其他形式。 通过示例的方式, 通过操作系统环 境外的资源提供的数据路径功能可以包括与传输层数据 (例如, 层 1、 层 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 上或图 1 中示出的混合 S MP/ASMP 上运行。具体而言, 与操作系统环境外 的资源提供的功能相关的代码的段可以从程序代码自动地提取 ; 可以被放置在将与外部资 源的辅助运行时刻接口链接的库内 ; 并且以主运行时刻接口的调用被取代。 以该种方式, 可 以将功能的 ASMP 加速自动地链接到应用程序代码。
     图 11 示出了图 9 和图 10 的方法可以形成其部分的应用程序建立处理 1100 的示 例。建立处理开始, 以向编译器 110 提供程序资源代码, 大致如 1102 所述。编译器 1110 基 于编译定义 1105 可以识别在程序源代码内的代码段, 其提取并且被放置在将利用辅助运 行时刻接口而被编译的一个或多个库 1116 中, 诸如图 1 的 ART 216。编译器 1110 也建立用 于辅助运行接口的功能调用和类型定义表 1112,1114, 其被用于使得被提取的功能将被调 用, 并且用于在诸如图 1 的 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 默认模块满足。
     随后可以编译被修正的程序代码, 以在主操作系统下的目标系统上运行。
     在一个示例中, 用于在操作系统环境内运行诸如图 1 的应用 114 的应用, 并且将诸 如图 4 的 Host_OS_fake_Ethernet 缓冲区域 420 的存储器区域映射至其上的虚拟地址空间 与在诸如图 1 的处理子系统 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。然而, 针对在图 1 中示出的示例, 处理系统 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 可以包括, 例如, 硬盘、 软盘、 磁带、 光盘、 CD 或 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、 EPROM、 ROM 的基于半导体的存储单元的非易失性存储器存储介质 ; 铁磁数字存储器 ; MRAM ; 包括寄 存器、 缓冲器或高速缓存、 主存储器、 RAM 等的易失性存储介质 ; 以及包括计算机网络、 点对 点通信设备、 和载波传输介质等的数据传输介质。
     计算机处理通常包括执行 (运行) 程序或程序的部分、 当前程序值和状态信息、 以 及操作系统用于管理程序执行的资源。操作系统 (OS) 是管理计算机的资源共享并且为程 序员提供用于访问这些资源的接口的软件。操作系统处理系统数据和用户输入, 并且通过 分配并管理作为服务的任务和内部系统资源, 以响应用户和系统的程序。
     例如, 计算机系统可以包括至少一个处理单元、 相关联的存储器、 和多个输入 / 输 出 (I/O) 设备。当执行计算机程序时, 计算机系统根据计算机程序来处理信息, 并且经由 I/ O 设备产生结果的输出信息。
     在前面的说明中, 已经参考本发明的实施例的具体示例描述了本发明。 然而, 将显 而易见的是, 在不脱离如随附的权利要求中所述的本发明的更广泛精神和范围的条件下, 可以做出各种修改和变更。
     为了实现相同功能的构件的任何布置是有效 “相关联” 的, 以便实现期望的功能。 因此, 此处被组合以实现特定功能的任意两个构件可以被视为彼此 “相关联” , 以便实现期 望的功能, 而无论架构或中间构件如何。 同样, 如此相关联的任意两个构件也可以被视为彼 此 “可操作地连接” , 或者 “可操作地耦合” , 以实现期望的功能。
     此外, 本领域的技术人员应明白的是, 上文描述的这些操作之间的界限仅是解释 性的。 多种操作可以被组合成单一操作, 单一操作可以被分布在另外的操作中, 并且操作可 以至少在时间上部分重叠地被执行。 而且, 可选实施例可以包括特定操作的多个实例, 在各 种其他实施例中, 操作的顺序可以被改变。
     而且, 例如, 其示例或部分可以被实施为可转换成物理电路系统的逻辑表示的物 理电路系统的软件或代码表示, 诸如通过任何适当类型的硬件描述语言。
     而且, 本发明不限于以非可编程硬件实施的物理设备或单元, 但也可以应用于能 够通过根据适当的程序代码操作而执行期望设备功能的可编程设备或单元, 诸如主机、 迷 你计算机、 服务器、 工作站、 个人计算机、 笔记本、 个人数字助理、 电子游戏机、 机动车和其他 嵌入系统、 蜂窝电话和各种其他无线设备, 在本申请中, 其被统称为 “计算机系统” 。
     然而, 其他修改、 变化和替代也是可能的。因此, 这些说明和附图应视为解释性而 非限制性含义。
     在权利要求中, 在放置在括号内的任何参考符号不应被解释为限定权利要求。 “包 括” 一词不排除在权利要求中除了所列示的那些还存在其他元件或步骤。 此外, 此处所使用 的术语 “一个” 被定义为一个或超过一个。而且, 在权利要求中诸如 “至少一个” 和 “一个或 多个” 的引导短语的使用, 不应被解释为暗示通过不定冠词 “一个” 引入的另一权利要求元 件将含有这种被引入的权利要求元件的任何特定权利要求限于仅含有一个这种元件, 即使 当相同权利要求包括引导性短语 “至少一个” 和 “一个或多个” 和诸如 “一个” 的不定冠词时也是如此。这对于定冠词的使用也是一样。除非另有说明, 诸如 “第一” 和 “第二” 的术语 被用于任意地区别这种术语所描述的元件。因此, 这些术语未必旨在指示这些元件的临时 或其他优先次序。在彼此不同的权利要求中叙述的某些措施的这一事实, 并不表示这些措 施的组合不能被有利地使用。

支持访问由操作系统环境外的资源提供的功能的方法和系统.pdf_第1页
第1页 / 共30页
支持访问由操作系统环境外的资源提供的功能的方法和系统.pdf_第2页
第2页 / 共30页
支持访问由操作系统环境外的资源提供的功能的方法和系统.pdf_第3页
第3页 / 共30页
点击查看更多>>
资源描述

《支持访问由操作系统环境外的资源提供的功能的方法和系统.pdf》由会员分享,可在线阅读,更多相关《支持访问由操作系统环境外的资源提供的功能的方法和系统.pdf(30页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102667714 A(43)申请公布日 2012.09.12CN102667714A*CN102667714A*(21)申请号 200980162601.X(22)申请日 2009.11.25G06F 9/22(2006.01)G06F 9/06(2006.01)(71)申请人飞思卡尔半导体公司地址美国得克萨斯(72)发明人约翰拉尔斯通安德利亚阿夸维瓦(74)专利代理机构中原信达知识产权代理有限责任公司 11219代理人李宝泉 周亚荣(54) 发明名称支持访问由操作系统环境外的资源提供的功能的方法和系统(57) 摘要一种用于支持访问由操作系统环境外的资源提供的功能的。

2、方法(500),所述方法包括:接收对于由所述操作系统环境外的资源提供的功能的调用(505);以及将功能参数从在接收的调用内复制到对于提供被调用功能的操作系统环境外的资源可访问的存储器区域(520)。(85)PCT申请进入国家阶段日2012.05.25(86)PCT申请的申请数据PCT/IB2009/055336 2009.11.25(87)PCT申请的公布数据WO2011/064616 EN 2011.06.03(51)Int.Cl.权利要求书3页 说明书15页 附图11页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书 3 页 说明书 15 页 附图 11 页1/3页21.。

3、一种用于支持访问由操作系统环境外的资源提供的功能的方法,所述方法包括:接收对于由所述操作系统环境外的资源提供的功能的调用;以及将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所述资源可访问的存储器区域。2.根据权利要求1所述的方法,进一步包括将在所述存储器区域内的被复制参数的存在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源。3.根据权利要求2所述的方法,其中,将在所述存储器区域内的被复制参数的所述存在通过信号通知到提供所述被调用功能的所述操作系统环境外的所述资源包括:将中断发送至处于所述操作系统环境外的至少一个处理模块上运行的辅助运行时刻程序代码。4.根。

4、据权利要求2所述的方法,进一步包括,在随后接收到对于所述操作系统环境外的资源可访问的所述存储器区域内的返回参数的存在的指示时,从所述存储器区域检索这样的返回参数,并且利用所检索到的返回参数来建立用于所接收到的调用的返回功能。5.根据权利要求1所述的方法,其中,在所接收到的调用内的功能参数被复制到的所述操作系统外的资源可访问的所述存储器区域包括操作系统缓冲池的部分。6.根据权利要求1所述的方法,进一步包括维护用于所述操作系统环境外的资源的集中资源表。7.根据权利要求1所述的方法,进一步包括,在接收到对于待被传递至所述操作系统环境外的处理子系统的数据的存在的指示时,将用于映射至在所述操作系统环境内。

5、的源对象的存储器空间的存储器区域的指针与用于映射至所述操作系统环境外的目的地对象的存储器空间的存储器区域的指针交换。8.一种计算机程序产品,包括用于支持访问由操作系统环境外的资源所提供的功能的可执行程序代码,所述可执行程序代码操作中用于:接收对于由所述操作系统环境外的资源提供的功能的调用;以及将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的所述资源可访问的存储器区域。9.一种被布置成在操作系统环境中操作的处理子系统,所述处理子系统包括至少一个处理模块,所述至少一个处理模块包括被布置成接收对于由所述操作系统环境外的资源提供的功能的调用的输入;其中,所述至少一个处理模块被设置。

6、成,在接收到这样的调用时,将功能参数从所接收到的调用内复制到提供被调用功能的所述操作系统环境外的资源可访问的存储器区域。10.一种用于支持访问由操作系统环境外的资源提供的功能的方法,所述方法包括,在处理子系统处:接收由所述处理子系统提供的功能需要被执行的指示;从在所述处理子系统驻留在其外部的操作系统环境内的存储器区域中检索功能参数;以及利用所检索到的功能参数,建立对于所需要的功能的功能调用。11.根据权利要求10所述的方法,其中,接收由所述处理子系统提供的功能需要被执行的指示包括:从在所述操作系统环境内的处理子系统接收中断。12.根据权利要求10所述的方法,其中,在所述操作环境内的所述存储器区。

7、域包括操权 利 要 求 书CN 102667714 A2/3页3作系统缓冲池的部分,并且接收由所述处理子系统提供的功能需要被执行的指示包括:识别与位于主操作系统缓冲器描述符环内的所述操作系统缓冲池中所述功能参数相关的缓冲器描述符。13.根据权利要求10所述的方法,其中,所述方法进一步包括,在随后从执行所需要的功能的功能元件接收到功能返回时,将返回参数复制到所述操作系统环境内的所述存储器区域,并且将在所述操作系统环境内的所述存储器区域中的所述返回参数的存在通过信号通知需要所述功能被执行的处理子系统。14.根据权利要求10所述的方法,其中,所述方法进一步包括:为所述操作系统环境轮询主操作系统的缓冲。

8、器描述符环;以及在识别与所述需要功能对于其待由所述处理子系统执行的被缓冲数据相关的所述主操作系统缓冲器描述符环内的缓冲器描述符时,将所识别的所述主操作系统缓冲器描述符环内的缓冲器描述符复制到用于提供所需要的功能的所述处理子系统的缓冲器描述符环内的缓冲器描述符中。15.根据权利要求14所述的方法,其中,所述方法进一步包括:接收待从所需要的功能返回到所述主操作系统环境的数据;将所接收的数据存储到在操作系统环境内的存储器区域;以及将与所接收的数据被存储到的所述存储器区域相关的缓冲器描述符从提供所需要的功能的所述处理子系统的所述缓冲器描述符环复制到所述主操作系统缓冲器描述符环。16.根据权利要求10所。

9、述的方法,进一步包括,在接收到待被传递至操作系统环境内的对象的数据的存在的指示时,将用于映射至所述操作系统环境外的源对象的存储器空间的存储器区域的指针与映射到在所述操作系统环境内的目的地对象的存储器空间的存储器区域的指针交换。17.一种包括用于支持访问由操作系统环境外的资源提供的功能的可执行程序代码的计算机程序产品,所述可执行程序代码在处理子系统内操作用于:接收由所述处理子系统提供的功能需要被执行的指示;从在所述处理子系统驻留于其外部的操作系统环境内的存储器区域中检索功能参数;利用所检索的功能参数,建立对于所需要的功能的功能调用。18.一种被布置成执行辅助运行时刻程序代码的处理子系统,所述处理。

10、子系统包括至少一个处理模块,所述至少一个处理模块包括被布置成接收由所述处理子系统提供的功能需要被执行的指示的输入;其中,所述至少一个处理模块被布置成,在接收到这样的指示时,从在所述处理子系统驻留于其外部的操作系统环境内的存储区域中检索功能参数;并且利用所检索的功能参数,建立对于所需要的功能的功能调用。19.根据权利要求18所述的处理子系统,其中,所述至少一个处理模块被进一步布置成,执行性能监控器程序代码,以用于将运行时刻性能数据提供给在所述操作系统环境内运行的主接口运行时刻程序。20.一种处理系统,包括:第一处理子系统,所述第一处理子系统被布置成在操作系统环境内操作;以及至少一个进一步处理子系。

11、统,所述至少一个进一步处理子系统被布置成在所述操作系权 利 要 求 书CN 102667714 A3/3页4统环境外操作,其中,所述第一处理子系统包括被布置成执行主运行时刻程序代码的至少一个第一处理模块,所述至少一个第一处理模块被布置成接收对于由所述操作系统环境外的资源提供的功能的调用;以及在接收到这样的调用时,将功能参数从所接收的调用内复制到提供被调用功能的所述操作系统环境外的资源可访问的存储器区域,以及其中,所述至少一个进一步处理子系统包括被布置成执行辅助运行时刻程序代码的至少一个第二处理模块,所述至少一个第二处理模块被布置成接收由所述处理子系统提供的功能需要被执行的指示,并且在接收到这样。

12、的指示时,从所述操作系统环境内的存储器区域检索功能参数;以及利用所检索的功能参数,建立对于所需要的功能的功能调用。21.一种用于建立应用程序代码的方法,所述方法包括:识别与待由操作系统环境外的资源提供的功能相关的程序代码;提取所识别的程序代码,并且将所提取的代码放置到至少一个库中,以通过将由所述操作系统环境外的处理子系统执行的辅助运行时刻代码来编译;以及以包括对于将在所述操作系统环境内被执行的主接口运行时刻代码的调用的程序代码来替换所提取的代码。22.一种包括用于建立应用程序代码的可执行程序代码的计算机程序产品,所述可执行程序代码操作中用于:识别与待由操作系统环境外的资源提供的功能相关的程序代。

13、码;提取所识别的程序代码,并且将所提取的代码放置到至少一个库中,以通过将由所述操作系统环境外的处理子系统执行的运行时刻代码来编译;以及以包括对于将在所述操作系统环境内执行的接口运行时刻代码的调用的程序代码来替换所提取的代码。23.根据权利要求8、17或22的任何一项所述的计算机可读存储元件,其中,所述计算机可读存储介质包括硬盘、CD-ROM、光存储设备、磁存储设备、ROM(只读存储器)、PROM(可编程只读存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)以及闪存中的至少一个。权 利 要 求 书CN 102667714 A1/15页5支持访问由操作系统环境。

14、外的资源提供的功能的方法和系统技术领域0001 本发明领域涉及用于支持访问由操作系统环境外的资源提供的功能的方法,以及其处理子系统和处理系统。背景技术0002 诸如用户应用的计算机程序应用通常被写成在操作系统(OS)环境中运行。此外,这些计算机程序应用通常利用例如OS及其基础软件层和硬件所提供的标准/公用功能,以执行标准/公用功能。通过由操作系统使之可用的应用编程接口(API),这种标准功能通常对于计算机程序应用而言是可访问的,从而计算机程序应用仅向适当的API做出“功能调用”,用于访问需要的功能。0003 总的来说,计算机系统包括单一处理器架构,或者将两个或多个相同处理器核心连接至单一共享主。

15、存储器并且在公共OS的实例下操作的对称多处理器(SMP)架构。因此,基本上,包括计算机核心的所有系统资源在OS的控制下,或可借助其而访问。在接收到对于API的这种功能调用时,OS保留执行该调用功能所需要的资源,并且初始化该功能以执行。然后,OS将任何返回的参数等回传至调用该功能的计算机程序应用。0004 非对称多处理(ASMP)是多处理器系统的已知可选方法,因此,并非所有处理器核心被视为相同的(即使它们物理上是相同的)。例如,一个处理器核心可以被指定为“主”处理器核心,而一个或多个其他处理器核心被指定为“从”处理器核心。OS可以通过与例如单一处理器架构类似的方式,在“主”处理器上运行,但可以将。

16、某些任务或功能指配为由一个或多个“从”处理器核心执行。通过这种方式,重复的或耗时的任务可以被OS“外包”给从处理器核心,从而解放了主处理器核心以执行其他任务。此外,时间关键的任务可以被指配给从处理器核心,其能够不间断地执行该任务,或者需要复杂计算的任务可以被指配给从处理器器核心,其包含专用硬件,以比仅在软件中执行更有效率地执行这种复杂计算。0005 值得注意的是,从处理器核心资源处于OS的直接控制之外(在功能性和/或物理含义上)。结果,为了应用访问外包的功能,OS与软件通信是必要的,诸如在从处理器核心上运行的监督程序。典型的是,与单一系统的处理器核心相反,通过将两个处理器核心视为如同它们是分离。

17、的联网的计算设备,并且使用标准通信方法,可以实现这种通信,其中,所述标准通信方法例如是基于伯克利套接字API的套接字API方式。0006 这种支持在ASMP处理器核心之间通信的已知方法的问题是,这种通信机制旨在支持跨网络通信等,而非在相同处理系统内的处理器核心之间的通信。结果,这种连接的建立,例如,通过每个处理器核心建立套接字,是比较繁琐的。此外,在这种通信机制中使用的特征,诸如例外处理,当仅在相同处理系统中的处理器核心之间通信时,是非必要的,因此,支持这些特征大大降低了通信机制的效率。0007 当实施非对称多处理时遇到的进一步问题是,多年以来,对称多处理已经成为多处理器架构的主导方式。因此,。

18、计算机程序应用通常被写成在单一处理器架构或SMP架构说 明 书CN 102667714 A2/15页6上运行,从而所有系统资源在OS控制下。此外,计算机程序应用很少被写成不需要解释,或使用传统代码段、示例代码段等。为了避免需要重写已经存在的计算机程序应用,可取的是,能够在ASMP系统上使用已经为SMP系统编写的计算机程序应用。然而,识别与待由在OS控制以外的硬件(例如,从处理器核心)执行的功能相关的现有应用代码的那些部分,从而需要根据使用的通信方式进行修改,是极其困难的,因为对于这种代码的具体了解可能是不可实现的。发明内容0008 本发明提供如随附的权利要求中所描述的、用于支持访问由操作系统环。

19、境外的资源提供的功能的方法,处理子系统、包括处理子系统的处理系统、和计算机程序产品。0009 本发明的具体实施例在从属权利要求中阐述。0010 本发明的这些和其他方面将从下文描述的实施例中显而易见,或者参考这些实施例而得到阐明。附图说明0011 参考附图,仅通过示例的方式,将描述本发明的进一步细节、方面和实施例。在附图中,相同参考符号用于识别相同或功能相似元件。为了简洁明了,附图中的元件被示出,但是没有必要按比例画出。0012 图1示出了处理系统的简化示例。0013 图2和图3示出了通过图1的操作系统环境外的资源提供的功能的示例。0014 图4示出了主操作系统缓冲池的部分的示例。0015 图5。

20、和图6示出了用于支持访问通过操作系统环境外的资源提供的功能的方法的简化流程图的示例。0016 图7和图8示出了用于支持访问通过操作系统环境外的资源提供的功能的方法的简化流程图的可选示例。0017 图9至图11示出了建立应用程序代码的方法的示例。0018 图12示出了典型计算系统。具体实施方式0019 例如,在此参考支持访问操作系统环境外所提供/处于其外的加速器功能,来描述本发明。然而,应该明白的是,本发明的概念不限于支持访问加速器功能,并且可以实现为支持访问通过操作系统环境外的资源而提供的任何功能。0020 因为使用本领域的技术人员已知的电子组件和电路,在极大程度上可以实施本发明的被示出的实施。

21、例,所以不会以比下文认为必需示出的更深程度来解释详细说明,以便理解和领会本发明的基础概念,并且以便不模糊和分散本发明的教导。0021 参考图1,示出了处理系统100的简化示例,处理系统100包括设置成在操作系统环境105中操作的第一处理子系统110,以及设置成基本在操作系统环境105的外部操作的至少又一个(第二)处理子系统120。0022 用于示出的示例的第一处理子系统110包括处理器核心112的形式的一个或多个说 明 书CN 102667714 A3/15页7处理模块。将主操作系统的实例设置成在处理器核心112上执行,以便主操作系统将用于每个处理器核心112的公共编码区域101、公共数据区域。

22、102、和局部数据区域103提供给第一处理子系统120。用于示出的示例的至少另一(第二)处理子系统120包括处理器核心122的形式的一个或多个处理模块。在一个示例中,监督程序的实例可以被设置成在第二处理子系统120的处理器核心122上执行,以便向第二处理子系统提供有用于每个处理器核心122的公共核心区域106、公共数据区域107、以及局域数据区域108。处理系统100还可以包括位于操作系统环境105内并且可访问至少另一(第二)处理子系统和120的存储器区域,其示例性示例是处于以操作系统缓冲池130的形式。0023 对于示例性实例,第一处理子系统110可以包括对称性多处理器(SMP)构架,对称性。

23、多处理器架构包括多个处理核心112。相反地,第二处理子系统120可以包括非对称性多处理器(ASMP)构架,非对称性多处理器构架包括一个或多个处理核心122。以该方式,处理系统100可以包括混合SMP和ASMP构架。0024 此外,在示出示例时,第一和第二处理子系统110、120的每个包括处理器核心112、122的形式的多个处理模块,在一些示例中,处理子系统可以包括一个或多个处理模块,处理模块包括任何合适的硬件配置。例如,处理子系统可以包括一个或多个中央处理单元(CPU)。可选地,处理子系统可以包括一个或者多个专用处理硬件元件,诸如设置成执行一个或多个专用功能的数字信号处理器(DSP)或微处理器。

24、。还可选地,处理子系统可以包括处理元件的组合,诸如一个或多个CPU和一个或多个专用DSP/微控制器的组合。因此,关于在此使用的处理模块可以涉及诸如CPU、DSP等的用于处理信号的任何合适硬件配置。0025 根据本发明的第一方面的一些示例,针对被示出的示例包括处理核心112的第一处理子系统110的一个或多个处理模块被设置成执行主运行时刻程序代码116,主运行时刻程序代码116被设置以从应用114接收对例如通过处理子系统120的由操作系统环境105外的资源提供的功能的调用。在接收这种调用之后,(例如使用主运行时刻程序代码116)的第一处理子系统110被设置成将来自被接收的调用内的功能参数复制到可访。

25、问提供被调用功能的操作系统环境105外的资源的存储器区域,例如,复制到操作系统缓冲池130内的存储器区域。对于示出的示例,主运行时刻程序代码116可以包括主加速器运行时刻(HART)接口,主加速器运行时刻接口被设置成支持访问操作系统环境105外的资源提供的加速器功能。0026 根据本发明的第二方面的一些示例,针对被示出的示例包括处理核心122的第二处理子系统120的一个或多个处理模块被设置成执行辅助运行时刻程序代码126,辅助运行时刻程序代码126被设置成接收指示,该指示是需要执行通过第二处理子系统120提供的功能。在接收这种指示之后,第二处理子系统120(例如,通过执行辅助运行时刻程序代码1。

26、26)被设置成从操作系统环境105内的存储器区域检索功能参数,例如从操作系统缓冲池130内的存储器区域中;并且设置成利用被检索的功能参数建立用于所需功能的功能调用。对于示出的示例,辅助运行时刻程序代码126可以包括加速器运行时刻(ART)接口,加速器运行时刻接口被配置成支持访问第二处理子系统120提供的加速器功能。0027 图2示出了操作系统环境105外的资源提供的功能的示例,例如,通过诸如应用114而访问的第二处理子系统120所提供的。用于所述功能的调用214被操作系统环境中存在的主接口运行时刻程序116接收,其选择用于提供调用功能的资源,例如处理核心122说 明 书CN 102667714。

27、 A4/15页8中的一个空闲的处理核心122,并且在选择用于提供调用功能的资源时,将功能参数复制到选定的资源可访问的存储器区域中,并且将由此提供的功能需要被执行的指示发送到用于选择资源的辅助接口运行时刻程序126。可选地,主接口运行时刻程序116可以简单地将功能参数复制到可以访问被选择的资源的存储器区域,并且根据辅助接口运行程序126,以检测其中功能参数的存在。0028 以该种方式,在从主接口运行时刻程序116接收这种指示之后,或者检测在存储器区域内的功能参数之后,辅助接口运行时刻程序126能够从存储器区域简单地检索功能参数,并且能够利用被检索的功能参数建立用于所需要的功能的功能调用。显著地,。

28、在操作系统环境中的应用,或者即使操作系统本身,在不需要建立诸如通过常规系统所需要的套接口API的方式的、繁琐(cumbersome)的通信连接的情形下,能够访问操作系统环境的外部提供的功能。此外,基本避免在诸如例外处理等的这种常规通信机制中使用的不必要的特征。0029 因此,提供了一种支持访问操作系统环境外的资源提供的功能的更加简单有效的机制。此外,提供了操作系统环境内的存储器区域的使用,该存储器区域通过操作系统环境外的资源可被访问,以便在处理子系统之间传递功能参数。以该种方式,可以缓减对于没有必要作为内部处理通信的一部分而被复制和传输的这种参数的需要,从而进一步提高通过操作系统环境外的资源所。

29、提供的访问功能的效率。0030 如图2中示出的示例,在选择提供调用功能的这种资源之前,可以将主接口运行时刻程序116设置成等待资源以变成空闲(例如,针对处理核心122之一变成空闲)。以该种方式,以处理核心等级可以执行资源调度,从而提供资源调度的基本粗粒度。在一个示例中,主运行时刻程序代码(HART)116通过保持空闲的处理核心122的踪迹,或者通过将调用记录(log)到处理核心122、或来自处理核心122的一个或多个返回的方式,可以实现这种资源调度。0031 图3示出了通过操作系统环境105外的资源提供的、例如通过诸如应用114访问的第二处理子系统120提供的功能的可选示例。通过设置在操作系统。

30、环境中的主接口运行时刻程序116,可以接收用于所述功能的调用214。如图3中示出的示例,基于用于各种处理核心的性能信息,主接口运行时刻可以选择用于提供被调用的功能的资源,例如,最小负载的处理核心、或者能够处理整个功能性能要求的处理核心122。0032 例如,每个处理核心122可以包括在其上执行的性能监控器程序代码310(或逻辑),例如,作为辅助接口运行时刻程序126的部分,其将运行时刻性能数据提供给主接口运行时刻程序116。随后,主接口运行时刻程序116可以使用集合的核心性能数据320,以确定处理核心122的相应负荷,并且选择具有最少负荷的处理核心,以提供被调用的功能。以该种方式,主接口运行时。

31、刻程序116能够提供操作系统环境105外的资源的动态运行时刻平衡。0033 可选地,为了避免提供运行时刻性能数据的这种性能监控器310的干扰性,在一个示例中,例如通过从基准(benchmarks)计算或简单推断,预先运行时刻可以生成剖析数据(profiling data)。以该种方式,不需要从处理核心122反馈,但是需要定时数据等,以便通过处理核心122正执行的任何特定功能根据预先生成的剖析数据可以访问主接口运行时刻程序116。说 明 书CN 102667714 A5/15页90034 现参考图4,示出了图1的主操作系统缓冲池130的部分的示例。对于示出的示例,通常通过ART-Comms-Bu。

32、ffer-Area 410示出的OS缓冲池130的第一区域被分配以由主运行时刻程序116使用,以便将数据传输到辅助运行时刻程序126或从辅助运行时刻程序126传输数据。以该种方式,通过简单地将数据复印到存储器ART-Comms-Buffer-Area410的这个分配区域,主运行时刻程序116和辅助运行时刻程序126彼此之间能够传输诸如功能参数、返回参数等的数据。在该示例中,这避免了通过诸如使用套接口API等的多个常规通信机制的方式来传输这种数据的需要。0035 图4也示出了通常通过Host_OS_fake_Ethernet_Buffer_Area 420示出的OS缓冲池130的又一区域。OS缓。

33、冲池130的该区域被分配,以提供用于操作系统环境105外的资源的缓冲空间,诸如处理子系统120,其对于主操作系统和操作系统环境外的资源是公共的。0036 现参考图5,示出了诸如图1的主运行时刻程序(HART)116可以实现的、根据本发明的一个方面的一些实施例的支持访问通过操作系统环境外的资源提供的功能的简化流程图500的示例。0037 该方法在步骤505开始,以接收对于用于主操作系统环境外的资源提供的功能的主运行时刻接口的调用。根据一些示例,随后该方法可以包括在步骤510中确定提供调用功能的操作系统环境外的资源是否空闲。如果没有这种资源空闲/可用,则该方法移至步骤515,并且在返回到步骤510。

34、之前等待一段时间,以便确定任何资源是否已变成空闲/可用的。一旦提供调用功能的操作系统环境外的资源是空闲/可用的,则该方法移到步骤520。0038 根据一些可选实施例,如虚线中示出的部分流程图大致指示地,在步骤505中,在接收对于用于通过主操作系统环境外的资源提供的功能的主运行时刻接口的调用之后,该方法可以反而包括诸如基于使得运行时刻因此平衡的操作系统环境外的资源的性能数据,而可以执行动态资源分配517。在接收这种动态资源分配之后,随后该方法移至步骤520。0039 在步骤520中,将针对主运行时刻接口的被接收调用中提供的功能参数与用于识别需要被执行的特定功能的功能标识符,一起复制到能够访问提供。

35、调用功能的主操作系统环境外的资源的存储器区域(例如,图4的ART_Comms_Buffer_Area 410)。对于示出的示例,在存储器区域内的功能标识符和功能参数的存在随后被通过信号通知到提供调用功能的操作系统环境外的资源。尤其对于示出的示例而言,在存储器区域中的功能标识符和功能参数的存在被通过信号通知到在操作系统环境外部的至少一个处理模块上执行的辅助运行时刻接口,诸如图1的第二处理子系统120的ART 126,如步骤525所示。对于示出的示例,通过到图1的ART 126的中断的方式,可以通过信号通知功能标识符和功能参数的存在,如步骤530所示。0040 在确定是否有必要等待功能返回之前,随。

36、后在535更新用于操作系统环境的外部提供/位于其外部的资源的集中资源表,如步骤540中所示。例如,可以使用功能标识符,以查找对于特定功能调用而言是否需要功能返回。如果不需要功能返回,该方法需要移到步骤545,并且该方法以RETURN_OK指示结束。相反地,如果需要功能返回,该方法移到步骤550,并且睡眠直至从操作系统环境外的资源接收返回。0041 接收在可访问操作系统环境外的资源的存储器区域内(例如:图4的ART_Comms_说 明 书CN 102667714 A6/15页10Buffer_Area 410)的返回参数存在的指示之后,其中,对于示出的实施例而言,包括来自操作系统环境外的资源的辅。

37、助运行时刻接口的中断555,诸如图1的第二处理子系统120的ART126,则该方法移至其中从所述存储器区域(例如:图4的ART_Comms_Buffer_Area 410)接收返回参数的步骤560。随后在步骤565更新集中资源表,并且在步骤570建立包括检索返回参数的返回功能。随后通过在步骤575将包括检索返回参数的返回功能返回,该方法结束。0042 现参考图6,示出了诸如通过图1的辅助运行时刻程序(ART)126可以实现的、根据本发明的另一方面的一些示例的用于支持访问通过操作系统环境外的资源提供的功能的被简化流程图600的示例。0043 该方法在步骤605开始,以接收诸如图1的第二子系统12。

38、0提供的功能的、操作系统环境的这种外部资源提供的功能所需要的指示。这种指示可以包括从操作系统环境内的处理子系统的中断,例如,即从图1的主运行时刻程序(HART)116发送的终端。可选地,通过操作系统环境的这种外部资源提供的功能所需要的这种指示可以包括轮询主操作系统的缓冲描述符,并且识别主操作系统的缓冲区描述符环内的缓冲区描述符,其中,主操作系统的缓冲区描述符环与用于由位于操作系统缓冲池中的这种资源提供的功能的功能参数相关。0044 在接收这种指示之后,该方法移至步骤610,在步骤610中从操作系统环境内的存储器区域(例如,图4的ART_Comms_Buffer_Area410)检索功能参数和用。

39、于所要求的功能的功能标识符,其中,处理子系统驻留在操作系统环境外部。在已经检索功能参数之后,使用在步骤615中检索的功能参数和功能标识符来建立功能调用,针对示出的示例,随后将其发送到用于执行所需要功能的加速器代码,如通常620和625所述。在随后接收返回功能630之后,在635将返回参数从接收的返回功能复制到操作系统环境内的存储区域(例如:ART_Comms_Buffer_Area 410),其中,处理子系统驻留在操作系统环境外部。随后将操作系统环境(例如,图4的ART_Comms_Buffer_Area410)内的存储器区域内返回参数的存在通过诸如图1的对主运行时刻程序(HART)116的中。

40、断645的方式,被指示到操作系统环境内的处理子系统。随后该方法在步骤650结束。0045 如参考图5和图6的上文所述,在不需要建立繁琐通信机制的需要的情形下,并且在不需要在处理子系统之间传输功能参数和其他数据的情形下,通过诸如在操作系统环境内运行的一个或多个应用,或者通过其操作系统,可以访问操作系统环境外的资源提供的功能。替代地,在可以访问操作系统环境外的资源的操作系统环境内的存储器被用于交换这种参数和数据,从而显著地简化和提高访问这种功能的有效性。0046 针对图5和图6中示出的示例,操作系统环境外的资源提供的功能被简化成包括自组服务,从而当需要时调用这种功能,并且在所需要的服务或功能完成之后,被调用的功能返回并且被停止。然而,在一个示例中,操作系统环境外的资源提供的功能不需要被限制为自组服务和功能。例如,这种功能可以包括如下的服务或功能,其一旦被初始化则基本上持续运行,并且从而在数据接收之后提供服务或功能。0047 根据一些可选示例,在诸如图1的HART 116的操作系统环境内运行的运行时刻程序代码可以被设置成,在接收将被传送到操作系统环境外部的处理子系统的数据存在的指示之后,利用用于映射到操作系统环境的外部目的地对象的存储空间的存储器区域的指说 明 书CN 102667714 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1