位置:51电子网 » 技术资料 » 接口电路

基于共享存储体的多处理器间数据交换的几种方法

发布时间:2007/9/10 0:00:00 访问次数:634

    摘要:一个大型复杂系统往往有多个处理器,处理器间要协同工作依必须交换数据。给出基于存储体共享的处理器交换数据的三种方法,即:基于双口RAM的方法、基于单向或双向FIFO的方法、基于总线开关加存储器的方法。在某型合成孔径雷达实时信号处理系统设计中,用这三种方法都取得了预期的结果。
    关键词:多处理器  数据交换  双口RAM  单向(或双向)FIFO  总线开关加存储器

    合成孔径雷达信号处理机系统的任务就是对雷达回波信号进行距离向和方位向的二维数据脉冲压缩,从而得到地面目标的高分辨率图像。该系统是一个实时信号处理系统,系统数据量大,运算复杂。该系统A/D转换模块的采样率为200Mbyte/s,雷达回波信号I/Q正交双通道,每通道采样2048Mbtyte/s,雷达回波信号I/Q正交双通道,每通道采样2048点,脉冲重复频率为1.4kHz,则数据率为5.6Mbyte/s。系统在算法上主要完成距离向和方位向的脉冲压缩,还要完成距离徙动校正和运动补偿。根据合成孔径雷达成像算法,系统主要由A/D数据采集模块、预处理模块、标量处理模块、矢量处理模块、后处理模块、中心控制及数据显示模块组成。其中A/D数据采集模块的A/D转换器用MAMIM公司的SPT7750芯片,其采样率为200Mbyte/s,分辨率为8bit。预处理用TMS320C6201定点处理器,峰值运算速率为1600mips。标量处理模块用多片ADSP2106X来完成。矢量处理模块用LH9124/9320芯片组来完成。后处理用TMS320C31来完成。中心控制器用i386FX单片机来完成,图象显示及人机接口用具ISA总线及PCI总线的ALL INONE来完成。显面易见,这是一个多处理器系统。

    作为一个系统,多个处理器必须交换数据,系统才能协同并行工作。处理器间交换数据可以有两种方法,一种是利用标准总线结构实现板间数据传输,如VME、Compact PCI总线等,利用这种方法传输数据要求本板有总线控制器接口电路,还要有0槽卡,系统复杂,成本高,这里不作讨论。另一种是利用共享存储体的方法,这是本文讨论的重点。两个处理器要交换数据则必须要有两个处理器都可以访问的共享存储体,一个处理器将数据写入存储体,而由另一处理器将数据时分读出,这种方法可以实现处理器总线的隔离,使两个处理器间可以有效地交换数据,实现数据共享。两个处理器要共同访问一个存储体有这样几种方法,其一是双口RAM法、其二是先进先出的FIFO法、其三是总线开关加存储器法。这三种方法所要注意的问题是处理器间信号的握手,即当一个处理器给存储体写入数据后产生旗标通知另一处理器将数据取走。另一个问题是两个处理器访问同一存储单元可能产生的冲突。下面依分别讨论这三种方法。

1 用双口RAM实现两个处理器间数据交换

   
双口RAM是一种双端口器件,充许两个处理器各访问一个端口,每一个处理器都可以将双口RAM看作自己的本地存储器。双口RAM的每个端口都有各自的数据、地址、控制总线,允许处理器对存储器的任何地址执行随机读写操作。当两个处理器同时对同一地址单元操作(如同时写、或一个写一个读),双口RAM会自动产生BUSY信号表示冲突。一般此BUSY信号接至处理器的READY端,使其读或写时序延长,最终读出或写入。

    IDT公司的IDT7133是一种典型的双口RAM芯片,其管脚分布如图1所示。其中IO0~15表示数据总线、A0~10表示地址总线、R/W、CE、OE分别表示读/写、片选、读选通,BUSY是IDT7133的输出信号表示冲突,L、R分别表示左右端口,读写管脚中的L、U表示16Bit数据的低字节、高字节的区分,字母上方的一号表示该信号低电平有效。

    作为雷达数字信号处理机的一个子系统的一部分,笔者设计了一个电路用于ISA总线和i386EX单片机交换数据,其示意性原理图如图1所示。

    其中EXD0~15和i386EX单片机的数据总线相连,E

    摘要:一个大型复杂系统往往有多个处理器,处理器间要协同工作依必须交换数据。给出基于存储体共享的处理器交换数据的三种方法,即:基于双口RAM的方法、基于单向或双向FIFO的方法、基于总线开关加存储器的方法。在某型合成孔径雷达实时信号处理系统设计中,用这三种方法都取得了预期的结果。
    关键词:多处理器  数据交换  双口RAM  单向(或双向)FIFO  总线开关加存储器

    合成孔径雷达信号处理机系统的任务就是对雷达回波信号进行距离向和方位向的二维数据脉冲压缩,从而得到地面目标的高分辨率图像。该系统是一个实时信号处理系统,系统数据量大,运算复杂。该系统A/D转换模块的采样率为200Mbyte/s,雷达回波信号I/Q正交双通道,每通道采样2048Mbtyte/s,雷达回波信号I/Q正交双通道,每通道采样2048点,脉冲重复频率为1.4kHz,则数据率为5.6Mbyte/s。系统在算法上主要完成距离向和方位向的脉冲压缩,还要完成距离徙动校正和运动补偿。根据合成孔径雷达成像算法,系统主要由A/D数据采集模块、预处理模块、标量处理模块、矢量处理模块、后处理模块、中心控制及数据显示模块组成。其中A/D数据采集模块的A/D转换器用MAMIM公司的SPT7750芯片,其采样率为200Mbyte/s,分辨率为8bit。预处理用TMS320C6201定点处理器,峰值运算速率为1600mips。标量处理模块用多片ADSP2106X来完成。矢量处理模块用LH9124/9320芯片组来完成。后处理用TMS320C31来完成。中心控制器用i386FX单片机来完成,图象显示及人机接口用具ISA总线及PCI总线的ALL INONE来完成。显面易见,这是一个多处理器系统。

    作为一个系统,多个处理器必须交换数据,系统才能协同并行工作。处理器间交换数据可以有两种方法,一种是利用标准总线结构实现板间数据传输,如VME、Compact PCI总线等,利用这种方法传输数据要求本板有总线控制器接口电路,还要有0槽卡,系统复杂,成本高,这里不作讨论。另一种是利用共享存储体的方法,这是本文讨论的重点。两个处理器要交换数据则必须要有两个处理器都可以访问的共享存储体,一个处理器将数据写入存储体,而由另一处理器将数据时分读出,这种方法可以实现处理器总线的隔离,使两个处理器间可以有效地交换数据,实现数据共享。两个处理器要共同访问一个存储体有这样几种方法,其一是双口RAM法、其二是先进先出的FIFO法、其三是总线开关加存储器法。这三种方法所要注意的问题是处理器间信号的握手,即当一个处理器给存储体写入数据后产生旗标通知另一处理器将数据取走。另一个问题是两个处理器访问同一存储单元可能产生的冲突。下面依分别讨论这三种方法。

1 用双口RAM实现两个处理器间数据交换

   
双口RAM是一种双端口器件,充许两个处理器各访问一个端口,每一个处理器都可以将双口RAM看作自己的本地存储器。双口RAM的每个端口都有各自的数据、地址、控制总线,允许处理器对存储器的任何地址执行随机读写操作。当两个处理器同时对同一地址单元操作(如同时写、或一个写一个读),双口RAM会自动产生BUSY信号表示冲突。一般此BUSY信号接至处理器的READY端,使其读或写时序延长,最终读出或写入。

    IDT公司的IDT7133是一种典型的双口RAM芯片,其管脚分布如图1所示。其中IO0~15表示数据总线、A0~10表示地址总线、R/W、CE、OE分别表示读/写、片选、读选通,BUSY是IDT7133的输出信号表示冲突,L、R分别表示左右端口,读写管脚中的L、U表示16Bit数据的低字节、高字节的区分,字母上方的一号表示该信号低电平有效。

    作为雷达数字信号处理机的一个子系统的一部分,笔者设计了一个电路用于ISA总线和i386EX单片机交换数据,其示意性原理图如图1所示。

    其中EXD0~15和i386EX单片机的数据总线相连,E

相关IC型号

热门点击

 

推荐技术资料

耳机放大器
    为了在听音乐时不影响家人,我萌生了做一台耳机放大器的想... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!