计算机发展历程
计算机硬件的发展
- 计算机四代的变化
- 第一代计算机:电子管时代
- 第二代计算机:晶体管时代
- 第三代计算机:中小规模集成电路时代
- 第四代计算机:超大规模集成电路时代
- 计算机原件的更新换代
- 摩尔定律:每 18 个月,价格不变时,晶体管的数目增加一倍,性能也将提升一倍
- 半导体存储器的发展
- 微处理器的发展:机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数
计算机的分类和发展方向
-
电子计算机可分为:电子模拟计算机和电子数字计算机
-
按照计算机的效率、速度、价格为以及运行的经济性和适应性来划分,数字计算机可分为:专用计算机和通用计算机
- 通用计算机又可分为:巨型机、大型机、中型机、小型机、微型机、单片机
-
按照指令和数据流,计算机可分为:
计算机系统 内容 单指令流和单数据流系统(SISD) 冯诺依曼体系结构 单指令流和多数据流系统(SIMD) 包括阵列处理器和向量处理器系统 多指令流和单数据流系统(MISD) 这是不存在的 多指令流和多数据流系统(MIMD) 包括多处理器和多计算机系统 -
计算机的发展趋势的两级分化:微型计算机更微型化、更网络化、更高性能;巨型计算机更巨型化、更高速、更智能化
计算机系统层次结构
计算机系统的组成
- 某一种功能既可以用软件实现,又可以用硬件实现,称之为软硬件在逻辑上等效的
- 用硬件实现的效率高,但成本可能较高,而用软件实现灵活性高,但效率不如硬件
计算机硬件的基本组成
- 冯诺依曼机的特点
- 由运算器、存储器、控制器、输入设备、输出设备组成,且由运算器为中心,输入输出设备通过运算器与存储器传送数据
- 指令与数据都用二进制代码表示,二者以同等低位存储在存储器中,可按地址寻访
- 指令由操作码和地址码组成,操作码指出操作的类型,地址码指出操作数的地址
- 指令在存储器内按顺序存放,通常指令是顺序执行的,但在特定条件下可根据运算结果或者根据设定的条件改变执行顺序
- 存储程序:将指令以代码的形式事先输入计算机的主存储器,然后按照指令在存储器中的首地址执行程序的第一条指令,之后就按程序的规定顺序执行其他指令,直到程序执行结束
- 现代计算机的组织结构
- 现代计算机以存储器为中心
- 冯诺依曼机与现代计算机的结构虽然不同,但功能部件是一致的
- 各功能部件
- 输入设备:如键盘、鼠标、扫描仪、摄像机
- 输出设备:如显示器、打印机
- 存储器
- 用来存放程序和数据
- 分为主存储器(简称主存,也叫内存储器)和辅助存储器(简称辅存,也叫外存储器),CPU 直接访问的存储器是主存储器,辅助存储器中的信息必须先调入到主存储器后,才能被 CPU 访问,
- 主存储器是按存储单元的地址进行存取的,即按地址存取(相联存储器是按内容访问的)
- 时序控制逻辑用于产生存储器操作所需的各种时序信号,存储器的时序控制逻辑是:地址寄存器 → 存储体 → 数据寄存器
- 地址寄存器(MAR):存放访存地址,经过地址译码之后找到所选的存储单元,用于寻址,MAR 的位数对应存储单元的个数,比如,MAR 为 10 位,则有 2^10=1024 个存储单元,即 1K 个存储单元,MAR 的长度与 PC 的长度相等
- 存储体存放二进制信息
- 数据寄存器(MDR):暂存要从存储器中读或写的信息,MDR 的位数与存储字长相等,一般是字节的二次幂的整数倍
- 注意,MAR 与 MDR 虽然是存储器中的,但在现代 CPU 中却是存在于 CPU 中的,之后要学到的高速缓存(cache)也是存在于 CPU 中
- 主存储器由许多存储单元组成,每个存储单元包含若干存储元件,每个存储元件存储一位二进制代码 “0” 或 “1”,所以,每个存储元件可存储一串二进制代码,这串二进制代码称为存储字,这串代码的位数称为存储字长,存储字长可以是 1 B(8 bit)或者是字节的偶数倍
- 运算器
- 主要用于算术运算和逻辑运算,算术运算是按算术规则进行的运算,比如加、减、乘、除,逻辑运算包括与、或、非、异或、比较、移位
- 运算器的核心是算术逻辑单元(ALU),运算器包括许多通用寄存器,用于暂存操作数和中间结果,比如累加寄存器(ACC)、乘商寄存器(MQ)、操作数寄存器(X)、变址寄存器(IX)、基址寄存器(BR),其中,ACC、MQ、X 这三个寄存器是必备的
- 运算器内还有程序状态字寄存器(PSW),也称标志寄存器,用于存放 ALU 运算得到的一些标志信息或者处理机的状态信息,比如结果是否溢出、有无进位或错位、结果是否负
- 控制器
- 控制器负责指挥各个部件协调工作,控制器由程序计数器(PC)、指令寄存器(IR)、控制单元(CU)组成
- PC 用来存放当前欲执行指令的地址,可以自动加 1 来形成下一条指令的地址,它与主存的 MAR 之间有一条直接通路
- IR 用来存放当前的指令,IR 的内容主要来自主存的 MDR,指令的操作码 OP(IR) 送到 CU 中,用来分析指令并且发出各种微操作命令序列,而地址码 Ad(IR) 送到 MAR,用来取操作数
- 功能部件总结
- 中央处理器 CPU 集成了运算器和控制器
- CPU 和主存储器共同构成了主机,除主机之外的其他硬件装置(如外存、I/O 设备)统称为外部设备,简称外设
- CPU 包含 ALU、通用寄存器组 GPRs、标志寄存器、控制器、指令寄存器 IR、程序计数器 PC、存储器地址寄存器 MAR、存储器数据寄存器 MAR
- CPU 与 主存用一组总线相连,总线中分为地址总线、控制总线、数据总线 3 种
- 地址总线:地址总线上有MAR 中的地址信息,用于指向读/写操作的主存存储单元
- 控制总线:控制总线上有读/写信号线,指出数据是从 CPU 写入主存还是从主存写入 CPU,然后,根据读/写操作来控制将 MDR 中的数据是直接送到数据线上还是将数据线上的数据接收到 MDR 中

计算机软件的分类
-
按照功能分类,可分为系统软件和应用软件
- 系统软件:是计算机的基础软件,如操作系统(OS)、数据库管理系统(DBMS)、语言处理程序、分布式软件系统、网络软件系统、标准库程序、服务性程序、汇编程序,注意,数据库管理系统(DBMS)是系统软件,而数据库系统(DMS)是应用软件
- 应用软件:是为解决具体问题的程序,如各种科学计算类程序、工程设计类程序
-
三个级别的语言
语言 作用 机器语言 二进制代码语言,是计算机唯一可直接识别和执行的语言 汇编语言 要经过汇编程序这个系统软件翻译之后才能执行 高级语言 要经过编译程序编译成汇编语言,然后在经过汇编操作得到机器语言程序
或经过高级语言程序直接翻译成机器语言程序
计算机的工作过程
- 计算机的工作过程大致分为三个步骤
- 把程序和数据装入主存储器
- 将源程序转换成可执行文件
- 从可执行文件的首地址开始逐条执行指令
- 从源程序到可执行文件
- 指令执行过程的描述(下面以取数指令为例,描述将指令地址码指示的存储单元中的操作数取出之后送到运算器的 ACC 中的过程)
- 取指令:PC → MAR → M → MDR → IR
- 根据 PC 取指令到 IR
- 分析指令:OP(IR) → CU
- 指令译码并送出控制信号
- 执行指令:Ad(IR) → MAR → M → MDR → ACC
- 取数操作
- 注意,(PC) 指程序计数器 PC 中存放的内容,PC → MAR 应该理解为 (PC) → MAR
- 取指令:PC → MAR → M → MDR → IR
计算机系统的多级层次结构
- 没有配置软件的纯硬件称为“裸机”
- 从下到上依次为
- 微程序机器层(微指令系统)
- 传统机器语言层(微程序解释机器指令系统)
- 操作系统层
- 汇编语言层
- 高级语言层
计算机的性能指标
计算机的主要性能指标
- 机器字长
- 机器字长是指计算机进行一次整数运算所能处理的二进制数据的位数,通常与 CPU 的寄存器位数、加法器有关
- 机器字长一般等于内部寄存器的大小,字长越长,数的表示范围越大,计算精度越高
- 计算机字长通常选定为字节的整数倍,也就是 8 位的整数倍
- 数据通路带宽
- 数据通路带宽是指数据总线一次所能并行传送信息的位数
- 这里的数据通路带宽是指外部数据总线的宽度,它与 CPU 内部的数据总线宽度(内部寄存器的大小)是有可能不同
- 各个子系统通过数据总线连接形成的数据传送路径称为数据通路
- 主存容量
- 主存容量是指主存储器所能存储信息的最大容量,可用字节表示,也可用“字数×字长”来表示
- 用“字数×字长”来表示时,MAR 的位数表示存储单元的个数,MDR 的位数表示可寻址范围的最大值(这不一定是主存储器的实际存储容量),例如,对于 64×32 位来说,MDR 有 32 位,64K 即为 2^16,所以 MAR 有 16 位
- 运算速度
- 吞吐量:单位时间内能处理请求的数量,主要取决于主存的存取周期
- 响应时间:用户发送请求之后直到系统对请求作出响应的等待时间,包括 CPU 时间(运行程序所花时间)与等待时间(磁盘访问、I/O 操作等)
- 时钟频率(主频):主频越高,完成指令所需时间越短,1HZ 表示每秒 1 次
- 时钟周期:主频的倒数,是 CPU 的最小时间单位,执行指令的每个动作都至少需要 1 个时钟周期
- CPI:执行一条指令所需要的时时钟周期数,CPI 通常取所有指令执行所需的平均时钟周期数
- CPU 执行时间:指运行一个程序所花的时间,CPU 执行时间 = CPU 时钟周期数 / 主频 = (指令条数 * CPI)/主频,所以,CPU 的性能主要取决于:主频、CPI、指令条数
- MIPS:每秒执行多少百万条指令,MIPS = 指令条数/(执行时间 * 10^6)= 主频 /(CPI * 10^6)
本章小结
- 运算器和控制器通常集成到一起,称为中央处理器
- CPU 的运算速度要看 CPU 在各方面的性能指标,主频并不能直接代表速度,甚至有主频高而 CPU 实际运算速度低的情况
- 逻辑功能上,软件和硬件是等效的,许多功能既可以用硬件直接实现,也可以用软件实现
- 翻译程序是把高级语言源程序翻译成机器语言程序(目标代码)的软件,翻译程序包括编译程序和解释程序
- 编译程序:将源程序一次性全部翻译成目标程序,只要源程序不变,就不需要重新翻译
- 解释程序:将源程序的语句一条一条地翻译,翻译一次执行一次,再继续翻译与执行,直至源程序所有代码被翻译并执行完,解释过程中不会生成目标程序
- 汇编程序是专门把汇编语言翻译成机器语言的程序,也就是说,汇编程序和翻译程序的区别是源程序与目的程序,若源程序是高级语言,目标程序是汇编语言或机器语言这种低级语言,则需要翻译程序,若源程序是汇编语言,目标程序是机器语言,则需要汇编程序
- “透明”指的是看不见事物或属性,注意是“看不见”
- 机器字长指计算机直接处理的二进制数据的位数,指令字长值一个指令字中包含的二进制代码的位数,存储字长指一个存储单元中二进制代码的长度,三者都必须是字节的整数倍。指令字长一般取存储字长的整数倍,例如,若指令字长为存储字长的 2 倍,则需要两次访存才能取出 1 条指令,那么取指周期也是机器周期的 2 倍