CN104471587B - 处理器中的方法,装置和计算机程序产品 - Google Patents

处理器中的方法,装置和计算机程序产品 Download PDF

Info

Publication number
CN104471587B
CN104471587B CN201280074716.5A CN201280074716A CN104471587B CN 104471587 B CN104471587 B CN 104471587B CN 201280074716 A CN201280074716 A CN 201280074716A CN 104471587 B CN104471587 B CN 104471587B
Authority
CN
China
Prior art keywords
thread
processor core
processor
command sequence
described
Prior art date
Application number
CN201280074716.5A
Other languages
English (en)
Other versions
CN104471587A (zh
Inventor
M·拉蒂马基
Original Assignee
诺基亚技术有限公司
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 诺基亚技术有限公司 filed Critical 诺基亚技术有限公司
Priority to PCT/FI2012/050472 priority Critical patent/WO2013171362A1/en
Publication of CN104471587A publication Critical patent/CN104471587A/zh
Application granted granted Critical
Publication of CN104471587B publication Critical patent/CN104471587B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING; 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to network resources
    • H04L63/105Multiple levels of security

Abstract

公开了一种方法,在该方法中检查与线程的指令序列有关的信息以确定所述线程的安全条件。还通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式。如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行所述线程的所述指令序列。还公开了用于实现所述方法的装置和计算机程序产品。

Description

处理器中的方法,装置和计算机程序产品

技术领域

[0001] 本发明涉及运行多核处理器中的线程的指令序列的方法。本发明还涉及一种装 置,该装置包括至少一个处理器和包含计算机程序代码的至少一个存储器,该至少一个存 储器和该计算机程序代码被配置为使用所述至少一个处理器使得所述装置运行多核处理 器中的线程的指令序列。本发明还涉及计算机程序产品,该计算机程序产品包含一个或多 个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序 列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:运行多核处理器中的 线程的指令序列。

背景技术

[0002] 这部分旨在提供在权利要求书中陈述的本发明的背景或上下文。此处的描述可以 包含可以被追求的构思,但其不是必须是先前己设想或追求的构思。因此,除非此处另外指 出,否则本节所述的内容不是本申请中的说明书和权利要求书的现有技术,并且不通过包 含在本部分中而承认其为现有技术。

[0003] 在含有两个或更多处理器核心的处理器中,即多核处理器,不同的应用可以同时 由不同的处理器核心来运行。如果所有的处理器核心具有相同的指令集或如果应用己经被 编译到不同的指令集,则还可能在多核处理器的两个或更多处理器核心之间共享应用的运 行。

[0004] 多核处理器的不同处理器核心可以实现类似的指令集,或处理器核心中的全部或 一些处理器核心可以实现至少部分不同的指令集。当处理器核心实现部分不同的指令集 时,可能存在重叠的指令集,该重叠的指令集对于处理器核心中的两个或更多处理器核心 而言或甚至对于所有的处理器核心而言是共同的。

发明内容

[0005] 在下文中,术语多核处理器涉及具有两个和更多处理器核心的处理器,以及该核 心可以具有类似或不同的指令集。术语异构多核处理器涉及多核处理器,在该多核处理器 中,至少一个处理器核心比该多核处理器的另一个处理器核心具有至少部分不同的指令 集。在一些实施例中,异构多核处理器中的每个处理器核心比其它处理器核心具有至少不 同的指令集。在异构处理器核心中,在处理器核心中可能存在可以使用的不同类型的安全 状态(模式)。

[0006]在具有多核处理器的装置中实现的一些应用中,不是总是需要所有可以使用的处 理器能力,以及所述多核处理器的处理器核心中的一些处理器核心可以在大多数时间是空 闲的。在另一方面,一些应用或一些应用的线程可能需要针对运行该线程的一些安全要求。 因此,可能需要选择能够支持该安全要求的此类处理器核心,或在处理器核心中运行该线 程前,能够将处理器核心的状态改变到对应于该安全要求的安全状态。

[0007]根据本发明的一些示例实施例,可以如下来执行具有一些安全要求的线程的调 度:

[0008] 在没有运行任何线程的此类处理器核心上调度线程,以便能够由该处理器核心满 足它们的安全要求。如果针对选择处理器核心存在若干可能性,则可以在最接近该安全要 求的处理器核心上,但是以满足该安全要求的方式,来调度该线程。也就是说,在可能具有 更多安全能力但是不小于由该线程所要求的安全能力的此类处理器核心上调度线程。

[0009] 在一个处理器核心上,存在针对在这个处理器核心上的具有相同优先级的所有线 程的循环调度法。如果存在准备运行的较高优先级线程,则不执行较低优先级的线程。

[0010] 当在系统上将调度新线程以及没有合适的处理器核心空闲时,调度器尝试改变空 闲处理器核心的安全状态,以便它满足该线程的安全要求。如果这是可能的,则改变该处理 器核心的状态,以及在该核心上调度该线程。如果没有空闲的处理器核心,则调度器尝试改 变繁忙处理器核心的安全状态以及将正在该处理器核心上运行的线程移动到一个或多个 其它处理器核心。如果不能找到针对新线程的合适的处理器核心,则改变处理器核心中的 一个处理器核心的安全状态,以及在此之后,调度器将进行线程的负载均衡,以便在该处理 器核心上可以更均匀地均衡负载。

[0011] 如果在该系统的处理器核心上没有以便在该系统上能够运行处于相同优先级水 平的所有线程的安全状态的组合,则调度器可以以循环的方式开始改变处理器核心的安全 状态,以便能够运行一部分线程,同时其它线程等候轮到它们。

[0012] 调度算法旨在用于异构多核处理器系统,其中核心具有不同数目的安全状态,能 够动态地改变该安全状态。操作系统可以具有针对每个线程的比特向量以描述它的安全要 求。

[0013]在一些实施例,以某些类型的代码块(连续的指令集,也称复合语句)被包含在该 线程的相同片中而不管该线程的该片的长度是否与一个时间片的长度相同还是不同于一 个时间片的长度的方式,将线程分成片。在这个上下文中,术语不可以分割的代码块可以用 于表示应当在相同处理器核心内运行的以及被包含在线程的相同片中的代码块。例如,循 环,if声明,switch声明等,可以是将被包含在线程的相同片中的此类代码块,以便在该片 中的整个代码块由调度器已经选择的用于运行该线程的该片的相同处理器核心来运行。 [00M]在一些实施例中,编译器可以尝试,以线程的片的长度(以运行时间为单位)尽可 能接近于一个时间片的长度的方式,但是这可能不是总是可能的,来生成针对该线程的代 码。

[0015]在运行时间,如果不需要考虑安全问题,则可以以以下方式来执行该调度。在每个 时间片的开始,可以重新调度线程。可以针对该线程的前一个片已经结束的此类线程来执 行该调度。线程主要地继续地在上一个时间片中它位于的相同处理器(如果在二进制代码 中,它仍然被标记为潜在的或最优的处理器核心,或如果该线程的该片还没有结束)上运 行。然而,在下一个时间片期间,该线程可能不总是继续运行,而是可以将该线程放入处理 器核心的队列中以等待直到调度器给予该线程处理时间。如果存在新进程或调度器确定的 是,不同于先前用于该线程的处理器核心的另一个处理器核心是针对该线程的最优的处理 器核心,则将该线程放入该最优处理器核心的队列中。在将线程己经放入它们最优的处理 器核心的队列中后,可以存在针对具有超过一个可以应用的处理器核心的线程的负载均衡 以优化整体负载情况。可以执行这个操作,以便调查具有最高负载的第一处理器核心。线 程,其具有在最优编译和基本编译之间的最小运行时间差,被移动到具有最低负载的处理 器核心。该调度器接着将计算以这种方式该系统的整体吞吐量是否更好。如果否,则可以将 该线程移动回到原始的处理器核心。最后步骤是重复直到没有能够被移动以増加吞吐量的 线程,或如果达到结束优化的另一个条件。

[0016] 根据本发明的第一方面,提供了一种方法,所述方法包括:

[0017] 检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0018] 通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0019] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行所述线程的所述指令序列。

[0020] 根据本发明的第二面,提供了一种装置,所述装置包括处理器和包含计算机程序 代码的存储器,所述存储器和所述计算机程序代码被配置为使用所述处理器使得所述装 置:

[0021] 检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0022] 通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0023] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0024] 根据本发明的第三面,提供了计算机程序产品,所述计算机程序产品包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个 序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:

[0025] 检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0026] 通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0027] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0028] 根据本发明的第四方面,提供了一种装置,所述装置包括:

[0029] 多核处理器,其包括至少第一处理器核心和第二处理器核心;

[0030] 第一线程的指令序列,其被配置为在所述多核处理器的处理器核心中被运行; t〇〇31] 检查单元,其被配置为:

[0032] 检查与线程的指令序列有关的信息以确定所述线程的安全条件;通过使用所述安 全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;

[0033] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0034] 根据本发明的第五方面,提供了一种装置,所述装置包括:

[0035] 用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件;

[0036] 用于通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述 安全条件的合适的安全模式的构件;

[0037] 用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一 个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核 心作为潜在的处理器核心以运行第一线程的所述指令序列的构件。

附图说明

[0038] 在以下,将参照附图更详细地描述本发明,其中:

[0039]图1描绘了根据示例实施例的装置的框图; _

[0040] 图2描绘了多核处理器的处理器核心的一些功能单元的示例;

[0041] 图3描绘了在多核处理器中的多线程的运行的示例;

[0042]图4描绘了线程表的示例;

[0043]图5是方法的示例的流程图;

[0044] 图6还示意性地示出了使用无线和有线网络连接来连接的利用本发明的实施例的 电子设备;

[0045] 图7描绘了根据本发明的示例实施例的装置的示例框图;

[0046] 图8还示意性地示出了使用无线和有线网络连接来连接的利用本发明的实施例的 电子设备;以及

[0047] 图9还示意性地示出了具有正常模式和不同的安全模式的处理器核心的结构。

具体实施方式

[0048] 以下进一步详细地描述用于提供多核处理器的改进操作的合适的装置和可能的 机制。在这点上,首先参照图7,图7示出了适用于利用本发明的一些实施例的用户设备的示 例,以及图8,图8示出了示例性装置或电子设备50的框图,该示例性装置或电子设备50可以 并入根据本发明的实施例的装置。

[0049]电子设备50例如可以是无线通信系统的移动终端或用户设备。然而,将理解的是, 可以在可以包括多核处理器的任何电子设备或装置内实现本发明的实施例。

[0050] 电子设备50可以包括:用于容纳和保护该设备的壳体30。电子设备50还可以包括 以液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适合于显示图像 或视频的任何合适的显示器技术。电子设备50还可以包括小键盘34。在本发明的其它实施 例中,可以使用任何合适的数据或用户接口机构。例如,用户接口可以被实现成作为触摸敏 感显示器的一部分的虚拟键盘或数据输入系统。电子设备可以包括麦克风36或任何合适的 音频输入器,其可以是数字或模拟信号输入器。电子设备50还可以包括音频输出设备,在本 发明的实施例中,所述音频输出设备可以是以下中的任何一个:耳机38、扬声器、或模拟音 频或数字音频输出连接件。电子设备50还可包括电池40 (或者在本发明的其它实施例中,可 以由任何合适的移动能量设备,诸如太阳能电池、燃料电池或发条发电机,向该设备提供电 力)。电子设备还可以包括红外线端口 42以用于至其它设备的短距视线通信。在其它实施例 中,电子设备50还可以包括任何合适的短距通信解决方案,诸如例如蓝牙无线连接或USB/ 火线有线连接。

[0051]如图8中不出的,电子设备50可以包括用于控制电子设备50的一个或多个控制器 56或一个或多个处理器。控制器邪可以连接到存储器58,在本发明的实施例中,存储器58可 以用户数据和/或其它数据,和/或还可以存储用于在控制器56上实现的指令。控制器56还 可以连接到编解码电路54,该编解码电路54适用于执行对音频和/或视频数据的编码和解 码或帮助由控制器56可能执行的编码和解码。

[0052]电子设备50还可以包括卡阅读器48和智能卡46,例如通用集成电路卡(UICC)和通 用集成电路卡阅读器以用于提供用户信息并且适用于提供用于在网络上对用户进行认证 和授权的认证信息。

[0053]电子设备50可以包括:无线电接口电路52,其连接到控制器56并且适用于生成例 如用于与蜂窝通信网络、无线通信系统和/或无线局域网进行通信的无线通信信号。电子设 备50还可以包括:天线44,其连接到无线电接口电路52以用于将在无线电接口电路52处生 成的射频信号传送给其它装置(多个)以及用于接收来自其它装置(多个)的射频信号。

[00M]在本发明的一些实施例中,电子设备50包括:相机61,其能够记录或检测个体帧, 该个体帧然后被运送给用于处理的编解码器54或控制器。在本发明的其它实施例中,电子 设备可以在传输和/或存储之前接收来自另一个设备的用于处理的图像数据。在本发明的 其它实施例中,电子设备50可以无线地或通过有线连接接收用于处理的图像。

[0055]参照图6,示出了系统的示例,在该系统内能够使用本发明的实施例。系统10包括: 多个通信设备,它们能够通过一个或多个网络进行通信。系统1〇可以包括有线网络或无线 网络的任何组合,有线网络或无线网络包括但不限于:无线蜂窝电话网络(诸如全球移动通 信系统(GSM),通用移动通信系统(UMTS),码分多址接入(CDMA)网络等),无线局域网 (WLAN),诸如由电子电气工程师协会(IEEE) 802 • x标准中的任何标准定义的WLAN,蓝牙个域 网,以太网局域网,令牌环局域网,广域网以及互联网。

[0056]系统10可以包含:适用于实现本发明的实施例的有线和无线通信设备两者或电子 设备50。

[0057]例如,在图6中示出的系统示出了移动电话网络11和互联网28的表示。至互联网28 的连通性可以包含但不限于:长距无线连接,短距无线连接,以及各种有线连接,包括但不 限于电话线,电缆线,电力线,和类似的通信路径。

[0058]在系统10中示出的示例性通信设备可以包含但不限于:电子设备或装置50,个人 数字助理(PDA)和移动电话的组合14,PDA 16,集成消息发送设备(IMD) 18,桌面计算机20, 笔记本计算机22。电子设备50可以是固定的或当由移动中的个体携带时是移动的。电子设 备50还可以位于任何模式的交通工具中,交通工具包含但不限于汽车、卡车、出租车、公交 车、火车、船、飞机、自行车、摩托车或任何类似的合适模式的交通工具。

[0059] —些或其它装置可以发送和接收呼叫和消息,并且通过至基站24的无线连接25与 服务提供者通信。基站24可以连接到网络服务器26,其允许移动电话网络11和互联网28之 间的通信。系统可以包含附加的通信设备和各种类型的通信设备。

[0060]通信设备可以使用各种传输技术来通信,各种传输技术包括但不限于:码分多址 接入(CDMA),全球移动通信系统(GSM),通用移动通信系统(UMTS),时分多址接入(TDMA),频 分多址接入(FDMA),传输控制协议-互联网协议(TCP-IP),短消息服务(SMS),多媒体消息服 务(MMS),电子邮件,即时消息服务(IMS),蓝牙,IEEE 802.11和任何类似的无线通信技术。 在实现本发明的各种实施例中涉及的通信设备可以使用各种介质进行通信,各种介质包含 但不限于:无线电,红外线,激光,电缆连接,和任何合适的连接。

[0061] 图1详细地描绘了可以使用本发明的装置1〇〇的示例。装置100可以是电子设备50 或另一个设备的一部分。例如,装置100可以是诸如台式计算机20的计算设备的一部分。

[0062] 装置100包括多核处理器102。多核处理器102包括两个或更多处理器核心104a-l〇4d,以及处理器核心104a-104d中的每个处理器核心能够同时运行程序代码。处理器核心 104a-104d中的每个处理器核心可以包括:用于处理器核心1〇4的操作的功能单元。在图2中 描绘了多核处理器102的示例实施例。例如,处理器核心可以包括:微码105,其将程序代码 指令翻译成处理器核心104a-104d中的电路级操作。微码是指令和/或表的集合,它们控制 处理器核心如何操作。程序代码指令通常是以已经通过由编译器将高级程序代码编译成二 进制代码而获得的二进制代码(也称,机器代码)的形式。该二进制代码能够被存储在存储 器58中,处理器104的指令提取器106可以从存储器58提取用于由处理器核心104a-104d运 行的指令。所提取的指令可以由指令解码器107进行解码,以及可以将解码的指令提供给处 理器核心104a-104d的指令运行器108,指令运行器108运行解码的指令,即执行该指令指示 的任务。在一些实施例中,可能没有事先编译高级程序代码,而是在运行时间可以由解释器 来解释它。将被编译的(高级)程序代码还能够被称为源代码。此外,通过使用将由汇编器编 译的低级指令编写的程序代码也可以被称为源代码。

[0063] 不失一般性,多核处理器的处理器核心中的一个处理器核心能够被称为第一处理 器核心,另一个处理器核心能够被称为第二处理器核心等。还清楚的是,在不同的实施例 中,处理器核心的数目可以不同于四个。例如,处理器核心102可以包括:二、三、五、六、七、 八或超过八个处理器核心。在以下中,处理器核心一般通过标记104来引用,但是当表示某 一处理器核心时,出于清楚也可以使用标记104a-104d。

[0064] 处理器核心104还可以包括:用于存储数据的一组或多组寄存器110。在电路级上, 寄存器可以被实现在多核处理器的内部存储器中或实现成内部寄存器。处理器核心104还 可以具有一个或多个接口(总线),该一个或多个接口(总线)用于将处理器核心104与该装 置的其它电路连接。可以提供一个接口以用于接收指令,以及可以提供另一个接口 127以用 于读取和/或写入数据,或它们可以使用相同的接口。也可以有用于提供地址信息的地址接 口 128,以便处理器核心104能够从程序代码存储器的正确位置提取指令以及从数据存储器 提取数据。在一些实施例中,地址接口和数据接口可以完全或部分重叠,即相同的线路用于 地址线和数据线。多核处理器还可以包括通用输入/输出接口 129。

[0065] 多核处理器102可以使用这些接口与在该多核处理器外部的单元进行通信。例如, 多核处理器可以经地址接口 128在地址总线138上提供存储器地址,以及经由数据接口 127 在数据总线137上提供读取指令,其中在编址的存储位置中存储的信息可以被多核处理器 读取,或可以将数据存储在编址的存储器位置中。以这种方式,处理器核心104可以从存储 器58读取指令和数据,以及将数据写入到存储器58。

[0066] 多核处理器102可以包括针对指令、数据和地址的总线130。这些总线可以由处理 器核心104a-104d共享,其中每个核心在每个时间点可以访问一种总线,或可以针对处理器 核心中的每个处理器核心提供各自的总线。

[0067]多核处理器1〇2还可以包括:缓存存储器或多个缓存存储器以用于存储最近使用 的信息,诸如指令和/或数据。缓存存储器的一些示例是1级(L1)缓存器116、2级(L2)缓存器 118和/或3级(L3)缓存器120。在一些实施例中,如图2中说明的,2级缓存器118和/或3级缓 存器120在多核处理器102的外部,然而在一些其它实施例中,它们可以是多核处理器1〇2的 一部分。在一些情况下,处理器核心104可以首先检查由当前指令寻址的下一个指令或数据 是否己经在缓存存储器中存在,以及如果存在,则不需要从该多核处理器102外部的存储器 58来提取该指令或数据。这种类型的操作可以加速处理器核心104的处理时间。图2说明了 多核处理器的处理器核心的示例实施例,其中针对处理器核心104提供了一组寄存器110和 三个缓存存储器116、118、120。

[0068]处理器核心104中的一个或多个处理器核心可以包括:其它功能单元FU,诸如算术 逻辑单元(ALU) 124、浮点单元(FPU) 122、指令提取器106、指令解码器107、指令运行器108、 图像加速器等。处理器核心104中的一个或多个处理器核心还可以包括:L1缓存器116、L2缓 存器118和/或L3缓存器120。

[0069] 在一些实施例中,处理器核心104中的一个或多个处理器核心还可以包括翻译单 元131,翻译单元131可以翻译二进制代码或二进制代码的一部分,以便处理器核心1〇4能够 运行该二进制代码。例如,在优化期间(在本申请中随后将描述该优化),可以选择用于运行 线程的处理器核心。线程的二进制代码可能不总是基于所选择的处理器核心的指令集,其 中翻译单元可以将二进制代码从一个指令集翻译到所选择的处理器核心支持(即能够运 行)的另一个指令集。

[0070]图9不意性地不出了具有正常模式902和不同的安全模式904、906的处理器核心 104的结构。处理器核心104可以例如具有第一安全模式904和第二安全模式906。在一些实 施例中,处理器核心104还可以具有比第一安全模式904和第二安全模式906更多的安全模 式。在一些其它实施例中,处理器核心104除了正常模式之外还具有仅一个安全模式。在多 核处理器102中,每个处理器核心104不是必须彼此类似,而是不同的处理器核心104可以具 有不同类型的属性。例如,处理器核心104中的一个或多个处理器核心可以具有正常模式和 一个安全模式,一些其它处理器核心104可以具有正常模式和两个或更多安全模式,以及一 些处理器核心104可以仅具有正常模式以及没有安全模式。

[0071]当处理器核心104正在正常模式中操作时,它不可以访问装置的仅针对安全模式 保留的此类部件。例如,装置100可以包括:安全存储器908,当处理器核心104正在正常模式 中操作时,不可以访问该安全存储器908,但是当该处理器正在安全模式904、906 (如果有的 话)中的一个安全模式中操作时,可以访问该安全存储器908。此外,在不同的安全模式之 间,装置100的不同单元的可访问性也可以不同。装置100可以包括:仅在例如第二安全模式 906中可以访问的但是在第一安全模式904和在正常模式902中不可以访问的单元。因此,通 过使用不同的安全模式,能够设计针对不同种类的操作的不同种类的安全水平。这可以改 进防护恶意软件或其它试图破坏装置100的安全。

[0072] 在以下的非限制性示例中,多核处理器102具有四个处理器核心104a-104d。第一 处理器核心104a具有仅正常模式902,第二处理器核心104b具有正常模式902和第一安全模 式904,以及第三处理器核心l〇4c和第四处理器核心104d具有正常模式9〇2、第一安全模式 904和第二安全模式906。

[0073] 在正常模式902中,处理器核心1〇4和装置100的其它单元不可以访问位于多核处 理器102的安全部件中的单元。当处理器核心1〇4在第一安全模式904中进行操作时,处理器 核心104可以访问多核处理器的第一安全部件以及也可以访问在正常模式902中可以访问 的那些部件。当处理器核心104在第二安全模式906中进行操作时,处理器核心104可以访问 多核处理器102的第二安全部件以及也可以访问在正常安全模式902和/或在第一安全模式 904中可以访问的那些部件。

[0074] 在一些实施例中,可以例如通过特定的指令和/或通过发起特定中断来选择处理 器104的模式,该指令和中断切换处理器核心104以在由该指令或由该中断指示的模式中进 行操作。例如,如果应用软件具有应当在安全模式中的一个安全模式中运行的部分,则编译 器可以将特定指令添加到编译的程序代码。分别地,在该部分的最后,代码可以包含:指令, 该指令使得处理器核心104将模式切换到正常模式或可能切换到另一个安全模式。

[0075] 装置100的操作可以由操作系统(OS) 111来控制,OS 111是可以由多核处理器102 的处理器核心104中的一个或多个处理器核心运行的一组指令序列。在一些实施例中,处理 器核心中的一个处理器核心可以专用于操作系统,或专用于该操作系统的一些部分。操作 系统可以包括:设备驱动器,其用于控制装置100和/或电子设备50的不同单元,库,其用于 提供针对计算机程序的某些服务以便不需要随用于执行每个操作的指令来包含该计算机 程序但是该计算机程序可以含有子例程调用或其它指令,子例程调用或其它指令使得当此 类调用在该计算机程序的指令序列中存在时,多核处理器运行该库中的该子例程。例如,用 于在电子设备50的显示器32上写数据和/或用于从电子设备50的小键盘34读取数据的操作 可以被提供作为操作系统的库中的子例程。

[0076]计算机程序,其还可以被称为应用或软件程序,包括用于执某一任务或某些任务 的一组或多组指令序列。可以作为一个或多个线程或任务来运行计算机程序。当操作系统 运行应用或应用的一部分时,操作系统可以创建进程,该进程包括计算机程序的线程中的 至少一个线程。线程可以具有状态,该状态指示该线程是否是活动的、运行中、准备运行、等 待事件、保持或停止。还可以有针对线程定义的其它状态,以及在另一方面,每个线程不必 具有提及的所有这些状态。例如,从不等待事件的线程可以存在。

[0077] 操作系统111还包括调度器112或其它构件以用于调度和控制在装置100中是活动 的进程的不同任务或线程。调度器112可以针对每个处理器核心104而言是共同的,或每个 处理器核心104可以装备有自己的调度器112。调度器112的一个目的是确定接着应当向进 程中的哪个线程提供处理时间。调度器112可以尝试针对每个活动的线程或进程提供基本 上相同数量的处理时间,以便活动的线程或进程基本上不会减速或停止操作。然而,可能存 在一些线程或进程具有比一些其它线程或进程更高的优先级的情况,其中调度器112可以 向高优先级的线程或进程提供比低优先级的线程或进程更多的处理时间。也可能存在为什 么不向每个线程或进程提供相同处理时间的其它原因。例如,如果线程等待事件出现,则在 该事件出现之前,可以不必针对该线程提供处理时间。

[0078]调度器112可以基于例如定时器中断。例如,定时器1M被编程以在某些时间间隔 生成中断,以及由多核处理器的中断模块114来检测该中断,其中发起对应的中断服务例程 136。中断服务例程可以包括用于实现调度器II2的操作的指令,或它可以包括用于设置例 如由操作系统检测的标志或信号量的指令,该操作系统接着运行调度器II2。

[0079] 多核处理器102和处理器核心104也可以包括其它电路,但是在此没有详细地示出 它们。

[0080] 在本发明的一些实施例中,由编译器将应用的源代码编译到片中,片具有处理器 核心的近似一个时间片的持续时间,或还可以更长。编译器可以使用该处理器核心的指令 集,该指令集最佳匹配针对线程的每个片的源代码的操作。例如,如果编译器具有一个处理 器核心具有一个或多个安全模式的信息,该处理器核心最佳适合于该线程的可能的安全要 求,则该编译器可以使用这个处理器核心的指令集来编译这些操作以及在二进制代码中插 入该线程的这个片应当由该处理器核心来处理的指示。编译器还可以提供针对不能提供最 佳可能的安全模式但是提供可以应用的以满足该线程的安全要求的一个或多个安全模式 的处理器核心的二进制代码。在这种情况下,通过使用通用指令集,即与其它处理器核心中 的至少一些处理器核心兼容的指令集,来提供二进制代码。这种情况也可以在如前所述的 类似的片中发生。编译器接着可以计算或以其他方式估计使用共同指令集的运行会慢多 少,以及可以将这个信息包含在针对该线程的每个片的二进制代码中或在针对该进程的一 些片的二进制代码中。

[0081] 在一些实施例中,这能够例如以编译器针对第一进程的至少一部分指令序列生成 第一二进制代码和第二二进制代码的方式来实现。第一二进制代码于是可以包括:处理器 核心的指令集的指令,该指令集已经被确定为最佳适合用于满足该线程的安全要求。第二 二进制代码可以包括:指令集的指令,该指令针对多核处理器的至少两个处理器核心或甚 至所有处理器核心而言是共同的。当将运行该片时,调度器U2可以接着确定最适合的处理 器核心是否可以用于运行该线程,以及如果是,则可以选择该处理器核心以运行第一二进 制代码。在另一方面,如果确定的是,最适合的处理器核心不可以用于运行该线程,则可以 选择另一个处理器核心以运行第二二进制核心。

[0082] 可以将最优(第一)二进制代码和备选的(第二)二进制代码(多个)两者存储在存 储器58中,以便多核处理器核心102能够使用针对线程的片的最优和备选的二进制代码中 的任何一个二进制代码。

[0083] 针对线程的每个部分而言,最优的处理器核心未必是相同的。因此,在线程的运行 (执行)期间,在该线程的每个片中,处理器核心能够改变,或处理器核心能够在线程的运行 期间在该线程的一些片之间改变。如果存在若干个同等良好匹配的处理器核心,则调度器 112可以在可以使用的处理器核心之中随机地选择处理器核心,或当决定哪个处理器核心 用于处于准备运行状态的线程的下一个片时,调度器112也可以使用其它标准。

[0084] 在一些情况下,活动的线程可能未必准备运行,因为该线程可能已经被停止,放入 保持状态或等待事件出现,其中不向此类线程提供处理时间。例如,该线程能够继续进行之 前,该线程可能等待来自另一个线程或来自另一个进程的数据。

[0085] 在以下,更详细地描述装置100的操作。当例如由装置的用户或由于事件出现或来 自另一个程序的调用,选择应用以启动时,操作系统0S从存储器58提取程序代码或程序代 码的部分,以便多核处理器1〇2能够开始运行该程序。然而,在一些实施例中,能够直接从已 经存储该应用的存储设备来运行程序,即没有将它首先载入到存储器58中。应用存储设备 可以是固定盘、闪存盘、光盘(CDR0M)、数字化通用光盘(DVD)或其它合适的位置。还能够从 计算机网络,例如从互联网,加载应用。

[0086]操作系统还确定含有应当首先执行的指令的入口点。可以由被存储在文件的所谓 的文件头中的信息来指示入口点,在该文件中已经存储了该应用。

[0087] 为了能够运行应用,可能需要初始化一些存储器区域、参数、变量和/或其它信息。 操作系统也可以确定和发起该应用的一个或多个线程。例如,该应用可以是相机应用,其可 以包括:用于控制成像传感器(诸如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS) 传感器)的曝光时间的一个线程,用于将传感器数据读取到存储器58的一个线程,用于控制 闪光灯的操作和定时的一个线程,等。当发起线程时,可以针对它定义状态。一开始,该状态 可能是例如准备运行、等待事件、空闲等。在进程的操作期间,与该状态有关的线程可以改 变。例如,调度器可以向该线程提供一些处理器时间,其中该状态可以改变到运行。

[0088] 现在,将更详细地解释在多核处理器102中的多线程的调度的示例。假设,若干线 程是活动的和运行的,以及应当针对线程提供一定数量的处理器时间。这个时间数量也可 以被称为时间片或时间槽。时间片可以是恒定的,或它可以时常改变。此外,在操作期间可 能发生的中断可能影响的是,运行中的线程可能被中断,以及针对中断的线程保留的时间 片的长度可能改变。此外,时间片的恒定长度并不意味的是,墙上时钟时间中的长度是恒定 的,而是可以针对线程保留恒定数量的处理器时间以在一个时间片期间运行该线程。在一 些其它实施例中,时间片可以在长度中(在墙上时钟时间中)被保持基本上恒定,其中中断 可能缩短针对中断的线程提供的处理器时间。

[0089]中断可能影响的是,运行中断服务例程(其与讨论中的中断联系在一起),以及在 该中断服务例程的开始,中断的线程的状态可以被存储例如到处理器核心的堆找或装置的 另一个堆栈,以便当中断服务例程结束时,能够检索该状态。

[0090]当操作系统运行调度器112时,调度器112确定接着应当向哪一个线程提供处理器 时间,即在下一个时间片期间,哪一个线程应当运行。可以针对每个处理器核心执行这个确 定,以便与具有的处理器核心104—样多的线程能够在相同的时间片内运行。调度器112可 以检查活动线程的状态以及选择线程,对于该线程而言,状态指示的是,它准备运行。调度 器112还可以检查先前已经向准备运行的线程提供了多少处理器时间,以及选择已经接收 到比二些其它线程更少的处理器时间的线程。然而,可能已经针对线程定义了优先级,其中 具有高优先级的线程可以比具有低优先级的线程接收更多的处理器时间。调度器112还可 以确定应当选择哪个处理器核心104以用于运行该线程。

[0091]调度器112还可以将另外的线程设置到运行状态,以便每个处理器核心可以开始 运行一个线程。例如,如果多核处理器102包括四个处理器核心l〇4a-104d,则能够同时运行 四个线程。然而,可能发生的是,可能有比多核处理器102中的处理器核心104更少的处于准 备运行状态的活动线程。因此,处理器核心104中的一个或多个处理器核心可能在一段时间 内是空闲的。

[0092]当选择用于运行的线程时,调度器112可以将该线程的状态改变到运行状态,或调 度器II2可以仅指令用于运行该线程而被选择的处理器核心1〇4来检索该线程的状态以及 从该线程的运行上一次被停止的地方开始运行该线程的指令。调度器112给予用于运行线 程的某一数量的处理时间,即时间片,以及当该时间片结束时,使该线程停止,以及可以将 它的状态存储到该处理器核心的内部寄存器或存储到存储器58或存储到一些其它适当的 存储介质。在一些实施例中,可以针对一个线程提供超过一个连续的时间片,其中在一个时 间片结束后,可以不使该线程停止,而是该线程可以在若干连续的时间片期间运行。

[0093] —些线程可以具有可能影响处理器核心104的选择的一些安全约束,以便能够考 虑该安全约束。在一些示例实施例中,可以向线程提供关于安全约束的指示。例如,该指示 可以指示模式(在该模式中,处理器核心104应当运行线程)。可以例如通过提供比特向量以 描述线程的安全要求,来指示该模式。当仅有正常模式和一个安全模式时,使用一个比特来 指示安全要求可能是足够的,但是如果有超过两个可以使用的不同模式,则该向量可以包 含超过一个比特。

[0094] 在一些实施例中,可以针对每个线程提供安全相关的信息,然而在一些其它实施 例中,可以针对线程的每个片提供安全相关的信息。

[0095] 在以下,将参照图5中的流程图,更详细地描述根据一些示例实施例的调度过程。 在一些实施例中,调度器112以以下方式来执行线程的调度。在每个时间片的开始时,可以 重新调度处于准备运行状态的以及在该线程的片的开始处的线程。调度器112检查处理器 核心的线程队列300,以确定哪些线程处于准备运行状态以及选择502此类线程以用于重新 调度。调度器112还可以检查线程的下一个片的信息以找出哪个处理器核心将是针对该线 程的下一个片的潜在的处理器核心。将被检查的信息包含:关于安全约束的指示。调度器 112检查504处于准备运行状态的线程的安全要求,以确定哪个处理器核心或哪些处理器核 心能够满足该线程的安全要求。这可以例如以调度器112首先检查当前没有运行任何代码 的那些处理器(即,它们有空来运行线程)的可以使用的安全模式方式来执行。如果存在能 够满足线程的安全要求的空闲的处理器核心,则调度器112可以选择508此类处理器核心以 在下一个时间片期间运行该线程。如果有超过一个的处理器核心104以从其中进行选择,则 调度器112可以选择510提供最接近于安全要求的属性的那个处理器核心,但是以能够满足 该线程的安全要求的方式。

[0096]当新线程将被调度并且没有合适的处理器核心空闲时,调度器112可以执行以下。 调度器112尝试改变512空闲处理器核心的安全模式,以便该安全模式满足该线程的安全要 求。如果这是可能的,则处理器核心的模式被改变为与该安全模式对应,以及在该处理器核 心上调度514该线程。

[0097]如果没有空闲的处理器核心,则调度器112可以尝试改变516不是空闲的处理器核 心(S卩,忙处理器核心)的安全状态,以及将在该处理器核心上正在运行的线程移动518到其 它处理器核心。

[0098]如果针对新线程不能找到合适的处理器核心,则可以改变520处理器核心中的一 个处理器核心的安全状态,以及在此之后,调度器112可以执行线程的负载均衡,以便在那 个时刻将负载仅可能均匀地平衡在处理器核心上。

[0099]如果在多核处理器的处理器核心上的没有安全状态的组合以便处于相同优先级 水平的所有线程能够由多核处理器来运行,则调度器112可以以循环的方式开始改变522处 理器核心的安全状态,以便能够运行一部分线程,同时其它线程等待轮到它们。

[0100] 在一个处理器核心上,可以针对所有的线程实现所谓的循环调度法,其中所有的 线程被调度以在这个处理器核心上运行以及它们具有相同的优先级。如果也有较低优先级 的线程,则如果有较高优先级的线程准备运行,则不运行这些较低优先级的线程。

[0101] 当安全不是问题时,当选择处理器核心104以针对线程的一部分时,或如果存在满 足安全要求的超过一个可以应用的处理器核心,则可以存在调度器112在选择中可以使用 的其它标准。选择能够基于例如,运行时间、运行效率、质量的数目、功率消耗和/或一些其 它标准。

[0102] 可以如下来执行上述负载均衡。在处于准备运行状态的线程已经被放入队列中 时,调度器112可以尝试优化处理器核心的整体负载或评估可能影响针对线程片的处理器 核心选择的另一个标准。此类标准可以是例如多核处理器和/或装置的功率消耗、运行效 率、多核处理器和/或装置的资源的使用率,等。在本申请中,这种类型的标准还被称为效 率。它可以被执行,例如以便调度器112调查具有最高负载的处理器核心。调度器112可以通 过确定经由最优处理器核心的队列中的线程的片的运行时间与经由另一个处理器核心的 该线程的相同片的运行时间之间的差异,来将位于具有最高负载的处理器核心的线程队列 中的线程的运行时间进行比较。也就是说,调度器112可以计算使用最优处理器核心的指令 集由编译器生成的二进制代码的运行时间与使用其它处理器核心的指令集(通用指令集) 生成的二进制代码的运行时间之间的差异。调度器112可以针对队列(对于该队列而言,在 这个阶段(即,在线程的片的开始),处理器核心的改变是可能的)中的每个线程来重复这个 计算,以及确定哪个线程在最优编译和一般编译之间具有最小的运行时间差。调度器112可 以将此类线程移动到具有最低负载的处理器核心或移动到与最优处理器核心相比具有较 低负载的某一其它处理器核心,或移动到将降低功率消耗、优化资源的使用率等的处理器 核心。调度器112接着可以检查以这种方式的系统的整体负载是否更好。如果否,则将线程 移动回到原始的处理器核心。

[0103] 将线程从一个处理器核心移动518到另一个处理器核心还可以被称为重定向。在 重定向中,二进制代码还可以至少被稍微修改,以便“重定向”的二进制代码在所选择的、其 它处理器核心中更好地操作。在一些实施例中,由操作系统来执行重定向,但是在一些其它 实施例中,由编译器来执行重定向,其中编译器已经准备了适用于其它处理器核心的二进 制代码。编译器可能已经针对该线程提供了当由潜在的处理器核心运行该线程时使用的第 一二进制代码,以及编译器还可能己经针对该线程准备了当其它处理器核心运行该线程时 使用的第二二进制代码。在一些实施例中,编译器己经针对可以运行该线程的每个此类处 理器核心准备了该线程的二进制代码。

[0104] 在一些实施例中,如果在处理器核心中存在翻译单元,则还可能的是,由多核处理 器102的处理器核心的翻译单元来执行重定向。

[0105]除了上述标准外,负载均衡也能够基于例如系统的吞吐量、功率效率、装置的资源 的使用率、该装置的存储器和/或输入/输出(I/O)单元的使用率、网络连接等。此外,时延 和/或响应性也可以用作针对决策的效率测量。这里还应当提及的是,该决策可以基于仅一 个标准或两个或更多标准的组合。还可能的是,标准不总是相同的,以及在二进制代码的不 同部分中,可以使用不同的标准。

[0106]当调度器112已经检查了具有最高负载的线程队列中的所有线程时,调度器〖12可 以以如以上公开的相同的方式继续检查具有较低工作负载(例如,第二最高负载、第三最高 负载等)的其它处理器核心(多个)的负载情况,以发现是否能够由与最优处理器核心相比 具有较低工作负载的某一其它处理器核心来执行该线程。

[0107]可以重复上述步骤,直到没有线程能够被移动到另外的处理器核心以增加效率为 止。

[0108] 从以上能够看到,运行线程的处理器核心可以逐片来改变,以及所选择的处理器 核心可以不总是与编译器己经在二进制代码中指示的处理器核心相同的处理器核心,而是 相反调度器112可以决定使用另一个处理器核心。

[0109] 在一些实施例中,针对每个处理器核心104存在各自的线程队列300a、300b,但是 在一些其它实施例中,针对每个处理器核心可以存在共同(全局)的线程队列。

[0110] 图3说明了根据本发明的示例实施例的在装置100中的调度器112的操作和运行线 程。在这个示例中,使用仅两个处理器核心l〇4a、104b,以及这两个处理器核心104a、104b分 别装备有它们各自的线程队列300a、300b,但是明显的是,类似的原理也可以应用于使用超 过两个处理器核心的实施例。这里假设,调度器112 (在图3中被标记为SCH)被实现在操作系 统中,以便它在第一处理器核心l〇4a中运行。还假设,五个线程TH1-TH5是活动的,以及第六 线程TH6在操作期间变成活动的。在时间片n期间,第一线程TH1由第一处理器核心104a运 行,以及第三线程TH3由第二处理器核心104b运行。第二线程TH2和第五线程TH5也被包含在 第一线程队列300a中,以及它们被标记为准备运行,以便它们等待处理器时间。在第二线程 队列300b中,第三线程TH3现在在顶部,这说明的是,它现在由第二处理器核心104b运行。位 于第二线程队列300b的第二位置中的第四线程TH4等待处理时间。在时间片n结束时,线程 的处理停止以及开始运行。调度器112根据例如处于准备运行状态的线程的下一个片的二 进制代码的安全信息,重新调度队列中的线程。

[0111] 如上所述,调度器112可以对没有在线程的片的中间的仅此类线程进行重新调度。 因此,还没有由最新的时间片的结束而结束的片被保持在先前运行该线程的片的相同处理 器核心的队列中。在图3中,说明了这种情况的示例。在时间片n+2结束时,第五线程TH5的片 没有处于该片的结尾,其中调度器112将该片维持在第一处理器核心的队列中。在这个示例 中,在第五线程TH5获得更多的处理时间之前,没有应当被提供处理时间的其它线程。因此, 调度器112已经决定在下一个时间片n+3期间继续运行第五线程TH5的中断的片。

[0112] 可能发生的是,在时间片已经结束之前,线程的片的运行可能结束。在此类情况 下,调度器112可以选择另一个线程以用于在该相同的时间片内运行。在图3中说明了这种 情况的示例。在时间片n+3期间,第五线程TH5的片结束,以及在时间片n+3的剩余时间内向 在第一处理器核心的队列中的下一个线程的片提供运行时间。如果最优处理器核心仍然是 相同的,则可以将第五线程TH5放入到相同处理器核心的队列中,或者如果针对该线程的下 一个片而言,最优处理器核心改变,或如果调度器决定针对该线程的下一个片的运行而选 择另一个处理器核心,则可以将第五线程TH5放入到不同的处理器核心的队列中。也就是 说,可能已经针对相同线程的不同片选择了不同的处理器核心。可能已经由从源代码已经 编译了可执行代码的编译器,在操作期间由调度器,或由一些其它构件,来确定该选择。例 如,应用的一部分可能需要安全操作,其中针对该部分的线程可以含有安全约束,以及可以 影响调度操作,如以上解释的。在图3中说明了这种情况的示例,其中第五线程TH5在n+3时 间片的结束时被重新调度到第二处理器核心104b的队列300b。

[0113] 在针对线程的选择的最优核心在该线程的两个片之间改变的情况中,操作可以含 有以下。在此类切换点,即当先前片的运行已经在例如第一处理器核心处结束时,调度器 112将该线程移动到另一个处理器核心的队列,该另一个处理器核心己经被确定为是针对 该线程的下一个片的运行的最优的处理器核心。调度器112接着可以从第一处理器核心的 队列中选择将由第一处理器核心运行的另一个线程。

[01 M] 还应当注意的是,在线程队列300a、300b中的信息不需要含有在队列中的线程的 完整描述,但是它可以含有至另一个表的指示,在该另一个表中,能够找到关于线程的更多 的信息。例如,操作系统可以维护线程表400,在该线程表400中,维护关于己经被启动和活 动的进程的所有线程的信息。这种信息可以包含:线程的状态、线程的下一个片、关于针对 线程预留的资源的信息、进程的名字、进程的父亲,如果有的话,关于进程的可能的子进程 的信息,优先级等。接着,线程队列300a、300b能够含有至线程表(在该线程表中,已经存储 了关于线程的信息)中的位置的引用。

[0115]图4说明了线程表400的一部分的示例。线程表400可以包含:线程ID、线程名字、优 先级、状态、进程ID、安全约束、开始地址、提供该线程的处理时间,等。

[0116] 当调度器112己经执行了针对下一个时间片的调度任务时,在线程队列300a、300b 的顶部的线程能够开始运行。在这个示例中,第一处理器核心104a开始运行第二线程TH2的 下一个片,以及第二处理器核心l〇4b开始运行第四线程TH4的下一个片。

[0117] 在时间片n+1结束时,调度器112再次运行,以及将使用以上指示的原理来处理线 程队列。在图3的示例中,新线程,第六线程TH6,己经被激活,以便它现在处于准备运行状 态。第六线程TH6的下一个(第一)片的二进制代码能够指示的是,第二处理器核心104b将是 最优的处理器核心,其中第六线程TH6被放在第二线程队列300b的末尾。然而,如果己经针 对线程或针对线程中的一些线程定义了优先级,则可能的是,新线程将不被放在线程队列 的末尾,而是放在该线程队列中的更高位置,以便将更早地向该线程提供处理时间。在图3 的示例中,第六线程TH6出于安全约束被从第二线程队列300b改变到第一线程队列300a,以 及被放在第一线程队列300a中的第一线程TH1之前。

[0118] 应当注意的是,上述操作是仅一种可能的备选方案以实现调度和线程队列,以及 本发明还可以与其它调度和线程队列实现方式结合应用。

[0119] 还可能的是,针对较高优先级的线程已经定义了处理时间的某一部分,以便调度 器112尝试向此类线程提供处理时间的至少该部分。

[0120] 在一些实施例中,多核处理器102可能不支持中断,其中调度器112的实现方式可 以不同于基于中断的调度器112。

[0121] 一般地,可以将本发明的各种实施例实现成硬件或专用电路、软件、逻辑和它们的 任何组合。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在固件或软件,该 固件或软件可以由控制器、微处理器或其它计算设备来执行,尽管本发明不限制于此。虽然 本发明的各种方面被说明和描述成框图、流程图或使用一些其它图形表示,但是很好理解 的是,本文中所述的这些框、装置、系统、技术或方法可以被实现在,作为非限制性示例,硬 件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备、或其一些组合中。

[0122] 可以由装置的数据处理器可执行的计算机软件,诸如在处理器实体中,或由硬件, 或由软件和硬件的组合来实现本发明的实施例。此外,就这点而言,应当注意的是,如在附 图中的逻辑流的任何框可以表示程序步骤,或互连的逻辑电路,块和功能,或程序步骤和逻 辑电路、块和功能的组合。可以将软件存储在此类物理介质上,诸如存储芯片,或实现在处 理器内的存储块,磁介质,诸如硬盘或软盘,以及光介质,诸如例如DVD和其数据变型CD。

[0123]存储器可以具有适合于本地技术环境的任何类型,并且可以使用任何合适的数据 存储技术来实现,诸如基于半导体的存储设备,磁存储设备和系统,光存储设备和系统,固 定存储器和可移动存储器。数据处理器可以具有适合于本地技术环境的任何类型,并且可 以包含作为非限制性示例的下列中的一个或多个:通用计算机、专用计算机、微处理器、数 字信号处理器(DSP)和基于多核处理器架构的处理器。

[0124]可以在各种组件中,诸如在集成电路模块中,实践本发明的实施例。一般而言,集 成电路的设计基本上是高度自动化的过程。复杂和功能强大的软件工具可用于将逻辑级的 设计转换成准备将要被蚀刻和形成在半导体衬底上的半导体电路设计。

[0125] 程序,诸如由加利福尼亚的山景城的新思科技(Synopsys,Inc . of Mountain View,California)和加利福尼亚的圣何塞的凯登斯设计(Cadence Design,of San Jose, California)所提供的那些程序,使用良好建立的设计规则以及预存储的设计模块的库在 半导体芯片上自动化路由导体和定位组件。一旦己经完成了针对半导体电路的设计,则所 生成的设计可以以标准化电子形式(例如,Opus,GDSII等)传送给半导体制造厂或用于制造 的简写的“fab”。

[0126]上述描述已经通过示例性和非限制性的示例提供了本发明示例性实施例的全面 和教示性的描述。然而,当结合附图和所附权利要求书阅读时,鉴于上述描述,对于相关领 域的技术人员来说,各种修改和适应是明显的。然而,本发明的教示中的所有此类或类似的 修改仍然将落入本发明的范围内。

[0127]在以下中,将提供一些示例实施例。

[0128]根据一些示例实施例,提供了一种方法,所述方法包括:

[0129]检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0130]通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0131]如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行所述线程的所述指令序列。

[0132] 在一些示例实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个 或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序 列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程 的所述指令序列的那个处理器核心作为所述潜在的处理器核心。

[0133] 在一些示例实施例中,如果所述检查指示的是,具有所述合适的安全模式的所述 一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令 序列,则所述方法还包括:检查是否存在是空闲的以用于运行所述线程的所述指令序列的 另一个处理器核心;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的 所述处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变 所述处理器核心的所述安全模式以满足所述安全条件。

[0134] 在一些示例实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在 的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心 的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但 是仍然满足所述线程的所有安全要求。

[0135] 在一些示例实施例中,所述方法包括确定针对所述线程的优先级;以及使用所述 优先级以确定在下一个时间片内向哪个线程提供处理时间。

[0136] 在一些示例实施例中,所述方法包括:针对具有相同优先级以及被选择由相同的 处理器核心运行的线程,使用循环调度法。

[0137] 在一些示例实施例中,所述确定包括:检查所述多核处理器的处理器核心中的任 何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果否,则所述方 法还包括:选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处 理器核心;以及将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。

[0138] 在一些示例实施例中,所述方法包括:

[0139]运行具有相同优先级水平的多个线程的指令序列;

[0140] 确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运 行所有的线程的安全状态的组合;以及

[0141] 如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个 线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。

[0142] 在一些示例实施例中,装置包括所述多核处理器,以及效率涉及所述多核处理器 的工作负载。

[0143] 在一些示例实施例中,所述方法包括:提供包括针对所述潜在处理器核心的指令 序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序 列的第二二进制代码。

[0144]在一些示例实施例中,所述方法包括:使用异构处理器作为所述多核处理器,其中 至少两个处理器核心的指令集是至少部分不同的。

[0145] 在一些示例实施例中,所述方法包括:提供针对每个处理器核心的线程队列,所述 线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。

[0146] 在一些示例实施例中,所述方法包括:使用所述多核处理器核心作为移动终端的 组件。

[0147] 根据一些示例实施例,提供了一种装置,所述装置包括:至少一个处理器和包含计 算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置为使 用所述至少一个处理器使得所述装置:

[0148]检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0149]通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0150]如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0151]在一些示例实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个 或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序 列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程 的所述指令序列的那个处理器核心作为所述潜在的处理器核心。

[0152] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置:

[0153] 如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心 中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是 空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是 空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改 变以满足所述安全条件;以及如果能够,则改变所述处理器核心的所述安全模式以满足所 述安全条件。

[0154] 在一些示例实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在 的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心 的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但 是仍然满足所述线程的所有安全要求。

[0155] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置确定针对所述线程的优先级;以 及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。

[0156] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置针对具有相同优先级以及被选择 由相同的处理器核心运行的线程,使用循环调度法。

[0157] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置通过以下中的至少一个来执行所 述检查以及重定向:

[0158] -检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运 行所述线程的所述指令序列;

[0159] -以及如果否,

[0160]-选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处 理器核心;以及

[0161] -将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。

[0162] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置:

[0163] 运行具有相同优先级水平的多个线程的指令序列;

[0164] 确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运 行所有的线程的安全状态的组合;以及

[0165] 如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个 线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。

[0166]在一些示例实施例中,效率涉及所述多核处理器的工作负载。

[0167]在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置:提供包括针对所述潜在处理器 核心的指令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核 心的指令序列的第二二进制代码。

[0168] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置使用异构处理器作为所述多核处 理器,其中至少两个处理器核心的指令集是至少部分不同的。

[0169] 在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至 少一个处理器运行所述代码时,所述代码还使得所述装置提供针对每个处理器核心的线程 队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。

[0170] 在一些示例实施例中,所述装置是移动终端的组件。

[0171] 根据一些示例实施例,提供了计算机程序产品,所述计算机程序产品包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多 个序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:

[0172]检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0173] 通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0174] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0175] 在一些实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个或多 个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以 及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述 指令序列的那个处理器核心作为所述潜在的处理器核心。

[0176]在一些实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列, 当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的 一个或多个序列使得装置:

[0177]如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心 中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是 空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及 [0178] 如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心 的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述处理器核心 的所述安全模式以满足所述安全条件。

[0179]在一些实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在的处 理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心的可 以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍 然满足所述线程的所有安全要求。

[0180] 在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置确定针对所述线程的优先级;以及使用所述优先级以确定在 下一个时间片内向哪个线程提供处理时间。

[0181]在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置针对具有相同优先级以及被选择由相同的处理器核心运行 的线程,使用循环调度法。

[0182] 在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置通过以下中的至少一个执行所述检查以及重定向:

[0183]检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运 行所述线程的所述指令序列;以及

[0184] 如果否,则选择己经被选择以运行另一个线程的指令序列的处理器核心作为所述 潜在的处理器核心;以及

[0185]将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。

[0186] 在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置:

[0187]-检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运 行所述线程的所述指令序列;以及

[0188]-如果否,则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所 述潜在的处理器核心;以及改变所述潜在的处理器核心的安全模式以与所述安全条件对 应。

[0189]在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置:

[0190]运行具有相同优先级水平的多个线程的指令序列;

[0191]确定在多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所 有的线程的安全状态的组合;以及

[0192]如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个 线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。

[0193]在一些示例实施例中,所述装置包括所述多核处理器,以及效率涉及所述多核处 理器的工作负载。

[0194] 在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置至少提供包括针对所述潜在处理器核心的指令序列的第一 二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二 进制代码。

[0195]在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置至少使用异构处理器作为所述多核处理器,其中至少两个处 理器核心的指令集是至少部分不同的。

[0196]在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序 列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指 令的一个或多个序列使得装置至少提供针对每个处理器核心的线程队列,所述线程队列包 括关于在所述线程队列中的线程的状态的信息和所述安全条件。

[0197] 在一些示例实施例中,所述计算机程序产品是移动终端的软件的一部分。

[0198]根据本发明的一些示例实施例,提供了一种装置,所述装置包括:

[0199] 多核处理器,其包括至少第一处理器核心和第二处理器核心;

[0200]第一线程的指令序列,其被配置为在所述多核处理器的处理器核心中被运行; [0201] 检查单元,其被配置为:

[0202]检查与线程的指令序列有关的信息以确定所述线程的安全条件;

[0203] 通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全 条件的合适的安全模式;

[0204] 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列。

[0205] 在一些示例实施例中,所述装置是移动终端的组件。

[0206] 根据本发明的一些示例实施例,提供了一种装置,所述装置包括:

[0207]用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件;

[0208]用于通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述 安全条件的合适的安全模式的构件;

[0209]用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一 个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核 心作为潜在的处理器核心以运行第一线程的所述指令序列的构件。

[0210]在一些实施例中,所述装置包括:用于检查具有所述合适的安全模式的所述一个 或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序 列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程 的所述指令序列的那个处理器核心作为所述潜在的处理器核心的构件。

[0211]在一些实施例中,所述装置包括用于如果所述检查指示的是,具有所述合适的安 全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线 程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一 个处理器核心;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述 处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述 处理器核心的所述安全模式以满足所述安全条件的构件。

[0212]在一些实施例中,所述装置包括:用于检查是否存在可用于被选择作为所述潜在 的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心 的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但 是仍然满足所述线程的所有安全要求的构件。

[0213]在一些实施例中,所述装置包括用于确定针对所述线程的优先级的构件;以及用 于使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间的构件。

[0214]在一些实施例中,所述装置包括:用于针对具有相同优先级以及被选择由相同的 处理器核心运行的线程,使用循环调度法的构件。

[0215] 在一些实施例中,所述装置包括:

[0216]用于检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用 于运行所述线程的所述指令序列的构件;

[0217]用于选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在 的处理器核心的构件;以及

[0218]用于将所述潜在的处理器核心的安全模式改变为与所述安全条件对应的构件。 [0219] 在一些实施例中,所述装置包括:

[0220]用于运行具有相同优先级水平的多个线程的指令序列的构件;

[0221]用于确定所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器 运行所有的线程的安全状态的组合的构件;以及

[0222]用于如果在所述多核处理器的处理器核心上不存在以便能够由所述多核处理器 运行所有线程的安全状态的组合,则以循环方式改变所述处理器核心的安全状态,以便能 够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运 行的构件。

[0223] 在一些实施例中,所述装置包括所述多核处理器,以及效率涉及所述多核处理器 的工作负载。

[0224]在一些实施例中,所述装置包括:用于提供包括针对所述潜在处理器核心的指令 序列的第一二进制代码的构件;以及用于提供包括针对所述多核处理器的另一个处理器核 心的指令序列的第二二进制代码的构件。

[0225] 在一些实施例中,所述装置包括:用于使用异构处理器作为所述多核处理器的构 件,其中至少两个处理器核心的指令集是至少部分不同的。

[0226] 在一些实施例中,所述装置包括:用于提供针对每个处理器核心的线程队列的构 件,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。

[0227] 在一些示例实施例中,所述装置包括:用于使用所述多核处理器核心作为移动终 端的组件的构件。

Claims (46)

1. 一种用于运行多核处理器中的线程的指令序列的方法,包括: 检查与线程的指令序列有关的信息以确定所述线程的安全条件; 通过使用所述安全条件,确定多核处理器中的一个或多个处理器核心是否具有满足所 述安全条件的合适的安全模式,其中所述一个或多个处理器核心包括至少两个动态可变的 安全模式; 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个 处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜 在的处理器核心以运行所述线程的所述指令序列,其中所述确定包括:检查具有所述合适 的安全模式的所述一个或多个处理器核心中的一个处理器核心是否是空闲的以用于运行 所述线程的所述指令序列;以及如果是,则选择空闲的所述一个处理器核心以用于运行所 述线程的所述指令序列,作为所述潜在的处理器核心,以及 其中如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心 中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是 空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是 另一个处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改 变所述另一个处理器核心的所述安全模式以满足所述安全条件。
2. 根据权利要求1所述的方法,其中所述选择包括:检查是否存在可用于被选择作为所 述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理 器核心的可以使用的安全模式以确定哪个处理器核心提供满足所述线程的所有安全要求 的最接近于所述安全条件的安全模式。
3. 根据权利要求1至2中的任何一项所述的方法,所述方法包括:确定针对所述线程的 优先级;以及使用所述优先级以确定在下一个时间片内所述线程是否被提供处理时间。
4. 根据权利要求3所述的方法,所述方法包括:针对具有相同优先级以及被选择由相同 的处理器核心运行的线程,使用循环调度法。
5. 根据权利要求1、2和4中的任何一项所述的方法,其中所述确定包括检查所述多核处 理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序 列;以及 如果否,则所述方法还包括: 选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器 核心;以及 将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
6. 根据权利要求1、2和4中的任何一项所述的方法,所述方法包括: 运行具有相同优先级水平的多个线程的指令序列; 确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所 有的线程的安全状态的组合;以及 如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程 的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
7. 根据权利要求1、2和4中的任何一项所述的方法,其中装置包括所述多核处理器,以 及效率涉及所述多核处理器的工作负载。
8.根据权利要求7所述的方法,所述方法包括:提供包括针对所述潜在处理器核心的指 令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令 序列的第二二进制代码。
9.根据权利要求1、2和4中的任何一项所述的方法,所述方法包括:使用异构处理器作 为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
10.根据权利要求1、2和4中的任何一项所述的方法,所述方法包括:提供针对每个处理 器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述 安全条件。
11.根据权利要求1、2和4中的任何一项所述的方法,所述方法包括:使用所述多核处理 器核心作为移动终端的组件。
12. —种用于运行多核处理器中的线程的指令序列的装置,包括至少一个处理器和包 含计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置 为使用所述至少一个处理器使得所述装置: 检查与线程的指令序列有关的信息以确定所述线程的安全条件; 通过使用所述安全条件,确定多核处理器中的一个或多个处理器核心是否具有满足所 述安全条件的合适的安全模式,其中所述一个或多个处理器核心包括至少两个动态可变的 安全模式; 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个 处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜 在的处理器核心以运行第一线程的指令序列,其中所述确定包括:检查具有所述合适的安 全模式的所述一个或多个处理器核心中的一个处理器核心是否是空闲的以用于运行所述 线程的所述指令序列;以及如果是,则选择空闲的所述一个处理器核心以用于运行所述线 程的所述指令序列,作为所述潜在的处理器核心;以及 如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的 任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲 的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查另一个 处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述 另一个处理器核心的所述安全模式以满足所述安全条件。
13. 根据权利要求12所述的装置,其中所述选择包括:检查是否存在可用于被选择作为 所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处 理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安 全模式但是仍然满足所述线程的所有安全要求。
14. 根据权利要求12至13中的任何一项所述的装置,所述至少一个存储器具有存储在 其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置确定针 对所述线程的优先级;以及使用所述优先级以确定在下一个时间片内所述线程是否被提供 处理时间。
15. 根据权利要求14所述的装置,所述至少一个存储器具有存储在其上的代码,当由所 述至少一个处理器运行所述代码时,所述代码还使得所述装置针对具有相同优先级以及被 选择由相同的处理器核心运行的线程,使用循环调度法。 ie.根据权利要求12、13和15中的任何一项所述的装置,所述至少一个存储器具有存储 在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置通过 以下中的至少一个来执行所述检查以及重定向: 检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所 述线程的所述指令序列;以及 如果否, 则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理 器核心;以及 将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
17.根据权利要求12、13和15中的任何一项所述的装置,所述至少一个存储器具有存储 在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置: 运行具有相同优先级水平的多个线程的指令序列; 确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所 有的线程的安全状态的组合;以及 如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程 的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
18.根据权利要求12、13和15中的任何一项所述的装置,其中效率涉及所述多核处理器 的工作负载。
19. 根据权利要求18所述的装置,所述至少一个存储器具有存储在其上的代码,当由所 述至少一个处理器运行所述代码时,所述代码还使得所述装置提供包括针对所述潜在处理 器核心的指令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器 核心的指令序列的第二二进制代码。
20. 根据权利要求12、13和15中的任何一项所述的装置,所述至少一个存储器具有存储 在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置使用 异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
21. 根据权利要求12、13和15中的任何一项所述的装置,所述至少一个存储器具有存储 在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置提供 针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态 的信息和所述安全条件。
22. 根据权利要求12、13和15中的任何一项所述的装置,其中所述装置是移动终端的组 件。
23.—种用于运行多核处理器中的线程的指令序列的物理介质,所述物理介质包含一 个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个 或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少执行以下: 检查与线程的指令序列有关的信息以确定所述线程的安全条件; 通过使用所述安全条件,确定多核处理器中的一个或多个处理器核心是否具有满足所 述安全条件的合适的安全模式,其中所述一个或多个处理器核心包括至少两个动态可变的 安全模式; 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个 处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜 在的处理器核心以运行第一线程的指令序列,其中所述确定包括:检查具有所述合适的安 全模式的所述一个或多个处理器核心中的一个任何处理器核心是否是空闲的以用于运行 所述线程的所述指令序列;以及如果是,则选择空闲的所述一个处理器核心以用于运行所 述线程的所述指令序列,作为所述潜在的处理器核心;以及 如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的 任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲 的以用于运行所述线程的所述指令序列的另一个处理器核心;以及 如果是,则检查另一个处理器核心的安全模式是否能够被改变以满足所述安全条件; 以及如果能够,则改变所述另一个处理器核心的所述安全模式以满足所述安全条件。
24. 根据权利要求23所述的物理介质,其中所述选择包括:检查是否存在可用于被选择 作为所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个 的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件 的安全模式但是仍然满足所述线程的所有安全要求。
25. 根据权利要求23至24中的任何一项所述的物理介质,所述物理介质包含一个或多 个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个 序列时,所述一个或多个指令的一个或多个序列使得装置确定针对所述线程的优先级;以 及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。
26. 根据权利要求25所述的物理介质,所述物理介质包含一个或多个指令的一个或多 个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个 或多个指令的一个或多个序列使得装置针对具有相同优先级以及被选择由相同的处理器 核心运行的线程,使用循环调度法。
27.根据权利要求23、24和26中的任何一项所述的物理介质,所述物理介质包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多 个序列时,所述一个或多个指令的一个或多个序列使得装置: 检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所 述线程的所述指令序列;以及 如果否, 则选择己经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理 器核心;以及 将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
28.根据权利要求23、24和26中的任何一项所述的物理介质,所述物理介质包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多 个序列时,所述一个或多个指令的一个或多个序列使得装置: 运行具有相同优先级水平的多个线程的指令序列; 确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所 有的线程的安全状态的组合;以及 如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程 的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
29.根据权利要求23、24和26中的任何一项所述的物理介质,其中装置包括所述多核处 理器,以及效率涉及所述多核处理器的工作负载。
30. 根据权利要求29所述的物理介质,所述物理介质包含一个或多个指令的一个或多 个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个 或多个指令的一个或多个序列使得装置至少提供包括针对所述潜在处理器核心的指令序 列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列 的第二二进制代码。
31. 根据权利要求23、24和26中的任何一项所述的物理介质,所述物理介质包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多 个序列时,所述一个或多个指令的一个或多个序列使得装置至少使用异构处理器作为所述 多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。 31根据权利要求23、24和26中的任何一项所述的物理介质,所述物理介质包含一个或 多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多 个序列时,所述一个或多个指令的一个或多个序列使得装置至少提供针对每个处理器核心 的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条 件。
33.根据权利要求23、24和26中的任何一项所述的物理介质,其中所述一个或多个指令 的一个或多个序列是移动终端的软件的一部分。
34. —种用于运行多核处理器中的线程的指令序列的装置,包括: 多核处理器,其包括至少第一处理器核心和第二处理器核心; 被配置为在所述多核处理器的处理器核心中运行的第一线程的指令序列; 检查单元,其被配置为: 检查与线程的指令序列有关的信息以确定所述线程的安全条件; 通过使用所述安全条件,确定多核处理器中的一个或多个处理器核心是否具有满足所 述安全条件的合适的安全模式,其中所述一个或多个处理器核心包括至少两个动态可变的 安全模式; 如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个 处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜 在的处理器核心以运行第一线程的所述指令序列,其中所述确定包括:检查具有所述合适 的安全模式的所述一个或多个处理器核心中的一个处理器核心是否是空闲的以用于运行 所述线程的所述指令序列;以及如果是,则选择空闲的所述一个处理器核心以用于运行所 述线程的所述指令序列,作为所述潜在的处理器核心,以及 其中如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心 中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是 空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是 另一个处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改 变所述另一个处理器核心的所述安全模式以满足所述安全条件。
35. 根据权利要求34所述的装置,其中所述装置是移动终端的组件。
36. —种用于运行多核处理器中的线程的指令序列的装置,包括: 用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件; 用于通过使用所述安全条件,确定多核处理器中的一个或多个处理器核心是否具有满 足所述安全条件的合适的安全模式的构件,其中所述一个或多个处理器核心包括至少两个 动态可变的安全模式; 用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或 多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作 为潜在的处理器核心以运行第一线程的所述指令序列的构件, 用于检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核 心是否是空闲的以用于运行所述线程的所述指令序列;以及如果是,则选择空闲的所述一 个处理器核心以用于运行所述线程的所述指令序列,作为所述潜在的处理器核心的构件; 其中所述用于检查的构件包括:用于如果具有所述合适的安全模式的所述一个或多个 处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查 是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果 是,则检查另一个处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果 能够,则改变所述另一个处理器核心的所述安全模式以满足所述安全条件的构件。
37.根据权利要求36所述的装置,所述装置包括:用于检查是否存在可用于被选择作为 所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处 理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安 全模式但是仍然满足所述线程的所有安全要求的构件。
38. 根据权利要求36至37中的任何一项所述的装置,所述装置包括:用于确定针对所述 线程的优先级的构件;以及用于使用所述优先级以确定在下一个时间片内所述线程是否被 提供处理时间的构件。
39. 根据权利要求38所述的装置,所述装置包括:用于针对具有相同优先级以及被选择 由相同的处理器核心运行的线程,使用循环调度法的构件。
40.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括: 用于检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运 行所述线程的所述指令序列的构件; 用于选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处 理器核心的构件;以及 用于将所述潜在的处理器核心的安全模式改变为与所述安全条件对应的构件。
41.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括: 用于运行具有相同优先级水平的多个线程的指令序列的构件; 用于确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运 行所有的线程的安全状态的组合的构件;以及 用于如果在所述多核处理器的处理器核心上不存在以便能够由所述多核处理器运行 所有线程的安全状态的组合,则以循环方式改变所述处理器核心的安全状态,以便能够运 行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行的 构件。 41根据权利要求36、37和39中的任何一项所述的装置,其中所述装置包括所述多核处 理器,以及效率涉及所述多核处理器的工作负载。
43. 根据权利要求42所述的装置,所述装置包括:用于提供包括针对所述潜在处理器核 心的指令序列的第一二进制代码的构件;以及用于提供包括针对所述多核处理器的另一个 处理器核心的指令序列的第二二进制代码的构件。
44. 根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于使用异构 处理器作为所述多核处理器的构件,其中至少两个处理器核心的指令集是至少部分不同 的。
45.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于提供针对 每个处理器核心的线程队列的构件,所述线程队列包括关于在所述线程队列中的线程的状 态的信息和所述安全条件。 4(5.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于使用所述 多核处理器核心作为移动终端的组件的构件。
CN201280074716.5A 2012-05-16 2012-05-16 处理器中的方法,装置和计算机程序产品 CN104471587B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/FI2012/050472 WO2013171362A1 (en) 2012-05-16 2012-05-16 Method in a processor, an apparatus and a computer program product

Publications (2)

Publication Number Publication Date
CN104471587A CN104471587A (zh) 2015-03-25
CN104471587B true CN104471587B (zh) 2018-01-23

Family

ID=49583195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280074716.5A CN104471587B (zh) 2012-05-16 2012-05-16 处理器中的方法,装置和计算机程序产品

Country Status (4)

Country Link
US (1) US9443095B2 (zh)
EP (1) EP2850555A4 (zh)
CN (1) CN104471587B (zh)
WO (1) WO2013171362A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858115B2 (en) * 2013-10-30 2018-01-02 Mediatek Inc. Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
DE102014222181A1 (de) * 2014-10-30 2016-05-04 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts
US10235303B2 (en) * 2015-09-10 2019-03-19 Qualcomm Incorporated Secure entry and exit for software modules protected by controlled encryption key management
CN106161938B (zh) * 2016-07-22 2019-05-14 深圳天珑无线科技有限公司 一种闪光灯打开方法和装置
US10169248B2 (en) 2016-09-13 2019-01-01 International Business Machines Corporation Determining cores to assign to cache hostile tasks
US10204060B2 (en) 2016-09-13 2019-02-12 International Business Machines Corporation Determining memory access categories to use to assign tasks to processor cores to execute
US10459817B2 (en) * 2017-01-18 2019-10-29 International Business Machines Corporation Evaluating performance improvement of executing instructions in a first processor over execution on a second processor

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2866241B2 (ja) * 1992-01-30 1999-03-08 株式会社東芝 コンピュータシステムおよびスケジューリング方法
US7660986B1 (en) * 1999-06-08 2010-02-09 General Instrument Corporation Secure control of security mode
AU2003278350A1 (en) 2002-11-18 2004-06-15 Arm Limited Secure memory for protecting against malicious programs
US7353517B2 (en) 2003-09-25 2008-04-01 International Business Machines Corporation System and method for CPI load balancing in SMT processors
US20050210472A1 (en) * 2004-03-18 2005-09-22 International Business Machines Corporation Method and data processing system for per-chip thread queuing in a multi-processor system
US7849311B2 (en) * 2005-03-15 2010-12-07 Silicon Graphics International Computer system with dual operating modes
US7917753B2 (en) * 2005-05-16 2011-03-29 Texas Instruments Incorporated Transferring control between programs of different security levels
EP1865435A1 (en) * 2006-06-06 2007-12-12 Texas Instruments France Enhanced exception handling
US7996346B2 (en) * 2007-12-19 2011-08-09 International Business Machines Corporation Method for autonomic workload distribution on a multicore processor
US8397235B2 (en) * 2008-10-07 2013-03-12 Futurewei Technologies, Inc. User tolerance based scheduling method for aperiodic real-time tasks
US8745385B2 (en) * 2009-06-24 2014-06-03 Raytheon Company System and method for protecting data with multiple independent levels of security
US8407783B2 (en) * 2010-06-17 2013-03-26 Mediatek Inc. Computing system providing normal security and high security services
US8418177B2 (en) * 2010-10-01 2013-04-09 Microsoft Corporation Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores
WO2013100996A1 (en) * 2011-12-28 2013-07-04 Intel Corporation Binary translation in asymmetric multiprocessor system
DE102014222181A1 (de) * 2014-10-30 2016-05-04 Robert Bosch Gmbh Verfahren zum Betreiben eines Steuergeräts

Also Published As

Publication number Publication date
EP2850555A4 (en) 2016-01-13
EP2850555A1 (en) 2015-03-25
CN104471587A (zh) 2015-03-25
US9443095B2 (en) 2016-09-13
WO2013171362A1 (en) 2013-11-21
US20150302219A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
CN103493017B (zh) 后台任务的管理
US20170054659A1 (en) Techniques for routing packets between virtual machines
US20100082849A1 (en) Data filtering using central DMA mechanism
CN103955403B (zh) 机会性的多任务处理
US20110107426A1 (en) Computing system using single operating system to provide normal security services and high security services, and methods thereof
CN105793813B (zh) 智能辅助电子设备
CN101836188B (zh) 基于服务器的代码编译
EP2490104B1 (en) Method and mobile terminal for controlling application in the mobile terminal
KR20060096186A (ko) 프로세서 및 정보처리 방법
CN1645841A (zh) 使用插入消息更改向代码自适应地分派接收消息
CN104516760B (zh) 一种操作系统热切换的方法、装置及移动终端
JP2014179119A (ja) マルチスレッドプロセッサ内で割り込みを割り当てるための方法及びシステム
Lehmann et al. Deadlock handling for real-time control of AGVs at automated container terminals
US20190196697A9 (en) Method and apparatus for designating entire area using partial area touch in a portable equipment
CN103562868B (zh) 分布式计算框架
US9477296B2 (en) Apparatus and method for controlling power of electronic device having multi-core
CN103744821A (zh) 一种实现移动终端usb otg功能的方法及装置
US20160210720A1 (en) Graph-based application programming interface architectures with node-based destination-source mapping for enhanced image processing parallelism
CN103106117A (zh) 一种资源分配方法及电子设备
CN103119537A (zh) 用于通过使指令拾取单元掉电来降低处理器中的功耗的方法和装置
CN105474129A (zh) 用于在电子装置中执行省电模式的方法及其电子装置
CN104854809A (zh) 自适应天线选择
CN103140831B (zh) 在处理器处执行线程的系统和方法
EP1579712A2 (en) Command queuing for multimedia storage devices
US20160062639A1 (en) Electronic device including touch sensitive display and method for operating the same

Legal Events

Date Code Title Description
PB01 Publication
C06 Publication
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20160108

Address after: Espoo, Finland

Applicant after: Technology Co., Ltd. of Nokia

Address before: Espoo, Finland

Applicant before: Nokia Oyj

GR01 Patent grant
GR01 Patent grant