计算机组成原理(超详解!!) 第七节 中央处理器(上)

1.CPU的功能和组成

CPU的功能:

指令控制:程序的顺序控制。

操作控制:管理并产生每条指令的操作信号,并把它们送到相应部件,控制这些部件按要求进行动作。                    

时间控制:对各种操作实施时间上的定时。

数据加工:对数据进行算术和逻辑运算处理。

CPU的基本组成:(1)运算器(2)Cache(3)控制器

运算器:

由ALU、R0-R3、DR和PSW组成;是数据加工处理部件;在控制器的指挥下运行。

运算器的主要功能:执行算术运算;执行逻辑运算,并进行逻辑测试。

定点运算器的结构:单总线结构的运算器;双总线结构的运算器 ;三总线结构的运算器。

控制器:      

组成:PC、指令寄存器(IR) 、AR、指令译码器(ID)、时序产生器和操作控制器;      

作用:“决策机构” ,协调和指挥整个系统的操作。      

功能:

(1)取指令,并指出下一条指令的位置。            

(2)对指令译码或测试,产生相应操作控制信号,以启动规定的动作。                                         

(3)指挥并控制CPU、内存和I/O设备之间数据流动的方向。

各种计算机的CPU可能有这样或那样的不同,但是在CPU中至少要有6类寄存器:

①指令寄存器(IR)

②程序计数器(PC)

③数据地址寄存器(AR) 保存当前CPU所访问的内存单元的地址

④数据缓冲寄存器(DR)    暂时存放由内存读出或写入的指令或数据字

⑤通用寄存器(R0~R3)    存放操作数

⑥状态字寄存器(PSW) 保存由算术和逻辑指令的结果建立的各种条件码

通常把许多寄存器之间传送信息的通路,称为数据通路。 在各寄存器之间建立数据通路的任务,是由称为操作控制器的部件来完成的。  

操作控制器的功能:根据指令操作码和时序信号,产生各种操作控制信号,以便正确地选择数据通路,把有关数据打入到一个寄存器,从而完成取指令和执行指令的控制。  

根据设计方法不同,操作控制器可分为两种:

1.硬连线控制器,它是采用时序逻辑技术来实现的;

2.微程序控制器,它是采用存储逻辑来实现的。  

操作控制器产生的控制信号必须定时,为此必须有时序产生器。  

因为计算机高速地进行工作,每一个动作的时间是非常严格的,不能太早也不能太迟。时序产生器的作用,就是对各种操作信号实施时间上的控制。

操作控制器(微命令发生器)分类:

(1)组合逻辑型:   常规控制器或硬布线控制器,采用组合逻辑技术实现。  

优点:速度快;  

缺点:设计、调试、维修困难,难实现设计自动化。

(2)存储逻辑型 :  微程序控制器,采用存储逻辑来实现,即微操作信号代码化,使得每条指令转化为一段微程序并存入一个专门的存储器中。

(3)结合型 :  PLA控制器,组合两者优点,尽量克服两者的缺点,是一种较有前途的方法

2.指令周期

1.指令周期的基本概念

指令周期:取出并执行一条指令的时间。    

注:各种指令功能变化多样,其指令周期亦不尽相同。

CPU周期|机器周期(工作周期):

通常把一条指令周期划分为若干个机器周期,每个机器周期完成一个基本操作。

主存的工作周期(存取周期)为基础来规定CPU周期,比如,可以用CPU读取一个指令字的最短时间来规定CPU周期

不同的指令,可能包含不同数目的机器周期。

一个机器周期中,包含若干个时钟周期(节拍脉冲或T脉冲)。

CPU周期规定,不同的计算机中规定不同

时钟周期|节拍电位|T周期:

在一个机器周期内,要完成若干个微操作。这些微操作有的可以同时执行,有的需要按先后次序串行执行。因而需要把一个机器周期分为若干个相等的时间段,每一个时间段称为一个节拍。节拍常用具有一定宽度的电位信号表示,称之为节拍电位。

节拍的宽度取决于CPU完成一次基本的微操作的时间,如:ALU完成一次正确的运算,寄存器间的一次数据传送等。

2.MOV指令的指令周期

3.LAD指令的指令周期

4.ADD指令的指令周期

5.STO指令的指令周期

6.JMP指令的指令周期

7.用方框图语言表示指令周期 

方框:代表一个CPU周期,方框中的内容表示数据通路的操作或某种控制操作;

菱形:表示某种判别或测试,在时间上不单占一个CPU周期,而是依附于紧接它的前面一个方框的CPU周期;

箭头:表示CPU执行顺序;

‘ ~ ’ :公操作符号,表示一条指令执行完毕后,CPU所开始执行的一些操作——如中断处理、通道处理等,其中取指令也可认为是公操作。

3.时序产生器和控制方式

1.时序信号的作用和体制

CPU中的控制器用它指挥机器的工作

CPU可以用时序信号/周期信息来辨认从内存中取出的是指令(取指)还是数据(执行)

一个CPU周期中时钟脉冲对CPU的动作有严格的约束

操作控制器发出的各种信号是时间(时序信号)和空间(部件操作信号)的函数。

是CPU中的时间标志。计算机就是按照时序信号准确、迅速、有条不紊指挥各个部件协同工作。

功能:控制操作时间和操作时刻。

基本体制:电位-脉冲制。

当实现寄存器之间的数据传送时,数据加在触发器的电位输入端,而打入数据的控制信号加在触发器的时钟输入端。

所有的操作都按节拍进行,持续时间为一个节拍的称为节拍电位。在节拍电位有效期间产生的脉冲称为节拍脉冲。一个节拍电位中可产生多个节拍脉冲。

硬布线控制器:主状态周期-节拍电位-节拍脉冲三级体制

微程序控制器:节拍电位-节拍脉冲二级体制

节拍电位-节拍脉冲:

控制信号:脉冲

数据:电位

数据准备好后,以电位的方式送触发器

控制信号来到后,用一个脉冲信号把数据装入触发器

硬布线控制器中的时序信号:

硬布线控制器中,时序信号往往采用主状态周期-节拍电位-节拍脉冲三级体制。

主状态周期(指令周期):包含若干个节拍周期,可以用一个触发器的状态持续时间来表示

节拍电位(机器周期):表示一个CPU 周期的时间,包含若干个节拍脉冲

节拍脉冲(时钟周期):表示较小的时间单位

2.时序信号产生器

一般由时钟源、环行脉冲发生器、节拍脉冲和读写时序译码逻辑、启停控制逻辑等组成。

1、时钟源(主时钟)

通常由石英晶体震荡器和与非门组成的正反馈振荡电路组成。  

作用:提供频率稳定且电平匹配的方波时钟脉冲信号,为整个机器提供基准信号。    

时钟源在机器上电后立即开始产生具有一定占空比的时钟脉冲序列,直到关电源为止,中间不允许有任何间断。

2、环形脉冲发生器(节拍信号发生器)

产生一组有序的间隔相等或不等的脉冲序列,以便通过译码电路产生最后所需要的节拍脉冲。

3、节拍脉冲和读写时序译码逻辑

根据环形脉冲发生器产生的脉冲,通过与门和与非门电路产生节拍。同时和微程序控制器中产生的读/写/对内存/对I/O设备等操作信号融合,实现对内存和外设的读写操作。

注:时序信号还不是微操作信号,而只是协调各部件工作的同步信号。

4、启停控制逻辑

根据计算机的需要,可靠地开放和封锁脉冲,控制时序信号的发生和停止,实现对整个机器的正确启动与停止。必须保证启动时输出的第一个脉冲和停止时输出的最后一个脉冲都是完整的脉冲。

1.同步控制方式(固定时序控制方式)

产生不同微操作命令序列所用的时序控制方式

1. 同步控制方式

任一微操作均由 统一基准时标 的时序信号控制

(1) 采用定长的机器周期

以最长的微操作序列 和最繁的微操作作为 标准

机器周期内节拍数相同

(2) 采用不定长的机器周期

机器周期内节拍数不等

(3) 采用中央控制和局部控制相结合的方法

局部控制的节拍宽度与中央控制的节拍宽度一致

优点:时序关系简单,时序划分规整,控制不复杂;控制逻辑易于集中,容易实现,便于管理。

缺点:时间安排不合理,会造成简单指令较多的空闲时间,影响指令执行速度,不利于发挥计算机高速运算的潜力。

应用场合:用于CPU和设备内部、系统总线操作(各挂接部件速度相近,传送时间确定,传送距离较近)。

2.异步控制方式(可变时序控制方式)

各项操作按需安排时间,不受统一时序控制。

特点:无统一时钟周期划分,各操作间的衔接和各部件之间的信息交换采用异步应答方式。

主设备:申请并掌握总线权的设备。

从设备:响应主设备请求的设备。

优点:   时间安排紧凑、合理、效率高;

缺点:   控制复杂,不容易实现。

应用场合:用于异步总线操作(各挂接部件速度差异大,传送时间不确定,传送距离较远)。

3.联合控制方式

大部分操作安排在固定的机器周期中,对某些时间难以确定的操作则以执行部件的“回答”信号作为本次操作的结束。

特点:同步方式引入异步应答。

优点:不浪费很多时间,控制上又不是很复杂。

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

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

相关文章

Day_3

1. HttpClient HttpClient是Apache的一个子项目&#xff0c;是高效的、功能丰富的支持HTTP协议的客户端编程工具包 作用&#xff1a;发送HTTP请求&#xff0c; 接受相应数据 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>…

controlnet的preprocessor类型

GitHub - huggingface/controlnet_auxContribute to huggingface/controlnet_aux development by creating an account on GitHub.https://github.com/huggingface/controlnet_aux/https://huggingface.co/lllyasviel/sd_control_collection

智慧监控 高效运维

随着企业IT建设的不断深入和完善&#xff0c;IT管理的重要性逐渐被重视&#xff0c;打通数据割裂&#xff0c;使业务更加充分融合。亟需一套统一的平台来实现跨品牌跨设备类型的集中监控和管理。 LinkSLA带外监控平台&#xff0c;不仅适用于大规模或超大规模的运维场景&#x…

Spring MVC(一)

1 Spring MVC概述 我们在之前学习Servlet的时候&#xff0c;认识了在WEB开发中MVC设计模式&#xff0c;其最为经典的设计就是&#xff0c;通过控制器&#xff08;Controller&#xff09;分离模型&#xff08;Model&#xff09;和视图&#xff08;View&#xff09;。在具体的WEB…

Redis进阶学习

Redis进阶学习 一、Redis事务1.2 Redis监控1.3 Jedis连接1.4 SpringBoot整合1.5 自定义RedisTemple1.6 Redis.conf详解 二、 Redis持久化2.1 RDB2.2 AOF进程 三、Redis发布订阅3.1 Redis主从复制3.2 集群环境配置3.3、复制原理3.4、宕机后主动变为主机3.5、哨兵模式 四、Redis缓…

2024年大数据与艺术设计国际学术会议(ICBDAD 2024)

2024年大数据与艺术设计国际学术会议(ICBDAD 2024) 2024 International Conference on Big Data and Art Design 一、【会议简介】 2024年大数据与艺术设计国际学术会议&#xff0c;听起来好像两个完全不相关的领域&#xff0c;却意外地融合在了一起。 在这个会议上&#xff0c…

el-carousel走马灯页数回到第一页

我的走马灯是在一个弹窗里,包裹着一些button,切换到下一页时 关闭弹窗再打开弹窗还显示的是上次第二页位置 领导很不满意 1. 2.写在你打开弹窗或者关闭弹窗的位置 this.$refs.carousel && (this.$refs.carousel.activeIndex 0); 解释一下: this.$refs.carousel: thi…

开源数据可视化大屏对接表单数据实践!

如果你需要一个表单系统&#xff0c;进行数据收集&#xff1b;可以使用tduck填鸭进行私有化部署&#xff0c;进行表单制作&#xff0c;完成数据收集。 在实际业务中&#xff0c;往往需要将收集的数据进行展示或分析&#xff1b;此时就可以使用表单数据推送到TReport中&#xf…

华为eNSP中型企业局域网网络规划设计(下)

→b站传送门&#xff0c;感谢大佬← →华为eNSP中型企业局域网网络规划设计&#xff08;上&#xff09;← →拓扑图传送门&#xff0c;可以自己配置着玩← 配置ospf AR3 [AR3]ospf 1 router-id 3.3.3.3 //出口默认路由 [AR3-ospf-1]default-route-advertise always #area…

R语言数据探索与分析-中国GDP回归分析与预测

首先读取数据&#xff1a; 将GDP列转换为常规数字格式 # 可视化GDP数据 # 查看数据结构 # 确保数据类型是正确的 第一张图片展示了中国2002年到2021年间的GDP增长趋势&#xff0c;这是一个时间序列图&#xff0c;其中横轴表示年份&#xff0c;纵轴表示GDP&#xff08;单位未…

OpenAI 高管:一年后,你会觉得现在的 ChatGPT 像笑话一样糟糕|TodayAI

OpenAI 的首席运营官 Brad Lightcap 表示&#xff0c;一年后&#xff0c;你会觉得现在的 ChatGPT 像笑话一样糟糕。未来的 ChatGPT 版本将会有重大升级。他还讨论了 AI 取代人类工作和对电网的压力的可能性。 虽然我们不知道 OpenAI 何时会推出 GPT-5&#xff0c;但公司高管已…

三年软件测试经验遭遇求职困境?揭秘求职市场的隐藏陷阱

1.个人背景 小李&#xff0c;我的一位朋友&#xff0c;拥有三年多的软件测试工作经验。他本科毕业后便投身于测试行业&#xff0c;熟练掌握Python编程&#xff0c;能够编写自动化测试脚本&#xff0c;并且熟悉Selenium和性能测试。然而&#xff0c;尽管他具备这些技能和经验&am…

Zabbix+Grafana-常见报错及异常处理方式记录

文章目录 Zabbix安装篇Zabbix Web页面连接数据库失败 Zabbix使用篇中文显示不全 Zabbix报警篇新建的用户&#xff0c;配置报警后&#xff0c;无法收到报警 Grafana安装篇Windows系统安装时&#xff0c;添加zabbix报错&#xff1a;An error occurred within the plugin Zabbix安…

社交媒体数据恢复:多闪

社交软件多闪是一款深受用户喜爱的社交应用&#xff0c;用于与朋友、家人保持联系。有时&#xff0c;多闪软件的聊天记录可能会丢失或被删除&#xff0c;这时用户需要进行数据恢复。本文将详细介绍多闪软件聊天记录的恢复过程。 一、多闪软件聊天记录恢复方法 从手机备份中恢…

【每日刷题】Day34

【每日刷题】Day34 &#x1f955;个人主页&#xff1a;开敲&#x1f349; &#x1f525;所属专栏&#xff1a;每日刷题&#x1f34d; &#x1f33c;文章目录&#x1f33c; 1. 1047. 删除字符串中的所有相邻重复项 - 力扣&#xff08;LeetCode&#xff09; 2. 1475. 商品折扣后…

Rust开发工具有哪些?

目录 一、JetBrains公司的RustRover​编辑 二、微软公司的Visual Studio Code 三、Rust编译工具 一、JetBrains公司的RustRover RustRover是由JetBrains开发的一款专为Rust开发量身定制的新兴IDE&#xff0c;目前还处于早期访问阶段。它支持Rust、Cargo、TOML、Web和数据库等…

Unity如何使用adb工具安装APK

1、下载adb工具 SDK 平台工具版本说明 | Android Studio | Android Developers (google.cn) 2、配置环境变量 把platform-tools的路径添加进去就行 打开cmd&#xff0c;输入adb&#xff0c;即可查看版本信息 3、使用数据线连接设备&#xff0c;查看设备信息&#xff08;…

黄金投资怎么判断走势好坏?

投资黄金&#xff0c;就是押注于这一贵金属价格的变动。判断黄金价格的走势好坏&#xff0c;对于投资者来说至关重要。这需要从宏观经济指标、技术分析指标和市场情绪等多元化角度进行综合分析。 宏观经济指标 货币政策&#xff1a;中央银行的货币政策&#xff0c;尤其是利率决…

分布式事务Seata使用

我们要学习seata&#xff0c;首先需要具备如下技术储备&#xff1a; 数据库事务的基本知识&#xff1b;maven工具的使用&#xff1b;熟悉SpringCloudAlibaba技术栈&#xff1b;掌握SpringDataJPA简单使用&#xff1b; 一. Seata基本概念 1.seata是什么 Seata是阿里巴巴中间…

基于大模型(LLM)相互协商的情感分析

Sentiment Analysis through LLM Negotiations https://arxiv.org/abs/2311.01876https://arxiv.org/abs/2311.01876 1.概述 在情感分析任务中,传统的单一大型语言模型(LLM)通常只通过单轮输出来做出决策。这种方法的主要缺点是无法完美应对需要深入推理的复杂语言现象,…