AHCI Controller Memory Sharing for Real Mode Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Information handling systems face memory constraints in real mode operating environments, particularly when implementing Advanced Host Controller Interface (AHCI) controllers, which require substantial memory resources due to the need for separate data structures for each port, exacerbating the limited memory space in these environments.

Innovation Solution

A system and method that configures persistent mass storage device controllers to use a shared block of system memory as a data structure for multiple storage devices, reducing memory consumption by sharing command lists and Frame Information Structure blocks among ports, especially in real mode environments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If AHCI controllers implement separate data structures for each port, then controller functionality and performance are improved, but memory consumption increases significantly

Engineering Contradiction:
Improvecontroller functionalityVSAvoidmemory consumption
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent merges the command list data structures of multiple AHCI controller ports into a single shared memory region. Instead of allocating separate command lists for each port, the system implements a unified command list structure that serves multiple ports simultaneously, thereby reducing overall memory consumption while maintaining controller functionality.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent makes the command list data structure universal by designing it to serve multiple ports rather than being dedicated to a single port. The shared command list structure can be dynamically allocated to different ports as needed, allowing one data structure to perform multiple functions across different controller ports.

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

2Adaptability or versatility

If AHCI controllers allocate substantial memory for port-specific data structures, then support for multiple storage devices is improved, but available system memory in real mode decreases

Engineering Contradiction:
Improvemulti-device supportVSAvoidavailable system memory
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The patent combines the memory allocations for command lists of multiple ports into a single shared memory pool. This merging approach allows the system to support multiple storage devices connected to different AHCI ports while consuming less total memory than would be required if each port had its own dedicated command list.

Inventive Principle:
Principle #5Merging (Combining)

3Productivity

If separate command lists are allocated for each AHCI port, then port-specific operations are optimized, but memory space efficiency deteriorates

Engineering Contradiction:
Improveport operation efficiencyVSAvoidmemory space efficiency
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent implements a dynamic memory allocation scheme where the shared command list structure can be flexibly assigned to different ports based on operational needs. Rather than static separate allocations, the system dynamically manages the shared command list resources to maintain port operation efficiency while optimizing memory space utilization.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS7464228B2System and method to conserve conventional memory required to implement serial ATA advanced host controller interface
Publication Date: 2008.12.09 DELL PROD LP
  • US7464228B2 patent drawing
  • US7464228B2 patent drawing
  • US7464228B2 patent drawing

AI summary

An information handling system includes a processor and a system memory coupled to the processor. The system has a plurality of persistent mass storage devices including first and second storage devices. A device controller includes a first port operably connected to the first storage device and a second port operably connected to the second storage device. The controller transfers data between system memory and the storage devices. System firmware includes instructions to configure the controller to define a first command list and frame information structure (FIS) associated with the first port and a second command list and FIS associated with the second port where the first and second command lists share a common block of system memory.