[发明专利]微处理器以及宏指令执行方法有效
申请号: | 200810146121.1 | 申请日: | 2008-08-06 |
公开(公告)号: | CN101329622A | 公开(公告)日: | 2008-12-24 |
发明(设计)人: | 吉拉德·M·卡尔;柯林·艾迪;罗德尼·E·虎克 | 申请(专利权)人: | 威盛电子股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京市柳沈律师事务所 | 代理人: | 蒲迈文 |
地址: | 中国台*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 微处理器 以及 指令 执行 方法 | ||
技术领域
本发明是有关于微处理器领域,特别是有关于一种用来减少用以执行特定的常见宏架构指令的微架构指令的数目的系统和方法。
背景技术
计算机中的数据处理运算通常于微处理器中执行。一般而言,用来监控和执行各种数据处理任务的微处理器包括了用来处理指令和数据的硬件元件。指令和数据通常储存于计算机的存储器子系统,其可包括只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、硬盘装置或其它装置。存储器子系统一般与微处理器物理分离,即使复制的指令和数据于程序执行期间暂时存放于微处理器之内。
指令是指一群用来告知微处理器执行特定运算的位,指令又包括了运算码的部分,运算码是指一群用来记载一个要被微处理器所执行的运算的位。举例来说,运算码中可记载诸如加法、减法、分支程序的执行或储存一个值于存储器等等之类的运算。指令的其余部分通常用来提供运算的数据来源,又称为操作数。操作数可记载于指令本身内、微处理器的暂存器内或存储器位置内。
一个微处理器的架构包括微处理器的指令集以及可供指令集的各种指令所使用的资源集合,例如暂存器和存储器地址空间。许多现代的微处理器同时具有宏架构和微架构,特别是许多用来执行由英特尔架构(又称为IA-32或x86架构)所指定的指令的微处理器。宏架构是使用者可见的架构,例如程序设计者可使用的指令集和资源。宏指令是宏架构指令集中的指令,一些早期较流行的处理器的宏架构(例如x86架构)包括了非常复杂的指令。相较之下,微架构包括了微指令集以及可被微指令集的各种指令所使用的资源集合。微指令集所包括的指令一般比宏指令集简单得多,且通常为非使用者可见,即使一些微处理器可将微指令集和宏指令集设定为使用者可见。微处理器的执行单元实际上是执行微指令而非宏指令。
微处理器包括了指令编译器,用以将每一个宏指令转换成一或多个微指令,其由执行单元根据宏指令的运算码和操作数所执行。指令编译器的宽度(亦即编译器每频率周期可产生的微指令的数目)是具有利益平衡考虑的设计抉择。举例来说,当指令编译器愈窄的时候,其本身的尺寸可变得较小并且较不那样地复杂,这在成本、硅芯片空间、速度和散热等方面的考虑是有帮助的。另一方面,当指令编译器愈宽的时候,其相对更有能力提供足够的微指令比率使执行单元维持运作,这在超纯量、加扰执行的微处理器设计中是一个重要的考虑。
许多具有分离的宏架构和微架构的现代微处理器除了指令编译器之外也包括了微指令只读存储器(microinstruction ROM)。微指令只读存储器一般用以处理更复杂且不常用的宏指令,其需要相对多数的微指令来执行相关的宏指令所指定的运算。微指令只读存储器包括了与个别宏指令相关的微指令的序列。当指令编译器处理到某些宏指令时,其将控制权交给微指令只读存储器中的一个微指令序列,而非纯粹地产生微指令(或是除了产生微指令之外),而当微指令序列执行完成之后,其将控制权交回给指令编译器。然而,相对于指令编译器纯粹产生微指令以执行相关的宏指令运算的方式而言,把控制权交给微码只读存储器序列可能会对执行效能产生影响。举例来说,由于撷取单元无法提供足够的微指令来维持执行单元的运作,因此可于执行单元管线中采用泡沫排序法(bubble)的机制。另一方面,指令编译器的宽度限制了其每频率周期可产生的微指令数目,因此微指令只读存储器可更符合经济效益地扩展来处理某些所需的微指令比指令编译器于给定频率周期内所能产生的微指令还多的宏指令。
宏指令需要相对多数的微指令的例子就是一个用来对存储器中的操作数执行读取/修改/写入等运算的宏指令。用以对存储器中的操作数执行读取/修改/写入等运算的宏指令称为LdAluSt宏指令,因为它们包括了一个用来从存储器中取得操作数至微处理器内的存储器加载运算、一个用来修改存储器操作数的算术逻辑单元运算、以及一个用来将修改后的结果值写回原来的存储器位置的存储器储存运算。每一个加载、算术逻辑单元和储存运算可能需要一或多个微指令以执行个别的运算。一个LdAluSt宏指令的例子就是x86的ADD[mem],EXA指令,此指令从[mem]地址所记载的存储器位置加载操作数至微处理器、将存储器操作数与EAX暂存器中的值相加,并且储存加法运算后的结果值于[mem]地址所记载的存储器位置中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于威盛电子股份有限公司,未经威盛电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810146121.1/2.html,转载请声明来源钻瓜专利网。