础滨驱动的设计应用
大约 21 年前,PCI Express 1.0 向业界发布,并开启了从当时普遍使用的并行总线向串行接口的转变。 2002 年,没有人意识到“PCIe”在汽车应用中会变得多么引人注目,这有两方面的原因,一是同时期的车载计算状况,二是那时 PCIe 的重点显然在于桌面和数据中心使用的传统计算机。 在如今拥有接近人类(甚至可说是超过人类)自动驾驶能力的联网车辆的环境下,问题似乎不应该是“为什么汽车现在会使用 PCIe?”,而应该是“为什么汽车等了这么长时间才开始使用 PCIe?”
每年,我们都会看到汽车电子技术的复杂性日益增加 自适应巡航控制(车辆调整其速度以保持与前方车辆的固定距离)不久前还只是高端豪华车辆的专属。如今,一个中产阶级家庭可以购买一辆汽车,这辆车能够在交通中自动驾驶,找到并泊入一个停车位,并在那里等待车主的召唤。在这种形势下,所谓的自适应巡航控制更像是一个过时的噱头 传感器数据量、摄像机成像能力和转向计算能力都令人惊讶,一些研究人员计算出单辆车的数据吞吐量接近 200Gbps!
可靠性一直是汽车系统的基本要求。往日的汽车广告吹捧的是一个品牌安全到达目的地的能力,消费者追求的是行驶时间大于修车时间的汽车。由于消费者及其家人现在不仅依赖于车辆保持行驶的能力,还依赖于其超出人类能力做出关键决策和执行驾驶技术的能力,因此对可靠性的高关注度前所未有。汽车环境的温度、湿度和振动问题本身已经具有挑战性并且在快速变化,如果将所有这些先进电子设备产生的热量再加入其中,对汽车设计师来说将是一项艰巨的任务。消费者可以接受智能手机偶尔“崩溃”而重启,但不能容忍汽车电子产物出现同样的故障,这一点毫不奇怪,因为后者很容易导致现实世界的撞车事故,产生相应的严重后果。令人遗憾的是,同样是这些消费者,他们不情愿地接受了网络犯罪和“黑客攻击”在自己的日常生活中越来越令人不快的现实,但在这里,其后果甚至比最恶劣的身份盗窃还要严重得多。
因此,很明显,现代车辆需要具有高带宽、极高可靠性和强大安全性的互连——这些全都是 PCI Express 6.0 的通用属性!
从一开始,PCI Express 就一直专注于提供最高水平的带宽,因此,当以最高 (64GT/s) 的速度运行最宽 (x16) 链路时,当前的 PCIe 6.0 规范提供高达 256GB/s 的带宽也就不足为奇了。对另一个往昔的汽车广告表示歉意,PCIe 6.0 中定义的新 FLIT 模式和 PAM4 信令意味着“PCIe 6.0 不是您父亲那一代的 PCI Express 规范!” 随着保持与前几代 PCIe 的完全向后兼容性,新的 PAM4 信令仅在 64GT/s 下使用,而传统的 NRZ 信令仍在 32GT/s 及以下使用。以这种新速度保持可接受的误码率所带来的挑战导致了 PCIe 协议的重大变化,这实际上可能使其对注重可靠性的汽车设计师更有吸引力。
新的固定长度 FLIT(流控制单元)结构允许使用前向纠错 (FEC),在由传统 PCIe 错误处理机制处理数据之前,通过纠正 FLIT 内的多个错误来改进有效误码率。当 PCIe 链路以 64GT/s 运行时必须采用这种新的 FLIT 模式,但允许以任何定义的 PCIe 链路速度采用这种模式。虽然为了纠错必须开发 PCIe FLIT,但在许多情况下,一个好的副作用是能够提高链路效率。通过将每个数据包的开销整合到每个 FLIT 开销中,多个小数据包可以在单个 FLIT 中比前几代 PCIe 更有效地传输。
无论是以最新的 64GT/s 链路速度运行,还是以 PCIe 6.0 基本规范中仍完全定义和支持的较低链路速度之一运行,PCIe 6.0 设备都可以利用可能达到的最高带宽。
包括深度技术文章、白皮书、视频、即将举行的网络研讨会、产物公告等等。
自首次发布以来,PCIe 提供了固有的可靠交付机制。每个 PCIe 数据包都包含链路级循环冗余校验 (LCRC),在收到后会立即进行验证。ACK/NAK(已确认/未确认)协议提供错误数据包的无缝硬件重传,并包含超时时间以确保断开的链路不会被忽视。如上所述,当 PCIe 链路在 FLIT 模式下运行时,使用 FEC 也会提供额外的保护层,甚至可能在进行 LCRC 校验之前就已经纠正错误。未通过这些校验的数据包由接收方标记为 NAK,并触发发送方自动重传。这种数据传输的硬件管理使软件开发人员能够自由使用 PCIe 连接的设备(就仿佛这些设备直接连接到 CPU 一样) ,而无需担心单独传输的交付。
PCIe 6.0 包括 Lane Margining(通路裕量)功能(随 PCIe 4.0 推出),为所有 PCIe 组件提供标准化机制,以报告它们接收的“良好”信号与故障点之间的裕量。使用此功能,可以在组件使用寿命内跟踪潜在的信号质量下降,并触发主动故障缓解,例如重新调整信令参数、降低链路速度,甚至要求进行故障前的预防性组件更换。
PCI Express 提供了利用供应商定义消息 (VDM) 以多种方式扩展 PCIe 协议的选项。汽车设计师可以将这些 VDM 用于心跳信息、带内管理和许多其他功能,这些功能有助于提高整个 PCIe 汽车系统的可靠性。
在汽车领域,“接口安全”一词可能会让人联想到“电影中的秘密特工通过黑客方式侵入他们的自动驾驶汽车,以壮观的方式使汽车驶下悬崖并爆炸,从而暗杀邪恶反派”的场景,但实际上,在转变为使用安全 PCIe 链路背后有多个现实场景。既然我们能发现一些国家利用网络攻击来破坏其他国家的武器,那么也不应该完全排除“黑客侵入汽车进行暗杀”这种电影情节,但激励有知识的窃贼进行这种黑客行为的是更纯粹的盗窃利润动机。随着汽车制造商在射频远程解锁系统等传统防盗机制中消除了越来越多的安全漏洞,窃贼不得不将注意力转移到车辆内部,其中 PCIe 互连可能会成为一个有吸引力的攻击点。通常被忽视的还有用于强制进行数字版权管理的接口安全理念,即“攻击者”可能是车辆所有者,他们对受“攻击”的车辆有不限时的免费访问权限,但他们打算解锁自动驾驶等付费功能。
这些因素和其他因素意味着汽车设计师现在需要将其所有内部接口视为可能的攻击载体。PCI Express 包含一个称为“完整性和数据加密 (IDE)”的功能,此功能使 PCIe 设备可以对通过 PCIe 链路传输的数据包执行硬件加密和完整性检查。从根本上说,IDE 可防御专业攻击者通过复杂的工具进行的硬件层面攻击,也可防止直接访问其受害者系统。PCIe 数据包通过 AES-GCM 加密算法来单独加密和验证,以提供数据机密性和完整性。IDE 规范中的机制在整个 PCIe 协议栈中发挥作用,可抵御针对 PCIe 的攻击,例如强制重试和在尝试中注入坏数据包,以强制重复传输相同的数据,从而暴露正在使用的加密密钥。由于这些低级协议交互,IDE 必须与 PCIe 控制器共同实施,以充分利用保护机制并提供最佳解决方案。作为完整性检查的结果,由 IDE 保护的 PCIe 链路也受益于更多一层的可靠性检查,因为即使对 IDE 保护的 PCIe 数据包进行非恶意修改也会触发系统级响应。
图 1:PCIe 控制器中的 草榴社区 IDE 实现示例
当今的联网车辆依赖于计算平台和架构,这些平台和架构需要具有高带宽、极高可靠性和强大安全性的互连。PCI Express 6.0 具有独特的优势,通过结合每通路高达 64GT/s 的信令、用于可靠交付的众多硬件机制以及全面的数据加密和完整性检查来满足这些要求。草榴社区 提供带 IDE 安全模块的PCIe 6.0 和 5.0 控制器,以帮助 SoC 设计师保护 PCIe 上的数据传输免遭篡改和物理攻击,并提供 ISO 26262 和 ASIL 认证选项。 支持所有这些功能,使汽车设计师能够在其后续产物中采用 PCIe 6.0。
深度技术文章、白皮书、视频、网络研讨会、产物公告等等。