18.12.9 第2章 TMS320C54x的硬件结构 内容提要 TMS320C54x芯片是一种特殊结构的微处理器,为了快速地实现数字信号处理运算,采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。 本章主要介绍TMS320C54x芯片的硬件结构,重点对芯片的引脚功能、CPU结构、内部存储器、片内外设电路、系统控制以及内外部总线进行了讨论。 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 知识要点 ● 引脚功能 ● 内外部总线结构 ● CPU结构 ● 内部存储器结构 ● 片内外设电路 18.12.9 第2章 TMS320C54x的硬件结构 知识要点 ● 引脚功能 ● 内外部总线结构 ● CPU结构 ● 内部存储器结构 ● 片内外设电路 ● 系统控制 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 2.1 ’C54x的基本结构 2.2 ’C54x的主要特性和外部引脚 18.12.9 第2章 TMS320C54x的硬件结构 2.1 ’C54x的基本结构 2.2 ’C54x的主要特性和外部引脚 2.3 ’C54x的内部总线结构 2.4 ’C54x的中央处理器 2.5 ’C54x的存储空间结构 2.6 ’C54x的片内外设电路 2.7 ’C54x的系统控制 2.8 ’C54x的外部总线 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.1 ’C54x的基本结构 TMS320C54x(简称’C54x)是TI公司为实现低功耗、高速实时信号处理而专门设计的16位定点数字信号处理器,采用改进的哈佛结构,具有高度的操作灵活性和运行速度,适应于远程通信等实时嵌入式应用的需要,现已广泛地应用于无线电通信系统中。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.1 ’C54x的基本结构 1. ’C54x的主要优点 ① 围绕1组程序总线、3组数据总线和4组地址总线而建立的改进哈佛结构,提高了系统的多功能性和操作的灵活性。 ④ 模块化结构设计,使派生器件得到了更快的发展。 ⑤ 采用先进的IC制造工艺,降低了芯片的功耗,提高了芯片的性能。 ② 具有高度并行性和专用硬件逻辑的CPU设计,提高了芯片的性能。 ⑥ 采用先进的静态设计技术,进一步降低了功耗,使芯片具有更强的应用能力。 ③ 具有完善的寻址方式和高度专业化指令系统,更适应于快速算法的实现和高级语言编程的优化。 2018年12月9日 DSP原理及应用
2. ’C54x的内部结构 TMS320C54x的组成 中央处理器CPU I/O功能扩展接口 串行口 内部总线控制 特殊功能寄存器 18.12.9 第2章 TMS320C54x的硬件结构 2. ’C54x的内部结构 TMS320C54x的组成 中央处理器CPU I/O功能扩展接口 串行口 内部总线控制 特殊功能寄存器 主机通信接口HPI 数据存储器RAM 定时系统 程序存储器ROM 中断系统 2018年12月9日 DSP原理及应用
2. ’C54x的内部结构 TMS320C54x的硬件结构图 第2章 TMS320C54x的硬件结构 2018年12月9日 DSP原理及应用 18.12.9 第2章 TMS320C54x的硬件结构 2. ’C54x的内部结构 TMS320C54x的硬件结构图 PAGEN DAGEN 特殊功能 寄存器 系统控制 程序地址生成器 数据地址生成器 CPU 乘法 累加器 算术/逻辑 运算单元 桶 形 移位器 比较器 外部 存储器 接口 设备 程序存储器 数据存储器 串行口 并行口 定时器 计数器 中断 系统 控制 PAB PB CAB CB DAB DB EAB EB 2018年12月9日 DSP原理及应用
采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ① 中央处理器CPU 采用了流水线指令执行结构和相应的并行处理结构,可在一个周期内对数据进行高速的算术运算和逻辑运算。 ② 内部总线结构 由一组程序总线、三组数据总线和四组地址总线组成,可在一个指令周期内产生两个数据存储地址,实现流水线并行数据处理。 2018年12月9日 DSP原理及应用
共有26个特殊功能寄存器,位于具有特殊功能的RAM区。主要用来对片内各功能模块进行管理、控制、监视。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ③ 特殊功能寄存器 共有26个特殊功能寄存器,位于具有特殊功能的RAM区。主要用来对片内各功能模块进行管理、控制、监视。 ④ 数据存储器RAM DARAM:在一个指令周期内,可对其进行两次存取操作,即一次读出和一次写入; 双寻址数据寄存器DARAM 片内数据存储器 SARAM:在一个指令周期内,只能进行一次存取操作。 单寻址数据寄存器SARAM 2018年12月9日 DSP原理及应用
可由ROM和RAM配置而成,即程序空间可以定义在ROM上,也可以定义在RAM中。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ⑤ 程序存储器ROM 可由ROM和RAM配置而成,即程序空间可以定义在ROM上,也可以定义在RAM中。 当需要高速运行的程序时,可将片外ROM中的程序调入到片内RAM中,以提高程序的运行速度,降低对外部ROM的速度要求,增强系统的整体抗干扰性能。 2018年12月9日 DSP原理及应用
’C54x共有两个通用I/O引脚(BIO和XF)。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ⑥ I/O口 ’C54x共有两个通用I/O引脚(BIO和XF)。 BIO:主要用来监测外部设备的工作状态; XF:用来给外部设备发送信号。 ’C54x芯片还配有主机接口(HPI)、同步串行口和64K字I/O空间。 HPI和串行口可以通过设置,用作通用I/O。 64K字的I/O空间可通过外加缓冲器或锁存电路,配合外部I/O读写控制时序构成片外外设的控制电路。 2018年12月9日 DSP原理及应用
不同型号的’C54x芯片,所配置的串行口功能不同。可分为4种: 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ⑦ 串行口 不同型号的’C54x芯片,所配置的串行口功能不同。可分为4种: 单通道同步串行口SP 带缓冲器单通道同步串行口BSP 并行带缓冲器多通道同步串行口McBSP 时分多通道带缓冲器串行口TMD 2018年12月9日 DSP原理及应用
HPI是一个与主机通信的并行接口,主要用于DSP与其它总线或CPU进行通信。信息可通过’C54x的片内存储器与主机进行数据交换。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ⑧ 主机接口HPI HPI是一个与主机通信的并行接口,主要用于DSP与其它总线或CPU进行通信。信息可通过’C54x的片内存储器与主机进行数据交换。 不同型号的器件配置不同HPI口,可分为: 8位标准HPI接口 8位增强型HPI接口 16位增强型HPI接口 2018年12月9日 DSP原理及应用
定时器是一个软件可编程的计数器,用来产生定时中断。 18.12.9 第2章 TMS320C54x的硬件结构 3. 各部分的功能 ⑨ 定时器 定时器是一个软件可编程的计数器,用来产生定时中断。 可通过设置特定的状态来控制定时器的停止、恢复、复位和禁止。 2018年12月9日 DSP原理及应用
’C54x的中断系统具有硬件中断和软件中断。 18.12.9 第2章 TMS320C54x的硬件结构 ⑩ 中断系统 ’C54x的中断系统具有硬件中断和软件中断。 由外围设备信号引起的中断。 硬件中断: 分为: 片外外设引起的硬件中断; 片内外设引起的硬件中断。 由程序指令所引起的中断。 软件中断: 可屏蔽中断: SINT15~SINT0。 非屏蔽中断: 包括所有的软件中断和两个外部 硬件中断RS、NMI。 中断管理优先级: 11~16个固定级。 2018年12月9日 DSP原理及应用
2.2 ’C54x的主要特性和外部引脚 2.2.1 ’C54x的主要特性 1.CPU 18.12.9 第2章 TMS320C54x的硬件结构 2.2 ’C54x的主要特性和外部引脚 2.2.1 ’C54x的主要特性 1.CPU ● 采用先进的多总线结构,通过1组程序总线、3组数据总线和4组地址总线来实现。 ● 40位算术逻辑运算单元ALU,包括1个40位桶形移位寄存器和2个独立的40位累加器。 ● 17×17位并行乘法器,与40位专用加法器相连,可用于进行非流水线的单周期乘法-累加运算。 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 1.CPU ● 比较、选择、存储单元(CSSU),可用于Viterbi译码器的加法-比较-选择运算。 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 1.CPU ● 比较、选择、存储单元(CSSU),可用于Viterbi译码器的加法-比较-选择运算。 ● 指数编码器,是一个支持单周期指令EXP的专用硬件。可以在一个周期内计算40位累加器数值的指数。 ● 配有两个地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 2.存储器 ● 可访问的最大存储空间为192K×16位,即64K字的程序存储器、64K字的数据存储器以及64K字的I/O空间。 ● 片内ROM,可配置为程序存储器和数据存储器。 ● 片内RAM有两种类型,即双寻址RAM(DARAM)和单寻址RAM(SARAM)。 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 3.指令系统 ● 支持单指令重复和块指令重复操作 ● 支持存储器块传送指令 ● 支持32位长操作数指令 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 3.指令系统 ● 支持单指令重复和块指令重复操作 ● 支持存储器块传送指令 ● 支持32位长操作数指令 ● 具有支持2操作数或3个操作数的读指令 ● 具有能并行存储和并行加载的算术指令 ● 支持条件存储指令及中断快速返回指令 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 4.在片外围电路 ● 具有软件可编程等待状态发生器 ● 设有可编程分区转换逻辑电路 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 4.在片外围电路 ● 具有软件可编程等待状态发生器 ● 设有可编程分区转换逻辑电路 ● 带有内部振荡器或外部时钟源的片内锁相环(PLL)发生器 ● 支持全双工操作的串行口,可进行8位或16位串行通信 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 4.在片外围电路 ● 带4位预定标器的16位可编程定时器 ● 设有与主机通信的并行接口(HPI) 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 4.在片外围电路 ● 带4位预定标器的16位可编程定时器 ● 设有与主机通信的并行接口(HPI) ● 具有外部总线判断控制,以断开外部的数据总线、地址总线和控制信号 ● 数据总线具有总线保持器特性 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 5.电源 6.片内仿真接口 ● 具有符合IEEE1149.1标准的片内仿真接口。 ● 具有多种节电模式。 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 5.电源 ● 具有多种节电模式。 可用IDLE1、IDLE2和IDLE3指令来控制芯片功耗,使CPU工作在省电方式。 ● 可在软件控制下,禁止CLKOUT输出信号。 6.片内仿真接口 ● 具有符合IEEE1149.1标准的片内仿真接口。 2018年12月9日 DSP原理及应用
2.2.1 ’C54x的主要特性 7.速度 ● 5.0V电压的器件,其速度可达到40MIPS,指令周期时间为25ns。 18.12.9 第2章 TMS320C54x的硬件结构 2.2.1 ’C54x的主要特性 7.速度 ● 5.0V电压的器件,其速度可达到40MIPS,指令周期时间为25ns。 ● 3.3V电压的器件,其速度可达到80MIPS,指令周期时间为12.5ns。 ● 2.5V电压的器件,其速度可达到100MIPS,指令周期时间为10ns。 ● 1.8V电压的器件,其速度可达到200MIPS,每个核的指令周期时间为10ns。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.2.2 ’ C54x的引脚功能 TMS320C54x芯片采用CMOS制造工艺,整个系列的型号基本上都采用塑料或陶瓷四方扁平封装形式(TQFP)。 不同的器件型号其引脚的个数有所不同。下面 以TMS320VC5402芯片为例,介绍’C54x引脚的名称及功能。 2018年12月9日 DSP原理及应用
2.2.2 ’ C54x的引脚功能 ’C5402共有144个引脚,引脚分布如图。 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.2.2 ’ C54x的引脚功能 ’C5402共有144个引脚,引脚分布如图。 144 143 142 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 108 107 106 105 104 103 102 101 100 99 98 97 96 95 94 93 92 91 90 89 88 87 86 85 84 83 82 81 80 79 78 77 76 75 74 73 TMS320VC5402 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 2018年12月9日 DSP原理及应用
2.2.2 ’ C54x的引脚功能 电源引脚 时钟引脚 控制引脚 地址和数据引脚 串行口引脚 主机接口引脚 通用I/O引脚 测试引脚 18.12.9 第2章 TMS320C54x的硬件结构 2.2.2 ’ C54x的引脚功能 TMS320C5402引脚: 电源引脚 时钟引脚 控制引脚 地址和数据引脚 串行口引脚 主机接口引脚 通用I/O引脚 测试引脚 2018年12月9日 DSP原理及应用
2.2.2 ’ C54x的引脚功能 1. 电源引脚 ’C5402采用双电源供电,其引脚有: 18.12.9 第2章 TMS320C54x的硬件结构 2.2.2 ’ C54x的引脚功能 1. 电源引脚 ’C5402采用双电源供电,其引脚有: ● CVDD(16、52、68、91、125、142), 电压为+1.8V,为CPU内核提供的专用电源; ● DVDD(4、33、56、75、112、130), 电压为+3.3V,为各I/O引脚提供的电源; ● VSS(3、14、34、40、50、57、70、76、93、 106、111、128),接地。 2018年12月9日 DSP原理及应用
’C5402的时钟发生器由内部振荡器和锁相环PLL构成,其引脚功能如表2.2.1所示。 18.12.9 第2章 TMS320C54x的硬件结构 2.时钟引脚 ’C5402的时钟发生器由内部振荡器和锁相环PLL构成,其引脚功能如表2.2.1所示。 CLKOUT:主时钟输出引脚,周期为CPU的机器周期。 CLKMD1、CLKMD2和CLKMD3: 设定时钟工作模式引脚,用来硬件配置时钟模式。 X2/CLKIN:时钟振荡器引脚。 若使用内部时钟,用来外接晶体电路; 若使用外部时钟,该引脚接外部时钟输入。 X1:时钟振荡器引脚。 若使用内部时钟,用来外接晶体电路; 若使用外部时钟,该引脚悬空。 TOUT:定时器输出引脚。 2018年12月9日 DSP原理及应用
控制引脚用来产生和接收外部器件的各种控制信号,引脚功能见表2.2.2。 RS :复位信号; MSTRB :外部存储器选通信号; 18.12.9 第2章 TMS320C54x的硬件结构 3.控制引脚 控制引脚用来产生和接收外部器件的各种控制信号,引脚功能见表2.2.2。 RS :复位信号; MSTRB :外部存储器选通信号; PS :外部程序存储器片选信号; DS:外部数据存储器片选信号; I S:I/O设备选择信号; IOSTRB:I/O设备选通信号; R/W:读/写信号; READY:数据准备好信号。 HOLD:请求控制存储器接口信号; 2018年12月9日 DSP原理及应用
INT0、INT1、INT2、INT3:外部中断请求信号。 NMI:非屏蔽中断。 18.12.9 第2章 TMS320C54x的硬件结构 3.控制引脚 HOLDA:响应控制存储器请求信号; MSC:微状态完成信号; IAQ:中断请求信号; IACK:中断响应信号; MP/MC:DSP工作方式选择信号; INT0、INT1、INT2、INT3:外部中断请求信号。 NMI:非屏蔽中断。 2018年12月9日 DSP原理及应用
地址引脚用来寻址外部程序空间、外部数据空间和片外I/O空间。 18.12.9 第2章 TMS320C54x的硬件结构 4.地址和数据引脚 ’C5402芯片共有20个地址引脚和16条数据引脚 。 地址引脚用来寻址外部程序空间、外部数据空间和片外I/O空间。 A19~A0:可寻址1M的外部程序空间 64K外部数据空间 64K片外I/O空间 2018年12月9日 DSP原理及应用
数据引脚:用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16位数据并行传输。 18.12.9 第2章 TMS320C54x的硬件结构 4.地址和数据引脚 数据引脚:用于在处理器、外部数据存储器、程序存储器和I/O器件之间进行16位数据并行传输。 D15~D0:组成16位外部数据总线。 在下列情况下,D15~D0将呈现高阻状态。 ● 当没有输出时 ● 当HOLD有效时 ● 当RS有效时 ● 当EMU1/OFF为低电平时 2018年12月9日 DSP原理及应用
’C5402器件有两个McBSP串行口,共有12个外部引脚。 18.12.9 第2章 TMS320C54x的硬件结构 5. 串行口引脚 ’C5402器件有两个McBSP串行口,共有12个外部引脚。 BCLKR0:缓冲串行口0同步接收时钟信号; BCLKR1:缓冲串行口1同步接收时钟信号; BCLKX0:缓冲串行口0同步发送时钟信号; BCLKX1:缓冲串行口1同步发送时钟信号; BDR0:缓冲串行口0的串行数据接收输入; BDR1:缓冲串行口1的串行数据接收输入; 2018年12月9日 DSP原理及应用
5. 串行口引脚 BDX0:缓冲串行口0的串行数据发送输出; BDX1:缓冲串行口1的串行数据发送输出; 18.12.9 第2章 TMS320C54x的硬件结构 5. 串行口引脚 BDX0:缓冲串行口0的串行数据发送输出; BDX1:缓冲串行口1的串行数据发送输出; BFSR0:缓冲串行口0同步接收信号; BFSR1:缓冲串行口1同步接收信号; BFSX0:缓冲串行口0同步发送信号; BFSX1:缓冲串行口1同步发送信号。 2018年12月9日 DSP原理及应用
’C5402的HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。 18.12.9 第2章 TMS320C54x的硬件结构 6. 主机接口HPI引脚 ’C5402的HPI接口是一个8位并行口,用来与主设备或主处理器接口,实现DSP与主设备或主处理器间的通信。 HDS1: HDS2: HD7~HD0:8位双向并行数据线; HCS:片选信号,作为HPI的使能端; HAS:地址选通信号; 数据选通信号,由主机控制HPI数据传输; 2018年12月9日 DSP原理及应用
HBIL:字节识别信号,用来判断主机送来的数据是 第1字节还是第2字节。 18.12.9 第2章 TMS320C54x的硬件结构 6. 主机接口HPI引脚 HBIL:字节识别信号,用来判断主机送来的数据是 第1字节还是第2字节。 HCNTL0: HCNTL1: 用于主机选择所要寻址的寄存器; 主机控制信号。 HR/W :主机对HPI口的读/写信号; HRDY :HPI数据准备好信号; HINT/TOUT1:HPI向主机请求的中断信号; HPIENA:HPI模块选择信号。 2018年12月9日 DSP原理及应用
’C5402芯片都有2个通用的I/O引脚,分别为: 18.12.9 第2章 TMS320C54x的硬件结构 7. 通用I/O引脚 ’C5402芯片都有2个通用的I/O引脚,分别为: XF:外部标志输出信号,用来给外部设备发送 信号。通过编程设置,控制外设工作。 BIO:控制分支转移输入信号,用来监测外设的 工作状态。 2018年12月9日 DSP原理及应用
EMU1/OFF:仿真器中断1引脚/关断所有 输出引脚。 ’C5402芯片具有符合IEEE1149.1标准的在片仿真接口。 18.12.9 第2章 TMS320C54x的硬件结构 8. 测试引脚 TCK:测试时钟输入引脚; TDI:测试数据输入引脚; TDO:测试数据输出引脚; TMS:测试方式选择引脚; TRST:测试复位引脚; EMU0:仿真器中断0引脚; EMU1/OFF:仿真器中断1引脚/关断所有 输出引脚。 ’C5402芯片具有符合IEEE1149.1标准的在片仿真接口。 2018年12月9日 DSP原理及应用
2.3 ’C54x的内部总线结构 TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。 1组程序总线PB 18.12.9 第2章 TMS320C54x的硬件结构 2.3 ’C54x的内部总线结构 TMS320C54x的结构是以8组16位总线为核心,形成了支持高速指令执行的硬件基础。 1组程序总线PB 3组数据总线CB、DB、EB 4组地址总线PAB、CAB、DAB、EAB 总线结构 2018年12月9日 DSP原理及应用
主要用来传送取自程序存储器的指令代码和立即操作数。 18.12.9 第2章 TMS320C54x的硬件结构 1.程序总线PB 主要用来传送取自程序存储器的指令代码和立即操作数。 PB总线既可以将程序空间的操作数据(如系数表)送至数据空间的目标地址中,以实现数据移动,也可以将程序空间的操作数据传送乘法器和加法器中,以便执行乘法-累加操作。 2018年12月9日 DSP原理及应用
3条数据总线分别与不同功能的内部单元相连接。 18.12.9 第2章 TMS320C54x的硬件结构 2.数据总线CB 、DB和EB 3条数据总线分别与不同功能的内部单元相连接。 如:CPU、程序地址产生逻辑PAGEN、数据地址产生逻辑 DAGEN、片内外设和数据存储器等。 CB和DB用来传送从数据存储器读出的数据; EB用来传送写入存储器的数据。 3.地址总线PAB、CAB、DAB和EAB 用来提供执行指令所需的地址。 2018年12月9日 DSP原理及应用
’C54x读/写操作占用总线情况 第2章 TMS320C54x的硬件结构 读/写方式 地址总线 程序总线 数据总线 程序读 程序写 单数据读 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x读/写操作占用总线情况 读/写方式 地址总线 程序总线 数据总线 PAB CAB DAB EAB PB CB DB EB 程序读 程序写 单数据读 双数据读 32位长数据读 (hw) (lw) 单数据写 数据读/数据写 双数据读/系数读 外设读 外设写 2018年12月9日 DSP原理及应用
2.4 ’C54x的中央处理器CPU CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。 18.12.9 第2章 TMS320C54x的硬件结构 2.4 ’C54x的中央处理器CPU CPU是DSP器件的核心部件,它的性能直接关系到DSP器件的性能。 ’C54x的CPU采用了流水线指令执行结构和相应的并行结构设计,使其能在一个指令周期内,高速地完成多项算术运算。 2018年12月9日 DSP原理及应用
④ 能完成乘法-加法运算的乘法累加器MAC; ⑤ 16位暂存寄存器T; ⑥ 16位转移寄存器TRN; ⑦ 比较、选择、存储单元CSSU; 18.12.9 第2章 TMS320C54x的硬件结构 CPU包括下列基本部件: ① 40位算术逻辑运算单元ALU; ② 2个40位的累加器A和B; ③ 支持-16~31位移位范围的桶形移位寄存器; ④ 能完成乘法-加法运算的乘法累加器MAC; ⑤ 16位暂存寄存器T; ⑥ 16位转移寄存器TRN; ⑦ 比较、选择、存储单元CSSU; ⑧ 指数译码器; ⑨ CPU状态和控制寄存器。 2018年12月9日 DSP原理及应用
’C54x使用40位的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.1 算术逻辑运算单元ALU ’C54x使用40位的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。 ’C54x的大多数算术逻辑运算指令都是单周期指令,其运算结果通常自动送入目的累加器A或B。但在执行存储器到存储器的算术逻辑运算指令时(如ADDM、ANDM、ORM和XORM),其运算结果则存入指令指定的目的存储器。 2018年12月9日 DSP原理及应用
ALU的功能框图 第2章 TMS320C54x的硬件结构 ALU MUX A B 符号ctr CB15~CB0 DB15~DB0 X Y 18.12.9 第2章 TMS320C54x的硬件结构 ALU的功能框图 MUX A B ALU 符号ctr CB15~CB0 DB15~DB0 MAC输出 SXM OVM C16 C ZA/ZB TC X Y M U T D S OVA/OVB 桶形移位器输出 2018年12月9日 DSP原理及应用
根据输入源的不同,ALU采用不同的输入方式。 18.12.9 第2章 TMS320C54x的硬件结构 1.ALU的输入和输出 根据输入源的不同,ALU采用不同的输入方式。 (1) ALU的X输入源 ① 来自桶形移位寄存器输出的操作数; ② 来自数据总线DB中的操作数。 (2) ALU的Y输入源 ① 来自累加器A中的数据; ② 来自累加器B中的数据; ③ 来自数据总线CB中的操作数; ④ 来自T寄存器中的操作数。 2018年12月9日 DSP原理及应用
当16位数据存储器操作数通过数据总线DB或CB输入时,ALU将采用两种方式对操作数进行预处理。 18.12.9 第2章 TMS320C54x的硬件结构 (3) ALU输入数据的预处理 当16位数据存储器操作数通过数据总线DB或CB输入时,ALU将采用两种方式对操作数进行预处理。 ① 若数据存储器的16位操作数在低16位时,则 当SXM=0时,高24位 ( 39~16位 ) 用0填充; 当SXM=1时,高24位 ( 39~16位 ) 扩展为符号位。 ② 若数据存储器的16位操作数在高16位时,则 当SXM=0时,39~32位和15~0位用0填充; 当SXM=1时,39~32位扩展为符号位,15~0位置0。 (4) ALU的输出 ALU的输出为40位运算结果,通常被送至累加器A或B。 2018年12月9日 DSP原理及应用
ALU的饱和逻辑可以对运算结果进行溢出处理。当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。 18.12.9 第2章 TMS320C54x的硬件结构 2.溢出处理 ALU的饱和逻辑可以对运算结果进行溢出处理。当发生溢出时,将运算结果调整为最大正数(正向溢出)或最小负数(负向溢出)。 当运算结果发生溢出时: ① 若OVM=0,则对ALU的运算结果不作任何调整,直接送入累加器; ② 若OVM=1,则对ALU的运行结果进行调整。 当正向溢出时,将32位最大正数00 7FFFFFFFH装入累加器; 当负向溢出时,将32位最小负数FF 80000000H装入累加器。 ③状态寄存器ST0中与目标累加器相关的溢出标志OVA或OVB被置1。 2018年12月9日 DSP原理及应用
ALU有一个与运算结果有关的进位位C,位于ST0的11位。进位位C受大多数ALU操作指令的影响,包括算术操作、循环操作和移位操作。 18.12.9 第2章 TMS320C54x的硬件结构 3.进位位C 进位位C的功能: ALU有一个与运算结果有关的进位位C,位于ST0的11位。进位位C受大多数ALU操作指令的影响,包括算术操作、循环操作和移位操作。 ① 用来指明是否有进位发生; ② 用来支持扩展精度的算术运算; ③ 可作为分支、调用、返回和条件操作的执行 条件。 注意:① 进位位C不受装载累加器操作、逻辑操作、 非算术运算和控制指令的影响; ② 可通过寄存器操作指令RSBX和SSBX对 其进行置位和复位。 2018年12月9日 DSP原理及应用
除SXM、OVM、C、C16、OVA、OVB外,ALU还有两个控制位。 TC——测试/控制标志,位于ST0的12位; 18.12.9 第2章 TMS320C54x的硬件结构 4.双16位算术运算 若要将ST1中的C16置位,则ALU进行双16位算术运算,即在一个机器周期内完成两个16位数的算术运算,进行两次16位加法或两次16位减法运算。 5.其他控制位 除SXM、OVM、C、C16、OVA、OVB外,ALU还有两个控制位。 TC——测试/控制标志,位于ST0的12位; ZA/ZB——累加器结果为0标志位。 2018年12月9日 DSP原理及应用
’C54x芯片有两个独立的40位累加器A和B,可以作为ALU或MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.2 累加器A和B ’C54x芯片有两个独立的40位累加器A和B,可以作为ALU或MAC的目标寄存器,存放运算结果,也可以作为ALU或MAC的一个输入。 在执行并行指令(LD||MAC)和一些特殊指令(MIN和MAX)时,两个累加器中的一个用于装载数据,而另一个用于完成运算。 2018年12月9日 DSP原理及应用
2.4.2 累加器A和B 1. 累加器结构 第2章 TMS320C54x的硬件结构 累加器A AG AH AL 累加器B BG BH BL 18.12.9 第2章 TMS320C54x的硬件结构 2.4.2 累加器A和B 1. 累加器结构 39 ••• 32 31 ••• 16 15 ••• 0 累加器A AG AH AL 保护位 高阶位 低阶位 15 ••• 0 累加器B BG BH BL BG AG BG AG BH AH BH AH BL AL BL AL 保护位:AG、BG 39~32,作为算术计算时的数据位余量,以防止迭代运算中的溢出。 低阶位:AL、 BL 15~0。 高阶位:AH、BH 31~16; 2018年12月9日 DSP原理及应用
使用STH、STL、STLM、SACCD等指令或并行存储指令,可以把累加器中的内容保存到数据存储器中。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.2 累加器A和B 2.带移位的累加器存储操作 使用STH、STL、STLM、SACCD等指令或并行存储指令,可以把累加器中的内容保存到数据存储器中。 ① 使用STH、SACCD和并行存储指令存储累加器内容 先将累加器内容移位,再将高16位存入存储器。 右移存储:AG(BG)右移AH(BH),AH(BH)存入存储器; 左移存儲:AL(BL)左移AH(BH),AH(BH)存入存储器。 ② 使用STL指令存储累加器内容 注意:① 移位操作是在存储累加器内容的过程中 同时完成的; ② 移位操作是在移位寄存器中完成的,累 加器的内容保持不变。 先将累加器内容移位,再将低16位存入存储器。 右移存储,AH(BH)右移AL(BL),AL(BL)存入存储器; 左移存储,用0左移AL(BL),AL(BL)存入存储器。 2018年12月9日 DSP原理及应用
【例2.4.1】累加器A=FF 0123 4567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。 18.12.9 第2章 TMS320C54x的硬件结构 【例2.4.1】累加器A=FF 0123 4567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。 STL A,-8, T ; A的内容右移8位,AL存入T STH A,-8, T ; A的内容右移8位,AH存入T STH A, 8, T ; A的内容左移8位,AH存入T STL A,8, T ; A的内容左移8位,AL存入T F F 0 1 2 3 4 5 6 7 A AG AH AL 移位 寄存器 F F 0 1 2 3 4 5 6 7 F F 0 1 2 3 4 5 6 7 F F 0 1 2 3 4 5 6 7 F F 0 1 2 3 4 5 6 7 0 1 0 1 F F F F F F 2 3 F F 2 3 0 1 0 1 4 5 4 5 6 7 2 3 2 3 6 7 4 5 0 0 4 5 0 0 T = 2345H, A=FF 0123 4567H T = FF01H, A=FF 0123 4567H T = 2345H, A=FF 0123 4567H T = 6700H, A=FF 0123 4567H T 2 3 4 5 F F 0 1 6 7 0 0 2 3 4 5 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.4.3 桶形移位寄存器 TMS320C54x的40位桶形移位寄存器主要用于累加器或数据区操作数的定标。它能将输入数据进行0~31位的左移和0~16位的右移。所移动的位数可由ST1中的ASM或被指定的暂存器T决定。 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 1. 组成框图 ① 多路选择器MUX ① 多路选择器MUX 用来选择输入数据。 ② 符号控制SC 18.12.9 第2章 TMS320C54x的硬件结构 1. 组成框图 MUX 符号控制SC 移位寄存器 (-16~31) 写选择 MSW/LSW DB15~DB0 CB15~CB0 EB15~EB0 测试位Tc ALU CSSU SXM A B T ASM(4~0) 指令寄存器 立即数 -16~15 0~15 ① 多路选择器MUX ① 多路选择器MUX 用来选择输入数据。 ② 符号控制SC ② 符号控制SC MUX MUX MUX 用于对输入数据进行符号位扩展。 符号控制SC 符号控制SC ③ 移位寄存器 ③ 移位寄存器 移位寄存器 (-16~31) 移位寄存器 (-16~31) 移位寄存器 (-16~31) 移位寄存器 (-16~31) 用来对输入的数据进行定标和移位。 写选择 MSW/LSW 写选择 MSW/LSW 写选择 MSW/LSW ④ 写选择电路 ④ 写选择电路 用来选择最高有效字和最低有效字。 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 2.桶形移位寄存器的输入 通过多路选择器MUX来选择输入信号。 ① 取自DB数据总线的16位 18.12.9 第2章 TMS320C54x的硬件结构 2.桶形移位寄存器的输入 通过多路选择器MUX来选择输入信号。 ① 取自DB数据总线的16位 输入数据; MUX 符号控制SC 移位寄存器 (-16~31) 写选择 MSW/LSW DB15~DB0 CB15~CB0 EB15~EB0 测试位Tc ALU CSSU SXM A B T ASM(4~0) 指令寄存器 立即数 -16~15 0~15 DB15~DB0 DB15~DB0 DB15~DB0 CB15~CB0 DB15~DB0 CB15~CB0 DB15~DB0 DB15~DB0 CB15~CB0 A A A ② 取自DB和CB扩展数据总 线的32位输入数据; B B B ③ 来自累加器A或B的40位 输入数据。 3.桶形移位寄存器的输出 ALU ALU ALU ① 输出至ALU的一个输入端 ; EB15~EB0 EB15~EB0 EB15~EB0 ② 经写MSW/LSW选择电路 输出至EB总线。 2018年12月9日 DSP原理及应用
① 在进行ALU运算之前,对输入数据进行数据定标; ② 对累加器进行算术或逻辑移位; ③ 对累加器进行归一化处理; 18.12.9 第2章 TMS320C54x的硬件结构 4.桶形移位寄存器的功能 主要用于格式化操作,为输入的数据定标 。 ① 在进行ALU运算之前,对输入数据进行数据定标; ② 对累加器进行算术或逻辑移位; ③ 对累加器进行归一化处理; ④ 在累加器的内容存入数据存储器之前,对存储数 据进行定标。 2018年12月9日 DSP原理及应用
根据SXM位控制操作数进行符号位的扩展。 18.12.9 第2章 TMS320C54x的硬件结构 5.桶形移位寄存器的操作 (1) 控制操作数的符号位扩展 根据SXM位控制操作数进行符号位的扩展。 若操作数为有符号数,则 当SXM=1时,完成符号位扩展; 当SXM=0时,禁止符号位扩展。 若操作数为无符号数,则不考虑SXM位,不执行符号位的扩展。 如:LDU、ADDS和SUBS指令,操作数为无符号数,不进行符号位扩展。 2018年12月9日 DSP原理及应用
根据指令中的移位数,控制操作数进行移位操作。移位数用二进制补码表示,正值时完成左移,负值时完成右移。 18.12.9 第2章 TMS320C54x的硬件结构 (2) 控制操作数的移位 根据指令中的移位数,控制操作数进行移位操作。移位数用二进制补码表示,正值时完成左移,负值时完成右移。 移位数的形式: ① 5位立即数,取值范围:-16~15; ② ST1中的ASM位,取值范围:-16~15; ③ 暂存器T中的低6位数值,取值范围:-16~31。 这种移位操作能使CPU完成数据的定标、位提取、扩展算术和溢出保护等操作。 2018年12月9日 DSP原理及应用
ADD A, ASM,B ;A按ASM移位后加到B中 NORM A ;按T的数值对A进行归一化 18.12.9 第2章 TMS320C54x的硬件结构 【例2.4.2】 对累加器A执行不同的移位操作。 ADD A, - 4,B ;A右移4位后加到B中 ADD A, ASM,B ;A按ASM移位后加到B中 NORM A ;按T的数值对A进行归一化 桶形移位寄存器和指数译码器可以将累加器中的数值在一个周期内进行归一化处理。 例如,40位累加器A中的定点数为FF FFFF F001。 ① 先用EXP A指令,求得它的指数为13H,存放在T寄存器中。 ② 然后再执行NORM A指令,可在单个周期内将原来的定点数分成尾数FF 8008 0000和指数13H两个部分。 2018年12月9日 DSP原理及应用
根据ROLTC指令,控制操作数完成带测试位的循环左移。 18.12.9 第2章 TMS320C54x的硬件结构 (3) 控制操作数完成带测试位的移位 根据ROLTC指令,控制操作数完成带测试位的循环左移。 (4)完成MSW和LSW的写选择 MSW/LSW单元根据CSSU信号,选择移位后的信号锁存,并输出至EB总线。 2018年12月9日 DSP原理及应用
’C54x的乘法-累加单元MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几部分组成。 取整 40位加法器 MUX XM YM 乘法器(17 17) 符号控制 X MUX Y MUX T DB15~DB0 CB15~CB0 PB15~PB0 YA XA OVM OVA/OVB ZA/ZB 至A/B FRCT A B 来自A 来自B P C D 乘法-累加单元功能框图 18.12.9 第2章 TMS320C54x的硬件结构 2.4.4 乘法-累加单元MAC ’C54x的乘法-累加单元MAC是由乘法器、加法器、符号控制、小数控制、零检测器、舍入器、饱和逻辑和暂存器几部分组成。 MAC单元具有强大的乘法-累加运算功能,可在一个流水线周期内完成1次乘法运算和1次加法运算。在数字滤波(FIR和IIR滤波)以及自相关等运算中,使用乘法-累加运算指令可以大大提高系统的运算速度。 2018年12月9日 DSP原理及应用
MAC单元包含一个1717位硬件乘法器,可完成有符号数和无符号数的乘法运算。 (1)乘法器的输入 18.12.9 第2章 TMS320C54x的硬件结构 1. 乘法器 MAC单元包含一个1717位硬件乘法器,可完成有符号数和无符号数的乘法运算。 (1)乘法器的输入 XM输入: ① 取自数据总线DB的数据存储器操作数; ② 来自暂存器T的操作数; ③ 来自累加器A的32~16位操作数。 YM输入: ① 来自数据总线DB的数据存储器操作数; ② 来自数据总线CB的数据存储器操作数; ③ 来自程序总线PB的程序存储器操作数; ④ 来自累加器A的32~16位操作数。 2018年12月9日 DSP原理及应用
乘法器的输出经小数控制电路接至加法器的XA输入端。 18.12.9 第2章 TMS320C54x的硬件结构 1. 乘法器 (2)乘法器的输出 乘法器的输出经小数控制电路接至加法器的XA输入端。 (3)乘法器的操作 MAC单元的乘法器能进行有符号数、无符号数以及有符号数与无符号数的乘法运算。 2018年12月9日 DSP原理及应用
(3)乘法器的操作 根据操作数的不同情况需进行以下处理: 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 (3)乘法器的操作 根据操作数的不同情况需进行以下处理: 若是两个有符号数相乘,则在进行乘法运算之前,先对两个16位乘数进行符号位扩展,形成17位有符号数后再进行相乘。 扩展的方法:在每个乘数的最高位前增加一个符号位,其值由乘数的最高位决定,即正数为0,负数为1。 若是两个无符号数相乘,则在两个16位乘数的最高位前面添加“0”,扩展为17位乘数后再进行乘运算。 若是有符号数与无符号数相乘,则有符号数在最高位前添加1个符号位,其值由最高位决定,而无符号数在最高位前面添加“0”,然后两个操作数相乘。 2018年12月9日 DSP原理及应用
由于乘法器在进行两个16位二进制补码相乘时会产生两个符号位,为提高运算精度,在状态寄存器ST1中设置了小数方式控制位FRCT。 18.12.9 第2章 TMS320C54x的硬件结构 (3)乘法器的操作 由于乘法器在进行两个16位二进制补码相乘时会产生两个符号位,为提高运算精度,在状态寄存器ST1中设置了小数方式控制位FRCT。 当FRCT=1时,乘法结果左移一位,消去多余的符号位,相应的定标值加1。 2018年12月9日 DSP原理及应用
在MAC单元中,专用加法器用来完成乘积项的累加运算。 18.12.9 第2章 TMS320C54x的硬件结构 2. 专用加法器 在MAC单元中,专用加法器用来完成乘积项的累加运算。 加法器 零检测器 舍入器 溢出/饱和逻辑电路 专用加法器 舍入器:用来对运算结果进行舍入处理,即将目标累加器中的内容加上215,然后将累加器的低16位清零。 2018年12月9日 DSP原理及应用
输出经零检测器、舍入器和溢出/饱和逻辑电路后,将产生的状态标志送入状态寄存器,并将运算结果送入累加器A或B。 18.12.9 第2章 TMS320C54x的硬件结构 2. 专用加法器 (1)加法器的输入 XA输入:来自乘法器的输出。 YA输入: ① 来自累加器A的操作数; ② 来自累加器B的操作数。 (2)加法器的输出 输出经零检测器、舍入器和溢出/饱和逻辑电路后,将产生的状态标志送入状态寄存器,并将运算结果送入累加器A或B。 2018年12月9日 DSP原理及应用
’C54x的比较、选择和存储单元(CSSU)是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.5 比较、选择和存储单元CSSU ’C54x的比较、选择和存储单元(CSSU)是一个特殊用途的硬件电路,专门用来完成Viterbi算法中的加法/比较/选择(ACS)操作。 MUX COMP TRN TC CCSU A B MSW/LSW 选择 EB15~EB0 来自桶形移位器 多路选择器MUX MUX MUX 比较电路COMP COMP COMP 状态转移寄存器TRN TRN TRN 状态比较寄存器TC TC TC 2018年12月9日 DSP原理及应用
CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。 工作过程: 18.12.9 第2章 TMS320C54x的硬件结构 2.4.5 比较、选择和存储单元CSSU CSSU单元主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。 工作过程: ① 比较电路COMP将累加器A或B的高阶位与低阶位进行比较; ② 比较结果分别送入TRN和TC中,记录比较结果以便程序调试; ③ 比较结果输出至写选择电路,选择较大的数据; ④ 将选择的数据通过总线EB存入指定的存储单元。 2018年12月9日 DSP原理及应用
2.4.5 比较、选择和存储单元CSSU 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.4.5 比较、选择和存储单元CSSU 例如,CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。 指令格式: CMPS A,*AR1 功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较, 若AH>AL,则AH→*AR1,TRN左移1位,0→TRN(0), 0→TC; 若AH<AL,则AL→*AR1,TRN左移1位,1→TRN(0), 1→TC。 2018年12月9日 DSP原理及应用
2.4.6 指数编码器EXP 功能:求累加器中数据的指数值。 指数值=冗余符号位-8 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.4.6 指数编码器EXP 指数编码器是一个用于支持指数运算指令的专用硬件,可以在单周期内执行EXP指令,求累加器中数的指数值。 指 数 编 码 器 EXP 累加器A 累加器B T寄存器 功能:求累加器中数据的指数值。 指数值=冗余符号位-8 2018年12月9日 DSP原理及应用
’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为: 18.12.9 第2章 TMS320C54x的硬件结构 2.4.7 CPU状态和控制寄存器 ’C54x提供三个16位寄存器来作为CPU状态和控制寄存器,它们分别为: 状态寄存器0(ST0) 状态寄存器1(ST1) 工作方式状态寄存器(PMST) ST0和ST1主要包含各种工作条件和工作方式的状态; PMST包含存储器的设置状态和其他控制信息。 2018年12月9日 DSP原理及应用
由于这些寄存器都是存储器映像寄存器,因此可以很方便地对它们进行如下数据操作: 18.12.9 第2章 TMS320C54x的硬件结构 2.4.7 CPU状态和控制寄存器 由于这些寄存器都是存储器映像寄存器,因此可以很方便地对它们进行如下数据操作: ● 将它们快速地存放到数据存储器; ● 由数据存储器对它们进行加载; ● 用子程序或中断服务程序保存和恢复 处理器的状态。 2018年12月9日 DSP原理及应用
主要反映处理器的寻址要求和计算机的运行状态。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.7 CPU状态和控制寄存器 1.状态寄存器0(ST0) 主要反映处理器的寻址要求和计算机的运行状态。 ST0的结构: 15 —13 12 11 10 9 8 —— 0 ST0: ARP TC C OVA OVB DP ARP ARP TC TC C C OVB OVA OVB OVA DP DP DP:数据存储器页指针。 用来与指令中提供的7位地址结合形成1个 16位数据存储器的地址。 C:进位标志位。 用来保存ALU加减运算时所产生的进/借位。 TC:测试/控制标志。 用来保存ALU测试操作的结果。 OVA/B:累加器A/B的溢出标志。 用来反映A/B是否产生溢出。 ARP:辅助寄存器指针。 用来选择使用单操作数间接寻址时的 辅助寄存器AR0~AR7。 2018年12月9日 DSP原理及应用
主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。 18.12.9 第2章 TMS320C54x的硬件结构 2.4.7 CPU状态和控制寄存器 2.状态寄存器1 (ST1) 主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。 15 14 13 12 11 10 9 8 7 6 5 4~0 BRAF CPL XF HM INTM OVM SXM C16 FRCT CMPT ASM BRAF BRAF CPL CPL XF XF HM HM INTM INTM OVM OVM SXM SXM C16 C16 FRCT FRCT CMPT CMPT ASM ASM HM:保持方式位;响应HOLD信号时,指示 CPU是否继续执行内部操作。 HM=0 CPU从内部程序存储器取指, 继续执行内部操作。 HM=1 CPU停止内部操作。 INTM:中断方式控制位; 用于屏蔽或开放所有可屏蔽中断。 INTN=0 开放全部可屏蔽中断; INTN=1 禁止所有可屏蔽中断。 0:保留位,未被使用,总是读为0。 SXM:符号位扩展方式控制位;用来确定数据 在运算之前是否需要符号位扩展。 SXM=0 数据进入ALU之前禁止符号位扩展; SXM=1 数据进入ALU之前进行符号位扩展。 OVM:溢出方式控制位; 用来确定累加器溢出时,对累加器的加载方式。 OVM=0 将运算的溢出结果直接加载到累加器中; OVM=1 当正溢出时,将007FFFFFFFH加载累加器; 当负溢出时,将FF80000000H加载累加器。 C16:双16位/双精度算术运算方式控制位; 用来决定ALU的算术运算方式。 C16=0 ALU工作在双精度算术运算方式; C16=1 ALU工作在双16位算术运算方式。 FRCT:小数方式控制位; 用来确定乘法器的运算方式。 FRCT=1 乘法器的输出左移一位, 消除多余的符号位。 BRAF:块重复操作标志位。 用来指示当前是否在执行块重复操作。 BRAF=0 表示当前不进行重复块操作; BRAF=1 表示当前正在进行块重复操作。 CPL:直接寻址编辑方式标志位; 用来指示直接寻址选用何种指针。 CPL=0 选用数据页指针DP的直接寻址; CPL=1 选用堆栈指针SP的直接寻址。 XF:外部XF引脚状态控制位。 用来控制XF通用外部输出引脚的状态。 执行SSBX XF=1 XF通用输出引脚为1; 执行RSBX XF=0 XF通用输出引脚为0。 CMPT:间接寻址辅助寄存器修正方式控制位; 用来决定ARP是否进行修正。 CMPT=0 在进行间接寻址单操作数时,不修正ARP; CMPT=1 在进行间接寻址单操作数时,修正ARP。 ASM:累加器移位方式控制位。 为某些具有移位操作的指令设定一个从-16~15范围内的移位值。 2018年12月9日 DSP原理及应用
2.4.7 CPU状态和控制寄存器 3.工作方式状态寄存器PMST 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.4.7 CPU状态和控制寄存器 3.工作方式状态寄存器PMST 主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。 SST SMUL CLKOFF DROM AVIS OVLY MP/MC IPTR 1 2 3 4 5 6 15~7 中 断 向 量 指 针 CPU 工 作 方 式 选 择 位 RAM 重 复 占 位 标 志 地 址 可 见 控 制 位 数 据 ROM 映 射 选 择 位 时 钟 输 出 选 择 位 乘 法 饱 和 方 式 位 存 储 饱 和 位 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 IPTR:用来指示中断向量所驻留的128字程序存储器的位置; 18.12.9 第2章 TMS320C54x的硬件结构 IPTR:用来指示中断向量所驻留的128字程序存储器的位置; MP/MC:用来确定是否允许使用片内程序存储器ROM OVLY:用来决定片内双寻址数据RAM是否映射到程序空间。 AVIS:用来决定是否可以从器件地址引脚线看到内部程序空间地址线; DROM:用来决定片内ROM是否可以映射到数据存储空间; CLKOFF:用来决定时钟输出引脚CLKOUT是否有信号输出; SMUL:用来决定乘法结果是否需要进行饱和处理; SST:用来决定累加器中的数据在存储到存储器之前,是否需要饱和处理。 2018年12月9日 DSP原理及应用
2.5 ’C54x的存储空间结构 ’C54x共有192K字的存储空间,分成3个相互独立可选择的存储空间: 18.12.9 第2章 TMS320C54x的硬件结构 2.5 ’C54x的存储空间结构 ’C54x共有192K字的存储空间,分成3个相互独立可选择的存储空间: 64K字(16位)的程序存储空间; 64K字(16位)的数据存储空间; 64K字(16位)的I/O空间。 程序存储空间:用来存放要执行的指令和指令执行中所需要的系数表(数学用表); 数据存储空间:用来存放执行指令所需要的数据; I/O存储空间:用来提供与外部存储器映射的接口,可以作为外部数据存储空间使用。 2018年12月9日 DSP原理及应用
2.5 ’C54x的存储空间结构 所有’C54x芯片都含有片内RAM和ROM。 SARAM —— 单寻址RAM 片内RAM DARAM 18.12.9 第2章 TMS320C54x的硬件结构 2.5 ’C54x的存储空间结构 所有’C54x芯片都含有片内RAM和ROM。 SARAM —— 单寻址RAM 片内RAM DARAM —— 双寻址RAM 片内ROM:主要存放固化程序和系数表。一般构成程序存储空间,也可以部分地映射在数据存储空间。 DARAM:由存储器内的一些分块组成。 每个DARAM块在单周期内能被访问2次。 DARAM和SARAM既可以被映射到数据存储空间用来存储数据,也可以映射到程序空间用来存储程序代码。 SARAM:由存储器分块组成。 每个SARAM块在单周期内只能被访问1次。 2018年12月9日 DSP原理及应用
2.5 ’C54x的存储空间结构 片内存储器的优点: ● 不需要插入等待状态; ● 与外部存储器相比,成本低; ● 比外部存储器功耗小。 18.12.9 第2章 TMS320C54x的硬件结构 2.5 ’C54x的存储空间结构 片内存储器的优点: ● 不需要插入等待状态; ● 与外部存储器相比,成本低; ● 比外部存储器功耗小。 2018年12月9日 DSP原理及应用
2.5 ’C54x的存储空间结构 第2章 TMS320C54x的硬件结构 ’C54x片内存储器资源配置 DSP 存储器 ’C541 18.12.9 第2章 TMS320C54x的硬件结构 2.5 ’C54x的存储空间结构 ’C54x片内存储器资源配置 DSP 存储器 ’C541 ’C542 ’C543 ’C545 ’C546 ’C548 ’C549 ’C5402 ’C5410 ’C5416 ’C5420 ROM 程 序 程序/数据 DARAM SARAM 28K 20K 8K 5K 2K 10K 2k 48K 32K 16K 6K 24K 4K 56K 64K 168K 2018年12月9日 DSP原理及应用
’C54x所有内部和外部程序存储器及内部和外部数据存储器分别统一编址。 内部RAM总是映射到数据存储空间,但也可映射到程序存储空间。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.1 存储空间结构 ’C54x所有内部和外部程序存储器及内部和外部数据存储器分别统一编址。 内部RAM总是映射到数据存储空间,但也可映射到程序存储空间。 ROM可以灵活地映射到程序存储空间,同时也可以部分地映射到数据存储空间。 存储空间的任何一种存储器都可以驻留在片内或片外。 2018年12月9日 DSP原理及应用
TMS320VC5402存储器配置结构 第2章 TMS320C54x的硬件结构 内部DARAM (16K×16位字) 暂存器 SPRAM 18.12.9 TMS320VC5402存储器配置结构 第2章 TMS320C54x的硬件结构 MP/MC=0 微计算机模式 外部存储器 MP/MC=1 微处理器模式 DROM控制的 数据存储空间 DROM=1 保留 DROM=0 外部存储器 FF00H FFFFH DROM=1 内部ROM F000H FEFFH 4000H EFFFH 内部DARAM (16K×16位字) 0080H 3FFFH 暂存器 SPRAM 0060H 007FH 存储器映像 寄存器 0000H 005FH 地址 地址 程序存储空间 地址 程序存储空间 地址 数据存储空间 0000H 007FH OVLY=1 保留 (0页) OVLY=0 外部存储器 0080H 3FFFH OVLY=1 内部DARAM 4000H EFFFH 外部存储器 F000H FEFFH 内部ROM FF00H FF7FH 保留 FF80H FFFFH 中断矢量表 (内部存储器) 0000H 007FH OVLY=1 保留 (0页) OVLY=0 外部存储器 0080H 3FFFH OVLY=1 内部DARAM 4000H 外部存储器 ƬÄÚROM FF7FH ±£Áô FF80H FFFFH 中断矢量表 (外部存储器) 0000H 005FH 0060H 007FH 存储器映像寄存器 暂存寄存器 0080H 3FFFH 内部DARAM (16K×16位) 4000H EFFFH 外部存储器 F000H FEFFH DROM=0 外部ROM DROM=1 内部ROM FF00H DROM=0 外部存储器 FFFFH DROM=1 保留 2018年12月9日 DSP原理及应用
程序存储空间用来存放要执行的指令和执行中所需的系数表。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.2 程序存储空间 程序存储空间用来存放要执行的指令和执行中所需的系数表。 ’C5402共有20条地址线,可寻址1M字的外部程序存储器。它的内部ROM和DARAM可通过软件映射到程序空间。当存储单元映射到程序空间时,CPU可自动地按程序存储器对它们进行寻址。 如果程序地址生成器(PAGEN)产生的地址处于外部存储器,CPU可自动地对外部存储器寻址。 2018年12月9日 DSP原理及应用
程序存储空间可通过PMST寄存器的MP/MC和OVLY控制位来设置内部存储器的映射地址。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.2 程序存储空间 1.程序存储空间的配置 程序存储空间可通过PMST寄存器的MP/MC和OVLY控制位来设置内部存储器的映射地址。 ● MP/MC控制位用来决定程序存储空间是否使用内部存储器。 当MP/ MC=0时,称为微计算机模式。 4000H~EFFFH程序存储空间定义为外部存储器; F000H~FEFFH程序存储空间定义为内部ROM; FF00H~FFFFH程序存储空间定义为内部存储器。 当MP/ MC=1时,称为微处理器模式。 4000H~FFFFH程序存储空间定义为外部存储器 。 2018年12月9日 DSP原理及应用
● OVLY控制位用来决定程序存储空间是否使用内部RAM。 18.12.9 第2章 TMS320C54x的硬件结构 1.程序存储空间的配置 ● OVLY控制位用来决定程序存储空间是否使用内部RAM。 当OVLY= 0时,程序存储空间不使用内部RAM。 0000H~3FFFH全部定义为外部程序存储空间,此时内部RAM只作为数据存储器使用。 当OVLY= 1时,程序存储空间使用内部RAM。内部RAM同时被映射到程序存储空间和数据存储空间。 0000H~007FH保留,程序无法占用; 0080H~3FFFH定义为内部DARAM。 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 微计算机模式: MP/ MC=0 OVLY=1 OVLY=0 0000H~007FH 保留 18.12.9 第2章 TMS320C54x的硬件结构 微计算机模式: MP/ MC=0 地址 程序存储空间 0000H~007FH 保留 OVLY=1 保留 0000H 007FH OVLY=0 外部存储器 0000H 007FH 0080H 3FFFH 4000H EFFFH 0000H 007FH OVLY=1 保留 OVLY=0 外部存储器 0080H 3FFFH OVLY=1 内部DARAM 4000H EFFFH 外部存储器 F000H FEFFH 内部ROM FF00H FF7FH 保留 FF80H FFFFH 中断矢量表 (内部存储器) 中断矢量表 (内部存储器) 保留 内部ROM 外部存储器 OVLY=1 内部DARAM OVLY=0 外部存储器 OVLY=1 保留 0080H~3FFFH 内部DARAM OVLY=1 内部DARAM 0080H 3FFFH 4000H~EFFFH 外部存储器 OVLY=1 F000H~FEFFH 内部ROM 外部存储器 4000H EFFFH FF00H~FF7FH 保留 内部 存储器 内部ROM F000H FEFFH 内部ROM F000H FEFFH FF80H~FFFFH 中断矢量表 0000H~EFFFH 外部存储器 保留 FF00H FF7FH 保留 FF00H FF7FH F000H~FEFFH 内部ROM OVLY=0 中断矢量表 (内部存储器) FF80H FFFFH 中断矢量表 (内部存储器) FF80H FFFFH FF00H~FF7FH 保留 内部 存储器 FF80H~FFFFH 中断矢量表 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 微处理器模式: MP/ MC=1 OVLY=1: 0000H~007FH 保留 18.12.9 第2章 TMS320C54x的硬件结构 微处理器模式: MP/ MC=1 地址 程序存储空间 0000H 007FH OVLY=1 保留 OVLY=0 外部存储器 0080H 3FFFH OVLY=1 内部DARAM 4000H 外部存储器 FF7FH FF80H FFFFH 中断矢量表 (外部存储器) OVLY=1: 外部存储器 4000H OVLY=1 保留OVLY=0 外部存储器 OVLY=0 外部存储器 0000H 007FH 0080H 3FFFH FF7FH OVLY=1 保留OVLY=0 外部存储器 OVLY=1 保留 0000H 007FH 中断矢量表 (外部存储器) 外部存储器 OVLY=1 内部SARAM OVLY=0 外部存储器 OVLY=1 内部DARAM OVLY=1 保留 0000H~007FH 保留 OVLY=1 内部DARAM 0080H 3FFFH 0080H~3FFFH 内部DARAM 4000H~FF7FH 外部存储器 外部存储器 4000H FF7FH FF80H~FFFFH 中断矢量表 OVLY=0: 0000H~FF7FH 外部存储器 中断矢量表 (外部存储器) FF80H FFFFH 中断矢量表 (外部存储器) FF80H FFFFH FF80H~FFFFH 中断矢量表 2018年12月9日 DSP原理及应用
在’C54x系列芯片中,有些芯片采用分页扩展的方法,使程序存储空间可扩展到1M~8M。 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 在’C54x系列芯片中,有些芯片采用分页扩展的方法,使程序存储空间可扩展到1M~8M。 如:’C5409和’C5416可扩展到8M。 ’C5402有20条外部程序地址总线,其程序 空间只能扩展到1M。 2018年12月9日 DSP原理及应用
① 有20或23条外部程序地址线,可寻址1M或8M存储空间; 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 分页扩展技术的特点: ① 有20或23条外部程序地址线,可寻址1M或8M存储空间; ② 有1个额外的存储器映像寄存器—程序计数器扩展寄存器XPC; ③ 有6条寻址扩展程序空间的指令,用于寻址扩展程序空间。 2018年12月9日 DSP原理及应用
2.程序存储空间的分页扩展 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 当OVLY=0时,内部RAM不允许映射到程序空间,程序空间分成128页,每页64K。 XPC=127 XPC=1 XPC=0 Page127 64K 7F 0000H … 7F FFFFH 02 0000H 02 FFFFH Page1 01 0000H 01 FFFFH Page0 00 0000H 00 FFFFH XPC=2 Page2 2018年12月9日 DSP原理及应用
当OVLY=1时,片内RAM允许映射到程序空间,程序存储器的每一页都由两部分组成:32K字的公共块和32K字的专用块。 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 当OVLY=1时,片内RAM允许映射到程序空间,程序存储器的每一页都由两部分组成:32K字的公共块和32K字的专用块。 公共块可由所有页共享; 专用块只能按指定的页号寻址。 当MP/MC=0时,片内ROM只能允许安排在第0页的程序空间,不能映射到其它页。 2018年12月9日 DSP原理及应用
2.程序存储空间的分页扩展 公共块:由所有页共享 第2章 TMS320C54x的硬件结构 XPC=XX … XPC=0 XPC=1 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 公共块:由所有页共享 专用块:按指定的页号寻址 XX 0000H XX 7FFFH Page0 32K (片内RAM) XPC=XX 00 8000H 00 FFFFH Page0 32K 01 8000H 01 FFFFH Page1 02 8000H 02 FFFFH 7F 8000H … 7F FFFFH Page127 XPC=0 XPC=1 XPC=2 XPC=127 2018年12月9日 DSP原理及应用
’C5402共有20条外部程序地址总线,可寻址程序存储空间为1M。整个程序存储空间分成16页,每页共计64K字。 18.12.9 第2章 TMS320C54x的硬件结构 扩展程序存储器的页号由XPC寄存器设定,XPC映射到数据存储器的001EH单元。硬件复位时,XPC被置0。 2.程序存储空间的分页扩展 ’C5402共有20条外部程序地址总线,可寻址程序存储空间为1M。整个程序存储空间分成16页,每页共计64K字。 TMS320VC5402扩展程序存储空间结构图 第0页 64K字 0 0000H 0 FFFFH XPC = 0 第1页 低32K字 (片外) 1 7FFFH 第1页 64K字 1 0000H 1 FFFFH XPC = 1 第15页 64K字 F 0000H F FFFFH XPC = 15 第15页 低32K字 (片外) F 7FFFH … 第1页 高32K字 (片外) 1 8000H 第15页 高32K字 (片外) F 8000H 2018年12月9日 DSP原理及应用
② FBACC[D]——长跳转到累加器A或B所 指定的位置; ③ FCALA[D]——长调用累加器A或B所指 定的位置; 18.12.9 第2章 TMS320C54x的硬件结构 2.程序存储空间的分页扩展 为了便于软件进行页切换,设置了6条影响XPC的专用指令: ① FB[D]——长跳转指令; ② FBACC[D]——长跳转到累加器A或B所 指定的位置; ③ FCALA[D]——长调用累加器A或B所指 定的位置; ④ FCALL[D]——长调用指令; ⑤ FRET[D]——长返回; ⑥ FRETE[D]——带中断使能的长返回指令。 2018年12月9日 DSP原理及应用
当MP/MC=0,4K字的ROM被映射到程序空间的地址范围为F000H~FFFFH。 18.12.9 第2章 TMS320C54x的硬件结构 3.内部ROM ’C5402共有4K字的内部ROM。 当MP/MC=0,4K字的ROM被映射到程序空间的地址范围为F000H~FFFFH。 F000H~F7FFH:用户专用程序,由TI公司固化; F800H~FFFFH:TI公司定义。 2018年12月9日 DSP原理及应用
从串行口、外部存储器、I/O口、主机接口进行自动加载引导程序。 ● 引导程序。 F800H~ FBFFH FC00H~FCFFH 18.12.9 第2章 TMS320C54x的硬件结构 3.内部ROM TI公司定义的内容: 引导程序 μ律扩展表 A律扩展表 sin函数表 保留 中断向量表 F800H F900H FA00H FB00H FC00H FD00H FE00H FF00H FF80H 从串行口、外部存储器、I/O口、主机接口进行自动加载引导程序。 ● 引导程序。 F800H~ FBFFH FC00H~FCFFH FD00H~FDFFH FE00H~FEFFH FF00H~FF7FH FF80H~FFFFH ● 256字μ律扩展表。 ● 256字A律扩展表。 ● 256字正弦函数值查找表。 ● 保留 ● 中断向量表。 2018年12月9日 DSP原理及应用
用来存放执行指令所使用的数据,包括需要处理的数据或数据处理的中间结果。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.3 数据存储空间 1.数据存储空间的配置 用来存放执行指令所使用的数据,包括需要处理的数据或数据处理的中间结果。 ’C54x的数据存储空间由内部和外部存储器构成,共有64K字,采用内部和外部存储器统一编址。 DROM=0: 0000H~3FFFH——内部RAM; 4000H~FFFFH——外部存储器; DROM=1: 0000H~3FFFH——内部RAM; 4000H~EFFFH——外部存储器; F000H~FEFFH——片内ROM; FF00H~FFFFH——保留。 2018年12月9日 DSP原理及应用
当CPU发生的数据地址处于内部存储器的范围内时,直接对内部数据存储器寻址。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.3 数据存储空间 1.数据存储空间的配置 当CPU发生的数据地址处于内部存储器的范围内时,直接对内部数据存储器寻址。 当CPU发生的数据地址不在内部存储器的范围内时,CPU自动对外部数据存储器寻址。 2018年12月9日 DSP原理及应用
’C54x的内部数据存储器由SARAM、DARAM和内部ROM组成。 18.12.9 第2章 TMS320C54x的硬件结构 1.数据存储空间的配置 ’C54x的内部数据存储器由SARAM、DARAM和内部ROM组成。 ’C54x片内数据存储器容量 器 件 ROM DARAM SARAM ’C541 8K 5K — ’C542 10K ’C543 ’C545 16K 6K ’C546 ’C548 24K ’C549 ’C5402 4K ’C5410 56K ’C5420 32K 168K 当DROM=0时,内部ROM不映射到数据空间; 当DROM=1时,部分内部ROM映射到数据存储空间。 2018年12月9日 DSP原理及应用
’C5402数据存储空间结构 第2章 TMS320C54x的硬件结构 0080H~3FFFH 内部DARAM 18.12.9 第2章 TMS320C54x的硬件结构 ’C5402数据存储空间结构 DROM=1 保留 DROM=0 外部存储器 FF00H FFFFH DROM=1 内部ROM F000H FEFFH 外部存储器 4000H EFFFH 内部DARAM (16K字) 0080H 3FFFH 暂存器 SPRAM 0060H 007FH 存储器映像 寄存器 0000H 005FH 数据存储空间 地址 0000H~0050H 存储器映像寄存器 存储器映像 寄存器 暂存器 SPRAM 内部DARAM (16K字) 外部存储器 DROM=1 保留 DROM=0 外部存储器 DROM=1 内部ROM 外部存储器 内部DARAM (16K字) 暂存器 SPRAM 存储器映像 寄存器 存储器映像 寄存器 0060H~007FH 暂存器SPRAM 暂存器 SPRAM 0080H~3FFFH 内部DARAM 内部DARAM (16K字) 4000H~EFFFH 外部存储器 外部存储器 DROM=1 使用内部ROM F000H~FEFFH 内部ROM DROM=1 内部ROM DROM=1 保留 DROM=1 内部ROM FF00H~FFFFH 保留 DROM=1 保留 DROM=0 不使用内部ROM F000H~FEFFH 外部存储器 2018年12月9日 DSP原理及应用
存储器映像的CPU寄存器,特殊功能寄存器 18.12.9 第2章 TMS320C54x的硬件结构 存储器映像的CPU寄存器,特殊功能寄存器 存储器映像的外设寄存器 内部RAM前1K的配置: 0000~001FH: 0380H~03FFH 0300H~037FH 0280H~02FFH 0200H~027FH 0180H~01FFH 0100H~017FH 0080H~00FFH 0060H~007FH 0200H~005FH 0000H~001FH 存储器映像的CPU寄存器 特殊功能寄存器 存储器映像的外设寄存器 0020~005FH: 暂存器SPRAM(DP=0) 外设寄存器 DARAM(DP=7) DARAM(DP=6) DARAM(DP=5) DARAM(DP=4) DARAM(DP=3) DARAM(DP=2) DARAM(DP=1) 0060~007FH: 暂存寄存器 暂存寄存器SPRAM 0080~03FFH: 7个DARAM数据块。 2018年12月9日 DSP原理及应用
为了便于CPU的并行操作,提高芯片的高速处理能力,从0080H开始,按每80H(128)个存储单元为一个块,将DARAM分成若干个数据块。 18.12.9 第2章 TMS320C54x的硬件结构 1.数据存储空间的配置 为了便于CPU的并行操作,提高芯片的高速处理能力,从0080H开始,按每80H(128)个存储单元为一个块,将DARAM分成若干个数据块。 分块以后,用户可以在同一个周期内从同一块DARAM中取出两个操作数,并将数据写入到另一块DARAM中。 2018年12月9日 DSP原理及应用
数据存储器可以驻留在内部或映射到外部RAM中。 当处理器发出的数据地址处于内部数据存储空间范围内时,可直接对内部数据存储器寻址。 18.12.9 第2章 TMS320C54x的硬件结构 1.数据存储空间的配置 数据存储器可以驻留在内部或映射到外部RAM中。 当处理器发出的数据地址处于内部数据存储空间范围内时,可直接对内部数据存储器寻址。 当数据存储器地址产生器(DAGEN)发出的地址不在内部数据存储空间范围内,处理器就会自动地对外部数据存储器寻址。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.存储器映像寄存器 在’C54x的数据存储空间中,前80H个单元(数据页0)包含有的CPU寄存器、片内外设寄存器和暂存器。这些寄存器全部映射到数据存储空间,称作存储器映像寄存器MMR。 存储器映像寄存器MMR: ① CPU寄存器——特殊功能寄存器; ② 片内外设寄存器; ③ 暂存器SPRAM。 2018年12月9日 DSP原理及应用
外设寄存器 暂存器SPRAM 2.存储器映像寄存器 功能:主要用于程序的运算处理和寻址方式的选 18.12.9 第2章 TMS320C54x的硬件结构 2.存储器映像寄存器 特殊功能寄存器 功能:主要用于程序的运算处理和寻址方式的选 择和设定。地址范围:0000H~001FH。 外设寄存器 功能:用来控制片内外设电路的状态和存放数据。 地址范围:0020H~005FH。 ’C5402的CPU寄存器共有27个,CPU访问这些寄存器时,不需要插入等待时间。 包括串行口通信控制寄存器组、定时器定时控制寄存器组、时钟周期设定寄存器组等。 暂存器SPRAM 功能:用来暂存变量。地址范围:0060H~007FH。 2018年12月9日 DSP原理及应用
特殊功能寄存器 第2章 TMS320C54x的硬件结构 地址 符号 寄存器名称 00H IMR 中断屏蔽寄存器 10H AR0 辅助寄存器0 18.12.9 特殊功能寄存器 第2章 TMS320C54x的硬件结构 地址 符号 寄存器名称 00H IMR 中断屏蔽寄存器 10H AR0 辅助寄存器0 01H IFR 中断标志寄存器 11H AR1 辅助寄存器1 02H 保留 ( 用于测试 ) 12H AR2 辅助寄存器2 03H 13H AR3 辅助寄存器3 04H 14H AR4 辅助寄存器4 05H 15H AR5 辅助寄存器5 06H ST0 状态寄存器0 16H AR6 辅助寄存器6 07H ST1 状态寄存器1 17H AR7 辅助寄存器7 08H AL 累加器A低字(15~0位) 18H SP 堆栈指针 09H AH 累加器A高字(31~16位) 19H BK 循环缓冲区长度寄存器 0AH AG 累加器A保护位(39~32位) 1AH BRC 块重复计数器 0BH BL 累加器B低字(15~0位) 1BH RSA 块重复起始地址寄存器 0CH BH 累加器B高字(31~16位) 1CH REA 块重复结束地址寄存器 0DH BG 累加器B保护位(39~32位) 1DH PMST 处理器模式状态寄存器 0EH T 暂存寄存器 1EH XPC 程序计数器扩展寄存器 0FH TRN 状态转移寄存器 1FH 保留 2018年12月9日 DSP原理及应用
不同型号的芯片具有不同的片内外设寄存器。 18.12.9 ’C549片内外设寄存器 第2章 TMS320C54x的硬件结构 地址 符号 寄存器名称 20H BDRR0 缓冲串行口0数据接收寄存器 35H TRAD TDM串行口接收地址寄存器 21H BDXR0 缓冲串行口0数据发送寄存器 36~37H 保留 22H BSPC0 缓冲串行口0控制寄存器 38H AXR0 ABU0发送地址寄存器 23H BSPCE0 缓冲串行口0控制扩展寄存器 39H BKX0 ABU0发送缓冲范围寄存器 24H TIM 定时设定寄存器 3AH ARR0 ABU0接收地址寄存器 25H PRD 定时周期寄存器 3BH BKR0 ABU0接收缓冲范围寄存器 26H TCR 定时控制寄存器 3CH AXR1 ABU1发送地址寄存器 27H 3DH BKX1 ABU1发送缓冲范围寄存器 28H SWWSR 软件等待状态寄存器 3EH ARR1 ABU1接收地址寄存器 29H BSCR 多路开关控制寄存器 3FH BKR1 ABU1接收缓冲范围寄存器 2A~2BH 40H BDRR1 缓冲串行口1数据接收寄存器 2CH HPIC 主机口(HPI)控制寄存器 41H BDXR1 缓冲串行口1数据发送寄存器 2D~2FH 42H BSPC1 缓冲串行口1控制寄存器 30H TRCV TDM串行口数据接收寄存器 43H BSPCE1 缓冲串行口1控制扩展寄存器 31H TDXR TDM串行口数据发送寄存器 44~57H 32H TSPC TDM串行口控制寄存器 58H CLKMD 时钟模式寄存器 33H TCSR TDM串行口通道选择寄存器 59~5FH 34H TRTA TDM串行口接收发送寄存器 2.存储器映像寄存器 片内外设寄存器存在于一个专用的外设总线结构中,它可以发送数据至外设总线或者从外设中接收数据。设置或清除寄存器的控制位可以激活、屏蔽或者重新配置外设状态。 不同型号的芯片具有不同的片内外设寄存器。 2018年12月9日 DSP原理及应用
’C54x除了程序和数据存储空间外,还提供了一个具有64K字的I/O空间。 18.12.9 第2章 TMS320C54x的硬件结构 2.5.4 I/O空间 ’C54x除了程序和数据存储空间外,还提供了一个具有64K字的I/O空间。 主要用于对片外设备的访问。可以使用输入指令PORTR和输出指令PORTW对I/O空间寻址。 在对I/O空间访问时,除了使用数据总线和地址总线外,还要用到IOTRB、IS和I/W控制线。 IOTRB和IS :用于选通I/O空间; I/W:用于控制访问方向。 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 ’C54x器件除了提供哈佛结构的总线、功能强大的CPU以及大容量的存储空间外,还提供了必要的片内外部设备。 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 ’C54x器件除了提供哈佛结构的总线、功能强大的CPU以及大容量的存储空间外,还提供了必要的片内外部设备。 不同型号的’C54x芯片,所配置的片内外设有所不同,这些片内外设主要包括: ① 通用I/O引脚 ② 定时器 ③ 时钟发生器 ④ 主机接口HPI ⑤ 串行通信接口 ⑥ 软件可编程等待 状态发生器 ⑦ 可编程分区转换逻辑 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 1.通用I/O引脚 ’C54x芯片为用户提供了两个通用的I/O引脚。 分支转移控制输入引脚BIO 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 1.通用I/O引脚 ’C54x芯片为用户提供了两个通用的I/O引脚。 分支转移控制输入引脚BIO 外部标志输出引脚XF BIO:用来监控外部设备的运行状态。 在实时控制系统中,通过查询此引脚控制 程序流向,以避免中断引起的失控现象。 XF:用于程序向外设传输标志信息。 通过此引脚的置位或复位,可以控制外设 的工作。 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 2.定时器 ’C54x的定时器是一个带有4位预分频器的16位可软件编程减法计数器。 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 2.定时器 ’C54x的定时器是一个带有4位预分频器的16位可软件编程减法计数器。 这个减法计数器每来1个时钟周期自动减1,当计数器减到0时产生定时中断。 通过编程设置特定的状态可使定时器停止、恢复运行、复位或禁止。 2018年12月9日 DSP原理及应用
2.定时器 定时设定寄存器TIM 定时周期寄存器PRD 定时控制寄存器TCR 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 2.定时器 ’C54x的定时器主要包括3个存储器映像寄存器: ● 定时设定寄存器TIM 它是一个16位减法计数器,映射到数据存储空间的0024H单元。复位或定时器中断(TINT)时,TIM内装入PRD寄存器的值(定时时间),并进行自动减1操作。 定时设定寄存器TIM 定时周期寄存器PRD 定时控制寄存器TCR ● 定时周期寄存器PRD 16位的存储器映像寄存器,位于数据存储空间的0025H单元,用来存放定时时间常数。每次复位或TINT中断时,将定时时间装入TIM寄存器。 2018年12月9日 DSP原理及应用
2.定时器 第2章 TMS320C54x的硬件结构 ● 定时控制寄存器TCR 18.12.9 第2章 TMS320C54x的硬件结构 2.定时器 ● 定时控制寄存器TCR 16位的存储器映像寄存器,位于数据存储空间的0026H单元,用来存储定时器的控制位和状态位,包括定时器分频系数TDDR、预标定计数器PSC、控制位TRB和TSS等。 定时中断的周期: CLKOUT×(TDDR+1)×(PRD+1) 时钟周期 分频系数 时钟周期 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 3.时钟发生器 主要用来为CPU提供时钟信号,由内部振荡器和锁相环(PLL)电路两部分组成。可通过内部的晶振或外部的时钟源驱动。 锁相环电路具有频率放大和信号提纯的功能,利用PLL的特性,可以锁定时钟发生器的振荡频率,为系统提供高稳定的时钟频率。 锁相环能使时钟源乘上一个特定的系数,得到一个比内部CPU时钟频率低的时钟源。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 4.主机接口HPI 主机接口HPI是’C54x芯片具有的一种8位或16位的并行接口部件,主要用于DSP与其他总线或主处理机进行通信。 HPI接口通过HPI控制寄存器(HPIC)、地址寄存器(HPIA)、数据锁存器(HPID)和HPI内存块实现与主机通信。 2018年12月9日 DSP原理及应用
4.主机接口HPI 主要特点: 第2章 TMS320C54x的硬件结构 ① 接口所需要的外部硬件少; 18.12.9 第2章 TMS320C54x的硬件结构 4.主机接口HPI 主要特点: ① 接口所需要的外部硬件少; ② HPI单元允许芯片直接利用一个或两个数据选通信号; ③ 有一个独立或复用的地址总线; ④ 一个独立或复用的数据总线与微控制单元MCU连接; ⑤ 主机和DSP可独立地对HPI接口操作; ⑥ 主机和DSP握手可通过中断方式来完成; ⑦ 主机可以通过HPI直接访问CPU的存储空间,包括存 储器映像寄存器。 ⑧ 主机还可以通过HPI接口装载DSP的应用程序、接收 DSP运行结果或诊断DSP运行状态。 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 5.串行通信接口 ’C54x内部具有功能很强的高速、全双工串行通信接口,可以和其他串行器件直接接口。 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 5.串行通信接口 ’C54x内部具有功能很强的高速、全双工串行通信接口,可以和其他串行器件直接接口。 四种串行口: 标准同步串行口SP 缓冲同步串行口BSP 时分多路串行口TDM 多路缓冲串行口 McBSP 2018年12月9日 DSP原理及应用
’C54x串行口的配置 第2章 TMS320C54x的硬件结构 芯片型号 SP BSP McBSP TMD ’C541 2 ’C549 1 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x串行口的配置 芯片型号 SP BSP McBSP TMD ’C541 2 ’C549 1 ’C542 ’C5402 ’C543 ’C5409 3 ’C545 ’C5410 ’C546 ’C5416 ’C548 ’C5420 6 2018年12月9日 DSP原理及应用
5.串行通信接口 第2章 TMS320C54x的硬件结构 (1)标准同步串行口SP 18.12.9 第2章 TMS320C54x的硬件结构 5.串行通信接口 (1)标准同步串行口SP SP是一个高速、全双工、双缓冲的串行口,提供了与编码器、A/D转换器等串行设备之间的通信,可实现数据的同步发送和接收,能完成8位字节或16位字的串行通信。 每个串行口都含有发送数据寄存器DXR、发送移位寄存器XSR、接收数据寄存器DRR和接收移位寄存器RSR,并能以1/4机器周期频率工作。 在进行数据的接收和发送时,串行口能产生可屏蔽的收、发中断(RINT和XINT),通过软件来管理数据的接收和发送。整个过程由串行口控制寄存器SPC控制。 2018年12月9日 DSP原理及应用
5.串行通信接口 第2章 TMS320C54x的硬件结构 (2)缓冲同步串行口BSP 18.12.9 第2章 TMS320C54x的硬件结构 5.串行通信接口 (2)缓冲同步串行口BSP BSP是一种增强型同步串行口,它是在同步串行口的基础上增加了一个自动缓冲单元ABU。 ABU的功能:利用专用总线,控制串行口直接与’C54x的内部存储器进行数据交换。 工作方式:非缓冲模式和自动缓冲模式。 非缓冲模式:即标准模式,与SP相同。 自动缓冲模式:在ABU的控制下,串行口直接与C54x的内部存储器进行16位数据块传输。当传输的数据长度是数据块长度的一半或整个长度时,产生中断。 这两种工作模式都提供了包括可编程控制的串口时钟、帧同步信号、可选择时钟和帧同步信号的正负极性等增强功能,能以每帧8位、10位、12位和16位传输数据,最大操作频率为CLKOUT。 2018年12月9日 DSP原理及应用
5.串行通信接口 第2章 TMS320C54x的硬件结构 (3)时分多路串行口TDM 18.12.9 第2章 TMS320C54x的硬件结构 5.串行通信接口 (3)时分多路串行口TDM TDM是一个允许数据时分多路的同步串行接口。既能工作在同步方式,也能工作在TDM方式。 TDM可以与外部多个应用接口实现方便灵活的数据交换,最多可与8个外部器件接口通信,这种接口在多处理器应用中得到了广泛的使用。 工作方式:非TDM模式和TDM模式。 非TDM模式:称为标准方式,与SP相同。 TDM模式:是将与多个不同器件的通讯按时间依次划分成若干个时间段 (信道),TDM周期地按时间顺序与不同的信道设备进行串行通信。 2018年12月9日 DSP原理及应用
5.串行通信接口 第2章 TMS320C54x的硬件结构 (4)多路缓冲串行口McBSP 18.12.9 第2章 TMS320C54x的硬件结构 5.串行通信接口 (4)多路缓冲串行口McBSP McBSP是一个高速、全双工、多通道缓冲串行接口,可直接与其他’C54x、编码器以及系统中的其他串口器件通信。 McBSP提供了全双工通信、连续数据流的双缓冲数据寄存器、接收和发送独立的帧和时钟信号,可以直接与T1/E1帧接口。 McBSP在外部通道选择电路的控制下,采用分时的方式实现多通道串行通信,与以前的串行口相比,具有很大的灵活性。 2018年12月9日 DSP原理及应用
5.串行通信接口 第2章 TMS320C54x的硬件结构 McBSP的主要特点: ① 串行口的接收、发送时钟既可由外部设备提供,又可由 18.12.9 第2章 TMS320C54x的硬件结构 5.串行通信接口 McBSP的主要特点: ① 串行口的接收、发送时钟既可由外部设备提供,又可由 内部时钟提供; ② 帧同步信号和时钟信号的极性可编程; ③ 信号的发送和接收既可单独运行,也可结合在一起配合 工作; ④ McBSP的串行口可由CPU控制运行,也可以脱离CPU 通过直接内存的读取操作来单独运行; ⑤ 具有多通道通信能力,可达128个通道; ⑥ 数据的宽度可在8、12、16、20、24和32位中选择,并 可对数据进行A律和律压缩和扩展。 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 6.软件可编程等待状态发生器 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 6.软件可编程等待状态发生器 功能:通过软件设置,完成外部总线周期的扩展,从而方便地实现’C54x芯片与慢速的外部存储器和I/O设备的接口。 在访问外部存储器时,软件等待状态寄存器(SWWSR)可为每32K字的程序、数据存储单元块和64K字的I/O空间确定0~14个等待状态。 2018年12月9日 DSP原理及应用
2.6 ’C54x的片内外设电路 第2章 TMS320C54x的硬件结构 7.可编程分区转换逻辑 18.12.9 第2章 TMS320C54x的硬件结构 2.6 ’C54x的片内外设电路 7.可编程分区转换逻辑 可编程分区转换逻辑也称为可编程存储器转换逻辑。 当访问过程跨越程序或数据存储器边界时,可编程分区转换逻辑会自动插入一个周期。 当存储过程由程序存储器转向数据存储器时,也会插入一个周期。 附加周期可以使存储器在其他器件驱动总线之前允许存储器释放总线,以避免总线竞争。 转换的存储块的大小由存储器转换寄存器(BSCR)确定。 2018年12月9日 DSP原理及应用
分区转换逻辑自动插入等待周期的几种情况: ① 一次程序存储器读操作之后,紧跟着不同存储器分区 的另一次程序存储器读或数据存储器读操作; 18.12.9 第2章 TMS320C54x的硬件结构 7.可编程分区转换逻辑 分区转换逻辑自动插入等待周期的几种情况: ① 一次程序存储器读操作之后,紧跟着不同存储器分区 的另一次程序存储器读或数据存储器读操作; ② 当PS—DS位置1时,一次程序存储器读操作之后,紧 跟着一次数据存储器读操作; ③ 对于’C548或’C549,一次程序存储器读操作之后,紧 跟着对不同页进行另一次程序存储器读操作; ④ 一次数据存储器读操作之后,紧跟着对一个不同的存 储器分区进行另一次程序存储器或数据存储器读操作; ⑤ 当PS—DS位置1时,一次数据存储器读操作之后,紧 跟着一次程序存储器读操作。 2018年12月9日 DSP原理及应用
2.7 ’C54x的系统控制 ’C54x芯片的系统控制: 程序计数器PC 硬件堆栈 PC相关的硬件 外部复位信号 中断 18.12.9 第2章 TMS320C54x的硬件结构 2.7 ’C54x的系统控制 ’C54x芯片的系统控制: 程序计数器PC 硬件堆栈 PC相关的硬件 外部复位信号 中断 状态寄存器 循环计数器 2018年12月9日 DSP原理及应用
2.7 ’C54x的系统控制 2.7.1 程序地址的产生 ’C54x的程序存储器用来存放应用程序的代码、系数表和立即数。 CPU取指操作时: 18.12.9 第2章 TMS320C54x的硬件结构 2.7 ’C54x的系统控制 2.7.1 程序地址的产生 ’C54x的程序存储器用来存放应用程序的代码、系数表和立即数。 CPU取指操作时: 首先,由程序地址生成器(PAGEN)产生地址; 然后,将地址加载到程序地址总线PAB; 最后,PAB寻址存放程序存储器中的指令、系数表和立即数。 2018年12月9日 DSP原理及应用
2.7.1 程序地址的产生 1.程序存储器地址生成器PAGEN PAGEN的组成: 程序计数器PC 重复计数器RC 块重复计数器BRC 18.12.9 第2章 TMS320C54x的硬件结构 2.7.1 程序地址的产生 PAGEN的组成框图 1.程序存储器地址生成器PAGEN 程序地址生成器PAGEN 重复操作寄存器 程序计数器PC 重复计数器RC 块重复计数器BRC 块重复起始地址 寄存器RSA 块重复结束地址 寄存器REA PAGEN的组成: 程序计数器PC 重复计数器RC 块重复计数器BRC 块重复起始地址寄存器RSA 块重复结束地址寄存器REA 1AH 1BH 存储器 映像寄存器 1CH 2018年12月9日 DSP原理及应用
程序计数器是一个16位计数器,用来保存某个内部或外部程序存储器的地址。 对PC加载的方法: 18.12.9 第2章 TMS320C54x的硬件结构 2.7.1 程序地址的产生 2.程序计数器PC 程序计数器是一个16位计数器,用来保存某个内部或外部程序存储器的地址。 对PC加载的方法: ● 当进行复位操作时,将地址FF80H加载PC; ● 当程序是顺序执行时,则PC被增量加载,即PC=PC+1; ● 当分支转移发生时,用紧跟在分支转移指后面的16位立即数加载PC; ● 当执行块重复指令时,若PC+1等于块重复结束地址REA+1,则将块重复起始地址RSA加载PC; 2018年12月9日 DSP原理及应用
● 当执行子程序调用时,将PC+2的值压入堆栈,然后将调用指令下一个长立即数加载至PC; 18.12.9 第2章 TMS320C54x的硬件结构 2.程序计数器PC 对PC加载的方法: ● 当执行子程序调用时,将PC+2的值压入堆栈,然后将调用指令下一个长立即数加载至PC; ● 当执行返回指令时,将压入堆栈的值从栈顶取出,加载到PC,回到原来的程序处继续执行; ● 当进行硬件中断或软件中断时,将PC值压入堆栈,并将适当的中断向量地址加载PC; ● 当执行中断返回时,将压入堆栈的值从栈顶取出,加载到PC,继续执行被中断了的程序。 2018年12月9日 DSP原理及应用
流水线操作是指各条指令以机器周期为单位,相差一个时间周期而连续并行工作的情况。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.2 流水线操作 流水线操作是指各条指令以机器周期为单位,相差一个时间周期而连续并行工作的情况。 操作原理:将指令分成几个子操作,每个子操作由不同的操作阶段完成。每隔一个机器周期,每个操作阶段可以进入一条新指令。在同一个机器周期内,在不同的操作阶段可以处理多条指令,相当于并行执行了多条指令。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.7.2 流水线操作 1. 流水线操作的概念 ’C54x的流水线操作是由6个操作阶段或操作周期组成。在任何一个机器周期内,可以有1 ~ 6条不同的指令在同时工作,每条指令可在不同的周期内工作在不同的操作阶段。 2018年12月9日 DSP原理及应用
1. 流水线操作的概念 六个操作阶段: ① 预取指P; ② 取指F; ③ 译码D; ④ 寻址A; ⑤ 读数R; ⑥ 执行X。 流水线结构: 18.12.9 第2章 TMS320C54x的硬件结构 1. 流水线操作的概念 六个操作阶段: ① 预取指P; ② 取指F; ③ 译码D; ④ 寻址A; ⑤ 读数R; ⑥ 执行X。 流水线结构: 预取指P 取指F 译码D 寻址A 读数R 执行X 将PC中的内容加载PAB 将读取到的指令字加载PB 将PB的内容加载IR 对IR的内容译码 若需要,数据1读地址加载DAB 若需要,数据2读地址加载CAB 修正辅助寄存器和堆栈指针 数据1加载DB 数据2加载CB 若需要,数据3写地址加载EAB 执行指令 写数据加载EB 2018年12月9日 DSP原理及应用
在T1机器周期内,CPU将PC中的内容加载到程序地址总线PAB,找到指令代码的存储单元。 预取指P: 18.12.9 第2章 TMS320C54x的硬件结构 1. 流水线操作的概念 各操作阶段的功能: 在T1机器周期内,CPU将PC中的内容加载到程序地址总线PAB,找到指令代码的存储单元。 预取指P: 在T2机器周期内,CPU从选中的程序存储单元中,读取指令代码加载到程序总线PB 。 取 指 F: 译 码 D: 在T3机器周期内, CPU将PB中的指令代码加载到指令译码器IR进行译码,产生执行指令所需要的一系列控制信号。 2018年12月9日 DSP原理及应用
在T4周期内,CPU将数据1或数据2的读地址或同时将两个读地址分别加载到数据地址总线DAB和CAB中,并对辅助寄存器或堆栈指针进行修正。 18.12.9 第2章 TMS320C54x的硬件结构 各操作阶段的功能: 寻址A: 在T4周期内,CPU将数据1或数据2的读地址或同时将两个读地址分别加载到数据地址总线DAB和CAB中,并对辅助寄存器或堆栈指针进行修正。 读数R: CPU在T5周期内,将读出的数据1和数据2分别加载到数据总线DB和CB中。若是并行操作指令,可同时将数据3的写地址加载到数据地址总线EAB中。 执行X: 在T6机器周期内,CPU根据操作码的要求执行指令,并将写数据3通过EB总线写入指定的存储单元中。 2018年12月9日 DSP原理及应用
例如:LD *AR1,A ;单周期指令,读单操作数 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: ① 执行读单操作数指令 例如:LD *AR1,A ;单周期指令,读单操作数 通过DB 读出数据 读地址 加载DAB 通过IR 指令译码 通过PB 读取指令 加载 PAB 执行/写数 读数R 寻址A 译码D 取指F 预取指P 2018年12月9日 DSP原理及应用
例如:MAC *AR2+,*AR3,A ;单周期指令, 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: ② 执行读双操作数指令 例如:MAC *AR2+,*AR3,A ;单周期指令, 读双操作数 通过 DB和CB 读出数据 读地址 加载DAB 和CAB 通过IR 指令译码 通过PB 读取指令 加载 PAB 执行/写数 读数R 寻址A 译码D 取指F 预取指P 2018年12月9日 DSP原理及应用
’C54x存储器操作的各种情况: ③ 执行写单操作数指令 例如:STH A,*AR1 ;单周期指令, 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: ③ 执行写单操作数指令 例如:STH A,*AR1 ;单周期指令, 写单操作数 写地址 加载EAB 数据 写至EB 通过IR 指令译码 通过PB 读取指令 加载 PAB 执行/写数 读数R 寻址A 译码D 取指F 预取指P 2018年12月9日 DSP原理及应用
’C54x存储器操作的各种情况: ④ 执行写双操作数指令 例如:DST A,*AR1 ;双周期指令, 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: ④ 执行写双操作数指令 例如:DST A,*AR1 ;双周期指令, 写两个操作数 写地址1 加载EAB 数据1 写至EB 通过IR 指令译码 通过PB 读取指令 加载 PAB 执行/写数 读数R 寻址A 译码D 取指F 预取指P 写地址2 加载EAB 数据2 2018年12月9日 DSP原理及应用
例如: ST A,*AR2 ;单周期并行加载存储指令, ||LD *AR3,B 读单操作数和写单操作数 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: ⑤ 执行读单操作数和写单操作数指令 例如: ST A,*AR2 ;单周期并行加载存储指令, ||LD *AR3,B 读单操作数和写单操作数 执行/写数 读数R 寻址A 译码D 取指F 预取指P DB读数据 写地址 加载EAB 读地址 加载DAB 通过IR 指令译码 通过PB 读取指令 加载 PAB 数据 写至EB 2018年12月9日 DSP原理及应用
’C54x存储器操作的各种情况: 注意: ① 预取指P、取指F和译码D操作都相同, 但寻址A、读数R和执行X等操作随指 令的不同而不同; 18.12.9 第2章 TMS320C54x的硬件结构 ’C54x存储器操作的各种情况: 注意: ① 预取指P、取指F和译码D操作都相同, 但寻址A、读数R和执行X等操作随指 令的不同而不同; ② 若指令含有读操作,则读操作的寻址和 读数分别发生在A和R级; ③ 若指令含有写操作,则写操作的寻址和 写数分别发生在R和X级; ④ 若是多字节指令,则数据的寻址需要若 干个机器周期才能完成。 2018年12月9日 DSP原理及应用
根据是否使用加延时的指令,分支转移的流水线操作可分为两种工作类型: 18.12.9 第2章 TMS320C54x的硬件结构 2.7.2 流水线操作 2. 分支转移的流水线操作 根据是否使用加延时的指令,分支转移的流水线操作可分为两种工作类型: 无延迟分支转移 延迟分支转移 2018年12月9日 DSP原理及应用
2. 分支转移的流水线操作 (1)无延迟分支转移 地址 指令 注释 第2章 TMS320C54x的硬件结构 a1,a2 B b1 a3 i3 18.12.9 第2章 TMS320C54x的硬件结构 a1,a2 B b1 a3 i3 a4 i4 … … b1 j1 T6、T7:执行转移 2. 分支转移的流水线操作 T8:不执行i3指令 需四周期 T7:进行转移操作 对j1指令进行译码 T6:① 执行指令B ② 对j1指令进行取指 T5:① 对i4译码 ② 转移地址b1加载PAB T8:i3指令进入执行阶段, 但不执行 T10:执行j1指令 T9:i4指令进入执行阶段, 但不执行 T9:不执行i4指令 T3:① 对B指令译码 ② 取转移地址b1 ③ a3加载PAB T4:① 对b1译码 ② 对i3指令取指 (1)无延迟分支转移 四周期 T1:将分支转移地址a1加载PAB T2:① 对指令代码B取指 ② a2加载PAB 执行B指令 执行j1指令 地址 指令 注释 a1,a2 B b1 ;四机器周期,两字的无延迟分支转移指令 a3 i3 ;任意单周期,单字指令 a4 i4 ;任意单周期,单字指令 … … b1 j1 T10:执行j1指令 分支转移指令B需要四个周期 T1 P T2 F T3 D T4 A T5 R T6 X T7 T8 T9 T10 B PAB=a1 PB=B IR=B b1 PAB=a2 PB=b1 IR=b1 流水线刷新 PAB=a3 PB=i3 PAB=a4 PB=i4 j1 PAB=b1 PB=j1 IR=j1 2018年12月9日 DSP原理及应用
2. 分支转移的流水线操作 (1)延迟分支转移 地址 指令 注释 第2章 TMS320C54x的硬件结构 a1,a2 BD b1 18.12.9 第2章 TMS320C54x的硬件结构 a1,a2 BD b1 a3 i3 a4 i4 … … b1 j1 T6和T7:执行延迟分支转移, 需2个周期。 a1,a2 BD b1 a3 i3 a4 i4 … … b1 j1 2. 分支转移的流水线操作 对于延迟分支转移指令BD, 允许紧随其后的2条单字单周期 的指令执行完毕。 T8:执行i3指令 (1)延迟分支转移 T9:执行i4指令 T8和T9:执行i3和i4指令, 需2个周期。 四周期 地址 指令 注释 a1,a2 BD b1 ;四机器周期,两字的延迟分支转移指令 a3 i3 ;任意单周期,单字指令 a4 i4 ;任意单周期,单字指令 … … b1 j1 T1 P T2 F T3 D T4 A T5 R T6 X T7 T8 T9 T10 B PAB=a1 PB=BD IR=BD BD b1 PAB=a2 PB=b1 IR=b1 i3 PAB=a3 PB=i3 i4 PAB=a4 PB=i4 j1 PAB=b1 PB=j1 IR=j1 2018年12月9日 DSP原理及应用
【例2.7.1】 分别用分支转移指令B和BD编写程序如下,试分 析各程序所需要的周期。 18.12.9 第2章 TMS320C54x的硬件结构 【例2.7.1】 分别用分支转移指令B和BD编写程序如下,试分 析各程序所需要的周期。 利用B指令编程 利用BD指令编程 LD @x,A ADD @y,A STL A,@s LD @s,T MPY @z,A STL A,@r B next LD @x,A ADD @y,A STL A,@s LD @s,T BD next MPY @z,A STL A,@r ;单字单周期 ;双字双周期 ;单字单周期 ;双字四周期 4 周 期 6周期 2周期 2 周 期 —— 4周期 8字10周期 8字8周期 2018年12月9日 DSP原理及应用
对于具有延迟功能的指令,合理地安排前后指令的顺序,可以节省机器周期。 18.12.9 第2章 TMS320C54x的硬件结构 2. 分支转移的流水线操作 对于具有延迟功能的指令,合理地安排前后指令的顺序,可以节省机器周期。 具有延迟操作功能的指令 指 令 说 明 字数 周期 指令 BD 无条件分支转移 2 FBD 无条件远程分支转移 BACCD 按累加器规定的地址转移 1 4 FCALLD 无条件远程调用子程序 BANZD 当辅助寄存器为0时转移 FRETD 远程返回 BCD 条件分支转移 3 FRETED 开中断,从远程中断返回 CALAD 按累加器规定的地址调用子程序 RCD 条件返回 CALLD 无条件调用子程序 RETD 返回 CCD 有条件调用子程序 RETED 开中断,从中断返回 FBACCD 按累加器规定的地址远程分支转移 RETFD 开中断,从中断快速返回 FCALAD 按累加器规定地址远程调用子程序 RPTBD 块重复指令 注意:延迟操作指令后面只有1~4个字的空隙, 其后的指令不能使用其他分支指令或重 复指令。而在CALLD或RETD的空隙不 能使用PUSH和POP指令。 2018年12月9日 DSP原理及应用
功能:若满足条件cond,则执行下面n条指令,否则执行n条NOP操作。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.2 流水线操作 3. 条件执行的流水线操作 条件执行指令: XC n,cond[,cond[,cond]] 功能:若满足条件cond,则执行下面n条指令,否则执行n条NOP操作。 过程:① 先判断给定条件cond是否满足; ② 若满足,则连续执行紧随其后的n条指令; 若不满足,则连续执行n条NOP操作。 2018年12月9日 DSP原理及应用
3. 条件执行的流水线操作 例如:采用条件执行指令的程序如下: a3 XC n,cond ;单周期,单字指令 18.12.9 第2章 TMS320C54x的硬件结构 3. 条件执行的流水线操作 例如:采用条件执行指令的程序如下: a1 i1 ;任意单周期,单字指令 a2 i2 ;任意单周期,单字指令 a3 XC n,cond ;单周期,单字指令 a4 i4 ;任意单周期,单字指令 a5 i5 ;任意单周期,单字指令 X R A D F P i4的条件执行 PB=i4 PAB=a4 i4或NOP T10 T9 i5的条件执行 PB=i5 PAB=a5 i5或NOP 判断cond IR=XC PB=XC PAB=a3 XC i1 IR=i1 PB=i1 PAB=a1 T8 T7 T6 T5 T4 T3 T2 T1 i2 IR=i2 PB=i2 PAB=a2 IR=i4 T6:XC指令寻址级,求解XC指令的条件。 若条件满足,则i4和i5指令进入译码级并执行; 若不满足,则不对i4和i5指令译码,执行NOP。 T4:对XC指令进行取值; T3:XC指令地址a3加载PAB; 注意:① 决定XC指令判断条件的指令应放在i1指令之前; ② 在条件执行指令前屏蔽所有可能产生的中断或 其他改变指令规定条件的运算。 在T6周期,i1和i2指令还没执行完毕,执行结果不会对XC指令的条件判断产生影响。 如果XC指令的判断条件由指令i1和i2的结果给出,则会得出错误的判断。 2018年12月9日 DSP原理及应用
2.7.2 流水线操作 4. 存储器的流水线操作 内部存储器 存储器的流水线操作: ① 双寻址存储器的流水线操作 18.12.9 第2章 TMS320C54x的硬件结构 2.7.2 流水线操作 4. 存储器的流水线操作 内部存储器 双寻址存储器DARAM 单寻址存储器 读写存储器SARAM 只读存储器ROM 存储器的流水线操作: ① 双寻址存储器的流水线操作 ② 单寻址存储器的流水线操作 2018年12月9日 DSP原理及应用
DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 18.12.9 第2章 TMS320C54x的硬件结构 ① 双寻址存储器的流水线操作 DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 ’C5402程序存储器 0000 007F 0080 3FFF 4000 FFFF ’C5402数据存储器 0000 007F 0080 3FFF 4000 FFFF ’C5402DARAM 0000~07FF 0800~0FFF 1000~17FF 1800~1FFF 2000~27FF 2800~2FFF 3000~37FF 3800~3FFF 内部DARAM 内部DARAM 0000~007F 0080~07FF 0800~0FFF 1000~17FF 1800~1FFF 2000~27FF 2800~2FFF 3000~37FF 3800~3FFF 2018年12月9日 DSP原理及应用
DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 18.12.9 第2章 TMS320C54x的硬件结构 ① 双寻址存储器的流水线操作 DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 ① 在单个周期内允许同时访问不同的DARAM块; ② CPU同时处理两条指令访问不同的存储块; ③ 处于流水线不同阶段的两条指令,可以同时访问同一个存储块。 2018年12月9日 DSP原理及应用
DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 18.12.9 第2章 TMS320C54x的硬件结构 ① 双寻址存储器的流水线操作 DARAM分成若干个独立的存储器块,CPU可以在单个周期内对其访问2次。 两次访问分别发生在机器周期的前半周期和后半周期,不会发生时序冲突。 利用PAB/PB取指——前半周期 利用DAB/DB读第一操作数——前半周期 利用CAB/CB读第二操作数——后半周期 利用EAB/EB写操作数——后半周期 2018年12月9日 DSP原理及应用
DARAM的半周期寻址图 ① 取指令操作 ② 读单操作数操作 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 DARAM的半周期寻址图 ① 取指令操作 在T2的前半周期,利用PB线进行读指令操作。 预取指P 取指F 译码D 寻址A 读数R 执行E 读PB 在T5的前半周期,利用DB线进行读存储器操作。 ② 读单操作数操作 预取指P 取指F 译码D 寻址A 读数R 执行E 读DB 2018年12月9日 DSP原理及应用
DARAM的半周期寻址图 ③ 读双操作数操作 ④ 写单操作数操作 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 DARAM的半周期寻址图 ③ 读双操作数操作 预取指P 取指F 译码D 寻址A 读数R 执行E 读DB 读CB ④ 写单操作数操作 预取指P 取指F 译码D 寻址A 读数R 执行E 写EB T5的前半周期,利用DB线读第一操作数; T5的后半周期,利用CB线读第二操作数。 在T6的后半周期,利用EB线写操作数。 2018年12月9日 DSP原理及应用
DARAM的半周期寻址图 ⑤ 写双操作指令 ⑥ 读单操作数和写单操作数操作 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 DARAM的半周期寻址图 T6的后半周期,利用EB线写第一操作数。 ⑤ 写双操作指令 预取指P 取指F 译码D 寻址A 读数R 执行E 写EB 预取指P 取指F 译码D 寻址A 读数R 执行E 写EB 在T6的后半周期,利用EB线写操作数。 ⑥ 读单操作数和写单操作数操作 T5的前半周期,利用DB线读操作数。 T7的后半周期,利用EB线写第二操作数。 预取指P 取指F 译码D 寻址A 读数R 执行E 读DB 写EB 2018年12月9日 DSP原理及应用
CPU访问DARAM会发生流水冲突的情况: ① 同时从同一存储块中取指令和读操作数; ② 同时对同一存储块进行写操作和读第二操作数。 18.12.9 第2章 TMS320C54x的硬件结构 ① 双寻址存储器的流水线操作 CPU访问DARAM会发生流水冲突的情况: ① 同时从同一存储块中取指令和读操作数; ② 同时对同一存储块进行写操作和读第二操作数。 当发生流水冲突时,CPU可通过写操作延迟一个周期,或通过插入一个空操作来解决流水线冲突。 2018年12月9日 DSP原理及应用
LD *AR2+,A ;AR2指向相同的DARAM块 i2 ;假定i2指令不访问DARAM i3 ;假定i3指令不访问DARAM i4 18.12.9 第2章 TMS320C54x的硬件结构 LD *AR2+,A ;AR2指向相同的DARAM块 i2 ;假定i2指令不访问DARAM i3 ;假定i3指令不访问DARAM i4 例如:当执行下列程序发生时序冲突时,CPU能对取指自动延迟一个周期。 LD *AR2+,A i2 i3 i4 P F D A R E LD *AR2+,A 读DB P F D A R E i2 读PB 第1条指令读操作数 发生时序冲突 P F D A R E i3 读PB i4指令取指操作 P F D A R E i4 读PB 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 LD *AR2+,A i2 i3 i4 P F D A R E 读DB P F D A R E 18.12.9 第2章 TMS320C54x的硬件结构 LD *AR2+,A i2 i3 i4 P F D A R E LD *AR2+,A 读DB P F D A R E i2 读PB P F D A R E i3 读PB P F D A R E i4 读PB P F D A R E 空操作 P F D A R E i4 读PB 2018年12月9日 DSP原理及应用
CPU在单个周期内对每个存储器块访问一次。 单寻址存储器: 18.12.9 第2章 TMS320C54x的硬件结构 ② 单寻址存储器的流水线操作 CPU在单个周期内对每个存储器块访问一次。 单寻址存储器: 分为: ① 单寻址读/写存储器SARAM; ② 单寻址只读存储器ROM。 2018年12月9日 DSP原理及应用
单寻址存储器可分成若干存储器块。 第2章 TMS320C54x的硬件结构 ’C549 程序存储器 ’C549 数据存储器 ’C549 18.12.9 第2章 TMS320C54x的硬件结构 单寻址存储器可分成若干存储器块。 ’C549 程序存储器 0000 005F 0060 007F 0080 1FFF 2000 7FFF 8000 BFFF C000 FEFF FF00 FFFF ’C549 数据存储器 0000 005F 存储器映象 寄存器 0060 007F 暂存器 SPRAM 0080 1FFF 片内 DARAM 2000 7FFF SARAM 8000 BFFF 外部存储器 C000 FEFF ROM FF00 FFFF 保留 ’C549 SARAM 2000~3FFF 4000~5FFF 6000~7FFF ’C549 SARAM 2000~3FFF 4000~5FFF 6000~7FFF ’C549 ROM C000~CFFF D000~DFFF E000~EFFF F000~FFFF 片内 SARAM 片内 SARAM 片内 ROM 片内 ROM 2018年12月9日 DSP原理及应用
■ CPU同时处理两条指令访问不同的存储器块。 18.12.9 第2章 TMS320C54x的硬件结构 ② 单寻址存储器的流水线操作 无时序冲突的操作: ■ CPU同时寻址不同的存储器块; ■ CPU同时处理两条指令访问不同的存储器块。 有时序冲突的操作: CPU同时访问两次同一个存储器块。 解决办法: 将第二次寻址操作自动延迟到下一个周期。 2018年12月9日 DSP原理及应用
② 通过程序解决,如重新安排指令或插入空操作指令。 18.12.9 第2章 TMS320C54x的硬件结构 5.流水线的等待周期 ’C54x的流水线结构,允许多条指令同时利用CPU的内部资源。由于CPU的资源有限,当多于一个流水线上的指令同时访问同一资源时,可能产生时序冲突。 解决的办法: ① 由CPU通过延时自动解决; ② 通过程序解决,如重新安排指令或插入空操作指令。 2018年12月9日 DSP原理及应用
5.流水线的等待周期 (1)流水线冲突 产生流水线冲突的硬件资源: ① 辅助寄存器(AR0~AR7); ② 重复块长度寄存器(BK); 18.12.9 第2章 TMS320C54x的硬件结构 5.流水线的等待周期 (1)流水线冲突 产生流水线冲突的硬件资源: ① 辅助寄存器(AR0~AR7); ② 重复块长度寄存器(BK); ③ 堆栈指针(SP); ④ 暂存器(T); ⑤ 工作方式状态寄存器(PMST); ⑥ 状态寄存器(ST0和ST1); ⑦ 块重复计数器(BRC); ⑧ 存储器映像累加器(A和B)。 2018年12月9日 DSP原理及应用
流水线冲突情况: 第2章 TMS320C54x的硬件结构 ’C54x系统程序 1 C语言程序 不产生冲突 汇编语言程序 2 CALU运算 18.12.9 第2章 TMS320C54x的硬件结构 流水线冲突情况: ’C54x系统程序 1 C语言程序 不产生冲突 汇编语言程序 2 CALU运算 不会产生冲突 存储器映象寄存器 MMR写操作 3 4 早安排写操作 不产生冲突 其它MMR写操作 需用等待周期表 2018年12月9日 DSP原理及应用
① 若采用C语言编写源程序,经编译后生成的代码不会产生流水线冲突; ② 若采用汇编语言编写源程序,使用算术运算操作不会产生流水线冲突; 18.12.9 第2章 TMS320C54x的硬件结构 流水线冲突情况: ① 若采用C语言编写源程序,经编译后生成的代码不会产生流水线冲突; ② 若采用汇编语言编写源程序,使用算术运算操作不会产生流水线冲突; ③ 若采用汇编语言编写源程序,初始化时对MMR寄存器进行设置,不会发生流水线冲突; ④ 通常流水线冲突发生在对MMR寄存器的写操作,可用等待周期表加以解决。 2018年12月9日 DSP原理及应用
问题:第1条指令中的AR1数据还没有准备好,第二条指令就已经开始对AR1进行寻址读操作。 STM为双字指令,占用两条流水线。 18.12.9 第2章 TMS320C54x的硬件结构 【例2.7.2】分析下列指令的流水线冲突。 A →AR1 STLM A,AR1 w LD *AR1,B N 对AR1进行间接寻址 解决办法:采用保护性指令STM。 问题:第1条指令中的AR1数据还没有准备好,第二条指令就已经开始对AR1进行寻址读操作。 STM为双字指令,占用两条流水线。 STM #1k,AR1 w #1k LD *AR1,B N 无等待周期 2018年12月9日 DSP原理及应用
在T6后半周期,第一条指令和第二条指令发生时序冲突。 18.12.9 第2章 TMS320C54x的硬件结构 【例2.7.3】分析下列指令的流水线冲突。 冲突 STLM A,AR0 w NOP STM #10,AR1 w NOP w STM #10,AR1 w #k LD *AR1,B N #k LD *AR1,B N 在T6后半周期,第一条指令和第二条指令发生时序冲突。 解决的办法:在STLM指令后插入一条NOP指令或任何 一条与程序无关的单字指令。 ’C54x内部可自动地将STM指令的写操作延迟一个周期,缓解时序冲突。 在执行第三条指令时,AR1的内容还没有准备好,出现新的冲突。 2018年12月9日 DSP原理及应用
当指令对MMR、ST0、ST1和PMST等硬件资源进行写操作时,有可能造成流水线冲突。 18.12.9 第2章 TMS320C54x的硬件结构 5.流水线的等待周期 (2)等待周期表 当指令对MMR、ST0、ST1和PMST等硬件资源进行写操作时,有可能造成流水线冲突。 解决的办法:是在写操作指令的后面,插入若干条 NOP指令。 例如: STLM A,AR1 w LD *AR1,B N NOP NOP N N LD *AR1,B 2018年12月9日 DSP原理及应用
等待周期表给出了对映像寄存器以及控制字段进行写操作的各种指令所需插入的等待周期数。 18.12.9 第2章 TMS320C54x的硬件结构 (2)等待周期表 等待周期表给出了对映像寄存器以及控制字段进行写操作的各种指令所需插入的等待周期数。 为了避免流水冲突,可以根据等待周期表来选择插入的NOP指令的数量。 2018年12月9日 DSP原理及应用
流水线操作等待周期表 第2章 TMS320C54x的硬件结构 控制范围 0周期 1周期 2周期 3周期 T 所有其他存储操作,包括EXP 18.12.9 第2章 TMS320C54x的硬件结构 流水线操作等待周期表 控制范围 0周期 1周期 2周期 3周期 T STM #lk,T MVDK Smem,T LD Smem,T LD Smem,T || ST 所有其他存储操作,包括EXP ASM LD #k5,ASM LD Smem,ASM 所有其他存储操作 DP CPL=0 LD #k9,DP LD Smem,DP STM #lk,ST0 ST #lk,ST0 SXM C16 FRCT OVM 所有存储操作 包括SSXM和RSXM 2018年12月9日 DSP原理及应用
流水线操作等待周期表 第2章 TMS320C54x的硬件结构 控制范围 0周期 1周期 2周期 3周期 A或B 修正累加器后,读MMR 18.12.9 第2章 TMS320C54x的硬件结构 流水线操作等待周期表 控制范围 0周期 1周期 2周期 3周期 A或B 修正累加器后,读MMR RPTB[D] 之前BRC STM #lk,BRC ST #lk,BRC MVDK Smem,BRC MVMD MMR, BRC 所有其他存储操作 SRCCD(循环) DROM STM ST MVDK MVMD 2018年12月9日 DSP原理及应用
流水线操作等待周期表 第2章 TMS320C54x的硬件结构 控制范围 3周期 5周期 6周期 OVLY IPTR MP/MC STM ST 18.12.9 第2章 TMS320C54x的硬件结构 流水线操作等待周期表 控制范围 3周期 5周期 6周期 OVLY IPTR MP/MC STM ST MVDK MVMD 所有其他存储操作 BRAF RSBX CPL SSBX 2018年12月9日 DSP原理及应用
流水线操作等待周期表 第2章 TMS320C54x的硬件结构 控制范围 0周期 1周期 2周期 3周期 ARx ST MVDK MVMM 18.12.9 第2章 TMS320C54x的硬件结构 流水线操作等待周期表 控制范围 0周期 1周期 2周期 3周期 ARx STM ST MVDK MVMM MVMD POPM POPD 其他MV的 STLM STH STL 所有其他存储操作 BK 2018年12月9日 DSP原理及应用
流水线操作等待周期表 第2章 TMS320C54x的硬件结构 控制范围 0周期 1周期 2周期 3周期 SP STM MVDK MVMM 18.12.9 第2章 TMS320C54x的硬件结构 流水线操作等待周期表 控制范围 0周期 1周期 2周期 3周期 SP 若CPL=0 STM MVDK MVMM MVMD 若CPL=1 STLM STH STL 所有其他存储操作 当CPL=1时 隐含SP改变 FRAME POM/POPD PSHM/PSHD 2018年12月9日 DSP原理及应用
例如: MAC @x,B STLM B,ST0 需插入3个空操作 ADD @table,A,B NOP ADD @table,A,B 18.12.9 第2章 TMS320C54x的硬件结构 例如: MAC @x,B STLM B,ST0 需插入3个空操作 ADD @table,A,B ADD @table,A,B NOP 2018年12月9日 DSP原理及应用
又如: RPTB endloop-1 …… RSBX BRAF 需插入6个空操作 NOP …… 第2章 TMS320C54x的硬件结构 18.12.9 第2章 TMS320C54x的硬件结构 又如: RPTB endloop-1 …… RSBX BRAF 需插入6个空操作 NOP …… 2018年12月9日 DSP原理及应用
对于双字指令或三字指令都会提供隐含的保护周期,因此,有时可以不需要插入NOP指令。 18.12.9 第2章 TMS320C54x的硬件结构 对于双字指令或三字指令都会提供隐含的保护周期,因此,有时可以不需要插入NOP指令。 例如: SSBX SXM 需要一个等待周期 LD @x,B 无隐含保护周期 NOP 插入一个空操作 LD @x,B 无隐含保护周期 SSBX SXM 需要一个等待周期 LD *(x),B 隐含一个等待周期 无需NOP 又如: 2018年12月9日 DSP原理及应用
STM #input,AR1 双字指令,隐含一个等待周期 MPY *AR1+,A 例如: 18.12.9 第2章 TMS320C54x的硬件结构 LD @GAIN,T 需要一个等待周期 STM #input,AR1 双字指令,隐含一个等待周期 MPY *AR1+,A 例如: 又例: STLM B,AR2 周期数为2,需2个等待周期 STM #input,AR3 双字指令,隐含一个等待周期 MPY *AR2+,*AR3+,A 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.7 ’C54x的系统控制 2.7.3 系统的复位 ’C54x设有复位输入引脚RS,通过RS可对芯片进行复位,使程序从FF80H单元开始执行。 复位期间,处理器将进行如下操作: 将PMST中的IPTR位置为1FFH,MP/MC位与 MP/MC引脚状态相同; 状态寄存器ST0=1800H; 将ST1中的INTM位置1,关闭所有可屏蔽中断; 2018年12月9日 DSP原理及应用
2.7.3 系统的复位 复位期间,处理器将进行如下操作: 使程序计数器PC=FF80H; 使扩展程序计数器XPC=0000H; 18.12.9 第2章 TMS320C54x的硬件结构 2.7.3 系统的复位 复位期间,处理器将进行如下操作: 使程序计数器PC=FF80H; 使扩展程序计数器XPC=0000H; 使中断标志寄存器IFR=0000H; 使数据总线处于高阻状态; 控制线均处于无效状态; 将地址总线置为FF80H; 使IACK引脚产生中断响应信号; 产生同步复位信号,对外围电路初始化; 2018年12月9日 DSP原理及应用
① 复位期间,不对其余的状态位和堆栈指针SP初始化; 注意: 18.12.9 第2章 TMS320C54x的硬件结构 复位期间,处理器将进行如下操作: ARP=0 ASM=0 AVIS=0 BRAF=0 C=1 C16=0 CLKOFF=0 CMPT=0 CPL=0 DP=0 DROM=0 FRCT=0 HM=0 INTM=1 OVA=0 OVB=0 OVLY=0 OVM=0 SXM=1 TC=1 XF=1 将下列状态位置为初始值: ① 复位期间,不对其余的状态位和堆栈指针SP初始化; 注意: ② 若MP/MC=0,则CPU从内部程序存储器开始执行, 否则将从外部程序存储器开始执行程序。 2018年12月9日 DSP原理及应用
2.7 ’C54x的系统控制 2.7.4 中断操作 中断系统是为计算机系统提供实时操作、多任务和多进程操作的关键部件。 中断信号 : 18.12.9 第2章 TMS320C54x的硬件结构 2.7 ’C54x的系统控制 2.7.4 中断操作 中断系统是为计算机系统提供实时操作、多任务和多进程操作的关键部件。 中断信号 : 由外设向CPU传送数据的硬件设备产生 由外设向CPU提取数据的硬件设备产生 由定时器产生 2018年12月9日 DSP原理及应用
当CPU响应中断时,将暂时停止当前程序的执行,而去执行中断服务程序。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.4 中断操作 当CPU响应中断时,将暂时停止当前程序的执行,而去执行中断服务程序。 中断系统: —— 由程序指令产生的中断。 如:INTR、TRAP或RESET。 软件中断 硬件中断 —— 由外围设备信号产生的中断。 受外部中断口信号触发的外部硬件中断 硬件中断 受片内外设电路信号触发的内部硬件中断 2018年12月9日 DSP原理及应用
不论是软件中断还是硬件中断,’C54x的中断都可以分成两大类。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.4 中断操作 1.可屏蔽中断 不论是软件中断还是硬件中断,’C54x的中断都可以分成两大类。 ① 可屏蔽中断 ② 非屏蔽中断 可用软件设置来屏蔽或开放的中断。 VC5402共有13个可屏蔽中断: —— 外部中断 INT3~INT0 BRINT0、BXINT0 BRINT1、BXINT1 —— 串行口中断 TINT0、TINT1 —— 定时器中断 DMAC4、DMAC5 —— DMA中断 HPINT —— HPI中断 2018年12月9日 DSP原理及应用
’C54x的非屏蔽中断包括所有的软件中断和外部硬件中断(RS和NMI)。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.4 中断操作 2.非屏蔽中断 不能屏蔽的中断。 ’C54x的非屏蔽中断包括所有的软件中断和外部硬件中断(RS和NMI)。 RS: 是一个对’C54x 所有操作方式产生影响的 非屏蔽中断。 不会对’C54x的任何操作方式产生影响。 当中断响应时,所有其他中断将被禁止。 NMI: 2018年12月9日 DSP原理及应用
当同时有多个中断出现时,’C54x将按照中断优先级别的高低对它们进行中断响应。 18.12.9 第2章 TMS320C54x的硬件结构 VC5402中断源和优先级 2.7.4 中断操作 当同时有多个中断出现时,’C54x将按照中断优先级别的高低对它们进行中断响应。 中断序号 中断名称 中断地址 中断优先级 功 能 RS/STIRN 00H 1 复位(硬件和软件复位) NMI/SINT16 04H 2 不可屏蔽中断 SINT17 08H —— 软件中断#17 3 SINT18 0CH 软件中断#18 4 SINT19 10H 软件中断#19 5 SINT20 14H 软件中断#20 6 SINT21 18H 软件中断#21 7 SINT22 1CH 软件中断#22 2018年12月9日 DSP原理及应用
VC5402中断源和优先级 第2章 TMS320C54x的硬件结构 中断序号 中断名称 中断地址 中断优先级 功 能 8 SINT23 18.12.9 第2章 TMS320C54x的硬件结构 VC5402中断源和优先级 中断序号 中断名称 中断地址 中断优先级 功 能 8 SINT23 20H —— 软件中断#23 9 SINT24 24H 软件中断#24 10 SINT25 28H 软件中断#25 11 SINT26 2CH 软件中断#26 12 SINT27 30H 软件中断#27 13 SINT28 34H 软件中断#28 14 SINT29 38H 软件中断#29 15 SINT30 3CH 软件中断#30 2018年12月9日 DSP原理及应用
VC5402中断源和优先级 第2章 TMS320C54x的硬件结构 中断序号 中断名称 中断地址 中断优先级 功 能 16 18.12.9 第2章 TMS320C54x的硬件结构 VC5402中断源和优先级 中断序号 中断名称 中断地址 中断优先级 功 能 16 INT0/SINT0 40H 3 外部用户中断#0 17 INT1/SINT1 44H 4 外部用户中断#1 18 INT2/SINT2 48H 5 外部用户中断#2 19 TINT0/SINT3 4CH 6 内部定时器0中断 20 BRINT0/SINT4 50H 7 缓冲串口McBSP0接收中断 21 BXINT0/SINT5 54H 8 缓冲串口McBSP0发送中断 22 保留(DMAC0)/SINT6 58H 9 保留(默认)或DMA通道0中断, 由DMPREC寄存器选择 2018年12月9日 DSP原理及应用
VC5402中断源和优先级 第2章 TMS320C54x的硬件结构 中断序号 中断名称 中断地址 中断优先级 功 能 23 18.12.9 第2章 TMS320C54x的硬件结构 VC5402中断源和优先级 中断序号 中断名称 中断地址 中断优先级 功 能 23 TINT1(DMAC1)/ SINT7 5CH 10 内部定时器1中断(默认)或DMA通道1中断,由DMPREC寄存器选择 24 INT3 /SINT8 60H 11 外部用户中断#3 25 HPINT/ SINT9 64H 12 HPI中断 26 BRINT1(DMAC2)/SINT10 68H 13 缓冲串口McBSP1接收中断(默认)或DMA通道2中断,由DMPREC寄存器选择 27 BXINT1(DMAC3)/SINT11 6CH 14 缓冲串口McBSP1发送中断(默认)或DMA通道3中断,由DMPREC寄存器选择 2018年12月9日 DSP原理及应用
VC5402中断源和优先级 第2章 TMS320C54x的硬件结构 中断序号 中断名称 中断地址 中断优先级 功 能 28 18.12.9 第2章 TMS320C54x的硬件结构 VC5402中断源和优先级 中断序号 中断名称 中断地址 中断优先级 功 能 28 DMAC4/SINT12 70H 15 DMA通道4中断 29 DMAC5/SINT13 74H 16 DMA通道5中断 HPINT/ SINT9 78H~7FH —— 保留 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.7 ’C54x的系统控制 2.7.5 省电和保持方式 ’C54x有多种省电方式,可以使CPU暂停工作,处于休眠状态,以减小功耗,但保持CPU中的内容。 当省电方式结束后,CPU可以继续正常工作。 ’C54x有4种省电方式,分别为闲置方式1、闲置方式2、闲置方式3和保持方式。 省电方式的实现: ① 执行IDLE1、IDLE2和IDLE3三条指令; ② 使外部信号HOLD=0,状态位HM=1。 2018年12月9日 DSP原理及应用
4种省电工作方式 第2章 TMS320C54x的硬件结构 操作/特性 IDLE1 IDLE2 IDLE3 HOLD CPU时钟停止工作 18.12.9 第2章 TMS320C54x的硬件结构 4种省电工作方式 操作/特性 IDLE1 IDLE2 IDLE3 HOLD CPU处于暂停工作状态 √ CPU时钟停止工作 外围电路时钟停止工作 锁相环(PLL)停止工作 外部地址线处于高阻状态 外部数据线处于高阻状态 外部控制信号线处于高阻状态 因其他 原因结 束省电 工作方 式 HOLD变为高电平 内部可屏蔽硬件中断 外部可屏蔽硬件中断 NMI RS 2018年12月9日 DSP原理及应用
在这种方式下,CPU除了时钟外所有的工作都停止。但外设电路可以继续工作,CLKOUT引脚保持有效。 18.12.9 第2章 TMS320C54x的硬件结构 2.7.5 省电和保持方式 1. 闲置方式1(IDLE1) 在这种方式下,CPU除了时钟外所有的工作都停止。但外设电路可以继续工作,CLKOUT引脚保持有效。 可用IDLE1指令,使CPU进入闲置方式1状态。 用唤醒中断来结束CPU的闲置方式1。 2018年12月9日 DSP原理及应用
其方法:用一个10ns的窄脉冲加到外部中断引脚 18.12.9 第2章 TMS320C54x的硬件结构 2. 闲置方式2(IDLE2) 这种方式可以使片内外设和CPU停止工作,系统功耗有明显减少。 可用IDLE2指令进入闲置方式2。 结束时,不能采用闲置方式1的方法,可用外部中断结束闲置方式2。 其方法:用一个10ns的窄脉冲加到外部中断引脚 (RS、NMI和INTx) ,通过外部中断来结束 闲置方式2。 闲置方式2结束后,所有的外设都将复位。 2018年12月9日 DSP原理及应用
这种方式是一种完全关闭模式,除了具有闲置方式2的功能外,还可以终止锁相环PLL的工作,大幅度地降低系统功耗。 18.12.9 第2章 TMS320C54x的硬件结构 3. 闲置方式3(IDLE3) 这种方式是一种完全关闭模式,除了具有闲置方式2的功能外,还可以终止锁相环PLL的工作,大幅度地降低系统功耗。 可用IDLE3指令进入闲置方式3,用外部中断来结束。 IDLE3结束后,所有的外设将被复位。 2018年12月9日 DSP原理及应用
这种方式可由HOLD信号初始化, 使CPU的地址总线、数据总线和控制总线处于高阻状态,并可以通过设定HM位,来终止CPU运行。 18.12.9 第2章 TMS320C54x的硬件结构 4. 保持方式 保持方式是另一种省电方式。 这种方式可由HOLD信号初始化, 使CPU的地址总线、数据总线和控制总线处于高阻状态,并可以通过设定HM位,来终止CPU运行。 若HM=1,则三总线高阻,CPU停止工作; 若HM=0,则三总线高阻,但CPU继续运行。 这种方式不会停止CPU片内外设的工作。 当HOLD信号无效时,结束保持方式。 2018年12月9日 DSP原理及应用
’C54x除了上述四种省电方式外,还有两种省电功能,分别是外部总线关断和CLKOUT关断。 18.12.9 第2章 TMS320C54x的硬件结构 5. 其他省电方式 ’C54x除了上述四种省电方式外,还有两种省电功能,分别是外部总线关断和CLKOUT关断。 外部总线关断:是通过对BSCR寄存器的第0位置1,关断片内外部接口时钟,使接口处于低功耗状态。复位时,该位清0,片内外设接口时钟开放。 时钟关断:是利用指令来禁止CLKOUT信号。其方法:用软件指令将PMST中的CLKOFF位置1,关断CLKOUT的输出。复位时,CLKOUT有效。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.8 ’C54x的外部总线 ’C54x的外部总线具有很强的系统接口能力,可与外部存储器以及I/O设备相连,能对64K字的数据存储空间,64K字的程序存储空间,以及64K的I/O空间进行寻址。 外部空间选通信号DS、PS和IS可以独立地对外部空间进行选择。 外部READY信号和软件可编程等待状态发生器,可以使CPU与不同速度的存储器和I/O设备连接。 接口的保护方式能使外设对外部总线进行控制,使外设可以访问程序、数据和I/O空间的资源。 2018年12月9日 DSP原理及应用
18.12.9 第2章 TMS320C54x的硬件结构 2.8.1 外部总线接口 1. 外部总线的组成 ’C54x的外部总线由数据总线、地址总线以及一组控制信号所组成,可用来寻址’C54x的外部存储器和I/O口。 ’C54x的外部程序存储器、数据存储器和I/O的地址总线和数据总线是复用的,其操作主要是依靠片选和读写选通信号配合来实现。 2018年12月9日 DSP原理及应用
’C54x外设扩展接口信号 第2章 TMS320C54x的硬件结构 信号 541~6 548~10 5409、16 5402 5420 18.12.9 ’C54x外设扩展接口信号 第2章 TMS320C54x的硬件结构 信号 541~6 548~10 5409、16 5402 5420 说 明 A0~Ai 15~0 22~0 19~0 17~0 地址总线 D0~D15 数据总线 PS √ 程序空间片选 DS 数据空间片选 IS I/O空间片选 MSTRB 外部存储器选通 IOSTRB I/O空间选通 R/W 读/写信号 READY 数据准备完成 HOLD 保持请求 HOLDA 保持响应 MSC 微状态完成 IAQ 中断请求 IACK 中断响应 2018年12月9日 DSP原理及应用
用于外部程序存储器地址线,与PS配合可寻址程序空间; 18.12.9 第2章 TMS320C54x的硬件结构 1. 外部总线的组成 地址总线:Ai~A0 23~16位 用于外部程序存储器地址线,与PS配合可寻址程序空间; 用于外部数据存储器地址线,与DS配合可寻址数据空间; 用于外部I/O地址线,与IS配合可寻址I/O空间; 2018年12月9日 DSP原理及应用
用于外部程序存储器、数据存储器和I/O口的数据总线。 18.12.9 第2章 TMS320C54x的硬件结构 1. 外部总线的组成 数据总线:D15~D0 16位 用于外部程序存储器、数据存储器和I/O口的数据总线。 控制总线: 外部程序存储器片选信号,用来选通程序存储器,作为外部程序存储器的第1选通信号,与存储器CS1连接; 2018年12月9日 DSP原理及应用
外部数据存储器片选信号,用来选通数据存储器,作为外部数据存储器的第1选通信号,与存储器CS1连接; 18.12.9 第2章 TMS320C54x的硬件结构 控制总线: 外部数据存储器片选信号,用来选通数据存储器,作为外部数据存储器的第1选通信号,与存储器CS1连接; I/O选择信号,用来选通外部I/O设备,作为I/O的第1选通信号,与I/O的CS1连接; 外部存储器选通信号,用来选通程序存储器和数据存储器,分别作为两存储器的第2选通信号,与存储器CS2连接; 2018年12月9日 DSP原理及应用
I/O设备选通信号,用来选通外部I/O设备,作为I/O的第2选通信号,与I/O的CS2连接; 18.12.9 第2章 TMS320C54x的硬件结构 控制总线: I/O设备选通信号,用来选通外部I/O设备,作为I/O的第2选通信号,与I/O的CS2连接; 读/写信号,用来实现数据存储器和I/O设备的读写操作,控制数据流的方向; 数据准备好信号,用来实现CPU与不同速度的存储器或I/O进行数据交换; READY: 保持请求信号,用来控制’C54x的保持工作模式,即:正常模式和并发DMA模式; 2018年12月9日 DSP原理及应用
对于外部总线,CPU在每个机器周期内只能对它们寻址一次,否则,将会产生流水冲突。 18.12.9 第2章 TMS320C54x的硬件结构 2. 外部总线的优先级别 对于外部总线,CPU在每个机器周期内只能对它们寻址一次,否则,将会产生流水冲突。 例如,在一个并行指令周期内,CPU寻址外部存储器两次(如一次取指,一次取操作数或写操作数),那么就会发生流水线冲突。 2018年12月9日 DSP原理及应用
LD *AR4+,A ;Xmem和Ymem读操作 || MAC *AR5+,B 18.12.9 第2章 TMS320C54x的硬件结构 2. 外部总线的优先级别 例如: ST T,*AR6 ;Smem写操作 LD *AR4+,A ;Xmem和Ymem读操作 || MAC *AR5+,B 由于数据和程序存储器都在片外,且一条单操作数写指令后紧跟一条双操作数读指令,将出现流水线冲突。 2018年12月9日 DSP原理及应用
对于这种外部总线上的流水线冲突,CPU可根据流水线操作的优先级别自动解决。 18.12.9 第2章 TMS320C54x的硬件结构 2. 外部总线的优先级别 对于这种外部总线上的流水线冲突,CPU可根据流水线操作的优先级别自动解决。 外部总线优先级: 数据存取的优先级高于程序的读取。 只有在所有的数据存取完成后,才能够开始程序的读取。 例如: 在一个指令周期内写-读-读操作。 包括:读取一条指令、读写外部数据操作。 2018年12月9日 DSP原理及应用
2. 外部总线的优先级别 时序图: 第2章 TMS320C54x的硬件结构 写 读 取 时钟 地址 数据 2018年12月9日 18.12.9 第2章 TMS320C54x的硬件结构 2. 外部总线的优先级别 时序图: 写 读 取 时钟 地址 数据 2018年12月9日 DSP原理及应用
2.8.2 外部总线等待状态控制 ’C54x片内有两个控制CPU等待状态的部件: 软件可编程等待状态发生器 可编程分区转换逻辑电路 18.12.9 第2章 TMS320C54x的硬件结构 2.8.2 外部总线等待状态控制 ’C54x片内有两个控制CPU等待状态的部件: 软件可编程等待状态发生器 可编程分区转换逻辑电路 这两个部件用来控制外部总线工作,分别受两个存储器映像寄存器的控制。 软件等待状态寄存器SWWSR 可编程分区转换逻辑寄存器BSCR 2018年12月9日 DSP原理及应用
2.8.2 外部总线等待状态控制 1. 软件可编程等待状态发生器 18.12.9 第2章 TMS320C54x的硬件结构 2.8.2 外部总线等待状态控制 1. 软件可编程等待状态发生器 软件可编程等待状态发生器可以通过编程来延长总线的等待周期,最多可达到7~14个机器周期。 若外部器件要求插入的等待周期大于7~14个时,可以利用硬件READY线来实现。 当所有的外部器件都配置在0等待状态时,加到等待状态发生器的内部时钟将被关断,器件工作在省电状态。 2018年12月9日 DSP原理及应用
软件可编程等待状态发生器受16位软件等待状态寄存器SWWSR的控制,它是一个存储器映像寄存器,其数据空间的地址为0028H。 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 (1)软件等待状态寄存器SWWSR 软件可编程等待状态发生器受16位软件等待状态寄存器SWWSR的控制,它是一个存储器映像寄存器,其数据空间的地址为0028H。 ’C54x的外部扩展程序空间和数据空间分别由两个32K字的存储块组成,I/O空间由64K字块组成。这5个字块空间在SWWSR中都相应地有一个3位字段,用来定义各个空间插入等待状态的数目。 2018年12月9日 DSP原理及应用
Hi Data:8000~FFFFH数据存储空间插入的等待状态周期数,值域0~7; 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 软件等待状态寄存器SWWSR 15 14~12 11~9 8~6 5~3 2~0 0028H R/XPA I/O Hi Data Low Data Hi Prog Low Prog R R/W Hi Prog:高端程序空间插入的等待状态周期数,值域0~7。 ’C541,2,6所对应的程序空间8000~FFFFH; ’C548,9,02,09,10,20其所对应的程序空间: XPA=0时,xx8000~xxFFFFH; XPA=1时,400000~7FFFFFH. Low Prog:低端程序空间插入的等待状态周期数,值域0~7。 ’C541,2,6所对应的程序空间000~7FFFH; ’C548,9,02,09,10,20其所对应的程序空间: XPA=0时,xx0000~xx7FFFH; XPA=1时,000000~3FFFFFH。 Hi Data:8000~FFFFH数据存储空间插入的等待状态周期数,值域0~7; Low Data:0000~7FFFH数据存储空间插入的等待状态周期数,值域0~7; Hi Data:8000~FFFFH数据存储空间插入的等待状态周期数,值域0~7; Low Data:0000~7FFFH数据存储空间插入的等待状态周期数,值域0~7; R/XPA:’C541,2,6为保留位; ’C548,9,02,09,10,20为扩展程序地址控制位,由地址的域选择扩展程序的地址范围。 I/O:0000~FFFFHI/O存储空间插入的等待状态周期数,值域0~7; 2018年12月9日 DSP原理及应用
复位时,SWWSR=7FFFH,所有程序、数据和I/O空间都被插入7个等待状态。 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 例如: STM #349B,SWWSR 349BH=0011 0100 1001 1011 SWWSR=0 011 010 010 011 011 I/O空间: 3个等待状态; 数据空间:2个等待状态; 程序空间:3个等待状态。 复位时,SWWSR=7FFFH,所有程序、数据和I/O空间都被插入7个等待状态。 2018年12月9日 DSP原理及应用
SWSM位:用来确定扩展最大的等待周期。 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 对于’C549,’C5402,’C5410,’C5420等器件,除了有一个软件等待状态寄存器SWWSR外,还配有软件等待状态控制寄存器SWCR,它位于内存映像寄存器的002BH处。 保留 SWSM SWCR (2BH) 15 ~ 1 SWCR结构: SWSM位:用来确定扩展最大的等待周期。 当SWSM=1时,等待状态由扩展最大等待状态周期决定,可以达到7~14个周期。 2018年12月9日 DSP原理及应用
1. 软件可编程等待状态发生器 (2)等待状态发生器 逻辑框图: 第2章 TMS320C54x的硬件结构 CPU READY 外 部 逻 辑 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 (2)等待状态发生器 逻辑框图: PSEL A15 CYCLE WAIT G Y1 A Y0 5 ~ 3 2 ~ 0 3位计数器 & 1/2 译码器 SWWSR READY 外 部 逻 辑 CPU C 2018年12月9日 DSP原理及应用
当CPU对外部程序存储空间进行寻址时,通过译码器将SWWSR中相应的字段值装载到计数器。 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 (2)等待状态发生器 当CPU对外部程序存储空间进行寻址时,通过译码器将SWWSR中相应的字段值装载到计数器。 如果这个字段值不为0,就会向CPU发出一个“没有准备好”信号,等待状态计数器启动工作。 没有准备好的情况一直保持到计数器减到0和外部READY线置1为止。 2018年12月9日 DSP原理及应用
若C=1,且READY=1,则WAIT信号由低变高,结束等待状态。 18.12.9 第2章 TMS320C54x的硬件结构 1. 软件可编程等待状态发生器 (2)等待状态发生器 由逻辑图得: WAIT = C×READY 当计数器减到0时,C=1; 若C=1,且READY=1,则WAIT信号由低变高,结束等待状态。 2018年12月9日 DSP原理及应用
插入的附加周期可以使存储器在其他器件驱动总线之前先释放掉总线,从而防止总线竞争。 18.12.9 第2章 TMS320C54x的硬件结构 2. 可编程分区转换逻辑 可编程分区转换逻辑允许’C54x在外部存储器分区之间切换时,不需要外部为存储器插入等待状态。但当跨越外部程序或数据空间中的存储器分区界线寻址时,或在访问越过程序存储器到数据存储器时,可编程分区转换逻辑自动插入一个周期。 插入的附加周期可以使存储器在其他器件驱动总线之前先释放掉总线,从而防止总线竞争。 2018年12月9日 DSP原理及应用
分区转换逻辑由分区转换控制寄存器BSCR定义,该寄存器是一个存储器映像寄存器。 18.12.9 第2章 TMS320C54x的硬件结构 2. 可编程分区转换逻辑 分区转换逻辑由分区转换控制寄存器BSCR定义,该寄存器是一个存储器映像寄存器。 BSCR 0029H BNKCMP PS~DS 保留 IPIRQ HBH BH EXIO 11 10 ~ 9 7 ~ 3 2 1 8 15 ~ 12 R/ W EXIO :关断外部总线接口位。用来控制外部总线 。 EXIO=0 外部总线接口处于接通状态; EXIO=1 关断外部总线接口。 IPIRQ :CPU处理器之间的中断请求位 。 HBH: HPI总线保持位 。 BH: 总线保持器位。用来控制总线保持器。 BH=0 关断总线保持器,解除总线保持; BH=1 接通总线保持器。数据总线保持在原先的状态。 PS~DS :程序空间读——数据空间读寻址位。 用来决定在连续进行程序读-数据读或者数据读-程序 读寻址之间是否插入一个额外的周期。 PS~DS=0 不插入。在这种情况下,除了跨越分区边界 外,其他情况不插入额外机器周期。 PS~DS=1 插入一个额外的周期 BNKCMP:分区对照位。 用来屏蔽一个地址的高4位,定义 外部存储器分区的大小。 取值:1111B、1110B、1100B、 1000B、0000B。 BNKCMP 屏蔽的最高有效位 分区大小 (16位字) 位15 位14 位13 位12 1 —— 15 15~14 15~13 15~12 64K 32K 16K 8K 4K 2018年12月9日 DSP原理及应用
分区转换逻辑在下列几种情况下自动插入一个附加的周期: 18.12.9 第2章 TMS320C54x的硬件结构 2. 可编程分区转换逻辑 分区转换逻辑在下列几种情况下自动插入一个附加的周期: ● 当对程序存储器进行一次读操作之后,紧随其后对不同的存储器分区进行另一次程序存储器读或数据存储器读操作。 ● 当PS~DS位置1时,读一次程序存储器之后,紧跟着进行一次数据存储器读操作。 ● 当PS~DS位置位时,一次数据存储器读操作之后,紧跟着进行一次程序存储器读操作。 2018年12月9日 DSP原理及应用
分区转换逻辑在下列几种情况下自动插入一个附加的周期: 18.12.9 第2章 TMS320C54x的硬件结构 2. 可编程分区转换逻辑 分区转换逻辑在下列几种情况下自动插入一个附加的周期: ● 对数据存储器进行一次读操作之后,紧跟着对一个不同的存储器分区进行另一次程序存储器或数据存储器读操作。 ● 对于’C548、’C549等器件,一次程序存储器读操作之后,紧跟着对不同页程序存储器进行另一次读操作。 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 存储器分区转换时插入附加周期的时序 CLKOUT 地址 数据 R/W PS或DS MSTRB 读 18.12.9 第2章 TMS320C54x的硬件结构 存储器分区转换时插入附加周期的时序 读 CLKOUT 地址 数据 R/W PS或DS MSTRB 附加周期 2018年12月9日 DSP原理及应用
程序读操作和数据读操作之间分区转换时序图 18.12.9 第2章 TMS320C54x的硬件结构 程序读操作和数据读操作之间分区转换时序图 读 CLKOUT 地址 数据 R/W PS MSTRB 附加周期 DS 2018年12月9日 DSP原理及应用
所有外部总线的读写操作都是在整数个CLKOUT周期内完成的。 18.12.9 第2章 TMS320C54x的硬件结构 2.8.3 外部总线接口时序 所有外部总线的读写操作都是在整数个CLKOUT周期内完成的。 从CLKOUT信号的一个下降沿开始,到下一个下降沿所需的时间定义为CLKOUT信号的一个周期。 外部总线接口时序,主要包括存储器寻址时序和I/O寻址时序。它们能够反映’C54x进行存储器和I/O操作时各信号之间的时序关系。 2018年12月9日 DSP原理及应用
1.存储器寻址时序图 第2章 TMS320C54x的硬件结构 存储器读-读-写操作时序图 CLKOUT 地址 数据 R/W PS MSTRB 18.12.9 第2章 TMS320C54x的硬件结构 1.存储器寻址时序图 存储器读-读-写操作时序图 读 写 CLKOUT 地址 数据 R/W PS MSTRB DS 第一周期 第二周期 第三周期 第四周期 2018年12月9日 DSP原理及应用
CLKOUT开始时,DS = 1,PS = MSTRB = 0。 18.12.9 第2章 TMS320C54x的硬件结构 1.存储器寻址时序 CLKOUT开始时,DS = 1,PS = MSTRB = 0。 第一个周期:进行第一次程序存储器读操作; 第二个周期:进行第二次程序存储器读操作; 第三个周期:为读—写转换周期。 DS由高变低, PS和MSTRB低变高,为数据写作准备。 第四个周期:完成写操作。 整个读—读—写操作过程需要4个时钟周期。 2018年12月9日 DSP原理及应用
插入等待周期的存储器读—读—写操作时序图 18.12.9 第2章 TMS320C54x的硬件结构 插入等待周期的存储器读—读—写操作时序图 1.存储器寻址时序 通常情况下,存储器读操作需要1个周期,扩展后插入一个周期,成为2个周期,而数据空间写操作仍为2个周期。 读 写 CLKOUT 地址 数据 R/W PS MSTRB DS 等待状态 等待状态 2018年12月9日 DSP原理及应用
第2章 TMS320C54x的硬件结构 存储器写—写—读操作时序图 CLKOUT 地址 数据 R/W PS,DS IS MSTRB 写 读 18.12.9 第2章 TMS320C54x的硬件结构 存储器写—写—读操作时序图 写 读 CLKOUT 地址 数据 R/W PS,DS MSTRB IS 2018年12月9日 DSP原理及应用
当 MSTRB 由低变高后,写操作的地址线和数据线继续保持约半个周期的有效。 18.12.9 第2章 TMS320C54x的硬件结构 1.存储器寻址时序 当 MSTRB 由低变高后,写操作的地址线和数据线继续保持约半个周期的有效。 当R/W改变时,在每一个写周期结束瞬间MSTRB变为高电平,以防止存储器被再次改写。 每次存储器写操作需要2个机器周期,而仅随其后的读操作也需要2个周期。 2018年12月9日 DSP原理及应用
在没有插入等待周期的情况下,对I/O设备读/写操作时,分别需要占用2个周期。 18.12.9 第2章 TMS320C54x的硬件结构 2.I/O寻址时序图 在没有插入等待周期的情况下,对I/O设备读/写操作时,分别需要占用2个周期。 通常情况下,地址线变化发生在CLKOUT的下降沿。只有当I/O寻址之前是一次存储器寻址,则地址总线的变化发生在上升沿。 IOSTRB的低电平发生在时钟的上升沿到下一个上升沿之间。 2018年12月9日 DSP原理及应用
无插入等待周期的I/O读—写—读操作时序图 18.12.9 第2章 TMS320C54x的硬件结构 无插入等待周期的I/O读—写—读操作时序图 I/O读 I/O写 CLKOUT R/W IOSTRB 地址 数据 IS 在无插入等待周期的情况下,I/O的读/写操作分别需要2个时钟周期。 2018年12月9日 DSP原理及应用
插入一个等待周期的I/O口读—写—读操作时序图 18.12.9 第2章 TMS320C54x的硬件结构 插入一个等待周期的I/O口读—写—读操作时序图 I/O读 I/O写 CLKOUT R/W IOSTRB 地址 数据 IS 等 待 周 期 等 待 周 期 等 待 周 期 每次进行I/O口读/写操作时都将延长一个周期。 2018年12月9日 DSP原理及应用