CN102520912B - 多内核动态配置发现方法及其微处理器 - Google Patents
多内核动态配置发现方法及其微处理器 Download PDFInfo
- Publication number
- CN102520912B CN102520912B CN201110435143.1A CN201110435143A CN102520912B CN 102520912 B CN102520912 B CN 102520912B CN 201110435143 A CN201110435143 A CN 201110435143A CN 102520912 B CN102520912 B CN 102520912B
- Authority
- CN
- China
- Prior art keywords
- kernel
- supvr
- microprocessor
- semi
- chip
- 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
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- 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/4401—Bootstrapping
- G06F9/4403—Processor initialisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Microcomputers (AREA)
- Multi Processors (AREA)
- Power Sources (AREA)
Abstract
多内核动态配置发现方法及其微处理器,不需依赖内核外逻辑或系统BIOS询问,此微处理器的内核具有重置微码。此微码会询问其他内核,和(或)由其他内核接收配置公开信息,并收集这些配置公开信息以确认此微处理器的复合内核配置信息。复合内核配置信息显示启动的内核数、辨识启动的内核、显示此多内核微处理器的一层级化协调系统,例如特定内核间传输或动作的内核结点图(nodal map)、辨识此系统内各个域层与域层管理者、和(或)辨识微处理器的各域层所分享的资源。此复合内核配置信息可用于微处理器的电力状态管理、重新配置与其他目的。
Description
【相关申请案的参考文献】
本申请案优先权的申请是根据美国专利临时申请案,案号:61/426,470,申请日:12/22/2010,名称为多内核内的旁路总线(MULTI-CORE INTERNALBYPASS BUS),该案整体皆纳入本案参考。
本申请案与下列同在申请中的美国专利申请案有关,都具有相同的申请日,每一申请案整体皆纳入本案参考。
技术领域
本发明涉及一种多内核微处理器,尤其涉及一种多内核微处理器的内核动态配置(dynamic configuration)。
背景技术
对一些传统的多内核处理器而言,制造者可通过烧断微处理器的各个内核上的熔丝(fuse,又称为“熔线”)以指定多内核微处理器中各个内核的配置,于是在静态上,各个内核可依据熔丝的数值来确认系统的多内核处理器中哪一个内核已被启动并能进行数据处理。虽然此种解决方法具有优点,不过内核上的熔丝一旦被烧断,即使多内核微处理器有由原本的第一种配置改变为第二种配置的需求时,此熔丝被烧断的内核可能会无法使用于多内核微处理器的第二种配置。此外,某些传统的系统则是通过系统的BIOS询问(query)内核且确认内核配置,并将配置讯息写入多内核微处理器的控制寄存器(control register),例如特定模块寄存器(Model Specific Registers,MSR)。虽然此解决方法具有优点,不过多内核微处理器的制造者并不总是能够控制系统BIOS的开发与发行。最后,多内核微处理器的各个内核也可能是制造上具有缺陷、或是在测试或操作中发生损坏。因此,找出一个可靠的方法来确认多内核微处理器的内核配置是亟待解决的问题。
发明内容
本发明之一目的是提供一具有一内核配置发现程序的微处理器,而不需依赖内核外的逻辑电路或通过系统BIOS的探询来确认内核配置。本发明的另一目的是提供一内核配置发现方法,此方法不需依赖内核外的逻辑电路或系统BIOS的探询,即可确认内核配置。在某些实施例中,此内核配置是指处理器中启动内核的数量与辨识信息。在某些实施例中,此内核配置也可指此多内核处理器的层级化协调系统,例如指定内核间传输或动作的内核结点图(nodal map)、和(或)各个域层(domain)与此层级化协调系统的域层管理者的辨识信息。在某些实施例中,内核配置也可用以确认由此微处理器的多个域层分享的资源,如电压源、时钟信号源、与快取。
在某些实施例中,至少一部分、或全部的内核通过配置发现微码用以发现微处理器的内核的配置。在某些实施例中,,此微码执行一配置发现程序,此程序可以是由上而下(亦即由根内核开始)、由下而上(亦即由各个终端内核开始)、或是折衷(例如采取管理者协调的架构,由各个管理者内核(master core)开始)。
在由上而下的配置发现程序中,根内核向各个从属亲属内核(subordinatekin core)询问其配置信息。如果有的话,各个从属亲属内核随后向其从属亲属内核询问其配置信息,如此循环下去,直到到达终端内核。各个从属亲属内核回复可用(applicable)的配置信息至询问他的内核,直到根内核由各个从属亲属内核获得配置公开讯息,或是其等待讯息的时间已超过预设时间。此根内核随后收集配置信息以确认整个微处理器的配置。在部分实施例中,根内核随后会重新将配置信息散布至其从属的亲属内核,而这些从属内核再散布给其从属的亲属内核,直到所有的内核都分享此配置信息。
在由下而上的配置发现程序中,各个终端内核传送一配置公开讯息至其最邻近的管理者内核。管理者内核在接收到来自其从属亲属内核的配置公开讯息、或是等待收讯的时间已过的情况下,各个管理者内核随即收集其所收到的讯息,并产生一复合(composite)配置公开讯息至其管理者内核(如果有此管理者内核的话)。此程序持续循环直到根内核接收到来自其他从属亲属内核的配置公开讯息、或是等待时间已过。此根内核随后收集所接收的配置信息以确认整个微处理器的配置。在部分实施例中,根内核随后会重新将配置信息散布至其从属的亲属内核,这些从属亲属内核再散布给其从属的亲属内核,直到所有的内核都分享此配置信息。
本发明亦提供一管理者调解的配置发现程序与相对应的微处理器。此微处理器具有多个半导体芯片,各个半导体芯片包含多个处理内核,各个芯片的其中一个处理内核被指定为管理者内核。各个管理者内核用以询问同一个芯片上的其他内核,以确认芯片上所启动的内核数量。在确认芯片上启动的内核数量后,管理者内核同时与其他芯片上的管理者内核互相协调,以确认微处理器中所启动的内核数量。
在某些实施例中,内含有整个处理器的复合配置信息的内核,会在各种不同环境下,在微处理器的操作过程使用其所发现的配置信息。在其中一个环境中,响应于使用者程序指令对于微处理器内核数的询问,各个内核提供所确认的微处理器中启动的内核数量作为此使用者程序指令的执行结果值。在另一个环境中,各个内核依据所发现的配置信息来进行多内核微处理器的电力状态管理。在另一个环境中,各个内核依据所发现的配置信息来同步由内核所改变的电力状态。在一实施例中,各个内核基于所发现的配置信息以辨识参与分享一电压源的内核,用以管理一共享电压源。在另一实施例中,各个内核基于所发现的配置信息以辨识参与分享一时钟信号源的内核,用以管理一共享时钟信号源。
在另一实施例中,在亲属内核未在一预设时间内回复管理者内核的询问、或提供管理者内核一预期配置公开讯息的情况下,管理者内核会认为此亲属内核并未启动。
在另一实施例中,各个管理者内核通过传送指出所在芯片上启动内核数量的讯息至其他各个芯片的管理者内核,并由其他各个芯片的管理者内核接收指出其他芯片上启动内核数量的讯息,以进行协调。
在另一实施例中,各个芯片具有内核间传输线。管理者内核可通过此内核间传输线询问同一个芯片的其他内核,以确认芯片上启动内核的数量,且管理者内核可通过芯片间传输线与其他各个芯片的管理者内核进行协调,以确认处理器中启动内核的数量。
本发明另一实施例是提供一利用管理者调解来动态确认多内核微处理器的配置方法。响应微处理器的一重置动作,各个芯片的管理者内核询问芯片上其他各个内核,以确认芯片上启动内核的数量。在确认芯片上启动的内核数量后,各个芯片管理者内核也与其他各个芯片的管理者内核进行协调,以确认处理器上所启动的内核数量。
附图说明
图1是本发明具有一多内核微处理器的计算机系统的方块示意图。
图2以方块示意图详细显示本发明图1的多内核其中之一。
图3是图1的多内核微处理器执行一动态配置处理的操作流程图。
【主要元件符号说明】
系统 100
芯片组 114
系统总线 116
多内核微处理器 102
双内核芯片 104
内核 106
内核间传输线 112
芯片间传输线 118
边带传输接触垫 108
边带传输引脚 P1,P2,P3,P4
启动指标(enable indicator) 252
微码 208
指令快取单元(instruction cache) 202
指令转译单元(instruction translator) 204
寄存器别名表(register alias table,RAT) 212
微顺序器(microsequencer) 206
保留站(reservation station) 214
执行单元 216
特别模块寄存器(model-specific register,MSR) 238
数据快取 222
指令引退单元 218
总线接口单元(bus interface unit,BIU) 224
锁相回路(phase-locked-loop,PLL) 226
内核时钟信号 242
开机服务处理指标 228
管理者指标 232
配置存储器 254
控制与状态寄存器(control and status register,CSR) 234,236
微码存储器 207
具体实施方式
本发明所提供的实施例针对多内核多处理器,使用于一具有高度扩展性的内核间配置发现程序。在某些实施例中,内核间配置发现程序的至少一部分通过连接各个内核的边带(sideband)通信线路进行。另外,在某些实施例中,内核间配置发现程序依据各个内核间的一可使用的阶层式协调系统进行。此外,在某些实施例中,此阶层式协调系统对应在此多内核多处理器的各个内核的物理上封装配置(layout),例如内核群集于芯片与芯片群集于封装体的配置。在某些实施例中,此阶层式协调系统不同于微处理器的物理上封装配置(layout)。
依此,在详述各个附图以说明本发明应用于内核间配置发现程序的各个实施例前,先将本发明所应用的基本概念介绍如下。
一、多层多核处理器
本文所称的多核处理器基本上是指一处理器具有多个已启动的实体内核(physical core)。各个实体内核用以依据一指令集结构(instruction setarchitecture)抓取(fetch)、解码(decode)、执行(execute)指令。一般而言,此多内核处理器通过一最终由各内核共享的系统总线(system bus)耦接至一芯片组,此芯片组提供通过外围总线对各式各样装置提供存取。在某些实施例中,此系统总线是一作为处理器与计算机系统的其他部分间的一外部接口(external interface)的前端总线(front-side bus)。在某些实施例中,此芯片组同时对一共享的主存储器与一共享的图形控制器(graphic controller)集中存取。
此多内核处理器的内核可以是封装于一个或多个具有多内核的芯片(die)内,此技术可参照随卷所附的12/22/2010提出的美国专利申请第61/426,470号申请案中标题为“Multi-Core Processor Internal Bypass Bus”的段落、以及其同时提出的正式申请案(以下称CNTR.2503)。如同这些参考数据所述,典型的芯片是一个半导体晶圆(wafer)切割出来的单一实体物件(physical entity),并且通常具有至少一组实体输入输出接触垫(I/O landing pad)。举例来说,部分双核芯片具有两组输入输出接触垫,分别对应至一个内核。其他双核芯片具有单一组输入输出接触垫由两个内核共享。部分四内核芯片具有两组输入输出接触垫,各组输入输出接触垫分别由两个内核共享。多内核配置是可能的。
此外,一个多内核处理器也可能具有一包覆有多个芯片的封装体(package)。“封装体”是一表面可供放置或连接有芯片的基板(substrate)。“封装体”可能提供单一组引脚以连接至一主机板(motherboard)与相关的处理器总线。在封装体的基板上具有导线图案(wire nets or traces)以连接芯片的接触垫与封装体由各芯片共用的引脚。
分层的设计也是可能的。举例来说,在封装体与位于下方的主机板之间可提供一个额外的层板(以下称为平台(platform)),而多个封装体被设置在此平台上。此平台可以采用多种配置方式。举例来说,类似于前述封装体,此平台可包含一个具有导线图案的基板,以连接各个封装体的引脚与此平台由各封装体共用的引脚。
利用前述概念,举例来说,一个多封装体处理器可将N2个封装体设置于一平台上,各个封装体可具有N1个芯片,各个芯片可具有N0个内核。数字N2、N1与N0大于或等于一,并且数字N2、N1与N0中至少一个大于或等于二。
二、内核间传输结构
如前述,部分实施例中,内核间配置发现程序的至少一部分通过连接各个内核的边带传输线路(sideband communication lines)进行。连接各个内核的边带导线(sideband wire),例如内核间传输线或是芯片间传输线,应用于发现处理器的配置。
举例来说,如同参考文件CNTR.2503所述,一个多内核多处理器可具有一多内核芯片。此多内核芯片的多个内核间具有一旁路总线(bypass bus)。旁路总线并不连接至芯片的实体接触垫。因此,旁路总线不会由双内核芯片向外传输信号。旁路总线同时可以提升内核间的信号质量,并且使各个内核可以与其他内核互相传输或协调(communicate or coordinate)而无需使用到系统总线。
本发明同时述及相较于参考数据CNTR.2503所提及的旁路总线较不具扩展性的内核间传输线,如随卷所附2010/12/22提出的美国专利申请第61/426,470号申请案中标题为“Reticle Set Modification to Produce Multi-Core Dies”的段落以及其同时提出的正式申请案(以下称CNTR.2528)。随卷所附2010/12/22提出的美国专利申请第61/426,470号申请案中标题为“DistributedManagement of a Shared Power Resource to Multi-Core Processor”的段落,以及其同时提出的正式申请案(以下称CNTR.2534),提及一种较不具扩展性的内核间传输线。内核间传输线所包含的导线数,可以小至启动配置发现动作所需的数量。内核间传输线也可以类似于下述芯片间传输线的方式,配置于各个内核间作为其接口。
此外,多内核多处理器可在封装体的各个芯片间提供有芯片间边带传输线,而其平台则在平台的各个封装体间提供有封装体间边带传输线。这些边带传输线类似于内核间边带传输线,都属于系统总线的外部的传输结构。利用封装基板的导线(wires or traces)所提供的多种芯片间与封装体边带传输线的配置,可参照随卷所附2010/12/22提出的美国专利申请第61/426,470号申请案中标题为“Decentralized Power Management Distributed Among MultiplePossible Cores”的段落以及其同时提出的正式申请案(以下称CNTR.2527)。
参考数据CNTR.2527提及芯片间传输线的多种不同配置。如参考数据CNTR.2527的第1、9、11与12图所示,参考数据CNTR.2527提及可启动各个芯片的管理者内核与位于同一个封装体的任何芯片的管理者内核,以支持管理者内核间点对点(peer to peer)协调模式的方式进行沟通的配置。相较之下,参考数据CNTR.2527的第14图显示芯片间传输线之一种层级化(hierarchical)配置。其中提供有三组芯片间传输线,第一组传输线连接芯片0与芯片1,第二组传输线连接芯片2与芯片3,第三组传输线连接芯片0与芯片2。
参考数据CNTR.2527亦提及各个芯片连接至芯片间传输线的多种配置。举例来说,如参考数据CNTR.2527的第1、9、11与21图所示,各个多内核芯片在系统总线接触垫之外,分别提供并使用四个边带传输接触垫以连接至其所在的封装体上的芯片间传输线。相较之下,如参考数据CNTR.2527的第12、14、15、16与22图所示,各个多内核芯片在系统总线接触垫之外,只使用二个或三个边带传输接触垫以连接至其所在的封装体上的芯片间传输线。
基本上,各个芯片在其系统总线接触垫外,为了连接至芯片间边带传输的目的,均具有至少一个边带传输输出垫与至少一个边带传输输入接触垫。部分实施例提供有额外的边带传输接触垫,作为额外的边带传输输入接触垫以支持更多样化的多内核实作、以及适应更多样化的内核间协调系统。在部分实施例中,具有芯片的封装体是提供相对应的引脚,同样以略过系统总线的方式,连接此封装体的芯片间传输线与其他封装体的相对应的芯片间传输线。
在部分实施例中,芯片间传输接触垫由芯片间传输接触垫所在的芯片内被指定的管理者内核所控制。在其他实施例中,芯片间传输接触垫的控制则可转交与(或是)重新指定给此芯片间传输接触垫所在的芯片的其他内核。
此外,参考数据亦提及各个芯片的内核间传输线的多种配置。举例来说,参考数据CNTR.2503提及一个四内核芯片在两组双内核架构间具有内核间传输线。另外,四内核芯片可在芯片的各组内核架构的内核间设置内核间传输线,并在此两组内核架构间设置另一组内核间传输线。在CNTR.2527的第16图所提及的另一实施例中,芯片的各个内核间具有内核间传输线。在又一实施例中,此四内核芯片可在第一与第二内核间,第二与第三内核间,第三与第四内核间,与第一与第四内核间设置内核间旁路总线,而不在第一与第三内核间或是第二与第四内核间设置内核间旁路总线。
三、层级化观念
给定的多内核微处理器的层级的复杂度与边带传输的配置会限制此微处理器的内核通过其边带传输线所能进行的协调程序,因此部分实施例使用层级化的协调系统以进行配置发现程序。对于具有大量内核的微处理器而言,给定的层级化协调系统可能过于复杂,因此在说明本申请第1至3图及其所使用的配置发现程序前,先对本申请所提及的多种层级化协调系统进行说明是有帮助的。
为了此目的,请参照参考文件CNTR.2527,其中第1,9,11,12,14,15,16,18,19,20,21与22图说明了利用层级化协调系统来组织并促进电力状态发现与管理程序的进行。
在此所称的层级化协调系统,是指内核被配置来与其他内核以一种至少部分是被限定、或架构成层级化的方式进行一定沟通与协调行为的系统,其不同于点对点协调系统的各个内核具有相同的权限,并能直接与任何其他内核协调以进行相关的沟通行为。举例来说,一个树状节点架构中,如果是各内核仅能与位于上层节点或下层节点的内核进行连结,以及在任两节点间仅具有单一个路径,则会构成一严谨的层级化协调系统。本文所称的层级化协调系统,除非有严格定义,不然都会涵盖较宽松的层级化协调系统。例如,一个系统允许其中至少一群内核采取点对点协调架构,但在至少两群内核间需采取层级化协调架构。
在一实施例中,层级化协调系统应用于具有多个封装体的微处理器的内核间的处理,各个封装体具有多个芯片,各个芯片具有多个内核。将各个层视为一个“域(domain)”是有帮助的。举例来说,双内核芯片可视为一个域具有此芯片的两个内核、双芯片封装体可视为一个域具有此封装体的两个芯片、双封装体平台可是为一个域具有此平台的两个封装体。将内核本身称为域也有帮助。“域”的观念在指涉至资源分享,例如快取存储器、电压源、或是时钟信号源等由同一个域内的各内核所分享但亦限于此域内,亦即不为域外的内核所分享时亦有帮助。当然,各个域的域深(domain depth)与组成者的数量与组成者的数量(例如,将一个芯片视为一个域,将封装体视为一个域,等等)可以依据内核的数量、内核的分层方式、与内核分享资源的方式,进行改变或缩放。
在各个域间不同类型的关联性进行命名也是有帮助的。本文中将多内核芯片中所有启动的实体内核视为此芯片的组成者(constituents)、以及其他内核的共同组成者(co-constituents)。多芯片封装体中所有启动的实体芯片被视为此封装体的组成者以及其他芯片的共同组成者。同样地,多封装体处理器中所有启动的封装体被视为此处理器的组成者以及其他封装体的共同组成者。此表达方式可扩展至和多内核处理器所提供的域深的层级数相同。基本上,各个非终端的域层(domain level)由一个或多个组成者所定义出来,各个组成者包含此层级化架构的次一域层。
在部分多内核处理器的实施例中,对各个多内核域(multi-core domain),例如各个芯片、各个封装体、各个平台等而言,其中一个并且只有一个内核被指定为此域的管理者(master),并赋予相应的看门(gate keeping)功能与协调角色。举例来说,如果有的话,各个多内核芯片中之一个内核会被指定为此芯片的芯片管理者(die master)、各个封装体中之一个内核会被指定为此封装体的封装体管理者(package master)、各个平台中之一个内核会被指定为此平台的平台管理者(platform master)等等。基本上,层次结构中最高层的域的管理者内核作为此多内核处理器的唯一的总线服务处理器(bus service processor)内核,只有此总线服务处理器内核被授权去协调此多内核处理器与芯片组间的指定种类的动作。值得注意的是,在此使用管理者的用语仅为便利起见,其他名称,例如“委派者(delegate)”也可应用来表达此功能角色。
在各个域的管理者内核与其他已启动的内核间,对于一定的预设动作,设定有其他关系以直接协调。在最低域层,例如芯片,多内核芯片的芯片管理者内核可称为此芯片中其他已启动但非管理者内核的“伙伴(pal)”。基本上,芯片的各个内核被描述为同一芯片上的其他内核的伙伴。不过,在不同的理解下,伙伴的指定行为限于多内核芯片的芯片管理者内核与其他内核间的主从关系(subordinate relationship)。如果在一个四内核芯片采取此主从关系的指定行为,此芯片的管理者内核将会有三个伙伴,不过,其他各个内核只会有一个伙伴,即管理者内核。
在下一层级的域,例如封装体,封装体管理者内核被描述为同一封装体的其他管理者内核的“同伴(buddy)”。基本上,封装体中的各个芯片管理者内核被描述为同一封装体内的其他芯片管理者内核的同伴。不过,在不同的理解下,同伴的指定行为限于封装体的封装体管理者内核与其他芯片管理者内核间的主从关系(subordinate relationship)。如果在一个四芯片封装体采取此主从关系的指定行为,此封装体管理者内核将会有三个同伴,不过,其他芯片管理者内核只会有一个同伴,即封装体管理者内核。在另一种理解下,如前述第11图所示,管理者内核被描述为同一个处理器的其他管理者内核的同伴,包括位于此处理器的不同封装体的管理者内核。
在下一层级的域,例如多内核处理器的平台,平台管理者内核(BSP)被描述为同一平台的其他封装体管理者内核的“朋友(chum)”。基本上,平台上的各个封装体管理者内核被描述为同一平台的其他封装体管理者内核的朋友。不过,在不同的理解下,朋友的指定行为限于平台的平台管理者内核与其他封装体管理者内核间的主从关系(subordinate relationship)。如果在一个四封装体平台采取此主从关系的指定行为,此平台管理者内核将会有三朋友,不过,其他封装体管理者内核只会有一个朋友,即平台管理者内核。
前述伙伴/同伴/朋友关系在此被定义为“同源(kinship)”关系。各个伙伴内核属于一个同源群体,各个同伴内核属于一个较高层级的同源群体,各个朋友内核属于一个更高层级的同源群体。换句话说,前述此层级化协调系统的各种不同的域定义出相对应的同源群体。例如:一或多个伙伴群体,同伴群体与朋友群体。此外,如果有的话,一个指定内核的各个伙伴内核、同伴内核与朋友内核可以更概括地描述为一个同源(kin)内核。
本文所使用的同源群体的概念与域的概念存在些许差异。如前述,一个域包含域内的所有内核。举例来说,封装体域包含封装体内的所有内核。相较之下,同源群体基本上仅包含相对应域内的选定的组合内核。举例来说,就封装体域而言,其定义有一相对应的同源群体,不过此同源群体仅包含封装体内的管理者内核(其中之一是封装体管理者内核),而非任何的伙伴内核。基本上,只有终端的多内核域,亦即非由其他域所组成者,所定义出相对应的同源群体会包含域内的所有内核。举例来说,双内核芯片会定义出一终端的双内核域,其相对应的同源群体包含此域内的两个内核。值得注意的是,将对于内核的描述视为对内核自己的域进行定义的理解亦是有帮助的。亦即,各个内核基本上包含其内部不与其他内核分享的资源,此资源可能被配置给不同的操作状态(operating states)。
在前述伙伴/同伴/朋友的层级架构中,各个不是管理者内核的内核都只是一个伙伴,并且属于由同一个芯片的内核所组成的同源群体。各个芯片管理者内核除了属于最低阶层的由同一个芯片的伙伴内核所组成的同源群体外,也属于由同一个封装体的同伴内核所组成的同源群体。各个封装体管理者内核除了属于最低阶层的由同一个芯片的伙伴内核所组成的同源群体外,也属于由同一个封装体的同伴内核所组成的同源群体,更属于由同一个平台的朋友内核所组成的同源群体。简言之,各个内核归属至W个同源群体,W等于此内核作为管理者内核的同源群体的数量加一。
为了进一步描述同源群体的层级架构的特征,任何给定内核的最接近(closest or most immediate)的同源群体对应在此内核所在的最低层级的域。举例来说,不论一指定内核被指定为多少个管理者,其最接近的同源群组包含与此内核位于同一个芯片上的其他伙伴内核。管理者内核也会具有一个次接近(second closet)的同源群体,此同源群体包括与此内核位于同一个封装体的其他同伴内核。封装体管理者内核会有一个次次接近(third closet)的同源群体。此同源群体包含此内核的其他朋友内核。
值得注意的是,对于一个多层次多内核处理器(即至少两个层次Nx具有多个组成者)而言,前述同源群体是半排他(semi-exclusive)的。也就是说,对这种处理器来说,并不存在一个给定的同源群体可以涵盖处理器的所有的内核。
前述同源群体的概念可以从各个同源群体的组成内核间的协调行为的不同模式作进一步的描述。在本文所称的“管理者调解(master-mediated)”的同源群体中,内核间的直接协调仅限于管理者内核与非管理者内核间的协调,非管理者内核间无法互相直接协调,只能通过管理者内核间接协调。相较之下,在“点对点合作(peer collaborative)”的同源群体中,任何两个内核都可以直接互相协调,而不需经由管理者内核的调解。值得注意的是,本文所称“管理者调解”与“点对点合作”的差异仅对于具有三个以上内核的同源群组才有意义。基本上,对于一定的预设行为,任何给定内核只会与其同源群体内的组成者或共同组成者进行协调,而对于任何其所在的管理者调解的同源群体而言,此内核只会与其能够找到的上级的共同组成者或下级的组成者进行协调。
从层级架构的节点与节点间的连结的角度来描述层级协调系统(hierarchical coordination system)也是有帮助的。本文的节点层级架构是指一个层级架构,其各个节点都是多内核处理器的唯一的一个内核。这些内核中的一个(例如总线服务处理器(BSP)内核)是根节点,并且在任两节点间具有一个尚未被切断的协调路径(在适当的情况下包含中间节点(intermediate node)。各个节点是″点对点连接(nodally connected)至其他节点的至少其中之一,但并不连接至所有其他节点,而且仅能针对需要应用此协调系统的指定(specifying,又称之为“特定”)动作,各个节点只能与点对点连接的内核进行协调。为了进一步区分点对点之间的连结,本文将管理者内核的从属点对点连结内核被描述为“组成者内核(constituent cores)”,其他的则是“从属亲属内核(subordinate kin cores)”。从属亲属内核不同于共同组成者内核,其是指点对点连接且从属在此内核的其他内核。进一步厘清其差异,一个内核点对点连接的共同组成者内核,包含其管理者内核与任何点对点连接且相同排序的内核,例如此内核所在的点对点合作同源群组内的其他内核。此外,在此是将任何不具有从属亲属内核的内核称为终端节点或终端内核。
到此,已通过将各个域与其相对应的内核配置的实体性差异进行描述,以说明层级化协调系统。例如,不同的域对应至各个适用的内核、芯片、封装体与平台的描述。举例来说,参考文件CNTR.2527的第1、9、12、16与22图,显示对应于封装体的内核配置的层级化协调系统。参考文件CNTR.2527的第22附图则是一个有趣的例子,图中显示一个八核的处理器2202具有非对称的封装体,其中一个封装体具有三个双核芯片,其他的封装体则具有单一个单核芯片。不过,为了让所封装的内核在实体性差异配置方式(physicallydistinct nested manner)取得一致,边带导线定义一相对应的三层的层级化协调系统,其中,封装体管理者的关系如同朋友(chums),芯片管理者的关系如同同伴(buddies),芯片内核的关系如同伙伴(pals)。
不过,依据内核间、芯片间、封装体间边带导线配置的不同,如果有的话,相较于处理器的内核封装所采取的实体配置方式,内核间的层级化协调系统可具有不同的深度与分层。参考文件CNTR.2527的第11、14、15与21图提出许多不同的例子,而参考文件CNTR.2527的第11图描述一个八内核处理器,此处理器具有二个封装体,各个封装体具有二个芯片,各个芯片具有二个内核。CNTR.2527的第11图的边带导线采取二层的层级化协调系统,其中,所有的管理者内核属于最高层次的同源群体,各个管理者内核同时各自属于一个最低层次的同源群体,而此同源群体包含管理者内核及其伙伴。参考文件CNTR.2527的第14图描述一个八内核处理器,此处理器具有四个双内核芯片封装于单一个封装体,而且第14图处理器的边带导线需要采取三层的层级化协调系统,以协调伙伴内核、同伴内核与朋友内核间的关系。参考文件CNTR.2527的第15图描述一个具有二个四内核芯片的处理器,各个芯片内的内核间导线需要采取二层的层级化协调系统,芯片间导线则是采取三层的层级化协调系统以协调各个芯片的管理者(亦即朋友内核间的关系)。参考文件CNTR.2527的第21图描述另一个八内核处理器,其与第22图的处理器相类似,皆具有二个非对称的封装体,其中之一具有三个双内核芯片,另一个具有一个双内核芯片。不过,与第11图的配置方式相类似,此处理器采用双层的层级化协调系统处理芯片间与封装体间边带导线的配置,而二个封装体内的管理者内核则属于同一个同源群体。
如同以上解释,具有不同深度与协调模型的层级化协调系统,可依据需求应用于多内核处理器的共享资源的分配,并与此多内核处理器的结构容量与限制取得一致。为了进一步说明,参考文件CNTR.2527的第16图显示一处理器具有充足的边带传输线,以在各个四内核芯片的所有内核间进行点对点合作的协调模型。不过,参考文件CNTR.2527的第17图则是显示在各个四内核芯片的所有内核间建立一个受限的管理者调解协调模型。此外,参考文件CNTR.2527的第15图显示一个多层次的分层协调架构,此架构具有二个伙伴同源群体与一个管理者同源群体,而且如有需要的话,只需使用较内核间导线总数为少的方式,即可在四内核处理器的内核间应用构筑此协调系统执行所需的动作架构。因为参考文件CNTR.2527的第16图的各个四内核芯片在各个内核间设置有边带导线,所以此芯片可采行所有的三种层级化协调系统。
基本上,不论多内核处理器的域、同源群体、与节点的本质与数量为何,各个域与各个相对应的同源群体中只有一个内核会被指定(specifying,又称之为“特定”)为此域与同源群体的管理者内核。域可能具有其组成者域,同样地,各个域与各个相对应的同源群体中只有一个内核会被指定为此域的管理者内核。此协调系统中位阶最高的内核也就是根节点(root node)。
四、实施例说明
参考图1描绘本发明所公开的计算机系统100的架构图,其包含一多内核处理器102。此计算机系统100参考文件CNTR.2527的细部结构图。
此系统100具有一单一芯片组114,其通过一系统总线116耦接至多内核微处理器102,此系统总线具有一总线时钟。此多内核微处理器102具有二个双内核芯片104,以芯片0与芯片1表示,这些芯片104装设于封装体的一基板上。
各个双内核芯片104各具有二个处理内核106,其中芯片0具有内核0与内核1、芯片1具有内核2与内核3,各个芯片104的二个内核106通过位于芯片104内部的内核间传输线112进行沟通。更进一步来说,此内核间传输线112使得芯片104内部的二个内核106得以互相中止与传输讯息以协调其间的多种发现与管理程序,包含微处理器的配置发现程序。
在本发明的一实施例中,此内核间传输线112包含一具有平行导线的总线。在一相关的实施例中,此内核间传输线112包含一类似于参考文件CNTR.2503所描述的旁路总线。在另一实施例中,与参考文件CNTR.2503与CNTR.2534的各种边带配置或是与参考文件CNTR.2572的芯片间传输线从各种不同的角度相比较,此内核间传输线112包含一个相对较小的内核间传输线组。
在关于图1的描述中,″伙伴″的用语是指位于同一个芯片104、且通过内核间边带传输线互相沟通的内核。因此,在图1所示的实施例中,内核0与内核1是伙伴,内核2与内核3是伙伴。
各个芯片104具有多个系统总线接触垫用以将芯片连接至系统总线;各个芯片104并具有多个额外的边带传输接触垫,用以将芯片连接至芯片间传输线118。进一步来说,各个芯片具有四个边带传输接触垫108分别连接至四个相对应的引脚。这些引脚标示为P1,P2,P3与P4。这四个边带传输接触垫108包括一个是输出接触垫OUT与三个输入接触垫IN1,IN2,IN3。在一实施例中,各个芯片104基于多内核微处理器的制作过程中通过烧断熔丝所指定的配置,来指定此四个接触垫108的其中之一为其输出接触垫OUT。
在图1中,封装体本身提供有相对应的多个边带传输引脚,分别标示为P1至P4。这些引脚耦接至芯片间传输线118。虽然对于封装体内的芯片间信号传输而言,这些引脚并非必要,但这些引脚的存在有助于对于芯片间传输线118上的信号进行外部测试,同时可以支持较大型的多封装体配置。
这些芯片间传输线118的配置如下。芯片0的输出接触垫OUT与芯片1的输入接触垫IN1通过同一个导线耦接至引脚P1;芯片1的输出接触垫OUT与芯片0的输入接触垫IN3通过同一个导线耦接至引脚P2;芯片0的输入接触垫IN2与芯片1的输入接触垫IN3通过同一个导线耦接至引脚P3;芯片0的输入接触垫IN1与芯片1的输入接触垫IN2通过同一个导线耦接至引脚P4。
各个芯片104并具有一被指定(specifying,又称之为“特定”)的管理者内核106。此管理者内核106控制各芯片的边带传输接触垫之间的信号沟通。在图1所示的实施例中,内核0是芯片0的管理者内核106,内核2是芯片1的管理者内核106。就图1而言,″同伴″的用语是指位于不同芯片104上,通过芯片间边带传输线互相沟通的管理者内核。因此,在图1的实施例中,内核0与内核2是同伴。
芯片间传输线118连接各个芯片104的管理者内核106以实现各芯片间多种发现与管理程序的沟通与协调。如同本文所述,这些发现与管理程序包括微处理器的配置的发现程序。进一步来说,此芯片间传输线118可以使不同芯片104上的管理者内核106去中断彼此以及传送信号给彼此,以分散多内核微处理器102的各个内核106间的协调与发现动作。
举例来说,当芯片0的管理者内核0想要与芯片1的管理者内核2沟通,芯片0的管理者内核0会由芯片0的输出接触垫OUT传送讯息至芯片1的输入接触垫IN1。同样地,当芯片1的管理者内核2想要与芯片0的管理者内核0沟通,芯片1的管理者内核2会通过芯片1的输出接触垫OUT传送讯息至芯片0的输入接触垫IN3。请参照参考文件CNTR.2527,就一个四内核的配置而言,图1中的所有接触垫与引脚并非都是必须的,其中部分接触垫与引脚可以被移除。不过,这些额外的接触垫与引脚可支持他种处理器配置,例如八内核的实施例。在部分处理器的配置中,各个输出接触垫108耦接其他芯片104的多个输入接触垫108。为了支持此种配置,本发明一实施例的管理者内核106在其通过输出接触垫108传输至芯片间传输线118的讯息中加入一辨识元(identifier)。此辨识元用以指出讯息所要传达的目标内核106。藉此,此讯息可通过广播方式传送至多个收讯内核106,各个内核106再去判断自己是否是该讯息所欲传达的对象。
虽然图1的实施例所示的多内核微处理器102具有四个实体内核106,不过,由于各个内核106分别具有一起动指标(enable indicator)252可选择性地烧断以决定是否使此内核106启动,系统100进行数据运算时实际所能使用的内核的数量可能少于其实体内核106的数量。因此,如本文所述,各个内核106的微码208用以执行动态配置发现程序,藉以确认哪一个实体内核已启动而能为系统100进行数据运算所使用。微码208可通过内核间传输线112与芯片间传输线118实现动态配置发现程序。
图2是一方块图详细显示本发明图1众多内核106其中之一的方块图。图2的内核106的详细说明可参照参考文件CNTR.2527的图2,以下将再额外多做叙述。
依据一实施例,内核106的微结构包括一超标量单元(superscalar,又称之为“超纯量单元”)、非循序执行管线(out-of-order execution pipeline)的功能单元;一个指令快取单元(instruction cache)202存放由系统存储器(未图示)撷取的指令;一个指令转译单元(instruction translator)204耦接至指令快取单元202接收指令,例如x86指令集架构的指令;一个寄存器别名表(register aliastable,RAT)212耦接至指令转译单元204与微顺序器(microsequencer)206以接收转译后的微指令(microinstructions),同时依据微指令产生相关讯息;保留站(reservation station)214耦接至寄存器别名表212以接收转译后的微指令与相关讯息;执行单元216耦接至保留站214以接收转译后的微指令并由转译后的微指令中取得运算元指令(operand instruction),此运算元可以来自内核106的寄存器,例如通用寄存器(general purpose register)与可读写的特别模块寄存器(model-specific register,MSR)238、以及来自耦接至执行单元216的数据快取222;一个指令引退单元218耦接至执行单元216以接收执行单元216执行指令所产出的结果指令,同时将此结果从排除内核106架构指挥中心(architecture state)予以引退的结果,此数据快取222耦接至一总线接口单元(bus interface unit,BIU)224;总线接口单元224作为图1的内核106与总线116间的接口;一个锁相回路(phase-locked-loop,PLL)226由总线116接收总线时钟信号,同时据以产生一内核时钟信号242至内核106的各个功能单元,此锁相回路226可以受控于执行单元216以进行包括取消(disable)在内的操作。
在图1的相关叙述中,各个芯片具有一个指定的管理者内核。此外,处理器可具有一被指定的开机服务处理器(boot service processor,BSP)内核,单独被授权来协调其与芯片组114间的指定动作。基于此,将指定内核指定为管理者与(或)开机服务处理器内核以及配合此指定行为的不同实施例设想如下。
在一实施例中,各个内核106具有可编程配置熔丝(programmableconfiguration fuse),芯片104的制造者可通过烧断部分的配置熔丝来指定究竟哪一个内核106作为此芯片104的管理者内核,也可烧断其他配置熔丝来将一指定内核106指定为开机服务处理器(BSP)。此外,芯片104的制造者可烧断额外的配置熔丝来将一指定辨识编号(identifying instance)指定给各个内核106,亦即此内核106是内核0、内核1、内核2或内核3。
在另一实施例中,任何给定内核依据其编号指定管理者。依据一实施例,偶数编号的内核106预设为各个芯片104的管理者内核。依据一相关实施例,内核0被指定为多内核微处理器的开机服务处理器。
在另一实施例中,一开始的管理者或开机服务处理器依预设值指定,例如:基于适用的配置熔丝的状态或是内核的编号(instance)。不过此指定可以被新的配置所覆盖。在另一个实施例中,管理者与开机服务处理器指定会动态地重设或暂时性搁置,以响应不同状况,例如所指定的管理者或开机服务处理内核是处于无效或是暂停状态。
请参照图2所示,执行单元216接收一开机服务处理指标228与一管理者指标232。开机服务处理指标228与管理者指标232分别用以指示是否内核106是芯片104的管理者内核与多内核处理器102的开机服务处理内核。如前述,开机服务处理指标228与管理者指标232可以包含可编程熔丝。在另一实施例中,开机服务处理指标228与管理者指标232存储于一指定模式寄存器238,此指定模式寄存器238起初存储有可编程熔丝值,但可通过软件写入指定模式寄存器238进行更新。
其次,内核106具有一启动指标252指出是否内核106已启动而能进行数据处理。此外,内核106具有配置存储器254用以存储多内核微处理器102的内核配置。在一实施例中,此配置存储器254包含寄存器。在另一实施例中,此配置存储器254包含小型的动态存取存储器(RAM)中的存储位置,例如美国专利第7827390号所公开的私有动态存取存储器(Private RAM)。
执行单元216也会读取与写入控制与状态寄存器(control and statusregister,CSR)234与236以与其他内核沟通。请参照参考文件CNTR.2527,内核106使用控制与状态寄存器236,并通过内核间传输线112与同一个芯片104的其他内核106沟通。内核106使用控制与状态寄存器234,并通过芯片间传输线118以及接触垫108与其他芯片104的其他内核沟通。
微顺序器206并具有一微码存储器207用以存储微码。各个处理内核106是对称的(symmetric),因其均具有相同的指令集架构并被用来执行包含前述指令集架构内的指令的使用者程序。为了便利说明起见,本文所称的“微码”是指由执行内核架构指令(architectural instruction of core)的内核106所执行的指令。亦即,任何存储于微码存储器107的微码,如果被执行的话,都是由他的原生(native)内核106所执行。
微码存储器207所存储的微码包含内部电力状态管理微码,可参考参考文件CNTR.2527的不同的实施例。微码存储器207所存储的微码并包含本文所提及的分散式配置发现微码(decentralized configuration discoverymicrocode)208。此外,这些微码208以下述图3的方法被使用,这些微码用以动态地确定多内核微处理器102的内核配置,并将此动态确认内核配置的讯息存储于一配置存储器254以供后续使用。在下述的一个实施例中,此分散式配置发现微码208由多内核微处理器102的一重置引脚的设置(assertion)所触发。此外,参考文件CNTR.2527所公开的内核的内部电力状态管理微码,通过执行配置发现微码208所发现并存储的配置,来对于电力状态进行管理。
配置发现微码208有助于分散式内核配置发现程序的进行因通过分散式内核配置发现程序,即可省却主动式非内核逻辑装置的使用。多内核微处理器102在内核106之外,最好可包含一附属(adjunt)或服务处理器(未图示),此处理器所具有的指令集架构与内核106不同。不过,在本发明中,内核106本身即可响应重置设置(reset assertion)执行分散式内核配置发现程序,而不需使用其他处理器或其他非内核逻辑装置。相较于其他使用专用硬件来处理各个内核的电力管理,这样的处理方式有助于提升扩充性,同时在设定上也有好处,在特性的提升与芯片面积的缩减等亦有改善。此外,在支持内核启动与关闭程序和(或)层级化协调系统的内核重配置与可用域的指定程序的实施例中,此配置发现微码被复制给各个内核106。
图3是一流程图,其显示本发明图1的多内核微处理器102进行动态配置发现程序的一实施例。此程序始在步骤302。
如步骤302所示,此多内核微处理器102被重置。在一实施例中,此重置行为起因于多内核微处理器102的重置引脚的设置。此重置设置可通过系统100,例如包含有多内核微处理器102的主机板,来执行。此外,在供电给多内核微处理器102后,重置引脚也可能发出设置。在处理器被重置后,各个内核106开始执行微码208的重置例程(reset routine)。
进行到步骤304,此重置微码208参与分散式重置发现程序。在一个由上而下的实施例中,此重置微码208通过读取相关的熔丝指标228或是指定模式寄存器(MSR)238,确认是否此原生内核(native core)是一个开机服务处理器(BSP)或根内核(root core)。前述原生内核即此重置微码运作所在的内核。如果是此原生内核是开机服务处理器或根内核,而且如果有从属亲属(kin)内核,例如同一个封装体的同伙内核或是同一个芯片的伙伴内核时,随即传送一配置发现请求至从属亲属内核。在一相关的由管理者出发(master-initiated)的实施例中,此重置微码208通过读取相关的熔丝指标232或指定模式寄存器(MSR)238,以判断是否此原生内核是一管理者内核106。如果是,随即传送一配置发现请求至从属伙伴内核,诸如位于同一个芯片104上的伙伴内核(subordinate)106。就一指定实施例而言,芯片管理者内核可以通过一内核间导线传送一配置发现请求至其伙伴内核,以询问该伙伴内核是否存在。
在另一个由下而上的实施例中,重置微码208检测原生内核是否是一终端内核(亦即没有被指定为任何类型的管理者内核),如果是,随即传送内含有此原生内核相关配置信息的讯息至管理者内核。无论是由下而上、管理者出发或是由下而上的实施例,重置微码208可通过边带传输线传送配置发现请求至从属亲属内核106,和(或)接收来自从属亲属内核106的配置公开讯息,这些边带传输线可以是内核间传输线112或是芯片间传输线118。
本发明也可使用不同的配置公开讯息。在一些实施例中,此讯息可以包含此内核是否已启动;此内核所具有的管理者辨识码,如果有的话还包含此内核所在的域级与(或)其亲属群体、相对应的域级以及其亲属群体的内核数量、显示内核与其他从属内核的节点层级关系的匹配或高第数字(number)或其集合;和(或)由各个内核域所分享的资源的识别数据,例如电压源、时钟信号源与快取的识别数据。
进行到步骤306,重置微码208会由从属亲属内核106接收配置公开讯息,或是静待讯息等待时间走完。
举例来说,此芯片104的管理者内核106在步骤304传送一发现配置请求至其他伙伴内核106后,随及等待接收其响应。如果是伙伴内核106在一预设时间内,没有响应其请求,此管理者内核106即假定此伙伴内核没有启动或是因为某些原因无法运作。此外,此重置微码208亦对此伙伴内核106是否已启动进行记录。另外,此微处理器的非终端内核106会等待接收来自其从属亲属内核的配置公开讯息。在一预设时间后,此非终端内核106会假定已接收到所有已启动的从属亲属内核的讯息,其他从属亲属内核则会被认为是未启动或是因为某些原因无法运作。
在每个芯片104具有多于两个内核106的一个实施例中,管理者内核的重置微码208在步骤304中传送一发现请求讯息至其从属亲属内核106。各个从属亲属内核不是接收到一响应讯息,就是如步骤306所示检测到超时的情形。在各个芯片104仅具有单一内核106的实施例中,管理者内核106的重置微码208在步骤304并不传送讯息、接收响应讯息、或是如步骤306检测是否超时。并且,一旦重置微码208于下述步骤308传送讯息,此讯息将指出管理者内核106所在的芯片104上的内核106数为一。以下进行到步骤308。
在步骤308中,位于一工作域(applicable domain)的管理者内核106的重置微码208,例如芯片104的管理者内核106,整合步骤306所取得的讯息,以确认域内内核106的多个配置数据。在一实施例中,此管理者内核在具有高层管理者内核的情况下,传送一相关的配置公开讯息至此高层管理者内核,如果没有,此管理者内核如步骤314所示存储此配置数据。在一更为分散的配置公开实施例中,管理者内核106传送一复合配置公开讯息至各个亲属内核。举例来说,芯片管理者内核106可通过芯片间传输线118传送讯息至其他芯片104上的管理者内核106的同伴(buddy)内核。此讯息至少通知其同伴内核,管理者内核的存在以及管理者内核所在域(例如管理者内核所在芯片)的内核数。此讯息还可包含管理者内核收集到的其他配置信息,例如此内核的其他管理者凭证、此内核所在的域级与(或)亲属群体、此域级与(或)亲属群体内的内核数、显示内核与其他从属内核的节点层级关系的匹配或高第数字(number)或其集合、和(或)由各个内核域所分享的资源的识别数据,例如电压源、时钟信号源与快取的识别数据。
在一实施例中,管理者内核的复合配置公开询息如步骤306所示,由一较高域级的管理者内核所接收。此较高域级的管理者内核在执行步骤308之前,在一预设时间限制内持续由其他内核搜集其从属亲属内核的配置公开讯息。此实施例重复步骤308与步骤306的动作,直到根内核或开机服务处理内核106收集所有可取得的配置信息、或是等待时间终了,根内核或开机服务处理内核106的重置微码208跳到步骤314。
以下进行到步骤312。在一实施例中,在步骤308中传送配置公开讯息的管理者内核106的重置微码208,相对应地会通过芯片间传输线118接收到来自其同伴内核106在步骤308所传送的配置公开信息,此讯息至少通知管理者内核106其同伴内核106的存在、以及其同伴内核106所在的芯片上的内核106数。亦即,此原生内核106在步骤312接收其同伴内核106在步骤308所发出的讯息。类似在步骤306所描述的方式,此重置微码208在未由同伴内核106接收到响应讯息的情况下,可检测是否超时。如果是,此微码就会假定此同伴内核106未启动或是基于某些原因无法运作。
在另一实施例中,步骤304至308最好是在重置微码208例程的早期进行。也就是说,当内核106依步骤302被重置,重置微码208随即执行一最小量的内核起始化程序,然后再进行步骤304至308的动作,然后再执行其他内核106起始化所必须的功能,例如自我测试、快取配置、处理器状态起始化,以使内核准备完成以开始撷取及执行使用者程序指令(例如系统固件/软件指令),然后,才会执行步骤312与314。前述流程可尽量给予其他核域的管理者内核106充分的时间来进行步骤304至308,尤其是,当同伴内核106依步骤308传送讯息至原生内核106,此原生内核106依步骤312接收到响应讯息。此过程详述如下。
就一具有超过二个芯片104的多内核微处理器102而言,管理者内核106的重置微码208依步骤308传送一讯息至多内核微处理器102的各个芯片104上的各个同伴内核(buddy cores)106。这些同伴内核106不是接收到一响应讯息,就是如步骤312检测到超时。另外,如前述,此重置微码208也可如步骤308只向管理者内核106中的管理者(即开机服务处理内核)传送讯息。
接下来到步骤314,其中重置微码208收集步骤306至312所取得的信息,并确认此多内核微处理器102的完整的配置。在一管理者调解实施例中,各个芯片104的管理者内核106会确认此多内核微处理器102的配置。在使用管理者调解模式的实施例中,每个芯片104的管理者内核106会确认多内核微处理器102的配置。在由上而下与由下而上的实施例中,起初仅有根内核106或是开机服务处理内核106确认其最终配置。不过,在其他实施例中,此配置信息随后会分散至各个从属亲属内核,至到所有内核都取得此最终配置的一个副本。
接续步骤314,此重置微码208存储配置信息至图2的配置存储器254内。在一实施例中,此存储于配置存储器254的配置信息包含一个表单,此表单具有二维的位元(bit,也称之为“位”)阵列。此阵列的各列对应于多内核微处理器102的不同芯片104,各行对应于所在列的芯片104内的不同内核106,位元值则显示此内核106已启动或失效。在另一实施例中,此存储于配置存储器254的配置信息具有一N维数据结构。此数据结构包含一个N维的位元阵列。其中,各维对应至此多内核微处理器102的不同域,位元值则是显示此内核106已启动或失效。在其他实施例中,重置微码208同时将指定哪一个内核106为管理者内核、哪些内核属在此原生内核的亲属群体、显示内核与其他从属内核的节点层级关系的匹配或高第数字(number)或其集合、和(或)由各个内核域所分享的资源,例如电压源、时钟信号源与快取,的信息存储至配置存储器254。
接下来到步骤316,内核106利用在步骤314存储的讯息来执行许多功能。举例来说,在一实施例中,此多内核微处理器102大致遵守x86或IA-32指令集架构,而具有一CPUID指令以及依据此CPUID指令所响应与此多内核微处理器102相关的特征信息,这些特征信息包括依据步骤314实际收集到的此多内核微处理器102的处理内核106的数量。
在另一个例子中,内核106使用步骤314所存储的信息来协调指定电力状态管理功能,例如关于参考文件CNTR.2527与CNTR.2534所提及的C状态、P状态、VID等级与时钟信号频率的实施。
在另一个例子中,内核106使用步骤314所存储的信息可用以动态且选择性地使内核失效。此可参照随卷所附2010/12/22提出的美国专利申请第61/426,470号申请案中标题为“Dynamic and Selective Core Disablement in aMulti-Core Processor”的段落以及其同时提出的正式申请案(以下称CNTR.2536)。
在参考文件CNTR.2536提及的另一个例子中,内核106使用步骤314所存储的信息以静态地(例如BIOS设定)或动态地(亦即在执行中)重新配置各内核所使用的层级化协调系统、指定其他域层的管理者、和(或)依据不同的预设环境指定暂时性的域层管理者,例如检测到过热内核、过载内核、内核错误(fault)或内核失效(failure)。
在另一个例子里,内核106使用由步骤314所取得的信息来进行电力管理功能,例如随卷所附的2010/6/10提出的美国专利申请案第13/157,436号(即参考文件CNTR.2517)提及的多核电力可信度特征“a multi-core powercredit feature”。最后进入到步骤316。
就一个不具备本文所述的动态配置发现方法的微处理器而言,微处理器的制造者烧断内核上的熔丝以指定此多内核微处理器的各个内核的配置,因此,可通过熔丝值静态地确认此多内核微处理器的哪一个内核已启动以执行系统的数据处理。虽然此种解决方法有其优点,不过一个主要的缺点,在于一旦内核的熔丝被烧断,如果有改变处理器配置的需求,此内核可能就无法由原本的第一种多内核处理器配置改变至不同的第二种多内核处理器配置。此外,其他可能的解决方案是让系统固件,例如BIOS,询问内核以确认内核配置,同时将配置信息写入多内核微处理器的控制寄存器,例如指定模式寄存器(MSR)。虽然此解决方案亦有优点,但是其有一主要缺点在于,多内核微处理器的制造者并不总是能够控制系统固件的开发与发布。因此,本文所公开的动态配置方法针对前述问题提出解决途径。本发明的动态配置方法的另一个优点在于,即使发生某内核或某芯片失效的情形,仍能使系统正常运作。
虽然前述实施例依据图1的四内核微处理器102进行说明,不过,本发明亦涵盖其他多内核微处理器的配置,如参考文件CNTR.2527的第9,14,15,16与19图所示,只要这些配置可采行图3所示的动态配置发现程序。
在本发明的又一实施例中,此内核106在各方面都不同于图2的实施例,其在本发明所公开的动态配置发现程序中采取或增加(instead or addition)一高度平行架构。例如图形处理单元(GPU)所使用的架构。
然而以上所述仅为本发明的优选实施例而已,当不能以此限定本发明实施的范围,即大凡依本发明权利要求书及发明说明内容所作的简单的等效变化与修饰,皆仍属本发明专利涵盖的范围内。例如,软件可致能本发明实施例所述的装置与方法的功能、组建(fabrication)、塑造(modeling)、模拟、描述(description)、和/或测试,亦可通过一般编程语言(C、C++)、硬件描述语言(Hardware Description Languages,HDL)(包括Verilog HDL、VHDL等等)、或其他可利用的编程语言来完成。此软件可配置在任何已知的计算机可使用媒介,例如磁带、半导体、磁盘,或是光盘(例如CD-ROM、DVD-ROM等等)、互联网、有线、无线、或其他通信媒介的传输方式之中。本发明所述的装置与方法实施例可被包括于半导体知识产权内核,例如微处理器内核(以HDL来实现),并转换成集成电路产品的硬件。另外本发明的任一实施例或申请专利范围不须达成本发明所公开的全部目的或优点或特点。此外,摘要部分和标题仅是用来辅助专利文件搜寻之用,并非用来限制本发明的权利范围。
Claims (24)
1.一种微处理器,包括:
多个半导体芯片,各该半导体芯片(die)包括多个处理内核(processingcore),各该半导体芯片的这些处理内核的其中之一被指定为一管理者内核(master core),各该管理者内核用以:
响应于该微处理器的一重置(reset)动作,与该管理者内核所在的该半导体芯片上的其他处理内核互相协调以确认该半导体芯片上启动内核的数量;以及
在确定该半导体芯片上启动内核的数量后,与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量,
其中,各该半导体芯片具有至少一边带传输输出接触垫与至少一边带传输输入接触垫,且各该半导体芯片的该管理者内核控制各该半导体芯片的上述边带传输输出接触垫及边带传输输入接触垫之间的信号沟通,以实现各该半导体芯片之间的相互合作。
2.如权利要求1所述的微处理器,其中各该管理者内核在该微处理器的操作过程,运用所确认的该微处理器上启动内核的数量。
3.如权利要求2所述的微处理器,其中各该管理者内核在该微处理器的操作过程中,对于该所确认的该微处理器上启动内核的数量的运用,是响应于一使用者程序指令(user program instruction)对该微处理器的内核数量的要求(request),提供该所确认的该微处理器上启动内核的数量作为一结果值。
4.如权利要求3所述的微处理器,其中各该管理者内核在该微处理器的操作过程中,对于该所确认的该微处理器上启动内核的数量的运用,依据该所确认的该微处理器上启动内核的数量进行该微处理器的电力管理。
5.如权利要求4所述的微处理器,其中各该管理者内核基于该所确认的该微处理器上启动内核的数量,同步各该内核的电力状态变化,以对该微处理器进行电力管理。
6.如权利要求4所述的微处理器,其中各该管理者内核基于该所确认的该微处理器上启动内核的数量,管理一分享电压源,以对该微处理器进行电力管理。
7.如权利要求4所述的微处理器,其中各该管理者内核基于该所确认的该微处理器上启动内核的数量,管理一分享时钟信号源(clock source),以对该微处理器进行电力管理。
8.如权利要求1所述的微处理器,其中各该管理者内核协调与其所在的该半导体芯片上的各该其他处理内核互相协调以确认该半导体芯片上的启动内核的数量,通过判断各该其他处理内核是否在一预设时间内响应该管理者内核所发出的一讯息,以判断该其他处理内核是否已启动。
9.如权利要求1所述的微处理器,其中该管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量,通过:
传送一讯息至其他各该半导体芯片的管理者内核,该讯息是指出该管理者内核所在的该半导体芯片的启动内核的数量;以及
由其他各该半导体芯片的管理者内核接收一讯息,该讯息是指出相应的其他半导体芯片的启动内核的数量。
10.如权利要求9所述的微处理器,其中各该管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量,通过判断各该其他管理者内核是否在一预设时间内响应该管理者内核所发出的一讯息,以判断相应的其他管理者内核是否已启动。
11.如权利要求1所述的微处理器,其中各该半导体芯片具有多个内核间连线供该管理者内核与该半导体芯片上的其他内核互相协调以确认该半导体芯片上的启动内核的数量,该微处理器并具有多个芯片间连线供该管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量。
12.如权利要求1所述的微处理器,其中各该半导体芯片的该管理者内核的微码(microcode)用以与该半导体芯片上的其他内核互相协调以确认该半导体芯片上的启动内核的数量,并用以与其他半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量。
13.一种内核配置发现方法,用以确认一多内核微处理器的配置(configuration),该多内核微处理器具有多个半导体芯片,各该半导体芯片上具有多个处理内核,该方法包括:
响应于该微处理器的一重置(reset)动作,各该半导体芯片的一管理者内核与该管理者内核所在的该半导体芯片上的其他处理内核互相协调以确认该半导体芯片上的启动内核的数量;以及
在确定该半导体芯片上的启动内核的数量后,各该半导体芯片的管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量,
其中,各该半导体芯片具有至少一边带传输输出接触垫与至少一边带传输输入接触垫,且各该半导体芯片的该管理者内核控制各该半导体芯片的上述边带传输输出接触垫及边带传输输入接触垫之间的信号沟通,以实现各该半导体芯片之间的相互合作。
14.如权利要求13所述的方法,还包括:
在该微处理器的操作过程中,运用所确认的该微处理器上启动内核的数量。
15.如权利要求14所述的方法,其中在该微处理器的操作过程中运用该所确认的该微处理器上启动内核的数量的步骤,包括响应于一使用者程序指令(user program instruction)对该微处理器的内核数量的要求(request),提供该所确认的该微处理器上启动内核的数量作为一结果值。
16.如权利要求15所述的方法,其中在该微处理器的操作过程中运用该所确认的该微处理器上启动内核的数量的步骤包括,依据该所确认的该微处理器上启动内核的数量进行该微处理器的电力管理。
17.如权利要求16所述的方法,其中依据该所确认的该微处理器上启动内核的数量进行该微处理器的电力管理的步骤,包括同步各该内核的电力状态变化。
18.如权利要求16所述的方法,其中依据该所确认的该微处理器上启动内核的数量进行该微处理器的电力管理的步骤,包括管理一分享电压源。
19.如权利要求16所述的方法,其中依据该所确认的该微处理器上启动内核的数量进行该微处理器的电力管理的步骤,包括管理一分享时钟信号源(clock source)。
20.如权利要求13所述的方法,其中通过与其所在的该半导体芯片上的各该其他处理内核互相协调以确认该半导体芯片上的启动内核的数量的步骤,通过判断各该其他处理内核是否在一预设时间内响应该管理者内核所发出的一讯息,以判断该其他处理内核是否已启动。
21.如权利要求13所述的方法,其中通过与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量的步骤包括:
各该半导体芯片的该管理者内核传送一讯息至其他各该半导体芯片的管理者内核,该讯息是指出该管理者内核所在的该半导体芯片的启动内核的数量;以及
各该半导体芯片的该管理者内核由其他各该半导体芯片的管理者内核接收一讯息,该讯息是指出相应的其他半导体芯片的启动内核的数量。
22.如权利要求21所述的方法,其中各该管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量的步骤,通过判断各该其他管理者内核是否在一预设时间内响应该管理者内核所发出的一讯息,以判断相应的其他管理者内核是否已启动。
23.如权利要求13所述的方法,其中各该半导体芯片具有多个内核间连线供该管理者内核与该半导体芯片上的其他内核互相协调以确认该半导体芯片上的启动内核的数量,该多内核微处理器并具有多个芯片间连线供该管理者内核与其他各该半导体芯片的管理者内核互相协调以确认该微处理器上启动内核的数量。
24.如权利要求13所述的方法,其中,各该半导体芯片的该管理者内核的微码(microcode)用以与该半导体芯片上的其他内核互相协调以确认该半导体芯片上的启动内核的数量,并用以与其他半导体芯片的管理者内核互相合作以确认该微处理器上启动内核的数量。
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,207 US8930676B2 (en) | 2010-12-22 | 2011-11-17 | Master core discovering enabled cores in microprocessor comprising plural multi-core dies |
US13/299,207 | 2011-11-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520912A CN102520912A (zh) | 2012-06-27 |
CN102520912B true CN102520912B (zh) | 2015-01-07 |
Family
ID=46291855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110435143.1A Active CN102520912B (zh) | 2010-12-22 | 2011-12-22 | 多内核动态配置发现方法及其微处理器 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8930676B2 (zh) |
CN (1) | CN102520912B (zh) |
TW (1) | TWI460581B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853809B2 (en) | 2016-01-15 | 2023-12-26 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
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 |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US9391047B2 (en) * | 2012-04-20 | 2016-07-12 | International Business Machines Corporation | 3-D stacked and aligned processors forming a logical processor with power modes controlled by respective set of configuration parameters |
US9569402B2 (en) | 2012-04-20 | 2017-02-14 | International Business Machines Corporation | 3-D stacked multiprocessor structure with vertically aligned identical layout operating processors in independent mode or in sharing mode running faster components |
FR2994001B1 (fr) * | 2012-07-30 | 2015-05-29 | Airbus Operations Sas | Procede de surveillance de l'execution coordonnee de taches sequencees par une carte electronique comportant au moins deux processeurs synchronises sur deux horloges differentes |
US9223715B2 (en) * | 2013-08-21 | 2015-12-29 | Via Alliance Semiconductor Co., Ltd. | Microprocessor mechanism for decompression of cache correction data |
US9348690B2 (en) | 2013-08-21 | 2016-05-24 | Via Alliance Semiconductor Co., Ltd. | Correctable configuration data compression and decompression system |
US20150054543A1 (en) * | 2013-08-21 | 2015-02-26 | Via Technologies, Inc. | Apparatus and method for rapid fuse bank access in a multi-core processor |
US9575778B2 (en) * | 2014-05-20 | 2017-02-21 | Via Alliance Semiconductor Co., Ltd. | Dynamically configurable system based on cloud-collaborative experimentation |
US9665490B2 (en) | 2014-05-22 | 2017-05-30 | Via Alliance Semiconductor Co., Ltd. | Apparatus and method for repairing cache arrays in a multi-core microprocessor |
US9524241B2 (en) | 2014-05-22 | 2016-12-20 | Via Alliance Semiconductor Co., Ltd. | Multi-core microprocessor power gating cache restoral mechanism |
US9395802B2 (en) | 2014-05-22 | 2016-07-19 | Via Alliance Semiconductor Co., Ltd. | Multi-core data array power gating restoral mechanism |
US9606933B2 (en) | 2014-05-22 | 2017-03-28 | Via Alliance Semiconductor Co., Ltd. | Multi-core apparatus and method for restoring data arrays following a power gating event |
US9678808B2 (en) * | 2014-12-18 | 2017-06-13 | Intel Corporation | Method and apparatus for write-only inter-processor reset synchronization |
US9886193B2 (en) | 2015-05-15 | 2018-02-06 | International Business Machines Corporation | Architecture and implementation of cortical system, and fabricating an architecture using 3D wafer scale integration |
TWI576852B (zh) * | 2015-06-30 | 2017-04-01 | 宏碁股份有限公司 | 電子裝置及其固態硬碟的電源管理方法 |
CN105094283A (zh) * | 2015-07-23 | 2015-11-25 | 上海新储集成电路有限公司 | 一种超低功耗且高性能的微处理器及其运行方法 |
US10372493B2 (en) * | 2015-12-22 | 2019-08-06 | Intel Corporation | Thread and/or virtual machine scheduling for cores with diverse capabilities |
CN108763011B (zh) * | 2018-03-27 | 2021-09-07 | 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) | SoC芯片核数检测方法、装置、系统及存储介质 |
CN110716756B (zh) * | 2019-10-15 | 2023-03-14 | 上海兆芯集成电路有限公司 | 多晶粒的多核计算机平台及其开机方法 |
US20210216377A1 (en) * | 2021-03-26 | 2021-07-15 | Intel Corporation | Methods and apparatus for power sharing between discrete processors |
WO2024049405A1 (en) * | 2022-08-29 | 2024-03-07 | Zeku, Inc. | Apparatus and method for two-dimensional scheduling of downlink layer 1 operations |
US20240232388A1 (en) * | 2023-01-08 | 2024-07-11 | Qualcomm Incorporated | Inline cryptographic engine for storage controllers |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010655A (zh) * | 2004-09-03 | 2007-08-01 | 英特尔公司 | 协调多核处理器中的空闲状态转换 |
CN101111814A (zh) * | 2004-12-30 | 2008-01-23 | 英特尔公司 | 多核架构中的工作点管理 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
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 |
GB2290891B (en) * | 1994-06-29 | 1999-02-17 | Mitsubishi Electric Corp | Multiprocessor system |
JP3315012B2 (ja) * | 1994-09-22 | 2002-08-19 | 大日本印刷株式会社 | 情報記録方法 |
US6249893B1 (en) * | 1998-10-30 | 2001-06-19 | Advantest Corp. | Method and structure for testing embedded cores based system-on-a-chip |
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 |
TWI261165B (en) * | 2002-02-08 | 2006-09-01 | Via Tech Inc | Memory module storing therein boot codes and method and device for locating same |
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 |
JP4892683B2 (ja) | 2003-03-12 | 2012-03-07 | エスティー‐エリクソン、ソシエテ、アノニム | データを転送するためのデータ処理の装置および方法 |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
GB2409303B (en) | 2003-12-18 | 2006-10-18 | Advanced Risc Mach Ltd | Inter-processor communication mechanism |
US7734797B2 (en) | 2004-03-29 | 2010-06-08 | Marvell International Ltd. | Inter-processor communication link with manageability port |
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 | 株式会社デンソー | マイクロコンピュータ |
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 |
WO2007099181A1 (es) | 2006-02-28 | 2007-09-07 | Intel Corporation | Mejora de la fiabilidad de un procesador de muchos nucleos |
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 |
JP4945224B2 (ja) | 2006-11-30 | 2012-06-06 | 株式会社東芝 | コントローラ、情報処理装置、および供給電圧制御方法 |
KR101209252B1 (ko) * | 2007-02-02 | 2012-12-06 | 삼성전자주식회사 | 전자기기의 부팅 방법 및 부팅 인증 방법 |
EP2003534A3 (en) | 2007-06-11 | 2009-02-18 | MediaTek Inc. | Method of and apparatus for reducing power consumption within an integrated circuit. |
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 |
US7962771B2 (en) | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
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 |
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 |
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 |
EP2340631A1 (en) * | 2008-11-10 | 2011-07-06 | William V. Oxford | Method and system for controling code execution on a computing device using recursive security protocol |
US8358651B1 (en) | 2009-09-21 | 2013-01-22 | Marvell International Ltd. | Switch device having a plurality of processing cores |
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 |
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 |
US8457920B2 (en) | 2010-05-28 | 2013-06-04 | International Business Machines Corporation | Performance improvement for a multi-chip system via kerf area interconnect |
US8615672B2 (en) | 2010-06-30 | 2013-12-24 | Via Technologies, Inc. | Multicore processor power credit management to allow all processing cores to operate at elevated frequency |
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 |
US8635476B2 (en) | 2010-12-22 | 2014-01-21 | Via Technologies, Inc. | Decentralized power management distributed among multiple processor cores |
US9460038B2 (en) | 2010-12-22 | 2016-10-04 | Via Technologies, Inc. | Multi-core microprocessor internal bypass bus |
US8782451B2 (en) | 2010-12-22 | 2014-07-15 | Via Technologies, Inc. | Power state synchronization in a multi-core processor |
US8637212B2 (en) | 2010-12-22 | 2014-01-28 | Via Technologies, Inc. | Reticle set modification to produce multi-core dies |
US8631256B2 (en) | 2010-12-22 | 2014-01-14 | Via Technologies, Inc. | Distributed management of a shared power source to a multi-core microprocessor |
-
2011
- 2011-11-17 US US13/299,207 patent/US8930676B2/en active Active
- 2011-12-22 TW TW100147949A patent/TWI460581B/zh active
- 2011-12-22 CN CN201110435143.1A patent/CN102520912B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101010655A (zh) * | 2004-09-03 | 2007-08-01 | 英特尔公司 | 协调多核处理器中的空闲状态转换 |
CN101111814A (zh) * | 2004-12-30 | 2008-01-23 | 英特尔公司 | 多核架构中的工作点管理 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11853809B2 (en) | 2016-01-15 | 2023-12-26 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
Also Published As
Publication number | Publication date |
---|---|
CN102520912A (zh) | 2012-06-27 |
US8930676B2 (en) | 2015-01-06 |
TWI460581B (zh) | 2014-11-11 |
US20120166763A1 (en) | 2012-06-28 |
TW201237609A (en) | 2012-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102520912B (zh) | 多内核动态配置发现方法及其微处理器 | |
CN102521002B (zh) | 可动态和选择性停用内核以及重新设定多内核微处理器 | |
US10061729B2 (en) | Scalable multi-core system-on-chip architecture on multiple dice for high end microcontroller | |
CN102103518B (zh) | 一种在虚拟化环境中管理资源的系统及其实现方法 | |
US8954721B2 (en) | Multi-chip initialization using a parallel firmware boot process | |
CN105183134B (zh) | 多内核微处理器的共享电源的分布式管理 | |
US20140040532A1 (en) | Stacked memory device with helper processor | |
US9430296B2 (en) | System partitioning to present software as platform level functionality via inter-partition bridge including reversible mode logic to switch between initialization, configuration, and execution mode | |
CN109791536A (zh) | 可配置逻辑平台 | |
US8301717B2 (en) | Extended virtual memory system and method in a computer cluster | |
CN105653372B (zh) | 基于云平台实现多虚拟化混合管理与调度的方法 | |
CN107278299A (zh) | 经由可重配置的虚拟交换机实现次级总线功能性的方法、装置和系统 | |
CN108091384B (zh) | 一种基于微服务框架的医学影像处理系统 | |
CN109032806A (zh) | 容器的服务调度方法和装置 | |
JP6660374B2 (ja) | プログラマブル論理のためのメモリの仮想化 | |
CN104303174A (zh) | 通过处理器间互连来隧道传输平台管理消息 | |
CN112612523B (zh) | 一种嵌入式设备驱动系统及方法 | |
CN101163133A (zh) | 一种多机虚拟环境下实现资源共享的通信系统及通信方法 | |
KR20150014464A (ko) | 동적으로 건립가능한 컴퓨터 시스템 | |
EP4206920A1 (en) | Instance creation method, device and system | |
CN117369906B (zh) | Pcie验证平台、方法、装置、存储介质及电子设备 | |
WO2020219810A1 (en) | Intra-device notational data movement system | |
CN101373444A (zh) | 向执行环境揭示系统拓扑 | |
CN105677481B (zh) | 一种数据处理方法、系统及电子设备 | |
CN105100180A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |