【知识分享】PCIe5.0 TxRx 电气设计参数汇总
目录
0 引言
1 参考时钟--Refclk
2 发射端通道设计
3 发送均衡技术
4 接收端通道设计
5 接收均衡技术
6 结语
7 参考文献
8 扩展阅读
0 引言
PCI Express Base Specification 5.0的电气规范中,关键技术要点如下:
1. 支持2.5、5.0、8.0、16.0和32.0 GT/s的数据速率;
2. 支持公共的和分立的参考时钟体系结构;
3. 支持时钟扩频技术(SSC);
4. 支持低电压摆幅(Voltage Swing)的低功耗模式;
5. 在8.0、16.0和32.0 GT/s时的眼图闭合下,支持自适应发射机均衡和参考接收机均衡。
本文就上述的技术要点进行了串联梳理,旨在增加相关技术指标的可读性,并使之更好地展现给设计者。
1 参考时钟--Refclk
公共(Common Refclk--CC)和分立(Independent Refclk--IR)参考时钟的架构示意如下图所示,公共参考时钟架构中,系统中由一个统一的时钟源驱动发射和接收端,而分立参考时钟架构中,发射和接收端由不同的时钟源所驱动,并且每个时钟源可以独立进行相关抖动参数的定义。
针对Refclk的测试台架配置如下图所示,台架对信号传输通道有明确的插入损耗、阻抗控制和负载属性要求,用于模拟可能发生在PCI Express设备的引脚上的最坏情况下的信号衰减情况,并使用相位噪声分析仪测量参考时钟抖动相位,用示波器测量参考时钟抖动参数,所有测试都需要在50欧姆设备端接负载下进行,以避免不必要的反射对结果产生影响。
下表列出了Refclk需要关注的DC&AC电气设计参数规格,基于上述台架的测试结果需要满足这些技术要求;
除此之外,如下表所示,还有一些额外的与具体数据传输速率相关的技术参数,对时钟设计要求严苛的场景可以进行详细的设计参考。
另外,对于支持SSC的Refclk必须满足低频范围内的额外抖动限制,其定义为从30 kHz到500 kHz的连续分段线性图,如下图所示,未经滤波的Refclk相位抖动必须在该频率范围内低于限制值。
2 发射端通道设计
与参考时钟的通道设计复用,Tx和Rx的回波损耗(RL)测量值是相同的,其测量是在各自的break-out通道的末端进行的,并要求break-out通道对RL的贡献被去嵌入,从而将RL参数与Tx或Rx引脚相关联。
图中Breakout和Replica通道应设计为在奈奎斯特频率的插入损耗小于2 dB(最大信号速率为16.0 GT/s时,奈奎斯特频率为8GHz),并且从TP2或TP3测量时返回损耗大于15 dB,这可能需要使用低损耗介质、宽信号走线和通孔背钻等技术,因为,只有性能更好的通道设计,去嵌入的效果才可能更优。
RL测量时采用的参考阻抗为50欧姆,如下图所示定义了 Tx和Rx端口去嵌入后的差模和共模的RL模板,两种模式都被定义在50 MHz到16.0 GHz的频率范围内进行测量。
3 发送均衡技术
在发送端速率为2.5、5.0 GT/s时,仅支持数据去加重功能,而在发送端速率为8.0、16.0和32.0 GT/s时,可支持具备三个抽头的FIR滤波器的均衡器结构。
上述均衡器结构的规范参数因子配置如下表所示,以此为基础对发送信号进行调理。
具体测试时,需要根据不同的波形判定其处于预加重还是去加重,因为均衡器调节的效果发生在信号边沿处,因此,可以通过边沿峰值的位置来判定所使用的均衡方式,由上表可知:
当Pre-shoot>0dB时,即预加重模式,意味着均衡器结构图中的Vc>Vb,信号波形可能如下图所示:
当De-emphasis<0dB时,即去加重模式,意味着均衡器结构图中的Vb<Va,信号波形可能如下图所示:
由上述Va、Vb和Vc之间的关系可知,不同的因子组合会导致作为稳态信号电平Vb的变化,当Pre-shoot和De-emphasis非零时,使之不能达到信号的最大电压摆幅Vd,因此,规范对极限电压摆幅(Voltage Swing)给出了限制要求,虽然降低电压摆幅可以一定程度地降低功耗,但是也必须在最小限制要求的范围内,否则,信号可能会因为过度调制导致无法正常传输和接收。
根据前面均衡器结构图的参数描述,当完成Pre-shoot和De-emphasis的配置,即可得到Boost的参数,这三个参数组成一个矩阵单元,如下图所示,该矩阵单元有三个项对应预加重(PS)、去加重(DE)和boost,蓝色和橙色单元分别代表了电压摆动降额的最小和最大区域,信号调理需要在此区域以内(两个虚线之间的区域)进行参数的选择。
4 接收端通道设计
所有接收器的信号质量都是通过施加在校准通道上的应力眼睛来测试验证的,该校准通道模拟在实际通道中遇到的接近最坏情况的损失特性,对于2.5 GT/s和5.0 GT/s,恢复的眼图相当于Rx引脚处;对于8.0 GT/s、16.0 GT/s和32.0 GT/s,相当于应用Rx均衡后的裸芯片端口(Die)处。
一个标准的测试台架如下图所示,信号源连接到校准通道后,在TP2处进行应力眼图的校准,校准合格后,再将信号源应用于DUT,TP1~TP2包含了信号源和DUT之间的所有组件,从而捕获了由于电缆和Replica/Breakout通道造成的总体插入损失中的所有非理想特性,而发射端到TP1的所有直流和交流损耗被假设为0,否则必须进行去嵌入,换言之,测试只允许计入TP3之后的通道损耗。
一个校准通道的插入损耗指标通过一对高频和低频的IL极限值来定义,校准通道需要包括TP3后的所有物理损失,如下图所示为不同速率下的IL限制要求。
通道的特性阻抗要求为:2.5、5.0和8.0 GT/s速率下,通道要求差分100 欧姆和单端50 欧姆,16.0 GT/s和32.0 GT/s速率下,通道要求差分85 欧姆和单端42.5 欧姆,阻抗公差应保持在±5%或更高。
值得注意的是,插入损耗的定义虽然没有覆盖1GHz以下的频段,但是校准通道的DC阻抗之和(D+/-)不能超过7.5欧姆,另外,对于16.0 GT/s和32.0 GT/s,插入损失范围FHIGH-IL-MIN到FHIGH-IL-MAX只是名义上的定义,实际中,最好保证覆盖范围从“FHIGH-IL-MIN减去2 dB”到“FHIGH-IL-MAX加上3 dB”。
校准通道的回波损耗定义如下,分为16和32 GT/s两个版本:
请注意,校准通道是用于模拟真实信道参数的,因此,现实中,工程师可以拿这些参数对其互连通道进行设计约束,使用时,请注意与前文中的Tx、Rx端的回波损耗参数进行区分。
5 接收均衡技术
在2.5和5.0 GT/s速率下,并不需要额外定义Rx端的信号后处理,有Tx端的均衡技术已经足够使用; 在8.0、16.0、32.0 GT/s速率下,TP2的应力眼图通常是打不开的,此时就需要通过使用接收均衡器进行优化,该均衡器可以实现CTLE和1-tap(8 GT/s)、2-tap(16 GT/s)、3-tap(32 GT/s)DFFE功能。
8.0和16.0 GT/s的Rx均衡定义了一个具有固定低频和高频极点的一阶CTLE,如图所示,对于8.0 GT/s速率,ADC可在-6至-12 dB范围内调节,调节步长为1.0 dB,16.0 GT/s的参数基本相同,除了将ωp2系数改为16 GHz。
32.0 GT/s的Rx均衡定义了一个具有固定极点的二阶CTLE,如图所示,ADC可在-5至-15 dB范围内调节,调节步长为1.0 dB。
CTLE往往需要与DFE搭配使用,对于8.0 GT/s和16.0GT/s,d1的限制为±30 mV;对于16.0GT/s,d2的限制为±20 mV; 对于32.0GT/s,d2和d3的限制为±20 mV。
当完成上述的信号后处理配置,既可以进行应力眼图的测试,规范中根据不同速率,明确给出了眼图模板的测试指标,需要注意的是,这些眼高和眼宽的指标都是在信号误码率BER10^-12等级下获取的。
6 结语
实际的PCIe规范文档中,电气指标的技术内容很多,上述内容仅是关键部分的汇总,另外,本人的理解难免有所偏差,因此,感兴趣的工程师,需要仔细阅读文档的内容,以获取更多对设计有帮助的指标要求。
7 参考文献
[1] PCI Express Base Specification Revision 5.0, May 2019;
8 扩展阅读
[1] SerDes系列之DFE均衡技术_serdes ffe-CSDN博客
[2] SerDes系列之CTLE均衡技术_serdes ctle-CSDN博客
[3] 关于USB 3.1电气参数的探讨-CSDN博客
相关文章:
【知识分享】PCIe5.0 TxRx 电气设计参数汇总
目录 0 引言 1 参考时钟--Refclk 2 发射端通道设计 3 发送均衡技术 4 接收端通道设计 5 接收均衡技术 6 结语 7 参考文献 8 扩展阅读 0 引言 PCI Express Base Specification 5.0的电气规范中,关键技术要点如下: 1. 支持2.5、5.0、8.0、16.0和3…...
Airsim 项目结构分析
Airsim 项目结构分析 本文只分析最核心的 AirLib 项目结构,以及其与 Unreal 项目的关系 假如已经根据 Airsim 主页,克隆了完整项目。 Build on Linux - AirSim 克隆源码 # go to the folder where you clone GitHub projects git clone https://git…...
STM32+W5500+以太网应用开发+003_TCP服务器添加OLED(u8g2)显示状态
STM32W5500以太网应用开发003_TCP服务器添加OLED(u8g2)显示状态 实验效果3-TCP服务器OLED1 拷贝显示驱动代码1.1 拷贝源代码1.2 将源代码添加到工程1.3 修改代码优化等级1.4 添加头文件路径1.5 修改STM32CubeMX工程 2 修改源代码2.1 添加头文件2.2 main函…...
SQLmap 注入-03 获得用户信息
1: Sqlmap 先进入库,然后进入table, 然后列出column: sqlmap -u "http://192.168.56.133/mutillidae/index.php?pageuser-info.php&usernamexiaosheng&passwordabc&user-info-php-submit-buttonViewAccountDetails" --batch -p username -D …...
Kafka 和 MQ 的区别
1.概述 1.1.MQ简介 消息中间件,其实准确的叫法应该叫消息队列(message queue),简称MQ。其本质上是个队列,有FIFO的性质,即first in first out,先入先出。 目前市场上主流的MQ有三款ÿ…...
若依报错:无法访问com.ruoyi.common.annotation
无法访问com.ruoyi.common.annotation 若依的父工程的pom文件中设置了jdk为1.8,将idea的jdk也改为1.8即可。...
MCU、MPU、SOC、ECU、CPU、GPU的区别到底是什么
MCU、MPU、SOC、ECU、CPU、GPU的区别 参数MCUMPUSoCECUCPUGPU处理能力低至中中至高综合,视具体设计而定专用于汽车控制中至高高(并行能力强)集成度高低高高低(需配合主板使用)低(通常作为外部设备ÿ…...
档案事业与数据要素之间有什么关系?
在数字时代背景下,档案事业正经历着前所未有的变革。随着大数据、云计算、人工智能等技术的快速发展,档案数据已成为重要的基础性战略资源和关键生产要素。那么档案事业与数据要素之间究竟有什么关系? 一、档案数据要素的内涵与价值 数据要…...
HarmonyOS NEXT:华为分享-碰一碰开发分享
随着科技的不断进步,智能手机和智能设备之间的互联互通变得越来越重要。华为作为科技行业的领军企业,一直致力于为用户提供更加便捷、高效的使用体验。HarmonyOS NEXT系统的推出,特别是其中的“碰一碰”功能,为用户带来了前所未有…...
nuxt3项目打包部署到服务器后配置端口号和开启https
nuxt3打包后的项目部署相对于一般vite打包的静态文件部署要稍微麻烦一些,还有一个主要的问题是开发环境配置的.env环境变量在打包后部署时获取不到,具体的解决方案可以参考我之前文章 nuxt3项目打包后获取.env设置的环境变量无效的解决办法。 这里使用的…...
面试:Hadoop,块,HDFS的优缺点,HDFS的读写流程
Hadoop CDH会简化Hadoop的安装 Hue主要用于数据分析和处理,而CM(Cloudera Manager)则主要用于集群的管理和运维。 HDFS HDFS的块 块是 HDFS 系统当中的最小存储单位, 在hadoop2.0和3.0中默认128MB 在HDFS上的文件会被拆分成多个块,每个块作为独立的单…...
Codeforces Round 903 (Div. 3) E. Block Sequence
题解: 想到从后向前DP f[i] 表示从 i ~ n 转化为“美观”所需要的最少的步骤 第一种转移方式:直接删除掉第i个元素,那么就是上一步 f[i 1] 加上 1;第二种转移方式:从第 i a[i] 1 个元素直接转移,不需要增加步数&a…...
web-view环境下,H5页面打开其他小程序
在Web-view环境下,H5页面无法直接打开其他小程序。正确的实现方式是先从H5页面跳转回当前小程序,再由当前小程序跳转到目标小程序。具体实现方法如下: H5页面跳转回小程序时,调用wx.miniProgram.navigateTo()方法。 小程序跳转到…...
C语言之饭店外卖信息管理系统
🌟 嗨,我是LucianaiB! 🌍 总有人间一两风,填我十万八千梦。 🚀 路漫漫其修远兮,吾将上下而求索。 C语言之饭店外卖信息管理系统 目录 设计题目设计目的设计任务描述设计要求输入和输出要求验…...
【三维分割】Gaga:通过3D感知的 Memory Bank 分组任意高斯
文章目录 摘要一、引言二、主要方法2.1 3D-aware Memory Bank2.2 三维分割的渲染与下游应用 三、实验消融实验应用: Scene Manipulation 地址:https://www.gaga.gallery 标题:Gaga: Group Any Gaussians via 3D-aware Memory Bank 来源:加利福…...
【Linux系统】—— 编译器 gcc/g++ 的使用
【Linux系统】—— 编译器 gcc/g 的使用 1 用 gcc 直接编译2 翻译环境2.1 预处理(进行宏替换)2.2 编译(生成汇编)2.3 汇编(生成机器可识别代码)2.4 链接2.5 记忆小技巧2.6 编译方式2.7 几个问题2.7.1 如何理…...
读西瓜书的数学准备
1,高等数学:会求偏导数就行 2,线性代数:会矩阵运算就行 参考:线性代数--矩阵基本计算(加减乘法)_矩阵运算-CSDN博客 3,概率论与数理统计:知道啥是随机变量就行...
【数据结构篇】顺序表 超详细
目录 一.顺序表的定义 1.顺序表的概念及结构 1.1线性表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 二.动态顺序表的实现 1.准备工作和注意事项 2.顺序表的基本接口: 2.0 创建一个顺序表 2.1 顺序表的初始化 2.2 顺序表的销毁 2.3 顺序表的打印 3.顺序…...
Flink把kafa数据写入Doris的N种方法及对比。
用Flink+Doris来开发实时数仓,首要解决是如何接入kafka实时流,下面是参考Doris官方文档和代码,在自己项目开发的实践中总结,包括一些容易踩坑的细节。 目录 Routine Load方法 接入kafka实时数据 踩坑的问题细节 Flink Doris Connector方法 完整示例 Routine Load方法…...
leetcode刷题记录(七十八)——105. 从前序与中序遍历序列构造二叉树
(一)问题描述 105. 从前序与中序遍历序列构造二叉树 - 力扣(LeetCode)105. 从前序与中序遍历序列构造二叉树 - 给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一…...
imread和jpeg_read在MATLAB中处理图像时的不同
目录 1.功能差异 2.输出格式 3.颜色空间 4.处理阶段 5.用途 6.性能 1.功能差异 imread:这个函数用于读取各种格式的图像文件(包括JPEG、PNG、BMP等)并将其转换为MATLAB中的矩阵。它适用于读取图像并直接在空间域中进行处理。jpeg_read…...
P9069 [Ynoi Easy Round 2022] 堕天作战 TEST_98 Solution
Description 给定长为 n n n 的序列 a ( a 1 , a 2 , ⋯ , a n ) a(a_1,a_2,\cdots,a_n) a(a1,a2,⋯,an),有 m m m 个操作,分以下两种: modify ( l , r , k ) \operatorname{modify}(l,r,k) modify(l,r,k):对于所有…...
SCPI命令笔记
1. 读取设备信息 *IDN? 2. 复位仪器 *RST 3. 清除设备的状态寄存器和事件队列 *CLS 4. 读取设备数据(发一个指令,读取一次) READ? 5. 读取设备电压(功能和第4条命令达到一样的效果) MEAS:VOLT? 6. 读取设备电流 (功能和第4条命令达到一样的效果) MEAS:CURR? 7.…...
TCP创建通信前的三次握手(为啥不是两次?)
1.三次握手的过程 客户端发送 SYN(同步)报文 客户端向服务器发送 SYN 标志的数据包,请求建立连接,表示 "你好,我要连接你"。 服务器回复 SYNACK(同步确认)报文 服务器收到 SYN 后&am…...
2024.ailx10的年终总结
已经工作7年啦,今年网络安全行业愈发寒冷,几乎所有友商都在做安全GPT,说实话,AI确实颠覆了传统的网络安全运营,以前需要安服处置告警,以后可能就不需要了,大家日子都不好过,越是简单…...
洛谷P8837
[传智杯 #3 决赛] 商店 - 洛谷 代码区: #include<stdio.h> #include<stdlib.h> int cmp(const void*a,const void *b){return *(int*)b-*(int*)a; } int main(){int n,m;scanf("%d%d",&n,&m);int w[n];int c[m];for(int i0;i<n;…...
【Day23 LeetCode】贪心算法题
一、贪心算法 贪心没有套路,只有碰运气(bushi),举反例看看是否可行,(运气好)刚好贪心策略的局部最优就是全局最优。 1、分发饼干 455 思路:按照孩子的胃口从小到大的顺序依次满足…...
以太网详解(五)GMII、RGMII、SGMII 接口时序约束(Quartus 平台)
文章目录 接口时序Avalon Streaming 接口时序Receive TimingTransmit Timing GMII 接口时序Receive TimingTransmit Timing RGMII 接口时序Receive TimingTransmit Timing 如何创建 .sdc 约束文件三速以太网系统时钟信号创建 set_input_delay,set_output_delay 约束…...
Java中的错误与异常详解
Java中的错误与异常详解 Java提供了一种机制来捕获和处理程序中的异常和错误。异常和错误都继承自 Throwable 类,但它们有着不同的用途和处理方式。 1. Error(错误) Error 是程序无法处理的严重问题,通常由 JVM(Java…...
使用 HTML 开发 Portal 页全解析
前言 在当今数字化时代,网站作为企业和个人展示信息、提供服务的重要窗口,其重要性不言而喻。而 Portal 页,作为网站的核心页面之一,承担着引导用户、整合信息等关键任务。那么,如何使用 HTML 开发一个功能齐全、界面…...
高并发内存池_CentralCache(中心缓存)和PageCache(页缓存)申请内存的设计
三、CentralCache(中心缓存)_内存设计 (一)Span的创建 // 页编号类型,32位下是4byte类型,64位下是8byte类型 // #ifdef _WIN64 typedef unsigned long long PageID; #else _WIN32 typedef size_t PageI…...
Js:DOM中的样式(包含行内样式、滚动样式、可见区域样式等)
这部分还在更新 1、 获取行内样式:元素.style.样式名称 2、 获取当前正在显示的样式(只能读,不能修改,想要修改要使用style): ① 只有ie支持:元素.currentStyle.样式名称 ② 其他浏览器&…...
【leetcode 26】28.找出字符串中第一个匹配项的下标 | 实现 strStr()==❗不会❗==
在一个串中查找是否出现过另一个串,这是KMP的看家本领。 // 方法一 class Solution {public void getNext(int[] next, String s){int j -1;next[0] j;for (int i 1; i < s.length(); i){while(j > 0 && s.charAt(i) ! s.charAt(j1)){jnext[j];}if…...
Unity自学之旅04
Unity自学之旅04 Unity自学之旅④📝 跳跃🐯 攻击🦄 GUIGUI前置,显示收集物品数量和角色HpUGUI游戏暂停和重新开始 🤗 总结归纳 Unity自学之旅④ 📝 跳跃 public class PlayerBehaviorRigid : MonoBehavio…...
Unreal Engine 5 C++ Advanced Action RPG 十章笔记
第十章 Survival Game Mode 2-Game Mode Test Map 设置游戏规则进行游戏玩法 生成敌人玩家是否死亡敌人死亡是否需要刷出更多 肯定:难度增加否定:玩家胜利 流程 新的游戏模式类游戏状态新的数据表来指定总共有多少波敌人生成逻辑UI告诉当前玩家的敌人波数 3-Survival Game M…...
[Unity 热更方案] 使用Addressable进行打包管理, 使用AssetBundle进行包的加载管理.70%跟练
在正常的开发过程中我们经常遇到一些关于热更的方案,有一些已有的方案供我们选择,但是实机情况往往不尽如人意,各有优缺点. 现在我们同样有一个热更的需求,但是要求打包简单,加载过程可查,防止出现一些资源和流程的问题. 下面介绍我在项目中使用的方案. 打包方面使用Addressabl…...
人工智能领域单词:英文解释
目录 1、前言2、单词组1:15个3、单词组2:15个4、单词组3:15个5、单词组4:15个6、单词组5:15个 1、前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦࿰…...
工业网口相机:如何通过调整网口参数设置,优化图像传输和网络性能,达到最大帧率
项目场景 工业相机是常用与工业视觉领域的常用专业视觉核心部件,拥有多种属性,是机器视觉系统中的核心部件,具有不可替代的重要功能。 工业相机已经被广泛应用于工业生产线在线检测、智能交通,机器视觉,科研,军事科学,航天航空等众多领域 …...
NextJs - ServerAction获取文件并处理Excel
NextJs - ServerAction获取文件并处理Excel 一. 客户端二. ServerAction 处理 一. 客户端 use client; import { uploadExcel } from actions/batchInquirySystem/api; import type { UploadProps } from antd; import { Upload } from antd;/*** 创建问询内容*/ const Page …...
【深度学习项目】语义分割-FCN网络(原理、网络架构、基于Pytorch实现FCN网络)
文章目录 介绍深度学习语义分割的关键特点主要架构和技术数据集和评价指标总结 FCN网络FCN 的特点FCN 的工作原理FCN 的变体和发展FCN 的网络结构FCN 的实现(基于Pytorch)1. 环境配置2. 文件结构3. 预训练权重下载地址4. 数据集,本例程使用的…...
集群、分布式及微服务间的区别与联系
目录 单体架构介绍集群和分布式架构集群和分布式集群和分布式区别和联系 微服务架构的引入微服务带来的挑战 总结 单体架构介绍 早期很多创业公司或者传统企业会把业务的所有功能实现都打包在一个项目中,这种方式就称为单体架构 以我们都很熟悉的电商系统为例&…...
ConvBERT:通过基于跨度的动态卷积改进BERT
摘要 像BERT及其变体这样的预训练语言模型最近在各种自然语言理解任务中取得了令人印象深刻的性能。然而,BERT严重依赖于全局自注意力机制,因此存在较大的内存占用和计算成本。尽管所有的注意力头都从全局角度查询整个输入序列以生成注意力图࿰…...
C# 网络协议第三方库Protobuf的使用
为什么要使用二进制数据 通常我们写一个简单的网络通讯软件可能使用的最多的是字符串类型,比较简单,例如发送格式为(head)19|Msg:Heart|100,x,y,z…,在接收端会解析收到的socket数据。 这样通常是完全可行的,但是随着数据量变大&…...
「2024 博客之星」自研Java框架 Sunrays-Framework 使用教程
文章目录 0.序言我的成长历程遇到挫折,陷入低谷重拾信心,迎接未来开源与分享我为何如此看重这次评选最后的心声 1.概述1.主要功能2.相关链接 2.系统要求构建工具框架和语言数据库与缓存消息队列与对象存储 3.快速入门0.配置Maven中央仓库1.打开settings.…...
【Elasticsearch】Springboot编写Elasticsearch的RestAPI
RestAPI 初始化RestClient创建索引库Mapping映射 判断索引库是否存在删除索引库总结 ES官方提供了各种不同语言的客户端,用来操作ES。这些客户端的本质就是组装DSL语句,通过http请求发送给ES。 官方文档地址 由于ES目前最新版本是8.8,提供了全…...
Swift语言的学习路线
Swift语言的学习路线 引言 在现代程序开发中,Swift语言逐渐成为了移动应用程序开发的重要工具,尤其是在iOS和macOS平台上。自2014年发布以来,Swift以其易读性和强大的功能,受到越来越多开发者的青睐。对于初学者而言,…...
63,【3】buuctf web Upload-Labs-Linux 1
进入靶场 点击pass1 查看提示 既然是上传文件,先构造一句话木马,便于用蚁剑连接 <?php eval($_POST[123])?> 将这两处的检查函数删掉 再上传木马 文件后缀写为.php 右键复制图片地址 打开蚁剑连接 先点击测试连接,显示成功后&…...
Leetcode:2239
1,题目 2,思路 循环遍历满足条件就记录,最后返回结果值 3,代码 public class Leetcode2239 {public static void main(String[] args) {System.out.println(new Solution2239().findClosestNumber(new int[]{-4, -2, 1, 4, 8})…...
自然语言处理与NLTK环境配置
自然语言处理(Natural Language Processing, NLP)是人工智能的重要分支,专注于计算机如何理解、分析和生成自然语言。自然语言是人类用于交流的语言,如中文、英文等,这使得自然语言处理成为沟通人与计算机的桥梁。近年来,NLP在诸多领域得到广泛应用,包括文本分析、语言翻…...
分布式搜索引擎02
1. DSL查询文档 elasticsearch的查询依然是基于JSON风格的DSL来实现的。 1.1. DSL查询分类 Elasticsearch提供了基于JSON的DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有:查询出所有数据,…...