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
processor core
command sequence
core
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
CN201280074716.5A
Other languages
English (en)
Other versions
CN104471587A (zh
Inventor
M·拉蒂马基
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.)
Nokia Technologies Oy
Original Assignee
Nokia Technologies Oy
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 Nokia Technologies Oy filed Critical Nokia Technologies Oy
Publication of CN104471587A publication Critical patent/CN104471587A/zh
Application granted granted Critical
Publication of CN104471587B publication Critical patent/CN104471587B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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 OR 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 OR 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 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30145Instruction analysis, e.g. decoding, instruction word fields
    • 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 devices or network resources
    • H04L63/105Multiple levels of security

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Advance Control (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)

Abstract

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

Description

处理器中的方法,装置和计算机程序产品
技术领域
本发明涉及运行多核处理器中的线程的指令序列的方法。本发明还涉及一种装置,该装置包括至少一个处理器和包含计算机程序代码的至少一个存储器,该至少一个存储器和该计算机程序代码被配置为使用所述至少一个处理器使得所述装置运行多核处理器中的线程的指令序列。本发明还涉及计算机程序产品,该计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:运行多核处理器中的线程的指令序列。
背景技术
这部分旨在提供在权利要求书中陈述的本发明的背景或上下文。此处的描述可以包含可以被追求的构思,但其不是必须是先前已设想或追求的构思。因此,除非此处另外指出,否则本节所述的内容不是本申请中的说明书和权利要求书的现有技术,并且不通过包含在本部分中而承认其为现有技术。
在含有两个或更多处理器核心的处理器中,即多核处理器,不同的应用可以同时由不同的处理器核心来运行。如果所有的处理器核心具有相同的指令集或如果应用已经被编译到不同的指令集,则还可能在多核处理器的两个或更多处理器核心之间共享应用的运行。
多核处理器的不同处理器核心可以实现类似的指令集,或处理器核心中的全部或一些处理器核心可以实现至少部分不同的指令集。当处理器核心实现部分不同的指令集时,可能存在重叠的指令集,该重叠的指令集对于处理器核心中的两个或更多处理器核心而言或甚至对于所有的处理器核心而言是共同的。
发明内容
在下文中,术语多核处理器涉及具有两个和更多处理器核心的处理器,以及该核心可以具有类似或不同的指令集。术语异构多核处理器涉及多核处理器,在该多核处理器中,至少一个处理器核心比该多核处理器的另一个处理器核心具有至少部分不同的指令集。在一些实施例中,异构多核处理器中的每个处理器核心比其它处理器核心具有至少不同的指令集。在异构处理器核心中,在处理器核心中可能存在可以使用的不同类型的安全状态(模式)。
在具有多核处理器的装置中实现的一些应用中,不是总是需要所有可以使用的处理器能力,以及所述多核处理器的处理器核心中的一些处理器核心可以在大多数时间是空闲的。在另一方面,一些应用或一些应用的线程可能需要针对运行该线程的一些安全要求。因此,可能需要选择能够支持该安全要求的此类处理器核心,或在处理器核心中运行该线程前,能够将处理器核心的状态改变到对应于该安全要求的安全状态。
根据本发明的一些示例实施例,可以如下来执行具有一些安全要求的线程的调度:
在没有运行任何线程的此类处理器核心上调度线程,以便能够由该处理器核心满足它们的安全要求。如果针对选择处理器核心存在若干可能性,则可以在最接近该安全要求的处理器核心上,但是以满足该安全要求的方式,来调度该线程。也就是说,在可能具有更多安全能力但是不小于由该线程所要求的安全能力的此类处理器核心上调度线程。
在一个处理器核心上,存在针对在这个处理器核心上的具有相同优先级的所有线程的循环调度法。如果存在准备运行的较高优先级线程,则不执行较低优先级的线程。
当在系统上将调度新线程以及没有合适的处理器核心空闲时,调度器尝试改变空闲处理器核心的安全状态,以便它满足该线程的安全要求。如果这是可能的,则改变该处理器核心的状态,以及在该核心上调度该线程。如果没有空闲的处理器核心,则调度器尝试改变繁忙处理器核心的安全状态以及将正在该处理器核心上运行的线程移动到一个或多个其它处理器核心。如果不能找到针对新线程的合适的处理器核心,则改变处理器核心中的一个处理器核心的安全状态,以及在此之后,调度器将进行线程的负载均衡,以便在该处理器核心上可以更均匀地均衡负载。
如果在该系统的处理器核心上没有以便在该系统上能够运行处于相同优先级水平的所有线程的安全状态的组合,则调度器可以以循环的方式开始改变处理器核心的安全状态,以便能够运行一部分线程,同时其它线程等候轮到它们。
调度算法旨在用于异构多核处理器系统,其中核心具有不同数目的安全状态,能够动态地改变该安全状态。操作系统可以具有针对每个线程的比特向量以描述它的安全要求。
在一些实施例,以某些类型的代码块(连续的指令集,也称复合语句)被包含在该线程的相同片中而不管该线程的该片的长度是否与一个时间片的长度相同还是不同于一个时间片的长度的方式,将线程分成片。在这个上下文中,术语不可以分割的代码块可以用于表示应当在相同处理器核心内运行的以及被包含在线程的相同片中的代码块。例如,循环,if声明,switch声明等,可以是将被包含在线程的相同片中的此类代码块,以便在该片中的整个代码块由调度器已经选择的用于运行该线程的该片的相同处理器核心来运行。
在一些实施例中,编译器可以尝试,以线程的片的长度(以运行时间为单位)尽可能接近于一个时间片的长度的方式,但是这可能不是总是可能的,来生成针对该线程的代码。
在运行时间,如果不需要考虑安全问题,则可以以以下方式来执行该调度。在每个时间片的开始,可以重新调度线程。可以针对该线程的前一个片已经结束的此类线程来执行该调度。线程主要地继续地在上一个时间片中它位于的相同处理器(如果在二进制代码中,它仍然被标记为潜在的或最优的处理器核心,或如果该线程的该片还没有结束)上运行。然而,在下一个时间片期间,该线程可能不总是继续运行,而是可以将该线程放入处理器核心的队列中以等待直到调度器给予该线程处理时间。如果存在新进程或调度器确定的是,不同于先前用于该线程的处理器核心的另一个处理器核心是针对该线程的最优的处理器核心,则将该线程放入该最优处理器核心的队列中。在将线程已经放入它们最优的处理器核心的队列中后,可以存在针对具有超过一个可以应用的处理器核心的线程的负载均衡以优化整体负载情况。可以执行这个操作,以便调查具有最高负载的第一处理器核心。线程,其具有在最优编译和基本编译之间的最小运行时间差,被移动到具有最低负载的处理器核心。该调度器接着将计算以这种方式该系统的整体吞吐量是否更好。如果否,则可以将该线程移动回到原始的处理器核心。最后步骤是重复直到没有能够被移动以增加吞吐量的线程,或如果达到结束优化的另一个条件。
根据本发明的第一方面,提供了一种方法,所述方法包括:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行所述线程的所述指令序列。
根据本发明的第二面,提供了一种装置,所述装置包括处理器和包含计算机程序代码的存储器,所述存储器和所述计算机程序代码被配置为使用所述处理器使得所述装置:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
根据本发明的第三面,提供了计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
根据本发明的第四方面,提供了一种装置,所述装置包括:
多核处理器,其包括至少第一处理器核心和第二处理器核心;
第一线程的指令序列,其被配置为在所述多核处理器的处理器核心中被运行;
检查单元,其被配置为:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
根据本发明的第五方面,提供了一种装置,所述装置包括:
用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件;
用于通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式的构件;
用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列的构件。
附图说明
在以下,将参照附图更详细地描述本发明,其中:
图1描绘了根据示例实施例的装置的框图;
图2描绘了多核处理器的处理器核心的一些功能单元的示例;
图3描绘了在多核处理器中的多线程的运行的示例;
图4描绘了线程表的示例;
图5是方法的示例的流程图;
图6还示意性地示出了使用无线和有线网络连接来连接的利用本发明的实施例的电子设备;
图7描绘了根据本发明的示例实施例的装置的示例框图;
图8还示意性地示出了使用无线和有线网络连接来连接的利用本发明的实施例的电子设备;以及
图9还示意性地示出了具有正常模式和不同的安全模式的处理器核心的结构。
具体实施方式
以下进一步详细地描述用于提供多核处理器的改进操作的合适的装置和可能的机制。在这点上,首先参照图7,图7示出了适用于利用本发明的一些实施例的用户设备的示例,以及图8,图8示出了示例性装置或电子设备50的框图,该示例性装置或电子设备50可以并入根据本发明的实施例的装置。
电子设备50例如可以是无线通信系统的移动终端或用户设备。然而,将理解的是,可以在可以包括多核处理器的任何电子设备或装置内实现本发明的实施例。
电子设备50可以包括:用于容纳和保护该设备的壳体30。电子设备50还可以包括以液晶显示器形式的显示器32。在本发明的其它实施例中,显示器可以是适合于显示图像或视频的任何合适的显示器技术。电子设备50还可以包括小键盘34。在本发明的其它实施例中,可以使用任何合适的数据或用户接口机构。例如,用户接口可以被实现成作为触摸敏感显示器的一部分的虚拟键盘或数据输入系统。电子设备可以包括麦克风36或任何合适的音频输入器,其可以是数字或模拟信号输入器。电子设备50还可以包括音频输出设备,在本发明的实施例中,所述音频输出设备可以是以下中的任何一个:耳机38、扬声器、或模拟音频或数字音频输出连接件。电子设备50还可包括电池40(或者在本发明的其它实施例中,可以由任何合适的移动能量设备,诸如太阳能电池、燃料电池或发条发电机,向该设备提供电力)。电子设备还可以包括红外线端口42以用于至其它设备的短距视线通信。在其它实施例中,电子设备50还可以包括任何合适的短距通信解决方案,诸如例如蓝牙无线连接或USB/火线有线连接。
如图8中示出的,电子设备50可以包括用于控制电子设备50的一个或多个控制器56或一个或多个处理器。控制器56可以连接到存储器58,在本发明的实施例中,存储器58可以用户数据和/或其它数据,和/或还可以存储用于在控制器56上实现的指令。控制器56还可以连接到编解码电路54,该编解码电路54适用于执行对音频和/或视频数据的编码和解码或帮助由控制器56可能执行的编码和解码。
电子设备50还可以包括卡阅读器48和智能卡46,例如通用集成电路卡(UICC)和通用集成电路卡阅读器以用于提供用户信息并且适用于提供用于在网络上对用户进行认证和授权的认证信息。
电子设备50可以包括:无线电接口电路52,其连接到控制器56并且适用于生成例如用于与蜂窝通信网络、无线通信系统和/或无线局域网进行通信的无线通信信号。电子设备50还可以包括:天线44,其连接到无线电接口电路52以用于将在无线电接口电路52处生成的射频信号传送给其它装置(多个)以及用于接收来自其它装置(多个)的射频信号。
在本发明的一些实施例中,电子设备50包括:相机61,其能够记录或检测个体帧,该个体帧然后被运送给用于处理的编解码器54或控制器。在本发明的其它实施例中,电子设备可以在传输和/或存储之前接收来自另一个设备的用于处理的图像数据。在本发明的其它实施例中,电子设备50可以无线地或通过有线连接接收用于处理的图像。
参照图6,示出了系统的示例,在该系统内能够使用本发明的实施例。系统10包括:多个通信设备,它们能够通过一个或多个网络进行通信。系统10可以包括有线网络或无线网络的任何组合,有线网络或无线网络包括但不限于:无线蜂窝电话网络(诸如全球移动通信系统(GSM),通用移动通信系统(UMTS),码分多址接入(CDMA)网络等),无线局域网(WLAN),诸如由电子电气工程师协会(IEEE)802.x标准中的任何标准定义的WLAN,蓝牙个域网,以太网局域网,令牌环局域网,广域网以及互联网。
系统10可以包含:适用于实现本发明的实施例的有线和无线通信设备两者或电子设备50。
例如,在图6中示出的系统示出了移动电话网络11和互联网28的表示。至互联网28的连通性可以包含但不限于:长距无线连接,短距无线连接,以及各种有线连接,包括但不限于电话线,电缆线,电力线,和类似的通信路径。
在系统10中示出的示例性通信设备可以包含但不限于:电子设备或装置50,个人数字助理(PDA)和移动电话的组合14,PDA 16,集成消息发送设备(IMD)18,桌面计算机20,笔记本计算机22。电子设备50可以是固定的或当由移动中的个体携带时是移动的。电子设备50还可以位于任何模式的交通工具中,交通工具包含但不限于汽车、卡车、出租车、公交车、火车、船、飞机、自行车、摩托车或任何类似的合适模式的交通工具。
一些或其它装置可以发送和接收呼叫和消息,并且通过至基站24的无线连接25与服务提供者通信。基站24可以连接到网络服务器26,其允许移动电话网络11和互联网28之间的通信。系统可以包含附加的通信设备和各种类型的通信设备。
通信设备可以使用各种传输技术来通信,各种传输技术包括但不限于:码分多址接入(CDMA),全球移动通信系统(GSM),通用移动通信系统(UMTS),时分多址接入(TDMA),频分多址接入(FDMA),传输控制协议-互联网协议(TCP-IP),短消息服务(SMS),多媒体消息服务(MMS),电子邮件,即时消息服务(IMS),蓝牙,IEEE 802.11和任何类似的无线通信技术。在实现本发明的各种实施例中涉及的通信设备可以使用各种介质进行通信,各种介质包含但不限于:无线电,红外线,激光,电缆连接,和任何合适的连接。
图1详细地描绘了可以使用本发明的装置100的示例。装置100可以是电子设备50或另一个设备的一部分。例如,装置100可以是诸如台式计算机20的计算设备的一部分。
装置100包括多核处理器102。多核处理器102包括两个或更多处理器核心104a-104d,以及处理器核心104a-104d中的每个处理器核心能够同时运行程序代码。处理器核心104a-104d中的每个处理器核心可以包括:用于处理器核心104的操作的功能单元。在图2中描绘了多核处理器102的示例实施例。例如,处理器核心可以包括:微码105,其将程序代码指令翻译成处理器核心104a-104d中的电路级操作。微码是指令和/或表的集合,它们控制处理器核心如何操作。程序代码指令通常是以已经通过由编译器将高级程序代码编译成二进制代码而获得的二进制代码(也称,机器代码)的形式。该二进制代码能够被存储在存储器58中,处理器104的指令提取器106可以从存储器58提取用于由处理器核心104a-104d运行的指令。所提取的指令可以由指令解码器107进行解码,以及可以将解码的指令提供给处理器核心104a-104d的指令运行器108,指令运行器108运行解码的指令,即执行该指令指示的任务。在一些实施例中,可能没有事先编译高级程序代码,而是在运行时间可以由解释器来解释它。将被编译的(高级)程序代码还能够被称为源代码。此外,通过使用将由汇编器编译的低级指令编写的程序代码也可以被称为源代码。
不失一般性,多核处理器的处理器核心中的一个处理器核心能够被称为第一处理器核心,另一个处理器核心能够被称为第二处理器核心等。还清楚的是,在不同的实施例中,处理器核心的数目可以不同于四个。例如,处理器核心102可以包括:二、三、五、六、七、八或超过八个处理器核心。在以下中,处理器核心一般通过标记104来引用,但是当表示某一处理器核心时,出于清楚也可以使用标记104a-104d。
处理器核心104还可以包括:用于存储数据的一组或多组寄存器110。在电路级上,寄存器可以被实现在多核处理器的内部存储器中或实现成内部寄存器。处理器核心104还可以具有一个或多个接口(总线),该一个或多个接口(总线)用于将处理器核心104与该装置的其它电路连接。可以提供一个接口以用于接收指令,以及可以提供另一个接口127以用于读取和/或写入数据,或它们可以使用相同的接口。也可以有用于提供地址信息的地址接口128,以便处理器核心104能够从程序代码存储器的正确位置提取指令以及从数据存储器提取数据。在一些实施例中,地址接口和数据接口可以完全或部分重叠,即相同的线路用于地址线和数据线。多核处理器还可以包括通用输入/输出接口129。
多核处理器102可以使用这些接口与在该多核处理器外部的单元进行通信。例如,多核处理器可以经地址接口128在地址总线138上提供存储器地址,以及经由数据接口127在数据总线137上提供读取指令,其中在编址的存储位置中存储的信息可以被多核处理器读取,或可以将数据存储在编址的存储器位置中。以这种方式,处理器核心104可以从存储器58读取指令和数据,以及将数据写入到存储器58。
多核处理器102可以包括针对指令、数据和地址的总线130。这些总线可以由处理器核心104a-104d共享,其中每个核心在每个时间点可以访问一种总线,或可以针对处理器核心中的每个处理器核心提供各自的总线。
多核处理器102还可以包括:缓存存储器或多个缓存存储器以用于存储最近使用的信息,诸如指令和/或数据。缓存存储器的一些示例是1级(L1)缓存器116、2级(L2)缓存器118和/或3级(L3)缓存器120。在一些实施例中,如图2中说明的,2级缓存器118和/或3级缓存器120在多核处理器102的外部,然而在一些其它实施例中,它们可以是多核处理器102的一部分。在一些情况下,处理器核心104可以首先检查由当前指令寻址的下一个指令或数据是否已经在缓存存储器中存在,以及如果存在,则不需要从该多核处理器102外部的存储器58来提取该指令或数据。这种类型的操作可以加速处理器核心104的处理时间。图2说明了多核处理器的处理器核心的示例实施例,其中针对处理器核心104提供了一组寄存器110和三个缓存存储器116、118、120。
处理器核心104中的一个或多个处理器核心可以包括:其它功能单元FU,诸如算术逻辑单元(ALU)124、浮点单元(FPU)122、指令提取器106、指令解码器107、指令运行器108、图像加速器等。处理器核心104中的一个或多个处理器核心还可以包括:L1缓存器116、L2缓存器118和/或L3缓存器120。
在一些实施例中,处理器核心104中的一个或多个处理器核心还可以包括翻译单元131,翻译单元131可以翻译二进制代码或二进制代码的一部分,以便处理器核心104能够运行该二进制代码。例如,在优化期间(在本申请中随后将描述该优化),可以选择用于运行线程的处理器核心。线程的二进制代码可能不总是基于所选择的处理器核心的指令集,其中翻译单元可以将二进制代码从一个指令集翻译到所选择的处理器核心支持(即能够运行)的另一个指令集。
图9示意性地示出了具有正常模式902和不同的安全模式904、906的处理器核心104的结构。处理器核心104可以例如具有第一安全模式904和第二安全模式906。在一些实施例中,处理器核心104还可以具有比第一安全模式904和第二安全模式906更多的安全模式。在一些其它实施例中,处理器核心104除了正常模式之外还具有仅一个安全模式。在多核处理器102中,每个处理器核心104不是必须彼此类似,而是不同的处理器核心104可以具有不同类型的属性。例如,处理器核心104中的一个或多个处理器核心可以具有正常模式和一个安全模式,一些其它处理器核心104可以具有正常模式和两个或更多安全模式,以及一些处理器核心104可以仅具有正常模式以及没有安全模式。
当处理器核心104正在正常模式中操作时,它不可以访问装置的仅针对安全模式保留的此类部件。例如,装置100可以包括:安全存储器908,当处理器核心104正在正常模式中操作时,不可以访问该安全存储器908,但是当该处理器正在安全模式904、906(如果有的话)中的一个安全模式中操作时,可以访问该安全存储器908。此外,在不同的安全模式之间,装置100的不同单元的可访问性也可以不同。装置100可以包括:仅在例如第二安全模式906中可以访问的但是在第一安全模式904和在正常模式902中不可以访问的单元。因此,通过使用不同的安全模式,能够设计针对不同种类的操作的不同种类的安全水平。这可以改进防护恶意软件或其它试图破坏装置100的安全。
在以下的非限制性示例中,多核处理器102具有四个处理器核心104a-104d。第一处理器核心104a具有仅正常模式902,第二处理器核心104b具有正常模式902和第一安全模式904,以及第三处理器核心104c和第四处理器核心104d具有正常模式902、第一安全模式904和第二安全模式906。
在正常模式902中,处理器核心104和装置100的其它单元不可以访问位于多核处理器102的安全部件中的单元。当处理器核心104在第一安全模式904中进行操作时,处理器核心104可以访问多核处理器的第一安全部件以及也可以访问在正常模式902中可以访问的那些部件。当处理器核心104在第二安全模式906中进行操作时,处理器核心104可以访问多核处理器102的第二安全部件以及也可以访问在正常安全模式902和/或在第一安全模式904中可以访问的那些部件。
在一些实施例中,可以例如通过特定的指令和/或通过发起特定中断来选择处理器104的模式,该指令和中断切换处理器核心104以在由该指令或由该中断指示的模式中进行操作。例如,如果应用软件具有应当在安全模式中的一个安全模式中运行的部分,则编译器可以将特定指令添加到编译的程序代码。分别地,在该部分的最后,代码可以包含:指令,该指令使得处理器核心104将模式切换到正常模式或可能切换到另一个安全模式。
装置100的操作可以由操作系统(OS)111来控制,OS 111是可以由多核处理器102的处理器核心104中的一个或多个处理器核心运行的一组指令序列。在一些实施例中,处理器核心中的一个处理器核心可以专用于操作系统,或专用于该操作系统的一些部分。操作系统可以包括:设备驱动器,其用于控制装置100和/或电子设备50的不同单元,库,其用于提供针对计算机程序的某些服务以便不需要随用于执行每个操作的指令来包含该计算机程序但是该计算机程序可以含有子例程调用或其它指令,子例程调用或其它指令使得当此类调用在该计算机程序的指令序列中存在时,多核处理器运行该库中的该子例程。例如,用于在电子设备50的显示器32上写数据和/或用于从电子设备50的小键盘34读取数据的操作可以被提供作为操作系统的库中的子例程。
计算机程序,其还可以被称为应用或软件程序,包括用于执某一任务或某些任务的一组或多组指令序列。可以作为一个或多个线程或任务来运行计算机程序。当操作系统运行应用或应用的一部分时,操作系统可以创建进程,该进程包括计算机程序的线程中的至少一个线程。线程可以具有状态,该状态指示该线程是否是活动的、运行中、准备运行、等待事件、保持或停止。还可以有针对线程定义的其它状态,以及在另一方面,每个线程不必具有提及的所有这些状态。例如,从不等待事件的线程可以存在。
操作系统111还包括调度器112或其它构件以用于调度和控制在装置100中是活动的进程的不同任务或线程。调度器112可以针对每个处理器核心104而言是共同的,或每个处理器核心104可以装备有自己的调度器112。调度器112的一个目的是确定接着应当向进程中的哪个线程提供处理时间。调度器112可以尝试针对每个活动的线程或进程提供基本上相同数量的处理时间,以便活动的线程或进程基本上不会减速或停止操作。然而,可能存在一些线程或进程具有比一些其它线程或进程更高的优先级的情况,其中调度器112可以向高优先级的线程或进程提供比低优先级的线程或进程更多的处理时间。也可能存在为什么不向每个线程或进程提供相同处理时间的其它原因。例如,如果线程等待事件出现,则在该事件出现之前,可以不必针对该线程提供处理时间。
调度器112可以基于例如定时器中断。例如,定时器134被编程以在某些时间间隔生成中断,以及由多核处理器的中断模块114来检测该中断,其中发起对应的中断服务例程136。中断服务例程可以包括用于实现调度器112的操作的指令,或它可以包括用于设置例如由操作系统检测的标志或信号量的指令,该操作系统接着运行调度器112。
多核处理器102和处理器核心104也可以包括其它电路,但是在此没有详细地示出它们。
在本发明的一些实施例中,由编译器将应用的源代码编译到片中,片具有处理器核心的近似一个时间片的持续时间,或还可以更长。编译器可以使用该处理器核心的指令集,该指令集最佳匹配针对线程的每个片的源代码的操作。例如,如果编译器具有一个处理器核心具有一个或多个安全模式的信息,该处理器核心最佳适合于该线程的可能的安全要求,则该编译器可以使用这个处理器核心的指令集来编译这些操作以及在二进制代码中插入该线程的这个片应当由该处理器核心来处理的指示。编译器还可以提供针对不能提供最佳可能的安全模式但是提供可以应用的以满足该线程的安全要求的一个或多个安全模式的处理器核心的二进制代码。在这种情况下,通过使用通用指令集,即与其它处理器核心中的至少一些处理器核心兼容的指令集,来提供二进制代码。这种情况也可以在如前所述的类似的片中发生。编译器接着可以计算或以其他方式估计使用共同指令集的运行会慢多少,以及可以将这个信息包含在针对该线程的每个片的二进制代码中或在针对该进程的一些片的二进制代码中。
在一些实施例中,这能够例如以编译器针对第一进程的至少一部分指令序列生成第一二进制代码和第二二进制代码的方式来实现。第一二进制代码于是可以包括:处理器核心的指令集的指令,该指令集已经被确定为最佳适合用于满足该线程的安全要求。第二二进制代码可以包括:指令集的指令,该指令针对多核处理器的至少两个处理器核心或甚至所有处理器核心而言是共同的。当将运行该片时,调度器112可以接着确定最适合的处理器核心是否可以用于运行该线程,以及如果是,则可以选择该处理器核心以运行第一二进制代码。在另一方面,如果确定的是,最适合的处理器核心不可以用于运行该线程,则可以选择另一个处理器核心以运行第二二进制核心。
可以将最优(第一)二进制代码和备选的(第二)二进制代码(多个)两者存储在存储器58中,以便多核处理器核心102能够使用针对线程的片的最优和备选的二进制代码中的任何一个二进制代码。
针对线程的每个部分而言,最优的处理器核心未必是相同的。因此,在线程的运行(执行)期间,在该线程的每个片中,处理器核心能够改变,或处理器核心能够在线程的运行期间在该线程的一些片之间改变。如果存在若干个同等良好匹配的处理器核心,则调度器112可以在可以使用的处理器核心之中随机地选择处理器核心,或当决定哪个处理器核心用于处于准备运行状态的线程的下一个片时,调度器112也可以使用其它标准。
在一些情况下,活动的线程可能未必准备运行,因为该线程可能已经被停止,放入保持状态或等待事件出现,其中不向此类线程提供处理时间。例如,该线程能够继续进行之前,该线程可能等待来自另一个线程或来自另一个进程的数据。
在以下,更详细地描述装置100的操作。当例如由装置的用户或由于事件出现或来自另一个程序的调用,选择应用以启动时,操作系统OS从存储器58提取程序代码或程序代码的部分,以便多核处理器102能够开始运行该程序。然而,在一些实施例中,能够直接从已经存储该应用的存储设备来运行程序,即没有将它首先载入到存储器58中。应用存储设备可以是固定盘、闪存盘、光盘(CDROM)、数字化通用光盘(DVD)或其它合适的位置。还能够从计算机网络,例如从互联网,加载应用。
操作系统还确定含有应当首先执行的指令的入口点。可以由被存储在文件的所谓的文件头中的信息来指示入口点,在该文件中已经存储了该应用。
为了能够运行应用,可能需要初始化一些存储器区域、参数、变量和/或其它信息。操作系统也可以确定和发起该应用的一个或多个线程。例如,该应用可以是相机应用,其可以包括:用于控制成像传感器(诸如,电荷耦合器件(CCD)或互补金属氧化物半导体(CMOS)传感器)的曝光时间的一个线程,用于将传感器数据读取到存储器58的一个线程,用于控制闪光灯的操作和定时的一个线程,等。当发起线程时,可以针对它定义状态。一开始,该状态可能是例如准备运行、等待事件、空闲等。在进程的操作期间,与该状态有关的线程可以改变。例如,调度器可以向该线程提供一些处理器时间,其中该状态可以改变到运行。
现在,将更详细地解释在多核处理器102中的多线程的调度的示例。假设,若干线程是活动的和运行的,以及应当针对线程提供一定数量的处理器时间。这个时间数量也可以被称为时间片或时间槽。时间片可以是恒定的,或它可以时常改变。此外,在操作期间可能发生的中断可能影响的是,运行中的线程可能被中断,以及针对中断的线程保留的时间片的长度可能改变。此外,时间片的恒定长度并不意味的是,墙上时钟时间中的长度是恒定的,而是可以针对线程保留恒定数量的处理器时间以在一个时间片期间运行该线程。在一些其它实施例中,时间片可以在长度中(在墙上时钟时间中)被保持基本上恒定,其中中断可能缩短针对中断的线程提供的处理器时间。
中断可能影响的是,运行中断服务例程(其与讨论中的中断联系在一起),以及在该中断服务例程的开始,中断的线程的状态可以被存储例如到处理器核心的堆栈或装置的另一个堆栈,以便当中断服务例程结束时,能够检索该状态。
当操作系统运行调度器112时,调度器112确定接着应当向哪一个线程提供处理器时间,即在下一个时间片期间,哪一个线程应当运行。可以针对每个处理器核心执行这个确定,以便与具有的处理器核心104一样多的线程能够在相同的时间片内运行。调度器112可以检查活动线程的状态以及选择线程,对于该线程而言,状态指示的是,它准备运行。调度器112还可以检查先前已经向准备运行的线程提供了多少处理器时间,以及选择已经接收到比一些其它线程更少的处理器时间的线程。然而,可能已经针对线程定义了优先级,其中具有高优先级的线程可以比具有低优先级的线程接收更多的处理器时间。调度器112还可以确定应当选择哪个处理器核心104以用于运行该线程。
调度器112还可以将另外的线程设置到运行状态,以便每个处理器核心可以开始运行一个线程。例如,如果多核处理器102包括四个处理器核心104a-104d,则能够同时运行四个线程。然而,可能发生的是,可能有比多核处理器102中的处理器核心104更少的处于准备运行状态的活动线程。因此,处理器核心104中的一个或多个处理器核心可能在一段时间内是空闲的。
当选择用于运行的线程时,调度器112可以将该线程的状态改变到运行状态,或调度器112可以仅指令用于运行该线程而被选择的处理器核心104来检索该线程的状态以及从该线程的运行上一次被停止的地方开始运行该线程的指令。调度器112给予用于运行线程的某一数量的处理时间,即时间片,以及当该时间片结束时,使该线程停止,以及可以将它的状态存储到该处理器核心的内部寄存器或存储到存储器58或存储到一些其它适当的存储介质。在一些实施例中,可以针对一个线程提供超过一个连续的时间片,其中在一个时间片结束后,可以不使该线程停止,而是该线程可以在若干连续的时间片期间运行。
一些线程可以具有可能影响处理器核心104的选择的一些安全约束,以便能够考虑该安全约束。在一些示例实施例中,可以向线程提供关于安全约束的指示。例如,该指示可以指示模式(在该模式中,处理器核心104应当运行线程)。可以例如通过提供比特向量以描述线程的安全要求,来指示该模式。当仅有正常模式和一个安全模式时,使用一个比特来指示安全要求可能是足够的,但是如果有超过两个可以使用的不同模式,则该向量可以包含超过一个比特。
在一些实施例中,可以针对每个线程提供安全相关的信息,然而在一些其它实施例中,可以针对线程的每个片提供安全相关的信息。
在以下,将参照图5中的流程图,更详细地描述根据一些示例实施例的调度过程。在一些实施例中,调度器112以以下方式来执行线程的调度。在每个时间片的开始时,可以重新调度处于准备运行状态的以及在该线程的片的开始处的线程。调度器112检查处理器核心的线程队列300,以确定哪些线程处于准备运行状态以及选择502此类线程以用于重新调度。调度器112还可以检查线程的下一个片的信息以找出哪个处理器核心将是针对该线程的下一个片的潜在的处理器核心。将被检查的信息包含:关于安全约束的指示。调度器112检查504处于准备运行状态的线程的安全要求,以确定哪个处理器核心或哪些处理器核心能够满足该线程的安全要求。这可以例如以调度器112首先检查当前没有运行任何代码的那些处理器(即,它们有空来运行线程)的可以使用的安全模式方式来执行。如果存在能够满足线程的安全要求的空闲的处理器核心,则调度器112可以选择508此类处理器核心以在下一个时间片期间运行该线程。如果有超过一个的处理器核心104以从其中进行选择,则调度器112可以选择510提供最接近于安全要求的属性的那个处理器核心,但是以能够满足该线程的安全要求的方式。
当新线程将被调度并且没有合适的处理器核心空闲时,调度器112可以执行以下。调度器112尝试改变512空闲处理器核心的安全模式,以便该安全模式满足该线程的安全要求。如果这是可能的,则处理器核心的模式被改变为与该安全模式对应,以及在该处理器核心上调度514该线程。
如果没有空闲的处理器核心,则调度器112可以尝试改变516不是空闲的处理器核心(即,忙处理器核心)的安全状态,以及将在该处理器核心上正在运行的线程移动518到其它处理器核心。
如果针对新线程不能找到合适的处理器核心,则可以改变520处理器核心中的一个处理器核心的安全状态,以及在此之后,调度器112可以执行线程的负载均衡,以便在那个时刻将负载仅可能均匀地平衡在处理器核心上。
如果在多核处理器的处理器核心上的没有安全状态的组合以便处于相同优先级水平的所有线程能够由多核处理器来运行,则调度器112可以以循环的方式开始改变522处理器核心的安全状态,以便能够运行一部分线程,同时其它线程等待轮到它们。
在一个处理器核心上,可以针对所有的线程实现所谓的循环调度法,其中所有的线程被调度以在这个处理器核心上运行以及它们具有相同的优先级。如果也有较低优先级的线程,则如果有较高优先级的线程准备运行,则不运行这些较低优先级的线程。
当安全不是问题时,当选择处理器核心104以针对线程的一部分时,或如果存在满足安全要求的超过一个可以应用的处理器核心,则可以存在调度器112在选择中可以使用的其它标准。选择能够基于例如,运行时间、运行效率、质量的数目、功率消耗和/或一些其它标准。
可以如下来执行上述负载均衡。在处于准备运行状态的线程已经被放入队列中时,调度器112可以尝试优化处理器核心的整体负载或评估可能影响针对线程片的处理器核心选择的另一个标准。此类标准可以是例如多核处理器和/或装置的功率消耗、运行效率、多核处理器和/或装置的资源的使用率,等。在本申请中,这种类型的标准还被称为效率。它可以被执行,例如以便调度器112调查具有最高负载的处理器核心。调度器112可以通过确定经由最优处理器核心的队列中的线程的片的运行时间与经由另一个处理器核心的该线程的相同片的运行时间之间的差异,来将位于具有最高负载的处理器核心的线程队列中的线程的运行时间进行比较。也就是说,调度器112可以计算使用最优处理器核心的指令集由编译器生成的二进制代码的运行时间与使用其它处理器核心的指令集(通用指令集)生成的二进制代码的运行时间之间的差异。调度器112可以针对队列(对于该队列而言,在这个阶段(即,在线程的片的开始),处理器核心的改变是可能的)中的每个线程来重复这个计算,以及确定哪个线程在最优编译和一般编译之间具有最小的运行时间差。调度器112可以将此类线程移动到具有最低负载的处理器核心或移动到与最优处理器核心相比具有较低负载的某一其它处理器核心,或移动到将降低功率消耗、优化资源的使用率等的处理器核心。调度器112接着可以检查以这种方式的系统的整体负载是否更好。如果否,则将线程移动回到原始的处理器核心。
将线程从一个处理器核心移动518到另一个处理器核心还可以被称为重定向。在重定向中,二进制代码还可以至少被稍微修改,以便“重定向”的二进制代码在所选择的、其它处理器核心中更好地操作。在一些实施例中,由操作系统来执行重定向,但是在一些其它实施例中,由编译器来执行重定向,其中编译器已经准备了适用于其它处理器核心的二进制代码。编译器可能已经针对该线程提供了当由潜在的处理器核心运行该线程时使用的第一二进制代码,以及编译器还可能已经针对该线程准备了当其它处理器核心运行该线程时使用的第二二进制代码。在一些实施例中,编译器已经针对可以运行该线程的每个此类处理器核心准备了该线程的二进制代码。
在一些实施例中,如果在处理器核心中存在翻译单元,则还可能的是,由多核处理器102的处理器核心的翻译单元来执行重定向。
除了上述标准外,负载均衡也能够基于例如系统的吞吐量、功率效率、装置的资源的使用率、该装置的存储器和/或输入/输出(I/O)单元的使用率、网络连接等。此外,时延和/或响应性也可以用作针对决策的效率测量。这里还应当提及的是,该决策可以基于仅一个标准或两个或更多标准的组合。还可能的是,标准不总是相同的,以及在二进制代码的不同部分中,可以使用不同的标准。
当调度器112已经检查了具有最高负载的线程队列中的所有线程时,调度器112可以以如以上公开的相同的方式继续检查具有较低工作负载(例如,第二最高负载、第三最高负载等)的其它处理器核心(多个)的负载情况,以发现是否能够由与最优处理器核心相比具有较低工作负载的某一其它处理器核心来执行该线程。
可以重复上述步骤,直到没有线程能够被移动到另外的处理器核心以增加效率为止。
从以上能够看到,运行线程的处理器核心可以逐片来改变,以及所选择的处理器核心可以不总是与编译器已经在二进制代码中指示的处理器核心相同的处理器核心,而是相反调度器112可以决定使用另一个处理器核心。
在一些实施例中,针对每个处理器核心104存在各自的线程队列300a、300b,但是在一些其它实施例中,针对每个处理器核心可以存在共同(全局)的线程队列。
图3说明了根据本发明的示例实施例的在装置100中的调度器112的操作和运行线程。在这个示例中,使用仅两个处理器核心104a、104b,以及这两个处理器核心104a、104b分别装备有它们各自的线程队列300a、300b,但是明显的是,类似的原理也可以应用于使用超过两个处理器核心的实施例。这里假设,调度器112(在图3中被标记为SCH)被实现在操作系统中,以便它在第一处理器核心104a中运行。还假设,五个线程TH1-TH5是活动的,以及第六线程TH6在操作期间变成活动的。在时间片n期间,第一线程TH1由第一处理器核心104a运行,以及第三线程TH3由第二处理器核心104b运行。第二线程TH2和第五线程TH5也被包含在第一线程队列300a中,以及它们被标记为准备运行,以便它们等待处理器时间。在第二线程队列300b中,第三线程TH3现在在顶部,这说明的是,它现在由第二处理器核心104b运行。位于第二线程队列300b的第二位置中的第四线程TH4等待处理时间。在时间片n结束时,线程的处理停止以及开始运行。调度器112根据例如处于准备运行状态的线程的下一个片的二进制代码的安全信息,重新调度队列中的线程。
如上所述,调度器112可以对没有在线程的片的中间的仅此类线程进行重新调度。因此,还没有由最新的时间片的结束而结束的片被保持在先前运行该线程的片的相同处理器核心的队列中。在图3中,说明了这种情况的示例。在时间片n+2结束时,第五线程TH5的片没有处于该片的结尾,其中调度器112将该片维持在第一处理器核心的队列中。在这个示例中,在第五线程TH5获得更多的处理时间之前,没有应当被提供处理时间的其它线程。因此,调度器112已经决定在下一个时间片n+3期间继续运行第五线程TH5的中断的片。
可能发生的是,在时间片已经结束之前,线程的片的运行可能结束。在此类情况下,调度器112可以选择另一个线程以用于在该相同的时间片内运行。在图3中说明了这种情况的示例。在时间片n+3期间,第五线程TH5的片结束,以及在时间片n+3的剩余时间内向在第一处理器核心的队列中的下一个线程的片提供运行时间。如果最优处理器核心仍然是相同的,则可以将第五线程TH5放入到相同处理器核心的队列中,或者如果针对该线程的下一个片而言,最优处理器核心改变,或如果调度器决定针对该线程的下一个片的运行而选择另一个处理器核心,则可以将第五线程TH5放入到不同的处理器核心的队列中。也就是说,可能已经针对相同线程的不同片选择了不同的处理器核心。可能已经由从源代码已经编译了可执行代码的编译器,在操作期间由调度器,或由一些其它构件,来确定该选择。例如,应用的一部分可能需要安全操作,其中针对该部分的线程可以含有安全约束,以及可以影响调度操作,如以上解释的。在图3中说明了这种情况的示例,其中第五线程TH5在n+3时间片的结束时被重新调度到第二处理器核心104b的队列300b。
在针对线程的选择的最优核心在该线程的两个片之间改变的情况中,操作可以含有以下。在此类切换点,即当先前片的运行已经在例如第一处理器核心处结束时,调度器112将该线程移动到另一个处理器核心的队列,该另一个处理器核心已经被确定为是针对该线程的下一个片的运行的最优的处理器核心。调度器112接着可以从第一处理器核心的队列中选择将由第一处理器核心运行的另一个线程。
还应当注意的是,在线程队列300a、300b中的信息不需要含有在队列中的线程的完整描述,但是它可以含有至另一个表的指示,在该另一个表中,能够找到关于线程的更多的信息。例如,操作系统可以维护线程表400,在该线程表400中,维护关于已经被启动和活动的进程的所有线程的信息。这种信息可以包含:线程的状态、线程的下一个片、关于针对线程预留的资源的信息、进程的名字、进程的父亲,如果有的话,关于进程的可能的子进程的信息,优先级等。接着,线程队列300a、300b能够含有至线程表(在该线程表中,已经存储了关于线程的信息)中的位置的引用。
图4说明了线程表400的一部分的示例。线程表400可以包含:线程ID、线程名字、优先级、状态、进程ID、安全约束、开始地址、提供该线程的处理时间,等。
当调度器112已经执行了针对下一个时间片的调度任务时,在线程队列300a、300b的顶部的线程能够开始运行。在这个示例中,第一处理器核心104a开始运行第二线程TH2的下一个片,以及第二处理器核心104b开始运行第四线程TH4的下一个片。
在时间片n+1结束时,调度器112再次运行,以及将使用以上指示的原理来处理线程队列。在图3的示例中,新线程,第六线程TH6,已经被激活,以便它现在处于准备运行状态。第六线程TH6的下一个(第一)片的二进制代码能够指示的是,第二处理器核心104b将是最优的处理器核心,其中第六线程TH6被放在第二线程队列300b的末尾。然而,如果已经针对线程或针对线程中的一些线程定义了优先级,则可能的是,新线程将不被放在线程队列的末尾,而是放在该线程队列中的更高位置,以便将更早地向该线程提供处理时间。在图3的示例中,第六线程TH6出于安全约束被从第二线程队列300b改变到第一线程队列300a,以及被放在第一线程队列300a中的第一线程TH1之前。
应当注意的是,上述操作是仅一种可能的备选方案以实现调度和线程队列,以及本发明还可以与其它调度和线程队列实现方式结合应用。
还可能的是,针对较高优先级的线程已经定义了处理时间的某一部分,以便调度器112尝试向此类线程提供处理时间的至少该部分。
在一些实施例中,多核处理器102可能不支持中断,其中调度器112的实现方式可以不同于基于中断的调度器112。
一般地,可以将本发明的各种实施例实现成硬件或专用电路、软件、逻辑和它们的任何组合。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在固件或软件,该固件或软件可以由控制器、微处理器或其它计算设备来执行,尽管本发明不限制于此。虽然本发明的各种方面被说明和描述成框图、流程图或使用一些其它图形表示,但是很好理解的是,本文中所述的这些框、装置、系统、技术或方法可以被实现在,作为非限制性示例,硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其它计算设备、或其一些组合中。
可以由装置的数据处理器可执行的计算机软件,诸如在处理器实体中,或由硬件,或由软件和硬件的组合来实现本发明的实施例。此外,就这点而言,应当注意的是,如在附图中的逻辑流的任何框可以表示程序步骤,或互连的逻辑电路,块和功能,或程序步骤和逻辑电路、块和功能的组合。可以将软件存储在此类物理介质上,诸如存储芯片,或实现在处理器内的存储块,磁介质,诸如硬盘或软盘,以及光介质,诸如例如DVD和其数据变型CD。
存储器可以具有适合于本地技术环境的任何类型,并且可以使用任何合适的数据存储技术来实现,诸如基于半导体的存储设备,磁存储设备和系统,光存储设备和系统,固定存储器和可移动存储器。数据处理器可以具有适合于本地技术环境的任何类型,并且可以包含作为非限制性示例的下列中的一个或多个:通用计算机、专用计算机、微处理器、数字信号处理器(DSP)和基于多核处理器架构的处理器。
可以在各种组件中,诸如在集成电路模块中,实践本发明的实施例。一般而言,集成电路的设计基本上是高度自动化的过程。复杂和功能强大的软件工具可用于将逻辑级的设计转换成准备将要被蚀刻和形成在半导体衬底上的半导体电路设计。
程序,诸如由加利福尼亚的山景城的新思科技(Synopsys,Inc.of MountainView,California)和加利福尼亚的圣何塞的凯登斯设计(Cadence Design,of San Jose,California)所提供的那些程序,使用良好建立的设计规则以及预存储的设计模块的库在半导体芯片上自动化路由导体和定位组件。一旦已经完成了针对半导体电路的设计,则所生成的设计可以以标准化电子形式(例如,Opus,GDSII等)传送给半导体制造厂或用于制造的简写的“fab”。
上述描述已经通过示例性和非限制性的示例提供了本发明示例性实施例的全面和教示性的描述。然而,当结合附图和所附权利要求书阅读时,鉴于上述描述,对于相关领域的技术人员来说,各种修改和适应是明显的。然而,本发明的教示中的所有此类或类似的修改仍然将落入本发明的范围内。
在以下中,将提供一些示例实施例。
根据一些示例实施例,提供了一种方法,所述方法包括:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行所述线程的所述指令序列。
在一些示例实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。
在一些示例实施例中,如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则所述方法还包括:检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。
在一些示例实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求。
在一些示例实施例中,所述方法包括确定针对所述线程的优先级;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。
在一些示例实施例中,所述方法包括:针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。
在一些示例实施例中,所述确定包括:检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果否,则所述方法还包括:选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心;以及将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
在一些示例实施例中,所述方法包括:
运行具有相同优先级水平的多个线程的指令序列;
确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合;以及
如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
在一些示例实施例中,装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。
在一些示例实施例中,所述方法包括:提供包括针对所述潜在处理器核心的指令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。
在一些示例实施例中,所述方法包括:使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
在一些示例实施例中,所述方法包括:提供针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。
在一些示例实施例中,所述方法包括:使用所述多核处理器核心作为移动终端的组件。
根据一些示例实施例,提供了一种装置,所述装置包括:至少一个处理器和包含计算机程序代码的至少一个存储器,所述至少一个存储器和所述计算机程序代码被配置为使用所述至少一个处理器使得所述装置:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
在一些示例实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置:
如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。
在一些示例实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置确定针对所述线程的优先级;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置通过以下中的至少一个来执行所述检查以及重定向:
-检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;
-以及如果否,
-选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心;以及
-将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置:
运行具有相同优先级水平的多个线程的指令序列;
确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合;以及
如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
在一些示例实施例中,效率涉及所述多核处理器的工作负载。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置:提供包括针对所述潜在处理器核心的指令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
在一些示例实施例中,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置提供针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。
在一些示例实施例中,所述装置是移动终端的组件。
根据一些示例实施例,提供了计算机程序产品,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少执行以下:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
在一些实施例中,所述确定包括:检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心。
在一些实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置:
如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及
如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件。
在一些实施例中,所述选择包括:检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置确定针对所述线程的优先级;以及使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置通过以下中的至少一个执行所述检查以及重定向:
检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及
如果否,则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心;以及
将所述潜在的处理器核心的安全模式改变为与所述安全条件对应。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置:
-检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及
-如果否,则选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心;以及改变所述潜在的处理器核心的安全模式以与所述安全条件对应。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置:
运行具有相同优先级水平的多个线程的指令序列;
确定在多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合;以及
如果否,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行。
在一些示例实施例中,所述装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少提供包括针对所述潜在处理器核心的指令序列的第一二进制代码;以及提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
在一些示例实施例中,所述计算机程序产品包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行该一个或多个指令的一个或多个序列时,该一个或多个指令的一个或多个序列使得装置至少提供针对每个处理器核心的线程队列,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。
在一些示例实施例中,所述计算机程序产品是移动终端的软件的一部分。
根据本发明的一些示例实施例,提供了一种装置,所述装置包括:
多核处理器,其包括至少第一处理器核心和第二处理器核心;
第一线程的指令序列,其被配置为在所述多核处理器的处理器核心中被运行;
检查单元,其被配置为:
检查与线程的指令序列有关的信息以确定所述线程的安全条件;
通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式;
如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列。
在一些示例实施例中,所述装置是移动终端的组件。
根据本发明的一些示例实施例,提供了一种装置,所述装置包括:
用于检查与线程的指令序列有关的信息以确定所述线程的安全条件的构件;
用于通过使用所述安全条件,确定多核处理器中的哪个处理器核心具有满足所述安全条件的合适的安全模式的构件;
用于如果所述确定指示的是,所述多核处理器中的具有所述合适的安全模式的一个或多个处理器核心是可以使用的,则选择所述一个或多个处理器核心中的一个处理器核心作为潜在的处理器核心以运行第一线程的所述指令序列的构件。
在一些实施例中,所述装置包括:用于检查具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列;以及如果是,则在所述一个或多个处理器核心之中选择是空闲的以用于运行所述线程的所述指令序列的那个处理器核心作为所述潜在的处理器核心的构件。
在一些实施例中,所述装置包括用于如果所述检查指示的是,具有所述合适的安全模式的所述一个或多个处理器核心中的任何处理器核心不是空闲的以用于运行所述线程的所述指令序列,则检查是否存在是空闲的以用于运行所述线程的所述指令序列的另一个处理器核心;以及如果是,则检查是空闲的以用于运行所述线程的所述指令序列的所述处理器核心的安全模式是否能够被改变以满足所述安全条件;以及如果能够,则改变所述处理器核心的所述安全模式以满足所述安全条件的构件。
在一些实施例中,所述装置包括:用于检查是否存在可用于被选择作为所述潜在的处理器核心的超过一个的处理器核心;以及如果是,则比较所述超过一个的处理器核心的可以使用的安全模式以确定哪个处理器核心提供最接近于所述安全条件的安全模式但是仍然满足所述线程的所有安全要求的构件。
在一些实施例中,所述装置包括用于确定针对所述线程的优先级的构件;以及用于使用所述优先级以确定在下一个时间片内向哪个线程提供处理时间的构件。
在一些实施例中,所述装置包括:用于针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法的构件。
在一些实施例中,所述装置包括:
用于检查所述多核处理器的处理器核心中的任何处理器核心是否是空闲的以用于运行所述线程的所述指令序列的构件;
用于选择已经被选择以运行另一个线程的指令序列的处理器核心作为所述潜在的处理器核心的构件;以及
用于将所述潜在的处理器核心的安全模式改变为与所述安全条件对应的构件。
在一些实施例中,所述装置包括:
用于运行具有相同优先级水平的多个线程的指令序列的构件;
用于确定所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合的构件;以及
用于如果在所述多核处理器的处理器核心上不存在以便能够由所述多核处理器运行所有线程的安全状态的组合,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行的构件。
在一些实施例中,所述装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。
在一些实施例中,所述装置包括:用于提供包括针对所述潜在处理器核心的指令序列的第一二进制代码的构件;以及用于提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码的构件。
在一些实施例中,所述装置包括:用于使用异构处理器作为所述多核处理器的构件,其中至少两个处理器核心的指令集是至少部分不同的。
在一些实施例中,所述装置包括:用于提供针对每个处理器核心的线程队列的构件,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。
在一些示例实施例中,所述装置包括:用于使用所述多核处理器核心作为移动终端的组件的构件。

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所述的装置,所述至少一个存储器具有存储在其上的代码,当由所述至少一个处理器运行所述代码时,所述代码还使得所述装置针对具有相同优先级以及被选择由相同的处理器核心运行的线程,使用循环调度法。
16.根据权利要求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中的任何一项所述的物理介质,所述物理介质包含一个或多个指令的一个或多个序列,当由一个或多个处理器运行所述一个或多个指令的一个或多个序列时,所述一个或多个指令的一个或多个序列使得装置至少使用异构处理器作为所述多核处理器,其中至少两个处理器核心的指令集是至少部分不同的。
32.根据权利要求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中的任何一项所述的装置,所述装置包括:
用于运行具有相同优先级水平的多个线程的指令序列的构件;
用于确定在所述多核处理器的处理器核心上是否存在以便能够由所述多核处理器运行所有的线程的安全状态的组合的构件;以及
用于如果在所述多核处理器的处理器核心上不存在以便能够由所述多核处理器运行所有线程的安全状态的组合,则以循环方式改变所述处理器核心的安全状态,以便能够运行所述多个线程的所述指令序列的一部分,同时所述多个线程的其它指令序列等待运行的构件。
42.根据权利要求36、37和39中的任何一项所述的装置,其中所述装置包括所述多核处理器,以及效率涉及所述多核处理器的工作负载。
43.根据权利要求42所述的装置,所述装置包括:用于提供包括针对所述潜在处理器核心的指令序列的第一二进制代码的构件;以及用于提供包括针对所述多核处理器的另一个处理器核心的指令序列的第二二进制代码的构件。
44.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于使用异构处理器作为所述多核处理器的构件,其中至少两个处理器核心的指令集是至少部分不同的。
45.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于提供针对每个处理器核心的线程队列的构件,所述线程队列包括关于在所述线程队列中的线程的状态的信息和所述安全条件。
46.根据权利要求36、37和39中的任何一项所述的装置,所述装置包括:用于使用所述多核处理器核心作为移动终端的组件的构件。
CN201280074716.5A 2012-05-16 2012-05-16 处理器中的方法,装置和计算机程序产品 Active CN104471587B (zh)

Applications Claiming Priority (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 Active CN104471587B (zh) 2012-05-16 2012-05-16 处理器中的方法,装置和计算机程序产品

Country Status (4)

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

Families Citing this family (37)

* 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
KR102205836B1 (ko) 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
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
US9778951B2 (en) * 2015-10-16 2017-10-03 Qualcomm Incorporated Task signaling off a critical path of execution
US10318356B2 (en) * 2016-03-31 2019-06-11 International Business Machines Corporation Operation of a multi-slice processor implementing a hardware level transfer of an execution thread
CN107306232B (zh) * 2016-04-22 2021-02-26 华为技术有限公司 网络设备、控制器、队列管理方法及流量管理芯片
CN106161938B (zh) * 2016-07-22 2019-05-14 深圳天珑无线科技有限公司 一种闪光灯打开方法和装置
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
US10169248B2 (en) 2016-09-13 2019-01-01 International Business Machines Corporation Determining cores to assign to cache hostile tasks
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
RU2641226C1 (ru) * 2017-02-13 2018-01-16 Самсунг Электроникс Ко., Лтд. Способ функционирования secureos на многопроцессорных системах в мобильных устройствах
US10740496B2 (en) * 2017-02-13 2020-08-11 Samsung Electronics Co., Ltd. Method and apparatus for operating multi-processor system in electronic device
US10607484B2 (en) * 2017-12-28 2020-03-31 Intel Corporation Privacy-preserving distributed visual data processing
US10866753B2 (en) 2018-04-03 2020-12-15 Xilinx, Inc. Data processing engine arrangement in a device
US20220164442A1 (en) * 2019-08-12 2022-05-26 Hewlett-Packard Development Company, L.P. Thread mapping
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
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
US11409696B2 (en) 2019-11-01 2022-08-09 EMC IP Holding Company LLC Methods and systems for utilizing a unified namespace
US11288238B2 (en) 2019-11-01 2022-03-29 EMC IP Holding Company LLC Methods and systems for logging data transactions and managing hash tables
US11288211B2 (en) 2019-11-01 2022-03-29 EMC IP Holding Company LLC Methods and systems for optimizing storage resources
WO2021217589A1 (zh) * 2020-04-30 2021-11-04 华为技术有限公司 安全数据处理方法及装置
US11714897B2 (en) 2020-09-02 2023-08-01 Mobileye Vision Technologies Ltd. Secure distributed execution of jobs
US20220121485A1 (en) * 2020-10-20 2022-04-21 Micron Technology, Inc. Thread replay to preserve state in a barrel processor
US11892983B2 (en) 2021-04-29 2024-02-06 EMC IP Holding Company LLC Methods and systems for seamless tiering in a distributed storage system
US11579976B2 (en) 2021-04-29 2023-02-14 EMC IP Holding Company LLC Methods and systems parallel raid rebuild 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
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
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
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
US12093435B2 (en) 2021-04-29 2024-09-17 Dell Products, L.P. Methods and systems for securing data in a distributed storage system
US11677633B2 (en) 2021-10-27 2023-06-13 EMC IP Holding Company LLC Methods and systems for distributing topology information to client nodes
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
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
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

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
KR101015456B1 (ko) 2002-11-18 2011-02-22 에이알엠 리미티드 디바이스에 의한 메모리로의 억세스 제어
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
US20150302219A1 (en) 2015-10-22
US9443095B2 (en) 2016-09-13
EP2850555A1 (en) 2015-03-25
WO2013171362A1 (en) 2013-11-21
EP2850555B1 (en) 2022-11-30
CN104471587A (zh) 2015-03-25
EP2850555A4 (en) 2016-01-13

Similar Documents

Publication Publication Date Title
CN104471587B (zh) 处理器中的方法,装置和计算机程序产品
US20150205614A1 (en) Method in a processor, an apparatus and a computer program product
CN105163373B (zh) 一种定位方法和移动终端
CN102171665B (zh) 使用中央dma机制进行数据过滤
CN1828563B (zh) 处理器及信息处理方法
EP2828741A1 (en) Method in a processor, an apparatus and a computer program product
CN106462395B (zh) 多线程处理器架构中的线程等待
CN107003961B (zh) 用于上下文切换的基于跟踪缓冲器的重放
CN100530111C (zh) 一种多线程访问间接寄存器的调度方法
CN109062617A (zh) 一种支持多类型设备的平台的应用方法、移动终端
CN104380258A (zh) 对图形硬件实施调度操作
US20150095896A1 (en) Runtime dispatching among a heterogeneous group of processors
CN105683905A (zh) 在多核心处理器中并行功能的高效率硬件分派及相关的处理器系统、方法及计算机可读媒体
CN103488536B (zh) 任务调度方法、装置及操作系统
CN104067225A (zh) 对用于图形处理单元的具有相关联的纹理加载指令的控制流指令的判定
KR20140117578A (ko) 다중스레드 컴퓨팅
CN111190741A (zh) 基于深度学习节点计算的调度方法、设备及存储介质
CN101606135A (zh) 时钟控制装置、时钟控制方法、时钟控制程序及集成电路
CN105848117A (zh) 充值方法和充值装置
US20190065075A1 (en) Method to improve mixed workload performance on storage devices that use cached operations
CN102667669A (zh) 对中央处理单元内的数据进行取样的系统和方法
ES2719609T3 (es) Sistema de NFC que comprende una pluralidad de elementos seguros
WO2024061032A9 (zh) 窗口显示方法和相关装置
US10783004B1 (en) Method, apparatus, and electronic device for improving parallel performance of CPU
CN104102560A (zh) 系统性能测试的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 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