计算机系统概述
# 计算机系统概述
# 计算机的发展历程
# 计算机硬件能识别的数据
- 用低 / 高电平分别表示 0/1
- 低电平(表示二进制 0)
- 高电平(表示二进制 1)
- 计算机硬件唯一能识别的数据 —— 二进制 0/1
# 什么是计算机系统
本章所涉及的内容已从 408 考研大纲删除,简单了解本章内容即可,如是自命题仍需掌握

计算机性能的好坏取决于 “软”、“硬” 件功能的总和

# 硬件的发展






# 微处理器的发展

机器字长:计算机一次整数运算所能处理的二进制位数
- 1947 年,贝尔实验室,发明了 “晶体管”

- 1955 年,肖克利在硅谷创建 肖克利实验室股份有限公司

- 1957 年,八叛徒 (traitorous eight) 创立 仙童半导体公司

- 1959 年,仙童半导体公司发明 “集成电路”
- 1968 年,摩尔等人离开仙童,创立 Intel

- 1969 年,仙童销售部负责人桑德斯离开仙童,创立 AMD
# 摩尔定律
- 摩尔定律:揭示了信息技术进步的速度集成电路上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,整体性能也将提升一倍

半导体存储器的发展

1970 年,仙童公司生产出第一个较大容量的半导体存储器 半导体存储器单芯片容量:1KB、4KB、16KB、64KB、256KB、1MB、4MB、16MB、64MB、256MB、1GB…
# 软件的发展

# 目前的发展趋势
“两极” 分化
- 一极是微型计算机向更微型化、网络化、高性能、多用途方向发展。

- 另一极是巨型机向更巨型化、超高速、并行处理、智能化方向发展。

# 总结

# 计算机系统层次结构
# 早期冯诺依曼机

- “存储程序” 的概念是指将指令以二进制代码的形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束。

在计算机系统中,软件和硬件在逻辑上是等效的。
Eg:对于乘法运算,可以设计一个专门的硬件电路实现乘法运算,也可以用软件的方式,执行多次加法运算来实现
冯・诺依曼计算机的特点:
计算机由五大部件组成
指令和数据以同等地位存于存储器,可按地址寻访
指令和数据用二进制表示
指令由操作码和地址码组成
存储程序
以运算器为中心(输入 / 输出设备与存储器之间的数据传送通过运算器完成)
# 类加工厂
早期冯诺依曼计算机类似于一个加工厂

# 现代计算机的结构
现代计算机:以存储器为中心

CPU = 运算器 + 控制器

# 总结

# 各个硬件的工作原理
# 主存储器的基本组成

- Memory Address Register(存储地址寄存器)
- Memory Data Register(存储数据寄存器)

- 存储单元:每个存储单元存放一串二进制代码
- 存储字 (word):存储单元中二进制代码的组合
- 存储字长:存储单元中二进制代码的位数
- 存储元:即存储二进制的电子元件,每个存储元可存 1bit
例:
- MAR=4 位 → 总共有
个存储单元 - MDR=16 位 → 每个存储单元可存放 16bit,1 个字 (word) = 16bit
易混淆:1 个字节(Byte)= 8bit,1B=1 个字节,1b=1 个 bit
# 运算器的基本组成
运算器:用于实现算术运算(如:加减乘除)、逻辑运算(如:与或非)

- ACC: 累加器,用于存放操作数,或运算结果。
- MQ: 乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
- X: 通用的操作数寄存器,用于存放操作数
- ALU: 算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算

# 控制器的基本组成

- CU(Control Unit):控制单元,分析指令,给出控制信号
- IR (Instruction Register):指令寄存器,存放当前执行的指令
- PC (Program Counter):程序计数器,存放下一条指令地址,有自动加 1 功能

# 计算机的工作过程

实际工作过程

上一条指令取指后 PC 自动 + 1,(PC)=1;执行后,(ACC)=2

上一条指令取指后 (PC)=2,执行后,(ACC)=6

上一条指令取指后 (PC)=3,执行后,(ACC)=7

上一条指令取指后 (PC)=4

CPU 区分指令和数据的依据:指令周期的不同阶段

# 总结

# 计算机软件
# 系统软件和应用软件

- 应用软件是为了解决某个应用领域的问题而编制的程序
- 系统软件负责管理硬件资源,并向上层应用程序提供基础服务
# 三种级别的语言

- 机器语言:二进制代码
- 汇编语言:助记符
- 高级语言:C/C++、Java、Python
编译和解释的区别
- 编译程序:将高级语言编写的源程序全部语句一次全部翻译成机器语言程序,而后再执行机器语言程序(只需翻译一次)
- 解释程序:将源程序的一条语句翻译成对应于机器语言的语句,并立即执行。紧接着再翻译下一句(每次执行都要翻译)
# 软件和硬件的逻辑功能等价性
- 软件和硬件的逻辑功能等价性:同一个功能,既可以用硬件实现(性能高成本高),也可以用软件实现(性能低成本也低)

指令集体系结构 (ISA):软件和硬件之间的界面。设计计算机系统的 ISA,就是要定义一台计算机可以支持哪些指令,以及每条指令的作用是什么、每条指令的用法是什么。
# 总结

# 计算机系统的多级层次结构
# 计算机系统的层次结构

我们编写的程序难免会使用到系统调用

- M4:高级语言机器(执行高级语言)
- M3:汇编语言机器(执行汇编语言)
- M2:操作系统机器(向上提供广义指令)
- MI:传统机器(执行机器语言指令)
- M0:微程序机器(执行微指令)
# 计算机体系结构 vs 计算机组成原理

- 此处的 “透明”—— 看不见
- 某事 “公开透明”—— 看得见
# 总结

# 计算机性能指标
# 存储器的性能指标

总容量 = 存储单元个数 × 存储字长 bit,1Byte = 8bit = 存储单元个数 × 存储字长 / 8 Byte
Eg:MAR 为 32 位,MDR 为 8 位 总容量 =
n 个二进制位能表示出多少种不同的状态?

# CPU 的性能指标

- CPU 主频:CPU 内数字脉冲信号振荡的频率。

Eg:某 CPU 主频为 1000Hz,某程序包含 100 条指令,平均来看指令的 CPI=3。该程序在该 CPU 上执行需要多久?
- CPU 执行时间(整个程序的耗时)= CPU 时钟周期数 / 主频 =(指令条数 * CPI)/ 主频

# 系统整体的性能指标
数据通路带宽 :数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)

吞吐量 :指系统在单位时间内处理请求的数量。 它取决于信息能多快地输入内存,CPU 能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。
响应时间 :指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。 通常包括 CPU 时间(运行一个程序所花费的时间)与等待时间(用于磁盘访问、存储器访问、I/O 操作、操作系统开销等时间)。
# 动态测试
基准程序是用来测量计算机处理速度的一种实用程序,以便于被测量的计算机性能可以与运行相 同程序的其它计算机性能进行比较。
如我们的跑分软件

# 超级计算机的浮点运算能力

# 思考
Q:主频高的 CPU 一定比主频低的 CPU 快吗? A:不一定,如两个 CPU,A 的主频为 2GHz,平均 CPI=10;B 的主频 1GHz,平均 CPI=1…
Q:若 A、B 两个 CPU 的平均 CPI 相同,那么 A 一定更快吗?
A:也不一定,还要看指令系统,如 A 不支持乘法指令,只能用多次加法实现乘法;而 B 支持乘法指令。
Q:基准程序执行得越快说明机器性能越好吗? A:基准程序中的语句存在频度差异,运行结果也不能完全说明问题
# 总结
