操作数与参数
PRED_IMM- fence predecessor access-class mask
SUCC_IMM- fence successor access-class mask
FENCE.D records predecessor/successor ordering masks and invalidates the local reservation.
PTO-SCALAR-FENCE-Dfence.d pred_imm, succ_imm| 字段 | 位宽 | 有符号性 | 架构角色 | 编码零 |
|---|---|---|---|---|
PRED_IMM | 4 | encoding-defined | fence predecessor access-class mask | Encoded zero selects value zero of the fence predecessor access-class mask. |
SUCC_IMM | 4 | encoding-defined | fence successor access-class mask | Encoded zero selects value zero of the fence successor access-class mask. |
Loading WaveDrom diagram… The encoding table and WaveJSON remain available below.
| Decoded item | Bit range | Value |
|---|---|---|
| Constant | 31:28 | 4'b0000 |
| PRED_IMM | 27:24 | variable |
| SUCC_IMM | 23:20 | variable |
| Constant | 19:0 | 20'b00000010000000101011 |
{
"reg": [
{
"bits": 20,
"name": "20'b00000010000000101011"
},
{
"bits": 4,
"name": "SUCC_IMM"
},
{
"bits": 4,
"name": "PRED_IMM"
},
{
"bits": 4,
"name": "4'b0000"
}
],
"config": {
"bits": 32,
"fontsize": 13,
"hspace": 900,
"lanes": 1,
"offset": 0
}
}fence.d pred_imm, succ_imm
PRED_IMMSUCC_IMM下面是该指令所有者中的 Operation;页面没有重写这段行为。
readonly func InstructionContractOperation_FENCE_D() => ScalarOperationbegin return ScalarOperation_FENCE_D;end;readonly func InstructionContractHandler_FENCE_D() => ScalarSemanticHandlerbegin return ScalarHandler_FenceData;end;
pure func InstructionContractRequiresSystemBlock_FENCE_D() => booleanbegin return TRUE;end;
pure func InstructionContractFenceMaskWidth_FENCE_D() => integer {4}begin return 4;end;
pure func InstructionContractFenceInvalidatesReservation_FENCE_D() => booleanbegin return TRUE;end;// PTO-INSTRUCTION: {"assembly":["fence.d pred_imm, succ_imm"],"block":[],"catalog_indices":[96],"catalog_records":[{"asm":"fence.d pred_imm, succ_imm","constraints":[],"encoding":[{"index":0,"mask":"0xf00fffff","match":"0x0000202b","width_bits":32}],"encoding_kind":"L32","fields":[{"name":"PRED_IMM","pieces":[{"instruction_lsb":24,"value_lsb":0,"width":4}],"signedness":"encoding-defined","width":4},{"name":"SUCC_IMM","pieces":[{"instruction_lsb":20,"value_lsb":0,"width":4}],"signedness":"encoding-defined","width":4}],"form_id":"fence_d_32_f4783f17d84d","length_bits":32,"mnemonic":"FENCE.D","semantic_family":"SYS","semantic_group":"SYS","semantic_handler":"FenceData","semantic_summary":"FENCE.D records predecessor/successor ordering masks and invalidates the local reservation.","status":"accepted"}],"classification":["sys"],"contract":{"block_composition":["FENCE.D executes as one scalar operation in the body of an active SYS block."],"canonical_assembly":["fence.d pred_imm, succ_imm"],"defaults":["Every displayed operand is encoded explicitly. Encoded zero is an assigned value and never denotes omission."],"encoding_class":"standalone-encoded","examples":["fence.d pred_imm, succ_imm"],"exceptions":["Invalid block placement raises Illegal Block Exception before encoded-field legality or effects.","A reserved encoding or rejected access raises Illegal Instruction before destination, queue, system-state, or TPC effects."],"field_contracts":{},"field_zero_meanings":{"PRED_IMM":"Encoded zero selects value zero of the fence predecessor access-class mask.","SUCC_IMM":"Encoded zero selects value zero of the fence successor access-class mask."},"legality":["All sixteen values of each four-bit predecessor and successor mask are assigned."],"memory_effects":["none"],"operands":[{"field":"PRED_IMM","role":"fence predecessor access-class mask"},{"field":"SUCC_IMM","role":"fence successor access-class mask"}],"ordering":["Record the exact predecessor and successor masks as one data-fence event.","If either mask carries the instruction-visibility bit, advance the instruction-cache epoch."],"standalone_opcode":true,"state_effects":["Invalidate the local reservation, record both masks, emit the fence event, and advance TPC."]},"depends_on":["PTO-SCALAR-MODEL-SYS-SEMANTICS"],"id":"PTO-SCALAR-FENCE-D","mnemonic":"FENCE.D","summary":"FENCE.D records predecessor/successor ordering masks and invalidates the local reservation.","surface":"scalar"}// PTO-REVIEW: {"review_method":"formal-definition-read","outcome":"FORMAL-COMPLETE","reviewed_fields":["assembly","encoding","defaults","operation","state","memory","ordering","faults","reserved"]}// NDF-BEGIN: PTO-FENCE-D-DECISION-BINDING-001// ndf: kind=contract level=L1 layer=scalar status=accepted// FENCE.D MUST implement the mnemonic-local canonical assembly, encoded// legality, defaults, state and memory effects, ordering, and fault boundaries// declared in this owner. The operation region below is the executable binding// for every accepted decision that names this mnemonic.// NDF-END: PTO-FENCE-D-DECISION-BINDING-001// DOC-BEGIN: decodereadonly func InstructionContractOperation_FENCE_D() => ScalarOperationbegin return ScalarOperation_FENCE_D;end;// DOC-END: decode// DOC-BEGIN: operationreadonly func InstructionContractHandler_FENCE_D() => ScalarSemanticHandlerbegin return ScalarHandler_FenceData;end;
pure func InstructionContractRequiresSystemBlock_FENCE_D() => booleanbegin return TRUE;end;
pure func InstructionContractFenceMaskWidth_FENCE_D() => integer {4}begin return 4;end;
pure func InstructionContractFenceInvalidatesReservation_FENCE_D() => booleanbegin return TRUE;end;// DOC-END: operation
FENCE.D 把前驱与后继访问类别掩码记录为一个数据屏障事件,使本地保留状态失效,并作为活动 SYS 指令束中的一条标量操作完成退役。
PRED_IMM 和 SUCC_IMM 是两个独立的 4 位掩码。指令会把两个精确值都记录到架构屏障状态和发出的屏障事件中。
若任一掩码含有指令可见性位,FENCE.D 还会推进指令缓存纪元。
两个掩码都接受 0 至 15 的全部 16 个编码值。编码零是已分配的全零掩码,并不表示省略操作数。
FENCE.D 没有 Reg5 源和标量目的位置;它的可见结果是排序事件与系统状态更新。
成功执行会使本地保留状态失效,记录两个掩码,为当前内存主体发出一个 acquire-release 屏障事件,并推进 TPC。
指令本身不加载或存储数据内存;它的排序效果由所发出屏障事件中的精确掩码表示。
FENCE.D 仅在活动 SYS 指令束的指令束体(body)中合法。非法放置会在编码字段检查或效果之前引发非法指令束异常(Illegal Block Exception)。
固定编码位不匹配会在保留状态、屏障状态、事件、缓存纪元或 TPC 效果之前引发 Fault_IllegalInstruction。
下面的示例只说明已分配的掩码值,并不替代规范屏障关系。
当两个掩码都为 0 时,FENCE.D 仍会使保留状态失效并发出一个屏障事件,但不会推进指令缓存纪元。当两个掩码都为 15 时,它会记录全一掩码,并因为指令可见性位存在而推进该纪元。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
FENCE.D MUST implement the mnemonic-local canonical assembly, encoded legality, defaults, state and memory effects, ordering, and fault boundaries declared in this owner. The operation region below is the executable binding for every accepted decision that names this mnemonic.
PTO-FENCE-D-DECISION-BINDING-001asl/scalar/sys/FENCE.D.asl465a2dcce31deb1a8cef196dea8478d913b76076555a3e13677761e426bd095c0e0806af02f344846e448d38df4d59399c0e6f32b9ae91a51384336e4531a35014 matching entries
PTO-AVS-SCALAR-FENCE-D-DECODE-001tests/asl/scalar/sys/FENCE.D/scalar-decode-fence-d-canonical-001.aslb21f67d63ecb45518e76174be7fc45a94015667d543b71ea737ddc2958559670PTO-AVS-SYS-FENCE-D-EXEC-001tests/asl/scalar/sys/FENCE.D/scalar-exec-fence-d-direct-001.asl347ff12becebbe6a8c2a088c3a0cbba910e9aad9fb7c49cbb52f105ee785d987PTO-AVS-SYS-FENCE-D-PLACE-001tests/asl/scalar/sys/FENCE.D/scalar-fault-fence-d-place-001.asl33c584104ebb4606d8b1a6012f682c19f98019a6c284904f4352084d17645741PTO-AVS-SYS-FENCE-D-VISIBLE-001tests/asl/scalar/sys/FENCE.D/scalar-order-fence-d-visible-001.asl2f8b4367b854adf27bc2ea954bb0be999c0f8b61789d713a135ae322cf49b452PTO-AVS-SYS-FENCE-D-ZERO-001tests/asl/scalar/sys/FENCE.D/scalar-bound-fence-d-zero-001.asld6a316b07261474fbebf9f9cede7cda3894689194e6044dd98ba1c99fb0b9ce1PTO-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-0018…
ADR-0018docs/status/decisions/0018-pto-v0-trap-disposition.mdce33454ffd2a595425ebece5954c9990ea2b9c4890008ad700599f767d7b9716Loading ADR-0031…
ADR-0031docs/status/decisions/0031-scalar-sys-totality-and-profile-boundaries.md5680b3516be6c28a1ccb198c99f5efb66317c65330f6d87434173024d2795a7dLoading ADR-0059…
ADR-0059docs/status/decisions/0059-mnemonic-field-encoding-closure.mdf18d13f735cfaf9f2803c754c5818f4af33d1cc42c489f0d9ce060b07bb3a196Loading ADR-0084…
ADR-0084docs/status/decisions/0084-scalar-system-and-queue-operations.mde068992fa81e2c4ac46e492391a2f784141d68e041bf0b9e0586c37217d1e08c{
"classification": [
"sys"
],
"documentation": "docs/scalar/sys/FENCE.D.md",
"id": "PTO-SCALAR-FENCE-D",
"instruction_contract": {
"artifact": "spec/evidence/instruction-contract-closure.json",
"mnemonic": "FENCE.D",
"ndf_clause": "PTO-INST-SCALAR-FENCE-D"
},
"mnemonic": "FENCE.D",
"readiness_subjects": [
"ADR-0018",
"ADR-0031",
"ADR-0059",
"ADR-0084"
],
"semantic_tests": [
"PTO-AVS-SYS-FENCE-D-EXEC-001",
"PTO-AVS-SYS-FENCE-D-PLACE-001",
"PTO-AVS-SYS-FENCE-D-VISIBLE-001",
"PTO-AVS-SYS-FENCE-D-ZERO-001"
],
"source": "asl/scalar/sys/FENCE.D.asl",
"surface": "scalar",
"tests": [
"PTO-AVS-SCALAR-FENCE-D-DECODE-001",
"PTO-AVS-SYS-FENCE-D-EXEC-001",
"PTO-AVS-SYS-FENCE-D-PLACE-001",
"PTO-AVS-SYS-FENCE-D-VISIBLE-001",
"PTO-AVS-SYS-FENCE-D-ZERO-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd86812465a2dcce31deb1a8cef196dea8478d913b76076555a3e13677761e426bd095c1568c582cce6a78bb46ca58ae31829410dd510445c14bb287fde2adf6d51e84fasl/scalar/sys/FENCE.D.aslasl/scalar/sys/FENCE.D.aslasl/scalar/sys/FENCE.D.asl