AI SEARCH
FLOW ALGEBRA — SOLID STATE DRIVE ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/computer-hardware/solid-state-drive-ontology.html
FLOW SOLID_STATE_DRIVE_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Computer Hardware"
ONTOLOGY = "Solid State Drive Ontology"
PURPOSE = "Formalise solid-state drive components, NAND flash organisation, logical-to-physical mapping, read/write/erase operations, garbage collection, wear levelling, endurance, performance and health relationships."
LOCALE = "en-GB"
}
ENTITY_TYPES {
SOLID_STATE_DRIVE
SSD
STORAGE_DEVICE
NON_VOLATILE_STORAGE
FLASH_STORAGE
SATA_SSD
NVME_SSD
PCIE_SSD
NAND_FLASH
NAND_DIE
NAND_PLANE
NAND_BLOCK
NAND_PAGE
FLASH_CELL
SLC
MLC
TLC
QLC
PLC
SSD_CONTROLLER
FLASH_TRANSLATION_LAYER
FTL
DRAM_CACHE
SLC_CACHE
BUFFER
INTERFACE
SATA
NVME
PCIE
LOGICAL_BLOCK_ADDRESS
PHYSICAL_BLOCK_ADDRESS
PHYSICAL_PAGE
DATA
READ_OPERATION
WRITE_OPERATION
PROGRAM_OPERATION
ERASE_OPERATION
TRIM_OPERATION
FLUSH_OPERATION
GARBAGE_COLLECTION
WEAR_LEVELLING
OVER_PROVISIONING
BAD_BLOCK
SPARE_BLOCK
QUEUE
COMMAND
REQUEST
RESPONSE
CAPACITY
USABLE_CAPACITY
LATENCY
THROUGHPUT
BANDWIDTH
IOPS
QUEUE_DEPTH
ENDURANCE
PROGRAM_ERASE_CYCLE
TBW
DWPD
WRITE_AMPLIFICATION
ERROR
BIT_ERROR
ECC
ERROR_CORRECTION
SMART_DATA
HEALTH_STATE
TEMPERATURE
POWER
THERMAL_THROTTLING
STATE
EVENT
FIRMWARE
FIRMWARE_VERSION
CONFIGURATION
HARDWARE_REVISION
PERFORMANCE_METRIC
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
HAS_CONTROLLER
HAS_NAND
HAS_DIE
HAS_PLANE
HAS_BLOCK
HAS_PAGE
HAS_CELL
HAS_CACHE
HAS_BUFFER
HAS_INTERFACE
MAPS_TO
STORES
READS
WRITES
PROGRAMS
ERASES
TRIMS
FLUSHES
COLLECTS
RELOCATES
LEVELS_WEAR_ACROSS
REMAPS
QUEUES
TRANSFERS
HAS_CAPACITY
HAS_USABLE_CAPACITY
HAS_LATENCY
HAS_THROUGHPUT
HAS_BANDWIDTH
HAS_IOPS
HAS_QUEUE_DEPTH
HAS_ENDURANCE
HAS_TBW
HAS_DWPD
HAS_WRITE_AMPLIFICATION
HAS_ECC
DETECTS_ERROR
CORRECTS_ERROR
HAS_HEALTH_STATE
HAS_TEMPERATURE
HAS_POWER
THROTTLES_AT
HAS_STATE
TRANSITIONS_TO
HAS_FIRMWARE
HAS_FIRMWARE_VERSION
HAS_CONFIGURATION
HAS_HARDWARE_REVISION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
SSD_SPECIFICATIONS
MANUFACTURER_DATA
MODEL_DATA
NAND_TYPE_DATA
CAPACITY_DATA
CONTROLLER_DATA
FTL_DATA
INTERFACE_DATA
LOGICAL_ADDRESS_DATA
IO_TRACES
QUEUE_DATA
TRIM_DATA
GARBAGE_COLLECTION_DATA
WEAR_LEVELLING_DATA
ENDURANCE_DATA
SMART_DATA
ERROR_LOGS
ECC_DATA
TEMPERATURE_DATA
POWER_DATA
PERFORMANCE_METRICS
FIRMWARE_DATA
CONFIGURATION_DATA
HARDWARE_REVISION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_SSD_IDENTIFIERS
NORMALISE_MANUFACTURER_NAMES
NORMALISE_MODEL_NAMES
NORMALISE_NAND_TYPES
NORMALISE_CAPACITY_UNITS
NORMALISE_INTERFACE_NAMES
NORMALISE_ADDRESS_FORMATS
NORMALISE_LATENCY_UNITS
NORMALISE_THROUGHPUT_UNITS
NORMALISE_IOPS
NORMALISE_ENDURANCE_MEASURES
NORMALISE_WRITE_AMPLIFICATION
NORMALISE_TEMPERATURE_UNITS
NORMALISE_POWER_UNITS
NORMALISE_FIRMWARE_VERSIONS
NORMALISE_HARDWARE_REVISIONS
NORMALISE_ERROR_TYPES
RESOLVE_DEVICE_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS SSD_IO_PIPELINE {
IO_REQUEST
-> HOST_INTERFACE
-> COMMAND_QUEUE
-> SSD_CONTROLLER
-> FTL_MAPPING
-> NAND_OPERATION
-> ERROR_CHECK_AND_CORRECTION
-> DATA_TRANSFER_OR_STATE_UPDATE
-> COMPLETION_RESPONSE
}
PROCESS READ_REASONING {
READ_REQUEST + LOGICAL_BLOCK_ADDRESS
-> FTL_LOOKUP
FTL_LOOKUP
-> PHYSICAL_PAGE
PHYSICAL_PAGE
-> NAND_READ
NAND_READ
-> ECC_CHECK
ECC_CHECK
-> CORRECTED_OR_VALIDATED_DATA
-> HOST_RETURN
}
PROCESS WRITE_REASONING {
WRITE_REQUEST + DATA + LOGICAL_BLOCK_ADDRESS
-> FTL_MAPPING_DECISION
FTL_MAPPING_DECISION
-> FREE_PHYSICAL_PAGE_SELECTION
FREE_PHYSICAL_PAGE_SELECTION
-> PAGE_PROGRAM
PAGE_PROGRAM
-> NEW_LOGICAL_TO_PHYSICAL_MAPPING
PRIOR_MAPPING_IF_ANY
-> INVALIDATE_OLD_PAGE
}
PROCESS ERASE_REASONING {
NAND_BLOCK
-> VALID_AND_INVALID_PAGE_ASSESSMENT
ERASABLE_BLOCK
-> VALID_PAGE_RELOCATION_IF_REQUIRED
VALID_PAGE_RELOCATION_IF_REQUIRED
-> BLOCK_ERASE
BLOCK_ERASE
-> FREE_BLOCK
-> PROGRAM_ERASE_COUNT_INCREMENT
}
PROCESS GARBAGE_COLLECTION_REASONING {
FREE_SPACE_PRESSURE + INVALID_PAGES
-> VICTIM_BLOCK_SELECTION
VICTIM_BLOCK_SELECTION
-> VALID_PAGE_COPY
VALID_PAGE_COPY
-> BLOCK_ERASE
BLOCK_ERASE
-> FREE_SPACE_RECOVERY
GARBAGE_COLLECTION
-> WRITE_AMPLIFICATION_EFFECT
}
PROCESS WEAR_LEVELLING_REASONING {
BLOCK_ERASE_COUNTS
-> WEAR_DISTRIBUTION
WEAR_DISTRIBUTION
-> IMBALANCE_DETECTION
IMBALANCE_DETECTION
-> DATA_RELOCATION_OR_BLOCK_SELECTION_POLICY
POLICY
-> MORE_UNIFORM_WEAR
}
PROCESS TRIM_REASONING {
HOST_DISCARD
-> TRIM_COMMAND
TRIM_COMMAND
-> LOGICAL_BLOCK_INVALIDATION
LOGICAL_BLOCK_INVALIDATION
-> FTL_FREE_SPACE_HINT
FTL_FREE_SPACE_HINT
-> FUTURE_GARBAGE_COLLECTION_OPTIMISATION
}
PROCESS ENDURANCE_REASONING {
PROGRAM_ERASE_COUNTS + NAND_TYPE + WRITE_WORKLOAD
-> WEAR_PROFILE
WEAR_PROFILE
-> ENDURANCE_USAGE
ENDURANCE_USAGE + RATED_ENDURANCE
-> REMAINING_ENDURANCE_ESTIMATE
}
PROCESS HEALTH_REASONING {
SMART_DATA + ERROR_LOGS + ENDURANCE_DATA + TEMPERATURE_DATA
-> SSD_HEALTH_PROFILE
SSD_HEALTH_PROFILE
-> WEAR_INDICATORS
-> MEDIA_ERROR_INDICATORS
-> CONTROLLER_INDICATORS
-> THERMAL_INDICATORS
INDICATORS
-> HEALTH_STATE
-> FAILURE_RISK_HYPOTHESIS
-> CONFIDENCE_SCORE
}
PROCESS PERFORMANCE_REASONING {
SSD + WORKLOAD + QUEUE_DEPTH + CONFIGURATION
-> SSD_PROFILE
SSD_PROFILE
-> READ_LATENCY
-> WRITE_LATENCY
-> RANDOM_IOPS
-> SEQUENTIAL_THROUGHPUT
-> QUEUEING_DELAY
-> CACHE_EFFECT
-> GARBAGE_COLLECTION_EFFECT
-> THERMAL_THROTTLING_EFFECT
SSD_PROFILE
-> BOTTLENECK_HYPOTHESIS
}
RULES {
IF SSD_WRITE_OCCURS
THEN DO_NOT_ASSUME_IN_PLACE_PHYSICAL_WRITE
IF LOGICAL_BLOCK_IS_REWRITTEN
THEN PRESERVE OLD_MAPPING_INVALIDATION_AND_NEW_MAPPING
IF NAND_PAGE_HAS_BEEN_PROGRAMMED
THEN REQUIRE_ERASE_AT_BLOCK_GRANULARITY_BEFORE_REPROGRAMMING_WHERE_TECHNOLOGY_REQUIRES
IF TRIM_COMMAND_IS_ISSUED
THEN DO_NOT_ASSERT_IMMEDIATE_PHYSICAL_ERASURE
IF GARBAGE_COLLECTION_OCCURS
THEN PRESERVE_RELOCATION_AND_WRITE_AMPLIFICATION_CONTEXT
IF ENDURANCE_IS_ESTIMATED
THEN REQUIRE NAND_TYPE_WRITE_HISTORY_AND_RATED_ENDURANCE_CONTEXT
IF SMART_INDICATOR_CHANGES
THEN DO_NOT_ASSERT_IMMINENT_FAILURE_WITHOUT_SUPPORTING_EVIDENCE
IF SEMANTIC_IDENTIFIERS_DIFFER
AND SSD_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
DEVICE_SPECIFICATION_COMPLETENESS,
NAND_TYPE_CERTAINTY,
FTL_MAPPING_CERTAINTY,
IO_TRACE_COMPLETENESS,
ENDURANCE_DATA_QUALITY,
SMART_DATA_QUALITY,
PERFORMANCE_MEASUREMENT_QUALITY,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF FTL_IMPLEMENTATION_IS_UNKNOWN
THEN REDUCE_PHYSICAL_MAPPING_INFERENCE_CONFIDENCE
IF WRITE_HISTORY_IS_INCOMPLETE
THEN REDUCE_ENDURANCE_INFERENCE_CONFIDENCE
IF REPRODUCIBLE_IO_TESTS_CONFIRM_BEHAVIOUR
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
MANUFACTURER,
MODEL,
CAPACITY,
NAND_TYPE,
CONTROLLER,
FIRMWARE_VERSION,
HARDWARE_REVISION
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
SSD != HDD
LOGICAL_BLOCK_ADDRESS != PHYSICAL_NAND_LOCATION
WRITE != IN_PLACE_OVERWRITE
TRIM != IMMEDIATE_ERASE
PAGE_PROGRAM != BLOCK_ERASE
CAPACITY != PERFORMANCE
INTERFACE_BANDWIDTH != NAND_THROUGHPUT
IOPS != THROUGHPUT
PEAK_PERFORMANCE != SUSTAINED_PERFORMANCE
SLC_CACHE_PERFORMANCE != NATIVE_NAND_PERFORMANCE
GARBAGE_COLLECTION_MAY_AFFECT_LATENCY
WRITE_AMPLIFICATION_AFFECTS_ENDURANCE
ENDURANCE_DEPENDS_ON_NAND_TYPE_AND_WORKLOAD
SMART_INDICATOR != CERTAIN_FAILURE_PREDICTION
TEMPERATURE_MAY_TRIGGER_THROTTLING
FIRMWARE_AFFECTS_DEVICE_BEHAVIOUR
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_SSD_IDENTIFIER
CHECK_NAND_TYPE
CHECK_CAPACITY
CHECK_CONTROLLER
CHECK_INTERFACE
CHECK_FTL_CONTEXT
CHECK_LOGICAL_PHYSICAL_MAPPING
CHECK_READ_WRITE_RELATIONS
CHECK_PROGRAM_ERASE_RELATIONS
CHECK_TRIM_RELATIONS
CHECK_GARBAGE_COLLECTION
CHECK_WEAR_LEVELLING
CHECK_ENDURANCE
CHECK_SMART_AND_HEALTH_DATA
CHECK_ECC_AND_ERROR_RELATIONS
CHECK_PERFORMANCE_CONTEXT
CHECK_TEMPERATURE_AND_POWER_CONTEXT
CHECK_FIRMWARE_VERSION
CHECK_HARDWARE_REVISION
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_SSD_ENTITIES
NAND_HIERARCHY_RELATIONS
CONTROLLER_RELATIONS
FTL_MAPPING_RELATIONS
READ_WRITE_RELATIONS
PROGRAM_ERASE_RELATIONS
TRIM_RELATIONS
GARBAGE_COLLECTION_RELATIONS
WEAR_LEVELLING_RELATIONS
ENDURANCE_RELATIONS
ECC_AND_ERROR_RELATIONS
SMART_AND_HEALTH_RELATIONS
SSD_STATE_TRANSITIONS
PERFORMANCE_PROFILES
FAILURE_RISK_HYPOTHESES
BOTTLENECK_HYPOTHESES
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON SSD_FIRMWARE_OR_CONFIGURATION_CHANGE {
NORMALISE
ENTITY_RESOLUTION
UPDATE_FTL_CONTEXT
UPDATE_NAND_MODEL
UPDATE_INTERFACE_CONTEXT
UPDATE_FIRMWARE_CONTEXT
RECOMPUTE_AFFECTED_RELATIONS
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_IO_HEALTH_ENDURANCE_OR_PERFORMANCE_DATA {
LINK_EVIDENCE
UPDATE_IO_TRACE
UPDATE_WEAR_PROFILE
UPDATE_HEALTH_PROFILE
UPDATE_ERROR_PROFILE
UPDATE_PERFORMANCE_PROFILE
REASSESS_FAILURE_RISK
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_SSD
BY_NAND_TYPE
BY_CONTROLLER
BY_FTL
BY_LOGICAL_ADDRESS
BY_PHYSICAL_PAGE
BY_READ
BY_WRITE
BY_TRIM
BY_GARBAGE_COLLECTION
BY_WEAR
BY_ENDURANCE
BY_HEALTH_STATE
BY_PERFORMANCE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_SSD_IO
TRACE_FTL_MAPPING
ANALYSE_READ_WRITE_OPERATIONS
ANALYSE_PROGRAM_AND_ERASE
ANALYSE_TRIM
ANALYSE_GARBAGE_COLLECTION
ANALYSE_WEAR_LEVELLING
ANALYSE_ENDURANCE
ANALYSE_HEALTH_AND_ERRORS
ANALYSE_PERFORMANCE
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_SSD_FROM_HDD
DISTINGUISH_LOGICAL_FROM_PHYSICAL_NAND_LOCATION
DISTINGUISH_TRIM_FROM_ERASURE
PRESERVE_NAND_CONTROLLER_FTL_FIRMWARE_AND_WORKLOAD_CONTEXT
DISTINGUISH_HEALTH_INDICATOR_FROM_CERTAIN_FAILURE
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_SSD_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
SOLID_STATE_DRIVE_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard