Memory Module Packet Queues for Low-Latency Shared Memory Transfer
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing methods for exchanging network packets between a host and a memory module, such as NW-DIMM, result in high latency and reduced bandwidth due to smaller packets being sandwiched between larger ones, leading to stalling of acknowledgements and inefficient bandwidth utilization.
Innovation Solution
Implementing multiple queues, including a latency queue pair (LQP) and a performance queue pair (PQP), to segregate network packets based on size, allowing independent transmission and reception of packets of varying sizes, thereby reducing latency and improving bandwidth.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If network packets are transmitted in a single queue without segregation, then the transmission process is simple, but smaller packets experience high latency due to being sandwiched between larger packets
Solution Approach 1:
The single transmission queue is segmented into multiple queues (e.g., high-priority and low-priority queues) based on packet size or type. Small packets are directed to high-priority queues while large packets go to low-priority queues, allowing small packets to be transmitted without being blocked by large packets, thereby reducing latency.
Solution Approach 2:
Different queues are assigned different transmission priorities or characteristics tailored to specific packet types. High-priority queues handle small, time-sensitive packets with faster transmission, while low-priority queues handle large, less time-sensitive packets, optimizing the transmission experience for each packet category.
2Productivity
If smaller packets wait for larger packets to complete transmission, then bandwidth utilization is maintained, but acknowledgement stalling occurs reducing overall bandwidth
Solution Approach 1:
The transmission queue is segmented into multiple priority levels, allowing small packets to be transmitted independently of large packets. This segmentation prevents small packets from waiting for large packet transmission to complete, eliminating acknowledgement stalling and ensuring continuous bandwidth utilization.
Solution Approach 2:
By allowing small packets to be transmitted in high-priority queues while large packets are transmitted in low-priority queues, the system maintains continuous transmission activity without interruptions. Acknowledgements for small packets can be sent back continuously, preventing stalling and maintaining steady bandwidth utilization.
Data Source
AI summary
A method and system for exchanging network packets in a memory system is provided. A size of each network packet to be transmitted is determined. Each network packets is segregated into one of plural queues based on the size of the network packet. Each network packet is transmitted over a shared memory, according to the queue in which the network packet is segregated.


