Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Zmmul section to M chapter #648

merged 2 commits into from May 17, 2021
Changes from all commits
File filter

Filter by extension

Filter by extension

Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
20 changes: 20 additions & 0 deletions src/m.tex
Expand Up @@ -14,6 +14,7 @@ \chapter{``M'' Standard Extension for Integer Multiplication and

\section{Multiplication Operations}

Expand Down Expand Up @@ -166,3 +167,22 @@ \section{Division Operations}
implemented using an unsigned division circuit and specifying the same
overflow result simplifies the hardware.

\section{Zmmul Extension}

The Zmmul extension implements the multiplication subset of the M extension.
It adds all of the instructions defined in Section~\ref{multiplication-operations},
namely: MUL, MULH, MULHU, MULHSU, and (for RV64 only) MULW.
The encodings are identical to those of the corresponding M-extension instructions.

The Zmmul extension enables low-cost implementations that require
multiplication operations but not division.
For many microcontroller applications, division operations are too
infrequent to justify the cost of divider hardware.
By contrast, multiplication operations are more frequent, making the cost of
multiplier hardware more justifiable.
Simple FPGA soft cores particularly benefit from eliminating division but
retaining multiplication, since many FPGAs provide hardwired multipliers
but require dividers be implemented in soft logic.