🔥 创作专栏:《史上最强算法分析》 | 《无味生》 |《史上最强C语言讲解》 | 《史上最强C练习解析》|《史上最强C++讲解》|《史上最强计组》
🏆我的格言:一切只是时间问题。
一、计算机发展历程
- 第一代:电子管时代: 逻辑元件为电子管,耗电量高,体积大。
- 第二代:晶体管时代: 逻辑元件为晶体管,体积比电子管更小,更省电。
- 第三代:中小规模集成电路时代: 采用中小规模集成电路,将晶体管、电容等元器件高密度集成在电路板上。
- 第四代:大规模、超大规模集成电路时代: 采用大规模、超大规模集成电路,计算机更微型、多用途。
- 目前发展趋势: 计算机向更巨型、超高速方向发展。
二、计算机系统的层次结构及工作原理
2.1 计算机系统组成=硬件+软件
2.2 硬件的基本组成
2.2.1 早期的冯诺依曼机
- NIAC与冯诺依曼: 世界上第一台计算机ENIAC需手动接线控制计算,冯诺依曼作为顾问提出改进方案。
- 存储程序概念: 冯诺依曼首次提出,将指令以二进制代码形式输入主存储器,计算机按顺序执行指令,大幅提升计算速度。
- EDVAC: 世界上第一台采用冯诺依曼结构的计算机,实现存储程序概念。
- 硬件组成:
- 输入设备: 将数据和程序转换成二进制形式输入计算机。
- 运算器: 实现算术运算和逻辑运算。
- 存储器: 存放数据和程序指令。
- 输出设备: 将运算结果转换成人类熟悉的形式输出。
- 控制器: 用电信号协调其他部件工作,解析存储器中的程序指令。
- 特点:
- 五大部件: 输入设备、输出设备、存储器、运算器、控制器。
- 指令与数据同等地位: 均以二进制方式存放在存储器中。
- 指令组成: 由操作码和地址码组成。
- 存储程序: 指令和数据提前存储到存储器中。
- 以运算器为中心: 数据传输需经过运算器中转,导致效率降低。
2.2.2 现代的计算机的结构
- 改进方向: 针对冯诺依曼机以运算器为中心导致的效率问题,现代计算机采用以存储器为中心的结构。
- 结构特点:
- 输入设备: 数据直接存入存储器。
- 运算器与控制器集成: 形成CPU,包含运算器和控制器。
- 数据交换: 主存储器与CPU之间交换数据,包括参与运算的数据和指令。
- IO设备: 直接与主存储器进行数据交换。
- 主存与辅存:
- 主存: 即内存,用于存放正在运行的程序和数据。
- 辅存: 如机械硬盘、固态硬盘,用于长期存储数据,属于IO设备。
- CPU与主机:
- CPU: 包含运算器和控制器。
- 主机: 包括CPU和主存储器。
2.2.3 各硬件的工作原理
2.3 计算机软件
2.3.1. 软件分类
1)应用软件
- 举例: 抖音、QQ、美图秀秀、Photoshop、AutoCAD等
2)系统软件
- 举例: 操作系统、数据库管理系统(DBMS)、网络系统软件、语言处理程序、服务程序等。
- 功能: 操作系统为应用软件提供运行环境,数据库管理系统提供数据库服务,网络系统软件支持网络通信,语言处理程序将高级语言翻译成机器语言,服务程序如调试程序辅助软件开发。
2.3.2. 三种级别的语言
- 机器语言: 二进制代码,直接由计算机硬件执行。
- 汇编语言: 采用助记符,便于人类理解,需通过汇编器翻译成机器语言。
- 高级语言:C/C++等
翻译程序
- 第一种:
- 编译程序(编译器): 将高级语言一次性全部翻译为汇编语言或直接翻译为机器语言。
- 汇编程序(汇编器): 将汇编语言翻译成机器语言(c/c++/python)。
- 第二种:
- 解释程序(解释器): 在程序执行时,逐句将高级语言翻译成机器语言并执行(Shell/python)。
区别: 编译程序一次性翻译,生成可执行文件;解释程序逐句翻译,效率较低。
2.3.3. 软件和硬件的逻辑功能等价性
1)实现方式对比
- 硬件实现:
- 示例:通过乘法指令
MUL 985,6,XMUL\ 985,6,XMUL 985,6,X
直接计算 - 特点:需要专用电路,成本高但性能好
- 示例:通过乘法指令
- 软件实现:
- 示例:通过6次加法指令
ADD 985,X,XADD\ 985,X,XADD 985,X,X
模拟乘法 - 特点:无需专用电路,成本低且性能差
- 示例:通过6次加法指令
2)指令集体系结构(ISA)
- 核心作用: 界定软硬件功能边界
- 设计要素:
- 支持的指令类型(如是否包含乘法指令)
- 每条指令的功能定义
- 指令的使用规范
- 设计考量: 需平衡性能与成本的关系