The traditional approach to programming embedded systems is monolithic: firmware on a microcontroller contains both application code and the drivers needed to communicate with sensors and actuators, using low-level protocols such as I2C, SPI, and RS232. In comparison, software development for the cloud has moved to a service-based development and operation paradigm: a service provides a discrete unit of functionality that can be accessed remotely by an application, or other service, but is independently managed and updated.
We propose, design, implement, and evaluate a service-based approach to prototyping embedded systems called Jacdac. Jacdac defines a service specification language, designed especially for embedded systems, along with a host of specifications for a variety of sensors and actuators. With Jacdac, each sensor/actuator in a system is paired with a low-cost microcontroller that advertises the services that represent the functionality of the underlying hardware over an efficient and low-cost single-wire bus protocol. A separate microcontroller executes the user’s application program, which is a client of the Jacdac services on the bus.
Our evaluation shows that Jacdac supports a service-based abstraction for sensors/actuators at low cost and reasonable performance, with many benefits for prototyping: ease of use via the automated discovery of devices and their capabilities, substitution of same-service devices for each other, as well as high-level programming, monitoring, and debugging. We also report on the experience of bringing Jacdac to commercial availability via third-party manufacturers.
Fri 28 JunDisplayed time zone: Windhoek change
13:40 - 15:20 | Close to the HardwarePLDI Research Papers at Iceland / Denmark Chair(s): Steve Blackburn Google and Australian National University | ||
13:40 20mTalk | Allo: A Programming Model for Composable Accelerator Design PLDI Research Papers Hongzheng Chen Cornell University, Niansong Zhang Cornell University, Shaojie Xiang Cornell University, Zhichen Zeng University of Science and Technology of China, Mengjia Dai University of Science and Technology of China, Zhiru Zhang Cornell University, USA DOI | ||
14:00 20mTalk | VESTA: Power Modeling with Language Runtime Events PLDI Research Papers Joseph Raskind SUNY Binghamton, Timur Babakol SUNY Binghamton, USA, Khaled Mahmoud SUNY Binghamton, USA, Yu David Liu SUNY Binghamton DOI | ||
14:20 20mTalk | Modular Hardware Design of Pipelined Circuits with Hazards PLDI Research Papers Minseong Jang KAIST, Jungin Rhee KAIST, Woojin Lee KAIST, Shuangshuang Zhao KAIST, Jeehoon Kang KAIST DOI | ||
14:40 20mTalk | Jacdac: Service-Based Prototyping of Embedded Systems PLDI Research Papers Thomas Ball Microsoft Research, Peli de Halleux Microsoft Research, James Devine Microsoft, Steve Hodges Lancaster University, Michał Moskal Microsoft Research DOI | ||
15:00 20mTalk | Wavefront Threading Enables Effective High-Level Synthesis PLDI Research Papers Blake Pelton Microsoft, Adam Sapek Microsoft, Ken Eguro Microsoft, Daniel Lo Microsoft, Alessandro Forin Microsoft, Matt Humphrey Microsoft, Jinwen Xi Microsoft, David Cox Microsoft, Rajas Karandikar Microsoft, Johannes de Fine Licht NextSilicon, Evgeny Babin Microsoft, Adrian Caulfield Microsoft, Doug Burger Microsoft DOI Pre-print |