云计算百科
云计算领域专业知识百科平台

《计算机组成原理》第2章运算方法和运算器2.4~2.6学习笔记

引言

在计算机组成原理的学习中,运算器是 CPU 的核心部件之一,负责执行各类算术与逻辑运算。本章围绕定点除法运算、定点运算器的组成,以及浮点运算方法和浮点运算器展开,帮助读者系统掌握运算器的内部结构与工作原理。

2.4 定点除法运算

定点除法是定点运算中的重要内容,其核心在于通过移位和减法操作,逐位确定商的每一位。本节介绍原码除法算法原理与并行除法器的设计思路。

2.4.1 原码除法算法原理

原码除法采用符号位与数值位分开处理的方式。商的符号由被除数和除数的符号异或得到,数值部分则通过循环执行“比较—移位—减法”来确定每一位商。

其基本步骤如下:

  • 初始化:将被除数置于余数寄存器,除数置于除数寄存器。
  • 比较余数与除数的大小关系,决定当前商位为 0 或 1。
  • 根据商位结果,执行相应的减法或恢复余数操作。
  • 左移余数,继续下一位的运算,直至得到全部商位。
  • 原码除法分为恢复余数法和不恢复余数法(加减交替法)。恢复余数法逻辑直观但步骤较多;不恢复余数法通过符号判断直接决定加减操作,减少了恢复步骤,效率更高。

    2.4.2 并行除法器

    并行除法器通过硬件电路同时处理多位运算,以提高除法速度。其核心思想是利用阵列结构,将每一位的商确定过程并行化,减少串行等待时间。

    并行除法器的设计通常基于不恢复余数法,通过一组可控的加法/减法单元构成阵列,每个单元根据前一级的符号输出决定本级的操作类型。阵列式结构适合在 FPGA 或专用芯片中实现,能够在一次时钟周期内完成多位商的确定。

    2.5定点运算器的组成

    定点运算器负责执行定点数的算术与逻辑运算,其组成包括逻辑运算单元、多功能算术/逻辑运算单元、内部总线以及基本结构。

    2.5.1 逻辑运算

    逻辑运算主要包括与、或、非、异或等基本操作。定点运算器通过逻辑运算单元(ALU 的一部分)实现这些功能,常用于位操作、掩码处理和条件判断等场景。
    1、逻辑非运算:逻辑非也叫求反,对某数进行逻辑非运算,就是按位求它的反。
    设一个数x表示成:
    x = x0x1x2…xn
    对x求逻辑非,则有
    x非 = z = z0z1z2…zn
    zi = xi非,i=0,1,2,…,n

    【例2.26】x1=01001011,x2=11110000,求x1非,x2非。
    解
    x1非=10110100
    x2非=00001111

    2、 逻辑加运算
    对两个数进行逻辑加,就是按位求它们的“或”,所以逻辑加又称逻辑或。

    设有两数x和y,它们表示为
    x = x0x1x2…xn
    y = y0y1y2…yn

    则
    x+y = z = z0z1z2…zn
    zi = xi+yi,i=0,1,2,…,n

    手写标注:
    逻辑与 A AND B = AB
    A&B=AB
    逻辑或 A OR B = A+B
    3、逻辑乘运算
    对两数进行逻辑乘,就是按位求它们的“与”,所以逻辑乘又称逻辑与,常用记号·来表示。

    设有两数x和y,它们表示为
    x = x0x1x2…xn
    y = y0y1y2…yn

    若
    x · y = z = z0z1z2…zn

    则
    zi = xi · yi,i = 0,1,2,…,n
    4、 逻辑异运算
    对两数进行逻辑异就是按位求它们的模2和,所以逻辑异又称按位加,常用记号“⊕”来表示。
    设有两个数x和y:
    x = x0x1x2…xn
    y = y0y1y2…yn

    若x和y的逻辑异为z:
    x⊕y = z = z0z1z2…zn

    则
    zi = xi⊕yi,i = 0,1,2,…,n

    2.5.2 多功能算术/逻辑运算单元

    多功能算术/逻辑运算单元(ALU)是运算器的核心,能够执行加法、减法、逻辑运算以及移位操作。ALU 的输入为两个操作数和一个功能选择信号,输出为运算结果及状态标志(如进位、溢出、零标志等)。

    ALU 的设计通常采用组合逻辑电路,通过功能选择线控制内部的多路选择器,从而在同一个硬件结构上实现多种运算。

    2.5.3 内部总线

    由于计算机内部的主要工作过程是信息传送和加工的过程,因此在机器内部各部件之间的数据传送非常频繁。为了减少内部数据传送线并便于控制,通常将一些寄存器之间数据传送的通路加以归并,组成总线结构,使不同来源的信息在此传输线上分时传送。

    根据总线所处的位置,总线分为内部总线和外部总线两类。内部总线是指CPU内部各部件的连线,而外部总线是指系统总线,即CPU与存储器、I/O系统之间的连线。本节只讨论内部总线。

    按总线的逻辑结构来说,总线可分为单向传送总线和双向传送总线。所谓单向总线,就是信息只能向一个方向传送。所谓双向总线,就是信息可以向两个方向传送,既可以发送数据,也可以接收数据。

    图2.15是带有缓冲驱动器的4位双向数据总线。其中所用的基本电路就是三态逻辑电路。当“发送”信号有效时,数据从左向右传送。反之,当“接收”信号有效时,数据从右向左传送。这种类型的缓冲器通常根据它们如何使用而称为总线扩展器、总线驱动器、总线接收器等。
    来自课本第60页

    2.5.4 定点运算器的基本结构

    定点运算器通常由 ALU、寄存器组、总线以及状态标志寄存器组成。其基本工作流程为:

  • 从寄存器或内存中读取操作数。
  • 通过总线将操作数送入 ALU。
  • ALU 根据功能选择信号执行相应运算。
  • 将结果写回寄存器或内存,并更新状态标志。
    来自课本第61页
  • 2.6 浮点运算方法和浮点运算器

    浮点运算用于处理实数范围较大的数值,其核心在于对阶、尾数运算和规格化处理。本节介绍浮点加减运算与乘除运算的方法。

    2.6.1 浮点加法、减法运算

    浮点加减运算的步骤如下:

  • 对阶:将两个浮点数的阶码对齐,使尾数可以直接相加或相减。
  • 尾数运算:对对齐后的尾数执行加法或减法。
  • 规格化:将结果规格化为标准形式,即尾数的最高位为 1。
  • 舍入处理:根据舍入规则调整尾数,减少精度损失。
  • 溢出判断:检查阶码是否超出表示范围。
  • 对阶时,通常以小阶向大阶看齐,即阶码较小的数尾数右移,以保持数值不变。
    课本第62页

    2.6.2浮点乘法、除法运算

    浮点乘法运算相对简单,其步骤如下:

  • 阶码相加:两个浮点数的阶码相加,得到结果的阶码。
  • 尾数相乘:两个尾数执行定点乘法。
  • 规格化与舍入:对乘积结果进行规格化和舍入处理。
  • 溢出判断:检查结果阶码是否溢出。
  • 浮点除法运算的步骤如下:

  • 阶码相减:被除数的阶码减去除数的阶码。
  • 尾数相除:被除数的尾数除以除数的尾数。
  • 规格化与舍入:对商进行规格化和舍入处理。
  • 溢出判断:检查结果阶码是否溢出。
  • 本章小结

    本章系统介绍了定点除法运算的原理与并行除法器的设计,详细阐述了定点运算器的逻辑运算、多功能 ALU、内部总线及基本结构,并讲解了浮点加减乘除运算的方法与浮点运算器的组成。掌握这些内容,是理解 CPU 运算核心与计算机算术体系的基础。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 《计算机组成原理》第2章运算方法和运算器2.4~2.6学习笔记
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!