skip to main content
research-article

Microkernel Architecture and Hardware Abstraction Layer of a Reliable Reconfigurable Real-Time Operating System (R3TOS)

Authors Info & Claims
Published:06 March 2015Publication History
Skip Abstract Section

Abstract

This article presents a new solution for easing the development of reconfigurable applications using Field-Programable Gate Arrays (FPGAs). Namely, our Reliable Reconfigurable Real-Time Operating System (R3TOS) provides OS-like support for partially reconfigurable FPGAs. Unlike related works, R3TOS is founded on the basis of resource reusability and computation ephemerality. It makes intensive use of reconfiguration at very fine FPGA granularity, keeping the logic resources used only while performing computation and releasing them as soon as it is completed. To achieve this goal, R3TOS goes beyond the traditional approach of using reconfigurable slots with fixed boundaries interconnected by means of a static communication infrastructure. Instead, R3TOS approaches a static route-free system where nearly everything is reconfigurable. The tasks are concatenated to form a computation chain through which partial results naturally flow, and data are exchanged among remotely located tasks using FPGA’s reconfiguration mechanism or by means of “removable” routing circuits. In this article, we describe the R3TOS microkernel architecture as well as its hardware abstraction services and programming interface. Notably, the article presents a set of novel circuits and mechanisms to overcome the limitations and exploit the opportunities of Xilinx reconfigurable technology in the scope of hardware multitasking and dependability.

References

  1. M. Abramovici, C. E. Stroud, and J. M. Emmert. 2004. Online BIST and BIST-based diagnosis of FPGA logic blocks. IEEE Transactions on Very Large Scale Integration Systems 12, 12 (2004), 1284--1294. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Ahmadinia, C. Bobda, J. Ding, M. Majer, J. Teich, S. P. Fekete, and J. C. van der Veen. 2005. A practical approach for circuit routing on dynamic reconfigurable devices. In Proceedings of the IEEE International Workshop on Rapid System Prototyping. 84--90. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. A. Ahmadinia, C. Bobda, D. Koch, M. Majer, and J. Teich. 2004. Task scheduling for heterogeneous reconfigurable computers. In Proceedings of the International Symposium on Integrated Circuits and System Design. 22--27. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. A. Amouri and M. B. Tahoori. 2011. A low-cost sensor for aging and late transitions detection in modern FPGAs. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 329--335. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. D. Andrews, W. Peck, J. Agron, K. Preston, E. Komp, M. Finley, and R. Sass. 2005. Hthreads: A hardware/software co-designed multithreaded RTOS kernel. In Proceedings of the IEEE Conference on Emerging Technologies and Factory Automation.Google ScholarGoogle Scholar
  6. C. Beckhoff, D. Koch, and J. Torresen. 2012. GoAhead: A partial reconfiguration framework. In Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines. 37--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. N. W. Bergmann, J. A. Williams, J. Han, and Y. Chen. 2006. A process model for hardware modules in reconfigurable System-on-Chip. In Proceedings of the International Conference on Architecture of Computing Systems. 205--214.Google ScholarGoogle Scholar
  8. B. Blodget, P. James-Roxby, E. Keller, S. McMillan, and P. Sundararajan. 2003. A self-reconfiguring platform. In Field-Programmable Logic and Application (Lecture Notes in Computer Science), Vol. 2778. 565--574.Google ScholarGoogle ScholarCross RefCross Ref
  9. C. Bobda, A. Ahmadinia, M. Majer, J. Teich, S. Fekete, and J. C. van der Veen. 2005. DyNoC: A dynamic infrastructure for communication in dynamically reconfigurable devices. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 153--158.Google ScholarGoogle Scholar
  10. G. J. Brebner. 1996. A virtual hardware operating system for the Xilinx XC6200. In Proceedings of the International Workshop on Field-Programmable Logic, Smart Applications, New Paradigms and Compilers. 327--336. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. K. Chapman. 2010. SEU Strategies for Virtex-5 Devices (XAPP864). Technical Report. Xilinx Inc.Google ScholarGoogle Scholar
  12. C. Charmichael and C. W. Tseng. 2009. Correcting Single-Event Upsets in Virtex-4FPGA Configuration Memory (XAPP1088). Technical Report. Xilinx Inc.Google ScholarGoogle Scholar
  13. J. D. Corbett. 2012. The Xilinx Isolation Design Flow for Fault-Tolerant Systems (WP412). Technical Report. Xilinx Inc.Google ScholarGoogle Scholar
  14. S. Corbetta, M. Morandi, M. Novati, M. D. Santambrogio, D. Sciuto, and P. Spoletini. 2009. Internal and external bitstream relocation for partial dynamic reconfiguration. IEEE Transactions on Very Large Scale Integration Systems 17 (2009), 1650--1654. Issue 11. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Donato, F. Ferrandi, M. D. Santambrogio, and D. Sciuto. 2005. Operating system support for dynamically reconfigurable SoC architectures. In Proceedings of the IEEE International System-on-Chip Conference. 233--238.Google ScholarGoogle Scholar
  16. A. Donlin, P. Lysaght, B. Blodget, and G. Troeger. 2004. A virtual file system for dynamically reconfigurable FPGAs. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 1127--1129.Google ScholarGoogle Scholar
  17. S. Dutt, V. Verma, and V. Suthar. 2008. Built-in-self-test of FPGAs with provable diagnosabilities and high diagnostic coverage with application to online testing. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems 27, 2 (2008), 309--326. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. A. Ebrahim, K. Benkrid, X. Iturbe, and Chuan Hong. 2012. A novel high-performance fault-tolerant ICAP controller. In Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems. 259--263.Google ScholarGoogle ScholarCross RefCross Ref
  19. A. Ebrahim, K. Benkrid, X. Iturbe, and C. Hong. 2013. Multiple-clone configuration of relocatable partial bitstreams in Xilinx Virtex FPGAs. In Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems.Google ScholarGoogle Scholar
  20. D. Gohringer, M. Hubner, L. Hugot-Derville, and J. Becker. 2010a. Message passing interface support for the runtime adaptive multi-processor system-on-chip RAMPSoC. In Proceedings of the IEEE International Conference IC-SAMOS. 357--364.Google ScholarGoogle Scholar
  21. D. Gohringer, M. Hubner, E. N. Zeutebouo, and J. Becker. 2010b. Operating system for runtime reconfigurable multiprocessor systems. International Journal of Reconfigurable Computing (2010). Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. S. G. Hansen, D. Koch, and J. Torresen. 2011. High speed partial run-time reconfiguration using enhanced ICAP hard macro. In Proceedings of the IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum. 174--180. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. J. Heiner, B. Sellers, M. Wirthlin, and J. Kalb. 2009. FPGA partial reconfiguration via configuration scrubbing. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 99--104.Google ScholarGoogle Scholar
  24. C. Hong, K. Benkrid, X. Iturbe, A. Ebrahim, and T. Arslan. 2011. Efficient on-chip task scheduler and allocator for reconfigurable operating systems. IEEE Embedded Systems Letters 3, 3 (2011), 85--88. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. A. Ismail and L. Shannon. 2011. FUSE: Front-end user framework for O/S abstraction of hardware accelerators. In Proceedings of the Annual IEEE International Symposium on Field-Programmable Custom Computing Machines. 170--177. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. X. Iturbe, M. Azkarate, I. Martinez, J. Perez, and A. Astarloa. 2009. A novel SEU, MBU and SHE handling strategy for Xilinx Virtex-4 FPGAs. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 569--573.Google ScholarGoogle Scholar
  27. X. Iturbe, K. Benkrid, T. Arslan, R. Torrego, and I. Martinez. 2011a. Methods and mechanisms for hardware multitasking: Executing and synchronizing fully relocatable hardware tasks in Xilinx FPGAs. In Proceedings of the International Conference on Field-Programmable Logic and Applications. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. X. Iturbe, K. Benkrid, A. Ebrahim, C. Hong, T. Arslan, and I. Martinez. 2011b. Snake: An efficient strategy for the reuse of circuitry and partial computation results in high-performance reconfigurable computing. In Proceedings of the International Conference on Reconfigurable Computing and FPGAs. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. X. Iturbe, K. Benkrid, C. Hong, A. Ebrahim, T. Arslan, and I. Martinez. 2013a. Runtime scheduling, allocation and execution of real-time hardware tasks onto Xilinx FPGAs subject to fault occurrence. International Journal of Reconfigurable Computing (2013).Google ScholarGoogle Scholar
  30. X. Iturbe, K. Benkrid, C. Hong, A. Ebrahim, R. Torrego, I. Martinez, T. Arslan, and J. Perez. 2013b. R3TOS: A novel reliable reconfigurable real-time operating system for highly adaptive, efficient and dependable computing on FPGAs. IEEE Transactions on Computing 62, 8 (2013), 1542--1556. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. X. Iturbe, K. Benkrid, R. Torrego, A. Ebrahim, and T. Arslan. 2012. Online clock routing in Xilinx FPGAs for high-performance and reliability. In Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems.Google ScholarGoogle Scholar
  32. A. Jara-Berrocal and A. Gordon-Ross. 2010. VAPRES: A virtual architecture for partially reconfigurable embedded systems. In Proceedings of the Conference on Design, Automation and Test in Europe. 837--842. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. S. Jovanovic, C. Tanougast, and S. Weber. 2007. A hardware preemptive multitasking mechanism based on scan-path register structure for FPGA-based reconfigurable systems. In Proceedings of the NASA/ESA Conference on Adaptive Hardware and Systems. 358--364. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. K. Jozwik, H. Tomiyama, S. Honda, and H. Takada. 2010. A novel mechanism for effective hardware task preemption in dynamically reconfigurable systems. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 352--355. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. H. Kalte, G. Lee, M. Porrmann, and U. Ruckert. 2005. REPLICA: A bitstream manipulation filter for module relocation in partial reconfigurable systems. In Proceedings of the IEEE International Parallel and Distributed Processing Symposium. Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. H. Kalte and M. Porrmann. 2005. Context saving and restoring for multitasking in reconfigurable systems. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 223--228.Google ScholarGoogle Scholar
  37. H. Kalte and M. Porrmann. 2006. REPLICA2Pro: Task relocation by bitstream manipulation in Virtex-II/Pro FPGAs. In Proceedings of the Conference on Computing Frontiers. 403--412. Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. D. Koch, C. Beckhoff, and J. Teich. 2008. ReCoBus-builder—a novel tool and technique to build statically and dynamically reconfigurable systems for FPGAs. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 119--124.Google ScholarGoogle Scholar
  39. D. Koch, C. Beckhoff, and J. Torresen. 2010. Obstacle-free two-dimensional online-routing for run-time reconfigurable FPGA-based systems. In Proceedings of the International Conference on Field-Programmable Technology. 208--215.Google ScholarGoogle Scholar
  40. D. Koch, C. Haubelt, and J. Teich. 2007. Efficient hardware checkpointing: Concepts, overhead analysis and implementation. In Proceedings of the ACM/SIGDA International Symposium on Field-Programmable Gate Arrays. 188--196. Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. D. Koch, C. Haubelt, and J. Teich. 2008. Efficient reconfigurable on-chip buses for FPGAs. In Proceedings of the IEEE Symposium on Field-Programmable Custom Computing Machines. 287--290. Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. H. Kopetz. 2011. Real-Time Systems: Design Principles for Distributed Embedded Applications (2nd ed.). Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  43. K. Kosciuszkiewicz, F. Morgan, and K. Kepa. 2007. Run-Time management of reconfigurable hardware tasks using embedded Linux. In Proceedings of the International Conference on Field-Programmable Tecnology.Google ScholarGoogle Scholar
  44. E. Lubbers. 2010. Multithreaded Programming and Execution Models for Reconfigurable Hardware. Ph.D. Dissertation. University of Paderborn, Germany.Google ScholarGoogle Scholar
  45. J. Y. Mignolet, V. Nollet, P. Coene, D. Verkest, S. Vernalde, and R. Lauwereins. 2003. Infrastructure for design and management of relocatable tasks in a heterogeneous reconfigurable System-on-Chip. In Proceedings of the Conference on Design, Automation and Test in Europe. Google ScholarGoogle ScholarDigital LibraryDigital Library
  46. F. Muller, J. Le Rhun, F. Lemonnier, B. Miramond, and L. Devaux. 2005. A flexible operating system for dynamic applications. Xilinx Xcell Journal Fourth Quarter 2010 (2005), 30--34.Google ScholarGoogle Scholar
  47. R. Pellizzoni and M. Caccamo. 2006. Adaptive allocation of software and hardware real-time tasks for FPGA-based embedded systems. In Proceedings of the IEEE Real-Time and Embedded Technology and Applications Symposium. 208--220. Google ScholarGoogle ScholarDigital LibraryDigital Library
  48. M. D. Santambrogio, V. Rana, and D. Sciuto. 2008. Operating system support for online partial dynamic reconfiguration management. In Proceedings of the International Conference on Field-Programmable Logic and Applications. 455--458.Google ScholarGoogle Scholar
  49. P. Sedcole. 2006. Reconfigurable Platform-Based Design in FPGAs for Video Image Processing. Ph.D. Dissertation. Imperial College London, UK.Google ScholarGoogle Scholar
  50. P. Sedcole, P. Y. K. Cheung, G. A. Constantinides, and W. Luk. 2007. Run-time integration of reconfigurable video processing systems. IEEE Transactions on Very Large Scale Integration Systems 15 (2007), 1003--1016. Issue 9. Google ScholarGoogle ScholarDigital LibraryDigital Library
  51. M. Shelburne, C. Patterson, P. Athanas, M. Jones, B. Martin, and R. Fong. 2008. Metawire: Using FPGA configuration circuitry to emulate a Network-on-Chip. In International Conference on Field-Programmable Logic and Applications. 257--262.Google ScholarGoogle Scholar
  52. H. Simmler, L. Levinson, and R. Manner. 2000. Multitasking on FPGA coprocessors. In Proceedings of the International Workshop on Field-Programmable Logic and Applications. 121--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  53. J. Smith, T. Xia, and C. Stroud. 2006. An automated BIST architecture for testing and diagnosing FPGA interconnect faults. Journal of Electronic Testing: Theory and Applications 22, 3 (2006), 239--253. Google ScholarGoogle ScholarDigital LibraryDigital Library
  54. H. K. H. So. 2007. BORPH: An Operating System for FPGA-Based Reconfigurable Computers. Ph.D. Dissertation. University of California at Berkeley, USA. Google ScholarGoogle ScholarDigital LibraryDigital Library
  55. A. A. Sohanghpurwala, P. Athanas, T. Frangieh, and A. Wood. 2011. OpenPR: An open-source partial-reconfiguration toolkit for Xilinx FPGAs. In Proceedings of the IEEE International Symposium on Parallel and Distributed Processing Workshops and Phd Forum. 228--235. Google ScholarGoogle ScholarDigital LibraryDigital Library
  56. M. B. Stensgaard and J. Sparso. 2008. ReNoC: A network-on-chip architecture with reconfigurable topology. In Proceedings of the ACM/IEEE International Symposium on Networks-on-Chip. 55--64. Google ScholarGoogle ScholarDigital LibraryDigital Library
  57. L. Sterpone and M. Violante. 2005. Analysis of the robustness of the TMR architecture in SRAM-based FPGAs. IEEE Transactions on Nuclear Science 52, 5 (2005), 1545--1549.Google ScholarGoogle ScholarCross RefCross Ref
  58. J. Suris, M. Shelburne, C. Patterson, P. Athanas, J. Bowen, T. Dunham, and J. Rice. 2008. Untethered on-the-fly radio assembly with Wires-on-Demand. In Proceedings of the IEEE National Aerospace and Electronics Conference. 229--233.Google ScholarGoogle Scholar
  59. R. Torrego, I. Val, and E. Muxika. 2011. QPSK cognitive modulator fully FPGA-implemented via dynamic partial reconfiguration and rapid prototyping tools. In Proceedings of the European Conference on Communications Technologies and Software Defined Radio.Google ScholarGoogle Scholar
  60. V. M. Tuan and H. Amano. 2008. A method for capturing state data on dynamically reconfigurable processors. In Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms.Google ScholarGoogle Scholar
  61. H. Walder. 2005. Operating System Design for Partially Reconfigurable Logic Devices. Ph.D. Dissertation. Swiss Federal Institute of Technology Zurich, Switzerland.Google ScholarGoogle Scholar
  62. J. A. Williams and N. W. Bergmann. 2004. Embedded Linux as a platform for dynamically self-reconfiguring Systems-On-Chip. In Proceedings of the International Conference on Engineering of Reconfigurable Systems and Algorithms.Google ScholarGoogle Scholar
  63. J. A. Williams, N. W. Bergmann, and X. Xie. 2005. FIFO communication models in operating systems for reconfigurable computing. In Proceedings of the Annual IEEE Symposium on Field-Programmable Custom Computing Machines. 277--278. Google ScholarGoogle ScholarDigital LibraryDigital Library
  64. B. Zhou, W. Qiu, and C. Peng. 2005. An operating system framework for reconfigurable systems. In Proceedings of the International Conference on Computer and Information Technology. 788--792. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Microkernel Architecture and Hardware Abstraction Layer of a Reliable Reconfigurable Real-Time Operating System (R3TOS)

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM Transactions on Reconfigurable Technology and Systems
      ACM Transactions on Reconfigurable Technology and Systems  Volume 8, Issue 1
      February 2015
      127 pages
      ISSN:1936-7406
      EISSN:1936-7414
      DOI:10.1145/2744082
      • Editor:
      • Steve Wilton
      Issue’s Table of Contents

      Copyright © 2015 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 6 March 2015
      • Accepted: 1 April 2014
      • Revised: 1 March 2014
      • Received: 1 June 2013
      Published in trets Volume 8, Issue 1

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • research-article
      • Research
      • Refereed

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!