A Novel Approach to Managing System-on-Chip Sub-Blocks Using a 16-Bit Real-Time Operating System
Abstract
:1. Introduction
1.1. Evolution of Operating Systems and Their Sub-Block Potential
1.2. Research Question and Contributions
2. Literature Review and Prior Work
3. Approach
- Microprocessor selection.
- Operating system selection.
- An application survey.
- Optimization methods.
- Performance comparison.
3.1. Microprocessor Selection
3.2. Operating System Selection
3.2.1. The Kernel
- Process creation, known as forking.
- Process scheduling and prioritization.
- Memory allocation and deletion.
- Module validation and management.
- Interrupt handling.
- Interprocess communication.
Listing 1. TurbOS system call in Turbo9 assembly language. |
3.2.2. The Module
3.2.3. Programs and Processes
3.2.4. Process Scheduling
3.2.5. The Active Queue
3.2.6. The Wait Queue
3.2.7. The Sleep Queue
3.2.8. Memory Allocation and Management
3.2.9. Interrupt Handling
3.2.10. Interprocess Communication through Signaling
3.3. Application Survey
4. Methodology
4.1. Interrupt Processing
4.2. Module Verification
4.3. Unified I/O
4.4. Boot Support
4.5. Code Base Reduction
5. Results
6. Conclusions and Future Work
- Analysis of physical metrics (die area, power consumption) for a set of SoC sub-block applications on TurbOS vs. operating systems on other architectures such as RISC-V and ARM.
- System call, interrupt handling, and application bench marking comparisons against other operating systems on the Turbo9, such as FreeRTOS and FUZIX [28].
- Designing new instructions for the Turbo9 to increase performance.
- A complete test bench and validation suite for TurbOS.
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
Abbreviations
CPU | Central Processing Unit |
CRC | Cyclic Redundancy Check |
IoT | Internet of Things |
IRQ | Interrupt Request |
RTOS | Real-Time Operating System |
SoC | System on a Chip |
SPI | Serial Peripheral Interface |
SWI | Software Interrupt |
USB | Universal Serial Bus |
Glossary
Forking | The act of creating a new process in TurbOS. |
FreeRTOS | An open-source real-time operating system. |
Link count | A count of the number of times a TurbOS module is in use. |
Module | A set of bytes in TurbOS that contains a header, a body, and a CRC. |
Process | A process in TurbOS that is analogous to a task in FreeRTOS. |
SoC | System on a Chip; a single or multicore processor with sub-blocks. |
Task | A process in FreeRTOS that is analogous to a process in TurbOS. |
Turbo9 | An open-source, 16-bit pipelined microprocessor modeled after the Motorola 6809. |
TurbOS | An open-source, 16-bit real-time operating system designed for the Turbo9. |
Sub-block | A unit of logic in an SoC that provides specific support functionality. |
References
- Lin, T.J.; Liao, C.Z.; Hu, Y.J.; Hsu, W.C.; Wu, Z.X.; Wang, S.Y.; Huang, C.M.; Lai, Y.H.; Yeh, C.; Wang, J.S. A 40 nm CMOS SoC for Real-Time Dysarthric Voice Conversion of Stroke Patients. In Proceedings of the 27th Asia and South Pacific Design Automation Conference, Taipei, Taiwan, 17–20 January 2022; pp. 7–8. [Google Scholar] [CrossRef]
- Embedded Systems Market Size, Share, Growth Report 2030. Available online: https://www.zionmarketresearch.com/report/embedded-systems-market (accessed on 3 May 2024).
- Comparison of Real-Time Operating Systems. Available online: https://en.wikipedia.org/wiki/Comparison_of_real-time_operating_systems (accessed on 3 May 2024).
- CP/M. Available online: https://computerhistory.org/blog/early-digital-research-cpm-source-code/#code (accessed on 5 May 2024).
- MS-DOS. Available online: https://github.com/microsoft/MS-DOS (accessed on 5 May 2024).
- Muchow, O.; Ustarbowski, D.; Hammouda, I. An Investigation of Migrating from Proprietary RTOS to Embedded Linux. In Proceedings of the 11th International Symposium on Open Collaboration, San Francisco, CA, USA, 19–21 August 2015. [Google Scholar] [CrossRef]
- Nakano, W.; Shinohara, Y.; Ishiura, N. Full Hardware Implementation of FreeRTOS-Based Real-Time Systems. In Proceedings of the TENCON 2021—2021 IEEE Region 10 Conference (TENCON), Auckland, New Zealand, 7–10 December 2021; pp. 435–440. [Google Scholar] [CrossRef]
- Rane, U.V.; Panem, C.; Abhyankar, G.; Gad, R.S. Network on Chip(NoC) Mesh Topology FPGA Verification: Real Time Operating System Emulation Framework. In Proceedings of the 2024 Fourth International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT), Bhilai, India, 11–12 January 2024; pp. 1–5. [Google Scholar] [CrossRef]
- Vargas, F.L. On-Chip Cross-Layer Infrastructure to Leverage System Reliability for Aero-Space Applications: Embedded Tutorial. In Proceedings of the 2024 27th International Symposium on Design & Diagnostics of Electronic Circuits & Systems (DDECS), Kielce, Slovakia, 3–5 April 2024; pp. 116–117. [Google Scholar] [CrossRef]
- Krishnan, S.; Wan, Z.; Bhardwaj, K.; Whatmough, P.; Faust, A.; Neuman, S.; Wei, G.Y.; Brooks, D.; Reddi, V.J. Automatic Domain-Specific SoC Design for Autonomous Unmanned Aerial Vehicles. In Proceedings of the 55th Annual IEEE/ACM International Symposium on Microarchitecture, Chicago, IL, USA, 1–5 October 2023; pp. 300–317. [Google Scholar] [CrossRef]
- µC/OS. Available online: https://www.osrtos.com/rtos/uc-os-ii/ (accessed on 5 May 2024).
- Shang, X. Implementation of Embedded Real-Time Operating System and Application Software based on Smart Chip. In Proceedings of the 2022 3rd International Conference on Electronics and Sustainable Communication Systems (ICESC), Coimbatore, India, 17–19 August 2022; pp. 1290–1293. [Google Scholar] [CrossRef]
- Zhu, H.; Zhou, Y.; Liu, H.; Dai, H. Design and Implementation of a Stack-based SoC Supporting Real-time Forth Operating System. In Proceedings of the 2023 4th International Conference on Big Data, Artificial Intelligence and Internet of Things Engineering (ICBAIE), Guangzhou, China, 25–27 August 2023; pp. 263–267. [Google Scholar] [CrossRef]
- Larrea, J.; Barbalace, A. The serverkernel operating system. In Proceedings of the Third ACM International Workshop on Edge Systems, Analytics and Networking, Heraklion, Greece, 27 April 2020; pp. 13–18. [Google Scholar] [CrossRef]
- Wu, J.; Zheng, X.; Zeng, S.; Gao, H.; Xiong, X. High-Performance Cryptographic SoC Virtual Prototyping Platform Based on RISC-V VP. In Proceedings of the 6th International Conference on High Performance Compilation, Computing and Communications, Jilin, China, 23–25 June 2022; pp. 84–90. [Google Scholar] [CrossRef]
- Orenes-Vera, M.; Manocha, A.; Balkind, J.; Gao, F.; Aragón, J.L.; Wentzlaff, D.; Martonosi, M. Tiny but mighty: Designing and realizing scalable latency tolerance for manycore SoCs. In Proceedings of the 49th Annual International Symposium on Computer Architecture, New York, NY, USA, 18–22 June 2022; pp. 817–830. [Google Scholar] [CrossRef]
- Chi, Y.; Lin, X.; Zheng, X. Design of High-performance SoC Simulation Model Based on Verilator. In Proceedings of the 2022 5th International Conference on Algorithms, Computing and Artificial Intelligence, Sanya, China, 23–25 December 2022. [Google Scholar] [CrossRef]
- Phillipson, K.; Rywalt, M. Turbo9. Available online: https://www.turbo9.org (accessed on 5 May 2024).
- Motorola. M6809-M6809E Programmers Manual, 1st ed.; Motorola: Chicago, IL, USA, 1981. [Google Scholar]
- Ritter, T.; Boney, J. The 6809 Design Philosophy. Byte Mag. 1979, 4, 14–42. [Google Scholar]
- NitrOS-9. Available online: https://github.com/n6il/nitros9 (accessed on 5 May 2024).
- Ritchie, D.M.; Thompson, K. The UNIX time-sharing system. Commun. ACM 1974, 17, 365–375. [Google Scholar] [CrossRef]
- Mantovani, P.; Giri, D.; Di Guglielmo, G.; Piccolboni, L.; Zuckerman, J.; Cota, E.G.; Petracca, M.; Pilato, C.; Carloni, L.P. Agile SoC development with open ESP. In Proceedings of the 39th International Conference on Computer-Aided Design, Storrs, CT, USA, 24–27 October 2021. [Google Scholar] [CrossRef]
- Astle, W. LWTools. 2024. Available online: http://www.lwtools.ca/ (accessed on 5 May 2024).
- CMOC. Available online: http://perso.b2b2c.ca/~sarrazip/dev/cmoc.html (accessed on 5 May 2024).
- FreeRTOS. Available online: https://freertos.org (accessed on 5 May 2024).
- FreeRTOS Port for the Turbo9. Available online: https://github.com/boisy/FreeRTOS_Turbo9 (accessed on 5 May 2024).
- Cox, A. FUZIX. Available online: https://github.com/EtchedPixels/FUZIX (accessed on 5 May 2024).
- Pitre, B.G. TurbOS. Available online: https://github.com/boisy/turbos (accessed on 5 May 2024).
System Call | Parameters | Returns |
---|---|---|
F$Fork | module name | new process instance |
F$Wait | process ID | process ID of terminated child |
F$Link | module name | module pointer |
F$Unlink | module pointer | error status |
F$All64 | number of pages | pointer to allocated pages |
F$Ret64 | pointer to allocated pages | error status |
F$SRqMem | number of bytes | pointer to allocated bytes |
F$SRtMem | pointer to allocated bytes | error status |
Feature | Before | After | % Reduced |
---|---|---|---|
interrupt polling | 3435 | 3268 | 4.8% |
module verification | 3435 | 3270 | 4.8% |
unified I/O | 3435 | 3259 | 5.1% |
boot support | 3435 | 3351 | 2.4% |
all of the above | 3435 | 2865 | 16.6% |
TurbOS | FreeRTOS | % Reduced |
---|---|---|
2865 | 16,379 | 82.5% |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Pitre, B.; Margala, M. A Novel Approach to Managing System-on-Chip Sub-Blocks Using a 16-Bit Real-Time Operating System. Electronics 2024, 13, 1978. https://doi.org/10.3390/electronics13101978
Pitre B, Margala M. A Novel Approach to Managing System-on-Chip Sub-Blocks Using a 16-Bit Real-Time Operating System. Electronics. 2024; 13(10):1978. https://doi.org/10.3390/electronics13101978
Chicago/Turabian StylePitre, Boisy, and Martin Margala. 2024. "A Novel Approach to Managing System-on-Chip Sub-Blocks Using a 16-Bit Real-Time Operating System" Electronics 13, no. 10: 1978. https://doi.org/10.3390/electronics13101978
APA StylePitre, B., & Margala, M. (2024). A Novel Approach to Managing System-on-Chip Sub-Blocks Using a 16-Bit Real-Time Operating System. Electronics, 13(10), 1978. https://doi.org/10.3390/electronics13101978