Skip to content

Add Support for Vector Loads and Stores #255

Description

@kathlenemagnus-mips

Extended Olympia to support vector load and store instructions.

Extend the current LSU so that it can "unroll" a vector instruction and generate separate memory accesses for each active vector element. For simplicity, read and write ports to the VRF (vector register file) can be added to the LSU for writing load data and reading store data, the vector mask register and the index values (for indexed loads and stores).

The design should include the following components:

  • An "address unroller" for generating load/store requests from a vector instruction.
  • A buffer for holding load data before writing the data into the VRF

Resources:
The RISC-V Vector ISA Tutorial (good intro, but it's for RVV 0.7 so beware!)
RISC-V Vector in a Nutshell
Ara2: Exploring Single- and Multi-Core Vector Processing with an Efficient RVV 1.0 Compliant Open-Source Processor (inspiration?)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions