dsp汇编ceva dsp 指令集系统中的符号怎么使用

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
TMS320C6000 DSP 指令详解
下载积分:1500
内容提示:TMS320C6000 DSP 指令详解
文档格式:PPT|
浏览次数:44|
上传日期: 20:12:19|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1500 积分
下载此文档
该用户还上传了这些文档
TMS320C6000 DSP 指令详解
关注微信公众号您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
DSP汇编指令学习笔记(免费下载).doc 34页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
需要金币:150 &&
DSP汇编指令学习笔记(免费下载)
你可能关注的文档:
··········
··········
DSP汇编指令学习笔记
Knowledge
问题
谁在DSP的汇编语言中加入了NOP指令? NOP指令加入的条件是什么?
About DSP
DSP是实时数字信号处理的核心和标志。
DSP分为专用和通用两种类型。专用DSP一般采用定点数据结构(一般不支持小数),数据结构简单,处理速度快;通用DSP灵活性好,但是处理速度有所降低。
DSP采用取指、译码、执行三个阶段的流水线(Pipeline)技术,缩短了执行时间,提高了运行速率。DSP具有8个Functional unit,如果并行处理的话,以600MHz的时钟计算,如果执行的指令是single cycle指令,则可以4800MIPS(指令每秒)。
DSP的8个functional Unit,具有独特的功能,对滤波、矩阵运算、FFT(傅里叶变换)具有
哈弗结构
把指令空间与数据空间隔离的存储方式。
这样实现是为了实现指令的连续读取,而实现pipeline流水线结构。
传统哈弗结构:两个独立的存???空间,还使用独立总线。让取指与执行存储独立,加快执行速度。
改进型哈弗结构:指令与数据的存储空间还是独立的。但是使用公共的总线(地址总线与数据总线)。这样实现的原因是因为出现了CACHE,数据的存储动作大部分被内部的CACHE总线承接了,所以总线冲突的情况会大大减少。同时让总线的结构与控制变得简单,CACHE存储的速度也明显快于外设存储器。
冯诺依曼结构:是指令空间与数据空间共享的存放方式。它不能实现pipeline的执行过程。
Pipeline(流水线)技术
是把指令的取指-译码和指令的执行独立开来的技术。虽然每条指令的过程还是要经过取指-译码-执行三个阶段最少3个CPU Cycle。但是多个指令同时并行先后进行,保证总体的指令吞吐速率理想情况下可以保证在每个指令只要一个CPU CYCLE。
Pipeline技术必须要有哈弗结构支持,即必须把指令空间与数据空间隔离存放。
流水线阻断
流水线中阻断现象也十分普遍,下面就各种阻断情况下的流水线性能进行详细分析。
流水线阻断总体有两种情况:
资源冲突阻断:
如果前一指令的某Stage与后一指令某Stage在同一个Cycle执行,但是前一指令此Stage占用了后一指此Stage的资源,则后一指令此Stage的工作会被延迟执行。
被延迟执行的动作会停留在前一个Stage状态,则前一个Stage的状态就不能进入新的指令的动作。
依次前推,则总有一个取指Stage的指令被阻断,那么其后一个指令也被阻断而不能被取指。
所以,每产生一个Cycle的阻断,就会让CPU的执行延迟一个Cycle。即此指令后面的所有指令都会被延迟一个Cycle被执行。
解决的方法是:使用Cache让存放变得更快;变量集群使用,记录减少变量存放到memory的需要。
跳转阻断:
跳转阻断有很多情况产生,比如函数调用/返回,循环的break/continue,if等条件判断,循环跳转,中断跳转的产生。
一旦某条指令要进行跳转时,它就会设置LR寄存器,阻止后续的指令进入执行Stage,并修改PC指针,执行跳转后的目标代码。
解决的方法是:减少循环、条件判断、分支结构的使用。
DSP Pipeline技术
DSP具有8个独立的执行单元,所以每个CYCLE可以执行8条指令(要求其总线宽度是256bit)。
即DSP是8个pipeline并行处理的技术。所以DSP每个阶段取8个指令,然后在译码阶段把8个指令分配到8个执行单元去处理。
所以必须保证被同时取的指令之间没有相关性(即一个指令的执行不需要其他指令的结果参与),否则会得到错误的结果。所以,DSP引入了NOP指令,如果不能实现这一的要求,则DSP的编译器,则DSP优化器会在其编译的指令后面添加NOP指令。表示此Cycle不能执行8条有效指令,只能擦入空指令。则这样就会有某些执行单元在此CYCLE空闲了。
DSP Pipeline阻断
DSP Pipleline的阻断处理相对比较复杂一些,因为它涉及到8独立执行单元的阻断。
资源冲突阻断:
如果某个Unit因为资源冲突阻断,或者因为一个指令需要多个Cycle执行。则此Unit会被阻断。
当某个Unit被阻断时,其上一个阶段的指令就不能往下传递。一直阻断到此Unit的取值动作。
所以当有阻断发生是,FG并不会请求8条指令,而是请求1-7条,或者不请求(8个Unit全部阻断了)。这样没有被阻断的Unit还是能够充分运行的。
跳转阻断:/p-.html
NOP
Not dispatched instruction
It is an empty instruction in DP pa
正在加载中,请稍后... 上传我的文档
 下载
 收藏
天文地理,鸡毛蒜皮。新能源,太阳能电池市场分析,管理咨询,项目建议书,商业计划书,光学工程,激光技术,管理,建筑工程,房地产,物理,化学,数学,经济学,企业管理文献尽情下载。除个人文档外,所有文档来自互联网,不代表个人观点。如果您还需要什么书籍或资料,请留言!
 下载此文档
DSP汇编语言指令详解 98p
下载积分:1000
内容提示:DSP汇编语言指令详解 98p
文档格式:PDF|
浏览次数:374|
上传日期: 11:25:17|
文档星级:
全文阅读已结束,如果下载本文需要使用
 1000 积分
下载此文档
该用户还上传了这些文档
DSP汇编语言指令详解 98p
关注微信公众号c64x DSP汇编指令.D1T1的含义_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
c64x DSP汇编指令.D1T1的含义
A2的含义是将A4寄存器地址中的数据加载到A2寄存器中,然后A4寄存器地址加2(半字)我要问的是1)
有什么区别啊?求大牛解答啊.D1
*A4++?2)
这条指令与 LDH
.D1T1是什么LDH 。。
我有更好的答案
在汇编语句中,数据通道(读数据线LD、写数据线ST)以T1,指令执行时还是使用C64X有八个功能单元,分别为L1、L2.D1功能单元产生地址,用LD1数据通道读入数据到A2寄存中对于第二个问题,应该没有什么区别、S1、S2.D1T1:使用、D1、D2、T2表示。在load和store汇编语句中,用以说明产生地址的功能和读写操作所使用的数据通道。因此,T1、T2与D1、D2一起出现在功能单元区、M1、M2,从寄存器组A的写出通路称作ST1,从寄存器组B的写出通路称作ST2。有两个32位通路(每侧一个)把数据从存储器读取到通用寄存器中(load指令),读入寄存器组A的通路称作LD1,读入寄存器组B的通路称作LD2。同样也有两个32位通路(每侧一个)把数据从寄存器写入到存储器中(store指令)
嗯,回答的很好,谢谢大牛。我还有一个小小的疑惑,.D1T1 功能和 .D1是一样的。那么 .D1T2和.D2T1 又该是什么呢?例如:指令LDW .D1T2 *A0, B1 表示以A0为间接寻址地址,由D1产生地 址,由LD2数据通路向B1寄存器中读数据。这和寄存器交叉访问类似吧?比如 指令
A1, B1, A2求解答
我说的D1T1 功能和 .D1是一样的是在LDH .D1T1
A2相互比较前提下。.D1/.D2用来指定产生地址的功能单元,是T1还是T2是由你的目的操作寄存器(A组还是B组)来决定。读取存储通路:数据存取。寄存器交叉组通路:数据运算。两个是有些类似,但应该还是有区别的。
采纳率:67%
为您推荐:
其他类似问题
汇编指令的相关知识
换一换
回答问题,赢新手礼包2073人阅读
DSP学习(7)
因为dsp有汇编语言部分,所以有必要再温习一下汇编。TMS320C54x提供7中基本寻址方式。
1、立即数寻址:指令中有一个固定的立即数。例如&LD #10,A,将立即数10传送至累加器A。主要用于初始化。
2、绝对地址寻址:指令中有一个固定的地址(16位)。例如 STL A,*(y),将累加器低16位存放到变量y所在的存储单元中。利用16位地址寻址存储单元。
3、累加器寻址:按累加器的内容作为地址去访问程序存储器中的一个单元。例如 READA x,将累加器A作为地址读程序存储器,并存入变量x所在的数据存储器单元。
4、直接寻址:指令编码中含有的7位地址与DP或SP一起合成数据存储器中操作数的实际地址。例如 LD @x,A,将DP+x的低7位地址的内容传给累加器A。利用数据页制作和堆栈指针寻址。
5、间接寻址:通过辅助寄存器寻址。例如 LD * AR1,A,将AR1的内容传给A。利用辅助寄存器作为地址指针。
6、存储器映射寄存器寻址:修改存储器映射寄存器中的值,而不影响当前数据页面指针DP和堆栈指针SP的值。例如 LDM ST1,B,将ST1的内容装入累加器B。用于快速寻址存储器映射寄存器。
7、堆栈寻址:把数据压入或弹出系统堆栈。例如 PSHM AG。
其中,间接寻址有几种特殊的语法:
1、循环寻址:在卷积、相关和FIR等运算中,都要求存储器中设置一个循环缓冲区,即一个滑动窗口。对一个以8为模的循环寻址中,指针第一次移动是1,2,3,4,5,6,7-&8,第二次则是2,3,4,5,6,7-&8-&1,第三次则是3,4,5,6,7-&8-&1
-&2;依次下去直至达到规定的循环次数。例如 LD *+AR1(8)%,A。
2、位倒序寻址:用于FFT运算中,FFT要求输入倒序,输出顺序,或者输入顺序,输出倒序。使用时,AR0存放点数的一半,ARx指向存放数据的单元。
例如:RPT #15
& & PORTW *AR2 + 0B,PA
这些汇编指令系统按功能分类:
1、算术指令:
ADD,SUB,MPY(乘法),MAC(乘加),MAS(乘减),DADD、DSUB(双精度指令),ABS,FIRS(对称有限冲击响应滤波器),SQDRT(两点间距离平方)。
2、AND,OR,XOR,ROL(移位),BITF(测试指令)。
3、程序控制指令:B、BC(分支指令),CALL(调用指令),INTR、TRAP(中断指令),RET(返回),RPT(重复指令),FRAME、POPD(堆栈操作指令),IDLE(保持空闲直到中断发生),NOP(空操作)。
4、装入和储存指令:LD,ST,CMPS(条件储存指令),||并行指令,MVDD(数据存储器传送),PORTR、PORTW(端口输入输出)、READA、WRITA。
5、单个循环指令,它们引起下一条指令重复执行,重复次数等于指令的其中 一个操作数+1,该次数存在重复计数寄存器RC中。
具体的指令解释以及常用符号可以参考文档《c54xx系列DSP汇编指令详解》。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:181416次
积分:3131
积分:3131
排名:第12470名
原创:127篇
转载:12篇
评论:31条
文章:13篇
阅读:33049
(2)(1)(1)(4)(2)(1)(8)(2)(1)(4)(13)(19)(7)(14)(2)(1)(3)(7)(3)(16)(8)(9)(2)(9)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'

我要回帖

更多关于 特殊符号大全怎么打 的文章

 

随机推荐