计算机组成原理概述

2.计组之概述篇

2.1.计算机的发展历史

第一阶段(1946-1957):电子管计算机 特点:集成度低,体积大,功耗高,运行速度慢,操作复杂。
第二阶段(1957-1964):晶体管计算机 特点:相对电子管计算机,体积小,速度快,功耗低,可靠性高,配备显示器。
第三阶段(1964-1980):集成电路计算机 特点:操作系统诞生。
第四阶段(1980-至 今):超大规模集成电路计算机 特点:集成度高,速度快,体积小,价格低,用途广泛。
第五阶段( f u t u r e) :生物计算机&&量子计算机

2.2.计算机的分类

超级计算机、大型计算机、迷你计算机(普通服务器)、工作站、微型计算机(个人计算机)

2.3.计算机的体系与结构

冯·诺伊曼体系:将程序指令和数据一起存储的计算机设计概念结构,存储器+控制器+运算器+输入设备+输出设备。
计算机组成原理概述

现代计算机的结构:以存储器为核心,解决冯·诺伊曼体系瓶颈问题(CPU与存储设备之间的性能差异)。
计算机组成原理概述

2.4.计算机的层次

计算机组成原理概述

2.5.计算机的字符与编码集

字符编码集的历史:ASCII码 --> Extended ASCII码
中文编码集:GB2312、GBK、Unicode(统一码、万国码)

3.计组之组成篇

3.1.计算机的总线与I/O设备

3.1.1.计算机的总线(Bus)

  • 概述:连接多个设备或者接入点的数据传输通路。
  • 作用:解决不同设备之间的通信问题。
  • 分类:
    片内总线:高集成度内部的信息传输线
    系统总线数据总线&地址总线&控制总线,是CPU、主内存、IO设备、各组件之间的信息传输线

总线的仲裁为了解决总线使用权的冲突问题
三种方法:链式查询、计时器定时查询、独立请求。

3.1.2.常见的输入输出设备

字符输入设备:键盘
图形输入设备:鼠标、数位板、扫描仪
图像输出设备:显示器、打印机、投影仪

3.1.3.输入输出接口的通用设计

数据线:I/O设备与主机进行数据交换的传送线(单向&双向)。
状态线:I/O设备状态向主机报告的信号线。
命令线:CPU向I/O设备发送命令(读写信号、启动停止信号)的信号线。
设备选择线:主机选择I/O设备进行操作的信号线。

3.1.4.CPU与I/O设备的通信

程序中断:提供低速设备通知CPU的一种异步的方式,CPU可以在高速运转的同时兼顾低速设备的响应。
 直接存储器访问(DMA):
计算机组成原理概述

3.2.计算机的存储器

3.2.1.存储器的分类

按照存储介质:半导体存储器(内存、U盘、固态硬盘)、磁存储器(磁带、磁盘)
按照存取方式:随机存储器RAM(随机读取,与位置无关)、串行存储器(按顺序查找,与位置有关)、只读存储器ROM(只读不写)

3.2.2.存储器的层次结构

计算机组成原理概述


缓存–>主存层次–>辅存层次:

缓存-主存层次:局部性原理,在CPU与主存之间增加一层速度快容量小的Cache,解决主存速度不足的问题。
主存-辅存层次:局部性原理,主存之外增加辅助存储器,解决主存容量不足的问题。

局部性原理:是指CPU访问存储器时,无论是存取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。

计算机组成原理概述

3.2.3.计算机的主存储器

内存RAM(随机存取存储器Random Access Memory):通过电容存取数据,掉电将丢失所有数据。

3.2.4.计算机的辅助存储器

3.2.5.计算机的高速缓存

工作原理:命中率是衡量缓存的重要性能指标,理论上CPU每次都能从高速缓存取数据的时候,命中率为1。
计算机组成原理概述
计算机组成原理概述


高速缓存的替换时间:当缓存没有数据,需要从主存载入数据的时候。
高速缓存的替换策略随机算法先进先出算法(FIFO)最不经常使用算法(LFU)最近最少使用算法(LRU)

3.3.计算机的CPU

3.3.1.计算机的指令系统

机器指令的形式操作码(指明指令所要完成的操作)+地址码(给出操作数或操作数的地址);

机器指令的操作类型:数据传输、算术逻辑操作、移位操作、控制指令;

机器指令的寻址方式

  • 指令寻址:顺序寻址+跳跃寻址
  • 数据寻址
    • 立即寻址(速度快)
    • 直接寻址(寻找操作数简单)
    • 间接寻址(寻址范围大,速度慢)

3.3.2.计算机的控制器

作用:控制器是协调和控制计算机运行的。
组成

  • 程序计数器:存储下一条指令的地址
  • 时序发生器:发送时序脉冲
  • 指令译码器:控制器的主要部件之一,翻译操作码+地址码
  • 指令寄存器:控制器的主要部件之一,从主存或缓存存取计算机指令
  • 主存地址寄存器:保存当前CPU正要访问的内存地址单元
  • 主存数据寄存器:保存当前CPU正要读或写的主存数据
  • 通用寄存器:比一般专用寄存器大,可以暂时存放或传送数据或指令,可保存ALU的运算中间结果

3.3.3.计算机的运算器

作用:进行数据运算加工。
组成:

  • 数据缓冲器:输入缓冲暂时存放外设送过来的数据,输出缓冲暂时存放送往外设的数据
  • ALU:算术逻辑运算
  • 状态字及寄存器:存放运算状态和运算控制信息
  • 通用寄存器:比一般专用寄存器大,可以暂时存放或传送数据或指令,可保存ALU的运算中间结果

3.3.4.计算机指令执行的过程

指令执行过程:取指令-分析指令-执行指令
计算机组成原理概述

CPU的流水线设计:因运算器和控制器不能同时工作,CPU的综合利用率并不高,所以CPU的流水线设计可以提高CPU的利用率,提高大概3倍。

4.计组之计算篇

4.1.进制运算的基础知识

进位制:即进制,是一种计数方式,亦称进位计数法,有限种数字符号来表示无限的数值。
传送门——>关于进制转换推荐看文

4.1.1.二进制数据的表示方法

4.1.2.有符号数和无符号数

原码表示法:0表示正数,1表示负数,规定符号位位于数值的第一位;表达简单,容易理解,但运算复杂。

4.1.3.二进制的补码表示法

定义:
计算机组成原理概述

引入目的:为了消除减法(未完全实现)引入补码的概念,使用正数代替负数。
规律:负数的补码等于反码+1,如十进制数-7,反码表示为1,1000,补码表示为1,1001。
举个小例子计算题:
计算机组成原理概述

4.1.4.二进制的反码表示法

定义:
计算机组成原理概述

引入目的:找出原码和补码之间的规律,消除转换过程中的减法操作。
规律:负数的反码等于原码除符号位外按位取反,如十进制数-7,原码表示为1,0111,反码表示为1,1000。
举个小例子计算题:
计算机组成原理概述

4.1.5.小数的二进制补码表示

定义:
计算机组成原理概述

上述两个整数的反码补码计算规律同样适用。

4.2.二进制数据的运算

4.2.1.定点数与浮点数

定点数:小数点固定在某个位置。
浮点数的表示格式:符号、阶码、尾数
计算机组成原理概述

浮点数的表示范围:单精度± (2-2^-23) × 2127
双精度± (2-2^-52) × 21023 其中大于浮点数绝对值最大的数为上溢,小于绝对值最小的数据为下溢。
浮点数的规格化:尾数使用纯小数、尾数最高位必须是1。

4.2.2.定点数的加减法运算

加法运算:数值位与符号位一同运算,并将符号位产生的进位自然丢掉(模2^n舍去)。
计算机组成原理概述

举两个小栗子计算题(整数和小数):
​​计算机组成原理概述
计算机组成原理概述

减法运算:将B[补码]转换成-B[补码]来计算,其中-B[补码]=B[补码]连同符号按位取反,末尾加1,例如B[补码]=1,0010101 ,则-B[补码]=0,1101011。
举个小栗子计算题:
计算机组成原理概述

4.2.3.浮点数的加减法运算

步骤:对阶(使得阶码一致,尾数才可以运算)–>尾数求和–>尾数规格化–>舍入–>溢出判断
运算:先进行对阶,后与定点数的加减法相同。
举个小栗子计算题:

计算机组成原理概述
计算机组成原理概述
计算机组成原理概述
计算机组成原理概述


4.2.4.浮点数的乘除法运算

乘法:阶码相加,尾数求积。
除法:阶码相减,尾数求商。

4.3.计组之实践篇

  • 1.实现双向链表

单向链表:节点1–>节点2–>节点3–>节点4–>节点5 其中每一个节点都有下一个节点的地址或引用。
双向链表:节点1⇋节点2⇋节点3⇋节点4⇋节点5 每一个节点都有上一个和下一个节点的地址和引用。
双向链表优点:可以快速找到上/下节点,也可以快速去掉链表中的某一个节点。
传送门——>实现双向链表

  • 2.实现FIFO缓存置换算法

淘汰缓存时,把最先进入链表的结点淘汰掉。
传送门——> 实现FIFO缓存置换算法

  • 3.实现LRU缓存置换算法

传送门——> 实现LRU缓存置换算法

  • 4.实现LFU缓存置换算法

传送门——> 实现LFU缓存置换算法

5. 重要知识点及笔&面试常考题目

传送门——>计算机组成原理试题1
传送门——>计算机组成原理试题2
传送门——>计算机组成原理试题3