148 research outputs found
A first look at RISC-V virtualization from an embedded systems perspective
This article describes the first public implementation and
evaluation of the latest version of the RISC-V hypervisor extension
(H-extension v0.6.1) specification in a Rocket chip core. To perform
a meaningful evaluation for modern multi-core embedded and mixedcriticality systems, we have ported Bao, an open-source static partitioning hypervisor, to RISC-V. We have also extended the RISC-V platformlevel interrupt controller (PLIC) to enable direct guest interrupt injection
with low and deterministic latency and we have enhanced the timer
infrastructure to avoid trap and emulation overheads. Experiments were
carried out in FireSim, a cycle-accurate, FPGA-accelerated simulator,
and the system was also successfully deployed and tested in a Zynq
UltraScale+ MPSoC ZCU104. Our hardware implementation was opensourced and is currently in use by the RISC-V community towards the
ratification of the H-extension specification.This work has been supported by FCT - undação para a Ciência e a Tecnologia within the R&D Units Project Scope: UIDB/00319/2020. This work has also been supported by FCT within the PhD Scholarship Project Scope: SFRH/BD/138660/2018
A survey of techniques for reducing interference in real-time applications on multicore platforms
This survey reviews the scientific literature on techniques for reducing interference in real-time multicore systems, focusing on the approaches proposed between 2015 and 2020. It also presents proposals that use interference reduction techniques without considering the predictability issue. The survey highlights interference sources and categorizes proposals from the perspective of the shared resource. It covers techniques for reducing contentions in main memory, cache memory, a memory bus, and the integration of interference effects into schedulability analysis. Every section contains an overview of each proposal and an assessment of its advantages and disadvantages.This work was supported in part by the Comunidad de Madrid Government "Nuevas Técnicas de Desarrollo de Software de Tiempo Real Embarcado Para Plataformas. MPSoC de Próxima Generación" under Grant IND2019/TIC-17261
Cache-based Timing Side-channels in Partitioning Hypervisors
Dissertação de mestrado em Engenharia Eletrónica Industrial e ComputadoresIn recent years, the automotive industry has seen a technology complexity increase to comply with
computing innovations such as autonomous driving, connectivity and mobility. As such, the need to reduce
this complexity without compromising the intended metrics is imperative.
The advent of hypervisors in the automotive domain presents a solution to reduce the complexity of
the systems by enabling software portability and isolation between virtual machines (VMs).
Although virtualization creates the illusion of strict isolation and exclusive resource access, the
convergence of critical and non-critical systems into shared chips presents a security problem. This shared
hardware has microarchitectural features that can be exploited through their temporal behavior, creating
sensitive data leakage channels between co-located VMs. In mixed-criticality systems, the exploitation of
these channels can lead to safety issues on systems with real-time constraints compromising the whole
system.
The implemented side-channel attacks demonstrated well-defined channels, across two real-time
partitioning hypervisors in mixed-criticality systems, that enable the inference of a co-located VM’s
cache activity. Furthermore, these channels have proven to be mitigated using cache coloring as a
countermeasure, thus increasing the determinism of the system in detriment of average performance.
From a safety perspective, this dissertation emphasizes the need to weigh the tradeoffs of the trending
architectural features that target performance over predictability and determinism.Nos últimos anos, a indústria automotiva tem sido objeto de um crescendo na sua complexidade
tecnológica de maneira a manter-se a par das mais recentes inovações de computação. Sendo assim, a
necessidade de reduzir a complexidade sem comprometer as métricas pretendidas é imperativa.
O advento dos hipervisores na indústria automotiva apresenta uma solução para a redução da
complexidade dos sistemas, possiblitando a portabilidade do software e o isolamento entrevirtual vachines
(VMs).
Embora a virtualização crie a ilusão de isolamento e acesso exclusivo a recursos, a convergência
de sistemas crÃticos e não-crÃticos em chips partilhados representa um problema de segurança. O
hardware partilhado tem caracterÃsticas microarquiteturais que podem ser exploradas através do seu
comportamento temporal, criando canais de fuga de informação crÃtica entre VMs adjacentes. Em
sistemas de criticalidade mista, a exploração destes canais pode comprometer sistemas com limitações
de tempo real.
Os ataques side-channel implementados revelam canais bem definidos que possibilitam a inferência
da atividade de cache de VMs situadas no mesmo processador. Além disso, esses canais provaram serem
passÃveis de ser mitigados usando cache coloring como estratégia de mitigação, aumentando assim o
determinismo do sistema em detrimento da sua performance.
De uma perspetiva da segurança, esta dissertação enfatiza a necessidade de pesar os tradeoffs das
tendências arquiteturais que priorizam a performance e secundarizam o determinismo e previsibilidade
do sistema
Secure Virtualization of Latency-Constrained Systems
Virtualization is a mature technology in server and desktop environments where multiple systems are consolidate onto a single physical hardware platform, increasing the utilization of todays multi-core systems as well as saving resources such as energy, space and costs compared to multiple single systems. Looking at embedded environments reveals that many systems use multiple separate computing systems inside, including requirements for real-time and isolation properties. For example, modern high-comfort cars use up to a hundred embedded computing systems. Consolidating such diverse configurations promises to save resources such as energy and weight.
In my work I propose a secure software architecture that allows consolidating multiple embedded software systems with timing constraints. The base of the architecture builds a microkernel-based operating system that supports a variety of different virtualization approaches through a generic interface, supporting hardware-assisted virtualization and paravirtualization as well as multiple architectures. Studying guest systems with latency constraints with regards to virtualization showed that standard techniques such as high-frequency time-slicing are not a viable approach.
Generally, guest systems are a combination of best-effort and real-time work and thus form a mixed-criticality system. Further analysis showed that such systems need to export relevant internal scheduling information to the hypervisor to support multiple guests with latency constraints. I propose a mechanism to export those relevant events that is secure, flexible, has good performance and is easy to use. The thesis concludes with an evaluation covering the virtualization approach on the ARM and x86 architectures and two guest operating systems, Linux and FreeRTOS, as well as evaluating the export mechanism
Cache-Aware Real-Time Virtualization
Virtualization has been adopted in diverse computing environments, ranging from cloud computing to embedded systems. It enables the consolidation of multi-tenant legacy systems onto a multicore processor for Size, Weight, and Power (SWaP) benefits. In order to be adopted in timing-critical systems, virtualization must provide real-time guarantee for tasks and virtual machines (VMs). However, existing virtualization technologies cannot offer such timing guarantee. Tasks in VMs can interfere with each other through shared hardware components. CPU cache, in particular, is a major source of interference that is hard to analyze or manage.
In this work, we focus on challenges of the impact of cache-related interferences on the real-time guarantee of virtualization systems. We propose the cache-aware real-time virtualization that provides both system techniques and theoretical analysis for tackling the challenges. We start with the challenge of the private cache overhead and propose the private cache-aware compositional analysis. To tackle the challenge of the shared cache interference, we start with non-virtualization systems and propose a shared cache-aware scheduler for operating systems to co-allocate both CPU and cache resources to tasks and develop the analysis. We then investigate virtualization systems and propose a dynamic cache management framework that hierarchically allocates shared cache to tasks. After that, we further investigate the resource allocation and analysis technique that considers not only cache resource but also CPU and memory bandwidth resources. Our solutions are applicable to commodity hardware and are essential steps to advance virtualization technology into timing-critical systems
Recommended from our members
System Design for Software Packet Processing
The role of software in computer networks has never been more crucial than today, with the advent of Internet-scale services and cloud computing. The trend toward software-based network dataplane—as in network function virtualization—requires software packet processing to meet challenging perfomance requirements, such as supporting exponentially increasing link bandwidth and microsecond-order latency. Many architectural aspects of existing software systems for packet processing, however, are decades old and ill-suited totoday’s network I/O workloads.In this dissertation, we explore the design space of high-performance software packet processing systems in the context of two application domains, . First, we start by discussingthe limitations of BSD Socket, which is a de-facto standard in network I/O for server applications. We quantify its performance limitations and propose a clean-slate API, called MegaPipe, as an alternative to BSD Socket. In the second part of this dissertation, we switch our focus to in-network software systems for network functions, such as network switches and middleboxes. We present Berkeley Extensible Software Switch (BESS), a modular framework for building extensible network functions. BESS introduces various novel techniques to achieve high-performance software packet processing, without compromising on either programmability or flexibility
- …