可重构嵌入式系统样机平台与操作系统研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
目前可重构计算技术已成为计算系统研究中的一个新热点。作为一种新的体系结构,可重构计算同时具有软件的灵活性和硬件的高性能,在嵌入式系统和高性能计算等领域获得了越来越广泛的应用。然而操作系统和应用开发工具目前仍是可重构系统研究中的一个薄弱之处。
     本文重点研究可重构嵌入式系统的操作系统支持,而创建一个合适的样机平台是开展进一步研究的基础。本文主要进行几个方面的研究工作:
     首先,对目前主要的可重构计算平台进行了分类,提出了操作系统对于可重构平台的要求,然后给出了可重构嵌入式系统硬件平台的设计方案。
     第二,针对可重构嵌入式系统样机平台,提出并初步实现了一个基于Eclipse的集成开发环境以支持样机平台上的应用开发。它采用自顶向下的软硬件协同设计流程;利用插件技术集成了不同抽象层次的设计工具和外部的EDA工具;通过IP库和内部通信机制实现各设计层次间的数据交换和设计人员之间的协作;其IP库集成了不同抽象层次、不同来源和不同实现方式的异构IP。
     第三,提出了一个RTL级异构IP集成算法,并在集成工具中得到了实现。该算法以及采用该算法的RTL级设计工具利用参数化类隐藏了IP的不同实现方式;层次化的集成方式和灵活的互连逻辑IP能够支持非常复杂的IP互连结构;通过总线转换接口的包装,实现了不同总线接口IP的集成;通过虚拟设计和自动化的IP集成,显著地降低了设计的工作量。
     第四:在分析软硬件任务区别的基础上提出统一多任务模型的操作系统框架;然后给出操作系统中的任务间通信设计方案,包括硬件任务与接口设计和通信控制器的设计。最后给出基于Linux的可重构操作系统设计方案。该操作系统具有以下特点:以Linux为基础扩展,兼容Pthread等现有的并行编程模型规范,能够更好地支持应用系统的开发;通过硬件任务桩线程实现任务间的通信,简化了硬件任务的实现,并能完全兼容现有的软件任务间通信机制;支持动态部分可重构的FPGA,动态创建硬件任务,更有效地管理硬件资源。
     最后,研究了硬件任务的在线放置与调度问题。为了进行可重构硬件任务的动态管理,要为硬件任务在可重构器件上找到合适的配置位置,并且进行配置后才能运行硬件任务。在总结了现有工作的基础上,针对硬件任务的调度提出了最早识别的概念,并首次实现了两个最早识别的在线调度算法,新算法在调度质量上显著优于原有的算法,而运行时开销没有明显增加。此外还提出了一个硬件任务放置算法,与原有算法相比,新算法在放置效果和运行时开销方面均有优势。
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.
引文
[1] Compton K. Reconfigurable Computing: A Survey of Systems and Software[J]. ACM Computing Surveys, 2002, 34(2): 171-210.
    [2] J.Villasenor, W.H.Mangione-Smith. Configurable Computing[J]. Scientific American, 1997, 23-27(11).
    [3] J. M. Arnold. The Splash 2 software environment[C]. IEEE Workshop on FPGAs for Custom Computing Machines, 1993, 88-93.
    [4] J.M. Arnold, D. A. Buell, D. T. Hoang, D. V. Pryor, N. Shirazi and M. R. Thistle. The Splash 2 processor and applications[C]. IEEE International Conference on Computer Design: VLSI in Computers and Processors, 1993,482-485.
    [5] J. D. Lohn, G. L. Haith, S. P. Colombano, and D. Stassinopoulos., Towards evolvingcircuits for autonomous space applications[C]. IEEE Aerospace Conference Proceedings,Vol. 5, 2000:473-486
    [6] Maya Gokhale, Paul S. Graham. Reconfigurable Computing: Accelerating Computing with Field-Programming Gate Arrays[M]. Springer, Netherlands, 2005
    [7] Dehon A, Wawrzynek J. Reconfigurable Computing: What, Why, and Implications for Design Automation[C], Proc. 36th ACM/IEEE Conf. on Design Automation, ACM Press, 1999:610-61S.
    [8] Gerald Estrin. Reconfigurable Computer Origins: The UCLA Fixed-Plus-Variable (F+V) Structure Computer[J]. IEEE Annals of the History of Computing, 2002, 24(4): 3-9.
    [9] T. J. Callahan, J. R. Hauser and J. Wawrzynek, The Garp architecture and C compiler[J]. Computer, 2000, 62-69 (2000).
    [10] M. B. Taylor, J. Kim, J. Miller, D. Wentzlaff, F. Ghodrat, B. Greenwald, H. Hoffman, R Johnson, L. Jae-Wook, W. Lee, A. Ma, A. Saraf, M. Seneski, N. Shnidman, V. Strumpen, M. Frank, S. Amarasinghe and A. Agarwal, The Raw microprocessor: a computational fabric for software circuits and general-purpose programs[J]. Micro, 2003, 25-35 (22).
    [11] S. C. Goldstein, H. Schmit, M. Budiu, S. Cadambi, M. Moe and R. R. Taylor, PipeRench: a reconfigurable architecture and compiler[J]. Computer, 2000, 70-77 (2000).
    [12] I. Chameleon Systems. CS2000 Advance Product Specification[EB/OL]. Chameleon Systems, 2000.
    [13] H. Singh, L. Ming-Hau, L. Guangming, F. J. Kurdahi, N. Bagherzadeh and E. M. Chaves Filho, MorphoSys: an integrated reconfigurable system for data-parallel and computation-intensive applications[J]. IEEE Transactions on Computers, 2000, 465-481 (49).
    [14] 罗赛.可重构计算系统体系结构研究与实现[D].合肥:中国科技大学,2006
    [15] K. Bondalapati and V. K. Prasanna, Reconfigurable computing systems[C]. Proceedings of the IEEE 90, 1201-1217 (2002).
    [16] Fernando Gehm Moraes and Daniel Mesquita. Development of a Tool-Set for Remote and Partial Reconfiguration of FPGAs[C]. Proceedings of the Design, Automation and Test in Europe Conference and Exhibition (DATE'03). 2003.
    [17] D. V. Pryor, M. R. Thistle and N. Shirazi. Text searching on Splash 2. FPGAs for Custom Computing Machines, 1993.Proceedings[C]. IEEE Workshop on, 172-177. 1993.
    [18] M. Rencher and B. L. Hutchings. Automated target recognition on SPLASH 2[C]. The 5th Annual IEEE Symposium on FPGAs for Custom Computing Machines, 192-200. 1997.
    [19] D. T. Hoang. Searching genetic databases on Splash 2[C]. Proceedings. IEEE Workshop on FPGAs for Custom Computing Machines, 185-191. 1993.
    [20] J. R. Hauser and J. Wawrzynek. Garp: a MIPS processor with a reconfigurable coprocessor[C]. The 5th Annual IEEE Symposium on FPGAs for Custom Computing Machines, 12-21. 1997.
    [21] Elliot Waingold and Michael Taylor. Baring it all to Software: The Raw Machine[R]. 1997.
    [22] B. S. Goda, J. F. McDonald, S. R. Carlough, T. W. Krawczyk, Jr. and R. P. Kraft, SiGe HBT BiCMOS FPGAs for fast reconfigurable computing[C]. Computers and Digital Techniques, IEE Proceedings-147, 189-194 (2000).
    [23] C. A. Moritz, D. Yeung and A. Agarwal. Exploring optimal cost-performance designs for Raw microprocessors[C]. Proceedings.IEEE Symposium on FPGAs for Custom Computing Machines, 12-27. 1998.
    [24] C. A. Moritz, Y. Donald and A. Agarwal, SimpleFit: a framework for analyzing design trade-offs in Raw architectures[J]. Parallel and Distributed Systems, IEEE Transactions on 12, 730-742 (2001).
    [25] M. B. Taylor, J. Psota, A. Saraf, N. Shnidman, V. Strumpen, M. Frank, S. Amarasinghe, A. Agarwal, W. Lee, J. Miller, D. Wentzlaff, I. Bratt, B. Greenwald, H. Hoffmann, P. Johnson and J. Kim. Evaluation of the Raw microprocessor: an exposed-wire-delay architecture for ILP and streams[C]. 31st Annual International Symposium on Computer Architecture, 2-13.2004.
    [26] S. C. Goldstein, H. Schmit, M. Moe, M. Budiu, S. Cadambi, R. R. Taylor and R. Laufer. PipeRench: a coprocessor for streaming multimedia acceleration[C]. Proceedings of the 26th International Symposium on Computer Architecture, 28-39. 1999.
    [27] H. Kagotani and H. Schmit. Asynchronous PipeRench: architecture and performance evaluations[C], 11th Annual IEEE Symposium on Field-Programmable Custom Computing Machines, 121-129. 2003.
    [28] R. Laufer, R. R. Taylor and H. Schmit. PCI-PipeRench and the SWORDAPI: a system for stream-based reconfigurable computing[C], Seventh Annual IEEE Symposium on Field-Programmable Custom Computing Machines. 200-208. 1999.
    [29] H. Schmit, D. Whelihan, A. Tsai, M. Moe, B. Levine and R. Reed Taylor. PipeRench: A virtualized programmable datapath in 0.18 micron technology[C]. Custom Integrated Circuits Conference, 2002.Proceedings of the IEEE 2002 , 63-66. 2002.
    [30] C. Yuan, R Pillai, H. Schmit and J. R Shen. PipeRench implementation of the Instruction Path Coprocessor[C]. 33rd Annual IEEE/ACM International Symposium on Microarchitecture, 147-158.2000.
    [31] K.Compton and S.Hauck. An Introduction to Reconfigurable Computing[R]. Technical Report in Dept. of ECE at Northwestern University, 1999,10-22(1999).
    [32] A. DeHon. DPGA-coupled microprocessors: commodity ICs for the early 21st Century[C]. IEEE Workshop on FPGAs for Custom Computing Machines, 31-39. 1994.
    [33] K. Cgmpton, L. Zhiyuan, J. Cooley, S. Knol and S. Hauck, Configuration relocation and defragmentation for run-time reconfigurable computing[J]. IEEE Transactions on Very Large Scale Integration (VLSI) Systems , 10, 209-220 (2002).
    [34] K. Compton, J. Cooley, S. Knol and S. Hauck. Configuration relocation and defragmentation for reconfigurable computing[C]. IEEE Symposium on Field-Programmable Custom Computing Machines. 279-280. 2000.
    [35] K. Bazargan, R. Kastner and M. Sarrafzadeh, Fast template placement for reconfigurable computing systems[J]. Design & Test of Computers, IEEE 17, 68-83 (2000).
    [36] David Andrews; Douglas Niehaus; et al. Programming Models for Hybrid FPGA-CPU Computational Components: A Misssing Link[J]. Micro, IEEE Transactions, 2004, 24(4): 42-53.
    [37] Herbert Walder and Marco Platzner. Reconfigurable Hardware Operating Systems: From Design Concepts to Realizations[C]. 3rd International Conference on Engineering of Reconfigurable Systems and Architectures (ERSA'03). 2003. Las Vegas (NV), USA
    [38] V. J. Mooney, Ⅲ and D. M. Blough, A hardware-software real-time operating system framework for SoCs[J]. Design & Test of Computers, 2002, 44-51 (19).
    [39] P. Lysaght and P. A. Subrahmanyam, Guest Editors' Introduction: Advances in Configurable Computing[C]. Design & Test of Computers, IEEE 22, 85-89 (2005).
    [40] M. Vuletid, L. Pozzi and P. Ienne, Seamless hardware-software integration in reconfigurable computing systems[C]. Design & Test of Computers, IEEE 22, 102-113 (2005).
    [41] Wigley. An Operating System for Reconfigurable Computing[E]. Adelaide: The Unversity of South Australia, 2005
    [42] 陈国良.并行计算:结构·算法·编程[M].高等教育出版社,2003
    [43] 周博,王石记,邱卫东,彭澄廉.SHUM-UCOS:基于统一多任务模型可重构系统的实时操作系统[J],计算机学报,2006.29(2):208-218.
    [44] Wayne Wolf. A Decade of Hardware/Software Codesign[J]. IEEE Computer, 2003(4): P38-43.
    [45] Gupta R. K.; et al. Introducing Core-Based System Design [C]. IEEE Design & Test of Computers, 14(4), Oct. -Dec. 1997. pp. 15-25.
    [46] Eclipse Platform Technical Overview [EB/OL],. http://www.eclipse.org
    [47] Thorsten G., Stan L., Grant M., et al. System design with SystemC [M], Kluwer Publishers, USA, 2002
    [48] Haverinen, A. et al. SystemC based SoC communication modeling for the OCP protocol. White Paper. V 1.0[EB/OL], http://www.ocpip.org
    [49] Bailey, B.; Gajski, D. RTL semantics and methodology[C]. ISSS' 01, Montreal, 2001. pp. 69-74.
    [50] Budinsky, F. et al, Eclipse Modeling Framework: A Developer's Guide[M], Addison Wesley, August, 2003
    [51] Keutzer, K. et al., System-Level Design: Orthogonalization of Concerns and Platform-Based Design[J], IEEE Trans. Computer-Aided Design of Integrated Circuits and Systems, vol. 19, no. 12, Dec 2000, pp. 1523-1543.
    [52] 吴百锋,彭澄廉,孙晓光.嵌入式系统软硬件协同设计中的快速样机平台[J].计算机辅助设计与图形学学报,2003,15(7):778-782
    [53] Birnbaum M, Sachs H. How VSIA answers the SOC dilemma [J] IEEE Computer, 1999, 32 (6): 42-49
    [54] Bergamaschi R A, Bhattacharya S, et al. Automating the design of SOCs using cores [J]. IEEE Design & Test of Computers, 2001, 18(5): 32-45
    [55] 王海力,边计年,等.SoC接口综合的层次化通信模型.计算机辅助设计与图形学学报,2005,17(8):1803-1808
    [56] Altera Corporation. Quartus Ⅱ Handbook Volume 4: SOPC Builder [EB/OL].(2006-05). http://www.altera.com/literature/hb/qts/qts_qii5v4.pdf
    [57] Xilinx Inc. Platform Studio User Guide [EB/OL].(2005-02-11). http://www.xilinx.com/ise/embedded/edk7_1docs/ps_ug.pdf
    [58] Eli Billauer. A Guide to Perlilog [EB/OL]. http://www.opencores.org/proj ects.cgi/web/perlilog/
    [59] E. Lee, Overview of the Ptolemy Project. tech. Memo [EB/OL]. http://ptolemy.eecs.berkeley.edu.
    [60] P. Alexander and C. Kong. Rosetta: Semantic Support for Model Centered Systems Level Design[J]. Computer, 2001, 34(11): 64-70.
    [61] Celoxica Corporation, Handle-C Language Overview[EB/OL]. http://www.Celoxica.com
    [62] Maya Gokhale, sc2 Reference Manual, Los Alamos National Laboratory[EB/OL]. http://www.streams-c.lanl.gov
    [63] ISO/IEC 9945, POSIX standard [S]. The ISO POSIX Working Group, 2002.
    [64] Philippe Gerum, Xenomai-Implementing a RTOS emulation framework on GNU/Linux[EB/OL]. http://www.xenomai.org
    [65] Philippe Gerum, Life with Adeos[EB/OL]. http://www.xenomai.org
    [66] Christoph Steiger, Herbert Salder. Operating Systems for Reconfigurable Embedded Platforms: Online Scheduling of Real-Time Tasks[J]. IEEE Transactions On Computers, November 2004,53 (11): 1393-1407.
    [67] Y. Zhu. Efficient Processor Allocation Strategies for Mesh-Connected Parallel Computers[J]. Journal of Parallel and Distributed Computing, 1992, 16(4): 328-337.
    [68] G.M. Chiu, S.K. Chen, An Efficient Submesh Allocation Scheme for Two-Dimensional Meshes with Little Overhead[J], IEEE Transactions on Parallel and Distributed Systems, 1999,10(3): 471-486.
    [69] Seong-Moo Yoo, Hee Yong Youn, B. Shirazi. An efficient task allocation scheme for 2D mesh architectures[J]. IEEE Transactions on Parallel and Distributed Systems, 1997,8(9): 934-942.
    [70] C. Steiger, H. Walder, M. Platzner. Online Scheduling and Placement of Real-time Tasks to Partially Reconfigurable Devices[C[, Proceedings of the 24th IEEE International Real-Time Systems Symposium (RTSS'03), 2003.224-235.
    [71] A. Ahmadinia, C. Bobda, M. Bednara, and J. Teich. A New Approach for On-line Placement on Reconfigurable Devices[C[. Proc. IPDPS-2004, RAW-2004, IEEE-CS Press, 2004: 134a.
    [72] G.Chen, M.Kandemir, U.Sezer. Configuration-Sensitive Process Scheduling for FPGA-Based Computing Platforms[C[. Proceedings of Design, Automation & Test in Europe(DATE'03). Paris:IEEE-CS Press, 2004: 486-493.
    [73] D.D. Sharma, D.K. Pradhan. A Fast and Efficient Strategy for Submesh Allocation in Mesh-Connected Parallel Computers[C[. Proceedings of the Fifth IEEE Symposium on Parallel and Distributed Processing, Dallas, Dec. 1993. 682-689.
    [74] K.Li, K.H.Cheng. Job scheduling in a partitionable mesh using a two-dimensional buddy system partitioning scheme[J[. IEEE Transactions on Parallel and Distribution System, 1991,2(4):413-422
    [75] P.J. Chuang, N.F. Tzeng. Allocating Precise Submeshes in Mesh Connected Systems[J]. IEEE Transactions on Parallel and Distributed Systems, 1994, 5(2):211-217.
    [76] J. Ding, L.N. Bhuyan. An Adaptive Submesh Allocation Strategy for Two-Dimensional Mesh Connected Systems[C[. Proceedings of the International Conference on Parallel Processing, 1993. II-193-200.
    [77] S. Bhattacharya and W.-T. Tsai, Lookahead Processor Allocation in Mesh-Connected Massively Parallel Multicomputer[C], Proceedings of the Eighth International Parallel Processing Symposium, Cancun, 1994. 868-875.
    [78] Fan Wu, Ching-Chi Hsu, Li-Ping Chou. Processor allocation in mesh multiprocessors using the leapfrog method[J]. IEEE Transactions on Parallel and Distributed Systems, 2003, 14(3): 276-289.
    [79] T. Liu, W.-K. Huang, F. Lombardi, L.N. Bhuyan. A Submesh Allocation Scheme for Mesh-Connected Multiprocessor Systems[C], Proceedings of the International Conference on Parallel Processing, Aug. 1995. Ⅱ-159-163.
    [80] Geunmo Kim, Hyunsoo Yoon. On Submesh Allocation for Mesh Multicomputers: A Best-Fit Allocation and a Virtual Submesh Allocation for Faulty Meshes[J]. IEEE Transactions on Parallel and Distributed Systems, 1998, 9(2): 175-185.
    [81] 张艳,孙世新,彭文钦.网格多处理机的一种改进的子网分配算法[J].软件学报,2001,12(8):1250-1257
    [82] J. Sgall. On-line Scheduling-A Survey[A]. In: A. Fiat, G. J. Woeginger eds. Online Algorithms: The State of the Art[M], LNCS vol. 1442, Springer-Verlag, 1998. 196-231.
    [83] Seong-Moo Yoo, Hee Yong Youn. An on-line scheduling and allocation scheme for real-time tasks in 2D meshes[C]. Proceedings of the Seventh IEEE Symposium on Parallel and Distributed Processing, San Antonio, Oct. 1995. 630-637.
    [84] Xilinx Inc. Virtex-4 Configuration Guide [EB/OL], Jan. 2006, http://www.xilinx.com
    [85] RTAI 3.3 User Manual [EB/OL]. https://www.rtai.org

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700