版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、微处理器结构MICRO-PROCESSOR ARCHITECTURE 本节内容课程简介计算机和处理器的历史与发展趋势计算机与处理器中的基本概念课程简介课程简介课程简介目的掌握处理器设计与实现的基本知识学习计算机工程方法特点深入、具体MIPS与微电子专业紧密结合基础知识要求计算机原理数字电路C语言参考书:John L. Hennessy, David A. Patterson,计算机组织与设计硬件/软件接口(第二版),机械工业出版社,1999 计算机发展历史最早的计算机是 ?公元前500年,中国,算盘计算机发展历史1833年,英国数学家Charles Babbage设计制造的“analytica
2、l engine”著名诗人拜仑的女儿Ada Lovelace曾受雇为这台机器编写软件,她应该是世界上最早的程序员。计算机发展历史计算机发展历史1946年, University of Pennsylvania 的Presper Eckert与John Mauchly等人构建的ENIAC是被广泛接受的第一台通用电子计算机Size: 80 feet long,8.5 feet high18,000 vacuum tubes5000 additions/sec.conditional Jump and be programmable, distinguished it from earlier on
3、es.计算机发展历史Computer Generation:1: 1950 59 Vacuum Tubes2: 1960 68 Discrete transistor3: 1969 77 ICs4: 1978 ? LSI and VLSI5: ?二十世纪信息技术领域最重要的两项发明数字式电子计算机 (1946.2.14). 计算机开始补充,甚至替代所有其它形式的信息处理工具晶体管 (1946) 和 集成电路 (1957).Moore定律: 按每个芯片上的晶体管数量统计,集成电路每年的改进速度为 60% 。Moore定律10 G1 G100 M10 M1 M100 K10 K1 K0.1 K19
4、7019801990200020101965,Gordon Moore 预测半导体芯片上的晶体管数目每壹年半翻壹番微处理器的发展20世纪70年代,集成电路工业发展到了LSI(Large scaled Integrated circuit)阶段,门密度达到1000门/片,已有可能利用单片IC实现简单的CPU,即微处理器。1971年,Intel公司开始出售它的第一种微处理器芯片4004。4-bit processor, 2312 transistors, 0.4MHz, 10 micron PMOS, 11mm2 chip 微处理器的发展Pentium IV微处理器的发展SUN UltraSPAR
5、C T2 8核, 每核8线程巴塞罗那MWC 2011大展NVIDIA Tegra 3: 四核心(ARM Cortex-A9)巴塞罗那MWC 2011大展高通:“代号Krait(环蛇)的下一代Snapdragon移动处理器微架构,即Scorpion核心的继任者。使用28nm工艺制造,单个核心频率最高可达2.5GHz,相比现有ARM CPU性能可提升150%,同时功耗还能下降65%。”处理器每三年速度翻两番;在过去15年,性能改进1000倍存储器DRAM容量:三年速度翻两番;在过去15年,容量增大1000倍每位成本:每年改进25%磁盘容量: 每1.5年翻一番每位成本:每年改进60%在过去十年,容量
6、增大120倍最新的台式 PC 配置处理器频率:2.x GigaHertz存储器容量:1.0 GigaBytes磁盘容量: 100 GigaBytes(0.1 TeraBytes)时髦的计量单位: Mega = Giga, Giga = Tera计算机技术日新月异微处理器的发展最失败预言之一:“我觉得全球市场大概只需要5台计算机。” -IBM总裁托马斯沃森(ThomasWatson);时间:1943年 新的浪潮:微处理器将无处不在通用 高性能 Pentiums, Alphas, SPARC 用于支持通用软件 重量级操作系统 - UNIX, NT 工作站、微机,以及大规模并行系统嵌入式微处理器和处
7、理器核 ARM, 486SX, Hitachi SH7000, NEC V800 特定应用程序 轻量级(通常要求实时)操作系统 支持DSP移动电话、消费类电子 (例如,STB、CD players)微控制器非常注重成本 字长小 通常为8 位 是目前使用数量最多的一类微处理器 汽车、空调、高级微波炉, .数量增加成本增加微处理器分类嵌入式微处理器1 .需求量大 以数量來看, x86 的 CPU,包含 Intel 及 AMD 公司所生产的,加起来也达不到其他种类 CPU 总消耗量的 0.1 %,其中应用数量最大的是在嵌入式系統。2. 应用范围广3. 知识产权障碍小 我国进入处理器领域的切入点!Sy
8、stem On a Chip Logic(CPU,DSP) Memory (SRAM, ROM, EPROM, FeRAM, MRAM, DRAM) Analog or Mixed Signal (DAC,ADC) MEMS Optoelectronic Function SoC哈工大微电子中心研制的Lilac哈工大微电子中心研制的Lilac相关的概念计算机体系结构:计算机体系结构描述从用户角度看到的计算机。包括指令集、可见寄存器、存储器管理表结构和异常处理模式几个方面。例如:英特尔IA32体系结构、SPARC V8体系结构相关的概念计算机组织:计算机组织描述用户不可见的处理器内部实现方式。包
9、括流水线结构、Cache(高速缓存)、TLB(转换后备缓冲)等。例如:英特尔386、486、奔腾、PII、PIII、PIV都是IA32体系结构,但其内部组织差异却十分大。What is an “ISA”?. the attributes of a system as seen by the programmer, i.e., the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls, the logic design, an
10、d the physical implementation.Amdahl, Blaaw, and Brooks, 1964. the portion of the machine visible to the programmer or compiler writer. - Hennessey and Patterson, 1990相关的概念存储程序计算机:计算机的指令和数据存放在同一个存储系统中,必要时可以把指令作为数据来处理。 存储程序计算机的概念源于1940年普林斯顿先进科学研究所,在Baby计算机中得到实现。相关的概念处理器:处理器是一个执行存储器中指令的有限状态机。系统的状态是由存储
11、器中的数据和某些寄存器中的数据定义的。每条指令规定了状态变化的特定方式,并指定了下一条执行的是哪一条指令。 存储程序计算机与处理器计算机的5大组成部分研究微处理器技术不变的主题:速度(Performance)面积(Cost)功耗(Power)制造(Manufacture) Frequency doubles each generation微处理器频率的发展趋势提高速度:流水技术(Pipeline)提高速度:并行SuperScaleOut-of-OrderRegister RenameVLIWCompiler Multi-processorMulti-threaded Power Density
12、 will Increase40048008808080858086286386486PentiumP611010010001000019701980199020002010Power Density (W/cm2)Power densities too high to keep junctions at low tempsSource: Borkar, De IntelHot PlateSunsSurfaceRocketNozzleNuclearReactorchips might become hotCooking-aware computingBoiling water will com
13、e soon功耗和成本2W4W6W8WPlastic PackageCeramics Package,+ $1+Heat sinking, + $1+Airflow, + $10+Cooling, + $100处理器的设计目标高性能(High-Performance)高能效(Power-Efficiency)可缩放性(Scalability)可通过简单核的简单叠加实现性能扩展复杂度有效性(Complexity-Efficiency)可适应性(Adaptability)能满足不同特性应用的需要微处理器的性能与成本本课内容性能的定义与评测集成电路的成本软件的表示层次为什么要评估性能对于用户,可以对
14、比不同的产品,从而选择适合自己的产品对于设计者,可以评价不同的设计、实现方案的优劣,找出影响性能的主要因素,从而改进设计对于销售计算机的商家性能的定义性能的定义计算机性能的定义响应时间(Response Time): 从开始任务到任务结束所需要的时间吞吐率(Throughput): 给定时间内所完成的任务量响应时间与吞吐率的关系评估性能 衡量计算机性能(速度)最确切、最可信的标准是时间!我们这里所关心的是CPU时间,即完成特定任务所需的CPU执行时间。时钟周期对于给定的程序:执行时间 = 所需的时钟周期数 x 时钟周期 = 所需的时钟周期数 / 时钟频率设计者经常面临着时钟周期数多少与时钟周期
15、长短的折衷问题。对于指定的处理器体系结构,采用不同的组织,通常减少时钟周期数的方案会导致时钟周期加长,反之亦然。时钟周期对于给定的程序:时钟周期数 = 所需的指令数 x 平均每条指令的时钟周 期数 = 不同类型的指令执行所需的时钟周期数不同,例如乘法指令比加法指令所需的周期数多,浮点运算指令比整数运算指令所需的周期数多。平均每条指令的时钟周数,Cycles per instruction简称CPI。CPU执行时间对于给定的程序:执行时间 = 所需的指令数 x CPI x 时钟周期其它不全面的性能度量方式机器代码大小由于精确度量程序执行时间非常困难,人们试图找到不需测量执行时间的性能度量方法,这
16、些方法都只在特定的情况下有意义,并不能全面地、真实地反映计算机的性能。其它不全面的性能度量方式MIPS (million instructions per second)从表面上看,越快的机器MIPS值越大;MIPS使用起来十分直观,易理解,但MIPS并不能全面反映性能,有时甚至与真实情况相反!其它不全面的性能度量方式(实例)Execution time 1 = (5*1 + 1*2 +1*3)*10e9/500*10e6 = 20 secondsExecution time 2 = (10*1 + 1*2 +1*3)*10e9/500*10e6 = 30 secondsMIPS 1 = (5
17、+1+1 )*10e9/20*10e6 = 350MIPS 2 = (10+1+1 )*10e9/30*10e6 = 400其它不全面的性能度量方式Native MIPSPeak MIPS 基准程序(benchmark)基准程序(benchmark): 是挑选出来专门用于评价计算机性能的程序。好的基准程序应该能涵盖计算机实际应用中各个主要应用领域的程序的特征,使得测试结果能反映实际应用中的计算机的实际性能。基准程序(benchmark)基准程序(benchmark)1988年,EE Times与SUN, MIPS, HP, Apollo, DEC联合成立SPEC, 寻找一组标准的程序,输入数据
18、,度量方法来公正地衡量不同系统的性能。SPEC1989年第一版,10个程序,用一个数值来表示性能(相对于VAX11/780)SPEC92, 6个整数,14个浮点程序SPEC95, 8个整数,10个浮点程序一般3-5年更新一个版本SPEC2000, SPEC2006SPEC1989年第一版SPECCPU性能的严格定义条件:无任何优化编译选项CPU性能 = SPEC分值 =(运行SPEC程序时间/参考时间)参考时间:由SPEC提供的运行SPEC程序的时间性能改进性能改进Amdahls Law例:假设一个程序在一台机器上运行需要100秒,其中乘法指令执行占80秒,那么,为了使执行性能提高到原来的4倍
19、,需要将乘法指令性能改进多少倍呢?如果要使执行性能提高到原来的5倍呢?Amdahls LawAmdahl定律: 执行时间改进部分执行时间改进后=+ 执行时间未改进部分 改进比率加速比受程序中没有改进部分的制约。或者解释为:总的性能提高取决于所改进部分在整体中所占的比例大小。平均人月330;超过 $10M+Source:InternationalBusinessStrategies不断增加的开发时间和成本NetworkingWirelessGraphicsApplication161326346Staff months$5.7M$9.0M$10.7MCost12M12M30MTransistor
20、s3GeometryR&D费用成本(cost)TTM (Time-To-Market)哈工大微电子中心研制的Lilac 500 thousand gates die area 4x4mm2 329 pins operates at 133MHz 哈工大微电子中心研制的LilacFigure 5 LILAC die Layout Summary处理器评价高性能(High-Performance)高能效(Power-Efficiency)可缩放性(Scalability)可通过简单核的简单叠加实现性能扩展复杂度有效性(Complexity-Efficiency)可适应性(Ad
21、aptability)能满足不同特性应用的需要处理器指令系统设计本课内容指令与指令系统指令系统设计总结软件 vs. 硬件软件 vs. 硬件instruction setsoftwarehardware软件的表示层次软件与机器语言典型指令的执行指令的内容对于给定的程序:执行时间 = 所需的指令数 x CPI x 时钟周期CPU性能指令系统设计的基本问题提供哪些操作,需要多少条指令理论上用LD/ST/INC/BRN可以编制任何程序!多少个操作数,如何获得操作数双值运算:如 A BC单值运算:如 A B支持多少数据类型和大小指令编码的格式用少量的位数对操作进行编码,并使格式整齐Evolution o
22、f Instruction SetsSingle Accumulator (EDSAC 1950)Accumulator + Index Registers(Manchester Mark I, IBM 700 series 1953)Separation of Programming Model from ImplementationHigh-level Language BasedConcept of a Family(B5000 1963)(IBM 360 1964)General Purpose Register MachinesComplex Instruction SetsLoad
23、/Store ArchitectureRISC(Vax, Intel 8086 1977-80)(CDC 6600, Cray 1 1963-76)(Mips, Sparc, IBM RS6000, . . .1987+)VLIWCydra-5 1983, Multiflow 1984, TMSC6X 1996, Intel EPIC 1997(现代)指令系统设计的目标性能好硬件实现简单,成本低对编译器支持好机器代码小功耗低处理器设计的基本原则Simplicity favors regularity.Smaller is faster.Good design demands good comp
24、romise.Make the common case fast.问题一:需要多少条指令?解答:问题一用LD/ST/INC/BRN 已经足够编制任何计算程序,但是并不实用,这主要因为编出的程序太长!指令越丰富,Code Size越小!但译码电路复杂,操作数编码位数多!用少量的位数,对操作进行编码(opcode)典型操作增加和减少操作依据受限于Amdahl LawSPEC的性能检测结果!问题二:指令的操作数A = B + C;1. 三操作数:2. 二操作数: 指令的操作数A = B + C;3. 一操作数:4. 零操作数: nexttos比较:指令的数量对操作数和结果如何定位?除了存储器之外,还
25、可放在哪里?有多少个显式操作数?如何对存储器操作数进行定位?哪些操作数可以或者不可以存放在存储器中?问题三:对操作数如何定位?操作数的存放位置1. 存储器2. 寄存器* 专用寄存器* 通用寄存器微处理器-DRAM 的延迟差距1101001000198019811983198419851986198719881989199019911992199319941995199619971998199920001982Processor-MemoryPerformance Gap:(grows 50% / year)PerformanceTimeProc60%/yr.CPUDRAM7%/yr.DRAM通
26、用寄存器与Load/Store结构所有算术逻辑运算的操作数都是立即数或寄存器Load/Store指令用于在寄存器和存储器之间传递数据除了Load/Store外的所有指令都不包含存储器访问寻址方式示例含义RegisterAdd R4, R3R4R4+R3ImmediateAdd R4, #3R4 R4+3DisplacementAdd R4, 100(R1)R4 R4+Mem100+R1Register indirectAdd R4, (R1)R4 R4+MemR1IndexedAdd R4,(R1+R2)R4 R4+MemR1+R2Direct (absolute)Add R1,(1001)R
27、1 R1+Mem1001Memory indirectAdd R1,(R3)R1 R1+MemMemR3Post-incrementAdd R1,(R2)+R1 R1+MemR2; R2 R2+1Pre-decrementAdd R1, -(R2)R2 R2-1; R1 R1+MemR2ScaledAdd R1, 100(R2)R3R1 R1+Mem100+R2+R3*d寻址方式数据类型指令格式Opcode1Address1Address2Address3Opcode2指令格式CISC vs. RISCCISC: 丰富的操作、复杂的操作数寻址方式、多种指令格式代码体积小,硬件实现复杂,成本高R
28、ISC: 仅提供最常使用的操作、简单的操作数寻址、规则的指令格式性能好,硬件实现简单,成本低,代码密度低High Level Language Computer Architecture: 1960s 为了简化软件开发,人们试图使体系结构提供高级语言所需的复杂操作,把硬件“提升”到高级语言的级别上,从而缩小“语义鸿沟”。CISC: VAX11/78016位机,有16种寻址方式,共303条指令16个寄存器,指令字不定长(154bytes)例:Add R2, R4; R2+R4 - R4, “06 02 04” (8进制) Add R2, R1; R2 + R1 - R1, 06 12 01Add
29、 #1000, R1; 1000+R1 - R121/41op(4 bits)方式(3 bits)Rn(3 bits)方式(3 bits)Rn(3 bits)CISC:x86RISC:MIPS100余条指令(Hennessy中33条),共32个通用寄存器指令格式:定长32位R-type:arithmetic instructionI-type:data transfer J-type:branch instruction(conditional & unconditional)123/41op(6 bits)rs(5 bits)rt(5 bits)rd(5 bits)shamt(5 bits)
30、funct(6 bits)op(6 bits)rs(5 bits)rt(5 bits)addr/immediate(16 bits)R-typeI-typeop(6 bits)rs(5 bits)rt(5 bits)addr(16 bits)J-typeop(6 bits)addr(26 bits)数字信号处理(DSP)以处理数字信号处理中的滤波和变换乘累加复杂的地址处理饱和运算数据宽度小于24通用处理器的多媒体指令扩展:MMX、SSE、3DNow! 多媒体指令Summary受限于Amdahl Law,SPEC的性能检测结果!如果代码大小至关重要,使用可变长度指令如果性能至关重要,使用固定长度
31、指令瞄准最低限要求的指令系统,实现:硬件实现简单,成本低对编译器支持好机器代码小功耗低MIPS ISA与汇编程序实例 本课内容MIPS体系结构MIPS汇编程序实例 处理器设计的基本原则Simplicity favors regularity.Smaller is faster.Good design demands good compromise.Make the common case fast.MIPSMicroprocessor without Interlocked Pipeline StagesIn 1981, a team led by John L. Hennessy at St
32、anford University started work on the first MIPS processor.MIPS architecture greatly influenced later RISC architectures such as Alpha.In 1984 Hennessy left Stanford to form MIPS Computer Systems. They released their first design, the R2000, in 1985.MIPSWorkstations, Embedded, supercomputersLicensab
33、le architecture, Synthesizeable cores for embedded marketsCisco, Linksys and Mikrotiks routerboard routers, cable modems and ADSL modems, smartcards, laser printer, set-top boxes, robots, handheld computers, Sony PlayStation 2 and Sony PlayStation Portable, cellphone/PDA applicationsLoongsonMIPS寄存器D
34、esign Principle 2: Smaller is faster.013101310131Register 0Register 1Register 3132 GPRsMIPS寄存器命名No.NameUsageNo.NameUsage0$zeroConstant 016$s0Saved temporary( preserved across call)1$atReserved for assembler17$s12$v0Expression evalution and results of a function18$s23$v119$s34$a0Argument 0320$s45$a12
35、1$s56$a222$s67$a323$s78$t0Temporary (not preserved across call)24$t8Temporary (not preserved across call)9$t125$t910$t226$k0Reserved for OS kernel11$t327$k112$t428$gpPointer to global area13$t529$spStack pointer14$t630$fpFrame pointer15$t731$raReturn address of callMIPS指令格式Simplicity favors regulari
36、ty.MIPS指令格式:Example指令与应用实例categoryInstructionExampleMeaningArithmeticAddadd $s1, $s2, $s3$s1 = $s2 + $s3Subtractsub $s1, $s2, $s3$s1 = $s2 - $s3Data transferLoad wordlw $s1, 100($s2)$s1 = Mem$s2 + 100Store wordsw $s1, 100($s2)Mem$s2 + 100 = $s1 categoryInstructionExampleMeaningArithmeticAddadd $s1,
37、$s2, $s3$s1 = $s2 + $s3Subtractsub $s1, $s2, $s3$s1 = $s2 - $s3Data transferLoad wordlw $s1, 100($s2)$s1 = Mem$s2 + 100Store wordsw $s1, 100($s2)Mem$s2 + 100 = $s1 例:写出下列C语言语句的汇编代码。f = (g + h) (i + j);(假设变量f, g, h, i, j依次被分配到寄存器$s0, $s1, $s2, $s3和$s4)add $t0, $s1, $s2add $t1, $s3, $s4sub $s0, $t0, $
38、t1例:写出下列C语言语句的汇编代码。f = (g + h) (i + j);(假设变量f, g, h, i, j依次被分配到寄存器$s0, $s1, $s2, $s3和$s4)categoryInstructionExampleMeaningArithmeticAddadd $s1, $s2, $s3$s1 = $s2 + $s3Subtractsub $s1, $s2, $s3$s1 = $s2 - $s3Data transferLoad wordlw $s1, 100($s2)$s1 = Mem$s2 + 100Store wordsw $s1, 100($s2)Mem$s2 + 10
39、0 = $s1 例:写出下列C语言语句的汇编代码。int a100;a12 = h + a8;(假设变量h被分配到寄存器$s2, 数组a的基地值在$s3中)lw $t0, 32($s3)add $t0, $s2, $t0sw $t0, 48($s3)例:写出下列C语言语句的汇编代码。int a100;a12 = h + a8;(假设变量h被分配到寄存器$s2, 数组a的基地值在$s3中)categoryInstructionExampleMeaningArithmeticAddadd $s1, $s2, $s3$s1 = $s2 + $s3Subtractsub $s1, $s2, $s3$s
40、1 = $s2 - $s3Data transferLoad wordlw $s1, 100($s2)$s1 = Mem$s2 + 100Store wordsw $s1, 100($s2)Mem$s2 + 100 = $s1 例:写出下列C语言语句的汇编代码。int a100;g = h + ai;(假设变量g, h, i依次被分配到寄存器$s1, $s2, $s4, 数组a的基地址在$s3中)add $t1, $s4, $s4add $t1, $t1, $t1add $t1, $t1, $s3 ; $t1 = address of Ailw $t0, 0($t1)add $S1, $s1,
41、 $t0指令与应用实例categoryInstructionExampleMeaningConditional branchBranch on equalbeq $s1, $s2, LIf ($s1 = $s2) goto LBranch on not equalbne $s1, $s2, LIf ($s1 != $s2) goto LSet on less thanslt $s1, $s2, $s3if ($s2 $s3) $s1 = 1;else $s1 = 0;Unconditional jumpJumpj 2500goto 10000Jump registerjr $t1goto $t
42、1 例4categoryInstructionExampleMeaningConditional branchBranch on equalbeq $s1, $s2, LIf ($s1 = $s2) goto LBranch on not equalbne $s1, $s2, LIf ($s1 != $s2) goto LSet on less thanslt $s1, $s2, $s3if ($s2 $s3) $s1 = 1;else $s1 = 0;Unconditional jumpJumpj 2500goto 10000Jump registerjr $t1goto $t1 例4:写出
43、下列C语言语句的汇编代码。if (i = j) f = g + h;elsef = g h;(假设变量f, g, h, i, j依次被分配到寄存器$s0, $s1, $s2, $s3和$s4) bne $s3, $s4, Else ;go to Else if (i != j) add $s0, $s1, $s2; j Exit ;go to ExitElse: sub $s0, $s1, $s2Exit:例4categoryInstructionExampleMeaningConditional branchBranch on equalbeq $s1, $s2, LIf ($s1 = $s
44、2) goto LBranch on not equalbne $s1, $s2, LIf ($s1 != $s2) goto LSet on less thanslt $s1, $s2, $s3if ($s2 $s3) $s1 = 1;else $s1 = 0;Unconditional jumpJumpj 2500goto 10000Jump registerjr $t1goto $t1 例5:写出下列C语言语句的汇编代码。if (i = j) f = g + h;elsef = g h;(假设变量f, g, h, i, j依次被分配到寄存器$s0, $s1, $s2, $s3和$s4)
45、slt $t0, $s4, $s3 bne $zero, $t0, Else add $s0, $s1, $s2; j Exit ; go to ExitElse: sub $s0, $s1, $s2Exit:例4categoryInstructionExampleMeaningConditional branchBranch on equalbeq $s1, $s2, LIf ($s1 = $s2) goto LBranch on not equalbne $s1, $s2, LIf ($s1 != $s2) goto LSet on less thanslt $s1, $s2, $s3if
46、 ($s2 $s3) $s1 = 1;else $s1 = 0;Unconditional jumpJumpj 2500goto 10000Jump registerjr $t1goto $t1 例6:写出下列C语言语句的汇编代码。int a100; while (ai != k)i = i + j;(假设变量i, j, k依次被分配到寄存器$s3, $s4和$s5;数组a的基地址在$s6中)Loop: add $t1, $s3, $s3 add $t1, $t1, $t1 add $t1, $t1, $6 ; $t1 = address of ai lw $t0, 0($t1) beq $t
47、0, $5, Exit add $s3, $s3, $s4 j LoopExit: 练习int record100;int i, input;for (i = 0; i add $t0, $t1, $zero mov $t0, 0 xffffaaaa = lui $t0, 0 xffffaddi $t0, 0 xaaaa mov $t0, 0 x16 = addi, $t0, 0 x16 第五章 单周期MIPS处理器实现5大组成部分:数据通路,控制,知识回顾设计策略分治(divide and conquer) 将一个难以直接解决的大问题,分割成一些规模较小的相同问题,以便各个击破,分而治之。设
48、计策略自顶向下 (top-down)MIPS 指令执行特征分析前两步对于所有指令都相同:1.根据pc的值从内存中取出指令2.读寄存器(读一个或两个寄存器)后续执行步骤具有共性:都要使用ALU进行运算第五章 多周期MIPS处理器实现知识回顾单周期MIPS实现关键路径数字电路中关键路径决定 时钟频率单周期MIPS实现中耗时最 长的Load指令影响的系统 性能 知识回顾多周期MIPS处理器实现将指令的执行拆分为多个执行步骤每个执行步骤占用一个周期不同复杂度的指令“按需分配”周期数特点:时钟频率提高变化的CPI通过资源复用降低成本指令执行步骤拆分每周期最多完成下列一个操作:一次内存访问一次寄存器堆访问
49、一次ALU操作周期间的阶段性结果保存在临时寄存器中多周期数据通路抽象图多周期数据通路指令执行周期取指,PC更新指令译码和寄存器读取,分支目标地址计算指令执行,内存地址计算,分支指令完成内存访问,R型指令完成内存读取完成1.取指,PC更新IR = MemPC;PC = PC + 4;2.指令译码和寄存器读取,分支目标地址计算A = RegIRrs;B = RegIRrt;ALUOut = PC + (sign-extend(IRimmd) 2);3.指令执行,内存地址计算,分支指令完成ld or st: ALUOut = A + sign-extend(IRimmd);R-type:ALUOut
50、 = A op B;Branch:if (A = B) PC = ALUOut;Jump:PC = PC31-28 | (IR25-0 2)|004. 内存访问,R-type指令完成ld or st: MDR = MemALUOut; 或 MemALUOut = B;R-type:RegIRrd = ALUOut;5.内存读取(lw)完成RegIRrt = MDR;多周期数据通路控制信号多周期数据通路控制信号多周期数据通路控制多周期数据通路控制多周期数据通路控制控制逻辑的状态机实现状态分配状态分配微程序微程序与微指令定义微指令格式微指令各域的取值微指令书写微指令执行顺序控制顺序执行跳转条件跳转
51、微程序(step1)微程序(step2)微程序(内存访问 lw & sw)微程序(内存访问 lw & sw)微程序(内存访问 lw & sw)微程序(R-type)微程序(beq)微程序(jump)微程序微程序实现异常原因与异常处理程序寻址异常处理向量寻址单入口异常处理我们只考虑两种异常未知指令算术操作溢出流水线(pipelining)技术指令调度实例Lw$t0, 0($t1)Lw$t2, 4($t1)Sw$t2, 0($t1)Sw$t0, 4($t1)Lw$t0, 0($t1)Lw$t2, 4($t1)Sw$t0, 4($t1)Sw$t2, 0($t1)构建流水数据通路仅考虑MIPS指令子集
52、:lw, sw, add, sub, and, or, slt, beq采用流水技术的数据通路及控制逻辑 构建流水数据通路流水级之间添加寄存器;用于暂存流水级的执行结果;寄存器以相邻两级来命名;lw指令的执行sw指令的执行?正确的数据通路请试述beq指令的执行步骤流水线的控制数据冒险与前递提高性能的其它技术Superscalar MachineSuperscalar (pipelined) ExecutionInstruction parallelism = D x NOperation Latency = 1 baseline cyclePeak IPC = N per baseline c
53、yclePentium其它现代微处理器技术TLP(多线程)SMP(对称多处理器)CMP(片上多处理器多核)存储器系统 高速缓存(cache)存储系统概述1946年第一台计算机的存储系统只有20个由电子管构成的寄存器自计算机发明以来人们对拥有无限大、无限快的存储器的梦想从没有停止过!局部性原理局部性原理: 处理器访问存储器时,无论是取指令还是存取数据,所访问的存储单元都趋于聚集在一个较小的连续区域中。时间局部性空间局部性Cache原理如何判断需要的数据是否在Cache中,如果在,如何在Cache中找到需要的数据直接映射Cache (direct mapped Cache)直接映射Cache在Ca
54、che中的位置 数据地址 Cache容量直接映射Cache用于定位和识别数据的附加信息ValidTagDataIndexVTagData000N001N010N011N100N101N110N111NDecimal addressBinaryaddress2210110261101022101102611010161000030001116100001810010直接映射cache工作过程示意Cache初始状态IndexVTagData000N001N010N011N100N101N110Y10Mem10110111NDecimal addressBinaryaddress2210110261
55、101022101102611010161000030001116100001810010直接映射cache工作过程示意访问地址22(10110)后的状态IndexVTagData000N001N010Y11Mem11010011N100N101N110Y10Mem10110111NDecimal addressBinaryaddress2210110261101022101102611010161000030001116100001810010直接映射cache工作过程示意访问地址26(11010)后的状态IndexVTagData000Y10Mem10000001N010Y11Mem110
56、10011N100N101N110Y10Mem10110111NDecimal addressBinaryaddress2210110261101022101102611010161000030001116100001810010直接映射cache工作过程示意访问地址16(10000)后的状态IndexVTagData000Y10Mem10000001N010Y11Mem11010011Y00Mem00011100N101N110Y10Mem10110111NDecimal addressBinaryaddress2210110261101022101102611010161000030001
57、116100001810010直接映射cache工作过程示意访问地址3(00011)后的状态IndexVTagData000Y10Mem10000001N010Y10Mem10010011Y00Mem00011100N101N110Y10Mem10110111NDecimal addressBinaryaddress2210110261101022101102611010161000030001116100001810010直接映射cache工作过程示意访问地址18(10010)后的状态直接映射Cache所需的存储容量对于32位地址,块大小是1个word(4字节)的直接映射Cache,如果Ca
58、che大小是2n块,那么:每个tag需:32 - (n + 2)位每一块共需:32+(32 - (n + 2)+1)位整个Cache需: 2n (32+(32 - (n + 2)+1) = 2n (63-n)利用空间局部性ValidTagDataValidTagDataDataDataDataMapping an address to a blockBlock address = Byte address / Bytes per blockBlock = (Block address) % (Number of cache blocks)例:在一个有64个块,每个块为16字节的Cache中,字
59、节地址1200应该映射到那个块?解:块地址为:1200/16 = 75 映射到:7564 = 11Cache块大小与命中率的关系增加块大小的问题对于给定大小的Cache,当块大小增加到一定程度后,命中率改善效果降低。未命中损失增加未命中时间包括: 找到第一个字的时间 传输整个块数据的时间使用灵活的块分配来改进命中率Size of Tags versus Set Associativity计算一个32位地址,共有4K个块,每块4字节的cache分别在直接映射、2路组相联和全相连时的组数和全部tag的大小。Cache失效对比多级CacheL1 cache与L2 cache的设计思想差异很大,两级c
60、ache相互作用使得每一级各有偏重L1 cache:由于L2 cache的存在,L1 cache的缺失损失显著降低容量小、块容量小降低命中时间L2 cache:由于L1 cache的存在,L2 cache的速度不重要容量大、块容量大提高命中率多级Cache全局缺失率 (global miss rate):多级Cache中,在所有级的访问都缺失的那部分所占的比例局部缺失率(local miss rate):多级Cache中,对某一级访问缺失所占的比例虚拟存储器 (Virtual Memory)为什么要使用虚拟存储器程序所需要的存储器比计算机实际具有的内存大DOS应用程序曾采用overlay技术来
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 膝关节置换术后功能恢复训练
- 颞颩关节置换术后的护理要点
- 2026广东深圳市宝安区中英公学高薪诚聘特色普通高中各科教师备考题库及完整答案详解(夺冠系列)
- 2026云南曲靖市陆良县人力资源和社会保障局招聘公益性岗位3人备考题库及完整答案详解(全优)
- 北京2011年海淀区高三二模语文试题及答案
- 2026年3月山东济南轨道交通集团运营有限公司社会招聘备考题库附参考答案详解(满分必刷)
- 2026浙江金华市浦江县教育系统招聘教师20人备考题库附参考答案详解【完整版】
- 2026江西省人力资源有限公司招聘生产服务一线人员16人备考题库含答案详解【能力提升】
- 2026北京城市副中心投资建设集团有限公司春季校园招聘25人备考题库附答案详解【夺分金卷】
- 2026广西钦州市统计局面向社会招聘编外人员2人备考题库附参考答案详解(模拟题)
- 福建省莆田市2026届高中毕业班第二次质量调研测试试卷(莆田二检) 英语+答案
- Songmont山下有松品牌手册
- 2025年河南经贸职业学院单招职业技能考试试题及答案解析
- 2026年吉林水利电力职业学院单招职业技能考试题库附答案详解(精练)
- 2026森岳科技(贵州)有限公司招聘工作人员29人考试备考试题及答案解析
- 2026年浙江省十校联盟高三3月质量检测试题试英语试题试卷含解析
- 2026年春季人教版小学数学二年级下册教学计划(含进度表)
- 雨课堂学堂在线学堂云《导弹总体设计导论(国防科技)》单元测试考核答案
- 信息技术中考知识点(汇编册)
- 2025年高一政治上学期教学工作总结及2026年工作计划
- 精神卫生法知识课件
评论
0/150
提交评论