1、Chapter 1计算题l 需求筛选根据是成本性能比l 直接实现普通指用硬件实现,而间接实现是指用软件实现l 软件和硬件要综合考虑,要以价格性能比高低为取舍原则。l 惯用基本功能或产量很大功能才适当于用硬件实现。l 设计者最后要用成本性能比作为软、硬件实现功能取舍原则;消费者要用价格性能比作为选购计算机系统取舍原则。l 设计人员参照原则:n 考虑顾客应用领域n 设计周期长硬件不适当采用n 惯用功能尽量采用硬件实现n 实现功能成本性能比(或价格性能比)要低n 超前设计l 某一计算机用于商业外贸事务解决,有大量字符串解决操作。由于这种商务解决很普遍,有较大市场,故而设计人员决定在下一代计算机CPU
2、中加入字符串操作功能。经测试应用软件调查发现,字符串操作使用占整个程序运营时间50%。而增长此功能如用软件(如微程序)实现,则快5倍,增长CPU成本1/5倍;如果用硬件实现,则快100倍,CPU成本增长到5倍。问设计人员提出增长此功能与否恰当?如恰当则此功能应当用软件实现还是用硬件实现?设CPU成本占整机成本1/3解: 一方面来计算机在两种状况下提高性能和成本性能比。 设: S为CPU未增长字符串功能时CPU平均速度,Told为此时运营程序时间,Tnew为增长字符串功能后程序运营时间,则l Amdahl定律 (性能递减规则)n 某部件应用越频繁,当提高该部件性能时,整机性能也提高越多。但不论该
3、部件性能提高多大,整机性能加速不也许不不大于在原机器中除该部件外所有其他部件运营时间比例倒数1/(1-F)n 计算机性能改进限度受其采用迅速部件(被提高性能部件)在原任务中使用所占时间比例限制nl 采用新器件使某一功能性能提高10倍,但该功能使用只占原程序运营时间40%。请计算新计算机性能改进了多少?ll 高频事件高速解决(大概率事件优先原则)l 局部性原理n 最重要是90/10局部性规则n 时间局部性n 空间局部性l 适应计算机发展趋势l 在指令系统中指令拟定是属于计算机系统构造,而指令操作实现,如取指令、取操作数、运算、送成果等详细操作及排序方式是属于计算机构成,而实现这些指令功能详细电路
4、、器件设计及装配技术是计算机物理实现l 计算机性能是指在计算机上完毕顾客应用任务所需时间长短l 响应(实耗)时间是指计算机系统完毕某一任务(程序)所耗费时间n 速度,即用响应时间倒数n 用速度来评价性能,咱们称“高”为性能好;如果用响应时间来评价性能,咱们称“短”为性能好l 计算机整机性能提成两某些:一是CPU执行程序时间,二是等待时间。提高计算机性能就是提高CPU性能和减少等待时间。l CPU时间也包括两某些,即顾客CPU时间(user CPU time)和系统CPU时间(system CPU time)l CPUtime =整个程序总时钟数时钟周期l 每条指令平均时钟周期数(Clock c
5、ycles Per Instruction),简称为CPIl 指令数CPI代替总时钟数l 设条件转移指令实既有两种方案可以选取。机器A:用两条指令完毕。由比较指令建立条件码,再在转移指令中测试条件码。机器B:只用一条指令。比较和转移一起执行。对于这两种机器来说,条件转移指令用2个时钟,所有其他指令耗费一种时钟。在机器A上有20%执行指令是条件转移指令,因而每个转移都需要比较,有20%是比较指令。由于机器A在转移指令中没有比较功能,这样时钟频率比机器B快25%,问哪个机器快?解:忽视所有等待及系统时间,咱们可以用CPU时间来比较机器性能。 机器A: CPIA20%2 80%11.2 CPUtim
6、eA指令数A1.2时钟周期A 1.2IA A机器B: 无比较指令,则指令数要比机器A少20%,只有机器A指令数80%,即指令数B=80%指令数A。在机器A指令中有20%指令是转移指令,它占机器B指令数比例是20%80%=25%。因而机器BCPIB25%275%11.25。同步A机器时钟比B机器快25%,故时钟周期B(1+25%)A1.25ACPUtimeB指令数BCPIB时钟周期B 0.80IA1.251.25A 1.25IAA 从计算中咱们看出机器A虽然比机器B多执行了20%指令,但由于它时钟周期短,同步CPI也小,反而比机器B快l 某台计算机指令集本来进行存储器访问指令只有Load/Sto
7、re,其他指令只能在寄存器之间操作。这种机器咱们称为Load/Store型机器。现测得这台Load/Store计算机指令使用频率和时钟数如表1-5所示。在ALU操作中,有25%操作数是由Load指令获得。当前ALU操作中使其有一种操作数可以在存储器内,即register-memory指令,这条指令执行时钟数是2。假设扩展指令集后使转移指令增长1个时钟数,但不影响时钟周期,问这样变化后计算机性能与否提高? ll 对于例1-6计算机,咱们采用优化编译来改进其性能。编译可以减少50%ALU指令,但它不能减少Load,Store和Branch指令,忽视系统因素,并假设时钟周期是20ns(50MHz频率
8、),请问优化编译后MIPS和没有优化编译时MIPS各为多少?MIPS变化和执行时间变化与否一致?ll 基准程序普通设计原则n 具备代表性 n 不能对基准程序进行优化。n 复现性。n 可移植性。n 紧凑性。n 成本-效率要高l 性能报告有关参数计算l 哈夫曼压缩基本思想是:浮现频率最大事件用至少位(或最短时间)来表达(或解决),而频率较小事件用较多位(较长时间)来表达(或解决),从而达到平均位数(或时间)缩短目l 操作码信息源熵(entropy 系统包括平均信息量)公式 H=pilog2pi式中pi为事件浮现频率lChapter 2l 计算机三种机器构造n 堆栈u 长处:赋值表达式简朴,指令长度
9、较短,代码密度高;u 缺陷:不能随机访问存储器,代码效率低。n 累加器u 长处:机器内部状态至少,指令长度最短(9bytes);u 缺陷:仅一种暂存器,和存储器通信频繁。n 通用寄存器u 长处:最普通指令模型,第一类,寄存器运用率最高,代码长度MAX15字节。第二类,和累加器形式相似,暂存器个数多;u 缺陷:寄存器要显示阐明,导致指令字较长。l 在ALU指令中不对内存进行操作计算机称为载入-存储(Load-Store)或者寄存器-寄存器(register-register)机器。ALU指令中有一种内存操作数指令称为寄存器-存储器(register- memory)指令。有各种内存操作数指令称为
10、存储器-存储器(memory-memory)指令。l 咱们是在拟定了计算机应有功能后,并拟定了哪些功能是由硬件来实现(直接提供指令),哪些功能是由软件实现(由基本指令组合实现)后,再来进行指令集设计。l 最惯用指令操作:存储器访问(memory references)、算术逻辑单元(ALU operation)操作和转移指令(branch)操作三类。l 控制操作、算术操作和数据传播三大类指令是最惯用,可以以为也是各种计算机必不可少指令。l 假定反向条件转移指令90%是成功,用表2-4平均数计算正向条件转移成功率。ll 正向条件转移大某些是不成功,它满足条件概率较低l 在字单元地址内有两种字节排
11、列顺序:第一种为低位收尾(little endian),其字节顺序是低字节在最低位排列;第二种为高位收尾(big endian),其字节顺序是高字节在最低位排列l 假设访问数据字节数是S,而访问字节地址是A,那么A mod S =0,则称为地址A所访问S字节是对齐。l 只要是跨CPU字地址寄存器总线访问一定要两个总线访问周期才干完毕l 寄存器分派方略1. 假设计算机具备无穷各种寄存器,依照需要分派寄存器变量个数,以浮现时间先后为序建立一种寄存器变量图。图中每个变量用小圆圈表达,圈内标上变量名,每个变量称为一种节点。2. 用弧连接各相邻节点。连接原则是也许同步浮现变量节点作为相邻节点,用弧连接起
12、来。从变量角度来讲,线段连接是时空上重叠浮现变量生存范畴。此时称整个图为相干图。3. 编译程序给相干图着色。着色颜色数应不大于等于能分派给变量寄存器数,着色条件是相邻节点不可以用同样颜色。这种限制使两个同步浮现变量不会争用同一种寄存器。没有线段相连节点,可以是同一种颜色,即容许不重叠浮现变量使用同一种寄存器。着色后每一种颜色相应一种活动变量或一种寄存器。依照相干图分派物理寄存器。l RISC设计思想是:指令集设计时依照Amdahl定律选取使用概率高指令构成指令集,这些大概率指令普通是简朴指令,因而控制器可以设计简朴、高速,且占CPU集成电路芯片面积少,空出较多集成电路芯片面积用来增长寄存器数量
13、。在编译配合下减少访存次数,减少指令间各种有关和竞争,尽量得到最佳指令序列,从而提高计算机系统整体性能。l 某应用程序,简朴基本指令占80%,而复杂指令占20%,在老式CISC计算机上运营,简朴指令CPI=4,复杂指令CPI=8,而在RISC计算机上运营只有简朴指令,其CPI=1,复杂指令用简朴指令合成实现。假设平均每条复杂指令需14条基本指令组合,请比较个计算机系统运营该应用程序性能。解:设CISC计算机时钟周期为 TCISC,RISC计算机时钟周期为TRISC,则: CISC计算机平均 CPI=0.84+0.28=4.8RISC计算机指令数增长为 IRISC=0.8ICISC+0.2ICI
14、SC14=3.6ICISC因 CPUtime=ICPIT故 CPUtime-CISC=ICISC 4.8TCISC=4.8ICISCTCISC CPUtime-RISC=IRISC1TRISC=3.6ICISCTRISC 若TCISC=TRISC ,则RISC计算机比CISC计算机性能提高33%。事实上,减少TRISC比减少TCISC要来容易。Chapter 3画图题l 解决器可分为两某些n 数据通路n 控制器ll 一条指令执行分为如下五个环节:n 1. 取指令(instruction fetch) 。n 2. 指令译码/寄存器读出(instruction decode/register fe
15、tch)。n 3. 执行/有效地址计算(execution/effective address)。u a. 访存指令(access instruction)u b. ALU指令(ALU instruction )u c. 无条件转移/条件转移指令(jump instruction / branch)n 4. 存储器访问/完毕转移(memory access/branch completion)u a. 访存指令(access instruction)u b. 转移指令(branch instruction)n 5. 写回(write-back)。llChapter 4计算题 简答题l 流水线(
16、pipeline)是指在程序执行时多条指令重叠进行操作一种准并行解决实现技术l 流水线特点:n 一条流水线由各种流水级构成;n 每个流水级有专门功能部件对指令进行某种加工;n 各流水级所需时间是同样(同步);n 流水线工作阶段可分为建立、满载和排空三个阶段;n 单位时间内流出流水线指令数即吞吐率。l 流水线设计最难任务是拟定每个流水级功能部件解决事件时间l 每条指令平均执行时间=l 流水线深度是指流水线中总流水级数目。在这种条件下,流水线计算机加速比(speedup)就等于流水级深度。l 流水线只能减少每条指令平均执行时间,一条指令实际执行时间要通过所有流水级,其实际执行时间有也许比未流水时还
17、要长l 流水线有各种分类办法n 按解决级别分类u 操作部件级u 指令级u 解决器级n 按完毕功能分类u 单功能流水线u 多功能流水线n 按连接方式分类u 静态流水线u 动态流水线静态流水线是指在同一种时间内,多功能构造只能按一种功能连接方式工作,这对于大量数据进行相似解决来说,具备较好效果。但是遇到不同功能交替解决时,流水线就失去了其长处,运算速度与顺序解决方式没有什么区别。 动态流水线是指在同一种时间内,可以有各种功能连接方式同步工作。如图4-5中各种功能段,其中某些功能段正在实现乘法运算,同步其他功能段还可以进行浮点加减运算,这种方式流水工作效率最高,但是控制也变得更复杂。n 按解决数据类
18、型分类u 标量流水线u 向量流水线n 从流水线构造上分类u 线性流水线u 非线性流水线l 假定RISC流水线计算机,时钟周期是10ns,ALU操作和条件转移要4个时钟周期,而存储器访问操作要5个时钟周期。这三种指令操作使用概率相应是40%,20%和40%。假设由于时钟上升和建立,流水线机器周期要增长1ns开销。忽视任何其他延时影响,问5级流水线机器可以获得加速比是多少?解:非流水线计算机平均每条指令执行时间为: TimeupCPI10(40%+20%)4+40%5104.4=44ns 流水线计算机每条指令平均执行时间为: Timep(10+1)5/511ns 则流水线计算机Speedup为:S
19、peedup=44/11=4倍l 假定机器指令执行需要5个功能单元,这5个单元操作所需时间分别是10,8,10,10,7ns。假定流水要增长1ns开销。求出流水相对于单周期指令机器加速比 解:非流水计算机执行所有指令都用单个时钟,它每条指令平均时间直接是一种时钟周期。时钟周期等于每一步执行时间之和,即 timeup=10+8+10+10+7=45ns 在流水线机器上时钟周期必要是流水线中执行时间最长流水部件执行时间,再加上1ns开销,总共是 timep=10+1=11ns Speedup=45/11=4.1(倍) 普通以为,流水线改进了CPI,也可以把它看作是提高了时钟频率。l 流水线竞争有三
20、种n 构造竞争(structure hazard)(资源竞争):由资源缺少引起n 数据竞争(data hazard):由指令间数据有关而引起n 控制竞争(control hazard):由程序指针PC值变化而引起l 计算存储器构造竞争代价。假定程序中存储器数据访问有40%。计算机流水线忽视构造冲突抱负CPI等于1。又假设有构造竞争计算机时钟频率是没有构造竞争时1.05倍。不考虑其他性能损失。流水线有构造竞争和无构造竞争哪一种执行速度快?快多少?解: 有许多办法可以解这个问题,最简朴办法是计算平均指令运营时间 TaverICPI 两机器和时钟关系 f有构造竞争1.05f抱负 有构造竞争抱负/1.
21、05无构造竞争,即没有插入Stall,由于抱负CPI1,故平均指令执行时间 Ta无构造竞争ICPI抱负I抱负有构造竞争平均指令执行时间为 Ta有构造竞争ICPI(1+0.41)I抱负/1.051.3I抱负很明显,无构造竞争计算机运营速度要快,且要快1.3倍。l 容许构造竞争存在n 减少成本n 减少单元电路延时时间n 减少电路复杂限度l 当代许多RISC计算机,浮点操作都没有采用完全流水方式。假设在5级RISC流水解决器中,浮点乘法操作没用流水方式实现,有4个时钟等待时间。已知浮点乘法指令使用频率为14%,且假设浮点乘法指令在程序中完全均匀分布,请分析构造竞争对性能影响限度。分两种极端状况分析:
22、 1. 浮点乘法操作均匀分布,这是最佳状况,此时每7条指令有一种浮点乘法操作,不不大于5,故所有浮点乘法都可以和其他指令重叠执行,这种状况始终没关于于浮点乘法器构造竞争,也不需插入Stall,性能没有损失。 2. 浮点乘法操作成串浮现,且中间没有其他指令间隔,这是最差状况。这时局部相称于每条指令都是浮点乘法操作(即100%),构造竞争最严重。在这种状况下,14%浮点乘法都要延时4个时钟才干进入浮点乘法执行部件。假定抱负CPI1,此时CPI为 CPI1414%1.6l 旁路技术l 插入Stalll 假定30%指令是Load指令,其中一半状况是紧跟Load背面指令依赖Load指令成果。如果浮现数据
23、竞争要停顿一种流水节拍。那么相对于抱负流水线机器(CPI=1),实际流水线性能损失多少?忽视其他流水停顿。解: 当有数据竞争时,Load背面指令其CPI=2,这种状况Load指令一半,即15%,而别的指令CPI值仍为1,没有变化,故实际机器CPI为 CPI(100%15%)115%21.15由于指令总数和时钟周期均未变化,故实际机器性能损失 (1.151)115%即与抱负机器相比性能损失了15%。l 静态调度(避免插入Stall性能损失)l 假定由Load指令引起数据竞争有一种流水节拍停顿,采用指令调度办法生成代码,避免下列语句序列浮现流水等待 abc defl 指令从ID级流入EX级,普通称
24、指令发射(instruction issue)。一条指令已建立了这一过程,称为已发射(issued)l 把遇到转移指令到转移行为明确之间时间间隔称为转移延时时间,后继指令构成转移延时时间称为转移延时槽l 对延时槽解决有三种编译调度办法n 取自转移指令前。这是最佳选取。n 取自目的指令。普通用于转移成功概率高地方,如循环语句。n 取自转移指令后。普通用于转移成功概率较低地方。l 功能部件等待时间(latency)是产生成果指令和使用该成果指令之间必要间隔时钟数,功能部件启动间隔或重复间隔(initiation interval或repeat interval )是指两个进入同一部件操作之间所必要
25、等待时间间隔l 记分牌目是在无资源竞争前提下保持每一种时钟周期执行一条指令速率,尽量提早指令执行。l 记分牌任务是控制指令发射和执行,同步也涉及检测所有竞争l 流水线机器乱序执行意味着多条指令在EX级同步执行l 记分牌有如下四级流水环节: 发射级(issue) /解决构造竞争和WAW竞争 读操作数(read operands) /动态解决RAW竞争 执行(execution) 写成果(write result) /解决WAR竞争Chapter 5l 评价存储器性能参数重要有三个方面n 容量n 速度n 价格l 高速度、大容量、低价格始终是存储体系设计目的l 命中率(hit rate)H:CPU产
26、生有效地址可以在高层存储器中访问到概率失配(效)率(miss rate)M:CPU产生有效地址不能直接在高层存储器中访问到概率。M=1Hl 平均存储访问时间命中时间失配率失配时间,表达为:AMTHTMMPl 当失配损失较小,只有几十个时钟周期时,CPU采用等待块传播结束方略。当失配损失较大,达到CPU时钟周期几千倍时,普通采用中断使CPU切换到其他进程去执行办法。l 如果块传送只需几十个时钟周期,那么这种传送机制普通用硬件来控制;如果需要几千个时钟周期,则可以用软件办法实现。l 映象方式(直接映象、全关联映象、组关联映象)Chapter 8l 并行体系构造分类(Flynn构造)n 单指令流 单数据流 SISDn 单指令流 多数据流 SIMDn 多指令流 单数据流 MISDn 多指令流 多数据流 MIMDu 对称多解决 SMPu 分布式存储解决