AI SEARCH
FLOW ALGEBRA — CONTROL UNIT ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-architecture/control-unit-ontology.html
FLOW CONTROL_UNIT_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Computer Architecture"
ONTOLOGY = "Control Unit Ontology"
PURPOSE = "Formalise control-unit entities, instruction decoding, sequencing, control signals, processor coordination and state transitions within computer architectures."
LOCALE = "en-GB"
}
ENTITY_TYPES {
CONTROL_UNIT
CPU
PROCESSOR
CORE
HARDWIRED_CONTROL_UNIT
MICROPROGRAMMED_CONTROL_UNIT
INSTRUCTION
OPCODE
OPERAND
INSTRUCTION_REGISTER
PROGRAM_COUNTER
STATUS_REGISTER
CONTROL_REGISTER
REGISTER
REGISTER_FILE
DECODER
INSTRUCTION_DECODER
SEQUENCER
MICROSEQUENCER
MICROINSTRUCTION
MICROPROGRAM
CONTROL_STORE
CONTROL_WORD
CONTROL_SIGNAL
TIMING_SIGNAL
CLOCK
CLOCK_CYCLE
PIPELINE
PIPELINE_STAGE
FETCH_STAGE
DECODE_STAGE
EXECUTE_STAGE
MEMORY_STAGE
WRITEBACK_STAGE
ARITHMETIC_LOGIC_UNIT
EXECUTION_UNIT
MEMORY
CACHE
BUS
DATA_PATH
INPUT
OUTPUT
INTERRUPT
EXCEPTION
BRANCH
STATE
CONTROL_STATE
EVENT
STATE_TRANSITION
CONFIGURATION
VERSION
LATENCY
ERROR
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
CONTROLS
COORDINATES
DECODES
SEQUENCES
GENERATES
ASSERTS
DEASSERTS
CLOCKS
TRIGGERS
ENABLES
DISABLES
SELECTS
ROUTES
FETCHES
EXECUTES
READS
WRITES
LOADS
STORES
INTERRUPTS
HANDLES
BRANCHES_TO
HAS_OPCODE
HAS_CONTROL_SIGNAL
HAS_CONTROL_STATE
HAS_MICROINSTRUCTION
HAS_MICROPROGRAM
HAS_INPUT
HAS_OUTPUT
HAS_STATE
TRANSITIONS_TO
HAS_CONFIGURATION
HAS_VERSION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
MAPS_TO
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
CONTROL_UNIT_SPECIFICATIONS
INSTRUCTION_SET_DEFINITIONS
OPCODE_DEFINITIONS
INSTRUCTION_STREAMS
MICROPROGRAM_DEFINITIONS
MICROINSTRUCTION_DEFINITIONS
CONTROL_SIGNAL_DEFINITIONS
PIPELINE_DEFINITIONS
CLOCK_PARAMETERS
STATUS_FLAGS
INTERRUPT_RECORDS
EXCEPTION_RECORDS
EXECUTION_TRACES
CONFIGURATION_DATA
VERSION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_IDENTIFIERS
NORMALISE_CONTROL_UNIT_NAMES
NORMALISE_OPCODE_NAMES
NORMALISE_CONTROL_SIGNAL_NAMES
NORMALISE_MICROINSTRUCTION_NAMES
NORMALISE_PIPELINE_STAGE_NAMES
NORMALISE_CLOCK_UNITS
NORMALISE_STATE_IDENTIFIERS
NORMALISE_VERSION_IDENTIFIERS
RESOLVE_COMPONENT_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS CONTROL_PIPELINE {
INSTRUCTION
-> FETCH_COORDINATION
-> INSTRUCTION_DECODE
-> CONTROL_SEQUENCE_GENERATION
-> CONTROL_SIGNAL_ASSERTION
-> DATA_PATH_AND_EXECUTION_UNIT_COORDINATION
-> RESULT_OR_STATE_UPDATE
-> NEXT_INSTRUCTION_SELECTION
}
PROCESS INSTRUCTION_DECODE {
INSTRUCTION_REGISTER
-> OPCODE_EXTRACTION
OPCODE_EXTRACTION
-> INSTRUCTION_CLASSIFICATION
INSTRUCTION_CLASSIFICATION
-> OPERAND_MODE_DECODE
-> CONTROL_SEQUENCE_SELECTION
CONTROL_SEQUENCE_SELECTION
-> CONTROL_ACTIONS
}
PROCESS HARDWIRED_CONTROL {
OPCODE + STATUS_FLAGS + TIMING_STATE
-> COMBINATIONAL_AND_SEQUENTIAL_LOGIC
COMBINATIONAL_AND_SEQUENTIAL_LOGIC
-> CONTROL_SIGNALS
CONTROL_SIGNALS
-> DATA_PATH_ACTIONS
DATA_PATH_ACTIONS
-> NEXT_CONTROL_STATE
}
PROCESS MICROPROGRAMMED_CONTROL {
OPCODE
-> MICROPROGRAM_ENTRY_POINT
MICROPROGRAM_ENTRY_POINT
-> MICROINSTRUCTION_FETCH
MICROINSTRUCTION_FETCH
-> MICROINSTRUCTION_DECODE
MICROINSTRUCTION_DECODE
-> CONTROL_WORD
CONTROL_WORD
-> CONTROL_SIGNALS
CONTROL_SIGNALS
-> MICROSEQUENCER_UPDATE
}
PROCESS PIPELINE_CONTROL {
PIPELINE_STATE
-> HAZARD_DETECTION
HAZARD_DETECTION
-> DATA_HAZARD
OR -> CONTROL_HAZARD
OR -> STRUCTURAL_HAZARD
OR -> NO_HAZARD
HAZARD
-> STALL_OR_FORWARD_OR_FLUSH
NO_HAZARD
-> ADVANCE_PIPELINE
RESULT
-> NEXT_PIPELINE_STATE
}
PROCESS BRANCH_CONTROL {
BRANCH_INSTRUCTION + STATUS_OR_PREDICTION
-> NEXT_PC_CANDIDATE
NEXT_PC_CANDIDATE
-> BRANCH_DECISION
BRANCH_DECISION
-> PROGRAM_COUNTER_UPDATE
MISPREDICTION_IF_APPLICABLE
-> PIPELINE_FLUSH
-> CORRECT_FETCH_PATH
}
PROCESS INTERRUPT_CONTROL {
INTERRUPT_EVENT
-> INTERRUPT_PRIORITY_CHECK
INTERRUPT_PRIORITY_CHECK
-> SAVE_PROCESSOR_CONTEXT
SAVE_PROCESSOR_CONTEXT
-> HANDLER_ADDRESS_SELECTION
HANDLER_ADDRESS_SELECTION
-> CONTROL_TRANSFER
HANDLER_COMPLETION
-> RESTORE_CONTEXT
-> RESUME_EXECUTION
}
PROCESS CONTROL_STATE_REASONING {
CONTROL_STATE(T1)
+ INPUT_CONDITIONS
+ CLOCK_EVENT
-> CONTROL_TRANSITION
CONTROL_TRANSITION
-> CONTROL_STATE(T2)
CONTROL_STATE_SEQUENCE
-> CONTROL_TRACE
}
RULES {
IF CONTROL_UNIT_DECODES_INSTRUCTION
THEN REQUIRE {
INSTRUCTION_SET_CONTEXT
OPCODE
DECODE_RULE
}
IF CONTROL_SIGNAL_IS_ASSERTED
THEN LINK {
CONTROL_STATE
SIGNAL
TARGET_COMPONENT
INTENDED_ACTION
CLOCK_OR_TIMING_CONTEXT
}
IF MICROPROGRAMMED_CONTROL_IS_USED
THEN PRESERVE {
MICROPROGRAM
MICROINSTRUCTION
CONTROL_STORE
MICROSEQUENCER_STATE
}
IF PIPELINE_STALL_OCCURS
THEN PRESERVE HAZARD_CAUSE
IF PIPELINE_FLUSH_OCCURS
THEN PRESERVE CONTROL_FLOW_CAUSE
IF INTERRUPT_OCCURS
THEN PRESERVE {
INTERRUPT_SOURCE
PRIOR_PROCESSOR_STATE
HANDLER_CONTEXT
RESUME_CONTEXT
}
IF TWO_CONTROL_UNITS_IMPLEMENT_SAME_ISA
THEN DO_NOT_ASSUME_IDENTICAL_CONTROL_IMPLEMENTATION
IF SEMANTIC_IDENTIFIERS_DIFFER
AND CONTROL_UNIT_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
SPECIFICATION_COMPLETENESS,
ISA_CERTAINTY,
CONTROL_IMPLEMENTATION_CERTAINTY,
SIGNAL_TRACE_COMPLETENESS,
TIMING_CONTEXT_CERTAINTY,
STATE_TRACE_COMPLETENESS,
REPRODUCIBILITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF CONTROL_IMPLEMENTATION_IS_UNKNOWN
THEN REDUCE_INTERNAL_CONTROL_INFERENCE_CONFIDENCE
IF TIMING_OR_STATE_TRACE_IS_INCOMPLETE
THEN REDUCE CONFIDENCE_SCORE
IF REPRODUCIBLE_CONTROL_TRACE_CONFIRMS_BEHAVIOUR
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
CANONICAL_IDENTIFIER,
ISA,
CONTROL_IMPLEMENTATION,
VERSION,
CONFIGURATION
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
CONTROL_UNIT != CPU
OPCODE != CONTROL_SIGNAL_SEQUENCE
INSTRUCTION_DECODE != INSTRUCTION_EXECUTION
CONTROL_SIGNAL != DATA_VALUE
HARDWIRED_CONTROL != MICROPROGRAMMED_CONTROL
MICROINSTRUCTION != MACHINE_INSTRUCTION
PIPELINE_STALL != PIPELINE_FLUSH
INTERRUPT != EXCEPTION_IN_ALL_ARCHITECTURES
ISA != CONTROL_IMPLEMENTATION
TIMING_CONTEXT_AFFECTS_CONTROL_BEHAVIOUR
CONFIGURATION_AFFECTS_CONTROL_BEHAVIOUR
SPECULATIVE_CONTROL_STATE != COMMITTED_ARCHITECTURAL_STATE
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_CONTROL_UNIT_IDENTIFIERS
CHECK_ISA_CONTEXT
CHECK_OPCODE_DECODE
CHECK_CONTROL_SIGNALS
CHECK_CONTROL_STATES
CHECK_MICROPROGRAM_CONTEXT
CHECK_PIPELINE_CONTROL
CHECK_BRANCH_CONTROL
CHECK_INTERRUPT_CONTROL
CHECK_TIMING_CONTEXT
CHECK_EXECUTION_TRACE
CHECK_CONFIGURATION
CHECK_VERSION_CONTEXT
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_CONTROL_UNIT_ENTITIES
CONTROL_COMPONENT_RELATIONS
OPCODE_DECODE_RELATIONS
CONTROL_SIGNAL_RELATIONS
CONTROL_STATE_TRANSITIONS
MICROPROGRAM_RELATIONS
MICROINSTRUCTION_RELATIONS
PIPELINE_CONTROL_RELATIONS
BRANCH_CONTROL_RELATIONS
INTERRUPT_CONTROL_RELATIONS
CONTROL_TRACES
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON CONTROL_UNIT_OR_CONFIGURATION_CHANGE {
NORMALISE
ENTITY_RESOLUTION
UPDATE_DECODE_RULES
UPDATE_CONTROL_SIGNALS
UPDATE_CONTROL_STATES
UPDATE_MICROPROGRAM_IF_APPLICABLE
UPDATE_PIPELINE_CONTROL
RECOMPUTE_AFFECTED_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_CONTROL_OR_EXECUTION_EVIDENCE {
LINK_EVIDENCE
UPDATE_CONTROL_TRACE
REASSESS_SIGNAL_RELATIONS
REASSESS_STATE_TRANSITIONS
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_CONTROL_UNIT
BY_INSTRUCTION
BY_OPCODE
BY_CONTROL_SIGNAL
BY_CONTROL_STATE
BY_MICROPROGRAM
BY_MICROINSTRUCTION
BY_PIPELINE_STAGE
BY_BRANCH
BY_INTERRUPT
BY_EXECUTION_TRACE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_INSTRUCTION_DECODE
TRACE_CONTROL_SIGNALS
TRACE_CONTROL_STATE
TRACE_MICROPROGRAM
ANALYSE_PIPELINE_CONTROL
ANALYSE_BRANCH_CONTROL
ANALYSE_INTERRUPTS
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_CONTROL_UNIT_FROM_CPU
DISTINGUISH_DECODE_FROM_EXECUTION
DISTINGUISH_MACHINE_INSTRUCTION_FROM_MICROINSTRUCTION
PRESERVE_ISA_AND_TIMING_CONTEXT
PRESERVE_CONTROL_IMPLEMENTATION_CONTEXT
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_CONTROL_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
CONTROL_UNIT_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard