AI SEARCH
FLOW ALGEBRA — INSTRUCTION SET ARCHITECTURE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-architecture/instruction-set-architecture-ontology.html
FLOW INSTRUCTION_SET_ARCHITECTURE_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Computer Architecture"
ONTOLOGY = "Instruction Set Architecture Ontology"
PURPOSE = "Formalise instruction-set architecture entities, instruction formats, operations, registers, addressing modes, data types, execution semantics and architectural state."
LOCALE = "en-GB"
}
ENTITY_TYPES {
INSTRUCTION_SET_ARCHITECTURE
ISA
COMPUTER_ARCHITECTURE
PROCESSOR
CPU
CORE
MICROARCHITECTURE
INSTRUCTION
MACHINE_INSTRUCTION
OPCODE
OPERAND
SOURCE_OPERAND
DESTINATION_OPERAND
IMMEDIATE_VALUE
INSTRUCTION_FORMAT
INSTRUCTION_LENGTH
INSTRUCTION_ENCODING
OPERATION
ARITHMETIC_OPERATION
LOGICAL_OPERATION
DATA_TRANSFER_OPERATION
CONTROL_FLOW_OPERATION
MEMORY_OPERATION
SYSTEM_OPERATION
VECTOR_OPERATION
REGISTER
GENERAL_PURPOSE_REGISTER
SPECIAL_PURPOSE_REGISTER
PROGRAM_COUNTER
STATUS_REGISTER
REGISTER_FILE
MEMORY
ADDRESS
VIRTUAL_ADDRESS
PHYSICAL_ADDRESS
ADDRESSING_MODE
IMMEDIATE_ADDRESSING
REGISTER_ADDRESSING
DIRECT_ADDRESSING
INDIRECT_ADDRESSING
INDEXED_ADDRESSING
BASE_OFFSET_ADDRESSING
DATA_TYPE
INTEGER_TYPE
FLOATING_POINT_TYPE
VECTOR_TYPE
BIT_WIDTH
ENDIANNESS
PRIVILEGE_LEVEL
INTERRUPT
EXCEPTION
SYSTEM_CALL
ARCHITECTURAL_STATE
FLAG
CONTROL_REGISTER
MEMORY_MODEL
ALIGNMENT_RULE
CALLING_CONVENTION
EXTENSION
VERSION
CONFIGURATION
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
DEFINES
IMPLEMENTS
ENCODES
DECODES
EXECUTES
HAS_OPCODE
HAS_OPERAND
HAS_FORMAT
HAS_ENCODING
HAS_LENGTH
HAS_OPERATION
HAS_REGISTER
HAS_REGISTER_FILE
HAS_ADDRESSING_MODE
HAS_DATA_TYPE
HAS_BIT_WIDTH
HAS_ENDIANNESS
HAS_PRIVILEGE_LEVEL
HAS_MEMORY_MODEL
HAS_ALIGNMENT_RULE
READS
WRITES
LOADS
STORES
BRANCHES_TO
CALLS
RETURNS
RAISES_EXCEPTION
HANDLES_INTERRUPT
CHANGES_STATE
HAS_ARCHITECTURAL_STATE
HAS_EXTENSION
HAS_VERSION
HAS_CONFIGURATION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
MAPS_TO
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
ISA_SPECIFICATIONS
INSTRUCTION_DEFINITIONS
OPCODE_TABLES
INSTRUCTION_FORMATS
ENCODING_RULES
REGISTER_DEFINITIONS
ADDRESSING_MODE_DEFINITIONS
DATA_TYPE_DEFINITIONS
MEMORY_MODEL_DEFINITIONS
PRIVILEGE_DEFINITIONS
INTERRUPT_DEFINITIONS
EXCEPTION_DEFINITIONS
ISA_EXTENSIONS
VERSION_DATA
EXECUTION_TRACES
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_ISA_IDENTIFIERS
NORMALISE_ISA_NAMES
NORMALISE_INSTRUCTION_NAMES
NORMALISE_OPCODE_REPRESENTATIONS
NORMALISE_REGISTER_NAMES
NORMALISE_ADDRESSING_MODE_NAMES
NORMALISE_DATA_TYPE_NAMES
NORMALISE_BIT_WIDTHS
NORMALISE_ENDIANNESS
NORMALISE_PRIVILEGE_LEVELS
NORMALISE_EXTENSION_NAMES
NORMALISE_VERSION_IDENTIFIERS
RESOLVE_REGISTER_ALIASES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS ISA_REASONING_PIPELINE {
ISA_SPECIFICATION
-> INSTRUCTION_SET_RESOLUTION
-> REGISTER_MODEL_RESOLUTION
-> ADDRESSING_MODEL_RESOLUTION
-> DATA_TYPE_RESOLUTION
-> MEMORY_AND_PRIVILEGE_MODEL_RESOLUTION
-> EXECUTION_SEMANTICS_MAPPING
-> VALIDATION
-> OUTPUT
}
PROCESS INSTRUCTION_DECODE {
INSTRUCTION_BITS
-> FORMAT_IDENTIFICATION
FORMAT_IDENTIFICATION
-> OPCODE_EXTRACTION
-> OPERAND_FIELD_EXTRACTION
OPCODE_EXTRACTION
-> OPERATION_RESOLUTION
OPERAND_FIELD_EXTRACTION
-> OPERAND_RESOLUTION
OPERATION_RESOLUTION + OPERAND_RESOLUTION
-> DECODED_INSTRUCTION
}
PROCESS OPERAND_REASONING {
OPERAND_FIELD + ADDRESSING_MODE
-> OPERAND_SOURCE
OPERAND_SOURCE
-> REGISTER_VALUE
OR -> IMMEDIATE_VALUE
OR -> MEMORY_ADDRESS
MEMORY_ADDRESS
-> MEMORY_OPERAND
RESOLVED_OPERANDS
-> EXECUTION_INPUTS
}
PROCESS INSTRUCTION_EXECUTION_SEMANTICS {
ARCHITECTURAL_STATE(T1)
+ DECODED_INSTRUCTION
-> ISA_DEFINED_OPERATION
ISA_DEFINED_OPERATION
-> RESULT
-> MEMORY_EFFECT_IF_ANY
-> REGISTER_EFFECT_IF_ANY
-> FLAG_EFFECT_IF_ANY
-> CONTROL_FLOW_EFFECT_IF_ANY
EFFECTS
-> ARCHITECTURAL_STATE(T2)
}
PROCESS CONTROL_FLOW_REASONING {
CONTROL_FLOW_INSTRUCTION
-> TARGET_RESOLUTION
TARGET_RESOLUTION
-> BRANCH_OR_CALL_OR_RETURN_TARGET
CONDITION_IF_REQUIRED
-> TAKEN_OR_NOT_TAKEN
RESULT
-> PROGRAM_COUNTER_UPDATE
}
PROCESS EXCEPTION_REASONING {
INSTRUCTION_OR_EVENT
-> EXCEPTION_CONDITION_CHECK
EXCEPTION_CONDITION
-> EXCEPTION_CLASSIFICATION
EXCEPTION_CLASSIFICATION
-> ARCHITECTURAL_STATE_SAVE_OR_UPDATE
ARCHITECTURAL_STATE_SAVE_OR_UPDATE
-> HANDLER_TRANSFER
}
PROCESS ISA_EXTENSION_REASONING {
BASE_ISA + EXTENSION
-> EXTENDED_INSTRUCTION_SET
EXTENDED_INSTRUCTION_SET
-> ADDITIONAL_INSTRUCTIONS
-> ADDITIONAL_REGISTERS_IF_ANY
-> ADDITIONAL_STATE_IF_ANY
EXTENSION_SUPPORT
-> IMPLEMENTATION_CAPABILITY
}
RULES {
IF ENTITY == ISA
THEN REQUIRE {
INSTRUCTION_SET
REGISTER_MODEL
EXECUTION_SEMANTICS
ADDRESSING_MODEL
}
IF MACHINE_INSTRUCTION_IS_DECODED
THEN REQUIRE {
ISA_CONTEXT
INSTRUCTION_FORMAT
OPCODE_MAPPING
}
IF REGISTER_NAME_IS_USED
THEN PRESERVE ISA_AND_ALIAS_CONTEXT
IF MEMORY_OPERAND_IS_RESOLVED
THEN PRESERVE ADDRESSING_MODE_AND_ADDRESS_CONTEXT
IF ISA_EXTENSION_IS_REQUIRED_BY_INSTRUCTION
THEN DO_NOT_ASSERT_EXECUTABILITY_WITHOUT_EXTENSION_SUPPORT
IF TWO_PROCESSORS_IMPLEMENT_SAME_ISA
THEN DO_NOT_ASSUME_IDENTICAL_MICROARCHITECTURE_OR_PERFORMANCE
IF SAME_OPCODE_BITS_EXIST_IN_DIFFERENT_ISAS
THEN DO_NOT_ASSUME_IDENTICAL_INSTRUCTION_SEMANTICS
IF SEMANTIC_IDENTIFIERS_DIFFER
AND ISA_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
ISA_SPECIFICATION_COMPLETENESS,
VERSION_CERTAINTY,
INSTRUCTION_DECODE_CERTAINTY,
REGISTER_MODEL_CERTAINTY,
ADDRESSING_MODE_CERTAINTY,
EXTENSION_SUPPORT_CERTAINTY,
EXECUTION_TRACE_COMPLETENESS,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF ISA_VERSION_IS_UNKNOWN
THEN REDUCE CONFIDENCE_SCORE
IF EXTENSION_SUPPORT_IS_UNKNOWN
THEN REDUCE_INSTRUCTION_SUPPORT_CONFIDENCE
IF AUTHORITATIVE_SPECIFICATION_AND_TRACE_AGREE
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
CANONICAL_ISA_IDENTIFIER,
ISA_VERSION,
INSTRUCTION_OR_REGISTER_IDENTIFIER,
EXTENSION_CONTEXT,
ARCHITECTURAL_CONTEXT
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
ISA != MICROARCHITECTURE
INSTRUCTION_ENCODING != INSTRUCTION_SEMANTICS
OPCODE != COMPLETE_INSTRUCTION
REGISTER_NAME != PHYSICAL_REGISTER_WITHOUT_IMPLEMENTATION_CONTEXT
VIRTUAL_ADDRESS != PHYSICAL_ADDRESS
ISA_COMPATIBILITY != PERFORMANCE_EQUIVALENCE
ISA_EXTENSION != BASE_ISA
SAME_MNEMONIC != SAME_SEMANTICS_ACROSS_ISAS
SAME_OPCODE_BITS != SAME_SEMANTICS_ACROSS_ISAS
ARCHITECTURAL_STATE != MICROARCHITECTURAL_STATE
IMPLEMENTATION_DETAIL_MUST_NOT_BE_ASSUMED_FROM_ISA
VERSION_CONTEXT_MUST_BE_PRESERVED
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_ISA_IDENTIFIER
CHECK_ISA_VERSION
CHECK_INSTRUCTION_FORMATS
CHECK_OPCODE_MAPPINGS
CHECK_REGISTER_MODEL
CHECK_REGISTER_ALIASES
CHECK_ADDRESSING_MODES
CHECK_DATA_TYPES
CHECK_ENDIANNESS
CHECK_MEMORY_MODEL
CHECK_PRIVILEGE_MODEL
CHECK_EXCEPTION_SEMANTICS
CHECK_EXTENSION_CONTEXT
CHECK_EXECUTION_TRACE
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_ISA_ENTITIES
INSTRUCTION_RELATIONS
OPCODE_RELATIONS
INSTRUCTION_FORMAT_RELATIONS
REGISTER_RELATIONS
REGISTER_ALIAS_RELATIONS
ADDRESSING_MODE_RELATIONS
DATA_TYPE_RELATIONS
MEMORY_MODEL_RELATIONS
PRIVILEGE_RELATIONS
EXCEPTION_RELATIONS
EXTENSION_RELATIONS
ARCHITECTURAL_STATE_TRANSITIONS
EXECUTION_SEMANTICS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON ISA_OR_VERSION_CHANGE {
NORMALISE
ENTITY_RESOLUTION
UPDATE_INSTRUCTION_SET
UPDATE_REGISTER_MODEL
UPDATE_ADDRESSING_MODES
UPDATE_DATA_TYPES
UPDATE_EXTENSIONS
RECOMPUTE_AFFECTED_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_EXECUTION_OR_SPECIFICATION_EVIDENCE {
LINK_EVIDENCE
REASSESS_INSTRUCTION_SEMANTICS
REASSESS_REGISTER_RELATIONS
REASSESS_EXTENSION_SUPPORT
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_ISA
BY_INSTRUCTION
BY_OPCODE
BY_FORMAT
BY_REGISTER
BY_ADDRESSING_MODE
BY_DATA_TYPE
BY_MEMORY_MODEL
BY_PRIVILEGE_LEVEL
BY_EXCEPTION
BY_EXTENSION
BY_VERSION
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
DECODE_INSTRUCTION
RESOLVE_OPERANDS
TRACE_ARCHITECTURAL_STATE
TRACE_CONTROL_FLOW
ANALYSE_EXCEPTION_SEMANTICS
ANALYSE_EXTENSION_REQUIREMENTS
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_ISA_FROM_MICROARCHITECTURE
DISTINGUISH_ENCODING_FROM_SEMANTICS
PRESERVE_ISA_VERSION_AND_EXTENSION_CONTEXT
PRESERVE_ADDRESSING_AND_REGISTER_CONTEXT
DISTINGUISH_ARCHITECTURAL_FROM_IMPLEMENTATION_STATE
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_ISA_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
INSTRUCTION_SET_ARCHITECTURE_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard