首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >组成原理精讲课---运算器控制器和数据通路的搭建

组成原理精讲课---运算器控制器和数据通路的搭建

作者头像
阑梦清川
发布2025-07-01 08:27:37
发布2025-07-01 08:27:37
2980
举报

1.寄存器的透明性的问题

上一次的文章对于透明性的理解有问题:透明或者不透明指的是我们普通用户能不能修改;

Ri指代的是我们的通用寄存器组,说明一下:暂存器就是锁存器!!!!!!!!!!

2.控制信号的两种方式

3.运算器和控制器图解

下面的这个展示的是我们的运算器,对应的这个介绍啥的都在这个图里面进行了说明,我觉得很不错;

唯一需要记一下的就是这个T,也就是暂存寄存器,也被称为锁存器,在我们下面的这个图里面有两个暂存器,一个是ALU运算之前,这个主要是存储我们的操作数,否则会被覆盖掉

第二个T是在我们的这个运算器运算之后,这个主要是为了防止这个运算结果通过总线参与ALU的二次运算

下面的这个是我们的控制器的部分:这个注释啥的写的也是非常的详细;

微操作信号发生器也叫做CU,取决于三个部分,也就是下面的这个图里面指向他的三个内容;

还需要注意一下这个MAR和MDR进行交流的单向和双向的关系;

ID是指令译码器,对于指令进行翻译的功能,不属于寄存器;

4.单指令周期和单周期CPU

单指令周期:每一个指令执行的时间一样;

单周期CPU:执行一个指令需要一个时钟周期,无论如何指令,都只需要一个周期;CPI=1(执行一个指令需要的时钟周期的个数)

5.指令周期数据流

5.1取指周期数据流

微操作加括号表示的就是取出来这个里面的内容;

5.2分析指令的周期的数据流

AD(IR),AD表示的是指令的地址,就是把地址码取出来,我们之前学习这个指令有操作码和地址码,AD就是地址码;AD实际上就是address的意思;

最后操作之后MDR里面存放的是我们的EA,也就是Effective Address,就是有效的地址

5.3中断周期数据流

SP是栈顶指针,下面的这个数据流实际上是我们的中断的响应的过程;

中断的三个步骤:关中断---->断点的保护---->引出来中断服务程序

我们下面的这个数据流实际上对应的是我们的中断的响应的过程里面的对于断点的保护的步骤;

因为这个关中断是硬件完成的,我们不需要操作,中断服务程序基本上也就是执行指令,因为中断服务程序也是一个程序啊,也是有很多的这个指令组成的;

实际上这个SP指针为什么需要减去1,这个我刚开始也不是很理解,我认为可以按照老师的例子分为两个步骤进行理解:

[!note] 中断的过程的理解分析 下面的这个1)就是把我们的这个位置存入到了这个主存里面去; 下面的这个3)就是把我们的断点放到我们的1)里面找到的这个位置里面去; 中断结束之后,什么都没有发生,因此这个时候我们需要执行下一条指令,我们这个时候就是把这个主存的96这个位置的地址交给我们的PC,继续执行;

6.专用数据通路和总线

在这个部分我们是分为了三个部分:单总线,三总线和专用的数据通路,我这个地方单列出来就是为了进行相关的总结;

单总线是我们比较常见的,就是数据都通过一个总线进行这个数据的传输,这样的话就需要我们的暂存器嘛;

三总线,就是不需要暂存器,因为这个时候数据的流动是在三个总线上面进行的,不会进行彼此的干扰和影响,因此这个不需要使用暂存器,但是总线的数量增加意味着我们的这个三总线的这个控制逻辑更加复杂;

下面的这个是专用的数据通路,和上面的总线的区别就是我们的ALU 和不同的寄存器组是直接链接的,这个时候不需要通过总线进行数据的传输;

这个时候通用寄存器组和这个ALU运算器的链接意味着我们需要使用多路选择器三态门进行这个数据通路的控制,看看是哪一个寄存器通,哪一个不通的类似的这个逻辑信号之类的;

7.中断向量表

下面的这个是中断和异常的分类:

我们发生中断之后,首先会得到的就是类型号,通过这个类型号我们去这个中断向量表里面找到我们的中断服务程序的入口地址,这个时候我们就可以去访问我们的这个中断服务程序了;

其中,我们说这个中断是软硬件协同的,是因为这个过程包含了软件的操作和硬件的操作:

1)硬件操作:中断隐指令,这个包含了关中断,保存断点和引出中断服务程序,这个中断隐指令不是指令,而是属于我们的硬件直接完成的;

2)而后续的这个中断服务程序的执行是软件进行完成的;

综上,我们说这个中断的过程是软硬件协同处理的;

代码语言:javascript
复制
<section class="mp_profile_iframe_wrp" nodeleaf=""><mp-common-profile class="js_uneditable custom_select_card mp_profile_iframe mp_common_widget js_wx_tap_highlight" data-pluginname="mpprofile" data-nickname="跟学长学数模" data-alias="vx17813100105" data-from="0" data-headimg="http://mmbiz.qpic.cn/sz_mmbiz_png/7ibTuicIwZU7icUWibpvKcMgKeibKk3tkyLjco05PWQa1HqLCicGRtpEBib4BTGagjYJWZJ2uYEFafXjVNsIfHZqayibyg/300?wx_fmt=png&amp;wxfrom=19" data-signature="嗨,很高兴认识你,也很开心和你分享我的学习心得和体会。" data-id="MzkwOTY0MjA4Ng==" data-is_biz_ban="0" data-service_type="1" data-verify_status="1" data-origin_num="99" data-isban="0" data-biz_account_status="0" data-index="0"></mp-common-profile></section>
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.寄存器的透明性的问题
  • 2.控制信号的两种方式
  • 3.运算器和控制器图解
  • 4.单指令周期和单周期CPU
  • 5.指令周期数据流
    • 5.1取指周期数据流
    • 5.2分析指令的周期的数据流
    • 5.3中断周期数据流
  • 6.专用数据通路和总线
  • 7.中断向量表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档