Storage Controller Command Prioritization by Security Key Cache
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing storage systems face performance degradation due to the need to frequently load encryption/decryption keys from DRAM to the cache for secure data storage, especially when the encryption or decryption order is not known in advance, leading to increased latency and power consumption.
Innovation Solution
The storage system prioritizes commands with keys stored in the cache, minimizing key switching by scheduling command execution based on cached keys and using the NVMe standard to process commands out of order, thereby reducing the need for frequent key loading from DRAM.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If keys are frequently loaded from DRAM to cache for secure data storage, then security is maintained, but performance degrades and power consumption increases
Solution Approach 1:
The system performs preliminary actions by pre-loading encryption keys into the cache memory before they are actually needed for data operations. By anticipating key usage requirements and loading keys in advance, the system ensures that keys are already available in the cache when needed, thereby maintaining security requirements while avoiding performance degradation from frequent key loading during active data operations.
Solution Approach 2:
The system dynamically adjusts key loading strategies based on operational conditions. The controller monitors data operation patterns and adaptively determines which keys to pre-load into cache, optimizing the balance between security and performance. This dynamic approach allows the system to maintain security by ensuring keys are available while minimizing unnecessary key loading that would consume power and reduce performance.
2Reliability
If keys are frequently loaded from DRAM to cache, then secure data storage is maintained, but power consumption increases
Solution Approach 1:
The system performs preliminary key loading operations during periods of lower activity, pre-positioning keys in the cache before they are needed for data operations. This approach ensures secure data storage by guaranteeing key availability while spreading the power consumption over time rather than concentrating it during active data operations, thereby reducing peak power demands.
Solution Approach 2:
The system implements self-service mechanisms where the controller autonomously manages key loading decisions based on monitored operational patterns. By self-managing the key caching strategy, the system optimizes power consumption by loading keys only when beneficial, maintaining secure data storage without unnecessary power expenditure on frequent key loading operations.
3Productivity
If command execution order is changed to prioritize cached keys, then key switching is minimized, but command processing complexity increases
Solution Approach 1:
The system implements feedback mechanisms where the controller continuously monitors which encryption keys are currently cached and uses this information to dynamically adjust command execution prioritization. Commands that require keys already present in the cache are automatically prioritized for execution, while commands requiring keys not yet cached are scheduled for later when keys can be pre-loaded. This feedback-driven approach minimizes key switching by aligning command execution with cache contents, and the complexity is managed through systematic prioritization rules rather than complex processing logic.
Data Source
AI summary
A storage system and method for command execution ordering by security key are provided. In one example, the storage system has a non-volatile memory, a volatile memory storing a plurality of keys, and a controller with a cache storing a subset of the plurality of keys. The storage system gives priority to a command whose key is stored in the cache in the controller over commands whose keys are stored only in the volatile memory. This avoids transferring a key from the volatile memory to the cache in the controller, thereby improving efficiency of the storage system.


