TI DSP C55x CPU(一): CPU Architecture

技术标签: DSP  TI  CPU  

  最近工作上要用到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的全景图:


关于上图的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)



  2.Pipeline Protection:

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

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

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


参考文献:

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


来源:网络


智能推荐

CPU

1.CPU功能 CU功能:指令控制、操作控制、时间控制、处理终端、数据加工 ALU功能:算数运算和逻辑运算 PC+1 –>MAR –>前往主存取得指令内容 –>MDR –>IR –>CU 2.CPU寄存器 3.指令 周期:取指周期(+间址周期)(+执行周期)(+中断周期) 流水:超标量技术、超流水线技术、超长...

#CPU

 CPU是人们常挂在嘴边的一个词。今天就谈一下CPU。 定义  CPU(Central Processing Unit)是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。中文中,称之为“中央处理器”。 功能及构成  CPU的功能主要是解释计算机指令以及处理计算机软件中的数据。中央处理器主要包括运算器和高速缓冲存储器及实现它们之间联系的...

CPU

CPU 控制器 运算器 指令执行过程   控制器 控制器,是协调和控制计算机运行的。 控制器里,通常有些电子元器件: 程序计数器:提供给其他控制单元,当前需要指向指令的地址。 时序发生器:可发送时序脉冲,CPU的节拍器,CPU根据节拍工作。 指令译码器:指令由操作码、地址码组成,负责翻译操作码对应的操作、地址码的数据。 指令寄存器:从主存、高速缓存里取指令,提高CPU工作效率。 主存地址...

cpu

top命令 us:用户cpu时间 sy:内核态cpu时间 ni:低优先级用户态cpu时间 id:空闲时间 wa:等待I/O的CPU时间 hi: 处理硬中断的CPU时间 si: 处理软中断的CPU时间 st:系统运行在虚拟机中,被其他虚拟机占用的CPU perf top samples :采样数 event: 事件类型 event count:事件总数 overhead:该符号性能事件在采样中的比例...

Synergy配置与使用

在公司的机器的工作机和测试机上做了实验,发现配置过程还是有点复杂的。故做一下小的分享。 另外,这个工具的共享剪切板的功能非常好用。可以直接在测试机上做屏幕截图,然后在工作机上打开画图板粘贴。 不过这款软件有个缺点,两台机器会共享焦点。在做自动化测试的时候不能随意切换屏幕,否则会造成焦点丢失,造成测试错误。 安装过程略。 配置过程: 1.选中“Share this computer's ...

猜你喜欢

optistruct中的DRESP2响应设置

1.先编写自己的函数公式 函数名后面的括号中要有式中包含的变量 2.定义响应,类型选择为function,dequation选择刚才设置的函数 点击edit,输入函数表达式中变量对应的响应个数,并分别选择对应哪个响应 返回,点击create,创建成功...

阿里云高级技术专家周哲:阿里云边缘云原生应用实践

简介: 为什么需要边缘云原生?边缘云原生的技术特性和优势是什么?它可以为行业提供哪些关键能力?又有哪些场景适合边缘云原生呢?在MEC全球应用开发者大会的“MEC开放论坛”上,阿里云高级技术专家周哲进行了《阿里边缘云原生应用实践》主题分享,站在技术视角对边缘云原生的技术概念、应用场景、阿里云边缘云原生实践案例等多方面进行解读。 近日,MEC全球应用开发者大会隆重召开...

如何在2016office里面添加aurora

如何在2016office里面添加aurora 这是我自己安装的过程,有点神奇,但是效果达到了。 上图: 操作步骤: 1. 首先安装64位2016office(推荐安装,不要自定义),我新买的电脑所以是正版2016office。 2. 为了安装2010 32位office,我卸载了2016 office,但是它还存在于我的电脑里面,但是它还存在于我的电脑里面,但是它还存在于我的电脑里面,(重要的事...

VMware安装Centos8

从官网下载VMware和Centos 8镜像文件 VMware Workstation Pro :VMware官网下载 VMware15Pro** :转载 Centos 8镜像 :镜像下载 安装Centos 8镜像 打开VMware并创建新的虚拟机 选择自定义安装 未截图部分默认下一步,选择镜像文件 设置名称,用户名,密码 设置虚拟机名称和安装目录 设置虚拟机属性与配置 虚拟机配置和属性设置完成 ...

数据中心加速,一文说清FPGA与GPU、ASIC目前的竞争格局

超大规模云计算中心、电子商务和社交网络数据中心,正面临着数据类型复杂的工作负载加速之难题。 数据中心加速的主要途径 传统CPU处理能力的需要突破已经成为共识,目前的途径主要有以下几类: 途径一,ASIC:经历了几十年的发展演变,为专门目的而设计的ASIC,由于面向特定用户的需求,在加速效率上可圈可点。但是,设计周期长、成本贵、应用范围窄的通病,使ASIC仅适合于批量很大或者对产品成本不计较的场合。...

问答精选

data transform of column by group into new columns in R

data as displayed output I can do it in a slow way of 1) creating NA for all new variables; 2) fill it on condition if(Type=="A"){ Var1_A <- Var1 } else if(..)} But I was wondering if the...

Perl simple one-liner used to add header to a file doesn't work when input file is empty

We have in code one-liner used to add header to file. It looks like perl -pi -e 'print "name, function, group\n" if $. == 1' CSV_FILE_NAME Everything is fine except when CSV_FILE_NAME is emp...

Integrating Google Sign-In into Your Android App Error

I'm just trying this link but I'm stuck in "Add the Google Services plugin" step... I just added the dependency they said but Android Studio' console is showing me this error: Could not find...

Best way to delete large no of random rows in PostgreSQL

I have a table which contains about 900K rows.I want to delete about 90% of the rows. Tried using TABLESAMPLE to select them randomly but didn't get much performance improvement. Here are the queries ...

Removing the border of legend symbol

I was trying to plot some predicted vs. actual data, something that resembles the following: The plot looks like this: The only issue I have with this plot is the red border surrounding the legend ite...

相关问题

相关文章

热门文章

推荐文章

相关标签

推荐问答