**运算器 + 控制器(合称 CPU)**:是计算机的硬件核心,负责数据处理、指令执行和系统控制

一、计算机系统硬件组成
计算机硬件由五大基本部件构成:

  1. 运算器 + 控制器(合称 CPU):是计算机的硬件核心,负责数据处理、指令执行和系统控制。
  2. 存储器:用于存储程序和数据,分为:
    • 内部存储器(内存):访问速度快、容量较小,用于临时存放正在运行的程序和数据。
    • 外部存储器(外存):如硬盘、U盘等,容量大、速度慢,用于长期保存信息。
  3. 输入设备:如键盘、鼠标、扫描仪等,将用户指令或数据传入计算机。
  4. 输出设备:如显示器、打印机、音响等,将计算机处理结果呈现给用户。
  5. 总线系统(虽未明确列出,但实际连接各部件):传输数据、地址和控制信号。

二、CPU 的功能与组成

  1. CPU 的主要功能

    • 程序控制:通过程序计数器(PC)控制指令的执行顺序。
    • 操作控制:控制器发出控制信号,协调各个部件完成指令操作。
    • 时间控制:确保各操作按正确的时序进行(如取指、译码、执行)。
    • 数据处理:利用 ALU 完成算术与逻辑运算,是核心计算能力。
    • 中断处理:响应外部事件(如键盘输入)或内部异常(如除零错误),暂停当前任务转而处理紧急事务。
  2. CPU 的核心组成部分

部件子组件及功能说明
运算器- ALU(算术逻辑单元):执行加减、与或非等运算。
- 累加寄存器 AC:作为运算过程中的主工作寄存器。
- 数据缓冲寄存器 DR:暂存从内存读出或写入的数据,起缓冲作用。
- 状态条件寄存器 PSW:记录运算结果的状态(如进位标志 C、零标志 Z、溢出标志 V 等)。
控制器- 指令寄存器 IR:保存当前正在执行的指令。
- 程序计数器 PC:指向下一条要执行的指令地址。
- 地址寄存器 AR:保存当前 CPU 要访问的内存地址。
- 指令译码器 ID:分析指令的操作码,生成相应的控制信号序列。
寄存器组包括通用寄存器(供程序员/编译器灵活使用)和专用寄存器(如 SP 栈指针、BP 基址指针等),提高访问速度。
  1. 多核 CPU
    • 定义:在一个物理 CPU 芯片中集成两个或多个独立的处理器核心,每个核心拥有自己的运算器、控制器和一级缓存(L1 Cache),共享二级甚至三级缓存。
    • 主流厂商实现方式
      • AMD:采用单 Die 多核设计,核心间通过高速互连架构(如 Infinity Fabric)通信,集成度高、延迟低。
      • Intel:早期采用“双芯封装”技术(多个芯片封装在一起),现代也转向单 Die 多核。
    • 优势:真正实现并行计算,显著提升多任务、多线程应用性能。
    • 发挥性能的前提
      • 操作系统需支持多线程调度;
      • 应用程序需设计为可并行化结构(如使用多线程编程模型)。

三、数据表示(机器数)

在计算机内部,所有数据均以 二进制形式 表示,称为“机器数”。主要包括以下类型:

  1. 无符号数

    • 所有位都表示数值大小,仅能表示非负整数(0 及正数)。
    • 例如:8 位无符号数范围是 0 ~ 255(即 00000000₂ ~ 11111111₂)。
  2. 带符号数

    • 最高位为 符号位:0 表示正数,1 表示负数。
    • 常见编码方式:
      • 原码:符号位 + 数值的绝对值。
        • 缺点:+0 和 -0 有两种表示(如 8 位下:+0=00000000,-0=10000000),不利于运算。
      • 反码
        • 正数反码 = 原码;
        • 负数反码 = 符号位不变,其余各位取反。
        • 示例:-5 的 8 位原码为 10000101 → 反码为 11111010。
      • 补码(最常用):
        • 正数补码 = 原码;
        • 负数补码 = 反码 + 1。
        • 优点:统一了加减法运算(减法可用加法实现),且只有一个零(解决了 ±0 问题)。
        • 示例:-5 的补码 = 11111011。
      • 移码:常用于浮点数的阶码表示,便于比较大小(尤其判断指数正负)。

注:现代计算机普遍采用 补码 来表示带符号整数,简化硬件设计。

# 示例:Python 中查看负数的 8 位补码表示
def get_8bit_complement(n):
    if n >= 0:
        return format(n, '08b')
    else:
        return format((1 << 8) + n, '08b')  # 补码计算:2^8 + (-n)

print(get_8bit_complement(-5))  # 输出: 11111011

程序计数器(PC)指令寄存器(IR) 是 CPU 控制器中的两个关键寄存器,它们在指令执行过程中扮演不同但密切相关的角色。主要区别如下:

对比项程序计数器(PC)指令寄存器(IR)
功能存放下一条将要执行的指令在内存中的地址。存放当前正在执行的那条指令的完整内容(操作码 + 地址码)。
作用阶段取指前:提供地址以从内存中取出指令。取指后:用于译码和执行当前指令。
更新时机通常在每次取指完成后自动递增(或被跳转指令修改)。每当一条新指令被取入 CPU 后即被更新。
是否参与控制控制指令流的顺序(顺序执行或跳转)。提供给指令译码器(ID),决定需要执行何种操作(如加法、跳转等)。
举例说明若 PC = 0x1000,则 CPU 将从内存地址 1000H 处读取下一条指令。假设 IR 中的内容是 0010 1100,译码器会识别出这是“将数据加载到累加器”的指令。

工作流程示意:

1. PC → 地址寄存器(AR) → 访问内存指定地址
2. 内存返回指令 → 数据缓冲寄存器(DR) → 装入 IR
3. IR 提供给指令译码器 → 生成控制信号
4. PC 自动+1(或由跳转指令设置新值)→ 指向下一条指令

简记口诀

  • PC 管“去哪里取”(地址)
  • IR 管“现在做什么”(指令内容)
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值