一种字节内比特数据混洗的方法技术

技术编号:6889909 阅读:398 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种字节内比特数据混洗的方法,将待混洗字节数据存储进不少于2个源寄存器;将与配置寄存器能够存储的数据个数一样数量的待混洗字节数据所在的位置数存储进配置寄存器;逐个根据配置寄存器中的位置数对不少于2个源寄存器中的字节数据进行混洗。采用了本发明专利技术的技术方案,能够支持对一个源、两个源或者三个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持、清零,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。

【技术实现步骤摘要】

本专利技术涉及微处理器
,尤其涉及。
技术介绍
计算机系统已在当今社会中变得日益普遍,在过去10年的时间里,媒体应用驱动着微处理器的发展。事实上,近些年的多数计算升级都是由媒体应用驱动的,这些升级主要出现在消费者方面,尽管在用于娱乐增强教育和通信用途的企业方面也看到了显著的进步。然而未来的媒体将需要更高的计算要求,今后的个人计算体验在视听效果方面将更加丰富且更易于使用,更重要地是将计算将与通信合并在一起,因此用户通常期望和需要他们计算机的性能越来越高,因此处理器的数据并行处理变的尤其重要,对快速混洗的要求也越来越高。随着通信技术的发展,快速字节内的比特间数据混洗应用越来越多。但目前并没有字节内混洗操作的技术方案。
技术实现思路
本专利技术的目的在于提出,能够支持多个源的字节内比特数据混洗操作,从而提高处理器的执行速度。为达此目的,本专利技术采用以下技术方案,包括以下步骤A、将待混洗比特数据存储进不少于2个源寄存器;B、将与配置寄存器能够存储的数据个数一样数量的待混洗比特数据所在的位置数存储进配置寄存器;C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的比特数据进行混洗,如果位置数的高位为1,则将位置数对应的目的寄存器中位置处比特数据清零,如果位置数的高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处比特数据保持不变,如果位置数的高位为0,并且位置数大于或者等于零,且小于预设值,则将位置数对应的目的寄存器中位置处比特数据改为位置数对应的源寄存器中位置处比特数据。配置寄存器是矢量寄存器,源寄存器和目的寄存器是标量寄存器。配置寄存器是256位寄存器,能够存储32个8比特的数据,源寄存器和目的寄存器是32位寄存器,能够存储32个1比特的数据。预设值是0x3F。采用了本专利技术的技术方案,能够支持对一个源或者多个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持、清零,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。附图说明图1是本专利技术具体实施方式中字节内比特数据混洗操作的示意图。 具体实施例方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。图1是本专利技术具体实施方式中字节内比特数据混洗操作的示意图。如图1所示, 配置寄存器VR16是256位矢量寄存器,能够存储32个8比特的数据,两个源寄存器Rm和 Rn和目的寄存器Rd是32位标量寄存器,能够存储32个1比特的数据。首先,将待混洗比特数据存储进两个源寄存器Rm和1 中,两个源寄存器Rm和1 的数据合并在一起统一排序,位置用8比特数据表示。其次,从两个源寄存器Rm和to的64个1比特待混洗数据中,选取与配置寄存器 VR16能够存储的数据个数一样数量,即32个的待混洗比特数据在源寄存器中的位置数存储进配置寄存器VR16中,这32个的待混洗数据可以是重复选取的。再次,逐个根据配置寄存器VR16中的位置数对源寄存器中的数据进行混洗,规则如下如果位置数的最高位为1,则将位置数对应的目的寄存器中位置处比特数据清零。 比如配置寄存器VR16中存储的最后一个数据除最高位外的数据值无论是何值,如果该数据的最高位为1,则将目的寄存器Rd的最后一个数据中的比特数据清零。如果位置数的最高位为0,并且除最高位外的数据值大于或等于预设值0x3F,则对应的目的寄存器中位置处比特数据保持不变。比如配置寄存器VR16中存储的第10个数据最高位为0,除最高位外的数据值是4E,4E就是指向源寄存器的位置数,并且大于或等于预设值0x3F,则将目的寄存器Rd的第10个位置中的比特数据保持不变。如果位置数的高位为0,并且位置数大于或者等于零,且小于预设值0x3F,则将位置数对应的目的寄存器中位置处比特数据改为位置数对应的源寄存器中位置处比特数据。 比如配置寄存器VR16中存储的第4个数据是3,3就是指向源寄存器的位置数,3的高位为 0,并且大于零且小于预设值0x3F,则将目的寄存器Rd的第3个位置中的比特数据改为从源存储器Rm的第4个位置中取出的比特数据。以此类推,配置寄存器VR16中存储的位置数对应的全部待混洗比特数据完成混洗后,整个数据混洗流程结束。当然本具体实施方式中的源寄存器个数、预设值,以及源寄存器、配置寄存器和目的寄存器的存储空间都是可以根据具体需要进行调整的。以上所述,仅为本专利技术较佳的具体实施方式,但本专利技术的保护范围并不局限于此, 任何熟悉该技术的人在本专利技术所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本专利技术的保护范围之内。因此,本专利技术的保护范围应该以权利要求的保护范围为准。权利要求1.,其特征在于,包括以下步骤A、将待混洗比特数据存储进不少于2个源寄存器;B、将与配置寄存器能够存储的数据个数一样数量的待混洗比特数据所在的位置数存储进配置寄存器;C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的比特数据进行混洗,如果位置数的高位为1,则将位置数对应的目的寄存器中位置处比特数据清零,如果位置数的高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处比特数据保持不变,如果位置数的高位为0,并且位置数大于或者等于零,且小于预设值,则将位置数对应的目的寄存器中位置处比特数据改为位置数对应的源寄存器中位置处比特数据。2.根据权利要求1所述的,其特征在于,配置寄存器是矢量寄存器,源寄存器和目的寄存器是标量寄存器。3.根据权利要求2所述的,其特征在于,配置寄存器是256位寄存器,能够存储32个8比特的数据,源寄存器和目的寄存器是32位寄存器,能够存储32个1比特的数据。4.根据权利要求1所述的,其特征在于,预设值是 0x3Fo全文摘要本专利技术公开了,将待混洗字节数据存储进不少于2个源寄存器;将与配置寄存器能够存储的数据个数一样数量的待混洗字节数据所在的位置数存储进配置寄存器;逐个根据配置寄存器中的位置数对不少于2个源寄存器中的字节数据进行混洗。采用了本专利技术的技术方案,能够支持对一个源、两个源或者三个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持、清零,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。文档编号G06F9/38GK102253824SQ20101017436公开日2011年11月23日 申请日期2010年5月18日 优先权日2010年5月18日专利技术者王艳艳, 胡玉乐 申请人:江苏芯动神州科技有限公司本文档来自技高网...

【技术保护点】
1.一种字节内比特数据混洗的方法,其特征在于,包括以下步骤:A、将待混洗比特数据存储进不少于2个源寄存器;B、将与配置寄存器能够存储的数据个数一样数量的待混洗比特数据所在的位置数存储进配置寄存器;C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的比特数据进行混洗,如果位置数的高位为1,则将位置数对应的目的寄存器中位置处比特数据清零,如果位置数的高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处比特数据保持不变,如果位置数的高位为0,并且位置数大于或者等于零,且小于预设值,则将位置数对应的目的寄存器中位置处比特数据改为位置数对应的源寄存器中位置处比特数据。

【技术特征摘要】

【专利技术属性】
技术研发人员:胡玉乐王艳艳
申请(专利权)人:江苏芯动神州科技有限公司
类型:发明
国别省市:32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1