代码改变世界

blackfin内核结构

2017-09-27 17:46  yellowstream  阅读(244)  评论(0)    收藏  举报

内核结构:

2个40位的算术逻辑单元(ALU)

2个乘法器/累加器(MAC)

4个视频ALU

1个移位器

 

 

8个32位数据寄存器(R0-R7),每个寄存器可看做两个16位的寄存器(R0.H,R0.L)

 

2个40位累加器寄存器(An.L,An.H,An.X)

 

8个32位指针寄存器(P0-P5,SP,FP):FP(帧指针寄存器)指向当前激活的程序;

 

SP(堆栈指针寄存器)指向实时堆栈中最后被使用的单元

 

16个32位数据地址产生器(DAG)寄存器

 

4个索引寄存器I[3:0]

4个修正寄存器M[3:0]

I M配合存放存储器的字节地址

 

4个基地址寄存器B[3:0]

4个长度寄存器L[3:0]

B L配合存放循环数据缓冲区地址

 

乘法-累加器:

FU:无符号小数

IU:无符号整数

M:混合的无符号和有符号

W32:对32位的累加结果做饱和处理

32位运算结果放在累加器的地位部分,符号位扩展到高8位

单独使用乘法功能:16位目标寄存器的低半部使用MAC0,高半部使用MAC1

小数提取高半部,整数提取低半部

Dreg *=Dreg??