从那时起,PCI总线一直在处理器体系结构中占有重要地位。IAL是现代PC体系架构的重要奠基者。除了以上规范之外,PCISIG还推出了一系列和PCI总线直接相关的规范。其中PCI-to-PCI桥规范最为重要,理解PCI-to-PCI桥是理解PCI体系结构的基础;而CompactPCI总线规范多用于具有背板结构的大型系统,并支持热插拔。PCI和PCI-X总线使用单端并行信号进行数据传递,由于单端信号容易被外部系统干扰,其总线频率很难进一步提高。......
2023-10-20
本章以Montevina平台为例,说明在x86处理器系统中,PCIe体系结构的实现机制。Montevina平台是Intel提供的一个笔记本平台。在这个平台中,含有一个Mobile芯片组、Mobile处理器和无线网卡。其中Mobile芯片组包括代号为“Contiga”的GMCH(Graphics and Memory Controller Hub)和ICH9M系列的ICH;Mobile处理器使用代号为“Penryn”的第二代Intel Core2 Duo;无线网卡的代号为“Shirley Peak”(支持WiFi)或者“Echo Peak”(同时支持WiFi和WiMax)。Montevina平台的拓扑结构如图5-1所示。
图5-1 Montevina平台的拓扑结构
Montevina平台使用一个虚拟的FSB-to-PCI桥[13]将FSB总线与外部设备分离,这个虚拟PCI桥的上方连接FSB总线,之下连接PCI总线0。但是从物理信号的角度来看,MCH中的PCI总线0是FSB总线的延伸,因为该PCI总线0依然使用FSB总线的信号,只是连接到这条总线上的设备相当于虚拟PCI设备。在GMCH中,并没有提及这个FSB-to-PCI桥,但是在芯片设计中,存在这个桥片的概念。
从系统软件的角度来看,在PCI总线0上挂接的设备都含有PCI配置寄存器,系统软件将这些设备看做PCI设备,并可以访问这些设备的PCI配置空间。在Montevina平台的GMCH和ICH中,所有的外部设备,如存储器控制器,图形控制器等都是虚拟PCI设备,都具有独立的PCI配置空间。GMCH和ICH之间使用DMI(Direct Management Interface)接口相连,但是DMI接口仅仅是链路级别的连接,并不产生新的PCI总线号,ICH的DMI-to-USB桥和DMI-to-PCIe桥也都属于PCI总线0上的设备。(www.chuimin.cn)
在x86处理器中,MCH包含的虚拟PCI设备优先级较高,而ICH包含的虚拟PCI设备优先级较低。当CPU发起一个PCI数据请求时,MCH的PCI设备将首先在PCI总线0上进行正向译码。如果当前PCI数据请求所使用的地址没有在MCH的PCI设备命中时,DMI接口部件将使用负向译码方式被动地接收这个数据请求,然后通过DMI总线将这个数据请求转发到ICH中。
因此在x86处理器中,MCH[14]集成了一些对带宽要求较高的虚拟PCI设备,如DDR控制器、显卡等。而在ICH中集成了一些低速PCIe端口,和一些速度相对较低的外部设备,如PCI-to-USB桥、LPC总线控制器等。
MCH和ICH包含一些内置的PCI设备,这些设备都具有PCI配置空间,x86处理器可以使用PCI配置周期访问这些PCI配置空间。在MCH和ICH中,PCI总线0是FSB总线的延伸,所以处理器访问这些设备时并不使用PCI总线规定的信号,如FRAME#、TRDY#、IRDY#和IDSEL信号。在MCH和ICH中,有些PCI设备并不是传统意义上的外部设备,而仅是虚拟PCI设备,即使用PCI总线的管理方法统一在一起的设备。
x86处理器使用这些虚拟PCI外设的优点是可以将所有外部设备都用PCI总线统一起来,这些设备使用的寄存器都可以保存在PCI设备的配置空间中,但是使用这种方法在某种程度上容易混淆一些概念,尤其是有关地址空间的概念。例如在处理器体系结构的典型定义中,DDR-SDRAM空间属于存储器域,与其相关的DDR-SDRAM控制器也应该属于存储器域,但是在x86处理器中存储器控制器属于PCI总线域。
有关PCI Express体系结构导读的文章
从那时起,PCI总线一直在处理器体系结构中占有重要地位。IAL是现代PC体系架构的重要奠基者。除了以上规范之外,PCISIG还推出了一系列和PCI总线直接相关的规范。其中PCI-to-PCI桥规范最为重要,理解PCI-to-PCI桥是理解PCI体系结构的基础;而CompactPCI总线规范多用于具有背板结构的大型系统,并支持热插拔。PCI和PCI-X总线使用单端并行信号进行数据传递,由于单端信号容易被外部系统干扰,其总线频率很难进一步提高。......
2023-10-20
在一段程序中,存在大量的分支预测指令,因而在某种程度上增加了指令Fetch的难度。但是分支预测单元并不会每次都能正确判断分支指令的执行路径,这为指令Fetch制造了不小的麻烦,在这个背景下许多分支预测策略应运而生。在PowerPC处理器中,条件转移指令“bc”表示Taken;而“bc-”表示Not Taken。BTB的功能相当于存放转移指令的Cache,其状态机转换也与Cache类似。转移指令B执行完毕后,将实际执行结果Rc更新到BHR寄存器中,并同时更新PHT中对应的Entry。......
2023-10-20
如图8-6所示,Detect状态由Detect.Quiet、Detect.Active两个子状态组成。在正常情况下,PCIe链路将从Detect状态迁移到Polling状态。而在Detect状态中,PCIe设备的发送逻辑TX将直接进入到“Electrical Idle”状态,并不会使用Idle序列通知对端设备的接收逻辑RX。当PCIe设备处于Detect.Quiet状态超过12ms之后,或者检测到PCIe链路上的任何一个Lane退出“Electrical Idle”状态时,PCIe设备将进入Detect.Active状态。......
2023-10-20
[1]本节出现的Switch指传统的Switch,在MR-IOV规范定义的Switch与此并不相同,详见第13.3.2节。[4]这种方式也可以被认为是SoC平台总线从共享总线结构升级到Switch结构。[10]该表存在于PCI Express Extended Capabilities结构中,详见第4.3.3节。[14]从体系结构的角度上看,MCH和ICH仅仅是一个称呼,实际上并不重要。[36]如图4-1所示,发送端和接收端都有相应的发送逻辑和接收逻辑。[39]在正常情况下,接收逻辑RX的DC共模电压为0,ZRX-DC虽然较小也不会影响其正常工作。......
2023-10-20
而这个PCI桥的Secondary Bus在接收Dock设备的请求时仍然使用正向译码方式。PCI桥使用的正向译码方式与PCI设备使用的正向译码方式有所不同。值得注意的是,PCI总线并没有规定HOST主桥使用正向还是负向译码方式接收这个存储器读写总线事务,但是绝大多数HOST主桥使用正向译码方式接收来自下游的存储器读写总线事务。......
2023-10-20
值得注意的是,每一个PCI主设备都具有独立的总线仲裁信号,并与PCI总线仲裁器一一相连。图1-2 PCI设备与总线仲裁器的连接关系在一个处理器系统中,一条PCI总线可以挂接PCI主设备的数目,除了与负载能力相关之外,还与PCI总线仲裁器能够提供的仲裁信号数目直接相关。......
2023-10-20
Attr字段如图6-3所示。图6-3 Attr字段格式表6-3 TLP支持的序当使用标准的强序模型时,在数据的整个传送路径中,PCIe设备在处理相同类型的TLP时,如PCIe设备发送两个存储器写TLP时,后面的存储器写TLP必须等待前一个存储器写TLP完成后才能被处理,即便当前报文在传送过程中被阻塞,后一个报文也必须等待。Attr字段的第0位是“No Snoop Attribute”位。“No Snoop Attribute”位是PCIe总线针对PCI总线的不足作出的重要改动。......
2023-10-20
当TLP的TH位为1时,表示在当前TLP中包含Processing Hint字段,PH字段由PCIe V2.1总线规范引入。Processing Hint字段的产生与智能设备的大量涌现密切相关。有些智能设备,如在显卡中使用的GPU和GP-GPU的处理能力甚至超过多数通用处理器。该TLP Prefix也被称为TPH TLP Prefix,其格式如图6-15所示。TPH Requester Capability结构使用ST Mode Sele ct字段定义了ST字段的三种使用模式。......
2023-10-20
相关推荐