




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/TigerSHARC系列DSP应用教程苏涛崔向阳西安电子科技大学雷达信号处理国家重点实验室2012年10月
目录TigerSHARC系列DSP应用教程 1第1章DSP技术综述 31.1数字信号处理器的开展和特点 31.2数字信号处理器的应用领域 3第2章ADSP-TS201S处理器结构与功能 32.1ADSP-TS201S处理器概述 32.2ADSP-TS201S的计算块 32.2.1存放器组 32.2.3CLU 32.2.4乘法器 32.2.5移位器 32.3IALU 32.3.1IALU存放器 32.3.2IALU算术、逻辑和函数操作 32.3.3IALU执行状态与执行条件 32.3.4IALU执行条件 32.3.5IALU数据寻址和传送操作 32.4程序控制器 32.5存储器组织 32.5.1主机寻址空间 32.5.2处理器内部存储空间 32.5.3外部存储器寻址空间 32.5.4多处理器寻址空间 32.6链路口 32.6.1链路口存放器 32.6.2链路口模式设置 32.6.3链路口DMA 32.6.4链路口连接与通信 32.6.5链路口效劳请求中断 32.7SDRAM接口 32.7.1概述 32.7.2SDRAM控制存放器(SDRCON) 32.8DMA 32.8.1概述 32.8.2DMA状态和控制存放器组 32.8.3链式DMA 32.8.4DMA中断 32.9中断 32.9.1中断的处理过程 32.10ADSP-TS201S引脚说明 3第三章TigerSHARC指令系统 33.1TIGERSHARC指令系统特点 33.1.1TigerSHARC结构与指令特点 33.1.2指令行结构 33.2指令集 33.2.1ALU指令 33.2.2乘法指令 33.2.3移位器指令 33.2.4IALU指令 33.2.5程序流控制指令 3第4章ADSP的软件开发 34.1DSP的软件开发流程 34.2开发工具VisualDSP++概述 34.3集成开发环境 34.3.1创立一个新的工程文件 34.3.2设置工程选项 34.3.3添加或编辑工程源文件 34.3.4生成一个调试版的工程 34.3.5调试一个工程 34.3.6生成一个正式版的工程 34.4选择适宜的调试平台 34.4.1安装仿真器驱动软件 34.4.2选择调试平台 34.5Debugger工具 34.5.1程序调试(Debug)操作 34.5.2程序性能分析操作 34.5.3设置观察点和断点 34.5.4模仿硬件环境 34.5.5存放器窗口操作 34.5.6存储器窗口操作 34.5.7其它窗口操作 34.6编写链接描述文件 34.7编程练习 34.7.1DFT汇编例子 34.7.2DFTC程序例子 34.7.3FIR汇编的例子 34.7.4SDRAM和内部存储器的DMA通信(利用EZ-KIT) 34.7.5编写C程序,建立磁盘文件,练习读写数据 34.7.6调试器和EZ-KIT板的性能比较 34.7.7用ADSP_TS201EZ-KIT板实现定时器 34.7.8用链路口实现数据传输 34.7.9DSP实验课大作业设计 3
第1章DSP技术综述数字信号处理相对于模拟信号处理有很大的优越性,表现在精度高、灵活性大、可靠性好、易于大规模集成等方面。随着人们对实时信号处理要求的不断提高和大规模集成电路技术的迅速开展,数字信号处理技术也发生着日新月异的变革。1.1数字信号处理器的开展和特点实时数字信号处理技术的核心和标志是数字信号处理器(DSP)。数字信号处理有别于普通的科学计算与分析,它强调运算处理的实时性,因此DSP除了具备普通微处理器所强调的高速运算和控制功能外,针对实时数字信号处理,在处理器结构、指令系统、指令流程上做了很大的改动,其结构特点如下:DSP普遍采用了数据总线和程序总线别离的哈佛结构及改良的哈佛结构,比传统处理器的冯·诺依曼结构有更高的指令执行速度;DSP大多采用流水技术,即每条指令都由片内多个功能单元分别完成取指、译码、取数、执行等多个步骤,从而在不提高时钟频率的条件下减少了每条指令的执行时间;片内有多条总线可以同时进行取指和多个数据存取操作,并且有辅助存放器用于寻址,它们可以在寻址访问前或访问后自动修改内容,以指向下一个要访问的地址;针对滤波、相关、矩阵运算等需要大量乘法累加运算的特点,DSP配有独立的乘法器和加法器,使得同一时钟周期内可以完成相乘、累加运算,最新出现的如ADSP-TS101、ADSP-TS201系列的DSP可以同时完成乘、加、减各2次运算,大大加快了FFT的蝶形运算速度;许多DSP带有DMA通道控制器,以及串口通信等,配合片内多总线结构,数据块传送速度大大提高;配有中断处理器和定时控制器,可以很方便地构成一个小规模系统;具有软、硬件等待功能,能与各种存储器连接。数字信号处理器(DSP)、通用微处理器(MPU)、微控制器(MCU)三者的区别在于:DSP面向高性能、重复性、数值运算密集型的实时处理;MPU大量用于计算机;MCU则用于以控制为主的处理过程。而DSP本身具有以下功能,提高了实时数字信号处理的性能:单指令周期的乘、加操作;特殊的高速寻址方式,可以在其他操作进行的同时完成地址存放器指针的修改,并具有循环寻址、位反序寻址功能。循环寻址用于FIR滤波器,可以省去相当于迟延线功能的大量数据移动,用于FFT则可以紧凑地存放旋转因子表;位反序有利于FFT的快速完成;针对实时处理所设计的存储器接口,能在单指令周期时间内完成屡次存储器或I/O设备访问;专门的指令集和较长的指令字,一个指令字同时控制片内多个功能单元的操作;单片系统,易于小型化设计;低功耗,一般为0.5—4W,采用低功耗技术的DSP只有0.1W,可用电池供电,对嵌入式系统很适合,而新型MPU,如Pentium、PowerPC等功耗达20-50W。因此,DSP的运算速度要高得多。以FFT、相关为例,高性能DSP不仅处理速度是MPU的4~10倍,而且可以流水无间断地完成数据的实时输入和输出。DSP结构相对单一,普遍采用汇编语言编程,其任务完成时间的可预测性相对于结构和指令复杂(超标量指令)、严重依赖于编译系统的MPU要强得多。以一个FIR滤波器为例,每输入一个数据,对应每阶滤波器系统需要一次乘、一次加、一次取指、两次取数,有时还需要专门的数据移动操作,DSP可以单周期完成乘加并行操作以及3~4次数据存取操作,而普通MPU至少需要4个指令周期,因此在相同的指令周期和片内缓存条件下,DSP是MPU运算速度的4倍以上。正是基于DSP的这些优势,在高性能通用微处理器片内已经融入了DSP的功能,从而使计算机在网络通信、语音图像处理、实时数据分析等方面的效率大大提高。自1985年第一片数字信号处理器TMS320C10产生以来,DSP开展大致经历了多个阶段,形成了目前DSP产品的三类档次:第一类是低本钱、低功耗、高性价比的16bit定点DSP,应用最广泛,代表产品是TMS320C2000、TMS320C5000、Blackfin等型号;第二类是32bit浮点DSP,目前代表产品有TMS320C3x、ADSP2106x等型号;第三类是性能更高的DSP,如定点的TMS320C62xx、TMS320C64xx,浮点的TMS320C67xx、ADSP-TS10x、ADSP-TS20x等型号。不同类型的DSP适用于不同的场合。定点DSP可以胜任大多数数字信号处理应用,速度比浮点DSP快,本钱、功耗比浮点DSP低;但在某些场合,当信号处理方式复杂、数据的动态范围很大时,按定点处理就会发生数据上溢出或下溢出,使信号处理无法进行。如果仍用定点DSP,以移位定标或模拟浮点运算的方式,将使程序执行速度大大降低。若采用浮点DSP,就解决了这些问题。常见的16bit定点DSP动态范围仅96dB,每增加1bit,动态范围增加6dB;而32bit浮点数据的动态范围为1536dB。因此,浮点DSP的处理性能在许多情况下要比定点DSP高得多。32位浮点DSP也可以完成32位定点运算(与定点DSP用法一致),目前的浮点DSP还具备更大的存储访问空间。更重要的是,浮点DSP的汇编程序比定点DSP的汇编程序简单:、易读、易编程、易调试,产生的代码也短,与常用的C编程方法相近,因此目前高级语言(如C语言)编译器更适合于浮点DSP,这使得普通计算机上的源代码无需大的修改,就可以较方便地移植到DSP设计中。虽然目前已经有了峰值运算能力超过每秒10亿次的DSP,但相对于人们要求的每秒几百亿次、上千亿次运算来说仍远远不够。受到开关速度极限的限制,进一步提高主频所遇到的难度和付出的本钱越来越大,单处理器性能的提高受到制约。为此,引入了并行处理技术。其实在DSP内部的多级流水处理、同时相乘/累加进行等功能中已经融入了片内并行技术。TMS320C6x采用超长指令字(VLIW)和多级流水线技术,在每条256bit的指令字中指定了多条流水线、多个处理单元的并行操作。在DSP外部也采用并行技术。以TMS320C4x、SHARC、ADSP-TS10x和ADSP-TS20x等并行DSP为用户提供了设计大规模并行系统的硬件基础,它们都提供了多通信(链路)口、多DSP共享总线的控制逻辑。利用通信(链路)口可以组成松耦合的分布式并行系统,利用共享总线控制逻辑,可方便地直接构成共享总线/存储器的多DSP系统,即紧耦合的总线共享式并行系统。1.2数字信号处理器的应用领域随着DSP性能的迅速提高和本钱价格的大幅度下降,DSP的应用范围不断扩大,几乎普及整个电子领域,常见的典型应用有:1.通用数字信号处理数字滤波、卷积、相关、FFT、希尔伯特变换、自适应滤波、窗函数、波形发生等。2.通信高速调制解调器、编/译码器、自适应均衡器、传真、程控交换机、蜂房移动电话、数字基站、手机、回音消除、噪声抑制、电视会议、保密通信、卫星通信、TDMA/PDMA/CDMA等各种通信制式。随着互联网络的迅猛开展,DSP又在网络管理/效劳、信息转发、IP电话等新领域扮演着重要角色,而软件无线电的提出和开展进一步增强了DSP在无线电通信系统的作用。3.语音识别语音识别、语音合成、矢量编码、语音信箱。4.图形/图像处理三维图像变换、模式识别、图像增强、动画、电子出版、电子地图等。5.自动控制磁盘、光盘、打印机伺服控制、发动机控制。6.仪器仪表测量数据谱分析、自动监测及分析、静态分析、勘探、模拟试验。7.医学电子助听器、CT扫描、超声波、心脑电图、核磁共振、医疗监护等。8.军事与尖端科技雷达和声纳信号处理、雷达成像、自适应波束合成、阵列天线信号处理、导弹制导、火控系统、战场C3I系统、导航、全球定位GPS、目标搜索跟踪、尖端武器试验、航空航天试验、宇宙飞船、侦察工具。9.计算机与工作站阵列处理机、计算加速卡、图形加速卡、多媒体计算机。10.消费电子数字电视、高清晰度电视、图像/声音压缩解压器、DVD/CD播放机、游戏机、数字留言/应答机、汽车电子装置、音响合成、电子平安系统、家电电脑控制装置。
第2章ADSP-TS201S处理器结构与功能2.1ADSP-TS201S处理器概述ADSP-TS201S是ADI公司的高性能数字信号处理器TigerSHARC系列中最强大的一员,这一系列还包括有:ADSP-TS101、ADSP-TS202等。ADSP-TS201S内核工作主频达600MHz,片内存储器增加到24Mbit,加之其合理的结构以及高带宽的I/O接口,使得ADSP-TS201S在无线通信、军事、图像等高端市场的应用更加广泛。图2.1给出了ADSP-TS201S的功能框图。图2.1ADSP-TS201S的功能框图ADSP-TS201S的主要性能如下:高达600MHz的运行速度,1.67ns指令周期;24Mbit片内DRAM;25mm×25mm(576-Ball)PBGA封装;双运算核,每个计算块包含1个ALU、1个乘法器、1个移位器、一个存放器组和1个通信逻辑运算单元;双整数ALU,提供数据寻址和指针操作功能;集成I/O接口,包括14通道的DMA控制器,外部总线,4个链路口,SDRAM控制器,可编程标志引脚,2个定时器及其输出指示;IEEE1149.1兼容的JTAG端口用于在线仿真;通过共享外部总线可无缝连接多达8个TS201。其主要优点有:提供高性能静态超标量DSP操作,专门优化适用于通信和需要多DSP处理器的应用;优异的DSP算法和I/O性能表现;DMA控制器支持14个DMA通道,可完成片内存储器,片外存储器,存储器映射外设,链路口,主机处理器和其他多处理器之间的低开销的高速传输;非常灵活的指令集和支持高级语言的DSP结构,便于DSP编程;可扩展的多处理器系统,连接时仅需很低的通信开销;ADSP-TS201SDSP内核的结构ADSP-TS201S系列的DSP内核主要包括运算块、程序控制器、整型ALU、数据对齐缓冲器和中断控制器等。双运算模块ADSP-TS201S的运算模块包括两个能通过相互独立或一起工作,执行通用运算来实现单指令多数据(SIMD)引擎的计算单元,分别称为运算块X,运算块Y。每个运算模块又包含一个存放器组和4个独立的运算单元:算术逻辑运算单元(ALU)、通信逻辑处理单元(CLU)、乘法器、移位器。这些模块都能处理定点数和浮点数,可满足各种不同的处理要求。每个运算块包含的通用存放器组是32位宽、多端口的,用于运算单元与数据总线之间数据传输,存储中间结果。这些存放器都可以单字、双字、四字存放器方式访问。ALU完成定点数和浮点数的算术运算、定点数的逻辑运算,大多数ALU运算的数据源和目的地均为运算块的存放器组。CLU完成通信处理,支持通信处理的算法,如Viterbi解码、Turbocode解码、CDMA系统解调。乘法器主要完成定点数和浮点数的乘法运算,定点数的乘累加运算,并且支持各种定点数和浮点数的数据格式。移位器完成算术和逻辑移位,比特和比特流控制,域存储和提取操作。双整数ALU(IALU)ADSP-TS201S拥有两个IALU。能提供强大的地址产生能力和执行通用的整数操作。每个IALU能够:(1)为数据提供存储器地址,为寻址提供指针的更新;(2)支持循环缓冲和位反序寻址;(3)实现通用的整数操作,提高了编程的灵活性;(4)包含一个由32个字构成的存放器组。作为地址产生器,IALU完成立即或间接寻址(预修改或后修改),不受限制地完成存储器地址取模和位反序。每个IALU能够指定单、双、四字的内存访问。IALU通过硬件支持来实现循环缓冲、位反序和零开销循环。每个IALU提供了4个循环缓冲的存放器,因此程序能够建立最多8个循环缓冲器,循环缓冲器的起始地址是任意的。程序控制器ADSP-TS201S的程序控制器支持如下功能:可灵活的使用汇编语言和C/C++,编写能够相应中断的程序。以高吞吐量处理中断并且不存在错误的指令周期。10个指令周期流水线——四个周期取指流水,六个周期执行流水——运算结果将会在操作数可用的两个周期以后得到。提供指令寻址内存地址;控制器的指令对齐缓冲器(IAB)可以缓存最多5条预取来的指令行,以后续等待执行,程序控制器从IAB中提取指令行,并将指令发给内核模块来执行。管理由CJMP,CALL,RTI,RTS指令,循环结构,条件,中断和软件异常决定的程序结构和程序流程。用分支预测和128入口分支目标缓冲器(BTB)来减少分支跳转的延时,以实现条件和无条件跳转指令的高效执行和零消耗循环;正确预测跳转是零开销的,能够减少5~9个周期的开销。中断控制器DSP支持嵌套和非嵌套中断。每种中断类型在中断向量表中拥有一个存放器,并且在中断锁存存放器和中断屏蔽存放器中占一位。除了可以被设置为边沿触发或电平触发以外,其他中断被固定设置为边沿触发(或电平触发)。DSP能够区分硬件中断和软件异常,并分别处理。当软件出现异常时,DSP中止流水线中的所有指令。当硬件中断发生时,DSP将继续执行已经在流水线中的指令。ADSP-TS201SDSP总线的结构和片内DRAM存储器ADSP-TS201S的总线结构分为内部总线和外部总线,外部总线由外部引脚连接到处理器外。内部总线ADSP-TS201S处理器内核有3条相互独立的128位的内部数据总线和32位的地址总线(称为I-BUS、J-BUS、K-BUS),每条数据总线借助接口桥与所有内部存储器块相连。每条数据总线上,1个周期内允许传输多达4条指令或4个排列好的数据。片内系统单元用SOC-BUS和S-BUS总线访问存储器。在一个周期内,每个存储器块只能允许一次访问,所以应用中如果能设法把各个访问指向不同的存储器块,则这些访问可同时进行。外部总线与接口ADSP-TS201S的片内系统总线(SOCBUS)通过SOC结构与S-BUS连接外部总线及存储器系统,如图2.2所示,所有外设都通过片内系统总线,SOC接口与S-BUS连接,进而与存储器系统、处理器核内存放器交换数据。图2.2ADSP-TS201S的SOC总线结构与接口外部总线包括32或64位数据总线、32位地址总线以及各种控制信号。其中大多数信号是双向的,因为在共享总线的多处理器系统中,TigerSHARC可以是连接在外部总线上的主控处理器,也可以是从处理器。为了提高时钟的速率,TigerSHARC处理器使用了流水式外部总线,其流水深度是可编程的,可完成处理器间通信、访问同步SRAM和DRAM(即SSRAM和SDRAM)。最快速的协议是流水协议。TigerSHARC多处理器系统的处理器之间就是使用这个协议通信。此外,TigerSHARC还能通过此协议与其他主机或存储器系统连接。流水协议的峰值吞吐率为每个外部周期传输一个数据,其实际的吞吐率可以保持在与峰值吞吐率非常接近的水平,其中的一个原因是此协议对连续的数据流的地址范围没有限制。另一快速协议是SDRAM。这个协议由工业标准的SDRAM芯片定义。TigerSHARC有一个片上SDRAM控制器,它可以提供访问SDRAM所需的所有控制信号(/RAS,/CAS,/SDWE,SDCKE,LDQM,HDQM),而且可以初始化、刷新SDRAM。SDRAM的峰值吞吐率是每个周期传输一个数据。如在同一页中连续访问,则实际吞吐率可以保持在非常接近最大值的水平,此条件对DMA块传输也同样适用。但对SDRAM的单次访问开销是很大的。TigerSHARC还支持慢速设备协议。慢速设备协议适用于较慢速的设备。对于大多数系统,我们建议将这些慢速设备连接在二级总线上,因为它们会增加总线负担,影响快速协议。当然,慢速设备仍可以直接连接到TigerSHARC外部总线上。外部总线有以下特点:总线宽度64位或32位,对存储器、多处理器或主机接口可独立配置此宽度;流水传输,且流水级数可编程;IDLE状态可编程;通过使用ACK引脚,可插入等待周期;EPROM和FLASH接口为8位数据总线,等待周期数固定,可读写;主机接口;SDRAM接口不插入等待周期;支持慢速设备;基于分布式总线仲裁的多处理器无缝连接;通过握手方式,支持与外部I/O设备的DMA传输;支持外部存储器与I/O设备间的DMA飞跃操作。片内DRAM存储器ADSP-TS201S拥有24Mbit片上DRAM存储器,该存储器被分为6个4Mbit的块,每个存储块(M0,M2,M4,M6,M8,M10)能够存储程序、数据或同时存储数据和程序。所以,在应用中能够根据具体需要配置。将程序和数据存储在不同的块中时,DSP就可以在取指令的同时访问数据。每个片内存储块通过总线桥与处理器内部4条128位宽的内部总线相连。该连接使DSP能够在1个周期内完成4个128位内部传输。DSP内部总线结构提供了33.6GB/s的存储器带宽,使内核和I/O可以在一个周期内访问8个32位数据字(256位)和4个32位指令。DSP的这种灵活的存储器结构,使其能完成如下功能:DSP内核和I/O在同一周期里访问不同的存储块;DSP内核可并行访问3个存储块:1个取指令,2个访问数据;可编程的程序存储器和数据存储器分区;程序可以用16位、32位、64位或128位的形式访问所有存储器(使用DAB)。ADSP-TS201S的I/O结构ADSP-TS201S由专门的I/O处理器用于I/O访问,I/O访问方式可以是内核控制方式,也可以是DMA方式,此外,ADSP-TS201S还有专门的SDRAM控制器,专门产生SDRAM访问时所需的控制信号。外部总线(片外存储器和外设接口)ADSP-TS201S提供了外部总线用于连接外部存储器和其他外设。4G字的寻址空间在DSP统一的寻址空间中。独立的片内总线(4条128位数据总线,4条32位地址总线)通过复用开关连接外部系统总线,该总线提供了64位的数据总线和32位的地址总线。外部端口能提供1000MB/s的访问速度。主机接口ADSP-TS201S在外部总线和主机处理器之间提供了方便的接口。为了能和各种主机处理器配合工作,主机接口支持流水线或慢速协议,用于从机访问。每种协议带有可编程的传输参数,例如空闲等待、流水深度、插入等待状态等。主机接口支持主机初始化的突发传输模式。在主机发出开始地址后,使信号有效,DSP将会在主机继续有效时增加地址。主机接口提供了死锁恢复机制,使得主机能从DSP死锁中恢复。信号提供了死锁恢复机制。当主机有效时,DSP取消当前的传输,并使信号有效,放弃了外部总线。主机能够直接读写ADSP-TS201S的片内存储器,能够访问DSP的大多数存放器,包括DMA控制存放器。多处理器接口ADSP-TS201S通过外部总线和链路口为多处理器DSP系统设计集成了无缝多处理器支持功能。这种多处理器接口为处理器间通信提供了最大的带宽,包括:共享总线支持多达8个DSP;为无缝多处理器连接提供片内仲裁;用于点对点通信的链路口。SDRAM控制器SDRAM控制器控制ADSP-TS201S与同步DRAM间的数据传输,每个SCLK周期传送32位或64位数据。 SDRAM接口提供与标准SDRAM——16Mbit、64Mbit、128Mbit和256Mbit的无缝接口。有4个BANK,每个都支持最大达64M字×32位的SDRAM。SDRAM被映射到DSP统一的存储空间中。EPROM接口ADSP-TS201S能够被配置为复位后从外部8位EPROM自动引导。复位后自动从EPROM装载程序到片内存储器,装载过程读访问时插入16个等待周期。引导时引脚用作EPROM的片选信号。EPROM引导过程使用DMA通道0,将字节型数据打包成32位的指令。应用程序也可以通过DMA随意访问EPROM。DMA控制器ADSP-TS201S片上DMA控制器拥有14个DMA通道,提供无处理器核干预的零开销数据传输。DMA控制器独立工作,对DSP内核是不可见的。DMA可以在以下部件之间进行。片内存储器、外部存储器及存储器映射的外设共享总线上的其他DSP的片内存储器、主机处理器或链路口外部存储器、外设或链路口外部主处理器和片内存储器或链路口链路口ADSP-TS201S的4个链路口提供额外4位的全双向I/O能力。以双倍速率(CCLK上升和下降沿)锁存数据,当内核时钟为500MHz时,即单方向速率可高达500MB/s,每个链路口双向通信最高吞吐量可达1GB/s。定时器和通用I/OADSP-TS201S有一个定时器溢出引脚(TIM0E),当编程的定时器计数满时产生高电平输出。有4个可编程的I/O引脚(FLAG3~0),可以用作输入或输出。作为输出使用时,这些引脚可以驱动外设;作为输入时,可以用作条件分支指令的判断条件。2.2ADSP-TS201S的计算块 DSP有两个计算块——计算块X和计算块Y。每个块包含一个通用存放器组和四个独立的计算部件——ALU、CLU、乘法器和移位器。2.2.1存放器组计算块的选择所用的存放器在哪个计算块里,用存放器名前缀X和Y表示:X表示只在计算块X中,Y表示只在计算块Y中,XY(或没有前缀)表示在两个块中。计算块前缀允许你选择在一个还是在两个计算块里运行指令,该前缀提供单指令单数据(SISD)和单指令多数据(SIMD)模式之间的选择。如果相同的算法用来处理两个通道的数据,使用SIMD执行是最优的。值得注意的是,在SISD和SIMD的模式切换无延迟。SISD和SIMD模式总是可以通过简单地选择存放器名而实现。存放器宽度选择 每个独立的存放器堆存放器(XR31-0和YR31-0)是32位宽的。为了支持比32位字更宽的数据长度,DSP汇编语法允许存放器组合。Rn表示包含一个32位(或更少位数)的单存放器(如R1),Rnd表示包含一个64位(或更少位数)的双存放器(最低位存放器的序号要求能被2整除,如R1:0),Rnq表示包含一个128位(或更少位数)的四存放器(最低位存放器的序号要求能被4整除,如R7:4)。操作数的长度和格式的选择 存放器命名的汇编语法允许选择操作数长度和定点或浮点数据格式。单、双和四存放器(Rs,Rsd,Rsq)保存着指令的操作数(输入和输出)。根据操作数长度和定点或浮点格式,一个存放器里可放置多个操作数。B——表示字节(8位)数据;S——表示短字(16位)数据;无——表示标准字(32位)数据;L——表示长字(64位)数据。 为区别定点和浮点数据,用存放器名前缀F表示存放器包含浮点数据。数据格式DSP支持IEEE标准754/854的32位单精度浮点数据格式。此外,DSP支持此格式的40位扩展精度版本,该版本在其尾数中增加八位。DSP也支持8、16、32和64位定点格式——小数和整数——可以是有符号数(2的补码)或无符号数。2.2.2ALU 这个单元执行所有的算术操作(加/减法),处理的数据是定点和浮点格式;执行逻辑操作,处理的数据是定点格式。ALU也执行数据转换操作,如定点格式数据的扩展/压缩。ALU也运行专用通信功能操作,主要支持解码和CDMA扩展操作。在ALU里,这个功能块主要是指通信逻辑单元(CLU)。不是所有的ALU操作都支持定点和浮点数据。ALU操作和相应的支持数据类型的相关性如下,在每个计算块里的64位ALU单元支持:定点和浮点算术操作——加(+)、减(-)、最小值(MIN)、最大值(MAX)、维特比最大值(VMAX)、比较(COMP)、截取(CLIP)和绝对值(ABS)。仅对定点数的算术操作——增加(INC)、减少(DEC)、叠加(求和)、叠加的并行结果(PRx=SUM)、1的补码(ONES)和位FIFO指针增量(BFOINC)。仅对浮点数的算术操作——浮点转换(FLOAT)、定点转换(FIX)、符号复制(COPYSIGN)、缩放(SCALB)、倒数或除法(RECIPS)、平方根或平方根的倒数(RSQRTS)、尾数提取(MANT)、指数提取(LOGB)、运算数扩展(EXTD)和扩展精度向标准字转换(SNGL)。仅对定点数的逻辑操作——AND、ANDNOT、OR、XOR和PASS。仅对定点数据转换(升高/降低)操作——扩展(EXPAND)、压缩(COMPACT)和合并(MERGE)。仅对定点CLU操作——最大值的Viterbi解码(VMAX),turbo解码的雅可比对数(TMAX),CDMA解扩(DESPREAD),多项式的重新排列(PERMUTE)和格构增加/比较/选择(ACS)。ALU操作支持定点算术操作和逻辑操作,其操作数可以是8位、16位、32位、64位宽度;也支持浮点数算术操作,其操作可以是32位标准字、40位扩展精度字。定点数据转换操作的操作数可以是8位、16位、32位、64位、128位,当输入操作数是128位,只能用于EXPAND和COMPACT指令。对于ALU的定点数CLU操作,其操作数可以是一个或两个32位数,两个或四个16位数,四个或八个8位操作数。ALU操作ALU对定点和浮点数据执行算术操作,对定点数执行逻辑操作。DSP将输入数据和输出结果均放在计算块存放器中。计算块存放器XR0~XR31和YR0~YR31。ALU用一个专用双存放器——PR存放器——存放并行结果。DSP使用PR存放器完成不同类型的SUM、VMAX和VMIN指令。指令选项大部份ALU指令带有选项,允许灵活的运行指令。注意,这些选项细化指令执行,不同的选项适应不同的指令群——不是所有的选项都适用所有指令。指令选项出现在指令域末端的圆括弧中。ALU指令选项包括:()有符号操作,非饱和,向最近舍入,小数模式(S)有符号操作,饱和(U)无符号操作,非饱和,向最近舍入(SU)无符号操作,饱和(X)ABS扩展操作(T)有符号操作,截断(TU)无符号操作,截断(Z)对MAX/MIN,有符号结果返回零操作(UZ)对MAX/MIN,无符号结果返回零操作(I)有符号操作,整数模式(IU)无符号操作,整数模式(IS)有符号操作,饱和,整数模式(ISU)无符号操作,饱和,整数模式有符号/无符号选项DSP用8、16、32或64位表示定点数据,最多用四个32位的数据存放器。在ALU中的定点可以是无符号的或是2的补码;浮点数总是原码表示的。饱和选项有两种类型的饱和算法——有符号数或无符号数。对有符号数饱和,无论何时发生溢出(AV标志被置位),把最大正值或最小负值作为输出结果。无符号数饱和,即溢出时,将把最大值或零作为输出结果。在输出格式中,最大值和最小值指的是输出格式所能表示的最大值和最小值。例如,在16位的短字运算中,最大的正数、最小的负数和最大无符号数分别是0x7fff,0x8000,和0xffff。扩展(ABS)选项对于ABS指令,X选项提供一个扩展的输出范围。没有X时,输出范围是从0到正的最大有符号数(0x0到0x7F…F)。ABS使用X选项时,扩展输出范围从0x0到0x80…0,并且在这个范围内,输出数值是无符号的。截断选项ALU指令,支持T选项截断,这个选项选择结果的舍入模式。DSP支持两种舍入模式——向零舍入和向最近值舍入。定义如下:向最近舍入(不带T选项)。如果舍入前的结果不能确切地用目的格式表示,则舍入的结果最接近舍入前的数值;如果舍入前的结果恰好是目的格式中最接近的两个数的中间值(相差一个最低有效位),舍入的结果是最低有效位为零的数。向零舍入(使用T选项)。如果舍入前的结果不能确切地用目的格式表示,则舍入的结果是最接近零的数值,这与截断相同。返回零(最大/最小)选项对于MAX/MIN指令,如果第二个输入存放器包含最大值(对于MAX)或最小值(对于MIN),则Z选项改变操作,返回零值。小数/整数的选项DSP用8、16、32或64位表示定点数,最多用四个32位的数据存放器。在ALU中,小数或整数格式可用EXPAND和COMPACT指令。默认是小数格式。I选项选择整数模式。ALU执行状态ALU操作更新计算块算术状态(XSTAT和YSTAT)存放器,用来指示操作结果的状态,保存在(XSTAT和YSTAT)存放器。如表2-1所示表2-1.ALU状态标志标志定义被……更新AZALU定点数为0和浮点数下溢出所有ALU操作ANALU负数所有ALU操作AVALU上溢出所有算术操作ACALU进位所有定点操作;被浮点操作清零AIALU浮点无效操作所有浮点操作;被定点操作清零ALU操作也更新算术状态(XSTAT和YSTAT)存放器中的关联状态标志位。表2-2中XSTAT或YSTAT中的标志位给出了最新的ALU操作中ALU的关联状态。一旦置位,关联状态将保持高,直到被程序明确地清零。表2-2.ALU状态相关联的标志标志定义被……更新AUSALU浮点下溢出,关联位所有浮点操作AVSALU浮点上溢出,关联位所有浮点操作AOSALU定点上溢出,关联位所有定点操作AISALU浮点无效操作,关联位所有浮点操作标志位在每个操作结束的时候更新,以便下个指令域应用。在乘法器正在进行一个操作的同一周期中,程序不能对算术状态存放器赋值。ALU执行条件在一个条件ALU指令中,整个指令行的执行依赖指令行开始所指定的条件,如表2-3。条件ALU指令采用以下格式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;这个语法允许一个条件控制多达三条指令。在指令之前省略DO,则相应指令是无条件的。表2-3.ALU的条件标志定义标志设置AEQALU等于零AZ=1ALTALU小于零AN和AZ=1ALEALU小于或等于零AN或AZ=1NAEQNOT(ALU等于零)AZ=0NALTNOT(ALU小于零)AN和AZ=0NALENOT(ALU小于或等于零)AN或AZ=02.2.3CLU 通信逻辑单元(CLU)指令用来完成通信应用中的多种的算法。这些指令主要为以下算法设计(虽然也可以用于许多其它算法):Viterbi解码Turbo码的解码码分多址(CDMA)系统的解扩CLU指令的引入简化了这些算法的程序,但仍保存软件方式的灵活性,靠这种方式,根据特殊需求调整运算法是很容易的。另外,指令能满足各种用途的需求;例如,对低密度的奇偶校验码,支持turbo码解码的TMAX指令,是非常有用的。 TigerSHARC处理器的主要性能是有高的数据传输率——每个周期可以进行两个128位的存储器访问。解扩指令每周期可完成16个16位复数(8位实部,8位虚部)乘-加操作。在两个计算块里,每两个周期就能完成整个16位64个状态格构的计算。2.2.4乘法器乘法器执行定点和浮点数据的所有乘法操作,执行定点数据的所有乘累加操作和定点数据的所有复数乘法操作。在定点格式中,当乘法器把数据传送到存放器堆时,乘法器也能执行对累加结果的数据压缩操作。乘法器支持如下数据类型的操作:定点小数和整数乘法操作和乘累加操作支持:八个16位(短字)输入操作数,得到四个16位或32位结果。两个32位(标准字)输入操作数,结果是32位或64位。浮点乘法操作支持:两个32位(标准字)输入操作数(IEEE标准),结果为32位。两个40位(扩展精度)输入操作数,结果为40位。定点数据压缩操作支持:16位(短字)输入操作数,32位(标准字)输入操作数,64位(长字)输入操作数,输出16位或32位的结果。乘法器指令选项大局部乘法器指令有可选项,不同的选项适用于不同的指令群。指令选项出现在指令域末端的圆括弧中。()有符号的操作,非饱和,向最近舍入,小数模式(U)无符号的操作,非饱和,向最近舍入(nU)有符号的/无符号的输入(I)有符号的操作,整数模式(S)有符号的操作,非饱和的(T)有符号的操作,截断(C)清零操作(CR)清零/舍入操作(J)复数共轭操作有符号/无符号选项所有的定点乘法器指令可以使用有符号或无符号数据类型。选项如下:()两个输入操作数均为有符号的(默认值)(U)两个输入操作数均为无符号的(nU)Rm是有符号的,Rn是无符号的;选项只对Rs=Rm*Rn或Rsd=Rm*Rn有效。小数/整数选项定点操作数整数和小数选项定义如下:()数据是小数(默认)(I)数据是整数饱和选项当结果溢出——超过结果存放器所能表示的最大值时,如果选项(S)是有效的,定点数被饱和。饱和结果是:()无饱和(默认)(S)饱和是有效的0x7F…F——如果操作是有符号的,且结果是正的0x80…0——如果操作是有符号的,且结果是负的0xFF…F——如果操作是无符号的,且结果是正的0x00…0——如果操作是无符号的,且结果是负的(只在有符号的MR-=Rm*Rn中)截断选项乘法器指令,支持T选项截断,这个选项选择结果的舍入模式。舍入的选项是:()向最近舍入(默认值)(T)对浮点数向零舍入,对定点数向负无穷舍入清零/舍入选项乘法操作和用MR存放器来传送操作数的乘累加操作都支持MR清零(C)选项。在加法操作之前,使用这个选项强制对MR存放器清零(=0)。清零和清零/舍入选项是:()在乘累加操作之前,MR存放器不变化(默认值)(C)在乘累加操作之前,把目标存放器MR清零(CR)在乘累加操作之前,把目标存放器MR清零并设置舍入位复数共轭选项对于复数的乘累加操作(**操作符),乘法器支持复数共轭(J)选项。J选项指示乘法器用Rn复数的共轭去乘Rm。乘法器执行状态乘法器操作更新算术状态(XSTAT和YSTAT)存放器(见表2-4)。后续指令能使用状态标志控制条件指令的执行和触发软件异常中断。表2-4.乘法器状态标志标志定义被……更新MZ乘法器定点为零和浮点下溢出所有的定点和浮点乘法器操作MN乘法器的结果是负的所有的定点和浮点乘法器操作MV乘法器上溢出所有的定点和浮点乘法器操作MU乘法器下溢出所有的浮点乘法器操作;被定点操作清零MI乘法器浮点非法操作所有的浮点乘法器操作;被定点操作清零乘法器操作也更新算术状态(XSTAT和YSTAT)存放器中的关联状态标志位(见表2-5)。一旦置位,关联状态将保持高,直到被程序明确地清零。表2-5.乘法器的关联状态标志Flag定义被……更新MUS乘法器下溢出,关联所有的浮点乘法器操作MVS乘法器浮点上溢出,关联所有的浮点乘法器操作MOS乘法器定点上溢出,关联所有的定点乘法器操作MIS乘法器浮点非法操作,关联所有的浮点乘法器操作乘法器执行条件在一个条件乘法器指令中,整个指令行的执行依赖于指令行中指定的条件。条件乘法器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;这种语法允许一个条件控制三条指令。在指令之前省略DO,则此指令是无条件的。表2-6列出了乘法器的条件。表2-6.乘法器的条件Condition定义被更新MEQ乘法器等于零MZ=1MLT乘法器小于零MN和MZ=1MLE乘法器小于或等于零MN或MZ=1NMEQNOT(乘法器不等于零)MZ=0NMLTNOT(乘法器不小于零)MN和MZ=0NMLENOT(乘法器不小于或等于零)MN或MZ=02.2.5移位器 这个单元执行位方式的操作(算术和逻辑移位)以及位域操作(域提取和放置)。移位器也执行数据转换操作,如定点和浮点格式转换。移位器操作包括:向左或向右移位,或循环移位位处理;包括置位,清零,取反和位测试位域处理;域提取和放置缩放因子的识别,16位块浮点数指数提取计算高位连续1或0的个数移位器对定点数据的操作,采用以下各项作为输入:一个长字(64位)操作数,一个或两个标准字(32位)操作数,两个或四个短字(16位)操作数,四个或八个字节(8位)操作数。移位器操作移位器操作在计算块存放器堆或移位存放器BFOTMP(移位器的内部存放器)中进行,BFOTMP用于PUTBITS指令。移位器操作能从存放器堆中提取它们的Rm输入(操作数据),从存放器堆或指令中提供的立即数提取它们的Rn输入(移位值)。当操作包括第三个输入时,Rm和Rn是从存放器堆中取出的,第三个输入Rs是读-修改-写(RMW)存放器。移位操作的移位值来自Rn,放在Rn最右边的位域,移位值(移位的位数)由输出操作数的宽度决定。对长字输出Rn是8位、标准字输出Rn是7位、对短字和字节输出Rn是6位,这样,所有移动量的左右移位都能完成,Rn中移位值以外的位被忽略。移位器指令选项大局部移位器指令有和它们相关联的可选项,允许灵活的运行指令。不同的选项适用于不同的指令群。指令选项出现在指令域末端的圆括弧中。()零填充,右对齐(SE)符号扩展;适用于FEXT、FDEP和GETBITS指令(ZF)零填充;适用于FDEP指令移位器执行状态移位器操作更新算术状态(XSTAT和YSTAT)存放器的状态标志。后续指令可用状态标志控制条件指令的执行和初始化软件异常中断。表2-7中存放器XSTAT或YSTAT中的标志位表示最近的移位器操作状态。标志位在每个操作结束的时候更新,以便下个指令域应用。在移位器正在进行一个操作的同一周期中,程序不能对算术状态存放器赋值。表2-7.移位器状态标志标志定义被……更新SZ移位器定点零所有移位操作SN移位器负数所有移位操作BF1–0移位器块浮点只有BKFPT指令ANALU负数用PUTBITS指令时的结果溢出移位器执行条件在条件移位器指令中,整个指令行的执行依靠指令行开始指定的条件。条件移位器指令采用如下形式:IFcond;DO,instr.;DO,instr.;DO,instruct.;;该语法允许一个条件控制多达三个指令。指令前省略DO,则此指令是无条件的。表2-8列出了移位器的条件。表2-8.移位器条件条件描述标志设置SEQ等于零SZ=1SLT小于零SN和SZ=1NSEQ不等于零SZ=0NSLT不小于零SN和SZ=02.3IALUTigerSHARC处理器的两个独立IALU是J-IALU和K-IALU。IALU支持标准的ALU运算和数据寻址运算。当数据在存储器和存放器之间传送时,由IALU提供存储器的地址。两个IALU允许为多操作数读/写同时产生地址。IALU的数据寻址和数据移位操作包括:直接和间接存储器寻址循环缓冲寻址位反序寻址通用存放器(Ureg)移位和加载存储器指针产生2.3.1IALU存放器每个IALU都包含由32个存放器组成的存放器堆和8个专用的循环缓冲寻址存放器。IALU中的所有存放器都是32位宽、存储器映射的通用存放器。有关IALU存放器堆的几点重要提示如下:J-IALU存放器堆的存放器是J31-J0,K-IALU存放器堆的存放器是K31-K0。除了J31和K31,这些存放器都是通用的且只存整型数据。J31和K31存放器是32位状态存放器,也可以写作JSTAT和KSTAT。当这两个存放器用做IALU算术、逻辑或函数运算的操作数时,就作为J31和K31存放器使用,存放器的内容看作0。如果J31用做一个运算的输出时,它不保存指令的结果,但设置标志位。当用作IALU加载、存储或移位操作时,这两个存放器作为JSTAT和KSTAT,这种操作不去除存放器的内容。每个IALU中的专用循环缓冲存放器选择循环缓冲区的基地址和长度。这些专用存放器与每个IALU的存放器堆的前四个通用存放器共同管理八个循环缓冲区。有关IALU循环缓冲寻址的专用存放器的一些要点如下:循环缓冲指针(当前地址)是通过一个通用存放器设置的,也就是设置J-IALU的J3-J0,K-IALU的K3-K0。循环缓冲区基地址(起始地址)是通过一个专用存放器设置的。也就是设置J-IALU的JB3-JB0,K-IALU的KB3-KB0。循环缓冲区长度(存储单元的个数)是通过一个专用存放器设置的。也就是设置J-IALU的JL3-JL0和K-IALU的KL3-KL0。循环缓冲区修正值(存储位置之间的步长)是通过一个通用IALU存放器或一个立即数值设置的。控制循环缓冲区的指针、基地址和长度存放器作为一个整体工作。(J0用JB0和JL0,J1用JB1和JL1,等等)。IALU中控制循环缓冲区的任何存放器堆存放器(除了作为指针的那个)都可用作修正值。IALU可以使用加和减指令产生带或不带循环缓冲或位反序的寻址指针。修正地址值存储在一个IALU数据存放器,也可以写到程序控制器的计算跳转存放器(CJMP)中(可选的)。2.3.2IALU算术、逻辑和函数操作IALU执行定点数(整型)的算术逻辑操作。DSP使用IALU存放器堆的存放器作为输入操作数和IALU操作的输出结果。IALU存放器堆的存放器是从J30到J0和K30到K0。大局部IALU指令都有和它们相关联的选项,允许灵活的运行指令。不同的选项适应不同的指令群,IALU指令选项包括:()有符号数运算,向无穷舍入,整数(U)无符号运算(CB)对结果的循环缓冲运算(BR)结果的位反序运算(CJMP)把结果加载到结果存放器和运算跳转(CJMP)存放器中2.3.3IALU执行状态与执行条件IALU运算更新IALU的状态存放器(JSTAT和KSTAT)的状态标志。表2-9展示了JSTAT或KSTAT中标志位。这些标志指明了IALU最近操作的状态。表2-9.IALU状态标志位标志定义被……更新JZJ-IALU为零所有的J-IALU算术,逻辑,函数运算JNJ-IALU为负所有的J-IALU算术,逻辑,函数运算JVJ-IALU溢出所有的算术运算JCJ-IALU进位所有的算术运算KZK-IALU为零所有的K-IALU算术,逻辑,函数运算KNK-IALU为负所有的K-IALU算术,逻辑,函数运算KVK-IALU溢出所有的算术运算KCK-IALU进位所有的算术运算标志的更新发生在每个操作的末尾,以便下一个指令域的应用。程序不能在IALU运行一个操作的同一周期内,把状态标志写到一个IALU状态存放器中。2.3.4IALU执行条件在一个有条件的IALU指令中,整个指令行的执行取决于指令行开始指定的条件。有条件IALU指令采用以下形式:IFcond;D0,instr.;DO,instr.;DO,instruct.;;这个语法中允许一个条件控制三条指令。省略DO表示此对应指令是无条件的。表2-10.列出了IALU条件。表2-10.IALU条件条件描述标志位设置JEQJ-IALU等于零JZ=1JLTJ-IALU小于零JN和JZ=1JLEJ-IALU小于或等于零JN或JZ=1NJEQNOT(J-IALU不等于零)JZ=0NJLTNOT(J-IALU不小于零)JN和JZ=0NJLENOT(J-IALU不等于或小于零)JN或JZ=0KEQK-IALU等于零KZ=1KLTK-IALU小于零KN和KZ=1KLEK-IALU小于或等于零KN或KZ=1NKEQNOT(K-IALU不等于零)KZ=0NKLTNOT(K-IALU不小于零)KN和KZ=0NKLENOT(K-IALU不小于等于零)LN或KZ=02.3.5IALU数据寻址和传送操作 ADSP-TS201S的寻址都是由IALU模块完成的,无论对核内存储器寻址,还是对外部存储器,或是其他处理器共享存储单元寻址,都是由IALU完成的。具体可参见见第3章3.2.42.4程序控制器 TigerSHARC处理器核包含一个程序控制器。这个控制器包括指令排列缓冲池(IAB),程序指针(PC),跳转地址缓冲池(BTB),中断管理器,取地址机制。利用这些特征和指令流水线,控制着程序的执行。控制器从存储器取指令,并且执行程序流控制指令。控制器支持的操作包括:提供下一个所取指令的地址管理指令排列缓冲池(IAB),从中执行指令管理跳转地址缓冲池(BTB),以减少跳转延迟循环计数器减1判定条件(对条件指令)响应中断(带程序流变化)具体指令可参考第三章3.2.5。2.5存储器组织ADSP-TS201S的32位地址总线提供了高达4G的寻址空间,整个寻址空间对共享总线的所有处理器都是统一的。ADSP-TS201S采用的是统一的存储器映射空间,片内和片外存储器都有单独而且唯一的地址空间。整个映射空间包含4个局部:主机寻址空间、外部存储空间、多处理器空间和片内存储器空间。除了主机空间之外,每个空间又包含更小的存储器区,如外部存储器寻址空间还有SDRAM区等。另外,无论处理器内部寻址空间还是外部寻址空间,TigerSHARC处理器保存了局部空间用于未来新处理器的扩展,但就目前,这些保存空间是不能访问的。ADSP-TS201S寻址空间组成见以下图2.3,整个寻址空间分为以下局部:主机寻址空间。用于片外主机接口的地址映射空间,外部主机可以是上位机或者其他TS201,地址映射范围0x80000000~0xFFFFFFFF,此空间也可以配置普通存储器;外部存储空间。用于与外围设备、存储器接口的地址映射空间,包括通用的外部存储器设备和SDRAM存储器,地址映射范围是0x30000000~0x7FFFFFFF;多处理器空间。用于多处理器系统中各处理器的内部存储空间映射,地址范围0x0C000000~0x2FFFFFFF;片内存储空间。定义了本处理器内部存储空间的地址映射,地址范围0x00000000~0x03FFFFFF,它与上述多处理器空间中的第一个在物理上是同一的(取决于ID)。图2.3寻址空间映射2.5.1主机寻址空间 主机寻址空间高达2G。如果地址线的最高位ADDR31为1,则寻址空间为主机空间,如果为零,则寻址空间为其他空间。如果有主机,主机可以访问此空间,TS201也可以访问此空间的普通存储器。对主机寻址空间的访问,根据SYSCON系统控制存放器中的主机位定义,可以使用流水协议或着慢速传输协议。2.5.2处理器内部存储空间内部存储空间主要由内部存储器与通用存放器组成。ADSP-TS201S处理器内部嵌入了高达24Mbit的DRAM,分成了6块,分别是M0,M2,M4,M6,M8,M10,每个块4Mbit,配置成128K×32bit,每个块均可用来存指令和数据。通用存放器有如下特点:在多处理器系统中,通用存放器能够以地址映射的方式,由其他处理器通过对应的存放器地址来访问;通用存放器能够从存储区中存数据、取数据,能够与其他存放器传递数据;通用存放器支持单字、双字、四字等方式访问。 2.5.3外部存储器寻址空间 外部存储器寻址空间主要包含两个局部:SDRAM寻址空间和外部通用存储空间,该空间的访问由高位地址线ADDR30~26的译码决定,如表2-11。 SDRAM寻址空间是为了访问SDRAM而设置的,整个SDRAM寻址空间分为4个区,每个区的寻址范围为64M字,各区的访问由外部引脚决定。 外部通用存储空间是用于访问通用外设和存储区的,该空间分为两个区,各区寻址范围128M字,由决定。2.5.4多处理器寻址空间 ADSP-TS201S可以采用无缝连接的方式实现最多8个处理器组成的系统,为了方便8个处理器之间存储区的共享和相互访问,DSP将内部的存储区根据处理器的ID号映射到多处理器空间中不同的地址空间中,从而实现对其他处理器内部空间的访问。另外,多处理器寻址空间中还提供了多处理器播送空间,任何处理器对该空间的访问只能是写,通过对播送空间的写,可以实现对所有处理器的播送写。多处理器寻址空间的划分如表2-11。表2-11外部存储器与多处理器寻址空间的地址划分地址位名称说明ADDR25~0地址线访问寻址空间的地址ADDR30~26外部存储器寻址空间选择01100–Bank0(MS0)01110–Bank1(MS1)10000–SDRAMBank0/MSSD010001–保存10100–SDRAMBank1/MSSD110101–保存11000–SDRAMBank2/MSSD211001–保存11100–SDRAMBank3/MSSD311101–保存多处理器寻址空间选择00011–多处理器播送空间00100–多处理器ID0空间00101–多处理器ID1空间00110–多处理器ID2空间00111–多处理器ID3空间01000–多处理器ID4空间01001–多处理器ID5空间01010–多处理器ID6空间01011–多处理器ID7空间ADDR31是否为主机寻址空间=0,非主机寻址空间2.6链路口ADSP-TS201S有4个独立的链路口。与ADSP-TS101相比,链路口的改良最为显著。ADSP-TS201S的链路口由单端连接改为LVDS的差分连接模式,由准双向口改为完全双向通信,链路口时钟最高也可到达核内时钟速度,因此提供了更高的工作速度和更高的可靠性。2.6.1链路口存放器每个链路口有链路口控制存放器LCTLx、链路口状态存放器LSTATx和链路口状态去除存放器LSTATCx,用于链路口数据传输操作、描述数据传输操作后的故障检测状态。每个链路口都带有一个链路口接收缓冲存放器LBUFERXx和链路口发送缓冲存放器LBUFTXx,用于缓存链路口传输时接收到的数据,或是用来存放要发送的发送数据。2.6.2链路口模式设置链路口模式的设置是由链路口存放器组完成的。链路口存放器包含链路口发送/接收存放器组和链路口控制和状态存放器组。1.链路口接收控制存放器(LRCTL0~3)链路口接收控制存放器用来设置链路口的接收参数。在复位后,链路口控制存放器的默认值由外部Strap引脚确定,当Strap引脚LINK_DWIDTH=0,该存放器默认值0x00000001,当Strap引脚LINK_DWIDTH=1,该存放器默认值0x00000011,其定义如图2.4所示。2.链路口发送控制存放器(LTCTL0~3)链路口发送控制存放器用来设置链路口的发送参数。该存放器复位后默认值0x00000001。定义如图2.5所示.图2.4链路口接收控制存放器位定义(16~31位保存)图2.5链路口发送控制存放器位定义(16~31位保存)3.链路口接收状态存放器(LRSTAT0~3)该存放器定义了链路口的接收状态,复位后,默认值0x00000000,各位定义如图2.6所示。图2.6链路口接收状态存放器位定义(16~31位保存)4.链路口发送状态存放器(LTSTAT0~3)该存放器定义了链路口的发送状态,复位后,默认值0x00000000,各位定义如图2.7所示。图2.7链路口发送状态存放器位定义(16~31位保存)2.6.3链路口DMAADSP-TS201S有14个DMA通道,4个通道用于外部存储器设备,8个DMA用于链路口,还有两个自动DMA操作,其中8个链路口DMA可用于从一个链路口到另一个链路口的点对点数据传输,此时接收端的TCB必须编程为链路口接收TCB。使用DMA时,通过请求总线启动DMA传输过程,同时数据从请求DMA效劳的链路口发送到接收链路口。从链路口到链路口DMA传输的TCB配置详见DMA传输局部。2.6.4链路口连接与通信链路口可以配置为内核时钟的1/1、1/1.5、1/2和1/4,只需要设置LTCTLx即可。链路口的信号连接如图2.8所示。图2.8链路口的信号连接(上图为4位模式,以下图为1位模式)ADSP-TS201S链路口是双向口,每个通道到达4位,用LxCLKOUTP/N,LxACKI,LxCLKINP/N和LxACKO控制,接收方用LxACKO信号用于描述接收链路口是否准备好了接收,当发送方得到LxACKI有效的信号时,开始发送。LxBCMPI和LxBCMPO用于描述块传输已经完成。当发送方DMA把最后4个字写到发送链路口的发送缓冲后,给出一个完成标志,链路口则使LxBCMPO有效,当接收方采集到LxBCMPI信号,TCB清零,DMA完成。2.6.5链路口效劳请求中断当有数据进入链路口接收缓冲时:如果相应的DMA通道没有初始化,就会产生链路口效劳请求中断;如果该链路口相应的DMA已经被初始化,就不产生链路口效劳请求中断,而是发出DMA通道请求。复位后,此中断默认不使能。2.7SDRAM接口2.7.1概述 ADSP-TS201S系列的处理器为SDRAM提供了专门的寻址空间,这些寻址空间通过SDRAM存储器引脚/MSSD0~3来选择,地址寻址空间范围为0x40000000到0x7FFFFFFF。/MSSD0~3对应的寻址空间分别为:0x40000000~0x44000000;0x50000000~0x54000000;0x60000000~0x64000000;0x70000000~0x74000000。 ADSP-TS201S与SDRAM的接口如以下图2.9所示。图2.9SDRAM控制器接口2.7.2SDRAM控制存放器(SDRCON)在市面上有很多厂家可以提供SDRAM,不同的厂家制造出来的SDRAM芯片对激活—预充电命令延时和预充电—激活命令延时的要求不同,为了满足不同厂家的SDRAM的这些要求,存放器SDRCON(配置见图2.10所示)是需要配置的。SDRCON从低位到高位的含义如下:SDRAM使能:当系统中配置了SDRAM时,应当设置此位有效。CAS延时:为了满足不同厂商SDRAM器件的读延时()的要求而设置,根据SDRAM不同的特性和时钟要求,该延时应当设置成1~3个时钟周期。流水深度:允许SDRAM的地址和控制信号采用流水线的方式,如果该位有效,那么在对SDRAM的读和写访问过程中将插入一个时钟周期的延时。页大小:决定SDRAM的页面大小。可设置256,512,1024字。刷新率:用来设置SDRAM的刷新率,由SOC时钟计算。由下式获得:ADSP-TS201S提供了4种刷新周期数的选择,分别为,1100个,1850个,2200个,3700个SOC时钟周期数。预充电到RAS延时:定义了SDRAM器件的预充电时间,该值范围是2~5个时钟周期。RAS到预充电延时:定义了SDRAM器件的行激活时间(),该值的范围2~8个时钟周期。初始化顺序:该位决定模式存放器的设置(MRS)与刷新的顺序。该位置1,8个刷新周期在MRS设置之前进行。否则,在8个刷新周期后进行MRS设置。EMR使能:该位置1,允许使用扩展的模式存放器设置顺序(EMR),并且在MRS之前进行。该位只有在使用低功耗SDRAM时才能置1,否则置0。图2.10SDRAM控制存放器(位16~31保存)2.8DMA2.8.1概述 直接存储器访问(DMA)是不需要处理器干预的数据传输机制。ADSP-TS201S片内的DMA控制器允许将数据传输作为一个后台任务执行,从而将处理器解放出来,进行其他数字信号处理操作。ADSP-TS201S有14个DMA通道,4个通道用于外部存储器设备,8个DMA用于链路口,还有两个自动DMA操作, 值得注意的是,ADSP-TS201S不支持单片处理器的内部存储器间的数据传输,但是ADSP-TS201S仍然可以通过多处理器空间执行这种操作,但执行这种操作会对总线带来很大的传输开销,因此很少使用。 DMA0~3通道是外部DMA,DMA4~11通道是链路口DMA,DMA12~13是自动DMA。并且其优先级由DMA13至DMA0依次降低。2.8.2DMA状态和控制存放器组DMA控制和状态存放器组包括DMA控制存放器、DMA状态存放器、去除存放器和传输控制块存放器等。DMA控制存放器(DCNT)DCNT存放器是一个只读型的存放器,各位的定义如图2.11所示。图2.11DCNT存放器位定义(18~31位保存)存放器DCNTST用来设置DCNT的位,对写入DCNTST的值与DCNT原有的值或(OR)之后,写入DCNT。存放器DCNTCL用来去除DCNT的位,对写入DCNTCL的值与DCNT原有的值或(AND)之后,写入DCNT。DMA状态存放器(DSTAT)DMA状态存放器是一个64位的存放器,只读型,记录当前各个DMA通道的状态。DSTAT只能通过双字或四字方式访问。表2-12DSTAT存放器描述对应位对应通道对应值55~53位DMA通道13000=DMA关闭001=传输中010=传输完成011=保存100=TCB非法配置110=保存111=播送读方式,地址错误52~50位DMA通道1243~41位DMA通道1140~38位DMA通道1037~35位DMA通道934~32位DMA通道823~21位DMA通道720~18位DMA通道617~15位DMA通道514~12位DMA通道411~9位DMA通道38~6位DMA通道25~3位DMA通道12~0位DMA通道0DMA传输控制存放器(TCB)对于DMA0~11通道,每个DMA通道都配备了TCB存放器。每个TCB存放器为128位,包含DMA索引存放器DI,DMAX维存放器DX,DMAY维存放器DY和DMA指针存放器DP,每个存放器为32位。TCB存放器只能通过四字方式进行访问。DI:是一个32位的存放器,指向DMA的源地址(目的地址)。DX:是一个32位的存放器,在普通DMA传输模式中该存放器的高16位存放DMA传输数据的长度,单位为32字,低16位存放的是DMA传输时的地址修改量。DY:位的定义与DX相同,在需要进行二维DMA时,DY是Y维上的数据传输量和地址修改量。DP:用来设置DMA的传输类型的位定义为:0~14位四字地址(TCB指针,存放链式DMA的TCB设置);15~16位,为链式指针选择存放器(即链式指针的存放位置);17~21位,链的目的通道;22位,使能链式DMA;23位,DMA请求使能(外部方式触发DMA);24位,DMA中断使能,1=使能、0=不使能;25~26,操作数据长度01=32位字、10=64位字、11=四字;27位,二维DMA使能;28位DMA优先级,1=高优先级、0=正常优先级29~31位之指定,DMA设备。2.8.3链式DMA链式DMA就是处理器在完成一次DMA之后,能自动对其他DMA参数存放器载入新的值,自动进行DMA初始化,开始下一次DMA。使用链式DMA必须对相应的DMA通道的TCB存放器进行装载。DP的0~14位指定链指针CHPT,它就是存储器中的一个地址,该地址指向下一个TCB的内容。装载时,DSP从四字对齐地址开始的4个连续单元中,取出一四字数据载入DMA通道的TCB存放器。内部和外部存储器之间进行链式DMA时,必须装载两个TCB(源TCB和目的TCB),装载完成后,使能链式位,将指针指向一个有效地址,就能使能DMA。TCB的装载,也可以通过链式和直接的写操作完成。2.8.4DMA中断如果在通道的DPx的INT置1,DMA传输完成会产生DMA中断。当DMA通道计数器减到零,传输完成时DMA会发出中断。当DMA的目的为内部存储器,意味着最后一个数据都到达内部存储器。当DMA的目的地为外部存储器,意味着数据都已到达外设的缓冲器。产生中断必须是计数器减到零,向计数器写零不会产生中断。每个DMA都有自身的中断,DMA中断会锁存在ILAT中,由IMASK存放器来屏蔽或者翻开。与中断状态存放器不同,翻开DSTAT可以看DMA是否完成,但如果是DMA链则不可以,因为检测DSTAT时下一个DMA可能已经改变了DSTAT。2.9中断ADSP-TS201S为应用设计提供了丰富的中断资源,从结构上分为硬件中断和软件中断。硬件中断主要包括仿真器中断、复位中断、外部输入中断、定时器中断、链路效劳请求中断、DMA控制中断、向量中断(VIRPT)、硬件错误中断和总线锁定中断。软件中断主要指由特别的指令和软件异常引起的中断,具有较高的优先级。此外,中断也能分为内部中断和外部中断。见表2.14。表2.14中断向量及优先级中断优先级中断向量存放器名中断名称说明中断触发63(最高)DBGDebug中断边沿62SW软件异常边沿57HWERR硬件故障中断电平53TIMER1H定时器1高优先级中断边沿52TIMER0H定时器0高优先级中断边沿50BUSLOCK总线锁定中断边沿48VIRPT向量中断边沿44~41IRQ3~0IRQ3~0中断边沿或电平38~37DMA13~12DMA13~12完成中断边沿32~29DMA11~8DMA11~8完成中断边沿25~22DMA7~4DMA7~4完成中断边沿17~14DMA3~0DMA3~0完成中断边沿9~6LINK3~0LINK3~0请求中断边沿3TIMER1L定时器1低优先级中断边沿2TIMER0L定时器0低优先级中断边沿0KERNELKERNEL中断边沿其余保存2.9.1中断的处理过程当一个中断发生时,存放器ILAT中的相应位置为1,同时将ILAT,IMASK以及PMASK按位相与,若相与的结果为1,又在SQCTL存放器中使能了全局中断,则ADSP-TS201S响应优先级最高且使能了的中断。中断嵌套允许一个中断效劳程序正在执行的过程中,响应另一个中断。中断的使能设置定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 超星尔雅学习通《艺术鉴赏(北京大学)》2025章节测试附答案
- 2025年妇幼保健员考试所需的学习工具及试题及答案
- 建立自信2025健康管理师试题及答案
- 二零二五年度企业个人借款担保合同
- 2025年度英语夏令营英语教师派遣与培训合同
- 二零二五岁以上员工劳动权益保障与薪酬福利协议
- 2025年度餐饮管理公司入股合作协议
- 2025年度新能源汽车合资项目融资合作协议
- 二零二五年度汽车经销商返利合同模板
- 二零二五年度水利工程款代付与防洪安全协议
- 医院不良事件管理质量评价标准
- 高中数学必修5《正弦定理与余弦定理》集体备课2课时表格式教案
- (现行版)江苏省建筑与装饰工程计价定额说明及计算规则
- GB/T 32854.4-2020自动化系统与集成制造系统先进控制与优化软件集成第4部分:信息交互和使用
- GB/T 21010-2017土地利用现状分类
- 农业社会化服务体课件
- 崩塌教学讲解课件
- 大班科学《动物之间怎样联络》课件
- 利用“水量平衡原理”分析地理问题 【思维导图+重难点突破】 高考地理 考点全覆盖式精讲 高效复习备考课件
- 营销-山城别墅全程方案
- 中医诊所医疗机构设置申请书
评论
0/150
提交评论