目的与范围
用途与范围
本单元定义谓词寄存器状态的读写行为,并记录当前是否有任何指令编码消费 P0 到 P7。
PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS下面直接显示完整的 ASL 所有者。
// PTO-UNIT: {"id":"PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS","surface":"arch","classification":["programming-model","predicate-registers"],"depends_on":["PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT"]}readonly func ReadPredicateRegister(index: PredicateIndex) => PredicateWordbegin return if index == 0 then Ones{PTO_PREDICATE_WIDTH} else _PredicateRegisters[[index]];end;
func WritePredicateRegister(index: PredicateIndex, value: PredicateWord)begin if index != 0 then _PredicateRegisters[[index]] = value; end;end;
pure func PredicateRegisterHasInstructionConsumer(index: PredicateIndex) => booleanbegin // PTO has no instruction encoding that consumes P0..P7. return FALSE;end;
本单元定义谓词寄存器状态的读写行为,并记录当前是否有任何指令编码消费 P0 到 P7。
ReadPredicateRegister 对谓词寄存器索引 0 返回全一。其他索引从 _PredicateRegisters 中读取所存元素。
WritePredicateRegister 只在索引不为 0 时存储值。
读写规则共同使 P0 成为恒定的全一谓词:写 P0 不产生状态效果,读 P0 也不依赖后备数组。
PredicateRegisterHasInstructionConsumer 对所有谓词索引都返回 FALSE,因为当前 PTO 指令编码没有 P0 到 P7 的消费者。
没有指令消费者是本所有者中的编码陈述。消费者查询不会改变 ReadPredicateRegister 和 WritePredicateRegister 定义的读写行为。
如果测试向 P0 写入非零模式后再读取 P0,读取结果仍是全一 PredicateWord。把同样的值写入 P1 后,则可以从 P1 读回。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
No NDF clause is attached to this unit.
11 matching entries
PTO-AVS-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS-STATIC-001tests/asl/arch/programming-model/predicate-registers/arch-static-predicate-registers-contract-001.asl1cea82905b03908ba079c7f5864eafdcc5b69b98912e65cc7abf5f3a2748ac4cPTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001tests/asl/arch/programming-model/predicate-registers/arch-state-predicate-contract-001.aslbb0a8726234ed49cf85ca275bf89d1cfcb8382ddeebc2586aebc8e145c8be6b2PTO-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-0008…
ADR-0008docs/status/decisions/0008-architectural-state-contract.md9c33e1b57d0f04c4d808ee61aaf975187a3dbd32a071329ca65a916dc0e614caLoading ADR-0019…
ADR-0019docs/status/decisions/0019-predicate-register-contract.mdbd4ea338a30ff01ae34a273c900d74685b338e686ec3cad6438550f7c70ce342Loading ADR-0046…
ADR-0046docs/status/decisions/0046-separate-execution-mask-and-warp-predicates.md1f66cc380fe9ef77c95539485910ac21c862c0968fcf4fe67be43b3f1472c279Loading ADR-0051…
ADR-0051docs/status/decisions/0051-predicate-state-namespace-boundary.mdf6291cbe4fbe46ae84e59bb0275fa943ce51888229d8dff4ff3347c57159f337{
"classification": [
"programming-model",
"predicate-registers"
],
"documentation": "docs/arch/programming-model/predicate-registers.md",
"id": "PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0008"
],
"semantic_tests": [
"PTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001"
],
"source": "asl/arch/programming-model/predicate-registers.asl",
"surface": "arch",
"tests": [
"PTO-AVS-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS-STATIC-001",
"PTO-AVS-ARCH-TESTPREDICATESTATECONTRACT-STATE-TRANSITION-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd8681210cfd70a5e5caf277c5abbb3976574946b01be2cbe0cd08ce141cf4bde716968f60a6784494b69e1e62d938af5553dd3e2d503eb017cc61634b5b4446db2bf80asl/arch/programming-model/predicate-registers.asl