Operands and parameters
DataType- tile element data type selector
Starts CUBE Function 18 for the TGEMV_ACC M=1 Matrix-vector complete-bundle operation.
PTO-BLOCK-BSTART-TGEMV-ACCBSTART.TGEMV.ACC DataType| Field | Bits | Signedness | Architectural role | Encoded zero |
|---|---|---|---|---|
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'b001001000110001000110000001 |
{
"reg": [
{
"bits": 27,
"name": "27'b001001000110001000110000001"
},
{
"bits": 5,
"name": "DataType"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}BSTART.TGEMV.ACC DataType
DataTypeDecode and Operation come directly from the instruction owner and remain separated by execution phase.
readonly func InstructionContractMatches_BSTART_TGEMV_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tgemv_acc_32_9a471b21913e;end;readonly func InstructionContractTileOperation_BSTART_TGEMV_ACC() => TileOperationbegin return TileOperation_TGEMV_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TGEMV_ACC() => integer {0..31}begin return 18;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TGEMV_ACC() => booleanbegin return FALSE;end;
readonly func InstructionContractHandler_BSTART_TGEMV_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// PTO-INSTRUCTION: {"assembly":["BSTART.TGEMV.ACC DataType"],"block":[],"catalog_indices":[35],"catalog_records":[{"asm":"BSTART.TGEMV.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":"0x01231181","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_tgemv_acc_32_9a471b21913e","length_bits":32,"mnemonic":"BSTART.TGEMV.ACC","semantic_family":"CMD","semantic_group":"Bundle Split","semantic_handler":"ExecuteBundleStart","semantic_summary":"Starts CUBE Function 18 for the TGEMV_ACC M=1 Matrix-vector complete-bundle operation.","status":"accepted"}],"classification":["execution"],"contract":{"block_composition":["BSTART.TGEMV.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 (optional, default 1; TGEMV permits only M=1)","B.DIM LB1 N (optional, default 1)","B.DIM LB2 K (optional, default 1)","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"],"canonical_assembly":["BSTART.TGEMV.ACC DataType"],"defaults":["Encoded DataType is always AType. Omitted B.DATR preserves AType as BType, selects RNE, and disables saturation.","Omitted LB0, LB1, and LB2 default M, N, and K independently to one; TGEMV fixes M 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 is fixed to one; N and K are arbitrary positive values independent of per-PE TSize.","TransA=0 and TransB=0 select no logical transpose. TGEMV requires both controls to remain zero.","C and D are both mandatory. 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.TGEMV.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 (optional, default 1; TGEMV permits only M=1); B.DIM LB1 N (optional, default 1); B.DIM LB2 K (optional, default 1); 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 18 and TileOperation_TGEMV_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 is fixed to one; N and K are arbitrary positive values independent of per-PE TSize.","C and D are both mandatory. 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.","TGEMV is Local-only: TransA and TransB are zero and every effective Shared binding rejects before effects.","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. M is fixed to one and every Shared binding is illegal.","Every common nonzero four-bit PE_MASK is legal; all four PEs complete cooperative Shared readiness while only selected PEs allocate and publish. 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 18 descriptor with encoded DataType preserved as AType.","At block completion execute TileOperation_TGEMV_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.","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-TGEMV-ACC","mnemonic":"BSTART.TGEMV.ACC","summary":"Starts CUBE Function 18 for the TGEMV_ACC M=1 Matrix-vector 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-TGEMV-ACC-CONTRACT-001// ndf: kind=contract level=L1 layer=block status=accepted// BSTART.TGEMV.ACC MUST select CUBE Function 18 and TileOperation_TGEMV_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 N and K MUST be positive and independent of per-PE TSize; M// MUST equal one.// 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. M is// fixed to one and every Shared binding is illegal.// TransA and TransB MUST remain zero and every Shared binding MUST reject.// Every common nonzero Local PE mask is legal; mask zero is a strict no-op.// 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-TGEMV-ACC-CONTRACT-001
// DOC-BEGIN: decodereadonly func InstructionContractMatches_BSTART_TGEMV_ACC( operation: CommandOperation) => booleanbegin return operation == CommandOperation_bstart_tgemv_acc_32_9a471b21913e;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractTileOperation_BSTART_TGEMV_ACC() => TileOperationbegin return TileOperation_TGEMV_ACC;end;
readonly func InstructionContractCubeFunction_BSTART_TGEMV_ACC() => integer {0..31}begin return 18;end;
readonly func InstructionContractSharedOperandsAllowed_BSTART_TGEMV_ACC() => booleanbegin return FALSE;end;
readonly func InstructionContractHandler_BSTART_TGEMV_ACC() => CommandSemanticHandlerbegin return CommandHandler_ExecuteBundleStart;end;// DOC-END: operation
BSTART.TGEMV.ACC is a 32-bit block-start command for the TGEMV.ACC form. It establishes the pending block identity and selectors; the completed block, not the start command alone, owns body execution and result commitment.
Header commands execute sequentially after the start, while BSTOP or the next BSTART is the boundary that validates and retires the completed block. The current owner gives this exact composition checklist:
BSTART.TGEMV.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 (optional, default 1; TGEMV permits only M=1)
B.DIM LB1 N (optional, default 1)
B.DIM LB2 K (optional, default 1)
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 boundaryAfter any active predecessor is retired successfully, the command initializes the new pending BARG or operation descriptor and continues header execution at the sequential PC. No block destination or memory result becomes visible merely because the start decoded.
DataType selects the element data type or inheritance sentinel; its exact assigned domain remains in the generated contract below.The start transition is all-or-nothing with predecessor retirement for applicability and target checks. After the start succeeds, the later completion boundary validates the full composition before any body result can commit.
Reserved selectors, invalid targets, malformed completed composition, or failed predecessor retirement are rejected before new-block or body effects.
This worked example is illustrative; it illustrates the current owner without replacing it.
BSTART.TGEMV.ACC DataTypeAssume predecessor retirement and target checks succeed. BSTART.TGEMV.ACC DataType opens the pending BSTART.TGEMV.ACC form; subsequent header/body commands remain provisional until BSTOP or the next BSTART validates the complete composition.
Bodies come from owning ASL. Dragging or buttons change only this page-session view order.
BSTART.TGEMV.ACC MUST select CUBE Function 18 and TileOperation_TGEMV_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 N and K MUST be positive and independent of per-PE TSize; M MUST equal one. 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. M is fixed to one and every Shared binding is illegal. TransA and TransB MUST remain zero and every Shared binding MUST reject. Every common nonzero Local PE mask is legal; mask zero is a strict no-op. 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-TGEMV-ACC-CONTRACT-001asl/block/execution/BSTART.TGEMV.ACC.aslc7a857de62772223e0383b14e439e87208b77c28c62a746ae09f7fb5d21e84063b81c355974c601c57ce3839a12b2b568f9ee45514c0c8cd1703ff623434f6cb17 matching entries
PTO-AVS-BLOCK-BSTART-TGEMV-ACC-DECODE-001tests/asl/block/execution/BSTART.TGEMV.ACC/block-decode-bstart-tgemv-acc-canonical-001.asl06c333a3b5ccb007ea6b33acce77fdbe71f1ee9db98f9795ae2fe90d26115909PTO-AVS-BLOCK-TGEMV-ACC-EXEC-001tests/asl/block/execution/BSTART.TGEMV.ACC/block-exec-bstart-tgemv-acc-add-001.asl7b07e430e993dd9e61a9c876920fcc09f01b177a98b933c1f0d4e4bf9acda07dPTO-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.md71b54321ddf5d233ef470083965e269778c57d5ef3d01859659aba7e2ab40863{
"classification": [
"execution"
],
"documentation": "docs/block/execution/BSTART.TGEMV.ACC.md",
"id": "PTO-BLOCK-BSTART-TGEMV-ACC",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "BSTART.TGEMV.ACC",
"ndf_clause": "PTO-INST-BLOCK-BSTART-TGEMV-ACC"
},
"mnemonic": "BSTART.TGEMV.ACC",
"readiness_subjects": [
"ADR-0032",
"ADR-0034",
"ADR-0052",
"ADR-0055",
"ADR-0059",
"ADR-0065",
"ADR-0071",
"ADR-0072",
"ADR-0073",
"ADR-0079"
],
"semantic_tests": [
"PTO-AVS-BLOCK-TGEMV-ACC-EXEC-001"
],
"source": "asl/block/execution/BSTART.TGEMV.ACC.asl",
"surface": "block",
"tests": [
"PTO-AVS-BLOCK-BSTART-TGEMV-ACC-DECODE-001",
"PTO-AVS-BLOCK-TGEMV-ACC-EXEC-001"
]
}0.58.5 · Release candidate7dc8b7e5b121d2b2499a2273bebff29e2cd86812c7a857de62772223e0383b14e439e87208b77c28c62a746ae09f7fb5d21e84064f79b245d711e012a48220ef87ec565daf88e445054dca2294c742bf685a489dasl/block/execution/BSTART.TGEMV.ACC.aslasl/block/execution/BSTART.TGEMV.ACC.aslasl/block/execution/BSTART.TGEMV.ACC.asl