【考研】计算机组成原理 第 1 章 计算机系统概述 知识点整理
第 1 章 计算机系统概述
1.1 计算机发展历程
1.1.1 计算机硬件的发展
- 第一代计算机:电子管
- 第二代计算机:晶体管
- 第三代计算机:中小规模集成电路
- 第四代计算机:超大规模集成电路
- 摩尔定律:价格不变时,每隔18个月,晶体管的数目和性能提升一倍。
- 微处理器:8位-16位-32位-64位
- 半导体存储器的发展:容量越来越大。
1.2 计算机系统层次结构
1.2.1 计算机系统的组成
- 硬件系统和软件系统共同构成了一个完整的计算机系统。
- 软(灵活性高)硬(效率高)件在逻辑上是等效的。
1.2.2 计算机硬件的基本组成
-
早期的冯 · 诺依曼机
- 硬件系统:运算器、存储器、控制器、输入设备、输出设备
- 指令和数据以同等地位存储在存储器中,并可按地址寻访。
- 指令和数据均用二进制代码表示。
- 指令由操作码和地址码组成。
- 指令在存储器内按顺序存放。
-
早期的冯 · 诺依曼机以运算器为中心,输入/输出设备通过运算器与存储器传送数据。
-
现代计算机的组织结构
-
以存储器为中心,I/O操作尽可能绕过CPU。
-
以存储器为中心,I/O操作尽可能绕过CPU。
-
计算机的功能部件
- 输入设备:键盘、鼠标、网卡、扫描仪等。
- 输出设备:显示器、声卡、网卡、打印机等。
-
存储器:
- 分为主存(内存)和辅存(外存)。
- 主存按存储单元的地址进行存取,称为按地址存取方式。存储体包括许多存储单元,一个存储单元包括许多存储元件,一个存储元件存储一个1或0。
- MAR(存储器地址寄存器)和MDR(存储器数据寄存器)也是存储器的一部分,但是在现代CPU中是存在于CPU中的。MAR用于寻址,其位数反映存储单元的个数,长度与PC的长度相等。MDR的位数和存储字长相等,一般是字节的二次幂的整数倍。
- 存储字:存储单元中二进制代码的组合。
- 存储字长:存储单元中二进制代码的位数。
-
运算器:计算机的执行部件,完成算术运算和逻辑运算。核心是算数逻辑单元(ALU)。运算器中的寄存器:累加器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、程序状态寄存器(PSW)(前四个必有)、变址寄存器(IX)、基址寄存器(BR)。
-
控制器:
- 由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成。
- PC存放当前欲执行指令的地址,可以自动加1,与MAR之间有一条直接通路。
- IR存放当前欲执行指令,内容来自MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(ID)送往MAR,用以取操作数
-
例:取数指令:
-
例:存数指令:
-
现代计算机硬件框图:运算器和控制器集成到一起,成为CPU,CPU和主存共同构成主机,除主机外的其他硬件统称为外部设备(主要包括外存和I/O设备)。
1.2.3 计算机软件的分类
- 系统软件(操作系统、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件、标准程序库、服务程序(诊断程序、调试程序、连接程序)等)和应用软件
- 机器语言 汇编语言 高级语言
1.2.5 计算机系统的多级层次结构
透明性:本来存在的事物或属性,从某个角度去看,却好像不存在。IR、MDR、MAR对各类程序员都是透明的。
1.3 计算机的性能指标
1.3.1 计算机的主要性能指标
- 机器字长:计算机进行一次能处理的二进制数据的位数,由寄存器、加法器的位数决定,一般等于内部寄存器的位数。
- 总线宽度:数据总线一次能并行传送的信息的位数,一般指运算器与存储器之间的数据总线的位数。有些计算机内部与外部数据总线宽度不一致。
- 主存容量:主存储器所能存储信息的最大容量。MAR的位数反映可寻址范围的最大值(而不一定是存储器的实际存储容量)。
- 存储带宽:指单位时间内与主存交换的二进制信息量,常用单位B/s(字节/秒)。(影响存储带宽的指标包括数据位宽和数据传输速率)。
-
运算速度:
- 吞吐量:系统在单位时间内处理请求的数量,主要取决于主存的存取周期。
- 响应时间:用户向计算机发送一个请求,到系统对该请求作出响应并获得所需结果的等待时间。通常包括CPU执行时间与等待时间(用于磁盘访问、存储器访问、I/O操作、操作系统开销等时间)。
- CPU时钟周期:通常称为节拍脉冲或T周期,即主频的倒数,它是CPU中最小的时间单位,每个动作至少需要1个时钟周期,相当于Time Per Clock cycle。
- 主频(CPU时钟频率):相当于Clock cycle Per Time。
- CPI(Clock cycle Per Instruction):执行一条指令所需的时钟周期数。
- IPC
- CPU执行时间:运行一个程序所花费的时间。CPU执行时间=时钟周期数/主频=(指令条数×CPI)/主频。
- MIPS:每秒执行百万条指令数。MIPS=指令条数/(执行时间×10^6)=主频/(CPI×10^6)。
- MFLOPS:每秒执行百万次浮点运算数。
- GFLOPS:十亿次。
- TFLOPS:万亿次。