浙江大学嵌入式嵌入式系统3.pptx
1微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第1页/共128页2今天计算机体系结构的研究内容今天计算机体系结构的研究内容进一步提高单个微处理器的性能基于微处理器的多处理器体系结构。全面提高计算机的系统性能:可用性,可维护性,可缩放性。新型器件的处理器。第2页/共128页3进一步提高单个微处理器的性能进一步提高单个微处理器的性能器件技术(2005年的 IC技术)200Mtransistors,0.1 feature size/onechip;2.0-3.5GHz,Pentium 1GHz;0.9-1.2V(工作电压)高性能体系结构Embedded Computer SystemReconfigurable computer ArchitecturePower-aware computer Architecture第3页/共128页4高性能处理器所采用的一些技术高性能处理器所采用的一些技术on-chip multilevel cache及pre-fetch buffer硬件实现进程的上下文切换大规模的片上分布式DRAM深度流水线 8-12 20级以上Advanced Super-scalar:16-32指令/clock cycleSuper-speculative Processor:fine-grain heavy speculationTrace ProcessorVector Intelligent RAM Procssor,V-IRAMon-chip multiprocessorInstruction-level Distributed Processing(ILDP)Clustered Dependence-based Architecture第4页/共128页5新型器件的处理器新型器件的处理器光速极限问题IC电路有极限:线宽不能无限缩小;性能价格+低功耗新型器件光计算机分子计算机DNA计算机:利用DNA保存复杂信息的巨大存储能力。用核苷酸的排列表示各种信息,生物酶充当加减乘除操作,通过化学反应得出计算结果。第5页/共128页6第6页/共128页7第7页/共128页8instruction setsoftwarehardware第8页/共128页9第9页/共128页10指令集体系结构的设计内容指令集体系结构的设计内容数据格式:硬件能直接识别和处理的数据类型和格式等寻址方式:寻址方式的种类、表示方法和地址计算等寄存器组织:操作数寄存器、变址寄存器、控制寄存器、及专用寄存器等的定义、数量和使用方法。指令系统:指令的选取。指令的操作数类型和格式。指令操作码优化和控制机构等。存贮器系统:最大可编址空间、最小编址单位、编址方式和主存容量等。中断机构:中断的类型、中断分级、中断处理功能和中断入口地址等。机器级的结构:的联接方式、设备访问方式、数据的源、目的和吞吐量等。其它还包括:操作结束和出错指示。机器工作状态的定义和切换。信息保护保护方式等。第10页/共128页11指令系统结构评价的常规方法指令系统结构评价的常规方法第11页/共128页12测试程序的选择(测试程序的选择(1)实际程序用户用来解决问题的实际工作程序,即实际的工作负载,尽管不知道在工作负载中所占的比例.一般选择被用户广泛使用的、具有一定代表性的实际程序。如C编译器,文本编辑器等,有输入,输出,参数核心基准测试程序(kernel benchmark)从实际程序中抽出来的能代表整个程序运行的主要工作的核心代码段,适于独立评价某一方面的性能抽取条件:这一段代码必须决定整个程序的执行时间如Livemore Loops(浮点循环),Linpack等第12页/共128页13测试程序的选择(测试程序的选择(2 2)简单基准测试程序(toy benchmark)事先知道结果的小程序(10100行)F如快速排序,八皇后问题 等综合基准程序(synthetic benchmark)和核心基准程序有点类似,但它不是从单个实际程序中提取,而是通过对大量的实际程序的执行情况进行统计,根据各类操作和操作数的使用频率,人为设计出来的一段小规模测试程序。如Whetstone,Dhrystone等第13页/共128页14指令系统与处理器结构的关系指令系统与处理器结构的关系第14页/共128页15指令系统与处理器结构的关系指令系统与处理器结构的关系第15页/共128页16指令系统考虑的问题指令系统考虑的问题第16页/共128页17微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第17页/共128页18微处理器的执行机制设计第18页/共128页19微处理器的执行机制设计第19页/共128页20微处理器的执行机制设计第20页/共128页21微处理器的执行机制设计第21页/共128页22微处理器的执行机制设计第22页/共128页23微处理器的执行机制设计第23页/共128页24流水线相关说明流水线相关说明第24页/共128页25微处理器的执行机制设计第25页/共128页26微处理器的执行机制设计第26页/共128页27微处理器的执行机制设计第27页/共128页28第28页/共128页29第29页/共128页30第30页/共128页31第31页/共128页32多线索处理器举例多线索处理器举例第32页/共128页33微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第33页/共128页34微处理器流水线结构设计流水深度流水段的任务分配流水线相关时钟设计:周期,双时钟寄存器与锁存器第34页/共128页35流水深度流水深度第35页/共128页36流水段的任务分配流水段的任务分配第36页/共128页37微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第37页/共128页38微处理器逻辑设计与实现处理器结构级评价工具总结寄存器级结构图指令逻辑寄存器级描述指令物理寄存器级描述数据通路设计控制器设计中断控制设计处理器集成第38页/共128页39处理器结构级评价工具总结:指令级模拟指令级模拟第39页/共128页40寄存器级结构图第40页/共128页41微处理器设计微处理器设计 第41页/共128页42处理器逻辑设计处理器逻辑设计:数据通路和控制器数据通路和控制器第42页/共128页43微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第43页/共128页445 行为级行为级/逻辑级验证逻辑级验证功能级验证确保处理器与系统结构一致等价验证确保设计结果与功能模型相匹配电子验证确保电路的正确性,在运行电压温度等环境下的稳定性流片前验证流片后验证第44页/共128页45验证的层次验证的层次系统验证芯片上系统验证行为级验证验证所实现的与所描述的一致性寄存器传输级结构验证模拟验证模型检验门级/晶体管级逻辑等式检验第45页/共128页46微处理器的系统结构设计微处理器的执行机制设计微处理器流水线结构设计微处理器逻辑设计与实现处理器逻辑综合(Synopsys)处理器物理综合(Candence)处理器的验证与测试第46页/共128页476 逻辑综合逻辑综合第47页/共128页48逻辑综合逻辑综合第48页/共128页49工艺库工艺库第49页/共128页50嵌入式体系结构嵌入式体系结构 嵌入式指令集嵌入式CPU存储器IO设计SOC 第50页/共128页51设计嵌入式系统的第一步设计嵌入式系统的第一步确定指令系统,以指导选择嵌入式内核第51页/共128页52嵌入式微内核嵌入式微内核嵌入式微处理器嵌入式控制器嵌入式DSPSOC(在片系统)本章介绍微处理器(ARM),DSP(SHARC)第52页/共128页53一、计算机体系结构一、计算机体系结构1、冯.诺依曼结构五大部件:ALU,Controller,Memory,Input,Output核心部件:早期是CPU,后来是Memory存储程序(stored program):程序以数字形式存在,可以与数据一样被读写第53页/共128页54指令执行次序:顺序跳转程序计数器Program Counter(PC)第54页/共128页552、哈佛体系结构、哈佛体系结构程序与数据有单独的存储器PC只能指向程序存储器目前仍然广泛应用指令cache与数据cache适用于实时信号处理(大部分的DSP)大量数据流入计算机数据必须在精确的时间内处理完成第55页/共128页563、RISC与与CISCCISC:复杂指令系统计算机RISC:精简指令系统计算机RISC一般性能比CISC高第56页/共128页574、汇编语言种类、汇编语言种类1)堆栈型汇编Push aPush bAddPop c第57页/共128页582)累加器型汇编累加器型汇编Load aAdd bStore c第58页/共128页593)通用寄存器型汇编通用寄存器型汇编Load$1,ALoad$2,BAdd$3,$1,$2Store$3,C第59页/共128页60二、二、ARM处理器处理器属于RISC体系自己不制造VLSI设备,只提供授权ARM:只设计内核的英国公司第60页/共128页61ARM内核系列ARM720T第61页/共128页62ARM720T特性Features:32/16-bit RISC architecture(ARMv4T)Power-efficient three-stage pipeline 32-bit ALU and high-performance multiplier 8 KByte unified cache Memory Management Unit(MMU)Extensive debug facilities:Embedded ICE-RT real-time debug unit JTAG interface unit Interface for direct connection to Embedded Trace Macrocell(ETM)第62页/共128页63集成ARM内核的芯片ARM720TCirrus Logic公司EP7312三星:应用于手持设备与网络设备Intel:StrongArm系列&Xscale系列Motorola:手持设备(由68改过来)Cirrus Logic:EP7312第63页/共128页64ARM内核ARM内核被授权给数百家厂商ARM主要应用于无线局域网、3G、手机、手持设备、有线网络通讯应用形式:集成到专用芯片中作控制器第64页/共128页65ARM体系结构体系结构ARM7采用冯.诺依曼体系ARM9采用哈佛体系对汇编程序员透明第65页/共128页66ARM基本数据类型基本数据类型两种:32位长的字4个8bit的字节第66页/共128页67地址地址32位地址长度可以配置为低序或者高序 字的最低位放最低位字节(低序)字的最低位放最高位字节(高序)第67页/共128页682.1 汇编书写模式汇编书写模式属于通用寄存器型(GPR)汇编LoadStore结构数据必须装载到寄存器才能运算Load从内存装到寄存器Store从寄存器存储到内存第68页/共128页69ARM的寄存器的寄存器16个通用寄存器r0r15r15 同时做PC1个特殊寄存器:当前程序状态寄存器CPSR在进行运算时被自动设置第69页/共128页70CPSR高四位为NZCVN:负数Z:为0C:进位V:溢出第70页/共128页712.2数据运算数据运算1)寄存器型指令:add r0,r1,r2r1寄存器的内容加r2寄存器的内容,存到r0第71页/共128页72算术运算算术运算Add加Adc进位加Sub减Sbc进位减Rsb:逆减Rsc:进位逆减Mul:乘Mla:乘且累加第72页/共128页73逻辑运算逻辑运算And:按位与Orr:按位或EOR:按位异或BIC:位清除第73页/共128页74移位运算移位运算LSL:逻辑左移(添0)LSR:逻辑右移(添0)ASL:算术左移ASR:算术右移ROR:循环右移RRX:带进位位的循环右移第74页/共128页75比较指令比较指令CMP:比较CMN:比较求反TST:按位测试TEQ:按位测试求反第75页/共128页76移动指令移动指令MOV:移动MVN:移动求反第76页/共128页77内存访问指令内存访问指令LDR:装入STR:存储LDRH:装入半字STRH:存储半字LDRSH:装入半个带符号字LDRB:装入字节STRB:存储字节ADR:设置寄存器为地址第77页/共128页782)立即数寻址)立即数寻址Add r0,r1,#2第78页/共128页793)寄存器间接寻址)寄存器间接寻址LDR r0,r1,#4第79页/共128页804)自动变址)自动变址LDR r0,r1,#16!r1的内容加16,然后用这个新值作为地址第80页/共128页815)后变址)后变址LDR r0,r1,#16把r1为地址的内存数据载入到r0,然后把r1的值加入16并把新值赋值给r1第81页/共128页826)例子:)例子:x=(a+b)-c;ADR r4,aLDR r0,r4ADR r5,bLDR r1,r5ADD r3,r0,r1ADR r4,cLDR r2,r4SUB r3,r3,r2LDR r4,xSTR r3,r4第82页/共128页832.3 控制流控制流1)B指令分支指令分支目标计算例子B 100表示当前程序计数器的值加上400。(100字长)第83页/共128页842)条件码)条件码EQ:等于0,Z1NE:不等于0,Z0CS:进位置1,C1CC:进位清除:C0MI:负数,N1PL:非负数:N0第84页/共128页85VS:溢出,V1VC:非溢出:V0HI:无符号大于,C1且Z0LS:无符号小于或等于,C0或Z1GE:有符号小于或等于,NVLT:有符号小于,NVGT:有符号大于,Z0且NVLE:有符号小于或等于,Z1或NV第85页/共128页863)例子:)例子:If(a b)X=5;Y=c+d;ElseX=c-d;第86页/共128页87ADR r4,aLDR r0,r4ADR r4,bLDR r1,r4CMP r0,r1;a=b,goto fblockMOV r0,#5ADR r4,xSTR r0,r4第87页/共128页88ADR r4,cLDR r0,r4ADR r4,dLDR r1,r4ADD r0,r0,r1;a+bADR r4,ySTR r0,r4B after;branch to end第88页/共128页89fblock:ADR r4,cLDR r0,r4ADR r4,dLDR r1.r4SUB r0,r0,r1;a-bADR r4,xSTR r0,r4after:第89页/共128页90同样c程序,用汇编可以写成不需要跳转的。如下:第90页/共128页91ADR r4,aLDR r0,r4ADR r4,bLDR r1,r4CMP r0,r1;ab?第91页/共128页92MOVLT r0,#5ADRLT r4,xSTRLT r0,r4ADRLT r4,cLDRLT r0,r4ADRLT r4,dLDRLT r1,r4ADDLT r0,r0,r1;a+bADRLT r4,ySTRLT r0,r4第92页/共128页93ADRGE r4,cLDRGE r0,r4ADRGE r4,dLDRGE r1.r4SUBGE r0,r0,r1;a-bADRGE r4,xSTRGE r0,r4第93页/共128页942.4 函数函数X=a+b;Foo(x);Y=c-d;汇编:BL foo;分支链接分支前将当前pc值存在r14中。返回只要MOV r15,r14调用过程必须注意不覆盖r14第94页/共128页95嵌套调用嵌套调用上述方法不适用于嵌套调用嵌套调用时,将返回地址存堆栈Void f1(int a)f2(a);第95页/共128页96f1LDR r0,r13STR r13!,r14STR r13!,r0BL f2SUB r13,#4LDR r13!,r15第96页/共128页97三、三、SHARC处理器处理器使用哈佛结构的DSP例子:R1=DM(M0,I0),R2=PM(M8,I8);!注释LABEL:R3=R1+R2;每条指令用分号结束,!开始为注释第97页/共128页983.1存储器结构存储器结构SHARC指令48位基本数据字32位地址位32位片上带大量的存储器系列中的21061有1Mbit片上存储器存储器包括PM:程序存储器DM:数据存储器芯片外还能够加更多的存储器第98页/共128页99数据类型数据类型32位IEEE单精度浮点40位IEEE扩展精度浮点32位整数主要设计为浮点密集型运算适用DSP第99页/共128页100改进的哈佛结构改进的哈佛结构程序存储器可以包含数据与指令数据可以并行取出第100页/共128页1013.2 体系结构体系结构整数操作使用R0到R15,16个整数寄存器浮点操作使用F0到F15,16个浮点寄存器所有数据都是40bit,如果32位数据存储时,存在高32位第101页/共128页102三个数据功能单元三个数据功能单元一个ALU一个乘法器一个移位器第102页/共128页103三个模式寄存器三个模式寄存器算术状态(ASTAT)粘着(STKY)模式1(MODE 1)第103页/共128页1043.3 整数运算整数运算Rn=Rx+Ry加Rn=Rx-Ry减Rn=Rx+Ry+CI进位加Rn=Rx-Ry+CI-1借位减Rn=(Rx+Ry)/2平均COMP(Rx,Ry)比较Rn=Rx+CI进位加Rn=Rx+CI-1借位加第104页/共128页105Rn=Rx+1加1Rn=Rx-1减1Rn=-Rx求反Rn=ABS Rx绝对值Rn=PASS Rx将Rx拷贝到RnRn=Rx and Ry 逻辑加Rn=Rx or Ry逻辑或第105页/共128页106Rn=Rx xor Ry逻辑异或Rn=Not Rx逻辑非Rn=Min(Rx,Ry)求最小值Rn=Max(Rx,Ry)求最大值Rn=Clip Rx by Ry在-Ry,Ry范围内截取Rx第106页/共128页107溢出处理溢出处理溢出导致最大范围的值不是循环第107页/共128页1083.4 浮点运算浮点运算Fn=Fx+FyFn=Fx-FyFn=ABS(Fx+Fy)Fn=ABS(Fx-Fy)Fn=(Fx+Fy)/2COMP(Fx,Fy)Fn=-Fx第108页/共128页109Fn=ABS FxFn=Pass FxFn=RND Fx舍入Fn=Scalb Fx by Ry用Ry换算成Fx的指数Rn=Mant Fx 提取Fx的尾数Rn=LOGB Fx 把Fx的指数换算成整数Rn=FIX Fx,Rn=TRUNC Fx 将浮点转换成整数Rn=FLOAT Rx by Ry,FLOAT Rx 将整数换成浮点第109页/共128页110Fn=RECIPS Fx 为倒数创建种子Fn=RSQRTS Fx为倒数平方根创建种子Fn=Fx COPYSIGN Fy把Fy的符号拷贝到FxFn=Min(Fx,Fy)Fn=Max(Fx,Fy)Fn=Clip Fx by Fy第110页/共128页1113.5 SHARC的移位操作的移位操作Rn=LSHIFT Rx by Ry逻辑移位Ry位Rn=Rn OR SHIFT Rx by Ry逻辑移位并逻辑或Rn=ASHIFT Rx by Ry算术移位Rn=Rn OR ASHIFT Rx by Ry 算术移位并逻辑或Rn=ROT Rx by Ry 循环移位Ry位Rn=BCLR Rx by Ry清Rx中的一位Rn=BSET Rx by RY设Rx中的一位第111页/共128页112Rn=BTGL Rx by Ry切换Rx中的1位BTST Rx by Ry测试Rx中的1位Rn=FDEP Rx by Ry将Rx中的域累计进Rn中Rn=Rn OR FDEP Rx by Ry使用OR操作累计并符号扩展Rn=FEXT Rx by Ry提取Rx中的域Rn=EXP Rx提取指数域第112页/共128页113Rn=EXP Rx(Ex)从ALU中提取指数域Rn=LEFTZ Rx 提取引导0的个数Rn=LEFTO Rx 提取引导1的个数Rn=FPACK Fx 将32位浮点数转换为16位浮点数Rn=FUNPACK Rn将16位浮点数转换为32位浮点数第113页/共128页1143.6 数操作状态位数操作状态位ASTAT中有AZ,AU,AN,AV,AC,AI,MN,MV,MU,MI,SZ,SV,SSSTKY中溢出位AOS,MOS,MVS,MUS,MIS具体含义略第114页/共128页1153.7内存操作内存操作装入存储体系结构提供用来控制装入和存储的特殊寄存器两个数据地址发生器(DAG)一个是数据存储器一个是程序存储器DAG能够象对数组一样进行访问数据第115页/共128页1163.8 DAG寻址模式寻址模式1)最简单的立即值R0=DM(0 x20000000)或者R0=RM(_a)或DM(_a)=R02)绝对地址3)具有更新的后修改模式R0=DM(I3,M1)DM(I2,1)=R1第116页/共128页1174)基址加偏移量寻址R0=DM(M1,I0)如I0=0 x20000000,M1=4将0 x20000004数据装入R05)循环缓冲区6)反位寻址应用于FFT第117页/共128页1183.9 程序例子程序例子X=(a+b)-c第118页/共128页119R0=DM(_a);R1=DM(_b);R3=R1+R2;R2=DM(_c);R3=R3-R2;DM(_x)=R3第119页/共128页1203.10 控制流控制流JUMP foo跳转到foo三种寻址方式直接寻址间接寻址相对PC寻址条件跳转eg:IF GT JUMP foo;第120页/共128页121SHARC分支条件分支条件EQALU=0LTALU0LEALUb)y=c-d;Elsey=c+d;第123页/共128页124可并行执行的汇编可并行执行的汇编R1=DM(_a);R8=DM(_b);R2=DM(_c);R4=DM(_d);R12=R2+R4,R0=R2-R4;COMP(R8,R1);IF GE R0=R12DM(_y)=R0第124页/共128页125函数调用函数调用Call foo;IF GT CALL(PC,100);!执行pc+100处的函数RTS 函数返回嵌套调用需要设计堆栈第125页/共128页1263.11 指令并行性指令并行性允许几个操作同时执行允许一条指令进行多数据提取以下操作可以在单指令完成:定点累加和加、减或平均浮点乘法和ALU操作乘法与双加减限制:操作数的来源来自不同输入口第126页/共128页127总结总结ARM属于微处理器,汇编及体系结构类似传统RISC的CPUSHARC属于DSP,支持浮点操作与并行执行第127页/共128页128感谢您的观看!第128页/共128页