RISC-V Vector TG meeting minutes, April 17, 2020
Also a reminder that the next meeting will be a half hour earlier.
Please check the group's calender for details. Krste Date: 2020/4/17 Task Group: Vector Extension Chair: Krste Asanovic Number of Attendees: ~15 Current issues on github: https://github.com/riscv/riscv-v-spec Issues discussed: new "effective element width", location of agnostic bits The following issues were discussed. New "effective element width" proposal We discussed the proposal sent on mailing list to reuse the width field to encode an effective element width, as a way to improve efficiency on mixed-width floating-point code and to reduce impact of dropping fixed width loads and stores on integer code. Consensus was to explore the options for encoding effective element width on mailing list and discuss next time. Location of tail/mask-agnostic bits Discussion reached consensus on placing these in the vtype register, noting that later extensions could redefine vtype CSR written by vsetvl as a "window" into a larger group of vector configuration CSRs. It was noted that there is no space to add more configuration instructions in existing footprint, and that the exisitng instructions fit the base immediate format. |
|
David Horner
On 2020-04-18 3:14 p.m., Krste Asanovic
wrote:
Location of tail/mask-agnostic bits Discussion reached consensus on placing these in the vtype register, noting that later extensions could redefine vtype CSR written by vsetvl as a "window" into a larger group of vector configuration CSRs. It was noted that there is no space to add more configuration instructions in existing footprint, and that the exisitng instructions fit the base immediate format. As I had asked that pagan question of opcode space I thought I should try to address the problem: I opened issue https://github.com/riscv/riscv-v-spec/issues/423 Which I paste here for your convenience additional instructions to set vtype fields. #423
minutes of TG meeting suggested that if the encoding runs out in vsetvli we can introduce another instruction to set other bits. noting that later extensions could redefine vtype CSR written by That allows avoiding the register based vsetvl instruction in common cases. However, within the encoding space used for vsetvli and vsetvl, there is no room for a further vsetvl2i with another 11 bit immediate. Quoting further from meeting notes: It was noted that there is no space to add more configuration We don't need another instruction to calculate vl. The currently proposed addition fields, TAMA (Tail and Mask fill directives) and EDIV (Element DIVision extension) do not modify vl as the SEW/LMUL ratio is maintained. Similarly a SEW scaling factor that also adjusts LMUL to maintain the SEW/LMUL ratio does not change vl. A vmodtype instruction can be encoded in the remaining opcode space that uses rs1, rs2 and rd as 15 additional bits for setting additional vtype fields. Further the opcode space allows for 64 such instructions and variations of them. Obviously we don't need all 64 of them and we will want to reserve the opcode space for future needs. However, I have a proposal for two distinct instruction types. The first is as outlined above, the vmodtype instruction, further defined here:
The second is a "transient" setting, vmodinstr (maybe OK name?) that could provide up to 15 prefix bits for the next executed vector instruction.
An implementation is free to physically implement the 10 transient bits. In which case, vmodinstr will update them and the following executed prefixed vector instruction clears them.
:
|
|