DSP汇编指令学习笔记
Knowledge
问题
谁在DSP的汇编语言中加入了NOP指令? NOP指令加入的条件是什么?
About DSP
1. DSP是实时数字信号处理的核心和标志。
2. DSP分为专用和通用两种类型。专用DSP一般采用定点数据结构(一般不支持小数),数据结构简单,处理速度快;通用DSP灵活性好,但是处理速度有所降低。
3. DSP采用取指、译码、执行三个阶段的流水线(Pipeline)技术,缩短了执行时间,提高了
运行速率。DSP具有8个Functional unit,如果并行处理的话,以600MHz的时钟计算,如果执行的指令是single cycle指令,则可以4800MIPS(指令每秒)。 4. DSP的8个functional Unit,具有独特的功能,对滤波、矩阵运算、FFT(傅里叶变换)
具有
哈弗结构
把指令空间与数据空间隔离的存储方式。
这样实现是为了实现指令的连续读取,而实现pipeline流水线结构。
传统哈弗结构:两个独立的存储空间,还使用独立总线。让取指与执行存储独立,加快执行速度。
改进型哈弗结构:指令与数据的存储空间还是独立的。但是使用公共的总线(地址总线与数据总线)。这样实现的原因是因为出现了CACHE,数据的存储动作大部分被内部的CACHE总线承接了,所以总线冲突的情况会大大减少。同时让总线的结构与控制变得简单,CACHE存储的速度也明显快于外设存储器。
冯诺依曼结构:是指令空间与数据空间共享的存放方式。它不能实现pipeline的执行过程。
Pipeline(流水线)技术
是把指令的取指-译码和指令的执行独立开来的技术。虽然每条指令的过程还是要经过取指-译码-执行三个阶段最少3个CPU Cycle。但是多个指令同时并行先后进行,保证总体的指
1
令吞吐速率理想情况下可以保证在每个指令只要一个CPU CYCLE。
Pipeline技术必须要有哈弗结构支持,即必须把指令空间与数据空间隔离存放。
流水线阻断
流水线中阻断现象也十分普遍,下面就各种阻断情况下的流水线性能进行详细分析。 流水线阻断总体有两种情况: 1. 资源冲突阻断:
a) 如果前一指令的某Stage与后一指令某Stage在同一个Cycle执行,但是
前一指令此Stage占用了后一指此Stage的资源,则后一指令此Stage的工作会被延迟执行。
b) 被延迟执行的动作会停留在前一个Stage状态,则前一个Stage的状态就
不能进入新的指令的动作。
c) 依次前推,则总有一个取指Stage的指令被阻断,那么其后一个指令也被阻
断而不能被取指。
d) 所以,每产生一个Cycle的阻断,就会让CPU的执行延迟一个Cycle。即此
指令后面的所有指令都会被延迟一个Cycle被执行。
e) 解决的方法是:使用Cache让存放变得更快;变量集群使用,记录减少变量
存放到memory的需要。
2. 跳转阻断:
a) 跳转阻断有很多情况产生,比如函数调用/返回,循环的break/continue,
if等条件判断,循环跳转,中断跳转的产生。
b) 一旦某条指令要进行跳转时,它就会设置LR寄存器,阻止后续的指令进入执
行Stage,并修改PC指针,执行跳转后的目标代码。 c) 解决的方法是:减少循环、条件判断、分支结构的使用。
DSP Pipeline技术
DSP具有8个独立的执行单元,所以每个CYCLE可以执行8条指令(要求其总线宽度是
256bit)。 即DSP是8个pipeline并行处理的技术。所以DSP每个阶段取8个指令,然后在译码阶段把8个指令分配到8个执行单元去处理。 所以必须保证被同时取的指令之间没有相关性(即一个指令的执行不需要其他指令的结果参
2
与),否则会得到错误的结果。所以,DSP引入了NOP指令,如果不能实现这一的要求,则DSP的编译器,则DSP优化器会在其编译的指令后面添加NOP指令。表示此Cycle不能执行8条有效指令,只能擦入空指令。则这样就会有某些执行单元在此CYCLE空闲了。
DSP Pipeline阻断
DSP Pipleline的阻断处理相对比较复杂一些,因为它涉及到8独立执行单元的阻断。 1. 资源冲突阻断:
a) 如果某个Unit因为资源冲突阻断,或者因为一个指令需要多个Cycle执行。则此
Unit会被阻断。 b) 当某个Unit被阻断时,其上一个阶段的指令就不能往下传递。一直阻断到此Unit的取值动作。
c) 所以当有阻断发生是,FG并不会请求8条指令,而是请求1-7条,或者不请求(8个Unit全部阻断了)。这样没有被阻断的Unit还是能够充分运行的。
2. 跳转阻断:http://www.doc88.com/p-908395009795.html
a)
NOP
Not dispatched instruction
It is an empty instruction in DP packet.
如果一个指令标识需要Delay N个slot,则需要在这个指令后面跟N个NOP指令(对于那些自身不带NOP的指令,比如B)(但是对于BNOP则不需要的)。
通过寄存器的定位技巧
1. 2. 3.
查看NRP寄存器的值,则可以直接查看在哪个周期的指令异常了(NRP指令的前一周期就是crash的指令)(使用A10/B10??可以看到此函数的参数)
查看B3寄存器的值,跳到此代码段查看前面一个的Jump指令。看是jump到哪个函数了,则是在此函数中出异常了。则可以看到是谁调用的此crash的函数。(使用A4/B4??可以看到parent的参数) 如果参数是二维指针,则此参数所在类存一般都是栈内的某个地址。(可以根据栈空间的特点知道具体应该是哪个地址)
3
CPU data path & control
说明:
1. Register A也是由两片寄存器组组成的,A0:A1/ … /A30:A31的pair是分布在两个组片
中的
2. ST path是把寄存器的值写入内存的路径
3. LD path是把内存的值加载到寄存器中的路径 4. DA path是读写寄存器的路径 5. X path是跨组读写寄存器的路径
A & B path general purpose registers
1. Each A & B path has 32 32-bit register, named A0-A31, B0-B31. 2. It supports 40bit & 64bit value. If value is larger than 32 bit, it needs register-pair. The 32LSB stores in even-numbered register, such A0, and the 8 or 32 MSB stores in odd-numbered register, such A1. 3. General purpose registers can be used for data, address pointers,
4
condition registers.
8 functional units
1. 8 functional units can be divided into 2 groups, G1: L1, S1, M1, D1 for A register path, and G2: L2, S2, M2, D2 for B register path. 2. Each function units has its special function, such as +/-/*/>/<. But some operations can be deal in all units
Unit path
The C6000 CPU has 2 generous purpose register files ( A & B), 8 function units (L1/S1/D1/M1 & L2/S2/M2/D1).
The 8 function units have different path to access data or data address: 1. L Path:LD1/LD2: Access data path of A & B register files a) 从A/B中读取数据
2. DA1/DA2: access data address path of A & B register files a) 把数据保存到A/B中
3. ST1/ST2: write data path of A & B register files a) 把立即数或者控制寄存器保存到A/B中
4. 1X/2X: cross path of A …… 此处隐藏:1635字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [实用模板]第八章:法国“新浪潮”与“左岸派”
- [实用模板]2021年北京上半年临床医学检验技师生物
- [实用模板]SAP GUI 7.10客户端安装配置文档
- [实用模板]2001年临床执业医师资格考试综合笔试试
- [实用模板]36机场工作实用英语词汇总结
- [实用模板](一)社会保险稽核通知书
- [实用模板]安全教育主题班会材料
- [实用模板]濉溪县春季呼吸道传染病防控应急演练方
- [实用模板]长沙房地产市场周报(1.30-2.3)
- [实用模板]六年级数学上册典中点 - 图文
- [实用模板]C程序设计(红皮书)习题官方参考答案
- [实用模板]中国证监会第一届创业板发行审核委员会
- [实用模板]桥梁工程复习题
- [实用模板]2011学而思数学及答案
- [实用模板]初中病句修改专项练习
- [实用模板]监理学习知识1 - 图文
- [实用模板]小机灵杯四年级试题
- [实用模板]国贸专业毕业论文模板
- [实用模板]教育学概论考试练习题-判断题4
- [实用模板]2015届高考英语一轮复习精品资料(译林
- 00Nkmhe_市场营销学工商管理_电子商务_
- 事业单位考试法律常识
- 诚信教育实施方案
- 吉大小天鹅食品安全检测箱方案(高中低
- 房地产销售培训资料
- 高一地理必修1复习提纲
- 新概念英语第二册lesson_1_练习题
- 证券公司内部培训资料
- 小学英语时间介词专项练习
- 新世纪英语专业综合教程(第二版)第1册U
- 【新课标】浙教版最新2018年八年级数学
- 工程建设管理纲要
- 外研版 必修一Module 4 A Social Surve
- Adobe认证考试 AE复习资料
- 基于H.264AVC与AVS标准的帧内预测技术
- 《食品检验机构资质认定管理办法》(质
- ABB变频器培训课件
- (完整版)小学说明文阅读练习题及答案
- 深思洛克(SenseLock) 深思IV,深思4,深
- 弟子规全文带拼音




