自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

系统固件工程师

系统平台知识

  • 博客(261)
  • 收藏
  • 关注

原创 [PCIe5.0] 2.2.7.1 TPH Rules

TPH 机制通过硬件提示优化数据流,适用于高性能计算和存储场景。

2025-04-29 20:06:11 60

原创 [PCIe5.0] 6.2.4.2 Multiple Error Handling (Advanced Error Reporting Capability)

高级错误报告(AER)的多错误处理机制错误状态寄存器Uncorrectable/Correctable Error Status寄存器累积记录错误,需软件显式清除。**First Error Pointer(FEP)**指向最早记录的未纠正错误,帮助软件按顺序处理。TLP头部日志支持记录错误TLP的头部(至少1个),可选支持多头部记录(通过控制)。若日志资源耗尽,新错误仅设置状态位但不记录头部。软件交互规则软件通过写1清除FEP指向的错误状态位,释放日志资源。竞态条件。

2025-04-26 08:43:14 134

原创 [PCIe5.0] 6.2.4.1 Root Complex Considerations (Advanced Error Reporting)

精准溯源:记录首个错误源的请求者ID,加速故障定位。灵活中断:支持INTx/MSI/MSI-X,适配不同平台需求。集中管理:通过RCEC统一处理多设备错误,减少软件复杂度。设计建议在服务器中启用所有错误类型的中断(Fatal/Non-Fatal/Correctable)。利用MSI-X多向量中断分离错误处理任务,提升响应效率。定期扫描Error Source Identification寄存器,监控高频错误设备。

2025-04-26 08:42:02 171

原创 [PCIe5.0] 6.2.4 Error Logging

基础错误报告(无AER)仅记录Device Status寄存器的通用错误标志(如Detected Parity Error)。部分错误通过PCI兼容配置空间(Type 00h/01h)上报,兼容传统PCI软件。高级错误报告(AER)每个错误对应Uncorrectable/Correctable Error Status寄存器的特定位,精确记录错误类型和严重性。事务层错误(如ECRC失败、畸形TLP)会记录TLP头部信息,便于诊断。多功能设备(Multi-Function Device)的特殊规则。

2025-04-26 08:40:22 38

原创 [PCIe5.0] 6.2.3.4 Optional Error Checking

可选性除非明确要求,否则是否执行某项错误检查由实现(设备厂商)自行决定。若未执行可选检查且错误发生,行为未定义(可能忽略错误或导致不可预测结果)。独立性若一项检查包含多条规则,每条规则可独立选择是否实现(可全选、部分选或不选)。实现依赖是否启用可选检查通常由设备内部逻辑或寄存器配置决定,无统一标准。核心目标:在保证基础可靠性的前提下,为设备厂商提供灵活性,以平衡性能、成本和错误处理需求。禁用可选检查 → 错误发生 → 行为未定义↓可能结果:数据损坏、系统挂起、静默忽略厂商自主性。

2025-04-26 08:38:00 23

原创 [PCIe5.0] 6.2.3.3 Error Forwarding (Data Poisoning)

PCI Express(PCIe)的错误转发(Error Forwarding)机制(又称数据中毒,Data Poisoning核心机制在TLP(事务层数据包)头部设置EP(Poisoned TLP)位,标记数据不可信。接收者(包括中间设备如交换机)检测到中毒TLP后,可选择上报错误或隔离数据。应用场景请求或完成包:适用于所有携带数据的TLP(如内存写入、读取完成包)。路径追踪:中间设备(如交换机)可上报中毒TLP,帮助定位错误来源。与完成状态机制的区别错误转发。

2025-04-26 08:35:45 18

原创 [PCIe5.0] 6.2.3.2.4 Advisory Non-Fatal Error Cases

核心原则当检测到非致命错误的代理(如完成者、中间接收者)不适合决定是否需要恢复操作时,通过ERR_COR消息(而非ERR_NONFATAL)上报错误,避免触发系统中断。目的:防止错误报告干扰软件正常操作(如设备探测、数据恢复)。关键场景与规则完成者发送UR/CA状态当完成者返回UR(Unsupported Request)或CA(Completer Abort)状态时,若错误为非致命,需通过ERR_COR上报(AER设备)或不报告(非AER设备)。示例。

2025-04-25 14:59:06 33

原创 [PCIe5.0] 6.2.3.2.4 Advisory Non-Fatal Error Cases

定义当检测到非致命错误的代理(如请求者、完成者)不适合决定是否需要恢复操作时,通过ERR_COR消息(而非ERR_NONFATAL)上报错误。目的:避免错误上报引发不必要的系统中断(如软件探测设备时触发系统错误)。关键规则AER设备:支持高级错误报告的设备通过ERR_COR上报建议性错误,供软件记录或分析。非AER设备:不发送任何错误消息(因软件无法区分ERR_COR与普通可纠正错误)。错误升级:软件可配置AER将建议性非致命错误升级为致命错误(ERR_FATAL),强制系统恢复。应用场景。

2025-04-25 14:33:15 40

原创 [PCIe5.0] 6.2.3.2.3 Error Pollution

PCI Express(PCIe)通过以下机制避免错误污染错误隔离规则若某一层(如物理层、数据链路层)检测到错误,后续层对同一数据包的错误将不再上报,仅记录最根本的错误。示例:物理层检测到接收错误(Receiver Error)后,数据链路层对同一数据包的错误(如TLP错误)不会上报,避免干扰根因定位。修正的内部错误(Corrected Internal Errors)由组件内部自动修复的错误(如缓存纠错),仍需上报,但不引发错误污染。事务层错误优先级若同一TLP触发多个事务层错误,按优先级顺序。

2025-04-25 14:30:13 25

原创 [PCIe5.0] 6.2.3.2.2 Masking Individual Errors

错误消息的启用通过Device Control寄存器的Reporting Enable位(控制可纠正/非致命/致命错误消息)或PCI Command寄存器的SERR# Enable位(传统PCI兼容机制),决定是否向上报告错误消息。错误屏蔽(AER功能)支持AER的设备可通过Uncorrectable Error Mask寄存器和Correctable Error Mask寄存器,独立屏蔽特定错误类型。屏蔽规则:即使检测到错误,若消息未启用或错误被屏蔽,则不发送消息且不记录相关日志。

2025-04-25 14:08:25 20

原创 [PCIe5.0] 6.2.3.2.1 Uncorrectable Error Severity Programming (Advanced Error Reporting)

不可纠正错误严重性可编程:支持通过Uncorrectable Error Severity寄存器,将不可纠正错误动态配置为致命(Fatal)或非致命(Non-Fatal)。核心作用:允许不同平台或设备根据需求自定义错误处理策略(如将某些错误升级为致命以强制系统恢复)。限制条件:仅支持AER的设备可用此功能,基线错误处理机制不支持(无法调整错误严重性)。默认值与灵活性默认严重性由规范定义,但驱动或平台软件可修改寄存器值,以适应高可靠性场景(如服务器、工业控制)。...置1。

2025-04-25 13:59:41 34

原创 [PCIe5.0] 6.2.3.2 Error Messages

ERR_COR触发条件:检测到可自动修复的错误(如数据链路层CRC错误)。作用:通知系统记录错误频率,优化链路性能,无需立即中断。触发条件:检测到不可纠正但链路仍可用的错误(如事务地址越界)。作用:允许系统继续运行,仅隔离故障事务。ERR_FATAL触发条件:检测到导致链路不可靠的严重错误(如物理层中断)。作用:触发系统级恢复(如全局复位)。核心规则错误消息根据来源(端点、根端口、事件收集器)发送至对应的根复合体。支持错误合并:相同严重性的错误消息可合并发送,减少系统负载。

2025-04-25 13:55:27 26

原创 [PCIe5.0] 6.2.3.1 Completion Status

作用当非发布请求(Non-Posted Request,如读取操作)的完成包(Completion TLP)返回时,通过字段(位于TLP头部)指示请求是否成功。若状态非“Successful Completion”,表示请求失败,请求者(Requester)可据此关联错误到特定请求,并在更高层协议(如驱动或应用层)尝试修复。关键规则请求独立性:PCIe将重新发起的请求视为全新事务,与原请求无关联(避免链路层状态冲突)。修复灵活性。

2025-04-25 13:49:41 24

原创 [PCIe5.0] 6.2.3 Error Signaling

完成状态(Completion Status)在事务完成时通过状态码直接反馈错误(如TLP包的完成阶段)。作用:实时反馈事务执行结果,兼容传统PCI错误处理逻辑。带内错误消息(In-Band Error Messages)发送特定错误消息(如ERR_COR、ERR_NONFATAL、ERR_FATAL)通知系统。作用:支持错误分类(可纠正/非致命/致命)和系统级响应。错误转发(Error Forwarding,数据中毒)在数据包中标记错误(Poisoned TLP),告知接收方数据不可信。作用。

2025-04-25 13:45:26 73

原创 [PCIe5.0] 6.2.2.2 Uncorrectable Errors

致命错误(Fatal Errors)特点:导致链路或相关硬件不可靠,需系统级恢复(如复位链路或硬件)。示例:物理层连接彻底中断、关键协议违反(如TLP头部非法)。非致命错误(Non-Fatal Errors)特点:仅影响单个事务,链路仍可正常工作,无需复位。示例:事务地址越界、数据包格式错误(不影响其他事务)。核心目标致命错误:防止错误扩散,强制恢复以保障系统安全。非致命错误:隔离故障事务,维持链路可用性,减少恢复成本。系统安全:致命错误强制快速恢复,避免灾难性后果。高可用性。

2025-04-25 13:42:09 23

原创 [PCIe5.0] 6.2.2.1 Correctable Errors

可纠正错误(Correctable Errors)特点:硬件可自动恢复,无需软件干预,不会导致功能失效(如数据链路层的CRC校验错误)。影响:可能降低性能,但可通过统计监控优化链路质量。示例:数据传输时因信号干扰导致CRC错误,硬件通过重传修复。不可纠正错误(Uncorrectable Errors)特点:无法自动修复,需系统介入,进一步分为两类:致命错误(Fatal Errors):导致链路或硬件不可靠,需系统级恢复(如全局复位)。示例:物理层连接中断、关键协议违反。

2025-04-25 11:35:50 33

原创 [PCIe5.0] 6.2.2 Error Classification

可纠正错误(Correctable Errors)系统可自动修复的错误(如数据链路层的CRC校验错误),不会导致功能失效,但可能影响性能。示例:链路训练中的短暂信号干扰,系统通过重传恢复数据。不可纠正错误(Uncorrectable Errors)无法自动修复的错误,进一步分为:致命错误(Fatal):导致功能完全失效,需系统级恢复(如全局复位)。示例:物理层连接彻底中断、关键协议违反。非致命错误(Non-Fatal):部分功能失效,系统可继续运行(如事务层超时)。

2025-04-25 11:31:01 28

原创 [PCIe5.0] 6.2.1 Scope

基线错误报告(Baseline)所有PCIe设备必须支持,定义了最低限度的错误报告要求。主要覆盖PCIe接口本身的错误(如链路层错误)、PCIe事务相关的错误(如数据传输错误)以及组件内部与PCIe相关的错误。兼容传统PCI的错误处理机制,通过映射PCIe错误到PCI状态寄存器或中断,确保非PCIe专用软件也能识别和处理错误。高级错误报告(AER,Advanced Error Reporting)可选功能,提供更详细的错误分类、定位和日志记录能力。

2025-04-25 09:34:49 22

原创 EFI_ACPI_SCI_INT

EFI_ACPI_SCI_INT 表示 ACPI 事件使用的系统中断号(通常为 9)。用途:用于处理电源管理、温度控制、设备插拔等 ACPI 事件。实际应用:BIOS 设置此值,操作系统读取并注册中断处理程序,确保系统能够响应 ACPI 相关事件并采取对应措施。

2025-04-24 11:31:50 566

原创 [PCIe5.0] 6.1.9 PME Routing Between PCI Express and PCI Hierarchies

通过合理配置PME信号路径和中断机制,系统可无缝整合新旧设备,实现高效的电源管理。:PCI-X RAID卡直连Root Complex,触发PME。:PCI声卡通过PCIe-PCI桥接入系统,从休眠状态唤醒。传统PCI/PCI-X设备通过。

2025-04-24 09:51:48 24

原创 [PCIe5.0] 6.1.8 Operating System Power Management Notification

为兼容不支持PCIe的旧系统软件(Legacy Software),系统默认通过。通过此机制,系统在保持向后兼容的同时,充分发挥PCIe原生电源管理的性能优势。当支持PCIe的现代系统软件(如现代操作系统)启用。,由固件重新配置Root Complex以禁用传统机制。:Linux内核启动后,启用PCIe原生PME中断。(如MSI/MSI-X)时,需。

2025-04-24 09:22:06 32

原创 [PCIe5.0] 6.1.7 Legacy PME Software Model

通过Root Complex的中介处理,PCIe设备可在传统系统中无缝实现电源管理功能,平衡新技术与旧系统的兼容需求。在传统(Legacy)系统中,PCIe PME(电源管理事件)机制无法直接被旧版系统软件识别。,并通过特定机制(如系统控制中断SCI或传统中断线)通知系统软件。

2025-04-24 09:18:56 22

原创 [PCIe5.0] 6.1.6 Native PME Software Model

通过合理配置PME中断机制,系统可实现高效电源管理,平衡功耗与响应速度。:SSD从低功耗模式唤醒以响应数据请求。:USB设备从休眠状态唤醒主机。

2025-04-24 09:15:37 45

原创 [PCIe5.0] 6.1.4.7 Message Transaction Reception and Ordering Requirements

通过遵循PCIe中断规则,系统可在高效性与可靠性之间取得平衡,同时避免底层死锁风险。:即使中断A先到达,服务顺序仍由OS调度决定。

2025-04-24 09:11:46 10

原创 [PCIe5.0] 6.1.4.6 Hardware/Software Synchronization

通过上述机制,PCIe设备可在不同场景下平衡中断处理的效率与可靠性,满足从嵌入式系统到数据中心服务器的多样化需求。:SSD有64个IO队列,但仅分配4个MSI-X向量(每向量对应16个队列)。:网卡接收队列0和1共享MSI-X向量2,需避免中断覆盖。:声卡不支持PVM,需确保处理所有音频中断。

2025-04-24 09:09:16 20

原创 [PCIe5.0] 6.1.4.5 Per-vector Masking and Function Masking

是PCIe设备管理中断消息的关键机制,用于精确控制中断触发与屏蔽。:在驱动开发中,优先使用MSI-X并充分利用PVM机制,以提升中断处理效率和可靠性。:网卡需临时禁用所有中断(MSI不支持Function Masking)。:SSD在处理IO队列时需临时屏蔽队列0的中断。

2025-04-24 09:05:59 14

原创 [PCIe5.0] 6.1.4.4 Sending Messages

MSI(Message Signaled Interrupts)和MSI-X是PCIe设备通过内存写操作(DWORD Memory Write)触发中断的机制,取代传统的边带(INTx)中断信号。:SSD完成IO请求后触发特定队列中断。:网卡收到数据包后触发中断。

2025-04-24 09:03:22 12

原创 [PCIe5.0] 1.5.4.3 Physical Layer Services

链路初始化与维护自动协商链路宽度(如x4或x16)和速率(如Gen3的8 GT/s),支持热插拔(如插入新显卡自动识别)。调整信号极性(解决线路反接问题)和多通道同步(消除信号延迟差异)。信号编码与传输使用8b/10b编码将数据转换为适合传输的格式(类似摩尔斯电码),确保信号稳定。通过弹性缓冲区(Elastic Buffer)处理发送端与接收端的时钟差异(如CPU与GPU时钟不同步)。可测试性设计支持发送预设测试模式(如合规模式),用于硬件调试和信号质量验证。对开发者。

2025-04-23 15:52:30 27

原创 [PCIe5.0] 1.5.4.2 Data Link Layer Services

错误检测与恢复为每个数据包(TLP)添加校验码(LCRC),接收端检测错误后自动触发重传(类似快递包裹损坏后补发)。发送端临时存储已发送的TLP,直到确认对方成功接收(ACK)。电源管理协调接收事务层的电源状态指令(如进入低功耗模式),并通知物理层执行。链路状态同步监控链路状态(如连接/断开/复位),实时反馈给事务层。对开发者通过错误状态寄存器快速定位链路问题(如LCRC错误率过高需检查信号质量)。配置重传缓冲区大小(如大缓冲区支持高吞吐,但增加延迟)。对用户。

2025-04-23 15:34:10 20

原创 [PCIe5.0] 1.5.4.1 Transaction Layer Services

流量控制使用“信用额度”机制(类似信用卡),发送方需确认接收方有空闲缓冲区才发送数据,避免数据溢出。数据包管理将设备请求(如内存读/写)封装成标准数据包(TLP)。解析接收到的数据包,提取有效信息(如显存数据或中断信号)。顺序控制支持严格顺序(兼容传统PCI)或灵活乱序(Relaxed Ordering)传输,提升效率。电源管理支持软件控制(如系统休眠)和硬件自主节电(如空闲时降频)。服务质量(QoS)

2025-04-23 12:57:18 19

原创 [PCIe5.0] 1.5.3 Physical Layer

信号转换将数据链路层的并行数据转换为高速串行信号(类似将多车道合并为单车道超高速行驶)。接收时反向操作,将串行信号还原为并行数据。硬件电路管理控制信号发射器(Driver)、接收器(Buffer)、时钟同步(PLL)、阻抗匹配等硬件模块。链路自适应自动协商链路速度和带宽(如Gen3的8 GT/s或Gen5的32 GT/s),确保两端设备兼容。未来扩展性预留升级接口,支持未来更高速率或新编码技术(如PAM4调制),仅需改动物理层设计。对用户。

2025-04-23 12:54:32 24

原创 [PCIe5.0] 1.5.2 Data Link Layer

数据完整性保障发送端为每个数据包(TLP)添加校验码(LCRC)和序列号,确保接收方能检测传输错误。接收端发现错误时,自动触发重传机制(类似快递丢件后要求补发)。链路管理通过专用管理包(DLLP)监控链路状态,如发送确认信号(ACK)、流量控制指令等。错误恢复若多次重传失败,判定链路故障并通知上层(如事务层)。LCRC由数据链路层添加,用于检测传输错误。ECRC由事务层添加,用于端到端数据完整性验证(如跨越多个交换机)。DLLP不向上层传递。

2025-04-23 12:52:00 22

原创 [PCIe5.0] 1.5.1 Transaction Layer

数据包(TLP)管理将读写请求、配置操作等事务封装成标准化的数据包(TLP),并解析接收到的数据包。流量控制使用信用机制(Credit-Based Flow Control),确保发送方和接收方的速度匹配,避免数据溢出。拆分事务(Split Transaction)每个请求包(如读请求)会生成唯一标识符,对应的响应包(如返回数据)必须匹配该标识,避免混淆。四大地址空间支持内存、I/O、配置地址空间,并新增消息空间(Message Space)

2025-04-23 12:49:16 112

原创 [PCIe5.0] 6.2.4.1.1 Error Source Identification

在支持高级错误报告(AER)的**根端口(Root Port)或错误源头追踪通过Error Source Identification寄存器记录首个错误消息的发起者ID(Requester ID),帮助定位是哪个设备触发了错误(如显卡、网卡)。统一上报控制根复合体内部组件(如RCiEP)必须通过事件收集器上报错误,禁止直连系统。错误消息必须被成功传输(而不仅仅是检测到)才会记录到寄存器。

2025-04-23 10:32:40 19

原创 [PCIe5.0] 6.2.4 Error Logging

PCIe规范中的错误报告机制分为基础版和高级版(AER)基础设备仅通过Device Status寄存器标记"有错误发生",但无法告知具体错误类型(如内存溢出还是数据损坏)。高级设备(支持AER)通过和Correctable Error Status寄存器精确记录错误类型(如ECRC校验失败、畸形TLP等)。记录引发错误的TLP头部信息,帮助定位故障。多功能设备(如多口网卡)物理层/数据链路层错误(如信号干扰)会被记录到所有功能的寄存器中。错误消息上报时,同一设备最多发送一条报告。

2025-04-23 10:26:55 21

原创 [PCIe5.0] 6.2.3.4 Optional Error Checking

PCIe规范中的可选错误检查机制允许硬件设计灵活选择是否实现某些错误检测功能。灵活性优先设备厂商可自由决定是否实现某些错误检查(例如数据完整性校验),即使规范定义了这些检查。独立可选性如果一个检查包含多个子规则(如地址对齐校验+长度校验),厂商可以选择只实现其中一部分。后果自负如果厂商未实现某个可选检查,而实际发生了相关错误,系统行为将不可预测(可能死机、数据损坏或静默失败)。特性可选错误检查机制传统强制错误检查实现自由度厂商自定义启用/关闭必须严格实现错误处理确定性。

2025-04-23 10:23:10 17

原创 [PCIe5.0] 6.2.3.3 Error Forwarding (Data Poisoning)

PCI Express中的**错误转发(Error Forwarding/数据中毒)是一种通过TLP数据包中的EP位(Error Poisoning Bit)**标记错误状态的机制。精准定位错误来源当TLP(事务层数据包)传输出错时,接收端或路径上的**中间设备(如交换机)**可以主动标记EP位,帮助软件快速定位是哪个环节导致了错误。灵活支持多种场景不仅适用于传统的完成包(Completion),还能用于含数据的请求包(如内存读/写请求),覆盖更广泛的错误场景。多级错误检测。

2025-04-23 10:20:22 25

原创 [PCIe5.0] 3.4.1 Flow Control Initialization State Machine Rules

流控初始化是PCIe链路中每个虚拟通道(VC)启用的必经流程,分为FC_INIT1和FC_INIT2两个阶段,确保发送端与接收端的缓冲区信用值协商一致。

2025-04-23 08:42:32 19

原创 [PCIe5.0] 3.4 Flow Control Initialization Protocol

流控初始化是PCIe链路启动或复位后的必要步骤,用于配置虚拟通道(Virtual Channel)的缓冲区信用机制,确保数据可靠传输。默认通道(VC0)必须最先初始化,所有其他虚拟通道的启用必须在其之后。初始化期间无任何TLP流量,确保链路从零开始建立流控。其他虚拟通道(如VC1、VC2)启用时需单独完成流控初始化,且不影响已激活通道的流量。初始化阶段FC_INIT1:初始化流控信用值,协商接收端缓冲区容量。FC_INIT2:确认信用值有效,完成流控配置。

2025-04-23 08:37:21 120

原创 [PCIe5.0] 3.3 Data Link Feature Exchange

数据链路功能交换协议是PCIe链路初始化的可选阶段,用于协商两端设备支持的高级功能(如流控增强)。功能字段:本地端口支持的功能(如Bit 0=支持:远端端口支持的功能(通过交换DLLP获取)。:标记远端功能字段是否有效。:控制是否启用功能交换(兼容旧设备时可禁用)。协议流程在DL_Feature状态下,双方通过交换支持的功能位。功能激活条件:双方对应功能位均置1(如同时支持Scaled Flow Control)。规则约束进入DL_Feature时,清空远端功能字段。

2025-04-23 08:32:50 67

ACPI -HID,-CID,-UID

ACPI -HID,-CID,-UID

2025-01-07

空空如也

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

TA关注的人

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