CN102253823A - 一种数据混洗的方法 - Google Patents
一种数据混洗的方法 Download PDFInfo
- Publication number
- CN102253823A CN102253823A CN201010174354XA CN201010174354A CN102253823A CN 102253823 A CN102253823 A CN 102253823A CN 201010174354X A CN201010174354X A CN 201010174354XA CN 201010174354 A CN201010174354 A CN 201010174354A CN 102253823 A CN102253823 A CN 102253823A
- Authority
- CN
- China
- Prior art keywords
- data
- register
- source
- positional number
- shuffled
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Abstract
本发明公开了一种数据混洗的方法,将待混洗数据存储进不少于2个源寄存器;将与配置寄存器能够存储的数据个数一样数量的待混洗数据所在的位置数存储进配置寄存器;逐个根据配置寄存器中的位置数对不少于2个源寄存器中的数据进行混洗。采用了本发明的技术方案,能够支持对一个源、两个源或者三个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。
Description
技术领域
本发明涉及微处理器技术领域,尤其涉及一种数据混洗的方法。
背景技术
随着处理器技术的进步,用户通常期望和需要他们计算机的性能越来越高,因此处理器的数据并行处理变的尤其重要,对快速混洗的要求也越来越高。
现有的混洗操作是第一操作数存放将被混洗的数据,第二操作数包括一组混洗控制掩码字节以指定混洗模式。例如,一个128比特寄存器,分为16个字节数,因此需要四个比特指示源操作数中数据元素的数量。如果置位了混洗控制字节的最高有效比特7,则将常数零写入结果字节。否则如果第二操作数的某一个字节,表示为字节I。它的最低有效四位包含一个整数值,表示为K,则混洗指令的操作使得第一源寄存器的第K个字节被复制到目的寄存器的第I字节位置。
在通信数据处理中,需要对两个源、三个源或者更多的数据源进行排序,因此支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度。
但是目前的技术方案只能支持一个源的操作,不能支持多个源的混洗操作。而且在大量的通信数据处理中,有时用户需要对目的寄存器中的部分数据进行保持,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变,但是目前的混洗操作不能支持。
发明内容
本发明的目的在于提出一种数据混洗的方法,能够支持多个源的混洗操作,从而提高处理器的执行速度。
为达此目的,本发明采用以下技术方案:
一种数据混洗的方法,包括以下步骤:
A、将待混洗数据存储进不少于2个源寄存器;
B、将与配置寄存器能够存储的数据个数一样数量的待混洗数据所在的位置数存储进配置寄存器;
C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的数据进行混洗,如果位置数的最高位为1,则将位置数对应的目的寄存器中位置处数据清零,如果位置数的最高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处数据保持不变,如果位置数的最高位为0,并且位置数小于预设值,则将位置数对应的目的寄存器中位置处数据改为位置数对应的源寄存器中位置处数据。
源寄存器、配置寄存器和目的寄存器是矢量寄存器。
源寄存器、配置寄存器和目的寄存器是256位寄存器,能够存储16个16比特的数据。
预设值是0X30。
采用了本发明的技术方案,能够支持对一个源、两个源或者三个源混洗,支持多源混洗操作可减少多源数据重排应用中所需要的指令数量,提高处理器的执行速度,并且支持对目的寄存器中的部分数据进行保持,而其他部分正常的接收混洗的数据,源寄存器中的数据保持不变。
附图说明
图1是本发明具体实施方式中数据混洗操作的示意图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
图1是本发明具体实施方式中数据混洗操作的示意图。如图1所示,三个源寄存器VRi、VRm和VRn,配置寄存器VR16和目的寄存器VRd都是256位矢量寄存器,都能够存储16个16比特的数据。
首先,将待混洗数据存储进三个源寄存器VRi、VRm和VRn中,三个源寄存器VRi、VRm和VRn的数据合并在一起统一排序。
其次,从三个源寄存器VRi、VRm和VRn的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个位置中的数据改为从源存储器VRn的第2个位置中取出的数据。
以此类推,配置寄存器VR16中存储的位置数对应的全部待混洗数据完成混洗后,整个数据混洗流程结束。
当然本具体实施方式中的源寄存器个数、预设值,以及源寄存器、配置寄存器和目的寄存器的存储空间都是可以根据具体需要进行调整的。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (4)
1.一种数据混洗的方法,其特征在于,包括以下步骤:
A、将待混洗数据存储进不少于2个源寄存器;
B、将与配置寄存器能够存储的数据个数一样数量的待混洗数据所在的位置数存储进配置寄存器;
C、逐个根据配置寄存器中的位置数对不少于2个源寄存器中的数据进行混洗,如果位置数的最高位为1,则将位置数对应的目的寄存器中位置处数据清零,如果位置数的最高位为0,并且位置数大于或等于预设值,则位置数对应的目的寄存器中位置处数据保持不变,如果位置数的最高位为0,并且位置数小于预设值,则将位置数对应的目的寄存器中位置处数据改为位置数对应的源寄存器中位置处数据。
2.根据权利要求1所述的一种数据混洗的方法,其特征在于,源寄存器、配置寄存器和目的寄存器是矢量寄存器。
3.根据权利要求2所述的一种数据混洗的方法,其特征在于,源寄存器、配置寄存器和目的寄存器是256位寄存器,能够存储16个16比特的数据。
4.根据权利要求1所述的一种数据混洗的方法,其特征在于,预设值是0X30。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010174354XA CN102253823A (zh) | 2010-05-18 | 2010-05-18 | 一种数据混洗的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010174354XA CN102253823A (zh) | 2010-05-18 | 2010-05-18 | 一种数据混洗的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102253823A true CN102253823A (zh) | 2011-11-23 |
Family
ID=44981106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010174354XA Pending CN102253823A (zh) | 2010-05-18 | 2010-05-18 | 一种数据混洗的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102253823A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016112511A1 (zh) * | 2015-01-15 | 2016-07-21 | 华为技术有限公司 | 一种数据混洗的装置及方法 |
CN104335166B (zh) * | 2012-06-29 | 2017-12-08 | 英特尔公司 | 用于执行混洗和操作的装置和方法 |
CN104583938B (zh) * | 2012-08-23 | 2018-06-15 | 高通股份有限公司 | 向量处理器中的数据提取系统和方法 |
-
2010
- 2010-05-18 CN CN201010174354XA patent/CN102253823A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104335166B (zh) * | 2012-06-29 | 2017-12-08 | 英特尔公司 | 用于执行混洗和操作的装置和方法 |
CN104583938B (zh) * | 2012-08-23 | 2018-06-15 | 高通股份有限公司 | 向量处理器中的数据提取系统和方法 |
WO2016112511A1 (zh) * | 2015-01-15 | 2016-07-21 | 华为技术有限公司 | 一种数据混洗的装置及方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6143872B2 (ja) | 装置、方法、およびシステム | |
US20190012171A1 (en) | Read and Write Masks Update Instruction for Vectorization of Recursive Computations Over Independent Data | |
EP2625599B1 (en) | Method and apparatus for floating point register caching | |
KR101597774B1 (ko) | 마스킹된 전체 레지스터 액세스들을 이용한 부분적 레지스터 액세스들을 구현하기 위한 프로세서들, 방법들 및 시스템들 | |
CN100367194C (zh) | 自堆栈快取存储器进行快速推测性弹出操作方法及装置 | |
JP6761565B2 (ja) | アウトオブオーダーハードウェアソフトウェア協調設計プロセッサにおいてスタック同期命令を用いてプレディケート値のスタックを実装し維持する方法および装置 | |
CN109643233A (zh) | 具有带读取和读取/前进操作数编码的流引擎的数据处理设备 | |
KR20130016246A (ko) | 다중 명령 세트에 의해 사용되는 레지스터 간의 매핑 | |
US20140095828A1 (en) | Vector move instruction controlled by read and write masks | |
CN104838357A (zh) | 瓦解的多嵌套循环的向量化 | |
CN101147125A (zh) | 用于直接累积未调准数据的可写入分段字的架构型寄存器 | |
CN107851013B (zh) | 数据处理装置和方法 | |
KR20170036035A (ko) | 인터럽트들의 세트들을 구성하는 장치 및 방법 | |
TW202138996A (zh) | 切換影堆疊指標的硬體設備以及方法 | |
CN101847096B (zh) | 包含栈变量函数的优化方法 | |
WO2019133258A1 (en) | Look up table with data element promotion | |
CN102253823A (zh) | 一种数据混洗的方法 | |
CN103336681B (zh) | 针对采用变长指令集的流水线结构处理器的取指方法 | |
US9378017B2 (en) | Apparatus and method of efficient vector roll operation | |
CN102163140A (zh) | 一种数据的重排方法及重排装置 | |
JP6773378B2 (ja) | 3d座標から3dのz曲線インデックスを計算するための機械レベル命令 | |
CN102253824A (zh) | 一种字节内比特数据混洗的方法 | |
CN202133997U (zh) | 一种数据的重排装置 | |
US9176738B2 (en) | Method and apparatus for fast decoding and enhancing execution speed of an instruction | |
JP4444305B2 (ja) | 半導体装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
DD01 | Delivery of document by public notice |
Addressee: Jiangsu Xindong Shenzhou Technology Co.,Ltd. Document name: Notification of Publication of the Application for Invention |
|
DD01 | Delivery of document by public notice |
Addressee: Jiangsu Xindong Shenzhou Technology Co.,Ltd. Document name: Notification that Application Deemed to be Withdrawn |
|
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20111123 |