4。计算机组成原理(4)CPU

嵌入式软件开发,非科班专业必须掌握的基本计算机知识
核心知识点:数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统

CPU(中央处理器)是计算机的核心部件,它主要负责执行计算机指令,控制和协调计算机各部件的工作,是计算机的大脑。CPU通常由运算器、控制器和寄存器组成。

  1. 运算器:负责执行各种算术运算和逻辑运算。它包括ALU(算术逻辑单元)、累加器和数据缓冲器等。

  2. 控制器:负责控制指令的执行顺序,从程序计数器(PC)读取指令,并将其解码为操作码和地址码,然后发出控制信号控制计算机各部件的工作,并把执行结果写入寄存器或在内存中保存。

  3. 寄存器:是CPU内部用来暂存数据的高速存储器,包括通用寄存器、标志寄存器、程序计数器等。它们可以快速地存取和修改数据,优化了计算机的工作效率。

        在计算机系统中,CPU是最关键的组件之一,它的性能直接影响到计算机的运行速度和计算能力。同时,针对不同的应用场景和需求,也出现了许多不同类型和架构的CPU,如x86、ARM、MIPS等,它们在指令集、工作模式、功耗和性能等方面都有所不同,用户可以根据自己的需求进行选择。

一 CPU功能和结构

 CPU的功能

指令控制

控制指令的执行,即完成取指令,分析指令,执行指令的操作

操作控制

根据指令生成操作信号,并将其送入相应的部件,进而操作这些部件进行相应的动作

时间控制

对各种操作的发生加以时间上的控制

数据加工

对数据进行算数逻辑运算

中断处理

对计算机运行过程中的异常情况和特殊请求的处理

 CPU的结构组成

CU(控制器)和ALU(算术逻辑单元,运算器)的功能 

CU是Control Unit(控制器)的缩写,它是计算机系统中的指令控制器,主要负责指令的解码和执行控制。CU从存储器中读取指令,对指令进行分析和解码,并控制CPU对指令进行操作。CU利用时序信号来协调各个子系统的运行,例如ALU、寄存器组、数据通路等,以完成计算机程序的运行。

而ALU则是Arithmetic Logic Unit(算术逻辑单元)的缩写,它是计算机系统中的核心部件,主要负责数值计算和逻辑运算。ALU可以对两个二进制数进行加、减、乘、除、与、或、异或等运算,以及比较、移位、求反等逻辑运算。所有的计算机数据处理都需要经过ALU,因此它被称为计算机的“心脏”。

CU的功能

1.取出指令,并指出下一条指令在主存中的位置

2.对指令译码,产生相应的操作信号进而控制部件进行相应的动作

3.指挥并控制CPU,主存和输入输出设备之间的数据流向

ALU的功能

执行算数和逻辑运算,并执行逻辑测试

CPU中的寄存器

二 指令执行过程

指令周期,包括无条件转移指令,加法指令,乘法指令,不同的指令有不同的指令周期

 要注意,不是所有的都是直接寻址,要考虑到间接寻址的情况

——取指周期——有间接寻址吗?——N,执行周期——有中断吗?

指令周期的数据流

1)取值周期的数据流

数据流步骤

1.当前指令地址送至存储器地址寄存器,记作(PC)->MAR;

2.向主存发送读命令,启动主存做读操作,记作:1->R;

3.将MAR所指主存单元中的内容经过数据总线送入MDR,记作:M(MAR)->MDR;

4.将MDR中的指令送入IR记作:(MDR)->IR

5.形成下一条指令地址(由CU发出信号控制),记作(PC)+1->PC

2)间指周期的数据流(间指周期与PC无关)

1.将指令的地址码送入MAR,记作:Ad(IR)->MAR;

2.向主存发送读命令,启动主存做读操作,记作:1->R;

3.将MAR所指主存单元中的内容经过数据总线送入MDR,记作:M(MAR)->MDR;

4.将有效地址送至指令的地址码字段,记作:MDR->Ad(IR);

3)执行周期的数据流

不同指令执行周期操作不同,数据流多种多样,因此没有统一的数据流表示法

4)中断周期的数据流(没有指令寄存器IR),中断当前的任务,指向新的任务,完成新任务后再回来

1.将特定地址a送至MAR(假设将程序断点存入主存地址a处),记作:a->MAR;

2.向主存发送写命令,启动主存做写操作,记作:1->W;

3.将断点(PC内容)送入MDR,记作:PC->MDR;

4.将MDR的内容通过数据总线写入MAR所指示的存储单元内,记作:MDR->M(MAR);

5.将向量地址形成部件的输出送至PC,为下一条指令的取指周期做准备,记作:向量地址->PC;

三 控制器

控制器的输入输出都有哪些?

四 控制信号与数据通路(包括每个命令的运行时间和空间“从哪到哪”)

1)CPU内部采用总线方式的控制信号与数据通路(运行空间)

在计算机组成原理中,CU、IR、PC、MAR、MDR、ACC、ALU分别代表以下概念:

  1. CU(Control Unit,控制单元):控制器,负责指令的解码和执行控制。
  2. IR(Instruction Register,指令寄存器):存放当前正在执行的指令。
  3. PC(Program Counter,程序计数器):存放下一条指令的地址。
  4. MAR(Memory Address Register,内存地址寄存器):存放要访问的内存地址。
  5. MDR(Memory Data Register,内存数据寄存器):存放从内存中读取或写入的数据。
  6. ACC(Accumulator,累加器):用于存储 ALU 运算的结果,并且也可以用于存储数据。
  7. ALU(Arithmetic Logic Unit,算术逻辑单元):用于进行算术运算和逻辑运算的组件。

以上这些组件都是计算机中的重要组成部分,它们协同工作,以完成计算机程序的执行。其中,CU 通过控制时序信号来协调各个子系统的工作,IR 存储当前正在执行的指令,PC 存储下一条指令的地址,MAR 存储要访问的内存地址,MDR 存储从内存中读取或写入的数据,ACC 用于存储 ALU 运算的结果并可以存储数据,ALU 则是计算机中的核心部件,主要负责数值计算和逻辑运算。

取指周期

1.PC0与MARi有效,完成(PC)->Bus->MAR.

2.通过总线控制向主存发送读信号 1->Bus->R.

3.MDRi有效,存储器通过数据总线,完成M(MAR)->Bus->MDR.

4.MDR0和IRi有效,完成(MDR)->Bus->IR.

5.(PC)+1->PC

 

间指周期

1.MDR0和MARi有效,将形式地址送往MAR,即完成Ad(MDR)->Bus->MAR.

2.通过总线控制向主存发送读信号 1->Bus->R.

3.MDRi有效,存储器通过数据总线,完成M(MAR)->Bus->MDR.

执行周期

1.MDR0和MARi有效,将有效地址经内部总线送入MAR,即完成:(MDR)->Bus->MAR.

2.通过总线控制向主存发送读信号 1->Bus->R.

3.MDRi有效,存储器通过数据总线,完成M(MAR)->Bus->MDR.

4.MDR0和Yi有效,将操作数送至Y,即(MDR)->Bus->Y.

5.ACC0和ALUi同时有效,同时CU向ALU发"ADD"加控制信号,使ACC的内容和Y的内容相加结果送寄存器Z,即(ACC)+(Y)->Z.

6.Z0和ACCi有效,将结果存入ACC,即(Z)->Bus->ACC.

 

2)CPU内部不采用总线方式的控制信号与数据通路(运行空间)

取指周期

1.C0有效,完成(PC)->MAR.

2.C1有效,打开MAR送往地址总线的输出门。

3.通过总线控制向主存发送读命令1->R.

4.C2有效,打开数据总线送至MDR的输入门,即M(MAR)->MDR.

5.C3有效,打开MDR和IR之间的控制门,实现(MDR)->IR

6.C4有效,打开指令操作码送至CU的输出门,即:Op(IR)->CU。

7.(PC)+1->PC.

多级时序系统(运行空间)

时钟周期是最小的,而一般把访问一次存储器的时间作为机器周期,一个指令周期包括多个机器周期

组合逻辑(硬布线)控制

取指周期操作节拍安排

1.(PC)->MAR,1->R

2.  M(MAR)->MDR

3. (MDR)->IR,OP(IR)->CU,(PC)+1->PC

间指周期操作节拍安排(把指令的形式地址先取出来放到MAR中)

1.Ad(IR)->MAR,1->R

2.  M(MAR)->MDR

3. (MDR)->Ad(IR)

执行周期操作节拍安排(以加法为例)

1.Ad(IR)->MAR,1->R

2.  M(MAR)->MDR

3. (ACC)+(MDR)->ACC

中断周期操作节拍安排

1.a->MAR,1->W

2.(PC)->MDR 获取指令地址的数据

3.(MDR)->M(MAR),向量地址->PC

微程序控制

微程序控制是一种计算机指令执行方式,它将指令集的控制逻辑用一组微小的指令(称之为“微指令”)来表示,通过这些微指令来控制计算机中各个部件的运行。相比于硬连线控制电路,微程序控制具有更灵活、易于设计、易于修改和维护等优点。

在微程序控制中,CPU通过执行微指令来控制各个部件的操作。每个指令都包含了一些微操作,如存储器读取、算术运算、逻辑运算等,这些微操作被称为微命令。微程序控制器会根据指令的不同生成对应的微指令序列,并将其发送给CPU中的控制线路,以控制各个部件的操作。

使用微程序控制,可以将控制逻辑与处理器的其他部分分离开来,使处理器的设计更加模块化、易于维护和扩展。同时,由于微指令可以被编写成高级语言,并由编译器进行转换,因此微程序控制也能提高设计效率。

取指周期(注意:微指令>微操作(微命令))

1.取指周期微程序首址送入CMAR:M->CMAR

2.取微指令:CM(CMAR)->CMDR

3.产生微操作命令:第一条微指令操作控制字段中为1的各位发出控制信号,如(PC)->MAR,1->R;

4.形成下一条微指令地址:由此条微指令的顺序控制字段指出下一条微指令地址为M+1,送至CMAR,即Ad(CMDR)->CMAR.

执行周期

微指令的编码方式

直接编码方式、字段直接编码方式、字段间接编码方式、混合编码方式

不论哪种编码方式,都要留出一种状态表示不发控制信号(微命令)

微指令的编码方式通常采用二进制编码,即将微指令中的每个操作和控制信号均用二进制位来表示。这些二进制编码可以使用硬布线的方式实现,也可以存储在控制存储器(Control Memory)中。

对于一个典型的微程序控制器而言,其微指令长度通常在10~100位不等,具体长度取决于CPU所支持的操作种类和性能要求。为了节省存储空间,一些压缩编码方式可以被应用到微指令中,例如通过状态码压缩等技术来减少微指令长度。

在编写微指令时,需要定义每个微操作的二进制编码方式,以及指令格式、操作数和寻址方式等信息。这些信息可以通过微指令编写工具来进行描述和生成,例如 Microprogram Editor(微程序编辑器)等工具。此外,也可以使用高级语言来编写微指令,然后通过编译器进行转换为机器码。

微指令序列地址形成 

微指令序格式

 

五 指令流水线

指令流水线是一种通过分阶段、并行执行指令来提高计算机处理器效率的技术。在指令流水线中,每个指令被划分成多个阶段,不同阶段的指令可以并行执行,从而提高了处理器的吞吐量。指令流水线通常包含以下几个阶段:

  1. 取指阶段(IF):从存储器中读取指令,并将其送到指令译码器中进行解析。

  2. 指令译码阶段(ID):对指令进行译码,并从寄存器中读取操作数。如果有数据冒险或控制冒险,此阶段会等待前一条指令的结果。

  3. 执行阶段(EX):根据指令类型执行相应的操作,例如算术、逻辑运算等。

  4. 访存阶段(MEM):如果指令需要访问内存,则在此阶段进行读写操作。

  5. 写回阶段(WB):将执行结果保存回寄存器。

每个阶段都由专门的电路设备来完成,并且采用流水线技术实现并行处理。在指令流水线中,当一条指令进入下一个阶段时,上一条指令则进入下下一个阶段,依次类推,直到最后所有阶段都完成时,一条指令才被执行完成。

指令流水线的优点是可以提高处理器的吞吐量和运行效率,缺点是可能会因为数据冒险或其他原因导致流水线暂停或出错,并且在进行分支跳转操作时需要额外的处理。因此,设计复杂、高效的指令流水线需要考虑多种因素,并合理选择阶段数、指令设计和控制机制等参数。

含有三个功能段的指令流水线时空图

影响指令流水线效率的因素包括以下几个方面:

  1. 数据相关:指令中的操作数依赖于另一条指令未完成的结果,导致后续指令需要等待前一条指令的结果才能执行。这种情况称为数据相关,可能会导致流水线暂停、降低效率。

  2. 控制相关:指令之间存在分支、跳转等控制转移操作,需要等待条件满足后才能继续执行。这种情况称为控制相关,也可能会导致流水线暂停、降低效率。

  3. 结构相关:指令流水线的硬件结构限制了某些指令的并行度,例如浮点运算指令需要占用特定的功能部件,可能会导致其他指令无法同时执行。

  4. 数据通路延迟:不同功能部件的处理速度不同,可能会导致某些指令需要等待前一阶段的指令完成后才能被执行。

在设计指令流水线时,需要合理考虑这些因素,采用一些优化策略来提高流水线的效率。例如使用多级缓存、预测分支跳转、重排列指令流等技术来减少数据相关和控制相关的影响;使用多功能部件、流水线冒险处理等技术来减少结构相关和数据通路延迟的影响。另外,还需要合理选择流水线阶段数和指令设计等参数,以达到最佳的性能和效率。

 

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CPU全称为中央处理器,是计算机的核心部件之一。它由运算器、控制器和存储器组成。运算器负责执行各种算术和逻辑运算,控制器负责指挥和协调计算机各部件的工作,存储器则用于存储数据和指令。CPU是计算机的大脑,决定了计算机的计算能力。它是一种小型的计算机芯片,嵌入在各种设备上,如台式机、笔记本电脑或平板电脑的主板上。通过在单个计算机芯片上放置数十亿个微型晶体管来构建CPUCPU的结构可以从逻辑上划分为控制单元、运算单元和存储单元,它们通过内部总线连接。控制单元负责控制计算机的工作流程,运算单元负责执行各种算术和逻辑运算,存储单元则用于存储数据和指令。CPU与主存之间通过地址进行通信,CPU从主存中读取数据和指令,并将结果写回主存。主存也被称为内存,是计算机中进行程序运行和数据存储的地方。主存分为只读存储器(ROM)、随机存储器(RAM)和高速缓冲存储器(Cache)。CPU与内存之间的工作关系是:执行一个程序时,首先将程序的代码和数据加载到内存中,然后CPU从内存中读取指令,解析并执行它们,最终得到程序的结果。CPU还包含寄存器,它是一种高速的存储器,用于临时存放数据和指令,以提高计算效率。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [计算机组成原理——CPU](https://blog.csdn.net/include_zrl/article/details/112382253)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值