基于Visual DSP++4.0开发的TigerSHARC DSP多处理器系统及其应用
时间:06-14
来源:作者:杨荣华,张弓
点击:
0 引言
ADI公司的高性能数字信号处理器Tiger-SHARC系歹0包括ADSP-TS101S、ADSP-TS201S、ADSP-TS202S和ADSP-TS203S等芯片。它们被广泛应用于视频和通信市场,包括3G蜂窝和宽带无线基站以及国防军事设备,如战地雷达、航空器和声纳等。目前,TigerSHARC高性能数字信号处理器已成为多个DSP并行处理应用的实用标准,对加快数字信号处理技术的发展和扩大DSP的应用起到了十分突出的促进作用。Visual DSP++4.0是一种使用方便的集成调试开发软件平台,它支持ADI公司浮点系列处理器的各种产品(如SHARC系列,BLACKfin系列和TigerSHARC系列)。它可以通过可视化的图形窗口方式与用户进行信息交换,也可以在窗口中进行高效的工程管理,并轻松地在编辑、编译和调试之间相互切换,以实现高效率的程序开发。 本文结合某图像实时处理系统的实现,重点介绍了基于ADSP-TS201S的多处理器系统的构建方法,讨论了其数据传输的模式,从而实现了以Visual DSP++4.0为平台,面向ADSP-TS201S EZ-KitLite,并采用共享外部总线的模式构成的MP系统。
1 多处理器系统的构建
当系统中存在多个处理器,且用户想一起控制/调试这些处理器时,必须要为协调功能进行额外的编程,以便调试和构建多处理器系统。
1.1 MP系统的连接描述文件(LDF)
建立MP系统的第一步是使用链接器的多处理器功能创建一个多处理器工程和一个描述系统的LDF文件。
其中LDF文件用于描述多处理器的存储器偏移量、共享存储区和每个处理器的存储空间。在书写MP系统的LDF文件时,必须考虑以下LDF命令:
◇MPMEMORY {},该命令定义了每个处理器在多处理器存储空间(MMS)中的偏移量。在多处理器链接过程中,链接器使用该偏移量来链接各个处理器;
◇MEMORY {},该命令可定义系统中每个处理器的存储空间;
◇PROCESSOR {} 和SECTIONS {},利用这两个命令可定义各个处理器,并可使用存储器定义将每个处理器的输出文件放置到程序段中。
◇SHARED_MEMORY {},当在系统中使用了外部共享存储器时,需要使用该命令。该命令能识别共享存储器项的输出,并生成驻留在MP系统的共享存储空间中的共享存储区的可执行文件(.SM)。
◇SM文件由工程文件中的源文件(.ASM,.C或CPP)产生,该文件包含有放置于外部共享存储器中的数据变量的定义。
◇LINK_AGAINST (),该命令可解析多处理器存储空间中的符号,并命令链接器检查指定的可执行文件(.DXEs and.SMs),以解析局部没有解析的变量和标号,以及在MMS (也就是系统中其他处理器的内部存储器)中定义的表达式或变量。通常在LDF文件中,必须使用LINK_A-GAINST 0命令。
如果命令行中包含.SM和DXE文件,则必须先放.SM文件,后面接着放其他DXE文件,只有这样,链接器才能正确的解析变量。一个LDF文件中最多可以说明的处理器数量是由处理器结构指定的(比如ADSP TS201最多支持8片)。应该注意的是,在同一个LDF文件中,VisualDSP++4.0不支持有不同结构的DSP混合使用(如ADSP-TS201S和ADSP-21160混合使用)。
1.2 多处理器存储空间(MMS)
多处理器存储空间可分成许多不同的地址区(地址区的数量是处理器指定的),这些地址区与MP系统中各个DSP的内部存储器空间是一致的。图1所示是对ADSP-TS201S的多处理器存储空间的描述。
多处理器系统中某个特定的处理器的内部存储器既可以作为源地址访问,也可以作为目的地址来访问,具体访问取决于使用的地址区。对广播区写数据时,将访问多处理器系统中所有DSP的内部存储器。例如,访问地址空间0x1000000-0x13FFFFF中的某个存储单元,与访问多处理器系统中ID号为0的DSP的内部存储空间是等价的。
TigerSHARC处理器可通过对其多处理器空间的写操作来访问,也可以访问其自身的内部存储空间,但该操作是通过外部总线完成,在数据通过TigerSHARC总线接口的特殊情况下,一般不应使用该操作。而对多处理器空间自身的读访问将设置SYSTAT寄存器中的SELF MPROC READ错误标志位,表示该操作是非法访问。
下面是使用MMS来访问系统中另一片DSP芯片存储区的源程序(此时,ID号为0的DSP访问ID号为1的DSP的内部存储空间):
其中,ID1的MMS地址为0x14000000,该地址与ID1相对应的内部存储器(0X800000)地址相加,就可以IDO对ID1的内部存储区进行读访问。
在DSP多处理器系统中,必须存在ID号为0且接有SDRAM的DSP,该DSP用于执行对SDRAM的初始化(MRS)。这样,就存在一个仅由ID=000的DSP使能开漏上拉的相关问题。也就是说,在复位后。ID0就是总线控制器,由它来以循环优先级方式将总线控制权从当前主处理器转移到其它处理器。
ADI公司的高性能数字信号处理器Tiger-SHARC系歹0包括ADSP-TS101S、ADSP-TS201S、ADSP-TS202S和ADSP-TS203S等芯片。它们被广泛应用于视频和通信市场,包括3G蜂窝和宽带无线基站以及国防军事设备,如战地雷达、航空器和声纳等。目前,TigerSHARC高性能数字信号处理器已成为多个DSP并行处理应用的实用标准,对加快数字信号处理技术的发展和扩大DSP的应用起到了十分突出的促进作用。Visual DSP++4.0是一种使用方便的集成调试开发软件平台,它支持ADI公司浮点系列处理器的各种产品(如SHARC系列,BLACKfin系列和TigerSHARC系列)。它可以通过可视化的图形窗口方式与用户进行信息交换,也可以在窗口中进行高效的工程管理,并轻松地在编辑、编译和调试之间相互切换,以实现高效率的程序开发。 本文结合某图像实时处理系统的实现,重点介绍了基于ADSP-TS201S的多处理器系统的构建方法,讨论了其数据传输的模式,从而实现了以Visual DSP++4.0为平台,面向ADSP-TS201S EZ-KitLite,并采用共享外部总线的模式构成的MP系统。
1 多处理器系统的构建
当系统中存在多个处理器,且用户想一起控制/调试这些处理器时,必须要为协调功能进行额外的编程,以便调试和构建多处理器系统。
1.1 MP系统的连接描述文件(LDF)
建立MP系统的第一步是使用链接器的多处理器功能创建一个多处理器工程和一个描述系统的LDF文件。
其中LDF文件用于描述多处理器的存储器偏移量、共享存储区和每个处理器的存储空间。在书写MP系统的LDF文件时,必须考虑以下LDF命令:
◇MPMEMORY {},该命令定义了每个处理器在多处理器存储空间(MMS)中的偏移量。在多处理器链接过程中,链接器使用该偏移量来链接各个处理器;
◇MEMORY {},该命令可定义系统中每个处理器的存储空间;
◇PROCESSOR {} 和SECTIONS {},利用这两个命令可定义各个处理器,并可使用存储器定义将每个处理器的输出文件放置到程序段中。
◇SHARED_MEMORY {},当在系统中使用了外部共享存储器时,需要使用该命令。该命令能识别共享存储器项的输出,并生成驻留在MP系统的共享存储空间中的共享存储区的可执行文件(.SM)。
◇SM文件由工程文件中的源文件(.ASM,.C或CPP)产生,该文件包含有放置于外部共享存储器中的数据变量的定义。
◇LINK_AGAINST (),该命令可解析多处理器存储空间中的符号,并命令链接器检查指定的可执行文件(.DXEs and.SMs),以解析局部没有解析的变量和标号,以及在MMS (也就是系统中其他处理器的内部存储器)中定义的表达式或变量。通常在LDF文件中,必须使用LINK_A-GAINST 0命令。
如果命令行中包含.SM和DXE文件,则必须先放.SM文件,后面接着放其他DXE文件,只有这样,链接器才能正确的解析变量。一个LDF文件中最多可以说明的处理器数量是由处理器结构指定的(比如ADSP TS201最多支持8片)。应该注意的是,在同一个LDF文件中,VisualDSP++4.0不支持有不同结构的DSP混合使用(如ADSP-TS201S和ADSP-21160混合使用)。
1.2 多处理器存储空间(MMS)
多处理器存储空间可分成许多不同的地址区(地址区的数量是处理器指定的),这些地址区与MP系统中各个DSP的内部存储器空间是一致的。图1所示是对ADSP-TS201S的多处理器存储空间的描述。
多处理器系统中某个特定的处理器的内部存储器既可以作为源地址访问,也可以作为目的地址来访问,具体访问取决于使用的地址区。对广播区写数据时,将访问多处理器系统中所有DSP的内部存储器。例如,访问地址空间0x1000000-0x13FFFFF中的某个存储单元,与访问多处理器系统中ID号为0的DSP的内部存储空间是等价的。
TigerSHARC处理器可通过对其多处理器空间的写操作来访问,也可以访问其自身的内部存储空间,但该操作是通过外部总线完成,在数据通过TigerSHARC总线接口的特殊情况下,一般不应使用该操作。而对多处理器空间自身的读访问将设置SYSTAT寄存器中的SELF MPROC READ错误标志位,表示该操作是非法访问。
下面是使用MMS来访问系统中另一片DSP芯片存储区的源程序(此时,ID号为0的DSP访问ID号为1的DSP的内部存储空间):
其中,ID1的MMS地址为0x14000000,该地址与ID1相对应的内部存储器(0X800000)地址相加,就可以IDO对ID1的内部存储区进行读访问。
在DSP多处理器系统中,必须存在ID号为0且接有SDRAM的DSP,该DSP用于执行对SDRAM的初始化(MRS)。这样,就存在一个仅由ID=000的DSP使能开漏上拉的相关问题。也就是说,在复位后。ID0就是总线控制器,由它来以循环优先级方式将总线控制权从当前主处理器转移到其它处理器。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- FPGA的DSP性能揭秘(06-16)
- 用CPLD实现DSP与PLX9054之间的连接(07-23)
- DSP+FPGA结构在雷达模拟系统中的应用(01-02)