【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)

摘要:
位于同一芯片上以定义链路的一组发射机和接收机。一种定义的系统元素,用于连接两个或多个端口,并允许数据包在不同端口之间路由。交换机也被配置为一组虚拟PCI到PCIBridge链路概念:因为PCIE使用差分信号传输,所以设备通过判断总线上的DEVSEL(设备选择)来声明请求。如果在一段时钟周期后没有设备声明请求。

前面三小节,介绍了PCIE的基本知识和概念,以及扫描流程。在不求甚解的情况下,我想各位小伙伴应该对PCIE有了个宏观的认识,OK,那么本章我们在之前的基础上,再单独把一些概念和更深层次的问题摘出来具体讨论。

首先依旧是国际惯例,先列问题:

  1. PCIE的各个模块中,经常提到Bridge/Host Bridge,Root Complex, Root port以及一些其他常用的部件概念要怎么理解?

  2. PCI总线模型和PCIE是点对点模型,要怎么理解?

  3. EndPint是否可以直接访问另外一个EndPoint

1. Bridge/Host Bridge,Root Complex, Root port这些要怎么理解(以下解释来源于PCIE Spec)

Host bridge的概念:Root Complex中用来链接一个主CPU或多个CPU和一个层次结构的一个部分。英文原意如下:

    【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第1张

Port 的概念

1.逻辑上: 位于部件和一个PCIE链路之间的接口。       2. 物理上: 位于同一个芯片上用来定义一个链路的一组发射器和接收器。 原意如下:

    【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第2张

Add Receiver&Reveiver Port

     【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第3张

Root Port的概念:一个位于Root Complex上通过相关联的虚拟PCI-PCI Bridge映射一个层次结构整体部分的的PCIE Port,

    【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第4张

Root Complex的概念: 一个的系统元素,包含一个Host Bridge, 0个或多个集成EndPoints的Root Complex, 0个或多个Root Complex时间收集器,0个或多个Root Ports

     【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第5张

Add Root complex Componen

     【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第6张

Switch的概念:一个定义好的用来连接两个或多个Ports且允许数据包在不同Ports之间被路由转发的一个系统元素。通过配置软件,一个switch也被配置为一组虚拟PCI-to-PCI Bridges的集合

      【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第7张

Link的概念:两个Ports和他们之间所连接Lanes的集合。一个Link是一个双工通信通道在两个部件之间。

      【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第8张

Lane的概念:一组不同的信号对,一对用来传送,一堆用来接收。由于PCIE使用差分信号传输,一条lane四条线,两条线组成一对,供发送。另外两条接收!

     【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)第9张

2.  PCI总线模型和PCIE是点对点模型,要怎么理解?

PCI总线模型: 在传统的PCI总线模型中,一个设备通过在Bus上判断DEVSEL(设备选择)来认领一个请求。如果在一段时钟周期后没有设备认领一个请求,这个请求就被放弃。

PCIE点对点模型:PCI是一种点对点的传输模型,不像PCI总线那样,在总线上有平等认领请求的机制。所有的传送总是由一个Device发给Link上的另外一个Device。所以,对于所有接收方来说,接收方将会直接判断这个请请求是否要被认领。

3. EndPint是否可以直接访问另外一个EndPoint

在PCIE这种点对点的模型中,设备之间之间的互联访问是可以的。  

  情况一:不需要CPU参与

最典型的应用就是在一个带有DMA功能的Switch下,挂载两个EP,CPU需要首先配置DMA控制器,包括设置一些源地址,目标地址,传输数据以及数据量。然后每个设备发起DMA传输的时候,会直接透过Switch中的DMA控制器,发数据到另外一个设备,这个过程不需要CPU干预

  情况二:CPU参与

这个过程就相对来说简单了,CPU从一个PCIE设备中读取出要发送的数据,然后直接发送给指定的目的PCIE设备节点即可。

    

免责声明:文章转载自《【PCIE-4】---PCIE中部分概念或问题总结(很基础很重要)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇HTTP断点续传原理C++问题少年系列-STL相关下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Android平台Airplay的实现方法

Airplay属于局域网内异构设备之间分享多媒体数据的一种通信协议。Airplay设备有客户端和服务器之分,一般将小屏IOS设备实现为Airplay客户端,大屏幕设备实现为Airplay服务器。即iPhone, iPad, iPod一般为Airplay客户端,iTV, Macbook设计为Airplay服务器,在小屏和大屏之间分享视频、照片和音乐。Airp...

Laravel模型事件的实现原理详解

模型事件在 Laravel 的世界中,你对 Eloquent 大多数操作都会或多或少的触发一些模型事件,下面这篇文章主要给大家介绍了关于Laravel模型事件的实现原理,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴。 前言 Laravel的ORM模型在一些特定的情况下,会触发一系列的事件,目前支持的事件有这些:creating, created,...

Winform异步解决窗体耗时操作(Action专门用于无返回值,Func专门用于有返回值)

http://blog.csdn.net/config_man/article/details/25578767 [csharp]view plaincopy #region 调用timer控件实时查询开关机时间   private void timer1_Tick(object sender, EventArgs e)   {       str...

iMX6UL配置MCP2515模块(SPI转CAN)——基于迅为iTOP-iMX6UL开发板

写在前面   在文章“嵌入式Linux的CAN总线配置——基于迅为iTOP-4412开发板”中我给4412开发板配置了SPI转CAN模块,使用的是不带设备树的内核。在本篇文章中,要使用支持设备树的内核,给iMX6UL开发板配置MCP2515。   打开iMX6UL开发板的串口终端,输入命令ifconfig -a,可以看到CAN0和CAN1两个设备,这是iM...

torch 深度学习(5)

torch 深度学习(5) mnist torch siamese deep-learning 这篇文章主要是想使用torch学习并理解如何构建siamese network。 siamese network的结构如下: 1486455020988.jpg 使用的数据集:mnist 手写数据集 实验目的:通过孪生网络使得同一类的尽可能的靠近...

《微信小程序七日谈》- 第二天:你可能要抛弃原来的响应式开发思维

《微信小程序七日谈》系列文章: 第一天:人生若只如初见; 第二天:你可能要抛弃原来的响应式开发思维; 第三天:玩转Page组件的生命周期; 第四天:页面路径最多五层?导航可以这么玩; 第五天:你可能要在登录功能上花费大力气; 第六天:小程序devtool隐藏的秘密; 第七天:不要捡了芝麻丢了西瓜 本系列的文章并非初学教程,而是笔者在具体开...