CN104572480B - 用于数据元素的交织存储的数据处理设备和方法 - Google Patents

用于数据元素的交织存储的数据处理设备和方法 Download PDF

Info

Publication number
CN104572480B
CN104572480B CN201410554913.8A CN201410554913A CN104572480B CN 104572480 B CN104572480 B CN 104572480B CN 201410554913 A CN201410554913 A CN 201410554913A CN 104572480 B CN104572480 B CN 104572480B
Authority
CN
China
Prior art keywords
bit
data
storage circuit
data element
processing equipment
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.)
Active
Application number
CN201410554913.8A
Other languages
English (en)
Other versions
CN104572480A (zh
Inventor
干纳施·苏亚那拉亚安·达斯卡
鲁纳·霍姆
斯蒂芬·约翰·希尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Co Ltd
Original Assignee
ARM Co Ltd
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
Application filed by ARM Co Ltd filed Critical ARM Co Ltd
Publication of CN104572480A publication Critical patent/CN104572480A/zh
Application granted granted Critical
Publication of CN104572480B publication Critical patent/CN104572480B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0607Interleaved addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3887Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • Memory System (AREA)
  • Advance Control (AREA)

Abstract

本公开提供了一种用于数据元素的交织存储的数据处理设备和方法。一种数据处理设备100包括以交织方式存储比特的多个数据元素的多个存储电路130、160。数据处理设备还包括具有若干个通道120的数据使用装置110。数据使用装置能够单独地访问多个存储电路130、160中的每一个以将多个数据元素的子集或多个数据元素中的每一个的y个比特接收到通道120中。数据使用装置110还能够执行多个通道120中的每一个的公共指令。比特的关系使得b大于y并且是y的整数倍。多个存储电路130、160中的每一个存储数据元素中的每一个的至多y个比特。此外,存储电路130、160中的每一个存储多个数据元素中的至多y/b个。通过以此方式执行交织,多个存储电路130、160包括不多于b/y个存储电路。

Description

用于数据元素的交织存储的数据处理设备和方法
技术领域
本发明涉及数据处理领域。具体来说,本发明涉及数据元素的交织存储(interleaved storage)。
背景技术
在单指令多数据(SIMD)架构中,数据处理元件(也称为数据使用装置(consumer))可以立刻对几个数据元素执行单个指令。数据处理元件从存储电路获得数据元素。每个数据元素随后被插入到处理元件的单独通道中,并且单个指令随后可以在每个通道(lane)上并行地执行。因此,同时对许多数据元素执行一个指令,由此提供数据并行化。
处理元件可以从共同地形成SIMD寄存器的多个通用寄存器获取多个数据元素。为了处理元件可以并行地访问构成数据元素的比特,必须将每个通用寄存器提供在单独的寄存器组(register bank)中。如果将两个这样的寄存器提供在相同的寄存器组中,则将需要对那个寄存器组(或多个访问端口)进行两次访问来检索存储于其中的比特。由于对寄存器组的每次访问耗费时间,所以将会增加处理元件的等待时间。
通常,处理元件没有SIMD寄存器宽。也就是说,处理元件可以保持比SIMD寄存器能够存储的比特少的比特(bit)。因此,处理元件可以选择分批处理存储在SIMD寄存器中的数据元素,或者可以迭代地处理存储在SIMD寄存器中的每个数据元素的子集。例如,可以首先处理每个数据元素的顶部32个比特,随后处理每个数据元素的底部32个比特。处理元件在任何特定时刻所使用的技术可以取决于所执行的运算,并且具体来说取决于哪种技术将最有效。
可以单独地或组合地访问构成SIMD寄存器的寄存器,以获取处理元件所必需的数据。因此,必需在构成或提供SIMD寄存器的寄存器组之间提供多路复用逻辑。然而,每个寄存器组和多路复用逻辑都占用空间并且消耗功率,这是不利的。
发明内容
根据一个方面,提供一种数据处理设备,包括:配置成以交织方式存储b个比特的多个数据元素的多个存储电路;以及包括多个通道的数据使用装置,其被配置成能够单独地访问所述多个存储电路中的每一个、将所述多个数据元素的子集或所述多个数据元素中的每一个的y个比特接收到所述多个通道中并且在所述多个通道的每一个上执行公共指令,其中b大于y并且是y的整数倍;其中所述多个存储电路中的每一个被配置成存储所述数据元素中的每一个的至多y个比特;其中所述多个存储电路中的每一个被配置成存储所述多个数据元素中的至多y/b个;以及其中所述多个存储电路包括不多于b/y个存储电路。
数据使用装置可以以下方式中的任一种从存储电路并行地访问比特:在第一方式中,数据使用装置将多个数据元素的子集接收到多个通道中。在第二种方式中,数据使用装置将多个数据元素中的每一个的比特的子集y接收在存储电路中。如以上所论述,数据使用装置可以取决于在具体时间哪种最有效来在这些方式之间改变。在任一种状况下,存在数据使用装置未并行地访问的构成数据元素的某些比特组合。数据使用装置未并行地访问的比特组合可以存储在相同的存储电路中。因此,将减少存储电路的数量且因此减少电路量和功率要求,而不需要数据使用装置对相同的存储电路进行多次访问,这将会增加等待时间。
比特的这种分布通过交织来实现。交织使得对于具有b个比特长度的数据元素来说,每个存储电路被配置成存储每个数据元素的至多y个比特,并且每个存储电路被配置成存储数据元素中的至多y/b个。因此,不管数据使用装置是根据第一种方式还是第二种方式来访问比特(如以上论述),数据使用装置都可以仍通过一次访问每个存储电路来并行地访问所需要的比特,并且可以将存储电路的数量减少到最多b/y。
多个存储电路可以进一步被配置成以交织方式存储c个比特的多个第二数据元素。此外,数据处理设备可以包括配置成并行地访问比第一数据使用装置数量少的比特的第二数据使用装置,第二数据使用装置包括多个第二通道并且被配置成访问所述多个存储电路的第二子集、将来自第二子集中的每个存储电路的所述多个第二数据元素的z/c中的z个比特接收到所述多个第二通道中,并且在多个第二通道中的每一个上执行公共指令。比特变织的进一步有利之处在于,第二数据使用装置能够仅检索当前运算所需要的那些比特。具体来说,第二数据使用装置不会被迫请求多于一次可以被处理的比特。此外,第一数据使用装置或第二数据使用装置都不需要对任一个存储电路进行多次访问以并行地获取比特。这具有不会增加等待时间的优点。
存储电路的第二子集可以由多个存储电路中的一个构成。也就是说,第二数据使用装置可以被配置成访问存储电路中的任一个。
第二数据使用装置可以是例如浮点单元(FPU),其可以被配置成对存储在多个通道中的多个数据元素执行浮点运算。
数据使用装置可以并行地访问1024个比特并且第二数据使用装置可以并行地访问512个比特。也就是说,数据使用装置可以具有1024个比特的宽度,并且第二数据使用装置可以具有512个比特的宽度。将了解,其他宽度可以是可能的。具体来说,宽度不需要是二的幂,第二数据使用装置的宽度也不必是数据使用装置宽度的确切因数。然而,数据使用装置的宽度和第二数据使用装置的宽度是存储电路中的一个存储电路的元件之一的宽度的倍数可以是有利的。
数据使用装置可以是整数算术逻辑单元(ALU)。此整数ALU可以用来对存储在数据使用装置的通道中的多个数据元素并行地执行整数运算。
每个存储电路可以被配置成存储每个数据元素的连续比特的块。也就是说,每个存储电路可以存储比特块,而在每个块之间没有任何间隙。换句话说,每个数据元素可以被认为分成多个块,其中每个块分配给一个存储电路。
多个存储电路可以包括不多于两个存储电路。例如,如果变量b是64并且变量y是32。当然,本领域技术人员将了解,对于这些变量来说其他数量是可能的,只要符合第一方面所提及的要求即可。
存储电路中的每一个可以被配置成存储每个数据元素的恰好y个比特。
多个存储电路中的每一个可以被配置成存储多个数据元素的恰好y/b。
在一些实施例中,存储电路可以是寄存器块。每个寄存器块可以包括通用寄存器集。适用于存储数据元素的其他存储电路将对本领域技术人员显而易见。
根据本发明的第二方面,提供一种用于以交织方式将b个比特的多个数据元素存储在不多于多个存储电路中以由数据使用装置访问的数据存储方法,其中所述数据使用装置包括多个通道并且将所述多个数据元素的子集或所述多个数据元素中的每一个的y个比特接收到所述多个通道中,所述方法包括:所述多个存储电路中的每一个存储所述数据元素中的每一个的至多y个比特;所述多个存储电路中的每一个存储所述多个数据元素中的至多y/b个,其中b大于y并且是y的整数倍;以及其中所述多个存储电路包括不多于b/y个存储电路。
根据本发明的第三方面,提供一种数据处理设备,包括:用于以交织方式存储b个比特的多个数据元素的多个存储电路装置;以及数据使用装置,其用于单独地访问所述多个存储电路中的每一个、用于将所述多个数据元素的子集或所述多个数据元素中的每一个的y个比特接收到多个通道中并且用于在所述多个通道的每一个上执行公共指令,其中b大于y并且是y的整数倍;其中所述多个存储装置中的每一个被配置成存储所述数据元素中的每一个的至多y个比特;其中所述多个存储装置中的每一个被配置成存储所述多个数据元素中的至多y/b个;以及其中所述多个存储装置包括不多于b/y个存储装置。
本发明的以上和其他目标、特征以及优点将从结合附图阅读的说明性实施例的以下详细描述显而易见。
附图说明
图1示出包括根据一个示例性实施例的数据处理装置的系统;
图2示出当数据使用装置配置成从包括存储电路的寄存器获取数据元素时的指令执行电路;
图3示出寄存器堆中的四个寄存器组之间的数据元素的交织比特的实例;
图4示出其中指令执行电路的两个实例用作数据使用装置并且从寄存器堆中的一对寄存器组获取数据元素的实例;以及
图5示出根据一个示例性实施例的用于在多个存储电路之间交织比特的示例性方法的流程图。
具体实施方式
图1示出包括根据一个实施例的数据处理装置的示例性系统。在图1中,指令获取器(fetcher)10被配置成从存储器获取指令。所获取到的指令被传递给指令解码器20。指令解码器20确定将要执行的指令并且产生相关控制信号并发送到指令执行电路30。指令执行电路30通过使用例如ALU、移位器、FPU等执行特定计算来响应控制信号。也就是说,指令执行电路30可以负责操纵数据元素。在指令执行电路30处提供加载/存储单元60以对存储器设备50进行访问。此外,指令执行30可以与一个或多个存储电路或位于寄存器堆(registerfile)40中的寄存器组通信。具体来说,指令执行电路30可以将数据加载/存储到寄存器堆40中的寄存器组。
图2示出数据处理装置100的实例。数据处理装置100包括用作指令执行电路30的整数ALU110。在此实例中,整数ALU110具有分成通道120的1024个比特的宽度。通道120中的每一个宽度是32个比特,从而提供编号0至31的总共32个通道。在此实例中,整数被认为是64比特的值。因此,可以组合两个相邻通道以形成处理整个整数值的单个通道。例如,如图2中所示,可以组合通道0和1(每个具有32个比特)来形成单个64比特通道。寄存器堆40包括两个寄存器组130、160,其是存储电路的实例。每个寄存器组包括两个寄存器。例如,组零包括寄存器140、150并且组一包括寄存器170、180。每个寄存器组内的每个寄存器具有512个比特的宽度或大小。所有四个寄存器140、150、170、180共同地形成存储64个比特的32个数据元素的单个SIMD寄存器。
数据元素的比特的交织可以在图2中看出。具体来说,寄存器140含有元素16至31的下部32个比特,寄存器150含有元素0至15的上部32个比特,寄存器170含有元素16至31的上部32个比特,并且寄存器180含有元素0至15的下部32个比特。由于以此方式交织数据元素的比特,所以整数ALU110有可能访问:
与寄存器堆40中的数据元素的子集有关的所有比特。例如,从元素0到15的所有64个比特可以通过访问来自组零130的寄存器150和来自组一160的寄存器180来访问。或者,从元素16到31的所有64个比特可以通过访问来自组零130的寄存器140和来自组一160的寄存器170来访问。
存储在寄存器堆40中的32个元素的每一个的比特的子集。例如,从元素0到32的上部32个比特可以通过访问来自组零130的寄存器150和来自组一160的寄存器170来访问。或者,对于数据文件40中的所有32个元素,下部32个比特可以通过访问来自组零130的寄存器140和来自组一160的寄存器180来访问。
在任一种状况下,可以看出整数ALU110能够在无需求助于访问相同的寄存器组130、160两次(这将会由于一个寄存器组输出存储在来自那个组的两个寄存器中的数据而导致延迟)的情况下访问相关比特。有可能仅提供两个寄存器组。这通过交织每个数据元素的比特从而使得将不会被并行访问的比特被保持在寄存器堆40中的相同寄存器组的寄存器中来实现。由于每个数据元素的长度是64个比特(即,b是64)并且由于整数ALU在访问每个数据元素的比特的子集时访间32个比特(即,y是32),所以仅需要两个寄存器组(b/y或64/32是2)。b和y是正整数值。
图3示出横跨寄存器堆40中的四个寄存器组210、220、230和240交织的实例。交织遵循与图2中所示的寄存器组130和160类似的模式。然而,在图3中,每个寄存器组内的每个寄存器仅存储8个数据元素的8个比特。整数ALU110(第二数据使用装置)可以在必要时连续访问所需要的比特,而无需在相同寄存器组中的寄存器上执行多次访问。例如,元素0到7的所有32个比特可以通过访问来自组零210的寄存器250、来自组一220的寄存器260、来自组二230的寄存器270以及来自组三240的寄存器280来访问。将了解,整数ALU110可以类似于关于图2所论述的方式类似的方式来访问来自寄存器组210、220、230和240的比特的不同组合。比特的交织通过组织数据元素的比特以使得未由数据使用装置并行访问的数据元素的比特被存储在相同寄存器组的寄存器中来实现。在此实例中,假定每个数据元素的长度是32个比特(即,b是32)并且假定数据使用装置可以一次访问每个数据元素的8个比特(即,y是8),则提供四个寄存器组(b/y或32/8是4)。
图4示出其中提供第二数据使用装置(浮点单元(FPU))310的实例。FPU310具有512个比特的宽度,这小于整数ALU110的宽度。FPU还包括16个通道320,每个通道具有32个比特。FPU310还能够与整数ALU110一样访问寄存器堆40中的相同寄存器组130、160。然而,在此实例中假定寄存器组130、160存储32个比特浮点数据元素(即,z是32)并且FPU可以一次访问每个数据元素的16个比特(即,c是16)。c和z是正整数值。
尽管FPU310具有小于整数ALU110的宽度,但是寄存器堆40的布置并不使得FPU310必须访问寄存器140、150、170和180中的一个并且随后丢弃不想要的比特。除了每个寄存器140、150、170和180存储32个数据元素中的每一个的16个比特之外,比特的交织是以与关于图2所描述的方式类似的方式来执行。
通过以此方式来交织数据元素,FPU310不需要访问相同寄存器组130、160超过一次来访问对其执行特定运算的比特。此外,FPU310不需要访问寄存器组130、160并且随后丢弃在那时不能处理的比特。此外,整数ALU110还可以访问相同(浮点)数据元素并且对那些元素执行运算。这也可以在不需要整数ALU110访问相同寄存器组130、160超过一次的情况下实现。例如,整数ALU110可以通过访问来自组零的寄存器150和来自组一的寄存器180来对元素0至31的所有32个比特执行运算。因此,交织导致灵活且高效的数据处理装置。
图5示出在诸如寄存器组的若干存储电路之间交织或分布数据元素的比特的方法。交织方法在步骤S10开始。在步骤S20,检索特定数据元素的连续比特的下一个块。在步骤S30,设想下一个存储电路用于存储连续比特的这个块。步骤S40确定所设想的存储电路是否已经存储此特定数据元素的y或更多个比特。如果所设想的存储电路确实已经存储此数据元素的y个或更多个比特,则过程返回到其中设想下一个存储电路的步骤S30。或者,如果存储电路尚未存储当前数据元素的y个或更多个比特,则过程继续到步骤S50。在步骤S50,确定存储电路是否已经存储y/b或更多个不同的数据元素,并且如果这样,则过程返回到其中设想下一个存储电路的步骤S30。或者,过程继续到步骤S60。在步骤S60,已经确定所设想的存储电路尚未存储此数据元素的y个或更多个比特,并且已经确定存储电路尚未存储y/b或更多个不同的数据元素。因此,所设想的存储电路适用于存储连续比特的当前块并且因此进行存储分配。过程随后继续到S70。在步骤S70,确定是否存在有待存储的更多比特块。如果这样,则过程返回到其中检索数据元素的连续比特的下一个块的步骤S20,否则过程在步骤S80终止。可以对每个数据元素执行此过程。因此,可以看出根据以上提供的实例可以如何交织数据元素集的比特。
尽管本文描述了具体实施例,但是将了解,本发明并不限于此并且在发明范围内可以进行许多修改和添加。例如,在不脱离本发明的范围的情况下,可以进行以下从属权利要求的特征与独立权利要求的特征的各种组合。

Claims (14)

1.一种数据处理设备,包括:
多个存储电路,所述多个存储电路被配置成以交织方式存储b个比特的多个数据元素;以及
包括多个通道的第一指令执行电路,所述第一指令执行电路被配置成能够单独地访问所述多个存储电路中的每一个,并且将以下各项接收到所述多个通道中:
(a)所述多个数据元素的子集,以及
(b)所述多个数据元素中的每一个数据元素的y个比特,并且
其中所述第一指令执行电路还被配置成在所述多个通道的每一个上执行公共指令,
其中b大于y并且是y的整数倍;
其中所述多个存储电路中的每一个被配置成存储来自所述数据元素中的每一个数据元素的一组比特,该组比特包括至多y个比特,其中存储在所述多个存储电路中的相同存储电路中的各组比特包括与相应数据元素的比特位置的第一子集相对应的至少一组比特和与相应数据元素的比特位置的第二子集相对应的至少一组比特,其中比特位置的第二子集不同于比特位置的第一子集;
其中所述多个存储电路中的每一个被配置成存储所述多个数据元素中的至多y/b个数据元素;并且
其中所述多个存储电路包括不多于b/y个存储电路。
2.根据权利要求1所述的数据处理设备,
其中所述多个存储电路进一步被配置成以交织方式存储c个比特的多个第二数据元素;并且
其中所述数据处理设备包括配置成并行地访问比所述第一指令执行电路数量少的比特的第二指令执行电路,所述第二指令执行电路包括多个第二通道并且被配置成访问所述多个存储电路的第二子集、将来自所述第二子集中的每个存储电路的所述多个第二数据元素的z/c个第二数据元素中的z个比特接收到所述多个第二通道中、并且在所述多个第二通道中的每一个上执行公共指令。
3.根据权利要求2所述的数据处理设备,
其中所述第二子集由所述多个存储电路中的一个构成。
4.根据权利要求2所述的数据处理设备,
其中所述第二指令执行电路是浮点单元。
5.根据权利要求2所述的数据处理设备,
其中所述指令执行电路并行地访问1024个比特;以及
其中所述第二指令执行电路并行地访问512个比特。
6.根据权利要求1所述的数据处理设备,
其中所述指令执行电路是整数ALU。
7.根据权利要求1所述的数据处理设备,
其中所述多个存储电路中的每一个被配置成存储所述数据元素中的每一个数据元素的一组连续比特。
8.根据权利要求1所述的数据处理设备,
其中所述多个存储电路包括不多于2个存储电路。
9.根据权利要求1所述的数据处理设备,
其中b是64。
10.根据权利要求1所述的数据处理设备,
其中y是32。
11.根据权利要求1所述的数据处理设备,
其中所述多个存储电路中的每一个被配置成存储所述数据元素中的每一个数据元素的恰好y个比特。
12.根据权利要求1所述的数据处理设备,
其中所述多个存储电路中的每一个被配置成存储所述多个数据元素的恰好y/b个数据元素。
13.根据权利要求1所述的数据处理设备,
其中所述存储电路是寄存器组。
14.一种数据存储方法,所述方法用于以交织方式将b个比特的多个数据元素存储在多个存储电路中以由指令执行电路访问,其中所述指令执行电路包括多个通道并且将以下各项接收到所述多个通道中:
(a)所述多个数据元素的子集,以及
(b)所述多个数据元素中的每一个数据元素的y个比特,
所述方法包括:
所述多个存储电路中的每一个存储所述数据元素中的每一个数据元素的一组比特,该组比特包括至多y个比特,其中存储在所述多个存储电路中的相同存储电路中的各组比特包括与相应数据元素的比特位置的第一子集相对应的至少一组比特和与相应数据元素的比特位置的第二子集相对应的至少一组比特,其中比特位置的第二子集不同于比特位置的第一子集;
所述多个存储电路中的每一个存储所述多个数据元素中的至多y/b个,
其中b大于y并且是y的整数倍;以及
其中所述多个存储电路包括不多于b/y个存储电路。
CN201410554913.8A 2013-10-25 2014-10-17 用于数据元素的交织存储的数据处理设备和方法 Active CN104572480B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/063,161 US9582419B2 (en) 2013-10-25 2013-10-25 Data processing device and method for interleaved storage of data elements
US14/063,161 2013-10-25

Publications (2)

Publication Number Publication Date
CN104572480A CN104572480A (zh) 2015-04-29
CN104572480B true CN104572480B (zh) 2019-11-12

Family

ID=51901436

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410554913.8A Active CN104572480B (zh) 2013-10-25 2014-10-17 用于数据元素的交织存储的数据处理设备和方法

Country Status (4)

Country Link
US (1) US9582419B2 (zh)
KR (1) KR102252600B1 (zh)
CN (1) CN104572480B (zh)
GB (1) GB2521029B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106375243B (zh) * 2015-07-22 2019-09-03 华为技术有限公司 数据处理设备和光传送网络交换机
WO2021087841A1 (en) * 2019-11-07 2021-05-14 Intel Corporation Interleaved data conversion to change data formats

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320356A (zh) * 2008-07-14 2008-12-10 曹乃承 数据存储方法和装置
CN102411987A (zh) * 2010-09-20 2012-04-11 三星电子株式会社 存储器件及其自交织方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5867724A (en) * 1997-05-30 1999-02-02 National Semiconductor Corporation Integrated routing and shifting circuit and method of operation
US6807620B1 (en) * 2000-02-11 2004-10-19 Sony Computer Entertainment Inc. Game system with graphics processor
US7120781B1 (en) 2000-06-30 2006-10-10 Intel Corporation General purpose register file architecture for aligned simd
US20040054877A1 (en) * 2001-10-29 2004-03-18 Macy William W. Method and apparatus for shuffling data
US7496776B2 (en) * 2003-08-21 2009-02-24 International Business Machines Corporation Power throttling method and apparatus
GB2409063B (en) 2003-12-09 2006-07-12 Advanced Risc Mach Ltd Vector by scalar operations
GB2409061B (en) * 2003-12-09 2006-09-13 Advanced Risc Mach Ltd Table lookup operation within a data processing system
US8417922B2 (en) * 2006-08-02 2013-04-09 Qualcomm Incorporated Method and system to combine multiple register units within a microprocessor
US8078836B2 (en) 2007-12-30 2011-12-13 Intel Corporation Vector shuffle instructions operating on multiple lanes each having a plurality of data elements using a common set of per-lane control bits
US9086872B2 (en) * 2009-06-30 2015-07-21 Intel Corporation Unpacking packed data in multiple lanes
US9298457B2 (en) * 2013-01-22 2016-03-29 Altera Corporation SIMD instructions for data compression and decompression

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101320356A (zh) * 2008-07-14 2008-12-10 曹乃承 数据存储方法和装置
CN102411987A (zh) * 2010-09-20 2012-04-11 三星电子株式会社 存储器件及其自交织方法

Also Published As

Publication number Publication date
US9582419B2 (en) 2017-02-28
US20150121019A1 (en) 2015-04-30
GB201417332D0 (en) 2014-11-12
KR102252600B1 (ko) 2021-05-17
CN104572480A (zh) 2015-04-29
GB2521029B (en) 2020-12-16
GB2521029A (en) 2015-06-10
KR20150048040A (ko) 2015-05-06

Similar Documents

Publication Publication Date Title
CN102460420B (zh) 存储器装置的内部处理器中的条件式操作
US9760373B2 (en) Functional unit having tree structure to support vector sorting algorithm and other algorithms
CN103218208B (zh) 用于实施成形的存储器访问操作的系统和方法
US20170212757A1 (en) Simd processing unit with local data share and access to a global data share of a gpu
CN105659208B (zh) 处理多个线程的数据处理装置及方法
CN105190541A (zh) 利用具有寄存器视图、源视图、指令视图以及多个注册模板的微处理器体系架构执行指令块的方法
CN106537330B (zh) 通过使用数据索引化累加器使标量操作并行化的方法和处理器
CN109144568A (zh) 将有效位通道作为矢量断言暴露于cpu
CN105247484A (zh) 利用本地分布式标志体系架构来仿真访客集中式标志体系架构的方法
TW200532452A (en) A data processing apparatus and method for moving data between registers and memory
CN103810111A (zh) 有源存储器件中的地址生成的方法及其处理元件
KR102513265B1 (ko) 레지스터 뱅크에 저장된 데이터 요소들의 하나 이상의 벡터와 메모리 사이에서 복수의 데이터 구조를 전송하는 장치 및 방법
CN107589957A (zh) 具有双矢量和成双的单矢量操作模式的流参考寄存器
CN105393210A (zh) 用于模拟共享存储器结构的存储器单元
CN104572480B (zh) 用于数据元素的交织存储的数据处理设备和方法
CN108139911A (zh) 在vliw处理器的同一执行包中使用有条件扩展槽的指令的有条件执行规格
CN103970714B (zh) 用于共享功能逻辑的设备和方法及其可重配置处理器
CN117421049A (zh) 具有形成循环数据路径的堆叠的列的可重构并行处理器
CN112074810B (zh) 并行处理设备
CN106610817A (zh) 用于采取vliw处理器中的相同执行数据包中的常数扩展槽指定或扩展常数位数的方法
CN109597768A (zh) 对存储器地址请求进行分类以用于并行存储器访问
US20030177337A1 (en) Computer system
US7178008B2 (en) Register access scheduling method for multi-bank register file of a super-scalar parallel processor
US9158731B2 (en) Multiprocessor arrangement having shared memory, and a method of communication between processors in a multiprocessor arrangement
Zeng FPGA-based high throughput merge sorter

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant