S
阶码(含阶符) 尾 数 数符 小数点位置 根据IEEE 754国际标准,常用的浮点数有三种格式: 符号位S 阶码 尾数 总位数 短实数 1 8 23 32 长实数 1 11 52 64 临时实数 1 15 64 80 单精度格式32位,阶码为8位,尾数为23位.另有一位符号位S,处在最高位.
由于IEEE754标准约定在小数点左部有一位隐含位,从而实际有效位数为24位.这样使得尾数的有效值变为1.M .
例如,最小为x1.0…0,,最大为x1.1…1.规格化表示.故小数点左边的位横为1,可省去. 阶码部分采用移码表示,移码值127,1到254经移码为-126到+127. S(1位) E(8位) M(23位) N(共32位) 符号位 0 0 0 符号位 0 不等于0 (-1)S·2-126·(0.M) 为非规格化数 符号位 1到254之间 - (-1)S·2E-127·(1.M) 为规格化数 符号位 255 不等于0 NaN(非数值) 符号位 255 0 无穷大 0 有了精确的表示,无穷大也明确表示.对于绝对值较小的数,可以采用非规格化数表示,减少下溢精度损失.非规格化数的隐含位是0,不是1. 2. 浮点数的加/减运算
加减法执行下述五步完成运算:
1)“对阶”操作 比较两浮点数阶码的大小,求出其差ΔE,保留其大值E,E=max(Ex, Ey).当ΔE≠0时,将
阶码小的尾数右移ΔE位,并将其阶码加上ΔE,使两数的阶码值相等.
2)尾数加减运算 执行对阶之后,两尾数进行加减操作.
3)规格化操作 规格化的目的是使得尾数部分的绝对值尽可能以最大值的形式出现.
4)舍入 在执行右规或者对阶时,尾数的低位会被移掉,使数值的精度受到影响,常用“0”舍“1”
入法.当移掉的部分最高位为1时,在尾数的末尾加1,如果加1后又使得尾数溢 出,则要再进行一次右规.
5)检查阶码是否溢出 阶码溢出表示浮点数溢出.在规格化和舍入时都可能发生溢出,若阶码正常,加/减运算正
常结束.若阶码下溢,则设置机器运算结果为机器零,若上溢,则设置溢出标志.
定点数和浮点数可从如下几个方面进行比较
①当浮点机和定点机中的位数相同时,浮点数的表示范围比定点数大得多 ②当浮点数位规格化数时,其相对绝对远比定点数高
③浮点数运算要分阶码部分和尾数部分,而且运算结果都要求规格化,故浮点运算步骤比定点运算的步骤多,运算速度比定点运算的低,运算线路比定点运算的复杂
④在溢出的判断方法上,浮点数是对规格化的阶码进行判断,而定点数是对数值本身进行判断
总之,浮点数在数的表示范围,数的精度,溢出处理和程序编程方面(不取比例因子)均优于定点数.但在运算规则即硬件成本方面又不如定点数
(四) 算术逻辑单元ALU
1. 串行加法器和并行加法器
1)串行进位加法器
并行加法器可以同时对数据的各位进行相加,一般用n个全加器来实现2个操作数的各位同时向加.其操作数的各位是同时提供的,由于进位是逐位形成,低位运算所产生的进位会影响高位的运算结果.
串行进位(也称波形进位)加法器,逻辑电路比较简单,但是最高位的加法运算,一定要等到所有低位的加法完成之后才能进行,低位的进位要逐步的传递到高位,逐级产生进位,因此运算速度比较慢. 2)并行进位加法器
为了提高运算速度,减少延迟时间,可以采用并行进位法,也叫提前进位或先行进位. 全加器中,输入Ai ,Bi,Ci-1,输出:
Si = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1
Ci = Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1+Ai Bi Ci-1 = Ai Bi + (Ai+Bi)Ci-1 进位产生函数:Gi = Ai Bi 进位传递函数:Pi = Ai+Bi Ci = Gi + Pi Ci-1
C4 = G4 + P4G3 + P4P3G2 + P4P3P2G1 + P4P3P2P1C0
并行进位加法器的运算速度很快,形成最高进位输出的延迟时间很短,但是以增加硬件逻辑线路为代价.对于长字长的加法器,往往将加法器分成若干组,在组内采用并行进位,组间则采用串行进位或并行进位,由此形成多种进位结构. (1)单级先行进位
单级先行进位方式将n位字长分为若干组,每组内采用并行进位方式,组与组之间册采用串行进位方式. (2)多级先行进位
多级先行进位在组内和组间都采用先行进位方式.
16位单级先行进位加法器
2. 算术逻辑单元ALU的功能和机构
ALU部件是运算器中的主要组成部分,又称多功能函数发生器,主要用于完成各种算术运算和逻辑运算. ALU的算术运算部件包含加法器,减法器,乘法器,除法器,增量器(+1),减量器(-1),BCD码运算器等组件. ALU的主要工作是根据CPU指令要求执行各种指定运算,如加法,减法,乘法,除法,比较,逻辑移位等操作. 通用寄存器组是一组存取速度最快的存储器,用于保存参加运算的操作数和中间结果.访问寄存器无需高速缓存,也不需要运行总线周期,因此指令的执行速度很快.几乎所有的指令都要将寄存器指定为一个操作数,有些指令还要求将操作数存放在专用的寄存器中.
专用寄存器通常用于表示CPU所处于某种系统状态,ALU中有两个重要的状态寄存器:指令指针寄存器IP(即程序计数器PC)和标志寄存器FLAGS.
三, 存储器层次机构
(一) 存储器的分类
提高存储器带宽 内存 1缩短储存周期 ○地址线n,数据线数k k2增加存储字长,使每个周期可读/写更多的二进制数 ○芯片的容量为2×k位 3增加存储体 ○20位的地址可以访问1MB的存储空间,32位的地址可以访问4GB的内存空间,64位可以访问1800万TB 静态RAM和动态RAM之间的比较。目前,动态RAM的应用比静态RAM要广泛的多: ① 同样大小的芯片中,动态的RAM的集成度远高于静态RAM,DRAM的基本单元电路为一个MOS管,SRAM的基本单元
电路可为4~6个MOS管
② DRAM行、列按先后顺序输送,减少了芯片引脚,封装尺寸也减少 ③ DRAM的功耗比SRAM小
④ DRAM的价格比SRAM的价格便宜 DRAM也有缺点
① 由于使用动态元件(电容),因此它的速度比SRAM低
② DRAM需再生,需配置再生电路,也消耗一部分功率.通常容量不大的Cache大多用SRAM实现存储器与CPU连接 对比项目 SRAM DRAM 储存信息 触发器 电容 破坏性读出 非 是 需要刷新 非 是 行列地址 同时送 分两次 运行速度 快 慢 集成度 低 高 发热量 大 小 存储成本 高 低 (二) 存储器的层次化结构 存储器有3个重要的指标:速度,容量和每位价格,一般来说,速度越快,位价越高;容量越大,位价越低,容量大,速度就越低.上述三者的关系用下图表示:
存储系统层次结构主要体现在缓存-主存-辅存这两个存储层次上,如下图所示: