PCIe物理层接口(Physical Interface for PCI Express,PIPE)定义了物理层中的,媒介层(Media Access Layer,MAC)和物理编码子层(Physical Coding Sub-layer,PCS)之间的统一接口,旨在为提供一种统一的行业标准。如下图所示:

其中MAC和PCS都属于PCIe中的物理层逻辑子层部分,而PMA(Physical Media Attachment Layer)则属于物理层电气子层。需要注意的是,PIPE规范是由Intel提出的行业建议,并非PCI-SIG规定的PCIe标准之一。PCIe设备厂家完全可以自主选择是否采用PIPE规范。

由于业界通常采用SerDes器件(包括FPGA中集成的SerDes模块)来实现PCIe中的PCS和PMA,所以往往MAC(以及事务层和数据链路层等)和PCS/PMA是独立设计的,甚至是不同厂家设计的。为这之间提供统一的行业标准——PIPE,有助于使不同厂家之间的设备有更好的兼容性。当然,也有很多PCIe设备完全是由一个厂家设计的(如部分基于PCIe的ASIC等),此时是否采用PIPE的必要性就不是那么重要了。

随着高速串行技术的发展,各种串行通信技术的物理层逐渐走向了统一,用户甚至可以基于FPGA中的SerDes/PCS完成多种高速串行通信接口的设计。这些通信接口的区别往往只是体现在高层协议(数据链路层与事务层等),在物理层上(尤其是物理层电气子层上)基本上是一致的。

虽然PIPE规范最早是用于PCIe总线中的(从命名方式就可以看出来),但是该规范的后续版本逐渐开始支持了其他的串行接口。以Intel发布的最新版本的PIPE Spec为例(v5.1),该版本涉及PCI Express、SATA、USB、DisplayPort和Converged IO等多种高速串行接口。

USB中的PHY/MAC接口,如下图所示:

详细的PHY/MAC接口(PIPE)的示意图如下(PCIe、USB等):

#PIPE# PIPE之 形而上相关推荐

  1. windows c语言 pipe,pipe 函数 (C语言)

    pipe我们用中文叫做管道. 以下讲解均是基于Linux为环境: 函数简介 所需头文件 #include 函数原型 int pipe(int fd[2]) 函数传入值 fd[2]:管道的两个文件描述符 ...

  2. Java-NIO(九):管道 (Pipe)

    Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 代码使用示例: 1 @Test 2 publi ...

  3. angular2+ 自定义pipe管道实例--定义全局管道及使用

    首先到项目目录下ng g pipe pipe/myslice 就会在app目录下生成一个pipe文件夹文件夹下有myslice.pipe.ts文件,如果没有也可以自己手动新建 然后需要再app.mod ...

  4. 管道过滤器模式(Pipe and Filter)与组合模式(修改)

    之前在 benjielin 前辈的博客中看到"管道过滤器(Pipe-And-Filter)模式(http://bj007.blog.51cto.com/1701577/345677)&quo ...

  5. 转:Java NIO系列教程(九) Pipe

    Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取. 这里是Pipe原理的图示: 创建管道 通过Pi ...

  6. NIO详解(十一):线程间通信管道Pipe

    1. 概述 Java NIO 管道是2个线程之间的单向数据连接.Pipe有一个source通道和一个sink通道.数据会被写到sink通道,从source通道读取.下面是Pipe原理的图示: 当有两个 ...

  7. day41——多进程的消息队列、消息队列pipe

    多进程的消息队列 消息队列指的是消息在传输过程中保存消息的容器 消息队列最经典的用法是消费者和生产者之间通过消息管道来传递消息.消费者和和生产者是不同的进程,生产者往管道中写消息,消费者从管道中读消息 ...

  8. 【Python基础】在pandas中使用pipe()提升代码可读性

    1 简介 我们在利用pandas开展数据分析时,应尽量避免过于「碎片化」的组织代码,尤其是创建出过多不必要的「中间变量」,既浪费了「内存」,又带来了关于变量命名的麻烦,更不利于整体分析过程代码的可读性 ...

  9. Java NIO系列教程(十一) Pipe

    转载自  Java NIO系列教程(十一) Pipe 原文链接     作者:Jakob Jenkov     译者:黄忠       校对:丁一 Java NIO 管道是2个线程之间的单向数据连接. ...

  10. Python 进程间通信 Queue / Pipe - Python零基础入门教程

    目录 一.前言 1.使用 Queue 线程间通信 2.使用 Queue 进程间通信,适用于多个进程之间通信 3.使用 Pipe 进程间通信,适用于两个进程之间通信(一对一) 二.python 进程间通 ...

最新文章

  1. 给Ubuntu软件升级命令
  2. (转)Web Framework 的速度与激情 16 正式上映
  3. Java中的并发工具类:Semaphore基本理解和底层实现
  4. Hadoop 删除节点步骤
  5. systemctl start named失败的解决方法_有关平安银行的提额方法和提额失败的解决方法...
  6. 镇魂街武神躯怎么修改服务器,镇魂街武神躯怎么重置守护灵_守护灵重置方法_3DM手游...
  7. 手机处理器排名2019_手机CPU天梯图2020年3月最新版 你的手机处理器排名高吗?...
  8. 直播源码网站,自定制配置页面布局和写法
  9. IMO FTPC Part 3-A、B和F级分隔耐火性能测试
  10. 追求代码质量: 使用 TestNG-Abbot 实现自动化 GUI 测试
  11. F5 GTM DNS 知识点和实验 6 -智能DNS算法
  12. linux nginx配置81端口用于访问web81
  13. 实现自定义大转盘抽奖
  14. cisco VoIP软电话配置实验
  15. 查找算法之斐波那契查找算法
  16. uni-app app端用highcharts绘制图表,并生成海报保存到手机相册
  17. 小议移动订货之南北厂商
  18. 【算法】【链表模块】删除链表的中间节点或a/b节点
  19. stm32f407能跑linux吗_stm32能跑linux吗
  20. 蓝桥杯2019 c/c++ B组真题

热门文章

  1. iOS App 签名的原理
  2. firewalld 规则配置
  3. 对抗样本(五)DeepFool
  4. 获取连接到wifi热点的手机信息。
  5. win10移动热点,手机无法连接或连接超时
  6. c++实验3——个人税收计算器
  7. 信用卡积分兑换里程全攻略
  8. 服务(Service)
  9. 住宅IP和机房IP有什么区别,爬虫用哪种好?
  10. opensource项目_2020 Opensource.com夏季阅读列表