《2022年高级计算机体系结构期末试题 .pdf》由会员分享,可在线阅读,更多相关《2022年高级计算机体系结构期末试题 .pdf(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学而不思则惘,思而不学则殆1.CUP性能公式评价 cache 性能公式:平均存储访问时间= 命中时间+ 缺失率缺失代价命中时间:缓冲命中需要的时间。Cpu性能公式分析经典的 CPU性能公式现在我们可以用指令数、CPI 和时钟周期时间来写出基本的性能公式:CPU时间 =指令数 CPI时钟周期时间CPI:每条指令的时钟周期数,表示执行某个程序或者程序片段时每条指令所需的时钟周期平均数。指令数:执行某程序所需的总指令数量。或 CPU时间 =指令数 CPI/ 时钟频率这些公式特别有用,因为它们把性能分解为三个关键因素。我们可用这些公式来比较不同的实现方案或评估某个设计的替代方案。举例代码段的比较一个编
2、译器设计者试图在两个代码序列之间进行选择。硬件设计者给出了如下数据:对于某行高级语言语句的实现,两个代码序列所需的指令数量如下:代码序列 1 共执行 2+1+2=5条指令。代码序列 2 共执行 4+1+1=6条指令。所以,代码序列 2 执行的指令数更多。基于指令数和 CPI,我们可以用 CPU 时钟周期公式计算出每个代码序列的总时钟周期数为:精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 1 页,共 10 页学而不思则惘,思而不学则殆因此,代码序列1 的 CPU时钟周期数 =(21)+(12)+(23)=10 周期,代码序列 2 的 CPU时钟周期
3、数 =(41)+(12)+(13)=9 周期。故代码序列2 更快,尽管它多执行了一条指令。由于代码序列2总时钟周期数较少,而指令数较多, 它一定具有较小的CPI。CPI 的计算公式为:CPI=CPU时钟周期数 / 指令数代入相应数据可得CPI1=CPU时钟周期数1/ 指令数 1=10/5=2 CPI2=CPU时钟周期数2/ 指令数 2=9/6=1.5 。重点图 1-14 给出了计算机在不同层次上的性能测试指标及其测试单位。通过这些指标的组合可以计算出程序的执行时间(单位为秒):执行时间 =秒/ 程序 =指令数 / 程序时钟周期数/ 指令秒 / 时钟周期永远记住, 唯一能够被完全可靠测量的计算机
4、性能指标是时间。例如, 对指令集减少指令数目的改进可能降低时钟周期时间或提高CPI,从而抵消了改进的效果。类似地,CPI 与执行的指令类型相关,执行指令数最少的代码其执行速度未必是最快的。图 1-14 基本的性能指标及其测量单位如何确定性能公式中这些因素的值呢?我们可以通过运行程序来测量CPU 的执行时间,并且计算机的说明书中通常介绍了时钟周期时间。难以测量的是指令数和 CPI。当然,如果确定了时钟频率和CPU 执行时间 , 我们只需要知道指令数或者 CPI 两者之一 , 就可以依据性能公式计算出另一个。用仿真器等软件工具可以测量出指令数,也可以用现代处理器中的硬件计数器来测量执行的指令数、
5、平均 CPI 和性能损失源等。 由于指令数量取决于计算机精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 2 页,共 10 页学而不思则惘,思而不学则殆体系结构,并不依赖于计算机的具体实现, 因而我们可以在不知道计算机全部实现细节的情况下对指令数进行测量。但是,CPI 与计算机的各种设计细节密切相关,包括存储系统和处理器结构(我们将在第4、5 章中看到),以及应用程序中不同类型的指令所占的比例。因此,CPI 对于不同应用程序是不同的,对于相同指令集的不同实现方式也是不同的。上述的例子表明,只用一种因素(如指令数)去评价性能是危险的。当比较两台计算机时
6、, 必须考虑全部三个因素, 它们组合起来才能确定执行时间。如果某个因素相同(如上例中的时钟频率),必须考虑不同的因素,才能确定性能的优劣。因为 CPI 随着指令组合( instruction mix)而变化,这样指令的条数和CPU 必须被比较,即使时钟频率是相同的。在本章最后的练习题中,有几个是关于计算机和编译程序的性能评价。在 1.8 节,我们将讨论一种因没有全面考虑各种因素而导致的对性能的误解。理解程序性能程序的性能与算法、编程语言、编译程序、体系结构以及实际的硬件有关。下表概括了这些成分是如何影响CPU 性能公式中的各种因素的。精解:也许你期望 CPI 最小值为 1.0 。在第 4 章我
7、们将看到,有些处理器在每个时钟周期可对多条指令取指并执行。有些设计者用IPC(instruction per clock cycle )来代替 CPI。如一个处理器每时钟周期可执行2 条指令,则它的IPC=2,CPI=0.5。2.verlog描述状态机(硬件描述语言(verylog)写状态机)精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 3 页,共 10 页学而不思则惘,思而不学则殆状态机描述方法: 状态机描述时关键是要描述清楚几个状态机的要素,即如何进行状态转移, 每个状态的输出是什么, 状态转移的条件等。 常见的三种描述方式:第一,整个状态机
8、写到一个always 模块里面,在该模块中既描述状态转移,又描述状态的输入和输出;第二,用两个always 模块来描述状态机,其中一个always 模块采用同步时序描述状态转移; 另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律以输出。第三,在两个 awlays 模块描述方法基础上, 使用三个 awlays 模块,一个 awlays模块采用同步时序描述状态转移; 另一个模块采用组合逻辑判断状态转移条件,描述状态转移规律;另一个awlays 模块描述状态的输出(可以组合电路输出,也可以时序电路输出)。状态机采用 VerylogHDL 语言编码,建议分为三个always 段完成。三段式建模
9、描述 FSM 的状态机输出时,只需指定case 敏感表为次态寄存器,然后直接在每个次态寄存器的case 分支中描述该状态的输出即可, 不用考虑状态转移条件。/ 状态机设计的例子module FSM(clk,clr,out,start,step2,step3); input clk,clr,start,step2,step3; output2:0 out; reg2:0 out; reg1:0 state,next_state; parameter state0=2b00,state1=2b01, state2=2b11,state3=2b10; always (posedge clk or p
10、osedge clr) begin if (clr) state = state0; else state = next_state; end always (state or start or step2 or step3) begin case (state) state0: begin if (start) next_state =state1; else next_state =state0; end state1: begin next_state = state2; end state2: begin if (step2) next_state =state3; else next
11、_state =state0; end 精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 4 页,共 10 页学而不思则惘,思而不学则殆state3: begin if (step3) next_state =state0; else next_state =state3; end default: next_state =state0; endcase end always (state) begin case(state) state0: out=3b001; state1: out=3b010; state2: out=3b100; state
12、3: out=3b111; default:out=3b001; endcase end 3.流水线数据相关性及解决方法流水线的概念流水线:把一个重复的过程分解为若干子过程,每个子过程由专门的功能部件来实现。将多个处理过程在时间错开,依次通过各功能段, 每个子过程就可以与其他子过程并行进行。相关:指两条指令之间存在某种依赖关系。3 种类型:数据相关、名相关、控制相关(1)数据相关依次存在两条指令i(在前)和 j(在后) ,若指令 j 使用指令 i 产生的结果或指令j 与 k数据相关,而 k 又与指令 i 数据相关,则称 j 与 i 数据相关。(2)名相关名:指指令所访问的寄存器或存储单元名称。
13、名相关:指两条指令使用的名相同,但没有数据流动,则称它们名相关。(3)控制相关控制相关是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后续指令是否执行。 一般说来, 为确保程序应有的执行顺序,必须严格按控制相关确定的顺序执行(3)控制相关控制相关是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后续指令是否执行。 一般说来, 为确保程序应有的执行顺序,必须严格按控制相关确定的顺序执行流水线冲突: 指对于具体的流水线来说, 由于相关的存在, 使得指令流中的下一条指令不能在特定的时钟周期执行。流水线冲突有三种类型:结构冲突、数据冲突、控制冲突。(1)结构冲突定义:因硬件资源满
14、足不了指令重叠执行的要求而发生的冲突。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 5 页,共 10 页学而不思则惘,思而不学则殆解决方案:a、可以在前一个指令访问存储器时,将流水线停顿一个时钟,推迟后面取指令的操作。停顿周期称为“流水线气泡” 。b、在流水线处理机中设置相互独立的指令。存储器和数据存储器(2)数据冲突定义:当指令在流水线重叠执行时,因需要用到前面的执行结果而发生的冲突。分类:写后读冲突、写后写冲突、读后写冲突。解决方案:通过定向技术减少数据冲突引起的停顿。设置流水线互锁机制。依靠编译器解决数据冲突(3)控制冲突定义:流水线遇到分
15、支指令和其他会改变PC值的指令所引起的冲突。解决方案:最简单的方法是“冻结”或者“排空”。就是一旦在流水线的译码段ID 检测到分支指令,就暂停执行后的所有指令,直到分支指令达到MEM 段、确定是否成功并计算出新的pc 值为止。4.cache一致性现代并行机中,为了提高处理器的速度,处理器往往带有Cache 。一个数据在整个系统内可能有多份拷贝,这就引发了Cache一致性问题。Cache一致性问题是指在含有多个Cache的并行系统中, 数据的多个副本 (因为没有同步更新) 而造成不一致的问题。 可能由于多个处理器共享一个可写变量造成的 Cache不一致;还有比如进程迁移和某些I/O 操作等。Ca
16、che一致性问题是指在含有多个cache的并行系统中,数据的多个副本 (因为精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 6 页,共 10 页学而不思则惘,思而不学则殆没有同步更新)而造成的不一致问题。以上的例子是由于多个处理器共享一个可写变量造成的 cache不一致。还有其他原因也会造成cache一致性问题,比如进程迁移和某些 I/O 操作等。事务内存事务内存是一种 并行程序设计 的方式,其来自于 数据库管理系统 (DBMS )中的事务 (Transaction )概念。 事务内存目前有两种实现方式,基于软件的STM( Software Tra
17、nsactional Memory ) 和 基 于 硬 件 的HTM ( Hardware Transacational Memory ) 。事务内存的分类和涉及到的基本术语事务内存按照更新数据时的机制不同,可分为延迟更新 (deferred-update) 和 直接更新 (direct-update) 两大类。延迟更新软件 事务内存实现的基本思想是一个线程对仅对对象的一个副本进行改变,如果此次执行不与其他线程发生同步冲突,则此事务成功并执行提交 (Commit) 动作,如果失败则执行 回滚(Abort 或Rollback )动作。直接更新则是直接对对象进行更新,并使用显式的同步语句避免其他事
18、物在进行更新的时候修改此对象。显然在直接更新时需要系统记录此对象的原始值,以便在 回滚时可以恢复。根据在 事务冲突时的处理机制不同, TM 又可以分为 悲观和乐观的 并发控制(pessimistic & optimistic concurrency control)两大类。在悲观的 并发控制 中,冲突一旦发生就必须要得到侦测并加以解决,而在乐观的并发控制里, 冲突的侦测和解决可以延迟,只要是在事务提交之前进行就可以了。事务还有粒度 (granularity) 的概念:最容易让程序员理解的粒度是对象粒度;在此粒度下, 任何冲突发生的判决是在对象范围内进行的:即使两个事务修改的内存块不重合,只要他
19、们是在同一个对象内,那么就可以判断这两个事务冲突。更精细的粒度是字粒度 (word granularity) 和字节粒度 (byte granularity) ,在这两种粒度下, 冲突的检测更精细, 更利于 事务内存系统性能的提升, 但是却会给程序员带来不小的麻烦。软件事务内存( STM)软件事务内存的实现包括原子对象( Atomic object ) 、冲突判决器( Conflict manager ) 。 其中原子对象的实现是最重要的, 它是各 事务之间通信同步的媒介。原子对象的实现又分为顺序性实现和事务实现: 其中事务实现还要要求实现同步和恢复(recovery )功能,同步功能即意味着
20、要求有检测事务冲突的能力,而恢复功能则意味着需要在事务失败的时候将对象回滚到事务执行之前的状态。 目前提出的原子对象一般是基于读/写冲突 (Read/Write conflict) 的机制:原子对象提供两个接口, 一个为读接口, 一个为写接口, 通过读接口可以得到一个可以读的对象,而通过写接口则可以得到一个可以写的对象。为了检测冲突 (即多个 事务并发时的同步情况),事务中可以设立两个集合,一个为读集(Read set ),一个为写集( Write set) ,分别记录该事务所要处理的读写原子对象集。如果一个事务的读集或写集与另一个事务的写集有交叉,则表明两个事务冲突, 需要冲突判决器进一步采
21、取决策。硬件事务内存( HTM )Azul Systems 在 20XX 年推出的Vega 2 微处理器支援硬件 事务内存。可以看出,事务内存的出现就是为了解决并行编程存储一致性和性能矛盾的问题,精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 7 页,共 10 页学而不思则惘,思而不学则殆传统的锁机制会导致性能低下,并且可扩展星差, 而事务内存, 则尝试在体系结构和程序员之间定义一个新的一致性,也即事务一致性, 对应的内存模型叫做事务内存。从上面一段话可以看出, 硬件事务内存有很多问题需要解决,包括版本管理,以及冲突管理,而对于硬件,只有有限的资源
22、,因此,这就限制了事务的长度,使(硬件)事务内存的实现难度和实用性大大降低,这也许是Rock 难产的原因之一。5.多核下需要资源互连,分析总线与片上网络的优缺点精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 8 页,共 10 页学而不思则惘,思而不学则殆多核芯片上的多个核心虽然各自执行自己的代码,但是不同核心间可能需要进行数据的共享和同步, 因此片上通信结构的性能将直接影响处理器的性能。当前片上通信主要有3 种方式:总线共享、交叉开关互连和片上网络(network on chip,NOC) 。总线共享结构是指片上核心、输入输出端口以及存储器通过共享
23、二级或三级Cache ,或者通过连接核心的总线进行通信。总线结构的长处是较为简单,易于设计实现,当前多数双核和四核处理器基本上都采用了该结构,但缺点是总线结构可扩展性较差,适用于核心数较少的情况。片上网络(NoC )是基于多处理器技术的一种新型的计算集成形式,涉及硬件通信结构、中间件、操作系统通信服务、设计方法及工具等。基于NoC 的系统能很好地适应在现在复杂SoC 设计中常使用的多异步时钟。片上网络是把互连网络用于片上系统设计,解决片上组件之间的通信问题, 它借鉴了并行计算机的互联网络。 片上网络与并行计算机的互连相比有很多相同点:支持包通信、可扩展、提供透明的通信服务等;但也有不同之处:片
24、上网络技术支持同时访问, 而且有可靠性高以及可重用性高等特点。它与总线结构、 交叉开关结构相比,片上网络可以连接更多IP 组件、可靠性高、可扩展性强以及较低的功耗,因此片上网络被认为是更加理想的大规模CMP 互连技术。当前片上网络主要有二维网格网络、 3K Tours 等互连结构。片上网络设计的问题是寻找网络开销和多核耦合程度最佳的平衡,并同时考虑网络的可扩展性。RAW 处理器就采用了片上二维网络结构, 它通过集成高速网络和优化的路由算法,片上核心间的通信延迟最大不会超过6 个周期,而且该结构可扩展性强。 这 3 种结构虽各有优势和不足, 但亦可融合,比如在全局范围采用片上网络而在局部选择总线
25、或者交叉开关结构,以实现性能与复杂性的平衡。优点通过并发和非阻塞交换获得更高的带宽通过分组交换获得更高的链路利用率通过分层协议获得可靠的传输通过点对点传输获得低功耗全局异步或准同步的、模块化、可升级的结构缺点交换电路和接口增加了电路面积数据打包、缓冲、同步和接口增加了延迟缓冲和增加的逻辑造成了功耗增加与原有 IP 核接口和协议的兼容问题6虚拟化虚拟化,是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。虚拟化使用软件的方法重新定义划分IT
26、资源, 可以实现 IT 资源的动态分配、灵活调度、跨域共享,提高IT 资源利用率,使 IT 资源能够真正成为社会基础设施,服务于各行各业中灵活多变的应用需求。精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 9 页,共 10 页学而不思则惘,思而不学则殆虚拟化技术与多任务以及超线程技术是完全不同的。多任务是指在一个操作系统中多个程序同时一起运行, 而在虚拟化技术中, 则可以同时运行多个操作系统,而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的 CPU 或者是虚拟主机上; 而超线程技术只是单CPU 模拟双 CPU 来平衡程序运行性能,这两个模拟出来的CPU 是不能分离的,只能协同工作。虚拟化技术也与VMware Workstation 等同样能达到虚拟效果的软件不同,是一个巨大的技术进步, 具体表现在减少软件虚拟机相关开销和支持更广泛的操作系统方面精选学习资料 - - - - - - - - - 名师归纳总结 - - - - - - -第 10 页,共 10 页