计算机组成原理概述
文章目录
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