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

数据存储装置的电力使用的优化

文献发布时间:2023-06-19 12:14:58


数据存储装置的电力使用的优化

技术领域

本文公开的至少一些实施例总体上涉及控制数据存储装置的电力使用,并且更具体地,涉及但不限于自主车辆中的存储装置。

背景技术

自主驾驶技术领域中的最新发展允许计算系统至少在一些状况下在没有来自车辆的人类操作者的辅助的情况下操作机动车辆的控制元件。

例如,传感器(例如,相机和雷达)可以安装在机动车辆上,以检测在道路上行进的车辆的周围事物的状况。安装在车辆上的计算系统分析传感器输入,以标识状况并且生成控制信号或命令,以用于在有或没有来自车辆的人类操作者的任何输入的情况下自主调整车辆的方向和/或速度。

在一些布置中,当计算系统识别出计算系统可能无法以安全的方式继续操作车辆的情况时,计算系统警告车辆的人类操作者并且请求人类操作者接管对车辆的控制并手动驾驶,而不是允许计算系统自主驾驶车辆。

自主驾驶和/或高级驾驶员辅助系统(ADAS)可以使用人工神经网络(ANN)用于标识在传感器输入中捕获的事件和/或对象。传感器输入的实例包含来自数字相机、激光雷达、雷达、超声声纳等的图像。

人工神经网络(ANN)通常使用神经元网络来处理到网络的输入并且从网络生成输出。

例如,网络中的每个神经元接收一组输入。到神经元的输入中的一些输入可以是网络中的某些神经元的输出;并且到神经元的输入中的一些输入可以是提供到神经网络的输入。网络中的神经元之间的输入/输出关系表示网络中的神经元连通性。

例如,每个神经元可以分别具有偏置、激活函数和一组突触权重用于其输入。激活函数可以呈阶跃函数、线性函数、对数-S型函数等形式。网络中的不同神经元可以具有不同的激活函数。

例如,每个神经元可以生成其输入和其偏置的加权和并且然后产生输出,所述输出是使用神经元的激活函数计算的加权和的函数。

ANN的一或多个输入与一或多个输出之间的关系通常由ANN模型定义,所述ANN模型包含表示网络中的神经元的连通性的数据以及每个神经元的偏置、激活函数和突触权重。使用给定的ANN模型,计算装置从到网络的给定的一组输入计算网络的一或多个输出。

例如,可以基于相机输入来生成到ANN网络的输入;并且来自ANN网络的输出可以是如事件或对象等项目的标识。

尖峰神经网络(SNN)是密切模仿自然神经网络的类型的ANN。当神经元的激活水平足够高时,SNN神经元产生尖峰作为输出。SNN神经元的激活水平模仿自然神经元的膜电位。SNN神经元的输出/尖峰可以改变接收输出的其它神经元的激活水平。通常使用微分方程对SNN神经元的作为时间的函数的当前激活水平进行建模并且将其视为SNN神经元的状态。从其它神经元传入的尖峰可以将神经元的激活水平推动更高以达到用于尖峰化的阈值。一旦神经元尖峰化,就重置神经元的激活水平。在尖峰化之前,如通过微分方程控制的,SNN神经元的激活水平可以随时间推移衰减。SNN神经元的行为中的时间元素使SNN适合于处理时空数据。SNN的连通性通常是稀疏的,这在减少计算工作负荷时是有利的。

通常可以使用监督式方法来训练ANN,在所述监督式方法中,对ANN中的参数进行调整,以最小化或减少因相应输入而产生的已知输出与从将输入应用于ANN生成的计算输出之间的误差。监督式学习/训练方法的实例包含强化学习和具有误差校正的学习。

可替代地或组合地,可以使用非监督式方法来训练ANN,在所述非监督式方法中,在训练完成之前因给定的一组输入而产生的确切输出是未知的。可以训练ANN以将项目分类为多个类别或者将数据点分类为集群。

可以采用多种训练算法用于复杂的机器学习/训练范例。

发明内容

在一方面,本申请提供了一种方法,所述方法包括:由配置在数据存储装置中的温度传感器测量所述数据存储装置的温度;确定标识所述数据存储装置的操作状况的一组操作参数;使用所述数据存储装置中的人工神经网络并且基于所述一组操作参数来确定一段时间内的操作时间表,其中所述操作时间表被配置成在所述数据存储装置的所述温度不超过阈值的情况下在所述一段时间内优化所述数据存储装置的性能;以及由所述数据存储装置根据所述操作时间表执行操作。

在另一方面,本申请提供了一种数据存储装置,所述数据存储装置包括:一或多个存储器组件,所述一或多个存储器组件被配置成存储数据;主机接口,所述主机接口被配置成接收输入数据流并且提供输出数据流;温度传感器,所述温度传感器被配置成测量所述数据存储装置的温度;控制器,所述控制器被配置成确定标识所述数据存储装置的操作状况的一组操作参数;以及推理引擎,所述推理引擎被配置成使用所述数据存储装置中的人工神经网络并且基于所述一组操作参数来确定对所述输入数据流和所述输出数据流进行处理的一段时间内的操作时间表,其中所述操作时间表被配置成在所述数据存储装置的所述温度不超过阈值的情况下在所述一段时间内优化所述数据存储装置的性能。

在又一方面,本申请提供了一种车辆,所述车辆包括:一组传感器,所述一组传感器被配置成生成传感器数据;以及计算机系统,所述计算机系统被配置成基于所述传感器数据来生成自主驾驶时用于所述车辆的控制信号,所述计算机系统包含数据存储装置,所述数据存储装置包括:一或多个存储器组件;主机接口,所述主机接口被配置成接收包含所述传感器数据的至少一部分的输入数据流并且提供输出数据流;温度传感器,所述温度传感器被配置成测量所述数据存储装置的温度;控制器,所述控制器被配置成确定标识所述数据存储装置的操作状况的一组操作参数;以及推理引擎,所述推理引擎被配置成使用所述数据存储装置中的人工神经网络并且基于所述一组操作参数来确定对所述输入数据流和所述输出数据流进行处理的一段时间内的操作时间表,其中所述操作时间表被配置成在所述数据存储装置的所述温度不超过阈值的情况下在所述一段时间内优化所述数据存储装置的性能。

附图说明

在附图的图中通过实例而非限制的方式展示了实施例,在附图中,相同的附图标记指示类似的元件。

图1示出了根据一个实施例的具有推理引擎的数据存储装置,所述推理引擎被配置成节制活动并且因此调整数据存储装置的电力使用以防止过高的温度。

图2示出了根据一些实施例的具有被配置成收集和处理传感器数据的车辆的系统。

图3示出了根据一个实施例的自主车辆。

图4-6展示了根据一些实施例的用于预测的人工神经网络的训练。

图7示出了根据一个实施例的具有神经网络加速器的数据存储装置。

图8示出了根据一个实施例的用于加速神经网络计算的存储器组件。

图9示出了根据一个实施例的被配置成支持神经网络计算的存储器容量。

图10展示了根据一个实施例的用于人工神经网络(ANN)模型的存储器区域的配置。

图11展示了根据一个实施例的用于到人工神经元的输入的存储器区域的配置。

图12展示了根据一个实施例的用于来自人工神经元的输出的存储器区域的配置。

图13示出了根据一个实施例的自主车辆与数据存储装置之间的通信。

图14示出了根据一个实施例的数据存储装置内的通信。

图15示出了根据一个实施例的被配置成优化电力使用的数据存储装置。

图16示出了根据一个实施例的用于控制数据存储装置的温度的方法。

具体实施方式

本文公开的至少一些实施例提供了用于在有或没有高级驾驶员辅助系统(ADAS)的情况下优化配置在机动车辆或另一种车辆中的数据存储装置的电力使用的系统、方法和设备。

数据存储装置的温度通常由数据存储装置的热环境和数据存储装置的能耗确定。数据存储装置的电力使用增加可能会导致数据存储装置的温度增加。当数据存储装置处于热环境中时,相同量的能耗可能会在数据存储装置中导致比凉爽环境中更高的温度增加。数据存储装置的能耗通常基于数据存储装置的活动和性能。数据存储装置中活动强度的增加和性能的提高可能会导致能耗和/或能耗率增加。

在本文公开的至少一些实施例中,数据存储装置被配置成智能地平衡其温度的调节与其操作和性能的节制。

例如,人工神经网络(例如,尖峰神经网络)可以用于监测数据存储装置的各个方面,如温度、数据存储装置的队列中的挂起操作、数据存储装置的可以指示数据存储装置在后续时间段内的工作负荷的操作状况。人工神经网络可以基于监测来预测用电力使用并且警告数据存储装置的控制器采取措施,如节制操作,以将电力和温度上升保持在安全水平,同时优化下一时间段内数据存储装置的整体性能。

当电力或温度超过阈值时,数据存储装置可以任选地节制其操作并且因此节制其性能。通过节制其操作,数据存储装置可以减慢操作、降低操作速度并且因此降低能耗率,使得通过执行一组操作而生成的热量在更长的时间段内分布,在所述时间段期间,热耗散可以防止温度进一步增加和/或降低数据存储装置的温度。例如,数据存储装置可以在一段时间内暂停操作以冷却、周期性地暂停操作以减慢热生成或以较慢的时钟操作。

然而,数据存储装置的温度冷却到可接受的水平可能会需要很长时间,特别是当在相对较热的环境中操作数据存储装置时。进一步,在需要、优选或期望高性能时,作为对数据存储装置的温度超过阈值的反应的节制活动可能会使数据存储装置的性能降级。

在至少一个实施例中,数据存储装置基于队列中的挂起事务使用机器学习分析学来预测未来数据存储装置的功耗。数据存储装置的控制器可以基于数据存储装置的预测、当前温度和热环境来调度对其操作的节制以减少对数据存储装置的操作的性能影响,同时将数据存储装置的温度保持在安全区中。

例如,人工神经元网络(ANN)(例如,尖峰神经网络(SNN)、卷积神经网络(CNN)、递归神经网络(RNN)或其任何组合)可以被配置成基于存储模式(例如,读取/写入)、存储频率、地址位置、分块大小、操作状况/环境等来预测要在数据存储装置中实施的数据变化和/或移动并且因此预测未来电力/温度。数据存储活动的智能节制可以通过避免可能由于温度超过阈值而导致的对数据存储装置的性能的强行节制来改善用户体验。

数据存储装置可以具有各种可配置的参数和操作,所述可配置的参数和操作在各种状况下对数据存储装置的性能有不同的影响。可以基于读取/写入(输入/输出)请求的等待时间(响应时间)和/或数据存储装置每单位时间处理的读取/写入(输入/输出)请求的数量来测量数据存储装置的性能。

例如,数据存储装置可以实施不同的高速缓存或缓冲方案和/或在实施高速缓存/缓冲时使用不同值的高速缓存参数,如高速缓存大小、高速缓存块大小、高速缓存组大小、高速缓存组数量等。对于数据存储装置上应用的工作负荷的不同模式,不同的高速缓存/缓冲实施方案可能会是最佳的。

例如,数据存储装置可以具有后台维护过程,如垃圾收集、磨损均衡等。在垃圾收集过程中,数据存储装置搜索已标记为过时的存储媒体页面、重新定位与过时页面处于相同块中的页面的有效数据并且擦除块以使块准备好用于写入操作。在磨损均衡操作中,数据存储装置将数据从较频繁被擦除的页面移动到不那么频繁被擦除的页面。在数据存储装置上应用了不同的工作负荷模式的情况下,用于调度后台维护过程的定时和频率的不同方式可以对数据存储装置的性能有不同的影响。

人工神经元网络(ANN)(例如,尖峰神经网络(SNN)、卷积神经网络(CNN)、递归神经网络(RNN))可以被配置成针对数据存储装置的当前操作状况预测高速缓存/缓冲和后台维护过程的配置以优化数据存储装置的性能,同时将数据存储装置的温度保持在安全范围内。例如,ANN可以被配置成预测高速缓存/缓冲实施方案与垃圾收集和磨损均衡的定时和频率的组合,使得在数据存储装置的温度没有达到阈值的情况下,数据存储装置的性能在后续的操作时间段内被优化。

例如,ANN可以预测执行下一时间段内预期的操作所需的功耗量并且将对操作的执行的定时布置成在将温度保持在阈值以下的约束下控制数据存储装置中的热生成和耗散的速率以优化数据存储装置的性能。

例如,数据存储装置可以被配置为自主车辆中的固态驱动器(SSD)。基于由车辆的操作状态、高级驾驶员辅助系统(ADAS)的处理状态/里程碑/工作负荷、请求存取的应用、存取类型(例如,读取/写入)、存取频率、地址位置、分块大小等指示的数据存取模式,ANN可以预测高速缓存/缓冲的方案和参数以及后台维护过程的定时和频率,以在一段时间内优化SSD的性能,同时将温度保持在预定义范围内。

ANN可以被配置成在数据存储装置内进行自训练。例如,ANN可以自组织输入数据以获得预测/分类能力(例如,使用非监督式学习技术)。可替代地,可以使用监督式学习技术来训练ANN,以改进或建立预测模型。

例如,可以将车辆、应用和/或数据存储装置的当前操作参数作为输入提供到ANN,以得出后续时间段内的预测工作负荷、优选的高速缓存方案、优化的后台维护时间表和所述时间段内优选的执行节制。作为高速缓存/缓冲方面、后台维护过程的定时和频率和/或执行节制改变的结果,可以测量数据存储装置的性能和温度的后续变化。性能、温度的测量结果和高速缓存/缓冲、后台维护过程的所实施参数以及一段时间内的执行节制模式可以用作机器学习中的输入数据,以提高ANN的预测能力。

通过使用ANN来控制对数据存储装置的性能和温度有影响的各方面(例如,缓冲/高速缓存、垃圾收集、磨损均衡、执行节制),数据存储装置可以具有一致和/或优化的性能,而无过高的温度。

图1示出了根据一个实施例的具有推理引擎101的数据存储装置112,所述推理引擎被配置成节制活动并且因此调整数据存储装置112的电力使用以防止过高的温度。

数据存储装置112具有被配置成测量存储媒体105的温度的温度传感器102。例如,存储媒体105可以包含集成电路存储器晶胞。进一步,集成电路存储器晶胞可以是非易失性存储器(例如,NAND、FERAM、NOR、PCM、MRAM、交叉点存储器)。当方法和其中描述的技术(例如,图16的方法)至少部分地凭借通过可编程装置(例如,推理引擎101和/或控制器151)执行的指令来实施时,指令可以存储在媒体105或另一个机器可读媒体中。

数据存储装置112存储人工神经网络(ANN)125的模型。推理引擎101使用ANN 125来预测数据存储装置112的操作如缓冲/高速缓存106、垃圾收集107、磨损均衡108、队列中110预测的操作等的参数和配置,以优化数据存储装置112的测量的性能并且将如温度传感器102所测量的温度保持在预定范围内。

数据存储装置112具有被配置成存储提供到数据存储装置112的数据的控制器151和媒体105。例如,输入数据流103提供要写入数据存储装置112的媒体105中的数据;并且输出数据流109提供从数据存储装置112检索到的数据。控制器151处理结合输入数据流103和输出数据流109提供在队列110中的命令并且根据命令将数据写入到媒体105中并且从媒体105中读取数据。

控制器151可以使用比媒体105更快的存储器来缓冲/高速缓存输入数据流103和/或输出数据流的数据。例如,控制器151可以使用控制器151的静态随机存取存储器(SRAM)和/或单独的动态随机存取存储器(DRAM)来高速缓存或缓冲数据。

由控制器执行的缓冲/高速缓存106的参数和配置可以由推理引擎101基于输入数据流103和/或输出数据流109使用ANN 125来计算。可以通过ANN 125标识输入数据流103和/或输出数据流109中的与数据存储装置112的典型使用场景相对应的模式,以确定缓冲/高速缓存106的参数和配置以优化针对数据存储装置112测量的性能。

进一步,控制器151可以执行后台维护操作,如垃圾收集107、磨损均衡108等。后台维护操作的定时和频率可以影响数据存储装置112的性能。推理引擎101基于输入数据流103和/或输出数据流109中的模式使用ANN 125来确定维护操作(例如,107、108)的定时和频率,以优化针对数据存储装置112测量的性能。

进一步,控制器151可以节制队列110中请求的操作和/或后台维护操作(例如,107、108)的执行。例如,控制器151可以以减小的时钟执行操作,以在更长的时间段内散布由操作生成的热。例如,控制器151可以周期性地进入空闲状态,使得在比在不进入空闲状态的情况下执行操作的持续时间更长的时间段内执行操作。例如,控制器151可以空转一段时间以冷却并且然后以高性能执行操作而不会空转。ANN 125可以用于预测优选的节制方案,以将由温度传感器102测量的温度保持在预定义范围内,同时在一段时间内使数据存储装置112的平均性能最大化。

例如,数据存储装置112可以配置在图2所展示的车辆中;并且推理引擎101可以基于车辆的操作模式来预测缓冲/高速缓存106的参数和配置、后台维护操作(例如,107和108)的定时和频率和/或执行节制方案。

图2示出了根据一些实施例的具有被配置成收集和处理传感器数据的车辆111的系统。

图2中的车辆111具有数据存储装置112、传感器122、ANN 125和ADAS 128,所述ADAS被配置成处理包含来自传感器122的输入的传感器数据以生成用于车辆111的控制信号。例如,图2中的数据存储装置112可以使用图1所展示的数据存储装置112实施。

通常可以在车辆111上配置一或多个传感器(例如,122),以生成输入到ADAS 128和/或数据存储装置112的传感器数据。数据存储装置112和/或ADAS 128可以被配置成使用ANN 125来生成推理结果。推理结果可以包含用于操作或驾驶车辆111的控制信号、针对车辆111的维护服务的建议等。

在一些实施方案中,由传感器(例如,122)生成的数据中的至少一部分在ADAS 128中用于驾驶员辅助并且在ANN 125中用于维护预测。任选地,可以在数据存储装置112和ADAS 128两者中使用ANN 124的输出。ANN 125可以是ADAS 128的一部分。

传感器122可以配置在数字相机、激光雷达、雷达、超声声纳等中。也可以使用其它类型的传感器,如制动器传感器、速度传感器、加速度传感器、安全气囊传感器、GPS(全球定位系统)接收器、音频传感器/麦克风、振动传感器、力/应力传感器、变形传感器、运动传感器、温度传感器等。传感器122中的一些传感器可以被主要配置成监测车辆111的环境;并且其它传感器122可以被主要配置成监测车辆111的一或多个组件如内燃机、排气系统、电动机、制动器、轮胎、电池等的操作状况。

车辆111的ANN 125被配置成处理来自传感器122的传感器输入数据,以控制车辆111和/或数据存储装置112。

一或多个传感器122的作为时间的函数的输出通常作为传感器数据流提供到ADAS128和/或ANN 125以提供驾驶员辅助(例如,自主驾驶)和维护预测。

传感器数据流的至少一部分可以提供到数据存储装置112以用于存储和/或用于处理。例如,可以在数据存储装置112中实施ANN 125的一部分。数据存储装置112的推理引擎101可以处理传感器数据流以生成推理结果,以供ADAS 128进一步处理。因此,到数据存储装置112的输入数据流103可以包含来自传感器122的传感器数据流的至少一部分;并且输出数据流109可以包含使用ANN 125在数据存储装置112中针对车辆111的ADAS 128生成的推理结果。可以从输入/输出数据流103和109中的模式确定车辆111的操作状况并且因此确定数据存储装置112的工作负荷。操作状况可以用于预测缓冲/高速缓存106的优化的参数和配置以及后台维护操作(例如,107和108)的优化的定时和频率。

车辆111的和/或数据存储装置112中的ANN 125可以包含SNN,所述SNN被配置成对传感器数据的基于时间的变化进行分类和/或检测与车辆111的传感器数据的已知模式的偏离。当ANN 125检测到与已知模式的偏离时,可以将与偏离相对应的传感器数据存储在数据存储装置112中,以用于进一步分析和/或用于进一步训练ANN 125。

车辆111的数据存储装置112可以被配置成在一段时间内记录传感器数据。所记录的传感器数据可以在ANN 125中用于预测性维护和/或用于进一步训练ANN 125。维护服务设施(例如,127)可以从数据存储装置112下载传感器数据121并且将传感器数据121和对应的推理结果数据123提供到服务器119以促进对ANN 125的训练。

任选地或组合地,数据存储装置112配置有机器学习模块,以定制和/或训练安装在车辆111中和/或数据存储装置112中的ANN 125。

车辆111可以具有用于通过无线信号113和通信网络117与远程服务器119通信的无线通信装置。远程服务器119通常被配置在远离车辆111在服务中的道路114的位置。例如,车辆111可以向服务器119提供一些传感器数据121并且从服务器119接收ANN125的更新。

通信网络117可以是具有用于接收无线信号(例如,113)的一或多个基站(例如,115)的蜂窝电话网络。可替代地或组合地,通信网络117可以包含互联网,其中在接入点(例如,115)中接收由车辆113传输的无线局域网信号(例如,113)以进一步传送到服务器119。在一些实施方案中,车辆111使用到卫星118或通信气球的通信链路116与服务器119通信。

服务器119还可以与一或多个维护服务设施(例如,127)通信,以接收车辆(例如,111)的传感器数据121和/或期望的推理结果数据123。

例如,期望的推理结果数据123可以由人类操作者检查传感器数据121(例如,来自传感器122的图像)和/或车辆111的相关状况来生成。例如,期望的推理结果数据123可以包含车辆(例如,111)的组件的检查记录和/或服务记录。例如,检查记录和/或服务记录可以指示其在维护服务设施(例如,127)处服务期间检查的组件的磨损程度、故障或失灵组件的标识等。在与期望的推理结果数据123有关的时间段内获得的车辆(例如,111)的传感器数据121可以用于在服务器119处训练ANN 125,以提高ANN 125的推理能力。

更新的ANN 125可以在维护服务设施127处安装在车辆111中。可替代地,可以将更新的ANN 125传输到车辆111以在空中更新车辆111。

ANN 125的负责处理来自传感器122的输入的部分可以被配置在数据存储装置112中。数据存储装置112的推理引擎101处理来自传感器122的输入,以生成从数据存储装置112传输到ADAS 128的推理结果。基于来自传感器122的输入和/或对ADAS 128的推理结果,数据存储装置112的推理引擎101可以通过调整缓冲/高速缓存106、垃圾收集107、磨损均衡108等操作来生成推理结果以优化数据存储装置112在处理输入数据流103和输出数据流109时的性能。

图3示出了根据一个实施例的自主车辆111。例如,图2的系统中的车辆111可以使用图3的自主车辆111实施。

车辆111通常可以包含信息娱乐系统149、通信装置139、一或多个传感器122和连接到车辆111的一些控制的计算机系统131,所述一些控制如用于车辆111的方向的转向控制141、用于车辆111的停止的制动控制143、用于车辆111的速度的加速控制145等。在一些实施例中,图2的系统中的车辆111具有类似的配置和/或类似的组件。

图3的车辆111配置有高级驾驶员辅助系统(ADAS)128。车辆111的ADAS 128可以具有用于基于传感器122中生成的图像进行对象检测、识别、标识和/或分类的人工神经网络(ANN)125。可以在图1的数据存储装置112中实施ANN 125的一部分。

车辆111的计算机系统131可以包含一或多个处理器133、数据存储装置112和存储固件(或软件)147的存储器135,所述固件包含用于ADAS 128的计算机指令和数据模型。

车辆111的传感器122可以包含可见光相机、红外相机、激光雷达、雷达或声纳系统、外围传感器、全球定位系统(GPS)接收器、卫星定位系统接收器、制动器传感器和/或安全气囊传感器。进一步,车辆111的传感器122可以包含被配置成监测来自车辆111中的各个组件和位置的噪声的音频传感器(例如,麦克风)、被配置成测量车辆111的组件上的负荷的振动传感器、压力传感器、力传感器、应力传感器和/或变形传感器、测量车辆111的一些组件的运动的加速度计和/或陀螺仪传感器等。此类传感器可以用于监测组件的操作状态和/或健康状况,以进行预测性维护。

传感器122可以将实时传感器数据流提供到计算机系统131。车辆111的传感器122生成的传感器数据可以包含使用以下捕获对象的图像:使用人眼可见的光进行成像的相机或者使用红外光进行成像的相机或者声纳、雷达或激光雷达系统。优选地,图像由数据存储装置112的推理引擎101处理以生成推理结果作为数据存储装置112的输出数据流109并且因此减少主计算机系统131的计算工作负荷。

例如,相机可以用于针对车辆111的行进获得道路信息,所述道路信息可以由ANN125处理以生成用于车辆111的控制信号。例如,相机可以用于监测车辆111的组件的操作状态/健康状况,所述操作状态/健康状况可以由ANN 125处理以预测或调度维护服务。

车辆111的信息娱乐系统149可以用于呈现来自传感器122的数据和/或推理结果。例如,具有降低的分辨率和刷新频率的压缩图像可以在传感器122中生成并且传输到信息娱乐系统149以用于呈现给车辆111的乘员。任选地,通信装置139可以建立到车辆111的乘员的移动装置的连接以进行呈现。

当车辆111配置有ADAS 128时,ADAS 128的输出可以在自主驾驶期间用于控制(例如,141、143、145)车辆111的加速度、车辆111的速度和/或车辆111的方向。

图4-6展示了根据一些实施例的用于预测的人工神经网络125的训练。

在图4中,监督式机器学习模块171用于训练人工神经网络125,以最小化从传感器数据121生成的预测129与期望的推理结果数据123之间的差异。

例如,传感器数据121可以包含示出对象的图像;并且期望/预期的推理结果数据123可以标识对象所占据的图像区域、对象的特征、对象的分类、对象的身份等。

例如,传感器数据121可以包含车辆111周围的图像;并且期望/预期的推理结果数据123可以包含用于转向控制141、制动控制143和加速控制145的优选控制输入。

期望/预期的推理结果数据123可以由人类操作者生成。例如,传感器数据121可以用于构造车辆111遇到的情况的虚拟现实演示,所述虚拟现实演示包含来自传感器122的示出车辆111的环境的图像;并且期望/预期的推理结果数据123可以包含人类操作者响应于情况的虚拟现实演示而生成的响应。

监督式机器学习模块171可以调整人工神经网络125以减小/最小化基于传感器数据121生成的预测129与由人类操作者生成的期望/预期的推理结果数据123之间的差异。

可以基于车辆群体的传感器数据和对应的期望/预期的推理结果数据123将图4的监督式学习171应用于服务器119中,以生成用于车辆群体的通用ANN。

可以基于车辆的传感器数据和推理结果数据123将图4的监督式学习171应用于车辆111中,以生成定制/个性化的ANN 125。例如,可以在车辆111中最初使用通用ANN125;并且车辆111的传感器数据和特定于车辆111的期望/预期的推理结果数据123可以用于进一步训练车辆的ANN 125,以用于车辆111中的ANN 125的定制/个性化。

在图5中,非监督式机器学习模块175用于训练或改进人工神经网络125以促进异常检测173。非监督式机器学习模块175被配置成调整ANN(例如,SNN)以生成传感器数据121中的正常分类、聚类或所识别模式,使得与传感器数据121中的正常分类、聚类或所识别模式的偏离程度可以用于发信号通知异常检测173。

例如,异常检测173可以用于保存与异常相关联的传感器数据121以用于进一步分析。响应于车辆111中的异常检测173,计算机系统131可以向传感器122发出读取命令,以从传感器122检索与异常相关联的图像数据并且将检索到的图像数据存储在数据存储装置112中。在不影响ADAS 128的正常操作的情况下,可以使用传感器122与数据存储装置112之间的可用通信带宽在一段时间内将与异常相关联的图像数据临时保存在传感器122的存储器装置中并且加载到数据存储装置112。

当车辆111在维护服务设施127中时,可以从数据存储装置112中检索与异常相关联的图像数据(和其它传感器数据),以生成期望/预期的推理结果数据123,以用于使用图4的监督式学习171对ANN 125进行进一步训练。

任选地,监督式机器学习171可以用于训练ANN 125,如图6中所展示的。监督式学习171可以用于最小化根据传感器数据121使用ANN 125作出的预测179与预期分类177之间的分类差异。

例如,在不存在事故、接近事故事件或指示异常状况的用户输入的情况下,可以假设分类为“正常”。事故、近事故事件或用户输入可以用于标识导致事故、事件或用户输入的针对传感器数据“异常”的预期分类。监督式机器学习171可以用于训练人工神经网络125以利用与预期分类177相比减小/最小化的差异来进行分类179。

任选地,数据存储装置112的推理引擎101可以被配置成加速在数据存储装置112中实施的人工神经网络(ANN)125的一部分的计算。

例如,推理引擎101可以包含神经网络加速器159,所述神经网络加速器专门用于执行涉及人工神经网络(ANN)125的计算的至少一部分,如向量和张量的点积、乘法和累加运算等。

图7示出了根据一个实施例的具有神经网络加速器159的数据存储装置112。例如,图7的数据存储装置112可以在图2或3所展示的车辆111中使用。

在图7中,数据存储装置112具有被配置成与主机处理器(例如,图3中的133)通信的主机接口157。例如,主机处理器(例如,133)与主机接口157之间的通信可以至少部分地根据外围组件互连快速(PCIe)总线、串行高级技术附件(SATA)总线、通用串行总线(USB)和/或存储区域网络(SAN)的通信协议。

例如,主机计算机系统131可以与主机接口157通信,以从含有由车辆111的传感器122生成的传感器数据的输入数据流103中检索由数据存储装置112生成的推理结果。

例如,主机接口157可以用于从传感器122接收车辆111的传感器数据121;并且传感器数据121可以任选地存储在数据存储装置112中,以用于对后续的事故或接近事故事件进行分析。

在图7中,存储器组件161到163中的每个存储器组件可以是被配置成存储数据的存储器集成电路。

神经网络加速器159和控制器151可以通过堆叠在存储器组件161到163的集成电路管芯上的一或多个集成电路管芯上形成的逻辑电路来实施。神经网络加速器159和控制器151的一或多个集成电路管芯与存储器组件161到163的集成电路管芯之间的穿透硅通孔可以用于提供高通信带宽以用于处理存储在存储器组件161到163中的数据以生成推理结果。推理结果可以存储在控制器151的本地存储器153和/或存储器组件161到163中的一些存储器组件中,以供主机系统如车辆111的计算机系统131检索。例如,不同的存储器组件161到163或存储器组件(例如,161或163)的不同部分可以使用穿透硅通孔来促进对神经网络加速器159和控制器151的不同部分的并行存取。

一些存储器集成电路通常是易失性的并且需要电力来维持存储的数据;并且一些存储器集成电路是非易失性的并且即使不供电时也可以保留存储的数据。存储器组件161到163可以包含易失性存储器和/或非易失性存储器。存储器组件161到163可以实施不同类型的存储器或相同类型的存储器。

非易失性存储器的实例包含闪速存储器、基于与非(NAND)逻辑门、或非(NOR)逻辑门形成的存储器单元、相变存储器(PCM)、磁存储器(MRAM)、电阻式随机存取存储器、交叉点存储和存储器装置。交叉点存储器装置可以使用无晶体管存储器元件,所述无晶体管存储器元件中的每个无晶体管存储器元件具有一起堆叠成列的存储器晶胞和选择器。存储器元件列通过在垂直方向上运行的两层导线连接,其中在层中在一个方向上运行的一层的导线定位于存储器元件列上方,另一层的导线处于另一个方向上并且在层中定位于存储器元件列下方。可以在所述两个层中的每个层上的一根导线的交叉点处单独选择每个存储器元件。交叉点存储器装置是快速且非易失性的并且可以用作用于处理和存储的统一存储器池。非易失性存储器的另外实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。

数据存储装置112可以具有控制器151,所述控制器包含易失性本地存储器153和至少一个处理装置155。

控制器151的本地存储器可以是嵌入式存储器,所述嵌入式存储器被配置成存储用于执行控制处理装置155的操作(包含处理数据存储装置112与车辆111的一或多个处理器(例如,133)之间的通信)的各种过程、操作、逻辑流和例程以及本文描述的其它功能的指令。任选地,控制器151的本地存储器153可以包含用于存储微代码的只读存储器(ROM)和/或存储例如存储器指针、获取的数据等的存储器寄存器和/或如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)等易失性存储器。

在图7中,数据存储装置112包含耦接到控制器151和/或存储器组件161到163的神经网络加速器159。

例如,神经网络加速器159可以被配置成比控制器151的处理装置155更高效地执行矩阵算术计算。涉及ANN 125的计算具有矩阵乘法和累加运算,所述矩阵乘法和累加运算对于通用处理器(例如,133、155)来说可以是计算密集型的。使用神经网络加速器159来执行矩阵算术计算可以减少要传输到车辆111的一或多个处理器133的数据并且减少一或多个处理器133、155的计算工作负荷。

当ANN 125包含尖峰神经网络(SNN)时,对于通用处理器(例如,133、155)来说,模拟用于控制SNN神经元的激活水平的一或多个微分方程可以是计算密集型的。任选地,神经网络加速器159可以使用特殊的硬件来模拟一或多个微分方程并且因此提高实施SNN时的计算效率。

在一些实施方案中,神经网络加速器159是与控制器151和/或存储器组件161到163分离的集成电路装置。可替代地或组合地,神经网络加速器159与控制器151集成在集成电路管芯中。可替代地或组合地,如图8所展示的,神经网络加速器159的一部分可以集成在存储器组件161到163中的至少一个存储器组件的一或多个集成电路管芯上。

图8示出了根据一个实施例的用于加速神经网络计算的存储器组件160。例如,图7中的存储器组件161到163中的每个存储器组件或一些存储器组件可以使用图8的存储器组件160实施。

在图8中,存储器组件160可以形成于集成电路管芯上。存储器组件160的输入/输出(I/O)接口169被配置成处理存储器组件160的输入/输出信号。例如,输入/输出信号可以包含用于指定媒体单元165中的位置的地址信号和表示要在通过地址信号指定的位置处写入媒体单元165中的数据或从媒体单元165中的位置中检索到的数据的数据信号。

在图8中,神经网络加速器159与控制逻辑167和/或媒体单元165耦接,以执行用于在评估ANN 125的一部分的输出时和/或训练ANN 125时使用的计算。

例如,输入/输出接口169可以接收标识存储在媒体单元中并且要通过神经网络加速器159对其进行操作的矩阵的地址。存储器组件160可以响应于地址而提供神经网络加速器159的计算结果作为输出数据、将输出数据存储在缓冲器中以用于进一步操作、将输出数据存储在媒体单元165中的通过地址信号指定的位置中。因此,由神经网络加速器159执行的计算可以在存储器组件160内,所述存储器组件靠近矩阵数据所存储于的媒体单元165。

例如,可以根据预定模式将SNN神经元的状态数据存储在媒体单元165中。神经网络加速器159可以根据用于控制SNN神经元随时间推移的激活水平的一或多个微分方程自动更新SNN神经元的状态。任选地,神经网络加速器159被配置成处理神经网络中的神经元的尖峰化。可替代地,数据存储装置112的神经网络加速器159和/或一或多个处理器133可以被配置成处理神经元的尖峰化和/或到SNN的输入的累加。

例如,传感器122以预定频率生成传感器数据(例如,图像)。每个图像以循环方式存储在存储器组件161到163中,其中最新图像覆写最旧图像。存储器组件161到163进一步存储车辆111的ANN 125的负责处理来自传感器122的图像的部分。控制器151根据ANN 125的所述部分来处理存储器组件161到163中的图像,以生成推理结果。推理结果存储在存储器组件161到163中和/或控制器151的本地存储器153中,以供如车辆111的计算机系统131等主机系统读取。

例如,数据存储装置112从配置在车辆111上的至少一个传感器122接收传感器数据流并且根据ANN 125的存储在存储器组件161到163中的所述部分基于传感器数据流来生成推理结果。数据存储装置112内配置的神经网络加速器159基于人工神经网络125和传感器数据流来执行至少一部分计算。

任选地,可以将神经网络加速器159配置在与控制器151分离和/或与存储器组件161到163分离的集成电路管芯上。

任选地,神经网络加速器159可以配置在包含数据存储装置112的控制器151或数据存储装置112的存储器组件160、161或163的集成电路管芯上。

神经网络加速器159可以被配置成使用存储在数据存储装置112中的数据来执行计算,如ANN的矩阵算术计算和/或SNN的微分方程模拟。

矩阵算术计算的实例包含矩阵乘法和累加运算。在用于使用存储在数据存储装置112中的数据生成矩阵算术计算的结果的计算之后,神经网络加速器159可以提供结果作为数据检索操作中数据存储装置112的输出(例如,响应于读取命令)。可替代地或组合地,矩阵算术计算的结果可以作为下一个矩阵计算的操作数在数据存储装置112中进行缓冲,所述下一个矩阵计算与通过主机接口157中接收到的读取命令从非易失性存储器中检索到的数据矩阵组合地执行。

当人工神经网络(ANN)125包含尖峰神经网络(SNN)时,神经网络加速器159可以被配置成模拟控制尖峰神经网络(SNN)中的神经元的激活水平的微分方程。任选地,存储器组件160被配置成根据预定模式将神经元的状态存储在尖峰神经网络中;并且神经网络加速器被配置成根据微分方程随时间推移自动更新神经元的状态。例如,神经网络加速器159可以被配置成通过非监督式机器学习来训练尖峰神经网络(SNN)以检测异常。

由神经网络加速器159根据人工神经网络(ANN)125执行的计算涉及具有数据存储装置112的不同使用模式的不同类型的数据。

例如,使用人工神经网络(ANN)125进行预测包含使用指定人工神经网络(ANN)125的模型的数据、提供到人工神经元的输入数据和由人工神经元生成的输出数据。

对于不同类型的ANN相关数据,数据存储装置112的存储器容量可以被划分为不同的部分。不同部分可以被单独地配置成优化对应数据根据其使用模式由神经网络加速器159和/或数据存储装置112所配置于的计算机系统131的一或多个处理器133进行的存取和存储。

人工神经网络(ANN)125的模型可以包含指定ANN 125中的单独人工神经元的静态属性和ANN 125中的神经元连通性的参数。ANN 125的模型数据是静态的并且在使用ANN125进行预测计算期间不改变。因此,主要读取模型数据的使用模式。然而,当安装更新的ANN 125时,ANN 125的模型数据可以改变。例如,车辆111可以从服务器119将更新的ANN125下载到车辆111的数据存储装置112以更新其预测能力。在使用机器学习技术(例如,171或175)训练ANN 125期间或之后,ANN 125的模型数据也可以改变。优选的是将数据存储装置112的存储器单独分区或区域配置成存储模型数据,其中根据针对模型数据的具体使用模式(例如,主要读取、不频繁更新)优化存储器单元的配置参数来操作所述分区或区域。例如,当使用基于NAND逻辑门的闪速存储器实施存储器单元时,ANN模型分区/区域中的存储器单元可以被配置成在多级晶胞(MLC)模式、三级晶胞(TLC)模式或四级晶胞(QLC)模式下操作,其中每个存储器晶胞存储两个位、三个位或四个位以提高存储能力。

提供到ANN 125中的人工神经元的输入数据可以包含外部输入和内部输入。外部输入通常由车辆111的传感器(例如,122)而不是由ANN 125中的人工神经元生成。可以以循环方式保存外部输入,使得可以在数据存储装置112中找到预定驱动长度的最近时间段的输入数据。因此,优选地的是将数据存储装置112的单独存储器分区或区域配置成存储外部输入数据,其中,根据针对外部输入数据的存储模式优化存储器单元(例如,增强循环覆写的耐久性)的配置参数来操作所述分区或区域。例如,当使用基于NAND逻辑门的闪速存储器实施存储器单元时,ANN输入分区/区域中的存储器单元可以被配置成在单级晶胞(SLC)模式下操作,其中每个存储器晶胞存储一位数据,以提高循环覆写操作的耐久性。

在一些实施方案中,人工神经元可以具有状态变量,所述状态变量响应于预测计算期间的输入随时间推移改变。例如,尖峰神经元的激活水平可以随时间推移改变并且被视为尖峰神经元的动态状态变量。在一些实施方案中,人工神经元的此类状态变量数据具有与外部输入数据类似的存储使用模式;并且因此,状态变量数据可以存储在被配置成用于外部输入数据的分区或区域中。在其它实施方案中,人工神经元的状态变量数据保存在缓冲器中并且不如外部输入那么频繁地存储;并且因此,可以将另一个分区/区域配置成用于存储人工神经元的动态状态变量数据。

可以缓冲由ANN 125中的人工神经元生成的输出数据以供神经网络加速器159和/或计算机系统131的一或多个处理器133进一步存取。输出数据可以包含外部输出和内部输出。外部输入由人工神经元生成,作为来自ANN 125的输出,如由ANN 125进行的分类或预测的结果。ANN 125的输出通常由计算机系统131的一或多个处理器133进一步处理。可以周期性地(例如,以类似于存储状态变量数据的方式)保存外部输入。内部输出和/或外部输出中的一些外部输出可以是到ANN 125中的人工神经元的内部输入。通常,可能没有必要将内部输出从数据存储装置的缓冲器存储到存储器组件。在一些实施方案中,当数据存储装置112的缓冲器容量不足以容纳全部状态变量数据和/或内部输出时,数据存储装置112可以使用交换分区/区域来扩展缓冲器的容量。可以对交换分区/区域进行配置,以优化随机存取并提高耐久性。

神经元的外部输出和/或动态状态可以以循环方式保存在单独的输出分区或区域中,使得可以周期性地存储神经元的外部输出数据和/或动态状态,并且可以在数据存储装置112中找到最新的一组外部输出和/或动态状态。可以选择性地存储神经元的外部输出和/或动态状态,因为此类数据中的一些数据可以由ANN从存储在输入分区或区域中的外部输入重新生成。优选地,输出分区或区域被配置成存储不能从存储在输入分区或区域中的外部输入产生的一或多组外部输出和/或动态状态。在以循环方式将数据存储在输入/输出分区或区域中时,擦除最早存储的数据集,以便为最新数据集腾出空间。可以对ANN输入/输出分区/区域进行配置,以优化用于将数据从数据存储装置的缓冲器复制到数据存储装置的存储器组件中的存储器单元中的顺序写入流。

图9示出了根据一个实施例的被配置成支持神经网络计算的存储器容量181。例如,图7的数据存储装置112的存储器组件161到163的存储器容量181可以根据图9被配置成支持神经网络计算。

图9的存储器容量181可以使用数据存储装置112的一组存储器组件(例如,161到163)实施。

可以在数据存储装置112的存储器容量181上产生一组区域183、185、187、…。区域(例如,183、185或187)中的每个区域对应于存储器容量181的命名部分。在每个区域内定义逻辑地址。地址映射191被配置成在区域183、185、187、…中定义的逻辑地址到存储器组件(例如,图7所展示的161到163)中的存储器单元的物理地址之间进行映射。

地址映射191可以包含区域183、185和187的区域优化设置192。

例如,ANN模型区域183可以是被配置成用于人工神经网络(ANN)125的模型数据的存储器/存储分区。区域优化设置192根据ANN模型的数据使用模式(例如,以主要读取、不频繁更新为中心)来优化ANN模型区域183中的存储器操作。

例如,神经元输入区域185可以是被配置成用于到人工神经网络(ANN)125的外部输入数据的存储器/存储分区。区域优化设置192根据外部输入数据的数据使用模式来优化神经元输入区域185中的存储器操作(例如,以增强耐久性,从而支持连续输入数据流的循环覆写以进行顺序写入)。

例如,神经元输出区域187可以是被配置成用于从人工神经网络(ANN)125提供的外部输出数据的存储器/存储分区。区域优化设置192根据外部输出数据的数据使用模式来优化神经元输出区域187中的存储器操作(例如,提高耐久性,以用于利用随机读取/写入存取周期性地覆写数据)。

数据存储装置112包含被配置成存储人工神经网络(ANN)125的临时/中间数据如ANN 125中的人工神经元的内部输入/输出的缓冲器。

任选地,可以在存储器容量181中配置交换区域以扩展缓冲器152的容量。

任选地,地址映射191包含主机接口157中接收的逻辑存储器地址之间的用于对人工神经元的数据和人工神经元的身份进行存取的映射。因此,用于对一个区域中的人工神经元的一种类型的数据进行存取的读取或写入命令可以使控制器151对另一个区域中的人工神经元的另一种类型的数据进行存取。

例如,响应于用于将神经元的外部输入数据写入到数据存储装置112的存储器容量181中的请求,地址映射191可以用于计算ANN模型区域183中的神经元的模型参数的地址并将模型参数读取到缓冲器152中,以允许神经网络加速器159执行神经元的输出的计算。神经元的输出可以作为到其它神经元的内部输入保存在缓冲器152中(例如,以减少写入放大)。进一步,还可以从ANN模型区域183将连接到神经元的其它神经元的身份检索到缓冲器152中,这允许神经网络加速器159和/或处理器进一步处理ANN 125中的输出的传播。从ANN模型区域183中检索模型数据可以与将外部输入数据存储到神经元输入区域185中并行地执行。因此,车辆111的计算机系统131的处理器133不必显式地发送用于从ANN模型区域183中检索模型数据的读取命令。

类似地,响应于读取神经元的输出数据,地址映射191可以用于计算存储在ANN模型区域183中的神经元的模型参数的地址并且将模型参数读取到缓冲器152中,以允许神经网络加速器159将缓冲器152中的内部输入应用于执行神经元的输出的计算。可以提供计算出的输出作为对神经元的输出数据的读取的响应,而数据存储装置112不必将输出数据存储在存储器组件(例如,161到163)中。因此,处理器133和/或神经网络加速器159可以通过将输入写入神经元和/或从神经元读取输出来控制神经元的计算。

通常,传入到ANN 125的外部输入数据可以是直接由传感器(例如,122)生成而无需处理器133和/或神经网络加速器159处理的原始传感器数据121。可替代地,可以提供已由处理器133根据来自传感器122的信号针对ANN 125进行处理的间接传感器数据121作为外部输入数据。传入的外部输入数据可以接受在主机接口157中并且以循环方式写入到神经元输入区域185中并且自动缓冲在缓冲器152中,以供神经网络加速器159使用存储在ANN模型区域183中的模型生成神经元输出。由神经网络加速器159生成的输出可以进一步缓冲为内部输入,以用于模型在ANN模型区域183中的进一步应用。当外部输出变得可用时,数据存储装置112可以以外部输出的可用性的指示报告写入请求的完成。任选地,控制器151和/或神经网络加速器159可以生成内部读取命令,以在生成外部输出时在ANN 125中传播信号。可替代地,主机处理器133可以通过选择性地读取神经元的输出来控制信号在ANN 125中的传播;并且数据存储装置112可以主动地缓冲缓冲器152中可能需要的数据以加速ANN计算。

图10展示了根据一个实施例的用于人工神经网络(ANN)模型的存储器区域183的配置。例如,可以利用图9的逻辑存储器容量181在图7的数据存储装置112中实施图10的配置。例如,图10的设置193可以是图9的区域优化设置192的一部分。

图10的配置将ANN模型区域183映射到至少一个存储器组件A 161。优选地,可以由控制器151使用与托管ANN数据的其它区域(例如,185和187)的存储器组件(例如,163)并行的所述至少一个存储器组件A 161。例如,存储器组件A 161可以在与其它区域(例如,185和187)的集成电路封装分离的集成电路封装中。可替代地,存储器组件161到163形成在嵌入同一集成电路封装中的单独集成电路管芯上。可替代地,存储器组件161到163可以在集成电路管芯的单独的区域上形成,其中可以基本上并行地操作单独的区域(例如,用于读取、用于擦除和/或用于写入)。

在图10中,设置193针对使用模式主要读取和不频繁更新进行了优化。

图11展示了根据一个实施例的用于到人工神经元的输入的区域185的配置。例如,图11的配置可以在图7和/或9所展示的数据存储装置112中实施。例如,图11的设置195可以是图9的区域优化设置192的一部分。

图11的配置将神经元输入区域185映射到至少一个存储器组件B 163。优选地,可以由控制器151使用与托管ANN数据的其它区域(例如,183和187)的存储器组件(例如,161)并行的所述至少一个存储器组件B 163。例如,存储器组件B 163可以在与其它区域(例如,183和187)的集成电路封装分离的集成电路封装中。可替代地,存储器组件161到163形成在嵌入同一集成电路封装中的单独集成电路管芯上。可替代地,存储器组件161到163可以在集成电路管芯的单独的区域上形成,其中可以基本上并行地操作单独的区域(例如,用于读取、用于擦除和/或用于写入)。

在图11中,设置195针对记录以固定时间间隔采样的连续输入数据流时的循环顺序覆写时具有增强的耐久性的使用模式进行了优化。

图12展示了根据一个实施例的用于来自人工神经元的输出的区域187的配置。例如,图12的配置可以在图7和/或9所展示的数据存储装置112中实施。例如,图12的设置197可以是图9的区域优化设置192的一部分。

图12的配置将神经元输出区域187映射到至少一个存储器组件C 162。优选地,可以由控制器151使用与托管ANN数据的其它区域(例如,183和185)的存储器组件(例如,161和163)并行的所述至少一个存储器组件C 162。例如,存储器组件C 162可以在与其它区域(例如,183和185)的集成电路封装分离的集成电路封装中。可替代地,存储器组件161到163形成在嵌入同一集成电路封装中的单独集成电路管芯上。可替代地,存储器组件161到163可以在集成电路管芯的单独的区域上形成,其中可以基本上并行地操作单独的区域(例如,用于读取、用于擦除和/或用于写入)。

在图12中,设置197针对缓冲的数据的使用模式进行了优化,以利用随机存取进行周期性覆写。例如,存储器单元通过优化设置193到197被配置成以高于ANN模型区域183中的频率但低于神经元输入区域185中的频率的频率在神经元输出区域187中更新/覆写。

通信协议/接口可以被配置成允许数据存储装置在运行中执行神经网络加速,同时减少到主机系统的数据流量。

例如,车辆111的主机处理器(例如,133)可以向数据存储装置112提供写入命令,以将人工神经网络的模型存储在模型分区(例如,183)中。

为了在分类和/或预测中使用ANN模型,车辆111的主机处理器(例如,133)可以任选地将ANN 125的输入数据流式传输到神经元输入分区(例如,185)中。存储装置112的神经网络加速器159可以根据地址映射191将来自传感器122的图像以及来自主机处理器133的输入数据(如果有的话)自动应用于存储在ANN模型分区(例如,183)中的模型。数据存储装置112使计算出的输出可用于在ANN 125中传播。优选地,计算出的输出通过缓冲器152可用于神经网络加速器159,而无需将中间输出存储到存储器组件(例如,161到163)中。因此,可以减少主机处理器(例如,133)与数据存储装置112之间的用于神经元输出的输送的数据通信。当输出已经传播到ANN 125中的输出神经元时,数据存储装置112可以提供对来自主机处理器(例如,133)的请求的响应。响应指示来自ANN 125中的神经元的外部输出可用。作为响应,车辆111的主机处理器(例如,133)可以任选地发出读取命令以检索外部输出以进行进一步处理。

图13示出了根据一个实施例的自主车辆111与数据存储装置112之间的通信。例如,如图13中所展示的通信可以利用图1或7中所展示的数据存储装置112在图2或3的车辆111中实施。

在图13中,主机系统的一或多个处理器133可以配置有简化的一组指令201以执行神经网络计算,因为涉及ANN 125的计算中的一些计算是由数据存储装置112内的神经网络加速器159执行的。在使用ANN 125进行预测和/或分类期间,没有必要将模型数据传输回一或多个处理器133。

传感器122可以生成连续的输入流205,作为车辆111的传感器数据121的一部分。可以以固定的预定时间间隔(例如,在车辆111的操作期间)生成输入流205中的传感器数据121。

输入流205被应用于ANN 125中的输入神经元。ANN 125中的输入神经元被配置成接受到ANN 125的外部输入;并且输出神经元被配置成提供来自ANN 125的外部输出。

一或多个处理器133可以执行指令201以处理来自数据存储装置112的输出数据207和传感器数据121中的一些传感器数据。

例如,一或多个处理器133可以将传感器数据121作为输入流205的一部分写入神经元输入区域185中并且从神经元输出区域187读取由神经网络加速器159使用模型区域183中的ANN数据生成的输出数据207。

数据存储装置112以循环方式将输入流205存储到神经元输入区域185中,其中与针对当前存储在神经元输入区域185中的数据集进行数据采样的最早时间个例相对应的最早输入组被擦除以存储最新的输入组。

对于每个输入数据集,神经网络加速器159应用存储在ANN模型区域183中的ANN125的模型。神经网络加速器159(或一或多个处理器133)可以控制信号在神经网络内的传播。当ANN 125的输出神经元响应于输入数据集生成其输出时,数据存储装置112可以向处理器133提供对神经元输出准备好用于检索的指示。可以响应于来自一或多个处理器133的请求将指示配置成将输入数据集写入到神经元输入区域185中。一或多个处理器133可以任选地检索输出数据207(例如,根据指令中编程的条件和/或标准)。

在一些实施例中,在数据存储装置112中配置触发参数。当外部输出217中的输出参数满足由触发参数指定的要求时,数据存储装置提供对来自一或多个处理器133的请求的响应,以将输入数据集写入到神经元输入区域185中。

图14示出了根据一个实施例的数据存储装置112内的通信。例如,图14的通信可以在图1或7所展示的数据存储装置112中实施。

在图14中,模型区域183存储ANN 125的模型213。响应于从缓冲器152中的输入流205在时间个例内接收一组外部输入215,与检索含有ANN模型213的与输入神经元的参数和/或连接到输入神经元的神经元的身份相对应的部分的神经元模型212并行地,数据存储装置112可以将外部输入215写入到输入区域185中。缓冲器152允许神经网络加速器159组合神经元模型212和外部输入225以生成输入神经元的输出227。

神经元输出227通常可以包含用于在ANN 125内进一步传播的作为内部输出216的部分和/或作为一或多个处理器133的外部输出217的部分。

内部输出216作为内部输入216存储在缓冲器152中,以用于以类似于从外部输入215生成神经元输出227的方式在ANN 125中进一步传播。例如,内部输入216的一部分可以使控制器151和/或神经网络加速器159检索与内部输入有关的对应神经元模型212,使得内部输入在神经网络加速器159中应用于对应的神经元模型212以生成其神经元输出227。

当完整的一组外部输出217在缓冲器152中可用时,可以将外部输出217存储到输出区域187中。

任选地,存储装置112不存储与在时间个例时采样的一组存储的外部输入215相对应的每组外部输出217。例如,存储装置112可以被配置成每当已经计数了预定数量组的外部输入(例如,215)时存储一组外部输出217。可替代地或组合地,一或多个处理器133可以确定是否存储外部输出217。例如,存储装置112可以被配置成响应于一或多个处理器133检索外部输出217以进行进一步处理而存储外部输出217。例如,存储装置112可以被配置成在一或多个处理器133中对外部输出217进行处理之后响应于来自一或多个处理器133的写入命令而存储外部输出217。

图15示出了根据一个实施例的被配置成优化电力使用的数据存储装置112。例如,图15的数据存储装置可以使用图1或7的数据存储装置112的技术在图2或3中所展示的车辆111中实施。

在图15中,数据存储装置112包含温度传感器102、高速缓存存储器231、操作队列110、神经网络加速器159和存储在存储组件161到163中的ANN模型213。

控制器151被配置成根据ANN模型213使用神经网络加速器159来进行预测,以优化高速缓存存储器231的操作以及数据存储装置112在下一时间段内的性能,而不会将由温度传感器102测量的温度升高到阈值以上。

在操作队列110中标识要由数据存储装置112在下一时间段内执行的操作中的一些操作。可以基于数据存储装置112和/或数据存储装置112所配置于的车辆111的操作参数233使用ANN模型213预测下一时间段内要执行的其它操作。

下一时间段内要执行的操作可以包含后台维护操作。延迟后台维护操作可以减少数据存储装置112中的热生成。然而,不执行后台维护操作可能会降低数据存储装置112的性能和/或增加用于执行队列110中指定的相同量的操作的热生成。

数据存储装置112可以使用ANN模型213通过预测数据存储装置112的温度作为实施高速缓存存储器的配置和用于执行队列110中的操作和/或后台维护操作的操作时间表的结果来确定优化的操作时间表235。数据存储装置112可以改变对高速缓存配置的选择和操作时间表,以搜索允许在不将预测的温度升高到阈值以上的情况下在下一时间段内执行最大量的操作的解决方案。

例如,高速缓存存储器231可以用于高速缓存存储在存储器组件161到163中并且随后可以由神经网络加速器159和/或连接到数据存储装置112的一或多个处理器133使用的数据。例如,高速缓存存储器231可以用于提供图12-14所展示的缓冲器或高速缓存的功能。

数据存储装置112的控制器151可以使用存储在存储器组件161到163中的ANN模型213根据由神经网络加速器159预测的操作时间表235的定时来运行后台维护过程209。

存储在存储器组件161到163中的ANN模型213被配置成优化数据存储装置112在处理队列110中的操作和/或针对输入/输出数据流103和109指定的传入操作时的性能。

ANN模型213被配置成预测数据存储装置112在根据操作时间表235执行操作时的温度。操作时间表235可以指定对执行不同类型的操作的序列(例如,读取、写入、擦除、磨损均衡、垃圾收集)的定时。任选地,操作时间表235可以包含指定用于促进热耗散的空闲循环和/或以减少的时钟执行操作。操作时间表235可以被构造成容纳队列110中的操作和/或预测要由主机系统(例如,车辆111中的计算机系统131的一或多个处理器133)请求的操作。可以使用ANN模型213和车辆111和/或数据存储装置112的操作参数233执行预测。

在针对由操作参数233与队列110的状态的不同组合表示的各种操作状况优化的标识操作时间表235之后,可以进一步训练ANN模型213以直接预测优化的操作时间表235,而无需通过预测用于各种操作时间表235的温度237来搜索优化的操作时间表235。

通常,可以通过操作参数233标识数据存储装置112的操作状况。操作参数233可以包含队列111中的操作的状态和统计信息。进一步,车辆111的操作参数233可以包含车辆111的环境温度、车辆111的速度、车辆111的位置、车辆111在行进的道路、来自车辆111的传感器122中的一些传感器的输入、基于来自传感器122中的一些传感器的输入生成的推理结果、车辆控制(例如,141、143、145)的状态、车辆111的组件如车辆111的信息娱乐系统149和/或通信装置139的状态。车辆111的操作参数233可以包含高级驾驶员辅助系统(ADAS)128和/或在车辆111中运行的其它应用/组件的状态和操作。

例如,数据存储装置112的操作参数233可以包含如由温度传感器102测量的当前温度、用于主机接口中接收的读取命令和写入命令的队列的大小、在生成推理结果时执行ANN模型213的状态或里程碑等。

数据存储装置112的控制器151可以提供指示数据存储装置112中的数据存取模式的操作参数233。

操作参数233的实例可以包含数据存储装置112的操作参数,如神经网络加速器159的状态和操作、在数据存储装置112中排队以供执行的命令、数据存储装置112中要执行和/或在执行的后台操作的状态等。

操作参数233的实例可以包含从输入数据流103生成和/或在输出数据流109中提供的推理结果。

操作参数233的实例可以包含从数据存储装置112的主机系统接收在输入数据流103中的操作参数,如车辆111的速度、车辆111的位置、车辆111在行进的道路114的标识、车辆控制(例如,141、143、145)的状态,车辆111的组件如车辆111的信息娱乐系统149和/或通信装置139的操作状态、高级驾驶员辅助系统(ADAS)128和/或在车辆111中运行的其它应用/组件的操作状态。

图16示出了根据一个实施例的用于控制数据存储装置的温度的方法。例如,图16的方法可以结合图2或3的车辆111中的图3的计算机系统131或ADAS 128在图1、7、13或15的数据存储装置112中实施。

在框251处,配置在数据存储装置112中的温度传感器102测量数据存储装置112的温度。

在框253处,数据存储装置112的控制器151确定标识数据存储装置112的操作状况的一组操作参数233。

在框255处,通过在数据存储装置112的温度不超过阈值的情况下在一段时间内优化数据存储装置112的性能,数据存储装置的神经网络加速器159使用数据存储装置112中的人工神经网络125并且基于所述一组操作参数233来确定所述一段时间内的操作时间表235。

例如,人工神经网络125包含尖峰神经网络;并且神经网络加速器125被配置成比控制器151更高效地执行矩阵算术计算。

在框257处,在所述一段时间期间,数据存储装置112根据操作时间表235执行操作。

例如,操作时间表235标识在所述一段时间内要在数据存储装置中执行的不同类型的操作的模式。不同类型的操作可以包含后台维护操作,如垃圾收集和/或磨损均衡。不同类型的操作可以进一步包含读取操作、写入操作或擦除操作或其任何组合。进一步,不同类型的操作可以包含由神经网络加速器159根据到数据存储装置112的输入数据流103执行的用于从数据存储装置112生成输出数据流109的操作。

例如,输入数据流103可以包含来自自主车辆111的一或多个传感器的传感器数据;并且输出数据流109可以包含由神经网络加速器159从自主车辆111的传感器数据生成的推理结果。

例如,操作参数可以包含自主车辆的环境温度、自主车辆的速度、自主车辆的位置、来自配置在自主车辆上的传感器的输入、车辆控制的状态、自主车辆的信息娱乐系统的状态或自主车辆的高级驾驶员辅助系统的状态或其任何组合。

例如,操作时间表可以标识所述一段时间内的调度的空闲时间,以促进数据存储装置112的冷却,并且因此避免由温度传感器测量的温度超过阈值。

ANN 125可以用于基于操作参数233来预测不同类型的操作的至少一部分。

例如,数据存储装置可以从多个候选时间表中选择操作时间表235以优化数据存储装置112的性能而不使数据存储装置112的温度超过阈值。

例如,数据存储装置可以通过以下来搜索操作时间表235以优化数据存储装置的性能:生成用于控制数据存储装置的操作的不同候选操作时间表;根据不同操作时间表预测数据存储装置在执行操作时的温度;以及基于操作时间表的性能水平和操作时间表的预测的温度从不同操作时间表中选择操作时间表。

任选地,数据存储装置可以训练人工神经网络125以直接基于所述一组操作参数233来预测操作时间表235。例如,数据存储装置可以被配置成生成训练数据并且训练人工神经网络125以生成操作时间表。

例如,在训练时期期间,数据存储装置112可以生成不同的操作时间表并且根据不同的操作时间表执行操作,以选择不使温度传感器102的测量结果超过阈值的操作时间表。可以通过数据存储装置112来测量将数据存储装置112的温度保持在阈值以下的操作时间表的平均性能(例如,在预定长度的时期内接收的命令的平均等待时间的形式)。在训练时期中生成的训练数据可以用于训练ANN 125以针对由操作参数233表示的操作状况预测优化的操作时间表。

例如,由不同组的操作参数233表示的不同操作状况可以通过ANN 125组织成集群。随后,可以将一组操作参数233分类为集群之一;并且可以由ANN 125针对含有所述一组操作参数233的集群预测优化的操作时间表235。

服务器119、计算机系统131和/或数据存储装置112可以各自被实施为一或多个数据处理系统。

本公开包含:方法和执行上文描述的方法的设备,所述设备包含执行这些方法的数据处理系统;以及含有指令的计算机可读媒体,所述指令当在数据处理系统上执行时使系统执行这些方法。

典型的数据处理系统可以包含互连(例如,总线和系统核心逻辑),所述互连将一或多个微处理器和存储器互连。微处理器通常耦接到高速缓存存储器。

互连将所述一或多个微处理器和存储器互连在一起并且还通过一或多个输入/输出(I/O)控制器将所述一或多个微处理器和所述存储器互连到一或多个I/O装置。I/O装置可以包含显示装置和/或外围装置,如鼠标、键盘、调制解调器、网络接口、打印机、扫描仪、摄像机和本领域已知的其它装置。在一个实施例中,当数据处理系统是服务器系统时,I/O装置中的一些I/O装置如打印机、扫描仪、鼠标和/或键盘是任选的。

互连可以包含通过各种桥、控制器和/或适配器彼此连接的一或多个总线。在一个实施例中,I/O控制器包含用于控制USB(通用串行总线)外围设备的USB适配器和/或用于控制IEEE-1394外围设备的IEEE-1394总线适配器。

存储器可以包含以下中的一或多个:ROM(只读存储器)、易失性RAM(随机存取存储器)和非易失性存储器,如硬盘驱动器、闪速存储器等。

易失性RAM通常实施为动态RAM(DRAM),所述DRAM持续需要电力以刷新或维护存储器中的数据。非易失性存储器通常是磁性硬盘驱动器、磁性光学驱动器、光学驱动器(例如,DVD RAM)或即使在电力从系统移除后仍维护数据的其它类型的存储器系统。非易失性存储器也可以是随机存取存储器。

非易失性存储器可以是直接耦接到数据处理系统中的其余组件的本地装置。也可以使用远离系统的非易失性存储器,如通过网络接口如调制解调器或以太网接口耦接到数据处理系统的网络存储装置。

在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起,以简化描述。然而,此类表达也用于指定功能是因如微处理器等处理器执行代码/指令而产生的。

可替代地或组合地,可以在有或没有软件指令的情况下使用专用电路系统如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)实施如这里所描述的功能和操作。可以在没有软件指令的情况下使用硬连线电路系统或与软件指令组合地实施实施例。因此,技术既不限于硬件电路系统和软件的任何具体组合,也不限于由数据处理系统执行的指令的任何特定源。

尽管一个实施例可以在全功能计算机和计算机系统中实施,但是各个实施例能够以各种形式作为计算产品分布并且能够与用于实际影响分布的特定类型的机器或计算机可读媒体无关地被应用。

所公开的至少一些方面可以至少部分地在软件中具体化。即,可以响应于计算机系统或其它数据处理系统的处理器如微处理器执行如ROM、易失性RAM、非易失性存储器、高速缓存或远程存储装置等存储器中含有的指令序列在计算机系统或其它数据处理系统中实现技术。

为实施实施例而执行的例程可以实施为操作系统或者特定的应用、组件、程序、对象、模块或被称为“计算机程序”的指令的序列的一部分。计算机程序通常包含一或多个指令,所述一或多个指令在计算机中的各个存储器和存储装置中在各个时间设置并且当由计算机中的一或多个处理器读取和执行时使计算机执行执行涉及各个方面的元件所必需的操作。

机器可读媒体可以用于存储软件和数据,所述软件和数据当由数据处理系统(例如,车辆111中的计算机系统131、服务器119、具有一或多个处理器133的系统、具有推理引擎101的装置112和/或控制器151)执行时使系统执行各种方法。可执行软件和数据可以存储在各个地方,包含例如ROM、易失性RAM、非易失性存储器和/或高速缓存(例如,媒体105、存储器135、数据存储装置112、高速缓存存储器231、缓冲器152)。此软件和/或数据的各部分可以存储在这些存储装置中的任何一个存储装置中。进一步,可以从集中式服务器或对等网络获得数据和指令。可以在不同的时间并且在不同的通信会话中或在同一通信会话中从不同的集中式服务器和/或对等网络获得数据和指令的不同部分。可以在执行应用之前整体获得数据和指令。可替代地,可以在执行需要时及时动态地获得数据和指令的各部分。因此,数据和指令不需要在特定时间个例时整体上处于机器可读媒体上。

计算机可读媒体的实例包含但不限于非易失性、可记录和非可记录类型媒体,如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、闪速存储器装置、软盘和其它可移除盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CD ROM)、数字多功能盘(DVD)等)等等。计算机可读媒体可以存储指令。

指令还可以具体化于用于电、光学、声学或其它形式的传播信号如载波、红外信号、数字信号等的数字和模拟通信链路中。然而,如载波、红外信号、数字信号等传播的信号不是有形的机器可读媒体并且未被配置成存储指令。

机器可读媒体通常包含以机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)可存取的形式提供(即,存储和/或传输)信息的任何机构。

在各个实施例中,硬连线电路系统可以与软件指令组合使用以实施技术。因此,技术既不限于硬件电路系统与软件的任何具体组合,也不限于用于由数据处理系统执行的指令的任何特定源。

以上描述和附图是说明性的并且不应被解释为限制性的。描述了许多具体细节以提供透彻理解。然而,在某些情况下,未对公知的或常规的细节进行描述,以避免混模糊描述。在本公开中对一个实施例或实施例的引用不一定是对相同实施例的引用;并且,此类引用意指至少一个实施例。

在前述说明书中,已经参考本公开的具体示范性实施例描述了本公开。将显而易见的是,在不脱离如以下权利要求中阐述的更广泛的精神和范围的情况下,可以对本公开进行各种修改。因此,说明书和附图应被视为说明性意义的,而不是限制性意义的。

相关技术
  • 数据存储装置的电力使用的优化
  • 数据网络的优化电力使用
技术分类

06120113228904