资源预览内容
第1页 / 共74页
第2页 / 共74页
第3页 / 共74页
第4页 / 共74页
第5页 / 共74页
第6页 / 共74页
第7页 / 共74页
第8页 / 共74页
第9页 / 共74页
第10页 / 共74页
亲,该文档总共74页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
SHARC系列DSP原理,概述 SHARC系列DSP的处理器核 SHARC系列DSP的存储器 SHARC系列DSP的集成外部接口( DMA、链路口、串行口、主机接口),概述,SHARCSuper Harvard Architecture Computer 包含:浮点DSP核、片内存储器、DMA控制器、串口、链路口、共享总线连接等。,多片处理器无需外部控制逻辑,就能无缝连接成一个高效的紧耦合(通过总线结构)或松耦合(通过链路结构)方式的并行多处理器系统。,结构特点,有共享寄存器文件的计算单元(含ALU、乘法器和移位器) 数据地址产生器(DAG1、DAG2) 能自动处理环形地址指针,降低程序开销,提高程序的执行效率并简化程序代码。 大容量的片内SRAM 双端口SRAM可以被处理器核和DMA同时独立访问,根据不同型号,SRAM容量不同。,结构特点,有指令Cache的程序控制器 高效的32级指令缓存,允许3条总线同时取1条指令和2个操作数,处理器能够高速执行循环操作(如数字滤波的乘、累加操作和FFT的蝶形运算等)。指令缓存是否使用,可通过编程控制。 内部定时器 与片外存储器及外围电路接口的外部端口 主机及多处理器接口,结构特点,DMA控制器 支持DMA通道的无干预后台传输,DSP核与I/O处理器可同时并行访问内部存储器。 串口 2套串口可以用多种操作模式工作(如控制通讯) JTAG测试口 访问片内的仿真资源,仿真使使用。,结构特点,三条片内总线 PM bus(程序总线) DM bus(数据总线) I/O bus 配合指令缓存,就能在单周期内实现同时取2个操作数(通过PM bus、DM bus)和1条指令(从指令缓存中取)。,处理器内部各个功能模块之间进行信息传输的重要通道,可以实现通道控制、仲裁逻辑及数据传输等操作。,ADSP-21160 SHARC DSP的结构框图,SHARC系列DSP的处理器核,计算处理单元 程序控制器 地址产生器与PM、DM总线 寄存器 中断逻辑与定时器,计算处理单元,ALU、乘法器、移位器以及通用数据寄存器共同执行单周期指令。 结构上并行排列,分别完成加、减、乘和逻辑、移位等操作,大大提高了数据吞吐率,任何一个单元的输出都可以在下一周期作为本单元或其它单元的输入。,ALU,ALU指令包括定点和浮点加、减、取平均、取绝对值、取反及定浮点转换等。 对于定点操作,有逻辑与、或、非、异或等。 对于浮点操作,有取对数、平方根、倒数等。 输入的操作数可以是1个或2个,在时钟周期的前半周期操作数从数据寄存器送入ALU,在后半周期将运算结果输出到数据寄存器。,Multiplier,浮点乘 定点乘 乘法器与ALU、数据寄存器的结合,使处理器能在1个周期内实现多功能并行计算(如乘/累加操作,可大大提高数字滤波与FFT的运算速度)。,Shifter,进行逻辑移位或算术移位、位段存取、位清零、置位、测试、取反等操作。,通用数据寄存器,用于运算单元与数据总线间的数据传输,并存取中间结果。,SIMD模式,ADSP21160内部有两个完全相同的计算处理单元,可工作于两种模式:SIMD和SISD(由模式控制寄存器MODE1的相应位使能控制)。,ADSP-21160 SHARC DSP 的SIMD结构,SIMD模式下,处理器执行的并行操作,将同一条指令同时发送到两个处理单元; 从存储器载入两组操作数分别送到两个处理单元; 同时在两个处理单元里执行同一条指令; 将两个运算输出结果同时保存到存储器中。,注意,在SIMD模式下,如果指明访问内部存储器的奇地址,则会同时访问下一个偶地址。 例: 访问内部地址单元0x40001 则同时也会访问未明确制定的地址单元 0x40002,程序控制器,功能:主要控制程序流的执行,并为访问程序存储器提供地址。 通常,顺序执行,如有分支程序指令(跳转、循环、子程序调用、中断等),则改变程序流的执行顺序。 在每一个周期跟踪和更新PC堆栈,当分支程序出现时,首先判断是否执行该指令,同时自动将取指地址加1。,指令流水线操作,所有指令的执行都经过取指、译码、执行三个时钟周期,并高速并行执行。,0x01,指令,0x02,0x03,0x04,0x05,地址,顺序执行程序的指令流水操作情况,当一条指令取指时,它前一周期的指令被译码,而在两个周期前的指令正在执行。 对于顺序执行指令,每周期都有一条指令的吞吐量,如有分支指令,则会降低处理器对指令的吞吐量。,延迟,SHARC DSP支持带两级延迟的分支跳转、调用和返回指令,优化程序,提高程序执行,分支程序执行,如有跳转、子程序调用与返回等指令,产生程序分支。,JUMP,跳到一个新地址,不需返回,CALL,先将返回地址压到PC堆栈,子程序执行完毕后,返回到调用指令的地址,返回指令:中断返回(RTI)和子程序返回(RTS)两种类型,条件分支程序执行,SHARC DSP通过检测状态寄存器ASTAT中的相应位的条件逻辑,支持条件跳转和子程序调用。 条件满足,产生程序分支; 否则,顺序执行程序。,分支指令寻址方式,直接寻址:直接在分支命令后给出程序地址标号或PC相对地址值; 间接寻址:直接分支到数据地址产生器DAG2指定的地址。 如:JUMP(M12,I12),两种形式的分支指令,由于处理器采用流水结构,分支指令会对程序的执行效率产生影响,有两种形式的分支指令。 非延迟分支指令 延迟分支指令,存在两个周期的开销,降低了程序执行效率,可保证程序执行效率,但增加了程序设计的难度,程序循环,片内专门的硬件结构来管理所有循环操作,简化循环程序代码设计,也可避免执行循环条件指令而节省了指令执行时间,提高了循环指令的效率。 DO/UNTIL,重复执行循环体内指令,直到测试条件为真,程序循环的控制方式,SHARC DSP检测循环测试条件是否完成了LCNTR寄存器指定的循环次数,以决定是否继续执行循环体。 它有两种控制方式: 基于计数器方式进行控制 基于非计数器方式进行控制,循环嵌套,可支持多达6级嵌套循环(而对循环体大小没有任何限制),由于指令执行的流水结构,对循环体的最后三条指令有以下限制: 不能是跳转、子程序调用与返回指令; 对循环嵌套,不能使用相同的终止循环地址; 在计数器方式控制循环时,不能使用写循环计数器指令。,指令缓存,同一周期既要通过PM总线取指令,又要取数据,就会存在数据冲突。 address n f0=f3*f4,PM(i9,m8)=f5 address n+1 f0=f0*f5 address n+2 f6=f6*f0 由于三级流水方式,当处理器执行地址单元n处的指令时,需要利用PM总线取数据,而同时处理器正在取地址单元n+2处的指令,故有冲突。,存在冲突,指令缓存,解决数据冲突的办法: 将地址n+2处的指令保存在缓存中。 当处理器第一次取指冲突时,须等待1个周期,在下一周期才能将指令取出。 当同一条指令再次出现冲突时,直接并行从指令缓存取指令,避免冲突,也不会出现延迟。 若冲突的指令不在指令缓存中,存在一个周期的开销。,SHARC DSP的指令缓存,2通道,可存放32条指令缓存区,编程实现,体现程序优化技巧。 设置MODE2寄存器的CADIS位和CAFRZ位进行选择。,置1,指令缓存,否则,禁止,置1,禁止指令缓存刷新,否则,允许,地址产生器与PM、DM总线,地址产生器主要为数据访问产生地址,实现存储器与寄存器间的数据传递,完成对片内DM数据存储区和PM程序存储区的访问。,DAG1,DAG2,DM,PM,内部都有4种类型的寄存器(Ix,Mx,Bx,Lx),索引寄存器,修改寄存器,基址寄存器,长度寄存器,DAG支持的地址修改方式,地址的预修改 地址的后修改 地址直接修改 地址位反序,硬件实现,一个周期完成,没有软件开销,执行效率高,SHARC DSP的位反序寻址,通过设置MODE1寄存器的BR0和BR8位可以使能位反序寻址模式。,BR0=1,DAG1将索引寄存器I0中的地址值位反序后输出,BR8=1,DAG2将索引寄存器I8中的地址值位反序后输出,SHARC DSP的环形缓冲区循环寻址,连续地存放数据的存储器地址单元 B:缓冲区起始地址 L:缓冲区长度 通过设置MODE1寄存器的CBUFEN位可使能环形缓冲区循环寻址方式。,SHARC DSP 的广播式数据传输,单一指令通过广播方式同时向多个寄存器赋值。 通过设置MODE1寄存器的BDCST1位和BDCST9位实现使能索引寄存器I1和I9的广播式数据传输。,寄存器,寄存器的位定义信息为灵活程序设计带来方便。在编写DSP应用程序时,通常要对寄存器的位进行设置、清除及位测试等,以控制程序执行。主要有这样一些寄存器: 运算单元寄存器 程序控制寄存器 地址产生寄存器 I/O处理寄存器 系统控制与状态寄存器,运算单元寄存器,通用数据寄存器 Rx,Fx,Sx(x=015) 乘法结果寄存器 MRFx(前台), MRBx(后台)(x=02) 主要用于存放80位乘法结果 PX总线交换寄存器 PX1, PX2,程序控制寄存器,引导指令的执行,主要实现指令流水操作、程序与循环堆栈、定时器操作、中断锁存与屏蔽等。,PC程序寄存器FADDR取指寄存器DADDR译码寄存器,PCSTK程序计数堆栈寄存器LCNTR循环计数寄存器,TPERIOD定时器周期数寄存器TCOUNT定时器计数寄存器,IRPTL中断锁存寄存器IMASK中断屏蔽寄存器,地址产生寄存器,DAG1 DAG2 I0I7 I8I15 索引寄存器 M0M7 M8M15 修改寄存器 B0B7 B8B15 基址寄存器 L0L7 L8L15 长度寄存器,I/O处理寄存器(核外),映射到DSP内部的存储器空间,但与内部存储器,占用地址0x000xFF,总线可将这些寄存器作为内部存储器地址单元访问。 SHARC DSP不支持直接在I/O寄存器与内部存储器地址单元间传数,要读写I/O处理寄存器,须用处理器核寄存器作为中介,但DMA操作除外。,系统控制与状态寄存器,主要配置处理器核的操作模式,同时标志处理器核的工作状态,作为条件程序执行的判别条件。 如: 模式控制寄存器MODE1、MODE2 模式屏蔽寄存器MMASK 运算状态寄存器ASTATx, ASTATy 附加状态寄存器STKYx, STKYy 用户定义状态寄存器USTATx,中断逻辑,丰富的中断资源 外部中断:仿真器中断、复位中断(不可屏蔽) 3个外部输入中断 内部中断:定时器中断、DMA控制中断,环形缓冲区溢出中断、非法输入中断、堆栈溢出中断、运算错误中断、多处理器中断、链路服务请求中断及用户自定义软件中断,外部异步事件,中断当前任务,返回,定时器,内部可编程的定时器,实现以下功能: 产生定时事件 实现计数 产生标准脉冲 中断处理器 测量输入脉冲 通过对内部TCOUNT和TPERIOD寄存器编程,在TIMEXP引脚产生脉冲输出,同时产生两个定时中断(TMZHI、TMZLI) 置位MODE2寄存器的TIMEN位使能定时器,存放定时器的计数值,存放定时器中断的频率,SHARC系列DSP的存储器,片内双口SRAM,等量分成,存储器空间,芯片不同,存在差异: ADSP21065(0.5M) ADSP21061(1M) ADSP21161(1M) ADSP21062(2M) ADSP21060 (4M) ADSP21160(4M) ADSPTS101(6M) ADSPTS201(24M) ADSPTS202(12M) ADSPTS203(4M),内部存储空间、多处理器空间和外部存储空间,内部存储空间(S):由片内SRAM存储器和存储器映射的寄存器资源构成(地址范围0x000000000x0007FFFF) 多处理器空间(M):多片处理器系统中和其他DSP相对应的内部存储器空间 外部存储空间(E):与DS
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号