跳到主要内容

ADR 0105: Shared whole-parent readiness and single-issuer publication

Context​

Shared producer participation is not the same thing as Shared parent coverage or consumer visibility. A producer mask such as 0001 can describe one PE that writes a complete Shared parent, while a later consumer may use a different mask. The previous model conflated fixed-quarter initialization with readiness.

Decision​

B.IOS without B.ASSEMBLE is legal only for one participating issuer PE. That issuer writes and publishes the complete logical Shared parent; PE_MASK never creates implicit quarters or offsets. A multi-PE producer must use B.ASSEMBLE with explicit per-PE offsets, non-overlap checks, complete coverage, and an atomic LAST publication.

Shared generation state records producer participation/metadata, logical coverage, parent-level whole_parent_ready, and consumer-visible published separately. Readiness is hardware-maintained. A pending or incomplete assembled generation does not replace the prior published generation and is not readable by a Shared consumer. Every Shared consumer waits/no-ops before payload access until both whole_parent_ready and published are true.

No READY instruction or READY encoding field is added.

Consequences​

  • A producer mask is independent of a consumer mask.
  • A one-PE full writer can publish a 32 KiB or larger Shared parent without requiring all four PE bits.
  • Undefined Shared words are not a legal pending-source path for TSTORE, TMOV, or Shared-input TMATMUL.

Verification​

Focused AVS points cover single-PE whole-parent publication, sparse producer masks, atomic assembled LAST, incomplete-generation waiting, and preservation of the prior published generation.