微处理器和用于一微处理器的检测方法与流程

文档序号:17282767发布日期:2019-04-03 01:17阅读:216来源:国知局

技术领域
:本发明涉及一种微处理器,特别涉及一种可动态重设的微处理器及用于微处理器的动态重设方法。
背景技术
::微处理器的设计者会花费许多努力在效能分析上。在依据先前几代微处理器为基础并以利用特征及效能目标的基准集合来架构一微处理器时,设计者会执行软件应用程序中与其顾客最相关的代表性样本,并撷取软件应用程序的指令执行记录。设计者接着使用所撷取的记录以仿真正在设计的微处理器的操作。为了在所有目标软件应用程序中达成最高的聚集效能(aggregateperformance),设计者可设定被仿真微处理器的不同特性。一般而言,某个一目标应用程序的特性对一特别组态设定是需要的,但其它应用程序则不需要。在这些例子中,设计者可决定那个软件应用程序较为重要,或是寻找其它方法来尝试平衡多个软件应用程序的需求。上述选择通常无法达到最佳化目标软件应用程序效能的目的,因为在尝试最佳化其中一个软件应用程序的效能时也会损害另一个软件应用程序的效能。当辨识出组态设定的最佳平均集合时,举例来说,微处理器设计者可将其写为VHDL或Verilog程序代码。其它微处理器可通过包含在微处理器中的一组熔丝来修改其硬编码设定,这些熔丝可在微处理器制造时选择性地熔断,以改变其硬编码值(hardcodedvalues)的组态设定。上述方式可让微处理器在制造时有限度的最佳化,且或许可对在微处理器设计后所发表的新软件应用程序或是操作系统所需的系统组态做响应。然而,该解决方式仍无法达到使目标软件应用程序的效能最佳化的目的,因其需要设计者/制造者选择用于最佳化某些应用程序但且同时牺牲其它应用程序效能的组态设定、或是选择通常不会对任何应用程序进行最佳化的平衡组态设定。为了陈述该问题,于2008年7月10日申请的美国专利申请号12/170,591已揭示一微处理器可基于目前正在操作的应用程序的一装置驱动器以动态设定至多个操作模式,该美国专利已经公告为第8,566,565号,且整份专利提供于此作为参考之用。然而,更佳的效能最佳化效果的需求依然存在。技术实现要素:本发明还提供一种微处理器,包括:一指令高速缓存;一硬件状态机,用以通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及其中该微处理器用以通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是指令的第一数据流的一部分或不是从其得到的。其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。本发明还提供一种由一微处理器执行的用于防止壳码的执行的方法。该微处理器包括一指令高速缓存及一硬件状态机。该方法可以包括:利用该硬件状态机通过计数在由该指令高速缓存撷取的指令的第一数据流中的不动作(NOP)指令的一连续序列检测不动作(NOP)滑动;以及通过从指令的第一数据流向指令的第二数据流转移控制来响应检测NOP滑动,其中指令的第二数据流不是从指令高速缓存撷取的指令的第一数据流的一部分或不是从其得到的。其中当NOP滑动导致壳码时,暂停执行指令的数据流防止壳码的执行。本发明还提供一种微处理器,包括:一指令高速缓存;一硬件状态机,用以检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,该微处理器暂停由该指令高速缓存撷取及执行指令。本发明还提供一种用于一微处理器的检测方法,该微处理器包括一指令高速缓存及一硬件状态机,该方法包括:利用该硬件状态机检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,暂停由该指令高速缓存撷取及执行指令。本发明还提供一种计算机程序产品,编码于至少一计算机可读媒体中以供一运算装置使用,该运算装置包括一微处理器,该计算机程序产品包括:一第一程序代码,用以指出该微处理器的一指令高速缓存;以及一第二程序代码,用以指出该微处理器的一硬件状态机,用以检测在由该指令高速缓存所撷取的一指令字节的数据流中的N个不动作(NOP)指令的连续序列,其中N大于零;以及其中当检测到N个NOP指令的该连续序列时,该微处理器暂停由该指令高速缓存撷取及执行指令。附图说明图1示出了一微处理器100的功能方块图。图2示出了依据本发明一实施例中的指纹单元102的详细功能方块图。图3示出了依据本发明一实施例中用以产生已知目标程序部分及其有关的静态指纹、组态设定及指纹产生准则的数据库的流程图。图4示出了依据本发明一实施例中微处理器100动态自我重新配置的操作的流程图。图5示出了依据本发明一实施例中微处理器110动态自我重新配置的更进一步操作流程图。图6示出了依据本发明另一实施例中微处理器100动态自我重新配置的操作流程图。图7示出了依据本发明另一实施例中微处理器100动态自我重新配置的操作流程图。图8示出了依据本发明另一实施例中图1的指纹单元102的方块图。图9示出了依据本发明一实施例中的微处理器100动态自我重新配置的操作流程图。图10示出了依据本发明一实施例中微处理器100检测NOP滑动的操作流程图。附图符号说明100~微处理器;102~指纹单元;104~重设单元;124~组态寄存器;126~指纹设定准则表;128~动态重设功能单元;132~指纹编程寄存器;142~指令信息;144~控制信号;202~指令索引;204~位移字段;206~运算码字段;208~ModRM字段;212~SIB字段;214~前缀;222~数学运算电路;224~结果(动态指纹);226~比较器;228~相符信号;232~静态指纹;234~控制逻辑;238~指纹产生准则;242~衰减计数器;244~串接信号;822~指令计数器;826~比较器;832~静态指令计数值;302-314、402-412、514-522、602-608、702-708、902-912、1002-1008~方块具体实施方式为使本发明的上述目的、特征和优点能更明显易懂,下文特举实施例,并配合所附图式,作详细说明如下。词汇(Glossary)「指纹(fingerprint)」为可辨识一程序的指令序列的一数值,指纹值的产生是依据一数学运算而得到的关于指令序列的信息累积结果。该信息可包括,举例来说,该指令的指令索引值的多个组合(例如指令的地址)、指令的操作码(opcode)、指令的位移(displacement)、指令的前缀(prefix)、及/或指令的部分地址模式,例如是x86架构指令(或是其一部分的)的SIB或modRM位。累积指令信息的数学运算,举例来说,可包括连续地计算与序列中各指令有关的循环冗余检查码(cyclicredundancycode)。此外,该数学运算亦可包括在一多输入位移寄存器(multipleinputshiftregister)中使用最大计数多项式来累计指令信息。再者,该数学运算还可包括依据一哈希函数(hashfunction),例如是一可变长度数据哈希函数以累计指令信息。当然,该数学运算更可包括对一队列,例如固定长度队列(fixed-lengthqueue),的连续指令信息进行累计。依据两个不同的产生时间点,指纹值可分为两种类型:静态及动态。当微处理器执行一程序的指令时,微处理器的指纹单元产生一动态指纹,而静态指纹则由工程师所预先产生。静态指纹会提供至指纹单元,使得指纹单元可对其产生的动态指纹及其所接收的静态指纹进行比较。指纹单元更可接收指纹产生准则(fingerprintgenerationcriteria),例如起始条件、停止条件、及重置条件,其可控制指纹单元累计指令信息以产生动态指纹。指纹产生准则亦可指定为指令信息的部分组合以让指纹单元进行累计以产生动态指纹。当各指令执行后(以撷取者为佳),指纹单元接收指令信息。若指纹单元检测到一起始条件,其会依据数学运算来累计指令信息而产生结果,其即为动态指纹。当各指令执行后,指纹单元会持续接收指令信息,并依据数学运算以累计指令信息而产生结果,直到指纹单元检测到一停止条件或一重置条件为止。在重置条件的一例子中,指纹单元清除累计状态,并依据数学运算再开始累计指令信息以产生结果。更适宜而言,每当指纹单元产生介于一起始条件及一停止条件的一新结果,其会比较该结果(动态指纹)与该静态指纹,并在它们相符时指出两者相符。起始条件的例子包括启动分支的指令、返回指令、自中断指令的返回、陷阱情况、例外情况、系统呼叫或返回指令(例如x86架构中的SYSENTER或SYSEXIT指令)、子过程调用、功能单元控制指令(例如x86架构中的FINIT指令)、或是来自另一指纹单元的表示符,表示其已检测到指纹相符。停止条件的例子包括类似于起始条件的各种情况,且亦可包括指纹相符、以及在一起始条件后所执行的指令计数值到期(expiration)。重置条件的例子包括类似于起始条件的各种情况,且亦可包括一硬件重置及非不动作指令的一指令。产生静态指纹的流程揭露于下述实施例。工程师对可用来增进效能、降低功耗及/或修正错误的程序部分的目标集合进行辨识。接着,对于各目标程序部分,工程师会在程序执行时辨识指令序列(往后称之为“指令串(strand)”),并表示该目标程序部分正在执行或是即将执行。工程师接着在该指令串,亦即指令信息,之上依据数学运算(与在指纹单元中用于产生动态指纹的数学运算相同)进行累计以产生一结果。当该程序部分相关于静态指纹时,该结果储存于一数据库或一档案中。产生静态指纹可通过多种方式来操作。举例来说,工程师可提供与该指令串相关的指纹收集准则至一软件程序,例如是微处理器的功能仿真器,接着于该功能仿真器上执行该程序,且在其遇到停止条件时,指示该功能仿真器输出该功能仿真器的指纹引擎部分的结果,其中该结果用于该指令串的静态指纹。另一方面,工程师可使用微处理器本身以执行类似的运算,在一实验室环境中,该微处理器可特别设定于侦错/测试设定以输出静态指纹,及/或该微处理器连接至测试设备的一部分,其用以提供测试向量(testvectors)至该微处理器并接收测试结果。在工程师已收集目标静态指纹之后,工程师可创建一窗体,其将静态指纹与下列条件进行联结,例如(1)可最佳化微处理器的功能单元的组态设定,其用于处理与指令串相关的程序部分;及(2)指纹收集准则。需了解的是检测一静态指纹与一动态指纹的相符并不会唯一肯定地辨识与该程序部分有关的指令串,反而是表示该指令序列已经被执行的机率相当高,这种方式有点类似于人的指纹并无法唯一肯定地辨识一个人。即,在一相对少数的情况中,指纹单元仍会对由静态指纹所产生的指纹序列之外的指令串(称为别名(alias)指令串)指示相符的情形。功能单元为硬件或是在微处理器中的软件及硬件的组合,其可执行与处理与指令相关的函数。功能单元的例子包括,但非限定于,指令撷取单元、分支预测单元、指令格式单元、指令转译单元、寄存器更名单元、指令排程单元、执行单元(例如是整数单元、浮点单元、分支单元、单一指令多重数据(singleinstructionmultipledata)单元、多媒体单元、读取单元、储存单元)、重新排序单元、引退单元(retireunit)、高速寄存、数据预撷取单元、电源管理单元、内存管理单元、以及储存冲突检测单元。若一功能单元的设定可在微处理器操作时改变,则表示该功能单元是动态可重设的。需注意的是,为了改变动态可重设的功能单元的设定,当正要改变组态设定时,微处理器需先通过该动态重设功能单元及/或整个微处理器以暂停指令的处理。举例来说,在一实施例中,微程序代码可通过写入一数值至设定寄存器以改变组态设定。该微程序代码程序可在新组态设定写入之前且直到新组态设定生效时,序列化指令的执行。功能单元的组态设定,其为一状态,可在状态具有不同数值时使得该功能单元以不同方式执行其功能、而不同的方式会影响功能单元所执行功能的效能、功耗及/或正确度。请参考图1,图1示出了一微处理器100的功能方块图。微处理器100包括动态重设功能单元128、组态寄存器124、重设单元104、一个或多个指纹单元102、指纹编程寄存器132(例如特定模型寄存器(modelspecificregister,MSR))、以及指纹设定准则表126,其中该指纹设定准则表126记录静态指纹,以及相关的组态设定与指纹产生准则。尽管于图1中未示出,微处理器100还可包括无法动态重设的功能单元。在一实施例中,微处理器100包括一超纯量非循序执行微架构(superscalarout-of-orderexecutionmicroarchitecture),尽管在此所介绍的动态重设的处理可由包括不同微架构的微处理器所执行。在一实施例中,微处理器100包括一x86指令集架构,尽管在此所介绍的动态重设的处理可由包括不同指令集架构的微处理器所执行。组态寄存器124、其保存组态设定,并提供组态设定至动态重设功能单元128以控制其特定方面的操作。可由该组态设定以进行动态重设处理在不同操作方面的例子介绍于下列实施例,但非限定于此。数据撷取组态设定,设定数据如何由系统内存中预先撷取(prefetch)至微处理器100的不同高速寄存中。举例来说,微处理器100可直接预先撷取高可能性的预测数据至L1数据高速缓存中,及/或预先撷取较低可能性的预测数据至一专用预先撷取缓冲器,其中该专用预先撷取缓冲器与L1及L2数据高速缓存分开。在另一实施例中,对于持续触发不需要预先撷取的应用程序,可关闭由数据预先撷取器所执行的数据撷取。在又一实施例中,可关闭数据预先撷取器而不处理在一软件应用程序中预先撷取指令所请求的预先撷取动作,因为他们可能与在微处理器100内部启动的预先撷取产生负面互动的情形。分支预设组态设定,用以设定微处理器100预测分支指令的方式。举例来说,可由分支预测器由指令高速缓存的各数据线所预测的分支指令的数目是可以设定的。除此之外,由分支预测器所使用的独特分支预测机制的数目亦是可以设定的。更进一步,分支预测器可设定为一反向零值跳跃(jumponzero,JZ)分支指令会被经常采取或是不采取。此外,用于索引至位于分支预测器中的一分支目标地址高速缓存(branchtargetaddresscache,BTAC)的哈希算法亦是可以设定的。最后,若在该预定列表中的一个或多个目前运行的软件应用程序倾向于执行高度无法预测的分支指令时,分支预测器可被设定至暂时整个关闭分支预测、或是设定至暂时关闭部分分支预测机制,例如在分支预测器中的一分支目标地址高速缓存。指令高速缓存逐出(eviction)设定,设定微处理器100将指令由指令高速缓存逐出所使用的算法。暂停执行(suspendexecution)组态设定,用以设定微处理器100是否要暂时暂停执行程序指令。举例来说,微处理器100可被设定为暂时暂停执行指令,做为操作系统的空闲程序已经确定被执行一预定时间的响应。L1指令高速寄存大小组态设定、L1数据高速寄存大小组态设定、及L2指令高速寄存大小组态设定,分别用以设定L1指令高速缓存、L1数据高速缓存、及L2高速寄存的大小。举例来说,高速寄存大小可依据目前运行的一个或多个软件应用程序的工作数据集合的大小来进行设定。转译/格式化组态设定,用以设定指令转译器/格式化器如何转译及/或格式化指令。举例来说,可以设定在各时钟周期由指令转译器/格式化器所转译及/或格式化的指令的数目。举例来说,指令转译器/格式化器可设定为在每个时钟周期仅转译及/或格式化单一指令以降低微处理器100的功耗,当此方式可满足正在运行应用程序的需求时。此外,指令转译器/格式化器可经由合并指令而关闭降低功耗。推测寻访(speculativetablewalk)组态设定,用以设定微处理器100的一内存管理单元是否响应一转译侧视缓冲器(translationlookasidebuffer,TLB)的失误(miss)以执行推测页面寻访。举例来说,该内存管理单元可对一推测持续不正确的应用程序关闭其推测寻访的功能,因为这种情况会逐出在转译侧视缓冲器中的其它有用的项目(entry)。在一实施例中,可设定寻访的推测强度。举例来说,该内存管理单元可设定为在所有较旧的储存动作已引退后、或在所有较旧的储存动作的地址已解析、或是不管较旧的储存动作时,仅进行一推测页面寻访。此外,内存管理单元可设定为同时独立控制数据与程序代码的推测寻访。更进一步,内存管理单元可设定为可执行推测寻访,但并不推测地更新转译侧视缓冲器。最后,内存管理单元可设定为辨识那些类型的微执行码或硬件功能可对例如不同的软件或硬件预先撷取进行推测寻访。L1高速缓存失误行为组态设定,用以设定内存管理单元是否响应在L1指令高速缓存的失误时,以序列或平行方式由L2高速缓存及处理器总线请求数据。转送哈希(forwardinghash)组态设定,用以设定微处理器100于地址比较时用来哈希虚拟地址位的算法,其用以检测微处理器100是否应执行一数据转送动作,例如对一较旧的未引退储存指令的读取指令的传送操作、或是在一读取队列及一填充队列之间的传送操作。举例来说,下列情况可被设定:在虚拟地址的页面索引位之外会被进行比较的位数目、哪些非页面索引位会被哈希以产生这些位、以及所选择的位如何被哈希。队列大小组态设定,设定在微处理器100中不同队列的可用大小,例如是储存队列、读取队列、及高速缓存线填充队列。举例来说,不同的队列可被设定至较小的尺寸,当其可满足目前正在运行的应用程序时藉以降低功耗量。发送(issue)尺寸组态设定,设定微处理器110在单一时钟周期中发送至不同执行单元的指令数量。例如,当在每个时钟周期所发送较小数量的指令可满足正在运行的应用程序时,发送尺寸组态设定可设定至相对较小的数值以降低功耗。重新排列缓冲器大小组态设定,设定在重新排列缓冲器中可用项目的数量。举例来说,装置驱动程序可设定重新排列缓冲器项目的数量至一相对较小的数量,当其可满足正在操作的应用程序时藉以降低功耗量。非循序(out-of-orderness)组态设定,设定微处理器100如何利用非循序执行的指令。举例来说,微处理器100可被设定为以一严谨程序顺序以执行指令(亦即没有非循序执行)。除此之外,微处理器100可对深入至指令窗口的程度,以让指令发送器寻找独立指令以发送至执行单元执行。读取延迟组态设定,设定微处理器100的读取延迟机制为关闭或开启。在一实施例中,当微处理器100推测地发送一读取指令时,且若此读取指令与一较旧的储存指令相关且其数据尚无法取得时,表示其可能是有害于效能,此时微处理器100需重新执行该读取指令。为了降低重新执行的可能性,该读取延迟机制会依据重新执行一读取指令的过去历史以选择性地延迟该读取指令的发送。然而,当该读取延迟机制开启时,某些软件应用程序会具有较差效能的倾向。因此,举例来说,对于具有上述倾向的软件应用程序来说,可关闭该读取延迟机制。非时间读取/储存组态设定,设定微处理器100的读取/储存指令的行为,其包括一非时间数据暗示以防止微处理器100高速缓存其数据。在假设微处理器100中的数据高速缓存小于微处理器100的实际数据高速缓存大小且若该数据被高速缓存则会加速执行时,某些软件应用程序会被写入以利用非时间读取/储存指令。因此,举例来说,微处理器100会被设定为高速缓存由包括一非时间数据暗示的读取/储存指令所指定的数据。除此之外,在微处理器100中可被包括非时间数据暗示的读取/储存指令所读取缓冲器的数量亦是可设定的。另一组态设定可选择性地设定微处理器100的硬件分页目录高速缓存(hardwarepagedirectorycache,PDC)以包含分页目录项目(pagedirectoryentries,PDE)或第4阶的分页表项目(fourth-levelpagetableentries,PML4)。另一组态设定可选择性地设定数据及程序代码转译侧视缓冲器(TLB)项目的两个、一个或两者皆不会,被放置至微处理器100的L2转译侧视缓冲器。另一组态设定可设定L2转译侧视缓冲器的大小。另一组态设定可选择性地设定是否已确保一软件预先撷取存储线的配置。即,内存管理单元可被设定为等待完成,直到击中(hit)或已为该软件预先撷取存储线推送一请求为止、或已完成但继续在唤醒时尝试配置该软件预先撷取存储线。另一组态设定可设定自我调整码检测是否开启或关闭。除此之外,若自我调整码检测开启,微处理器100可被设定为先更正或后更正,以及执行或不执行完整机器清除。另一组态设定设定微处理器100的加载及/或储存管线中的不同平行仲裁是否开启或关闭。举例来说,在储存管线中的一加载有效地址(loadeffectiveaddress,LEA)的产生并不需要对整个管线进行仲裁(因为其会先产生结果),因此微处理器100可被设定为允许需要完整管线的另一操作在同时间进行仲裁。更进一步,加载管线可被选择性地设定为允许不需要读取高速缓存的仲裁器与需要读取高速缓存的仲裁器平行地进行仲裁的情形。另一组态设定设定关于写入合并的加载(write-combineloads)的推测程度。举例来说,写入合并的加载可为完整推测、推测但仍然依照顺序、或是非推测。可对与x86MONVNTDQA指令有关的加载进行类似的组态设定。另一组态设定是设定内存管理单元是否要开启或关闭由内存管理单元指示微处理器100的指令排程器在一加载失误需要用新的微操作重新执行之后,应该要完成加载操作的功能。上述方式允许该排程器以推测地安排相依的微操作以与加载结果转送阶段一同排队,而不是在排程前等待提供该结果。此为推测该加载现在具有一有效结果,但若没有有效结果,则需要另一重新执行的操作。另一组态设定设定微处理器100的转送路径以选择性地关闭转送。此组态设定在微处理器后续设计时用以避开所测得的设计缺失特别有效,而且当一特定程序部分由微处理器100执行时该设计缺失本身可能会显露出来。转送的例子可为选择性地关闭,其包括但非限定,寄存器结果转送及加载-储存转送的情形。另一个动态重设功能单元128的动态重设实例,导致寄存器更名单元清除用以维持加载-储存依存性的队列,该队列由寄存器更名单元所使用以影响加载指令排程,用以降低由加载-储存冲突所造成的加载重新执行。一般而言,功能单元128动态重设以清除累计的效能特征状态,其相关于一特定程序部分而言为已知或怀疑为假或变形的。另一个动态重设功能单元128的动态重设实例,导致一条或多条高速缓存线、或整个高速寄存被清除以避免潜在的数据一致性的问题。此方式对于避开当一特定程序部分由微处理器100所执行时会显露其本身的设计缺失特别有用。另一个动态重设功能单元128的动态可重设实例,是为了一架构性指令的一特定例子暂时改变该架构性指令的微程序代码的行为。举例来说,微程序代码对该架构性指令的特定例子执行一代码路径(alternatecodepath),其包含于该架构性指令的一特定程序部分中,并在该架构性指令中的其它例子执行一正常码路径。再次重申,此方式对于避开设计缺失特别有用。重设单元104读取与一相符静态指纹有关的组态设定126,并将组态设定126写入组态寄存器124以重设微处理器100的动态重设功能单元128。在一实施例中,重设单元104包括由微处理器100所执行的微程序代码,其执行读取与该相符静态指纹有关的组态设定126以及写入组态设定126至组态寄存器124。更适宜地,当指纹单元102检测到指纹相符,其会引发将控制权通过陷阱以转往微程序代码。在另一实施例中,重设单元104包括硬件控制逻辑,其可响应指纹单元102通知指纹相符以读取与相符静态指纹有关的组态设定126,并将该相符静态指纹有关的组态设定126写入组态寄存器124。重设单元104及指纹单元102利用控制信号144进行沟通。需了解的是,在微处理器100中并非所有功能单元均是动态可重设的。亦需了解的是,当重设单元104重设动态重设功能单元128时,可能不会写入各个组态寄存器124,且不会各个动态重设功能单元128均被重设,尽管会有至少一组态寄存器124被写入,也会有至少一动态重设功能单元128会被重设。当微处理器100的动态重设功能单元128执行指令并累计指令信息142时,指纹单元102依据可产生动态指纹的数学运算以接收来自微处理器100的动态重设功能单元128的指令信息142,其中动态指纹与静态指纹进行比较。更适宜地,指纹单元102包括多个指纹单元102,各指纹单元102依据不同的指纹产生准测以产生一动态指纹,并将其与一静态指纹进行比较。在一实施例中,有4个分开的指纹单元102,且它们会被逻辑性地链接在一起以完成相对复杂的指令序列的检测。指纹单元102的一实施例会在图2中进一步详述。指纹编程寄存器132可由软件(例如装置驱动程序或基本输入输出系统)进行写入以控制指纹单元102,以及填写静态指纹及其有关组态设定及指纹产生准则126的窗体。在此处所介绍的微处理器100动态重设的一个使用实例是为了增加效能及/或降低微处理器100的功耗,例如当执行程序的已知部分,其效能及功耗会显著地受到动态重设该微处理器100至已知组态的影响。在此所介绍的微处理器100的动态重设处理的使用方式的另一例子是为了防止微处理器100不正确地操作,例如当微处理器100处理一程序的一部分时,若该程序部分由微处理器100以一第一已知组态执行时会导致一功能性错误,但若由微处理器100以一第二已知组态执行时会产生一正确结果。举例来说,当数据预先撷取器用以执行数据预先撷取的一特别积极模式(particularlyaggressivemode)时,若微处理器100执行该程序部分,微处理器100会产生一功能性错误。相反地,当数据预先撷取器执行数据预先撷取的一较不积极模式(lessaggressivemode)或是数据预先撷取已完全关闭时,微处理器100不会产生功能性错误。功能性错误,例如但非限定为,数据损毁、停止条件(例如死结(deadlock)或活结(livelock))、不正常的效能缓慢、以及操作系统未准备好补救的例外情况。引发微处理器100产生功能性错误的设计缺失,可能直到微处理器100大量制造及/或已出货给顾客后仍未被发现。在这种情况下,通过动态重设微处理器100以修正此问题是有帮助的,而不用通过重新设计微处理器100、及/或召回或不贩卖有错误组件的方式来处理。在此介绍的动态重设的实施例的潜在好处是微处理器100可以相对较佳的尺度(granularity)来辨识软件应用程序的部分。此方式对于包括不同部分的软件应用程序来说特别有用,因为软件应用程序的不同部分可依据不同组态而动态重设微处理器100的功能单元而得到好处。举例来说,一电玩游戏可包括一程序加载部分、一初始化部分、一图形计算部分、一使用者输入接收部分、以及一策略计算部分,各个程序部分可在微处理器100功能单元的不同组态下有较佳的效能。需了解的是,若微处理器100较快地执行该程序部分、使用较少功耗以执行该程序部分、及/或正确地执行该程序部分,表示微处理器100的效能较佳。请参考图2,图2示出了依据本发明一实施例中的指纹单元102的详细功能方块图。指纹单元102包括一数学运算电路222、比较器226、一静态指纹232、一衰退(decay)计数器242、以及控制逻辑234。数学运算电路222接收来自图1动态重设功能单元128的指令信息142,并依据一数学运算累计指令信息以产生一结果224,该结果为动态指纹,其中数学运算可参考上述实施例。在图2的实施例中,指令信息142包括该指令的指令索引202(亦即指令地址),一位移字段204、运算码字段206、modRM字段208、SIB字段212、及来自该指令的前缀214。在其它实施例中,其它指令字段包括指令信息142,特别是在使用不同于x86架构的不同指令集架构的实施例。更适宜地,指令集架构具有可变长度指令(例如x86指令即为可变长度),且微处理器100的撷取单元包括一指令格式化单元,当由指令高速缓存撷取指令位的区块并将其格式化至个别指令时,数学运算电路222将在微处理器100的指令格式化单元格式化指令时接收指令信息142。在一实施例中,指令格式化单元可在每个时钟周期格式化至多三个指令,并在每个时钟周期为该至多三个指令提供指令信息142至数学运算电路222。在指令集架构具有固定长度指令的另一实施例中,当由指令高速缓存撷取指令时,指令信息142可由撷取单元所提供。更适宜地,数学运算电路222包括一多输入移位寄存器(multipleinputshiftregister,MISR),其使用一最大计数多项式(maximumcountpolynomial)。更适宜地,当各指令被格式化时,该(选择性过滤的)指令信息142与MISR阶数输出(taps)与最左输入位的布尔互斥或(BooleanXOR)结果再右移一位的现阶段状态进行互斥或运算。在一实施例中,MISR为50位宽,且MISR的阶数为49、9及0以完成该最大计数多项式。在一实施例中,产生一误合(falsematch)的别名指令串(aliasstrand)的可能性大约是1:250(250次中会产生一次)。如上所述,虽然指令串辨识(strandidentification)可能不绝对是唯一的,在多数用途上,该辨识可为充分唯一的(sufficientlyunique),例如是增进效能及改善设计缺失的影响。在一少见的别名指令串误合的例子中,其结果可能为较低的效能、较高的功耗、及/或无法修正在微处理器100设计中的缺失。如上所述,指纹单元102可在每个时钟周期接收用于多个指令的指令信息142,且数学运算电路222执行数学运算以在单一时钟周期中累计所有的指令信息142。进一步而言,在MISR实施例中,数学运算电路222在单一时钟周期中执行所有指令信息142的互斥或运算。数学运算电路222依据来自控制逻辑234所接收的信息(其包括指纹产生准则238)以产生结果。指纹产生准则238包括起始条件、停止条件及重置条件,其在数学运算电路222累计指令信息142以产生动态指纹224时作为控制之用。指纹产生准则238亦指定数学运算电路在累计以产生动态指纹224时的指令信息142的部分(202,204,206,208,212,214),并暗示会被过滤的部分。更适宜地,与被过滤部分有关的位会被插入二进位的0值。比较器226将数学运算电路222所产生的动态指纹与静态指纹232进行比较,并在两个指纹相符时产生一真值于一相符信号228上并提供至控制逻辑234。在一实施例中,当达到一停止条件时,比较器226仅执行比较运算。更适宜地,一装置驱动器及/或微程序代码加载该静态指纹232及指纹产生准则238。当控制逻辑234检测到在该相符信号228上的真值时,控制逻辑234会利用控制信号144以将该相符情况与重设单元104进行沟通。除此之外,控制逻辑234利用一串接信号(chainsignal)244将该相符情况与另一指纹单元102进行沟通,其细节将于后述的图6及图7详述之。控制逻辑234亦接收来自其它指纹单元102的串接信号244。更进一步,控制逻辑234可加载一衰减计数器242以回应该相符情况,而衰减计数器的运算将于图5的实施例中详述之。请参考图3,图3示出了在本发明一实施例中用以产生已知目标程序部分及其有关的静态指纹、组态设定及指纹产生准则的数据库的流程图。该流程开始于方块302。在方块302,由工程师辨识程序部分的列表,其用于最佳化微处理器100的动态重设功能单元128的组态,例如增进其效能(较快的程序部分执行或较低的功耗)及/或修正错误。流程前进至方块304。在方块304,工程师对在方块302中所辨识的程序部分的一个,决定动态重设功能单元128的最佳化组态设定。流程前进至方块306。在方块306,工程师辨识与在方块304中所辨识的程序部分有关的指令串(strand),并设计指纹产生准则,其可用以产生用于该指令串的一指纹。流程前进至方块308。在方块308,工程师利用在方块306所设计的指纹产生准则,以产生用于与该程序部分有关的该指令串的一静态指纹。流程前进至方块312。在方块312,工程师储存与该程序部分有关的静态指纹、组态设定、以及指纹产生准则。流程前进至方块314。在方块314,工程师针对在方块302中所指出的各个其它程序部分重复方块304、306、308及312以编译一数据库。流程结束于方块314。请参考图4,图4示出了本发明一实施例中微处理器100动态重设其本身的操作流程图。流程开始于方块402。在方块402,微处理器100接收图1的指纹设定准则表126以及相关的组态设定与指纹产生准则。更适宜地,指纹设定准则表126包括依据图3流程所编译的数据库的一部分。指纹设定准则表126是可编程的。更适宜地,一装置驱动器将该指纹设定准则表126提供至该微处理器100。举例来说,该装置驱动器可对操作系统的一个或多个正在操作的软件应用程序判断是否为编译于数据库者,且响应上述动作而提供与该正在操作的软件应用程序的程序部分有关的静态指纹、组态设定及指纹产生准则表126。选择性地,系统韧体,例如BIOS,提供指纹设定准则表126至微处理器100,特别是在动态重设用于修正错误的情况。另外,选择性地,指纹设定准则表126可通过微程序代码的一更新(patch)而加载微处理器100。更适宜地,在微处理器100重置后且指纹产生准则仍不确定地、或至少在微处理器100再度重置为止,微程序代码更新会被加载,这个方式在某些情况下会特别有帮助,例如动态重设用于修正错误时,其会在微处理器100重置后的软件执行过程的早期就显露出来。该指纹设定准则表126可包括数量远大于指纹单元102的程序部分的信息,且当程序执行时,微处理器100的微程序代码可动态地加载静态指纹及指纹产生准则至指纹单元102而不需要装置驱动器的介入。更适宜地,指纹设定准则表126被存放至微处理器100的一私有内存,其无法被架构程序所存取,但可由微处理器100的微程序代码所存取。流程前进至方块404。在方块404,指纹单元102加载静态指纹及指纹产生准则。如上所述,其会发生在装置驱动器写入指纹设定准则表126及/或当微程序代码检测到事件,例如是指纹单元102已检测到指纹相符时(例如图7的方块703)。流程前进至方块406。在方块406,当动态重设功能单元128正依据组态寄存器124中的目前组态设定而执行指令时,指纹单元102会依据在方块404所加载的指纹产生准则,并基于数学运算累计指令信息142藉以产生动态指纹224,再将其与在方块404中所加载的静态指纹232进行比较。流程前进至决定方块408。在决定方块408,指纹单元102(例如比较器226及控制逻辑234)判断静态指纹及动态指纹是否相符。若相符则流程前进至方块412;否则,流程前进至方块406。在方块412,控制逻辑234利用控制信号144通知重设单元104该相符情况,且重设单元104会响应地利用与在方块408中与动态指纹224相符的静态指纹232有关的组态设定来重设动态重设功能单元128(例如通过写入组态寄存器124)。流程结束于方块412。请参考图5,图5示出了依据本发明一实施例中微处理器110动态重设其本身的更进一步操作的流程图。该流程由方块514开始,特别是由图4的方块412开始。在方块514,控制逻辑234将相关于在方块408中相符的静态指纹的衰减计数值加载至衰减计数器242。更适宜地,该衰减计数值包括于图1中的指纹设定准则表126。流程前进至方块516。在方块516,周期性地-特别是每时钟周期中-该衰减计数器242会减少计数。流程前进至决定方块518。在决定方块518,控制逻辑234判断衰减计数值是否已过期(expired)。若是,则该流程前进至方块522;否则,该流程回到方块516。在方块522,控制逻辑234利用控制信号144通知重设单元104该衰减计数器242已过期,且该重设单元104响应地以指纹设定准则表126中的预设组态设定来重设动态重设功能单元128。在一实施例中,预设组态设定被编程至微程序代码中。在一实施例中,预设组态设定包括于指纹设定准则表126中。在一实施例中,预设组态设定为在方块412中的动态重设动作执行前的先前组态设定(亦即在方块406中微处理器100正在执行指令的目前组态设定)。在一实施例中,该多个组态设定的一子集合会回到其默认值,同时该多个组态设定的另一子集合会维持在方块412所写入的数值。更适宜地,这些子集合均定义于指纹设定准则表126中。流程结束于方块522。请参考图6,图6示出了依据本发明又一实施例中微处理器100动态重设其本身的操作流程图。该流程开始于方块602。在方块602,指纹单元102中的一个(用第一指纹单元表示)检测到其动态指纹224及其静态指纹232相符,并表示该相符情况,例如通过一串表示符(chainindicator)。流程前进至方块604。在方块604,不同的指纹单元102(用第二指纹单元表示)接收在方块602由第一指纹单元所产生的表示符,并响应地开始依据基于指纹产生准则的数学运算以累计指令信息142,藉以产生动态指纹224并将其与静态指纹232进行比较。流程前进至方块606。在方块606,第二指纹单元检测其动态指纹224及其静态指纹232的相符情况。流程前进至方块608。在方块608,控制逻辑234以控制信号144通知重设单元104相符情况已找到,且重设单元104响应地以在方块606中与动态指纹224相符的静态指纹232有关的组态设定126,以重设动态重设功能单元128。流程结束于方块608。请参考图7,图7示出了依据本发明又一实施例中微处理器100动态重设其本身的操作流程图。流程开始于方块702。在方块702,指纹单元102的一个检测到其动态指纹224及其静态指纹232相符,并表示该相符情况,例如通过控制信号144。流程前进至方块703。在方块703,重设单元104加载具有一新静态指纹232及其相关的指纹产生准则至指纹单元102,藉以响应在方块702中已找到该相符情况的表示。流程前进至方块704。在方块704,指纹单元102依据基于在方块703中所加载的新指纹产生准则的数学运算以累计指令信息142,藉以产生动态指纹224,并将其与静态指纹232进行比较。流程前进至方块706。在方块706,指纹单元102检测到其动态指纹224及其静态指纹232的一相符情况。流程前进至方块708。在方块708,控制逻辑234以控制信号144通知重设单元104已找到新的相符情况,且重设单元104响应地以在方块706中与动态指纹224相符的新静态指纹232有关的组态设定以重设动态重设功能单元128。流程结束于方块708。虽然图7描述指纹单元102仅一次有效地串接(chain)至其本身,更适宜地,指纹单元102可串接至其本身更多次。更进一步,虽然图6中仅描述两个指纹单元102的串接,更适宜地,所有的指纹单元102可依同样的方式进行串接。更进一步,图6的实施例可与图7的实施例合并,使得用于正在搜寻的相符情况的目前加载至指纹单元102的静态指纹的集合会动态地变化,使得具有长于指纹单元102的数量的程序部分的链接的数量可被检测到,且动态重设功能单元128亦可依据需求被动态重设。请参考图8,图8示出了依据本发明另一实施例中图1的指纹单元102的方块图。图8的指纹单元102与图2中的指纹单元102类似,然而其包括了一指令计数器822、一第二比较器826、以及一静态指令计数值832。指令计数器822接收来自图1的动态重设功能单元128的指令信息142,其为一动态计数值,并在每次遇到由控制逻辑234所接收的指令计数产生准则838所指定类型的指令时产生一结果824。更适宜地,指令计数产生准则838指定要计数的指令类型。在一实施例中,要计数的指令类型包括所有指令、副程序呼叫类型指令、回传类型指令、NOP类型指令、以及经陷阱至微程序代码的指令(意即用微程序代码实现)。在一实施例中,数学运算电路222仅累计特定类型且由指令计数器所计数的指令信息142,而所排除的指令类型的指令信息142不会被数学运算电路222所累计。在一实施例中,NOP指令包括除了单字节x86NOP指令之外的指令,例如是多字节指令,其可有效地作为一NOP指令(0x90),其细节将于图10中详述。比较器826比较由指令计数器822所产生的比较动态指令计数值824及静态指令计数值832,若两个指令计数值相符,则产生一真值于提供至控制逻辑234的一第二相符信号。在一实施例中,当达到一停止条件时,比较器826仅进行比较动作。更适宜地,一装置驱动器及/或微程序代码加载静态指令计数值832及指令计数产生准则838。当控制逻辑234检测到在相符信号828的一真值时,控制逻辑234利用控制信号144通知重设单元104该相符情况。除此之外,控制逻辑234利用一串接信号244通知其它的指纹单元102该相符情况。控制逻辑234可加载衰减计数值242以回应该相符情况。更适宜地,可采用类似于图3所述的方式将静态指令计数值832及指令计数产生准则838编译至已知目标程序部分的数据库中。请参考图9,图9示出了依据本发明一实施例中的微处理器100动态重设其本身的操作流程图。图9在某些方面与图4类似;然而,图9描述指纹单元102动态重设微处理器100的操作是响应检测到一静态指令计数值而不是一静态指纹,其细节如下所述。然而,需注意的是指纹单元102可用以同时检测指纹及指令计数值。除此之外,指纹单元102可用串接的方式操作(例如图6及图7的实施例所述),让指纹单元102加载以同时检测所需的指纹及指令计数值以动态重设微处理器100。该流程开始于方块902。在方块902,微处理器100接收包括静态指令计数值及图1中有关的组态设定及指令计数产生准则的指纹设定准则表126。流程前进至方块904。在方块904,指纹单元102加载静态指令计数值及指令计数产生准则。流程前进至方块906。在方块906,当动态重设功能单元128正依据在组态寄存器124中的目前组态设定执行指令时,指纹单元102依据在方块904中所加载的指令计数产生准则以计数指令,藉以产生动态指令计数值824,并将其与在方块904中所加载的静态指令计数值832进行比较。流程前进至决定方块908。在决定方块908,指纹单元102(例如比较器826及控制逻辑234)决定在静态指令计数值及动态指令计数值之间是否相符。若是,则该流程前进至方块912;否则,流程回到方块906。在方块912,控制逻辑234利用控制信号144通知重设单元104该相符情况,且重设单元104响应地利用在方块908中与动态指令计数值相符的静态指令计数值有关的组态设定以重设动态重设功能单元128(例如,对组态寄存器124进行写入操作)。流程结束于方块912。上述所介绍的动态重设的实施例包含成本取舍的议题。首先,指纹单元的硬件芯片实际面积及功耗会有成本。第二,改变组态设定亦会有成本,其来自暂时停止(suspend)指令处理以改变组态设定。此成本亦可来自所辨识别名指令串为少数实例而改变的组态设定所导致较低的效能。整合NOP滑动检测器在此所介绍的指纹单元的另一个用处是检测一NOP滑动(可称为NOPslide或NOPsled)。NOP滑动指来自一处理器撷取并执行指令的一内存的连续NOP指令序列。NOP滑动通常是入侵者未经许可存取计算机系统的途径。NOP指令指可执行一操作的指令,但它并不影响处理器的架构状态、或是在入侵者试图未经许可存取计算机系统,包括处理器所接受的情形下,一部分影响架构状态。NOP滑动的使用在计算机安全的领域为公知技术,但在此会简短介绍。入侵者会试图发掘在计算机系统上操作的具有执行权限(executiveprivileges)软件的弱点。通过发现弱点,入侵者可让「壳码(shellcode)」写入至计算机系统的内存中。壳码会执行对入侵者有利的动作,例如提供系统的存取执行权限,其目的是让控制权转移到壳码。然而,某些已发现弱点的性质是让在内存中的目标地址不知不觉地转移,因此目标地址是无法准确得知的。当然,在一些例子中根本不知道目标地址,而入侵者依赖少量的相似性统计将目标地址视为壳码。第一种方式是入侵者试图以写入许多壳码的拷贝至内存来增强少量相似度统计。第二种方式是用许多不同次数来尝试攻击。第三种方式是使用NOP滑动。入侵者会将NOP滑动写入在壳码之前,亦即,其可为转移控制权提供一安全降落点。NOP滑动可能非常大,举例来说,可以是数十万字节大小,只要目标地址的控制权转移到NOP滑动之内的某处,处理器会仅执行NOP指令,直到其达到并执行壳码为止。执行(一可能大数量)的NOP指令对于入侵者来说是可接受的,因为除非是入侵者所不关心的方式,NOP指令不会改变处理器的架构状态。入侵者可能会写入NOP滑动的许多拷贝及壳码,且可能尝试许多次以使用这种方式进行入侵,而上述全部方式的合并可增进取得已执行壳码的相似度。因为NOP滑动常常会包含于在入侵者的攻击中,计算机系统可分析在网络上传输至一计算机系统的封包以搜寻一NOP滑动。若在一封包中检测到NOP滑动,该封包会被丢弃(discard)。该技巧常常用于网络攻击检测系统(networkintrusiondetectionsystem,NIDS)。NIDS的缺点是封包可能被加密,因此会更难检测NOP滑动。更进一步,入侵者的输入包括NOP滑动及壳码亦可能被加密。在此处所介绍的NOP滑动检测器实施例的优点,是其可在当处理器中的NOP指令序列将要被执行时检测该序列,也因此可保证在当时一定会被译码且被NOP滑动检测器所检查。请参考图10,图10示出了依据本发明一实施例中微处理器100检测NOP滑动的操作流程图,特别是指纹单元102被使用为一NOP滑动检测器。NOP指令为可执行一动作的指令,其不会影响到处理器的架构状态(除了更新指令索引)或是仅以一预定方式影响架构状态。微处理器100的设计者在设计预定方式时,需了解对入侵者而言有哪些未经许可而得到计算机系统,包括微处理器100,的存取权的方式是可接受的,且此方式会随着壳码所采取的动作而变化。依据不同实施例,在方块1004由指令计数器822所计数的NOP指令的列表,其为了重置条件的目的而用于判断非NOP指令,如下所述-包括下面多种组合:微处理器100的指令集中的架构性定义的NOP指令(例如x86架构NOP指令,0x90);分支(branch)指令,其分支至下一循序指令;除了架构状态的一预定集合之外,例如是一个或两个条件标记寄存器(例如x86EFLAGS),及堆栈索引寄存器,不会改变微处理器100的架构状态的指令。例如下列x86架构指令:PUSHES(0x06)、PUSHCS(0x0E)、PUSHSS(0x16)、PUSHDS(0x1E)、PUSHregister(0x50-0x57)、PUSHSP(0x5C)、PUSHA(0x60)、WAIT(0x9B)、SAHF(0x9E)、REPNEprefix(0xF2)、CLD(0xFC)、STD(0xFD)、CLC(0xF8)、STC(0xF9)、CMC(0xF5)。除此之外,在微处理器100的指令集架构具有变长度指令的一实施例中,NOP指令的列表会被包含于包括多字节NOP指令的多种组合中,其中个别所取得的指令的各字节为一NOP指令。换个方式来说,一多字节NOP指令具有一种特性,使得若控制权转移至指令的任何字节,剩下的字节或指令的字节会构成微处理器100的指令集架构所定义的一有效指令(例如不会产生一无效指令例外),否则具有与一单字节NOP指令相同的特性。下列例子为x86架构的多字节NOP指令:2字节CMP指令,其中modRM位具有一单字节NOP指令(ox38-0x3B)的数值;2字节CMP指令,其中的直接字节具有一单元位组NOP指令(0x3C)的数值;3字节CMP指,其中的modRM字节及直接字节具有一单字节NOP指令(0x80,0x83)的数值;2字节TST指令,其中modRM字节具有一单字节NOP指令(0x84-0x85)的数值;2字节TST指令,其中的直接字节具有一单一字节NOP指令(0xA8)的数值;2字节包装指令,其中modRM字节具有一单一字节NOP指令的数值,例如是PMADDWD(0xF5)、PSUBB(0xF8)、PSUBW(0xF9)、PADDB(0xFC)、PADDW(0xFD)。流程开始于方块1002。在方块1002,指纹单元102加载静态指令计数值822及指令计数产生准则838,如同图8及图9的实施例所述的方式。更适宜地,静态指令计数值832可让使用者或系统软件通过指纹编程寄存器132而可编程。在一实施例中,静态指令计数值832通过微处理器100的熔丝而可编程。在一实施例中,起始条件为检测一回传指令,重置条件为检测到不是NOP指令的指令(即为非NOP指令),且没有指定停止条件。其它实施例亦考量于本发明中,例如其起始条件为检测到一子程序呼叫指令、由中断指令回传、或是一系统呼叫或回传指令。流程前进至方块1004。在方块1004,当微处理器100正撷取并执行指令,指纹单元102依据在方块1002所指出的指令计数产生准则838以计算连续NOP指令,藉以产生一动态指令计数值824,并以所产生的动态指令计数值824与在方块1002所加载的静态指令计数值832进行比较。流程前进至决定方块1006。在决定方块1006,指纹单元102判断动态指令计数值824是否与静态指令计数值832相符。若是,则流程前进至方块1008;否则,流程回到方块1004。在方块1008,指纹单元102响应微处理器100暂停(suspend)架构指令的执行以表示该相符情况。更适宜地,指纹单元102造成微程序代码的陷阱(trap)以响应检测到该相符情况(例如,回应检测到NOP滑动)。在一实施例中,微程序代码产生一无效运算码错误(例如x86架构的INT6)。在一实施例中,微程序代码产生一机器检查例外(machinecheckexception,例如是x86架构的#MC,vector编号18)。在一实施例中,若微处理器100处于一虚拟机器模式(例如是x86的VMXmode),该微程序代码离开该虚拟机器模式。在一实施例中,若微处理器处于一信任执行模式(trustedexecutionmode),微程序代码采取一安全例外动作(securityexception)。流程结束于方块1008。虽然指纹单元及数学运算电路的特定实施例已被揭露,需了解的是其它实施例可用于产生动态指纹及指令计数值,并检测静态指纹及指令计数值的相符情况。虽然以上叙述本发明多种实施方式,必须声明的是,上述内容乃本技术的部分应用例子,并非用来限定本发明的范围。本领域技术人员可依循本发明特征,以现有技术另外发展出许多变形。例如,可以软件方式实现本发明所揭露的内容,例如,所揭露的设备或方法的功能、制作、模型化、仿真、说明以及/或测试。上述软件可采用常见的程序语言(例如,C、C++)、硬件描述语言(hardwaredescriptionlanguage,HDL)包括VerilogHDL、VHDL…等或其它可用的程序语言。上述软件可载于现有的任何计算机储存媒体,例如,磁记录装置(magnetictape)、半导体(semiconductor)、磁盘(magneticdisk)、或光盘(opticaldisc、如CD-ROM、DVD-ROM等),也可载于网络、有线系统、或其它通讯媒体。本发明所揭露的各种装置与方法可由一半导体智慧财产权核心─例如一微处理器核心,可由硬件描述语言实现─保护,且可被转换为硬件型式,以集成电路方式制作。此外,所揭露的装置与方法也可由硬件与软件共同设计实现。因此,本发明不应受上述任何实施方式所限定,应当根据本发明权利要求的内容作解读。特别是,本发明可被实现于一微处理器中,实现一般常用的计算机。本发明
技术领域
:人员有可能基于本发明,以所揭露的概念以及所述的特殊实施方式为基础,设计或调整其它结构,以在不偏离本发明权利要求的前提下,发展与本发明具有同样目的的技术。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1