The Alibaba Damo Academy Xuantie extension collection was created to augment the RISC-V ISA by adding additional functionality to enable faster and more energy-efficient solutions.
The RISC-V ISA and its standardized extensions provide a rich set of instructions suitable for a wide range of applications, starting from specialized microcontrollers to HPC systems. The suitability for such a range of systems comes from the fact that the RISC-V ISA is modularized with a base instruction set and a range of extensions that target specific target applications and functionality.
The RISC-V ISA and its authors strongly advertise the ability to create vendor extensions. Dedicated encoding spaces ensure, that there are not conflicts with standard extensions.
This document specifies the XuanTie extension collection, a collection of vendor extensions that are implemented in many XuanTie processors.
The XuanTie extension collection follows the principles of the RISC-V ISA. The collection consists of the following ISA extensions:
-
XTheadSxStatus
provides a CSR to probe the availability of XThead* extensions. -
XTheadCmo
provides instructions for cache management. -
XTheadSync
provides instructions for multi-processor synchronization. -
XTheadBa
provides instructions for address calculations. -
XTheadBb
provides instructions for basic bit-manipulation. -
XTheadBs
provides single-bit instructions. -
XTheadCondMov
provides instructions for conditional moves. -
XTheadMemIdx
provides GPR memory operations. -
XTheadMemPair
provides two-GP-register memory operations. -
XTheadFMemIdx
provides floating-point memory operations. -
XTheadMac
provides multiply-accumulate instructions. -
XTheadFmv
provides double floating-point high-bit data transmission instructions. -
XTheadInt
provides acceleration interruption instructions. -
XTheadVdot
provides instructions for vector dot. -
XTheadVector
provides instructions for thead vector.
The XuanTie extension collection is designed to be compatible with RISC-V’s base integer instruction sets RV32I and RV64I.
Some instructions are only available if the system’s
XLEN
is 64 (i.e. integer registers and supported user
address space is 64 bits).
To highlight the availability, each extension documents
this for each instruction.
Instruction that operate on floating-point registers can
be used in combination with F
(32-bit floating-point register)
or D
(64-bit floating-point registers).
Some instruction are only available if the system implements
the D
extension. To highlight the availability, each
floating-point extension document this for each instruction.
For probing of the extension’s availability the extension
Zicsr
is required to read out the th.sxstatus
CSR.
Refer to [xtheadsxstatus] for more information about the th.sxstatus
CSR.
The lifecycle of the extensions included in this document is defined on a per-extension base.
Possible states are:
-
Draft
: No guarantees (everything may change). -
Stable
: No feature additions/removals/changes. Only clarifications.
A draft
specification is expected to become stable
in the future
(with exepcted changes until then). A stable
extension remains in that
state for ever.