pcie总线协议入门基础知识
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总线协议入门基础知识相关推荐
- ***入门基础知识(超全)
***入门基础知识(超全) [sell=2] DOS 常用命令: dir 列文件名 deltree 删除目录树 cls 清屏 cd 改变当前目录 copy 拷贝文件 diskcopy 复制磁盘 de ...
- Spark —— 闪电般快速的统一分析引擎 —— 入门基础知识
Spark 入门基础知识 Spark 的特点 速度快 使用方便 通用 兼容 Spark 基础 下载 独立部署模式(Standalone) 弹性分布式数据集 Scala shell 1. 数组中的最值: ...
- 深入了解计算机的知识,电脑入门基础知识之深入理解计算机系统
电脑入门基础知识之深入理解计算机系统 导语:计算机系统由计算机硬件和软件两部分组成.硬件包括中央处理机.存储器和外部设备等.下面就来看看小编为大家整理的资料,希望对您有所帮助! 简介 按人的要求接收和 ...
- Linux入门基础知识
注:内容系兄弟连Linux教程(百度传课:史上最牛的Linux视频教程)的学习笔记. Linux入门基础知识 1. Unix和Linux发展历史 二者就像父子关系,当然Unix是老爹.1965年,MI ...
- PHP简单入门基础知识
PHP简单入门基础知识 作为一个web前端开发者第一天开始学php,整理的以下笔记,笔记并不完善,只是自我觉得和html,js有差别的地方做了下入门笔记 PHP 变量规则: 变量以 $ 符号开头,其后 ...
- Python培训入门基础知识学什么?
Python培训基础知识主要是针对一些零基础的同学安排的,虽说Python是相对比较简单的一门编程语言,但是没有基础的同学还是要进行系统的学习,那么Python培训入门基础知识学什么呢?来看看下面小编 ...
- NLP汉语自然语言处理入门基础知识介绍
NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部 ...
- 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!
负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...
- python笔记基础-Python入门基础知识学习笔记之一
为什么要写这篇文章? 本人做过Objective-C开发,现在在用C#做WinForm开发.近段时间在学习Python入门基础知识时,发现有很多知识点和Objective-C的不一样.故想通过本文记录 ...
最新文章
- 信号状态关_路由器要不要关?难怪信号越来越差
- javascript数据结构与算法-队列
- 谈谈Java反射机制
- Nginx基础——Rewrite规则
- 云炬Qtpy5开发与实战笔记 1开发第一个桌面应用Hello World
- Ubuntu16.04系统运行VINS-Mono(安装、环境配置)
- 线性回归中oracle性质,66.Oracle数据库SQL开发之 高级查询——使用线性回归函数...
- Ubuntu 14.04 16.04 安装最新的 docker
- 微课|玩转Python轻松过二级(2.1.4节):列表、元组、字典、集合概述
- anaconda新建python文件_PyCharm+cmd中使用Anaconda 与 新建Python环境(Windows)
- plsql tables 没有表_技术分享 | 在磁盘上查找 MySQL 表的大小
- 华为/华三IS-IS多区域配置及其路由优化
- Android周日历可滑动可选择日期
- 前端实现调取摄像头实现人脸识别
- QT5 + MSVC + OpenCV4 配置
- Android Studio更换背景图片
- 单片机电流检测电路图大全(四款模拟电路设计原理图详解) - 信号处理电子电路图
- 硬盘提示格式化的解决办法:
- safari浏览器模拟ipone,ipad以及其他浏览器版本
- 腾讯文档导出Excel文档显示‘文件已损坏,无法打开‘解决方法
热门文章
- 近期edge、谷歌浏览器崩溃的问题解决方案
- java EE基础概念了解
- PC版小米cc机器人自定义api接口插件PJ版
- 【2020年保研记】浙大软院+中科院信工所+北师大人工智能学院+华中科技网安学院+四川大学网安学院+中山大学系统科学与工程学院
- set -x 与 set +x
- 学生体育运动主题网页设计——兵乓球国乒网(纯HTML+CSS代码)
- 我的世界手机版java光影在哪下载_我的世界手机版CSPE光影包-minecraftpe光影包下载...
- redis数据类型及操作
- 华强北四代慧联A10|悦虎1562M怎么样?
- 为什么 ERP 系统的用户体验不好?