操作数与参数
SrcSelect- selects source0 or source1 carrier
RegSrc- absolute GPR selector
uimm11- unsigned XLEN addend
SubviewSizeCode- decoded source tile range size
Decodes one source-range subview modifier and retains its XLEN-wrapped derived offset in the immediately preceding binder group.
PTO-BLOCK-B-SUBVIEWB.SUBVIEW SrcSelect, RegSrc, uimm11, SubviewSizeCode| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
SrcSelect | 1 | encoding-defined | selects source0 or source1 carrier | Zero selects source role zero. |
uimm11 | 11 | unsigned | unsigned XLEN addend | Zero is a real zero displacement. |
RegSrc | 5 | encoding-defined | absolute GPR selector | Zero names the architectural zero GPR. |
SubviewSizeCode | 4 | encoding-defined | decoded source tile range size | Zero is reserved. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| SrcSelect | 31 | variable |
| uimm11 | 30:20 | variable |
| RegSrc | 19:15 | variable |
| Constant | 14:11 | 4'b0000 |
| SubviewSizeCode | 10:7 | variable |
| Constant | 6:0 | 7'b1010011 |
{
"reg": [
{
"bits": 7,
"name": "7'b1010011"
},
{
"bits": 4,
"name": "SubviewSizeCode"
},
{
"bits": 4,
"name": "4'b0000"
},
{
"bits": 5,
"name": "RegSrc"
},
{
"bits": 11,
"name": "uimm11"
},
{
"bits": 1,
"name": "SrcSelect"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}B.SUBVIEW SrcSelect, RegSrc, uimm11, SubviewSizeCode
SrcSelectRegSrcuimm11SubviewSizeCodeDecode 与 Operation 均直接来自指令所有者,并按执行阶段分开显示。
readonly func InstructionContractMatches_B_SUBVIEW(operation: CommandOperation) => booleanbegin return operation == CommandOperation_b_subview_32_122000000001;end;pure func InstructionContractSubviewSizeCodeIsAssigned_B_SUBVIEW(code: integer {0..15}) => booleanbegin return 1 <= code && code <= 12;end;
readonly func InstructionContractHandler_B_SUBVIEW() => CommandSemanticHandlerbegin return CommandHandler_ApplyBundleSubview;end;// PTO-INSTRUCTION: {"assembly":["B.SUBVIEW SrcSelect, RegSrc, uimm11, SubviewSizeCode"],"block":[],"catalog_indices":[74],"catalog_records":[{"asm":"B.SUBVIEW SrcSelect, RegSrc, uimm11, SubviewSizeCode","constraints":[{"field":"SrcSelect","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":"SubviewSizeCode","operator":"one-of","values":[1,2,3,4,5,6,7,8,9,10,11,12]}],"encoding":[{"index":0,"mask":"0x0000787f","match":"0x00000053","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"SrcSelect","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":"SubviewSizeCode","pieces":[{"instruction_lsb":7,"value_lsb":0,"width":4}],"signedness":"encoding-defined","width":4}],"form_id":"b_subview_32_122000000001","length_bits":32,"mnemonic":"B.SUBVIEW","semantic_family":"CMD","semantic_group":"Bundle Range Modifier","semantic_handler":"ApplyBundleSubview","semantic_summary":"Decodes one source-range subview 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.SUBVIEW SrcSelect, RegSrc, uimm11, SubviewSizeCode"],"defaults":["uimm11 is unsigned and zero-extended. RegSrc zero names the architectural zero GPR."],"encoding_class":"standalone-encoded","examples":["B.IOT T0, mask=1111; B.SUBVIEW 0, a0, 0, 1"],"exceptions":["Reserved funct3/bit11/opcode, RegSrc24..31, and SubviewSizeCode0/13..15 raise Fault_IllegalInstruction before GPR reads, carrier updates, or TPC advance.","Missing, reversed, duplicate, intervening, or role-incompatible groups raise Fault_BundleControl before carrier updates."],"field_contracts":{},"field_zero_meanings":{"SrcSelect":"Zero selects source role zero.","uimm11":"Zero is a real zero displacement.","RegSrc":"Zero names the architectural zero GPR.","SubviewSizeCode":"Zero is reserved."},"legality":["RegSrc accepts only absolute GPR selectors 0..23.","SubviewSizeCode accepts 1..12 for both Local and Shared groups.","A modifier is legal only in the contiguous immediately preceding B.IOT/B.IOS group and follows source0, source1, destination role order."],"memory_effects":["none"],"operands":[{"field":"SrcSelect","role":"selects source0 or source1 carrier"},{"field":"RegSrc","role":"absolute GPR selector"},{"field":"uimm11","role":"unsigned XLEN addend"},{"field":"SubviewSizeCode","role":"decoded source tile range size"}],"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 RegSrc/uimm11/size and the derived XLEN offset in the source 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-SUBVIEW","mnemonic":"B.SUBVIEW","summary":"Decodes one source-range subview 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-SUBVIEW-RANGE-001// ndf: kind=contract level=L1 layer=block status=accepted// B.SUBVIEW MUST decode the exact 0x53 form, preserve raw fields and the// XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding// contiguous B.IOT/B.IOS group.// NDF-END: PTO-B-SUBVIEW-RANGE-001// DOC-BEGIN: decodereadonly func InstructionContractMatches_B_SUBVIEW(operation: CommandOperation) => booleanbegin return operation == CommandOperation_b_subview_32_122000000001;end;// DOC-END: decode// DOC-BEGIN: operationpure func InstructionContractSubviewSizeCodeIsAssigned_B_SUBVIEW(code: integer {0..15}) => booleanbegin return 1 <= code && code <= 12;end;
readonly func InstructionContractHandler_B_SUBVIEW() => CommandSemanticHandlerbegin return CommandHandler_ApplyBundleSubview;end;// DOC-END: operation
B.SUBVIEW 是一条 32 位 Block header 命令,用来把一个源 subview 修饰符附加到已打开的 Local 或 Shared 绑定组。它修改待处理 Block 元数据,不会立即执行 Tile body 操作。
该修饰符必须与打开其 carrier 的 B.IOT 或 B.IOS 绑定组保持连续。若中间插入其他命令、顺序反转或重复使用,会在 carrier 状态变化前被拒绝。
该命令把原始选择与范围字段以及派生的 XLEN 偏移记录到已打开的 binder carrier。若 binder 解码后的 PE mask 为零,则只保留一个随后丢弃的语法组,不读取源,也不产生角色影响。
SrcSelect 选择源 carrier 0 或 1;其确切分配域仍以下方生成契约为准。RegSrc 选择具名的绝对 GPR 角色;其确切分配域仍以下方生成契约为准。uimm11 提供编码偏移或加数;其确切分配域仍以下方生成契约为准。SubviewSizeCode 提供 subview 范围大小编码;其确切分配域仍以下方生成契约为准。被接受的 header 命令只改变自己的待处理记录或 carrier。除非本所有者明确指出即时 header 状态更新,否则架构 Tile、Shared、GPR、内存和完成影响都推迟到完整 Block。
保留编码会在读取或待处理状态变化前被拒绝。位置、重复、角色或完成后 schema 不匹配,会在 body 影响前失败。
以下为示例性示例,仅用于说明当前所有者,不替代其定义。
B.IOT SrcTile0, mask=PE_MASK, <last>
B.SUBVIEW 0, RegSrc, uimm11, SubviewSizeCode源形式的 B.IOT 打开一个具有确切 source-zero carrier 的组。紧随其后的 B.SUBVIEW 0 只修饰该源 carrier;它不能与 binder 分离,也不能改为作用于目的 carrier。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
B.SUBVIEW MUST decode the exact 0x53 form, preserve raw fields and the XLEN-wrapped GPR-plus-uimm11 offset, and apply only to its preceding contiguous B.IOT/B.IOS group.
PTO-B-SUBVIEW-RANGE-001asl/block/operands/B.SUBVIEW.aslb0534c4209577c2219191c45aa76fb6170c1bb26544ec89f95b78d504f073c839e9b051af0b50093407ada5cb2859bbf27eb733ddb6dc205de1eee5d250a9ecd15 matching entries
PTO-AVS-BLOCK-ASSEMBLE-PORTABLE-CARRIERS-001tests/asl/block/model/operands/portable-carriers/block-exec-assemble-portable-carriers-001.asl11e59453724fa2271ae8b7528829da24f05d34eabc7fe8d3d2a71ecb2b3ef63fPTO-AVS-BLOCK-B-SUBVIEW-DECODE-001tests/asl/block/operands/B.SUBVIEW/block-decode-b-subview-canonical-001.asl1d61c7c6587fee8f7daa9974fc56a84426f2578842292c70c1dd8ee6b767173bPTO-AVS-BLOCK-B-SUBVIEW-ENCODING-001tests/asl/block/operands/B.SUBVIEW/block-exec-b-subview-001.asl8acbb34ecde853e4efb05584e88aae47f7157611499481ef6cffbeeb3c67e1c3PTO-AVS-BLOCK-RANGE-GROUP-ORDER-001tests/asl/block/model/operands/range-modifiers/block-fault-range-group-order-001.asl8d6507c8048a569186bcca2ddca9e49e38f43538f3705a3544aa690fdd878284PTO-AVS-BLOCK-RANGE-PEMODE-ZERO-001tests/asl/block/model/operands/range-modifiers/block-exec-range-pemode-zero-001.asl97391c16c8e7f937b1a1bb2e06dab80f8c66a2a4aed84f8ccda354b917cb7abfPTO-AVS-BLOCK-SUBVIEW-CUBE-DESCRIPTOR-001tests/asl/block/model/operands/subview-descriptor/block-exec-subview-cube-descriptor-001.asl1c39e0e37eee9c1d48681b747be931b5a2b4a19f8ef52a33bb77da3bbb536671PTO-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-0098…
ADR-0098docs/status/decisions/0098-b-range-modifiers.mde194ccc6b6922fd4b65066b533f5e4b0eba094e099970059bca8e25b4e466fbaLoading ADR-0099…
ADR-0099docs/status/decisions/0099-0583-to-0584-compatibility.mdf130ce243d978a85dc641580d71505a950a34ce1a561402e74946ed6903ad2a0Loading ADR-0106…
ADR-0106docs/status/decisions/0106-shared-source-subview-per-pe.mdccbc429a05b5dc0cf1e810b2062672f3858edba86176fe2408f4a99a3d1137ee{
"classification": [
"operands"
],
"documentation": "docs/block/operands/B.SUBVIEW.md",
"id": "PTO-BLOCK-B-SUBVIEW",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "B.SUBVIEW",
"ndf_clause": "PTO-INST-BLOCK-B-SUBVIEW"
},
"mnemonic": "B.SUBVIEW",
"readiness_subjects": [
"ADR-0098",
"ADR-0099",
"ADR-0106"
],
"semantic_tests": [
"PTO-AVS-BLOCK-B-SUBVIEW-ENCODING-001"
],
"source": "asl/block/operands/B.SUBVIEW.asl",
"surface": "block",
"tests": [
"PTO-AVS-BLOCK-B-SUBVIEW-DECODE-001",
"PTO-AVS-BLOCK-B-SUBVIEW-ENCODING-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd86812b0534c4209577c2219191c45aa76fb6170c1bb26544ec89f95b78d504f073c834cb33a039295792f9c77673878af42b1d4eaa60c949dbe248928191f73086306asl/block/operands/B.SUBVIEW.aslasl/block/operands/B.SUBVIEW.aslasl/block/operands/B.SUBVIEW.asl