计算机组成原理概述

前言

本课程研究计算机底层硬件协同工作原理 ;计算机整体分层:硬件→操作系统→应用软件,依托网络实现多设备互联。

所有图像、文字、音视频在硬件中统一以二进制 0/1存储传输,依靠高低电平区分 0、1。

一、计算机系统组成

1. 两大核心部分:硬件 + 软件

  1. 硬件:看得见摸得着的实体(主机、外设)
  • 主机:CPU、内存(主存)
  • 外设(I/O):输入(键盘鼠标)、输出(显示器)、辅存(硬盘 SSD)
  • 硬件决定计算机性能上限
  1. 软件:逻辑程序,无实体,最大化发挥硬件性能
  • 分类:系统软件、应用软件

(1)系统软件(管理硬件、为上层提供服务)

  • 操作系统 OS(Windows/Linux/iOS/Android)核心
  • 数据库管理系统 DBMS
  • 语言处理程序:编译器、汇编器、解释器
  • 标准程序库、网络软件、调试服务程序

(2)应用软件(面向用户,解决具体需求)

微信、抖音、PS、CAD、美图秀秀等

2. 软硬件逻辑等效性

同一功能可硬件 / 软件两种方式实现:

  • 硬件实现:成本高、运算速度快(如专用乘法电路)
  • 软件实现:成本低、速度慢(多次加法模拟乘法)

二、计算机硬件发展四代(按逻辑元件划分,考试重点)

第一代:电子管计算机(1946,ENIAC)

  • 逻辑元件:电子管
  • 特点:体积巨大(170㎡)、耗电 150 千瓦、每秒 5000 次加法、故障率高
  • 编程:机器语言(二进制纸带打孔)
  • 衍生概念 Bug:早期纸带小虫导致程序出错,漏洞由此得名

第二代:晶体管计算机(贝尔实验室 1947 发明)

  • 逻辑元件:晶体管
  • 特点:体积大幅缩小、功耗低、速度提升至几十万次 / 秒
  • 软件:出现 Fortran 高级语言、早期操作系统
  • 缺陷:人工焊接几十万晶体管,焊点易故障

第三代:中小规模集成电路

  • 逻辑元件:集成电路(晶体管集成在芯片)
  • 特点:体积更小、功耗更低、可靠性大幅提升
  • 软件:高级语言爆发、分时操作系统
  • 用途:专业科学计算,未普及个人使用

第四代:大规模 / 超大规模集成电路(当前主流)

  • 逻辑元件:微处理器(CPU),指甲大小芯片集成百亿级晶体管(如 A13 集成 85 亿晶体管)
  • 产物:微型计算机、手机、智能设备
  • 软件:Windows、Linux 等成熟图形操作系统

补充:芯片产业发展史

  1. 肖克利(晶体管之父)创办公司,吸引 8 名人才,后 8 人集体离职,被称为八叛徒
  1. 八叛徒创立仙童半导体,1959 年发明集成电路
  1. 仙童分支:摩尔等人创立英特尔;桑德斯创立 AMD
  1. 摩尔定律:集成电路晶体管数量约 18~24 个月翻倍,性能同步翻倍;主存容量成本同步符合该规律

三、软件语言发展三级

  1. 机器语言(低级):纯二进制 01,硬件唯一识别语言,可读性极差
  1. 汇编语言(低级):助记符替代二进制,和机器指令一一对应,仍贴近硬件
  1. 高级语言:C/C++/Python/Java,贴近人类自然语言,无需关注硬件底层

翻译程序(高级语言转机器语言)

  1. 编译器:一次性全部翻译为可执行文件(C 语言生成.exe),重复执行无需二次翻译,效率高
  1. 解释器:边运行边翻译(Python/JS),重复代码重复翻译,效率低
  1. 汇编器:汇编语言→机器语言
  1. 三者统称翻译程序

C 语言程序完整编译流程

源程序 (.c) → 预处理器(处理宏定义 #)→ 编译器(C→汇编)→ 汇编器(汇编→目标文件.o)→ 链接器(整合库函数)→ 可执行文件 (.exe)

四、计算机两大发展趋势

  1. 微型化:手机、智能穿戴,便携、多用途、高性能
  1. 巨型化:超级计算机,超高并行运算速度
  • 国内代表:神威・太湖之光、天河二号

五、计算机系统多级层次结构(自下而上)

  1. 微程序机器层(硬件底层,微指令)
  1. 传统机器层(机器语言,计组核心研究层)
  1. 操作系统机器层(软硬件分界)
  1. 汇编语言虚拟机
  1. 高级语言虚拟机

|-----------------------------------|
| 底层是上层基础;上层为上层提供抽象;计算机专业 "透明"= 不可见 |

易混概念区分:计算机体系结构 vs 计算机组成原理

  1. 计算机体系结构:程序员可见的硬件属性(指令集 ISA、有无乘法指令),定义软硬件接口
  1. 计算机组成原理:硬件内部如何实现接口(乘法电路怎么搭建),对程序员透明

第二章 计算机硬件五大部件 & 两类冯诺依曼结构

一、冯诺依曼五大硬件部件

运算器、控制器、存储器、输入设备、输出设备(I/O)

  1. 输入设备:信息转为二进制送入计算机(键盘、鼠标)
  1. 输出设备:二进制数据转为人类可读形式(显示器、打印机)
  1. 存储器 :存指令 + 数据,分主存(内存)辅存(硬盘 SSD,属于 I/O)
  1. 运算器 ALU:完成算术运算(加减乘除)、逻辑运算(与或非)
  1. 控制器 CU:解析指令,发送控制信号调度所有硬件

|--------------------------------------|
| 运算器 + 控制器集成在同一芯片 = CPU;CPU + 主存 = 主机 |

二、两种冯诺依曼结构(考试核心考点)

1. 传统冯诺依曼结构(EDVAC,以运算器为中心)

  • 核心特点:所有 I/O、内存的数据传输必须经过运算器中转
  • 流程缺陷:运算器既要计算又要搬运数据,占用运算资源,效率低
  • 课程原文明确结论:传统冯诺依曼机是以运算器为中心

2. 现代计算机结构(优化版,以存储器为中心)

  • 核心特点:I/O 设备直接和主存交换数据,无需经过 CPU 运算器中转
  • 优势:解放运算器,专注数值计算,效率大幅提升
  • 手机、台式机、笔记本全部采用此结构

三、冯诺依曼体系六大核心特点

  1. 五大硬件部件组成计算机
  1. 指令与数据同等地位存放在存储器,统一按地址寻访
  1. 全部采用二进制表示指令、数据
  1. 指令格式:操作码(做什么运算)+ 地址码(操作数据存放地址)
  1. 存储程序:运行前将整套程序提前存入主存,自动逐条执行
  1. 传统结构以运算器为中心(现代改为存储器为中心)

第三章 主存储器(内存)详细结构

一、主存三大核心组件

  1. 存储体:海量存储元组成,存放二进制数据
  • 存储元:1 个电子元件,存 1bit(0/1)
  • 存储单元:一组存储元,存放 1 个存储字
  • 存储字长:一个存储单元包含的二进制位数(8/16/32/64bit)
  1. MAR 存储器地址寄存器
  • 功能:存放要访问的存储单元地址
  • 位数 = 存储单元总数的二进制位数(4 位 MAR 对应 2⁴=16 个单元)
  1. MDR 存储器数据寄存器
  • 功能:存放从主存读出 / 写入的数据
  • 位数 = 存储字长
    补充:MAR、MDR 逻辑归属主存,物理通常集成在 CPU 内

二、主存读写流程(菜鸟驿站类比记忆)

读操作(取数据)

  1. CPU 将目标地址送入 MAR
  1. 控制器发读信号,主存根据 MAR 地址找到存储单元
  1. 单元数据送入 MDR
  1. CPU 从 MDR 取出数据使用

写操作(存数据)

  1. 写入地址送入 MAR,待写入数据送入 MDR
  1. 控制器发写信号
  1. 将 MDR 数据写入 MAR 对应存储单元

三、关键单位区分(高频选择题)

  1. bit(小写 b,比特):1 位二进制,宽带单位 100Mb/s
  1. Byte(大写 B,字节):1Byte = 8bit,文件下载速度单位 MB/s
  1. 字 Word:存储单位,字长由硬件决定(16/32/64 位),不等于字节

第四章 CPU 内部结构:运算器 + 控制器

一、运算器(负责计算,核心 ALU)

组成部件

  1. ALU 算术逻辑单元:运算核心,硬件成本最高,实现算术 / 逻辑运算
  1. ACC 累加器:存放操作数、运算结果
  1. X 通用操作数寄存器:存放另一个操作数
  1. MQ 乘商寄存器:仅乘除运算使用,存放乘数、商、乘积低位

运算示例

Y=A×B+C

  1. 取 A 放入 ACC
  1. 取 B 放入 MQ,A 送入 X,ALU 相乘,结果存入 ACC
  1. 取 C 送入 X,ALU 相加,结果存入 ACC
  1. ACC 结果写入内存 Y 地址

二、控制器(指挥全机工作,核心 CU)

组成部件

  1. CU 控制单元:解析指令,发出硬件控制信号
  1. IR 指令寄存器:存放当前正在执行的指令
  1. PC 程序计数器:存下一条指令地址,取指后自动 + 1

三、单条指令执行三阶段(通用流程)

  1. 取指令
    PC→MAR→主存读出指令→MDR→IR;PC 自动 + 1
  1. 分析指令
    IR 内指令操作码送入 CU,CU 判断运算类型(加 / 乘 / 存数)
  1. 执行指令
    CU 发送控制信号,调度运算器、主存完成对应操作

第五章 程序完整执行模拟(复习实操案例)

示例代码:Y = A × B + C

变量地址:A (5)、B (6)、C (7)、Y (8),程序指令存 0~4 号单元

完整执行步骤简化总结:

  1. PC 初始为 0,取出第一条取数指令,将内存 5 号 A=2 送入 ACC
  1. PC=1,取出乘法指令,取出 B=6,X=2、MQ=6,ALU 相乘 ACC=6
  1. PC=2,取出加法指令,取出 C=1 送入 X,ACC=6+1=7
  1. PC=3,取出存数指令,将 ACC=7 写入内存 8 号单元 Y
  1. PC=4,取出停机指令,程序结束

第六章 补充易混考点汇总

1. 主存 vs 辅存

  • 主存(内存):主机组成部分,程序运行时调入,断电数据丢失
  • 辅存(硬盘):属于 I/O 外设,长期存放程序,运行前载入主存,断电数据保留

2. 主机范围

主机 = CPU(运算器 + 控制器)+ 主存储器;硬盘、显示器不属于主机

3. 存储程序核心意义

无需人工手动接线切换指令,计算机可自动连续执行整套程序,是冯诺依曼架构最大突破(解决 ENIAC 人工操作低效问题)

4. 区分两类中心结构(必背)

  • 老式冯诺依曼(EDVAC):运算器为中心
  • 现代计算机:存储器为中心

5. ISA 指令集体系结构

软硬件之间的接口规范,规定 CPU 支持哪些指令,是体系结构课程核心内容。

相关推荐
最后的最后、7962 小时前
SQLi-Labs 六关 SQL 注入过关笔记
数据库·笔记·sql
筱谙2 小时前
BES BLE CTKD 完整学习笔记
笔记·学习
会编程的土豆2 小时前
数据库mysql八股
数据库·笔记·八股
数据皮皮侠AI2 小时前
退市监督数据(2000-2024)
大数据·人工智能·笔记·机器学习·回归
m0_547486662 小时前
《计算机组成原理教程》全套PPT课件
计算机·计算机组成原理
会编程的土豆3 小时前
MySQL 中的 IN 和 EXISTS(零基础笔记)
数据库·笔记·mysql
神明不懂浪漫5 小时前
【第七章】Java中的常用类
java·开发语言·前端·经验分享·笔记
疯狂打码的少年18 小时前
【软件工程】软件质量保证(ISO/IEC 9126质量特性)
笔记
龙仔72521 小时前
SQL Server OS_Core 数据库全自动备份【完整笔记·可直接复用】
数据库·笔记·oracle