English / 日本語
← Back to the Fundamentals home Chapter 8: Part 3 · Assemble only what you need

Chapter 8 The extension catalog — what’s there, and what for

The aim of this chapter. In Chapter 7 we saw that “add vocabulary, and you need the matching part.” This chapter is the catalog of those extensions. We line up I·M·A·F·D·C one by one, by what each is for / what parts you need when you load it / when to choose it. At the end we read RV32IMAC and get the feel of choosing a “menu” from the use.

8.1 The extension catalog — one by one

8.2 Reading RV32IMAC

Once you know the extensions, the name of an instruction set reads, as is, as an “equipment list.” For example, RV32IMAC is —

Reading RV32IMAC RV32 is the 32-bit base, I is basic integer, M is multiply/divide, A is atomic, C is compressed. Since there is no F or D, it holds no dedicated fraction instructions, and being without an FPU it is small. RV32 I M A C 32-bit base basic integer multiply/divide atomic (indivisible) compressed No F·D (fractions) = no FPU carried = smaller, low-power by that much
RV32 = the 32-bit base, I = basic integer, M = multiply/divide, A = atomic, C = compressed. F/D not in the lineup = it holds no dedicated fraction instructions, and being without an FPU it is smaller by that much.

8.3 Choosing a “menu” from the use

The more extensions you load, the more “high-function,” but that many more parts increase, eating area and power. So choose only what’s needed, from the use. It’s just like a meal’s menu. A few examples.

The designer decides here. What: choose only the extensions the use needs. How to decide: work backward from the content of the computation — do you use fractions? is there a lot of multiplication? do you load an OS? do you want to squeeze code size? Why: each extension adds a part, eating area and power. Only what’s needed = small, low-power. This is what deciding your own chip’s “menu” means.
Which decision is this knowledge for. The extension catalog is, as is, the list of options for “Extensions” on the preface’s “decisions map.” Once you know “what’s there, and what for,” you can assemble a “menu” from the use, no more and no less. In the next Chapter 9, we gather the judgment material up to here — core, extensions, memory, clock, verification — into a single “decisions sheet.”