TI DSP C55x CPU(一): CPU Architecture

  最近工作上要用到TI的C5517芯片,之前根本没有接触过DSP,准备从头学起。所以为了弄懂公司使用的这一款TI DSP CPU, 在阅读其官方参考文档之余,做一下读书笔记,加强个人理解记忆用。好,现在开始第一章,这一章主要讲述了三部分内容:

  1. Four functional units conceptual details
  2. buses carry instructions and data.
  3. pipeline and pipeline protection mechanism

首先来一张CPU的全景图:

TI DSP C55x CPU(一): CPU Architecture

关于上图的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 个单元:

  1. Instruction Buffer Unit(I unit): 该单元有128 Bytes Instruction buffer queue来 接受32 bits code,然后Instruction decoder分成1~8 bytes解析并传到合适的单元
  2. 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。
  3. Address-Data Flow Unit (A Unit) :生成data address 和 16-bit ALU
  4. Data Computation Unit (D Unit) : 主要的运算单元

二、Instruction Pipeline:

        1. 指令管道分为两个解耦段:获取管道(fetch pipeline)和执行管道(execution pipeline)

TI DSP C55x CPU(一): CPU Architecture

TI DSP C55x CPU(一): CPU Architecture

  2.Pipeline Protection:

    当前后两条命令,如果在不同阶段运行,并且读写同一个地址则会发生冲突。所以pipeline-protection mechanism 在此两指令插入空闲cycles,并遵循下面准则:

  • 当前指令向某一地址写(读)数据,但前一指令还没从该地址读(写)数据,则在当前指令前插入cycles,直到读(写)命令先执行。

Note:该机制对并发执行指令无效。


参考文献:

  C55x v3.x CPU Reference Guide,Literature Number: SWPU073E June 2009