PCIE
文章平均质量分 83
微辣不麻
日日精进,必有所成
展开
-
PCIE协议-4-逻辑物理层-8.0 GT/s及更高数据速率编码
当PCI Express链路以8.0 GT/s或更高的数据速率运行时,它使用本小节中描述的编码规则:128b/130b编码。为了向后兼容,链路最初在2.5 GT/s数据速率下使用8b/10b编码进行训练到L0,如第4.2.1节所述,然后当数据速率更改为8.0 GT/s或更高时,使用128b/130b编码。128b/130b编码是一种链路范围内的数据包机制和每个通道的块码以及扰乱。数据传输的基本单位是一个8位数据字符,称为符号,如图4-11和图4-12所示。原创 2024-05-27 15:54:15 · 1754 阅读 · 0 评论 -
PCIE协议-4-物理层逻辑模块
物理层将事务层和数据链路层与用于链路数据交换的信令技术隔离开来。物理层被划分为逻辑物理层和电气物理层子模块(见图4-1)。原创 2024-05-24 10:38:39 · 1209 阅读 · 0 评论 -
PCIE协议-3-数据链路层规范-数据完整性机制
事务层向数据链路层提供TLP边界信息,这使得数据链路层能够为TLP应用一个TLP序列号和链路CRC(LCRC)进行错误检测。接收数据链路层通过检查TLP序列号、LCRC码以及接收物理层的任何错误指示来验证接收到的TLP。如果TLP中存在这些错误中的任何一个,将使用数据链路层重试机制进行恢复。图3-14显示了应用了TLP序列号和LCRC码的TLP的格式。在支持协议多路复用的端口上,包含符号+0位7:4非零值的数据包是PMUX数据包。对于TLP,这些位必须是000b。详情请见附录G。原创 2024-05-21 14:10:35 · 1028 阅读 · 0 评论 -
PCIE协议-3-数据链路层规范-流控初始化协议
在电源启动或互连复位后开始正常操作之前,必须初始化默认虚拟通道VC0的流量控制(见第6.6节)。此外,当额外的虚拟通道(VCs)被启用时,在使用每个新启用的VC之前,必须完成流量控制初始化过程(见第2.6.1节)。本节描述了所有VCs使用的初始化过程。请注意,由于VC0在所有其他VCs之前被启用,因此在VC0初始化之前,不会有任何类型的TLP流量处于活动状态。然而,当额外的VCs正在被初始化时,通常其他已经启用的VCs上会有TLP流量。这种流量对额外VCs的初始化过程没有直接影响。原创 2024-05-20 16:27:06 · 1177 阅读 · 0 评论 -
PCIE协议-3-数据链路层规范-数据链路控制及管理状态机
数据链路层跟踪链路的状态。它与事务层和物理层沟通链路状态,并通过物理层执行链路管理。数据链路层包含数据链路控制和管理状态机(Data Link Control and Management State Machine, DLCMSM),用于执行这些任务。这些状态在下面描述,并在图3-2中展示。状态包括:DL_Init - 物理层报告链路可操作,为默认虚拟通道初始化流量控制.DL_Active - 正常操作模式。原创 2024-05-17 10:48:28 · 1113 阅读 · 0 评论 -
PCIE协议-3-数据链路层规范-概述
在任何给定的个别链路上,输入到传输数据链路层(1和3)的所有TLPs将在稍后的时间以相同的顺序出现在接收数据链路层(2和4)的输出上,如图3-1所示。未通过数据完整性检查(LCRC和序列号)的TLPs,或在从一个组件传输到另一个组件时丢失的TLPs,将由发送器重新发送。发送器存储所有发送的TLPs的副本,在需要时重新发送这些副本,并仅在从另一个组件接收到无误接收的正向确认时清除副本。使用DLLPs的机制可能会因为这种信息丢失而遭受性能损失,但它们是自修复的,以至于连续的DLLP将取代任何丢失的信息。原创 2024-05-16 17:50:58 · 399 阅读 · 0 评论 -
PCIE协议-2-事务层规范-链路状态依赖性
一旦达到禁用状态,只要DPC状态寄存器中的DPC触发状态位被设置,它就会保持在那里。DL_Down状态表示链路上没有与另一个组件的连接,或者与另一个组件的连接已经丢失,并且不能通过物理层或数据链路层恢复。如果数据链路层报告DL_Down状态给事务层,并且DPC(数据包处理完成)尚未触发,本节规定了事务层的行为;本节规定了当数据链路层向事务层报告进入DL_Up状态时,事务层的行为,表明链路是可操作的。具有DL_Up状态的端口的事务层必须接受符合本规范其他规则的接收TLPs。2.9 链路状态依赖性。原创 2024-05-16 17:19:11 · 745 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Completion Timeout Mechanism
默认情况下,PCI Express到PCI/PCI-X桥不被启用以返回配置请求重试状态(CRS)给桥后面的PCI/PC-X设备。系统软件可以通过在设备控制寄存器中设置桥配置重试使能位来启用PCI Express到PCI/PCI-X桥返回CRS,但须遵守[PCIe-to-PCI-X-Bridge-1.0]中注明的限制。注意:对于有多个完成的内存读取请求,只有在请求者收到所有完成时,才应认为已完成。发出需要完成的请求的PCI Express设备功能必须实现完成超时机制,配置请求除外(见下文)。原创 2024-05-16 15:58:10 · 362 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Data Integrity
PCI Express中的基本数据可靠性机制包含在数据链路层中,该层使用32位循环冗余校验(LCRC)代码在链路对链路的基础上检测事务层包(TLP)中的错误,并应用链路对链路的重传机制进行错误恢复。TLP是由PCI Express域的“边缘”(例如端点或根复合体)处的数据源创建的数据和事务控制单元,可能通过中间组件(即交换机)路由,并由最终的PCI Express接收者消耗。当一个TLP通过一个交换机时,交换机可能需要更改一些控制字段,而不修改其他在数据包穿越路径时不应更改的字段。原创 2024-05-16 15:43:17 · 1262 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Ordering and Receive Buffer Flow Control
注:流量控制是事务层的一个功能,因此,在接口上传输的以下类型的信息不与流量控制信用相关联:LCRC(长帧校验序列)、数据包帧符号、其他特殊符号以及数据链路层到数据链路层的通信数据包。对于虚拟通道1-7,当相应的虚拟通道使能位在虚拟通道资源控制寄存器中被设置,并且一旦该虚拟通道的流量控制协商退出了FC_INIT1状态并进展到FC_INIT2状态时(见第3.4节),该虚拟通道就被视为已启用。在本规范的本节和其他节中,使用概念上的“寄存器”来描述规则,设备可以使用这些寄存器来实现符合要求的实现。原创 2024-05-16 14:40:18 · 875 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Virtual Channel (VC) Mechanism
虚拟通道(VC)机制提供了对可以在整个结构中传输使用TC(流量类别)标签区分的流量的支持。VC的基础是独立的结构资源(队列/缓冲区及其相关的控制逻辑)。这些资源被用来在具有完全独立的流控制的不同VC之间跨链路移动信息。这对于解决流控制引起的阻塞问题至关重要,其中单个流量可能为系统中的所有流量创建瓶颈。通过将具有特定TC标签的数据包映射到相应的VC,将流量与VC关联起来。VC和多功能虚拟通道(MFVC)机制允许灵活地将TC映射到VC上。在最简单的形式中,TC可以一对一地映射到VC上。原创 2024-05-15 17:43:31 · 1371 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Transaction Ordering
表2-40定义了PCI Express事务的排序要求。此表中定义的规则适用于PCI Express上的所有事务类型,包括内存、I/O、配置和消息事务。在单个流量类别(Traffic Class,TC)内,这些排序规则适用。不同TC标签之间的事务没有排序要求。请注意,这也意味着通过不同虚拟通道传输的流量之间也没有排序要求,因为具有相同TC标签的事务不允许被映射到任何PCI Express链路上的多个虚拟通道上。对于表2-40,列代表首次发出的事务,行代表随后发出的事务。表中的条目指示两个事务之间的排序关系。原创 2024-05-15 14:20:54 · 909 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Handling of Received TLPs
本节描述了当接收到的TLP从接收数据链路层传送到接收事务层,并且在数据链路层已经验证了接收到的TLP的完整性后,如何处理所有接收到的TLP。规则在图2-41所示的流程图中进行了图解。Switch必须处理同时针对Switch内部资源以及位于Switch外部的资源的TLP。Switch根据上述规则处理所有针对Switch内部资源的TLP。原创 2024-05-15 10:50:37 · 913 阅读 · 0 评论 -
PCIE协议-2-事务层规范-TLP Prefix Rules
如表2-36所述,类型VendPrefixL0和VendPrefixL1被保留用作厂商定义的本地TLP前缀。组件不得发送包含厂商定义的本地TLP前缀的TLP,除非已明确使能(使用厂商特定的机制)。支持任何厂商定义的本地TLP前缀使用的组件必须支持Fmt字段的3位定义,并设置扩展Fmt字段支持位(见第7.5.3.15节)。建议组件可以配置(使用厂商特定的机制),以便可以使用两种厂商定义的本地TLP前缀编码发送所有厂商定义的前缀。原创 2024-05-13 16:53:21 · 1529 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Completion Rules
所有Read、Non-Posted Write和AtomicOp请求都需要完成(Completion)。完成包含一个完成头标,对于某些类型的完成,完成头标之后会跟随一定数量的DWs数据。完成头标的每个字段的规则在以下各节中定义。注意:这只是要求TLP数据有效载荷长度与长度字段中的值匹配的一般规则的一个特定案例。2.2.9 完成规则。原创 2024-05-13 14:35:36 · 914 阅读 · 0 评论 -
PCIE协议-2-事务层规范-Message Request Rules-Vendor_Defined Messages
PCI-SIG定义的VDMs是使用PCI-SIG厂商ID(0001h)的厂商定义type1消息。作为厂商定义type1消息,如果完成者没有实现它,则每个都会被默默丢弃。PCI-SIG定义的VDMs使用图2-29中显示的头标格式。请求者ID字段必须包含与请求者相关联的值。消息代码必须是01111111b。厂商ID必须是0001h,这是分配给PCI-SIG的。子类型字段用于区分特定的PCI-SIG定义的VDMs。原创 2024-05-13 13:51:58 · 1423 阅读 · 1 评论 -
PCIE协议-2-事务层规范-Message Request Rules
包括厂商定义消息在内的许多类型的消息,可能在非 D0状态下使用,强烈建议当端口的桥接功能处于 D1、D2 和 D3Hot 状态时,端口处理消息的方式与处于 D0 状态时相同。强烈建议 type0功能支持在非 D0状态下生成和接收消息。除了地址和ID路由之外,消息还支持几种其他的路由机制。这些机制被称为“隐式”的,因为不需要指定地址或ID来确定目的地,而是通过路由类型隐含目的地。原创 2024-05-11 11:25:26 · 1224 阅读 · 0 评论 -
PCIE协议-2-事务层规范-MEM/IO/CFG request rules
以下规则适用于所有内存、I/O和配置请求。每种类型的请求还有特定的额外规则。对于内存读取请求,长度不得超过Max_Read_Request_Size指定的值。对于原子操作请求,表2-12中指定了架构操作数大小及其关联的长度字段值。如果完成器支持原子操作,以下规则适用:完成器必须检查长度字段值,如果该值与架构值不匹配,完成器必须将TLP视为畸形TLP。否则,如果该值与完成器支持的操作数大小不匹配,完成器必须将TLP视为不支持的请求(UR)。这是一个与接收端口相关联的报告错误。原创 2024-05-10 17:38:19 · 936 阅读 · 0 评论 -
PCIE协议-2-事务层规范---事务描述符
事务描述符是请求者和完成器之间传输事务信息的机制。图2-14显示了事务描述符的字段。注意,这些字段一起显示是为了强调它们作为单个逻辑实体的组成部分之间的关系。这些字段在数据包头标中并不是连续的。原创 2024-05-10 15:22:27 · 769 阅读 · 0 评论 -
PCIE协议-2-事务层规范
事务由请求和完成组成,它们使用数据包进行通信。图 2-2 显示了一个 TLP 的高级序列化视图,由一个或多个可选的 TLP 前缀、一个 TLP 头标、一些数据包类型的数据有效载荷,以及一个可选的 TLP digest(ECRC)组成。图 2-3 显示了 TLP 的更详细视图。本章的以下各节定义了数据包头标和ECRC的详细结构。PCI Express 概念上将信息传输为字节的串行流,如图 2-2 所示。请注意,在字节级别,信息是以 TLP 的最左边的字节在互连上进行传输/接收的。原创 2024-05-08 17:04:04 · 1120 阅读 · 0 评论 -
PCIE协议-1
本文档根据三个独立的逻辑层次来指定架构:事务层、数据链路层和物理层。每一层都分为两个部分:一个处理外发(待传输)信息的部分,以及一个处理内入(已接收)信息的部分,如图1-4所示。这种分层定义的基本目标是促进读者对规范的理解。请注意,这种分层并不意味着特定的PCI Express实现。PCI Express 使用数据包来在组件之间通信。数据包在事务层和数据链路层中形成,携带信息从发送组件传输到接收组件。随着传输的数据包流经其他层,它们会根据这些层处理数据包所需的额外信息进行扩展。原创 2024-05-07 15:57:44 · 1368 阅读 · 0 评论 -
PCIE初始化流程
pcie初始化流程原创 2024-04-09 11:08:21 · 298 阅读 · 1 评论 -
关于synopsys controller在EP mode下BAR的一些知识点
当BARn_SIZING_SCHEME_N=Programmable Mask(1)时,controller内部会实例化一个mask register, 可以通过DBI的方式改变mask register的值,从而调整bar size。当BARn_SIZING_SCHEME_N=Fixed Mask(0)时, bar size已经固定,通过BARn_MASK_N参数设定bar size;controller要求memory bar的size最小是4KB,IO bar的size最小是256byte。原创 2024-04-13 17:20:01 · 343 阅读 · 0 评论 -
PCIE EP controller databook学习
PCIE EP 学习原创 2024-04-08 17:08:06 · 895 阅读 · 1 评论