计算机组成原理之组成篇
前言
依赖于慕课网老师的讲解进行了简述,推荐观看视频去解析,这里只是列出了自己觉得需要掌握的知识点,此外对于第三章计算机的CPU很重要,此处没有详细介绍,只是做了截图简述。
一、计算机的总线与IO设备
1.1 计算机的总线
1.1.1 总线概述
概述:
- 提供了对外连接的接口
- 不同的设备通过USB接口进行连接(举例说明)
- 提供了连接的标准,促使外围设备的统一(如果不统一,假设鼠标键盘等都是独立的接口,电脑的设计也得多难看和庞大)
作用:为了解决不同设备之间的通信问题
如果没有总线的出现:分散连接
分散连接:依托于冯诺依曼体系,假设没有总线的存在,每个输入设备与组件的相连都需要开辟新的连接,如下
如何解决分散连接问题:使用总线连接 = 统一标准,容易拓展
1.1.1.1 总线分类
- 片内总线
- 系统总线
片内总线
概念:高集成度芯片内部的信息传输线(大大简化芯片内部的电路结构)
- 芯片内部的总线
- 寄存器与寄存器之间
- 寄存器与控制器、运算器之间
系统总线:CPU、主内存、IO设备、各组件间的信息传输总线
- 数据总线
- 地址总线
- 控制总线
数据总线
如果数据总线是32位,那么一次只能传输32位即4个字节的数据
地址总线
控制总线
1.1.2 总线的仲裁
1.1.2.1 为什么需要总线的仲裁
场景:假设主存需要和硬盘和IO设备交换数据,那么主存此时是由硬盘使用还是IO设备使用?
解决:需要第三方的仲裁器进行仲裁,解决不同设备之间的冲突,
目的:解决不同设备之间使用总线的优先级顺序的设备
1.1.2.2 总线的仲裁方法
- 链式查询
- 计时器定时查询
- 独立请求
(1)链式查询
场景:假设设备2想要使用总线,会向仲裁控制器发起使用总线的请求,仲裁控制器收到请求之后,发起允许使用的信号,信号会经过链式经过设备1,如果设备1不使用就会允许设备2使用,假设设备1和设备2都发起了使用总线的请求,此时设备1会优先获得使用权.
好处:电路复杂度低,仲裁方式简单
坏处:优先级低的设备难以获得总线使用权,对电路故障比较敏感(串联电路)
(2)计时器定时查询
与链式查询区别:
仲裁控制器与设备之间都是单独连接的
(3)独立请求
1.2 计算机的输入输出设备
1.2.1 常见的输入输出设备
分类:
- 字符输入设备
- 图像输入设备
字符输入设备细分(键盘分类):
- 薄膜键盘
- 机械键盘
- 电容键盘
此处多哔哔几句:对于机械键盘的选择可以根据段落感和声音以及压力、键程进行选择,我使用的是青轴感觉还阔以。
图像输入设备分类
- 鼠标
- 数位板
- 扫描仪(将图形信息转换为数字信号)
图像输出设备:
- 显示器
- 打印机
- 投影仪
1.2.2 输入输出接口的通用设计
设计要素:
- 读取设备的数据
- 向设备发送数据
- 接口需要判断设备有无被占用
- 接口需要判断设备是否启动成功
- 成功之后判断设备是否已连接
衍生品:
1.2.3 CPU与IO设备的通信方法
前言:CPU速度是与IO设备不一致的
- 程序中断
- DMA(直接存储器访问)
举例:打印机和CPU交互过程
主要作用
如果频繁的打断CPU,会导致程序效率降低。
提升:不需要打断CPU的使用,提高了CPU的效率
二、计算机的存储器
2.1 计算机的存储器概览
2.1.1 存储器的分类
2.1.2 存储器的层次结构
前言:CPU速度是与IO设备不一致的
缓存:CPU中的寄存器
主存:计算机内存
辅存:硬盘等
使CPU尽可能的去访问缓存,提高CPU利用率
局部性原理:
主存-辅存层次
假设,我们需要运行巫师,因为有局部性游戏,可以把需要正在使用的游戏数据存储到主存,对一些不使用的数据存储在辅存
2.2 计算机的主存储器(内存)和辅助存储器(磁盘)
前言:这一节很重要,因为在开发中遇到的例如Redis基于内存的数据库如何持久化,以及为什么需要持久化在该章都能得到解答。
Q:为什么计算机断电,内存数据会丢失?磁盘数据不会丢失
主存储器-内存
- RAM的存储方式(随机存取存储器:Random Access Memory)
- 基于RAM,而RAM是通过电容进行存储数据的,必须每隔一段时间刷新一次
- 如果掉电,那么一段时间后将丢失所有数据
主存储器示意图:
其中,内存与操作系统也有关系(依托于地址总线限制)
对于32位系统,最多只能支持2^32 即4GB
对于64位系统,最多可以支持2^64 相当大了
辅助存储器
算法
2.3 计算机的高速存储器
2.3.1 高速缓存的工作原理
2.3.2 高速缓存的替换策略
三、计算机的CPU
3.1 计算机的指令系统
3.2 计算机的控制器
作用:协调计算机运行