DSP课件第四章TMS320LF240x的数据寻址方式_第1页
DSP课件第四章TMS320LF240x的数据寻址方式_第2页
DSP课件第四章TMS320LF240x的数据寻址方式_第3页
DSP课件第四章TMS320LF240x的数据寻址方式_第4页
DSP课件第四章TMS320LF240x的数据寻址方式_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP原理及应用·第四章TMS320LF240x的数据寻址方式深入理解数字信号处理器的核心数据访问机制Contents课程目录系统掌握寻址方式的核心原理与编程实践01寻址方式基础概念与存储器结构02立即寻址方式详解03直接寻址方式详解04间接寻址方式详解05寻址方式综合应用与编程实践CHAPTER01寻址方式基础概念与存储器结构理解寻址方式的定义、分类与TMS320LF240x的存储器组织TMS320LF240x·指令系统数据寻址方式数据寻址方式是CPU在执行指令时寻找操作数地址的方法,它直接决定了指令的灵活性、执行效率和代码密度。寻址方式概述定义CPU获取操作数的路径与规则,是指令系统设计的核心环节,直接影响程序编写方式和运行效率。合理的寻址方式设计能够简化代码结构,提升数据处理速度,降低存储空间占用。核心机制·三大类立即寻址常数直接嵌入指令字中,适用于固定系数和常量的加载,无需访问外部存储器即可获取数据。执行速度快,代码紧凑,特别适合初始化寄存器和加载常数运算。零访存·指令自带直接寻址通过地址偏移量配合数据页指针定位存储单元,适用于已知固定地址的数据读写操作。结合数据页寄存器可实现大地址空间访问,兼顾寻址范围与指令长度。页指针·偏移寻址间接寻址利用辅助寄存器作为地址指针,特别适用于数组遍历、循环缓冲和实时信号处理中的数据流操作。支持自动增减、循环寻址等高级特性,大幅提升数据处理效率。辅助寄存器·灵活高效CPUArchitectureTMS320LF240xCPU核心结构TMS320LF240x的CPU由硬件乘法器、输入定标移位器和中央算术逻辑单元三大核心组成,它们通过内部总线高效互联。寻址方式本质上就是控制数据从存储器流向这些运算单元的路径选择机制。16×16位硬件乘法器采用16×16位硬件乘法器,可在单个时钟周期内产生32位有符号或无符号乘积结果被乘数来自数据/程序存储器,乘数来自临时寄存器TREG,结果存入32位乘积寄存器PREG乘积移位器将PREG中的结果进行移位定标后送入CALU,实现高效的乘加运算链输入定标移位器与CALU输入定标移位器将16位输入数据调整为32位送至CALU,该过程不占用额外时钟周期中央算术逻辑单元CALU执行16位加减、布尔逻辑、位测试、移位和循环等运算功能CALU接收来自输入移位器和乘积移位器的32位数据,运算结果通过输出移位器写回DATAMEMORY数据存储器空间组织TMS320LF240x拥有64K字的数据存储空间,片内含B0/B1/B2三个DARAM块。在直接寻址模式下,64K空间被划分为512个数据页(每页128字),这种分页结构是实现'DP指针+7位偏移量'寻址机制的物理基础。01数据存储空间总容量为64K字(65536个16位单元),每个存储单元可存放一个16位有符号或无符号数据02片内包含3个双访问RAM块:B0可配置为数据或程序存储器,B1和B2专用于数据存储0364K空间在直接寻址下划分为512个数据页,每页128个字单元,页号由高9位地址确定,页内偏移由低7位确定04数据存储器支持直接寻址和间接寻址两种访问模式,两种模式可以混合使用以满足不同的数据处理需求TMS320LF240x片内DARAM块配置DARAM块功能配置地址范围特点B0可配置为数据存储器或程序存储器灵活复用,适配不同程序需求B1专用于数据存储器固定数据存储空间B2专用于数据存储器固定数据存储空间B0块的双模式配置能力为程序优化提供了灵活性,B1和B2提供稳定的数据存储空间TMS320LF240x·寻址体系三种寻址方式核心对比立即寻址、直接寻址和间接寻址分别对应"操作数在指令中"、"地址在指令中"和"地址在寄存器中"三种数据获取逻辑,构成完整的数据访问体系。立即寻址01操作数直接包含在指令字中,无需访问数据存储器02短立即(8/9/13位)与长立即(16位)两种形式03适用于固定系数加载、常量初始化与简单算术运算常数内嵌直接寻址017位偏移量配合DP指针(9位)组成16位物理地址02可访问512个数据页面中的128个字单元03适用于全局变量、I/O端口与固定地址区数据读写DP+偏移间接寻址01通过辅助寄存器AR0-AR7作为地址指针间接访问02支持地址自动递增/递减和变址,适合数组遍历03DSP实时处理最常用方式,支撑FIR、FFT等算法AR0–AR7CHAPTER02立即寻址方式详解从短立即寻址到长立即寻址,深入理解常数操作数的指令编码机制INSTRUCTIONSET·ADDRESSING立即寻址方式基本概念立即寻址将操作数直接嵌入指令字中,通过'#'号标识,无需访问数据存储器。短立即与长立即两种形式分别适用于不同范围的常数操作。直接取数操作数直接包含在指令中,执行时无需额外访问数据存储器,取指阶段即获得全部操作信息。零延迟语法标识立即数前加'#'号标识:#100为十进制,#4000h为十六进制常数。#前缀短立即寻址单个指令字,操作数为8/9/13位常数,嵌入在操作码之后的指定字段中。8-13bit长立即寻址两个指令字:首字包含操作码,次字存放完整16位常数,支持更大范围数值操作。16bit空间权衡短立即指令紧凑高效,长立即指令牺牲存储空间换取更大的数值表示范围。效率vs范围SHORTIMMEDIATEADDRESSING短立即寻址:指令编码与实例短立即寻址将8/9/13位常数嵌入单指令字的低位字段中,操作码占据高位字段。以RPT#100为例,8位常数100直接编码在指令字D7-D0位中,操作码占据D15-D8位,实现紧凑高效的单字指令操作。SECTION01指令编码结构▸短立即指令为单字(16位)结构,高位为操作码字段,低位为立即数常数字段。这种设计使得指令在存储器中占用空间最小化,同时保持足够的操作灵活性。▸8位常数占据D7-D0位,可表示0-255范围;9位和13位常数则根据指令类型分配不同的位域,满足DSP算法中对数据精度和范围的多样化需求。▸操作码字段同时包含指令类型信息和数据移位控制信息,实现一条指令承载多种控制语义,显著提升指令集的表达能力和代码密度。SECTION02RPT指令实例分析▸RPT#100:将下一条指令重复执行101次(N+1次),8位常数100编码为二进制01100100。这种重复执行机制避免了循环控制指令的开销,实现零开销循环。▸该指令的二进制编码为1011101101100100,操作码10111011标识RPT指令类型,立即数字段01100100表示重复次数减1,单字完成复杂循环控制。▸在FIR滤波器等DSP算法中,RPT指令配合立即寻址可高效实现循环乘加运算。典型的MAC指令配合RPT,单周期完成一次乘加,极大提升数字信号处理效率。InstructionEncoding长立即寻址:双字指令编码长立即寻址使用两个指令字实现16位常数的加载:第一个字包含操作码和移位控制信息,第二个字存放完整16位常数。这种双字结构牺牲了一定的指令紧凑性,但将常数表示范围扩展到完整的16位(0-65535)。双字编码结构01第一个指令字包含操作码(高位)和移位次数等控制信息(低位),标识指令类型和操作方式02第二个指令字完整存放16位常数,支持0-65535的全部无符号数或-32768到32767的有符号数范围03长立即指令占用2个程序存储器字,相比短立即指令多消耗一倍的程序存储空间ADD指令实例分析01ADD#16384,2:将立即数16384左移2位后与累加器内容相加,16384即十六进制4000h02第一字编码含ADD操作码和移位次数2,第二字存放16位常数4000h(二进制0100000000000000)03移位操作由输入定标移位器完成,左移2位相当于乘以4,最终参与运算的值为65536InstructionAddressing短立即与长立即寻址对比短立即寻址以单指令字承载8/9/13位常数,长立即寻址以双指令字承载16位常数。编程时应优先选用短立即寻址以节省程序存储空间,仅当常数超出短立即位宽范围时才切换为长立即寻址。立即寻址方式关键参数对比对比维度短立即寻址长立即寻址常数位宽8位/9位/13位16位指令字数量1个指令字(16位)2个指令字(32位)8位常数范围0~255不适用16位常数范围不适用0~65535(无符号)程序空间占用较小(单字)较大(双字)典型应用场景循环计数、小常数加载大常数运算、地址常量短立即寻址在代码紧凑性上占优,长立即寻址在数值表示范围上占优,两者互补覆盖不同编程需求ApplicationScenarios立即寻址的典型应用场景立即寻址在DSP编程中主要用于滤波器系数初始化、循环次数控制、移位量指定和寄存器配置四大场景。其"常数随指令走"的特性使其成为程序初始化和固定参数传递的首选方式。滤波器系数加载FIR/IIR滤波器的固定系数通过立即寻址逐一写入数据存储器,确保系数精度和加载效率FIR/IIR循环次数控制RPT指令配合短立即数指定重复执行次数,在卷积、相关和FFT蝶形运算中实现高效循环RPT/FFT算术移位参数加减乘除指令中的移位量常以立即数形式指定,如"ADD#data,shift"中的shift即为立即数Shift寄存器初始化配置系统启动时通过立即数设置状态寄存器ST0/ST1的控制位,配置中断模式、溢出处理等ST0/ST1CHAPTER03直接寻址方式详解理解数据页指针DP与7位偏移量如何协同构建16位物理地址DataAddressing直接寻址的地址生成机制直接寻址通过状态寄存器ST0中的9位数据页指针DP与指令中的7位偏移量拼接,共同生成16位物理地址,同页内操作只需改变偏移量。16-BITADDRDP×128+Offset01指令中的7位偏移量(0–127)指定当前数据页内的具体存储单元位置,由指令寄存器IR的低7位提供IR[6:0]02状态寄存器ST0中的数据页指针DP为9位,确定512个数据页中的目标页号,作为地址的高9位ST0.DP0316位物理地址=DP值(高9位)×128+偏移量(低7位),两者拼接形成完整的数据存储器访问地址9+7=16bit04同一数据页内的连续操作无需修改DP值,只需改变指令中的7位偏移量,减少了地址切换的开销零切换InstructionRegisterArchitecture直接寻址的指令寄存器结构直接寻址模式下,16位指令寄存器IR的D7位为'0'标识直接/间接寻址模式,D6-D0提供7位页内偏移量,D15-D8包含指令类型和移位控制信息。这种位字段分配使单条指令同时承载操作类型、移位参数和地址偏移三重信息。指令寄存器位字段分配01D15-D8(8MSBs):指令类型字段,同时包含数据移位相关信息,决定具体的操作类型02D7位:寻址方式标识位,'0'表示直接寻址或间接寻址模式,'1'表示其他寻址方式03D6-D0(7LSBs):数据存储器偏移量,直接提供页内0-127的存储单元地址索引状态寄存器ST0中的DP01数据页指针DP:位于ST0寄存器中,占9位,取值范围0-511,对应512个数据页02LDPK指令加载:DP值可通过LDPK指令加载,如'LDPK#4'将DP设为4,指向第4数据页03编程优化建议:切换数据页需要额外的LDPK指令,因此应尽量将相关数据安排在同一数据页内ADDRESSINGMODE直接寻址地址计算实例直接寻址的物理地址计算公式为:物理地址=DP×128+偏移量。通过具体实例可以清晰看到,DP确定页面基址,偏移量确定页内位置,两者协同实现64K空间的精确定位。编程时需先用LDPK指令设置正确的DP值。01实例1:DP=004h,偏移量=60h004h×80h+60h=260h02实例2:DP=1FFh,偏移量=7Fh1FFh×80h+7Fh=FFFFh(64K末尾)03编程流程:先用LDPK指令设置DP值(如LDPK#4),再用带偏移量的指令访问目标数据单元04跨页访问:访问不同数据页时必须重新加载DP值,否则将访问错误的存储区域直接寻址地址计算示例表DP值(页号)偏移量页面基址物理地址000h(第0页)00h0000h0000h004h(第4页)60h0200h0260h080h(第128页)40h4000h4040h1FFh(第511页)7FhFF80hFFFFh通过DP值和偏移量的不同组合,可以覆盖0000h到FFFFh的全部64K数据存储空间DIRECTADDRESSING直接寻址编程注意事项核心在于DP寄存器初始化、数据页布局优化与D7位寻址标识,良好的规划可显著减少LDPK指令频率。01DP初始化必须优先所有使用直接寻址的程序必须在首次直接寻址指令前用LDPK指令初始化DP值,否则DP的随机初始值将导致访问错误的存储区域。LDPK02数据页布局优化将频繁共同访问的变量(如滤波器输入缓冲、系数数组)分配在同一数据页内,减少DP切换次数。同页聚合03跨页访问安全每次跨页访问前必须重新加载DP值,建议在高频率的数据处理循环中避免跨页操作。循环内避免04与间接寻址配合在复杂算法中可将直接寻址用于全局变量访问,间接寻址用于数组遍历,两者互补使用。互补策略CHAPTER04间接寻址方式详解掌握辅助寄存器AR0-AR7的地址指针机制与自动修改功能AddressingMode间接寻址基本概念与辅助寄存器间接寻址通过8个辅助寄存器AR0-AR7的内容作为地址指针访问数据存储器,每次访问后指针可自动递增/递减。这种"取数+移指针"的一体化操作使间接寻址成为DSP数组处理和信号流操作的核心机制。0116位物理地址间接寻址使用辅助寄存器AR0–AR7的值作为数据存储器的16位物理地址,可访问64K空间中的任意单元。02多路独立指针8个辅助寄存器提供多路独立指针,可同时追踪多个数据缓冲区,如输入缓冲、系数数组与输出缓冲。03自动地址修改每次间接寻址访问后,辅助寄存器的值可按预定义规则自动增或减,无需额外指令更新指针。04ARAU并行计算辅助寄存器辅助算术单元ARAU负责地址计算,与CALU并行工作,地址更新不占用ALU运算周期。ADDRESSINGMODE辅助寄存器自动修改方式辅助寄存器的自动修改机制是间接寻址灵活性的核心:支持+1/-1/±0的基本修改和以AR0为增量的变址操作。基本修改方式+1增量访问后ARx自动加1,指向下一个存储单元,适用于数组正向顺序遍历-1减量访问后ARx自动减1,指向上一存储单元,适用于反向遍历和栈结构操作±0不变访问后ARx保持不变,适用于反复读写同一地址(如I/O端口轮询)AR0变址操作+AR0步长增量ARx=ARx+AR0,实现跨步访问,适用于数据抽取和插值-AR0步长减量ARx=ARx−AR0,实现反向跨步访问BR0位反转支持位反转寻址,专门用于FFT算法中的蝶形运算数据重排DSPArchitecture辅助寄存器算术单元ARAUARAU是独立于CALU的地址运算硬件单元,负责在每个指令周期内自动完成辅助寄存器的地址更新。它与CALU的并行运行机制使DSP能够在单周期内同时完成'数据读取+算术运算+地址更新'三重操作,这是DSP高效率的硬件基础。独立运行架构ARAU独立于CALU运行,专门负责辅助寄存器的地址加减运算,地址更新不占用CALU的算术运算资源独立运算单周期三重并行CALU执行乘加运算的同时,ARAU同步完成地址指针更新,实现数据读取、运算、地址更新三线并行1Cycle·3Ops多种寻址模式支持+1/-1/±0的基本修改和以AR0为增量的变址运算,变址结果可回写到辅助寄存器组中AR0IndexedARP指针机制当前辅助寄存器指针ARP(3位)在状态寄存器ST0中指定8个AR中哪一个正在被用作当前地址指针3-bit·8ARINDIRECTADDRESSING间接寻址实例:数组遍历累加间接寻址通过辅助寄存器指针自动递增实现数组的顺序遍历,每次访问同时完成数据读取和指针更新。01初始化阶段LARAR2,#300h将辅助寄存器AR2加载为数组首地址,建立数据访问起始指针02循环体指令APAC*+使用间接寻址读取AR2指向的数据并累加到ACC,AR2自动加1指向下一元素03完成累加循环10次后,AR2从300h递增到30Ah,10个数据单元已全部累加到ACC中04对比直接寻址直接寻址需10条不同偏移量指令或额外地址计算代码,效率显著降低间接寻址数组遍历过程追踪循环次数AR2值(访问前)访问的数据单元AR2值(访问后)第1次300h数据[300h]301h第2次301h数据[301h]302h第3次302h数据[302h]303h…………第10次309h数据[309h]30AhAR2从300h逐步递增到30Ah,每步自动完成数据访问和指针更新,无需额外地址计算指令DSPINDIRECTADDRESSING间接寻址应用:FIR滤波器实现FIR滤波器的核心运算是系数与信号数据的乘累加,需要同时遍历两组数组。间接寻址利用AR2和AR3分别作为系数指针和信号指针,在单循环中同步完成双数组遍历和乘累加运算,是DSP实现实时滤波的基石。FIR滤波器算法结构01FIR滤波器输出公式y(n)=Σh(k)·x(n-k),需要对N个系数和N个信号样本逐一做乘累加02系数数组h(k)和信号缓冲x(n-k)分别存储在数据存储器的不同区域,需要两路独立指针同步遍历03乘累加运算要求在每个时钟周期内完成一次乘法和一次加法,对寻址效率提出极高要求间接寻址实现方案01AR2初始化为系数数组首地址,AR3初始化为信号缓冲区首地址,两路指针并行工作02循环体内使用两条间接寻址指令分别读取系数和信号数据,指针各自自动加1移向下一元素03MACD指令结合间接寻址可在单周期内完成乘法、累加和数据移位三重操作,实现最高效的滤波运算ADDRESSINGMODE·DSP位反转寻址:FFT专用模式位反转寻址是间接寻址的特殊变址模式,通过将AR0中的步长值按二进制位反转后加到辅助寄存器上,自动生成FFT蝶形运算所需的数据重排地址序列。01基2-FFT位反转规则输入数据按位反转顺序排列,8点FFT中索引001反转为100,即第1和第4个数据交换001→10002AR0步长反转运算AR0中的步长值进行二进制位反转运算后,与当前ARx值相加产生新的位反转地址AR0+ARx03ARAU硬件直接实现无需软件层面逐位提取和重排,大幅降低FFT地址计算的指令开销ARAU04数倍性能提升比纯软件地址计算快数倍,是TMS320系列DSP高效FFT运算的关键特性TMS320CHAPTER05寻址方式综合应用与编程实践在实际DSP算法中灵活组合三种寻址方式,掌握高效编程策略ADDRESSINGMODES寻址方式选型指南寻址方式的选择取决于数据访问模式:常数操作选立即寻址、固定地址访问选直接寻址、数组遍历和信号流处理选间接寻址。立即寻址加载固定常数和滤波器系数到寄存器或存储器中指定循环次数(RPT指令)和移位量等控制参数系统初始化时配置状态寄存器和控制寄存器常数·控制参数直接寻址访问固定地址的全局变量和中间计算结果I/O端口映射地址的读写操作数据页内已知位置的状态标志和控制字更新固定地址·I/O间接寻址数组顺序遍历、循环缓冲区的读写操作FIR/IIR滤波、FFT等核心信号处理算法的数据访问多路数据流的并行处理(利用多个AR寄存器同时追踪)数组·信号流综合案例信号增益调整程序信号增益调整程序展示了三种寻址方式的协同使用:立即寻址加载增益系数、直接寻址读取数组长度、间接寻址遍历信号数组做乘法运算。这种混合使用模式是DSP编程中的典型范式,各寻址方式在各自最擅长的环节发挥作用。立即寻址LT#100将增益系数100加载到临时寄存器TREG中,作为后续乘法运算的固定乘数直接寻址LACLSIG_LEN从固定地址读取信号数组长度到ACC中,作为循环计数器的初始值间接寻址MPYK*+使用AR2指针遍历信号数组,每个元素乘以增益系数后写回,AR2自动加1循环控制BANZ指令根据ACC中的计数值决定是否继续循环,每次循环ACC自动减1直到为0DSP开发板编程调试工作场景DSPOptimization寻址方式优化策略围绕数据页内聚、间接寻址、短立即数、多AR并行与位反转五大策略,系统提升DSP程序执行效率。DATAPAGECOHESION数据页内聚策略将频繁共同访问的变量分配到同一128字数据页内,减少LDPK指令使用频率,降低DP切换开销。128字/页INDIRECTADDRESSING循环内间接优先循环体内的数据访问尽量使用间接寻址配合指针自动修改,避免在循环中加入额外的地址计算指令。AR自动更新SHORTIMMEDIATE短立即优先原则常数在8/9/13位范围内时优先使用短立即寻址,节省程序存储器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论