CN102521002B - 可动态和选择性停用内核以及重新设定多内核微处理器 - Google Patents
可动态和选择性停用内核以及重新设定多内核微处理器 Download PDFInfo
- Publication number
- CN102521002B CN102521002B CN201110436337.3A CN201110436337A CN102521002B CN 102521002 B CN102521002 B CN 102521002B CN 201110436337 A CN201110436337 A CN 201110436337A CN 102521002 B CN102521002 B CN 102521002B
- Authority
- CN
- China
- Prior art keywords
- kernel
- many core
- setting
- instruction
- core microprocessors
- 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
Links
Classifications
-
- 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
-
- 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/24—Resetting means
-
- 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/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- 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/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/82—Architectures of general purpose stored program computers data or demand driven
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30083—Power or thermal control instructions
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/142—Reconfiguring to eliminate the error
- G06F11/1423—Reconfiguring to eliminate the error by reconfiguration of paths
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- 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)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Microcomputers (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
Abstract
可动态和选择性停用内核以及重新设定多内核微处理器。该多内核微处理器被用以支持***软件对所选内核进行停用或终止的功能,这样的方式不会导致该处理器总线与其他内核共享间的拖曳。另一多内核微处理器用以支持重新设定微处理器内内核间的调整***,其中内核会选择性地被指定为主要内核,藉以驱动一信号至内核间通信线。
Description
【相关申请案的参考文献】
本申请案优先权的申请是根据该美国专利临时申请案,案号:61/426,470,申请日:12/22/2010,名称为多内核内的旁路总线(MULTI-COREINTERNAL BYPASS BUS),该案整体皆纳入本申请参考。
本申请案与下列同在申请中的美国专利申请案有关,都具有相同的申请日,每一申请案整体皆纳入本申请参考。
技术领域
本发明涉及一种多内核微处理器,尤其涉及一种具有动态停用或重新设定内核的功能的多内核微处理器。
背景技术
在一些传统的多内核微处理器中,制造商可以在微处理器烧断每一内核上的熔丝(fuse,又称之为“熔线”),来指定多内核微处理器的每一内核的设定。于是,经由多内核微处理器的内核熔丝(fuse)数值便可静态地定义每个内核,并确定***内哪一内核能够执行处理数据。虽然这种解决方法可能有许多优点,但缺点是一旦使用第一个多内核微处理器的设定,由于内核上的熔丝(fuse)已被烧断,因此在产生第二次设定的需求时,已烧断熔丝(fuse)的内核便不能再重新设定。在某些应用中,例如执行不能支持多内核测试或是应用软件时,可能需要停用内核。此外,在许多应用中,并非所有微处理器的内核是需要的,而内核甚至会在休眠状态以节省功率的情况下,依然引起处理器或***总线与内核共享的拖曳。拖曳可以被例如对窥探周期的响应而引起。此外,多内核微处理器中,个别内核可能在制造中有缺陷、或是在测试、操作过程中故障,这样的情况也会干扰为了内核间通信而在处理器内核间所设置的预设调整***。因此,现今需要的是一个重新设定多内核微处理器的可靠方法。
发明内容
在一实施例中,本发明提供一种可动态重新设定的多内核微处理器,该多内核微处理器包含多个初始启用的处理内核,每个处理内核被设定为执行***软件发出的终止指令、以及内部存储且已设定的微码,藉以停止响应于耦合在多内核微处理器外部的***总线的传输。执行终止指令的处理内核可通过输入在多内核微处理器重置引脚的外部而保有恢复的可操作性。处理内核可以从微处理器移除电源,然后再接上的情况下恢复,但在实务上,停用的设定是不可以被撤回的。在重置或是重新接上电源后,执行终止指令而停用的初始启动的处理内核会恢复成可操作的启动内核,除非接收到另一终止指令否则其不会停用。
在相关方面,因为执行终止指令而停用的处理内核无法对***总线的传输产生响应,所以它并不会响应或遵行重置讯息指令、甚至是对重置讯息指令的响应或遵行失能。此外,执行终止指令而停用的处理内核因为无法对***总线的传输产生响应,因此它不会对***总线的窥探周期产生响应,因此不会增加处理器总线的相关拖曳。
另一方面,每一初始启动内核更进一步设定对该终止指令产生响应,而使每一初始启动的内核自行进入一省电睡眠状态。此外,其他未被终止指令所停用的初始启动内核,通过内部电源状态管理微码来调整彼此间的电源状态管理,无需参考任何已停用内核的电源状态需求值。
另一方面,本发明提供一种具有可动态重新设定内核间调整***的多内核微处理器,可动态重新设定的多内核微处理器包含多个处理内核,这些多个处理内核中至少有一处理内核被指定为一主要内核。该可动态重新设定的多内核微处理器还包含至少一边带通信线,该边带通信线被设置于一***总线的外部并且耦接于一芯片组,藉以增进这些处理内核间的通信。每一组边带通信线耦接于至少两处理内核。该两处理内核任何一个可在运作时被***软件重新设定为该主要内核或移除原有被指定为主要内核、并根据该主要内核的指定(不管是否有这项指定)有条件地驱动一输出至该边带通信线的连接端。
在其他方面,每一处理内核可包含一预设设定,用以存储于这些处理内核内部逻辑中,藉以判断该处理内核是否为主要内核。这些处理内核包含一存储器,用以存储对该处理内核的一修正设定。此外,该内部的存储器用以存储对该多内核微处理器所作的一修正设定,如果有修正设定的话,该修正设定依据主要内核设定来辨识其他该多内核微处理器的启动内核。
另一方面,这些处理内核设有内部电源状态的管理微码,并依据该修正设定所存储的内容调整其电源状态管理。
另一方面,本发明提供一种停用包含多个内核的多内核微处理器内的一或多个内核的方法。每一内核执行***软件程序的第一或终止指令,用以指示内核自行停用。其余未执行第一指令的多个内核则执行***软件程序的第二指令,藉以指定多内核微处理器的内核设定。内核设定可通过使用者指定而反应一或多个已停用内核的状态。
另一方面,执行终止指令的内核停止响应于一总线上包含重置讯息指令以及以最小的功耗状态转换的传输。然而,这些执行终止指令的内核对于外部重设多内核微处理器的重置引脚的外部重设响应的功能被保留。
另一方面,执行第二指令的其余内核将于其内部存储内核设定。
另一方面,每一内核在重置后且在执行任何终止指令前,会立即确认该多内核微处理器的初始预设内核设定。然而,在一或多个内核接收并执行任何终止指令后,其余每一内核根据所存储的内核设定而非初始设定来执行。
另一方面,内核在重置后,首先确认一初始内核设定,之后基本输入/输出***(Basic Input/Output System;BIOS)发出一终止或设定更新写入指令至每一内核的特定模块寄存器(Model-Specific Register;MSR),其中终止或设定更新写入指令是与使用者所指定相符且一致的,这项指定存储在存储器,并提供芯片组转给微处理器使用。在停用及其余启动内核分别执行其指令后,除了那些正在执行基本输入/输出***(Basic Input/Output System;BIOS)的内核之外,基本输入/输出***(Basic Input/Output System;BIOS)发出一停止指令至其余每一个启动内核,藉以指示内核停止执行,但仍保有内核响应于***总线传输的功能。之后基本输入/输出***(Basic Input/Output System;BIOS)在单一剩余执行内核上启动一操作***,接着执行***发送一重置指令指示内核自行重置,但任何一个不再响应于***总线传输而停用的内核,不会响应或遵行此重置指令,即只有执行停止指令的内核遵行于重置指令。
另一方面,本发明提供一种动态重置多内核微处理器内的一或多个内核的方法,该多内核微处理器包含多个内核以及至少一组边带通信线,此边带通信线被设置于一***总线外部并耦接于一芯片组,藉以增进无***总线(non-system-bus)的内核间的通信。其中每一内核依据其被设定为主要内核的设定(不管是否有这项设定)有条件地驱动一边带通信线至一连接端。其中至少有一些内核可被重新设定为具有或并无主要内核辨识码(mastercredential),藉以架构以边带为基础的内核间通信。
另一非限制的实例中,适用于微处理器的方法包含多个多内核芯片,每一芯片具有一被指定为主要内核的内核,该方法还包含一组耦接于芯片的芯片间边带通信线,其中每一芯片的内核,无论其是否为主要内核,耦接于该组芯片间边带通信线,并且依据其被设定为主要内核的设定(不管是否有这项设定)而有条件地驱动一输出至该组芯片间边带通信线;并且任何芯片的内核在运作时可重新设定为主要内核或移除原有的指定。
处理器的内核具有一初始设定,藉以设定至少一个内核作为主要内核,而不是设定全部内核作为主要内核。该初始设定可通过选择性的烧断一适用于每一个内核的熔丝(fuse)而产生,其中适用的熔丝(fuse)系定义为在预设的情况下,内核是否具有一或多个主要内核辨识码。通过设定发现微码在该每一内核上运行而选择性的确认初始设定后,一适用于内核的修正设定是将最初设定为主要内核者予以移除,并且指派一最初没有被设定为主要内核的内核为主要内核。
另一方面,内核根据修正内核设定来操作,该修正内核设定例如包含以相容方式调整内核间电源状态管理。
另一方面,使用者经由使用者接口的操作来定义一修正设定(如果在定义的限制范围内适用的话),接下来***软件程序提供修正设定至内核,内核再将其存储至内核内。
另一方面,内核可根据临时被重新设定,其中临时设定是指定一非主要内核作为临时主要内核,经由驱动一适合的边带通信线以停用该已设定的主要内核,然后启动临时主要内核来驱动适合的边带通信线。在相关方面,为响应侦测到与一停用、不能执行、一错误、或是已设定的主要内核故障的情况,非主要内核即执行该临时设定。目前的临时主要内核分配临时设定至其他内核(例如在同一芯片的其他内核),藉以启动这些内核并根据临时设定来操作。已指定的主要内核可通过一后续的传输启动一控制权移转回到其本身,而临时主要内核将取消临时设定,并且通知被临时设定所影响的内核。
附图说明
图1是显示本发明计算***的多内核微处理器的方块图;
图2是显示本发明的图1的其中的一内核的详细方块图;以及
图3A是显示本发明的图1的多内核微处理器执行动态设定发现以及修正过程的操作流程图;以及
图3B是显示本发明的图1的多内核微处理器执行动态设定发现以及修正过程的操作流程图。
【主要元件符号说明】
具体实施方式
在此叙述多内核微处理器的动态重新设定内核的结构及方法的实施例。在一实施例中,多内核微处理器以及相关方法用以支持***软件(例如BIOS或其他操作***)来停用(disable)或终止(kill)所选择的内核的能力。有利的是,经由上述终止内核的方法不会导致与其他内核共享处理器总线的拖曳。举例来说,这样的特征在性能测试上或是对于不支持多内核的软件而言是理想的功能。另一方面,多内核微处理器以及相关方法用以支持重新设定微处理器内核间调整***。有利的是,内核可被选择性的指定为主要内核,藉以驱动信号至内核间通信线。这样的方式下,微处理器会响应于主要内核停用或所指定的主要内核无法操作的情况,为内核间通信的目的而做适用的设定或自我修复。此外,微处理器可以设定一可选择内核间最佳给定指令的协调***。
在一些实施例中,新的设定以及指定可以由使用者指定或是经由***软件或是固件所提供,如基本输入/输出***(Basic Input/Output System;BIOS)。在其他实施例中,适用的修正指定和/或临时指定,系响应于内部内核逻辑或微码侦测到的情况而执行。
请参阅图1,图1是显示本发明计算机***100,其包含一多内核微处理器102。图1的计算机***100在某些方面与美国专利申请案案号61/426,470,申请日12/22/2010,名称为“多处理器内核间的分散式电源管理(Decentralized Power Management Distributed Among Multiple ProcessorCores)”相似,其同在申请的非临时申请案(CNTR2527)也在本文中纳入参考。此外,图1的计算机***100在某些方面与美国专利申请案案号61/426,470,申请日12/22/2010,名称为“多内核动态配置发现方法及其微处理器(Dynamic Multi-Core Microprocessor Configuration)”相似,其同案的非临时申请案(CNTR2533)也在本文中纳入参考。
计算机***100包含一单芯片组114,单芯片组114通过***总线116耦合在多内核微处理器102,其中***总线116包含一总线时钟。芯片组114可操作来产生一重置信号,且该重置信号由多内核微处理器102所接收。计算机***100还包含一非易失性存储器152,例如快闪存储器,该非易失性存储器152用以存储如基本输入/输出***(Basic Input/Output System;BIOS)码的***固件。计算机***100还包含一非易失性的随机存取存储器154,例如快闪存储器或是在个人计算机***常见的电池供电的随机存取存储器,非易失性随机存取存储器154用以存储本文所述的使用者所指定的内核设定。计算机***100还包含一存储装置156,例如磁盘驱动器,存储器156用以存储操作软件。此外,计算机***100还包含一输入/输出装置158,例如一用以显示输出如基本输入/输出***(Basic Input/Output System;BIOS)152所显示的内核设定选单而给使用者看的显示器、一用以接受使用者输入如本文所述的内核设定的键盘及鼠标。
多内核微处理器102的封装体内包含两双内核芯片104并且标示为芯片0及芯片1。芯片104被安装在封装基板上,每一双内核芯片104包含两处理内核106,芯片0包含内核0及内核1,且芯片1包含内核2及内核3。每一芯片104内的两处理内核106,系经由芯片104内的内核间通信线112而通信。更具体地说,内核间通信线112使分别在芯片104内的处理内核106能中断彼此,并且发送另一讯息来调整彼此间不同的发现(discovery)和管理流程,其中各发现以及管理流程中包含微处理器的设定发现及修正设定。
在另一相关的实施例中,内核间通信线112包含一具有并联导线的总线。在相关的实施例中,内核间通信线112包含旁路总线(bypass bus),其中旁路总线与美国专利申请案案号61/426,470,申请日12/22/2010,名称为“多处理器内核间的分散式电源管理(Decentralized Power ManagementDistributed Among Multiple Processor Cores)”相似,其同在申请的非临时申请案(CNTR2527)也在本文中纳入参考引用。在其他实施例中,内核间通信线112包含一相对较小的内核间通信线,这样的设置可在各方面与CNTR2503所描述替代的边带设定(sideband configuration)相比较,或是可与CNTR2527所描述的内核间通信线的相比较。
在本文中所述,“伙伴(pal)”一词是指同一芯片104的处理内核106,且芯片104通过对应的边带内核间通信线来彼此通信。因此,在图1的实施例中,内核0及内核1为伙伴,且内核2及内核3为伙伴。
每一芯片104提供多个用以将芯片104耦合至***总线接触垫,以及多个将芯片104耦合至内核间通信线118的额外边带通信接触垫。具体来说,每一芯片104包含四个边带通信接触垫108,其分别对应耦合至四个表示为“P1”、“P2”、“P3”以及“P4”的引脚。在四个边带通信接触垫108中,一个是输出接触垫(表示为“输出”)以及三个输入接触垫(表示为输入1、输入2以及输入3)。在一实施例中,每一芯片104根据多内核微处理器制造过程中的烧断的熔丝(fuse)设定,而分配四个边带通信接触垫108其中一个接触垫作为输出接触垫(OUT)。
图1中,封装体本身提供对应耦合于封装体内核间通信线118的多个边带通信引脚,其中边带通信引脚系表示为P1至P4。当这些引脚不需实行封装内部芯片104内核间通信时,它们可在在内核间通信线118执行外部测试信号,或是在较大、多封装体架构上提供更多的便利性。
内核间通信线118被设定为如下:芯片0的输出接触垫以及芯片1的输入1接触垫经由一条导线耦合在P1引脚;而芯片1的输出接触垫以及芯片0的输入3接触垫经由一条导线耦合在P2引脚;芯片0的输入2接触垫以及芯片1的输入3接触垫经由一条导线耦合在P3引脚;芯片0的输入1接触垫以及芯片1的输入2接触垫经由一条导线耦合在P4引脚。
每一芯片104具有一个被指定的主要内核106,主要内核106控制经由芯片104的边带通信接触垫的通信。图1的实施例中,内核0是芯片0的主要内核106,且内核2是芯片1的主要内核106。请参阅图一,“同伴(buddy)”一词是指在不同芯片104的主要内核106,经由边带内核间通信线而彼此通信,因此,图1的实施例中,内核0及内核2为同伴。
内核间通信线118在芯片104的主要内核106中相连,藉以增进主要内核106间不同的发现以及管理流程的通信及调整,包含本文所述的微处理器设定的发现及修正。更具体地说,内核间通信线118使相异芯片104的主要内核106中断彼此,并且使主要内核106发送另一讯息来执行分散式调整和多内核微处理器102的主要内核106间分散式的发现动作。
举例来说,当芯片0的主要内核0想要与芯片1的主要内核2通信时,主要内核0从其输出接触垫传输一讯息至芯片1的输入1接触垫,同样的,当芯片1的主要内核2想要与芯片0的主要内核0通信时,主要内核2从其输出接触垫传输一讯息至芯片0的输入3接触垫。如CNTR2527文中所述,图1内并不是所有的接触垫及引脚皆需支持四内核设定,一些接触垫及引脚是能被移除的。但是同样如CNTR2527文中所述,额外的接触垫及引脚能增进其他处理器的设定,例如八内核的实施例。在一些处理器设定中,每一输出接触垫108与其他芯片104中多个输入接触垫108相耦合。为了支持这样的设定,一些实施例中的主要内核106在每一讯息传输中具有一识别码,每一讯息从主要内核106的输出接触垫108输出,并且在内核间通信线118传输。识别码识别主要内核106的讯息发往的目的地,藉以使多个接受的内核106在接收传播讯息后,检测是否为讯息发送的预定目的地。
请参阅图2,图2是显示本发明的图1的其中的一内核的详细方块图。图2的内核106在某些方面与CNTR2527以及CNTR2533所公开的图2相似,其他方面将于下文进一步说明。
根据一实施例,内核106的微结构包含一超标量(superscalar)、非循序(out-of-order)执行管线的功能单元,一指令快取存储器202,用以存取来自***存储器(图未示)的指令。一指令转译器204,与指令快取存储器202耦合,并从指令快取存储器202接收指令,例如x86指令集架构指令的指令。寄存器别名表(RegisterAlias Table;RAT)212耦合至指令转译器204以及微序列器206,寄存器别名表(Register Alias Table;RAT)212用以接收从指令译码器204以及微序列器206所发出的已转译微指令,藉以产生与已转译微指令转的相依讯息。保留站214耦合至寄存器别名表(Register Alias Table;RAT)212,藉以接收寄存器别名表(RegisterAlias Table;RAT)212所发出的已转译微指令及相依讯息。执行单元216耦合至保留站214,藉以接收保留站214所发出的已转译微指令,并且接收其已转译微指令的指令运算元。该运算元可能来自内核106的寄存器以及耦合至执行单元216的数据快取存储器222,其中该内核106的寄存器例如是通用目的寄存器以及可读写的特定模块寄存器238。引退单元218耦合至执行单元216,藉以接收执行单元216所发送的指令结果,并且退移该指令结果至内核106的架构状态(architecturestate)中。数据快取存储器222耦合至总线接口单元(Bus Interface Unit;BIU)224,总线接口单元(Bus Interface Unit;BIU)224为图1的内核106至总线116的接口。锁相回路(Phased-Locked-Loop;PPL)226接收从总线116发出的总线时钟信号,接收到后产生并传送一内核时钟信号242至内核106内部的不同功能单元。经由执行单元216可控制相位锁定回路(Phased-Locked-Loop;PPL)226,诸如令其停用(disable)。
如上述与图1相关的,每个芯片具有一被指定的主要内核。此外,在相关方面,处理器可具有一已指定的启动服务处理器(Boot Service Processor;BSP)内核,其被单独授权来调整芯片组114特定的受限动作。因此,可在不同实施例中指定主要和/或启动服务处理器(Boot Service Processor;BSP)身分辨识码,并使遵行此项指定。
在一实施例中,每一内核106包含可编程的设定熔丝(fuse)。芯片104的制造商可以变化设定熔丝(fuse)来指定内核106和/或其他内核106是否作为芯片104的主要内核或启动服务处理器(Boot Service Processor;BSP)的内核,以及内核106和/或其他内核106是否被启动,而指定每一内核106为唯一识别码的情况,例如内核106是否是内核0、内核1、内核2或内核3。
另一实施例中,任何给定内核的主要内核指定是根据其识别码而定。根据一实施例,在预设的情况下,偶数内核106是每一芯片104的主要内核。根据另一相关的实施例中,内核0被设定为多内核微处理器102的启动服务处理器(Boot Service Processor;BSP)内核。
在另一实施例中,一初始主要内核或启动服务处理器(Boot ServiceProcessor;BSP)的指定通过预设(如基于设定熔丝的状况或内核识别码)所提供,但也许会被新的设定所覆写。更进一步地说,主要内核及启动服务处理器(Boot Service Processor;BSP)的指定系动态的被重新设定、或是暂时性的响应于临时设定,上述的指定系响应于不同的情况,例如是被指定的主要内核或启动服务处理器(Boot Service Processor;BSP)内核为停用或暂停使用的状况。
尤其是如图2所示,每一内核106可包含一主要内核指示(masterindicator)232、启动服务处理器(Boot Service Processor;BSP)指示228以及一启动指示252。在一实施例中,如上所述,这些指示构成熔丝可选择性被烧断。例如,与启动指示252相关的熔丝(fuse),可以被选择性烧断以启动或停用内核106,以使计算机***100执行数据处理所用到的内核小于实体内核106的数量。在其他实施例中,这些指示构成熔丝(fuse)是用藉以提供预设值,但这些预设值可被存储于特定模块寄存器(Model-Specific Registers;MSRS)238或设定存储器254内的数值以相反的设定所覆写。在另一实施例内,这些指示包含两个熔丝(fuse),藉以提供预设值及本机设定逻辑所能覆写的预设值。在其他实施例中,这些指示构成寄存器可以被开启或关闭。
执行单元216接收到一启动指示252,用以指示是否启动内核106来执行数据处理。执行单元216也接收一启动服务处理器(Boot Service Processor;BSP)指示228以及一主要内核指示232,启动服务处理器(Boot ServiceProcessor;BSP)指示228以及一主要内核指示232分别指示内核106是否为芯片104的主要内核以及是否为多内核微处理器102的启动服务处理器(BootService Processor;BSP)内核。如上所述,启动服务处理器(Boot ServiceProcessor;BSP)指示228、主要内核指示232以及启动指示252包含可编程的熔丝(fuse)。在另一种实施例中,启动服务处理器(Boot Service Processor;BSP)指示228、主要内核指示232和/或启动指示252被存储于特定模块寄存器(Model Specific Register;MSR)238内,但熔丝(fuse)数值可通过软件写入特定模块寄存器(Model Specific Register;MSR)238而更新。
更进一步地说,内核106包含设定存储器254,藉以存储多内核微处理器102的内核设定。在一实施例中,设定存储器254包含寄存器;在另一实施例中,设定存储器254包含一在小型随机存取存储器(Small Random AccessMemory;RAM)的存储区,小型随机存取存储器(Small Random AccessMemory;RAM)例如是美国专利申请案案号7,827,390所述的参数随机存取存储器(Parameter Random Access Memory;PRAM)。
如CNTR.2527所述,执行单元216也可读写控制状态寄存器(Control andStatus Register;CSR)234及236,藉以与其他内核106通信。特别是,内核106系利用控制状态寄存器(Control and Status Register;CSR)236并经由内核间通信线112与在同样芯片104上的内核106做通信,且内核106利用控制状态寄存器(Control and Status Register;CSR)234而通过芯片间通信线118并经由接触垫108,进而与在其他芯片104上的内核106做通信。
微序列器206还包含一用以存储微码的微码存储器207。每一处理内核106均具有一相同指令集架构且彼此对称,且每一处理内核106均设定为计算一包含来自该指令集架构的指令的使用者程序。为了本发明所公开的目的,在本文中,“微码”一词是指在内核106执行指令架构时,相同内核106所执行的指令。也就是说,如果有任何存储在微码存储器207内的微码执行的话,其系在原有执行的内核106执行。
微码存储器207用以存储微码,微码包含如CNTR.2527内各种不同的实施例所述的内部电源状态管理微码。微码存储器207亦存储一包含设定发现(configuration discovery)及修正微码208。其中,设定发现及修正微码208被设定为动态确认初始设定(dynamically determine initial)(或预设)以及使用者所设定的(或以其他方式重新设定)多内核微处理器102的内核设定,用以存储指定的动态确定内核设定的讯息到设定存储器254,并且使用该存储的讯息,这部分将于后续的图3的方法中再详加描述。在一实施例中,使用者所设定的内核设定讯息被存储在设定存储器254,藉以替代多内核微处理器102的初始设定或预设内核设定。在一实施例中,如下所述,设定发现及修正微码208被多内核微处理器102的重置引脚的设置(assertion)所引发。设定发现及修正微码208最好重复存储在每一内核106上来支持扩充性。此外,如CNTR.2527文中所述的内核内部电源状态管理微码,根据它所发现并且响应于设定发现及修正微码208执行动作的修改设定,来调整电源状态管理。
请一并参阅图3A及图3B,图3A及图3B显示本发明的图1的多内核微处理器执行动态设定发现以及修正过程的操作流程图。更具体地说,图1的基本输入/输出***152搭配多内核微处理器102每一内核106的微码208,提供一种动态地个别停用或重新启动、并且在制造完成后(基本上是太晚而不能烧断熔丝的状况)重新设定内核106的主要内核设定的方法。
在流程图的方块302中使用者输入一理想的多内核微处理器102的内核设定。在一实施例中,基本输入/输出***(Basic Input/Output System;BIOS)152在图1的显示器158上显示一选单,让使用者指定一个理想内核设定。举例来说,在多内核微处理器102内每一实体存在的内核106,基本输入/输出***(Basic Input/Output System;BIOS)152可以显示其启动指示252的数值,且使用者能切换该启动指示252的数值来指示理想的停用或重新启动内核106(启动指示252分别指示内核106是启动或是停用)。
如与CNTR.2527相关的所述,微处理器最好也设定有某些调整及发现动作,诸如根据相容阶层式调整***且经由适用的边带通信线所做的电源状态管理。一般来说,阶层式调整***会整合微处理器的内核成为一或多个区域,在每个区域中,有一内核是被设定为该区域的主要内核,且边带通信线被设置在适合的区域中。内核能根据主要内核辨识码被限制(如果有前述限制的话),并依据所具有的能力通过可用的边带通信线,与其他区域的内核进行沟通或协调。
CNTR.2527描述了各式各样的阶层式调整***,各种巢状式区域结构,区域内各种内核的群组以及相对应的亲属群组(kinship groups),以及各种在亲属群组内的调整模块。阶层式调整***能被用于电源状态管理,包含C状态(C-State)及P状态(P-State)的执行以及共享电压与时钟源的控制。一般来说,阶层式调整***相容于边带通信线的结构与可用性,其中边带通信线被设置于内核与微处理器的内核群组间。此外,适用于多内核微处理器的阶层式调整***能被通过图示(map)、戈达尔数量(Number)或两者组合所指定,它们将随着每一内核的设定存储器254的其他设定讯息被存储,藉以增进内核间分散式***的协调、发现过程、以及电源状态管理的转换。
每一内核中,基本输入/输出***(Basic Input/Output System;BIOS)152能显示其主要内核指示232及启动服务处理器(Boot Service Processor;BSP)指示228的数值,并且让使用者切换其中的数值,藉以重新设置各内核的主要内核辨识码(master credential)。基本输入/输出***(Basic Input/OutputSystem;BIOS)152会显示一些预设但可重新设定的阶层式调整***,让使用者能在一定程度上相容于内核个别的可设定性以及适用的边带通信线中,增加、删除、结合与细分(subdivide)区域、重新定义相对应于亲属群组以及选择亲属群组间可用的协整模块。因此,基本输入/输出***(Basic Input/OutputSystem;BIOS)152提供一设定选项,藉以让使用者停用、重启动以及个别重新设定内核106。如果使用者要求停用一最初设定的主要内核,基本输入/输出***(Basic Input/Output System;BIOS)152能自动设定一替代内核作为主要内核。
在流程图的方块304中,基本输入/输出***(Basic Input/Output System;BIOS)152将在方块302所接收的使用者所指定的设定,存储至图1所示的非易失性随机存取存储器(Non-Volatile Random Access Memory;NVRAM)中。
在流程图的方块306中,多内核微处理器102被重置。例如,基本输入/输出***(Basic Input/Output System;BIOS)152会重置多内核微处理器102或是多内核微处理器会被使用者以启动计算机***100或点击重置按钮的一些操作而重置。
在流程图的方块308中,每一内核106的重置微码208确定其初始设定。在一实施例中,每一内核106的重置微码208根据CNTR.2533所述的方法,来确认多内核微处理器的初始设定。如其所述,每一内核106将一动态确认设定写入图2所述的设定存储器254内。
在流程图的方块312中,基本输入/输出***152在每一内核106的特定模块寄存器238中,写入不包含在使用者所指定的设定,这些设定包含例如写入使用者所期望去改变的信息,如使用者期望被停用的每一内核106及写入每一内核的主要内核辨识码。在另一实施例中,基本输入/输出***152执行一x86写入特殊模块寄存器的指令来写入特定模块寄存器(Model-specificregister;MSR)238。写入特定模块寄存器238的指令指示内核106将自行终止或停用,如果使用者设定是如此的话。另外,写入特定模块寄存器(Model-Specific Register;MSR)238的指令指示内核106将覆盖其预设的主要内核指示232和/或启动服务处理器指示228,如果使用者设定是如此指定的话。
在流程图的方块314中,每一内核106引动微码208的一部分,其中该部分微码的执行是响应于在方块312中写入特定模块寄存器(的指令。为了响应于一终止指令,举例来说,可以将适当的终止执行微码208写入控制内核106的寄存器藉以终止内核106。较特别的是,将终止执行微码208写入总线接口单元224,藉以使终止内核106不响应于总线116的窥探周期,这样的设置有利于防止内核106响应于窥探周期而引起总线116的拖曳。拖曳的产生由于窥探响应会要求内核106在总线116***延迟的时钟,而使其有额外的时间来窥探其快取存储器。最后,终止执行微码208将内核切换至最小的功耗状态并且进入休眠状态,例如,终止执行微码208会停止时钟和/或从多内核微处理器102的大部分电路中断开电源。然而,内核106仍保有响应于由外部重设多内核微处理器102的重置引脚的功能,因此,微码208从不回复使用者码(user code)。在一实施例中,为了使被终止的内核106恢复,需要一个经由多内核微处理器102的外部重置、经由相对应于内核106的输入接触垫或是切断内核106的电源的方式以恢复内核106。
在流程图的方块316中,基本输入/输出***152从非易失性随机存取存储器154读取使用者所指定的设定,并且在任何一个仍启动的内核(例如没有被使用者停用的内核106)写入特定模块寄存器238写入通过前述方法来指示使用者所指定的设定并覆盖方块308所确认的初始设定。值得一提的是,如上述文中所述在方块312及方块316所执行的写入特定模块寄存器,可以被期望采用内核106的终止或重新设定功能的任何***软件执行,用以重新设定多内核微处理器102,并非只有基本输入/输出***152才能执行这项功能。
在流程图的方块318中,每一仍启动的内核106引动微码208的一部分来执行写入特定模块寄存器的指令,该指令系响应于方块316所执行的写入特定模块寄存器。微码208接收到使用者所指定的设定并且写入设定存储器254,因而覆写方块308所写入的初始设定。内核106便根据使用者所指定的设定继续操作。
举例来说,内核106会通过执行CPUID指令而返回已启动内核的数量,其中已启动的内核系列举在使用者所指定的设定之内,使用者所指定的设定被存储于设定存储器254之内。在另一实施例中,内核106利用方块314所存储的讯息来协调某些电源状态管理功能,例如所要求的C状态、P状态、电压识别数字(Voltage Identification Digital;VID)水平以及时钟频率的执行。如上所述,例如与CNTR2527相关以及美国专利临时申请案案号61/426,470,申请日12/22/2010,名称为“分散式电源管理分部多个处理器内核(Decentralized Power Management Distributed Among Multiple ProcessorCores)”的一部分以及其同在申请的非临时申请案(CNTR.2534),这些都纳入本文的参考。另一实施例中,内核106利用所存储的设定讯息来执行多内核“功率评价(power credit)”功能,如美国专利申请案案号13/157,436(CNTR.2517),申请日6/10/2011,为了达到本申请所有目的,也在本文中纳入参考。
在流程图的方块322中,除了基本输入/输出***152还在执行的内核106之外,基本输入/输出***152在其余每一内核106上执行一停止(Halt;HLT)指令来停止内核106。值得一提的是,停止或是休眠的内核106仍在窥探总线116并且确认其快取存储器,这样的情况有可能导致产生在总线116的传输,其不利于整体效能且会产生不必要的功耗。然而,如本文所述,在方块312时,当基本输入/输出***152的设定将特定模块寄存器238写入终止内核,内核106会在方块314自我终止(kill itself)。相对于自我停止的方式,这样的方法能让内核106真的停用并且不会窥探总线116、或确认其快取存储器、或是在总线116上产生传输。这样一来,只有真的外部重置这样的方法,才能让被终止的内核106再次回复。
在流程图的方块324中,基本输入/输出***152从磁盘将操作***156载入到***存储器并且转移控制权给操作***156。操作***156发出初始化(Initialization;INIT)重置指令至多内核微处理器102的所有内核106,通过BIOS152使它们从停止的状态中回复而进入方块302。在另一实施例中,初始化重置指令包含为人所熟知的输入/输出高级可编程中断控制器(I/OAdvanced Programmable Interrupt Controller;I/O APIC)初始化指令,其用以指示内核106执行一响应于重置的动作子集(特别是从其停止的状态中回复)。
在流程图的方块326中,在方块314中每一个自行终止的内核106对于方块324所发出的初始化讯息并不会发生响应,更确切地说,终止的内核106系保持其终止状态直到执行外部重置才会回复。然而,其余已启动内核106响应于初始化讯息并且根据存储在方块318中使用者所指定的设定而执行。其中,重置微码208被引动而响应于初始化讯息。然而,在响应于初始化讯息时,重置微码208不会执行如方块308中的确认其内核设定的操作,因这项操作响应于外部重置而执行。值得一提的是,对所有内核而言初始化讯息是唯一的,它与从总线116重置所有内核106的情形是不同的。操作流程在方块326结束。
值得一提的是,方块302及方块304的执行步骤只需要执行一次,例如,使用者只需要指定一次他所期望的设定,且基本输入/输出***152只需要存储一次使用者所指定的设定;而每当***就被重置且操作***启动时,方块306至方块326的执行步骤就会被执行。
如上所述,动态设定发现及修正过程可能会支持多内核微处理器102所有内核中主要内核指定的重新设定。在一实施例中,芯片104上的硬件设定为在该芯片中的任何内核106皆可驱动输出接触垫108,加上内核间通信线118耦合至输出接触垫108,所以可在计算机***100内与其他内核106做通信;然而,在任何给定的时间中,在芯片104中只有一内核106被设定为可驱动输出接触垫108。这样有利于预设的主要内核(内核106的设定熔丝作为芯片104和/或多内核微处理器102的主要内核)处于不操作状态或是被基本输入/输出***152所终止的状况。举例来说,这样能启动其余内核106的一个变成主要内核并且与在其他芯片104上的伙伴内核106进行通信,藉以执行如CNTR.2527及CNTR.2534所述的电源状态管理。所有芯片104的内核106接收耦接于输入内核间通信线118的输入接触垫108的信号。因此,如果使用者或故障致使预设主要内核停用时,其余的内核106(例如新的主要内核)便能够接收代表这个芯片104的输入内核间的通信带118的信号,并且如上所述,能够驱动这个芯片104内核间通信线118耦合至输出接触垫108。通过这种方式,在一实施例中,可以对所有给定芯片104的内核106可能的排列组合进行支持。
为了支持动态内核重新设定,在一实施例中,内核106相关的熔丝(fuse)数值将个别与寄存器的对应位进行异或(Exclusive-OR’ed)运算藉以产生一终值,例如主要内核指示232、启动服务处理器指示228及启动指示252。相关的熔丝(fuse)数值也可与CNTR.2534的图2、图3A及图3B相对应的熔丝(fuse)不驱动(fuse-do-not-drive)指示154以及熔丝(fuse)不驱动频率(fuse-do-not-drive-freq)指示354进行个别的异或(Exclusive-OR’ed,又称之为“互斥或”)运算。寄存器位元(bit,也称之为“位”)通过微码208所写入,通常响应于写入特定模块寄存器238的操作而做的。最后,每一内核106同样设定启动微码208,藉以写入寄存器的一位元来动态更新内核106是否驱动耦合至输出接触垫108的内核间通信线118。这样的设定也可以被运用在诸如设定双内核芯片104或四内核芯片的任一内核106作为芯片的主要内核之上。
更进一步实施例中,每一内核106没有被设定为适用于区域的主要内核,会被内部微码以与CNTR.2533所描述过程中的一个相一致的方式进行设定,藉以确定区域中被设定的主要内核是否为已启动或是在执行状态,如果不是,则有条件的自我重新设定(例如基于其相对于区域内的其他亲属内核的实际数量)作为适用于区域的临时主要内核,并对输出接触垫108做为合适的边带内核线的控制权进行设置。一个被指定的主要内核也可以在预设条件下被设置(如基于他们的状态或迫切性来限制中断的限制中断模式)或是响应于一应用指令(applicable instruction),藉以暂时性的代表从属亲属内核作为临时主要内核。被指定的主要内核能经由与临时设定相关之后续的传输以启动一控制权移转回到其本身,这样的情况下临时主要内核将取消其临时设定。
经控制权的设置(assertion)或重新设置(reassertion),无论是从一个被指定的主要内核作为临时主要内核,或是从一个临时主要内核经由重新设置控制权而成为一指定的主要内核,任何取得主要功能者(亦即成为主要内核)最好也设定为与至少其从属内核共享其重新设定,藉以重新设定从属内核与新的主要内核而非先前的主要内核进行协调。
接口逻辑也最好是提供临时主要控制权具有执行的权力,藉以防止在指定的主要内核间重新设置输出接触垫108的控制权,直到有一个适当的控制权传输在被指定的主要内核以及临时的主要内核之间进行为止。
这样的方式下,多内核微处理器102也许会设定为动态响应于内核故障及内核失效而自我修复。自我修复实施例的最大程度中,每一内核在任何给定的亲属群中,是可以操作设定为亲属群的主要内核或是临时主要内核,包含最高的亲属群组水平上作为处理器的启动服务处理器的内核。在这样的实施例中,内核间通信线可以高效率的阶层方式来组织,但因为任何主要内核可被从属亲属内核替代,微处理器能在故障内核周围,重新设定其阶层式***。
在另一实施例中,内核106各方面不同于图2的代表实施例,其取代或额外提供高度并联结构,例如可运用于图形处理单元(Graphics ProcessingUnits;GPU)的结构。
然而各种有关于本发明的实施例已在本文详述,应可充分了解如何实施并且不限于这些实施方式。举凡本领域技术人员当可依据本发明的上述实施例说明而作其它种种的改良及变化。举例来说,软件可以启动如功能、制造、模型、模拟、描述和/或测试本文所述的装置及方法。可以通过一般程序语言(如C及C++)、硬件描述语言(Hardware Description Languages;HDL)或其他可用程序的使用来达成,其中硬件描述语言(Hardware Descriptionlanguages;HDL)包含Verilog HDL、VHDL等硬件描述语言。这样的软件能在任何所知的计算机可用媒介中处理执行,例如磁带、半导体、磁盘或光盘(如CD-ROM及DVD-ROM等)、网络、有线电缆、无线网络或其他通信媒介。本文所述的装置及方法的实施例中,可包含在智慧型内核半导体内,并且转换为集成电路产品的硬件,其中智慧型内核半导体如微处理器内核(如硬件描述语言内的实施或设定)。此外,本文所述的装置及方法可由硬件及软件的结合来实施。因此,本发明并不局限于任何本发明所述的实施例,但根据下述的专利范围及等效的装置及方法而定义。具体来说,本发明能在普遍使用的处理器装置里执行实施。最后,熟练于本技术领域的应能体会他们能很快地以本文所公开的观念及具体的实施例为基础,并且在没有背离本发明所述的附属项范围下,来设计或修正其他结构而实行与本发明的同样目的。
Claims (29)
1.一种可动态重设定的多内核微处理器,包含:
多个初始启动内核;
每一初始启动内核被设定为执行由一***软件所发布的一终止指令以停用该内核且停止响应于一***总线上除了外部重置信号外的传输,其中该***总线设置耦合于该多内核微处理器的外部;
其中,一终止指令所停用内核遵行发送至该***总线的一重置指令,其仅能够通过在多内核微处理器的一重置引脚,进行外部重置的方式来恢复执行功能而成一启动内核,且若通过上述方式进行重置,除非该启动内核再接收到另一终止指令,该启动内核仍具有执行功能。
2.如权利要求1所述的可动态重设定的多内核微处理器,其中当一内核在收到该终止指令而停用时,该内核因为无法对***总线的传输产生响应,因此该内核将不响应该***总线的窥探周期。
3.如权利要求1所述的可动态重设定的多内核微处理器,其中每一初始启动内核更进一步设定对该终止指令响应,藉以使该每一初始启动内核自行进入一省电睡眠状态。
4.如权利要求1所述的可动态重设定的多内核微处理器,其中其他未接收到该终止指令的初始启动内核被设定为,通过接收到内部电源状态的一管理微码来调整彼此间的电源状态管理,无需任何已停用内核的电源状态需求值。
5.一种可动态重设定的多内核微处理器,包含:
多个处理内核,这些处理内核中,至少有一处理内核被指定为一主要内核,且每个该多内核微处理器的芯片具有一个被指定的主要内核;
至少一边带通信线,被设置于一***总线的外部并且耦接于一芯片组,藉以促进这些处理内核间的通信;
其中,这些处理内核中,至少有两处理内核耦接于该边带通信线;
其中,该两处理内核任一个依据其被设定为主要内核的设定而有条件地驱动一输出至该边带通信线的一连接端;以及
其中,该两处理内核若有任何一个是被指定为主要内核,在运作时可重新设定该主要内核或移除原有的指定。
6.如权利要求5所述的可动态重设定的多内核微处理器,其中每一内核包含一预设设定,该预设设定被存储于该内核内部逻辑中,藉以判断该内核是否被指定为主要内核。
7.如权利要求5所述的可动态重设定的多内核微处理器,其中每一内核包含一存储器,该存储器用以存储对该内核的一修正设定。
8.如权利要求7所述的可动态重设定的多内核微处理器,其中,该存储器用以存储对整个多内核微处理器所作的一修正设定,该修正设定用以指出其他该多内核微处理器的启动内核和主要内核设定的关系。
9.如权利要求7所述的可动态重设定的多内核微处理器,其中每一内核设有内部电源状态的一管理微码,并依据该修正设定所存储的内容调整其电源状态管理。
10.一种动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,包含:
通过上述一或多个内核的每一个内核执行一第一指令指示该内核自行停用,其中该第一指令包含在一***软件程序,其中该自行停用的内核停止响应于一***总线上除了外部重置信号外的传输,且仅能够通过一重置引脚上的外部重置信号来恢复执行功能而成一启动内核;
对于未执行该第一指令的其余内核则执行一第二指令,该第二指令是指定该多内核微处理器内的一内核设定,该指定反应执行该第一指令后已被停用的一或多个内核的情形,其中该第二指令包含在一***软件程序内。
11.如权利要求10所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,其中该第一指令执行的一部分中,还包含使已停用内核停止响应于一总线上的传输,且该总线耦合于该多内核微处理器的外部。
12.如权利要求11所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,其中该第一指令执行的一部分中,还包含保有已停用内核响应于在外部重置多内核微处理器的重置引脚的功能,但使已停用内核停止响应于重置讯息指令。
13.如权利要求10所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,其中该第一指令执行的一部分中,还包含转变已停用内核至最小的功率消耗状态。
14.如权利要求10所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,其中该第二指令执行的一部分中,还包含将该内核设定存储于该内核内。
15.如权利要求14所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,其中该内核设定由使用者所指定。
16.如权利要求15所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法,还包含:
在执行该第一指令及该第二指令之前,通过上述多个内核的每一个内核确定该多内核微处理器的一初始内核设定,用以响应于该多内核微处理器的重置;
对于未执行该第一指令的其余内核则根据所存储的内核设定而非依据初始设定进行操作。
17.如权利要求10所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法中,还包含:
其余未执行该第一指令的多个内核在执行该第二指令之后,执行一第三指令以指示该内核停止执行,其中该第三指令包含在该***软件程序内。
18.如权利要求17所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法中,还包含:
传送一重置讯息至每一个内核以指示这些内核自行重置,其中该重置讯息由一多处理器操作***所发出。
19.如权利要求18所述的动态停用包含多个内核的多内核微处理器内的一或多个内核的方法中,还包含:
命令每一执行过该第一指令的一或多个内核停止响应该重置讯息;以及
由其余没执行该第一指令的多个内核响应该重置讯息。
20.一种动态重置多内核微处理器内的一或多个内核的方法,该多内核微处理器包含多个内核以及多个边带通信线,该边带通信线被设置于一***总线外部并耦接于一芯片组,藉以增进无***总线的内核间通信,其中至少有一些内核可操作而被重新设定为具有或并无主要内核辨识码,藉以架构边带为基础的内核间通信,该方法包含:
确定该处理器内的内核的初始设定,该初始设定是指定至少一内核而不是全部的内核作为主要内核,且每个该多内核微处理器的芯片具有一个被指定的主要内核;以及
根据一修正设定来重设这些内核,该修正设定从该初始设定为主要内核中移除,并且指派一未被初始设定为主要内核的内核为主要内核;
其中,每一内核依据其被设定为主要内核的设定而有条件地驱动一边带通信线至一连接端。
21.如权利要求20所述的动态重置多内核微处理器内的一或多个内核的方法,还包含通过在这些内核内选择性烧断适用的熔丝而产生该初始设定,其中该适用的熔丝被定义为该内核是否在预设情况下具有一或多个主要内核辨识码。
22.如权利要求21所述的动态重置多内核微处理器内的一或多个内核的方法,其中还包含通过运行在该每一内核上的设定发现微码以确认该初始设定。
23.如权利要求20所述的动态重置多内核微处理器内的一或多个内核的方法,其中该修正设定由一***软件程序所提供。
24.如权利要求23所述的动态重置多内核微处理器内的一或多个内核的方法中,还包含一使用者通过一使用者接口指定该修正设定。
25.如权利要求20所述的动态重置多内核微处理器内的一或多个内核的方法中,还包含在该内核内存储该修正设定。
26.如权利要求25所述的动态重置多内核微处理器内的一或多个内核的方法中,还包含根据该修正设定而调整这些内核间的电源状态管理。
27.如权利要求20所述的动态重置多内核微处理器内的一或多个内核的方法,其中:
该多内核微处理器包含多个多内核芯片;
每一多内核芯片中具有一已设定主要内核;
在多内核微处理器的芯片间,设有一组内核间边带通信线;
每一芯片的每一内核耦接于该芯片间的边带通信线,且该内核依据其被设定为主要内核的设定而有条件地驱动一输出至该边带通信线;以及
若有任何芯片的内核在运作时,可重新设定为主要内核或移除原有为主要内核的指定。
28.如权利要求20所述的动态重置多内核微处理器内的一或多个内核的方法中,还包含根据一临时设定重置该内核,其中该临时设定包括:
指定一非主要内核作为临时主要内核;
驱动一适合的边带通信线以停用已设定的主要内核;以及
启动该临时主要内核来驱动该适合的边带通信线。
29.如权利要求28所述的动态重置多内核微处理器内的一或多个内核的方法中,还包含:
响应于对侦测到与停用、不能执行、一错误、或是已设定主要内核故障的情况时,由一非主要内核执行该临时设定;
该非主要内核发布该临时设定给受该临时设定所影响的其他内核;以及
如果已设定的主要内核通过一后续的传输启动一控制权移转回到其本身,该非主要内核有条件地取消该临时设定。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201061426470P | 2010-12-22 | 2010-12-22 | |
US61/426,470 | 2010-12-22 | ||
US13/299,239 US8972707B2 (en) | 2010-12-22 | 2011-11-17 | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US13/299,239 | 2011-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102521002A CN102521002A (zh) | 2012-06-27 |
CN102521002B true CN102521002B (zh) | 2015-10-28 |
Family
ID=46291943
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110436337.3A Active CN102521002B (zh) | 2010-12-22 | 2011-12-22 | 可动态和选择性停用内核以及重新设定多内核微处理器 |
Country Status (3)
Country | Link |
---|---|
US (6) | US8972707B2 (zh) |
CN (1) | CN102521002B (zh) |
TW (1) | TWI506559B (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8972707B2 (en) | 2010-12-22 | 2015-03-03 | Via Technologies, Inc. | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8407506B2 (en) * | 2011-03-30 | 2013-03-26 | Symbol Technologies, Inc. | Dynamic allocation of processor cores running an operating system |
US9442732B2 (en) | 2012-03-19 | 2016-09-13 | Via Technologies, Inc. | Running state power saving via reduced instructions per clock operation |
CN104169879B (zh) * | 2012-04-24 | 2019-01-04 | 英特尔公司 | 用于动态中断重新配置的方法和计算机*** |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
CN102880762A (zh) * | 2012-10-18 | 2013-01-16 | 电子科技大学 | 基于NoC架构的多核处理器平台及其设计方法 |
TWI507991B (zh) * | 2013-02-27 | 2015-11-11 | Rdc Semiconductor Co Ltd | 多核心處理器及其相關控制方法與電腦系統 |
US10423216B2 (en) * | 2013-03-26 | 2019-09-24 | Via Technologies, Inc. | Asymmetric multi-core processor with native switching mechanism |
US9477277B2 (en) | 2013-06-17 | 2016-10-25 | Globalfoundries Inc. | Varying power load conditions on systems under test |
US9471088B2 (en) * | 2013-06-25 | 2016-10-18 | Intel Corporation | Restricting clock signal delivery in a processor |
US9377836B2 (en) | 2013-07-26 | 2016-06-28 | Intel Corporation | Restricting clock signal delivery based on activity in a processor |
CN104239275B (zh) * | 2013-08-28 | 2019-03-19 | 威盛电子股份有限公司 | 多核微处理器及其重新配置方法 |
CN104331387B (zh) * | 2013-08-28 | 2019-08-06 | 威盛电子股份有限公司 | 微处理器及其配置方法 |
EP2843550B1 (en) * | 2013-08-28 | 2018-09-12 | VIA Technologies, Inc. | Dynamic reconfiguration of mulit-core processor |
US9792112B2 (en) | 2013-08-28 | 2017-10-17 | Via Technologies, Inc. | Propagation of microcode patches to multiple cores in multicore microprocessor |
US9507404B2 (en) | 2013-08-28 | 2016-11-29 | Via Technologies, Inc. | Single core wakeup multi-core synchronization mechanism |
US9465432B2 (en) * | 2013-08-28 | 2016-10-11 | Via Technologies, Inc. | Multi-core synchronization mechanism |
US10019260B2 (en) | 2013-09-20 | 2018-07-10 | Via Alliance Semiconductor Co., Ltd | Fingerprint units comparing stored static fingerprints with dynamically generated fingerprints and reconfiguring processor settings upon a fingerprint match |
US9330011B2 (en) | 2013-09-20 | 2016-05-03 | Via Alliance Semiconductor Co., Ltd. | Microprocessor with integrated NOP slide detector |
CN104657240B (zh) * | 2013-11-18 | 2018-08-21 | 华为技术有限公司 | 多内核操作***的失效控制方法及装置 |
US10261882B2 (en) * | 2014-01-31 | 2019-04-16 | Hewlett Packard Enterprise Development Lp | Functional unit promotion to management unit |
US9575778B2 (en) | 2014-05-20 | 2017-02-21 | Via Alliance Semiconductor Co., Ltd. | Dynamically configurable system based on cloud-collaborative experimentation |
US9755902B2 (en) | 2014-05-20 | 2017-09-05 | Via Alliance Semiconductor Co., Ltd. | Dynamic system configuration based on cloud-collaborative experimentation |
US9619349B2 (en) * | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
US9710273B2 (en) * | 2014-11-21 | 2017-07-18 | Oracle International Corporation | Method for migrating CPU state from an inoperable core to a spare core |
US11016742B2 (en) | 2015-06-24 | 2021-05-25 | Altera Corporation | Channel sizing for inter-kernel communication |
US20170052799A1 (en) * | 2015-08-21 | 2017-02-23 | Microchip Technology Incorporated | Integrated Circuit Device With Selectable Processor Core |
US10162789B2 (en) * | 2015-09-03 | 2018-12-25 | Altera Corporation | Distributed multi-die protocol application interface |
US9697320B2 (en) * | 2015-09-24 | 2017-07-04 | Qualcomm Incorporated | Rectilinear macros having non-uniform channel spacing |
DE102015221064A1 (de) * | 2015-10-28 | 2017-05-04 | Robert Bosch Gmbh | Anordnung aus wenigstens zwei Mikrocontrollern und Verfahren zur Herstellung einer solchen Anordnung |
US20170153892A1 (en) * | 2015-11-30 | 2017-06-01 | Intel Corporation | Instruction And Logic For Programmable Fabric Hierarchy And Cache |
US10078544B2 (en) * | 2015-12-19 | 2018-09-18 | Intel Corporation | Apparatus and method for an on-chip reliability controller |
US10013392B2 (en) | 2016-01-26 | 2018-07-03 | Intel Corporation | Providing access from outside a multicore processor SoC to individually configure voltages |
CN107015847A (zh) * | 2016-01-28 | 2017-08-04 | 扬智科技股份有限公司 | 电子装置及其工作模式切换方法 |
US10338665B2 (en) * | 2016-06-23 | 2019-07-02 | Infineon Technologies Ag | Microcontroller power reduction system and method |
CN106774788B (zh) * | 2016-11-23 | 2020-01-17 | 深圳市博巨兴微电子科技有限公司 | 一种基于mcu的soc及其内核协作控制单元 |
US10552270B2 (en) | 2016-12-22 | 2020-02-04 | Intel Corporation | Systems and methods for in-field core failover |
TWI626535B (zh) * | 2017-02-15 | 2018-06-11 | 新唐科技股份有限公司 | 電源管理系統和控制器 |
US10541868B2 (en) * | 2017-02-24 | 2020-01-21 | Quanta Computer Inc. | System and method for automatically updating bios setup options |
US10993181B2 (en) * | 2017-08-11 | 2021-04-27 | Qualcomm Incorporated | Techniques and apparatuses for power management via cross-rat signaling in a non-standalone configuration |
US11042213B2 (en) | 2019-03-30 | 2021-06-22 | Intel Corporation | Autonomous core perimeter for low power processor states |
CN110716756B (zh) * | 2019-10-15 | 2023-03-14 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
US11493986B2 (en) * | 2019-12-22 | 2022-11-08 | Qualcomm Incorporated | Method and system for improving rock bottom sleep current of processor memories |
US11500747B2 (en) * | 2020-01-30 | 2022-11-15 | Dell Products L.P. | Computer initialization debug message display system |
US11493975B2 (en) * | 2020-09-24 | 2022-11-08 | Intel Corporation | System, apparatus and method for providing power monitoring isolation in a processor |
CN112817760A (zh) * | 2021-01-28 | 2021-05-18 | 深圳宏芯宇电子股份有限公司 | 多核处理器及多核处理器信号处理方法 |
TWI806302B (zh) * | 2021-12-22 | 2023-06-21 | 大陸商北京集創北方科技股份有限公司 | 級聯用觸控暨顯示驅動整合晶片、觸控顯示裝置及資訊處理裝置 |
US20230205297A1 (en) * | 2021-12-27 | 2023-06-29 | Advanced Micro Devices, Inc. | Method and apparatus for managing power states |
US20230367605A1 (en) * | 2022-05-14 | 2023-11-16 | Zscaler, Inc. | System lab and standard operating procedure framework |
CN116257472B (zh) * | 2023-05-15 | 2023-08-22 | 上海励驰半导体有限公司 | 接口控制方法、装置、电子设备及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100426159C (zh) * | 2005-09-06 | 2008-10-15 | 台达电子工业股份有限公司 | 具有双处理器的控制装置 |
CN101324802A (zh) * | 2007-06-11 | 2008-12-17 | 联发科技股份有限公司 | 集成电路及其减少电源消耗的方法 |
CN101390067A (zh) * | 2006-02-28 | 2009-03-18 | 英特尔公司 | 增强众核处理器的可靠性 |
Family Cites Families (76)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4748559A (en) * | 1979-08-09 | 1988-05-31 | Motorola, Inc. | Apparatus for reducing power consumed by a static microprocessor |
US5546588A (en) * | 1992-05-08 | 1996-08-13 | Motorola Inc. | Method and apparatus for preventing a data processing system from entering a non-recoverable state |
US5485625A (en) * | 1992-06-29 | 1996-01-16 | Ford Motor Company | Method and apparatus for monitoring external events during a microprocessor's sleep mode |
US5467455A (en) | 1993-11-03 | 1995-11-14 | Motorola, Inc. | Data processing system and method for performing dynamic bus termination |
US5918061A (en) * | 1993-12-29 | 1999-06-29 | Intel Corporation | Enhanced power managing unit (PMU) in a multiprocessor chip |
JP3315012B2 (ja) | 1994-09-22 | 2002-08-19 | 大日本印刷株式会社 | 情報記録方法 |
US5987614A (en) | 1997-06-17 | 1999-11-16 | Vadem | Distributed power management system and method for computer |
US6496880B1 (en) | 1999-08-26 | 2002-12-17 | Agere Systems Inc. | Shared I/O ports for multi-core designs |
US6665802B1 (en) | 2000-02-29 | 2003-12-16 | Infineon Technologies North America Corp. | Power management and control for a microcontroller |
US6968467B2 (en) | 2000-10-26 | 2005-11-22 | Matsushita Electric Industrial Co., Ltd. | Decentralized power management system for integrated circuit using local power management units that generate control signals based on common data |
US7174467B1 (en) | 2001-07-18 | 2007-02-06 | Advanced Micro Devices, Inc. | Message based power management in a multi-processor system |
US7113488B2 (en) * | 2002-04-24 | 2006-09-26 | International Business Machines Corporation | Reconfigurable circular bus |
US7058855B2 (en) | 2002-07-24 | 2006-06-06 | Infineon Technologies Ag | Emulation interface system |
US7493417B2 (en) | 2002-12-12 | 2009-02-17 | International Business Machines Corporation | Method and data processing system for microprocessor communication using a processor interconnect in a multi-processor system |
US7191349B2 (en) | 2002-12-26 | 2007-03-13 | Intel Corporation | Mechanism for processor power state aware distribution of lowest priority interrupt |
CN100520754C (zh) | 2003-03-12 | 2009-07-29 | Nxp股份有限公司 | 用于传送数据的数据处理设备以及方法 |
US7240225B2 (en) * | 2003-11-10 | 2007-07-03 | Dell Products L.P. | System and method for throttling power in one or more information handling systems |
GB2409303B (en) | 2003-12-18 | 2006-10-18 | Advanced Risc Mach Ltd | Inter-processor communication mechanism |
US7308558B2 (en) | 2004-01-07 | 2007-12-11 | International Business Machines Corporation | Multiprocessor data processing system having scalable data interconnect and data routing mechanism |
US7734797B2 (en) | 2004-03-29 | 2010-06-08 | Marvell International Ltd. | Inter-processor communication link with manageability port |
US7966511B2 (en) | 2004-07-27 | 2011-06-21 | Intel Corporation | Power management coordination in multi-core processors |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
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 |
US7257679B2 (en) | 2004-10-01 | 2007-08-14 | Advanced Micro Devices, Inc. | Sharing monitored cache lines across multiple cores |
JP4544081B2 (ja) * | 2004-11-15 | 2010-09-15 | 株式会社デンソー | マイクロコンピュータ |
US7502948B2 (en) | 2004-12-30 | 2009-03-10 | Intel Corporation | Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores |
US20060171244A1 (en) | 2005-02-03 | 2006-08-03 | Yoshiyuki Ando | Chip layout for multiple cpu core microprocessor |
US20060218424A1 (en) * | 2005-03-23 | 2006-09-28 | Miron Abramovici | Integrated circuit with autonomous power management |
KR101108397B1 (ko) | 2005-06-10 | 2012-01-30 | 엘지전자 주식회사 | 멀티-코어 프로세서의 전원 제어 장치 및 방법 |
US7568115B2 (en) | 2005-09-28 | 2009-07-28 | Intel Corporation | Power delivery and power management of many-core processors |
US7358758B2 (en) | 2005-10-18 | 2008-04-15 | Via Technologies, Inc. | Apparatus and method for enabling a multi-processor environment on a bus |
CN101433048B (zh) | 2006-03-28 | 2012-11-07 | 雷帝***加拿大有限公司 | 并行多核心计算结构的多媒体处理 |
US7506184B2 (en) | 2006-05-09 | 2009-03-17 | Intel Corporation | Current detection for microelectronic devices using source-switched sensors |
US7685441B2 (en) | 2006-05-12 | 2010-03-23 | Intel Corporation | Power control unit with digitally supplied system parameters |
WO2008047179A1 (en) | 2006-10-20 | 2008-04-24 | Freescale Semiconductor, Inc. | Device having redundant core and a method for providing core redundancy |
US8327158B2 (en) * | 2006-11-01 | 2012-12-04 | Texas Instruments Incorporated | Hardware voting mechanism for arbitrating scaling of shared voltage domain, integrated circuits, processes and systems |
JP4945224B2 (ja) | 2006-11-30 | 2012-06-06 | 株式会社東芝 | コントローラ、情報処理装置、および供給電圧制御方法 |
KR101209252B1 (ko) | 2007-02-02 | 2012-12-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
JP4433006B2 (ja) | 2007-07-04 | 2010-03-17 | 株式会社デンソー | マルチコアの異常監視装置 |
CN100476694C (zh) | 2007-09-28 | 2009-04-08 | 中国科学院计算技术研究所 | 一种多核处理器及其变频装置和核间通信方法 |
US8046615B2 (en) | 2007-10-19 | 2011-10-25 | Denso Corporation | Microcomputer system with reduced power consumption |
US8024590B2 (en) | 2007-12-10 | 2011-09-20 | Intel Corporation | Predicting future power level states for processor cores |
KR100958303B1 (ko) | 2007-12-12 | 2010-05-19 | 한국전자통신연구원 | 멀티코어 시스템 환경에서 내부 코어 간 통신채널을 이용한 모듈 디바이스의 동적 적재 및 실행을 통한 부하 균등화 시스템 및 방법 |
US7962771B2 (en) | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US8615647B2 (en) | 2008-02-29 | 2013-12-24 | Intel Corporation | Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state |
US7910265B2 (en) | 2008-03-14 | 2011-03-22 | Infineon Technologies Ag | Reticle for use in a semiconductor lithographic system and method for modifying the same |
US8359487B2 (en) | 2008-03-19 | 2013-01-22 | Sony Corporation | System and method for effectively performing a clock adjustment procedure |
US20090307408A1 (en) | 2008-06-09 | 2009-12-10 | Rowan Nigel Naylor | Peer-to-Peer Embedded System Communication Method and Apparatus |
US7650488B2 (en) | 2008-06-18 | 2010-01-19 | Intel Corporation | Communication between processor core partitions with exclusive read or write to descriptor queues for shared memory space |
US7764132B2 (en) | 2008-07-30 | 2010-07-27 | International Business Machines Corporation | All digital frequency-locked loop circuit method for clock generation in multicore microprocessor systems |
US8112647B2 (en) | 2008-08-27 | 2012-02-07 | Globalfoundries Inc. | Protocol for power state determination and demotion |
US8103816B2 (en) | 2008-10-28 | 2012-01-24 | Intel Corporation | Technique for communicating interrupts in a computer system |
US8156275B2 (en) | 2009-05-13 | 2012-04-10 | Apple Inc. | Power managed lock optimization |
JP5187277B2 (ja) * | 2009-06-16 | 2013-04-24 | ソニー株式会社 | 情報処理装置、及びモード切り替え方法 |
US8239699B2 (en) | 2009-06-26 | 2012-08-07 | Intel Corporation | Method and apparatus for performing energy-efficient network packet processing in a multi processor core system |
US20100332877A1 (en) * | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
US8358651B1 (en) | 2009-09-21 | 2013-01-22 | Marvell International Ltd. | Switch device having a plurality of processing cores |
US8566836B2 (en) | 2009-11-13 | 2013-10-22 | Freescale Semiconductor, Inc. | Multi-core system on chip |
US8359436B2 (en) | 2009-12-18 | 2013-01-22 | Intel Corporation | Core snoop handling during performance state and power state transitions in a distributed caching agent |
US20110153982A1 (en) | 2009-12-21 | 2011-06-23 | Bbn Technologies Corp. | Systems and methods for collecting data from multiple core processors |
US20110153984A1 (en) | 2009-12-21 | 2011-06-23 | Andrew Wolfe | Dynamic voltage change for multi-core processing |
CN101901177B (zh) | 2010-01-22 | 2012-11-21 | 威盛电子股份有限公司 | 多核微处理器及其除错方法 |
US8195883B2 (en) | 2010-01-27 | 2012-06-05 | Oracle America, Inc. | Resource sharing to reduce implementation costs in a multicore processor |
US20110265090A1 (en) | 2010-04-22 | 2011-10-27 | Moyer William C | Multiple core data processor with usage monitoring |
US8751833B2 (en) | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
US8412971B2 (en) | 2010-05-11 | 2013-04-02 | Advanced Micro Devices, Inc. | Method and apparatus for cache control |
US8457920B2 (en) | 2010-05-28 | 2013-06-04 | International Business Machines Corporation | Performance improvement for a multi-chip system via kerf area interconnect |
US8935549B2 (en) | 2010-06-30 | 2015-01-13 | Via Technologies, Inc. | Microprocessor with multicore processor power credit management feature |
US8943334B2 (en) | 2010-09-23 | 2015-01-27 | Intel Corporation | Providing per core voltage and frequency control |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8930676B2 (en) | 2010-12-22 | 2015-01-06 | Via Technologies, Inc. | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8972707B2 (en) | 2010-12-22 | 2015-03-03 | Via Technologies, Inc. | Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
-
2011
- 2011-11-17 US US13/299,239 patent/US8972707B2/en active Active
- 2011-12-22 TW TW100147943A patent/TWI506559B/zh active
- 2011-12-22 CN CN201110436337.3A patent/CN102521002B/zh active Active
-
2014
- 2014-10-24 US US14/522,931 patent/US9367497B2/en active Active
-
2015
- 2015-12-15 US US14/970,354 patent/US10126793B2/en active Active
- 2015-12-28 US US14/980,194 patent/US10175732B2/en active Active
- 2015-12-28 US US14/980,209 patent/US9829945B2/en active Active
-
2018
- 2018-11-15 US US16/191,691 patent/US10409347B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100426159C (zh) * | 2005-09-06 | 2008-10-15 | 台达电子工业股份有限公司 | 具有双处理器的控制装置 |
CN101390067A (zh) * | 2006-02-28 | 2009-03-18 | 英特尔公司 | 增强众核处理器的可靠性 |
CN101324802A (zh) * | 2007-06-11 | 2008-12-17 | 联发科技股份有限公司 | 集成电路及其减少电源消耗的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20150046680A1 (en) | 2015-02-12 |
US10409347B2 (en) | 2019-09-10 |
US10175732B2 (en) | 2019-01-08 |
US20190107873A1 (en) | 2019-04-11 |
US10126793B2 (en) | 2018-11-13 |
US9829945B2 (en) | 2017-11-28 |
US20160209897A1 (en) | 2016-07-21 |
US20160179177A1 (en) | 2016-06-23 |
CN102521002A (zh) | 2012-06-27 |
US20120166764A1 (en) | 2012-06-28 |
TWI506559B (zh) | 2015-11-01 |
US20160209913A1 (en) | 2016-07-21 |
TW201234271A (en) | 2012-08-16 |
US9367497B2 (en) | 2016-06-14 |
US8972707B2 (en) | 2015-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102521002B (zh) | 可动态和选择性停用内核以及重新设定多内核微处理器 | |
CN102520912B (zh) | 多内核动态配置发现方法及其微处理器 | |
CN102521207B (zh) | 多内核微处理器的共享电源的分布式管理 | |
CN101320314B (zh) | 用于快速改变数据处理***的功率状态的方法和设备 | |
CN101901207B (zh) | 异构共享存储多处理机***的操作***及其工作方法 | |
TWI233545B (en) | Mechanism for processor power state aware distribution of lowest priority interrupts | |
CN103597449B (zh) | 操作***解耦的异构计算 | |
CN102163072B (zh) | 用于节能的基于软件的线程重映射 | |
CN103814342B (zh) | 多核心计算装置的动态睡眠 | |
EP2469377A2 (en) | Decentralized power management distributed among multiple processor cores | |
CN102981800A (zh) | 处理异构资源的地址转换和异常 | |
CN110532212A (zh) | 用于有效***组件管理的dvsec的***、方法和装置 | |
CN104615411A (zh) | 控制寄存器对应于异质指令集架构处理器 | |
CN103765409A (zh) | 有功率效率的处理器体系结构 | |
CN102077181A (zh) | 用于在多核处理器中和在某些共享存储器多处理器***中产生并输送处理器间中断的方法和*** | |
CN103207797A (zh) | 基于通用可扩展固件接口固件***的胶囊式定制更新方法 | |
CN1987793A (zh) | 用于动态激活处理器的方法和*** | |
CN104272256A (zh) | 任务处理装置 | |
CN101013415A (zh) | 用于多处理器阵列的线程感知分布式软件*** | |
CN107924219A (zh) | 遮蔽处理器的核的功率状态 | |
CN101625568A (zh) | 一种基于数据同步控制器的主控单元热备份***和实现方法 | |
TW201250459A (en) | Method of operating a heterogneous computer system | |
CN109564526A (zh) | 使用封装和线程提示信息的组合来控制处理器的性能状态 | |
US9092334B2 (en) | Method for shortening enumeration of tightly coupled USB device | |
JP2024515055A (ja) | シームレスに集積されたマイクロコントローラチップ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |