CN107408034A - 执行上下文迁移方法和装置 - Google Patents

执行上下文迁移方法和装置 Download PDF

Info

Publication number
CN107408034A
CN107408034A CN201580076833.9A CN201580076833A CN107408034A CN 107408034 A CN107408034 A CN 107408034A CN 201580076833 A CN201580076833 A CN 201580076833A CN 107408034 A CN107408034 A CN 107408034A
Authority
CN
China
Prior art keywords
computing device
portable electric
processor
electric appts
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580076833.9A
Other languages
English (en)
Other versions
CN107408034B (zh
Inventor
V·J·齐默
J·姚
S·加雅库玛
R·C·斯旺森
R·普尔纳查得兰
G·塞尔弗拉杰
M·孙
J·S·霍华德
E·高巴托夫
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN107408034A publication Critical patent/CN107408034A/zh
Application granted granted Critical
Publication of CN107408034B publication Critical patent/CN107408034B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1632External expansion units, e.g. docking stations
    • 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/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
    • 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/46Multiprogramming arrangements
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4893Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues taking into account power or heat criteria
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Abstract

公开了与由计算设备在处理器之间进行的迁移相关联的方法、装置和存储介质。具有内部处理器和内部存储器的便携式电子设备可以附接至扩展坞。所述扩展坞可以包括另一个处理器以及其他存储器。所述扩展坞与所述便携式电子设备的附接可以引起中断。响应于此中断,与所述内部处理器相关联的状态可以复制到所述扩展坞的所述其他存储器。然后,可以使用所述扩展坞的所述另一个处理器执行所述计算设备的指令。

Description

执行上下文迁移方法和装置
背景技术
本文所提供的背景描述是为了一般地呈现本公开的上下文的目的。除非本文另外指出,否则本节中所描述的材料对于本申请的权利要求书而言并非现有技术,并且不因为包括在本节中而被承认是现有技术。
计算设备可以由其组件表征。通常,计算设备可以包括处理器、存储器和存储设备。例如,各种智能电话和平板计算机可以由对移动双倍数据速率(DDR)同步随机存取存储器(RAM)(还被称为低功率DDR或LPDDR)以及超低电压微处理器的使用来表征。这些智能电话可以包括操作系统(OS),例如,来自Computer的iOS或来自的Android,用于支持针对相应智能电话开发的各种应用。
随着中央处理单元(CPU)架构、OS等的发展,计算设备可能难以协调例如具有超低电压微处理器限制的OS的计算能力。尽管超低电压微处理器可以是节约成本且节能的,但是在计算性能方面可能存在一些牺牲。因此,在附加资源可用的一些实例中,计算设备可以受益于这种附加资源(如处理器功率)。
附图说明
本发明的实施例将通过示例性实施例而非限制的方式来进行描述,并在附图中进行说明,在附图中相似的参考标号表示相似的元素,并且在附图中:
图1是框图,根据各个实施例展示了包括本公开的执行上下文迁移教导的示例计算系统。
图2是框图,根据各个实施例展示了具有在扩展坞(dock)与计算设备之间迁移的执行上下文的计算设备。
图3是框图,根据各个实施例展示了结合用于进行处理器之间的执行上下文迁移的执行管理模块的示例计算设备。
图4是流程图,根据各个实施例展示了用于将执行上下文从便携式电子设备迁移到扩展坞的方法。
图5是流程图,根据各个实施例展示了用于将执行上下文从扩展坞迁移到便携式电子设备的方法。
图6是流程图,根据各个实施例展示了用于将执行上下文从便携式电子设备迁移到扩展坞的另一种方法。
图7展示了具有被配置用于实践本公开的实施例的所有或所选方面的指令的示例非暂态计算机可读存储介质。
具体实施方式
将使用本领域技术人员通常采用的用于将他们的工作实质传达给本领域的其他技术人员的术语来描述说明性实施例的各方面。然而,对本领域技术人员将显而易见的是,可以仅利用所描述的方面中的一些方面来实践替代实施例。出于解释的目的,阐述了具体的数字、材料和配置以提供对说明性实施例的深入理解。然而,对本领域技术人员将显而易见的是,可以在没有具体细节的情况下实践替代实施例。在其他实例中,省略或简化了公知的特征以便不模糊说明性实施例。
将各种操作描述为多个离散操作,进而以最有助于理解这些说明性实施例的方式来描述所述各种操作;但是,描述的顺序不应被解释为暗示这些操作必定是与顺序相关的。特别地,这些操作不需要按照所表示的顺序执行。进一步地,将操作描述为分离的操作不应被解释为需要所述操作必须独立执行和/或通过分离的实体执行。将实体和/或模块描述为分离的模块类似地不应被解释为要求这些模块是分离的和/或执行分离的操作。在各个实施例中,所展示和/或所描述的操作、实体、数据和/或模块可以合并、分解为进一步的子组件和/或被省略。
短语“在一个实施例中”或“在实施例中”被反复使用。所述短语一般不指同一实施例;但是也可能指同一实施例。除非上下文另外指出,否则术语“包括(comprising)”、“具有(having)”以及“包括(including)”是同义的。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。短语“A、B和C中的至少一个”表示“(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)”。
图1根据各个实施例展示了包括教导本公开的执行上下文迁移的示例计算系统100。如所示出的,计算系统100包括结合有至少一个处理器的便携式电子设备105以及结合有至少一个附加处理器的扩展坞150(也被称为“底座(base)”)。便携式电子设备105可以是膝上型计算机、平板计算机、智能电话、个人数字助理、游戏控制台、互联网设施或类似的其他便携式电子设备。除了教导本公开的执行上下文迁移之外,便携式电子设备105的示例可以包括但不限于可从德克萨斯州(Texas)奥斯汀市(Austin)的戴尔计算机公司(DellComputer)获得的膝上型计算机、可从加利福尼亚州(CA)库比蒂诺市(Cupertino)的苹果计算机公司(Apple Computer)获得的智能电话和计算平板计算机、可从日本(Japan)东京市(Tokyo)的任天堂公司(Nintendo Corporation)获得的游戏控制台等。
扩展坞150可以是被配置成与便携式电子设备105耦合的任何外部硬件组件,并且还可以被称为“底座”或“扩展站(docking station)”。在各个实施例中,扩展坞150可以包括适用于补充便携式电子设备105的一个或多个组件。例如,可拆卸扩展坞150可以被配置用于向便携式电子设备105提供用户输入,如通过键盘、触控板、麦克风等。除了教导本公开的执行上下文迁移之外,可拆卸扩展坞150的示例可以包括但不限于可从华盛顿州(Washington)雷德蒙德市(Redmond)的微软公司(Microsoft Corporation)、南韩(SouthKorea)首尔(Seoul)三星城(Samsung Town)的三星公司(Samsung)获得的平板计算机的扩展站。
计算系统100可以被配置以使得便携式电子设备105可从扩展坞150中移除,例如以便促进便携式电子设备105的便携性。在实施例中,便携式电子设备105可以被上电并且当扩展坞150与便携式电子设备105耦合和/或解耦和时可以能够执行指令;也即是说,便携式电子设备105和扩展坞150可以被配置用于“热交换”,所述“热交换”可以包括“热移除”或“热插拔”。可以利用对便携式电子设备105的操作的最小中断来完成便携式电子设备105和扩展坞150的热交换。
便携式电子设备105可以包括被配置用于执行便携式电子设备105的指令(如来自操作系统(OS)的指令)的至少一个处理器。便携式电子设备105的所述至少一个处理器可以被适配用于移动应用和/或财政考虑,如相对低功率的处理器(如微处理器)。因此,便携式电子设备105的所述至少一个处理器可以提供便携式电子设备105的可接受功耗和/或总成本,尽管可能以通过其他处理器提供的一些速度和/或效率为代价。
扩展坞150可以包括至少一个附加处理器。在实施例中,扩展坞150的所述至少一个附加处理器相对于便携式电子设备105的所述至少一个处理器可以提供增强的计算能力。这种更高功率处理器可能适用于在扩展坞150中实现,例如,由于扩展坞150的外壳中的附加空间、另一个电池和/或有线电源连接等。
便携式电子设备105可以被配置用于当对接时利用扩展坞150的附加处理器,例如以便提高便携式电子设备105的性能。例如,可靠性、可用性以及可服务性(RAS)可以用于基于CPU热插拔、存储器热插拔、CPU迁移和/或存储器迁移的执行上下文迁移。
在实施例中,便携式电子设备105可以与扩展坞150耦合(例如,通过热交换),并且作为响应,便携式电子设备105的一些操作可以转移至扩展坞150的附加处理器。当便携式电子设备105与扩展坞150解耦和时(例如,通过热移除),便携式电子设备105可以以习惯方式恢复操作(例如,便携式电子设备105的所述至少一个处理器将恢复执行来自便携式电子设备105的OS的指令)。以此方式,便携式电子设备105可以受益于耦合扩展坞150是期望的和/或可行的实例中的附加计算资源,同时当与扩展坞150解耦和时仍然保留便携性和/或功率。
现在转到图2,框图根据各个实施例展示了具有在扩展坞250之间迁移的执行上下文的计算设备205。如图1中所展示的,计算设备205可以是便携式电子设备105的实施例,并且扩展坞250可以是扩展坞150的实施例。
如所示出的,对所展示的实施例而言,计算设备205可以包括至少如所示出的那样彼此耦合的一个或多个处理器210、存储器215、存储设备220、图形处理单元(GPU)222、显示器224、用户界面226、网络接口230和电池228。处理器210可以被配置用于执行从存储器215处加载的执行管理模块214和OS 216的指令。OS 216可以被适配用于移动设备,例如,来自加利福尼亚州库比蒂诺市的苹果计算机公司的iOS或者来自加利福尼亚州芒廷维尤市谷歌公司的Android。
处理器210旨在表示广泛范围的处理器,如具有各种执行速度和功耗的单核处理器或多核处理器。在各个实施例中,计算设备205的处理器210可以被适配成包含在便携式电子设备中,如超低电压处理器或微处理器。处理器210的示例可以是来自美国加利福尼亚州圣克拉拉市(Santa Clara)的Intel公司的Atom CPU。
类似地,存储器215旨在表示具有具备一个或多个高速缓存级别的各种架构以及各种类型(如动态随机存取、闪存等)的存储器。在各个实施例中,存储器215可以包括被适配成包含在便携式电子设备中的存储器。例如,存储器215可以包括用于移动计算机的双倍数据速率同步动态随机存取存储器,所述存储器也可以被称为“移动DDR”、“mDDR”、“低功率DDR”或“LPDDR”。在一些实施例中,可以将处理器210和存储器215(以及附加组件,如GPU222)集成在如片上系统(SoC)中。
在各个实施例中,GPU 222可以被配置用于提供视频解码和/或图形处理功能(例如,针对OS 216),而显示器224可以被配置用于使得能够在其上对内容进行渲染。类似地,GPU 222和显示器224旨在表示本领域已知的广泛范围的图形处理器和显示元件。同样地,存储设备220旨在表示适于包含在便携式电子设备中的任何存储介质。存储设备220的示例包括闪存(例如,NAND闪存)、电可擦除可编程只读存储器(EEPROM)等。存储设备220可以包括可移动存储设备,如安全数字(SD)卡(包括微SD)。
网络接口230可以包括发射电路系统和/或接收电路系统。网络接口230可以被配置用于通过任何数量的不同有线和/或无线网络发射和/或接收数据。相应地,(多个)网络234旨在表示本领域已知的广泛范围的网络。(多个)网络234的示例可包括有线或无线、局域或广域、私有或公共网络,包括互联网。
根据不同的实施例,用户界面226可以允许用户通过各种装置与计算设备205交互——例如,用户界面226可以在显示器224(如图形用户界面)上或通过命令行界面呈现于用户。为了接收用户输入,用户界面226可以被实现在硬件、软件或两者的组合中并且可以包括适用于用户输入(例如,键盘、鼠标、触摸屏或姿势识别)的一个或多个硬件设备或者可以与其通信地耦合。
为了给所展示的组件中的一个或多个供电,计算设备205可以包括电池228。电池228旨在表示适用于给便携式电子设备供电的任何电池。电池228的示例包括锂离子电池、镍金属氢化物电池等。
处理器210可以被配置用于执行从存储器215处加载的OS 216的指令。OS 216可以被适配用于移动设备,例如,来自加利福尼亚州库比蒂诺市的苹果计算机公司的iOS或者来自加利福尼亚州芒廷维尤市谷歌公司的Android。在各个实施例中,OS 216可被配置用于发起执行指令,如,由应用(未示出)所提供的指令。OS 216可以被适配用于跨计算设备205的各组件来执行其他操作,包括线程化、资源管理、数据存储控制以及其他类似功能。
处理器210可以进一步被配置用于执行从存储器215处加载的执行管理模块214的指令。执行管理模块214可以在计算设备205的固件中实现。在各个实施例中,执行管理模块214可以被配置用于处理和/或处置中断——例如,执行管理模块214可以被配置用于基于中断而引起执行代码并且返回正常执行(例如,返回控制OS 216)。
在各个实施例中,执行管理模块214可以与系统管理模式(SMM)相关联。相应地,执行管理模块214可以包括响应于系统管理中断(SMI)而执行的代码。
类似于计算设备205,扩展坞250可以包括多个组件。扩展坞250可以包括至少如所示出的那样耦合的一个或多个处理器255、存储器260、存储设备265以及一个或多个输入设备270。在一个实施例中,扩展坞250可以包括电源并且/或者可以被配置成连接至电源——例如,扩展坞250可以包括被适配成插入传统交流(AC)插座中的电源线。
扩展坞250的处理器255旨在表示广泛范围的处理器,如具有各种执行速度和功耗的单核处理器或多核处理器。在各个实施例中,扩展坞250的处理器255可以适于包含在具有比适用于便携式电子设备的处理器更大的计算能力的计算机系统中。例如,扩展坞250的处理器255可以具有比计算设备205的处理器210更高的性能和/或存储器带宽。处理器255的示例可以是来自来自美国加利福尼亚州圣克拉拉的Intel公司的Intel Core微处理器(例如,Intel Core i7、Intel Core i5、Intel Core i3等)。
类似地,存储器260旨在表示具有具备一个或多个高速缓存级别的各种架构以及各种类型(如动态随机存取、闪存等)的存储器。在各个实施例中,扩展坞250的存储器260可以适于包含在具有比适用于便携式电子设备的处理器更大的计算能力的计算机系统中。例如,存储器260可以包括双倍数据速率第四代同步动态随机存取存储器,所述存储器也被称为“DDR4SDRAM”或简单地“DDR4”。在一些实施例中,可以将处理器255和存储器260(以及附加组件)集成在如SoC中。
存储设备265旨在表示适于包含在扩展坞中具有各种能力的任何存储介质。存储设备265的示例包括闪存(例如,NAND闪存)、电可擦除可编程只读存储器(EEPROM)、硬盘驱动器(HDD)等。同样地,(多个)输入设备270旨在表示被配置用于从用户处接收输入的任何适合的设备。(多个)输入设备270的示例包括键盘、鼠标、触控板、麦克风等。
当计算设备205不与扩展坞250耦合时,计算设备205可以以传统方式操作——例如,计算设备205的处理器210可以执行可以从存储器215处加载的OS 216的指令,数据可以从存储设备220中访问和/或写入其中,以及其他类似操作。
计算设备205可以与扩展坞250耦合,如通过热插拔202。此热插拔202可以影响执行上下文的至少一部分从计算设备205迁移到扩展坞250。例如,扩展坞250的处理器255和存储器260可以加载并执行来自OS 216的指令,这可以提供除了可从计算设备205的处理器210和/或存储器215处获得的性能和/或存储器带宽之外的更高的性能和/或存储器带宽。
在实施例中,热插拔202可以使得生成中断,例如,SMI。此中断可以由计算设备205的硬件和/或固件如通过基本输入/输出(BIOS)生成。
响应于所述中断,执行管理模块214可以使得扩展坞250的处理器255被初始化。此后,执行管理模块214可以将与计算设备205的处理器210相关联的状态的至少一部分从存储器215复制到扩展坞250的存储器260。
在各个实施例中,中断可以使计算设备205进入SMM,从而使得可以执行执行管理模块214。在SMM中,可以暂停计算设备205的一些操作,如与OS 216相关联的操作。处理器210的状态可以存储在存储器215的RAM中,并且,在SMM中,执行管理模块214可以将处理器210的状态复制到扩展坞250的存储器260中的RAM的部分。
此外,执行管理模块214可以使存储在计算设备205的存储器215中的其他数据被复制到扩展坞250的存储器260。此其他数据可以包括例如将由处理器执行的指令,如来自OS 216的指令和/或高速缓存存储器中的其他数据。进一步地,执行管理模块214可以将与计算设备205的存储器215相关联的一个或多个存储器组切换到与扩展坞250的存储器260相关联的一个或多个存储器组。结合对存储器组的这种切换,执行管理模块214可以将地址映射从与计算设备205的存储器215相关联的存储器组切换到与扩展坞250的存储器260相关联的一个或多个存储器组。
相应地,计算设备205当与扩展坞250耦合时可以使扩展坞250的处理器255和存储器260对其可用。在实施例中,执行管理模块214可以更新与OS 216相关联的数据来反映此可用性。例如,可以编辑一个或多个高级配置和电源接口(ACPI)表,以便指示比将计算设备205与扩展坞250耦合之前更高的P状态(即,处理器性能状态)。也就是说,执行管理模块214可以使得向OS 216通知与扩展坞250的处理器255相称的P状态而不是与计算设备205的处理器210相称的P状态。因此,OS 216可以观察到对存储器260的更快速访问,而OS 216可以将所述更快速访问推断为更高的P状态的影响。
在一些实施例中,扩展坞250可以包括薄执行管理模块262,所述薄执行管理模块可以依赖于执行管理模块214来完成各种操作。计算设备205可以在执行上下文迁移期间将此薄执行管理模块262复制到扩展坞的存储器260。薄执行管理模块262可以与计算设备205的执行管理模块214合作,例如以便将指令和/或处理器状态复制到扩展坞250的处理器260,并且引起使用扩展坞250的处理器255执行指令。
在实施例中,这种由执行管理模块214将处理器状态和存储器从计算设备205迁移到扩展坞250可以对OS 216是透明的。例如,当此迁移发生时,OS 216和/或其他应用可以继续操作,即使在迁移期间暂停正常执行。
在各个实施例中,执行管理模块214可以使扩展坞250的存储设备265像可移动存储设备那样对OS 216可见。将存储设备265呈现为可移动的可以防止由于计算设备205与扩展坞250的解耦和引起的数据损坏和/或丢失。在另一个实施例中,扩展坞250的存储设备265可以用作存储设备的高速缓存。扩展坞250的(多个)输入设备270可以由计算设备205以任何已知方式利用。在各个实施例中,(多个)输入设备270可以用于从代替用户界面226或与其合作的用户处接收输入。
为了使用扩展坞250的处理器255和存储器260来恢复正常操作,执行管理模块214可以使得生成另一个中断。此中断的示例可以是系统控制中断(SCI)。此另一个中断可以是对OS 216可见的中断,并且可以使OS 216重新评估硬件能力,如处理器性能和/或存储器带宽。在各个实施例中,OS 216可以发出CPUID操作码来确定处理器类型和存储器能力。响应于CPUID请求,执行管理模块214可以向OS 216指示扩展坞250的处理器255和存储器260的资源对计算设备205可用。然而,此指示可以包括对计算设备205的处理器210的标识,从而使得OS 216好像在计算设备205的处理器210上执行一样遵循操作,但使用可从扩展坞250的处理器255和存储器260处获得的资源。
因为计算设备205的执行可以利用扩展坞250的处理器255和存储器260,所以计算设备205的处理器210和/或存储器215可以转变成低功率状态。例如,执行管理模块214可以将计算设备205的处理器210置于更深度的C状态(即,处理器操作状态),如C1到C9。此外,执行管理模块214可以减少对存储器215的一个或多个存储器组的功率。然而,处理器210的至少一个核可以与此迁移过程的管理相关联,并且可以保持活跃。例如,处理器210的至少一个核可以专用于对执行管理模块214的执行,并且因此可以保持活跃。
在各个实施例中,从计算设备205到扩展坞250的迁移可以视计算设备205对扩展坞250的验证而定。例如,执行管理模块214可以向扩展坞250发出质询并接收响应。执行管理模块214可以基于响应判定扩展坞250是否被验证用于执行指令(例如,OS 216的指令)。在各个实施例中,质询可以包括对扩展坞250的指令架构固件映像的密码验证、对扩展坞250上的固定令牌(例如,可信平台模块、无线云元件等)的验证、或另一种质询-响应验证技术。
在各个实施例中,计算设备205的处理器210的至少一个核可以与对安全或可信操作的执行相关联。这种安全操作可能不适合处理器之间的迁移——例如,安全进程可能不可阻挡地与处理器(安全进程在所述处理器上开始)相关联。例如,与处理器210相关联的一系列安全指令可以由OS 216(或另一个应用)用来保留代码和/或数据的私有区域,以便保护敏感数据、防止对代码的未授权访问等。安全操作的示例包括由美国加利福尼亚州圣克拉拉的Intel公司定义的软件防护扩展(SGX)、守护进程(例如,初始化进程)等。包括安全操作的进程可以由计算设备205的处理器210执行,并且不迁移到扩展坞250的处理器255。
在扩展坞250的处理器255上的进程执行一个或多个安全操作的事件中,一个或多个安全操作可以被执行管理模块214捕获,并且发送至计算设备205的处理器210进行执行。在实施例中,当扩展坞250的处理器255尝试执行安全操作时,可以生成中断(例如,SMI),并且响应于所述中断,执行管理模块214可以使安全操作发送至计算设备205的处理器210。在执行计算设备205的处理器210上的安全操作之后,可以使用扩展坞的处理器255恢复正常操作。
计算设备205在与扩展坞250耦合的同时可以被引导。在这种实施例中,如所描述的,对操作的执行可以由扩展坞250的处理器255和存储器260进行。然而,在实施例中,计算设备205可以引导到其自身的处理器210中,例如,从而使得安全操作、守护进程等继续在计算设备205的处理器210的至少一个核上执行。因此,在解耦和事件中,这些安全操作、守护进程等不与计算设备205分离,并且计算设备205可以继续操作。
类似于热插拔202,计算设备205可以与扩展坞250解耦合,如通过热移除204。此热移除204可以影响执行上下文的至少一部分从扩展坞250迁移到计算设备205。例如,计算设备205的处理器210可以从由存储器215处加载的OS 216处恢复执行指令。
在实施例中,热移除204可以使得生成中断,例如,SMI。此中断可以由计算设备205的硬件和/或固件如通过基本输入/输出(BIOS)生成。
响应于所述中断,执行管理模块214可以引起初始化计算设备205的处理器210。如所描述的,处理器210的至少一个核可以是活跃的,即使在上下文已经迁移到扩展坞250的情况下,并且因此,初始化处理器210可以包括初始化可能已经不活跃和/或处于低功率状态的另一个核。此后,执行管理模块214可以将与扩展坞250的处理器255相关联的状态的至少一部分从存储器260复制到计算设备205的存储器215。类似于热插拔202,基于热移除204而生成的中断可以使计算设备205进入SMM。在SMM中,可以暂停计算设备205的一些操作,如与OS 216相关联的操作。处理器255的状态可以存储在存储器260的RAM中,并且,在SMM中,执行管理模块214可以将所述状态复制到计算设备205的存储器215中的RAM的部分。
此外,执行管理模块214可以将存储在扩展坞250的存储器260中的其他数据复制到计算设备205的存储器215。此其他数据可以包括例如将由处理器执行的指令,如来自OS216的指令和/或高速缓存存储器中的其他数据。此外,执行管理模块214可以将与扩展坞250的存储器260相关联的一个或多个存储器组切换到与计算设备205的存储器215相关联的一个或多个存储器组。结合对存储器组的这种切换,执行管理模块214可以将地址映射从与扩展坞250的存储器260相关联的存储器组切换到与计算设备205的存储器215相关联的一个或多个存储器组。
因此,计算设备205当通过热移除204与扩展坞250解耦和时可以仅使其自身的处理器210和存储器215对其可用。在实施例中,执行管理模块214可以更新与OS 216相关联的数据来反映此可用性。例如,可以编辑一个或多个ACPI表,以便指示比将计算设备205与扩展坞250解耦合之前更低的P状态。也就是说,执行管理模块214可以向OS 216通知与计算设备205的处理器210相称的P状态而不是与扩展坞250的处理器255相称的P状态。
在实施例中,这种由执行管理模块214将处理器状态和存储器从扩展坞250迁移到计算设备205可以对OS 216是透明的。例如,当此迁移发生时,OS 216和/或其他应用可以继续操作,即使在迁移期间暂停正常执行。同样结合热移除204,OS 216可以接收对扩展坞250的存储设备265和(多个)输入设备270由于移除而不可用的指示。相应地,计算设备205可以恢复对其自身的存储设备220和用户界面226的使用。
为了在热移除204之后恢复正常操作,执行管理模块214可以使得生成另一个中断(例如,SCI)。此另一个中断可以是对OS 216可见的中断,并且可以使OS 216重新评估硬件能力,如处理器性能和/或存储器带宽。在各个实施例中,OS 216可以发出CPUID操作码来确定处理器类型和存储器能力。响应于CPUID请求,执行管理模块214可以使用与处理器210和/或存储器215相对应的信息来响应OS 216。
现在参照图3,框图根据本公开的各个实施例展示了结合用于进行处理器之间的执行上下文迁移的执行管理模块320的示例计算设备300。关于图1中所描述的实施例,计算设备300可以是便携式电子设备105的实施例。
计算设备300的OS 302可以包括CPU驱动器304、存储器驱动器306和ACPI驱动器308或者可以与其通信地耦合。CPU驱动器304可以操作、控制和/或提供到CPU设备314的接口。存储器驱动器306可以操作、控制和/或提供到存储器设备316的接口。ACPI驱动器308可以操作、控制和/或提供到SCI/通用事件(GPE)处置程序318的接口。
计算设备300的指令架构(IA)固件310可以包括持久性存储器以及与对计算设备300的控制相关联的代码。在一个实施例中,IA固件310可以是架构固件。在实施例中,IA固件310可以包括ACPI层312。ACPI层312可以与计算设备300中的设备(如CPU设备314、存储器设备316和/或SCI/GPE处置程序318)的功率控制和配置相关联。
IA固件310可以进一步包括执行管理模块320。在各个实施例中,执行管理模块可以包括与SMM相关联的代码和数据。此代码和数据可以包括热交换处置程序328、CPU初始化和迁移模块322、存储器初始化和迁移模块326以及SCI发生器324。在实施例中,计算设备300的硬件330可以被配置用于响应于组件(例如,扩展坞)的热交换而生成中断336(例如,SMI)。
在实施例中,计算设备300的变化影响硬件330(如具有另一个处理器和存储器的外部组件(未示出)的热交换)可以使得生成中断336(例如,SMI)。中断可以由热交换处置程序328检测并处置。作为响应,热交换处置程序328可以使得执行CPU初始化和迁移模块322。对热插拔而言,CPU初始化和迁移模块322可以初始化外部组件的处理器。对热移除而言,CPU初始化和迁移模块322可以初始化与CPU设备314相关联的核。
类似地,热交换处置程序328可以使得响应于所述中断而执行存储器初始化和迁移模块326。对热插拔而言,存储器初始化和迁移模块326可以初始化外部组件的存储器。对热移除而言,CPU初始化和迁移模块322可以初始化与存储器设备316相关联的存储器。
在处理器初始化之后,CPU初始化和迁移模块322可以将与处理器相关联的状态的至少一部分在与存储器设备316相关联的存储器与外部组件的存储器之间迁移。对热插拔而言,CPU初始化和迁移模块322可以将与CPU设备314相关联的状态的至少一部分从与存储器设备316相关联的存储器复制到外部组件的存储器。对热移除而言,CPU初始化和迁移模块322可以将与外部组件的处理器相关联的状态的至少一部分从外部组件的存储器复制到与存储器设备316相关联的存储器。
在存储器初始化之后,CPU初始化和迁移模块322可以在与存储器设备316相关联的存储器与外部组件之间迁移数据(例如,待执行的指令、高速缓存数据以及其他数据)。对热插拔而言,CPU初始化和迁移模块322可以将数据从与存储器设备316相关联的存储器复制到外部组件的存储器。对热移除而言,CPU初始化和迁移模块322可以将数据从外部组件的存储器复制到与存储器设备316相关联的存储器。
结合此执行上下文迁移,热交换处置程序328可以使SCI发生器324生成OS可见中断(例如,SCI)。此OS可见中断可以由ACPI驱动器308检测。响应于检测到的中断,ACPI驱动器308可以调用SCI/GPE处置程序318。SCI/GPE处置程序318可以发出通知操作(例如,通知(CPUx,0x80))来通知OS电源管理(OSPM)OS 302将重新评估对计算设备300可用的处理器和/或存储器。
作为响应,OSPM可以发出请求来确定对计算设备可用的处理器性能和/或存储器带宽。例如,OSPM可以请求CPUID操作。在实施例中,OSPM可以遵循对性能呈现能力(_PPC)方法的ACPI规范来请求更新的性能指示,如指示对OS 302可用的P状态。此请求的示例可以包括ACPI代码:
执行管理模块320可以从OSPM处接收此请求并且使用对可用处理器的处理器性能和/或存储器带宽的指示进行响应,例如从而使得ACPI表和/或其他性能策略可以被更新用于反映处理器和/或存储器能力(例如,P状态)。
对热插拔而言,执行管理模块320可以使用对可从外部组件的处理器处获得的处理器性能和/或存储器带宽的指示进行响应。然而,此指示可以包括与CPU设备314相关联的标识。因此,迁移到外部组件的处理器可以对OS 302是透明的(例如,OS 302可能未意识到迁移到新硬件)。因此,OS 302可能未意识到例如由ACPI或DIG64规范限定的RAS流;而是,OS302可能仅意识到处理器性能和/或存储器带宽(例如,P状态)。
对热移除而言,执行管理模块320可以使用对与CPU设备314和/或存储器设备316相关联的性能和/或存储器的指示进行响应,这可以与计算设备300的传统操作相对应。
现在参照图4,流程图根据本公开的各个实施例展示了用于将执行上下文从便携式电子设备(T)迁移到扩展坞(D)的方法400。方法400可以在本公开中所描述的一个或多个计算系统中实践,如图1至图3的计算系统100、200和300。尽管方法400展示了多个顺序操作,但是普通技术人员将认识到方法400的一个或多个操作可以被省略和/或颠倒顺序。
以操作405开始,方法400可以包括在便携式电子设备内生成SMI。可以响应于将扩展坞与便携式电子设备耦合而生成SMI。在操作410处,方法400可以包括使便携式电子设备的所有CPU进入SMI状态,这可以影响便携式电子设备中的SMM。操作415可以包括初始化扩展坞的CPU。此操作415可以由例如SMI处置程序执行,所述SMI处置程序可以是便携式电子设备的执行管理模块的元件。
此后,可以开始CPU上下文迁移。首先,操作420可以包括将与便携式电子设备相关联的处理器状态(T-CPU SmmState)的至少一部分复制到扩展坞的与处理器状态(D-CPUSmmState)相关联的存储器。在实施例中,此操作420可以包括将存储在便携式电子设备的系统管理RAM(例如,与处理器相关联的LPDDR)中的T-CPU SMMState复制到扩展坞的系统管理RAM(例如,与处理器相关联的DDR4)。其次,操作425可以包括将便携式电子设备的处理器(T-CPU)转变成更深度的C状态(即,处理器操作状态),如C1至C9。然而,便携式电子设备的处理器的至少一个核可以保持活跃,以便控制执行上下文迁移和/或执行安全操作。
类似地,可以执行存储器上下文迁移。在操作430处,方法400可以包括将便携式电子设备的存储器(T-存储器)复制到扩展坞的存储器(D-存储器)。此操作430可以包括将RAM存储器从便携式电子设备复制到扩展坞。
操作435可以包括将存储器组和相关联的地址映射从便携式电子设备的存储器切换到扩展坞的存储器。例如,便携式电子设备的存储器可以是0G~1G,并且扩展坞的存储器可以是1G~2G,并且,在操作435处,可以切换便携式电子设备的存储器组以便将便携式电子设备的存储器映射到1G~2G,并且将扩展坞的存储器映射到0G~1G,从而使得当正常操作恢复时,便携式电子设备的OS可以使用扩展坞的存储器代替便携式电子设备的存储器。
在操作440处,方法400可以包括将便携式电子设备的一个或多个存储器组转变成低功率状态。然而,便携式电子设备的存储器的至少一部分可以保持活跃,例如以便捕获安全操作并将那些安全操作发送至便携式电子设备的CPU,并且/或者动态地存储处理器状态的副本和/或与扩展坞相关联的指令进而在热移除事件的情况下恢复上下文。为了恢复正常操作,操作445可以包括生成SCI。SCI可以由SMI处置程序(或执行管理模块的其他组件)生成,并且可以使便携式电子设备的OS重新评估处理器性能和/或存储器带宽。在各个实施例中,SCI可以引起使用扩展坞的CPU恢复执行。
现在转到图5,流程图根据本公开的各个实施例展示了用于将执行上下文从扩展坞(D)迁移到便携式电子设备(T)的方法500。方法500可以在本公开中所描述的一个或多个计算系统中实践,如图1的计算系统100。尽管方法500展示了多个顺序操作,但是普通技术人员将认识到方法500的一个或多个操作可以被省略和/或颠倒顺序。
以操作505开始,方法500可以包括在便携式电子设备内生成SMI。可以响应于将扩展坞与便携式电子设备解耦合而生成SMI。在操作510处,方法500可以包括使便携式电子设备的所有CPU进入SMI状态,这可以影响便携式电子设备中的SMM。操作515可以包括重新初始化便携式电子设备的CPU(T-CPU)。因为便携式电子设备的CPU的至少一个核可以是活跃的,所以此操作515可以包括激活CPU的先前不活跃核。此操作515可以由SMI处置程序执行,所述SMI处置程序可以是执行管理模块的元件。
此后,可以开始CPU上下文迁移。首先,操作520可以包括将与扩展坞相关联的处理器状态(D-CPU SmmState)的至少一部分复制到便携式电子设备的与处理器状态(T-CPUSmmState)相关联的存储器。在实施例中,便携式电子设备的存储器的至少一部分可以保持活跃并且具有存储在其中的执行上下文(例如,处理器状态和/或待执行的指令)。例如,此操作520可以包括将动态地存储在便携式电子设备的RAM中的D-CPU SMMState复制到便携式电子设备的系统管理RAM(例如,与处理器相关联的LPDDR),以便使用便携式电子设备的CPU恢复便携式电子设备的操作。
类似地,可以执行存储器上下文迁移。在操作530处,方法500可以包括对便携式电子设备的一个或多个存储器组(T-存储器)进行初始化或供电。此后,操作535可以包括将扩展坞的存储器(D-存储器)复制到便携式电子设备的存储器(T-存储器)。此操作535可以包括将与扩展坞相关联的RAM存储器复制到便携式电子设备。在实施例中,便携式电子设备的存储器的至少一部分可以保持活跃并且具有存储在其中的来自扩展坞的RAM存储器的副本(例如,待执行的指令和/或其他上下文数据)。例如,此操作535可以包括加载与扩展坞的DDR4相关联的存储器以及便携式电子设备的动态存储的RAM,以便使用便携式电子设备的CPU恢复便携式电子设备的操作。
操作540可以包括将存储器组和相关联的地址映射从扩展坞的存储器切换到便携式电子设备的存储器。例如,便携式电子设备的存储器可以是1G~2G,并且扩展坞的存储器可以是0G~1G,并且,在操作540处,可以切换便携式电子设备的存储器组以便将便携式电子设备的存储器映射到0G~1G,并且将扩展坞的存储器映射到1G~2G(或者移除扩展坞的存储器的映射),从而使得当正常操作恢复时,便携式电子设备的OS可以使用便携式电子设备的存储器。
为了恢复正常操作,操作550可以包括生成SCI。SCI可以由SMI处置程序(或执行管理模块的其他组件)生成,并且可以使便携式电子设备的OS重新评估处理器性能和/或存储器带宽。
现在参照图6,流程图根据本公开的各个实施例展示了用于将执行上下文在便携式电子设备与扩展坞之间迁移的另一种方法600。方法600可以在本公开中所描述的一个或多个计算系统中实践,如图1至图3的计算系统100、200和300。尽管方法600展示了多个顺序操作,但是普通技术人员将认识到方法600的一个或多个操作可以被省略和/或颠倒顺序。
方法600可以开始于操作605,用于由便携式电子设备接收与将便携式电子设备与扩展坞耦合相关联的中断。在实施例中,扩展坞可以具有至少一个处理器以及与所述至少一个处理器耦合的物理存储器。此后,操作610可以包括由所述便携式电子设备基于接收到所述中断来激活所述至少一个扩展坞处理器。
在操作615中,方法600可以包括由所述便携式电子设备基于接收到所述中断将与所述便携式电子设备的第一处理器相关联的处理器状态从所述便携式电子设备的第一物理存储器加载到所述扩展坞物理存储器。
最后,方法600可以包括操作620,用于由便携式电子设备引起使用扩展坞的至少一个处理器来执行便携式电子设备的指令。
图7根据本公开的各个实施例展示了具有被配置用于实践图4、图5和/或图6的方法的所有或所选方面的指令的示例非暂态计算机可读存储介质。如所展示的,非暂态计算机可读存储介质702可以包括多个编程指令704。编程指令704可被配置用于使计算系统(例如,计算设备100)能够响应于编程指令的执行来执行之前参照图4所描述的方法400的操作、之前参照图5所描述的方法500的操作和/或之前参照图6所描述的方法600的操作的所有或所选方面。现在返回至图1,编程指令704可以被配置用于使计算系统能够执行关于计算系统100而描述的所有或所选特征。现在返回至图2,编程指令704可以被配置用于使计算系统能够执行关于执行管理模块214而描述的所有或所选特征。现在返回至图3,编程指令704可以被配置用于使计算系统能够执行关于执行管理模块320而描述的所有或所选特征。在替代实施例中,编程指令704可被布置在多个非暂态计算机可读存储介质702上。
在各个实施例中,示例1可以是一种具有执行上下文迁移的计算设备,所述计算设备包括:一个或多个第一处理器;第一物理存储器,与所述一个或多个处理器耦合,所述第一物理存储器用于存储将要加载到所述物理存储器中以便由所述一个或多个处理器执行的操作系统;以及执行管理模块,用于被加载到所述物理存储器中并且由所述一个或多个处理器操作,以便:检测与将硬件组件和所述计算设备耦合相关联的中断,所述硬件组件具有一个或多个附加处理器以及与所述一个或多个附加处理器耦合的附加物理存储器;基于检测到的中断而初始化所述一个或多个附加处理器;以及基于所述检测到的中断而将与所述一个或多个第一处理器相关联的状态的至少一部分从所述第一物理存储器复制到所述附加物理存储器。示例2可以包括如示例1所述的计算设备,其中,所述计算设备是便携式电子设备。示例3可以包括如示例1所述的计算设备,其中,所述一个或多个第一处理器相对于所述一个或多个附加处理器在操作期间消耗更少功率。示例4可以包括如示例1所述的计算设备,其中,所述硬件组件包括底座,所述底座被适配用于使所述计算设备与所述底座对接。示例5可以包括如示例1所述的计算设备,其中,所述第一物理存储器包括第一双倍数据速率(DDR)同步动态随机存取存储器(SDRAM),并且所述附加物理存储器包括附加DDRSDRAM。示例6可以包括如示例1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:基于所述检测到的中断而将一条或多条指令从所述第一物理存储器复制到所述附加物理存储器。示例7可以包括如示例1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:将与所述第一物理存储器相关联的一个或多个第一存储器组切换到与所述附加物理存储器相关联的一个或多个附加存储器组;以及将地址映射从所述一个或多个第一存储器组切换到所述一个或多个附加存储器组。示例8可以包括如示例1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:使所述一个或多个第一处理器和所述第一物理存储器中的至少一个转变成低功率状态。示例9可以包括如示例8所述的计算设备,其中,所述执行管理模块进一步用于:检测来自所述操作系统的CPUID请求;以及使用对所述一个或多个第一处理器的第一指示以及对通过所述一个或多个附加处理器可用的资源的第二指示来响应所述CPUID请求。示例10可以包括如示例1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:检测与将所述硬件组件与所述计算设备解耦和相关联的中断;基于检测到的其他中断而初始化所述一个或多个第一处理器;以及基于所述检测到的其他中断而将与所述一个或多个附加处理器相关联的状态的至少一部分从所述附加物理存储器复制到所述第一物理存储器。示例11可以包括如示例1至5中任一项所述的计算设备,其中,执行管理模块进一步用于:使与可信执行上下文相关联的一条或多条指令仅加载到所述第一物理存储器中并且仅由所述第一一个或多个处理器执行。示例12可以包括如示例1至5中任一项所述的计算设备,其中,所述一个或多个第一处理器包括与系统管理模式的执行相关联的至少一个核,并且与系统管理模式的执行相关联的所述至少一个核用于操作所述执行管理模块。
在各个实施例中,示例13可以是一种用于迁移与便携式电子设备相关联的执行上下文的计算机实现的方法,所述计算机实现的方法包括:由所述便携式电子设备接收与将所述便携式电子设备与扩展坞耦合相关联的中断,所述扩展坞具有至少一个处理器以及与所述至少一个处理器耦合的物理存储器;由所述便携式电子设备基于接收到所述中断来激活所述至少一个扩展坞处理器;由所述便携式电子设备基于接收到所述中断将与所述便携式电子设备的第一处理器相关联的处理器状态从所述便携式电子设备的第一物理存储器加载到所述扩展坞物理存储器;以及由所述便携式电子设备引起使用所述至少一个扩展坞处理器来执行所述便携式电子设备的指令。示例14可以包括如示例13所述的计算机实现的方法,其中,所述便携式电子设备是平板计算机或智能电话。示例15可以包括如示例13所述的计算机实现的方法,进一步包括:由所述便携式电子设备检测一条或多条安全模式指令;以及由所述便携式电子设备使用所述便携式电子设备的所述第一处理器执行所述一条或多条安全模式指令。示例16可以包括如示例15所述的计算机实现的方法,进一步包括:由所述便携式电子设备基于检测到所述一条或多条安全模式指令而引起系统管理中断;以及由所述便携式电子设备基于所述系统管理中断而从所述至少一个扩展坞处理器切换到所述第一处理器。示例17可以包括如示例13所述的计算机实现的方法,进一步包括:由所述便携式电子设备发出对所述扩展坞的质询;由所述便携式电子设备接收对所述质询的响应;以及由所述便携式电子设备基于所述响应来确定所述扩展坞被验证用于执行所述一条或多条指令。示例18可以包括如示例13至17中任一项所述的计算机实现的方法,进一步包括:由所述便携式电子设备将与所述第一物理存储器相关联的第一存储器组交换到与所述扩展坞物理存储器相关联的第二存储器组;以及由所述便携式电子设备基于所述交换将一个或多个地址映射从所述第一存储器组更新到所述第二存储器组。示例19可以包括如示例13至17中任一项所述的计算机实现的存储器,进一步包括:由所述便携式电子设备从所述便携式电子设备的操作系统处接收CPUID指令;以及由所述便携式电子设备基于激活所述至少一个扩展坞处理器来响应所述CPUID指令。示例20可以包括如示例13至17中任一项所述的计算机实现的方法,进一步包括:由所述便携式电子设备基于激活所述至少一个扩展坞处理器来更新与所述便携式电子设备的操作系统相关联的一个或多个高级配置和电源接口(ACPI)表。
在各个实施例中,示例21可以是一种或多种非暂态计算机系统可读介质,包括计算设备可执行指令,其中,响应于所述指令由计算设备执行而使所述计算设备:处理与外部组件的脱离相关联的中断,所述外部组件包括另一个处理器以及与所述另一个处理器耦合的另一个存储器;基于所述中断初始化所述计算设备的内部处理器;基于所述中断将与所述另一个处理器相关联的状态的至少一部分从所述另一个存储器复制到所述计算设备的内部存储器;以及至少部分地基于所述内部存储器中的所述状态来引起使用所述计算设备的所述内部处理器执行指令。示例22可以包括如示例21所述的一种或多种非暂态计算机系统可读介质,其中,所述计算设备是被适配用于与所述外部组件对接的智能电话或平板计算机。示例23可以包括如示例21所述的一种或多种非暂态计算机系统可读介质,其中,所述中断包括系统管理中断。示例24可以包括如示例21至23中任一项所述的一种或多种非暂态计算机系统可读介质,其中,所述指令进一步使所述计算设备:检测与所述外部组件的附接相关联的另一个中断;基于所述另一个中断将与所述内部处理器相关联的第二状态的至少一部分从所述内部存储器复制到所述另一个存储器;以及引起使用所述另一个处理器执行指令。示例25可以包括如示例24所述的一种或多种非暂态计算机系统可读介质,其中,在检测到所述另一个中断之后,所述指令进一步使所述计算设备:从所述计算设备的操作系统接收CPUID指令;以及使用对所述内部处理器的标识以及所述另一个处理器的能力指示来响应所述操作系统。
在各个实施例中,示例26可以是便携式电子设备,所述便携式电子设备包括:用于由所述便携式电子设备接收与将所述便携式电子设备与扩展坞耦合相关联的中断的装置,所述扩展坞具有至少一个处理器以及与所述至少一个处理器耦合的物理存储器;用于由所述便携式电子设备基于接收到所述中断来激活所述至少一个扩展坞处理器的装置;用于由所述便携式电子设备基于接收到所述中断将与所述便携式电子设备的第一处理器相关联的处理器状态从所述便携式电子设备的第一物理存储器加载到所述扩展坞物理存储器的装置;以及用于由所述便携式电子设备引起使用所述至少一个扩展坞处理器来执行所述便携式电子设备的指令的装置。示例27可以包括如示例26所述的便携式电子设备,其中,所述便携式电子设备是平板计算机或智能电话。示例28可以包括如示例26所述的便携式电子设备,进一步包括:用于由所述便携式电子设备检测一条或多条安全模式指令的装置;以及用于由所述便携式电子设备使用所述便携式电子设备的所述第一处理器执行所述一条或多条安全模式指令的装置。示例29可以包括如示例28所述的便携式电子设备,进一步包括:用于由所述便携式电子设备基于检测到所述一条或多条安全模式指令而引起系统管理中断的装置;以及用于由所述便携式电子设备基于所述系统管理中断而从所述至少一个扩展坞处理器切换到所述第一处理器的装置。示例30可以包括如示例26所述的便携式电子设备,进一步包括:用于由所述便携式电子设备发出对所述扩展坞的质询的装置;用于由所述便携式电子设备接收对所述质询的响应的装置;以及用于由所述便携式电子设备基于所述响应来确定所述扩展坞被验证用于执行所述一条或多条指令的装置。示例31可以包括如示例26至30中任一项所述的便携式电子设备,进一步包括:用于由所述便携式电子设备将与所述第一物理存储器相关联的第一存储器组交换到与所述扩展坞物理存储器相关联的第二存储器组的装置;以及用于由所述便携式电子设备基于所述交换将一个或多个地址映射从所述第一存储器组更新到所述第二存储器组的装置。示例32可以包括如示例26至30中任一项所述的便携式电子设备,进一步包括:用于由所述便携式电子设备从所述便携式电子设备的操作系统接收CPUID指令的装置;以及用于由所述便携式电子设备基于激活所述至少一个扩展坞处理器来响应所述CPUID指令的装置。示例33可以包括如示例26至30中任一项所述的便携式电子设备,进一步包括:用于由所述便携式电子设备基于激活所述至少一个扩展坞处理器来更新与所述便携式电子设备的操作系统相关联的一个或多个高级配置和功率接口(ACPI)表的装置。示例34可以包括如示例26至30中任一项所述的便携式电子设备,进一步包括:用于由所述便携式电子设备向所述便携式电子设备的操作系统呈现所述扩展坞物理存储器的至少一部分的装置。
已经在对计算机存储器内数据位的操作的算法和符号表示方面呈现了前面详细描述的某些部分。这些算法描述及表示是数据处理领域技术人员用来向本领域其他技术人员最有效地传递他们工作的实质的方式。算法在这里并且通常被认为是用于得到想要的结果的操作的自相一致的序列。这些操作是要求实际地操纵物理量的那些操作。
然而,应牢记的是,所有这些和类似的术语与适当的物理量相关联并且只是应用于这些量的方便标记。除非特别声明,否则如上面论述中显而易见的,应认识到的是:贯穿说明书,使用如在下面权利要求中提出的那些项的论述指的是计算机系统或类似电子计算设备的动作和过程,所述计算机系统或类似电子计算设备将被表示为计算机系统寄存器和存储器中物理(电子)量的数据操纵和转换成类似地被表示为计算机系统存储器或寄存器或其他此类信息存储、传输或显示设备内物理量的其他数据。
本发明的实施例还涉及一种用于执行本文中的操作的装置。这样的计算机程序被存储在非暂态计算机可读介质中。机器可读介质包括用于存储具有机器(例如计算机)可读形式的信息的任何机构。例如,机器可读(例如,计算机可读)介质包括机器(例如,计算机)可读存储介质(例如,只读存储器(“ROM”)、随机存取存储器(“RAM”)、磁盘存储介质、光学存储介质、闪速存储设备)。
在前面的附图中描绘的处理或方法可以通过处理逻辑器来执行,所述处理逻辑器包括硬件(例如电路系统、专用逻辑器等)、(例如,嵌入在非暂态计算机可读介质上的)软件或两者的组合。尽管以上鉴于一些顺序操作描述了处理和方法,但是应当认识到,所描述的操作中的一些可以以不同的顺序执行。而且,一些操作可并行地而不是顺序地执行。
本发明的实施例不是参考任何特定的编程语言描述的。应理解的是,各种编程语言和操作系统可以用于实现如在此所描述的本发明的实施例的教导。在以上说明书中,已经参照本发明的特定示例性实施例描述了本发明的实施例。将明显的是,在不脱离如随附权利要求书中阐述的本发明的更宽泛的精神和范围的情况下,可对这些示例性实施例进行各种修改。因此,说明书和附图被认为是说明性意义的,而不是限制性意义的。

Claims (25)

1.一种具有执行上下文迁移的计算设备,所述计算设备包括:
一个或多个第一处理器;
第一物理存储器,与所述一个或多个处理器耦合,所述第一物理存储器用于存储将要加载到所述物理存储器中以便由所述一个或多个处理器执行的操作系统;以及
执行管理模块,用于被加载到所述物理存储器中并且由所述一个或多个处理器操作,以便:
检测与将硬件组件和所述计算设备耦合相关联的中断,所述硬件组件具有一个或多个附加处理器以及与所述一个或多个附加处理器耦合的附加物理存储器;
基于检测到的中断而初始化所述一个或多个附加处理器;以及
基于所述检测到的中断而将与所述一个或多个第一处理器相关联的状态的至少一部分从所述第一物理存储器复制到所述附加物理存储器。
2.如权利要求1所述的计算设备,其中,所述计算设备是便携式电子设备。
3.如权利要求1所述的计算设备,其中,所述一个或多个第一处理器相对于所述一个或多个附加处理器在操作期间消耗更少功率。
4.如权利要求1所述的计算设备,其中,所述硬件组件包括底座,所述底座被适配用于使所述计算设备与所述底座对接。
5.如权利要求1所述的计算设备,其中,所述第一物理存储器包括第一双倍数据速率(DDR)同步动态随机存取存储器(SDRAM),并且所述附加物理存储器包括附加DDR SDRAM。
6.如权利要求1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:
基于所述检测到的中断而将一条或多条指令从所述第一物理存储器复制到所述附加物理存储器。
7.如权利要求1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:
将与所述第一物理存储器相关联的一个或多个第一存储器组切换到与所述附加物理存储器相关联的一个或多个附加存储器组;以及
将地址映射从所述一个或多个第一存储器组切换到所述一个或多个附加存储器组。
8.如权利要求1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:
使所述一个或多个第一处理器和所述第一物理存储器中的至少一个转变成低功率状态。
9.如权利要求8所述的计算设备,其中,所述执行管理模块进一步用于:
检测来自所述操作系统的CPUID请求;以及
使用对所述一个或多个第一处理器的第一指示以及对通过所述一个或多个附加处理器可用的资源的第二指示来响应所述CPUID请求。
10.如权利要求1至5中任一项所述的计算设备,其中,所述执行管理模块进一步用于:
检测与将所述硬件组件与所述计算设备解耦和相关联的中断;
基于检测到的其他中断而初始化所述一个或多个第一处理器;以及
基于所述检测到的其他中断而将与所述一个或多个附加处理器相关联的状态的至少一部分从所述附加物理存储器复制到所述第一物理存储器。
11.如权利要求1至5中任一项所述的计算设备,其中,执行管理模块进一步用于:
使与可信执行上下文相关联的一条或多条指令仅加载到所述第一物理存储器中并且仅由所述第一一个或多个处理器执行。
12.如权利要求1至5中任一项所述的计算设备,其中,所述一个或多个第一处理器包括与系统管理模式的执行相关联的至少一个核,并且与系统管理模式的执行相关联的所述至少一个核用于操作所述执行管理模块。
13.一种用于迁移与便携式电子设备相关联的执行上下文的计算机实现的方法,所述计算机实现的方法包括:
由所述便携式电子设备接收与将所述便携式电子设备与扩展坞耦合相关联的中断,所述扩展坞具有至少一个处理器以及与所述至少一个处理器耦合的物理存储器;
由所述便携式电子设备基于接收到所述中断来激活所述至少一个扩展坞处理器;
由所述便携式电子设备基于接收到所述中断将与所述便携式电子设备的第一处理器相关联的处理器状态从所述便携式电子设备的第一物理存储器加载到所述扩展坞物理存储器;以及
由所述便携式电子设备引起使用所述至少一个扩展坞处理器来执行所述便携式电子设备的指令。
14.如权利要求13所述的计算机实现的方法,其中,所述便携式电子设备是平板计算机或智能电话。
15.如权利要求13所述的计算机实现的方法,进一步包括:
由所述便携式电子设备检测一条或多条安全模式指令;以及
由所述便携式电子设备使用所述便携式电子设备的所述第一处理器执行所述一条或多条安全模式指令。
16.如权利要求15所述的计算机实现的方法,进一步包括:
由所述便携式电子设备基于检测到所述一条或多条安全模式指令而引起系统管理中断;以及
由所述便携式电子设备基于所述系统管理中断而从所述至少一个扩展坞处理器切换到所述第一处理器。
17.如权利要求13所述的计算机实现的方法,进一步包括:
由所述便携式电子设备发出对所述扩展坞的质询;
由所述便携式电子设备接收对所述质询的响应;以及
由所述便携式电子设备基于所述响应来确定所述扩展坞被验证用于执行所述一条或多条指令。
18.如权利要求13至17中的任一项所述的计算机实现的方法,进一步包括:
由所述便携式电子设备将与所述第一物理存储器相关联的第一存储器组交换到与所述扩展坞物理存储器相关联的第二存储器组;以及
由所述便携式电子设备基于所述交换将一个或多个地址映射从所述第一存储器组更新到所述第二存储器组。
19.如权利要求13至17中的任一项所述的计算机实现的存储器,进一步包括:
由所述便携式电子设备从所述便携式电子设备的操作系统接收CPUID指令;以及
由所述便携式电子设备基于激活所述至少一个扩展坞处理器来响应所述CPUID指令。
20.如权利要求13至17中的任一项所述的计算机实现的方法,进一步包括:
由所述便携式电子设备基于激活所述至少一个扩展坞处理器来更新与所述便携式电子设备的操作系统相关联的一个或多个高级配置和功率接口(ACPI)表。
21.一种或多种非暂态计算机系统可读介质,包括计算设备可执行指令,其中,响应于所述指令由计算设备执行而使所述计算设备:
处理与外部组件的脱离相关联的中断,所述外部组件包括另一个处理器以及与所述另一个处理器耦合的另一个存储器;
基于所述中断初始化所述计算设备的内部处理器;
基于所述中断将与所述另一个处理器相关联的状态的至少一部分从所述另一个存储器复制到所述计算设备的内部存储器;以及
至少部分地基于所述内部存储器中的所述状态来引起使用所述计算设备的所述内部处理器执行指令。
22.如权利要求21所述的一种或多种非暂态计算机系统可读介质,其中,所述计算设备是被适配用于与所述外部组件对接的智能电话或平板计算机。
23.如权利要求21所述的一种或多种非暂态计算机系统可读介质,其中,所述中断包括系统管理中断。
24.如权利要求21至23中任一项所述的一种或多种非暂态计算机系统可读介质,其中,所述指令进一步使所述计算设备:
检测与所述外部组件的附接相关联的另一个中断;
基于所述另一个中断将与所述内部处理器相关联的第二状态的至少一部分从所述内部存储器复制到所述另一个存储器;以及
引起使用所述另一个处理器执行指令。
25.如权利要求24所述的一种或多种非暂态计算机系统可读介质,其中,在检测到所述另一个中断之后,所述指令进一步使所述计算设备:
从所述计算设备的操作系统接收CPUID指令;以及
使用对所述内部处理器的标识以及所述另一个处理器的能力指示来响应所述操作系统。
CN201580076833.9A 2015-03-23 2015-03-23 执行上下文迁移方法和装置 Active CN107408034B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2015/074838 WO2016149895A1 (en) 2015-03-23 2015-03-23 Execution context migration method and apparatus

Publications (2)

Publication Number Publication Date
CN107408034A true CN107408034A (zh) 2017-11-28
CN107408034B CN107408034B (zh) 2022-02-18

Family

ID=56976900

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580076833.9A Active CN107408034B (zh) 2015-03-23 2015-03-23 执行上下文迁移方法和装置

Country Status (4)

Country Link
US (1) US10372491B2 (zh)
EP (1) EP3274814A4 (zh)
CN (1) CN107408034B (zh)
WO (1) WO2016149895A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10720195B2 (en) * 2015-09-25 2020-07-21 Intel Corporation Efficient memory activation at runtime
WO2017062038A1 (en) 2015-10-09 2017-04-13 Hewlett Packard Enterprise Development Lp Privacy preservation
US10812508B2 (en) * 2015-10-09 2020-10-20 Micro Focus, LLC Performance tracking in a security information sharing platform
US10706143B2 (en) * 2017-05-19 2020-07-07 Intel Corporation Techniques for secure-chip memory for trusted execution environments
CN111506426B (zh) * 2020-04-17 2021-05-04 翱捷科技(深圳)有限公司 内存管理方法、装置及电子设备
US11924212B2 (en) * 2021-06-23 2024-03-05 Dell Products L.P. Providing access control to distributed resources to an information handling system

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549968B1 (en) * 2000-03-31 2003-04-15 Intel Corporation Context transferring between portable computer processor and docking station processor upon docking and undocking
US20030112585A1 (en) * 2001-12-13 2003-06-19 Silvester Kelan Craig Multiprocessor notebook computer with a tablet PC conversion capability
CN101542433A (zh) * 2006-11-21 2009-09-23 微软公司 系统处理器的透明替换
US20130212586A1 (en) * 2012-02-14 2013-08-15 International Business Machines Corporation Shared resources in a docked mobile environment
US20150033225A1 (en) * 2013-07-23 2015-01-29 Michael A. Rothman Operating system switching method and apparatus

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6651163B1 (en) 2000-03-08 2003-11-18 Advanced Micro Devices, Inc. Exception handling with reduced overhead in a multithreaded multiprocessing system
US7971073B2 (en) 2005-11-03 2011-06-28 Los Alamos National Security, Llc Adaptive real-time methodology for optimizing energy-efficient computing
US20090013171A1 (en) 2006-03-02 2009-01-08 Oqo, Inc. Computer docking system using hardware abstraction
CN100536021C (zh) * 2006-11-27 2009-09-02 华为技术有限公司 大容量高速缓冲存储器
US7818559B2 (en) 2007-02-28 2010-10-19 Microsoft Corporation Boot negotiation among multiple boot-capable devices
US20090198989A1 (en) 2008-02-06 2009-08-06 Broadcom Corporation Bios for a computing device with handheld and extended computing units
CN101452406B (zh) * 2008-12-23 2011-05-18 北京航空航天大学 一种对操作系统透明的机群负载平衡方法
JP5433676B2 (ja) 2009-02-24 2014-03-05 パナソニック株式会社 プロセッサ装置、マルチスレッドプロセッサ装置
US8176209B2 (en) 2009-11-05 2012-05-08 Electronics And Telecommunications Research Institute Data communication system
JP5758914B2 (ja) * 2010-12-21 2015-08-05 パナソニック インテレクチュアル プロパティ コーポレーション オブアメリカPanasonic Intellectual Property Corporation of America 仮想計算機システム及び仮想計算機システム制御方法
US8886862B2 (en) * 2011-08-11 2014-11-11 Mellanox Technologies Ltd. Virtualization of interrupts
EP3049943B1 (en) * 2013-09-27 2018-10-24 Intel Corporation Techniques to compose memory resources across devices
US9372814B2 (en) * 2014-08-11 2016-06-21 Dell Products, Lp System and method for transferring an active state between a powerful processor and a less powerful processor

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6549968B1 (en) * 2000-03-31 2003-04-15 Intel Corporation Context transferring between portable computer processor and docking station processor upon docking and undocking
US20030112585A1 (en) * 2001-12-13 2003-06-19 Silvester Kelan Craig Multiprocessor notebook computer with a tablet PC conversion capability
CN101542433A (zh) * 2006-11-21 2009-09-23 微软公司 系统处理器的透明替换
US20130212586A1 (en) * 2012-02-14 2013-08-15 International Business Machines Corporation Shared resources in a docked mobile environment
US20150033225A1 (en) * 2013-07-23 2015-01-29 Michael A. Rothman Operating system switching method and apparatus

Also Published As

Publication number Publication date
EP3274814A4 (en) 2019-04-03
EP3274814A1 (en) 2018-01-31
CN107408034B (zh) 2022-02-18
WO2016149895A1 (en) 2016-09-29
US10372491B2 (en) 2019-08-06
US20180046502A1 (en) 2018-02-15

Similar Documents

Publication Publication Date Title
JP7412438B2 (ja) 外部メモリを機械学習アクセラレータにとってローカルとする仮想化
CN107408034A (zh) 执行上下文迁移方法和装置
EP4033693B1 (en) Trusted computing base evidence binding for a migratable virtual machine
CN108027785B (zh) 用于对链路拆分进行去偏斜的方法、设备和系统
KR101602991B1 (ko) 비가상화 시스템에서의 메모리 확장을 지원하기 위한 상호 운영 시스템 메모리 핫스왑
CN102110196B (zh) 并行运行多用户操作系统间的数据安全传输方法及系统
CN101944013B (zh) 用于执行安全嵌入式容器的处理器扩展
CN105556493B (zh) 用于跨设备组合存储器资源的设备、方法
CN106462208A (zh) Usb电力输送控制器共享
CN105164657A (zh) 程序数据至非易失性存储器的选择性备份
US9645625B2 (en) System and method for power management of computing devices in a virtual desktop infrastructure
CN107003971A (zh) 用于高性能互连中的嵌入式流通道的方法、装置、系统
CN103210395A (zh) 与客户端虚拟机交互的技术
CN107005231A (zh) 用于在高性能互连中定中心的方法、设备、系统
US20190086948A1 (en) Hypervisor clock frequency techniques
CN102023960A (zh) 计算机网络系统、计算机及其硬件设备远程管理的方法
EP4109281B1 (en) Peer-to-peer link sharing for upstream communications from xpus to a host processor
CN109643293A (zh) 检测总线上锁条件并且避免总线锁
US20210389371A1 (en) Debug data communication system for multiple chips
CN108958812A (zh) 一种启动方法及电子设备
CN106575336A (zh) 对敏感代码恶意调用的检测与抑制
CN111108487B (zh) 管理程序直接存储器访问
CN104050014B (zh) 基于虚拟化平台的高效存储管理方法
CN116340250A (zh) 分立图形的加速器结构
CN103198257A (zh) 在混合信息处理设备环境下的安全性重新使用

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