当前位置: 首页 > 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的格式如下图所示:

 

更多内容请看下回。


http://www.mrgr.cn/news/16996.html

相关文章:

  • 有爱听《红楼梦》的程同行吗?Python 对红楼梦音频文件排序
  • NetSuite AI 图生代码
  • AWS MySQL 升级(二)—— MySQL API逻辑同步升级操作步骤
  • c++11新特性-智能指针
  • vue3 setup基本使用
  • 【赵渝强老师】MongoDB的In-Memory存储引擎
  • Docker容器技术详解
  • 阿里云云盘手动扩展方法
  • 【Redis】Redis 持久化 AOF、RDB—(七)
  • c++11新特性详细解读(未完待续...)
  • 非对称RAID破解SSD异构存储难题
  • JS设计模式之“神奇的魔术师” - 简单工厂模式
  • MySQL密码策略更改(临时+永久)
  • Python 潮流周刊#67:uv 的重磅更新(摘要)
  • 【js逆向专题】4.python调用JS和扣代码
  • 【电子通识】电子元器件可靠性基本概念
  • 大连网站建设手机网页页面设计
  • 指针5.回调函数与qsort
  • JAVA JDBC MYSQL案例
  • Java多线程入门介绍