Writeback Queue
Function Description
The Writeback Queue contains 18 Writeback Entries, responsible for writing back replacement blocks (Release) to the L2 Cache via the C channel of TL-C, and for responding to Probe requests (ProbeAck).
Feature 1: WritebackQueue Empty Entry Allocation and Refusal
For timing considerations, new requests are refused when the WBQ is full; however, when the WBQ is not full, all requests are accepted, and an empty entry is allocated for the new request. The current version no longer supports merging requests within the Writeback Queue.
Feature 2: Request Stalling Conditions
The TileLink specification restricts concurrent transactions, requiring that if a master has a pending Grant (i.e., has not yet sent a GrantAck), it cannot send a Release with the same address. Therefore, if any miss request finds an entry with the same address in the Writeback Queue when entering the MissQueue, that miss request will be stalled.
Overall Block Diagram
The overall architecture of the WritebackQueue is shown in 此图.
Interface Timing
Request Interface Timing Instance
此图 shows the interface timing on the Writeback Queue for a request that needs to be written back to L2.
WritebackEntry Module
WritebackEntry State Machine Design
State Design: The state machine design for the WritebackEntry is shown in 此表 and 此图:
State | Description |
---|---|
s_invalid | Reset state, this WritebackEntry is empty |
s_release_req | Sending Release or ProbeAck request |
s_release_resp | Waiting for ReleaseAck request |