跳到主要内容

B.ASSEMBLE

Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.

PTO-BLOCK-B-ASSEMBLE

汇编格式

B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

汇编符号

汇编字段与架构角色
字段位宽有符号性架构角色编码零
INIT1encoding-definedselects INIT versus MIDDLE/LAST formZero selects MIDDLE/LAST rather than INIT/INIT_LAST.
uimm1111unsignedunsigned XLEN addendZero is a real zero displacement.
RegSrc5encoding-definedabsolute GPR selectorZero names the architectural zero GPR.
LAST1encoding-definedmarks the final assembler carrierOne closes the modifier sequence at the semantic assembler.
ParentSizeCode4encoding-definedraw parent size codeZero is the MIDDLE/LAST-only no-parent-size encoding.

编码

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

Encoding fields as an accessible table
Generated encoding fields for B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode
Decoded itemBit rangeValue
INIT31variable
uimm1130:20variable
RegSrc19:15variable
Constant14:123'b001
LAST11variable
ParentSizeCode10:7variable
Constant6:07'b1010011
WaveJSON source
{
  "reg": [
    {
      "bits": 7,
      "name": "7'b1010011"
    },
    {
      "bits": 4,
      "name": "ParentSizeCode"
    },
    {
      "bits": 1,
      "name": "LAST"
    },
    {
      "bits": 3,
      "name": "3'b001"
    },
    {
      "bits": 5,
      "name": "RegSrc"
    },
    {
      "bits": 11,
      "name": "uimm11"
    },
    {
      "bits": 1,
      "name": "INIT"
    }
  ],
  "config": {
    "bits": 32,
    "fontsize": 13,
    "hspace": 900,
    "lanes": 1,
    "offset": 0
  }
}

B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

指令契约

操作数与参数

INIT
selects INIT versus MIDDLE/LAST form
LAST
marks the final assembler carrier
RegSrc
absolute GPR selector
uimm11
unsigned XLEN addend
ParentSizeCode
raw parent size code

约束、检查与 Fault

  • RegSrc accepts only absolute GPR selectors 0..23.
  • ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.
  • Local and Shared parent sizes 1..12 are accepted.
  • The modifier is legal only in the contiguous immediately preceding binder group and follows source roles.
  • Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.
  • INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.
  • Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl.

状态读取、写入与结果

  • Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.
  • PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects.
  • none
  • Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality.

ASL 伪代码

Decode 与 Operation 均直接来自指令所有者,并按执行阶段分开显示。

Decode ASL

readonly func InstructionContractMatches_B_ASSEMBLE(operation: CommandOperation) => booleanbegin    return operation == CommandOperation_b_assemble_32_122000000002;end;

Operation 源绑定

pure func InstructionContractParentSizeCodeIsRawLegal_B_ASSEMBLE(code: integer {0..15}) => booleanbegin    return code <= 12;end;
readonly func InstructionContractHandler_B_ASSEMBLE() => CommandSemanticHandlerbegin    return CommandHandler_ApplyBundleAssemble;end;
查看完整 ASL 所有者
// PTO-INSTRUCTION: {"assembly":["B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"],"block":[],"catalog_indices":[75],"catalog_records":[{"asm":"B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode","constraints":[{"field":"INIT","operator":"one-of","values":[0,1]},{"field":"RegSrc","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]},{"field":"ParentSizeCode","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12]}],"encoding":[{"index":0,"mask":"0x0000707f","match":"0x00001053","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"INIT","pieces":[{"instruction_lsb":31,"value_lsb":0,"width":1}],"signedness":"encoding-defined","width":1},{"name":"uimm11","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":11}],"signedness":"unsigned","width":11},{"name":"RegSrc","pieces":[{"instruction_lsb":15,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5},{"name":"LAST","pieces":[{"instruction_lsb":11,"value_lsb":0,"width":1}],"signedness":"encoding-defined","width":1},{"name":"ParentSizeCode","pieces":[{"instruction_lsb":7,"value_lsb":0,"width":4}],"signedness":"encoding-defined","width":4}],"form_id":"b_assemble_32_122000000002","length_bits":32,"mnemonic":"B.ASSEMBLE","semantic_family":"CMD","semantic_group":"Bundle Range Modifier","semantic_handler":"ApplyBundleAssemble","semantic_summary":"Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.","status":"accepted"}],"classification":["operands"],"contract":{"block_composition":["Immediately follows B.IOT or B.IOS and is contiguous with the associated modifier group."],"canonical_assembly":["B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"],"defaults":["uimm11 is unsigned and zero-extended. RegSrc zero names the architectural zero GPR. INIT=0 encodes MIDDLE/LAST; INIT=1 encodes INIT/INIT_LAST."],"encoding_class":"standalone-encoded","examples":["B.IOT T0, mask=1111, ->T1<1>; B.ASSEMBLE 1, 1, a0, 0, 10"],"exceptions":["Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.","INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.","Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl."],"field_contracts":{},"field_zero_meanings":{"INIT":"Zero selects MIDDLE/LAST rather than INIT/INIT_LAST.","LAST":"One closes the modifier sequence at the semantic assembler.","uimm11":"Zero is a real zero displacement.","RegSrc":"Zero names the architectural zero GPR.","ParentSizeCode":"Zero is the MIDDLE/LAST-only no-parent-size encoding."},"legality":["RegSrc accepts only absolute GPR selectors 0..23.","ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.","Local and Shared parent sizes 1..12 are accepted.","The modifier is legal only in the contiguous immediately preceding binder group and follows source roles."],"memory_effects":["none"],"operands":[{"field":"INIT","role":"selects INIT versus MIDDLE/LAST form"},{"field":"LAST","role":"marks the final assembler carrier"},{"field":"RegSrc","role":"absolute GPR selector"},{"field":"uimm11","role":"unsigned XLEN addend"},{"field":"ParentSizeCode","role":"raw parent size code"}],"ordering":["Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality."],"state_effects":["Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.","PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects."],"standalone_opcode":true},"depends_on":["PTO-BLOCK-B-IOT","PTO-BLOCK-B-IOS","PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS"],"id":"PTO-BLOCK-B-ASSEMBLE","mnemonic":"B.ASSEMBLE","summary":"Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.","surface":"block"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-B-ASSEMBLE-RANGE-001// ndf: kind=contract level=L1 layer=block status=accepted// B.ASSEMBLE MUST decode the exact 0x53 form, preserve raw controls and the// XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding// contiguous B.IOT/B.IOS group.// NDF-END: PTO-B-ASSEMBLE-RANGE-001// DOC-BEGIN: decodereadonly func InstructionContractMatches_B_ASSEMBLE(operation: CommandOperation) => booleanbegin    return operation == CommandOperation_b_assemble_32_122000000002;end;// DOC-END: decode// DOC-BEGIN: operationpure func InstructionContractParentSizeCodeIsRawLegal_B_ASSEMBLE(code: integer {0..15}) => booleanbegin    return code <= 12;end;
readonly func InstructionContractHandler_B_ASSEMBLE() => CommandSemanticHandlerbegin    return CommandHandler_ApplyBundleAssemble;end;// DOC-END: operation

行为

用途

B.ASSEMBLE 的作用

B.ASSEMBLE 是一条 32 位 Block header 命令,用来把一个汇编范围修饰符附加到已打开的 Local 或 Shared 绑定组。它修改待处理 Block 元数据,不会立即执行 Tile body 操作。

执行过程

位置与机制

该修饰符必须与打开其 carrier 的 B.IOT 或 B.IOS 绑定组保持连续。若中间插入其他命令、顺序反转或重复使用,会在 carrier 状态变化前被拒绝。

该命令把原始选择与范围字段以及派生的 XLEN 偏移记录到已打开的 binder carrier。若 binder 解码后的 PE mask 为零,则只保留一个随后丢弃的语法组,不读取源,也不产生角色影响。

输入与输出

操作数与 header 角色

  • INIT 标记第一个 assembler carrier;其确切分配域仍以下方生成契约为准。
  • LAST 标记最后一个 assembler carrier;其确切分配域仍以下方生成契约为准。
  • RegSrc 选择具名的绝对 GPR 角色;其确切分配域仍以下方生成契约为准。
  • uimm11 提供编码偏移或加数;其确切分配域仍以下方生成契约为准。
  • ParentSizeCode 提供父范围大小编码;其确切分配域仍以下方生成契约为准。
架构效果

待处理状态与完成

被接受的 header 命令只改变自己的待处理记录或 carrier。除非本所有者明确指出即时 header 状态更新,否则架构 Tile、Shared、GPR、内存和完成影响都推迟到完整 Block。

约束与非法情形

合法性与故障边界

保留编码会在读取或待处理状态变化前被拒绝。位置、重复、角色或完成后 schema 不匹配,会在 body 影响前失败。

示例演示

示例性示例

以下为示例性示例,仅用于说明当前所有者,不替代其定义。

B.IOT mask=PE_MASK, <last>, ->DstTile<SizeCode>
B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode

目的形式的 B.IOT 打开确切的目的 carrier 组。紧随其后的 B.ASSEMBLE 把 assembler range 应用于该目的 carrier;中间插入任何命令都会破坏连续性,使修饰符组无效。

NDF 条款

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

    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryRANGE
    4. case001

    规范契约

    contract · L1 · accepted

    B.ASSEMBLE MUST decode the exact 0x53 form, preserve raw controls and the XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding contiguous B.IOT/B.IOS group.

    来源与引用
    完整稳定 ID
    PTO-B-ASSEMBLE-RANGE-001
    来源路径
    asl/block/operands/B.ASSEMBLE.asl
    适用单元
    PTO-BLOCK-B-ASSEMBLE
    源 SHA-256
    78b3638e1d09e55d9ac1c45f0589c4c86cb5d355d4ae8b6e79c510a42b1a60e4
    条款 SHA-256
    756954057e8d2cafdc5b02551faa1a1ce5142a9f7f22ec2662c87bfdb1ebf8eb
    打开精确 canonical source ↗

Evidence index

21 matching entries

Executable evidence14
  • Decoded Local generation faults reject replacement, identity, coverage, allocation, and replay violations without partial publication.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-LOCAL-FAULTS-001
    Path
    tests/asl/block/model/operands/local-generation/block-fault-assemble-local-faults-001.asl
    Kind / role
    fault
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Missing or duplicate INIT, second-open, equal-range distinct-instance overlap, out-of-bounds, participant-mask, normalized-descriptor/object-name, no-modifier open-key, incomplete LAST, allocation failure, and writer-after-LAST cases report exact BundleControl/TileLegality/TileAllocation results; speculative state aborts while sources remain allocated and defined.
    SHA-256
    22cb556792488b42e40ec17571d961519e0cd66911c03434306e6920f170a61e
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-LOCAL-FAULTS-001
  • Decoded Local B.ASSEMBLE keeps one open generation across disjoint writers and publishes only at LAST.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-LOCAL-LIFECYCLE-001
    Path
    tests/asl/block/model/operands/local-generation/block-exec-assemble-local-lifecycle-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    INIT opens one generation, an exact same-instance replay is idempotent, distinct MIDDLE writers reuse one destination without allocating another object, readiness and coverage accumulate out of order, and LAST closes and publishes atomically.
    SHA-256
    6127226a74cc6b1982898a62a35bd3e2145b9485bbe1cc858bd939d67132f511
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-LOCAL-LIFECYCLE-001
  • Decoded multi-output Local assembly preflights every writer before publication.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryATOMICITY
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-MULTIOUTPUT-001
    Path
    tests/asl/block/model/operands/local-generation/block-atomic-assemble-multioutput-001.asl
    Kind / role
    atomicity
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    Two independently bound output hands commit together with disjoint generation domains; when one output has incomplete coverage, neither destination allocates or advances.
    SHA-256
    0a936b30a2b754ac42dd93cd893a8377bb847f8d4c43cf26c785754e9f357b2a
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-MULTIOUTPUT-001
  • Decoded Local assembly binds portable range readiness, cancels wrong-path writers, and rejects a nonrollback producer before effects.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-PORTABLE-CARRIERS-001
    Path
    tests/asl/block/model/operands/portable-carriers/block-exec-assemble-portable-carriers-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-ASSEMBLE-CONSUMER-READINESS-001, PTO-B-ASSEMBLE-SPECULATION-001, PTO-B-ASSEMBLE-PRODUCER-EFFECT-ELIGIBILITY-001, PTO-INST-BLOCK-BSTART, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    A decoded post-LAST range waits without a fault or temporary source effect until its selected cells become ready; decoded writer squash removes coverage and allocation while preserving sources; a decoded B.ASSEMBLE producer with a nonrollback handler raises Fault_TileLegality before effects.
    SHA-256
    11e59453724fa2271ae8b7528829da24f05d34eabc7fe8d3d2a71ecb2b3ef63f
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-PORTABLE-CARRIERS-001
  • Decoded INIT, MIDDLE, and LAST Local generation faults retain the original operation address, restart at INIT, and abort speculative state.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-ASSEMBLE-RESTART-001
    Path
    tests/asl/block/model/operands/local-generation/block-fault-assemble-restart-001.asl
    Kind / role
    fault
    Requirements
    PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Each decoded INIT, MIDDLE, and LAST fault reports the original operation address, restores the earliest INIT TPC, and leaves no open generation, partial coverage, readiness, or publication.
    SHA-256
    2811b86d9c533058a60ad7fb19f135755ca0e622e3951560429a9fa9d6bfbb54
    Open exact source ↗ for PTO-AVS-BLOCK-ASSEMBLE-RESTART-001
  • canonical B.ASSEMBLE catalog and ASL contract remain aligned
    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryDECODE-POSITIVE
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001
    Path
    tests/asl/block/operands/B.ASSEMBLE/block-decode-b-assemble-canonical-001.asl
    Kind / role
    decode-positive
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE
    Pass condition
    all canonical decode and contract assertions hold
    SHA-256
    1eb9e010027c0a8a3b5fa4de6813279314f02db8f0883777dba44dc99ae4b281
    Open exact source ↗ for PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001
  • B.ASSEMBLE executes every INIT/MIDDLE/LAST/INIT_LAST control, Local and Shared parent boundaries, and all raw-legality and contradictory-control faults.
    1. surfaceBLOCK
    2. ownerB.ASSEMBLE
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001
    Path
    tests/asl/block/operands/B.ASSEMBLE/block-exec-b-assemble-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    each legal control preserves exact fields and XLEN offset in the destination carrier; every reserved raw form, contradictory INIT/size class, and all Local/Shared parent codes 1..12 remain accepted
    SHA-256
    6ebdcb83b1ea48f8f5191133e52a0ce3d323866c4518102fd3caeb2a656616f3
    Open exact source ↗ for PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001
  • B.SUBVIEW and B.ASSEMBLE execute only in the immediately preceding B.IOT/B.IOS group, consuming source0, source1, and destination roles in strict order.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    3. categoryFAULT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-RANGE-GROUP-ORDER-001
    Path
    tests/asl/block/model/operands/range-modifiers/block-fault-range-group-order-001.asl
    Kind / role
    fault
    Requirements
    PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    valid Local/Shared source and destination groups, omissions, duplicates, reverse/misordered/absent/intervening forms, B.IOT.L, and B.IOS source1 are each executed with the specified carrier or BundleControl result and no retroactive effect
    SHA-256
    8d6507c8048a569186bcca2ddca9e49e38f43538f3705a3544aa690fdd878284
    Open exact source ↗ for PTO-AVS-BLOCK-RANGE-GROUP-ORDER-001
  • PEMode=000 executes a broad raw-legal B.SUBVIEW/B.ASSEMBLE matrix as discarded syntactic groups while nonzero controls retain carriers and reserved forms remain illegal.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-RANGE-PEMODE-ZERO-001
    Path
    tests/asl/block/model/operands/range-modifiers/block-exec-range-pemode-zero-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT, PTO-INST-BLOCK-B-IOS
    Pass condition
    both source selectors, every legal subview size, every raw-legal assemble control/size, RegSrc/uimm extremes, Local/Shared zero groups, and matching nonzero controls execute with no zero-mode reads/effects/faults; every reserved encoding is IllegalInstruction with no effect
    SHA-256
    97391c16c8e7f937b1a1bb2e06dab80f8c66a2a4aed84f8ccda354b917cb7abf
    Open exact source ↗ for PTO-AVS-BLOCK-RANGE-PEMODE-ZERO-001
  • Shared TLSU loads and stores use per-PE size and LB stride defaults
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-GM-EXEC-001
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-shared-tlsu-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    collective GM-to-Shared assembly, Shared-to-GM, and LB2 stride assertions hold
    SHA-256
    cdcaba84f1436e4fdae6b5d2a8bd1c455aacc499ad0ce04870f19ce2d15ce95e
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-GM-EXEC-001
  • Shared TLOAD resolves B.IOR base and stride independently in every selected PE GPR file.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-PER-PE-GM-EXECUTION-001
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-per-pe-gm-001.asl
    Kind / role
    execution
    Requirements
    PTO-ARCH-GM-ACCESS-001, PTO-INST-TILE-TLOAD, PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    Four fixed Shared quarters assemble from four PE-private base/stride pairs selected by the same encoded RegSrc fields.
    SHA-256
    b398421107121b5551c5e9cc77949c2ceed6275f03543a55a422925c0d6801aa
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-PER-PE-GM-EXECUTION-001
  • Canonical TMOV publishes an assembled Shared parent and reads it through Function 2.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-DISPATCH-SHARED-TLSU
    3. categoryEXECUTION
    4. case003
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SHARED-TLSU-PUBLISH-EXEC-003
    Path
    tests/asl/block/model/dispatch/shared-tlsu/block-exec-shared-tlsu-publish-003.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    INIT_LAST publishes atomically and two canonical Shared-to-Local reads preserve the complete descriptor and payload.
    SHA-256
    683e9b44bbce3e0a7711243009be11f4637056b56ad8eb8a07ba1eb4b616fcc0
    Open exact source ↗ for PTO-AVS-BLOCK-SHARED-TLSU-PUBLISH-EXEC-003
  • Decoded Local CUBE M16, M32, and N8 subviews derive bounded descriptors and preserve parent lifetime before normal operation commit.
    1. surfaceBLOCK
    2. ownerPTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-SUBVIEW-CUBE-DESCRIPTOR-001
    Path
    tests/asl/block/model/operands/subview-descriptor/block-exec-subview-cube-descriptor-001.asl
    Kind / role
    execution
    Requirements
    PTO-B-SUBVIEW-DESCRIPTOR-001, PTO-INST-BLOCK-B-SUBVIEW, PTO-INST-BLOCK-B-ASSEMBLE, PTO-INST-BLOCK-B-IOT
    Pass condition
    Decoded BSTART/B.IOT/B.SUBVIEW/B.ASSEMBLE reaches normal preflight and commit for M16 and M32 parents with N8 peers; the supplementary CELL-order matrix asserts interior, repeat-boundary, clipped-tail, min/max, selected values, and exact non-CUBE/zero-valid/OOB TileLegality faults.
    SHA-256
    1c39e0e37eee9c1d48681b747be931b5a2b4a19f8ef52a33bb77da3bbb536671
    Open exact source ↗ for PTO-AVS-BLOCK-SUBVIEW-CUBE-DESCRIPTOR-001
  • Shared TLOAD uses the selected PE-private base and byte-stride GPRs and updates only selected quarters.
    1. surfaceBLOCK
    2. ownerBSTART.TLOAD
    3. categoryEXECUTION
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-BLOCK-TLOAD-SHARED-001
    Path
    tests/asl/block/execution/BSTART.TLOAD/block-exec-bstart-tload-shared-001.asl
    Kind / role
    execution
    Requirements
    PTO-INST-BLOCK-BSTART-TLOAD, PTO-INST-TILE-TLOAD, PTO-INST-BLOCK-B-ASSEMBLE, PTO-B-ASSEMBLE-SHARED-STANDALONE-001
    Pass condition
    Mask 0011 assembles quarters zero and one from PE0 and PE1 while the other Shared quarters remain uninitialized.
    SHA-256
    6e213a64db5143c6397695395febedda54f98992ef132c350b158b9fa9b372a3
    Open exact source ↗ for PTO-AVS-BLOCK-TLOAD-SHARED-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
  • B.SUBVIEW and B.ASSEMBLE range-modifier association · accepted
    1. decision recordADR
    2. case0098

    Decision record

    Loading ADR-0098…

    Sources and references
    Complete stable ID
    ADR-0098
    Path
    docs/status/decisions/0098-b-range-modifiers.md
    Affected units
    PTO-ARCH-PROFILE-RESET, PTO-BLOCK-B-IOT, PTO-BLOCK-B-IOS, PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-B-ASSEMBLE, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS, PTO-BLOCK-MODEL-OPERANDS-SHARED-BINDINGS, PTO-BLOCK-MODEL-OPERANDS-TILE-BINDINGS, PTO-BLOCK-MODEL-STATE-CONTROL-STATE, PTO-BLOCK-MODEL-STATE-DESCRIPTOR-STATE, PTO-BLOCK-MODEL-STATE-TYPES, PTO-ARCH-DATA-TYPES-TRAP-CONTEXT, PTO-ARCH-PROFILE-REFERENCE-PROFILE, PTO-ARCH-PROFILE-TRAP-CONTEXT-RECOVERY, PTO-ARCH-STATE-TRAP-CONTEXT, PTO-BLOCK-MODEL-DISPATCH-TILE-EXECUTION, PTO-BLOCK-MODEL-DISPATCH-TILE-SCHEMA, PTO-BLOCK-MODEL-FAULTS-ROLLBACK, PTO-BLOCK-MODEL-LIFECYCLE-RESET, PTO-BLOCK-MODEL-OPERANDS-LOCAL-GENERATION, PTO-BLOCK-MODEL-OPERANDS-SHARED-GENERATION, PTO-BLOCK-MODEL-OPERANDS-PORTABLE-CARRIERS, PTO-BLOCK-MODEL-OPERANDS-SUBVIEW-DESCRIPTOR, PTO-BLOCK-MODEL-STATE-SHARED-GENERATION, PTO-TILE-MODEL-LEGALITY-MATRIX-POSTPROCESS
    Affected NDF
    PTO-B-IOT-STREAM-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-SUBVIEW-RANGE-001, PTO-B-ASSEMBLE-RANGE-001, PTO-B-SUBVIEW-DESCRIPTOR-001, PTO-BLOCK-TILE-OPERATION-APPLICABILITY-001, PTO-B-ASSEMBLE-LOCAL-GENERATION-001, PTO-B-ASSEMBLE-SHARED-GENERATION-001, PTO-B-ASSEMBLE-SHARED-STANDALONE-001, PTO-B-ASSEMBLE-CONSUMER-READINESS-001, PTO-B-ASSEMBLE-SPECULATION-001, PTO-B-ASSEMBLE-PRODUCER-EFFECT-ELIGIBILITY-001
    SHA-256
    e194ccc6b6922fd4b65066b533f5e4b0eba094e099970059bca8e25b4e466fba
    Open exact decision source ↗ for ADR-0098
  • PTO ISA 0.58.3 to 0.58.4 compatibility boundary · accepted
    1. decision recordADR
    2. case0099

    Decision record

    Loading ADR-0099…

    Sources and references
    Complete stable ID
    ADR-0099
    Path
    docs/status/decisions/0099-0583-to-0584-compatibility.md
    Affected units
    PTO-ARCH-PROGRAMMING-MODEL-CORE-PE-TOPOLOGY, PTO-BLOCK-B-IOT, PTO-BLOCK-B-IOS, PTO-BLOCK-B-SUBVIEW, PTO-BLOCK-B-ASSEMBLE, PTO-BLOCK-MODEL-DISPATCH-COMMANDS, PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS
    Affected NDF
    PTO-B-IOT-STREAM-001, PTO-B-IOS-SHARED-STATE-001, PTO-B-SUBVIEW-RANGE-001, PTO-B-ASSEMBLE-RANGE-001
    SHA-256
    f130ce243d978a85dc641580d71505a950a34ce1a561402e74946ed6903ad2a0
    Open exact decision source ↗ for ADR-0099

Unit metadata

Open 11 generated metadata fields
assembly
[
  "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"
]
block
[]
catalog_indices
[
  75
]
catalog_records
[
  {
    "asm": "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode",
    "constraints": [
      {
        "field": "INIT",
        "operator": "one-of",
        "values": [
          0,
          1
        ]
      },
      {
        "field": "RegSrc",
        "operator": "one-of",
        "values": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12,
          13,
          14,
          15,
          16,
          17,
          18,
          19,
          20,
          21,
          22,
          23
        ]
      },
      {
        "field": "ParentSizeCode",
        "operator": "one-of",
        "values": [
          0,
          1,
          2,
          3,
          4,
          5,
          6,
          7,
          8,
          9,
          10,
          11,
          12
        ]
      }
    ],
    "encoding": [
      {
        "index": 0,
        "mask": "0x0000707f",
        "match": "0x00001053",
        "width_bits": 32
      }
    ],
    "encoding_kind": "L32",
    "fields": [
      {
        "name": "INIT",
        "pieces": [
          {
            "instruction_lsb": 31,
            "value_lsb": 0,
            "width": 1
          }
        ],
        "signedness": "encoding-defined",
        "width": 1
      },
      {
        "name": "uimm11",
        "pieces": [
          {
            "instruction_lsb": 20,
            "value_lsb": 0,
            "width": 11
          }
        ],
        "signedness": "unsigned",
        "width": 11
      },
      {
        "name": "RegSrc",
        "pieces": [
          {
            "instruction_lsb": 15,
            "value_lsb": 0,
            "width": 5
          }
        ],
        "signedness": "encoding-defined",
        "width": 5
      },
      {
        "name": "LAST",
        "pieces": [
          {
            "instruction_lsb": 11,
            "value_lsb": 0,
            "width": 1
          }
        ],
        "signedness": "encoding-defined",
        "width": 1
      },
      {
        "name": "ParentSizeCode",
        "pieces": [
          {
            "instruction_lsb": 7,
            "value_lsb": 0,
            "width": 4
          }
        ],
        "signedness": "encoding-defined",
        "width": 4
      }
    ],
    "form_id": "b_assemble_32_122000000002",
    "length_bits": 32,
    "mnemonic": "B.ASSEMBLE",
    "semantic_family": "CMD",
    "semantic_group": "Bundle Range Modifier",
    "semantic_handler": "ApplyBundleAssemble",
    "semantic_summary": "Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.",
    "status": "accepted"
  }
]
classification
[
  "operands"
]
contract
{
  "block_composition": [
    "Immediately follows B.IOT or B.IOS and is contiguous with the associated modifier group."
  ],
  "canonical_assembly": [
    "B.ASSEMBLE INIT, LAST, RegSrc, uimm11, ParentSizeCode"
  ],
  "defaults": [
    "uimm11 is unsigned and zero-extended. RegSrc zero names the architectural zero GPR. INIT=0 encodes MIDDLE/LAST; INIT=1 encodes INIT/INIT_LAST."
  ],
  "encoding_class": "standalone-encoded",
  "examples": [
    "B.IOT T0, mask=1111, ->T1<1>; B.ASSEMBLE 1, 1, a0, 0, 10"
  ],
  "exceptions": [
    "Reserved funct3/opcode, RegSrc24..31, and ParentSizeCode13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.",
    "INIT=1 with ParentSizeCode=0 or INIT=0 with a nonzero ParentSizeCode raises Fault_BundleControl.",
    "Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl."
  ],
  "field_contracts": {},
  "field_zero_meanings": {
    "INIT": "Zero selects MIDDLE/LAST rather than INIT/INIT_LAST.",
    "LAST": "One closes the modifier sequence at the semantic assembler.",
    "uimm11": "Zero is a real zero displacement.",
    "RegSrc": "Zero names the architectural zero GPR.",
    "ParentSizeCode": "Zero is the MIDDLE/LAST-only no-parent-size encoding."
  },
  "legality": [
    "RegSrc accepts only absolute GPR selectors 0..23.",
    "ParentSizeCode raw values 0..12 are decoded; INIT/size combinations select INIT, MIDDLE, LAST, or INIT_LAST and contradictory combinations are BundleControl.",
    "Local and Shared parent sizes 1..12 are accepted.",
    "The modifier is legal only in the contiguous immediately preceding binder group and follows source roles."
  ],
  "memory_effects": [
    "none"
  ],
  "operands": [
    {
      "field": "INIT",
      "role": "selects INIT versus MIDDLE/LAST form"
    },
    {
      "field": "LAST",
      "role": "marks the final assembler carrier"
    },
    {
      "field": "RegSrc",
      "role": "absolute GPR selector"
    },
    {
      "field": "uimm11",
      "role": "unsigned XLEN addend"
    },
    {
      "field": "ParentSizeCode",
      "role": "raw parent size code"
    }
  ],
  "ordering": [
    "Decode fixed/reserved fields and raw ranges before any GPR read; compute GPR[RegSrc]+ZeroExtend(uimm11) modulo 2^XLEN after group legality."
  ],
  "state_effects": [
    "Store raw INIT/LAST/RegSrc/uimm11/ParentSizeCode and the derived XLEN offset in the destination carrier of the open binder group.",
    "PEMode=000 on the binder opens a discarded syntactic group; every raw-legal contiguous modifier advances TPC without reads, state, role, or fault effects."
  ],
  "standalone_opcode": true
}
depends_on
[
  "PTO-BLOCK-B-IOT",
  "PTO-BLOCK-B-IOS",
  "PTO-BLOCK-MODEL-OPERANDS-RANGE-MODIFIERS"
]
id
PTO-BLOCK-B-ASSEMBLE
mnemonic
B.ASSEMBLE
summary
Decodes one destination-range assemble modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.
surface
block
Open generated traceability record
{
  "classification": [
    "operands"
  ],
  "documentation": "docs/block/operands/B.ASSEMBLE.md",
  "id": "PTO-BLOCK-B-ASSEMBLE",
  "instruction_contract": {
    "artifact": "spec/evidence/instruction-contract-closure.json",
    "mnemonic": "B.ASSEMBLE",
    "ndf_clause": "PTO-INST-BLOCK-B-ASSEMBLE"
  },
  "mnemonic": "B.ASSEMBLE",
  "readiness_subjects": [
    "ADR-0098",
    "ADR-0099"
  ],
  "semantic_tests": [
    "PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001"
  ],
  "source": "asl/block/operands/B.ASSEMBLE.asl",
  "surface": "block",
  "tests": [
    "PTO-AVS-BLOCK-B-ASSEMBLE-DECODE-001",
    "PTO-AVS-BLOCK-B-ASSEMBLE-ENCODING-001"
  ]
}

来源与发布信息

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

精确所有者