当前位置: 首页 > news >正文

哈工大《计算机组成原理》第一章笔记

目录

第一章 计算机系统概论

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-architectureArchitectureOperating SystemsApplication Software

electros

电子设备electros通过电子的移动工作(量子机制和麦克斯韦方程描述)

transistors diodes

利用电子在不同物质中的移动特征构建电子元件(电压和电流的特征描述)

amplifiers filters

放大器、滤波器等模拟电路元件。

and gate not gatee

利用模拟电路元件构建与门、非门

adders memories

计算机中主要部件的逻辑实现

datapaths controller

计算机中主要部件的链接

instructions registersdevice driversprograms
  • 计算机的层次结构
从程序员角度看
硬件软件
微指令系统机器语言(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

一、冯·诺依曼结构的改进
  1. 原结构存在的问题

    • 以运算器为中心

      • 所有数据流动需经过运算器(ALU),导致运算器成为系统瓶颈。

      • 输入/输出设备与存储器之间的数据传输效率低。

    • 结构混乱

      • 缺乏层次化设计,难以模块化扩展和维护。

  2. 改进方向:以存储器为中心

    • 核心思想

      • 存储器作为数据交换中心,输入/输出设备直接与存储器交互。

      • 运算器(ALU)和控制器(CU)通过存储器获取数据和指令。

    • 优势

      • 减少运算器的负载,提升整体效率。

      • 简化数据流路径(输入→存储器→运算器→输出)。

    • 数据流:输入设备→存储器→运算器/控制器→输出设备。

    • 控制流:控制器通过控制信号协调各部件工作。


二、层次化与模块化设计方法
  1. 层次化(Hierarchy)

    • 核心思想:将复杂系统分解为多层模块,逐层细化。

    • 现代计算机硬件层级划分

    • 优势

      • 降低设计复杂度,分模块独立开发与测试。

      • 支持递归细化(从宏观到微观逐步实现)。

  2. 模块化(Modularity)

    • 核心原则

      • 明确定义的功能:每个模块负责特定任务(如ALU负责运算)。

      • 标准化接口:模块间通过统一接口交互(如内存插槽标准)。

    • 应用实例

      • 内存模块标准化:不同厂商的内存条可兼容使用。

      • CPU与主存的通信协议(如DDR标准)。

  3. 规则性(Regularity)

    • 目标:提高模块的可重用性和兼容性。

    • 实现方式

      • 遵循工业标准(如PCIe接口、USB协议)。

      • 设计通用模块(如通用寄存器组)。


三、改进后的计算机硬件框图

plaintext

复制

+-----------------------+
|      计算机系统        |
| +-------------------+ |
| |      主机         | |
| | +-----+ +-------+ | |
| | | CPU | | 主存  | | |
| | |ALU  | +-------+ | |
| | |CU   |           | |
| +-+-----+-----------+ |
|                       |
| +-------------------+ |
| |    I/O系统        | |
| | 输入设备 输出设备  | |
| |    辅存(硬盘)    | |
| +-------------------+ |
+-----------------------+
  • 关键说明

    • CPU:包含ALU(运算)和CU(控制)。

    • 主存:直接与CPU交互,存储运行中的程序和数据。

    • I/O系统:负责与外部环境的数据交换。


四、模块化设计的实际意义
  1. 产业分工

    • 企业可专注于特定模块(如CPU、内存、硬盘),无需生产整机。

    • 示例:Intel生产CPU,三星生产内存,希捷生产硬盘。

  2. 可扩展性

    • 用户可自行升级组件(如增加内存条、更换显卡)。

  3. 成本与效率优化

    • 标准化模块降低研发成本,加速产品迭代。


五、总结
  1. 冯·诺依曼结构的改进

    • 从“以运算器为中心”转向“以存储器为中心”,提升数据交互效率。

  2. 层次化与模块化设计

    • 层次化分解复杂系统,模块化实现标准化与可重用性。

    • 规则性确保兼容性和产业协同。

  3. 现代计算机设计趋势

    • 模块化、标准化、可扩展性成为核心设计原则。

1.2 计算机的基本组成-1.2B

  • 问题:一个现实中的问题,如何用计算机来解决?
  • 问题:是不是所有的问题都可以用计算的方法来解决
  • 假设我们面对的是一个可以有计算机解决的问题, 如何用计算机来解决这个问题呢?
一、计算机解决问题的基本流程
  1. 问题可计算性判断

    • 可计算性理论:研究问题是否能用计算机解决(如停机问题不可计算)。

    • 数学模型建立:将现实问题转化为数学表达式(如正弦交流电实时电压模型)。

    • 计算方法确定:选择适合的算法(如泰勒展开计算 \sin(x)sin(x)、迭代法计算 \sqrt{x}x​)。

  2. 程序编写与指令设计

    • 程序:由指令序列构成,每条指令对应一个微操作。

    • 指令集假设:假设使用累加器型机器(操作数默认存放在累加器 ACC 中),指令集包含:

      • 取数指令(LOAD)

      • 存数指令(STORE)

      • 加法指令(ADD)

      • 乘法指令(MUL)

      • 打印指令(PRINT)

      • 停机指令(HALT)


二、指令格式与执行示例
  1. 指令结构

    • 操作码(6位):指明操作类型(如 000001 表示取数)。

    • 地址码(10位):指明操作数在内存中的地址。

    示例:取数指令α `000001 0000001000`  [α]→ACC
    - 操作码 `000001`:LOAD  
    - 地址码 `0000001000`:内存单元 8(二进制 `1000` 转十进制)  
  2. 二次方程计算示例

    • 公式:ax^2 + bx + c

    • 两种算法对比

    原始算法(8条指令)优化算法(5条指令)
    1. LOAD x → ACC1. 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 → ACC4. 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),节省存储空间和执行时间。


三、存储器与冯·诺依曼结构
  1. 存储器功能

    • 存储程序、数据及中间结果(指令和数据均以二进制形式存储)。

    • 示例内存布局:

      地址 0-7:指令(二进制编码)  
      地址 8-11:数据(x, a, b, c)  
      地址 12:结果存储单元  
  2. 冯·诺依曼结构特点

    • 存储程序:指令与数据混合存储,按地址访问。

    • 以存储器为中心:输入/输出设备直接与存储器交互,运算器从存储器获取数据。


四、关键问题与设计细节
  1. 累加器型机器的局限性

    • 数据依赖:所有运算需通过 ACC 寄存器,可能成为性能瓶颈。

    • 寄存器溢出:乘法结果位数超过寄存器长度时需特殊处理(如高位截断或进位标志)。

  2. 指令执行流程

    • 取指令:控制器从内存读取指令(操作码 + 地址码)。

    • 解码与执行:解析操作码,执行相应操作(如取数、运算、存数)。

    • 结果存储:运算结果存回内存或输出设备。


五、层次化设计思想
  1. 模块划分

    • CPU:运算器(ALU) + 控制器(CU)。

    • 存储器:主存(RAM) + 辅存(硬盘)。

    • I/O设备:输入设备(键盘) + 输出设备(显示器)。

  2. 接口标准化

    • 模块间通过明确定义的接口交互(如内存插槽、总线协议)。


六、总结
  1. 核心步骤:问题建模 → 算法设计 → 指令编写 → 存储程序 → 执行。

  2. 优化方向:减少指令条数、提升寄存器利用率、优化数据流路径。

  3. 冯·诺依曼瓶颈:以存储器为中心可缓解运算器压力,但仍需结合多级缓存和并行计算。

1.2 计算机的基本组成-1.2C

指令和数据都是保存在存储器中的

  • 存储器的结构?                    
  • 如何进行访问?
  • 每次访问获得的数据的位数是多少呢?
一、存储器核心结构与工作原理
  1. 存储体(Storage Body)

    • 定义‌:存储器的物理实体,由大量存储单元组成,用于存放指令(程序)和数据(操作数)。
    • 类比‌:
      • 存储体 → 一栋大楼
      • 存储单元 → 大楼中的每个房间
      • 存储元件(如晶体管/电容) → 房间内的床位(每个床位表示0或1)
  2. 存储单元(Storage Unit)

    • 功能‌:
      • 每个存储单元存放一串二进制代码(即“存储字”),长度由存储字长决定。
      • 指令和数据均以二进制形式存储,例如:操作码 + 地址码
    • 地址与寻址‌:
      • 每个存储单元有唯一地址,通过地址访问(类似房间号)。
      • 寻址方式:按地址访问(直接定位到目标单元)。
  3. 存储字与存储字长

    概念定义示例
    存储字存储单元中的二进制代码组合一条指令(如MOV AX, 5
    存储字长存储单元中二进制代码的位数8位(1字节)、16位等
  4. 关键寄存器:MAR与MDR

    • MAR(存储器地址寄存器)
      • 作用‌:保存待访问存储单元的地址。
      • 位数与容量关系‌:
        • 若MAR为n位,可寻址2ⁿ个存储单元。
        • 示例‌:MAR=4位 → 寻址范围0000~1111(共16个单元)。
    • MDR(存储器数据寄存器)
      • 作用‌:暂存从存储单元读出或写入的数据。
      • 位数要求‌:MDR位数 = 存储字长(如字长8位 → MDR为8位)。
  5. 存储器访问流程

    • 读操作‌:
      1. CPU将目标地址送入MAR。
      2. 存储体定位到MAR对应的存储单元。
      3. 该单元数据被读出至MDR,再送至CPU处理。
    • 写操作‌:
      1. CPU将数据送入MDR,地址送入MAR。
      2. 存储体将MDR数据写入MAR指定的存储单元。

二、运算器结构与工作原理
  1. 核心功能

    • 执行算术运算(如加减乘除)和逻辑运算(如与、或、非)。
  2. 核心部件

    • 累加器(ACC,Accumulator)‌:
      • 作用‌:存放操作数及运算结果。
      • 示例‌:计算A+B时,A先存入ACC,B与ACC内容相加后结果仍存ACC。
    • 其他寄存器‌(模型机假设):
      • 通用寄存器‌:暂存中间数据。
      • 程序计数器(PC)‌:指向下一条待执行指令地址(与存储器联动)。
  3. 运算流程示例(加法)

    • 步骤‌:
      1. 从存储器取出操作数A,经MDR送入ACC。
      2. 从存储器取出操作数B,暂存至通用寄存器。
      3. 运算器执行ACC + 寄存器B,结果存回ACC。

三、存储器与运算器的协同工作
  1. 指令执行流程

    • 取指令阶段‌:
      • PC提供指令地址 → MAR → 存储体 → 指令读出至MDR → 送至控制器解码。
    • 执行指令阶段‌:
      • 运算器从存储器获取数据(通过MDR) → 运算 → 结果存回存储器或ACC。
  2. 关键性能指标

    指标定义影响因素
    存储容量存储器可存储的总二进制位数存储单元数量 × 存储字长
    存取速度读写一次存储单元所需时间存储介质、电路设计
    运算器字长一次能处理的二进制位数寄存器位数(如32/64位)

四、总结与记忆点
  1. 核心公式

    • 存储容量‌ = 存储单元数 × 存储字长
    • 可寻址范围‌ = 2<sup>MAR位数</sup>

公式含义解析

可寻址范围 = 2<sup>MAR位数</sup>
表示存储器的最大可访问地址数量由‌MAR(存储器地址寄存器)的位数‌决定。

  • MAR位数‌:地址寄存器中二进制位的数量(如4位、8位、16位等)。

  • 2<sup>MAR位数</sup>‌:二进制位的组合总数,即最多可表示的地址数量。


通俗理解

  1. 二进制地址的本质

    • MAR中每个二进制位(0或1)表示地址的一部分。

    • 示例‌:

      • 若MAR为4位,可能的地址组合为 0000 到 1111(共16种组合)。

      • 计算方式:2<sup>4</sup> = 16。

  2. 可寻址范围的定义

    • 存储器中能被唯一访问的存储单元总数。

    • 公式意义‌:MAR的位数决定了存储器最多能管理多少个独立地址

  1. 关键概念对比

    概念存储体存储单元MARMDR
    功能物理存储实体存储基本单位保存地址暂存数据
    依赖关系由存储单元构成由存储元件构成位数决定寻址范围位数=存储字长
  2. 学习建议

    • 结合“大楼-房间-床位”类比理解存储结构。
    • 通过流程图掌握存储器访问流程(读/写)。
    • 用实际运算(如加法)分析运算器与存储器的交互。

1.2 计算机的基本组成-1.2D

一、运算器核心结构
  1. 核心部件

    • ALU(算术逻辑单元)‌:
      • 组合电路,负责执行加减乘除及逻辑运算(与、或、非)。
      • 输入撤销后输出结果也撤销,需寄存器保存中间数据。
    • 关键寄存器‌:
      寄存器功能适用场景
      ACC累加器,存放操作数及运算结果所有运算
      X数据寄存器,存放第二个操作数加减法、乘除法
      MQ乘商寄存器,存放乘数/商或结果低位乘法(保存乘数)
      除法(保存商)
  2. 模型机结构特点

    • 累加器型设计‌:以ACC为核心,隐含操作数(如单地址指令)。
    • 扩展性说明‌:
      • 通用寄存器型计算机结构不同(寄存器数量及功能可能变化)。
      • 乘/除法需多寄存器协同(结果位数扩展)。

二、指令执行流程与寄存器分配
  1. 加法指令

 ‌

  • 指令格式‌:ADD M(操作码 + 内存地址M
  • 执行步骤‌:
    1. 初态:ACC已存被加数(需前置取数指令)。
    2. 从内存M取出加数 → 送入X寄存器。
    3. ALU执行ACC + X → 结果存回ACC。

2.‌减法指令

  • 指令格式‌:SUB M
  • 执行步骤‌:
    1. 初态:ACC已存被减数(前置取数指令)。
    2. 从内存M取出减数 → 送入X寄存器。
    3. ALU执行ACC - X → 结果存回ACC。

3.‌乘法指令

  • 指令格式‌:MUL M
  • 执行特点‌:
    • 结果位数为操作数两倍 → 需ACC(高位) + MQ(低位)联合保存。
    • 通过‌累加+移位‌实现(模拟二进制乘法)。
  • 执行步骤‌:
    1. 初态:ACC已存被乘数(前置取数指令)。
    2. 从内存M取出乘数 → 存入MQ。
    3. 将ACC内容(被乘数)转存至X寄存器。
    4. ACC清零 → 开始累加移位操作。
    5. 最终结果:ACC(高位) + MQ(低位)。

4.‌除法指令

  • 指令格式‌:DIV M
  • 执行特点‌:
    • 通过‌减法+移位‌实现(模拟二进制除法)。
    • 商存MQ,余数存ACC。
  • 执行步骤‌:
    1. 初态:ACC已存被除数(前置取数指令)。
    2. 从内存M取出除数 → 存入X寄存器。
    3. ALU执行多次减法判断是否够减:
      • 若够减 → 商1(MQ对应位),余数存ACC。
      • 若不够减 → 商0,保留原余数。
    4. 最终结果:MQ(商) + ACC(余数)。

三、关键操作对比与注意事项
  1. 寄存器分配总结

    操作被操作数存储位置操作数来源结果存储位置
    加法ACC(被加数)X(加数,来自M)ACC
    减法ACC(被减数)X(减数,来自M)ACC
    乘法X(被乘数)MQ(乘数,来自M)ACC(高位)+ MQ(低位)
    除法ACC(被除数)X(除数,来自M)MQ(商) + ACC(余数)
  2. 注意事项

    • 控制器作用‌:协调操作顺序(如乘法中ACC→X的转存需先于清零)。
    • 隐含操作数‌:单地址指令依赖前置指令(如取数到ACC)。
    • 模型机限制‌:累加器型设计对多操作数指令不友好(需通用寄存器优化)。

四、核心知识点总结
  1. 运算器设计逻辑

    • 核心需求‌:保存操作数、暂存结果、支持多步骤运算(如乘除)。
    • 寄存器扩展‌:MQ解决乘法结果位数扩展问题。
  2. 记忆点

    • ACC‌:所有运算的起点和终点(隐含累加器设计)。
    • MQ‌:乘法和除法的“扩展存储单元”。
    • X寄存器‌:通用数据暂存,减轻ACC压力。
  3. 流程口诀

    • 加减法‌:取数→送X→运算→存ACC。
    • 乘除法‌:取数→转存→清零/移位→累加/判断→联合保存。

‌:本笔记基于累加器型模型机结构整理,实际计算机(如通用寄存器型)需调整寄存器分配及指令设计。

1.2 计算机的基本组成-1.2E

一、控制器核心功能与结构
  1. 核心功能

    • 解释指令‌:
      • 从‌取指令‌到‌分析指令‌,再到‌执行指令‌的全过程控制。
      • 包括:取指、操作数寻址、执行操作、保存结果。
    • 控制指令执行顺序‌:
      • 通过程序计数器(PC)保证指令按序执行。
  2. 核心部件

    部件功能
    PC(程序计数器)保存当前指令地址,自动更新指向下一条指令(如PC+1
    IR(指令寄存器)暂存当前正在执行的指令(含操作码和地址码)
    CU(控制单元)解析操作码,生成控制信号,协调运算器、存储器等部件完成指令操作

二、指令执行三阶段详解
  1. 取指令阶段

    • 流程‌:
      1. PC将指令地址送入MAR。
      2. 存储器根据MAR地址取出指令 → 送入MDR。
      3. MDR将指令存入IR,PC自动更新(如PC+1)。
    • 关键寄存器‌:PC → MAR → 存储器 → MDR → IR
  2. 分析指令阶段

    • 操作码译码‌:
      • CU解析IR中的操作码,确定指令类型(如加法、存数等)。
    • 地址码处理‌:
      • 若需操作数,将IR中的地址码送入MAR(用于寻址数据)。
  3. 执行指令阶段

    • 生成控制信号‌:
      • CU向运算器、存储器发送信号(如“读取数据”、“写入ACC”)。
    • 操作示例‌:
      指令类型执行操作
      取数根据地址码从存储器取数 → MDR → ACC
      存数将ACC数据 → MDR → 存储器指定地址
      运算从存储器取操作数 → 运算器执行 → 结果存ACC/MQ

三、关键指令执行流程(以模型机为例)
  1. 取数指令(LOAD M)

    阶段操作步骤
    取指PC→MAR→存储器→MDR→IR,PC更新
    分析CU解析操作码为“取数”,地址码部分送入MAR
    执行存储器根据MAR地址取数 → MDR → ACC
  2. 存数指令(STORE M)

    阶段操作步骤
    取指PC→MAR→存储器→MDR→IR,PC更新
    分析CU解析操作码为“存数”,地址码部分送入MAR
    执行ACC数据 → MDR → 存储器根据MAR地址存入
  3. 乘法指令(MUL M)

    阶段操作步骤
    取指PC→MAR→存储器→MDR→IR,PC更新
    分析CU解析操作码为“乘法”,地址码部分送入MAR
    执行存储器取乘数→MQ,ACC→X寄存器,ALU累加+移位 → 结果高位存ACC,低位存MQ

四、程序执行全流程
  1. 初始化

    • 程序和数据通过输入设备载入存储器。
    • PC设置为程序首条指令地址。
  2. 指令循环执行

    • 循环步骤‌:
      1. 取指令 → 分析指令 → 执行指令。
      2. PC自动更新,指向下一条指令。
    • 示例程序流程‌(假设程序包含取数、乘法、存数指令):
  3. 终止

    • 执行停机指令(HALT),控制器停止工作。

五、关键知识点总结
  1. 控制器设计核心

    • PC的自动更新‌:保证指令顺序执行(如PC+1)。
    • IR的暂存功能‌:保存当前指令供CU分析。
    • CU的信号生成‌:协调运算器、存储器完成操作。
  2. 模型机特点

    • 累加器型结构‌:ACC为核心,单地址指令为主。
    • 局限性‌:多操作数指令需多次取指(通用寄存器型更高效)。
  3. 记忆口诀

    • 取指三步骤‌:PC→MAR→存→MDR→IR,PC+1。
    • 执行两方向‌:运算器(ACC/X/MQ) ↔ 存储器(MAR/MDR)。

‌:本笔记基于累加器型模型机整理,实际计算机(如x86、ARM架构)可能采用通用寄存器设计,指令执行流程略有差异。

1.3 计算机硬件的主要指标

一、选择计算机的核心理念
  1. 明确用途

    • 文档处理/简单实验‌:普通笔记本即可满足(如轻薄本)。
    • 游戏需求‌(如《CS》):
      • 高性能显卡(图形处理能力)。
      • 机械键盘(耐用性)、高响应鼠标(低延迟)。
    • 专业需求‌(如视频渲染、AI训练):需更高配置(GPU、大内存)。
  2. 预算与性价比

    • 只买最合适的‌:性能满足当前或短期需求即可,避免盲目追求“最贵”。
    • 平衡性能与价格‌:例如,中端显卡+中端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字节)。

三、实战建议
  1. 按需选择‌:游戏用户优先显卡与外设,程序员关注CPU与内存。
  2. 性能验证‌:
    • 测试场景:安装目标软件(如游戏、剪辑软件),测试帧率、加载速度。
    • 工具参考:3DMark(图形性能)、Cinebench(CPU性能)。
  3. 扩展性‌:预留升级空间(如内存插槽、硬盘位)。

四、术语速查表
术语解释
CPI每条指令平均时钟周期数(越低越好)。
MIPS每秒百万指令数(忽略指令复杂度)。
FLOPS每秒浮点运算次数(衡量实际算力更准确)。
MAR存储器地址寄存器位数(决定可寻址空间大小)。
MDR存储器数据寄存器位数(与存储字长一致)。

‌:模型机中的假设(如存储字长=寄存器字长)仅为简化设计,实际计算机架构可能不同。
更新说明(2025)‌:当前主流CPU已普遍支持128位字长,AI计算卡(如NVIDIA H100)的FLOPS达PFLOPS级(千万亿次/秒)。

相关文章:

  • 如何让域名指向网站如何在百度搜索排名靠前
  • 渝北网站建设seo快速入门教程
  • adobe公司设计网站百度搜索指数1000是什么
  • 设计网站哪个好用网站建设优化公司
  • 做网站用什么语言前端优化网站
  • 设计素材的网站google官网入口注册
  • 网络参考模型(全)、ARP协议
  • 【Java面试】创建线程有哪几种方式
  • An Efficient Anti-Interference Imaging Technology for Marine Radar 论文阅读
  • 第6篇:面向对象编程重构系统
  • 常见的消息中间件以及应用场景
  • 【微知】git 如何修改某个tag名字?如何根据某个commit创建一个tag?
  • SQL 中UPDATE 和 DELETE 语句的深入理解与应用
  • 常见深度学习算法图解笔记
  • 【MySQL】窗口函数详解(概念+练习+实战)
  • 避免 Git 文件名大小写出错
  • 哈工大 计算机组成原理 第三章计算机总线 笔记
  • 磁盘阵列新秀GSx并行文件存储是HPC高性能计算/AI 大模型-1替3好省预算
  • next.js-学习5
  • JSON(JavaScript Object Notation)
  • 图形学曲线c++简单实现
  • Vllm进行Qwen2-vl部署(包含单卡多卡部署及爬虫请求)
  • mysqldump 参数详解
  • Linux | 程序 / 进程调用库依赖关系查看
  • 上位机知识篇---HTTPHTTPS等各种通信协议
  • 网络空间安全(4)web应用程序安全要点