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

news2024/11/14 21:07:05

五、中央处理器

文章目录

  • 五、中央处理器
    • 1.CPU的功能与结构
      • 1.1CPU功能
      • 1.2运算器
        • 1.2.1基本结构
        • 1.2.2 ALU和寄存器的数据通路
      • 1.3控制器
        • 1.3.1基本结构
        • 1.3.2控制器功能
      • 1.4CPU的基本结构
    • 2.指令执行过程
      • 2.1指令周期
      • 2.2指令周期流程
      • 2.3数据流
      • 2.4指令执行方案:如何安排多条指令的执行?
        • 2.4.1单指令周期![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9c6e997f5c0240a59d1095af60678ecd.png)
        • 2.4.2多指令周期
        • 2.4.3流水线方案

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流水线方案

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2081296.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

P1-90螺栓产品特性及应用范围

P1-90螺栓是一种高强度、耐高温的特殊紧固件,因其优异的性能而在众多行业中得到了广泛应用。下面我们将详细介绍P1-90螺栓的产品特性及其应用范围。 产品特性 1. 材质与性能 P1-90螺栓通常采用优质合金钢材料制成,具有高强度、耐高温、抗腐蚀等特点。这种…

大模型为何能与人类交流?

大模型在接受到对话后,有4个步骤(如下图) ① 文本token化 ② 单词向量化、位置编码 ③ 自注意力 ④ 编码输出 我们接下来看看这几个步骤是怎么具体工作的。 1、文本token化、向量化embedding和位置编码 任何不同种族交流的前提就是&am…

【GD32 MCU 移植教程】从 STM32F10x 移植到 GD32E103的移植说明

1. 前言 对于使用微控制器进行产品开发的设计人员来说,因产品及功能升级,往往需要将一种微控制器替 换成另一种微控制器,在保留既有功能的情况下增加新功能。为了更快地推出新产品,设计人员经 常要将应用程序移植到新的微控制器…

苹果手机数据恢复方法有哪些?推荐3个快速恢复的方法

你是否遇到过这样的情况呢:苹果手机进水后,无法打开手机,导致手机里的数据不见了;苹果手机不见了,买新手机却没有以前的手机数据……面对这样的情况,如何恢复苹果手机的数据呢?别急,…

Java基础——自学习使用(抽象类)

一、抽象类的定义 在Java中,抽象类是一种不能被实例化的类,它主要用于被其他类继承。抽象类可以包含抽象方法(没有方法体的方法,仅有一个方法签名,以abstract关键字声明)和非抽象方法(即具有实现…

【前沿技术】扩散模型Stable Diffusion原理与应用

Stable Diffusion是一种基于扩散模型(Diffusion Models)的生成技术,近年来在图像生成和其他生成任务中取得了显著的进展。该技术以其高质量的生成效果、稳定的训练过程和广泛的应用前景,迅速在学术界和工业界引起了广泛关注。 以…

C++入门基础知识38——【关于C++ 运算符——逻辑运算符】

成长路上不孤单😊【14后,C爱好者,持续分享所学,如有需要欢迎收藏转发😊😊😊😊😊😊😊!!!!&#xff…

【PWN · 栈迁移 | one-read】[羊城杯 2024]pstack

从前的栈迁移,怎么也得泄露一个栈指针,或者对bss有两次及以上写的能力,这题过分精简,一时间失了分寸。。。好在信息检索到了解法,并动态调试了解了过程 前言 栈溢出长度不够如何利用——可以考虑栈迁移 如果从交互来…

想入门AI产品经理,你一定要明白这些!

前言 对于想要进入AI领域,特别是成为AI产品经理的朋友们来说,了解并掌握一些AI大模型的基础知识是非常重要的。接下来,我就用更通俗的方式,给大家介绍一下入行AI大模型所必备的几点知识。 一、AI大模型是啥? 简单来…

中秋佳节好物推荐:五款数码产品让你的节日更加精彩

中秋节是中华文化中最为重要的传统节日之一,它象征着团圆和丰收,也是我们与家人朋友欢聚一堂,共享美好时光的日子。除了团圆饭桌上的月饼和水果,我们还可以通过一些现代数码产品来为这个节日增添科技感和便利性。无论是提升个人生…

【机器学习】非线性降维、流形学习的基本概念、如何选择合适的非线性降维方法以及非线性降维的流形学习实例(含python代码)

引言 非线性降维是机器学习中用来处理高维数据的一种方法,特别是当数据包含复杂的非线性结构时 文章目录 引言一、非线性降维1.1 目的1.2 非线性降维方法1.2.1 核主成分分析 (Kernel PCA)1.2.2 局部线性嵌入 (LLE)1.2.3 等距映射 (Isomap)1.2.4 拉普拉斯特征映射 (L…

3秒AI写真出图,Stable Diffusion2024升级版+使用教程来了!(无需安装,解压即用)

要说今年摄影圈最大的新秀 那妥妥的就Stable Diffusion 比如下面的写真照片 你敢信这是SD绘画生成的? 就在刚刚它又全面升级了 新版无需安装,直接解压就能用 比之前推送的更加智能、快速和简单 另外还特意为大家准备了 Stable Diffusion 人工智能…

新书速览|Altium Designer 24入门与案例实践:视频教学版

本书内容 《Altium Designer 24入门与案例实践:视频教学版》以当前最新的板卡级设计软件Altium Designer 24为基础,全面讲述电路设计的各种基本操作方法与技巧,并演示两个大型综合实战案例。《Altium Designer 24入门与案例实践:视频教学版》配套示例源文…

RAG的基石:大语言模型文本向量化能力对比

什么是具象的高维向量空间?也许这是一个,在不同的平行空间里面,对不同的物体有各自的表示… 一、概述 大家都比较关心大语言模型的能力,但往往容易忽略其向量化(Embedding)的能力。在RAG应用中&#xff0c…

USB3202N多功能数据采集卡16位模拟量250K频率LabVIEW采集卡

品牌:阿尔泰科技 系列:多功能数据采集卡 概述: USB3202N多功能数据采集卡,LabVIEW无缝连接,提供图形化API函数,提供8通道(RSE、NRSE)、4通道(DIFF)模拟量输…

计算机毕业设计hadoop+spark+hive物流预测系统 物流大数据分析平台 物流信息爬虫 物流大数据 机器学习 深度学习

流程: 1.Python爬虫采集物流数据等存入mysql和.csv文件; 2.使用pandasnumpy或者MapReduce对上面的数据集进行数据清洗生成最终上传到hdfs; 3.使用hive数据仓库完成建库建表导入.csv数据集; 4.使用hive之hive_sql进行离线计算&…

matlab可以把多个二维图合成为三维瀑布图吗??

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

小皮服务器无法启动Mysql服务器

一、用小皮服务器启动mysq,启动后几秒钟就停止了 出现了这种情况怎么办? 二、因为电脑已经启动了mysql服务 关闭掉已启动的mysql服务就好 在电脑任务栏的空白处右键,出现‘任务管理器’ 找到mysql服务,右键“结束任务” 三、再…

【论文笔记】独属于CV的注意力机制CBAM-Convolutional Block Attention Module

目录 写在前面 一、基数和宽度 二、通道注意力模块(Channel Attention Module) 三、空间注意力模块(Spatial Attention Module) 四、CBAM(Convolutional Block Attention Module) 五、总结 写在前面 …

调试JS代码

一、vs code调试 1.在vs code中如何进行代码调试? 首先,在vs code中配置 auto-attach,通过ctrl shift p,输入 auto-attach。设置成smart(智能)。如下图: 然后,对需要调试的语句在…