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

PCIE学习

目录

  • 一、PCIE结构
    • 1、层次结构
    • 2、数据包
      • TLP
      • DLLP
  • PCIE寄存器配置
    • 1、基址寄存器的作用
    • 2、基址寄存器的位置
  • 三、PCIE读取数据

一、PCIE结构

1、层次结构

绝大多数的总线或者接口,都是采用分层实现的。PCIe也不例外,它的层次结构如下:
请添加图片描述
PCIe定义了下三层:

  • 事务层(Transaction Layer)
  • 数据链路层(Data Link Layer)
  • 物理层(Physical Layer)

每层职能不同,且下层为上层服务。
分层设计优势:接口版本改动时,硬件设计改动的层数较少。

PCIe传输的数据从上到下,都是以packet的形式传输的,每个packet都是有其固定的格式的。

事务层的主要职责是创建(发送)或者解析(接收)TLP (Transaction Layer packet),流量控制,QoS,事务排序等。

数据链路层的主要职责是创建(发送)或者解析(接收)DLLP(Data Link Layer packet),Ack/Nak协议(链路层检错和纠错),流控,电源管理等。

物理层的主要职责是处理所有的Packet数据物理传输,发送端数据分发到各个Lane传输(stripe),接收端把各个Lane上的数据汇总起来(De-stripe),每个Lane上加扰(Scramble,目的是让0和1分布均匀,去除信道的电磁干扰EMI)去扰(De-scramble),以及8/10或者128/130编码解码,等等。

2、数据包

TLP

DLLP

PCIE寄存器配置

1、基址寄存器的作用

基址寄存器(Base Address Registers)就是 PCIe 协议提供的、用于向系统软件展示 PCIe 设备内部资源大小、资源类型和资源属性的机制。
每个 PCIe 设备内部都会有一部分资源需要提供给系统软件访问。与此同时,不同的 PCIe 设备可供系统软件访问的资源大小、资源类型也不一样。在计算机系统中,只有系统软件可以为 PCIe 设备内部的资源指定合适的地址,而 PCIe 设备能做的就是告诉系统软件该设备内部可访问的资源大小、资源类型和资源特性。

2、基址寄存器的位置

基址寄存器(Base Address Registers)位于 PCIe 设备配置空间(configuration space)的配置头(configuration header)中。PCIe 设备有两种类型的配置头,分别为 0 型配置头(Type 0 configuration header)和 1 型配置头(Type 1 configuration header)。在两种配置头中,基址寄存器的位置如下图所示:

从图中可以看出,0 型配置头(Type 0 configuration header)包含 6 个基址寄存器,而 1 型配置头(Type 1 configuration header)只包含 2 个基址寄存器。

PCIe 桥类型设备,即 PCIe Root Complex 和 PCIe Switch,包含 1 型配置头(Type 1 configuration header)。
PCIe 非桥类型设备,例如 PCIe Endpoint,包含 0 型配置头(Type 0 configuration header)。

三、PCIE读取数据

相关文章:

PCIE学习

目录 一、PCIE结构1、层次结构2、数据包TLPDLLP PCIE寄存器配置1、基址寄存器的作用2、基址寄存器的位置 三、PCIE读取数据 一、PCIE结构 1、层次结构 绝大多数的总线或者接口,都是采用分层实现的。PCIe也不例外,它的层次结构如下: PCIe定…...

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型

AGI时代的到来,市场风云变幻,世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时,数说故事正式对外发布数说故事“SocialGPT”,国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…...

STM32HAL库RS485-ModBus协议控制伺服电机

STM32HAL库RS485-ModBus协议控制伺服电机 一个月前,接手了一个学长的毕设小车,小车采用rs485通信的modbus协议驱动轮毂电机,与往常我学习的pwm控制电机方法大相径庭,在这里以这篇博客记录下该学习过程。 小车主要架构 电机型号 …...

【医学图像】图像分割系列.3 (uncertainty)

介绍几篇使用不确定性引导的医学图像分割论文:UA-MT(MICCAI2019),SSL4MIS(MICCAI2021),UG-MCL(AIIM2022). Uncertainty-aware Self-ensembling Model for Semi-supervise…...

Java有线程安全的set吗?

在Java中,有线程安全的Set实现。一个常用的线程安全的Set实现是ConcurrentSkipListSet。ConcurrentSkipListSet是一个有序的集合,基于跳表(SkipList)的数据结构实现。它提供了线程安全的操作,并且具有较好的性能。 接下来笔者用一段简单的Jav…...

《HelloGitHub》第 86 期

兴趣是最好的老师,HelloGitHub 让你对编程感兴趣! 简介 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。 https://github.com/521xueweihan/HelloGitHub 这里有实战项目、入门教程、黑科技、开源书籍、大厂开源项目等,涵盖多种编程语言 …...

LDGRB-01 3BSE013177R1 将数字输入和继电器输出结合

LDGRB-01 3BSE013177R1包的一部分是全面的通信选项,包括Modbus主/从或CS31,这种产品很少提供。128kB的用户内存和0.1秒/指令的程序处理时间只是AC500-eCo令人印象深刻的性能的两个例子。除了与现有AC500系列的互操作性,AC500-eCo系统还使用基…...

手动计算校正年龄、性别后的标准化死亡率 (SMR)

分析队列人群有无死亡人数超额,通常应用标准人群死亡率来校正,即刻观察到中的实际死亡数(D)与定一个标准的死亡人数(E),D与E之比称为死亡比(standarized Mortality ratio&#xff0c…...

Java组合模式:构建多层次公司组织架构

在现实生活中,常常会遇到用树形结构组织的一些场景,比如国家省市,学校班级,文件目录,分级导航菜单,以及典型的公司组织架构,整个层次结构自顶向下呈现一颗倒置的树。这种树形结构在面向对象的世…...

Langchain-ChatGLM:基于本地知识库问答

文章目录 ChatGLM与Langchain简介ChatGLM-6B简介ChatGLM-6B是什么ChatGLM-6B具备的能力ChatGLM-6B具备的应用 Langchain简介Langchain是什么Langchain的核心模块Langchain的应用场景 ChatGLM与Langchain项目介绍知识库问答实现步骤ChatGLM与Langchain项目特点 项目主体结构项目…...

设计模式十 适配器模式

适配器模式 适配器模式是一种结构型设计模式。作用:当接口无法和类匹配到一起工作时,通过适配器将接口变换成可以和类匹配到一起的接口。(注:适配器模式主要解决接口兼容性问题) 适配器的优点与缺点: 优…...

1.6 初探JdbcTemplate操作

一、JdbcTemplate案例演示 1、创建数据库与表 (1)创建数据库 执行命令:CREATE DATABASE simonshop DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; 或者利用菜单方式创建数据库 - simonshop 打开数据库simonshop &#x…...

为什么要用线程池?

线程池是一种管理和复用线程资源的机制,它由一个线程池管理器和一组工作线程组成。线程池管理器负责创建和销毁线程池,以及管理线程池中的工作线程。工作线程则负责执行具体的任务。 线程池的主要作用是管理和复用线程资源,避免了线程的频繁…...

c语言的预处理和编译

预处理 文件包含 当预处理器发现#include指令时,会查看后面的文件名并把文件的内容包含到当前文件中 两种写法 尖括号:引用的是编译器的库路径里面的头文件。 双引号:引用的是程序目录中相对路径中的头文件,如果找不到再去上面…...

网络安全必学 SQL 注入

1.1 .Sql 注入攻击原理 SQL 注入漏洞可以说是在企业运营中会遇到的最具破坏性的漏洞之一,它也是目前被利用得最多的漏洞。要学会如何防御 SQL 注入,首先我们要学习它的原理。 针对 SQL 注入的攻击行为可描述为通过在用户可控参数中注入 SQL 语法&#x…...

Docker基础知识详解

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:文章 🥭本文内容&am…...

腾讯、阿里入选首批“双柜台证券”,港股市场迎盛夏升温?

6月5日,香港交易所发布公告,将于6月19日在香港证券市场推出“港币-人民币双柜台模式”,当日确定有21只证券指定为双柜台证券。同时,港交所还表示,在双柜台模式推出前,更多证券或会被接纳并加入双…...

CentOS7 使用Docker 安装MySQL

CentOS7 使用Docker 安装MySQL Docker的相关知识本篇不会再概述,有疑惑的同学请自行查找相关知识。本篇只是介绍如何在CentOS7下使用Docker安装相应的镜像。 可登陆Docker官网 https://docs.docker.com 之后可以跟着官方的步骤进行安装。 clipboard.png 具体安装过…...

注解和反射复习

注解 注解:给程序和人看的,被程序读取,jdk5.0引用 内置注解 override:修饰方法,方法声明和重写父类方法, Deprecated:修饰,不推荐使用 suppressWarnings用来抑制编译时的警告,必须添加一个或多个参数s…...

RocketMQ的demo代码

下面是一个使用Java实现的RocketMQ示例代码,用于发送和消费消息: 首先,您需要下载并安装RocketMQ,并启动NameServer和Broker。 接下来,您可以使用以下示例代码来发送和消费消息: Producer.java文件&…...

Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南

Cataclysm: Dark Days Ahead - 在末日废土中生存的终极指南 【免费下载链接】Cataclysm-DDA Cataclysm - Dark Days Ahead. A turn-based survival game set in a post-apocalyptic world. 项目地址: https://gitcode.com/GitHub_Trending/ca/Cataclysm-DDA 欢迎来到Cat…...

纯本地运行!LiuJuan Z-Image Generator隐私安全,生成高质量图片

纯本地运行!LiuJuan Z-Image Generator隐私安全,生成高质量图片 想找一个既保护隐私,又能稳定生成高质量图片的AI工具吗?今天介绍的LiuJuan Z-Image Generator,可能就是你的理想选择。它最大的特点,就是“…...

赋能工业智能化转型实战案例解析

随着“工业4.0”和智能制造的深入推进,工业生产现场正经历着从“自动化”向“智能化”的深刻转型。在这一进程中,传统的机器视觉(MV)虽在速度与精度上表现优异,但面对柔性制造、非结构化环境以及复杂多变的任务需求时&…...

3分钟掌握Magika:AI驱动的文件类型检测终极指南

3分钟掌握Magika:AI驱动的文件类型检测终极指南 【免费下载链接】magika 项目地址: https://gitcode.com/GitHub_Trending/ma/magika Magika是一款基于深度学习的智能文件类型检测工具,由Google开源,能够快速准确地识别各种文件的内容…...

Qwen3-0.6B-FP8环境配置:NVIDIA驱动验证、CUDA版本匹配与vLLM兼容性检查

Qwen3-0.6B-FP8环境配置:NVIDIA驱动验证、CUDA版本匹配与vLLM兼容性检查 1. 环境准备与快速部署 1.1 硬件与驱动要求 在开始部署Qwen3-0.6B-FP8模型前,我们需要确保硬件环境满足最低要求: GPU要求:至少8GB显存的NVIDIA显卡&am…...

告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略

告别C盘爆满!Windows 11下ESP-IDF 5.3.2环境安装与路径优化全攻略 你是否经历过C盘空间告急的恐慌?当红色进度条填满磁盘图标时,那种窒息感堪比程序员面对满屏报错。对于嵌入式开发者而言,ESP-IDF环境安装往往成为C盘的"隐形…...

ai赋能openclaw安装:快马平台智能诊断与个性化配置推荐系统

最近在折腾OpenClaw这个工具时,发现它的安装过程对新手不太友好,各种依赖关系和配置参数让人头大。不过好在现在有了AI辅助开发工具,整个过程变得轻松多了。今天就来分享下如何用智能诊断和个性化推荐系统搞定OpenClaw安装。 依赖关系智能分析…...

OFA图像描述模型在STM32嵌入式系统的边缘计算应用

OFA图像描述模型在STM32嵌入式系统的边缘计算应用 让嵌入式设备也能"看懂"世界并说出来 1. 项目背景与需求 你有没有想过,让一个小小的嵌入式设备不仅能"看到"图像,还能用语言描述出它看到了什么?这听起来像是科幻电影里…...

别再只用欧氏距离了!用Python+NumPy实战马氏距离异常检测(附卡方分布阈值设定)

用Python实战马氏距离异常检测:从理论到工业级实现 在数据分析领域,距离度量是许多算法的基石。当数据维度升高且特征间存在相关性时,传统的欧氏距离就像用一把没有刻度的尺子测量复杂空间——它无法捕捉变量间的相互作用。想象一下金融交易监…...

nli-distilroberta-base开源协作:使用GitHub管理模型微调与实验代码

nli-distilroberta-base开源协作:使用GitHub管理模型微调与实验代码 1. 为什么需要GitHub管理AI项目 当你开始一个AI项目时,代码版本管理往往是最容易被忽视的环节。想象一下这样的场景:你花了三天时间调整模型参数,效果提升了5…...