1. 1. 计算机系统概述
    1. 1.1. 1. 计算机系统的层次结构
    2. 1.2. 2. 计算机的基本组成
    3. 1.3. 3. 计算机的工作原理
  2. 2. 数据的表示和运算
    1. 2.1. 1. 数制转换
      1. 2.1.1. 二进制、八进制、十进制、十六进制
      2. 2.1.2. 数制转换方法
        1. 2.1.2.1. 二进制转十进制
        2. 2.1.2.2. 十进制转二进制
        3. 2.1.2.3. 二进制转八进制
        4. 2.1.2.4. 二进制转十六进制
    2. 2.2. 2. 机器数的表示
      1. 2.2.1. 无符号数
      2. 2.2.2. 有符号数
        1. 2.2.2.1. 原码
        2. 2.2.2.2. 反码
        3. 2.2.2.3. 补码
        4. 2.2.2.4. 移码
    3. 2.3. 3. 定点数和浮点数
      1. 2.3.1. 定点数
        1. 2.3.1.1. 定点整数
        2. 2.3.1.2. 定点小数
      2. 2.3.2. 浮点数
        1. 2.3.2.1. IEEE 754 标准
    4. 2.4. 4. 算术运算
      1. 2.4.1. 定点数的加减运算
        1. 2.4.1.1. 加法运算
        2. 2.4.1.2. 减法运算
      2. 2.4.2. 定点数的乘法运算
        1. 2.4.2.1. 原码一位乘法
        2. 2.4.2.2. 补码一位乘法(Booth 算法)
      3. 2.4.3. 定点数的除法运算
        1. 2.4.3.1. 原码一位除法
        2. 2.4.3.2. 补码一位除法
    5. 2.5. 5. 逻辑运算
      1. 2.5.1. 基本逻辑运算
      2. 2.5.2. 复合逻辑运算
  3. 3. 指令系统
    1. 3.1. 1. 指令的基本概念
      1. 3.1.1. 指令的格式
      2. 3.1.2. 指令的长度
    2. 3.2. 2. 指令的寻址方式
      1. 3.2.1. 基本寻址方式
    3. 3.3. 3. 指令的分类
      1. 3.3.1. 按功能分类
    4. 3.4. 4. 指令系统的设计
      1. 3.4.1. 复杂指令系统计算机(CISC)
      2. 3.4.2. 精简指令系统计算机(RISC)
  4. 4. 中央处理器(CPU)
    1. 4.1. 1. CPU 的功能和组成
      1. 4.1.1. CPU 的功能
      2. 4.1.2. CPU 的组成
    2. 4.2. 2. 指令的执行过程
      1. 4.2.1. 指令周期
      2. 4.2.2. 指令执行的基本流程
    3. 4.3. 3. 控制器的设计
      1. 4.3.1. 硬布线控制器
      2. 4.3.2. 微程序控制器
        1. 4.3.2.1. 微程序控制的基本概念
    4. 4.4. 4. 流水线技术
      1. 4.4.1. 流水线的基本概念
      2. 4.4.2. 流水线的结构
      3. 4.4.3. 流水线的性能指标
      4. 4.4.4. 流水线的冲突
  5. 5. 总线系统
    1. 5.1. 1. 总线的基本概念
    2. 5.2. 2. 总线的分类
      1. 5.2.1. 按传输信息类型分类
      2. 5.2.2. 按连接部件分类
    3. 5.3. 3. 总线的结构
      1. 5.3.1. 单总线结构
      2. 5.3.2. 双总线结构
      3. 5.3.3. 三总线结构
    4. 5.4. 4. 总线的仲裁
      1. 5.4.1. 集中式仲裁
      2. 5.4.2. 分布式仲裁
    5. 5.5. 5. 总线的定时和同步
      1. 5.5.1. 同步定时方式
      2. 5.5.2. 异步定时方式
  6. 6. 存储器系统
    1. 6.1. 1. 存储器的分类
      1. 6.1.1. 按存储介质分类
      2. 6.1.2. 按存取方式分类
      3. 6.1.3. 按在计算机中的作用分类
    2. 6.2. 2. 半导体存储器
      1. 6.2.1. RAM(随机存取存储器)
      2. 6.2.2. ROM(只读存储器)
    3. 6.3. 3. 高速缓冲存储器(Cache)
      1. 6.3.1. Cache 的基本原理
      2. 6.3.2. Cache 的映射方式
      3. 6.3.3. Cache 的替换算法
    4. 6.4. 4. 虚拟存储器
      1. 6.4.1. 虚拟存储器的基本概念
      2. 6.4.2. 虚拟存储器的实现方式
      3. 6.4.3. 地址转换
    5. 6.5. 5. 多级存储体系
  7. 7. 输入输出系统
    1. 7.1. 1. I/O 系统的组成
    2. 7.2. 2. I/O 设备的分类
      1. 7.2.1. 按功能分类
      2. 7.2.2. 按数据传输方式分类
    3. 7.3. 3. I/O 接口
      1. 7.3.1. I/O 接口的功能
      2. 7.3.2. I/O 接口的类型
    4. 7.4. 4. I/O 控制方式
      1. 7.4.1. 程序查询方式
      2. 7.4.2. 中断驱动方式
      3. 7.4.3. DMA 方式
      4. 7.4.4. 通道方式
    5. 7.5. 5. I/O 中断
      1. 7.5.1. 中断的基本概念
      2. 7.5.2. 中断的分类
      3. 7.5.3. 中断处理的过程
  8. 8. 计算机系统的结构
    1. 8.1. 1. 计算机的基本结构
      1. 8.1.1. 冯·诺依曼结构
      2. 8.1.2. 哈佛结构
    2. 8.2. 2. 多处理器系统
      1. 8.2.1. 多处理器系统的类型
      2. 8.2.2. 对称多处理器(SMP)
      3. 8.2.3. 大规模并行处理器(MPP)
    3. 8.3. 3. 流水线和并行处理技术
      1. 8.3.1. 流水线技术
      2. 8.3.2. 并行处理技术
  9. 9. 计算机组成原理面试题
    1. 9.1. 1. 冯·诺依曼计算机的基本组成和工作原理是什么?
    2. 9.2. 2. 什么是机器数?机器数有哪些表示方法?
    3. 9.3. 3. 什么是补码?补码有什么优点?
    4. 9.4. 4. 什么是指令周期?指令周期包括哪些阶段?
    5. 9.5. 5. 什么是 Cache?Cache 的基本原理是什么?
    6. 9.6. 6. 什么是虚拟存储器?虚拟存储器的实现方式有哪些?
    7. 9.7. 7. 什么是总线?总线的分类有哪些?
    8. 9.8. 8. I/O 控制方式有哪些?各有什么优缺点?
  10. 10. 参考资料
  11. 11. 总结

计算机组成原理

计算机系统概述

1. 计算机系统的层次结构

计算机系统由硬件和软件两大部分组成,从功能上可分为多个层次:

  1. 硬件层(第 0 层):由电子电路和物理设备组成,是计算机的物理基础
  2. 微程序控制层(第 1 层):用微指令控制硬件操作
  3. 机器语言层(第 2 层):由机器指令组成,直接控制硬件
  4. 操作系统层(第 3 层):管理硬件资源,提供用户接口
  5. 汇编语言层(第 4 层):用汇编语言编写程序,通过汇编器转换为机器语言
  6. 高级语言层(第 5 层):用高级语言编写程序,通过编译器转换为机器语言
  7. 应用程序层(第 6 层):各种应用程序,如办公软件、游戏等

2. 计算机的基本组成

根据冯·诺依曼结构,计算机由五大部件组成:

  • 运算器:执行算术运算和逻辑运算
  • 控制器:控制和协调其他部件的工作
  • 存储器:存储程序和数据
  • 输入设备:将外部信息输入到计算机
  • 输出设备:将计算机处理结果输出到外部

3. 计算机的工作原理

冯·诺依曼计算机的基本工作原理是存储程序原理

  1. 将程序和数据存入存储器
  2. 控制器从存储器中取出指令,分析指令
  3. 控制器根据指令要求,控制各部件执行相应操作
  4. 重复步骤 2 和 3,直到程序执行完毕

数据的表示和运算

1. 数制转换

二进制、八进制、十进制、十六进制

  • 二进制(Binary):以 2 为基数,使用 0 和 1 表示
  • 八进制(Octal):以 8 为基数,使用 0-7 表示
  • 十进制(Decimal):以 10 为基数,使用 0-9 表示
  • 十六进制(Hexadecimal):以 16 为基数,使用 0-9 和 A-F 表示

数制转换方法

二进制转十进制
1
1011B = 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11D
十进制转二进制
1
2
11D = 1011B
(除2取余,逆序排列)
二进制转八进制
1
2
101101B = 010 110 100B = 2 6 4Q = 264Q
(三位一组,从右往左)
二进制转十六进制
1
2
10110110B = 1011 0110B = B 6H = B6H
(四位一组,从右往左)

2. 机器数的表示

无符号数

无符号数是正整数,没有符号位,所有位都用来表示数值大小。

有符号数

有符号数用最高位表示符号(0 表示正,1 表示负),其余位表示数值。

原码
  • 正数的原码:符号位为 0,数值部分为真值的绝对值
  • 负数的原码:符号位为 1,数值部分为真值的绝对值
1
2
+1011B的原码:01011B
-1011B的原码:11011B
反码
  • 正数的反码:与原码相同
  • 负数的反码:符号位不变,数值部分按位取反
1
2
+1011B的反码:01011B
-1011B的反码:10100B
补码
  • 正数的补码:与原码相同
  • 负数的补码:反码加 1
1
2
+1011B的补码:01011B
-1011B的补码:10101B
移码
  • 常用于表示浮点数的阶码
  • 补码的符号位取反
1
2
+1011B的移码:11011B
-1011B的移码:00101B

3. 定点数和浮点数

定点数

定点数是指小数点位置固定的数,分为定点整数和定点小数。

定点整数

小数点固定在最低位之后,如:

1
1011B = 11D
定点小数

小数点固定在符号位之后,如:

1
0.1011B = 0.6875D

浮点数

浮点数是指小数点位置不固定的数,采用科学计数法表示:

1
N = S × r^E

其中,S 为尾数,r 为基数,E 为阶码。

IEEE 754 标准

IEEE 754 标准规定了浮点数的表示格式:

  • 单精度浮点数(32 位):1 位符号位,8 位阶码(移码),23 位尾数
  • 双精度浮点数(64 位):1 位符号位,11 位阶码(移码),52 位尾数

4. 算术运算

定点数的加减运算

采用补码进行加减运算,符号位与数值位一起参与运算。

加法运算
1
[x]补 + [y]补 = [x + y]补 (mod 2^n)
减法运算
1
[x - y]补 = [x]补 + [-y]补 (mod 2^n)

定点数的乘法运算

原码一位乘法
  1. 符号位单独处理
  2. 数值部分采用绝对值相乘
  3. 用移位和加法实现
补码一位乘法(Booth 算法)
  1. 符号位与数值位一起参与运算
  2. 根据相邻两位的状态决定操作
  3. 用移位和加法实现

定点数的除法运算

原码一位除法
  1. 符号位单独处理
  2. 数值部分采用绝对值相除
  3. 用移位和减法实现
补码一位除法
  1. 符号位与数值位一起参与运算
  2. 用移位和加法/减法实现

5. 逻辑运算

基本逻辑运算

  • 与运算(AND):全 1 为 1,否则为 0
  • 或运算(OR):有 1 为 1,否则为 0
  • 非运算(NOT):取反
  • 异或运算(XOR):不同为 1,相同为 0

复合逻辑运算

  • 与非运算(NAND):先与后非
  • 或非运算(NOR):先或后非
  • 与或非运算(AND-OR-NOT):先与后或再非

指令系统

1. 指令的基本概念

指令的格式

指令由操作码和地址码两部分组成:

1
2
3
┌─────────────────┬─────────────────────────────────┐
│ 操作码(OP) │ 地址码(A) │
└─────────────────┴─────────────────────────────────┘
  • 操作码:表示指令的操作类型
  • 地址码:表示指令的操作数地址

指令的长度

  • 单字长指令:指令长度等于机器字长
  • 半字长指令:指令长度等于机器字长的一半
  • 双字长指令:指令长度等于机器字长的两倍

2. 指令的寻址方式

寻址方式是指确定操作数地址的方式。

基本寻址方式

  1. 立即寻址:操作数直接在指令中
  2. 直接寻址:操作数的地址直接在指令中
  3. 间接寻址:指令中给出的是操作数地址的地址
  4. 寄存器寻址:操作数在寄存器中
  5. 寄存器间接寻址:寄存器中存放的是操作数的地址
  6. 相对寻址:以 PC 为基准,加上偏移量
  7. 基址寻址:以基址寄存器为基准,加上偏移量
  8. 变址寻址:以变址寄存器为基准,加上偏移量
  9. 堆栈寻址:操作数在堆栈中

3. 指令的分类

按功能分类

  • 数据传送类指令:实现数据的传送
  • 算术运算类指令:实现算术运算
  • 逻辑运算类指令:实现逻辑运算
  • 移位操作类指令:实现数据的移位
  • 程序控制类指令:控制程序的执行流程
  • 输入输出类指令:实现输入输出操作
  • 处理机控制类指令:控制处理机的状态

4. 指令系统的设计

复杂指令系统计算机(CISC)

  • 指令数量多,功能复杂
  • 指令长度可变
  • 寻址方式多
  • 执行速度较慢

精简指令系统计算机(RISC)

  • 指令数量少,功能简单
  • 指令长度固定
  • 寻址方式少
  • 执行速度快
  • 采用流水线技术

中央处理器(CPU)

1. CPU 的功能和组成

CPU 的功能

  • 指令控制:控制程序的执行顺序
  • 操作控制:控制各部件执行指令规定的操作
  • 时间控制:控制各操作的执行时间
  • 数据加工:对数据进行算术和逻辑运算

CPU 的组成

  • 运算器:执行算术和逻辑运算
    • 算术逻辑单元(ALU)
    • 通用寄存器组
    • 累加器
    • 状态寄存器
  • 控制器:控制 CPU 的工作
    • 程序计数器(PC)
    • 指令寄存器(IR)
    • 指令译码器(ID)
    • 时序控制电路
    • 微操作控制信号形成电路

2. 指令的执行过程

指令周期

指令周期是指执行一条指令所需要的时间,包括:

  1. 取指周期:从存储器中取出指令
  2. 间址周期:如果需要,计算操作数的有效地址
  3. 执行周期:执行指令规定的操作
  4. 中断周期:如果发生中断,处理中断

指令执行的基本流程

  1. 取指:PC→MAR→M→MDR→IR,PC+1
  2. 译码:ID 对 IR 中的操作码进行译码
  3. 取数:根据寻址方式,取出操作数
  4. 执行:ALU 执行运算,结果送回指定位置
  5. 写回:将结果写回存储器或寄存器

3. 控制器的设计

硬布线控制器

硬布线控制器是由逻辑门电路和触发器组成的复杂树形网络,优点是速度快,缺点是设计复杂、修改困难。

微程序控制器

微程序控制器是通过存储在控制存储器中的微程序来控制 CPU 的工作,优点是设计简单、修改方便,缺点是速度较慢。

微程序控制的基本概念
  • 微指令:控制部件发出的控制信号
  • 微程序:实现一条机器指令的若干条微指令的集合
  • 控制存储器:存储微程序的存储器
  • 微地址:微指令在控制存储器中的地址
  • 微命令:控制计算机各部件的基本操作

4. 流水线技术

流水线的基本概念

流水线是一种将指令执行过程分解为多个阶段,每个阶段由专门的硬件完成,各阶段可以并行工作的技术。

流水线的结构

经典的五级流水线结构:

  1. 取指(IF):从存储器中取出指令
  2. 译码(ID):对指令进行译码
  3. 执行(EX):执行指令规定的操作
  4. 访存(MEM):访问存储器
  5. 写回(WB):将结果写回寄存器

流水线的性能指标

  • 吞吐率:单位时间内流水线完成的任务数
  • 加速比:流水线方式与非流水线方式的执行时间之比
  • 效率:流水线中各段的利用率

流水线的冲突

  1. 结构冲突:多个指令同时争用同一硬件资源
  2. 数据冲突:指令之间存在数据依赖关系
  3. 控制冲突:程序转移等引起的冲突

总线系统

1. 总线的基本概念

总线是计算机各部件之间传输信息的公共通道,由数据线、地址线和控制线组成。

2. 总线的分类

按传输信息类型分类

  • 地址总线(AB):传输地址信息
  • 数据总线(DB):传输数据信息
  • 控制总线(CB):传输控制信号

按连接部件分类

  • 内部总线:CPU 内部各部件之间的总线
  • 系统总线:计算机各主要部件之间的总线
    • 数据总线
    • 地址总线
    • 控制总线
  • 外部总线:计算机与外部设备之间的总线

3. 总线的结构

单总线结构

所有部件都连接在一条总线上,结构简单,但总线利用率低。

双总线结构

  • 主存总线:连接 CPU 与主存
  • I/O 总线:连接 CPU 与 I/O 设备

三总线结构

  • 主存总线:连接 CPU 与主存
  • I/O 总线:连接 CPU 与 I/O 设备
  • DMA 总线:连接主存与 I/O 设备

4. 总线的仲裁

总线仲裁是指解决多个部件同时争用总线的问题。

集中式仲裁

仲裁逻辑集中在一处,有:

  • 链式查询方式
  • 计数器定时查询方式
  • 独立请求方式

分布式仲裁

仲裁逻辑分散在各个部件中。

5. 总线的定时和同步

同步定时方式

所有部件都使用同一时钟信号,优点是简单,缺点是灵活性差。

异步定时方式

使用握手信号进行同步,优点是灵活性好,缺点是复杂。

存储器系统

1. 存储器的分类

按存储介质分类

  • 半导体存储器:如 RAM、ROM
  • 磁表面存储器:如硬盘、软盘
  • 光存储器:如光盘、DVD

按存取方式分类

  • 随机存取存储器(RAM):可以随机存取任意位置的数据
  • 只读存储器(ROM):只能读取,不能写入
  • 顺序存取存储器(SAM):只能按顺序存取数据
  • 直接存取存储器(DAM):结合了随机存取和顺序存取的特点

按在计算机中的作用分类

  • 主存储器(内存):直接与 CPU 交换数据
  • 辅助存储器(外存):存储大量数据,速度较慢
  • 高速缓冲存储器(Cache):介于 CPU 和主存之间的高速存储器

2. 半导体存储器

RAM(随机存取存储器)

  • 静态 RAM(SRAM):使用触发器存储数据,不需要刷新,速度快,功耗大
  • 动态 RAM(DRAM):使用电容存储数据,需要定期刷新,速度慢,功耗小

ROM(只读存储器)

  • 掩膜 ROM:由厂家编程,不可修改
  • 可编程 ROM(PROM):用户可编程一次
  • 可擦除可编程 ROM(EPROM):可紫外线擦除,多次编程
  • 电可擦除可编程 ROM(EEPROM):可电擦除,多次编程
  • 闪速存储器(Flash Memory):非易失性,可电擦除,速度快

3. 高速缓冲存储器(Cache)

Cache 的基本原理

Cache 是基于程序访问的局部性原理,将主存中经常访问的数据复制到 Cache 中,提高 CPU 的访问速度。

Cache 的映射方式

  1. 直接映射:每个主存块只能映射到 Cache 中的一个特定块
  2. 全相联映射:每个主存块可以映射到 Cache 中的任意块
  3. 组相联映射:每个主存块可以映射到 Cache 中的特定组中的任意块

Cache 的替换算法

  1. 随机替换算法:随机选择一个块替换
  2. 先进先出(FIFO)替换算法:替换最早进入 Cache 的块
  3. 最近最少使用(LRU)替换算法:替换最近最少使用的块
  4. 最不经常使用(LFU)替换算法:替换访问次数最少的块

4. 虚拟存储器

虚拟存储器的基本概念

虚拟存储器是一种将主存和外存结合起来,为用户提供比实际主存更大的存储空间的技术。

虚拟存储器的实现方式

  1. 分页存储管理:将虚拟空间和物理空间都分为固定大小的页
  2. 分段存储管理:将虚拟空间和物理空间都分为可变大小的段
  3. 段页式存储管理:结合分页和分段的优点

地址转换

虚拟地址到物理地址的转换需要页表或段表的支持。

5. 多级存储体系

为了平衡速度、容量和成本,计算机通常采用多级存储体系:

  • 寄存器:速度最快,容量最小
  • Cache:速度快,容量小
  • 主存:速度中等,容量中等
  • 外存:速度慢,容量大

输入输出系统

1. I/O 系统的组成

I/O 系统由 I/O 设备、I/O 接口和 I/O 总线组成。

2. I/O 设备的分类

按功能分类

  • 输入设备:如键盘、鼠标、扫描仪
  • 输出设备:如显示器、打印机、音箱
  • 输入输出设备:如磁盘、触摸屏

按数据传输方式分类

  • 字符设备:以字符为单位传输数据
  • 块设备:以块为单位传输数据

3. I/O 接口

I/O 接口的功能

  • 数据缓冲:解决 CPU 与 I/O 设备之间速度不匹配的问题
  • 信号转换:实现 CPU 与 I/O 设备之间信号电平、格式的转换
  • 设备选择:选择要操作的 I/O 设备
  • 命令解释:解释 CPU 的命令
  • 中断管理:处理 I/O 中断

I/O 接口的类型

  • 并行接口:同时传输多位数据,如打印机接口
  • 串行接口:一位一位地传输数据,如 USB 接口
  • 可编程接口:用户可编程设置接口的工作方式

4. I/O 控制方式

程序查询方式

CPU 不断查询 I/O 设备的状态,直到设备准备就绪,缺点是 CPU 利用率低。

中断驱动方式

I/O 设备准备就绪后,向 CPU 发出中断请求,CPU 暂停当前程序,处理 I/O 请求,优点是 CPU 利用率高。

DMA 方式

直接存储器访问(DMA)方式是指在 DMA 控制器的控制下,直接在 I/O 设备和存储器之间进行数据传输,不需要 CPU 干预,优点是数据传输速度快。

通道方式

通道是一种专门负责 I/O 操作的处理器,可以独立执行通道程序,控制 I/O 设备和存储器之间的数据传输。

5. I/O 中断

中断的基本概念

中断是指 CPU 在执行程序过程中,遇到需要立即处理的事件,暂停当前程序的执行,转去处理该事件,处理完毕后返回原程序继续执行的过程。

中断的分类

  • 内部中断:由 CPU 内部原因引起的中断
  • 外部中断:由 CPU 外部原因引起的中断
    • 可屏蔽中断:可以被屏蔽
    • 不可屏蔽中断:不能被屏蔽

中断处理的过程

  1. 中断请求:I/O 设备向 CPU 发出中断请求
  2. 中断响应:CPU 暂停当前程序,保存现场
  3. 中断处理:执行中断服务程序
  4. 中断返回:恢复现场,返回原程序继续执行

计算机系统的结构

1. 计算机的基本结构

冯·诺依曼结构

冯·诺依曼结构的特点是:

  • 以运算器为中心
  • 存储程序原理
  • 指令和数据用二进制表示
  • 指令由操作码和地址码组成

哈佛结构

哈佛结构的特点是:

  • 程序存储器和数据存储器分开
  • 可以同时读取指令和数据
  • 提高了数据处理速度

2. 多处理器系统

多处理器系统的类型

  • 紧密耦合系统:共享主存和 I/O 设备
  • 松散耦合系统:各处理器有自己的存储器和 I/O 设备

对称多处理器(SMP)

多个处理器共享主存和 I/O 设备,地位平等,共同执行任务。

大规模并行处理器(MPP)

由大量处理器组成,每个处理器有自己的存储器和 I/O 设备,通过高速网络连接。

3. 流水线和并行处理技术

流水线技术

流水线技术是将指令执行过程分解为多个阶段,每个阶段由专门的硬件完成,各阶段可以并行工作。

并行处理技术

  • 时间并行:如流水线技术
  • 空间并行:如多处理器系统
  • 时间并行+空间并行:如超标量流水线

计算机组成原理面试题

1. 冯·诺依曼计算机的基本组成和工作原理是什么?

冯·诺依曼计算机由运算器、控制器、存储器、输入设备和输出设备五大部件组成。其基本工作原理是存储程序原理:将程序和数据存入存储器,控制器从存储器中取出指令,分析指令,控制各部件执行相应操作,重复上述过程直到程序执行完毕。

2. 什么是机器数?机器数有哪些表示方法?

机器数是指在计算机中表示的数,包括符号位和数值位。机器数的表示方法有原码、反码、补码和移码。

3. 什么是补码?补码有什么优点?

补码是一种机器数的表示方法,正数的补码与原码相同,负数的补码是反码加 1。补码的优点是:

  • 可以将减法运算转化为加法运算
  • 符号位可以与数值位一起参与运算
  • 0 的表示唯一

4. 什么是指令周期?指令周期包括哪些阶段?

指令周期是指执行一条指令所需要的时间,包括取指周期、间址周期、执行周期和中断周期。

5. 什么是 Cache?Cache 的基本原理是什么?

Cache 是介于 CPU 和主存之间的高速存储器,用于存储主存中经常访问的数据。Cache 的基本原理是基于程序访问的局部性原理,将主存中经常访问的数据复制到 Cache 中,提高 CPU 的访问速度。

6. 什么是虚拟存储器?虚拟存储器的实现方式有哪些?

虚拟存储器是一种将主存和外存结合起来,为用户提供比实际主存更大的存储空间的技术。虚拟存储器的实现方式有分页存储管理、分段存储管理和段页式存储管理。

7. 什么是总线?总线的分类有哪些?

总线是计算机各部件之间传输信息的公共通道。总线的分类有:

  • 按传输信息类型:地址总线、数据总线、控制总线
  • 按连接部件:内部总线、系统总线、外部总线
  • 按在计算机中的作用:主存总线、I/O 总线、DMA 总线

8. I/O 控制方式有哪些?各有什么优缺点?

I/O 控制方式有程序查询方式、中断驱动方式、DMA 方式和通道方式。

  • 程序查询方式:优点是简单,缺点是 CPU 利用率低
  • 中断驱动方式:优点是 CPU 利用率高,缺点是数据传输速度慢
  • DMA 方式:优点是数据传输速度快,缺点是需要 DMA 控制器
  • 通道方式:优点是可以独立执行通道程序,缺点是成本高

参考资料

  1. 《计算机组成原理》(第五版),白中英 主编
  2. 《计算机组成与设计:硬件/软件接口》(第五版),David A. Patterson 等著
  3. 《计算机组成原理》(第四版),唐朔飞 主编
  4. 《深入理解计算机系统》(第三版),Randal E. Bryant 等著

总结

计算机组成原理是计算机科学与技术专业的核心课程,它主要研究计算机的硬件组成、工作原理和设计方法。本文从计算机系统概述入手,详细介绍了数据的表示和运算、指令系统、中央处理器、总线系统、存储器系统、输入输出系统和计算机系统的结构等内容,并解答了一些常见的计算机组成原理面试题。

通过学习本文,读者可以对计算机的硬件组成和工作原理有一个全面的认识,理解计算机各部件之间的关系和相互作用,掌握计算机设计的基本原理和方法。计算机组成原理是学习计算机体系结构、操作系统、编译原理等课程的基础,对于理解计算机系统的整体架构和工作机制至关重要。

随着计算机技术的不断发展,计算机的硬件结构和工作原理也在不断更新和完善,读者应该保持学习的热情,关注计算机硬件技术的最新发展,以便更好地理解和应用计算机技术。