{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:52:32Z","timestamp":1750308752455,"version":"3.41.0"},"reference-count":49,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2007,2,1]],"date-time":"2007-02-01T00:00:00Z","timestamp":1170288000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2007,2]]},"abstract":"<jats:p>The overhead of context switching limits efficient scheduling of multiple concurrent threads on a uniprocessor when real-time requirements exist. A software-implemented protocol controller may be crippled by this problem. The available idle time may be too short to recover through context switching, so only the primary thread can execute during message activity, slowing the secondary threads and potentially missing deadlines. Asynchronous software thread integration (ASTI) uses coroutine calls and integration, letting threads make independent progress efficiently, and reducing the needed context switches. We demonstrate the methods with a software implementation of an automotive communication protocol (J1850) and several secondary threads.<\/jats:p>","DOI":"10.1145\/1210268.1210270","type":"journal-article","created":{"date-parts":[[2007,4,5]],"date-time":"2007-04-05T19:20:08Z","timestamp":1175800808000},"page":"2","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":1,"title":["Efficient software implementation of embedded communication protocol controllers using asynchronous software thread integration with time- and space-efficient procedure calls"],"prefix":"10.1145","volume":"6","author":[{"given":"Nagendra J.","family":"Kumar","sequence":"first","affiliation":[{"name":"North Carolina State University, Raleigh, NC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Vasanth","family":"Asokan","sequence":"additional","affiliation":[{"name":"North Carolina State University, Raleigh, NC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Siddhartha","family":"Shivshankar","sequence":"additional","affiliation":[{"name":"North Carolina State University, Raleigh, NC"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Alexander G.","family":"Dean","sequence":"additional","affiliation":[{"name":"North Carolina State University, Raleigh, NC"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2007,2]]},"reference":[{"key":"e_1_2_1_1_1","unstructured":"Allen F. E. and Cocke J. 1972. A Catalogue of Optimizing Transformations. Prentice Hall.]] Allen F. E. and Cocke J. 1972. A Catalogue of Optimizing Transformations. Prentice Hall.]]"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/351397.351416"},{"volume-title":"Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems. ACM Press","author":"Asokan V.","key":"e_1_2_1_4_1","unstructured":"Asokan , V. and Dean , A. G . 2004. Providing time- and space- efficient procedure calls for asynchronous software thread integration . In Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems. ACM Press , New York.]] 10.1145\/1023833.1023858 Asokan, V. and Dean, A. G. 2004. Providing time- and space- efficient procedure calls for asynchronous software thread integration. In Proceedings of the International Conference on Compilers, Architectures and Synthesis for Embedded Systems. ACM Press, New York.]] 10.1145\/1023833.1023858"},{"volume-title":"Atmega 128: 8-Bit AVR Microcontroller with 128K Bytes In-System Programmable Flash","author":"Atmel Corporation","key":"e_1_2_1_5_1","unstructured":"Atmel Corporation . Atmega 128: 8-Bit AVR Microcontroller with 128K Bytes In-System Programmable Flash . Atmel Corporation .]] Atmel Corporation. Atmega 128: 8-Bit AVR Microcontroller with 128K Bytes In-System Programmable Flash. Atmel Corporation.]]"},{"key":"e_1_2_1_6_1","unstructured":"Atmel Corporation. AVR Studio 3.52. Atmel Corporation.]] Atmel Corporation. AVR Studio 3.52. Atmel Corporation.]]"},{"volume-title":"AVR304: Half Duplex Interrupt Driven Software UART","author":"Atmel Corporation 1997.","key":"e_1_2_1_7_1","unstructured":"Atmel Corporation 1997. AVR304: Half Duplex Interrupt Driven Software UART . Atmel Corporation .]] Atmel Corporation 1997. AVR304: Half Duplex Interrupt Driven Software UART. Atmel Corporation.]]"},{"volume-title":"AVR308: Software LIN Slave","author":"Atmel Corporation 2002a.","key":"e_1_2_1_8_1","unstructured":"Atmel Corporation 2002a. AVR308: Software LIN Slave . Atmel Corporation .]] Atmel Corporation 2002a. AVR308: Software LIN Slave. Atmel Corporation.]]"},{"volume-title":"AVR320: Software SPI Master","author":"Atmel Corporation 2002b.","key":"e_1_2_1_9_1","unstructured":"Atmel Corporation 2002b. AVR320: Software SPI Master . Atmel Corporation .]] Atmel Corporation 2002b. AVR320: Software SPI Master. Atmel Corporation.]]"},{"volume-title":"AVR410: RC5 IR Remote Control Receiver","author":"Atmel Corporation 2002c.","key":"e_1_2_1_10_1","unstructured":"Atmel Corporation 2002c. AVR410: RC5 IR Remote Control Receiver . Atmel Corporation .]] Atmel Corporation 2002c. AVR410: RC5 IR Remote Control Receiver. Atmel Corporation.]]"},{"key":"e_1_2_1_12_1","unstructured":"Breslin T. 1997. Application note: 68hc05k0 infra-red remote control.]] Breslin T. 1997. Application note: 68hc05k0 infra-red remote control.]]"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380220502"},{"volume-title":"Proceedings of the Design Automation Conference. 462--467","author":"Chou P.","key":"e_1_2_1_14_1","unstructured":"Chou , P. and Borriello , G . 1995. Interval scheduling: Fine grained code scheduling for embedded systems . In Proceedings of the Design Automation Conference. 462--467 .]] 10.1145\/217474.217571 Chou, P. and Borriello, G. 1995. Interval scheduling: Fine grained code scheduling for embedded systems. In Proceedings of the Design Automation Conference. 462--467.]] 10.1145\/217474.217571"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/0096-0551(93)90005-L"},{"volume-title":"Design Automation Conference.]]","author":"Cortadella J.","key":"e_1_2_1_16_1","unstructured":"Cortadella , J. , Kondratyev , A. , Lavagno , L. , Passerone , C. , and Watanabe , Y . 2000. Quasi-static scheduling of independent tasks for reactive systems . Design Automation Conference.]] Cortadella, J., Kondratyev, A., Lavagno, L., Passerone, C., and Watanabe, Y. 2000. Quasi-static scheduling of independent tasks for reactive systems. Design Automation Conference.]]"},{"key":"e_1_2_1_18_1","volume-title":"Proceedings of the 23rd IEEE International Symposium on Real-Time Systems. IEEE Press","author":"Dean A. G.","year":"2002","unstructured":"Dean , A. G. 2002 . Compiling for concurrency: Planning and performing software thread integration . In Proceedings of the 23rd IEEE International Symposium on Real-Time Systems. IEEE Press , Austin, TX.]] Dean, A. G. 2002. Compiling for concurrency: Planning and performing software thread integration. In Proceedings of the 23rd IEEE International Symposium on Real-Time Systems. IEEE Press, Austin, TX.]]"},{"volume-title":"Second Workshop on Compiler and Architectural Support for Embedded Systems","author":"Dean A. G.","key":"e_1_2_1_19_1","unstructured":"Dean , A. G. and Grzybowski , R. R . 1999. A high-temperature embedded network interface using software thread integration . In Second Workshop on Compiler and Architectural Support for Embedded Systems . Washington, DC.]] Dean, A. G. and Grzybowski, R. R. 1999. A high-temperature embedded network interface using software thread integration. In Second Workshop on Compiler and Architectural Support for Embedded Systems. Washington, DC.]]"},{"volume-title":"Proceedings of the 19th IEEE International Symposium on Real-Time Systems","author":"Dean A. G.","key":"e_1_2_1_20_1","unstructured":"Dean , A. G. and Shen , J. P . 1998. Techniques for software thread integration in real-time embedded systems . In Proceedings of the 19th IEEE International Symposium on Real-Time Systems . Madrid, Spain. 322--333.]] Dean, A. G. and Shen, J. P. 1998. Techniques for software thread integration in real-time embedded systems. In Proceedings of the 19th IEEE International Symposium on Real-Time Systems. Madrid, Spain. 322--333.]]"},{"key":"e_1_2_1_21_1","volume-title":"SIGPLAN Conference on Programming Language Design and Implementation. 93--102","author":"Dean J.","year":"2071","unstructured":"Dean , J. , Chambers , C. , and Grove , D . 1995. Selective specialization for object-oriented languages . In SIGPLAN Conference on Programming Language Design and Implementation. 93--102 .]] 10.1145\/ 2071 10.207119 Dean, J., Chambers, C., and Grove, D. 1995. Selective specialization for object-oriented languages. In SIGPLAN Conference on Programming Language Design and Implementation. 93--102.]] 10.1145\/207110.207119"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/337292.337429"},{"key":"e_1_2_1_23_1","unstructured":"Embacher M. 1996. Replacing dedicated protocol controllers with code efficient and configurable microcontrollers---low speed can network applications.]] Embacher M. 1996. Replacing dedicated protocol controllers with code efficient and configurable microcontrollers---low speed can network applications.]]"},{"volume-title":"avr-gcc 3.2","author":"Free Software Foundation","key":"e_1_2_1_24_1","unstructured":"Free Software Foundation . avr-gcc 3.2 . Free Software Foundation .]] Free Software Foundation. avr-gcc 3.2. Free Software Foundation.]]"},{"volume-title":"Design Automation Conference. 151--156","author":"French R. S.","key":"e_1_2_1_25_1","unstructured":"French , R. S. , Lam , M. S. , Levitt , J. R. , and Olukotun , K . 1995. A general method for compiling event-driven simulations . In Design Automation Conference. 151--156 .]] 10.1145\/217474.217522 French, R. S., Lam, M. S., Levitt, J. R., and Olukotun, K. 1995. A general method for compiling event-driven simulations. In Design Automation Conference. 151--156.]] 10.1145\/217474.217522"},{"volume-title":"Proceedings of the 10th IEEE Real-Time and Embedded Technology Applications Symposium. IEEE Press, Washington, D.C.]]","author":"Ganesan P.","key":"e_1_2_1_26_1","unstructured":"Ganesan , P. and Dean , A. G . 2004. Enhancing the AVRx kernel with efficient secure communication using software thread integration . In Proceedings of the 10th IEEE Real-Time and Embedded Technology Applications Symposium. IEEE Press, Washington, D.C.]] Ganesan, P. and Dean, A. G. 2004. Enhancing the AVRx kernel with efficient secure communication using software thread integration. In Proceedings of the 10th IEEE Real-Time and Embedded Technology Applications Symposium. IEEE Press, Washington, D.C.]]"},{"key":"e_1_2_1_27_1","unstructured":"George S. HC05 software-driven asynchronous serial communication techniques using the mc68hc705j1a.]] George S. HC05 software-driven asynchronous serial communication techniques using the mc68hc705j1a.]]"},{"key":"e_1_2_1_28_1","unstructured":"Goodhue G. A software duplex UART for the 751\/752.]] Goodhue G. A software duplex UART for the 751\/752.]]"},{"volume-title":"15th IEEE Real Time Systems Symposium.]]","author":"Gupta R.","key":"e_1_2_1_29_1","unstructured":"Gupta , R. and Spezialetti , M . 1994. Busy-idle profiles and compact task graphs: Compile-time support for interleaved and overlapped scheduling of real-time tasks . In 15th IEEE Real Time Systems Symposium.]] Gupta, R. and Spezialetti, M. 1994. Busy-idle profiles and compact task graphs: Compile-time support for interleaved and overlapped scheduling of real-time tasks. In 15th IEEE Real Time Systems Symposium.]]"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00134684"},{"key":"e_1_2_1_31_1","doi-asserted-by":"crossref","unstructured":"Ha S. and Lee E. 1997. Compile-time scheduling of dynamic constructs in dataflow program graphs.]] Ha S. and Lee E. 1997. Compile-time scheduling of dynamic constructs in dataflow program graphs.]]","DOI":"10.1109\/12.599897"},{"key":"e_1_2_1_32_1","first-page":"3","article-title":"Integrating a soft modem","volume":"12","author":"Herbert T. F.","year":"1999","unstructured":"Herbert , T. F. 1999 . Integrating a soft modem . Embedded Systems Programming 12 , 3 (Mar.), 62--74.]] Herbert, T. F. 1999. Integrating a soft modem. Embedded Systems Programming 12, 3 (Mar.), 62--74.]]","journal-title":"Embedded Systems Programming"},{"key":"e_1_2_1_33_1","doi-asserted-by":"crossref","unstructured":"Hill J. Szewczyk R. Woo A. Hollar S. Culler D. E. and Pister K. S. J. 2000. System architecture directions for networked sensors. In Architectural Support for Programming Languages and Operating Systems. 93--104.]] 10.1145\/378993.379006 Hill J. Szewczyk R. Woo A. Hollar S. Culler D. E. and Pister K. S. J. 2000. System architecture directions for networked sensors. In Architectural Support for Programming Languages and Operating Systems. 93--104.]] 10.1145\/378993.379006","DOI":"10.1145\/384264.379006"},{"key":"e_1_2_1_34_1","first-page":"12","article-title":"Low-cost software bell-202 modem","volume":"107","author":"Holland S.","year":"1999","unstructured":"Holland , S. 1999 . Low-cost software bell-202 modem . Circuit Cellar 107 ( June ), 12 -- 19 .]] Holland, S. 1999. Low-cost software bell-202 modem. Circuit Cellar 107 (June), 12--19.]]","journal-title":"Circuit Cellar"},{"volume-title":"Proceedings of the 2004 ACM SIGPLAN\/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems. ACM Press","author":"Kumar N. J.","key":"e_1_2_1_36_1","unstructured":"Kumar , N. J. , Shivshankar , S. , and Dean , A. G . 2004. Asynchronous software thread integration for efficient software implementations of embedded communication protocol controllers . In Proceedings of the 2004 ACM SIGPLAN\/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems. ACM Press , New York.]] 10.1145\/997163.997170 Kumar, N. J., Shivshankar, S., and Dean, A. G. 2004. Asynchronous software thread integration for efficient software implementations of embedded communication protocol controllers. In Proceedings of the 2004 ACM SIGPLAN\/SIGBED Conference on Languages, Compilers and Tools for Embedded Systems. ACM Press, New York.]] 10.1145\/997163.997170"},{"volume-title":"iteration, and conditionals in statically scheduled block diagram languages","author":"Lee E. A.","key":"e_1_2_1_37_1","unstructured":"Lee , E. A. 1988. Recurrences , iteration, and conditionals in statically scheduled block diagram languages . In VLSI Signal Processing III, R. W. Brodersen and H. S. Moscovitz, Eds. IEEE Press, Washington , D.C. 330--340.]] Lee, E. A. 1988. Recurrences, iteration, and conditionals in statically scheduled block diagram languages. In VLSI Signal Processing III, R. W. Brodersen and H. S. Moscovitz, Eds. IEEE Press, Washington, D.C. 330--340.]]"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.1987.5009446"},{"key":"e_1_2_1_39_1","doi-asserted-by":"crossref","unstructured":"Leupers R. and Marwedel P. 1999. Function inlining under code size constraints for embedded processors. In ICCAD. 253--256.]] Leupers R. and Marwedel P. 1999. Function inlining under code size constraints for embedded processors. In ICCAD. 253--256.]]","DOI":"10.1109\/ICCAD.1999.810657"},{"key":"e_1_2_1_40_1","volume-title":"Proceedings of the conference on Design, automation and test in Europe. IEEE Computer Society, Washington, D.C. 211--217","author":"Lin B.","year":"1998","unstructured":"Lin , B. 1998 . Efficient compilation of process-based concurrent programs without run-time scheduling . In Proceedings of the conference on Design, automation and test in Europe. IEEE Computer Society, Washington, D.C. 211--217 .]] Lin, B. 1998. Efficient compilation of process-based concurrent programs without run-time scheduling. In Proceedings of the conference on Design, automation and test in Europe. IEEE Computer Society, Washington, D.C. 211--217.]]"},{"volume-title":"Proceedings of Euco. Grenoble.]]","author":"Loeffler C.","key":"e_1_2_1_41_1","unstructured":"Loeffler , C. , Lightenberg , A. , Bheda , H. , and Moschytz , G . 1988. Hierarchical scheduling systems for parallel architectures . In Proceedings of Euco. Grenoble.]] Loeffler, C., Lightenberg, A., Bheda, H., and Moschytz, G. 1988. Hierarchical scheduling systems for parallel architectures. In Proceedings of Euco. Grenoble.]]"},{"key":"e_1_2_1_42_1","unstructured":"Micrel Inc. 2000. MIC74 2-Wire Serial I\/O Expander and Fan Controller. Micrel Inc.]] Micrel Inc. 2000. MIC74 2-Wire Serial I\/O Expander and Fan Controller. Micrel Inc.]]"},{"key":"e_1_2_1_43_1","unstructured":"Microchip Technology Inc. 2000. MCP2502X\/5X CAN I\/O Expander Family Data Sheet. Microchip Technology Inc.]] Microchip Technology Inc. 2000. MCP2502X\/5X CAN I\/O Expander Family Data Sheet. Microchip Technology Inc.]]"},{"key":"e_1_2_1_44_1","unstructured":"Naufel N. Interfacing the 68hc05c5 SIOP to an I2C peripheral.]] Naufel N. Interfacing the 68hc05c5 SIOP to an I2C peripheral.]]"},{"key":"e_1_2_1_45_1","unstructured":"Nisley E. 2003. Rising tides. Dr. Dobb's Journal 346.]] Nisley E. 2003. Rising tides. Dr. Dobb's Journal 346.]]"},{"key":"e_1_2_1_46_1","unstructured":"Philips Semiconductors 1996. P82C150 CAN Serial Linked I\/O Device (SLIO) with Digital and Analog Port Functions Data Sheet. Philips Semiconductors.]] Philips Semiconductors 1996. P82C150 CAN Serial Linked I\/O Device (SLIO) with Digital and Analog Port Functions Data Sheet. Philips Semiconductors.]]"},{"key":"e_1_2_1_47_1","unstructured":"Philips Semiconductors 2002. PCF8574 Remote 8-bit I\/O Expander for I2C-bus. Philips Semiconductors.]] Philips Semiconductors 2002. PCF8574 Remote 8-bit I\/O Expander for I2C-bus. Philips Semiconductors.]]"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.19831"},{"volume-title":"Proceedings of the 20th International Conference Application and Theory of Petri Nets. 208--227","author":"Sgroi M.","key":"e_1_2_1_49_1","unstructured":"Sgroi , M. , Lavagno , L. , Watanabe , Y. , and Sangiovanni-Vincentelli , A. L . 1999. Quasi-static scheduling of embedded software using equal conflict nets . In Proceedings of the 20th International Conference Application and Theory of Petri Nets. 208--227 .]] Sgroi, M., Lavagno, L., Watanabe, Y., and Sangiovanni-Vincentelli, A. L. 1999. Quasi-static scheduling of embedded software using equal conflict nets. In Proceedings of the 20th International Conference Application and Theory of Petri Nets. 208--227.]]"},{"volume-title":"Proceedings of the 2005 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems.]] 10","author":"Shivshankar S.","key":"e_1_2_1_50_1","unstructured":"Shivshankar , S. , Vangara , S. , and Dean , A. G . 2005. Balancing register pressure and context-switching delays in ASTI systems . In Proceedings of the 2005 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems.]] 10 .1145\/1086297.1086335 Shivshankar, S., Vangara, S., and Dean, A. G. 2005. Balancing register pressure and context-switching delays in ASTI systems. In Proceedings of the 2005 International Conference on Compilers, Architecture, and Synthesis for Embedded Systems.]] 10.1145\/1086297.1086335"},{"volume-title":"Proceedings of the Seventh Workshop on Interaction between Compilers and Computer Architectures.]]","author":"So W.","key":"e_1_2_1_51_1","unstructured":"So , W. and Dean , A. G . 2003. Procedure cloning and integration for converting parallelism from coarse to fine grain . In Proceedings of the Seventh Workshop on Interaction between Compilers and Computer Architectures.]] So, W. and Dean, A. G. 2003. Procedure cloning and integration for converting parallelism from coarse to fine grain. In Proceedings of the Seventh Workshop on Interaction between Compilers and Computer Architectures.]]"},{"volume-title":"SAE J1850 Class B data communication network interface","author":"Society of Automotive Engineers 1992.","key":"e_1_2_1_52_1","unstructured":"Society of Automotive Engineers 1992. SAE J1850 Class B data communication network interface . Society of Automotive Engineers .]] Society of Automotive Engineers 1992. SAE J1850 Class B data communication network interface. Society of Automotive Engineers.]]"},{"volume-title":"Proceedings of the 2003 International Conference on Compilers, Architectures, and Synthesis for Embedded Systems. ACM Press","author":"Welch B.","key":"e_1_2_1_54_1","unstructured":"Welch , B. , Kanaujia , S. , Seetharam , A. , Thirumalai , D. , and Dean , A. G . 2003. Extending STI for demanding hard-real-time systems . In Proceedings of the 2003 International Conference on Compilers, Architectures, and Synthesis for Embedded Systems. ACM Press , New York. 41--50.]] 10.1145\/951710.951719 Welch, B., Kanaujia, S., Seetharam, A., Thirumalai, D., and Dean, A. G. 2003. Extending STI for demanding hard-real-time systems. In Proceedings of the 2003 International Conference on Compilers, Architectures, and Synthesis for Embedded Systems. ACM Press, New York. 41--50.]] 10.1145\/951710.951719"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1210268.1210270","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1210268.1210270","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:22:21Z","timestamp":1750278141000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1210268.1210270"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007,2]]},"references-count":49,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2007,2]]}},"alternative-id":["10.1145\/1210268.1210270"],"URL":"https:\/\/doi.org\/10.1145\/1210268.1210270","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"type":"print","value":"1539-9087"},{"type":"electronic","value":"1558-3465"}],"subject":[],"published":{"date-parts":[[2007,2]]},"assertion":[{"value":"2007-02-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}