计算机基础知识-计算机组成原理

计算机基础知识-计算机组成原理

第 1 章 计算机系统概述

Q1. 冯・诺依曼计算机的核心思想是什么?

参考答案

  1. 采用二进制表示数据和指令;
  2. 采用存储程序思想:指令和数据以同等地位存于存储器,可按地址寻访;
  3. 计算机由运算器、存储器、控制器、输入设备、输出设备五大部件组成;
  4. 指令由操作码和地址码组成,指令在存储器中按顺序存放。

Q2. 计算机系统的层次结构(从高到低)?

参考答案:高级语言层 → 汇编语言层 → 操作系统层 → 机器语言层 → 微程序层 → 硬件逻辑层。


Q3. 什么是 CPI、MIPS、FLOPS?

参考答案

  • CPI:Clock cycles Per Instruction,执行一条指令所需的平均时钟周期数。
  • MIPS:百万条指令每秒,衡量指令执行速度。
  • FLOPS:浮点运算次数每秒,衡量浮点运算性能。

Q4. 计算机性能指标:主频、CPI、执行时间的关系?

参考答案

CPU执行时间=指令数×CPI÷主频CPU执行时间=指令数×CPI÷主频CPU执行时间=指令数×CPI÷主频


第 2 章 数据的表示与运算

Q1. 原码、反码、补码的特点?

参考答案

  • 原码:最高位为符号位,0 正 1 负;表示简单,但 0 有两种表示,加减复杂。
  • 反码:正数同原码,负数符号位不变、数值位取反;过渡编码。
  • 补码 :正数同原码,负数符号位不变、数值位取反加 1;0 唯一,可将减法转为加法,现代计算机通用。

Q2. 为什么计算机用补码?

参考答案

  1. 统一 0 的表示,只有一个 0;
  2. 减法可转化为加法运算,简化硬件电路;
  3. 符号位可与数值位一同参与运算,无需单独处理。

Q3. 什么是溢出?如何判断溢出?

参考答案

  • 溢出:有符号数运算结果超出表示范围,导致结果错误。
  • 判断方法:
    1. 双符号位法(变形补码):结果符号位为 01(正溢)或 10(负溢)则溢出;
    2. 进位判断法:最高位进位与次高位进位不同则溢出。

Q4. 浮点数表示格式及规格化目的?

参考答案

  • 格式:阶码 + 尾数(阶码决定范围,尾数决定精度)。
  • 规格化:使尾数最高位为有效数字(原码 1,补码 01/10),目的是唯一表示、提高精度、便于比较

第 3 章 存储器层次结构

Q1. 存储器层次结构(三级)及设计原则?

参考答案

  • 层次:寄存器 → Cache → 主存 → 辅存(常说三级:Cache - 主存 - 辅存)。
  • 原则:速度、容量、价格 的折中,遵循局部性原理(时间局部性、空间局部性)。

Q2. Cache 的作用与工作原理?

参考答案

  • 作用:解决 CPU 与主存速度不匹配问题,提高平均访存速度。
  • 原理:利用局部性原理,将主存中频繁访问的数据块复制到 Cache,CPU 优先访问 Cache。

Q3. Cache 的三种映射方式

参考答案

  1. 直接映射:主存块只能映射到 Cache 唯一行,硬件简单、冲突率高。
  2. 全相联映射:主存块可映射到任意 Cache 行,冲突率低、硬件复杂(需比较全部行)。
  3. 组相联映射:先分组,组内全相联;折中方案,现代 CPU 常用(如 2 路、4 路组相联)。

Q4. 什么是虚拟存储器?作用?

参考答案

  • 虚拟存储器是借助辅存,将主存地址空间扩展为逻辑地址空间,对用户透明。
  • 作用:
    1. 扩大编程可用的地址空间;
    2. 实现主存与辅存间自动调度;
    3. 提供内存保护与共享

Q5. TLB(快表)是什么?作用?

参考答案

  • TLB 是专用高速缓存,存放当前最常用的页表项。
  • 作用:加速地址转换,避免每次访存都查主存页表,减少虚实地址转换开销。

第 4 章 指令系统

Q1. 指令格式包含哪两部分?各自作用?

参考答案

  • 操作码:指明指令操作类型(加、减、访存等)。
  • 地址码:指明操作数地址、结果地址或下条指令地址

Q2. 指令寻址方式(常见 5 种)?

参考答案

  1. 立即寻址:操作数直接在指令中,速度最快。
  2. 直接寻址:地址码是有效地址。
  3. 间接寻址:地址码是有效地址的地址,可扩大寻址范围。
  4. 寄存器寻址:操作数在寄存器中,速度快。
  5. 寄存器间接寻址:地址码是寄存器,寄存器存有效地址。

Q3. CISC 与 RISC 的区别?

参考答案

项目 CISC RISC
指令 复杂、变长、数量多 简单、定长、数量少
寻址方式
访存 指令可直接访存 只有 load/store 访存
实现 微程序为主 硬布线为主
适用 x86 ARM、MIPS、RISC-V

第 5 章 中央处理器 CPU

Q1. CPU 的功能与组成?

参考答案

  • 功能:指令控制、操作控制、时间控制、数据加工
  • 组成:运算器 + 控制器 + 寄存器组

Q2. 指令周期、机器周期、时钟周期的关系?

参考答案

  • 时钟周期:最小时间单位,主频倒数。
  • 机器周期:完成一个基本操作(如访存)的时间,包含若干时钟周期。
  • 指令周期:取出并执行一条指令的时间,包含若干机器周期。

Q3. 控制器的两种实现方式?

参考答案

  1. 微程序控制器:将控制信号编成微指令存在控制存储器,灵活、易于修改,CISC 常用。
  2. 硬布线控制器:组合逻辑电路直接产生控制信号,速度快、设计复杂,RISC 常用。

Q4. 什么是流水线?影响流水线效率的因素?

参考答案

  • 流水线:将指令执行过程分为多个阶段(取指、译码、执行、访存、写回),多条指令重叠执行,提高吞吐率。
  • 影响因素:
    1. 结构冲突:硬件资源竞争;
    2. 数据冲突:指令间数据相关(写后读、读后写、写后写);
    3. 控制冲突:分支指令、跳转导致断流。

第 6 章 总线系统

Q1. 总线的定义与分类(按位置)?

参考答案

  • 总线:连接多个部件的共享传输线路。
  • 分类:
    1. 片内总线:芯片内部;
    2. 系统总线:连接 CPU、主存、I/O(数据、地址、控制总线);
    3. 通信总线:计算机间通信。

Q2. 总线的三种仲裁方式?

参考答案

  1. 集中式仲裁:链式查询、计数器定时查询、独立请求;
  2. 分布式仲裁:各部件自主竞争,无中央仲裁器。

Q3. 总线的四种定时 / 通信方式?

参考答案

  1. 同步通信:统一时钟,简单、速度快,适合近距离。
  2. 异步通信:握手信号(应答),灵活,适合速度差异大的设备。
  3. 半同步通信:同步时钟 + 异步握手。
  4. 分离式通信:充分利用总线,提高效率。

第 7 章 输入输出系统

Q1. I/O 控制方式(四种)?

参考答案

  1. 程序查询方式:CPU 轮询,CPU 利用率低。
  2. 程序中断方式:I/O 准备好后发中断,CPU 并行度提高。
  3. DMA 方式:直接内存访问,数据传输不经过 CPU,适合高速设备(磁盘)。
  4. 通道方式:专用 I/O 处理器,进一步解放 CPU,大型机用。

Q2. 中断处理过程(完整步骤)?

参考答案

  1. 中断请求;
  2. 中断判优(仲裁);
  3. 中断响应(关中断、保存断点、向量地址);
  4. 中断服务(保护现场、处理、恢复现场);
  5. 中断返回(开中断、返回到断点)。

Q3. DMA 的工作方式与 3 个阶段?

参考答案

  • 方式:停止 CPU 访存、周期挪用、DMA 与 CPU 交替访存
  • 阶段:
    1. 预处理(CPU 初始化 DMA);
    2. 数据传送(DMA 控制);
    3. 后处理(DMA 发中断,CPU 做结束处理)。

第 8 章 流水线与并行技术(高频)

Q1. 结构相关、数据相关、控制相关分别是什么?如何解决?

参考答案

  1. 结构相关:多指令争同一硬件 → 解决:增加资源、暂停流水线。
  2. 数据相关 :RAW、WAR、WAW → 解决:数据旁路(转发)、插入气泡、编译调度
  3. 控制相关 :分支指令 → 解决:分支预测、延迟槽、预取目标指令

Q2. 什么是超标量、超流水线、超长指令字 VLIW?

参考答案

  • 超标量:有多条流水线,可同时发射多条指令(空间并行)。
  • 超流水线:把阶段分得更细,提高主频(时间并行)。
  • VLIW:编译器打包多个独立操作成一条长指令,硬件简单。
相关推荐
我不是秋秋2 小时前
软件开发项目各角色关系解析:产品/前后端/测试如何高效协作?
java·算法·面试·职场和发展·哈希算法
程序员爱钓鱼4 小时前
Go排序核心库: sort包深度指南
后端·面试·go
hpoenixf10 小时前
2026 年前端面试问什么
前端·面试
RainyJiang12 小时前
谱写Kotlin协程面试进行曲-进阶篇(第二乐章)
面试·kotlin·android jetpack
tobias.b12 小时前
计算机基础知识-数据结构
java·数据结构·考研
做怪小疯子14 小时前
蚂蚁暑期 319 笔试
算法·职场和发展
Moment15 小时前
前端工程化 + AI 赋能,从需求到运维一条龙怎么搭 ❓❓❓
前端·javascript·面试
独自破碎E15 小时前
【面试真题拆解】你知道ThreadLocal是什么吗
java·jvm·面试
memcpy017 小时前
LeetCode 1456. 定长子串中元音的最大数目【定长滑窗模板题】中等
算法·leetcode·职场和发展