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

allow vector element processing to effectively proceed in parallel, not strict 0 to vl, for most ops. #534

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

Comments

@David-Horner
Copy link
Contributor

Most vector operations yield the same results if the elements are processed in any order.

With an opaque vstart #532 additional restart information can be encoded in XLEN bits to allow restart of various restart states.

Explicitly relax the from 0 to vl constraint, effectively allowing parallel processing.

Note, load operations especially can benefit from this relaxation. Specifically element loads can occur opportunistically leveraging any present cache entry without having to wait for any other request to complete, and cache subsystem requests can be optimal in any order. See discussions in #502 and #504.

Notably, stores are affected by process order. Equally notable is the presence of an ordered and an unordered variant for stores.

Some overlapping destination with source register decisions are premised on 0 to vl processing order.
It is valid to still enforce these constraints as simple systems may elect to always process from 0 to vl, and they should not be penalized for a potential optimization by other implementations.

@kasanovic
Copy link
Collaborator

We require vstart to report faulting element in base v1.0, as this is needed to simplify error handling and reporting, but reserved other values >VLMAX for future use.
In general, restart will require more than the number of bits in start, so unclear on the utility/generality of this approach.
Marking as a post-v1.0 issue.

@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