Transactional Memory Ring Buffer Priority Management
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Network processor integrated circuits face challenges in efficiently managing packet traffic and buffer operations, particularly in handling full or empty buffer rings, which affects throughput and processing efficiency.
Innovation Solution
A transactional memory system with a command/push/pull (CPP) bus interface, including a ring buffer control circuit and memory unit, that uses head and tail pointers to manage buffer operations, supports 'put into ring,' 'get from ring,' 'put into ring with low priority,' and 'get from one of a set of rings' commands, ensuring efficient buffer management and error handling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If traditional buffer management is used in network processors, then buffer operations can be performed, but overflow and underflow errors occur when rings are full or empty, reducing throughput and processing efficiency
Solution Approach 1:
The patent implements preliminary checks of ring buffer status (full/empty conditions) before executing put/get operations. The system proactively identifies and handles potential overflow/underflow conditions by returning error codes before the actual operations occur, preventing data loss and ensuring reliable buffer management while maintaining processing throughput.
2Productivity
If priority-based buffer management is implemented, then critical operations can be handled efficiently, but system complexity increases with multiple priority levels and scheduling mechanisms
Solution Approach 1:
The patent applies different priority handling to different ring buffers individually rather than implementing a complex global priority scheduling system. Each ring buffer can be configured with its own priority level (high or low), allowing critical buffers to be serviced first while keeping the overall system architecture simple and manageable.
3Reliability
If ring buffer status is continuously monitored to prevent overflow/underflow, then operational reliability improves, but additional control logic and processing overhead increase system complexity
Solution Approach 1:
The ring buffer management system performs self-monitoring of its own status (head/tail pointer positions, full/empty conditions) and automatically handles error conditions by returning appropriate error codes. This self-service approach ensures reliable buffer management without requiring complex external control logic or additional monitoring hardware.
Data Source
AI summary
A transactional memory (TM) includes a control circuit pipeline and an associated memory unit. The memory unit stores a plurality of rings. The pipeline maintains, for each ring, a head pointer and a tail pointer. A ring operation stage of the pipeline maintains the pointers as values are put onto and are taken off the rings. A put command causes the TM to put a value into a ring, provided the ring is not full. A get command causes the TM to take a value off a ring, provided the ring is not empty. A put with low priority command causes the TM to put a value into a ring, provided the ring has at least a predetermined amount of free buffer space. A get from a set of rings command causes the TM to get a value from the highest priority non-empty ring (of a specified set of rings).


