[发明专利]适用于微处理器中执行位扫描指令的硬件装置与方法有效
申请号: | 201010220847.2 | 申请日: | 2010-07-01 |
公开(公告)号: | CN101887359A | 公开(公告)日: | 2010-11-17 |
发明(设计)人: | 布莱恩·W·伯格 | 申请(专利权)人: | 威盛电子股份有限公司 |
主分类号: | G06F9/30 | 分类号: | G06F9/30 |
代理公司: | 北京市柳沈律师事务所 11105 | 代理人: | 钱大勇 |
地址: | 中国台*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 适用于 微处理器 执行 扫描 指令 硬件 装置 方法 | ||
技术领域
本发明涉及微处理器的技术领域,尤其涉及在微处理器中执行位扫描指令的技术。
背景技术
x86指令集架构包括了前行位扫描(Bit Scan Forward,BSF)以及逆行位扫描(Bit Scan Reverse,BSR)指令,或通称为位扫描指令。在传统的微处理器中以微码实际操作上述位扫描指令,也就是说,当微处理器的指令转译器遇到(encounter)上述位扫描指令时,指令转译器会将控制权转移至存储于微码只读存储器中的微码例程(microcode rountine),而微码例程却需要耗用许多时钟周期去执行位扫描指令。因此,亟需有一种较为快速的方式去执行位扫描指令。
发明内容
本发明的一实施例提供了一种适用于一微处理器中执行一位扫描指令的硬件装置,其中上述位扫描指令指定(specify)包括N个字节的一输入运算元,且上述N至少为2。该硬件装置包括了一第一编码器,用以针对上述输入运算元中的每个字节进行前行位扫描编码(forward bit scan encode)以产生N个第一位向量。该硬件装置还包括一零值检测器,用以针对上述输入运算元中的每个字节进行零值检测(zero-detect)以产生一第二位向量。该硬件装置还包括一第二编码器,用以针对上述第二位向量进行前行位扫描编码以产生一第三位向量。该硬件装置还包括一第一N对1多工器,由上述第三位向量控制以选择上述N个第一位向量中的一个为输出的一第四位向量。该硬件装置将上述第三位向量与上述第四位向量连接为一第五位向量,上述第五位向量指示(indicate)上述输入运算元中最低有效被设位(least significant set bit)的位索引值。在一实施例中,该硬件装置处理了前行与逆行位扫描指令。一第三编码器,用以针对上述输入运算元中的每个字节的一位逆向结果(bit-reversed version)进行前行位扫描编码以产生N个第六位向量。一第四编码器,用以针对上述第二位向量的一位逆向结果进行前行位扫描编码以产生一第七位向量。一第二N对1多工器,由上述第七位向量控制以选择上述N个第六位向量中的一个为输出的一第八位向量。一选择逻辑单元,用以接收指示上述位扫描指令为一前行或逆行位扫描指令的一输入,其中上述选择逻辑单元于上述输入指示上述位扫描指令为一前行位扫描指令时选择由上述第三位向量与上述第四位向量连接成为上述第五位向量,以及在上述输入指示上述位扫描指令为一逆行位扫描指令时选择由上述第七位向量与上述第八位向量连接成为上述第五位向量的一反相结果(inverted version)。
本发明的另一实施例提供了一种适用于一微处理器中执行一位扫描指令的方法,其中上述位扫描指令指定包括N个字节的一输入运算元,上述N至少为2,该方法包括了针对上述输入运算元中的每个字节进行前行位扫描编码以产生N个第一位向量。该方法还包括针对上述输入运算元中的每个字节进行零值检测以产生一第二位向量。该方法还包括用以针对上述第二位向量进行前行位扫描编码以产生一第三位向量。该方法还包括根据上述第三位向量选择上述N个第一位向量中的一个为输出的一第四位向量。该方法还包括将上述第三位向量与上述第四位向量连接为一第五位向量,其中上述第五位向量指示上述输入运算元中最低有效被设位的位索引值。
附图说明
图1根据本发明所述的微处理器的方块图。
图2A与图2B所示的细部方块图描述本发明图1中用以执行实际操作位扫描指令(前行/逆行位扫描指令)的微指令的执行单元。
图3根据本发明另一实施例所述如图1中用以执行实际操作位扫描指令(前行/逆行位扫描指令)的第二微指令的执行单元细部方块图。
【主要元件符号说明】
100~微处理器;
102~指令快取;
104~指令转译器;
106~寄存器别名表;
108~微指令;
112~保留站;
114~执行单元;
118~重排缓冲器;
122~通用寄存器集合;
202~来源运算元;
204~运算元大小;
206~零值遮罩逻辑单元;
208、222、225、272、274、276、299、333、325~结果;
212、216、218、252、256、262、264、266~逻辑单元;
211、213、215~3位数值;
214、258~位逆向结果;
217、222、224、223、233、242~输出;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于威盛电子股份有限公司,未经威盛电子股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010220847.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种无铅异形铜管挤压成型方法
- 下一篇:一种仿陶瓷幻彩喷涂工艺