掌桥专利:专业的专利平台
掌桥专利
首页

用于车辆应用程序的冗余多端口存储器

文献发布时间:2024-04-18 20:01:55


用于车辆应用程序的冗余多端口存储器

技术领域

本公开大体上涉及半导体存储器和方法,并且更具体地说,涉及用于车辆应用程序的冗余多端口存储器的设备、系统和方法。

背景技术

存储器子系统可以包含存储数据的一或多个存储器装置。存储器装置可为例如非易失性存储器装置和易失性存储器装置。一般来说,主机系统可利用存储器子系统以在存储器装置处存储数据且从存储器装置检索数据。

车辆越来越依赖于存储器子系统以向先前为机械式、独立式或不存在的组件提供存储。车辆可包含计算系统,其可为用于存储器子系统的主机。计算系统可运行提供组件功能性的应用程序。车辆可为有人驾驶的、无人驾驶(自主)的和/或部分自主的。存储器装置可主要供车辆中的计算系统使用。

发明内容

在一个方面中,本公开提供一种用于车辆应用程序的设备,其包括:多个主机,其各自被配置成提供用于车辆的相应高级驾驶辅助系统(ADAS);多个第一存储器装置,其被配置成提供数据的主级存储,每个第一存储器装置具有相应的多个第一端口,每个第一端口耦合到所述多个主机中的相应主机;和多个第二存储器装置,其被配置成提供数据的次级存储,每个第二存储器装置具有多个第二端口,每个第二端口耦合到所述多个主机中的相应主机;其中所述多个主机中的至少一个被配置成检查所述多个第一存储器装置和所述第二多个存储器装置的功能性。

在另一方面中,本公开提供一种用于车辆应用程序的设备,其包括:第一芯片上系统(SOC),其被配置成提供第一高级驾驶辅助系统(ADAS);第二SOC,其被配置成提供第二ADAS;第一存储器装置,其被配置成提供数据的主级存储,所述第一存储器装置具有耦合到所述第一SOC的第一端口和耦合到所述第二SOC的第二端口;第二存储器装置,其被配置成提供数据的次级存储,所述第二存储器装置具有耦合到所述第一SOC的第一端口和耦合到所述第二SOC的第二端口;第三存储器装置,其被配置成提供数据的主级存储,所述第三存储器装置具有耦合到所述第一SOC的第一端口和耦合到所述第二SOC的第二端口;和第四存储器装置,其被配置成提供数据的次级存储,所述第四存储器装置具有耦合到所述第一SOC的第一端口和耦合到所述第二SOC的第二端口;其中在初始化期间,所述第一SOC被配置成检查所述第一存储器装置和所述第二存储器装置的功能性;且其中在初始化期间,所述第二SOC被配置成检查所述第三存储器装置和所述第四存储器装置的功能性。

在另一方面中,本公开提供一种用于车辆应用程序的方法,其包括:经由车辆存储器子系统的存储器装置的第一端口对被配置成提供第一高级驾驶辅助系统(ADAS)的第一主机进行的第一功能性检查作出响应;在对所述第一功能性检查作出响应之后存储经由所述第一端口从所述第一主机接收到的数据;经由所述存储器装置的第二端口对被配置成提供第二ADAS的第二主机进行的第二功能性检查作出响应;和在对所述第二功能性检查作出响应之后存储经由所述第二端口从所述第二主机接收到的数据。

附图说明

根据下文提供的具体实施方式和本公开的各种实施例的附图将更加充分地理解本公开。

图1是根据本公开的一些实施例的包含存储器子系统的实例计算系统的框图。

图2说明根据本公开的一些实施例的包含车辆中的计算系统的系统的实例。

图3是根据本公开的一些实施例的包含多个主机和多个存储器装置的系统的实例的框图。

图4是根据本公开的一些实施例的高速外围组件互连网状架构的实例的框图。

图5是根据本公开的一些实施例的用于车辆应用程序的冗余多端口存储器的实例方法的流程图。

图6是根据本公开的一些实施例的用于车辆应用程序的冗余多端口存储器的实例方法的流程图。

具体实施方式

本公开的方面针对于用于车辆应用程序的冗余多端口存储器。车辆系统的功能和安全性是重要的,对于高级辅助驾驶系统(ADAS)来说尤其重要。根据一些先前的方法,一或多个ADAS可由数个不同主机中的每一个来实施,其中每个主机耦合到存储器装置以提供主级存储和次级存储。主机可能够彼此通信,但每个主机通常具有自己的存储器,不与其它主机直接共享。举例来说,每个主机可具有第一端口和第二端口,所述第一端口包括用于具有易失性存储器装置的主级存储的双倍数据速率接口,所述第二端口包括用于具有非易失性存储器装置的次级存储的嵌入式多媒体控制器接口、通用快闪存储接口或高速非易失性存储器接口。

这类先前方法可具有限制,例如在对应存储器装置并非功能性的情况下发生ADAS中断。举例来说,如果用于ADAS主机的主级存储装置受损,那么ADAS主机可能不起作用。作为另一实例,如果用于ADAS主机的次级存储装置受损或丢失关键数据,那么ADAS主机可能无法提供其期望功能性。作为另一实例,在具有两个ADAS主机的系统中,如果第一ADAS主机中的处理器失效且第二ADAS主机中的主级存储失效,那么整个系统可能失效并且不能够提供任一ADAS的功能性。

本公开的方面通过使用多端口主级存储和多端口次级存储存储器装置用于车辆系统中的冗余存储器设计来解决以上和其它缺陷。每个ADAS主机可为芯片上系统(SOC),其可连接到多于一个主级存储存储器装置和多于一个次级存储存储器装置,连接方式是通过那些存储器装置中的不同端口。多于一个ADAS主机共享多端口存储器装置以提高车辆系统的可靠性、功能性和安全性。举例来说,如果一个存储器装置失效,那么系统仍可起作用,原因是使用那个存储器装置的ADAS主机可使用不同的存储器装置(例如,存储器装置意在供不同ADAS主机使用,使得两个不同ADAS主机使用同一存储器装置,不过经由存储器装置的不同端口)。多端口存储器设置还允许为方便ADAS主机直接经由不同端口将数据备份到不同物理存储器装置(例如,代替首先将数据传送到不同ADAS主机)。

本文中的图遵循编号定则,其中第一的一或多个数字对应于图号,且剩余的数字标识图式中的元件或组件。可通过使用类似数字来标识不同图之间的类似元件或组件。举例来说,114可表示图1中的元件“14”,且相似元件可在图2中表示为214。可使用连字符和额外数字或字母提及图内的类似元件。可在没有连字符和额外数字或字母的情况下大体上提及这类类似元件。举例来说,图1中的元件106-1、106-2、…、106-N可统称为106。如本文中所使用,特定地关于图式中的元件符号的标示符“N”指示可包含数个因此指定的特定特征。如应了解,可添加、交换和/或去除本文中的各种实施例中展示的元件,从而提供本公开的多个额外实施例。另外,如应了解,图式中所提供的元件的比例和相对标度意图说明本发明的某些实施例,且不应以限制性意义理解。

图1是根据本公开的一些实施例的包含存储器子系统104的实例计算系统100的框图。存储器子系统104可包含媒体,例如一或多个易失性存储器装置118、一或多个非易失性存储器装置120或其组合。易失性存储器装置118可为但不限于随机存取存储器(RAM),例如动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)和电阻性DRAM(RDRAM)。

存储器子系统104可为存储装置、存储器模块,或存储装置和存储器模块的混合。存储装置的实例包含SSD、快闪驱动器、通用串行总线(USB)快闪驱动器、嵌入式多媒体控制器(eMMC)驱动器、通用快闪存储(UFS)驱动器、安全数字(SD)卡,及硬盘驱动器(HDD)。在至少一个实施例中,存储器子系统104是汽车级SSD。存储器模块的实例包含双列直插式存储器模块(DIMM)、小外形DIMM(SO-DIMM),以及各种类型的非易失性双列直插式存储器模块(NVDIMM)。

计算系统100可为计算装置,例如台式计算机、手提式计算机、网络服务器、移动装置、交通工具(例如,飞机、无人机、火车、汽车或其它运输工具)、具有物联网(IoT)功能的装置、嵌入式计算机(例如,交通工具、工业设备或联网商业装置中包含的嵌入式计算机),或包含存储器和处理装置的此类计算装置。

计算系统100包含耦合到一或多个存储器子系统104的主机系统102-1、102-2。在一些实施例中,主机系统102耦合到不同类型的存储器子系统104。图1说明耦合到存储器子系统104的第一主机系统102-1的实例,其中为易于说明,与第二主机系统102-2相比更详细地说明第一主机系统102-1。第二主机系统102-2还耦合到存储器子系统104。如本文中所使用,“耦合到……”或“与……耦合”通常是指组件之间的连接,其可以是间接通信连接或直接通信连接(例如不具有介入组件),无论有线还是无线,包含例如电连接、光学连接、磁性连接等连接。

主机系统102包含或耦合到处理资源、存储器资源和网络资源。如本文中所使用,“资源”是在计算系统100内具有有限可用性的物理或虚拟组件。举例来说,处理资源包含处理装置110-1(或数个处理装置),存储器资源包含用于次级存储的存储器子系统104和用于主级存储的主存储器装置(未具体说明),且网络资源包含网络接口112。处理装置110-1可为可执行软件堆栈的一或多个处理器芯片组。处理装置110-1可包含一或多个核心、一或多个高速缓存器、存储器控制器(例如,NVDIMM控制器)和存储协议控制器(例如,PCIe控制器、SATA控制器等)。主机系统102使用例如存储器子系统104将数据写入到存储器子系统104并从存储器子系统104读取数据。

主机系统102可被配置成提供对存储器子系统104和/或处理资源和网络资源的虚拟化或非虚拟化存取。虚拟化可包含处理、存储器和/或网络资源的抽象化、池化和自动化。图1大体说明提供虚拟化存取的主机系统102。

为提供此类虚拟化,主机系统102-1并入有可执行数个虚拟计算例子(VCI)106-1、106-2、…、106-N的虚拟化层108(例如,超管理器、虚拟机监视器等)。虚拟化层108可为VCI106布设处理资源和存储器资源并且可促进经由网络接口112用于VCI 106的通信。虚拟化层108表示主机系统102所运行的软件的经执行例子。术语“虚拟计算例子”涵盖一系列计算功能性。VCI可包含非虚拟化物理主机、虚拟机(VM)和/或容器。容器可在主机操作系统上运行而无需超管理器或单独操作系统,例如在Linux内运行的容器。包含容器虚拟化层(例如,多克(Docker))的虚拟机可提供容器。VM通常是指隔离的最终用户空间实例,其可在虚拟化环境内执行。除可提供孤立应用程序例子的硬件虚拟化以外的其它技术也可被称作VCI。术语“VCI”涵盖不同类型的VCI的这些实例和组合,等等。

在一些实施例中,VM使用被虚拟化层108虚拟化的主机的资源通过主机系统102上的其自有客操作系统进行操作。租户(即,VM的所有者)可选择哪些应用程序在客操作系统的顶部操作。另一方面,构造在主机操作系统的顶部运行而无需超管理器或单独客操作系统的一些容器。主机操作系统可使用名称空间将容器彼此隔离且因此可提供对在不同容器内操作的不同应用程序群组的操作系统层级分隔。这一分隔等效于可在将系统硬件虚拟化的超管理器虚拟化环境中提供的VM分隔,且因此可视为将在不同容器中操作的不同应用程序群组隔离的虚拟化形式。此类容器可比VM重量更轻。

VCI 106因而可表示在虚拟化层108上或在主机系统102所执行的操作系统上运行的应用程序。举例来说,第一VCI 106-1是向车辆提供仪表组的应用程序,第二VCI 106-2是向车辆提供黑匣子的应用程序,且第三VCI 106-N是向车辆提供信息娱乐系统的应用程序。实施例不限于应用程序的这些特定实例。

主机系统102可经由物理主机接口耦合到存储器子系统104。物理主机接口的实例包含但不限于串行高级技术附件(SATA)接口、PCIe接口、通用串行总线(USB)接口、光纤通道、串行附接SCSI(SAS)、小型计算机系统接口(SCSI)、双倍数据速率(DDR)存储器总线、双列直插式存储器模块(DIMM)接口(例如,支持双倍数据速率(DDR)的DIMM套接接口)、开放式NAND快闪接口(ONFI)、双倍数据速率(DDR)、低功率双倍数据速率(LPDDR),或任何其它接口。物理主机接口可用于在主机系统102与存储器子系统104之间发射数据。当存储器子系统104通过PCIe接口与主机系统102耦合时,主机系统102可进一步利用高速NVM(NVMe)接口来存取非易失性存储器装置120。物理主机接口可提供用于在存储器子系统104与主机系统102之间传送控制、地址、数据和其它信号的接口。图1说明作为实例的存储器子系统104。一般来说,主机系统102可经由相同通信连接、多个单独通信连接和/或通信连接的组合存取多个存储器子系统。

主机系统102可将对例如将数据存储于存储器子系统104中或从存储器子系统104读取数据的请求发送到存储器子系统104。如由主机请求指定的待写入或读取的数据被称作“主机数据”。主机请求可包含逻辑地址信息。逻辑地址信息可为逻辑块地址(LBA),其可包含或伴有分区号。逻辑地址信息是主机系统与主机数据相关联的方位。逻辑地址信息可为用于主机数据的元数据的部分。LBA也可对应(例如,动态地映射)到物理地址,例如物理块地址(PBA),其指示主机数据存储于存储器中的物理方位。

非易失性存储器装置120的实例包含“与非”(NAND)型快闪存储器。NAND型快闪存储器包括例如二维NAND(2D NAND)和三维NAND(3D NAND)。非易失性存储器装置120可为其它类型的非易失性存储器,例如只读存储器(ROM)、相变存储器(PCM)、自选存储器、其它基于硫属化物的存储器、铁电晶体管随机存取存储器(FeTRAM)、铁电随机存取存储器(FeRAM)、磁随机存取存储器(MRAM)、自旋转移力矩(STT)-MRAM、导电桥接RAM(CBRAM)、电阻性随机存取存储器(RRAM)、基于氧化物的RRAM(OxRAM)、“或非”(NOR)快闪存储器、电可擦除可编程只读存储器(EEPROM)和三维交叉点存储器。非易失性存储器的交叉点阵列可结合可堆叠交叉网格化数据存取阵列而基于体电阻的改变来进行位存储。另外,与许多基于闪存的存储器对比,交叉点非易失性存储器可执行就地写入操作,其中可在不预先擦除非易失性存储器单元的情况下对非易失性存储器单元进行编程。

非易失性存储器装置120中的每一个可包含一或多个存储器单元阵列。一种类型的存储器单元,例如,单层级单元(SLC)可每单元存储一个位。其它类型的存储器单元(例如多层级单元(MLC)、三层级单元(TLC)、四层级单元(QLC)和五到层级单元(PLC))可每单元存储多个位。在一些实施例中,非易失性存储器装置120中的每一个可包含一或多个存储器单元阵列,如SLC、MLC、TLC、QLC或此类的任何组合。在一些实施例中,特定存储器装置可包含存储器单元的SLC部分、MLC部分、TLC部分、QLC部分或PLC部分。非易失性存储器装置120的存储器单元可分组为页,页可指用以存储数据的存储器装置的逻辑单元。对于一些类型的存储器(例如,NAND),页可进行分组以形成块。

存储器子系统控制器114(或简称为控制器114)可与非易失性存储器装置120通信以执行操作,例如在非易失性存储器装置120处读取数据、写入数据或擦除数据和其它这类操作。存储器子系统控制器114可包含例如一或多个集成电路和/或离散组件、缓冲存储器或其组合的硬件。硬件可包含具有专用(即,硬译码)逻辑的数字电路以执行本文所描述的操作。存储器子系统控制器114可以是微控制器、专用逻辑电路系统(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等),或其它合适的电路系统。

存储器子系统控制器114可以包含处理装置110-2(例如,处理器),其被配置成执行存储在本地存储器116中的指令。在所说明实例中,存储器子系统控制器114的本地存储器116是嵌入式存储器,其被配置成存储用于执行控制存储器子系统104的操作(包含控制存储器子系统104与主机系统102之间的通信)的各种过程、操作、逻辑流和例程的指令。

在一些实施例中,本地存储器116可以包含存储器寄存器,其存储存储器指针、获取的数据等。本地存储器116还可以包含用于存储例如微码的ROM。虽然图1中的实例存储器子系统104已说明为包含存储器子系统控制器114,但在本公开的另一个实施例中,存储器子系统104不包含存储器子系统控制器114,且可替代地依赖于外部控制(例如,由外部主机提供,或由与存储器子系统104隔开的处理器或控制器提供)。

一般来说,存储器子系统控制器114可从主机系统102接收信息或操作并且可将信息或操作转换成指令或适当信息以达成对非易失性存储器装置120和/或易失性存储器装置118的所要存取存储器子系统控制器114可负责其它操作,例如媒体管理操作(例如,耗损均衡操作、垃圾收集操作、碎片整理操作、读取刷新操作等)、错误检测和/或校正操作、加密操作、高速缓存操作,以及与非易失性存储器装置120相关联的逻辑地址(例如,逻辑块地址)和物理地址(例如,物理块地址)之间的地址转译。存储器子系统控制器114可另外包含主机接口电路系统以经由物理主机接口与主机系统102通信。主机接口电路系统可将从主机系统102接收的查询转换成存取非易失性存储器装置120和/或易失性存储器装置118的命令,以及将与非易失性存储器装置120和/或易失性存储器装置118相关联的响应转换成用于主机系统102的信息。

在一些实施例中,非易失性存储器装置120包含结合存储器子系统控制器114进行操作以在所述存储器装置120的一或多个存储器单元上执行操作的本地媒体控制器122。外部控制器(例如,存储器子系统控制器114)可在外部管理存储器装置120(例如,对存储器装置120执行媒体管理操作)。在一些实施例中,存储器装置120是受管理存储器装置,其为与本地控制器(例如,本地控制器122)组合以在同一存储器装置封装内进行媒体管理的原始存储器装置。受管理存储器装置的实例是受管理NAND装置。

在至少一个实施例中,标记为“状态/模式”的框124表示状态和/或模式寄存器124。在一些实施例中,状态/模式电路系统124可包括ASIC。状态/模式电路系统124可为可经由主机接口读取的。在一些实施例中,非易失性存储器装置120的本地媒体控制器122包含状态/模式电路系统124的至少一部分。本地媒体控制器122可包含处理器(例如,处理装置),其被配置成执行存储于易失性存储器装置118上的指令以用于执行本文所描述的操作。在一些实施例中,状态/模式电路系统124是主机系统102、应用程序或操作系统的部分。在至少一个实施例中,标记为“状态/模式”124的块表示存储于存储器子系统104中的数据或指令。关于状态/模式电路系统124描述的功能性可体现于存储于有形机器可读媒体中的机器可读且可执行指令中。

在一些实施例中,存储器子系统104可表示具有多个端口以用于耦合到多个主机102的离散存储器装置,如关于图3更详细描述。存储器子系统104还可包含未说明的额外电路系统或组件。在一些实施例中,存储器子系统104可包含高速缓存器或缓冲器(例如,DRAM)和地址电路系统(例如,行解码器和列解码器),所述地址电路系统可从存储器子系统控制器114接收地址且解码所述地址以存取非易失性存储器装置120。

图2说明根据本公开的一些实施例的包含车辆230中的计算系统200的系统的实例。计算系统200可包含存储器子系统204,为简单起见,其被说明为包含控制器214和非易失性存储器装置220但类似于图1中所说明的存储器子系统104。存储器子系统204经由多个端口耦合到多个主机系统202-1、202-2。

计算系统200且因此主机202可如针对传感器232-4所说明地直接耦合到或如针对传感器232-1、232-2、232-3、232-5、232-6、232-7、232-8、…、232-N所说明地经由收发器252耦合到数个传感器232。收发器252能够从传感器232无线(例如通过射频通信)接收数据。在至少一个实施例中,传感器232中的每一个可经由收发器252与计算系统200无线通信。在至少一个实施例中,传感器232中的每一个直接连接到计算系统200(例如,经由电线或光缆)。

车辆230可为汽车(例如,轿车、厢式车、卡车等)、联网车辆(例如,具有与外部服务器通信的计算能力的车辆)、自主车辆(例如,具有自身自动化能力的车辆,例如自动驾驶车辆)、无人机、飞机、船舶和/或用于输送人员和/或货物的任何东西。传感器232在图2中说明为包含实例属性。举例来说,传感器232-1、232-2和232-3是从车辆230的前部收集数据的相机。传感器232-4、232-5和232-6是从车辆230的前部、中间和后部收集数据的麦克风传感器。传感器232-7、232-8和232-N是从车辆230的后部收集数据的相机。作为另一实例,传感器232-5、232-6是轮胎压力传感器。作为另一实例,传感器232-4是导航传感器,例如全球定位系统(GPS)接收器。作为另一实例,传感器232-6是速度计。作为另一实例,传感器232-4表示数个发动机传感器,例如温度传感器、压力传感器、电压表、电流表、转速表、燃料表等。作为另一实例,传感器232-4表示相机。可从与车辆230相关联的传感器232(包括相机)中的任一个接收视频数据。在至少一个实施例中,可在将视频数据提供到存储器子系统204之前由主机202压缩视频数据。

主机202可执行指令以提供用于车辆230的总体控制系统和/或操作系统。主机202可为被设计成辅助车辆230的自动化工作的控制器。举例来说,主机202可为ADAS控制器。ADAS可监测数据以防事故发生并且提供对潜在不安全的情形的警告。举例来说,ADAS可监测车辆230中的传感器且取得对车辆230操作的控制以避免发生事故或伤害(例如,以避免在车辆用户丧失能力的情况下发生事故)。主机202可能需要快速地行动并作出决策以避免事故。存储器子系统204可将参考数据存储在非易失性存储器装置220中,使得来自传感器232的数据可通过主机202与参考数据进行比较,以便快速作出决策。

主机202可写入从一或多个传感器232接收的数据且存储所述数据(例如,与车辆的黑匣子应用程序240相关联)。黑匣子应用程序240还可被称作事故数据记录器。随着自主车辆的出现,一些自主驾驶需要实时缓冲遥测数据,例如摄像机、RADAR、LIDAR、超声波和用以回放事故前序列所必需的其它传感器。在事件之后,需要捕获紧接在事件前的回放时间量(例如,三十秒)以确定事件的起因。回放可被称为“快照”。控制此类信息的存储的应用程序在本文中被称作黑匣子。黑匣子可能需要存储至少几个最近快照。

主机202可执行指令以提供用于车辆230的应用程序集234,包含遥测236、信息娱乐238和黑匣子240。遥测应用程序236可提供可显示在用户接口244上的信息,例如可与车辆230的仪器和/或仪表板相关联。此遥测信息的实例是车辆230正行进的速度(例如,至少部分地基于来自传感器232的数据)。信息娱乐应用程序238可包含车辆230的用户经由用户接口244可显示或介接到的信息和/或娱乐。这类信息和/或娱乐的实例包含音乐、电影、GPS信息,例如移动地图等。存储器子系统204可提供用于应用程序集234中的任一个的存储。如关于图2所描述,应用程序集234可通过由存储器子系统204提供的备份存储而被虚拟化。

图3是根据本公开的一些实施例的包含多个主机302-1、302-2和多个存储器装置318-1、318-2、320-1、320-2的系统的实例的框图。实施例不限于图3中所说明的特定数量的主机302和/或存储器装置318、320。主机302中的每一个可被配置成提供用于车辆(例如图2中所说明的车辆230)的相应ADAS。ADAS的实例包含自动化照明、自适应巡航控制、交通、障碍物和/或防撞、导航和车道偏离警告和/或居中等等。主机302的实例是SOC。主机数据在本文中可以被称为SOC数据。主机302可例如经由进程间通信网络(IPC)彼此耦合。每个主机302可具有至少四个端口:两个端口用于连接到不同的第一存储器装置318-1、318-2,且两个端口用于连接到不同的第二存储器装置320-1、320-2。图3中的主机302和存储器装置318、320之间的箭头的末端表示端口。

系统可包含被配置成提供数据的主级存储的多个第一存储器装置318-1、318-2。第一存储器装置318在本文中可以被称为主级存储存储器装置318。主级存储是专门术语,也可被称作主存储器。主级存储通常可被处理器存取以用于执行指令并且通常由易失性存储器提供。主级存储的实例包含高速缓存存储器、处理器寄存器,以及主存储器,例如DRAM。第一存储器装置318中的每一个包含多个端口,每个端口耦合到相应主机302以使得多个主机302可耦合到每个第一存储器装置318。举例来说,存储器装置318-1可包含耦合到主机302-1的端口和耦合到主机302-2的不同端口。

在一些实施例中,第一存储器装置318的端口可为根据高速计算链路(CXL)协议操作的PCIe接口。CXL是高速处理器到装置和处理器到存储器互连,其被设计成加速下一代数据中心性能。CXL技术维持处理器存储器空间和附接装置上的存储器之间的存储器一致性,这允许资源共享以获得较高性能、降低软件堆栈复杂性,并且降低总体系统成本。CXL被设计成用于高速通信的行业开放标准接口,这是因为加速器越来越多地用以补充处理器以支持例如人工智能和机器学习等新兴应用程序。CXL技术构建在PCIe基础设施上,利用PCIe物理和电气接口在各区域提供先进协议,例如输入/输出协议、存储器协议(例如,最初允许主机与加速器共享存储器)和一致性接口。然而,相比于通过交换网状架构连接多个不同存储器装置的CXL交换机,本公开的实施例避免使用交换网状架构,而是采用多端口存储器装置。

系统可包含被配置成提供数据的次级存储的多个第二存储器装置320-1、320-2。第二存储器装置320在本文中可以被称为次级存储存储器装置320。次级存储是专门术语,也可被称作辅助存储。次级存储通常不可直接被处理器存取并且通常由非易失性存储器提供。次级存储的实例包含硬盘驱动器、SSD、光学存储和快闪驱动器。第二存储器装置320中的每一个包含多个端口,每个端口耦合到相应主机302以使得多个主机302可耦合到每个第二存储器装置320。举例来说,存储器装置320-1可包含耦合到主机302-1的端口和耦合到主机302-2的不同端口。在一些实施例中,第二存储器装置320的端口可为根据NVMe协议操作的PCIe接口。

主机302中的至少一个可被配置成检查第一存储器装置318-1、318-2和/或第二存储器装置320-1、320-2的功能性。关于第二存储器装置320,功能性检查还可包含数据完整性检查以确定永久数据是否已经受损(以及确定第二存储器装置320自身是否是功能性的)。主机302可被配置成在主机302的初始化处和/或响应于在运行时间期间发生错误而执行功能性检查。在一些实施例中,主机302中的至少一个(或所有主机)可被配置成检查系统中的所有存储器装置318、320的功能性。在一些实施例中,主机302-1可被配置成对存储器装置318-1和存储器装置320-1执行功能性检查,且主机302-2可被配置成对存储器装置318-2和存储器装置320-2执行功能性检查。响应于主机302中的一个失效,不同主机302可被配置成重新初始化和检查不同主机302耦合到的任何或所有存储器装置318、320的功能性。响应于存储器装置318、320失效,主机302可重新初始化和检查与其耦合的任何其它(在一些实施例中,每个其它)存储器装置318、320的功能性。

主机302中的每一个可被配置成使用第一存储器装置318中的相应第一存储器装置318用于数据的主级存储,这是响应于相应所述第一存储器装置318通过功能性检查。同样地,主机302中的每一个被配置成使用第二存储器装置320中的相应第二存储器装置320用于数据的次级存储,这是响应于所述相应第二存储器装置320通过功能性检查。举例来说,在正常操作条件(例如,其中存储器装置318、320通过功能性检查)中,主机302-1被配置成使用存储器装置318-1用于主级存储并且使用存储器装置320-1用于次级存储,而主机302-2被配置成使用存储器装置318-2用于主级存储并且使用存储器装置320-2用于次级存储。

主机302中的每一个可被配置成使用第二存储器装置320中的一个不同的第二存储器装置320用于备份次级存储。举例来说,主机302-1可被配置成使用存储器装置320-1用于次级存储并且使用存储器装置320-2用于备份次级存储,且主机302-2可被配置成使用存储器装置320-2用于次级存储并且使用存储器装置320-1用于备份次级存储。备份次级存储是指例如通过将数据镜射到存储器装置320以及其它数据备份操作,备份存储于次级存储装置中的数据。主机302可响应于存储器装置320中的另一个存储器装置320失效而从存储器装置320中的一个检索数据。举例来说,主机302-1可响应于存储器装置320-1失效而从存储器装置320-2检索数据。

主机302中的每一个可被配置成响应于主机302正常被配置成使用的相应第一存储器装置318未通过功能性检查而使用第一存储器装置318中的一个不同的第一存储器装置318用于主级存储。举例来说,主机302-1可响应于存储器装置318-1未通过功能性检查而使用所述存储器装置318-2用于主级存储。主机302中的每一个可被配置成响应于主机302正常被配置成使用的相应第二存储器装置320未通过功能性检查而使用第二存储器装置320中的一个不同的第二存储器装置320用于次级存储。举例来说,主机302-1可响应于存储器装置320-1未通过功能性检查而使用存储器装置320-2用于次级存储。在这类情形下,不同主机302仍可被配置成使用不同的第一存储器装置318用于主级存储和/或使用第二存储器装置320用于次级存储。继续以上实例,主机302-2还将使用所述存储器装置318-2用于主级存储并且使用存储器装置320-2用于次级存储,即使是主机302-1已切换到使用那些相同的存储器装置318-2、320-2分别用于主级存储和次级存储。

在主级存储存储器装置318-1未通过功能性检查且原本正常使用那个主级存储存储器装置318-1的主机302-1使用与不同主机302-2相关联的不同主级存储存储器装置318-2的情况下,主机302-1、302-2提供的ADAS功能性中的一些可降级或停止以免致使不同主级存储存储器装置318-2失效,这可能引起更大范围的系统失效。整体车辆系统和/或主机302可实施确定在主级存储装置318变得供不应求的情况下首先按比例缩小或停止哪些ADAS功能性的策略。

在次级存储存储器装置320-1未通过功能性检查且原本正常使用那个次级存储存储器装置320-1的主机302-1使用与不同主机320-2相关联的不同次级存储存储器装置320-2的情况下,主机302-1、302-2提供的ADAS功能性中的一些可降级或停止以免致使不同次级存储存储器装置320-2失效,这可能引起更大范围的系统失效。整体车辆系统和/或主机302可实施确定在次级存储装置320变得供不应求的情况下首先按比例缩小或停止哪些ADAS功能性的策略。

在次级存储存储器装置320-1中的一些数据受损的情况下,所述数据如果备份在不同的次级存储存储器装置320-2中那么就可从其中恢复。与存储已经受损的数据的次级存储存储器装置320-1相关联的主机302-1可直接从不同次级存储存储器装置320-2恢复备份数据且不中断不同主机302-2。

在主机302-1失效且与不同主机302-2相关联的主级存储存储器装置318-2失效的情况下,不同主机302-2可使用与失效的主机302-1相关联的主级存储装置318-1。与失效的主机302-1相关联的ADAS功能性可能丢失,但与不同主机302-2相关联的ADAS功能性可继续。

图4是根据本公开的一些实施例的高速外围组件互连网状架构的实例的框图。虚线表示存储器装置(例如,非易失性存储器装置),例如图3中所说明的存储器装置320-1。存储器装置包含第一端口446-1(“PCIe端口x”)和第二端口446-2(“PCIe端口y”)。端口446可与相同的根复合体相关联或与不同的根复合体相关联并且可用于实施多路径输入/输出和/或输入/输出共享架构。根复合体装置可将处理器和存储器子系统耦合到PCIe交换网状架构。

每个端口446耦合到相应控制器414-1、414-2。与各个名称空间标识符(“NSID”)相关联地说明每个控制器414。举例来说,第一控制器414-1与NSID 1 448-1和NSID 2448-2相关联且第二控制器414-2与NSID 3 448-3和NSID 2 448-2相关联。NSID大致类似于SSD中的分区。第一控制器414-1可控制第一名称空间(“NS A”)450-1,第二控制器414-2可控制第三名称空间(“NS C”)450-3,且控制器414-1、414-2两者可控制第二名称空间(“NS B”)450-2。名称空间可由控制器414产生且第二名称空间450-2表示控制器414之间的共享名称空间。每个名称空间可以指由一系列LBA表示的存储器容量的一部分。

图5是根据本公开的一些实施例的用于车辆应用程序的冗余多端口存储器的实例方法的流程图。所述方法可由处理逻辑执行,所述处理逻辑可包含硬件(例如,处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如,在处理装置上运行或执行的指令),或其组合。虽然以特定顺序或次序来展示,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每个实施例中并不需要所有过程。其它过程流程也是可能的。

在图5的实例方法中的框552处,车辆存储器子系统的存储器装置可经由存储器装置的第一端口对第一主机进行的第一功能性检查作出响应。第一主机被配置成提供第一ADAS。

在图5的实例方法中的框554处,存储器装置可在对第一功能性检查作出响应之后存储经由第一端口从第一主机接收到的数据。在至少一个实施例中,存储器装置通过存储经由第一端口接收到的数据为第一主机提供数据的主级存储。在至少一个实施例中,存储器装置通过存储经由第一端口接收到的数据为第一主机提供数据的次级存储。

在图5的实例方法中的框556处,所述存储器装置可经由存储器装置的第二端口对第二主机进行的第二功能性检查作出响应。第二主机被配置成提供第二ADAS。可响应于耦合到第二主机的不同存储器装置失效而执行第二主机进行的第二功能性检查。

在图5的实例方法中的框558处,存储器装置可在对第二功能性检查作出响应之后存储经由第二端口从第二主机接收到的数据。在至少一个实施例中,存储器装置通过存储经由第二端口接收到的数据为第二主机提供数据的主级存储。在至少一个实施例中,存储器装置通过存储经由第二端口接收到的数据为第二主机提供数据的次级存储。在至少一个实施例中,存储器装置通过存储经由第二端口接收到的数据提供数据的备份次级存储。

图6是根据本公开的一些实施例的用于车辆应用程序的冗余多端口存储器的实例方法的流程图。如关于图6所使用,术语“主级存储”是主级存储存储器装置的简称且术语“次级存储”是次级存储存储器装置的简称。所述方法可在框660处开始,其中初始化一或多个主机。初始化的主机可对主机的端口1上的主级存储执行功能性检查,如在框662处所指示。如果端口1上的主级存储通过功能性检查,如由从框664的“是”路径所指示,那么主机可使用端口1上的主级存储,如在框668处所指示,除非且直到主机检测到端口1上的主级存储失效,如在框682处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

如果端口1上的主级存储未通过功能性检查,如由从框664的“否”路径所指示,那么主机可确定不同主级存储是否在主机的另一端口上可用,如在框670处所指示。如果不同主级存储不可用,如由从框670的“否”路径所指示,那么主机的操作可失效,如在框672处所指示。

然而,如果不同主级存储在主机的另一端口上可用,如由从框670的“是”路径所指示,那么主机可确定不同主级存储是否通过另一主机进行的功能性检查,如在框674处所指示。举例来说,与不同主级存储相关联的不同主机可能已经对不同主级存储执行这类功能性检查,因此不需要所述主机这样做,由从框674的“是”路径所指示。在此类情况下,主机可使用不同端口上的不同主级存储,如在框680处所指示,除非且直到主机检测到不同端口(例如,端口3)上的主级存储失效,如在框682处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

如果不同主级存储未通过另一主机进行的功能性检查(或如果主机无法做出这类确定),如由从框674的“否”路径所指示,那么主机可对不同主级存储执行功能性检查,如在框676处所指示。如果不同主级存储未通过功能性检查,如由从框678的“否”路径所指示,那么主机可确定不同主级存储是否在另一端口上可用,如在框670处所指示。然而,如果不同主级存储通过功能性检查,如由从框678的“是”路径所指示,那么主机可使用不同主级存储,如在框680处所指示,除非且直到主机检测到不同端口(例如,端口3)上的不同主级存储失效,如在框682处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

返回到框660,初始化的主机可对主机的端口2上的次级存储执行功能性检查,如在框684处所指示。如果端口2上的次级存储通过功能性检查,如由从框686的“是”路径所指示,那么主机可使用端口2上的次级存储,如在框688处所指示,除非且直到主机检测到端口2上的次级存储失效,如在框699处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

如果端口2上的次级存储未通过功能性检查,如由从框686的“否”路径所指示,那么主机可确定不同次级存储是否在主机的另一端口上可用,如在框690处所指示。如果不同次级存储不可用,如由从框690的“否”路径所指示,那么主机的操作可失效,如在框692处所指示。

然而,如果不同次级存储在主机的另一端口上可用,如由从框690的“是”路径所指示,那么主机可确定不同次级存储是否通过另一主机进行的功能性检查,如在框694处所指示。举例来说,与不同次级存储存储器装置相关联的不同主机可能已经对不同次级存储执行这类功能性检查,因此不需要所述主机这样做,由从框694的“是”路径所指示。在此类情况下,主机可使用不同端口上的不同次级存储,如在框698处所指示,除非且直到主机检测到不同端口(例如,端口4)上的次级存储失效,如在框699处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

如果不同次级存储未通过另一主机进行的功能性检查(或如果主机无法做出这类确定),如由从框694的“否”路径所指示,那么主机可对不同次级存储执行功能性检查,如在框696处所指示。如果不同次级存储未通过功能性检查,如由从框697的“否”路径所指示,那么主机可确定不同次级存储是否在另一端口上可用,如在框690处所指示。然而,如果不同次级存储通过功能性检查,如由从框697的“是”路径所指示,那么主机可使用不同次级存储,如在框698处所指示,除非且直到主机检测到不同端口(例如,端口4)上的不同次级存储失效,如在框699处所指示。在此类情况下,主机可重新初始化,如在框660处所指示。

指令可由处理装置(例如,一或多个通用处理装置,例如微处理器、中央处理单元等等)执行。更特定来说,处理装置可以是复杂指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器或实施其它指令集的处理器,或实施指令集的组合的处理器。处理装置也可以是一或多个专用处理装置,例如ASIC、FPGA、数字信号处理器(DSP)、网络处理器等等。处理装置被配置成执行用于进行本文中所论述的操作和步骤的指令。在一些实施例中,指令可经由网络接口装置传送以经由网络通信。

机器可读存储媒体(也被称作计算机可读媒体)可存储体现本文中所描述的方法或功能中的一或多个的一或多个指令集或软件。指令还可在由计算系统执行期间完全或至少部分地驻留在主存储器内和/或在处理装置内。主存储器和处理装置还可构成机器可读存储媒体。

术语“机器可读存储媒体”应被认为包含存储一或多个指令集的单个媒体或多个媒体。术语“机器可读存储媒体”还应被认为包含能够存储或编码供机器执行的指令集且使得机器执行本公开的方法中的一或多个的媒体。因此,术语“机器可读存储媒体”应被认为包含但不限于固态存储器、光学媒体和磁性媒体。

已在针对计算机存储器内的数据位的操作的算法和符号表示方面呈现了先前详细描述的一些部分。这些算法描述和表示是数据处理领域的技术人员用以将其工作的主旨最有效地传达给所属领域的其他技术人员的方式。在本文中,且一般将算法构想为产生所要结果的操作的自洽序列。操作是要求对物理量进行物理操纵的操作。通常(但未必),这些量采用能够存储、组合、比较以及以其它方式操纵的电或磁信号的形式。已经证实,主要出于常用的原因,将这些信号称为位、值、元素、符号、字符、项、编号等等有时是便利的。

然而,应牢记,所有这些和类似术语将与适当物理量相关联,且仅仅为应用于这些量的便利标记。本公开可以指操控和变换计算机系统的寄存器和存储器内的表示为物理(电子)数量的数据为计算机系统存储器或寄存器或其它这类信息存储系统内的类似地表示为物理量的其它数据的计算机系统或类似电子计算装置的动作和过程。

本公开还涉及用于执行本文中的操作的设备。这一设备可以出于所需目的而专门构造,或其可包含通过存储在计算机中的计算机程序选择性地激活或重新配置的通用计算机。此类计算机程序可存储于机器可读存储媒体中,例如但不限于磁盘类型、基于半导体的存储器、磁卡或光卡,或适用于存储电子指令的其它类型的媒体。

本公开可提供为计算机程序产品或软件,其可包含在其上储存有可用以编程计算机系统(或其它电子装置)以执行根据本公开的过程的指令的机器可读媒体。机器可读媒体包含用于以机器(例如计算机)可读的形式存储信息的机构。

在前述说明书中,本公开的实施例已经参照其特定实例实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中阐述的本公开的实施例的更广精神和范围的情况下对本公开进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书和图式。

相关技术
  • 一种用于木质装饰板上的墙板连接型材及墙板安装结构
  • 一种被动式建筑预制混凝土结构保温墙板拉结件安装方法
  • 一种轻质隔墙板用建筑安装设备及轻质隔墙板安装工艺
  • 一种连接整体式轻钢墙板与钢框架结构的卡扣结构及其卡扣方法
  • 一种装饰墙板安装隐藏式的卡件
  • 一种汽车装饰件的卡扣吸取侧压式安装机构
技术分类

06120116571084