运算系统及设定运算系统的方法

文档序号:6467410阅读:187来源:国知局

专利名称::运算系统及设定运算系统的方法
技术领域
:本发明是有关于微处理器,特别是有关于一种系统及方法,其用以基于目前在该微处理器上执行的应用软件,而动态地设定微处理器的运作特性。
背景技术
:微处理器的设计者花费很多心力在效能分析上。在以先前几代的微处理器为基础,设计了具有基本特性及效能目标之后,即执行对于客户而言最重要的应用软件,并擷取该应用软件的指令执行记录,然后使用撷取的指令记录来触发所设计的微处理器的运作,其可以设定被触发的微处理器的不同特性,以使得所有的目标应用软件的总和效能达到最高。通常,某个特定的设定对于某个目标应用软件的执行效能有益,但是对其它的应用软件的执行效能无益。此时,设计者必须决定哪一个应用软件是比较重要的,或者寻找另一个方法以平衡数个应用软件的需要。因为要使得某个应用软件的效能最佳化,常常必须要牺牲另一个应用软件的执行效能。当最佳平均运作参数值确定之后,微处理器的设计者将其编码到设计中(例如以VHDL或verilog语法)。另外,也可通过在微处理器中包含一组保险丝,其在微处理器制造的过程中会选择性地烧断,以改变其硬件构成的运作参数。这使得微处理器在制造时,还能够对应于在微处理器设计完成之后新加入的应用软件或操作系统,进行有限度的最佳化。但是,此种解决方案,需要有设计者/制造者针对某些应用软件选取较佳的设定,而牺牲了其它的应用软件的执行效能,或者,选取一个可能对于每一个应用软件而言都不是最佳的折衷设定,最后还是无法达成目标应用软件的效能最佳化。
发明内容本发明提供一种装置驱动器,其在微处理器运作时,动态地设定其操作模式,以针对目前正在执行的应用软件,以改善效能及/或电力消耗。依据一实施态样,本发明提供一种运算系统。该运算系统包括微处理器,接收用以设定该微处理器操作模式的数值。该微处理器还执行操作系统,其控制哪些应用软件正在该微处理器中运作。该运算系统并包括装置驱动器,其监视正在该微处理器中运作的应用软件中有哪些是在预定的应用软件列表中,并据以动态地将该数值写入该微处理器中以设定其操作模式。依据另一实施态样,本发明提供一种设定运算系统的方法,该运算系统包含微处理器及装置驱动器。该方法包括由该微处理器接收用以设定该微处理器操作模式的数值。该微处理器执行操作系统,并控制哪些应用软件正在该微处理器中运作。该方法并包括由装置驱动器监视正在该微处理器中运作的应用软件中有哪些是在预定的应用软件列表中,并据以动态地将该数值写入该微处理器中以设定其操作模式。该装置驱动器能够设定的操作模式是如下列数据预先撷取;分支预测;指令高速緩存退出;指令执行暂停;高速緩存大小;重排序緩沖;储存/加载/填充队列;和数据传递及分支目标地址高速緩沖存储器索引相关的杂凑算法;每个计时周期中转换、格式化及发出的指令数量;加载延迟机制;推测页面表格查找;指令合并;乱序执行延伸;非暂时数据暗示的高速緩沖存储器;及对应于指令高速緩冲存储器遗失的L2高速缓沖存储器及处理器总线的串联或并联存取。本发明的功效包括其可以以高效能及/或低耗能的方式执行重要的应用软件。为让本发明的上述和其它目的、特征、和优点能更明显易懂,下文特举出较佳实施例,并配合所附图式,作详细说明如下。图1显示本发明的包含微处理器和装置驱动器的运算系统的方块图。图2显示依据本发明图1中微处理器的不同操作模式设定值的示意图。图3显示本发明的图1的系统的运作流程图。[主要元件标号说明]运算系统100;微处理器102;装置驱动器104;操作系统106;系统存储器108;操作模式设定值暂存器112;—阶指令高速緩冲存储器(level-linstructioncache)114;—阶数据高速緩沖存储器(level-1datacache)116;二阶高速緩冲存储器(level-2cache)118;分支预测器122;数据预先撷取器124;电力管理单元126;指令转换/格式器128;应用列表文件132;应用程序名称134;操作模式设定值136;预设操作模式设定值138;存储器管理单元(醒U)142;重排序緩冲器(R0B)144;数据预先撷取模式字段202;分支预测模式字段204;指令高速緩沖存储器退出模式字段206;暂停执行模式字段208;Ll指令高速緩存大小字段212;Ll数据高速緩存大小字段214;L2高速緩存大小字段216;转换/格式大小字段218;推测表格查找字段222;Ll高速緩沖存储器遗失行为字段224;传送杂凑字段226;队列大小字段228;发出大小字段232;ROB大小字段234;乱序字段236;载入延迟字段238;非暂时载入/储存字段242。具体实施例方式本发明是关于一个装置驱动器其监视正在操作系统的运作程序中的应用软件,并据以动态地将该数值写入微处理器中,以针对该正在执行的应用软件设定较佳的操作模式。该装置驱动器可以依据效能及/或电力消耗来设定该较佳操作模式。在此的「装置驱动器」(devicedriver)是指一般所谓的装置驱动器,以及动态连接数据库或能够直接写入微处理器中以改变其操作模式的其它软件元件。在此的「应用软件」(softwareapplication)则指一般所谓的应用软件,以及动态连接数据库或操作系统视为运作程序的其它软件元件。特别的是,该装置驱动器周期性地向操作系统查询目前正在执行的程序的程序名称,并将其与一个应用列表中的应用软件的名称比对,微处理器设计者已经针对该应用列表中的每一个应用软件设定其较佳的微处理器操作模式。依据一实施例,该应用列表包含于该装置驱动器存取的加密文件中。依据一实施例,该应用列表包含微处理器设计者认为对于客户重要的软件,包含评估微处理器的单位(entity)。参见图1,其显示本发明的包含微处理器102和装置驱动器104的运算系统100的方块图。微处理器102包括由装置驱动器104所写的操作模式设定值暂存器112。微处理器102亦包含功能单元,亦即一阶指令高速緩沖存储器(level-1instructioncache)114、一阶数据高速緩冲存储器(level-1datacache)116、二阶高速緩沖存储器(level-2cache)118、分支预测器122、数据预先撷取器124、电力管理单元126、指令转换/格式器128、存储器管理单元(MMU)142、重排序緩冲器(R0B)144。每一个功能单元都可以由装置驱动器104依据操作模式设定值暂存器112的内容设定为一或多个操作模式。在其它实施例中,功能单元的数量及种类可以与图l所示的不同。微处理器102和系统存储器108连接。系统存储器108储存装置驱动器104、操作系统106及应用列表文件132。装置驱动器104和应用列表文件132可以在一开始就储存在该系统的非易失性存储器(如磁盘驱动器)(图未显示)中,并由操作系统106加载系统存储器108中。应用列表文件132包含多个项目(entry),每一项目具有应用程序名称134,以及和该应用程序名称134对应的一组操作模式设定值136。应用列表文件132亦包含预设操作模式设定值138。应注意的是,所谓的r应用软件」,并不限于某些场合中的意义,例如像微软的Word或AdobeAcrobat等使用者应用软件。在此所谓的「应用软件」或「应用程序」可以是指任何软件线程,其可以执行为一个可以由操作系统辨识的个别程序,其可以包含使用者应用软件线程、操作系统本身的线程、其它装置驱动程序(例如音响或视频驱动程序、动态连接数据库等)。软件线程为一序列的程序指令。参见图2,其显示依据本发明图1中不同的操作模式设定值136的示意图。操作模式设定值136包括数据预先撷取模式字段202、分支预测模式字段204、指令高速緩冲存储器退出模式字段206、暂停执行模式字段208、Ll指令高速緩存大小字段212、Ll数据高速緩存大小字段214、L2高速緩存大小字段216、转换/格式大小字段218、推测表格查找字段222、Ll高速緩冲存储器遗失行为字段224、传送杂凑字段226、队列大小字段228、发出大小字段232、ROB大小字段234、乱序字段236、载入延迟字段238、非暂时载入/储存字段242。需注意的是,操作模式设定值136的列表为例示,也可以有微处理器102包含其它操作模式设定值的其它实施例。图1中的操作模式设定值暂存器112包含对应于图2所示的操作模式设定值136中的每一者的字段。数据预先撷取模式字段202是设定数据如何从系统存储器108中事先撷取到微处理器102的不同的高速緩存114/116/118中。例如,装置驱动器104可以设定微处理器102,使其直接将可能高的预测数据事先撷取到一阶指令高速緩冲存储器114中,及/或将可能性低的预测数据事先撷取到有别于Ll或L2数据高速緩沖存储器116/118的专用事先撷取緩沖区中。再举例而言,装置驱动器104可以针对持续触发不必要的预先撷取数据的应用软件,使得由数据预先撷取器124执行的数据事先撷取禁能。又例如,装置驱动器104可以不让数据预先擷取器124执行应用软件中的事先擷取指令所要求的事先擷取,因为其对微处理器102内部启动的事先撷取产生负面影响。分支预测模式字段204设定微处理器102预设分支指令的方式。例如,装置驱动器104可以设定分支预测器122从一阶指令高速緩冲存储器114中的每一行所预测出来的分支指令的数量。而且,装置驱动器104可以设定分支预测器122所使用的独特分支预测机制的数量。而且,装置驱动器104可以设定分支预测器122通常是否采取逆向零则跳越(reversejumponzero)分支指令。再者,装置驱动器104可以设定用于将分支预测器122中的分支目标地址高速緩沖存储器(BTAC)编索引的杂凑算法。最后,装置驱动器104可以设定分支预测器122,使得当一个或多个在预定列表中的目前执行的应用软件有执行不可预测的分支指令的倾向时,暂时让分支预测都禁能,或者暂时让分支预测机制的一部分禁能,例如分支预测器122中的分支目标地址高速緩冲存储器(BTAC)。指令高速緩冲存储器退出模式字段206设定微处理器102用以从一阶指令高速緩沖存储器114中退出指令的算法。暂停执行模式字段208设定微处理器102是否要暂时停止执行程序指令。例如,装置驱动器104可以在判断操作系统106的闲置程序已经执行一段预定时间时,设定使得微处理器102暂停执行程序。Ll指令高速緩存大小字段212、Ll数据高速緩存大小字段214、L2高速緩存大小字段216分别设定Ll指令高速緩沖存储器、Ll数据高速緩沖存储器或L2高速緩存的大小。例如,装置驱动器104可以依据一个或多个正在执行的应用软件的作业中的数据组的大小,来设定高速緩存的大小。转换/格式大小字段218设定指令转换/格式器128如何转换及/或格式化指令。例如,装置驱动器104可以设定在每一计时周期中由指令转换/格式器128转换及/或格式化的指令数量,例如,为了降低微处理器102的电力消耗,使得足够执行中的应用所需,装置驱动器104可以设定指令转换/格式器128在每一计时周期中仅转换及/或格式化一个指令。而且,为了降低电力消耗,装置驱动器104可以设定指令转换/格式器128使其不能合并指令。到存储器中查分页目录和分页表是非常耗时的工作,而查分页目录和分页表又是非常频繁的事件,因此,微处理器把最近使用的分页目录和分页表10的项目存放在叫TLB的高速緩沖存储器中。推测表格查找字段222设定画U142是否对应于一个TLB(translationlookasidebuffer)遗失执行推测页面表才各查找(speculativepagetablewalks)。例如,装置驱动器104可以i殳定画U142,使得其针对一个总是使推测失准的应用,使得其推测表格查找禁能,以使得TLB中本来是有用的项目退出。依据一实施例,装置驱动器104可以设定推测表格查找的范围。例如,装置驱动器104可以设定,U142只有在所有旧的储存操作都撤回后,或者在所有旧的储存操作的地址分解后,或者不考虑旧的储存操作,才执行推测表格查找。LI高速緩沖存储器遗失行为字段224设定针对一阶指令高速緩冲存储器114中的遗失,醒U142是否以串联或并联的方式从二阶高速緩沖存储器118以及处理器总线中要求数据。传送杂凑字段226设定算法,其为微处理器102用以在地址比较中杂凑虚拟地址位,以检测微处理器102是否应该执行数据传递操作,例如从旧的、不用的储存指令到加载指令,或者在一个加载队列和一填充队列之间。例如,装置驱动器104可以设定微处理器102界定要比较的虚拟地址的页面索引位所加的位数,其中非页面索引位会被杂凑以产生这些位,以及这些位会被如何地杂凑。队列大小字段228设定在微处理器102中不同队列的可以使用的大小,例如储存队列、加载队列或填充队列。例如,当较小的队列可以足够正在执行的应用之需,则装置驱动器104可以将这些不同的队列设定为较小的队列,以降低电力消耗。'发出大小字段232设定微处理器102在单一计时周期中,对不同执行单元发出的指令的数量。例如,当一计时周期中较少的指令可以满足正在执行的应用之需,则装置驱动器104可以设定其为较小的数值,以减少电力消耗。ROB大小字段234设定在ROB144中可以使用的项目的数量。例如,当ROM144中较少的项目数量可以满足执行中的应用之需,则装置驱动器IO4可以将ROB144中项目的数量设定为较少。乱序字段236设定微处理器102如何使用乱序指令执行。例如,装置驱动器104可以设定微处理器102使其依据严格的程序次序(亦即,没有乱序执行)执行指令,或者装置驱动器104可以设定指令调度器可以在指令窗中多大的范围内寻找独立指令,以将其发出给执行单元。加载延迟字段238设定微处理器102的加载延迟机制要禁能还是致能。依据一实施例,微处理器102推测性地发出一个加载指令,并且当其是基于一个数据还不可得的旧的储存指令时,就必须重放(replay)该加载指令,而这对效能有不利的影响。为了减少重放的可能性,加载延迟机制依据过去加载指令被重放的历史纪录,选择性地使加载指令延迟。但是,当加载延迟机制启动时,有些应用软件的效能反而会有变差的倾向。因此,装置驱动器104可以使得有这种倾向的应用软件的加载延迟机制禁能。非暂时加载/储存字段242设定微处理器102对于包含用以防止微处理器102高速緩沖存储器其数据的非暂时性数据暗示(non-temporaldatahint)的加载/储存指令的行为。某些应用软件是使用非暂时性加载/储存指令,其假设微处理器102的数据高速緩冲存储器小于微处理器102的实际数据高速緩沖存储器大小,并且如果数据有被高速緩冲存储器的话会执行得较快。因此,装置驱动器104可以设定微处理蔡102高速緩沖存储器由包含非暂时性数据暗示的加载/储存指令所界定的数据。而且,装置驱动器104可以设定微处理器102中的加载緩沖器的数量,其可以由包含非暂时性数据暗示的加载/储存指令所使用。参见图3,其显示本发明的图1的系统的运作流程图。流程开始于方块302。在方块302中,重设微处理器102,例如通过电源开启(poweron)事件或按下重设钮,微处理器102将其本身设定为预设操作模式。预设操作模式可以设定在微处理器102的硬件,也可以用微处理器102中的熔丝来设定。接着继续进行方块304。方块304中,操作系统106开机并启动装置驱动器104。装置驱动器104周期性地监视目前执行的程序。特别的是,装置驱动器104向操作系统106查询每一个目前正在执行的程序的程序名称,并将其与应用列表文件132中的应用程序名称134比对。接着继续进行方块306。依据一实施例,当操作系统106的一个计时点到达时,对应于操作系统106启动装置驱动器104的程序,装置驱动器104执行方块304-314中的步骤。在方块306中,装置驱动器104判断方块304的比对中是否产生任何配对。若装置驱动器104检测到配对,则进行方块308,否则进行方块312。在方块308中,装置驱动器104从应用列表文件132中比对相符的项目,读取操作模式设定值136,并将其写入操作模式设定值暂存器112中,以针对在方块306中应用程序名称字段比对相符的目前执行的应用,将微处理器102设定为较佳操作模式。依据一实施例,包含于应用列表文件132的应用软件会依据其重要性排序,若装置驱动器104在方块306中找到数个配对,则装置驱动器104以重要性最高且比对相符的项目的操作模式设定值136来设定微处理器102。依据一实施例,应用列表文件132包含与不同组合的执行中应用程序对应的操作模式设定值136,以群组方式将其效能及/或电力消耗较佳化,当装置驱动器104找到对应于一个组合的数个配对时,装置驱动器104以该比对相符的组合的项目的操作模式设定值136来设定微处理器102。在方块312中,当目前执行的应用程序未定义于应用列表文件132中所列的应用程序时,装置驱动器104从应用列表文件132中读取预设操作模式设定值138,并将其写入操作模式设定值暂存器112,以将微处理器102设定为预设操作模式。接着进行方块314。在方块314中,微处理器102依据在方块308或312中写入的操作模式设定值暂存器112,以将其不同的功能单元设定为对应的操作模式。接着执行方块304。依据一实施例,如上述,当#:作系统106的计时点到达时,流程回到方块304。虽然已经针对了特定的操作模式设定值136提供实施例如上,但其为例示,亦可有其它方式的实施例,其中微处理器102包括其它的可设定操作模式,而装置驱动器104将这些额外的操作模式设定值设定到微处理器102。本发明虽以较佳实施例揭露如上,然其并非用以限定本发明的范围,任何本领域技术人员,在不脱离本发明的精神和范围内,当可做些许的更动与润饰,因此本发明的保护范围当视所附的权利要求范围所界定者为准。权利要求1.一种运算系统,其包括:微处理器,接收用以设定该微处理器操作模式的数值,其中该微处理器还执行操作系统,其控制哪些应用软件正在该微处理器中运作;及装置驱动器,其监视正在该微处理器中运作的应用软件中有哪些是在预定的应用软件列表中,并据以动态地将该数值写入该微处理器中以设定其操作模式。2.根据权利要求1所述的运算系统,其中该预定的应用软件列表中的每一个项目包含程序名称及对应值,用以针对具有对应的该程序名称的该应用软件设定该微处理器的操作模式。3.根据权利要求2所述的运算系统,其中该装置驱动器周期性地比对正在该微处理器中运作的应用软件的程序名称及该预定的应用软件列表中每一个项目的该程序名称,并将比对符合的项目的数值写入该微处理器中,以设定其操作模式。4.根据权利要求1所述的运算系统,当正在该微处理器中运作的应用软件都没有在该预定的应用软件列表中时,该装置驱动器将默认值写入该微处理器中,以将其设定为预设操作模式。5.根据权利要求1所述的运算系统,其中该数值包含以下设定该微处理器操作模式的多种数值之一用以设定该微处理器从系统存储器中预先撷取数据到其高速緩存的方式的一个数值;用以设定该微处理器预测分支指令的方式的一个数值;用以设定该微处理器从其指令高速緩存中退出指令的方式的一个数值;用以设定该微处理器暂时停止执行指令的一个数值;用以设定该微处理器暂时使其分支预测机制的一部分禁能的一个数值;用以设定该微处理器的高速緩存大小的一个数值;选择性地使得用该微处理器的分支目标地址高速緩冲存储器以预测分支指令禁能的一个数值;用以设定用以将该微处理器的分支目标地址高速緩冲存储器编索引的杂凑算法的一个数值;用以设定是否采取预设预测分支指令的一个数值;用以设定在每一计时周期中由该微处理器转换的指令数量的一个数值;用以设定在每一计时周期中由该微处理器格式化的可变长度指令数量的一个数值;用以选择性地使该微处理器的负载延迟机制禁能的一个数值;用以选择性地使该微处理器的推测页面表格查找禁能的一个数值;用以选择性地使该微处理器的软件预先撷取禁能的一个数值;用以选择性地使该微处理器的指令合并禁能的一个数值;用以设定当对应于该微处理器的第一阶指令高速緩沖存储器遗失时,该微处理器是否以串联或并联的方式从其第二阶高速緩冲存储器以及处理器总线要求遗失的指令的一个数值;用以设定该微处理器高速緩沖存储器由包含非暂时数据暗示的加载/储存指令所界定的数据的一个数值;用以设定该微处理器执行数据传递时所使用的杂凑算法的一个数值;用以设定该微处理器的重排序緩冲器的大小的一个数值;用以设定该微处理器的储存队列、加载队列或填充队列的一个数值;用以设定在每一计时周期中由该微处理器发出的指令数的一个数值;及用以设定该微处理器以乱序方式执行指令的程度的一个数值。6.—种设定运算系统的方法,该运算系统包含^(效处理器及装置驱动器,该方法包4舌由该微处理器接收用以设定该微处理器操作模式的数值,其中该微处理器执行操作系统,并控制哪些应用软件正在该微处理器中运作监视正在该微处理器中运作的应用软件中有哪些是在预定的应用软件列表中;及依据该监视步骤,动态地将该数值写入该微处理器中以设定其操作模式;其中该监视及该动态写入的步骤是由该装置驱动器执行。7.根据权利要求6所述的设定运算系统的方法,其中该预定的应用软件列表中的每一个项目包含程序名称及对应值,用以针对具有对应的该程序名称的该应用软件设定该微处理器的操作模式。8.根据权利要求7所述的设定运算系统的方法,还包括周期性地比对正在该微处理器中运作的应用软件的程序名称及该预定的应用软件列表中每一个项目的该程序名称;及将比对符合的项目的数值写入该微处理器中,以设定其操作模式;其中该周期性比对及将比对符合的项目的数值写入该微处理器中的步骤是由该装置驱动器执行。9.根据权利要求6所述的设定运算系统的方法,还包括时,将默认值写入该微处理器中,以将其设定为预设操作模式;其中该写入默认值的步骤是由该装置驱动器执行。10.根据权利要求6所述的设定运算系统的方法,其中该数值包含以下设定该微处理器操作模式的多种数值之一用以设定该微处理器从系统存储器中预先撷取数据到其高速緩存的方式的一个数值;用以设定该微处理器预测分支指令的方式的一个数值用以设定该微处理器从其指令高速缓存中退出指令的方式的一个数值;用以设定该微处理器暂时停止执行指令的一个数值;用以设定该微处理器暂时使其分支预测机制的一部分禁能的一个数值;用以设定该微处理器的高速緩存大小的一个数值;选择性地使得用该微处理器的分支目标地址高速緩沖存储器以预测分支指令禁能的一个数值;.用以设定用以将该微处理器的分支目标地址高速緩冲存储器编索引的杂凑算法的一个数值;用以设定是否采取预设预测分支指令的一个数值;用以设定在每一计时周期中由该微处理器转换的指令数量的一个数值;用以设定在每一计时周期中由该微处理器格式化的可变长度指令数量的一个数值;用以选择性地使该微处理器的负载延迟机制禁能的一个数值;用以选择性地使该微处理器的推测页面表格查找禁能的一个数值;用以选择性地使该微处理器的软件预先撷取禁能的一个数值;用以选择性地使该微处理器的指令合并禁能的一个数值;用以设定当对应于该微处理器的第一阶指令高速緩冲存储器遗失时,该微处理器是否以串联或并联的方式从其第二阶高速緩沖存储器以及处理器总线要求遗失的指令的一个数值;用以设定该微处理器高速緩沖存储器由包含非暂时数据暗示的加载/储存指令所界定的数据的一个数值;用以设定该微处理器执行数据传递时所使用的杂凑算法的一个数值;用以设定该微处理器的重排序緩冲器的大小的一个数值;用以设定该微处理器的储存队列、加载队列或填充队列的一个数值;用以设定在每一计时周期中由该微处理器发出的指令数的一个数值;及用以设定该微处理器以乱序方式执行指令的程度的一个数值。全文摘要一种运算系统,其包括微处理器以接收用以设定该微处理器操作模式的数值。装置驱动器监视正在该微处理器中运作的应用软件中有哪些是在预定的应用软件列表中,并据以动态地将该数值写入该微处理器中以设定其操作模式。该装置驱动器能够设定的操作模式是如下列数据预先撷取;分支预测;指令高速缓存退出;指令执行暂停;高速缓存大小;重排序缓冲;储存/加载/填充队列;和数据传递及分支目标地址高速缓冲存储器索引相关的杂凑算法;每个计时周期中转换、格式化及发出的指令数量;加载延迟机制;推测页面表格查找;指令合并;乱序执行延伸;非暂时数据暗示的高速缓冲存储器;及对应于指令高速缓冲存储器遗失的L2高速缓冲存储器及处理器总线的串联或并联存取。文档编号G06F9/06GK101377734SQ20081016945公开日2009年3月4日申请日期2008年10月22日优先权日2008年7月10日发明者G·葛兰·亨利,柯林·艾迪,罗德尼·E·虎克申请人:威盛电子股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1