PCI总线规范定义了一系列与Cache相关的总线事务,以提高PCI设备与主存储器进行数据交换的效率,即DMA读写的效率。当PCI设备使用DMA方式向存储器进行读写操作时,一定需要经过HOST主桥,而HOST主桥通过FSB总线[1]向存储器控制器进行读写操作时,需要进行Cache共享一致性操作。

PCI设备与主存储器进行的Cache共享一致性增加了HOST主桥的设计复杂度。在高性能处理器中Cache状态机的转换模型十分复杂。而HOST主桥是FSB上的一个设备,需要按照FSB规定的协议处理这个Cache一致性,而多级Cache的一致性和状态转换模型一直是高性能处理器设计中的难点。

不同的HOST主桥处理PCI设备进行的DMA操作时,使用的Cache一致性的方法并不相同。因为Cache一致性操作不仅与HOST主桥的设计相关,而且主要与处理器和Cache Memory系统设计密切相关。

PowerPC和x86处理器可以对PCI设备所访问的存储器进行设置,其设置方法并不相同。其中PowerPC处理器,如MPC8548处理器,可以使用Inbound寄存器的RTT字段和WTT字段,设置在PCI设备进行DMA操作时,是否需要进行Cache一致性操作,是否可以将数据直接写入Cache中。RTT字段和WTT字段的详细说明见第2.2.3节。

而x86处理器可以使用MTRR(Memory Type Range Registers)设置物理存储器区间的属性,是否为可Cache空间。下文分别讨论在PowerPC与x86处理器中,PCI设备进行DMA写操作时,如何进行Cache一致性操作。

但是与PowerPC处理器相比,x86处理器在处理PCI设备的Cache一致性上略有不足,特别是网络设备与存储器系统进行数据交换的效率。因为x86处理器所重点优化的是PCIe设备,目前x86处理器使用的IOAT(I/O Acceleration Technology)技术,极大增强了PCIe设备与主存储器进行数据通信的效率,但是这种技术仍然不能与一些Data Plane处理器,如XLP832,P4080处理器优化I/O访问的技术相提并论。毕竟x86处理器所适用的领域依然是PC、服务器等计算和控制领域,并不是Data Plane处理器领域。

3.3 与Cache相关的PCI总线事务的更多相关文章

  1. 1.3 PCI总线的存储器读写总线事务

    总线的基本任务是实现数据传送,将一组数据从一个设备传送到另一个设备,当然总线也可以将一个设备的数据广播到多个设备.在处理器系统中,这些数据传送都要依赖一定的规则,PCI总线并不例外. PCI总线使用单 ...

  2. 1.2 PCI总线的信号定义

    PCI总线是一条共享总线,在一条PCI总线上可以挂接多个PCI设备.这些PCI设备通过一系列信号与PCI总线相连,这些信号由地址/数据信号.控制信号.仲裁信号.中断信号等多种信号组成. PCI总线是一 ...

  3. 2.1 存储器域与PCI总线域

    HOST主桥的实现因处理器系统而异.PowerPC处理器和x86处理器的HOST主桥除了集成方式不同之外,其实现机制也有较大差异.但是这些HOST主桥所完成的最基本功能依然是分离存储器域与PCI总线域 ...

  4. 007 PCI总线的桥与配置(二)

    一.PCI桥与PCI设备的配置空间 PCI设备都有独立的配置空间,HOST主桥通过配置读写总线事务访问这段空间.PCI总线规定了三种类型的PCI配置空间,分别是PCI Agent设备使用的配置空间,P ...

  5. 006 PCI总线的桥与配置(一)

    在PCI体系结构中,含有两类桥片,一个是HOST主桥,另一个是PCI桥.在每一个PCI设备中(包括PCI桥)都含有一个配置空间.这个配置空间由HOST主桥管理,而PCI桥可以转发来自HOST主桥的配置 ...

  6. 2.4 PCI总线的配置

    PCI总线定义了两类配置请求,一个是Type 00h配置请求,另一个是Type 01h配置请求.PCI总线使用这些配置请求访问PCI总线树上的设备配置空间,包括PCI桥和PCI Agent设备的配置空 ...

  7. 1.1 PCI总线的组成结构

    如上文所述,PCI总线作为处理器系统的局部总线,是处理器系统的一个组成部件,讲述PCI总线的组成结构不能离开处理器系统这个大环境.在一个处理器系统中,与PCI总线相关的模块如图1?1所示. 如图1?1 ...

  8. 第1章 PCI总线的基本知识

    PCI总线作为处理器系统的局部总线,主要目的是为了连接外部设备,而不是作为处理器的系统总线连接Cache和主存储器.但是PCI总线.系统总线和处理器体系结构之间依然存在着紧密的联系. PCI总线作为系 ...

  9. 第3章 PCI总线的数据交换

    PCI Agent设备之间,以及HOST处理器和PCI Agent设备之间可以使用存储器读写和I/O读写等总线事务进行数据传送.在大多数情况下,PCI桥不直接与PCI设备或者HOST主桥进行数据交换, ...

随机推荐

  1. MySQL刷新事务日志级别设置

    标签(linux): mysql 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 # if set to 1 , InnoDB will flush (fsync ...

  2. jumpserver v0.4.0 基于 CenOS7 的安装详解

    标签(linux): jumpserver 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 笔者已经弃用Jumpserver,并自已开发了shell跳板机. sh ...

  3. java 数组与集合(list)相互转化

    上代码 package com.core.array2collection; import java.util.ArrayList; import java.util.Arrays; import j ...

  4. [svn] TortoiseSVN 图文操作

    TortoiseSVN 图文操作 [参考]https://jingyan.baidu.com/article/6c67b1d6f524d52787bb1ef3.html

  5. 前端-css

    页面css排版不错乱: 1.最外层div中 定义width=980px,当页面缩小以后,就在下面出现滚动条 2.使用 media 技术,bootstrp技术.页面自使用 一.css选择器 选择器 样式 ...

  6. wpf timePicker 时间选择控件

    wpf里有日期选择控件,但没有时间选择控件.其他地方也有类似的,但效果并不太好,而且复杂.所以就自己写了个.参考codeproject上的. 分两部分. 第一部分是.cs文件.也就是control控件 ...

  7. mysql导出数据至指定文件的命令

    根据查询语句,导出数据至指定文件SELECT name INTO OUTFILE '/tmp/result.txt' FIELDS TERMINATED BY '-|-' OPTIONALLY ENC ...

  8. spring boot + vue + element-ui全栈开发入门——windows开发环境

     一.node.js开发环境 windows系统,去网站https://nodejs.org/en/download/,下载对应的安装程序,并安装Windows Installer (.msi) 接下 ...

  9. python函数式编程之装饰器(一)

    1.开放封闭原则 简单来说,就是对扩展开放,对修改封闭 在面向对象的编程方式中,经常会定义各种函数. 一个函数的使用分为定义阶段和使用阶段,一个函数定义完成以后,可能会在很多位置被调用 这意味着如果函 ...

  10. linux命令dd

    原文链接: http://blog.csdn.net/adaptiver/article/details/6672592 dd 使用dd这个linux命令可以创建一定大小文件. linux创建文件命令 ...