操作数与参数
DataType- tile element data type selector
Starts CUBE Function 2 for the TMATMUL_ACC Matrix-matrix complete-bundle operation.
PTO-BLOCK-BSTART-TMATMUL-ACCBSTART.TMATMUL.ACC DataType| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
DataType | 5 | encoding-defined | tile element data type selector | Encoded zero selects FP64. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| DataType | 31:27 | variable |
| Constant | 26:0 | 27'b000001000110001000110000001 |
{
"reg": [
{
"bits": 27,
"name": "27'b000001000110001000110000001"
},
{
"bits": 5,
"name": "DataType"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}BSTART.TMATMUL.ACC DataType
DataTypeDecode 与 Operation 均直接来自指令所有者,并按执行阶段分开显示。
readonly func InstructionContractMatches_BSTART_TMATMUL_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tmatmul_acc_32_0c8c62e5f00a;end;readonly func InstructionContractTileOperation_BSTART_TMATMUL_ACC() => TileOperationbegin return TileOperation_TMATMUL_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TMATMUL_ACC() => integer {0..31}begin return 2;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TMATMUL_ACC() => booleanbegin return TRUE;end;
readonly func InstructionContractHandler_BSTART_TMATMUL_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// PTO-INSTRUCTION: {"assembly":["BSTART.TMATMUL.ACC DataType"],"block":[],"catalog_indices":[42],"catalog_records":[{"asm":"BSTART.TMATMUL.ACC DataType","constraints":[{"field":"DataType","operator":"one-of","values":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19,20,24,25,26,27,28]}],"encoding":[{"index":0,"mask":"0x07ffffff","match":"0x00231181","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"DataType","pieces":[{"instruction_lsb":27,"value_lsb":0,"width":5}],"signedness":"encoding-defined","width":5}],"form_id":"bstart_tmatmul_acc_32_0c8c62e5f00a","length_bits":32,"mnemonic":"BSTART.TMATMUL.ACC","semantic_family":"CMD","semantic_group":"Bundle Split","semantic_handler":"ExecuteBundleStart","semantic_summary":"Starts CUBE Function 2 for the TMATMUL_ACC Matrix-matrix complete-bundle operation.","status":"accepted"}],"classification":["execution"],"contract":{"block_composition":["BSTART.TMATMUL.ACC AType","B.DATR BType, RMode, Sat (optional; BType defaults to AType)","B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one)","B.DIM LB0 M or cooperative group_M (optional, default 1)","B.DIM LB1 N (optional, default 1)","B.DIM LB2 K (optional, default 1)","B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111)","B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, B CUBE_N8 primary, optional U8 CScale CUBE_M32 [M,1]","B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations","B.IOT/B.IOR postprocess operands selected by B.FPATR","BSTOP or the next BSTART completion boundary"],"canonical_assembly":["BSTART.TMATMUL.ACC DataType"],"defaults":["Encoded DataType is always AType. Omitted B.DATR preserves AType as BType, selects RNE, and disables saturation.","Omitted LB0 defaults Local M or cooperative group_M to one; omitted LB1 and LB2 default N and K to one.","Exactly one all-zero B.FPATR selects no conversion, activation, or reduction; B.IOR and auxiliary B.IOT operands exist only when a selected postprocess mode requires them.","Local A uses persistent CUBE_M16 or CUBE_M32, Local B uses persistent CUBE_N8, and D is newly allocated in A's M layout; Local C also uses A's M layout. M, N, and K are arbitrary positive values independent of per-PE TSize.","TransA=0 and TransB=0 select no logical transpose. Each nonzero control is legal only when the corresponding primary is Shared.","C and D are both mandatory. CScaleEn accepts one final U8 CUBE_M32 [M,1] Local mathematical source only with FP32 C; omission defaults CScaleEn to zero. In decoded blocks C's six-bit relative selector must differ from zero-extended DstTile before rename; direct Tile calls require destination TileIndex to differ from accumulator TileIndex."],"encoding_class":"standalone-encoded","examples":["BSTART.TMATMUL.ACC AType; B.DATR BType, RMode, Sat (optional; BType defaults to AType); B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one); B.DIM LB0 M or cooperative group_M (optional, default 1); B.DIM LB1 N (optional, default 1); B.DIM LB2 K (optional, default 1); B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111); B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, B CUBE_N8 primary; B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations; B.IOT/B.IOR postprocess operands selected by B.FPATR; BSTOP or the next BSTART completion boundary"],"exceptions":["A reserved DataType or fixed-bit mismatch raises Fault_IllegalInstruction before block state changes.","Missing, duplicate, or non-Matrix B.FPATR use raises Fault_BundleControl before allocation or payload effects.","Illegal types, dimensions, masks, binding streams, descriptors, shapes, capacities, aliases, readiness, or postprocess values raise Fault_TileLegality before source snapshots and effects."],"field_contracts":{"DataType":{"ref":"PTO-FIELD-BLOCK-DATATYPE"}},"field_zero_meanings":{"DataType":"Encoded zero selects FP64."},"legality":["The carrier selects exactly CUBE Function 2 and TileOperation_TMATMUL_ACC.","Local A uses persistent CUBE_M16 or CUBE_M32, Local B uses persistent CUBE_N8, and D is newly allocated in A's M layout; Local C also uses A's M layout. M, N, and K are arbitrary positive values independent of per-PE TSize.","C and D are both mandatory. CScaleEn accepts one final U8 CUBE_M32 [M,1] Local mathematical source only with FP32 C; omission defaults CScaleEn to zero. In decoded blocks C's six-bit relative selector must differ from zero-extended DstTile before rename; direct Tile calls require destination TileIndex to differ from accumulator TileIndex.","A Shared primary must satisfy hardware-maintained whole-parent readiness and publication before payload access; fixed-quarter allocation or initialization masks are not a prerequisite. Any cooperative Local-A/Shared-B or Shared-A/Shared-B TMATMUL interprets LB0 as Core-total group_M in 1..128; Shared A has shape group_MxK, Shared B has shape KxN, and PE i uses valid_M=clamp(group_M-i*M_per_PE,0,M_per_PE) with M_per_PE 16 for group_M<=64 and 32 for group_M>=65. TransA and TransB apply only to their corresponding Shared primary. Right-only Shared inherits Local A layout; all-Shared ACC inherits C layout; all-Shared non-ACC selects M16 through M=16 and M32 through M=32.","AType and BType must be supported ordinary Matrix types from one numeric class. C is one explicit Local MxN accumulator source and D is a distinct newly published destination; C's encoded relative selector and D's zero-extended DstTile hand must differ before rename. Published Shared operands may replace the right group or both matrix groups; supplementary operands and destinations remain Local.","Every cooperative nonzero PE_MASK must be 1111; all four PEs complete Shared readiness, while zero-row PEs suppress every compute-only Local resolution and effect. Mask zero is a strict no-op before descriptor reads, faults, allocation, readiness checks, or lifetime effects.","B.DATR permits only BType, RMode, and Sat. Exactly one B.FPATR is mandatory and closes the conditional postprocess schema."],"memory_effects":["none"],"operands":[{"field":"DataType","role":"tile element data type selector"}],"ordering":["Complete schema, field, type, dimension, descriptor, shape, capacity, readiness, alias, and allocation preflight precedes every source snapshot and destination effect.","D and every enabled reduction output publish as one atomic group; rejection publishes none and successful sources persist."],"standalone_opcode":true,"state_effects":["Start a CUBE Function 2 descriptor with encoded DataType preserved as AType.","At block completion execute TileOperation_TMATMUL_ACC using the resolved M, N, K, input types, mathematical operands, and B.FPATR postprocess schema.","Publish the complete output group atomically after successful preflight and computation; do not consume mathematical or postprocess sources.","For Local execution, publish D with A's CUBE_M16 or CUBE_M32 layout and final output dtype; ordinary Bias, MX scales, and enabled reduction auxiliaries keep their operation-owned layouts.","Successful Shared primary reads leave every Shared descriptor, mask, publication state, payload, and lifetime unchanged.","C is snapshotted before multiplication and remains descriptor-and-payload unchanged after success or rejection."]},"depends_on":["PTO-BLOCK-MODEL-SCHEMA-PROFILE-ENCODING"],"id":"PTO-BLOCK-BSTART-TMATMUL-ACC","mnemonic":"BSTART.TMATMUL.ACC","summary":"Starts CUBE Function 2 for the TMATMUL_ACC Matrix-matrix complete-bundle operation.","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-BSTART-TMATMUL-ACC-CONTRACT-001// ndf: kind=contract level=L1 layer=block status=accepted// BSTART.TMATMUL.ACC MUST select CUBE Function 2 and TileOperation_TMATMUL_ACC.// Its encoded DataType is AType; omitted B.DATR MUST preserve AType as// BType, omitted LB0/LB1/LB2 MUST default M/N/K independently to one,// Local M, N, and K MUST be positive per-PE dimensions independent of TSize;// cooperative LB0 MUST be Core-total group_M.// For every cooperative Shared-input TMATMUL, LB0 MUST be Core-total group_M;// Shared A MUST have shape group_MxK and Shared B MUST have shape KxN.// AType and BType must be supported ordinary Matrix types from one numeric// class. C is one explicit Local MxN accumulator source and D is a newly// published destination; C and D may use one architectural Tile name.// Published Shared operands may replace the right group or both matrix groups;// supplementary operands and destinations remain Local.// Shared primaries MUST be fully published and ready in all four fixed quarters.// TransA/TransB MUST apply only to the corresponding Shared primary. Every// cooperative nonzero PE mask MUST be 1111; zero-row PEs MUST have no Local effect.// C and D MUST both be explicit; direct Tile calls MUST also use different// destination and accumulator TileIndex values. C MUST persist unchanged.// Exactly one B.FPATR MUST close postprocess defaults and operands.// Complete schema, type, shape, capacity, definedness, readiness, alias,// and allocation preflight MUST precede source snapshots and effects;// successful outputs MUST publish atomically and sources MUST persist.// NDF-END: PTO-BSTART-TMATMUL-ACC-CONTRACT-001
// DOC-BEGIN: decodereadonly func InstructionContractMatches_BSTART_TMATMUL_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tmatmul_acc_32_0c8c62e5f00a;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractTileOperation_BSTART_TMATMUL_ACC() => TileOperationbegin return TileOperation_TMATMUL_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TMATMUL_ACC() => integer {0..31}begin return 2;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TMATMUL_ACC() => booleanbegin return TRUE;end;
readonly func InstructionContractHandler_BSTART_TMATMUL_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// DOC-END: operation
BSTART.TMATMUL.ACC 打开一个活动 Block 描述符,其操作为 TileOperation_TMATMUL_ACC;Block 体在完成前提供所需属性与绑定。
BSTART.TMATMUL.ACC 必须位于所属 Block 的起始位置。后续属性、维度与绑定会累积到活动描述符中,直到 BSTOP 或下一条已接受的 BSTART 完成边界。
已接受载体使用 L32 编码类别;命令在读取绑定或改变状态前,会先解析所有显示字段。
完成时,只有模式、类型、维度、描述符、就绪状态、别名和容量预检全部成功,描述符才会执行 TileOperation_TMATMUL_ACC。
DataType — Tile 元素数据类型选择器。BSTART.TMATMUL.ACC, B.DATR, B.FPATR, B.DIM, B.IOS, B.IOT, B.IOT/B.IOR 补全;省略可选载体时,只采用本归属单元明确规定的默认值。启动 Block 会记录所选载体,并把操作执行推迟到完成边界。
完成全部预检与计算后,所有启用输出按归属单元规定的原子组发布;除非契约明确消费,成功执行后的数学源仍保持可用。
固定比特、保留值、选择器取值域与必需的 Block 放置关系都在架构效果之前检查。
当前归属单元通过 Fault_BundleControl, Fault_IllegalInstruction, Fault_TileLegality 报告无效模式、状态、地址或后继条件;本页说明文字不创建额外故障规则。
完整模式、绑定、就绪状态、别名、容量与分配预检发生在源快照和所有目的端发布之前。
该示例只演示放置关系与载体流;精确行为仍由当前 ASL 和指令契约定义。
BSTART.TMATMUL.ACC AType; B.DATR BType, RMode, Sat (optional; BType defaults to AType); B.FPATR PreQuantMode, ReluMode, GroupNCode, RowMaxEn, GroupMaxEn, RowMaxInit, MaxAbsEn, TransA, TransB, CScaleEn (exactly one); B.DIM LB0 M or cooperative group_M (optional, default 1); B.DIM LB1 N (optional, default 1); B.DIM LB2 K (optional, default 1); B.IOS complete right or both matrix operand groups (optional; cooperative mask 1111); B.IOT ordered Local mathematical sources: C CUBE_M16/M32 accumulator matching A with encoded selector distinct from DstTile, A CUBE_M16/M32 primary, B CUBE_N8 primary; B.IOT D matching A's CUBE_M16/M32 layout with a distinct encoded destination index, optional RowMaxOut, optional GroupMaxOut destinations; B.IOT/B.IOR postprocess operands selected by B.FPATR; BSTOP or the next BSTART completion boundary起始指令先建立描述符;后续载体按声明模式补充内容,最终完成边界触发验证与操作执行。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
BSTART.TMATMUL.ACC MUST select CUBE Function 2 and TileOperation_TMATMUL_ACC. Its encoded DataType is AType; omitted B.DATR MUST preserve AType as BType, omitted LB0/LB1/LB2 MUST default M/N/K independently to one, Local M, N, and K MUST be positive per-PE dimensions independent of TSize; cooperative LB0 MUST be Core-total group_M. For every cooperative Shared-input TMATMUL, LB0 MUST be Core-total group_M; Shared A MUST have shape group_MxK and Shared B MUST have shape KxN. AType and BType must be supported ordinary Matrix types from one numeric class. C is one explicit Local MxN accumulator source and D is a newly published destination; C and D may use one architectural Tile name. Published Shared operands may replace the right group or both matrix groups; supplementary operands and destinations remain Local. Shared primaries MUST be fully published and ready in all four fixed quarters. TransA/TransB MUST apply only to the corresponding Shared primary. Every cooperative nonzero PE mask MUST be 1111; zero-row PEs MUST have no Local effect. C and D MUST both be explicit; direct Tile calls MUST also use different destination and accumulator TileIndex values. C MUST persist unchanged. Exactly one B.FPATR MUST close postprocess defaults and operands. Complete schema, type, shape, capacity, definedness, readiness, alias, and allocation preflight MUST precede source snapshots and effects; successful outputs MUST publish atomically and sources MUST persist.
PTO-BSTART-TMATMUL-ACC-CONTRACT-001asl/block/execution/BSTART.TMATMUL.ACC.asl5a84b964e23212b05de6ad972125b78319c2500719ce685e9fe5fd2c91af7251bf3eca0bf99005bbf25c5c2d4a6367d9c8a17223f6ff1b809113a7ce2fbe8b4718 matching entries
PTO-AVS-BLOCK-BSTART-TMATMUL-ACC-DECODE-001tests/asl/block/execution/BSTART.TMATMUL.ACC/block-decode-bstart-tmatmul-acc-canonical-001.aslcaf147a0bffd79a19d143ed6d4382b2b076c387eef49c940d4364ae46f472e46PTO-AVS-BLOCK-TMATMUL-ACC-EXEC-001tests/asl/block/execution/BSTART.TMATMUL.ACC/block-exec-bstart-tmatmul-acc-add-001.asl8e2400bcab379a1fab921d36d054c10f9d8d3ee7d44e8c9f0791431ea06279d0PTO-EVIDENCE-RELEASE-TRACEABILITYPTO-EVIDENCE-RELEASE-TRACEABILITYspec/evidence/release-traceability-readiness.jsonc7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3ePTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSUREspec/evidence/instruction-contract-closure.json3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106aPTO-EVIDENCE-ARCHITECTURE-READINESSPTO-EVIDENCE-ARCHITECTURE-READINESSspec/evidence/architecture-readiness.json4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004PTO-EVIDENCE-RELEASE-GATE-READINESSPTO-EVIDENCE-RELEASE-GATE-READINESSspec/evidence/release-gate-readiness.jsona0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0PTO-EVIDENCE-RELEASE-MANIFESTPTO-EVIDENCE-RELEASE-MANIFESTspec/release-manifest.json1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8Loading ADR-0032…
ADR-0032docs/status/decisions/0032-bundle-command-totality-and-profile-boundaries.mde1f91826817343c0977a565a91e495a15397b83fa2af227124f225821ffa54aeLoading ADR-0034…
ADR-0034docs/status/decisions/0034-cube-raw-carrier-totality.md6e773942b46c7352eaba729ccd056548ec2e6379fbf8790eaf366571c968f814Loading ADR-0052…
ADR-0052docs/status/decisions/0052-direct-tile-and-bundle-catalog-closure.md5fdb38bf480e37affe5075f93b35a57d32803018c986bfe05160f188a19ccaf6Loading ADR-0055…
ADR-0055docs/status/decisions/0055-complete-bundle-bior-schema-and-defaults.mdd84224ee1980cb16a6c4efb6ce3c5c2649d5db27002e7e6429850da189a2cdffLoading ADR-0059…
ADR-0059docs/status/decisions/0059-mnemonic-field-encoding-closure.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196Loading ADR-0065…
ADR-0065docs/status/decisions/0065-cube-matrix-family-contract.mdd1f50e2bdf78a0fb447af2f3213400463cc8b4fe4676c7282b67da77c4721fecLoading ADR-0071…
ADR-0071docs/status/decisions/0071-local-cube-matrix-operands.mdc9c58c246498edab99aff612c6d645774e07f942e37fb92b14245e8aecbe8368Loading ADR-0072…
ADR-0072docs/status/decisions/0072-cooperative-shared-cube-transpose.md9bc7340fea777ee543d4b9393f8f6002b55106833e55ff6d388f8beac504dd09Loading ADR-0073…
ADR-0073docs/status/decisions/0073-cube-accumulator-atomic-output.mdd63ba89014fe901b5055fc38bbd5578aa1b571c1038321a903f20cc6e9756fefLoading ADR-0079…
ADR-0079docs/status/decisions/0079-cube-and-matrix-operations.md71b54321ddf5d233ef470083965e269778c57d5ef3d01859659aba7e2ab40863Loading ADR-0108…
ADR-0108docs/status/decisions/0108-0584-1-to-0585-compatibility.md5689fa78a7291b6ae88d55197205e4cf79e9719ee5ba18ebf186f5c6871c350d{
"classification": [
"execution"
],
"documentation": "docs/block/execution/BSTART.TMATMUL.ACC.md",
"id": "PTO-BLOCK-BSTART-TMATMUL-ACC",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "BSTART.TMATMUL.ACC",
"ndf_clause": "PTO-INST-BLOCK-BSTART-TMATMUL-ACC"
},
"mnemonic": "BSTART.TMATMUL.ACC",
"readiness_subjects": [
"ADR-0032",
"ADR-0034",
"ADR-0052",
"ADR-0055",
"ADR-0059",
"ADR-0065",
"ADR-0071",
"ADR-0072",
"ADR-0073",
"ADR-0079",
"ADR-0108"
],
"semantic_tests": [
"PTO-AVS-BLOCK-TMATMUL-ACC-EXEC-001"
],
"source": "asl/block/execution/BSTART.TMATMUL.ACC.asl",
"surface": "block",
"tests": [
"PTO-AVS-BLOCK-BSTART-TMATMUL-ACC-DECODE-001",
"PTO-AVS-BLOCK-TMATMUL-ACC-EXEC-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd868125a84b964e23212b05de6ad972125b78319c2500719ce685e9fe5fd2c91af72514dee66d7cd7b269a5c430d3f7df71052a1b348a99aebc7d05d65057db67957d1asl/block/execution/BSTART.TMATMUL.ACC.aslasl/block/execution/BSTART.TMATMUL.ACC.aslasl/block/execution/BSTART.TMATMUL.ACC.asl