例3:配置L0BUF,利用LSRQ中断实现数据传递。
r0=0x0002c688;
dm(LAR)=r0;
ustat1=dm(LCTL0);
bit clr ustat1 L0EN; /*禁止链路缓冲0*/
dm(LCTL0)=ustat1;
ustat1=dm(LSRQ);
bit set ustat1 L0TM; /*链路0发送屏蔽*/
bit set ustat1 L0RM; /*链路0接收屏蔽*/
dm(LSRQ)=ustat1;
bit set imask LSRQI; /*使能LSRQ中断*/
bit set mode1 IRPTEN;
……
上面的程序段可以放在主程序的开始。经过以上的配置,就可以通过LSRQ中断方便地实现与另一片SHARC的链路口通信(发送、接收)。另外需要注意的是,当修改链路缓冲器的使能位LxEN时,必须将该中断屏蔽(bit clr imask LSRQI),否则有可能产生不可预料的LSRQ中断。
3 结束语
采用共享存储器并行系统和分布存储器并行系统各有特色,结合这二种系统设计的思想更易于构建并行处理系统。设计时,可以采用子模块结构把这二者结合起来。子模块内部,采用共享存储器和分布存储器并存,各个SHARC间根据需要既可以通过总线传送数据,又可以通过链路口传送数据。子模块之间采用分布式存储器系统,通过链路口进行数据传递。采用以上设计,可以实现有效的并行处理,使系统整体性能有很大的提高。