一种数据混洗的方法技术

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

【技术实现步骤摘要】

本专利技术涉及微处理器
,尤其涉及。
技术介绍
随着处理器技术的进步,用户通常期望和需要他们计算机的性能越来越高,因此处理器的数据并行处理变的尤其重要,对快速混洗的要求也越来越高。现有的混洗操作是第一操作数存放将被混洗的数据,第二操作数包括一组混洗控制掩码字节以指定混洗模式。例如,一个128比特寄存器,分为16个字节数,因此需要四个比特指示源操作数中数据元素的数量。如果置位了混洗控制字节的最高有效比特7,则将常数零写入结果字节。否则如果第二操作数的某一个字节,表示为字节I。它的最低有效四位包含一个整数值,表示为K,则混洗指令的操作使得第一源寄存器的第K个字节被复制到目的寄存器的第I字节位置。在通信数据处理中,需要对两个源、三个源或者更多的数据源进行排序,因此支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度。但是目前的技术方案只能支持一个源的操作,不能支持多个源的混洗操作。而且在大量的通信数据处理中,有时用户需要对目的寄存器中的部分数据进行保持,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变,但是目前的混洗操作不能支持。
技术实现思路
本专利技术的目的在于提出,能够支持多个源的混洗操作,从而提高处理器的执行速度。为达此目的,本专利技术采用以下技术方案,包括以下步骤A、将待混洗数据存储进不少于2个源寄存器;B、将与配置寄存器能够存储的数据个数一样数量的待混洗数据所在的位置数存储进配置寄存器;C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的数据进行混洗,如果位置数的最高位为1,则将位置数对应的目的寄存器中位置处数据清零,如果位置数的最高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处数据保持不变,如果位置数的最高位为0,并且位置数小于预设值,则将位置数对应的目的寄存器中位置处数据改为位置数对应的源寄存器中位置处数据。源寄存器、配置寄存器和目的寄存器是矢量寄存器。源寄存器、配置寄存器和目的寄存器是256位寄存器,能够存储16个16比特的数据。预设值是0X30。采用了本专利技术的技术方案,能够支持对一个源、两个源或者三个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。附图说明图1是本专利技术具体实施方式中数据混洗操作的示意图。 具体实施例方式下面结合附图并通过具体实施方式来进一步说明本专利技术的技术方案。图1是本专利技术具体实施方式中数据混洗操作的示意图。如图1所示,三个源寄存器VRi、VRm和Vfoi,配置寄存器VR16和目的寄存器VRd都是256位矢量寄存器,都能够存储16个16比特的数据。首先,将待混洗数据存储进三个源寄存器VRi、VRm和Vfoi中,三个源寄存器VRi、 VRm和Vfoi的数据合并在一起统一排序。其次,从三个源寄存器VRi、VRm和Vfoi的48个16比特待混洗数据中,选取与配置寄存器VR16能够存储的数据个数一样数量,即16个的待混洗数据在源寄存器中的位置数存储进配置寄存器VR16中,这16个的待混洗数据可以是重复选取的。 再次,逐个根据配置寄存器VR16中的位置数对源寄存器中的数据进行混洗,规则如下如果位置数的最高位为1,则将位置数对应的目的寄存器中位置处数据清零。比如配置寄存器VR16中存储的最后一个数据中表示位置的数据是2F,2F就是指向源寄存器的位置数。如果配置寄存器VR16中存储的最后一个数据的最高位为1,则将目的寄存器VRd 的位置2F中的数据清零。如果配置寄存器VR16中存储的最后一个数据的最高位为0,并且位置数大于或等于预设值0X30,那么位置数对应的目的寄存器中位置处数据保持不变。比如配置寄存器 VR16中存储的第7个数据是34,34最高位为0,并且大于或等于预设值0X30,则将目的寄存器VRd的第7个位置中的数据保持不变。如果位置数的最高位为0,并且位置数小于预设值0X30,则将位置数对应的目的寄存器中位置处数据改为位置数对应的源寄存器中位置处数据。比如配置寄存器VR16中存储的第1个数据是2,2的最高位为0,并且小于预设值0X30,则将目的寄存器VRd的第1 个位置中的数据改为从源存储器Vfoi的第2个位置中取出的数据。以此类推,配置寄存器VR16中存储的位置数对应的全部待混洗数据完成混洗后, 整个数据混洗流程结束。当然本具体实施方式中的源寄存器个数、预设值,以及源寄存器、配置寄存器和目的寄存器的存储空间都是可以根据具体需要进行调整的。以上所述,仅为本专利技术较佳的具体实施方式,但本专利技术的保护范围并不局限于此, 任何熟悉该技术的人在本专利技术所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本专利技术的保护范围之内。因此,本专利技术的保护范围应该以权利要求的保护范围为准。本文档来自技高网...

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

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

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

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

1