用于自主驾驶的异构计算架构硬件/软件协同设计的制作方法

文档序号:20438700发布日期:2020-04-17 22:15阅读:224来源:国知局
用于自主驾驶的异构计算架构硬件/软件协同设计的制作方法

本公开总体上涉及电子学领域。更具体地,实施例涉及用于自主驾驶的异构计算架构硬件/软件协同设计。



背景技术:

在汽车工业中使用的嵌入式电子控制单元(ecu)系统可以涵盖与交通工具控制相关联的一系列广泛的功能。例如,ecu从一个或多个传感器接收电信号,评估它们,并且随后计算用于机械致动器的触发信号。ecu的激增引起了关于交通工具分布式系统的可管理性的担忧。

附图说明

参考所附附图提供详细描述。在附图中,附图标记最左边的(多个)数字标识该附图标记在其中首次出现的附图。相同的附图标记在不同附图中的使用指示类似或相同的项。

图1图示出根据实施例的用于自主驾驶中的硬件/软件协同设计的异构计算架构(hca)的各种顶级组件。

图2图示出根据实施例的用于hca的计算环境的框图。

图3a图示出根据实施例的用于hca的微集群网络管理模块的框图。

图3b、图3c和图3d图示出根据一些实施例的用于hca的微集群数据平面片或区域的组件。

图4和图5图示出根据一些实施例的用于hca的计算节点框图。

图6图示出根据实施例的用于hca的可缩放数据摄取fpga计算节点的框图。

图7图示出根据实施例的用于hca的ecu计算节点模块的框图。

图8和图9图示出计算系统的实施例的框图,这些计算系统可用于本文讨论的各实施例。

图10和图11图示出根据一些实施例的处理器的各种组件。

具体实施方式

在下列描述中,阐述了众多特定细节以便提供对各实施例的全面理解。然而,在没有这些特定细节的情况下,也可实施各实施例。在其他实例中,未详细描述公知的方法、过程、组件和电路,以免使特定实施例变得模糊。此外,各实施例的各方面可使用各种装置来执行,诸如集成半导体电路(“硬件”)、组织成一个或多个程序的计算机可读指令(“软件”)、或硬件与软件的某种组合。出于本公开的目的,对“逻辑”的引用应当意指硬件(诸如逻辑电路或更一般地说,电路)、软件、固件或它们的某种组合。

如上文所述,在汽车工业中使用的嵌入式电子控制单元(ecu)系统可以涵盖与交通工具控制相关联的一系列广泛的功能。例如,ecu从一个或多个传感器接收电信号,评估它们,并且随后计算用于机械致动器的触发信号。ecu的激增引起了关于交通工具分布式系统的可管理性的担忧。因此,可以考虑用更多强大的处理器将功能整合到更少的ecu上。此外,这些ecu中的一些ecu将值得仔细考虑的重要的功能组(诸如,动力传动系统、悬架管理系统、车身、辅助/自主驾驶、和/或内部/多媒体/远程信息处理领域)捆绑在一起。

与传统的软件开发相比,嵌入式系统的设计甚至更具有挑战性。除了功能行为的正确实现之外,还必须考虑诸如实时行为、可靠性和能量消耗之类的非功能约束。出于该原因,嵌入式系统通常使用专业的、通常是应用程序特定的硬件平台构建。为了允许即使在硬件/软件分区时的后期设计改变,需要语言和基于模型的设计工具,这些工具可以从相同的独立于实现的模型生成硬件和软件两者。此外,许多嵌入式系统用于安全关键应用,在这些安全关键领域中错误会导致严重损害乃至人命损失。出于这个原因,使用不同种类的正式验证方法在许多设计流程中应用正式验证。

一些实施例涉及用于自主驾驶的异构计算架构硬件/软件协同设计。在一个实施例中,用于自主驾驶系统的异构计算架构(在本文中还可互换地称作异构计算架构或简称为“hca”)集成可缩放的异构处理器、灵活的联网、基准测试工具等,以使(例如,系统级)设计者能够执行硬件和软件协同设计。借助hca系统,工程师可以对用于自主驾驶的交通工具系统架构快速地进行构建、基准测试和/或发展。

在实施例中,hca将定制设计的主板用于汽车异构架构,在该汽车异构架构上可互连多个计算元件。该板使用汽车can(控制器区域网)、高速以太网和/或pcie(外围组件互连快速)来允许单核或多核计算单元(或处理器)的灵活的网络架构。hca还可以提供定制设计的cpu(中央处理单元,或更一般地“处理器”)计算节点作为可缩放的异构交通工具架构的元件。cpu计算节点可以被灵活地扩展用于加速,该加速经由pcie或其他互连而集成fpga(现场可编程门阵列)、gpu(图形处理单元)或asic(专用集成电路)解决方案。

在一个实施例中,hca为自主驾驶系统硬件/软件协同开发提供平台,该平台不存在于任何商业平台中。hca的硬件灵活性可用于加速探索性交通工具架构开发。基准测试工具集可用于导出详尽的硬件/软件设计要素。此外,自主驾驶开发必须符合严格的安全性、成本和功率效率要求,这些要求只能通过硬件/软件协同设计来实现。为此,根据一个实施例,hca启用确定跨多种处理器类型的计算性能的能力以及与传统的单核汽车微控制器(ecu)相比的经由fpga、gpu和asic的计算加速的益处或缺点。通过以太网、汽车can、pcie、usb(通用串行总线)或jtag((联合测试行动组(ieee标准1149.1-1990的开发人员))具有如此灵活的硬件集聚和联网配置,汽车系统设计者可以使用hca重新构建完整的交通工具电子设备。它本质上是“盒子里的汽车”。

此外,hca系统可以提供主存灵活数量的单核传统汽车微控制器的ecu板,其可以经由can、以太网、usb(通用串行总线)、uart(通用异步接收机-发射机)等被堆叠和被编程。hca可以被视为硬件和/或软件协同设计的框架。为了做出架构决策,提供了管理、配置和监视元件用于为特定汽车工作负载做出关于系统架构的详尽决策,从而允许新颖的系统配置的全面灵活性。

图1图示出根据实施例的用于自主驾驶中的硬件/软件协同设计的异构计算架构100的各种顶级组件。在一个实施例中,逻辑和/或各种组件(包括参考图1所讨论的组件中的一个或多个组件)可以被安装或以其他方式物理地耦合到交通工具。如本文中所讨论,无论交通工具是载客交通工具还是商用交通工具,也不管功率源类型(诸如以下一者或多者:化石燃料、太阳能、电能、化学能、核能等)如何,也不管用于移动交通工具的功率源的物理状态(例如,固体、液体、气体等)如何,“交通工具”总体上是指(在很少的人类/驾驶员干预或没有人类/驾驶员干预的情况下)能够被自主地操作的任何运输设备,诸如汽车、卡车、摩托车、飞机、直升机、船/舰、火车、无人机等。

通常,传统的汽车系统倾向于依赖于大量的单核微处理器或基于fgpa的ecu。在目前朝着大规模采用自动驾驶交通工具的竞争中,一些汽车制造商和技术颠覆者可能旨在利用扩展的传感器套件以及可通过多个计算平台(诸如,cpu、gpu、fpga或专业asic)实现的类数据中心的计算能力来增强传统的交通工具基础设施。

一些硅制造商可以将多核解决方案用于自主驾驶,例如,利用基于gpu的系统来提供soc(片上系统)和mcu(微控制器单元)的混合,或者具有fpga和/或asic加速的基于cpu的系统。因此,虽然汽车硬件平台正在经历朝着架构异构性的趋势,但是现代cpu可以提供灵活的硬件资源和丰富的指令集用于实现广泛的计算任务、专业化工作负载,并且可以激励引入具有专门电路设计的替代硬件架构用于加速操作和并行性,诸如本文中参考hca所讨论的技术。

在自主驾驶系统开发中,一些最具挑战性的任务在于同时集成三个关键领域:超级计算复杂性、实时性能和功能安全。例如,开发人员需要将他们的注意力从以软件为中心的方法转向定制硬件/软件协同设计以产生满足交通工具的安全、成本和功效设计约束的系统。目前的解决方案都没有提供适当的组成部分。相比之下,hca通过启用可缩放16x(16倍)多cpu/fpga/gpu/asic可缩放性来提供超级计算,并且在一些实施例中提供评估实时性能所需的基准测试软件。而且,虽然某些实施例可以提及特定数量的组件/项,但实施例不限于这些特定数量,取决于实现方式,可以利用更多或更少的组件。

例如,其他解决方案的一个主要缺点是它们可能专注于有限的计算类型,并且系统封装和可用的网络技术可能使灵活的异构汽车架构变得不可能。并且,目前解决方案似乎都不适用于创建异构环境,从而不允许在计算类型之间的适当比较。相比之下,比较通常是在系统与系统之间进行的,其中存在过多变量,使得特定设计考虑的隔离几乎不可能。

参考图1,hca组件提供工程上设计为加速自主驾驶(ad)工作负载的系统级实验和基准测试的用于ad的异构架构系统。它为研究人员/设计者提供了对“白盒中的汽车”的访问,“白盒中的汽车”是可以被用作用于交通工具系统配置的野外(in-the-wild)测试的可重新配置的工作站或嵌入式平台的集成的、灵活的和可缩放的ad系统。理解到目前汽车架构不能支持全自动驾驶交通工具的计算、连接性和存储要求,hca被构建用于加速未来交通工具架构的开发和优化。在一个实施例中,hca“野外测试”或到交通工具中的嵌入式集成可以在工程交通工具中获得并且不适合用于生产环境。在实施例中,hca加固的机箱可包括风扇冷却而不是液体冷却解决方案,并且可以易于评估硬件/软件配置并收集初始数据集,而不是长时间使用。

架构100包括传感器环境102、计算环境104、机器人操作系统(ros)106和致动环境108。这些组件可以组装到外壳中以易于传输和/或组织。外壳可以是透明的以允许快速的视觉检测,例如,对指示器的快速视觉检测。传感器捕获环境102包括具有(多个)汽车传感器接口的一个或多个fpga。传感器捕获环境102可以是可缩放的(例如,模块化的),具有(多个)同步和/或灵活的传感器。例如,传感器捕获环境102中的每个模块可包括一个或多个相机(例如,在一个实施例中,16高动态范围(hdr)相机)、控制器区域网(can)总线和以太网接口。如将在本文中进一步所讨论,计算环境104可具有模块化设计,每个模块(在本文中也被称作“区域”或“片”,如将参考图3b进一步所讨论)包括例如具有一个或多个核的一个或多个处理器。(多个)处理器可以运行各种软件程序,包括例如机器人操作系统(ros)106或其组件。

计算环境104可包括在主板上提供的、用于若干(例如,16个)计算节点的计算托盘(或微集群),这些计算节点经由具有用于cpu加速器的(例如,16个)可重新配置的pcie连接的以太网和can被连接。在各实施例中,计算环境可利用一个或多个不同类型的处理器。例如,可以使用多核处理器以及单核处理器。

致动环境或测试台(例如,ecu测试台)108包括可重新配置的ecu测试台(例如,包括(多个)can网络中的48个ecu)。例如,测试台提供网关和(例如,48个)可堆叠的lcptm卡,这些可堆叠的lcptm卡包含经由汽车can总线联网的lpc1000tm系列汽车级微控制器(mcu)。还可以使用诸如lpc800、lpc1100、lpc54000等的其他lpcmcu。每个微控制器包括处理器核、静态ram(随机存取存储器)存储器、闪存、调试接口和各种外围设备。

在实施例中,hca软件架构包括中间件层,该中间件层提供至诸如机器人操作系统(ros)106软件栈之类的更高级应用的一组api(应用程序接口)。api允许配置和检取来自多模态汽车传感器组(包括例如以下一个或多个:相机、雷达、光检测和测距(lidar)传感器、惯性测量单元(imus)等)的数据。此外,中间件可以被设计用于通过易于使用的api来抽象传感器接口的复杂性和低级细节。ros软件栈提供可由现有的ad算法和基础设施利用的标准化和灵活的输出。例如,ros106可以用于对象检测、障碍预测、轨迹规划等以支持ad。

相应地,在一些实施例中,hca可以提供:(1)具有模块化硬件组件的灵活且可缩放的系统,该系统可以被灵活地编程、配置、和/或联网用于特定需求;和/或(2)装备有工作负载分析和报告工具的参考开发和基准测试平台。hca的设计可以解决汽车平台关于交通工具电子设备、传感器数据采集和自主驾驶软件开发的现有局限性。

图2图示出根据实施例的用于hca的计算环境的框图。如上所述,hca可以提供灵活的硬件重新配置。图2中所示的计算环境(在本文中也称为微集群(或u集群))提供用于配置经互连的异构计算模块的配置的硬件画布。cpu模块中的每个cpu模块可以属于不同的微架构系列,例如,(也称作“denvertontm”)、(也被称作broadwelltm-de和skylaketm-d)、或icoretm-7。虽然本文中的各种图或讨论可以指代特定部分或设备,但实施例不限于这些特定选择,并且可以在各种实现中使用具有相同或类似功能的任何其他组件。

微集群包括以太网交换机托盘(图2-项1),其通过10gb以太网交换机将在计算插槽(图2-项2)中填充的16个cpu计算节点互连。每个cpu插槽可以经由pci快速(图2-项3)、利用诸如fpga、gpu或其他硬件加速器(例如,asic)之类的外围设备进行扩展。图2的计算板具有管理网络,该管理网络允许从机箱管理模块(cmm)(图2-项4)配置、解除/激活网络、多个单独的组件节点以及功率和i/o管理。这个模块提供高级用户程序(例如,cmm)用于控制每个计算节点或区域的功率、监视功率使用、温度监视等。

每个计算节点可以被视为完整的计算服务器。可以按集群布置计算节点的任何组合。每个节点还有4个10gnic(网络接口控制器)连接,这4个10gnic连接耦合到集成(例如,10g)以太网交换机——72端口10g(例如,fulcrumalta)以太网交换机,该72端口10g(例如,fulcrumalta)以太网交换机不仅连接所有(例如,16个)节点,它还具有(例如,8个10g)后面板连接以耦合到远程信息处理控制单元用于链接到交通工具外部的世界。

图3a图示出根据实施例的用于hca的微集群网络管理模块的框图。还可以添加(例如,1gb)以太网网络用于管理使用,例如,使用如图3a中所图示的经链接的三个marvell88e190x交换机。管理网络允许(经由诸如安全套接字壳(ssh)和虚拟网络连接(vnc)之类的高级协议的)管理模块(例如,cmm)直接访问以(例如,经由每个区域控制器)重新配置计算节点,例如,不妨碍或阻碍应用网络操作。

图3b图示出根据一个实施例的用于hca的微集群数据平面片或区域的框图。更具体地,计算托盘中的每组(例如,4个)节点在本文中称为"区域"(或可互换地"片")。在每个区域中,该组节点经由pcie交换机连接到四个pcie插槽,如图3b所图示。

此外,图3b图示出cpu卡连接器如何将(例如,4个10gb)以太网连接(350)路由到以太网交换机以及can总线连接。这允许计算节点中的每个计算节点使用高速连接,例如,允许计算节点充当计算集群以分发自主驾驶工作负载,或充当经由can总线(352)而与其他交通工具组件通信的多核单体组件。至can接口的接口可以由armcortex微控制器(例如,lpc1788或其他lpcmcu)经由通用串行总线(usb)359提供给每个节点。节点中的每个节点经由pcie第三代354路由到pcie交换机355,该pcie交换机355可被配置用于将节点中的每个节点连接到pcie插槽/连接器中的每个pcie插槽/连接器。每个插槽可以是机械pciex16(但可以是电气的x8)356。使用pcie交换机,可以将pcie插槽中的任何pcie插槽分配给cpu节点/连接器中的任何cpu节点/连接器。如果可用,则节点中的每个节点具有去往pcie交换机的16个通道。一些节点(诸如,denverton)可具有去往pcie交换机的8个pcie通道。在每个插槽中使用不同的cpu节点,这使得使用相同的pcie外围设备(诸如,fpga、gpu或其他硬件加速器(例如,asic)和不同的cpu架构)使研究更容易。如下文所讨论,每个cpu节点架构还可以非常类似以将结果保持为尽可能专用于架构。这允许hca的用户/设计者真正地将这些架构以及fpga、gpu等和它们的工作负载比较。

此外,通过使用每种类型的cpu/计算节点或若干atom和/或xeon节点的组合,可以运行并测试工作负载以获得节点在性能和功耗方面运行该工作负载的能力(例如,功率监视可以被构建到微集群设计中)。每个cpu节点可以被设计为完整的soc服务器,该完整的soc服务器装备有:(a)板载存储器,其中最大存储器取决于cpu类型;(b)m.2或ssd(或其他非易失性存储器)存储,例如在1个连接上具有所支持的pciex4和sata(串行高级技术附件);(c)usb连接,例如,在broadwell-de节点上的mini2.0连接器和较新板上的usbtypec(类型c)(broadwell是usb2。denverton经由typec具有usb2和usb3,并且诸如skylake之类的较新的是usb3.1);(d)调试连接器,其提供至特殊调试板(该特殊调试板可以使用至hdmi电缆的minihdmi(高清晰度多媒体接口))的pcie(例如,x1)和串行端口;和/或(e)固件/调试头,其可以具有mipi60、dediprogtm(用于bios(基本输入输出系统))和用于对h8s微控制器(用于给节点上电)进行编程的ec。

此外,在一些实施例中,每个节点可包括以下连接:(i)pcie,例如,到pcie交换机并且随后到pcie插槽的16个pcie通道(参见,例如,上面的区域描述);(ii)can总线,具有到lpc1768can总线控制器的usb,该lpc1768can总线控制器给予对在具有前面板和中间板连接器(例如,m.12)的所有节点之间运行的两条can总线的访问权;(iii)10g网络,诸如到以太网交换机托盘(例如,72端口10g交换机)的4x10g连接,其中一些节点可具有较少的连接,诸如,可具有两个连接的broadwell-de;(iv)管理lan(局域网),例如,所有节点、cmm和scp(安全复制)之间的1g连接,用于在与10glan分离的节点之间使用ssh和其他连接;(v)uart(通用异步接收机-发射机)和i2c(通信接口),用于为节点、编码固件和调试供电,其中这些连接返回到cmm,如图3c中所图示。预计固件将不需要更新,但是如果固件需要,则可以经由cmm模块上的cmm程序来完成该更新。

上述配置/连接在图3d中所示,其图示出根据一些实施例的微集群数据平面片的组件。如图3d中所示,每个板/片包括区域控制器和各种组件之间的用于促进通信的各种usb、can总线、uart和i2c连接。

图4图示出根据实施例的用于hca的denverton计算节点框图。denverton节点被设计用于汽车工作负载表征。soc可应用于汽车产品并且可以作为部分自动化或诸如高速公路自动驾驶仪(其中交通工具自主地穿越高速公路)之类的高度自动化驾驶功能的一部分。在图示的实施例中,使用了denvertonnscpu。示出了各种组件,包括(例如,主存denvertonc3000soc的)cpu模块卡、存储器接口、到微集群的dimm(双列直插存储器模块)连接器以及接口中的其余接口,如参考先前图的计算节点所讨论。

图5图示出根据实施例的用于hca的broadwell-decpu计算节点框图。broadwell节点基于xeond1500,xeond1500也被称为broadwell-de。它在设计上类似于图4的denverton节点,以有助于比较基准测试。在图5中示出了各种组件,包括(例如,主存broadwell-decpu的)cpu模块卡、存储器接口、到微集群的dimm连接器以及接口中的其余接口,如参考先前图的计算节点所讨论。在图4和图5中,jtag(联合测试行动组(ieee标准1149.1-1990的开发人员))可用于在制造后验证设计和测试印刷电路板。

图6图示出根据实施例的用于hca的可缩放数据摄取fpga计算节点的框图。更具体地,图6示出了用于加速数据摄取的fpga计算节点,其携带多传感器数据同步和预处理的功能。该计算节点经由来自该计算节点的、与该计算节点相关联的pcie接口以及来自管理模块(例如,cmm)的pcie接口是可编程的。如图所示,可以经由csi-mipi接口完成相机同步。并且,pcie可用于经由i2c、sccb(串行相机控制总线)、csr(控制和状态寄存器)等来控制/配置传感器平面。

图7图示出根据实施例的用于hca的ecu计算节点模块的框图。图7中所示的ecu模块能以可堆叠配置提供(例如,使用诸如先前所讨论的lpc系列的处理器)。在各实施例中,模块还可被配置为时钟主机或从机。ecu计算节点是可编程mcu微控制器,其具有内置jtag、usb和can连接性以及用于存储的微sd。它们可以用诸如autosartm(汽车开放系统架构)软件之类的rtos(实时操作系统)编程以执行特定的交通工具功能,例如,制动控制。如图7中所显示的多个模块可以被堆叠到载板中,在实施例中,该载板启用这些单元中的48个。

为了辅助hca的系统开发,可以提供工作负载基准测试框架,其使用(例如,)工具来针对单个或多个计算节点跟踪性能并生成图(graph)。工具集可以利用vmstattm、blktracetm、tcpdumptm,并且可以用定制调试/跟踪工具进行扩展。在一个实施例中,可以提供配置文件,其中用户可以修改工具的参数,并启动文件用于对性能的针对性/分布式监视。一旦完成了工作负载,工具就可以允许收集数据且允许可视化以帮助分析瓶颈和其他问题。随后可以将该数据作为.csv或.png文件导出到其他框架。针对应用监视,可以将ros以及传感器中间件日志提供给接口。

图8图示出根据实施例的soc封装的框图。如图8中所图示,soc802包括一个或多个中央处理单元(cpu)核820、一个或多个图形处理器单元(gpu)核830、输入/输出(i/o)接口840以及存储器控制器842。可将soc封装802的各组件耦合至诸如本文中参考其他附图所讨论的互连或总线。另外,soc封装802可包括更多或更少的组件,诸如本文中参考其他附图所讨论的那些组件。进一步地,soc封装820的每个组件可包括一个或多个其他组件,例如,如参考本文中的其他附图所讨论的组件。在一个实施例中,在一个或多个集成电路(ic)管芯上提供soc封装802(以及其组件),例如,该一个或多个集成电路管芯被封装到单个半导体设备中。

如图8中所图示,soc封装802经由存储器控制器842耦合至存储器860。在实施例中,存储器860(或其部分)可以被集成在soc封装802上。

i/o接口840可例如经由诸如本文中参考其他附图所讨论的互连和/或总线而耦合至一个或多个i/o设备870。(多个)i/o设备870可包括键盘、鼠标、触摸板、显示器、图像/视频捕捉设备(诸如,相机或摄像机/视频录像机)、触摸屏、扬声器等中的一个或多个。

图9是根据实施例的处理系统900的框图。在各实施例中,系统900包括一个或多个处理器902以及一个或多个图形处理器908,并且可以是单处理器台式机系统、多处理器工作站系统或具有大量处理器902或处理器核907的服务器系统。在一个实施例中,系统900是被并入到用于在移动设备、手持式设备或嵌入式设备中使用的片上系统(soc或soc)集成电路内的处理平台。

系统900的实施例可包括以下各项或可并入在以下各项内:基于服务器的游戏平台、包括游戏和媒体控制台的游戏控制台、移动游戏控制台、手持式游戏控制台或在线游戏控制台。在一些实施例中,系统900是移动电话、智能电话、平板计算设备或移动互联网设备。数据处理系统900也可包括可穿戴设备,可与可穿戴设备耦合或可集成在可穿戴设备内,该可穿戴设备诸如智能手表可穿戴设备、智能眼镜设备、增强现实设备或虚拟现实设备。在一些实施例中,数据处理系统900是电视机或机顶盒设备,该电视机或机顶盒设备具有一个或多个处理器902以及由一个或多个图形处理器908生成的图形界面。

在一些实施例中,该一个或多个处理器902各自都包括一个或多个处理器核907,该一个或多个处理器核907用于处理指令,该指令当被执行时,执行用于系统和用户软件的操作。在一些实施例中,一个或多个处理器核907中的每一个处理器核都配置成处理特定的指令集909。在一些实施例中,指令集909可促进复杂指令集计算(cisc)、精简指令集计算(risc)或经由超长指令字(vliw)的计算。多个处理器核907各自都可处理不同的指令集909,不同的指令集909可包括用于促进对其他指令集的仿真的指令。处理器核907也可包括其他处理设备,诸如数字信号处理器(dsp)。

在一些实施例中,处理器902包括高速缓存存储器904。取决于架构,处理器902可具有单个内部高速缓存或多级的内部高速缓存。在一些实施例中,高速缓存存储器在处理器902的各种组件之间共享。在一些实施例中,处理器902也使用外部高速缓存(例如,第3级(l3)高速缓存或末级高速缓存(llc))(未示出),可使用已知的高速缓存一致性技术在处理器核907之间共享该外部高速缓存。寄存器堆906附加地包括在处理器902中,寄存器堆906可包括用于存储不同类型数据的不同类型的寄存器(例如,整数寄存器、浮点寄存器、状态寄存器以及指令指针寄存器)。一些寄存器可以是通用寄存器,而其他寄存器可专用于处理器902的设计。

在一些实施例中,处理器902被耦合至处理器总线910以在处理器902与系统900中的其他组件之间传输通信信号,诸如地址、数据、或控制信号。在一个实施例中,系统900使用示例性‘中枢’系统架构,该示例性‘中枢’系统架构包括存储器控制器中枢916和输入输出(i/o)控制器中枢930。存储器控制器中枢916促进存储器设备与系统900的其他组件之间的通信,而i/o控制器中枢(ich)930提供经由本地i/o总线至i/o设备的连接。在一个实施例中,存储器控制器中枢916的逻辑被集成在处理器内。

存储器设备920可以是动态随机存取存储器(dram)设备、静态随机存取存储器(sram)设备、闪存设备、相变存储器设备、或具有适当的性能以充当进程存储器的某个其他存储器设备。在一个实施例中,存储器设备920可以作为用于系统900的系统存储器来操作,以存储数据922和指令921供在一个或多个处理器902执行应用或进程时使用。存储器控制器中枢916也与任选的外部图形处理器912耦合,该任选的外部图形处理器912可与处理器902中的一个或多个图形处理器908通信以执行图形和媒体操作。

在一些实施例中,ich930使外围设备能够经由高速i/o总线连接到存储器设备920和处理器902。i/o外围设备包括但不限于音频控制器946、固件接口928、无线收发机926(例如,wi-fi、蓝牙)、数据存储设备924(例如,硬盘驱动器、闪存等)以及用于将传统(legacy)(例如,个人系统2(ps/2))设备耦合至系统的传统i/o控制器940。一个或多个通用串行总线(usb)控制器942连接输入设备(诸如,键盘和鼠标944的组合)。网络控制器934也可耦合至ich930。在一些实施例中,高性能网络控制器(未示出)耦合至处理器总线910。将会理解,所示的系统900是示例性的而非限制性的,因为也可以使用以不同方式配置的其他类型的数据处理系统。例如,i/o控制器中枢930可以集成在一个或多个处理器902内,或者存储器控制器中枢916和i/o控制器中枢930可以集成到分立的外部图形处理器中,该分立的外部图形处理器诸如外部图形处理器912。

图10是处理器1000的实施例的框图,该处理器1000具有一个或多个处理器核1002a至1002n、集成存储器控制器1014以及集成图形处理器1008。图10的具有与本文中的任何其他附图的元件相同的附图标记(或名称)的那些元件可以类似于本文中其他地方描述的任何方式操作或运行,但不限于此。处理器1000可包括附加的核,并包括由虚线框表示的附加的核1002n。处理器核1002a至1002n中的每一个处理器核包括一个或多个内部高速缓存单元1004a至1004n。在一些实施例中,每一个处理器核都具有对一个或多个共享高速缓存单元1006的访问权。

内部高速缓存单元1004a至1004n和共享高速缓存单元1006表示处理器1000内的高速缓存存储器层次结构。高速缓存存储器层次结构可包括每一个处理器核内的至少一个层级的指令和数据高速缓存以及一个或多个层级的共享的中间级高速缓存(诸如,第2级(l2)、第3级(l3)、第4级(l4)或其他层级高速缓存,其中,在外部存储器之前的最高层级的高速缓存被分类为llc)。在一些实施例中,高速缓存一致性逻辑维持各种高速缓存单元1006与1004a至1004n之间的一致性。

在一些实施例中,处理器1000也可包括一组一个或多个总线控制器单元1016和系统代理核1010。一个或多个总线控制器单元1016管理一组外围总线诸如,一个或多个外围组件互连总线(例如,pci、pci快速(express)。系统代理核1010提供用于各种处理器组件的管理功能。在一些实施例中,系统代理核1010包括用于管理对各种外部存储器设备(未示出)的访问的一个或多个集成存储器控制器1014。

在一些实施例中,处理器核1002a至1002n中的一个或多个处理器核包括针对同时多线程操作的支持。在此类实施例中,系统代理核1010包括用于在多线程处理期间协调并操作核1002a至1002n的组件。系统代理核1010可附加地包括功率控制单元(pcu),该pcu包括用于调节处理器核1002a至1002n和图形处理器1008的功率状态的逻辑和组件。

在一些实施例中,处理器1000附加地包括用于执行图形处理操作的图形处理器1008。在一些实施例中,图形处理器1008与一组共享高速缓存单元1006以及系统代理核1010耦合,系统代理核1010包括一个或多个集成存储器控制器1014。在一些实施例中,显示控制器1011与图形处理器1008耦合,以将图形处理器输出驱动至一个或多个所耦合的显示器。在一些实施例中,显示控制器1011可以是经由至少一个互连而与图形处理器耦合的分开的模块,或者可以集成在图形处理器1008或系统代理核1010内。

在一些实施例中,基于环的互连单元1012用于耦合处理器1000的内部组件。然而,可使用替代的互连单元,诸如,点对点互连、交换式互连或其他技术,包括本领域中公知的技术。在一些实施例中,图形处理器1008经由i/o链路1013来与环形互连1012耦合。

示例性i/o链路1013表示各种各样的i/o互连中的至少一者,该i/o互连包括促进各种处理器组件与高性能嵌入式存储器模块1018(诸如,edram(或嵌入式dram)模块)之间的通信的封装i/o互连。在一些实施例中,处理器核1002a至1002n和图形处理器1008中的每一者都将嵌入式存储器模块1018用作共享的末级高速缓存。

在一些实施例中,处理器核1002a至1002n是执行相同的指令集架构的同构核。在另一实施例中,处理器核1002a至1002n就指令集架构(isa)方面而言是异构的,其中处理器核1002a至1002n中的一个或多个执行第一指令集,而其他核中的至少一个核执行第一指令集的子集或不同的指令集。在一个实施例中,处理器核1002a至1002n就微架构方面而言是异构的,其中具有相对较高的功耗的一个或多个核与具有较低的功耗的一个或多个核耦合。附加地,处理器1000可实现在一个或多个芯片上,或可实现为soc集成电路,该soc集成电路除其他组件之外还具有所示组件。

图11是图形处理器1100的框图,该图形处理器1100可以是分立的图形处理单元,或可以是与多个处理器核集成的图形处理器。在一些实施例中,图形处理器经由至图形处理器上的寄存器的存储器映射的i/o接口且利用置入处理器存储器中的命令进行通信。在一些实施例中,图形处理器1100包括用于访问存储器的存储器接口1114。存储器接口1114可以是至以下各项的接口:本地存储器、一个或多个内部高速缓存、一个或多个共享的外部高速缓存和/或系统存储器。

在一些实施例中,图形处理器1100也包括用于将显示输出数据驱动到显示设备1120的显示控制器1102。显示控制器1102包括用于供显示的一个或多个上层(overlay)平面以及多层的视频或用户界面要素的合成的硬件。在一些实施例中,图形处理器1100包括视频编解码引擎1106,该视频编解码引擎1106用于将媒体编码至一个或多个媒体编码格式,从一个或多个媒体编码格式对媒体解码,或在一个或多个媒体编码格式之间对媒体转码,该媒体编码格式包括但不限于移动图片专家组(mpeg)格式(诸如,mpeg-2)、高级视频译码(avc)格式(诸如,h.264/mpeg-4avc)、以及电影电视工程师协会(smpte)421m/vc-1、以及联合图像专家组(jpeg)格式(诸如,jpeg和运动jpeg(mjpeg)格式)。

在一些实施例中,图形处理器1100包括用于执行二维(2d)光栅化器(rasterizer)操作(包括例如位边界块转移)的块图像转移(blit)引擎1104。然而,在一个实施例中,使用图形处理引擎(gpe)1110的一个或多个组件来执行3d图形操作。在一些实施例中,图形处理引擎1110是用于执行图形操作(包括三维(3d)图形操作和媒体操作)的计算引擎。

在一些实施例中,gpe1110包括用于执行3d操作的3d流水线1112,该3d操作诸如,使用作用于3d图元形状(例如,矩形、三角形等)的处理函数来渲染三维图像和场景。3d流水线1112包括可编程和固定功能元件,该可编程和固定功能元件执行元件内的各种任务和/或将执行线程繁衍(spawn)至3d/媒体子系统1115。当3d流水线1112可用于执行媒体操作时,gpe1110的实施例也包括专门用于执行媒体操作(诸如,视频后处理和图像增强)的媒体流水线1116。

在一些实施例中,媒体流水线1116包括用于执行一个或多个专业媒体操作的固定功能或可编程逻辑单元,这一个或多个专业媒体操作诸如,取代或代表视频编解码引擎1106的视频解码加速、视频去隔行(de-interlacing)以及视频编码加速。在一些实施例中,媒体流水线1116附加地包括用于繁衍供在3d/媒体子系统1115上执行的线程的线程繁衍单元。所繁衍的线程在3d/媒体子系统1115中所包括的一个或多个图形执行单元上执行用于媒体操作的计算。

在一些实施例中,3d/媒体子系统1115包括用于执行由3d流水线1112和媒体流水线1116繁衍的线程的逻辑。在一个实施例中,流水线将线程执行请求发送至3d/媒体子系统1115,该3d/媒体子系统1115包括用于对于对可用的线程执行资源的请求进行仲裁和分派的线程分派逻辑。执行资源包括用于处理3d和媒体线程的图形执行单元的阵列。在一些实施例中,3d/媒体子系统1115包括用于线程指令和数据的一个或多个内部高速缓存。在一些实施例中,子系统也包括用于在多个线程之间共享数据并用于存储输出数据的共享存储器,该共享存储器包括寄存器和可寻址存储器。

以下示例涉及进一步的实施例。示例1包括一种装置,该装置包括:多个处理器,耦合到控制器区域网(can)总线,这些处理器用于与交通工具的一个或多个组件通信;以及区域控制器,经由点对点互连耦合到多个处理器中的每个处理器,其中多个处理器、can总线和区域控制器形成第一计算模块,其中区域控制器用于管理第一计算模块的一个或多个组件的操作,其中多个处理器能够经由高速接口彼此通信并且与第一计算模块的一个或多个其他组件通信,而多个处理器能够经由can总线与一个或多个交通工具组件通信,其中高速接口用于比can总线更快地提供数据通信,其中区域控制器耦合到机箱管理模块(cmm),其中cmm能够通过区域控制器控制第一计算模块的一个或多个组件的操作。

示例2包括示例1的装置,其中一个或多个交通工具组件包括以下中的一者或多者:相机、lidar、雷达、惯性测量单元(imu)或超声设备。示例3包括示例1的装置,其中cmm用于:控制第一计算模块和一个或多个其他计算模块的一个或多个组件的功耗;监视第一计算模块和一个或多个其他计算模块的一个或多个组件的功耗;或监视第一计算模块和一个或多个其他计算模块的温度值。示例4包括示例1的装置,进一步包括:主控制器,耦合到第一计算模块的区域控制器和第二计算模块的区域控制器,该区域控制器用于管理第一计算模块和第二计算模块的一个或多个组件的操作。示例5包括示例1的装置,进一步包括:外围组件互连快速(pcie)交换机,耦合到多个处理器中的每个处理器,该pcie交换机用于促进多个处理器与一个或多个pcie连接器之间的通信,其中一个或多个pcie连接器耦合到以下一者或多者:现场可编程门阵列(fpga)、图形处理单元(gpu)、硬件加速器或用集成电路(asic)器件、或不同的处理器。

示例6包括示例5的装置,其中不同的处理器包括与多个处理器中的至少一个处理器的架构不同的架构。示例7包括示例1的装置,其中点对点互连包括以太网互连、通用异步接收机-发射机(uart)接口、通用串行总线(usb)、或通信接口(i2c)互连。示例8包括示例1的装置,其中多个处理器、can总线和区域控制器形成第一计算模块,其中第一计算模块经由can通用异步接收机-发射机(uart)多路复用器耦合到一个或多个其他计算模块,该can通用异步接收机-发射机(uart)多路复用器耦合到can总线。示例9包括示例1的装置,其中主板包括多个处理器、can总线、区域控制器和存储器。

示例10包括示例1的装置,其中多个处理器中的每个处理器经由串行总线耦合到can总线。示例11包括示例10的装置,其中串行总线包括通用串行总线(usb)。示例12包括示例1的装置,进一步包括多个微控制器,其中多个处理器中的每个处理器经由多个微控制器中的一个微控制器耦合到can总线。示例13包括示例1的装置,其中多个处理器中的一个或多个处理器包括多个处理器核。示例14包括示例1的装置,其中片上系统(soc)设备包括多个处理器、区域控制器、耦合在多个处理器与can总线之间的接口、以及存储器。

示例15包括示例1的装置,其中物联网(iot)设备或交通工具包括以下一者或多者:第一计算模块和存储器。示例16包括示例1的装置,其中单个集成设备包括以下一者或多者:多个处理器、区域控制器、耦合在多个处理器与can总线之间的接口、以及存储器。示例17包括示例1的装置,其中高速接口包括以太网接口。

示例18包括一种或多中计算机可读介质,包括一条或多条指令,指令当在至少一个处理器上执行时,将至少一个处理器配置成执行一个或多个操作,以:经由控制器区域网(can)总线与交通工具的一个或多个组件通信;以及通过点对点互连与区域控制器通信,其中具有一个或多个处理器核的处理器、can总线和区域控制器形成第一计算模块,其中区域控制器用于管理第一计算模块的一个或多个组件的操作,其中处理器能够经由高速接口与第二处理器以及与第一计算模块的一个或多个其他组件通信,而处理器能够经由can总线与一个或多个交通工具组件通信,其中高速接口用于比can总线更快地提供数据通信,其中区域控制器耦合到机箱管理模块(cmm),其中cmm能够通过区域控制器控制第一计算模块的一个或多个组件的操作。

示例19包括示例18的一种或多种计算机可读介质,其中一个或多个交通工具组件包括以下一者或多者:相机、lidar、雷达、惯性测量单元(imu)或超声设备。示例20包括示例18的一种或多种计算机可读介质,进一步包括当在至少一个处理器上执行时将至少一个处理器配置成执行一个或多个操作以使cmm执行以下操作的一条或多条指令:控制第一计算模块和一个或多个其他计算模块的一个或多个组件的功耗;监视第一计算模块和一个或多个其他计算模块的一个或多个组件的功耗;或监视第一计算模块和一个或多个其他计算模块的温度值。

示例21包括一种设备,其包括用于执行前述任何示例中阐述的方法的装置。示例22包括机器可读存储,其包括机器可读指令,当执行该机器可读指令时,用于实现前述任何一示例中所阐述的方法或装置。

在各实施例中,本文中(例如,参考图1及其以下各图)所讨论的操作可实现为硬件(例如,逻辑电路或更一般地,电路)、软件、固件、或其组合,其可作为计算机程序产品来提供,例如,包括有形的(例如,非暂态)机器可读或计算机可读介质,其在其上存储有指令(或软件程序),这些指令(或软件程序)用于对计算机编程以执行本文中所讨论的过程。机器可读介质可包括存储设备,诸如参考图1及其以下各图所讨论的那些存储设备。

另外,此类计算机可读介质可作为计算机程序产品来下载,其中该程序可作为在载波或其他传播介质中提供的数据信号经由通信链路(例如,总线、调制解调器或网络连接)从远程计算机(例如,服务器)传输到作出请求的计算机(例如,客户端)。

在本说明书中对“一个实施例”或“实施例”的引用意指结合该实施例描述的特定特征、结构和/或特性可被包括在至少一个实现方式中。在本说明书各处出现的短语“在一个实施例中”可以或可以不全指代同一实施例。

并且,在说明书和权利要求书中,可使用术语“耦合的”和“连接的”以及它们的派生词。在一些实施例中,可以使用“连接的”来指示两个或更多个元件彼此直接物理或电气接触。“耦合的”可意指两个或更多个元件直接物理或电气接触。然而,“耦合的”还可意指两个或更多个元件彼此可不直接接触,但仍可彼此相互配合或相互作用。

因此,尽管已经用对结构特征和/或方法动作专用的语言描述了各实施例,但可以理解,所要求保护的主题可以不限于所描述的特定特征或动作。相反,特定特征和动作作为实现要求保护的主题的样本形式被公开。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1