Directory Cache Command Ordering via Dynamic Linked List
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Directory-based cache management systems face challenges in maintaining the execution order of commands on cached data without significantly impacting overall cache performance, as existing solutions either halt processing or require external mechanisms to enforce order.
Innovation Solution
A dynamic linked list is maintained within the cache line's directory entry to enforce execution order, allowing new commands to access non-contended lines while rejecting conflicting commands, thus avoiding the need for external ordering mechanisms and minimizing performance impact.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If external mechanisms are used to enforce command execution order, then command ordering reliability is improved, but device complexity increases
Solution Approach 1:
The patent merges the command ordering function with the directory structure by integrating head tag and tail tag fields directly into the directory entry. This eliminates the need for separate external ordering mechanisms, as the directory now simultaneously tracks both cache line status and command execution order through its tags.
Solution Approach 2:
The directory entry is enhanced to serve multiple functions: it tracks cache line availability (busy/not busy status), maintains command execution order (through head and tail tags), and manages command queuing. This multi-functional design eliminates the need for dedicated external ordering structures.
2Reliability
If all commands are processed sequentially to maintain execution order, then command ordering reliability is improved, but productivity decreases
Solution Approach 1:
The patent segments the command processing into independent queues for different cache lines, allowing parallel processing of non-contended commands. Each cache line maintains its own directory entry with head and tail tags, enabling simultaneous command execution across multiple cache lines while preserving order within each line.
Solution Approach 2:
The system dynamically adjusts command processing based on cache line contention status. When multiple commands target different cache lines, they are processed concurrently; when they target the same line, sequential processing is enforced. This dynamic behavior maintains ordering reliability while maximizing overall productivity.
3Reliability
If the cache line is stalled to enforce command order, then command ordering reliability is improved, but loss of time increases
Solution Approach 1:
The patent establishes command execution order in advance by maintaining a queue structure with head and tail tags in the directory entry. Commands are accepted and queued before execution, with their position in the execution sequence determined by their arrival order. This preliminary ordering eliminates the need for stalling during execution, as the sequence is predetermined.
Solution Approach 2:
The head and tail tags act as intermediaries between command arrival and command execution. They track the queue state and determine execution order without requiring the cache line to stall. The tags mediate the timing and sequencing, allowing commands to be processed as resources become available while maintaining correct order.
Data Source
AI summary
A method for processing commands in a directory-based computer memory management system includes receiving a command to perform an operation on data stored in a set of one or more computer memory locations associated with an entry in a directory of a computer memory, the entry is associated with an indicator for indicating whether the set of one or more computer memory locations is busy, a head tag, and a tail tag. The command is associated with a command tag and a predecessor tag, and checking the indicator to determine whether the set of one or more computer memory locations is busy.


