screen_计算机组成与体系结构_第12周_星期四_第2大节_原文 2026年01月01日 17:51 好,咱们开始上课。今天咱们会将第七章有关控制器,就是中央处理器这一章结束,这是第一块。第二块,我会把咱们这个学期的有关大作业实验的内容会不讲一讲。因为今天是12月4号,那么这个月咱们还有四次课,就包括今天咱们有总共有四次课。最后一次应该是元月1号,咱们肯定放假是吧?也就是咱们这门课是48小时16周。但是因为国庆和元旦放假了两次,就放假了42个小时。因此我们的课程内容,讲完第七章,应该说咱们教材的最主要部分精华部分也都讲完了。
就剩一个第八章,有关总线和IU控制没有什么太大的难度。但是我们说咱们这门课,由于这时间的安排,说白了国庆和元旦咱们都要报两次,因此咱们课堂这个时间还是比较紧张的。但是咱们的这个内容就是咱们最终的考试要求,就是最后给大家成绩的要求。
我说的是三七开,70%是卷面,30%是平时实验。平时的习题作业和大作业就这几块占30%。那么有的同学说我这不做,我觉得你大概率做,不是吧?咱们俗话说的巧妙,这是咱们这节课安排。那好,咱们按照咱们今天的规划进行一个学习。
首先咱们在上一节课主要是讨论了有关微程序控制原理的一些概念。利用我们这么一张图?利用这一张图给大家剖析了我们用高级语言所编写的程序,到我们电子计算机系统自动高速执行的一个全过程,一个解析的过程。也就说这。大家看一下这一张图,由程序变到我们最后的V这所有的都可以看成我们计算机专业对于代码做的一次又一次的具体化的明确的给出他具体的内容。也就是说从程序到微信全流程都是我们计算机专业的所有的从业人员所做的工作。只不过比如说在座的各位,到目前为止,可能你们掌握的是用C语言、用java语言,用python语言所写的程序。
你的程序通过各种语言所对的编译器形成面向特定CPU的指令集?这从程序到指令这个过程到指定的机会这个过程我们主要重点是啊编译?到了举例集合这个阶段就到CPU对于你的指令的理解和过程。对于每一条机器指令,比如说加法指令、传输类指令、控制类指令。对于它的每一条,我们按照类似于程序到指令的账务流程,把它最终分解为微命令。
从指令到微令的过程谁来看?这个过程是由CPU处理器的生产厂商的相关工程师来办。换句话说是应该的工程师AMD的工程师过去这件事别人基本上但是为什么我们现在强调这一件事呢?因为随着基于二架构,基于mix架构,基于risk。比如新一代的处理器,这种嵌入式系统的诞生,使得由脂类到微利的过程。可能成为你们未来专注某项某一个公司你要做的事儿。因此过去高高在上,现在我们是要把它下沉。这就是我为什么要花这么大精力解决这件事儿。
大家一定要去,因为现在大家都很清楚?CPU这个市场过去说起来就是英特尔它的占比市场占比最高。但是随着现在这个静音的家具,非英特尔CPU及ARM架构、risk five架构,这些新的架构的处理器越来越多。那么如何将通用的指令变为特定处理器的规定的一个过程,这是很多公司都要去做。咱们学到这20年以前都是觉得大家经常碰到事,触及不到。但是到2025年的今天我相信大家在未来走向工作岗位以后,从事嵌入式芯片,从事相关行业的这个工作、研发,我相信我们就都能做到。
这是一个每个阶段我们干什么事,每个公司定义的什么,我们通过这一张图进行一个剖析。换句话说,无论你是高级普通的通用做AI的程序员,还是专注于嵌入式硬件做这个指令解析的工程师。我们说这个过程都是我们人类逐步补充,由大问题变小问题,逐步一个分解细化的过程。但是我们说到了微命令,还是我们的逻辑控制,微命令对应的是我们的微操作。什么样的叫微操作?什么PCL、PCE、MARE等等,这些是微操作。你要是微命令是我们控制描述我们控制这台设备的最臭的或者最原子的操作,这点相当的不理想。这是我的上节课重点讨论一些内容。
除此之外我们还讨论了一个微指令的编码方法。微指令的编码方法这主要是对于它的操作控制字段,就是微操作功能字段。它如何进行就所谓的OP部分如何进行设计。我们教科书上讲了三种形式,一种被称为直接控制法,也就是说我们在它的微操作码字段,每一个比特位代表一个微命令。如果这一类唯一对应的微命令有效,如果如果这个为零,对应的V命令是无效的,这种方式简洁明了。但是说因为一个计算机系统里面的微命令是非常多的,这种直接控制法会造成我的微操作控制字段这个长度是无限长的,是吧?我没法确定它到底多大。这事实上肯定不符合我们现在计算机的设计需求,这是第一种方案。
第二种方案被称为直接最短编码法。最短编码法的思路跟我们标准指令系统中指令操作码字段的设计是一致的。每一个微指令它的只能描述一种微命令是吧?这是走向另一个阶段,这个也肯定不符合咱们的需求,为什么呢?因为我们在同一时刻有可能是多种微命令或者对应的微操作并发执行这个编码法显然做不到。我们最终要求大家掌握所谓的自传编码法。
具体讲用这张图我们可以看到对于微指令来说的它的操作控制字段,我把它分成若干个小段?其中每小段我采用最短编码法,段与段之间类似于这个直接这直接就麻烦。这种形式既兼顾了,因为每小段是最短编码法,它只能每一小段在任一侧只能发出一个微命令?但是不同段我可以发出若干个可同时并发进行的命令,就是字段编码法。我们要求大家掌握字段直接编码法。对,但是在字段直接编码法在使用设计过程中,希望大家注意一下,我们是有一些要求的。怎么讲呢?这些要求我们在这儿里面给大家罗列了。
第一,我们将互斥的微命令放在同一小段,兼容的放在不同段?这是一个很主要的一个要求。因为为什么我们把后置放在一小段?因为每一小段是最短编码法,这是第一点。然后第二点,第三点这个大家自己看看,关键是第四点,大家一定要牢记。
也就是说在每一小段,虽然我们说了我们用最短编码法,但是我们要求每一小段要保留一个状态,一般也就是00看。那么零当这一小段为000的时候,表示这一小段不发出任何微命令是吧?这也是也是一种可能,因为你按照最短变方法,你在任意时刻你都要给出一个有效的规避,你在实际情况中没有这么好的可能性?因此我们说我给你一个00太表示这一个小段不发出任何的命令。
换句话说,比如说混合字段三位,那么它最多能表示七个不同的微0,然后剩下的000表示在特定时刻这一小段不发出任何威胁?那么这三位是七个微米,那两位就变成了三条V?这个给大家做一下,这是我们上节课重点掌握的。
因为这块内容相对比较麻烦一些,我们就给大家讲一讲。下面咱们看一下利用微程序控制器进行控制规程,空气进行控制器设计过程中,它有什么样的一个结构。大家可以看一下,这是微程序控制器的结构,在我们PPT上面右侧,其中CM。
C. Controller m memory, 我们把它称为控制存储器,这是我们微程序控制器的核心部件。存放一小段的微程序,因为每一小段煨程序代表了一条机器指令的解释执行过程。
那么这个微这段微尘应该长什么样?我们在我们第七章前面讲A你讲这个例子,ADD at这个A0逗号A那个加法指令。我们以那个例子告诉你我的这个微程序长什么样,是吧?这是我们微程序空气最核心部件之一。大家来看一下,将是一个controller memory控制存储器,这就发挥了我们微尘空气的最大优点。只要这个CM足够大,是不是我可以根据实际需要对我的CPU所支持的指令进行一个扩充?你扩成一条,除非是对在CM加一段指令的解释,这是它最大的优势。
与之对应的你要找控制存储器中的程序段,那么是不是有它有一个什么?大家可以看一下,在这CM我从CM读出的,我们称为V指令,那么放在哪一个被称UIR?就是说这个思路跟我们前面的CPU的宏观结构是一样的,就是从控制存储器取出来的这个微指令是吧?
这个是放到一个特定的值,叫new IRV指令存储器微指令寄存器UI2V指令寄存器与之对应还有个UMA,当然我们这个微地址寄存器大家看一下,它描述的是我这个微程序在控制存储器中的位置是吧?那么它始终指向,向大家注意一下。这个UIR这个信息来自于我们常见的机器指令寄存器的OP部分。也就是说对于OP部分的内容指令的操作码部分,我放入了一个V地址形成部件,把这个010120代码转变为控制存储器一段微程序起始入口地址是吧?这个过程一定要清楚。事实上这是我们的一个特点。
那么大家看一下在这里的地址行政部件,那么它的作用。第一,我要通过指令的OP部分获取或者产生初始微地址,这在第一个阶段。第二个阶段以程序为程序段执行,是不是要不停的产生后继微地址,这个思路基本上就是我们CPU与存储器之间的套路,只不过是这个过程是发生在我们的控制器内部OK。
下面咱们模拟演示一下我们在CM中控制存储器中取出指令的一个过程。换句话说,我们称为微储蓄控制器的工作原理。好。
微程序控制器的工作过程,实际上就是在微程序控制器的控制下,这个计算机执行机器指令的过程。说的很抽象,下面咱们看一下。我们的机器指令?我们高级语言编写的机器编写的程序,我们通过编译器把它描述成,比如说点EXE文件是吧?点EXEX文件它实际上是一个二进制信息。那么二这个点加一的二进制信息,正常情况下是放在我的主存里面是吧?那也就是这个就说白了就是我们所谓的类似于用会议编语言所描述的。
二是指令10120?我每一次从主存中取出这每一条机器指令。大家可以看一下,比如说在主存中我存放了这么1123456788条机器指令。那么这八条机器指令长什么样呢?因为我们在我们上课的的第一章说曾经讲了一个加减运算的执行过程,是吧?那个加减运算的执行过程假定就这八条指令。
咱们看一下这八条指令的机器指令,有一个加法指令,有加减运算的这个指令的执行的过程?看一下这段程序是如何执行的。首先我要执行这些禁令,第一步是将主存中的机器指令放入到指令寄存器,这第一步是吧?那是第一步。
大家看一下这个过程是不是跟大家想象的不一样。第一步我们称为从主存中将直立读取出来写入到指令寄存器是吧?那么大家看一下我的动作是什么?先执行控制存储器中最前面的一段微程序。比如说某些红颜色的控制存储器,最上面那两条最上面的一段程序是吧?比如说大家可以看我的这个PUPC,这个指针是指向控制存储器的70岁的这个位置。
当我执行这段程序,就这执行这一段中间的标志的微程序段的时候。大家发现就意味着执行,这个就意味着我将主存中的指令加载到RRO。这个过程实际上在咱们前面讲课时候已经讲过,实际上这是取指令操作。比如说ADD那个是不是我区指令操作就那么几条。通过这个取指令的操作,我的执行意味着我将我尊重特定程序加载到指令寄存器。
然后我下一步是对于直寄存器中的指令的OP部分进行一个剖析,利用这个01012进二进制信息去找到这条信息指令。在控制存储器存放的这段解释这条机器指令的入口?也要利用他的OP作为从控制存储器找到这一段。
程序大家可以看一下,我通过IR中的OP部分找到了这条机器指令的解释执行过。大家看有没有我的UPC的指针指向这一段微程序,也就是说这条机器指令的解释执行相当于我执行控制存储器的这一段,用紫色标注三条是吧?等于说这三条已经执行完毕,意味着我这条机器指令就执行了。这三条语句长什么样?我前面用加法指令给大家展示过。大家看一下,当我这三条。语句执行完毕以后,我的UPC的指针又跳转到了它的起始位置。
跳转它其实位置以后,下面我又执行控制存储器的前面的两句话之后,我是把第二条机器在储存中存放的第二个标志器中放入到折了几口气是吧?然后利用它,我找到我控存储器的这个程序。执行完之后,他又跳转了。那么大家发现所有指所有的鸡在储存中存放的指令,它的执行过程都是的,对吧?先从这执行,然后把它加载,然后再找这说明什么?也就是说当我的CPU的硬件结构确定之后,就意味着所有机器指令的取指操作的操作形式方法一切都是相同的。也就是说所有的机器指令中的取指操作,我们能把它称为公共操作是吧?那么公共操作,你想我每一条机器指令都有这个矩阵公共操作,那么我把这块单独拎出来放到控制存储器的起始部分,而剩下的代码段对应的是每一条机器指令的一个执行副。
大家注意一下,为什么可以这么做呢?我们说了之所以我的机器指令的取舍部分和执行解释执行部分能分离开我们的一个隐含条件是什么?我CPU的结构,物理的硬件结构是确定的。当你物理的CPU的硬件连接结构确定的,那么所有机器人的取指操作是一个功能操,而且是不可能变更的操作形式。我们把这个工操作放到控制存储器的起始部分,其他部分都是每一条机器指令的解释执行部分。
这个跟咱们传统的对于机器指令的取指解释执行,在我们实际的微微程序空气里面的设计方式是不太一样的,对吧?我们讲的理论,这是我们落地,这一点希望大家要明确一下好。后面咱们的PPT上有些解释我就不啰嗦了。下面咱们看一下有关微程序控制器相关的微程序的入口地址,以及后继地址的产生与形成过程?
刚才我们讲了这个微指令它的OP部分,它的V操作字段部分,顺序控制字段分别是干什么的?下面咱们看一下这个VA程序的入口器,也就是我们在控制存储器里面存了一段程序。那么我们现在就有个问题,这一小段微程序他执行的入口是我们怎么得到的这是一块。第二,每一段A程序难道都是顺序执行吗?有没有一些变化?
我们要解决这个问题,首先我们解决微程序入口地址的形成。比如说宏观讲我们是利用指令寄存器RR的所存放的机器指令的OP部分机器指令的OP部分来计算得到这条机器指令所对应的VA程序段的入口地址是吧?这是宏观的。微观这个是有讲究的。我们给出了三种解决方案,第一种我们称为一级功能转换。什么叫一级功能转换呢?假定这个机器指令的操作码字段位数和位置是固定的,这个我们前面讲过是吧?那么对于这种机器指令的操作码字段位数和位置都固定的,那么我们就要采用一级功能转换。
咱们举个例子,比如说某某一台计算机我有16条机器指令。16条机器指令意味着这个指令的操作码字段是由四位二进制数来表示,对吧?我们用西塔来表示,那么我们令微尘的入口地址是什么?西塔拼接大家注意下,C塔与611之间是拼接的关系是吧?这个过程关系这是四位,这是两位。那么大家想一想,我西塔000,我是西塔,我大家可以看一下我怎么变化,因为这11是2进制,当C塔为比如说木指令,我假定这C塔为000,这木指令对应的这个二进制描述是零,那么11的这听起来我把它描述成16进制03H那么03H作为目指令的在CM中的入口地址是吧?下一条指令是加法指令ADD,对应的西塔的编号是0001,它对应的控制存储器的入口地址是07h OK。这样大家看03X到07H中间是有包括03H04H05H06H也就是说对于这种一级功能转换,我们默认每一条机器指令执行,就是解释执行过程,最多四条微指令就可以完成了。
有的同学说我怎么知道,是吧?有的多有的少,那么这个就要取得最大数,我保证在四条指令里面能控制存储器,我取出四条。微指令我就是完成特定的机器指令执行过程,警示执行过程。
也就是说你四条不够,那么我把这个后面C的后面去11相当于是四条,那么我再加一条是不是八条是吧?它总是就每一个每一条进行指令,它对应的这个执行的解释执行部分它总有最大值,对吧?我根据最大规模去设计C塔后面拼接的值域,我们是这叫一级功能转换。
这种一级功能转换最大的特点就是我们要统计一下所有机器指令解释执行过程所对应需要的微指令的条数。以它的最大值来确定我西塔后面拼接那个数是多少,是吧?这个希望大家注意一下。那么好,大家看一下,每一个微程序入口率相差四个。也就是说我假定就是我通过统计以后,不是我假定大家听清楚,这不是假定他两个卫生间数据相差四个单元,是我统计设计,就是设计完以后,统计之后的结论。若你这个微程序落地时四条不够,那么我这个图就可以往大了去?往大调依然能够做到这个效果,这叫一级功能转换。
那么这种一级功能转换他的要求什么?机器指令的操作码字段位数和位置是固定的。位置和位置固定,这是我们使用一级功能转换的一个前提。我们说这种情况下能够解决大部分,但是还有很多现在计算机,我们由于进行一个扩展操作?因此我们假定不满足我们刚才要求,就是说。我们给出了下面两种可能性,包括二级公转换和PIA方式。
二级功能转换它的特点是说同类机器指令的操作,码字段的位数个位数规定的。一般来说我们的指令虽然说比如说我给你操作操作数的个数,这个三操作,三地址指令、二地址指令、一地址指令或者零地址指令,它总是可以分类的。对于同一类我们就比如说都是二进制指令,它对于这种二级指令的操作的制造内容和位置固定的对,只有单操作指令它对你是这样的话,那么我们说我们可以采用二级功能转换。
那么所谓的二级中转换就要写的很清楚。首先我根据指令的类型进行一个分类。因为每一类无论是单操作数指令、双操作指令、双操作数指令或三有3D就叫3D指令。双D指令。3D指令他每日只要你把这种根据操作数的地址的个数,这是我们简单的一个对于指令的一个分类是吧?只要你分类清楚之后,每一类比如说单级指令、双级指令、三级指令,它对应的操作工操作码字段位数和位置是固定的话,那么我就可以用二级功能转换。具体讲就是这二级功能转换。
首先我们根据指定类型区分为它是单操作数、双操作数还是三操作。单地址、双地址3D?对于每一类假定我区分好以后,我就可以按照一级功能转换的方式,对特定的3D指令,双地址指令或者三地址指令,按照我们一级工作的模式进行了处理。这是第二种可能性?就是说他虽然这个操作码字段位数的位置不太一样,但是对于同一一类单地址的双地址或者3D指的这每一类它是固定的,我们依然也可以使用?就做首先先区分,然后再利用一级功能转换的这个方法去解决,这是第二种情况。
第三种情况就是用PRA电路实现的,是吧?比如我指令就一个CPU,它对应的指令系统,他的所有的机器指令既不符合第一种,也不符合我们第二个二级工程转换所描述的。那么怎么办?当机器指令的操作码位置和位置都不规定时候,我们采用PIA店铺的方式,将每一条。机器指令的操作码翻译成对应的微程序的入口地。
那这种方式是一种极端情况是吧?但是你用PLA电路的话。就是说这就是你写死,因为PRA是它是我们在实验阶段是可擦写的。但是根据你工程落地的话,一旦写死以后你不容易扩展。一般来说我们采用第一第二,就尤其二级功能转换居多,PRA就相对少一点。好,这是我们这个VA程序段入口地址获取。下面咱们看一下后继地址,后记地址就是因为当我们找到了这一段微程序的起始的入口地址之后,我们要顺我们要执行这段程序的后续地址,那我们就看一下它的后继微地址的。
形成方式。大家注意一下这个后记地址的形成方式。理论上讲我们把它分成增量方式和断定方式。增量方式比较简单,就类似于PC加一就顺序执行,就我们称为增量方式。大家看一下增量方式,它对应的它对应的就是这个顺序执行的这种方式。通常我们有一个UPC完成这个加一操作就可以了,这是增量方式。还有一种就是这种转这种锻炼方式。
断定方式说白了就根据说白了就针对,比如说if then else脱落是一个循环,类似于这样的一个就是需要我根据当前执行的状态来进行判定。这个我们需要用断定方式,就根据微指令所规定的测试结果来决定后继微地址的全部内容或者是什么部分内容。这是所谓断定方式。
具体来讲它的这个要用到我们的微指令的这个什么顺序控制字段。顺序控制字段就细分为两部分是吧,分别是非测试字段和测试字段两块。这两部分推测阶段一般指的是我的操作顺序工程字段的高位部分。
高位部分一般他就这种就指定我后记这个微指令在我控制存储器的哪一块的位置,挡住一小块是吧?就是做一个宏观的说,比如说刚刚这个高位001到第一个区域上到第二个区域,这是非测试段。那么测试段一般都是我们细节,就根据某一个状态来判定我具体走哪个区。
已知说白了就是在那个非测试字段这个区域来细分,具体执行哪一条去是吧?这个相当。这样我们有关这个微程序的设计部分。就是最核心的部分我们就讲完了。
下一节课就是我们待会儿休息五分钟,休息五分钟,然后我们会讲这个流水线技术。因为贾总看了一下,这个怎么说呢?然后这个PPT坦率讲肯定不是他自己做对吧?做的不敢恭维,应该我估计不是蒋老师他本人做的。今天早上我早上在备课的时候,我又给给他又加了钱来,好吧,我们休息五分钟,然后我们把这个欠条。
011号的每一个四位,相当于人们原本在4周四条之内有提交了四条4,一定是先有一对,就是这个。对对对,一般对。
好,咱们开始咱们这个流水线技术的学习。也是流水线技术应该是现在计算机为了优化我们程序执行过程,我们提出的一种花。当我们说这个流水线就出现的相对早一点,那么现在的CPU的执行一般都是我们通过多核,也是多个CPU同时来工作是吧?而流水线技术是建立在什么?在单核CPU的基础上,我如何进一步依优化我的指令执行的过程,这个相当注意一下。
那么流水线技术什么是流水线技术?把我们说流水线技术是一种可以显著提高指令速度和效率的技术。具体来讲,过去按照我们这个指令周期的说法,每一条机器指令应该是按照取指令指令取指令分析指令、执行指令,按照这个过程周而复始的去执行一个完成第一个指令周期以后,再进入第二个指令周期。而流水线去是打破了这一个我们最基本的指令执行过程。
假定我们举一个例子,我们说对于一个双操作数指令,我们把指令的解就是从取旨,就是从解释执行。大家看一下我们这里针对什么指令的解释执行过程。说白了按照我们刚才的讲法,这个微型控制器它的指令的取值部分和解释执行部分是分开的,是吧?那么在这个前提下,大家可以看一下这个整个过程。大家可以看一下,因为他是站在宏观的角度去说这件事。大家可以看一下,我们为了说明这个流水线技术,他将我们程序的执行过程分为六个子过程。六个子过程分别是取指译码、计算操作数地址、取操作数执行指令、写回寄存器这六个字。这六个字过程我们用六个子部件来完成。
更大构想就是我们这个流水线在使用这种流水线技术。在使用过程中大家看一下,首先我要把指令从取直到执行能力的过程的细分?比如这个操作分成了六个子过程,然后我们不同的指令的执行的过程,我的划分是不一样的是吧?咱们就这个就是就他来说,大家看这六个过程我说很清楚,而且大家注意一下,这六个过程是用六个不同部件来完成的,这个也是很关键的。如果你说一个部件既要一码又要计算操作是你的,那么这显然是不行的?就是他你执行流水线,它硬件代价是要有的是吧?你说首先我要把指令要细分为具体的子过程,每个子过程有独立的子部件来完成。
好,具体来讲,可能后面讲的有点啰嗦了。我们用一张图来看一下,我们有九条指令。按照我们刚才的说法,每一条指令都分成六个步骤。大家可以看,从这张图大家很清楚西的看出这九条指令。按照流水线技术这种思想进行执行,它的时间的花费多少?大家看一下,对于每一条指令,大家发现我都是按照指令周期去执行的。标指令一取指令密码计算操作数取操作数什么执行,然后写回是吧?但是大家发现当指令一执行第二步执行一码的时候,指令二就用使用了刚才取指的那个子部件进行个取指定的操作。
更大的这就是流水线提出设计。前提是说指令执行过程中,首先我要细分具体的子过程,每个子过程由独立的部件来完成。在这两个前提下,我就设计出了流水线技术的指令执行过程。
大家看一下,对于一条指令,我们假定就是每一个子过程花费的时间都是标准T0的一T单位。那么每个脚趾的需要六个月6个单位的时间吧?然后如果按照传统的经典的九条指令,等于按照串行的话是54。但是按照六级流水线的话,它需要14个单位时间。那么14个单位时间怎么来的?是我已经画出来是吧?但是待会儿我会把画出来我手工画出来的这个计算过程,我用公式给大家进行执行时间这六级流水线大家可以看一下,这九条指令执行完毕以后,只需要14个单位时间?画出来那么画出来这是我说白了就统计出来,我把统计结果用一个数学公式表达出来。
那么。这我们看一下。大家稍微怎么看一下,之前我不知道给大家发出,大家注意下这个PPT是我今天早上临时改的。
大概说一点。
好吧,大家看看一下,这是这个执行过程。我们简单的说一下。事实上一般来说对于流水线的描述,我们用施工图或者我们刚才第一种那种描述就可以。好,对于这个流水线的分类,咱们书上讲了一些。我就讲一种,就是所谓的加入到流水线的工作方式,把它分为静态流水线和动态流水线,就讲其中一种其他。
大家看一下什么是静态流水线?所谓的。静态流水线是指流水线这种CPU执行过程,在一个时间段内,它可以他只能以一种方式进行工作。那么。比如说我们这里举了个例子,大家可以看一下,这是咱们书上的一个例子。比如说我这个流水线在一开始这个阶段,大家可以看一下,它连续执行了若干条浮点数的加法运算。然后又过了一段时间又做了一个定点数的乘法计算?这都是静态流水线。
首先对于他第一个阶段我做浮点式加法运算,它会分为好几个步骤?好几个步骤它完成了,那么你下一步要做定点数的乘法怎么算?需要我们将当前流水线的执行性。所以说换句话说是浮点数的加入运算。所有的执行完毕以后,将里面的信息全部清空以后,再去执行定点数的乘法运算。也就是说这是所谓的静态流曲线。
就在一个时间段内,它只能以一种方式一种一种功能方式执行。比如说我刚做了浮点加法运算或者定点乘法运算?如果你要一种运算模式转换到另外一种计算模式,大家可以看一下。我们必须排污流水线,然后为下一种工作方式设置初始条件,这样才能保证我程序正常执行。换一个设置处理条件,说白了我用的部件的数量,他可能完成的工作都不太一样。因此静态流水线你要进行切换的时候,它有个流水线等排空操作。
当然我们说了这种你要多功能去弄的话,每种功能转换频繁发生的话,将严重影响CPU执行效率。你要不又不开工,又不排工你的这个时间的延迟或者耽误的话,那么事实上就不用有时效是吧?那去用这相当这是静态流水线与之对应的。就是所谓的动态流水线,允许在同一时间内将不同功能段连接成形成不同的功能子集。也就是说大家可以看一下,这张图是我混合直接执行了组点加和定点乘是吧?
我们要满足这个所谓动态流水线的处理的话,首大家一定要明确每一种功能它在执行过程中所使用的部件彼此不相冲突?在这前提下,你不同的这个子部件组合能够完成特定功能的话,那么我可以这样两个事情可以并发的同时或穿去用。但是如果你的部件彼此有冲突的话,那么是不行的。这个我们只能是从宏观的条件去描述。因为这几块内容我看一下蒋老师的这个书,似乎好像也没怎么说是吧,就贴了两个。这个几张图是吧?你们去看一下。好,至于其他的我们就不做描述了。然后对于流水线的性能指标,这牵扯到了计算。咱们教科书或者咱们408考试的要求是有三个指标,分别是吞吐率,这第一个,第二个加速比,第三个是效率。
那么。
贾老师这个书上,我觉得这段因为我不知道大家看过,说明我是天昨天我大概看了一下,就是咱书上197页到200页之间的这段书讲的不好。但是既然蒋老师给的PPT,我也不好意思说他这怎么着。因此大家注意一下,这个PPT是贾老师的工作成果和我过去工作成果的一个结合。大家可以从这个字体。是有区别的这一页PPT是我做的,这一页用这种宋体的黑的黑色,像这都是我自己做的,你可以看一下。
这个就是蒋老师那些什么加速比的描述,没有错,但是并不是一步到位?你需要计算,你直接告诉我公式,我们算出来就OK了。至于你这个证明了推导了,要么要我的说法,你要么别写,要写就写全了。这个像有些学校,工科可以变成理科去学,那那是另外一个套。咱们家是工科专业,咱就按工科的去做。
因此在这里讲的性能,就流水线的性能指标这块,建议把这个P这个PPT我不记得,我给大家给点水,如果没给我,我回头把这一版的最新版的这个PPT回头明天要把大家和今晚或者明天我发给大家,大家来一起来看一下这个吞吐率。那么吞吐率。是第一个指标,是指在单位时间内流水线所完成的任务数量或者输出的结果数量是吧?我们用TP来描述。
那么。大家可以看一下,这个是我们一般主流的教科书上写的就是这个。比如说单位时间内。单位时间内。那么大家看一下,是他这个单位时间内所完成的指令或者输出结果的数量。
比如说M段,刚才我们是六段,每一段的单位时间这个T它用delta德尔塔气来描述,那么对应的最大吞吐率是TP max等于德耳塔T分之1,那么实际吞吐率就是TP等于。N除以M乘以T加上N减1乘以T这十几天左右。事实上我们这里的公式,M乘以T加上N减一乘以T就是什么?刚才我们有14个单,对,就是我们那九条指令是一个六段流水线,它对应的时间发表就是这样子,67。加上9减1乘7。是不是4?也就是我们利用刚才那个公式,把这时间花就算出来了。这他连续处理N条指令的吞吐率的一个计算公式。
咱们可以看看一下我们刚才那个九条指令,是六段的流水线,他的实际特性?这些平民气是比较关键的。好,咱们除了蒋老师好像又讲了一堆一堆立体。你们下自己看一下,我不再啰嗦好吧,这书上都有。好,第二个计算的指标被称为加速。加速比定义比较简单,就是我们要算一下使不使用流水线和使用流水线对应时间花费的比值。
大家看一下加速比还是以刚才那个是吧?比如刚才我们刚才那道题没有画流水线是54是吧?花了就按流水线是14就算一下的计算公式是吧?
相当于54除以14,这是加速的计算公式,用的是什么?非流水线和流水线签的这个地。
加重比这个。也就说我这个PPT的定义的第一句话应该是稍微调了一下,就是非流水线的速度与M段流水线对应速度之大家看一下这个M乘乘以德尔塔T是我没有使用流水线对应的时间花费。而这个下面是我使用流水线之后是假滑是吧?这是加速比的正确定义。这是第二个概念。
第三个概念是效率。就是指流水线中各功能段的利用率。由于流水线中所对应的建立时间和排工时间是有有差异的。因此我们说每个功能锻炼这个设备不可能同时处于工作状态,是吧?
由我们刚才的我们的对,大家可以看一下。大家可以看一下,我所有部件充分在执行的时候,这个大家可以看一下,也不是所有的部件都是满编执行?它有时间的延迟。也就是说在所有对于所有部件来说,它并不是始终处于的执行状态,对吧?这个我们要算一下它的效果。
具体的这个效率等于各流水线各部件中,各各就是首先各段处于这个工作状态的时区去除以总的时区,就是用这个图大家可以看一下。说白了这个效率计算公式,大家只需要。大家只需要那什么?只需要记住是吧?就是我们这个公式?这个公式只不过我用一个比较形象的图给大家进行一个标注,大家就明白是怎么回事。因为只给公式讲的比较抽象是吧?这个我们就再不啰嗦了。
后面有关流水线冲突的问题。所以这里的这个相关性在过去我们讲的是流水线的冲突。连流水线我们刚刚才在讲的时候,我们说这一条指令他执行过程分成六个阶段,每一个阶段由单独的部件来完成。身上大家感觉这种这件事在实际使用过程中是不是不太靠谱?那只是理想状态。那么我们说事实上在流水线的使用过程中,它的有些关键子部件。是需要竞争使用的是吧?这种竞争使用有3种可能性,具体包括资源相关、数据相关和控制相关。
结构相关也叫做资源相关。就比如说多条指令在同一时刻需要增我同一资源而形成的冲突。这个结构相关或者资源相关,很多情况下体现在我们的一些比如说循环操作的循环体。第一条指令需要某个资源,就是循环体,一次循环,他需要的那个那个资源跟我下次学生的资源可能是。就是湘在时刻它可能就出现冲突是吧?就是结构相关,还有什么数据相关。
后续指令的执行需要用到前一条指令的执行结果。比如说后一句是一个运算结果,下一句是一个if than us判定。那么你说你前面你用流水线,你后面是不是你要是再用流水线,显然你没有结果的话,你肯定是搞不定是吧?你说这个数据相关。除此之外我们还有一个相关,就是我们的控制相关。就刚我就说了一个概念,就控制相关和数据相关,这个有一个相同的例子,但是思路就是这个意思。好,咱们第七章就算是告一段落了是吧?
那么流水线技术怎么说呢?我们如期末考试考的不难,基本上把这三个参数的计算指标会做?我们有力气很快会搞定是吧?难度不大。但是向大家注意一下,流水线技术在408考研过程中,他的题的难度要求还是比较大的。咱们教科书上208页,后面的从20。23题开始,很多都是408考研的真题,这个难度要远比我们平时教学难度是高,对吧?当然像咱们还是属于比较咱们北理工的教学还属于比较传统,我们还是以本着大家。
服务的这思想尽量跟408相关是吧?事实上你们在网上千百北航,你可以看他的教材,基本上都属于选用国外的教材。国外教材最核心一点,老师任务轻,同学的任务重。他可能有大量的作业?换句话说他的思路跟咱们国内教学的这个思路是完全不一样。
越是这种学校,说白了更不在乎大家的实际情况?就有几项你像北大,清北基本上保研率都是70%?咱们学校虽然保研率是已经很高了,全国也都进入了前十的行列。但是咱们还是跟他们比起来,咱们还是节约以408作为考纲去给大家设计书?你去去准备这个向大家注意一下,我们未来去覆盖实上对于我们对我有时候我想比如说徐特立的,可以完全选中错误,只不过我这几年我标了是吧?一般我只上这个学期,下个学期我不上。流水线技术我们讲完了,就意味着第七章就完成了。那么第七章完成了,对咱们计算机组成与体系结构这门课的话,我们就是一章第八章。
咱们目前教科书的第八章,是我们过去蒋老师清华版的蓝皮儿的那本书的三张合在一起,就是总线、外部设备和IU控制三部分内容合到了咱们说的第八章。对我们来说。那么第八章的第一节第二节我不打算讲,大家下去我会把PPT发给大家自己看一下。我们主要是从8.3开始讲到8.7。这就是我们如果大家拿有的同学拿出清华的教材,就是我们L系统那一章。那么8.1是过去的总线的一张,8.2是我们外部设备的,你想这是压了多少是吧?过去我们讲外部设备还要洗重点,还讲一个磁表面存储器的读写控制原理。今年然后我们采用退款以后就没了,因此你就不管那些了。
好,咱们这个课程算是差,也就是包括这次客户说了只有四次上课,最后一次是怎么样?12月22 15号圣诞节那一天是吧?紧接着过了元旦之后,我想在座各位就马上进入考试周了。而且这个学期你们的考试量还是不小的,主课有计算机组成与体系网络?计算机网络你们也能考?这就算是408的2门主课,还有别的比如说这个测试什么的,还有别的行考试,那么后面的任务是比较多,也比较重。
那么我们这门课。我们还是按照往年的教学,我们还是有一些要求的。这个要求就体现在大作业上。因为是比如说实验,还有写调研报告,我们是在课堂上是没有时间的。这个PPT我们用的年头也比较长了,但是咱们软工专业跟计算机科学技术专业不太一样。咱们除了软工之外,还有大数据是吧?大数据的那个专业,那个课程,他们基本上就是咱们就是我我现在给大家上课的要求。那大数据也是这个学期在上,也是大数据和我们员工专业的实验要求。
第一个我们不安排上机,我们没有时间。第二这是以以大家能力去找掌握一下course软件的使用,以及我们有一个有实验要求。POS软件,在咱们爱北里的什么极速上应该是有的是吧?如果没有我有cos软件的老版本,那么下个就是我今天回去以后,我会在艾美里课程群共享相关的一些实验要求和实实验就实验软件,实验软件我会给大家共享。
我这版本应该是9.0,已经很早。但是这个为啥不用新的呢?并不是我手头没有是吧?咱们这个学校还是有很多资源的,万能就这个框子软件。说白了,陶瓷软件过去是一个美国独立的一个硬件开发厂商。现在后来这合作软件被RDM这篇就帮软件生产者被RDM收购了,是吧?
你去上RDM,不什么RDM被英特尔收购了,你去上英特尔的官网,这个其实应该是去年的,前年我接着。大家可以看一下,这是cos软件2019版,去英特尔的官网上可以下载。好像前阵子又又说超市要两家公司,要是吧?好像英特尔这个cos软这个系统好像是卖的是吧?
这个框架软件属于FPGA的一个软件。换句话说,这是咱们过去咱们北理工计算机专业最有名的有实验室的。当年的这个怎么说呢?咱们学院最开始打出名号的就是S之间,是吧?这也是咱们学校在咱们学院第一地位博导重点就是在这上面下了很多功夫验收。咱们这块一句话我们要求更高是吧?
第一框框这个框是9.0,我手头是有的,大概我们用了很多年了,用了十几年,为啥用?我看的是就一直没有,就是没有清掉,是因为我觉得它装机比较小是吧?因为现在你说白了,现在你们包括19、二十等等,就是一下起来抓起来很大是吧?没必要。那么当然。大家可以根据自己的,需要你选哪一个都行是吧?
但是你在实验,当写实验报的时候,你首先你给我说清楚你用的是哪个环。这个就是post软件的一些要求。我们这个PPT是按照cause 9.0做的。你是在在当时9.0的时候,这个公司就是美国的这个公司还没有被所收购。我们有一个如何安装POS软件的一个使用说明,大家可以看一下是吧?
因为咱们专业跟这个技科他不太一样,因为咱软工的小学期基本上都是做软件开发技科的小学期。尤其是明年你们回到中关村校区,在那个小学期咱继科,咱们软工会上软件工程综合实践课。那时候我相信咱们又会见面,明年的九月份咱们还会见面,8月9月跟他就见面。那么计科就是计算机科学技术专业,在明年9月份就你们同一级的,他们有个硬件综合实践,说白了就相当于咱们计算机组成体系的实验课程。当然这个实验课程跟我们十几年以前做的实验课程还不一样。过去计算机组织体系的这个实验课程是专门有面向集团组织体系的。
实验箱实验箱给你之后给你相关的芯片,通过物理的导线的它去实现一个信号。这个就比如说我实现一个小的运算器?那的反正就是通过这实验箱的这个信号的插拔,最终给你三周时间你把它搞。这是很传统的?当然这种是相当于是二十多年前,30年以前的实验成果,现在你们没有了是吧?
基本上包括继科也是利用cos软件或者更高级的一些其他的FPGA,你把它建基本上去做嵌入事物的那种开发。就是说白了你在干嘛,你用类似的程序写到芯片里面,通过程序的执行来完成你的相关的这个硬件设计工作。这这是这个套路是这个套路。因此传统的软就传统的这个计算机总原理实验箱这种过程应该是被全国所有的高校基本算是人一边了。
这个是这块内容,我们对大家我们的要求是什么呢?这个大家要自己去看。我们要求他做一个算术逻辑运算的实验,说白了就做加武器。那么利用74181和74182去构建什么16位的加法器,让大家体验一下组件并行和组间串行它在设计过程中的一个特点是吧?那么大家注意一下我们这个FPJ说白了你要真要玩的好的话,你肯定需要什么掌握它的编程类似的编程。但是咱们这个时间肯定没这时间是吧?因此我们主要是什么?
通过可视化图形拖拽的方式把设计图,比如说用cos软件仿真软件?从他软件库里面拖拽一个74181,就拖拽74181和7418,然后通过线与线将74181和74182的管脚连接起来。第三步我加两个运算?比如说一个十六,一个16位的二进制31,另一个0001做加法预算。你看一下他的输出的波形图,它的变化是什么样的?那么就说白了就做这样一个,说白了就通过。通过这样的操作来完成我们最终的一个要求。好,因为我们就有时上课没有时间去弄这些事,那么就留给大家去自己去用这个软件,然后写实验报告。
最后我们要有一个要求。咱们放假是1月19号是吧?那是礼拜一。我相信在1月19号之前,大家很多情况下都是在忙着考试。实际上咱们学校大概在1月15号,我们已经考完了。因为1月19号是那周的周一,我看了查到咱们学校正式寒假放假的第一天是1月19号是吧?事实上本案咱们需要找你们这一集在我看16号下午,就那那就考试周的周五下午,如果没考试的话,你们会基本上会提前走,是吧?这是这个要求,好好休息几分钟,待会再说。
也是。
好,那么咱们刚才内容,咱们接着刚才内容讲。我们基本上就是在大家农就是咱们寒假的第一周的周末,1月25号之前把这个作业交了就可以了。那么这个比例这个实验我们要我们的比例不高。我之前跟大家说过,咱们这个期末考试试卷占70%,这个占8%。
OK这个具体的这个PPT,我回头给明天给大家共享一下。刚才我用我手机查了一下这个框架软件。目前我手头上在我的百度网盘里面,一个是我可以给大家一个括号是9,这个是没有问题的。还有一个是我看一下。
Quos 13,因为这个13这个软件大概是十个G框子框,这框S9是2.4个G这个回头大家去去用就可以了,是吧?建议大家,因为咱们要求难度不大,就用个cost就可以了。这个是8%的,最后我要要算成绩。除了这个之外,我们后面还有一些要求。因为今天我觉得再往后拖,可能大家不好安排时间。我们还有一个大作业,写大家写报告的。就是现在我给大家看的这个PP这个PPT这个个人作业占你总成绩的12%。
好,那么我们说一下,因为咱们和华为就是在疫情期间,华为搞了一个所谓的华为智能基座计划。也就是说华为和咱们国内比较好的这个呃计算机电子专业做了一个校企合作。那么咱们这门课也是第一批入选,与他的一些合作,因为这与华为智能基座计划。
会在咱们这门课最后会讲一个有关基于华为鲲鹏处理器ARM架构的一个它的目前的一个有关它的这个阿里架构,它的处理器的一个芯片设计的宏观介绍。这我要讲一下。为了弥补咱们专业太过于关注408考试,我们这门课需要大家下去以后去调研看一些资料。围绕咱们计算机组成与体系结构发展的最新的一些概况,去分析一些处理器或者是特定这种处理器架构的特定功能。我们建议,因为目前除了英特尔叉86架构的处理器之外,当然我们英特尔最新的,他现在最新的多核处理器能不能分析也可以。只要你拿到资料,你分享在一起,建议大家围绕基于ARM架构,基于什么risc架构,一些新技术、新方法、新产品自主选题,围绕特定引擎展开研究分析。
题目我大概罗列了一下,比如说这个ARM或者respect这种架构下的特定CPU的分析。比如说阿里,他现在也推他的自主的CPU处理器,那么阿里的自主CPU处理器就是基于resort。比如说华为鲲鹏处理器是基于ARM价格ARM v8V9。
那你可以就比如说你这个地方,第一个ARM或者架构下的特定CPU分析器。CPU架构分析。比如说一苹果的M系列的处理器,这是苹果自研的处理器。那么你可以看一下苹果的M系列的处理器就属于?那你可以琢磨,或者是咱们国内,中科院系统他也在做这种处理器,国产处理器。那你能不能对这些东西能做一些分析?你看看相关的报道,对这相关的问题去去琢磨,这是往大了说,往小了说。
对特定CPU的处理流水线技术的设计?比如说就英特尔的叉八六什么,你具体指明到具体的型号,那么它流水线技术怎么设计?它的M什么RM9、M7,它的硫CPU流水线的具体设计。对,围绕特定的CPU看一下流水线的设计先除此之外基于ARM架构with five架构I设备的控制方法的分析等等等等。
这个选题我这在这就是罗列了一些,其实大家可以选一些你感兴趣的是没有问题。建议大家在选的时候,我这里罗列的就是ARM和risk架构。因为因为是目前基于什么嵌入式,那这个机会是比较多的是吧?比较多的。你要是讲英特尔也可以,但是英特尔的对于知识产权,对于这些东西,他第一是广电体系。第二就是英特尔的时代,说难讲已经翻车了是吧?已经不是他不是最那个咱们国内很多都是基于ARM或risk的架构是吧?尤其risk five架构是这几年比较火的一种新架构,大家可以看一下是吧?
通过这种调研学习研究。这个就围绕特定的这这个领域的一些前沿技术,你分析调研查查资料看一看。写一个这种综述性的一些报告。说白了这将来你们明年现在你们是大三,明年这时候就大4,你们这个可能就保研了,对吧?
跟老师做课题第一件事就是写,为什么写文献综述?看文献写综述?这个我们可以训练一下。那么。要求写一个字以上的研究性文章,要求是图文并茂。如果是图,不是自己画的就是吧引用他人的图需要标注来源。你直接从网上贴吧就拿过来,也不说是哪来的是吧,这个肯定是不行的。还有一点,最后一点就字数六千字对于你们来说是很容易的一件事?但是就是需要你多看一些文献,对于某一个比较深入的一个知识点做一个深入的一个分析。
最后一点。我强调一下是不允许抄袭?现在咱们AR工具太多了,你会用我也会用,你不要说你用AR什么豆包,用什么什么给我三分钟生成一个给我交上去是吧,这个是不行的,为啥要以图文并茂,三分的那个AR肯定是没有图的,或者你的这个东西我能看出来是吧,但是代价是比较,如果认定的话,这个结果是后果更严重的,这就是诚信问题了是吧?OK这个排版格式就基本按照这个套路就行了。还是25号是吧?25号相当于25号。之前你们有两样东西要教,一个是实验,另一个是对个人的这个作业报告,那么这两块就占比了20%。
这20分我是直接给你的,换句话说看大家怎么想。过去我遇到两种情况,第一期末考试的卷面没考好,想办法弥补这个写写的特别好。当然我也会把这两部分尽量把它给。还有一种我掉牛。
我就指着这70%,考100分,你才70分是吧,这个只要你低于。低于就是低于90分,你基本上如果没有这些作业。你基本上是不可能及格的,是吧?你没教我那那那个那个成绩肯定是0,你怎么能算出来能及格?也就是说一句话,你想顺利拿到这门课的成绩。
OK是吧?那么这大家看啊,这是我给你百分之这90%,还有10%是什么?平时签到交作业910。你们有的同学两次在我的这个成绩册上面,有的学生连续几次都是评定是好,但有同学连续两次都是差是吧?那么缺乏有的就写一页,说白直接把答案给我写一遍,那你这15%就琢磨?
这是咱们所有期末考试的要求,一句话。期末考试要求的有这样有那样的什么什么一句话,只要你认真完成,态度是端正的,想把你挂科是不容易的,是吧?但是你想得到高分也不容易,这也就是咱们国内高校的一个特点,挂科不容易,得高分也不容易,对吧?说白了挂科不挂科,说白了这老师不想为难在做这个?
你只要把作业交了,OK基本上都都没问题。但是你不交作业,大概率你就想一想,是吧?因为。而且咱们因为咱们这个软工专业,还有一点是什么?叫啥来着?在咱们学校开设到现在有20年了,是参与工程认证的。
你们的这个学期的成绩,下个学期一定是要上传系统的,是吧?所有的情况我都是纸质的一份,店里的一份?这咱们都没问题对吧?纸质我店里头我每一年我都会有标注的,每个人做的怎么样或者什么样情况,我都有标注,拿出来我都可以跟你去说。希望大家注意一下,我要求的交作业的邮箱是个163的是吧?它有自动回复。
这个有自动回复就希望比如说你我们截止是1月25号晚上12点之前是吧,相当于这就是说你发完以后,你第二天和第三天你最好上系统看一下,看是否收到我这个邮箱发给你发的自动回复。如果收到就说明我就知道,郑老师你去确认已经收你邮件了。希望大家注意一下,因为我这是个deadline,意味着什么?有的同学可能在之前,比如说12月25号就把作业做完了,就发给我了。如果你们有附件的话,希望你们的这附件留的时间至少得到一个音乐。听明白了,我不会因为这个可能我们还有,因为我还可能需要一些研究生帮我去评判,对吧?
这个是就是说你们的那个附件,比如说利用什么什么其他一些,比如说用附件或者用什么百度网盘,或者什么什么什么,有一些一些有些邮箱技术,他那个数据只能放个三周或者多长时间。如果我意思说,如果你不是在最后发,比如说这个月你就发了,那么就那么希望你们的附件,你的保存期至少到1月25号之后,对吧?到咱们说了1月30号,就是你这个保就是在系统保存期到1月31号好吧,因为咱们今年这过年比较晚,这个就是要求好吧。也就是说到了1月25号晚上12点之前,你应该要给我两样东西。每个东西一个是实验品,就实验的工就原始的糙dos软件的工程文件?实验报告等等等等这一系列的东西。
除此之外还有一个word?如果有同学觉得你画的比较可能是乱了,或者答题有有一些是你用的是不用word,你用是WWPS,有同学也在用。那希望这些同学你给我发你的这个文档的时候,原始的比如说word或者WPS文件,除此之外再加一个PDS好吧。这样给你保证你你的那个排版到任何情况下都是一个标准的格式。
这个我就给大家都提个醒,因为有的同学他现在不一定是用的不一定用office用的。比如说用WPS的话,那我们可以没关系,WWPS的原始文件以及对应生成的PDF同时发布对吧?尽管WPS现在是咱们国内主推的,但是我个人的一个喜好我是不用它的。因为种种原因,他不太好是吧?我就是做一个文字处理,他需要登录这那登,也不知道这玩意儿是不是这个。那么大家说一下,如果你就是如果你希望你的作业能够以漂亮的形式给我呈现,那么希望注意一下。这个word WPS或者是你苹果机器的原始文档发一份,与此同时你生成的PDF也发给我。这样的话我有时候打开你PDF,你做了准确的排版,这样保证不会出老字,是吧?
行,那么咱们的作业要求,也就是今天我布置两个作业,占你们期末总评成绩的20分是吧?这个分值也是比较高的。可能现在我的建议,就是你们期末考试完结束以后再再再发,别到最后觉得考的不好或者怎么着,对不对?
最后又找我找人什么的,今年我严格按照要求,因为明年咱们学院也要检查,你要查大家的信息,不可能就说你说什么找个人说一说,把叫我把你放出去,不可能的事是吧?因为这事儿比较大谁也担不起责任是吧,我们我也不会,是吧。行,那么我们的有关计算机组织体系结构的实验的作业和调研报告的作业都给大家讲了。我会在今天晚上或者明天把这2个PPT发到咱们爱德里的课程群里面。第二我会把用的POS软件的链接,就是百度网盘分享的链接给大家。大家下去可以根据自己的情况选择是吧?我现在POS软件,我能给大家9.0这个版本和13.0这个版本。再往后我们自己在英超官网去下OK,这就是我们的要求。
咱们期末考试是吧?第一我没有时间做总复习,就说复习非常简单。事实上我们的这期末考试试卷我也没有出。应该来说我先简单说,咱们先有这个时间,咱们就把这是咱们这一次说说到位。
我这写了个总复习,但是没啥用,我觉得把第一页给大家讲一下。那么咱们期末考试这个PPT应该是上一上几届的同学都有我们的考试。第一,我们是按照5%出题,卷面成绩是100分。其中基础题包括什么?填空选择占50分,剩下的所谓的大体占50分,就是说金属和大体一半占一半都没。那么填空题选择题我们就一个空一分或一个选择答案一分。比如说差不多三十多,就三十多空20分的选择题,大概是20道选择题。
我们就是单选题单选题,然后后面有计算、分析、设计、简答这几种。那么后面这三种类型的题其实也不难,就跟咱们平时客户作业要求的差不多是吧?但是你们的课后作业只不过是自己做的,我觉得压力很大。如果你直接抄别人答案,抄的你自己想好,你才能做出来对吧?而且这习题课核心的内容我都是在上面对第七章的作业维护之后,我回去以后,再开始往前去布置的,基本上就这些是吧?换句话咱们听到他也没什么可。
就光这个月我觉得就够了是吧?每一张重点是什么?我想在座的各位应该都很清楚,好吧,这个就给大家说一下。后面是以我们一些个的内容,看平时作业什么的,这个我觉得也没有什么好说的是吧,就这些内容。那么开始计算对应的是咱们的第六章。我说的很清楚,我们没有布置作业。
但是我给大家的这个PPT里面,蒋老师列了很多例题。那种例题我变化能不能算出来?这个我觉得对你们来说应该不是问题。好,这是我们对于后面的差不多。今天是四号到1月25号,大致起于50天。那么大家可以根据自己的情况合理安排时间是吧。那么合理安排时间,然后该准备什么作业就准备什么作业。咱们这门课我会重点讲第八章,可能下这次你下次课差不多跟你讲了,还有两次,我可能要讲这个ARM架构,就是华为工程处理器,就M架构的内容定再讲一次多到最后可能就这样了。
好,下面咱们看一下第八章,第八章是咱们过去清华版的教材的总线外部设备和IO控制三部分内容的一个归纳总结。因此按照咱们的这个实际的情况,8.1总线设计大家先自己看一下。因为我们之前也讲过很多,我们就不跟他啰嗦了。
8.2是讲这个外部设备,外部设备就讲具体的。比如说过去我们讲三种,主要讲三类外部设备。第一种叫硬盘,主要讲的是机械硬盘,换句话说我们叫温切斯特硬盘。就讲就我们的机械硬盘,磁表面存储器主要讲这个。除此之外,我们还要讲什么?显示器这显示器讲CRT阴极摄像管,然后还有什么打印机这些。因为咱们贾老师那本书,你们就可以看一下,这块内容讲的是有点过时了。
什么你要应急摄像,就是大屁股的那种显示器是吧?现在都是LED的,你那个你你说那种什么电子枪打的,这那的都已经谁都不用了是吧?像这打印机,咱们一般用的是激光打印机。这个拍打讲的是什么?针式打印机,你说真是打印机,你说没有人用吗?也有人用。一般来说税务什么的,都是用真实打印机,就是可以复习的功能。这些都已经成了过去式了,因此我们就不讲那么多了,咱们直接就切入到了咱们教材的第三节,也就是我们清华版蒋老师教材的最后一章IO系统这一章。
这一章第一件事儿我要讲什么?讲主机和外设是如何连接的,会引出接口的概念。接口的概念我们用一张图给大家去描述,大家可以看一下。因为我们的CPU这主机主要包含CPU和主存。外设刚才我们说了键盘、显示器、鼠标、打印机、摄像机等等都是外设。一般来说在现在的这个计算机领域,一般来说我们的现状什么高速的主机与第一慢速的外设进行联系。大家看一下低慢速的外设,高速的CPU,它们之间存在很大的速度差异。
为了优化主机与外部设备的通讯录,我们提出了一个被称为接口interface这样的一个。中间部件。中间部件里面大家可以看一下它包含什么东西。事实上对应的C主机发出的三类信息,地址信息、交互的数据信息和控制信息。地址信息是CPU发给外设的,CPU发货地址并不是直接给外部设备,而通过接口将CPU发出的外设地址信息转变为特定的外部设备的连接信号。这是一句话是吧?还有主机与外设之间的数据交换,实际上在这儿画的是这一块。
什么描述数据、命令状态,这个我们叫做数据缓冲区,属于由若干个寄存器组构成的缓冲区。为什么呢?因为高速的外设,高速的CPU与低慢速外设,你如果只直接通讯,就意味着高速的设备要降速降的与外设是同一速度以后,数据才能交互,这会大大浪费5G的CPU的资源,那我们怎么办呢?
为了实现主机与外部设备的快速信息交换,一般来说我们看一下我们两个操作,一个是读,一个是写。我们先看醒就CPU发出的写作信息,先通过接口的数据缓冲区,把它写到接口中的数据缓冲区以后CPU去干别的事儿了。这数据与低慢速的设备交互,由接口的控制部件完成具体的后续工作。与此同时CPU可以改革,但提高主机和外设竞争力,这是写的过程。
还有心中读的过程,就是外设先将数据,因为他这个数据有的是并行东西。一个创业公司,尤其是创业公司是信息量非常少,非常慢,那么我们怎么办呢?外设将数据发给接口中的数据缓冲区。当这个数据积累到一定程度之后,接口再一次性的把之前接收的所有的外部数据一次性的发给主机。这样使得这个主机外设的并发的工作性能在进一步提高。
除此之外还有什么CPU发生出的控制信号,大家看一下地址信号是单向的是吧?数据信号是双向的,控制信号也是双向。这个信号C主机发出的控制信号是给那个,但是有些反馈的信号,什么类型的反馈信号?这个反馈的控制信号是什么样的,到后面我们会讲,就讲具体的主机与外设编细的时候,这个反馈的控制情况是什么。
到咱们具体情况具体分析。这是接口的核心内容?那咱们这个PPT前面讲一堆什么接口的作用什么的,这个大家自己看一下,主要是什么通讯联络地址、译码设备选择数据缓冲数据格式交话就发送控制命令和状态信息。发送控制命令是CPU发给外设的控制信息,状态信息是外设反馈给CPU的是吧?但是这个状态信息在这样说,我们通过这个方式描述了这个联络信号的反馈,是因为我这是双向对吧?这是单向。那这个双向反馈情况下做手术?那么对反馈控制两种情况,就是一般来说是应答信号?
这个我们就简单的说一下,下面咱们看一下主机与外设第一件设计有关这个什么CPU发出的地址信息之后,外设如何识别。那么在这儿。我们又把一个问题又翻出来给大家讲。
在第三章在讲指令系统的时候,我们再来讲IU操作的时候。我们曾经说过L操作。我们在指令设计的时候有两种形式,一个是有单独的IO指令。比如说英特尔的CPU就是单独指令,硬指令二指令控制。这个显然CPU是对于外设的一个操作。还有操作就是通用木质是吧?那这种就属于统一编制,就是对于主动空间的操作规律对外设可以用。因此我们在这儿站在外设角度来说,我们说对于外设的识别就跟指这种设计是相关的对吧?
站在实现工程实现角度来说,我们外设外部设备,当ECPU和若干个外设进行通信的时候,外部设备怎么进行管理?第一种方案就所谓的独立编制。也就是说在独立编制这种情况下,CPU的内存是单独有一个从0到N的一个编排。外部设备也是从零到安,彼此独立,都是丛林到安,但是用的指令不一样,比如说木指令就传输类指令,它是针对内存操作的。而硬指令二的指令是针对外设进行操作的。这种独立编制我用不同的专用命令进行一个操作就OK了,这是独立编制。
那么统一编制。比如说都用木指令和木指令根的那个地址范围区间。如果是低位地址,我可能是对于内存操作。而如果是一个高位地址或是对于外设?比如说这个就说对于同统一编制,第一没有独立的IO指令。第二我们怎么区分这是对于内存,怎么对于外设就事先约定我地址空间的分配。比如说零到这个0到250兆,这中间都是对于内存操作,从第三百兆开始到多少是对外设,这个我们可以说我们已经约定。
在这儿我们有个概念叫端口的概念。刚才我们一个接口,端口是什么样?大家注意一下。这个端口指的是C就是这个接口中数据缓冲区。既然有数据缓冲区,那么对于数据缓冲区的编制我们就叫端口。听清楚对于接口中数据缓冲区那些的地址编号,我们一起名字叫端口。
比如说8086,他接的这种接口控制器最多是256个。最多是256个是吧,他就是他有256个是吧。然后怎么着,这是对,因为咱们先讲讲这教材对于这块儿减了很多。
好了,这是有关多少概念?下面咱们看一下这个L设备进行信息传输的控制方式。在咱们教科书上我们的信息传送方式讲了4种,就I设备的信息传播方式讲了4种。其中有3种在我们的这个。这个小节名称里面已经给大家显示出来了。就是我们这个IO的信息传输控制方式有4种。其中三种分别是中断DIA和通道。
最后一种隐含没有讲的是叫程序查询方式。也就是说我们还这个主机与外设进行传输控制的方式有4种方式。只有程序查询方式,没有单独一节给大家标出来。剩下的中断方式、DMA方式和通道方式都是单独一截。
所谓程序查询方式,这个对大家来说是最熟悉。比如说咱们学习C语言学习C语言,有时候咱们小学期要求大家什么?利用C语言对于磁盘文件进行操作,写文件、读文件。就是用到的我们C源的边那个有,但对应的就是程序查询方式是吧?程序查询方式就跟这种C语言写词发明件多次发文件这种方式就是一种程序查询方式。具体讲程序查询方式是CPU通过执行一段IO操作的程序来完成数据的读或者写操作。这个设置就像我们刚才所说的C语言进行一个读写文件的操作,对吧?这个就承认法律方式,就这种承认法律方式这样。由于时间关系,咱们就今天就讲到这儿。咱们下一次课我觉得咱们第八章会讲完,第九章我们不做要求,搭下自己看好散会。
包括。
这什么蔬菜?
放太远了。