看完两章后感觉此书干货很多(有时候觉得废话也挺多),特别是关于桥的配置/bus号/device号的分配过程的描述的比较详细。
今天把前一篇的图升级一把,增加了地址空间和仲裁器的概念和细节。可以放大看。
要点:
1. PCI设备能直接使用的地址是PCI总线域的地址,处理器能够直接使用的是存储器域的地址,PCI主桥负责在这两种地址之间转换。当然为了方便管理,可以把这两种地址设置为相同的值(如果是I/O地址,则一定相同)。
2. 每一条PCI总线上都有一个总线仲裁器,每一个PCI主设备都有独立的总线仲裁信号,并与PCI总线仲裁器一一相连。可见一条PCI总线可以挂接PCI主设备的数目,除了与负载能力相关外,还和仲裁器能够提供的仲裁信号数目直接相关。某PCI主设备使用PCI总线进行数据传递时,首先置REQ#信号有效,向PCI仲裁器发出申请,如果仲裁器允许PCI主设备获得总线使用权,则将相应GNT#信号置为有效。之后此PCI主设备就获得了总线使用权,可开始数据通信。
3. 如果感觉CPU写PCI设备时速度低,考虑检查是否是Posted传送方式(只支持存储器空间写请求)。
4. 如果感觉各设备相互影响,PCI总线利用效率低,考虑Non-Posted传送方式(一般用于存储器空间读请求、IO/读写请求、配置