专利名称:具有特别模块寄存器的微处理器及存取保护方法
技术领域:
本发明通常相关于微处理器领域,特别是关于微处理器的 特别模块寄存器的限制存取。
背景技术:
现今的微处理器包括实体上可见于程序的通用寄存器。程 序使用通用寄存器以执行其必要的功能,例如算数和逻辑的计 算,或于微处理器及存储器或输入/输出装置间搬移数据。例如,
在符合英特尔(Intel)IA-32架构(通常也称为x86架构)的微处理 器内,通用寄存器包括EAX、 EBX、 ECX、 EDX、 ESI、 EDI、 ESP及EBP寄存器,以及x86浮点数寄存器集和与多媒体相关的 MMX及XMM寄存器集。
此外,微处理器包括程序可存取的寄存器亦变得更为普遍, 但上述寄存器并不是意指通用寄存器,也就是说除非尝试存取 非通用寄存器的程序具有存取必须的授权及权限,否则微处理 器将限制非通用寄存器的存取。例如,在与x86相容的微处理器 内,存在多个特别模块寄存器(model-specific registers, MSRs), 而这种特别模块寄存器为执行于最高权限层级的程序才能存取 的控制寄存器。特别模块寄存器通常允许系统软件(如权限软件) 致能、禁能或设定微处理器的多种特征。特别的是,上述特征 可能是微处理器型号所特有。上述特征的例子包括性能、侦错、 测试、监测或电源管理,或其他特征。举例而言,于2006年6 月出版的英特尔IA-32架构软件开发者手册中,第3B巻系统 程序指引,第2部的"特别模块寄存器"(MSRs)中,里面就有 一清单用以记载被多种英特尔微处理器型号所包括的特别模块寄存器。
许多由特别模块寄存器所控制的特征相对而言是有益处的
(benign)。然而,某些由特别模块寄存器所控制的特征却能严重 影响微处理器的运作。由于这些潜在的严重影响, 一些微处理 器制造商已经更进 一 步地采取其他措施而不仅是要求更高的权 限层级以便存取这些"危险,,的特别模块寄存器。例如,由超 樣i(Advanced Micro Devices, Inc., AMD⑧)制造的部分孩i处理器 型号要求系统软件在通用寄存器提供密码,以存取处理器的特 别模块寄存器的子集(subset),即那些用以控制微处理器中被制 造商认为危险的运作的特别模块寄存器。
以密码保护限制特别模块寄存器的存取具有优点,然而, 其亦因系统软件必须存取特别模块寄存器而增加了系统软件的 负担。特别的是,以密码保护限制处理器中特别模块寄存器子 集的存取也引起制造商是否能正确识别需要密码保护的特别模 块寄存器子集。习惯上,密码保护特别模块寄存器的子集是被 写死的(hardcoded),即,当制造商制造微处理器时,特别模块 寄存器的子集就被确定了 。若制造商稍后欲将以密码保护的特 别模块寄存器变成无密码保护的特别模块寄存器,或是欲将无 密码保护的特别模块寄存器变成以密码保护的特别模块寄存 器,上述方式是有问题的。由此观点看来,制造商很可能将必 须丢弃那些已经制造好的且具有不想要的密码保护限制的特别 模块寄存器子集,而造成制造商大量的收益损失。选择出密码 保护错误的特别模块寄存器的错误机率,随着每 一 个型号的特 别模块寄存器的数量增加而增加,并且现今特别模块寄存器的 数量已经激增。所以,亟需一种在微处理器被制造后,改变密 码保护特别模块寄存器的子集的方法。
发明内容
本发明提供一种在微处理器已经被制造后,改变在微处理 器中受密码保护的特别模块寄存器的子集的方法,此方法是在 微处理器内制作与每个特别模块寄存器有关的一熔丝,而熔丝 可于随后的微处理器的制造过程被烧断。当与特别模块寄存器 有关的熔丝被烧断时,会造成特别模块寄存器的密码保护/非密 码保护的预设状态被改变,因此允许微处理器中的密码保护特
别模块寄存器的子集被改变。
在一实施例中,本发明提供一种具有多个特别模块寄存器 的微处理器。此微处理器包括多个特别模块寄存器以及多条熔 丝,每个特别模块寄存器具有一预设值,上述预设值中的每一 个与对应的特别模块寄存器相关,用以表示特别模块寄存器受 密码保护或不受密码保护,并且熔丝中的每 一 条与特别模块寄 存器中的一个相关,用以于被烧断时,将相关的预设值从表示 受密码保护变成表示不受密码保护或从表示不受密码保护变成 表示受密码保护。微处理器更包括一微程序码,当微处理器遇 到用以存取多个特别模块寄存器的 一 特定的特别模块寄存器的
一指令时,用以执行以下动作判断与特定的特别模块寄存器 相关的熔丝是否被烧断;若与特定的特别模块寄存器相关的熔 丝未被烧断,则使用与特定的特别模块寄存器相关的预设值作 为特定的特别模块寄存器受密码保护与否的 一指示符;若与特 定的特别模块寄存器相关的熔丝被烧断,则改变与特定的特别 模块寄存器相关的预设值,用以产生指示符;若指示符表示特 定的特别模块寄存器受密码保护,则保护至特定的特别模块寄 存器的存取;以及若指示符表示特定的特别模块寄存器不受密 码保护,则解除至特定的特别模块寄存器的存取的保护。
在另一实施例中,本发明才是供一种存取保护方法,适用以保护对一微处理器内的多个特别模块寄存器的存取,上述存取
保护方法包括制造微处理器以包括多个特别模块寄存器,每 个特别模块寄存器具有一预设值,每个预设值与对应的特别模 块寄存器相关,用以表示特别模块寄存器受密码保护与否;以 及制造微处理器以包括多个熔丝,每个熔丝与特别模块寄存器 中的一个相关,用以于被烧断时,将相关的预设值从受表示密 码保护变成表示不受密码保护或从表示不受密码保护变成表示 受密码保护。在一个实施例中,存取保护方法更包括于微处理 器的制造之后,若发现上述特别模块寄存器的预设值有误,则 烧断 一 条或多条上述熔丝以改变所相关的预设值。
在另一实施例中,本发明提供一种存取保护方法,适用以 保护对 一微处理器内特别模块寄存器的存取,上述存取保护方 法包括遇到(encounter)用以存取多个特别模块寄存器的一特 定的特别模块寄存器的一指令;判断与特定的特别模块寄存器 相关的 一 熔丝被烧断与否;若与特定的特别模块寄存器相关的 熔丝未被烧断,则使用与特定的特别模块寄存器相关的一预设 值作为一指示符,用以表示特定的特别模块寄存器受密码保护 与否;若与特定的特别模块寄存器相关的熔丝被烧断,则改变 (toggle)与特别的模块寄存器相关的预设值,用以产生指示符; 若指示符表示特定的特别模块寄存器受密码保护,则保护至特 定的特别模块寄存器的存取;以及若指示符表示特定的特别模 块寄存器不受密码保护,则解除至特定的特别模块寄存器的保 护存取。
通过避免制造出具有不想要的密码保护特别模块寄存器的 子集的微处理器的方式,本发明的优点是可节省微处理器制造 商大量潜在的费用。再者,若制造商希望将被密码保护的特别 模块寄存器改成不被密码保护的特别模块寄存器(反之亦然),则本发明可以大幅减少微处理器制造商的特定型号的停止出货 的时间,因本发明允许制造商仅以在制造过程中烧断熔丝的方 式快速解决问题,而不需要重新设计半导体及/或微处理器的光 罩而制造新的微处理器。
图l为依据本发明所描绘的模块图。
图2为流程图,依据本发明描绘图l的微处理器的设计与制 造的过程的实施例。
图3为流程图,依据本发明描绘图l的微处理器在处理 RDMSR/WRMSR指令时的操作。
附图中符号的简单说明如下
100:微处理器102:指令快取存
104:指令编译器106:指令调度器
108:异或单元112:比较器
114:执行单元116:微程序码
118:预设(保护)值
122:RDMSR/WRMSR微程序码程序124:特别模块寄存器126:加密引擎
128:加密锁钥132:熔丝
134:指示符136:输入端
138:密码符合指示符142、146:密码
144:通用寄存器集152:失效熔丝
202 208、 302 ~ 318: 流程
具体实施例方式
参考图l,图l为一模块图,用以描绘依据本发明的一微处理器IOO。微处理器100包括一指令快取存储器102,用以储存被 微处理器100取回及执行的程序指令。上述程序指令可能包括用 以存取多个特别模块寄存器124的指令。在一实施例中,部分的 特别模块寄存器为微处理器的非结构性(non-architectural)的特 别模块寄存器。在一实施例中,存取特别模块寄存器124的程序 指令为x86架构的RDMSR/WRMSR指令。每 一 个特别模块寄存 器124不是受到密码保护的特别模块寄存器,就是未受到密码保 护的特别模块寄存器。特别的是,若特别模块寄存器124为受到 密码保护的特别模块寄存器,则含有欲存取特别模块寄存器12 4 的指令的程序必须提供正确的密码,用以使指令可以指示微处 理器100存取特别模块寄存器。否则,微处理器100将拒绝至特 别模块寄存器124的存取,如后详述。
微处理器100亦包括多条熔丝132。熔丝132用以使微处理器 100的制造商可在樣i处理器100的输入端136提供指定电压 (prescribed voltage),以选4奪性地烧断熔丝132。在一实施例中, 制造商通过J TA G扫描接口指定要烧断的熔丝13 2 。微处理器10 0 用以从每条熔丝132读出 一个数值,其中上述数值代表熔丝132 被烧断与否。每条熔丝132与一个特别模块寄存器124相关连。 此外,每个特别模块寄存器124具有与其相关的预设(保护)值 118,预设(保护)值118以预设数值的方式表示特别模块寄存器 12 4受到密码保护与否。这样的好处在于微处理器10 0的制造商 可以借着烧断与特别模块寄存器124相关的熔丝132的方式,改 变特别模块寄存器124的预设(保护)值118,进而改变其保护特 征,如后详述。在一实施例中,微处理器100包括与每个特别模 块寄存器124相关的两个预设(保护)值118,以及与每个特别模 块寄存器124相关的两条熔丝132:熔丝的一条是有关于至特别 模块寄存器124的读的存取,而熔丝的另 一条有关于至特别模块寄存器124的写的存取。因此,无论特别模块寄存器124受到密 码保护与否,对至特别模块寄存器124的读及写的存取可以是不 同的,如同之后图3的流程306所详述。
参考图2,图2为一流程图,用以描绘图1的微处理器100的 设计与制造过程的实施例。流程始于流程202。
在流程202中,制造商决定哪个特别模块寄存器124在受密 码保护的特别模块寄存器的清单内,而哪个特别模块寄存器124 在不受密码保护的特别模块寄存器的清单内。然后制造商在微 处理器10 0内针对每个特别模块寄存器12 4设计预设(保护)值 118。 一般而言,若制造商不想让一般使用者能够存取特别模块 寄存器124,则制造商会决定让特别模块寄存器124被密码保护, 但会允许被授权的使用者存取特别模块寄存器124。一个被授权 的使用者的例子为在其主机板或系统中使用微处理器IOO的主 机板制造商或系统制造商。例如,为了执行微处理器100的配置 与测试,被授权的使用者可能需要存取受密码保护的特另'J模块 寄存器124。然而,制造商不希望其他的使用者,例如系统的终 端使用者,与被授权的使用者一样地能够存取特别模块寄存器 124,用以执行相同的配置与测试。所以,制造商将提供必要的 密码给被授权的使用者,使其能够存取受到密码保护的特另'J模 块寄存器124。在一实施例中,每个受到密码保护的特别模块寄 存器124要求不同的密码以存取其本身,借此可使制造商针对各 个受到密码保护的特别模块寄存器124,提供选择性的存取,而 不是允许被授权的使用者存取所有受到密码保护的特另模块寄 存器124。在一实施例中,预设(保护)值118为一被编码至微处 理器1 OO的微程序码116(如图1中所示)的常数值。此流程前进至 流程204。
在流程204中,制造商一起制造微处理器100与图l的熔丝132,意即与每个特别模块寄存器124相关的熔丝132。此外,制 造商将微处理器10 0与流程202中所设定的特别模块寄存器的预 设(保护)值118 —起制造。如上所述,在一实施例中,制造商以 在微程序码116内包括预设(保护)值118为常数值的方式,将预 设(保护)值118设计至樣史处理器100中。此流程前进至流程206。
在流程206中,制造商发现在流程202中,当其在决定被密 码保护及不被密码保护的特别模块寄存器的清单时,发生了错 误。在一实施例中,制造商发现在被密码保护的特别模块寄存 器的清单中,包括一个不应该被密码保护的特别模块寄存器 12 4;或者,制造商发现受到密码保护的特别模块寄存器清单内, 没有包括 一 个应该受到密码保护的特别模块寄存器12 4 。例如, 制造商可能指定一个预设(保护)值118至特别模块寄存器124而 使特别模块寄存器12 4受到密码保护,但是稍后却发现BIO S必 须存取特别模块寄存器124。相反地,制造商可能指定一个预设 (保护)值118至特别模块寄存器124而使特别模块寄存器124不 受到密码保护,但是稍后却发现终端使用者正在以制造商不愿 意见到的方式存取特别模块寄存器12 4以改变微处理器的配置。 流程前进至流程208。
在流程208中,制造商烧断与特别模块寄存器124相关的熔 丝132而使其预设(保护)值118被改变(toggled)。制造商可部分地 烧断已经被制造和库存的微处理器的熔丝132而使其预设(保护) 值118被改变。换句话说,制造商可能在之后所有微处理器的制 造过程中,使用流程208的步骤。再者,制造商可烧断多个熔丝 132用以修正密码保护清单的多个错误。再者,制造商可在微处 理器100的使用期限之内在流程206中多次发现错误,并且借着 流程2 0 8的步骤修正多个特别模块寄存器12 4的错误。流程终止 于流程208。本发明的 一 个重要优点为可使制造商节省大量的时间及金 钱,乃至因此拥有良好的声誉。特别地,在一个不具备本发明 优点的已知的微处理器中,制造商可能必须停止某些商品的出 货,直到他们重新设计出 一 个具有已经更改保护特征的特别模
块寄存器124的半导体光罩为止。再者, 一般微处理器的制造商 可能必须回收具有错误保护特征的特别模块寄存器12 4的所有 已经制造的商品。然而,本发明的微处理器100的制造商可以在 已经制造或将来制造的商品,简单地用烧断合适的熔丝132的方 式解决上述问题,因而节省数个星期的时间和大量的金钱,特 别是当微处理器100已经在大量生产的时候。
重新参考图1,指令编译器104从指令快取存储器102接收指 令,并且对于微处理器100的宏指令集的一些指令而言,指令编 译器104将指令(也称为宏指令;macroinstruction)编译成 一 个或 多个微指令(microinstructions),其中微指令实际上在微处理器 100的执行单元114被执行的。微指令一般比宏指令简单。然而, 对于微处理器100的宏指令集的某些指令而言,指令编译器104 将其控制转移至微指令的微控制码序列,其中上述微控制码序 列储存于微程序码116之内。特别的是,当指令编译器104遇到 (encounters)用以存取(读或写)特别模块寄存器124的宏指令时, 指令编译器104将其控制转移至合适的程序(routine),其中上述 程序在微程序码116之内。在一实施例中,当指令编译器104遇 到x86的RDMSR/WRMSR指令时,指令编_泽器104将其控制转移 至合适的RDMSR/WRMSR微程序码程序122 。
微程序码116包括每一个特别模块寄存器124的预设(保护) 值118,预设(保护)值118指定特别模块寄存器124受到密码保护 与否。特别的是,若特别模块寄存器124为受到密码保护的特别 模块寄存器,则程序必须提供正确的密码,用以让RDMSR/WRMSR指令指示微处理器1 OO去存取特别模块寄存器 124,否则微处理器1 OO将会中止(abort) RDMSR/WRMSR指令。 在一实施例中,程序由微处理器100的通用寄存器(general purpose register, GPR)集144内的寄存器提供密码142。在一实 施例中,程序由一存储器提供密码142,而不是从GPR集144。 在一实施例中,程序由MSR 124提供密码142,而不是从GPR集 144执行WRMSR指令至不受密码保护的特别模块寄存器124。
指令调度器(instruction dispatcher"06用以从指令编-泽器 104或微程序码116接收微指令,并且发送微指令至执行单元 114。执行单元114包括异或(XOR)单元108。异或单元108对两 个输入值执行布尔(Boolean)代数的异或运算。特别的是,异或 单元108为特别模块寄存器124从微程序码116接收预设(保护) 值118,并且接收与特别模块寄存器124相关的(保护)熔丝132的
指示符134。
执行单元114亦包括比较器112,用以接收由程序提供的特 别模块寄存器的密码142以及由微处理器100产生的密码146,并 将上述两个密码作比较以产生密码符合指示符138,若两个密码 符合,则密码符合指示符138具有一真值(true value),反之则具 有一假值(false value)。在一实施例中,帔产生的密码146由加 密引擎(encryptionengine)126所提供,而加密引擎126使用加密 锁钥(secretkey)128产生密码146。在一实施例中,加密引擎126 为AES加密引擎,加密锁钥128的数据长度为128位。在一实施 例中,加密锁钥128的数据长度为64位。在一实施例中,上述加 密锁钥128的数值对于上述程序是不可见的(non-visible)。在一 实施例中,输入AES加密引擎126的未加密的文件(plain text)包 括 一 个可以被使用者获知的微处理器100的制造序号(manufacturing ID),而序号对每 一 个孩i处理器100都是独 一 无二 的。因此,AES加密引擎126也产生对每一个微处理器100来说 都是独一无二的加密文件(cipher text)密码146。当被授权的4吏 用者想要存取特定的特别模块寄存器124时,该使用者提供上述 特定特别模块寄存器12 4的制造序号给微处理器10 0制造商。制 造商,则是唯一知道藏在微处理器100内的加密锁钥128的数值 的人,通过使用者提供制造序号以及加密锁钥128的数值产生密 码142,并将产生的密码142提供给使用者。然后,使用者输入 密码142至微处理器100,其中微处理器100将密码142与自己产 生的密码146作比较,如以下关于图3的流程314的所述。如上所 述,在一实施例中,制造商可以限制使用者仅存取一些特定的 (individual)特别模块寄存器124。在此情况下,使用者也必须提 供制造商特定特别模块寄存器124的数目,且制造商将特别模块 寄存器124的数目以及制造序号在产生使用者密码142时涵括 (include)到未加密文件的输入中。相类似地,RDMSR/WRMSR 微程序码程序122将特别模块寄存器124的数目以及制造序号涵 括(include)到未加密文件的输入中,然后输入至AES加密引擎 126以产生加密文件密码146,其中特别模块寄存器124的数目由 RDMSR/WRMSR指令所指定。
微处理器100亦包括特别模块寄存器保护特征的失效熔丝 (override fuse)152。失效熔丝152用以使微处理器IOO的制造商 可以在输入端136提供指定电压至微处理器100,以便选择性地 烧断失效熔丝152。在一实施例中,制造商通过JTAG扫描接口 指定欲烧断的失效熔丝152。若制造商烧断失效熔丝152,则微 处理器100将无法使用此处所述的特别模块寄存器的保护特征。 参考图3,图3为一流程图,用以描绘图1的微处理器100于 处理RDMSR/WRMSR指令时的操作。流程始于流程302。在流程302中,当指令编译器104在执行程序时遇到 RDMSR/WRMSR指令,则进行图1的RDMSR/WRMSR微程序码 程序122。流程前进至流程303。
在流程303中,RDMSR/WRMSR微程序码程序122读取图1 的特别模块寄存器的(保护)失效熔丝152以判断其是否被烧断。 若失效熔丝152纟皮烧断,流程前进至流程312;反之,流程前进 至流程304。
在流程304中,RDMSR/WRMSR微程序码程序122读取图1 中与流程302被RDMSR/WRMSR指令所指定的特别模块寄存器 124相关的熔丝132。流程前进至流程306。
在流程306中,RDMSR/WRMSR微程序码程序122致使异或 单元108,针对图1中与流程302中所遇到的RDMSR/WRMSR指 令所指定的特别模块寄存器124有关的预设(保护)值118以及在 流程304中读到的相关熔丝132的数值,执行异或运算以产生图1 的指示符134,用以表示特别模块寄存器124受密码保护与否。 在一实施例中,微处理器100包括两个与每一个特别模块寄存器 124相关的预设(保护)值118,以及两条与每一个特别模块寄存 器124相关的熔丝132,其中熔丝132的一个相关于至特别模块寄 存器124的读的存取,且熔丝132的另 一个相关于至特别模块寄 存器124的写的存取。所以,无论特别模块寄存器124受到密码 保护与否,对于特别模块寄存器124的读和写的存取而言都是不 同的。因此,在流程304中,RDMSR微程序码程序122读取与特 别模块寄存器124相关的熔丝132,并且在流程306中,RDMSR 微程序码程序122致使异或单元108,针对与特别模块寄存器124 相关的预设(保护)值118以及在流程304中读到的相关熔丝132 的数值,执行异或运算以产生指示符134,用以表示特别模块寄 存器124的读的存取受密码保护与否;相反地,在流程304中,WRMSR微程序码程序122读取与特别模块寄存器124写的存取 相关的熔丝132,以及在流程306中,WRMSR孩i程序码程序122 使异或单元10 8,针对与特别模块寄存器12 4写的存取相关的预 设(保护)值118以及在流程304中读到的相关熔丝132的数值,执 行异或运算以产生指示符134,用以表示特别模块寄存器124的 写的存取受密码保护与否。流程前进至流程308。
在流程308中,RDMSR/WRMSR微程序码程序122测试指示 符134,若指示符134表示特别模块寄存器124受密码保护,流程 前进至流程314;否则,流程前进至流程312。
在流程312中,RDMSR/WRMSR微程序码程序122完成 (complete)RDMSR/WRMSR指令。也就是说,对于WRMSR指令
的特别模块寄存器124 ; 对于RDMSR指令而言,
存器124。流程终止在流程312。
在流程314中,RDMSR/WRMSR微程序码程序122致使加密 引擎126使用加密锁钥128产生微处理器产生的密码146,然后致 使比较器112比较程序提供的密码14 2以及微处理器产生的密码 146,用以产生图1的密码符合指示符138。流程前进至流程316。
在流程316中,RDMSR/WRMSR微程序码程序122测试密码 符合指示符138。若密码符合指示符138表示密码符合,流程前 进至流程312;反之,流程前进至流程318。
在流程318中,因为特定特别模块寄存器124受密码保护, 且密码符合指示符138表示密码不符合,微处理器100禁止至被 RDMSR/WRMSR指令指定的特别模块寄存器124的存取。流程 终止于流,呈318。
虽然实施例已经说明微处理器借着AES加密引擎126产生密码,微处理器100可借其他方法产生密码。
虽然本发明多个实施例已经于此说明,但应该了解其仅是 用以作为说明的例子,而非用以限定本发明。习知计算机技术 领域的人员应能了解,在不脱离本发明范畴的情况下,当可做 些许形式上或详尽的变动。例如,除了使用硬件(在下列装置中
或耦接至下列装置,如中央处理单元(Central Processing Unit, CPU)、微处理器、微控制器、数字信号处理器、处理器核心 (processor core)、系统芯片(System on chip, SOC),或者其他任 何装置),实施例是可包括所使用的软件(如计算机可读码、程 序码,以及任何形式的指令,如原始码(source language)、机器 石马(object or machine language)),例^口 ,在一个用以小者存库欠〈牛的 计算机可用(可读)的介质。这类软件可以致能此处所述的装置 及方法,如致能装置及方法的功能、产出、模型、模拟、性质 及/或测试。例如,通过使用 一般的程序语言(如C, C++)、硬件 描述语言(hardware description language, HDL), 包括Verilog HDL、 VHDL等,或其他可得的程序,装置可以被致能。此类 软件可被安装于任何已知计算机可用的介质,如半导体、磁盘 或光盘(如CD-ROM, DVD-ROM等)。本发明的实施例包括本处 所述的提供微处理器的方法,通过提供微处理器设计的软件描 述,并且接着把这些软件当作计算机数据信号在通讯网络(包括 因特网及内部网络,internet及intranet)上传输。可^皮了解的是, 本处所述的装置及方法可能包括半导体知识产权的核心,如微 处理器的核心(包括于HDL),以及在集成电路的制造中,被转 移至硬件的微处理器的核心。此外,本处所述的装置及方法可 能包括硬件及软件的组合。故本发明不应局限于本处所述的具 体实施例,而应以i又利要求书及其相同范围为准。本发明被实 施于通用型(general purpose)计算机使用的微处理器内。以上所述仅为本发明较佳实施例,然其并非用以限定本发 明的范围,任何熟悉本项技术的人员,在不脱离本发明的精神 和范围内,可在此基础上做进一步的改进和变化,因此本发明 的保护范围当以本申请的权利要求书所界定的范围为准。
权利要求
1.一种具有多个特别模块寄存器的微处理器,其特征在于,包括多个特别模块寄存器,每个特别模块寄存器具有一预设值,上述预设值中的每一个与对应的特别模块寄存器相关,用以表示上述特别模块寄存器受密码保护或不受密码保护;以及多条熔丝,上述熔丝中的每一条与上述特别模块寄存器中的一个相关,用以于被烧断时,将相关的上述于预设值从表示受密码保护变成表示不受密码保护或从表示不受密码保护变成表示受密码保护。
2. 根据权利要求l所述的具有多个特别模块寄存器的微处 理器,其特征在于,更包括一微程序码,当上述微处理器遇到用以存取上述特别模块 寄存器的一特定的特别模块寄存器的一指令时,用以执行以下 动作判断与上述特定的特别模块寄存器相关的熔丝是否被烧断;若与上述特定的特别模块寄存器相关的熔丝未被烧断,则 使用与上述特定的特别模块寄存器相关的预设值,作为上述特 定的特别模块寄存器受密码保护与否的 一指示符;若与上述特定的特别模块寄存器相关的熔丝被烧断,则改 变与上述特定的特别模块寄存器相关的预设值,用以产生上述 指示符;若上述指示符表示上述特定的特别模块寄存器受密码保 护,则保护至上述特定的特别模块寄存器的存取;以及若上述指示符表示上述特定的特别模块寄存器不受密码保 护,则解除至上述特定的特别模块寄存器的存取的保护。
3. 根据权利要求2所述的具有多个特别模块寄存器的微处理器,其特征在于,若上述指示符表示上述特定的特别模块寄 存器受密码保护,为了保护至上述特定的特别模块寄存器的存 取,上述微处理器禁止至上述特定的特别模块寄存器的存取, 直到包括上述指令的一程序提供正确密码至上述微处理器为 止。
4. 根据权利要求3所述的具有多个特别模块寄存器的微处 理器,其特征在于,更包括一加密引擎,用以产生一密码;一比较器,用以比较由上述加密引擎产生的密码,以及由 上述程序提供的密码,以判断上述程序提供正确密码与否。
5. 根据权利要求4所述的具有多个特别模块寄存器的微处 理器,其特征在于,更包括一锁钥数值,其中上述加密引擎使用上述锁钥数值以产生 上述密码。
6. 根据权利要求l所述的具有多个特别模块寄存器的微处 理器,其特征在于,用于表示上述特定的特别模块寄存器受密 码保护与否的上述预设值在上述微处理器的 一微程序码中被指定。
7. —种存取保护方法,其特征在于,适用以保护对一微处 理器内的多个特别模块寄存器的存取,上述存取保护方法包括制造上述微处理器以包括多个特别模块寄存器,每个特另'J 模块寄存器具有一预设值,上述预设值中的每一个与对应的特 别模块寄存器相关,用以表示上述特别模块寄存器受密码保护 与否;以及制造上述微处理器以包括多条熔丝,上述熔丝中的每一条 与上述特别模块寄存器中的一个相关,用以于被烧断时,将相 关的上述预设值从表示受密码保护变成表示不受密码保护或表示从不受密码保护变成表示受密码保护。
8. 根据权利要求7所述的存取保护方法,其特征在于,更 包括于上述微处理器的制造之后,若发现上述特别模块寄存器 的预设值有误,则烧断 一 条或多条上述熔丝以改变所相关的预 设值。
9. 根据权利要求7所述的存取保护方法,其特征在于,更 包括于遇到用以存取上述特别模块寄存器的 一特定的特别模块 寄存器的一指令时,执行下列步骤判断与上述特定的特别模块寄存器相关的熔丝烧断与否; 若与上述特定的特别模块寄存器相关的熔丝未被烧断,则使用与上述特定的特别模块寄存器相关的预设值作为 一 指示符,用以表示上述特定的特别模块寄存器受密码保护与否;若与上述特定的特别模块寄存器相关的熔丝被烧断,则改变与上述特别的模块寄存器相关的预设值,用以产生上述指示符;若上述指示符表示上述特定的特别模块寄存器受密码保 护,则保护至上述特定的特别模块寄存器的存取;以及若上述指示符表示上述特定的特别模块寄存器不受密码保 护,则解除至上述特定的特别模块寄存器的保护存取。
10. 根据权利要求7所述的存取保护方法,其特征在于,用 以表示所相关的上述特别模块寄存器受密码保护与否的上述预 设值在上述微处理器的 一微程序码中被指定。
11. 一种存取保护方法,其特征在于,适用以保护对一微 处理器内多个特别模块寄存器的存取,上述存取保护方法包括遇到用以存取上述特别模块寄存器的 一 特定的特别模块寄 存器的一指令;判断与上述特定的特别模块寄存器相关的 一 熔丝被烧断与否;若与上述特定的特别模块寄存器相关的上述熔丝未被烧 断,则使用与上述特定的特别模块寄存器相关的一预设值作为 一指示符,用以表示上述特定的特别模块寄存器受密码保护与 否;若与上述特定的特别模块寄存器相关的上述熔丝被烧断, 则改变与上述特别的模块寄存器相关的上述预设值,用以产生 上述指示符;若上述指示符表示上述特定的特别模块寄存器受密码保 护,则保护至上述特定的特别模块寄存器的存取;以及若上述指示符表示上述特定的特别模块寄存器不受密码保 护,则解除至上述特定的特别模块寄存器的保护存取。
12. 根据权利要求ll所述的存取保护方法,其特征在于, 若上述指示符表示上述特定的特别模块寄存器受密码保护,则 禁止至上述特定的特别模块寄存器的存取,直到包括上述指令的 一 程序提供正确密码至上述微处理器为止。
13. 根据权利要求12所述的存取保护方法,其特征在于,更包括产生一密码,其中上述密码由上述微处理器的一加密引擎 所产生;以及比较由上述加密引擎产生的密码,以及由上述程序提供的 密码,以判断上述程序提供正确密码与否。
14. 根据权利要求13所述的存取保护方法,其特征在于, 上述加密引擎使用 一锁钥数值以产生上述密码。
15. 根据权利要求ll所述的存取保护方法,其特征在于, 用以表示所相关的上述特别模块寄存器受密码保护与否的上述预设值在上述微处理器的 一微程序码中被指定。
全文摘要
一种具有特别模块寄存器的微处理器及存取保护方法,其中该具有特别模块寄存器的微处理器包括多个预设值以及多个熔丝,其中预设值中的每一个与特别模块寄存器中的一个相关,用以表示特别模块寄存器受密码保护或不受密码保护,并且熔丝中的每一个与特别模块寄存器中的一个相关,用以于被烧断时,将相关的预设值从表示受密码保护变成表示不受密码保护或从表示不受密码保护变成表示受密码保护。本发明允许制造商仅以在制造过程中烧断熔丝的方式快速解决问题,而不需要重新设计半导体及/或微处理器的光罩而制造新的微处理器。
文档编号G06F15/78GK101625674SQ20091016317
公开日2010年1月13日 申请日期2009年8月18日 优先权日2008年9月9日
发明者G.葛兰·亨利, 泰瑞·派克斯 申请人:威盛电子股份有限公司