Structure of the KLE Specification: Separation of Architecture and Data Formats
The KLE ISA is split into four normative chapters and two non-normative chapters.
-
Notation and Conventions defines the notation and conventions that the other chapters, the Machines included, use.
-
Unprivileged Architecture: Instructions and Architectural States defines the fixed part of the Unprivileged Architecture. The instructions and architectural state are specified independently of the exact data formats they operate on. It should be a chapter in the Unprivileged Architecture Part of the complete RISC-V specification document.
-
Unprivileged Architecture: Machines defines the Data Structures and Machines of the Unprivileged Architecture.
Within the RISC-V architecture, conformance to Unprivileged Architecture: Instructions and Architectural States requires full conformance to Unprivileged Architecture: Machines. In other words, each implemented non-custom algorithm must fully exhibit the behavior specified there.
The Machines are kept separate from the instructions because the data formats used to manage keys are intended to be interoperable across different ISAs that implement KLE or equivalent functionality. These formats are therefore not specific to RISC-V, and such ISAs must also support the Metadata Header format and the semantics of its fields verbatim. We envision that it could later be expunged and made into an independent industry standard accepted by other architecture designers.
-
Privileged Architecture defines the Privileged Architecture. It should be a chapter in the Privileged Architecture Part of the complete RISC-V specification document.
-
Appendix: Writing Software for KLE provides guidelines for software that uses KLE, and non-normative pseudocode examples illustrating the intended use of the algorithms defined in Unprivileged Architecture: Instructions and Architectural States and Unprivileged Architecture: Machines. Its rightful place would be in an appendix of the complete specification document.