首页 > 其他分享 >【计算机组成原理】五、中央处理器:1.CPU的功能与结构&指令执行过程(运算器、数据通路、控制器、指令周期)

【计算机组成原理】五、中央处理器:1.CPU的功能与结构&指令执行过程(运算器、数据通路、控制器、指令周期)

时间:2024-08-28 10:24:48浏览次数:11  
标签:主存 周期 数据通路 指令 寄存器 执行 CPU

五、中央处理器

文章目录

1.CPU的功能与结构

在这里插入图片描述

存储程序的概念是指将指令以代码形式事先输入计算机的主存储器,然后按其在存储器中的首地址执行程序的第一条指令,以后就按程序的规定顺序执行其他指令,直至程序执行结束。

CPU和主存之间通过一组总线相连,总线中有地址、控制、数据3组信号线。

MAR(主存地址寄存器)中的地址信息会直接送到地址线上,用于指向读/写操作的主存存储单元;

控制线中有读/写信号线,指出数据是从CPU写入主存还是从主存读出到CPU,根据是读操作还是写操作来控制将MDR中的数据是直接送到数据线上还是将数据线上的数据接收到MDR中。

1.1CPU功能

  1. 指令控制。完成取指令、分析指令和执行指令的操作,即程序的顺序控制。
  2. 操作控制。一条指令的功能往往是由若干操作信号的组合来实现的。CPU管理并产生由内存取出的每条指令的操作信号,把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。
  3. 时间控制。对各种操作加以时间上的控制。时间控制要为每条指令按时间顺序提供应有的控制信号。
  4. 数据加工。对数据进行算术和逻辑运算。
  5. 中断处理。对计算机运行过程中出现的异常情况和特殊请求进行处理。

1.2运算器

运算器是计算机的执行部件,用于进行算术运算和逻辑运算。

算术运算是按算术运算规则进行的运算,如加、减、乘、除;逻辑运算包括与、或、非、异或、比较、移位等运算。

1.2.1基本结构
  1. 算术逻辑单元ALU(Arithmetic and Logical Unit),运算器的核心。
  2. 通用寄存器组,用于暂存操作数和中间结果,如累加器ACC乘商寄存器MQ操作数寄存器X变址寄存器IX基址寄存器(堆栈寄存器)BR等,其中ACC,MQ,X是必须有的
    • 累加寄存器ACC用于暂时存放ALU运算的结果信息,实现加法运算。
  3. 暂存寄存器:用于暂存从主存读来的数据,这个数据不能存放在通用寄存器中,否则会破坏其原有内容。
  4. 程序状态字寄存器PSW:也称标志寄存器,用于存放ALU运算得到的一些标志信息或处理机的状态信息。保留由算术逻辑运算指令或测试指令的结果而建立的各种状态信息,如溢出标志(OP)、符号标志(SF)、零标志(ZF)、进位标志(CF)等。PSW中的这些位参与并决定微操作的形成。
  5. 移位器:对运算结果进行移位运算。
  6. 计数器:控制乘除运算的操作步数。

在这里插入图片描述


1.2.2 ALU和寄存器的数据通路

详见本章第三节 3.数据通路

  1. 专用数据通路方式:根据指令执行过程中的数据和地址的流动方向安排连接线路。
    性能较高,基本不存在数据冲突现象,但结构复杂,硬件量大,不易实现。

在这里插入图片描述

  1. CPU内部单总线方式:将所有寄存器的输入端和输出端都连接到一条公共的通路上。
    结构简单,容易实现,但数据传输存在较多冲突的现象,性能较低。

在这里插入图片描述

1.3控制器

控制器是计算机的指挥中心,协调并控制计算机各部件执行程序的指令序列。

1.3.1基本结构

控制器由程序计数器PC指令寄存器IR、**控制单元CU(control unit)**组成。

  • PC用于存放当前欲执行指令的地址,可自动+1以形成下一条指令的地址,与主存的MAR之间有一条直接通路。
  • IR用来存放当前的指令,其内容来自主存的MDR。指令中的操作码OP(IR)送至CU,用以分析指令并发出各种微操作命令序列;地址码Ad(IR)送往MAR,用以取操作数。(操作码表示机器所执行的各种操作,地址码表示参加运算的数在存储器内的位置)。

控制器CU又包含五大部件:

  1. 指令译码器ID instruction decoder
  2. 操作控制器OC operation controller
  3. 时序发生器ST sequence timer

上面3个也可以看作控制单元CU。

两个寄存器

  1. 程序计数器PC program count

  2. 指令寄存器IR instruction register


详细:

  1. 程序计数器PC(program count)。用于指出下一条指令在主存中的存放地址。CPU就是根据PC的内容去主存中取指令的。因程序中指令(通常)是顺序执行的,所以Pc有自增功能。
  2. 指令寄存器IR(instruction register)。用于保存当前正在执行的那条指令,就是一条指令OP+Ad
  3. 指令译码器ID(instruction decoder)。仅对操作码字段进行译码,向控制器提供特定的操作信号。
    • 操作控制器OP,operation controller。
  4. 微操作信号发生器。根据IR的内容(指令)、PSW的内容(状态信息)及时序信号,产生控制整个计算机系统所需的各种控制信号,其结构有组合逻辑型和存储逻辑型两种。
  5. 时序系统。用于产生各种时序信号,它们都是由统一时钟(CLOCK)分频得到。
  6. 存储器地址寄存器MAR。用于存放所要访问的主存单元的地址。
  7. 存储器数据寄存器MDR。用于存放向主存写入的信息或从主存中读出的信息。

在这里插入图片描述

1.3.2控制器功能
  1. 取指令。自动形成指令地址;自动发出取指令的命令。
  2. 分析指令。操作码译码(分析本条指令要完成什么操作);产生操作数的有效地址。
  3. 执行指令。根据分析指令得到的“操作命令”和“操作数地址”,形成操作信号控制序列,控制运算器、存储器以及l/O设备完成相应的操作。
  4. 中断处理。管理总线及输入输出;处理异常情况(如掉电)和特殊请求(如打印机请求打印一行字符)。

在这里插入图片描述

1.4CPU的基本结构

橙色寄存器是对用户可见的,灰色不可见。

在这里插入图片描述

CPU就可以主要分为ALUCU寄存器中断系统四大部分。

在这里插入图片描述

2.指令执行过程

2.1指令周期

指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。

指令周期常常用若干机器周期(也叫CPU周期)来表示。

在这里插入图片描述

一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。

CPU主频:3.0GHz,就是1秒中CPU发出3G CPU内数字脉冲信号震荡。

  • 指令周期
    • 机器周期(CPU周期)
      • 时钟周期(节拍、T周期、CPU时钟周期)

每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。

在这里插入图片描述

四个常见性质:

  1. 一个节拍内可以并行完成多个“相容的”微操作。
  2. 同一个微操作可能在不同指令的不同阶段被使用。
  3. 不同指令的执行周期所需节拍数各不相同。为了简化设计,选择定长的机器周期,以可能出现的最大节拍数为准(通常以访存所需节拍数作为参考)。
  4. 若实际所需节拍数较少,可将微操作安排在机器周期末尾几个节拍上进行。

在这里插入图片描述

例子:

在这里插入图片描述

2.2指令周期流程

标志触发器FE(取指周期)、IND(间址周期)、EX(执行周期)、INT(终端周期).

FE=1就代表取指周期。

在这里插入图片描述

2.3数据流

流程中的4种数据流,不同阶段要求依次访问的数据序列。

5.2_指令周期的数据流_哔哩哔哩_bilibili

  • 取指周期

在这里插入图片描述

  • 执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。不同指令的执行周期操作不同,因此没有统一的数据流向。

  • 中断周期

2.4指令执行方案:如何安排多条指令的执行?

有3种方案:

2.4.1单指令周期在这里插入图片描述

对所有指令都选用相同的执行时间来完成。

优点:指令之间串行执行;指令周期取决于执行时间最长的指令的执行时间。

缺点:对于那些本来可以在更短时间内完成的指令,要使用这个较长的周期来完成,会降低整个系统的运行速度。

2.4.2多指令周期

对不同类型的指令选用不同的执行步骤来完成。

优点:指令之间串行执行;可选用不同个数的时钟周期来完成不同指令的执行过程。

缺点:需要更复杂的硬件设计。

2.4.3流水线方案

在每一个时钟周期启动一条指令,尽量让多条指令同时运行,但各自处在不同的执行步骤中。指令之间并行执行。

标签:主存,周期,数据通路,指令,寄存器,执行,CPU
From: https://blog.csdn.net/weixin_51350847/article/details/141633018

相关文章

  • 【计算机组成原理】汇总四、指令系统
    四、指令系统文章目录四、指令系统1.指令格式2.分类2.1根据地址码数目不同2.1.1零地址指令2.1.2一地址指令2.1.3二地址指令2.1.4三地址指令2.1.5四地址指令2.2根据指令长度2.3根据操作码的长度不同2.3.1==拓展操作码==2.4根据操作类型3.指令寻址3.1顺序寻址3.2跳跃寻......
  • vue全局指令按钮权限控制
    方法一:指令.js//注册一个全局自定义指令`v-has-permission`Vue.directive('has-permission',{bind(el,binding,vnode){//获取绑定的权限值constpermission=binding.value;//检查用户是否拥有该权限consthasPermission=checkUserPermissio......
  • cpu使用率高
    人们常说,计算密集型程序的CPU密集程度更高。那么,JAVA应用程序中的哪些操作更加CPU密集?以下列出了常见的CPU密集型操作:1、频繁的GC;如果访问量很高,可能会导致频繁的GC甚至FGC。当调用量很大时,内存分配将如此之快以至于GC线程将连续执行,这将导致CPU飙升。2、序列化和反序列化。......
  • SSE和AVX指令基本使用
    SSE/AVX指令属于Intrinsics函数,由编译器在编译时直接在调用处插入代码,避免了函数调用的额外开销。但是与inline函数不同,Intrinsics函数的代码由编译器提供,能够更高效地使用机器指令进行优化调整。一般的函数是在库中,IntrinsicFunction内嵌在编译器中(builtintothe......
  • Vue(2)——Vue指令
    目录v-htmlv-show和v-ifv-else和v-else-ifv-onv-bindv-for v-modelv-html设置元素的innerHTML<body><divid="app"><divv-html="msg"></div></div><scriptsrc="https://cdn.jsdelivr.net/np......
  • limu|P31-34|CPU和GPU
    目录CPUVSGPU提升CPU利用率1、提升空间和时间的内存本地性2、并行以利用所有核提升GPU利用率1、并行2、内存本地性3、少用控制语句4、不要频繁在CPU和GPU之间传数据单机多卡并行分布式计算CPUVSGPU首先,一个芯片的空间是有限的,给了很多空间给某个内容(能力强),其他内容的空间就......
  • v-bind指令与class类和style的内联样式的绑定
    1.v-bind指令1.v-bind的认知与用法我们先创建一个新的页面去除掉一些元素保留剩下的元素然后对其添加一些属性和值创建好了之后我们可以来在页面上显示一个图片用我们的image组件找到我们的本地图片的位置或者网络图片的url放入我们的src里面。在src里面用到了我们的图片......
  • Chapter 03 Vue指令(下)
    欢迎大家订阅【Vue2+Vue3】入门到实践专栏,开启你的Vue学习之旅!文章目录前言一、v-on指令二、v-for指令三、v-bind指令四、v-model指令前言在Vue.js中,指令是带有v-前缀的特殊属性,不同属性对应不同的功能。通过学习不同的指令,我们能够灵活应对多种业务场景......
  • 芯片、GPU、CPU、显卡、显存、x86、ARM、AMD等基础知识
    1.芯片芯片指的是半导体材料制成的集成电路,可以包含一个或多个电子元件、电路或系统。芯片可以是任何电子设备的组成部分,不仅限于CPU,还包括GPU、内存芯片、存储控制器、网络接口等。GPU和CPU是两种最常见的特定的芯片。它们分别针对图形处理和通用计算任务进行了优化。2.CPU......
  • 【书生·浦语实战营】进阶岛第6关:MindSearch CPU-only 版部署
    文章目录任务目标学习内容1.创建开发机&环境配置[CondaError:Runcondainit'before'condaactivate']报错解决[ERROR:Couldnotopenrequirementsfile:[Errno13]Permissiondenied:'/root/mindsearch/Mindsearch/requirements.txt]报错解决2.获取硅基流动APIK......