最近工作上要用到TI的C5517芯片,之前根本没有接触过DSP,准备从头学起。所以为了弄懂公司使用的这一款TI DSP CPU, 在阅读其官方参考文档之余,做一下读书笔记,加强个人理解记忆用。好,现在开始第一章,这一章主要讲述了三部分内容:
- Four functional units conceptual details
- buses carry instructions and data.
- pipeline and pipeline protection mechanism
首先来一张CPU的全景图:
关于上图的data和address Buses有几点需要注意:
- 上面有三对buses: Data-read data & address, Data-write data & address, Program-read data & address
- 其中所有data space addresses 都由A unit 生成。
- BB and BAB are not connected to 外部memory.
- BB bus 只负责传输内部内存到D unit (MAC)的数据
一、
下面解释一下CPU 4 个单元:- Instruction Buffer Unit(I unit): 该单元有128 Bytes Instruction buffer queue来 接受32 bits code,然后Instruction decoder分成1~8 bytes解析并传到合适的单元
- Program Flow Unit (P Unit):生成所有的program-space address 和 directing operations。it contains program control logic:1)test condition 2)interrupt service 3)repetition 4)manage parallel instruction。
- Address-Data Flow Unit (A Unit) :生成data address 和 16-bit ALU
- Data Computation Unit (D Unit) : 主要的运算单元
二、
Instruction Pipeline: 1. 指令管道分为两个解耦段:获取管道(fetch pipeline)和执行管道(execution pipeline)
2.Pipeline Protection: 当前后两条命令,如果在不同阶段运行,并且读写同一个地址则会发生冲突。所以pipeline-protection mechanism 在此两指令插入空闲cycles,并遵循下面准则:
- 当前指令向某一地址写(读)数据,但前一指令还没从该地址读(写)数据,则在当前指令前插入cycles,直到读(写)命令先执行。
Note:该机制对并发执行指令无效。
参考文献: C55x v3.x CPU Reference Guide,Literature Number: SWPU073E June 2009