Glossary
Every term the two volumes define — 133 of them — with the chapter that introduced it. These are the same definitions behind the dotted-underline tooltips throughout the site.
133 shown
- 1:1 expansion rule ch. I·28
- Design constraint of RVC: every 16-bit instruction maps to exactly one 32-bit base/F/D instruction, so decoders expand early and compilers may ignore C entirely. Sole semantic wrinkle: C.JAL/C.JALR write pc+2 as the link value.
- accelerator ch. I·1
- A non-programmable fixed-function unit, or an autonomous specialized core (often RISC-V-based), used to offload work such as I/O processing.
- accumulating csr ch. I·18
- A CSR that is both source and destination of an instruction but carries a dependency only from itself to itself - the FP exception flag bits (NV/DZ/OF/UF/NX), so FP ops never serialize on fflags.
- amo ch. I·13
- Atomic memory operation (Zaamo): atomically load to rd, apply op(loaded, rs2), store back. SWAP/ADD/AND/OR/XOR/MAX[U]/MIN[U], .W/.D; RV64 .W forms sign-extend rd. Natural alignment unless the misaligned atomicity granule PMA applies.
- aq/rl bits ch. I·13
- Per-atomic ordering bits: aq = acquire (no later memory ops observed before it), rl = release (not observed before earlier ops), both = sequentially consistent — scoped to the address domain (memory or I/O) the atomic touches. RCsc release consistency support.
- asid ch. II·12
- Address Space IDentifier: satp field tagging TLB entries per address space so context switches need no flush. Hart-local meaning; ASIDLEN discoverable by write-ones-readback (max 9 bits Sv32, 16 bits Sv39/48/57); may legally be zero bits.
- atomicity axiom ch. I·18
- For aligned paired LR/SC: if the LR read byte x from store s, no OTHER hart's store to x may sit between s and the SC's write in the global memory order.
- byte-address invariance ch. I·2
- Endianness property RISC-V mandates: a byte stored at an address is returned by a byte load from that address in ANY endianness.
- c.addi16sp / c.addi4spn ch. I·28
- Stack-frame idioms: C.ADDI16SP adjusts sp by +/-16-byte multiples (shares the C.LUI opcode, rd=x2); C.ADDI4SPN (CIW) computes sp + zero-extended nonzero uimm*4 into a prime register - pointers to stack slots.
- cache block ch. I·20
- The NAPOT-aligned unit CBO instructions operate on — uniform size across the system in CMO v1, discoverable by software (zero-block size may differ from management-block size). Identified by any physical address within it.
- calling convention ch. I·2
- Software contract, not architecture: x1 = return address (ra), x5 = alternate link register, x2 = stack pointer (sp). Hardware may exploit it (return-address stacks, compressed encodings assume it).
- canonical nan ch. I·21
- The only NaN RISC-V FP ops produce: positive sign, quiet bit set, all other significand bits clear (0x7fc00000 single). Payload propagation is not standard; FLW/FSW/FMV/FSGNJ still preserve raw bits.
- cbo ch. I·20
- Cache-Block Operation: the CMO subset acting on single cache blocks. Zicbom = CBO.INVAL/CLEAN/FLUSH (communicate with non-coherent agents), Zicboz = CBO.ZERO (store zeros to a whole block), Zicbop = PREFETCH.R/W/I hints. Gated per privilege mode by the xenvcfg CBIE/CBCFE/CBZE fields.
- constrained lr/sc loop ch. I·13
- A <=16-instruction sequential loop (LR..SC with only restricted base-I instructions between; retry branches allowed) in a region with the eventuality property. The EE must guarantee livelock freedom for it; unconstrained sequences may never succeed.
- control transfer records ch. II·11
- Smctr/Ssctr: a circular on-chip buffer (depth 16-256) recording qualified control transfers (source PC, target PC, type, mispredict, compressed cycle count) for low-overhead profiling. Accessed via siselect 0x200+N (logical entry 0 = youngest); configured by m/s/vsctrctl (mode enables, type filters, RASEMU call-stack mode, freeze-on-LCOFI/breakpoint); SCTRCLR wipes it.
- coprocessor ch. I·1
- A unit attached to a RISC-V core, mostly sequenced by the core's instruction stream, with additional architectural state and extensions and possibly limited autonomy.
- core ch. I·1
- A component containing an independent instruction-fetch unit; one core may support multiple harts via multithreading.
- counter delegation ch. II·9
- Smcdeleg/Ssccfg: with menvcfg.CDE=1, counters whose mcounteren bit is set become S-mode WRITABLE via siselect 0x40+i / sireg* (Table 25 map; 0x41 = hole, mtime is not supervisor-managed; MINH masked to 0). Adds scountinhibit as a masked mcountinhibit alias. Cuts M-mode trap latency out of perf sampling and context switches.
- csr ch. I·6
- Control and Status Register: one of a separate 4096-entry per-hart address space (csr specifier = instruction bits 31:20), accessed only via the atomic read-modify-write Zicsr instructions (CSRRW/S/C and immediate forms).
- csr access ordering ch. I·6
- A hart observes its own CSR accesses in program order (side effects visible to the next instruction). Globally, CSR accesses are weakly ordered under RVWMO and unordered vs memory accesses; FENCE covers them with CSR read = device input (I), CSR write = device output (O).
- csr field modulation ch. II·2
- When a write to CSR A changes the legal-value set of a field in CSR B, that field immediately takes an UNSPECIFIED value from the new legal set (even if the old value stayed legal) - unless it aliases another field, in which case it reflects the alias. Not a write: no side effects fire.
- csr shadowing ch. II·2
- Exposing one register at two addresses with different access classes when it is read-only at a lower privilege but read-write higher (counters: cycle 0xC00 URO vs mcycle 0xB00 MRW) - avoids trapping legal lower-priv reads under virtualization.
- csr side effect ch. I·6
- A consequence of a CSR read/write not determined solely by the CSR's value (spec example: read turns a light on). Standard CSRs have NO read side effects; write side effects are possible in principle. A trap caused by the value a write installed is an INDIRECT effect, not a side effect.
- custom extension ch. I·1
- A non-standard extension that uses only custom encoding space; a non-conforming extension is one that uses standard or reserved encodings without being standard.
- cycle counter ch. I·7
- Unprivileged read-only 64-bit CSR 0xC00: clock cycles executed by the CORE (not hart) since an arbitrary start. Must not advance while the core is fully clock-gated. RDCYCLE[H] pseudos read it.
- d-mode ch. II·1
- Debug mode: an optional above-M privilege level from the separate debug specification; reserves a few CSR addresses (only accessible in D-mode) and possibly physical address space.
- division-by-zero semantics ch. I·12
- No trap, ever (Table 11): quotient = all bits set (both signednesses), remainder = dividend. Signed overflow (-2^(L-1) / -1): quotient = dividend, remainder = 0. W forms sign-extend these constants.
- ebreak ch. I·2
- SYSTEM instruction returning control to a debugging environment; also used for semihosting via the fixed sequence slli x0,x0,0x1f; ebreak; srai x0,x0,7 (all 32-bit forms).
- ecall ch. I·2
- SYSTEM instruction raising a precise requested trap to the execution environment — the service-call mechanism (parameters per EEI, usually in registers).
- exception ch. I·1
- An unusual condition occurring at run time, associated with an instruction in the current hart (synchronous).
- execution environment interface (eei) ch. I·1
- The contract a RISC-V program runs against: initial state, number/type of harts and their privilege modes, memory and I/O accessibility, behavior of legal instructions, and trap handling. Examples: Linux ABI, RISC-V SBI.
- fclass ch. I·21
- Writes a 10-bit one-hot mask classifying rs1: -inf, -normal, -subnormal, -0, +0, +subnormal, +normal, +inf, sNaN, qNaN. Sets no flags.
- fcsr ch. I·21
- Floating-point control/status CSR: bits 7-5 = frm (dynamic rounding mode), bits 4-0 = fflags (accrued NV/DZ/OF/UF/NX), 31-8 reserved (read zero, ignore writes). frm and fflags are also standalone CSR addresses; FRCSR/FSRM/FSFLAGS etc. are pseudos.
- fence predecessor/successor sets ch. I·2
- FENCE names two subsets of {device Input, device Output, memory Reads, memory Writes}: no other hart/device may observe any successor-set operation before any predecessor-set operation.
- fence.i ch. I·5
- Zifencei's one instruction: orders all prior explicit memory accesses (program order, same hart) before all subsequent instruction fetches. Strictly hart-local; cross-hart code publication = writer data-FENCE + each reader FENCE.I. funct12/rs1/rd reserved (ignored).
- flen ch. I·21
- Width of the floating-point registers: 32 with F, 64 with D, 128 with Q. Independent of XLEN.
- fri-rfi and rsw ch. I·A
- The two sanctioned same-address load-load reorderings under CoRR: fri-rfi (younger load forwards from own store and performs early - returned value is still newer) and RSW (two loads reading the SAME store may perform out of order). Different-store cases stay forbidden by PPO rule 2.
- fs/vs/xs ch. II·3
- Extension context status in mstatus: Off/Initial/Clean/Dirty (2b each; XS read-only summary; SD = any dirty, sign bit). Off -> accessing state traps. Context switch saves only Dirty state. M and S share the fields; imprecise dirty tracking is legal.
- fsgnj family ch. I·21
- FSGNJ/FSGNJN/FSGNJX: rs1's bits with the sign from rs2 / its inverse / the XOR of both signs. No flags, no NaN canonicalization. With rs1=rs2 they are FMV.S / FNEG.S / FABS.S.
- global mapping ch. II·12
- PTE with G=1: present in every address space, so TLBs may keep one copy across ASIDs and ASID-filtered SFENCE.VMAs skip it. Marking a non-global mapping global is a software bug with unpredictable translation results.
- global memory order ch. I·18
- A total order over the memory operations of ALL harts in one execution. RVWMO legality = there exists a global memory order respecting preserved program order and the load-value/atomicity/progress axioms.
- guest physical address ch. II·15
- GPA: the intermediate address between VS-stage and G-stage translation — what the guest OS believes is physical. 2 bits wider than the VA width (34/41/50/59 bits), reported to hypervisors in htval/mtval2 shifted right by 2.
- hart ch. I·1
- A hardware thread: the abstract resource that autonomously fetches and executes RISC-V instructions within an execution environment; may be time-multiplexed onto physical hardware but must behave like an independent hardware thread.
- high-half csrs ch. II·2
- RV32 companions (timeh, mcycleh, menvcfgh...) aliasing bits 63:32 of 64-bit CSRs. Exist only when XLEN=32; their addresses are reserved on RV64 and typically raise illegal-instruction.
- hint instruction ch. I·2
- An encoding (mostly integer ops with rd=x0, or null-effect FENCEs) that changes no architectural state except pc/counters; implementations may ignore it or execute it as a dead operation. Never traps.
- hpmcounter ch. I·7
- hpmcounter3-31 (Zihpm): up to 29 unprivileged 64-bit platform-defined performance counters. Unimplemented ones may trap illegal-instruction or read constant; events/access controlled by the privileged architecture (mhpmevent, mcounteren).
- hypervisor extension ch. II·15
- The H extension: turns S-mode into HS-mode and adds guest modes VS/VU (virtualization bit V=1) with two-stage address translation, hypervisor CSRs (hstatus, hgatp, hedeleg…), VS shadow CSRs that substitute when V=1, HLV/HSV guest-memory instructions, and HFENCE fences. misa bit 7.
- ialign ch. I·1
- The instruction-address alignment constraint an implementation enforces: 32 bits in the base ISA, relaxed to 16 by extensions like C; no other values allowed.
- ilen ch. I·1
- The maximum instruction length an implementation supports; a multiple of IALIGN (32 bits for base-only implementations).
- implicit memory access ch. I·1
- A memory access an instruction performs beyond its explicit semantics — instruction fetch, and (per the EE) things like page-table walks. Side-effect-free non-excepting implicit reads may occur arbitrarily early and speculatively.
- indirect csr access ch. II·5
- Smcsrind/Sscsrind: a select CSR (m/s/vsiselect) routes six alias CSRs (m/s/vsireg1-6) onto extension register files - multiplying the 12-bit CSR space. Select values are their own address space (MSB = custom); siselect must hold 0..0xFFF for emulation headroom; widths follow current XLEN; unimplemented selects should trap illegal-instruction; stateen0 bit 60 gates it.
- instret ch. I·7
- Unprivileged read-only 64-bit CSR 0xC02: instructions retired by this hart. Synchronous-exception-causing instructions (incl. ECALL/EBREAK) do not retire and do not count.
- instruction parcel ch. I·1
- A 16-bit unit of instruction encoding. Instructions are one or more parcels, stored little-endian at increasing halfword addresses regardless of data-memory endianness.
- instruction-fetch coherence ch. I·5
- Visibility of data stores to instruction fetches. RISC-V guarantees none by default — fetches may be served from arbitrarily stale prefetched bytes until the hart executes FENCE.I (or a future mechanism).
- interrupt ch. I·1
- An external asynchronous event that may cause a hart to experience an unexpected transfer of control.
- jvt ch. I·29
- URW CSR 0x017: WARL base[XLEN-1:6] (64-byte-aligned jump-table base, virtual address) + mode[5:0] (0 = jump-table mode, others reserved). Context state - saved/restored on process switch; Smstateen-gated when present.
- landing pad ch. I·34
- Zicfilp forward-edge CFI: the LPAD instruction marks every valid indirect call/jump target. An indirect branch arms ELP=LP_EXPECTED; if the target isn't an LPAD (with a matching 20-bit label in x7, when labeling is used), a software-check exception fires — shrinking the ROP/JOP gadget space to landing-pad-preceded entry points.
- lmul ch. I·31
- Vector register group multiplier (vtype.vlmul, powers of two from 1/8 to 8): LMUL>1 gangs 2/4/8 aligned registers into one operand (VLMAX = LMUL·VLEN/SEW); fractional LMUL parks narrow data in a register fraction so mixed-width loops keep all 32 register names usable.
- load value axiom ch. I·18
- Each byte of a load returns the store latest in {stores earlier in global memory order, stores earlier in PROGRAM order} - the second clause architecturally legalizes store-buffer forwarding of the hart's own not-yet-global stores.
- load-store architecture ch. I·2
- Only loads and stores access memory; arithmetic operates solely on registers.
- lwu ch. I·4
- RV64I load-word-unsigned: zero-extends the loaded 32 bits. Plain LW sign-extends on RV64 (upholding the sign-extension invariant); LD/SD move full 64-bit values.
- mcause ch. II·3
- Interrupt bit + WLRL code. Interrupts: 1/3 SSI/MSI, 5/7 STI/MTI, 9/11 SEI/MEI, 13 LCOFI. Exceptions: 0 IAM, 1 IAF, 2 illegal, 3 breakpoint, 4/6 load/store misaligned, 5/7 load/store access fault, 8/9/11 ecall U/S/M, 12/13/15 page faults, 16 double trap, 18 software check, 19 hardware error.
- mip/mie ch. II·3
- Interrupt pending/enable, bit i = cause i. Trap to M iff (mode<M, or M with mstatus.MIE) AND mip[i]&mie[i] AND !mideleg[i], evaluated in bounded time. Priority MEI>MSI>MTI>SEI>SSI>STI>LCOFI. MEIP/MTIP/MSIP read-only (controller/mtimecmp/msip-mapped); SEIP read = sw-bit OR controller signal but RMW acts on the sw bit only.
- misa ch. II·3
- WARL CSR 0x301: MXL (RO, 1=RV32/2=RV64) + 26 extension letter bits (A-Z). Reset = maximal set. Clearing a bit disables the extension; dependency violations clear both bits (F=0,D=1 -> both 0); a write raising IALIGN with a misaligned next PC is suppressed. Zero misa = feature discovery elsewhere.
- misaligned atomicity granule ch. I·13
- Optional PMA (Vol II): a power-of-two granule within which misaligned AMOs/loads/stores (base + F/D/Q <=XLEN) raise no alignment exception and execute as ONE RVWMO memory operation.
- mprv/mxr/sum ch. II·3
- mstatus memory-privilege modifiers: MPRV = data accesses translate/protect/endian as MPP's mode (fetch unaffected; cleared by xRET to <M). MXR = loads succeed from executable-only pages. SUM = S-mode may touch U pages. MXR/SUM affect only PTE permissions, never PMA/PMP.
- mstatus privilege stack ch. II·3
- Per-mode two-level stacks in mstatus: xIE (global enable), xPIE (prior enable), xPP (prior privilege; MPP 2b, SPP 1b, WARL over implemented modes <= x). Trap into x from y: xPIE<-xIE, xIE<-0, xPP<-y. xRET: xIE<-xPIE, mode<-xPP, xPIE<-1, xPP<-least-privileged mode; to <M also MPRV<-0.
- mtime/mtimecmp ch. II·3
- Memory-mapped 64-bit platform timer: mtime = constant-frequency wall clock (shared, own clock domain); MTIP pending iff mtime >= mtimecmp (unsigned), cleared by writing mtimecmp. time CSR is a read-only shadow. RV32 write order: low=-1, high, low.
- mtval ch. II·3
- Trap value: faulting virtual address (fetch/load/store faults; portion address for misaligned/split cases) or faulting instruction bits on illegal-instruction (right-justified), or software-check code; 0 when uninformative. WARL; may be read-only zero platform-wide.
- mtvec ch. II·3
- WARL trap vector: BASE[?:2] (4-byte aligned, may be read-only) + MODE: 0 = Direct (all traps to BASE), 1 = Vectored (interrupts to BASE + 4x cause). Reset/NMI vectors are platform-defined, separate.
- mulh family ch. I·12
- MULH/MULHU/MULHSU return the upper XLEN bits of the 2xXLEN product (signed x signed / unsigned x unsigned / signed rs1 x unsigned rs2). Fusion idiom: MULH first, then MUL, same operand order, rdh distinct from sources.
- multi-copy atomicity ch. I·A
- RVWMO/RVTSO property: a store visible to any OTHER hart is conceptually visible to all harts. Own-store-buffer forwarding is the only early visibility allowed; no inter-hart forwarding before global visibility. Keeps fences thread-local (non-cumulative).
- nan-boxing ch. I·22
- Storing a valid narrower n-bit FP value in the low n bits of an FLEN-bit register with ALL upper bits = 1 (reads as a negative qNaN at wider widths). Transfers box on write and export raw low bits without checking; all other narrower ops check the box and substitute the n-bit canonical NaN when invalid.
- natural alignment ch. I·2
- An access is naturally aligned when its effective address is divisible by the access size in bytes. Naturally aligned loads/stores never raise address-misaligned exceptions and are atomic; misaligned behavior is EEI-defined.
- operational vs axiomatic model ch. I·B
- Two equivalent RVWMO formalizations: axiomatic (Alloy/herd - predicates over complete candidate executions) and operational (abstract state machine with explicit out-of-order/speculative execution, built incrementally). Intended extensionally identical; the known mixed-size RSW discrepancy is the exception - follow the stricter operational verdict.
- pma ch. II·3
- Physical Memory Attributes: per-region fixed hardware properties (main-memory vs I/O, access widths, atomicity levels AMONone..AMOArithmetic, reservability RsrvNone/NonEventual/Eventual, misaligned granule, ordering channels, coherence/cacheability, idempotency) checked by a dedicated PMA checker; violations = precise access faults where possible.
- pmp ch. II·3
- Physical Memory Protection: up to 64 M-mode-only WARL entries (8-bit cfg: R/W/X, A = OFF/TOR/NA4/NAPOT, L = lock+apply-to-M; pmpaddr = PA bits 55:2). Lowest-numbered matching entry wins and must cover ALL bytes; no match: M succeeds, S/U fails. Grain 2^(G+2); NAPOT size in trailing ones. Changes need SFENCE.VMA.
- pointer masking ch. II·18
- RV64 family (Ssnpm/Smnpm/Smmpm): the top PMLEN bits (7 or 16) of every explicit-access effective address are ignored — sign-extended away for virtual addresses, zeroed for physical — so software like HWASAN can keep tags there. Per-mode enables live in the next-higher mode's envcfg PMM field; MXR suppresses it; implicit accesses and fences are never masked.
- preserved program order ch. I·18
- The subset of each hart's program order that the global memory order must respect - 13 rules: overlapping-address (1-3), explicit synchronization FENCE/acquire/release/RCsc/pairing (4-8), syntactic address/data/control dependencies (9-11), pipeline dependencies (12-13).
- prime registers ch. I·28
- The 3-bit rs1'/rs2'/rd' fields of CIW/CL/CS/CA/CB formats: x8-x15 (s0,s1,a0-a5) and f8-f15 - the ABI's hot registers, made contiguous specifically for cheap decompression (value = field + 8).
- privilege mode ch. II·1
- The mode a hart currently runs at: U=00, S=01, M=11 (10 reserved), encoded in CSR state but not directly readable. M is mandatory and fully trusted; legal combos are M, M+U, M+S+U (the Unix/Linux configuration).
- program counter (pc) ch. I·2
- The one additional unprivileged register besides x0-x31: holds the address of the current instruction.
- progress axiom ch. I·18
- No memory operation may be preceded by an infinite sequence of operations in the global memory order - stores eventually become visible; spinloops eventually see updates.
- pseudoinstruction ch. I·2
- An assembler alias for a real encoding: MV=ADDI rd,rs,0; NOT=XORI rd,rs,-1; SEQZ=SLTIU rd,rs,1; SNEZ=SLTU rd,x0,rs; J=JAL x0; RET=JALR x0,x1,0; NOP=ADDI x0,x0,0.
- pte ch. II·12
- Page Table Entry: V validity, R/W/X permissions (000 = pointer to next level; W without R reserved), U user-accessible, G global, A accessed, D dirty, RSW software bits, PPN. RV64 formats add N (Svnapot) and PBMT (Svpbmt) in the high bits.
- push/pop idempotency ch. I·29
- cm.push/pop sequences may split/reorder/repeat their byte accesses and are RE-EXECUTED from scratch after any mid-sequence trap (xEPC = the instruction's own PC) - so sp must point to idempotent memory; cores may PMA-detect and access-fault otherwise.
- rcpc/rcsc annotation ch. I·18
- Acquire/release annotation strengths: RCsc (sequentially-consistent sync ops) is what aq/rl on LR/SC/AMO produce; RCpc (processor-consistent) currently arises only from Ztso's implicit annotations. PPO rules 5-7 define their exact force.
- reservation set ch. I·13
- Bytes registered by LR (superset of the addressed word/doubleword). SC succeeds only if the reservation is valid, covers the written bytes, and no conflicting store/SC intervened. One reservation per hart; ANY SC invalidates it.
- reserved instruction ch. I·2
- An encoding saved for future standard use; decoding one is UNSPECIFIED behavior (a platform may require illegal-instruction traps).
- reset state ch. II·3
- Mode=M, MIE=MPRV=0, MBE=0, misa maximal, no reservation, pc=reset vector, mcause=reset cause, PMP A/L=0, mnstatus.NMIE=0, mseccfg MML/MMWP/RLB/MLPE=0; no WARL field illegal; everything else UNSPECIFIED.
- return-address stack (ras) ch. I·2
- Predictor structure for returns. RISC-V encodes push/pop hints implicitly: JAL/JALR with rd or rs1 in {x1,x5} (Table 3, Vol I p. 31), including pop-then-push for coroutines.
- rf/co/fr edges ch. I·A
- Litmus-diagram relations: rf = reads-from (store to the loads returning its value), co = coherence (total order of stores per address), fr = from-reads (load to co-successors of its source store). With ppo/fence/addr/ctrl/data they constrain the global memory order.
- rmem and sail ch. I·B
- rmem (github.com/rems-project/rmem): the exploration tool embedding the operational model with Sail-defined RV64IA instruction semantics; runs litmus tests and small ELFs exhaustively, pseudorandomly, or interactively (web + CLI). Sail is the ISA-description language; sail-riscv is the golden ISA model.
- rounding mode ch. I·21
- RNE 000 (nearest-even), RTZ 001, RDN 010, RUP 011, RMM 100 (nearest-max-magnitude), 111 DYN in an instruction's rm field = use frm. 101/110 (and DYN inside frm) reserved - reserved-rm behavior is reserved (trapping legal).
- rvc ch. I·28
- The compressed 16-bit instruction set (C extension on any base). Every RVC instruction expands 1:1 to a single base/F/D 32-bit instruction at decode; IALIGN becomes 16 and instruction-address-misaligned exceptions cease to exist.
- rvc quadrant map ch. I·28
- op[1:0] selects the quadrant: 00 (loads/stores + ADDI4SPN), 01 (immediates/jumps/branches/CA-arith), 10 (SLLI, SP-relative loads/stores, JR/MV/ADD/EBREAK); 11 = wider-than-16-bit instructions.
- satp ch. II·12
- Supervisor Address Translation and Protection CSR: MODE (Bare/Sv32 on RV32; Bare/Sv39/Sv48/Sv57 on RV64) + ASID + root-page-table PPN in one register so a context switch swaps address space and ASID atomically. Writing it does NOT flush TLBs — that's SFENCE.VMA's job.
- sbi/see ch. II·1
- Supervisor Binary Interface / Supervisor Execution Environment: the OS-to-firmware contract (user+supervisor ISA plus SBI calls). One SBI lets one OS binary run on a bootloader SEE, a hypervisor VM, or a simulator. Linux's SEE is typically OpenSBI in M-mode.
- sew ch. I·31
- Selected Element Width (vtype.vsew): the dynamic element size (8/16/32/64) a vector register is currently viewed as. Widening ops produce 2·SEW results in 2·LMUL groups; ELEN caps the maximum.
- sfence.vma ch. II·12
- Supervisor memory-management fence: orders prior stores before subsequent implicit page-table reads and invalidates address-translation cache entries, filtered by rs1 (one VA) and rs2 (one ASID) — x0 meaning 'all'. Local-hart only; cross-hart shootdown = fence + IPI + remote SFENCE.VMA.
- shadow stack ch. I·34
- Zicfiss backward-edge CFI: a second, MMU-protected stack (pointer in ssp) holding shadow copies of return addresses. Non-leaf prologues SSPUSH the link register; epilogues SSPOPCHK it against the regular stack's copy, faulting on mismatch — detecting return-address overwrites (ROP). Instructions are MOP-encoded so non-CFI cores run them as no-ops.
- shamt ch. I·2
- Shift amount field: constant shifts encode the amount in imm[4:0] (RV32) with the right-shift type selected by instruction bit 30 (SRLI vs SRAI).
- sign-extension invariant ch. I·4
- RV64 convention: every 32-bit value is held sign-extended in its 64-bit register (bits 63:32 = bit 31), even for unsigned values. W-suffix instructions re-establish it after 32-bit adds/subs/shifts; conversions signed<->unsigned-32 and signed 32->64 become no-ops.
- signaling vs quiet comparison ch. I·21
- FLT/FLE are signaling (NV on ANY NaN input); FEQ is quiet (NV only on sNaN). All three return 0 when either operand is NaN.
- single-copy atomic ch. I·18
- Property of every RVWMO memory operation: it can never be observed partially complete by anyone.
- smcntrpmf ch. II·7
- Privilege-mode filtering for cycle/instret via mcyclecfg (0x321) / minstretcfg (0x322): MINH/SINH/UINH/VSINH/VUINH inhibit counting per mode (Sscofpmf register format, OF bit dead). instret: retire-mode gated; xRET counts by originating mode - so a faulting user instruction counts exactly once. Removes kernel noise and a timing side channel from user self-profiling.
- smepmp ch. II·6
- PMP enhancements: mseccfg.MML (sticky) reinterprets pmpcfg.L as rule ownership (L=1 M-only, L=0 S/U-only, RW=01 & LRWX=1111 shared regions) and restricts M-mode execution to M-rules; MMWP (sticky) denies no-match M accesses; RLB temporarily unlocks locked rules. Discovery via BootROM setting the sticky bits.
- smrnmi ch. II·8
- Resumable NMIs: parallel save set mnscratch/mnepc/mncause/mnstatus (MNPP/MNPV/MNPELP/NMIE) + MNRET. RNMI inputs outrank everything and ignore MIE; NMIE resets 0, is software-settable but never clearable (no nesting); NMIE=0 disables all interrupts, suppresses MPRV, and redirects M-mode exceptions to a separate RNMI exception vector.
- stateen mechanism ch. II·4
- Smstateen/Ssstateen: mstateen0-3 / hstateen0-3 / sstateen0-3 gate LESS-privileged access to small extensions' state (jvt, Zfinx fcsr, AIA CSRs, custom state...), closing covert channels the OS doesn't context-switch. Zero cascades down as read-only-zero; blocked access = illegal/virtual-instruction; bit 63 gates the next level's stateen itself (emulation recursion).
- strip mining ch. I·31
- The V-extension loop idiom: each iteration asks vsetvli for vl = min(remaining, VLMAX), processes vl elements, advances pointers by vl, repeats — handling any application vector length without remainder loops.
- syntactic dependency ch. I·18
- j depends on i when a source register of j traces (possibly through carrying instructions) to a destination register of i. Address/data/control flavors order memory ops via PPO 9-11. Loads, JALR, LR/SC/AMOs carry NO src->dst dependency; successful SC's rd IS a destination.
- table jump ch. I·29
- Zcmt's cm.jt/cm.jalt (index<32 = jt, else jalt with ra link): fetch entry XLEN wide at jvt.base + index*(XLEN/8) - a second IMPLICIT INSTRUCTION FETCH (execute permission, data endianness, fence.i after table writes), then jump to entry & ~1. Faults report the table-jump PC in xEPC.
- time counter ch. I·7
- Unprivileged read-only 64-bit CSR 0xC01: wall-clock ticks since an arbitrary start. EE publishes tick period/accuracy; all harts must appear synchronized within one tick, monotonically nondecreasing.
- tininess after rounding ch. I·21
- RISC-V detects underflow tininess AFTER rounding (fewer spurious underflow flags) - an IEEE-allowed choice your FPU's UF detector must match.
- trap ch. I·1
- The transfer of control to a trap handler caused by an exception or an interrupt. From inside an execution environment a trap is contained, requested, invisible, or fatal.
- trap delegation ch. II·3
- medeleg/mideleg bit i sends trap i occurring in S/U-mode to the S-mode handler (scause/sepc/stval/SPP/SPIE/SIE written; m* untouched). Traps never delegate downward from M-mode occurrences; delegated interrupts are masked at M. medeleg[11] and [16] read-only zero.
- two-stage address translation ch. II·15
- Active whenever V=1: a guest virtual address is translated by VS-stage (vsatp, guest's own page tables) to a guest physical address, then by G-stage (hgatp, hypervisor's tables, Sv39x4-style with 2 extra bits and a 16 KiB root) to a supervisor physical address. Even the VS-stage page-table reads themselves go through G-stage.
- unspecified ch. I·1
- A behavior or value the architecture intentionally leaves unconstrained; extensions, platform standards, or implementations may constrain it further.
- urlist/spimm ch. I·29
- CMPP-format fields of cm.push/pop[ret[z]]: urlist encodes the saved-register list {ra[, s0-sN]} (12 valid lists; {ra,s0-s10} invalid - use s11); spimm adds 0-3 extra 16-byte stack-pointer increments beyond the register storage.
- vector length agnostic ch. I·31
- The V extension's core contract: binaries never encode VLEN. Software reads vl from vsetvli per strip-mine iteration, so the same code runs on VLEN=128 and VLEN=4096 hardware — wider machines just retire fewer iterations.
- vertical vs horizontal trap ch. II·1
- Vertical = trap to a higher privilege mode (the hardware primitive); horizontal = handled at the same mode, implementable as a vertical trap that returns control to a less-privileged handler (what delegation automates).
- vmid ch. II·15
- Virtual Machine IDentifier in hgatp: tags G-stage (and combined) TLB entries per guest so world switches need no flush, and scopes HFENCE.GVMA. Up to 7 bits (Sv32x4) or 14 bits (Sv39/48/57x4); discovery by write-ones-readback.
- w-suffix instruction ch. I·4
- RV64I-only 32-bit operate variants (ADDIW, ADDW, SUBW, SLLIW/SRLIW/SRAIW, SLLW/SRLW/SRAW) under opcodes OP-IMM-32/OP-32: ignore upper input bits, compute a 32-bit result, sign-extend to 64. SEXT.W = ADDIW rd,rs,0.
- warl ch. II·2
- Write Any, Read Legal: any write accepted (never traps); reads always return a legal value, deterministic in the written value and hart state. Discovery = write desired value, read back. The workhorse behavior of misa, mtvec, satp, pmpaddr...
- wfi ch. II·3
- Wait For Interrupt: may stall until a locally-enabled interrupt is pending at ANY privilege - ignoring global enables and delegation; may be a NOP; wake without trap resumes at pc+4; a taken interrupt traps on the FOLLOWING instruction. mstatus.TW=1 makes <M-mode WFI trap after a bounded timeout.
- wlrl ch. II·2
- Write/Read Only Legal: software must write legal values. Illegal writes MAY raise illegal-instruction, or store arbitrary-but-deterministic state; hardware needs only enough bits for supported values but must read back complete encodings.
- word ch. I·1
- 32 bits (4 bytes) in RISC-V terminology, regardless of XLEN; halfword = 16 bits, doubleword = 64, quadword = 128.
- wpri ch. II·2
- Reserved Writes Preserve, Reads Ignore: reserved whole fields. Software ignores reads and preserves on writes; unimplemented fields must be read-only zero.
- write subsumption ch. I·A
- Eliding the earlier of two back-to-back same-address writes. Legal ONLY when model-invisible: subsuming a store that carries a dependency (Table 92) would break a required ordering chain - forbidden. Silent stores and value-unchanged AMOs are still architecturally stores.
- x0 (zero register) ch. I·2
- Register x0 is hardwired to all-zero bits: writes are discarded, reads return 0. Many encodings with rd=x0 are repurposed as HINTs; loads to x0 still raise exceptions and side effects.
- xlen ch. I·1
- The width in bits of an integer register (32 for RV32, 64 for RV64); also sizes the byte-addressable address space (2^XLEN, circular).
- zc* taxonomy ch. I·29
- Zca = C minus FP loads/stores; Zcf (RV32+F) / Zcd (D) = the compressed FP load/store subsets; C = Zca[+Zcf][+Zcd]. Zcb = simple 16-bit extras (gated on M/Zbb); Zcmp = push/pop; Zcmt = table jumps; Zce = the microcontroller bundle. Zcmp/Zcmt reuse c.fsdsp encodings and are INCOMPATIBLE with Zcd.
- zmmul ch. I·12
- The multiplication-only subset of M (MUL/MULH/MULHU/MULHSU/MULW, identical encodings; M implies Zmmul) — for divider-less implementations like FPGA soft cores.
No terms match — try fewer letters.