初识中央处理器CPU_cpu总线架构-程序员宅基地

技术标签: 后端  计算机组成原理  

目录

 

一、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内部结构

b5319d57e1a14e01b09bc866b013bead.png

 

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从主存中每取出并执行一条指令所需的全部时间。

648f3bcdaa29436faafa13a4423494c0.png

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

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

2.完整的指令周期流程

e87794710b6f437f9c04a1dfaa5f4c8f.png

d9680a0202d5419091a645f4ccc52884.png

 

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

611e5891a2bb412c8ee19593bb2a2b76.png

3.数据通路

67f8ca690dbc476481e2db89c5aa6347.png

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

4.1取指周期数据信息流

c15b004c6c1344d79faae04cc3c0874c.png

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

4.2简址周期数据信息流

a0fce60186374ddd918dca8fc7dccf74.png

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

4.3执行周期数据信息流

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

4.4中断周期数据信息流

e675e9e76e3e485c8a2c927af51fb1f2.png

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

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

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

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

记作:1 -> W

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

记作:(PC) -> MDR

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

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

记作:向量地址 -> PC

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_64443786/article/details/130452317

智能推荐

解决win10/win8/8.1 64位操作系统MT65xx preloader线刷驱动无法安装_mt65驱动-程序员宅基地

文章浏览阅读1.3w次。转载自 http://www.miui.com/thread-2003672-1-1.html 当手机在刷错包或者误修改删除系统文件后会出现无法开机或者是移动定制(联通合约机)版想刷标准版,这时就会用到线刷,首先就是安装线刷驱动。 在XP和win7上线刷是比较方便的,用那个驱动自动安装版,直接就可以安装好,完成线刷。不过现在也有好多机友换成了win8/8.1系统,再使用这个_mt65驱动

SonarQube简介及客户端集成_sonar的客户端区别-程序员宅基地

文章浏览阅读1k次。SonarQube是一个代码质量管理平台,可以扫描监测代码并给出质量评价及修改建议,通过插件机制支持25+中开发语言,可以很容易与gradle\maven\jenkins等工具进行集成,是非常流行的代码质量管控平台。通CheckStyle、findbugs等工具定位不同,SonarQube定位于平台,有完善的管理机制及强大的管理页面,并通过插件支持checkstyle及findbugs等既有的流..._sonar的客户端区别

元学习系列(六):神经图灵机详细分析_神经图灵机方法改进-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏27次。神经图灵机是LSTM、GRU的改进版本,本质上依然包含一个外部记忆结构、可对记忆进行读写操作,主要针对读写操作进行了改进,或者说提出了一种新的读写操作思路。神经图灵机之所以叫这个名字是因为它通过深度学习模型模拟了图灵机,但是我觉得如果先去介绍图灵机的概念,就会搞得很混乱,所以这里主要从神经图灵机改进了LSTM的哪些方面入手进行讲解,同时,由于模型的结构比较复杂,为了让思路更清晰,这次也会分开几..._神经图灵机方法改进

【机器学习】机器学习模型迭代方法(Python)-程序员宅基地

文章浏览阅读2.8k次。一、模型迭代方法机器学习模型在实际应用的场景,通常要根据新增的数据下进行模型的迭代,常见的模型迭代方法有以下几种:1、全量数据重新训练一个模型,直接合并历史训练数据与新增的数据,模型直接离线学习全量数据,学习得到一个全新的模型。优缺点:这也是实际最为常见的模型迭代方式,通常模型效果也是最好的,但这样模型迭代比较耗时,资源耗费比较多,实时性较差,特别是在大数据场景更为困难;2、模型融合的方法,将旧模..._模型迭代

base64图片打成Zip包上传,以及服务端解压的简单实现_base64可以装换zip吗-程序员宅基地

文章浏览阅读2.3k次。1、前言上传图片一般采用异步上传的方式,但是异步上传带来不好的地方,就如果图片有改变或者删除,图片服务器端就会造成浪费。所以有时候就会和参数同步提交。笔者喜欢base64图片一起上传,但是图片过多时就会出现数据丢失等异常。因为tomcat的post请求默认是2M的长度限制。2、解决办法有两种:① 修改tomcat的servel.xml的配置文件,设置 maxPostSize=..._base64可以装换zip吗

Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字-程序员宅基地

文章浏览阅读1k次,点赞17次,收藏22次。Opencv自然场景文本识别系统(源码&教程)_opencv自然场景实时识别文字

随便推点

ESXi 快速复制虚拟机脚本_exsi6.7快速克隆centos-程序员宅基地

文章浏览阅读1.3k次。拷贝虚拟机文件时间比较长,因为虚拟机 flat 文件很大,所以要等。脚本完成后,以复制虚拟机文件夹。将以下脚本内容写入文件。_exsi6.7快速克隆centos

好友推荐—基于关系的java和spark代码实现_本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。-程序员宅基地

文章浏览阅读2k次。本文主要实现基于二度好友的推荐。数学公式参考于:http://blog.csdn.net/qq_14950717/article/details/52197565测试数据为自己随手画的关系图把图片整理成文本信息如下:a b c d e f yb c a f gc a b dd c a e h q re f h d af e a b gg h f bh e g i di j m n ..._本关任务:使用 spark core 知识完成 " 好友推荐 " 的程序。

南京大学-高级程序设计复习总结_南京大学高级程序设计-程序员宅基地

文章浏览阅读367次。南京大学高级程序设计期末复习总结,c++面向对象编程_南京大学高级程序设计

4.朴素贝叶斯分类器实现-matlab_朴素贝叶斯 matlab训练和测试输出-程序员宅基地

文章浏览阅读3.1k次,点赞2次,收藏12次。实现朴素贝叶斯分类器,并且根据李航《统计机器学习》第四章提供的数据训练与测试,结果与书中一致分别实现了朴素贝叶斯以及带有laplace平滑的朴素贝叶斯%书中例题实现朴素贝叶斯%特征1的取值集合A1=[1;2;3];%特征2的取值集合A2=[4;5;6];%S M LAValues={A1;A2};%Y的取值集合YValue=[-1;1];%数据集和T=[ 1,4,-1;..._朴素贝叶斯 matlab训练和测试输出

Markdown 文本换行_markdowntext 换行-程序员宅基地

文章浏览阅读1.6k次。Markdown 文本换行_markdowntext 换行

错误:0xC0000022 在运行 Microsoft Windows 非核心版本的计算机上,运行”slui.exe 0x2a 0xC0000022″以显示错误文本_错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行-程序员宅基地

文章浏览阅读6.7w次,点赞2次,收藏37次。win10 2016长期服务版激活错误解决方法:打开“注册表编辑器”;(Windows + R然后输入Regedit)修改SkipRearm的值为1:(在HKEY_LOCAL_MACHINE–》SOFTWARE–》Microsoft–》Windows NT–》CurrentVersion–》SoftwareProtectionPlatform里面,将SkipRearm的值修改为1)重..._错误: 0xc0000022 在运行 microsoft windows 非核心版本的计算机上,运行“slui.ex