CPU 控制单元

内部架构

CPU 的根本任务就是执行指令,对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块,分别是控制单元、运算单元和存储单元 。其内部架构如下:

CPU 控制单元

【1】控制单元

控制单元是整个CPU的指挥控制中心,由指令寄存器IR(Instruction Register)、指令译码器ID(Instruction Decoder)和 操作控制器OC(Operation Controller) 等组成,对协调整个电脑有序工作极为重要。它根据用户预先编好的程序,依次从存储器中取出各条指令,放在指令寄存器IR中,通过指令译码(分析)确定应该进行什么操作,然后通过操作控制器OC,按确定的时序,向相应的部件发出微操作控制信号。操作控制器OC中主要包括:节拍脉冲发生器、控制矩阵、时钟脉冲发生器、复位电路和启停电路等控制逻辑。

【2】运算单元

运算单元是运算器的核心。可以执行算术运算(包括加减乘数等基本运算及其附加运算)和逻辑运算(包括移位、逻辑测试或两个值比较)。相对控制单元而言,运算器接受控制单元的命令而进行动作,即运算单元所进行的全部操作都是由控制单元发出的控制信号来指挥的,所以它是执行部件。

【3】存储单元

存储单元包括 CPU 片内缓存和寄存器组,是 CPU 中暂时存放数据的地方,里面保存着那些等待处理的数据,或已经处理过的数据,CPU 访问寄存器所用的时间要比访问内存的时间短。采用寄存器,可以减少 CPU 访问内存的次数,从而提高了 CPU 的工作速度。寄存器组可分为专用寄存器和通用寄存器。专用寄存器的作用是固定的,分别寄存相应的数据;而通用寄存器用途广泛并可由程序员规定其用途。

工作原理

总的来说,CPU 从内存中一条一条地取出指令和相应的数据,按指令操作码的规定,对数据进行运算处理,直到程序执行完毕为止。具体过程可分为以下四步:

【1】取指令

CPU 控制器从内存读取一条指令并放入指令寄存器。指令的格式如下:

 

CPU 控制单元

操作码:就是汇编语言里的 mov,add,jmp 等符号码;

操作数地址:说明该指令需要的操作数所在的地方,是在内存里还是在CPU的内部寄存器里。

【2】指令译码

指令寄存器中的指令经过译码,决定该指令应进行何种操作(就是指令里的操作码)、操作数在哪里(操作数的地址) 。

【3】 执行指令

执行指令分为两个阶段: 取操作数 和 进行运算 。

取操作数:CPU 通过寻址操作,从内存(数据段)中读取操作数到通用寄存器中,暂存起来。

进行运算:运算单元通过指令中的操作码,对寄存器中的操作数进行 mov,add,jmp 操作。

【4】 指令计数

修改指令计数器,决定下一条指令的地址 。CPU 重复上述三步操作,处于内存代码段的指令被逐个的执行,直到程序执行完毕为止。

CPU 字长

CPU在单位时间内(同一时间)能一次处理的二进制数的位数叫字长。所以,能处理字长为 8 位数据的 CPU 通常就叫 8 位的 CPU。同理,32 位CPU 能在单位时间内处理字长为 32 位的二进制数据 。

常见的 32位 CPU 和 64位 CPU 主要存在以下两个差异:

【1】处理能力不同

32 位 CPU 的一个指令,最大能处理 32 位二进制数据,即一次能处理 4 个字节数据。
64 位 CPU 的一个指令,最大能处理 64 位二进制数据,即一次能处理 8 个字节数据。

【2】寻址空间不同

32 位 CPU 的寻址范围是 32 位的二进制,32位二进制能表示的地址长度为2的32次方,即寻址空间最大为 4GB。
而 64 位CPU的寻址范围是 64 位的二进制。能表示的地址长度更大,其寻址空间也会更大。

原创发布  @一像素  2018.04

参考资料

控制單元(Control Unit),有時為CPU一部分,有時安裝於CPU外部,負責指揮CPU工作。通過該裝置的運行來控制其他裝置的活動,也被視作有限狀態自動機的一種。

CPU的控制單元曾經只被當成暫時性的通路,其設計十分困難。 目前的控制單元多采用被包含於存儲控制器的微程序加工制造。工作時由微型定序器選定微程序代碼,其各字節即負責控制計算機的各個部分。諸如寄存器,算術邏輯單元,指令寄存器,總線,甚至芯片外部的輸入輸出均在其掌控之中。在當前的計算機中,各子系統分別擁有隸屬於控制單元的控制器,由這些控制器監督各子系統工作。

大多数计算机资源都由控制单元CU管理,其引导在CPU和其他设备间的指令流向,约翰·冯·诺伊曼将其归为冯·诺伊曼结构。在现代CPU的设计中,控制单元通常是CPU的一部分,其整体作用和操作自生产以来就不会改变。

处理器技术

模型
顺序模型

  • 图灵机
    • 通用
    • 波斯特-图灵机
    • 量子
  • 传动带机器英语Belt machine
  • 堆疊結構機器
  • 有限状态机
    • 具数据通路英语Finite state machine with datapath
    • 分层英语Hierarchical state machine
    • 队列英语Queue automaton
  • 寄存器机
    • 计数器
    • 指针英语Pointer machine
    • 隨機存取機
    • 隨機存取儲存程式機

函数式模型

  • 递归函数
  • Λ演算
  • 组合子逻辑
  • 細胞自動機

架構

  • 微架構
  • 冯·诺伊曼结构
  • 哈佛架構
    • 修正哈佛架構英语Modified Harvard architecture
  • 資料流架構英语Dataflow architecture
  • 传输触发英语Transport triggered architecture
  • 元胞英语Cellular architecture
  • 字节序
  • 异构英语Heterogeneous System Architecture
  • Fabric英语Fabric computing
  • 多元處理
  • 認知計算
  • 神经形态英语Neuromorphic engineering

内存访问

  • 非均匀访存模型(NUMA)
  • 均匀访存模型(UMA)
  • 载入/存储英语Load/store architecture
  • 寄存器/存储器英语Register memory architecture

缓存层级英语Cache hierarchy

  • 缓存层级英语Cache hierarchy

記憶體階層

  • 虚拟内存
  • 第二级存储器

指令集架構
类型

  • 复杂指令集(CISC)
  • 精简指令集(RISC)
  • 专用指令集处理器
  • 显式数据图像并行英语Explicit_data_graph_execution(EDGE)
    • TRIPS英语TRIPS architecture
  • 超長指令集(VLIW)
  • 顯式並行指令運算(EPIC)
  • 最小指令集英语Minimal_instruction_set_computer(MISC)
  • 單一指令集(OISC)
  • 無指令集英语No instruction set computing(NISC)
    • 零指令集(ZISC)
  • 比較英语Comparison of CPU architectures

指令集

  • x86
  • ARM
  • MIPS
  • LoongArch
  • PowerPC
  • SPARC
  • IA-64
  • Unicore英语Unicore
  • MicroBlaze英语MicroBlaze
  • RISC-V
  • LMC英语Little man computer
  • 其他英语List of instruction sets

执行

指令流水线

  • 流水线停顿
  • 操作数转发英语Operand forwarding
  • 经典 RISC 流水线英语Classic RISC pipeline

冒險

  • 数据依赖
  • 结构冒险
  • 控制冒险
  • 伪共享英语False sharing

乱序执行

  • Tomasulo算法
    • 保留站
    • 重排序缓冲区
  • 寄存器重命名

推测执行

  • 分支預測
    • 存储相关性预测英语Memory dependence prediction

并行计算

并行层次

  • 位级并行
    • 位序列英语Bit-serial architecture
  • 指令级并行
  • 流水线
    • 标量
    • 純量
    • 超純量
  • 任務并行
    • 线程
    • 进程
  • 数据并行
    • 向量
  • 記憶體
  • 分布式

執行緒

  • 多執行緒
  • 同时多线程
    • 超執行緒
  • 超執行緒
  • 超級線程英语Super-threading
  • 预测多线程英语Speculative multithreading
  • 抢占式
  • 协作式

費林分類法

  • 單指令流單數據流(SISD)
  • 單指令流多數據流(SIMD)
    • 寄存器内英语SIMD within a register
  • 单指令多线程英语Single instruction, multiple threads(SIMT)
  • 多指令流單數據流(MISD)
  • 多指令流多數據流(MIMD)
    • 单程序多数据英语SPMD

電腦性能

  • 晶體管數量
  • 每周期指令(IPC)
    • 每指令周期(CPI)
  • 每秒指令(IPS)
  • 每秒浮點運算次數(FLOPS)
  • 每秒事务处理量 (TPS)
  • 效能功耗比(PPW)

類別

  • 中央处理器(CPU)
  • 圖形處理器(GPU)
    • 图形处理器通用计算(GPGPU)
  • 向量处理器
  • 桶状英语Barrel processor
  • 串流處理
  • 輔助處理器
  • 特殊應用積體電路(ASIC)
  • 现场可编程逻辑门阵列(FPGA)
  • 複雜可程式化邏輯裝置(CPLD)
  • 多晶片模組(MCM)
  • 封裝體系(SiP)

按应用

  • 微处理器
  • 單片機(MCU)
  • 移动处理器英语Mobile processor
  • 笔记本电脑处理器英语Notebook processor
  • 超低电压英语Ultra-low-voltage processor
  • 专用指令集处理器(ASIP)

片上系统

  • 片上系统(SoC)
  • 多处理器片上系统英语Multi-processor system-on-chip(MPSoC)
  • 可编程片上系统(PSoC)
  • 片上网络英语Network on a chip(NoC)

硬件加速

  • 人工智能加速器
  • 视觉处理单元英语Vision processing unit(VPU)
  • 物理處理器(PPU)
  • 數位訊號處理器(DSP)
  • 张量处理器(TPU)
  • 安全加密協處理器
  • 网络处理器
  • 基頻處理器

字长

  • 1位
  • 4位元
  • 8位元
  • 12位元
  • 15位
  • 16位元
  • 24位元英语24-bit computing
  • 32位元
  • 48位元英语48-bit computing
  • 64位元
  • 128位元
  • 256位
  • 位元分割英语bit slicing
  • 其他
    • 可变字长

核心数量

  • 单核英语Single-core
  • 多核
  • 众核英语Manycore processor
  • 异构

組件

  • 核心
  • 缓存
    • CPU缓存
    • 置換機制
    • 一致性
  • 总线
  • 时钟频率
  • 定時器訊號
  • 先進先出演算法(FIFO)

功能单元

  • 算術邏輯單元(ALU)
  • 地址生成单元(AGU)
  • 浮點運算器(FPU)
  • 內存管理單元(MMU)
    • 载入-存储单元英语Load–store unit
    • 轉譯後備緩衝區(TLB)
  • 内存控制器(IMC)

邏輯閘

  • 组合逻辑电路
  • 时序逻辑电路
  • Glue英语Glue logic
  • 邏輯閘
    • 量子閘
    • 逻辑门阵列英语Gate array

寄存器

  • 寄存器
  • 状态寄存器英语Status register
  • 栈寄存器英语Stack register
  • 寄存器堆
  • 記憶體缓冲区
  • 程式計數器

总线

  • 位址匯流排
  • 控制匯流排
  • 后端总线

控制单元

  • 指令单元英语Instruction unit
  • 緩衝器
  • 写入缓冲区英语Write buffer
  • 微程序ROM
  • 计数器

数据通路

  • 数据选择器
  • 数据分配器
  • 加法器
  • 乘法器
    • CPU倍频器
  • 译码器
    • 地址解码器英语Address decoder
    • 加和寻址解码器英语Sum addressed decoder
  • 桶式移位器

電路

  • 集成电路
    • 3D
    • 混合訊號
    • 電源管理
  • 布尔英语Boolean circuit
  • 数字
  • 模拟
  • 量子
  • 开关

电源管理

  • 电源管理单元英语Power Management Unit(PMU)
  • 高级电源管理
  • 高级配置与电源接口(ACPI)
  • 动态时钟频率调整
  • 动态电压调节
  • 时钟门控
  • 效能功耗比(PPW)
  • 空闲竞争英语Race to sleep

相关内容

  • 通用CPU历史英语History of general-purpose CPUs
  • 微处理器年代表英语Microprocessor chronology
  • 处理器设计
  • 数字电路
  • 硬件安全模块
  • 半导体制造
  • Tick-Tock