CN105022609A - 一种数据混洗方法和数据混洗单元 - Google Patents

一种数据混洗方法和数据混洗单元 Download PDF

Info

Publication number
CN105022609A
CN105022609A CN 201510475413 CN201510475413A CN105022609A CN 105022609 A CN105022609 A CN 105022609A CN 201510475413 CN201510475413 CN 201510475413 CN 201510475413 A CN201510475413 A CN 201510475413A CN 105022609 A CN105022609 A CN 105022609A
Authority
CN
Grant status
Application
Patent type
Prior art keywords
shuffling
data
shuffle
pattern
unit
Prior art date
Application number
CN 201510475413
Other languages
English (en)
Inventor
张闯
陈继承
王洪伟
Original Assignee
浪潮(北京)电子信息产业有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date

Links

Abstract

本发明公开了一种数据混洗方法和数据混洗单元,该方法包括以下步骤:数据混洗单元接收来自向量运算部件的第一源操作数和第二源操作数;所述数据混洗单元将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数;所述数据混洗单元根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出,并将输出结果返回给所述向量运算部件。本发明中的数据混洗单元独立于向量运算部件,支持半字和字模式向量数据交换,使用硬件描述语言和EDA工具的支持下,能够在40nm工艺下达到1GHz的工作频率,高效灵活地实现数据混洗,可广泛应用于数字通讯、图像和视频处理等领域的ASIC数字信号处理器。

Description

一种数据混洗方法和数据混洗单元

技术领域

[0001] 本发明涉及计算机技术领域,具体涉及一种数据混洗方法和数据混洗单元。

背景技术

[0002] 随着多媒体技术和无线通信技术的进一步发展,数字信号处理的问题规模越来越大,需要在设计相应的数字信号处理器中采用更加先进的算法,实现数据的高效运算。因此,在数据运算密集型应用中,能够同时处理多个并行数据的SIMD(Single Instruct1nstream Multiple Data streams,单指令流多数据流)处理器具有很大优势。SIMD处理器中,每个向量运算部件都带有一个局部寄存器文件。不同SHffi处理器之间的差别在于向量运算部件之间通信的数据混洗网络,数据混洗网络规定向量运算部件之间的连接模式,决定S頂D处理器能适应的算法类别,对整个系统的性能和算法适应性产生重要影响。

[0003] 现有技术中,数据混洗单元包含在向量运算部件中,无法高效灵活地进行数据混洗。

发明内容

[0004] 本发明提供了一种数据混洗方法和数据混洗单元,以解决现有技术无法高效灵活地进行数据混洗的缺陷。

[0005] 本发明提供了一种数据混洗方法,包括以下步骤:

[0006] 数据混洗单元接收来自向量运算部件的第一源操作数和第二源操作数;

[0007] 所述数据混洗单元将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数;

[0008] 所述数据混洗单元根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出,并将输出结果返回给所述向量运算部件。

[0009] 可选地,所述数据混洗单元根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出之前,还包括:

[0010] 所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式;

[0011 ] 所述数据混洗单元根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号。

[0012] 可选地,所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取对应的混洗模式,具体为:

[0013] 当所述混洗指令为立即数混洗指令时,所述数据混洗单元使用与所述混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与所述混洗指令对应的混洗模式;

[0014] 当所述混洗指令为寄存器混洗指令时,所述数据混洗单元读取混洗模式地址寄存器,得到混洗模式地址,并根据所述混洗模式地址,从混洗模式存储器中读取与所述混洗指令对应的混洗模式。

[0015] 可选地,所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式之前,还包括:

[0016] 所述数据混洗单元根据译码站的信号,确定所述混洗指令的类型。

[0017] 可选地,所述数据混洗单元根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号之前,还包括:

[0018] 所述数据混洗单元根据译码站的信号,确定所述混洗指令的混洗粒度。

[0019] 可选地,所述数据混洗单元将输出结果返回给所述向量运算单元,具体为:

[0020] 所述数据混洗单元对所述输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。

[0021] 本发明还提供了一种数据混洗单元,包括:

[0022] 输入逻辑,用于接收来自向量运算部件的第一源操作数和第二源操作数,将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数;

[0023] 交叉网络,用于根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出;

[0024] 输出逻辑,用于将输出结果返回给所述向量运算部件。

[0025] 可选地,所述的数据混洗单元,还包括:

[0026] 主控逻辑,用于根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式;根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号。

[0027] 可选地,所述主控逻辑,具体用于在所述混洗指令为立即数混洗指令时,使用与所述混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与所述混洗指令对应的混洗模式;在所述混洗指令为寄存器混洗指令时,读取混洗模式地址寄存器,得到混洗模式地址,并根据所述混洗模式地址,从混洗模式存储器中读取与所述混洗指令对应的混洗模式。

[0028] 可选地,所述主控逻辑,还用于根据译码站的信号,确定所述混洗指令的类型。

[0029] 可选地,所述主控逻辑,还用于根据译码站的信号,确定所述混洗指令的混洗粒度。

[0030] 可选地,所述输出逻辑,具体用于对所述输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。

[0031] 本发明中的数据混洗单元独立于向量运算部件,支持半字和字模式向量数据交换,使用硬件描述语言和EDA工具的支持下,能够在40nm工艺下达到IGHz的工作频率,高效灵活地实现数据混洗,可广泛应用于数字通讯、图像和视频处理等领域的ASIC数字信号处理器。

附图说明

[0032] 图1为本发明实施例中的一种数据混洗方法流程图;

[0033] 图2为本发明实施例中的一种数据混洗单元的结构示意图;

[0034] 图3为本发明实施例中的双端口混洗模式存储器主体结构示意图;

[0035] 图4为本发明实施例中的半字混洗实现过程示意图;

[0036] 图5为本发明实施例中的字混洗实现过程示意图;

[0037] 图6为本发明实施例中的交叉开关的结构示意图;

[0038] 图7为本发明实施例中的选择控制信号的译码过程示意图。

具体实施方式

[0039] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

[0040] 需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

[0041] 本发明实施例提供了一种数据混洗方法,如图1所示,应用于包括数据混洗单元和向量运算部件的处理器中,且数据混洗单元独立于向量运算部件,上述方法包括以下步骤:

[0042] 步骤101,数据混洗单元接收来自向量运算部件的第一源操作数和第二源操作数。

[0043] 步骤102,数据混洗单元将第一源操作数和第二源操作数分别进行拼接,得到第一操作数和第二操作数。

[0044] 步骤103,数据混洗单元根据译码站的信号,确定混洗指令的类型和混洗粒度。

[0045] 步骤104,数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取与混洗指令对应的混洗模式。

[0046] 具体地,当混洗指令为立即数混洗指令时,数据混洗单元使用与混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与混洗指令对应的混洗模式;当混洗指令为寄存器混洗指令时,数据混洗单元读取混洗模式地址寄存器,得到混洗模式地址,并根据混洗模式地址,从混洗模式存储器中读取与混洗指令对应的混洗模式。

[0047] 步骤105,数据混洗单元根据混洗指令的混洗粒度,对混洗模式进行译码,得到选择控制信号。

[0048] 步骤106,数据混洗单元根据选择控制信号,对第一操作数和第二操作数进行选择输出,并将输出结果返回给向量运算部件。

[0049] 具体地,数据混洗单元可以根据选择控制信号,对第一操作数和第二操作数进行选择输出,并对输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。

[0050] 本发明实施例中的数据混洗单元独立于向量运算部件,支持半字和字模式向量数据交换,使用硬件描述语言和EDA工具的支持下,能够在40nm工艺下达到IGHz的工作频率,高效灵活地实现数据混洗,可广泛应用于数字通讯、图像和视频处理等领域的ASIC数字信号处理器。

[0051] 基于上述数据混洗方法,本发明实施例还提供了一种数据混洗单元,该数据混洗单元独立于向量运算部件,负责向量运算部件间寄存器的数据交互。

[0052] 具体地,执行混洗操作时,每个向量运算部件向数据混洗单元输入两个64位的源操作数,经过混洗后,数据混洗单元给每个向量处理部件返回一个64位的混洗结果。

[0053] 如图2所示,为本发明实施例中的数据混洗单元的结构示意图,包括:

[0054] 输入逻辑,用于接收来自向量运算部件的第一源操作数和第二源操作数,将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数。

[0055] 本实施例中,输入逻辑用于接收来自向量运算部件中的向量寄存器的两组64位的第一源操作数Srcl和第二 Src2,并将16个Srcl按一定顺序拼接成1024位的第一操作数opdl = {SrclVPE15, SrclVPE14,…SrclVPEl, SrclVPEO},将 16 个 Src2 按一定顺序拼接成1024 位的第二操作数 opd2 = {Src2VPE15, Src2VPE14,…Src2VPEl, Src2VPE0},再将 opdl和opd2输入给交叉开关。

[0056] 交叉网络,用于根据选择控制信号,对第一操作数和第二操作数进行选择输出;

[0057] 本实施例中,交叉开关根据选择控制信号对应的选择开关,从输入的2048位数据中选择输出1024位数据。

[0058] 输出逻辑,用于将输出结果返回给所述向量运算部件。

[0059] 具体地,上述输出逻辑,具体用于对所述输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。

[0060] 本实施例中,输出逻辑将交叉开关产生的1024位数据按一定的次序分割成16个64位数,并该16个64位数分别写回各个向量运算部件的向量寄存器,即{DstVPE15, DstVPE14,…,DstVPEl, DstVPEO},从而完成混洗操作。

[0061] 进一步地,上述数据混洗单元,还包括:

[0062] 主控逻辑,用于根据混洗指令的类型,从混洗模式寄存器中读取与混洗指令对应的混洗模式;根据混洗指令的混洗粒度,对混洗模式进行译码,得到选择控制信号。

[0063] 其中,按混洗模式地址来源的不同,混洗指令可分为立即数混洗指令和寄存器混洗指令,立即数混洗指令的模式地址由立即数指定,寄存器混洗指令的模式地址由控制寄存器指定。混洗指令的混洗粒度可以是半字混洗,也可以是按字混洗。

[0064] 具体地,上述主控逻辑,具体用于在混洗指令为立即数混洗指令时,使用与混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与混洗指令对应的混洗模式,使用混洗粒度对混洗模式进行译码,产生64个8位的选择控制信号,并将选择控制信号传递给交叉开关;在所述混洗指令为寄存器混洗指令时,读取混洗模式地址寄存器,得到混洗模式地址,并根据所述混洗模式地址,从混洗模式存储器中读取与混洗指令对应的混洗模式,使用混洗粒度对混洗模式进行译码,产生64个8位的选择控制信号,并将选择控制信号传递给交叉开关。

[0065] 进一步地,上述主控逻辑,还用于根据译码站的信号,确定混洗指令的类型。

[0066] 进一步地,上述主控逻辑,还用于根据译码站的信号,确定混洗指令的混洗粒度。

[0067] 本实施例中,主控逻辑是数据混洗单元的控制部分,控制着数据混洗单元的各个模块的协同工作,其内部包含一个专门的混洗模式存储器,用于存放混洗模式。主控逻辑控制数据混洗单元对混洗模式存储器的读操作,控制配置总线对混洗模式存储器的读写操作,并对交叉开关的选择控制信号进行译码。

[0068] 其中,混洗模式存储器为一个双端口的SRAM,如图3所示,单个体宽度为128bit,包含两个体,支持两种粒度的混洗操作,根据最小所需混洗模式位宽作为单个存储体的宽度。在混洗模式存储器中,每个地址可以存放2个字(128bits),起始地址从O地址算起。配置半字混洗模式需要256位,因此,SRAM需要用不大于127的正偶数进行配置,如:0,2,4,6,……126。在配置半字混洗时,必须连续配置4个字。配置字混洗模式需要128位,SRAM可以采用不大于127的自然数进行设置,如O,1,2,3,……127,在配置字混洗模式时,必须连续配置2个字。

[0069] 针对半字混洗执行语义,每个向量运算部件中的第一源操作数对应的寄存器和第二源操作数对应的寄存器的所有半字(64个)加上全O半字,根据混洗模式寄存器中的半字混洗模式,从中选择32个半字,输出到Dst对应的寄存器中。半字混洗的实现过程如图4所示,共有32个域,分别表示Dst操作数的32个半字分别来自于源操作数的哪个半字或者是否填零。每个域有Sbit的数据,最高位表示该位置是否填零,其余7位表示该位置的数据来自于源操作数的哪个半字。如00111111:最高位为0,表示该位置不填零,其余位置为0111111 (63),表示来源于第64个半字,即Src2的第32个半字。假设上述混洗模式在混洗模式地址寄存器中的地址是122,则相应的混洗模式存储器中的数据即是混洗模式。

[0070] 针对字混洗执行语义,每个向量运算部件中第一源操作数对应的寄存器和第二源操作数对应的寄存器的所有字(32个)加上全O字,根据混洗模式寄存器中的字混洗模式,从中选择16个字,输出到Dst对应的寄存器中。字混洗实现过程如图5所示,共有16个域,分别表示Dst操作数的16个字分别来自于源操作数的哪个字或者是否填零。每个域有Sbit的数据,最高位表示该位置是否填零,其余7位表示该位置的数据来自于源操作数的哪个字。如00011111:最高位为0,表示该位置不填零,其余位置为011111 (31),表示来源于第32个字,即Src2的第16个字。假设上述混洗模式在混洗模式地址寄存器中的地址是80,按照第80个模式地址中的混洗模式进行双字的混洗。

[0071] 数据混洗单元对混洗模式存储器中的数据读取,是根据所给定的模式地址及指令的粒度信息进行的。数据混洗单元读混洗模式存储器的地址是由7位的立即数mode或混洗模式地址寄存器的值指定的,其中,最低位表示SRAM的体地址(在半字混洗时,该位为0,两个体都要读取),而高6位表示混洗模式在SRAM体内的地址。另一方面是控制配置总线对混洗模式存储器的读写操作。配置总线访问混洗模式存储器时,每次只能读写一个字,即访问一个存储体地址里的内容需要2拍。

[0072] 主控逻辑从混洗模式存储器中读出的混洗模式,根据指令的粒度进行译码,产生64个选择控制信号,去控制交叉开关的64个选择开关的工作。本发明用一个字节去选择一个16位的数据。交叉开关的设计基于选择树型结构,结构图如图6所示。采用区分不同混洗粒度的混洗模式压缩方法的主要开销体现在字和半字粒度的混洗模式需要转换成字节作为开关选择信号。主控逻辑将字粒度混洗或半字粒度混洗的信息译码成相应的字节选择信号,从而驱动交叉开关网络进行数据重新排列。

[0073] 主控逻辑对选择控制信号的译码过程如图7所示,其中,GM表示从混洗模式存储器中读出的信息,sel表示最终驱动交叉开关的选择信息,GM中的每一个字节的最高位表示是否将目的寄存器的对应元素置为全零,因而在译码过程中保留。对于半字粒度的混洗信息扩展为字节选择信号,只需在有效的选择字段后添加1’bO或l’bl即可。对于字粒度的混洗信息扩展为字节选择信号,只需在有效的选择字段后面添加2’b00,2’bOl,2’blO或2’ bll即可。

[0074] 本发明实施例中的数据混洗单元独立于向量运算部件,支持半字和字模式向量数据交换,使用硬件描述语言和EDA工具的支持下,能够在40nm工艺下达到IGHz的工作频率,高效灵活地实现数据混洗,可广泛应用于数字通讯、图像和视频处理等领域的ASIC数字信号处理器。此外,使用专用SRAM结构作为混洗模式的存储结构,将混洗模式存储在SRAM中,能够减少寄存器资源的占用,有利于开发指令的数据级并行,并避免占用额外的系统访存带宽。

[0075] 结合本文中所公开的实施例描述的方法中的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

[0076] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (12)

1.一种数据混洗方法,其特征在于,包括以下步骤: 数据混洗单元接收来自向量运算部件的第一源操作数和第二源操作数; 所述数据混洗单元将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数; 所述数据混洗单元根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出,并将输出结果返回给所述向量运算部件。
2.如权利要求1所述的方法,其特征在于,所述数据混洗单元根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出之前,还包括: 所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式; 所述数据混洗单元根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号。
3.如权利要求2所述的方法,其特征在于,所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取对应的混洗模式,具体为: 当所述混洗指令为立即数混洗指令时,所述数据混洗单元使用与所述混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与所述混洗指令对应的混洗模式; 当所述混洗指令为寄存器混洗指令时,所述数据混洗单元读取混洗模式地址寄存器,得到混洗模式地址,并根据所述混洗模式地址,从混洗模式存储器中读取与所述混洗指令对应的混洗模式。
4.如权利要求2所述的方法,其特征在于,所述数据混洗单元根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式之前,还包括: 所述数据混洗单元根据译码站的信号,确定所述混洗指令的类型。
5.如权利要求2所述的方法,其特征在于,所述数据混洗单元根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号之前,还包括: 所述数据混洗单元根据译码站的信号,确定所述混洗指令的混洗粒度。
6.如权利要求1所述的方法,其特征在于,所述数据混洗单元将输出结果返回给所述向量运算单元,具体为: 所述数据混洗单元对所述输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。
7.一种数据混洗单元,其特征在于,包括: 输入逻辑,用于接收来自向量运算部件的第一源操作数和第二源操作数,将所述第一源操作数和所述第二源操作数分别进行拼接,得到第一操作数和第二操作数; 交叉网络,用于根据选择控制信号,对所述第一操作数和所述第二操作数进行选择输出; 输出逻辑,用于将输出结果返回给所述向量运算部件。
8.如权利要求7所述的数据混洗单元,其特征在于,还包括: 主控逻辑,用于根据混洗指令的类型,从混洗模式寄存器中读取与所述混洗指令对应的混洗模式;根据所述混洗指令的混洗粒度,对所述混洗模式进行译码,得到所述选择控制信号。
9.如权利要求8所述的数据混洗单元,其特征在于, 所述主控逻辑,具体用于在所述混洗指令为立即数混洗指令时,使用与所述混洗指令对应的立即数对预设地址取模,根据取模结果读取混洗模式寄存器,得到与所述混洗指令对应的混洗模式;在所述混洗指令为寄存器混洗指令时,读取混洗模式地址寄存器,得到混洗模式地址,并根据所述混洗模式地址,从混洗模式存储器中读取与所述混洗指令对应的混洗模式。
10.如权利要求8所述的数据混洗单元,其特征在于, 所述主控逻辑,还用于根据译码站的信号,确定所述混洗指令的类型。
11.如权利要求8所述的数据混洗单元,其特征在于, 所述主控逻辑,还用于根据译码站的信号,确定所述混洗指令的混洗粒度。
12.如权利要求7所述的数据混洗单元,其特征在于, 所述输出逻辑,具体用于对所述输出结果进行分割,将分割得到的数据分别写入到各个向量运算部件的向量寄存器中。
CN 201510475413 2015-08-05 2015-08-05 一种数据混洗方法和数据混洗单元 CN105022609A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201510475413 CN105022609A (zh) 2015-08-05 2015-08-05 一种数据混洗方法和数据混洗单元

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201510475413 CN105022609A (zh) 2015-08-05 2015-08-05 一种数据混洗方法和数据混洗单元

Publications (1)

Publication Number Publication Date
CN105022609A true true CN105022609A (zh) 2015-11-04

Family

ID=54412601

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201510475413 CN105022609A (zh) 2015-08-05 2015-08-05 一种数据混洗方法和数据混洗单元

Country Status (1)

Country Link
CN (1) CN105022609A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095392A (zh) * 2016-06-20 2016-11-09 龙芯中科技术有限公司 混洗模式生成方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054877A1 (en) * 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US20080215855A1 (en) * 2006-06-30 2008-09-04 Mohammad Abdallah Execution unit for performing shuffle and other operations
CN101986262A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 基于模式偏移的混洗开关矩阵压缩方法
CN102053816A (zh) * 2010-11-25 2011-05-11 中国人民解放军国防科学技术大学 具有开关矩阵存储器的数据混洗单元及其混洗方法
CN103189837A (zh) * 2011-10-18 2013-07-03 松下电器产业株式会社 混洗模式生成电路、处理器、混洗模式生成方法、命令
CN103294621A (zh) * 2013-05-08 2013-09-11 中国人民解放军国防科学技术大学 支持数据按模重组的向量访存方法
US20140006756A1 (en) * 2012-06-29 2014-01-02 Igor Ermolaev Systems, Apparatuses, and Methods for Performing a Shuffle and Operation (Shuffle-Op)

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040054877A1 (en) * 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US20080215855A1 (en) * 2006-06-30 2008-09-04 Mohammad Abdallah Execution unit for performing shuffle and other operations
CN101986262A (zh) * 2010-11-25 2011-03-16 中国人民解放军国防科学技术大学 基于模式偏移的混洗开关矩阵压缩方法
CN102053816A (zh) * 2010-11-25 2011-05-11 中国人民解放军国防科学技术大学 具有开关矩阵存储器的数据混洗单元及其混洗方法
CN103189837A (zh) * 2011-10-18 2013-07-03 松下电器产业株式会社 混洗模式生成电路、处理器、混洗模式生成方法、命令
US20140006756A1 (en) * 2012-06-29 2014-01-02 Igor Ermolaev Systems, Apparatuses, and Methods for Performing a Shuffle and Operation (Shuffle-Op)
CN103294621A (zh) * 2013-05-08 2013-09-11 中国人民解放军国防科学技术大学 支持数据按模重组的向量访存方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
彭浩: "X-DSP 64 位 SIMD 位处理部件及混洗单元的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
徐恩 等: "一种64位混洗单元设计与验证", 《第十七届计算机工程与工艺年会暨第三届微处理器技术论坛论文集》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095392A (zh) * 2016-06-20 2016-11-09 龙芯中科技术有限公司 混洗模式生成方法和装置

Similar Documents

Publication Publication Date Title
US6061779A (en) Digital signal processor having data alignment buffer for performing unaligned data accesses
US6804771B1 (en) Processor with register file accessible by row column to achieve data array transposition
US6510510B1 (en) Digital signal processor having distributed register file
US7937559B1 (en) System and method for generating a configurable processor supporting a user-defined plurality of instruction sizes
US20110078415A1 (en) Efficient Predicated Execution For Parallel Processors
US7047396B1 (en) Fixed length memory to memory arithmetic and architecture for a communications embedded processor system
USRE40883E1 (en) Methods and apparatus for dynamic instruction controlled reconfigurable register file with extended precision
US20130339649A1 (en) Single instruction multiple data (simd) reconfigurable vector register file and permutation unit
US7454599B2 (en) Selecting multiple threads for substantially concurrent processing
US20090063824A1 (en) Compound instructions in a multi-threaded processor
US20140173224A1 (en) Sequential location accesses in an active memory device
US20040162964A1 (en) Processor capable of switching/reconstituting architecture
JP2000509528A (ja) データ処理マネージメントシステム
US6463518B1 (en) Generation of memory addresses for accessing a memory utilizing scheme registers
JP2005174295A (ja) Simdデータ処理における算術演算の実行のためのデータ処理装置及び方法
US20120102275A1 (en) Memories and methods for performing atomic memory operations in accordance with configuration information
JP2005209108A (ja) メモリ外付けマイコン
US20040255097A1 (en) Instruction encoding within a data processing apparatus having multiple instruction sets
US20020026545A1 (en) Data processing apparatus of high speed process using memory of low speed and low power consumption
JP2003196086A (ja) レジスタウィンドウ方式によるレジスタファイル及びその制御方法
JP2009282744A (ja) 演算器及び半導体集積回路装置
US20090228692A1 (en) Load Register Instruction Short Circuiting Method
US20110231616A1 (en) Data processing method and system
US20030120854A1 (en) Method and apparatus for increasing the memory read/write speed by using internal registers
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set

Legal Events

Date Code Title Description
C06 Publication
C10 Entry into substantive examination
WD01