一种单指令多数据流结构上的数据处理方法及处理器的制作方法

文档序号:6330788阅读:345来源:国知局
专利名称:一种单指令多数据流结构上的数据处理方法及处理器的制作方法
技术领域
本发明涉及微处理器技术领域,尤其涉及一种单指令多数据流结构上的数据处理 方法及处理器。
背景技术
SIMD (Single Instruction Multiple Data,单指令多数据流)技术是一种广泛应 用的开发细粒度数据并行性的技术。SIMD技术的核心思想是在多个执行单元上对不同的 数据采用相同的指令序列进行加工,从而一次得到多个加工后的计算结果,以提高计算效 率。SIMD技术早期主要用于机柜级的高性能计算机领域,如美国伊利诺伊州立大学研制的 ILLIAC IV型机。随着半导体工艺的发展,芯片内部能够集成越来越多的晶体管,人们开始 将SIMD技术用在处理器内部以开发细粒度的数据并行性。在传统的SIMD微处理器中,通常不提供对条件分支指令的支持。在遇到条件分支 指令时,需要程序员采用手工冗余计算的办法。如图1所示,一段分支代码在执行到分支指 令时,SIMD处理器将执行左右两部分分支路径,在图中分别以虚实两种线条区分。当完成 分支路径计算后,再计算相应的分支条件,根据分支条件决定具体提交哪个分支的计算结 果。由于左右分支路径均需要在处理器上执行,得到计算结果后,在提交阶段选择符合分支 条件的计算结果提交,而不符合分支条件的结果则被舍弃,因此产生了大量的无用计算,造 成了功耗浪费,执行效率较低。

发明内容
有鉴于此,本发明提供一种SIMD结构上的数据处理方法及处理器,以解决现有技 术中SIMD结构上的指令执行过程中功耗浪费,执行效率较低的问题。其具体方案为一种单指令多数据流结构SIMD的数据处理方法,包括选取符合条件的指令处理多组数据流,所述指令具有包括标记位和索引位的谓词 域;将所述指令进行译码,并获取所述标记位和索引位的值;利用所述标记位的值判断所述指令是否为谓词指令;当所述指令为谓词指令时,读取预设谓词寄存器中与所述索引位值对应的表项内 的谓词;将所述谓词均勻分配给所述多组数据流;分别比较所述标记位与每一组数据流对应的谓词的值;确定比较结果为相同的数据流为可处理数据流;执行指令处理所述可处理数据流。优选的,还包括确定比较结果为不同的数据流为非可处理数据流;执行空操作指令处理所述非可处理数据流。
优选的,还包括当所述比较结果为不同时,停止对其对应的数据流的处理。优选的,当所述指令为非谓词指令时,直接执行所述指令处理多组数据流。一种SIMD处理器,包括指令选取单元,用于选取符合条件的指令处理多组数据流,所述指令具有包括标 记位和索引位的谓词域;译码单元,用于将所述指令进行译码,并获取所述标记位和索引位的值;判断单元,用于利用所述标记位的值判断所述指令是否为谓词指令;谓词寄存器,用于存放谓词;读取单元,用于当所述指令为谓词指令时,读取预设谓词寄存器中与所述索引位 对应的表项内的谓词;分配单元,用于将所述谓词均勻分配给所述多组数据流;比较单元,用于分别比较所述标记位与每一组数据流对应的谓词的值;确定单元,用于确定比较结果为相同的数据流为可处理数据流;执行单元,用于执行指令处理所述可处理数据流。优选的,所述确定单元还用于确定比较结果为不同的数据流为非可处理数据流; 所述执行单元还用于执行空操作指令处理所述非可处理数据流。本发明公开的SIMD结构上的数据处理方法引入谓词执行方式,利用谓词标记和 谓词的比较结果来判断是否需要执行指令处理数据流组,然后只执行比较结果为相同的指 令对应的数据流,避免了因为处理不需要被处理的数据流造成的功耗浪费,以及处理效率 低的问题。能够高效地处理不规则控制流,进一步扩大了 SIMD结构的适用范围。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以 根据这些附图获得其他的附图。图1为现有技术中的SIMD结构上执行分支指令的流程图;图2为实施例1公开的数据处理方法流程图;图3为实施例2公开的数据处理方法的流程图;图4为实施例2公开的谓词域结构示意图;图5为实施例2公开的谓词标记位定义示意图;图6为实施例2公开的标记位与谓词的比较规则示意图;图7为本发明公开的SIMD处理器的结构示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。谓词执行技术是一种解决指令间控制相关的技术,通过引入逻辑谓词,将控制相 关与某个分支中的指令,转换为该分支条件(即谓词)及相应数据的数据相关。传统的谓 词执行技术通过消除多个基本块之间的控制相关,配合编译器将多个基本块合并成为一个 内部无控制相关的超块,实现了挖掘更多的指令级并行性的目的。分支指令谓词化后产生 多个代表不同分支路径的布尔型谓词,位于分支中的指令具有谓词域,只有当指令对应的 谓词域满足相应的谓词条件时,指令才执行。谓词执行技术能够将指令间的控制依赖转换 为对谓词的数据依赖。本发明依据谓词执行技术,公开了一种SIMD结构上的数据处理方法,其具体实施 方式如下所示实施例一本实施例公开的SIMD结构上的数据处理方法的流程如图2所示,包括步骤S21、选取符合条件的指令处理多组数据流,所述指令具有包括标记位和索引 位的谓词域;指令中的谓词域由编译器预先设置,编译器在将写好的程序翻译为二进制机器代 码时,自动为每个分支分配一个谓词编号,并将此编号填写在与此分支关联的指令的谓词 域中。在程序执行的过程中,通过计算指令计算出相应谓词的值,并通过谓词寄存器写指令 将谓词写入预先设定的谓词寄存器内。谓词寄存器的每个表项具有一个写入位,当谓词寄 存器写入指令完成对所述表项的写入时,同时要将相应表项的写入位置位,根据实际的硬 件实现,可以将其置为1或0,以表示谓词寄存器的此项已经有相应谓词的值。被选取的指 令需要同时符合操作数已经被满足的条件,以及相应的谓词已经被计算,并写入到谓词寄 存器内的条件。步骤S22、将所述指令进行译码,并获取标记位和索引位的值;步骤S23、利用所述标记位的值判断所述指令是否为谓词指令;步骤S24、当所述指令为谓词指令时,读取预设谓词寄存器中与所述索引位值对应 的表项内的谓词;步骤S25、将所述谓词均勻分配给所述多组数据流;步骤S26、分别比较所述标记位与每一组数据流对应的谓词的值是否相同;步骤S27、确定比较结果为相同的数据流为可处理数据流;步骤S28、执行指令处理所述可处理数据流。从上述步骤可以看出,本发明公开的SIMD结构上的数据处理方法通过引入谓词 执行方式,利用谓词标记和谓词的比较结果来判断是否需要执行指令处理数据流组,然后 只执行比较结果为相同的指令对应的数据流,避免了因为处理不需要被处理的数据流造成 的功耗浪费,以及处理效率低的问题。实施例二本实施例中较为详细的对本发明公开的数据处理方法进行了描述,其流程如图3 所示,步骤S31、选取符合条件的指令处理多组数据流,所述指令具有包括标记位和索引 位的谓词域;
指令集要求在每条指令编码时,增加N位的谓词域,谓词域具体结构如图4所示, 谓词域的前M位的谓词标记位用来确定以下两个问题,1、此条语句是否为谓词语句;2、若 为谓词语句,则此语句在何种谓词状态下执行,本实施例中以M = 2为例,其定义方式如图 5所示。本发明中谓词存储于预先设定的谓词寄存器中,谓词寄存器为一组多端口寄存器, 存放对应的谓词数据。谓词域的剩余N-M位为谓词索引位,可以索引2N_M项,根据每条指令 的谓词域的索引位可以找到与该指令对应的谓词。然后将谓词根据SIMD结构的特点进行 分组,例如,如果SIMD结构中包括四个执行单元,可以同时利用一条指令对四组数据进行 处理,则将谓词分为四组,每一组分别对应一个执行单元,利用每组谓词与标记位的比较结 果控制该执行单元是否工作,从而实现控制指令是否执行。步骤S32、将所述指令进行译码,并获取标记位和索引位的值;步骤S33、利用所述标记位的值判断所述指令是否为谓词指令,若是,则执行步骤 S34,若否,则执行步骤S311 ;根据图4所示的定义方式,对应当前标记位,判断指令是否为谓词指令。步骤S34、读取预设的谓词寄存器中与所述索引位值对应的表项内的谓词;根据索引位的值查找谓词寄存器中与其对应的表项,读取表项内的谓词,例如索 引位为111,则其值为7,则读取谓词寄存器内第七个表项内存储的谓词。步骤S35、将所述谓词均勻分配给所述多组数据流;步骤S36、分别比较所述标记位与每一组数据流对应的谓词的值是否相同,若是, 则执行步骤S37,若否,则执行步骤S39 ;将标记位与谓词按照预设规则进行比较,预设规则可以根据情况自行设定,但是 需要遵循一定的原则,即当指令为谓词指令时,指令谓词域的标记位与谓词寄存器内索引 出的相应谓词的值相同时,比较结果为TRUE,否则比较结果为FALSE,如图6所示,只有谓词 值和谓词标记位相同的时候,结果为TRUE,而对于非谓词语句,即谓词标记为01时,需要对 指令按照正常顺序执行,所以不管其对应的谓词是什么,其结果都为TRUE。步骤S37、确定比较结果为相同的数据流为可处理数据流;若比较结果为相同,则表示该指令可以被执行处理其对应的数据流,符合执行条 件,步骤S38、执行指令处理所述可处理数据流;步骤S39、确定比较结果为不同的数据流为非可处理数据流;
若比较结果不同,说明不需要执行指令处理该数据流。步骤S310、执行空操作指令处理所述非可处理数据流;若比较结果为不同,则表示不需要执行指令处理该数据流,可以以空操作代替指 令对数据流的处理,或者引入门控时钟,将执行该数据流的执行单元休眠,停止对该数据流 的处理。步骤S311、执行指令处理所有数据流组。本实施例中具体公开了利用标记位判断指令的类型以及利用一定的规则判断指 令是否执行的的步骤,对于比较结果为不同的指令利用空指令进行填充,从而不去处理,节 省了功耗。可以实现减少冗余分支指令的计算,有效的提高了处理效率,降低了能耗,能够 高效地处理不规则控制流应用,进一步扩大了 SIMD结构的适用范围。
本发明还公开了一种SIMD处理器,其结构如图7所示,包括指令选取单元71、、 译码单元72、判断单元73、谓词寄存器74、读取单元75、分配单元76、比较单元77、确定单 元78、执行单元79,其中指令选取单元71用于选取待执行指令;译码单元72用于将所述指令进行译码,并 获取标记位和索引位的值;判断单元73用于利用所述标记位的值判断所述指令是否为谓 词指令;谓词寄存器74用于存放谓词;读取单元75用于当所述指令为谓词指令时,读取预 设的谓词寄存器中与所述索引位值对应的表项内的谓词;分配单元76用于将所述谓词均 勻分配给所述多组数据流;比较单元77用于分别比较所述标记位与每一组数据流对应的 谓词的值是否相同;确定单元78用于确定比较结果为相同的数据流为可处理数据流;执行 单元79用于执行指令处理所述可处理数据流。本实施例公开的SIMD处理器具有四个执行单元,可以同时对四组数据流进行处 理,每个执行部件依据比较单元的比较结果来控制是否执行此条指令。当此功能部件不需 要执行此条指令时,可以采用直接填充空指令到流水线的方式,利用空指令代替当前的指 令,不对数据进行处理,或者引入门控时钟,将此功能部件休眠,停止对指令的处理。确定单元还用于确定比较结果为不同的数据流为非可处理数据流,执行单元还用 于执行空操作指令处理所述非可处理数据流。由图可以看出,本实施例公开的SIMD处理器只在硬件上加入了谓词寄存器和控 制逻辑,不需要改动原有处理器的微结构,结构简单,易于实现。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他 实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置 而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说 明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元 及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和 软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些 功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业 技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应 认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执 行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存 储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术 领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。 对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的 一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明 将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一 致的最宽的范围。
权利要求
一种单指令多数据流结构SIMD的数据处理方法,其特征在于,包括选取符合条件的指令处理多组数据流,所述指令具有包括标记位和索引位的谓词域;将所述指令进行译码,并获取所述标记位和索引位的值;利用所述标记位的值判断所述指令是否为谓词指令;当所述指令为谓词指令时,读取预设谓词寄存器中与所述索引位值对应的表项内的谓词;将所述谓词均匀分配给所述多组数据流;分别比较所述标记位与每一组数据流对应的谓词的值;确定比较结果为相同的数据流为可处理数据流;执行指令处理所述可处理数据流。
2.根据权利要求1所述的方法,其特征在于,还包括 确定比较结果为不同的数据流为非可处理数据流; 执行空操作指令处理所述非可处理数据流。
3.根据权利要求1所述的方法,其特征在于,还包括 当所述比较结果为不同时,停止对其对应的数据流的处理。
4.根据权利要求1-3中任意一项所述的方法,其特征在于,当所述指令为非谓词指令 时,直接执行所述指令处理多组数据流。
5.一种SIMD处理器,其特征在于,包括指令选取单元,用于选取符合条件的指令处理多组数据流,所述指令具有包括标记位 和索引位的谓词域;译码单元,用于将所述指令进行译码,并获取所述标记位和索引位的值; 判断单元,用于利用所述标记位的值判断所述指令是否为谓词指令; 谓词寄存器,用于存放谓词;读取单元,用于当所述指令为谓词指令时,读取预设谓词寄存器中与所述索引位对应 的表项内的谓词;分配单元,用于将所述谓词均勻分配给所述多组数据流; 比较单元,用于分别比较所述标记位与每一组数据流对应的谓词的值; 确定单元,用于确定比较结果为相同的数据流为可处理数据流; 执行单元,用于执行指令处理所述可处理数据流。
6.根据权利要求5所述的SIMD处理器,其特征在于,所述确定单元还用于确定比较结 果为不同的数据流为非可处理数据流;所述执行单元还用于执行空操作指令处理所述非可 处理数据流。
全文摘要
本发明公开了一种SIMD上的数据处理方法及处理器,包括选取符合条件的处理多组数据流,指令具有包括标记位和索引位的谓词域;将指令进行译码,并获取标记位和索引位的值;利用标记位的值判断指令是否为谓词指令;当指令为谓词指令时,读取预设谓词寄存器中与索引位值对应的表项内的谓词;将谓词均匀分配给多组数据流;分别比较标记位与每一组数据流对应的谓词的值;确定比较结果为相同的数据流为可处理数据流;执行指令处理可处理数据流。本发明公开的SIMD结构上的数据处理方法引入谓词执行方式,利用谓词标记和谓词的比较结果来判断是否需要执行指令处理数据流组,避免了处理不需要被处理的数据流造成的功耗浪费,以及处理效率低的问题。
文档编号G06F9/38GK101930358SQ20101026176
公开日2010年12月29日 申请日期2010年8月16日 优先权日2010年8月16日
发明者任永青, 刘谷, 周伟, 孙涛, 安虹, 徐光 , 李小强, 李颀, 许牧, 谭旭, 郝秀蕊 申请人:中国科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1