4。计算机组成原理(4)CPU
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
嵌入式软件开发非科班专业必须掌握的基本计算机知识
核心知识点数据表示和运算、存储系统、指令系统、总线系统、中央处理器、输入输出系统
CPU中央处理器是计算机的核心部件它主要负责执行计算机指令控制和协调计算机各部件的工作是计算机的大脑。CPU通常由运算器、控制器和寄存器组成。
-
运算器负责执行各种算术运算和逻辑运算。它包括ALU算术逻辑单元、累加器和数据缓冲器等。
-
控制器负责控制指令的执行顺序从程序计数器(PC)读取指令并将其解码为操作码和地址码然后发出控制信号控制计算机各部件的工作并把执行结果写入寄存器或在内存中保存。
-
寄存器是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记作AdIR->MAR
2.向主存发送读命令启动主存做读操作记作1->R
3.将MAR所指主存单元中的内容经过数据总线送入MDR记作MMAR->MDR
4.将有效地址送至指令的地址码字段记作MDR->AdIR
3执行周期的数据流
不同指令执行周期操作不同数据流多种多样因此没有统一的数据流表示法
4中断周期的数据流没有指令寄存器IR中断当前的任务指向新的任务完成新任务后再回来
1.将特定地址a送至MAR假设将程序断点存入主存地址a处记作a->MAR;
2.向主存发送写命令启动主存做写操作记作1->W;
3.将断点PC内容送入MDR记作PC->MDR;
4.将MDR的内容通过数据总线写入MAR所指示的存储单元内记作MDR->MMAR;
5.将向量地址形成部件的输出送至PC为下一条指令的取指周期做准备记作向量地址->PC;
三 控制器
控制器的输入输出都有哪些
四 控制信号与数据通路包括每个命令的运行时间和空间“从哪到哪”
1CPU内部采用总线方式的控制信号与数据通路运行空间
在计算机组成原理中CU、IR、PC、MAR、MDR、ACC、ALU分别代表以下概念
- CUControl Unit控制单元控制器负责指令的解码和执行控制。
- IRInstruction Register指令寄存器存放当前正在执行的指令。
- PCProgram Counter程序计数器存放下一条指令的地址。
- MARMemory Address Register内存地址寄存器存放要访问的内存地址。
- MDRMemory Data Register内存数据寄存器存放从内存中读取或写入的数据。
- ACCAccumulator累加器用于存储 ALU 运算的结果并且也可以用于存储数据。
- ALUArithmetic Logic Unit算术逻辑单元用于进行算术运算和逻辑运算的组件。
以上这些组件都是计算机中的重要组成部分它们协同工作以完成计算机程序的执行。其中CU 通过控制时序信号来协调各个子系统的工作IR 存储当前正在执行的指令PC 存储下一条指令的地址MAR 存储要访问的内存地址MDR 存储从内存中读取或写入的数据ACC 用于存储 ALU 运算的结果并可以存储数据ALU 则是计算机中的核心部件主要负责数值计算和逻辑运算。
取指周期
1.PC0与MARi有效完成(PC)->Bus->MAR.
2.通过总线控制向主存发送读信号 1->Bus->R.
3.MDRi有效存储器通过数据总线完成MMAR->Bus->MDR.
4.MDR0和IRi有效完成MDR->Bus->IR.
5.PC+1->PC
间指周期
1.MDR0和MARi有效将形式地址送往MAR即完成AdMDR->Bus->MAR.
2.通过总线控制向主存发送读信号 1->Bus->R.
3.MDRi有效存储器通过数据总线完成MMAR->Bus->MDR.
执行周期
1.MDR0和MARi有效将有效地址经内部总线送入MAR即完成MDR->Bus->MAR.
2.通过总线控制向主存发送读信号 1->Bus->R.
3.MDRi有效存储器通过数据总线完成MMAR->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.
2CPU内部不采用总线方式的控制信号与数据通路运行空间
取指周期
1.C0有效完成PC->MAR.
2.C1有效打开MAR送往地址总线的输出门。
3.通过总线控制向主存发送读命令1->R.
4.C2有效打开数据总线送至MDR的输入门即MMAR->MDR.
5.C3有效打开MDR和IR之间的控制门实现MDR->IR
6.C4有效打开指令操作码送至CU的输出门即OpIR->CU。
7.PC+1->PC.
多级时序系统运行空间
时钟周期是最小的而一般把访问一次存储器的时间作为机器周期一个指令周期包括多个机器周期
组合逻辑硬布线控制
取指周期操作节拍安排
1.PC->MAR1->R
2. MMAR->MDR
3. MDR->IR,OPIR->CU,PC+1->PC
间指周期操作节拍安排把指令的形式地址先取出来放到MAR中
1.AdIR->MAR,1->R
2. MMAR->MDR
3. MDR->AdIR
执行周期操作节拍安排以加法为例
1.AdIR->MAR,1->R
2. MMAR->MDR
3. ACC+MDR->ACC
中断周期操作节拍安排
1.a->MAR,1->W
2.PC->MDR 获取指令地址的数据
3.MDR->MMAR向量地址->PC
微程序控制
微程序控制是一种计算机指令执行方式它将指令集的控制逻辑用一组微小的指令称之为“微指令”来表示通过这些微指令来控制计算机中各个部件的运行。相比于硬连线控制电路微程序控制具有更灵活、易于设计、易于修改和维护等优点。
在微程序控制中CPU通过执行微指令来控制各个部件的操作。每个指令都包含了一些微操作如存储器读取、算术运算、逻辑运算等这些微操作被称为微命令。微程序控制器会根据指令的不同生成对应的微指令序列并将其发送给CPU中的控制线路以控制各个部件的操作。
使用微程序控制可以将控制逻辑与处理器的其他部分分离开来使处理器的设计更加模块化、易于维护和扩展。同时由于微指令可以被编写成高级语言并由编译器进行转换因此微程序控制也能提高设计效率。
取指周期注意微指令>微操作微命令
1.取指周期微程序首址送入CMARM->CMAR
2.取微指令CMCMAR->CMDR
3.产生微操作命令第一条微指令操作控制字段中为1的各位发出控制信号如PC->MAR,1->R;
4.形成下一条微指令地址由此条微指令的顺序控制字段指出下一条微指令地址为M+1,送至CMAR即AdCMDR->CMAR.
执行周期
微指令的编码方式
直接编码方式、字段直接编码方式、字段间接编码方式、混合编码方式
不论哪种编码方式都要留出一种状态表示不发控制信号微命令
微指令的编码方式通常采用二进制编码即将微指令中的每个操作和控制信号均用二进制位来表示。这些二进制编码可以使用硬布线的方式实现也可以存储在控制存储器Control Memory中。
对于一个典型的微程序控制器而言其微指令长度通常在10~100位不等具体长度取决于CPU所支持的操作种类和性能要求。为了节省存储空间一些压缩编码方式可以被应用到微指令中例如通过状态码压缩等技术来减少微指令长度。
在编写微指令时需要定义每个微操作的二进制编码方式以及指令格式、操作数和寻址方式等信息。这些信息可以通过微指令编写工具来进行描述和生成例如 Microprogram Editor微程序编辑器等工具。此外也可以使用高级语言来编写微指令然后通过编译器进行转换为机器码。
微指令序列地址形成
微指令序格式
五 指令流水线
指令流水线是一种通过分阶段、并行执行指令来提高计算机处理器效率的技术。在指令流水线中每个指令被划分成多个阶段不同阶段的指令可以并行执行从而提高了处理器的吞吐量。指令流水线通常包含以下几个阶段
取指阶段IF从存储器中读取指令并将其送到指令译码器中进行解析。
指令译码阶段ID对指令进行译码并从寄存器中读取操作数。如果有数据冒险或控制冒险此阶段会等待前一条指令的结果。
执行阶段EX根据指令类型执行相应的操作例如算术、逻辑运算等。
访存阶段MEM如果指令需要访问内存则在此阶段进行读写操作。
写回阶段WB将执行结果保存回寄存器。
每个阶段都由专门的电路设备来完成并且采用流水线技术实现并行处理。在指令流水线中当一条指令进入下一个阶段时上一条指令则进入下下一个阶段依次类推直到最后所有阶段都完成时一条指令才被执行完成。
指令流水线的优点是可以提高处理器的吞吐量和运行效率缺点是可能会因为数据冒险或其他原因导致流水线暂停或出错并且在进行分支跳转操作时需要额外的处理。因此设计复杂、高效的指令流水线需要考虑多种因素并合理选择阶段数、指令设计和控制机制等参数。
含有三个功能段的指令流水线时空图
影响指令流水线效率的因素包括以下几个方面
数据相关指令中的操作数依赖于另一条指令未完成的结果导致后续指令需要等待前一条指令的结果才能执行。这种情况称为数据相关可能会导致流水线暂停、降低效率。
控制相关指令之间存在分支、跳转等控制转移操作需要等待条件满足后才能继续执行。这种情况称为控制相关也可能会导致流水线暂停、降低效率。
结构相关指令流水线的硬件结构限制了某些指令的并行度例如浮点运算指令需要占用特定的功能部件可能会导致其他指令无法同时执行。
数据通路延迟不同功能部件的处理速度不同可能会导致某些指令需要等待前一阶段的指令完成后才能被执行。
在设计指令流水线时需要合理考虑这些因素采用一些优化策略来提高流水线的效率。例如使用多级缓存、预测分支跳转、重排列指令流等技术来减少数据相关和控制相关的影响使用多功能部件、流水线冒险处理等技术来减少结构相关和数据通路延迟的影响。另外还需要合理选择流水线阶段数和指令设计等参数以达到最佳的性能和效率。