Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Zhuoqun Cheng

dblp:151/5390 · DBLP profile ↗
← Back
8ranked-venue papers
4as first author
0since 2021 · last 2018
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 4 · 3 first-authorApplied, interdisciplinary, general and emerging computing · 4 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
5 papers
Embedded and real-time systems · 67% Electronic design automation · 7% Parallel and multicore computing · 7%
Software engineering, system software, and programming languages
2 papers
Operating systems · 56% Concurrent programming · 44%

Topics — the 19 heaviest of 19, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Embedded and real-time systems
real-time scheduling
0.632018
End-to-End Analysis and Design of a Drone Flight Controller · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Qduino: A Multithreaded Arduino System for Embedded Computing · RTSS 2015
Embedded and real-time systems › real-time communication
controller area network
0.312018
Tuned Pipes: End-to-End Throughput and Delay Guarantees for USB Devices · RTSS 2018
Embedded and real-time systems
cyber-physical system platforms
0.312018
End-to-End Analysis and Design of a Drone Flight Controller · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
Embedded and real-time systems › real-time communication
end-to-end delay guarantee
0.312018
Tuned Pipes: End-to-End Throughput and Delay Guarantees for USB Devices · RTSS 2018
Electronic design automation › timing analysis
end-to-end latency analysis
0.312018
End-to-End Analysis and Design of a Drone Flight Controller · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
Embedded and real-time systems
real-time communication
0.312018
Tuned Pipes: End-to-End Throughput and Delay Guarantees for USB Devices · RTSS 2018
Embedded and real-time systems
sensor fusion
0.312018
End-to-End Analysis and Design of a Drone Flight Controller · IEEE Trans. Comput. Aided Des. Integr. Circuits Syst. 2018
Embedded and real-time systems › real-time virtualization
temporal isolation
0.312018
Tuned Pipes: End-to-End Throughput and Delay Guarantees for USB Devices · RTSS 2018
Parallel and multicore computing › task scheduling
memory-aware scheduling
0.212016
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Memory systems › memory interference
memory contention
0.212016
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Embedded and real-time systems › real-time scheduling
multicore scheduling
0.212016
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Cloud and datacenter computing › virtualization › virtual machine management
virtual machine scheduling
0.212016
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Concurrent programming › concurrency models
multithreading
0.212015
Qduino: A Multithreaded Arduino System for Embedded Computing · RTSS 2015
Operating systems › real-time systems
real-time operating systems
0.212015
Qduino: A Multithreaded Arduino System for Embedded Computing · RTSS 2015
Hardware reliability and fault tolerance
error recovery
0.212014
Predictable Communication and Migration in the Quest-V Separation Kernel · RTSS 2014
Distributed systems
fault tolerance
0.212014
Predictable Communication and Migration in the Quest-V Separation Kernel · RTSS 2014
Embedded and real-time systems › embedded software › embedded operating systems
separation kernel
0.212014
Predictable Communication and Migration in the Quest-V Separation Kernel · RTSS 2014
Parallel and multicore computing
load balancing
0.112016
MARACAS: A Real-Time Multicore VCPU Scheduling Framework · RTSS 2016
Operating systems
virtualization
0.112014
Predictable Communication and Migration in the Quest-V Separation Kernel · RTSS 2014

Methods — techniques the papers use, named apart from their topics

extended API design · 0.4message passing · 0.4schedulability analysis · 0.3host controller driver design · 0.3performance counters · 0.2page recoloring · 0.2
YearPublicationVenuePosition
2018 Tuned Pipes: End-to-End Throughput and Delay Guarantees for USB Devices
abstract
A fundamental problem in real-time computing is handling device input and output in a timely manner. For example, a control system might require input data from a sensor to be sampled and processed at a regular rate so that output signals to actuators occur within specific delay bounds. Input/output (I/O) devices connect to the host computer using different types of bus interfaces. One of the most popular interfaces in use today is the universal serial bus (USB). USB is now ubiquitous, in part due to its support for many classes of devices with simplified hardware needed to connect to the host. However, typical USB host controller drivers suffer from potential timing delays that affect the delivery of data between tasks and devices. Consequently, this paper introduces tuned pipes, a host controller driver and system framework that guarantees end-to-end latency and throughput requirements for I/O transfers. We expand on our earlier work involving USB 2.0 to support higher bandwidth USB 3.x communication. As a case study, we show how a USB-Controller Area Network (CAN) guarantees temporal isolation and end-to-end guarantees on communication between a set of peripheral devices and host tasks. A comparable USB-CAN bus setup using Linux is not able to achieve the same level of temporal guarantees, even when using SCHED_DEADLINE.
Ahmad Golchin, Zhuoqun Cheng, Richard West
RTSS2
2018 End-to-End Analysis and Design of a Drone Flight Controller
abstract
Timing guarantees are crucial to embedded and cyber-physical applications that must bound the end-to-end delay between sensing, processing and actuation. For example, in a flight controller for a multirotor drone, the data from a gyro or inertial sensor must be gathered and processed to determine the attitude of the aircraft. Sensor data fusion is followed by control outputs that alter rotor speeds to adjust the drone's flight. If the processing pipeline between sensor input and actuation is not bounded, the drone will lose control and possibly fail to maintain flight. This paper describes a composable pipe model for sensor data processing and actuation tasks. The pipe model is used to analyze two end-to-end semantics: 1) freshness and 2) reaction time. We provide a mathematical framework to derive feasible task periods and budgets that satisfy both schedulability and end-to-end timing requirements. We demonstrate the applicability of our design approach by using it to port the Cleanflight flight controller firmware to our in-house real-time operating system called Quest. Experiments show that Cleanflight ported to Quest is able to achieve end-to-end latencies within the predicted time bounds derived by analysis.
Zhuoqun Cheng, Richard West, Craig Einstein
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
2017 Building Real-Time Embedded Applications on QduinoMC: A Web-Connected 3D Printer Case Study (Outstanding Paper)
abstract
Single Board Computers (SBCs) are now emerging with multiple cores, ADCs, GPIOs, PWM channels, integrated graphics, and several serial bus interfaces. The low power consumption, small form factor and I/O interface capabilities of SBCs with sensors and actuators makes them ideal in embedded and real-time applications. However, most SBCs run non-realtime operating systems based on Linux and Windows, and do not provide a user-friendly API for application development. This paper presents QduinoMC, a multicore extension to the popular Arduino programming environment, which runs on the Quest real-time operating system. QduinoMC is an extension of our earlier single-core, real-time, multithreaded Qduino API. We show the utility of QduinoMC by applying it to a specific application: a web-connected 3D printer. This differs from existing 3D printers, which run relatively simple firmware and lack operating system support to spool multiple jobs, or interoperate with other devices (e.g., in a print farm). We show how QduinoMC empowers devices with the capabilities to run new services without impacting their timing guarantees. While it is possible to modify existing operating systems to provide suitable timing guarantees, the effort to do so is cumbersome and does not provide the ease of programming afforded by QduinoMC.
Zhuoqun Cheng, Richard West
RTAS1
2016 MARACAS: A Real-Time Multicore VCPU Scheduling Framework
abstract
This paper describes a multicore scheduling and load-balancing framework called MARACAS, to address shared cache and memory bus contention. It builds upon prior work centered around the concept of virtual CPU (VCPU) scheduling. Threads are associated with VCPUs that have periodically replenished time budgets. VCPUs are guaranteed to receive their periodic budgets even if they are migrated between cores. A load balancing algorithm ensures VCPUs are mapped to cores to fairly distribute surplus CPU cycles, after ensuring VCPU timing guarantees. MARACAS uses surplus cycles to throttle the execution of threads running on specific cores when memory contention exceeds a certain threshold. This enables threads on other cores to make better progress without interference from co-runners. Our scheduling framework features a novel memory-aware scheduling approach that uses performance counters to derive an average memory request latency. We show that latency-based memory throttling is more effective than rate-based memory access control in reducing bus contention. MARACAS also supports cache-aware scheduling and migration using page recoloring to improve performance isolation amongst VCPUs. Experiments show how MARACAS reduces multicore resource contention, leading to improved task progress.
Richard West, Zhuoqun Cheng
RTSS4
2015 Demo abstract: A multithreaded arduino system for embedded computing
abstract
Arduino [1] is an open source platform that offers a clear and simple environment for physical computing. It is now widely used in modern robotics and Internet-of-Things (IoT) applications, due in part to its low-cost, ease of programming, and rapid prototyping capabilities. Sensors and actuators can easily be connected to the analog and digital I/O pins of an Arduino device, which features an on-board microcontroller programmed using the Arduino API. We present Qduino, a system developed for Arduino compatible boards. It is built upon our Quest realtime operating system kernel [4] and new Arduino-compatible boards.
Zhuoqun Cheng, Ye Li 0001, Richard West
RTAS1
2015 Qduino: A Multithreaded Arduino System for Embedded Computing
abstract
Arduino is an open source platform that offers a clear and simple environment for physical computing. It is now widely used in modern robotics and Internet of Things (IoT) applications, due in part to its low-cost, ease of programming, and rapid prototyping capabilities. Sensors and actuators can easily be connected to the analog and digital I/O pins of an Arduino device, which features an on-board microcontroller programmed using the Arduino API. The increasing complexity of physical computing applications has now led to a series of Arduino-compatible devices with faster processors, increased flash storage, larger memories and more complicated I/O architectures. The Intel Galileo, for example, is designed to support the Arduino API on top of a Linux system, code-named Clanton. However, the standard API is restricted to the capabilities found on less powerful devices, lacking support for multithreaded programs, or specification of real-time requirements. In this paper, we present Qduino, a system developed for Arduino compatible boards. Qduino provides an extended Arduino API which, while backward-compatible with the original API, supports real-time multithreaded sketches and event handling. Experiments show the performance gains of Qduino compared to Clanton Linux.
Zhuoqun Cheng, Ye Li 0001, Richard West
RTSS1
2014 COLORIS: a dynamic cache partitioning system using page coloring
abstract
Shared caches in multicore processors are subject to contention from co-running threads. The resultant interference can lead to highly-variable performance for individual applications. This is particularly problematic for real-time applications, requiring predictable timing guarantees. Previous work has applied page coloring techniques to partition a shared cache, so that conflict misses are minimized amongst co-running workloads. However, prior page coloring techniques have not addressed the problem of partitioning a cache on over-committed processors where there are more executable threads than cores. Similarly, page coloring techniques have not proven efficient at adapting the cache partition sizes for threads with varying memory demands.
Richard West, Zhuoqun Cheng, Ye Li 0001
PACT3
2014 Predictable Communication and Migration in the Quest-V Separation Kernel
abstract
Quest-V is a separation kernel, which partitions a system into a collection of sandboxes. Each sandbox encapsulates one or more processing cores, a region of machine physical memory, and a subset of I/O devices. Quest-V behaves like a distributed system on a chip, using explicit communication channels to exchange data and migrate addresses spaces between sandboxes, which operate like traditional hosts. This design has benefits in safety-critical systems, which require continued availability in the presence of failures. Additionally, online faults can be recovered without rebooting an entire system. However, the programming model for such a system is more complicated. Each sandbox has its own local scheduler, and threads must communicate using message passing with those in remote sandboxes. Similarly, address spaces may need to be migrated between sandboxes, to ensure newly forked processes do not violate the feasibility of existing local task schedules. Migration may also be needed to move a thread closer to its required resources, such as I/O devices that are not directly available in the local sandbox. This paper describes how Quest-V performs real-time communication and migration without violating service guarantees for existing threads.
Ye Li 0001, Richard West, Zhuoqun Cheng, Eric S. Missimer
RTSS3