目录
1. 计算机系统基础知识
1.1 计算机系统硬件基本组成
由运算器、控制器、存储器、输入设备、输出设备五大部件组成。
运算器、控制器等部件集成在一起统称为CPU。CPU是核心,加工处理数据,进行算数、逻辑运算及控制功能。
存储器分为内部存储器和外部存储器。
1.2 中央处理单元(CPU)
硬件核心,负责获取程序指令,对指令进行译码加以执行。
1.2.1 CPU功能
- 程序控制:通过指令来控制程序执行顺序。
- 操作控制:一条指令需要若干操作信号配合完成,CPU将每条操作信号传到对应部件,控制部件进行操作。
- 时间控制
- 数据处理:CPU最根本的任务。
- 中断处理:对系统内部和外部(异常)中断做出响应。
1.2.2 CPU组成
由ALU(算术逻辑单元)、CU(控制器)、寄存器(PC、IR、PSW、DR、通用寄存器等)以及中断系统组成。
(1)运算器
运算器由ALU、累加寄存器(AC)、数据缓存寄存器(DR)和状态条件寄存器(PSW)组成。
接受控制器的指令,执行指令。
执行算数运算,执行逻辑运算。
- AC:通用寄存器,为ALU提供工作区,ALU至少要有一个AC.。
- DR:对内存储器进行读写操作时,用DR暂时存放数据。作为CPU和内存、外设之间的中转站,速度缓冲。
- PSW:反应CPU运算的状态并存放某些控制标记。包括CF(进位标志)、ZF(零标志)、SF(符号标志)、OF(溢出标志)、PF(奇偶标志)、IF(中断标志)、DF(方向标志)。
(2)控制器
控制整个CPU工作。保证程序正确执行,处理中断。一般包括指令控制逻辑,时序控制逻辑,总线控制逻辑和中断控制逻辑。
- 指令控制逻辑:取指令、指令译码、按指令操作码执行、形成下一条指令地址等。
- 时序控制逻辑:为每条指令按时间顺序提供控制信号。
- 总线控制逻辑:与其他部件传递信号通路。
- 中断控制逻辑:控制各种中断请求,按优先级排序,逐个交给CPU处理。
特殊寄存器功能
- IR(指令寄存器):CPU执行一条指令时,先从内存->DR(缓存寄存器)->IR暂存。ID(指令译码器)根据IR内容产生各种微指令。
- PC(程序计数器):具有寄存信息和技术功能。在程序开始执行前,将程序的起始地址送入PC。即PC里面的内容是程序第一条指令的地址。执行指令时,CPU修改PC内容为下一条指令的地址。
- AR(地址寄存器):AR保存当前CPU所访问的内存单元的地址。原因就是cpu和内存速度存在差异。
- ID(指令译码器):指令包含操作码和地址码。对操作码进行分析解释,向操作控制器发出具体控制信号。
1.2.3 多核CPU
主要厂商由AMD和Intel。
AMD是将两个内核做在一个晶元上,通过直连架构连接起来,集成度更高。
Intel则是将不同核心的两个内核封装在一起。
1.3 数据表示
1.3.1 正数、负数分类
三种表示方式:原码、反码、补码、移码。
正数的原码、反码、补码相同。
负数:反码是符号位不变,其余位取反。补码是反码加1 。
数值 | 原码 | 反码 | 补码 |
6 | 0 000 0110 | ||
-6 | 1 000 0110 | 1 111 1001 | 1 111 1010 |
移码:补码符号位取反。
1.3.2 定点数、浮点数分类
定点数:小数点位置不变。定点整数(纯整数,小数点在最低有效位之后)和定点小数(纯小数,小数点在最高有效位之前)。
浮点数:小数点位置变化。十进制中83.125可以表示为10^2*0.83125,也可以表示为10^4*0.0083125。同样二进制中,二进制数1001.1101可以表示为2^4*0.10011101、2^5*0.010011101。
一个二进制数N可以表示为N=2^E*F,E为阶码,F为尾数。
浮点数就是用阶码和尾数表示的数。
在IEEE 754标准中,浮点数可以表示为V=(-1)^S x 2^E * (b0b1……bp-1)
单精度中:尾数23位,指数8位,符号位1位,偏移量位127
双精度中:尾数52位,指数11位,符号位1位,偏移量位1023
1.4 校验码
来检测传送的数据是否出错。
常用三种校验码:
- 奇偶校验码
- 海明码
- 循环冗余校验码
2 计算机体系结构
2.1 计算机体系结构发展
2.1.1 概述
- 计算机体系结构:计算机的概念性结构和功能属性。
- 计算机组织原理:计算机体系结构的逻辑实现。
- 计算机实现:物理实现。
2.1.2 分类
(1)按处理机数量分类
- 单处理系统
- 并行处理与多处理系统
- 分布式处理系统
(2)按并行程度分类
- Flynn分类法:按指令流和数据量的多少分类。四种,SISD(单指令流、单数据流)、SIMD(单指令流、多数据流)、MISD(多指令流、单数据流)、MIMD(多指令流、多数据流)。
- 冯泽云分类法。
- Handler分类法。
- Huck分类法。
2.1.3 指令系统
指令集体系结构:一个处理器支持的指令和指令的字节编码。
(1)按暂存机制分类,可以把指令体系结构分为3类:堆栈(Stack)、累加器(Accumulator)、寄存器组(a set of Registers)。
(2)CISC和RISC
- CISC:复杂指令集计算机
- RISC:精简指令集计算机。关键技术有重叠寄存器窗口技术、优化编译技术、超流水及超标量技术、硬布线逻辑与微程序相结合在微程序中。
(3)优化
指令的流水处理三种:
- 顺序方式
- 重叠方式
- 流水方式
RISC中采用的流水线技术有三种:
- 超流水线技术
- 超标量技术
- 超长指令字技术
2.1.4 阵列处理机、并行处理及和多处理机
- 阵列处理机:多个处理单元(PU),一个控制单元(CU),是一种SIMD(单指令流、多数据流)计算机。
- 并行处理机:SIMD和MIMD均是并行处理机。
- 多处理机:是一种MIMD计算机。
- 其他计算机
2.2 存储系统
2.2.1 层次结构
包含多种存储器。CPU通用寄存器组、CPU高速缓存、CPU外部Cache(L2Cache)、主板上的主存,内存,外存。
2.2.2 分类
(1)按位置
- 内存
- 外存
(2)构成材料
- 磁存储器
- 半导体存储器
- 光存储器
(3)工作方式
- 读/写存储器
- 只读存储器:ROM(固定只读)、PROM(可编程只读)、EPROM(可擦除可编程只读)、EEPROM(电擦除可编程只读)、Flash(闪存)
(4)访问方式
- 按地址访问
- 按内容访问
(5)寻址方式
- 随机存储器(RAM)
- 顺序存储器(SAM):磁盘
- 直接存储器(DAM):磁盘
2.2.3 相联存储器
按内容访问的存储器。可用在高速缓存中。
2.2.4 高速缓存
位于CPU和内存之间。
(1)高速缓存中的地址映像方法
CPU工作时,送出的是主存单元的地址,而应存Cache中读/写信息。这就需要将主存地址->Cache地址。
直接映像:主存块与Cache块对应关系是固定的。
全相联映像:均分为大小相同的块。
组相联映像:前面两种方法的折中。
(2)替换算法
目标就是使Cache获得尽可能高的命中率。
- 随机替换算法
- 先进先出算法
- 近期最少使用算法
- 优化替换算法
(3)Cache性能分析
(4)多级Cache
2.2.5 虚拟存储器
使用虚拟地址(由CPU生成)来访问主存,使用专门的MMU将虚拟地址转换成物理地址后访问主存。
2.2.6 外存储器
有光盘,磁盘,硬盘。
2.2.7 磁盘阵列技术
由多台磁盘组成的一个快速、大容量、高可用的外存子系统。常见的有廉价冗余磁盘阵列(RAID)。
2.2.8 存储域网络
应用于分布式存储。
2.3 输入/输出技术
2.3.1 内存与接口地址的编址方式
- 内存与接口地址独立编址
- 内存与接口地址统一编址
2.3.2 方式
(1)直接程序控制:无条件传送和程序查询方法。
(2)中断方式
- 多中断信号线法:每个外设与CPU各有一条信号线。
- 中断软件查询:CPU接到信号后轮询问谁发的。
- 菊花链法:所以外设共享一条信号线,外设发出信号->CPU接受后返回信号->只有此外设能识别。
- 总线仲裁法:发信号之前先获得总线控制权。
- 中断向量表法:每个外设程序的入口地址存在向量表中,外设发出信号->中断控制器收到信号->查向量表,确定谁发的->交给CPU处理。后面还进化出了中断优先级控制,就是谁先急谁先来。
- 直接存储器存取法:直接内存存取(DMA)就是数据在内存和I/O直接直接以块传输。外设向DMAC(DMA控制器)提出DMA请求->DMAC向CPU请求->CPU响应请求,并放弃对总线的控制权->DMAC获得控制器->向外设发出信号->外设接受信号,传送数据->传输完成,DMAC放弃对总线控制权,CPU获得。
- 输入/输出处理机(IOP):又称为通道,就是分担CPU一部分功能,不通过CPU直接与IO设备传输数据。
这相当于I/O外设与CPU传输数据的进化之路。
2.4 总线(BUS)
指计算机设备与设备之间传输信息的公共数据通道。
2.4.1 分类
- 数据总线(DB):传输数据,双向。
- 地址总线(AB):传输CPU发出的信息,单向。
- 控制总线(CB):传输控制信号、时序信号、状态信息。信号是单向且确定的,整体是双向的。
2.4.2 常见总线
- ISA总线:工业标准总线。
- EISA总线:ISA的PRO版本。
- PCI总线:微型机常用。工作与CPU相互独立。PCI总线时钟与CPU时钟独立、非同步。
- PCI-E总线:点对点,每个外设有独立连接。双向传输、全双工、热插拔。
- 前端总线
- RS232C
- SCSI
- SATA:硬盘以前常用。
- USB:当前通用,4条信号线组成,即插即用。
- IEEE-1394:高速串行外总线。
- IEEE-488:并行总线接口标注。
这也算是总线进化之路。