Skip to content

Extend decoder with part of V instructions.#396

Merged
lekcyjna123 merged 7 commits intolekcyjna/big-vectorfrom
lekcyjna/vector-decoder
Jun 28, 2023
Merged

Extend decoder with part of V instructions.#396
lekcyjna123 merged 7 commits intolekcyjna/big-vectorfrom
lekcyjna/vector-decoder

Conversation

@lekcyjna123
Copy link
Copy Markdown
Contributor

@lekcyjna123 lekcyjna123 commented Jun 26, 2023

Hi,

here is a part of V instructions which I plan to merge tomorrow to development branch. Most important change introduced by this commit is existence of new field in output of decoder "RegisterType", which indicates if register is scalar (X) or vector(V) in future this can be used to add support for floating point registers.

I have to add decoding tests before merge. They will be generated using llvm based on test/asm/v_instr.asm.

@tilk
Copy link
Copy Markdown
Member

tilk commented Jun 27, 2023

The idea is that this will influence register renaming, right?

@lekcyjna123
Copy link
Copy Markdown
Contributor Author

lekcyjna123 commented Jun 27, 2023

Yes. In case when RegisterType will be X register will be renamed by scalar register renaming. In other cases it will be forwarded without changes to FU and in case of vector registers renaming will be done in vector FU.

Edit:
Other solution is to rename both types of registers in rename phase, but this will be a little more complicated, because we don't support injecting custom block to scheduler yet. So I decided to make vector renaming in FU and later as a improvement it can be moved to scheduler.

@lekcyjna123
Copy link
Copy Markdown
Contributor Author

I have observed that adding decoding of 1/3 vector instructions to our current decoder extends simulation time by factor of 2 (calculated over tests which decodes instructions from extension I). So I started benchmarks for this PR without and with vector extension activated. It looks like my changes haven't big impact on Fmax (59MHz vs 57MHz), but in near future a decoder will need a great rework.

Without V:
https://github.com/kuznia-rdzeni/coreblocks/actions/runs/5391792933/jobs/9789181833
With V:
https://github.com/kuznia-rdzeni/coreblocks/actions/runs/5391851409/jobs/9789330046

@lekcyjna123 lekcyjna123 mentioned this pull request Jun 27, 2023
@lekcyjna123 lekcyjna123 merged commit ecfe812 into lekcyjna/big-vector Jun 28, 2023
@lekcyjna123 lekcyjna123 deleted the lekcyjna/vector-decoder branch June 28, 2023 07:09
lekcyjna123 pushed a commit that referenced this pull request Jun 28, 2023
Routings

Multiport fifo (#260)

Extend decoder with part of V instructions. (#396)

Vector register (#293)

---------

Co-authored-by: Lekcyjna <309016@uwr.edu.pl>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants