第二章 典型DSP芯片介绍

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
返回
地址直接修改
MODIFY(i1,4);
//将i1中的值加4后写入i1,不输出。 设i1=18,则修改后的地址:i1=18+4=22; 注:修改量可以是立即数(上例中的4),也 可以是M寄存器中的地址值,例如: MODIFY(i1,m1)。 设:m1=3,则修改后的地址:i1=18+3=21;
地址位反序


BITREV(i1,4) //将索引寄存器i1中的值加4后位反序写入i1中,但不输出。 设:i1=8;则上述语句执行后i1=3; 位反序寻址方式:用于快速傅立叶变换(FFT),使输出地 址单元都是相应输入地址单元的位反序,以二进制地址为例: 输入X[1]=0001, 则输出X[1]=1000 输入X[2]=1100, 则输出X[2]=0011 注:通过设置MODE1寄存器的BR0和BR8位(对应DAG1中 的i0和i8),就可以使能位反序寻址模式。
非延迟分支指令和延迟分支指令
非延迟分支指令:
(1)分支指令后没有“DB”附加符;
If FLAG1_IN JUMP H_1;
(2)该指令后处于取指和译码阶段的两 条指令将不被执行,而是插入两条 NOP指令; (3)然后直接执行分支程序入口的第一 条指令。
2.1.1 处理单元的构成(续)
图2.1 ADSP21160内部结构图
PEx和PEy-(SIMD)
处理 处理器 DAG 程序4 器 核2 3
利用通用数据寄存器实现高度并行的指令操作

每个周期能实现多达9次的数据传输 (一句内)例如: F12=F0×F4,F8=F8+F12,F9=F8-F12, F0=DM(I1,M1),F4=PM(I8,M8);
ADSP
2.1 ADSP SHARC 系列处理器核
处理器核是由以下几个部分组成:
(1)两个处理器单元; (2) 1个程序控制器; (3) 2个数据地址产生器; (4) 1个定时器; (5) 1个指令缓存; 所有数字信号处理都在处理器核里实现。
2.1.1 处理单元的构成(两个处理单元):
每个处理单元包含:
DSP系统设计
主讲:杜建铭 教授
第二章 典型DSP芯片祥解
2.1 ADSP21160处理器核
2.2 ADSP21160处理器存储器
2.3 ADSP21160寄存器
2.4 ADSP21160中断逻辑和定时器
2.5 ADSP21160串行口/DMA及链路口
2.6 ADSP21160主机接口与ISA总线
乘法器(Multiplier)
浮点乘
定点乘
乘法器与ALU、数据寄存器的结合,使处
理器能在1个周期内实现多功能并行计算 (如乘/累加操作,可大大提高数字滤波 与FFT的运算速度)。
移位器(Shifter )
进行逻辑移位或算术移位、位段存取、位清 零、置位、测试、取反等操作。
通用数据寄存器
DAG寄存器分配情况
地址产生器DAG1寄存器 (DM)(32位) I0—I7 M0—M7 B0—B7 地址产生器DAG2寄存器 (PM) (32位) I8—I15 M8—M15 B8—B15
L0—L7
L8—L15
地址修改方式的指令操作过程
M + I 只输出地址M + I , I 寄存器 值不更新 预修改示例: r1=pm(m1,i5) //有效地址m1+i5 dm(4,i5)=addr_1 //有效地址4+i5 I 先输出 I 寄存器 中的地址,后 修改 I 寄存器值 ,修改后的地 后修改示例: 址写入到I中 r1=pm(i5,m1) //有效地址i5 dm(i5,m1)=0x1234 //有效地址i5 f5=dm(i5,6) //有效地址i5 I +M
. . .
周期数 1 2 3 4 5
. . . .
取指 0x01 0x02 0x03 0x04 0x05
. . . .
译码
执行
0x01 0x02 0x03 0x04
. . . .
0x01 0x02 0x03
. . . .
2. 分支程序执行
ADSP SHARC系列处理器分支程序指令包括: 1.跳转JUMP--跳到一个新地址,不需返回; 2.子程序调用CALL--先将返回地址压到PC堆栈,子程 序执行完毕后,返回到调用指令的地址; 3.返回--中断返回(RTI)和子程序返回(RTS)两种 类型; 当程序运行到上述指令时,就不再顺序执行 下一个 顺序地址的指令,而产生分支。

ADSP21160的两个DAG介绍1
两套地址产生器DAG1、DAG2分别指向DM地 址总线和PM地址总线; 每套DAG都配有8个地址索引寄存器Ix,8个地 址修改寄存器Mx,其中: (1)索引寄存器Ix存放的地址值是指向存储器的 指针; (2)修改寄存器Mx为索引寄存器的预修改和后 修改提供地址增量, M与I两个寄存器相配合可以完成: (1)指令执行前的地址预修改; (2)执行完毕后地址后修改操作。
上述指令执行时,首先读F0,F4的值,求出其乘积,写 到F12中; 然后F0,F4的值被相应存储单元的值更新,同时读F8, F12的值,求出其和、差;再分别写到F8,F9中; 这样4次读操作的寄存器是:F0,F4,F8和F12; 3次写操作的寄存器是:F12,F8和F9; 两次存储器访问是:F0与F4。
2.1.2 单周期取四个操作数
ADSP21160具有增强型超级哈佛结构。其中 数据存储器(DM),程序存储器(PM)总线 即可传送数据又可传送程序指令; ADSP21160还有一个内部指令缓存; 正是由于具有上面所述的结构-(其程序和数 据总线是分开的,并有内部指令缓存),所以 该处理器可在单周期内同时取四个操作数(每 套总线两个)及一条指令(从指令缓存中读 取)。从而实现了单指令多数据(SIMD)
地址位反序操作举例







BIT SET MODEL1 BR0; //使能寄存器i0位反序 i0=0x8a000; M0=0x4000000; //载入后修改地址量 R1=DM(i0,M0); //将i0中的值0x8a000位反序 因为索引寄存器为32位,既i0=0x0008a000; 0000,0000,0000,1000,1010,0000,0000,0000 位反序后为0x00051000; 0000,0000,0000,0101,0001,0000,0000,0000 将该地址中的值放入R1中,然后i0+M0->i0; 地址后修改:i0= 0x8a000+0x4000000=0x408a000;
1. PX2/PX1与PM或DM数据总线
63 31 0
PM或DM数据总线
31 0
PX2/PX1 2. PX与PM或DM数据总线
63
0
PM或DM数据总线
63 0
PX
2.1.4 程序控制器(PROGRAM SEQUENCER)
程序控制器主要是控制程序流的执行,并为访 问程序存储器提供地址; 通常程序流都是顺序执行,只有遇到分支程序 指令(如跳转、循环、子程序调用、中断、等 待等)时才会改变执行顺序; ADSP21160片内有循环计数器和循环堆栈,控 制循环间隔和评估条件指令,循环代码可以实 现零开销运行。 程序控制器的硬件循环结构支持多达8级的无 开销嵌套循环,而且每层都可以单周期退出。

ADSP-21160 SHARC DSP 的SIMD结构
小测验
21160M中处理器核由哪几部分组成? 每个处理单元的构成如何? 两个处理单元中通用数据寄存器的代号(定 点、浮点)?寄存器位数是多少?
ADSP
数据地址产生器(DAG)
在通用CPU中,数据地址的产生和数据的处理
都是由ALU来完成的,而在DSP中,设置了专 门的数据地址发生器(有的设置了多个数据 地址发生器)来产生所需要的数据地址。数 据地址的产生与CPU的工作是并行的。从而节 省了CPU的时间,提高了信号处理的速度
ADSP21160内部结构图
Байду номын сангаас
缓存返回
ADSP21160通用数据寄存器Rx与 Px之间的数据传递
1. PX2/PX1与Rx
39 7 0
通用数据寄存器
31 0
8个0
PX2/PX1
2. PX与Rx
39 0
通用数据寄存器(40位扩展精度)
63 24 23 0
PX
24个0
PX与内部数据总线PM和DM之间 传递数据时的对齐格式
PM和DM总线与PX寄存器
PX寄存器又称为总线连接器(BUS connect);
PX寄存器为PM数据总线和DM数据总线之间的
数据传输提供通道(扩展哈佛结构)。 另外利用PX寄存器,还可以与40位的通用数据 寄存器传递数据; 对于ADSP21160其PX寄存器长达64位,由PX1 寄存器(低32位)和PX2(高32位)组成。
用于运算单元与数据总线间的数据传输,并 存取中间结果。
每个处理单元中各包含一个通用数据寄存器组 40位宽, 每组32个寄存器(16个主,16个辅)用 于运算单元和数据总线间的数据传输,并暂存结果。 其中的寄存器可与内部存储器间不受约束地进行数 据传输。 对于定点和小数操作,只有高32位数据有效, 程序设计中标为: PEx内部的寄存器组:R0-R15; PEy内部的寄存器组:S0-S15; 对于浮点操作,所有的40位数据都有效,程序 设计中标为: PEx内部的寄存器组:F0-F15; PEy内部的寄存器组:SF0-SF15 。
(1)算术逻辑单元(ALU); (2)乘法器; (3)移位器; (4)通用数据寄存器组;
处理单元的构成(续)
算术逻辑单元(ALU)、乘法器(Multiplier)
、 移位器(Shifter )在结构上并行排列,分别完 成加、减、乘和逻辑移位运算等操作; 指令执行时间都是1个周期; 任何一个单元的输出都可以在下一个周期作为 本单元或其他单元的输入。

1. 指令流水线操作
流水线操作指令结构为简化程序设计,提高 程序代码的可维护性,增强系统整体性能带 来了很大好处,消除了传统上程序取指、数 据访问和乘法器操作中的瓶颈问题,提高了 单周期的数据吞吐率。
指令流水操作说明
地址值 指令
0x01 0x02 0x03 0x04 0x05
. . .
指令1 指令2 指令3 指令4 指令5

ADSP21160的两个DAG介绍2
每个DAG中还有八个基址寄存器Bx和八个长
度寄存器Lx; Bx:为环形缓冲区循环寻址提供起始地址; Lx:为环形缓冲区循环寻址提供地址范围; 也就是说:Bx中存放缓冲区起始地址; Lx中存放缓冲区长度。
ADSP21160的两个DAG介绍3
注(1)对于通常的寻址方式,我们只使用I, M寄存器,而不使用B寄存器,此时L寄存器写 零,环形缓冲区操作被Disable。 (2)ADSP21160M在进行环形缓冲区寻址 操作过程中,B寄存器被装入值时,I寄存器被 同时装入相同的值;反之I寄存器被装入值时, B寄存器不被同时装入相同的值。
2.1.3 带有硬件循环缓冲的数据地址产生器 DAG (循环寻址)与PM和DM总线
ADSP21160有两个数据地址产生器,可实现 间接寻址,并可实现硬件数据循环缓冲,从而 可以使数字信号处理中所需的延迟线及其它数 据结构获得高效率的编程,所以常用于数字滤 波及傅立叶变换。 ADSP21160每个DAG有足够的寄存器(4组, 每组8个寄存器,每个寄存器32位宽)。 并能自动处理地址指针的回转,减小了开销, 提高了性能,简化了编程,其起始地址和结束 地址在存储区内可以任意指定。
算术逻辑单元(ALU)
ALU指令包括定点和浮点加、减、取平均、
取绝对值、取反及定浮点转换等。 对于定点操作,有逻辑与、或、非、异或 等。 对于浮点操作,有取对数、平方根、倒数 等。 输入的操作数可以是1个或2个,在时钟周 期的前半周期操作数从数据寄存器送入ALU, 在后半周期将运算结果输出到数据寄存器。
2.1 ADSP21160处理器核
SHARC 系列处理器是构建在 ADSP 21000 DSP核的基础上,形成一 个完整SoC。 (System-on-Chip ,中文称为系统 集成到芯片上或片上系统); 有一个双口的在片SRAM; 加上集成周边IO和为单指令多数据 (SIMD) 提供支持的附加处理单元。
相关文档
最新文档