首页 > 其他分享 >浮点运算方法和浮点运算器

浮点运算方法和浮点运算器

时间:2022-09-27 11:12:41浏览次数:45  
标签:浮点运算 缓冲 任务 时间 流水线 方法 时钟

浮点运算步骤

如下
先表示为浮点数补码形式(阶码、尾数)
① 0操作数的检查
②比较阶码大小并完成对阶(小阶向大阶对齐。阶小的尾数向右移位,每右移一位,阶码加1 )
③尾数进行加运算(减法转为补码加)
[x+y]补=[x]补+[y]补
[x-y]补=[x]补+[-y]补

④结果规格化
⑤舍入处理

浮点运算流水线

提高并行性的两个渠道:

  • 空间并行性:多个独立的操作部件,并且使这些部件并行工作

  • 时间并行性:改善操作流程
    如流水线技术

流水技术原理?
实现:

  1. 把一个任务分解为几个有联系的子任务。
  2. 每个子任务由一个专门的功能部件实现

注意:

  • 在流水线中的每个功能部件之后都要有一个缓冲寄存器,或称为锁存器

  • 流水线中各段的时间应该尽量相等,否则将会引起“堵塞”和“断流”的现象

  • 流水线需要有装入时间和排空时间,只有当流水线完全充满时,才能充分发挥效率。

设过程段 \(S_i\)所需的时间为\(τ_i\),缓冲寄存器的延时为\(τ_t\)
image

线性流水线的时钟周期定义为
\(τ=max\{τ_i\}+τ_t=τ_m+τ_t\)
流水线处理的频率为 \(f=\frac{1}{τ}\)。

也就是说:
时钟周期应以最长的执行时间为准,否则用时长的流水段的功能将不能正确完成。

考研真题:某计算机的指令流水线由四个功能段组成,指令流经各功能段的时间(忽略各功能段之间的缓存时间)分别是90ns、80ns、70ns和60ns,则该计算机的流水线时钟周期至少是
( A )
A. 90ns B. 80ns C. 70ns D. 60ns

各段时间均相等的流水线

各段时间均相等的流水线时空图
image

具有k 级过程段的流水线处理 n 个任务需要的时钟周期数
\(T_k=k+(n-1)\)

装入时间是指第一个任务进入流水线到输出流水线的时间。

流水线各段时间相等(都是△t)(忽略缓冲时间)

1、具有k 级过程段的流水线处理 n 个任务需要的时钟周期数为
\(T_k=k+(n-1)\)

2、非流水线的硬件来处理这n个任务,时间上只能串行进行,则所需时钟周期数为
\(T_L=n*k\)

3、k级线性流水线的加速比(完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比):

Ck =  n·kΔt
  {k+(n-1) } Δt

=  n·k 

k+(n-1)

注意:
如果不忽略缓冲时间,流水线各环节需要增加缓冲时间

二、流水线的各段时间不完全相等时(忽略缓冲时间)

image

image
装入时间是指第一个任务进入流水线到输出流水线的时间。

注意:
如果不忽略缓冲时间,流水线各环节需要增加缓冲时间

题目:
例题:若指令流水线把一条指令分为取指、分析和执行三部分,且三部分的时间分别为\(t_{取值}=2ns,t_{分析}=2ns\),t-{执行}=1ns,则100条指令全部执行完毕需( 203 )ns。
解:一条k段流水线完成n个连续任务所需要的时间为
image
(2+2+1)+ (100-1) × 2 = 5 + 198 = 203ns

流水线的各段时间不完全相等时(忽略缓冲)
一条k段流水线完成n个连续任务
所需要的时间为
image

顺序执行n个任务所需要的时间:
image

流水线的实际加速比为
image

标签:浮点运算,缓冲,任务,时间,流水线,方法,时钟
From: https://www.cnblogs.com/kingwz/p/16733838.html

相关文章