用于执行SIMD运算的数据处理系统及其方法技术方案

技术编号:2920271 阅读:213 留言:0更新日期:2012-04-11 18:40
可使用各种加载与存储指令在寄存器文件(元件34)中的寄存器和存储器(元件12)间传送多个矢量分量。可使用cnt参数表示将向或从存储器传送的分量的总数,并且可使用rent参数表示向或从寄存器文件中的单个寄存器传送的矢量分量的最大数量。另外,这些指令可使用各种不同的寻址模式。可独立于该寄存器分量大小指定该存储器分量大小,使得指令中的源与目标的大小可不相同。通过一些指令,可发起矢量流,并条件入队或出队。可提供截短或舍入字段,使得在传送时可截短或舍入源数据分量。另外,可在传送时对源数据分量进行有符号或无符号扩展。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术主要涉及数据处理系统,更具体地,涉及在数据处理系统中使用的指令。
技术介绍
通过允许在矢量的多个分量上执行并行运算,可实现提高数据处理系统的性能。目前可用的一种处理器类型为矢量处理器,其利用执行矢量运算的矢量寄存器。然而,尽管矢量处理器允许更高的性能,但对于使用标量通用寄存器的处理器而言,增加了复杂度和成本。也就是,矢量处理器中的矢量寄存器文件通常包括N个矢量寄存器,其中每个矢量寄存器包括M个寄存器的库用于保存M个分量。例如,在本领域公知的一种矢量寄存器中,该寄存器文件包括32个矢量寄存器,其中,每个寄存器包括32个64位寄存器的库,从而等于需要1024个64位寄存器。目前另一种可用的矢量寄存器是单指令多数据(SIMD)标量处理器(也称为“短矢量机”),其允许有限的矢量处理,同时使用任何现有的标量通用寄存器(GPR)。例如,在具有32个标量64位GPR的数据处理系统中,每一标量寄存器可以保存2个32位分量,4个16位分量,或8个8位分量,从而能够执行2个32位分量运算,4个16位分量运算,或8个8位分量运算。因此,与矢量处理器相比(根据上述示例,其每次可对寄存器库中的32个64位寄存器执行运算),尽管每次运算的分量数目受到限制,但减少了所需的硬件。然而,在当前的SIMD标量处理器中,存在大量的与向标量寄存器传送用于执行的矢量分量和向存储器传送回多个矢量分量相关联的开销。该开销限制了运算的有效吞吐量,因此,存在对于在存储器与寄存器间加载和存储多个矢量分量的改良方法的需求。附图说明通过示例说明本专利技术,并不受限于附图,在附图中,相同的引用号码表示相同的元素,并且其中图1以框图的形式表示遵照本专利技术的一个实施例的数据处理系统;图2-11表示可由图1的数据处理系统执行的矢量加载和存储指令,其遵照本专利技术的各种实施例;图12表示示例存储器部分,其遵照本专利技术的一个实施例;图13-17表示一组标量GPR中的条目的示例,其遵照本专利技术的各种实施例;图18表示存储器部分随时间变化的示例,其遵照本专利技术的一个实施例;图19-26表示一组标量GPR中条目的示例,其遵照本专利技术的各种技术人员明白,图中的元件出于简化和说明的目的而表示,并不一定按比例绘制。例如,图中某些元件的尺寸相对于其它元件夸大,以有助于理解本专利技术的实施例。具体实施例方式如此处所使用的,术语“总线”指用于传送一种或多种信息,例如,数据、地址、控制或状态的多个信号或导线(conductor)。此处讨论的导线可表示或说明为单个导线、多个导线、单向导线或双向导线。然而,不同的实施例可变化这些导线的实现方式。例如,可使用多个分离的单向导线,而不是双向导线,反之亦然。另外,可用以串行或时间复用方式传送信号的单个导线代替多个导线。同样地,承载多个信号的单个导线可分离为承载这些信号的子集的各种不同导线。因此,对于传送信号存在多个选项。当将信号、状态位或类似的装置分别呈现其逻辑真或假状态时,使用术语“肯定”(assert)或“设置”(set)以及“否定”(negate)(或“非肯定”(deasert)或“清除”(clear))。如果该逻辑真状态为逻辑水平一,则逻辑假状态为逻辑水平零。并且如果逻辑水平真状态为逻辑水平零,则逻辑水平假状态为逻辑水平一。另外,在数字前的“0x”表明该数字以其16进制或16基底形式表示。数字前的“%”表明该数字以其二进制或2基底形式表示。如上所述,存在对于降低从存储器向寄存器和从寄存器向存储器传送多个矢量分量的开销的需求。因此,此处将讨论多种不同的矢量加载和存储指令,其允许以改进的方式从或向存储器传送矢量分量。此外,使用此处说明的指令可允许降低的开销,向现有的设计增加最小的硬件复杂度。例如,如同在许多类型的数据处理系统中的使用,标量寄存器文件可与这些指令一同使用,从而无需成本更高的独立矢量寄存器文件。另外,这些指令可允许降低的软件复杂度,同时还提供执行效率。另外,此处的指令可用于解决各种问题,例如,存储器中矢量分量的对齐,将存储器分量的大小扩展至寄存器分量以提高的精确度的需要,存储器的任意矢量长度对于固定长度,或与检索/存储矢量数据所需的加载/存储指令数关联的开销(例如,在发出与执行指令时)。此处的这些指令还可用于解决这些问题的组合,或别的问题或问题的组合,如通过在下面参考图1-35提供的说明将要理解的那样。图1以框图的形式表示根据本专利技术的一个实施例的数据处理系统10。数据处理系统10包括处理器14、存储器12、输入/输出(I/O)16、其它外围设备18以及系统总线20。存储器12通过导线22双向连接至系统总线20,I/O 16通过导线24双向连接至系统总线20,其它外围设备18通过导线26双向连接至系统总线20,处理器14通过导线58连接至系统总线20。在一个实施例中,其它外围设备18可包括一个或多个外围设备,其中,每一外围设备可为任何类型的外围设备,例如,通用异步收发器(UART),实时时钟(RTC),键盘控制器,其它存储器,等等。其它外围设备18的一些或全部能够通过导线62传送数据处理系统10外部的信息。I/O电路16可包括任何类型的I/O电路,其通过例如导线60,接收或提供数据处理系统10的外部信息。存储器12可为任何类型的存储器,例如,只读存储器(ROM),随机存取存储器(RAM),非易失性存储器(例如,flash)等。数据处理系统10可包括除表示的那些之外的其它元件,或可包括比表示出的那些更多或更少的元件。例如,数据处理系统10可包括任意数量的存储器或处理器。处理器14可为任何类型的处理器,例如,微处理器、微控制器、数字信号处理器,等等。在一个实施例中,处理器14可称为处理器内核。在另一实施例中,处理器14可为多处理器数据处理系统中多个处理器中的一个。另外,尽管没有这样表示,但处理器14可为流水线处理器。在图1中所示的实施例中,处理器14包括控制单元28、指令单元30、执行单元32、标量寄存器文件34、总线接口单元(BIU)36以及加载/存储单元38。控制单元28通过导线40双向连接至指令单元30,通过导线42连接至执行单元32,通过导线46连接至标量寄存器文件34,并且通过导线48连接至加载/存储单元38。执行单元32通过导线44双向连接至标量寄存器文件34,并且标量寄存器文件34通过导线50双向连接至加载/存储单元38。BIU 36通过导线54双向连接至指令单元30,并且通过导线52连接至加载/存储单元38。处理器14通过连接至导线58的导线56,能够与系统总线20双向通信。注意,处理器14可包括比表示出的更多的电路,其中,附加电路可连接至导线58。也就是,导线56可通过全部或部分导线58与系统总线20通信。还要注意,全部或部分处理器14可称为处理电路。在操作中,指令单元30通过BIU 36和系统总线20从例如存储器12的存储器取回指令,并从或向控制单元28接收和提供控制信息。指令单元30可为本领域所公知的任何类型的指令单元,并如本领域所公知的那样操作,并且因此不在此处详细说明。指令单元30因此向控制单元28提供指令,控制单元通过,例如,执行单元32和加载/存储单元38,控制这些接收的指令的执行,执行单元32和加载/本文档来自技高网...

【技术保护点】
一种数据处理系统,其包括:存储操作数的存储器;至少一个通用寄存器;以及执行一条或多条指令的处理器电路,所述一条或多条指令中的至少一条用于在所述存储器和所述至少一个通用寄存器间传送数据分量,其中,所述一条或多条指令中的 一条指定:(a)存储器中连续数据分量的第一部分中数据分量间的第一偏移;(b)将在所述存储器和所述至少一个GPR间传送的数据分量的第一数量;以及(c)所述存储器中数据分量的第一部分和第二部分间的第二偏移。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:威廉C莫耶詹姆斯M诺里斯菲利普E马伊肯特唐纳德莫特雷蒙德B埃西克四世布赖恩杰夫里卢卡斯
申请(专利权)人:飞思卡尔半导体公司
类型:发明
国别省市:US[美国]

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

1