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

1.微程序控制器

微程序设计技术:利用软件方法来设计硬件的一门技术。

微程序控制器的基本思想:

仿照通常的解题程序的方法,把操作控制信号编成所谓的“微指令”,存放到一个只读存储器里。当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号,使相应部件执行所规定的操作。

基本思想:

1.若干微命令编制成一条微指令,控制实现一步操作;

2.若干微指令组成一段微程序,解释执行一条机器指令;

3.微程序事先存放在控制存储器CM(Control Memory)中,执行机器指令时再取出。

引入了程序技术,使设计规整;引入了存储逻辑,使功能易于扩展。

1.主要部件

(1)控制存储器CM

功能:存放微程序。

CM属于CPU,不属于主存储器。

(2)微指令寄存器 µIR

功能:存放现行微指令。

(3)微地址形成电路

功能:提供两类微地址。

微程序入口地址:由机器指令操作码形成。

后续微地址:由微地址字段、现行微地址、运行状态等形成。

2.工作过程

(1)取机器指令

(2)转微程序入口

(3)执行首条微指令

(4)取后续微指令

(5)执行后续微指令

同(3)

(6)返回

微程序执行完,返回CM(存放取指微指令的固定单元)。

2.微指令和微程序

微指令:在机器的一个CPU周期中,一组实现一定操作功能的微命令的组合。是CM中的一个单元的内容,即控制字。

注:微指令给出的控制信号都是节拍电位信号,它们的持续时间为一个CPU周期,有时根据实际电路需要,还要对某些微命令信号加入时间控制。

一条微指令由操作控制和顺序控制两大部分组成。

(1)操作控制部分,又称“微操作码字段”,用来发出管理和指挥全机工作的控制信号,其中每一位都表示一个微命令。

(2)顺序控制部分,又称“微地址码字段”,用来决定产生下一条微指令的地址;

微指令是控制存储器中的一个存储单元的内容,即控制字。

微程序:一条机器指令的功能是用许多条微指令组成的序列来实现的,这个微指令序列通常叫做微程序。 

微地址:微指令在控制存储器中的单元地址。 微指令在执行时同样也需要进行微指令寻址。而且在决定后继微指令地址时,需要判别测试标志位的配合。

机器指令-微程序-微指令-微命令

微程序控制器基本思想

1.若干微命令编制成一条微指令,控制实现一步操作;

2.若干微指令组成一段微程序,解释执行一条机器指令;

3.微程序事先存放在控制存储器CM(Control Memory)中,执行机器指令时再取出。

例:

根据下图所示,画出 “余3码十进制加法”指令的微程序控制流程图,并根据已知微指令格式,写出对应微指令。 余3码的十进制加法规则如下:两个一位十进制数的余3码相加,如结果无进位,则从和数中减去3(减0011):如果有进位,则和数中加上3(加0011),即得和数的余3码。 要求(1)加法机器指令的操作码为:1010。微指令中P1测试位为1时,表示下一条微指令的地址机器指令的操作码;(2)微指令中P2测试位为1时,根据Cy判断下一条微指令的地址。当Cy=0时,下一条微指令的地址为0001;当Cy=1时,下一条微指令的地址为1001。(3)当P1和P2同时为零时,本条微指令的直接地址位就给出下一条微指令的地址。(4)本题中已经直接将常数3放入R3中。(5)结果应该都放在R2中。

总结

微程序控制器的工作过程实质就是:在微程序控制器的控制下,计算机执行机器指令的过程。具体可分为:

(1)执行取指令的公操作    机器开始运行时,自动地将取指微程序的入口微地址送 入\muAR,并从\muCM中读出微指令,送往\muIR,当取指微程序执行完以后,从主存中取出的机器指令就已经存入IR中了。

(2)由机器指令的操作码字段OP通过“地址转移逻辑”产生出该机器指令所对应的微程序的入口微地址,并送入\muAR。

(3)从\muCM中逐条取出相应的微指令并执行之。

(4)执行完对应于一条机器指令的一段微程序之后,又回到取指微程序的入口地址,继续第(1)步,以完成取下一条机器指令的公操作。

3.微程序时序安排

为了保证整个机器控制信号的同步,可以将一个微指令周期时间设计得恰好和CPU周期时间相等。

CPU周期与微指令周期的关系

用统一微指令周期控制各条微指令执行

4.机器指令与微指令的关系

(1)一条机器指令对应一个微程序,此微程序是由若干条微指令序列组成的。

(2)指令、程序、地址对应于内存储器;微指令、微程序、微地址对应于控制存储器。

(3)一个CPU周期对应于一个微指令指令周期。方框图就是微程序流程图。

微程序——解释一条机器指令的微指令的集合。

微操作、微命令、微指令、微程序、机器指令

机器指令与微指令的关系

2.微程序设计技术

微程序设计:设计与各条机器指令相对应的微程序的过程。

微程序的关键:如何确定微指令的结构。

如何确定微指令的结构:

(1)有利于缩短微指令字长度;

(2)有利于减小控制存储器的容量;

(3)有利于提高微程序的执行速度;

(4)有利于对微指令的修改;

(5)有利于微程序设计的灵活性;

1.微命令的编码方法

编码有三种方法:直接表示法,编码表示法,混合表示法

1.直接表示法:操作控制字段中的各位分别可以直接控制计算机,不需要进行译码。

直接表示法举例,操作控制字段的每一个独立的二进制位代表一个微命令,该位为“1”表示这个微命令有效,为“0”表示这个微命令无效。

直接表示法特点: 这种方法结构简单,并行性强,操作速度快,但是微指令字太长,若微命令的总数为N个,则微指令字的操作控制字段就要有N位。 另外,在N个微命令中,有许多是互斥的,不允许并行操作,将它们安排在一条微指令中是毫无意义的,只会使信息的利用率下降。

2.编码表示法:将操作控制字段分为若干个小段,每段内采用最短编码法,段与段之间采用直接控制法。

编码表示法特点:可以避免互斥,使指令字大大缩短,但增加了译码电路,使微程序的执行速度减慢

3.混合编码法:将前两种结合在一起,兼顾两者特点。一个字段的某些编码不能独立地定义某些微命令,而需要与其他字段的编码来联合定义。

编码注意几点:字段编码法中操作控制字段并非是任意的,必须要遵循如下的原则:

①把互斥性的微命令分在同一段内,兼容性的微命令分在不同段内。这样不仅有助于提高信息的利用率,缩短微指令字长,而且有助于充分利用硬件所具有的并行性,加快执行的速度。

②应与数据通路结构相适应。

③每个小段中包含的信息位不能太多,否则将增加译码线路的复杂性和译码时间。

④一般每个小段还要留出一个状态,表示本字段不发出任何微命令。因此当某字段的长度为三位时,最多只能表示七个互斥的微命令,通常用000表示不操作。 下面举例说明

2.微指令地址的形成

入口地址:每条机器指令对应一段微程序,当公用的取指微程序从主存中取出机器指令之后,由机器指令的操作码字段指出各段微程序的入口地址,这是一种多分支(或多路转移)的情况。

后继微地址形成方法主要有两种:计数器的方式, 多路转移的方式

1.入口地址形成:如果机器指令操作码字段的位数和位置固定,可以直接使操作码与微程序入口地址的部分位相对应。

2.后继微地址形成方法

(1)计数器的方式

方法: 微程序顺序执行时,其后继微地址就是现行微地址加上一个增量(通常为1); 当微程序遇到转移或转子程序时,由微指令的转移地址段来形成转移微地址。 在微程序控制器中也有一个微程序计数器μPC,一般情况下都是将微地址寄存器μAR作为μPC

特点: 优点是简单、易于掌握,编制微程序容易 缺点是这种方式不能实现两路以上的并行微程序转移,因而不利于提高微程序的执行速度。

(2)多路转移的方式

根据条件转移如图

条件:状态条件/测试/微指令中微地址/操作码

3.微指令格式

微指令格式分为两类:水平型微指令和垂直型微指令

(1)水平型微指令

水平型微指令是指一次能定义并能并行执行多个微命令的微指令。

格式如下

水平型微指令特点:

优点: 微指令字较长,速度越快。 微指令中的微操作有高度的并行性。 微指令译码简单。 控制存储器的纵向容量小,灵活性强。

缺点: 微指令字比较长,明显地增加了控制存储器的横向容量。 水平微指令与机器指令差别很大,一般要熟悉机器结构、数据通路、时序系统以及指令执行过程的人才能进行微程序设计,这对用户来说是很困难的。

(2)垂直型微指令

采用编码方式。 微指令中设置微操作码字段,采用微操作码编译法,由微操作码规定微指令的功能,称为垂直型微指令。  

垂直型微指令的结构类似于机器指令的结构。它有操作码,在一条微指令中只有l-2个微操作命令,每条微指令的功能简单,因此,实现一条机器指令的微程序要比水平型微指令编写的微程序长得多 。它是采用较长的微程序结构去换取较短的微指令结构

下面举4条垂直型微指令的微指令格式加以说明。 设微指令字长为16位,做操作码3位。    

1)寄存器-寄存器传送型微指令

其功能是把源寄存器数据送目标寄存器 .13—15位为微操作码(下同),源寄存器和目标寄存器编址各 5位,可指定31个寄存器.

(2)运算控制型微指令

其功能是选择ALU的左、右两输入源信息,按ALU字段所指定的运算功能(8种操作)进行处理,并将结果送入暂存器中。左、右输入源编址可指定31种信息源之一。

(3)访问主存微指令

其功能是将主存中一个单元的信息送入寄存器或者将寄存器的数据送往主存。存储器编址是指按规定的寻址方式进行编址。第1,2位指定读操作或写操作(取其之一)。

(4)条件转移微指令  

其功能是根据测试对象的状态决定是转移到D所指定的微地址单元,还是顺序执行下一条微指令。9位D字段不足以表示一个完整的微地址,但可以用来替代现行μPC的低位地址。 测试条件字段有4位,可规定16种测试条件。

垂直型微指令的特点:

微指令字短,一般为10~20位左右。

微指令的并行微操作能力有限,一条微指令一般只包含一个微操作命令。

微指令译码比较复杂。全部微命令用一个微操作控制字段进行编码,微指令执行时需行完全译码。

设计用户只需注意微指令的功能,而对微命令及其选择、数据通路的结构则不用过多地考虑,因此,便于用户编制微程序。而且,编制的微程序规整、直观,便于实现设计的自动化。

垂直微指令字较短,使控制存储器的横向容量少。

用垂直微指令编制微程序要使用较多的微指令,微程序较长;要求控制存储器的纵向容量大。

垂直微指令产生微命令要经过译码,微程序执行速度慢。

不能充分利用数据通路具有多种并行操作能力

水平型微指令和垂直型微指令的比较:

(1)水平型微指令并行操作能力强,效率高,灵活性强,垂直型微指令则较差。

(2)水平型微指令执行一条指令的时间短,垂直型微指令执行时间长。

(3)由水平型微指令解释指令的微程序,有微指令字较长而微程序短的特点。垂直型微指令则相反。

(4)水平型微指令用户难以掌握,而垂直型微指令与指令比较相似,相对来说,比较容易掌握。

4.动态微程序设计

微程序设计分类:

(1)静态微程序设计:对应于一台计算机的指令系统只有一套微程序,该微程序设计好之后,一般无须改变而且也不便于改变。

(2)动态微程序设计:采用EPROM作为CM,可以通过改变微指令和微程序来改变机器的指令系统,因此可以在一台机器上实现不同类型的指令系统。   由于动态微程序设计技术要求对计算机结构和组成非常熟悉,所以这类微程序方案的改变一般只能由计算机设计人员完成。

3.流水 CPU

1.并行处理技术

并行性的两种含义:

1)同时性:两个以上事件在同一时刻发生;

2)并发性:两个以上事件在同一时间间隔内发生。

时间并行:时间重叠,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。

空间并行:资源重复,以“数量取胜”来提高计算机的处理速度。当前的空间并行主要体现在多CPU和多计算机系统,在单处理机系统中也得到广泛的应用。

时间+空间并行:时间重叠和资源重复的综合应用。

2.流水CPU的结构

1.流水计算机的系统组成

组成:指令部件、指令队列、执行部件。

程序和数据存放在主存中:主存采用多体交叉存储器,CPU与主存之间添加一个高速cache来弥补两者速度差异。

1)指令部件本身构成一个流水线:取指令、指令译码、计算操作数地址、取操作数等几个过程段组成;  

2)指令队列:一个FIFO的寄存器队列,用来存放经过译码的指令和取来的数据,也是一条流水线;

3)执行部件:具有多个算术逻辑运算部件,这些部件本身又用流水线方式构成,一般采用的实现方法:    

①将执行部件分为定点执行部件和浮点执行部件两个可并行执行部分,分别处理定点运算指令和浮点运算指令;    

②在浮点执行部件中,又有浮点加法部件和浮点乘/除部件,它们可同时执行不同的指令;    

③浮点运算部件都以流水线方式工作。

2.流水CPU的时空图

为了实现流水,首先把输入的任务分割为一系列子任务,并使各子任务在流水线的各个阶段并发地执行,当任务连续不断地输入流水线时,在流水线的输出端便连续不断地吐出执行结果,从而实现子任务级的并行性。

3.流水线的性能指标

1.吞吐率

吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。

n:任务数

Tk:处理完成n个任务所用的时间

各段时间均相等的流水线各段时间均相等的流水线时空图

流水线完成n个连续任务所需要的总时间为: (假设一条k段线性流水线)

流水线的实际吞吐率

2.流水线的加速比

加速比:完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。假设:不使用流水线(即顺序执行)所用的时间为Ts,使用流水线后所用的时间为Tk,则该流水线的加速比为:

流水线各段时间相等(都是△t)

一条k段流水线完成n个连续任务所需要的时间为:Tk = (k+n-1)Δt

顺序执行n个任务所需要的时间: Ts= nk△t    

流水线的实际加速比为:

例题:

指令流水线有取指(IF)、译码(ID)、执行(EX)、访存(MEM)、写会寄存器堆(WB)5个过程段,共有20条指令连续输入此流水线。 (1)画出流水线处理的时空图,假设时钟周期为100ns。 (2)求流水线的实际吞吐率(单位时间里执行完毕的指令数)。 (3)求流水线的加速比。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安全测试工具BurpSuite安装和使用

1.安装 下载地址:https://pan.baidu.com/s/1YJbZGAfVKLsQmNeZYZXEeQ 提取码: yyds 打开cmd,运行以下指令,打开keygen界面: java -jar "C:\soft\BurpSuite v2.1\burp-loader-keygen-2.jar" 点击Run按钮,弹…

5月13号作业

使用消息队列实现的2个终端之间的互相聊天 并使用信号控制消息队列的读取方式: 当键盘按ctrlc的时候,切换消息读取方式,一般情况为读取指定编号的消息,按ctrlc之后,指定的编号不读取,读取其他所有编号的消息…

标准输入输出流(中北大学-程序设计基础(2))

目录 题目 源码 结果示例 题目 输入三角形的三边a,b,c,计算三角形的面积。形成三角形的条件是ab>c,bc>a,ac>b,编写程序,输入a,b,c,检查a,b,c是否满足以上条件,如不满足,由cerr输出有关出错信息…

开眼了,自动化测试还能这样用?

持续集成的自动化测试通常需要将代码、测试用例与持续集成工具进行绑定,以实现自动运行。然而,Apipost的自动化测试功能需要手动操作,并且需要手动查看测试结果。 为了解决这个问题,Apipost推出了持续集成功能,方便同…

基于SpringBoot的酒店(预约)客房管理系统的设计与实现+毕业论文

系统介绍 酒店客房管理系统为酒店管理者和用户、清洁人员提供一个在线管理酒店客房的系统。在网站的设计中,一共分为了两个模块设计,一个是前台模块,一个是后台模块,前台主要用于提供查看客房信息,酒店资讯&#xff0…

计算礼品发放的最小分组数目 - 贪心思维

系列文章目录 文章目录 系列文章目录前言一、题目描述二、输入描述三、输出描述四、java代码五、测试用例 前言 本人最近再练习算法,所以会发布自己的解题思路,希望大家多指教 一、题目描述 又到了一年的末尾,项目组让小明负责为使得参加晚…

八、e2studio VS STM32CubeIDE之内存使用情况窗口

目录 一、概述/目的 二、STM32CubeIDE Build Analyzer 三、e2studio Memory Usage 八、e2studio VS STM32CubeIDE之内存使用情况窗口 一、概述/目的 1、嵌入开发最大特点之一就是资源受限,关注芯片资源使用详情是优秀工程师的技能之一 2、Keil和IAR都不支持内存…

网络库-libcurl介绍

1.简介 libcurl 是一个功能强大的库,支持多种协议,用于数据传输。它广泛应用于实现网络操作,如HTTP、HTTPS、FTP、FTPS、SCP、SFTP等。libcurl 提供了丰富的 API,可以在多种编程语言中使用。 libcurl 主要特点 支持多种协议&am…

CCF-Csp算法能力认证,202209-1如此编码(C++)含解析

前言 推荐书目,在这里推荐那一本《算法笔记》(胡明),需要PDF的话,链接如下 「链接:https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd6vdq# 提取码:6vdq”复制这段内容后打开手机迅雷…

MySQL学习3

目录 一.合计/统计函数: 1.合计函数--count: 2.合计函数-sum 3.合计函数-avg 4.合计函数--max/min 二.分组统计: (1)使用group by子句对列进行分组: (2)使用having子句对分组…

【网络基础】TCP协议2

TCP建立连接 什么是TCP连接 用于保证可靠性和流量控制维护的某些状态信息,这些信息的组合,包括 Socket、序列号和窗口大小称为连接。 Socket:由 IP 地址和端口号组成 序列号:用来解决乱序问题等 窗口大小:用来做流量…

企业邮箱域名是什么?怎么注册一个企业邮箱域名?

企业邮箱域名是什么?企业邮箱域名是企业申请的专属域名,绑定专属的邮箱域名,能够在发送邮件时提高品牌识别性、专业性和宣传效果。那么,我们该怎么注册一个企业邮箱域名呢?本文将为你详细介绍。 一、企业邮箱域名是什…

揭秘高效引流获客的艺术

在数字营销的海洋中,吸引潜在客户的注意力就像捕捉闪烁的鱼群——需要技巧、耐心和正确的工具。有效的引流获客策略能为企业带来生机,如同春风拂过荒漠,唤醒沉睡的种子。本文将带你领略那些让企业脱颖而出的获客秘籍,让你的目标客…

机器视觉技术精准测量点胶高度与宽度:提升生产质量的新利器

在现代化生产线中,点胶工艺是许多产品制造过程中的重要环节。点胶的高度和宽度直接影响到产品的质量和性能。传统的测量方法往往效率低下、精度不高,而机器视觉技术的引入,为点胶高度和宽度的测量带来了革命性的变革。本文将探讨机器视觉如何…

一文汇总对比英伟达、AMD、英特尔显卡GPU

‍‍🏡博客主页: virobotics(仪酷智能):LabVIEW深度学习、人工智能博主 📑上期文章:『【仪酷LabVIEW AI工具包案例】使用LabVIEW AI工具包YOLOv5结合Dobot机械臂实现智能垃圾分类』 🍻本文由virobotics(仪酷…

运筹系列92:vrp算法包VROOM

1. 介绍 VROOM is an open-source optimization engine written in C20 that aim at providing good solutions to various real-life vehicle routing problems (VRP) within a small computing time. 可以解决如下问题: TSP (travelling salesman problem) CVRP …

使用Navicat将MySql数据库导入和导出

一,导出数据表 1.使用Navicat打开数据库,右键数据库,点击转储SQL文件,点击结构和数据。 2.选择生成文件的地方 3.等待生成完成 4.生成完成 二,导入数据库表和数据SQL文件 1.新建一个数据库 2.右键选择运行SQl文件 记…

租赁小程序开发搭建支持时租日租月租

租赁小程序开发搭建支持时租日租月租 一款开源版的小程序,专为物品租赁服务设计,能满足客户在各种租赁场景中的需求。 该程序支持时租、日租、夜租等多种租赁方式,并配备了DIY页面和分销系统。用户可以通过平台轻松租赁商品,支付…

Android:资源的管理,Glide图片加载框架的使用

目录 一,Android资源分类 1.使用res目录下的资源 res目录下资源的使用: 2.使用assets目录下的资源 assets目录下的资源的使用: 二,glide图片加载框架 1.glide简介 2.下载和设置 3.基本用法 4.占位符(Placehold…

C++11新特性之lambda表达式

一、lambda表达式的优点 lambda是c11非常重要也是最常用的特性之一,他有以下优点: 就地匿名定义目标函数或函数对象,不需要额外写一个命名函数或函数对象。lambda是一个匿名的内联函数简洁:避免了代码膨胀和功能分散,让…