多处理器系统是指包含两台或多台功能相近的处理器,处理器之间彼此可以交换数据,所有处理器共享内存,I/O设备,控制器,及外部设备,整个硬件系统由统一的操作系统控制,在处理器和程序之间实现作业、任务、程序、数组极其元素各级的全面并行。
合成孔径雷达信号处理机系统的任务就是对雷达回波信号进行距离向和方位向的二维数据脉冲压缩,从而得到地面目标的高分辨率图像。该系统是一个实时信号处理系统,系统数据量大,运算复杂。该系统A/D转换模块的采样率为200Mbyte/s,雷达回波信号I/Q正交双通道,每通道采样2048Mbtyte/s,雷达回波信号I/Q正交双通道,每通道采样2048点,脉冲重复频率为1.4kHz,则数据率为5.6Mbyte/s。标量处理模块用多片ADSP2106X来完成。矢量处理模块用LH9124/9320芯片组来完成。后处理用TMS320C31来完成。中心控制器用i386FX单片机来完成,图象显示及人机接口用具ISA总线及PCI总线的ALL INONE来完成。显面易见,这是一个多处理器系统。
多个处理器必须进行交换数据,系统才能协同并行工作。处理器间交换数据可以有两种方法,一种是利用标准总线结构实现板间数据传输,另一种是利用共享存储体的方法。两个处理器要交换数据则必须要有两个处理器都可以访问的共享存储体,一个处理器将数据写入存储体,而由另一处理器将数据时分读出,这种方法可以实现处理器总线的隔离,使两个处理器间可以有效地交换数据,实现数据共享。这三种方法所要注意的问题是处理器间信号的握手,即当一个处理器给存储体写入数据后产生旗标通知另一处理器将数据取走。另一个问题是两个处理器访问同一存储单元可能产生的冲突。三种方法讨论如下:
1 用双口RAM实现两个处理器间数据交换
双口RAM是一种双端口器件,充许两个处理器各访问一个端口,每一个处理器都可以将双口RAM看作自己的本地存储器。双口RAM的每个端口都有各自的数据、地址、控制总线,允许处理器对存储器的任何地址执行随机读写操作。当两个处理器同时对同一地址单元操作,双口RAM会自动产生BUSY信号表示冲突。一般此BUSY信号接至处理器的READY端,使其读或写时序延长,终读出或写入。
作为雷达数字信号处理机的一个子系统的一部分,这里设计了一个电路用于ISA总线和i386EX单片机交换数据,其示意性原理图如图1所示。
其中EXD0~15和i386EX单片机的数据总线相连,EXB1~11和i386EX的址总线相连,EXOE#、EXWEL#、EXWRH#由i386EX状态信号、读写信号组合产生,EXCS#则i386EX高端地址译码产生。ISAD0~15和ISA数据总线相连,ISAB1~11和ISA的地址总线相连,ISAOER#、ISAWRL#、ISAWRH#、ISACS#是由ISA总线的地址、读写、状态组合产生,BUSY驱动i386EX的READY信号,结果表明i386EX和ISA总线间可以有效可靠地交换数据。
2 用FIFO实现两个处理器间数据交换
FIFO是一种先进先出的结构,较之双口RAM,它有如下特点:它无地址线,布线简单;第二它不能像双口RAM一样可以对任意地址单元操作,实现随机存取,只能是顺序存取。FIFO只能实现块操作,其读出数据的顺序和写入的顺序是一样的。FIFO有单向双向之分和同步异步之分。单向FIFO只能向一个方向传输数据,双向FIFO可以向两个方向传输数据。目前FIFO的内部结构是由双口RAM加驱动双口RAM地址的计数器构成。同步FIFO是由专用时钟管脚信号来使计数器翻转,片选和读写是使能信号;异步FIFO是由读写信号使计数器翻转。IDT7205(CY7C460)是单向异步FIFO的典型芯片,其管脚分布如图2所示。
D0~8是数据输入总线,Q0~8是数据输出总线,R、W是读、写控制端,XI、XO是级联控制端,HF、FF是FIFO状态满标志,EF是FIFO状态空标志。根据HF、FF状态,写处理器依可以知道FIFO是否已满,根据EF状态读处理器依可以知道FIFO里是否有数据。
3 用总线开关加存储器实现两个处理器间数据交换
对于像图像处理等需要大量交换数据的应用场合,用双口RAM或FIFO方法依不太合适。双口RAM和FIFO一般容量较小,而且价格昂贵。比如说常用的双口RAM IDT7133只有32Kbit(2K×16bit),而单向FIFO IDT7205也只有8K×9bit。用总线开关外加大容量存储器很适合这种大容量的数据传输。
IDT74FST163212是一种典型的总线开关芯片,其管脚分布如图3所示。
其中S0~2是总线开关控制端,A、B、C、D是四个总线端口,每个总线端口有12根线组成,由S0~2控制A、B和C、D总线端口的导通或不导通。例如当S2、S1、S0为000时,总线间不导通,呈高阻态;当为001时,A总线端口和B总线端口导通,即A1和B1导通、A2和B2导通……;由于总线开关是由栅极可控的场效应管组成,信号无方向性,导通电阻很小,只有几个或十几个欧姆。这里设计了一个电路,由TMS320C30和一块FPGA作主控器共同访问一片存储器,其示意性原理图见图4。
利用共享存储体实现处理器间的数据交换是一种简单易行的方法。用共享存储体实现处理器间数据交换的各种方法中,总线开关加存储器的结构适用于大容量数据交换的场合。
[1]. TMS320C31 datasheet https://www.dzsc.com/datasheet/TMS320C31_1036758.html.
[2]. PCI datasheet https://www.dzsc.com/datasheet/PCI_1201469.html.
[3]. IDT7205 datasheet https://www.dzsc.com/datasheet/IDT7205_1093819.html.
[4]. IDT74FST163212 datasheet https://www.dzsc.com/datasheet/IDT74FST163212_60246.html.
[5]. TMS320C30 datasheet https://www.dzsc.com/datasheet/TMS320C30_1011909.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。