CN101091147A - 计算系统中功率管理的方法和设备 - Google Patents
计算系统中功率管理的方法和设备 Download PDFInfo
- Publication number
- CN101091147A CN101091147A CNA2006800012727A CN200680001272A CN101091147A CN 101091147 A CN101091147 A CN 101091147A CN A2006800012727 A CNA2006800012727 A CN A2006800012727A CN 200680001272 A CN200680001272 A CN 200680001272A CN 101091147 A CN101091147 A CN 101091147A
- Authority
- CN
- China
- Prior art keywords
- processor
- data
- multicomputer system
- local storage
- primary memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 78
- 230000015654 memory Effects 0.000 claims abstract description 111
- 238000003860 storage Methods 0.000 claims description 167
- 230000005059 dormancy Effects 0.000 claims description 39
- 238000004321 preservation Methods 0.000 claims description 23
- 230000005540 biological transmission Effects 0.000 claims description 19
- 238000011084 recovery Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 12
- 238000002955 isolation Methods 0.000 claims description 10
- 230000008676 import Effects 0.000 claims description 5
- 230000007306 turnover Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000005520 cutting process Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 46
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 22
- 230000006870 function Effects 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 6
- 239000000758 substrate Substances 0.000 description 6
- 230000015572 biosynthetic process Effects 0.000 description 5
- 239000004065 semiconductor Substances 0.000 description 5
- 238000009825 accumulation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 238000011068 loading method Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000007958 sleep Effects 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000001143 conditioned effect Effects 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006266 hibernation Effects 0.000 description 3
- 238000007689 inspection Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- GYHNNYVSQQEPJS-UHFFFAOYSA-N Gallium Chemical compound [Ga] GYHNNYVSQQEPJS-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 239000012141 concentrate Substances 0.000 description 2
- 229910052733 gallium Inorganic materials 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 229940002865 4-way Drugs 0.000 description 1
- JBRZTFJDHDCESZ-UHFFFAOYSA-N AsGa Chemical compound [As]#[Ga] JBRZTFJDHDCESZ-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 229910001218 Gallium arsenide Inorganic materials 0.000 description 1
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- FTWRSWRBSVXQPI-UHFFFAOYSA-N alumanylidynearsane;gallanylidynearsane Chemical compound [As]#[Al].[As]#[Ga] FTWRSWRBSVXQPI-UHFFFAOYSA-N 0.000 description 1
- 229910052782 aluminium Inorganic materials 0.000 description 1
- XAGFODPZIPBFFR-UHFFFAOYSA-N aluminium Chemical compound [Al] XAGFODPZIPBFFR-UHFFFAOYSA-N 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000003716 rejuvenation Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000002887 superconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000032258 transport Effects 0.000 description 1
- 238000010977 unit operation Methods 0.000 description 1
- 230000002618 waking effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- 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
-
- 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/16—Constructional details or arrangements
- G06F1/20—Cooling means
- G06F1/206—Cooling means comprising thermal management
-
- 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/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/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- 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
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Power Sources (AREA)
- Multi Processors (AREA)
- Retry When Errors Occur (AREA)
Abstract
计算系统内的一或多个处理器和与本地存储器相关的处理器可以实际连接到允许在主存储器和本地存储器之间进行数据传送的主存储器,其中计算系统可以执行的操作包含:在计算系统内生成一或多个处理器的暂停条件;暂停一或多个处理器;把来自一或多个处理器的本地存储器的数据保存到主存储器;休眠一或多个处理器;恢复一或多个处理器的功率;把来自一或多个处理器的所保存的数据传送回到一个发起处理器或到计算系统中指定的目的处理器。
Description
技术领域
本发明涉及管理计算系统中的功耗和热量积聚,以及管理多处理器计算系统中处理器中间的计算活动分布的方法和设备。
背景技术
增加时钟频率以及降低现代微处理器的尺寸使计算性能以及在小占用面积内提供这种性能的方便性大大提高。然而,这些改进也导致微处理器中越来越多的功耗以及较大热量积聚。对图形处理器尤其如此。因而,本领域需要一种微处理器热量积聚问题的基于软件的解决方案,其取代例如布置吸热器的硬件解决方案,其作为其补充。
在多处理器计算系统中,有限空间内集中多个高性能处理器以及处理器间处理活动的不均匀分布可使热量积聚的问题更严重。随着在相同计算系统内某些处理器处理更多总计算吞吐量并且相应比不太活跃的处理器经历更大热能积聚,计算活动的这种不均匀分布可以导致局部″热点″的产生。因此,本领域需要多处理器系统中热点问题的软件解决方案。
发明内容
基于一个方面,本发明提供一种方法,包含:当在处理器中执行的程序中遇到检查点指令时,暂停计算系统内处理器的操作;把来自处理器的本地存储器的数据保存到计算系统的主存储器;以及使处理器休眠。优选地,该方法还包括在保存之前加密本地存储器中的数据。优选地,该方法还包括:在检测到唤醒条件时唤醒休眠的处理器。优选地,该方法还包括:把所保存的数据从主存储器传送到处理器的本地存储器。优选地,该方法还包括:在保存之前加密本地存储器中的数据;在唤醒之后使处理器进入保护模式;解密所传送的数据;以及使处理器退出保护模式。
优选地,进入保护模式包括进入隔离模式,该模式中禁止数据传入和传出处理器。优选地,进入保护模式包括进入安全模式,该模式中不支持来自处理器外部的设备、针对进或出处理器的数据传送的请求。优选地,该方法还包括恢复处理器的操作。优选地,使处理器休眠包括关闭对处理器供电。优选地,使处理器休眠包括大大降低处理器的功耗水平。优选地,使处理器休眠包括至少大大降低处理器的功耗水平。优选地,使处理器休眠包括切断处理器的时钟信号。
优选地,唤醒处理器包括恢复对处理器的满供电;以及初始化处理器。优选地,唤醒处理器包括至少基本恢复对处理器的供电。优选地,该方法还包括在处理器操作恢复过程中向处理器通知其进展的阶段。
优选地,唤醒包括通知休眠的处理器唤醒条件的存在;以及从处理器发出信号以恢复对处理器的满供电。优选地,通知包括向休眠处理器发送中断。优选地,该方法还包括基于预定时间周期的结束产生唤醒条件。优选地,预定时间周期等于处理器的休眠周期。优选地,该方法还包括当与休眠处理器通信的第二处理器中执行检查点指令时产生唤醒条件。优选地,该方法还包括:把所保存的数据从主存储器传送到第二处理器的本地存储器;以及在第二处理器中恢复程序的执行。
基于另一个方面,本发明提供了一种方法,包括:等待第一多处理器系统中至少一个处理器的预定时长的执行周期的结束;在执行周期结束时暂停至少一个处理器中正在进行的程序执行,从而提供至少一个暂停处理器;以及把来自至少一个处理器的至少一个相应本地存储器的数据保存到第一多处理器系统的主存储器。优选地,该方法还包括为每个暂停处理器指定目的处理器,因而提供至少一个目的处理器;把来自主存储器的所保存的数据传送到至少一个目的处理器的至少一个相应本地存储器;以及恢复至少一个目的处理器中正在进行的程序执行,因而开始新的执行周期。优选地,该方法还包括在保存之前加密至少一个暂停处理器的至少一个本地存储器中的数据。优选地,该方法还包括使至少一个目的处理器进入保护模式;解密所传送的加密数据;以及使至少一个目的处理器退出保护模式。
优选地,进入保护模式包括进入隔离模式,该模式中禁止数据传送进出至少一个目的处理器。优选地,进入保护模式包括进入安全模式,该模式中不支持来自至少一个目的处理器外部的设备、针对进或出至少一个目的处理器的数据传送的请求。优选地,该方法还包括重复等待、暂停、保存、指定、传送以及恢复。优选地,至少一个暂停处理器包括至少两个暂停处理器,并且其中指定包括基于处理器数据重新分配模式为每个暂停处理器指定目的处理器。
优选地,执行周期基本上等于至少一个处理器的帧处理时间。优选地,执行周期为大约16毫秒。优选地,执行周期的时长基本上小于至少一个处理器的临界热上升时间(critical thermal rise time)。优选地,至少一个目的处理器位于第一多处理器系统中。优选地,至少一个目的处理器位于第二多处理器系统上。优选地,该方法还包括复制来自第一多处理器系统的主存储器的所有数据到第二多处理器系统的主存储器。优选地,处理器数据重新分配模式包括模″n ″旋转,其中″n″是第一多处理器系统上的处理器的数量。
基于另一个方面,本发明提供了一种计算系统,具有能够用于与主存储器通信的至少一个处理器;以及与至少一个处理器的每个连接的本地存储器,因而提供了至少一个本地存储器,其中计算系统在遇到在至少一个处理器中执行的程序中的检查点指令时,暂停计算系统内至少一个处理器的操作,因而提供至少一个暂停处理器,保存来自至少一个暂停处理器的本地存储器的数据到计算系统的主存储器;以及使至少一个暂停处理器休眠。
基于另一个方面,本发明提供了一种计算系统,具有能够用于与主存储器通信的至少一个处理器的计算系统;以及连接到至少一个处理器的每个的本地存储器,因而提供至少一个本地存储器,其中计算系统用于:等待计算系统的第一多处理器系统中至少一个处理器的预定时长的执行周期的结束,在执行周期结束时暂停正在进行的至少一个处理器的程序执行,因而提供至少一个暂停处理器,以及把来自至少一个暂停处理器的至少一个本地存储器的数据保存到第一多处理器系统的主存储器。
基于另一个方面,本发明提供了一种包含可执行程序的存储介质,该可执行程序用于使计算系统执行操作,所述操作包含:在遇到处理器中执行的程序中的检查点指令时,暂停计算系统内处理器的操作;把来自处理器的本地存储器的数据保存到计算系统的主存储器;以及使处理器休眠。
基于另一个方面,本发明提供了一种包含可执行程序的存储介质,该可执行程序用于使计算系统执行操作,所述操作包含:等待第一多处理器系统中至少一个处理器的预定时长的执行周期的结束;在执行周期结束时暂停正在进行的至少一个处理器的程序执行,因而提供至少一个暂停处理器;以及把来自至少一个处理器的至少一个相应本地存储器的数据保存到第一多处理器系统的主存储器。
当在这里结合附图对本发明进行描述时,本领域技术人员会明白其它方面、特性、优点等等。
附图说明
为了图解本发明的各个方面,在附图中示出了当前最优的形式,然而可以理解,本发明不局限于所示的具体结构和手段。
图1是图解了适于基于本发明的一或多个方面使用的处理系统的模块图;
图2是图解了具有可以基于本发明的一或多个方面使用的两个或更多子处理器(SPU)的多处理系统的结构的图例;
图3是包含可以基于本发明的一或多个方面使用的图2的多个多处理器系统(或″多处理器系统″)的计算系统的图例;
图4A是图解基于本发明的一或多个方面可以结合休眠过程和恢复处理器操作过程而执行的处理步骤的流程图的第一部分;
图4B是图解图4A中示出的基于本发明的一或多个方面执行的处理步骤的流程图的第二部分;
图5是图解基于本发明的一或多个方面在休眠过程期间的数据处理的模块图;
图6是图解基于本发明的一或多个方面从休眠状态开始在恢复处理器操作过程期间的数据处理的模块图;
图7是图解基于本发明的一或多个方面可以执行以完成处理器数据重新分配过程的处理步骤的流程图;
图8是图解基于本发明的一或多个方面的多个处理器的处理器数据重新分配过程的数据保存和数据恢复部分的模块图;
图9是图解可以用于实现本发明的一或多个其它方面的优选处理器元件(PE)的图例;
图10是图解可以基于本发明的一或多个其它方面调整的图9的系统的示例性子处理单元(SPU)的结构的图例;以及
图11是图解可以基于本发明的一或多个其它方面调整的图9的系统的示例性子处理单元(SPU)的结构的图例。
具体实施方式
在此公开中,在保存处理器的本地存储器中存储的数据的背景下,术语″数据″所有数据,即除了可执行程序代码处理的数字和文本信息之外,还包含可执行程序代码。这里,术语″宽带引擎″(也可以被称作处理器元件)是多处理器计算系统。这里,术语″休眠″通常是指这样的处理器条件,其中处理器使用较少功率和/或比在正常操作时消耗更少功率。因而,这种休眠包含这样的处理器条件,所述条件包括一个功耗或消耗水平范围,该范围为从仅仅降低水平的功耗或消耗直到零或接近零水平的功耗或消耗。
相应地,术语″使处理器休眠″(以及这个动词的其它结合)是指把处理器设置在这种低功耗和/或低功率消耗条件或零功耗和/或零功率消耗条件下。使处理器休眠可以通过部分地或完全地降低提供给处理器的电压来实现。可选地,处理器的电流可以被部分地或完全地降低。在另一个实施例中,处理器的时钟信号可以通过改变程度(degree)或完全切断来降低。另外,可以使用降低或消除对处理器的供电的一或多个上述方案的组合。此外,本发明不局限于使用一或多个上述方案使处理器休眠。此外,术语休眠不局限于上述定义。
这里,术语″唤醒″处理器可以是指恢复处理器的供电或时钟信号提供。相应地,″唤醒条件″是指示唤醒处理器的请求的条件。然而,术语″唤醒″不局限于上述定义。
这里,术语″检查点″通常是指指示所期望的处理器状态和/或指示处理器的条件或指示处理器所处的计算系统的程序指令或指令组。在一个实施例中,处理器的程序代码中的检查点命令处理器进入也被称为休眠状态的休眠条件。在一个实施例中,多个可能休眠状态功率水平的一或多个可以在检查点指令中指定。在另一个实施例中,检查点可以命令一或多个处理器把一或多个相应本地存储器的内容转移到相应处理器外部的存储器。注意,检查点可以被用来表示除了上面注解的那些之外的状态和/或指令。此外,术语″检查点″不局限于上述定义。
这里,术语″热点″可以是指装置内处于高于期望的温度的位置。在一个实施例中,如果装置内的位置高于阈值温度,则热点存在,其中阈值可以被预定或可以在操作装置期间被调节。
在一个实施例中,术语″热点″可以是指多处理器计算系统中的处理器,其是多处理器计算系统的任何处理器中最热(处于最高温度)的处理器。可选地,术语″热点″可以是指多处理器计算系统中处于比大多数其它处理器更高的温度的处理器。然而,术语″热点″不局限于上述定义。
这里,术语″计算系统″可以是指用于计算的装置。在一个实施例中,计算系统可以是单处理器。在另一个实施例中,计算系统可以是例如宽带引擎的多处理器设备,其也被称为处理器元件(PE)。在另一个实施例中,术语″计算系统″可以是指包含多个多处理器系统以及可能包含其它设备的装置,所述其它设备包含但不局限于多处理器系统外部的存储器,例如总线系统的数据传输装置以及数据通信控制设备。然而,术语″计算系统″不局限于上述定义。
这里,术语″正在进行的程序执行″以及″正在进行的执行″可以是指用于实现处理器数据重新分配过程和/或处理器休眠、除了已执行的那些操作之外的操作。然而,术语″正在进行程序执行″不局限于上述定义。这里,″暂停″处理器可以是指停止该正在进行的程序执行。在被暂停之后,处理器优选地仍然能够执行与休眠相关的任务,以及处理器数据重新分配过程。然而,术语″暂停″不局限于上述定义。
参照附图,其中类似数字表示类似单元,其中在图1示出了适于使用本发明的一或多个方面的处理系统100。为了简洁和清晰,图1的模块图涉及和描述这里如图所示的装置100,然而应当理解,该描述可以被轻易地应用于具有等同效果的方法的各个方面。装置100优选地包含处理器102、本地存储器104、优选为动态随机访问存储器(DRAM)的系统存储器106以及总线108。
可以使用能够向系统存储器106请求数据以及操作数据以实现期望结果的任何已知技术来实现处理器102。例如,处理器102可以使用能够执行软件和/或固件的任何已知微处理器来实现,包含标准微处理器、分布式微处理器等等。例如,处理器102可以是图形处理器,其能够请求和操作数据,例如包含灰度信息、色彩信息、纹理数据、多边形信息、视频帧信息等等的像素数据。
尤其是,本地存储器104优选地与处理器102位于相同的芯片上;然而,本地存储器104优选地不是硬件高速缓冲存储器,其原因在于优选地没有片上或片外硬件高速缓存电路、高速缓存寄存器、高速缓冲存储器控制器等等来实现硬件高速缓冲存储器功能。在可选实施例中,本地存储器104可以是高速缓冲存储器和/或可以使用附加高速缓冲存储器。由于片上空间常常有限,本地存储器104的大小可以远小于系统存储器106。处理器102优选地提供数据访问请求以从系统存储器106通过总线108把数据复制到本地存储器104以进行程序执行和数据操作。可以使用例如直接存储器访问(DMA)技术的任何已知技术来实现利于数据访问的机构。
装置100也优选地包含例如通过总线108与处理器102连接的存储介质,例如只读存储器(ROM)。存储介质110优选地包含受信解密程序,其可读到处理器102的本地存储器104并且使用安全解密密钥来解密信息。优选地,存储介质110是永久可编程设备(例如,快擦写ROM),其中实现某等级的安全性,使得解密程序产生受信功能并且不能由外部软件操作来篡改。存储介质110的安全性是优选,使得解密程序和/或其它信息(例如受信解密密钥)不可被未经授权的实体访问。例如,在装置100的制造期间优选地把解密程序建立和存储在存储介质110中。
优选地,处理器102和本地存储器104被布置在公共集成电路上。因而,这里的这些单元可以被称作″处理器102″。在可选实施例中,存储介质110也可以布置在具有一或多个其它单元的公共集成电路上。
图2是图解具有两个或更多子处理器102的多处理器系统100A(这里也称作多处理系统)的结构的图例。这里其它地方的概念可以被应用于多处理器系统100A。系统100A包含多个处理器102A-102D,相关本地存储器104A-104D,和通过总线系统108互连的共享存储器106。这里共享存储器106也可以被称作主存储器106或系统存储器106。尽管通过例子图解了四个处理器102,但是可以在不偏离本发明的实质和范围的前提下使用任何数量的处理器。处理器102可以全部具有相同构造或可以包含不同构造。
本地存储器104优选地与其相应处理器102位于相同芯片(相同半导体衬底)上。然而,本地存储器104优选地不是常规硬件高速缓冲存储器,其原因在于不存在片上或片外硬件高速缓存电路、高速缓存寄存器、高速缓冲存储器控制器等等来实现硬件高速缓冲存储器功能。
处理器102优选地提供数据访问请求以从系统存储器106通过总线系统108把数据复制到相应本地存储器104以进行程序执行和数据操作。优选地使用每个处理器(未示出)的直接存储器访问控制器(DMAC)实现利于数据访问的机构。针对本发明的其它特性,每个处理器的DMAC优选地具有与这里其它地方所述基本相同的功能。
系统存储器106优选地是通过高带宽存储器连接(未示出)连接到处理器102的动态随机访问存储器(DRAM)。另外或可选地,DRAM106可以通过总线系统108连接到处理器102。尽管系统存储器106优选地是DRAM,但是存储器106可以使用例如静态随机访问存储器(SRAM)、磁性随机访问存储器(MRAM)、光存储器、全息存储器等等的其它手段来实现。
每个处理器102优选地使用处理流水线来实现,其中逻辑指令以流水线的方式处理。尽管流水线可以被分成处理指令的任何数量的级段,但是流水线通常包括获取一或多个指令、解码指令、检查指令间的依赖、发出指令以及执行指令。在这点上,处理器102可以包含指令缓冲器、指令解码电路、依赖检查电路、指令发送电路以及执行级段。
在一或多个实施例中,处理器102和本地存储器104可以被布置在公共半导体衬底上。在一或多个其它实施例中,共享存储器106也可以被布置在公共半导体衬底上,或它可以被分别布置在例如分立半导体衬底上。
在一或多个可选实施例中,一或多个处理器102可以充当连接到其它处理器102并且能够通过总线108连接到共享存储器106的主处理器。主处理器可以调度和协调其它处理器102对数据的处理。然而,不同于其它处理器102,主处理器可以被连接到硬件高速缓冲存储器,其用于缓存从共享存储器106以及处理器102的一或多个本地存储器104中的至少一个获得的数据。主处理器可以提供数据访问请求以使用例如DMA技术的任何已知技术,从系统存储器106通过总线108把数据(其可以包含程序数据)复制到高速缓冲存储器以进行程序执行和数据操作。
在一个实施例中,多处理系统110A还可以包含直接或通过总线系统108连接到共享存储器106和处理器102A-102D的存储介质(未示出)。这个存储介质可以是随机访问存储器(RAM)、只读存储器(ROM)、DRAM、可编程只读存储器(PROM)或其它常规数据存储实现。此外,附加数据存储设备(未示出)也可以直接或通过总线系统108被连接到共享存储器106和/或处理器102A-102D。
图3是包含适于基于本发明的一或多个方面使用的多个多处理器系统的计算系统300的模块图。多处理器系统100A1-100A3可以等价于图2的多处理器系统110A,但不限于这个实现。计算系统300还可以包含主存储器302和引入易失和/或非易失存储器(未示出),和/或随机访问和/或顺序存储器访问数据存储设备(未示出)的附加存储设备。计算系统300优选地还包含总线304。计算系统300也可以包含其它数据通信以及数据通信控制装置(未示出)。为了简单,图3中省略了每个多处理器系统100A1-100A3的内部结构的图解。
图4A和4B(集中称作图4)一起形成一个流程图,该流程图图解了可以结合基于本发明的一或多个方面的休眠过程和处理器唤醒过程来执行的处理步骤。下面,结合图4的处理步骤序列的描述,对图4-6进行参考。
处理从操作400处开始。在操作402中,可以是单处理器102的计算系统优选地确定暂停条件是否已经建立。如果不存在暂停条件,则在操作404中,正在进行的程序执行优选地继续进行。如果暂停条件已经建立,则在操作406中,处理继续进行(在下面讨论)。
在一个优选实施例中,当遇到在处理器102中执行的程序中的检查点指令时,处理器102产生暂停条件,其中检查点指令向处理器102表明处理器102将要经历休眠过程。然而,在可选实施例中,要休眠的处理器可以从连接到处理器102的另一个设备处接收相关指示。例如,在多处理器系统中,一个处理器可以向自身和/或向多处理器系统内的一或多个其它处理器发送指示暂停条件的建立的信号。
在另一个可选实施例中,连接到要暂停的处理器102的定时器(软件驱动或硬件驱动)可以超时并且向处理器102发送中断信号,该信号指示暂停条件。按照这种方式,暂停条件可以基于实时调度来建立。
在另一个实施例中,暂停条件可以基于计算系统内一或多个指定事件的出现而产生。这些事件可以包含但不限于:要暂停的处理器所位于的计算系统的工作负载水平低于指定阈值,以及计算系统内热条件的出现,例如计算系统中的测试点超过某个阈值温度。此外,在一个可选实施例中,指定事件可以是与要暂停的处理器102通信的处理器执行检查点指令。
在操作406中,如果建立暂停条件,则优选地暂停处理器102中的程序执行。
参照图5,在图解本地存储器104的第一个块中,示出了堆指针604和栈指针606的位置。从图解本地存储器104的第一个块指向图解本地存储器104的第二个块的箭头通常指向在这2个块之间的切换,并且不具体地映射任何两个存储器位置之间的数据传送。
箭头604和608优选地分别标识本地存储器104中的堆指针和栈指针的位置。优选地,描述指针604和608的位置的信息被分别存储在本地存储器104的块626和628中,以便以后传送到主存储器106以及最终恢复到本地存储器104。
参照图4和5,在操作408中,加密程序和公开密钥618优选地被从主存储器106载入本地存储器104的自由空间606。在操作410中,优选地使用加密程序和公开密钥618加密本地存储器104中的数据602。优选地,堆栈610也在操作410中被加密。加密程序自身也可以被加密。在操作412中,加密的程序和数据(一起被称为″模块″)612被优选地保存到系统存储器106。加密堆栈614也被优选地保存到系统存储器106。优选地,本地存储器104中的堆指针604和栈指针608被保存到主存储器106。用附图标记616表示存储在主存储器106中的指针604和608的组合。指针604和608优选地在保存到主存储器106之前不被加密。然而,在可选实施例中,指针604和608可在被保存到主存储器106之前被加密。一旦完成操作412,主存储器106可以具有剩余自由空间620。
在操作414中,处理器102的功耗被降低,因而把处理器102设置在休眠状态。在一个实施例中,在休眠状态下,处理器102的用电量为零或接近零。在其它实施例中,休眠处理器102可以具有一个处理器功耗水平,该水平与处理器102的正常操作功率水平相比要低出各种不同的量。在一个实施例中,指示所选择的处理器进入休眠状态的实体可以选择所期望的休眠功率水平,并且执行操作以使处理器在所选择的休眠功率水平休眠。相关″实体″可以是处理器102自身,或与要休眠的处理器通信的设备。
在操作416中,进行关于处理器唤醒条件是否已经建立的判定。根据处理器102的功率水平,这个判定可以由休眠处理器102自身或与休眠处理器102通信的另一个设备进行。具体地,如果对休眠处理器102的供电被完全关闭,则唤醒条件优选地由除了休眠处理器102之外的设备检测。可选地,如果休眠处理器102的工作条件例如允许进程某种基本通信活动(例如利用非零电源水平),例如中断信号的检测或接收串行或并行数据通信,则休眠处理器102自身可以检测唤醒条件。
在某些实施例中,指定时间段的结束、处理器102内发生的事件、或休眠处理器102所处的计算系统内其它地方出现的事件可导致处理器恢复条件的产生。在一个实施例中,当与休眠处理器102通信的另一个处理器遇到指示处理器的唤醒条件的程序指令(例如程序检查点)时,可以建立处理器唤醒条件。在另一个实施例中,当与休眠处理器102通信的一或多个其它处理器,或休眠处理器102所处的计算系统的工作负载水平超过指定阈值时,可以产生处理器唤醒条件。
在对休眠处理器102的供电被完全关闭的实施例中,与休眠处理器102通信的另一个处理器(″检测处理器″)或其它适当设备优选地检测处理器唤醒条件。此后,对休眠处理器102的供电优选地被重新接通,因而唤醒(或″唤起″)休眠处理器102。如果需要,则唤起的处理器优选地经历常规初始化过程。此后,检测处理器优选地通知唤起的处理器102它已经从休眠状态唤起的事实,以指示唤起的处理器102进行其下一个操作。优选地,这个下一个操作是下面讨论的操作420。唤起的处理器102的状态的通信可以通过中断信号传输,总线系统上的数据传输或其它已知通信方法来完成。在某些实施例中,多个不同中断可以被用来触发唤起的处理器102的某个范围的可能唤醒后操作。
在休眠处理器102的功率水平足够高以致允许进行基本处理器操作的实施例中,可以把中断发送到休眠处理器102以表示处理器唤醒条件。此后,唤起的处理器102可以自身选择要执行的下一个操作。可选地,外部设备可以发送向恢复的处理器指示要执行的下一个操作的第二中断。
返回操作416,如果恢复条件未被建立,则在操作418中,休眠处理器102的低功率或零功率水平被优选地保持。如果唤醒条件被建立,则在操作420中,优选地恢复对处理器102的操作供电。
参照图4和6,在操作422中,处理器102优选地从主存储器106把所加密的模块612、所加密的堆栈614以及指针616(优选地为非加密的)传送到本地存储器104。处理器102也优选地从存储介质110把解密程序和私有密钥602加载到本地存储器104。这里注意,解密程序和私有密钥在这里集中地用附图标记602表示。在一个优选实施例中,存储介质110优选地是易失只读存储器(ROM)。然而,在可选实施例中,其它高度受信的存储器可以被用作存储介质110。
通常,处理器102用于改变状态以便实现各种条件状态。这些状态会被简要介绍并且接着在下面更详细地讨论。在第一状态中,处理器102处于普通模式。处理器102优选地用于切换到第二状态,该状态中处理器102处于保护操作模式。处理器102也优选地用于切换到第三状态,该状态中受信解密代码可以被调用并且在处理器102内执行。
在本公开内容中考虑了两种保护模式,这些模式提供本地存储器104的不同程度的隔离,以避免与处理器102外部的存储器产生潜在破坏性的相互作用。在这个部分中讨论的模式是安全模式和隔离模式。
在安全操作模式中,不支持针对处理器102的本地存储器104(或任何其它存储器设备、寄存器等等)中存储的数据的请求,因而确保执行敏感操作的受信环境。尽管处于安全模式中,然而处理器102可以请求从系统存储器106传送数据到本地存储器104,或可以请求从本地存储器104传送数据到系统存储器106。进一步地,在处理安全操作模式的同时,处理器102可以启动进、出受信环境的数据传送,而不管源或目的地如何。在一个优选实施例中,当处于保护操作模式中的一种时,受信环境限于处理器102及其包含的本地存储器104。
在隔离操作模式中,处理器102和任何外部设备均不可以启动进或出处理器102的本地存储器104的数据传送。
在一个优选实施例中,在进入一种保护模式之前,从主存储器106和/或存储介质110中读取例如加密和/或解密程序的任何程序。然而,在可选实施例中,一旦实现安全操作模式,则处理器102可以从存储介质110把解密程序读到本地存储器104中。优选地,受信解密密钥也存储在存储介质110内,并且也被保存到本地存储器104中以便以后使用。
在操作424中,处理器102优选地进入保护模式。如这里所述,保护模式可以是隔离模式或安全模式。隔离模式是优选的。然而,在可选实施例中,可以使用安全模式。
优选地,一旦处理器处于保护模式,则在操作426中,处理器102使用私有密钥解密加密的模块612并且把解密的信息存储在本地存储器104中。在操作428中,处理器102优选地退出保护模式。在操作430中,正在进行的程序执行优选地在唤起的处理器中恢复。
在可选实施例中,在操作406中暂停的正在进行的程序执行可以在除了操作414中休眠的处理器之外的处理器中恢复。优选地,由其它处理器执行操作422至430,以允许按照这种方式恢复正在进行的程序执行。对在″其它″处理器上执行操作420的需要将取决于其它处理器是否在开始操作422之前启动或休眠。
图7是图解可被执行以进行基于本发明的一或多个方面的处理器数据重新分配过程的流程图。图8是基于本发明的一或多个方面图解多个处理器的处理器数据重新分配过程的数据保存和数据恢复部分的模块图。下面参考图7-8进行图7的处理步骤的讨论。结合图2的多处理器系统实施例讨论图7的方法,但不限于这个实施例。
处理优选地从操作700开始。在操作702中,确定处理器数据重新分配条件是否已经建立。如果未建立这种条件,则处理器操作继续进行操作704。如果建立处理器数据重新分配条件,则处理继续进行操作706。
处理器数据重新分配条件优选地由执行周期的结束来驱动。执行周期优选地具有预定时长。然而,在可选实施例中,可以由处理器102在正在进行的程序执行期间确定执行周期的时长。优选地,在执行周期期间,各个处理器优选地没有中断地完成正在进行的程序执行。
在一个实施例中,执行周期的时长可以基于SPU的帧速率设置。在一个优选实施例中,帧速率是每16毫秒一个帧,并且因此执行周期时长是16毫秒(msecs)。
在一个实施例中,处理器102准备数据以在屏幕上呈现图像。在这个屏幕上的每个相继图像是一个″帧″,并且帧被处理并且在屏幕上呈现的速率是″帧速率″。由于通常期望无需中断处理器102执行完成单个帧所需的处理,所以处理器102完成单个帧所需的时间对应于有用和方便的执行周期时长。然而,在可选实施例中,可以使用等于帧处理时间的倍数的执行周期时长。在其它可选实施例中,可以使用小于帧处理时间的执行周期时长。
在其它实施例中,当然可以调整分隔相继处理器数据重新分配过程的时间段以匹配不同的帧速率。此外,在其它可选实施例中,执行周期可以具有短于或长于经历处理器数据重新分配的一或多个SPU的帧速率的时长。
在一个优选实施例中,处理器的执行周期的时长基于处理器102的一或多个特性来确定。确定执行周期的最重要的两个特性是温度速率(处理器102温度增加的速率,按度每秒来测量)和作为温度速率的函数的″临界热上升时间″。″临界热上升时间″是处理器102从正常工作温度升温到临界点期间的时间段。临界点是处理器温度优选地始终保持低于,并且处理器温度应当从不超过的温度。临界热上升时间是处理器在执行高度需求的应用程序时从正常工作温度上升到临界点所需的时间。由于需求的应用程序的功率需求可能变化,所以临界热上升时间的时长可以在一个范围内变化。
通常,执行周期足够低,使得在参与处理器数据重新分配的处理器间进行功耗平均。在一个实施例中,执行周期是临界热上升的50%或更低。在另一个实施例中,执行周期低于或等于临界热上升时间的50%但是大于其35%。在另一个实施例中,执行周期小于等于临界热上升时间的35%但是大于其20%。在另一个实施例中,执行周期小于或等于临界热上升时间的20%但是大于其10%。在另一个实施例中,执行周期小于等于处理器102的临界热上升时间的10%。然而,本发明不局限于执行周期的上述时长的具体范围。
在其它可选实施例中,处理器数据重新分配条件可以由除了指定时间段的结束之外的其它事情来驱动,例如在SPU所位于或与一或多个SPU通信的计算系统内事件的出现。例如,超出指定阈值的(处理器的或整个计算系统的)工作负载水平可以建立处理器数据重新分配条件。在另一个实施例中,例如超过指定阈值的测试点(在SPU中或计算系统的其它地方)温度的热条件可以被用来产生处理器数据重新分配条件。
在操作706中,优选地同步SPU102的DMAC(未示出)。在操作708中,优选地暂停SPU102的操作。暂停SPU102优选地包含允许完成全部直接存储器访问存储器操作,以及允许正在进行的程序执行停止。
在操作710中,SPU102优选地把加密程序和相关公开密钥加载到其相应的本地存储器。优选地,单个多处理器系统110A内的SPU102使用公共公开密钥和公共私有密钥。然而,在可选实施例中,不同公开密钥/私有密钥对可以被多处理器系统内的不同SPU使用。在具体本地存储器104x的内容被重新分配给不同多处理器系统上的处理器本地存储器的情况下,目的多处理器系统的公开密钥应当被载入该本地存储器104x。
在操作712中,优选地使用所存储的公开密钥加密在相应本地存储器中的数据。在操作714中,加密的数据被保存到系统存储器106。参考图8,来自四个本地存储器104A-104D(LM0-LM3)的数据通过数据传送800,804,808和812被保存到系统存储器106。在数据传送箭头上示出的符号中,″S″是指保存,″L″是指加载,″D″是指数据,字母″D″之后的数字标识数据所来自的本地存储器的编号。因而,″S(D1)″804标识把来自本地存储器1 104B的数据保存到系统存储器106,以及L(D1)806标识把来自本地存储器1的数据加载到本地存储器2 104C。
在操作716中,为来自相应本地存储器104A-104D的数据指定目的处理器。应当理解,在这个部分中讨论的″指定″操作可以在操作722的″加载″之前任一点处执行。在一个实施例中,用于执行操作716的指定的处理器数据重新分配模式对于大量顺序处理器数据重新分配过程可以是固定的。可选地,这个模式可以针对每个处理器数据重新分配过程独立地选择。
图8的模块图图解了把来自起始(originating)处理器的数据的传送映射到目的处理器的一个可能处理器数据重新分配模式(或″重新分配模式″)。然而,在可选实施例中,许多其它处理器数据重新分配模式可以被实现。
在图8的图解实施例中,示出了四个SPU的本地存储器104A-104D。示出四个″保存″操作800,804,808以及812,这些操作把来自相应本地存储器的数据移动到系统存储器106。也示出了四个″加载″操作802,806,810和814。在这个实施例中,处理器数据重新分配模式简单地涉及把起始本地存储器的标识号增加1,其中明显的例外是数据来自最高编号的本地存储器。来自最高编号的本地存储器的处理器数据最终被存储在本地存储器0 104A,即最低编号的本地存储器中。这个重新分配模式被称作″模4″旋转。容易理解,这个处理器数据重新分配模式可以轻易地被应用于较大数量的处理器,例如在多处理器系统的一个实施例中发现的8个处理器。因而,在这种情况下,可以使用″模8″旋转。此外,在涉及n-SPU(其中″n″是SPU的数量)多处理器系统的情况下,处理器数据重新分配过程可以同时在这个多处理器系统内的所有SPU上或在一或多个SPU的任何子集上执行。在最简单的情况下,如果传送仅针对单处理器的数据,则处理器数据重新分配模式对应于把来自这个单处理器的数据保存到主存储器,以及随后把所保存的数据传送回到这个单处理器。
在另一个实施例中,在每个处理器内的每个SIMD(单指令,多个数据)流水线内的任务可以在每个处理器内被模4旋转,以避免在每个处理器内产生任何热点。在其它实施例中,在指定处理器内对来自每个流水线的数据的重新分配可以基于除了模4之外的模式来重新分配。按照这种方式,流水线数据重新分配优选地实现各个流水线间的功耗平均。
在操作718中,针对来自本地存储器104A-104D中的一个的数据的每个加载操作,优选地确定目的本地存储器是否在与起始SPU位于不同多处理器系统的SPU上。如果目的SPU与起始SPU在相同多处理器系统上,则处理优选地继续操作722。如果目的SPU和起始SPU在不同多处理器系统上,则在操作720中,起始多处理器系统上的主存储器106的数据优选地被转储或复制到目的多处理器系统上的主存储器。优选地实现这个主存储器数据传送,以保证目的多处理器系统中的目的SPU可根据需要得到最初位于起始多处理器系统主存储器106、支持先前在起始多处理器系统中的起始SPU上正在进行的操作所需的程序和数据。
在操作722中,来自本地存储器104A-104D的所保存的数据优选地被载入相应目的SPU的本地存储器。
在此,将描述适于实现此处所述一个或多个特征的多处理器系统的优选计算机体系结构。根据一个或多个实施例,可将多处理器系统实现为用于富媒体应用(例如,游戏系统、家庭终端、PC系统、服务器系统和工作站)的独立和/或分布式处理的单芯片解决方案。在某些应用(例如游戏系统和家庭终端)中,可能需要进行实时计算。例如,在实时分布式游戏应用中,一个或多个联网图像解压缩、3D计算机图像、音频生成、网络通信、物理模拟和人工智能处理必须执行得足够快,以便能够为用户提供实时体验的假象。从而,在多处理器系统中的每个处理器优选地能够在很短和可预测的时间内完成任务。
为此,根据该计算机体系结构,优选地由公共计算模块(或单元)构建出多处理计算机系统的所有处理器。该公共计算模块优选地具有一致性结构,优选地整个采用同一指令集体系结构。多处理计算机系统可由一个或多个客户机、服务器、PC、移动计算机、游戏机、PDA、机顶盒、电器、数字电视和使用计算机处理器的其它设备组成。
如果需要,一个或多个计算机系统也可以是网络成员。一致性模块化结构使得能够通过多处理计算机系统对应用和数据进行高效、高速处理,如果采用网络的话,则能够通过网络对应用和数据进行快速传送。该结构还简化了多种大小的网络成员的构建,优选地增强每个成员的处理能力,以及优选地利于由这些成员处理的应用程序的准备。
参照图9,基本处理模块为处理器元件(PE)500。PE500包括I/O接口502、处理器单元(PU)504和多个子处理单元508,即,子处理单元508A,子处理单元508B,子处理单元508C和子处理单元508D。本地(或内部)PE总线512在PU504、子处理单元508和存储器接口511之间传送数据和应用程序。本地PE总线512可具有,例如,传统体系结构,或可将其实现为分组交换网络。如果实现为分组交换网络的话,尽管需要更多硬件,但增大了有效带宽。
能够使用用于实现数字逻辑的各种方法构建PE500。优选地将PE500构建成采用在硅衬底上的互补金属氧化物半导体(CMOS)的单个集成电路。衬底的可选材料包括砷化镓(gallium arsinide)、砷化镓铝(gallium aluminum arsinide)以及采用多种掺杂的其它所谓III-B化合物。PE500也可使用超导材料实现,例如,使用快速单磁通量子(RSFQ)逻辑。
PE500通过高带宽存储器连接516与共享(主)存储器514紧密相关。尽管存储器514优选地为动态随机访问存储器(DRAM),还可使用其它装置将存储器514实现为例如静态随机访问存储器(SRAM)、磁随机访问存储器(MRAM)、光存储器、全息存储器等。
PU504和子处理单元508优选地均与包含直接存储器访问DMA功能的存储器流控制器(MFC)相连,存储器流控制器(MFC)与存储器接口511结合使用,以便于在PE500的DRAM514与子处理单元508和PU504之间的数据传送。应该注意,DMAC和/或存储器接口511可相对子处理单元508和PU504集成或独立布置。确实,DMAC功能和/或存储器接口511功能可与一个或多个(优选地,所有)子处理单元508和PU504集成在一起。还应注意,DRAM514可相对PE500集成或独立布置。例如,可如图所示将DRAM514进行片外布置,或者,可以集成方式将DRAM514进行片上布置。
PU504可为例如能够对数据和应用进行单独处理的标准处理器。在操作中,PU504优选地通过子处理单元对数据和应用程序的处理进行调度(schedule)和协调(orchestrate)。子处理单元优选地为单指令多数据(SIMD)处理器。在PU504的控制下,子处理单元按照并行和独立方式对这些数据和应用程序执行处理。PU504优选地使用PowerPC核心实现,PowerPC核心是采用精简指令集计算(RISC)技术的微处理器体系结构。RISC使用简单指令的组合执行更复杂的指令。从而,处理器的定时可基于更简单和更快的操作,使得微处理器以给定时钟速度执行更多指令。
应该注意,PU504可使用承担主处理单元角色的一个子处理单元508来实现,此处所述主处理单元通过子处理单元508对数据和应用程序的处理进行调度和协调。此外,在处理器元件500内还可实现多于一个的PU。
根据该模块化结构,具体计算机系统所采用PE500的数量取决于该系统所需的处理能力。例如,服务器可采用四个PE500,工作站可采用两个PE500,PDA可采用一个PE500。指定来处理特定软件单元的PE500的子处理单元的数量取决于在单元内程序和数据的复杂度和量。
图10图解了子处理单元(SPU)508的优选结构和功能。SPU508体系结构优选地填补了通用处理器(其用于实现宽范围的应用的高平均性能)与专用处理器(其用于实现单个应用的高性能)之间的空白。SPU508用于实现游戏应用、媒体应用、宽带系统等的高性能,并对实时应用的编程人员提供高级别控制。SPU508的某些功能包括图形几何流水线、表面细分、快速傅里叶变换、图像处理关键字、流处理、MPEG编码/解码、加密、解密、设备驱动器扩展、建模、游戏物理技术、内容创建和音频合成与处理。
子处理单元508包括两个基本功能单元,即,SPU核心510A和存储器流控制器(MFC)510B。SPU核心510A用于程序执行,数据操作等,而MFC510B负责系统的SPU核心510A与DRAM514之间数据传送的功能。
SPU核心510A包括本地存储器550、指令单元(IU)552、寄存器554、一个或多个浮点执行级556和一个或多个定点执行级558。本地存储器550优选地使用单端口随机访问存储器,例如,SRAM。然而多数处理器通过采用高速缓存来缩减存储器的时延,SPU核心510A实现相对较小的本地存储器550,而非高速缓存。当然,为了对实时应用(以及此处所提到的其它应用)的编程人员提供一致和可预知的存储器访问时延,在SPU508A内的高速缓冲存储器体系结构并不是优选的。高速缓冲存储器的高速缓存命中与否(hit/miss)特性导致易失性存储器访问时间从数周期到数百周期。这种非易失性削弱了例如在实时应用编程中想得到的访问定时可预测性。通过将DMA传送与数据计算重叠,在本地存储器SRAM550中可实现时延隐藏。这为实时应用的编程提供了高级别控制。由于与DMA传送相关的时延和指令开销超出了为高速缓存命中失误提供服务的时延和指令开销,当DMA传送尺寸足够大且充分可预测(例如,可在需要数据之前发出DMA命令)时,SRAM本地存储器方法表现出优势。
运行在其中给定一个子处理单元508上的程序使用本地地址访问相关本地存储器550,然而,还在总系统的存储器映射内为本地存储器550的每个位置指定实地址(RA)。这允许特权软件(PrivilgeSoftware)将本地存储器550映射到处理进程的有效地址(EA,Effective Address),以便进行在一个本地存储器550与另一本地存储器550之间的DMA传送。此外,PU504也能够使用有效地址直接访问本地存储器550。在优选实施例中,本地存储器550包含556千字节存储空间,寄存器552的容量为128×128位。
SPU核心504A优选使用处理流水线实现,其中,以流水线方式对逻辑指令进行处理。尽管可将流水线划分成对指令进行处理的任意数量的级段,不过流水线通常包括,获取一个或多个指令,将指令解码,检查指令之间的依赖,发出指令,和执行指令。在此方面,IU552包括指令缓冲器、指令解码电路、依赖检查电路和指令发送电路。
指令缓冲器优选地包含与本地存储器550相连接且用于临时性存储它们所获得指令的多个寄存器。指令缓冲器优选地按照所有指令成组,即基本同时离开寄存器的方式工作。尽管指令缓冲器可为任何尺寸,优选地,其尺寸不大于约两个或三个寄存器。
一般而言,解码电路将指令分解(break down),并产生执行相应指令功能的逻辑宏操作。例如,逻辑宏操作可指定运算和逻辑操作、对本地存储器550的加载和存储操作、寄存器源操作数和/或立即数据操作数。解码电路也可指示指令使用那些资源,例如,目标寄存器地址、结构资源、功能单元和/或总线。解码电路还可提供指示其中需要资源的指令流水线级段的信息。指令解码电路优选地能够基本同时将数量等于指令缓冲器的寄存器数量的若干指令解码。
依赖检查电路包括数字逻辑,用于执行测试以确定给定指令的操作数是否依赖流水线中其它指令的操作数。如果依赖,则不应执行给定指令,直到更新了该其它指令为止(例如,通过允许其它指令完成执行)。优选地,依赖检查电路确定从解码电路112同时分配的多个指令的依赖。
指令发送电路用于向浮点执行级556和/或定点执行级558发送指令。
优选地将寄存器554实现为相对较大的统一寄存器堆,例如,128项寄存器堆。这允许在无需寄存器重命名的条件下得到深流水线化高频实现。重命名硬件通常会消耗处理系统中的较大部分面积和功率。从而,当通过软件循环展开(software loop unrolling)或其它交错技术掩盖时延时,可实现有益操作。
优选地,SPU核心510A属于超标量体系结构,使得在每个时钟周期中发出多于一个的指令。SPU核心510A优选地以超标量方式工作,该超标量达到与指令缓冲器的同时指令分配的数量,诸如在2和3之间(表示在每个时钟周期发出两个或三个指令)的数量相对应的程度。根据所需的处理能力,可能会采用或更多或更少的浮点执行级556和定点执行级558。在优选实施例中,浮点执行级556以每秒32×109次浮点操作(32GFLOPS)的速度运行,定点执行级558以每秒32×109次操作(32GOPS)的速度运行。
MFC 510B优选地包括总线接口单元(BIU)564、存储器管理单元(MMU)562和直接存储器访问控制器(DMAC)560。除DMAC560外,MFC 510B优选地以与SPU核心510A和总线512相比为一半的频率(半速)运行,以符合低功耗设计目标。MFC 510B用于处理从总线512进入SPU508的数据和指令,为DMAC提供地址转换,以及用于保持数据一致性的窥探操作。BIU564提供在总线512与MMU562以及DMAC560之间的接口。从而,将SPU508(包括SPU核心510A和MFC 510B)和DMAC560与总线512进行物理和/或逻辑连接。
MMU562优选地用于将有效地址(由DMA命令获得)转换成用于存储器访问的实地址。例如,MMU562可将有效地址的高位转换成实地址位。不过,低地址位优选地不可转换的,并被视为逻辑和物理的,以用于形成实地址以及请求对存储器的访问。在一个或多个实施例中,MMU562可基于64位存储器管理模型实现,并可提供具有4K-,64K-,1M-和16M-字节页尺寸和256MB段尺寸的264字节有效地址空间。优选地,MMU562用于支持高达265字节虚拟存储器和用于DMA命令的242字节(4万亿字节)物理存储器。MMU562的硬件可包括8项全关联(fully associative)SLB,256项4路组关联(4way set associative)TLB和TLB的4×4置换管理表(RMT)-用于硬件TLB命中失误处理。
DMAC560优选地用于对来自SPU核心510A和诸如PU504和/或其它SPU的一个或多个其它设备的DMA命令进行管理。存在有三类DMA命令:Put命令,用于将数据从本地存储器550移动到共享存储器514;Get命令,用于将数据从共享存储器514移动到本地存储器550中;以及存储控制命令,包括SLI命令和同步命令。同步命令可包括原子命令、发送信号命令和专用障碍命令。根据DMA命令,MMU562将有效地址转换成实地址,并将实地址转发到BIU564。
SPU核心510A优选地使用通道接口和数据接口与DMAC560内的接口进行通信(发送DMA命令、状态等)。SPU核心510A通过通道接口将DMA命令分配到DMAC560中DMA队列。一旦DMA命令处在DMA队列中,则通过在DMAC560内的发送和完成逻辑对其进行处理。当完成对于DMA命令的所有总线事务时,将完成信号通过通道接口向回发送到SPU核心510A。
图11表示PU504的优选结构和功能。PU504包括两个基本功能单元,PU核心504A和存储器流控制器(MFC)504B。PU核心504A实现程序执行、数据操作、多处理器管理功能等,而MFC 504B执行与PU核心504A和系统100的存储器空间之间的数据传送相关的功能。
PU核心504A可包括一级高速缓存570、指令单元572、寄存器574、一个或多个浮点执行级576和一个或多个定点执行及578。一级高速缓存为通过MFC504B从共享存储器106、处理器102,或存储器空间的其它部分接收的数据提供数据缓存功能。由于优选地将PU核心504A实现为超流水线,从而优选地将指令单元572实现为具有多级(包括获取、解码、依赖检查、发送等)的指令流水线。此外,PU核心504A优选地属于超标量配置,从而,每个时钟周期从指令单元572发出多于一个的指令。为实现高处理能力,浮点执行级576和定点执行级578在流水线配置中包括多个级。根据所需处理能力,可采用更多或更少数量的浮点执行级576和定点执行级578。
MFC 504B包括总线接口单元(BIU)580、二级高速缓冲存储器、非可高速缓存单元(NCU)584、核心接口单元(CIU)586和存储器管理单元(MMU)588。多数MFC 504B以与PU核心504A和总线108相比为一半的频率(半速)运行,以符合低功耗设计目标。
BIU580提供总线108与二级高速缓存582以及NCU584逻辑块之间的接口。为此,BIU580在总线108上可起到主和从设备的作用,以执行完全一致的存储器操作。作为主设备,它可向总线108发出载入/存储请求,以代表二级高速缓存582和NCU584进行服务。BIU580还可实现命令的流控制机制,用于限制可向总线108发送命令的总数量。可将总线108上的数据操作设计成占八拍(beat),因此,优选地将BIU580设计成约128字节高速缓存线,一致性和同步粒度为128KB。
优选地将二级高速缓存存储器582(和支持硬件逻辑)设计成高速缓存512KB数据。例如,二级高速缓存582可处理可高速缓存载入/存储,数据预取、指令获取、指令预取、高速缓存操作和障碍操作。二级高速缓存582优选地为8路组关联系统。二级高速缓存582可包括与六(6)个舍去(castout)队列(例如,六个RC机)相匹配的六个再载入队列,和八个(64字节宽)存储队列。二级高速缓存582可用于提供一级高速缓存570中某些或全部数据的备份拷贝。这在对处理节点进行热切换(hotswap)时恢复状态比较有用。该配置还允许一级高速缓存570以更少端口更快速地运行,并允许进行更快速的高速缓存到高速缓存的传送(由于请求可停止在二级高速缓存582)。该配置还提供将高速缓存一致性管理传递到二级高速缓冲存储器582的机制。
NCU584与CIU586、二级高速缓存存储器582和BIU580相接口,其通常起到用于PU核心504A和存储器系统之间的非可高速缓存操作的排队/缓冲电路的作用。NCU584优选地负责未由二级高速缓存582处理的与PU核心504A进行的所有通信,例如,禁止高速缓存的载入/存储、障碍操作和高速缓存一致性操作。NCU584优选地以半速运行,以符合上述功耗目标。
CIU586设置在MFC504B和PU核心504A的边界,对来自执行级576,578、指令单元572和MMU单元588以及去往二级高速缓存582和NCU584的请求起到路由、仲裁和流控制点的作用。PU核心504A和MMU588优选地以全速运行,而二级高速缓存582和NCU584以2∶1速度比运作。从而,在CIU586中存在频率边界,当它在两个频域之间转发请求以及重载入数据时,其一项功能是正确处理频率交叉。
CIU586由三个功能块组成:载入单元、存储单元和重载入单元。此外,数据预取功能通过CIU586执行,其优选地是载入单元的功能部分。CIU586优选地用于:(i)接受来自PU核心504A和MMU588的载入和存储请求;(ii)将请求从全速时钟频率转换成半速(2∶1时钟频率转换);(iii)将可高速缓存的请求路由到二级高速缓存582,并将非可高速缓存的请求路由到NCU584;(iv)在对二级高速缓存582和NCU584的请求之间进行公平仲裁;和(v)针对对二级高速缓存582和NCU584的分配进行流控制,使得在目标窗口中接收请求并且避免溢出;(vi)接受载入返回数据,并将其路由到执行级576,578、指令单元572,或MMU588;(vii)将窥探请求路由到执行级576,578、指令单元572,或MMU588;以及(viii)将载入返回数据和窥探业务从半速转换成全速。
MMU588优选地提供PU核心540A的地址转换,例如,通过二级地址转换设备。通过可比MMU588小得多和更快的各自指令和数据ERAT(对实地址转换有效)阵列,优选地在PU核心504A中设置第一级转换。
在优选实施例中,PU504运行在4-6GHz,10F04,并具有64位实现。寄存器优选地为64位长(虽然一个或多个专用寄存器可以更小),有效地址为64位长。指令单元570、寄存器572和执行级574和576优选地使用PowerPC技术实施,以实现(RISC)计算技术。
关于该计算机系统的模块化结构的更多细节可参看美国专利No.6,526,491,在此其全部内容引作参考。
根据本发明的至少一个其它方面,可使用合适的硬件,例如图中所示的硬件,来实现上述方法和装置。可使用任何已知技术(例如,标准数字电路)、任何可用于执行软件和/或固件程序的已知处理器、一个或多个可编程数字设备或系统(例如,可编程只读存储器(PROM))、可编程阵列逻辑设备(PAL)等,来实现这样的硬件。此外,尽管将图中所示装置显示成分为特定的功能块,然而这样的功能块也可通过独立电路实现和/或将其组合成一个或多个功能单元,此外,本发明的各个方面可通过可存储在合适存储介质(例如,软盘、存储器芯片等)以便进行运输和/或发行的软件和/或固件程序来实现。
此处尽管参照具体实施例描述了本发明,然而应该理解,这些实施例仅仅是对本发明的原理和应用的示意性描述。因此,在不偏离如所附权利要求所定义的本发明精神和范围的条件下,可对示意性实施例进行多种修改,并可设计出其它方案。
权利要求书(按照条约第19条的修改)
1.一种方法,包括:
在遇到以下至少之一时,暂停多处理器系统内至少一个处理器的操作:(i)在所述至少一个处理器中执行程序中的检查点指令,以及(ii)预定执行周期的结束;
加密所述至少一个处理器的本地存储器中的数据;
把来自所述至少一个处理器的所述本地存储器的所述加密数据保存到所述多处理器系统的主存储器;
把所述保存数据从所述主存储器传送到所述多处理器系统中另一个处理器的本地存储器;
使所述另一个处理器进入保护模式;
在所述另一个处理器的所述本地存储器中解密所述传送的加密数据;
使所述另一个处理器退出所述保护模式;以及
在所述另一个处理器中恢复程序执行。
2.如权利要求1所述的方法,其中
所述至少一个处理器和所述另一个处理器中的至少之一的所述本地存储器提供可预测的访问时间;并且所述方法还包括:
在所述本地存储器和所述主存储器之间的传送是DMA传送;并且通过使所述DMA传送与数据计算重叠来实现时延隐藏。
3.如权利要求2所述的方法,其中所述本地存储器是SRAM。
4.如权利要求1所述的方法,还包括:
在所述多处理器系统的多个处理器中间重复所述暂停、保存、传送以及恢复步骤,使得功耗被分布在所述多个处理器中。
5.如权利要求1所述的方法,其中进入所述保护模式的所述步骤包括以下至少之一:
进入隔离模式,该模式中禁止数据传入和传出所述另一个处理器;以及
进入安全模式,该模式中不支持来自所述另一个处理器外部的设备、针对进出所述另一个处理器的数据传送的请求。
6.如权利要求1所述的方法,还包括以下至少之一:
使所述至少一个处理器进入休眠;
响应于唤醒条件,使所述至少一个处理器离开休眠;
在所述至少一个处理器离开休眠之后,从所述主存储器向所述至少一个处理器的所述本地存储器传送所述保存数据;以及
使所述至少一个处理器恢复程序执行。
7.如权利要求6所述的方法,其中使所述至少一个处理器离开休眠的所述步骤包含以下至少之一:
中断所述至少一个处理器;
允许预定时间周期结束;以及
在与所述至少一个处理器通信的处理器中执行检查点指令。
8.一种设备,包括:
具有能够用于与主存储器通信的多个处理器的多处理器系统;以及
连接到所述处理器中的每一个的本地存储器,
其中所述多处理器系统用于执行操作,所述操作包含:
在遇到以下至少之一时,暂停至少一个所述处理器的操作:(i)在所述至少一个处理器中执行程序中的检查点指令,以及(ii)预定执行周期的结束;
加密所述至少一个处理器的本地存储器中的数据;
把来自所述至少一个处理器的所述本地存储器的所述加密数据保存到所述多处理器系统的主存储器;
把所述保存数据从所述主存储器传送到所述多处理器系统中另一个处理器的本地存储器;
使所述另一个处理器进入保护模式;
在所述另一个处理器的所述本地存储器中解密所述传送的加密数据;
使所述另一个处理器退出所述保护模式;以及
在所述另一个处理器中恢复程序执行。
9.如权利要求8所述的设备,其中
所述至少一个处理器和所述另一个处理器中的至少之一的所述本地存储器提供可预测的访问时间;并且所述方法还包括:
在所述本地存储器和所述主存储器之间的传送是DMA传送;并且通过使所述DMA传送与数据计算重叠来实现时延隐藏。
10.如权利要求9所述的设备,其中所述本地存储器是SRAM。
11.如权利要求8所述的设备,其中所述多处理器系统用于执行以下进一步的操作:
在所述多处理器系统的多个处理器中间重复所述暂停、保存、传送以及恢复步骤,使得功耗被分布在所述多个处理器中。
12.如权利要求8所述的设备,其中进入所述保护模式的所述操作包括以下至少之一:
进入隔离模式,该模式中禁止数据传入和传出所述另一个处理器;以及
进入安全模式,该模式中不支持来自所述另一个处理器外部的设备、针对进出所述另一个处理器的数据传送的请求。
13.如权利要求8所述的设备,其中所述多处理器系统用于执行从以下操作构成的组中选择的至少一个操作:
使所述至少一个处理器进入休眠;
响应于唤醒条件,使所述至少一个处理器离开休眠;
在所述至少一个处理器离开休眠之后,从所述主存储器向所述至少一个处理器的所述本地存储器传送所述保存数据;以及
使所述至少一个处理器恢复程序执行。
14.如权利要求13所述的方法,其中使所述至少一个处理器离开休眠的所述操作包含以下至少之一:
中断所述至少一个处理器;
允许预定时间周期结束;以及
在与所述至少一个处理器通信的处理器中执行检查点指令。
Claims (25)
1.一种方法,包括:
在遇到以下至少之一时,暂停多处理器系统内至少一个处理器的操作:(i)在所述至少一个处理器中执行程序中的检查点指令,以及(ii)预定执行周期的结束;
把来自所述至少一个处理器的本地存储器的数据保存到所述多处理器系统的主存储器;
把所述保存数据从所述主存储器传送到所述多处理器系统中另一个处理器的本地存储器;以及
在所述另一个处理器中恢复程序执行。
2.如权利要求1所述的方法,还包括在所述多处理器系统的多个处理器中间重复所述暂停、保存、传送以及恢复步骤,使得功耗被分布在所述多个处理器中。
3.如权利要求1所述的方法,其中所述执行周期属于下述至少之一:
基本等于视频帧速率;
大约16毫秒;以及
基本小于所述处理器的热上升时间。
4.如权利要求1所述的方法,还包括在多个处理器中间建立处理器数据重新分配模式,该模式为每个处理器规定:(i)目的处理器,所述每个处理器的所述保存数据将被传送到该目的处理器并且恢复执行,以及(ii)前任处理器,所保存数据从该前任处理器传送过来并且恢复执行。
5.如权利要求4所述的方法,其中所述处理器数据重新分配模式包括模n旋转,其中n是所述多处理器系统的多个处理器的数量。
6.如权利要求4所述的方法,其中所述多个处理器被布置在彼此连接的第一和第二多处理器系统内。
7.如权利要求6所述的方法,其中所述处理器数据重新分配模式规定,对于位于所述第一多处理器系统内的至少一个处理器,其目的处理器和前任处理器中的至少之一可以位于第二多处理器系统内。
8.如权利要求7所述的方法,还包括把来自所述第一多处理器系统的所述主存储器的所有所述保存数据复制到所述第二多处理器系统的主存储器。
9.如权利要求1所述的方法,还包括:
在所述保存步骤之前加密所述至少一个处理器的所述本地存储器中的所述数据;
使所述另一个处理器进入保护模式;
在所述另一个处理器内解密所述传送的加密数据;以及
在恢复程序执行之前,使所述另一个处理器退出所述保护模式。
10.如权利要求9所述的方法,其中进入所述保护模式的所述步骤包括以下至少之一:
进入隔离模式,该模式中禁止数据传入和传出所述另一个处理器;以及
进入安全模式,该模式中不支持来自所述另一个处理器外部的设备、针对进出所述另一个处理器的数据传送的请求。
11.如权利要求1所述的方法,还包括以下至少之一:
通过切断对所述至少一个处理器的供电和时钟中的至少一个,使所述至少一个处理器进入休眠;
响应于唤醒条件,使所述至少一个处理器离开休眠;
在所述至少一个处理器离开休眠之后,从所述主存储器向所述至少一个处理器的所述本地存储器传送所述保存数据;以及
使所述至少一个处理器恢复程序执行。
12.如权利要求11所述的方法,其中使所述至少一个处理器离开休眠的所述步骤包含以下至少之一:
中断所述至少一个处理器;
允许预定时间周期结束;以及
在与所述至少一个处理器通信的处理器中执行检查点指令。
13.一种设备,包括:
具有能够用于与主存储器通信的多个处理器的多处理器系统;以及
连接到所述处理器中的每一个的本地存储器,
其中所述多处理器系统用于执行操作,所述操作包含:
在遇到以下至少之一时,暂停至少一个所述处理器的操作:(i)在所述至少一个处理器中执行程序中的检查点指令,以及(ii)预定执行周期的结束;
把来自所述至少一个处理器的所述本地存储器的数据保存到所述主存储器;
把所述保存数据从所述主存储器传送到所述多个处理器中另一个处理器的本地存储器;以及
在所述另一个处理器中恢复程序执行。
14.如权利要求13所述的设备,其中所述多处理器系统用于执行以下进一步的操作:
在所述多处理器系统的多个处理器中间重复所述暂停、保存、传送以及恢复步骤,使得功耗被分布在所述多个处理器中。
15.如权利要求13所述的设备,其中所述执行周期属于下述至少之
基本等于视频帧速率;
大约16毫秒;以及
基本小于所述处理器的热上升时间。
16.如权利要求13所述的设备,其中所述多处理器系统用于执行以下进一步的操作:
在所述多个处理器中间建立处理器数据重新分配模式,该模式为每个处理器规定:(i)目的处理器,所述每个处理器的所述保存数据将被传送到该目的处理器并且恢复执行,以及(ii)前任处理器,所保存数据从该前任处理器传送过来并且恢复执行。
17.如权利要求16所述的设备,其中所述处理器数据重新分配模式包括模n旋转,其中n是所述计算系统的多个处理器的数量。
18.如权利要求16所述的设备,其中所述多个处理器被布置在彼此连接的第一和第二多处理器系统内。
19.如权利要求18所述的设备,其中所述处理器数据重新分配模式规定,对于位于所述第一多处理器系统内的至少一个处理器,其目的处理器和前任处理器中的至少之一可以位于第二多处理器系统内。
20.如权利要求19所述的设备,其中所述多处理器系统用于执行以下进一步的操作:
把来自所述第一多处理器系统的所述主存储器的所有所述保存数据复制到所述第二多处理器系统的主存储器。
21.如权利要求13所述的设备,其中所述多处理器系统用于执行以下进一步的操作:
在所述保存步骤之前加密所述至少一个处理器的所述本地存储器中的所述数据;
使所述另一个处理器进入保护模式;
在所述另一个处理器内解密所述传送的加密数据;以及
在恢复程序执行之前,使所述另一个处理器退出所述保护模式。
22.如权利要求21所述的设备,其中进入所述保护模式的所述操作包括以下至少之一:
进入隔离模式,该模式中禁止数据传入和传出所述另一个处理器;以及
进入安全模式,该模式中不支持来自所述另一个处理器外部的设备、针对进出所述另一个处理器的数据传送的请求。
23.如权利要求13所述的设备,还包括以下至少之一:
通过切断对所述至少一个处理器的供电和时钟中的至少一个,使所述至少一个处理器进入休眠;
响应于唤醒条件,使所述至少一个处理器离开休眠;
在所述至少一个处理器离开休眠之后,从所述主存储器向所述至少一个处理器的所述本地存储器传送所述保存数据;以及
使所述至少一个处理器恢复程序执行。
24.如权利要求23所述的设备,其中使所述至少一个处理器离开休眠的所述操作包含以下至少之一:
中断所述至少一个处理器;
允许预定时间周期结束;以及
在与所述至少一个处理器通信的处理器中执行检查点指令。
25.一种包含可执行程序的存储介质,该可执行程序用于使多处理器系统执行操作,所述操作包括:
在遇到以下至少之一时,暂停多处理器系统内至少一个处理器的操作:(i)在所述至少一个处理器中执行程序中的检查点指令,以及(ii)预定执行周期的结束;
把来自所述至少一个处理器的本地存储器的数据保存到所述多处理器系统的主存储器;
把所述保存数据从所述主存储器传送到所述多处理器系统中另一个处理器的本地存储器;以及
在所述另一个处理器中恢复程序执行。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/125,495 | 2005-05-10 | ||
US11/125,495 US7409570B2 (en) | 2005-05-10 | 2005-05-10 | Multiprocessor system for decrypting and resuming execution of an executing program after transferring the program code between two processors via a shared main memory upon occurrence of predetermined condition |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101091147A true CN101091147A (zh) | 2007-12-19 |
CN100555174C CN100555174C (zh) | 2009-10-28 |
Family
ID=37036969
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006800012727A Active CN100555174C (zh) | 2005-05-10 | 2006-05-09 | 计算系统中功率管理的方法和设备 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7409570B2 (zh) |
EP (1) | EP1805575B1 (zh) |
JP (1) | JP4792328B2 (zh) |
KR (1) | KR20070100336A (zh) |
CN (1) | CN100555174C (zh) |
TW (1) | TWI350446B (zh) |
WO (1) | WO2006121175A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104335223A (zh) * | 2012-06-29 | 2015-02-04 | 英特尔公司 | 用于安全睡眠状态的方法和装置 |
CN106603355A (zh) * | 2015-10-15 | 2017-04-26 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
CN108369552A (zh) * | 2015-11-02 | 2018-08-03 | 索尼互动娱乐有限责任公司 | 以扰乱时序的模式进行的软件向后兼容性测试 |
CN111443792A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 处理器的功耗控制方法、装置以及电子和存储设备 |
CN113406945A (zh) * | 2021-05-26 | 2021-09-17 | 东风电驱动系统有限公司 | 一种宽域频率唤醒信号处理方法及装置 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7882369B1 (en) * | 2002-11-14 | 2011-02-01 | Nvidia Corporation | Processor performance adjustment system and method |
US7904695B2 (en) * | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous power saving computer |
US7475262B2 (en) * | 2005-06-29 | 2009-01-06 | Intel Corporation | Processor power management associated with workloads |
US20070240013A1 (en) * | 2006-01-27 | 2007-10-11 | Sony Computer Entertainment Inc. | Methods And Apparatus For Managing Defective Processors Through Clock Programming |
US8438658B2 (en) * | 2006-02-02 | 2013-05-07 | International Business Machines Corporation | Providing sealed storage in a data processing device |
US20070180271A1 (en) * | 2006-02-02 | 2007-08-02 | Ibm Corporation | Apparatus and method for providing key security in a secure processor |
US7913069B2 (en) * | 2006-02-16 | 2011-03-22 | Vns Portfolio Llc | Processor and method for executing a program loop within an instruction word |
US7966481B2 (en) | 2006-02-16 | 2011-06-21 | Vns Portfolio Llc | Computer system and method for executing port communications without interrupting the receiving computer |
US7617383B2 (en) * | 2006-02-16 | 2009-11-10 | Vns Portfolio Llc | Circular register arrays of a computer |
US7904615B2 (en) | 2006-02-16 | 2011-03-08 | Vns Portfolio Llc | Asynchronous computer communication |
US7886363B2 (en) * | 2006-05-24 | 2011-02-08 | Noam Camiel | System and method for virtual memory and securing memory in programming languages |
US20080005591A1 (en) * | 2006-06-28 | 2008-01-03 | Trautman Mark A | Method, system, and apparatus for dynamic thermal management |
US9015501B2 (en) * | 2006-07-13 | 2015-04-21 | International Business Machines Corporation | Structure for asymmetrical performance multi-processors |
US8806228B2 (en) * | 2006-07-13 | 2014-08-12 | International Business Machines Corporation | Systems and methods for asymmetrical performance multi-processors |
KR100893527B1 (ko) * | 2007-02-02 | 2009-04-17 | 삼성전자주식회사 | 재구성 가능 멀티 프로세서 시스템에서의 매핑 및 스케줄링방법 |
US9134782B2 (en) | 2007-05-07 | 2015-09-15 | Nvidia Corporation | Maintaining optimum voltage supply to match performance of an integrated circuit |
US7996696B1 (en) * | 2007-05-14 | 2011-08-09 | Sprint Communications Company L.P. | Updating kernel affinity for applications executing in a multiprocessor system |
JP2009025950A (ja) * | 2007-07-18 | 2009-02-05 | Koyo Electronics Ind Co Ltd | Cpu搭載電子装置のcpu冷却方法および該cpu搭載電子装置 |
US8370663B2 (en) | 2008-02-11 | 2013-02-05 | Nvidia Corporation | Power management with dynamic frequency adjustments |
JP4542173B2 (ja) * | 2008-05-21 | 2010-09-08 | 富士通株式会社 | ストレージ装置、ディスクコントローラ、及びコマンド発行制御方法 |
US20100023730A1 (en) * | 2008-07-24 | 2010-01-28 | Vns Portfolio Llc | Circular Register Arrays of a Computer |
US8261117B2 (en) * | 2008-09-11 | 2012-09-04 | International Business Machines Corporation | Virtualization in a multi-core processor (MCP) |
US8732716B2 (en) | 2008-09-30 | 2014-05-20 | International Business Machines Corporation | Virtualization across physical partitions of a multi-core processor (MCP) |
US8984309B2 (en) * | 2008-11-21 | 2015-03-17 | Intel Corporation | Reducing network latency during low power operation |
US20100177889A1 (en) * | 2009-01-15 | 2010-07-15 | Kabushiki Kaisha Toshiba | Image forming apparatus and encryption process control method |
US20100246679A1 (en) * | 2009-03-24 | 2010-09-30 | Aricent Inc. | Video decoding in a symmetric multiprocessor system |
US8566286B1 (en) | 2009-05-15 | 2013-10-22 | Idera, Inc. | System and method for high speed database backup using rapidly adjusted dynamic compression ratios controlled by a feedback loop |
US9256265B2 (en) | 2009-12-30 | 2016-02-09 | Nvidia Corporation | Method and system for artificially and dynamically limiting the framerate of a graphics processing unit |
US9830889B2 (en) | 2009-12-31 | 2017-11-28 | Nvidia Corporation | Methods and system for artifically and dynamically limiting the display resolution of an application |
US9219936B2 (en) | 2010-02-05 | 2015-12-22 | Maxlinear, Inc. | Conditional access integration in a SOC for mobile TV applications |
WO2011100559A1 (en) * | 2010-02-11 | 2011-08-18 | Maxlinear, Inc. | Ram based security element for embedded applications |
US9177152B2 (en) | 2010-03-26 | 2015-11-03 | Maxlinear, Inc. | Firmware authentication and deciphering for secure TV receiver |
WO2011123561A1 (en) | 2010-03-30 | 2011-10-06 | Maxlinear, Inc. | Control word obfuscation in secure tv receiver |
US8839006B2 (en) | 2010-05-28 | 2014-09-16 | Nvidia Corporation | Power consumption reduction systems and methods |
JP5353828B2 (ja) * | 2010-06-14 | 2013-11-27 | 富士通セミコンダクター株式会社 | プロセッサ及びプロセッサシステム |
EP2596432A4 (en) * | 2010-07-21 | 2016-06-15 | Hewlett Packard Development Co | ACCESSING A LOCAL STORAGE DEVICE USING AN AUXILIARY PROCESSOR |
US8892855B2 (en) | 2010-08-10 | 2014-11-18 | Maxlinear, Inc. | Encryption keys distribution for conditional access software in TV receiver SOC |
TWI408392B (zh) * | 2011-02-18 | 2013-09-11 | Etron Technology Inc | 增加晶片測試效率的裝置及其方法 |
US8924756B2 (en) * | 2011-06-27 | 2014-12-30 | Intel Corporation | Processor core with higher performance burst operation with lower power dissipation sustained workload mode |
US9383804B2 (en) | 2011-07-14 | 2016-07-05 | Qualcomm Incorporated | Method and system for reducing thermal load by forced power collapse |
JP6087662B2 (ja) * | 2013-02-28 | 2017-03-01 | 株式会社東芝 | 制御装置、制御プログラム及び情報処理システム |
TWI516982B (zh) * | 2014-04-22 | 2016-01-11 | 晨星半導體股份有限公司 | 計算裝置及計算裝置之處理安全服務之方法 |
CN105022970B (zh) * | 2014-04-29 | 2018-03-02 | 晨星半导体股份有限公司 | 计算装置及计算装置的处理安全服务的方法 |
RU2666334C2 (ru) * | 2015-06-30 | 2018-09-06 | Общество С Ограниченной Ответственностью "Яндекс" | Способ обработки данных |
KR20170083868A (ko) | 2016-01-11 | 2017-07-19 | 삼성전자주식회사 | 데이터 이동 장치 및 데이터 이동 방법 |
US10643006B2 (en) * | 2017-06-14 | 2020-05-05 | International Business Machines Corporation | Semiconductor chip including integrated security circuit |
KR102022481B1 (ko) * | 2017-12-06 | 2019-09-18 | 연세대학교 산학협력단 | Gpu 사용량을 이용한 고성능 컴퓨팅 시스템의 체크포인트 생성 방법 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5745778A (en) * | 1994-01-26 | 1998-04-28 | Data General Corporation | Apparatus and method for improved CPU affinity in a multiprocessor system |
JPH0816531A (ja) * | 1994-06-28 | 1996-01-19 | Hitachi Ltd | プロセススケジュール方式 |
US5615263A (en) * | 1995-01-06 | 1997-03-25 | Vlsi Technology, Inc. | Dual purpose security architecture with protected internal operating system |
JPH09138716A (ja) * | 1995-11-14 | 1997-05-27 | Toshiba Corp | 電子計算機 |
US6000036A (en) * | 1996-07-17 | 1999-12-07 | International Business Machines Corp. | Logical steering to avoid hot spots on integrated circuits |
US6247041B1 (en) * | 1997-08-29 | 2001-06-12 | International Business Machines Corporation | Multiprocessor computer system with user specifiable process placement |
US6240521B1 (en) * | 1998-09-10 | 2001-05-29 | International Business Machines Corp. | Sleep mode transition between processors sharing an instruction set and an address space |
US6631474B1 (en) * | 1999-12-31 | 2003-10-07 | Intel Corporation | System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching |
JP2002007364A (ja) * | 2000-06-22 | 2002-01-11 | Fujitsu Ltd | 並列計算機システムのジョブスケジューリングを行うスケジューリング装置 |
US6526491B2 (en) * | 2001-03-22 | 2003-02-25 | Sony Corporation Entertainment Inc. | Memory protection system and method for computer architecture for broadband networks |
US20030079151A1 (en) * | 2001-10-18 | 2003-04-24 | International Business Machines Corporation | Energy-aware workload distribution |
US6804632B2 (en) * | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
WO2003083693A1 (fr) * | 2002-04-03 | 2003-10-09 | Fujitsu Limited | Planificateur de taches dans un systeme de traitement distribue |
US7086058B2 (en) * | 2002-06-06 | 2006-08-01 | International Business Machines Corporation | Method and apparatus to eliminate processor core hot spots |
US7093147B2 (en) * | 2003-04-25 | 2006-08-15 | Hewlett-Packard Development Company, L.P. | Dynamically selecting processor cores for overall power efficiency |
JP4263976B2 (ja) | 2003-09-24 | 2009-05-13 | 株式会社東芝 | オンチップマルチコア型耐タンパプロセッサ |
-
2005
- 2005-05-10 US US11/125,495 patent/US7409570B2/en active Active
-
2006
- 2006-05-09 WO PCT/JP2006/309616 patent/WO2006121175A2/en active Application Filing
- 2006-05-09 JP JP2006130676A patent/JP4792328B2/ja active Active
- 2006-05-09 EP EP06746363.8A patent/EP1805575B1/en active Active
- 2006-05-09 CN CNB2006800012727A patent/CN100555174C/zh active Active
- 2006-05-09 KR KR1020077017231A patent/KR20070100336A/ko active Search and Examination
- 2006-05-10 TW TW095116574A patent/TWI350446B/zh active
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104335223A (zh) * | 2012-06-29 | 2015-02-04 | 英特尔公司 | 用于安全睡眠状态的方法和装置 |
CN104335223B (zh) * | 2012-06-29 | 2017-09-01 | 英特尔公司 | 用于安全睡眠状态的方法和装置 |
US9811475B2 (en) | 2012-06-29 | 2017-11-07 | Intel Corporation | Methods and apparatus for a secure sleep state |
CN106603355A (zh) * | 2015-10-15 | 2017-04-26 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
US10366006B2 (en) | 2015-10-15 | 2019-07-30 | Huawei Technologies Co., Ltd. | Computing apparatus, node device, and server |
CN106603355B (zh) * | 2015-10-15 | 2019-10-18 | 华为技术有限公司 | 一种计算装置、节点设备和服务器 |
CN108369552A (zh) * | 2015-11-02 | 2018-08-03 | 索尼互动娱乐有限责任公司 | 以扰乱时序的模式进行的软件向后兼容性测试 |
CN111443792A (zh) * | 2019-01-16 | 2020-07-24 | 阿里巴巴集团控股有限公司 | 处理器的功耗控制方法、装置以及电子和存储设备 |
CN111443792B (zh) * | 2019-01-16 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 处理器的功耗控制方法、装置以及电子和存储设备 |
CN113406945A (zh) * | 2021-05-26 | 2021-09-17 | 东风电驱动系统有限公司 | 一种宽域频率唤醒信号处理方法及装置 |
CN113406945B (zh) * | 2021-05-26 | 2022-11-18 | 东风电驱动系统有限公司 | 一种宽域频率唤醒信号处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
TWI350446B (en) | 2011-10-11 |
US7409570B2 (en) | 2008-08-05 |
US20060259743A1 (en) | 2006-11-16 |
JP4792328B2 (ja) | 2011-10-12 |
WO2006121175A3 (en) | 2007-06-14 |
KR20070100336A (ko) | 2007-10-10 |
EP1805575B1 (en) | 2018-12-05 |
CN100555174C (zh) | 2009-10-28 |
JP2006318470A (ja) | 2006-11-24 |
EP1805575A2 (en) | 2007-07-11 |
TW200707172A (en) | 2007-02-16 |
WO2006121175A2 (en) | 2006-11-16 |
WO2006121175B1 (en) | 2007-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100555174C (zh) | 计算系统中功率管理的方法和设备 | |
US7613886B2 (en) | Methods and apparatus for synchronizing data access to a local memory in a multi-processor system | |
JP6082787B2 (ja) | セキュアな埋め込みコンテナの実行のためのプロセッサの拡張 | |
Jing et al. | State-of-the-art research study for green cloud computing | |
US7644255B2 (en) | Method and apparatus for enable/disable control of SIMD processor slices | |
JP4421561B2 (ja) | ハイブリッドdmaキュー及びdmaテーブルのデータ処理方法、装置及びシステム | |
CN101326500B (zh) | 提供同时软件/硬件高速缓存填充的方法与装置 | |
US7818724B2 (en) | Methods and apparatus for instruction set emulation | |
CN106489108A (zh) | 控制系统存储器的温度 | |
US20070083870A1 (en) | Methods and apparatus for task sharing among a plurality of processors | |
CN105960620A (zh) | 动态电压裕度恢复 | |
EP1834245A2 (en) | Methods and apparatus for list transfers using dma transfers in a multi-processor system | |
CN107077175A (zh) | 提供针对多芯片封装的热参数报告的装置和方法 | |
WO2006064962A1 (en) | Methods and apparatus for providing an asynchronous boundary between internal busses in a multi-processor device | |
CN107003710A (zh) | 包括多个相异的处理器核心的处理器 | |
Zhou et al. | Temperature-aware dram cache management—relaxing thermal constraints in 3-d systems | |
US20060251070A1 (en) | Methods and apparatus for facilitating coherency management in distributed multi-processor system | |
Pan et al. | Respin: Rethinking Near-Threshold Multiprocessor Design with Non-Volatile Memory | |
Manzanares et al. | Conserving energy in real-time storage systems with I/O burstiness | |
Ruan | Improving Energy Efficiency and Security in Cluster Computing Systems | |
Ye | Energy management for virtual machines | |
Kant | Energy Efficiency Issues in Computing Systems | |
Hao et al. | Research on Technology of Energy Consumption Optimization in Cloud Computing Platform | |
Zhang | Locality-aware buffer management: Algorithms design and systems implementation for data intensive applications (a brief progress report) |
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 |