CN103782272B - 在异构核之间切换任务 - Google Patents

在异构核之间切换任务 Download PDF

Info

Publication number
CN103782272B
CN103782272B CN201280043237.7A CN201280043237A CN103782272B CN 103782272 B CN103782272 B CN 103782272B CN 201280043237 A CN201280043237 A CN 201280043237A CN 103782272 B CN103782272 B CN 103782272B
Authority
CN
China
Prior art keywords
core
task
execution
processor
application
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
CN201280043237.7A
Other languages
English (en)
Other versions
CN103782272A (zh
Inventor
O·扎阿鲁尔
P·萨卡尔达
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.)
Kaiwei International Co
Marvell International Ltd
Marvell Asia Pte Ltd
Original Assignee
Mawier International Trade Co Ltd
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 Mawier International Trade Co Ltd filed Critical Mawier International Trade Co Ltd
Publication of CN103782272A publication Critical patent/CN103782272A/zh
Application granted granted Critical
Publication of CN103782272B publication Critical patent/CN103782272B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/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/329Power saving characterised by the action undertaken by task scheduling
    • 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/44Arrangements for executing specific programs
    • 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
    • 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/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)
  • Stored Programmes (AREA)

Abstract

本公开内容描述用于在异构核之间切换任务的技术。在一些方面中,确定正在由处理器的第一核执行的任务能够由处理器的第二核执行,第二核具有与第一核的指令集不同的指令集,并且从第一核向第二核切换任务的执行以有效用于减少处理器所消耗的能量的量。

Description

在异构核之间切换任务
相关申请
本公开内容要求对于2011年9月6日提交的第61/531,544号美国临时专利申请和于2012年7月27日提交的第61/676,482号美国临时专利申请的优先权,其公开内容通过完全引用的方式并入于此。
背景技术
这里提供的背景技术描述是为了一般地呈现公开内容的上下文的目的。当前发明人的工作(到在此背景技术章节中描述的工作的程度)以及在提交时可能无法以其他方式作为现有技术衡量的本描述的诸多方面,既不被明确地也不被暗含地承认为本公开内容的现有技术。
对于高性能和增加的特征集的不断增加的用户期望已经促成在多数计算设备中包括多核处理器。这些多核处理器经常使得移动或者低功率计算设备能够执行曾经是为全功率桌上型计算机或者服务器保留的任务。然而移动或者低功率计算设备经常在它们可以消耗的电量方面(例如电池寿命或者热考虑)是有限的。为了执行这些任务而消耗的电量可以随着任务从低复杂性(例如音频回放)到高复杂性(例如视频编辑或者流发送)变动而变化。低复杂性任务经常可以由消耗较少电量的简单处理器核(例如具有有限指令集的核)执行,而高复杂性任务经常使用消耗较大电量的一个或者多个复杂处理器(例如具有全指令集的核)来执行。
发明内容
提供这一发明内容以介绍以下在具体实施方式和附图中描述的主题内容。因而,这一发明内容不应视为描述必需特征、也未用来限制要求保护的主题内容的范围。
描述一种方法,该方法用于确定正在由处理器的第一核执行的任务能够由处理器的第二核执行,第一核具有与第二核的第二指令集不同的第一指令集;以及从第一核向第二核切换任务的执行以减少处理器所消耗的能量的量。
描述另一方法,该方法用于经由第一操作***发起应用,应用和第一操作***由处理器的第一核执行;经由第一操作***表现(render)应用的用户界面;确定何时能够使用第二操作***来执行应用的至少部分;响应于该确定而从第一核向第二核切换应用的至少部分的执行;以及经由第二操作***表现与应用的至少部分关联的内容。
描述一种***,该***包括:处理器;以及任务切换器,被配置用于确定正在使用处理器的第一核的第一软件执行的任务能够使用处理器的第二核的第二软件来执行,向任务所属于的应用发送核切换的指示,从应用接收一个或者多个潜在切换点、在该一个或者多个潜在切换点处能够向第二核切换任务以用于使用第二软件执行,以及在潜在切换点之一从第一核的第一软件向第二核的第二软件切换任务的执行以有效用于减少处理器消耗的能量数量。
在附图和以下描述中阐述一个或者多个实现方式的细节。其它特征和优点将从描述和附图中变得清楚。
附图说明
在各图中,参考标号的最左位标识该参考标号第一次出现的图。在描述和各图中的不同实例中使用相同的参考标号指示相似的元素。
图1图示具有根据一个或者多个方面的计算设备的操作环境。
图2图示根据一个或者多个方面的图1的多核处理器的示例。
图3图示根据一个或者多个方面的一个或者多个堆栈架构。
图4图示根据一个或者多个方面的图1的任务切换器。
图5图示从处理器的第一核向处理器的第二核切换任务的执行的方法。
图6图示根据一个或者多个方面的示例用户界面。
图7图示从处理器的第一核向处理器的第二核切换应用的部分的方法。
图8图示从处理器的核向处理器的另一核切换任务的方法。
图9图示用于实施这里描述的技术的方面的片上***(SoC)环境。
具体实施方式
常规的多核架构可以准许在相似核、但是并非不同类型或者执行不同软件的核之间移动任务。因此,在高性能核上执行的低复杂性任务不能在执行之时移向低性能核。这可能导致低效的计算(例如减少的电池运行时间或者更高的操作温度),因为简单处理器核可执行的任务继续在可能具有更高电流泄漏、操作频率和/或功耗的复杂处理器核上执行。
本公开内容描述用于在处理器的执行不同指令集、具有不同性能水平和/或消耗不同电量的异构核之间切换任务的装置和技术。可以在执行任务之时从高性能核向消耗更少能量的更低性能核切换任务。通过这样做,可以减少高功率、高性能核的使用、由此减少由处理器消耗的能量的量。
以下讨论描述操作环境、可以在操作环境中运用的技术和片上***(SoC),可以在该SoC中体现操作环境的部件。在以下讨论中,仅通过示例参照操作环境。
操作环境
图1图示具有计算设备102的操作环境100的示例,每个计算设备能够传达、访问或者处理各种数据。计算设备102包括智能电话104、平板计算机106、膝上型计算机108和机顶盒110以及已启用触摸输入的恒温器112(恒温器112)。虽然未示出,但是也设想计算设备102的其它配置、比如桌上型计算机、服务器、移动因特网设备(MID)、游戏控制台、已启用因特网协议的电视机、移动热点、联网的媒体播放器等。
每个计算设备102包括多核处理器114(例如应用处理器)和计算机可读存储介质116(CRM116)。多核处理器114可以包括可以用如以下更具体描述的多种方式配置的任何适当数目的处理核(为了简洁,下文称为‘核’)。CRM116包括易失性存储器118和非易失性存储器120。易失性存储器118可以包括任何适当类型的存储器、比如随机存取存储器(RAM)、同步或者异步动态RAM(DRAM)、静态RAM(SRAM)、双数据速率RAM(DDR)等。
非易失性存储器120可以包括任何适当的存储器或者存储设备、比如非易失性RAM(NVRM)、只读存储器(ROM)、闪速存储器、磁或者光存储驱动器等。非易失性存储器120存储计算设备102的软件122,该软件122可以包括操作***124(OS124)和应用126。OS124由多核处理器114执行以管理计算设备102的硬件资源并且向应用126提供服务或者硬件访问。
应用126使得用户能够与计算设备102所存储或者可访问的数据交互。例如应用126可以使得计算设备102的用户能够访问电子邮件、搜索因特网、收听音频文件、观看或者创建视频内容、玩游戏、用流发送在线内容、(例如经由文字、语音或者视频)与计算设备102的用户通信等。每个应用126的功能可以对应于负责执行相应功能的一个或者多个任务。例如媒体播放器应用可以包括用于表现(render)和管理经由显示器134显示的用户界面的任务。媒体播放器应用可以包括用于解码并且经由用户界面播放视频流的另一任务。
CRM116也包括任务切换器128和核管理器130。虽然这里示出为在CRM116上体现,但是也可以经由固件或者硬件(未示出)实施任务切换器128和/或核管理器130的一些功能。任务切换器128能够从多核处理器114的一个核向多核处理器114的另一核切换任务的执行。核管理器130可以测评(profile)多核处理器114的核的当前或者预期使用并且可以发起用于使任务管理器128在不同核之间切换任务的执行的事件。如何实施和使用任务切换器128和核管理器130是有变化的并且以下加以描述。
计算设备102也可以包括I/O端口132、显示器134、音频端口136和网络接口138。I/O端口132允许计算设备102与其它设备或者用户交互。I/O端口132可以包括内部或者外部端口的任意组合、比如USB端口、串行ATA(SATA)端口、基于PCI快速的端口或者卡槽和/或其它旧式端口的任意组合。各种***设备可以***作地耦合至I/O端口132,比如人体输入设备(HID)、外部计算机可读存储介质或者其它***设备。
显示器134可以包括计算设备102的集成显示器或者与计算设备102关联的外部显示器。显示器134可以包括触摸输入传感器(未示出)、比如触摸屏或者触敏覆层。一般而言,显示器134呈现与OS124或者应用126关联的用户界面或者表现的图形。音频端口136可以包括使得计算设备102能够播放或者记录声音的音频输入或者输出端口(例如耳机插口或者对接连接器)。在一些方面中,音频端口136可以与计算设备102集成的麦克风或者扬声器可操作地耦合。
网络接口138提供与一个或者多个网络和与之连接的其它设备的连通。可以根据计算设备102用来进行通信的通信协议或者标准对通过网络接口138传达的数据分组或者成帧。网络接口138可以包括用于通过局域网、内部网或者因特网通信的有线接口、比如以太网或者光纤接口。网络接口138也可以包括有助于通过诸如无线LAN、蜂窝网络或者无线个域网(WPAN)之类的无线网络的通信的无线接口。
图2在200处大体地图示多核处理器114的示例。多核处理器114包括异构处理器核(例如支持不同指令集或软件的核),在此被示为处理器核-1202(核-1202)、处理器核-2204(核-2204)以及处理器核-3206(核-3206)。多核处理器114的每个核可以被不同地配置、比如支持不同性能水平、不同指令集和/或不同软件(例如操作***)。
仅举例而言,考虑用于多核处理器114的异构核的以下配置。核-1202可以被配置为高性能核(例如高级RSIC机器(ARM)高级Cortex A9核)。核-2204可以被配置为中性能核(例如ARM实时(ARM-R)核)。核-3206可以被配置为低性能核(例如ARM微控制器(ARM-M)核)。多核处理器114的附加核可以根据意在的应用或者使用而相似或者不同。例如,多核处理器114可以被配置为具有相似处理器核对的四、六、或者八核处理器。
在本示例的上下文中,核-1202可以在近似100MHz至1GHz的频率范围上操作从而在活跃状态期间消耗近似2.3mA/MHz。核-1202也可以支持64位或者32位指令集或者被配置用于执行复杂算法运算、比如浮点运算。
核-2204可以支持全32位或者16位指令集(例如thumb指令集)的子集并且在近似10-200MHz的频率范围上操作。在活跃或者空闲时,核-2204也可以具有比核-1202更低的漏电流或者消耗更少能量。
核-3206可以支持16位或者8位指令集并且在近似5-100MHz的频率范围上操作从而在活跃状态期间消耗约66μA/MHz。在活跃或者空闲时,核-3206也可以具有比核-2204更低的漏电流或者消耗更少性能。
多核处理器114也可以包括可以在任何适当类型的存储器(例如ROM或者EEPROM)上存储的处理器固件208(处理器FW208)。处理器FW208可以部分或者全部包括以下更具体描述的任务切换器128或者核管理器130。在这一具体示例中,在处理器固件208由多核处理器114的核之一执行时实施任务切换器128和核管理器130的一些功能。
多核处理器114也可以包括硬件加速器210、易失性存储器接口212和非易失性存储器接口214(NV存储器接口214)。硬件加速器210可以包括被配置用于经由硬件解码、解压或者表现视频或者音频内容的视频或者音频硬件加速器。备选地或者附加地,硬件加速器210可以被配置用于经由硬件捕获、压缩或者编码音频或者视频内容。硬件加速器210可以通过减少为了执行任务所需要的计算周期数目来提高多核处理器114的性能。例如,视频数据的分组可以被引向硬件加速器210用于解码而不是通过用核-1202反复地执行系列指令来解码分组。易失性存储器接口212(例如DDR控制器)和NV存储器接口214(例如闪存控制器)使得多核处理器的任何核分别访问易失性存储器118和非易失性存储器120。
多核处理器114也可以包括显示器接口216、音频接口218和低级硬件接口220(低级HW接口220)。显示器接口216可以是与集成显示器或者外部显示器的任何适当接口、比如液晶显示器(LCD)接口、低电压差分信令接口(LVDS)、显示器端口、高清晰度多媒体接口(HDMI)、数字视频接口(DVI)等等。音频接口218可以是与外部音频电路或者音频端口的任何接口、比如集成电路间声音(I2S)接口或者音频编码解码器专属接口(AC-97)。
低级HW接口220使得多核处理器114能够与内务控制器、比如电源、温度控制器、风扇控制器、时钟生成器等进行通信。低级HW接口220可以经由集成电路间(I2C)总线、***管理总线、串行***接口总线、一接线总线等进行通信。显示器接口216、音频接口218和低级HW接口220准许多核处理器114的任何核分别与显示器134、音频端口136和电源管理集成电路224(电源管理IC224)进行通信。
多核处理器114的通用输入/输出222(GPIO222)提供与低级硬件、比如发光二极管(LED)或者硬件开关(未示出)的连通。例如,GPIO222可以接收与计算设备102的电源按钮的用户交互或者经由计算设备102的LED指示提醒或者状态。多核处理器114的核中的任何核可以访问或者控制GPIO222。
图3图示示例堆栈架构,每个堆栈架构包括异构核和一个或者多个操作***。这些堆栈架构示出可以使用异构核来实施的各种操作***(OS)配置。堆栈架构300包括操作***1302(OS-1302)、操作***2(304)和操作***3306(OS-3306)。虽然图示为操作***,但是OS-1302、OS-2304和OS-3306可以代表使得计算设备102的应用能够在相应核上执行的任何适当类型的软件和/或固件或者软件和/或固件的组合。
这些操作***中的每个操作***可以不同于其它操作***或者被配置用于由特定核执行。例如,OS-1302可以是全功能OS,OS-2304可以是实时OS,并且OS-3306可以是微OS或者固件。因而,每个OS可以被配置用于经由每个相应OS在其上执行的核所支持的指令集来执行。OS-1302、OS-2304或者OS-3306可以与一个或者多个软件提供商、比如Android(例如Honeycomb或者Ice Cream Sandwich)、微软(例如Windows Phone)、Linux等关联。例如OS-1302可以是全功能Android OS,OS-2034可以是Lite-Android OS,并且OS-3306可以是基于Android的微控制器代码。
在这一具体示例中,每个操作***由直接在相应操作***之下示出的对应核执行。在这一具体示例中,OS-1302(全功能OS)可以由被配置为高性能核的核-1202执行,OS-2304(实时OS)可以由被配置为实施核的核-2304执行,并且OS-3306(微OS)可以由被配置为微控制器核的核-3206执行。这里,任务切换器128和核管理器130充当在核与操作***之间的中介从而使得任务执行能够从一个操作***/核集合(例如OS-1302和核-1202)向不同的操作***/核集合(例如OS-2304和核-2204)切换。
堆栈架构308包括被配置用于由核-1202、核-2204和核-3206执行的OS-1302。在这一具体示例中,OS-1302可以是具有多个应用的全功能OS。然而这些应用中的一些应用可以无需在高性能核、比如核-1202上运行。在一些情况下,可以将这些应用的功能切换至更低性能核以用于执行(例如核-2204或者核-3206)。即使核-2204或者核-3206可以是比核-1204更低性能的核或者具有更少功能,但是它们能够执行OS-1302并且执行核-1202执行的应用的一些功能。在一些情况下,向更低性能核切换各种任务或者功能的执行可以减少处理器所消耗的能量的量。
堆栈架构310包括分别被配置为全功能OS和实时OS的OS-1302和OS-2304。这里,堆栈架构包括两个高性能核(核-1202)和一个实时核(核-2204)。在这一具体示例中,可以用两个高性能核中的任一个或者两个高性能核执行OS-1302的应用。这可以在OS-1302的应用在多核处理器114上产生高水平的计算需求时有用。然而在多核处理器114上的计算需求水平下降时,可以向OS-2304和核-2204切换OS-1302的应用或者任务以用于执行。这可以准许高性能核空闲或者转向更低功率状态(例如睡眠或者掉电)。通过这样做,可以节省高性能核中的电流泄漏所通常消耗的能量。
这些仅为准许在异构核之间的任务切换的堆栈架构的少数示例。可以进一步组合、穿插、减少、扩展或者修改描述的示例OS或者核配置中的任何OS或者核配置而未脱离这里描述的各个方面。
图4图示任务切换器128的示例,该任务切换器包括用于在核之间切换任务的仲裁器。这些仲裁器使得任务切换器128能够在从一个核向另一核切换任务时监测和支持握手操作。任务切换器128包括应用层面仲裁器402、框架层面仲裁器404和硬件层面仲裁器406。
应用层面仲裁器402跟踪与应用关联的表现任务的进度。这可以包括跟踪、存储或者传送与应用的表现任务关联的当前进度点。例如应用层面仲裁器402可以跟踪用于表现应用的用户界面的任务的进度。另外,应用层面仲裁器402可以从与任务关联的应用接收、存储或者传送潜在任务切换点。
框架层面仲裁器404提供用于在核之间切换任务的中间件级接口。中间件级可以包括与任务关联的数据结构、比如存储器缓冲器或者与存储器缓冲器关联的参数。例如,框架层面仲裁器404可以跟踪、存储或者传送与存储器缓冲器的分配、状态、状况标志或者阈值关联的信息。这一信息可以由任务被切换到的核用来开始任务的执行。框架层面仲裁器404也可以维持任务切换点直至向另一核切换任务或者使得任务能够在向另一核的任务切换失败的情况下在先前核上恢复。一般而言,框架层面仲裁器404通过保证任务的执行从一个核向另一核的顺利过渡来防止中断用户的计算体验。
HW层面仲裁器406支持在硬件层面的在核之间的任务切换。这可以包括跟踪、存储或者传送与各种***设备、总线、部件、中断等关联的信息。在这一具体示例中,HW层面仲裁器406与易失性存储器接口212、NV存储器接口214、显示器接口216、音频接口218和低级HW接口220进行通信和交互。这准许访问这些部件的任务在多核处理器114的各个核之间切换。
HW层面仲裁器406也可以设置中断路由并且监测多核处理器114的核性能。监测核性能可以包括监测用于在核上的计算需求、核的性能水平、核优化等的阈值。例如,HW层面仲裁器406可以监测为了执行任务而选择的核、确定核对于任务是否是最优的(例如最优频率/电压设置)并且如果选择的核不是用于任务的最优核则预备向另一核的任务切换。
在异构核之间切换任务的技术
以下讨论描述在异构核之间切换任务的技术。可以使用先前描述的环境或者实体、比如图1的在计算设备102上体现的任务切换器128或者核管理器130来实施这些技术。这些技术包括在图5、7和8中所示方法,每种方法被示为由一个或者多个实体执行的操作的集合。这些方法未必限于示出的用于执行操作的顺序。另外,这些方法可以相互结合、全部或者部分使用、无论是否由同一实体、单独的实体或者其组合执行。在以下讨论的部分中,将通过示例参照图1的操作环境100和图2-4的实体。这样的参考将不视为限于操作环境100、而是实际上为举例说明多种示例之一。
图5描绘用于从处理器的第一核向处理器的第二核切换任务的执行的方法500,该方法包括由图1的任务切换器126执行的操作。
在步骤502,使用处理器的第一核来执行任务。任务可以是由处理器的第一核执行的应用的部分。处理器的第一核可以支持与处理器的其它核的指令集不同的特定指令集。处理器可以是包括两个或者更多异构核、比如以上描述的核的多核处理器。第一核可以是处理器的高性能核(例如ARM-A)。备选地或者附加地,处理器的第一核可以执行操作***、比如全功能操作***。
作为示例,考虑用户用图1的智能电话104发起媒体播放器应用。这里假设智能电话104被配置有堆栈架构300。这里经由正在由核-1202(例如ARM-A核)执行的OS-1302(例如全功能Android OS)起动媒体播放器应用。核-1202然后执行视频应用以表现如图6中所示媒体播放器介面600(媒体播放器UI600)。媒体播放器UI600包括视频区域602、回放控件604和音量控件606。一旦被表现,经由显示器接口216向智能电话104的显示器134呈现媒体播放器UI600。
这里假设用户通过与回放控件604交互来发起回放视频。核-1202然后执行媒体播放器应用以表现视频用于向视频区域602显示。这包括从网络接口138向硬件加速器210路由视频数据的分组以用于解码、解压和表现。然后向显示器接口216路由表现的视频数据用于向显示器134传达以用于在视频区域602中显示。
在504,确定处理器的第二核能够执行处理器的第一核执行的任务。处理器的第二核可能支持与处理器的第一核的指令集不同的指令集。该确定可以通过轮询第一核(例如当前被选择用于执行软件的核)的使用和在其中实施处理器的***需要的性能水平来执行。例如,如果任务未繁重地使用高性能核并且***性能需要低,则更低性能核可以能够执行任务而无损于性能。
在本例的上下文中,核管理器130测评核-1202以确定使用水平和智能电话104需要的性能水平。这里假设核-1202执行用于表现视频的媒体播放器应用以及用于管理智能电话104的更低级功能的一些后台任务。核管理器130确定核-1202未在繁重负荷之下并且核-2204(例如实时核)可以满足智能电话104需要的性能水平。假设核-2204被配置用于执行实时OS、比如Lite-Android OS。这里,核管理器130可以向任务切换器128发起用于向核-2204切换媒体播放器应用的执行的命令或者指示。
在506,从处理器的第一核向处理器的第二核切换任务的执行。这可以对于减少处理器所消耗的能量的量而言有效。例如可以从高性能核向消耗更少能量来执行任务的中性能或者低性能核切换任务的执行。
继续本例,任务切换器128从核-1202向核-2204切换媒体播放器应用的执行。这里假设任务切换器128在切换之前向媒体播放器应用查询潜在切换点的集合。任务切换器128然后分析参与表现媒体播放器应用的视频数据的实体、比如网络接口138、硬件加速器210和显示器接口216的活动。
一旦选择可接受的切换点,任务切换器128生成用于为了从核-1202向核-2204切换媒体播放器应用的执行而必需的软件、固件和硬件的状态信息。这可以用应用层面仲裁器402、框架层面仲裁器404和HW层面仲裁器406来实现。这一状态信息然后用来向核-2204切换媒体播放器应用的执行。这里假设核-2204执行媒体播放器应用以继续从网络接口138向硬件加速器210路由视频数据用于表现。为了通过硬件加速器210路由视频数据而需要的工作可以是最少的,即使核-2204不是高性能核,这也允许核-2204执行媒体播放器应用。通过这样做,可以节约高性能核的漏电流通常消耗的能量。
可选地在508,从处理器的第二核向处理器的第一核切换回任务的执行。这可以响应于接收到用户输入或者事件、比如用于传入呼叫、传入文字消息、电子邮件、报警等的提醒。在一些情况下,这对于使得任务能够对接收的用户输入或者事件做出响应而言有效。例如任务可能在正在由第二核执行之时由于第二核的有限功能而不能做出响应。通过向第一处理器核传送回任务,任务可以利用第一核的功能以对事件做出响应。
结束本例,假设智能电话104的用户与回放控件604交互以暂停视频的回放。这里,媒体播放器应用在由核-2204执行时可能不能对用户输入做出响应。然而媒体播放器应用可以向任务切换器128用信号发送事件,该事件指示需要从核-2204向核-1202切换回应用的执行。任务切换器128然后从核-2204向核-1202切换回媒体播放器应用的执行。
图7描绘用于从处理器的第一核向处理器的第二核切换应用的方法700,该方法包括图1的任务切换器128或者核管理器130执行的操作。
在702,经由处理器的第一核执行的第一操作***发起应用。处理器可以是具有多个异构核的多核处理器,这些异构核支持不同指令集或者操作***。应用可以包括用于执行应用的不同功能、比如表现图形、接收用户输入、表现内容等的一个或者多个任务。
作为示例,在智能电话104的用户播放音频文件的上下文中考虑方法700。回顾图6中所示媒体播放器应用的示例,假设用户发起媒体播放器应用。这里,媒体播放器应用在正在由核-1202(例如高性能核)执行的OS-1302(例如全功能OS)上开始运行。
在704,经由第一操作***表现用于应用的用户界面。可以使用软件或者硬件加速器来表现用户界面。表现用户界面可以由在处理器的第一核上执行的应用的任务执行。用户界面可以包括任何适当特征、比如用于显示表现的图形、文字、视频等的可视地可感知控件或者区域。
在本例的上下文中,在媒体播放器应用在OS-1302和核-1202上运行之时表现媒体播放器UI600。核-1202向硬件加速器210分流表现的大部分。一旦被表现,媒体播放器UI600经由显示器接口216显示。然后从非易失性存储器120向硬件加速器210的数字信号处理器(DSP)路由用于回放的音频数据用于数字模拟转换。然后经由音频接口218向音频端口136发送转换的模拟音频信号用于向用户回放。这里也假设一旦音频回放开始,智能电话104的显示器134关断从而排除需要表现媒体播放器UI600。
在706,确定应用何时可以由第二操作***执行。第二操作***可以具有比第一操作***更少的特征或者更少的功能。第二操作***也可以被配置用于在处理器的第二核上执行。这一第二核可以支持与第一核的指令集不同的指令集(例如更小指令集)。可以在应用使用第二操作***来执行之时实施应用的功能的全部或者部分。在一些情况下,应用可以在低计算需求的时段期间由第二操作***执行。例如,第二操作***可以能够在需要高水平计算性能的初始化序列之后执行应用。
继续本例,核管理器130测评核-1202以确定使用水平和智能电话104需要的性能水平。这里假设核-1202正在执行用于表现音频的媒体播放器应用以及用于管理智能电话104的更低级功能的一些后台任务。核管理器130确定核-1202未在繁重负荷之下并且核-3206(例如微控制器核)可以满足智能电话104需要的性能水平。假设核-3206被配置用于执行实微控制器OS、比如基于Android的固件。这里,核管理器130可以向任务切换器128发起用于向核-3206切换媒体播放器应用的执行的命令或者指示。
在708,从第一操作***向第二操作***切换应用的执行。这可以包括确定可以在相应操作***下面的核之间切换应用的执行的一个切换点(或者多个潜在切换点)。这可以对于减少在处理器的执行第一操作***的核上的工作量、由此减少处理器的该核消耗的能量的量。
备选地或者附加地,仲裁器可以跟踪和/或标记应用进度的点以有助于切换。这些标记的进度点使各种握手能够在遇到切换点时在应用层面、框架层面或者硬件层面出现。一旦建立切换点,可以向处理器的第二核传送状态信息、中断或者高速缓存数据从而使应用的执行能够向第二操作***切换。
继续本例,任务切换器128从核-1202向核-3206切换媒体播放器应用的执行。这里假设任务切换器128在切换之前向媒体播放器应用查询潜在切换点集。任务切换器128然后分析参与表现媒体播放器应用的音频数据的实体、比如DSP、非易失性存储器120和硬件加速器210的活动。
一旦选择可接受切换点,任务切换器128生成用于为了从核-1202向核-3206切换媒体播放器应用的执行而必需的软件、固件和硬件的状态信息。这由应用层面仲裁器402、框架层面仲裁器404和HW层面仲裁器406在它们的相应应用层面执行。这里,应用层面仲裁器402存储并且向应用的其它部件通知即将到来的切换点。框架层面仲裁器404传送专用于核-3206的缓冲器分配、缓冲器状态、标志和过/欠运行阈值。HW层面仲裁器406生成用于中断标记的设备列表并且定义用于核-3206的中断路由配置。这些配置和信息然后用来向核-3206切换媒体播放器的执行。
在710,经由第二操作***表现应用的内容。内容可以是任何适当内容、比如文本、音频、图形、视频等。在一些情况下,在用户界面的经由第一操作***表现的部分中呈现内容。在这样的情况下,用户界面可以在表现背景(context)之时由第二操作***维持。在其它情况下,用户界面可以无需表现、比如在音频回放期间关断设备的显示器时。
结束本例,核-3206使用OS-3206来执行媒体播放器应用以继续从非易失性存储器120向硬件加速器210的DSP路由音频数据用于表现。为了通过DSP路由音频数据而需要的工作可以最少,这允许核-3206在即使核-3206和OS-3306未被配置用于高性能核的情况下仍然执行媒体播放器应用。通过这样做,可以节约高性能核的漏电流通常消耗的能量。
图8描绘向处理器的另一核切换任务的方法800,该方法包括图1的任务切换器128或者核管理器130执行的操作。
在802,响应于处理器的核的性能改变而生成事件。处理器的核可以执行任务或者应用。核可以与处理器的用于执行任务或者应用的高速缓存关联。事件可以由测评核的当前或者预期性能水平的核管理实体生成。
在804,基于事件确定是否发起向处理器的另一核的任务切换。该确定也可以基于处理器在其中被实施的***需要的性能水平。例如,核管理实体可以确定在处理器的核上执行软件是否满足或者超出用于***的当前性能水平。
如果未发起核切换,则方法800可以继续至操作806,或者如果发起核切换则继续至808。在806,如果未发起向另一核的任务切换,则可以调整核的操作频率或者电压。这可以对于对准核的性能水平与***所需要的性能水平以继续用该核执行任务或者其它软件而言有效。
在808,向任务切换器发送切换命令。任务切换器负责预备用于任务切换的软件、固件或者硬件堆栈级。这可以包括确定用于向处理器的另一核切换任务以用于执行的切换点。确定切换点可以包括向任务属于的应用发送对于潜在切换点的请求。
在810,配置处理器的另一核和另一高速缓存以用于任务切换。配置处理器的另一核和另一高速缓存可以包括向核供电或者从核清除陈旧数据。处理器的另一核可以支持与核的指令集不同的指令集。在一些情况下,核和另一核实施任务和其它软件在其上运行的不同操作***。
在812,提供到处理器的另一核的访问。这可以包括将核的上下文状态复制到另一核。提供到处理器的另一核和高速缓存的访问也可以包括从缓冲器或者其它存储器结构传送与任务的执行关联的状态信息。
在814,保存核的状态并且执行向另一核的任务切换。核的状态可以包括用于核的上下文状态、中断或者配置信息。备选地或者附加地,可以将与核关联的高速缓存中的数据保存到另一存储器,从而使得核和高速缓存能够被掉电。
在816,确定向另一核的任务切换是否成功。这可以包括确定另一核是否能够在任务切换器提供的切换点开始任务的执行。成功的任务切换可以在从核向另一核迁移任务的执行时不可为用户所察觉。
从操作816,如果任务切换未成功,则方法800可以继续至操作818,或者如果任务切换成功则继续至操作820。在818,用核继续任务的执行。在继续执行之前,可以恢复核的保存的状态从而使得执行能够在切换点恢复。
在820,使用处理器的另一核来执行任务。另一核的任务的执行在由任务切换器提供的切换点开始。用来执行任务的另一核的操作***或者指令集可以不同于先前执行任务的核的操作***或者指令集。另一核可以是比先前在其上执行任务的核更低性能、更低功率的核。这可以对于减少处理器为了执行任务而消耗的能量的量而言有效。
在822,使处理器的核掉电以节约能量。在一些情况下,向另一核切换任务准许核被掉电。在其它情况下,可以向另一核切换核的剩余任务以使得核能够被掉电。使核掉电可以包括将处理器的核置于消耗减少的能量的量的空闲或者睡眠状态中。
片上***
图9图示可以实施以上描述的各种实施例的片上***(SoC)900。可以在任何适当设备、比如视频游戏控制台、已启用IP的电视机、智能电话、桌面计算机、膝上型计算机、接入点、无线路由器、蜂窝宽带路由器、平板计算机、服务器、已启用网络的打印机、机顶盒、打印机、扫描仪、相机、相框、家用电器、恒温器、家用自动化设备和/或可以实施多核技术的任何其它类型的设备中实施SoC。
SoC900可以与电子电路装置、微处理器、存储器、输入/输出(I/O)逻辑控制、通信接口和部件、为了提供为设备、比如以上列举的设备中的任何设备提供通信耦合而需要的其它硬件、固件和/或软件。SoC900也可以包括将SoC的各种部件耦合以用于部件之间的数据通信的集成数据总线(未示出)。也可以用不同部件的许多组合实施包括SoC900的无线通信设备。在一些情况下,这些不同的部件可以被配置用于通过无线连接、链路或者接口实施这里描述的概念。
在这一示例中,SoC900包括各种部件、比如输入-输出(I/O)逻辑控制902(例如包括电子电路装置)和微处理器核904(例如如这里描述的任何全功能、实时或者微控制器核)。SoC900也包括存储器906,该存储器可以是任何类型的RAM、低延时非易失性存储器(例如闪速存储器)、ROM、一次性可编程存储器和/或其它适合的电子数据存储装置及其组合。备选地或者附加地,SoC900可以包括用于访问附加或者可扩展片外存储器的存储器接口、比如外部闪速存储器模块。SoC900也可以包括各种固件和/或软件、比如操作***908,该固件和/或软件可以是由存储器906维持的并且由微处理器904执行的计算机可执行指令。SoC900也可以包括其它各种通信接口和部件、通信部件、其它硬件、固件和/或软件。
SoC900包括任务切换器128、核管理器130、硬件加速器210(例如视频或者音频加速器)、显示器接口216和音频接口218(这些部件中的任何部件可以如以上指出的那样被体现为不同的或者组合部件)。在其它方面中,在附加的通信或者存储器部件与SoC900分离被体现时,SoC900可以包括与网络接口138、易失性存储器接口212或者NV存储器接口214的数据接口。参照环境100的相应部件和如图1-4所示各种配置描述的这些各种部件、功能和/或实体及其对应功能的示例。
任务切换器128可以独立或者与其它实体组合而被实施为由存储器906维持的并且由微处理器904执行的计算机可执行指令以实施这里描述的各种实施例和/或特征。任务切换器128也与SoC的其它实体整体地被提供、比如与核管理器130或者在SoC900内的另一适当软件、固件或者硬件部件中的一项或者两项集成。备选地或者附加地,任务切换器128和其它部件可以被实施为结合I/O逻辑控制902和/或SoC900的其它信号处理和控制电路实施的硬件、固件、固定逻辑电路装置或者其任何组合。
虽然已经用特定于结构特征和/或方法操作的言语描述了主题内容,但是将理解在所附权利要求中限定的主题内容不必限于以上所描述的特定特征或者操作、包括执行它们具有的顺序。

Claims (17)

1.一种用于在异构核之间切换任务的方法,包括:
确定正在由处理器的第一核执行的任务能够由所述处理器的第二核执行,所述第一核执行与由所述第二核执行的第二操作***不同的第一操作***,所述第一核实现64位或者32位指令集并且被配置用于在至少100MHz的频率操作,所述第二核实现32位或者16位指令集并且被配置用于在10-200MHz的频率操作;
从所述第一核向所述第二核切换所述任务的执行以有效用于减少所述处理器所消耗的能量的量,所述切换执行包括:
当所述任务在所述第一核上执行时,确定在应用层面、框架层面和硬件层面处针对所述任务的执行的相应切换点;
针对所述相应切换点生成能够用来在所述应用层面、所述框架层面和所述硬件层面处切换所述任务的执行的状态信息;以及
在所述切换点处并且经由所述状态信息,在所述应用层面、所述框架层面和所述硬件层面处从所述第一核向所述第二核切换所述任务的执行。
2.根据权利要求1所述的方法,其中由所述处理器的所述第一核执行的第一操作***是全功能操作***,并且由所述处理器的所述第二核执行的第二操作***是实时操作***。
3.根据权利要求1所述的方法,其中从所述第一核向所述第二核切换执行包括从所述第一操作***向所述第二操作***迁移所述任务的执行。
4.根据权利要求1所述的方法,其中所述处理器的所述第一核是高级处理器核,并且所述第二核是实时处理器核或者微控制器处理器核。
5.根据权利要求1所述的方法,其中由所述第一核实现的所述64位或者32位指令集包括比由所述第二核实现的所述32位或者16位指令集多的指令。
6.根据权利要求1所述的方法,其中所述处理器还包括实现与所述第二核的32位或者16位指令集不同的16位或者8位指令集的第三核,并且还包括从所述第一核或者所述第二核向所述第三核切换另一任务的执行以有效用于进一步减少所述处理器所消耗的能量的量。
7.根据权利要求1所述的方法,其中由所述处理器的所述第一核对所述任务的执行来发起对媒体的呈现,并且由所述处理器的所述第二核对所述任务的执行继续对所述媒体的所述呈现。
8.根据权利要求1所述的方法,还包括响应于用户输入而从所述处理器的所述第二核向所述处理器的所述第一核切换回所述任务的执行,以有效用于使得由所述处理器的所述第一核执行的另一任务能够对所述用户输入做出响应。
9.一种用于在异构核之间切换任务的方法,包括:
经由第一操作***发起应用,所述第一操作***由处理器的第一核执行,所述第一核实现64位或者32位指令集并且被配置用于在至少100MHz的频率操作,所述应用被配置用于由所述第一核执行;
经由所述第一操作***表现所述应用的用户界面;
确定何时能够使用第二操作***来执行所述应用的至少一部分,所述第二操作***不同于所述第一操作***并且由所述处理器的第二核执行,所述第二核实现32位或者16位指令集并且被配置用于在10-200MHz的频率操作;
响应于所述确定而从所述第一核向所述第二核切换所述应用的所述至少一部分的执行,所述切换执行包括:
从所述应用接收在应用层面、框架层面和硬件层面处针对所述应用的执行的相应切换点;
针对所述相应切换点生成能够用来在所述应用层面、所述框架层面和所述硬件层面处切换所述应用的执行的状态信息;
在所述切换点处并且经由所述状态信息,在所述应用层面、所述框架层面和所述硬件层面处从所述第一核向所述第二核切换所述应用的执行;以及
经由由所述第二核执行的所述第二操作***表现与所述应用的所述至少一部分关联的内容。
10.根据权利要求9所述的方法,其中与所述应用的所述至少一部分关联的所述内容包括视频内容或者音频内容。
11.根据权利要求9所述的方法,其中表现所述内容包括将所述内容引向硬件加速器或者从所述硬件加速器接收所述内容,所述硬件加速器被配置用于执行所述内容的所述表现。
12.根据权利要求11所述的方法,其中所述内容是流式内容,并且表现与所述应用的所述至少一部分关联的所述内容包括将所述流式内容的数据从网络接口引向所述硬件加速器。
13.根据权利要求9所述的方法,其中所述处理器被实现在智能电话、平板计算机、膝上型计算机、机顶盒设备、已启用因特网协议的电视机、个人媒体设备或者游戏设备中。
14.一种用于在异构核之间切换任务的***,包括:
处理器,被配置用于执行所述***的任务,所述处理器包括:
第一核,被配置用于在至少100MHz的频率执行第一软件,所述第一软件为64位或者32位软件;
第二核,被配置用于在10-200MHz的频率执行第二软件,所述第二软件具有比所述第一软件少的功能的32位或者16位软件,所述第二核具有比所述第一核少的电流泄漏;以及
任务切换器,被配置用于:
确定正在使用所述第一核的所述第一软件执行的任务能够使用所述第二核的所述第二软件来执行;
响应于所述确定而向所述任务所属于的应用发送核切换的指示;
从所述应用接收相应切换点,在所述相应切换点处能够在应用层面、框架层面和硬件层面处向所述第二核切换所述任务,以用于使用所述第二软件来执行;
针对所述相应切换点生成能够用来在所述应用层面、所述框架层面和所述硬件层面处切换所述任务的执行的状态信息;
在所述相应切换点处并且经由所述状态信息,在所述应用层面、所述框架层面和所述硬件层面处从所述第一核的所述第一软件向所述第二核的所述第二软件切换所述任务的执行以有效用于减少所述处理器所消耗的能量的量。
15.根据权利要求14所述的***,其中所述第一软件和所述第二软件是不同的操作***。
16.根据权利要求14所述的***,其中所述***部分地或者全部地被体现为片上***(SoC)。
17.根据权利要求14所述的***,其中所述第一核能够执行浮点算术运算,并且所述第二核不能够执行浮点算术运算。
CN201280043237.7A 2011-09-06 2012-09-06 在异构核之间切换任务 Active CN103782272B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201161531544P 2011-09-06 2011-09-06
US61/531,544 2011-09-06
US201261676482P 2012-07-27 2012-07-27
US61/676,482 2012-07-27
US13/604,407 US9069553B2 (en) 2011-09-06 2012-09-05 Switching tasks between heterogeneous cores
US13/604,407 2012-09-05
PCT/US2012/053964 WO2013036640A1 (en) 2011-09-06 2012-09-06 Switching tasks between heterogeneous cores

Publications (2)

Publication Number Publication Date
CN103782272A CN103782272A (zh) 2014-05-07
CN103782272B true CN103782272B (zh) 2017-03-01

Family

ID=47754170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280043237.7A Active CN103782272B (zh) 2011-09-06 2012-09-06 在异构核之间切换任务

Country Status (4)

Country Link
US (1) US9069553B2 (zh)
EP (1) EP2754038A1 (zh)
CN (1) CN103782272B (zh)
WO (1) WO2013036640A1 (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US7841436B2 (en) 2008-01-21 2010-11-30 Amigo Mobility International Personal mobility vehicle
US9069553B2 (en) 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
US9626273B2 (en) * 2011-11-09 2017-04-18 Nec Corporation Analysis system including analysis engines executing predetermined analysis and analysis executing part controlling operation of analysis engines and causing analysis engines to execute analysis
US10430190B2 (en) * 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
US9619282B2 (en) * 2012-08-21 2017-04-11 Lenovo (Singapore) Pte. Ltd. Task scheduling in big and little cores
US9471395B2 (en) * 2012-08-23 2016-10-18 Nvidia Corporation Processor cluster migration techniques
US9940170B2 (en) * 2012-12-24 2018-04-10 Empire Technology Development Llc Dynamically managing distribution of data and computation across cores for sequential programs
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US10423216B2 (en) * 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
JP6321325B2 (ja) * 2013-04-03 2018-05-09 ルネサスエレクトロニクス株式会社 情報処理装置および情報処理方法
US9842040B2 (en) * 2013-06-18 2017-12-12 Empire Technology Development Llc Tracking core-level instruction set capabilities in a chip multiprocessor
US20150007190A1 (en) * 2013-06-28 2015-01-01 Paul S. Diefenbaugh Techniques to aggregate compute, memory and input/output resources across devices
US20150220340A1 (en) * 2013-10-04 2015-08-06 Rajkishore Barik Techniques for heterogeneous core assignment
KR102205836B1 (ko) * 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
US9436698B2 (en) * 2014-02-12 2016-09-06 Lenovo (Singapore) Pte. Ltd. Sharing a file system between multiple operating systems
CN103944899B (zh) * 2014-04-18 2017-05-24 华为技术有限公司 用于实现通用公共无线接口协商状态机的装置和方法
US11200058B2 (en) * 2014-05-07 2021-12-14 Qualcomm Incorporated Dynamic load balancing of hardware threads in clustered processor cores using shared hardware resources, and related circuits, methods, and computer-readable media
US20150379678A1 (en) * 2014-06-25 2015-12-31 Doa'a M. Al-otoom Techniques to Compose Memory Resources Across Devices and Reduce Transitional Latency
WO2016000147A1 (zh) * 2014-06-30 2016-01-07 华为技术有限公司 一种访问存储设备的方法和主机
JP6078515B2 (ja) * 2014-11-13 2017-02-08 京セラドキュメントソリューションズ株式会社 電子機器およびプログラム
US20160055031A1 (en) * 2014-11-13 2016-02-25 Mediatek Inc. Dual-System Architecture With Fast Recover And Switching Of Operating System
US9891964B2 (en) 2014-11-19 2018-02-13 International Business Machines Corporation Network traffic processing
US9958932B2 (en) * 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9898071B2 (en) * 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9563431B2 (en) * 2014-12-26 2017-02-07 Intel Corporation Techniques for cooperative execution between asymmetric processor cores
US10318340B2 (en) * 2014-12-31 2019-06-11 Ati Technologies Ulc NVRAM-aware data processing system
US9684294B2 (en) * 2015-01-09 2017-06-20 Tyco Safety Products Canada Ltd. Multi-core processor for optimized power consumption in a security and home automation system
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
JP6868778B2 (ja) * 2015-12-18 2021-05-12 ソニーグループ株式会社 情報処理装置、情報処理方法およびプログラム
US11295747B2 (en) * 2018-03-07 2022-04-05 Dsp Group Ltd. System and a method for transmission of audio signals
CN116702849A (zh) * 2018-12-31 2023-09-05 英特尔公司 用于上下文传感器集线器的方法和装置
KR20200112439A (ko) * 2019-03-22 2020-10-05 삼성전자주식회사 멀티 코어를 포함하는 전자 장치 및 이의 패킷 처리를 위한 방법
US11288211B2 (en) 2019-11-01 2022-03-29 EMC IP Holding Company LLC Methods and systems for optimizing storage resources
US11288238B2 (en) 2019-11-01 2022-03-29 EMC IP Holding Company LLC Methods and systems for logging data transactions and managing hash tables
US11409696B2 (en) 2019-11-01 2022-08-09 EMC IP Holding Company LLC Methods and systems for utilizing a unified namespace
US11150845B2 (en) 2019-11-01 2021-10-19 EMC IP Holding Company LLC Methods and systems for servicing data requests in a multi-node system
US11741056B2 (en) 2019-11-01 2023-08-29 EMC IP Holding Company LLC Methods and systems for allocating free space in a sparse file system
US11392464B2 (en) 2019-11-01 2022-07-19 EMC IP Holding Company LLC Methods and systems for mirroring and failover of nodes
US11294725B2 (en) * 2019-11-01 2022-04-05 EMC IP Holding Company LLC Method and system for identifying a preferred thread pool associated with a file system
CN211350064U (zh) * 2020-03-25 2020-08-25 京东方科技集团股份有限公司 显示装置和显示***
US11550506B2 (en) 2020-09-29 2023-01-10 EMC IP Holding Company LLC Systems and methods for accessing hybrid storage devices
US11586508B2 (en) 2020-09-29 2023-02-21 EMC IP Holding Company LLC Systems and methods for backing up volatile storage devices
US11755223B2 (en) * 2020-09-29 2023-09-12 EMC IP Holding Company LLC Systems for modular hybrid storage devices
US11740822B2 (en) 2021-04-29 2023-08-29 EMC IP Holding Company LLC Methods and systems for error detection and correction in a distributed storage system
US11892983B2 (en) 2021-04-29 2024-02-06 EMC IP Holding Company LLC Methods and systems for seamless tiering in a distributed storage system
US11567704B2 (en) 2021-04-29 2023-01-31 EMC IP Holding Company LLC Method and systems for storing data in a storage pool using memory semantics with applications interacting with emulated block devices
US11669259B2 (en) 2021-04-29 2023-06-06 EMC IP Holding Company LLC Methods and systems for methods and systems for in-line deduplication in a distributed storage system
US11604610B2 (en) * 2021-04-29 2023-03-14 EMC IP Holding Company LLC Methods and systems for storing data in a distributed system using offload components
US11579976B2 (en) 2021-04-29 2023-02-14 EMC IP Holding Company LLC Methods and systems parallel raid rebuild in a distributed storage system
US12007942B2 (en) 2021-10-27 2024-06-11 EMC IP Holding Company LLC Methods and systems for seamlessly provisioning client application nodes in a distributed system
US11762682B2 (en) 2021-10-27 2023-09-19 EMC IP Holding Company LLC Methods and systems for storing data in a distributed system using offload components with advanced data services
US11677633B2 (en) 2021-10-27 2023-06-13 EMC IP Holding Company LLC Methods and systems for distributing topology information to client nodes
US11922071B2 (en) 2021-10-27 2024-03-05 EMC IP Holding Company LLC Methods and systems for storing data in a distributed system using offload components and a GPU module

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673219A (zh) * 2008-09-12 2010-03-17 财团法人工业技术研究院 多任务处理器及其任务切换方法

Family Cites Families (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5535397A (en) 1993-06-30 1996-07-09 Intel Corporation Method and apparatus for providing a context switch in response to an interrupt in a computer process
EP0689141A3 (en) 1994-06-20 1997-10-15 At & T Corp Disruption-based hardware support for system performance profiling
US5649135A (en) 1995-01-17 1997-07-15 International Business Machines Corporation Parallel processing system and method using surrogate instructions
US5778070A (en) 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
US5933627A (en) 1996-07-01 1999-08-03 Sun Microsystems Thread switch on blocked load or store using instruction thread field
US5943493A (en) 1997-08-21 1999-08-24 Advanced Micro Devices Inc. Retargetable VLIW computer architecture and method of executing a program corresponding to the architecture
KR20010031884A (ko) 1997-11-07 2001-04-16 추후제출 iVLIW PE 대 PE 통신으로 효율적인 동기식MIMD 연산을 위한 방법 및 장치
US6018759A (en) 1997-12-22 2000-01-25 International Business Machines Corporation Thread switch tuning tool for optimal performance in a computer processor
US6823517B1 (en) 2000-01-27 2004-11-23 Andrew E. Kalman Multi-tasking-real-time operating system for microprocessors with limited memory that constrains context switching to occur only at task level
JP4542722B2 (ja) 2001-04-25 2010-09-15 富士通株式会社 命令処理方法
DE60223051T2 (de) 2001-08-29 2008-07-24 Analog Devices Inc., Norwood Anordnung und verfahren zum schnellen einschalten einer phase-locked loop
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7334086B2 (en) 2002-10-08 2008-02-19 Rmi Corporation Advanced processor with system on a chip interconnect technology
US7203821B2 (en) 2003-01-08 2007-04-10 Sun Microsystems, Inc. Method and apparatus to handle window management instructions without post serialization in an out of order multi-issue processor supporting multiple strands
EP2431839B1 (en) * 2003-03-18 2015-09-23 Panasonic Intellectual Property Management Co., Ltd. Processor, driving method thereof, and information processing device
US7249246B1 (en) 2003-06-20 2007-07-24 Transmeta Corporation Methods and systems for maintaining information for locating non-native processor instructions when executing native processor instructions
US7784057B2 (en) 2003-08-27 2010-08-24 Intel Corporation Single-stack model for high performance parallelism
US7765342B2 (en) 2005-09-07 2010-07-27 Florida State University Research Foundation Systems, methods, and computer program products for packing instructions into register files
CN1832349A (zh) 2006-04-19 2006-09-13 北京希格玛晶华微电子有限公司 一种电容测量触摸感应、辨认方法及实现装置
US8803813B2 (en) 2006-05-10 2014-08-12 Cypress Semiconductor Corporation Sensing device
JP4936517B2 (ja) * 2006-06-06 2012-05-23 学校法人早稲田大学 ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7818542B2 (en) 2007-07-10 2010-10-19 Globalfoundries Inc. Method and apparatus for length decoding variable length instructions
US7818543B2 (en) 2007-07-10 2010-10-19 Globalfoundries Inc. Method and apparatus for length decoding and identifying boundaries of variable length instructions
US8108056B2 (en) * 2007-11-13 2012-01-31 Rockwell Automation Technologies, Inc. Industrial controller using shared memory multicore architecture
US8095775B1 (en) 2007-11-21 2012-01-10 Marvell International Ltd. Instruction pointers in very long instruction words
KR101366075B1 (ko) * 2007-12-20 2014-02-21 삼성전자주식회사 멀티코어 플랫폼에서의 태스크 이동 방법 및 장치
US8517383B2 (en) 2008-06-20 2013-08-27 Pure Imagination, LLC Interactive game board system incorporating capacitive sensing and identification of game pieces
DE112009001503T5 (de) 2008-06-20 2011-04-28 Mattel, Inc., El Segundo Kapazitives Tastfeld und Spielzeug, das ein solches enthält
US20100242014A1 (en) * 2009-03-17 2010-09-23 Xiaohan Zhu Symmetric multi-processor operating system for asymmetric multi-processor architecture
US9569270B2 (en) * 2009-04-21 2017-02-14 Empire Technology Development Llc Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts
US8212159B2 (en) 2009-05-11 2012-07-03 Freescale Semiconductor, Inc. Capacitive touchpad method using MCU GPIO and signal processing
US8675001B2 (en) * 2009-06-04 2014-03-18 International Business Machines Corporation Efficient memory management for path determination in memory space limited parallel processing systems
US8112677B2 (en) * 2010-02-26 2012-02-07 UltraSoC Technologies Limited Method of debugging multiple processes
US8884920B1 (en) 2011-05-25 2014-11-11 Marvell International Ltd. Programmatic sensing of capacitive sensors
US10038903B2 (en) * 2011-06-22 2018-07-31 Texas Instruments Incorporated Method and apparatus for sample adaptive offset parameter estimation in video coding
US9069553B2 (en) 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
WO2013101139A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Providing an asymmetric multicore processor system transparently to an operating system
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101673219A (zh) * 2008-09-12 2010-03-17 财团法人工业技术研究院 多任务处理器及其任务切换方法

Also Published As

Publication number Publication date
CN103782272A (zh) 2014-05-07
US9069553B2 (en) 2015-06-30
WO2013036640A1 (en) 2013-03-14
EP2754038A1 (en) 2014-07-16
US20130061237A1 (en) 2013-03-07

Similar Documents

Publication Publication Date Title
CN103782272B (zh) 在异构核之间切换任务
EP1591909B1 (en) Task-oriented processing as an auxiliary to primary computing environments
US8156353B2 (en) Techniques for communications power management based on system states
TWI556089B (zh) 動態電源供應單元軌切換之技術
JP5707321B2 (ja) スリーププロセッサ
TWI427472B (zh) 用以減少電力耗損之方法,設備,系統及物件
CN102778943B (zh) 状态控制方法、装置及便携终端
US20120233622A1 (en) Portable device and task processing method and apparatus therefor
CN102959487B (zh) 提供用于将电子设备从低功率模式唤醒的唤醒逻辑
JP2013257886A (ja) 電力管理のためのアイドル期間報告
JP2005312011A (ja) ステートマシンの改善されたパワーマネジメントを提供するシステムおよび方法
GB2458805A (en) Generating a power management policy for components of a system based on data from other components
CN102035862A (zh) Svc集群中配置节点的故障移交方法和***
US20140136829A1 (en) Method, Network Card, and Hard Disk Card for Accessing Shut-Down Hard Disk
US9128891B2 (en) Method, mobile terminal and computer program product for sharing storage device
CN103765342A (zh) 用于连接待机的进程的挂起和/或节制
US9477293B2 (en) Embedded controller for power-saving and method thereof
WO2013026311A1 (zh) 一种应用程序处理方法、装置和移动终端
US9477255B2 (en) Systems and methods for suspending idle devices based on idle policies for the devices
CN103718133A (zh) 用于连接待机的进程的挂起和/或节制
WO2016179900A1 (zh) 一种路由设备及其节电方法、装置、存储介质
JP6785332B2 (ja) ブルートゥーススピーカーデータ処理の方法、装置及びブルートゥーススピーカー
CN105224060B (zh) 一种计算机运行控制方法、装置、电路及计算机
CN110413098A (zh) 一种控制方法及装置
CN211350064U (zh) 显示装置和显示***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200426

Address after: Singapore City

Patentee after: Marvell Asia Pte. Ltd.

Address before: Ford street, Grand Cayman, Cayman Islands

Patentee before: Kaiwei international Co.

Effective date of registration: 20200426

Address after: Ford street, Grand Cayman, Cayman Islands

Patentee after: Kaiwei international Co.

Address before: Hamilton, Bermuda

Patentee before: Marvell International Ltd.

Effective date of registration: 20200426

Address after: Hamilton, Bermuda

Patentee after: Marvell International Ltd.

Address before: Babado J San Mega Le

Patentee before: MARVELL WORLD TRADE Ltd.