Skip to main content

Register Ontology

Computer Architecture
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 01 October 2026
Audio Overview
AI SEARCH

FLOW ALGEBRA — REGISTER ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-architecture/register-ontology.html

FLOW REGISTER_ONTOLOGY {

  META {
    DOMAIN = "Computing Ontologies"
    SUBDOMAIN = "Computer Architecture"
    ONTOLOGY = "Register Ontology"
    PURPOSE = "Formalise processor registers, register types, stored values, data movement, addressing, status information and register-state transitions."
    LOCALE = "en-GB"
  }

  ENTITY_TYPES {
    REGISTER
    PROCESSOR_REGISTER
    GENERAL_PURPOSE_REGISTER
    SPECIAL_PURPOSE_REGISTER
    DATA_REGISTER
    ADDRESS_REGISTER
    INDEX_REGISTER
    BASE_REGISTER
    STACK_POINTER
    FRAME_POINTER
    PROGRAM_COUNTER
    INSTRUCTION_POINTER
    INSTRUCTION_REGISTER
    MEMORY_ADDRESS_REGISTER
    MEMORY_DATA_REGISTER
    STATUS_REGISTER
    FLAGS_REGISTER
    CONTROL_REGISTER
    VECTOR_REGISTER
    FLOATING_POINT_REGISTER
    REGISTER_FILE
    CPU
    PROCESSOR
    CORE
    CONTROL_UNIT
    ARITHMETIC_LOGIC_UNIT
    EXECUTION_UNIT
    INSTRUCTION
    OPCODE
    OPERAND
    VALUE
    DATA
    ADDRESS
    BIT
    BIT_VECTOR
    WORD
    BIT_WIDTH
    FLAG
    ZERO_FLAG
    CARRY_FLAG
    SIGN_FLAG
    OVERFLOW_FLAG
    CONTROL_BIT
    INPUT
    OUTPUT
    READ_OPERATION
    WRITE_OPERATION
    LOAD_OPERATION
    STORE_OPERATION
    STATE
    REGISTER_STATE
    EVENT
    CLOCK
    CLOCK_CYCLE
    DATA_PATH
    CONFIGURATION
    VERSION
    ERROR
    EVIDENCE
    CONFIDENCE_SCORE
    PROVENANCE_RECORD
  }

  RELATIONSHIPS {
    IS_A
    INSTANCE_OF
    PART_OF
    CONTAINS
    HAS_REGISTER
    HAS_REGISTER_FILE
    STORES
    HOLDS
    READS
    WRITES
    LOADS
    RECEIVES
    PRODUCES
    TRANSFERS_TO
    ADDRESSES
    POINTS_TO
    CONTAINS_VALUE
    HAS_BIT_WIDTH
    HAS_FLAG
    SETS_FLAG
    CLEARS_FLAG
    HAS_STATE
    TRANSITIONS_TO
    UPDATED_BY
    USED_BY
    ACCESSED_BY
    SELECTED_BY
    CONTROLS
    HAS_INPUT
    HAS_OUTPUT
    HAS_CONFIGURATION
    HAS_VERSION
    DEPENDS_ON
    PRECEDES
    FOLLOWS
    DERIVED_FROM
    INFERRED_FROM
    HAS_EVIDENCE
    HAS_CONFIDENCE
    HAS_PROVENANCE
    MAPS_TO
    SEMANTICALLY_EQUIVALENT_TO
  }

  INPUTS {
    REGISTER_SPECIFICATIONS
    REGISTER_FILE_DEFINITIONS
    ISA_DEFINITIONS
    REGISTER_NAMES
    REGISTER_VALUES
    BIT_WIDTH_DEFINITIONS
    STATUS_FLAG_DEFINITIONS
    CONTROL_BIT_DEFINITIONS
    INSTRUCTION_STREAMS
    EXECUTION_TRACES
    READ_WRITE_TRACES
    CLOCK_PARAMETERS
    CONFIGURATION_DATA
    VERSION_DATA
    ONTOLOGY_TERMS
  }

  NORMALISE {
    STANDARDISE_REGISTER_IDENTIFIERS
    NORMALISE_REGISTER_NAMES
    NORMALISE_REGISTER_CLASSES
    NORMALISE_BIT_WIDTHS
    NORMALISE_VALUE_REPRESENTATIONS
    NORMALISE_ADDRESS_FORMATS
    NORMALISE_FLAG_NAMES
    NORMALISE_CONTROL_BITS
    NORMALISE_VERSION_IDENTIFIERS
    RESOLVE_REGISTER_ALIASES
    RESOLVE_COMPONENT_IDENTITIES
    ALIGN_ONTOLOGY_TERMS
    REMOVE_DUPLICATES
    VALIDATE_METADATA
    PRESERVE_PROVENANCE
  }

  PROCESS REGISTER_ACCESS_PIPELINE {
    INSTRUCTION
      -> REGISTER_OPERAND_DECODE
      -> REGISTER_SELECTION
      -> READ_OR_WRITE_DECISION
      -> REGISTER_ACCESS
      -> DATA_PATH_TRANSFER
      -> REGISTER_STATE_UPDATE
  }

  PROCESS REGISTER_READ {
    REGISTER_IDENTIFIER
      -> REGISTER_SELECTION

    REGISTER_SELECTION
      -> CURRENT_REGISTER_STATE

    CURRENT_REGISTER_STATE
      -> READ_VALUE

    READ_VALUE
      -> DATA_PATH_OR_EXECUTION_UNIT
  }

  PROCESS REGISTER_WRITE {
    SOURCE_VALUE
      -> DESTINATION_REGISTER_SELECTION

    DESTINATION_REGISTER_SELECTION
      -> WRITE_ENABLE

    WRITE_ENABLE + CLOCK_OR_COMMIT_EVENT
      -> REGISTER_UPDATE

    REGISTER_UPDATE
      -> NEW_REGISTER_STATE
  }

  PROCESS PROGRAM_COUNTER_REASONING {
    PROGRAM_COUNTER(T1)
      + CONTROL_FLOW_EVENT
      -> NEXT_ADDRESS_SELECTION

    NEXT_ADDRESS_SELECTION
      -> SEQUENTIAL_ADDRESS
      OR -> BRANCH_TARGET
      OR -> JUMP_TARGET
      OR -> INTERRUPT_VECTOR
      OR -> EXCEPTION_VECTOR

    SELECTED_ADDRESS
      -> PROGRAM_COUNTER(T2)
  }

  PROCESS STATUS_REGISTER_REASONING {
    OPERATION_RESULT
      -> FLAG_EVALUATION

    FLAG_EVALUATION
      -> ZERO_FLAG_UPDATE
      -> CARRY_FLAG_UPDATE
      -> SIGN_FLAG_UPDATE
      -> OVERFLOW_FLAG_UPDATE

    UPDATED_FLAGS
      -> STATUS_REGISTER_STATE
  }

  PROCESS ADDRESS_REGISTER_REASONING {
    ADDRESS_VALUE
      -> ADDRESS_REGISTER

    ADDRESS_REGISTER
      -> MEMORY_OR_IO_ADDRESS

    MEMORY_OR_IO_ADDRESS
      -> READ_OR_WRITE_REQUEST
  }

  PROCESS REGISTER_FILE_REASONING {
    REGISTER_INDEX_SET
      -> REGISTER_FILE_SELECTION

    REGISTER_FILE_SELECTION
      -> MULTIPLE_READ_PORTS
      -> WRITE_PORT

    READ_PORTS
      -> OPERANDS

    WRITE_PORT
      -> DESTINATION_REGISTER_UPDATE
  }

  PROCESS REGISTER_STATE_REASONING {
    REGISTER_STATE(T1)
      + READ_OPERATION
      -> REGISTER_STATE(T1)

    REGISTER_STATE(T1)
      + WRITE_OPERATION
      -> REGISTER_STATE(T2)

    REGISTER_STATE_SEQUENCE
      -> REGISTER_TRACE
  }

  RULES {
    IF REGISTER_VALUE_IS_INTERPRETED
    THEN REQUIRE {
      BIT_WIDTH
      REPRESENTATION_CONTEXT
      ISA_OR_ARCHITECTURAL_CONTEXT
    }

    IF REGISTER_IS_WRITTEN
    THEN LINK {
      PRIOR_VALUE
      SOURCE_VALUE
      WRITE_EVENT
      NEW_VALUE
      EXECUTION_CONTEXT
    }

    IF REGISTER_IS_READ
    THEN DO_NOT_INFER_REGISTER_STATE_CHANGE_FROM_READ_ALONE

    IF PROGRAM_COUNTER_CHANGES
    THEN PRESERVE CONTROL_FLOW_CAUSE

    IF STATUS_FLAG_CHANGES
    THEN LINK FLAG_CHANGE TO GENERATING_OPERATION_OR_EVENT

    IF REGISTER_NAMES_ALIAS_SAME_PHYSICAL_STORAGE
    THEN PRESERVE ALIAS_RELATIONSHIP

    IF SAME_REGISTER_NAME_EXISTS_ACROSS_DIFFERENT_ISAS
    THEN DO_NOT_ASSUME_IDENTICAL_SEMANTICS

    IF SEMANTIC_IDENTIFIERS_DIFFER
    AND REGISTER_REFERENT_IS_SAME
    THEN APPLY SEMANTIC_EQUIVALENCE
  }

  CONFIDENCE {
    CONFIDENCE_SCORE =
      WEIGHT(
        REGISTER_SPECIFICATION_COMPLETENESS,
        ISA_CERTAINTY,
        REGISTER_ALIAS_RESOLUTION,
        BIT_WIDTH_CERTAINTY,
        VALUE_REPRESENTATION_CERTAINTY,
        TRACE_COMPLETENESS,
        STATE_OBSERVABILITY,
        PROVENANCE_COMPLETENESS
      )

    LEVELS {
      HIGH
      MODERATE
      LOW
      INSUFFICIENT
    }

    IF ISA_OR_BIT_WIDTH_IS_UNKNOWN
    THEN REDUCE_REGISTER_INTERPRETATION_CONFIDENCE

    IF REGISTER_ALIASING_IS_UNRESOLVED
    THEN REDUCE CONFIDENCE_SCORE

    IF COMPLETE_EXECUTION_TRACE_CONFIRMS_STATE
    THEN INCREASE CONFIDENCE_SCORE
  }

  SEMANTIC_EQUIVALENCE {
    EQUIVALENCE_KEY =
      NORMALISE(
        ENTITY_TYPE,
        CANONICAL_REGISTER_IDENTIFIER,
        ISA,
        REGISTER_CLASS,
        BIT_WIDTH,
        ARCHITECTURAL_CONTEXT
      )

    IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
    THEN A SEMANTICALLY_EQUIVALENT_TO B

    ELSE PRESERVE_DISTINCT_ENTITIES
  }

  REASONING_CONSTRAINTS {
    REGISTER != MEMORY_LOCATION
    REGISTER_NAME != PHYSICAL_REGISTER_WITHOUT_ALIAS_CONTEXT
    REGISTER_VALUE != SEMANTIC_VALUE_WITHOUT_REPRESENTATION
    READ != WRITE
    READ_OPERATION_DOES_NOT_NORMALLY_MUTATE_REGISTER_STATE
    PROGRAM_COUNTER != INSTRUCTION
    ADDRESS_REGISTER != ADDRESSED_MEMORY
    STATUS_FLAG != OPERATION_RESULT
    SAME_REGISTER_NAME != SAME_SEMANTICS_ACROSS_ARCHITECTURES
    BIT_WIDTH_AFFECTS_VALUE_INTERPRETATION
    ISA_AFFECTS_REGISTER_SEMANTICS
    SPECULATIVE_REGISTER_STATE != COMMITTED_REGISTER_STATE
    PROVENANCE_MUST_BE_PRESERVED
    UNCERTAINTY_MUST_NOT_BE_DISCARDED
  }

  VALIDATION {
    CHECK_ENTITY_TYPES
    CHECK_RELATION_DOMAINS_AND_RANGES
    CHECK_REGISTER_IDENTIFIERS
    CHECK_REGISTER_CLASS
    CHECK_ISA_CONTEXT
    CHECK_BIT_WIDTH
    CHECK_VALUE_REPRESENTATION
    CHECK_REGISTER_ALIASES
    CHECK_READ_WRITE_RELATIONS
    CHECK_PROGRAM_COUNTER_TRANSITIONS
    CHECK_STATUS_FLAGS
    CHECK_EXECUTION_TRACE
    CHECK_CONFIGURATION
    CHECK_VERSION_CONTEXT
    CHECK_PROVENANCE
    CHECK_CONFIDENCE
    CHECK_SEMANTIC_CONSISTENCY
  }

  OUTPUTS {
    NORMALISED_REGISTER_ENTITIES
    REGISTER_CLASS_RELATIONS
    REGISTER_FILE_RELATIONS
    REGISTER_VALUE_RELATIONS
    REGISTER_ALIAS_RELATIONS
    READ_WRITE_RELATIONS
    REGISTER_STATE_TRANSITIONS
    PROGRAM_COUNTER_TRANSITIONS
    STATUS_FLAG_RELATIONS
    ADDRESS_REGISTER_RELATIONS
    REGISTER_TRACES
    CONFIDENCE_SCORES
    EVIDENCE_LINKS
    PROVENANCE_RECORDS
    EXPLANATION_PATHS
  }

  UPDATE_MODEL {
    ON REGISTER_OR_ARCHITECTURE_CHANGE {
      NORMALISE
      ENTITY_RESOLUTION
      UPDATE_REGISTER_SET
      UPDATE_REGISTER_ALIASES
      UPDATE_FLAG_SEMANTICS
      UPDATE_BIT_WIDTH_CONTEXT
      RECOMPUTE_AFFECTED_RELATIONS
      UPDATE_CONFIDENCE
      PRESERVE_VERSION_HISTORY
    }

    ON NEW_EXECUTION_EVIDENCE {
      LINK_EVIDENCE
      UPDATE_REGISTER_TRACE
      UPDATE_REGISTER_STATES
      REASSESS_READ_WRITE_RELATIONS
      UPDATE_CONFIDENCE
      RECORD_PROVENANCE
    }

    ON ONTOLOGY_REVISION {
      REMAP_TERMS
      CHECK_SEMANTIC_EQUIVALENCE
      IDENTIFY_DEPRECATED_TERMS
      MIGRATE_RELATIONSHIPS
      PRESERVE_PRIOR_VERSION_REFERENCES
    }
  }

  FLOW_HASH {
    HASH_INPUT =
      CANONICALISE(
        ENTITY_TYPES,
        RELATIONSHIPS,
        RULES,
        CONFIDENCE,
        SEMANTIC_EQUIVALENCE,
        REASONING_CONSTRAINTS,
        UPDATE_MODEL
      )

    FLOW_HASH = SHA256(HASH_INPUT)
  }

  AI_CONSUMPTION {
    INDEX {
      ONTOLOGY
      ENTITY_TYPES
      RELATIONSHIPS
      RULES
      OUTPUTS
    }

    RETRIEVE {
      BY_REGISTER
      BY_REGISTER_CLASS
      BY_REGISTER_FILE
      BY_VALUE
      BY_ADDRESS
      BY_FLAG
      BY_PROGRAM_COUNTER
      BY_READ_OPERATION
      BY_WRITE_OPERATION
      BY_STATE
      BY_EXECUTION_TRACE
      BY_CONFIDENCE
    }

    REASON {
      APPLY_RELATIONSHIPS
      APPLY_RULES
      TRACE_REGISTER_READS
      TRACE_REGISTER_WRITES
      TRACE_REGISTER_STATE
      TRACE_PROGRAM_COUNTER
      ANALYSE_STATUS_FLAGS
      ANALYSE_REGISTER_ALIASES
      CHECK_SEMANTIC_EQUIVALENCE
      PRESERVE_UNCERTAINTY
      TRACE_EVIDENCE
      TRACE_PROVENANCE
      GENERATE_EXPLANATION_PATH
    }

    RESPONSE_POLICY {
      DISTINGUISH_REGISTER_FROM_MEMORY
      DISTINGUISH_REGISTER_NAME_FROM_PHYSICAL_STORAGE
      PRESERVE_ISA_AND_BIT_WIDTH_CONTEXT
      DISTINGUISH_READ_FROM_WRITE
      PRESERVE_REGISTER_ALIAS_CONTEXT
      DISTINGUISH_SPECULATIVE_FROM_COMMITTED_STATE
      RETURN_CONFIDENCE_WHEN_AVAILABLE
      RETURN_PROVENANCE_WHEN_AVAILABLE
      AVOID_UNSUPPORTED_REGISTER_INFERENCE
    }
  }

  TERMINAL {
    RESULT =
      VALIDATED(
        SEMANTICALLY_NORMALISED(
          EVIDENCE_LINKED(
            CONFIDENCE_AWARE(
              REGISTER_KNOWLEDGE
            )
          )
        )
      )
  }
}

END FLOW
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ