CHERI Performance Enhancement for a Bytecode Interpreter

08/09/2023
by   Duncan Lowther, et al.
0

During our port of the MicroPython bytecode interpreter to the CHERI-based Arm Morello platform, we encountered a number of serious performance degradations. This paper explores several of these performance issues in detail, in each case we characterize the cause of the problem, the fix, and the corresponding interpreter performance improvement over a set of standard Python benchmarks. While we recognize that Morello is a prototypical physical instantiation of the CHERI concept, we show that it is possible to eliminate certain kinds of software-induced runtime overhead that occur due to the larger size of CHERI capabilities (128 bits) relative to native pointers (generally 64 bits). In our case, we reduce a geometric mean benchmark slowdown from 5x (before optimization) to 1.7x (after optimization) relative to AArch64, non-capability, execution. The worst-case slowdowns are greatly improved, from 100x (before optimization) to 2x (after optimization). The key insight is that implicit pointer size presuppositions pervade systems code; whereas previous CHERI porting projects highlighted compile-time and execution-time errors exposed by pointer size assumptions, we instead focus on the performance implications of such assumptions.

READ FULL TEXT

page 4

page 5

page 6

page 7

page 8

research
04/23/2023

Exact Worst-Case Execution-Time Analysis for Implicit Model Predictive Control

We propose the first method that determines the exact worst-case executi...
research
02/27/2018

Less is More: Exploiting the Standard Compiler Optimization Levels for Better Performance and Energy Consumption

This paper presents the interesting observation that by performing fewer...
research
02/05/2021

Worst-Case Execution Time Calculation for Query-Based Monitors by Witness Generation

Runtime monitoring plays a key role in the assurance of modern intellige...
research
07/24/2020

Corpse Reviver: Sound and Efficient Gradual Typing via Contract Verification

Gradually-typed programming languages permit the incremental addition of...
research
12/15/2022

Triangulating Python Performance Issues with Scalene

This paper proposes Scalene, a profiler specialized for Python. Scalene ...
research
02/18/2021

Mean-Based Trace Reconstruction over Practically any Replication-Insertion Channel

Mean-based reconstruction is a fundamental, natural approach to worst-ca...
research
10/03/2022

Automated Performance Estimation for Decentralized Optimization via Network Size Independent Problems

We develop a novel formulation of the Performance Estimation Problem (PE...

Please sign up or login with your details

Forgot password? Click here to reset