Skip to content
This repository has been archived by the owner on Mar 20, 2024. It is now read-only.

Provide vlo*, vector load ordered variants with consecutive pairing #535

Open
David-Horner opened this issue Jul 19, 2020 · 1 comment
Open
Labels
Resolve after v1.0 Does not need to be resolved for v1.0 draft

Comments

@David-Horner
Copy link
Contributor

RVWMO allows PoR load instructions, even with 0 to vl ordered cache request issuing, to provide results from a global memory order that are not in chronological order, and especially are not in dependency order as RVWMO imposed to concurrently updating harts (see discussions in #501 (comment)) .

PoR - a679250

With #534, allowing non-strict 0 to vl processing order the available result sets is substantially increased. Specifically, Rule 2 is eliminated with respect to all element reads (including overlapping non-identical addresses).

To allow vector loads to provide as close to fully deterministic and concurrent hart RVWMO rule consistent return set as is possible, I propose we define new load instructions designated vlo*, for ordered that RVWMO pair each element read with the read of the next consecutive elements read in 0 to vl order.

An outstanding consideration is whether masked out elements participate in the read pairing.
PoR is silent on the matter, however, it states

Masked vector loads do not update inactive elements in the destination vector register group.

My preference, as a concession to "intuitive" expectations, is that masked out elements are skipped, that the pairing is between the current unmasked element and the next unmasked element in 0 to vl order.

I believe the current PoR load opcode mapping should remain. However, it may be instructive to rename vl* as vlu*, especially if #534 is adopted.
The current naming could initially be an alias with vlu*

@kasanovic kasanovic added the Resolve for v1.0 To be resolved for v1.0 draft label Aug 7, 2020
@kasanovic
Copy link
Collaborator

Moved to post v1.0 discussion.

@kasanovic kasanovic added Resolve after v1.0 Does not need to be resolved for v1.0 draft and removed Resolve for v1.0 To be resolved for v1.0 draft labels Mar 19, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Resolve after v1.0 Does not need to be resolved for v1.0 draft
Projects
None yet
Development

No branches or pull requests

2 participants