组成原理精讲课--硬布线控制器和微程序控制器
这个文章主要介绍我们的硬布线控制器和微程序控制器,其中不仅是考试的重点,也是我们的组成原理里面的重难点,对于我而言,更重要的是这个是logisim单周期和多周期的电路设计的大boss,我希望自己可以把理解传递给大家;
1.硬布线控制器
这个内容是学习控制器的时候学习的,硬布线控制器也是控制器,只不过这个是使用逻辑电路组成的控制器;
下面的这个步骤就是我们的硬布线的设计步骤,其中前面的三个步骤属于我们的影应试的范围里面,最后一个步骤属于我们的电路设计,就是更加偏向于我们的logisim这个样子的门电路之类的(其实也是我最感兴趣的),可惜的是这个考试不会考,因为考试更加注重的还是应试能力;
1.1微操作序列
下面的这个就是我们的微操作的序列:其实就是我们的指令的执行过程的划分,我们之前学习这个数据通路的时候对于这个指令的执行的过程应该是非常的熟悉的,接下来我们简单的回顾一下;
下面的这个其实就是取指令的阶段,我接下来使用自己的理解简单的写一下:
[!tip] 取指令阶段的详细拆解
1)PC存放的是指令的地址,传递给我们的MAR;2)1->R这个的意思就是我们的控制单元发出读的信号,因为我们的这个内存是同时收到这个MAR和信号之后才会读取内容;控制单元就是CU,全称是control unit;
3)M大括号表示的就是我们从主存里面把这个数据取出来传递给我们的MDR,这个括号里面表示的是我们更具这个MAR从主存里面去内容,是这个样子的;
4)PC寄存器的自增,存放下一条指令;
5)MDR的结果放到我们的IR里面去,这个时候存放的就是我们从主存里面取得的这个指令;
6)OP(IR)表示的就是得到我们的指令的操作码,存放到这个ID指令译码器里面去,对于我们的指令进行翻译
接下来就是根据这个翻译的结果执行指令啦;
1.2CPU三种控制方式
同步控制,异步控制盒联合控制,其中联合就是指的联合我们的同步和异步两个方式;
同步和异步各有优劣,简单的话,速度就慢,速度想要快起来意味着我们的这个控制逻辑也就会随之变得更加的复杂;
1.3安排微操作的时序
这个应该是最复杂的部分了,包含了三个原则,我在下面的这个指令里面进行解释:
[!check] 关于三个原则的具体解释
1)首先是三个节拍,无论是取指令,分析指令都是三个节拍,使用T0,T1,T2进行节拍的表示;2)原则1说的是操作顺序不可以更改,这个其实很容易理解,我们的这个顺序很重要,需要按照顺序执行;
3)被控对象不一样,一个节拍完成,节拍就是周期,反之,对象一样,需要在不同的节拍完成,这个是因为相同的对象在一个节拍同时使用可能就会出现异常的情况;
这个可以去看下面的这个1和3两个地方,1里面是PC传递给MAR,MAR相当于是接收方,3里面是MAR取出来内容传递给MDR,这个时候相当于是读取MAR里面去内容,这个时候两个步骤的操作对象都是MAR,即被控对象一样,我们需要使用不同的节拍,下面的这个也是符合我们的原则,因为他是在T0,T1两个节拍里面完成的;
4)时间较短,安排在一个节拍里面,这个主要就是我们的5和6两个操作,这个56其实都是使用到了IR的,5是MDR内容传输给到IR,6则是把这个IR里面的指令的操作码取出来,这个实际上违反了我们的这个原则2,因为对象一样的话,我们需要安排在不同的这个节拍里面,但是他们去在同一个节拍T2里面;
这个主要就是因为我们的这个时间很短,5就是MDR内容给到IR,就是传递一下,6就是看一下这个指令的操作码的部分,因此这个时间短暂,按照我们的原则3,时间短的话,放在一个节拍里面去完成即可;
以上就是我自己的理解,说明一下这个原则在我们的具体的微操作里面是如何体现的;
2.微程序控制器
上面介绍的是我们的硬布线控制器,下面的事关于微程序控制器的内容:
在真正的考验408里面,其实这个微程序控制器的出厂的频率是更加频繁的,因为我们的这个当前主流的CPU,无论是intel的,还是AMD的,其实都是使用的微程序的思想;
微程序控制器和硬布线控制器之间有什么区别,我的理解是这个样子的:
微程序就是把一个指令进行分成若干个微指令进行处理,但是我们的硬布线控制器不会,硬布线控制器会把这个指令直接执行,他会把这个就认为是一个整体,不会进行微程序里面的这个细分的操作,这个是作者本人的理解;
[!note] 微操作微命令微指令微程序的关系
在这个微程序里面,每一个执行的步骤都是一个微操作,例如这个PC到MAR里面去,我们的这个内存取出来数据送给我们的MDR里面去,我们的PC寄存器的自增的操作,都是属于一个单独的这个微操作的,这个和我们上面介绍的这个微操作的序列没有太大的区别;每一个微操作对应的就是一个微命令,因此取指令阶段的六个微操作对应的就是6个微命令;
一个或者是若干个微命令组成了一个微指令;
一个微程序是几个微指令组成的,每一个微程序和我们的实际上执行的指令是一一对应的;
下面的这个是我们的微程序的设计步骤,和我们的硬布线的区别不是很大,按照硬布线的那个进行理解即可
下面的这个是我们的微指令的分类:
我是阑梦清川,希望得到您的关注
<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&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>
文章推荐
05年,20岁,还是没能脱下孔乙己的长衫👈️
当实验报告变成 “形式主义之下的AI大赛”:大学生的时间,不该浪费在实验报告上面👈️
普通工厂模式是青铜,抽象工厂模式是王者?这场设计模式 battle 太精彩👈️
纵使AI使用千万种修辞手法,也写不出人类独有的精神密码–2025新高考一卷语文作文测评👈️
cursor还能绘制文章的架构图,太酷了👈️