Full metadata
Title
Code Generation Techniques For Emerging Capability Architectures
Description
Memory safety and security issues continue to plague modern systems and are rapidly becoming a top priority. Capability architectures are a proposed solution that solve the problem at a fundamental hardware level, with several commercially viable options under active development. These new and evolving designs place higher demand upon the software tools needed to develop software to ensure correct execution. Capabilities introduce ideas that challenge typical architecture assumptions about the representation of data and its location in memory. This calls for a new core system software ecosystem. A fundamental component of any software ecosystem is a compiler. Without a compiler, large critical components of the ecosystem must be written in assembly language; a tedious and possibly error-prone task. A compiler for a capability architecture that emphasizes memory security must above all else ensure functional and correct code generation, raw performance and power efficiency are no longer the chief concerns. Compilers for these architectures have been developed, but as capability architectures mature in complexity new compilation support is required. A set of techniques that help solve the compilation challenges for a capability architecture are presented in this work. These capability-aware compiler ideas are presented in their generalized forms to enable their adoption in other architectures and future extensions. Some of the ideas presented come out of work on a compiler for a new capability architecture, Zeno. The Zeno compiler utilizes the extensible RISC-V instruction set and adds a set of global memory extensions, xBGAS (Extended Base Global Address Space), which is used to provide memory security. The Zeno compiler is described in detail as an implementation of the generalized capability-aware compiler. Static analysis is used to evaluate the generated assembly code produced by the compiler. Rather than focusing on the runtime performance of code generated by the Zeno compiler, this work evaluates the compiler based on a static analysis of the generated source code. We find the code produced by the Zeno compiler sufficient to enable further testing of the Zeno architecture and drive its development. The generated code is sufficient to enable further testing of the Zeno architecture and drive its development.
Date Created
2022
Contributors
- Abraham, Jacob (Author)
- Kinsy, Michel (Thesis advisor)
- Rudd, Kevin (Committee member)
- Glew, Andy (Committee member)
- Arizona State University (Publisher)
Topical Subject
Resource Type
Extent
89 pages
Language
eng
Copyright Statement
In Copyright
Primary Member of
Peer-reviewed
No
Open Access
No
Handle
https://hdl.handle.net/2286/R.2.N.171410
Level of coding
minimal
Cataloging Standards
Note
Partial requirement for: M.S., Arizona State University, 2022
Field of study: Computer Science
System Created
- 2022-12-20 12:33:10
System Modified
- 2022-12-20 12:52:47
- 1 year 11 months ago
Additional Formats