screen_计算机组成与体系结构_第10周_星期四_第2大节_原文 2026年01月01日 16:52 好,咱们开始上课。上节课咱们主要是讲一下有关第五章和第六章内容。主要第六章,但是一句话,蒋老师这个PPT课件我没有改,但是感觉这个燃油版的第六章有关存储系统设计内容讲的,我个人感觉讲的不是很简练,那么怎么办呢?事实上在上周周五上周五我已经将咱们之前清华就清华咱们那个蓝皮的教科书的第五章的PPT发给大家。那么建议大家对于咱们燃油版第六章的学习,就参考现在我在这个投影仪上播放的清华版PPT就可以了。这个相对来说比较简洁,也符合咱们的一个实际需求。因为这个核心内容,我们老板的这个内容是已经够了。

杨老师讲的一些东西有点太多了。唯一就是说跟老板相比。蒋老师在讲开始计算的时候,在讲这公式的时候,重点讨论了一下这两个公式。和这两个公式。对于访问效率,我们一般的教科书上采取最上面的绿色的T等于H乘以T1加上一减H乘以T2。这是一般教科书在讲态势效能的时候,我一般用的公式。

那么讲到什么呢?这个学习参考一般用第二个K等于H工作率0T1加上1减H乘以7加7 2。这个只有蒋老师教科书上是有。凡是大型的考试的话,一定要采取第一个只有蒋老师的教科书里面是这样写的,别的不用写。我觉得这主要一个区别。但是可能同学有的同学可能在读读书,没没弄明白这点,希望大家一定要注意一下。

除此之外,建议大家使用这个清华版的第五章的PPT。通过看热PPT在读我们第六章的书,我个人感觉就可以了是吧?没有必要再。因为有些扩展假如是想扩展,但是扩展不是特别好,这是我们第六章的学习的问题,这个答案要注意一下。这节课咱们要再加把劲儿把第七章学完。第二不讲究,我们加把劲儿把第七章完成的话,咱们这个总体系的核心内容就算是告一段落。

下一部分就是主要是一个。把作业进行一个订正,然后布置一些课外的实验和大作业,这个我们是有要求的。昨天也是跟王彪老师,也我周日我们沟通一下,咱们期末考试37开,期末考试试卷我们就按100%分命题,占比是70%,剩下30%,其中平时这个平时差不多有就平时家就平时谁叫,平时交的作业考勤占10%,然后实验占一定比例,然后我们大作业也占一个比例,差不多各10%左右。我会根据情况跟大家调整,如果做一个实验就八分,如果做两个实验就12分,那么我们会调一下,反正就是两个实验再加一个大作业,那么占20%,这个是一定要有的。如果你没交。那么就按这比例去算是吧?咱们这个是严格按照要求去去去做的,而且是本学期所有期末一起考试的软件工程大数据都是这个标准。请大家注意一下,你不要说这那的是吧?

咱们今年上上这节课的所有老师按照课程走,注意一下。这些内容的介绍,我会大概其在讲完成第七章的学习。咱们第七章大致启用,今天最多下一周的一节课左右就能讲完,是吧?然后12月份可能还有几,3到4节课,因为咱们的内容量还不少,然后咱们再说。

好,上节课我们说了,我们开始了新的一章的学习,就是有关这个中央CPU就中央处理器的学习。我们从我们冯诺曼结构的基础知识,我们知道菲诺依曼的CPU是包含运算器和控制器的。在我们的第四章学习过程中,我们已经对于运算器的设计以及二进制加减乘除的工作原理我们进行学习。

在第七章虽然写的是CPU内容的学习,实际上就是重点是解决了我们控制器的一个设计。以及通过咱们第七章的学习,使大家要明白我们人类设计的各种指令如何变为电子设备的具体的动作。你说这个由逻辑控制到电子器件的动作,它的最后一个转换就叫控制器来实现。咱们就看一下,这也是咱们计算机组织体系这门课,我个人感觉是最为精华的。它才是我们真正实现了计算机自动高速进行工作的一个本质,也是咱们所有的东西,对吧?我们从大一到现在所学的所有内容,最终是在我们的指令解释变为电子设备的动作,这是最后一关。

上节课我们讲了一个抽象CPU的构成,也或者叫我们叫CPU模型。在这个CPU模型里面我们分别描述了两个unit,分别是ALU这样的一个unit,就是算术逻辑单元。那么控制器我们称为什么?Controller unit就我们这个PPT上的右上角的那个器件,CU就是我们控制器。除此之外我们说这是AIU和CU,是我们一个CPU最为核心的两个部件,一个完成运算,一个完成控制信号发出。除此之外大家可以看一下剩下的所有的器件在这,我们所有我们在做一个标注。

那么输入之上除了ALU和CU之外,剩下的都是用户基线框出来的,都是什么CPU内部的。现在应该看应该是专用寄存器和通用寄存器。比如说有两个大概人见过了MAMDR。这个我们在第五章学习过程中我们说的很清楚,这叫存储器数地址寄存器,存储器数据寄存器这两个从逻辑功能划分来说,它属于存储部件。但是它物理的被涉及到了CPU的内部,属于CPU内部的专用器。

除此之外PC我们在第三章见过是吧?程序接收器我们知道沉域接触器的作用是在我们设计指令的时候,如何描述下一条将要执行的指令的地址。我们是用PC通过PC加一实现我的下调指令位置指向是吧?

实际上我们当我们从主存中获取到一条指令,在CU内部我是需要用寄存器存放,是不是?那么存放寄存器的,存放指定的寄存器叫IR叫指令寄存器,就是CPU你是从什么分析,或者从我time中取出了一条指令?这条指令你放到CPU,我们要对它进行解析。那么它在CPU内部的名称通话里就是IR指令寄存器。这指令寄存器看一下这里的RD这就相当于对于指令中的操作码的一个翻译器。这个翻译结果送到我的CEO控制单元。控制单元到后面我们会说他主要是对指令中的操作码进行一个解析。通过对它的解析变为我的控制信号,控制电子硬件设备,打开门加一做具体的运算。

除此之外我们这有个PSWR程序状态字寄存器。也就是说我们第五章,我们曾经说我们这个CPU在与存储机进行通讯的时候,我们会等待一个MFC这样的信号?那么这个信号我们说CPU是等待,那实际上你说这个存储器完成操作的最新号送到哪呢?事实上我告诉大家是送到PSWM。换句话说CPU要动态的去获取当前的PSW程序状态字的信息。

通过读取这个行,就是按时间轮班,我定时去查询这个状态,来判定外界这个工某些工作是否完成。换句话说,这个我们在后面会对他内容进行展开,它的内容是比较丰富的。换句话说CPU对于其他部件的工作完成与否,是通过PSW程序状态是特定位置0L1来判定。我什么工作没有,或者在运算过程中,比如说出现溢出?运算过程中解出了,那么CPU控制器是怎么怎么知道就是工具PSW里面的特定类的状态。这边是比如定位信号或者什么,或者结果为零,这些里面都有标题对吧?这是我们最为关键的一页PPT,这里分别把这些信息所有的都列出来了。

除此之外我们有个AC称被称为累加器。累加器刚才我一直没讲这个,这里的AC虽然叫累加器,大家看一下,它是直接与ALU的输入端相连的这是属于通用寄存器里面的一种。五大专用寄存器这里有,比如说IRM、DRMAR. PC大家可以看一下五大功用寄存器mlp c这个TSWR,这个MDRIR,那么正好是五个是吧?其他的都不是。

然后我们说这给大家给的是一个抽象的CPU模型。如果不抽象,我拿一个CPU实例它会长成什么样?大家可以看一下这张图,就是我们经典的英特8086CPU,大概距今现在有45年了,它是1980年的产品。大家可以看一下这张图,你能不能看明白是吧?这张图画的比较清楚的是ARU吧?你们又看到ARU还有一个这里的控制部件,就是我们CEO。

除此之外大家看一下是不是我刚才所提到的那些寄存器都问出来了是吧?IR指令寄存器PC型程序计数器MDRMAR。大家看一下这个AIU接的一般这个D实际上是个累加器。这是我们的通用寄存器图,什么ASDSCSDXSPBPSIDR对吧?这是我们一些通用寄存器,这是1980年诞生的8086CPU的服务?然后我们说现在的工艺比起这个要复杂的多是吧?

后面我们会讲鲲鹏,就华为的鲲鹏处理器,那你可以看一下它在内部这是单个CPU。华为它的C它的昆明处理器内部,单CPU还要放64是吧?64个模型怎么去叠化?当然我们这个是做了四十多年以前的东西了。回头我们在咱们课程最后我们会讲一下华为昆仑处理器也不是最新的了,都是在218年19年就是中美关系还是比较好的时候。在当时华为设计台积电代工的鲲鹏,后期他们的设计站起来看老师一起来看一下。

这张图是我们今年的8086CQ内部结构图。在在这儿大家可以看一下,我们用红色、绿色、蓝色、黄色分别代表了各种总线?红色是控制总线,绿色数据总线,蓝色地址总线,还有一个内部总线,就整个CPU内部总线,前面都是CPU与外界的一个传输的通道,我们大家一起来看一下。这张图大家注意一下,我们个人线的是双向还是单向,大家一定要看清楚。这个先描述一下。

我们在这给大家再讲一个比较需要大家注意的,你看PC对吧?PC它是与CQ内部总线相连的,但是你发现PC。它并不是因PC的内容,就是什么当前正在执行的程序,程指定的地址的或者下即将执行的地址。那么大家看一下PC这个寄存器和这个总线,它的连接是不是跟大家想的不太一样?它在这细分了数据从总线写入到PC以及PC这个数据到底现场是分开的是吧?这个就是说CPU内部同样是T它的输入门的控制信号和输出门的控制信号是单独的。我为什么讲这个?我不是白讲。

后面我们还用到这张图,也就说在这里面所有寄存器描画仔细一些,都是输入和输出是分开的。比如说这里的MAR、MDR? 咱们去看一下,你可以看一下,我们这话不是白话是吧?这个要对应相应距离的控制信号。因为比如CPU或者控制发出的微操作信号,要与这些寄存器的输入门打开,输出门打开,要分别清楚这个相关图。

好,这一张图是你们咱们教材上是没有的,这是我从别的地方选择。好,那么CPU的专用寄存器是五个,大家可以看一下,用这张图我们你进行罗列,一定要强调专用减震器。PCFRPSWSMARMDROK这是我们专用CPU的专用寄存器,除此之外都属于通用寄存器。当我们CPU内部的通用器组的数量变多多,到最后就变成了我们的cash,cash就来自于CPU内部的通用寄存器。

为什么我们现在寄存器为什么要大量要使用PH呢?因为开始的是脱胎于C根内部的通用寄存器,因此它的访问速度C这个属于CPU内部的一个处理速度。也就是说这是唯一有处理速度和是满足C需要的一个存储器,并且经常注意一下。

好,下面这个我们看一下CPU的核心参数。第一个就核心数量。事实上我们早期像8086、80286、80386时代,事实上我们在当时我们的CPU都是单个CPU。但是我们说在过去我们对于单CPU的性能是怎么去优化提高的。主要是通过芯片的主屏。后面我们也会讲控制器的时序系统。

时序系统说什么叫CPU实训系统?就是CPU它内部有一个石英振荡发生器,通过石英振荡发生器发出高频震荡波。根据发出的高频振荡波的频率来描述我们CPU的工作频率。就是当时什么33兆赫兹、66兆赫兹等等等等。实际上一个我们在早期当前标准,就根据CPU内部使用电脑发声器发出高频率的波动频率,我们来标注这个CPU的性能。你发布的各频率主频越高,这就意味着你在单位时间发出震荡中就越多。换句话说,我们CPU在特相同完全相同时间上门工作,所对应的我的这个单位时间就越来越小?

早期跟尤其是单CPU的时候,我们主要是不断提高高CPU内部的水振荡发生器的产生高频波的频率,来提高CPU的性能。但是这个东西总是有极限的,当我们通过芯片是震荡发生器,提高它的震荡频率到物理极限之后,我们再怎么进行优化呢?事实上我们由传统的追求震荡频率高与低,改变为利用一个CPU盒子里面,我追加多个CPU,就原来一个个人干事,现在我变成四个人或者八个人一起来干。实际上这种是现在CPU的主流设计模式。甚至到了我们的手机阶段是吧?我们手机阶段现在的这个手机基本上都是基于R架构。

无论你用的是华为的手机,鲲鹏什么诈骗,应该是妹子发明发布或者预售。它的鲲鹏9030芯片要出来,还是你用这个小米等等其他的这处理器中的高通的枭龙系列的CCPU?那么像我们或者是苹果的M系列的这个不是他写就A系列A19、A18等等等等。

这些处理器从它的技术架构来说都属于ARMR架构。这种二级架构在过去我们计算机专业把它称为嵌入式系统,也是在一个芯片上。我把什么运算存储都放在一起。我们说现在计算机基本上都是什么多核,而且你像澳门架构更更狠,就是它分大核小核,大核做运算,小核做什么GPU的运算,甚至现在咱们说特别火的AR计算。AR计所谓ARCPU是什么?是说白了可以专门做向量矢量计算的气?尤其现在人工智能这个产业是越来越蓬勃发展。专用的这个AR处理器也成为一个研究的热点是吧?

那么这是芯片数,这个间隔对于芯片数,而且还有什么对于它的功能的区别和优化。在我们早期单CPU的时候,我们经常会提到这几个概念,主屏、外屏和倍频系数的概念上。在二十多年以前,当时单CPU的时候,我们经常会做相关的调整。

所谓的主题指CPU内部的工作频率,是衡量CPU的一个性能的一个或者速度的一个重要参数。这主屏大家可以看一下,就是我刚才所说的CU内部数字脉冲信号,震荡的速度就是结束。我们后面会讲有关CPU的持续系统。

你会发现CPU数据系统的来源是来自一个高频能发出高频震荡波的一个石英振荡发生器。来自于它。它是可以做相应的工作,这是主频。大家一定要看清楚我们CPU主频的定义,他描述的是CPU内部数字脉冲信号震荡的速度,这个大家都要明确,它是间接去反映我的这个运算速度。

这是这块,这是主屏,外屏说白了是CPU的主板。这个为CO提供的一个基准的使用权利。这个主板的频率主要解决了CPU与其他器件。比如说我的内存,比如说我的外设或等等其他部件。你和CPU通讯,你的信号是怎么同步的?那么我们就根据这个外皮来判定,也是通过主板的总线来判定它的速度。

事实上在最早像8086时代,我们的CPU工作的内屏与外屏速度是相等的。也就是说在早期我们这个CPU的性能是非常弱的。因此在当时CPU的内屏和外屏是不相等。

但是随着我们这个CPU的制作工艺越来越先进,而与CPU相连接的无论是内存、外设,它尽管有发展,但是从处理速度角度来说,已经被CPU远远的抛在后面。到了这个时代,CPU的处理是越来越快。而其他的设备给我的显示器,我的显示速度,比如说我内存与与这个CPU的交互速度,这些尽管有提高,但是比起CPU的这个处理速提高,我们是差的很慢很快。此时CPU内部的工作速度和CPU与其他部件打交道,这个速度差距就越来越大。越来越大,也就是说CPU内部的速度是越来越快,CPU与外界其他部件打酵素的是要是有提高,但是提高幅度不是特别快。CPU的内部工作频率和CPU的外部工作频率,他们之间我们做了一定的约定,也就说它是有关系的。CPU的内屏等于外频乘以这个倍频系数,这种方法就是主频等于外频乘以这个对频系数。

在二十多年以前,就2000年,就97年、98年,当时我们叫奔2奔腾有奔腾机是这个处理器是1995年出现的,就大概在97年98年的时候,它出现了第二代奔腾机。在当时就已经出现了这样的问题,有这样的一个关系,就CU的主频等于外频乘以倍频系数。在当时,你们可以发现当时的一些资料的话,当时很多所谓的计算机的爱好者,所谓的玩家,他通过调整费。外屏的内屏技术,使得CU的内屏超出了这个CPU额定的工作核定的工作频率。

那处理方法是什么?我加入大的,因为外屏是CP与外部其他部件的通讯的通过频率?你不可能再再给它进行变化。我们通常测的是什么?将外屏的工作频率降低一点,但是提高它的倍频系数,这个价格提高,最终计算出来的内屏会超出所谓的CPU的额定工作数,就所谓的超频技术矩阵来做的,降低外频,提高配置系数。理论上讲就被被系数是从1.5到1下。那么一般来说,只要你CPU内部比较稳定的话,那么就是就可以适当提高。

但是我们说这样会造成什么?CPU的长期在这个高频应用下,它它的寿命或者功耗会发生一些改变。除此之外,我们说这个CPU内部的cash,主要解决CPU和内存之间的工作速度差异。

这个之前我们讲的比较啰嗦,然后电压一般来说现在就是越来越把电压降下来是吧?这些我们再不说了,对制造工艺就是。就他就是比如说CP内部总线与总线之间的最小间隔?现在英特尔CPU过去咱们买到的都是差不多14纳米,十纳米这是算最高的。而像纳米架构已经做到了3纳米,两个纳米是吧,这是最新的。就这个然后我们说这个他也是体现了原告又体现了,我们这个工也会发生改变。

好,这是有关CPU的概述。下面咱们看一下持续系统,我们首先看一下时序系统它是起什么作用。在我们GCPU内部的时序系统是我们控制器的心脏,它的功能是为指令执行提供各种定时信号。刚才我说了,我们衡量CPU的工作速度就是基于我们CQ内部持续系统的它的信号发生源有一个石油振荡发生器发出的高频振荡波,打五个对高频震荡多。

高频震荡波。首先它并不是一个像我们一般的曲波画画的那个矩形波,是吧?我们通过我们的一些信号处理技术,最终会把它变这种矩形的这种方格的形式。那我们怎么用呢?首先比如说。

这是一个周期的内容是吧?比如说我弄错了。

比如说我们这里画了三个周期,我们每个周期CPU完成一个动作?那么我们怎么优化呢?我们是事实上通过提高这石英振荡发生器发出的高频脉冲波的速度,是换句话说就是每一个时钟周期,比如说TT1、T2、T3轮流到T。我们说了CPU完成应用类的操作至少一个时钟周期,那么你怎么去提高CP的工作速度?说白了我们是不断的要压缩我这神舟机器的。数值不但要使它这个数值要下降,我虽然都是一个T周期,但是每个周期对应的时间花费是越来越小越值是越来越小。这样的话我们虽然都是完成多个时钟周期,但是每个时钟周期的值小的话,那总的处理速度都会提高?那么这是是这是我们震荡波他怎么通过其通过使他提高减少体温减来使我们的乘以因素更快,这是一块。

除此之外,我们说我们持续系统的这些矩形波,它的作用就是我们要利用他的所谓的上升沿,就信号的上升沿。看这信号的上升沿或者下降沿,来进行多个部件共同工作的一个同步激发。比如说当遇到这个矩形波的信号由高电平变低,电频对那个信号的下降点,我同时启动了若干部件关什么样的什么样什么样的工作是吧?也就是说这个时序系统一个通过时钟周期T的值不断的变小,来提高计算机整体运行素,这是一个作用。

除此之外我们持续系统还有一个作用就是什么?CPU内部多个部件进行同步操作的这个定时设备,这是他最主要的事情。你还是因为我们计算机内部,我们同时有多个文件,比如说有运算器,比如说我有各种寄存器。那么这个寄存器我给他什么时候寄给一个什么信号,都是由持续这个时就是持续系统的震荡波的什么上身眼下天的炎来决定我们做的动作,这是它一个主要作用。

下面我们要讲几个概念,第一个概念被称为指令周期。大家看一下这里的指令周期是怎么定义的。指令周期完成的是一个指令执行过程,包括取指令翻译指令到执行这条指令所需要的全部时间,这是第一件事,这叫指令周期。指令周期的定义就是这样的,就一条指令从取指令分析指令到执行指令所需要的全部时间。但是大家注意下后面这就等关键词,根据指令的功能和复杂程度,不同的指令的指令周期是不相同的。这是什么意思?是说我一个指令系统有180条指令。比如说我180条指令,那么这意味着对应的80条指令可能它所对应的指令周期都相等,就这个意思。

比如说换句话说,指令周期的概念是一个定性的,不是定量的,是吧?指令周期的概念是一个定性的描述,不是定量的描述。一般情况下一说起周期我们都是定量描述,而指令周期却不是一个定量的描述,只是定性描述。下面除了这个第一个定性的描述之外,我们还有一个定性描述叫机器周期。

机器周期我们说一个机器周期完成一个基本动作,比如说这里的曲折类就是一个基本动作。那么曲折令花费的时间我们称为是一个机器周期。取指令分析指令他也是要花费时间的,那么他这个时间花费我们把它称为179。而且在这儿又是说词又是跟责任周期一样。根据操作的复杂程度,不同的机器周期,他跟你时间范围是不一样的。

说白了我这里讲的无论是指令周期还是机器周期,都是一个定性的描述,不是定量描述,这个大家要一定要明确。因此。指令周期等于I乘以机器周期是吧?I是一个变量,周围是一个整数变量。好,老师几分钟给我交一下,我们作业交一下。

这。

对。

上诉作业下次。

好,接着刚才内容讲,大家注意一下,我们这讲的指令周期和机器周期都是定理性的描述,而是定要这一点,一定要要明确这件事。电性和电量区别很大。下面咱们看一下,我们在这除了治疗周期。机器周期之外,我们在持续系统描述过程中,我们能不能有一个进一步的细分呢?大家可以看一下,在这儿大家注意一下。

大家看一下我们这里对于时钟周期,在咱们PPT上在这描述了对于机器周期的进一步的一个划分。大家去看一下,实际上咱们教科书上在这是单独描述了一种持续系统,大家一起来看一下,这个实际系统就是指的我们的PC机。PC机的持续系统,咱们可以看一下它是怎么描述的。我们是将指令周期描述为它有N个机器周期有有N个机器周期构成。那么对I对于每一个机器周期我的进一步的细分,大家看一下它是什么东西呢?我们称为什么?时钟周期咱们的PPT大家看一下。

大家看一下我们每一个机器周期,大家能看出来跟上这个PPT说的很清楚,指令周期是从取旨到执行指令的全部时间。但是大家可以看一下对于取值周期,分析取数周期和执行周期对应的时间花费是否是相同的。大家可以看一下对于取值它大概花了三个时钟周期?

这三个一个、两个、三个,那么分析取数花了一个、两个、三个、四个,那么这个执行了一个、两个、三个半是吧?这就说明我们对应的所谓的机器周期也是一个定性描述,就是定量。对于机器周期的进一步的细分,我们称为时钟周期。时钟周期是对于PCG的进一步细分。但是大家发现对于时钟周期与机器周期的关系来说。大家可以看一下,我们给出了三种持续的解决方案。

所谓的定长CPU周期,因为机器周期也叫CPU周期,是解决这里是吧?我们机器周期是一个定性不是定量。事实上我们给出这种方案就是什么?想办法要把定性的事情变成定量的事情。

第一种方案叫定长机器周期。因为刚才我们说过了,机器周期也称为CPU周期。什么叫定长?基于周期说白了就选取时间花费最长的这个基本操作。比如说这里的我们分为取指分析取数和图形。大家很明显,我分析取数这个周期的时间范围是最长的。因此对于定长CPU周期,就是挑一个时间花费最长的机器周期,以它为基准,我统一所有的操作。也就是说换句话说,这里我用四个施工周期作为一个机器周期,那么取值在四个周期内已经完成执行,这对应的这这个基本操作我也能完成是吧?

要定查。那么这种进场就意味着我把一个不确定电话的问题确定化当代化像这种方式。是不是在实际情况执行过程中是有一点浪费?

第二种方案叫不定程CPU周期。这就是回到了最原始的一C这个机机器器的处理方,你需要几个十分钟去,我就给你几个。比如说这个去周期需要三个V给你三个分析,取数需要404个,而执行周期需要三个半,我们可以用三个半就不需要说给你多少。这种方案是不是挺自由的,但是使得我们对于机器周期的设计是不是过于繁琐。什么规模?你面对这么多机器周期,你每一个这么良心量身定做的去给它分配时间。对于高速执行的CPU,你控制逻辑越复杂意味着你的动作越多,就意味着U实际执行性能是要下降的。

那么怎么办?事实上我们给出了时钟周期插入法。那么时钟周期插入法就有点像我们提出risk就精简人力系统的这个套路。怎么讲?就我统计一下所有机器周期它的时间花费。按照今天责任系统的解决你的思路,所谓的什么2080原则是吧?我们都知道我们有一个2080。

2080原则,20%的简单命令,它的使用率占80%。那么事实上这个时钟插入法就要找到需要把大量执行的。这个指令这么多指令它的是因为它占时它的使用频率是占80%是吧?那我就统计,以它为基准。我设定一个标准的时间发票,比如说是两个周期,两个是用TT0T1。这个找出来是我执行,请你占到80%是吧?剩下80%执行性的执行是只有20%的。

这些操作大家看一下我的时钟插入法给出了1233种插入方案,一个是什么70惇操那个操作我给一个T的时间不够,那我追加一个T要么T1对应的那个操作时间不够,我追加一个T1。那T1在极端情况下,TT0和T1对应的操作我都不够,我分别做。这是时钟插入法的三种情况,大家听清楚是吧?这时钟插入法上对应的这1233种情况。也就是说首先我要确定一个基本的工作,也这个工这时间花费两个生命周期,能够完成满足80%的需要,剩下2%的需要通过延长T0或者延长T1,或者T0T1同时延长这三种情况我进行一个处理。

像这个过去我们在这块讲讲的比较多,现在就讲的非常少了。因为这是PC机,实际上我们过去还要讲什么?小型机,但是小型机现在基本上大家都用过,因此讲OK定查不定查以及施工差距。这是两种几种方式。显然按照我们三板斧原则的话,时钟周期插入法是我们一个最理想的情况是吧?最理想的情况,因为前两种方案都有问题。第三种是。是吧大家可以看一下,这个我就再不展开说了。

下面咱们看一下我们CPU内部的控制方式。主要是对于经典的控制。因为大家也正在学习网络网络通讯是远端两个部件通过internet进行一个通讯。其实在我们计算的硬件的通讯,无论是远端节点还是CPU内部部件之间的通用方式就是两种,要么同步要么异步。

什么叫同步?什么异步?你在网络门课是怎么学的?咱们在这还是怎么样学?这是一个只要是两个部件打交道,那么我们。网络成为通讯是吧?咱们计算机内部称为控制这么一件事儿。在不同的场合,不同的环境下,我的写法描述是不太一样的。

实际上这里的控制方式指的是CPU内部各个部件如何共同一起完成特定工作。说白了就是两种方式,同步和异步。咱们叫同步控制和异步控制。实际上对于你们网络这门课来说是同步通讯和异步通讯是吧。我们比如说异步通讯,我们各种这个通讯方式。那咱们看一下这里同步控制,同步控制大家可以看一下是什么?我们进行工作的所有部件的操作有统一的持续信号进行驱动。比如说我们C部内的这个声音震动发生器,我根据这神经振荡发生器发射矩阵波,它的上升年,它的下降年作为同步控制激励的一个同步信号。

当某个杀人员出现以后,我所有的部件同时完成什么开门、关门什么样的操作?这种方式简单容易实现,但是什么有时间浪费。同步操作也就是说大家共同要完成某一件事。比如大家都知道有的人手快,有的人手慢,或者有的部件执行速度快,有的部件执行速度很慢。比如说我的处理器读写速度很快,但是他要和我的键盘进行打交道。那么键盘通过人输入法这速度跟CPU速度是没法比是吧?但你共享完成一件事,那么同步控制会出现高速设备去等待低慢设备完成,也就是高消费。在等待低慢速设备完成相应动作的过程,那个期间高速部件是不能完成其他工作,只能等待,这个会造成对应部件的浪费,这是同步的问题是吧?

还有一种方式叫异步控制,也就是各部件按照自己的工作频率完成相应的工作。但是比如说CPU和其他部件一起来做,CPU把这事情完成以后,他去做别的事儿。那么其他部件慢速的按照他们自己设定的速度完成就行了是吧?等他这个其他部件完成之后,再通知一下CPU这种的异步方式。也就是各个操作不采用统一的持续信号,而是根据指令或部件具体情况进行交互。这同和义务其实说白了就跟咱们通讯网络讲的那个通讯机制是一样。和一部因为同和一部是所有只要是器件打交道,无论是内部还是外部,我们都是这个套路,是吧?

还有就是两种结合,就所谓的联合控制方式。联合控制方式是现代计算机所采用的,具体怎么讲?部件内部我采用同步,部件之间采用异步。这所谓联合来说,这就发挥部件的一个实际的功效是吧?内部为什么要同步呢?主要是简化设计部件与部件之间打交道的话,一般异步就每个部件采用自己实际的工作和工作的处理速度进行工作也可以。但是通过异步通讯的方式,好,下面咱们看一下指令的执行过程。

指令执行过程,咱们书上一句话写的不是很好。因为咱们讲好的书,应该来说我从2003年用,现在光讲讲书我都用过七八个晚了。最早咱们是咱们北京理工大学出版社出的那套,这块咱们是不错的。但是后面他改了一些。为什么说这件事呢?因为到后面我们要讲,为了学明白这个微信号发生器它的微程序控制器的工作原理的时候,我们要用到哪些东西。

下面咱们看一下一条指令执行过程,分为取指、分析、执行三个阶段。咱们看一下每个阶段分别干什么。实际上从这一张图上我们就可以看到。

那么。

取证阶段,大家可以看一下。取证阶段我们根据刚才我们这张图大家可以看一下,就根据我们这张图大家可以看一下,就是取指就指令执行过程,大家看一下我们用到哪些部件。一个是PC是吧?PC的作用是存放当前正在执行的指令地址,或者是下一条将要执行的PC这是它的作用是吧?当前正在执行的指令的地址用PC告诉你,或者是下个将要执行的地址PC由他。与弟弟打交道的是谁啊?MAR是吧,你PC扭了是哪一边了,才能从中取。

说完了。那么。这是第一步是PC送到FMAR。第二步MAR把地址送到存储器是吧?然后第三步控制器的这个是干什么的?控制器的第三步,大家看这个方向,控制器既不发地址也不讨论。

像这个控制器是发出读操作的指令。比如你PC是不是给的是一个地址信息?存储期内地址信息你要对它进行什么样的操作,由控制器发它是三是由控制器发出读一条指令到读指令,把指令送入到指令寄存器。

也是第三是让控制器向存储器发出的读指读完以后的结果是什么?我们存储器跟去PC提供的地址,根据控制器及提供的读命令,根据这两个信息从储存中取出我所需要的指令,通过MDR将。这条指令写入到指令寄存器是吧,证据取指令全部过程才完成是吧?大家可以看一下,这就分了五步。

垂直的大家可以看一下这五步是不是像刚才所说的内容。取指令刚才我们就取指令具体操作。比如说的内容送到MAR里面发出无指令,结果送到MDR里面,MDR能送到整理寄存器。最后大家发现取值这个基本操作结束以后,PC的值由当前正在执行指令的值转变为指向下一条将要执行的地址。什么PC内容加一是吧?也就说这五步完成了我取指令这个基本操作的所有完成所有工作是吧?然后这个只是逻辑上去写,到时候咱们看一下,如果微信号发生器完成这五步,他是怎么去写的,好吧。

大家注意一下,对于取指令阶段的这个操作,我们把它称为公共操作。为什么是工艺操作?也就是当我的CPU硬件制造完毕以后,这个执行顺序是永远不变。只要指令执行第一步一定是取指令操作,取完指令,根据指令的性质,你是进行算运算和运算,还是什么样的运算,你具体操作。但是任何一条指令你要执行第一步一定是取值?取指这个操作,因此我们把它称为功能操作,取了把它称为公共操作。我们就白说,我把它光称为公共操作就OK了吗?

时尚到时候咱们要看一下,既然公共操作,我们在控制器的设计过程中就要充分发挥公共二字的作用,是吧?到我们后面会讲讲内容,手绘解决公共操作的使用问题。一句话我再强调一下,所谓的公共操作就是每一条指令在指令执行期间,第一步一定是进行取证操作,对吧?取完指令以后,我根据指令的性质进行算运算逻辑算,还是进行IO操作对吧?那是后后话,这是对于指令的解释执行的过程。但是任何一条指令,第一步一定是完全取消,这是一个公共操作。这是第一步。

分析取数也就是说对于指令,当我们指令加载到指令寄存器IR阶段,就我们把指令装载到指令寄存器IR之后,我需要对于指令的OP部分做一个译码操作。指令的OP部分指令码器说白了是对于指令的OP操作码进行一个分析,来判定这条指令完成什么。算算卓计算算运算加减乘除逻辑算有或非亦或是吧。这是一步?那么这个指令译码器ID找区分指令的功能的。除此之外加入分析阶段还我们分析指令的性质,还有什么指数。

根据指令的形式地址部分的行政地址的地址的有效规则?我要有行政地址来计算它的有效地址,你A都在分析举的结论就完成,对吧?因此我们说由于各条指令的功能寻址方式不同,因此分析取数阶段的操作各不相同。

极端情况下,有些指令是没有分析指出。这个时间花费。是没有的,或者他特别快是吧?这个你咱们可以琢磨一下是哪一些指令没有对应的T这个分析指令是一样大的是吧?应该说任何指令取出来肯定要进行分析,但有的是有些指令就是非常简洁,直接就把它忽略了很多,一带而过是吧?

就是说换句话说,有的分析出阶段,在实际我们计算过程中,我们把这个时间花费设定为零。换句话说分析取数由于花费时间非常小,我们把它的时间花费合并到了执行阶段。你还说对于指令周期至少包含两个机器周期,取指令执行指令。那么分析取证阶段这个时间花费有的可能有有的滑动约约约等于为零。那么执行阶段这是所有的指令执行必有的阶段,就完成指令的个人操作的执行。

因此站在控制器的角度来说,计算机的工作过程就是取指令分析取数,执行下调指令也是这个东西。这是一个过程。下面咱们看一下数据通路的组成与实现。咱们看一下,数据通路说白了就是CPU内部的总线是吧?看一下我们举一个例子。比如说我们看一下一个加班点ADD什么圈?R0逗号R1。首先这是个加法指令,而且是寄存器两个操作数,一个是寄存器间接,一个是寄存器直接?这个SR一这是寄存器间接,R1是计算直接一个一个间接一个直接看一下这家指令,我要完成它对应的。V程序是怎么写的?

具体的看一下我们对于这条指令的工作,我们做如下描述。大家看一下。这条指令完成的功能是将R0的内容作为地址送入到主存中,并且取得第一个操作,这就所谓的寄存器间接寻。这是取得第一个操作数,然后与R一寄存器里面内容做相加,结果送入到主存中。大家可以看一下具体操作,20是吧?R0是地址,我二就是计算机鉴定好了,我取两次之后与R一页内容做加法,那么写到哪呢?由R20指向的主题单元写到这里,这是这条加法所要完成的工作。

咱们看一下针对这一条加法指令,我的取指令、我的分析取数、我的执行,它对应的微操作序列长什么样。好,那么要说明他的微操作序列长什么样。首先我们要做一个假定,也就是说这执行这条指令,我要是放到一个特定CPU去执行是吧?那么这个CPU内部的构造我们在这给你画出来。大家可以看,这是也就是说我们的微操作序列是由硬件的CPU内部的结构决定。比如说有了物理的器件的连接方式,有了这个东西的前提下,我们再说这条指令是怎样解释执行,这个一定要明确,先有意见。在抗疫硬件基础上我完成指令执行,这个就类似于什么?

大家进行交流的编写和你用CC加元的编辑的区别。那么java元我们说一次编写可以倒数一起是吧?因为我们用加了c java编译器生成的点plus文件是一个二进制自建的,它与平台无关是吧?也就是这种二进制字交流。是到他,因为他和平台无关,是一个平台它自己适配。因此也是说我们加了天气的时候,我们不考虑它底层CPU是吧?而我们C加加我们编制是一步到位,是针对特定处理器我进行建议。实际上大家说将骄傲。

有人要说了,那你说的是我在二官网的时候,我下鉴定K它是不是要区分什么windows版、linux版,什么什么什么什么什么平台的版本。大家说到底你们在java里面下的东西到底是什么东西?事实上它包含两样东西。一个是JDK1个是JR那么JDK说白了你什么加C你做编译的时候形成的二进字节流是用JDK的东西。换句话说,只要你编写的形成二进制节流就可以用。但是为它所谓的你在oracle官网上下载的java,它分不同操作硬件。可实际上它的区别在这,JRE什么java专汤这个就加了一些环境是吧?

加二运行环境是什么?由二进制字节流到本地的具体编译。说白了你们所说的普通版本件就可以升上,是这种情况来决定。这个决定也就是说比如说这个我要为什么说这个,比如说他就加到底要弄成什么,是由你所适用的具体的CPU的硬件来决定JR或者决定了我这个微指令执行的具体的动作,这个一定要明确。比如硬件决定我这条机器指令的执行,决定了我加一个下一个反应是吧?

这个需要注意一下,比如说它一般分为X86系列,对吧?GR9JH可以分X86系列,基于ARM架构。那你你架构肯定起来是吧?

那么咱们看一下我这个ADG2220逗号二一这个加码值在我给定了,就是兄内部结构就是说我已经通过台积电,你把这个CPU生产出来了吧?看一下我生产出来的这个CPU,我要完成的甲方指令,它的是怎样执行的。大家一起来看一下这个CPU的内部结构,首先它是一个单总线,那么单总线。好像这个结构。

这张图有点欠缺,这张图只是画出了若干CPU内部若干个什么抓了寄存器的链接,实上这个链接。请同学们把咱们原有版的这个是多少页?173页图7杠,你看一下,看一下您这个。好,该利息。可以也可以看咱们PPT这页图,这一页是一个完整的图。

还是看这个173页图,图7-5,这个图是比较完整的。

我把这个图,你给他找一个完整的图。

那么大家看一下,这张图是标准的。因为咱们新版的书把这张图做了一个局部化的放大。那么这是完整的就是有关的加法指令所需要的对照。那么大家可以看一下,首先是单总线,单总线上两头最上面大家可以看下这是什么东西,最上面是CU。CEU控制单元这张图最下面是ALU这就是图7-173页7-5那张图最下面是ALU算术逻辑单元,就是我们的加法器,中间边的是各个专用寄存器通用寄存器对吧?

大家可以看一下,这个寄存器大家来看一下,首先我们找到PC因为刚刚快速增长。PC大家发现就像我刚才所说的,他是不是有从总线输入数据到PC和PC数据到底线,还有两个可以相关。如果你要控制这个PC接收数据,我要给发出的PCE这个信号高发PCE信号,那个数据可以从总线到PC如果我发生PC out,这个信号相当于我数据的就从寄存器PC的里面存放出去。我发一个PCR之后,总寄存器PC的数据会到总线上吧?这每一个寄存器都分别有一个输入开关和输出开关?像这个PCEPC2对应的是我们的后面的这个微信号。这是这个,大家可以看到,除了上下两个之外,所有寄存器在我们这都是有两种东西,一个应准,一个in一个out是吧?这张图是或者刚才我们那张图要看到是这个。

好,反正我们用这个PPT大家一起来看一下,还是我们刚才说的这个ADD at r20逗号21。刚刚才的操作是这个是吧?也就是说大家我们在这强调了一下。字母加下标一表示该部件接收控制信号,实际上是该部件的输入开门信号。字母加二次是该部件的发出的动向,相当于该部件的输出开门信号。

有了这个之后,咱们看一下我们对应的执行的什么东西,我们的微操作速度。所以我根据刚才那张图,我们分别给出了微指令。就是我们控制器要完成加法操作。我在给定的CPU的硬件结构的基础上,我要发出这一系列的信号。大家看一下什么PC out是什么意思,寄存器PC的输出门打开,然后寄存器PC的内容是输入到总线上是吧?数据从寄存器PC就这个地址信息从PC到总线上。与此同时我们仅就因为每每一每一个微命令是并发执行的,那么这里面一个、两个、三五个、六七这八个微命令是同时可以执行的。PCSMAREALE.

比如说这个地址信息是PC我的输出门打开,这信号被谁接收了?MAR是吧?那么我要送到往主存里面去送,需要M用MAR?MRE对进行接受。那么AMUE是要干什么?AIUE干什么?然后发出瑞这个能理解,这个read和MAR的数据要配合,相当于向主动化图操作。然后什么Y赋一个初值0,然后什么C零在一向CPU发出加法信号Z说了这么多,事实上他看到了这一些系列的信息,请结合刚才我们这张图。

咱们看一下,刚开始PC out,我的地址信息输入到总线上,接收端有两个,一个是MARE,MAR接收了,还有接收是ALUD对吧?AAIU因为这个AIU它它有两个输入端,一个输入端接一个等于器官,另一个接收端是直接AIU直接接无线。也就是说刚才我ALEE实际上就把PC内容直接输入到这个java器的娱乐手段是吧?但修复最终待会再讲。

好,咱们一起来看一下。事实上我为什么咱们教科书上是没有,但是这是真正的我们后面下一节讲控制器的工作原理中,我们要用到它。事实上这每一个说比如说PC out,实际上在我们后面我们用到一个相应它的定义叫做微命令。微命令。PC也就是说这里比如说第一行,这一段从第一到第八,我们称为微程序微程序。那么这一段微程序的执行正好通过这一段微程序执行正好完成了ADD at r10逗号二一这个加法指令的一个工作过程的全流程的描述。

我们这里面实际上分为九条语句。第一条语句TCSMAREALUE,然后是read y0C01C0至1加Z咱们一起来看一下,就根据我们刚才的这张图。我们可以看到,咱们一起来找一下。第一个我说PC out,我的地址信号送到总线上接入有两个,一个是MARE,这个按照我们刚才说了,大家都很清楚。还有一个叫ALUE java系的一个书端也接受了判断是吧?第一个大家能想到,然后发生芮的指令,就是说这个空气发生率的指令,就是控制器发出的指令。MAR里面有指纹,从主存中读我的指令,读我的这条指令就OK了是吧?

还有一路ALUE也是我PC内容为付追给他放到AI的一个输入端,而且Y和计算机里面值我直接是至0的?Y寄存器直接置0,还有一个C0。因为C零是什么?我加法器的定位的输入端?C0至1。那你想一下弯为0AIU的一个就相当于这个是什么东西?是PC?然后还有个C0至1就相当于是什么?PC加1。

咱们一起来看看,就我们刚才的这这条语句,第一步TC送到AIU里面,同一次同时我要完成PC加1,是不是这件事是吧?运算结果ZE就是你可以看这张图,ALU的输出端接一个Z这个暂存器,它的输入端当中这个书上和批件都没写,都没话,就是那个寄存器要打开书门就是ZE那么这个操作是不是颠覆了我们对于取成功操作的认知?也就是通过这条语句这个微指令的执行,我干了两件事。第一把PC所描述的当前正我们要准备执行指令的地址。根据根根据PC所给定的地址,我要从主题中取出指令,这是第一件事。第二件事我同时完成PC加1,这跟我们刚才的取指令的那种工操作宏观描述可不是一样的,是吧?这才是真正的微程序的一个详细的描述。

大家可以看一下,有第一条语句,我完成了两件事,取指令PC加1。然后这是第一句。第二句是the out PC是不是我把刚才PC加一的结果再写回到PC里面是吧?OK这个过程前面都是说白了都是很虚,我没落地。这是我给你这个设计CPU内部结构图,我根据他我直接写的代码,这是不一样的?

当然你说这也是伪代码,但是比起刚才那种虚头巴脑不落地的事情,这直接给你一个很强的震撼?就跟我们常之前所说的什么一道指令在执行期间,他的地址是可以改变的,你看他改了没有,诏改了是吧,而且你下了第一把就给你改了是吧,这点相当注意下。第一条语句完成了发出访问地址和PC加1。第二条指令是我修改了PC的内容,就将PC加一内容写入了PC里面。然后他等待一个wait FMFC,就等待存储器完成取指令操作。

第三步什么MDR out RURE将取出来的指令写入到指令寄存器是怎么怎么做的?什么MDF2这个寄存器的输出门打开,这个寄存器的输入打开,这每一个都是微命令,这一行我们称为微指令。这是说白了第一条语句。

第二条与第三条语句完成的是什么?我给定的这个CPU结构中所对应的取指用功操作有三条语句,我完成了取指用功操作是吧?第四小题开始我们要干什么?取操作数并且进行咱们分析取数的1MDR02MARE read是不是要取第一个操作数就寄存器间接RI是R00是吧?

然后是这是第四条语句,第五条语句RE out,因为这是寄存器YE就把R0R1的内容送到AM一个输入端,就是那个暂停。请问有输入端是吧?刚才大家看一下这个Y这里是第一次用到是吧?刚开始用直接给它负零了,而这个是我把R一的内容写入到外音里面,并且等待读出20所对应的那个操作数。然后什么MDR out YE。M加2AIUD是吧?应AIUE。

然后对于加法器,对于运AIU运算单元,我发出的加的操作是就也就是说ALEALE与Y里面的这两个数做加法操作,结果写入到70%里面,这是这一步。第七步,zn out MDRE, 第八步right这一步大家能看明白。因为这个大家写肯定是向CPU,向存储器发出一个写操作是吧?写的数据是在MDR里面,那地址在哪?是不是第四句这个r out MARE写进叫MRE写进以后是第四句到第七句MAR里面的值是没有修改是吧?因此它这个结果写入到2所指定的那个版本,对吧?

OK这就是我们的微操作序列。这每一个我们用逗号隔开的都是微命令。那么这个微命令是不是只要发出给出这个微命令信号,是不是我的计算机机器硬件就完成具体的动作,这个威力是我们人类控制计算机的最后一道的逻辑描述。

当我给出这个之后,计算机能够根据这个信号完成具体的开门关门这一加法。咱们所有的工作,这就是我们计算机组织体系奖励学习最为核心的就是我给出这个之后,计算机能够自动执行消费者动作?也就说咱们所有大学这几年所有的高级语言的编写什么的,最终一定要总结到他当时当前这五个所讲的日期,就是导致微操作序列。因为过去我们讲我们在72学时的教材中是有这段,后来当时没有,后面就再不不写不写太多。但是我觉得反正我上课这段肯定要给大家,这个大家一定要明确。比如有了我这个微操作序列,计算机就能够自动执行。

因为这些微操作序列或者微命令是不是非常具体是吧?就门打开门关闭,给他给加一个信号是吧?比如这里的C0至1,你想AMU,AMU是两个输入端,正常是两个输入端,一个A输入端和B输入端。但是按照这个AI的运算器,是不是它的定位信号输入量?默认C零是我为零,但是我一个输入端把它置0,另一个输入端我治我。比如我把它写入到PC我在定位信号输入端给他质疑是不是完成PC加1,或者完成什么什么所谓的什么R加加R减,就尤其叫R加加自加就加一个操作,我只需要一个数量,另一个智能,然后不同的点CN端指引是不是就完全不一的I加加的操作?

就完成了PC加一的操作,这个是非常关键的当大家看到了这个微操作序列,也就到了人类对电子设备的最后一道控制逻辑。下一步就是第二设备读到这个最基本的逻辑层之后,就完成具体的机器硬件设备的动作。也就是说这是最为关键的?咱们计算组成及结构讲了这么多,你就今天这门课这一点学习能力作为,也是你们高级语言。编译成机器指令,那么机器指令怎么去解释执行?我现在是只讲你一条指令,ADD, 吧?艾特R0逗号R一这个加法操作。事实上如果我CPU的内部结构变了,是不是这个微操作就发生一个本质的变化,因此我们说我们的CPU学习阶段,我们的所有的指令的执行是硬件决定软件。你有怎样的硬件结构就决定了我的微操作序列是怎么进行描述和设计。这点请大家注意一下。

好,那是上在过去,我们讲讲这段内容,事实上我们要讲两条指令。一个是加法指令是吧?除此之外我们还会讲一个同样这个结构,会讲一个转移指令JCA根据上一次的界面信号C为零还是为一,我要发生什么样的操作?大家可以看一下这对应的违规操作,就是我们给了指定的结构之后,大家可以看一下刚才我说的前三条,也就是取直率的公共操作。

从第四条到第七条是这条指令的分析执行阶段。这个没有取数,因为它GSCA是吧?GSCA, 你根据这位信号为零还是为一,我做对应的操作。大家可以看一下,这个例子就是印证了我们说一个指令周期至少有两个机器周期。大家可以看一下TC这条指令是不是它没有取数,没有分析,就根据这个信号为N为ED没有判断就行,是吧?就转移值。

这个是我们老的教科书上,这块咱们新教科书的新的讲老师在这做了压缩。大家注意一下,这个微操作序列是我后加的。假如是在后续在所有课程只是一个宏观抽象的描述,那么大家可以看咱们PPT或者网的PPT。因为这段的描述都是很抽象的,具体操作没这个阶段我要干什么什么PC的创意盖的工作。那么大概以这种逻辑上的描述,跟我们的微操作序列这种操作差别大是吧?大家一定要注意一下,你不要被这种逻辑的东西可能看起来赏心悦目,但是真正落地就不是这样。这也是为什么我一直保留这一段的讲解。就这页PPT大致我们用了20年,二十多年以前我们用就用这个,但是现在这都是我后面改蒋老师课件改革,每年我都会加这一段,咱们这个向大家注意一下。

好,实际上我们第三节数据通路的组成与实现,事实上我是对第五节,咱们先说到第五节微程序控制原理我做了个铺垫。也相当于在第三节我用一个加法指令的执行过程,告诉你微程序控制器他写的微程序代码上长什么样。你别学了半天周宇云的物理,不知道微程长的什么样,我用一个加法指令告诉你他的位置是长什么样。只不过是我们把微程序的这个01等等这些信号用一个形式化和PCL称MALE,用这种形式加以描述。真正说白了这应该是什么?就一串010101的型号是吧?也就刚才我讲的例子,是为了待会我们的微程序控制原理服务。

好,下面咱们看一下控制器的原理。实际上这个第四节过去我们是上述第二节,就是咱们老版本的那个教材第二节。这一节讲的是我们CEO控制单元的内部结构,大家看一下,这是我们控制单元的内部结构。事实上这个内部结构将我们控制器一分为四大家可以看一下就是我们的CEO,我们的控制单元和我们的控制器事实上包含了四个部分。哪四个部分?最右边我们用红颜色的虚线框出来的是作为它最核心的内容是什么?它的输入量是什么?指令寄存器说白了就是对指令中的操作和地址码做翻译的一个部件,叫D这个指令语立马回家了,看一下。

大家可以看一下。

叫过去,我们就要把它称为什么指令部件。

咱们用这张图吧,咱们都差不多。大家看一下,在这张图中最右边我们叫指令部件。说白了就是对于指令寄存器所存放的当前正在执行的指令的操作码部分和地址码部分分别做一个解析。事实上大家看一下对于指令的操作码,我通过译码器把它送入到一个微操作信号发生器,作为微侧向发生器的三大输入量之一。大家看一下这微操信号发生器是接收了指令的操作码的翻译是吧?还有一个指令的地址码,大家看一下地址码。是送到地址行政部件获取地址的是吧?还有那种产品片接收器,刚才我们展示了,这是第一个部分。

第二部分就是什么?我们的时序系统有高频,这个叫脉冲源,我们就发出高频脉冲波的这样的实际振动发生器,然后根据施工,根据节拍信号,说白了这个部分就是。向这个微操性发生器发出这个时钟信号,时钟信号和高级电。你最后你微信发出去,大家看见我每次都是有好几个并发的操作,那并发操作我怎么去动作呢?就根据我们时钟信号发出的高频震荡波变成矩形波之后,什么上升沿下降沿我该干什么干嘛,是吧?那么也就是说微超信号发生器要保证这些操作是同步进行的,谁来保证呢?有我的池中心。

这是第二部分控制器的第二部分,第三部分就是这里的中断逻辑。中断控制逻辑这个我们放在下一个第八章讲。也就说在计算机现在计算机我们都有中断系统在现在计算机的中断系统中有两个部分会出现这个中断性。一个是我们CPU内部,这里就控制在我们控制器的一个核心。你这属于控制器四大部分中的。

刚才我们讲了指令部件、时钟系统,然后是中断部件。对于CPU空气里面的中断讲它是什么?对于突发事件。或对于一些特别特殊的情况,我们以中断逻辑的形式把状态发给微操作系统发生机器。也就说我们C端内部有中断处理部件,在我们的计算机的外设里面还有中断控制逻辑,那么这两个是结合到一起使用的是吧,这是第三部分。

第四部分我们称为控制器的控制系统发生器。这里显示微操作信号发生器,这个不太准确。微操作信号发生器是我们控制器发出控制信号的其中的一种手段。也就是说将我们一条机器指令解释为一段微程序,这信号是由微操作信号发生器。除了这一种形式之外,我们早期我们大家比如大家上学期学过数字电路。那么数字电路我们用与或非门能不能设计这个信号控制器的信号发生器,也可以是吧?

我们说不太准确,但是大家知道这个微超信号发射器它有三个输入端。一个输出端。刚才我说的来自于指令的操作码密码输出信号要给其规定要发上去。我时钟系统发出的隐形震荡波要交给他,以及中断系统当前的运行状态的中断状态要给这个微操作信号发生器来说。这微操作信号发生器它会接收这三个方面的消息,三个方面的信号,最终形成统一的信号。比如说如果是没操作信号发生器,比如我刚才所说的什么PC out MARE,这都是什么微操作命令,就是微命令。微命令对微操作,就比如说我的PCR。

比如说我的PC out,它就是我们常说的微命令。

PCR是个微命令,那么对应的电子设备就程程序技术PC就寄存器的输出门打开这个动作我们称为微操作。微命令和微操作是一一对应的是吧?微命令是我的逻辑描述,微操作是电子设备的具体的动作,这就是人类控制到电子设备动作的最后一步。因为电子设备这个动作我只能用微命令进行描述,因为微命令和微操作是一一对应。

Ok这是我们控制器的基本结构。那咱们过去是在第二节,咱们现在等蒋老师把它往后放,实际上就是这张图。过去我们只讲讲的比较多,现在讲的比较少。一句话还是刚才的我刚才所说的东西,这张图跟刚才那张完全一样的。

好,下面我们讨论一下我的微操作信号发生器的实现方法。我们说大家可以看一下我们控制器。它的控制器刚才说跟我们控制器的内部结构,实际上它的输入量有三部分。一个是指令的OP的译码输出结果作为一个数量。第二个我的持续系统,就是时钟系统发出的这个旅行震荡波,还有我中断信号三部分是吧?这三个部分。作为微操作信号发生器的数量,输出。就是微操作信号,微操作控制信号或者说我们的微命令。

根据微操作信号发生器的具体的实现方法和实现原理,我们又分为三种形式。也说我们控制器的分类就是根据微操作信号发申请具体的实现方式来决定的。最常见的两种,一种就是组合楼,就是这个微信微信号发生器,是由我们上一个学期所学的数字。第二步由他来进行实现,就是利用门电路组成产生微操作信号的复杂睡醒网络。

这个我想大家上学期的学术辩论主题应该都知道是吧?优点速度快,这是它最大的优点。速度快缺点是什么?一旦我出现问题,是不是会造成我CPU崩坏,一旦他缺点是什么?它一旦你设计不完整,我们的设计调试维修很困难,基本上说出了问题,基本上就是CPU报废,不能再修改,你没法打补丁。这是他最大的一个缺点,优点是速度快,缺点是无法修正。这个在我们计算机发展早期,我们这我们现在已经不这么干了,现在我怎么干呢?事实上我们是用第二个所谓的微程序控制器,这作为我们的手段。

微尘控制器说白了是将我们的微操作代码化,并且把它存入到一个被称为控制存储器。大家注意一下,我们存放位置叫控制存储器。这个控制存储器在我们CPU内部,CPU内部V操作空信号是由V指令产生的。怎么理解?刚才我们讲了一个AABD艾特R20逗号21,他对的那个代码段就是我的为之为什么?如果你讲完例子了,这种方式是现代计算机最为常规的一种方式。

它的缺点是相比第一种门店录入方式,它速度慢一点。它的但是它的优点是我们非常喜欢的,就是说由于是什么他。将我的指令变成微程序?我修改、调试、增加、拓展都很方便,便于我们的后期的扩充。这是他最大的机制,是让咱们这个微程序控制器就讲的是这个是吧?

刚才我们讲的例子也讲的是他第三种,就所谓的前面两种方式的一种结合是吧?这个说白了,这个可以看成是第二种方式的一种演变。第二种方式演变也是对标用那个PIA工具进行设计时候去弄那个,但是这成本比较高,是吧?比如说这种PIA控制器。

事实上我们对于这个,事实上在电子专业。有种设备叫FPGA,你可以看一下,实际上这就是第三种。FPGA是电子专业,他们看家的东西跟咱们关系不算太大对吧?FPA就是我们这种形式可编程门阵列是吧?这个他说白了这种形式。

第三种所说的就是PRA控制器。这种是我们在科研实验阶段,需要反复验证修正我的产品的时候用到了。但是真正我们落地生产时候是第二个最多,第一种也有,但是伤的少一点。咱们书上蒋老师又介绍什么单周期处理器的工作原理,什么多周期的工作原理,一下自己看一下。我今天早在备课时候翻翻了翻,其实没讲的少,没讲什么,自己看就行了,我不想多说。

好,下面咱们就讲到了咱们第七章最为重要的一节,微程序控制原理的学习以及流水线技术。这一节是我们现在计算机有关指令系统是如何落地实现的一块内容。上个世纪比如60年代,我们的R点3703360大型机,他只有180多条指令。这180条指令我做了扩充,我们说它是八位能扩充到两百多条。但是我们现在比如说英特尔CPU或者是ARM架构CPU它的里面有很多以后我要进行扩展,或者是在使用过程中我发现bug以后我进行修正。我们最常用的对于指令解释执行的方法与手段,就是微程序控制信号发生器的设计实现。

首先大家注意一下,有关微程序控制的概念出现的是非常早。大概是在冯诺依曼理论计算机出现的不久。1951年由英国剑桥大学的real works。Will这个教授提出微程序设计理念,51年提出的真正的落地就是RBM360大型机。

采用微程序设计技术解决了指令系统的,也是用微程序设计技术进行指令解释。第一个成功的产品就是RBM360370大机器。通过引入微程序设计技术,使得我们当时CPU对于指令解释更为简单,出现问题我可以很快进行一个修正。到70年代,随着超大规模集电的技术发展,推动了我们微程序设计用于CPU指令解释的一个快速发展。现在一般的计算机都采用微程序控制器,作为我们CEO的一个核心的一个处理问题的手段。一句话,所谓的微程序设计技术之家程序设计技术和群技术结合起来,也就是用程序设计的思想组织控制逻辑,将微操作控制信号按照一定规则进行信息编码,形成微指令,并再把这些微指令按照时间先后顺序存储到一个只读存储器里面。

大家看一下,我为了解释这么一段话,我们用了一个ADDHR0逗号二一这个加法指令给大家作为真实的一个小例子。大家都知道微指令是长什么样,对吧?我把它存到什么地方,就主流存储器我们叫另外一个名字叫控制存储器。什么叫控制存储器呢?也就是说这个存储器是放在我们控制器的内部,控CQ的控制器外部是不可见的是吧?比如说你生产CPU的这种高端技师才能有权限对他进行一个操作,一般人是不可能做的,是吧?

那么我们就要讲几个概念。第一个概念咱们刚才已经见识过了,微命令和微操作。比如说我这里的PCR就是V命令对应的寄存器,PC把它的输出门打开,这就是微操作。这里我们说的很清楚,微命令和微操作是一一对应。微命令是微操作的控制信号,微操作是微命的操作过程。他说明了微信和微操作的关系是一一对应。这也是人类控计算机的分水岭,微命令是我们控制操作的逻辑描述,微操作是这个逻辑描述动作的具体的实现。为什么说我依然是一个能够自动高效的执行,这依赖于说能够这种高速执行,就是因为他解决了微操作和微命令的引述。

微命令长什么样?我们前面例子已经告诉大家是吧?这我就不啰嗦。那么微操作和你看它是这样的,我们将一条机器指令分解成一个微操作序列。比如刚才加法指令,在特定的CPU结构下,我描述成九条指令,那九条微指令,那么这些微操作是计算机最基本不可再分解的操作。微命令是控制计算机各部件完成某个基本微操作的命就是PC out就是微命令对应的寄存器,把输出门打开就是微操作。这个我们一定要弄明白,这是第一组。

除此之外,微命令有兼容和互斥之分。兼容的指的是为了达成一个特定的目标,我若干个微命令可以同时发出。比如说PCRMARE,PC的输出门打开,MARE的输入门打开,这两个操作是兼容的,说白了是可以同时执行的这叫兼容的那互斥?最简单PCE和PCR寄存器的输入门,就程序计数器PC的输入门和输入输入门和输出门同时打开,你说这个事行不行?

逻辑上动作上是可行的,但是逻辑上是不可行的。为什么?你程序接触器PC的输入门和输出门都打开的话,那你说当前PC里面内容是什么,你不知是吧,你就不确定了,就是他的结果就是没法判定的,因此对这个不可能同时执行的危命令,我们称为互斥是吧?这个大家一定要注意相关。而且所谓的兼容和互斥是相对的?在某些情况下,两条指令两个位置是兼容的,在这种情况下可能又成了互斥,这跟我们的处理逻辑是密切相关的。好吧,今天咱们上到这儿,下一次课我们我们的订订正相关的作业好。还有人没交,有没有没交作业的?

呃。

被告。