Modify vset*vl* insts behaviors [Work in progress]#21
Open
hnpl wants to merge 8 commits intoplctlab:rvv-cpufrom
Open
Modify vset*vl* insts behaviors [Work in progress]#21hnpl wants to merge 8 commits intoplctlab:rvv-cpufrom
hnpl wants to merge 8 commits intoplctlab:rvv-cpufrom
Conversation
Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: I741aed8b982adab58523564f28aedcc0f970eaa3 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: If8765b27674be86d444fc6d275484e3f94c20282 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Per RVV spec 1.0, VLMAX = 2**16 Change-Id: I27d93ac602ca750648348419fe7923f459f18191 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: I23d0c0629c71e432e89dcb330e043fc638ca6905 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
- The vsetvl* insts, apart from the spec, also update the vl and vtype stored in the next pc PCState. - The vsetvl* insts are marked as control instructions and behave like a branch instruction. Upon the execution stage, the values of vl and vtype will be updated, and the updated values will be compared to the initial values. If they are different, the pipeline will be flushed. The next instruction will get the PCState from this instruction, so it will have the updated vl and vtype. Change-Id: I8d988fd8ca833021908694bd1713cb3963bdfa3c Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: I8d8101fb3522beaa22cb928ef3458dfaa3d86271 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
Change-Id: I14172a4cf517f3f81d9cf3928c7db32f49644b20 Signed-off-by: Hoa Nguyen <hoanguyen@ucdavis.edu>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This patch removes stalls when vsetvl insts not executed.
At decode time, a decoded vector inst will get the identical vtype and vl values of the previous vector inst. This is accomplished by ,
I ran some small tests and it seems that, currently, this patch works for AtomicSimpleCPU and TimingSimpleCPU. I haven't test this with MinorCPU.
I haven't looked at how vector memory instructions are microcoded, so I'll look into that to figure out the problem with O3CPU.
Note: this change has a commit removing the github workflow as github doesn't allow me to push if the workflow exists. Please remove this commit prior to merging.