支持标量复用的非全流水向量除法开方装置及方法

文档序号:6599834阅读:135来源:国知局
专利名称:支持标量复用的非全流水向量除法开方装置及方法
技术领域
本发明涉及微处理器体系结构技术领域,并且具体涉及一种支持标量复用的非全流水向量除法开方装置及方法。
背景技术
随着处理器技术的不断发展,其应用的领域也不断拓展。尤其随着多媒体运算,科 学运算等各种运算的增加,各种通用处理器都在添加单指令流多数据流的指令集。这种单 指令流多数据流的指令集的向量指令都会为有相应的标量指令,因为,并不是所有的程序 都是可以向量化的。这种向量化扩展,为增加其运算峰值,需要并行的增加其功能运算部件。如,一个 有256位宽运算能力的功能部件,其64位的双精度运算部件就需要四个。大多数的运算常常是全流水的,所以其执行标量指令的时候,其未使用的其它运 算部件不会产生浪费。而除法开方部件却是非全流水的,并且其执行拍数不确定,所以其执 行标量指令时若阻塞其它标量除法开方指令发射,就会形成对其它几除法开方指令执行部 件的浪费。目前,国内外尚没有发现支持标量复用的非全流水向量除法开方的相关技术。

发明内容
本发明目的在于提供一种支持标量复用的非全流水向量除法开方装置及方法,在 其执行标量指令时,仍可以发射其它的标量除法开方指令,从而可以大大增加除法开方部 件的利用率。同时由于除法开方运算是非流水的,常常阻塞整个功能部件,这样也增加了其 除法运算能力,从而大大减少流水线的阻塞,提高了处理器的运行效率。为实现本发明的目的而提供一种支持标量复用的非全流水向量除法开方装置。该 装置包括控制模块和至少两个除法开方部件,其中控制模块包括选择模块,用于产生选择 信号以选择输入数据被送往哪个除法开方部件;标量和向量执行指令控制模块,用于根据 所述除法开方部件的“忙”信号来进行标量和向量执行指令的控制;数据通路选择模块,用 于根据所述选择信号来生成相应的通路;结果控制模块用于根据配置,实现不同数据格 式的结果。为实现本发明的目的还提供一种支持标量复用的非全流水向量除法开方方法。该 方法包括以下步骤si 发射指令至控制模块的指令发射步骤;S2 产生选择信号以选择输 入数据被送往哪个除法开方部件的选择步骤;S3 根据所述除法开方部件的“忙”信号来进 行标量和向量执行指令的控制的标量和向量执行指令控制步骤;S4 根据所述选择信号来 生成相应的通路的数据通路选择步骤;S5 分配所述除法开方部件是否参加运算的分配步 骤;S6 结果数据根据配置进行整理步骤。。本发明的有益效果在本发明的支持标量复用的非全流水向量除法开方装置和方 法中,对于标量指令复用其子功能部件的结构。这种结构,可以使其在保持基本的向量结构下,对标量除法开方指令进行子模块的复用,也大大提高了功能部件的利用率,且其硬件代 价不大。



图1是依据本发明的一个具体实施例的支持标量复用的非全流水向量除法开方 装置的结构示意图;图2是依据本发明的一个具体实施例的支持标量复用的非全流水向量除法开方 方法的流程图;图3是以向量运算为256位宽度时,单双精度浮点结果的表示方式示意图。
具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明的提高微处理器部件利用率和运算效率的装置和方法进行进一步详细说明。应当理 解,此处所描述的具体实施例仅仅用以解释本发明而不是对本发明的限制。下面结合附图和具体实施方式
对本发明作进一步详细描述。图1是依据本发明的一个具体实施例的支持标量复用的非全流水向量除法开方 装置的结构示意图。在这里需要说明的是,附图中的四个除法开方部件只是一种优选的实 施方式,该部件可以为二个,三个,五个……,并且这些部件为相同的运算部件。指令发射部件可以用于发射指令至控制模块,该指令可以是一种指令码。具体地, 每周期一条指令被发射到功能部件,它的操作数是256位的。对于其中的标量指令,则高位 处的192位是无效的。所以,数据通路为最低的64位是可以到达四个除法开方部件中的任 意一个。至于到达其中的哪一个部件,由控制模块生成的sel信号来控制。对于向量运算, 其256位的操作数都是有意义的,所以每个64位的操作数都相应地传送到相应的除法功能 模块中去。而且,对于结果也有相应的选择,只是通路方向反过来,从四个部件都要有到最低 位的数据通路。结果的选择信号reS_C0ntr0l来控制。最终结果的高位可以做补零等操作。在标量和向量指令执行控制中,控制模块中有一个计数器,来统计四个模块中忙 的部件的数目。对于每周期发射得到指令,处理如下(1)、如果是一条向量指令,只要counter非零,则通知上一级除法开方部件“忙”, 整个功能部件阻塞,否则这个条向量指令可以发射到四个部件中去并行执行。(2)、若其收到的为标量指令,则检查counter数值,仅当其值为4时,向上一级反 馈除法开方部件“忙”信号。否则,为其分配一个部件,进行运算。分配策略也可多样化,这 里举一种例子,固定优先级,即从低到高依次找,直到找到一个非“忙”子部件,把操作数相 应发送过去,参与运算。在结果选择中,由于除法开方部件为不定拍数的迭代运算,所以,结果的产生可能 不同于发射序,也会存在竞争。对于结果的竞争,也可以使用固定优先级。例如可以通过连续发射的两个标量指令的情况,以及若干条向量指令,紧跟一条 标量指令这两种情况,来说明这种支持标量复用的非全流水向量除法开方部件的工作方 式。
依据本发明的另一具体实施例,连续发射标量指令。部件“忙”信号共有两组五条, 第一组四个为每个子部件的“忙”信号,另一组为向量除法部件的“忙”信号,它为第一组四 个“忙”信号的或表示除法部件中有运算但还未提交到结果总线上的指令。在这种结构 上,第一条标量指令,在发射时,所有的忙信号都未置起,便从低到高选取,则生成的子部件 号为0,这个部件号作为多路选择器的选择端信号,送到入口端的多路器中去,于是,0号子 部件收到这条指令,进行运算,其子部件“忙”信号置起;向量部件忙信号,也被置起。
第二条指令发射,它检查自己的op和fmt可以确认为一条标量指令,这时,控制模 块检查四个子部件忙信号,从低到高地选择最低且没有置起忙信号的部件号,这时得到的 子部件号应为1,即对应的sel信号也为1则指令中有效的64位数据,送到1号除法开方子 部件,相应子部件“忙”信号置起,运算开始。结果提交时,由于除法开方指令的执行拍数是不定的。所以常常先发射的指令后 提交,也有可能同一拍,多个不同的运算同时提交指令。对于结果的输出,采用总线竞争的 方式,一个周期只输出一个结果,仲裁策略也使用固定优先级,即O号的优先级最高,其余 依次递减。依据本发明的又一具体实施例,对于若干条标量指令后接一条向量指令。如之前 所述的内容,第一条指令,会分配到O号子部件。并置起子部O “忙”信号和向量除法“忙”信号。后续指令发射时,控制模块通过op和fmt判定收到发射的指令是否为向量指令, 并查看向量部件“忙”信号。因之前发射了若干条标量指令,他们在部件中执行,且可能有 多条都未提交到结果总线上。所以在向量部件“忙”置起时,整个部件阻塞,即通知前级流 水以功能部件“满”信号,以停止向功能部件发射运算指令。阻塞会一直持续,直到所有的在功能部件里的指令,都执行完毕,并通过结果总线 提交后,所有的子部件“忙”信号都会复位到0,即此时向量部件“忙”也复位到O。则向量 除法开方指令发射,阻塞解除,流水线继续。图2是依据本发明的一个具体实施例的支持标量复用的非全流水向量除法开方 方法的流程图,如图2所示,首先,发射指令至控制模块,被发射的指令包括至少一个标量 指令和至少一个向量指令。然后产生选择信号以选择输入数据被送往哪个除法开方部件, 接着,根据所述除法开方部件的“忙”信号来进行标量和向量执行指令的控制,其后,根据上 面的选择信号来生成相应的通路的数据通路,并且分配所述除法开方部件是否参加运算, 该分配步骤采用了优先级的分配策略。图3是对本发明所述的结果格式的说明。根据IEEE754标准,单精度浮点数据为 32位,双精度浮点数为64位。彻训1乙开头的数据表示由灵数据通路经过选择后,送出的 结果;rd_开头的表示目的寄存器的原值。这里以256位向量宽度为例,对这三种模式进行 说明。同时对不同格式的支持,并在此基础上实现了对其的灵活配置。对于不同的场合的 应用提供了很大的便利。从前面的具体实施例可以看出,这种工作方式的优势是很明显的。这种方法相比 于每条指令都提交后再发射下一条的方法,在指令中多为的标量指令的时候,效率会大大 提高。而且这种情况比较常见,因向量处理器,也常常需要兼容一些已经编译好的,非向量 化的程序,这里所有除法运算都是标量的。这种情况下,效率的提高将更为明显。
另一方面,这种方法硬件代价很少,在面积时序要求不太苛刻的时候,可以用这种方法提高运算部件的利用率,以提高运算效率。尽管参照优选实施例已经描述了本发明,本领域熟练技术人员将认识到,可以进 行形式和细节上的改变,只要不脱离本发明的精神和范围。本发明试图不局限于被公开的 具体实施例,如预期用于实施本发明的最佳模式,相反,本发明将包括落入附加权利要求的 范围的全部实施例。
权利要求
一种支持标量复用的非全流水向量除法开方装置,包括控制模块和至少两个除法开方部件,其中所述控制模块包括选择模块,用于产生选择信号以选择输入数据被送往哪个除法开方部件;标量和向量执行指令控制模块,用于根据所述除法开方部件的“忙”信号来进行标量和向量执行指令的控制;数据通路选择模块,用于根据所述选择信号来生成相应的通路。结果控制模块,用于把从功能部件输出的结果,整理成标准格式,并可根据不同的配置,输出不同格式的结果。
2.如权利要求1所述的支持标量复用的非全流水向量除法开方装置,其中所述支持标 量复用的非全流水向量除法开方装置还包括一个指令发射部件,用于发射指令至所述控制 模块。
3.如权利要求2所述支持标量复用的非全流水向量除法开方装置,所述指令包括至少 一个标量指令和至少一个向量指令。
4.如权利要求3所述支持标量复用的非全流水向量除法开方装置,所述控制模块还包 括计数器,该计数器用于统计所述至少两个除法开方部件中“忙”的部件的数目。
5.如权利要求4所述支持标量复用的非全流水向量除法开方装置,所述至少两个除法 开方部件为相同的运算部件。
6.如权利要求5所述支持标量复用的非全流水向量除法开方装置,其中所述控制模块 还包括数据整理模块,用于将所述选择信号的结果数据整理成标准格式。
7.如权利要求6所述支持标量复用的非全流水向量除法开方装置,其中所述的数据整 理模块还包括了对不同结果数据格式的选择模块及方法,其可根据配置选择不同的结果数 据格式。
8.如权利要求7所述支持标量复用的非全流水向量除法开方装置,其所支持的结果数 据格式包括如下三种清零模式,保持模式和广播模式三种不同结果数据格式。
9.如权利要求8所述支持标量复用的非全流水向量除法开方装置,其中所述控制模块 还包括分配模块,用于分配所述除法开方部件是否参加运算。
10.一种支持标量复用的非全流水向量除法开方方法,所述方法包括以下步骤51发射指令至控制模块的指令发射步骤;52产生选择信号以选择输入数据被送往哪个除法开方部件的选择步骤;53根据所述除法开方部件的“忙”信号来进行标量和向量执行指令的控制的标量和向 量执行指令控制步骤;54根据所述选择信号来生成相应的通路的数据通路选择步骤;55分配所述除法开方部件是否参加运算的分配步骤;56结果数据根据配置进行整理步骤。
11.如权利要求7所述的支持标量复用的非全流水向量除法开方方法,其中步骤S1中 的所述指令包括至少一个标量指令和至少一个向量指令。
12.如权利要求10所述的支持标量复用的非全流水向量除法开方方法,其中在步骤S3 中,利用计数器来统计所述除法开方部件中“忙”的部件的数目。
13.如权利要求12所述的支持标量复用的非全流水向量除法幵方方法,其中步骤S5中 的分配步骤采用了优先级的分配策略。
14.如权利要求12所述的支持标量复用的非全流水向量除法幵方方法,其中步骤S6中 的整理步骤采用了根据不同配置实现不同模式的策略。
全文摘要
本发明公开了一种支持标量复用的非全流水向量除法开方装置及方法。该装置包括控制模块和至少两个除法开方部件,其中控制模块包括选择模块,用于产生选择信号以选择输入数据被送往哪个除法开方部件;标量和向量执行指令控制模块,用于根据所述除法开方部件的“忙”信号来进行标量和向量执行指令的控制;数据通路选择模块,用于根据所述选择信号来生成相应的通路;结果控制模块用于根据配置,实现不同数据格式的结果。
文档编号G06F7/535GK101840323SQ20101013381
公开日2010年9月22日 申请日期2010年3月25日 优先权日2010年3月25日
发明者刘宏伟, 张晓春, 郇丹丹 申请人:北京龙芯中科技术服务中心有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1