节点文献
可重构嵌入式系统样机平台与操作系统研究
【作者】 周学功;
【导师】 彭澄廉;
【作者基本信息】 复旦大学 , 计算机系统结构, 2007, 博士
【摘要】 目前可重构计算技术已成为计算系统研究中的一个新热点。作为一种新的体系结构,可重构计算同时具有软件的灵活性和硬件的高性能,在嵌入式系统和高性能计算等领域获得了越来越广泛的应用。然而操作系统和应用开发工具目前仍是可重构系统研究中的一个薄弱之处。本文重点研究可重构嵌入式系统的操作系统支持,而创建一个合适的样机平台是开展进一步研究的基础。本文主要进行几个方面的研究工作:首先,对目前主要的可重构计算平台进行了分类,提出了操作系统对于可重构平台的要求,然后给出了可重构嵌入式系统硬件平台的设计方案。第二,针对可重构嵌入式系统样机平台,提出并初步实现了一个基于Eclipse的集成开发环境以支持样机平台上的应用开发。它采用自顶向下的软硬件协同设计流程;利用插件技术集成了不同抽象层次的设计工具和外部的EDA工具;通过IP库和内部通信机制实现各设计层次间的数据交换和设计人员之间的协作;其IP库集成了不同抽象层次、不同来源和不同实现方式的异构IP。第三,提出了一个RTL级异构IP集成算法,并在集成工具中得到了实现。该算法以及采用该算法的RTL级设计工具利用参数化类隐藏了IP的不同实现方式;层次化的集成方式和灵活的互连逻辑IP能够支持非常复杂的IP互连结构;通过总线转换接口的包装,实现了不同总线接口IP的集成;通过虚拟设计和自动化的IP集成,显著地降低了设计的工作量。第四:在分析软硬件任务区别的基础上提出统一多任务模型的操作系统框架;然后给出操作系统中的任务间通信设计方案,包括硬件任务与接口设计和通信控制器的设计。最后给出基于Linux的可重构操作系统设计方案。该操作系统具有以下特点:以Linux为基础扩展,兼容Pthread等现有的并行编程模型规范,能够更好地支持应用系统的开发;通过硬件任务桩线程实现任务间的通信,简化了硬件任务的实现,并能完全兼容现有的软件任务间通信机制;支持动态部分可重构的FPGA,动态创建硬件任务,更有效地管理硬件资源。最后,研究了硬件任务的在线放置与调度问题。为了进行可重构硬件任务的动态管理,要为硬件任务在可重构器件上找到合适的配置位置,并且进行配置后才能运行硬件任务。在总结了现有工作的基础上,针对硬件任务的调度提出了最早识别的概念,并首次实现了两个最早识别的在线调度算法,新算法在调度质量上显著优于原有的算法,而运行时开销没有明显增加。此外还提出了一个硬件任务放置算法,与原有算法相比,新算法在放置效果和运行时开销方面均有优势。
【Abstract】 As a new computing architecture, reconfigurable computing has become a subject of a great deal of research. Its key feature is the ability to perform computations in hardware to increase performance, while retaining much of the flexibility of a software solution. Reconfigurable computing is spreading widely in various domains from embedded system to high performance computing. However, developers working with reconfigurable computing still lack the support of operating systems and convenient application developing tools.This paper mainly focuses on the operating system support for reconfigurable computing, and building a suitable prototype platform is the base of further researching. The main works of this paper are shown as follow:Firstly, this paper classifies current modern reconfigurable computing platforms into several groups. The properties of reconfigurable computing platforms required by an operating system are given. Then the design of a reconfigurable embedded system prototype platform is present.Secondly, this paper presents and implements Embedded System Integrated Design Environment (ESIDE) based on Eclipse platform, for supporting the application development on the prototype platform. ESIDE supports embedded system design at several abstract levels and achieves a top-down design procedure. The design tools at each level and other external EDA tools are integrated into a whole environment. With the management of the IP Database, ESIDE provides well support for team cooperation.Thirdly, a heterogeneous IP integration algorithm is presented and is implemented in ESIDE. It adopts hierarchical integration and flexible connection IPs which enable it support very complex IP connection structures. IPs with different bus interfaces can be integrated freely via bus protocol converters. The practice of virtual design technique and automatic IP integration reduce the complexity of system design significantly.Fourthly, based on the essential differences between software-tasks and hardware-tasks, this paper presents an operating system framework for reconfigurable systems using uniform multi-task model. Then the inter-task communication architecture is presented, and a Linux based operating system for reconfigurable computing is presented. A Hardware Task Stub Thread is combined to each hardware task to deal with inter-task communications. This simplifies hardware task designing, and makes the operating system compatible with current software programming models and inter-task communication mechanisms. It supports dynamic partially reconfigurable FPGAs and dynamic task creation, so it can manage hardware resources more efficiently.Finally we focus on the placement and scheduling of hardware tasks on reconfigurable devices. Previous works are summarized, and the notion of recognition-earliest is introduced, that is the algorithm can arrange the start time of a newly arrived task as early as possible. A fast placement algorithm and two recognition-earliest on-line scheduling algorithms are proposed. The evaluation results show that our new scheduling algorithm achieves the best performance compared with previous algorithms, while has a quite low runtime cost, and the placement algorithm is one of the best algorithms among all previous works.
【Key words】 Reconfigurable Computing; Prototype Platform; IP Integration; Real-time Operating System; Hardware Task Placement; Hardware Task Scheduling;