组原 无敌版

大学的遗物
从大学课程中的重新总结,来源于课程朱老师课程录屏

一、引论

计算机功能部件

计算机的基本功能:数据加工、数据保存、数据传送、操作控制。相应的有硬件的五大部件,他们组成了计算机系统的体系结构。

1-1

  1. 存储器分为主存储器(内存、外存)和辅助存储器(外存、辅存)

  2. 存储器的访问方式

    • 按地址进行访问
    • 按内容进行访问(相联存储器)
  3. 主存的基本组成

    1-2

程序:解题步骤,控制器按照事先安排好的步骤,控制计算机各个部件有条不紊的自动工作。

程序按照指令序列的形式存放在存储器中,控制器一次读出存储器中的程序质量实施控制。这种方式叫做存储程序方式

早期冯·诺伊曼计算机以运算器为中心,现代计算机逐步转变为以存储器为中心

现代计算机结构依然遵循冯诺依曼思想。

计算机软件

基本的软件系统包含系统软件应用软件两大类

计算机系统的组织结构

硬件、软件在逻辑功能上是等价的。

计算机系统结构是多层次的。

计算机硬件的系统结构

现代计算机普遍采用总线结构

总线的使用规定:分时发送,同时接收。(发送部件需要分时使用总线发送信息,但是各个部件可以同时接收到总线的数据)

总线的分类

按照任务:cpu内部总线、部件内部总线、系统总线、外总线

按照信息传送方向:单向总线、双向总线

按照总线的信息传送位数:串行、并行

计算机性能指标

  1. 基本字长:范围和精度
  2. 主存容量:程序复杂性
  3. 运算速度
  4. 外部设备
  5. 软件配置

二、计算机中数据信息的表示

数制与数制转换

进位计数值都有两个基本因素:基值位权值

任意进制转换为十进制:按权相加

十进制转换为任意进制:整数部分、小数部分分别进行转换,整数部分除基取余(逆序),小数部分乘基取整(顺序)

带符号数的表示

1. 机器数

机器数是连同数字一起代码化的数据,小数点本身是隐含的。

机器数分为有符号数和无符号数,指令想知道机器数是否带符号,由指令的操作码决定。

真值=符号位+绝对值

四种机器码:原码、补码、反码和移码

2.原码表示

文字定义:数值部分的形式不变,只将符号用二进制代码表示

公式定义

img

img

原码的移位规则:符号位不变,数值部分左移或者右移,移出的空位补0。左移将有效位移出会导致移除错误。

3.补码表示

目的:为了解决原码的加减运算的不方便

公式定义

img

img

从定义可以看出,相对于原码的整数表数范围变大了(所表示最小值更小了)

补码求法:对原码,符号位不变,从后面往前数到第一个1,上述不变,前面的位数全部取反

真值和补码的映射关系图

img

补码的移位规则:

  • 右移:符号位不变,数值位右移,高位补符号位
  • 左移:连同符号位左移,低位补0,注意会溢出

补码的模

  • 补码总是对于确定的模而言的。如果补码运算的结果超过了模,会自动取模
  • 补码在运算过程中,模不可以改变
  • 为了使得不同位数补码可以求和,需符号扩展,方法是扩充符号位

4.反码表示

公式定义:

img

img

反码求法:

  • 正数不变
  • 负数保存符号位不变,各个位取反

5.移码表示

移码,常用于表示浮点数的阶码。

移码求法:整数求补,符号取反

特殊的移码:移码=K+实际数值。例如,移127码=127+实际数值。

6.不同码值之间的关系图

img

数的定点表示和浮点表示

任何一个数都可以表示为以下形式
$$
(N)_R=\pm{S*R^{\pm{e}}}
$$
其中,R(基值),S(尾数),e(阶码)

1.定点表示

约定阶码e不变

定点小数:e=0,约定小数点在符号位和最高位之间

定点整数:e=0,约定小数点在最低有效数值位之后

定点数的分辨率:相邻两个定点数之间的最小间隔

2.浮点表示

浮点数由阶码和尾数两个部分组成。

阶码表示小数点的实际位置,阶码均采用2的基数

尾数表示数的有效数字

浮点数的规格化表示:

  • 目的
    • 尽可能多得保留有效数字
    • 保证浮点的唯一性
  • 方法
    • 尽可能的去掉尾数中的前置“0”,即尽可能使二进制小数点后第一位是1,可满足1/2<=|s|<1

规格化数的定义

原码表示规格化数: s1=1$\Leftrightarrow$规格化

补码表示规格化数:sf $\bigoplus$ s1$\Leftrightarrow$规格化

表数范围:Todo

IEEE浮点数标准

Todo

非数值型数据的表示

1.逻辑数(二进制串)

  • 无符号问题,无位权问题,无进位问题
  • “0”,“1”不代表大小,只代表逻辑真假
  • 按位进行逻辑运算

2.汉字交换码

区位码(区码,位码,共两字节)->国标码(两字节,但只是用低7位)->机内码(机内码=国标码+8080H)

数据的长度和存储方式

位(bit),字节(Byte,B),字

字长:字中包含的二进制位数

数据的存储顺序:大端排序、小端排序

数据校验码

编码距离:一组编码中任何两个编码之间代码不同的位数称为编码距离,也称为海明距离。

码距:在一组编码中,任何两个编码之间最小的距离称为这组编码的码距。

检纠错误的位数与码距之间的关系:检错e位,需要e+1位码距;纠正t位错误,需要2t+1位码距

奇偶校验

Todo

海明校验码

Todo

扩展海明校验码

Todo

循环冗余校验码

Todo

三、运算方法与运算器

运算器的设计方法

计算机中数据加工最基本的思想:将各种复杂的运算处理分解为最基本的算数运算和逻辑运算

大量运算规则Todo

四、存储器系统

存储器概述

存储器分类

主存:cpu能直接访问的存储器

辅存:cpu不能直接访问的存储器,也叫外存

高速缓冲存储器cache:用于解决cpu与主存之间速度匹配问题的高速小型存储器,存放cpu立即要使用的或者刚使用的程序或数据

img

存储器的编址

编址单位;存储器中可寻址的最小单位

按字节编址:相邻两个单元是两个字节(字节,每个字节8位)

按字编址:相邻两个单元是两个字(字,机器字,包括若干字节,依据不同机器而定)

目前按照字节编址是主流,大量机器中使用整数边界对齐的方式

存储器的性能指标

  • 存储容量
  • 访问速度

存储器的总线带宽

带宽:单位时间内所存取的二进制信息位数

带宽的计算

带宽=每个周期访问的位数/存取周期时长

带宽=存储器总线宽度/存取周期时长

存储器系统的层次结构

img

半导体存储器

img

半导体随机存储器芯片的结构

  • 字片式

  • 位片式

动态存储器的刷新

按行刷新

半导体存储器的组成

计算组成存储器所需芯片的数量计算公式:
$$
芯片总片数=\frac{存储器总单元数位数/单元}{每片芯片单元数位数/单元}
$$

位扩展

含义:只进行位数扩展(增加字长)

链接方式:

  • 将所有的存储器芯片的地址线、片选信号线和读写控制线并接,连到地址和控制总线对应位
  • 将各芯片数据线单独列出,分别接到数据总线的对应位

字扩展

含义:仅仅是单元数(字数)扩展,位数不变

链接方式:

  • 将所有的存储器芯片的地址线、数据线和读写控制线并接,连到地址、数据和控制总线对应位
  • 由片选信号区分被选芯片

字位同时扩展

字和位要分别进行,注意片选信号连接方式

半导体只读存储器

并行存储器

高速缓冲存储器

cache的主要目的:速度匹配,存放主存信息的副本。

设计原理:程序的局部性原理(时间局部性和空间局部性)

设计理念:加快速度,但是对程序员透明,并且在cache中按块管理

cache的命中:欲访问主存中的数据已保存在cache中

cache命中率:$H=\frac{N_c}{N_c+N_m}$($N_c$总命中次数,$N_m$未命中然后访问主存次数)

cache其它参数:Todo

cache工作原理:

img

cpu访存地址:块号+块内偏移量

内容cache=数据cache+标识cache

标识cache又是包含一位有效位,用于判断脏数据

cache地址映像方式

直接映射

主存地址=区号+区域块号+块内偏移量

cache地址:块号+块内偏移量

地址转换Todo

全相联映像

任何主存可以映像到任意一个cache块。

地址转换Todo

组相联映像

主存任何一个组只能映射到cache中的某一个固定的组,但是同一个组中的主存块可以调入cache指定组中的任意块

地址转换Todo

cached 替换算法与写策略

替换算法

FIFO法(先进先出法)

LRU法(近期最少使用法)

写策略

写直达法:cpu执行写操作时,利用主存和cpu之间的直接通道,写入cache的同时也写入主存

写回法:当cpu执行写操作,只写cache不写主存,只有cache被替换,才将被修改的cache写回主存

辅助存储器

磁盘信息记录格式及其读写

相关概念

  • 记录面
  • 磁盘
  • 扇区
  • 扇段
  • 柱面

硬盘地址标识:圆柱面号+盘面号+扇区号

磁盘存储的主要技术指标

  • 存储容量C
  • 平均存取时间=平均磁道定位时间+平均旋转等待时间+读写操作时间+控制延时时间
  • 存储密度
    • 位密度:沿着磁道方向单位长度所能存储的二进制位数目(一般内外圈不一致,以最内圈密度为准)
    • 道密度:沿着磁道径向单位长度所包含的磁道数目
    • 面密度=位密度*道密度
  • 数据传输率:磁盘存储器单位时间能传送的数据量

五、指令系统

机器指令

指令字(指令代码):表示一条指令的二进制代码

一条指令应该包含的信息:

  • 操作码:表示指令的操作特性和功能
  • 操作码的地址:指示操作数或操作数所在的地址
  • 存放操作数的地址
  • 下一条指令的地址

指令字的长度:单字长或双字长

指令的地址码:地址信息在指令码中明确给出的称为“显地址”,地址也可以依据某种实现的约定,用隐含的方式给出

指令的操作码:假定指令系统由m种操作,则操作码位数n应该满足n$\geq log_{2}{m}$

变长指令早期采用扩展操作码法

寻址方式

寻址分为:指令地址的寻址和操作数地址的寻址

指令的寻址方式

  • 顺序方式:pc=pc+增量

  • 跳跃方式:跳转

操作数的寻址方式

Todo

  • 立即寻址
  • 直接寻址
  • 间接寻址
  • 寄存器直接寻址
  • 寄存器间接寻址
  • 变址寻址
  • 相对寻址
  • 基址寻址

指令类型及功能

Todo

六、控制系统与CPU

控制器概述

计算机运行基本过程

取指令、分析指令、执行指令

控制器的基本功能

  • 控制指令的正确执行
  • 控制程序和数据的输入以及结果的输出,注意,每一条指令执行完毕后,才判定是否有异常中断

控制器的组成

指令部件