Skip to content

[PTO v0.58] Implement PE-local Tile allocation and atomic Shared S0..S255 state #48

Description

@zhoubot

Parent

Tracked by LinxISA/linx-isa#165.

Implement the reissued PTO-SPEC 0.58 architecture at exact commit
8a77c9f0eab36cc41051519366ff163171f81463.
Normative decision: ADR 0054.

RTL requirements

  • Replace active compressed C.B.IOS with 32-bit B.IOS using match
    0x00001013, mask 0xf00871ff, SharedTID[27:20], PE_MASK[18:15], and
    TSize[11:9]. Reserved bits must reject; old overlapping words are C.B.DIMI.
  • TSize 1..7 is 128 B..8 KiB per selected PE for Local B.IOT destinations and
    Shared B.IOS destinations. Core capacity charge is popcount(mask) times the
    per-PE size.
  • Local T/U/M/N destinations allocate/rename independently for selected PEs.
    Consumers use renamed per-PE producers, not a source PE-mask selector.
  • Implement one Core-private S0..S255 bank accessible by all four PEs, with
    per-PE descriptor/payload, immutable allocation_mask, and initialized_mask.
  • First allocating write fixes allocation_mask. Later writes may update a
    subset only; expansion and incompatible descriptor changes reject before
    allocation/rename/payload/lifetime effects.
  • Commit descriptor plus selected payload atomically. Arbitration order is not
    architectural; do not specify a conflict winner.
  • PE mask mapping is fixed (1000=PE0 ... 0001=PE3), selected lanes are not
    packed, and mask zero is a strict no-op.
  • Keep B.IOR scalar/address-only and B.IOT Local-only; remove mask-only Shared
    B.IOT behavior. Enforce mixed-mask equality and Shared CUBE/TGEMV legality.

Verification

  • Decode parity and overlap tests for B.IOS, B.IOR, all B.IOT forms, scalar
    encodings, and six Linx-only vector reservations.
  • Assertions for no-effect rejection, exact capacity charge, zero-mask no-op,
    subset-only Shared updates, atomic descriptor/payload commit, and reset.
  • Directed tests for masks 0001/0011/0111/1111, every TSize code, S0/S255,
    undefined reads, mixed TMOV/TLSU, and cooperative TMATMUL.
  • Trace parity with linx-model/LinxCoreModel before the superproject gitlink is
    updated.

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