CN103477324A - 逻辑核的动态映射 - Google Patents
逻辑核的动态映射 Download PDFInfo
- Publication number
- CN103477324A CN103477324A CN2012800182460A CN201280018246A CN103477324A CN 103477324 A CN103477324 A CN 103477324A CN 2012800182460 A CN2012800182460 A CN 2012800182460A CN 201280018246 A CN201280018246 A CN 201280018246A CN 103477324 A CN103477324 A CN 103477324A
- Authority
- CN
- China
- Prior art keywords
- core
- physics
- processor
- logic
- cores
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 34
- 238000000034 method Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 30
- 230000004044 response Effects 0.000 claims abstract description 8
- 238000003860 storage Methods 0.000 claims description 37
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 description 16
- 230000015654 memory Effects 0.000 description 12
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 11
- 229910052710 silicon Inorganic materials 0.000 description 11
- 239000010703 silicon Substances 0.000 description 11
- 230000035882 stress Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000015556 catabolic process Effects 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000002045 lasting effect Effects 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000005299 abrasion Methods 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000032683 aging Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000027756 respiratory electron transport chain Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
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/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- 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/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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]
-
- 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
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种将逻辑核动态地重新映射到物理核的处理器。在一个实施方案中,该处理器包括多个物理核,并且配置成存储逻辑核至多个物理核的映射。该处理器还包括分配单元,该分配单元配置成在处理器引导进程之后将逻辑核重新映射到多个物理核。在一些实施方案中,分配单元配置成响应接收到多个物理核中的一个或多个已经进入待机状态的指示,重新映射逻辑核。处理器可以配置成在第一物理核退出待机状态时,以多个物理核中第二物理核的执行状态加载多个物理核中的第一物理核。
Description
技术领域
本公开内容一般涉及处理器,更确切地来说,涉及将工作负荷分布在多个处理器核之间。
现有技术的描述
延长集成电路的寿命常常是重要的设计目标,因为在许多情况中,消费者需要能够超长时间以及在显著应力下可靠地工作的电路。开发者因此尝试将影响集成电路的使用寿命的多种因素纳入考虑。
影响处理器的寿命预期值的一个重要因素是处理器随时间推移所经受的工作负荷。超长时间高工作负荷下运行的处理器(如用于服务器系统中的处理器)可能经受与电子迁移、电介质击穿或热引发的磨耗相关的更大量的硅应力。这些因素进而可能显著地缩短处理器的使用寿命。相应地,在一些情况中,降低处理器的工作负荷对于改善其寿命预期值可能是值得期望的。
实施方案概述
本公开内容描述将逻辑核动态地重新映射到物理核的结构和方法的多种实施方案。
在一个实施方案中,公开了一种处理器。该处理器包括多个物理核,并且配置成存储逻辑核至多个物理核的映射。该处理器还包括分配单元,该分配单元配置成在处理器引导进程之后将逻辑核重新映射到多个物理核。
在一个实施方案中,公开了一种方法。该方法包括处理器上的多个物理核执行一组任务,其中该组任务基于逻辑核至多个物理核的映射来分配。该方法还包括在操作系统执行时处理器将逻辑核重新映射到多个物理核。基于重新映射分配一组附加任务。
在一个实施方案中,公开了一种计算机可读存储介质。该存储介质包括数据结构,由计算机系统上可执行的程序对该数据结构操作。程序操作数据结构是可执行的以执行一部分进程以制造包括由数据结构描述的电路的处理器。由数据结构描述的电路包括多个物理核。该处理器配置成存储逻辑核至多个物理核的映射。该电路还包括分配单元,该分配单元配置成在处理器引导进程之后将逻辑核重新映射到多个物理核。
附图简述
图1是示出包括多核处理器的计算机系统的一个实施方案的方框图,该多核处理器配置成将逻辑核动态地重新映射到物理核。
图2是示出可以包括在多核处理器中的分配单元的一个实施方案的方框图。
图3是示出可以包括在分配单元中的确定单元的一个实施方案的方框图。
图4是示出用于将逻辑核动态地重新映射到物理核的方法的一个实施方案的流程图。
图5是示出示例性计算机系统的一个实施方案的方框图。
详述
本说明书包括对“一个实施方案”或“实施方案”的引述。因此,短语“在一个实施方案中”或“在实施方案中”的出现不一定是指同一实施方案。可以与本公开内容一致的任何适合方式将特定的特征、结构或特性进行组合。
术语。下文段落提供本公开内容(包括所附权利要求)中出现的术语的定义和/或语境。
“包括”。此术语是开放式的。正如所附权利要求中所使用的,此术语不排除另外的结构或步骤。考虑权利要求,其列举:“一种装置,其包括一个或多个处理器单元…”此类权利要求不排除该装置包括另外的组件(例如,网络接口单元、图形电路等)。
“配置成”。可以将多种单元、电路或其他组件描述为或要求权利为“配置成”执行一个或多个任务。在此类语境中,“配置成”用于通过指示单元/电路/组件包括在操作期间执行这些一个或多个任务的结构(例如电路)来暗含结构。因此,当指定的单元/电路/组件当前未工作(例如,未开启),可以说单元/电路/组件配置成执行该任务。与“配置成”语言一起使用的单元/电路/组件包括硬件–例如,电路、存储可执行以执行操作的程序指令的存储器等。列举单元/电路/组件“配置成”执行一个或多个任务显性地意味着不对该单元/电路/组件援用35U.S.C.§112,第六段。此外,“配置成”还可以包括由软件和/或固件(例如,FPGA或执行软件的通用处理器)操控以能够执行涉及的任务的方式工作的通用结构(例如,通用电路)。“配置成”还可以包括调适制造进程(例如半导体加工设施)以加工调适成实现或执行一个或多个任务的装置(例如集成电路)。
“第一”、“第二”等。正如本文所使用的,这些术语用作它们所引导的名词的标记,而不意味着任何类型的排序(例如,空间上、时间上、逻辑上等)。例如,在具有8个处理元件或核的处理器中,术语“第一”和“第二”处理元件可以用于指代8个处理元件中的任何两个。换言之,“第一”和“第二”处理元件不限于逻辑处理元件0和1。
“基于”。正如本文所使用的,此术语用于描述影响确定的一个或多个因素。此术语不排斥可能影响确定的其他因素。即,确定可能仅基于这些因素,或至少部分地基于这些因素。考虑短语“基于B来确定A”。虽然B可能是影响A的确定的因素,但是此类短语不排斥A的确定也基于C。在其他情况中,可以仅基于B来确定A。
“处理器”。此术语具有本领域中常规和被接受的含义,并且包括能够执行指令的装置。处理器可以非限制性地指代中央处理单元(CPU)、协处理器、算法处理单元、图形处理单元、数字信号处理器(DSP)等。处理器可以是具有单个或多个流水线的超标量处理器。处理器可以包括各自配置成执行指令的单个或多个核。
“物理核”。此术语具有本领域中常规和被接受的含义,并且包括具有处理器的物理(即,有形)电路,其中该电路配置成能够执行指令。处理器可以包括多个物理核。
“逻辑核”。此术语具有本领域中常规和被接受的含义,并且包括与多核处理器中的物理核关联且用于将任务分配到该核的标识符。例如,在一个实施方案中,任务可以指定其由映射到物理核P0的逻辑核L0来执行,而非直接指定在P0上执行该任务。如果逻辑核L0随后被重新映射到另一个物理核P1,则现在可以在核P1上执行任务。相应地,“逻辑核”是不同时间处可能对应于或可能不对应于相同物理核的核的标识符。
“引导进程”。此术语具有本领域中常规和公认的含义,并且包括初始化计算机系统和为计算机系统加载操作系统的进程。引导进程还可以包括初始化I/O装置,测试存储器等。
大多数现代操作系统支持基于每个核的相应工作负荷将任务分配到多核处理器中的不同处理器核的能力。例如,如果处理器包括两个处理器核,并且一个核在重工作负荷下工作,而另一个不是,则操作系统(或一些其他机构)可以在这些处理器核之间重新分配任务。在核之间重新分配任务不仅能够提高任务的性能,而且能够通过减少过载的核早期地烧毁的机会来改善处理器的寿命预期值。
获得工作负荷的均匀分配可能是困难的,因为操作系统可能允许某些任务只在特定核上执行。例如,用于在某些操作系统下设置实时节目节拍的定时器滴答信号中断被定向到逻辑自引导处理器核,且无法分配到其他核。其他示例包括处理器间中断和IO装置中断,处理器间中断请求特定核一致性地处理给定应用进程(例如,旨在改善亲和力–即,进程可以发现其高速缓存中已经存在的相同高速缓存存储器访问数据集的概率),以及I0装置中断可以通过装置编程定向到特定核。当指定特定核来以此方式执行若干任务时,该核可以具有比其他核更高的工作负荷,并由此具有更短的寿命预期值。
此外,电源管理中的最近发展尝试将单个CPU核为活动时所在的系统的电压和频率提升到热极限内可达到的最高电压和频率。虽然这实现了提高的性能,但是它进一步增加了硅降解率(degradation rate)。”
有多种途径来缓解硅降解随时间推移的影响。典型地,使用作为芯片规范的一部分的一组工作负荷和环境操作条件,对硅降解建模。这些假设用于估计硅降解随时间推移的影响,特别是估计晶体管阈值电压、饱和电流和跃迁速率的影响。这可以用于通过对工作频率设置足够抵御长期损耗的隔离带来限制赋予该部分的性能。虽然这能够覆盖一些方面的硅降解,但是它不覆盖热引起的机械磨耗,从而需要与确保的使用寿命相关地从开始就限制系统的峰值性能。
一些系统尝试主动性地管理待机时间段期间操作降速的电压和频率以减少硅应力。虽然这有助于缓解问题,因为可以预见到典型的系统会经历高活动性和低活动性的时间段,但是这仅仅是局部性解决方案,仅可以用于缩减前一段引述的工作频率隔离带。
一些系统尝试通过将逻辑核映射到物理核,并在BIOS开机自检阶段期间更改映射来缓解此问题。例如,在第一引导期间,具有两个物理核P0和P1的处理器可以将这些核分别映射到逻辑核L0和L1。然后可以对物理核P0执行指定逻辑核L0的任务,然后可以对物理核P1执行指定逻辑核L1的任务。复位时,处理器可以将逻辑核L0和L1分别重新映射到物理核P1和P0。如果逻辑核L0一般具有比L1更重的工作负荷,在每次复位期间重新映射逻辑核能够使物理核P0和P1在核的寿命期间呈现更好的工作负荷分配。在复位期间执行此类重新映射相对简单,因为操作系统尚未加载,并且软件无法预设特定核来处理中断。本公开内容认识到以此方式重新映射逻辑核的问题在于,对于服务器以及(某种程度)对于桌上型计算机来说,复位事件典型地是不频繁的。
本公开内容描述用于将逻辑核动态地重新映射到物理核的多种技术。正如下文将描述的,多核处理器可以存储逻辑核至多个物理核的映射。此映射可以被操作系统、I/O装置等使用以对物理核中的多个不同核分配任务。在一个实施方案中,多核处理器包括分配单元,该分配单元配置成在活动系统上(即,在处理器引导进程之后)将逻辑核重新映射到物理核。例如,最初可以将第一逻辑核映射到第一物理核。然后可以将寻址到第一逻辑核的任务分配到第一物理核来执行。分配单元然后可以执行第一逻辑核到物理核中的第二物理核的重新映射。由此,然后可以将寻址到第一逻辑核的任务分配到第二物理核以取代第一物理核来执行。如果第一逻辑核典型地具有比其他逻辑核更高的工作负荷,则在许多情况中,可以将其更高的工作负荷更均匀地分配在物理核上而无需重新引导处理器。
相应地,在许多情况中,本文描述的处理器能够比未配置成执行动态重新映射的其他处理器更频繁地切换逻辑至物理核的分配。在多种实施方案中,这种更频繁的重新映射可以促成工作负荷在多个核之间的更均匀的分配而不考虑OS、I/O和系统装置编程,同时仍满足功能体系结构的规范。由此,处理器可以体验到单个计算实体上减小的硅应力,并且延长了总体使用寿命。增加硅寿命还可以转化成附加的可靠性和性能上升,因为能够缩减针对硅降解的工作频率隔离带。此外,制造时每个部分的硅应力测试(常常称为“老化”测试)可以更为有限,因为风险已降低–这降低了制造成本。
现在转到图1,其中示出计算机系统100的一个实施方案的方框图。在示出的实施方案中,计算机系统100包括处理器110、存储器120和基本输入/输出系统(BIOS)130。处理器110包括处理器核112A-C(在一些实施方案中,处理器110可以包括比示出的更多或更少的核112)和分配单元114。处理器110经由互连115耦合到存储器120以及经由互连125耦合到BIOS130。在示出的实施方案中,存储器120配置成存储操作系统122和一个或多个保存的执行状态124。
处理器110可以是任何适合类型的多核处理器。处理器110可以是通用处理器,如中央处理单元(CPU)。处理器110可以是专用处理器,如加速处理单元(APU)、数字信号处理器(DSP)、图形处理单元(GPU)等。处理器110可以是加速逻辑,如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。处理器110可以是多线程超标量处理器。
存储器120可以是任何适合类型的存储器。存储器120可以使用不同的物理存储器介质(如硬盘存储装置、软盘存储装置、移动盘存储装置、闪存存储器、随机存取存储器(RAM-静态RAM(SRAM)、扩充的数据输出(EDO)RAM、同步动态RAM(SDRAM)、双数据速率(DDR)SDRAM、RAMBUS RAM等)、只读存储器(ROM–可编程ROM(PROM)、电可擦写可编程ROM(EEPROM)等)等来实现。
BIOS130是配置成执行处理器110的引导进程的基本输入/输出系统的一个实施方案。在多种实施方案中,此引导进程可以包括识别和初始化计算机系统100中的I/O装置,如视频卡、鼠标、键盘等。此引导进程可以包括测试存储器120中的装置的完整性。在一个实施方案中,BIOS130可以通过从永久性存储装置将操作系统122加载到存储器120中的RAM中,并使处理器110开始执行操作系统122来促成引导进程。正如下文将描述的,在多种实施方案中,分配单元114配置成在BIOS130完成执行处理器110的引导进程之后将逻辑核重新映射到核112。
处理器核112是物理核的一个实施方案,其配置成执行指令以执行一个或多个任务。在多种实施方案中,这些任务可以由操作系统122分配(例如,以便处理时间滴答信号中断)。这些任务可以由其他核112分配(例如,以便处理处理器间中断(IPI))。这些任务可以由I/O装置来分配(例如,以便服务于接收的输入)。如上文所提到的,在多种实施方案中,一些任务可以基于逻辑核至物理核112的映射来分配。例如,操作系统122可以将特定任务分配到第一逻辑核L0,这可以对应于一个实施方案中的自引导处理器。如果逻辑核L0当前映射到处理器112A,则处理器112A可以执行该任务。但是,如果逻辑核L0映射到处理器112B,则处理器112B转而可以执行该任务。
在一些实施方案中,核112可以配置成在不同的工作状态下工作,这些工作状态由处理器110预定义,并且可以包括不同的电源状态和不同的性能状态。在一些实施方案中,这些电源状态和/或性能状态分别对应于高级配置和电源接口(ACPI)标准定义的“C”和“P”状态。性能状态是核112以特定电压/频率执行指令时的状态。例如,在一个实施方案中,如果存在显著的处理需求,则核112可以在其最高性能状态下工作,这可以称为性能状态P0。在此类实施方案中,P0对应于核112的最大工作频率和最高电源设置。如果存在较小的需求,则核112可以在较低性能状态(例如,性能状态P1、P2等)下工作,其中核112在较低工作频率和较低电源设置下工作。电源状态可以指示(例如)是否核112是全面工作状态,还是完全或部分地断电。例如,在一个实施方案中,如果存在对核112的一些处理需求,则核112可以在允许指令执行的电源状态下工作,此类状态称为电源状态C0。如果存在很少或不存在对核112的需求,则在一个实施方案中,核112可以在较低电源状态下工作,如暂挂状态或停止时钟(stop-clock)状态,此类状态可以分别地称为电源状态C1或C2。由此,电源状态可以指核112全面工作(即,执行指令)时的状态或核112不在执行指令时的多个不同待机状态。
在一个实施方案中,每个核112配置成在进入待机状态时将其执行状态124(不要与上文描述的核的工作状态混淆)存储到存储器120。在多种实施方案中,核112的保存的执行状态124可以包括寄存器的内容、程序计数器、堆栈指针等。保存的执行状态124还可以包括指令高速缓存(I-高速缓存)的内容、数据高速缓存(D-高速缓存)的内容、转换后备缓冲(TLB)信息等。在一个实施方案中,当核112退出待机状态时,核112配置成重新加载其执行状态124,并使用重新加载的状态124来恢复执行指令。正如下文将描述的,在一些实施方案中,核112可以配置成响应逻辑核至物理核的重新映射而加载另一个核112的保存的状态124。
在一个实施方案中,分配单元114配置成生成逻辑核至物理核112的映射(即,逻辑核映射),并执行逻辑核至物理核112的动态重新映射。正如本文所使用的,动态重新映射是指BIOS130执行了处理器110的引导进程之后执行的重新映射。换言之,在一个实施方案中,分配单元114配置成,在操作系统122已被加载且正在执行之后将逻辑核重新映射到物理核112。在示出的实施方案中,分配单元114设在处理器110中,但是不在特定核112内。在一些实施方案中,分配单元114可以设在核112内或分配在多个核112中间(即,核112可以执行分配单元114的操作)。在一些实施方案中,分配单元114可以设在处理器110的北桥逻辑内。在一些实施方案中,分配单元114可以设在处理器110外部,如BIOS130内。在一些实施方案中,可以将描述为由分配单元114执行的操作分拆到计算机系统100内的多个块中间。
在一个实施方案中,当分配单元114将不同的逻辑核重新映射到该核112时,处理器110配置成将核112的执行状态传递到另一个核112。例如,如果核112A分配到逻辑核L0,则当L0重新映射到核112B时,处理器110可以将核112A的状态传递到核112B。在一个实施方案中,处理器110配置成经由核112之间的互连在核112之间传递执行状态。在一个实施方案中,处理器110可以配置成通过将该状态存储到存储器120(作为状态124),然后将该状态重新加载到另一个核112上来传递执行状态。在一些实施方案中,处理器110配置成在核112进入和退出待机电源状态(如上文描述的)时存储和重新加载执行状态。正如下文将描述的,在一些实施方案中,处理器110可以配置成使一个或多个核112响应分配单元114执行重新映射而进入和退出待机状态。作为备选,分配单元114可以配置成在一个或多个核112转入或转出待机状态时执行重新映射。在多种实施方案中,处理器110可以配置成在没有操作系统或软件知识的情况下传递执行状态。
接下来结合图2描述分配单元114。
现在转到图2,其中示出分配单元114的一个实施方案。在示出的实施方案中,分配单元114包括映射寄存器210、确定单元220和计数器寄存器230。要注意,虽然单元210-230示出为在单个单元114内,但是在一些实施方案中,单元210-230可以分散在计算机系统100中的多个单元中间。
在一个实施方案中,映射寄存器210配置成存储表示逻辑核至物理核的映射(示出为逻辑核映射212)的标识符。在一些实施方案中,寄存器210可以包括每个核112的相应寄存器,并且相应寄存器210可以配置成存储映射到该核112的逻辑核。相应地,寄存器210可以包括将分配到核112A的逻辑核的第一寄存器、存储分配到核112B的逻辑核的第二寄存器等。在多种实施方案中,操作系统122、核112、I/O装置等可以配置成从寄存器210读取逻辑映射212以确定要将任务分配到哪里(即,核112中哪些核要执行任务)。
在一个实施方案中,确定单元220配置成识别何时要执行逻辑核至物理核的重新映射,以及确定逻辑核重新映射。确定单元220可以使何时要执行重新映射的决策基于多种适合条件的任一个条件。在一个实施方案中,确定单元220配置成响应接收到一个或多个核112已进入待机状态的指示执行重新映射。正如上文提到的,处理器110可以在重新映射期间将一个核112的执行状态124传递到另一个核112。在一些实施方案中,处理器110配置成通过使核112在退出待机状态时加载另一个核112的执行状态124来执行此传递。通过在核112已进入待机状态之后执行重新映射,在一个实施方案中,处理器110能够将一个核112的状态传递到另一个核,而不会迫使核112进入待机状态,因为它已经处于此状态。在一个实施方案中,确定单元220配置成按规则的间隔(例如,在确定自前一次重新映射起已经过去特定量时间量之后)执行重新映射。在此类实施方案中,分配单元114可以配置成使一个或多个核112进入或退出待机状态以协助在重新映射期间执行状态124的传递。在其他实施方案中,分配单元114可以配置成使用如上文描述的那些其他技术来协助传递执行状态。在一个实施方案中,确定单元220配置成基于对核112确定的工作负荷执行重新映射。例如,确定单元220可以配置成在确定特定核112的工作负荷已超过阈值(例如,核112A以在特定性能状态下工作持续特定量时间)之后执行重新映射。在示出的实施方案中,确定单元220配置成基于从操作系统122接收的核信息222和/或从核112接收的核信息224确定是否要执行重新映射。正如下文将结合图3描述的,此类信息可以包括指示核112的电源状态和/或性能状态的工作状态信息、指定核112的温度的温度信息等。
确定单元220还可以基于多种适合标准的任一个标准来确定逻辑核重新映射。在一个实施方案中,确定单元220配置成基于物理核112的预定排序重新映射逻辑核。例如,确定单元220最初可以将逻辑核映射到初始物理核112(例如,核112A),然后依次将逻辑核重新映射到下一个物理核112(例如,核112B)。在另一个实施方案中,确定单元220可以配置成基于随机生成的序列将逻辑核分配到物理核112。在一些实施方案中,确定单元220可以配置成基于接收的信息222和/或224来确定重新映射。正如下文将描述的,在一个实施方案中,确定单元220可以配置成基于一个或多个核112的工作状态来确定重新映射。在一个实施方案中,确定单元220可以配置成基于从一个或多个核112测量的温度来确定重新映射。在一些实施方案中,确定单元220可以配置成基于核112的工作状态信息和温度信息的组合来确定逻辑核重新映射。在多种实施方案中,确定单元220可以配置成是否要将逻辑核的其中一些或全部重新映射到物理核。例如,确定单元220最初可以确定要重新映射逻辑核的仅一个子集(例如,基于核112的温度信息),然后确定要重新映射全部核112(例如,基于核112的当前工作负荷)。
在一个实施方案中,计数器寄存器230配置成存储确定单元220在确定是否要执行逻辑核重新映射时能够使用的信息。在一个实施方案中,计数器寄存器230配置成指示自上次映射或重新映射其已经过去的时间的值。在一个实施方案中,计数器寄存器230配置成存储对应于每个核112的指示核112已在特定电源和/或性能状态下工作多久的值。例如,寄存器230可以存储指定核112A已经在超频性能状态下工作持续最后N秒的值。在一个实施方案中,计数器寄存器230配置成存储对应于每个核112的指示核112已在高于特定阈值温度的温度下工作多久的值。
现在转到图3,其中示出确定单元220的方框图。如上文所提到的,在多种实施方案中,确定单元220配置成识别何时要执行重新映射,以及确定重新映射。在示出的实施方案中,确定单元220包括工作状态单元310和温度单元320。
在一个实施方案中,工作状态单元310配置成为确定单元220处理电源和性能信息312。在多种实施方案中,信息312包括每个核112的电源状态和性能状态的指示。信息312还可以包括指定何时核112从一种状态转变到另一种状态(例如指定核112A从性能状态P1转变到性能状态P0)的指示。在一个实施方案中,工作状态单元310配置成从操作系统122接收信息312。在另一个实施方案中,工作状态单元310可以配置成直接地从核112接收信息。在一些实施方案中,工作状态单元310配置成在计数器寄存器230中存储以及检索与信息312关联的信息(示出为计数器信息332)。
在一个实施方案中,工作状态单元310配置成使用处理的信息312来协助确定单元220确定是否要创建新逻辑核映射332。在一些实施方案中,工作状态单元310配置成响应一个或多个核112转变到新工作状态促成逻辑核重新映射。例如,在一个实施方案中,工作状态单元310配置成响应至少一个核112进入待机状态促成重新映射。如上所提到的,在一些实施方案中,核112可以配置成重新映射之后,在进入待机状态时存储其执行状态124,并且可以在退出待机状态时重新加载另一个核112的执行状态124。在一些实施方案中,工作状态单元310配置成基于核112已经处于特定性能状态或电源状态多久来促成重新映射。例如,工作状态单元310可以配置成在确定特定核112已经处于高性能状态(例如,P0)下持续比指定时间更长时促成重新映射。相似地,工作状态单元310可以配置成在确定特定核112已经在超频状态下工作持续比指定时间更长时促成重新映射。在一些实施方案中,工作状态单元310可以配置成基于该核的工作状态和该状态下持续的时间来计算每个核112的工作负荷得分。工作状态单元310可以配置成如果个别得分超过阈值或如果总得分超过总阈值,则促成重新映射。在一些实施方案中,可以将此类得分与温度单元320生成的得分组合(如下文描述)以确定何时应该执行重新映射。
在一个实施方案中,工作状态单元310还配置成使用处理的信息312来协助确定单元220确定逻辑核映射332。在一个实施方案中,工作状态单元310配置成促使确定单元220将逻辑核重新映射到在待机状态下工作的物理核112,并且不对非在待机状态下工作的物理核112重新映射逻辑核。在一个实施方案中,工作状态单元310配置成促使确定单元220将从处于较高工作状态的核112向处于较低工作状态的核112重新映射逻辑核。在一个实施方案中,工作状态单元310配置成促使确定单元220在将逻辑核重新映射到已经处于较高工作状态而持续较短时间段的核112之前,先将逻辑核重新映射到已经处于较高工作状态而持续较长时间段的核112。
在一个实施方案中,温度单元320配置成为确定单元220处理温度信息322。在多种实施方案中,信息322包括在整个处理器110收集的一个或多个温度。在一个实施方案中,温度单元320配置成从位于核112上的多个传感器接收信息322。在一些实施方案中,温度单元320可以配置成在计数器寄存器320中存储以及检索与信息322关联的信息332。
在一个实施方案中,温度单元320配置成使用处理的信息322来协助确定单元220确定是否要创建新逻辑核映射332。在一些实施方案中,温度单元320可以配置成响应确定核112已经超过最大温度阈值,促使确定单元220执行逻辑核重新映射。在一个实施方案中,温度单元320可以配置成确定核112是否超过阈值温度,以及如果情况如此,则确定核112已经超过该温度多久。在核112已超过该温度持续指定时间段之后,温度单元320可以配置成促成逻辑核重新映射。在一个实施方案中,温度单元320可以配置成基于从核112收集的温度和处于这些温度下持续的时间,计算每个核112的工作负荷得分。然后温度单元320可以配置成如果这些得分超过阈值,则促成重新映射。在一些实施方案中,可以将此类得分与工作状态单元310生成的得分组合以确定何时应该执行重新映射。
在一个实施方案中,温度单元320还配置成使用处理的信息322来协助确定单元220确定逻辑核映射332。在一个实施方案中,温度单元320配置成促使确定单元220将从处于较高温度工作的核112向处于较低温度工作的核112重新映射逻辑核。在一个实施方案中,温度单元320可以配置成促使确定单元220在将逻辑核重新映射到已经处于较高温度而持续较短时间段工作的核112之前,将逻辑核重新映射到已经处于相似温度而持续较长时间段的核112。
现在转到图4,示出用于动态地重新映射逻辑核的方法400的流程图。方法400是可以通过多核处理器(如处理器110)执行的方法的一个实施方案。在多种实施方案中,可以多次执行方法400以便执行后续重新映射。在一些情况中,执行方法400可以在处理器核中产生更好的工作负荷分布,进而可以改善处理器的使用寿命。
在步骤410中,处理器110存储逻辑核至物理核的映射。如上文所论述的,在多种实施方案中,此映射可以被操作系统、其他核、I/O装置等用于对物理核(例如,核112)分配任务来执行。在一个实施方案中,处理器110将映射存储在分配单元(例如分配单元114)的一组寄存器(例如,寄存器230)中。在其他实施方案中,处理器110将映射存储在如存储器(例如存储器120)、BIOS(例如,BIOS130)等内的其他位置。在一些情况中,存储的映射可以是(例如)计算机系统(例如系统100)的引导进程期间生成的初始映射。在其他情况中,存储的映射可以是先前执行的重新映射期间生成的映射。
在步骤420中,处理器110(例如使用分配单元114)在引导进程之后将逻辑核重新映射到物理核。然后在多种实施方案中,可以使用此重新映射将后续任务分配给物理核以便执行。如上文论述的,处理器110(例如使用确定单元220)可以基于多种条件中的任一个条件来识别何时要执行重新映射。在一个实施方案中,处理器110可以按规律的间隔执行重新映射。在一些实施方案中,处理器110可以基于物理核的一个或多个工作状态来确定要执行重新映射。例如,在一个实施方案中,处理器110可以响应一个或多个核进入待机状态而确定要执行重新映射。在一些实施方案中,处理器110可以基于从核收集的温度信息来确定要执行重新映射。
正如上文论述的,处理器110可以基于多种适合标准的任一个标准来确定重新映射。在一个实施方案中,处理器110可以基于物理核的预定排序来将逻辑核重新映射到物理核。例如,如果逻辑核L0被分配到物理核P0,并且物理核P1在排序中紧接在P0之后,则可以将逻辑核L0重新映射到核P1。在一些实施方案中,处理器110可以基于核的工作状态来确定重新映射。例如,在一个实施方案中,处理器110可以将逻辑核从处于较高工作状态的物理核(例如,处于性能状态P0的物理核)重新映射到处于较低工作状态的物理核(例如,处于性能状态P1的物理核)。在一些实施方案中,处理器110可以基于从物理核测量的温度来确定重新映射。例如,在一个实施方案中,处理器110可以将逻辑核从在较高温度下工作的物理核重新映射到在较低温度下工作的物理核。
在多种实施方案中,处理器110响应重新映射在物理核之间传递执行状态。如上所述,在一些实施方案中,处理器110通过将执行状态存储到存储器,然后将执行状态重新加载到第二核上,以将执行状态从第一核传递到第二核。在一个实施方案中,处理器110通过促使第一核进入待机状态来执行存储,在该待机状态中,该核将其执行状态存储到存储器。处理器110可以通过促使第二核退出待机状态并重新加载执行状态来执行重新加载。
示例性计算机系统
现在转到图5,其中示出可以包括处理器110的示例性计算机系统500的一个实施方案。计算机系统500包括处理器子系统580,该处理器子系统经由互连560(例如,系统总线)耦合到系统存储器520和I/O接口540。I/O接口540耦合到一个或多个I/O设备550。计算机系统500可以是多种类型的设备的任一种,包括(但不限于)服务器系统、个人计算机系统、桌面型计算机、膝上型或笔记本计算机、主机计算机系统、手持式计算机、工作站、网络计算机、如移动电话、传呼机或个人数字助理(PDA)的消费设备。计算机系统500还可以是任何类型的联网的外围设备,如存储设备、交换机、调制解调器、路由器等。虽然出于方便,示出单个的计算机系统500,但是系统500还可以作为一起操作的两个或更多个计算机系统来实现。
处理器子系统580可以包括一个或多个处理器或处理单元。例如,处理器子系统580可以包括耦合到一个或多个资源控制处理元件520的一个或多个处理单元(每个处理单元可以具有多个处理元件或核)。在计算机系统500的多种实施方案中,可以将处理器子系统580的多个实例耦合到互连560。在多种实施方案中,处理器子系统580(或580内的每个处理器单元或处理元件)可以包括高速缓存或其他形式的板载存储器。在一个实施方案中,处理器子系统580可以包括上文描述的处理器110。
系统存储器520可以被处理器子系统580使用。系统存储器520可以使用不同的物理存储器介质(如硬盘存储装置、软盘存储装置、移动盘存储装置、闪存存储器、随机存取存储器(RAM-静态RAM(SRAM)、扩充的数据输出(EDO)RAM、同步动态RAM(SDRAM)、双数据速率(DDR)SDRAM、RAMBUS RAM等)、只读存储器(ROM–可编程ROM(PROM)、电可擦写可编程ROM(EEPROM)等)等来实现。计算机系统500中的存储器不限于如存储器520的主存储装置。相反,计算机系统500还可以包括其他形式的存储装置,如处理器子系统580中的高速缓存存储器和I/O设备550上的辅助存储装置(例如,硬盘驱动器、存储装置阵列等)。在一些实施方案中,这些其他形式的存储装置还可以存储处理器子系统580可执行的程序指令。
根据多种实施方案,I/O接口540可以是耦合到其他设备并与之通信的多种类型的接口的任一种。在一个实施方案中,I/O接口540是从前端到一个或多个后端总线的桥芯片(例如,南桥)。I/O接口540可以经由一个或多个对应总线或其他接口耦合到一个或多个I/O设备550。I/O设备的实例包括存储设备(硬盘驱动器、光盘驱动器、移动闪存装置、存储阵列、SAN或其关联的控制器)、网络接口设备(例如局域网或广域网)或其他设备(例如,图形设备、用户接口设备等)。在一个实施方案中,计算机系统500经由网络接口设备连接到网络。
可以将计算机系统(例如计算机系统500)执行的程序指令存储在多种形式的计算机可读存储介质上。一般来说,计算机可读存储介质可以包括计算机可读取以向计算机提供指令和/或数据的任何非临时性/有形存储介质。例如,计算机可读存储介质可以包括诸如磁介质或光介质,例如磁盘(固定或移动)、磁带、CD-ROM或DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW或蓝光的存储介质。存储介质还可以包括易失性或非易失性存储器介质,如RAM(例如,同步动态RAM(SDRAM)、双数据速率(DDR、DDR2、DDR3等)SDRAM、低功率DDR(LPDDR2等)SDRAM、RambusDRAM(RDRAM)、静态RAM(SRAM)等)、ROM、闪存存储器、可经由如通用串行总线(USB)接口的外设接口访问的非易失性存储器(例如,闪存存储器)等。存储介质可以包括微机电系统(MEMS),以及可经由通信介质(如网络和/或无线链路)访问的存储介质。
在一些实施方案中,计算机可读存储介质可以用于存储被程序读取且直接或间接地用于制造上文描述的处理器110的硬件的指令。例如,指令可以概述一个或多个数据结构,该一个或多个数据结构描述高级设计语言(HDL)(如Verilog或VHDL)中的硬件功能行为级或寄存器传递级(RTL)描述。该描述可以被合成工具读取,合成工具可以将描述合成以产生网表(netlist)。该网表可以包括表示处理器110的功能的一组门(例如,合成库中定义的)。然后可以放置和路由网表来产生描述应用于掩膜的几何形状的数据集。然后可以在多种半导体制造步骤中使用这些掩膜以产生与处理器110对应的一个或多个半导体电路。
虽然上文描述了具体实施方案,但是这些实施方案无意限制本公开内容的范围,即使针对特定特征仅描述了一个实施方案。除非另行说明,否则本公开内容中提供的特征的示例应是说明性的,而非限制性的。正如对从本公开内容获益的本领域技术人员显而易见的,上文描述应旨在涵盖此类替代、修改和等效物。
本公开内容的范围包括本文公开的任何特征或多个特征的组合(无论显性还是隐含的)或其任何概括,无论它是否缓解了本文涉及的问题的任何一个或全部。相应地,可以在本申请(或对其要求优先权的申请)提交审查期间提出对特征的任何此类组合的新权利要求。具体来说,参考所附权利要求书,可以将从属权利要求中的特征与独立权利要求的特征组合,以及可以将相应的独立权利要求中的特征以任何适合的方式且不仅是所附权利要求书中枚举的特定组合中来进行组合。
Claims (20)
1.一种处理器,其包括:
多个物理核,其中所述处理器配置成存储逻辑核至所述多个物理核的映射;以及
分配单元,所述分配单元配置成在所述处理器引导进程之后将所述逻辑核重新映射到所述多个物理核。
2.如权利要求1所述的处理器,其中所述分配单元配置成接收所述多个物理核中的一个或多个已经进入待机状态的指示,以及其中所述分配单元配置成响应接收到所述指示重新映射所述逻辑核。
3.如权利要求2所述的处理器,其中所述处理器配置成响应所述多个物理核的第一物理核进入待机状态,存储所述第一物理核的执行状态,以及其中所述处理器配置成响应所述第一物理核退出待机状态,以所述多个物理核的第二物理核的执行状态加载所述第一物理核。
4.如权利要求1所述的处理器,其中所述分配单元配置成确定自执行所述逻辑核的前次重新映射起已经过去的时间量,以及其中所述分配单元配置成响应所述时间量超过阈值,重新映射所述逻辑核。
5.如权利要求1所述的处理器,其中所述分配单元配置成确定所述多个物理核中的一个或多个的相应工作负荷,以及其中所述分配单元配置成基于所述一个或多个确定的工作负荷,将所述逻辑核的一个或多个重新映射到所述多个物理核的一个或多个。
6.如权利要求1所述的处理器,其中所述分配单元配置成接收所述多个物理核的一个或多个的温度信息,以及其中所述分配单元配置成基于所述接收的温度信息,将所述逻辑核的一个或多个重新映射到所述多个物理核的一个或多个。
7.如权利要求1所述的处理器,其中所述处理器配置成存储所述多个物理核中第一物理核的执行状态和所述多个物理核中第二物理核的执行状态,以及其中所述处理器配置成响应所述分配单元将映射到所述第一和第二物理核的逻辑核重新映射,以所述第二物理核的存储的执行状态加载所述第一物理核,以及以所述第一物理核的存储的执行状态加载所述第二物理核。
8.如权利要求1所述的处理器,其中所述处理器配置成将所述多个物理核中的一个超频,以及其中所述分配单元配置成基于所述物理核已超频的时间长度,将逻辑核重新映射到所述超频的物理核。
9.如权利要求1所述的处理器,其中所述分配单元配置成执行所述逻辑核的子集至所述多个物理核中的多个物理核的重新映射,而不重新映射全部逻辑核。
10.一种方法,其包括:
处理器上的多个物理核执行一组任务,其中所述一组任务是基于逻辑核至所述多个物理核的映射来分配;以及
当操作系统在执行时,所述处理器将所述逻辑核重新映射到所述多个物理核,其中基于所述重新映射分配一组附加任务。
11.如权利要求10所述的方法,还包括:
响应逻辑核从所述第一物理核重新映射到所述第二物理核,所述处理器将当前执行状态从所述多个物理核中的第一物理核传递到所述多个物理核中的第二物理核。
12.如权利要求11所述的方法,其中所述传递包括将所述执行状态存储到耦合至所述处理器的存储器,并将所述执行状态重新加载在所述第二物理核上。
13.如权利要求12所述的方法,其中所述传递包括所述第二物理核退出待机状态以重新加载所述第一物理核的执行状态。
14.如权利要求10所述的方法,其中所述处理器基于所述多个物理核中的多个的相应性能状态来确定重新映射。
15.如权利要求14所述的方法,其中所述重新映射包括将逻辑核从处于较高性能状态的第一物理核重新映射到处于较低性能状态的第二物理核。
16.如权利要求10所述的方法,其中所述处理器基于从所述多个物理核收集的一个或多个温度来确定重新映射。
17.如权利要求10所述的方法,还包括:
所述处理器按规则的间隔执行所述逻辑核至所述多个物理核的重新映射。
18.一种包括由计算机系统上可执行的程序操作的数据结构的计算机可读存储介质,所述程序操作所述数据结构以执行一部分进程以制造包括由所述数据结构描述的电路的处理器,所述数据结构描述的电路包括:
多个物理核,其中所述处理器配置成存储逻辑核至所述多个物理核的映射;以及
分配单元,所述分配单元配置成在所述处理器引导进程之后将所述逻辑核重新映射到所述多个物理核。
19.如权利要求18所述的计算机可读存储介质,其中所述处理器配置成在存储器中存储来自所述多个物理核中的所述第一物理核的执行状态,并将所述执行状态加载在所述多个物理核的所述第二物理核上来响应逻辑核从所述第一物理核重新映射到所述第二物理核。
20.如权利要求18所述的计算机可读存储介质,其中所述存储介质存储硬件描述语言(HDL)数据、Verilog数据或图形数据库系统II(GDSII)数据。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/087,206 | 2011-04-14 | ||
US13/087,206 US8910177B2 (en) | 2011-04-14 | 2011-04-14 | Dynamic mapping of logical cores |
PCT/US2012/033660 WO2012142512A1 (en) | 2011-04-14 | 2012-04-13 | Dynamic mapping of logical cores |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103477324A true CN103477324A (zh) | 2013-12-25 |
CN103477324B CN103477324B (zh) | 2017-09-08 |
Family
ID=46001833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280018246.0A Active CN103477324B (zh) | 2011-04-14 | 2012-04-13 | 用于将逻辑核动态地重新映射到物理核的处理器和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8910177B2 (zh) |
EP (1) | EP2697716A1 (zh) |
JP (1) | JP6265885B2 (zh) |
KR (1) | KR101835056B1 (zh) |
CN (1) | CN103477324B (zh) |
WO (1) | WO2012142512A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335228A (zh) * | 2014-06-30 | 2016-02-17 | 华为技术有限公司 | 一种内存变更处理方法,及操作系统 |
CN108038077A (zh) * | 2017-12-28 | 2018-05-15 | 深圳市风云实业有限公司 | 多任务并行数据处理方法及装置 |
WO2023012595A1 (en) * | 2021-08-04 | 2023-02-09 | International Business Machines Corporation | Accessing topological mapping of cores |
WO2024125402A1 (zh) * | 2022-12-16 | 2024-06-20 | 华为技术有限公司 | 芯片资源调度方法及相关装置 |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8402530B2 (en) * | 2010-07-30 | 2013-03-19 | Microsoft Corporation | Dynamic load redistribution among distributed servers |
US8966187B2 (en) * | 2011-12-01 | 2015-02-24 | International Business Machines Corporation | Flexible replication with skewed mapping in multi-core chips |
US8782466B2 (en) * | 2012-02-03 | 2014-07-15 | Hewlett-Packard Development Company, L.P. | Multiple processing elements |
US9055069B2 (en) | 2012-03-19 | 2015-06-09 | Xcelemor, Inc. | Hardware computing system with software mediation and method of operation thereof |
US9003218B2 (en) * | 2012-05-21 | 2015-04-07 | International Business Machines Corporation | Power shifting in multicore platforms by varying SMT levels |
US8799710B2 (en) * | 2012-06-28 | 2014-08-05 | International Business Machines Corporation | 3-D stacked multiprocessor structures and methods to enable reliable operation of processors at speeds above specified limits |
DE102013108041B4 (de) | 2012-07-31 | 2024-01-04 | Nvidia Corporation | Heterogene Mehrprozessor-Anordnung für ein leistungseffizientes und flächeneffizientes Rechnen |
US9569279B2 (en) * | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
KR20140044596A (ko) * | 2012-10-05 | 2014-04-15 | 삼성전자주식회사 | 멀티 코어 프로세서를 구비한 컴퓨팅 시스템 및 그것의 로드 밸런싱 방법 |
US9311153B2 (en) * | 2013-05-15 | 2016-04-12 | Empire Technology Development Llc | Core affinity bitmask translation |
US9292293B2 (en) * | 2013-08-08 | 2016-03-22 | Qualcomm Incorporated | Intelligent multicore control for optimal performance per watt |
US10261875B2 (en) | 2013-12-18 | 2019-04-16 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US9606843B2 (en) * | 2013-12-18 | 2017-03-28 | Qualcomm Incorporated | Runtime optimization of multi-core system designs for increased operating life and maximized performance |
US9917777B2 (en) * | 2014-01-15 | 2018-03-13 | Wind River Systems, Inc. | Method and system for decentralized workload optimization in a data packet processing system using a multicore CPU |
US9842082B2 (en) * | 2015-02-27 | 2017-12-12 | Intel Corporation | Dynamically updating logical identifiers of cores of a processor |
US9942324B2 (en) | 2015-08-05 | 2018-04-10 | Futurewei Technologies, Inc. | Rebalancing and elastic storage scheme with elastic named distributed circular buffers |
US9864667B2 (en) * | 2015-09-25 | 2018-01-09 | Intel Corporation | Techniques for flexible and dynamic frequency-related telemetry |
US20180341482A1 (en) * | 2015-12-18 | 2018-11-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and arrangement for utilization of a processing arrangement |
KR102509986B1 (ko) * | 2016-03-28 | 2023-03-14 | 삼성전자주식회사 | 다중 코어 프로세서 및 다중 코어 프로세서를 제어하는 방법 |
JP6790557B2 (ja) * | 2016-08-02 | 2020-11-25 | 日本電気株式会社 | 制御装置及び制御方法 |
US10318363B2 (en) | 2016-10-28 | 2019-06-11 | Advanced Micro Devices, Inc. | System and method for energy reduction based on history of reliability of a system |
EP3388904B1 (en) * | 2017-04-13 | 2023-03-15 | duagon AG | Multicore architecture, interface card and method of processing data packets |
US10915330B2 (en) * | 2017-12-19 | 2021-02-09 | Advanced Micro Devices, Inc. | Pseudo-random logical to physical core assignment at boot for age averaging |
US20210049051A1 (en) * | 2018-03-02 | 2021-02-18 | Sumitomo Electric Industries, Ltd. | On-vehicle control device, control system, control method, and control program |
US11048540B2 (en) * | 2018-06-29 | 2021-06-29 | Intel Corporation | Methods and apparatus to manage heat in a central processing unit |
US10997686B2 (en) * | 2019-01-09 | 2021-05-04 | Intel Corporation | Workload scheduling and distribution on a distributed graphics device |
US11048549B2 (en) | 2019-04-04 | 2021-06-29 | Google Llc | Transferral of process state and/or components in computing environments |
WO2024009747A1 (ja) * | 2022-07-08 | 2024-01-11 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、及び、プログラム |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH113235A (ja) * | 1997-06-10 | 1999-01-06 | Nec Software Ltd | 仮想プロセッサによるタスク制御システム |
JP2002132741A (ja) * | 2000-10-20 | 2002-05-10 | Hitachi Ltd | プロセッサ追加方法、計算機及び記録媒体 |
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
JP4982971B2 (ja) * | 2004-09-29 | 2012-07-25 | ソニー株式会社 | 情報処理装置、プロセス制御方法、並びにコンピュータ・プログラム |
JP4777994B2 (ja) | 2005-09-29 | 2011-09-21 | 富士通株式会社 | マルチコアプロセッサ |
US7992151B2 (en) | 2006-11-30 | 2011-08-02 | Intel Corporation | Methods and apparatuses for core allocations |
US8028286B2 (en) | 2006-11-30 | 2011-09-27 | Oracle America, Inc. | Methods and apparatus for scheduling threads on multicore processors under fair distribution of cache and other shared resources of the processors |
JP2008152594A (ja) | 2006-12-19 | 2008-07-03 | Hitachi Ltd | マルチコアプロセッサ計算機の高信頼化方法 |
JP2008234191A (ja) * | 2007-03-19 | 2008-10-02 | Toshiba Corp | ハードウエアモニタ管理装置及びハードウエアモニタ機能の実行方法 |
US7840821B2 (en) | 2007-05-18 | 2010-11-23 | Globalfoundries Inc. | Method and apparatus for monitoring energy consumption of an electronic device |
US8180997B2 (en) * | 2007-07-05 | 2012-05-15 | Board Of Regents, University Of Texas System | Dynamically composing processor cores to form logical processors |
US7886172B2 (en) * | 2007-08-27 | 2011-02-08 | International Business Machines Corporation | Method of virtualization and OS-level thermal management and multithreaded processor with virtualization and OS-level thermal management |
US20090235108A1 (en) | 2008-03-11 | 2009-09-17 | Gold Spencer M | Automatic processor overclocking |
US9459927B2 (en) * | 2008-05-22 | 2016-10-04 | Alcatel Lucent | Central office based virtual personal computer |
US8195962B2 (en) | 2008-11-11 | 2012-06-05 | Globalfoundries Inc. | Method and apparatus for regulating power consumption |
US8954977B2 (en) | 2008-12-09 | 2015-02-10 | Intel Corporation | Software-based thread remapping for power savings |
US20100162256A1 (en) | 2008-12-18 | 2010-06-24 | Alexander Branover | Optimization of application power consumption and performance in an integrated system on a chip |
JP5345990B2 (ja) * | 2010-08-27 | 2013-11-20 | レノボ・シンガポール・プライベート・リミテッド | 特定のプロセスを短時間で処理する方法およびコンピュータ |
-
2011
- 2011-04-14 US US13/087,206 patent/US8910177B2/en active Active
-
2012
- 2012-04-13 EP EP12716967.0A patent/EP2697716A1/en not_active Ceased
- 2012-04-13 KR KR1020137030265A patent/KR101835056B1/ko active IP Right Grant
- 2012-04-13 JP JP2014505374A patent/JP6265885B2/ja active Active
- 2012-04-13 CN CN201280018246.0A patent/CN103477324B/zh active Active
- 2012-04-13 WO PCT/US2012/033660 patent/WO2012142512A1/en unknown
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105335228A (zh) * | 2014-06-30 | 2016-02-17 | 华为技术有限公司 | 一种内存变更处理方法,及操作系统 |
CN105335228B (zh) * | 2014-06-30 | 2018-12-07 | 华为技术有限公司 | 一种内存变更处理方法,及操作系统 |
CN108038077A (zh) * | 2017-12-28 | 2018-05-15 | 深圳市风云实业有限公司 | 多任务并行数据处理方法及装置 |
CN108038077B (zh) * | 2017-12-28 | 2021-07-27 | 深圳市风云实业有限公司 | 多任务并行数据处理方法及装置 |
WO2023012595A1 (en) * | 2021-08-04 | 2023-02-09 | International Business Machines Corporation | Accessing topological mapping of cores |
TWI806603B (zh) * | 2021-08-04 | 2023-06-21 | 美商萬國商業機器公司 | 用於存取核心之拓樸映射之電腦實施方法、電腦程式產品及電腦系統 |
US11983576B2 (en) | 2021-08-04 | 2024-05-14 | International Business Machines Corporation | Accessing topological mapping of cores |
GB2624327A (en) * | 2021-08-04 | 2024-05-15 | Ibm | Accessing topological mapping of cores |
GB2624327B (en) * | 2021-08-04 | 2024-10-16 | Ibm | Accessing topological mapping of cores |
WO2024125402A1 (zh) * | 2022-12-16 | 2024-06-20 | 华为技术有限公司 | 芯片资源调度方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2697716A1 (en) | 2014-02-19 |
CN103477324B (zh) | 2017-09-08 |
KR20140027270A (ko) | 2014-03-06 |
KR101835056B1 (ko) | 2018-03-08 |
WO2012142512A1 (en) | 2012-10-18 |
JP6265885B2 (ja) | 2018-01-24 |
JP2014514660A (ja) | 2014-06-19 |
US8910177B2 (en) | 2014-12-09 |
US20120266179A1 (en) | 2012-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103477324A (zh) | 逻辑核的动态映射 | |
TWI499970B (zh) | 增加處理器的加速模式內駐的方法與設備及其處理器 | |
JP5969550B2 (ja) | パフォーマンスカウンタの仮想化 | |
JP6006248B2 (ja) | 命令エミュレーションプロセッサ、方法、およびシステム | |
US11150899B2 (en) | Selecting a precision level for executing a workload in an electronic device | |
CN102981864B (zh) | 信息处理装置和信息处理方法 | |
US9335944B2 (en) | In-place change between transient and persistent state for data structures on non-volatile memory | |
US10585826B2 (en) | Using processor types for processing interrupts in a computing device | |
CN104756090A (zh) | 提供扩展的缓存替换状态信息 | |
US9256544B2 (en) | Way preparation for accessing a cache | |
CN104461470A (zh) | 微处理器以及微处理器操作方法 | |
Kriebel et al. | Variability and reliability awareness in the age of dark silicon | |
WO2017196614A1 (en) | Selective data persistence in computing systems | |
CN102597972A (zh) | 虚拟计算机系统、区域管理方法及程序 | |
US10922137B2 (en) | Dynamic thread mapping | |
US9448909B2 (en) | Randomly branching using performance counters | |
Kim et al. | Fair I/O scheduler for alleviating read/write interference by forced unit access in flash memory | |
US8160862B1 (en) | Method and apparatus for controlling power in an emulation system | |
US20230205517A1 (en) | Automated use of computational motifs via deep learning detection | |
US20150106602A1 (en) | Randomly branching using hardware watchpoints | |
Bojnordi et al. | A programmable memory controller for the DDRx interfacing standards | |
US8819612B1 (en) | Analyzing timing requirements of a hierarchical integrated circuit design | |
US11880231B2 (en) | Accurate timestamp or derived counter value generation on a complex CPU | |
KR20240059343A (ko) | 시스템 온 칩 및 이의 동작 방법 | |
Bilen et al. | Performance Evaluation of Embedded Microcomputers for Avionics Applications |
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 |