Dynamic Microcode for Non-Volatile Memory Arbitration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern non-volatile memory lacks a mechanism to implement non-default instructions based on the characteristics of a memory module or software application, limiting customization and optimization of memory operations.

Innovation Solution

A dynamic download agent is installed in conjunction with a controller of electrically erasable non-volatile memory, allowing for the selection and installation of non-default microcode or firmware that can manage raw memory cells based on specific characteristics and application requirements, enabling customizable control and management of memory operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If default microcode is used in non-volatile memory, then the memory operates reliably with standardized control, but the memory cannot be customized or optimized for specific applications or memory module characteristics

Engineering Contradiction:
Improvecustomization capabilityVSAvoidmemory control system
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic microcode that can be loaded and switched at runtime based on application requirements and memory characteristics. The microcode is no longer static but can be dynamically updated through a download agent that retrieves appropriate microcode versions and activates them based on detected conditions, making the memory system adaptable without permanent hardware changes

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of the memory controller by loading different microcode versions that implement different control algorithms and management strategies. This allows the same hardware to operate with different parameters (wear-leveling aggressiveness, cache management policies, etc.) depending on the application needs

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If multiple microcode versions are stored for different applications, then the memory can be optimized for various use cases, but the memory management complexity increases

Engineering Contradiction:
Improveapplication-specific optimizationVSAvoidmicrocode selection and management
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The download agent implements self-service by automatically detecting memory module characteristics, querying application requirements, and selecting the appropriate microcode version without user intervention. The system monitors its own state and autonomously loads the correct microcode, eliminating the need for manual configuration or complex user-facing selection interfaces

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback from memory performance monitoring and application behavior analysis to determine which microcode version should be active. The download agent continuously evaluates system state and microcode performance, switching between versions based on feedback about what works best for current conditions

Inventive Principle:
Principle #23Feedback

3Productivity

If the microcontroller handles all memory operations with default instructions, then the host processor is relieved of processing demands, but the memory operations cannot be optimized for specific performance requirements

Engineering Contradiction:
Improvememory operation efficiencyVSAvoidoperation customization
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The microcode executed by the microcontroller is made dynamic and configurable, allowing it to adapt its operation mode based on performance requirements. Different microcode versions implement different algorithms for read/write operations, wear-leveling strategies, and error handling, enabling the microcontroller to be optimized for specific workloads while still maintaining its primary role in handling memory operations

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7925807B2Dynamic microcode for non-volatile memory
Publication Date: 2011.04.12 MICROSOFT TECHNOLOGY LICENSING LLC
  • US7925807B2 patent drawing
  • US7925807B2 patent drawing
  • US7925807B2 patent drawing

AI summary

Providing for arbitration and dynamic downloading of microcode at a controller associated with electrically erasable non-volatile memory is described herein. By way of example, a download agent can be provided to a module of such non-volatile memory. Characteristics of the memory module and/or specifications of a host application can be utilized to select one or more memory control modules from a group of such control modules. A selected control module(s) can be installed at the controller via the download agent to provide non-default management of raw memory. Further, arbitration of multiple control modules can be implemented to select among various mechanisms to control/manage raw memory. Arbitration can be based, for instance, on specifications of a host device application. Accordingly, great flexibility and control of raw non-volatile memory can be provided for a host device at an application level.