Hi all,Below is a more detailed analysis of free opcode spaces of RV64GC, and a comparison to MIPS IV.Note MIPS has 64 opcodes x 26 bit encoding spaces vs RV64GC has 28 opcodes x 25 bit encoding spaces, ie: under one quarter the 32 bit instruction encoding space of MIPS)In addition to major opcodes, I also looked for the largest available encoding space within each major opcode.Colour coding is as follows:1. DARK GREEN = 26 bit encoding space= one MIPS major opcode (equivalent to 200% x RISCV major opcode)2. GREEN = 100% x RISCV major opcode fully available3. YELLOW = 50% of RISCV major opcode4. ORANGE = 6.25%~25% of RISCV major opcode5. RED < 6.25% of RISC V major opcodeAs table below shows, MIPS IV has the equivalent of 42 RISC V "greenfield" major opcodes completely available.It also has 28 opcodes with 21-24 bits of "brownfield" encoding space available.Yet MIPS is considered to be opcode constrained...
In comparison, RV64GC only has 5 reserved "greenfield" major opcodes available (also 2 custom opcodes for non-standard extensions).It also has 18 opcodes with 21-24 bits of "brownfield" encoding spaceSo if MIPS is considered opcode space constrained, then RISC V is almost an order of magnitude more constrained. (Greenfield opcodes are 2-8x the value of brownfield opcodes).I'm of the opinion RISC V can't afford to set aside 75% of it's opcode space for RVC. Instead RVC 16 bit instructions should be only 50%. This will provide 60 major opcodes (instead of 28 opcodes) for 32 bit instructions. The cost is a reduction in the compression performance of RVC by 1-2% but the win is a future-proofed extensibility...
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/f7bbbc73-beda-470b-a0d5-b4df3971081e%40groups.riscv.org.
> I'm of the opinion RISC V can't afford to set aside 75% of it's opcode space for RVC. Instead RVC 16 bit instructions should be only
> 50%. This will provide 60 major opcodes (instead of 28 opcodes) for 32 bit instructions. The cost is a reduction in the compression
> performance of RVC by 1-2% but the win is a future-proofed extensibility...
I think this is an interesting suggestion, and I'd be interested in
seeing a counter-argument from anyone who disagrees. It seems clear to
me that we need results from a much wider range of codebases/workloads
to inform decisions about the compressed spec. It would be easier for
others to follow if this proposal could be kept on one thread though.
Best,
Alex
Hello
Could some give some possible examples of micro-op fusion for a RISC-V implementation?
My fading recollection regarding mirco-op fusion being wrt interlock collapsing ALU's.
Thanks Krste.
In relation to point #3, certainly it is true different workloads have different ISA compression profiles but in the end, doesn't this mean it is premature to fully commit 72% of opcode space to existing workloads, hence over-optimising for these apps, and then only having 3% left for any future additional 16 bit instructions (should future unforeseen compressed ISA needs arise)? Doesn't this strengthen the case to keep 25% of opcode space in reserve for potentially optimising compression of these future unforeseen workloads?
In particular, my hope had been that at least the Decimal FP extensions could fit into the 32bit opcode ISA (in my mind, decimal FP should be a "first class" citizen, treated equally to binary FP).
Coming back to the issue of backwards compatibility, can I ask an hypothetical question: if RISC V compressed was designed from scratch today, would the decision still be to go with giving it 75% of the total 32 bit opcode space.
I should think most people's level of caring about Decimal FP (or Decimal Integer, for that matter) is almost indistinguishable from zero. Standard software doesn't use it, and I doubt that will ever change.
Again: what would you leave out?I'd be tempted to drop out the quad loads/stores -- or perhaps have RVC stick to XLEN/FLEN with the same opcode, whatever XLEN/FLEN happen to be. I wouldn't want to lose a whole bit and have to shorten immediates and offsets even more than they are now.
On Tuesday, 4 April 2017 23:05:00 UTC+10, Bruce Hoult wrote:I should think most people's level of caring about Decimal FP (or Decimal Integer, for that matter) is almost indistinguishable from zero. Standard software doesn't use it, and I doubt that will ever change.
Pretty much all business software programmers would switch over to Decimal FP in a heart beat, if it had equal levels of hardware & language/compiler support as Binary FP. It's a chicken & egg cycle of the hardware not being there so software doesn't use it.
Excel if it were written today (for a CPU with Decimal FP as a native hardware format) would use Decimal FP
Below are for RV64:Three instructions get dropped completely (code size expands by just 1~2% due to dropping of these instructions):- ADDI4SPN- LWSP/SWSP [32 bit stack ops are rare in 64bit systems]These get 'downsized' to smaller operand sizes:- LW/SW/FLW/FLD/FSD/FSW get cut down to 3 bit offsets, instead of 5 bit offsets [see attached table - look at the Green cells vs Orange cells on code size data effects 5bit vs 3bit operands - ie: pretty minimal]... **Bonus** can now also add 16 bit LBU/SB instructions as well.- LUI gets reduced to 8 register format (instead of 32 registers)==> becomes part of an ALU-immediate instruction, also providing operations like ANDI/right shiftsWhat's gained:- 25% of opcode space becomes available for future extensions- ALU-REGOPS are now in their own major opcode (separate from ALU-immediate major opcode) - tidies up a currently messy opcode in RVC v1.9- ALU-REGOPS has 5 bit function field, up to 32 register to register operations are possible - if desired, can put in full set of multiply/divide/add/sub/logical- byte store/loads added as 16bit instructions with 3 bit offsets as per above==> the RV 'C' extension becomes more of a balanced/general purpose instruction set, which will also make it more robust to future workload changes vs the current RVC v1.9 bias to load/store 16 bit instructions (which alone take up 50% of C's encoding space).
On Tue, Apr 4, 2017 at 4:52 PM, Xan Phung <xan....@gmail.com> wrote:
[snip]
Below are for RV64:Three instructions get dropped completely (code size expands by just 1~2% due to dropping of these instructions):- ADDI4SPN- LWSP/SWSP [32 bit stack ops are rare in 64bit systems]These get 'downsized' to smaller operand sizes:- LW/SW/FLW/FLD/FSD/FSW get cut down to 3 bit offsets, instead of 5 bit offsets [see attached table - look at the Green cells vs Orange cells on code size data effects 5bit vs 3bit operands - ie: pretty minimal]... **Bonus** can now also add 16 bit LBU/SB instructions as well.- LUI gets reduced to 8 register format (instead of 32 registers)==> becomes part of an ALU-immediate instruction, also providing operations like ANDI/right shiftsWhat's gained:- 25% of opcode space becomes available for future extensions- ALU-REGOPS are now in their own major opcode (separate from ALU-immediate major opcode) - tidies up a currently messy opcode in RVC v1.9- ALU-REGOPS has 5 bit function field, up to 32 register to register operations are possible - if desired, can put in full set of multiply/divide/add/sub/logical- byte store/loads added as 16bit instructions with 3 bit offsets as per above==> the RV 'C' extension becomes more of a balanced/general purpose instruction set, which will also make it more robust to future workload changes vs the current RVC v1.9 bias to load/store 16 bit instructions (which alone take up 50% of C's encoding space).It's interesting.I think the solution here is to make this a competitor to RVC, not a modification of it. Make and sell CPUs with this extension and let them fight it out in the marketplace.
It seems a real shame that we're still stuck judging the options for
the C extension based primarily on SPEC, but I guess this brings us
back to Krste's "finished, now" vs "perfect, sometime" point.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/90ccd345-2a66-4af4-8936-3415545adbef%40groups.riscv.org.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/90ccd345-2a66-4af4-8936-3415545adbef%40groups.riscv.org.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkydMkUGNbHHQJmP6NVT_-Uk5ECesxCVWxpQzXt8fAXX9Q%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkydMkUGNbHHQJmP6NVT_-Uk5ECesxCVWxpQzXt8fAXX9Q%40mail.gmail.com.
of the C extension. I added RVC support to the Go compiler recentlyIt sounds like we have some interest here in non-SPEC, non-gcc testing
and got a 29.6% reduction on the self-compiled compiler binary. With
a little more tweaking to prefer 16-bit instructions I got it up to
about 30%, although there are some size/latency tradeoffs that need to
be made carefully.
RV64GC is now the densest ISA supported by our Go fork by a
considerable margin (Go does not implement Thumb2). I did also
testing against all of the binaries in the Go standard and extended
standard distribution with several different backends. My results are
at https://gist.github.com/sorear/94abbe432efe0d57f31be05a8e01c930 ,
>> In particular, my hope had been that at least the Decimal FP extensions
>> could fit into the 32bit opcode ISA (in my mind, decimal FP should be a
>> "first class" citizen, treated equally to binary FP).
We should be picking encoding lengths based on frequency, not "class".
I've written quite a bit of business decimal code and there are very
few places where I would use a decimal FMA (since decimal code and
linear algebra tend not to happen at the same time). So I am 100% OK
with 48-bit decimal FMAs, and actually pretty OK with all of decimal
going in 48-bit.
[Moving this into new thread]
Hi Bruce, thanks for suggesting the 'integer-only' workaround. Glad you've highlighted this, so that I can make the case for why hardware guys need to get their act together on making Decimal FP a 1st class 'native' data type. I think this is a **golden** 'first mover' opportunity for RISC V to leapfrog ARM & Intel.
(1) Why 'integer-only' workaround doesn't work - example situations:
- Tax rates/import tariff rates/VAT/GST/franking credits: these are all typically legislated as percentages (=1/10^2 units) but sometimes you want to do 'compound' multiplication calcs, eg. an imported good might have a 10% tariff, and then have a further 20% VAT levied on top to the 10% tariff. Doing this in Decimal FP is simple, easy and intuitive. Doing this using 'integer only' calcs is bug prone and messy.
This is exactly why accounting programs use an integer number of cents.
Then $0.20 + $0.10 is always exactly $0.40
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/43024e1c-01fa-40ae-b0da-560da34d5bb3%40groups.riscv.org.
I've written quite a bit of business decimal code and there are very
few places where I would use a decimal FMA (since decimal code and
linear algebra tend not to happen at the same time).
-s
To understand the nasty 'edge case' round errors with simple decimal fractions that you can get with binary FP,type this into your browser's Javascript console, which uses binary FP:> 0.2+0.1> 0.30000000000000004Then do this type of comparison in Javascript (or any other binary FP based language):> (0.2+0.1)==0.3> false==> Binary FP doesn't work well with decimal fraction arithmetic.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkzmcmLWJNqb5Xztj05Wtf8s9i7XtwfrKKRFXvB87X9sNw%40mail.gmail.com.
I don't get this debate.IEEE 754R has added decimal arithmetic to the IEEE standard for good reasons.(e.g., you can't represent 0.1 exactly in floating point.)They don't add to the standard without extensive discussions with many people from many backgrounds.Why are we rehashing the wisdom of the IEEE standard on the RISC-V forum?Dave
On Wed, Apr 5, 2017 at 2:47 AM, Bruce Hoult <br...@hoult.org> wrote:
On Wed, Apr 5, 2017 at 10:02 AM, Xan Phung <xan....@gmail.com> wrote:To understand the nasty 'edge case' round errors with simple decimal fractions that you can get with binary FP,type this into your browser's Javascript console, which uses binary FP:> 0.2+0.1> 0.30000000000000004Then do this type of comparison in Javascript (or any other binary FP based language):> (0.2+0.1)==0.3> false==> Binary FP doesn't work well with decimal fraction arithmetic.Oh my god.You are treating people who have been doing this stuff for 20 or 30 years as if they are 1st year students.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkzmcmLWJNqb5Xztj05Wtf8s9i7XtwfrKKRFXvB87X9sNw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAHis7pm23WnE-1hkHsK9vqupgij4f1tmz7xJ-DBfZwgTin-%3Dbg%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAL3m8eDDMbe8m-8NuZg6jH6kocBSMjARSjsoUfHNBP9J8Y4VgQ%40mail.gmail.com.
Idea is simply to match exactly what the accounting system shows, which is obviously decimalDave
On Wed, Apr 5, 2017 at 11:17 AM, M Farkas-Dyck <m.fark...@gmail.com> wrote:
On 05/04/2017, David PATTERSON <pat...@cs.berkeley.edu> wrote:
> And what you see in output can be exactly what is inside the computer?
Ahh, so this is the concern. But if it's critical to see the exact
value, i can simply read it in binary.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAL3m8eDDMbe8m-8NuZg6jH6kocBSMjARSjsoUfHNBP9J8Y4VgQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAHis7pn3mOnS%3DQ_bt_sKyAzWwEdOTFN%2BkNQZndAD%3Dh9qHhgoXA%40mail.gmail.com.
The issue is that floating point of _any_ kind - binary *or* decimal - is unacceptable for any financial use beyond the casual. it does not have the very-strictly defined rounding behavior that is a _regulatory requirement_.For real financial usage, fixed-point is _mandatory_ - it is not a use case for decimal FP for reasons that are more fundamental than speed.
On Apr 5, 2017 11:49, "David PATTERSON" <pat...@cs.berkeley.edu> wrote:
Idea is simply to match exactly what the accounting system shows, which is obviously decimalDave--On Wed, Apr 5, 2017 at 11:17 AM, M Farkas-Dyck <m.fark...@gmail.com> wrote:On 05/04/2017, David PATTERSON <pat...@cs.berkeley.edu> wrote:
> And what you see in output can be exactly what is inside the computer?
Ahh, so this is the concern. But if it's critical to see the exact
value, i can simply read it in binary.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAL3m8eDDMbe8m-8NuZg6jH6kocBSMjARSjsoUfHNBP9J8Y4VgQ%40mail.gmail.com.
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
--To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAHis7pn3mOnS%3DQ_bt_sKyAzWwEdOTFN%2BkNQZndAD%3Dh9qHhgoXA%40mail.gmail.com.
You received this message because you are subscribed to a topic in the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this topic, visit https://groups.google.com/a/groups.riscv.org/d/topic/isa-dev/-gKcbXx9jJk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CA%2B%2Bfp8xJAXjNv4U7c-ivcEqkHi-mFAD_xwim673mt88J4MNdew%40mail.gmail.com.
To unsubscribe from this group and all its topics, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CA%2B%2Bfp8xJAXjNv4U7c-ivcEqkHi-mFAD_xwim673mt88J4MNdew%40mail.gmail.com.
“the continuing decline in the cost of processors and of memory will result (in applications intended for human interaction) in the displacement of substantially all binary floating-point arithmetic by decimal”
Professor W. Kahan
To unsubscribe from this group and all its topics, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CA%2B%2Bfp8xdOsoa9KLmTeZV7hQYZFTCd0DWZrkhseu2WzoFNsVHGw%40mail.gmail.com.
To unsubscribe from this group and all its topics, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CA%2B%2Bfp8xdOsoa9KLmTeZV7hQYZFTCd0DWZrkhseu2WzoFNsVHGw%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/19ae83a9-03b4-41cf-a893-6850eb79291f%40groups.riscv.org.
<RV vs MIPS Opcode Utilisation.PNG>
Xan:
What do you mean by the sentence "MIPS has 64 opcodes x 26 bit encoding spaces vs RV64GC has 28 opcodes x 25 bit encoding spaces, ie: under one quarter the 32 bit instruction encoding space of MIPS) " ?
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkxSBAFYdqxPKt0_sL%2BhnaKEkCyO0MmY3NbesnJhOnKpnA%40mail.gmail.com.
I guess "end of story" depends on popularity of MIPS-16 for applications. I know Thumb-2 is very popular for embedded apps, so I presume same holds for MIPS-16?
Dave
On Mon, May 22, 2017 at 7:18 AM, Bruce Hoult <br...@hoult.org> wrote:
On Mon, May 22, 2017 at 3:51 PM, promach <feiph...@gmail.com> wrote:Xan:
What do you mean by the sentence "MIPS has 64 opcodes x 26 bit encoding spaces vs RV64GC has 28 opcodes x 25 bit encoding spaces, ie: under one quarter the 32 bit instruction encoding space of MIPS) " ?It's a fairly trivial observation.MIPS instructions are 32 bits. End of story. 6 bits (64 options) for opcode plus 26 bits for the other stuff = 32.RISC-V 32 bit instructions always have the 2 least significant bits 11, leaving 30 bits for the actual instructions. Et voila, RISC-V has a quarter of the encoding space for "32 bit" instructions. And then an eighth of what remains (the next three bits 111) are reserved for instructions longer than 32 bits, so it's actually 21.875% not 25%That doesn't necessarily mean that RISC-V has fewer useful "32 bit" (30 bit usable on RISC-V) instructions than MIPS. A lot of space has been reclaimed by decreasing offsets and immediates from 16 bits to 12 bits, and increasing LUI and AUIPC from 16 bits to 20 bits to compensate. You can still load 32 bit constants or branch or load/store to anywhere in 32 bit program space with two instructions, but the usually fairly rare cases of literals or offsets between 4096 and 65535 require two instructions in RISC-V vs one instruction in MIPS. That's a pretty small sacrifice in any case, but as it enables typically 50% or 60% of all instructions in the program to be replaced by 16 bit instructions it's a pretty big net win for RISC-V.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+u...@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAMU%2BEkxSBAFYdqxPKt0_sL%2BhnaKEkCyO0MmY3NbesnJhOnKpnA%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "RISC-V ISA Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to isa-dev+unsubscribe@groups.riscv.org.
To post to this group, send email to isa...@groups.riscv.org.
Visit this group at https://groups.google.com/a/groups.riscv.org/group/isa-dev/.
To view this discussion on the web visit https://groups.google.com/a/groups.riscv.org/d/msgid/isa-dev/CAHis7pm2%2BL47RCG4cP-koGvf-j5kE3wrXVoCMTvS4vjF_6-2Uw%40mail.gmail.com.