PCI Express体系结构导读(3)- PCIE

第四章 PCIe总线概述

4.1 pcie 总线基础知识

1)PCI是并行连接,一条总线上的多个设备共享总线带宽;

    PCIe是差分总线,端到端连接,频率更高;

2)一个数据通路(Lane),有两组差分信号,即4根信号线,TX部件和RX部件相连(这为一组)

    一个pcie链路可以有多个lane

 2.a) 一个差分信号由D+和D-两根信号组成,接收端通过比较它们的差值来判断是1还是0,与单端信号比,抗干扰能力更强。

 2.b)外部噪声加在两根信号上的影响一样,所以可以使用更高的总线频率

3) pcie链路支持1、2、4、8、16、32个lane,即支持这些数据位宽, 常用的是x1

    intel的ICH集成了多个x1的pcie链路,MCH集成了x16的pcie链路用于连接显卡控制器

    powerPC支持 x1,x2,x4,x8    

 PCIE不分多少数据位,PCI-E总线更类似串行线,一次通信走1个Bit。比较快主要是频率高,V3.0总线频率达4Ghz,单lane的峰值可达8GT/s=8Gb/s

4) PCIE使用的信号

 pcie设备使用2种电源信号供电,Vcc 和 Vaux, 电压为3.3v, Vcc为主电源

 PERST#信号, 全局复位,复位设备

 REFCLK+ 和 REFCLK-信号,用于与处理器同步

 WAKE#, 设备休眠时,主电源停止供电了,可以用该信号通知处理器来唤醒设备

 SMCLK, SMDAT, 即SMBus总线,源于I2C,管理处理器系统的外部设备特别是智能电源

 JTAG信号,用于芯片内部测试,包括TRST#,TCK,TDI,TDO,TMS信号

 PRSNT1#,PRSNT2#, 热插拔相关

 

5) PCIE总线的层次结构

 事务层,接收来自核心层的数据并封装为TLP,还有就是处理pcie中的“序”

 数据链路层,继续添加sequence前缀和CRC后缀,有多种DLLP包

 物理层,LTSSM状态机管理链路状态,PLP包,系统程序员仍有必要深入理解物理层工作原理

6)pcie链路的扩展

   用switch, 1个上游端口连RC,多个下游端口连EP

7)pcie设备的初始化

  传统复位convertional reset:包括fundametal 和 non-fundametal, fundametal 又分cold和warm reset; non-fundametal指的是hot reset

  FLR复位只复位与PCIE链路相关的部分逻辑

4.2 PCIE体系结构组成部件

1)大多使用RC、switch、PCIe-to-PCI桥连接设备,而基于pcie总线的设备,称为EP(endpoint)

    RC(PCI Express root complex)根联合体, 相当于PCIE主桥,也有称为pcie总线控制器

   RC在x86中由MCH和ICH组成, PCIe总线端口存储器控制器等接口集成在一起,统称RC

 2)PCIE设备包括 EP(如显卡、网卡等)、switch、PCIE桥

 3)RC与HOST主桥不同的是还有RCRB,内置PCI设备,event collector

    深入理解RC对理解pcie体系结构非常重要

 4)switch有一个上游端口和多个下游端口,上游端口连接RC、其他switch的下游端口,也支持crosslink连接方式(上连上,下连下)

   其实是多个PCI桥组成的

   PCIE 采用虚拟多通路VC技术,这些报文中设定TC标签,分为8类优先权。每条链路最多支持8个VC,用来收发报文。

   软件设置哪类TC由哪个VC传递,许多处理器Switch和RC只支持一个VC,而x86和PLX的switch可以支持两个VC

   TC和VC是多对一 

 5)不同ingress发向同一个egress端口,涉及端口仲裁和路由选径

   switch中设有仲裁器,规定报文通过switch的规则。分别基于VC和基于端口的仲裁机制

 6)PCIE桥

4.3 pcie设备的扩展配置空间

 1)PCIE要求设备必须支持capability结构,重点关注电源管理、MSI中断的capability结构

 电源管理capability有PMCR和PMCSR寄存器

 2)capability结构:PCIE capability register, device/link/slot 等capability 寄存器

第5章 Montevina 的MCH和ICH

intel的一款笔记本平台

 

pci 0 上的MCH和ICH,是FSB总线的延伸,虚拟的PCI设备,只是使用PCI的管理方法

1)pci0的device0设备,管理PCI总线地址和存储器地址

  device0被认为是HOST主桥

2)存储空间的组成结构

 存储器域(CPU可访问)、PCI总线域、DRAM域(主存),有些DRAM只能被显卡控制器访问到,不能被cpu访问

 legacy地址空间:x86固有的一段1MB内存空间,DOS内存等

 DRAM域:大小保存在MCH的TOM中,即PCI0的配置空间中,legacy地址在它里面

 存储器域:

 

5.3 存储器域的PCI总线地址空间

 PCI总线地址空间氛围 最低可用TOLUD~4GB,TOUUD~64GB

1)APIC 是x86使用的中断控制器

2)ECAM方式读写PCIE扩展配置空间,CONFIG_ADDRESS和CONFIG_DATA访问前256B

    ECAM是直接映射到内存来访问

 

第6章 PCIE事务层

第7章 链路层和物理层

第8章 链路训练和电源管理

第9章 流量控制

 合理的使用物理链路,避免接收端缓冲区容量不足而丢弃发生端的数据,从而要求重新发送。

 

第10章 MSI和MSI-X中断机制

PCI:必须支持INTx,MSI可选

PCIe: 必须支持MSI,INTx可选

MSI使用存储器写请求TLP向处理器提交中断请求,即MSI报文。PowerPC使用MPIC中断控制器处理MSI中断请求,X86使用FSB interrupt message方式处理。

绝大多数PCIe设备使用MSI提交中断请求

第11章 PCI/PCIE的序

序是指数据传送的顺序,保证数据完整性的基础

第12章 PCIE总线的应用

12.1 capric卡的工作原理

1) PCIe设备: Vetex-5内嵌的EP模块,该模块也被xilinx称为LogiCORE

   先主存到FPGA的片内SRAM(DMA读), 单次DMA最大0X7FF B , 2KB

   SRAM到主存 (DMA写)

2)仅使用BAR0,大小256B,里面有DCSR1/2, WR_DMA_ADR/SIZE, INT_REG, ERR

 

 12.3 基于pcie的设备驱动

属于char类型驱动

1)加载与卸载

这段代码主要作用是软件结构pci_driver与硬件结构pci_dev建立联系,pci_register_driver会做这个

2)初始化和关闭

  系统在PCI树中发现capric卡后,local_pci_probe调用capric_probe,入口参数pci_dev和ids,进行初始化

  初始化调用pci_enable_device使能PCIE设备(会修改command的io space和memory space位看配置空间是否使用它们),调用pcibios_enable_irq分配设备使用的中断向量号

  DMA掩码:存储域physical_addr &DMA_MASK = physical_addr表示可以对这段内存DMA操作

  a) linux中存储器映射的寄存器和io映射的寄存器都是ioresources管理,pci_request_regions把capric卡的BAR0使用的resource结构其name设置为DEV_NAME, flags设为IORESOURCE_BUSY,

  b) pci_resource_start 获得pci_dev资源的BAR0空间的基地址(存储器域物理地址),pci_read_config_word是pci域

  c) ioremap将存储器域物理地址映射为linux虚拟地址

  d)register_chrdev 注册char设备驱动

  e) pci_enable_msi 使能MSI中断请求机制

  f) request_irq(capric_interrupt) 使用中断服务例程

3)  DMA读写

 DMA写: 与capric_read对应

     kmalloc,实际驱动中很少在读写服务例程中申请内存,容易产生内存碎片,时间花费也长。

     pci_map_single虚拟地址转换为PCI物理地址

 DMA读:capric_write

    dma_sync_single 存储器与cache同步

    interruptible_sleep_on 等待

 

 4)中断处理

   系统的do_IRQ调用 capric_interrupt

   这里直接设置读写例程里面的等待事件就好

 5)存储器地址到PCI地址转换

   pci_map_single, 

   最初x86是直接相等的关系,为了支持虚拟化技术使用了VT-d/IOMMU技术

   powerpc是inbound寄存器把PCI转换为存储器地址,inbound可以看做一种IOMMU

 6)存储器与cache同步

  低端处理器不支持硬件cache共享一致性,需要在DMA操作之前,用软件将操作的数据区域与cache同步

  多数PCI设备,cache一致性可以由硬件保证

12.4 带宽和时延

   优化:减少对寄存器的读操作,如要读终端控制器状态寄存器可以改为收发等分开的IRQ

            流水线ring buffer技术,多路DMA读写并行执行

 

 第13章 PCI与虚拟化技术

 多个虚拟处理器系统,多个独立的操作系统,用一套CPU、内存和外部设备

 

 

 

 

 

转载于:https://www.cnblogs.com/yuanming/p/6904474.html

### 回答1: PCI Express(Peripheral Component Interconnect Express)是一种高速串行总线接口标准,用于连接计算机内部的各种设备。PCI Express 体系结构导读 PDF 是一份介绍 PCI Express 技术体系结构的文档。 该文档首先介绍了 PCI Express 技术的发展历史和目标。PCI Express 是由 PCI-SIG(Peripheral Component Interconnect Special Interest Group)组织开发的一种新一代总线接口标准,用于替代传统的 PCI 总线。其目标是提供更高的带宽、更低的延迟和更强的可扩展性,以满足不断增长的数据传输需求。 文档接着详细讲解了 PCI Express体系结构PCI Express 采用了串行通信方式,将数据传输分解为数据包(packet)进行传送。一个 PCI Express 总线可以有一个或多个虚拟通道(Virtual Channel),每个通道用于不同的数据传输需求,以实现更好的带宽利用率和服务质量。 PCI Express 体系结构还包括了主机端和设备端两种类型。主机端包括根端点(Root Complex)和根端点分支(Root Port),用于管理总线和与其他设备进行通信。设备端包括端点(Endpoint)和端点分支(Port),用于连接外部设备并进行数据交换。文档详细解释了这些组件之间的连接方式和通信过程。 此外,文档还介绍了 PCI Express 的一些高级特性,例如虚拟化支持、链路聚合、带宽管理和热插拔功能等。这些特性提供了更灵活和高效的系统配置和管理方式,使得 PCI Express 成为当今计算机系统中主流总线接口之一。 总之,PCI Express 体系结构导读 PDF 是一份系统介绍 PCI Express 技术体系结构的文档,通过详细解释其发展历史、目标和组成部分,帮助读者更好地理解和应用 PCI Express 技术。 ### 回答2: 《PCI Express体系结构导读PDF》是一份介绍PCI Express(Peripheral Component Interconnect Express体系结构导读材料。PCI Express是一种用于计算机内部连接外设的总线标准,其可以提供高带宽和低延迟的数据传输能力。 该导读PDF主要内容包括PCI Express的基本概念、架构和工作原理等方面的介绍。首先,该导读PDF简单介绍了PCI Express的起源和发展历程,以及其在计算机领域的重要性。 接着,该导读PDF详细阐述了PCI Express体系结构PCI Express基于串行链接技术,采用了差分传输和可靠的数据链路层协议,可以实现高速的数据传输。它采用了点对点连接和分层的拓扑结构,每个PCI Express设备都有自己的独立通道,可以与其他设备进行直接通信,提高了系统性能和可扩展性。 此外,该导读PDF还着重介绍了PCI Express的功耗管理、错误检测和纠正、虚拟化、并发传输等特性。这些特性使得PCI Express在各种应用场景下得到了广泛的应用,例如在桌面计算机、服务器、工业自动化、消费电子等领域。 最后,该导读PDF提供了一些有关PCI Express的资源链接和相关标准规范的参考,为读者深入学习和研究PCI Express提供了便利。 综上所述,《PCI Express体系结构导读PDF》是一份详细介绍PCI Express体系结构的资料,它为读者提供了对PCI Express技术的全面了解和学习的基础,对于从事计算机硬件和系统设计的人员来说,具有很高的参考价值。 ### 回答3: PCI Express(简称PCIe)是一种用于计算机总线的串行接口协议。它是一种高速、高性能、可靠的数据传输接口,被广泛用于计算机硬件设备之间的连接。PCIe体系结构导读PDF提供了对PCIe协议及其相关技术的深入理解。 PDF的导读以简洁明了的方式介绍了PCIe的基本概念和工作原理。它首先介绍了PCIe的发展历程及其在计算机行业中的应用。接下来,导读详细解释了PCIe的物理层和传输层的规范要求,包括信号线配置、电气特性和传输速率等。 在PDF中,还介绍了PCIe的拓扑结构和时序规范,包括总线、根复位器、桥接器和终端节点之间的连接方式。此外,导读还介绍了PCIe的流控和错误检测机制,以及性能管理和电源管理等方面的内容。 除了介绍基本概念和规范要求外,PDF还提供了对PCIe架构的扩展和升级的讨论。它介绍了PCIe的多通道、多链路、协议转换和可靠性增强等技术。此外,导读还涉及了PCIe在新兴技术领域,如云计算、虚拟化和高性能计算中的应用。 总的来说,PCIe体系结构导读PDF是一个很有价值的学习资料,它通过清晰明了的方式介绍了PCIe的基本知识和技术要点。对于从事计算机硬件设计、网络通信或系统集成的专业人士来说,这个PDF提供了全面的参考和指导,帮助他们更好地理解和应用PCIe技术。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值