Skip to main content
πŸŽ“ Claude Code Masterclass Learn AI-assisted development on Udemy β€” plus the companion book on Leanpub & Amazon. Start Learning
Close-up of an ESWIN RISC-V AI chip, illustrating ISA extensions in silicon
RISC-V

RISC-V Extensions Explained: The ISA Alphabet

M, A, F, D, C, V, B, H and the Z-extensions β€” a clear guide to the RISC-V extension alphabet and how to read strings like RV64GC and rv64imafdc.

LB
Luca Berton
Β· 4 min read

If you have spent any time around RISC-V, you have seen strings like RV64GC or rv64imafdc_zicsr_zba and wondered what the alphabet soup means. Those letters are the heart of what makes RISC-V different: a small base ISA plus a menu of extensions you combine to build exactly the processor you need. This guide decodes the whole alphabet.

Close-up of an ESWIN RISC-V chip on the Summit expo floor

How to Read a RISC-V ISA String

A RISC-V ISA string has three parts:

  1. Base β€” RV32, RV64, or RV128 (register width in bits), plus I (integer) or E (embedded/reduced).
  2. Single-letter extensions β€” M, A, F, D, C, V, and so on, appended in a canonical order.
  3. Z / S / X sub-extensions β€” finer-grained named extensions, separated by underscores.

So rv64imafdc_zicsr_zifencei reads as: 64-bit integer base, with multiply, atomics, single- and double-precision float, compressed instructions, plus the control-status-register and instruction-fence sub-extensions.

You can see this on any RISC-V Linux box:

cat /proc/cpuinfo | grep isa
# isa : rv64imafdc_zicsr_zifencei_...

The Base ISAs

  • RV32I β€” 32-bit base, 32 integer registers. The minimal real-world base.
  • RV64I β€” 64-bit base, the standard for Linux-capable application processors.
  • RV32E β€” a reduced base with only 16 registers, for the tiniest embedded cores.
  • RV128I β€” a 128-bit base, reserved for the future.

The base is deliberately tiny β€” just enough to be Turing-complete and useful. Everything else is opt-in.

The Standard Single-Letter Extensions

LetterNameWhat it adds
MMultiply/DivideInteger multiplication and division
AAtomicAtomic read-modify-write for concurrency
FFloat (single)32-bit IEEE-754 floating point
DDouble64-bit floating point (implies F)
CCompressed16-bit encodings of common instructions for code density
VVectorScalable SIMD β€” the basis of AI/HPC acceleration
BBit-manipulationBit-field, shift, and count operations
HHypervisorHardware virtualization support
QQuad float128-bit floating point

G: The Convenience Bundle

Writing IMAFD_Zicsr_Zifencei every time is tedious, so RISC-V defines G (β€œgeneral”) as shorthand for exactly that common combination. Therefore RV64GC = RV64IMAFDC + the essential Zicsr/Zifencei β€” the de-facto baseline for general-purpose Linux chips.

Why Compressed (C) Matters

The C extension deserves a special mention. By providing 16-bit encodings for the most common 32-bit instructions, it cuts code size by roughly 25–30%. Smaller code means smaller instruction caches, less memory bandwidth, and lower power β€” which is why almost every practical RISC-V chip, from microcontrollers to servers, implements it.

The Vector Extension (V)

The V extension (ratified as RVV 1.0) is arguably the most strategically important. Unlike fixed-width SIMD (e.g. AVX), RISC-V vectors are length-agnostic: the same binary runs on hardware with different vector register widths. That makes it ideal for AI and HPC, and it is why RVV is central to RISC-V AI accelerators and datacenter HPC. I cover it in depth in RISC-V Vector Programming with RVV 1.0.

The Z-Extensions: Granular by Design

Single letters are coarse. The community needed finer control, so RISC-V introduced Z-extensions β€” named, granular sub-extensions. A few you will encounter:

  • Zicsr β€” control and status register access (so common it is almost always present)
  • Zifencei β€” instruction-fetch fence
  • Zba, Zbb, Zbc, Zbs β€” the components of bit-manipulation (the old β€œB”)
  • Zbkb, Zknd, Zkne, Zknh β€” scalar cryptography (AES, SHA acceleration)
  • Zfh β€” half-precision (16-bit) float, useful for AI
  • Zicond β€” conditional operations
  • Zvbb, Zvkn β€” vector crypto and bit-manipulation

Z-extensions let a designer include only the AES instructions they need without dragging in unrelated functionality β€” modularity taken to its logical conclusion.

S- and X-Extensions

  • S-extensions (e.g. Ssaia, Svnapot) are supervisor-level architecture extensions, relevant to OS and hypervisor developers.
  • X-extensions are non-standard, vendor-custom extensions. This is the official escape hatch for the customization that makes RISC-V special β€” a vendor can add bespoke instructions for AI or DSP under an X prefix without breaking the standard ecosystem.

How Profiles Tame the Combinatorics

With this many options, fragmentation is a real danger. RISC-V’s answer is profiles β€” standardized bundles. RVA23 mandates a specific set (including V and H and a list of Z-extensions) so operating systems have a single target. I explain this fully in RISC-V Profiles and RVA23 Explained. Profiles are the reason β€œinfinite modularity” does not become β€œinfinite incompatibility.”

Putting It Together

  • A smart-sensor MCU: RV32IMC β€” tiny, no FPU, compressed for density.
  • A Linux SBC: RV64GC β€” the general-purpose baseline.
  • An AI/HPC chip: RV64GCV plus crypto and vector-crypto Z-extensions, targeting RVA23.

Same family, three radically different processors β€” all sharing one toolchain and OS ecosystem.

The Bottom Line

The RISC-V extension alphabet is not arcana β€” it is the user manual for building a processor. Once you can read RV64GCV at a glance, the whole ecosystem becomes legible: you know what a chip can do, what software it will run, and why RISC-V can be both a milliwatt microcontroller and a datacenter CPU. Try it yourself by checking /proc/cpuinfo on a QEMU RISC-V system.


Part of my RISC-V series. Start with What Is RISC-V? or see the 2026 ecosystem map.

Frequently Asked Questions

What does RV64GC mean?

RV64GC is a 64-bit RISC-V core with the 'G' general-purpose bundle (IMAFD plus Zicsr and Zifencei) and the 'C' compressed-instruction extension. It is the most common configuration for Linux-capable RISC-V chips.

What is the difference between a standard extension and a Z-extension?

Single-letter extensions (M, A, F, D, C, V, B, H) are the original standard extensions. Z-extensions (like Zicsr, Zba, Zbb, Zknd) are more granular, named sub-extensions that let designers include exactly the functionality they need without pulling in a whole letter group.

Which extensions do I need to run Linux on RISC-V?

In practice you want at least RV64GC, and to follow the RVA23 application profile, which also mandates the vector (V) and hypervisor (H) extensions plus several Z-extensions, so that standard Linux binaries run portably.

#RISC-V #extensions #ISA #architecture #hardware
Share:

πŸ“¬ Don't miss the next one

Get AI & Cloud insights delivered weekly

Join engineers getting practical tips on AI, Kubernetes, Ansible, and Platform Engineering.

Subscribe Free β†’
Luca Berton β€” AI & Cloud Advisor, Docker Captain

Luca Berton

AI & Cloud Advisor Β· Docker Captain Β· KubeCon Speaker

18+ years in enterprise infrastructure. Author of 8 technical books, creator of Ansible Pilot (1M+ YouTube views, 648K site users). Former Red Hat engineer. Speaker at KubeCon EU 2026 and Red Hat Summit 2026.

Free 30-min AI & Cloud consultation

Book Now