一种微处理器以及微处理器微码修补方法,微处理器包括一非公开随机存取存储器,根据原始微码指令和替代微码指令来定址;微处理器亦包括修补文件硬件,当替代微码指令实施至修补文件硬件时,微处理器执行替代微码指令;微处理器用以从外部存储器载入微码修补文件至非公开随机存取存储器,并判断微码修补文件是否有效,当微码修补文件为有效时,从非公开随机存取存储器实施替代微码指令至修补文件硬件,当微码修补文件为无效时,不实施替代微码指令至修补文件硬件。本发明专利技术不仅能够减少微处理器载入坏掉或损坏的修补文件而危害已载入的良好修补文件的可能性,还可避免不具有完整性的后续的修补文件影响先前已载入的良好的修补文件。
【技术实现步骤摘要】
本专利技术主要关于一种微处理器(microprocessors),特别有关于一种载入外部存 储器的微码修补文件(microcode patches)至微处理器的安全装置。
技术介绍
微处理器通常包括微码或微程序(microprograms), 一般微码的使用是 在一重置程序之后执行微处理器的初始功能,另外一般微码的使用是处理微异常 (micro-exc印tions)情况,例如,微处理器中的异常情况由微处理器本身处理而不是将此 异常情况由操作系统(operating system)处理。另外一般微码的使用是在微处理器的指 令集结构(instruction set architecture)中执行复杂或非频繁执行的指令,当微处理器 将指令集的多个可执行微码指令(microcode-implemented instructions)之一解码时,微 处理器转移控制(transfer control)至适当的微码例行程序(microcode routine),而不 是直接传送指令给微处理器的执行单元去执行。接着微处理器传送微码指令至执行指令的 执行单元以执行复杂且/或非频繁执行的指令。这使得执行单元(以及微处理器的其他单 元,例如一附属的检查单元(checking unit)或引退单元(retire unit))相较于必须能执 行微处理器指令集的所有指令(包括复杂且/或非频繁执行的指令)的执行单元来说,具 有较低的复杂度。 如同其他程序,微码可能具有错误(bugs)且必须被修正。此外,增加一特征 (feature)至微码,实为所希望的。 一般微码程序指令储存于微处理器的只读存储器中,其 中只读存储器并不能根据使用者程序直接定址(addressable),因此,传统修正(fixing) 或特征增强(feature-enhancing)微码只读存储器的方法是通过修补该微码只读存储器, 微处理器包括可利用专用软件(通常为BI0S或操作系统)写入的修补文件硬件,并有一修 补文件可有效地取代微码只读存储器的个别项目(指令或数据)。 一般来说,专用软件载入 修补文件至微处理器的外部的一存储器,例如,BIOS存储器或系统存储器,接着命令微处理 器实施外部存储器的修补文件至微处理器的修补文件硬件中。 因为修补文件是从微处理器外部的存储器载入,并且该外部存储器为可写入的, 在修补文件载入微处理器以及实施至修补文件硬件前,可能存在黑客修改上述修补文件的 风险。例如,黑客可以从硬盘控制器启动直接存储器存取(DMA)操作至外部存储器的一位 置,其中外部存储器的位置为修补文件的位置,因此,微处理器实施一被黑客入侵(hacked) 或损坏的修补文件,这可能导致微处理器执行写入修补文件的微处理器制造者所预期之外 的操作,例如,损坏数据、破坏微处理器或执行其他恶意的行为。 针对微处理器的上述问题的解决方法为借着从外部存储器以一个字(word)为单 位依序读取修补文件指令以在修补文件中执行校验和(checksum)运算,而不用将修补文 件实施至微处理器的修补文件硬件中,如果校验和检查通过,则微处理器重读取外部存储 器的修补文件并实施该修补文件。亦即,解决方法分为两个步骤l)当修补文件依旧在外 部存储器时,确认该修补文件;以及2)当在第一步骤该修补文件确认正确时,则实施该修补文件至微处理器的修补文件硬件中。 然而,这样的解决方法依旧具有安全上的风险,因为当微处理器执行第一步骤和 第二步骤时会具有一空窗期(window oftime),黑客可在该空窗期间内改修补文件。实际 上,该空窗期甚至更长,因为只要黑客写入在微处理器目前读取以执行校验和运算的位置 之后的位置,则可在微处理器执行校验和运算的时间内更改修补文件。 第一种可减少黑客利用上述空窗期入侵的可能性的解决方法为微处理器连续执 行多次校验和运算,假如微处理器执行所有的校验和运算且所有校验和检查皆通过,则微 处理器可较有把握地确定修补文件未被黑客修改。 然而,对于有些应用,即使将可能性降低至一相对小的范围依旧是不够的。 第二种避免黑客利用上述空窗期入侵的风险的解决方法,是通过相反步骤进行顺序。亦即,先进行上述第二步骤微处理器读取修补文件至微处理器且实施该修补文件至修补文件硬件,接着进行上述第一步骤当修补文件在黑客无法存取修补文件的微处理器的修补文件硬件内时,微处理器对修补文件执行校验和运算,如果修补文件是损坏的,则微处理器不使用该修补文件。 然而,当必须连续实施多个修补文件至微处理器时,例如,修补一修补文件,或在 已经实施一第一修补文件之后实施后续的修补文件时,第二种方法是不可行的。亦即,在微 处理器实施修补文件至修补文件硬件时,新的修补文件重写(clobber) 了之前所实施良好 的修补文件的部分,因此,当微处理器判定目前的修补文件损坏时,微处理器无法修复被损 坏的修补文件重写的良好的修补文件。 因此,需要一更安全的实施修补文件至微处理器的微码的解决方法。
技术实现思路
—方面,本专利技术的一实施例提供一种微处理器,具有一微码存储器,该微码存储器 用以储存上述微处理器所执行的原始微码指令以执行使用者程序指令,上述微处理器亦具 有耦接至微处理器外部的外部存储器的接口 ,外部存储器用以储存一微码修补文件,上述 微码修补文件包括替代微码指令和验证信息,上述微处理器包括一非公开随机存取存储 器,根据上述原始微码指令和上述替代微码指令定址;以及一修补文件硬件,耦接上述非公 开随机存取存储器,其中当上述微处理器实施上述替代微码指令至上述修补文件硬件时, 上述微处理器执行上述替代微码指令;其中上述微处理器用以从上述外部存储器载入上 述微码修补文件至上述非公开随机存取存储器;通过上述验证信息来判断上述非公开随机 存取存储器中的上述微码修补文件是否有效;当上述非公开随机存取存储器中的上述微码 修补文件为有效时,则从上述非公开随机存取存储器实施上述替代微码指令至上述修补文 件硬件;以及当上述非公开随机存取存储器中的上述微码修补文件为无效时,则不实施上 述替代微码指令至上述修补文件硬件。 另一方面,本专利技术的一实施例提供一种微处理器微码修补方法,适用于一微处理 器,上述微处理器具有一微码存储器,该微码存储器用以储存上述微处理器所执行的原始 微码指令以执行使用者程序指令,上述微处理器亦具有耦接至微处理器外部的外部存储器 的接口 ,外部存储器用以储存一微码修补文件,上述微码修补文件包括替代微码指令和验 证信息,上述微处理器亦具有一修补文件硬件,其中当上述微处理器实施上述替代微码指令至上述修补文件硬件时,上述微处理器执行上述替代微码指令,上述微处理器微码修补 方法包括从上述外部存储器载入上述微码修补文件至一非公开随机存取存储器,其中上 述非公开随机存取存储器根据上述原始微码指令和上述替代微码指令来定址;通过上述验 证信息来判断上述非公开随机存取存储器中的上述微码修补文件是否有效;当上述非公开 随机存取存储器中的上述微码修补文件为有效时,则从上述非公开随机存取存储器实施上 述替代微码指令至上述修补文件硬件;以及当上述非公开随机存取存储器中的上述微码修 补文件为无效时,不实施上述替代微码指令至上述修补文件硬件。 本专利技术本文档来自技高网...
【技术保护点】
一种微处理器,其特征在于,具有一微码存储器,该微码存储器用以储存上述微处理器所执行的一原始微码指令以执行一使用者程序指令,上述微处理器亦具有耦接至上述微处理器外部的一外部存储器的接口,上述外部存储器用以储存一微码修补文件,上述微码修补文件包括一替代微码指令和一验证信息,上述微处理器包括:一非公开随机存取存储器,根据上述原始微码指令和上述替代微码指令定址;以及一修补文件硬件,耦接上述非公开随机存取存储器,其中当上述微处理器实施上述替代微码指令至上述修补文件硬件时,上述微处理器执行上述替代微码指令;其中上述微处理器用以:从上述外部存储器载入上述微码修补文件至上述非公开随机存取存储器;通过上述验证信息判断上述非公开随机存取存储器中的上述微码修补文件是否有效;当上述非公开随机存取存储器中的上述微码修补文件为有效时,则从上述非公开随机存取存储器实施上述替代微码指令至上述修补文件硬件;以及当上述非公开随机存取存储器中的上述微码修补文件为无效时,则不实施上述替代微码指令至上述修补文件硬件。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:G葛兰亨利,泰瑞派克斯,
申请(专利权)人:威盛电子股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。