跳到主要内容

TUNPACK

Extract and zero-extend a raw byte field from Local U32 CUBE words.

PTO-TILE-TUNPACK

汇编格式

1. 高层汇编

TUNPACK <LB0, LB1, LB2, Layout> SrcTile0, Scalar0 -> DstTile
显示高层汇编 operand 到 owning ASL 的映射
高层汇编 operand 的 source binding
分组Operand含义ASL 来源
参数LB0dimensionB.DIM LB0 (optional)
参数LB1dimensionB.DIM LB0/LB1/LB2 (optional)
参数LB2dimensionB.DIM LB0/LB1/LB2 (optional)
参数LayoutlayoutB.DATR Layout (optional)
输入SrcTile0sourcecontract.operands[1].source0
输入Scalar0unpack-controlcontract.operands[2].scalar0
输出DstTiledestinationcontract.operands[0].destination0

2. 完整 Bundle Assembly

直接来自 owner metadata

BSTART.SFU TUNPACK, U32

  1. 1BSTART.SFU TUNPACK, U32必选
  2. 2B.DATR Layout (optional)可选
  3. 3B.DIM LB0 (optional)可选
  4. 4B.IOT source, ->destination必选
  5. 5B.IOR unpack_control必选
  6. 6BSTOP必选
最短 source-declared bundle
BSTART.SFU TUNPACK, U32B.IOT source, ->destinationB.IOR unpack_controlBSTOP
展开 Bundle 规则、互斥关系与示例
  • BSTART.SFU TUNPACK, U32
  • B.DATR Layout (optional)
  • B.DIM LB0/LB1/LB2 (optional)
  • B.IOT source, ->destination
  • B.IOR unpack_control
  • BSTOP
BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP

汇编符号

汇编字段与架构角色
字段位宽有符号性架构角色编码零
DataType5encoding-defined——
Mode2encoding-defined——
Function5encoding-defined——
destination0——destination—
source0——source—
scalar0——unpack-control—

编码

Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.

Encoding fields as an accessible table
Generated encoding fields for BSTART.TEPL Mode, Function, DataType
Decoded itemBit rangeValue
DataType31:27variable
Mode26:25variable
Function24:20variable
Constant19:020'b00011001000110000001
WaveJSON source
{
  "reg": [
    {
      "bits": 20,
      "name": "20'b00011001000110000001"
    },
    {
      "bits": 5,
      "name": "Function"
    },
    {
      "bits": 2,
      "name": "Mode"
    },
    {
      "bits": 5,
      "name": "DataType"
    }
  ],
  "config": {
    "bits": 32,
    "fontsize": 13,
    "hspace": 900,
    "lanes": 1,
    "offset": 0
  }
}

BSTART.TEPL Mode, Function, DataType

指令契约

操作数与参数

destination0
destination
source0
source
scalar0
unpack-control

约束、检查与 Fault

  • TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.
  • The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.
  • The result is zero-extended raw extraction.
  • Illegal offset/count fields reject with Fault_TileLegality before effects.
  • CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior.

状态读取、写入与结果

  • Extract and zero-extend one byte field in each active CUBE word group.
  • none
  • Control and source validation precede destination publication.

ASL 伪代码

下面是该指令所有者中的 Operation;页面没有重写这段行为。

Decode 源绑定

readonly func InstructionContractOperation_TUNPACK() => TileOperationbegin    return TileOperation_TUNPACK;end;

Operation 源绑定

readonly func InstructionContractHandler_TUNPACK() => TileSemanticHandlerbegin    return TileHandler_TUNPACK;end;
pure func InstructionContractDataTypeLegal_TUNPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TUNPACK(destination, source, control);end;
func InstructionContractExecute_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TUNPACK(destination, source, control);    TUNPACK(destination, source, control);end;
查看完整 ASL 所有者
// PTO-INSTRUCTION: {"assembly":["TUNPACK <bundle operands>"],"block":["BSTART.SFU TUNPACK, U32","B.DATR Layout (optional)","B.DIM LB0 (optional)","B.IOT source, ->destination","B.IOR unpack_control","BSTOP"],"catalog_indices":[106],"catalog_records":[{"arguments":[{"operand":"destination0"},{"operand":"source0"},{"operand":"scalar0"}],"command_mnemonic":"BSTART.TEPL","contract_status":"reviewed-complete","datr_contract":{"allowed_nonzero_fields":["Layout"],"pad_union":"must-zero"},"disposition":"accepted-direct-operation","effect_contract":"TUNPACK","family":"TEPL","fault_contract":"ExecuteTileInstruction","function":24,"legality_handler":"TileOperandsLegal_TUNPACK","mode":3,"name":"TUNPACK","operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"scalar0","role":"unpack-control"}],"restart_contract":"CompleteBundleAtWithAcceptedApplicabilityRules","selector":"0x078","semantic_handler":"TUNPACK","state_effects":["operand:destination0:destination","operand:source0:source","operand:scalar0:unpack-control"]}],"classification":["layout-and-rearrangement","layout"],"contract":{"block_composition":["BSTART.SFU TUNPACK, U32","B.DATR Layout (optional)","B.DIM LB0/LB1/LB2 (optional)","B.IOT source, ->destination","B.IOR unpack_control","BSTOP"],"canonical_assembly":["TUNPACK <bundle operands>"],"defaults":["A nonzero PE mask requires exactly one B.IOR control input; RegSrc1, RegSrc2, and RegDst are zero."],"encoding_class":"selector-encoded-block-operation","examples":["BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP"],"exceptions":["Illegal offset/count fields reject with Fault_TileLegality before effects.","CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."],"field_contracts":{},"field_zero_meanings":{},"legality":["TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.","The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.","The result is zero-extended raw extraction."],"memory_effects":["none"],"operands":[{"field":"destination0","role":"destination"},{"field":"source0","role":"source"},{"field":"scalar0","role":"unpack-control"}],"ordering":["Control and source validation precede destination publication."],"standalone_opcode":false,"state_effects":["Extract and zero-extend one byte field in each active CUBE word group."]},"depends_on":["PTO-TILE-MODEL-EXECUTION-REARRANGEMENT","PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"],"engine":"SFU","id":"PTO-TILE-TUNPACK","mnemonic":"TUNPACK","summary":"Extract and zero-extend a raw byte field from Local U32 CUBE words.","surface":"tile"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-TUNPACK-CONTRACT-001// ndf: kind=contract level=L1 layer=tile status=accepted// TUNPACK extracts one contiguous byte field from each U32 CUBE word and// zero-extends it to U32. Offset/count controls are checked before effects.// NDF-END: PTO-TUNPACK-CONTRACT-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_TUNPACK() => TileOperationbegin    return TileOperation_TUNPACK;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_TUNPACK() => TileSemanticHandlerbegin    return TileHandler_TUNPACK;end;
pure func InstructionContractDataTypeLegal_TUNPACK(    data_type: TileDataType) => booleanbegin    return data_type == TileDataType_U32;end;
readonly func InstructionContractOperandsLegal_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word) => booleanbegin    return TileOperandsLegal_TUNPACK(destination, source, control);end;
func InstructionContractExecute_TUNPACK(    destination: TileIndex, source: TileIndex, control: Word)begin    assert InstructionContractOperandsLegal_TUNPACK(destination, source, control);    TUNPACK(destination, source, control);end;// DOC-END: operation

行为

用途

使用场景。 TUNPACK 从每个 Local U32 CUBE 字中提取一个连续的原始字节字段,并将该字段放入零扩展的 U32 结果中。

执行过程

工作方式。 控制值的低字节给出源字节偏移,下一字节给出字节数;选中的字节向下复制到目标的第零字节位置,而结果的所有更高位保持为零。

输入与输出

输入与结果。 source 是 Local U32 CUBE_M16 或 CUBE_M32 Tile,unpack_control 选择字段,destination 是具有匹配布局与几何形状的新 Local U32 Tile。

架构效果

效果。 控制信息与源数据校验先于完整定义的目标有效区域发布;源 Tile 保持不变,目标填充为 Null,且该操作不产生内存效果。

约束与非法情形

拒绝条件。 偏移必须在 0 到 3 之间,字节数必须在 1 到 4 之间,两者之和不得超过 4,控制位 63:32 必须为零,并且源与目标不得重叠;拒绝不会产生目标效果。

示例演示

具体示例。 源字 0x44332211 与控制值 0x00000201 选择从字节偏移 1 开始的两个字节,得到 0x00003322。

NDF 条款

正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。

    1. surfaceTILE
    2. ownerTUNPACK
    3. categoryCONTRACT
    4. case001

    规范契约

    contract · L1 · accepted

    TUNPACK extracts one contiguous byte field from each U32 CUBE word and zero-extends it to U32. Offset/count controls are checked before effects.

    来源与引用
    完整稳定 ID
    PTO-TUNPACK-CONTRACT-001
    来源路径
    asl/tile/layout-and-rearrangement/layout/TUNPACK.asl
    适用单元
    PTO-TILE-TUNPACK
    源 SHA-256
    66d9ec2b9df00fc0c716bab78d3765716daca3f11278a142668d09fe6acd0c3f
    条款 SHA-256
    9c91153fdc9baeaac3327afedb14d0e05fe1007386375a3ae036124f36a9a72e
    打开精确 canonical source ↗

Evidence index

9 matching entries

Executable evidence2
  • TUNPACK extracts and zero-extends one contiguous byte field.
    1. surfaceTILE
    2. ownerTUNPACK
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TUNPACK-FIELD-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TUNPACK/tile-exec-tunpack-field-001.asl
    Kind / role
    execution
    Requirements
    PTO-TUNPACK-CONTRACT-001, PTO-INST-TILE-TUNPACK
    Pass condition
    Each destination word contains the selected source byte field and no other bits.
    SHA-256
    3ab0d71cdbcedbd965caa1b67b63907f0de5e9a52909c005f6cfd94c1cb1904d
    Open exact source ↗ for PTO-AVS-TILE-TUNPACK-FIELD-001
  • canonical TUNPACK catalog and ASL contract remain aligned
    1. surfaceTILE
    2. ownerTUNPACK
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-TILE-TUNPACK-STATIC-001
    Path
    tests/asl/tile/layout-and-rearrangement/layout/TUNPACK/tile-static-tunpack-contract-001.asl
    Kind / role
    static-invariant
    Requirements
    PTO-INST-TILE-TUNPACK
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    7a0a1a4172994de59bbd4c591a358e87371e697b93567fbfdb1c37240099c32a
    Open exact source ↗ for PTO-AVS-TILE-TUNPACK-STATIC-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history2
  • Private CUBE vector execution and CELL rearrangement · accepted
    1. decision recordADR
    2. case0103

    Decision record

    Loading ADR-0103…

    Sources and references
    Complete stable ID
    ADR-0103
    Path
    docs/status/decisions/0103-private-cube-vector-and-cell-rearrangement.md
    Affected units
    PTO-TILE-TPACK, PTO-TILE-TPERMUTE, PTO-TILE-TSHUF, PTO-TILE-TUNPACK
    Affected NDF
    PTO-TPACK-CONTRACT-001, PTO-TPERMUTE-CONTRACT-001, PTO-TSHUF-CONTRACT-001, PTO-TUNPACK-CONTRACT-001
    SHA-256
    3b3d67683fb0987dc85ba20c2d2effef9e7e1b170d3950cb505cc1f3ab6109d7
    Open exact decision source ↗ for ADR-0103
  • PTO ISA 0.58.4.1 to 0.58.5 compatibility boundary · accepted
    1. decision recordADR
    2. case0108

    Decision record

    Loading ADR-0108…

    Sources and references
    Complete stable ID
    ADR-0108
    Path
    docs/status/decisions/0108-0584-1-to-0585-compatibility.md
    Affected units
    PTO-ARCH-FEATURES-TILE-ALLOCATION, PTO-ARCH-MEMORY-MODEL-GLOBAL-MEMORY-ACCESS, PTO-ARCH-OVERVIEW-ENCODING-OWNERSHIP, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-BSTART-TLOAD, PTO-BLOCK-BSTART-TMATMUL, PTO-BLOCK-BSTART-TMATMUL-ACC, PTO-BLOCK-BSTART-TMATMUL-BIAS, PTO-BLOCK-BSTART-TMATMULMX, PTO-BLOCK-BSTART-TMATMULMX-ACC, PTO-BLOCK-BSTART-TMATMULMX-BIAS, PTO-BLOCK-BSTART-TMOV, PTO-BLOCK-BSTART-TSTORE, PTO-BLOCK-MODEL-DISPATCH-CELL-REARRANGEMENT-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-DISPATCH-CUBE-TMATMUL, PTO-BLOCK-MODEL-DISPATCH-DESCRIPTOR-LEGALITY, PTO-BLOCK-MODEL-DISPATCH-DESTINATION-SHAPE, PTO-BLOCK-MODEL-DISPATCH-PARTIAL-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-SHARED-CUBE-MATRIX, PTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCALAR-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-DISPATCH-TLSU-LAYOUT-CONVERSION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-TILE-GMOV, PTO-TILE-MGATHER, PTO-TILE-MGATHER-CAS, PTO-TILE-MGATHER-MASK, PTO-TILE-MSCATTER, PTO-TILE-MSCATTER-MASK, PTO-TILE-TCI, PTO-TILE-TCONCAT, PTO-TILE-TDEQUANT, PTO-TILE-TEXTRACT, PTO-TILE-TFILLPAD, PTO-TILE-TGATHER, PTO-TILE-TGEMV, PTO-TILE-TGEMV-ACC, PTO-TILE-TGEMV-BIAS, PTO-TILE-TGEMV-MX, PTO-TILE-TGEMV-MX-ACC, PTO-TILE-TGEMV-MX-BIAS, PTO-TILE-THISTOGRAM, PTO-TILE-TINSERT, PTO-TILE-TLOAD, PTO-TILE-TMATMUL, PTO-TILE-TMATMUL-ACC, PTO-TILE-TMATMUL-BIAS, PTO-TILE-TMATMUL-MX, PTO-TILE-TMATMUL-MX-ACC, PTO-TILE-TMATMUL-MX-BIAS, PTO-TILE-TMOV, PTO-TILE-TMRGSORT, PTO-TILE-TPACK, PTO-TILE-TPARTADD, PTO-TILE-TPARTMAX, PTO-TILE-TPARTMIN, PTO-TILE-TPARTMUL, PTO-TILE-TPERMUTE, PTO-TILE-TPREFETCH, PTO-TILE-TQUANT, PTO-TILE-TSCATTER, PTO-TILE-TSHUF, PTO-TILE-TSORT, PTO-TILE-TSTORE, PTO-TILE-TTRANS, PTO-TILE-TTRI, PTO-TILE-TUNPACK, PTO-TILE-MODEL-DISPATCH-IRREGULAR-AND-COMPLEX, PTO-TILE-MODEL-DISPATCH-LAYOUT-AND-REARRANGEMENT, PTO-TILE-MODEL-EXECUTION-COMPLEX, PTO-TILE-MODEL-EXECUTION-GENERATION, PTO-TILE-MODEL-EXECUTION-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-ALLOCATION-CAPACITY, PTO-TILE-MODEL-LEGALITY-DTYPE-LAYOUT, PTO-TILE-MODEL-LEGALITY-INDEXED-LAYOUT, PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT, PTO-TILE-MODEL-LEGALITY-OPERAND-SCHEMA, PTO-TILE-MODEL-MEMORY-SHARED-MOVEMENT, PTO-TILE-MODEL-STATE-DESCRIPTORS, PTO-TILE-MODEL-STATE-SHARED-REGISTERS, PTO-TILE-MODEL-STATE-TYPES
    Affected NDF
    PTO-ARCH-GM-ACCESS-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-IOT-STREAM-001, PTO-B-SHARED-WHOLE-PARENT-READY-001, PTO-B-SUBVIEW-SHARED-PER-PE-001, PTO-BSTART-TLOAD-MEMORY-001, PTO-BSTART-TMOV-SHARED-001, PTO-BSTART-TSTORE-MEMORY-001, PTO-INST-BLOCK-B-IOS, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-BSTART-TLOAD, PTO-INST-BLOCK-BSTART-TMATMUL, PTO-INST-BLOCK-BSTART-TMATMUL-ACC, PTO-INST-BLOCK-BSTART-TMATMUL-BIAS, PTO-INST-BLOCK-BSTART-TMATMULMX, PTO-INST-BLOCK-BSTART-TMATMULMX-ACC, PTO-INST-BLOCK-BSTART-TMATMULMX-BIAS, PTO-INST-BLOCK-BSTART-TMOV, PTO-INST-BLOCK-BSTART-TSTORE, PTO-INST-TILE-GMOV, PTO-INST-TILE-MGATHER, PTO-INST-TILE-MGATHER-CAS, PTO-INST-TILE-MGATHER-MASK, PTO-INST-TILE-MSCATTER, PTO-INST-TILE-MSCATTER-MASK, PTO-INST-TILE-TCI, PTO-INST-TILE-TCONCAT, PTO-INST-TILE-TDEQUANT, PTO-INST-TILE-TEXTRACT, PTO-INST-TILE-TFILLPAD, PTO-INST-TILE-TGATHER, PTO-INST-TILE-TGEMV, PTO-INST-TILE-TGEMV-ACC, PTO-INST-TILE-TGEMV-BIAS, PTO-INST-TILE-TGEMV-MX, PTO-INST-TILE-TGEMV-MX-ACC, PTO-INST-TILE-TGEMV-MX-BIAS, PTO-INST-TILE-THISTOGRAM, PTO-INST-TILE-TINSERT, PTO-INST-TILE-TLOAD, PTO-INST-TILE-TMATMUL, PTO-INST-TILE-TMATMUL-ACC, PTO-INST-TILE-TMATMUL-BIAS, PTO-INST-TILE-TMATMUL-MX, PTO-INST-TILE-TMATMUL-MX-ACC, PTO-INST-TILE-TMATMUL-MX-BIAS, PTO-INST-TILE-TMOV, PTO-INST-TILE-TMRGSORT, PTO-INST-TILE-TPACK, PTO-INST-TILE-TPARTADD, PTO-INST-TILE-TPARTMAX, PTO-INST-TILE-TPARTMIN, PTO-INST-TILE-TPARTMUL, PTO-INST-TILE-TPERMUTE, PTO-INST-TILE-TPREFETCH, PTO-INST-TILE-TQUANT, PTO-INST-TILE-TSCATTER, PTO-INST-TILE-TSHUF, PTO-INST-TILE-TSORT, PTO-INST-TILE-TSTORE, PTO-INST-TILE-TTRANS, PTO-INST-TILE-TTRI, PTO-INST-TILE-TUNPACK, PTO-ISA-LEGACY-SHARED-MOVEMENT-001, PTO-TFILLPAD-CONTRACT-001, PTO-TLOAD-MEMORY-001, PTO-TMATMUL-ACC-CONTRACT-001, PTO-TMATMUL-BIAS-CONTRACT-001, PTO-TMATMUL-CONTRACT-001, PTO-TMATMUL-MX-ACC-CONTRACT-001, PTO-TMATMUL-MX-BIAS-CONTRACT-001, PTO-TMATMUL-MX-CONTRACT-001, PTO-TPACK-CONTRACT-001, PTO-TPARTADD-CONTRACT-001, PTO-TPARTMAX-CONTRACT-001, PTO-TPARTMIN-CONTRACT-001, PTO-TPARTMUL-CONTRACT-001, PTO-TPERMUTE-CONTRACT-001, PTO-TSHUF-CONTRACT-001, PTO-TSTORE-MEMORY-001, PTO-TTRANS-CONTRACT-001, PTO-TUNPACK-CONTRACT-001
    SHA-256
    5689fa78a7291b6ae88d55197205e4cf79e9719ee5ba18ebf186f5c6871c350d
    Open exact decision source ↗ for ADR-0108

Unit metadata

Open 12 generated metadata fields
assembly
[
  "TUNPACK <bundle operands>"
]
block
[
  "BSTART.SFU TUNPACK, U32",
  "B.DATR Layout (optional)",
  "B.DIM LB0 (optional)",
  "B.IOT source, ->destination",
  "B.IOR unpack_control",
  "BSTOP"
]
catalog_indices
[
  106
]
catalog_records
[
  {
    "arguments": [
      {
        "operand": "destination0"
      },
      {
        "operand": "source0"
      },
      {
        "operand": "scalar0"
      }
    ],
    "command_mnemonic": "BSTART.TEPL",
    "contract_status": "reviewed-complete",
    "datr_contract": {
      "allowed_nonzero_fields": [
        "Layout"
      ],
      "pad_union": "must-zero"
    },
    "disposition": "accepted-direct-operation",
    "effect_contract": "TUNPACK",
    "family": "TEPL",
    "fault_contract": "ExecuteTileInstruction",
    "function": 24,
    "legality_handler": "TileOperandsLegal_TUNPACK",
    "mode": 3,
    "name": "TUNPACK",
    "operands": [
      {
        "field": "destination0",
        "role": "destination"
      },
      {
        "field": "source0",
        "role": "source"
      },
      {
        "field": "scalar0",
        "role": "unpack-control"
      }
    ],
    "restart_contract": "CompleteBundleAtWithAcceptedApplicabilityRules",
    "selector": "0x078",
    "semantic_handler": "TUNPACK",
    "state_effects": [
      "operand:destination0:destination",
      "operand:source0:source",
      "operand:scalar0:unpack-control"
    ]
  }
]
classification
[
  "layout-and-rearrangement",
  "layout"
]
contract
{
  "block_composition": [
    "BSTART.SFU TUNPACK, U32",
    "B.DATR Layout (optional)",
    "B.DIM LB0/LB1/LB2 (optional)",
    "B.IOT source, ->destination",
    "B.IOR unpack_control",
    "BSTOP"
  ],
  "canonical_assembly": [
    "TUNPACK <bundle operands>"
  ],
  "defaults": [
    "A nonzero PE mask requires exactly one B.IOR control input; RegSrc1, RegSrc2, and RegDst are zero."
  ],
  "encoding_class": "selector-encoded-block-operation",
  "examples": [
    "BSTART.SFU TUNPACK, U32; B.DATR Layout; B.DIM LB0; B.IOT source, ->destination; B.IOR a0; BSTOP"
  ],
  "exceptions": [
    "Illegal offset/count fields reject with Fault_TileLegality before effects.",
    "CompleteBundleAtWithAcceptedApplicabilityRules supplies restart and completion behavior."
  ],
  "field_contracts": {},
  "field_zero_meanings": {},
  "legality": [
    "TUNPACK accepts only Local U32 CUBE_M16 or CUBE_M32 sources and a fresh matching destination.",
    "The control selects one contiguous byte field with offset 0..3 and count 1..4 within a U32 word.",
    "The result is zero-extended raw extraction."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "destination0",
      "role": "destination"
    },
    {
      "field": "source0",
      "role": "source"
    },
    {
      "field": "scalar0",
      "role": "unpack-control"
    }
  ],
  "ordering": [
    "Control and source validation precede destination publication."
  ],
  "standalone_opcode": false,
  "state_effects": [
    "Extract and zero-extend one byte field in each active CUBE word group."
  ]
}
depends_on
[
  "PTO-TILE-MODEL-EXECUTION-REARRANGEMENT",
  "PTO-TILE-MODEL-LEGALITY-LAYOUT-REARRANGEMENT"
]
engine
SFU
id
PTO-TILE-TUNPACK
mnemonic
TUNPACK
summary
Extract and zero-extend a raw byte field from Local U32 CUBE words.
surface
tile
Open generated traceability record
{
  "classification": [
    "layout-and-rearrangement",
    "layout"
  ],
  "documentation": "docs/tile/layout-and-rearrangement/layout/TUNPACK.md",
  "id": "PTO-TILE-TUNPACK",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "TUNPACK",
    "ndf_clause": "PTO-INST-TILE-TUNPACK"
  },
  "mnemonic": "TUNPACK",
  "readiness_subjects": [
    "ADR-0103",
    "ADR-0108"
  ],
  "semantic_tests": [
    "PTO-AVS-TILE-TUNPACK-FIELD-001"
  ],
  "source": "asl/tile/layout-and-rearrangement/layout/TUNPACK.asl",
  "surface": "tile",
  "tests": [
    "PTO-AVS-TILE-TUNPACK-FIELD-001",
    "PTO-AVS-TILE-TUNPACK-STATIC-001"
  ]
}

来源与发布信息

展开 commit、路径、hash、版本和规范所有者
发布
0.58.5 · 候选发布
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
66d9ec2b9df00fc0c716bab78d3765716daca3f11278a142668d09fe6acd0c3f
文档 SHA-256
f61dcaf5046865ebc915963ae7c876da3d9c698847a3f610d1beed0e369ce2c4

精确所有者