计算机组成原理 - (6)

计算机组成原理—-数字
第六章:计算机的运算方法:主要内容
1计算机中数的表示
1无符号数和有符号数
无符号数:寄存器的位数:反应无符号数的表示范围。(8位的寄存器就是0–255 : 16位的寄存器就是0–65535)
有符号数:包含数值部分+符号部分
小数点的位置是约定的 而不是通过硬件标示小数点位置 符号为 0 代表是正数 1为负数
原码表示法:带符号的绝对值表示(整数就是加一个符号位正数为0 符号为1 ;小数就是小数点前一位的那一位作为符号位)
小数:x的范围是-1到1
1原码的特点:简单 直观
但是在使用原码最加法运算时,会出现如下问题。正负数相加时,实际上是减法操作,想要只做加法:就需要找到一个与负数等价的正数,来代替这个负数。将减法—变成加法。(就使用补码表示法)
2补码表示法:四位的计数器以16为模
正数的补数就是本身
负数:按位取反 末位+1 符号不变
正数:和真值相同
3反码表示法:正数就是和真值一致 负数就是补码减一(符号为不变按位取反用逗号将符号位和数值分开)
+0 和-0机器数表示相同的只有补码 原码和反码都是不一样的
通过y的补码。求-y的补码:就是将y的补码联通符号位在内,每位取反,末位加一。(y大于零或者是小于零)
4移码表示法:补码表示法 很难判断其真值大小。
不区分正数还是负数:都加上2的n次方从定义上来看 只有整数的定义没有小数的定义,因此常用来表示浮点数的阶码部分
移码和补码的比较:移码和补码值差一个符号位(符号位相反), 数值部分全部相同。
移码表示+0 和-0是相同的
2. 数的定点表示和浮点表示:
1定点表示:小数点按照约定的方式标出,是计算机体系设计人员在计算机体系设计的时候约定的
定点机。 小数定点机。 整数定点机

2浮点表示:
1为什么在计算机中引入浮点表示:
最早的计算机由于硬件技术的限制 只有定点数表示(小数定点机 和整数定点机)。但是在科学计算中,常常是要使用浮点数。 第二点:就是数的表示范围太小,要是表示两个大小相差很长的数据,需要很长的机器字长,第三点就是数据的利用率很低
二。浮点表示:(就是科学计数法)
s表示 浮点数的符号 n表示其位数反映浮点数的精度,m表示其位数反映浮点数的表示范围。j和m共同表示小数点的实际位置。
上溢区:就是阶码大于最大阶码
下溢区:就是阶码小于最小阶码 按机器零处理
数的最大精度:就是需要尾数的长度最长。数符和阶符个一位
三 浮点数的规格化形式:
r=2 尾数最高位为1(小数点的歺后对面就是尾数)
r=4 尾数的最高2位不全为零
r=8 尾数最高3位不全为零
基数不同 浮点数的规格化形式不同。
浮点数的规格化:
r=2 左规 尾数左移一位 阶码减一
右规 尾数右移一位 阶码加一
r=4 左规 尾数左移两位(二进制两位) 阶码减一
右规 尾数右移两位(二进制两位) 阶码加一
r=8 左规 尾数左移三位(二进制位) 阶码减一
右规 尾数右移三位(二进制位) 阶码加一
基数r越大。可表示的浮点数的范围就越大 但是r值越大,浮点数的精度越低。
浮点数表示的个数是什么
定点机和浮点机中原 补 反 表示方式
定点机: 符号位 , 数字表示
浮点机:
阶码位,阶码;尾数符号位,尾数
机器零的处理:当浮点数尾数为零,不论其阶码为何值 按机器零处理。
当浮点数阶码等于或者是小于它所表示的最小数时,不论尾数为何值时,按机器零处理。
四IEEE754标准:
尾数为规格化表示:
非零的有效位最高位为1(隐含)
符号位s 阶码 尾数。总位数
短实数 1. 8. 23. 32.
长实数 1. 11. 52. 64.
临时实数 1. 15. 64. 80
定点运算:
1移位运算:
1移位运算的数学意义: 数据移动而小数点的位置不变
左移 :绝对值扩大(Java 中左小乘)
右移 : 绝对值缩小(右大除)
在计算机中,移位与加减配合,能够实现乘除法运算。
2 算数移位规则:符号位不变。原码添零 反码添一 补码:左移添零 右移添一
3 算数移位的硬件实现:

4算数移位和逻辑移位的区别:
算数移位 是有符号数的移位
逻辑移位 时无符号数的移位
逻辑左移: 低位添零 高位移丢
逻辑右移: 高位添零 低位移丢

定点运算:加减运算:
1补码加减法运算的公式:
加减运算:进的符号位自动舍去。但是需要考虑机器字长
-B的补码 等于B的补码符号位不变 数字部分按位取反 末位加一

3溢出判断:参加操作的两个数(减法时即为被减数和求补以后的减数)符号相同,其结果的 符号与原操作数的符号不同,即为溢出。
硬件实现:
最高有效位的进位 和 符号位的进位 异或 = 1 就会溢出
2两位符号位判断溢出:使用两符号位来判断溢出,结果的双符号为相同 表示未溢出 但是mod变为2的n+2次方,结果的双符号为不同,溢出。
但是需要注意的一点是:符号位什么时候时上溢出 什么时候时下溢出?(01上溢出 10下溢出)最高符号位代表的是其真正的符号。
定点运算中的乘法运算:二进制的运算简单 符号位单独处理:乘数的某一位决定是否加被乘数,乘数的位数扩大一倍。
乘法运算可以通过加法和移位运算来实现。
由乘数额末位举鼎被成熟是欧于原部分积相加。然后右移一位形成形的部分积,同时乘数右移一位(末位移丢 主要是的原因就是在以后的乘法中不会使用最后一位了),空出的高位来存放部分积的低位。被乘数只与部分积的高位相加。
4 原码乘法
1原码一位乘运算规则:
以小数为例:

2 原码一位乘递推公式:
右移操作采用的是逻辑右移:

原码乘法的特点:1绝对值运算(移位过程中采用的是逻辑移位 看似是符号位但是其实是数值位) 2用移位的次数来判断乘法是否是结束例如 n位乘数,经过n次的加法 n次移位 因此乘法结束是和数值部分的长度有关和机器字长有关。3 逻辑移位。
使用的是逻辑移位
原码一位乘法的硬件配置
为什么要使用移位的次数来确定乘法的操作是否是完成了而不是使用加法的次数?
因为当被乘数的那一位为零时,加法的操作是不做的,而移位会进行因此移位的次数是不会有变化的。
寄存器中acc x 和mq都是n+1位

定点运算:除法运算(两种方式 恢复余数法 加减交替法)
笔算除法和机器除法的比较:
笔算除法:商符单独处理:心算上商 余数不动低位补零 减右移一位、的除数 使用的是两倍字长的加法器 上商的位置不固定
机器除法:符号位使用异或形成: 被除数加上移位后的除数的补码 大于零 上商一 小于零上商零 余数左移一位低位补零 减除数 使用的是1倍字长的的加法器 上商的位置固定在寄存器的末尾上商
3原码的除法:
商的符号单独处理,数值部分为绝对值相除。
约定:1 在小数定点机中,小数定点除法被除数的绝对值小于除数的绝对值 ;在正数顶点机中,整数定点除法被除数绝对值大于除数绝对值。
2被除数的值不等于零 如果等于零直接使用判断电路来判断 不用进行运算
3除数不能为零 否则会导致异常操作。
1恢复余数法:被除数的原码 除数的原码 除数绝对值的补码 除数绝对值的负数的补码
符号位是单独形成的
余数为正 上商1 余数为;负上商0 恢复余数
不回恢复余数法:就是加减交替法
恢复余数运算规则:余数 R>0 上商 1 ,2R-y*;余数R<0 上商0,R+y* 恢复余数。
不恢复余数法运算规则: 上商1 2R-y*;上商0 2R+y*。(加减交替法)
不回复余数运算法则的特点:上商n+1 第一次上商判断溢出,移n次,加n+1次用移位的次数来判断除法是否是结束。这种方式其实是对恢复余数法的改进。
浮点运算的规则:
浮点的四则运算:只讲浮点数的加减运算乘除运算不讲)
浮点数的加减运算:1对阶 2 尾数求和 3 规格化 4 舍入 5 溢出判断 6举例
1浮点数的加减运算:(浮点数运算 尾数相加之前阶数一定要相同。阶码不同就得对阶数和尾数进行调整,保证参与运算的数据的值大小不发生变化)
对阶:求阶差 阶差可能是大于零(两种方式:大阶向小阶看齐(但是这样可能会导致尾数的高位的1丢失) 或者是 小阶向大阶看齐(数据的精度不会发生变化)计算机中时候的就是这种方式。) 小于零(同样的有两种方式,大阶向小阶看齐 或者是小阶向大阶看齐(也是使用的小阶向大阶看齐)) 或者是等于零(就是已对齐)。
对阶的规则:小阶向大阶看齐。求阶差是使用的是补码的加减法运算来实现,。
尾数求和:也是使用尾数的补码的形式进行求和。
3规格化:原码 不论是正数还是负数 第一数位为1 补码:符号位和第一数位不同(特例: s= -1/2 和 s = -1)
规格化方式:左规:尾数左移一位,阶码减一,直到数符和第一数位不同为止。
右规:当尾数溢出(>1)时,需要右规。当尾数出现01. 和10.都是溢出,尾数右移一位,阶码
反码:
4舍入:在对阶和右规的过程中,可能出现尾数末尾引起误差,需要考虑舍入
第一种舍入的方式;0舍1入法就像是四舍五入法 ;第二中就是恒置1法:就是不管舍入的 是1还是0 末尾都置为一 实际上还有多种方式来对计算机的尾数进行舍入。
5溢出判断:机器字长是有限的,可以表示的数的长度是有限的。而且浮点数在可表示的范围也是离散的。
算数逻辑单元:ALU
1ALU电路:两个输入 一个输出 还有一个控制端。是一个组合逻辑电路(没有记忆功能的 数字电路中很讲的明确了)
教材上给出的是一个四位的算数逻辑单元:74181能够实现4位的算数和逻辑运算。如果输入的是低电平表示的是算数运算 输入的是高电平表示的就是逻辑运算。还有四个不同的控制端s0-s3 不同的取值,可以做不同的运算。
二.快速进位链
1并行加法器
2串行进位链 4位全加器产生进位的全部时间是8ty n位全加器产生进位的全部时间为2nty
3并行进位链:就是n为加法器的进位同时产生。与或非的优先级:非>与>或(这样能够实现并行进位 但是加法器的位数较多时电路较为复杂)因此使用下面两种方式。
1单重分组跳跃进位链:n为的全加器分为若干个小组,小组中的进位同时产生,小组和小组之间采用串行进位。
2双重分组跳跃进位链:
计算机组成原理之CPU
指令系统:指令系统 就是计算机软硬件的 接口
指令的格式 :操作码 地址码 寻址方式。
指令的字长:一条指令的长度就是指令字长
两种方式确定:固定字长 和 可变字长
1指令的格式: 操作码字段 + 地址码字段
操作码: 反映机器做什么操作。 但是实际上操作码的作用远远的超过这个作用。 在有些机器中 也指出了寻址方式
1长度固定:用于指令字长较长的情况,RISC(固定操作码是为了译码的方便)
2 长度可变:操作码分散在指令字的不同字段中。
3扩展操作码的技术:操作码的位数随着地址数的减少而增加。OP表示操作码部分
A 表示地址码 零地址指令:就是计算机的空操作 例如停机 等 不需要数据
在指令执行的过程中,经常执行的指令使用短指令
地址码:
1四地址: A1第一操作数地址 A2第二操作数地址 A3 结果的地址 A4 下一条指令
地址

这种寻址范围太小了 寄存器还行 但是要是内存太小了不可用
指令的字长: 指令字长决定于(1操作码的长度 2 操作数地址的长度 3 操作数地址的个数)
1指令字长固定:指令字长= 存储字长 2 指令字长可变:按字节的倍数变化、
7.2 操作数的类型和操作种类:
1操作数类型:地址 数字 字符 逻辑数
地址: 无符号整数
数字: 定点数 浮点数 十进制数
字符: ASCII
逻辑数:逻辑运算
二数据在存储器中的存放方式: 大端和小断
大端:字地址为高字节地址 指的是:数据的高位,保存在内存的低地址中
小端:字地址 为低字节地址 指的是:数据的高位,保存在内存的高地址中 X86是小端
机器字长: CPU一次运算处理的二进制位数。
指令字长: 计算机指令字的位数。
数据字长: 计算机数据存储所占用的位数。
存储字长: 存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。
存放方式:边界对准方式–从地址的整数倍位置开始访问。是前两种方式的折中。
操作的类型:
1数据传送
源 寄存器 寄存器
目的 寄存器 存储器
2 算数逻辑操作:
3移位操作:
算术移位: 逻辑移位
循环移位: (带进位和不带进位)
转移指令的类型:
4陷阱 (Trap)与 陷阱指令

5输入和输出
输入: 将端口的内容–>CPU寄存器中
输出: 将CPU寄存器—>端口中的内容。
7.3 寻址方式:
为什么要在指令中设置多种寻址方式。
1寻址方式:确定本条指令的操作数地址 或者是 下一条要执行 指令 的指令地址
寻址方式: 指令寻址 和 数据寻址
1指令的寻址
顺序(PC)+1 ——>PC
跳跃有转移指令指出

数据寻址
1 立即寻址: 立即寻址特征位 #
2 直接寻址:
3 隐含寻址:是指我们把寻址方式隐藏到操作码中或者是残余运算的某一个数据所在的位置 由操作码直接给出 例如8086中 MUL指令就是 将被乘数隐含在AX(16位)或是AL中
4间接寻址:有效地址由形式地址间接提供(指针)使用 间接地址能够扩大寻址范围。
间接寻址特征 @
5 寄存器寻址(有的教材也叫寄存器直接寻址):执行阶段 不访存 只访问寄存器 执行速度快 寄存器的个数有限能够缩短指令字长。
6 寄存器间接寻址:有效地址在寄存器中 有效地址在寄存器中,操作数在存储器中,执行阶段是需要访存的 便于编制循环程序
7基址寻址 :(1)采用专用寄存器作为基址寄存器 有效地址是基址寄存器保存的内容(程序的动态定位)(2)采用通用寄存器作为基址寄存器
8变址寻址:便于处理操作数组问题 形式地址有指令给出 不能变 IX寄存器课通过指令修改
9 相对寻址:广泛用于转移指令
10 堆栈寻址: 堆栈的特点:
堆栈的类型 硬堆栈(一般的堆栈型计算机 都是硬堆栈)多个寄存器 和软堆栈:指定的存储空间 先进后出(一个出入口) 栈顶地址由SP指出
需要的注意的是SP的修改和主存的编址方法有关.
7.4指令格式举例:
1设计指令格式时应考虑的各种因素:
1指令系统的兼容性。
2其他因素: 操作类型: 包括指令个数以及操作的难以程度
数据类型: 确定哪些数据类型可以参与操作。
指令格式: 指令字长是否是固定 操作码位数是否是采用扩展操作码的技术
地址码的位数 地址个数 寻址方式类型
寻址方式: 指令寻址 操作数寻址、
寄存器的个数: 寄存器的多少 直接影响指令的执行时间。
X 变址寄存器 B是基址寄存器
Intel 8086
1指令字长:8086是典型的复杂指令集计算机(指令字长1~6字节)
2地址格式:
零地址:NOP 1字节指令
一地址:CALL指令 段间调用 5字节指令
段内调用 3字节指令
二地址: ADD AX ,BX 2字节指令
ADD AX, 3048H 3字节 寄存器-立即数
ADD AX,[3048H] 4字节 寄存器-存储器
7.5 RSIC技术:
1RISC的产生和发展:首先是什么是RISC(Reduced Instruction Set COmputer)精简指令集计算机 和RSIC 相对的就是复杂指令集计算机(CISC: Complex Instruction Set Computer)
三 RSIC 的主要特征:1就是选用使用频度较高的一些简单指令,复杂指令的功能有简单指令来组合。
2指令长度固定 指令格式种类少, 寻址方式少。
3 只有LOAD/STORE 指令访存。(只有两条指令能够进行访存 其他的指令都不能够进行访存)
4采用流水技术 一个时候周期内完成一条指令。
5 采用组合逻辑实现控制器(使用的是硬件方式,使它的速度更快)
三:CISC的主要特征
1系统指令复杂庞大, 各种指令使用频度相差大。
2 指令的长度不固定 指令格式种类多, 寻址方式多。(导致译码过程非常复杂)
3 访存指令不受限制。
4 CPU中设有专用寄存器
5 大多数的指令需要多个时钟周期执行完毕。
6 采用微程序控制器
四:RSIC 和CISC的比较

RISC 不易实现指令系统兼容的原因:就是指令设置的较为紧凑
使用RISC 的是ARM 和MIPS 使用CISC是X86
现在处理器中 也有RSIC和CISC相结合。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

上山打卤面

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值