王道计算机组成原理笔记(转载)

本文深入探讨了计算机中数据的定点和浮点表示方法,包括补码、浮点数的标准表达和IEEE754格式,以及浮点数运算的规则。讲解了定点数的加减法、移位运算以及溢出判断,同时介绍了CPU的工作原理和存储器的组织结构。此外,还涵盖了数据的存储、运算器和控制器的功能以及计算机性能指标如字长和存储器容量。
摘要由CSDN通过智能技术生成

数的定点表示与浮点表示

  • 小数定点机:

源码表示范围:
在这里插入图片描述
补码表示范围:
在这里插入图片描述
-1:-1的补码就是1.0000(很特殊)

例如:给出的机器是五位的机器,符号位一位,数据位四位,已知补码为1.0000,求其真值?
已知当0>x>=-1时,补码的定义为[x]=2+x也就是说真值x=[x]-2,所以当补码等于1.0000时,x=1.0000-2=-1,因此,证明得到补码1.0000的真值为-1。

最后解释一下为什么这里不能用按位取反,末尾加一的原则进行求解,因为这个原则的本质是将补码变成原码来进行真值的求解,然而,原码小数的定义域不包括-1,因此不能使用该原则进行推倒。

ps.在此,有一个极为引人误会的点就是符号位是0表示正,符号位为1表示负,但-1的补码也就是1.0000是一个极为特殊的例子。
而通过上文的推倒加记忆,就可以帮助我们更清楚理清在此到底发生了什么。

反码表示范围:
在这里插入图片描述

  • 整数定点机:(原码反码补码表示范围)

在这里插入图片描述

  • 为什么引入浮点数表示:

定点方式的缺点:
1.编程麻烦
2.数据表示范围小:当两个数据相差很大时会浪费许多机器字长
3.对存储单元的利用率很低

  • 浮点数的标准表达形式:

在这里插入图片描述
1:其中s是小数,j是整数,都可正可负
2:在计算机中,r的值取2,4,6,8

浮点数储存形式:
在这里插入图片描述
Sf:代表浮点数的符号
jf:代表接码数值部分的符号
m:反应浮点数的表示范围
n:反应浮点数的精度
jf和m:共同表示小数点位置

  • 浮点数表示范围:

最小负数:数符为1,尾数全1,值为1-2的-n次方,阶符为0,阶码数值部分全为1,值为2的(2的m次方-1)次方,所以最小负数为:
在这里插入图片描述
同理可推得:
在这里插入图片描述
比如m=4,n=10,也就是说,电脑可以用十六位数来表示最小的负数和最大的整数之间的数据,即是用有限的数据表示无限的实数。

上溢:阶码>最大阶码 系统按照计算出错处理
下溢:阶码<最小阶码 系统将尾数各位强制为零处理。

  • 例题:

在这里插入图片描述在这里插入图片描述

  • 浮点数的规格化形式:

在这里插入图片描述

  • 例题2:

在这里插入图片描述
首先设x=19/128,19的二进制表达为10011,然后小数点←移,每移一位就相当于除以二,所以x的表达形式为x=0.0010011

定点表示形式:原=补=反=0.0010011000(因为数值部分取十位,所以末尾补三个零)

浮点规格化形式: 将x向←移两位,所以阶码减2,即x=0.1001100000(添0满足十位数值位条件) *2的-10次方
原码表示:1,0010;0.1001100000
同理:
在这里插入图片描述

  • 例题三:

在这里插入图片描述
要求同上例:
定点表示:-0000111010

浮点数表示:-0.1110100000*2的(110)次方(小数点右移六位)
在这里插入图片描述在这里插入图片描述

  • 机器零:

??在这里插入图片描述
阶码的符号位不影响其值
??

  • IEEE754要求:

加粗样式

  • 算数移位规则:

在这里插入图片描述

  • 算术移位的硬件实现:

在这里插入图片描述
a,b:,当左移丢掉1时,值会相差很大,但是右移的话相差较小
c:左移丢1时相当于原码0,无影响,但是右移丢1相当于原码右移丢1,影响精度
d:丢1=原码丢0,故无影响

  • 算数移位和逻辑移位的区别:

(符号位变不变的区别)
在这里插入图片描述

  • 补码加减法:

(符号位前面进位的数字舍去)
在这里插入图片描述

  • 溢出:

定点补码运算时,若范围不在能表示的范围之外,就叫做溢出
在这里插入图片描述

(练习一:超出1,练习二:超过-128——127)

在这里插入图片描述

  • 如何判断溢出:

溢出判断链接
1.一位符号位判断
第一个对应两个正数相加,第二个是两个负数相加。在这里插入图片描述
2.两位符号位判断:
所谓双符号位判决法是指:

计算机运算溢出检测机制,采用双符号位,00表示正号,11表示负号。如果进位将会导致符号位不一致,从而检测出溢出。结果的符号位为01时,称为上溢;为10时,称为下溢。  
 例如设X = + 1000001,Y = + 1000011,采用双符号为表示X=00 1000001,Y=00 1000011,[X + Y]补=01 0000100,实际上,运算结果产生了正溢出。   
设x=0.1101,y=-0.0111,符号位为双符号位 ,用补码求x+y,x-y   [x]补+[y]补=00 1101+11 1001=00 0110   [x-y]补=[x]补+[-y]补=00 1101+00 0111=01 0100 结果错误,正溢出

  • 乘法运算:

原码一位乘法:

  • 除法运算:
    加减交替法
    在这里插入图片描述
  • 浮点的四则运算:
    在这里插入图片描述
    采用阶码加一,尾数右移一位的操作,因为尾数移动时会导致首位或者是末尾的1移掉,所以最好是右移,因为左移移掉1的话会直接错误,而右移掉1的话只是精度出错。
    举个例子:
    在这里插入图片描述规格化:
    在这里插入图片描述
    但是又两个特例:
    1.-2/1

    2.-1
    在这里插入图片描述
    规格化之左规:

在这里插入图片描述

右规:
在这里插入图片描述

例子:
在这里插入图片描述
舍入:
在这里插入图片描述

在这里插入图片描述

  • 算术逻辑单元

在这里插入图片描述

  • ALU电路:

在这里插入图片描述
ALU电路是一个组合逻辑电路,是没有记忆的,输入消失时,输出也会消失,所以必须在A,B,F端使用寄存器来寄存结果。
(运算器)
又k来决定做什么运算,A,B代表参数,F代表结果

  • 快速进位链:

  • 1.并行加法器:

在这里插入图片描述
每一个fn三个输入,其中A,B是两个做运算的数据,C是低位来的进位,有两个输出,一个是对应加法的和,另一位是向上的进位。
当三个输入中:
1.一个数等于1,两个数等于零,则si=1。
2.全都为1,si=1,ci=1
3.两个输入为1,ci=1

在这里插入图片描述
将ci化简为逻辑形式:
在这里插入图片描述

  • 2.串行进位链

在这里插入图片描述

  • 3.并行进位链:
    分为先行进位,和跳跃进位
    1.单重分组跳跃进位链:
    在这里插入图片描述
    在这里插入图片描述
    2.双重分组跳跃进位链:
    在这里插入图片描述

第一章:

1.1:计算机的基本概念

计算机的五个逻辑模块:
在这里插入图片描述

其中运算器和控制器已经集成在cpu中

信息的数字化表示

使用数字代码(二进制)表示各种信息

存储程序工作方式

1.编制程序
2.存储程序
3.自动,连续执行程序
4.输出结果

计算机分类

总体上分为
1.模拟计算机 :
 有模拟运算器构成,处理在时间和数值上连续的模拟量
2.数字计算机:(分为专用计算机和通用计算机)
有数字逻辑器构成,处理练的数字量

1.2:计算机的诞生和发展

EDVAC:冯诺依曼思想,催生了第一台严格意义上的电子计算机

计算机发展历程:
电子管-晶体管-中小规模集成电路-超大规模集成电路

1.3:计算机系统的组织

1.硬件:构成计算机系统的实体装置
2.软件:是指由硬件所表达的各种内在信息,包括数据与控制程序,是无形的

计算机的主要功能部件:

1.cpu:
主要由运算器和控制器等部件组成

运算器:
数据宽度一般是8163264
完成两类(算术和逻辑)运算
主要有ALU构成,执行运算等操作,是CPU功能的主要执行部件
ALU以全加器为核心,具有多种运算功能

控制器:
产生控制命令,控制全机操作
功能是存储数据和数字化后的程序

存储单元:在存储器中保存一个n位二进制数的n个存储电路

2.存储器:
存储容量:
所有存储单元的总数

内存储器:
即主存,用来存放直接为cpu提供服务的程序和数据存储器,快,但容量比外存小

外存储器:
即辅存,为计算机配备的存储容量很大的辅助存储器,容量大,但速度慢

3.输入输出设备:
输入时:
原始信息-二进制代码
输出时:
处理结果-用户能直接感知的形式

4.总线:
能为多个部分共享的一组信息传送通路
分为三类:
1.数据总线
2.地址总线:
3.控制总线

5.接口:
具有缓冲,转换,链接外设和总线的部件

软件和硬件的逻辑等价性

软件:
易于实现各种逻辑运算,但是受限于速度和容量

硬件:
可以告诉实现逻辑和运算功能,但是难以实现复杂功能或计算

计算机中的软件,理论上都可以固化,或者是硬化成硬件,以提高执行速度

1.4:计算机系统的性能指标

1.基本字长

只一次数据操作的基本位数,会影响计算的精度,指令的功能
一般为48163264

2.外频

外部频率或基频

在这里插入图片描述
3.常用的cpu性能指标

在这里插入图片描述
4.数据传输率
在这里插入图片描述

物理意义:单位时间内数据的传输量

例题:

在这里插入图片描述

5.存储器的容量

在这里插入图片描述

第二章:

2.1数值型数据的表示方法:

在这里插入图片描述

变补:

在这里插入图片描述
在这里插入图片描述

移码:

在这里插入图片描述

在这里插入图片描述

定点数和浮点数:

例题1:

在这里插入图片描述

例题二:

在这里插入图片描述

IEEE754格式的浮点数:

在这里插入图片描述
在这里插入图片描述

例题三:

在这里插入图片描述

2.2:字符串的表示方法

ASCII🐎

字符总数:128
在这里插入图片描述

2.3:数据处理与存储

2.4:基本运算方法

在这里插入图片描述

原码加减运算

加法:同号时数值位求和,异号求差
减法:异号数值位求和,同号求差

求和时:数值位相加,和的符号取被加数(被减数)符号,若最高位产生进位,则有溢出

求差时:被加数(被减数)与加数(减数)求补(只是加数求补)后相加

1:
最高位若有进位,相加结果为正,数值位正确,符号取被加数(被减数)的符号

2:
若无进位,相加结果为负,

例题


在这里插入图片描述

标准移码的加减

两数移码的加减等于两数加减后表示成的补码

在这里插入图片描述
溢出判断:
在这里插入图片描述
例题:
在这里插入图片描述

原码一位乘法

在这里插入图片描述

补码一位乘法:

补码不恢复余数除法:

浮点数四则运算:

浮点数的乘法

浮点数的加减法

浮点数的除法

3.1CPU概述:

cpu是计算机中的核心部件
1.数据运算功能
2.系统控制功能

在这里插入图片描述

3.1.2运算和缓存部件

cpu的主要部件包括
1.运算部件
2.缓存部件
3.寄存器
4.控制器
5.时序部件
上述五个部件通过数据通路控制通路互相连接形成cpu的硬件架构:cpu的微架构

1.运算部件:
对操作数进行算术运算/逻辑运算

2.缓存部件:
提高cpu从主存中读取指令或者是数据的效率
(不需要从主存中读取数据,直接从缓存中读取数据和指令)

3.寄存器组(堆)

通用寄存器,存放运算结果等

暂存器,暂时存储临时数据

指令寄存器,当读取到指令后,就直接存到指令寄存器中

程序计数器(pc),用来指明再存储器中存放的位置,即存储单元的地址码

程序状态寄存器,记录现行程序的运行状态和工作模式

地址寄存器(MAR)

数据缓冲寄存器(MBR)

堆栈指针(SP)

3.1.4:时序处理部件
控制器
根据指令,外部信号,时序信号,产生各种控制信号(微命令)
在这里插入图片描述

分为:
1.组合逻辑控制器(通过硬件来产生控制信号)
2.微程序控制器(通过软件来产生控制信号)

时序部件

3.1.5cpu工作原理

执行流程:
1.读取指令,从存储器中读取
2.指令译码,通过控制器进行,差生控制信号
3.指令执行,寻址,取数,运算
4.后续工作,保存结果
控制方式:
1.同步控制方式,每步操作都需要向统一的外部时序信号对齐,且各步操作无交互
2.异步控制方式,每步操作都不需要和统一的外部信号对齐,且各步操作都可以通过交互应答来实现协同。

王道计算机考研

1.1计算机的发展

1.计算机系统=硬件+软件
2.软件分为 系统软件,应用软件
3.硬件的发展:逻辑元件的四个阶段
在这里插入图片描述
题目:
在这里插入图片描述
答案:
在这里插入图片描述

1.2.1计算机硬件的基本组成

一.冯诺依曼机
在这里插入图片描述
在这里插入图片描述

二:现代计算机
核心为存储器。
运算器和控制器集成在cpu中
在这里插入图片描述

1.2.2认识各个硬件部件

主存和辅存区别
在这里插入图片描述
辅存相当于一种io设备,比如手机里的app就是存放在辅存里面的,只有在使用app时,辅存才会将app中的数据读入到主存中
比如下图中,8GB就是指主存,而128GB则是辅存
在这里插入图片描述
主存储器工作步骤:
分为存储体,MAR和MDR
可读入,可取出
在这里插入图片描述
类似于菜鸟驿站的关系
在这里插入图片描述
主存储器基本原理
存储器中有许多存储单元,MAR中的每一个地址对应了一个存储单元存储单元中存放了一串二进制代码

在这里插入图片描述
每个存储单元存放的二进制数就叫存储字。
在这里插入图片描述
eg:
在这里插入图片描述
答案:
在这里插入图片描述
eg2:
在这里插入图片描述
答案:
在这里插入图片描述

运算器的基本组成
核心为ALU,另外还有三种寄存器(ACC,MQ,X)
控制器的基本组成
核心为CU,另外还有两种寄存器(IR,PC)
eg:在这里插入图片描述
在这里插入图片描述

1.2.3计算机系统的层次结构

三种级别的语言
高级语言 汇编语言 机器语言
编译程序和解释程序:
在这里插入图片描述
eg:
在这里插入图片描述
答案:
在这里插入图片描述

1.3计算机性能指标

总容量:MAR个数*MDR位数(bit)
在这里插入图片描述
注意:KB=1000字节,而不是bit
cpu的主频 每秒钟的时钟周期数,与时钟周期互为倒数,主频越高速度越快
cpi执行一条指令所花费的时钟周期数
cpu执行时间:时钟周期 × cpi × 指令数
在这里插入图片描述
ips:每秒钟执行多少条指令,主频/平均cpi
数据通路的带宽:数据总线一次能并行传送信息的位数(各硬件部件通过数据总线传输数据)
吞吐量:在单位时间内处理请求的数量(比如食堂在单位时间为同学们剩饭的人数)
响应时间:顾名思义
eg:
在这里插入图片描述
总结:
在这里插入图片描述

2.1.1进位计数制

2.1.2BCD码

每四个二进制位对应一个十进制字符
在这里插入图片描述
1.8421码
权重分配为8421
在这里插入图片描述
当两数相加超过了此表表示范围时,则需要+6(0110)进行修正

eg:
在这里插入图片描述
三种BCD码
三种BCD码:

2.1.3字符与字符串

汉字的区位码,字符的asc码
在这里插入图片描述

2.1.4奇偶校验

校验原理:
码距:取最小的

在这里插入图片描述
只能检验出奇数位的错误: 奇数个错误是可以检验出来,而偶数个错误时无法检验
在这里插入图片描述

2.1.5海明校验码

步骤:
1.确定海明码位数:在这里插入图片描述
2.确定校验位分布:
在这里插入图片描述
信息位则插空填入
在这里插入图片描述

3.求校验位的值
在这里插入图片描述
4.纠错:
校验方程:
在这里插入图片描述
如果校验位全为0,则说明没有错误,若校验位有为1的则说明有错。
出错位置:
(s1到sn是倒着输出的)在这里插入图片描述
总结:
在这里插入图片描述

循环冗余校验码

1.确定K,R以及生成多项式对应的二进制码
K=信息码长度,R=生成多项式的最高次幂,校验码位数N=K+R
生成多项式对应的二进制编码=各项系数的系数相结合
2.移位
信息码左移R位,低位补0
3.相除
模2除法,产生余数和对应CRC码(信息码+校验位),也就是校验码
eg:
(模2减==模2加)
eg:
4.检错和纠错
注意纠错时和海明校验法不同
如果最后的结果和给定的余数不同,则可以判断出错,但是如果信息位过长则会导致无法纠错
在这里插入图片描述
了解:
在这里插入图片描述
总结:在这里插入图片描述

2.2.1:定点数的表示
补码注意事项:
补码的表示范围

在这里插入图片描述
在这里插入图片描述
补码和源码的相互转换都是取反+1
移码:在补码的基础上将符号位取反。(移码只能表示证书)
作用:利于计算机识别两数谁更大
(两数谁先出现1,谁就更大)
**已知补码求相反数的补码:**将符号位以及数值位全部取反然后末尾+1
定点数中小数点的位置:
在这里插入图片描述
2.2.2原码移码反码的作用
当进行有符号数运算时,可以先将符号数换成相同的在进行运算
在这里插入图片描述
补码:让减法操作转变为加法操作
在这里插入图片描述
2.2.3移位运算:
原码的算术移位:
左移 1:严重误差 0:×2
右移 1 :损失精度 0:÷2
反码的算术移位:
正数的反码与原码的规则相同
负数的反码:
左移:高位补1,低位舍弃
右移:低位补1,高位舍弃
补码的移位规则:
正数的反码与原码的规则相同
负数的补码:
左移:高位补1
右移:低位补0

在这里插入图片描述
逻辑移位
左右移都是0

循环移位:
在这里插入图片描述

加减运算的溢出判断:

原码加减法的逻辑太难,所以计算机都用补码进行加减法运算
在这里插入图片描述
补码的减法可以转化成+法,所以只用使用加法器即可,更加方便快捷
溢出的判断:(补码)
在这里插入图片描述
符号扩展
在这里插入图片描述

2.2.7强制转换类型

2.2.8数据的存储和排列

在这里插入图片描述

2.3.1浮点数的表示

左规和右规
在这里插入图片描述
规格化
原码表示的尾数进行规格化
在这里插入图片描述
补码表示的尾数的规格化
规定:符号位为1时,最高位为0,符号位为0时,最高位为1
在这里插入图片描述
总结:

2.3.2IEEE754

前面有

2.3.3浮点数的运算

步骤:
在这里插入图片描述

eg:
重点:
判断溢出时看的时阶码+1后双符号位是否相同在这里插入图片描述舍入策略: 在这里插入图片描述
2.4.1电路的基本原理
算数逻辑单元ALU
在这里插入图片描述
基本逻辑运算
与或非运算
优先级:
与>或
一位全加器
在这里插入图片描述
串行加法器
在这里插入图片描述

在这里插入图片描述
并行加法器
在这里插入图片描述
总结
在这里插入图片描述

2.2.4加法器和ALU的改进

了解即可:在这里插入图片描述

3.1-3.2主存简单模型和寻址概念

芯片的總容量=存儲單元個數+存儲字長
在这里插入图片描述
在这里插入图片描述

半導體存儲器RAM

半導體隨機存取存儲器的兩種方式
靜態隨機存儲器(SRAM)和動態隨機存儲器(DRAM)
在这里插入图片描述
DRAM的刷新

在这里插入图片描述
總結:
在这里插入图片描述

ROM

只读存储器:
在这里插入图片描述

存储器分类

在这里插入图片描述

性能:
在这里插入图片描述

存储器层次化结构:
在这里插入图片描述

总结:
在这里插入图片描述

主存与CPU的连接

位扩展
在这里插入图片描述

把用位数较少的多片存储器(ROM或RAM)组合成位数更多的存储器的扩展方法。一般是在字数够用而每个字的位数不能够用的情况下使用。芯片的地址线直接与CPU的地址线相连
字扩展
在这里插入图片描述

用多片位宽相同的存储器(ROM或RAM)芯片扩展包含更多存储器的过程。字扩展只扩展芯片的容量。芯片的地址线与CPU的低位地址线相连

译码器:
当cs为高电平有效时:
在这里插入图片描述
当cs为低电平有效时:
在这里插入图片描述
两种字扩展方式
在这里插入图片描述

线选法:只能有一个是1,多以地址不连续
译码片选法:可以全零全1,所以连续
同时扩展

先进行位扩展,让存储器的位数能和cpu的d0–d7匹配,再用译码器进行字扩展,即类似于串联在后面串联存储器,再通过译码器进行控制
总结:
在这里插入图片描述

上一章例题:

首先确定地址线,数据线并选择存储芯片,根据cpu的数据线有8根,则可以推出存储器位数应该拓展成8位,然后将系统程序区和用户程序区各自相减得到芯片的存储容量,然后确定用哪一个存储器
在这里插入图片描述
根据地址线和译码器的型号(3位对应8位)确定译码位置(低位占用最多的存储器为准向前数3位即可)
在这里插入图片描述
在这里插入图片描述

rom的读写控制线是静态的
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值