首页 > 编程语言 >【计算机组成原理】五、中央处理器:2.数据通路、控制器(单总线结构、专用数据通路、硬布线控制器、微程序控制器)

【计算机组成原理】五、中央处理器:2.数据通路、控制器(单总线结构、专用数据通路、硬布线控制器、微程序控制器)

时间:2024-08-28 10:25:01浏览次数:14  
标签:微指令 控制器 MAR 微操作 数据通路 微程序 PC MDR

3.数据通路

文章目录


如何设置部件之间的连接路径?

数据通路的基本结构:

  1. CPU内部单总线方式。
  2. CPU内部多总线方式。
  3. 专用数据通路方式。

3.1单总线结构

  1. 寄存器寄存器之间数据传输

一个out,一个in。

out:(PC)→Bus
in:Bus→MAR

或者简写:

(PC)→Bus→MAR

在这里插入图片描述

  1. 主存CPU之间数据传输

(PC)→Bus→MAR

1→R

MEM(MAR)→MDR

MDR→Bus→IR

在这里插入图片描述

  1. 执行算数/逻辑运算

Ad(IR)→Bus→MAR

1→R

MEM(MAR)→MDR

MDR→Bus→Y

(ACC)+(Y)→Z

Z→ACC

在这里插入图片描述

例题:

ADD (R0), R1

(R0)是间接寻址,R1是直接寻址

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

##最靠前的是核心操作
#1. 取指周期:公共操作

(PC)→MAR

	1→R				#CU控制内存。R:读指令,W:写指令	

M(MAR)→MDR			#从内存memory取指令

	(PC)+1→PC		#执行完指令PC就自动加1

(MDR)→IR			#指令放入指令寄存器IR,instruction register

	OP(IR)→ID		#指令译码。指令译码器ID,instruction decoder

#2. 间址周期:取R0

(R0)→MAR

M(MAR)→MDR

(MDR)→Y

3. 执行周期

(R1)+(Y)→Z

(Z)→MDR

(MDR)→M(MAR)			#因为这里的MAR地址还是R0的地址

3.2专用数据通路

取指周期

(PC)→MAR

(MAR)→MEM

1→R

M(MAR)→MDR

(MDR)→IR

(PC)+1→PC

OP(IR)→ID(译码)

在这里插入图片描述

例题:

5.3.2_数据通路-专用通路结构_哔哩哔哩_bilibili

(2)

(PC)→MAR

M(MAR)→MDR

(MDR)→IR

答案没写后面两个

(PC)+1→PC

OP(IR)→微操作信号发生器

(3)

在这里插入图片描述

(4)简述完成指令 LDA X 的数据通路(X为主存地址,LDA的功能为(X)→ACC)。

X→MAR

M(MAR)→MDR

(MDR)→ALU→ACC

(5)简述完成指令 ADD Y 的数据通路(Y为主存地址,ADD的功能为(ACC)+(Y)→ACC)。

Y→MAR

M(MAR)→MDR

(ACC)→ALU, (MDR)→ALU

ALU→ACC

(6)简述完成指令 STA Z 的数据通路(Z为主存地址,STA的功能为(ACC)→Z)。

Z→MAR

(ACC)→MDR

MDR→M(MAR)

4.控制器

控制器如何指挥整个系统的工作?

控制器的设计

  • 硬布线控制器
  • 微程序控制器
  • 毫微程序控制器(套娃)
    • 微程序设计用微程序解释机器指令,毫微程序设计用毫微程序解释微程序。

4.1硬布线控制器

纯用硬件实现的。

微操作控制信号由组合逻辑电路根据指令操作码、目前的机器周期、节拍信号、机器状态条件,即可确定现在这个节拍下应该发出哪些“微命令”。而且是即时产生

4.1.1基本结构

标志触发器FE(取指周期)、IND(间址周期)、EX(执行周期)、INT(终端周期)

在这里插入图片描述

取指周期:

T0: (PC)→MDR: C1 = DE · T0

T1: M(MAR)→MDR C2 = FE·T1 + IND·T1(ADD+STA+LDA+JMP+BAN) + EX·T1(ADD+LDA)

​ FE·T1表示FE(取指令)阶段的T1时钟周期;

​ IND·T1(ADD+STA+LDA+JMP+BAN)表示IND阶段的T1时钟周期在ADD等操作下进行;

​ EX·T1(ADD+LDA)表示在EX阶段的T1时钟周期在ADD等操作下进行。


4.1.2设计步骤
  1. 分析每个阶段的微操作序列(取值、间址、执行、中断四个阶段)

    • 确定哪些指令在什么阶段、在什么条件下会使用到的微操作?
  2. 选择CPU的控制方式

    • 采用定长机器周期还是不定长机器周期?每个机器周期安排几个节拍?

      假设采用同步控制方式(定长机器周期),一个机器周期内安排3个节拍(T0, T1, T2)

  3. 安排微操作时序

    • 如何用3个节拍完成整个机器周期内的所有微操作?
  4. 电路设计

    确定每个微操作命令的逻辑表达式,并具体用电路实现。

    1. 列出操作时间表
      • 列出在取指、间址、执行、中断周期,TO、T1、T2节拍内有可能用到的所有微操作。
    2. 写出微操作命令的最简表达式
    3. 画出逻辑图
微操作总结
1)分析每个阶段的微操作序列
  1. 取指周期:所有指令都相同

(PC)→MAR

1→R #CU控制内存。R:读指令,W:写指令

M(MAR)→MDR #从内存memory取指令

(PC)+1→PC #执行完指令PC就自动加1

(MDR)→IR #指令放入指令寄存器IR,instruction register

OP(IR)→ID #指令译码。指令译码器ID,instruction decoder

  1. 间址周期:所有指令都类似

Ad(IR)→MAR

1→R

M(MAR)→MDR #此时找到的地址是EA有效地址

(MDR)→Ad(IR) #把原先的间接地址A换成新的EA

  1. 执行周期:各不相同

在这里插入图片描述

2)安排微操作时序的原则

原则1:微操作的先后顺序不得随意更改。

原则2:被控对象不同的微操作,尽量安排在一个节拍内完成。因为被控对象(→右面的那个)不同,那么同时进行就不会相互影响。

原则3:占用时间较短的微操作尽量安排在一个节拍内完成,并允许有先后顺序

下面每一行就是一个微操作,每一个T执行一个微指令

  1. 取指周期:所有指令都相同
(PC)→MAR
1→R			#存储器空闲即可
M(MAR)→MDR	#因为前面有MAR,所以在(1)之后
(PC)+1→PC	#在(1)之后
(MDR)→IR	#在(3)之后
OP(IR)→ID	#在(4)之后

所以:

T0:1,2

T1:3,4

T2:5,6(因为虽然5,6有前后关系,但是执行时间都很短,根据原则3,把它们放到一个节拍)

【说明】M(MAR)→MDR从主存取数据,用时较长,因此必须一个时钟周期才能保证微操作的完成。

MDR→IR是CPU内部寄存器的数据传送,速度很快,因此在一个时钟周期内可以紧接着完成OP(IR)→ID,也就是可以一次同时发出两个微命令。

  1. 间址周期:所有指令都类似
Ad(IR)→MAR
1→R			#存储器空闲即可
M(MAR)→MDR	#在(1)之后
(MDR)→Ad(IR)#在(3)之后

T0:1,2

T1:3

T2:4

  1. 执行周期:各不相同

在这里插入图片描述

3)电路设计

设计步骤:

  1. 列出操作时间表
    • 列出在取指、间址、执行、中断周期,TO、T1、T2节拍内有可能用到的所有微操作。
  2. 写出微操作命令的最简表达式
  3. 画出逻辑图

【备注】操作时间表巨长,很麻烦。

4.1.3特点
  1. 指令越多,设计和实现就越复杂,因此一般用于RISC(精简指令集系统)。
  2. 如果扩充一条新的指令,则控制器的设计就需要大改,因此扩充指令较困难。
  3. 由于使用纯硬件实现控制,因此执行速度很快。微操作控制信号由组合逻辑电路即时产生。

4.2微程序控制器

硬件+软件实现

采用“存储程序”的思想,CPU出厂前将所有指令的“微程序”存入“控制器存储器”中。

  • 分类:
  1. 静态微程序设计:微程序无需改变,采用 ROM。
  2. 动态微程序设计:通过改变微指令和微程序改变机器指令。有利于仿真,采用EPROM。

程序:由指令序列组成。

微程序:由微指令序列组成。

指令:是对程序执行步骤的描述,每一种指令对应一个微程序
比如 LDA X,这样一条指令对应的取指、间址、执行、中断全部看作一个微程序。

微指令:是对指令执行步骤的描述。

微命令与微操作一一对应

微指令中可能包含多个微命令。

微指令包含关系
  • 指令(4个微程序段部分构成一完整的微程序)
    • 微程序(段)(取指周期微程序、间址周期微程序…)
      • 微指令(一个节拍(T)内多行或一行微操作)
        • 微命令 = 微操作(一行微操作)

在这里插入图片描述

4.2.1基本结构

在这里插入图片描述

控制存储器CM(Memory Controller):

在这里插入图片描述

取指周期通常是公用的,故如果某指令系统中有n条机器指令(执行周期),则CM中微程序(段)的个数至少是n+1个。(因为 n条机器指令 是描述执行周期的微程序(段),所以还要加上一个取指周期微程序(段))

  • 为什么是+1(只加取指周期,没有间址周期…)?

因为一些早期的CPU、物联网设备的CPU可以不提供间接寻址和中断功能,因此这类CPU可以不包含间址周期、中断周期的微程序段。

4.2.2微指令格式

相容性微命令:可以并行完成的微命令。

互斥性微命令:不允许并行完成的微命令。

在这里插入图片描述

4.2.3微指令编码方式

微指令的编码方式又称为微指令的控制方式,它是指如何对微指令的控制字段进行编码,以形成控制信号。编码的目标是在保证速度的情况下,尽量缩短微指令字长。

  1. 直接编码(直接控制)方式
  2. 字段直接编码方式
  3. 字段间接编码方式(隐式编码)

在这里插入图片描述

优点:可以缩短微指令字长。

缺点:要通过译码电路后再发出微命令,因此比直接编码方式慢。

例题:

在这里插入图片描述
在这里插入图片描述

4.2.4微指令的地址形成方式

就是下一条指令地址的形成

  1. 微指令的下地址字段:指出微指令格式中设置一个下地址字段,由微指令的下地址字段直接指出后继微指令的地址,这种方式又称为==断定方式(断定法)==。

  2. 根据机器指令的操作码,形成当机器指令取至指令寄存器后,微指令的地址由操作码经微地址形成部件形成。

  3. 增量计数器法:(CMAR)+1→CMAR

    类似(PC)+1→PC

  4. 分支转移。

    操作控制字段转移方式转移地址

    转移方式:指明判别条件;
    转移地址:指明转移成功后的去向。

  5. 通过测试网络(顺序逻辑)

  6. 由硬件产生微程序入口地址

    第一条微指令地址,由专门硬件产生(用专门的硬件记录取指周期微程序首地址)。
    中断周期:由硬件产生中断周期微程序首地址(用专门的硬件记录)。

例题:

在这里插入图片描述

4.2.5设计微程序控制单元

设计步骤:

  1. 分析每个阶段的微操作序列
  2. 写出对应机器指令的微操作命令及节拍安排
  3. 确定微指令格式
    1. 根据微操作个数决定采用何种编码方式,以确定微指令的操作控制字段的位数。
    2. 根据CM中存储的微指令总数,确定微指令的顺序控制字段的位数。
    3. 最后按操作控制字段位数和顺序控制字段位数就可确定微指令字长。
  4. 编写微指令码点
    • 根据操作控制字段每一位代表的微操作命令,编写每一条微指令的码点。

与前面硬布线控器类似,也需要微指令(节拍)安排,唯一不同的是最后一个微操作。


微指令a,T0: (PC)→MAR

微指令a,T0: 1→R

微指令b,T1: M(MAR)→MDR

微指令b,T1: (PC)+1→PC

微指令c,T2: (MDR)→IR

微指令c,T2: OP(IR)→为地址形成部件(硬布线:OP(IR)→ID)


取指周期的第一条微指令a地址由硬件自动给出,后面的指令由前面指令的下地址指出。

所以要加上下地址的一个微操作:

AD(CMDR)→CMAR

就变成了:


微指令a,T0: (PC)→MAR

微指令a,T0: 1→R

​ T1:Ad(CMDR)→CMAR

微指令b,T2: M(MAR)→MDR

微指令b,T2: (PC)+1→PC

​ T3:Ad(CMDR)→CMAR

微指令c,T4: (MDR)→IR

微指令c,T4: OP(IR)→为地址形成部件(硬布线:OP(IR)→ID)

​ T5:微地址形成部件→CMAR

取指周期的最后一条微指令完成后,要根据指令操作码确定其执行周期的微程序首地址。

在这里插入图片描述


4.3硬布线vs微程序比较

硬布线控制器微程序控制器
工作原理微操作控制信号由组合逻辑电路根据当前的指令码、状态和时序,即时产生。微操作控制信号以微程序的形式存放在控制存储器中,执行指令时读出即可。
执行速度
规整性繁琐、不规整较规整
应用场合RISC CPU(精简指令集计算机)CISC CPU(复杂指令集计算机)
易扩充性困难易扩充修改

标签:微指令,控制器,MAR,微操作,数据通路,微程序,PC,MDR
From: https://blog.csdn.net/weixin_51350847/article/details/141633814

相关文章

  • 【计算机组成原理】五、中央处理器:1.CPU的功能与结构&指令执行过程(运算器、数据通路、
    五、中央处理器文章目录五、中央处理器1.CPU的功能与结构1.1CPU功能1.2运算器1.2.1基本结构1.2.2ALU和寄存器的数据通路1.3控制器1.3.1基本结构1.3.2控制器功能1.4CPU的基本结构2.指令执行过程2.1指令周期2.2指令周期流程2.3数据流2.4指令执行方案:如何安排多条指令......
  • 【408精华知识】控制器考点总结
    CPU由运算器和控制器构成,控制器包括PC、IR、MAR、MDR、CU等部分构成,其中CU是控制单元,负责分析指令并发出各种微操作命令序列,其分为硬布线控制器与微程序控制器两种,常考硬布线控制器的概念、微程序控制器的概念和工作原理、两种控制器的对比、RISC与CISC的对比。文章目......
  • 电动汽车整车控制器 UDS诊断功能开发调试优化方法
    摘要:通过某电动汽车VCU开发过程中,UDS诊断功能的调试,发现一些测试中存在的问题,比如覆盖度不够、效率低下等,提出了相应的优化方法,并经过测试验证其可行性,此方法亦可推广应用至BMS、HCM等其他控制器的UDS诊断开发调试过程中。希望能给相关技术人员带来参考和帮助。一、UDS诊断功......
  • 微控制器的功能详解!!!
    微控制器是遥控器的核心组件之一,它负责处理用户通过遥控器输入的指令,并将这些指令转化为无人机能够理解的信号,从而实现对无人机的远程控制。一、微控制器的功能指令接收与解析:微控制器首先接收用户通过遥控器上的按钮、摇杆等输入设备产生的指令信号,然后对这些信号进行解析,提......
  • 5069-L430ERMW 控制器 负责调度各种资源
    5069-L430ERMW控制器是指能够按照预定程序自动执行控制任务的装置。在硬件层面,它通常包括程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器等组成部分,这些部分协同工作,完成对整个系统或设备的控制和协调。控制器的基本功能任务分配:5069-L430ERMW控制器可以根......
  • Citrix ADC Release 14.1 Build 29.63 (nCore, VPX, SDX, CPX, BLX) - 混合多云应用交
    CitrixADCRelease14.1Build29.63(nCore,VPX,SDX,CPX,BLX)-混合多云应用交付控制器CitrixADC-混合多云应用交付控制器请访问原文链接:https://sysin.org/blog/citrix-adc-14/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org大规模应用程序交付可能很复......
  • 「OC」视图控制器的懒加载策略
    「OC」视图控制器的懒加载策略文章目录「OC」视图控制器的懒加载策略懒加载懒加载的优点常见的懒加载实现方法使用懒加载的注意事项控制器的懒加载参考资料懒加载懒加载(LazyLoading)是一种设计模式,其核心思想是在需要时才进行对象的创建或资源的加载,而不是在对象......
  • 基于STM32(STM32F103RETX)项目:水质检测与水位控制器(中控板)
    目录项目介绍一、项目需求二、设计方案三、相关技术点四、预计效果设备开发一、TDS模块二、LORA模块三、OLED模块四、4G通信模块五、IM1281B电能计量模块项目结项一、该项目能让自己有什么收获二、总结项目中遇到的问题,以及解决办法项目介绍一、项目需求1.水资......
  • Operators和 自定义控制器(Custom Controllers)的区别
    在Kubernetes中,Operators和自定义控制器(CustomControllers)都是用于扩展Kubernetes的功能和管理自定义资源的工具。虽然它们有很多相似之处,但它们的用途和设计目标有一些重要的区别。自定义控制器(CustomControllers)自定义控制器是Kubernetes的控制器模式的一部分,用于管......
  • 《安富莱嵌入式周报》第341期:Stack Overflow调查报告分享开发者年薪情况,开源USB高速分
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104视频版:https://www.bilibili.com/video/BV1Gw4m1k7jw目录:1、开源多功能USB2.0高速分析仪2、开源100W微型无刷伺服电机控制器3、MicroChip新款DSC系单片机集成40Msps12bitAD......