PCIe扫盲——ReTimer和ReDriver简介

2023-11-23 19:59

本文主要是介绍PCIe扫盲——ReTimer和ReDriver简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

发一个上海的岗位(可接受实习生)_Felix@SH的博客-CSDN博客

自2019年下半年,PCIe Gen5正式发布以来,其单个Lane/Channel速率已达32Gbps,传统的FR4电路板支持这么高的速率是完全不可能的事情。即使面对的是Gen4带来的16Gbps,FR4仍在瑟瑟发抖……

在6GT/s以下的串行通信协议中,8B/10B编码的是绝对的主流,其完美的DC均衡编码,极大地降低了串行收发器(尤其是Receiver)的设计难度。但是8B/10B的浪费20%带宽的缺点,限制了其在6GT/s以上速率串行协议中的进一步演进……于是各种高效率编码开始出现,如Ethernet 10GBASE-R PCS中用的64B/66B,PCIe Gen3及以上版本用的128B/130B,DisplayPort用的128B/132B,64B/67B……等等

1.jpg

新的高效率编码,借助更加复杂的扰码器,依然可以实现较长时间内的直流均衡,但是不可避免地会带来更长的Run Length(数据流中连续的0或者1)。这对串行接收器(Receiver)提出了更高的要求,往往也需要更加复杂的CDR设计,匹配以更加复杂的Tx/Rx EQ手段。

然而,相比于每提高1Gbps速率所需要的硬件成本(更低损耗的板材,价格是传统FR4的数倍),使用高效率编码带来的成本显然更低。

2.jpg

以PCIe应用来说,PCIe Gen3 仍可以较为容易地在普通的FR4上实现。但是Gen4则需要比FR4更低损耗的板材,这也是为什么支持PCIe Gen4的PC主板要比不支持Gen4的贵很多的原因之一。然而,即使是使用更贵(低损耗)的板材,长距离地传输16Gbps的信号仍然是一个非常大的挑战。在PCIe Gen4 Base Spec,还首次提出了信号调节的概念。有两种信号调节功能的器件:

  • ReTimer,

  • ReDriver

3.jpg

ReDriver功能相对简单,其通过Rx端的CTLE(基本原理一般就是一个高通滤波器),和Tx端的驱动器,实现对损耗的补偿,进而使得眼图的窗口变大,让整个PCIe通道看起来有更小的衰减。由于ReDriver有没涉及到任何协议相关的内容,所以其两端的PCIe设备是无法感知到ReDriver器件的存在的。

ReTimer不仅会在Rx端实现CTLE和DFE,还会在Tx端实现相应的EQ功能。这使得ReTimer器件能够分别于其两端的器件实现EQ Training,如上图所示。

因此ReTimer能够实现比ReDriver更好的降低通道物理损耗的效果。然而,复杂的ReTimer会增加更多的Latency。以PCIe Gen4应用为例,ReTimer带来的Latency可达64ns,而ReDriver往往只有100ps。

下面是几个使用ReTimer/ReDriver的例子:

4.jpg

5.jpg

6.jpg

7.jpg

注:本文主要参考资料来自TI,原文网址:TI 高精度实验室 - PCIe-PCIe、SAS 和 SATA IC - 德州仪器(TI)官方视频课程培训

注:原文最早发表于本人的ChinaAET博客(Felix-电子技术应用-AET-中国科技核心期刊-最丰富的电子设计资源平台)

这篇关于PCIe扫盲——ReTimer和ReDriver简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420372

相关文章

Java Docx4j类库简介及使用示例详解

《JavaDocx4j类库简介及使用示例详解》Docx4j是一个强大而灵活的Java库,非常适合需要自动化生成、处理、转换MicrosoftOffice文档的服务器端或后端应用,本文给大家介绍Jav... 目录1.简介2.安装与依赖3.基础用法示例3.1 创建一个新 DOCX 并添加内容3.2 读取一个已存

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async