论文部分内容阅读
嵌入式计算(Embedded Computing)是一类最为广泛使用的计算形式,绝大多数的处理器都应用于嵌入式计算领域。随着嵌入式应用对计算需求的不断增长,嵌入式系统也向着高性能的方向发展。然而,嵌入式系统由于其固有特点而受到功耗、成本、体积等资源条件的限制,增加了嵌入式计算研究的难度。而且结点并行化的趋势更加突出了上述矛盾,同时要考虑实时性和编程复杂度带来的软件开发成本。
集群(Cluster)作为一种分布式存储结构,具备较高的计算性价比且易于扩展,适合中高端并行嵌入式应用环境。这类以嵌入式处理器为结点,以商业网络为互连的集群称为“嵌入式集群”,与通用集群相比拥有更高的计算密度和成本有效性。传统的嵌入式集群研究大多基于单核SoC处理器,通过以太网卡和交换机作星型互连,这种单一并行结构的计算和通信性能有限,且跨结点的高速缓存一致性也不易维护。
为了更好的解决并行嵌入式计算中的矛盾问题,在已有研究的基础上,本文结合国产龙芯多核处理器的特点优势,研究了多级并行和存储结构下嵌入式SMP集群系统的若干关键问题。系统化的研究包括分布式共享存储结构、实时操作系统、高效互连网络、嵌入式并行编程环境等各个层次,并针对各项关键技术进行性能优化。本文的主要贡献和创新点如下:
1.与分布式共享存储相结合的嵌入式集群结构LESC(Loongson Embedded SMPCluster)。本文实现的LESC嵌入式集群以龙芯SMP处理器做结点构成“计算单元”(Computing Unit),单元问通过HyperTransport总线双路直连或2维mesh拓扑互连的方式组成板卡级紧凑的集群模式。LESC集群既保证了单元内实时内核对本地内存访问和任务调度的确定性,又结合龙芯处理器的DSM(DistributedShared Memorv)机制进行高效的单元间通信,可更好地满足嵌入式实时性要求。该结构提供了一种新颖、高效、低成本的嵌入式解决方案,为本文创造了良好的研究平台。
2.支持SMP调度的RTOS内核移植与优化。针对嵌入式集群的实时性要求,本文在多核SMP结点单元上移植了VxWorks实时操作系统,利用板级支持包(BSP)完成内核初始化启动与驱动程序的整合。基于VxWorks的抢占式内核,并结合龙芯SMP处理器结构特点,实现一种全局实时调度算法。本文还对实时内核的存储管理进行优化,提高了计算任务的访存确定性,进一步增强系统实时性。性能测试表明经优化后的实时内核操作的响应时间都小于5μs,优于传统嵌入式集群和Linux等通用系统,实现了良好的基础软件环境。
3.基于逻辑共享内存的虚拟网络SMVN(Shared Memory Virtual Network)。本文利用LESC集群内硬件支持的跨单元共享存储访问,构建用于网络数据缓存的逻辑共享内存池,实现远端内存的高效管理。在此基础上,通过对底层网络协议的驱动模拟和数据包的管理优化,提出一种新颖的兼容TCP/IP协议栈的虚拟化网络方法。SMVN统一了LESC集群计算单元内外的物理通信基础,使模块内通信性能提高到传统嵌入式集群快速以太网络的3倍以上;同时也缩小了两个并行级别的性能差距,单元间带宽可达单元内的86%以上。
4.嵌入式实时多级并行编程环境LE-MPI(Loongson Embedded MPI)。嵌入式系统内核缺乏合适的并行编程环境从而无法充分开发SMP集群的并行资源。本文将SMVN。的共享存储特性与基于socket通道的消息传递模型相结合,提出一种支持RTOS实时调度的LE-MPI并行编程环境。LE-MPI上层完全兼容MPICH2接口,提高并行程序的可移植性,并引入“映射矩阵”方便、高效地配置并行粒度。LE-MPI还利用处理器的矩阵转置功能实现消息传递加速与并行程序的数据预取优化。通信测试表明其消息传递延迟可降低44.3%,带宽增加29.8%;Linpack测试验证了LE-MPI对大规模并行程序的支持,其性能满足嵌入式计算的需求。