初识中央处理器CPU

news2024/12/23 19:57:36

目录

一、CPU功能

1.控制器功能

2.运算器功能

3.功能执行顺序

4.其他功能

二、CPU结构图

1.CPU与系统总线

2.CPU内部结构

3.运算器中的寄存器组

4.控制器中的寄存器组

三、执行指令的过程

1.指令周期的基本概念

2.完整的指令周期流程

3.数据通路

4.指令周期的数据信息流

4.1取指周期数据信息流

4.2简址周期数据信息流

4.3执行周期数据信息流

4.4中断周期数据信息流


一、CPU功能

(CPU包括运算器与控制器)

1.控制器功能

指令控制:控制器能自动的形成指令的地址,并能发出取指令的命令,将对应此地址的指令取到控制器中。

操作控制:取到指令之后,要产生完成每条指令的控制命令。

时间控制:控制命令产生后,需要对各条控制命令加以时间上的控制。

中断处理:处理异常情况和特殊情况的请求。

2.运算器功能

数据加工:实现算术运算与逻辑运算的功能。

3.功能执行顺序

指令控制->操作控制->时间控制->数据加工

在此同时总线管理与中断处理功能会持续对四个阶段进行管理

4.其他功能

CPU的工作过程就是不停的执行指令,计算机各个部分所进行的工作可以说都是由CPU根据相应的指令来启动。但因为CPU的速度太快,为了使CPU减少等待时间,甚至不参与计算机输入输出过程,通常才去程序中断和DMA的方式。

二、CPU结构图

1.CPU与系统总线

2.CPU内部结构

3.运算器中的寄存器组

暂存寄存器:用于暂时存放从主存中读取来的数据,这个数据不能放在通用寄存器中,否则会破坏其原有的内容。

累加寄存器(ACC):简称累加器,是一个通用寄存器。主要功能:当运算器的ALU单元执行算数或逻辑运算时,为ALU提供一个工作,累加寄存器也暂存ALU运算的结果。

通用寄存器:可以作为某种寻址方式的专用寄存器,主要用于放操作数(源操作数、目的操作数以及中间结果),常见通用寄存器有:AX,BX,CX,DX。

状态条件寄存器(PSW):又叫程序状态字寄存器,保存由算术指令和逻辑指令运行和测试的结果建立的各种条件码内容,例如运算结果进位标志A,运算结果溢出标志B、运算结果为0标志为C、运算结果为1的标志为D,这些标志通常由一位触发器来保存。

4.控制器中的寄存器组

程序计数寄存器(PC):

为了能够保证程序能够持续不断地执行,CPU必须采取程序计数器这一手段,通常程序计数器又称为指令计数器。在程序开始前,必须将它的起始地址,及程序的第一条指令的所在内存单元的地址送入PC。当执行指令时CPU会自动修改PC的内容,使其保存的总是将要执行的下一条指令地址。但是要注意JUMP类指令取出时,PC仍是先加1,因为此时JUMP指令还未执行,当加1后再执行跳转命令。因此程序计数器是具有寄存信息和计数两种功能。

指令寄存器(IR):

指令寄存器用来保存当前正在执行的指令(内容不可变),当执行一条指令时,先把它从内存取到数据缓冲寄存器中,然后传至指令寄存器。指令划分为操作码和地址码字段,是以二进制形式存储。 为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。

存储器数据寄存器(MDR):

主存数据寄存器(MDR),与主存地址寄存器(MAR)帮助完成CPU和主存储器之间的通信,MDR暂存要被写入地址单元或者从地址单元读出的数据。即暂存从主存读入一条指令或数字,反之,写入前也要有MDR暂存。

存储器地址寄存器(MAR):

主要用于存放将被访问的存储单元的地址。

三、执行指令的过程

1.指令周期的基本概念

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

 通常指令周期常常用若干机器周期来表示,机器周期又称CPU周期,

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

2.完整的指令周期流程

不同指令的指令周期不同:

3.数据通路

4.指令周期的数据信息流

4.1取指周期数据信息流

1.(PC)➡MAR
将要执行指令的地址放到地址缓冲寄存器
2.1➡R
发出读命令(固定写法),但是这个也可以不写,
3.M(MAR)➡MDR
将要执行的指令从存储器中读到数据缓冲寄存器, 其中(MAR)表示地址缓冲寄存器中的内容,所以M(MAR)就表示在主存中此地址的内容,即欲执行指令本身.
4.(MDR)➡IR
将要执行的指令打入指令寄存器.
5.OP(IR)➡CU也写作OP(PC)➡CU
(IR)表示指令本身,OP(IR)表示指令的操作码,AD(IR)表示指令的地址码.
6.(PC)+1➡PC
形成下一条指令的地址.

4.2简址周期数据信息流

  1. AD(IR)→MAR
    将指令字中的地址码(形式地址)打入地址缓冲寄存器.
  2. 1→R
    发出读命令.
  3. M(MAR)→MDR
    形成下一条指令地址.

4.3执行周期数据信息流

不同指令的执行周期不同,没有统一的数据流向。

4.4中断周期数据信息流

 中断:暂停当前任务去完成其他任务。

1.CU控制将SP减1,修改后的地址送入MAR.

记作:(SP)-1 -> SP,(SP) ->MAR

2.CU发出控制信号,启动主存做写操作.

记作:1 -> W

3.将断点(PC内容)送入MDR.

记作:(PC) -> MDR

4.CU控制将中断服务程序的入口地址

(由向量地址形成部件产生)送入PC.

记作:向量地址 -> PC

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

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

相关文章

React超级简单易懂全面的有关问题回答(面试)

目录 React事件机制: 2、React的事件和普通的HTML有什么不同: - 事件命名的规则不同,原生事件采用全小写,react事件采用小驼峰 3、React组件中怎么做事件代理?他的原理是什么? 4、React高阶组件、Rend…

【SpringBoot】 整合RabbitMQ 保证消息可靠性传递

生产者端 目录结构 导入依赖 修改yml 业务逻辑 测试结果 生产者端 目录结构 导入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency>&…

无人机集群路径规划:淘金优化算法(Gold rush optimizer,GRO)提供MATLAB代码

一、淘金优化算法GRO 淘金优化算法&#xff08;Gold rush optimizer&#xff0c;GRO&#xff09;由Kamran Zolf于2023年提出&#xff0c;其灵感来自淘金热&#xff0c;模拟淘金者进行黄金勘探行为。 参考文献&#xff1a; K. Zolfi. Gold rush optimizer: A new population-ba…

Python小姿势 - #### Python技术博客:Python多线程编程

Python技术博客&#xff1a;Python多线程编程 你好&#xff0c;这里是自媒体技术博主Aurora&#xff0c;今天我想分享一下Python多线程编程。 首先&#xff0c;什么是多线程编程&#xff1f;多线程编程是一种让多个线程同时执行的编程方式&#xff0c;它可以让程序的执行更加高…

2023年华中杯C题计算结果

经过一晚上代码的编写&#xff0c;论文的写作&#xff0c;C题完整版论文已经发布&#xff0c; 注&#xff1a;蓝色字体为说明备注解释字体&#xff0c;不能出现在大家的论文里。黑色字体为论文部分&#xff0c;大家可以根据红色字体的注记进行摘抄。对应的详细的写作视频教程&…

推荐一款网站内链爬取python脚本

目标 使用 web-tools 提供的webSpider来爬取网站内链&#xff0c;并且将其导出。 webSpider介绍&#xff1a; 官网链接&#xff1a;https://web-tools.cn/web-spider 仓库地址&#xff1a;https://github.com/duerhong/web-spider Web Spider 专门用于爬取网站内链&#xf…

C++ srand()和rand()用法

参考C rand 与 srand 的用法 计算机的随机数都是由伪随机数&#xff0c;即是由小M多项式序列生成的&#xff0c;其中产生每个小序列都有一个初始值&#xff0c;即随机种子。&#xff08;注意&#xff1a; 小M多项式序列的周期是65535&#xff0c;即每次利用一个随机种子生成的随…

论文学习笔记:Transformer Attention Is All You Need

Transformer: Attention Is All You Need 2022 年年底&#xff0c;一个大语言模型 ChatGPT 横空出世&#xff0c;并且迅速点燃了普罗大众对 AI 的热情&#xff0c;短短两个月&#xff0c; ChatGPT 就成为了史上最快成为上亿月活的应用&#xff0c;并且持续受到关注&#xff0c…

【Vue2.0源码学习】变化侦测篇-Object的变化侦测

文章目录 1. 前言2. 使Object数据变得“可观测”3. 依赖收集3.1 什么是依赖收集3.2 何时收集依赖&#xff1f;何时通知依赖更新&#xff1f;3.3 把依赖收集到哪里 4. 依赖到底是谁5. 不足之处6. 总结 1. 前言 我们知道&#xff1a;数据驱动视图的关键点则在于我们如何知道数据发…

记录docker swarm的使用

在前面的几篇文章中我们依次学习了dockerfile、docker-compose的使用&#xff0c;接下来是docker有一个比较 重要的使用&#xff0c;docker swarm的使用&#xff0c;与dockerfile和docker-compose相比较而言&#xff0c;docker swarm是在 多个服务器或主机上创建容器集群服务准…

Leetcode——66. 加一

&#x1f4af;&#x1f4af;欢迎来到的热爱编程的小K的Leetcode的刷题专栏 文章目录 1、题目2、暴力模拟(自己的第一想法)3、官方题解 1、题目 给定一个由 整数 组成的 非空 数组所表示的非负整数&#xff0c;在该数的基础上加一。最高位数字存放在数组的首位&#xff0c; 数组…

CTF-PHP反序列化漏洞2-典型题目

作者&#xff1a;Eason_LYC 悲观者预言失败&#xff0c;十言九中。 乐观者创造奇迹&#xff0c;一次即可。 一个人的价值&#xff0c;在于他所拥有的。可以不学无术&#xff0c;但不能一无所有&#xff01; 技术领域&#xff1a;WEB安全、网络攻防 关注WEB安全、网络攻防。我的…

【纯属娱乐】随机森林预测双色球

目录 一、数据标准化二、预测代码三、后续 一、数据标准化 首先&#xff0c;我们需要对原始数据进行处理&#xff0c;将其转换为可用于机器学习的格式。我们可以将开奖号码中的红球和蓝球分开&#xff0c;将其转换为独热编码&#xff0c;然后将其与期数一起作为特征输入到机器…

ETL工具 - Kettle 查询、连接、统计、脚本算子介绍

一、 Kettle 上篇文章对 Kettle 流程、应用算子进行了介绍&#xff0c;本篇对查询、连接、统计、脚本算子进行讲解&#xff0c;下面是上篇文章的地址&#xff1a; ETL工具 - Kettle 流程、应用算子介绍 二、查询算子 数据输入使用 MySQL 表输入&#xff0c;表结构如下&#x…

给httprunnermanager接口自动化测试平台换点颜色瞧瞧

文章目录 一、背景1.1、修改注册表单的提示颜色1.2、修改后台代码&#xff1a;注册错误提示&#xff0c;最后提交注册&#xff0c;密码校验&#xff1b;1.3、修改了注册&#xff0c;那登录呢&#xff0c;也不能放过二、总结 一、背景 虽然咱给HttpRunnerManger引入进来&#xf…

【云台】开源版本SimpleBGC的电机驱动与控制方式

前言 最近想学习一下云台&#xff0c;发现资料确实还不太好找&#xff0c;比较有参考价值的是俄版的开源版本的云台代码&#xff0c;后面就不开源了&#xff0c;开源版本的是比较原始的算法&#xff0c;差不多是玩具级别的&#xff0c;不过还是决定学习一下&#xff0c;了解一…

PyCaret:低代码自动化的机器学习工具

PyCaret简介 随着ChatGPT和AI画图的大火&#xff0c;机器学习作为实现人工智能的底层技术被大众越来越多的认知&#xff0c;基于机器学习的产品也越来越多。传统的机器学习实现方法需要较强的编程能力和数据科学基础&#xff0c;这使得想零基础尝试机器学习变得非常困难。 机器…

Ucore lab5

实验目的 了解第一个用户进程创建过程了解系统调用框架的实现机制了解ucore如何实现系统调用sys_fork/sys_exec/sys_exit/sys_wait来进行进程管理 实验内容 练习0:已有实验代码改进 ​本实验中完成了用户进程的创建&#xff0c;能够对用户进程进行基本管理&#xff0c;并为…

C语言入门篇——自定义数据篇

目录 1、结构体 1.2、匿名结构体 1.3、结构体的自引用 1.4、结构体的声明和初始化 1.5、结构体的内存对齐 1.6、修改默认对齐数 1.7、结构体传参 2、枚举 3、共用体&#xff08;联合体&#xff09; 1、结构体 设计程序时&#xff0c;最重要的步骤之一是选择表示数据的…

【微机原理】8088/8086微处理器

目录 一、8088/8086的功能结构 1.总线接口部件&#xff08;BIU&#xff09; 2.执行部件&#xff08;EU&#xff09; 二、8088/8086的寄存器结构&#xff08;14个&#xff09; 溢出标志的概念 溢出和进位的区别 8086CPU是Intel系列的16位微处理器&#xff0c;他有16根数据…