一种基于试商法的流水线处理器中除法器设计方法技术

技术编号:16700448 阅读:138 留言:0更新日期:2017-12-02 12:42
本发明专利技术公开了一种基于试商法的流水线处理器中除法器设计方法,通过对FPGA流水线处理器中除法器运用高位试商法原理,同时结合除法器的四个执行阶段,以提高处理器性能。本方法实现了提高除法器运算速度,降低了电路设计复杂度。

A commercial test in a pipelined processor divider design method based on

The invention discloses a design method of pipeline processor test in commercial divider based on the FPGA processor using high test line divider law principle, the implementation of the four stage combined with the divider to improve processor performance. This method improves the calculation speed divider circuit design, reduce the complexity.

【技术实现步骤摘要】
一种基于试商法的流水线处理器中除法器设计方法
本专利技术属于计算机
,涉及一种流水线处理器中除法器设计方法,特别是涉及一种基于试商法的流水线处理器中除法器设计方法。
技术介绍
在CPU中,指令的解释执行过程可以分为取指、译码、执行、访存、回写五个子过程。利用流水线技术把一个复杂的任务分解为若干个子过程,每个子过程与其他子过程并行运行,可以提高了计算机内部时间上的并行性。流水线是提高处理器性能的有效技术,而决定流水线瓶颈的是其各阶段中的最大值。加、减、乘、除是数值计算中常用的运算,其中,除法指令最为复杂,实现起来最困难,目前除法运算主要有SRT、Newton-Raphson和GoldSchmidt等算法。经典五级流水线中,除法指令运算最复杂,占用多个时钟周期,一个好的除法器设计,能有效提升流水线的性能。因此,除法器设计的好坏直接影响了处理器的整体性能。
技术实现思路
本专利技术的目的在于提供一种可以提高除法器运算速度、降低电路设计复杂度的基于试商法的流水线处理器中除法器设计方法。本专利技术所采用的技术方案是:一种基于试商法的流水线处理器中除法器设计方法,其特征在于,包括以下步骤:步骤1:确定FPGA流水线中执行指令的“瓶颈”阶段;FPGA流水线把一个复杂的任务分解为若干个子进程,每个子过程与其他子过程并行运行,当流水线各个阶段任务的执行时间不相等时,流水线中执行时间最长的阶段在执行时,其他阶段将处于“阻塞”和“断流”,流水线中出现“瓶颈”阶段;步骤2:利用试商法进行除法运算;步骤3:设计基于试商法除法器,包括就绪、运算、结束和错误四个阶段;初始化除法器,除法器处于就绪阶段,读取操作数;如果除数为0,则表示除法运算出错,进入错误阶段,且将商和余数均设置为0,进入结束阶段并返回结果;如果除数不为0,则进入运算阶段,开始运算,运算完成之后,进入结束阶段并返回结果。本专利技术与
技术介绍
相比,具有的有益的效果是:(1)高效性;通过对FPGA流水线处理器中除法器运用高位试商法原理,同时结合除法器的四个执行阶段,可以提高处理器运算性能。(2)低成本性;使用FPGA现场可编程门阵列降低电路设计复杂度,从而降低设计成本。附图说明图1是本专利技术实施例中试商法的流程图;图2是本专利技术实施例中除法器四个执行阶段的转换图。具体实施方式为了便于本领域普通技术人员理解和实施本专利技术,下面结合附图及实施例对本专利技术作进一步的详细描述,应当理解,此处所描述的实施示例仅用于说明和解释本专利技术,并不用于限定本专利技术。请见图1和图2,本专利技术提供的一种基于试商法的流水线处理器中除法器设计方法,包括以下步骤:步骤1:确定FPGA流水线中执行指令的“瓶颈”阶段;FPGA流水线把一个复杂的任务分解为若干个子进程,每个子过程与其他子过程并行运行,单位时间内流水线所完成的任务数或输出结果的数量用吞吐率表示,吞吐率的计算公式如下:其中,n为任务数,tk是处理n个任务所用的时间;当流水线各个阶段任务的执行时间不相等时,流水线中执行时间最长的阶段在执行时,其他阶段将处于“阻塞”和“断流”,流水线中出现“瓶颈”阶段;当FPGA流水线中出现“瓶颈”阶段,FPGA流水线的实际吞吐率为:其中,Δti为流水线第i段执行任务所用的时间,m表示流水线共有m段,分母中第一部分为流水线完成第一个任务所用的时间,第二部分为完成剩余的n-1个任务所用的时间;步骤2:利用试商法进行除法运算;试商法的基本思想是依次用被除数的最高位减去除数,根据减法运算的结果确定商的各位是0还是1,最后得到商和余数,首先初始化基本参数使被除数为A,除数为B,商为Q,余数为R,被除数的位数为[n:1],然后利用试商法进行运算,试商法的运算步骤如下:步骤2.1:取被除数A的最高位A[n]作为被减数,除数B作为减数,进行减法操作,如果差大于等于0,则商Q的最高位Q[n]商1,反之为0;步骤2.2:如果步骤2.1中商Q的最高位Q[n]商0,则取出被除数的次高位与之前的被减数组成新的被减数A[n:n-1],重复步骤2.1操作;如果步骤2.1中中商Q的最高位Q[n]商1,则取出被除数的次高位与步骤2.1的差组成新的被减数(A[n]-B):A[n-1],并将n设置为n-1;步骤2.3:用新一轮的被减数减去除数B,如果差大于等于0,则商Q的最高位Q[n]商1,反之为0;步骤2.4:重复步骤2.1-步骤2.3,直到n等于1。本实施例中,设被除数A为101100b,除数B为11b,除法器的工作流程如下所示:1)取出A的最高位1b,减去B的值11b;2)减法结果小于0,商0,取出A的下一位,和之前的1b组成10b,作为新一轮的被减数,减去B的值11b;3)减法结果小于0,商0,取出A的下一位,和之前的10b组成101b,作为新一轮的被减数,减去B的值11b;4)减法结果等于10b,商1,取出A的下一位,和减法结果10b组成101b,作为新一轮的被减数,减去B的值11b;5)减法结果等于10b,商1,取出A的下一位,和减法结果10b组成100b,作为新一轮的被减数,减去B的值11b;6)减法结果等于1b,商1,取出A的下一位,和减法结果1b组成10b,作为新一轮的被减数,减去B的值11b;7)减法结果小于0,商0,此时,A的各位已经取完,结束除法运算,得到商001110b,余数10b。在100MHz的系统时钟当中,完成以上32位的除法运算仅需要640ns。步骤3:设计基于试商法除法器,包括就绪、运算、结束和错误四个阶段;基于试商法除法器的执行步骤分为就绪、运算、结束和错误四个阶段,初始化的时候,除法器处于就绪阶段,读取操作数,如果除数为0,则表示除法运算出错,进入错误阶段,且将商和余数均设置为0,进入结束阶段并返回结果;如果除数不为0,则进入运算阶段,开始运算,运算完成之后,进入结束阶段并返回结果,每个阶段的作用如下:a)就绪阶段;就绪阶段会接收操作数,根据除数是否为0,来判断进入错误阶段还是运算阶段,如果是进入运算阶段,则将一个计数器cnt初始化为0,并判断是有符号除法还是无符号除法,如果是有符号除法,且被除数或者除数为负,则对被除数或者除数取反码;b)运算阶段;根据计数器cnt的值进行判断:如果cnt小于32,表示除法运算还没结束,此时根据减法操作的结果商0或者1,并对cnt加1;如果cnt等于32,表示除法运算结束,如果是有符号除法,且被除数与除数异号,则对结果取补码,进入结束阶段;c)错误阶段;除数为0,除法运算出错,直接进入结束阶段;d)结束阶段;除法运算结束,输出运算结果,重新进入就绪阶段。为了提高处理器的性能,本专利技术基于试商法提出了一种除法器的设计,在执行到除法指令时,将除数与被除数信息传到除法器中,依次用被除数的最高位减去除数,以此来确定商和余数。通过对FPGA流水线处理器中除法器运用高位试商法原理,同时结合除法器的四个执行阶段,以提高处理器性能。该除法器在仿真环境中测试通过,与基于倒数相乘的除法器相比,有效地降低了电路设计复杂度,提高了运算速度。本方法实现了提高除法器运算速度,降低了电路设计复杂度。应当理解的是,本说明书未详细阐述的部分均属于现有技术。应当理解的是,上述针对较佳实施例的描述较为详细,并不能因此而认为是对本本文档来自技高网
...
一种基于试商法的流水线处理器中除法器设计方法

【技术保护点】
一种基于试商法的流水线处理器中除法器设计方法,其特征在于,包括以下步骤:步骤1:确定FPGA流水线中执行指令的“瓶颈”阶段;FPGA流水线把一个复杂的任务分解为若干个子进程,每个子过程与其他子过程并行运行,当流水线各个阶段任务的执行时间不相等时,流水线中执行时间最长的阶段在执行时,其他阶段将处于“阻塞”和“断流”,流水线中出现“瓶颈”阶段;步骤2:利用试商法进行除法运算;步骤3:设计基于试商法除法器,包括就绪、运算、结束和错误四个阶段;初始化除法器,除法器处于就绪阶段,读取操作数;如果除数为0,则表示除法运算出错,进入错误阶段,且将商和余数均设置为0,进入结束阶段并返回结果;如果除数不为0,则进入运算阶段,开始运算,运算完成之后,进入结束阶段并返回结果。

【技术特征摘要】
1.一种基于试商法的流水线处理器中除法器设计方法,其特征在于,包括以下步骤:步骤1:确定FPGA流水线中执行指令的“瓶颈”阶段;FPGA流水线把一个复杂的任务分解为若干个子进程,每个子过程与其他子过程并行运行,当流水线各个阶段任务的执行时间不相等时,流水线中执行时间最长的阶段在执行时,其他阶段将处于“阻塞”和“断流”,流水线中出现“瓶颈”阶段;步骤2:利用试商法进行除法运算;步骤3:设计基于试商法除法器,包括就绪、运算、结束和错误四个阶段;初始化除法器,除法器处于就绪阶段,读取操作数;如果除数为0,则表示除法运算出错,进入错误阶段,且将商和余数均设置为0,进入结束阶段并返回结果;如果除数不为0,则进入运算阶段,开始运算,运算完成之后,进入结束阶段并返回结果。2.根据权利要求1所述的基于试商法的流水线处理器中除法器设计方法,其特征在于:步骤1中,单位时间内FPGA流水线所完成的任务数或输出结果的数量用吞吐率Tp表示,其中,n为任务数,Tk是处理n个任务所用的时间;当FPGA流水线中出现“瓶颈”阶段,FPGA流水线的实际吞吐率为:其中,Δti为流水线第i段执行任务所用的时间,m表示流水线共有m段,分母中第一部分为流水线完成第一个任务所用的时间,第二部分为完成剩余的n-1个任务所用的时间。3.根据权利要求1所述的基于试商法的流水线处理器中除法器设计方法,其特征在于,步骤2中的具体实现包括以下子步骤...

【专利技术属性】
技术研发人员:张瑜胡威李春强张鸿刘小明张凯王悦唐玉馨
申请(专利权)人:武汉科技大学
类型:发明
国别省市:湖北,42

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

1