计组之中央处理器(CPU)

引言

中央处理器(CPU)是计算机的“大脑”,负责执行指令、处理数据并协调各部件的工作。其设计直接影响计算机的性能和效率。本文将深入剖析CPU的核心功能、控制机制、时序系统及微程序控制原理,并结合实例解析控制单元的设计方法,帮助读者全面理解CPU的工作原理。


一、CPU的功能与组成

1.1 CPU的核心功能

CPU的核心功能是执行程序中的指令流并控制数据流,主要包括:

  • 指令流控制:指令的取出、译码、执行与流向控制。

  • 数据流控制:数据的存取、运算与传输。

1.2 CPU的核心寄存器

CPU通过寄存器暂存中间数据与控制信息,分为两类:

  • 通用寄存器:存放运算数据或地址指针,如AXBX

  • 专用寄存器

    • 程序计数器(PC):存储下一条指令地址。

    • 指令寄存器(IR):保存当前执行的指令。

    • 状态寄存器(PSWR):记录运算状态(如进位标志C、零标志Z)。

1.3 CPU的组成

CPU由运算器控制器构成:

  • 运算器:执行算术运算(加减乘除)与逻辑运算(与或非)。

  • 控制器:生成控制信号,协调指令执行(详见下文)。


二、控制器的实现方法

控制器是CPU的指挥中心,其实现方式分为三类:

2.1 组合逻辑控制器(硬布线控制器)

  • 原理:通过逻辑门电路直接生成控制信号。

  • 优点:执行速度快。

  • 缺点:设计复杂,难以修改(如Intel早期处理器)。

2.2 微程序控制器

  • 原理:将控制信号编码为微指令,存储在控制存储器(CM)中。

  • 优点:设计灵活,支持指令扩展(如现代x86架构)。

  • 缺点:速度较组合逻辑慢。

2.3 PLA控制器

  • 原理:结合组合逻辑与存储逻辑,平衡速度与灵活性。


三、时序系统与控制方式

3.1 时序系统

CPU操作的时间基准分为三级:

  1. 指令周期:执行一条指令的总时间。

  2. 机器周期:完成一个基本操作(如取指、执行)。

  3. 节拍与脉冲:细分机器周期的微操作时间单位。

3.2 控制方式

  • 同步控制:所有操作按统一时钟节拍执行,简单但效率低。

  • 异步控制:按操作实际耗时动态调整,高效但设计复杂。

  • 联合控制:混合同步与异步,兼顾效率与复杂度(现代CPU常用)。


四、微程序控制原理

4.1 基本概念

  • 微命令:控制硬件执行基本操作(如(PC)→MAR)。

  • 微指令:一组微命令的集合,包含操作控制字段与顺序控制字段。

  • 微程序:由微指令序列组成,实现一条机器指令的功能。

4.2 微指令编码方法

  • 直接控制法:每位直接对应一个微命令,并行性强但指令字长。

  • 字段编码法:将微命令分组编码,平衡并行性与指令长度(如字段直接编码)。

4.3 微程序控制器工作流程

  1. 取指阶段:从控制存储器读取微程序入口地址。

  2. 执行阶段:根据操作码跳转至对应微程序,逐条执行微指令。

  3. 返回:执行完毕返回取指阶段,形成循环。


五、控制单元设计实例

5.1 组合逻辑设计

以加法指令ADD为例:

  1. 取指周期(PC)→MAR→Read→MDR→IR→PC+1

  2. 执行周期(MDR)→MAR→Read→MDR→ALU→AC

  3. 控制信号生成:通过逻辑门电路实现时序与操作码的组合。

5.2 微程序设计

  • 微指令格式:25位控制字段,包含ReadWrite、寄存器传输等信号。

  • 微程序示例

  • // 取指微程序(地址00H)
    微指令1: (PC)→MAR | Read
    微指令2: M(MAR)→MDR | (PC)+1→PC
    微指令3: (MDR)→IR | 跳转至操作码对应微程序


六、总结与未来展望

CPU的设计围绕效率、灵活性与扩展性展开:

  • 关键技术:流水线技术、超标量架构、动态微程序优化。

  • 未来趋势

    • 工艺提升:3nm/2nm制程进一步提高集成度。

    • 异构计算:CPU与GPU/TPU协同处理复杂任务。

    • 量子计算:探索新型计算范式对CPU架构的影响。

1. 深入掌握CPU的工作原理,包括ALU、控制器、寄存器、存储器等部件的工作原理; 2. 熟悉和掌握指令系统的设方法,并设简单的指令系统; 3. 理解和掌握小型算机的工作原理,以系统的方法建立起整机概念; 4. 理解和掌握基于VHDL语言和TEC-CA硬件平台设模型机的方法。 二、设要求   参考所给的16位实验CPU的设实现,体会其整体设思路,并理解该CPU的工作原理。在此基础上,对该16位的实验CPU(称为参考CPU)进行改造,以设得到一个8位的CPU。总的要求是将原来16位的数据通路,改成8位的数据通路,总的要求如下: 将原来8位的OP码,改成4位的OP码; 将原来8位的地址码(包含2个操作数),改成4位的地址码(包含2个操作数)。   在上述总要求的基础上,对实验CPU的指令系统、ALU、控制器、寄存器、存储器进行相应的改造。具体要求如下: 修改指令格式,将原来指令长为16位的指令格式改成8位的指令长格式; 设总共16条指令的指令系统。此指令系统可以是参考CPU指令系统的子集,但参考CPU指令系统中A和B中的指令至少都要选用2条。此外,常见的算术逻辑运算、跳转等指令要纳入所设的指令系统; 设8位的寄存器,每个寄存器有1个输入端口和2个输出端口。寄存器的数量受控于每一个操作数的位数,具体要看指令格式如何设; 设8位的ALU,具体要实现哪些功能与指令系统有关。设时,不直接修改参考CPU的VHDL代码,而是改用类似之前基础实验时设ALU的方式设; 设8位的控制逻辑部件,具体结合指令功能、硬布线逻辑进行修改; 设8位的地址寄存器IR、程序数器PC、地址寄存器AR; 设8位的存储器读写部件。由于改用了8位的数据通路,不能直接采用DEC-CA平台上的2片16位的存储芯片,需要按照基础实验3的方法设存储器。此种方法不能通过DebugController下载测试指令,因此测试指令如何置入到存储器中是一个难点。设时,可以考虑简单点地把指令写死在存储器中(可用于验证指令的执行),然后用只读方式读出来;或者考虑在reset的那一节拍里,实现存储器中待测试指令的置入; (可选项)设8位的数据寄存器DR; (可选项)不直接设存储器RAM,而是采用DEC-CA平台上的2片16位的存储芯片.在实现了第9个要求的基础上,实现由Debugcontroller置入待测试指令; (可选项)顶层实体,不是由BDF方式画图实现,而是用类似基础实验4(通用寄存器)中设顶层实体的方式,用VHDL语言来实现。 (可选项)自己设想   利用设好的指令系统,编写汇编代码,以便测试所有设的指令及指令涉及的相关功能。设好测试用的汇编代码后,然后利用Quartus II软件附带的DebugController编写汇编编译规则。接着,利用DebugController软件把汇编编译之后的二进制代码置入到所采用的存储器中,并对设好的8位CPU进行测试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值