计组笔记:第一章-绪论
学时:78+20+1周
学分:5.5
类型:必修
参考书-教材:计算机组成与系统结构(十二五·第二版)、计算机组成原理(王闵,电子工业出版社,2001),计算机系统结构(李学干,西电,2001),深入理解计算机系统(机械工业出版社)
考核:期末考试,期中考试(>40课时)-80%、作业,测验,出勤-10%、实验(5个)-10%
动机:不是专业基础课,但是有助于对计算机的理解和问题解决
要求:做笔记,纸质优先
![[Pasted image 20221219100518.png]]
计算机硬件基本组成
计算机的物理硬件有很多,不过可以大致划分为几类。作为现代计算机原型的冯诺依曼机,其结构可作如下划分:
输入设备 可以是磁盘,键盘,摄像头等设备
控制器
运算器 负责进行运算
存储器 包含寄存器等
输出设备 可以是网卡等I/O设备
也可以说是三部分:中央处理器,存储器,I/O
计算机中的数据流动
计算机的最主要用途是数据处理(借助运算器)。处理结果发送到输出设备。数据流向是从输入设备到运算器再到输出设备。在这过程中,可能会借助存储器(CPU存储空间不太大),因此运算器和存储器有交换。数据还会从运算器到控制器。这就是数据流。
对应的还有控制流。控制器控制输入设备,运算器,存储器,输出设备。它控制硬件协调方式。
还有指令流的说法。指令从存储器到指令,控制器对其解析并执行。
冯式架构计算机特点
- 内部进行二进制运算 无论数值数据是什么类型都会以二进制模式处理。非数值数据也会以二进制模式存储。指令在编译之后也会变成二进制文件,供控制器解析执行
- 存储程序 控制程序会预先存储在控制器中供后续执行
- 程序控制 计算机由程序控制运行
早期计算机并非如此。比如以前的进制有十进制的,也有手动控制的计算机,有些计算机的程序是以硬件固定表示的。但是现在的计算机已经由以前的专用机进化成为如今的冯诺依曼通用机。
后续的讲解会按照冯式机的结构展开。上面的冯式机结构是经过一定抽象的,下面是PC机的结构。
总线挂载内存,处理器,I/O。总线包含三种线:控制线(传输控制指令,比如读写等),数据线(传输数据),地址线(传输地址)。
内存中的东西是一段一段存储的。每个最小单元大小是字节,若干字节构成一个段。段有指令段,数据段等。
以计算1+2为例,CPU向内存发送x地址和读取指令,内存将值发送给CPU(取址);对于y执行同样操作。然后,CPU计算1+2(执行),再将结果和地址还有写指令发送给内存,内存完成写入(写回)。
以前的PC机是南北桥结构。北桥链接高速设备(CPU,内存,显卡等),南桥链接低速设备(I/O,外接设备等)。相对于CPU寄存器而言,内存速度低几个数量级,因而在CPU内设Cache,映射内存中最常用区域。命中率越高处理器使用率越高。Cache目前按照速度递减空间递增分为L1,L2,L3。内存不够时,也可以把硬盘的一部分作为虚拟的内存使用,这软件实现类似上面硬件实现的Cache。
计算机层次结构
自上而下可以分为这么几层
- 高级语言(应用层)(程序设计语言)
- 汇编语言(一种助记符)(微机原理)
- 机器语言(二进制码)
- 硬件结构
- 逻辑电路(构成硬件结构)(数电+模电)
计组的讲解范围是机器语言和硬件结构。操作系统在汇编语言和机器语言之间。编译原理在前三层间。
机器语言和硬件结构之间有指令集(ISA)。一般有Intel X86,ARM等。
计算机分类和性能描述
计算机分类法
传统分类有按体积分类,现在已经不用;另一种是按照用途分为通用机和嵌入式计算机。前者包含
- 个人计算机
- 服务器
- 超级计算机
后者应用广泛。
更常用的是Flynn分类法:根据三种数据流分类。有
- 单指令流单数据流(SISD)
- SIMD
- MISD:无现实例子
- MIMD
计算机性能描述
- 性能指标 MIPS(百万指令数每秒)等
- 测试程序
- Amdahl定律 升级硬件后,系统的加速比和这硬件的使用频率/使用时间占比有关,所谓好钢用在刀刃上。
加速比定义:
$$
S_p=\frac{T_\text{改进前}}{T_\text{改进后}}
$$
计算时用下式:
$$
S_p=\frac{1}{(1-f)+\frac{f}{s}}
$$
f是改进的部分占比,s是这硬件提升的倍数。若f取40%,对s取极限可以得到极限整体提升为1.66。因此可以得到结论:部分系统优化若趋近于极限,则边际效应递减。此外,f越大,整体提升越大。正所谓“抓住主要矛盾”。
计算机发展史
- 早期工作
- Charles Babbage:
- 差分机,分析机
- 内存、打孔卡片、CPU
- George Boole:
- 布尔代数:0 1
- Claude Shannon:
- Switching theory 开关理论
- Charles Babbage:
- 第一代电子计算机
- ABC,1942
- 最早的电子计算机
- 真空管,280
- ABC,1942