Reference Number: 327043-001
45
Intel® Xeon® Processor E5-2600 Product Family Uncore Performance Monitoring
2.4
Home Agent (HA) Performance Monitoring
2.4.1
Overview of the Home Agent
The HA is responsible for the protocol side of memory interactions, including coherent and non-
coherent home agent protocols (as defined in the
Intel
®
QuickPath Interconnect Specification
).
Additionally, the HA is responsible for ordering memory reads/writes, coming in from the modular
Ring, to a given address such that the iMC (memory controller).
In other words, it is the coherency agent responsible for guarding the memory controller. All requests
for memory attached to the coupled iMC must first be ordered through the HA. As such, it provides
several functions:
• Interface between Ring and iMC:
Regardless of the memory technology, the Home Agent receives memory read and write requests
from the modular ring. It checks the memory transaction type, detects and resolves the coherent
conflict, and finally schedules a corresponding transaction to the memory controller. It is also
responsible for returning the response and completion to the requester.
• Conflict Manager:
All requests must go through conflict management logic in order to ensure coherent consistency.
In other words, the view of data must be the same across all coherency agents regardless of who
is reading or modifying the data. On Intel® QPI, the home agent is responsible for tracking all
requests to a given address and ensuring that the results are consistent.
• Memory Access Ordering Control:
• The Home Agent guarantees the ordering of RAW, WAW and WAR. Home Snoop Protocol Support
(for parts with Directory Support):
Table 2-32. Unit Masks for TxR_INSERTS
Extension
umask
[15:8]
Description
AD_CACHE
bxxxxxxx1
AD - Cachebo:
Ring transactions from the Cachebo destined for the AD ring. Some
example include outbound requests, snoop requests, and snoop
responses.
AK_CACHE
bxxxxxx1x
AK - Cachebo:
Ring transactions from the Cachebo destined for the AK ring. This is
commonly used for credit returns and GO responses.
BL_CACHE
bxxxxx1xx
BL - Cacheno:
Ring transactions from the Cachebo destined for the BL ring. This is
commonly used to send data from the cache to various destinations.
IV_CACHE
bxxxx1xxx
IV - Cachebo:
Ring transactions from the Cachebo destined for the IV ring. This is
commonly used for snoops to the cores.
AD_CORE
bxxx1xxxx
AD - Corebo:
Ring transactions from the Corebo destined for the AD ring. This is
commonly used for outbound requests.
AK_CORE
bxx1xxxxx
AK - Corebo:
Ring transactions from the Corebo destined for the AK ring. This is
commonly used for snoop responses coming from the core and
destined for a Cachebo.
BL_CORE
bx1xxxxxx
BL - Corebo:
Ring transactions from the Corebo destined for the BL ring. This is
commonly used for transfering writeback data to the cache.