12 2024 档案
摘要:先来看看协议层主要做什么事情: 本章描述了USB电源传输规范协议层的要求,包括: 如何构建和使用消息的细节。 计时器和超时值的使用。 使用消息和重试计数器。 复位操作。 错误处理。 状态下的行为。(状态机) 1、Message 先来了解一下Message,本规范定义了三种类型的Message: 控制
阅读全文
摘要:早期的PC中,所有的IO设备(除了存储设备之外的设备)的内部存储或者寄存器都只能通过IO地址空间进行访问。但是这种方式局限性很大,而且效率低,于是乎,软件开发者和硬件厂商都不能忍了……然后一种新的东西就出来了——MMIO。MMIO,即Memory Mapped IO,也就是说把这些IO设备中的内部存
阅读全文
摘要:前面的文章中介绍过有两种类型的配置空间,Type0和Type1,分别对应非桥设备(Endpoint)和桥设备(Root和Switch端口中的P2P桥)。 Type0还是Type1是由事务层包(TLP)包头中的Type Field所决定的,而读还是写则是由TLP包头中的Format Field所决定的
阅读全文
摘要:需要特别注意的是,PCIe的Spec中明确规定只有Root有权限发起配置请求(Originate Configuration Requests),也就是说PCIe系统里面的其他设备是不允许去配置其他设备的配置空间的,即peer-to-peer的配置请求是不允许的。并且配置请求的路由(Routing)
阅读全文
摘要:什么是UAC/UAD UAC是USB Audio Class的缩写,有时也叫UAD,UAD是USB Audio Device的缩写。 UAC/UAD定义了在USB规范下实现音频的设备的实现和控制功能,这些功能包括不仅音频数字部分的,也包括模拟部分。这些音频数据(模拟和数字)和用于直接控制音频环境的功
阅读全文
摘要:前面的文章中介绍过,每一个PCIe设备可以只有一个功能(Function),即Fun0。也可以拥有最多8个功能,即多功能设备(Multi-Fun)。不管这个PCIe设备拥有多少个功能,其每一个功能都有一个唯一独立的配置空间(Configuration Space)与之对应。 和PCI总线一样,PCI
阅读全文
摘要:前面的一系列文章简要地介绍了PCIe总线的结构、事务层、数据链路层和物理层。下面我们用一个简单地的例子来回顾并总结一下。 Requester端 如下图所示,Requester的应用层(软件层)首先向其事务层发送如下信息:32位(或者64位)的Memory地址,事务类型(Transaction Typ
阅读全文
摘要:前面的文章简单的介绍了一些关于PCIe总线事务层(Transaction Layer)和数据链路层(Data Link Layer)的一些基本概念。这篇文章来继续聊一聊PCIe总线的最底层——物理层(Physical Layer)。在PCIe Spec中,物理层是被分为两个部分单独介绍的,分别是物理
阅读全文
摘要:前面的文章介绍过,数据链路层(Data Link Layer)主要进行链路管理(Link Management)、TLP错误检测,Flow Control和Link功耗管理。 数据链路层不仅可以转发来自事务层的包(TLP),还可以直接向另一个相邻设备的数据链路层直接发送DLLP,比如应用于Flow
阅读全文
摘要:PCIe总线设计之初,充分考虑到了音频和视频传输等这些对时间要求特别敏感的应用。为了保证这些特殊应用的数据包能够得到优先发送,PCIe Spec中为每一个包都分配了一个优先级,通过TLP的Header中的3位(即TC,Traffic Class)。如下图所示: TC值越大,表示优先级越高,对应的包也
阅读全文
摘要:本节概述 传输速率与带宽对应表如下,注:此表为全双工通信速率且没考虑编码方式 详细说明 我们在接触PCIe设备时会接触到一个词,传输速率,比如8GT/s。或者有人问你设备的带宽多少?通信速率多少? Width(带宽):通常用x1、x2、x4、x8等表示,表示该链路由几条lane组成。 Speed(速
阅读全文
摘要:前面的文章介绍了TLP的几种类型以及TLP的包结构。这篇文章来详细地聊一聊Non-Posted Transaction(包括Ordinary Read、Locked Read和IO/Configuration Writes)与Posted Writes(包括Memory Writes和Message
阅读全文
摘要:先上一张图 PCIe拓扑特征:图的顶部是一个CPU。这里要说明的一点是,CPU被认为是PCle层次结构的顶层。PCle只允许简单的树结构,这意味着不允许循环或其他复杂的拓扑结构。这样做是为了保持与PCI软件的向后兼容性,PCI软件使用一个简单的配置方案来跟踪拓扑,不支持复杂的环境。为了保持这种兼容性
阅读全文
摘要:在介绍事务层之前,首先简单地了解一下PCIe总线的通信机制。假设某个设备要对另一个设备进行读取数据的操作,首先这个设备(称之为Requester)需要向另一个设备发送一个Request,然后另一个设备(称之为Completer)通过Completion Packet返回数据或者错误信息。 在PCIe
阅读全文
摘要:背景 所以需要对这块比较新的技术进行学习。在学习之前,有必要了解一下高通UEFI启动流程。 原文(有删改):https://blog.csdn.net/Ciellee/article/details/113519478 参考文档:80_P2484_117_B_UEFI_With_XBL_On_MSM
阅读全文
摘要:一、名词解释 SOURCE:提供VBUS电源的设备 SINK:从VBUS取电的设备 DFP(Downstream Facing Port): 下行端口,可以理解为Host,DFP提供VBUS。 UFP(Upstream Facing Port): 上行端口,可以理解为Device,UFP从VBUS中
阅读全文
摘要:bw_mem:测试内存带宽。 bw_mem 是 lmbench 套件中的一个工具,用于测试内存带宽。以下是 bw_mem 的使用选项: -P <parallelism>:指定并行度,即同时进行读写操作的线程数,默认为1。 -W <warmups>:指定预热时间,即测试前先进行一段时间的数据填充以缓存
阅读全文
摘要:和很多的串行传输协议一样,一个完整的PCIe体系结构包括应用层、事务层(Transaction Layer)、数据链路层(Data Link Layer)和物理层(Physical Layer)。 其中,应用层并不是PCIe Spec所规定的内容,完全由用户根据自己的需求进行设计,另外三层都是PCI
阅读全文
摘要:PCIe总线的提出可以算是代表着传统并行总线向高速串行总线发展的时代的到来。实际上,不仅是PCI总线到PCIe总线,高速串行总线取代传统并行总线是一个大的趋势。如ATA到SATA,SCSI到USB等…… 不过,为了兼容之前的PCI总线设备,虽然PCIe是一种串行总线,无法再物理层上兼容PCI总线,但
阅读全文
摘要:前面的文章中多次说道,PCIe总线在软件上是向前兼容PCI总线的。因此,PCIe总线完整的继承了PCI总线中的配置空间(Configuration Header)的概念。在PCIe总线中也有两种Header,Header0和Header1,分别代表非桥和桥设备,这与PCI总线是完全一致的。在PCIe
阅读全文
摘要:systrace的一些tag标签的含义和作用。 1. CPU*(0-7) Kernel内核模块,可以查看各个CPU执行了什么进程任务。 cpu信息的目录是/sys/devices/system/cpu,例如我的一加六老设备: OnePlus6:/sys/devices/system/cpu $ ls
阅读全文
摘要:概述 init是 Android 启动的第一个用户空间进程,它的地位非常重要,它fork产生系统的一些关键进程(如zygote,surfaceflinger进程),而zygote进一步fork产生system_server和其他应用进程,通过这套逻辑构建了Android的进程层次结构体系。init进
阅读全文
摘要:1、定义 物理层(PHY层)定义了USB电源传输的信令技术。本章定义了USB PD设备之间的互操作性所需的PD物理层的电气要求和参数。 2、物理层的功能 USB PD物理层由一对发射机和接收器组成,它们通过单个信号线(CC)进行通信。所有的通信都是半双工的。PHY层实现了避免冲突,以最小化信道上的通
阅读全文
摘要:LTSSM(Link Training and Status State Machine)用于定义USB等协议的链路状态。LTSSM中的四个主要可操作状态:U0、U1、U2、U3,分别表示不同的功耗模式和链路活动状态。具体作用如下: LTSSM 电源状态 U0(全功率活动状态): 这是链路的正常操作
阅读全文
摘要:什么是USB3.0RX一致性测试? USB 3.0 RX 一致性测试是对 USB 3.0 (也称为SuperSpeed USB)接收端(RX)的性能进行验证的一种测试。它主要用于确保 USB 3.0 设备的接收端能够正确接收和处理来自发送端的数据,符合 USB 3.0 标准的规定。 认识LTSSM链
阅读全文
摘要:在框架上,USB3.0超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同: 在框架上,USB3.0超速是向后兼容USB2.0的,但是二者在协议上还是有一些重大的不同: USB2.0的transaction(事务处理)有三部分(令牌(token)、数据(data)和握手(handsha
阅读全文
摘要:USB 3.0 RX Loopback 回环测试详解 什么是USB 3.0 RX Loopback 回环测试? USB 3.0 RX Loopback 回环测试是一种用于验证USB 3.0设备接收端功能的测试方法。简单来说,就是将设备的接收端和发送端连接起来,形成一个闭环,然后向这个闭环中发送数据,
阅读全文
摘要:USB 3.2 ECN(Engineering Change Notice)是一个针对USB 3.2标准的技术更新和修订文件。让我详细解释一下: USB 3.2标准背景 USB 3.2是通用串行总线(Universal Serial Bus)的一个版本,用于连接计算机和电子设备,提供数据传输和供电功
阅读全文
摘要:PCI-X总线在PCI总线的基础上发展而来,其在软件和硬件层面上都是兼容PCI总线的,但是却显著的提高了总线的性能。也就是说PCI-X的设备可以直接插到PCI的插槽中去,PCI的设备也可以直接插到PCI-X的插槽中去。 从硬件层面上来说,PCI-X继承了PCI总线中的Reflected-Wave S
阅读全文
摘要:为了能够取得更高的带宽,新版本的PCI Spec将PCI总线提高到了64-bit并将频率提高到了66MHz,最高支持533MB/s。下图描述的是一个典型的66Mhz,64-bit的PCI系统结构图。 前面的文章介绍过,PCI总线采用了Reflected-Wave Signaling技术,因此总线频率
阅读全文
摘要:USB 3.1 规范第 6.11.2 节详细介绍了 USB super speed(SS)检测序列。这个部分描述了设备如何检测和确认 USB 超级速度连接的过程。具体内容包括信号检测、握手协议以及连接确认步骤等。 检测SSTX/SSRX是否符合USB3.1 SPEC 检查眼图是否合适。 检查usb
阅读全文
摘要:上一篇文章中也是说到了,I/O Address Space的空间很有限(64KB),所以一般在I/O Space中都有两个寄存器,第一个指向要操作的内部地址,第二个存放读或者写的数据。因此,对于PCI的配置周期来说,包含了两个步骤: Step1:CPU先对IO Address中的0xCF8~0xCF
阅读全文
摘要:PCI总线具有32位数据/地址复用总线,所以其存储地址空间为2的32次方=4GB。也就是PCI上的所有设备共同映射到这4GB上,每个PCI设备占用唯一的一段PCI地址,以便于PCI总线统一寻址。每个PCI设备通过PCI寄存器中的基地址寄存器来指定映射的首地址。如下图所示: 注:需要注意的是PCI的地
阅读全文
摘要:简单了解一下USB PD协议大致框架是怎么样的,以及它的协议是怎么样在整个链路中传输的,内容摘自USB PD3.2协议文档。 USB电源传输是一个端口到端口架构,其中每个USB电源传输能力的设备由几个主要组件组成。 下图说明了端口对之间通信栈层的关系。 通信栈包括: 一个设备策略管理器(Device
阅读全文
摘要:1. 概述 在linux启动过程中会打印出如下信息,这些信息为我们呈现出系统下的保留内存空间情况。 Reserved memory: created DMA memory pool at 0x4c000000, size 8 MiB OF: reserved mem: initialized nod
阅读全文
摘要:PCI总线使用INTA#、INTB#、INTC#和INTD#信号向处理器发出中断请求。 这些中断请求信号为低电平有效,并与处理器的中断控制器连接。在PCI体系结构中,这些中断信号属于边带信号(Sideband Signals),PCI总线规范并没有明确规定在一个处理器系统中如何使用这些信号,因为这些
阅读全文
摘要:一、memblock简介 现实的物理内存是被截的一段一段的了,并不是一马平川的。伙伴系统要进行初始化,就需要知道哪些区域是可用的,哪些区域已经被占用了、被保留了,剩余的才可以用于伙伴系统的初始化。因此需要一个早期的内存管理机制,即 memblock 机制. 全局变量: struct memblock
阅读全文
摘要:1、简介 文档中是这样解释的: 本规范定义了USB设备 如何通过USB电缆 协商比[USB 2.0]、[USB 3.2]、[USBBC 1.2]规范中定义的USB电缆(使用USB类型-C®CC线作为通信通道)更多电流或更低的电压。它 允许比当今规范 更强大的设备从VBUS获得运行所需的电力,并与外部
阅读全文
摘要:USB PD 3.1 那什么是USB_PD_3.1呢?USB3.1是USB的一种传输标准,速度可以达到10Gbit/s,那PD是什么?PD(Power Delivery)就是电力输送,也就是充放电用的,它可以达到最高100W的功率。 1、资料下载地址 USB_Power_Deliery_3.1 文档
阅读全文
摘要:本文来简单地介绍一下PCI Spec规定的三种数据传输模型:Programmed I/O(PIO),Peer-to-Peer和DMA。 三种数据传输模型的示意图如下图所示: 首先来介绍一下Programmed I/O(PIO) PIO在早期的PC中被广泛使用,因外当时的处理器的速度要远远大于任何其他
阅读全文
摘要:PCI Spec规定了每个PCI总线上最多可以连接多达32个PCI设备,但是实际上却远远达不到32个,33MHz的32位PCI总线一般只能连接10到12个负载。 注:如果使用插槽连接,则一个连接算两个PCI设备,插槽和PCI卡分别算作一个PCI设备。也就是说一个33MHz的PCI总线最多只能连接4到
阅读全文
摘要:PCI总线是一种地址和数据复用的总线,即地址和数据占用同一组信号线AD。PCI总线的所有信号都与时钟信号同步,及所有的信号的变化都发生在时钟的上升沿,或者在时钟上升沿进行采样。 如下图所示,除了时钟信号CLK和数据地址复用信号AD之外,PCI总线至少还应包括FRAME#(用于表示一次数据传输的起始)
阅读全文
摘要:PCI是Peripheral Component Interconnect(外设部件互连标准)的缩写,它曾经是个人电脑中使用最为广泛的接口,几乎所有的主板产品上都带有这种插槽。目前该总线已经逐渐被PCI Express总线所取代。 PCI即Peripheral Component Interconn
阅读全文
摘要:PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。 由Intel在2001年的IDF上提出,由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力强,传输距离远,功耗低等优点。 注:第一代总
阅读全文
摘要:从今天开始,我们讲解PCIE协议分析章节的内容,本章分为4节内容,具体如下。 第1节:预备知识点 我们知道要想深入了解FPGA PCIe逻辑、理解PIO例子工程、应用XAPP1052 demo、应用XDMA例子工程,需要熟练知道PCIe的一些最基本的概念,比如PCIe配置空间、PCIe Bar空间、
阅读全文
摘要:1.什么是PCIe PCI Express是新一代的总线接口。早在2001年的春季,英特尔公司就提出了要用新一代的技术取代PCI总线和多种芯片的内部连接,并称之为第三代I/O总线技术。随后在2001年底,包括Intel、AMD、DELL、IBM在内的20多家业界主导公司开始起草新技术的规范,并在20
阅读全文
摘要:“Writeback” is the process of writing dirty pages back to persistent storage, allowing those pages to be reclaimed for other uses. Making writeback wo
阅读全文
摘要:Android 低内存终止守护程序 (lmkd) 进程可监控运行中的 Android 系统的内存状态,并通过终止最不必要的进程来应对内存压力大的问题,使系统以可接受的性能水平运行。 内存压力简介 并行运行多个进程的 Android 系统可能会遇到系统内存耗尽,需要更多内存的进程出现明显延迟的情况。内
阅读全文
摘要:一、简介 当今的复杂SoC由多个子模块协同工作组成。在执行各种用例的操作系统中,并非SoC中的所有模块都需要始终保持最高性能。为方便起见,将SoC中的子模块分组为域,从而允许某些域以较低的电压和频率运行,而其他域以较高的电压/频率对运行。 对于这些设备支持的频率和电压对,我们称之为OPP(Opera
阅读全文
摘要:writeback 回写 buffer IO 通过 page cache 进行缓存,减少对底层存储设备的直接读写,同时能够提高整体性能 写入到 page cache 的数据不会立刻写入后端设备,而是标记为“脏”,并被加入到脏页链表,后续由内核中的回写进程周期性的将脏页写回到底层存储设备 下面主要分析
阅读全文