Distributed Memory Controller Sequencing for Data Stripe Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Contemporary memory system architectures face trade-offs between cost, performance, and upgradeability, particularly in high-throughput applications, and there is a need for efficient management of commands and data operations to maintain data integrity and consistency across multiple memory modules.
Innovation Solution
A memory system architecture that utilizes a global sequence number (GSN) to coordinate and order operations across multiple memory controllers and modules, ensuring consistent and coordinated execution of commands, even across different electronic chassis, using a protocol that assigns a unique GSN to each command and data packet, and employs a switch or communication network for acknowledgement and sequencing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory capacity is upgraded via memory modules connected to a bus or interconnecting wiring, then memory capacity and upgradeability are improved, but system complexity and response time may worsen due to additional communication paths
Solution Approach 1:
The system divides memory operations into segments handled by multiple memory controllers, each managing specific memory modules. This segmentation allows parallel processing of memory operations across different controllers while maintaining organized communication paths, reducing overall system complexity despite increased memory capacity.
Solution Approach 2:
A global sequence number (GSN) mechanism acts as an intermediary to coordinate commands across multiple memory controllers. The GSN ensures proper ordering and tracking of operations without requiring complex inter-controller communication protocols, simplifying the management of distributed memory operations.
2Productivity
If multiple memory controllers are used to handle high throughput, then bandwidth and performance are improved, but data consistency and operation ordering may worsen
Solution Approach 1:
The system implements a feedback mechanism where memory controllers report command status and data operations are tracked using global sequence numbers. This feedback loop ensures that all controllers maintain consistent state information and proper operation ordering, preserving data consistency while enabling parallel high-throughput operations.
Solution Approach 2:
The global sequence number serves as a mediator that coordinates operations across multiple memory controllers. By assigning and tracking GSNs for all memory operations, the system ensures proper ordering and consistency without requiring complex direct communication between controllers, maintaining reliability while enabling high bandwidth.
3Speed
If commands are dispatched to multiple memory controllers simultaneously, then response time and throughput are improved, but command ordering and data integrity may worsen
Solution Approach 1:
The system performs preliminary assignment of global sequence numbers to commands before dispatching them to multiple memory controllers. This preliminary action establishes the execution order in advance, ensuring that even though commands are sent simultaneously for improved response time, their execution ordering and data integrity are preserved through the pre-established GSN sequence.
Data Source
Figure 1~2
Figure 3
Figure 4~5
AI summary
A memory system and a method for managing the system is described. The system is configured such a plurality of system controllers, which may be RAID controllers, receive requests from the external environment and distribute the requests to a plurality of memory modules such that data may be stored in the memory modules. A global sequence number is assigned to the data of a data stripe so that the operations related to the data stripe are performed in an ordered manner so that the data remains consistent. A plurality of system controllers may comprise a domain and access a plurality of memory controllers and a plurality of domains may include at least one common memory module. A plurality of groups of controllers may communicate with a switch or with a representative controller so as to coordinate the assignment of global sequence numbers.