高级计算机体系结构总结

1.摩尔定律内容及其对现代计算机的影响?

   答:摩尔定律是由英特尔名誉董事长戈登摩尔经过长期观察指出的。主要内容是集成电路芯片上所集成的晶体管数将每隔18个月翻一番,微处理器的性能将提高一倍,价格下降一半。影响:(1)归纳了信息技术进步的速度,比如半导体芯片的发展;(2)带动了芯片产业自热化得竞争,是公司发展的驱动力;(3)指导着高科技产业中设计者们的工作,让生产找到了提高产品性能的途径。摩尔定律实际上是关于人类信念的定律,当人们相信某件事情一定能做到时就会努力去实现它。

2.Pipling指令集流水线段各是什么?

   答:一条指令流水线由五段组成:(1)取指令(IF):发送程序计数器PC到内存,取出当前指令,更新PC;(2)指令译码(ID):判断指令类型,从寄存器取操作数(3)计算有效地址或者执行(EX):计算内存操作数的有效地址,分支跳转的有效地址,执行(4)访存取数(MEM):用有效地址去访存取数或存数,用分支跳转有效地址更新PC(5)写回(结果写回寄存器WB)

3.什么原因导致流水线停止,怎样解决?

答:要使流水线具有良好的性能,必须使流水线畅通流动,不发生断流,但由于流水过程中发生以下三种相关冲突而停止:结构相关,数据相关,控制相关。

结构相关:当数据和指令放在同一个存储器且只有一个访问口时,便发生两条指令争用存储器资源的相关冲突,解决办法:一是指令停顿一排再启动,插入一个气泡,二是增设一个存储器,将指令和数据分别放在两个存储器中。

数据相关:在一个程序中,如果必须等前一条指令执行完毕后,才能执行后一条指令,那么这两条指令就是数据相关的,解决办法:一是插入气泡,二是流水CPU的运算器中特意设置若干运算结果缓冲寄存器,暂时保留运算结果,以便于后继指令直接使用;三是推迟后继指令的执行,直到前面的指令的结果产生为止,这样大大影响流水线的吞吐率。

控制相关:是由转移指令引起的,当执行转移指令时,依据转移条件产生的结果,可能为顺序取下一条指令,也可能转移到新的目标地址取指令,从而使流水线发生断流,为减少转移指令对流水线性能的影响,可采用延迟转移法和转移预测法。

4.  5段流水线,可把CPU性能提高5倍,实际却做不到,什么原因,解决方法?

 答:不能提高倍数的原因可能是由于:(1)流水线各段的所需时间不相等,受到慢的流水线段影响,(2)流水线的充满和排空需要时间(3)输入的任务不是连续的,程序本身存在相关的冲突,有气泡。

解决办法:当流水线中各段的执行时间不完全相等时,流水线中就存在有“瓶颈”。解决流水线“瓶颈”问题的方法主要有两种。一种方法是将流水线的“瓶颈”部分再细分。这样,每一个功能段及子功能段的延迟时间均为t。如果由于结构等方面的原因,瓶颈功能段不能再细分时,可以采用,通过重复设置瓶颈功能段,让多个瓶颈功能段并行工作。

5.指令集的用途?RISC和CISC指令集不一样,计算机分为精简指令系统和复杂指令系统计算机,这导致的优缺点?

答:用途:CPU依靠指令来自计算和控制系统,每款CPU在设计时就规定了一系列与其硬件电路相配合的指令系统。指令的强弱也是CPU的重要指标,指令集是提高微处理器效率的最有效工具之一。从现阶段的主流体系结构讲,指令集可分为复杂指令集和精简指令集两部分。

CISC优点:CICS指令系统的功能比较强大,能取代一些用软件实现的功能。缺点:指令系统比较庞大,指令数目200-300条,运行速度慢,带来了体系结构复杂,成本高,使得计算机的研制周期变长,难以保证正确性,不容易调试维护,而且由于采用了大量使用频率较低的复杂指令而造成硬件资源浪费。寻址方式多,指令格式多,指令字长格式不固定,可访存储器不受限制,各指令使用频率相差大,大多数采用微程序控制器,功能不均衡,不易于用流水线提高性能。

RISC优点:指令长度固定,指令格式种类少,寻址方式种类少,只有取/存数指令访问存储器,其余的指令的操作都在寄存器间进行。大部分指令在一个机器周期内完成。继承了CISC指令系统的成功技术,并在克服了CISC机器缺点的基础上发展起来的,使得处理器的结构更加合理,更简单,具有更高的性能和执行效率,并降低处理器的开发成本。一般高级语言编程,特别重视编译优化工作,并利用指令流水线调度以减少程序执行时间。缺点:CPU中通用寄存器的数量相当多,以硬布线控制为主,不用或者少用微指令控制,强调对指令流水线的优化,RISC使得它的编译程序变得复杂,软件系统开发时间比CISC机器长。

6. 典型指令集结构MIPS和ARM指令集的特点。

ARM(1)指令长度固定32位,(2)寻址方式简单,执行效率高,(3)大量使用寄存器,执行速度快(4)大多数数据操作在寄存器中完成,支持大端,小端,每条指令前4段均为NZCV。

MIPS有三种指令格式(1)R类型,从寄存器堆中读取两个源操作数,结果返回给寄存器堆(2)I类型,使用一个16位的立即数作为一个源操作数(3)J类型,使用一个26位的立即数作为跳转目标地址。

ARM指令特点:所有指令都是带条件的,具有灵活的第2操作数,既可以是立即数,也可以是逻辑运算符,有协处理器的作用,ARM内核可以提供协处理器指令接口,通过扩展协议处理器完成复杂功能。ARM有两种指令集,16位Thumb和32位的ARM指令集。具有RISC指令特点。由于指令长度为32位,无法在1条指令中存放32位的立即数,一般立即数为5—12位。

7. 为什么要设置内存的层次结构?内存层次行的原理:时间局部性和空间局部性各是什么?

答:(1)处理器与主存之间的速度差异很大,对存储器的要求是容量大速度快成本低,为了解决这方面的矛盾,采用存储器层次结构。(2)程序访问的局部性原理:程序经常会重复使用它最近使用过的指令和数据,经验指出程序有90%的执行时间执行的是其10%的代码。局部性原理意味着我们可以用最近使用过的指令和数据,在一定误差范围内合理的预测将要使用到的指令数据。

时间局部性说明最近使用过的指令或数据很有可能即将被使用。空间局部性是说地址相邻的指令或数据可能在一定时间内被连续使用。

8. 主存与Cache的地址映射方式?各种方式的优缺点?

答:Cache的映射策略指的是内存与Cache之间如何建立相互映射关系。可分为:

直接映射方式:每个内存块只能被唯一的映射到一条Cache 中;

优点:硬件实现很简单,不需要采用相联访问的存储器,访问速度也比较快。实际上采用直接相联方式的Cache不需要进行地址变换,因为主存地址的低位部分就是Cache的地址。

缺点:块的冲突率比较高。当主存中的两个或两个以上的块都映像到Cache的同一块中,而这些块又都是当前的常用块时,Cache的命中率会很低。这时,即使Cache中还有很多空闲的块,也帮不上忙。

K-路组相联映射方式:cache被分解为若干个组,每个组由K个Block组成;组直接映射,组内映射到任意Block

优点:与直接映像方式相比,最明显的优点是块的冲突率大大降低。

缺点:由于组相联映像方式在组内部需要进行相联比较,因此,实现的难度和造价要比直接映像方式高。

全相联映射方式:内存块可以被映射到Cache中的任意一个Block。

优点:块的冲突率最小,Cache的利用率也最高。缺点:但是,需要一个相联访问速度很快、容量为C的相联存储器,其代价很高。而且,相联比较所花费的时间将影响Cache的访问速度。

Complement:(选择性看)

当CPU在Cache中找到药访问的数据项,被称为Cache命中;当CPU找不到,就叫Cache缺失。CPU与Cache之间的数据交换是以字为单位,而Cache与主存之间的数据交换是以块为单位。一个程序需要的所有数据并不是都驻留在内存中,如果系统中包含虚拟存储器,那么一些数据可以存放在磁盘中,地址空间通常分为一些固定大小的块,称为“页”,在任意时刻,会有某个页保存在主存储器或者磁盘中,当CPU要访问的数据不在Cache中,又不在主存储器中,则发生“页缺失”,需要从磁盘中取出该页并放到主存储器中。

9. 什么是并行?互联网特性?

答:并行性包括同时性和并发性两个含义:(1)同时性指两个或者两个以上事件在同一时刻发生;(2)并发性指两个或两个以上事件在同一时间间隔发生。多处理器互联方式包括静态互联网络和动态互联网络:(1)静态互联网络:处理单元间有着固定连续的一类网络,在程序执行期间,这种点到点连接保持不变。典型的静态网络有一维线性阵列,二维网孔,树连接,超立方网络,立方环,洗牌交换网,蝶形网络等(2)动态互联网络:用交换开关构成的,可按应用程序的要求动态地改变连接组态典型的动态网络包括总线,交叉开关,多级互联网络等。

10. 最早多核CPU二级Cache是分开的,后来是共享的,为什么?

答:(1)共享二级cache使得更有效的使用了最后一级cache,当其中一个内核不工作的时候,另外一个内核就可以使用整个二级Cache,提高了资源的利用率。(2)程序员编程更灵活,当共享二级Cache时,在这个基础上,可以使得分别运行在两个内核上的线程能有更多的机会去共享数据。其中一个内核可以为另一个内核提前或者之后处理相关的数据。并且在两个内核之间有选择性的交流机制。(3)减少cache的不一致性,由于共享了二级Cache,所以减少了错误的共享。相对于独自占有二级Cache的体系结构而言,使得维持Cache一致性的负担大大减少。(4)减少冗余,一份数据只需要存储一份即可。(5)减少前端总线的分担。在多核之间高效的数据共享,可以使得数据共享在共享的二级Cache中得到解决,而不是在整个系统存储器之间进行访问。

速度,价格灵活性

用硬件的指令来实现,速度高,价格低,灵活性差。用软件的子程序来实现,速度低,价格便宜,灵活性好。

设计指令系统时,在功能方面的基本要求是:指令的完整性,规范性,高兼容性。

完整性是指:通用计算机应该具备的基本指令是:1 数据传输类2 运算类 3 程序控制类 4 输入输出指令  5 处理机控制和调试指令

目前,指令系统的优化设计有两种截然相反的方向,一个是增强指令的功能,设置一些功能复杂的指令,把一些原来由软件实现的常用功能改用硬件的指令系统来实现-----复杂指令系统计算机。

另一种是80年代发展起来的,尽量简化指令功能,只保留那些功能能在一个节拍内执行完的指令及使用频率相当高的指令,较复杂的用子程序来实现----精简指令系统。

11.P76这两个图的不同点,为什么要进行改造?

 答:及早判断转移是否发生,尽早生成目标地址,可以将原来在MEM段进行的目标地址的计算及当条件成立时将转移的目标地址送往PC的动作提前到ID段完成,可使转移指令造成的流水线停顿由3个时钟减少到1个时钟,,加上ADD加法器是为了计算转移目标地址,而且避免了与ALU发生资源相关,但由于增加了硬件资源,提高了成本。

处理分支指令最简单的办法,一旦检测到分支指令就暂停之后的所有指令,直到指令到达流水线的MEM段,确定了新的PC值为止,这样的处理,在流水线中插入2个暂停周期,当分支指令在MEM段确定新的PC值后,流水线作废,分支后继指令的IF周期(相当于一个暂停周期),按照新的PC值取指令,显然造成了3个停顿,如果分支指令是失败的,那么重复分支直接后继指令IF周期就毫无必要,因为流水线已经取出了正确指令。

较少流水线处理分支指令时的暂停时钟周期数有如下两种途径:

1 尽早判断出分支转移是否成功

2尽早计算出分支转移成功时的PC值

为了优化分支指令,在流水线中应同时采用上述两种方案。可以把测试分支条件寄存器的操作移到ID段完成,从而使得在ID周期末就能完成分支转移成功与否的检测。另外,由于要尽量计算出两个PC值,也可以将计算分支目标地址的操作转移到ID段完成,为此,要在ID段增加一个加法器,改进后处理分支只要2个周期的暂停,降低了分支损失,但由于增加了硬件资源,提高了成本。

12.Flynn分类法是按照指令流和数据流的多倍性进行分类。把计算机系统的结构分为:

并行计算机体系结构:四种体系结构 SISD,MISD,SIMD,MIMD

SISD:单指令单数据流,由一个单一的处理机解释单一的指令流,以及对存于单一存储器中的数据操作,这种技术可以促进以上任何一种低级并行处理机实现。

MISD:多指令单数据流,将一个数据序列发送到一组处理机,每一个处理机执行其中一个不同的指令序列,但是这种结构无法实现。

SIMD:单指令多数据流,由一条单一的机器指令控制多个处理部件以链步的方式同时执行,而且每个部件都有一个相联的数据存储器,所以每一条指令可以对不同的处理机的不同数据同时执行。

MIMD:多指令多数据流,这种方式为使用一组处理机同时对不同的数据分组执行不同的指令序列,但是这些处理机都是通用的,因为它们必须能够处理完成相应数据交换所需的指令。

13表示寻址方式的主要方法有哪些?简述这些方法的优缺点。

答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。

14.  简述流水线技术的特点。

答:流水技术有以下特点:

(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。

(2) 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。

(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。

(4) 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。

(5) 流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。

15. 减少流水线分支延迟的静态方法有哪些?

答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。

(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。

(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。

16 .关于多级存储结构:

寄存器--->Cache--->主存储器--->磁盘---->磁带

从用户的角度看:存储器的三个主要指标是:容量,速度,和价格

速度越快,单位价格越多2. 速度越慢,每位价格越低3。 容量越大,速度就越慢。

图中的由上至下每位的价格越来越来低,速度越来越慢,容量越来越大。CPU访问的频率也越来越低,最上层的寄存器通常都置于CPU内部参与运算,CPU内有几十个 寄存器,速度最快,价格最高,容量最小,主存用来存放将要参与运算的程序和数据,速度与CPU速度相差较大,为了减少他们之间的速度差异,我们插入一种速度更快,容量更小的高速缓冲存储器Cache,其价位高于主存,主存与缓存之间数据的调动由硬件自动完成

常见的两种层次结构:Cache—主存,主存---辅存           三级存储结构。

并行存储器:设置多个独立的存储器,让他们并行工作,在一个存储周期内可以访问到多个数据,这是提高存储器速度最直接的方法。

由并行访问存储器,交叉访问存储器,无访问冲突并行存储器,三种存储器。

17. 在“Cache—主存”层次中,主存的更新算法有哪两种?它们各有什么特点?

答:(1)写直达法:是利用Cache—主存存储器层次在处理机和主存之间的直接通路,每当处理机写入Cache的同时,也通过此通路直接写入主存,这样在块替换时,就不必先写回主存,而可以立即调入新块,易于实现,而且下一级存储器中的数据总是最新的。

(2)写回法:是指在CPU执行写操作命中Cache时,信息只写入Cache,仅当需要被替换时,才将已被写入过的Cache块先送回主存,然后再调入新块。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。

18简述“Cache—主存”层次与“主存—辅存”层次的区别。

答:

19. 多处理机Cache一致性问题

答:在共享存储器的多处理机中,每台处理机都有自己专用的Cache。当在此类多处理机上运行一个具有多个进程的程序时,各处理机可能会使用到共享存储器中的同一数据块,为维持多处理机的高速运行,这些共享数据块将被调入各自的Cache中,如果分布在共享存储器中的同一块数据的不同Cache拷贝出现了不一致,就可能危及系统的正常运行,这就是Cache一致性问题。

产生原因:1 , 由共享可写数据引起的Cache不一致 ;2。 由进程迁移引起的Cache不一致;3。由绕过Cache的I/O操作引起的不一致。

一致性协议主要有:1 基于总线的监听一致性协议(snoopy coherency protocol),此类协议需要由总线或环提供的广播机制,通过监听总线(snoopy bus)实现。主要思想是不断监听总线上处理机和存储器模块间的Cache操作事件,各处理机根据监听的信息对各自Cache中的数据采取保持一致性的措施。

另一种是基于目录的一致性协议,此类协议需要建立一个Cache目录,记录共享数据的处理机信息,当某一个处理机完成写操作后,同时通过此数据块所在的各目录项,把一致性命令发给存放有该数据块拷贝的Cache,使之无效或更新,但它主要应用于具有分布式存储器模型的多处理机。

相关推荐