1 计算机发展历程
1.1 计算机硬件的发展
- 发展历程
- 第一代:电子管
- 第二代:晶体管
- 第三代:中小规模集成电路
- 第四代:超大规模集成电路
- 计算机元件的更新换代
- 摩尔定律:当价格不变时,集成电路上可容纳的晶体管数目,约每隔 18 个月便会增加一倍,性能也将提升一倍
- 半导体存储期的发展:单芯片 1KB 到现在的 GB 级
- 微处理器的发展:8 位到现在的 64 位(机器字长)
1.2 计算机软件的发展
1)三个级别的语言
机器语言 -> 汇编语言 -> 高级语言
- 机器语言:面向机器。二进制代码语言,计算机唯一可以直接识别和执行的语言
- 汇编语言:面向机器。用英文单词或其缩写代替二进制的指令码
- 高级语言:面向问题。Java、C++ 等
2)语言关系
将高级程序语言翻译成机器语言的程序称为翻译程序,翻译程序有两种
- 编译:将“高级语言”一次性翻译为“机器语言”,再执行
- 解释:将“高级语言”按句翻译为“机器语言”,每翻译一句,执行一句
- 汇编:将“汇编语言”翻译为“机器语言”
2 计算机系统层次结构
2.1 计算机系统的基本组成
计算机系统由硬件与软件两大部分组成。
对某一功能来说,既可以用硬件实现,也可以用软件实现,则称为软硬件在逻辑上是等效的。等效不是等价的,需要注意区别。
通常来说,一个功能若使用较为频繁且用硬件实现的成本较为理想,则使用硬件解决可以提高效率,而用软件实现可以提高灵活性,但效率往往不如硬件实现高
1)冯诺依曼机
1945年冯诺依曼提出了"存储程序"的概念,冯诺依曼机特点:
- 计算机由存储器,运算器,控制器,输入设备与输出设备,五大部件组成
- 指令与数据以“同等地位”存放在存储器内,按地址寻访
- 指令与数据均按二进制数表示。CPU 可以根据指令周期的不同阶段来区分是指令还是数据
- 指令由“操作码”与“地址码”组成。操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置
- 指令在存储器内“按顺序存放”
- 计算机以“运算器”为中心,输入设备与输出设备的数据传送通过运算器来完成
2)现代计算机
以存储器为中心,使 I/O 操作尽可能地绕过 CPU ,直接在 I/O 设备和存储器之间完成,以提高系统的整体运行效率
2.2 计算机硬件的基本组成
计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备 5 大部件组成
- 输入设备:将信息转换成机器能识别的形式
- 输出设备:将结果转换成人们熟悉的形式
- 存储器:用来存放程序和数据
- 主存储器(内存):CPU 能够直接访问
- 存储体:存放二进制信息
- 地址寄存器(MAR)
- 存放访存地址,经过地址译码后找到所选的存储单元
- 由于其用于寻址,所以其位数对应着存储单元的个数,与 PC 位数相等
- 数据寄存器(MDR)
- 主存和其他部件的中介机构,用于暂存要从存储器读或写的信息
- MDR 的位数和存储字长相等,一般为字节的二次幂倍
- 时序控制逻辑:产生存储器操作所需的时序信号
- 辅助存储器(外存):存储的信息必须调入主存,CPU 才能访问
- 主存储器(内存):CPU 能够直接访问
- 运算器:完成算术运算和逻辑运算
- ALU(算数逻辑单元)是核心
- 还有若干通用寄存器:ACC(累加器)、MQ(乘商寄存器)、X(操作数寄存器)、IX(变址寄存器)、BR(基址寄存器)
- PSW(程序状态寄存器)
- 控制器:指挥各部件自动协调地进行工作
- PC(程序计数器):用来存放当前欲执行指令的地址,可以自动加一以形成下一条指令的地址,它与主存的 MAR 之间有一条直接通路
- IR(指令寄存器):用来存放当前的指令,其内容来自主存的 MDR
- CU(控制单元)
主机包含 CPU 和主存,其他的硬件装置统称外设,主要为外存和 I/O 设备
另外,现代计算机的 CPU 通常还集成了 Cache、 MAR、MDR ,而不是在主存里
2.3 计算机软件的分类
1)系统软件
用来管理整个计算机系统
- 操作系统
- 数据库管理系统:数据库管理系统(DBMS)与数据库系统(DBS)是有区别的。
- 语言处理程序
- 分布式软件系统
- 网络软件系统
- 标准库程序
- 服务性程序
2)应用软件
按任务需要编制成的各种程序
2.4 计算机的工作过程
- 把程序和数据装入到主存储器中
- 从程序的起始地址运行程序
- 用程序的首地址从存储器中取出第一条指令,经过译码、执行步骤等控制计算机各功能部件协同运行,完成这条指令功能,并计算下一条指令的地址
- 同新得到的指令地址继续读出第二条指令并执行,知道程序结束;每条指令都是在取指、译码和执行的循环过程中完成的
以取数指令为例
- 取指令:PC -> MAR -> M -> MDR ->IR
- 分析指令:OP(IR)-> CU
- 执行指令:Ad(IR)-> MAR -> M -> MDR -> ACC
- 下一条指令:(PC)+1 -> PC
2.5 计算机系统的多级层次结构
- 软件
- 虚拟机器 M4(高级语言):用编译程序翻译成汇编语言程序
- 虚拟机器 M3(汇编语言):用汇编程序翻译成机器语言程序
- 虚拟机器 M2(操作系统):用机器语言解释操作系统
- 硬件
- 实际机器 M1(机器语言):用微指令解释机器指令
- 微程序机器 M0(微指令系统):由硬件直接执行微指令
3 计算机性能指标
3.1 计算机的主要性能指标
- 机器字长:计算机进行一次整数运算所能处理的二进制数据的位数
- 数据通路带宽:数据总线一次所能并行传送信息的位数
- 主存容量:主存储器所能存储信息的最大容量
- 运算速度
- 吞吐量:系统在单位时间内处理请求的数量
- 响应时间:从用户向计算机发送一个请求,到系统对该请求做出响应并获得所需结果的等待时间
- 时钟周期:节拍脉冲或 T 周期,CPU 中最小的时间单位
- 主频:机器内部主时钟的频率,时钟周期的倒数
- CPI:执行一条指令所需时钟周期数
- MIPS:每秒执行多少百万条指令
- FLOPS:每秒执行多少次浮点运算,分为 MFLOPS(百万)、GFLOPS(十亿)、TFLOPS(万亿)
3.2 几个专业术语
- 透明性:指站在某类用户的角度,感觉不到某个事物或属性的存在,即“看”不到
- 兼容:指计算机软件或硬件的通用性
- 固件:指将程序固定在 ROM 中组成的部件,是一种具有软件特性的硬件
- 系列机:具有基本相同的体系结构,使用相同基本指令系统的多个不同型号的计算机组成一个产品系列
- 软件可移植性:把使用在某个系列机中的软件直接或进行少量修改就能运行在另一个系列计算机的可行性