CN105765524B - 用于非均匀核分配的技术 - Google Patents
用于非均匀核分配的技术 Download PDFInfo
- Publication number
- CN105765524B CN105765524B CN201380079403.3A CN201380079403A CN105765524B CN 105765524 B CN105765524 B CN 105765524B CN 201380079403 A CN201380079403 A CN 201380079403A CN 105765524 B CN105765524 B CN 105765524B
- Authority
- CN
- China
- Prior art keywords
- instruction
- core
- execution
- instruction block
- block
- 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.)
- Expired - Fee Related
Links
- 238000005516 engineering process Methods 0.000 title abstract description 25
- 238000009826 distribution Methods 0.000 title description 2
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 39
- 230000015654 memory Effects 0.000 claims description 33
- 238000005265 energy consumption Methods 0.000 claims description 27
- 230000008859 change Effects 0.000 claims description 12
- 230000005611 electricity Effects 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 74
- 238000012545 processing Methods 0.000 description 30
- 230000008878 coupling Effects 0.000 description 17
- 238000010168 coupling process Methods 0.000 description 17
- 238000005859 coupling reaction Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 14
- 230000006870 function Effects 0.000 description 7
- 230000011664 signaling Effects 0.000 description 6
- 230000000712 assembly Effects 0.000 description 5
- 238000000429 assembly Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 4
- 230000005294 ferromagnetic effect Effects 0.000 description 3
- 230000005307 ferromagnetism Effects 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 235000012431 wafers Nutrition 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 239000004020 conductor Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 229920000642 polymer Polymers 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- YIWGJFPJRAEKMK-UHFFFAOYSA-N 1-(2H-benzotriazol-5-yl)-3-methyl-8-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carbonyl]-1,3,8-triazaspiro[4.5]decane-2,4-dione Chemical compound CN1C(=O)N(c2ccc3n[nH]nc3c2)C2(CCN(CC2)C(=O)c2cnc(NCc3cccc(OC(F)(F)F)c3)nc2)C1=O YIWGJFPJRAEKMK-UHFFFAOYSA-N 0.000 description 1
- MKYBYDHXWVHEJW-UHFFFAOYSA-N N-[1-oxo-1-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propan-2-yl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(C(C)NC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 MKYBYDHXWVHEJW-UHFFFAOYSA-N 0.000 description 1
- NIPNSKYNPDTRPC-UHFFFAOYSA-N N-[2-oxo-2-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)ethyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 NIPNSKYNPDTRPC-UHFFFAOYSA-N 0.000 description 1
- AFCARXCZXQIEQB-UHFFFAOYSA-N N-[3-oxo-3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-yl)propyl]-2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidine-5-carboxamide Chemical compound O=C(CCNC(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F)N1CC2=C(CC1)NN=N2 AFCARXCZXQIEQB-UHFFFAOYSA-N 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- JAWMENYCRQKKJY-UHFFFAOYSA-N [3-(2,4,6,7-tetrahydrotriazolo[4,5-c]pyridin-5-ylmethyl)-1-oxa-2,8-diazaspiro[4.5]dec-2-en-8-yl]-[2-[[3-(trifluoromethoxy)phenyl]methylamino]pyrimidin-5-yl]methanone Chemical compound N1N=NC=2CN(CCC=21)CC1=NOC2(C1)CCN(CC2)C(=O)C=1C=NC(=NC=1)NCC1=CC(=CC=C1)OC(F)(F)F JAWMENYCRQKKJY-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003340 mental effect Effects 0.000 description 1
- 238000003801 milling Methods 0.000 description 1
- 230000006911 nucleation Effects 0.000 description 1
- 238000010899 nucleation Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000011282 treatment Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/263—Arrangements for using multiple switchable power supplies, e.g. battery and AC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/508—Monitor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Devices For Executing Special Programs (AREA)
- Power Sources (AREA)
Abstract
多种实施例总体上面向用于分配例程的指令块的实例至处理器组件的核的非均匀集合的多个类型的核之一的技术。选择核的类型的装置包括:处理器组件;核选择组件,用于由该处理器组件执行以基于该指令块的指令的特性选择多个核中的核来并行执行指令块的多个实例的初始子集,以及基于存储于执行数据库的初始子集的执行特性选择多个核中的核,以并行执行指令块的多个实例的剩余实例;以及监视组件,用于由该处理器组件执行以在该执行数据库中记录该初始子集的执行特性。其他实施例被描述和声明。
Description
技术领域
本文描述的实施例总体上涉及将指令块实例分配至具有非均匀核集合的处理器组件的核。
背景技术
在计算设备中应用包含非均匀核集合的处理器组件是普遍的。特别地,包含合并所谓“通用”核与更专用于图形处理和/或其他操作的核的处理器组件是普遍的。尽管之前的做法已用于在通用核上执行大多数例程并保留更专用的核用于特定类型的例程,已经证明,使多个类型的例程的一部分执行于不同类型的核的组合是有益的。
然而,这需要确定例程的哪些指令块要由该处理器组件中核的非均匀集合的不同类型的核中的哪些核来执行。先前的进行上述选择的工作已包括利用实践数据集合执行选择指令的集合和/或编译例程的“实践运行”,以观测多种指令由不同的核的执行。该实践运行的结果被分析,并且该分析的结果作为确定例程的哪些部分要由哪个类型的核执行的基础。
然而,典型的情况下,该实践运行,尤其那些应用实践数据集合的实践运行,产生的结果与当实际例程以实际数据集合来执行时所产生的相偏离。尽管在某些环境下,这种偏离的程度可仅视为缺少某种优化程度的机会,但即使小程度的该偏离对于以较大频率执行的例程的部分而言可能变得很显著。
对于执行频繁使用的功能的例程的部分(例如,频繁使用的库的例程),或对于在多个实例并行执行的例程的部分(例如,执行数百次,数千次,或更多次循环),即使失去很小程度优化的机会可能很快变得显著。这种机会失去的结果可包括明显丢失执行其他任务的可用处理资源和/或便携式设备中有限的可用功率的明显不必要的附加消耗。
附图说明
图1说明了非均匀核处理系统的实施例。
图2说明了非均匀核处理系统的可选实施例。
图3-6的每一个说明了分布式处理系统的一部分实施例。
图7-9的每一个说明了根据一个实施例的逻辑流。
图10说明了根据一个实施例的处理体系结构。
具体实施方式
多种实施例总体上面向用于分配例程的指令块实例至处理器组件的核的非均匀集合的多个类型的核之一的技术。更特别地,在例程的指令块的多个实例并行执行时,在例程的执行期间确定处理器组件的多个类型的多个核中的哪个或者哪些核将被选择执行其多个实例。在例程编译期间观测的和/或在指令块的实例的先前执行期间观测的表示指令块的指令特性的数据被用于确定核的选择。可选地或附加地,在执行时间和功耗之间所选择平衡的表示被用于确定核的选择。
在例程编译期间,至少该指令块可被编译,用于由处理器组件的这些类型的核至少其中之一来执行。并且,组成指令块的指令的特性可记录为特性数据,以伴随于该例程的编译形式。以此记录的特性可包括指令块中的存储器访问指令和/或分支指令使用程度的表示。更特别地,特性数据可表示指令块中哪一部分指令为存储器访问指令和/或哪一部分指令为分支指令(例如,跳转指令,调用指令,返回指令,到达指令等的一个或多个)。
在例程的初始执行期间,表示在特性数据中的所记录的指令块中指令的特性可用于处理器组件的一个或多个类型的核的初始选择,以执行要并行执行的指令块实例的初始子集。如本文所使用的术语“初始执行”指代处理器组件对例程的首次执行,以使不存在关于指令块实例的执行特性的先前记录数据。
在实例的初始子集的执行期间,实例的初始子集由在初始选择被选择的任何核的执行的特性被记录为执行数据库的一部分,在指令块的实例的后续执行中被引用。以此记录的特性可包括该核执行指令块的实例需要的时间和/或该核执行该实例所消耗的电能量的表示。处理器组件的监视单元可用于监视指令块实例的执行的多种方面,包括实例的每次执行所需时间和/或电能量消耗。所记录的初始子集的执行特性可用于选择处理器组件的一个或多个类型的核,以执行指令块的剩余实例。进一步,降低执行时间和降低功耗之间的所选平衡的表示可与所记录的实例的初始子集的执行特性一同应用于选择一个或多个类型的核以执行剩余的实例。在剩余的实例的执行期间,实例的执行特性的更多记录可产生并可与较早记录的实例的初始子集的执行特性进行平均,以进一步细化记录的特性。
在某些实施例,所记录的指令块的实例的较早执行的特性(包括初始执行)可用于选择处理器组件的一个或多个类型的核,以将指令块的所有实例执行为例程的每个后续的执行的一部分。因此,不同于例程的初始执行,用于剩余的实例的另一选择之前的实例子集将没有初始选择。而且,降低执行时间和降低功耗之间的选择平衡的表示还可用于选择核的类型。在执行期间,更多的由所选择的任意核的实例执行特性记录可产生并可与来自较早执行的较早记录的特性进行平均以进一步细化记录特性。
在其它实施例,在例程的后续执行期间,仍然存在核的类型的初始选择,以执行指令块的实例的初始子集,然后选择核的类型以不同于初始执行的方式执行剩余的实例。在后续执行中对初始子集继续使用核类型的初始选择可视为希望的,以提供检测其执行条件完全不同于那些一个或多个先前执行的实例的机会,使得核类型的选择可能需要改变,。换言之,特性被记录的先前执行可在基本不同于新的例程执行条件的条件下产生。结果,对来自先前的例程执行的所记录的指令块的实例的执行特性的依赖对新执行的条件而言可导致显著不理想的核类型的选择。
因此,在该其他实施例,在执行数据库中指令块的实例的执行特性的记录可与至少某些先前例程执行的条件的表示配对。进一步,初始选择可基于特性数据,特性数据表示在指令块被编译时观测的指令块的指令特性。换言之,初始选择被做出的方式可在所有执行中相同,包括初始执行。观测的当前条件的特性还可用于查找和检索在基本相同的条件下产生的先前执行的所记录特性。阈值数据可指定条件差别的阈值,其确定在不同的执行之间的条件是否被考虑为基本相同,以使其被视为匹配。在基本类似条件下先前例程执行的记录特性能够出现在执行数据库时,这些所记录的特性可作为剩余实例的执行所选择核的类型被确定的基础。
利用本文使用的标记和命名的总体参考,如下部分详细描述可在执行于计算机或计算机网络的程序过程上呈现。该过程描述和表示由本领域技术人员使用,以最有效地传递其工作内容至本领域其他技术人员。过程在本文并且总体上被设想为产生希望的结果的自相容的操作序列。该操作需要物理量的物理操作。通常,而非一定,该量采用电、磁或光信号的形式,能够存储、传输、合并、比较以及以其他方式操作。将该信号表示为比特、值、元素、符号、字符、项、数字等被证明有时是方便的,主要用于通常使用。然而,应当理解,所有上述和类似术语关联于合适的物理量并且仅仅是用于数量的方便标签。
进一步,该操作通常以诸如增加或比较的形式表示,其通常关联于由人类操作者执行的脑力操作。然而,在形成一个或多个实施例的一部分的本文描述的任何操作,人类操作者的该能力不是必要的,或在多数情况下是希望的。相反,该操作为机器的操作。用于执行多种实施例的操作的可用机器包括通用数字计算机,通用数字计算机由存储于根据本文教导写入的位置的计算机程序选择性地激活或配置,和/或包括特别构造用于所需要目的的装置。多种实施例还涉及用于执行该操作的装置或系统。该装置可特别构造用于所需要的目的或可包括通用计算机。多种机器所需要的结构将从给定描述显而易见。
现参考附图,其中相同引用数字在全文用于指代相同元素。在如下描述,用于说明,多个特定细节被提出以提供其全面理解。然而,显而易见的是,新的实施例可被实现而不需要该特定细节。在其它实例,公知结构和设备示出于框图形式,以便于其描述。意图在于覆盖权利要求范围内的所有修改、等同和可选项。
图1为非均匀核处理系统1000的实施例的框图,其包含编译设备100、计算设备300和远程计算设备500的一个或多个。每个该计算设备100、300和500可为任何多种类型的计算设备,包括而非限制,桌面计算机系统、数据条目终端、膝上型计算机、上网本计算机、平板计算机、手持个人数据助理、智能电话、数字照相机、整合于服装的穿戴计算设备、集成于车辆(例如,汽车,自行车,轮椅等)的计算设备、服务器、服务器簇、服务器群等。
如所描述,该计算设备100、300和500的子集交换关联于应用代码170的编译和/或的应用例程370的执行的信号(经由网络999)。然而,该计算设备的一个或多个可相互和/或与其他计算设备(未示出)经由网络999交换整体上与该编译或执行无关的其他数据。在多种实施例,网络999可为单个网络,可能限制以在单个建筑物或其他相对限制区域中延伸,连接的网络的组合可能延伸较大距离,和/或可包括互联网。因此,网络999可基于通信技术的任何变化(或组合),由此信号可被交换,包括而非限制,应用电气和/或光学导电布线的有线技术,以及应用红外、射频或其他形式的无线传输的无线技术。
在多种实施例,计算设备300集成处理器组件350、存储360、传感器310和接口390的一个或多个,以耦合计算设备300与网络999。存储360存储控制例程340、应用例程370、特性数据337、策略数据331、阈值数据336和执行数据库334的一个或多个。处理器组件350集成核的非均匀集合,核至少包括核355a和355b。换言之,处理器组件350包含多个不同类型的核,其中核355a和355b为两个不同的类型。处理器组件350还可包含监视单元353。
应当理解,尽管特别描述了两个不同类型的核(例如,核355a和355b),其他实施例也是可能的,其中处理器组件350包含两个以上不同类型的核。如先前讨论,核的类型之一可为“通用”处理核,并且核的另一类型之一可为专用类型,包括但不限于,图形处理核。还应注意,尽管处理器组件350描述为其为单个设备(例如,以单个框描述),其中处理器组件350由单个封装中的多个半导体晶片组成或遍布在采用多个导体互联的多个封装的实施例也是可能的。进一步,处理器组件350的物理实现的该变型可使监视单元353包含一部以上的监视电路,以监视核355a和/或355b中的核的例程的执行。以示例的形式,在处理组件350包含多个半导体晶片的实施例中,可存在包含于每个半导体晶片的这样的监视电路的至少一个。
在多种实施例,编译设备100包含处理器组件150、存储160和接口190的一个或多个,以耦合编译设备100至网络999。存储160存储控制例程140、应用代码170、应用例程370和特性数据337的一个或多个。控制例程140包含可操作于处理器组件150的指令序列,作为提交设备100的主处理器组件的角色,以实现逻辑以执行多种功能。
在执行控制例程140时,处理器组件150编译应用代码170以生成应用例程370。应用代码170包含指令序列,其当编译时表示可操作于计算设备300的处理器组件350,以实现逻辑以执行多种功能。应用例程370包含指令序列,其相当于应用代码170的指令序列,但在编译形式可操作于处理器组件350,以实现相同的逻辑。由于处理器组件350包含一个以上类型的核,控制例程140在从应用代码170生成应用例程370时应用一个以上编译器。
图3描述了使用两个编译器的实施例,特别为编译应用代码170以生成应用例程370的编译器145a和145b。更特别地,应用代码170包含指令块175,其包括表示由处理器组件350在多个实例并行执行的指令序列。以示例的形式,指令块175可集成指令循环,其中多个实例(例如,数十,数百,数千个或多个实例)要由处理器组件350的核355a和/或355b并行执行。在至少编译指令块175中,编译器145a生成指令块375a,用于由处理器组件350的一个或多个核355a执行,并且编译器145b生成指令块375b,用于由一个或多个核355b执行。每个指令块375a和375b实现与指令块175相同的逻辑,但每一个表示分别由不同类型的处理器核355a和355b的不同的一个执行。
在进一步执行控制例程140时,处理器组件150分析组成指令块175的指令,并存储这些指令的特性的表示作为特性数据337的至少一部分。而且,以此记录的特性可包括指令块中存储器访问指令和/或分支指令的使用程度的表示。更特别地,特性数据可表示指令块中的哪一部分指令为存储器访问指令和/或哪一部分指令为分支指令(例如,跳转指令,调用指令,返回指令,转向指令等的一个或多个)。该部分可表达为存储器计算比率等于存储器访问指令的量除以指令块的指令总量,以及控制计算比率等于分支指令的量除以指令块的指令总量。在从应用代码170生成应用例程370和特性数据337之后,处理器组件150可操作接口190以经由网络传输二者至计算设备300。
控制例程340在其作为计算设备300的主处理器组件角色时包含可操作于处理器组件350的指令序列,以实现逻辑以执行多种功能。在执行控制例程340中,处理器组件350确定哪个类型的核355a或355b被分配以执行指令块175的逻辑的可能是许多实例,如分别编译为指令块375a和375b。假设指令块375a和375b特别地被编译以分别操作于核355a和355b,选择哪个类型的核355a和355b被分配以执行这些实例必然导致选择以执行指令块375a或375b中的一个或两个。换言之,在核355a的一个或多个被选择以执行指令块175的实例时,可操作于核355a的其编译形式,即,指令块375a,被选择。对应地,其中核355b的一个或多个被选择以执行指令块175的实例,可操作于核355b的其编译形式,即,指令块375b,被选择。
在多种实施例,特性数据337、策略数据331和执行数据库334的多种组合由处理器组件350使用以确定哪些类型的核355a和/或355b被分配以执行指令块375a和/或375b的实例。执行数据库334可保持多个例程的指令块的由这些类型的核355a和355b的不同类型执行的特性表示。因此,在应用例程370的执行期间,处理器组件350监视监视单元353以及记录指令块375a和375b的一个或两个的实例的执行的各种特性的表示。核355a的一个或多个对实例的执行特性被存储为执行数据库334的条目335a的一部分,并且核355b的一个或多个对实例的执行特性被存储为条目335b的一部分。
执行的哪个特性记录于执行数据库334至少部分地取决于监视单元353的能力。在多种实施例,监视单元353可能够监视核355a和/或355b的多个时钟周期的一个或多个,以执行一个或多个特定指令,对处理器组件350的一个或多个寄存器的利用(或其缺失),缓存命中和/或丢失率,一个或多个特定指令的出现率,每个核355a和/或355b的电流和/或电压级别等。在某些实施例,存储为条目335a和335b的执行特性表示可包括执行每一个实例所需时间的运行均值和分别由核355a和355b之一执行每一个实例的电能耗的一个或两者。
在编译应用代码170以生成应用例程370和特性数据337之后,其中应用例程370先前未由处理器组件350执行,条目335a和335b可不存在于执行数据库334或可不包括任何执行特性的表示。在该情况下,处理器组件350可应用特性数据337,而且并非执行数据库334或策略数据331的任一个,以用于确定要分配哪些类型的核355a和/或355b以执行指令块175的逻辑的实例。该选择可为初始选择,仅应用于要执行的实例的初始子集,作为执行应用例程370的一部分,以提供机会观测该实例的初始子集由被选择的核355a和/或355b的哪一个(哪些)核执行的特性。因此,基于本文特性数据337中指令特性的表示,核355a和/或355b的类型的初始选择基于哪一个视为能够更有效地执行指令块175的逻辑而作出。
作为实例的初始子集的执行结果,存在执行数据库334的条目335a和335b的那些实例的执行的特性的表示。处理器组件350将来自条目335a和335b的表示应用于重新确定要分配哪个类型的核355a和/或355b以执行剩余实例作为继续应用例程370的初始执行的一部分。应当理解,选择核355a和/或355b的类型以执行实例的初始子集以及选择相同类型或不同类型来执行剩余实例是可能的。换言之,可能核355a的一个或多个被选择为执行实例的初始子集的和剩余实例核的类型,但对每个做出选择的依据不同。并且,可能核355a的一个或多个被选择为执行实例的初始子集的核的类型,而核355b的一个或多个被选择为执行剩余实例的核的类型。
而且,条目335a和335b的数据可包括分别在指令块375a和375b的实例的每个执行所需时间和能耗的表示,使该新的确定基于这些观测的时间和功耗特性以及来自策略数据331的所选择的能量策略的表示的组合而作出。能量策略的选择的表示,如先前讨论,可包括在执行实例所需时间和执行实例的电能耗的量之间的所选择的平衡的表示。在某些实施例,该表示可采用0到1范围的数字值的形式,其中0表示降低执行时间而与能耗无关的选项,1表示降低能耗而与需要执行多少时间无关的选项。该数字值可用于提供核355a和355b的每个类型的每个实例执行所需时间和能耗的表示的所乘的权重值。得到的核355a和355b的每个类型的加权值然后被比较,作为选择要分配哪一(些)类型的核355a和355b以执行剩余实例的一部分。
不管用于执行剩余实例的核的类型的选择所进行的确切方式,剩余实例的执行特性用于细化已在条目335a和335b中的执行特性的表示。在实例的执行特性存储于条目335a和335b作为运行均值(例如,每个实例执行所需时间和/或功耗)的实施例中,较新的数据可被平均化为运行均值。进一步,权重可用于朝最近的数据偏置运行均值。
在某些实施例,策略数据331的能量策略的选择的表示可由计算设备100、300和500的一个或多个的操作者提供。在其它实施例,该表示可动态地由传感器310提供,其可检测触发能量策略的选择的改变的一个或多个条件。以示例的形式,传感器310可检测电池剩余能量的级别,可检测交流干线电的可用性(或其缺失)等,其可作为动态地改变能量策略的触发。特别地,在电池剩余可用能量的级别低于选择阈值时,处理器组件350可改变策略数据331以反映能量策略从倾向于降低执行指令块375a和/或375b的实例的时间的选择的平衡改变到倾向于降低执行实例的所消耗的电功率的选择的平衡。
在某些实施例,在应用例程370的初始执行之后,处理器组件350可仅应用执行数据库334和策略数据331于选择核355a和/或355b的类型以在应用例程370的所有未来的执行中执行指令块375a和/或375b的实例。在该实施例中,在应用例程370的每一个未来的执行中,指令块375a和/或375b的实例的执行特性分别被包含于条目335a和335b,以继续进一步细化该条目中的特性表示。在条目335a和335b包含诸如执行实例所需时间和/或执行实例的能耗的值的运行均值的实施例中,来自新执行的实例的对应值可以采用加权值被平均到该运行均值中,应用该加权值以便朝更近的值偏置运行均值。
在其它实施例,每个条目335a和335b可进一步划分为条目,其中表示不同条件下指令块375a和/或375b的执行特性的值被独立保持。不同的条件可包括,但不限于,所需时间和能量消耗之间平衡选择的差别,实现于指令块175的逻辑的过程的数据和/或其他输入的特性的差别,在关联于指令块175的一个或多个条件分支中所观测的分支的差别等。差别程度的表示需要将应用例程370的一个执行的条件视为足以区别于被分配独立条目的另一执行。
在该其他实施例,如果条件的特定差别为能够在选择核类型之前检测的类型(例如,所需时间和能耗之间的平衡选择的差别等),则处理器组件350可首先检查执行数据库334的关联于根据阈值数据336的阈值而被发现为足以接近而匹配的条件的条目。如果找到该条目,处理器组件350可应用表示于该条目的执行特性,以及表示于策略数据331的功耗和执行时间之间平衡的表示,以选择核355a和/或355b的类型来分别执行指令块375a和/或375b的实例。然而,如果没有该条目被找到,则处理器350可还原至选择用于应用例程370的初始执行的核的类型的方法。特别地,处理器组件350可基于特性数据337进行核的类型的初始选择,以执行要执行的实例的初始子集。然后,处理器组件350可应用观测自执行初始子集的执行特性以及表示于策略数据331的能量策略,以选择核的类型以执行剩余实例。进一步,观测的这些实例的执行特性可以在新的条目中被加入执行数据库334,新的条目关联于其执行所出现的条件。
然而,在该其他实施例,如果条件的特定差别为无法在选择核类型之前检测的类型(例如,由指令块375a和/或375b执行的任一过程的数据和/或其他输入的特性的差别),则处理器组件350可基于特性数据337进行核的类型的初始选择,以执行要执行的实例的初始子集。处理器组件350还可分析观测的初始子集的执行特性以获得当前条件的表示然后检查执行数据库334中的条目,该条目关联于根据阈值数据336的阈值被发现足够接近而匹配的条件。而且,如果该条目被发现,处理器组件350可应用表示于该条目的执行特性,以及表示于策略数据331的功耗和执行时间之间的平衡的表示,以选择核355a和/或355b的类型来分别执行指令块375a和/或375b的实例。然而,如果没有条目被发现,则处理器350还可还原至选择用于应用例程370的初始执行的核的类型的方法,并且增加新的条目至执行数据库334,用于观测的关联于其执行出现的条件的这些实例的执行特性。
回到图1,在多种实施例,远程计算设备500(如果存在)包含处理器组件550、存储560、控制520、显示器580以及耦合远程计算设备500至网络999的接口590的一个或多个。存储560存储控制例程540。控制例程540包含在其作为远程计算设备500的主处理器组件角色中可操作于处理器组件550的指令序列以实现逻辑以执行多种功能。
在某些实施例,计算设备300可为多个计算设备之一,其可用于经由网络999提供多种服务(例如,作为服务器群的一部分,提供邮件和/或网站宿主,电信和/或视频会议支持,在线商务和/或金融事务的支持等)至其他计算设备,诸如远程计算设备500。因此,在执行控制例程540时,处理器组件550可监视控制520的操作者人工输入的表示,操作显示器580以可视呈现用户界面的可视部分,和/或操作接口590以使操作者与计算设备300通过远程计算设备500交互。以这种方式,远程计算设备500的操作者能够使用可由计算设备300提供的任意服务。
图2说明了非均匀核处理系统1000的可选实施例的框图,其包括计算设备300的可选实施例。图2的渲染系统1000的可选实施例在多种形式类似于图1的实施例,并且因此,相同引用数字用于在全文中指代相同组件。然而,不同于图1的计算设备300,图2的计算设备300包含图1的编译设备100的特征。因此,图2的计算设备300的处理器组件350编译应用代码170以生成应用例程370和特性数据337,代替完全独立的编译设备100来执行。
在多种实施例,每个处理器组件150,350和550可包括商业可用处理器的任何广泛变型。进一步,该处理器组件的一个或多个可包括多个处理器、多线程处理器、多核处理器(多个核共存于相同的或单独的晶片),和/或多个物理独立的处理器以某些方式链接的某些其他变化的多处理器体系结构。
在多种实施例,每个存储160,360和560可基于信息存储技术的任何广泛的变化,可能包括需要不中断电能提供的易失性技术,以及可能包括需要使用可移除或不可移除的机器可读存储媒体的技术。因此,每个存储可包括任何广泛变型的存储设备类型(或类型的组合),包括而非限制,只读存储器(ROM),随机存取存储器(RAM),动态RAM(DRAM),双数据速率DRAM(DDR-DRAM),同步DRAM(SDRAM),静态RAM(SRAM),可编程ROM(PROM),可擦除可编程ROM(EPROM),电可擦除可编程ROM(EEPROM),闪存,聚合物存储器(例如,铁电聚合物存储器),双向存储器,相变或铁电存储器,硅氧化物氮化物氧化物硅(SONOS)存储器,磁或光卡,一个或多个独立的铁磁性盘驱动器,或组织为一个或多个阵列的多个存储设备(例如,组织为独立盘阵列的冗余阵列的多个铁磁性盘驱动器,或RAID阵列)。应当理解,尽管这些存储中每个描述为单个框,其一个或多个可包括多个存储设备,其可基于不同的存储技术。因此,例如,这些描述的存储中的每种的一个或多个可表示光驱动器或闪存读卡器的组合,其中程序和/或数据可存储和传递于某些形式的机器可读存储媒体,铁磁性盘驱动器,以在相对延长时间段在本地存储程序和/或数据,以及一个或多个易失性固态存储器设备,允许相对快速访问程序和/或数据(例如,SRAM或DRAM)。还应注意,这些存储中的每个可基于相同存储技术由多个存储组件组成,但其可由于专门使用而独立地保持(例如,某些DRAM设备应用为主存储而其他DRAM设备应用为图形控制器的不同的帧缓冲器)。
在多种实施例,每个接口190,390和590可应用信号技术的任何广泛变型,使计算设备耦合于如所描述的其他设备。每个该接口可包括电路,提供至少某些需要的功能以使能该耦合。然而,每个该接口还可至少部分地以由处理器组件中的对应处理器组件执行的指令序列实现(例如,以实现协议栈或其他特征)。在电气地和/或光学地导电布线被应用时,该接口可应用遵循任何多种工业标准的信号和/或协议,包括而非限制,RS-232C,RS-422,USB,以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输时,该接口可应用遵循任何多种工业标准的信号和/或协议,包括而非限制,IEEE802.11a,802.11b,802.11g,802.16,802.20(通常称为“移动宽带无线接入”);蓝牙;ZigBee;或蜂窝无线电话服务诸如GSM与通用分组无线服务(GSM/GPRS),CDMA/1xRTT,用于全局演进的增强数据速率(EDGE),单独演进数据/优化(EV-DO),数据和语音演进(EV-DV),高速下行分组接入(HSDPA),高速上行分组接入(HSUPA),4GLTE等。
图4和5的每一个更详细地说明了图1非均匀核处理系统1000的实施例的一部分的框图。图6更详细地说明了图2非均匀核处理系统1000的实施例的一部分的框图。更特别地,图4描述了编译设备100的操作环境的方面,其中处理器组件150,在执行控制例程140时,编译应用代码170以生成应用例程370和特性数据337。图5描述了计算设备300的一个实施例的操作环境的方面,其中处理器组件350,在执行控制例程340时,选择核355a和/或355b的类型以分别执行指令块375a和/或375b的实例。图6描述了计算设备300的可选实施例的操作环境的方面,其中处理器组件350,在执行控制例程340时,附加地编译应用代码170。
如本领域技术人员可知,控制例程140,340和540,包括组成每一个的组件,被选择以操作于任意类型的处理器,其被选择以实现处理器组件150,350或550中的可用处理器组件。在多种实施例,每个控制例程140,340和540可包括操作系统、设备驱动器和/或应用级例程(例如,提供于盘媒体的所谓“软件套件”,获取自远程服务器的“小程序”等)的一个或多个。在操作系统被包括于其中时,操作系统可为任何多种可用操作系统,适用于任意对应的处理器组件150,350或550。在一个或多个设备驱动器被包括时,其设备驱动器可为对应的计算设备100,300或500的任何多种其他组件提供支持,无论为硬件还是软件组件。
每个控制例程140或340可包括通信组件149或349,可由处理器组件150或350执行以分别操作接口190或390,以经由如所描述的网络999传输和接收信号。在接收的信号中,信号可经由网络999在计算设备100,300和/或500的一个或多个间传递应用代码170和/或特性数据337。如本领域技术人员所知,该通信组件被选择为以任一类型的接口技术而可操作的,所述接口技术被选择以实现对应的接口190和390。对应地,控制例程540还可包括通信组件(未示出),可由处理器组件550执行以操作接口190而经由网络999交换该数据和例程。
更特别地参见图4,控制例程140可包括编译器145a和145b,可由处理器组件150执行以至少编译应用代码170的指令块175为指令块375a和375b,用于分别由处理器组件350的不同类型的核355a和355b执行。而且,应当理解,由于仅两个类型的核355a和355b描述于处理器组件350内,仅两个对应编译器145a和145b被描述。然而,处理设备350具有更多类型的核的实施例也是可能的。因此,在其他实施例,控制例程140可根据至少生成指令块175的编译版本用于由其附加类型的核执行的需要而包含更多的编译器。
控制例程140可包括分析器组件147,可由处理器组件150执行以分析至少组成指令块175的指令的特性,并生成提供其特性表示的特性数据337。如先前讨论,表示于特性数据337的特性可包括统计,诸如指令块175中存储器访问指令的部分指令和/或指令块175中分支指令的部分指令。
更特别地参见图5,控制例程340可包括策略组件341,可由处理器组件350执行以监视传感器310并响应于传感器310检测的条件的变化而更新策略数据331的能量策略的选择的表示。如先前讨论,能量策略为执行指令块375a或375b的实例(每个均为指令块175的编译版本,并实现相同的逻辑)的执行该实例所需时间和执行该实例的电能耗之间的所选择的平衡。而且,该平衡的选择(例如,能量策略的选择)可以在0到1的范围内的数字值表达于策略数据331。
控制例程340可包括核选择组件345,可由处理器组件350执行以从处理器组件350的核355a和355b的类型中选择核的类型,以分别执行指令块375a和/或375b。换言之,核选择组件345选择核355a和/或355b的类型以执行指令块175的逻辑(由此指令块375a和375b被编译)。而且,在应用例程370的初始执行期间,核选择组件345可依赖于指令块175的指令特性表示,以确定选择哪个(些)类型的处理器核。在应用例程370后续的执行期间,在多种实施例,核选择组件345可依赖于特性数据337、执行数据库334的先前执行的特性表示以及策略数据331的能量策略的表示的多种组合。
控制例程340可包括监视组件343,可由处理器组件350执行以操作处理器组件350的监视单元353以监视指令块375a和375b的一个或两个的实例分别由核355a和355b的执行。监视组件343进一步存储观测的执行数据库334的那些实例的执行的特性的表示。如先前讨论,独立的条目形成于执行数据库334用于所执行的每一个例程的每个指令块的实例的执行。进一步,一个或多个条目可划分为进一步的条目,其中不同条件下实例的执行特性被存储。
更特别地参见图6,其中描述的计算设备300的可选实施例基本类似于图5描述的计算设备300的实施例,区别在于图6的可选实施例的处理器组件350附加地编译指令代码170。因此,图6的计算设备300的可选实施例的控制例程340可附加地包括编译器145a和145b,和分析器组件147的一个或多个。
图7说明了逻辑流2100的一个实施例。逻辑流2100可为由本文描述的一个或多个实施例执行的某些或所有操作的表示。更特别地,逻辑流2100可说明在至少执行控制例程140时由处理器组件150执行,和/或由编译设备100的其他组件执行的操作。
在2110,非均匀核处理系统的编译设备的处理器组件(例如,非均匀核处理1000的编译设备100的处理器组件150)编译至少应用代码的指令块,其中指令块表示为多个实例的并行执行。在至少编译指令块时,多个编译器被使用,每个编译器对应于多个类型的核中不同类型的核。在2120,指令块的该编译导致指令块的多个编译形式的生成,每个对应于多个类型的核的不同类型。如先前讨论,指令块的这些不同的编译形式可合并为单个应用例程,由应用代码的编译而生成。
在2130,组成指令块的指令的特性被分析并且包括其特性表示的特性数据被生成。如先前讨论,该特性可包括组成指令块的指令类型的统计数据,诸如且不限于,特定类型的指令(例如,存储器访问指令,分支指令等)与指令块中的指令总量的一个或多个比值。
图8说明了逻辑流2200的一个实施例。逻辑流2200可表示由本文描述的一个或多个实施例执行的某些或所有操作。更特别地,逻辑流2200可说明在至少执行控制例程340时由处理器组件350执行,和/或由计算设备300的其他组件执行的操作。
在2210,计算设备的处理器组件(例如,非均匀核处理系统1000的计算设备300的处理器组件350)检查应用例程的执行是否为初始执行,以使执行数据库将不具有表示应用例程的指令块的执行特性的条目。如先前讨论,执行数据库中的条目被生成和/或其执行特性的表示从观测的指令块实例的执行特性被细化。
如果应用例程的执行不是初始执行,则在2220,基于存储于在应用例程的先前执行期间产生的指令块的执行特性的执行数据库的表示,一个或多个类型的核被选择以执行应用例程的该指令块的实例。如先前讨论,核的类型的选择还可基于执行指令块的实例的所需时间和完成所消耗的能量之间平衡的选择(例如,能量策略的选择)。
然而,如果应用例程的执行为初始执行,则在2212,基于在指令块的编译期间观测的组成指令块的指令的特性,一个或多个类型的核被选择以执行应用例程的指令块的实例的初始子集。并且在2214,该实例的初始子集的执行特性的表示将作为新的条目被存储于执行数据库。该新的条目然后用于在2220提供执行特性的表示。与应用例程的执行是否为初始执行无关,在2220的指令块的实例的执行特性表示在2230被存储于执行数据库。
图9说明了逻辑流2300的一个实施例。逻辑流2300可表示由本文描述的一个或多个实施例执行的某些或所有操作。更特别地,逻辑流2300可说明由处理器组件350在执行至少控制例程340时执行的操作,和/或由计算设备300的其他组件执行的操作。
在2310,计算设备的处理器组件(例如,非均匀核处理系统1000的计算设备300的处理器组件350)基于在指令块的编译期间观测的组成指令块的指令的特性选择一个或多个类型的核来执行指令块的实例的初始子集。如先前讨论,其可提供机会来确定指令块的实例被执行的当前条件的方面。
在2320,搜索执行数据库中在应用例程的先前执行期间产生的指令块的执行特性的条目,该应用例程包括其中该条目关联于匹配当前条件的条件的指令块。如先前讨论,条件的相关方面可包括,但不限于,能量策略选择,数据和/或对由至少应用例程的指令块执行的任一个过程的其他输入的特性,或观测的行为,其中关联于指令块的条件分支被采用。并且如先前讨论,可能存在条件差别的程度的选择阈值,其应用于确定关联于条目的条件是否匹配当前条件。
如果该条目被发现,则在2330,实例的初始子集的执行特性被加入至表示于条目的特性。如先前讨论,执行特性可包括一个或多个运行均值,并且来自新的实例的执行的新数据的添加可利用朝新的数据偏置的加权而被平均到该运行均值中。然而,如果该条目未找到,则在2322,新的条目被建立于执行数据库,并且初始子集的执行特性的表示和当前条件的表示在2330被加入至新的条目。
在2340,基于存储于执行数据库(在被发现的条目中或刚刚建立的条目中)中的在应用例程的先前执行期间出现的指令块的执行的特性的表示,一个或多个类型的核被选择以执行指令块的剩余实例。如先前讨论,核的类型的选择还可基于执行指令块的实例的所需时间和完成其的能耗之间的平衡的选择(例如,能量策略选择)。在2340中的指令块的实例的执行的特性在2350被存储于执行数据库。
图10说明了处理体系结构3000的实施例,适用于实现如先前描述的多种实施例。更特别地,处理体系结构3000(或其变型)可实现为计算设备100,300或500的一个或多个的一部分。应当理解,处理体系结构3000的组件被给定参考数字,其中最后两个数字对应于较早描述的至少某些组件的参考数字的最后两个数字并描述为该计算设备的一部分。其作为关联每个的组件的辅助而完成。
处理体系结构3000可包括通常用于数字处理的多种元件,包括而非限制,一个或多个处理器,多核处理器,协处理器,存储器单元,芯片组,控制器,外围设备,接口,振荡器,计时设备,视频卡,音频卡,多媒体输入/输出(I/O)组件,电源等。如在该应用中使用,术语“系统”和“组件”意图指代实现数字处理的计算设备的实体,该实体为硬件,硬件和软件的组合,软件,或执行的软件,其示例由所描述的示例性处理体系结构提供。例如,组件可为,但不限于,运行于处理器组件的过程,处理器组件本身,存储设备(例如,硬盘驱动器,阵列中的多个存储驱动器等),其可应用光和/或磁存储介质,软件对象,可执行指令序列,线程执行,程序,和/或整个计算设备(例如,整个计算机)。以说明的形式,运行于服务器的应用以及服务器均可为组件。一个或多个组件可驻留于执行的过程和/或线程,并且组件可本地化于一个计算设备和/或分布在两个或多个计算设备之间。进一步,组件由多种类型的通信媒体可通信地相互耦合而协同操作。协同可包括单向或双向信息交换。例如,组件可通过通信媒体以通信的信号的形式传送信息。信息可实现为分配至一个或多个信号线的信号。消息(包括命令,状态,地址或数据消息)可为该信号之一或可为多个信号,并且可通过任何多种连接和/或接口串行或基本并行传输。
如所描述,在实现处理体系结构3000时,计算设备可至少包括处理器组件950,存储960,与其他设备的接口990,以及耦合959。如将被说明,根据实现处理体系结构3000的计算设备的多个方面,包括其意图使用和/或使用条件,该计算设备可进一步包括附加的组件,诸如而非限制,显示器接口985,或一个或多个处理子系统900。
耦合959可包括一个或多个总线,点对点互联,收发器,缓冲器,交叉点开关,和/或其他导体和/或逻辑,其可至少通信地耦合处理器组件950与存储960。耦合959可进一步耦合处理器组件950与以下一个或多个:接口990,音频子系统970和显示器接口985(根据这些和/或其他组件中哪个存在)。利用由耦合959以此耦合的处理器组件950,处理器组件950能够执行以上详细描述的多种任务,用于实现处理体系结构3000的前述任意计算设备。耦合959可以光学地和/或电气地传递信号的任何多种技术或技术的组合来实现。进一步,耦合959的至少一部分可应用遵循工业标准的任何广泛变型的计时和/或协议,包括而非限制,加速图形端口(AGP),卡片总线,扩展工业标准体系结构(E-ISA),微通道体系结构(MCA),NuBus,外围组件互联(扩展)(PCI-X),高速PCI(PCI-E),个人计算机存储卡国际联盟(PCMCIA)总线,HyperTransportTM,快速路径等。
如先前讨论,处理器组件950(对应于处理器组件150,350或550的一个或多个)可包括商业可用处理器的任何广泛变型,应用任何广泛变型的技术并以任意多个方式物理合并的一个或多个核来实现。
如先前讨论,存储960(对应于存储160,360或560的一个或多个)可基于技术或技术的组合的任何广泛变型由一个或多个不同的存储设备组成。更特别地,如所描述,存储960可包括易失性存储961(例如,基于一个或多个形式的RAM技术的固态存储),非易失性存储962(例如,固态,铁磁或其他存储,不需要恒定的电能提供来保存其内容),以及可移除媒体存储963(例如,借此在计算设备之间传递信息的可移除盘或固态存储器卡存储)的一个或多个。可能包括多个不同类型的存储的存储960的描述按照计算设备中一个以上类型的存储设备的常规使用,其中一个类型提供相对快的读写能力,使处理器组件950更快地操作数据(但可能利用始终需要电能的“易失性”技术),而另一类型提供相对高密度的非易失性存储(但可能提供相对较慢的读写能力)。
给定应用不同技术的不同存储设备的通常不同的特性,对于该不同的存储设备,通常通过不同的存储控制器耦合于计算设备的其他部分,所述存储控制器经不同的接口耦合于其不同的存储设备。以示例的形式,在易失性存储961存在时,并且基于RAM技术,易失性存储961可通信地通过存储控制器965a耦合于耦合959,所述存储控制器965a提供合适的接口至易失性存储961,其可能应用行和列寻址,并且其中存储控制器965a可执行行刷新和/或其他主要维护任务以帮助保存存储于易失性存储961的信息。以另一示例的形式,其中非易失性存储962存在并包括一个或多个铁磁和/或固态盘驱动器,非易失性存储962通过存储控制器965b可通信地耦合于耦合959,所述存储控制器965b提供合适的接口至非易失性存储962,其可能应用信息块和/或圆柱和扇区的寻址。以另一示例的形式,其中可移除媒体存储963存在并包括一个或多个光和/或固态磁盘驱动器,其应用一片或多片机器可读存储介质969,可移除媒体存储963通过存储控制器965c可通信地耦合于耦合959,所述存储控制器965c提供合适的接口至可移除媒体存储963,其可能应用信息块的寻址,并且其中存储控制器965c可以延伸机器可读存储介质969的寿命的特定方式协调读取,擦除和写操作。
易失性存储961或非易失性存储962的一个或另一个可包括机器可读存储媒体形式的制造产品,其中包括可由处理器组件950执行以实现多种实施例的指令序列的例程可根据每个所基于的技术被存储。以示例的形式,在非易失性存储962包括基于铁磁的盘驱动器(例如,所谓“硬盘驱动器”)时,每个该盘驱动器典型地应用一个或多个旋转底板,磁性响应微粒的涂覆被沉积在其上,并且在多种模式磁性定向以类似于存储介质诸如软磁盘的方式存储信息,诸如指令序列。以另一示例的形式,非易失性存储962可由固态存储设备库组成以类似于压缩闪速卡的方式存储信息,诸如指令序列。而且,通常在不同的时间应用计算设备中不同类型的存储设备来存储可执行例程和/或数据。因此,包括由处理器组件950执行以实现多种实施例的指令序列的例程可最初存储于机器可读存储介质969,而可移除媒体存储963然后可用于复制该例程至非易失性存储962用于更长期的存储,不需要持续出现机器可读存储介质969和/或易失性存储961,以使处理器组件950在例程被执行时快速访问。
如先前讨论,接口990(对应于接口190,390或590的一个或多个)可应用对应于任何多种通信技术的任何多种信令技术,其可用于可通信地耦合计算设备与一个或多个其他设备。而且,多种形式的有线或无线信号的一个或两个可用于使处理器组件950与输入/输出设备(例如,描述的示例键盘920或打印机925)和/或其他计算设备可能通过网络(例如,网络999)或网络互联组进行交互。按照通常需要由任一个计算设备支持的多个类型的信令和/或协议的通常显著不同的特性,接口990被描述为包括多个不同的接口控制器995a,995b和995c。接口控制器995a可应用任何多种类型的有线数字串行接口或射频无线接口,以从用户输入设备,诸如描述的键盘920串行地接收传输消息。接口控制器995b可应用任何多种基于布线或无线信令,计时和/或协议,以通过描述的网络999(可能为由一个或多个链路,小型网络,或可能为互联网组成的网络)访问其他计算设备。接口995c可应用任何多种电气导电布线,允许使用串行或并行信号传输以传递数据至描述的打印机925。可通信地通过接口990的一个或多个接口控制器耦合的其他设备的示例包括,而非限制,麦克风,远程控制,触控笔,读卡器,指纹阅读器,虚拟现实交互手套,图形输入平板,操纵杆,其他键盘,虹膜扫描仪,触摸屏幕的触摸输入组件,跟踪球,多种传感器,监视人的移动以接受这些人经由手势和/或面部表情传送的命令和/或数据的照相机或照相机阵列,激光打印机,喷墨打印机,机器人,铣床等。
在计算设备可通信地耦合于(或可能实际包含)显示器(例如,描述的示例显示器980,对应于显示器580)时,实现处理体系结构3000的该计算设备还可包括显示器接口985。尽管更通用的接口类型可用于可通信地耦合于显示器,某些专用的附加处理通常在显示器上可视地显示多种形式的内容,而且使用基于布线的接口的某些专用特性,这使得通常希望提供不同的显示器接口。可由与显示器980通信耦合的显示器接口985应用的有线和/或无线信令技术可使用遵循任何多种工业标准的信令和/或协议,其包括而非限制,任何多种模拟视频接口,数字视频接口(DVI),显示器端口等。
更一般地,本文描述和表述的计算设备的多种元件可包括多种硬件元件,软件元件,或两者的组合。硬件元件的示例可包括设备,逻辑设备,组件,处理器,微处理器,电路,处理器组件,电路元件(例如,晶体管,电阻器,电容器,电感器等),集成电路,专用集成电路(ASIC),可编程逻辑设备(PLD),数字信号处理器(DSP),现场可编程门阵列(FPGA),存储器单元,逻辑门,寄存器,半导体设备,芯片,微芯片,芯片组等。软件元件的示例可包括软件组件,程序,应用,计算机程序,应用程序,系统程序,软件开发程序,机器程序,操作系统软件,中间件,固件,软件模块,例程,子例程,功能,方法,过程,软件接口,应用程序接口(API),指令集,计算代码,计算机代码,代码段,计算机代码段,字,值,符号,或任何其组合。然而,确定实施例是否利用硬件元件和/或软件元件实现可根据任何数量的因素变化,诸如希望的计算速率,功率等级,热容差,处理周期预算,输入数据速率,输出数据速率,存储器资源,数据总线速度以及其他设计或性能约束,根据给定的实现所需要。
某些实施例可利用表达“一个实施例”或“一实施例”及其派生词描述。该词项表示结合实施例描述的特定特征,结构,或特性包括于至少一个实施例。词语“在一个实施例”在说明书多处的出现不一定全部引用相同的实施例。进一步,某些实施例可利用表达“耦合”和“连接”及其派生词描述。该词项不一定意图作为相互的同义词。例如,某些实施例可利用词“连接”和/或“耦合”描述,以表示两个或多个元件相互直接物理或电接触。然而,术语“耦合”还可表示两个或多个元件不直接相互接触,但仍协同操作或相互交互。此外,来自不同实施例的方面或元件可被合并。
需要强调,本公开的摘要被提供以使读者快速确定该技术公开的特点。应当理解,其并非用于解释或限制权利要求的范围或含义。此外,在前的详细描述中,可以看到,在单个实施例中多种特征为被分组在一起,用于简化本公开。该公开的方法不应解释为反映声明的实施例需要比每个权利要求中明确表述的更多的特征的意图。相反,如以下权利要求所反映,创造性主题在于少于单个公开实施例的所有特征。因此如下权利要求在此整合于详细描述,每个权利要求独立出现作为独立的实施例。在所附权利要求,术语“包含”和“在...中”分别作为相应词项“包括”和“其中”的日常语的等同概念。此外,术语“第一”,“第二”,“第三”等仅仅作为标签使用,而非意图在其对象中加入数字需求。
以上的描述包括公开体系结构的示例。当然,不可能描述每个可以想到的组件和/或方法的组合,但本领域普通技术人员可理解,多个进一步组合和排列是可能的。因此,新的体系结构意图包含所有该改变,修改和变型,其均属于所附权利要求的精神和范围。详细公开现提供属于进一步实施例的示例。如下提供的示例并非意图限制。
在示例1,一种选择核的类型的装置包括:处理器组件;核选择组件,用于由该处理器组件执行以基于指令块的指令特性选择多个核中的核以并行执行该指令块的多个实例的初始子集,以及基于存储于执行数据库的初始子集的执行特性选择该多个核中的核以并行执行该指令块的多个实例的剩余实例;以及监视组件,用于由该处理器组件执行以在该执行数据库中记录该初始子集的执行特性。
在示例2,其包括示例1的主题,该处理器组件可包括监视单元,以监视该多个实例通过多个核中的至少一个核的执行的特性,该监视组件操作该监视单元以监视初始子集的执行特性。
在示例3,其包括任何示例1-2的主题,该核选择组件可基于初始子集的执行特性以及执行多个实例中的实例的时间和执行该实例的电能耗之间选择的平衡来选择该核来执行该剩余实例。
在示例4,其包括任何示例1-3的主题,该装置可包括策略组件,以基于多个实例中的实例被执行的条件的变化来改变选择的平衡,该条件包括交流干线电能的可用性或电池存储的可用电能的级别。
在示例5,其包括任何示例1-4的主题,该指令块的指令特性可包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率。
在示例6,其包括任何示例1-5的主题,执行特性可包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
在示例7,其包括任何示例1-6的主题,该核选择组件可查找执行数据库中包括关联于实例执行出现的条件的指令块的实例的执行特性的表示的条目,并基于关联于该条目的条件在所选阈值内匹配出现的初始子集的执行的条件将初始子集的执行特性的表示加入该条目。
在示例8,其包括任何示例1-7的主题,该装置可包括接口,以接收包括该指令块的指令特性的表示的特性数据。
在示例9,其包括任何示例1-8的主题,该装置可包括:第一编译器,用于由该处理器组件执行以编译该指令块,该指令块用于由多个核中的第一核执行,第二编译器,用于由该处理器组件执行以编译该指令块,该指令块用于由多个核中的第二核执行,以及分析器组件,以分析该指令块的指令以确定该指令块的指令的特性。
在示例10,其包括任何示例1-9的主题,该装置可包括多个核。
在示例11,一种用于选择核的类型的装置,包括:处理器组件;用于由该处理器组件执行以编译应用代码而生成应用例程的第一编译器和第二编译器,第一编译器编译该应用代码的指令块以生成该应用例程的第一指令块,第一指令块用于由第一核执行,第二编译器编译该应用代码的指令块以生成该应用例程的第二指令块,第二指令块用于由第二核执行;以及分析器组件,以分析该应用代码的指令块的指令以确定该指令块的指令的特性。
在示例12,其包括示例11的主题,该装置可包括核选择组件,用于由该处理器组件执行以选择第一核或第二核,以基于该指令的特性执行该应用代码的指令块的多个实例的初始子集,以及基于存储于执行数据库的初始子集的执行特性选择第一核或第二核以执行该多个实例的剩余实例;以及监视组件,用于由该处理器组件执行以在该执行数据库中记录该初始子集的执行特性。
在示例13,其包括任何示例11-12的主题,选择第一核以执行该应用代码的指令块的实例可包括选择用于由第一核执行的第一指令块,以及选择第二核以执行该应用代码的指令块的实例可包括选择用于由第二核执行的第二指令块。
在示例14,其包括任何示例11-13的主题,该核选择组件可基于初始子集的执行特性以及多个实例中的实例的执行时间与执行该实例的电能耗之间选择的平衡来选择第一核或第二核以执行该剩余实例。
在示例15,其包括任何示例11-14的主题,该装置可包括策略组件,以基于多个实例中的实例被执行的条件的变化来改变选择的平衡,该条件包括交流干线电能的可用性或电池存储的可用电能的级别。
在示例16,其包括任何示例11-15的主题,该装置可包括接口,以传输包括该指令块的指令的特性表示的特性数据和该应用例程至计算设备。
在示例17,其包括任何示例11-16的主题,该处理器组件可包括第一核和第二核。
在示例18,一种用于选择核的类型的计算机实现的方法,包括,基于该指令块的指令特性选择多个核中的核以并行执行指令块的多个实例的初始子集,基于存储于执行数据库的初始子集的执行特性选择多个核中的核以并行执行该指令块的多个实例的剩余实例,并且在该执行数据库中记录该初始子集的执行特性。
在示例19,其包括示例18的主题,该方法可包括基于初始子集的执行特性以及基于执行多个实例中的实例的时间与执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例。
在示例20,其包括任何示例18-19的主题,该方法可包括基于多个实例中的实例被执行的条件的变化而改变选择的平衡,该条件包括交流干线电能的可用性或存储于电池的可用电能的级别。
在示例21,其包括任何示例18-20的主题,该指令块的指令特性可包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率。
在示例22,其包括任何示例18-21的主题,该执行特性可包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
在示例23,其包括任何示例18-22的主题,该方法可包括搜索该执行数据库中包括关联于实例的执行出现的条件的指令块的实例的执行特性表示的第一条目,以及基于关联于第一条目的条件在所选阈值内匹配出现的初始子集的执行条件,将该初始子集的执行特性表示加入第一条目。
在示例24,其包括任何示例18-23的主题,该方法可包括基于关联于第一条目的条件在所选阈值内不匹配出现的初始子集的执行的条件,增加包括关联于该初始子集的执行出现的条件的初始子集的执行特性表示的第二条目。
在示例25,其包括任何示例18-24的主题,该方法可包括从网络接收特性数据,所述特性数据包括该指令块的指令特性的表示。
在示例26,其包括任何示例18-25的主题,该方法可包括编译该指令块,用于由多个核中的第一核执行,编译该指令块,用于由多个核中的第二核执行,并且分析该指令块的指令以确定该指令块的指令特性。
在示例27,至少一个机器可读存储介质,可包括指令,其当由计算设备执行时,使计算设备基于该指令块的指令的特性选择多个核中的核并行执行指令块的多个实例的初始子集,基于存储于执行数据库的初始子集的执行特性选择多个核中的核并行执行该指令块的多个实例的剩余实例,以及在该执行数据库中记录该初始子集的执行特性。
在示例28,其包括示例27的主题,可促使该计算设备基于初始子集的执行特性以及执行多个实例中的实例的时间以及执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例。
在示例29,其包括任何示例27-28的主题,可促使该计算设备基于执行多个实例中的实例的条件的变化来改变选择的平衡,该条件包括交流干线电能的可用性或电池存储的可用电能的级别。
在示例30,其包括任何示例27-29的主题,该指令块的指令特性可包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率。
在示例31,其包括任何示例27-30的主题,该执行特性可包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
在示例32,其包括任何示例27-31的主题,该计算设备可用于查找执行数据库中的包括关联于实例的执行的出现的条件的指令块的实例的执行特性的表示的第一条目,并且基于关联于第一条目的条件在所选阈值内匹配初始子集的执行的出现的条件,将初始子集的执行特性的表示加入第一条目。
在示例33,其包括任何示例27-32的主题,可促使该计算设备基于关联于第一条目的条件在所选阈值内不匹配出现的初始子集的执行的条件,增加包括关联于该初始子集的执行出现的条件的初始子集的执行特性的表示的第二条目。
在示例34,其包括任何示例27-33的主题,可促使该计算设备从网络接收特性数据,特性数据包括该指令块的指令的特性的表示。
在示例35,其包括任何示例27-34的主题,可促使该计算设备编译该指令块,用于由多个核中的第一核执行,编译该指令块,用于由多个核中的第二核执行,并且分析该指令块的指令以确定该指令块的指令特性。
在示例36,一种选择核的类型的装置,包括用于基于该指令块的指令特性选择多个核中的核并行执行指令块的多个实例的初始子集、基于存储于执行数据库的初始子集的执行特性选择多个核中的核并行执行该指令块的多个实例的剩余实例以及在该执行数据库中记录该初始子集的执行特性的装置。
在示例37,其包括示例36的主题,该装置可包括用于基于初始子集的执行特性和基于执行多个实例中的实例的时间以及执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例的装置。
在示例38,其包括任何示例36-37的主题,该装置可包括用于基于多个实例中的实例被执行的条件的变化而改变选择的平衡的装置,该条件包括交流干线电能的可用性或电池存储的可用电能的级别。
在示例39,其包括任何示例36-38的主题,该指令块的指令特性可包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率。
在示例40,其包括任何示例36-39的主题,该执行特性可包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
在示例41,其包括任何示例36-40的主题,该装置可包括用于搜索该执行数据库中包括关联于实例的执行的出现的条件的指令块的实例的执行特性的表示的第一条目并基于关联于第一条目的条件在所选阈值内匹配初始子集的执行所出现的条件将该初始子集的执行特性的表示加入第一条目的装置。
在示例42,其包括任何示例36-41的主题,该装置可包括用于基于关联于第一条目的条件在所选阈值内不匹配初始子集的执行所出现的条件,增加包括关联于该初始子集的执行所出现的条件的初始子集的执行特性的表示的第二条目的装置。
在示例43,其包括任何示例36-42的主题,该装置可包括用于从网络接收包括该指令块的指令特性的表示的特性数据的装置。
在示例44,其包括任何示例36-43的主题,该装置可包括用于编译该指令块用于由多个核中的第一核执行、编译该指令块用于由多个核中的第二核执行并且分析该指令块的指令以确定该指令块的指令特性的装置。
在示例45,至少一个机器可读存储介质可包括指令,其当由计算设备执行时,以使计算设备执行任何以上内容。
在示例46,一种用于分配处理器组件的核以执行任务部分的装置,可包括用于执行任何以上内容的装置。
Claims (31)
1.一种用于选择核的类型的装置,包括:
处理器组件;
核选择组件,用于由该处理器组件执行以基于指令块的指令特性选择多个核中的核以并行执行指令块的多个实例的初始子集,以及基于存储于执行数据库的初始子集的执行特性选择多个核中的核以并行执行该指令块的多个实例的剩余实例;
以及
监视组件,用于由该处理器组件执行以在该执行数据库中记录该初始子集的执行特性,
该指令块的指令特性包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率。
2.根据权利要求1所述 的装置,该处理器组件包括监视单元,用于监视多个实例通过多个核中的至少一个核的执行的特性,该监视组件用于操作该监视单元以监视初始子集的执行特性。
3.根据权利要求1所述 的装置,该核选择组件基于初始子集的执行特性以及基于执行多个实例中的实例的时间和执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例。
4.根据权利要求3所述 的装置,包括策略组件,以基于多个实例中的实例被执行的条件的变化来改变选择的平衡,该条件包括交流干线电能的可用性或存储于电池的可用电能的级别。
5.根据权利要求1所述 的装置,该执行特性包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
6.根据权利要求1所述 的装置,该核选择组件用于查找执行数据库中的包括关联于实例的执行所出现的条件的指令块的实例的执行特性的表示的条目,并基于关联于该条目的条件在所选阈值内匹配初始子集的执行所出现的条件,而将初始子集的执行特性的表示加入该条目。
7.根据权利要求1所述 的装置,包括接口,用于接收包括该指令块的指令特性的表示的特性数据。
8.根据权利要求1所述 的装置,包括:
第一编译器,用于由该处理器组件执行以编译该指令块,该指令块用于由多个核中的第一核执行;
第二编译器,用于由该处理器组件执行以编译该指令块,该指令块用于由多个核中的第二核执行;以及
分析器组件,用于分析该指令块的指令以确定该指令块的指令特性。
9.一种用于选择核的类型的装置,包括:
处理器组件;
第一编译器和第二编译器,用于由该处理器组件执行以编译应用代码来生成应用例程,第一编译器用于编译该应用代码的指令块以生成该应用例程的第一指令块,第一指令块用于由第一核执行,第二编译器用于编译该应用代码的指令块以生成该应用例程的第二指令块,第二指令块用于由第二核执行;以及
分析器组件,用于分析该应用代码的指令块的指令以确定该指令块的指令特性,该指令块的指令特性包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率,
核选择组件,用于由该处理器组件执行以基于该指令特性选择第一核或第二核,以执行该应用代码的指令块的多个实例的初始子集,以及基于存储于执行数据库的初始子集的执行特性选择第一核或第二核,以执行该多个实例的剩余实例;以及
监视组件,用于由该处理器组件执行以在该执行数据库中记录该初始子集的执行特性。
10.根据权利要求9所述 的装置,选择第一核以执行该应用代码的指令块的实例包括选择用于由第一核执行的第一指令块,以及选择第二核以执行该应用代码的指令块的实例包括选择用于由第二核执行的第二指令块。
11.根据权利要求9所述 的装置,该核选择组件,用于基于初始子集的执行特性以及基于多个实例中的实例执行时间与执行该实例的电能耗之间选择的平衡来选择第一核或第二核以执行该剩余实例。
12.根据权利要求11所述 的装置,包括策略组件,用于基于多个实例中的实例被执行的条件的变化来改变选择的平衡,该条件包括交流干线电能的可用性或存储于电池的可用电能的级别。
13.根据权利要求9所述 的装置,该处理器组件包括第一核和第二核。
14.一种用于选择核的类型的计算机实现的方法,包括:
基于指令块的指令特性选择多个核中的核以并行执行指令块的多个实例的初始子集,该指令块的指令特性包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率;
基于存储于执行数据库的初始子集的执行特性选择多个核中的核以并行执行该指令块的多个实例的剩余实例;以及
在该执行数据库中记录该初始子集的执行特性。
15.根据权利要求14所述 的计算机实现的方法,包括基于初始子集的执行特性以及基于执行多个实例中的实例的时间与执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例。
16.根据权利要求15所述 的计算机实现的方法,包括基于多个实例中的实例被执行的条件的变化而改变选择的平衡,该条件包括交流干线电能的可用性或存储于电池的可用电能的级别。
17.根据权利要求14所述 的计算机实现的方法,该执行特性包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
18.根据权利要求14所述 的计算机实现的方法,包括:
搜索该执行数据库中的包括关联于实例的执行所出现的条件的指令块的实例的执行特性表示的第一条目;以及
基于关联于第一条目的条件在所选阈值内匹配初始子集的执行所出现的条件,将该初始子集的执行特性表示加入第一条目。
19.根据权利要求18所述 的计算机实现的方法,包括基于关联于第一条目的条件在所选阈值内不匹配初始子集的执行所出现的条件,增加包括关联于该初始子集的执行所出现的条件的初始子集的执行特性表示的第二条目。
20.根据权利要求14所述 的计算机实现的方法,包括从网络接收包括该指令块的指令特性的表示的特性数据。
21.根据权利要求14所述 的计算机实现的方法,包括:
编译该指令块,用于由多个核中的第一核执行;
编译该指令块,用于由多个核中的第二核执行;以及
分析该指令块的指令以确定该指令块的指令特性。
22.一种用于接收指令的装置,包括用于执行权利要求14-21中任一项所述的方法的装置。
23.一种用于选择核的类型的装置,包括:
用于基于指令块的指令特性选择多个核中的核以并行执行指令块的多个实例的初始子集的部件,所述指令块的指令特性包括存储器访问指令与该指令块的指令总量的比率或分支指令与该指令块的指令总量的比率;
用于基于存储于执行数据库的初始子集的执行特性选择多个核中的核以并行执行该指令块的多个实例的剩余实例的部件;以及
用于在该执行数据库中记录该初始子集的执行特性的部件。
24.根据权利要求23所述 的装置,包括用于基于初始子集的执行特性以及基于执行多个实例中的实例的时间与执行该实例的电能耗之间选择的平衡来选择该核以执行该剩余实例的部件。
25.根据权利要求24所述 的装置,包括用于基于多个实例中的实例被执行的条件的变化而改变选择的平衡的部件,该条件包括交流干线电能的可用性或存储于电池的可用电能的级别。
26.根据权利要求23所述 的装置,该执行特性包括执行多个实例的初始子集的实例的时间量或执行该实例的电能耗的量。
27.根据权利要求23所述 的装置,包括:
用于搜索该执行数据库中的包括关联于实例的执行所出现的条件的指令块的实例的执行特性表示的第一条目的部件;以及
用于基于关联于第一条目的条件在所选阈值内匹配初始子集的执行所出现的条件而将该初始子集的执行特性表示加入第一条目的部件。
28.根据权利要求27所述 的装置,包括用于基于关联于第一条目的条件在所选阈值内不匹配初始子集的执行所出现的条件而增加包括关联于该初始子集的执行所出现的条件的初始子集的执行特性表示的第二条目的部件。
29.根据权利要求23所述 的装置,包括用于从网络接收包括该指令块的指令特性的表示的特性数据的部件。
30.根据权利要求23所述 的装置,包括:
用于编译该指令块以用于由多个核中的第一核执行的部件;
用于编译该指令块以用于由多个核中的第二核执行的部件;以及
用于分析该指令块的指令以确定该指令块的指令特性的部件。
31.一种计算机可读介质,具有存储在其上的指令,所述指令在执行时促使计算机执行如权利要求14-21中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2013/063399 WO2015050557A1 (en) | 2013-10-04 | 2013-10-04 | Techniques for heterogeneous core assignment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105765524A CN105765524A (zh) | 2016-07-13 |
CN105765524B true CN105765524B (zh) | 2019-10-18 |
Family
ID=52779008
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380079403.3A Expired - Fee Related CN105765524B (zh) | 2013-10-04 | 2013-10-04 | 用于非均匀核分配的技术 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20150220340A1 (zh) |
EP (1) | EP3053026A4 (zh) |
CN (1) | CN105765524B (zh) |
WO (1) | WO2015050557A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116126538A (zh) * | 2019-03-07 | 2023-05-16 | 创新先进技术有限公司 | 业务处理方法、装置、设备及存储介质 |
CN112947931B (zh) * | 2021-02-22 | 2023-10-03 | 武汉大学 | 基于相变存储器的循环转数组的损耗均衡编译方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601463A (zh) * | 2003-09-24 | 2005-03-30 | 三星电子株式会社 | 低功率消耗的分支预测装置和方法 |
CN103119580A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 异构多处理器计算平台中的应用调度 |
US8516493B2 (en) * | 2011-02-01 | 2013-08-20 | Futurewei Technologies, Inc. | System and method for massively multi-core computing systems |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7055007B2 (en) * | 2003-04-10 | 2006-05-30 | Arm Limited | Data processor memory circuit |
US20080026332A1 (en) * | 2006-06-19 | 2008-01-31 | Kabushiki Kaisha Toshiba | Developing agent and manufacturing method thereof |
US20090037700A1 (en) * | 2007-07-30 | 2009-02-05 | Clear Falls Pty Ltd | Method and system for reactively assigning computational threads of control between processors |
US8627300B2 (en) * | 2009-10-13 | 2014-01-07 | Empire Technology Development Llc | Parallel dynamic optimization |
US8683243B2 (en) * | 2011-03-11 | 2014-03-25 | Intel Corporation | Dynamic core selection for heterogeneous multi-core systems |
US8683468B2 (en) * | 2011-05-16 | 2014-03-25 | Advanced Micro Devices, Inc. | Automatic kernel migration for heterogeneous cores |
US9069553B2 (en) * | 2011-09-06 | 2015-06-30 | Marvell World Trade Ltd. | Switching tasks between heterogeneous cores |
CN102703719B (zh) * | 2012-07-03 | 2014-03-05 | 阳谷祥光铜业有限公司 | 一种从贵金属熔炼渣中回收有价金属的工艺 |
-
2013
- 2013-10-04 US US14/129,918 patent/US20150220340A1/en not_active Abandoned
- 2013-10-04 WO PCT/US2013/063399 patent/WO2015050557A1/en active Application Filing
- 2013-10-04 EP EP13895086.0A patent/EP3053026A4/en not_active Withdrawn
- 2013-10-04 CN CN201380079403.3A patent/CN105765524B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1601463A (zh) * | 2003-09-24 | 2005-03-30 | 三星电子株式会社 | 低功率消耗的分支预测装置和方法 |
CN103119580A (zh) * | 2010-09-25 | 2013-05-22 | 英特尔公司 | 异构多处理器计算平台中的应用调度 |
US8516493B2 (en) * | 2011-02-01 | 2013-08-20 | Futurewei Technologies, Inc. | System and method for massively multi-core computing systems |
Also Published As
Publication number | Publication date |
---|---|
EP3053026A1 (en) | 2016-08-10 |
US20150220340A1 (en) | 2015-08-06 |
WO2015050557A1 (en) | 2015-04-09 |
CN105765524A (zh) | 2016-07-13 |
EP3053026A4 (en) | 2017-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Li et al. | Protein remote homology detection based on bidirectional long short-term memory | |
CN104756078B (zh) | 处理资源分配的装置和方法 | |
EP2791790B1 (en) | Gaze activated content transfer system | |
TWI609279B (zh) | 用以個人化使用者介面內容之方法、運算裝置、以及機器可讀取儲存媒體 | |
CN105739949A (zh) | 用于在非对称处理器核之间的协作式执行的技术 | |
CN106605202A (zh) | 根据触摸输入的偏手性检测 | |
CN104781795A (zh) | 存储层的动态选择 | |
CN105453044A (zh) | 用于分布式处理任务部分指配的技术 | |
CN104303145A (zh) | 根据应用的转化配置文件将触摸输入转化成本地输入 | |
CN102117118A (zh) | 使用多模态输入来控制显示器上的多个对象 | |
CN105378683A (zh) | 用于在计算系统处的软件程序中便于动态和高效地管理转换缓冲器预取的机制 | |
TW201241734A (en) | Method of cursor control | |
WO2016105962A1 (en) | Techniques for mobile prediction | |
CN106462465A (zh) | 用于使性能最大化并降低芯片温度和功率的优选内核排序的算法 | |
US11508105B2 (en) | Using augmented reality for accessing legacy transaction terminals | |
US20180276144A1 (en) | Determining cores to assign to cache hostile tasks | |
CN105765524B (zh) | 用于非均匀核分配的技术 | |
Li et al. | Extended KLM for mobile phone interaction: a user study result | |
EP4449314A1 (en) | Methods and apparatus for performing a machine learning operation using storage element pointers | |
US20230004862A1 (en) | Method for training ranking learning model, ranking method, device and medium | |
Rajasekaran et al. | Lack of SDLC Models and frameworks in mobile application development–a systematic literature review and study | |
Abdulkadhim et al. | A Survey on the applications of IoT: an investigation into existing environments, present challenges and future opportunities | |
Chen et al. | Silhouette: Efficient cloud configuration exploration for large-scale analytics | |
CN112306606A (zh) | 一种用于呈现控件样式的方法与设备 | |
CN108062279A (zh) | 用于处理数据的方法和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20191018 Termination date: 20201004 |
|
CF01 | Termination of patent right due to non-payment of annual fee |