Kernel Cache Controller Non-Volatile Memory Boot Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The retrieval of user space persistently stored data for kernel modules can be slow, leading to increased boot times and downtime, as this data is often stored on disk and must be re-replicated upon system reboot, and the cache is lost during power loss.
Innovation Solution
Storing kernel in-memory data caches in electronically addressed non-volatile memory, such as flash memory, allows for faster data access and retention during power loss, reducing the need for re-replication and improving boot times by using a kernel cache controller to populate this memory with user space persistently stored data.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If user space persistently stored data is stored on disk storage, then data persistence is achieved, but data retrieval speed deteriorates
Solution Approach 1:
The patent segments the storage system into multiple layers: disk storage for persistent data storage, non-volatile memory for fast retrieval, and volatile memory for active caching. This segmentation allows each layer to fulfill its specific function optimally - disk provides persistence, non-volatile memory provides fast retrieval, and volatile memory provides active caching for frequently accessed data.
Solution Approach 2:
The patent introduces non-volatile memory as an intermediary layer between disk storage and volatile memory. This intermediary solves the contradiction by providing both persistence (like disk) and fast retrieval (like volatile memory), eliminating the need to choose between reliability and speed.
2Speed
If kernel cache is stored in volatile memory, then fast data access is achieved, but data loss occurs during power loss
Solution Approach 1:
The patent applies preliminary action by pre-loading user space persistently stored data into non-volatile memory during system boot or when data is first needed. This ensures that when the kernel needs to access this data, it is already available in fast non-volatile memory, eliminating the need for slow disk retrieval while maintaining persistence across power cycles.
Solution Approach 2:
The patent changes the memory parameter from volatile to non-volatile, fundamentally altering the data retention characteristics while maintaining fast access speeds. This parameter change allows the kernel cache to retain data during power loss while still providing fast access comparable to volatile memory.
3Reliability
If data is re-replicated to kernel space memory at each boot, then data availability is ensured, but boot time increases
Solution Approach 1:
The patent performs preliminary action by loading essential user space data into non-volatile memory during the boot process before kernel modules need to access it. This preliminary loading ensures data availability when needed while minimizing the time spent on data retrieval during boot, as the data is already in fast non-volatile memory rather than requiring full disk retrieval and processing.
Solution Approach 2:
The patent applies partial action by selectively loading only the most frequently accessed user space data into non-volatile memory during boot, rather than replicating all user space data. This partial replication ensures data availability for critical kernel operations while reducing the overall boot time by avoiding unnecessary data transfer of less frequently accessed data.
Data Source
AI summary
An operating system on a computer system can comprise a user space, which can comprise a persistent data store, and a kernel space, which can be extended by loading kernel modules. As provided herein, the kernel space can utilize kernel designated electronically addressed non-volatile memory (e.g., flash memory) to cache data from the user space persistent store, for example, upon a boot event. The kernel space can further comprise a cache controller that can be used to populate the kernel electronically addressed non-volatile memory with kernel in-memory data caches that comprise user space persistently stored data. In one embodiment, the kernel space can further comprise kernel designated volatile main memory (e.g., RAM), which can be used in conjunction with the kernel electronically addressed non-volatile memory to cache user space persistently stored data. In this way, kernel modules may access user space persistent store data from the RAM and/or electronically addressed non-volatile kernel cache.


