《【嵌入式系统应用】第二章_嵌入式系统体系结构》由会员分享,可在线阅读,更多相关《【嵌入式系统应用】第二章_嵌入式系统体系结构(38页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统应用李 刚 13301336668参考书l嵌入式计算机系统设计原理,computers as components, principles of embedded computing system design, wayne wolf, 机械工业出版社,2002lARM嵌入式处理器结构与应用基础,马忠梅等,北航出版社,2002l嵌入式实时操作系统VxWorks及其开发环境Tornado,孔祥营等,中国电力出版社,2002第二章、嵌入式系统体系结构l嵌入式指令集l嵌入式CPUl存储器lI/O设计lSOC 一、嵌入式指令集l嵌入式微处理器l嵌入式控制器l嵌入式DSPlSOC(在片系统)
2、l微处理器(ARM)/ DSP(SHARC)计算机体系结构1、冯.诺依曼结构l五大部件:ALU/Controller/Memory/Input/Outputl核心部件:早期是CPU,后来是Memoryl存储程序(stored program):程序以数字形式存在,可以与数据一样被读写l指令执行次序:l顺序l跳转l程序计数器Program Counter(PC)计算机体系结构2、哈佛体系结构l程序与数据有单独的存储器lPC只能指向程序存储器l目前仍然广泛应用l指令cache与数据cachel适用于实时信号处理(大部分DSP)l大量数据流入计算机l数据必须在精确的时间内处理完成计算机体系结构计算机
3、体系结构3、RISC与CISClCISC:复杂指令系统计算机lRISC:精简指令系统计算机lRISC 一般性能比CISC高4、汇编语言种类1). 堆栈型汇编2). 累加器型汇编3). 通用寄存器型汇编计算机体系结构二、ARM处理器l属于RISC体系l自己不制造VLSI设备,只提供授权lARM:只设计内核的英国公司ARM内核系列 ARM720T集成ARM内核的芯片 ARM720TCirrus Logic公司EP7312 Samsung:应用于手持设备与网络设备 Intel:StrongArm系列&Xscale系列 Motorola:手持设备(由68改过来) Cirrus Logic:EP7312
4、 ARM内核被授权给数百家厂商 ARM主要应用于无线局域网、3G、手机、手持 设备、有线网络通讯 应用形式:集成到专用芯片中作控制器lARM7采用冯.诺依曼体系lARM9采用哈佛体系l对汇编程序员透明ARM体系结构l32位长的字l4个8bit的字节32位地址长度可以配置为低序或者高序l 字的最低位放最低位字节(低序)l 字的最低位放最高位字节(高序)ARM基本数据类型三、SHARC处理器l使用哈佛结构的DSP3.1 存储器结构lSHARC指令48位l基本数据字32位l地址位32位l片上带大量的存储器l系列中的21061有1Mbit片上存储器l存储器包括lPM:程序存储器lDM:数据存储器l芯片
5、外还能够加更多的存储器l32位IEEE单精度浮点l40位IEEE扩展精度浮点l32位整数l主要设计为浮点密集型运算l适用DSP数据类型改进的哈佛结构l程序存储器可以包含数据与指令l数据可以并行取出l整数操作使用R0到R15,16个整数寄存器l浮点操作使用F0到F15,16个浮点寄存器l所有数据都是40bit,如果32位数据存储时,存在高32位3.2 SHARC体系结构3.2 SHARC体系结构三个数据功能单元l一个ALUl一个乘法器l一个移位器三个模式寄存器l算术状态(ASTAT)l粘着(STKY)l模式1(MODE 1)lRn=Rx+Ry 加lRn=Rx-Ry 减lRn=Rx+Ry+CI 进
6、位加lRn=Rx-Ry+CI-1 借位减lRn=(Rx+Ry)/2 平均lCOMP(Rx, Ry)比较lRn=Rx+CI进位加lRn=Rx+CI-1借位加3.3 整数运算lRn=Rx+1 加1lRn=Rx-1 减1lRn=-Rx 求反lRn=ABS Rx 绝对值lRn=PASS Rx 将Rx拷贝到RnlRn=Rx and Ry 逻辑加lRn=Rx or Ry 逻辑或lRn=Rx xor Ry逻辑异或lRn=Not Rx 逻辑非lRn=Min(Rx, Ry)求最小值lRn=Max(Rx, Ry)求最大值lRn=Clip Rx by Ry在-Ry,Ry范围内截取Rxl溢出导致最大范围的值l不是循环
7、溢出处理3.4 浮点运算lFn=Fx+FylFn=Fx-FylFn=ABS(Fx+Fy)lFn=ABS(Fx-Fy)lFn=(Fx+Fy)/2lCOMP(Fx, Fy)lFn=-FxlFn=ABS FxlFn=Pass FxlFn=RND Fx舍入lFn=Scalb Fx by Ry用Ry换算成Fx的指数lRn=Mant Fx提取Fx的尾数lRn=LOGB Fx把Fx的指数换算成整数lRn=FIX Fx, Rn= TRUNC Fx 将浮点转换成整数lRn=FLOAT Rx by Ry, FLOAT Rx 将整数换成浮点lFn=RECIPS Fx为倒数创建种子lFn=RSQRTS Fx为倒数平方
8、根创建种子lFn=Fx COPYSIGN Fy把Fy的符号拷贝到FxlFn=Min(Fx, Fy)lFn=Max(Fx, Fy)lFn=Clip Fx by Fy3.5 SHARC的移位操作lRn=LSHIFT Rx by Ry 逻辑移位Ry位lRn=Rn OR SHIFT Rx by Ry逻辑移位并逻辑或lRn=ASHIFT Rx by Ry 算术移位lRn=Rn OR ASHIFT Rx by Ry 算术移位并逻辑或lRn=ROT Rx by Ry 循环移位Ry位lRn=BCLR Rx by Ry 清Rx中的一位lRn=BSET Rx by RY 设Rx中的一位lRn=BTGL Rx by
9、 Ry 切换Rx中的1位lBTST Rx by Ry 测试Rx中的1位lRn=FDEP Rx by Ry 将Rx中的域累计进Rn中lRn=Rn OR FDEP Rx by Ry 使用OR操作累计并符号扩展lRn=FEXT Rx by Ry 提取Rx中的域lRn=EXP Rx 提取指数域lRn=EXP Rx (Ex) 从ALU中提取指数域lRn=LEFTZ Rx 提取引导0的个数lRn=LEFTO Rx 提取引导1的个数lRn=FPACK Fx 将32位浮点数转换为16位浮点数lRn=FUNPACK Rn将16位浮点数转换为32位浮点数lASTAT中有AZ, AU, AN, AV, AC, AI
10、, MN, MV, MU, MI, SZ, SV, SSlSTKY中溢出位AOS, MOS, MVS, MUS, MISl具体含义略3.6 数操作状态位3.7 内存操作l装入存储体系结构l提供用来控制装入和存储的特殊寄存器l两个数据地址发生器(DAG)l一个是数据存储器l一个是程序存储器lDAG能够象对数组一样进行访问数据3.8 DAG寻址模式1)最简单的立即值lR0=DM(0x20000000)或者lR0=RM(_a)或DM(_a)=R0 2)绝对地址 3)具有更新的后修改模式lR0=DM(I3, M1)lDM(I2,1)=R1 4)基址加偏移量寻址lR0=DM(M1,I0)l如I0=0x2
11、0000000, M1=4l将0x20000004数据装入R0 5)循环缓冲区 6)反位寻址l应用于FFT3.9 控制流lJUMP foo跳转到fool三种寻址方式l直接寻址l间接寻址l相对PC寻址l条件跳转eg:lIF GT JUMP foo;SHARC分支条件lEQALU=0lLTALU0lLEALU=0lACALU进位lAVALU溢出lMV乘法器溢出lMS乘法器符号lSV移位器溢出lSZ移位器为0lFLAG0_IN标志0输入lFLAG1_IN标志1输入lFLAG2_IN标志2输入lFLAG3_IN标志3输入lTF 位测试lLCE循环计数器期满lNOT LCE循环计数器未期满l允许几个操作同时执行l允许一条指令进行多数据提取l以下操作可以在单指令完成:l定点累加和加、减或平均l浮点乘法和ALU操作l乘法与双加减l限制:操作数的来源来自不同输入口3.10 指令并行性总结 lARM属于微处理器,汇编及体系结构类似传统RISC的CPUlSHARC属于DSP,支持浮点操作与并行执行