




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第二章、嵌入式体系结构 n嵌入式指令集嵌入式指令集n嵌入式嵌入式CPUn存储器存储器nIO设计设计nSOC 设计嵌入式系统的第一步n确定指令系统,以指导选择嵌入式内核嵌入式微内核n嵌入式微处理器n嵌入式控制器n嵌入式DSPnSOC(在片系统)n本章介绍微处理器(ARM),DSP(SHARC)一、计算机体系结构n1、冯.诺依曼结构n五大部件:nALU,Controller, Memory, Input,Outputn核心部件:早期是CPU,后来是Memoryn存储程序(stored program):程序以数字形式存在,可以与数据一样被读写n指令执行次序:n顺序n跳转n程序计数器Program
2、Counter(PC)2、哈佛体系结构n程序与数据有单独的存储器nPC只能指向程序存储器n目前仍然广泛应用n指令cache与数据cachen适用于实时信号处理(大部分的DSP)n大量数据流入计算机n数据必须在精确的时间内处理完成3、RISC与CISCnCISC:复杂指令系统计算机nRISC:精简指令系统计算机nRISC一般性能比CISC高4、汇编语言种类n1)堆栈型汇编nPush anPush bnAddnPop c2)累加器型汇编nLoad anAdd bnStore c3)通用寄存器型汇编nLoad $1, AnLoad $2, BnAdd $3, $1, $2nStore $3, C二、
3、ARM处理器n属于RISC体系n自己不制造VLSI设备,只提供授权nARM:只设计内核的英国公司ARM内核系列 ARM720TARM720T特性 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-
4、time debug unit JTAG interface unit Interface for direct connection to Embedded Trace Macrocell (ETM)集成ARM内核的芯片 ARM720TCirrus Logic公司EP7312 三星:应用于手持设备与网络设备 Intel:StrongArm系列&Xscale系列 Motorola:手持设备(由68改过来) Cirrus Logic:EP7312ARM内核 ARM内核被授权给数百家厂商 ARM主要应用于无线局域网、3G、手机、手持设备、有线网络通讯 应用形式:集成到专用芯片中作控制器AR
5、M体系结构nARM7采用冯.诺依曼体系nARM9采用哈佛体系n对汇编程序员透明ARM基本数据类型n两种:n32位长的字n4个8bit的字节地址n32位地址长度n可以配置为低序或者高序n 字的最低位放最低位字节(低序)n 字的最低位放最高位字节(高序)2.1 汇编书写模式n属于通用寄存器型(GPR)汇编nLoadStore结构n数据必须装载到寄存器才能运算nLoad从内存装到寄存器nStore从寄存器存储到内存ARM的寄存器n16个通用寄存器nr0r15nr15 同时做PCn1个特殊寄存器:当前程序状态寄存器CPSRn在进行运算时被自动设置CPSRn高四位为NZCVnN:负数nZ:为0nC:进位
6、nV:溢出2.2数据运算n1)寄存器型指令:nadd r0, r1, r2nr1寄存器的内容加r2寄存器的内容,存到r0算术运算nAdd加nAdc进位加nSub减nSbc进位减nRsb:逆减nRsc:进位逆减nMul:乘nMla:乘且累加逻辑运算nAnd:按位与nOrr:按位或nEOR:按位异或nBIC:位清除移位运算nLSL:逻辑左移(添0)nLSR:逻辑右移(添0)nASL:算术左移nASR:算术右移nROR:循环右移nRRX:带进位位的循环右移比较指令nCMP:比较nCMN:比较求反nTST:按位测试nTEQ:按位测试求反移动指令nMOV:移动nMVN:移动求反内存访问指令nLDR:装入
7、nSTR:存储nLDRH:装入半字nSTRH:存储半字nLDRSH:装入半个带符号字nLDRB:装入字节nSTRB:存储字节nADR:设置寄存器为地址2)立即数寻址nAdd r0, r1, #23)寄存器间接寻址nLDR r0, r1, #44)自动变址nLDR r0,r1, #16!nr1的内容加16,然后用这个新值作为地址5)后变址nLDR r0, r1, #16n把r1为地址的内存数据载入到r0,然后把r1的值加入16并把新值赋值给r16)例子:x=(a+b)-c;nADR r4, anLDR r0, r4nADR r5, bnLDR r1, r5nADD r3, r0, r1nADR
8、r4, cnLDR r2, r4nSUB r3, r3, r2nLDR r4, xnSTR r3, r42.3 控制流n1)B指令n分支指令n分支目标计算例子nB 100n表示当前程序计数器的值加上400。(100字长)2)条件码nEQ:等于0,Z1nNE:不等于0,Z0nCS:进位置1,C1nCC:进位清除:C0nMI:负数,N1nPL:非负数:N0nVS:溢出,V1nVC:非溢出:V0nHI:无符号大于,C1且Z0nLS:无符号小于或等于,C0或Z1nGE:有符号小于或等于,NVnLT:有符号小于,NVnGT:有符号大于,Z0且NVnLE:有符号小于或等于,Z1或NV3)例子:nIf (
9、a b )nnX=5;nY=c+d;nnElsenX=c-d;nADR r4, anLDR r0, r4nADR r4, bnLDR r1, r4nCMP r0, r1;a=b, goto fblocknMOV r0, #5nADR r4, xnSTR r0, r4nADR r4, cnLDR r0, r4nADR r4, dnLDR r1, r4nADD r0, r0, r1;a+bnADR r4, ynSTR r0, r4nB after;branch to endnfblock: ADR r4, cnLDR r0, r4nADR r4, dnLDR r1. r4nSUB r0, r0,
10、r1;a-bnADR r4, xnSTR r0,r4nafter:n同样c程序,用汇编可以写成不需要跳转的。n如下:ADR r4, aLDR r0, r4ADR r4, bLDR r1, r4CMP r0, r1;ab?MOVLT r0, #5ADRLT r4, xSTRLT r0, r4ADRLT r4, cLDRLT r0, r4ADRLT r4, dLDRLT r1, r4ADDLT r0, r0, r1;a+bADRLT r4, ySTRLT r0, r4ADRGE r4, cLDRGE r0, r4ADRGE r4, dLDRGE r1. r4SUBGE r0, r0, r1;a-b
11、ADRGE r4, xSTRGE r0,r42.4 函数nX=a+b;nFoo(x);nY=c-d;n汇编:nBL foo;分支链接n分支前将当前pc值存在r14中。返回只要nMOV r15, r14n调用过程必须注意不覆盖r14嵌套调用n上述方法不适用于嵌套调用n嵌套调用时,将返回地址存堆栈nVoid f1(int a)nnf2 (a);nnf1 LDR r0, r13nSTR r13!, r14nSTR r13!, r0nBL f2nSUB r13, #4nLDR r13!, r15三、SHARC处理器n使用哈佛结构的DSPn例子:nR1=DM(M0,I0), R2=PM(M8,I8);
12、!注释nLABEL: R3=R1+R2;n每条指令用分号结束,!开始为注释3.1存储器结构nSHARC指令48位n基本数据字32位n地址位32位n片上带大量的存储器n系列中的21061有1Mbit片上存储器n存储器包括nPM:程序存储器nDM:数据存储器n芯片外还能够加更多的存储器数据类型n32位IEEE单精度浮点n40位IEEE扩展精度浮点n32位整数n主要设计为浮点密集型运算n适用DSP改进的哈佛结构n程序存储器可以包含数据与指令n数据可以并行取出3.2 体系结构n整数操作使用R0到R15,16个整数寄存器n浮点操作使用F0到F15,16个浮点寄存器n所有数据都是40bit,如果32位数据
13、存储时,存在高32位三个数据功能单元n一个ALUn一个乘法器n一个移位器三个模式寄存器n算术状态(ASTAT)n粘着(STKY)n模式1(MODE 1)3.3 整数运算nRn=Rx+Ry加nRn=Rx-Ry减nRn=Rx+Ry+CI 进位加nRn=Rx-Ry+CI-1借位减nRn=(Rx+Ry)/2 平均nCOMP(Rx, Ry) 比较nRn=Rx+CI进位加nRn=Rx+CI-1借位加nRn=Rx+1加1nRn=Rx-1减1nRn=-Rx求反nRn=ABS Rx绝对值nRn=PASS Rx 将Rx拷贝到RnnRn=Rx and Ry 逻辑加nRn=Rx or Ry 逻辑或nRn=Rx xor
14、 Ry逻辑异或nRn=Not Rx逻辑非nRn=Min(Rx, Ry)求最小值nRn=Max(Rx, Ry)求最大值nRn=Clip Rx by Ry 在-Ry,Ry范围内截取Rx溢出处理n溢出导致最大范围的值n不是循环3.4 浮点运算nFn=Fx+FynFn=Fx-FynFn=ABS(Fx+Fy)nFn=ABS(Fx-Fy)nFn=(Fx+Fy)/2nCOMP(Fx, Fy)nFn=-FxnFn=ABS FxnFn=Pass FxnFn=RND Fx舍入nFn=Scalb Fx by Ry用Ry换算成Fx的指数nRn=Mant Fx提取Fx的尾数nRn=LOGB Fx把Fx的指数换算成整数n
15、Rn=FIX Fx, Rn= TRUNC Fx 将浮点转换成整数nRn=FLOAT Rx by Ry, FLOAT Rx 将整数换成浮点nFn=RECIPS Fx为倒数创建种子nFn=RSQRTS Fx为倒数平方根创建种子nFn=Fx COPYSIGN Fy把Fy的符号拷贝到FxnFn=Min(Fx, Fy)nFn=Max(Fx, Fy)nFn=Clip Fx by Fy3.5 SHARC的移位操作nRn=LSHIFT Rx by Ry逻辑移位Ry位nRn=Rn OR SHIFT Rx by Ry逻辑移位并逻辑或nRn=ASHIFT Rx by Ry算术移位nRn=Rn OR ASHIFT R
16、x by Ry算术移位并逻辑或nRn=ROT Rx by Ry循环移位Ry位nRn=BCLR Rx by Ry清Rx中的一位nRn=BSET Rx by RY设Rx中的一位nRn=BTGL Rx by Ry切换Rx中的1位nBTST Rx by Ry测试Rx中的1位nRn=FDEP Rx by Ry将Rx中的域累计进Rn中nRn=Rn OR FDEP Rx by Ry使用OR操作累计并符号扩展nRn=FEXT Rx by Ry提取Rx中的域nRn=EXP Rx提取指数域nRn=EXP Rx (Ex)从ALU中提取指数域nRn=LEFTZ Rx提取引导0的个数nRn=LEFTO Rx提取引导1的
17、个数nRn=FPACK Fx将32位浮点数转换为16位浮点数nRn=FUNPACK Rn 将16位浮点数转换为32位浮点数3.6 数操作状态位nASTAT中有AZ, AU, AN, AV, AC, AI, MN, MV, MU, MI, SZ, SV, SSnSTKY中溢出位AOS, MOS, MVS, MUS, MISn具体含义略3.7内存操作n装入存储体系结构n提供用来控制装入和存储的特殊寄存器n两个数据地址发生器(DAG)n一个是数据存储器n一个是程序存储器nDAG能够象对数组一样进行访问数据3.8 DAG寻址模式n1)最简单的立即值nR0=DM(0 x20000000)或者nR0=RM
18、(_a)或DM(_a)=R0n2)绝对地址n3)具有更新的后修改模式nR0=DM(I3, M1)nDM(I2,1)=R1n4)基址加偏移量寻址nR0=DM(M1,I0)n如I0=0 x20000000, M1=4n将0 x20000004数据装入R0n5)循环缓冲区n6)反位寻址n应用于FFT3.9 程序例子nX=(a+b)-cnR0=DM(_a);nR1=DM(_b);nR3=R1+R2;nR2=DM(_c);nR3=R3-R2;nDM(_x)=R33.10 控制流nJUMP foo跳转到foon三种寻址方式n直接寻址n间接寻址n相对PC寻址n条件跳转eg:nIF GT JUMP foo;SHARC分支条件nEQALU=0nLTALU0nLEALUb)ny=c-d;nElseny=c+d;可并行执行的汇编nR1=DM(_a);nR8=DM(_b);nR2=DM(_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《联想网络营销》课件
- 车资金过桥合同协议
- 特约分销协议书
- 通州学位租赁合同协议
- 《培养自信自爱》课件
- 《神奇数学》课件
- 无证离婚协议书
- 暗股转让协议书
- 未住宿舍协议书
- 公厕厕纸抽纸采购合同
- 计算机wps一级excel操作题单选题100道及答案
- 血液安全管理制度
- 2025年中国南水北调集团有限公司所属水网发展研究有限公司招聘笔试参考题库附带答案详解
- 施工框架协议范本
- 采购合规培训
- 洁净室空调净化系统验证方案(通过BSI和华光审核)
- 上市公司执行企业会计准则案例解析
- 财务岗位招聘笔试题及解答(某大型国企)2025年
- 第六次全国幽门螺杆菌感染处理共识报告-
- 盖房四邻签字协议书范文
- 电影与幸福感学习通超星期末考试答案章节答案2024年
评论
0/150
提交评论