当前位置: 首页 > news >正文

《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(2)

接前一篇文章:《PCI Express体系结构导读》随记 —— 第II篇 第7章 PCIe总线的数据链路层与物理层(1)

7.1 数据链路层的组成结构

数据链路层使用ACK/NAK协议发送和接收TLP,由发送部件和接收部件组成。其中,发送部件由Replay Buffer、ACK/NAK DLLP接收逻辑和TLP发送逻辑组成;而接收部件由“Error Check”逻辑、ACK/NAK发送逻辑和TLP接收逻辑组成。数据链路层的拓扑结构如图7-1所示:

图7-1 数据链路层的拓扑结构

实际上,每个PCIe设备的数据链路层都含有发送部件和接收部件。而上图为简化起见,仅含有Device A的发送部件和Device B的接收部件,即Device A发送链路两端使用的两个部件。Device A也具有接收部件,Device B也具有发送部件,这两个部件由Device B的发送链路使用,Device B发送链路的工作原理与Device A类似,本节对此不做详细介绍。

当PCIe设备进行数据传递时:

1)首先在事务层中产生TLP;

2)然后通过事务层将这个TLP发送给数据链路层;

3)数据链路层将这个TLP加上sequence前缀和LCRC后缀后,首先将这个TLP放入到Replay Buffer中,然后再发送到物理层。

目标设备(Device B)从物理层接收TLP时,将首先获得带前后缀的TLP,该TLP经过数据链路层传递给传递给事务层时,将被去掉Sequence前缀和LCRC后缀。在数据链路层中,TLP的格式如下图所示:

 

更多内容请看下回。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【Java开发】Maven安装配置详细教程
  • python模块06 mock-1基础用法
  • JavaWeb:实验一JSP运行环境安装及配置
  • 5.Redis 集群 主从复制 哨兵
  • Mybatis 是如何进行分页的?分页插件的原理是什么?
  • java构建工具-maven的复习笔记【适用于复习或者初步了解】
  • WebView快速打开
  • 公司招聘中,多个面试官对候选人评价不一致怎么办?
  • class 3: vue.js 3 计算属性
  • Java中的注解(Annotation)
  • MySQL入门学习-MySQL的连接查询
  • switch语句和while循环
  • 算法练习题07:无重复字符的最长子串
  • 临时性解决斐讯K3 路由器端口转发限制
  • GO Date数据处理
  • $translatePartialLoader加载失败及解决方式
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • Android 架构优化~MVP 架构改造
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • Github访问慢解决办法
  • k8s如何管理Pod
  • Mysql5.6主从复制
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Python学习笔记 字符串拼接
  • React组件设计模式(一)
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Unix命令
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 测试开发系类之接口自动化测试
  • 回顾 Swift 多平台移植进度 #2
  • 排序算法之--选择排序
  • 使用 @font-face
  • 用jquery写贪吃蛇
  • 智能合约Solidity教程-事件和日志(一)
  • ​RecSys 2022 | 面向人岗匹配的双向选择偏好建模
  • #define用法
  • #在 README.md 中生成项目目录结构
  • (2020)Java后端开发----(面试题和笔试题)
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (安卓)跳转应用市场APP详情页的方式
  • (附源码)springboot高校宿舍交电费系统 毕业设计031552
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十)c52学习之旅-定时器实验
  • (未解决)macOS matplotlib 中文是方框
  • (一)SpringBoot3---尚硅谷总结
  • (转) Android中ViewStub组件使用
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)linux 命令大全
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .FileZilla的使用和主动模式被动模式介绍
  • .libPaths()设置包加载目录
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。