Re: Vector Task Group minutes 2020/5/15
David Horner
for those not on Github I posted this to #461:
toggle quoted message
Show quoted text
I gather what was missing from this were examples. I prefer to consider clstr as a dynamic parameter, that some implementations will use a range of values. However, for the sake of examples we can consider the cases where CLSTR=32. So after a load: VLEN=256b, SLEN=128, vl=8, CLSTR=32 Byte 1F1E1D1C1B1A19181716151413121110 F E D C B A 9 8 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 SEW=8b 7 6 3 2 5 4 1 0 SEW=16b 7 5 3 1 6 4 2 0 SEW=32b VLEN=256b, SLEN=64, vl=13, CLSTR=32 Byte 1F1E1D1C1B1A19181716151413121110 F E D C B A 9 8 7 6 5 4 3 2 1 0 C B A 9 8 7 6 5 4 3 2 1 0 SEW=8b SEW=8b
7 3 6 2 5 1 4 0 SEW=32b B A 9 C 8 @ reg+1 By inspection unary and binary single SEW operations do not affect order. However, for a widening operation, EEW=16 and 64 respectively which will yield: VLEN=256b, SLEN=128, vl=8, CLSTR=32 Byte 1F1E1D1C1B1A19181716151413121110 F E D C B A 9 8 7 6 5 4 3 2 1 0 7 6 3 2 5 4 1 0 SEW=16b 7 5 3 1 6 4 2 0 SEW=32b
3 1 2 0 SEW=64b 7 5 6 4 @ reg+1 Narrowing work in reverse. When SLEN=VLEN clstr is irrelevant and effectively infinite as there is no other SLEN group in which to advance, so the current SLEN chunk has to be used (in the round-robin fashion. Thank you for the template to use. I don’t think SLEN = 1/4 VLEN has to be diagrammed. And of course, store also works in reverse of load. @David-Horner On 2020-05-26 11:17 a.m., David Horner
via lists.riscv.org wrote:
|
|