Blackfin 处理器包括一个具有 10 级 RISC MCU/DSP 流水线的高性能 16/32 位嵌入式处理器内核、用于实现最佳代码密度的可变长度 ISA 以及具有面向加速视频和多媒体处理的指令的全 SIMD 支持。Blackfin 内核的说明如下:
通用寄存器文件
数据寄存器文件
数据类型包括 8 位、16 位或 32 位带符号或无符号整数以及 16 位或 32 位带符号分数
32 位读出和两个 32 位写入操作
地址寄存器文件
栈指针
帧指针
数据运算器
两个 16 位 MAC
两个 40 位 ALU
四个 8 位视频 ALU
单个桶形移位器
地址运算器
存储器取指令
索引、长度、基数和修改寄存器
循环缓冲
程序定序器单元
条件转移和子程序调用
嵌套式零开销循环
代码密度
通用寄存器文件
Blackfin 处理器内核包括一个用于通用运算单元的 8 路×32 位数据寄存器文件。支持的数据类型包括8 位、16 位或 32 位带符号或无符号整数以及 16 位或 32 位带符号分数。在每个时钟周期中,这种多端口寄存器文件均支持两个 32 位读出和两个 32 位写入操作。还可将其作为一个 16 路×16 位数据寄存器文件来进行存取。
除了支持循环缓冲和栈保持以外,地址寄存器文件还提供了一种通用型寻址机制。该寄存器文件由 8 个表目组成,并包括一个帧指针和一个栈指针。帧指针可用于子例程参数传输,而栈指针则可用于存储子程序调用的返回地址。
数据运算器
数据运算器所包含的系统资源大约是 Analog Devices 公司以往 16 位架构的两倍。它包括:
两个 16 位 MAC
两个 40 位 ALU
四个 8 位视频 ALU
单个桶形移位器
所有的计算资源均能够处理来自数据寄存器文件(R0~R7)的 8 位、16 位或 32 位操作数。可将每个寄存器作为一个 32 位寄存器或一个 16 位寄存器的高位部分或低位部分来进行存取。
在单个时钟周期中,SIMD 架构能够对多达两个 32 位值进行读出和写入操作。然而,由于能够对 R0~R7 寄存器的高位部分和低位部分进行独立寻址(Rx、Rx.H 或Rx.L),因此每个计算部件都能够从两个 32 位输入值和四个 16 位输入值当中进行选择,而并未对输入数据加以限制。计算的结果可以作为一个 32 位实体或寄存器的高 16 位部分或低 16 位部分而被重新写入寄存器文件。此外,累积的方法有可能因为数据通路的不同而存在差异。例如,A0 可能是一个恒定加法,而 A1 则可能是一个恒定减法。这种能力被称为 “灵活的 SIMD”。
两个累加器的长度均为 40 位,从而提供了 8 位扩展精度。与通用型寄存器相似,两个累加器均能够以 16 位、32 位或 40 位的增量进行存取。Blackfin 架构还支持一种可生成两个 16 位、32 位或 40 位结果或 4 个 16 位结果的组合型加法/减法指令。在希望获得 4 个 16 位结果的场合,高位和低位部分的结果可以互换。这是一项非常强大的功能,比方说,它能够显著地改善 FFT 基准程序结果。
地址运算器
两个数据地址发生器(DAG)提供了用于实现存储器的同时双重操作数取出的地址。这两个 DAG 共用一个包含了 4 组 32 位索引(I)、长度(L)、基数(B)和修改(M)寄存器的寄存器文件。另外还有 8 个附加 32 位地址寄存器(即 P0~P5、帧指针和栈指针),它们可被用作针对变量和栈位置的通用标引的指针。
4 组 I、L、B 和 M 寄存器可用于实现循环缓冲。当一道使用时,每组索引、长度和基数寄存器都能够在内部或外部存储器中实现一种独特的循环缓冲器。Blackfin 架构还支持各种寻址模式,包括间接型、自动增量和减量型、索引型和位反转型。最后,所有的地址寄存器的长度均为 32 位,从而可支持 Blackfin 处理器架构的全 4Gbyte 地址范围。
程序定序器单元
程序定序器负责控制指令执行的流程,并支持条件转移和子例程调用以及嵌套式零开销循环。一个多级全互锁型流水线可确保代码按照预期的方式来执行,并将所有的数据故障与编程装置隔离开来。此类流水线通过在必要时停转的方法确保了结果的准确度,以获得正确结果。这极大地简化了编程任务,因为软件工程师无须彻底了解流水线延迟问题。片上互锁硬件可确保操作数数据在一个特殊指令的执行过程中处于有效状态。
除了有限的多种 64 位指令程序包之外,Blackfin 架构还支持 16 位和 32 位指令长度。这通过把最常用的控制指令编码为紧致 16 位字、并将更加棘手的数学运算编码为 32 位双字的方法确保了最大的代码密度。
通用寄存器文件
数据寄存器文件
数据类型包括 8 位、16 位或 32 位带符号或无符号整数以及 16 位或 32 位带符号分数
32 位读出和两个 32 位写入操作
地址寄存器文件
栈指针
帧指针
数据运算器
两个 16 位 MAC
两个 40 位 ALU
四个 8 位视频 ALU
单个桶形移位器
地址运算器
存储器取指令
索引、长度、基数和修改寄存器
循环缓冲
程序定序器单元
条件转移和子程序调用
嵌套式零开销循环
代码密度
通用寄存器文件
Blackfin 处理器内核包括一个用于通用运算单元的 8 路×32 位数据寄存器文件。支持的数据类型包括8 位、16 位或 32 位带符号或无符号整数以及 16 位或 32 位带符号分数。在每个时钟周期中,这种多端口寄存器文件均支持两个 32 位读出和两个 32 位写入操作。还可将其作为一个 16 路×16 位数据寄存器文件来进行存取。
除了支持循环缓冲和栈保持以外,地址寄存器文件还提供了一种通用型寻址机制。该寄存器文件由 8 个表目组成,并包括一个帧指针和一个栈指针。帧指针可用于子例程参数传输,而栈指针则可用于存储子程序调用的返回地址。
数据运算器
数据运算器所包含的系统资源大约是 Analog Devices 公司以往 16 位架构的两倍。它包括:
两个 16 位 MAC
两个 40 位 ALU
四个 8 位视频 ALU
单个桶形移位器
所有的计算资源均能够处理来自数据寄存器文件(R0~R7)的 8 位、16 位或 32 位操作数。可将每个寄存器作为一个 32 位寄存器或一个 16 位寄存器的高位部分或低位部分来进行存取。
在单个时钟周期中,SIMD 架构能够对多达两个 32 位值进行读出和写入操作。然而,由于能够对 R0~R7 寄存器的高位部分和低位部分进行独立寻址(Rx、Rx.H 或Rx.L),因此每个计算部件都能够从两个 32 位输入值和四个 16 位输入值当中进行选择,而并未对输入数据加以限制。计算的结果可以作为一个 32 位实体或寄存器的高 16 位部分或低 16 位部分而被重新写入寄存器文件。此外,累积的方法有可能因为数据通路的不同而存在差异。例如,A0 可能是一个恒定加法,而 A1 则可能是一个恒定减法。这种能力被称为 “灵活的 SIMD”。
两个累加器的长度均为 40 位,从而提供了 8 位扩展精度。与通用型寄存器相似,两个累加器均能够以 16 位、32 位或 40 位的增量进行存取。Blackfin 架构还支持一种可生成两个 16 位、32 位或 40 位结果或 4 个 16 位结果的组合型加法/减法指令。在希望获得 4 个 16 位结果的场合,高位和低位部分的结果可以互换。这是一项非常强大的功能,比方说,它能够显著地改善 FFT 基准程序结果。
地址运算器
两个数据地址发生器(DAG)提供了用于实现存储器的同时双重操作数取出的地址。这两个 DAG 共用一个包含了 4 组 32 位索引(I)、长度(L)、基数(B)和修改(M)寄存器的寄存器文件。另外还有 8 个附加 32 位地址寄存器(即 P0~P5、帧指针和栈指针),它们可被用作针对变量和栈位置的通用标引的指针。
4 组 I、L、B 和 M 寄存器可用于实现循环缓冲。当一道使用时,每组索引、长度和基数寄存器都能够在内部或外部存储器中实现一种独特的循环缓冲器。Blackfin 架构还支持各种寻址模式,包括间接型、自动增量和减量型、索引型和位反转型。最后,所有的地址寄存器的长度均为 32 位,从而可支持 Blackfin 处理器架构的全 4Gbyte 地址范围。
程序定序器单元
程序定序器负责控制指令执行的流程,并支持条件转移和子例程调用以及嵌套式零开销循环。一个多级全互锁型流水线可确保代码按照预期的方式来执行,并将所有的数据故障与编程装置隔离开来。此类流水线通过在必要时停转的方法确保了结果的准确度,以获得正确结果。这极大地简化了编程任务,因为软件工程师无须彻底了解流水线延迟问题。片上互锁硬件可确保操作数数据在一个特殊指令的执行过程中处于有效状态。
除了有限的多种 64 位指令程序包之外,Blackfin 架构还支持 16 位和 32 位指令长度。这通过把最常用的控制指令编码为紧致 16 位字、并将更加棘手的数学运算编码为 32 位双字的方法确保了最大的代码密度。
审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
处理器
+关注
关注
68文章
18288浏览量
222167 -
mcu
+关注
关注
146文章
16019浏览量
343649 -
Blackfin
+关注
关注
0文章
67浏览量
24627
发布评论请先 登录
相关推荐
ADSP-BF534 面向汽车的Blackfin处理器,具有CAN连接能力
Blackfin®处理器系列不断扩展,以满足对嵌入式控制器区域网络(CAN)连接的需求。如果配合高性能16/32位Blackfin嵌入式处理器
发表于 12-23 09:55
用于ADSP-BF533和ADSP-BF561 Blackfin处理器的EZ-KIT Lite评估系统的Blackfin EZ扩展子板
ADZS-BF-EZEXT-1,用于ADSP-BF533和ADSP-BF561 Blackfin处理器的EZ-KIT Lite评估系统的Blackfin EZ扩展板。 Blackfin
发表于 03-06 09:42
用于Blackfin处理器的ADZS-BFAV-EZEXT,Blackfin A-V EZ扩展子板
ADZS-BFAV-EZEXT,Blackfin A-V EZ扩展子板,用于ADSP-BF533,ADSP-BF537和ADSP-BF561 Blackfin处理器的EZ-KIT Lite评估系统
发表于 03-07 10:00
用于Blackfin处理器的ADZS-BF526-EZLITE,ADSP-BF526 EZ板评估系统
用于Blackfin处理器的ADZS-BF526-EZLITE,ADSP-BF526 EZ板评估系统。 Blackfin处理器采用了一种嵌入式处理器
发表于 03-08 09:22
基于Blackfin数字信号处理器的ADZS-BF526-EZBRD,ADSP-BF526 EZ板评估系统
用于Blackfin处理器的ADZS-BF526-EZBRD,ADSP-BF526 EZ板评估系统。 Blackfin处理器采用了一种嵌入式处理器
发表于 03-08 09:30
Blackfin处理器ADZS-BF707-EZLITE,ADSP-BF70x EZ-KIT Lite评估系统
用于Blackfin处理器的ADZS-BF707-EZLITE,ADSP-BF70x EZ-KIT Lite评估系统。 ADSP-BF707处理器是Blackfin系列产品的成员。
发表于 03-13 09:40
Blackfin处理器有什么优点?
2009年9月18日,敏锐的国内媒体记者在秋季国际集成电路展的一个展台上发现了当时尚未正式发布的BF50x信息——业界领先的汇聚式处理器Blackfin家族新成员,并对该处理器在电机控制等应用的独特
发表于 09-27 07:08
面向Blackfin处理器的C语言编程及优化
面向Blackfin处理器的C语言编程及优化:第1章:概念和工具第1a节:导言第1b节:优化工具第2章:优化DSP内核第2a节:优化技术第2b节:紧凑循环第2c节:编译指示第
发表于 09-02 13:16
•17次下载
Blackfin应用程序开发基础知识
Blackfin应用程序开发基础知识
第一章:简介第1a节:课程安排第二章:VisualDSP++构建流程第2a节:C代码导入概述第2b章:编译器基础知识第2c节:连
发表于 01-08 15:04
•0次下载
快速开发基于Blackfin处理器的视频应用
快速开发基于Blackfin处理器的视频应用: 如何利用享有全面技术支持的硬件和软件模块,快速开发能够在Blackfin处理器上运行的视频应用。参加本课程的用户应当具备软件术语方面的
评论