总线的根本任务是完结数据传送,将一组数据从一个设备传送到另一个设备,当然总线也能够将一个设备的数据广播到多个设备。在处理器体系中,这些数据传送都要依靠必定的规矩,PCI总线并不破例。
PCI总线运用单端并行数据线,选用地址译码办法进行数据传递,而选用ID译码办法进行装备信息的传递。其间地址译码办法运用地址信号,而ID译码办法运用PCI设备的ID号,包含Bus Number、Device Number、Function Number和Register Number。下文将以图1‑1中的处理器体系为例,扼要介绍PCI总线支撑的总线业务及其传送办法。
如表1‑2所示,PCI总线支撑多种总线业务。而本节要点介绍存储器读写总线业务,I/O读写总线业务,并在第2.4节具体介绍装备读写总线业务。值得注意的是,PCI设备只要在体系软件初始化装备空间之后,才干够被其他主设备拜访。
当PCI设备的装备空间被初始化之后,该设备在当时的PCI总线树大将具有一个独立的PCI总线地址空间,即BAR((Base Address Register)寄存器所描绘的空间,有关BAR寄存器的具体阐明见第2.3.2节。
处理器与PCI设备进行数据交换,或许PCI设备之间进行存储器数据交换时,都将经过PCI总线地址完结。而PCI设备与主存储器进行DMA操作时,运用的也是PCI总线域的地址,而不是存储器域的地址,此刻HOST主桥将完结PCI总线地址到存储器域地址的转化,不同的HOST主桥进行地址转化时运用的办法并不相同。
PCI总线的装备读写总线业务与HOST主桥与PCI桥相关,因而读者需求了解HOST主桥和PCI桥的具体完结机制之后,才干深化了解这部分内容。本篇将在第2.4节具体介绍这些内容。鄙人文中,咱们假定所运用的PCI设备的装备空间现已被体系软件初始化。
PCI总线支撑以下几类存储器读写总线业务。
(1)
(2)
(3)
1.3.1PCI总线业务的时序
PCI总线运用第1.2节所述的信号进行数据和装备信息的传递,一个PCI总线业务的根本拜访时序如图1‑3所示,与PCI总线业务相关的操控信号有FRAME#、IRDY#、TRDY#、DEVSEL#等其他信号。
当一个PCI主设备需求运用PCI总线时,需求首要发送REQ#信号,经过总线裁定取得总线运用权,即GNT#信号有用后,运用以下进程完结一个完好PCI总线业务,对方针设备进行存储器或许I/O地址空间的读写拜访。
(1)
(2)
(3)
(4)
一个完好的PCI总线业务远比上述进程杂乱的多,由于PCI总线还支撑许多传送办法,如双地址周期、fast back-to-back(快速背靠背)、刺进等候状况、重试和断连、总线上的错误处理等一系列总线业务。本篇纷歧一介绍这些传送办法。
1.3.2Posted和Non-Posted传送办法
PCI总线规则了两类数据传送办法,别离是Posted和Non-Posted数据传送办法。其间运用Posted数据传送办法的总线业务也被称为Posted总线业务;而运用Non-Posted数据传送办法的总线业务也被称为Non-Posted总线业务。
其间Posted总线业务指PCI主设备向PCI方针设备进行数据传递时,当数据抵达PCI桥后,即由PCI桥接收来自上游总线的总线业务,并将其转发到下流总线。选用这种数据传送办法,在数据还没有抵达终究的意图地之前,PCI总线就能够完毕当时总线业务,从而在必定程度上处理了PCI总线的拥塞。
而Non-Posted总线业务是指PCI主设备向PCI方针设备进行数据传递时,数据有必要抵达终究意图地之后,才干完毕当时总线业务的一种数据传递办法。
明显选用Posted传送办法,当这个Posted总线业务经过某条PCI总线后,就能够开释PCI总线的资源;而选用Non-Posted传送办法,PCI总线在没有完毕当时总线业务时有必要等候。这种等候将严峻堵塞当时PCI总线上的其他数据传送,因而PCI总线运用Delayed总线业务处理Non-Posted数据恳求,运用Delayed总线业务能够相对缓解PCI总线的拥塞。Delayed总线业务的具体介绍见第1.3.5节。
PCI总线规则只要存储器写恳求(包含存储器写并无效恳求)能够选用Posted总线业务,下文将Posted存储器写恳求简称为PMW(Posted Memory Write),而存储器读恳求、I/O读写恳求、装备读写恳求只能选用Non-Posted总线业务。