ADSP处理器内核的介绍
0赞Blackfin处理器是ADI公司推出的一类新型嵌入式处理器,专为满足目前音频、视频和通信等方面地计算需求和降低功耗而设计的。而ADSP-BF531是Blackfin系列中最具有代表性的DSP处理器。本文将对ADSP-BF531处理器内核进行详细介绍,希望能给大家的设计作点参考。
1.通用寄存器文件
ADSP-BF531处理器内核包括一个用于通用运算单元的8路×32位数据寄存器文件R0~R7,位于下图中的左下角。支持的数据类型包括8位、16位或32位带符号或无符号整数以及16位或32位带符号分数。当进行16位数据的计算操作时,这8个32位的寄存器就会自动被当作16个16位寄存器进行操作,操作起来速度是非常快的。
2.数据运算器

ADSP-BF531的数据运算器所包含的系统资源大约是Analog Devices公司以往16位架构的两倍。如上图,运算器包括有:两个16位MAC,两个40位ALU,四个8位视频ALU,一个个桶形移位器。
MAC在一个周期里就能实现16位乘以16位的数据运算,运算结果会被存放在一个40位的累加器里,无论数据是有符号数还是无符号数,都是能够实现的。
ALU除了包含传统的算术和逻辑运算的设置外,还包括许多特殊的指令,以加速各种信号处理任务,这些指令包括模运算、除法原始算法、符号/指数检测和位操作等等;另外,视频ALU集成有视频指令集,主要是对字节进行对齐和包装,以及对8位和16位数据的剪裁,最终达到增加8位数的平均操作,大大提高了数据的处理速度。
桶形移位器可以实现40位数的移位和旋转,可用于提取、存放数据和指令。
3.程序定序单元
程序定序器负责控制指令执行的流程,并支持条件转移和子例程调用以及零开销嵌套式循环。除了有限的多种64位指令程序包之外,Blackfin®架构还支持16位和32位指令长度。这通过把最常用的控制指令编码为紧凑16位字,并将更加棘手的数学运算编码为32位双字的方法确保了最大的代码密度。
4. 地址发生器
处理器里包含有两个数据地址发生器(DAG),它们提供了用于实现存储器的同时双重操作数取出的地址。这两个DAG共用一个包含了4组32位索引(I)、长度(L)、基址(B)和修改(M)寄存器的寄存器文件。另外还有8个附加32位地址寄存器(即P0~P5、帧指针FP和栈指针SP),它们可被用作针对变量和栈位置的通用标引的指针。4组I、L、B和M寄存器可用于实现循环缓冲。当一同使用时,每组索引、长度和基数寄存器都能够在内部或外部存储器中实现一种独特的循环缓冲器。Blackfin®架构还支持各种寻址模式,包括间接型、自动增量和减量型、索引型和位反转型。所有的地址寄存器的长度均为32位,从而可支持Blackfin®处理器架构的全4Gbyte地址范围。
5.操作模式
ADSP-BF531架构提供了三种操作模式:用户模式、管理模式、仿真模式。用户模式用于限制访问某些系统资源,从而提供一个受保护的软件环境,而在管理模式下,就可以不受限制地访问系统核心资源。
Blackfin处理器对指令集进行了优化,使16位的操作码成为最常用的指令,从而获得优秀的编译后代码密度。而且,Blackfin处理器汇编语言使用代数语法,便于编码和可读性,该架构和已优化的C/C++编译器一起使用,能够快速、高效地实现软件功能。
