专利名称:一种浮点协处理器及相应的配置、控制方法
技术领域:
本发明涉及一种浮点协处理器及相应的配置、控制方法,特别是支持Cordic算法 的浮点协处理器。
背景技术:
目前在无线通信信号处理中使用的浮点协处理器为了能够支持三角函数、算术 运算、指数、平方根等多种函数的运算,普遍使用Cordic (Coordinate Rotation Digital Computer,标旋转数字计算方法)算法进行协处理器设计。通过软件对浮点协处理器进行配 置和启动,包括配置协处理器的操作码、操作数以及启动信号等等。然后协处理器通过配置 信息开始进行译码和使用Cordic运算单元进行迭代运算,当运算完成之后,Cordic运算单 元将运算结果返回到相关的寄存器中以便软件读取运算结果和异常等信息。因为数据运算 的需要,协处理器支持的运算种类繁多,包括正弦、余弦、加减乘除、指数、数据格式转换等 各种类型,而每种类型的运算需要的时钟周期数和时间并不相同,从几个周期到几十个周 期不等,比如加减法运算只需要6个周期就可以完成运算,而平方根运算需要60个周期左 右。并且,通过对各种算法的运算方程式和方程组的分析可知,加减法这样的运算类型占到 所有运算的60%左右的比例。
Cordic浮点协处理器作为SOC系统的一部分,用于软件在进行浮点等式或者方程 式运算时进行硬件加速。图1为浮点协处理器软件操作流程。对于一个浮点操作,软件通 过CPU和系统总线按顺序配置浮点协处理器的操作码寄存器、操作数寄存器以及启动寄存 器。然后通过查询浮点协处理器的状态寄存器的完成标志位判断浮点运算是否完成,浮点 协处理器运算完成之后,置位完成标志位,软件查询到之后进行异常的检测。如果运算过程 中出现异常,软件通过操作和异常的种类进行相关处理,重新启动或者进行软件复位。否则 CPU读取运算结果寄存器返回运算结果。
对于上述的浮点操作流程,对于一个浮点操作来说,操作运算时间包括CPU配置 寄存器时间,Cordic运算时间以及异常及结果读取时间。对于目前普遍的软件操作来说, 寄存器配置以及状态和运算结果的读取通常都通过CPU采用imcache的方式来进行,根据 CPU流水线级数的不同一般需要8-12个总线时钟周期。显而易见,对于一个相对简单的操 作来说,整体的运算时间大部分都是用于寄存器的配置以及运算状态和结果的读取。以加 法为例,Cordic运算时间只需要6个周期,而寄存器配置以及状态和结果读取需要1614个 周期;对于使用Cordic迭代的运算,Cordic运算时间为20个周期,寄存器配置及状态和结 果读取同样需要16-M个周期。也就是说,整个浮点运算的运算时间有50%左右在进行寄 存器配置和读写。发明内容
本发明的目的通过多操作的配置,减少Cordic浮点协处理器在进行等式或方程 式运算时软件通过CPU配置和读写协处理器的次数,从而减少协处理器的总体运算时间,提高协处理器的运算性能。
本发明是这样实现的一种浮点协处理器,所述处理器包括,配置寄存器及状态和 结果寄存器,多操作运算控制电路以及Cordic迭代运算引擎,所述配置寄存器包括复数个 操作使能寄存器,复数个操作码寄存器,操作数寄存器以及启动寄存器,所述操作使能寄 存器用于对所述操作码寄存器进行使能;所述多操作运算控制电路根据所述操作使能寄存 器的配置完成多个所述操作码寄存器所配置的操作。
更进一步,所述状态和结果寄存器包括运算状态寄存器、异常标识寄存器及结果 寄存器。
更进一步,所述结果寄存器包括2个64位的寄存器组。
更进一步,所述复数个操作码寄存器及复数个操作使能寄存器为8个。
本发明还提供一种用于上述浮点协处理器的配置方法,所述方法包括,系统配置 复数个操作使能寄存器;系统配置复数个操作码寄存器;系统配置操作数寄存器;配置启 动寄存器并启动所述配置的复数个操作码寄存器中所对应的操作;系统检查操作是否完 成;系统检查是否有异常操作;系统读取运算结果寄存器。
本发明还提供一种用于上述浮点协处理器的控制方法,所述控制方法包括,多操 作控制阶段、单操作控制阶段以及Cordic迭代运算阶段;所述多操作控制阶段包括译码阶 段和结束阶段,所述单操作控制阶段包括解析阶段及后期处理阶段;所述译码阶段将配置 寄存器配置的多操作分解为单个操作并进入单操作控制阶段;所述解析阶段将所述单个操 作进行分解控制,准备Cordic迭代控制阶段所需要的操作数并进入Cordic迭代运算阶段; 所述Cordic迭代运算阶段进行一次Cordic迭代运算后进入所述后期处理阶段;所述后期 处理阶段将Cordic的运算结果进行规范化处理后进入所述结束阶段;所述结束阶段将当 前操作的运算结果写入到相应的目的寄存器中,并对操作出现的异常进行编码和保存,完 成当前操作。
更进一步,所述结束阶段如果在协处理器中还有其他配置的操作没有完成,进入 所述译码阶段开始进行下一个操作。
更进一步,所述后期处理阶段如果当前操作仍然需要进行Cordic迭代,进入 Cordic迭代运算阶段进行下一次迭代。
采用该方法后,可以通过多操作的配置进行等式和方程式的运算,减少等式和方 程式的整体运算时间,并且通过层次化的运算控制模式进行多操作运算的控制。
图1为浮点协处理器软件操作流程; 图2为本发明的浮点协处理器电路结构图; 图3为操作码配置寄存器说明;图4为多操作操作数和结果运算示意图; 图5为多操作软件操作流程; 图6为二种配置模式的运算时间比较; 图7为多操作配置模式层次化控制。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对 本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并 不用于限定本发明。
图2为本发明的浮点协处理器电路结构图。如图2所示,为了支持多操作的配置, 增加了一些配置寄存器以及状态和结果寄存器,左边是浮点协处理器的配置寄存器110,中 间部分是多操作运算控制电路111以及CordiC迭代运算引擎113,右边是状态和结果寄存 器 112。
在配置寄存器110中,包括有操作使能寄存器101,操作码寄存器102,操作数寄存 器103以及启动寄存器104。在本发明的浮点协处理器中,最多可支持同时配置8个操作, 这样,处理器一共有8个操作码寄存器,6个操作数寄存器,1个启动寄存器,操作数寄存器 标号依次为1-6。
在状态和结果寄存器112中,有标示运算完成的运算状态寄存器105,异常标识寄 存器106以及结果寄存器107。其中结果寄存器107包括4个32位的寄存器组,可以用于 返回二个64位的双精度浮点运算结果,结果寄存器标号为7和8,本发明中定义二个结果 寄存器编号分别为寄存器7和寄存器8。
操作使能寄存器101用于对配置的操作进行使能,最多可以配置8个操作。在操 作使能寄存器的低8位的每个bit位对应一个操作。如果相应的bit位置1,那么对应的操 作0-7就会被使能。定义8个操作分别为0P0-0P7。本发明的浮点协处理器仅支持从OPO 开始的连续操作,不支持非OPO开始以及非连续使能操作,有效配置如表1
权利要求
1.一种浮点协处理器,其特征在于,所述处理器包括,配置寄存器及状态和结果寄存 器,多操作运算控制电路以及CordiC迭代运算引擎,所述配置寄存器包括复数个操作使能 寄存器,复数个操作码寄存器,操作数寄存器以及启动寄存器,所述操作使能寄存器用于 对所述操作码寄存器进行使能;所述多操作运算控制电路根据所述操作使能寄存器的配置 完成多个所述操作码寄存器所配置的操作。
2.如权利要求1所述的浮点协处理器,其特征在于,所述状态和结果寄存器包括运算 状态寄存器、异常标识寄存器及结果寄存器。
3.如权利要求2所述的浮点协处理器,其特征在于,所述结果寄存器包括2个64位的 寄存器组。
4.如权利要求3所述的浮点协处理器,其特征在于,所述复数个操作码寄存器及复数 个操作使能寄存器为8个。
5.一种用于如权利要求1所述浮点协处理器的配置方法,其特征在于,所述方法包括, 系统配置复数个操作使能寄存器;系统配置复数个操作码寄存器;系统配置操作数寄存 器;配置启动寄存器并启动所述配置的复数个操作码寄存器中所对应的操作;系统检查操 作是否完成;系统检查是否有异常操作;系统读取运算结果寄存器。
6.一种用于如权利要求1所述浮点协处理器的控制方法,其特征在于,所述控制方法 包括,多操作控制阶段、单操作控制阶段以及Cordic迭代运算阶段;所述多操作控制阶段 包括译码阶段和结束阶段,所述单操作控制阶段包括解析阶段及后期处理阶段;所述译码 阶段将配置寄存器配置的多操作分解为单个操作并进入单操作控制阶段;所述解析阶段将 所述单个操作进行分解控制,准备Cordic迭代控制阶段所需要的操作数并进入Cordic迭 代运算阶段;所述Cordic迭代运算阶段进行一次Cordic迭代运算后进入所述后期处理阶 段;所述后期处理阶段将Cordic的运算结果进行规范化处理后进入所述结束阶段;所述结 束阶段将当前操作的运算结果写入到相应的目的寄存器中,并对操作出现的异常进行编码 和保存,完成当前操作。
7.如权利要求6所述的浮点协处理器的控制方法,其特征在于,所述结束阶段如果在 协处理器中还有其他配置的操作没有完成,进入所述译码阶段开始进行下一个操作。
8.如权利要求7所述的浮点协处理器的控制方法,其特征在于,所述后期处理阶段如 果当前操作仍然需要进行Cordic迭代,进入Cordic迭代运算阶段进行下一次迭代。
全文摘要
一种浮点协处理器,所述处理器包括,配置寄存器及状态和结果寄存器,多操作运算控制电路以及Cordic迭代运算引擎,所述配置寄存器包括复数个操作使能寄存器,复数个操作码寄存器,操作数寄存器以及启动寄存器,所述操作使能寄存器用于对所述操作码寄存器进行使能;所述多操作运算控制电路根据所述操作使能寄存器的配置完成多个所述操作码寄存器所配置的操作。采用该方法后,可以通过多操作的配置进行等式和方程式的运算,减少等式和方程式的整体运算时间,并且通过层次化的运算控制模式进行多操作运算的控制。
文档编号G06F9/30GK102043609SQ20101058664
公开日2011年5月4日 申请日期2010年12月14日 优先权日2010年12月14日
发明者李松 申请人:东莞市泰斗微电子科技有限公司