CN113269321A - 数据存储装置的服务质量的优化 - Google Patents
数据存储装置的服务质量的优化 Download PDFInfo
- Publication number
- CN113269321A CN113269321A CN202110180570.3A CN202110180570A CN113269321A CN 113269321 A CN113269321 A CN 113269321A CN 202110180570 A CN202110180570 A CN 202110180570A CN 113269321 A CN113269321 A CN 113269321A
- Authority
- CN
- China
- Prior art keywords
- storage device
- data storage
- data
- neural network
- vehicle
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000013500 data storage Methods 0.000 title claims abstract description 213
- 238000005457 optimization Methods 0.000 title abstract description 11
- 238000013528 artificial neural network Methods 0.000 claims abstract description 222
- 238000000034 method Methods 0.000 claims abstract description 64
- 238000012423 maintenance Methods 0.000 claims abstract description 38
- 230000003139 buffering effect Effects 0.000 claims abstract description 20
- 230000015654 memory Effects 0.000 claims description 170
- 238000004364 calculation method Methods 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 23
- 238000012549 training Methods 0.000 claims description 20
- 238000012421 spiking Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 14
- 230000008569 process Effects 0.000 abstract description 25
- 210000002569 neuron Anatomy 0.000 description 107
- 238000012545 processing Methods 0.000 description 30
- 239000000872 buffer Substances 0.000 description 29
- 238000004891 communication Methods 0.000 description 26
- 238000003860 storage Methods 0.000 description 25
- 238000005192 partition Methods 0.000 description 22
- 210000004027 cell Anatomy 0.000 description 18
- 230000004913 activation Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 15
- 238000010801 machine learning Methods 0.000 description 10
- 230000008859 change Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 210000002364 input neuron Anatomy 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 3
- 210000004205 output neuron Anatomy 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 241000699670 Mus sp. Species 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000012528 membrane Substances 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0868—Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/088—Non-supervised learning, e.g. competitive learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Testing And Monitoring For Control Systems (AREA)
- Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Medical Informatics (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请涉及数据存储装置的服务质量的优化。例如,所述数据存储装置接收输入数据流并且提供输出数据流。所述数据存储装置至少部分地基于所述输入数据流和/或所述输出数据流使用人工神经网络确定服务质量配置。所述数据存储装置的控制器使用所述服务质量配置来控制所述数据存储装置的与所述数据存储装置的服务质量有关的操作。例如,所述配置标识优化的高速缓存或缓冲策略和参数以及例如垃圾收集、磨损均衡等后台维护过程的优化的定时和频率。
Description
技术领域
本文公开的至少一些实施例总体上涉及数据存储装置的服务质量,并且更具体地,涉及但不限于自主车辆中的存储装置。
背景技术
自主驾驶技术领域中的最新发展允许计算***至少在一些状况下在没有来自车辆的人类操作者的辅助的情况下操作机动车辆的控制元件。
例如,传感器(例如,相机和雷达)可以安装在机动车辆上,以检测在道路上行进的车辆的周围事物的状况。安装在车辆上的计算***分析传感器输入,以标识状况并且生成控制信号或命令,以用于在有或没有来自车辆的人类操作者的任何输入的情况下自主调整车辆的方向和/或速度。
在一些布置中,当计算***识别出计算***可能无法以安全的方式继续操作车辆的情况时,计算***警告车辆的人类操作者并且请求人类操作者接管对车辆的控制并手动驾驶,而不是允许计算***自主驾驶车辆。
自主驾驶和/或高级驾驶员辅助***(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)的情况下优化配置在机动车辆或另一种车辆中的数据存储装置的服务质量的***、方法和设备。
数据存储装置可以具有各种可配置的参数和操作,所述可配置的参数和操作在各种状况下对数据存储装置的服务质量有不同的影响。可以基于读取/写入(输入/输出)请求的等待时间(响应时间)和/或数据存储装置每单位时间处理的读取/写入(输入/输出)请求的数量来测量数据存储装置的服务质量(QoS)。
例如,数据存储装置可以实施不同的高速缓存或缓冲方案和/或在实施高速缓存/缓冲时使用不同值的高速缓存参数,如高速缓存大小、高速缓存块大小、高速缓存组大小、高速缓存组数量等。对于数据存储装置上应用的工作负荷的不同模式,不同的高速缓存/缓冲实施方案可能会是最佳的。
例如,数据存储装置可以具有后台维护过程,如垃圾收集、磨损均衡等。在垃圾收集过程中,数据存储装置搜索已标记为过时的存储媒体页面、重新定位与过时页面处于相同块中的页面的有效数据并且擦除块以使块准备好用于写入操作。在磨损均衡操作中,数据存储装置将数据从较频繁被擦除的页面移动到不那么频繁被擦除的页面。在数据存储装置上应用了不同的工作负荷模式的情况下,用于调度后台维护过程的定时和频率的不同方式可以对数据存储装置的服务质量有不同的影响。
人工神经元网络(ANN)(例如,尖峰神经网络(SNN)、卷积神经网络(CNN)、递归神经网络(RNN))可以被配置成针对数据存储装置的当前操作状况预测高速缓存/缓冲和后台维护过程的配置,以优化数据存储装置的服务质量。例如,ANN可以被配置成预测高速缓存/缓冲实施方案与垃圾收集和磨损均衡的定时和频率的组合,使得数据存储装置的服务质量在后续的操作时间段内被优化。
例如,数据存储装置可以被配置为自主车辆中的固态驱动器(SSD)。基于由车辆的操作状态、高级驾驶员辅助***(ADAS)的处理状态/里程碑/工作负荷、请求存取的应用、存取类型(例如,读取/写入)、存取频率、地址位置、分块大小等指示的数据存取模式,ANN可以预测高速缓存/缓冲的方案和参数以及后台维护过程的定时和频率,以优化SSD的服务质量。
ANN可以被配置成在数据存储装置内进行自训练。例如,ANN可以自组织输入数据以获得预测/分类能力(例如,使用非监督式学习技术)。可替代地,可以使用监督式学习技术来训练ANN,以改进或建立预测模型。
例如,可以将车辆、应用和/或数据存储装置的当前操作参数作为输入提供到ANN,以得出优选的高速缓存方案和优化的后台维护时间表。作为高速缓存/缓冲方面以及后台维护过程的定时和频率改变的结果,可以测量数据存储装置的服务质量的后续变化。服务质量的测量结果以及高速缓存/缓冲和后台维护过程的实施的参数可以用作用于非监督式学习的输入数据。可替代地,服务质量的测量结果可以用作用于使用监督式学习技术来训练ANN的预测的标签。
通过使用ANN来控制对数据存储装置的服务质量有影响的各方面(例如,缓冲/高速缓存、垃圾收集、磨损均衡),无论现场使用场景如何,数据存储装置都可以具有一致的服务质量。
图1示出了根据一个实施例的具有推理引擎101的数据存储装置112,所述推理引擎被配置成调整数据存储装置112的操作和配置以提高服务质量102。
数据存储装置112存储人工神经网络(ANN)125的模型。推理引擎101使用ANN 125来预测数据存储装置112的操作如缓冲/高速缓存106、垃圾收集107、磨损均衡108等的参数和配置,以优化数据存储装置112的测量的服务质量102。
数据存储装置112具有被配置成存储提供到数据存储装置112的数据的控制器151和媒体105。例如,媒体105可以包含集成电路存储器晶胞;并且集成电路存储器晶胞可以是非易失性存储器(例如,NAND、FERAM、NOR、PCM、MRAM、交叉点存储器)。例如,输入数据流103提供要写入数据存储装置112的媒体105中的数据;并且输出数据流109提供从数据存储装置112检索到的数据。控制器151处理结合输入数据流103和输出数据流109提供的命令并且根据命令将数据写入到媒体105中并且从媒体105中读取数据。当方法和其中描述的技术(例如,图16的方法)至少部分地凭借通过可编程装置(例如,推理引擎101和/或控制器151)执行的指令来实施时,指令可以存储在媒体105或另一个机器可读媒体中。
控制器151可以使用比媒体105更快的存储器来缓冲/高速缓存输入数据流103和/或输出数据流的数据。例如,控制器151可以使用控制器151的静态随机存取存储器(SRAM)和/或单独的动态随机存取存储器(DRAM)来高速缓存或缓冲数据。
由控制器执行的缓冲/高速缓存106的参数和配置可以由推理引擎101基于输入数据流103和/或输出数据流109使用ANN 125来计算。可以通过ANN 125标识输入数据流103和/或输出数据流109中的与数据存储装置112的典型使用场景相对应的模式,以确定缓冲/高速缓存106的参数和配置以优化针对数据存储装置112测量的服务质量102。
类似地,控制器151可以执行后台维护操作,如垃圾收集107、磨损均衡108等。后台维护操作的定时和频率可以影响数据存储装置112的服务质量102。推理引擎101基于输入数据流103和/或输出数据流109中的模式使用ANN 125来确定维护操作(例如,107、108)的定时和频率,以优化针对数据存储装置112测量的服务质量102。
例如,数据存储装置112可以配置在图2所展示的车辆中;并且推理引擎101可以基于车辆的操作模式预测缓冲/高速缓存106的参数和配置以及后台维护操作(例如,107和108)的定时和频率。
图2示出了根据一些实施例的具有被配置成收集和处理传感器数据的车辆111的***。
图2中的车辆111具有数据存储装置112、传感器122、ANN 125和ADAS 128并且被配置成处理包含来自传感器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接收ANN 125的更新。
通信网络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时的服务质量102。
图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中最初使用通用ANN 125;并且车辆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示出了根据一个实施例的被配置成优化服务质量102的数据存储装置112。例如,图15的数据存储装置可以使用图1或7的数据存储装置112的技术在图2或3中所展示的车辆111中实施。
在图15中,数据存储装置112包含可通过由神经网络加速器159使用存储在存储器组件161到163中的ANN模型213预测的服务质量配置235配置的高速缓存存储器231。
例如,高速缓存存储器231可以用于高速缓存存储在存储器组件161到163中并且随后可以由神经网络加速器159和/或连接到数据存储装置112的一或多个处理器133使用的数据。例如,高速缓存存储器231可以用于提供图12-14所展示的缓冲器或高速缓存的功能。
进一步,数据存储装置112的控制器151可以根据由神经网络加速器159使用存储在存储器组件161到163中的ANN模型213预测的时间表运行后台维护过程209。
存储在存储器组件161到163中的ANN模型213被配置成在处理输入/输出数据流103和109时优化数据存储装置112的服务质量。
ANN模型213被配置成至少部分地基于车辆111和/或数据存储装置112的操作参数233来预测高速缓存存储器231的优化的配置和维护过程的优化的时间表239。
例如,车辆111的操作参数233可以包含车辆111的速度、车辆111的位置、车辆111在行进的道路、来自车辆111的传感器122中的一些传感器的输入、基于来自传感器122中的一些传感器的输入生成的推理结果、车辆控制(例如,141、143、145)的状态、车辆111的组件如车辆111的信息娱乐***149和/或通信装置139的状态。车辆111的操作参数233可以包含高级驾驶员辅助***(ADAS)128和/或在车辆111中运行的其它应用/组件的状态和操作。
例如,数据存储装置112的操作参数233可以包含主机接口中接收的读取命令和写入命令的队列的大小、在生成推理结果时执行ANN模型213的状态或里程碑等。
当由具有用于高速缓存存储器231的特定高速缓存配置和用于维护过程239的特定维护时间表的服务质量配置235控制时,控制器151可以测量其服务质量指标237。
ANN模型213的至少一部分被配置成将操作参数233分类为表示数据存储装置112的工作负荷状况的多个工作负荷集群之一。当应用了特定的服务质量配置235时,每个工作负荷集群提供基本上一致的服务质量。可以针对不同的工作负荷集群优化不同的服务质量配置235。
例如,可以通过改变服务质量配置235以搜索针对给定工作负荷集群优化的服务质量指标237来生成训练数据。随后,当针对当前操作参数233标识工作负荷集群时,可以使用先前找到的优化的服务配置235。
例如,在训练时期期间,数据存储装置112可以测量与不同服务质量配置235和不同操作参数相关联的服务质量指标237,以生成训练数据集。ANN 125可以自组织训练数据集以标识工作负荷集群。随后,可以将当前的一组操作参数239分类为工作负荷集群之一;并且用于所标识的工作负荷集群的不同服务质量配置235与不同服务质量指标237相关联。因此,可以选择服务质量配置235中的与相关联的服务质量指标237中的优化的服务质量指标相关联的一个服务质量配置,以用于控制高速缓存存储器231和维护过程239。
任选地,在标识出工作负荷集群之后,控制器151可以改变用于控制高速缓存存储器231和维护过程239的服务质量配置235、测量对应的服务质量指标237并且搜索/确定优化的服务质量配置,使得ANN 125被更新以预测用于工作负荷集群的优化的服务质量配置。
ANN 125在预测优化的服务质量配置235方面的自训练能力允许数据存储装置112适应其例行使用并且在例行使用的一段时间内逐步提高其服务质量102。
数据存储装置112的服务质量配置235可以包含从多个高速缓存策略候选项中选择的高速缓存策略的标识,所述多个高速缓存策略候选项可以针对高速缓存存储器231、高速缓存大小、高速缓存块大小、高速缓存组大小、高速缓存组数量、维护过程239的定时和频率等实施。
数据存储装置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接收输入数据流103。
例如,输入数据流103可以包含由自主车辆111的传感器122生成的传感器数据121。
例如,输入数据流103可以包含车辆111的操作参数,如自主车辆111的速度、自主车辆111的位置、车辆控制(例如,141、143、145)的状态、自主车辆111的信息娱乐***149的状态或自主汽车111的高级驾驶员辅助***128的状态等。
在框253处,数据存储装置112提供输出数据流109。
例如,输出数据流109可以包含由数据存储装置112的推理引擎101基于输入数据流103生成的推理结果。
在框255处,数据存储装置112至少部分地基于输入数据流103或输出数据流109使用人工神经网络125确定配置235。
在框257处,数据存储装置112的控制器151根据从人工神经网络125确定的配置235来控制数据存储装置112的与数据存储装置112的服务质量有关的操作。根据配置235控制的此类操作可以包含高速缓存或缓冲106和后台维护(例如,垃圾收集107、磨损均衡108)。
例如,配置235可以标识如垃圾收集107或磨损均衡108等后台维护的时间表(例如,定时和频率)。
例如,配置235可以标识从多个高速缓存策略中选择的高速缓存策略的标识或用于高速缓存的大小或其组合。
例如,数据存储装置112可以使用人工神经网络125来从输入数据流生成推理结果;并且配置235可以至少部分地基于推理结果来确定。
例如,数据存储装置112可以标识表示数据存储装置的工作负荷状况的操作参数、使用人工神经网络125将操作参数分类为工作负荷集群并且基于工作负荷集群的标识来确定配置235。
例如,数据存储装置112可以通过优化在工作负荷集群中工作的数据存储装置112的服务质量来从多个配置中选择配置235。
任选地,数据存储装置112可以通过改变用于控制数据存储装置112的操作的配置并且测量数据存储装置112的服务质量指标237,同时改变用于最大化所测量的服务质量指标237的配置来搜索优化的配置235。
任选地,数据存储装置112可以训练人工神经网络以基于从数据存储装置112的操作参数、输入数据流103和/或输出数据流109对工作负荷集群的标识来预测优化的配置235。
当输入数据流103包含来自自主车辆111的一或多个传感器122的传感器数据121时,输出数据流109可以包含由数据存储装置112从传感器数据生成的计算结果;并且工作负荷集群可以至少部分地基于计算结果和在输入数据流103中标识的自主车辆的操作参数233来标识。
例如,数据存储装置112可以包含主机接口157,所述主机接口被配置成接收输入数据流103并且提供输出数据流109。数据存储装置112的一或多个存储器组件161到163可以被配置成响应于主机接口157中接收的写入命令来存储数据。数据存储装置112的推理引擎101可以被配置成使用人工神经网络125确定优化的服务质量配置235和/或在输出数据流109中提供的推理结果。数据存储装置112的控制器151被配置成根据优化的服务质量配置235来控制高速缓存/缓冲106、垃圾收集107和磨损均衡108。用于确定优化的服务质量配置235的人工神经网络125可以包含尖峰神经网络。推理引擎101可以包含被配置成比控制器151更高效地执行矩阵算术计算的神经网络加速器159。
此类数据存储装置112可以被配置在具有一组传感器122的车辆111的计算机***131中。基于来自传感器122的传感器数据121和/或输出流109,计算机***131生成用于在自主驾驶期间对车辆111的各种控制(例如,141、143、145)的信号。
服务器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)等)等等。计算机可读媒体可以存储指令。
指令还可以具体化于用于电、光学、声学或其它形式的传播信号如载波、红外信号、数字信号等的数字和模拟通信链路中。然而,如载波、红外信号、数字信号等传播的信号不是有形的机器可读媒体并且未被配置成存储指令。
机器可读媒体通常包含以机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)可存取的形式提供(即,存储和/或传输)信息的任何机制。
在各个实施例中,硬连线电路***可以与软件指令组合使用以实施技术。因此,技术既不限于硬件电路***与软件的任何具体组合,也不限于用于由数据处理***执行的指令的任何特定源。
以上描述和附图是说明性的并且不应被解释为限制性的。描述了许多具体细节以提供透彻理解。然而,在某些情况下,未对公知的或常规的细节进行描述,以避免混模糊描述。在本公开中对一个实施例或实施例的引用不一定是对相同实施例的引用;并且,此类引用意指至少一个实施例。
在前述说明书中,已经参考本公开的具体示范性实施例描述了本公开。将显而易见的是,在不脱离如以下权利要求中阐述的更广泛的精神和范围的情况下,可以对本公开进行各种修改。因此,说明书和附图应被视为说明性意义的,而不是限制性意义的。
Claims (20)
1.一种方法,其包括:
在数据存储装置中接收输入数据流;
从所述数据存储装置提供输出数据流;
由所述数据存储装置使用人工神经网络至少部分地基于所述输入数据流或所述输出数据流来确定配置;以及
根据从所述人工神经网络确定的所述配置来控制所述数据存储装置的与所述数据存储装置的服务质量有关的操作,其中所述操作包含高速缓存或缓冲和后台维护。
2.根据权利要求1所述的方法,其中所述配置标识所述后台维护的时间表。
3.根据权利要求2所述的方法,其中所述后台维护包含垃圾收集和磨损均衡。
4.根据权利要求3所述的方法,其中所述后台维护的所述时间表包含所述后台维护的定时或频率。
5.根据权利要求4所述的方法,其中所述配置标识从多个高速缓存策略中选择的高速缓存策略的标识或用于高速缓存的大小或其组合。
6.根据权利要求1所述的方法,其进一步包括:
由所述数据存储装置使用人工神经网络从所述输入数据流生成推理结果;
其中所述配置至少部分地基于所述推理结果来确定。
7.根据权利要求1所述的方法,其进一步包括:
标识表示所述数据存储装置的工作负荷状况的操作参数;以及
使用所述人工神经网络将所述操作参数分类为工作负荷集群,其中所述配置基于所述工作负荷集群的标识来确定。
8.根据权利要求7所述的方法,其进一步包括:
由所述数据存储装置从多个配置中选择所述配置以针对所述工作负荷集群优化所述数据存储装置的服务质量。
9.根据权利要求7所述的方法,其进一步包括:
由所述数据存储装置通过以下来搜索所述配置以优化数据存储装置的服务质量
改变用于控制所述数据存储装置的所述操作的配置;以及
在改变所述配置时测量所述数据存储装置的服务质量指标。
10.根据权利要求7所述的方法,其进一步包括:
在所述数据存储装置中训练所述人工神经网络以基于所述工作负荷集群预测所述配置。
11.根据权利要求7所述的方法,其中所述输入数据流包含来自自主车辆的一或多个传感器的传感器数据;并且所述输出数据流包含由所述数据存储装置从所述传感器数据生成的计算结果。
12.根据权利要求11所述的方法,其中至少部分地基于所述计算结果以及在所述输入数据流中标识的所述自主车辆的操作参数来标识所述工作负荷集群。
13.根据权利要求12所述的方法,其中所述操作参数包含所述自主车辆的速度、所述自主车辆的位置、来自配置在所述自主车辆上的传感器的输入、车辆控制的状态、所述自主车辆的信息娱乐***的状态或所述自主汽车的高级驾驶员辅助***的状态或其任何组合。
14.一种数据存储装置,其包括:
主机接口,所述主机接口被配置成接收输入数据流并且提供输出数据流;
一或多个存储器组件,所述一或多个存储器组件被配置成响应于在所述主机接口中接收的写入命令来存储数据;
推理引擎,所述推理引擎被配置成使用人工神经网络来确定服务质量配置;以及
控制器,所述控制器被配置成根据从所述人工神经网络确定的所述服务质量配置控制所述数据存储装置的与所述数据存储装置的服务质量有关的操作,其中所述操作包含高速缓存或缓冲、垃圾收集和磨损均衡。
15.根据权利要求14所述的数据存储装置,其中所述人工神经网络包含尖峰神经网络。
16.根据权利要求15所述的数据存储装置,其中所述数据存储装置被配置在车辆中;并且所述配置至少部分地基于所述车辆的操作参数来确定。
17.根据权利要求15所述的数据存储装置,其中所述推理引擎包含神经网络加速器,所述神经网络加速器被配置成比所述控制器更高效地执行矩阵算术计算。
18.一种车辆,其包括:
一组传感器,所述一组传感器被配置成生成传感器数据;以及
计算机***,所述计算机***被配置成基于所述传感器数据生成自主驾驶时用于所述车辆的控制信号,所述计算机***包含数据存储装置,所述数据存储装置包括:
一或多个存储器组件;
主机接口,所述主机接口被配置成接收含有所述传感器数据的输入数据流并且提供由所述计算机***用来生成所述控制信号的输出数据流;
推理引擎,所述推理引擎被配置成使用人工神经网络来确定所述输出数据流的至少一部分以及配置;以及
控制器,所述控制器被配置成根据从所述人工神经网络确定的所述配置来控制所述数据存储装置的与所述数据存储装置的服务质量有关的操作,其中所述操作包含高速缓存或缓冲、垃圾收集和磨损均衡。
19.根据权利要求18所述的车辆,其中所述人工神经网络包含尖峰神经网络;并且所述数据存储装置被进一步配置成生成训练数据并且训练所述尖峰神经网络以生成所述配置。
20.根据权利要求19所述的车辆,其中所述输入数据流包含所述车辆的操作参数;并且所述配置至少部分地基于所述操作参数来确定。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/791,851 | 2020-02-14 | ||
US16/791,851 US20210256349A1 (en) | 2020-02-14 | 2020-02-14 | Optimization of quality of service of data storage devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113269321A true CN113269321A (zh) | 2021-08-17 |
Family
ID=77228100
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110180570.3A Pending CN113269321A (zh) | 2020-02-14 | 2021-02-08 | 数据存储装置的服务质量的优化 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20210256349A1 (zh) |
CN (1) | CN113269321A (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11586943B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network inputs in automotive predictive maintenance |
US11775816B2 (en) | 2019-08-12 | 2023-10-03 | Micron Technology, Inc. | Storage and access of neural network outputs in automotive predictive maintenance |
US11635893B2 (en) | 2019-08-12 | 2023-04-25 | Micron Technology, Inc. | Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks |
US11586194B2 (en) | 2019-08-12 | 2023-02-21 | Micron Technology, Inc. | Storage and access of neural network models of automotive predictive maintenance |
US11853863B2 (en) | 2019-08-12 | 2023-12-26 | Micron Technology, Inc. | Predictive maintenance of automotive tires |
US11748626B2 (en) | 2019-08-12 | 2023-09-05 | Micron Technology, Inc. | Storage devices with neural network accelerators for automotive predictive maintenance |
US11702086B2 (en) | 2019-08-21 | 2023-07-18 | Micron Technology, Inc. | Intelligent recording of errant vehicle behaviors |
US11498388B2 (en) | 2019-08-21 | 2022-11-15 | Micron Technology, Inc. | Intelligent climate control in vehicles |
US11361552B2 (en) | 2019-08-21 | 2022-06-14 | Micron Technology, Inc. | Security operations of parked vehicles |
US11409654B2 (en) | 2019-09-05 | 2022-08-09 | Micron Technology, Inc. | Intelligent optimization of caching operations in a data storage device |
US11693562B2 (en) | 2019-09-05 | 2023-07-04 | Micron Technology, Inc. | Bandwidth optimization for different types of operations scheduled in a data storage device |
US11436076B2 (en) | 2019-09-05 | 2022-09-06 | Micron Technology, Inc. | Predictive management of failing portions in a data storage device |
US11650746B2 (en) | 2019-09-05 | 2023-05-16 | Micron Technology, Inc. | Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles |
US11435946B2 (en) | 2019-09-05 | 2022-09-06 | Micron Technology, Inc. | Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles |
US11250648B2 (en) | 2019-12-18 | 2022-02-15 | Micron Technology, Inc. | Predictive maintenance of automotive transmission |
US11709625B2 (en) | 2020-02-14 | 2023-07-25 | Micron Technology, Inc. | Optimization of power usage of data storage devices |
US11531339B2 (en) | 2020-02-14 | 2022-12-20 | Micron Technology, Inc. | Monitoring of drive by wire sensors in vehicles |
JP7332529B2 (ja) * | 2020-04-21 | 2023-08-23 | 株式会社東海理化電機製作所 | 異常検出装置 |
CN114860150A (zh) * | 2021-02-04 | 2022-08-05 | 戴尔产品有限公司 | 在存储群集的存储***之间执行损耗均衡 |
CN117234407A (zh) * | 2022-06-01 | 2023-12-15 | 深圳市江波龙电子股份有限公司 | 存储装置的优化方法、存储装置以及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282891A (zh) * | 2010-08-16 | 2013-09-04 | 甲骨文国际公司 | 用于使用神经网络来进行有效的缓存的***和方法 |
US20170031816A1 (en) * | 2015-07-31 | 2017-02-02 | Samsung Electronics Co., Ltd. | Storage device, system including storage device and method of operating the same |
US20180284737A1 (en) * | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for detection in an industrial internet of things data collection environment with large data sets |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11049009B2 (en) * | 2017-06-12 | 2021-06-29 | Western Digital Technologies, Inc. | Identifying memory block write endurance using machine learning |
US20190243771A1 (en) * | 2018-02-05 | 2019-08-08 | Micron Technology, Inc. | Accelerate Data Access in Memory Systems via Data Stream Segregation |
US10948966B1 (en) * | 2018-03-07 | 2021-03-16 | Facebook, Inc. | Systems and methods for optimizing power usage for systems within quality-of-service constraints |
KR102645142B1 (ko) * | 2018-10-25 | 2024-03-07 | 삼성전자주식회사 | 예측된 유효 페이지들을 이용하여 가비지 콜렉션을 수행하는 스토리지 장치들, 방법들 및 불휘발성 메모리 장치들 |
US10992557B1 (en) * | 2018-11-09 | 2021-04-27 | Innovium, Inc. | Traffic analyzer for network device |
US11783176B2 (en) * | 2019-03-25 | 2023-10-10 | Western Digital Technologies, Inc. | Enhanced storage device memory architecture for machine learning |
US20200356292A1 (en) * | 2019-05-10 | 2020-11-12 | Dell Products, Lp | System and Method for Performance Based Dynamic Optimal Block Size Data Deduplication |
KR20220020008A (ko) * | 2020-08-11 | 2022-02-18 | 삼성전자주식회사 | 비휘발성 메모리를 포함하는 메모리 저장 장치 및 전자 장치 |
-
2020
- 2020-02-14 US US16/791,851 patent/US20210256349A1/en active Pending
-
2021
- 2021-02-08 CN CN202110180570.3A patent/CN113269321A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103282891A (zh) * | 2010-08-16 | 2013-09-04 | 甲骨文国际公司 | 用于使用神经网络来进行有效的缓存的***和方法 |
US20170031816A1 (en) * | 2015-07-31 | 2017-02-02 | Samsung Electronics Co., Ltd. | Storage device, system including storage device and method of operating the same |
US20180284737A1 (en) * | 2016-05-09 | 2018-10-04 | StrongForce IoT Portfolio 2016, LLC | Methods and systems for detection in an industrial internet of things data collection environment with large data sets |
Also Published As
Publication number | Publication date |
---|---|
US20210256349A1 (en) | 2021-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210256349A1 (en) | Optimization of quality of service of data storage devices | |
US11709625B2 (en) | Optimization of power usage of data storage devices | |
US11409654B2 (en) | Intelligent optimization of caching operations in a data storage device | |
US11693562B2 (en) | Bandwidth optimization for different types of operations scheduled in a data storage device | |
US11435946B2 (en) | Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles | |
US11650746B2 (en) | Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles | |
US11436076B2 (en) | Predictive management of failing portions in a data storage device | |
US11586194B2 (en) | Storage and access of neural network models of automotive predictive maintenance | |
US20240071146A1 (en) | Predictive Maintenance of Automotive Transmission | |
CN113269952B (zh) | 车辆的预测性维护的方法、数据存储装置及车辆 | |
US11635893B2 (en) | Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks | |
US11702086B2 (en) | Intelligent recording of errant vehicle behaviors | |
US11586943B2 (en) | Storage and access of neural network inputs in automotive predictive maintenance | |
US11775816B2 (en) | Storage and access of neural network outputs in automotive predictive maintenance | |
US20210053574A1 (en) | Monitoring controller area network bus for vehicle control | |
US20210073066A1 (en) | Temperature based Optimization of Data Storage Operations | |
CN112406881A (zh) | 用于车辆控制的疲劳驾驶检测 | |
CN112397088A (zh) | 汽车引擎的预测性维护 | |
CN112446478B (zh) | 数据存储装置中的高速缓存操作的智能优化 | |
US11562237B2 (en) | Processing of overwhelming stimuli in vehicle data recorders |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |