第2章TMS320C55x的硬件结构
2.3 C55x的CPU结构

28
2.3.7 数据计算单元 单元) 数据计算单元(D单元 单元
D单元是C55X DSP中主要的数据执行部件,完成大部分 数据的算术运算工作。它由移位器、40 bit ALU、两个17 bit的 乘法累加器(MAC)和若干寄存器构成。数据计算单元的两个乘 法累加器能够并行使用,可以有效提高DSP运行效率。D单元 中的寄存器包括累加器和两个用于维特比译码的专用指令寄存 器。 D单元包括了CPU的基本计算单元。图2-5是D单元的基本 框图。下面介绍D单元的主要部分。
8
图 指令缓冲单元(I单元)框图
9
1. 指令缓冲队列
CPU从程序存储器一次可以提取32 bit代码。读程序的数 据线(PB)从存储器提取32 bit的代码,放入指令缓冲队列。该 队列一次最多可以存放64 Byte的代码。当CPU准备好解码后, 每次可以从队列里取6 Byte送往指令解码器。 另外,为了协助指令的流水操作,指令缓冲队列还能完成 以下操作: (1) 执行队列中的一个代码块(局部循环指令)。 (2) 当测试了一个程序流控制指令(条件分支、条件调用或 条件返回),则可以随机提取指令。
31
(2) 将16 bit的寄存器、存储器以及I/O空间的值左移达31 bit或右移达32 bit,移位计数可从暂时寄存器(T0~T3)读取, 或由指令里的常数来指定; (3) 将16 bit的立即数左移达15 bit,必须在指令里指定一个 常数作为移位计数; (4) 归一化累加器值; (5) 压缩和扩展bit域,作bit计数; (6) 对寄存器值作循环移位; (7) 在累加器值被存储到数据存储器之前,对它们作取整 或饱和运算。
21
图2-4 地址数据流单元(A单元)框图
22
下面介绍A单元的主要部分。
讲稿TMS320C55x DSP 硬件部分

江苏技术师范学院 电气信息工程学院
TMS320VC5509A 功能概述
江苏技术师范学院 电气信息工程学院
TMS320VC5509A 功能概述
江苏技术师范学院 电气信息工程学院
CPU的结构
江苏技术师范学院 电气信息工程学院
指令集结构与实现要点
• C55x的指令集具有高度并行的结构,从而可以提高代 码的密度,降低每个运算所要求的周期数。
TMS320C55x DSP 硬件部分
江苏技术师范学院 电气信息工程学院
议题
• TMS320C55x 概述 • CPU的结构 • CPU寄存器 • 存储器和I/O空间 • 堆栈操作 • 中断和复位操作 • 寻址模式 • 片上外设
江苏技术师范学院 电气信息工程学院
TMS320C55x 概述
江苏技术师范学院 电气信息工程学院
TI DSP 被前8位 数码相机制造商 中的7个所选用
TI DSP 占VoIP 网关市场的80%
TI DSP 被前10位 无线基站制造商 中的8个所选用
TI DSP 占IP电话 设计的80%
江苏技术师范学院 电气信息工程学院
C55x 性能和优点
性能
32×16-bit指令缓冲队列 两个17 ×17-bit的MAC单元 1个40-bit的ALU 1个40-bit的桶形移位器 1个16-bit的ALU 4个40-bit的累加器 12组独立的总线 用户配置的IDLE域
优点
缓冲可变长度的指令,实现高效的块循环操作 单周期内执行两次MAC操作 执行高精度的算术和逻辑运算 可以将40-bit的结果左移32-bit,或右移32-bit 与主ALU并行,执行简单的算术运算 保持计算结果,降低对存储器传输的要求 并行地为各计算单元提供指令及操作码 改善低活动性时的电源管理
第2章 TMS320C55x 的硬件结构

REA0,REA1 块循环结束地址寄存器0和1
12循环寄存器 RPTC 单循环计数器 CSR 经过计算的单循环寄存器
• 中断寄存器 IFR0, IFR1 中断标志寄存器0和1 IER0, IER1 中断使能寄存器0和1 DBIER0,DBIER1 调试中断使能寄存器0和1
Barrel Shifter Units
Peripherals Bus
2 Timers 8 GPIO X4 PLL DPLL
Peripherals Bus
Peripherals USB
10-bitADC RTC
MMC/SD MemStick
3 McBSPs I2C
Interface Watchdog
号。
12 February 2002
图2-2 指令缓冲单元结构图
13 12 February 2002
14
• 程序流寄存器
PC 程序计数器
RETA 返回地址寄存器
CFCT 控制流关系寄存器
• 块循环寄存器
BRC0,BRC1 块循环计数器0和1
BRS1
BRC1存储寄存器
RSA0,RSA1 块循环起始地址寄存器0和1
2. 存储器接口单元(Memory Interface Unit) 3. 指令缓冲单元 (Instruction Buffer Unit: I Unit ) 4. 程序流单元(Program Flow Unit: P Unit ) 5. 地址数据流单元(Address-Data Flow Unit: A
64字节的指令缓冲队列,能够用作程序Cache, 高效完成块重复操作。
12 February 2002
5
2.1.1 C55x的CPU体系结构
第2章TMS320C54x的硬件结构

写选择 写选择 MSW/LSW MSW/LSW
EB15~EB0
24
第2章 TMS320C54x的硬件结构 2.桶形移位寄存器的输入 ① 取自DB数据总线的16位
DB15~DB0 A B MUX 符号控制SC 测试位Tc ALU CSSU 写选择 MSW/LSW EB15~EB0 SXM CB15~CB0
DB15~DB0 A B MUX 符号控制 符号控制SC SC 移位寄存器 移位寄存器 (-16~31) (-16~31) SXM T ASM(4~0) 指令寄存器 立即数 -16~15 0~15 CB15~CB0
用于对输入数据进 行符号位扩展。
③ 移位寄存器 用来对输入的数据 进行定标和移位。 ④ 写选择电路 用来选择最高有效 字和最低有效字。
P
X MUX
符号控制 XM
Y MUX
符号控制 YM A B MUX YA 40位加法器 OVM
来自B
0
乘法器(17 17) 取整 XA
FRCT
OVA/OVB 零检测 舍入器 饱和逻辑 ZA/ZB 至A/B 27
MAC单元具有强大的乘法-累加运算功能,可在
一个流水线周期内完成1次乘法运算和1次加法运算。
● 配有两个地址生成器,包括8个辅助寄存器和 2个辅助寄存器算术运算单元(ARAU)。
10
2.存储器
● 可访问的最大存储空间为192K×16位,即64K 字的程序存储器、64K字的数据存储器以及64K字的 I/O空间。 ● 片内ROM,可配置为程序存储器和数据存储器。 ● 片内RAM有两种类型,即双寻址RAM(DARAM) 和单寻址RAM(SARAM)。
STH STL A,-8 8, 8, TT
第2章 TMS320C55X系列DSP

14
(3) 外设和片上存储器阵列的自动低功率机制。C55X的核 处理器会自动地管理片上外设和存储器阵列的功耗。这种资源 的管理完全是自动的,对用户透明。而且,这种功耗的降低, 并不影响处理器的性能。当某个片上的存储器阵列没有被使用 时,它们就自动地切换到低功率模式。当一个访问的要求到达 时,该阵列就恢复到正常的工作状态,完成存储器的访问,无 须应用程序的干预。如果没有进一步的访问,该阵列又回到低 功率状态。该处理器对片上外设也提供类似的控制。当外设没 有激活,以及CPU不需要其关注时,就进入低功率状态。外设 响应处理器的要求,退出低功率状态,也不需要程序的干预。 这种功率管理也可以在软件的外设IDLE(闲置)域控制下进行。
13
(2) 将存储器的访问减到最少。存储器的访问,无论是片 内的还是片外的,都是功率消耗的主要部分。将存储器的访问 减到最少,无疑是降低每个任务功耗所必需的。在C55X里, 指令的提取是32 bit(C54X里是16 bit)。此外,可变长度指令集 意味着,每个32 bit指令的提取可以提出一个以上的长度可变 的指令,按照所需要的信息来决定指令的长度,从而改善代码 的密度。这种指令集的设计和处理器结构的结合,就可以保证 在达到最高性能的同时,使功耗降到最小。
C55X继承了C54X的发展趋势,低功耗、低成本,在有限 的功率条件下,保持最好的性能。其工作在0.9 V下,待机功 耗低至0.12 mW,性能高达600 MIPS,并且具有业界目前最低 的待机功耗,极大地延长了电池的寿命,对数字通信等便携式 应用所提出的挑战,提供了有效的解决方案。其软件也与所有 C5000 DSP兼容。与120 MHz的C54X相比,300 MHz的C55X性 能大约提高了5倍,而功耗则降为C54X的1/6。
C55x的硬件结构

6
8/16/24/32/40/48位 16位
算术逻辑单元(ALU)
辅助寄存器字长 辅助寄存器 存储空间 数据寄存器
1(40位)
2字节(16位) 8 独立的程序/数据空间 0
1(40位) 1(16位)
3字节(24位) 8 统一的程序/数据空间 4
C55x的特征及优点
特征 优点
一个 32位 x 16位指令缓冲队 缓冲变长指令并完成有效的块重复操作 列 两个17位x17位的乘法累加 器 一个40位算术逻辑单元 (ALU) 在一个单周期执行双乘法累加操作 实现高精度算术和逻辑操作
算术逻辑电路 寄存器组构成
A单元包括的寄存器类型
数据页寄存器 指针 循环缓冲寄存器 临时寄存器
数据计算单元(D)
由移位器、算术逻辑电路、乘法累加器和寄存器 组构成
指令流水线
C55x的指令流水线包括两个阶段:
取流水线
指执行流水线
流水线节拍 D 从指令缓冲队列中读6个字节的指令 对一个指令对或一个单指令进行解码 给对应的CPU功能单元分配指令 读取STx_55种与数据地址产生相关的位 ST1_55(CPL) ST2_55(ARnLC) ST2_55(ARMS) ST2_55(CDPLC)
TMS320VC5509A的主要特性
CPU
两个乘法累加单元(MAC) 40位的算术逻辑单元(ALU)和一个16位的算术逻辑单元 采用先进的多总线结构
存储器
128K x 16位的片上RAM【64KB的DARAM和192KB的SARAM】 8M x 16位的最大可访问外部寻址空间(同步DRAM) 外部存储器接口(EMIF)与通用输入/输出(GPIO)共用引脚
AC1 AC2 R
X
TMS320C55x的硬件结构-20140923

2.1.2 C55x的CPU组成-(P单元)
程序地址产生逻辑: 数据读数据总线CB,DB (每组16位数据) 产生24位的程序空间取指的地址; 程序读地址总线PAB (24位地址) 可产生顺序地址; 程序控制逻辑 : P 单元的作用: 也可以I单元的立即数或D单元的寄 接收来自I单元的立即数,并测 P单元 存器值作为地址 产生程序空间地 I单元 试来自A单元或 D单元的结果从而执 程序地址产生器 A单元 址,并加载地址 行如下动作: 和程序控制逻辑 D单元 到PAB; 测试条件执行指令的条件是否 成立,把测试结果送程序地址发生 控制指令流顺序 P单元寄存器 器; 当中断被请求或使能时,初始 化中断服务程序; 数据写数据总线EB,FB (每组16位数据) 控制单一指令重复或块指令重 图2-5 P单元结构框图 复;管理并行执行的指令 7
读数据的地址总线BAB,CAB,DAB(每组24位) 读程序的数据总线PB(每组32位) 读程序的地址总线PAB(每组24位)
程序总线 PAB\PB
外部数据 总线 M单元
CPU I单元 P单元 A单元 D单元
外部程序 总线 写数据的数据总线EB,FB(每组16位) 写数据的地址总线EAB,FAB(每组24位)
M单元
DAGEN产生所有读写数据空 间的地址。 2.1.2 C55x的CPU 组成-(A单元) 可接收来自I单元的立即数或来 数据读数据总线 CB,DB(每组16位数据) 自A单元的寄存器值; 数据读地址总线 BAB,CAB,DAB(每组24位地址) 根据P单元指示,对间接寻址方 式时选择使用线性寻址还是循环寻 ALU可接收来自I单元的立即数 A单元 M单元 址。 或与存储器、I/O空间、A单元寄存 数据地址 I单元 产生器单元 器、 D单元寄存器和P单元寄存器进 P单元 (DAGEN) A单元 行双向通信。可完成如下动作: 寄存器 D单元 加、减法、比较、布尔逻辑、符 A单元 ALU 号移位、逻辑移位和绝对值计算; 测试、设置、清空、求补A单元 寄存器位或存储器位域; 数据写地址总线 EAB,FAB(每组24位地址) 改变或转移寄存器值,循环移 位寄存器值,从移位器向一个A单元 数据写数据总线 EB,FB(每组16位数据) 8 寄存器送特定值。 图2-6 A单元结构框图
第2章TMS320C55x 的硬件结构

Cycle 5
图2-1 TMS320C55x CPU结构图
6
总线和单元
1. 内部地址总线和数据总线(Internal Address Bus and Data Bus) 2. 存储器接口单元(Memory Interface Unit) 3. 指令缓冲单元 (Instruction Buffer Unit: I Unit ) 4. 程序流单元(Program Flow Unit: P Unit ) 5. 地 址 数 据 流 单 元 (Address-Data Flow Unit: A Unit ) 6. 数据计算单元(Data Computation Unit: D Unit )
22
2.2 中断
2. DSP处理中断的步骤
① 接收中断请求。请求由软件或硬件发出。
② 响应中断请求。对于可屏蔽中断,需要满足若 干条件,才发生响应;而对于不可屏蔽中断, 则立即响应。 ③ 准备执行中断服务程序。
-完成当前正在执行的指令;将进入流水线但还未解码 的指令清除。 -自动保存若干寄存器的值到数据堆栈和系统堆栈。
读数据的数据总线。
9
总线
宽度
功能
BAB
BB EAB、 FAB EB、FB
23-bit
16-bit 每条23bit 每条16bit
读数据的地址总线。用于间接寻 址模式。
读数据的数据总线。 写数据的地址总线。 每组16-bit 写数据的数据总线。
10
2.1.3 指令缓冲单元(I Unit )
1. 指令缓冲队列
– 16M Bytes 的程序存储空间,通过24位地址总线进行访问。程 序空间字节地址范围是0x000000-0xFFFFFF。 – 8M Words 的数据存储空间,通过23位地址总线进行访问。数 据空间字地址(1字=16 位)范围是0x000000-0x7FFFFF。
第2章TMS320C55x的硬件结构PPT课件

字节1
字节2
字节3
00 00100h~00 0103h
A(23~16) A(15~8)
A(7~0)
00 00104h~00 0107h B(15~8)
B(7~0) C(31~24) C(23~16)
00 00108h~00 010Bh C(15~8)
C(7~0)
பைடு நூலகம்
D(7~0) E(23~16)
00 0010Ch~00 010Fh E(15~8)
C55x存储空间(总共为16M字节或8M字)的划分: 128个主页面(0~127),每个主页面为64K字 主页面0的前192个字节或96个字(00 0000h~00 00BFh)被MMR所占用
主数据页0
数据空间地址(十六进制) 数据/程序存储器 MMRs 00 0000~00 005F
00 0060~00 FFFF
004000 008000 002000 200000 400000 600000
DARAM (以VC5509A为例) 双存取RAM,分为8个8K字节或4K字的块,每个8K 字节的块每周期可以访问两次(两次读或一次读、一 次写)
DARAM可被内部程序总线、数据总线或DMA访问。 前4块DARAM可以被HPI访问
存储器块 SARAM0 SARAM1 SARAM2 SARAM3 SARAM4 SARAM5 SARAM6 SARAM7 SARAM8 SARAM9 SARAM10 SARAM11
字节地址范围 028000h~029FFFh 02A000h~02BFFFh 02C000h~02DFFFh 02E000h~02FFFFh 030000h~031FFFh 032000h~033FFFh 034000h~035FFFh 036000h~037FFFh 038000h~039FFFh 03A000h~03BFFFh 03C000h~03DFFFh 03E000h~03FFFFh
TMS320C55X dsp原理及应用 汪春梅新的第2章

一、累加器AC0~AC3 二、变换寄存器 三、T寄存器 四、用于寻址数据地址空间和I/O空间的寄存器 五、程序流寄存器 六、中断管理寄存器 七、循环控制寄存器 八、状态寄存器
TMS320C55x的CPU寄存器
一、累加器AC0~AC3
思考题:什么是堆栈指针SP(stack pointer)? 答:
思考题:堆栈的生成方向如何? 答:堆栈的生成方向是: The stacks grow from high addresses to low addresses. 即:CPU在每推入一个值到数据堆栈以前,减小SP的值;从数据堆 栈弹出一个值以后,增加SP的值。在堆栈操作中,SPH的值不变。
DPH
XDP的高段部分
四、用于寻址数据地址空间和I/O空间的寄存器
5. 数据页寄存器( XDP/DP)
(1)在DP直接寻址模式下,XDP指定一个23位地址。
数据页寄存器的功用:
(2) 在k16绝对寻址模式下,DPH和一个16-bit的立即 数构成一个23位的地址。 直接寻址和绝对寻址模式见教材40页。
数,因此用于MAC指令时,优点更加突出。
CDP间接寻址模式和系数间接寻址模式见教材46页,表 3-4、3-5。 例子指令: MOV Smem, Cmem;
MOV *AR3, *CDP; The content addressed by AR3 is copied in the location addressed by the coefficient data pointer register (CDP).
XSP
03H
SPH
2002H
TMS320C55x硬件设计实例

04
使用触发器或延迟链技术,实
现精确的时序控制。
05
通过仿真和测试,验证时序优
化效果并调整参数。
06
06
TMS320C55x常见问题 与解决方案
启动问题
启动问题
在TMS320C55x硬件设计过程中,有 时会出现启动失败的问题,这可能是 由于电源不稳定、复位电路故障、启 动配置错误等原因造成的。
解决方案
04扩Biblioteka 板设计扩展板是为了满足特定应用需 求而设计的,可以添加额外的
功能模块和接口。
扩展板的设计需要考虑与核心 板的接口匹配,以及与其他扩
展板的互操作性。
扩展板上的元件布局和布线同 样要合理,以确保信号完整性 和减小电磁干扰。
扩展板的尺寸和重量也需要考 虑,以满足实际应用的需求。
接口板设计
接口板是用于连接外部设 备的板卡,如串口、并口、 USB等。
详细描述
TMS320C55x系列DSP具有高速的运算能力和高效的数字信号 处理算法,能够快速处理大量的图像数据。通过使用 TMS320C55x,可以实现高效的图像压缩、图像增强和图像识 别等功能。
信号处理
总结词
TMS320C55x系列DSP在信号处理领域具有出色的实时信号处理能力和高效的算法,适用于通信信号 处理、雷达信号处理、振动信号处理等应用。
低功耗
TMS320C55x采用低功耗设计, 能够在保证性能的同时降低功耗, 延长设备的使用时间。
集成度高
TMS320C55x集成了丰富的外设 接口,如串口、GPIO等,方便与 其他硬件设备进行连接和控制。
应用领域
音频处理
TMS320C55x强大的数字信号处理能力使其成为音频处理领域的 理想选择,如音频编解码、音频效果处理等。
TMS320C55xDSP应用系统设计

DSP的含义
数字信号处理(Digital Signal Processing)
数字信号处理的理论和算法
数字信号处理器(Digital Signal Processor)
实现数字信号处理算法的微处理器芯片
1979年,美国Intel公司推出商用可编程器件DSP芯 片Intel2920
1980年,日本NEC公司推出μPD7720,第一片具 有乘法器的商用DSP芯片 1982年,TI公司成功推出其第一代DSP芯片 TMS32010及其系列产品TMS32011、 TMS320C10/C14 /C15/C16/C17
1.3 DSP芯片产品简介
TI公司的DSP芯片概况 其它公司的DSP芯片概况 TMS320C5000概况
1.3.1 TI公司的DSP芯片概况
经典产品
TMS320C1X、TMS320C25、TMS320C3X/4X、 TMS320C5 X、TMS320C8X TMS320C2000,用于数字化控制领域
Motorola公司的DSP5600、9600系列,AT&T公司的 DSP32等。
第三阶段,DSP的完善阶段(2000年以后)
信号处理能力更加完善,而且使系统开发更加方便、 程序编辑调试更加灵活、功耗进一步降低、成本不 断下降 各种通用外设集成到片上,大大地提高了数字信号 处理能力 DSP运算速度可达到单指令周期10ns左右,可在 Windows 下用C语言编程,使用方便灵活
1.2.4 DSP芯片的应用领域
TMS320C55x的DSP概括

DSP原理与应用大作业姓名:潘俊涛班级:应电121班学号:1204141192014年6月第1部分概述一、DSP简介;当德州仪器(TI)公司在1982年研发出第一款商用数字信号处理器是,谁也不会想到它竟能给世界带来如此大的变化。
从移动通信到消费电子领域,从汽的第一代数字信号处理器仅包含了55000个晶体管,4KB内存处理指令只有5MIPS (每秒百万条),经过二十余年的发展,单核数字信号处理器的处理能力已经达到9600MIPS的惊人速度,寻址能力高达1280MB。
而第三代数字信号处理器则以其强大的数字信号处理能力、超低功耗和适合手持设备的超小型封装的等特点,较好的满足了新一代电子产品的要求。
二、DSP的发展;20世纪60年代以来,随着信息技术的不断进步,数字信号处理系统也应运而生并得到迅速的发展。
80年代以前,由于方法的限制,数字信号处理技术处于理论研究阶段,还得不到广泛的应用。
在此阶段,人们利用通用计算机进行数字滤波、频谱分析等算法的研究,以及数字信号处理系统的模拟和仿真。
实施数字信号处理对数字信号处理系统的处理能力提出了严格的要求,所有运算、处理都必须小于系统可接受的最大时延。
典型的数字信号处理系统的基本部分:抗混叠滤波器、模/数转换器、数字信号处理、数/模转换器和抗镜像滤波器。
以下几种问为当前实用的数字信号处理系统:1、利用X86处理器完成实时数字信号处理2、利用通用微处理器成实时数字信号处理3、利用可编程逻辑阵列(FPGA)进行成实时数字信号处理4、利用数字信号处理器(DSP)实现数字信号处理三、DSP的特点;DSP系统的应用领域极其广泛,目前主要的应用领域如下:基本信号处理、通信、语音、图形图像、军事、仪器仪表、控制、医疗和家用电器。
DSP最大的应用领域是通信,并且军事领域是高性能DSP的天地。
众所周知,微处理器的存储结构分为两大类:冯.诺伊曼结构和哈弗结构。
DSP广泛使用冯.诺伊曼结构。
DSP教程3.TMS320C55x的硬件结构

1
第三章:TMS320C55x的硬件结构
目标:
本章旨在向学员介绍 TMS320C55x的硬件结构: 1) TMS320C55x的总体结构 2)C55x的CPU结构 3)CPU寄存器 4)存储空间和I/O映射 5)堆栈操作 6)中断和复位操作
时间:4学时 教学方法:讲授PPT
2
3.1 TMS320C55x的总体结构
数据写总线(EB、FB):2组,16位。
3
3.1.2 C55x的CPU组成
C55x的CPU包含5个功能单元: 指令缓冲单元(I单元):包括32*16位指令缓冲队列和指令译码器。 主要接收程序代码并负责放入指令缓冲队列,由指令译码器来解释 指令,然后再把指令流传给其他的工作单元来执行这些指令。 程序流单元(P单元):包括程序地址发生器和程序控制逻辑。此单 元产生所有程序空间地址,并送到PAB总线。
最大可以存放64个字节的待译码指令, 可以执行块循环指令,具有对于分支、 调用和返回指令的随机处理能力。
M单元
I单元
指令缓冲 队列 (64字节) 当CPU准备译码时,6个字节的代码从 队列发送到I单元的指令译码器; P 单元 能够识别指令边界, 译码8、16、24、 指令 32、40和48位的指令,决定2条指令是 A 单元 解码器 否并行执行,将译码结果和立即数送 至P单元、A单元、D单元。 D 单元
M单元
D单元 ALU
测试、设置、清除以及求D单元寄存器的补码;
对寄存器的值进行移动。
两个 MAC
可支持乘法和加/减法。在单个机器周期内,每个MAC可以进 行一次17×17位小数或整数乘法运算和一次带有可选的32或40位 饱和处理的40位加/减法运算。MAC的结果送累加器;
TMS320C55X存储空间结构

C55X DSP 的存储空间包括统一的数据/程序空间和I/O空间。
数据空间用于访问存储器和内存映射寄存器,程序空间用于CPU从存储器中读取指令,而I/O空间用于CPU与外设之间的双向通信。
1.存储器映射如下图所示,C55X的寻址空间为16MB,当CPU从程序空间读取程序代码时,使用24位地址,当访问数据空间时,使用23位的地址。
但是在访问数据空间时,将23位地址左移一位,并将地址总线上的最低有效位(LSB)置0,使得在对数据空间或程序空间寻址时,地址总线都传送24位地址。
数据空间被分成128个主数据页(第0页到第127页),每个数据页的大小为64K字,指令通过7位的主数据页值和16位的偏移值共同来确定数据空间的任何一个地址。
在第0主数据页中,前96个地址(00 0000h ~ 00 005Fh)为存储映射寄存器(MMR)保留,相对应在程序空间有192个地址(00 0000h ~ 00 00BFh),这段存储区为系统保留,用户不能使用该区。
2.程序空间当CPU读取指令时,程序空间才被访问。
CPU采用字节寻址来读取变长的指令,指令的读取吆喝32位的偶地址对其(地址的低2位为0)。
1). 字节寻址(24位)当CPU从程序空间读取指令时,采用字节寻址,即按字节分配地址,且地址为24位。
一个行宽为32位存储器的地址分配由下图说明,每个字节分配一个地址,例如字节0的地址是00 0100h,字节2的地址是00 0102h。
2). 程序空间的指令结构DSP支持8位、16位、24位、32位和48位长度的指令。
下表和下图说明了指令在程序空间如何存放。
在32位宽的存储器中存放了5条指令,每一条指令的地址是只最高有效字节的地址,阴影部分表示没有代码。
3)程序空间的边界对齐在程序空间存放指令时不需要边界对齐,当读取指令时要和32位的偶地址对齐。
也就是说,在读取一条指令时,CPU要从最低两位是0的地址读取32位的代码,这样地址其最低位应是0h,4h,8h和Ch。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16位
16位 16位 7位
IER0,IER1
IFR0,IFR1 IVPD,IVPH
中断使能寄存器0和1
中断标志寄存器0和1 中断向量指针
16位
16位 16位
表2-8 寄存器总表(2)
PC
PDP REA0,REA1 RETA
程序计数器
外设数据页寄存器 块循环结束地址寄存器0和1 返回地址寄存器
24位
表2-9 存储器映射寄存器(2)
地 00 0005h 00 0006h(C54x 代码适用) 访问 ST0_55。 00 0007h(C54x 代码适用) 址 00 0003h 访问 ST1_55。 00 0008h 00 0009h 00 000Ah 00 000Bh 00 000Ch 00 000Dh AC0L AC0H AC0G AC1L AC1H AC1G 累加器 1 累加器 0 15~0 31~16 39~32 15~0 31~16 39~32 ST1(ST1_55) 状态寄存器 1 15~0 址 — ST0(ST0_55) 寄 存 器 名 保留(不使用) 状态寄存器 0 称 位范围 — 15~0
注意:该地址是 ST3_55 的保护地址,C54x 代码可用它访问 PMST。C55x 代码必须 使用地址 00 0004h 访问 ST3_55。
表2-9 存储器映射寄存器(5)
00 001Eh 00 001Fh 00 0020h 00 0021h 00 0022h 00 0023h 00 0024h 00 0025h 00 0026h 00 0027h XPC — T0 T1 T2 T3 AC2L AC2H AC2G CDP 系数数据指针 累加器 2 C54x 代码兼容模式下,扩展程 序计数器 保留(不使用) 暂时寄存器 0 暂时寄存器 1 暂时寄存器 2 暂时寄存器 3 7~0 — 15~0 15~0 15~0 15~0 15~0 31~16 39~32 15~0
注意: 地址 00 0006h 是 ST0_55 的保护地址。 只适用访问 ST0 的 C54x 代码, C55x 代码必须用 00 0002h
注意:地址 00 0007h 是 ST1_55 的保护地址。只适用访问 ST1 的 C54x 代码,C55x 代码必须用地000Eh 00 000Fh 00 0010h 00 0011h 00 0012h 00 0013h 00 0014h 00 0015h 00 0016h 00 0017h 00 0018h 址 T3 TRN0 AR0 AR1 AR2 AR3 AR4 AR5 AR6 AR7 SP 寄 存 器 名 暂时寄存器 3 变换寄存器 0 辅助寄存器 0 辅助寄存器 1 辅助寄存器 2 辅助寄存器 3 辅助寄存器 4 辅助寄存器 5 辅助寄存器 6 辅助寄存器 7 数据堆栈指针 称 位范围 15~0 15~0 15~0 15~0 15~0 15~0 15~0 15~0 15~0 15~0 15~0
第2章 TMS320C55x的硬件结构
CPU寄存器
对于ST0_55、ST1_55和ST3_55, 对于其中一个地址,所有的C55x位均可 访问;在另外一个地址(称为保护地 2.4.1 概况 址),某些保护位不能被修改。保护地 对于T3、RSA0L 、REA0L和SP, 址是为了提供对 C54x代码的支持,以便 当使用 DP 直接寻址方式访问存储器映 写入 ST0 、 ST1以及PMST(C54x对应 C55x的寄存器(见表 2-8 ) 射寄存器时,将访问两个地址中更高的 ST3_55) C55x寄存器的映射地址及描述(见表2-9 ) 地址,即 T3=23H(不是0EH); RSA0L=3DH(不是1BH); REA0L=3FH(不是1CH); ☼ 注意事项: SP=4DH(不是18H) ST0_55、ST1_55和ST3_55都有两个访问地址; T3、RSA0L、REA0L和SP有两个访问地址; 任何装入BRC1的指令将相同的值装入BRS1。
XAR0~XAR7
XCDP XDP XSP
扩展辅助寄存器0~7
扩展系数数据指针 扩展数据页寄存器 扩展数据堆栈指针
23位
23位 23位 23位
XSSP
扩展系统堆栈指针
23位
表2-9 存储器映射寄存器(1)
地 00 0000h 00 0001h 00 0002h(C55x 代码适用) 问 ST0_55。 00 0003h(C55x 代码适用) 问 ST1_55。 00 0004h(C55x 代码适用) ST3_55 状态寄存器 3 15~0 ST1_55 状态寄存器 1 15~0 址 IER0 IFR0 ST0_55 寄 存 器 名 中断使能寄存器 0 中断标志寄存器 0 状态寄存器 0 称 位范围 15~2 15~2 15~0
2.4 CPU寄存器
表2-8 寄存器总表(1)
缩 写 AC0~AC3 AR0~AR7 BK03,BK47,BKC BRC0,BRC1 BRS1 累加器0~3 辅助寄存器0~7 循环缓冲区大小寄存器 块循环计数器0和1 BRC1保存寄存器 名 称 大小 40位 16位 16位 16位 16位 16位 16位 7位 8位
表2-9 存储器映射寄存器(8)
00 003Ch 00 003Dh 00 003Eh 00 003Fh 00 0040h 00 0041h 00 0042h 00 0043h 00 0044h 00 0045h RSA0H RSA0L REA0H REA0L RSA1H RSA1L REA1H REA1L RPTC IER1 块循环起始地址寄存器 0 块循环结束地址寄存器 0 块循环起始地址寄存器 1 块循环结束地址寄存器 1 单循环计数器 中断使能寄存器 1 23~16 15~0 23~16 15~0 23~16 15~0 23~16 15~0 15~0 10~0
表2-9 存储器映射寄存器(7)
00 0034h 00 0035h 00 0036h BSA45 BSA67 BSAC AR4 和 AR5 的循环缓冲区起始 地址寄存器 AR6 和 AR7 的循环缓冲区起始 地址寄存器 CDP 的循环缓冲区起始地址寄 存器 保留给 BIOS。一个 16 位寄存 00 0037h 00 0038h 00 0039h 00 003Ah 00 003Bh — TRN1 BRC1 BRS1 CSR 器,保存 BIOS 操作所需要的数 据表指针起始地址 变换寄存器 1 块循环计数器 1 BRC1 保存寄存器 计算单循环寄存器 15~0 15~0 15~0 15~0 — 15~0 15~0 15~0
表2-9 存储器映射寄存器(6)
00 0028h 00 0029h 00 002Ah 00 002Bh 00 002Ch 00 002Dh 00 002Eh 00 002Fh 00 0030h 00 0031h 00 0032h 00 0033h AC3L AC3H AC3G DPH — — DP PDP BK47 BKC BSA01 BSA23 扩展数据页寄存器的高位部分 保留(不使用) 数据页寄存器 外设数据页寄存器 AR4~AR7 的循环缓冲区大小寄 存器 CDP 的循环缓冲区大小寄存器 AR0 和 AR1 的循环缓冲区起始 地址寄存器 AR2 和 AR3 的循环缓冲区起始 地址寄存器 累加器 3 15~0 31~16 39~32 6~0 — — 15~0 8~0 15~0 15~0 15~0 15~0
表2-9 存储器映射寄存器(9)
00 0046h 00 0047h 00 0048h 00 0049h 00 004Ah 00 004Bh 00 004Ch 00 004Dh 00 004Eh IFR1 DBIER0 DBIER1 IVPD IVPH ST2_55 SSP SP SPH 中断标志寄存器 1 调试中断使能寄存器 0 调试中断使能寄存器 1 DSP 向量的中断向量指 针 主机向量的中断向量指 针 状态寄存器 2 系统堆栈指针 数据堆栈指针 扩展堆栈指针的高位部 分 00 004Fh 00 0050h~00 005Fh CDPH — 扩展系数数据指针的高 位部分 保留(不使用) 6~0 — 15~0 15~0 15~0 6~0 15~0 10~0 15~2 10~0 15~0
在比较完两个累加器的全部40位后,执行选择一个 40位极值的指令,以更新被选中的变换寄存器 (TRN0或TRN1)
15~0
2.4.4 T寄存器(T0-T3)
T1 T2 T3
T0
CPU包括4个16位通用T寄 存器:T0、T1、T2、T3
用途
存放乘法、乘加以及乘减运算里的一个乘数 存放D单元里加法、减法和装入运算的移位数 用交换指令交换辅助寄存器(AR0-AR7)和T寄存器 中的内容时,跟踪多个指针值 在D单元ALU里作双16位运算时,存放Viterbi蝶形的 变换尺度
BSA01,BSA23,BSA45,BSA67,BSAC 循环缓冲区起始地址寄存器 CDP CDPH CFCT 系数数据指针(XCDP的低位部分) XCDP的高位部分 控制流关系寄存器
CSR
DBIER0,DBIER1 DP DPH
计算单循环寄存器
调试中断使能寄存器0和1 数据页寄存器(XDP的低位部分) XDP的高位部分
2.4.2 累加器(AC0~AC3)
C55x的CPU包括4个40位的累加器AC0、AC1、AC2、 AC0 AC0G AC0H AC0L AC3 AC0、AC1、AC2、 AC3等价。任何一条使用一个累加 AC1 AC1G AC1H AC1L 器的指令,都可以通过编程来使用4个累加器中的任何一 AC2 AC2G AC2H AC2L 个 AC3 AC3G AC3H AC3L 在C54x兼容模式( C54CM=1 )下,累加器 AC0 、AC1分 别对应于C54x里的累加器A、B 每个累加器分为低字(ACxL)、高字(ACxH) 和8个 保护位(ACxG),用户可以使用访问存储器映射寄存器 的寻址方式,分别访问这3部分