Transaction Pipelining

The FSB Is Subdivided into Signal Groups

Refer to Figure 44-2 on page 1143. The FSB is subdivided into signal groups. Each signal group is only used during a particular phase of the transaction. The subsections that follow provide a brief introduction to the transaction phases.

Figure 44-2. FSB Signal Groups (except for the Arbitration group)


Step 1: Gain Ownership of the Request Phase Signal Group

When a Request Agent wishes to acquire FSB ownership in order to issue a transaction request, it arbitrates for ownership of the portion of the FSB referred to as the Request Phase signal group.

Step 2: Issue the Transaction Request

The transaction request is driven onto the Request Phase signal group during the Request Phase of the transaction. All of the other FSB agents are required to latch the new transaction request. Once the Request Agent has completed delivery of the transaction request to the other agents, it ceases to drive the signals that comprise the Request Phase signal group. One BCLK period after the current request bus owner begins to turn off its drivers, the same agent or another agent could take ownership of the Request Phase signal group and begin to drive out another transaction request.

Step 3: Yield Request Phase Signal Group, Proceed to Next Signal Group

The Request Agent doesn't have to request ownership of the signal group used during the phase that follows the Request Phase. As the Request Agent finishes each phase, it relinquishes control of the signal group used in that phase and automatically takes ownership of (or observes, as the case may be) the signal group used in the next phase.

The Phases Proceed in a Predefined Order

The phases are completed in a predefined order:

  1. The Request Phase. A detailed description can be found in the chapter entitled “Pentium® 4 FSB Request Phase” on page 1201.

  2. The Snoop Phase. A detailed description can be found in the chapter entitled “Pentium® 4 FSB Snoop Phase” on page 1225.

  3. The Response Phase. A detailed description can be found in the chapter entitled “Pentium® 4 FSB Response and Data Phases” on page 1241.

  4. The Data Phase. A detailed description can be found in the chapter entitled “Pentium® 4 FSB Response and Data Phases” on page 1241.

The sections that follow provide a brief description of the phases.

The Request Phase

The Request Agent uses the Request Phase signal group to issue the transaction request to the other FSB agents. All of the other FSB agents latch the request. The Response Agents (i.e., the targets) begin the decode to determine which of them is the target of the transaction. The Snoop Agents determine if it's a memory transaction. If it is, they must perform a cache lookup and deliver the snoop result during the Snoop Phase of this transaction. A detailed description of the Request Phase can be found in “Pentium® 4 FSB Request Phase” on page 1201.

The Snoop Phase

After delivering the transaction request, the Request Agent proceeds to the Snoop Phase and begins sampling the Snoop Result signal group. The Snoop Agents are responsible for delivering the result of their cache snoop during this phase. In addition, the currently-addressed Response Agent can assert the DEFER# signal if it intends to issue a Retry or a Deferred response during the Response Phase (either of which indicates that the transaction must be terminated without a data transfer). Once the snoop result has been received, the Request Agent stops sampling the snoop result signals and the Snoop Agents cease driving them. A detailed description of the Snoop Phase can be found in “Pentium® 4 FSB Snoop Phase” on page 1225.

The Response Phase

Having completed the Snoop Phase, the Request Agent proceeds to the Response Phase and begins sampling the Response signal group. The Response Agent (i.e., the target addressed by the request) is responsible for delivering its response (i.e., how it intends to handle the request) to the Request Agent during this phase. Once the response has been received, the Request Agent stops sampling the Response signal group and the Response Agent ceases to drive the response. The response delivered indicates one of the following:

  • The Response Agent tells the Request Agent to Retry the transaction later.

  • The Response Agent indicates a Hard Failure (do not retry and there will be no data transfer; typically causes a Machine Check exception).

  • If it's a write, the Response Agent will accept the data in the Data Phase.

  • If it's a read, the Response Agent will supply the data during the Data Phase.

  • If a snooper indicated a hit on a modified line (HITM# was asserted), the entire line will be transferred from the snooper to memory (and, if it's a read, to the Request Agent as well). This is referred to as an Implicit Writeback response.

  • The Response Agent instructs the Request Agent to end the transaction with no data transferred. The Response Agent will obtain the requested read data or deliver the write data off-line and then will initiate a Deferred Reply transaction to indicate completion. This is referred to as the Deferred response.

A detailed description of the Response Phase can be found in “Pentium® 4 FSB Response and Data Phases” on page 1241.

The Data Phase(s)

Most transactions involve a data transfer, but some don't. If a transaction involves a data transfer, the Request Agent proceeds to the Data Phase of the transaction. If it's a write transaction, the Request Agent takes ownership of the data bus and delivers the data to the Response Agent during this phase. If it's a read transaction, the Response Agent takes ownership of the data bus and delivers the requested read data to the Request Agent. Once the Data Phase completes, the transaction has completed and the Request and Response Agents release ownership of the data bus. A detailed description of the Data Phase can be found in “Pentium® 4 FSB Response and Data Phases” on page 1241.

The Next Agent Can't Use a Signal Group Until the Current Agent Is Finished With It

When a Request Agent has finished driving its transaction request onto the Request Phase signal group and backed off its output drivers, an additional request can be issued by the same or a different Request Agent. This is pictured in Figure 44-3 on page 1147.

Figure 44-3. Pipelined Transactions


At any given instant, a number of transactions may be in progress at various stages of completion. As an example, in Figure 44-3 on page 1147 there are nine transactions in progress on the FSB at various phases on their way to completion (note that the Pentium® 4 processor family can have to 12 transactions in progress simultaneously). Also note that the numbers across the top of the illustration do not represent BCLK cycles; they merely represent the passage of time. The figure also highlights that some phases can take some time to complete:

  • The Snoop Phase (see times 9 and 10 in the figure) can be stretched by the snoopers if any of them need more time in order to produce the results of the cache lookup.

  • The Response Phase (see times 7, 8, and 9) can be stretched by the currently-addressed target if it requires extra time before it decides what its response to the transaction will be.

  • The Data Phase (see times 6 through 10) of the transaction cannot take place until the Request and Response Agents are both ready to transfer the data.

In those cases where the current owner(s) of a signal group is not yet done using it, the next owner(s) cannot start using it until the previous agent's done and the signal group has been completely released.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.134.87.95