Skip to main content

PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL

PTO-ARCH-SYSTEM-REGISTERS-ACCESS-CONTROL

ASL pseudocode

The complete ASL owner is shown directly below.

// 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;

Architecture behavior

purpose scope

Purpose and scope

This unit defines current Access Control Ring state, its four-bit representation, portable trap targets, permitted service requests, and trap-vector lookup.

concepts state

ACR state and encoding

CurrentACR returns _CurrentACR. AccessControlRingBits maps ring values 0 through 15 to the corresponding four-bit binary value.

SetCurrentACR updates both _CurrentACR and core_state[3:0], keeping the stored ring and its system-register representation synchronized.

rules interactions

Trap and service routing

TrapTargetForFault maps source ACR0 to target ACR0 and every nonzero source to target ACR1. TrapTargetForInterrupt uses the same rule.

From ACR1, service request types 0000 and 0010 are permitted. From ACR2 through ACR15, request types whose unsigned value is at most 2 are permitted; ACR0 permits none.

For a permitted request, type 0001 targets ACR1 and every other permitted type targets ACR0.

boundaries

Trap-vector lookup boundary

TrapVectorEntry reads extended-system-register index target * 4096 + 0x0f01. A nonzero entry is the vector base; a zero entry falls back to the supplied fault address.

ServiceRequestTarget asserts that the request is permitted. Callers must establish permission before asking for a target.

example usage

illustrative routing example

A type-0001 request from ACR2 is permitted and targets ACR1. The same request from ACR1 is not permitted, so it must not be passed to ServiceRequestTarget.

NDF clauses

Bodies come from owning ASL. Dragging or buttons change only this page-session view order.

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"
  ]
}

Sources and release identity

Show commit, paths, hashes, version, and canonical owners
Release
0.58.5 · Release candidate
Commit
7dc8b7e5b121d2b2499a2273bebff29e2cd86812
ASL SHA-256
b902ec666fffe515cb48ef7f54c144d19b514561537489a670349369eee3a819
Generated documentation
docs/arch/system-registers/access-control.md · embedded in this page
Documentation SHA-256
1e8c0bac4956461c768db931b4c6aede80658a4d4d9aa86a1cba4f70946b6dc2

Exact owners