PCI总线概述

来源:互联网 发布:js原生input 隐藏光标 编辑:程序博客网 时间:2024/06/06 20:12

1.计算机总线概述

计算机总线技术包括通道控制功能、使用发放、仲裁方法和传输方式。主要职能是负责计算机各模块之间的信息传输,总线的传输率是其性能的主要指标。
多总线结构是指将CPU与存储器、I/O等设备之间有两种以上的总线,这样可以将慢速的设备和快速的设备挂在不同的总线上,减少总线竞争,提升系统的效率。
总线性能:
(1)总线宽度:数据总线的数量  用bit表示
(2)传输率:  每秒在总线上的传输的最大字节数(MB/S) = 总线工作频率 * (总线宽度/8)
(3)同步方式:数据与始终同步工作的总线成为同步总线
(4)信号线数:总线所需的信号线数的多少,是地址线AB,数据线DB,控制线CB的总和。(与性能无关,但与复杂度成正比)
(5)AB/DB的多路复用和非多路复用:AB/DB共用一条物理线路,称为多路复用。
(6)负载数量
(7)扩充电路板尺寸
(8)总线控制方式:突发传输、并发工作、中断方式、仲裁方式等。
(9)其它指标:电源电压,是否可扩展为64bit

2、pci总线简介


2.1 PCI特点:

(1)高性能:132 MB/s
(2)线性突发传输:支持突发读取和突发写入,确保总线不断满载数据
(3)极小的存取延误:可以大幅减少外围设备取得总线控制权的时间(网络接口卡请求得到总线)
(4)总线主控和同步:外围设备可以暂时接管总线,以执行高吞吐量,高优先级的人物;CPU可与总线主控同时操作,不必等待总线的完成。
(5)预留了扩展64bit的空间,PCI插槽可同时插32/64bit 插卡
(6)自动配置,不需手工调整跨接线

2.2 PCI总线结构:

      

                                 

        cpu/cache/DRAM通过PCI桥接器连接到PCI总线
        PCI桥实现了PCI总线的全部驱动控制:
提供低延时的访问通路,cpu可直接访问通过桥映射到存储空间/Io空间的PCI设备
PCI设备直接访问主存的高速通路
数据缓存,PCI主设备可与CPU并行
使得cpu总线和PCI总线操作分开
扩展总线桥接器可以接标准I/O扩展总线,以兼容现有I/O设备

3.PCI总线的信号定义

       
信号类型的定义:
IN 输入
OUT 输出
T/S 双向的三态输入输出信号
S/T/S 持续的且低电平有效的三态信号
OD 漏极开路,以线或形式表示允许共享


3.1 系统信号
CLK IN :系统时钟信号。所有PCI设备而言都是输入信号,PCI的工作频率(0 ~ 33MHZ)
RST# IN: 复位信号。输出变第三态,err高阻等
3.2 地址/数据信号
AD[31:0]T/S: 地址、数据多路复用信号。
FRAME#有效时是地址期,IRDY#和TRDY# 同时有效是数据期。一个PCI总线传输中包含了一个地址信号期和一个(无限个)数据信号期,可支持突发方式的读写
地址期为一个时钟周期,AD[32:0]信号线上包含32位物理地址(IO操作是单字节地址,存储和配置操作是双字地址)
数据期,AD[7:0]是低字节,AD[31:24]是高字节。
C/BE[3:0]T/S: 总线命令/字节使能信号。
地址期,这4条线上传输总线控制命令

数据期,表示[32:0]上那个字节是有效数据

3.3 接口控制信号

FRAME# S/T/S: 帧周期信号。由当前主设备驱动,有效表示总线传输的开始,失效表示传输的最后一个数据期
IRDY#S/T/S:主设备准备好信号。表示发起本次传输的设备能够完成一个数据期。读周期,该信号有效时,表示数据已在AD[32:0]中;写周期,信号有效时,表示从设备已做好接收数据的准备。
TRDY#S/T/S:表示从设备已经准备好了。读周期,该信号有效时,表示数据已在AD[32:0]中;写周期,信号有效时,表示从设备已做好接收数据的准备。
IRDY# 和 TRDY# 两者同时有效时,才能完成数据传输
STOP# S/T/S: 停止数据传输信号。有效,表示从设备要求主设备种植当前数据传输
LOCK# S/T/S: 锁定信号。实现排他性独占访问
IDSEL IN: 初始化设备选择信号。读写时的参数配置,用作片选信号
DEVSEL#S/T/S:设备选择信号。表示总线上的某一设备已被选中
3.4 仲裁信号
REQ# T/S: 总线占用请求信号。有效,表示驱动它的主设备要求使用总线
GNT# S/T: 总线占用允许信号。向申请占用总线的设备表示请求已获得批准

都是点到点的信号线,任何主设备都应该有这两个信号

 3.5 错误报告信号

PREE# S/T/S: 数据奇偶校验错误报告信号。
SERR# O/D: 系统错误报告
3.6 中断信号
中断在PCI总线中时可选项,低电平有效,采用漏极开路的方式驱动。PCI局部总线有4条中断线INT#A O/D、INT#B O/D、INTC# O/D、INTD# O/D,作用是用于请求一个中断。后三个只能用于多功能设备,但功能设备只能在一条中断线上发请求。

系统供应商在对PCI连接器的各个中断信号和中断控制器进行连接时,其方法是随意的,也就是说,设备驱动程序对中断共享事先无法做出任何假设。

 3.7 其它可选信号

高速缓存支持信号:
SBO# IN/OUT: 试探返回信号
SDONE IN/OUT: 监听完成信号
64位总线扩展信号:
AD[63:32] T/S: 扩展的32位地址/数据多路复线(数据期REQ#64 和 ACK#64都有效时,表示数据的高32位),(地址期,使用DAC命令且REQ#有效表示地址的高32位)
C/BE[7:4]# T/S: REQ#64 和 ACK#64都有效时,表示数据线上的那个字节是有效数据;使用了DAC命令且REQ#64 有效时,表示C/BE[7:4]# 上传输的是总线命令
REQ64# S/T/S: 64位传输请求,由主设备驱动,与FRAME#有相同时序
ACK64# S/T/S: 64位传输确认,由从设备驱动,与DEVSEL#同时序
PAR64# T/S:   奇偶双字节校验。

4.总线的命令

用来规定主、从设备之间的传输类型,出现在C/BE[3:0]# 线上。
主设备:通过仲裁而空的总线控制权的设备
从设备:在C/BE[3:0]# 线出现命令的同时被C/BE[3:0]# 线上的地址所选中的设备
1.1 总线命令表

"1"表示高电平,"0"表示低电平



中断应答命令
    中断应答是一个读命令,对中断控制器的寻址采用穏含方式,该地址是逻辑地址而不明显的出现在地址期,回送的中断向量长度由字节使能信号表示。图中两个箭头表示过渡期,避免设备间驱动信号时发生冲突


字节使能信号确定哪些字节是传输中涉及到的
在地址期,尽管AD[32:0]不含有效地址,但是也要将地址信号线驱动到稳定状态
在中断应答过程中,PAR信号用来进行奇偶校验
一个响应中断应答命令的设备(中断控制器)必须发出相应的DEVSEL#信号,同时在TRDY#有效时必须返回中断向量
特殊周期命令
    不包含目标地址,而是以广播的方式发送给总线上的所有设备(不跨桥)。每个接收设备自己确定广播消息是否适合它,在特殊周期命令期不允许设备发DEVSEL#信号,即不需要目标设备的应答
    PCI总线序列器启动该命令的方式和其他命令相同,但终止该命令要由主设备完成,当从设备得到终止消息上网时候,就知道一次访问结束,配置空间状态寄存器的"接收主设备终止位"不能置1.特殊周期命令最少也要5个时钟周期,同时要附加一个时钟周期座位下一个访问前的过渡周期。
I/O读命令
    从一个映射到I/O地址空间的设备中读数据,AD[31:0]上提供一个字节地址,而字节使能信号表示传送数据的大小,必须与字节地址一致
I/O写命令:
    向一个映射到I/O地址空间的设备写入数据
存储器读命令
    从一个映射到存储器地址空间的设备中读数据。主设备可以进行预读(保证无副作用),目标设备保证在本次PCI传输后,保存在临时缓冲器中的数据的一致性。该缓冲器在任何同步事件(设置I/O寄存器或存储器标志)通过此访问通路前必须被置为无效
存储器写命令;
    向一个映射到存储器地址空间的设备中写数据。从设备发出"准备好"信号后,就已经准备队设计的数据一致性负责。在任何同步事件前,保证数据缓冲器已被冲洗
配置读命令:
    从设备的配置空间读数据。当设备的IDSEL引脚有效=时且AD[1:0]=00,该设备即被选为配置读命令的目标。在配置读命令的地址期内,AD[7:2]用于选择配置空间64个4字节寄存器中的一个,AD[10:8]表示一个多功能设备中的那个功能设备被选中,AD[31:11]无意义。
配置写命令:
    向设备的配置空间写数据。设备被选条件:IDSEL设备片选信号有效且AD[1:0]=00,其他同配置空间读命令
存储器多行读命令:
    试图在主设备断开连接前预读多行Cache数据。存储器控制器应该包含只要FRAME#信号有效,就连续不断的以流水的方式发送存储器读请求
存储器一行读命令:
    相应一次请求不仅是完成一个存储器读周期,二十一直读到一个Cache行边界。预取数据缓冲器在任何同步时间数据访问前会被变为无效
双地址周期命令(DAC)
    用来给支持64位寻址的设备发送64位地址,发送过程需要两个时钟周期,只有32位寻址能力的设备该命令当做保留命令并不响应。
存储器写并无效命令:
    保证最小的传输量是一个告诉cache行。主设备在一次PCI传输中将寻址的cache行的每个字节都写入,主设备的配置寄存器指出cache行的大小。该命令是保证cache一致性的措施

4.2 总线命令的使用规则
    配置命令要求所有的PCI设备都已目标设备的方式给予响应,其它命令都是可选项。
    总线上执行I/O读写命令式,应保证起执行顺序。
    若某个设备实现了基本的存储器命令,那么它必须支持所有的存储器命令(或利用别名将其它为优化性能而设计的存储器命令转变为基本存储器命令,即要能接收命令请求但按基本命令来处理)
    对于存储器块数据读写,建议尽量采用存储器写并无效命令和存储行读命令来实现 
0 0