AI SEARCH
FLOW ALGEBRA — COMPUTING ARCHITECTURE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/foundations-of-computing/computing-architecture-ontology.html
FLOW COMPUTING_ARCHITECTURE_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Foundations of Computing"
ONTOLOGY = "Computing Architecture Ontology"
PURPOSE = "Formalise the structural components, interfaces, execution relationships, memory organisation and data pathways that define computing architectures."
LOCALE = "en-GB"
}
ENTITY_TYPES {
COMPUTING_ARCHITECTURE
COMPUTER_SYSTEM
HARDWARE_ARCHITECTURE
PROCESSOR
CPU
CORE
EXECUTION_UNIT
CONTROL_UNIT
ARITHMETIC_LOGIC_UNIT
REGISTER
REGISTER_FILE
CACHE
MEMORY
MAIN_MEMORY
VIRTUAL_MEMORY
STORAGE
MEMORY_HIERARCHY
BUS
DATA_BUS
ADDRESS_BUS
CONTROL_BUS
INTERCONNECT
SYSTEM_ON_CHIP
MOTHERBOARD
DEVICE
PERIPHERAL
INPUT_DEVICE
OUTPUT_DEVICE
NETWORK_INTERFACE
MEMORY_CONTROLLER
IO_CONTROLLER
INSTRUCTION
OPCODE
OPERAND
INSTRUCTION_SET
ISA
MICROARCHITECTURE
PIPELINE
PIPELINE_STAGE
CLOCK
CLOCK_CYCLE
INTERRUPT
ADDRESS
MEMORY_LOCATION
DATA
INPUT
OUTPUT
STATE
EVENT
CONFIGURATION
VERSION
RESOURCE
PERFORMANCE_METRIC
LATENCY
THROUGHPUT
BANDWIDTH
POWER
ERROR
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
HAS_COMPONENT
CONNECTED_TO
INTERFACES_WITH
IMPLEMENTS
EXECUTES
FETCHES
DECODES
READS
WRITES
LOADS
STORES
ADDRESSES
ROUTES_TO
SENDS
RECEIVES
TRANSFERS
CONTROLS
CLOCKS
INTERRUPTS
HAS_INSTRUCTION_SET
HAS_MICROARCHITECTURE
HAS_REGISTER
HAS_CACHE
HAS_MEMORY
HAS_ADDRESS
HAS_PIPELINE_STAGE
HAS_BANDWIDTH
HAS_LATENCY
HAS_THROUGHPUT
HAS_POWER_REQUIREMENT
HAS_CONFIGURATION
HAS_VERSION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
MAPS_TO
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
ARCHITECTURE_SPECIFICATIONS
PROCESSOR_SPECIFICATIONS
INSTRUCTION_SET_DEFINITIONS
MICROARCHITECTURE_DEFINITIONS
MEMORY_HIERARCHIES
CACHE_CONFIGURATIONS
INTERCONNECT_TOPOLOGIES
ADDRESS_MAPS
PIPELINE_DEFINITIONS
CLOCK_PARAMETERS
DEVICE_DEFINITIONS
PERFORMANCE_METRICS
POWER_METRICS
EXECUTION_TRACES
CONFIGURATION_DATA
VERSION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_IDENTIFIERS
NORMALISE_ARCHITECTURE_NAMES
NORMALISE_ISA_NAMES
NORMALISE_PROCESSOR_NAMES
NORMALISE_MEMORY_UNITS
NORMALISE_ADDRESS_FORMATS
NORMALISE_CLOCK_UNITS
NORMALISE_BANDWIDTH_UNITS
NORMALISE_PERFORMANCE_METRICS
NORMALISE_VERSION_IDENTIFIERS
RESOLVE_COMPONENT_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS ARCHITECTURE_REASONING_PIPELINE {
INPUT
-> ARCHITECTURE_IDENTIFICATION
-> COMPONENT_RESOLUTION
-> INTERFACE_MAPPING
-> MEMORY_MAPPING
-> EXECUTION_PATH_MAPPING
-> RESOURCE_ANALYSIS
-> PERFORMANCE_CONTEXT
-> VALIDATION
-> OUTPUT
}
PROCESS INSTRUCTION_EXECUTION {
PROGRAM_COUNTER
-> INSTRUCTION_FETCH
INSTRUCTION_FETCH
-> INSTRUCTION_DECODE
INSTRUCTION_DECODE
-> OPERAND_FETCH
OPERAND_FETCH
-> EXECUTION
EXECUTION
-> MEMORY_ACCESS_IF_REQUIRED
MEMORY_ACCESS_IF_REQUIRED
-> WRITEBACK
WRITEBACK
-> ARCHITECTURAL_STATE_UPDATE
}
PROCESS PIPELINE_REASONING {
INSTRUCTION
-> FETCH_STAGE
-> DECODE_STAGE
-> EXECUTE_STAGE
-> MEMORY_STAGE
-> WRITEBACK_STAGE
CONCURRENT_INSTRUCTIONS
-> PIPELINE_STATE
PIPELINE_STATE
-> HAZARD_ANALYSIS
-> STALL_OR_FORWARD_OR_CONTINUE
}
PROCESS MEMORY_HIERARCHY_REASONING {
MEMORY_REQUEST
-> REGISTER_CHECK
REGISTER_CHECK
-> CACHE_LOOKUP
CACHE_LOOKUP
-> CACHE_HIT_OR_MISS
CACHE_HIT_OR_MISS
-> LOWER_MEMORY_LEVEL_IF_REQUIRED
LOWER_MEMORY_LEVEL_IF_REQUIRED
-> DATA_RETURN
DATA_RETURN
-> PROCESSOR
}
PROCESS ADDRESS_REASONING {
LOGICAL_OR_VIRTUAL_ADDRESS
-> ADDRESS_TRANSLATION
ADDRESS_TRANSLATION
-> PHYSICAL_ADDRESS
PHYSICAL_ADDRESS
-> MEMORY_OR_DEVICE_MAPPING
MEMORY_OR_DEVICE_MAPPING
-> READ_OR_WRITE_OPERATION
}
PROCESS INTERCONNECT_REASONING {
SOURCE_COMPONENT + DATA + DESTINATION_COMPONENT
-> TRANSFER_REQUEST
TRANSFER_REQUEST
-> INTERCONNECT_ROUTE
INTERCONNECT_ROUTE
-> ARBITRATION_IF_REQUIRED
ARBITRATION_IF_REQUIRED
-> DATA_TRANSFER
DATA_TRANSFER
-> DESTINATION_RECEIPT
}
PROCESS PERFORMANCE_REASONING {
ARCHITECTURE + WORKLOAD
-> EXECUTION_PROFILE
EXECUTION_PROFILE
-> LATENCY_ANALYSIS
-> THROUGHPUT_ANALYSIS
-> BANDWIDTH_ANALYSIS
-> CACHE_BEHAVIOUR_ANALYSIS
-> RESOURCE_UTILISATION
RESOURCE_UTILISATION
-> BOTTLENECK_HYPOTHESIS
}
RULES {
IF ARCHITECTURE_ENTITY == PROCESSOR
THEN REQUIRE {
INSTRUCTION_SET
REGISTER_MODEL
MEMORY_INTERFACE
EXECUTION_MODEL
}
IF INSTRUCTION_EXECUTES
THEN LINK {
INSTRUCTION
OPERANDS
EXECUTION_UNIT
ARCHITECTURAL_STATE_BEFORE
ARCHITECTURAL_STATE_AFTER
}
IF MEMORY_ACCESS_OCCURS
THEN REQUIRE {
ADDRESS
ACCESS_TYPE
MEMORY_LEVEL_OR_DEVICE
EXECUTION_CONTEXT
}
IF CACHE_HIT_OCCURS
THEN DO_NOT_INFER_MAIN_MEMORY_ACCESS_FOR_SAME_REQUEST_UNLESS_REQUIRED_BY_POLICY
IF TWO_PROCESSORS_SHARE_ISA
THEN DO_NOT_ASSUME_IDENTICAL_MICROARCHITECTURE_OR_PERFORMANCE
IF PERFORMANCE_IS_COMPARED
THEN REQUIRE {
WORKLOAD
CONFIGURATION
CLOCK_CONTEXT
MEMORY_CONTEXT
SOFTWARE_CONTEXT
}
IF SEMANTIC_IDENTIFIERS_DIFFER
AND ARCHITECTURAL_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
SPECIFICATION_COMPLETENESS,
COMPONENT_RESOLUTION,
ISA_CERTAINTY,
MICROARCHITECTURE_CERTAINTY,
CONFIGURATION_CERTAINTY,
TRACE_COMPLETENESS,
MEASUREMENT_REPRODUCIBILITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF MICROARCHITECTURE_IS_UNKNOWN
THEN REDUCE_PERFORMANCE_INFERENCE_CONFIDENCE
IF CONFIGURATION_IS_UNKNOWN
THEN REDUCE CONFIDENCE_SCORE
IF REPRODUCIBLE_MEASUREMENTS_CONFIRM_BEHAVIOUR
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
CANONICAL_IDENTIFIER,
ISA,
MICROARCHITECTURE,
VERSION,
CONFIGURATION
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
ISA != MICROARCHITECTURE
ARCHITECTURE != IMPLEMENTATION_INSTANCE
INSTRUCTION != EXECUTION
ADDRESS != DATA
VIRTUAL_ADDRESS != PHYSICAL_ADDRESS
CACHE != MAIN_MEMORY
CLOCK_RATE != PERFORMANCE
CORE_COUNT != APPLICATION_SPEED
THEORETICAL_BANDWIDTH != OBSERVED_BANDWIDTH
PERFORMANCE_IS_WORKLOAD_DEPENDENT
CONFIGURATION_AFFECTS_PERFORMANCE
MEMORY_HIERARCHY_AFFECTS_EXECUTION
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_ARCHITECTURE_IDENTIFIERS
CHECK_ISA
CHECK_MICROARCHITECTURE
CHECK_REGISTER_MODEL
CHECK_MEMORY_HIERARCHY
CHECK_ADDRESS_MAPPING
CHECK_PIPELINE_MODEL
CHECK_INTERCONNECTS
CHECK_CONFIGURATION
CHECK_VERSION_CONTEXT
CHECK_PERFORMANCE_CONTEXT
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_ARCHITECTURE_ENTITIES
COMPONENT_GRAPHS
INSTRUCTION_SET_RELATIONS
MICROARCHITECTURE_RELATIONS
PIPELINE_RELATIONS
MEMORY_HIERARCHY_RELATIONS
ADDRESS_MAPPINGS
INTERCONNECT_RELATIONS
EXECUTION_PATHS
RESOURCE_RELATIONS
PERFORMANCE_PROFILES
BOTTLENECK_HYPOTHESES
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON ARCHITECTURE_OR_CONFIGURATION_CHANGE {
NORMALISE
ENTITY_RESOLUTION
UPDATE_COMPONENT_GRAPH
UPDATE_MEMORY_HIERARCHY
UPDATE_PIPELINE_MODEL
UPDATE_INTERCONNECTS
RECOMPUTE_AFFECTED_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_EXECUTION_OR_PERFORMANCE_DATA {
LINK_EVIDENCE
UPDATE_EXECUTION_PROFILE
REASSESS_PERFORMANCE_RELATIONS
REASSESS_BOTTLENECKS
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_ARCHITECTURE
BY_PROCESSOR
BY_CORE
BY_INSTRUCTION_SET
BY_MICROARCHITECTURE
BY_REGISTER
BY_CACHE
BY_MEMORY
BY_ADDRESS
BY_PIPELINE
BY_INTERCONNECT
BY_PERFORMANCE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_INSTRUCTION_EXECUTION
TRACE_MEMORY_ACCESS
TRACE_ADDRESS_TRANSLATION
TRACE_INTERCONNECT_PATH
ANALYSE_PIPELINE
ANALYSE_RESOURCE_USAGE
ANALYSE_PERFORMANCE
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_ISA_FROM_MICROARCHITECTURE
DISTINGUISH_ARCHITECTURE_FROM_IMPLEMENTATION
PRESERVE_MEMORY_AND_ADDRESS_CONTEXT
PRESERVE_WORKLOAD_AND_CONFIGURATION_CONTEXT
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_ARCHITECTURAL_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
COMPUTING_ARCHITECTURE_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard