Dynamic Buffer Allocation for Memory Eviction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems face inefficiencies in handling overlapping eviction procedures due to the dedicated nature of intermediary buffers, which leads to increased latency and inability to perform multiple eviction procedures in parallel for the same bank.

Innovation Solution

Dynamic allocation of intermediary buffers from a pool allows for parallel execution of eviction procedures, reducing latency by selecting available buffers based on activity status and updating flags to ensure efficient resource utilization.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dedicated intermediary buffers are assigned to each bank for eviction procedures, then buffer availability for single procedures is guaranteed, but multiple overlapping eviction procedures for the same bank cannot be performed in parallel

Engineering Contradiction:
Improveparallel execution capabilityVSAvoidbuffer allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a pool of intermediary buffers that can be dynamically allocated to serve multiple banks and multiple eviction procedures. Instead of dedicating specific buffers to specific banks, the same pool of buffers can be shared across different banks and concurrent eviction procedures, enabling parallel execution while maintaining buffer availability through dynamic resource allocation.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Loss of time

If dedicated buffers are used for each bank, then buffer conflicts between banks are avoided, but latency increases when eviction procedures overlap

Engineering Contradiction:
Improveeviction procedure latencyVSAvoidbuffer management simplicity
Core Design Contradiction:
Loss of timeVSEase of operation

Solution Approach 1:

The patent applies dynamics by implementing dynamic buffer allocation where buffers are not statically assigned to banks but are dynamically allocated from a shared pool based on real-time需求的. The system monitors buffer activity status and allocates buffers to eviction procedures as they become available, allowing the buffer assignment to adapt dynamically to changing workloads and enable overlapping procedures to execute in parallel with reduced latency.

Inventive Principle:
Principle #15Dynamics

3Productivity

If a pool of buffers is shared across multiple banks, then parallel eviction procedures can execute concurrently, but buffer allocation management becomes more complex

Engineering Contradiction:
Improveconcurrent procedure executionVSAvoidallocation logic complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces complex mechanical buffer allocation mechanisms with a streamlined logical system. Instead of using complex hardware arbitration or multiple dedicated buffer sets, the system uses a logical allocation approach where a pool manager tracks buffer activity status and allocates buffers based on simple availability checks. This substitution of complex mechanical allocation with streamlined logical management enables concurrent execution while keeping the allocation logic relatively simple.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11586557B2Dynamic allocation of buffers for eviction procedures
Publication Date: 2023.02.21 MICRON TECHNOLOGY INC
  • US11586557B2 patent drawing
  • US11586557B2 patent drawing
  • US11586557B2 patent drawing

AI summary

Methods, systems, and devices for cache management in a memory subsystem are described. A device may determine to perform an eviction procedure for a bank of a volatile memory that operates as a cache for a non-volatile memory. The eviction procedure may save data from the bank of the volatile memory to the non-volatile memory. The device may determine an activity status for at least one buffer in a pool of buffers that are coupled with the volatile memory and the non-volatile memory. The device may select the at least one buffer in the pool of buffers for the eviction procedure for the bank of the volatile memory based at least in part on the activity status for that buffer.