System Agent
在Sandy Bridge微架构中实现的系统代理包括了如下的组件:
- 一个总裁器,用于管理所有的访问请求,并将这些请求路由(即转发)到正确的位置上。访问请求可能来自于环域(ring domain)和I/O(PCIe* 和DMI)。
- PCIe控制器,用于连接外部PCIe设备。PCIe控制器根据产品的分割规范(product segment specifics)可能具有不同的配置方式:x16+x4,x8+x8+x4,x8+x4+x4+x4。
- DMI控制器连接PCH芯片组。
- 集成的显示引擎,Flexible Display Interconnect(FDI),和Display Port (DP口),服务于内部图形操作
- 内存控制器
所有的访存流量都会从仲裁器路由到内存控制器。第二代的Intel Core 2xxx处理器中的内存控制器支持双通道的DDR内存,支持的数据速率1066MHz,1333MHz和1600MHz,以及每周期8字节的带宽(依赖于单元类型,系统配置和DRAM类型)。使用一个本地的哈希函数,内存地址被分布在两个内存通道上,目的是尝试平衡通道间的负载均衡,从而获得最大的带宽和最小的热点冲突。
为了最佳性能,在两个通道上安装相等容量的内存,最好是同类型的DIMM。而且,同样容量的内存如果具有更多的rank,在某种程度上可以获得更好的内存带宽,因为更多的DRAM页面可以被同时打开。高度推荐安装受支持的最高速度DRAM(例如1333MHz或1600MHz)以及配置成DRAM的最佳时序。
两个通道各自有独立的资源,可以独立的处理访存请求。内存控制器有一个高性能的乱序调度器(注:不要与处理器核中流水线的乱序调度器混淆),从而获得最大的访存带宽与最小的访存时延。每个内存通道有一个可以容纳32个缓存行的写存数据缓冲区。当写存操作的数据被写入到缓冲区之后,即认为写操作完成了。随后某个时间,写存数据缓冲区会被冲刷到(flush out)到内存中,并不影响写操作时延。
内存控制器不能高效地处理局部写存(partial writes)操作,这里局部写存表示没有完整的写入一个缓存行(64字节)。在这种情况下,可能引发DDR通道的读-改-写操作,导致访存性能降低。只要有可能,软件应该避免创建局部写存事务(即操作),替代地,应该考虑先将局部写存数据缓存,直到形成一个完整的缓存行写操作。
内存控制器也支持高优先级的同步请求(例如USB同步或显示同步请求)。来自于显示引擎的巨量访存请求可能占据部分访存带宽,在某种程度上可能会影响处理器核的访存时。延。