跳到主要内容

PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL

PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL

ASL 伪代码

下面直接显示完整的 ASL 所有者。

// PTO-UNIT: {"id":"PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL","surface":"arch","classification":["system-registers","access-control"],"depends_on":["PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT"]}readonly func CurrentACR() => AccessControlRingbegin    return _CurrentACR;end;
pure func AccessControlRingBits(ring: AccessControlRing) => bits(4)begin    case ring of        when 0 => return '0000';        when 1 => return '0001';        when 2 => return '0010';        when 3 => return '0011';        when 4 => return '0100';        when 5 => return '0101';        when 6 => return '0110';        when 7 => return '0111';        when 8 => return '1000';        when 9 => return '1001';        when 10 => return '1010';        when 11 => return '1011';        when 12 => return '1100';        when 13 => return '1101';        when 14 => return '1110';        when 15 => return '1111';    end;end;
func SetCurrentACR(ring: AccessControlRing)begin    _CurrentACR = ring;    _SystemRegisters.core_state[3:0] = AccessControlRingBits(ring);end;
pure func TrapTargetForFault(source: AccessControlRing) => AccessControlRingbegin    if source == 0 then return 0; else return 1; end;end;
pure func TrapTargetForInterrupt(source: AccessControlRing) => AccessControlRingbegin    return TrapTargetForFault(source);end;
pure func ServiceRequestPermitted(source: AccessControlRing,                                  request_type: bits(4)) => booleanbegin    if source == 1 then        return request_type == '0000' || request_type == '0010';    elsif source >= 2 then        return UInt(request_type) <= 2;    else        return FALSE;    end;end;
pure func ServiceRequestTarget(source: AccessControlRing,                               request_type: bits(4)) => AccessControlRingbegin    assert ServiceRequestPermitted(source, request_type);    if request_type == '0001' then return 1; else return 0; end;end;
readonly func TrapVectorEntry(target: AccessControlRing,                              fault_address: Word) => Wordbegin    let index = ((target * 4096) + 0x0f01) as SystemRegisterFileIndex;    let vector_base = _ExtendedSystemRegisters[[index]];    if vector_base == Zeros{PTO_XLEN} then return fault_address;    else return vector_base;    end;end;

架构行为

目的与范围

用途与范围

本单元定义当前 Access Control Ring 状态、其四位表示、可移植陷阱目标、允许的服务请求以及陷阱向量查找。

概念与架构状态

ACR 状态与编码

CurrentACR 返回 _CurrentACR。AccessControlRingBits 把环值 0 到 15 映射到对应的四位二进制值。

SetCurrentACR 同时更新 _CurrentACR 和 core_state[3:0],使保存的环与其系统寄存器表示保持同步。

规则与交互

陷阱与服务路由

TrapTargetForFault 把源 ACR0 映射到目标 ACR0,把每个非零源映射到目标 ACR1。TrapTargetForInterrupt 使用相同规则。

来自 ACR1 时,允许服务请求类型 0000 和 0010。来自 ACR2 到 ACR15 时,允许无符号值不大于 2 的请求类型;ACR0 不允许任何请求。

对于允许的请求,类型 0001 的目标是 ACR1,其他每个允许类型的目标都是 ACR0。

边界与未定义范围

陷阱向量查找边界

TrapVectorEntry 读取扩展系统寄存器索引 target * 4096 + 0x0f01。非零条目是向量基址;零条目回退到给定的故障地址。

ServiceRequestTarget 会断言请求已经获得许可。调用者必须先确认许可,才能请求目标。

使用示例

示例性路由示例

来自 ACR2 的 0001 类型请求被允许,并且目标为 ACR1。同一请求来自 ACR1 时不被允许,因此不能把它传给 ServiceRequestTarget。

NDF 条款

正文来自 owning ASL。拖拽或按钮只临时改变当前页面显示顺序。

No NDF clause is attached to this unit.

Evidence index

11 matching entries

Executable evidence1
  • PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL compiles as an independent normative unit
    1. surfaceARCH
    2. ownerPTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL
    3. categorySTATIC-INVARIANT
    4. case001
    Show exact test source
    Sources and references
    Complete stable ID
    PTO-AVS-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL-STATIC-001
    Path
    tests/asl/arch/system-registers/access-control/arch-static-access-control-contract-001.asl
    Kind / role
    static-invariant
    Pass condition
    the complete model and this unit's static invariant compile
    SHA-256
    84f205e7b465e1547898bc952ff27a94ded966a19ee9e2a3f822c428dfdb3e24
    Open exact source ↗ for PTO-AVS-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL-STATIC-001
Commit-scoped evidence5
  • spec/evidence/release-traceability-readiness.json · closedPTO-EVIDENCE-RELEASE-TRACEABILITY
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-TRACEABILITY
    Path
    spec/evidence/release-traceability-readiness.json
    Kind / role
    ASL/NDF/documentation/AVS traceability
    SHA-256
    c7327021d39dc67ac5564bc55073b3870a397d79ac8d9648284d56e33bc14a3e
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-TRACEABILITY
  • spec/evidence/instruction-contract-closure.json · closedPTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
    Path
    spec/evidence/instruction-contract-closure.json
    Kind / role
    mnemonic and encoding contract closure
    SHA-256
    3ef2bb62421c79dff8fa77a1c7983923b523244b8090812883ef81286ca8106a
    Open exact source ↗ for PTO-EVIDENCE-INSTRUCTION-CONTRACT-CLOSURE
  • spec/evidence/architecture-readiness.json · openPTO-EVIDENCE-ARCHITECTURE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-ARCHITECTURE-READINESS
    Path
    spec/evidence/architecture-readiness.json
    Kind / role
    architecture maturity and blockers
    SHA-256
    4b0b85199101251bea744e0f3591cc31906909dc80d5ab651c417a936036a004
    Open exact source ↗ for PTO-EVIDENCE-ARCHITECTURE-READINESS
  • spec/evidence/release-gate-readiness.json · ready-for-exact-head-verificationPTO-EVIDENCE-RELEASE-GATE-READINESS
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-GATE-READINESS
    Path
    spec/evidence/release-gate-readiness.json
    Kind / role
    exact-head gate readiness
    SHA-256
    a0f4d2b6920c08981ea55fd8ef820708a40d4feb5402c5150e8e9ab532d84ce0
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-GATE-READINESS
  • spec/release-manifest.json · draftPTO-EVIDENCE-RELEASE-MANIFEST
    Sources and references
    Complete stable ID
    PTO-EVIDENCE-RELEASE-MANIFEST
    Path
    spec/release-manifest.json
    Kind / role
    release content and encoding fingerprints
    SHA-256
    1a64c109ed7a90351c41e2a418b3c0ebaf8ad975838986d2101385186b85c0d8
    Open exact source ↗ for PTO-EVIDENCE-RELEASE-MANIFEST
Decision history5
  • Use PTO-owned system-register names · accepted
    1. decision recordADR
    2. case0003

    Decision record

    Loading ADR-0003…

    Sources and references
    Complete stable ID
    ADR-0003
    Path
    docs/status/decisions/0003-pto-owned-system-register-names.md
    Affected units
    PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL, PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING, PTO-ARCH-SYSTEM-REGISTERS-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-INTERRUPT, PTO-ARCH-SYSTEM-REGISTERS-MAINTENANCE, PTO-ARCH-SYSTEM-REGISTERS-TIMER, PTO-SCALAR-C-SSRGET, PTO-SCALAR-HL-SSRGET, PTO-SCALAR-HL-SSRSET, PTO-SCALAR-SSRGET, PTO-SCALAR-SSRSET, PTO-SCALAR-SSRSWAP
    Affected NDF
    PTO-C-SSRGET-DIRECT-IDS-001, PTO-HL-SSRGET-DECISION-BINDING-001, PTO-HL-SSRSET-DECISION-BINDING-001, PTO-SSRGET-ADR-CONTRACT-001, PTO-SSRSET-ADR-CONTRACT-001, PTO-SSRSWAP-ADR-CONTRACT-001
    SHA-256
    c6a5379776c3b29c25f0896bc56f84d8f5c15832bbba0859b822aa99a65e342d
    Open exact decision source ↗ for ADR-0003
  • Define the PTO architectural state contract · accepted
    1. decision recordADR
    2. case0008

    Decision record

    Loading ADR-0008…

    Sources and references
    Complete stable ID
    ADR-0008
    Path
    docs/status/decisions/0008-architectural-state-contract.md
    Affected units
    PTO-ARCH-OVERVIEW-ARCHITECTURE, PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT, PTO-ARCH-PROGRAMMING-MODEL-PREDICATE-REGISTERS, PTO-ARCH-PROGRAMMING-MODEL-SCALAR-REGISTERS, PTO-ARCH-PROGRAMMING-MODEL-SHARED-TILE-REGISTERS, PTO-ARCH-PROGRAMMING-MODEL-TILE-REGISTERS, PTO-ARCH-STATE-DEFINEDNESS, PTO-ARCH-STATE-PROGRAM-COUNTER, PTO-ARCH-STATE-TILE-DESCRIPTOR, PTO-ARCH-STATE-TRAP-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL, PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING, PTO-ARCH-SYSTEM-REGISTERS-CONTEXT, PTO-BLOCK-B-IOR, PTO-BLOCK-B-IOS, PTO-BLOCK-B-IOT, PTO-BLOCK-MODEL-STATE-BINDING-STATE, PTO-BLOCK-MODEL-STATE-CONTROL-STATE, PTO-BLOCK-MODEL-STATE-DESCRIPTOR-STATE, PTO-BLOCK-MODEL-STATE-TYPES, PTO-TILE-MODEL-STATE-LOCAL-REGISTERS
    Affected NDF
    PTO-ARCH-STATE-CLOSURE-001, PTO-REQ-BUNDLE-STATE-001, PTO-REQ-SHARED-TILE-001, PTO-REQ-STATE-001, PTO-REQ-TILE-001, PTO-TILE-CAPACITY-PER-PE
    SHA-256
    9c33e1b57d0f04c4d808ee61aaf975187a3dbd32a071329ca65a916dc0e614ca
    Open exact decision source ↗ for ADR-0008
  • PTO v0 ACR routing and context reset · accepted
    1. decision recordADR
    2. case0010

    Decision record

    Loading ADR-0010…

    Sources and references
    Complete stable ID
    ADR-0010
    Path
    docs/status/decisions/0010-acr-routing-and-context-reset.md
    Affected units
    PTO-ARCH-PROFILE-RESET, PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL, PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING, PTO-ARCH-SYSTEM-REGISTERS-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-INTERRUPT, PTO-ARCH-SYSTEM-REGISTERS-MAINTENANCE, PTO-ARCH-SYSTEM-REGISTERS-TIMER
    Affected NDF
    PTO-REQ-STATE-001
    SHA-256
    7594432a33c54880227fa3ab495bf5b29d406ac3b4e83634ffefe0a713e85f35
    Open exact decision source ↗ for ADR-0010
  • Classify every visible system register behavior · accepted
    1. decision recordADR
    2. case0017

    Decision record

    Loading ADR-0017…

    Sources and references
    Complete stable ID
    ADR-0017
    Path
    docs/status/decisions/0017-system-register-behavior-classes.md
    Affected units
    PTO-ARCH-OVERVIEW-ARCHITECTURE, PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL, PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING, PTO-ARCH-SYSTEM-REGISTERS-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-INTERRUPT, PTO-ARCH-SYSTEM-REGISTERS-MAINTENANCE, PTO-ARCH-SYSTEM-REGISTERS-TIMER
    Affected NDF
    PTO-ARCH-COMMIT-EVENT-CONFORMANCE-001, PTO-ARCH-STATE-CLOSURE-001, PTO-RELEASE-VERIFICATION, PTO-SOURCE-HIERARCHY, PTO-TILE-CAPACITY-PER-PE
    SHA-256
    6b4f7a29546952e4c5c61b0f4f921b04ecbc8340ba4ad86619277f17da97f95f
    Open exact decision source ↗ for ADR-0017
  • Scalar SYS totality and PTO-v0 profile boundaries · accepted
    1. decision recordADR
    2. case0031

    Decision record

    Loading ADR-0031…

    Sources and references
    Complete stable ID
    ADR-0031
    Path
    docs/status/decisions/0031-scalar-sys-totality-and-profile-boundaries.md
    Affected units
    PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL, PTO-ARCH-SYSTEM-REGISTERS-ADDRESSING, PTO-ARCH-SYSTEM-REGISTERS-CONTEXT, PTO-ARCH-SYSTEM-REGISTERS-INTERRUPT, PTO-ARCH-SYSTEM-REGISTERS-MAINTENANCE, PTO-ARCH-SYSTEM-REGISTERS-TIMER, PTO-SCALAR-ACRC, PTO-SCALAR-ACRE, PTO-SCALAR-ASSERT, PTO-SCALAR-BC-IALL, PTO-SCALAR-BC-IVA, PTO-SCALAR-BSE, PTO-SCALAR-BWE, PTO-SCALAR-BWI, PTO-SCALAR-BWT, PTO-SCALAR-C-EBREAK, PTO-SCALAR-C-SSRGET, PTO-SCALAR-DC-CISW, PTO-SCALAR-DC-CIVA, PTO-SCALAR-DC-CSW, PTO-SCALAR-DC-CVA, PTO-SCALAR-DC-IALL, PTO-SCALAR-DC-ISW, PTO-SCALAR-DC-IVA, PTO-SCALAR-DC-ZVA, PTO-SCALAR-EBREAK, PTO-SCALAR-FENCE-D, PTO-SCALAR-FENCE-I, PTO-SCALAR-HL-SSRGET, PTO-SCALAR-HL-SSRSET, PTO-SCALAR-IC-IALL, PTO-SCALAR-IC-IVA, PTO-SCALAR-LSRGET, PTO-SCALAR-SETC-TGT, PTO-SCALAR-SSRGET, PTO-SCALAR-SSRSET, PTO-SCALAR-SSRSWAP, PTO-SCALAR-TLB-IA, PTO-SCALAR-TLB-IALL, PTO-SCALAR-TLB-IAV, PTO-SCALAR-TLB-IV
    Affected NDF
    PTO-ACRC-DECISION-BINDING-001, PTO-ACRE-IMPLICIT-STOP-001, PTO-BSE-DECISION-BINDING-001, PTO-BWE-DECISION-BINDING-001, PTO-BWI-DECISION-BINDING-001, PTO-BWT-DECISION-BINDING-001, PTO-C-EBREAK-CAUSE-001, PTO-C-SSRGET-DIRECT-IDS-001, PTO-EBREAK-DECISION-BINDING-001, PTO-FENCE-D-DECISION-BINDING-001, PTO-FENCE-I-DECISION-BINDING-001, PTO-HL-SSRGET-DECISION-BINDING-001, PTO-HL-SSRSET-DECISION-BINDING-001, PTO-LSRGET-BARG-001, PTO-SETC-TGT-ADR-CONTRACT-001, PTO-SSRGET-ADR-CONTRACT-001, PTO-SSRSET-ADR-CONTRACT-001, PTO-SSRSWAP-ADR-CONTRACT-001, PTO-TLB-IA-ADR-CONTRACT-001, PTO-TLB-IALL-ADR-CONTRACT-001, PTO-TLB-IAV-ADR-CONTRACT-001, PTO-TLB-IV-ADR-CONTRACT-001
    SHA-256
    5680b3516be6c28a1ccb198c99f5efb66317c65330f6d87434173024d2795a7d
    Open exact decision source ↗ for ADR-0031

Unit metadata

Open 4 generated metadata fields
id
PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL
surface
arch
classification
[
  "system-registers",
  "access-control"
]
depends_on
[
  "PTO-ARCH-PROGRAMMING-MODEL-EXECUTION-CONTEXT"
]
Open generated traceability record
{
  "classification": [
    "system-registers",
    "access-control"
  ],
  "documentation": "docs/arch/system-registers/access-control.md",
  "id": "PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL",
  "mnemonic": null,
  "readiness_subjects": [
    "ADR-0003",
    "ADR-0008",
    "ADR-0010",
    "ADR-0017",
    "ADR-0031"
  ],
  "semantic_tests": [],
  "source": "asl/arch/system-registers/access-control.asl",
  "surface": "arch",
  "tests": [
    "PTO-AVS-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL-STATIC-001"
  ]
}

来源与发布信息

展开 commit、路径、hash、版本和规范所有者
发布
0.58.5 · 候选发布
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
b902ec666fffe515cb48ef7f54c144d19b514561537489a670349369eee3a819
文档 SHA-256
0629315070e287fa1b742a5af5f3e5578bf8ffdec466cebfea2bfbbc7bbf2eaa

精确所有者