收藏 分销(赏)

浙江大学嵌入式嵌入式系统3.pptx

上传人:精**** 文档编号:4212589 上传时间:2024-08-25 格式:PPTX 页数:128 大小:1.45MB
下载 相关 举报
浙江大学嵌入式嵌入式系统3.pptx_第1页
第1页 / 共128页
浙江大学嵌入式嵌入式系统3.pptx_第2页
第2页 / 共128页
浙江大学嵌入式嵌入式系统3.pptx_第3页
第3页 / 共128页
浙江大学嵌入式嵌入式系统3.pptx_第4页
第4页 / 共128页
浙江大学嵌入式嵌入式系统3.pptx_第5页
第5页 / 共128页
点击查看更多>>
资源描述

1、微处理器结构与实现技术简介浙江大学计算机学院浙江大学计算机学院浙江大学计算机学院浙江大学计算机学院陈天洲陈天洲陈天洲陈天洲20052005年年年年3 3月月月月2 2微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设计微处理器流水线结构设计微处理器逻辑设计与实现微处理器逻辑设计与实现处理器逻辑综合处理器逻辑综合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试3 3今天计算机体系结构的研究内容今天计算机体系结构的研究内容进一步提高单个微处理器的性能进一步提高单个微处理器的性能进一步提

2、高单个微处理器的性能进一步提高单个微处理器的性能基于微处理器的多处理器体系结构。基于微处理器的多处理器体系结构。基于微处理器的多处理器体系结构。基于微处理器的多处理器体系结构。全面提高计算机的系统性能:全面提高计算机的系统性能:全面提高计算机的系统性能:全面提高计算机的系统性能:可用性,可维护性,可缩放性。可用性,可维护性,可缩放性。可用性,可维护性,可缩放性。可用性,可维护性,可缩放性。新型器件的处理器。新型器件的处理器。新型器件的处理器。新型器件的处理器。4 4进一步提高单个微处理器的性能进一步提高单个微处理器的性能器件技术(器件技术(20052005年的年的 ICIC技术)技术)200M

3、transistors,0.1 feature size/onechip;200Mtransistors,0.1 feature size/onechip;2.0-3.5GHz,Pentium 1GHz;2.0-3.5GHz,Pentium 1GHz;0.9-1.2V(0.9-1.2V(工作电压)工作电压)工作电压)工作电压)高性能体系结构高性能体系结构 Embedded Computer SystemEmbedded Computer System Reconfigurable computer ArchitectureReconfigurable computer Architecture

4、 Power-aware computer ArchitecturePower-aware computer Architecture5 5高性能处理器所采用的一些技术高性能处理器所采用的一些技术 on-chip multilevel cacheon-chip multilevel cache及及及及pre-fetch bufferpre-fetch buffer 硬件实现进程的上下文切换硬件实现进程的上下文切换硬件实现进程的上下文切换硬件实现进程的上下文切换 大规模的片上分布式大规模的片上分布式大规模的片上分布式大规模的片上分布式DRAMDRAM 深度流水线深度流水线深度流水线深度流水线 8

5、-128-12 20 20级以上级以上级以上级以上 Advanced Super-scalarAdvanced Super-scalar:16-3216-32指令指令指令指令/clock cycle/clock cycle Super-speculative ProcessorSuper-speculative Processor:fine-grain heavy fine-grain heavy speculationspeculation Trace ProcessorTrace Processor Vector Intelligent RAM Procssor,V-IRAMVector

6、Intelligent RAM Procssor,V-IRAM on-chip multiprocessoron-chip multiprocessor Instruction-level Distributed Processing(ILDP)Instruction-level Distributed Processing(ILDP)Clustered Dependence-based ArchitectureClustered Dependence-based Architecture6 6新型器件的处理器新型器件的处理器光速极限问题光速极限问题 ICIC电路有极限:电路有极限:电路有极限

7、:电路有极限:线宽不能无限缩小;线宽不能无限缩小;线宽不能无限缩小;线宽不能无限缩小;性能价格性能价格性能价格性能价格 +低功耗低功耗低功耗低功耗新型器件新型器件 光计算机光计算机光计算机光计算机 分子计算机分子计算机分子计算机分子计算机 DNADNA计算机:利用计算机:利用计算机:利用计算机:利用DNADNA保存复杂信息的巨大存储保存复杂信息的巨大存储保存复杂信息的巨大存储保存复杂信息的巨大存储能力。用核苷酸的排列表示各种信息,生物酶充当能力。用核苷酸的排列表示各种信息,生物酶充当能力。用核苷酸的排列表示各种信息,生物酶充当能力。用核苷酸的排列表示各种信息,生物酶充当加减乘除操作,通过化学反

8、应得出计算结果。加减乘除操作,通过化学反应得出计算结果。加减乘除操作,通过化学反应得出计算结果。加减乘除操作,通过化学反应得出计算结果。7 78 89 9instruction setsoftwarehardware10101111指令集体系结构的设计内容指令集体系结构的设计内容 数据格式:数据格式:硬件能直接识别和处理的数据类型和格式等硬件能直接识别和处理的数据类型和格式等硬件能直接识别和处理的数据类型和格式等硬件能直接识别和处理的数据类型和格式等 寻址方式寻址方式:寻址方式的种类、表示方法和地址计算等寻址方式的种类、表示方法和地址计算等寻址方式的种类、表示方法和地址计算等寻址方式的种类、表

9、示方法和地址计算等 寄存器组织寄存器组织:操作数寄存器、变址寄存器、控制寄存器、及专用操作数寄存器、变址寄存器、控制寄存器、及专用操作数寄存器、变址寄存器、控制寄存器、及专用操作数寄存器、变址寄存器、控制寄存器、及专用寄存器等的定义、数量和使用方法。寄存器等的定义、数量和使用方法。寄存器等的定义、数量和使用方法。寄存器等的定义、数量和使用方法。指令系统指令系统:指令的选取。指令的操作数类型和格式。指令操作码指令的选取。指令的操作数类型和格式。指令操作码指令的选取。指令的操作数类型和格式。指令操作码指令的选取。指令的操作数类型和格式。指令操作码优化和控制机构等。优化和控制机构等。优化和控制机构等

10、。优化和控制机构等。存贮器系统存贮器系统:最大可编址空间、最小编址单位、编址方式和主存最大可编址空间、最小编址单位、编址方式和主存最大可编址空间、最小编址单位、编址方式和主存最大可编址空间、最小编址单位、编址方式和主存容量等。容量等。容量等。容量等。中断机构中断机构:中断的类型、中断分级、中断处理功能和中断入口地中断的类型、中断分级、中断处理功能和中断入口地中断的类型、中断分级、中断处理功能和中断入口地中断的类型、中断分级、中断处理功能和中断入口地址等。址等。址等。址等。机器级的结构机器级的结构:的联接方式、设备访问方式、数据的联接方式、设备访问方式、数据的联接方式、设备访问方式、数据的联接方

11、式、设备访问方式、数据的源、目的和吞吐量等。其它还包括:操作结束和出错指示。机的源、目的和吞吐量等。其它还包括:操作结束和出错指示。机的源、目的和吞吐量等。其它还包括:操作结束和出错指示。机的源、目的和吞吐量等。其它还包括:操作结束和出错指示。机器工作状态的定义和切换。信息保护保护方式等。器工作状态的定义和切换。信息保护保护方式等。器工作状态的定义和切换。信息保护保护方式等。器工作状态的定义和切换。信息保护保护方式等。1212指令系统结构评价的常规方法指令系统结构评价的常规方法1313测试程序的选择(测试程序的选择(1)实际程序实际程序 用户用来解决问题的实际工作程序,即实际的工作负用户用来解

12、决问题的实际工作程序,即实际的工作负用户用来解决问题的实际工作程序,即实际的工作负用户用来解决问题的实际工作程序,即实际的工作负载,尽管不知道在工作负载中所占的比例载,尽管不知道在工作负载中所占的比例载,尽管不知道在工作负载中所占的比例载,尽管不知道在工作负载中所占的比例.一般选择被用户广泛使用的、具有一定代表性的实际一般选择被用户广泛使用的、具有一定代表性的实际一般选择被用户广泛使用的、具有一定代表性的实际一般选择被用户广泛使用的、具有一定代表性的实际程序。程序。程序。程序。如如如如C C编译器编译器编译器编译器,文本编辑器等文本编辑器等文本编辑器等文本编辑器等,有输入有输入有输入有输入,输

13、出输出输出输出,参数参数参数参数核心基准测试程序核心基准测试程序(kernel benchmark)(kernel benchmark)从实际程序中抽出来的能代表整个程序运行的主要工从实际程序中抽出来的能代表整个程序运行的主要工从实际程序中抽出来的能代表整个程序运行的主要工从实际程序中抽出来的能代表整个程序运行的主要工作的核心代码段,适于独立评价某一方面的性能作的核心代码段,适于独立评价某一方面的性能作的核心代码段,适于独立评价某一方面的性能作的核心代码段,适于独立评价某一方面的性能 抽取条件:这一段代码必须决定整个程序的执行时间抽取条件:这一段代码必须决定整个程序的执行时间抽取条件:这一段代

14、码必须决定整个程序的执行时间抽取条件:这一段代码必须决定整个程序的执行时间 如如如如Livemore Loops(Livemore Loops(浮点循环浮点循环浮点循环浮点循环),Linpack),Linpack等等等等1414测试程序的选择(测试程序的选择(2 2)简单基准测试程序简单基准测试程序(toy benchmark)(toy benchmark)事先知道结果的小程序事先知道结果的小程序事先知道结果的小程序事先知道结果的小程序(10100(10100行行行行)FF如快速排序如快速排序如快速排序如快速排序,八皇后问题八皇后问题八皇后问题八皇后问题 等等等等综合基准程序综合基准程序(sy

15、nthetic benchmark)(synthetic benchmark)和核心基准程序有点类似,但它不是从单个实际程序和核心基准程序有点类似,但它不是从单个实际程序和核心基准程序有点类似,但它不是从单个实际程序和核心基准程序有点类似,但它不是从单个实际程序中提取,而是通过对大量的实际程序的执行情况进行中提取,而是通过对大量的实际程序的执行情况进行中提取,而是通过对大量的实际程序的执行情况进行中提取,而是通过对大量的实际程序的执行情况进行统计,根据各类操作和操作数的使用频率,人为设计统计,根据各类操作和操作数的使用频率,人为设计统计,根据各类操作和操作数的使用频率,人为设计统计,根据各类操

16、作和操作数的使用频率,人为设计出来的一段小规模测试程序。出来的一段小规模测试程序。出来的一段小规模测试程序。出来的一段小规模测试程序。如如如如Whetstone,DhrystoneWhetstone,Dhrystone等等等等1515指令系统与处理器结构的关系指令系统与处理器结构的关系1616指令系统与处理器结构的关系指令系统与处理器结构的关系1717指令系统考虑的问题指令系统考虑的问题1818微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设计微处理器流水线结构设计微处理器逻辑设计与实现微处理器逻辑设计与实现处理器逻辑综合处理器逻辑综

17、合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试1919微处理器的执行机制设计2020微处理器的执行机制设计2121微处理器的执行机制设计2222微处理器的执行机制设计2323微处理器的执行机制设计2424微处理器的执行机制设计2525流水线相关说明流水线相关说明2626微处理器的执行机制设计2727微处理器的执行机制设计2828微处理器的执行机制设计29293030313132323333多线索处理器举例多线索处理器举例3434微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设

18、计微处理器流水线结构设计微处理器逻辑设计与实现微处理器逻辑设计与实现处理器逻辑综合处理器逻辑综合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试3535微处理器流水线结构设计流水深度流水深度流水段的任务分配流水段的任务分配流水线相关流水线相关时钟设计时钟设计:周期周期,双时钟双时钟寄存器与锁存器寄存器与锁存器3636流水深度流水深度3737流水段的任务分配流水段的任务分配3838微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设计微处理器流水线结构设计微处理器逻辑设计与实现微处理器

19、逻辑设计与实现处理器逻辑综合处理器逻辑综合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试3939微处理器逻辑设计与实现处理器结构级评价工具总结处理器结构级评价工具总结寄存器级结构图寄存器级结构图指令逻辑寄存器级描述指令逻辑寄存器级描述指令物理寄存器级描述指令物理寄存器级描述数据通路设计数据通路设计控制器设计控制器设计中断控制设计中断控制设计处理器集成处理器集成4040处理器结构级评价工具总结:指令级模拟指令级模拟4141寄存器级结构图4242微处理器设计微处理器设计 4343处理器逻辑设计处理器逻辑设计:数据通路和控制器数据通路和控制器

20、4444微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设计微处理器流水线结构设计微处理器逻辑设计与实现微处理器逻辑设计与实现处理器逻辑综合处理器逻辑综合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试45455 行为级行为级/逻辑级验证逻辑级验证功能级验证确保处理器与系统结构一致等价验证确保设计结果与功能模型相匹配电子验证确保电路的正确性,在运行电压温度等环境下的稳定性流片前验证流片后验证4646验证的层次验证的层次系统验证芯片上系统验证行为级验证验证所实现的与所描述的一致性寄存

21、器传输级结构验证模拟验证模型检验门级/晶体管级逻辑等式检验4747微处理器的系统结构设计微处理器的系统结构设计微处理器的执行机制设计微处理器的执行机制设计微处理器流水线结构设计微处理器流水线结构设计微处理器逻辑设计与实现微处理器逻辑设计与实现处理器逻辑综合处理器逻辑综合(Synopsys)处理器物理综合处理器物理综合(Candence)处理器的验证与测试处理器的验证与测试48486 逻辑综合逻辑综合4949逻辑综合逻辑综合5050工艺库工艺库5151嵌入式体系结构嵌入式体系结构 嵌入式指令集嵌入式CPU存储器IO设计SOC 5252设计嵌入式系统的第一步设计嵌入式系统的第一步确定指令系统,以指

22、导选择嵌入式内核确定指令系统,以指导选择嵌入式内核5353嵌入式微内核嵌入式微内核嵌入式微处理器嵌入式微处理器嵌入式控制器嵌入式控制器嵌入式嵌入式DSPSOC(在片系统)(在片系统)本章介绍微处理器(本章介绍微处理器(ARM),),DSP(SHARC)5454一、计算机体系结构一、计算机体系结构1、冯、冯.诺依曼结构诺依曼结构五大部件:五大部件:ALU,Controller,Memory,Input,Output核心部件:早期是核心部件:早期是CPU,后来是,后来是Memory存储程序存储程序(stored program):程序以数字:程序以数字形式存在,可以与数据一样被读写形式存在,可以与

23、数据一样被读写5555指令执行次序:指令执行次序:顺序顺序顺序顺序跳转跳转跳转跳转程序计数器程序计数器Program Counter(PC)56562、哈佛体系结构、哈佛体系结构程序与数据有单独的存储器程序与数据有单独的存储器PC只能指向程序存储器只能指向程序存储器目前仍然广泛应用目前仍然广泛应用指令指令指令指令cachecache与数据与数据与数据与数据cachecache适用于实时信号处理(大部分的适用于实时信号处理(大部分的适用于实时信号处理(大部分的适用于实时信号处理(大部分的DSPDSP)大量数据流入计算机大量数据流入计算机大量数据流入计算机大量数据流入计算机 数据必须在精确的时间内

24、处理完成数据必须在精确的时间内处理完成数据必须在精确的时间内处理完成数据必须在精确的时间内处理完成57573、RISC与与CISCCISC:复杂指令系统计算机:复杂指令系统计算机RISC:精简指令系统计算机:精简指令系统计算机RISC一般性能比一般性能比CISC高高58584、汇编语言种类、汇编语言种类1)堆栈型汇编堆栈型汇编Push aPush bAddPop c59592)累加器型汇编累加器型汇编Load aAdd bStore c60603)通用寄存器型汇编通用寄存器型汇编Load$1,ALoad$2,BAdd$3,$1,$2Store$3,C6161二、二、ARM处理器处理器属于属于R

25、ISC体系体系自己不制造自己不制造VLSI设备,只提供授权设备,只提供授权ARM:只设计内核的英国公司:只设计内核的英国公司6262ARM内核系列ARM720T6363ARM720T特性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:Embedde

26、d ICE-RT real-time debug unit JTAG interface unit Interface for direct connection to Embedded Trace Macrocell(ETM)6464集成ARM内核的芯片ARM720TCirrus Logic公司EP7312三星:应用于手持设备与网络设备Intel:StrongArm系列&Xscale系列Motorola:手持设备(由68改过来)Cirrus Logic:EP73126565ARM内核ARM内核被授权给数百家厂商ARM主要应用于无线局域网、3G、手机、手持设备、有线网络通讯应用形式:集成到专用

27、芯片中作控制器6666ARM体系结构体系结构ARM7采用冯采用冯.诺依曼体系诺依曼体系ARM9采用哈佛体系采用哈佛体系对汇编程序员透明对汇编程序员透明6767ARM基本数据类型基本数据类型两种:两种:3232位长的字位长的字位长的字位长的字4 4个个个个8bit8bit的字节的字节的字节的字节6868地址地址32位地址长度位地址长度可以配置为低序或者高序可以配置为低序或者高序 字的最低位放最低位字节(低序)字的最低位放最低位字节(低序)字的最低位放最低位字节(低序)字的最低位放最低位字节(低序)字的最低位放最高位字节(高序)字的最低位放最高位字节(高序)字的最低位放最高位字节(高序)字的最低位

28、放最高位字节(高序)69692.1 汇编书写模式汇编书写模式属于通用寄存器型(属于通用寄存器型(GPR)汇编)汇编LoadStore结构结构数据必须装载到寄存器才能运算数据必须装载到寄存器才能运算数据必须装载到寄存器才能运算数据必须装载到寄存器才能运算LoadLoad从内存装到寄存器从内存装到寄存器从内存装到寄存器从内存装到寄存器StoreStore从寄存器存储到内存从寄存器存储到内存从寄存器存储到内存从寄存器存储到内存7070ARM的寄存器的寄存器16个通用寄存器个通用寄存器r0r15r0r15r15 r15 同时做同时做同时做同时做PCPC1个特殊寄存器:当前程序状态寄存器个特殊寄存器:当

29、前程序状态寄存器CPSR在进行运算时被自动设置在进行运算时被自动设置在进行运算时被自动设置在进行运算时被自动设置7171CPSR高四位为高四位为NZCVN:负数负数Z:为为0C:进位:进位V:溢出:溢出72722.2数据运算数据运算1)寄存器型指令:)寄存器型指令:add r0,r1,r2r1寄存器的内容加寄存器的内容加r2寄存器的内容,存到寄存器的内容,存到r07373算术运算算术运算AddAdd加加加加AdcAdc进位加进位加进位加进位加SubSub减减减减SbcSbc进位减进位减进位减进位减RsbRsb:逆减:逆减:逆减:逆减RscRsc:进位逆减:进位逆减:进位逆减:进位逆减MulMu

30、l:乘:乘:乘:乘MlaMla:乘且累加:乘且累加:乘且累加:乘且累加7474逻辑运算逻辑运算And:按位与:按位与Orr:按位或:按位或EOR:按位异或:按位异或BIC:位清除:位清除7575移位运算移位运算LSL:逻辑左移(添:逻辑左移(添0)LSR:逻辑右移(添:逻辑右移(添0)ASL:算术左移:算术左移ASR:算术右移:算术右移ROR:循环右移:循环右移RRX:带进位位的循环右移:带进位位的循环右移7676比较指令比较指令CMP:比较:比较CMN:比较求反:比较求反TST:按位测试:按位测试TEQ:按位测试求反:按位测试求反7777移动指令移动指令MOV:移动:移动MVN:移动求反:移

31、动求反7878内存访问指令内存访问指令LDRLDR:装入:装入:装入:装入STRSTR:存储:存储:存储:存储LDRHLDRH:装入半字:装入半字:装入半字:装入半字STRHSTRH:存储半字:存储半字:存储半字:存储半字LDRSHLDRSH:装入半个带符号字:装入半个带符号字:装入半个带符号字:装入半个带符号字LDRBLDRB:装入字节:装入字节:装入字节:装入字节STRBSTRB:存储字节:存储字节:存储字节:存储字节ADRADR:设置寄存器为地址:设置寄存器为地址:设置寄存器为地址:设置寄存器为地址79792)立即数寻址)立即数寻址Add r0,r1,#280803)寄存器间接寻址)寄存

32、器间接寻址LDR r0,r1,#481814)自动变址)自动变址LDR r0,r1,#16!r1的内容加的内容加16,然后用这个新值作为地址,然后用这个新值作为地址82825)后变址)后变址LDR r0,r1,#16把把r1为地址的内存数据载入到为地址的内存数据载入到r0,然后把,然后把r1的值加入的值加入16并把新值赋值给并把新值赋值给r183836)例子:)例子:x=(a+b)-c;ADR r4,aADR r4,aLDR r0,r4LDR r0,r4ADR r5,bADR r5,bLDR r1,r5LDR r1,r5ADD r3,r0,r1ADD r3,r0,r1ADR r4,cADR r

33、4,cLDR r2,r4LDR r2,r4SUB r3,r3,r2SUB r3,r3,r2LDR r4,xLDR r4,xSTR r3,r4STR r3,r484842.3 控制流控制流1)B指令指令分支指令分支指令分支目标计算例子分支目标计算例子B 100表示当前程序计数器的值加上表示当前程序计数器的值加上400。(。(100字长)字长)85852)条件码)条件码EQ:等于:等于0,Z1NE:不等于:不等于0,Z0CS:进位置:进位置1,C1CC:进位清除:进位清除:C0MI:负数,:负数,N1PL:非负数:非负数:N08686VSVS:溢出,:溢出,:溢出,:溢出,V V1 1VCVC:非

34、溢出:非溢出:非溢出:非溢出:V V0 0HIHI:无符号大于,:无符号大于,:无符号大于,:无符号大于,C C1 1且且且且Z Z0 0LSLS:无符号小于或等于,:无符号小于或等于,:无符号小于或等于,:无符号小于或等于,C C0 0或或或或Z Z1 1GEGE:有符号小于或等于,:有符号小于或等于,:有符号小于或等于,:有符号小于或等于,N NV VLTLT:有符号小于,:有符号小于,:有符号小于,:有符号小于,NVNVGTGT:有符号大于,:有符号大于,:有符号大于,:有符号大于,Z Z0 0且且且且N NV VLELE:有符号小于或等于,:有符号小于或等于,:有符号小于或等于,:有符

35、号小于或等于,Z Z1 1或或或或NVNV87873)例子:)例子:If(a b)X=5;X=5;Y=c+d;Y=c+d;ElseX=c-d;X=c-d;8888ADR r4,aLDR r0,r4ADR r4,bLDR r1,r4CMP r0,r1;a=b,goto fblockMOV r0,#5ADR r4,xSTR r0,r48989ADR r4,cLDR r0,r4ADR r4,dLDR r1,r4ADD r0,r0,r1;a+bADR r4,ySTR r0,r4B after;branch to end9090fblock:ADR r4,cfblock:ADR r4,cLDR r0,r

36、4LDR r0,r4ADR r4,dADR r4,dLDR r1.r4LDR r1.r4SUB r0,r0,r1SUB r0,r0,r1;a-b;a-bADR r4,xADR r4,xSTR r0,r4STR r0,r4after:after:9191同样同样c程序,用汇编可以写成不需要跳转的。程序,用汇编可以写成不需要跳转的。如下:如下:9292ADR r4,aLDR r0,r4ADR r4,bLDR r1,r4CMP r0,r1;ab?9393MOVLT r0,#5ADRLT r4,xSTRLT r0,r4ADRLT r4,cLDRLT r0,r4ADRLT r4,dLDRLT r1,r4

37、ADDLT r0,r0,r1;a+bADRLT r4,ySTRLT r0,r49494ADRGE r4,cLDRGE r0,r4ADRGE r4,dLDRGE r1.r4SUBGE r0,r0,r1;a-bADRGE r4,xSTRGE r0,r495952.4 函数函数X=a+b;X=a+b;Foo(x);Foo(x);Y=c-d;Y=c-d;汇编:汇编:汇编:汇编:BL fooBL foo;分支链接分支链接分支链接分支链接分支前将当前分支前将当前分支前将当前分支前将当前pcpc值存在值存在值存在值存在r14r14中。返回只要中。返回只要中。返回只要中。返回只要MOV r15,r14MOV

38、r15,r14调用过程必须注意不覆盖调用过程必须注意不覆盖调用过程必须注意不覆盖调用过程必须注意不覆盖r14r149696嵌套调用嵌套调用上述方法不适用于嵌套调用上述方法不适用于嵌套调用嵌套调用时,将返回地址存堆栈嵌套调用时,将返回地址存堆栈Void f1(int a)f2(a);f2(a);9797f1 LDR r0,r13STR r13!,r14STR r13!,r0BL f2SUB r13,#4LDR r13!,r159898三、三、SHARC处理器处理器使用哈佛结构的使用哈佛结构的DSP例子:例子:R1=DM(M0,I0),R2=PM(M8,I8);!注释注释LABEL:R3=R1+R

39、2;每条指令用分号结束,!开始为注释每条指令用分号结束,!开始为注释99993.1存储器结构存储器结构SHARCSHARC指令指令指令指令4848位位位位基本数据字基本数据字基本数据字基本数据字3232位位位位地址位地址位地址位地址位3232位位位位片上带大量的存储器片上带大量的存储器片上带大量的存储器片上带大量的存储器 系列中的系列中的系列中的系列中的2106121061有有有有1Mbit1Mbit片上存储器片上存储器片上存储器片上存储器存储器包括存储器包括存储器包括存储器包括 PMPM:程序存储器:程序存储器:程序存储器:程序存储器 DMDM:数据存储器:数据存储器:数据存储器:数据存储器

40、芯片外还能够加更多的存储器芯片外还能够加更多的存储器芯片外还能够加更多的存储器芯片外还能够加更多的存储器100100数据类型数据类型32位位IEEE单精度浮点单精度浮点40位位IEEE扩展精度浮点扩展精度浮点32位整数位整数主要设计为浮点密集型运算主要设计为浮点密集型运算适用适用DSP101101改进的哈佛结构改进的哈佛结构程序存储器可以包含数据与指令程序存储器可以包含数据与指令数据可以并行取出数据可以并行取出1021023.2 体系结构体系结构整数操作使用整数操作使用R0到到R15,16个整数寄存器个整数寄存器浮点操作使用浮点操作使用F0到到F15,16个浮点寄存器个浮点寄存器所有数据都是所

41、有数据都是40bit,如果,如果32位数据存储时,位数据存储时,存在高存在高32位位103103三个数据功能单元三个数据功能单元一个一个ALU一个乘法器一个乘法器一个移位器一个移位器104104三个模式寄存器三个模式寄存器算术状态(算术状态(ASTAT)粘着(粘着(STKY)模式模式1(MODE 1)1051053.3 整数运算整数运算Rn=Rx+RyRn=Rx+Ry加加加加Rn=Rx-RyRn=Rx-Ry减减减减Rn=Rx+Ry+CIRn=Rx+Ry+CI 进位加进位加进位加进位加Rn=Rx-Ry+CI-1Rn=Rx-Ry+CI-1借位减借位减借位减借位减Rn=(Rx+Ry)/2Rn=(Rx

42、+Ry)/2 平均平均平均平均COMP(Rx,Ry)COMP(Rx,Ry)比较比较比较比较Rn=Rx+CIRn=Rx+CI进位加进位加进位加进位加Rn=Rx+CI-1Rn=Rx+CI-1借位加借位加借位加借位加106106Rn=Rx+1加加1Rn=Rx-1减减1Rn=-Rx求反求反Rn=ABS Rx 绝对值绝对值Rn=PASS Rx将将Rx拷贝到拷贝到RnRn=Rx and Ry 逻辑加逻辑加Rn=Rx or Ry逻辑或逻辑或107107Rn=Rx xor Ry逻辑异或逻辑异或Rn=Not Rx逻辑非逻辑非Rn=Min(Rx,Ry)求最小值求最小值Rn=Max(Rx,Ry)求最大值求最大值Rn

43、=Clip Rx by Ry在在-Ry,Ry范围内范围内截取截取Rx108108溢出处理溢出处理溢出导致最大范围的值溢出导致最大范围的值不是循环不是循环1091093.4 浮点运算浮点运算Fn=Fx+FyFn=Fx-FyFn=ABS(Fx+Fy)Fn=ABS(Fx-Fy)Fn=(Fx+Fy)/2COMP(Fx,Fy)Fn=-Fx110110Fn=ABS FxFn=ABS FxFn=Pass FxFn=Pass FxFn=RND FxFn=RND Fx舍入舍入舍入舍入Fn=Scalb Fx by RyFn=Scalb Fx by Ry 用用用用RyRy换算成换算成换算成换算成FxFx的指数的指数

44、的指数的指数Rn=Mant FxRn=Mant Fx提取提取提取提取FxFx的尾数的尾数的尾数的尾数Rn=LOGB FxRn=LOGB Fx 把把把把FxFx的指数换算成整数的指数换算成整数的指数换算成整数的指数换算成整数Rn=FIX Fx,Rn=TRUNC Fx Rn=FIX Fx,Rn=TRUNC Fx 将浮点转换成整数将浮点转换成整数将浮点转换成整数将浮点转换成整数Rn=FLOAT Rx by Ry,FLOAT Rx Rn=FLOAT Rx by Ry,FLOAT Rx 将整数换成将整数换成将整数换成将整数换成浮点浮点浮点浮点111111Fn=RECIPS Fx为倒数创建种子为倒数创建种

45、子Fn=RSQRTS Fx为倒数平方根创建种子为倒数平方根创建种子Fn=Fx COPYSIGN Fy 把把Fy的符号拷贝的符号拷贝到到FxFn=Min(Fx,Fy)Fn=Max(Fx,Fy)Fn=Clip Fx by Fy1121123.5 SHARC的移位操作的移位操作Rn=LSHIFT Rx by RyRn=LSHIFT Rx by Ry逻辑移位逻辑移位逻辑移位逻辑移位RyRy位位位位Rn=Rn OR SHIFT Rx by RyRn=Rn OR SHIFT Rx by Ry逻辑移位并逻逻辑移位并逻逻辑移位并逻逻辑移位并逻辑或辑或辑或辑或Rn=ASHIFT Rx by RyRn=ASHIF

46、T Rx by Ry算术移位算术移位算术移位算术移位Rn=Rn OR ASHIFT Rx by RyRn=Rn OR ASHIFT Rx by Ry算术移位并逻算术移位并逻算术移位并逻算术移位并逻辑或辑或辑或辑或Rn=ROT Rx by RyRn=ROT Rx by Ry循环移位循环移位循环移位循环移位RyRy位位位位Rn=BCLR Rx by RyRn=BCLR Rx by Ry 清清清清RxRx中的一位中的一位中的一位中的一位Rn=BSET Rx by RYRn=BSET Rx by RY 设设设设RxRx中的一位中的一位中的一位中的一位113113Rn=BTGL Rx by Ry切换切换

47、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 提取指数域提取指数域114114Rn=EXP Rx(Ex)从从ALU中提取指数域中提取指数域Rn=LEFTZ Rx提取引导提取引导0的个数的个数Rn=LEFTO Rx提取引导提取引导1的个数的个数Rn=FPACK Fx将将32位浮点数转换为位浮点数转换为16位浮点数位浮点数Rn=FUNP

48、ACK Rn将将16位浮点数转位浮点数转换为换为32位浮点数位浮点数1151153.6 数操作状态位数操作状态位ASTAT中有中有AZ,AU,AN,AV,AC,AI,MN,MV,MU,MI,SZ,SV,SSSTKY中溢出位中溢出位AOS,MOS,MVS,MUS,MIS具体含义略具体含义略1161163.7内存操作内存操作装入存储体系结构装入存储体系结构提供用来控制装入和存储的特殊寄存器提供用来控制装入和存储的特殊寄存器两个数据地址发生器(两个数据地址发生器(DAG)一个是数据存储器一个是数据存储器一个是数据存储器一个是数据存储器一个是程序存储器一个是程序存储器一个是程序存储器一个是程序存储器D

49、AG能够象对数组一样进行访问数据能够象对数组一样进行访问数据1171173.8 DAG寻址模式寻址模式1)最简单的立即值最简单的立即值R0=DM(0 x20000000)或者)或者R0=RM(_a)或或DM(_a)=R02)绝对地址绝对地址3)具有更新的后修改模式具有更新的后修改模式R0=DM(I3,M1)DM(I2,1)=R11181184)基址加偏移量寻址基址加偏移量寻址R0=DM(M1,I0)如如I0=0 x20000000,M1=4将将0 x20000004数据装入数据装入R05)循环缓冲区)循环缓冲区6)反位寻址)反位寻址应用于应用于应用于应用于FFTFFT1191193.9 程序例

50、子程序例子X=(a+b)-c120120R0=DM(_a);R1=DM(_b);R3=R1+R2;R2=DM(_c);R3=R3-R2;DM(_x)=R31211213.10 控制流控制流JUMP foo跳转到跳转到foo三种寻址方式三种寻址方式直接寻址直接寻址直接寻址直接寻址间接寻址间接寻址间接寻址间接寻址相对相对相对相对PCPC寻址寻址寻址寻址条件跳转条件跳转eg:IF GT JUMP foo;122122SHARC分支条件分支条件EQALU=0LTALU0LEALUb)y=c-d;y=c-d;Elsey=c+d;y=c+d;125125可并行执行的汇编可并行执行的汇编R1=DM(_a);

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服