TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍
第2章 TMS320C54x DSP体系结构总体介绍
本章介绍TMS320C54x DSP体系结构的概况,包括中央处理单元(CPU)、存在器和片内外设。
C54x DSP采用了高级的改进哈佛结构,用8条总线达到最大的处理能力。其独立的程序和数据空间允许同时对程序指令和数据进行访问,提供了高度的并行性。例如,在单周期内可以完成3个读操作和1个写操作,并行存储指令和专用指令充分利用了这种结构。另外,数据可以在数据空间和程序空间之间传送。这种并行支持一套功能强大的在单机器周期内完成的算术、逻辑和位操作运算。另外,C54x DSP包含有中断管理、重复操作和函数调用的控制机制。图2-1所示为C54x DSP功能框图,它包含了主要的模块和总线结构。
2.1 总线结构
C54x DSP结构主要是围绕8条16位总线而建立的(1条程序存储器总线、3条数据存储器总线和4条地址总线)。
- 程序总线(PB)传送从程序存储器读取的指令码和立即数。
- 3条数据总线(CB、DB和EB)连接各个组成部分,例如CPU、数据地址产生逻辑、程序地址产生逻辑、片内外设和数据存储器。
- CB和DB传送从数据存储器读出的操作数。
- EB传送要写入存储器的数据。
- 4条地址总线(PAB、CAB、DAB和EAB)传送指令执行所需要的地址。
C54x DSP可以利用两个辅助寄存器算术单元(ARAU0和ARAU1)在单周期内产生最多两个数据存储器地址。
PB能够把存储在程序空间的数据操作数(比如系数表)传送到乘法器和加法器做乘/累加操作,或者在执行数据移动指令(如MVPD和READA)时将数据传到数据空间的某个目的地。这种传送能力再加上对偶读操作的特点,可以支持单周期内执行3操作数的指令,如FIRS指令。
C54x DSP还有一条访问片内外设的片内双向总线,这条总线通过CPU接口中的总线变换器连到DB和EB上。使用这条总线的访问过程要求两个或更多个周期来读和写,这取决于外设的结构。表2-1总结了各种不同访问所使用的总线的情况。
2.2 内部存储器组织
C54x DSP存储器组织成3个独立可选的空间:程序空间、数据空间和I/O空间。用户可以将DARAM或SARAM设置成数据存储器或程序/数据存储器。C54x DSP还有26个CPU寄存器加上外设寄存器映射到数据存储器空间。
2.2.1 片内ROM
片内ROM是程序存储器空间的一部分,在某些情况下,也可以是数据存储器空间的一部分。
在大多数器件中,ROM包含一个引导装入程序,可以用来对更快的片内RAM或片外RAM进行引导。在ROM容量比较大的器件中,ROM中的一部分可以被同时映射到数据和程序空间。
2.2.2 片内双存取RAM(DARAM)
因为每块DARAM在单周期可以存取两次,所以CPU或外设,例如缓冲串口(BSP)和主机接口(HPI),可以在同一个周期对同一个DARAM地址进行读和写操作。DARAM总是映射到数据空间,主要是用来存储数据。它也可以映射到程序空间,用来存储程序代码。
2.2.3 片内单存取RAM(SARAM)
每一块SARAM块在单机器周期内只能进行一次读访问或写访问。SARAM总是映射到数据空间,主要是用来存储数据。它也可以映射到程序空间,用来存储程序代码。
2.2.4 片内双向共享RAM
带有多CPU核的器件中包含了双向共享RAM块,允许两个CPU核同时访问程序空间。
2.2.5 片内存储器保护
C54x可屏蔽的存储器保护选项可以保护片内存储器中的内容。不是所有的C54x DSP都提供存储器保护这个特性。
2.2.6 存储器映射寄存器
数据存储器中包含有CPU和片内外设中的存储器映射寄存器。这些寄存器位于数据0页,可以方便地对它们进行访问。存储器映射的访问方式便于现场转换时存取器,也便于在累加器和其它寄存器间传送信息。
2.3 中央处理单元(CPU)
所有的C54x器件的CPU都是相同的,它包括:
- 40-bit arithmetic logic unit (ALU)
- Two 40-bit accumulators
- Barrel shifter
- 17 × 17-bit multiplier
- 40-bit adder
- Compare, select, and store unit (CSSU)
- Data address generation unit
- Program address generation unit
2.3.1 算术逻辑运算单元(ALU)
C54x有一个40位算术逻辑运算单元(ALU)和两个40位累加器(累加器A和B),可进行二进制补码算术运算。ALU还可以进行布尔操作。ALU的输入数据有以下来源:
- 16-bit immediate value
- 16-bit word from data memory
- 16-bit value in the temporary register, T
- Two 16-bit words from data memory
- 32-bit word from data memory
- 40-bit word from either accumulator
ALU也可以用作两个16位的ALU,可同时完成两个16位操作。
2.3.2 累加器
累加器A和B存储来自ALU或乘法器/加法器的结果。它们也可以给ALU提供第二个输入。累加器A可以作为选举法器/加法器的一个输入,每一个累加器可分成如下3部分:
- Guard bits (bits 39–32)
- High-order word (bits 31–16)
- Low-order word (bits 15–0)
C54x器件提供了相关的指令,可以在数据存储器里存储保护位、累加器高位和低位字,可以传送32位累加器字进出数据存储器。每一个累加器可以暂存另一个累加器的内容。
2.3.3 桶形移位器
C54x DSP桶形移位器有一个40位输入端连到累加器或数据存储器(用CB或DB),有一个40位输出连到ALU或数据存储器(用EB)。桶形移位器可以对输入数据进行0~31位的左移和0~16位的右移操作。所要求的移位数要定义在指令的移位计数字段、状态寄存器ST1中的移位计数字段(ASM)或暂存寄存器T中(当T被指定为一个移位计数寄存器时)。
桶形移位器和指数编码器(是一个硬件部件,用来计算累加器的指数值)可以在单周期内对累加器中的值进行标准化操作。
2.3.4 算法器/加法器单元
乘法器/加法器单元可以在单指令周期内完成一个17位$\times$17位的二进制补码乘法运算和40位加法。快速的片内乘法器允许C54x有效地进行诸如相关、卷积和滤波等操作。另外,在单指令周期内,乘法器和ALU共同执行的乘/累加(MAC)运算与ALU的操作可以并行。
2.3.5 比较、选择和存储单元(CSSU)
比较、选择和存储单元(CSSU)在累加器的高低字之间比较最大值 ,它允许状态寄存器ST0中的检测/控制标志位(TC)和转换寄存器(TRN)保持其转换历史,并且选择累加器中较大的字节存入数据存储器。CSSU以最优的片内硬件加速Viterbi蝶式运算。
2.4 数据寻址
C54x DSP提供了如下7种基本数据寻址方式:
- 立即数寻址:用指令指定一个固定值 。
- 绝对寻址:用指令指定一个固定地址。
- 累加器寻址:用累加器A访问程序存储器的一个单元作数据。
- 直接寻址:用指令的7位来指定一个地址的低7位,这7位和数据页指针(DP)或堆栈指针(SP)一起决定实际的存在器地址。
- 间接寻址:用辅助寄存器访问存储器地址。
- 存储器映射寄存器寻址:用存在器映射寄存器(如何理解呢?),不改变当前DP值 或SP值。
- 堆栈寻址:管理系统堆栈中增加和消除某些项的操。
在运行直接、间接或存储器映射寄存器寻址的指令期间,数据地址产生逻辑(DAGEN)计算数据存储器操作数的地址。
2.5 程序存储器寻址
C54x DSP器件中的程序存储器通常是用程序计数器(PC)寻址。但是,某些指令也可用绝对寻址来访问存在程序存储器中的数据项。PC由程序地址产生逻辑(PAGEN)装载,常用来取单独的指令。比较典型的是在读取顺序指令时,PAGEN增加PC的值 。但是,由于某些指令或操作的结果,PAGEN也可以给PC装载不按顺序的值。这些引起PC值不连续的操作包括跳转、调用、返回、条件操作、单指令重复、多指令重复、复位和中断。对于调用和中断,当前的PC值被存到堆栈里,堆栈由堆栈指针(SP)指示。当被调函数或中断服务程序完成时,通过一条返回指令,被保存的PC值从堆栈中恢复。
2.6 流水线操作
一条指令流水线包括一条指令执行过程中出现的一系列操作步骤。C54x DSP流水线有6段——预取、取指、译码、访问、读取和执行,每一段都可以执行一个独立的操作。最典型的情况是流水线被一系列指令完全占满,每一条指令处于6段中的一段。当PC中出现了不连续的情况,例如在跳转、调用或返回期间,流水线中的一段或多段可能被暂时闲置。
2.7 片内外设
所有C54x器件有相同的CPU,但是连接的外设不同。C54x器件有以下片内外设可供选择:
2.7.1 通用的I/O引脚
C54x器件提供了可以通过软件控制进行读或写的通用I/O引脚。所有C54x器件都支持两个通用的I/O(GPIO)引脚。
- $ \overline {BIO} $——A general input upon which conditional instructions can be based.
- XF——An external flag output that can be driven low or high under software control.
2.7.2 软件可编程等待状态寄存器
软件可程序等待状产生器可将外部总线周期延长到7个机器周期(部分器件是14个机器周期),以便与慢速的片外存在器和I/O设备接口。在访问片外存在器时,无论是对32K字的程序存储器和数据存储块的访问,还是对64K字的I/O空间的访问,都可在软件等待状态寄存器(SWWSR)中设置0~7个等待状态。
2.7.3 可编程的块切换逻辑
在程序存在器或数据存储器中,当存取越过了存在块的边界时,可编程块切换逻辑可以自动地插入一个周期。同样,当存取从程序存储器跳到数据存储器,或者存取从某些器件的程序存储器的某一页跳到另一页时,也会插入一个周期。这个附加周期可防止总线竞争,它使得存储器在其它器件驱动总线之前,先释放掉总线。块切换逻辑可控制的存储块的大小是由存储开关控制寄存器(BSCR)确定的。
2.7.4 硬件定时器
C54x器件有16位的定时电路及4位的预标定器。定时计数器每个CLKOUT周期减1。一旦定时计数器减到0,就产生一个定时中断。可通过专用的状态位的设置使定时器停止、重启、复位或无效。
2.7.5 时钟产生器
C54x器件上有两种基本的时钟产生器选项:内部振荡器或锁相环(PLL)电路。在第一个选项中,CPU的时钟是通过将X2/CLKIN输入时钟除以系数1、2或4产生的。第二个选项中采用了一个PLL电路来产生CPU时钟,该时钟是输入时钟的倍频信号。
2.7.6 直接存储器访问(DMA)控制
直接存储器访问 (DMA)控制器可在存储嚣中的多个点之间传输数据,而不影响CPU的操作。DMA操作允许在CPU操作的背之下,进行数据移入和移出内部程序/数据存储器、片内外设或外部存储器的操作。DMA有6个独立可编程的通道,支持6个不同的DMA操作现场。
2.7.7 主机接口(HPI)
主机接口(HPI)是可以与一个主机进行连接的并行口。通过C54x片内既能被主机访问又能被C54x器件访问的存储器,可在C54x和主机之间交换信息。C54x器件中有3种基本的HPI选项:8位标准HPI、8位增强HPI或16位增强HPI。表2-3列出了配备HPI的C54x器件的情况。
2.8 串行口
The serial ports on the C54x DSP vary by device, and are represented by four types: synchronous, buffered, multichannel buffered (McBSP), and timedivision multiplexed (TDM). See Table 2–4 for the umber of each type on the various C54x devices. The sections that follow provide an introduction to the four types of serial ports. For more details about these ports, see Chapter 9, Serial Ports. For detailed information about the McBSPs, see TMS320C54x DSP Enhanced Peripherals Reference Guide (SPRU302).
2.8.1 同步串口
同步串口是调整、全双工串口,可提供串行器之间的直接通信,例如编解码器、A/D转换器和其它踵系统。当C54器件中有多个同步串口时,这些串口是相同的但相互独立。每个两步串口最高可以1/4的机器周期(CLKOUT)速率运行。同步串口发送器和接收器是双缓冲的,它们分别被可屏蔽的外部中断信号控制。数据可以以字节或字为单位组成帧。
2.8.2 缓冲串口(BSP)
缓冲串口(BSP)是同步串口增加了一个自动缓冲的部件,它的时钟可达CLKOUT的速率。这种全双工、双缓冲的串口可提供灵活可变的数据流长度。自动缓冲部件支持高速传输,减少中断服务的开销。
2.8.3 多通道缓冲串口(McBSP)
多通道缓冲串口是一种增强型的缓冲串口,它具有以下一些特点——缓冲数据寄存器、全双工通信、独立的接收和发送时钟及帧同步。另外McBSP还有一些增强功能——内部可编程时钟和帧产生器、多通道模式和通用I/O。
2.8.4 时分复用(TDM)串口
时分复用(TMDM)串口是同步增加了数据时分复用功能,它最多可以和7个带有TDM串口的其它C54x器件连接。TDM串口既可被设置为同步操作也可被设置为TDM操作。通常用于多处理器的应用中。
2.9 外部总线接口
C54x DSP最多可寻址64K字数据存储器、64K字程序存储器(某些器件最多达8M字)和64字16位的并行I/O口。对外部存储器或I/O口的访问通过外部接口进行。空间选择信号$\overline {DS}$、$\overline {PS}$和$\overline {IS}$可以用来选择不同的物理空间。
接口中有外部准备就绪输入信号和软件产生的等待状态,它们可使处理器与多种不同速度的存储器和I/O设备连接。接口中的HOLD模式允许外部器件控制C54x DSP的总结,在这种情况下,一个外部器件可以访问程序、数据和I/O空间里的资源。
大多数C54x DSP指令都可访问外部存储器,但是访问I/O口需要特殊的指令PORTR和PORTW。
2.10 IEEE 1149.1扫描逻辑标准
The IEEE Standard 1149.1 scanning-logic circuitry is used for emulation and testing purposes only. This logic provides the boundary scan to and from the interfacing devices. Also, it can be used to test pin-to-pin continuity as well as to perform operational tests on devices peripheral to the C54xE DSP. The IEEE Standard 1149.1 scanning logic is interfaced to internal scanning-logic circuitry that has access to all of the on-chip resources. Thus, the C54x DSP can perform on-board emulation using the IEEE Standard 1149.1 serial scan pins and the emulation-dedicated pins. For more information, see Appendix A, Design Considerations for Using XDS510 Emulator.
TMS320C54x系列DSP的CPU与外设——第2章 TMS320C54x DSP体系结构总体介绍的更多相关文章
- TMS320C54x系列DSP的CPU与外设——第1章 绪论
第1章 绪论 TMS320C54x DSP是TMS320系列DSP产品中的定点数字信号处理器.C54x DSP满足了实时嵌入式应用的一些要求,例如通信方面的应用. C54x的中央处理单元(CPU)具有 ...
- TMS320C54x系列DSP的CPU与外设——第3章 存储器
第3章 存储器 本章介绍了TMS320C54x DSP存储器的构成和操作.一般来说,C54x器件共有192K 16位字的存储窨,这个空间分成3个专用的部分:64K字程序.64K字数据和64K字I/O ...
- TMS320C54x系列DSP的CPU与外设——第8章 流水线
第8章 流水线 本章描述了TMS320C54x DSP流水线的操作,列出了对不同寄存器操作时的流水线延迟周期.(对应英语原文第7章) 8.1 流水线操作 TMS320C54x DSP有一个6段的指令流 ...
- TMS320C54x系列DSP的CPU与外设——第5章 数据寻址
第5章 数据寻址 C54x DSP提供7种基本寻址方式. ■ Immediate addressing uses the instruction to encode a fixed value. ...
- CPU与外设传送数据方式
7.2 CPU与外设之间数据传送的方式 在微型计算机系统中,CPU与外设之间的数据传送方式主要有程序传送方式.中断传送方式和直接存储器存取(DMA)传送方式,分别介绍如下. 7.2.1 程序传 ...
- 外设位宽为8、16、32时,CPU与外设之间地址线的连接方法
有不少人问到:flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19),处理器的地址线要(A1-A20)左移偏1位.为什么要偏1位? (全文有点晦涩,建议收藏本文对 ...
- FLASH位宽为8、16、32时,CPU与外设之间地址线的连接方法
转 http://blog.csdn.net/linweig/article/details/5556819 flash连接CPU时,根据不同的数据宽度,比如16位的NOR FLASH (A0-A19 ...
- 【DSP开发】【Linux开发】基于ARM+DSP进行应用开发
针对当前应用的复杂性,SOC芯片更好能能满足应用和媒体的需求,集成众多接口,用ARM做为应用处理器进行多样化的应用开发和用户界面和接口,利用DSP进行算法加速,特别是媒体的编解码算法加速,既能够保持算 ...
- ABP(现代ASP.NET样板开发框架)系列之1、ABP总体介绍
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之1.ABP总体介绍 ABP是“ASP.NET Boilerplate Project (ASP.NET样板项目)” ...
随机推荐
- 199. Binary Tree Right Side View
Given a binary tree, imagine yourself standing on the right side of it, return the values of the nod ...
- leetcode 133. Clone Graph ----- java
Clone an undirected graph. Each node in the graph contains a label and a list of its neighbors. OJ's ...
- scala言语基础学习七
一.将函数赋值给变量 二.匿名函数 三.高阶函数 高阶函数好像调用不打印是看不到赋值 和普通函数区别 高阶函数的类型推断 reduce操作 相当于1*2*3*4*5*6*7*8*9 def getNa ...
- appium简明教程(6)——启动appium及android模拟器
一般情况下,我们都从命令行启动appium. windows下,dos命令窗口输入 appium 如果该命令报错,那么请重装appium npm install -g appium 如果安装出错,请自 ...
- mysql学习之-字符集选定,修改。
基础概念:字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等:编码(Encoding)是指给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符.例如,我们给字符'A ...
- C#实现图片文件到数据流再到图片文件的转换 --转
/----引入必要的命名空间 using System.IO; using System.Drawing.Imaging; //----代码部分----// private byte[] photo; ...
- Python内部类型
Python使用对象模型来存储数据 . 身份:每个对象都有一个唯一的身份标识自己,任何对象的身份否可以使用内建函数id()来得到.这个值可以被认为是该对象的内存地址 . 类型:对象的类型决定了该对 ...
- SQL注入脚本(基于时间)
#encoding=utf-8 import httplib import time import string import sys import urllib header = {'Accept' ...
- ABBYY FineReader无法打开TWAIN源怎么办
ABBYY FineReader OCR文字识别软件不仅可以将PDF文档和图像文件(包括数码照片)转换为可编辑.可搜索的格式,还可以用来扫描文档,但在扫描过程中,有时可能会出现以下两种错误信息:一是无 ...
- ASP.NET MVC报错: Multiple types were found that match the controller named
当使用ASP.NET MVC的Area功能时,出现了这样的错误: Multiple types were found that match the controller named 'Home'. T ...