Giter Club home page Giter Club logo

Comments (3)

mp-17 avatar mp-17 commented on August 25, 2024

Hello Fog-cake,

You are right; our physical layout is different from the one depicted in the specs (and maybe there is an error in the comment inside ara_pkg.sv).
We have a register file that is split into multiple parts, one part per lane. This somehow "mandates" to have subsequent elements separated by one lane each. The internal representation within the 64-bit data width is kept in the way you see just because it is more convenient for operations in which EEW != SEW (I actually saw that this could not be the case for FP operations, though).
The important part is that thanks to the shuffling and deshuffling functions, everything should behave as VLEN == SLEN from an external point of view (for example, when data loaded in a register is then stored using a store targeting a different SEW), and the execution is predictable and behaves as the elements are physically kept in the VRF respecting the pattern in the specs.
Anyway, this is a nice issue to be raised since a satisfying verification of this behavior (that should be enforced) has not been done yet. In the meantime, if you experience some non-compliant behavior (we can easily verify the correct behavior with SPIKE), please tell us opening a dedicated issue!

from ara.

Fog-cake avatar Fog-cake commented on August 25, 2024

Hello Fog-cake,

You are right; our physical layout is different from the one depicted in the specs (and maybe there is an error in the comment inside ara_pkg.sv).
We have a register file that is split into multiple parts, one part per lane. This somehow "mandates" to have subsequent elements separated by one lane each. The internal representation within the 64-bit data width is kept in the way you see just because it is more convenient for operations in which EEW != SEW (I actually saw that this could not be the case for FP operations, though).
The important part is that thanks to the shuffling and deshuffling functions, everything should behave as VLEN == SLEN from an external point of view (for example, when data loaded in a register is then stored using a store targeting a different SEW), and the execution is predictable and behaves as the elements are physically kept in the VRF respecting the pattern in the specs.
Anyway, this is a nice issue to be raised since a satisfying verification of this behavior (that should be enforced) has not been done yet. In the meantime, if you experience some non-compliant behavior (we can easily verify the correct behavior with SPIKE), please tell us opening a dedicated issue!

Hi,mp-17,
Thank you for your answers. Yes it is. VLEN=SLEN is currently adopted in the 0.1.0 specification. I see that you have also recently updated to version 0.1.0. If I find a problem that is inconsistent with the specification, I will open a new one.

from ara.

mp-17 avatar mp-17 commented on August 25, 2024

Just as a reference: riscv/riscv-v-spec#738

from ara.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.