1、计算机硬件的基本组成
2、各个硬件的工作原理
3、计算机软件
4、计算机系统的层次结构
5、计算机系统的工作原理
一、计算机硬件基本组成知识框架
1.1 早期冯诺依曼机的结构
1)早期冯诺依曼机的缺陷
ENIAC的缺陷:世界第一台计算机ENIAC需要手动接线控制每一步计算,手工操作耗时严重抵消了运算速度优势。
2)存储程序的概念
冯诺依曼提出了“存储程序”的概念。指将指令以二进制代码的形式事先输入计算机的主存储器(内存),然后按其在存储器中的首地址执行程序的第一条指令,以后就按该程序的规定顺序执行其他指令,直至程序执行结束
注意:说的是主存储器不是存储器!存储器包括主存(内存)和辅存(固态硬盘),前者属于主机,后者则属于I/O设备。像我们平时手机里的APP就是存放在辅存里面的,只有需要启动运行的时候才会把辅存里面的APP相关程序代码数据读到主存里面
1.2 冯诺依曼机示意图
下图就是一个冯诺依曼机的示意图
控制器会利用电信号来协调其他部件相互配合的工作,也负责解析存储器里所存储的程序指令
- 五大部件:
- 输入设备:将数据和程序转换为二进制形式(如键盘)
- 运算器:执行算术运算(+−×÷)和逻辑运算(与或非)
- 存储器:存放待处理数据和程序指令(即内存)
- 控制器:解析指令并协调各部件工作(如读取加法指令后指挥运算器执行)
- 输出设备:将结果转换为人可读形式(如显示器)
实线箭头表示数据线(如输入→运算器→存储器)
虚线箭头表示控制线/反馈线(如控制器→运算器)
软硬件等效性:同一功能既可用软件(低成本低效)也可用硬件(高效高成本)实现,例如乘法可用专用电路或多次加法模拟。
1.3 冯诺依曼计算机的特点:
- 计算机硬件系统由五大部件组成(运算器、控制器、存储器、输入设备、输出设备)
- 指令和数据以同等地位存于存储器,可按地址寻访,但计算机应能区分它们
- 二进制存储:由操作码(如加减乘除)和地址码(数据存储位置)组成
- 采用“存储程序”的工作方式,控制流驱动方式
- 存储程序:提前存储指令和数据实现自动化执行(将事先编制好的程序和原始数据送入主存储器后才能执行,一旦程序被启动执行,就无须操作人员干预,计算机会自动逐条执行指令,直至程序执行结束)
- 以运算器为中心(输入/输出设备与存储器之间的数据传送通过运算器完成)
所有数据传输需经运算器中转(导致效率瓶颈)
1.4 冯诺依曼机低效场景
低效场景:原材料(数据)必须经加工部门(运算器)中转才能入库(存储器),类比传统冯诺依曼结构的数据传输瓶颈。
1.5 现代计算机的结构
现代计算机以存储器为中心
我们常说的CPU=运算器+控制器,所以也可以上图的结构框图简化一下为下图
注意这里的主机和我们平常生活中说的主机是有区别的。平常说的主机除了有CPU和主存储器之外,还有硬盘,风扇之类。
1.6 总结
二、各个硬件的工作原理
2.1 硬件知识总览
核心架构: 基于冯诺依曼结构设计,包含运算器、输入设备、主存储器、控制器、输出设备五大硬件部件
学习重点: 主机内部三大部件(主存储器、运算器、控制器)的细节及协作机制
2.2 主存储器的基本组成
- 存储体: 由存储元件构成的二进制数据存储区域,可存放0或1
- MAR (Memory Address Register): 存储地址寄存器,存放待访问数据的地址信息
- MDR (Memory Data Register): 存储数据寄存器,暂存读取/写入的数据内容
- 寄存器本质: 特殊的高速存储单元,用于临时存放二进制数据
- 存储体↔货架: 存储体存放二进制数据如同货架存放包裹
- MAR↔取件号: CPU将目标地址写入MAR,如同告知店员取件号(如11号货架第1层第42个包裹)
- MDR↔柜台: 找到的数据暂存MDR,如同包裹暂放柜台待取
- 读写差异:
- 菜鸟驿站仅支持取件(读操作)
- 主存储器支持读写:写入时CPU需提供地址(MAR)、数据(MDR)和写操作指令
2.3.1 存储体
2.3.2 MAR与MDR的位数与存储体的关系
容易混淆的点:字与字节的区别
2.3 运算器的基本组成
- 核心部件:由ACC、MQ、X三个寄存器和ALU算术逻辑单元组成
- ACC(累加器):
- 功能:存放算术/逻辑运算的操作数及运算结果
- 硬件特点:构造简单,成本低于ALU
- 运算角色:
- 加法:存放被加数及和
- 减法:存放被减数及差
- 乘法:存放乘积高位
- 除法:存放被除数及余数
- MQ(乘商寄存器):
- 专用性:仅在乘除法运算时启用
- 运算角色:
- 乘法:存放乘数及乘积低位
- 除法:存放商
- X(通用寄存器):
- 扩展性:实际系统中可存在多个
- 功能:统一存放各类运算的操作数
- 运算角色:
- 加法:存放加数
- 减法:存放减数
- 乘法:存放被乘数
- 除法:存放除数
- ALU(算术逻辑单元):
- 核心地位:通过复杂电路实现所有运算功能
- 硬件特点:运算器中制造成本最高的部件
- 功能范围:
- 算术运算:实现+−×÷等操作
- 逻辑运算:完成与、或、非等布尔运算
2.4 控制器的基本组成
- CU(控制单元):
- 核心地位:控制器中的”决策中心”
- 功能:
- 指令分析:解析当前执行的指令含义
- 信号生成:向其他部件发送控制信号
- 类比说明:相当于”霸道总裁”的决策大脑
- IR(指令寄存器):
- 功能:暂存当前正在执行的指令
- 工作流程:在取指阶段从内存加载指令
- PC(程序计数器):
- 名称辨析:不同于个人电脑(PC)
- 核心功能:
- 地址存储:记录下一条指令的内存地址
- 自动增量:执行后自动+1+1+1指向后续指令
- 指令执行三阶段:
- 取指阶段:根据PC地址从内存获取指令
- 分析阶段:CU解析IR中的指令内容
- 执行阶段:CU协调各部件完成指令操作
- 两阶段简化模型:
- 取指阶段:合并前两个阶段
- 执行阶段
三、计算机的工作过程
3.1 代码实现
- 存储结构:
- 变量存储:a(地址5)、b(地址6)、c(地址7)、y(地址8)
- 指令存储:0-4号单元存储机器指令
- 指令格式:每条16位,包含操作码(前6位)和地址码(后10位)
- 存储单位:每个存储单元字长为16比特,与指令长度匹配
3.2 取数指令 a 到 ACC
3.3 执行乘法运算过程
运算器执行乘法操作时,会把被乘数放到通用寄存器中
乘数放到乘商寄存器
ALU把X和MQ中的数相乘,最终放到ACC
如果乘积太大,ACC放不下的情况,需要MQ辅助存储,MQ存储低位
3.4 执行加法运算过程
3.5 执行存数指令
3.6 停机指令
停机指令:通过中断机制通知操作系统终止该进程
3.7 计算机工作过程总结
CPU区分指令和数据的依据:指令周期的不同阶段
3.8 硬件部件知识回顾
现在的计算机通常把MAR、MDR集成在CPU中
四、计算机软件
4.1 系统软件和应用软件
系统构成: 完整的计算机系统由硬件和软件组成,用户通过软件与计算机交互,软件运行在硬件基础之上。
1)应用软件
- 定义: 为解决特定需求而开发的程序,直接面向终端用户提供服务
- 典型示例:
- 大众软件:抖音(短视频)、QQ(社交)、美图秀秀(图像处理)
- 专业软件:Photoshop(图像设计)、AutoCAD(工程制图)
- 特点: 每种应用软件都针对特定应用场景开发,如社交、图像处理等
2)系统软件
- 核心功能: 管理硬件资源并为上层应用提供基础服务
- 主要类型:
- 操作系统(如Android/iOS):支撑所有应用软件运行
- 数据库管理系统(DBMS):提供数据存储和查询服务
- 网络系统软件(如网卡驱动):实现网络通信功能
- 语言处理程序:完成高级语言到机器语言的转换
- 服务程序(如调试工具):辅助软件开发
- 标准程序库(如printf):提供通用编程接口
- 类比: 系统软件相当于”数字基建“,为应用软件提供底层支持
4.2 三种语言(机器、汇编、高级)
高级语言: 人类易读的编程语言(如C/C++/Java/Python)
汇编语言: 使用助记符(如LOAD/MUL)的低级语言
机器语言: 二进制代码(如00000100),CPU直接执行
- 编译程序:
- 工作方式:一次性将整个源程序转换为目标代码(如生成.exe文件)
- 效率特点:执行效率高,适合重复执行的程序
- 汇编程序:
- 功能:将汇编语言转换为机器语言
- 解释程序:
- 工作方式:逐行翻译并立即执行(如同声传译)
- 效率特点:重复语句需重复翻译,效率较低
统称: 上述三类均可称为”翻译程序”
4.3 软件和硬件的逻辑功能等价性
- 核心概念: 同一功能既可用硬件实现也可用软件实现
- 实现示例:
- 硬件方案:使用乘法指令MUL 985,6,X(需专用电路)
- 软件方案:用6次加法指令ADD 985,X,X(仅需基础电路)
- 比较:
- 硬件:高性能但成本高(需复杂电路)
- 软件:低成本但性能较低(通过指令组合实现
4.4 指令集体系结构(ISA)- Instruction Set Architecture
- 定义:
- 规定计算机支持的指令集合
- 明确每条指令的功能和用法
- 设计考量:
- 需平衡性能与成本
- 确定硬件实现与软件实现的边界
- 重要性: 是计算机系统中软硬件的交互界面
4.5 计算机软件知识回顾
五、计算机系统的多层次结构
5.1 传统机器
二进制本质: 传统机器M1只能识别二进制机器指令
微指令分解: 每条机器指令需要细分为多个微指令执行,例如取数指令分解为9个微步骤
5.2 计算机的层次结构
- 五层结构:计算机系统可分为五个层次,从高到低依次为:
- M4:高级语言机器(执行高级语言)
- M3:汇编语言机器(执行汇编语言)
- M2:操作系统机器(向上提供广义指令)
- M1:传统机器(执行机器语言指令)
- M0:微程序机器(执行微指令)
- 执行本质:虽然高层机器能识别更高级的代码,但所有代码最终都需要翻译成机器语言执行
- 计算机组成原理主要研究M1和M0这两层机器的实现原理
汇编语言指令和机器语言指令一一对应
5.3 计算机体系结构 VS 计算机组成原理
- 体系结构定义:机器语言程序员可见的计算机系统属性,包括:
- 概念性结构与功能特性
- 指令系统设计(如有无乘法指令)
- 数据类型、寻址技术、I/O机理等
- 组成原理定义:实现体系结构定义的接口,对程序员透明(不可见),如:
- 乘法指令的具体硬件实现
- 其他指令的物理实现方式
- 核心区别:
- 体系结构:设计硬件与软件的接口(”做什么”)
- 组成原理:用硬件实现接口(”怎么做”)
5.4 计算机体系结构 VS 计算机组成原理
六、计算机系统的基本工作原理
6.1 从语言源程序到可执行文件
四阶段总结:预处理→编译→汇编→链接,各阶段工具分别为预处理器、编译器、汇编器、链接器
6.2 计算机系统的工作原理
- 存储层次:
- 外存:硬盘等I/O设备存放可执行文件
- 内存:程序运行时从外存调入主存储器
- 执行单元:CPU通过控制器和运算器执行程序指令
- 交互设备:输入设备(键盘/鼠标)和输出设备(显示器)实现人机交互
6.3 存储程序工作方式
- 存储特点:
- 统一存储:指令和数据无差别混合存储
- 地址映射:每条指令/数据都有唯一内存地址
- 执行机制:
- PC寄存器:程序计数器自动指向下一条指令地址
- 指令周期:取指令→解码→执行→写回的循环过程
- 典型指令:
- 运算指令:如”乘b得ab,存于ACC中”
- 数据移动:如”取数a至ACC”
- 存储指令:如”将ab+c存于主存单元”
本网站原创文章版权归何大锤的狂飙日记所有。发布者:何大锤,转转请注明出处:何大锤的博客