目的与范围
用途与范围
本单元定义当前内存代理以及显式选择的 PE 的标量 GPR 读写行为。
PTO-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS下面直接显示完整的 ASL 所有者。
// PTO-UNIT: {"id":"PTO-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS","surface":"arch","classification":["programming-model","scalar-registers"],"depends_on":["PTO-ARCH-SYSTEM-REGISTERS-INTERRUPT"]}readonly func ReadGPR(index: GPRIndex) => Wordbegin return ReadPEGPR(_CurrentMemoryAgent, index);end;
readonly func ReadPEGPR(pe: MemoryAgentId, index: GPRIndex) => Wordbegin if index == 0 then return Zeros{PTO_XLEN}; else return _PEGPRs[[pe]][[index]]; end;end;
func WriteGPR(index: GPRIndex, value: Word)begin WritePEGPR(_CurrentMemoryAgent, index, value);end;
func WritePEGPR(pe: MemoryAgentId, index: GPRIndex, value: Word)begin if index != 0 then _PEGPRs[[pe]][[index]] = value; end;end;
本单元定义当前内存代理以及显式选择的 PE 的标量 GPR 读写行为。
ReadGPR 和 WriteGPR 使用 _CurrentMemoryAgent 委托给 ReadPEGPR 和 WritePEGPR。每 PE 辅助函数同时用选定的内存代理标识和 GPR 索引访问 _PEGPRs。
每个 PE 的 GPR 索引 0 都读作 Zeros{PTO_XLEN}。写索引 0 不产生状态效果。
对于每个非零索引,读取返回所选 _PEGPRs 条目,写入则用给定 Word 替换同一条目。
当前代理包装函数不会把一次写入广播到多个 PE。它们只选择 _CurrentMemoryAgent;显式跨 PE 检查或更新需要使用每 PE 辅助函数。
假设当前内存代理是 PE1。用 WriteGPR 向非零索引写值,会改变 PE1 对应的 _PEGPRs 元素;通过 ReadPEGPR 读取 PE0 的同一索引则是另一次状态查找。
正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。
No NDF clause is attached to this unit.
10 matching entries
PTO-AVS-ARCH-PROGRAMMING-MODEL-PE-GPR-STATE-001tests/asl/arch/programming-model/scalar-registers/arch-state-programming-model-pe-gpr-001.asl7c69affbf0458e09198d6a314cc158cfa5348800b1ddd8eae6048b9044c7b91fPTO-AVS-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS-STATIC-001tests/asl/arch/programming-model/scalar-registers/arch-static-scalar-registers-contract-001.aslf82a27988ff3b68a15ed36203916280aa87a0e83fa226efd43ecf94adb3148bcPTO-AVS-ARCH-TESTSCALARQUEUEDISPATCH-EXECUTION-001tests/asl/arch/programming-model/scalar-registers/arch-exec-queue-dispatch-001.asl7a5616e33ee2d0d6c1e236c2c687545e5dccaebcae8dd963a077cba1ba2282e4PTO-AVS-ARCH-TESTSCALARTEMPORARYQUEUES-EXECUTION-001tests/asl/arch/programming-model/scalar-registers/arch-exec-temporary-queues-001.asl7cfa876d3353471a75c25a8e0072a513f6b6d92d57528855b82af91c1ffb4b72PTO-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.md9c33e1b57d0f04c4d808ee61aaf975187a3dbd32a071329ca65a916dc0e614ca{
"classification": [
"programming-model",
"scalar-registers"
],
"documentation": "docs/arch/programming-model/scalar-registers.md",
"id": "PTO-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS",
"mnemonic": null,
"readiness_subjects": [
"ADR-0008"
],
"semantic_tests": [
"PTO-AVS-ARCH-PROGRAMMING-MODEL-PE-GPR-STATE-001",
"PTO-AVS-ARCH-TESTSCALARQUEUEDISPATCH-EXECUTION-001",
"PTO-AVS-ARCH-TESTSCALARTEMPORARYQUEUES-EXECUTION-001"
],
"source": "asl/arch/programming-model/scalar-registers.asl",
"surface": "arch",
"tests": [
"PTO-AVS-ARCH-PROGRAMMING-MODEL-PE-GPR-STATE-001",
"PTO-AVS-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS-STATIC-001",
"PTO-AVS-ARCH-TESTSCALARQUEUEDISPATCH-EXECUTION-001",
"PTO-AVS-ARCH-TESTSCALARTEMPORARYQUEUES-EXECUTION-001"
]
}0.58.5 · 候选发布7dc8b7e5b121d2b2499a2273bebff29e2cd8681276b63e6e3f5109fe6143d8c337b3d95738ecdadca6501693e2b744801d9fdc6373a5b843cd0501fea49ec7c2364c3f010e10b05c39e12e55c3ea4fcf0e7313f7asl/arch/programming-model/scalar-registers.asl