Skip to content

How a select = data trigger matches on an access wider then XLEN? #1183

@en-sc

Description

@en-sc

[5.5.2. Combined Accesses] states:

... E.g. a vector load should be treated as if it performed multiple loads of size SEW (selected element width), ...

Vector extension supports SEW greater then XLEN.
However, for mcontrol6 only the behavior if data width is less or equal to XLEN is defined. See [5.7.12. Match Control Type 6 (mcontrol6, at 0x7a1)], select field description:

1 (data): There is exactly one compare value and it contains the data value loaded or stored, or the instruction
executed. Any bits beyond the size of the data access will contain 0.

I see a couple of options:

  1. The compare value contains the lower XLEN bits of the data value.
  2. select = data triggers don't match on accesses wider then XLEN.

IMHO, the first option is more in line with the behavior when data width is less then XLEN (zero-extending the value), while the second is more in line with the treatment of CMO accesses (see [5.5.3. Cache Operations]).

I feel like the option (1) is preferable.

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