- 1、本文档共43页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
BIT/TI 第七讲 连接器 第七讲 数据访问与程序控制 学习内容 一、定界(alignment) 二、操作数 数据交叉通路、地址交叉通路、条件交叉通路 指针操作数与循环缓存区 有限字长效应问题 三、程序控制 子程序调用与返回 程序跳转 四、实验 一、定界 定界:数据或代码在存储器内的开始地址有一定要求 常数 变量 代码 数据定界原则 数据类型决定:定界、存取指令 常数定界 编译器会根据常数类型自动定界 变量定界 错误定界 数据类型要与存取指令一致 数据定界练习 代码定界 连接器自动按照256 bits定界 代码的起始存放地址必须是256的整数倍,即8 LSB = 0。 定界小结 数据类型决定定界方式和访问方式 定义变量时必须填写定界信息 为节省存储空间,应按照word, short, byte的顺序定义数据 无需考虑常量的定界问题: m .byte 10 无需考虑代码的定界问题 二、操作数 操作数:交叉通路-Cross Paths 数据交叉通路(.L, .S, .M) 地址交叉通路(.D) 条件交叉通路(所有单元) 条件寄存器:A1, A2, B0, B1, B2 数据交叉通路 地址交叉通路 地址交叉通路 在并行存取指令中使用地址交叉通路的限制 条件交叉通路 所有指令都可以是条件指令 条件寄存器可以与功能单元不同侧,而且不占用数据交叉通路或地址交叉通路 例子 [B2] ADD .L1x A2, B0, A4 [!A1] MPY .M2x B0, A5, B4 交叉通路-小结 数据交叉通路 只能用于源寄存器 一个执行包内,每侧的数据交叉通路只能用一次 地址交叉通路 指针寄存器与功能单元必须在同侧 只能用于LD/ST指令的数据寄存器 并行存取指令:只能都使用或都不使用地址交叉通路 条件交叉通路 没有限制 交叉通路-练习 操作数:指针操作数 循环寻址 在卷积、相关、FIR等应用中用来实现一个或两个滑动窗。 一个采样周期后 两个采样周期后 循环寻址指针的修改 8个寄存器可以用于循环寻址 A4-A7,B4-B7 指针的使用与线性寻址指针相似,只是地址修改稍有不同 只能在循环缓存区的地址范围内修改 若指针修改后超出循环缓存区,则地址指针“绕回”起始地址 循环寻址的使用-AMR低16位设置寻址模式 循环寻址的使用-AMR高16位设置循环缓存区长度 设置寄存器AMR-例子 循环寻址-练习 .sect “myData” .align 16 .int 22... .sect “myCode” MVK .S1 0001h, A2 MVKLH .S1 0003h, A2 MVC .S2x A2, AMR MVK .S1 100h, A4 LDW .D1 *A4++[2], A1 LDW .D1 *A4++[3], A1 操作数:有限字长效应问题 采用Q15表示操作数,乘法不会有溢出问题 加法有溢出问题 加性溢出的解决方法 1. 选择饱和运算指令(Saturation),并检查运算结果是否发生运算结果饱和。 2. 使用警戒位(guard bits)。 3. 使用非增益系统(系统增益1) 1.饱和运算 检查运算结果是否发生饱和-SAT位的提取和清除 饱和运算小结 饱和运算造成非线性结果 使用指令SADD, SSUB, SAT, SMPY时,如果结果发生饱和,则控制状态寄存器CSR的SAT位被置位 饱和位SAT置位后,在下次使用前要清零 2.使用警戒位 用long 40实现警戒位 如何使用40bit结果? 结果存入存储器(40位结果无法直接作乘法器输入) 指令SAT把40bits结果转换为32bits(转换结果可能会发生饱和) 3.使用非增益系统 如果系统有界,并且是线性的,则最后结果不会发生溢出。 y=H.x 假设: |x|1, |H|1 则: |y|1 非增益系统例子 三、程序控制-子程序调用与返回 跳转指令 共有两个跳转指令 B 标号 -相对跳转 -标号与当前地址的偏移限制在+/-220 B 寄存器 -绝对跳转 -只能在.S2上执行 跳转指令及其延迟间隙不可中断 5个延迟间隙 实验 实验目的: 综合掌握4,5,6,7章知识,了解完整的汇编语言编程 实验内容 30点点积的完整汇编语言编程:包括数据结构和算法,以及程序复位、数据初始化,和连接器命令文件。 程序控制涉及到的问题有子程序调用和返回,程序跳转。C62xx没有专门的CALL和RET指令用于子程序调用和返回。程序调用和返回是用利用寄存器保存程序返回地址,然后利用跳转指令实现的。这样作的好处是节省了用于保护程序计数器的硬件,减少了指令集中的指令个数;因而可以
文档评论(0)