Покращення стиснення коду для мікроконтролерів ARM Cortex M за допомогою попередньої фільтрації

dc.citation.epage234
dc.citation.issue14
dc.citation.journalTitleВісник Національного університету “Львівська політехніка”. Серія: Інформаційні системи та мережі
dc.citation.spage225
dc.contributor.affiliationЛьвівський національний університет імені Івана Франка
dc.contributor.affiliationIvan Franko National University of Lviv
dc.contributor.authorЩербина, Микола
dc.contributor.authorShcherbyna, Mykola
dc.coverage.placenameЛьвів
dc.coverage.placenameLviv
dc.date.accessioned2025-09-12T07:21:54Z
dc.date.created2023-02-28
dc.date.issued2023-02-28
dc.description.abstractПротягом останніх десятиліть розмір коду уже не є обмеженням, за винятком малих вбудованих систем. ARM Cortex M – типова архітектура мікроконтролерів у таких системах. Запропоновано простий, але ефективний підхід для покращення стиснення коду алгоритмом загального призначення Deflate, оснований на попередній фільтрації двійкового коду Thumb2. Він перетворює перед стисненням інструкції BL (перехід зі збереженням адреси повернення), що вказують на ту саму ефективну адресу, і відновлює оригінальні коди операцій після декомпресії. Тести, виконані на реальному вбудованому програмному забезпеченні, показують, що запропонований алгоритм покращує стиснення коду приблизно на 3 %.
dc.description.abstractFor last decades code size is no longer a concern except small embedded systems. ARM Cortex M is a typical microcontroller architecture of such systems. A simple yet effective approach based on pre- filtering Thumb2 binary code is proposed to improve code compression by the general purpose Deflate algorithm. It transforms BL (branch and link) instructions pointing to the same effective address before compression, and restores original opcodes after decompression. Tests performed on real-life embedded software show that the proposed algorithm improves code compression by approximately 3 %.
dc.format.extent225-234
dc.format.pages10
dc.identifier.citationЩербина М. Покращення стиснення коду для мікроконтролерів ARM Cortex M за допомогою попередньої фільтрації / Микола Щербина // Вісник Національного університету “Львівська політехніка”. Серія: Інформаційні системи та мережі. — Львів : Видавництво Львівської політехніки, 2023. — № 14. — С. 225–234.
dc.identifier.citationenShcherbyna M. Improving code compression for ARM cortex M microcontrollers using pre- filtering / Mykola Shcherbyna // Information Systems and Networks. — Lviv : Lviv Politechnic Publishing House, 2023. — No 14. — P. 225–234.
dc.identifier.doidoi.org/10.23939/sisn2023.14.225
dc.identifier.urihttps://ena.lpnu.ua/handle/ntb/111706
dc.language.isouk
dc.publisherВидавництво Львівської політехніки
dc.publisherLviv Politechnic Publishing House
dc.relation.ispartofВісник Національного університету “Львівська політехніка”. Серія: Інформаційні системи та мережі, 14, 2023
dc.relation.ispartofInformation Systems and Networks, 14, 2023
dc.relation.references1. Arm Limited. (2022). Arm Cortex-M Processor Comparison Table. https://documentationservice.arm.com/static/6267de1c7e121f01fd22d677?token=
dc.relation.references2. STMicroelectronics. (2023). Microcontrollers & Microprocessors. STM32 32-bit Arm Cortex MCUs. STM32 Mainstream MCUs. STM32F0 Series – Products. https://www.st.com/en/microcontrollersmicroprocessors/stm32f0-series/products.html
dc.relation.references3. Arm Limited. (2018). ARM®v6-M Architecture Reference Manual. https://documentationservice.arm.com/static/5f8ff05ef86e16515cdbf826?token=
dc.relation.references4. Simpson, M. (2003). Analysis of Compression Algorithms for Program Data. Division of Information Technology, University of Maryland. https://terpconnect.umd.edu/~barua/matt-compress-tr.pdf
dc.relation.references5. Lekatsas, H., & Wolf, W. (1998). Code Compression for Embedded Systems. Proceedings of the 35th annual Design Automation Conference (pp. 516–521).
dc.relation.references6. Deutsch, P. (1996). DEFLATE Compressed Data Format Specification version 1.3. Network Working Group. Request for Comments: 1951. https://www.ietf.org/rfc/rfc1951.txt
dc.relation.references7. Talal, B. (2009). Huffman-based Code Compression Techniques for Embedded Systems. Fakultät für Informatik, Universität Fridericiana zu Karlsruhe. https://publikationen.bibliothek.kit.edu/1000017922/1319910
dc.relation.references8. Seong, S., & Mishra, P. (2008). Bitmask-Based Code Compression for Embedded Systems. IEEE Transactions on Computer-aided Design of Integrated Circuits and Systems, 27(4), 673–685. https://doi.org/10.1109/TCAD.2008.917563
dc.relation.references9. Seong, S., & Mishra, P. (2006). A Bitmask-based Code Compression Technique for Embedded Systems. Proceedings of the 2006 IEEE/ACM international conference on Computer-aided design (pp. 251–254). https://doi.org/10.1145/1233501.1233551
dc.relation.references10. Ozturk, O., Kandemir, M., & Chen, G. (2008). Access Pattern-Based Code Compression for MemoryConstrained Systems. ACM Transactions on Design Automation of Electronic Systems, 13(4), 1–30. https://doi.org/10.1145/1391962.1391968
dc.relation.references11. Shrivastava, K., & Mishra, P. (2011). Dual Code Compression for Embedded Systems. Proceedings of the 24th Annual Conference on VLSI Design, 177–182. https://doi.org/10.1109/VLSID.2011.13
dc.relation.references12. Dias, W. R. A., Moreno, E. D., & Barreto, R. da Silva. (2011). An Approach for Code Compression in Run Time for Embedded Systems – A Preliminary Results. Proceedings of the International Conference on Algorithms and Architectures for Parallel Processing, 349–359. https://doi.org/10.1007/978-3-642-24650-0_30
dc.relation.references13. Garofalo, V., Napoli, E., Petra, N., & Strollo, A. G. M. (2007). Code compression for ARM7 embedded systems. Proceedings of the 18th European Conference on Circuit Theory and Design, 687–690. http://doi.org/10.1109/ECCTD.2007.4529689
dc.relation.references14. Do, Q., & Le, T.C. (2012). Low Power Embedded System Design Using Code Compression. Solid State Systems Symposium, 1–4. https://www.researchgate.net/publication/282150217_Low_Power_Embedded_System_Design_Using_Code_Compression
dc.relation.references15. Dias, W. R. A., & Moreno, E. D. (2012). CPB-ARM - A New Code Compression Method for Embedded Systems. 13th Symposium on Computing Systems, 25–32. https://doi.org/10.1109/WSCAD-SSC.2012.20
dc.relation.references16. Firmware Release. (2020). https://github.com/lupyuen/pinetime-rust-riot/releases/tag/v1.0.2
dc.relation.references17. Joergen Ibsen. Tiny inflate library. (2019). https://github.com/jibsen/tinf
dc.relation.referencesen1. Arm Limited. (2022). Arm Cortex-M Processor Comparison Table. https://documentationservice.arm.com/static/6267de1c7e121f01fd22d677?token=
dc.relation.referencesen2. STMicroelectronics. (2023). Microcontrollers & Microprocessors. STM32 32-bit Arm Cortex MCUs. STM32 Mainstream MCUs. STM32F0 Series – Products. https://www.st.com/en/microcontrollersmicroprocessors/stm32f0-series/products.html
dc.relation.referencesen3. Arm Limited. (2018). ARM®v6-M Architecture Reference Manual. https://documentationservice.arm.com/static/5f8ff05ef86e16515cdbf826?token=
dc.relation.referencesen4. Simpson, M. (2003). Analysis of Compression Algorithms for Program Data. Division of Information Technology, University of Maryland. https://terpconnect.umd.edu/~barua/matt-compress-tr.pdf
dc.relation.referencesen5. Lekatsas, H., & Wolf, W. (1998). Code Compression for Embedded Systems. Proceedings of the 35th annual Design Automation Conference (pp. 516–521).
dc.relation.referencesen6. Deutsch, P. (1996). DEFLATE Compressed Data Format Specification version 1.3. Network Working Group. Request for Comments: 1951. https://www.ietf.org/rfc/rfc1951.txt
dc.relation.referencesen7. Talal, B. (2009). Huffman-based Code Compression Techniques for Embedded Systems. Fakultät für Informatik, Universität Fridericiana zu Karlsruhe. https://publikationen.bibliothek.kit.edu/1000017922/1319910
dc.relation.referencesen8. Seong, S., & Mishra, P. (2008). Bitmask-Based Code Compression for Embedded Systems. IEEE Transactions on Computer-aided Design of Integrated Circuits and Systems, 27(4), 673–685. https://doi.org/10.1109/TCAD.2008.917563
dc.relation.referencesen9. Seong, S., & Mishra, P. (2006). A Bitmask-based Code Compression Technique for Embedded Systems. Proceedings of the 2006 IEEE/ACM international conference on Computer-aided design (pp. 251–254). https://doi.org/10.1145/1233501.1233551
dc.relation.referencesen10. Ozturk, O., Kandemir, M., & Chen, G. (2008). Access Pattern-Based Code Compression for MemoryConstrained Systems. ACM Transactions on Design Automation of Electronic Systems, 13(4), 1–30. https://doi.org/10.1145/1391962.1391968
dc.relation.referencesen11. Shrivastava, K., & Mishra, P. (2011). Dual Code Compression for Embedded Systems. Proceedings of the 24th Annual Conference on VLSI Design, 177–182. https://doi.org/10.1109/VLSID.2011.13
dc.relation.referencesen12. Dias, W. R. A., Moreno, E. D., & Barreto, R. da Silva. (2011). An Approach for Code Compression in Run Time for Embedded Systems – A Preliminary Results. Proceedings of the International Conference on Algorithms and Architectures for Parallel Processing, 349–359. https://doi.org/10.1007/978-3-642-24650-0_30
dc.relation.referencesen13. Garofalo, V., Napoli, E., Petra, N., & Strollo, A. G. M. (2007). Code compression for ARM7 embedded systems. Proceedings of the 18th European Conference on Circuit Theory and Design, 687–690. http://doi.org/10.1109/ECCTD.2007.4529689
dc.relation.referencesen14. Do, Q., & Le, T.C. (2012). Low Power Embedded System Design Using Code Compression. Solid State Systems Symposium, 1–4. https://www.researchgate.net/publication/282150217_Low_Power_Embedded_System_Design_Using_Code_Compression
dc.relation.referencesen15. Dias, W. R. A., & Moreno, E. D. (2012). CPB-ARM - A New Code Compression Method for Embedded Systems. 13th Symposium on Computing Systems, 25–32. https://doi.org/10.1109/WSCAD-SSC.2012.20
dc.relation.referencesen16. Firmware Release. (2020). https://github.com/lupyuen/pinetime-rust-riot/releases/tag/v1.0.2
dc.relation.referencesen17. Joergen Ibsen. Tiny inflate library. (2019). https://github.com/jibsen/tinf
dc.relation.urihttps://documentationservice.arm.com/static/6267de1c7e121f01fd22d677?token=
dc.relation.urihttps://www.st.com/en/microcontrollersmicroprocessors/stm32f0-series/products.html
dc.relation.urihttps://documentationservice.arm.com/static/5f8ff05ef86e16515cdbf826?token=
dc.relation.urihttps://terpconnect.umd.edu/~barua/matt-compress-tr.pdf
dc.relation.urihttps://www.ietf.org/rfc/rfc1951.txt
dc.relation.urihttps://publikationen.bibliothek.kit.edu/1000017922/1319910
dc.relation.urihttps://doi.org/10.1109/TCAD.2008.917563
dc.relation.urihttps://doi.org/10.1145/1233501.1233551
dc.relation.urihttps://doi.org/10.1145/1391962.1391968
dc.relation.urihttps://doi.org/10.1109/VLSID.2011.13
dc.relation.urihttps://doi.org/10.1007/978-3-642-24650-0_30
dc.relation.urihttp://doi.org/10.1109/ECCTD.2007.4529689
dc.relation.urihttps://www.researchgate.net/publication/282150217_Low_Power_Embedded_System_Design_Using_Code_Compression
dc.relation.urihttps://doi.org/10.1109/WSCAD-SSC.2012.20
dc.relation.urihttps://github.com/lupyuen/pinetime-rust-riot/releases/tag/v1.0.2
dc.relation.urihttps://github.com/jibsen/tinf
dc.rights.holder© Національний університет “Львівська політехніка”, 2023
dc.rights.holder© Щербина М., 2024
dc.subjectстиснення коду
dc.subjectвбудовані системи
dc.subjectARM Cortex M
dc.subjectThumb2
dc.subjectфільтрація
dc.subjectdeflate
dc.subjectcode compression
dc.subjectembedded systems
dc.subjectARM Cortex M
dc.subjectThumb2
dc.subjectfiltering
dc.subjectdeflate
dc.subject.udc621.396.67
dc.titleПокращення стиснення коду для мікроконтролерів ARM Cortex M за допомогою попередньої фільтрації
dc.title.alternativeImproving code compression for ARM cortex M microcontrollers using pre- filtering
dc.typeArticle

Files

Original bundle

Now showing 1 - 2 of 2
Loading...
Thumbnail Image
Name:
2023n14_Shcherbyna_M-Improving_code_compression_225-234.pdf
Size:
7.02 MB
Format:
Adobe Portable Document Format
Loading...
Thumbnail Image
Name:
2023n14_Shcherbyna_M-Improving_code_compression_225-234__COVER.png
Size:
336.61 KB
Format:
Portable Network Graphics

License bundle

Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
license.txt
Size:
1.77 KB
Format:
Plain Text
Description: