自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 收藏
  • 关注

原创 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 699

原创 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 987

原创 PCIE协议-3-数据链路层规范-数据链路控制及管理状态机

数据链路层跟踪链路的状态。它与事务层和物理层沟通链路状态,并通过物理层执行链路管理。数据链路层包含数据链路控制和管理状态机(Data Link Control and Management State Machine, DLCMSM),用于执行这些任务。这些状态在下面描述,并在图3-2中展示。状态包括:DL_Init - 物理层报告链路可操作,为默认虚拟通道初始化流量控制.DL_Active - 正常操作模式。

2024-05-17 10:48:28 798

原创 PCIE协议-3-数据链路层规范-概述

在任何给定的个别链路上,输入到传输数据链路层(1和3)的所有TLPs将在稍后的时间以相同的顺序出现在接收数据链路层(2和4)的输出上,如图3-1所示。未通过数据完整性检查(LCRC和序列号)的TLPs,或在从一个组件传输到另一个组件时丢失的TLPs,将由发送器重新发送。发送器存储所有发送的TLPs的副本,在需要时重新发送这些副本,并仅在从另一个组件接收到无误接收的正向确认时清除副本。使用DLLPs的机制可能会因为这种信息丢失而遭受性能损失,但它们是自修复的,以至于连续的DLLP将取代任何丢失的信息。

2024-05-16 17:50:58 314

原创 PCIE协议-2-事务层规范-链路状态依赖性

一旦达到禁用状态,只要DPC状态寄存器中的DPC触发状态位被设置,它就会保持在那里。DL_Down状态表示链路上没有与另一个组件的连接,或者与另一个组件的连接已经丢失,并且不能通过物理层或数据链路层恢复。如果数据链路层报告DL_Down状态给事务层,并且DPC(数据包处理完成)尚未触发,本节规定了事务层的行为;本节规定了当数据链路层向事务层报告进入DL_Up状态时,事务层的行为,表明链路是可操作的。具有DL_Up状态的端口的事务层必须接受符合本规范其他规则的接收TLPs。2.9 链路状态依赖性。

2024-05-16 17:19:11 656

原创 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 171

原创 PCIE协议-2-事务层规范-Data Integrity

PCI Express中的基本数据可靠性机制包含在数据链路层中,该层使用32位循环冗余校验(LCRC)代码在链路对链路的基础上检测事务层包(TLP)中的错误,并应用链路对链路的重传机制进行错误恢复。TLP是由PCI Express域的“边缘”(例如端点或根复合体)处的数据源创建的数据和事务控制单元,可能通过中间组件(即交换机)路由,并由最终的PCI Express接收者消耗。当一个TLP通过一个交换机时,交换机可能需要更改一些控制字段,而不修改其他在数据包穿越路径时不应更改的字段。

2024-05-16 15:43:17 1068

原创 PCIE协议-2-事务层规范-Ordering and Receive Buffer Flow Control

注:流量控制是事务层的一个功能,因此,在接口上传输的以下类型的信息不与流量控制信用相关联:LCRC(长帧校验序列)、数据包帧符号、其他特殊符号以及数据链路层到数据链路层的通信数据包。对于虚拟通道1-7,当相应的虚拟通道使能位在虚拟通道资源控制寄存器中被设置,并且一旦该虚拟通道的流量控制协商退出了FC_INIT1状态并进展到FC_INIT2状态时(见第3.4节),该虚拟通道就被视为已启用。在本规范的本节和其他节中,使用概念上的“寄存器”来描述规则,设备可以使用这些寄存器来实现符合要求的实现。

2024-05-16 14:40:18 599

原创 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 612

原创 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 743

原创 PCIE协议-2-事务层规范-Handling of Received TLPs

本节描述了当接收到的TLP从接收数据链路层传送到接收事务层,并且在数据链路层已经验证了接收到的TLP的完整性后,如何处理所有接收到的TLP。规则在图2-41所示的流程图中进行了图解。Switch必须处理同时针对Switch内部资源以及位于Switch外部的资源的TLP。Switch根据上述规则处理所有针对Switch内部资源的TLP。

2024-05-15 10:50:37 748

原创 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 1378

原创 PCIE协议-2-事务层规范-Completion Rules

所有Read、Non-Posted Write和AtomicOp请求都需要完成(Completion)。完成包含一个完成头标,对于某些类型的完成,完成头标之后会跟随一定数量的DWs数据。完成头标的每个字段的规则在以下各节中定义。注意:这只是要求TLP数据有效载荷长度与长度字段中的值匹配的一般规则的一个特定案例。2.2.9 完成规则。

2024-05-13 14:35:36 709

原创 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 996 1

原创 PCIE协议-2-事务层规范-Message Request Rules

包括厂商定义消息在内的许多类型的消息,可能在非 D0状态下使用,强烈建议当端口的桥接功能处于 D1、D2 和 D3Hot 状态时,端口处理消息的方式与处于 D0 状态时相同。强烈建议 type0功能支持在非 D0状态下生成和接收消息。除了地址和ID路由之外,消息还支持几种其他的路由机制。这些机制被称为“隐式”的,因为不需要指定地址或ID来确定目的地,而是通过路由类型隐含目的地。

2024-05-11 11:25:26 872

原创 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 752

原创 PCIE协议-2-事务层规范---事务描述符

事务描述符是请求者和完成器之间传输事务信息的机制。图2-14显示了事务描述符的字段。注意,这些字段一起显示是为了强调它们作为单个逻辑实体的组成部分之间的关系。这些字段在数据包头标中并不是连续的。

2024-05-10 15:22:27 582

原创 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 836

原创 PCIE协议-1

本文档根据三个独立的逻辑层次来指定架构:事务层、数据链路层和物理层。每一层都分为两个部分:一个处理外发(待传输)信息的部分,以及一个处理内入(已接收)信息的部分,如图1-4所示。这种分层定义的基本目标是促进读者对规范的理解。请注意,这种分层并不意味着特定的PCI Express实现。PCI Express 使用数据包来在组件之间通信。数据包在事务层和数据链路层中形成,携带信息从发送组件传输到接收组件。随着传输的数据包流经其他层,它们会根据这些层处理数据包所需的额外信息进行扩展。

2024-05-07 15:57:44 870

原创 AHB---原子性

例如,在一个64位单拷贝原子组中的突发传输,如果不是对齐到8字节边界的,则没有任何64位单拷贝原子性保证。不允许另一个观察者在某一时间点看到单拷贝原子性大小内的一些数据字节被更新,然后在相同单拷贝原子性大小内的其他数据字节在另一个时间点被更新。更复杂的系统需要支持更大的原子元素,特别是64位原子元素,以便master可以使用基于这些更大原子元素的数据结构进行通信。要求大于单拷贝原子性大小的传输必须至少以单拷贝原子性大小的块更新内存。单拷贝原子性大小定义了一个传输被保证以原子方式更新的数据字节数。

2024-05-06 17:02:48 249

原创 AHB---独占传输

AHB5定义了属性。这个属性定义了一个接口是否支持独占传输的概念。如果这个属性没有定义,那么接口就不支持独占传输。独占传输提供了一种支持类似semaphore操作的机制。这个序列确保只有在存储到内存时,该位置仍然保持用于计算要写入该位置的新值的相同值时,才更新内存位置。如果独占写入传输失败,预期master将重复整个独占访问序列。如果在独占读传输之后,同一个master更新相同或重叠的位置,是否会导致相关的独占写传输成功或失败,这是硬件实现定义的。

2024-05-06 16:33:45 783

原创 AHB---时钟和复位

被描述为稳定的信号需要在不同上升时钟沿采样时保持相同的值,即使在扩展传输中也是如此。然而,这些信号在时钟沿之后可能会出现毛刺(glitch),然后返回到之前驱动的相同值。如果这个属性是True,那么保证要求稳定的信号在上升时钟沿之间保持稳定且无毛刺。如果这个属性是False,或者没有定义,信号可以在上升时钟沿之间出现毛刺。复位信号,HRESETn,是协议中唯一的低电平有效的信号,并且是所有总线元素的主要复位。组件必须定义一个最小的周期数,以确保在复位信号被断言时,组件完全复位并且输出处于所要求的复位值。

2024-05-06 15:09:18 186

原创 AHB---数据总线

为了实现AHB系统,需要独立的读写数据总线。虽然推荐的最小数据总线宽度被指定为32位,但这可以根据数据总线宽度进行更改。在写传输期间,master驱动写数据总线。如果传输被延长,则master必须保持HREADY为高时的data valid,直到传输完成。对于比总线宽度窄的传输,例如在32位总线上的16位传输,master只需要驱动相应的字节通道。slave从正确的字节通道中选择写数据。在读传输期间,相应的slave驱动读数据总线。

2024-05-06 14:54:43 874

原创 AHB---slave响应信号

一旦master开始传输,slave就控制着传输的进展。master一旦开始传输就不能取消。当slave被访问时,必须提供一个响应,以指示传输的状态。传输状态由HRESP信号提供。表5-1表明,完整的传输响应是HRESP和HREADYOUT信号的组合。

2024-05-06 10:41:42 483

原创 AHB---总线互连

互连组件在系统中提供master和slave之间的连接。单master系统仅需要使用解码器(Decoder)和多路复用器(Multiplexor),如下所述。多master系统需要使用互连,该互连提供仲裁以及将来自不同master的信号路由到相应的slave。这种路由对于地址、控制和写数据信号是必需的。本规范未提供用于多master系统的不同方法的更多细节,例如单层或多层互连。地址解码器为总线上的每个slave提供选择信号HSELx。选择信号是对高位地址信号的组合逻辑解码。

2024-04-29 15:19:00 183

原创 AHB传输---内存类型

AHB5定义了属性。这个属性定义了一个接口是否支持本节中描述的扩展存储器类型。如果这个属性没有定义,那么接口就不支持扩展存储器类型。本规范的这一版为每类存储器类型添加了额外的HPROT信号,并为每种存储器类型提供了更详细的要求列表。被断言时,此位表示传输是数据访问。未被断言表示传输是指令取指。被断言时,此位表示传输是特权访问。未被断言表示传输是非特权访问。被断言时,传输的特性可以被修改。未被断言时,传输的特性不得修改。被断言时,传输必须在缓存中查找。

2024-04-29 14:30:37 549

原创 AHB传输---保护控制

在本规格说明书的A版和B版中,HPROT[3]的名称有所变化,但定义保持不变。在A版中,HPROT[3]被指定为可缓存(Cacheable),而在B版中它被指定为可修改(Modifiable)。对于带有内存管理单元的master,这些信号还指示当前访问是否可缓存(Cacheable)或可缓冲(Bufferable)。保护控制信号HPROT[3:0]提供了有关总线访问的额外信息,主要用于实现某种保护级别的任何模块。本规格说明书的A版定义了一个4位的HPROT信号。本规格说明书的B版增加了扩展的存储器类型。

2024-04-29 11:06:01 224

原创 AHB传输---等待传输

在未定义长度突发(INCR)的等待传输期间,当HREADY为低时,master允许将传输类型从BUSY更改为任何其他传输类型。如果执行了SEQ(顺序)传输,则突发继续;但如果执行了IDLE(空闲)或NONSEQ(非顺序)传输,则突发终止。图3-15 展示了在未定义长度突发期间的等待传输,传输类型从BUSY变为NONSEQ。

2024-04-29 10:41:12 740 2

原创 AHB传输---突发操作

图3-12 展示了未定义长度的增量突发。

2024-04-28 17:01:27 719

原创 AHB-读写传输

最简单的传输是没有等待状态的传输,传输由一个地址周期和一个数据周期组成。图3-1显示了一个简单的读传输,图3-2显示了一个简单的写传输。这个简单示例演示了传输的地址阶段和数据阶段是如何在不同的时钟周期中发生的。任何传输的地址阶段发生在前一个传输的数据阶段期间,地址和数据的这种重叠是总线流水线特性的基础,并且能够在仍然为slave提供足够的时间来响应传输的同时,实现高性能操作。slave可以在任何传输中插入等待状态以允许额外的完成时间。

2024-04-28 15:51:24 832

原创 AHB信号

通常,解码器还向多路复用器提供HSELx信号,或者由HSELx信号派生的信号/总线,以使多路复用器能够将选定的slave到master的适当信号路由。重要的是,这些额外的多路复用器控制信号必须重新定时到数据阶段。(重新定时到数据阶段:指的是HSELx信号需要与数据传输的时序同步以确保数据传输的正确性)注释: [a] 因为HRDATA[31:0]、HRESP和HEXOKAY信号通过多路复用器并保留相同的信号命名,完整的信号名称应该反映出它们是通过多路复用器选择的。a. 写数据总线宽度不仅限于32位。

2024-04-25 13:51:53 768

原创 AHB介绍

解码器监控来自master的地址,以便选择适当的slave,并将相应的slave输出数据路由回master。需要一个slave到master的多路复用器来多路复用从slave到master的读数据总线和响应信号。该组件对每个传输的地址进行解码,并为参与传输的slave提供选择信号。多master系统需要使用互连,该互连提供仲裁以及将来自不同master的信号路由到适当的slave。AHB还通过使用一个提供仲裁和路由信号的互连组件来支持多master设计,这些信号来自不同的master到适当的slave。

2024-04-25 10:58:25 717

原创 APB信号

内被认为有效,当PSEL、PENABLE和PREADY都为高电平时。建议(但不是强制性的)在PSLVERR不被采样时将其驱动为低电平。也就是说,当PSEL、PENABLE或PREADY中的任何一个为低电平时。接收到错误的事务可能或可能没有改变外设的状态。这是外设规定的,两种情况都是可以接受的。当写事务接收到错误时,并不意味着外设内的寄存器没有被更新。接收到错误的读事务可以返回无效数据。对于外设来说,没有要求在读取错误时将数据总线驱动为全0。APB外设不要求支持PSLVERR引脚。

2024-04-25 09:48:28 1165

原创 AXI4---低功耗接口

图A9-6显示了请求进入低功耗状态的典型流程。图A9-7显示了请求退出低功耗状态的典型流程。

2024-04-24 15:08:08 546

原创 AXI4 附加重要信号

QoS的默认系统级实现是,任何可以选择多个事务进行处理的组件,首先选择处理QoS值更高的事务。如果master组件不支持可编程的QoS方案,它可以使用代表其生成的事务的相对优先级的QoS值。master可以产生自己的AxQOS值,如果它能产生多个流量流(streams of traffic),它可以为不同的流选择不同的QoS值。通常,本规范建议不使用用户信号,因为AXI协议没有定义这些信号的功能,如果两个组件以不兼容的方式使用相同的用户信号,可能会导致互操作性问题。区域标识符可以提供更高阶地址位的解码。

2024-04-24 14:32:54 922

原创 AXI4---原子访问信号

AXI4去除了对锁定事务的支持,并仅使用一个1位的锁定信号。表格A7-2显示了AXI4中AxLOCK信号的编码。在AXI3中,AxLOCK信号指定了正常、独占和锁定访问。表格A7-1显示了AXI3中AxLOCK信号的编码。对于许多使用锁定事务的旧版案例,例如执行SWP指令,可能需要软件更改以防止使用任何强制执行锁定事务的指令。本规范建议,任何执行此类转换的组件,通常是互连,有一个可选的机制来检测和标记此类转换已经发生。如果任何组件如果执行了这种转换却不能在AXI4环境中使用,那么组件就不能正常工作。

2024-04-24 13:54:47 156

原创 AXI4---锁定访问

当master使用AxLOCK信号来表明一个事务是锁定事务时,互连必须确保只有那个master可以访问目标slave区域,直到来自同一个master的未锁定事务完成。任何显示为锁定事务的AxLOCK指示的事务都会迫使互连锁定接下来的事务。因此,锁定序列必须始终以一个没有AxLOCK指示锁定事务的最终事务完成。在完成锁定序列时,在发出最终解锁事务之前,master必须确保所有先前的锁定事务都已完成。在master开始一个锁定序列,无论是读或写事务之前,它必须确保没有其他事务等待完成。AXI4不支持锁定事务。

2024-04-24 13:46:43 179

原创 AXI4---独占访问

独占访问机制可以提供类似semaphore-type的操作方法,而不需要让总线在操作期间持续专用于特定的master。这意味着类似的操作方法不会影响总线访问延迟或最大可实现带宽。AxLOCK信号选择独占访问,而RRESP和BRESP信号分别指示独占访问读或写的成功或失败。slave需要额外的逻辑来支持独占访问。当master尝试对不支持独占访问的slave访问时,AXI协议提供了一种机制用以指示这种情况。本节的其余部分描述了AXI独占访问机制。master可能不会完成独占操作的写入部分。

2024-04-24 13:34:38 755

原创 AXI4---原子访问

先理解一下什么是Single-copy atomicity size:"Single-copy atomicity size"(单副本原子性大小)是一个概念,它定义了事务必须原子性地更新的最小数据块的大小,以字节为单位。原子性意味着在事务执行期间,数据的任何更改要么全部完成,要么完全不做,从而保证了数据的一致性和完整性。这里的“单副本”指的是在一次事务中,数据的更新操作是作为一个整体进行的,对于其他观察者(系统中的其他主设备)而言,这个更新是不可见的,直到整个事务完成。

2024-04-24 11:10:36 829

原创 AXI4 ---排序模型

AXI4协议支持一种基于AXI ID事务标识符使用的排序模型。

2024-04-24 10:03:15 924

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除