CN108073421B - 为外围子系统提供个体化电源控制的方法和装置 - Google Patents

为外围子系统提供个体化电源控制的方法和装置 Download PDF

Info

Publication number
CN108073421B
CN108073421B CN201711094053.4A CN201711094053A CN108073421B CN 108073421 B CN108073421 B CN 108073421B CN 201711094053 A CN201711094053 A CN 201711094053A CN 108073421 B CN108073421 B CN 108073421B
Authority
CN
China
Prior art keywords
subsystems
subsystem
host
peripheral
sleep
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.)
Active
Application number
CN201711094053.4A
Other languages
English (en)
Other versions
CN108073421A (zh
Inventor
S·加格
K·桑吉
V·派科夫
R·索罗特克
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Inc filed Critical Apple Inc
Publication of CN108073421A publication Critical patent/CN108073421A/zh
Application granted granted Critical
Publication of CN108073421B publication Critical patent/CN108073421B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3253Power saving in bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Sources (AREA)
  • Telephone Function (AREA)

Abstract

本发明涉及为外围子系统提供个体化电源控制的方法和装置。本发明提供了用于在独立域内隔离子系统资源(诸如,时钟、电源和复位)的方法和装置。在一个实施方案中,系统的每个子系统具有一个或多个专用电源与时钟域,所述一个或多个专用电源与时钟域独立于其它子系统的操作而运行。例如,在具有蜂窝、WLAN和PAN连接的示例性移动设备中,每个此类子系统连接到共同存储器映射总线功能件,但是仍能独立运行。所述公开的架构有利地既满足了移动设备的所述功率消耗限制因素,同时又为此类移动设备上的高带宽应用程序提供了存储器映射连接的所述益处。

Description

为外围子系统提供个体化电源控制的方法和装置
优先权
本申请要求2017年7月11日提交、具有相同标题的共同拥有且共同未决的美国专利申请序列号15/647,063的优先权益,此美国专利申请继而要求2016年11月10日提交、标题为“Apparatus and Methods for Independent Power and Clock Domains of aMemory mapped Architecture”的共同拥有且共同未决的美国临时专利申请序列号62/420,143的优先权益,以上专利申请中的每一个全文以引用方式并入本文。
相关申请
本申请与以下专利有关:2017年7月11日提交,标题为“Methods and Apparatusfor Providing Access to Peripheral Sub-System Registers”的共同拥有且共同未决的美国专利申请序列号15/647,088;以及2017年7月11日提交,标题为“Methods andApparatus for Providing Peripheral Sub-System Stability”的共同拥有且共同未决的美国专利申请序列号15/647,103,以上专利申请中的每一个全文以引用方式并入本文。
本申请也与以下专利有关:2015年10月8日提交,标题为“Methods and Apparatusfor Running and Booting an Inter-Processor Communication Link BetweenIndependently Operable Processors”的共同拥有且共同未决的美国专利申请序列号14/879,024;2015年10月8日提交,标题为“Methods and Apparatus for Managing Powerwith an Inter-Processor Communication Link Between Independently OperableProcessors”的共同拥有共同未决的美国专利申请序列号14/879,027;以及2015年10月8日提交,标题为“Methods and Apparatus for Recovering Errors with an Inter-Processor Communication Link Between Independently Operable Processors”的共同拥有且共同未决的美国专利申请序列号14/879,030,以上专利申请中的每一个全文以引用方式并入本文。
版权声明
本专利文档的公开内容的一部分包含受到版权保护的材料。由于本专利文档或本专利公开内容出现在专利与商标局专利文件或记录中,因此版权所有人不反对任何人对本专利文档或本专利公开内容的拓制,但会以其他方式保留任何形式的所有版权权利。
技术领域
本公开整体涉及电子设备领域及其总线架构。更具体地,在一个示例性方面,本公开涉及用于独立操作存储器映射架构中电源、时钟和/或其它资源域的方法和装置。
背景技术
外围部件互连高速(PCIe)是一项高速串行计算机扩展总线技术,该技术在计算机和消费电子产品制造商中具有非常高的采用率。其成功的一个原因在于,PCIe使设备与功能件之间的输入/输出(I/O)可以直接访问共享存储器映射。通过减少(例如)总线仲裁和集中式存储器管理,存储器映射访问大大减少了事务开销。实际上,PCIe已经成为添加超出计算机系统基础芯片组所提供的能力之外的另外的输入/输出(I/O)能力的实际标准。除了PCIe原本支持的直接存储器映射总线能力之外,广泛的生态系统和不断发展的硬件和/或软件驱动器对利用久经考验且强大的商品部件提供了显著优势。
简而言之,PCIe基于较旧的1993年开发的PCI扩展总线技术。那时,PCI的目标是提供向计算机总线添加硬件单元的标准方法。每个硬件单元使用某机制连接到共享的并行总线,以将每个硬件单元视为共享总线的独特设备。每个设备在逻辑部件上被进一步细分成最多八(8)个功能件。因此,PCI总线开始能支持若干设备,每个设备具有若干功能件。随着PCIe的来到,物理上共享的并行总线由点对点高速串行总线替代。通过拆除共享并行总线,PCIe实现了对任意两(2)个端点之间全双工通信的支持,而不对多个端点上的并发访问具有内在限制。
尽管PCIe非常适合个人计算应用,但是其并非针对移动空间考虑例如功率消耗、事务效率和/或其它移动性考虑而设计。例如,个人计算机通常插入“墙上的电源”,如此功率消耗或节能通常不是问题。相比之下,移动设备依靠电池电源来运行,并且必须减小功率消耗过度以使电池寿命最大化。
类似地,个人计算机一般支持单个处理器拓扑,所述单个处理器拓扑可根据需要不频繁地访问外部网络(诸如,更广的因特网)。相比之下,移动设备可具有用于处理用户任务的应用处理器,但是也可具有多个另外的调制调解处理器,这些处理器自主搜索网络管理实体,注册到网络管理实体,以及/或者与网络管理实体一起处理数据,所述网络管理实体诸如无线LAN或蜂窝网络的网络管理实体。
尽管PCIe的限制因素在历史上已经限制了其对移动空间的适用性,但是无线技术不断增长的带宽能力以及消费者对更大移动设备需求的变化已经致使制造商重新考虑将PCIe作为一种可行的总线解决方案。具体地,PCIe存储器映射总线能力已经越来越普及。为此,需要改进型方法和装置来进一步优化移动应用中的高速直接存储器映射总线能力。
发明内容
本公开通过提供以下项满足了上述需求:尤其是用于独立操作存储器映射总线架构内电源、时钟和/或其它资源域的系统、方法和装置。
在第一方面,公开了为电子设备内的多个子系统提供个体化电源控制的方法,该电子设备包括主机处理器装置。在一个实施方案中,该方法包括:建立到多个子系统的存储器映射接口,多个子系统中每个子系统的特征在于对应的电源管理状态机;并且对于多个子系统中的一个子系统,致使对应的电源管理状态机独立于多个子系统中的其它子系统,从睡眠状态转变至激活状态。
在一个变型中,多个子系统中的一个子系统从睡眠状态过渡至激活状态可以在多个子系统中的其它子系统没有从睡眠状态过渡至激活状态的情况下发生。
在另一变型中,该方法还包括独立于多个子系统中的其它子系统,将多个子系统中的一个子系统过渡至多种节能模式。
在又一变型中,该方法还包括通过主机处理器装置对多个子系统进行独立电源控制。
在又一变型中,对多个子系统进行独立电源控制还包括使多个子系统中的第一子系统保持在激活状态。
在又一变型中,对多个子系统进行独立电源控制还包括使多个子系统中的第二子系统过渡至睡眠状态,同时使多个子系统中的第一子系统保持在激活状态。
在又一变型中,该方法还包括独立于多个子系统中的其它子系统,为多个子系统中的一个子系统发起上电时序。
在第二方面,公开了提供到对应于端点装置内多个子系统的多个子系统寄存器的访问的方法,所述端点装置与多个子系统相关联。在一个实施方案中,该方法包括:建立到端点装置的存储器映射接口;以及在不唤醒对应的至少一个子系统的情况下,通过存储器映射接口访问多个子系统寄存器中的至少一个寄存器。
在一个变型中,通过存储器映射接口访问多个子系统寄存器中的至少一个寄存器还包括:读取与多个子系统寄存器中的一个寄存器关联的寄存器。
在另一变型中,通过存储器映射接口访问多个子系统寄存器中的至少一个寄存器还包括:对与多个子系统寄存器中的一个寄存器相关联的寄存器进行写入。
在又一变型中,访问还包括执行访问外围部件互连高速(PCIe)功能件内的存储器位置的指令;唤醒PCIe通信链路;以及访问存储器映射接口内的存储器空间,该存储器空间与PCIe通信链路相关联。
在又一变型中,该方法还包括,在访问存储器空间之后,唤醒对应的至少一个子系统。
在又一变型中,对应的至少一个子系统包括蜂窝子系统,并且该方法还包括在不唤醒蜂窝子系统的情况下,查询端点装置内的蜂窝功能件。
在又一变型中,该方法还包括在不唤醒多个子系统的情况下,通过存储器映射接口访问多个子系统寄存器中的每个寄存器。
在第三方面,公开了用于提供个体化启动计算机化装置中多个子系统的方法。在一个实施方案中,该方法包括:建立到与装置相关联的端点的存储器映射接口,该端点被可操作地耦接到多个子系统中的每个子系统;枚举多个子系统;以及按顺序启动所枚举的多个子系统中的至少两个子系统。
在一个变型中,该方法还包括从启动流程中裁剪掉所枚举的多个子系统中的一个子系统。
在另一变型中,枚举的多个子系统中的裁剪子系统包括个人局域网(PAN)子系统,并且该方法还包括在裁剪之前禁用PAN子系统能力。
在又一变型中,该方法还包括不论多个子系统中任一者的运行状态如何均给端点通电,给端点通电使能了枚举功能。
在又一变型中,该方法还包括初始化多个子系统中一个子系统的配置空间。
在又一变型中,该方法还包括访问多个子系统中一个子系统的配置空间,该访问不论多个子系统中的一个子系统的电源状态如何而发生。
在又一变型中,该方法还包括确定枚举的多个子系统中至少两个子系统的重要次序,并根据所确定的重要次序,按顺序启动枚举的多个子系统中至少两个子系统。
在第四方面,公开了用于提供个体化复位与恢复子系统的方法。在一个实施方案中,该方法包括:建立到端点的存储器映射接口,该存储器映射接口包括与多个子系统对应的多个存储器区域;响应于对多个子系统中第一子系统内的错误的检测,对对应的第一存储器区域内的复位地址进行写入;响应于该写入,启动第一子系统;以及恢复与检测到的错误对应的诊断信息。
在一个变型中,该方法还包括响应于对第一子系统内的错误的检测执行循环指令,该循环指令使能了对诊断信息的恢复。
在另一变型中,该方法还包括响应于对该错误的检测,采集多个存储器区域中存储器区域的快照。
在又一变型中,端点包括多个功能件,所述功能件中的每个功能件与多个子系统中的指定子系统对应,并且该方法还包括针对多个功能件中的一个功能件发起功能件级复位。
在又一变型中,针对多个功能件中的功能件发起功能件级复位还包括:复位与多个功能件中的功能件相关联的对应子系统。
在又一变型中,启动第一子系统在不需要启动多个子系统中其它子系统的情况下发生。
在第五方面,公开了计算机化装置。在一个实施方案中,计算机化装置包括:主机处理装置,该主机处理装置包括根组件;外围装置,该外围装置包括端点装置,端点装置包括多个功能件,多个功能件中的每个功能件与多个子系统中相应的子系统耦接;和通信链路,该通信链路在根组件与端点装置之间。
在一个变型中,多个子系统中的每个子系统包括与多个子系统中其它子系统分隔开的电源管理。
在另一变型中,主机处理装置包括与多个子系统分隔开的主机电源管理;并且通信链路包括与主机处理装置和多个子系统分隔开的链路电源管理。
在又一变型中,多个子系统中的一个子系统包括无线局域网(WLAN)子系统,其中WLAN子系统能够扫描附近的信标,而不需要唤醒多个子系统中的其它子系统。
在又一变型中,WLAN子系统能够扫描附近的信标,而不必唤醒通信链路或主机处理装置。
在又一变型中,多个子系统中的一个子系统包括蜂窝子系统,其中蜂窝子系统被配置为在移动管理更新期间与蜂窝网络连接,而不使子系统、主机处理装置和通信链路中其它者中的一者或多者上电。
在第二实施方案中,计算机化装置包括:主机处理装置,该主机处理装置包括根组件;外围装置,该外围装置包括端点装置,端点装置包括设置在存储器映射接口内的多个功能件,多个功能件中的每个功能件与多个子系统中相应的子系统耦接;以及通信链路,该通信链路在根组件与端点装置之间。主机处理装置被进一步配置为:通过存储器映射接口访问与多个子系统中的一个子系统相关联的子系统寄存器,而不需要将该一个子系统通电进入运行状态来处理该访问。
在一个变型中,多个子系统中的每个子系统包括存储器映射接口内对应的访问空间,其中多个子系统中的每个子系统只可以访问存储器映射接口之内对应的访问空间。
在另一变型中,根组件还包括多个控制寄存器,并且主机处理装置还被配置为在通信链路处于较低功率状态时,对多个控制寄存器的至少一部分进行读取或写入。
在又一变型中,主机处理装置被进一步配置为当通信链路处于较低功率状态时:执行访问通信链路功能件内存储器位置的指令;将通信链路从较低功率状态中唤醒;以及访问存储器映射接口内的存储器空间,该存储器空间与通信链路相关联。
在又一变型中,主机处理装置被进一步配置为在访问子系统寄存器之后,唤醒一个子系统。
在又一变型中,一个子系统包括蜂窝子系统,并且主机处理装置被进一步配置为:在不唤醒蜂窝子系统的情况下,查询端点装置内的蜂窝功能件。
在第三实施方案中,计算机化装置包括:主机处理装置,该主机处理装置包括根组件;外围装置,该外围装置包括端点装置,端点装置包括多个功能件,多个功能件中的每个功能件与多个子系统中相应的子系统耦接;以及通信链路,该通信链路在根组件与端点装置之间。主机处理装置被配置为按顺序启动多个子系统中的每个子系统。
在一个变型中,主机处理装置被进一步配置为从启动流程中裁剪掉多个子系统中的一个子系统。
在另一变型中,从启动流程中裁剪掉多个子系统中的一个子系统被配置为相比于启动多个子系统中的每个子系统减少计算机化装置的功率消耗。
在又一变型中,端点装置被配置为不论多个子系统中任一者的运行状态如何,使其通电。
在又一变型中,主机处理装置确定多个子系统启动序列的重要次序,并且计算机化装置被进一步配置为根据所确定的重要次序,按顺序启动多个子系统中的每个子系统。
在又一变型中,主机处理装置被进一步配置为针对多个功能件中的一个功能件发起功能件级复位。
在又一变型中,针对多个功能件中的功能件发起功能件级复位被进一步配置为:复位与此功能件相关联的对应子系统。
在第六方面,公开了用于电子设备中的外围处理装置。在一个实施方案中,外围处理装置包括:端点装置,端点装置包括多个功能件,对于外围处理装置,多个功能件中的每个功能件与多个子系统中的相应子系统耦接。多个子系统中的每个子系统包括独立于多个子系统中其它子系统的电源管理状态机。
在一个变型中,多个子系统中第一子系统的第一独立电源管理状态机被进一步配置为:在处于激活状态时向主机处理装置发送睡眠模式请求;在发送睡眠模式请求之后,进入睡眠等待状态;检测针对外围睡眠控制寄存器的更新,该更新由主机处理装置发起;以及响应于所检测到的针对外围睡眠控制寄存器的更新,从睡眠等待状态进入睡眠状态。
在另一变型中,多个子系统中第一子系统的第一独立电源管理状态机被进一步配置为:检查主机处理装置是否具有任何未决的数据事务;如果存在未决的数据事务,发起唤醒过程以使第一独立电源管理状态机从睡眠状态过渡至激活状态;进入激活等待状态;以及在主机处理装置检测到针对外围睡眠控制寄存器的更新之后,从激活等待状态进入激活状态。
在又一变型中,多个子系统中第一子系统的第一独立电源管理状态机被进一步配置为:从主机处理装置接收主机进入睡眠消息;响应于所接收到的主机进入睡眠消息,挂起多个子系统中第一子系统的第一独立电源管理状态机;以及在挂起第一独立电源管理状态机之后,处理所有未决的传输描述符。
在又一变型中,多个子系统中其它子系统被进一步配置为从主机处理装置接收主机进入睡眠消息。
在又一变型中,第一独立电源管理状态机被进一步配置为在处理所有未决的传输描述符之后,从激活状态过渡至睡眠状态。
在又一变型中,多个子系统中第一子系统的第一独立电源管理状态机被进一步配置为通过发起针对主机处理装置的唤醒请求,重新建立与主机处理装置的通信。
在第七方面,公开了用于电子设备中的主机处理装置。在一个实施方案中,主机处理装置还包括:被配置为建立到端点装置的存储器映射接口的逻辑部件;以及被配置为独立于对应的至少一个子系统的运行状态,通过存储器映射接口访问多个子系统寄存器中至少一个寄存器的逻辑部件。
在一个变型中,被配置为通过存储器映射接口访问多个子系统寄存器中至少一个寄存器的逻辑部件还包括被配置为读取与多个子系统寄存器中的一个寄存器相关联的寄存器的逻辑部件。
在另一变型中,被配置为通过存储器映射接口访问多个子系统寄存器中至少一个寄存器的逻辑部件还包括被配置为对与多个子系统寄存器中的一个寄存器相关联的寄存器进行写入的逻辑部件。
在又一变型中,被配置为访问的逻辑部件还包括被配置为用于以下项的逻辑部件:执行访问外围部件互连高速(PCIe)功能件内的存储器位置的指令;唤醒PCIe通信链路;以及访问存储器映射接口内的存储器空间,该存储器空间与PCIe通信链路相关联。
在又一变型中,主机处理装置还包括被配置为在访问存储器空间之后,唤醒对应的至少一个子系统的逻辑部件。
在又一变型中,对应的至少一个子系统包括蜂窝子系统,并且主机处理装置还包括被配置为在不唤醒蜂窝子系统的情况下,查询端点装置内的蜂窝功能件的逻辑部件。
在又一变型中,主机处理装置还包括被配置为独立于多个子系统的运行状态,通过存储器映射接口访问多个子系统寄存器中每个寄存器的逻辑部件。
在第八方面,还公开了非暂态计算机可读装置。在一个实施方案中,公开了非暂态计算机可读装置,该装置包括在由处理器装置执行时致使该装置执行各种前述方法的指令。
在一个变型中,指令被配置为在由处理器执行时,致使该装置独立地管理不同电源和/或时钟域。比如,在一种实现方式中,指令在被执行时致使该装置选择性地启动各种公开子系统,复位各种公开子系统,以及/或者捕获各种公开子系统的错误。
在第九方面,公开了计算机化逻辑部件。在一个实施方案中,计算机化逻辑部件被配置为执行各种前述方法。
在一个变型中,逻辑部件包括该设备上驻留的硬件(例如,门逻辑部件)、固件和/或软件中的至少一者。
在第十方面,公开了多功能装置的存储器映射总线架构。在一个实施方案中,存储器映射总线架构基于PCIe技术,并且存储器映射总线架构支持主机处理器、蜂窝调制调节器、无线局域网调制调节器和个人局域网调制调节器。
本领域的普通技术人员参考如下所给的附图和对示例性实施方案的详细描述将立即认识到本公开的其它特征和优点。
附图说明
图1是存储器映射总线架构的一种现有技术系统的逻辑框图。
图2是根据本文所述原则的存储器映射总线架构的一个示例性系统的逻辑框图,该架构具有独立的电源与时钟域。
图3是根据本文所述原则的一个示例性链路训练和状况状态机(LTSSM)的逻辑图,该状态机可用于对示例性PCIe存储器映射总线进行电源管理。
图4是根据本文所述原则,示出了两个示例性电源管理状态机的逻辑图,该状态机可用于对示例性子系统域进行电源管理。
图4A是根据本文所述原则,使示例性子系统进入睡眠状态的一个示例性方法的逻辑框图。
图4B是根据本文所述原则,使示例性子系统进入激活状态的一个示例性方法的逻辑框图。
图5是符合本文所述各项原则,用于访问子系统内的寄存器的一个示例性方法的逻辑框图。
图6是符合本文所述各项原则,用于使主机处理器转变至睡眠模式的一个示例性方法的逻辑框图。
图7是符合本文所述各项原则,用于功能件级复位操作的一个示例性方法的逻辑框图。
图8是符合本文所述各项原则,用于外围设备复位操作的一个示例性方法的逻辑框图。
所有
Figure BDA0001461858680000101
版权所有2016–2017 Apple Inc.保留所有权利。
具体实施方式
现在参考附图,在所有附图中类似标号指代类似部分。
示例性实施方案的具体实施方式
现详细描述本公开的示例性实施方案。尽管这些实施方案主要的讨论背景是高速移动应用场景中的总线架构,但是普通技术人员将理解,本发明不限于此。实际上,本文所述的原则可用于任何总线架构、部件、设备和/或支持多个独立子系统的设备的网络。
此外,尽管以下实施方案描述了例如专用地址空间、通电序列、计时实现方式、启动序列、睡眠序列、错误捕获和/或复位处理的特定实现方式,但是相关领域的普通技术人员将易于理解,以下具体实施方式仅仅是本文所述原则在更广意义上的例示。其它实现方式可具有更多或更少数目的功能、不同的功能件组合和/或符合本文所提供的具体实施方式的功能性差异。
如本文所用,术语“系统”一般是指但不限于任何独立的逻辑部件和/或物理实体,这些逻辑部件和/或物理实体可能包括或可能不包括替代的逻辑和/或物理处理实体。系统的常见示例包括,例如,智能手机、计算机、笔记本、平板电脑、“智能”电视和其它媒体分发与显示设备、车载娱乐或远程信息处理系统和/或其它消费电子设备。
如本文所用,术语“子系统”一般是指但不限于任何处理实体,处理实体在系统实体指导下运行以执行规定的任务组。子系统的常见示例包括(例如):蜂窝调制调解器、无线局域网(WLAN)调制调解器、个人局域网(PAN)调制调解器、图形处理器、媒体处理器、全球定位系统(GPS)和/或任何其它通用或专用处理实体。
如本文所用,术语“功能件”一般是指但不限于与子系统存储器映射连接相关联的处理资源和/或存储器资源。示例性PCIe功能件可包括(例如):子系统专用寄存器、存储器映射输入/输出(MMIO)、配置空间、内部总线结构和/或其它专门寄存器或存储器。在一些情况下,配置空间可以是通用化/标准化空间、专有空间或定制空间(例如,厂商专用空间、应用专用空间、设备专用空间或根据其它具体方案配置的空间)或它们的组合。
概述-
本公开的多个方面涉及在存在于电子设备内的独立域内隔离子系统资源(诸如,时钟、电源和复位)。例如,在一个示例性实施方案中,系统的每个子系统均具有专用时钟域。具体地,外围芯片组硬件可以由多个子系统组成,每个子系统在独立的时钟域中运行。
此外,每个子系统可基于独立的电源域通电。每个电源域可被单独上电/断电或进入各种节能模式,并且可具有用于电源管理的不同状态机。不论其它电源域的状态机如何,独立的电源域可以通电。
在另一方面,每个子系统可连接到公共存储器映射总线功能件。在一个示例性实施方案中,公共存储器映射总线功能件和子系统在独立域内运行;因此,功能件和对应的子系统可进入任何电源状态,而不论存储器映射总线的整体电源状态、其它子系统电源状态和/或主机系统电源状态如何。
在本文所述的一些变型中,子系统或存储器映射总线可根据操作注意事项来管理子系统资源;例如,如果主机应用要求低延时响应,则对应的子系统将防止存储器映射总线进入低功率模式。在另一个此类示例中,电池消耗可限制可同时通电的子系统的数目;因此,可以使用优先级排序方案来解决冲突以及/或者分配资源。
本公开的示例性实现方式包括管理系统所有功率消耗的主机,因此主机处理器可控制各个子系统,诸如使子系统保持唤醒或者迫使子系统进入睡眠。然而,本文所公开的一些变型也向外围设备提供此类能力(或者,在另选方案中,外围设备可专门管理例如系统的所有功率消耗)。例如,在一些情况下,外围设备也可被配置为对主机(或其部分)进行不同程度的控制,诸如,防止主机睡眠。
在本文所述的一个示例性实施方案中,每个子系统的睡眠顺序与其它子系统隔离开来;然而,其它实施方案提供半协作式或全协作式子系统电源管理。
基于PCIe的系统–
消费者的偏好在历史上一直制约着移动设备的过大形状因数。传统设计依赖于端口映射的针脚小很多的接口(诸如通用串行总线(USB))。这些技术很紧凑,但是使用时也可遭受传输速率较低、数据包处理开销和/或功率消耗过大的问题。
简而言之,所谓的“端口映射访问”主机处理器使用自带的指令集来访问其自身的存储器和寄存器,并使用第二指令集来通过“端口”与外部子系统通信。经处理的数据被格式化(例如,封包化、序列化),用于以中间通信格式传输。中间通信格式将子系统存储器与主机存储器隔离开来,即每个外围子系统具有单独的地址空间,该地址空间与主机的地址空间隔离开来。例如,数据包协议(诸如,USB)添加事务开销(例如,USB管道、端点标识符等)。
相比之下,所谓的“存储器映射访问”使用相同的地址总线来寻址主机与外围子系统;换句话说,外围子系统的存储器和寄存器直接由主机访问,反之亦然。例如,当某地址由主机访问时,可使用相同的地址格式来访问主机的存储器或外围设备的存储器和/或寄存器。每个外围子系统监测地址总线,并且对任何主机访问分配给该子系统的地址作出响应。
PCIe是存储器映射总线技术的一种实现方式;遗憾的是,PCIe需要较大的总线接口(具有将近四十(40)个针脚),并且在印刷电路板(PCB)“基板面”上具有不相称的大“占用空间”,尤其是与其它总线技术相比的话。因此,在历史上,PCIe的尺寸曾使其不适合用于移动应用(后者从特征上说形状因数相对较小)。
然而,无线技术的最新进展已经增加了无线应用中“数据管道”的无线带宽。在一些情况下,无线网络速度能超过总线技术更慢(例如,USB)的主机设备。类似地,消费者偏好已经适应了更大的移动设备(在很大程度上因为更大屏幕尺寸的流行)。鉴于这些原因,在移动应用中,对PCIe的兴趣再次燃起。早期设计(诸如,本发明受让人所作出的早期设计)要求应用处理器与外围芯片组之间基于存储器映射总线接口的通信速度更快。
现参见图1,示出并详述了典型的现有技术系统100。所示系统描绘了主机102,该主机:通过PCIe链路106A与蜂窝子系统104A通信;并通过PCIe链路106B与WLAN子系统104B通信。另外,主机通过通用异步接收器/收发器(UART)链路108控制PAN子系统104C(例如,
Figure BDA0001461858680000131
子系统)。PCIe链路中的每条PCIe链路由相应的PCIe根组件(RC)110A,110B以及对应的对应端点(EP)112A,112B管理。
正常运行期间,设备的用户可以拨打电话,访问因特网,或者执行用户发起的对(例如)蜂窝网络的数据连接的请求。作为响应,蜂窝子系统104A进入已连接模式并发送/接收用户语音与数据;否则,蜂窝子系统104A可能大部分时间都处于掉电的空闲模式以节省电能。另外,蜂窝子系统104A可时常重新连接到蜂窝网络,用于进行移动性管理,以检查来电,以及/或者执行其它自治网络管理任务。这些自治(非用户发起的)动作一般发生在后台,用户察觉不到。
类似地,WLAN子系统104B持续扫描其附近的网络以识别出(例如)尽可能最佳的数据连接,以及/或者收发用户数据;当不使用时,WLAN子系统104B可过渡至低功率状态。
PCIe简化存储器映射架构,用于提高性能,以及/或者用以优化多个处理器之间的操作;然而空间考虑仍然是重中之重。因此,当多个子系统合并成数目更小的芯片组(例如,单个芯片组(如果可能的话))且通过单个存储器映射总线接口通信时可存在优势,同时保留了软件栈在应用处理器上运行的独立性。遗憾的是,现有PCIe规范并未规定端点设计要求。因此,不同的制造商采用许多不同的PCIe子系统实现方式,其中许多实现方式并不一致和/或不合需要。例如,单个端点可能使其所有子系统进入睡眠,以及/或者一起唤醒所有子系统。需要改进型解决方案,所述方案在支持多个独立子系统的系统内(例如)为“唤醒”和/或“睡眠”功能实现一致的框架。
为此,本公开涉及(尤其是)将电源管理和时钟功能与PCIe接口隔离开来。使用相同的PCIe接口,本文所述的各个解决方案可支持多个子系统(每个子系统的电源与时钟独立),从而使设计占用空间最小。换句话说,所述解决方案可通过如下方式在更大胆的形状因数设计中实现PCIe类操作(及其伴随的益处:处理速度与效率提高):根据一致的框架,将存储器映射总线功能与电源和时钟管理功能分开。在一些所公开的配置中,每个PCIe端点可支持多个专用地址空间、通电序列、计时实施方式、启动序列、睡眠序列、错误捕获机制和/或复位处理程序。
更一般地,提供了用于独立操作存储器映射架构背景内的电源、时钟和/或其它资源域的方法和装置。
示例性装置-
如上所述,为了解决现有技术中PCIe操作的不足,本公开的示例性实施方案有利地详细说明了一种一致性框架,其用PCIe技术来支持子系统的不同电源与时钟域。
现参见图2,示出并详述了一种示例性系统200。所示系统200描绘了主机202,该主机通过PCIe链路206与外围设备204通信。PCIe链路206将主机202(例如,主机处理器装置)的根组件(RC)210连接到外围设备204(例如,外围处理器装置)的端点(EP)212。尽管图2示出了单个RC 210,但是在给出本公开内容的情况下,普通技术人员将易于理解,在一些实现方式中可采用多个RC。EP 212被进一步细分为耦接到对应子系统的许多功能件。如所示,蜂窝子系统214A通过第一功能件208A进行耦接;WLAN子系统214B通过第二功能件208B进行耦接;PAN子系统214C通过第三功能件208C进行耦接。尽管图2示出了具体拓扑,但是在给出本公开内容的情况下,本领域普通技术人员将理解,系统200内可存在更多(或甚至更少)的子系统。
应当注意,尽管本公开结合主机和外围设备进行说明,但是鉴于透过下文将变得显而易见的原因,关于主机或外围设备的标示用于简化和/或阐明以下说明,并非暗指现有主机或外围设备功能,或者此类角色不能颠倒(例如,传统的“主机”在至少一些能力方面可作为外围设备,反之亦然)。此外,本文所述原则可延伸至支持除本文明确所述芯片组以外的附加处理芯片组(例如,附加主机和/或附加外围设备)。
图2的系统200的主机202在所示实施方案中包括中央处理单元(CPU)216以及存储器管理单元(MMU)218,并且连接到外部存储器(诸如,动态随机访问存储器(DRAM)220和/或闪存或磁盘存储系统。)所示子系统可包括但不限于:蜂窝调制调解器214A和对应的CPU222A;WLAN调制调解器214B和对应的CPU 222B;和PAN调制调解器214C和对应的CPU 222C。此外,子系统均可访问一个或多个外部存储器224和/或内部紧耦接存储器(TCM)226。
针对主机处理器216、PCIe链路206(包括RC 210和EP 212)和/或子系统(214A,214B,214C)中的每个子系统,示例性系统200具有隔离的电源与时钟域。如本上下文所用,术语“域”是指子系统内独立地自给自足并且其自身运行不要求其它子系统的逻辑部件。域的常见示例包括但不限于:例如,电源域、时钟域、复位域、安全域、处理域。尽管每个域是自给自足的,但在给出本公开内容的情况下,相关领域普通技术人员将易于理解,正常运行期间可同时使用多个域,以及/或者多个域可以彼此交互;实际上,一些使用场景可能要求同时使能多个域。
正常运行期间,前述域中的每个域可独立于其它域中一个或多个域而运行。例如,移动性管理更新期间,蜂窝子系统214A可以在(例如)主机202、PCIe链路206、RC 210、EP212或其它子系统214B,214C未上电的情况下连接到蜂窝网络。类似地,WLAN子系统214B可在不唤醒任何其它域的情况下扫描附近的信标。
简而言之,PCIe链路电源管理基于链路训练和状况状态机(LTSSM)。一个此类LTSSM 300在图3中示出;如所示,状态机300包括,尤其是,状态L0 302、L0s 304、L1 306和L2 308。
L0 302是其中可收发数据和控制数据包的物理总线接口的运行状态。
L0s 304是第一省电状态,该状态使物理总线接口可以在不经过恢复状态的情况下快速进入节能状态以及从节能状态恢复过来。
L1 306是第二省电状态,以附加的恢复时延为代价(由于恢复状态),该状态可实现比L0s 304附加的省电。在一个示例性实施方案中,L1 306还可细分成例如子状态L1.1和L1.2。在其一种实现方式中,L1.1可维持端口电路的共模电压,同时对收发电路和相关联的锁相回路(PLL)断电。除了收发电路和PLL,L1.2还对共模电压断电。
最后,L2 308是第三省电状态,该状态通过关掉大多数功能而最大程度地节能。
PCIe不为所连接的子系统授权特定的电源管理状态机;然而图4是一种此类实现方式的图示。如所示,图4的状态机示出共同进行电源管理的主机处理器与外围处理器内的一对独立的状态机。以下讨论就该对状态机而给出;然而,据理解,具有单个主机和多个子系统的系统可具有主机状态机的一个实例以及针对每个子系统的子系统状态机的一个实例。每个子系统的状态机在与对应的主机状态机隔离的情况下交互。以下讨论描述了单个主机状态机与单个子系统状态机之间的交互,但是应当理解,以下原则将适用于其中存在多个独立子系统状态机的实现方式中,见(例如)图2(或多个主机状态机),其中为了简明起见,以下讨论仅仅说明了广义上的原则。
此外,在给出本公开的情况下,相关领域普通技术人员可以运用本文所述的原则来适应(例如)子系统到子系统上电时序、或子系统到主机上电时序。
正常运行期间,外围处理器(例如,指定的对应子系统214A,214B,214C的功能件208A,208B,208C)可通过存储器映射地址(例如,外围设备睡眠通知寄存器)或其它消息机制(例如,GPIO、带外信令、门铃等)以激活状态402发送睡眠模式请求。还参见图4A中的操作422。例如,外围处理器可包括多个子系统,并且可发送针对多个子系统中一个子系统的睡眠模式请求。而后,外围处理器(例如,指定的相应子系统214A,214B,214C的功能件208A,208B,208C)进入睡眠_等待状态404(例如,针对多个子系统中的一个子系统)。还参见图4A中的操作424。当处于睡眠_等待状态404时,外围处理器(例如,指定的相应子系统214A,214B,214C的功能件208A,208B,208C)休止,并且不发起或完成任何数据传输或消息。外围处理器(例如,指定的相应子系统214A,214B,214C的功能件208A,208B,208C)监测针对主机动作的存储器映射地址(例如,外围设备睡眠控制寄存器)。还参见图4A中的操作426。在一些实施方案中,唤醒流程可通过使用带外GPIO(其触发唤醒)发起;唤醒流程可通过专用带内MMIO门铃来触发。
当主机检测到睡眠模式请求时(例如,当处于激活模式412时),主机处理器可以将外围设备睡眠控制寄存器更新为针对(例如)多个子系统中一个子系统的“睡眠模式”。还参见图4A中的操作428和430。主机处理器也可进入睡眠状态416。外围处理器(例如,指定的相应子系统214A,214B,214C的功能件208A,208B,208C)检测到针对(例如)多个子系统中一个子系统的外围设备睡眠控制寄存器的更新,并进入睡眠状态406。还参见图4A中的操作432和434。
当一个或多个子系统处于睡眠状态406的同时,外围处理器检查主机处理器是否具有针对一个或多个子系统的任何未决的传输或发送中的消息。还参见图4B中的操作442。如果是,则外围处理器发起“唤醒”流程,以过渡至激活状态402。类似地,如果外围处理器需要访问通信链路,则外围处理器将醒来。
为了醒来,外围处理器通过(例如)外围设备睡眠通知寄存器发送激活模式请求,并进入激活_等待状态408。还参见图4B中的操作444和446。之后,外围处理器可立即访问通信链路,用于数据传输和消息发送,然而(为了防止出现状态机竞争的情况)外围处理器不能进入睡眠或者发送睡眠模式请求。还参见图4B中的操作448。
响应于激活模式请求,主机将(例如)外围睡眠控制寄存器更新为“激活模式”,并进入激活状态412。还参见图4B中的操作450。在外围处理器发现主机对外围睡眠控制寄存器更新之后,其进入激活状态402。还参见图4B中的操作452。
主机发起的睡眠流程是类似的(即,主机的电源管理状态机可视为与外围子系统电源管理状态机对称)。当主机准备好进入睡眠时,主机通过主机进入睡眠消息来通知外围处理器(并过渡至睡眠_等待状态414)。发现主机进入睡眠消息之后,外围处理器挂起其本身的睡眠状态机,并处理所有未决的传输描述符(TD)。如下文更详细所述,在主机可以过渡至睡眠状态416之前,其可能需要通知多个子系统。
响应于睡眠消息完成,主机可过渡至睡眠模式(从睡眠_等待状态414);之后,外围处理器也可独立地进入睡眠模式。如果外围处理器需要重新建立与主机的通信,外围处理器可通过(例如)触发唤醒序列的带外通用输入输出(GPIO)来请求主机醒来。主机过渡至激活_等待状态418,以便重新发起操作等。一旦主机成功退出激活_等待状态418并且已经醒来(处于激活状态412),主机即通过主机退出睡眠消息来更新外围设备。
重新参见外围处理器,一旦完成对外围处理器传输描述符环(TDR)的处理,外围处理器响应于睡眠消息发送完成/确认消息。之后,外围处理器将不再接受任何TDR,直到外围处理器从主机处理器接收到主机退出睡眠消息(通过消息环(MR)接收)。在恢复数据传输之前,外围设备将确认/完成主机退出睡眠消息。
以上描述仅为一个示例性状态机的说明。其它变型描述于2015年10月8日提交的标题为“Methods and Apparatus for Managing Power with an Inter-ProcessorCommunication Link Between Independently Operable Processors”的共同拥有且共同未决的美国专利申请序列号14/879,027中,在前文已通过引用方式全文并入本文。
如前所指出,所示实施方案中的每个子系统本身具有其对应的子系统电源管理状态机的独立实例。重新参见图2,蜂窝子系统214A具有电源管理状态机的第一实例;WLAN子系统214B具有电源管理状态机的第二实例;并且PAN子系统214C具有电源管理状态机的第三实例。应当理解,上述子系统电源管理状态机仅为例示性的;技术人员可替换为其它状态机(或结合上述状态机一起使用)以适应各种其它设计考虑因素。例如,不同应用和不同部件可具有不同的电源管理状态机,这取决于它们的功能、相对功率消耗或其它因素。
在一个示例性实施方案中,这些域可以与其它域同时运行,而没有限制(例如,一个或多个域可同时通电)。在其它实施方案中,域的独立运行可能经受功率消耗过度、散热、和/或干扰限制。例如,某些设计大胆的产品可能无法同时给所有域通电,或者当所有域通电时可能无法满足整体的电池寿命限制条件。仍然有其它的产品可能尺寸超大,使得散热和/或不合需要的电磁本底噪声的增加(由于时钟的差异)可能成为问题。因此,本文所设想的智能电源管理变型可优选地使能或去使能域,以便满足此类设备限制条件(例如,根据域的优先级加权、一个或多个用户偏好、历史使用状况、和/或其它选择信息)。
在一个示例性实施方案中,所公开的PCIe接口也可独立操作,而没有限制;例如,PCIe接口具有其自身的不同于主机处理器216以及外围子系统214A,214B,214C的电源与时钟域。与其它子系统一样,本实施方案中的PCIe子系统可独立于其它子系统而进入和/或退出省电模式。此类系统可使能“看家”类操作,例如,状态更新、计时器设定/重设和/或其它自主访问,而不需要主机、外围设备或子系统操作。
运行期间,示例性实施方案的电源管理状态机的每个状态机均独立运行。例如,蜂窝子系统214A可以与蜂窝网络移动性管理实体(MME)通信,而其它子系统仍处于睡眠状态。当蜂窝子系统需要更新主机处理器时,蜂窝子系统对唤醒PCIe链路的主机处理器216发起中断。作为响应,PCIe LTSSM过渡至其L0状态302以将通信桥接至主机处理器216(如果还没激活,其也必须作为响应而过渡至其激活状态)。一旦事务结束,蜂窝子系统可返回至其相应的睡眠状态。
另外,由于PCIe子系统存储每个子系统的功能件信息,主机访问PCIe寄存器应当由EP 212或功能件208A,208B,208C来完成,而不要求子系统214A,214B,214C上电和/或发起所谓的“背板访问。”所谓的背板访问一般是指需要内部访问机制的访问,诸如外围设备内部互连、总线和/或共享和/或非共享资源。更直接地,主机可访问每个子系统的PCIe控制空间和MMIO寄存器,而不要求子系统通电进入运行状态来处理存储器访问。例如,主机可对各个功能件进行读取/写入,而不用唤醒对应的子系统,例如,RC 210可查询EP 212的蜂窝功能件208A,而不用唤醒蜂窝子系统214A。类似地,PCIe链路可过渡至较低功率模式(例如,诸如L0s、L1.1和/或L1.2),而不用对子系统下电。
可另外地要求示例性多功能EP 212智能管理进/出所连接的子系统214A,214B和214C的访问。例如,在一个示例性实施方案中,每个子系统在其自身的运行域(例如,电源和时钟域)内可单独寻址。换句话说,通过PCIe基址寄存器(BAR)而外露的每个存储器映射输入输出(MMIO)区域直接对应于并且唯一用于单个子系统。每个BAR(与子系统对应的BAR)涉及或“指向”唯一一组后备存储器地址。另外,每个子系统可“沙箱化”,使得其仅可访问指定空间或区域;例如,仅访问其自身MMIO区域内的MMIO和配置空间。在一些变型中,这可通过硬件保护(例如,逻辑地址解码器、多路复用器)和/或软件保护(例如,地址捕获、加窗)而被强制执行。
在一些实施方案中,PCIe域针对RC 210、PCIe物理链路206和EP 212被进一步细分。此类细分使得PCIe链路206能够在不同时使RC 210和/或EP 212掉电的情况下掉电。例如,一些变型可以使EP 212能够针对与子系统214A,214B,214C对应的每个功能件208A,208B,208C继续更新控制寄存器空间,同时链路206处于深度睡眠。换句话说,位于PCIe EP212中的PCIe配置寄存器和MMIO寄存器不要求任何背板访问或子系统计时或上电。类似地,主机处理器216可对RC 210控制寄存器进行读取/写入,而不用使能链路206或EP 212。此类功能在以下情况下尤为有用:在一些情况下,为了大大节省电能,整个外围设备204进入未通电模式(例如,VDD和全局时钟掉电),但是主机处理器需要访问RC 210控制寄存器。激活通信链路206之后,主机(和外围设备)将能够监测、以及响应、更新对应的寄存器。
在某些情况下,主机(经由RC)可通过对EP内对应的MMIO区域进行写入来唤醒子系统。例如,如果主机访问特定MMIO区域和/或与睡眠子系统相对应的相关联的配置寄存器,则EP将“唤醒”子系统并触发针对子系统的中断。类似地,不论PCIe链路状态如何,每个子系统可读取和写入其自身在对应MMIO与配置区域中的沙箱化寄存器的内容,例如,不要求参考时钟和/或干扰PCIe链路电源状态(例如,不要求退出L0 302、L0s 304、L1 306和L2308)。
示例性操作-
除了物理上不同于现有技术的PCIe硬件总线实现方式,本公开的示例性实施方案详细说明了使PCIe总线协议满足独立的子系统域操作的运行框架。
根组件和端点操作的示例性改型–
本文所述的一些公开的实施方案已经将RC、PCIe链路、EP和任何附接子系统之间的其电源与时钟域解耦。除了针对各个操作将操作分隔到不同的域,在此情况下,实体中的每个实体可另外访问多个共享数据结构,而不用打扰其它实体的当前电源状态。例如,RC可访问部分功能件寄存器和EP内的存储器,而不一定需要唤醒子系统中的任一个;类似地,每个子系统可访问RC寄存器,而不用唤醒主机处理器。另外,每个子系统也可访问其对应的端点、功能件和/或MMIO寄存器,而不用唤醒PCIe链路。尽管据理解,本文所述的多种改进方案允许独立访问,但是普通技术人员将易于理解,可保留现有技术;例如,也可以实现唤醒相关联的子系统的访问,例如,以支持既有功能和/或现有使用案例。
图5示出根据本公开用于访问子系统内的寄存器的一个示例性方法。
在方法500的步骤502处,主机处理器执行访问PCIe功能件(例如,图2中的功能件208A,208B和208C)内的存储器位置的指令。如前所指出,存储器映射访问本身转化成存储器位置(即,不要求中间端口映射通信格式所必需的开销)。访问的常见示例包括但不限于:读取、突发读取、写入、突发写入、后写入和/或设定/清除。存储器位置可包括任何带内可寻址存储器位置,这些位置可包括但不限于:寄存器、存储器和/或其它数据结构。
在方法500的步骤504处,主机处理器访问映射到RC,该RC在一些实现方式中触发PCIe链路以唤醒L0状态302。在一些实现方式中,PCIe链路可能已经存在于L0状态302中。在目前的现有技术PCIe操作中,根组件(RC)和端点(EP)通过三(3)种信号来整合链路操作:PERST#(PCIe复位)、WAKE#(在下文中更详细描述的唤醒功能)和CLKREQ#(时钟请求)。PERST#由RC驱动,并且表示(当去断言时)电源是稳定的,并且可以使能链路;CLKREQ#有时由EP驱动,并且表示(当断言时)对链路时钟的请求和/或请求退出L1子状态。CLKREQ#有时也由RC驱动,并且表示(当断言时)请求退出L1状态或子状态(例如,L1.1、L1.2)。一旦主机表示链路可用(通过去断言PERST#),EP可通过断言CLKREQ#唤醒主机和RC;之后,可开始事务。
在方法500的步骤506处,如果还没有激活,则作为响应,PCIe EP退出其低功率状态。在内部,存储器映射访问通过存储器控制器、总线仲裁器或其它访问控制机制路由到EP内合适的存储器位置。如前所述,子系统访问对应于EP内已经分配有特定且专有的存储器区域的功能件。例如,存储器访问可对应于(例如)功能件内的寄存器的访问。
在方法500的步骤508处,访问PCIe EP存储器空间在功能件处完成(包括确认,如果需要的话)。一旦完成,PCIe链路和/或RC即可继续下一事务(即,当前事务不拖延PCIe链路)。在一些变型中,作为图5所述的寄存器访问中的单独流程,EP可另外地唤醒子系统。例如,PCIe EP可唤醒对应的子系统以(例如)传播寄存器访问,或者根据寄存器访问执行另一任务。
在一种此类变型中,CLKREQ#的信令协议将PCIe链路从其低功率状态唤醒,并且不将其它子系统域从低功率状态唤醒。如下文更加详细所述,最初的总线事务为启动EP提供了启动映像;一旦EP已经成功启动,主机和RC可去断言PERST#以表示链路稳定,从而使能EP开始链路训练。由于子系统在单独的域上运行,PERST#可反复重置,而不影响外围设备内任何子系统的状态。一旦链路已经完成初始化,即传输子系统的启动映像。
另外,由于PERST#与子系统和/或主机操作解耦,PERST#可以将PCIe块从任何省电状态唤醒,而不用考虑主机和其它子系统。更直接地,PERST#逻辑部件可大大简化,因为其不影响PCIe链路以外的功能。在一些示例性变型中,PERST#和/或CLKREQ#逻辑部件可全部在硬件和/或简化逻辑部件内实现,以便减少软件事务开销并增强稳健性。
在符合本文所述原则并且适用于各种各样不同的多功能总线操作的基础上,普通技术人员可以对PCIe信令作出其它修改和/或添加。例如,更多高级实现方式可添加或移除信令逻辑部件(例如,根据通用输入输出(GPIO))。还有其它实现方式可为每个所支持的EP子系统专门分配单独的PERST#和/或CLKREQ#线路(例如,创建PERST#和CLKREQ#的捆绑数组)。
示例性子系统电源控制–
一旦子系统已经正常初始化,子系统为其相应的域实现个体化电源状态。为了在外围设备内支持完全独立的电源和时钟域操作,示例性子系统和EP经过改装,以包括配置寄存器从而控制域操作,包括例如,子系统上电、断电或任何数目的其它中级低功率模式(和/或它们的梯度)。
如前所指出,睡眠模式一般的特征在于逐步使越来越多的子系统部件掉电。例如,轻度睡眠可能仅仅使刷新率高的存储器掉电;中度睡眠可能将短期易失性存储器存储到非易失存储装置中,并使易失性存储器掉电。深度睡眠可能另外地使锁相环(PLL)、数字锁环(DLL)和/或其它计时硬件掉电。唤醒通过以相反的序列使掉电的部件上电来实现(例如,时钟先于非易失性存储器,非易失性存储器先于易失性存储器)。因此,低功率模式逐步变深,可导致唤醒延迟越久。在给出本公开内容的情况下,相关领域的普通技术人员将易于理解其它电源排序技术。
在一种此类实现方式中,当外围设备初次上电时,每个子系统的配置寄存器初始化至默认状态,而寄存器的内容在复位(例如,跨外围设备复位和/或功能件级复位)期间具有“粘性”(或非易失性)。在另选变型中,配置寄存器在上电时可以不进行初始化,而在复位序列期间可进行初始化。仍有其它实现方式可包含混合复位序列(例如,外围设备复位初始化配置寄存器,但是功能件级复位不会)。
尽管上述公开内容主要涉及用于电源与时钟域操作的配置寄存器,但是在给出本公开内容的情况下,相关领域普通技术人员将易于理解,配置寄存器可用于传送或配置中断、捕获的错误、运行模式、版本控制信息、文件结构信息和/或几乎任何其它运行参数。
PCIe链路电源控制–
在一些情况下,示例性主机和RC与外围设备隔开(诸如,在图2中示出)。内部主机域电源控制可基本上类似于上述外围域操作;实际上,主机甚至可具有多个子系统。然而,由于主机控制PCIe链路何时使能和/或禁用,因此需要另外的链路排序以确保当外围设备不可用时,主机不尝试发送信号给外围设备,反之亦然(例如,当主机不可用时,外围设备不尝试发送信号给主机)。
在一个示例性实施方案中,主机过渡至非响应性低功率模式(例如,主机处理器(诸如)通过处于睡眠状态将不可用,无法响应指令)之前,主机将针对每个子系统执行握手协议。然后根据其内部考虑因素(例如,将当前执行内容和存储器存储到非易失或粘性存储器中),每个子系统可合理地准备过渡至其对应的低功率状态(诸如,上述的设备电源状态)。之后,子系统可进入低功率模式。一旦主机已经完成针对所有子系统的握手协议,则主机可断言表示链路不再可用的PERST#。如前所指出,本公开的示例性子系统不需要在随后的PERST#过渡期间唤醒。另选的实现方式使子系统可以“选择性加入”,用于接收PCIe中断。例如,在进入低功率状态之前,子系统可等待直到PERST#被断言;此类功能对于调试或监测PCIe事务可能有用。
一旦主机已经成功过渡至低功率模式,通过断言至主机的WAKE#信号,任一子系统可通过PCIe接口唤醒主机。在一种此类实现方式中,WAKE#信号在所有子系统之间共享,并且主机驱动器可通过电源管理事件(PME)来确定始发子系统。其它实现方式可提供表示触发了WAKE#事件的子系统的配置寄存器或MMIO寄存器。在另一实现方式中,每个子系统具有专用WAKE#GPIO(通用输入输出(GPIO)),并且主机驱动器可通过断言的WAKE#GPIO确定始发子系统。
响应于接收到WAKE#信令,主机退出其睡眠状态,并且去断言PERST#以表示其已经被成功唤醒。主机使能PCIe链路(通过前述LTSSM)并且枚举合适的PCIe功能件。一旦主机已经成功枚举了该链路,一个或多个激活子系统可以与主机交换数据。成功的链路重新建立结束于主机与子系统之间的握手。
现参考图6,公开了一种用于使主机处理器过渡至睡眠模式的示例性方法。
在方法600的步骤602处,主机处理器通知每个子系统主机正在进入深度睡眠模式。然后每个子系统可独立地判断其是否也应该睡眠。例如,子系统可过渡至睡眠模式以节省电能,因为主机在其睡眠时将不访问任何子系统。然而在其它情况下,即使在主机睡眠的时候,子系统也可能需要与其它外部网络实体通信;在此情况下,子系统可仍处于运行模式。在一些变型中,只有主机具有单向电源以防止子系统进入睡眠。在另选变型中,子系统也可具有电源以防止主机进入睡眠(例如,在电源管理是双向的情况下,或者在某些限制条件下是双向的情况下)。一般地,据理解,每个子系统的睡眠序列与其它子系统隔离开来;然而,在给出本公开内容的情况下,相关领域普通技术人员可同样成功地替换相互关联的子系统电源管理。
在方法600的步骤604处,主机处理器可以使PCIe链路进入睡眠。此时,PCIe链路过渡至L2状态308,并且RC断言PERST#以表示该链路未激活。通常EP也将睡眠;然而易于理解的是,EP可保持苏醒,或者由主机睡眠时仍然运行的子系统来单独唤醒。更直接地,尽管PCIe子系统维持在复位状态,各个子系统中每个子系统可保持苏醒或自主苏醒以(例如)执行各种网络管理任务。例如,蜂窝子系统可苏醒以查看寻呼消息和/或更新网络移动性管理实体。类似地,WLAN子系统可周期性地检查可用的热点访问和/或附近的开放网络。
在步骤606处,主机进入其睡眠模式。在一些情况下,主机可将易失性存储器存储到非易失性存储器中,减少至内核和/或其它相关部件(例如,时钟、电源、存储器、和/或附接部件)的功率。在一些情况下,主机可继续(例如)监测唤醒条件何时发生,或者在低功率模式下执行优先级较低的任务(例如,用较慢的时钟、更小的存储器或内核)。例如,处理器可能仅足以使内核通电以追踪唤醒计时器和/或检查RC的等待条件。在其它情况下,主机完全休止,依赖于其它逻辑部件来触发唤醒;例如,PCIe链路RC可处于单独的域中,并且能够触发主机唤醒。
随后,由于(例如)计时器过期、中断业务、外围子系统访问(通过WAKE#)、用户操作和/或任意数目的其它主机业务,主机可退出睡眠模式(步骤608)。根据PCIe LTSSM(见上述图3的讨论),主机唤醒PCIe链路(如果还未激活的话)。
在步骤610处,主机枚举多功能外围设备的至少一个功能件。在一些情况下,主机可枚举所有功能件。在一些情况下,主机仅可枚举激活的功能件。在其它情况下,主机仅可枚举触发唤醒条件的一个或多个功能件。
在一些情况下,主机任选地将与这些功能件对应的所枚举的子系统过渡至步骤612处的运行状态。
示例性启动序列–
现有PCIe实现方式具有简单的启动序列,其中主机最先启动其附接的外围设备。本公开的各个实施方案将启动外围EP,然后单独启动每个子系统。在一个示例性实施方案中,一旦主机已经成功启动外围EP,主机发现并按顺序启动子系统(例如,首先启动蜂窝子系统,然后是WLAN子系统,并且最后是PAN子系统)。在一些情况下,某些子系统可从例如应用软件不需要它们的启动流程中裁剪掉。例如,如果用户已经禁用了PAN能力,则从启动序列中裁剪掉PAN子系统。
在更复杂的实施方案中,各个域控制的粒度使主机可以智能地根据运行时间考虑因素使外围设备的子系统通电和/或启动,以便(例如)减少功率消耗和/或缩短整体启动时间。例如,目前不需要网络来访问用户应用程序的移动设备可仅仅启动主机处理器和蜂窝子系统,而使WLAN子系统掉电。这样,蜂窝子系统可以在后台以对用户干扰最小的方式执行其移动性管理序列(例如,注册,鉴权等),并且由于WLAN子系统直到需要使用它时才启动,缩短了整体启动时间。
在启动序列的一个示例性实现方式中,当最初给外围设备通电时,仅给PCIe EP通电。其它子系统可以保持掉电直到明确地上电。在初始启动序列期间,EP可枚举PCIe子系统和PCIe功能件中的每一者。例如,在初始启动序列期间,EP可初始化每个子系统的PCIe BAR和对应的配置空间与MMIO区域。如前所述,在一些变型中,不论对应子系统的电源状态如何,主机可访问子系统的BAR、配置寄存器和MMIO。
然后可选择性地针对多个子系统进行PCIe枚举。在对指定子系统的配置空间进行PCIe枚举期间,主机对配置寄存器进行写入,以使该子系统通电。子系统成功初始化之后,主机可设定总线主使能(BME)位以使能通过PCIe总线访问主机存储器的对应的功能件。一旦主机拥有对PCIe链路的控制权,主机可针对特定子系统发起启动流程,该流程可包括加载和/或执行启动映像。每个子系统可单独启动,并且每个子系统的启动流程可独立于并且不阻碍或影响任何其它子系统的启动流程。
附录A提供了表格,这些表格描述了子系统响应于主机发起的睡眠、通电和复位事件的示例性行为。如其中所述,指定事件期间外围设备的启动阶段导致指定的行为。
在给出本公开内容的情况下,相关领域普通技术人员将易于理解其它多功能外围设备启动排序方案。
示例性复位序列–
在示例性实施方案中,每个域均可单独重置。多复位方案在一些变型中可重新初始化配置参数,而在其它变型中,复位不可以重新初始化配置参数。还有其它混合系统既可具有可重置配置参数,也可具有粘性配置参数。在其它情况下,复位可根据(例如)层级(即,复位层级越高,可复位其较低层级)、功能配件分组、可配置分组和/或其它分组法进行耦接。
在一个示例性实施方案中,与单个域对应的每个PCIe功能块(位于端点而非子系统内)也可被单独地复位。在一种此类情况下,功能件级复位将复位耦接的子系统,而不仅仅是功能块。另选地,功能件级复位将不复位耦接的子系统。在其它实施方式中,当其对应的子系统复位时,功能块本身也自动复位。
在一个实施方案中,功能块复位可迫使子系统进入其初始启动阶段。在一些变型中,子系统可以在预定时间量内复位。在一些情况下,复位是“硬性”复位(即,不论当前执行状态和/或电源状态如何,强制复位);在其它情况下,复位是“柔性”复位(即,根据特定序列进行复位,该特定序列可(例如)允许恢复当前的执行环境)。
当触发功能件级复位时,功能块可自动重置子系统配置空间和MMIO的内容。在一些情况下,某些位或数据结构具有“粘性”,并且其内容在复位后可依然存在。此类粘性数据结构的常见示例可包括但不限于:用于控制到达子系统的电源的配置寄存器。其它方案可以使用非粘性数据结构,或者粘性与非粘性位的混合。
如前所指出,运行期间,主机可发起每项功能件和/或子系统的复位,而不影响任何其它功能件和/或子系统的运行状态。另外,本公开的各种实施方案另外地支持外围设备整体复位,其复位整个外围芯片组。例如,一旦主机触发了外围设备复位,对外围设备复位时上电的任何子系统进行复位,并对外围设备复位时断电的任何子系统保持断电。外围设备复位之后,主机可枚举PCIe功能件,并如上所述启动子系统(见“示例性启动序列”)。
图7示出一种用于功能件级复位(FLR)操作的示例性方法。在一个示例性实施方案中,每个FLR均为带内复位(例如,位于专用寄存器、MMIO地址或其它可寻址存储器位置内)。更一般地,FLR功能可以由主机发起并且可以由位于EP内的特定功能件管理。
在方法700的步骤702处,主机对外围设备的子系统发起功能件级复位。
作为响应,复位外围设备的子系统(步骤704)。在示例性实施方案中,不论功能件和/或子系统的电源状态如何,均可处理功能件级复位。在给出本公开内容的情况下,相关领域普通技术人员将易于理解,其它实施方案可考虑复位期间当前的电源状态(例如,以便合理地存储易失性存储器内容和/或退出流程)。
在一些情况下,除了或替代图7的复位序列,子系统可掉电。例如,主机处理器可发起功能件级断电指令,并且作为响应,对应的子系统可掉电。
在一种此类实现方式中,外围设备复位推动了所有功能件级复位,以实现外围设备的复位。因此,功能件级粘性位即使在外围设备复位期间也保留了下来。在其它实现方式中,外围设备复位可以是不同于功能件级复位的专用复位机制。专用外围设备复位机制可用于(例如)应当清除用于功能件级复位的粘性位的情况。例如,图8示出一种用于外围设备级复位操作的示例性方法。在一个示例性实施方案中,外围设备复位为硬件复位;例如外围设备级复位可以用通用输入/输出(GPIO)或其它专用硬件信令来实现。
简而言之,现有外围设备复位方案并不保留子系统状态后复位。例如,一个此类现有技术复位方案可关闭PCIe链路,复位外围设备,不理睬PCIe链路,以及重新启动每个连接的子系统。相比之下,本公开的各个实施方案保留子系统状态,例如,复位前睡眠或关闭的子系统保持睡眠或关闭,以及复位前激活的子系统保持激活。
在方法800的步骤802处,可使外围PCIe链路掉电,并且/或者可断言PERST#。
如图8所示,在方法800的步骤804处,主机可以对外围设备发起外围设备级复位。复位整个外围设备,包括外围EP、功能件和对应的子系统。
复位后,每个子系统可执行其只读存储器(ROM)的内容并相应地初始化(步骤806)。在一些实施方案中,ROM内容可限于(例如)空闲旋回循环。在没有ROM的环境中,子系统的处理器可从易失性存储器(其可能不具有有效指令)执行;在此情况下,处理器直到由主机触发时才开始运行。
此后,主机可以给PCIe端口通电,并且PCIe链路可过渡至其LTSSM的运行链路状态(例如,L0状态)。
在步骤808处,主机枚举外围设备的所有功能件,并且可以使每个子系统过渡至运行状态。如前所述,主机保留子系统状态;换句话说,复位前睡眠或关闭的子系统保持睡眠或关闭,并且复位前激活的子系统保持激活。此后,可根据前述流程继续执行启动程序。
在给出本公开内容的情况下,相关领域普通技术人员将易于理解其它的多功能外围设备复位方案。
相关领域普通技术人员将易于理解,许多软件调试技术依赖于成功的错误捕获。在一些实施方案中,一旦检测出异常的软件错误,处理器终止进一步操作,并执行循环指令(“旋回”);这样,主机可检索存储器内容,以用于调试。在另一实施方案中,一旦检测到异常的软件错误,可重新启动子系统。存储器的内容是可访问的,因为这些内容是跨多个复位条件而保留下来的。在其它实施方案中,可针对每个子系统使用单独的硬件看门狗计时器。简而言之,只要软件运行正常,硬件看门狗就由软件周期性地复位;如果看门狗计时器过期,则其推断软件已被(例如)错误软件访问或其它总线故障损坏,而强制复位。每个硬件看门狗只复位对应的子系统,并且不影响其它子系统。
附录B提供了表格,所述表格描述了执行错误捕获和/或优选的处理机制时子系统的示例性行为。
一旦子系统复位即可使用的共同调试指令的其它示例包括:寄存器快照(例如,可迫使子系统采集所有子系统寄存器的快照)和内核转储(例如,可迫使子系统变成中断处理程序,以便采集子系统存储器的快照)。
应当理解,虽然本公开的某些实施方案是按照特定的方法步骤顺序进行描述的,但这些描述仅仅是本文所述的更广泛方法的示例,并且可根据特定应用的需求而修改。在某些情况下,某些步骤可呈现为不必要的或可选的。此外,可将某些步骤或功能添加至所公开的实施方案,或者对两个或更多个步骤的性能的顺序加以排列。所有此类变体均被认为涵盖在本公开和本文的权利要求书内。
尽管上文的详细描述已显示、描述并指出应用到各种实施方案的新特征,但应当理解,在不背离本文所述原理的情况下,本领域中的技术人员可以对所说明的设备或流程的形式和细节进行各种省略、替换和更改。上述说明是当前所考虑到的最佳模式。该描述绝不是为了进行限制,而是应被视为是对本文描述的一般原理的例示。应结合权利要求确定本公开的范围。
附录A
Figure BDA0001461858680000311
附录B
Figure BDA0001461858680000321

Claims (22)

1.一种为电子设备内的多个子系统提供个体化电源控制的方法,所述电子设备包括主机处理器装置,所述方法包括:
建立通过所述电子设备的端点装置到所述多个子系统的存储器映射接口,所述多个子系统中的每个子系统与所述端点装置内包括的一个相应功能耦合,其中所述多个子系统中的每个子系统包括相对于所述多个子系统中的其它子系统的独立电源管理状态机;以及
对于所述多个子系统中的一个子系统,使对应的电源管理状态机独立于所述多个子系统中的其它子系统,从睡眠状态转变至激活状态。
2.根据权利要求1所述的方法,其中所述多个子系统中的所述一个子系统从所述睡眠状态转变至所述激活状态能够在所述多个子系统中的其它子系统没有从睡眠状态转变至激活状态的情况下发生。
3.根据权利要求1所述的方法,还包括独立于所述多个子系统中的其它子系统,将所述多个子系统中的一个子系统转变到各种节能模式。
4.根据权利要求3所述的方法,还包括通过所述主机处理器装置,对所述多个子系统进行独立电源控制。
5.根据权利要求4所述的方法,其中对所述多个子系统进行独立电源控制还包括使所述多个子系统中的第一子系统保持在激活状态。
6.根据权利要求5所述的方法,其中对所述多个子系统进行独立电源控制还包括使所述多个子系统中的第二子系统转变至睡眠状态,同时使所述多个子系统中的所述第一子系统保持在所述激活状态。
7.根据权利要求1所述的方法,还包括独立于所述多个子系统中的其它子系统,为所述多个子系统中的所述一个子系统发起上电时序。
8.一种计算机化装置,包括:
主机处理装置,所述主机处理装置包括根组件;
外围装置,所述外围装置包括端点装置,所述端点装置包括多个功能,所述多个功能中的每个功能与多个子系统中相应的子系统耦合,其中所述相应的子系统包括相对于所述多个子系统中的其它子系统的独立电源管理状态机;和
通信链路,所述通信链路在所述根组件与所述端点装置之间。
9.根据权利要求8所述的计算机化装置,其中所述多个子系统中的每个子系统包括与所述多个子系统中的其它子系统分离的电源管理。
10.根据权利要求9所述的计算机化装置,其中所述主机处理装置包括与所述多个子系统分离的主机电源管理;并且
所述通信链路包括与所述主机处理装置和所述多个子系统分离的链路电源管理。
11.根据权利要求9所述的计算机化装置,其中所述多个子系统中的一个子系统包括无线局域网子系统,其中所述无线局域网 子系统能够扫描附近的信标,而不必唤醒所述多个子系统中的其它子系统。
12.根据权利要求11所述的计算机化装置,其中所述无线局域网 子系统能够扫描所述附近的信标,而不必唤醒所述通信链路或所述主机处理装置。
13.根据权利要求9所述的计算机化装置,其中所述多个子系统中的一个子系统包括蜂窝子系统,其中所述蜂窝子系统被配置为在移动管理更新期间与蜂窝网络连接,而不使所述子系统中的其它子系统、所述主机处理装置和所述通信链路中的一者或多者上电。
14.一种用于电子设备中的外围处理装置,所述外围处理装置包括:
端点装置,所述端点装置包括多个功能,所述多个功能中的每个功能与所述外围处理装置的多个子系统中相应的子系统耦合;
其中所述多个子系统中的每个子系统包括独立于所述多个子系统中的其它子系统的电源管理状态机。
15.根据权利要求14所述的外围处理装置,其中所述多个子系统中的第一子系统的第一独立电源管理状态机被进一步配置为:
在处于激活状态时向主机处理装置发送睡眠模式请求;
在发送所述睡眠模式请求之后进入睡眠等待状态;
检测针对外围睡眠控制寄存器的更新,所述更新由所述主机处理装置发起;以及
响应于所检测到的针对所述外围睡眠控制寄存器的更新,从所述睡眠等待状态进入睡眠状态。
16.根据权利要求15所述的外围处理装置,其中所述多个子系统中的所述第一子系统的所述第一独立电源管理状态机被进一步配置为:
检查所述主机处理装置是否具有任何未决的数据事务;
如果存在未决的数据事务,则发起唤醒过程以使所述第一独立电源管理状态机从所述睡眠状态转变至所述激活状态;
进入激活等待状态;以及
当所述主机处理装置检测到针对所述外围睡眠控制寄存器的更新时,从所述激活等待状态进入所述激活状态。
17.根据权利要求14所述的外围处理装置,其中所述多个子系统中的第一子系统的第一独立电源管理状态机被进一步配置为:
从主机处理装置接收主机进入睡眠消息;
响应于所接收的主机进入睡眠消息,挂起所述多个子系统中的所述第一子系统的所述第一独立电源管理状态机;以及
在挂起所述第一独立电源管理状态机之后,处理所有未决的传输描述符。
18.根据权利要求17所述的外围处理装置,其中所述多个子系统中的其它子系统被进一步配置为从所述主机处理装置接收所述主机进入睡眠消息。
19.根据权利要求17所述的外围处理装置,其中所述第一独立电源管理状态机被进一步配置为在处理所有所述未决的传输描述符之后,从激活状态转变至睡眠状态。
20.根据权利要求17所述的外围处理装置,其中所述多个子系统中的所述第一子系统的所述第一独立电源管理状态机被进一步配置为通过发出针对所述主机处理装置的唤醒请求,重新建立与所述主机处理装置的通信。
21.一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令当被处理器执行时实现根据权利要求1至7中任一项所述的方法。
22.一种系统,包括:一个或多个处理器;和存储器,其上存储有计算机指令,所述计算机指令当被所述一个或多个处理器执行时实现根据权利要求1至7中任一项所述的方法。
CN201711094053.4A 2016-11-10 2017-11-09 为外围子系统提供个体化电源控制的方法和装置 Active CN108073421B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201662420143P 2016-11-10 2016-11-10
US62/420,143 2016-11-10
US15/647,063 US10775871B2 (en) 2016-11-10 2017-07-11 Methods and apparatus for providing individualized power control for peripheral sub-systems
US15/647,063 2017-07-11

Publications (2)

Publication Number Publication Date
CN108073421A CN108073421A (zh) 2018-05-25
CN108073421B true CN108073421B (zh) 2021-07-02

Family

ID=60327086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711094053.4A Active CN108073421B (zh) 2016-11-10 2017-11-09 为外围子系统提供个体化电源控制的方法和装置

Country Status (5)

Country Link
US (1) US10775871B2 (zh)
EP (1) EP3321815B1 (zh)
JP (1) JP6487988B2 (zh)
KR (1) KR102039796B1 (zh)
CN (1) CN108073421B (zh)

Families Citing this family (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10459674B2 (en) 2013-12-10 2019-10-29 Apple Inc. Apparatus and methods for packing and transporting raw data
US9892084B2 (en) 2013-12-10 2018-02-13 Apple Inc. Methods and apparatus for virtual channel allocation via a high speed bus interface
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9798377B2 (en) 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US20180330143A1 (en) * 2015-07-07 2018-11-15 The Board Of Regents, The University Of Texas System Digital imaging and analysis system for use in extreme weather conditions
US10896047B2 (en) * 2015-12-28 2021-01-19 Hewlett-Packard Development Company, L.P. Booting a computer using a wireless network connection
US10085214B2 (en) 2016-01-27 2018-09-25 Apple Inc. Apparatus and methods for wake-limiting with an inter-device communication link
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10523867B2 (en) 2016-06-10 2019-12-31 Apple Inc. Methods and apparatus for multi-lane mapping, link training and lower power modes for a high speed bus interface
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
US10346226B2 (en) 2017-08-07 2019-07-09 Time Warner Cable Enterprises Llc Methods and apparatus for transmitting time sensitive data over a tunneled bus interface
US11054887B2 (en) * 2017-12-28 2021-07-06 Advanced Micro Devices, Inc. System-wide low power management
US10331612B1 (en) 2018-01-09 2019-06-25 Apple Inc. Methods and apparatus for reduced-latency data transmission with an inter-processor communication link between independently operable processors
US10558257B2 (en) * 2018-01-31 2020-02-11 Dell Products L.P. Systems and methods for exiting low-power states
JP6542406B1 (ja) 2018-02-16 2019-07-10 株式会社東芝 読取システム、読取方法、プログラム、及び記憶媒体
US11792307B2 (en) 2018-03-28 2023-10-17 Apple Inc. Methods and apparatus for single entity buffer pool management
EP4216062A1 (en) 2018-03-30 2023-07-26 Google LLC Arbitrating portions of transactions over virtual channels associated with an interconnect
WO2019191431A1 (en) * 2018-03-30 2019-10-03 Provino Technologies, Inc. PROTOCOL LEVEL CONTROL FOR SYSTEM ON A CHIP (SoC) AGENT RESET AND POWER MANAGEMENT
US11381514B2 (en) 2018-05-07 2022-07-05 Apple Inc. Methods and apparatus for early delivery of data link layer packets
US10430352B1 (en) 2018-05-18 2019-10-01 Apple Inc. Methods and apparatus for reduced overhead data transfer with a shared ring buffer
GB201810663D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Peripheral Power Domains
US10585699B2 (en) 2018-07-30 2020-03-10 Apple Inc. Methods and apparatus for verifying completion of groups of data transactions between processors
US10846224B2 (en) 2018-08-24 2020-11-24 Apple Inc. Methods and apparatus for control of a jointly shared memory-mapped region
US10719376B2 (en) 2018-08-24 2020-07-21 Apple Inc. Methods and apparatus for multiplexing data flows via a single data structure
WO2020051254A1 (en) * 2018-09-05 2020-03-12 Fungible, Inc. Dynamically changing configuration of data processing unit when connected to storage device or computing device
CN112528456B (zh) * 2019-09-18 2024-05-07 曙光信息产业(北京)有限公司 一种异构节点计算系统及方法
EP3796128B1 (en) * 2019-09-23 2023-08-30 NXP USA, Inc. Power mode transition management for power supply
US11558348B2 (en) 2019-09-26 2023-01-17 Apple Inc. Methods and apparatus for emerging use case support in user space networking
US11829303B2 (en) 2019-09-26 2023-11-28 Apple Inc. Methods and apparatus for device driver operation in non-kernel space
CN111142653B (zh) * 2019-12-26 2022-03-22 江苏芯盛智能科技有限公司 一种PCIe设备低功耗控制方法、装置及电子设备
CN111240459B (zh) * 2020-01-08 2021-05-28 珠海全志科技股份有限公司 片上系统功耗管理方法、计算机装置及计算机可读存储介质
US11606302B2 (en) 2020-06-12 2023-03-14 Apple Inc. Methods and apparatus for flow-based batching and processing
US11829612B2 (en) * 2020-08-20 2023-11-28 Micron Technology, Inc. Security techniques for low power mode of memory device
US11775359B2 (en) 2020-09-11 2023-10-03 Apple Inc. Methods and apparatuses for cross-layer processing
US11954540B2 (en) 2020-09-14 2024-04-09 Apple Inc. Methods and apparatus for thread-level execution in non-kernel space
US11799986B2 (en) 2020-09-22 2023-10-24 Apple Inc. Methods and apparatus for thread level execution in non-kernel space
CN114427441B (zh) * 2020-09-23 2024-06-21 中国石油化工股份有限公司 一种井下电路控制系统及其实现方法
US20220182098A1 (en) * 2020-12-09 2022-06-09 Texas Instruments Incorporated Low power digital modes for duty-cycled integrated transceivers
US20220191058A1 (en) * 2020-12-14 2022-06-16 Toyota Jidosha Kabushiki Kaisha On-board system, on-board system control method, and non-transitory recording medium
CN112835839A (zh) * 2021-02-04 2021-05-25 深圳市广和通无线股份有限公司 PCIe接口的设备枚举方法、装置、设备及存储介质
US11636054B2 (en) 2021-03-31 2023-04-25 Advanced Micro Devices, Inc. Memory controller power states
US11545209B2 (en) * 2021-05-28 2023-01-03 Micron Technology, Inc. Power savings mode toggling to prevent bias temperature instability
US11500808B1 (en) * 2021-07-26 2022-11-15 Mellanox Technologies, Ltd. Peripheral device having an implied reset signal
US11882051B2 (en) 2021-07-26 2024-01-23 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
US11876719B2 (en) 2021-07-26 2024-01-16 Apple Inc. Systems and methods for managing transmission control protocol (TCP) acknowledgements
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体
US20230066221A1 (en) * 2021-08-27 2023-03-02 Sony Semiconductor Solutions Corporation Communication device and communications system
US20240211022A1 (en) * 2022-12-22 2024-06-27 Ncr Corporation Device power controller

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150152A (zh) * 2011-12-06 2013-06-12 广东新岸线计算机系统芯片有限公司 一种移动终端的外设电源管理方法和系统
CN105224059A (zh) * 2014-06-25 2016-01-06 宏碁股份有限公司 远端存取数据的方法以及本地端装置

Family Cites Families (229)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4805137A (en) 1987-01-08 1989-02-14 United Technologies Corporation Bus controller command block processing system
US5367688A (en) 1987-09-04 1994-11-22 Digital Equipment Corporation Boot system for distributed digital data processing system
US4949299A (en) 1987-12-04 1990-08-14 Allen-Bradley Company, Inc. Industrial control communication network and method
US4987529A (en) 1988-08-11 1991-01-22 Ast Research, Inc. Shared memory bus system for arbitrating access control among contending memory refresh circuits, peripheral controllers, and bus masters
KR100319768B1 (ko) 1991-08-13 2002-04-22 마거리트 와그너-달 영상화및그래픽처리시스템내에서의다차원주소발생방법
JP2675961B2 (ja) 1992-05-20 1997-11-12 インターナショナル・ビジネス・マシーンズ・コーポレイション 実記憶のページをロックするための方法
US5790776A (en) 1992-12-17 1998-08-04 Tandem Computers Incorporated Apparatus for detecting divergence between a pair of duplexed, synchronized processor elements
US5485578A (en) 1993-03-08 1996-01-16 Apple Computer, Inc. Topology discovery in a multiple-ring network
US5687316A (en) 1994-07-29 1997-11-11 International Business Machines Corporation Communication apparatus and methods having P-MAC, I-MAC engines and buffer bypass for simultaneously transmitting multimedia and packet data
US6334219B1 (en) 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
US5943507A (en) 1994-12-22 1999-08-24 Texas Instruments Incorporated Interrupt routing circuits, systems and methods
JP3829994B2 (ja) 1995-01-06 2006-10-04 富士通株式会社 ファイル装置の開発装置及び開発システム
US5659542A (en) 1995-03-03 1997-08-19 Intecom, Inc. System and method for signalling and call processing for private and hybrid communications systems including multimedia systems
US5872769A (en) 1995-07-19 1999-02-16 Fujitsu Network Communications, Inc. Linked list structures for multiple levels of control in an ATM switch
US6212566B1 (en) 1996-01-26 2001-04-03 Imec Interprocess communication protocol system modem
US7099949B1 (en) 1995-10-23 2006-08-29 Imec Vzw Interprocess communication protocol system
AU7558096A (en) 1995-11-16 1997-06-05 Nicholas Dawes Method of determining the topology of a network of objects
US5903564A (en) 1997-08-28 1999-05-11 Ascend Communications, Inc. Efficient multicast mapping in a network switch
US7100020B1 (en) 1998-05-08 2006-08-29 Freescale Semiconductor, Inc. Digital communications processor
GB2339653B (en) 1998-07-14 2003-06-04 Ibm Multiple synchronous data stream format for an optical data link
US6260152B1 (en) 1998-07-30 2001-07-10 Siemens Information And Communication Networks, Inc. Method and apparatus for synchronizing data transfers in a logic circuit having plural clock domains
US6359863B1 (en) 1998-08-12 2002-03-19 The Regents Of The University Of California Rate allocation system and method for ATM switched networks
US6216178B1 (en) 1998-11-16 2001-04-10 Infineon Technologies Ag Methods and apparatus for detecting the collision of data on a data bus in case of out-of-order memory accesses of different times of memory access execution
CA2299022A1 (en) 1999-04-30 2000-10-30 Nortel Networks Corporation Method and apparatus for bandwidth management of aggregate data flows
US6523073B1 (en) 1999-08-23 2003-02-18 Palm Computing, Inc. Handheld computer system and method to detect and identify a peripheral device
US6553446B1 (en) 1999-09-29 2003-04-22 Silicon Graphics Inc. Modular input/output controller capable of routing packets over busses operating at different speeds
US6970992B2 (en) 1999-10-04 2005-11-29 Intel Corporation Apparatus to map virtual pages to disparate-sized, non-contiguous real pages and methods relating thereto
JP3843667B2 (ja) 1999-10-15 2006-11-08 セイコーエプソン株式会社 データ転送制御装置及び電子機器
US6434633B1 (en) 1999-11-02 2002-08-13 Conexant Systems, Inc. Method and apparatus for facilitating AC-link communications between a controller and a slow peripheral of a codec
US7509391B1 (en) 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
US7117273B1 (en) 2000-01-25 2006-10-03 Cisco Technology, Inc. Methods and apparatus for maintaining a map of node relationships for a network
US7191240B1 (en) 2000-02-14 2007-03-13 International Business Machines Corporation Generic network protocol layer with supporting data structure
WO2001093046A1 (en) 2000-06-02 2001-12-06 Mellanox Technologies Ltd. Dma doorbell
US6892298B2 (en) 2000-07-26 2005-05-10 Times N Systems, Inc. Load/store micropacket handling system
EP1182551B1 (en) 2000-08-21 2017-04-05 Texas Instruments France Address space priority arbitration
WO2002032051A2 (en) 2000-10-12 2002-04-18 Signafor, Inc. Advanced switching mechanism for providing high-speed communications with high quality of service
US6925547B2 (en) 2000-12-14 2005-08-02 Silicon Graphics, Inc. Remote address translation in a multiprocessor system
US6990594B2 (en) 2001-05-02 2006-01-24 Portalplayer, Inc. Dynamic power management of devices in computer system by selecting clock generator output based on a current state and programmable policies
US7062761B2 (en) 2001-07-10 2006-06-13 Micron Technology, Inc. Dynamic arrays and overlays with bounds policies
US6948094B2 (en) 2001-09-28 2005-09-20 Intel Corporation Method of correcting a machine check error
US7015941B2 (en) 2001-10-12 2006-03-21 Malloy Desormeaux Stephen G Hybrid cameras that download electronic images in selected geometric formats and methods
US20030086122A1 (en) 2001-11-06 2003-05-08 Parry Travis J. Imaging device communication via email
JP2005510956A (ja) * 2001-11-28 2005-04-21 ミレニアル・ネット アドホック無線ネットワークのためのネットワークプロトコル
US20030112758A1 (en) 2001-12-03 2003-06-19 Pang Jon Laurent Methods and systems for managing variable delays in packet transmission
US8352624B2 (en) 2002-04-18 2013-01-08 Citrix Systems, Inc. System for and method of streaming data to a computer in a network
JP3983138B2 (ja) 2002-08-29 2007-09-26 富士通株式会社 障害情報収集プログラムおよび障害情報収集装置
US7191241B2 (en) 2002-09-27 2007-03-13 Alacritech, Inc. Fast-path apparatus for receiving data corresponding to a TCP connection
US8245055B2 (en) 2002-12-31 2012-08-14 Intel Corporation Method for firmware control invocation from power management
US7411973B2 (en) 2003-03-11 2008-08-12 Broadcom Corporation System and method for interfacing with a management system
US7733915B2 (en) 2003-05-01 2010-06-08 Genesis Microchip Inc. Minimizing buffer requirements in a digital video system
US8068485B2 (en) 2003-05-01 2011-11-29 Genesis Microchip Inc. Multimedia interface
US7620062B2 (en) 2003-05-01 2009-11-17 Genesis Microchips Inc. Method of real time optimizing multimedia packet transmission rate
US8204076B2 (en) 2003-05-01 2012-06-19 Genesis Microchip Inc. Compact packet based multimedia interface
US7397774B1 (en) 2003-05-23 2008-07-08 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Downlink data multiplexer
JP4095501B2 (ja) * 2003-06-25 2008-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ装置、無線アクセスポイント、無線ネットワークを介した電源投入方法、フレーム聴取方法、フレーム送信方法、およびプログラム
US7340629B2 (en) 2003-06-26 2008-03-04 International Business Machines Corporation Method and system for application-based normalization of processor clocks in a multiprocessor environment
US7340630B2 (en) 2003-08-08 2008-03-04 Hewlett-Packard Development Company, L.P. Multiprocessor system with interactive synchronization of local clocks
EP2363990B1 (en) 2003-08-13 2018-03-07 Qualcomm Incorporated A signal interface for higher data rates
US7239581B2 (en) 2004-08-24 2007-07-03 Symantec Operating Corporation Systems and methods for synchronizing the internal clocks of a plurality of processor modules
US7127600B2 (en) 2003-09-30 2006-10-24 Intel Corporation Aggressive content pre-fetching during pre-boot runtime to support speedy OS booting
US7181610B2 (en) 2003-10-07 2007-02-20 Intel Corporation Method and system to encapsulate a driver written for an operating system (OS) runtime environment in an OS independent environment firmware extension
US20050108385A1 (en) 2003-10-28 2005-05-19 Gabriel Wechter Method and system for managing a discovery-related process in a network
US7149890B2 (en) 2003-11-21 2006-12-12 Intel Corporation Initializing system memory
US7233164B2 (en) 2003-12-17 2007-06-19 Rambus Inc. Offset cancellation in a multi-level signaling system
US20050149711A1 (en) 2003-12-30 2005-07-07 Zimmer Vincent J. Method and system for firmware-based run time exception filtering
JP2006127460A (ja) 2004-06-09 2006-05-18 Renesas Technology Corp 半導体装置、半導体信号処理装置、およびクロスバースイッチ
WO2006038094A1 (en) * 2004-10-06 2006-04-13 Nokia Corporation Distributed link-layer wake-up agent system, method and device for universal plug and play function with lower power proxy
US9080894B2 (en) 2004-10-20 2015-07-14 Electro Industries/Gauge Tech Intelligent electronic device for receiving and sending data at high speeds over a network
US7730326B2 (en) 2004-11-12 2010-06-01 Apple Inc. Method and system for updating firmware stored in non-volatile memory
US7398382B2 (en) 2004-12-29 2008-07-08 Intel Corporation Method and apparatus to enhance platform boot efficiency
US7904518B2 (en) 2005-02-15 2011-03-08 Gytheion Networks Llc Apparatus and method for analyzing and filtering email and for providing web related services
US7908335B1 (en) 2005-04-06 2011-03-15 Teradici Corporation Methods and apparatus for bridging a USB connection
US8788822B1 (en) 2005-06-10 2014-07-22 Blue Coat Systems, Inc. Enhanced QoS solution for thin client or remote access sessions
US7802256B2 (en) 2005-06-27 2010-09-21 Microsoft Corporation Class scheduler for increasing the probability of processor access by time-sensitive processes
US7376782B2 (en) 2005-06-29 2008-05-20 Intel Corporation Index/data register pair for indirect register access
US7684835B1 (en) * 2005-07-12 2010-03-23 Marvell Interntional Ltd. Wake on wireless LAN schemes
US20070043901A1 (en) 2005-08-22 2007-02-22 Mediatek Inc. Optical disc recording system with shared non-volatile memory design
US7643753B2 (en) 2005-09-29 2010-01-05 Broadlight Ltd. Enhanced passive optical network (PON) processor
US8310965B1 (en) 2005-10-04 2012-11-13 Marvell International Ltd. Buffered audio system with synchronizing bus controller
US7814166B2 (en) 2006-01-27 2010-10-12 Sony Computer Entertainment Inc. Methods and apparatus for virtualizing an address space
US8099548B2 (en) 2006-03-23 2012-01-17 Microsoft Corporation Power efficient media playback on general purpose portable devices
US8555099B2 (en) 2006-05-30 2013-10-08 Ati Technologies Ulc Device having multiple graphics subsystems and reduced power consumption mode, software and methods
JP4609381B2 (ja) 2006-06-14 2011-01-12 株式会社デンソー 異常監視用プログラム、記録媒体及び電子装置
US20080046689A1 (en) 2006-08-21 2008-02-21 Tien-Fu Chen Method and apparatus for cooperative multithreading
US7685476B2 (en) 2006-09-12 2010-03-23 International Business Machines Corporation Early notification of error via software interrupt and shared memory write
US7802116B2 (en) 2006-09-27 2010-09-21 Intel Corporation Subsystem power management
US8769168B2 (en) 2006-10-17 2014-07-01 International Business Machines Corporation Method for communicating with a network adapter using a queue data structure and cached address translations
US7590817B2 (en) 2006-10-17 2009-09-15 International Business Machines Corporation Communicating with an I/O device using a queue data structure and pre-translated addresses
US7587575B2 (en) 2006-10-17 2009-09-08 International Business Machines Corporation Communicating with a memory registration enabled adapter using cached address translations
US7617377B2 (en) 2006-10-17 2009-11-10 International Business Machines Corporation Splitting endpoint address translation cache management responsibilities between a device driver and device driver services
US7506084B2 (en) 2006-10-17 2009-03-17 International Business Machines Corporation Method for communicating with an I/O adapter using cached address translations
US7721130B2 (en) * 2006-11-27 2010-05-18 Qimonda Ag Apparatus and method for switching an apparatus to a power saving mode
US7949041B2 (en) 2006-12-05 2011-05-24 Rambus Inc. Methods and circuits for asymmetric distribution of channel equalization between devices
US7681012B2 (en) 2007-01-30 2010-03-16 Texas Instruments Incorporated Method, system and device for handling a memory management fault in a multiple processor device
US8808091B2 (en) 2007-03-15 2014-08-19 Microsoft Corporation Custom message actions
WO2008113168A1 (en) 2007-03-19 2008-09-25 Ati Technologies Ulc Automated compliance testing for video devices
US7761701B2 (en) 2007-03-26 2010-07-20 Intel Corporation Component firmware integration in distributed systems
US8063504B2 (en) 2007-05-07 2011-11-22 Analogix Semiconductor, Inc. Systems and methods for powering circuits for a communications interface
US9041241B2 (en) 2007-05-07 2015-05-26 Analogix Semiconductor, Inc. Systems and methods for powering a charging circuit of a communications interface
US7941682B2 (en) 2007-05-09 2011-05-10 Gainspan, Inc. Optimum power management of system on chip based on tiered states of operation
US20080301148A1 (en) 2007-06-01 2008-12-04 Microsoft Corporation Methods and apparatus relating to server/client sql environments
US7864720B2 (en) * 2007-06-01 2011-01-04 Intel Corporation Power management for wireless devices
KR20090008045A (ko) 2007-07-16 2009-01-21 삼성전자주식회사 디스플레이장치, 호스트 장치 및 그 제어방법
US8095814B2 (en) * 2007-09-26 2012-01-10 International Business Machines Corporation Computing device power management
US7725663B2 (en) 2007-10-31 2010-05-25 Agere Systems Inc. Memory protection system and method
US20090138650A1 (en) 2007-11-26 2009-05-28 Yen-Cheng Lin Method and apparatus for managing firmware of an optical storage apparatus
US20090177847A1 (en) 2008-01-09 2009-07-09 International Business Machines Corporation System and method for handling overflow in hardware transactional memory with locks
US7853731B1 (en) 2008-03-18 2010-12-14 Integrated Device Technology, Inc. System and method for embedded displayport link training
US8706690B2 (en) 2008-05-12 2014-04-22 Blackberry Limited Systems and methods for space management in file systems
US10552384B2 (en) 2008-05-12 2020-02-04 Blackberry Limited Synchronizing media files available from multiple sources
JP5320817B2 (ja) 2008-05-23 2013-10-23 富士通セミコンダクター株式会社 データ送信方法及び送信装置
US7907557B2 (en) * 2008-06-13 2011-03-15 Conexant Systems, Inc. Low power receiving
US20100017655A1 (en) 2008-07-16 2010-01-21 International Business Machines Corporation Error Recovery During Execution Of An Application On A Parallel Computer
US8306174B2 (en) 2008-07-30 2012-11-06 Texas Instruments Incorporated Fractional interpolative timing advance and retard control in a transceiver
US8281056B2 (en) 2008-07-31 2012-10-02 Chevron U.S.A. Inc. System and method of processing data on a peripheral device configured to communicate with a host computing system over a peripheral BUS
US7899941B2 (en) 2008-09-30 2011-03-01 Apple Inc. Displayport I2C speed control
US7801161B2 (en) 2008-10-20 2010-09-21 Broadlight, Ltd. Gigabit passive optical network (GPON) residential gateway
US20100097931A1 (en) 2008-10-21 2010-04-22 Shakeel Mustafa Management of packet flow in a network
US8769257B2 (en) 2008-12-23 2014-07-01 Intel Corporation Method and apparatus for extending transport layer security protocol for power-efficient wireless security processing
WO2010090646A1 (en) * 2009-02-09 2010-08-12 Hewlett-Packard Development Company, L.P. Bios controlled peripheral device port power
US8255725B2 (en) 2009-04-28 2012-08-28 Kabushiki Kaisha Toshiba Information processing apparatus and power-saving control method
US9547535B1 (en) 2009-04-30 2017-01-17 Nvidia Corporation Method and system for providing shared memory access to graphics processing unit processes
US8468285B2 (en) 2009-05-18 2013-06-18 Stmicroelectronics, Inc. Operation of video source and sink with toggled hot plug detection
EP2437436B1 (en) * 2009-05-26 2017-11-15 Fujitsu Limited Information processor and method for controlling information processor
JP4986247B2 (ja) 2009-06-02 2012-07-25 株式会社ユビキタス プログラム、制御方法、並びに制御装置
US8611406B2 (en) 2009-06-30 2013-12-17 Lsi Corporation System optimization using soft receiver masking technique
US8230248B2 (en) 2009-07-09 2012-07-24 Xerox Corporation Printer time-out
GB2472050B (en) * 2009-07-22 2013-06-19 Wolfson Microelectronics Plc Power management apparatus and methods
JP5374268B2 (ja) 2009-07-28 2013-12-25 ラピスセミコンダクタ株式会社 情報処理装置
KR20110013867A (ko) 2009-08-04 2011-02-10 삼성전자주식회사 메모리 링크 아키텍쳐에서 플래시 레스 부팅 기능을 갖는 멀티 프로세서 시스템
US8218940B2 (en) 2009-08-28 2012-07-10 Dell Products, Lp System and method for managing multiple independent graphics sources in an information handling system
US8799537B1 (en) 2009-09-25 2014-08-05 Analogix Semiconductor, Inc. Transfer of uncompressed multimedia contents and data communications
US8402261B2 (en) 2009-10-02 2013-03-19 Ca, Inc. System and method providing a pluggable architecture for task management on computers
CN102576313A (zh) 2009-11-02 2012-07-11 惠普发展公司,有限责任合伙企业 采用分布式嵌入式切换的多处理计算
US9081501B2 (en) 2010-01-08 2015-07-14 International Business Machines Corporation Multi-petascale highly efficient parallel supercomputer
US8582028B2 (en) 2010-04-06 2013-11-12 Synaptics Incorporated Multi-monitor control
US8384559B2 (en) 2010-04-13 2013-02-26 Silicon Laboratories Inc. Sensor device with flexible interface and updatable information store
US8612242B2 (en) 2010-04-16 2013-12-17 St-Ericsson Sa Minimizing speech delay in communication devices
US9781477B2 (en) 2010-05-05 2017-10-03 Cavium, Inc. System and method for low-latency multimedia streaming
KR101603287B1 (ko) * 2010-05-17 2016-03-14 삼성전자주식회사 시스템 온 칩 및 그것의 동작 방법
KR101320075B1 (ko) 2010-06-18 2013-10-18 엘지디스플레이 주식회사 iDP 인터페이스 기반의 픽셀 클럭 복원 방법과 이를 이용한 표시장치
US8656228B2 (en) 2010-06-23 2014-02-18 International Business Machines Corporation Memory error isolation and recovery in a multiprocessor computer system
US8677180B2 (en) 2010-06-23 2014-03-18 International Business Machines Corporation Switch failover control in a multiprocessor computer system
US8635385B2 (en) 2010-07-16 2014-01-21 Advanced Micro Devices, Inc. Mechanism to handle peripheral page faults
US8635412B1 (en) 2010-09-09 2014-01-21 Western Digital Technologies, Inc. Inter-processor communication
US8595414B2 (en) 2010-09-30 2013-11-26 Apple Inc. Selectively combining commands for a system having non-volatile memory
US9098438B2 (en) 2010-09-30 2015-08-04 Texas Instruments Incorporated Synchronized voltage scaling and device calibration
CA2813721A1 (en) * 2010-10-07 2012-04-12 Utc Fire & Security Corporation Low-power, low-latency, end-to-end communication messaging over multi-hop, heterogenous communication networks
US8904190B2 (en) 2010-10-20 2014-12-02 Advanced Micro Devices, Inc. Method and apparatus including architecture for protecting sensitive code and data
JP5597104B2 (ja) 2010-11-16 2014-10-01 キヤノン株式会社 データ転送装置及びその制御方法
US8774724B2 (en) 2010-11-17 2014-07-08 Aviat U.S., Inc. Systems and methods of backhaul optimization
US8966222B2 (en) 2010-12-15 2015-02-24 Microsoft Corporation Message passing in a cluster-on-chip computing environment
US8819386B1 (en) 2011-01-25 2014-08-26 Emc Corporation Memory efficient use of dynamic data structures used to manage sparsely accessed data
UA109312C2 (uk) 2011-03-04 2015-08-10 Імпульсно-кодова модуляція з квантуванням при кодуванні відеоінформації
US9262181B2 (en) 2011-05-10 2016-02-16 International Business Machines Corporation Process grouping for improved cache and memory affinity
KR101749583B1 (ko) 2011-05-30 2017-06-21 삼성전자주식회사 시간차 가산기, 시간차 누산기, 시그마-델타 타임 디지털 변환기, 디지털 위상 고정 루프 및 온도 센서
US9009382B2 (en) 2011-06-24 2015-04-14 Maxim Integrated Products, Inc. USB hubs with galvanic isolation
US8832331B2 (en) 2011-08-29 2014-09-09 Ati Technologies Ulc Data modification for device communication channel packets
US8831161B2 (en) 2011-08-31 2014-09-09 Apple Inc. Methods and apparatus for low power audio visual interface interoperability
US20130057567A1 (en) 2011-09-07 2013-03-07 Michael Frank Color Space Conversion for Mirror Mode
US8848809B2 (en) 2011-10-14 2014-09-30 Apple, Inc. Methods and apparatus for low power audio visual interface calibration
US9152580B1 (en) 2011-10-27 2015-10-06 Marvell International Ltd. Method and apparatus for transferring data between a host and an embedded device
US9471121B2 (en) * 2011-11-14 2016-10-18 Texas Instruments Incorporated Microprocessor based power management system architecture
US8719464B2 (en) 2011-11-30 2014-05-06 Advanced Micro Device, Inc. Efficient memory and resource management
US10368108B2 (en) 2011-12-21 2019-07-30 Ati Technologies Ulc Downstream video composition
JP5722264B2 (ja) 2012-03-23 2015-05-20 株式会社日立ハイテクノロジーズ データ処理装置、データ容量増加抑制方法
CN103377061A (zh) 2012-04-27 2013-10-30 鸿富锦精密工业(深圳)有限公司 固件更新管理系统及方法
JP5962210B2 (ja) 2012-05-25 2016-08-03 富士通株式会社 マルチプロセッサシステム、及びプロセッサ間通信方法
EP2856692A4 (en) 2012-05-31 2016-01-06 Intel Corp SYNCHRONIZATION OF DATA INTERFACE
US9978156B2 (en) 2012-10-03 2018-05-22 Avago Technologies General Ip (Singapore) Pte. Ltd. High-throughput image and video compression
US9141162B2 (en) 2012-10-05 2015-09-22 Intel Corporation Apparatus, system and method for gated power delivery to an I/O interface
US9298642B2 (en) 2012-11-01 2016-03-29 Mellanox Technologies Ltd. Sharing address translation between CPU and peripheral devices
US9063891B2 (en) 2012-12-19 2015-06-23 Advanced Micro Devices, Inc. Secure computer system for preventing access requests to portions of system memory by peripheral devices and/or processor cores
JP6040767B2 (ja) 2012-12-28 2016-12-07 富士通株式会社 配信システム、配信方法、及びプログラム
US9026820B2 (en) * 2012-12-29 2015-05-05 Intel Corporation Communication link and network connectivity management in low power mode
US9594718B2 (en) 2013-01-24 2017-03-14 Qualcomm Innovation Center, Inc. Hardware accelerated communications over a chip-to-chip interface
US9329671B2 (en) 2013-01-29 2016-05-03 Nvidia Corporation Power-efficient inter processor communication scheduling
US8850085B2 (en) 2013-02-26 2014-09-30 Oracle International Corporation Bandwidth aware request throttling
US9363836B2 (en) 2013-04-01 2016-06-07 Silver Spring Networks, Inc. Secure management of radio transmissions in an endpoint device of a network
US10572150B2 (en) 2013-04-30 2020-02-25 Hewlett Packard Enterprise Development Lp Memory network with memory nodes controlling memory accesses in the memory network
EP2997467A1 (en) 2013-06-14 2016-03-23 Huawei Technologies Co., Ltd. Bootstrapping from a remote disk image via a network
JP6194651B2 (ja) 2013-06-17 2017-09-13 富士ゼロックス株式会社 情報処理装置
US9100631B2 (en) 2013-08-05 2015-08-04 Cable Television Laboratories, Inc. Dynamic picture quality control
US9170957B2 (en) 2013-08-29 2015-10-27 Qualcomm Incorporated Distributed dynamic memory management unit (MMU)-based secure inter-processor communication
US10509761B2 (en) 2013-11-14 2019-12-17 Qualcomm Incorporated System and method of sending data via additional secondary data lines on a bus
US10459674B2 (en) 2013-12-10 2019-10-29 Apple Inc. Apparatus and methods for packing and transporting raw data
US9892084B2 (en) 2013-12-10 2018-02-13 Apple Inc. Methods and apparatus for virtual channel allocation via a high speed bus interface
EP3087495A4 (en) 2013-12-23 2017-08-23 Intel Corporation Integrated component interconnect
WO2015100672A1 (zh) 2013-12-31 2015-07-09 华为技术有限公司 一种扩展PCIe总线域的方法和装置
US20150212806A1 (en) 2014-01-29 2015-07-30 Transcend Information, Inc. Initialization method and initializaion system for storage device
JP2015153075A (ja) * 2014-02-13 2015-08-24 富士通株式会社 伝送装置および制御ユニット
US10635316B2 (en) 2014-03-08 2020-04-28 Diamanti, Inc. Methods and systems for data storage using solid state drives
US9769756B1 (en) 2014-03-26 2017-09-19 Amazon Technologies, Inc. Wake-up quotas and statistics generation
US9524052B2 (en) 2014-04-24 2016-12-20 Qualcomm Incorporated Efficient lossless compression for peripheral interface data transfer
US9507726B2 (en) 2014-04-25 2016-11-29 Apple Inc. GPU shared virtual memory working set management
US9460019B2 (en) 2014-06-26 2016-10-04 Intel Corporation Sending packets using optimized PIO write sequences without SFENCEs
US9919958B2 (en) * 2014-07-17 2018-03-20 Corning Incorporated Glass sheet and system and method for making glass sheet
US9632569B2 (en) 2014-08-05 2017-04-25 Qualcomm Incorporated Directed event signaling for multiprocessor systems
US9913305B2 (en) 2014-08-11 2018-03-06 Intel IP Corporation Systems, methods, and devices for congestion control on a mobile network
US9830289B2 (en) 2014-09-16 2017-11-28 Apple Inc. Methods and apparatus for aggregating packet transfer over a virtual bus interface
US9959124B1 (en) 2014-09-26 2018-05-01 Apple Inc. Secure bypass of low-level configuration in reconfiguration of a computing system
US10101797B2 (en) * 2014-09-27 2018-10-16 Intel Corporation Efficient power management of UART interface
US9798377B2 (en) 2014-10-08 2017-10-24 Apple Inc. Methods and apparatus for recovering errors with an inter-processor communication link between independently operable processors
EP3013008B1 (en) 2014-10-23 2019-02-06 Alcatel Lucent Transmitting data traffic in a communication network
US10085224B2 (en) 2014-11-19 2018-09-25 Apple Inc. Methods and apparatus for synchronization of media playback within a wireless network
US9544069B2 (en) 2014-11-21 2017-01-10 Apple Inc. Methods and apparatus for link training, initialization and management via a high speed bus interface
US9910475B2 (en) 2014-12-23 2018-03-06 Intel Corporation Processor core power event tracing
US9753526B2 (en) * 2014-12-23 2017-09-05 Intel Corporation Systems and methods for synergistic software-hardware power budget management
US9667560B2 (en) 2014-12-24 2017-05-30 Nicira, Inc. Flow sequencing
US9842036B2 (en) 2015-02-04 2017-12-12 Apple Inc. Methods and apparatus for controlled recovery of error information between independently operable processors
US9568970B1 (en) * 2015-02-12 2017-02-14 Netspeed Systems, Inc. Hardware and software enabled implementation of power profile management instructions in system on chip
US20160363986A1 (en) * 2015-06-09 2016-12-15 Samsung Electronics Co., Ltd. Fast link wake-up in serial-based io fabrics
US9785732B2 (en) * 2015-06-12 2017-10-10 Netspeed Systems, Inc. Verification low power collateral generation
US10042794B2 (en) 2015-06-12 2018-08-07 Apple Inc. Methods and apparatus for synchronizing uplink and downlink transactions on an inter-device communication link
US9753486B2 (en) 2015-06-15 2017-09-05 University Of Utah Research Foundation Clock gating with an asynchronous wrapper cell
US9628211B1 (en) 2015-06-19 2017-04-18 Amazon Technologies, Inc. Clock generation with non-integer clock dividing ratio
JP6868802B2 (ja) 2015-08-03 2021-05-12 パナソニックIpマネジメント株式会社 送信方法、受信方法、送信装置及び受信装置
US9710045B2 (en) 2015-10-14 2017-07-18 Quanta Computer Inc. Managing network wake-up commands
CN106506393A (zh) 2016-02-05 2017-03-15 华为技术有限公司 一种数据流处理方法、装置和系统
US10572390B2 (en) 2016-02-29 2020-02-25 Apple Inc. Methods and apparatus for loading firmware on demand
US11029748B2 (en) * 2016-03-15 2021-06-08 Qualcomm Incorporated Adaptive peripheral component interconnect express link substate initiation for optimal performance and power savings
US10191859B2 (en) 2016-03-31 2019-01-29 Apple Inc. Memory access protection apparatus and methods for memory mapped access between independently operable processors
US10067870B2 (en) 2016-04-01 2018-09-04 Intel Corporation Apparatus and method for low-overhead synchronous page table updates
US10764781B2 (en) 2016-05-03 2020-09-01 Qualcomm Incorporated Systems and methods for reordering data received from a plurality of radio access technologies (RATs)
US9946325B2 (en) 2016-06-30 2018-04-17 Intel IP Corporation Interprocessor power state transitions
US10452124B2 (en) * 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US10445280B2 (en) * 2016-10-12 2019-10-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. PCIe switch for aggregating a large number of endpoint devices
US10551902B2 (en) 2016-11-10 2020-02-04 Apple Inc. Methods and apparatus for providing access to peripheral sub-system registers
GB2566446B (en) * 2017-09-06 2019-09-25 Advanced Risc Mach Ltd Message handling unit to control passing of messages between power domains in an integrated circuit

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150152A (zh) * 2011-12-06 2013-06-12 广东新岸线计算机系统芯片有限公司 一种移动终端的外设电源管理方法和系统
CN105224059A (zh) * 2014-06-25 2016-01-06 宏碁股份有限公司 远端存取数据的方法以及本地端装置

Also Published As

Publication number Publication date
KR20180052539A (ko) 2018-05-18
EP3321815B1 (en) 2020-10-28
CN108073421A (zh) 2018-05-25
KR102039796B1 (ko) 2019-11-01
JP6487988B2 (ja) 2019-03-20
JP2018081688A (ja) 2018-05-24
US20180129269A1 (en) 2018-05-10
US10775871B2 (en) 2020-09-15
EP3321815A1 (en) 2018-05-16

Similar Documents

Publication Publication Date Title
CN108073421B (zh) 为外围子系统提供个体化电源控制的方法和装置
US11809258B2 (en) Methods and apparatus for providing peripheral sub-system stability
US10684670B2 (en) Methods and apparatus for managing power with an inter-processor communication link between independently operable processors
US9310838B2 (en) Power management method for switching power mode of a computer system based on detection of a human interface device
US6360327B1 (en) System with control registers for managing computer legacy peripheral devices using an advanced configuration power interface software power management system
US6760850B1 (en) Method and apparatus executing power on self test code to enable a wakeup device for a computer system responsive to detecting an AC power source
US7437575B2 (en) Low power mode for device power management
JP5773288B2 (ja) ハイスピードインターチップhsicインタフェースに基づくウェイクアップ方法、ホットスワップ方法、およびデバイス
US20100083013A1 (en) Various Methods and Apparatuses for Power States in a Controller
US20100241889A1 (en) Power management system and method
US10841880B2 (en) Apparatus and methods for wake-limiting with an inter-device communication link
TW201227516A (en) System and method for facilitating wireless communication during a pre-boot phase of a computing device
EP3198363A2 (en) Power management for memory accesses in a system-on-chip
WO2007076644A1 (fr) Systeme informatique portable et procede de reception de paquets de donnees
EP3583506A1 (en) Configuration parameter transfer
US7337338B2 (en) Information handling system capable of operation in reduced power states
JP2001154752A (ja) 携帯型情報処理装置および同装置の状態移行方法
TW201232247A (en) System and method for controlling a server to sleep or awake

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant