PCI系统结构(第四版) 第7章 之三

上一篇 / 下一篇  2008-01-09 18:38:45 / 个人分类:读书笔记

IO读与写命令 

IO读与写命令用于在主机和当前寻址的I/O目标(设备的IO寄存器等)之间传递数据。目标必须译码全部32位地址。

访问存储器

   PCI规范定义了用于访问存储器的五种命令。

    存储器读命令简称MR

    存储器写命令简称MW

    可选的批量存储器命令是执行增强工具:

ˉ存储器多行读命令通常简称MRM

ˉ存储器行读命令通常简称MRL

ˉ存储器写与使失效命令通常简称MWI

   目标支持批量命令是可选的

是否存储器目标支持批量命令是可选的。如果它不支持,它必须将这些命令改为各自的基本访问命令。

    MRLMRM应改为存储器读命令;

    MWI应改为存储器写命令。

CACHE行容量寄存器和批量命令

见图7-5。规范介绍CACHE行容量配置寄存器,必须由使用寄存器写与使失效命令的主设备执行。规范也特别提出这个寄存器由使用存储器读线路和多次存储器读命令的总线主设备来执行。

如果执行了CACHE行容量配置寄存器,主设备就应该根据表7-3所规定的使用指南来确定当读取存储器读时应使用哪种形式的存储器读形式。如果一个主设备访问存储器但不执行CACHE行容量配置寄存器,假定CACHE行容量是1632位,它应该遵循相同的指南。

批量命令是可选的性能提升工具

当总线主设备使用存储器行读或存储器多行读命令时,表明它是知道目标存储器是准备好的(即就是预提取存储器,不是一个存储器影射I/O设备)。当读取存储器映射I/O时,主设备应用存储器读命令。如果经过桥读,批量读命令(存储器行读或存储器多行读)的使用给允许桥先获得主设备交易的首部来提高性能。这次允许桥在主设备和目标设备之间建立一个缓冲区的连接,桥放置目标总线存储器上预先获取的缓冲区,并且主设备读取起始总线上缓冲区另一端的数据,这将动态地提高性能。

   规范中着重提出批量读/写命令是当传送大量数据到或自存储器时使用的,再次强调,这些命令是存储器写与使无效、存储器行读和存储器多行读。

7-5 CACHE行容量配置寄存器

7-3  读命令的参考用法

   桥必须丢弃主设备没有用的预提取数据

   从预提取存储器读取数据给主设备的桥必须丢弃主设备实际并没有结束读取的任何预先提取读数据。规范定义了以下实例,如果桥没有丢弃没有用的预提取数据,将导致错误发生。

   步骤1:处理器在主存储器中有两个缓冲区占用了邻近存储区域。

步骤2:处理器把数据写进第一个存储器,然后命令总线主设备超越PCI-PCI桥读取和处理数据。

步骤3:总线主设备使用一种批量存储器读命令开始它的存储器读,这样允许桥预先获取主设备的首部同时从主存储器读。桥结束预提取数据从第一个存储器缓冲区的结尾到第二个存储器缓冲区,但总线主设备只读取了第一个缓冲区的数据。

步骤4:桥不能释放从第二个缓冲区预先取得的未用数据。

步骤5:处理器将数据写进第二个存储器缓冲区,然后命令总线主设备(相同的主设备或不同的主设备)越过相同PCI-PCI桥读取和处理数据。

步骤6:总线主设备从第二个缓冲区的起始地址开始它的存储器读。桥传送预先从第二个缓冲区获得的数据,这是稳定的数据不受最后写进第二个缓冲区中数据的影响。


FPGA/CPLD器件价格查询

TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar