Memory Controller Command Fetching via Remaining Processing Amount

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing memory systems that use arbitration methods to fetch commands from multiple hosts and queues based solely on the number of commands fail to consider the types and data amounts, leading to variations in processing amounts among hosts and queues, resulting in uneven processing loads over time.

Innovation Solution

A memory system with a controller that calculates a remaining processing amount for each queue, selects a queue based on these calculations, and fetches new commands to ensure uniform processing across hosts and queues by considering the types and data amounts of commands, using a remaining processing table to manage and adjust processing costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If arbitration method fetches commands based solely on the number of commands per queue, then the number of fetched commands is uniform among hosts and queues, but the processing amounts vary among hosts and queues due to different command types and data amounts

Engineering Contradiction:
Improvenumber of commands fetchedVSAvoiduniformity of processing amounts
Core Design Contradiction:
Quantity of substanceVSManufacturing precision

Solution Approach 1:

The patent changes the arbitration parameter from simple command count to a weighted value that considers command type and data amount. Each command is assigned a weight based on its processing requirements, and the arbitration unit selects queues based on these weighted values rather than raw command counts, thereby achieving more uniform processing amounts across different hosts and queues

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces a remaining processing amount table as an intermediary data structure that stores and tracks the processing workload for each queue. This table acts as a mediator between the arbitration unit and the command queues, allowing the system to make informed arbitration decisions based on actual processing requirements rather than just command counts

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If arbitration method selects queues based only on command count, then fetching is simple and fast, but processing loads become uneven over time across hosts and queues

Engineering Contradiction:
Improvecommand fetching speedVSAvoidbalance of processing loads
Core Design Contradiction:
ProductivityVSStability of the object's composition

Solution Approach 1:

The patent performs preliminary calculation of remaining processing amounts for each queue before arbitration. The system pre-computes weighted values based on command types and data amounts in each queue, so that when arbitration occurs, it can quickly select balanced queues without real-time complex calculations, maintaining high fetching speed while achieving load balance

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements a feedback mechanism where the remaining processing amount table is continuously updated as commands are processed. The arbitration unit uses this feedback information to make informed decisions, selecting queues with lower remaining processing amounts to maintain balanced load distribution over time

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11487477B2Memory system and method of fetching command
Publication Date: 2022.11.01 KIOXIA CORP
  • US11487477B2 patent drawing
  • US11487477B2 patent drawing
  • US11487477B2 patent drawing

AI summary

A memory system includes a non-volatile memory and a controller. The controller controls writing of data to the non-volatile memory or reading of data from the non-volatile memory, in response to a command from at least one host. The controller performs command fetching by calculating for each of a plurality of queues, a remaining processing amount, which is an amount of processing remaining for one or more commands previously fetched therefrom, selecting a queue based on the remaining processing amounts calculated for the plurality of queues, and fetching a new command from the selected queue.