riscv-config icon indicating copy to clipboard operation
riscv-config copied to clipboard

ISA Extension Naming U

Open towoe opened this issue 4 years ago • 5 comments

https://github.com/riscv/riscv-config/blob/faab5e604cf0688f30437e1d92657fe37e5cdd99/riscv_config/schemaValidator.py#L84

The ISA string is checked for the letter 'U', but according to the description in the schema it should contain the extensions according to the user spec. In unprivileged spec version 20191213 section 27.11 'U' is not named as an extension.

I understand that this is reused to check the MISA register, but maybe the schema needs to be updated or 'U' removed?

towoe avatar Jan 18 '21 15:01 towoe

well I have been looking at the misa table 3.2 which mentions "U" as user mode implemented. But you are right table 26.1 in the unpriv should have the U mode mapped to User mode - similar to the supervisor.

@allenjbaum @aswaterman - spec needs to be updated ?

neelgala avatar Jan 18 '21 15:01 neelgala

@kasanovic is working on rewriting that chapter, so I'll leave it as a note to him that S and U are omitted from Table 26.1 and probably should be included.

aswaterman avatar Jan 18 '21 22:01 aswaterman

I think I am missing context. I think you are saying that Table 26.1 (or wherever if moves to) should list extensions that are strictly U-mode as _Upqr for extension "pqr", just as it does for M, S, and H mode extenstions OF course, there are many existing umode only extensions (M, for example) that use just misa. bits. It's only when we run out of those letters that we go to _U*, but subextensions of misa.* extensions instead use _Z* rather than _U*. Except when they use Zi* (Zicsr, Zifencei). Except when they just use some letter that hasn't been assigned yet (Ztso) This is getting pretty weird.

Standard User-level Extensions should appear before Standard Supervisor Level extensions then. IT would be nice if there was some rationale for the canonical order, e.g. alphabetical (within category: standard unpriv extensions,U/S/H/M mode extensions, Z extensions, X extensions)) Why does Q come before C? Why does L come after Q ?

On Mon, Jan 18, 2021 at 9:30 PM Neel Gala [email protected] wrote:

well I have been looking at the misa table 3.2 which mentions "U" as user mode implemented. But you are right table 26.1 in the unpriv should have the U mode mapped to User mode - similar to the supervisor.

@allenjbaum https://github.com/allenjbaum @aswaterman https://github.com/aswaterman - spec needs to be updated ?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/riscv/riscv-config/issues/52#issuecomment-762337269, or unsubscribe https://github.com/notifications/unsubscribe-auth/AHPXVJSIA3SQXMHE2ITJSZ3S2UKHLANCNFSM4WHPSACQ .

allenjbaum avatar Jan 19 '21 08:01 allenjbaum

I was trying my best not to say anything at all. I think that, given that things like Sxyz are included in Table 26.1, S and U should be, too. Beyond that opinion, I'm going to withhold comment until Krste delivers a new chapter.

aswaterman avatar Jan 19 '21 09:01 aswaterman

I'll defer most comments until I've had chance to update naming chapter, but one terminology comment is that most instructions are "unprivileged" (i.e., don't assume they're running at a certain privilege level) versus "user-level" (which would imply they're somehow only relevant/allowed for user-level code).

kasanovic avatar Jan 22 '21 12:01 kasanovic