哈工大《计算机组成原理》第一章笔记
目录
第一章 计算机系统概论
1.1计算机系统简介
1.2 计算机的基本组成-1.2A1
一、冯·诺依曼计算机的六大核心特点
二、冯·诺依曼结构硬件框图
三、局限性及改进方向
四、冯·诺依曼 vs 哈佛结构
五、思考题
1.2 计算机的基本组成-1.2A2
一、冯·诺依曼结构的改进
二、层次化与模块化设计方法
三、改进后的计算机硬件框图
四、模块化设计的实际意义
五、总结
1.2 计算机的基本组成-1.2B
一、计算机解决问题的基本流程
二、指令格式与执行示例
三、存储器与冯·诺依曼结构
四、关键问题与设计细节
五、层次化设计思想
六、总结
1.2 计算机的基本组成-1.2C
一、存储器核心结构与工作原理
二、运算器结构与工作原理
三、存储器与运算器的协同工作
四、总结与记忆点
1.2 计算机的基本组成-1.2D
一、运算器核心结构
编辑
二、指令执行流程与寄存器分配
三、关键操作对比与注意事项
四、核心知识点总结
1.2 计算机的基本组成-1.2E
一、控制器核心功能与结构
二、指令执行三阶段详解
三、关键指令执行流程(以模型机为例)
四、程序执行全流程
五、关键知识点总结
1.3 计算机硬件的主要指标
一、选择计算机的核心理念
二、计算机硬件性能核心指标
1. 机器字长(Machine Word Length)
2. 运算速度
3. 存储容量
三、实战建议
四、术语速查表
第一章 计算机系统概论
1.1计算机系统简介
- 现代计算的多样性
- 传感器(温度传感器、湿度传感器)、个人数字助理(PDA)、笔记本、电脑、服务器、高性能计算机、网络
- 把感应器嵌入和装备到电网、铁 路、桥梁、隧道、 公路、建筑、供水系统、大坝、 油气管道等各种 物体中,并且被普遍连接,形成所谓“物联网”, 然后将“物联网” 与现有的互联网整合起来,实现人类社会与物理 系统的整合,形 成智慧地球。
- WHY?让感应器能够感知设备状态,然后将感知的信息传送到后台服务器和设备中,后台的服务器根据感知信息对系统的服务状态工作状态进行判断。
- 通过前端感知信息,通过后端进行进行处理,根据信息处理的结果向前端进行反馈,形成CPS信息物理系统。
- 计算机的软硬件概念
- 计算机系统
硬件 | 软件 | |
计算机的实体,如主机、外设等 | 由具有各类特殊功能的信息(程序)组成 | |
系统软件 | 应用软件 | |
用来管理整个计算机系统 | 按任务需要编制的各种程序 | |
语言处理系统 操作系统 服务性程序 数据库管理系统 网络软件 |
- 系统复杂性管理的方法:抽象(隐藏系统中不重要的细节)
物理抽象Physics | 电子元件Device | 模拟电路Analog Circuits | 数字电路Digital Circuits | 逻辑层Logic | 微体系结构层Micro-architecture | Architecture | Operating Systems | Application Software |
electros 电子设备electros通过电子的移动工作(量子机制和麦克斯韦方程描述) | transistors diodes 利用电子在不同物质中的移动特征构建电子元件(电压和电流的特征描述) | amplifiers filters 放大器、滤波器等模拟电路元件。 | and gate not gatee 利用模拟电路元件构建与门、非门 | adders memories 计算机中主要部件的逻辑实现 | datapaths controller 计算机中主要部件的链接 | instructions registers | device drivers | programs |
- 计算机的层次结构
硬件 | 软件 | |||
微指令系统 | 机器语言(01代码构成:很难记忆) | 操作系统 | 汇编语言(和人类语言相差较大) 符号语言;和汇编语言一一对应 | 高级语言 |
微程序机器M0 | 实际机器M1 | 虚拟机器 | 虚拟机器M2 | 虚拟机器M3 |
能够执行微指令和微程序 | 使用机器语言(二进制代码)直接对硬件进行编程 | 程序员利用操作系统进行编程;操作系统可以管理软硬件资源 | 必须提供汇编程序,将汇编语言转换成机器语言,相当于在硬件外面造了一层软件,这层软件完成汇编语言到机器语言的翻译。 | 必须提供编译程序和解释程序,相当于在汇编语言外面又加了一层软件。 |
由硬件直接执行微指令 | 用微指令解释机器指令 | 用机器语言解释操作系统 | 用汇编程序翻译成机器语言程序 | 用编译程序翻译成汇编语言程序 |
- 微指令系统:将机器语言指令从存储器取出→把指令地址传送给存储器→告诉存储器读→指令取出后送给控制器译码→译码的结果再控制去操作数→完成操作
- 有些操作可以同时进行,放在同一个微指令中;有些操作有时序,放在不同的微指令中
- 通过微指令的执行顺序控制操作的先后顺序
- 计算机组成和计算机体系结构从研究内容上来说有什么区别?
- 计算机系统结构定义了计算机软硬件交界面,定义了哪些功能由软件实现,哪些功能由硬件实现;提供了上层软件进行编写的时候和硬件交互的接口。
计算机体系结构 | 程序员*1所见到的计算机系统的属性*2概念性的结构和功能特性 (指令系统、数据类型、寻址技术、I/O机理) | *1程序员包含机器语言程序员、汇编语言程序员、高级语言程序员,此处指机器语言程序员 *2机器语言程序员要想编写一个能在计算机系统上正确执行的程序,他必须了解的计算机系统属性,比如:指令集、寄存器文件的组织、内存的编址单位以及指令集能够对哪些类型的数据进行操作,专业术语:数据表示 |
计算机组成 | 实现计算机体系结构所体现的属性 (具体指令的实现) | 例如:在指令集中有无乘法指令,能够对什么类型的数据做乘法操作,数据的长度是多少,这些内容都是在体系结构当中规定。计算机组成的设计者利用上述规定研究如何实现乘法指令(此处指逻辑实现) |
1.2 计算机的基本组成-1.2A1
-
一、冯·诺依曼计算机的六大核心特点
-
五大部件组成
-
运算器(ALU):执行算术和逻辑运算(如加减乘除)。
-
控制器(CU):解析指令并控制其他部件工作。
-
存储器:存储程序和数据(内存)。
-
输入设备:将外部信息转换为二进制输入(如键盘)。
-
输出设备:将结果转换为人类可识别的形式(如显示器)。
注:
-
运算器与控制器合称中央处理器(CPU)。
-
算盘的类比:
-
运算器=算盘珠,控制器=人脑,存储器=算盘珠状态,输入/输出设备=手指操作。
-
-
-
指令与数据同等地位存储
-
程序指令和操作数据混合存储于同一存储器中,按地址访问。
-
改进可能:哈佛结构(指令与数据分离存储,如嵌入式系统)。
-
-
二进制表示
-
所有信息(指令、数据)均以二进制编码(0/1)存储和处理。
-
优势:简化硬件设计,抗干扰能力强。
-
思考:为何不用三进制?二进制逻辑电路实现简单,稳定性高。
-
-
指令结构:操作码 + 地址码
-
操作码:指明操作类型(如加法、跳转)。
-
可扩展功能:寻址方式、数据类型(定点/浮点)、数据长度等。
-
示例:IBM 360的加法指令根据数据基值和长度分为8种。
-
-
地址码:指明操作数位置(内存地址或寄存器编号)。
-
-
存储程序原理
-
程序预先存入存储器,由控制器按顺序逐条读取并执行。
-
突破性:无需人工干预,实现通用计算(早期计算机需手动重连线路)。
-
-
以运算器为中心(原始设计)
-
数据流动需经过运算器(输入→运算器→存储器,输出同理)。
-
问题:运算器成为系统瓶颈(需处理运算、输入/输出)。
-
改进:现代计算机转向以存储器为中心,通过总线直接传输。
-
-
数据流:黑色实线(输入→运算器→存储器→输出)。
-
控制流:虚线(控制器解析指令并协调各部件)。
二、冯·诺依曼结构硬件框图
三、局限性及改进方向
四、冯·诺依曼 vs 哈佛结构
特性 | 冯·诺依曼结构 | 哈佛结构 |
---|---|---|
存储分离 | 指令与数据共享同一存储器 | 指令与数据物理分离存储 |
总线设计 | 单一总线 | 独立指令总线和数据总线 |
性能 | 存在“内存墙”瓶颈 | 并行访问,性能更高 |
应用场景 | 通用计算机(PC、服务器) | 嵌入式系统、DSP、实时系统 |
五、思考题
总结:冯·诺依曼结构奠定了现代计算机基础,核心是存储程序和二进制统一表示,其改进方向(如哈佛结构、并行计算)延续了其核心理念。
-
冯诺依曼计算机:存储程序结构的计算机,数据程序以二进制的方式存放。 - 冯诺依曼:美籍匈牙利科学家 现代计算机之父
- 冯诺依曼:提出了程序存储的思想,并且成功的把这种思想运用在计算机的设计当中。
- 世界上第一台冯诺依曼结构的机器:1949年
-
冯·诺依曼瓶颈
-
运算器为中心导致性能瓶颈(数据需频繁经过运算器)。
-
改进:总线结构、多级缓存(Cache)、并行计算。
-
-
指令与数据混合存储的安全风险
-
易受恶意代码攻击(如缓冲区溢出)。
-
改进:哈佛结构(指令与数据分离存储)。
-
-
顺序执行效率限制
-
指令串行执行,硬件资源利用率低。
-
改进:流水线技术、多核处理器。
-
-
部件合并可能性
-
现代计算机是否需严格保留五大部件?
-
示例:输入/输出设备集成(如触控屏),控制器与运算器集成(CPU芯片)。
-
-
进制选择的依据
-
为何选择二进制而非三进制?
-
理论依据:布尔代数与逻辑电路天然适配二进制,硬件实现简单可靠。
-
-
操作码扩展功能
-
如何通过操作码编码实现更多控制功能(如数据类型、寻址方式)?
-
1.2 计算机的基本组成-1.2A2
一、冯·诺依曼结构的改进
-
原结构存在的问题
-
以运算器为中心:
-
所有数据流动需经过运算器(ALU),导致运算器成为系统瓶颈。
-
输入/输出设备与存储器之间的数据传输效率低。
-
-
结构混乱:
-
缺乏层次化设计,难以模块化扩展和维护。
-
-
-
改进方向:以存储器为中心
-
核心思想:
-
存储器作为数据交换中心,输入/输出设备直接与存储器交互。
-
运算器(ALU)和控制器(CU)通过存储器获取数据和指令。
-
-
优势:
-
减少运算器的负载,提升整体效率。
-
简化数据流路径(输入→存储器→运算器→输出)。
-
-
数据流:输入设备→存储器→运算器/控制器→输出设备。
-
控制流:控制器通过控制信号协调各部件工作。
-
二、层次化与模块化设计方法
-
层次化(Hierarchy)
-
核心思想:将复杂系统分解为多层模块,逐层细化。
-
现代计算机硬件层级划分:
-
优势:
-
降低设计复杂度,分模块独立开发与测试。
-
支持递归细化(从宏观到微观逐步实现)。
-
-
-
模块化(Modularity)
-
核心原则:
-
明确定义的功能:每个模块负责特定任务(如ALU负责运算)。
-
标准化接口:模块间通过统一接口交互(如内存插槽标准)。
-
-
应用实例:
-
内存模块标准化:不同厂商的内存条可兼容使用。
-
CPU与主存的通信协议(如DDR标准)。
-
-
-
规则性(Regularity)
-
目标:提高模块的可重用性和兼容性。
-
实现方式:
-
遵循工业标准(如PCIe接口、USB协议)。
-
设计通用模块(如通用寄存器组)。
-
-
三、改进后的计算机硬件框图
plaintext
复制
+-----------------------+ | 计算机系统 | | +-------------------+ | | | 主机 | | | | +-----+ +-------+ | | | | | CPU | | 主存 | | | | | |ALU | +-------+ | | | | |CU | | | | +-+-----+-----------+ | | | | +-------------------+ | | | I/O系统 | | | | 输入设备 输出设备 | | | | 辅存(硬盘) | | | +-------------------+ | +-----------------------+
-
关键说明:
-
CPU:包含ALU(运算)和CU(控制)。
-
主存:直接与CPU交互,存储运行中的程序和数据。
-
I/O系统:负责与外部环境的数据交换。
-
四、模块化设计的实际意义
-
产业分工:
-
企业可专注于特定模块(如CPU、内存、硬盘),无需生产整机。
-
示例:Intel生产CPU,三星生产内存,希捷生产硬盘。
-
-
可扩展性:
-
用户可自行升级组件(如增加内存条、更换显卡)。
-
-
成本与效率优化:
-
标准化模块降低研发成本,加速产品迭代。
-
五、总结
-
冯·诺依曼结构的改进:
-
从“以运算器为中心”转向“以存储器为中心”,提升数据交互效率。
-
-
层次化与模块化设计:
-
层次化分解复杂系统,模块化实现标准化与可重用性。
-
规则性确保兼容性和产业协同。
-
-
现代计算机设计趋势:
-
模块化、标准化、可扩展性成为核心设计原则。
-
1.2 计算机的基本组成-1.2B
- 问题:一个现实中的问题,如何用计算机来解决?
- 问题:是不是所有的问题都可以用计算的方法来解决
- 假设我们面对的是一个可以有计算机解决的问题, 如何用计算机来解决这个问题呢?
一、计算机解决问题的基本流程
-
问题可计算性判断
-
可计算性理论:研究问题是否能用计算机解决(如停机问题不可计算)。
-
数学模型建立:将现实问题转化为数学表达式(如正弦交流电实时电压模型)。
-
计算方法确定:选择适合的算法(如泰勒展开计算 \sin(x)sin(x)、迭代法计算 \sqrt{x}x)。
-
-
程序编写与指令设计
-
程序:由指令序列构成,每条指令对应一个微操作。
-
指令集假设:假设使用累加器型机器(操作数默认存放在累加器 ACC 中),指令集包含:
-
取数指令(LOAD)
-
存数指令(STORE)
-
加法指令(ADD)
-
乘法指令(MUL)
-
打印指令(PRINT)
-
停机指令(HALT)
-
-
二、指令格式与执行示例
-
指令结构
-
操作码(6位):指明操作类型(如
000001
表示取数)。 -
地址码(10位):指明操作数在内存中的地址。
示例:取数指令α `000001 0000001000` [α]→ACC - 操作码 `000001`:LOAD - 地址码 `0000001000`:内存单元 8(二进制 `1000` 转十进制)
-
-
二次方程计算示例
-
公式:ax^2 + bx + c
-
两种算法对比:
原始算法(8条指令) 优化算法(5条指令) 1. LOAD x → ACC 1. LOAD x → ACC 2. MUL x → ACC(计算 x^2) 2. MUL a → ACC(计算 ax) 3. STORE ACC → 内存单元 3. ADD b → ACC(计算 ax + b) 4. LOAD b → ACC 4. MUL x → ACC(计算 (ax + b)x) 5. MUL x → ACC(计算 bx) 5. ADD c → ACC(最终结果) 6. ADD 内存单元 → ACC(累加 ax^2 + bx) 7. ADD c → ACC 8. STORE ACC → 结果单元 -
优化优势:减少指令条数(5 vs 8),节省存储空间和执行时间。
-
三、存储器与冯·诺依曼结构
-
存储器功能
-
存储程序、数据及中间结果(指令和数据均以二进制形式存储)。
-
示例内存布局:
地址 0-7:指令(二进制编码) 地址 8-11:数据(x, a, b, c) 地址 12:结果存储单元
-
-
冯·诺依曼结构特点
-
存储程序:指令与数据混合存储,按地址访问。
-
以存储器为中心:输入/输出设备直接与存储器交互,运算器从存储器获取数据。
-
四、关键问题与设计细节
-
累加器型机器的局限性
-
数据依赖:所有运算需通过 ACC 寄存器,可能成为性能瓶颈。
-
寄存器溢出:乘法结果位数超过寄存器长度时需特殊处理(如高位截断或进位标志)。
-
-
指令执行流程
-
取指令:控制器从内存读取指令(操作码 + 地址码)。
-
解码与执行:解析操作码,执行相应操作(如取数、运算、存数)。
-
结果存储:运算结果存回内存或输出设备。
-
五、层次化设计思想
-
模块划分
-
CPU:运算器(ALU) + 控制器(CU)。
-
存储器:主存(RAM) + 辅存(硬盘)。
-
I/O设备:输入设备(键盘) + 输出设备(显示器)。
-
-
接口标准化
-
模块间通过明确定义的接口交互(如内存插槽、总线协议)。
-
六、总结
-
核心步骤:问题建模 → 算法设计 → 指令编写 → 存储程序 → 执行。
-
优化方向:减少指令条数、提升寄存器利用率、优化数据流路径。
-
冯·诺依曼瓶颈:以存储器为中心可缓解运算器压力,但仍需结合多级缓存和并行计算。
1.2 计算机的基本组成-1.2C
指令和数据都是保存在存储器中的
- 存储器的结构?
- 如何进行访问?
- 每次访问获得的数据的位数是多少呢?
一、存储器核心结构与工作原理
-
存储体(Storage Body)
- 定义:存储器的物理实体,由大量存储单元组成,用于存放指令(程序)和数据(操作数)。
- 类比:
- 存储体 → 一栋大楼
- 存储单元 → 大楼中的每个房间
- 存储元件(如晶体管/电容) → 房间内的床位(每个床位表示0或1)
-
存储单元(Storage Unit)
- 功能:
- 每个存储单元存放一串二进制代码(即“存储字”),长度由存储字长决定。
- 指令和数据均以二进制形式存储,例如:
操作码 + 地址码
。
- 地址与寻址:
- 每个存储单元有唯一地址,通过地址访问(类似房间号)。
- 寻址方式:按地址访问(直接定位到目标单元)。
- 功能:
-
存储字与存储字长
概念 定义 示例 存储字 存储单元中的二进制代码组合 一条指令(如 MOV AX, 5
)存储字长 存储单元中二进制代码的位数 8位(1字节)、16位等 -
关键寄存器:MAR与MDR
- MAR(存储器地址寄存器)
- 作用:保存待访问存储单元的地址。
- 位数与容量关系:
- 若MAR为
n
位,可寻址2ⁿ
个存储单元。 - 示例:MAR=4位 → 寻址范围
0000~1111
(共16个单元)。
- 若MAR为
- MDR(存储器数据寄存器)
- 作用:暂存从存储单元读出或写入的数据。
- 位数要求:MDR位数 = 存储字长(如字长8位 → MDR为8位)。
- MAR(存储器地址寄存器)
-
存储器访问流程
- 读操作:
- CPU将目标地址送入MAR。
- 存储体定位到MAR对应的存储单元。
- 该单元数据被读出至MDR,再送至CPU处理。
- 写操作:
- CPU将数据送入MDR,地址送入MAR。
- 存储体将MDR数据写入MAR指定的存储单元。
- 读操作:
二、运算器结构与工作原理
-
核心功能
- 执行算术运算(如加减乘除)和逻辑运算(如与、或、非)。
-
核心部件
- 累加器(ACC,Accumulator):
- 作用:存放操作数及运算结果。
- 示例:计算
A+B
时,A先存入ACC,B与ACC内容相加后结果仍存ACC。
- 其他寄存器(模型机假设):
- 通用寄存器:暂存中间数据。
- 程序计数器(PC):指向下一条待执行指令地址(与存储器联动)。
- 累加器(ACC,Accumulator):
-
运算流程示例(加法)
- 步骤:
- 从存储器取出操作数A,经MDR送入ACC。
- 从存储器取出操作数B,暂存至通用寄存器。
- 运算器执行
ACC + 寄存器B
,结果存回ACC。
- 步骤:
三、存储器与运算器的协同工作
-
指令执行流程
- 取指令阶段:
- PC提供指令地址 → MAR → 存储体 → 指令读出至MDR → 送至控制器解码。
- 执行指令阶段:
- 运算器从存储器获取数据(通过MDR) → 运算 → 结果存回存储器或ACC。
- 取指令阶段:
-
关键性能指标
指标 定义 影响因素 存储容量 存储器可存储的总二进制位数 存储单元数量 × 存储字长 存取速度 读写一次存储单元所需时间 存储介质、电路设计 运算器字长 一次能处理的二进制位数 寄存器位数(如32/64位)
四、总结与记忆点
-
核心公式
- 存储容量 = 存储单元数 × 存储字长
- 可寻址范围 = 2<sup>MAR位数</sup>
公式含义解析
可寻址范围 = 2<sup>MAR位数</sup>
表示存储器的最大可访问地址数量由MAR(存储器地址寄存器)的位数决定。
MAR位数:地址寄存器中二进制位的数量(如4位、8位、16位等)。
2<sup>MAR位数</sup>:二进制位的组合总数,即最多可表示的地址数量。
通俗理解
二进制地址的本质
MAR中每个二进制位(0或1)表示地址的一部分。
示例:
若MAR为4位,可能的地址组合为
0000
到1111
(共16种组合)。计算方式:2<sup>4</sup> = 16。
可寻址范围的定义
存储器中能被唯一访问的存储单元总数。
公式意义:MAR的位数决定了存储器最多能管理多少个独立地址
-
关键概念对比
概念 存储体 存储单元 MAR MDR 功能 物理存储实体 存储基本单位 保存地址 暂存数据 依赖关系 由存储单元构成 由存储元件构成 位数决定寻址范围 位数=存储字长 -
学习建议
- 结合“大楼-房间-床位”类比理解存储结构。
- 通过流程图掌握存储器访问流程(读/写)。
- 用实际运算(如加法)分析运算器与存储器的交互。
1.2 计算机的基本组成-1.2D
一、运算器核心结构

-
核心部件
- ALU(算术逻辑单元):
- 组合电路,负责执行加减乘除及逻辑运算(与、或、非)。
- 输入撤销后输出结果也撤销,需寄存器保存中间数据。
- 关键寄存器:
寄存器 功能 适用场景 ACC 累加器,存放操作数及运算结果 所有运算 X 数据寄存器,存放第二个操作数 加减法、乘除法 MQ 乘商寄存器,存放乘数/商或结果低位 乘法(保存乘数)
除法(保存商)
- ALU(算术逻辑单元):
-
模型机结构特点
- 累加器型设计:以ACC为核心,隐含操作数(如单地址指令)。
- 扩展性说明:
- 通用寄存器型计算机结构不同(寄存器数量及功能可能变化)。
- 乘/除法需多寄存器协同(结果位数扩展)。
二、指令执行流程与寄存器分配
-
加法指令
- 指令格式:
ADD M
(操作码 + 内存地址M
) - 执行步骤:
- 初态:ACC已存被加数(需前置取数指令)。
- 从内存
M
取出加数 → 送入X寄存器。 - ALU执行
ACC + X
→ 结果存回ACC。
2.减法指令
- 指令格式:
SUB M
- 执行步骤:
- 初态:ACC已存被减数(前置取数指令)。
- 从内存
M
取出减数 → 送入X寄存器。 - ALU执行
ACC - X
→ 结果存回ACC。
3.乘法指令
- 指令格式:
MUL M
- 执行特点:
- 结果位数为操作数两倍 → 需ACC(高位) + MQ(低位)联合保存。
- 通过累加+移位实现(模拟二进制乘法)。
- 执行步骤:
- 初态:ACC已存被乘数(前置取数指令)。
- 从内存
M
取出乘数 → 存入MQ。 - 将ACC内容(被乘数)转存至X寄存器。
- ACC清零 → 开始累加移位操作。
- 最终结果:ACC(高位) + MQ(低位)。
4.除法指令
- 指令格式:
DIV M
- 执行特点:
- 通过减法+移位实现(模拟二进制除法)。
- 商存MQ,余数存ACC。
- 执行步骤:
- 初态:ACC已存被除数(前置取数指令)。
- 从内存
M
取出除数 → 存入X寄存器。 - ALU执行多次减法判断是否够减:
- 若够减 → 商1(MQ对应位),余数存ACC。
- 若不够减 → 商0,保留原余数。
- 最终结果:MQ(商) + ACC(余数)。
三、关键操作对比与注意事项
-
寄存器分配总结
操作 被操作数存储位置 操作数来源 结果存储位置 加法 ACC(被加数) X(加数,来自M) ACC 减法 ACC(被减数) X(减数,来自M) ACC 乘法 X(被乘数) MQ(乘数,来自M) ACC(高位)+ MQ(低位) 除法 ACC(被除数) X(除数,来自M) MQ(商) + ACC(余数) -
注意事项
- 控制器作用:协调操作顺序(如乘法中ACC→X的转存需先于清零)。
- 隐含操作数:单地址指令依赖前置指令(如取数到ACC)。
- 模型机限制:累加器型设计对多操作数指令不友好(需通用寄存器优化)。
四、核心知识点总结
-
运算器设计逻辑
- 核心需求:保存操作数、暂存结果、支持多步骤运算(如乘除)。
- 寄存器扩展:MQ解决乘法结果位数扩展问题。
-
记忆点
- ACC:所有运算的起点和终点(隐含累加器设计)。
- MQ:乘法和除法的“扩展存储单元”。
- X寄存器:通用数据暂存,减轻ACC压力。
-
流程口诀
- 加减法:取数→送X→运算→存ACC。
- 乘除法:取数→转存→清零/移位→累加/判断→联合保存。
注:本笔记基于累加器型模型机结构整理,实际计算机(如通用寄存器型)需调整寄存器分配及指令设计。
1.2 计算机的基本组成-1.2E
一、控制器核心功能与结构
-
核心功能
- 解释指令:
- 从取指令到分析指令,再到执行指令的全过程控制。
- 包括:取指、操作数寻址、执行操作、保存结果。
- 控制指令执行顺序:
- 通过程序计数器(PC)保证指令按序执行。
- 通过程序计数器(PC)保证指令按序执行。
- 解释指令:
-
核心部件
部件 功能 PC(程序计数器) 保存当前指令地址,自动更新指向下一条指令(如 PC+1
)IR(指令寄存器) 暂存当前正在执行的指令(含操作码和地址码) CU(控制单元) 解析操作码,生成控制信号,协调运算器、存储器等部件完成指令操作
二、指令执行三阶段详解
-
取指令阶段
- 流程:
- PC将指令地址送入MAR。
- 存储器根据MAR地址取出指令 → 送入MDR。
- MDR将指令存入IR,PC自动更新(如
PC+1
)。
- 关键寄存器:PC → MAR → 存储器 → MDR → IR
- 流程:
-
分析指令阶段
- 操作码译码:
- CU解析IR中的操作码,确定指令类型(如加法、存数等)。
- 地址码处理:
- 若需操作数,将IR中的地址码送入MAR(用于寻址数据)。
- 操作码译码:
-
执行指令阶段
- 生成控制信号:
- CU向运算器、存储器发送信号(如“读取数据”、“写入ACC”)。
- 操作示例:
指令类型 执行操作 取数 根据地址码从存储器取数 → MDR → ACC 存数 将ACC数据 → MDR → 存储器指定地址 运算 从存储器取操作数 → 运算器执行 → 结果存ACC/MQ
- 生成控制信号:
三、关键指令执行流程(以模型机为例)
-
取数指令(LOAD M)
阶段 操作步骤 取指 PC→MAR→存储器→MDR→IR,PC更新 分析 CU解析操作码为“取数”,地址码部分送入MAR 执行 存储器根据MAR地址取数 → MDR → ACC -
存数指令(STORE M)
阶段 操作步骤 取指 PC→MAR→存储器→MDR→IR,PC更新 分析 CU解析操作码为“存数”,地址码部分送入MAR 执行 ACC数据 → MDR → 存储器根据MAR地址存入 -
乘法指令(MUL M)
阶段 操作步骤 取指 PC→MAR→存储器→MDR→IR,PC更新 分析 CU解析操作码为“乘法”,地址码部分送入MAR 执行 存储器取乘数→MQ,ACC→X寄存器,ALU累加+移位 → 结果高位存ACC,低位存MQ
四、程序执行全流程
-
初始化
- 程序和数据通过输入设备载入存储器。
- PC设置为程序首条指令地址。
-
指令循环执行
- 循环步骤:
- 取指令 → 分析指令 → 执行指令。
- PC自动更新,指向下一条指令。
- 示例程序流程(假设程序包含取数、乘法、存数指令):
- 循环步骤:
-
终止
- 执行停机指令(HALT),控制器停止工作。
五、关键知识点总结
-
控制器设计核心
- PC的自动更新:保证指令顺序执行(如
PC+1
)。 - IR的暂存功能:保存当前指令供CU分析。
- CU的信号生成:协调运算器、存储器完成操作。
- PC的自动更新:保证指令顺序执行(如
-
模型机特点
- 累加器型结构:ACC为核心,单地址指令为主。
- 局限性:多操作数指令需多次取指(通用寄存器型更高效)。
-
记忆口诀
- 取指三步骤:PC→MAR→存→MDR→IR,PC+1。
- 执行两方向:运算器(ACC/X/MQ) ↔ 存储器(MAR/MDR)。
注:本笔记基于累加器型模型机整理,实际计算机(如x86、ARM架构)可能采用通用寄存器设计,指令执行流程略有差异。
1.3 计算机硬件的主要指标
一、选择计算机的核心理念
-
明确用途
- 文档处理/简单实验:普通笔记本即可满足(如轻薄本)。
- 游戏需求(如《CS》):
- 高性能显卡(图形处理能力)。
- 机械键盘(耐用性)、高响应鼠标(低延迟)。
- 专业需求(如视频渲染、AI训练):需更高配置(GPU、大内存)。
-
预算与性价比
- 只买最合适的:性能满足当前或短期需求即可,避免盲目追求“最贵”。
- 平衡性能与价格:例如,中端显卡+中端CPU组合可能比顶级配置更具性价比。
二、计算机硬件性能核心指标
1. 机器字长(Machine Word Length)
- 定义:CPU一次能处理的数据位数(与寄存器位数相同)。
- 影响:
- 字长越长,单次处理数据能力越强。
- 示例:
- 8位机器需8次运算完成64位加法,而64位机器仅需1次。
- 注意:模型机中存储字长=寄存器字长,但实际计算机可能不同。
2. 运算速度
指标 | 定义与说明 |
---|---|
主频(时钟频率) | CPU每秒时钟周期数(单位:GHz)。主频高≠速度快,需结合每条指令所需周期数(CPI)。 |
核数与线程数 | 多核/多线程可并行处理任务,但需软件支持(如视频渲染软件支持多线程优化)。 |
CPI | 平均每条指令所需时钟周期数。CPI越低,执行效率越高。 |
MIPS | 每秒执行百万条指令数(单位:百万指令/秒)。局限性:未考虑指令复杂度(如浮点运算耗时更长)。 |
FLOPS | 每秒浮点运算次数(更科学,衡量实际算力)。常用单位:MFLOPS(百万)、GFLOPS(十亿)。 |
- 性能评估方法:
- 吉布森法(Gibson Mix):按指令动态/静态频率加权计算平均执行时间。
- 实际测试:直接运行常用程序(如游戏、专业软件),观察流畅度。
3. 存储容量
- 主存(内存)容量:
- 表示方法:
- 存储单元数 × 存储字长(如
1K×8
表示1K个8位存储单元)。 - 字节数(如16GB内存),1字节=8位。
- 存储单元数 × 存储字长(如
- 示例:
- 表示方法:
- MAR=10位 → 地址范围=2^10=1K,存储容量=1K×8位=8Kb(1KB)。
- 辅存(硬盘/SSD)容量:常用GB/TB表示(1GB=2^30字节)。
三、实战建议
- 按需选择:游戏用户优先显卡与外设,程序员关注CPU与内存。
- 性能验证:
- 测试场景:安装目标软件(如游戏、剪辑软件),测试帧率、加载速度。
- 工具参考:3DMark(图形性能)、Cinebench(CPU性能)。
- 扩展性:预留升级空间(如内存插槽、硬盘位)。
四、术语速查表
术语 | 解释 |
---|---|
CPI | 每条指令平均时钟周期数(越低越好)。 |
MIPS | 每秒百万指令数(忽略指令复杂度)。 |
FLOPS | 每秒浮点运算次数(衡量实际算力更准确)。 |
MAR | 存储器地址寄存器位数(决定可寻址空间大小)。 |
MDR | 存储器数据寄存器位数(与存储字长一致)。 |
注:模型机中的假设(如存储字长=寄存器字长)仅为简化设计,实际计算机架构可能不同。
更新说明(2025):当前主流CPU已普遍支持128位字长,AI计算卡(如NVIDIA H100)的FLOPS达PFLOPS级(千万亿次/秒)。