欢迎来到硬件部分:计算机体系结构
你好,未来的计算机科学家们!在“计算机体系结构”这一章中,我们将深入了解计算机系统的内部构造。我们将探索核心的物理组件(即硬件),以及它们如何协同工作,让你的程序和应用程序运行起来。
理解硬件至关重要,因为它能解释为什么你的计算机有时运行速度很快,有时又很慢,以及它究竟如何处理你每天输入的数十亿条指令。别担心名称听起来复杂——我们会把整个系统拆解成简单易懂的工作单元!
3.1 中央处理器 (CPU)
CPU 的角色与微处理器 (3.1.1)
中央处理器 (CPU) 通常被称为计算机的“大脑”。它的主要工作是处理输入到计算机中的指令和数据,从而产生结果(输出)。
你可以把 CPU 想象成计算机系统的首席执行官 (CEO)。它负责接收指令、委派任务,并确保一切按时运行。
微处理器只是一种现代集成电路 (IC),它将 CPU 的所有功能集成在一块小型硅片上。如今,大多数计算机、手机和嵌入式系统都在使用微处理器。
冯·诺依曼体系结构 (3.1.2)
大多数现代计算机使用冯·诺依曼体系结构,即指令和数据存储在同一个内存单元(RAM)中。CPU 通过内部组件与该内存进行持续的通信。
CPU 的关键组件 (3.1.2a)
CPU 包含几个处理和控制任务的关键组件:
- 算术逻辑单元 (ALU): 执行所有的算术运算(如加法和减法)以及逻辑运算(如 AND、OR、NOT)。它是负责计算和决策的部件。
- 控制单元 (CU): 管理和协调计算机的其他所有组件。它控制数据和指令的流动,并发出时序信号。它是 CPU 的管理者。
- 寄存器 (Registers): 微小且超高速的内存位置,用于在“取指-译码-执行”周期中临时保存数据或指令。
必备寄存器
- 程序计数器 (PC): 保存下一条指令的地址。
- 内存地址寄存器 (MAR): 保存 CPU 想要读取或写入数据的内存地址。
- 内存数据寄存器 (MDR): 保存从内存读取或即将写入内存的数据或指令。
- 当前指令寄存器 (CIR): 保存当前正在译码和执行的指令。
- 累加器 (ACC): 临时存储由 ALU 执行的计算结果。
💡 记忆小贴士: MAR 存放地址 (Address),MDR 存放数据 (Data)。
总线 (Buses)
总线是负责在 CPU 与其他组件(如 RAM)之间传输数据、地址和信号的电子通路。
- 地址总线: 将地址从 CPU(存储在 MAR 中)传输到内存。它是单向的。
- 数据总线: 在 CPU 和内存之间传输实际的数据和指令(通过 MDR)。它是双向的。
- 控制总线: 传输协调所有活动的控制信号(例如读/写信号、时钟信号)。它是双向的。
取指-译码-执行 (FDE) 周期 (3.1.2b)
这是 CPU 为运行程序而不断重复的核心过程。它每秒钟会发生数百万次!
FDE 周期步骤详解:
- 取指 (FETCH):
- 下一条指令的地址从 PC 复制到 MAR。
- PC 自增以指向下一条指令。
- 从 RAM 中读取指令/数据(地址由 MAR 保存),并沿着数据总线发送到 MDR。
- 指令从 MDR 复制到 CIR。
- 译码 (DECODE):
- 控制单元 (CU) 对存储在 CIR 中的指令进行解释。它会确定该指令的含义(例如:“将这两个数字相加”)。
- CU 为执行阶段准备必要的组件(如 ALU 或特定的寄存器)。
- 执行 (EXECUTE):
- 执行指令。这可能涉及 ALU 执行计算、在寄存器之间移动数据,或者将数据写回内存。
- 如果进行了计算,结果通常会存储在累加器 (ACC) 中。
如果起初觉得有些复杂不用担心——多练习标注流程图并记住寄存器的作用,特别是取指阶段中 PC \(\rightarrow\) MAR 和 MDR \(\rightarrow\) CIR 的过程。
影响 CPU 性能的因素 (3.1.3)
三个主要特征决定了 CPU 执行指令的速度:
- 时钟速度:
- 以千兆赫兹 (GHz) 为单位。这是 CPU 每秒能执行的周期数(FDE 周期)。
- 影响: 时钟越快,CPU 每秒执行的指令就越多,性能越高。
- 核心数:
- 核心本质上是 CPU 内部的一个独立处理单元。
- 影响: 核心越多,CPU 就能同时运行多条指令或任务(并行处理)。四核 CPU 比单核 CPU 能更好地同时处理四个任务。
- 缓存大小:
- 缓存是位于 CPU 内部或非常靠近 CPU 的高速内存。它存储常用的指令和数据。
- 影响: 缓存越大,CPU 等待较慢的主存(RAM)的概率就越低。更大的缓存通常能提升性能。
指令集 (3.1.4)
指令集是特定 CPU 能够理解并处理的所有指令(以机器码形式)的完整列表。每种不同类型的 CPU(例如 Intel 与 ARM)都有其独特的指令集。
嵌入式系统 (3.1.5)
嵌入式系统是一种内置于更大设备中的计算机系统,旨在执行一个或几个专用功能。它们通常是针对实时控制进行过优化的微处理器。
它们与通用计算机(如 PC 或笔记本电脑)不同,后者可以执行多种功能。
嵌入式系统的例子:
- 家用电器(洗衣机、微波炉)
- 汽车(引擎管理、ABS 防抱死刹车系统)
- 安防系统、照明系统和自动售货机。
CPU 通过 FDE 周期运行程序。拥有更多的核心、更快的时钟速度和更大的缓存可以提升性能。小型、专门化的计算机被称为嵌入式系统。
3.2 输入和输出设备
CPU 需要接收信息(输入)以及显示或执行处理后的信息(输出)的方法。
输入设备 (3.2.1)
输入设备允许将数据或指令输入到计算机系统中。
例子包括:
- 键盘、光电鼠标: 用于文本输入和光标控制。
- 条形码扫描仪、二维码扫描仪: 读取光学图案以输入数据(如产品代码)。
- 数码相机、麦克风: 捕捉图像和声音,并将它们转换为数字数据。
- 触摸屏: 一种结合了输入和输出的设备。
- 电阻式: 对压力做出反应(如手写笔或戴手套)。
- 电容式: 对电荷做出反应(如裸露的手指)。
- 红外线式: 使用红外光束/传感器阵列来检测触摸。
- 二维和三维扫描仪: 将物理对象或文档转换为数字表示。
输出设备 (3.2.2)
输出设备将来自计算机的处理数据转换成人类可读或机器可操作的形式。
例子包括:
- LED/LCD 屏幕: 显示视觉输出。(LED 通常比传统 LCD 更亮且更节能)。
- 投影仪 (DLP, LCD): 将视觉输出投影到大型表面上。
- 喷墨打印机、激光打印机: 产生纸质打印件输出。
- 扬声器: 产生声音输出。
- 3D 打印机: 创建三维物理对象。
- 执行器 (Actuator): 一种将电信号转换为物理运动或力的机制(例如打开阀门、移动机械臂、转动电机)。在自动化系统中被大量使用。
传感器与控制 (3.2.3)
传感器是一种输入设备,它检测并测量物理属性(如光、温度或压力),并将其转换为计算机可以处理的数据(通常是电信号)。
传感器是构建自动化系统的基础(详见 6.1 节)。微处理器监控传感器数据,并在需要时向执行器发送指令。
传感器的类型与捕获的数据
- 温度传感器: 测量冷热。(用于中央供暖系统)。
- 光传感器: 测量环境光强度。(用于自动路灯)。
- 压力传感器: 测量力/重量。(用于地垫式防盗报警器)。
- 声学传感器: 测量声音水平/振动。(用于安防系统检测玻璃破碎)。
- 加速度计: 测量加速度/倾斜/振动。(用于手机改变屏幕方向)。
- 湿度传感器: 测量水分/潮湿度。(用于农业土壤灌溉)。
- 气体传感器: 测量特定气体的浓度。(用于工业安全/工厂)。
- 流量传感器: 测量流过某点的液体/气体的速度或体积。(用于测量燃料消耗)。
- 接近传感器: 在无物理接触的情况下检测附近物体的存在。(用于汽车泊车雷达)。
- 液位传感器: 测量物质的高度(例如水箱中的水位)。
- 红外线传感器: 测量热特征或用于遥控器。
- 磁场传感器: 测量磁场的存在或强度(例如指南针应用)。
- pH 传感器: 测量酸碱度。(用于环境科学或农业)。
选择最合适的传感器完全取决于具体背景和你需要监测的物理量。如果你在检测环境,你可能需要温度、湿度或光传感器。
输入设备捕捉数据;输出设备显示结果或驱动物理运动。传感器是自动化系统中必不可少的专用输入设备。
3.3 数据存储
主存储器 (3.3.1)
主存储器是 CPU 可以直接访问的内存。对于存储 CPU 当前正在处理的数据和指令至关重要。
- 随机存取存储器 (RAM):
- 允许读取和写入数据(可读写)。
- 它是易失性的:断电后数据会丢失。
- 用于存储操作系统和当前运行的应用程序/数据。
- 只读存储器 (ROM):
- 允许读取数据,但通常不能写入(只读)。
- 它是非易失性的:断电后数据依然保留。
- 用于存储计算机的启动指令(引导加载程序或固件)。
为什么两者都需要? 计算机需要 ROM 来启动(因为 ROM 在断电时也能保留指令),同时也需要 RAM 在开机后高效运行程序(因为 RAM 对于动态、临时存储要快得多)。
二级存储 (3.3.2)
二级存储用于数据和程序的长期、永久存储。它是非易失性的。CPU 不能直接访问它;数据必须先复制到 RAM 中。
二级存储的类型 (3.3.3)
1. 磁存储 (例如:硬盘驱动器 - HDD)
- 工作原理: 使用涂有磁性材料的旋转盘片。数据通过磁化盘片上的微小区域(位)来存储。读写头在表面移动,利用电磁铁读写数据。
- 结构: 盘片被划分为同心的磁道 (Tracks),磁道进一步被划分为扇区 (Sectors)。
- 例子: 硬盘驱动器 (HDD)。
2. 光存储 (例如:CD, DVD, 蓝光)
- 工作原理: 数据以微小的凹坑 (Pits) 和平坦区域 (Lands) 的形式存储在旋转的光盘上。激光束照射在表面,通过反射模式的差异来解读二进制数据。
- 例子: CD、DVD、蓝光光盘。
3. 固态存储 (闪存) (例如:SSD, U盘)
- 工作原理: 使用电子电路和 NAND 或 NOR 技术。数据通过陷在晶体管浮栅内的电荷来存储。因为没有移动部件,所以速度非常快。
- 例子: 固态硬盘 (SSD)、U 盘、SD 卡。
虚拟内存 (3.3.4)
有时 RAM 满了,但计算机需要加载更多的程序或数据。这时就需要虚拟内存。
- 定义: 虚拟内存是二级存储(如 HDD 或 SSD)的一部分,操作系统将其视为 RAM 来使用。
- 工作原理: 当 RAM 满了,操作系统会将不活跃的数据和指令(称为页 (Pages))从 RAM 移动到虚拟内存。当再次需要这些页时,它们会被换回 RAM。
- 必要性: 它允许计算机运行超过物理 RAM 容量的应用程序,防止系统崩溃。然而,将数据交换到较慢的二级存储会显著降低性能。
云存储 (3.3.5 & 3.3.6)
云存储是指将数据存储在远程物理服务器上(由 Google 或 Amazon 等提供商拥有),而不是本地设备上。数据通过互联网进行访问。
与本地存储的比较:
- 优点 (云存储):
- 可以在任何有互联网访问的地方远程获取数据。
- 供应商提供自动备份和灾难恢复。
- 可扩展性(轻松增加或减少存储空间)。
- 缺点 (云存储):
- 需要持续的互联网连接才能访问数据。
- 安全和隐私风险(依赖第三方供应商)。
- 速度取决于网络带宽(对于大文件可能较慢)。
主存储器(RAM/ROM)速度快,有/无易失性,用于活跃任务。二级存储(HDD/SSD/光盘)用于永久、非易失性存储。虚拟内存在需要时利用二级存储来临时扩充 RAM。
3.4 网络硬件
为了连接设备并在网络中进行通信,需要专门的硬件。
网络接口卡 (NIC) (3.4.1)
每台需要访问网络的计算机都必须有一块网络接口卡 (NIC)。NIC 负责在计算机和网络介质(如以太网电缆或 Wi-Fi 无线电波)之间转换数据。
MAC 地址 (3.4.2)
媒体访问控制 (MAC) 地址是分配给 NIC 的唯一物理标识符,在制造时设定。
- 结构: 通常用十六进制表示(例如:00-1A-2B-3C-4D-5E)。
- 组成: 第一部分标识制造商,第二部分是设备的唯一序列号。
- 用途: 主要用于局域网内,确保数据包到达正确的物理设备。
IP 地址 (3.4.3)
互联网协议 (IP) 地址是分配给连接到计算机网络的每个设备的数字标签。
- 用途: 用于大型网络(包括互联网)中的逻辑寻址和路由。它告诉网络设备位于何处。
- 分配: IP 地址由网络分配;它们可以是静态的(永久设置)或动态的(通常由路由器临时分配)。
IPv4 与 IPv6
互联网依赖于 IP 地址,目前存在两个版本:
- IPv4: 使用 32 位(例如 192.168.1.1)。提供约 43 亿个唯一地址。
- IPv6: 使用 128 位(例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。由于 IPv4 地址耗尽而诞生。它提供了极其庞大的地址空间和更好的路由能力。
路由器的作用 (3.4.4)
路由器是一种网络设备,负责在不同的计算机网络(网络 A 和网络 B)之间引导数据(以数据包形式)。
- 路由器对于连接局域网 (LAN) 和互联网 (WAN) 至关重要。
- 它使用数据包标头中包含的 IP 地址来决定数据传输至目的地最高效的路线。
- 许多路由器还具有为局域网中的设备分配动态 IP 地址的功能(这称为 DHCP,你只需要知道它负责分配 IP 地址即可)。
NIC 是接口。MAC 地址是永久的物理 ID。IP 地址是逻辑网络位置,路由器使用它将数据发送到正确的目的地。
结论
做得好!你现在已经掌握了计算机系统的基础结构。我们了解了 CPU 如何利用其专用组件和 FDE 周期处理信息,硬件如何捕捉和显示数据,以及数据存储在何处。你还知道了连接到网络所需的关键硬件。
请继续复习寄存器的作用以及不同存储类型之间的差异——这些对于考试成功至关重要!