1. PCIe基础知识
PCI-Express是一种高速串行计算机扩展总线标准,它原来的名称为“3GIO”,是由英特尔在2001年提出的,旨在替代旧的PCI,PCI-X和AGP总线标准。
与大多数总线一样,PCIe总线也包括电气属性协议组成两部分。完整地了解PCIe是相对复杂的,所以从应用角度来讲,我先从基本的协议入手,对PCIe有个初步的认识。拓展学习可以参考官方协议规范文档《PCI Express Base Specification》
PCIe 规范对于设备的设计采用分层的结构,有事务层、数据链路层和物理层组成,各层有都分为发送和接收两功能块
在发送端,应用程序(设备核A)在事务层形成事务层包(TLP——Transaction Layer Package),储存在发送缓冲器里,等待推向下层。在数据链路层,在TLP 包上再串接一些附加信息,这些信息是对方接收TLP 包时进行错误检查要用到的,形成数据链路层包(DLLP——Data Link Layer Package);在物理层,对DLLP 包进行编码,占用链路中的可用通道,从发送器发送出去。
在接收端,实际上是发送端的“逆”过程。如果说发送端是在不断组包,那么接收端就是不断的拆包,最后提取出有用的数据信息供B设备的应用程序使用。

整个过程实际上和以太网的过程很相似,都是在不同层级上进行数据的扩展。在FPGA的开发过程中,实际上从事务层到物理层都是封装好了的,组成标准IP核。用户通过IP核要求的总线协议(如AXI4-Stream)与之进行数据交换。


2.机制简述
2.1 Non-Posted和Posted
PCIe总线规定了两类数据传送方式,分别是Non-Posted和Posted数据传送方式。

在PCIe总线中,Non-Posted总线事务分两部分进行,首先是发送端向接收端提交总线读写请求,之后接收端再向发送端发送完成(Completion)报文。PCIe总线使用Split传送方式处理所有Non-Posted总线事务,存储器读、I/O读写和配置读写这些Non-Posted总线事务都使用Split传送方式。简单的说就是“一问一答”的方式。

而Posted总线事务,是只向终端发送报文,而终端无需反馈完成报文,所以是一种“单向发送”的机制。

参考博客连接:https://www.cnblogs.com/YINBin/p/10946247.html

pcie总线协议入门基础知识相关推荐

  1. ***入门基础知识(超全)

    ***入门基础知识(超全) [sell=2]  DOS 常用命令: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 de ...

  2. Spark —— 闪电般快速的统一分析引擎 —— 入门基础知识

    Spark 入门基础知识 Spark 的特点 速度快 使用方便 通用 兼容 Spark 基础 下载 独立部署模式(Standalone) 弹性分布式数据集 Scala shell 1. 数组中的最值: ...

  3. 深入了解计算机的知识,电脑入门基础知识之深入理解计算机系统

    电脑入门基础知识之深入理解计算机系统 导语:计算机系统由计算机硬件和软件两部分组成.硬件包括中央处理机.存储器和外部设备等.下面就来看看小编为大家整理的资料,希望对您有所帮助! 简介 按人的要求接收和 ...

  4. Linux入门基础知识

    注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...

  5. PHP简单入门基础知识

    PHP简单入门基础知识 作为一个web前端开发者第一天开始学php,整理的以下笔记,笔记并不完善,只是自我觉得和html,js有差别的地方做了下入门笔记 PHP 变量规则: 变量以 $ 符号开头,其后 ...

  6. Python培训入门基础知识学什么?

    Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...

  7. NLP汉语自然语言处理入门基础知识介绍

    NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...

  8. 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!

    负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...

  9. python笔记基础-Python入门基础知识学习笔记之一

    为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...

最新文章

  1. 信号状态关_路由器要不要关?难怪信号越来越差
  2. javascript数据结构与算法-队列
  3. 谈谈Java反射机制
  4. Nginx基础——Rewrite规则
  5. 云炬Qtpy5开发与实战笔记 1开发第一个桌面应用Hello World
  6. Ubuntu16.04系统运行VINS-Mono(安装、环境配置)
  7. 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...
  8. Ubuntu 14.04 16.04 安装最新的 docker
  9. 微课|玩转Python轻松过二级(2.1.4节):列表、元组、字典、集合概述
  10. anaconda新建python文件_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
  11. plsql tables 没有表_技术分享 | 在磁盘上查找 MySQL 表的大小
  12. 华为/华三IS-IS多区域配置及其路由优化
  13. Android周日历可滑动可选择日期
  14. 前端实现调取摄像头实现人脸识别
  15. QT5 + MSVC + OpenCV4 配置
  16. Android Studio更换背景图片
  17. 单片机电流检测电路图大全(四款模拟电路设计原理图详解) - 信号处理电子电路图
  18. 硬盘提示格式化的解决办法:
  19. safari浏览器模拟ipone,ipad以及其他浏览器版本
  20. 腾讯文档导出Excel文档显示‘文件已损坏,无法打开‘解决方法

热门文章

  1. 近期edge、谷歌浏览器崩溃的问题解决方案
  2. java EE基础概念了解
  3. PC版小米cc机器人自定义api接口插件PJ版
  4. 【2020年保研记】浙大软院+中科院信工所+北师大人工智能学院+华中科技网安学院+四川大学网安学院+中山大学系统科学与工程学院
  5. set -x 与 set +x
  6. 学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
  7. 我的世界手机版java光影在哪下载_我的世界手机版CSPE光影包-minecraftpe光影包下载...
  8. redis数据类型及操作
  9. 华强北四代慧联A10|悦虎1562M怎么样?
  10. 为什么 ERP 系统的用户体验不好?