Separate Read Write Caches for Flash Address Mapping

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

As solid-state memory devices like flash memory require efficient address mapping for read and write operations, existing solutions face challenges with increasing memory capacity, leading to inefficiencies in address translation and storage, particularly due to the need for separate caching mechanisms for read and write operations.

Innovation Solution

A storage controller with separate read and write caches manages address mapping information, allowing for efficient buffering and translation of logical to physical addresses, with the read cache optimized for quick access and the write cache handling updates for permanent storage, reducing the need for extensive main memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If the entire address mapping information is stored in main memory, then address translation is fast and efficient, but main memory size requirements become prohibitively large for high-capacity flash memory devices

Engineering Contradiction:
Improveaddress translation speedVSAvoidmain memory size
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent segments the address mapping information into two parts: a mapping table stored in flash memory containing the complete address mappings, and a mapping index stored in main memory containing only the addresses of the mapping table entries. This segmentation allows the system to maintain fast address translation through the index while dramatically reducing main memory requirements by storing only small index entries rather than the entire mapping table.

Inventive Principle:
Principle #1Segmentation

2Productivity

If a single cache is used for both read and write address mapping, then device complexity is reduced, but read and write performance cannot be optimized separately

Engineering Contradiction:
Improveread and write performanceVSAvoidcaching mechanism complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent divides the caching mechanism into two separate caches: a read cache for storing read address mappings and a write cache for storing write address mappings. This segmentation allows each cache to be optimized for its specific function, improving both read and write performance independently while maintaining manageable complexity through clear functional separation.

Inventive Principle:
Principle #1Segmentation

3Quantity of substance

If address mapping information is stored entirely in flash memory, then main memory usage is minimized, but address translation requires additional read operations from flash reducing overall processing speed

Engineering Contradiction:
Improvemain memory usageVSAvoidaddress translation speed
Core Design Contradiction:
Quantity of substanceVSSpeed

Solution Approach 1:

The patent implements preliminary action by pre-loading the mapping index into main memory from the mapping table stored in flash memory. This index contains the addresses of all mapping table entries. By having this index readily available in fast main memory, the system can quickly locate and retrieve specific mapping entries from flash memory without scanning the entire mapping table, thus minimizing flash read operations while maintaining fast address translation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9256527B2Logical to physical address mapping in storage systems comprising solid state memory devices
Publication Date: 2016.02.09 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US9256527B2 patent drawing
  • US9256527B2 patent drawing
  • US9256527B2 patent drawing

AI summary

The present idea provides a high read and write performance from/to a solid state memory device. The main memory of the controller is not blocked by a complete address mapping table covering the entire memory device. Instead such table is stored in the memory device itself, and only selected portions of address mapping information are buffered in the main memory in a read cache and a write cache. A separation of the read cache from the write cache enables an address mapping entry being evictable from the read cache without the need to update the related flash memory page storing such entry in the flash memory device. By this design, the read cache may advantageously be stored on a DRAM even without power down protection, while the write cache may preferably be implemented in nonvolatile or other fail-safe memory. This leads to a reduction of the overall provisioning of nonvolatile or fail-safe memory and to an improved scalability and performance.