• 2.62 MB
  • 2022-04-29 14:29:11 发布

最新计算机基础知识治疗MQ课件PPT.ppt

  • 171页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'计算机基础知识治疗MQ 第5章流水线技术与向量处理技术 设计处理机的主要目标之一是提高处理机指令执行速度,通常有三条途径:①提高CPU工作主频,目前依靠提高集成度来提高半导体器件主频几乎达到极限;②采用更好的算法和功能部件。例如采用RISC,改进乘法、除法的算法等;③采用指令并行技术,这是目前提高处理机性能的主要方法,其基本方法有3个,即流水线技术;超标量超流水线技术以及超长指令字技术。 5.1流水线基础5.1.1指令的重叠执行5.1.2RISC对流水线技术的支持5.1.3先行控制技术 设一条指令的执行过程分为:取指(取指令)、析指(分析指令)、执指(执行指令)三个阶段三个阶段都可能有访存操作取指析指执指访存取指令分析指令,可能访存取数执行指令,可能访存存结果5.1流水线基础5.1.1指令的重叠执行方式 1.顺序执行方式:n条指令的执行时间:设每段时间相等都是t,则执行时间:T=3nt特点:简单,但指令执行速度慢,功能部件利用率低取指k析指k执指k取指k+1析指k+1执指k+15.1流水线基础 2.一次重叠执行方式T=(1+2n)t≈2nt当n很大时,约缩短了1/2时间取指k析指k执指k取指k+1析指k+1执指k+1取指k+2析指k+2执指k+25.1流水线基础 3.二次重叠执行方式T=(2+n)t≈nt当n很大时,约缩短了2/3时间取指k析指k执指k取指k+1析指k+1执指k+1取指k+2析指k+2执指k+25.1流水线基础 指令的重叠执行对计算机组成提出什么要求首先,需要把顺序执行方式中的一个集中的指令控制器,分解成三个功能独立的部件:存控(存储控制器)、指控(指令控制器)、运控(运算控制器)其次,要解决三个阶段访问主存冲突问题,实现并行访存。有3种解决办法:(1)将主存分为两个独立编址的存储器:指令存储器和数据存储器,CPU可分别独立访问,这样就没有取指和析指访存的冲突。(2)低位交叉存取方式,可并行访问不在同一个存储体中的指令或数据。(3)根本解决办法是采用先行控制技术5.1流水线基础 再次,还要求各个功能部件的运行速度大致相等,避免在重叠中的相互等待,如图5-3所示。这需要用到先行控制技术中的缓冲技术,以及依靠RISC技术的支持。取指k析指k执指k取指k+1析指k+1执指k+1取指k+2析指k+2执指k+2图5-3指令重叠运行时的相互等待5.1流水线基础 指令的重叠执行对计算机组成提出什么要求还有,如果指令K是转移指令,则顺序取来的指令k+1势必无效,重叠运行就会被打断;类似的如数据相关等问题都必须解决。可见,实现功能部件的多次重叠,使程序运行如同生产流水线一般源源不断地执行指令和得到结果,就需要RISC系统的支持和采用先行控制技术,并解决有关控制转移、数据相关、资源冲突带来的可能使流水线断流的问题5.1流水线基础 RISC具有指令简单、规整,只有存(STORE)、取(LOAD)指令,几乎所有指令都在一个机器周期内完成,并注重编译的优化等特点,容易做到指令重叠运行时各个功能部件的运行时间相等,大大减少了重叠中功能部件的相互等待,为指令流水带来天然的支持。此外,为了更好地发挥其在流水线中的效果,RISC处理机还采用了延时转移、指令取消、重叠寄存器窗口、指令流调整、硬件为主固件为辅等多种关键技术。5.1流水线基础5.1.2RISC对流水线技术的支持 1.延时转移技术遇到转移指令,流水线可能断流。如:1ADDR1,R22JMPNEXT23NEXT1:SUBR3,R4……nNEXT2:MOVER4,A取1指1取2执2取3执3取n执n产生转移地址指令作废重新取指令5.1流水线基础 在转移指令后插入一条有效指令,如:1JMPNEXT22ADDR1,R23NEXT1:SUBR3,R4……nNEXT2:MOVER4,A指令序列的调整由编译器自动进行取1执1取2执2取n执n产生转移地址插入指令取新指令2JMPNEXT21ADDR1,R2 例:1:MOVER1,R22:CMPR3,R43:BEQNEXT4:ADDR4,R5……n:NEXT:MOVER4,A若是条件转移指令,能否采用延时转移技术?指令1与指令2、3没有数据相关 1:CMPR3,R42:BEQNEXT3:MOVER1,R24:ADDR4,R5……n:NEXT:MOVER4,A问题:如果原指令1是MOVR3,R2该怎么处理?调整指令顺序,原指令1插入原指令3之后 若遇上数据相关,无法调整,则在转移指令后插入一条空操作指令:1:MOVER3,R22:CMPR3,R43:BEQNEXTNOP4:ADDR4,R5……n:NEXT:MOVER4,A插入一条空操作指令 2.指令取消技术向后转移(如循环):LOOP:XXXYYY…COMPR1,R2,LOOPWWW对循环程序而言,仅在循环全部结束的最后一次转移才不成功。此时才取消指令XXX调整后XXXLOOP:YYY…COMPR1,R2,LOOPXXXWWW 2.指令取消技术向前转移(如分支结构):RRR…SSSCOMPR1,R2,THRUTTT…UUUTHRU:VVV对分支而言,转移成功与不成功概率各占50%若转移成功则取消指令TTT,否则不取消 隐含转移(条件分支只有一条指令的情况)如IF(a=,Ra,RbINCRb若Ra>=Rb则取消下一条指令INCRb 3.重叠寄存器窗口技术解决子程序调用CALL指令和子程序返回RETURN指令中访存过多问题方法:CPU中设置大量寄存器堆,划分多个窗口,保存调用现场和中间数据与上一过程合用局部寄存器与下一过程合用全局寄存器某过程的寄存器窗口 R31C···R26CR25C···R16C上局R15C···R10C下过程CR31A···R26AR25A···R16A上局R15A···R10A下过程AR31B···R26BR25B···R16B上局R15B···R10B下过程B0984899099100105106115116121122131132137R9A···R0AR9B···R0BR9C···R0C全局出C出B/入C出A/入B入A局部A局部B局部COUTC局部C局部B局部AINAOUTAINBOUTBINCB-C窗口重叠A-B窗口重叠 4.指令流调整技术通过优化编译器调整指令序列,尽量消除数据相关。如:ADDR1,R2,R3;R1+R2→R3ADDR3,R4,R5;R3+R4→R5MULR6,R7,R3;R6×R7→R3MULR3,R8,R9;R3×R8→R9数据相关数据相关调整ADDR3,R4,R5;R3+R4→R5MULR6,R7,R0;R6×R7→R0MULR0,R8,R9;R0×R8→R9调整后消除了数据相关,便于流水线操作 5.硬件为主固件为辅为保证主要指令都在单周期内完成:简单指令采用硬逻辑实现稍复杂指令采用固件(微程序技术)实现 5.1.3先行控制(Look-ahead)技术关键是缓冲技术和预处理技术及二者结合1.先行控制方式的结构和工作过程2.缓冲深度(Bufferdepth)的设计3.数据相关及其处理4.控制相关及其处理 1.先行控制方式的结构和工作过程先行控制技术的关键是缓冲技术和预处理技术缓冲技术:平滑两个工作速度不固定的功能部件(一般设4个缓冲栈)预处理技术:将指令预处理成RR型指令,与缓冲技术相结合,为进入运算器的指令准备好全部操作数据 先行控制技术(1)处理机结构(2)指令执行时序(3)先行缓冲栈(4)缓冲深度的设计 (1)处理机结构采用先行控制方式的处理机结构:主存储器存储控制器通用寄存器先行指令缓冲栈先行读数栈后行写数栈先行操作栈指令分析器运算控制器运算器 先行指令缓冲栈结构和工作过程:FIFO方式取指令取指处于最低优先级,以便利用主存的空闲时间取指存储控制器先行程序计数器PC1现行程序计数器PC2控制逻辑指令寄存器IR指令缓冲寄存器堆指令分析器 平滑主存和指令分析器的工作,只要主存空闲,就通过存控取指令实现一次重叠(取指析指合并为析指)T重叠=(1+n)t析指k执指k析指k+1执指k+1析指k+2执指k+2 要解决三个问题:析指执指的相互等待数据相关、控制相关、变址相关指令转移 先行操作栈先行操作栈:指令分析器和指令运算器之间的缓冲,指令分析器预处理各种指令形成统一的RR*型指令送入先行操作栈,所需的操作数存放在寄存器或先行读数栈里,以FIFO方式工作。例如,对于变址型(RX型)和存储器型(RS型)指令,指令分析器计算出主存有效地址后送入先行读数栈,由先行读数栈负责到主存读取操作数,同时用先行读数栈中存放这个操作数的寄存器编号替换原来指令中的主存地址码,从而转换成RR*型指令送入先行操作栈。 先行读数栈先行读数栈:主存和运算器之间的缓冲。由一组缓冲寄存器和有关控制逻辑组成,每一个缓冲寄存器由先行地址缓冲寄存器、先行操作数缓冲寄存器和标志字段组成。指令分析器→操作数地址→先行地址缓冲寄存器→置地址标志→访存读数→先行操作数缓冲寄存器→置数据有效标志,配合形成RR*型指令 后行写数栈后行写数栈:主存和运算器之间的缓冲。由一组缓冲寄存器和有关控制逻辑组成,每一个缓冲寄存器由后行地址缓冲寄存器、后行操作数缓冲寄存器和标志字段组成。指令分析器→写数地址→后行地址缓冲寄存器→置地址标志运算器→运算结果→后行数据缓冲寄存器→置数据有效标志→访存写数→置有关标志 先行控制技术的核心是缓冲技术和预处理技术,以及二者的结合。通过对指令流和数据流的预处理和缓冲,使得指令分析和指令执行部件能够尽量独立工作。 例如,假定1个程序按指令顺序共有i+j+k+n+m+p+q+r条指令,设k=1,p=1。某一时刻,正在ALU中执行第k条指令,而k指令之前的最早的i条指令已全部完成(结果写入内存);已通过运算后的j条指令正在后行数据栈中等待把结果写回主存;而k指令之后的n条指令,已经由指令分析器预处理完成,以RR*指令存放在先行操作栈之中,而且操作数也已经在先行读数栈之中;再往后的m条指令已经生成RR*指令在先行操作栈之中,而操作数尚未取到先行读数栈之中,再往后的第p条指令正在指令分析器之中进行分析和预处理,而p指令之后有q条指令已经从主存预取到先行指令缓冲栈之中,最后的r条指令中的第一条正准备从主存读取到CPU之中。 先行控制和一次重叠不同,前者可能有多条指令在重叠执行,不一定要求两条指令相邻;而后者则必须是相邻的指令之间的重叠。由于采用先行控制和缓冲技术使分析和执行部件能够分别连续不断地运行,避免由于功能部件操作速度差异而出现相互等待状态,使部件空闲状态减至最低 指令执行时序析指与执指部件操作时间可能不一致。较好的办法是采用缓冲技术析指k执指k析指k+1执指k+1析指k+2执指k+2析指k+3执指k+3设置缓冲设置缓冲设置缓冲 设置先行缓冲栈(先行指令栈、先行读数栈、先行操作栈、后行写数栈),使析指执指各自独立地连续执行析指k执指k析指k+1执指k+1析指k+2执指k+2析指k+3执指k+3析指k析指k+1析指k+2析指k+3执指k执指k+1执指k+2执指k+3 处理机连续执行n条指令的时间:T先行=t分析1+∑t执行i≈∑t执行i 通常,先行控制器(含先行指令缓冲栈、先行读数栈、先行操作栈、后行写数栈)与指令分析器一起构成指令控制部件运算器和运算控制器一起组成指令执行部件 2.缓冲深度的设计缓冲深度:缓冲栈中缓冲寄存器的个数设置缓冲深度小:缓冲作用不大缓冲深度大:浪费寄存器,控制复杂设计方法:静态分析和系统模拟 静态分析法是从两个极端情况来进行分析的。第1种极端情况:假定先行指令缓冲栈缓冲深度为Di,且已完全充满。此时在先行指令缓冲栈的输出端,提供给指令分析器的指令较简单,因而流出速度快;而在输入端,由于要访存取指令,指令流入速度慢。设平均每条指令分析的时间为t1,平均取一条指令的时间为t2。在先行指令缓冲栈从完全充满到全部被取空的过程中,若指令分析器一共分析了L1条,所花时间为L1·t1,同时从主存中读取了L1-Di条指令,所花时间为,二者应相等,即:L1·t1=(L1-Di)t2,故得:当取值>L1条时,该先行指令缓冲器将被取空,指令分析器被迫处于等待状态。 第2种极端情情况:假定先行指令缓冲栈为空,且取指速度快,平均时间为t2’,而分析指令由于指令复杂速度较慢,平均时间为t1’,从先行指令缓冲栈完全为空到完全充满指令的过程中,假设从主存取到先行指令缓冲栈中的指令条数为L2条,而指令分析器分析的指令条数为L2-Di,则:(L2-Di)·t1’=L2·t2’,故得:当取值>L2条时,该先行指令缓冲器将被充满,也就失去了缓冲作用。 由于一般程序中,执行时间短的指令要远远多于执行时间长的指令,指令分析器分析指令的速度要大于运算器执行指令的速度。因此常用前一种方法来计算缓冲深度。例如,设t1=1T,t2=4T,L1=9,则若让t2与t1非常接近,即提高主存速度,如采用并行主存,或增大Cache容量或级数,对减少缓冲深度很有效。另外在确定缓冲深度时,还要选择一些典型程序,通过模拟方法选取合理的缓冲深度。 其余3个缓冲栈的深度也可以用类似方法确定。在同一台采用先行控制技术的处理机中,各个缓冲栈的缓冲深度有如下关系:D先行指令≥D先行操作≥D先行读数≥D后行写数如IBM370/165机,D先行指令=4,D先行操作=3,D先行读数=2,D后行写数=1。 3。数据相关及其处理相关:程序相近指令之间的某种影响指令重叠执行的关系,分为数据相关和控制相关两类。数据相关DataCorrelation:指令、操作数、变址偏移量是前面指令的执行结果。(局部相关)控制相关:转移、条件分支、转子、中断引起的相关。(全局相关) 数据相关主要有4种:指令相关主存操作数相关通用寄存器数据相关变址相关解决方法有两种:推后指令分析设置相关专用通路 (1)指令相关如:k:STORER1,k+1;R1→[k+1]k+1:……存在关系:结果地址(k)=指令地址(k+1)第k+1条指令内容由第k条指令决定,顺序取出的第k+1条指令无效指令相关较难解决,根本办法是在程序中不允许修改指令 (2)主存操作数相关如:k:OPA1,A2,A3;A1=(A2)OP(A3)k+1:OPA4,A1,A5;A4=(A1)OP(A5)存在:结果地址(k)=主存操作数地址(k+1)解决:1)让运算结果写入通用寄存器,使主存操作数相关概率小 2)若确实要访问主存:推后处理法①对访存设定优先级:I/O→写结果→读数→取指同一阶段读数推后于写结果②在有先行操作栈的处理机中若操作数相关,则将访存地址与后行写数栈的主存地址相比较,发现相等则读数暂缓析指k执指k析指k+1执指k+1析指k+1(推后)结果写主存单元A1请求读主存单元A1请求读主存单元A1推后执指k+1存控排队器先响应写主存请求 (3)通用寄存器数据相关如:k:OPR1,A2;R1=(R1)OP(A2)k+1:OPR1,R2;R1=(R1)OP(R2)存在(寄存器-寄存器即RR型指令):R1(k)=R1(k+1)即R1数据相关或存在(RS寄存器-存储器型指令)若第k+1条指令由RS型指令转为RR*型指令,且R2的数据来自A2,则又会存在R2数据相关:R1(k)=R2(k+1) 解决办法:①对D型触发器可在同一节拍完成(建立通用寄存器到运算器的直接通路):R→数→运算器→结果→R通用寄存器堆多路选择器多路选择器运算器通用寄存器到运算器的直接通路 ②析指推后一个周期:有时间浪费,实现简单析指k执指k析指k+1执指k+1析指k+1(推后)结果写R1需要读R1读R1推后一个周期执指k+1 ③析指推后一个节拍:控制复杂第1拍第2拍第3拍第4拍结果送入R1执行k(R1)送入B2分析k+1(R2)送入B1数据相关析指推后一个节拍(R1)送入B2分析k+1(R2)送入B1 运算器④设置专用数据通路:需增加硬件通用寄存器堆锁存器锁存器相关专用通路 4.变址相关如:k:OPB,R1;B=(B)OP(R1)k+1:OPR2,B(X+d);R2=(R2)OP((B)+(X)+d)k+2:OPR1,B(X);R1=(R1)OP((B)+(X));R1、R2、B、X都是通用寄存器,;且B是基址寄存器,X是变址寄存器若:B(k)=B(k+1)为一次变址相关(数据相关)若:B(k)=B(k+2)为二次变址相关,原因:析指k执指k析指k+1执指k+1Δt1Δt2析指k+2执指k+2Δt2析指k+1中的指令译码时间若Δt1>Δt2则析指k+2计算出来的有效地址是错误的析指k+2中的指令译码时间结果写入B的稳定时间 解决办法:(1)推后分析一次变址相关,“分析k+1”推后2个周期或1个周期加1个节拍二次变址相关,“分析k+2”推后1个周期或1个节拍(2)设置专用通路通用寄存器堆运算器加法器dB有效地址X变址相关专用通路 数据相关小结对各种数据相关,主要有三种解决方法:硬件或软件办法推后指令分析设置相关专用通路 4。控制相关及处理1.无条件转移2.一般条件转移3.复合条件转移4.转移预测技术5.短循环程序的处理 (1)无条件转移如:k+1:JMPL……L:…无条件转移指令一般在析指阶段完成执行,形成转移地址L直接送先行程序计数器PC1和现行程序计数器PC2中有两种情况:(1)指令L不在先行指令缓冲栈中:重新取指令L(2)指令L在先行指令缓冲栈中:重新分析指令L析指k执指k析指k+1取指L析指L执指L析指L执指L析指L+1执指L+1 在现行指令缓冲栈中取消转移目的指令之前的指令,不影响指令执行部件的工作增设无条件转移指令分析器,转移地址直接送先行程序计数器 (2)一般条件转移转移条件来自上一条指令或更前面的指令如:k-1:…k:JMP(CC)L;若条件CC为真转向Lk+1:……L:… 执行时序(三种情况)析指k执指k析指k+1取指L析指L执指L析指L执指L析指k+2执指k+2析指k+1析指k+1产生转移条件根据转移条件判断转移是否成功(1)转移不成功(2)成功,L在指缓栈中(3)成功,L不在指缓栈中注意:转移指令是“吸收型”指令,即只在析指器中完成不送执指。在先行控制器中,要尽量降低转移成功的概率 (3)复合条件转移复合条件转移有运算功能,根据本条指令运行结果决定是否转移如:k:OPL;先执行OP操作,若结果产生的条件为真转向Lk+1:……L:… 执行时序(三种情况)析指k执指k析指k+1取指L析指L执指L析指L执指L执指k+1根据运算结果决定转移是否成功(1)转移不成功(2)成功,L在指缓栈中(3)成功,L不在指缓栈中注意:复合转移指令不是“吸收型”指令,即必须有执指操作。在先行控制器中,转移成功可能要取消部分或全部预取指令 (4)转移预测技术目的是尽量降低转移成功概率①软件“猜测法”修改编译器,把满足条件循环变成不满足条件循环,尽量降低转移成功的概率,减少对先行控制器的影响②硬件“猜测法”修改硬件,在先行指令缓冲栈入口处增设简单指令分析器,对转移指令存目标地址于PC1,同时保留下一指令的目标地址。若转移成功,对PC1指示的指令操作有效,否则,清除先行指令缓冲栈,重新取指令。③两个先行指令缓冲栈对条件分支结构,可在先行指令缓冲栈中再增加一个先行目标缓冲栈,2方向预取。i←n循环体i←i-1i←ni←n循环体循环体i>0i<=0i<0i←i-1i←i-1YYYNNN将源程序中转移成功循环改为转移不成功循环 (5)加快和提前形成条件码1)加快单条指令内部条件码形成,不等指令执行完就提前得到反映运算结果的条件码。如乘除是正、是负还是零的条件码很容易根据参与运算的操作数的正负或是否是零,可在运算前形成,以便提早判断是否转移成功。2)在一段程序内提前形成条件码,如计数控制的循环程序是否继续循环的判断。可以将循环变量减1指令提前进行,提早产生是否循环的条件码,较早做好所需指令的预取工作。 (6)短循环程序的处理什么是短循环程序1)循环体长度≤先行指令缓冲栈的深度2)循环次数是计数控制3)一般是向后转移短循环程序可特殊处理1)设置专门的开门指令和关门指令碰到短循环开门指令:送循环次数至指令分析器计数器中、置起始地址、置标志等特点:硬件简单,但对程序员不透明2)专门的硬件采用大容量高速一级Cache,避免循环、转移带来的预处理无效时清除预取指令 5.2流水线技术处理机内部的并行性:空间并行性:多操作部件处理机或超标量处理机时间并行性:流水线处理机5.2.1流水线工作原理5.2.2流水线的分类5.2.3流水线的主要性能及其分析 5.2.1流水线工作原理流水线方式:把一个重复的过程分解为若干子过程,每个子过程可以与其他子过程同时进行。有指令流水线、操作部件流水线、访存流水线等1.从重叠到流水线2.时空图3.流水线的特点 1.从重叠到流水线一次重叠:2个独立的功能部件,输出端各有锁存器,如“析指”、“执指”指令分析器分析k+1指令执行部件执行k锁存器锁存器入出Δt1Δt2 多级重叠:子过程分解为更小的子过程一般使每个部件的执行时间相等,虽然执行一次浮点加法仍需4Δt,但4个部件同时工作,则每隔一个Δt就能完成一次浮点加法,速度提高3倍取指令入出译码形成操作数地址取操作数执行保存结果求阶差入出尾数加规格化对阶一种指令流水线浮点加法器流水线 时间2.时空图描述流水线工作横坐标:时间段纵坐标:各个功能段(子过程)空间析指k析指k+1析指k+2析指k+3执指k执指k+1执指k+2执指k+3指令分析器指令执行部件0t1t2t3t4t5 空间求阶差1求阶差对阶时间0t1t2t3t4t5t6t7尾数加求阶差2求阶差3求阶差4对阶1对阶2对阶3对阶4尾数加1尾数加2尾数加3尾数加4规格化规格化1规格化2规格化3规格化4装入时间排空时间浮点加法器流水线的时空图 3.流水线的特点(1)处理的必须是连续任务,必须尽可能克服程序本身带来的数据相关、控制相关等问题。(2)依靠多个功能部件并行工作,需分解子过程(3)每一功能部件后面要有一个缓冲器(4)各段时间尽量相等(5)要有“装入时间”和“排空时间”在流水线设计时,应注意流水线的上述特点,以充分发挥流水线的高效率。 5.2.2流水线的分类线性流水线(linearpipelining):段串,无数据回流,通常只完成一种固定的功能非线性流水线(nonlinearpipelining):功能段之间串行处有反馈回路,常用于递归调用或构成多功能流水线,对应有多张预约表,记录反馈回路的使用次数1.线性流水线和非线性流水线 一种简单的非线性流水线S1入出S3S2时间功能段××××4321S1S2S3非线性流水线的预约表 2.流水线的级别功能部件级流水线:运行操作流水线(arithmeticpipelining)处理机级流水线:指令流水线(instructionpipelining)处理机间级流水线:宏流水线(macropiprlining)先行指令缓冲栈入出先行指令分析器先行读数栈先行操作栈指令执行部件后行写数栈功能:取指令指令译码,形成操作数地址取操作数码,形成RR*指令执行算术逻辑运算向存储器写结果先行控制方式中的指令流水线 3.单功能和多功能流水线单功能流水线unifunctionpipelining:单一固定功能多功能流水线multifunctionpipelining:各段连结不同,实现不同功能 输入求阶差对阶尾数加规格化尾数乘累加输出g=f(A,B)AB输入求阶差对阶尾数加规格化尾数乘累加输出定点乘AB多功能流水线(a)功能段的互连(b)定点乘法 多功能流水线(c)浮点加法(d)浮点点积输入求阶差对阶尾数加规格化尾数乘累加输出浮点加AB输入求阶差对阶尾数加规格化尾数乘累加输出浮点点积AB 4.静态流水线与动态流水线多功能流水线可分为静态流水线(staticpipelining)与动态流水线(dynamicpipelining)静态流水线(staticpipeline)是指在一段时间内,流水线各功能段只能按照一种固定方式连接,实现一种特定的功能。动态流水线(dynamicpipeline)是指在一段时间内,多功能流水线各功能段可以按照多种不同的方式连接,同时执行多种功能。动态流水线的效率要高于静态,但控制肯定比静态流水线复杂。 (1)根据控制方式分成顺序流水线和乱序流水线。顺序流水线输出端流出的任务与输入端流入的任务顺序一致。而乱序流水线输出端流出任务的顺序跟输入端可以不一样。例如,在不发生数据相关的情况下,无需访存读数的指令可能优先于需要等待访存读数的指令执行,这样的任务可能较早在输出端流出。(2)在线性流水线中,根据控制方式还可以分成同步流水线和异步流水线。本章介绍的都是同步流水线,而一般的宏流水线多采用异步方式。(3)按照数据表示方式,分为标量流水线与向量流水线5.其它分类 5.2.3流水线的主要性能及分析1。线性流水线的性能2。非线性流水线的调度 1。线性流水线的性能分析主要指标:吞吐率、加速比和效率(1)吞吐率(throughputrate,TP)单位时间内流水线所完成的任务数量或输出的结果基本公式:式中,n为任务数,Tk为处理完成n个任务所用的时间 1)各段执行时间相等,任务连续。即1条k段线性流水线能在k+n-1个时钟周期内完成n个任务Tk=(k+n-1)Δt分析:a.从流水线的输出端看,用k个Δt输出第1个任务,余n-1个Δt,每个Δt输出1个任务,共费时(k+n-1)Δtb.从流水线的输入端看,用n个Δt输入n个任务,另外还用k-1个Δt排空流水线,共费时(k+n-1)Δt空间S1S2S31时间23412341234S41234kΔt各段执行时间相等的流水线时空图……n-1n……n-1n……n-1n……n-1n(装入时间)(n-1)Δt(输出n-1个任务)Tk=(k+n-1)Δt各段执行时间相等的流水线时空图空间S1S2S31时间23412341234S41234……n-1n……n-1n……n-1n……n-1n(k-1)Δt(排空时间)nΔt(输入n个任务)Tk=(k+n-1)Δt 各段执行时间相等,连续n个任务的一条k段线性流水线的实际吞吐率为:最大吞吐率为:即可见,只有当n>>k时,才有TP≈TPmax 2)各段执行时间不相等时的实际吞吐率此时流水线的最大吞吐率: S1入出S3S4S2Δt1=ΔtΔt2=ΔtΔt3=3ΔtΔt4=Δt瓶颈!3)流水线瓶颈及其消除:流水线中执行时间最长的功能段决定例: 解决办法:①“瓶颈”部分再细分S1入出S2S4S3aΔtΔtΔtΔtΔtΔtS3bS3cS3(3Δt)瓶颈功能段再次细分 1471014710Ss3bs3as2s1t1t12t17Ts3cs468111235911122359268147103591112268147103591112268147103591112268147103591112268 ②多个瓶颈功能段并行工作,但控制逻辑复杂S1入出S2S4ΔtΔtΔt多个瓶颈功能段并行工作S3aS3bS3cΔt3=3Δt 此方法运行效果与过程细化方法效果相同。147101471014710Ss3bs3as2s1t1t12t17Ts3cs4681112359111223592682581136912147103591112268 (2)加速比speedupratio流水线的加速比:完成一批任务,不用流水线所用时间与使用流水线所用时间之比基本公式:若k段流水线完成n个连续任务且各段执行时间相等,则T0=k·n·Δt,Tk=(k+n-1)·Δt最大加速比为: 讨论:1)当n>>k时,Smax≈k2)n与k的关系。段数多时,要求连续输入的任务数n很多,才能充分发挥效率。实际上段数提高受到限制:①相关限制②控制复杂 3)各段执行时间不相等时的实际加速比 (3)效率efficiency流水线效率:设备利用率。定义为n个任务占用的时空区与k个功能段总的时空区之比n个任务占用的时空区:顺序执行n个任务的总的时间T0k个功能段总的时空区:kTk任务1任务2任务3……任务nT0空间S1S2S31时间23412341234S41234……n-1n……n-1n……n-1n……n-1nTkk个 基本公式:流水线效率是它的实际加速比S与它的最大加速比k之比讨论:1)若n个任务连续,各功能段时间相等,则:2)当n>>k时,Emax≈1 3)各段执行时间不相等时的实际效率 几个基本公式:吞吐率TP、加速比S和效率E的定义TP=n/TkS=T0/TkE=T0/(k·Tk)TP、S和E之间的相互关系:E=S/kS=k·ETP=n/T0·S=n·k·E/T0 若k段流水线完成n个连续任务且各段执行时间相等,则T0=k·n·Δt,Tk=(k+n-1)·ΔtTP=n/((k+n-1)Δt)=E/ΔtS=k·n/(k+n-1)E=n/(k+n-1)=TP·Δt当n>>k时,Emax≈1Smax≈kTPmax≈1/Δt (4)流水线性能分析举例例5.1单功能、线性流水线,输入任务是不连续的情况,计算流水线的吞吐率、加速比和效率。一条4段浮点加法器流水线计算8个浮点数之和:Z=A+B+C+D+E+F+G+H由于存在数据相关,做一个简单变换:Z=[(A+B)+(C+D)]+[(E+F)+(G+H)] 4段浮点加法器流水线计算8个浮点数之和的流水线时空图空间求阶差对阶尾数加1时间2341234规格化123456565656加数加数结果ACEGA+BE+FA+B+C+D77712347BDFHC+DG+HE+F+G+HZ=A+B+C+D+E+F+G+H 吞吐率:TP=n/Tk=7/(15Δt)=0.47/Δt加速比:S=T0/Tk=4×7Δt/(15Δt)=1.87效率:E=T0/(k×Tk)=4×7Δt/(4×15Δt)=0.47 例5.2多功能、线性流水线,输入任务是不连续的情况,计算流水线的吞吐率、加速比和效率。应用多功能静态流水线计算向量的点积和:Z=AB+CD+EF+GH分析:应尽量减少数据相关性,充分发挥流水线的作用,计算顺序应该是:先作4个乘法AB、CD、EF、GH,再作两个加法AB+CD、EF+GH,最后求总的结果Z。 S1输入S2求阶差S3对阶S4尾数加S5规格化S6尾数乘S7累加S8输出浮点点积AB浮点点积运算要用到8个功能段S1输入S2求阶差S3对阶S4尾数加S5规格化尾数乘累加S8输出浮点加AB浮点加法运算要用到6个功能段 76543217654321765432176543217654321432143217654321ACEGABEFAB+CDBDFHCDGHEF+GHZ=AB+CD+EF+GH时间空间7段浮点运算流水线计算向量的点积和:Z=AB+CD+EF+GH的流水线时空图输入阶差对阶尾加规化尾乘累加输出 从流水线的时空图中看到,用23个时钟周期完成了7个运算。当每一功能段的延迟时间都为Δt时,有Tk=23Δt,n=7。流水线的吞吐率TP为:TP=n/Tk=7/(23Δt)≈0.304/Δt如果采用顺序方式,完成一次加法要用6Δt,完成一次乘法要用8Δt,全部运算要用:T0=4×6Δt+3×8Δt=48Δt则加速比S=T0/Tk=48Δt/(23Δt)≈2.087整个流水线共有8段,流水线效率为:E=T0/(k×Tk)=48Δt/(8×23Δt)≈0.261问题讨论:为何本题的流水线效率较低? (5)流水线最佳段数的选择设计中要综合各方面因素,根据最佳性价比考虑设:非流水线完成某一任务所需时间为t,具有同等速度的k段流水线完成同一任务所需时间为:t/k+d(d为锁存器时间)最大吞吐率P=n/Tk=1/(t/k+d)流水线总价格约为:C=a+bk A.G.Larson定义性价比为对k求极限值,得:流水线段数kPCR峰值最佳值k0一般k=2~10,k>=8的为超流水线 2。非线性流水线的调度(略)在线性流水线中,每一个任务流经每个功能段一次且只有一次,所以,线性流水线的调度非常简单,只需控制输入的任务按瓶颈段执行时间为间隔顺序流入任务。在非线性流水线中,由于一个任务通过反馈回路可能要多次使用同一个功能段,从而发生与后续任务争用同一个功能段的情况,导致功能部件冲突,引起流水线阻塞。为此,应进行非线性流水线优化调度。 5.3流水线的相关性分析及处理重叠方式引起的数据相关和控制相关,同样会出现在流水线中,其相关情况更为复杂。按照对程序执行过程可能造成的影响来分,相关分为局部相关和全局相关两大类。通常,数据相关仅涉及到相邻的几条指令,影响面小,又称为局部相关(Localcorrelation),控制相关可能影响整个程序的执行方向,又称为全局相关(Globalcorrelation)。5.3.1局部相关及处理5.3.2全局相关及处理 5.3.1局部相关及处理在指令流水线中,局部相关主要有三种,“先写后读”相关(WR或RAW),“后读先写”相关(RW或WAR)和“写-写”相关(WW或WAW)。这些相关问题的出现主要与流水线的流动顺序的安排与控制有关。 1。顺序流动的“先写后读”相关及处理顺序流动是指任务从流水线流出的顺序与它们流入流水线的次序一致。指令顺序:h,,h和j“先写后读”顺序流动:j推后等待h先写异步流动(乱序流动):不相关的i,k,l,m可以先执行。但可能带来顺序流动不会发生的其它相关,即“后读先写”或“写-写”相关。比如,若顺序的指令i、k都有写操作,且是写入同一目的地址,由于指令i执行时间长或有“先写后读”相关,可能k先于i到达写段,而造成目的地址单元的最后内容错为指令i写入的内容,这就是“写-写”相关。入出134(异步流动)(顺序流动)(判出j,h相关)56图5-40顺序流动和异步流动nkk段号:读段写段278指令地址:jjjm空il空hk空iihh 解决“先写后读”相关的方法除了使用延时推后处理、乱序流动方式外,还可以建立相关专用通路,即在流水线的读段和写段之间增设一条专用通路,一旦判处发生这种相关,就让通路连通,可以免去对相关单元的写入和重新读出的两个子过程时间。例如,当指令h要写入数据时,指令j就直接通过专用通路读取数据,从而缩短了指令j暂停的时间。 2。动态调度算法处理局部相关分布式控制处理方法,设置公共数据总线,以简化各种相关的判别和实现相关专用通路的连接,并采用乱序方式来提高流水线的性能,通过分散控制的办法来实现动态调度,处理局部相关。CDC计分牌法,设置一个称为计分牌的集中控制部件,保存有与各个操作部件相联系的寄存器中的数据装载情况。当一个操作部件所要求的数据都已经装载完成之后,计分牌就允许该部件开始运行。操作完毕后,计分牌则释放有关资源。这样,通过计分牌集中控制,可消除或减少某些数据相关,提高流水线的性能。 5.3.2全局相关及处理全局相关主要由条件转移和程序中断引起。一些常用的处理方法:1猜测法猜测的关键是要让猜对的机率尽量提高。转移概率可以静态地根据转移指令类型或程序执行期间转移的历史状态来统计得出。如果采用动态策略,由编译程序根据执行过程中转移的历史记录来动态预测未来的转移趋向,可使猜测准确度提高到90%。 2动态转移预测技术动态预测技术能根据近期转移是否成功的历史记录来预测下一次转移方向,它能随程序执行过程动态改变转移的预测方向。该技术的关键是记录好转移历史信息和如何根据记录信息预测转移方向。三类动态转移预测技术。(1)在指令Cache中专门设立一个字段,称为“转移历史表”。1-bit预测法,转移预测逻辑一般预测与上次相同的方向,这对循环程序非常有效。2-bit预测法,仅当预测错误两次时才改变预测方向。实际应用中,每个入口采用2-bit预测机制获得了较高的准确率。例如使用有4096个入口的转移预测缓存会获得82%~99%的准确率。 (2)在Cache中设置转移目标地址缓冲栈,保存最近执行的若干条转移指令的地址、转移历史和转移目标地址。(3)在Cache中设置转移目标指令缓冲栈,除了保存最近执行的若干条转移指令的地址、转移历史外,还要保存转移目标地址及之后的若干条指令 3中断处理在流水线中同时有多条指令被执行,每一条指令在流水地改变现场。因此当一个中断源的中断请求被相应时,该选流水线中的哪一条未执行完的指令作为断点指令呢?有两种处理方法。(1)不精确断点(Impreciseinterrupt)法。其原理是,凡是已经进入流水线的指令序列的指令都执行完成,断点就是该指令序列中最后进入流水线的那条指令的地址。(2)精确断点(Preciseinterrupt)法。其原理是,对于在流水线中同时执行的多条指令,由哪一条指令的程序性错误或故障发出中断请求,该指令的地址就是断点。 5.1.3节介绍的延时转移技术、指令取消技术、静态预测技术、动态预测技术、加快和提前形成条件码、短循环程序的处理等方法,都能缓解或进行全局相关的处理 5.4向量的流水处理与向量流水处理机绝大多数向量处理机都采用流水线结构,而且往往采用多条流水线。1向量处理方式2向量流水处理机3提高向量流水处理机性能的常用技术 1。向量处理方式向量:一组N个互相独立的数向量的长度:向量所包含的分量的数目向量处理:对一组数进行相同的运算由于向量内部各分量很少相关,且一般又是执行同一操作,容易发挥流水线的效能。 向量处理方式以D=A*(B+C)为例设有向量A,B,C,Da1a2A=a3..anb1b2B=b3..bnc1c2C=c3..cnd1d2D=d3..dn向量A,B,C,D (1)水平(横向)处理方式:水平处理方式也就是逐个求d[i]的方式,为此,先计算:d[1]=a[1]*(b[1]+c[1]);再计算:d[2]=a[2]*(b[2]+c[2]);……;最后计算:d[n]=a[n]*(b[n]+c[n])。一般的计算机就是采用这种方式组成循环程序进行处理的。特点:逐个分量处理,即标量处理方式a1a2a3..an向量水平横向处理方式b1b2b3..bnc1c2c3..cnd1d2d3..dn=*()=+a1*(b1+c1)a2*(b2+c2)a3*(b3+c3)..an*(bn+cn) 在每次循环中,至少要用到如下操作:ei=bi+cidi=ei*ai上面程序计算共需N次循环,其中N-1次分支成功,在每次循环中有一次数据相关。如果用静态流水线,则要进行2次乘和加的功能转换,所以共出现N次数据相关和2N次功能切换。因此,这种水平处理方式不适合于以向量为整体进行流水处理。 (2)纵向处理方式垂直处理方式是将整个向量按相同的运算处理完之后,再去执行别的运算。对于上式,则有向量指令:E=B+CD=E*A可以看出,这种处理方式仅用了两条向量指令,且处理过程中没有出现分支指令,每条向量指令内无相关,两条向量指令间仅有1次数据相关。如果仍用静态多功能流水线,也只需1次功能切换,所以这种处理方式适合于对向量进行流水处理。a1a2a3..an向量垂直纵向处理方式b1b2b3..bnc1c2c3..cnd1d2d3..dn=其中E=)+*e1e2e3..ene1e2e3..en=( (3)纵横向处理方式分组处理方式是把长度为N的向量,分成若干组,每组长度为n,组内按纵向方式处理,依次处理各组。为了减少循环的影响,每组内各用两条向量指令,各组内仅有一次向量指令的数据相关。如果也用静态多功能流水线,则各组需2次功能切换,比水平处理方式要少。所以,这种处理方式也适合于对向量进行流水处理,而且对向量长度N的大小亦不限制。但是,每一组的长度最大不能超过n。因此,可设置长度为n的向量寄存器,使得每组向量运算的源向量和目的向量都在向量寄存器中,运算流水线的输入、输出端都与向量寄存器相联,从而构成所谓寄存器-寄存器型操作的运算流水线。 即:长度为N的向量分成长度为n的若干组,组内纵向处理,组间横向处理,降低了访存信息流量因此,可将向量数据表示和流水线结合构成向量流水处理机 5.4.2向量流水处理机基于寄存器-寄存器型操作的向量处理机的指令系统一般应包含有向量型和标量型两类指令。向量型指令一般有如下几种类型:(1)向量-向量指令①一元向量指令:OPVi→Vj;即:向量Vi运算得向量Vj,如:V2=SIN(V1)。②二元向量指令:ViOPVj→Vk;即:向量Vi与向量Vj运算得向量Vk,如:V3=V1∧V2。1。向量处理机的指令系统 ③屏蔽指令。有一个专用的屏蔽向量寄存器Vm,专用于存放屏蔽向量,该向量的每一个元素各只有1位。屏蔽指令利用屏蔽向量把一个向量Vi压缩成一个较短的向量Vj,以节省向量运算的开销:ViOPVm→Vj;即:屏蔽指令顺序测试向量Vi中各元素是否是零元素,若是零元素,则在Vm中的相应位置“0”,若是非零元素,则在Vm中的相应位置“1”,并将非零元素Vi中的变址值存放到向量Vj中。 (2)向量-标量指令①一元向量规约指令:OPVi→S;即:向量V运算得标量S,如求向量中各元素的最大值、最小值,或求向量中所有元素的累加值等。②二元向量规约指令:ViOPVj→S;即:向量Vi与向量Vj运算得标量S,如求两个向量的点积。③向量定标指令:SOPVi→Vj;即:向量Vi与标量S运算得向量Vj,如:V2=S*V1。 (3)向量-存储器指令①取向量指令:M→Vi;即:从存储器读取一个向量数据送向量寄存器。②存向量指令:Vi→M;即:将向量寄存器数据写入存储器。 这类指令还有收集指令和散播指令,用来完成一个稀疏向量在存储器和向量寄存器之间的传送。所谓稀疏向量,是指含有大量的零元素的向量。在运算过程中需要把存放在存储器中的稀疏向量的零元素压缩后再存放在向量寄存器中,以节省对零元素运算的开销。一般用两个向量寄存器存放压缩后的稀疏向量,设V1存放稀疏向量的所有非零元素,V0存放稀疏向量的所有非零元素在存储器中相应的变址值。③收集指令:M→V1OPV0;即:从存储器读取一个稀疏向量,其非零元素送向量寄存器V1,各非零元素的变址值送向量寄存器V0。④散播指令:V1OPV0→M;即:把向量寄存器V1中的非零元素按向量寄存器V0中的变址值写入存储器中,将V1中的向量展开成稀疏向量。 2。向量流水处理机的结构流水线运算器是向量计算机的核心部件设计的主要问题:能满足运算器带宽要求的存储器系统,提供连续的数据流,接受连续的运算结果多端口存储器系统流水结构加法器ABC=A+B例:一种实现向量加的流水结构的加法器要求存储系统在一个周期内读出两个操作数和写回一个运算结果 Cray1:一种基于分级存储系统的系统结构主存储器8M字节64模块8个向量寄存器(V)64操作数寄存器64个缓冲寄存器(T)8个标量寄存器(S)256个指令缓冲寄存器(T)8个地址寄存器(A)指令寄存器程序计数器12个流水结构运算部件64个缓冲寄存器(T) CRAY1为向量运算提供了6个流水线单功能部件,即整数加(流过时间为3拍,下同)、逻辑运算(2拍)、移位(4拍)、浮点加(6拍)、浮点乘(7拍)、浮点迭代求倒数(14拍)。1拍为12.5ns。任何一条流水线,只要满负荷流动,都可以每拍流出一个结果分量。每个向量寄存器组Vi可存放长度不超过64的一个向量,这样共可存放8个向量。对于长度超过64的长向量,采用分组纵横处理方式,由软件进行分段循环处理,分段中余下不足64个分量的段作为向量循环的首次循环,最先处理。CRAY1有标量类和向量类指令共128条,其中有4种向量指令,即VkOPVj→Vi、SjOPVk→Vi、M→Vi、Vi→M。 5.4.3提高向量流水处理机性能的常用技术1。多个流水线功能部件并行和链接2。其它提高向量处理机性能的常用技术 流水线的链接四种情况:(1)不相关的指令(无冲突,全并行)如:V0←V1+V2V3←V4*V5(2)功能部件预定(后续指令须等待功能部件空闲)如:V0←V1+V2V3←V4+V5 (3)操作数寄存器预定(后续指令须等待操作数寄存器空闲)如:V0←V1+V2V3←V1*V5(4)功能部件和操作数寄存器预定(后续指令须等待操作数寄存器和功能部件空闲)如:V0←V1+V2V3←V1+V5 流水线的链接:结果寄存器可能成为后继指令的操作数寄存器,这种技术称为两条流水线的链接(Chaining)例6.1以下4条指令序列链接在一起执行一种复合功能。V0←MV2←V0+V1V3←V2<>k时,Emax≈1Smax≈kTPmax≈1/Δt流水线存在最佳段数值,应根据最佳性价比来选择。 非线性流水线的工作情况,可用预约表来表示。非线性流水线的优化调度可以通过构造相应的状态有向图来寻找最优调度策略,以确定控制任务流入的时间间隔,使得不发生任务争用功能段的冲突,又能使流水线有较高的吞吐率和效率。 3.流水线中存在局部相关和全局相关两大类。局部相关主要有三种,“先写后读”相关(WR或RAW),“后读先写”相关(RW或WAR)和“写-写”相关(WW或WAW)。解决局部相关的方法有延时推后处理、乱序流动方式及建立相关专用通路。此外,还可利用分布式控制处理方法、CDC计分牌法等动态调度算法处理局部相关。全局相关主要由条件转移和程序中断引起,常用的处理方法有猜测法、动态转移预测技术、以及中断发生时应用精确断点法确定断点处指令。还有加快和提前形成条件码、短循环程序的处理等方法。 4.向量处理机一般采用流水线结构,垂直处理方式和分组处理方式适合于具有向量数据表示、向量指令系统和流水线结构的向量流水计算机。基于寄存器-寄存器型操作的向量处理机的指令系统一般应包含有向量型和标量型两类指令。向量型指令一般有向量-向量指令、向量-标量指令和向量-存储器指令等几种类型。提高向量流水处理机性能的常用技术有多个流水线功能部件并行和链接、条件语句和稀疏矩阵的加速处理以及向量递归技术。 第5章作业P164名词解释指令流水线数据相关控制相关流水线吞吐率流水线效率流水线加速比向量处理机流水线的链接5.25.55.85.115.135.175.20 谢谢学习第5章 诫子书夫/君子之行,静/以修身,俭/以养德;非淡泊/无以明志,非宁静/无以致远。夫/学/须静也,才/须学也。非学/无以广才,非志/无以成学。淫慢/则不能/励精,险躁/则不能/治性。年/与时驰,意/与日去,遂/成枯落,多/不接世,悲守/穷庐,将/复何及!放声朗读淫:读yin淫慢:解释为过度怠惰。 再读课文——通读课文,感知文意文言文翻译的方法1.“留”:就是保留。凡是古今意义相同的词,以及古代的人名、地名、物名、官名、国号、年号、度量衡单位等,翻译时可保留不变。2.“删”,就是删除。删掉无须译出的文言虚词。3.“补”,就是增补。(1)变单音词为双音词(2)补出省略句中的省略成分4.“换”,就是替换。用现代词汇替换古代词汇。5.“调”就是调整。把古汉语倒装句调整为现代汉语句式。6.“变”,就是变通。在忠实于原文的基础上,活译有关文字。文言文翻译的要求文言文翻译要做到“信、达、雅”三个字。“信”是指译文要准确无误,就是要使译文忠于原文,如实地、恰当地运用现代汉语把原文翻译出来。“达”是指译文要通顺畅达,就是要使译文符合现代汉语的语法及用语习惯,字通句顺,没有语病。“雅”就是指译文要优美自然,就是要使译文生动、形象,完美地表达原文的写作风格。 君子的品德操守,以宁静来修养身心,以节俭来培养品德。不能淡泊自守就无法明确志向,不能宁静专一就无法达到远大目标。学习必须静心专一,而才能来自于学习。不学习就无法增长才干,没有志向就无法学有所成。放纵懈怠就不能振奋精神,轻薄浮躁就不能修养性情。年纪随时光而疾速逝去,意志随岁月而消失,最终凋零衰残,大多对社会没有什么贡献,只能悲哀地坐守着那穷困的居舍,那时再悔恨又怎么来得及!全诗译文 诸葛亮在《诫子书》中告诫儿子,“静以修身,俭以养德”,淡泊明志,宁静致远,学以广才,励精治性,珍惜光阴,务求“接世”。诸葛瞻多才多艺,擅长书画,十七岁时即被后主刘禅招为驸马,是备受蜀国人民爱戴的英雄。30年后,邓艾率魏军攻蜀,兵至绵竹,诸葛瞻拒不接受邓艾的高官诱降,英勇战死,时年37岁。其子诸葛尚一同战死,时年16岁。一家三代,鞠躬尽瘁,死而后已,深为后人传诵。《诫子书》中关于道德、修养、教育方法的至理名言,影响着近二千年来诸葛家后裔的持续发展。 诸葛亮是三国时期著名的政治家,军事家,他躬耕陇亩时“苟全性命于乱世,不求闻达于诸侯”,但注意结交名士,研读古籍,留心时政,常以管仲、乐毅自励。被刘备三顾茅庐请做军师之后就提出著名的《隆中对》,策动孙、刘联盟,大破曹操,奠定三国鼎立的基础。蜀汉建立,拜为丞相。为完成统一中原,兴复汉室的大业,他效忠先主,辅佐后主,外联东吴,内修政理,南征平叛,北抗强魏,先后五次北伐魏国,终因积劳成疾而逝世,享年54岁,临终遗嘱“掘棺材之地,穿平常服饰,不配器物”,留给子孙的财产只有桑800株,薄田15公顷。他以自身言行感染激励自己的子孙,“善政嘉事”,“美声溢誉”. 三读——深读课文,感悟深情本文字字珠玑,掷地有声,有谆谆告诫之语,更溢满殷殷期盼之情。你能读出诸葛亮从哪几方面来告诫儿子吗?他又对儿子有什么期盼呢? 作业超市1、背诵全文,积累警句。2、做学案对点及时练。'