CHERI Performance Enhancement for a Bytecode Interpreter
Duncan Lowther, Dejice Jacob, Jeremy Singer

TL;DR
This paper identifies and addresses performance issues encountered when porting the MicroPython bytecode interpreter to the CHERI-based Arm Morello platform, achieving significant speedups by optimizing for larger capability pointers.
Contribution
It demonstrates how to mitigate software-induced runtime overhead caused by larger CHERI capabilities, improving interpreter performance on the Morello platform.
Findings
Reduced benchmark slowdown from 5x to 1.7x after optimization
Greatly improved worst-case slowdown from 100x to 2x
Showed that pointer size assumptions impact performance, not just correctness
Abstract
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…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsParallel Computing and Optimization Techniques · Logic, programming, and type systems · Algorithms and Data Compression
