欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    [信息与通信]实时数字信号处理计算单元.ppt

    • 资源ID:5615103       资源大小:252.98KB        全文页数:48页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    [信息与通信]实时数字信号处理计算单元.ppt

    实时数字信号处理,第2章 计算单元,概述,每个内核都有6个计算单元两个算术/逻辑单元(ALU)两个乘/累加器(乘法器)单元一个移位器一套视频ALU提供定点操作处理不同类型的操作数据移入和移出计算单元是通过数据寄存器文件的数据总线 高级并行机制利用多功能指令 数据地址产生,寄存器文件,3个寄存器组数据寄存器文件为计算单元从数据总线接收操作数并存储计算结果指针寄存器文件含有寻址操作的指针DAG寄存器是专用于管理DSP操作中的零开销循环缓冲的寄存器。,数据地址产生器(DAG),数据寄存器,R0R0.HR0.LR1R1.HR1.LR2R2.HR2.LR3R3.HR3.LR4R4.HR4.LR5R5.HR5.LR6R6.HR6.LR7R7.HR7.LA0A0.XA0.WA1A1.XA1.W,I0 L0 B0 M0 P0I1 L1 B1 M1 P1I2 L2 B2 M2 P2I3 L3 B3 M3 P3 P4 P5 SP FP,数据寄存器文件,包含8个寄存器每个32位宽一对独立的16位寄存器:低半部分和高半部分3条独立总线连接寄存器文件和L1数据存储器2条读、1条写32位宽每个周期内搬移多达4个16位的有效数据32-bit和16-bit操作R2=R1+R2;/*32-bit addition*/R2.L=R1.H*R0.L;/*16-bit multiplication*/,累加寄存器,两个专有的40位的累加寄存器(A0和A1)的访问形式:16位低半部分(An.L)、高半部分(An.H)8位扩展(An.X)低32位寄存器An.W完全的40位结果寄存器(An)指令操作A0=A1;/*40-bit move*/A1.W=R7;/*32-bit move*/A0.H=R5.H;/*16-bit move*/R6.H=A0.X;/*read 8-bit value and sign extend to 16 bits*/,指针寄存器,通用地址指针寄存器,也称之为P寄存器6个P寄存器文件P5:032位宽,主要用于地址计算也可以在一组限定的算术操作集内用于一般的整数算术操作,譬如用作计数器,但不会影响到ASTAT寄存器的状态标志。1个帧指针(FP)用于指向当前进程的活动记录1个堆栈指针(SP)用来指向运行时堆栈中最近一次使用的位置,DAG寄存器组,DAG寄存器组用于寻址I3:0包含索引地址M3:0包含修改值B3:0包含基地址L3:0包含长度值32位宽I寄存器和B寄存器包含存储器8-bit字节地址I寄存器含有一个有效地址,M寄存器含有用于在I寄存器上进行加或减的偏移值任意的M寄存器可和任意的I寄存器关联,比如,I0可被M3修改B寄存器和L寄存器定义循环缓冲,B寄存器存储缓冲的起始地址,L寄存器存储长度,按字节计。L和B寄存器对是与对应的I寄存器相关联的,例如,L0和B0总是和I0相关联,寄存器文件指令汇总,符号的含义说明如下:Allreg表示:R7:0、P5:0、SP、FP、I3:0、M3:0、B3:0、L3:0、A0.X、A0.W、A1.X、A1.W、ASTAT、RETS、RETI、RETX、RETN、RETE、LC1:0、LT1:0、LB1:0、USP、SEQSTAT、SYSCFG、CYCLES和CYCLES2An表示ALU结果寄存器A0或A1之一Dreg表示任一个数据寄存器文件寄存器Sysreg表示系统寄存器ASTAT、SEQSTAT、SYSCFG、RETI、RETX、RETN、RETE或RETS、LC1:0、LT1:0、LB1:0、CYCLES和CYCLES2Preg表示任一Pointer寄存器、FP或SP寄存器Dreg_even表示R0、R2、R4或R6Dreg_odd表示R1、R3、R5或R7,寄存器文件指令汇总,符号的含义说明如下:DPreg表示任一数据寄存器文件寄存器或任一Pointer寄存器、FP或SP寄存器Dreg_lo表示任一数据寄存器文件寄存器低16位Dreg_hi表示任一数据寄存器文件寄存器高16位An.L表示累加器An.W的低16位An.H表示累加器An.W的高16位Dreg_byte表示每一个数据寄存器的低8位Option(X)表示符号扩展Option(Z)表示零扩展*指示这个标志可以置位或清零、依赖于指令的计算结果*指示这个标志清零指示无作用,表2-1 寄存器文件指令汇总表,表2-1 寄存器文件指令汇总表续,算术状态寄存器(ASTAT),指示了最近的ALU、乘法器或移位器操作的状态,算术状态寄存器(ASTAT),数据类型,Balckfin处理器主要是16位定点处理器大多数操作采用补码数,其它有无符号数或二进制串一些指令支持32位整数算术、支持8位算术和块浮点数据格式的详细情况参阅硬件参考手册附录C“数字格式”在Blackfin处理器系列算术中有符号数都是2的补码格式处理器支持32-bit字、16-bit半字和字节32-bit和16-bit字可以是整数或小数,但是字节总是整数整数可以是有符号数或无符号数,但小数总是有符号数,小数表示(1.15),对于1.15二进制格式小数算术是优化的表示从-1到0.999969之间的值图2-3给出了1.15数的位权重和例子,图2-3 1.15数的位权重,ALU数据类型,除了有符号除法原语(DIVS),每个ALU操作都把操作数和结果当作16-bit或者32-bit二进制串处理ALU结果产生状态信息把结果当作有符号数溢出标志(AV0,AV1)和负数标志(AN)黏性溢出标志AV0S或AV1S一旦置位将保持置位状态直到直接写入而清除V标志的置位或清除取决于从两个累加器到寄存器文件的结果的传送黏性VS位随V位一同置位并保持置位状态直到清零溢出位(V、VS、AV0、AV0S、AV1、AV1S)逻辑都是基于补码算术如果MSB的改变方式不是操作数符号位和操作本身特性所预测的方式,那么一个位或一个组合位都会置位例如两个正数相加,结果也必为正数,符号位的改变表示溢出并使相应的溢出标志AVn置位一个正数和一个负数相加可能产生一个正数或者一个负数,但是不会导致溢出进位(AC0、AC1)逻辑是基于无符号数算术如果是从位16(MSB)产生了进位就会将进位置位,进位对于一个多字操作的低位字部分来说是非常有用的,乘法器数据类型,根据指令本身给定的信息,输入被解释成不同的类型有符号数乘以有符号数、无符号数乘以无符号数、混合类型,或者是一个取整操作32位结果假定是有符号的,也是符号扩展的,充满A0或A1寄存器的整个40-bit的宽度处理器支持两种格式调整模式小数模式,用于小数操作数(1.15格式)两个1.15操作数相乘,结果是一个2.30的数结果传送到乘法器结果累加器(A0,A1)之前左移一位得到1.31格式数,可以圆整为1.15格式数整数模式,用于整型操作数(16.0格式)如果操作数都是16.0格式,乘法结果将是32.0格式。当用乘法器结果更新累加器,或将它们传送到目的寄存器文件寄存器时,将产生状态信息,移位器数据类型,移位器中的许多操作是明确地采用有符号(补码)或无符号数逻辑移位采用无符号数或二进制串算术移位采用补码数指数逻辑采用补码数,指数逻辑支持块浮点,这也是基于补码的小数移位器结果产生状态信息,圆整乘法器结果,持乘法器结果的圆整(RND选项)圆整是降低一个数的精度的一种方式 寄存器ASTAT里的位RND_MOD清0对应无偏圆整,该位置1对应有偏圆整对所有算法,无偏圆整是首先的,无偏圆整,传统的有偏圆整方法是在加法器的比特位置15上加上一个1,这个方法将引起一个净正偏差,因为中间值(A0.L/A1.L=0 x8000)总是向上圆整的当检测到结果是中间点值时,通过强迫结果输出中的比特16为0,累加器可消除这个偏差累加器使用无偏圆整方案无偏圆整使ALU能将40-bit的结果在比特15和比特16边界之间进行圆整,圆整可以指定为指令代码的一个部分,当选择了圆整,输出寄存器就包含了已经圆整的16-bit的结果当原始数刚好位于两个数中间时这个方法返回最接近的偶数,最低有效位是0例如,要圆整一个3-bit的补码小数0.25(二进制0.01)到2-bit的补码小数,其结果将是0.0(二进制0.0),因为是从0.5(二进制0.1)和0.0中选择偶数基于附近的值向上和向下圆整,所以该方法称之为无偏圆整强迫比特16为0有这样的作用:将奇数的A0.L/A1.L值向上圆整,将偶数值向下圆整,得到大样本偏差为0、均匀分布的数值参见图2-5和2-6 累加器内容是从不圆整的,特殊的圆整指令,提供了这样的能力在不同的比特边界上圆整,这些选项是RND12、RND和RND20,分别从比特12、16和20上提取16位的值,并执行有偏圆整,而不管ASTAT中的RND_MOD位的状态。指令:R3.L=R4(RND);在比特16上执行有偏圆整,保存结果于一个半字中R3.L=R4+R5(RND12);执行两个32位数的加法,在比特12上执行有偏圆整,将结果保存到一个半字里R3.L=R4+R5(RND20);执行两个32位数的加法,在比特20上执行有偏圆整,将结果保存到一个半字里,算术逻辑单元(ALU),两个ALU执行定点数的算术和逻辑操作ALU定点指令操作16-bit、32-bit或40-bit的定点操作数,得到16-bit、32-bit或40-bit的定点结果。ALU指令寄存器的定点加减法、立即数的加减法、乘法结果的累加/减、逻辑(与、或、非、异或、按位异或、取反)操作、函数(取绝对值、最大值、最小值、圆整、除法原语)操作,ALU操作,ALU的主要操作是在ALU0中进行的,并行操作是在ALU1中进行的,它执行ALU0操作的一个子集表2-8描述了每个ALU可能的输入和输出联合两个ALU操作,单条指令能得到4个16-bit结果、两个32-bit结果或两个40-bit结果。,ALU操作,单16-bit操作 R3.H=R1.H+R2.L(NS);R1.H加到R2.L上,结果保存到R3.H中,不带饱和选项 双16-bit操作 R3=R1+|-R2(S);R2.H加到R1.H上,饱和处理后的结果保存到R3.H里从R1.L中减去了R2.L,饱和处理后的结果保存到R3.L里 4个16-bit操作 R3=R0+|+R1,R2=R0|R1(S);R1.H加上R0.H,保存结果到R3.H里,带饱和操作。R1.L加上R0.L,保存结果到R3.L里,带饱和操作。R0.H减去R1.H,保存结果到R2.H里,带饱和操作。R0.L减去R1.L,保存结果到R2.L里,带饱和操作。,ALU操作,单32-bit操作 R3=R1+R2(NS);指令中不能混合使用指针寄存器与数据寄存器 双32-bit操作 R3=R1+R2,R4=R1 R2(NS);提供给ALU0和ALU1的是同样的两个32-bit输入寄存器 专门形式使用40-bit的ALU结果寄存器作为操作数,得到关于A0和A1寄存器的和与差。例如指令:R3=A0+A1,R4=A0 A1(S);将ALU寄存器值进行加减操作,带饱和处理,并将两个32-bit的和与差转输到结果寄存器,双16-bit交叉选项,对于双16位操作,结果可能会交叉“交叉结果”改变了计算结果在结果寄存器中的位置。高端结果放置在目的寄存器的低半字里,低端结果放置在目的寄存器的高半字里,参见图2-9在处理复数数学运算和快速傅立叶变换(FFT)的部分操作时有用,交叉选项只适用于ALU0,图2-9 双16-bit ALU操作的交叉选项,ALU除法支持与视频操作,ALU支持除法两个专用的除法原语DIVS和DIVQ让程序实施一个不复原的、有条件的(错误检查)加/减/除算法除法可以是有符号的或无符号的,但是被除数和除数必须是同一类型,参见处理器指令集参考处理器具有特殊的SIMD视频ALU操作功能4个8-bit视频ALU使处理器能够高效率地处理视频信息每个视频ALU指令可能需要1至4对8-bit的输入,输出1至4对8-bit的结果输入是用数据寄存器文件按两个32-bit字的形式提交给视频ALU的可能的操作包括4个8-bit数的加法或减法、4个8-bit数的平均、4个8-bit数的打包和解包、4个8-bit数的减-绝对值-累加、字节对齐参见处理器指令集参考,ALU指令汇总,符号的含义说明如下Dreg_lo_hi表示任何数据寄存器文件寄存器里的16-bit寄存器半字。imm7表示有符号的7-bit宽的立即数。DIVS表示除法符号原语。DIVQ表示除法商原语。MAX表示源寄存器里的最大值,或最大的正值。MIN表示源寄存器的最小值。ABS表示一个32-bit寄存器的高或低半字的绝对值。RND表示对一个半字圆整。RND12表示对加法或减法结果饱和处理,并在结果的第12位上进行圆整。RND20表示对加法或减法结果饱和处理,并在结果的第20位上进行圆整。SIGNBITS表示一个数里的符号位的个数减1。EXPADJ表示一个数里次要的符号位的个数减1和一个阈值。d指示AQ包含被除数最高有效位与除数最高有效位的异或。,表2-9 ALU指令汇总表部分指令,本讲作业1,理解并整理指令功能(参考ADSP-BF53x/BF56x Blackfin Processor Programming Reference)MAXMINVector SEARCHVector MAXVector MIN,乘累加器,乘累加器MAC0和MAC1执行定点乘法运算和乘累加操作用于累加或累减定点指令对16-bit数据进行操作,产生32-bit结果,它可被加到40-bit累加器里或从中减去输入小数或整数,无符号或补码数指令乘法、乘累加(带圆整选项)、乘累减(带圆整选项)、同时包含前面两种操作,乘法器操作,输入数据寄存器文件寄存器 从两个32-bit输入得到两个16-bit操作数输出累加其结果到它的累加器寄存器A1或A0累加器结果可饱和成32或40位或圆整后直接写入16-bit或32-bit目的寄存器数据类型输入都是整数类型或者是小数类型,结果的类型和输入的类型一致对于MAC0,两个输入都被当作无符号或有符号数对于MAC1,有一个混合类型选项若两个输入都是小数形式并是有符号数,将结果左移一位,以消除冗余符号位而对于无符号小数、整数或者混合类型,不执行符号位修正的移位操作乘法指令选项指定了输入数据的格式参见“乘法器指令选项”,乘法器操作,乘法器结果的圆整或饱和乘法结果溢出时的饱和处理乘法器指令汇总(参见整理文稿)乘法器指令选项(参见整理文稿)不带累加的乘法 乘积结果直接存入一个数据寄存器文件寄存器或累加器寄存器目的寄存器可以是16位的或32位的16-bit目的寄存器,低半字则使用MAC016-bit目的寄存器,高半字则使用MAC132-bit目的寄存器,MAC0和MAC1都可以使用,乘法器操作,特殊的32-bit整数MAC指令Dreg*=Dreg;双MAC操作两个16-bit MAC使MAC吞吐率加倍两个32-bit输入寄存器可提供给每一个MAC单元,提供了4种可能组合的16-bit输入操作数。矢量操作存储样点矢量到4个输入操作数,并执行矢量计算。例子A1+=R1.H*R2.L,A0+=R1.L*R2.H;,MAC操作中4个可能的组合,桶式移位器,提供对16-bit、32-bit或40-bit输入的移位功能,产生一个16-bit,32-bit,或40-bit的输出功能算术移位、逻辑移位、循环移位和各种位测试、设置、打包、解包和指数检测移位功能可以组合实现数字格式控制,包括完整的浮点表示,移位器操作,指令,指令表示算术移位LSHIFT、指令表示逻辑移位在16-bit单个或成对的数值上操作的指令都可以采用ASHIFT和LSHIFT指令在许多DSP算法中用到,典型的3操作数指令操作一个32-bit寄存器值并使用两个操作数的指令,可以利用和指令算术移位、逻辑移位和循环指令可从寄存器或直接从指令的立即数中获得移位参数,两操作数移位,移位一个输入寄存器并将结果存入同一寄存器 立即移位 R0 contains 0000 B6A3;R0=0 x04;结果:R0 contains 0000 0B6A 寄存器移位R0 contains 0000 B6A3;R2 contains 0000 0004;R0=R2;结果:R0 contains 000B 6A30。,3操作数移位,对一个输入寄存器进行移位并将结果存放在目的寄存器 立即移位 R0 contains 0000 B6A3;R1=R00 x04;结果:R1 contains 0000 0B6A 寄存器移位 R0 contains 0000 B6A3;R2.L contains 0004;R1=R0 ASHIFT by R2.L;结果:R1 contains 000B 6A30 R0 contains ABCD EF12;R2.L contains 0004;R1=R0 ROT by R2.L;(循环移位,假设条件码位(CC)设置为0)结果:R1 contains BCDE F125CC位包含在结果中,在第3位,位测试、置位、清零、切换,对一个数据寄存器中的指定位进行测试、置位、清零及切换两个参数源寄存器和位域值不改变源寄存器,结果保存在CC位里例子BITCLR(R0,6);BITSET(R2,9);BITTGL(R3,2);CC=BITTST(R3,0);,域抽取和域存储,可从一个32-bit源域中的任何位置上抽取出一个1-bit到16-bit域可以将1-bit到16-bit长度的源域存储到一个32-bit目的域中的任何位置上使用两个寄存器参数一个包含32-bit目的或32-bit源另一个包含要抽取/存储的值,它的长度和它在源里的位置,表2-12移位器指令汇总表部分指令,本讲作业2,理解并整理指令功能(参考ADSP-BF53x/BF56x Blackfin Processor Programming Reference)Dreg=DEPOSIT(Dreg,Dreg);Dreg=EXTRACT(Dreg,Dreg);BITMUX(Dreg,Dreg,A0);Dreg_lo=ONES Dreg;Dreg=PACK(Dreg_lo_hi,Dreg_lo_hi);Dreg=Dreg uimm4(V);Dreg=Dreg uimm4(V);Dreg=Dreg uimm4(V);Dreg=ROT Dreg BY imm6;Dreg=ASHIFT Dreg BY Dreg_lo(V);Dreg=LSHIFT Dreg BY Dreg_lo(V);,数据地址产生器,数据地址产生器(DAG)功能与寄存器DAG产生数据地址以将数据移到存储器或从中取数程序用DAG寄存器代替绝对地址来间接寻址支持几种功能用于减少数据访问时的开销提供地址:在数据访问期间提供地址提供地址并后修改:在数据转移时提供地址,并为下一次转移自动增/减存储地址提供偏移地址:提供相对于某基地址的偏移址,不增加原始地址指针修改地址:增加或减少存储地址,不执行数据转移位反向进位地址:在数据转移时提供位反向进位地址,而不是反转存储地址DAG子系统两个DAG算术单元、9个指针寄存器、4个索引寄存器、4套相关的变址、基址和长度寄存器,DAG的寻址,Blackfin处理器按字节寻址,所有的数据访问必须对齐数据字节大小32-bit取指必须对齐32位,但8位的存储可对齐任意字节指令:R0=P3+;取一个32位字,由P3中的值来指向,并把它放在R0中,然后P3加4以维持32位对齐访问R0.L=WI3+;取一个16位字,由I3中的值来指向,并把它放进目的寄存器低半部分R0.L中,然后I3加2来维持16位对齐访问R0=BP3+(Z);取一个8位字,通过P3中的值来指向,并把它放进目的寄存器R0中,然后P3加1以维持8位对齐访问字节值可以是零扩展或符号扩展到32位数据寄存器,DAG的寻址,帧和堆栈指针操作位反向地址方式寻址循环缓冲器的寻址使用后修改的寻址方式当第1次后修改访问缓冲器时,DAG在地址总线上输出I寄存器的值,然后加上地址增量来修改这个地址用方程形式,这些修改和回绕操作表示为“I+M”操作如果M是正的:Inew=Iold+M,如果Iold+M 缓冲器基址+长度(缓冲器尾地址)Inew=Iold+M L,如果Iold+M 缓冲器基址+长度(缓冲器尾地址)如果M是负的:Inew=Iold+M,如果Iold+M 缓冲器基址(缓冲器首地址)Inew=Iold+M+L,如果Iold+M 缓冲器基址(缓冲器首地址),DAG的寻址,索引和指针寄存器的索引寻址使用索引寄存器或指针寄存器中的值作为有效地址加载或保存16-bit或32-bit值,默认的是32-bit转移,16-bit转移用W标识符前缀 自动增加/减少寻址在访问后更新指针和索引寄存器,增量要根据字的大小,32-bit、16-bit、8-bit访问时指针更新量分别为4、2、1预修改堆栈指针寻址SP中的地址先减去4然后作为一个有效地址用于保存指令-SP=R0用于堆栈入栈操作,且仅支持一个32-bit字转移立即数偏移址的索引寻址允许程序从数据表中获得一个与表的基址有关的数据,并作为一个立即数偏移址修改指针寄存器以产生有效地址指针寄存器的值并不会更新。如果最终地址没有对齐,则会触发一个异常事件后修改寻址R5=P1+P2;修改DAG和指针寄存器DAG支持修改索引寄存器中的地址值但不输出地址,这种地址修改操作用于维持指针是有用的。,存储器地址对齐,Blackfin处理器需要正确的存储器对齐来维持所访问数据字节数大小存储器对齐冲突会引起一个对齐异常,除非异常被禁止自动禁止对齐异常的指令一些指令,例如许多视频ALU指令,会自动禁止对齐异常当数据保存在存储器时数据可能不会是对齐的DISALGNEXPT指令与加载/保存操作并行执行,也可禁止对齐异常该指令屏蔽了存储器对齐错误的自动检测但该指令仅会影响到用I寄存器间接寻址的非对齐加载,使用P寄存器的非对齐加载会引起异常的通常存储器系统需要两种地址对齐:32-bit字加载/保存访问于4字节边界:地址两个最低有效位是b#0016-bit字加载/保存访问于2字节边界:地址最低有效位是b#0,

    注意事项

    本文([信息与通信]实时数字信号处理计算单元.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开