当前位置: 首页 > 专利查询>英特尔公司专利>正文

虚拟通用I/O控制器制造技术

技术编号:13905623 阅读:129 留言:0更新日期:2016-10-26 09:12
用于虚拟通用I/O(GPIO)的技术包含具有虚拟GPIO控制器驱动器、虚拟GPIO控制器固件接口和虚拟GPIO控制器的计算装置。驱动器从计算装置的操作系统接收GPIO命令。GPIO命令规定将由GPIO引脚执行的操作。驱动器向固件接口发送GPIO命令。响应于固件接口接收命令,虚拟GPIO控制器仿真虚拟GPIO引脚来实现GPIO命令。固件接口可触发能够由操作系统接收的中断。虚拟GPIO控制器可使用固件保留的后备存储器、嵌入式控制器或到计算装置的外围装置的接口来仿真虚拟GPIO引脚。固件接口可以是ACPI控制方法。描述并要求保护其它实施例。

【技术实现步骤摘要】
【国外来华专利技术】相关美国专利申请的交叉引用本申请要求在2014年3月27日提交的名称为“VIRTUAL GENERAL-PURPOSE I/O CONTROLLER”的美国技术专利申请No.14/227,735的优先权。
技术介绍
典型计算装置包括包含在平台芯片集中或平台片上系统中的若干通用输入/输出(“GPIO”)引脚。GPIO引脚可支持读写数字数据,并且可生成计算装置的硬件中断。通常,GPIO引脚是多用途的,并且可由计算装置配置用于具体应用。例如,GPIO引脚可用于驱动、位冲(bit-bang)或以别的方式控制平台特定特征,诸如按钮、指示器(例如LED)、开关或传感器(例如盖密封传感器、对接端口传感器、驱动插入传感器等)。典型计算装置包含在芯片集或主处理器中实现的控制GPIO引脚的一个或多个硬件GPIO控制器。计算装置上的软件或固件可通过从与硬件GPIO控制器关联的具体寄存器或存储器地址读或向其写来与硬件GPIO控制器交互。高级配置与电源接口(ACPI)规范提供了到硬件GPIO引脚的固件接口的一个示例。通常,操作系统供应商规定所需要的最小硬件资源,包含必须包含在平台芯片集中的特定硬件GPIO引脚。附图说明本文描述的概念在附图中作为示例而非作为限制图示。为了图示的简洁和清晰起见,在附图中图示的元件不一定按比例绘制。在合适的情况下,附图标记在各图之间已经被重复以指示对应或类似元件。图1是用于提供虚拟GPIO控制器的计算装置的至少一个实施例的简化框图;图2是图1的计算装置的环境的至少一个实施例的简化框图;图3是用于初始化和运行可由图1和图2的计算装置执行的虚拟GPIO控制器的方法的至少一个实施例的简化流程图;图4是用于监视和处置可由图1和图2的计算装置执行的GPIO命令的方法的至少一个实施例的简化流程图;以及图5是用于监视和处置可由图1和图2的计算装置执行的GPIO事件的方法的至少一个实施例的简化流程图。具体实施方式虽然本公开的概念易受到各种修改和备选形式,但其特定实施例已经在附图中作为示例示出,并且将在本文中详细描述。然而,应该理解,没有意图将本公开的概念局限于所公开的具体形式,而是相反,本专利技术覆盖与本公开和所附权利要求书对应的所有修改、等同物和备选。在说明书中提到“一个实施例”、“实施例”、“说明性实施例”等指示所描述的实施例可包含具体特征、结构或特性,但每一个实施例可以一定或者可以不一定包含该具体特征、结构或特性。而且,此类短语不一定是指同一实施例。另外,当具体特征、结构或特性结合实施例进行描述时,认为结合不管是否明确描述的其它实施例来实现此类特征、结构或特性在本领域技术人员的知识范围内。此外,应该认识到,包含在以“A、B和C中的至少一个”的形式的列表中的项目可指的是(A);(B);(C);(A和B);(A和C);(B和C)或(A, B和C)。类似地,包含在以“A、B或C中的至少一个”形式的列表中的项目可指的是(A);(B);(C);(A和B);(A和C);(B和C)或(A, B和C)。公开的实施例在一些情况下可用硬件、固件、软件或它们的任何组合来实现。所公开的实施例也可实现为由一个或多个易失性或非易失性机器可读(例如计算机可读)介质携带或存储在其上的指令,其可由一个或多个处理器读取和执行。机器可读存储介质可实施为用于存储或传送由机器(例如易失性或非易失性存储器、媒体盘或其它媒体装置)可读形式的信息的任何存储装置、机制或其它物理结构。在附图中,一些结构特征或方法特征可按特定布置和/或排序示出。然而,应该认识到,可能不需要此类特定布置和/或排序。而是,在一些实施例中,此类特征可按与在说明性附图中示出的不同的方式和/或次序布置。此外,在具体附图中包含结构或方法特征不打算暗示此类特征在所有实施例中都需要,并且在一些实施例中,可能不包含或者可与其它特征组合。现在参考图1,在说明性实施例中,计算装置100建立虚拟GPIO控制器以减少由计算装置100需要的物理GPIO引脚的总数。为了这么做,如下面所详细论述的,计算装置100的操作系统建立用于GPIO控制器驱动器的标准接口,并且随后加载虚拟GPIO控制器驱动器。虚拟GPIO控制器驱动器从操作系统接收GPIO命令(例如读、写、状况或控制命令)并将命令转发到虚拟GPIO控制器固件接口。响应于虚拟GPIO控制器固件接口接收GPIO命令,虚拟GPIO控制器仿真一个或多个物理GPIO引脚的行为,并对GPIO命令适当做出响应。此类仿真物理GPIO引脚在本文被称为“虚拟GPIO引脚”。在一些实施例中,虚拟GPIO控制器附加地或备选地可监视影响虚拟GPIO引脚的仿真状态的平台事件。基于虚拟GPIO引脚的仿真状态,虚拟GPIO控制器可使虚拟GPIO固件接口断言由操作系统处置的中断。操作系统通过将一个或多个GPIO命令传到虚拟GPIO控制器驱动器以查询虚拟GPIO引脚的状态并且然后相应地响应来处置中断。从而,由虚拟GPIO控制器仿真的虚拟GPIO引脚对操作系统而言看起来好像与一个或多个物理GPIO引脚一样。应该理解,虚拟GPIO控制器可仿真任何数量的虚拟GPIO引脚。应该认识到,本公开的计算装置100可减少符合由操作系统供应商设置的GPIO引脚要求所需的专用物理GPIO引脚数。附加地或备选地,计算装置100可能能够使用通常比计算装置100的主处理器、芯片集或片上系统便宜并且更容易定制的外围装置或嵌入式控制器来实现所需的GPIO功能性。计算装置100可被实施为用于执行本文描述的功能的任何类型装置。例如,计算装置100可实施为但不限于台式计算机、服务器计算机、工作站、膝上型计算机、笔记本计算机、移动计算装置、智能电话、平板计算机、蜂窝电话、手机、消息传递装置、可穿戴计算装置、车载信息处理装置、分布式计算系统、多处理器系统、消费电子装置和/或配置成执行本文描述的功能的任何其它计算装置。如图1所示,说明性计算装置100包含处理器120、输入/输出子系统122、存储器126和数据存储装置130。当然,在其它实施例中,计算装置100可包含其它或附加组件,诸如在台式计算机中发现的组件(例如各种输入/输出装置)。此外,在一些实施例中,一个或多个说明性组件可合并在另一组件中,或以别的方式形成另一组件的一部分。例如,在一些实施例中,存储器126或其部分可结合在处理器120中。处理器120可被实施为能够执行本文描述的功能的任何类型处理器。例如,处理器120可实施为单核或多核处理器、数字信号处理器、微控制器或其它处理器或处理/控制电路。类似地,存储器126可实施为能够执行本文描述的功能的任何类型易失性或非易失性存储器或数据存储装置。在操作中,存储器126可存储在计算装置100操作期间使用的各种数据和软件,诸如操作系统、应用、程序、库以及驱动器。说明性存储器126包含虚拟GPIO控制器128。如本文下面所描述的,虚拟GPIO控制器128是仿真、适配或抽象一个或多个物理GPIO引脚的软件实体。存储器126以通信方式经由I/O子系统122耦合到处理器120,I/O子系统104可实施为电路和/或组件以便于与计算装置100的处理器120、存储器126和/或其它组件的输入/输出操作。例本文档来自技高网...

【技术保护点】
一种用于仿真通用I/O(GPIO)的计算装置,所述计算装置包括虚拟GPIO控制器驱动器、虚拟GPIO控制器固件接口和虚拟GPIO控制器,其中:所述虚拟GPIO控制器驱动器将(i)从所述计算装置的操作系统接收GPIO命令,所述GPIO命令规定将由GPIO引脚实现的操作;以及(ii)响应于接收所述GPIO命令而将所述GPIO命令发送到所述虚拟GPIO控制器固件接口;所述虚拟GPIO固件接口将从所述虚拟GPIO控制器驱动器接收所述GPIO命令;以及所述虚拟GPIO控制器将响应于所述虚拟GPIO控制器固件接口从所述虚拟GPIO控制器驱动器接收所述GPIO命令而仿真虚拟GPIO引脚来实现所述GPIO命令。

【技术特征摘要】
【国外来华专利技术】2014.03.27 US 14/2277351.一种用于仿真通用I/O(GPIO)的计算装置,所述计算装置包括虚拟GPIO控制器驱动器、虚拟GPIO控制器固件接口和虚拟GPIO控制器,其中:所述虚拟GPIO控制器驱动器将(i)从所述计算装置的操作系统接收GPIO命令,所述GPIO命令规定将由GPIO引脚实现的操作;以及(ii)响应于接收所述GPIO命令而将所述GPIO命令发送到所述虚拟GPIO控制器固件接口;所述虚拟GPIO固件接口将从所述虚拟GPIO控制器驱动器接收所述GPIO命令;以及所述虚拟GPIO控制器将响应于所述虚拟GPIO控制器固件接口从所述虚拟GPIO控制器驱动器接收所述GPIO命令而仿真虚拟GPIO引脚来实现所述GPIO命令。2.如权利要求1所述的计算装置,其中:所述GPIO命令包括读命令;仿真所述虚拟GPIO引脚来实现所述GPIO命令包括确定所述虚拟GPIO引脚的虚拟输入值;以及所述虚拟GPIO控制器驱动器进一步响应于所述虚拟GPIO引脚的仿真而将所述虚拟输入值返回到所述操作系统。3. 如权利要求1所述的计算装置,其中:所述GPIO命令包括写命令;以及仿真所述虚拟GPIO引脚来实现所述GPIO命令包括确定所述虚拟GPIO的虚拟输出值并在参考时段内将所述虚拟输出值保持在所述虚拟GPIO引脚上。4. 如权利要求1所述的计算装置,其中:所述GPIO命令包括控制命令;以及仿真所述虚拟GPIO引脚来实现所述GPIO命令包括根据所述控制命令来修改所述虚拟GPIO的状态。5.如权利要求1所述的计算装置,其中:所述虚拟GPIO控制器驱动器进一步(i)接收第二GPIO命令,所述第二GPIO命令规定将由第二GPIO引脚实现的操作;以及(ii)将所述第二GPIO命令发送到所述虚拟GPIO控制器固件接口;所述虚拟GPIO控制器固件接口进一步从所述虚拟GPIO控制器驱动器接收所述第二GPIO命令;以及所述虚拟GPIO控制器进一步响应于所述虚拟GPIO控制器固件接口从所述虚拟GPIO控制器驱动器接收所述第二GPIO命令而仿真第二虚拟GPIO引脚来实现所述第二GPIO命令。6.如权利要求1所述的计算装置,其中仿真所述虚拟GPIO引脚包括使用所述计算装置的嵌入式控制器作为所述虚拟GPIO引脚来仿真所述虚拟GPIO引脚。7.如权利要求6所述的计算装置,其中仿真所述虚拟GPIO引脚进一步包括使用所述嵌入式控制器的物理GPIO引脚作为所述虚拟GPIO引脚来仿真所述虚拟GPIO引脚。8.如权利要求1所述的计算装置,其中仿真所述虚拟GPIO引脚包括使用到所述计算装置的外围装置的接口作为所述虚拟GPIO引脚来仿真所述虚拟GPIO引脚。9. 如权利要求1所述的计算装置,其中:所述虚拟GPIO控制器进一步保留存储器段以供所述虚拟GPIO控制器使用;以及仿真所述虚拟GPIO引脚包括使用所述保留存储器段作为后备存储器来仿真所述虚拟GPIO引脚。10. 如权利要求1-9中任一项所述的计算装置,其中所述虚拟GPIO控制器进一步:接收GPIO事件,所述GPIO事件与所述虚拟GPIO引脚的状态相关;以及仿真所述虚拟GPIO引脚以根据所述GPIO事件来修改所述虚拟GPIO引脚的状态。11. 如权利要求10所述的计算装置,其中:所述GPIO事件包括从所述计算装置的嵌入式控制器接收的I/O事件;以及仿真所述虚拟GPIO引脚包括根据所述GPIO事件来修改所述虚拟GPIO引脚的状态。12. 如权利要求10所述的计算装置,其中:所述GPIO事件包括从所述计算装置的外围装置接收的I/O事...

【专利技术属性】
技术研发人员:NJ亚当斯RE古夫SP派萨拉巴拉甘加哈拉P杜塔
申请(专利权)人:英特尔公司
类型:发明
国别省市:美国;US

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

1