Skip to content

Support misaligned atomicity granule PMA #1390

@Timmmm

Description

@Timmmm

We should probably support this PMA properly.

See this comment for a discussion of how misalignment is currently handled. It's almost compatible with the misaligned atomicity granule PMA, except:

  1. memory.misaligned.allowed_within_exp is global, but we probably want it in memory.regions[N] (and maybe for the others too).
  2. memory.misaligned.allowed_within_exp controls whether a misaligned access is split into aligned operations or not. Whereas the misaligned atomicity granule PMA allows for an exception:

If a misaligned AMO accesses a region that does not specify a misaligned atomicity granule PMA, or if not all accessed bytes lie within the same misaligned atomicity granule, then an exception is raised. For regular loads and stores that access such a region or for which not all accessed bytes lie within the same atomicity granule, then either an exception is raised, or the access proceeds but is not guaranteed to be atomic.

Basically we always do "the access proceeds but is not guaranteed to be atomic" but sometimes we might need to raise an exception.

I think we probably want to figure out a big complicated flow chart of all the options.

Metadata

Metadata

Assignees

No one assigned

    Labels

    configurationAdditional configuration settings needed for the model

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions