CN114092309A - 与图像传感器堆叠的神经形态存储器和推断引擎 - Google Patents
与图像传感器堆叠的神经形态存储器和推断引擎 Download PDFInfo
- Publication number
- CN114092309A CN114092309A CN202110856111.2A CN202110856111A CN114092309A CN 114092309 A CN114092309 A CN 114092309A CN 202110856111 A CN202110856111 A CN 202110856111A CN 114092309 A CN114092309 A CN 114092309A
- Authority
- CN
- China
- Prior art keywords
- data
- ann
- neural network
- memory
- result
- 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
- 230000015654 memory Effects 0.000 title abstract description 188
- 238000013528 artificial neural network Methods 0.000 claims abstract description 348
- 238000012545 processing Methods 0.000 claims abstract description 116
- 239000011159 matrix material Substances 0.000 claims abstract description 51
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 210000002569 neuron Anatomy 0.000 claims description 137
- 238000000034 method Methods 0.000 claims description 79
- 238000003860 storage Methods 0.000 claims description 51
- 230000004044 response Effects 0.000 claims description 30
- 238000012421 spiking Methods 0.000 claims description 26
- 238000004891 communication Methods 0.000 description 62
- 230000008569 process Effects 0.000 description 42
- 238000013500 data storage Methods 0.000 description 24
- 238000005192 partition Methods 0.000 description 22
- 210000004027 cell Anatomy 0.000 description 20
- 230000006870 function Effects 0.000 description 20
- 230000004913 activation Effects 0.000 description 19
- 238000010801 machine learning Methods 0.000 description 18
- 238000004458 analytical method Methods 0.000 description 16
- 238000012423 maintenance Methods 0.000 description 12
- 238000012549 training Methods 0.000 description 12
- 230000002093 peripheral effect Effects 0.000 description 11
- 238000001514 detection method Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 8
- 229910052710 silicon Inorganic materials 0.000 description 8
- 239000010703 silicon Substances 0.000 description 8
- 230000008859 change Effects 0.000 description 7
- 230000001133 acceleration Effects 0.000 description 6
- 230000035508 accumulation Effects 0.000 description 6
- 238000009825 accumulation Methods 0.000 description 6
- 210000002364 input neuron Anatomy 0.000 description 5
- 239000007787 solid Substances 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 210000004205 output neuron Anatomy 0.000 description 3
- 230000002688 persistence Effects 0.000 description 3
- 230000000644 propagated effect Effects 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 241000699666 Mus <mouse, genus> Species 0.000 description 1
- 241000699670 Mus sp. Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008901 benefit 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
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000003384 imaging method Methods 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
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013598 vector Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/54—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using elements simulating biological cells, e.g. neuron
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/0088—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
-
- 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/045—Combinations of networks
-
- 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/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
- G06N3/065—Analogue means
-
- 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
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N25/00—Circuitry of solid-state image sensors [SSIS]; Control thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C13/00—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00
- G11C13/0002—Digital stores characterised by the use of storage elements not covered by groups G11C11/00, G11C23/00, or G11C25/00 using resistive RAM [RRAM] elements
- G11C13/0021—Auxiliary circuits
- G11C13/004—Reading or sensing circuits or methods
- G11C2013/0054—Read is performed on a reference element, e.g. cell, and the reference sensed value is used to compare the sensed value of the selected cell
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Molecular Biology (AREA)
- General Health & Medical Sciences (AREA)
- Neurology (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Game Theory and Decision Science (AREA)
- Business, Economics & Management (AREA)
- Automation & Control Theory (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Aviation & Aerospace Engineering (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Biology (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
- Traffic Control Systems (AREA)
Abstract
本申请涉及与图像传感器堆叠的神经形态存储器和推断引擎。在一个实例中,一种系统包含生成图像数据的图像传感器。存储器装置与所述图像传感器堆叠且存储所生成的图像数据。主机接口与主机系统通信。存储器装置包含推断引擎以使用所存储的图像数据作为到人工神经网络的输入而生成推断结果。所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对存储于所述存储器装置中的数据执行矩阵算术计算。所述主机接口将所述推断结果发送到所述主机系统以供处理。
Description
技术领域
本文公开的至少一些实施例大体上涉及图像感测装置,且更具体地但不限于,与存储器装置堆叠的图像传感器,其使用推断引擎来减少到主机系统的数据传输。
背景技术
自主驾驶技术领域的最新发展允许计算系统至少在一些条件下操作机动车辆的控制元件而无需车辆的人类操作者的辅助。
例如,传感器(例如,相机和雷达)可安装在机动车辆上以检测在车道上行驶的车辆的周围环境的条件。在具有或不具有来自车辆的人类操作者的任何输入的情况下,安装在车辆上的计算系统分析传感器输入以识别条件并且生成用于车辆的方向和/或速度的自主调整的控制信号或命令。
在一些布置中,当计算系统辨识出其中计算系统可能无法继续以安全方式操作车辆的情境时,计算系统对车辆的人类操作者发出警报并且请求人类操作者接管对车辆的控制并进行手动驾驶,而不是让计算系统自主驾驶车辆。
自主驾驶和/或高级驾驶员辅助系统(ADAS)可以使用用于识别在传感器输入中所捕获的事件和/或对象的人工神经网络(ANN)。传感器输入的实例包含来自数码相机、激光雷达、雷达、超声声纳等的图像。
一般来说,人工神经网络(ANN)使用神经元网络处理到网络的输入并生成来自网络的输出。
例如,网络中的每一神经元接收一组输入。到神经元的输入中的一些可以是网络中的某些神经元的输出;且到神经元的输入中的一些可以是提供到神经网络的输入。网络中的神经元之间的输入/输出关系表示网络中的神经元连接性。
例如,每一神经元可具有偏置、激活函数,以及分别用于其输入的一组突触权重。激活函数可呈阶跃函数、线性函数、双弯曲(log-sigmoid)函数等形式。网络中的不同神经元可具有不同的激活函数。
例如,每一神经元可生成其输入和其偏置的加权和,然后产生为加权和的函数的输出,所述输出是使用神经元的激活函数计算的。
ANN的输入与输出之间的关系一般来说是由ANN模型定义的,所述ANN模型包含表示网络中的神经元的连接性的数据,以及每一神经元的偏置、激活函数和突触权重。使用给定ANN模型,计算装置根据网络的给定一组输入计算网络的输出。
例如,可基于相机输入生成到ANN网络的输入;并且来自ANN网络的输出可以是对例如事件或对象等事项的识别。
尖峰神经网络(SNN)是紧密模仿自然神经网络的一种类型的ANN。当神经元的激活电平足够高时,SNN神经元产生尖峰作为输出。SNN神经元的激活电平模仿自然神经元的薄膜电位。SNN神经元的输出/尖峰可以改变接收输出的其它神经元的激活电平。随时间而变的SNN神经元的当前激活电平通常是使用微分方程来建模的,且被视为SNN神经元的状态。来自其它神经元的传入尖峰可将所述神经元的激活电平推得更高,以达到针对尖峰的阈值。一旦神经元产生尖峰,其激活电平就复位。在产生尖峰之前,SNN神经元的激活电平可随时间推移而衰减,如微分方程所控制的那样。SNN神经元行为中的时间元素使得SNN适合于处理时空数据。SNN的连接性通常是稀疏的,这有利于减少计算工作负载。
一般来说,可使用监督方法来训练ANN,其中调整ANN中的参数以最小化或减少由相应输入产生的已知输出与通过将输入应用于ANN而生成的所计算输出之间的误差。监督学习/训练方法的实例包含强化学习,以及具有误差校正的学习。
替代地或组合地,可以使用非监督方法来训练ANN,其中由给定的一组输入产生的确切输出在所述训练完成之前是未知的。可以训练ANN,以将事项分类成多个类别,或将数据点分类成聚类。
可以采用多个训练算法用于复杂机器学习/训练范例。
发明内容
在一个方面,本申请提供一种系统,其包括:图像传感器,其被配置成生成图像数据;存储器装置,其被配置成存储所生成的图像数据;以及主机接口,其被配置成与主机系统通信;其中所述存储器装置与所述图像传感器堆叠,且所述存储器装置包括推断引擎,所述推断引擎被配置成使用所存储的图像数据作为到人工神经网络(ANN)的输入而生成推断结果;其中所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对存储于所述存储器装置中的数据执行矩阵算术计算;并且其中所述主机接口进一步被配置成将所述推断结果发送到所述主机系统以供处理。
在另一方面,本申请提供一种系统,其包括:第一相机,其被配置成生成第一图像流,其中所述第一相机包括第一推断引擎,所述第一推断引擎被配置成使用所述第一图像流作为到第一人工神经网络(ANN)的第一部分的输入而生成第一中间结果;第二相机,其被配置成生成第二图像流,其中所述第二相机包括第二推断引擎,所述第二推断引擎被配置成使用所述第二图像流作为到第二人工神经网络(ANN)的第一部分的输入而生成第二中间结果;处理装置或逻辑电路,其被配置成与所述第一相机和所述第二相机通信;以及主机接口,其将推断结果传送到主机系统;其中所述第一相机进一步包括将所述第一中间结果传送到所述第二相机的接口;其中所述第二相机进一步包括将所述第二中间结果传送到所述第一相机的接口;其中所述第一推断引擎使用所述第一中间结果和所述第二中间结果作为到所述第一ANN的第二部分的输入以生成第一最终结果;其中所述第二推断引擎使用所述第一中间结果和所述第二中间结果作为到所述第二ANN的第二部分的输入以生成第二最终结果;并且其中所述处理装置或逻辑电路进一步被配置成:确定所述第一最终结果是否与所述第二最终结果匹配;以及响应于确定所述第一最终结果与所述第二最终结果匹配,经由所述主机接口将输出传送到所述主机系统以供处理,其中所述输出基于所述第一最终结果或所述第二最终结果中的至少一者。
在另一方面,本申请提供一种方法,其包括:通过图像传感器生成图像数据;通过存储器装置存储所生成的图像数据,其中所述存储器装置包括推断引擎,所述推断引擎被配置成使用所存储的图像数据作为到人工神经网络(ANN)的输入而生成推断结果,且其中所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对所述所存储的图像数据执行矩阵算术计算;以及通过主机接口与主机系统通信,其中所述主机接口被配置成将所述推断结果发送到所述主机系统以供处理。
附图说明
实施例是借助于实例而非限制在附图的图中来说明的,在附图中相似参考指示类似元件。
图1示出根据一个实施例的连接到主机系统的集成图像感测装置。
图2示出根据一些实施例的使车辆被配置成收集并处理传感器数据的系统。
图3示出根据一个实施例的自主车辆。
图4-6示出根据一些实施例的用于预测的人工神经网络的训练。
图7示出根据一个实施例的具有神经网络加速器的集成图像感测装置。
图8示出根据一个实施例的用于加速神经网络计算的存储器组件。
图9示出根据一个实施例的被配置成支持神经网络计算的存储器容量。
图10示出根据一个实施例的用于人工神经网络(ANN)模型的存储器区的配置。
图11示出根据一个实施例的用于到人工神经元的输入的存储器区的配置。
图12示出根据一个实施例的用于来自人工神经元的输出的存储器区的配置。
图13示出根据一个实施例的主机系统与集成图像感测装置之间的通信。
图14示出根据一个实施例的集成图像感测装置内的通信。
图15示出根据一个实施例的在集成图像感测装置中实施的方法。
图16示出根据一个实施例的包含具有神经网络加速器的存储器装置的感测装置。
图17示出根据一个实施例的被配置成从冗余传感器收集并处理传感器数据的车辆。
图18示出根据一个实施例的被配置成使用择多表决器评估来自冗余传感器的传感器数据处理结果的车辆。
图19示出根据一个实施例的具有与存储器装置堆叠的图像传感器的感测装置。
图20示出根据一个实施例的使用忆阻器实施的尖峰神经网络。
图21示出根据一个实施例使用通过忆阻器阵列的电流尖峰来检测使用忆阻器实施的尖峰神经网络中的尖峰。
图22示出根据一个实施例的在具有神经网络加速器的感测装置中实施的方法。
图23示出根据一个实施例的在具有冗余感测装置的车辆中实施的方法。
具体实施方式
本文公开的至少一些实施例提供用以处理集成图像感测装置内的图像数据以减少到主机系统(例如,在具有或不具有高级驾驶员辅助系统(ADAS)的情况下在机动车辆或另一车辆中配置的图像感测装置)的数据业务的系统、方法和设备。
例如,集成图像感测装置可包含图像传感器、存储器装置和推断引擎,所述推断引擎被配置成将由图像传感器生成的图像转换成用于传输到主机系统以用于进一步分析的推断结果,且因此减少或消除将像素图像数据传输到主机系统的必要性。
例如,图像传感器可形成于集成电路裸片上。推断引擎可经由形成于另一集成电路裸片上的逻辑电路实施;且存储器装置的存储器单元可形成于一或多个另外的集成电路裸片上。推断引擎的集成电路裸片和存储器装置的集成电路裸片可堆叠在图像传感器的集成电路裸片的背面上,使用硅通孔(TSV)(或通过引线键合或其它互连技术)连接,且围封在集成电路封装内。任选地,集成图像感测装置的集成电路封装的引脚可被配置成使用存储器装置或存储装置的标准化通信协议与主机系统通信,如同集成图像感测装置是存储装置或存储器芯片一样。例如,集成图像感测装置可被封装成具有球栅阵列(BGA)固态驱动器(SSD)的形式因子和/或接口。
替代地,图像传感器、推断引擎和/或集成电路存储器可被围封在分开的集成电路封装中,所述分开的集成电路封装经由配置于图像感测装置的外壳内的印刷电路板连接。图像感测装置可经由存储器总线或外围总线连接到主机系统,如同图像感测装置是存储器装置或存储装置一样。
配置于图像感测装置内的高数据通信带宽允许图像传感器以每秒高帧数捕获图像,所述帧数比允许通过从外围装置到主机系统的传统连接传输的帧数更高。推断引擎处理图像和/或执行分析以生成数据大小显著小于由图像传感器生成的像素图像的大小的推断结果。因此,可减少图像感测装置到主机系统的上游数据业务。
例如,根据本文公开的一个实施例的图像感测装置可在车辆(例如,自主驾驶系统)的ADAS中使用。图像感测装置的分析功能允许车辆将其基于图像的ANN处理的一部分卸载到图像感测装置,且因此释放其处理能力和通信带宽用于其它任务。车辆可基于每秒帧数高于由图像感测装置与车辆处理器之间的连接的通信带宽限制的帧数的图像来作出驾驶决策。
在汽车和其它应用中使用的相机中的图像传感器可生成每帧数百万像素和每秒若干帧。此数据业务通常被路由到中央处理单元(CPU)以供处理。此类布置会阻塞CPU,并最终导致对每秒可处理的帧数的限制。本文公开的图像感测装置的技术消除或减少此类限制。
当使用具有存储器和与图像传感器堆叠的推断引擎的集成图像感测装置时,图像数据被简化为可由CPU(例如,在另一ANN中)进一步处理的推断结果。例如,用于ADAS的ANN可包含被配置成处理来自相机的图像的部分。此部分可在集成图像感测装置的推断引擎中配置成生成从集成图像感测装置传送的神经元输出。代替图像数据,神经元输出可以从集成图像感测装置传输,以允许ADAS的ANN的剩余部分完成其推断。
例如,在集成图像感测装置的推断引擎中实施的ANN的部分可执行基于机器学习的分析,例如像素分段、特征提取、对象检测和/或对象分类,使得可减少或消除将关于个别像素的数据传输到主机系统的必要性。
优选地,集成图像感测装置中的存储器装置具有宽输入/输出连接,以通过针对机器学习任务优化的图像传感器和推断引擎提供高带宽。任选地,存储器装置可包含用于加速例如点积和张量存取等某些ANN运算的内置函数。
图1示出根据一个实施例的连接到主机系统104的集成图像感测装置101。在图1中,集成图像感测装置101具有图像传感器109、存储器装置107、推断引擎108和通信接口106。
在一个实施例中,图像传感器109、存储器装置107、推断引擎108和通信接口106形成于多个集成电路裸片上,所述多个集成电路裸片堆叠以形成三维集成电路(3D IC)。硅通孔(TSV)可用于在图像传感器109、存储器装置107和推断引擎108当中实施高通信带宽。此外,存储器装置107可被配置成加速和/或优化推断引擎108的操作,如下文中进一步论述。
任选地,集成图像感测装置101可被围封在具有到主机系统104的控制器102的输入/输出连接的一个集成电路封装中。例如,集成图像感测装置101可被封装成具有图像传感器109和推断引擎108的BGA SSD。例如,集成图像感测装置101与主机系统104之间的连接可根据用于外围组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线、通用串行总线(USB)总线和/或存储区域网络(SAN)的通信协议。
在一些实施方案中,推断引擎108包含可编程处理单元;并且用于处理单元的指令可存储在存储器装置107中以定制推断引擎108的操作。
例如,ANN模型可存储在存储器装置107中;并且推断引擎108被配置成将ANN模型应用于来自图像传感器109的图像以生成推断结果且将推断结果存储在存储器装置107中。主机系统104具有一或多个处理装置103和控制器102以经由集成图像感测装置101与主机系统104之间的通信链路接入通信接口106。主机系统104可发布读取命令以检索存储在存储器装置107中的推断结果。例如,通信接口106可包含根据非易失性存储器主机控制器接口规格(NVMHCIS)或NVM高速(NVMe)的接口。例如,集成图像感测装置101的NVMe接口可用于从主机系统104接收数据和命令。例如,主机系统104可发送写入命令以将ANN模型存储到集成图像感测装置101的存储器装置107中,并且可发送读取命令以根据NVMe协议从存储器装置107检索推断引擎108的推断结果。例如,通信接口106可被配置成允许主机系统104作为固态驱动器(SSD)存取集成图像感测装置101的存储器装置107。任选地,通信接口106(或另一接口)可包含NVMe接口,其用于与外部固态驱动器(SSD)(例如,与集成图像感测装置101和主机系统104分开)通信,以存储由推断引擎108生成的推断结果和/或由图像传感器109生成或来源于由图像传感器109生成的图像的图像数据。
例如,集成图像感测装置101可配置在图2所示的车辆中。
图2示出根据一些实施例的使车辆111被配置成收集并处理传感器数据的系统。
图2中的车辆111具有数据存储装置112、图像感测装置101(例如,如图1所示)、ANN125和ADAS 105,其被配置成处理传感器数据,包含来自图像感测装置101的输入,以生成用于车辆111的控制信号。
一般来说,可在车辆111上配置一或多个传感器(例如,101)以生成输入到ADAS105和/或数据存储装置112的传感器数据。数据存储装置112和/或ADAS 105可被配置成使用ANN 125而生成推断结果。所述推断结果可包含用于操作或驱动车辆111的控制信号、对车辆111的维护服务的建议等。
在一些实施方案中,传感器(例如,101)所生成的数据的至少一部分在ADAS 105中用于驾驶辅助且在ANN 125中用于维护预测。任选地,ANN 124的输出可在数据存储装置112中以及ADAS 105中使用。ANN 125可以是ADAS 105的一部分。
图像感测装置101可配置于数码相机、激光雷达、雷达、超声波声纳等中。图像感测装置101的推断引擎108被配置成处理感测装置101内的图像且将其推断结果传送到ADAS105、ANN 125和/或数据存储装置112。
任选地,可当来自感测装置101的推断输出满足某些要求时或当ADAS 105或ANN125确定需要进一步分析生成来自感测装置101的推断结果的图像时,ADAS 105选择性地请求感测装置101以从感测装置101传输所选择的图像。此类图像可以是传感器数据121的一部分,其进一步经分析以进一步训练服务器119上的ANN 125以生成所要推断结果(例如,123)。
例如,当感测装置101中和/或ADAS 105中的对象辨识或分类遇到未知、困难、不确定性时,或当将进一步分析情境时,ADAS 105可请求感测装置101传输对应图像以存储于数据存储装置112中。所存储的数据可随后由服务器119和/或维护服务设施127进一步处理。
一般来说,车辆111可以具有为ADAS 105提供输入的其它传感器,例如制动传感器、速度传感器、加速度传感器、安全气囊传感器、GPS(全球定位系统)接收器、音频传感器/麦克风、振动传感器、力/应力传感器、变形传感器、运动传感器、温度传感器等。一些传感器101可主要被配置成监测车辆111的环境以进行驾驶决策和/或辅助;并且其它传感器101可主要被配置成监测例如内燃机、排气系统、电动机、制动器、轮胎、电池等车辆111的一或多个组件的操作和/或稳定性。
一般来说,随时间推移的传感器(例如,101)的输出作为传感器数据流提供给ADAS105和/或ANN 125,以提供驾驶辅助(例如,自主驾驶)和维护预测。在图2中,图像感测装置101进一步被配置成提供从其图像生成的推断结果作为传感器数据流的一部分,而不是将图像传输到实施ANN 125的车辆111的主处理器。因此,可减小传感器数据流的数据大小,可减小从感测装置101到ADAS 105和/或数据存储装置112的通信带宽,且可减小ADAS105和/或数据存储装置112上的计算负载。
ANN 125可包含SNN,其被配置成对传感器数据的基于时间的变化进行分类和/或检测与车辆111的传感器数据的已知模式的偏差。当ANN 125检测到与已知模式的偏差时,对应于所述偏差的传感器数据可存储在数据存储装置112中,以用于进一步分析和/或用于ANN 125的进一步训练。
车辆111的数据存储装置112可被配置成记录传感器数据保持一段时间,所述传感器数据可以在ANN 125中用于预测性维护和/或用于进一步训练ANN 125。维护服务设施(例如,127)可从数据存储装置112下载传感器数据121,且将传感器数据121和对应的推断结果数据123提供给服务器119,以促进ANN 125的训练。
任选地或组合地,数据存储装置112配置有机器学习模块以定制和/或训练安装于车辆111中的ANN 125。
车辆111可具有无线通信装置,以经由无线信号113和通信网络117与远程服务器119通信。远程服务器119通常配置在远离车辆111在其上服务的道路114的位置处。例如,车辆111可提供一些传感器数据121给服务器119,且接收来自服务器119的对ANN 125的更新。
通信网络117可以是具有一或多个基站(例如,115)以接收无线信号(例如,113)的蜂窝式电话网络。替代地或组合地,通信网络117可包含因特网,其中由车辆113传输的无线局域网信号(例如,113)在接入点(例如,115)中接收,以进一步传送到服务器119。在一些实施方案中,车辆111使用到卫星118或通信气球的通信链路116,以与服务器119通信。
服务器119还可与一或多个维护服务设施(例如,127)通信以接收车辆(例如,111)的传感器数据121和/或所要推断结果数据123。
例如,所要推断结果数据123可由检查车辆111的传感器数据121(例如,来自图像感测装置101的图像)和/或相关条件的操作人员生成。例如,所要推断结果数据123可包含车辆(例如,111)的组件的检查记录和/或服务记录。例如,检查记录和/或服务记录可指示在其在维护服务设施(例如,127)处的服务期间检查的组件的磨损程度、失效或发生故障的组件的识别等。在某一时间周期内获得的与所要推断结果数据123相关的车辆(例如,111)的传感器数据121可用以训练服务器119处的ANN 125,以改进ANN 125的推断能力。
可在维护服务设施127处将更新的ANN 125安装在车辆111中。替代地,可将更新的ANN 125传输到车辆111,以无线更新车辆111。
负责处理图像感测装置101中生成的图像的ANN 125的一部分可配置在用于图像感测装置101的推断引擎108的存储器装置107中。推断引擎108处理在图像感测装置中生成的图像(例如,由图像传感器109生成的图像)且使从图像生成的推断结果从图像感测装置101传输到ADAS 105。因此,可减少从感测装置101到ADAS 105的数据业务而不牺牲从图像推断的数据的质量。
图3示出根据一个实施例的自主车辆111。例如,图2的系统中的车辆111可使用图3的自主车辆111来实施。
一般来说,车辆111可包含信息娱乐系统149、通信装置139、一或多个传感器(例如,101)和计算机系统131,所述计算机系统连接到车辆111的一些控制件,例如用于车辆111的方向的转向控制件141、用于车辆111的停止的制动控制件143、用于车辆111的速度的加速控制件145等。在一些实施例中,图2的系统中的车辆111具有类似配置和/或类似组件。
图3的车辆111配置有高级驾驶员辅助系统(ADAS)105。车辆111的ADAS 105可具有人工神经网络(ANN)125,用于基于图像感测装置101中所生成的图像进行对象检测、辨识、识别和/或分类。可使用图1的集成图像感测装置101来实施ANN 125的图像处理部分。
使用图像感测装置101的集成推断引擎108在所述图像感测装置中实施ANN 125的至少一部分。
例如,基于图像感测装置101中生成的图像而操作的ANN 125的一部分可存储在图像感测装置101中。推断引擎108根据ANN 125的部分执行通信,使得从成像感测装置101到车辆111的计算机系统131的通信量包含来自在图像感测装置101中实施的ANN 125的部分的神经元输出和/或推断结果,而非个别像素的图像数据。
在一些实施方案中,对在图像感测装置101中实施的ANN 125的部分的计算并不取决于未在图像感测装置101中生成的传感器数据。
可替代地,对在图像感测装置101中实施的ANN 125的部分的计算可进一步基于未在图像感测装置101中生成的传感器数据。例如,计算机系统131将传感器数据提供给图像感测装置101(例如,通过经由通信接口106将传感器数据写入到存储器装置107中)。通过根据在图像感测装置101中存储/实施的ANN 125的部分组合由计算机系统131提供的传感器数据和由图像感测装置101生成的图像数据,可减少来自图像感测装置101的推断结果的量(例如,以划分ANN 125的一些方式)。在将相关传感器数据发送到图像感测装置101的数据业务小于推断结果中的数据大小的减小时,发送用于在图像感测装置101中进行处理的相关传感器数据可有益于减少图像感测装置101与车辆111的计算机系统131之间的总体通信业务。任选地,用于在图像感测装置101中实施的ANN 125的部分的选择可至少部分地基于图像感测装置101与计算机系统131之间的数据业务的最小化。
车辆111的计算机系统131可包含一或多个处理器133、数据存储装置112以及存储器135,所述存储器存储固件(或软件)147,包含用于ADAS 105的计算机指令和数据模型。
车辆111的传感器可包含可见光相机、红外相机、激光雷达、雷达或声纳系统、外围传感器、全球定位系统(GPS)接收器、卫星定位系统接收器、制动传感器和/或安全气囊传感器。另外,车辆111的传感器可包含音频传感器(例如,麦克风),其被配置成监测来自车辆111中的各种组件和位置的噪声、振动传感器、压力传感器、力传感器、应力传感器,和/或变形传感器(其被配置成测量车辆111的组件上的负载)、加速计和/或陀螺仪传感器,其测量车辆111的一些组件的运动等。此类传感器可用于监测组件的运行状态和/或稳定性,用于进行预测性维护。
传感器(例如,101)可将实时传感器数据流提供给计算机系统131。由车辆111的图像感测装置101生成的传感器数据可包含使用利用人类眼睛可见的光进行拍摄的相机,或使用红外灯进行拍摄的相机,或声纳、雷达或激光雷达系统来捕获对象的图像。优选地,图像由图像感测装置101的推断引擎108处理以生成作为图像感测装置101的输出的推断结果,并且因此减少或消除将像素图像数据传输到计算机系统131的必要性。
例如,具有图像感测装置101的相机可用于获得车辆111行进的车道信息,其可由ANN 125处理以生成针对车辆111的控制信号。例如,可使用具有图像感测装置101的相机来监测车辆111的组件的操作状态/稳定性,其可由ANN 125处理以预测或安排维护服务。
车辆111的信息娱乐系统149可用于呈现来自图像感测装置101的数据和/或推断结果。例如,可在图像感测装置101中生成具有减小的分辨率和刷新频率的经压缩图像,并且将其传输到信息娱乐系统149以供呈现给车辆111的乘客。任选地,通信装置139可建立到车辆111的乘客的移动装置的连接,以进行所述呈现。
当车辆111配置有ADAS 105时,ADAS 105的输出可用于在自主驾驶期间控制(例如,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所遇到的情境的虚拟现实演示,包含来自图像感测装置101的展示车辆111的环境的图像;并且所要/预期推断结果数据123可包含由操作人员响应于所述情境的虚拟现实演示而生成的响应。
监督机器学习模块171可调整人工神经网络125以减少/最小化基于传感器数据121生成的预测129与由操作人员生成的所要/预期推断结果数据123之间的差异。
图3的监督学习171可以基于一群车辆的传感器数据和对应的所要/预期推断结果数据123而应用在服务器119中,以生成用于这一群车辆的通用ANN。
图3的监督学习171可基于车辆的传感器数据和推断结果数据123应用于车辆111中,以生成定制/个性化ANN 125。例如,通用ANN 125可最初用于车辆111中;且车辆111的传感器数据以及特定针对车辆111的所要/预期推断结果数据123可用以进一步训练车辆的ANN 125,以用于车辆111中的ANN 125的定制/个性化。
在图5中,使用非监督机器学习的模块175来训练或优化人工神经网络125以促进异常检测173。非监督机器学习模块175被配置成调整ANN(例如SNN),以生成传感器数据121中的正常分类、群集或所辨识模式,使得可使用与传感器数据121中的正常分类、群集或所辨识模式的偏离程度来发信号通知异常的检测173。
例如,可使用异常检测173来保留与异常相关联的传感器数据121,以供进一步分析。响应于车辆111中的异常检测173,计算机系统131可将读取命令发布到图像感测装置101以从图像感测装置101检索与异常相关联的图像数据且将检索到的图像数据存储在数据存储装置112中。与异常相关联的图像数据可临时保存在图像感测装置101的存储器装置107中,并且在一段时间内使用图像感测装置101与数据存储装置112之间的可用通信带宽加载到数据存储装置112,而不影响ADAS 105的正常操作。
当车辆111处于维护服务设施127中时,可从数据存储装置112检索与异常相关联的图像数据(和其它传感器数据)以生成所要/预期推断结果数据123,从而使用图4的监督学习171进一步训练ANN 125。
任选地,可以使用监督机器学习171训练ANN 125,如图6中所示。监督学习171可用于最小化根据传感器数据121使用ANN 125做出的预测179与预期分类177之间的分类差异。
例如,在没有事故、接近事故的事件或指示异常条件的用户输入的情况下,可采用“正常”分类。可使用事故、接近事故的事件或用户输入来识别导致所述事故、事件或用户输入的传感器数据的“异常”的预期分类。可使用监督机器学习171来训练人工神经网络125,以进行与预期分类177具有减小/最小化的差异的分类179。
任选地,集成图像感测装置101可被配置成加速经由推断引擎108实施的人工神经网络(ANN)125的一部分的计算。
例如,推断引擎108可包含神经网络加速器159,其专用于执行涉及人工神经网络(ANN)125的计算的至少一部分,例如向量和张量的点积、乘法和累加运算等。任选地,还可在集成图像感测装置101中执行不涉及由图像传感器109生成的图像的一些ANN处理(例如,以减少车辆111的计算机系统131上的计算负载)。
在集成图像感测装置101中配置的计算可用于减少将传输到处理器133以使用或应用ANN 125的数据量和/或减少在评估ANN 125的输出和/或训练ANN 125时处理器133的计算任务。此类布置可产生来自集成图像感测装置101的较快输出和/或较低能量使用,这是因为数据将不必移进移出集成图像感测装置101到专用的独立神经网络加速器。集成图像感测装置101在处理与ANN 125相关的数据时的计算能力使得机动车辆111的计算机系统131能够具有用于平面关键任务(例如,由ADAS 105进行的自主驾驶)的计算资源和通信带宽。
图7示出根据一个实施例的具有神经网络加速器159的集成图像感测装置101。例如,图7的集成图像感测装置101可用于实施图2或3中所示的车辆111的图像感测装置101。
在图7中,集成图像感测装置101具有被配置成与主机处理器(例如,图3中的133)或主机系统(例如,图1中的104)通信的主机接口157。例如,主机处理器(例如,133或104)与主机接口157之间的通信可至少部分地根据用于外围组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线、通用串行总线(USB)总线和/或存储区域网络(SAN)的通信协议。
例如,主机接口157可被配置为类似于数据存储装置(例如,112)的主机接口。
例如,主机计算机系统131或104可与主机接口157通信以从来自图像传感器109的图像检索由集成图像感测装置101而不是图像生成的推断结果,以减少通过主机接口157的数据业务。
任选地,主机接口157可进一步用于在图像感测装置101中接收车辆111的其它传感器生成的传感器数据121;并且传感器数据121和来自图像传感器109的图像组合在实施于集成图像感测装置101中的ANN 125的一部分中以生成推断结果。
在图7中,存储器组件161到163中的每一个可以是配置成存储数据的存储器集成电路。存储器组件161到163的集成电路裸片可堆叠到图像传感器109的背面;并且图像传感器109与存储器组件161到163的集成电路裸片之间的硅通孔可用于提供用于将由图像传感器109生成的图像存储到存储器组件161到163中的至少一些中以用于由控制器151和/或神经网络加速器159处理的高通信带宽。例如,图像传感器109的不同区段可使用硅通孔将图像数据存储到不同存储器组件161到163或存储器组件(例如,161或163)的不同区段。
神经网络加速器159和控制器151可经由形成于一或多个集成电路裸片上的逻辑电路来实施,所述集成电路裸片进一步堆叠在存储器组件161到163的集成电路裸片上。神经网络加速器159的集成电路裸片与控制器151和存储器组件161到163的集成电路裸片之间的硅通孔可用于提供用于处理存储在存储器组件161到163中的图像以生成推断结果的高通信带宽。推断结果可存储在控制器151的本地存储器153和/或存储器组件161到163中的一些中,以供主机系统104(例如,车辆111的计算机系统131)检索。例如,不同存储器组件161到163,或存储器组件(例如,161或163)的不同区段可使用硅通孔来促进对神经网络加速器159的不同部分、控制器151和图像传感器109的并行存取。
一般来说,一些存储器集成电路是易失性的且需要电力来维持所存储的数据;而一些存储器集成电路是非易失性的且即使在不被供电时仍可保持所存储的数据。存储器组件161到163可包含易失性存储器和/或非易失性存储器。存储器组件161到163可实施不同类型的存储器或相同类型的存储器。
非易失性存储器的实例包含快闪存储器;基于“与非”(NAND)逻辑门、“或非”(NOR)逻辑门形成的存储器单元;相变存储器(PCM)、磁存储器(MRAM);电阻式随机存取存储器;交叉点存储装置和存储器装置。交叉点存储器装置可使用无晶体管存储器元件,所述无晶体管存储器元件中的每一者具有在一起堆叠成列的存储器单元和选择器。存储器元件列经由在垂直方向上铺设的两个线路排布来连接,其中在层中的一个方向上铺设的一个排布的线路位于存储器元件列上方,且另一排布的线路在另一方向上,且在位于存储器元件列下方的层中。可个别地在两个层中的每一层上的一个线路的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作用于处理和存储的统一内存池。非易失性存储器的另外的实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电子可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
集成图像感测装置101可具有控制器151,所述控制器包含易失性本地存储器153和至少一个处理装置155。
控制器151的本地存储器可以是嵌入式存储器,其被配置成存储用于执行控制处理装置155的操作的各种过程、操作、逻辑流程和例程的指令,包含处置集成图像感测装置101与车辆111的处理器(例如,133)之间的通信和本文中所描述的其它功能。任选地,控制器151的本地存储器151可包含用于存储微码的只读存储器ROM,和/或存储例如存储器指针、所获取数据等的存储器寄存器,和/或易失性存储器,例如动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
在图7中,集成图像感测装置101包含耦合到控制器151和/或存储器组件161到163的神经网络加速器159。
例如,神经网络加速器159可被配置成比控制器151的处理装置155更高效地执行矩阵算术计算。涉及ANN 125的计算具有矩阵乘法和累加运算,这对于通用处理器(例如,133、155)来说可以是计算密集的。使用神经网络加速器159来执行矩阵算术计算可减少将传输到车辆111的处理器133的数据,并且减少处理器133、155的计算工作负载。
在ANN 125包含尖峰神经网络(SNN)时,用于控制SNN神经元的激活电平的一或多个微分方程的模拟对于通用处理器(例如,133、155)可以是计算密集的。任选地,神经网络加速器159可使用特殊硬件来模拟一或多个微分方程,并且因此改进实施SNN时的计算效率。
在一些实施方案中,神经网络加速器159是与控制器151和/或存储器组件161到163分离的集成电路装置。替代地或组合地,神经网络加速器159与集成电路裸片中的控制器151集成。替代地或组合地,神经网络加速器159的一部分可集成在存储器组件161到163中的至少一者的集成电路裸片上,如图8中所示。
图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被配置成处理神经网络中的神经元的尖峰。替代地,集成图像感测装置101的神经网络加速器159和/或处理器133可被配置成处理神经元的尖峰和/或到SNN的输入的累加。
例如,图像传感器109以预定频率生成图像。每一图像以循环方式存储到存储器组件161到163中,其中最新的图像写入在最旧的图像之上。存储器组件161到163进一步存储车辆111的ANN 125的负责处理来自图像传感器109的图像的部分。控制器151根据ANN 125的部分来处理存储器组件161到163中的图像以生成推断结果。所述推断结果存储在存储器组件161到163中和/或控制器151的本地存储器153中,以供主机系统104(例如车辆111的计算机系统131)读取。
任选地,集成图像感测装置101进一步从配置在车辆111上的至少一个传感器接收传感器数据流,并且根据存储在存储器组件161到163中的ANN 125的部分基于来自图像传感器109的传感器数据流和图像而生成推断结果。
配置在集成图像感测装置101内的神经网络加速器159基于人工神经网络125、来自图像传感器109的图像和传感器数据流执行计算的至少一部分。
任选地,神经网络加速器159可被配置在与控制器151分开和/或与存储器组件161到163分开的集成电路裸片上。
任选地,神经网络加速器159可被配置在集成电路裸片上,所述集成电路裸片包含集成图像感测装置101的控制器151或集成图像感测装置101的存储器组件160、161或163。
神经网络加速器159可被配置成使用存储在集成图像感测装置101的数据执行计算,例如用于ANN的矩阵算术计算和/或用于SNN的微分方程模拟。
矩阵算术计算的实例包含矩阵乘法和累加运算。在用于使用存储在集成图像感测装置101中的数据生成矩阵算术计算的结果的计算之后,神经网络加速器159可在数据检索操作(例如,响应于读取命令)中提供结果作为集成图像感测装置101的输出。替代地或组合地,矩阵算术计算的结果可在集成图像感测装置101中缓冲,作为组合经由主机接口157中接收到的读取命令从非易失性存储器检索的数据矩阵而执行的下一矩阵计算的运算数。
在人工神经网络(ANN)125包含尖峰神经网络(SNN)时,神经网络加速器159可被配置成模拟控制尖峰神经网络(SNN)中的神经元的激活电平的微分方程。任选地,存储器组件160被配置成根据预定模式存储尖峰神经网络中的神经元的状态;并且神经网络加速器被配置成根据微分方程随时间推移自动更新神经元的状态。例如,神经网络加速器159可被配置成经由非监督机器学习来训练尖峰神经网络(SNN)以检测异常。
由神经网络加速器159根据人工神经网络(ANN)125执行的计算涉及具有对集成图像感测装置101的不同使用模式的不同数据类型。
例如,使用人工神经网络(ANN)125进行预测包含使用指定人工神经网络(ANN)125的模型的数据、提供给人工神经元的输入数据,以及由人工神经元生成的输出数据。
可将集成图像感测装置101的存储器容量分区成用于不同类型的ANN相关数据的不同部分。不同部分可单独被配置成根据其由其中配置集成图像感测装置101的计算机系统131的神经网络加速器159和/或处理器133的使用模式来优化对应数据的存取和存储。
人工神经网络(ANN)125的模型可包含指定ANN 125中的个别人工神经元的静态属性以及ANN 125中的神经元连接性的参数。ANN 125的模型数据是静态的,且在使用ANN 125进行的预测计算期间不改变。因此,模型数据的使用模式为大部分读取。然而,ANN 125的模型数据可在经更新的ANN 125安装时改变。例如,车辆111可从服务器119下载更新后的ANN125到车辆111的集成图像感测装置101以更新其预测能力。ANN 125的模型数据还可在ANN125的训练期间或之后使用机器学习技术(例如,171或175)来改变。优选的是,配置集成图像感测装置101的存储器单独分区或区来存储模型数据,其中分区或区根据为模型数据的具体使用模式(例如,大部分读取、不频繁更新)优化存储器单元的配置参数来操作。例如,在使用基于NAND逻辑门的快闪存储器来实施存储器单元时,ANN模型分区/区中的存储器单元可配置成在多层级单元(MLC)模式、三层级单元(TLC)模式或四层级单元(QLC)模式下操作,其中每一存储器单元存储两个、三个或四个位以增加存储能力。
提供给ANN 125中的人工神经元的输入数据可包含外部输入和内部输入。外部输入通常由车辆111的传感器(例如,109)而不是由ANN 125中的人工神经元生成。外部输入可以循环方式保存,使得预定驱动长度的最近时间周期的输入数据可在集成图像感测装置101中找到。因此优选的是,配置集成图像感测装置101的单独存储器分区或区来存储外部输入数据,其中分区或区根据为外部输入数据的存储模式(例如,增强的持久性、循环覆写)优化存储器单元的配置参数来操作。例如,在使用基于NAND逻辑门的快闪存储器来实施存储器单元时,ANN输入分区/区中的存储器单元可配置成在单层级单元(SLC)模式下操作,其中每一存储器单元存储一个数据位,以在循环覆写操作中获得改进的持久性。
在一些实施方案中,人工神经元可具有在预测计算期间响应于输入而随时间推移改变的状态变量。例如,尖峰神经元的激活电平可随时间推移而改变,并且被视为尖峰神经元的动态状态变量。在一些实施方案中,人工神经元的此类状态变量数据具有与外部输入数据类似的存储使用模式;且因此,状态变量数据可存储被配置用于外部输入数据的分区或区中。在其它实施方案中,人工神经元的状态变量数据保持在缓冲器中,且没有外部输入存储频繁;且因此,另一分区/区可被配置成用于存储人工神经元的动态状态变量数据。
由ANN 125中的人工神经元生成的输出数据可经缓冲以供计算机系统131的神经网络加速器159和/或处理器133进一步存取。输出数据可包含外部输出和内部输出。外部输入由人工神经元生成,作为来自ANN 125的输出,例如ANN 125所进行的分类或预测的结果。ANN 125的输出通常由计算机系统131的处理器133进一步处理。外部输入可周期性地保存(例如,以类似于状态变量数据的存储的方式)。内部输出和/或外部输出中的一些可以是到ANN 125中的人工神经元的内部输入。一般来说,可能不必将来自数据存储装置的缓冲器的内部输出存储到存储器组件。在一些实施方案中,在集成图像感测装置101的缓冲容量不足以保持整个状态变量数据和/或内部输出时,集成图像感测装置101可使用调换分区/区来扩展缓冲器的容量。调换分区/区可被配置用于优化的随机存取且用于改进的持久性。
外部输出和/或神经元的动态状态可以循环方式保存于单独输出分区或区中,使得可周期性地存储神经元的外部输出数据和/或动态状态,并且可在集成图像感测装置101中发现最新集合的外部输出和/或动态状态。可选择性地存储外部输出和/或神经元的动态状态,因为这些数据中的一些可由ANN根据存储在输入分区或区中的外部输入重新生成。优选地,输出分区或区被配置成存储无法根据存储在输入分区或区中的外部输入创建的外部输出和/或动态状态的一或多个集合。在以循环方式将数据存储在输入/输出分区或区中时,擦除最旧的所存储数据集合以为最新的数据集合腾出空间。ANN输入/输出分区/区可配置成用于优化的循序写入流,以用于将来自数据存储装置的缓冲器的数据复制到数据存储装置的存储器组件中的存储器单元中。
图9示出根据一个实施例的被配置成支持神经网络计算的存储器容量181。例如,图7的集成图像感测装置101的存储器组件161到163的存储器容量181可根据图9配置以支持神经网络计算。
图9的存储容量181可使用集成图像感测装置101的存储器组件(例如,161到163)的集合来实施。
可在集成图像感测装置101的存储容量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中的存储器操作(例如以随机读取/写入存取周期性地覆写数据而得到的改进的持久性)。
集成图像感测装置101包含缓冲器,其被配置成存储人工神经网络(ANN)125的临时/中间数据,例如ANN 125中的人工神经元的内部输入/输出。
任选地,调换区可配置于存储容量181中以扩展缓冲器152的容量。
任选地,地址映射191包含主机接口157中接收到的逻辑存储器地址到人工神经元的存取数据和人工神经元的身份之间的映射。因此,存取一个区中的人工神经元的一种类型数据的读取或写入命令可使控制器151存取另一区中的人工神经元的另一类型数据。
例如,响应于对将神经元的外部输入数据写入到数据存储装置185的存储容量181中的请求,可使用地址映射191来计算ANN模型区183中的神经元的模型参数的地址,且将所述模型参数读取到缓冲器152中,以允许神经网络加速器159执行对所述神经元的输出的计算。神经元的输出可保存在缓冲器152中,作为到其它神经元的内部输入(例如为了减少写入放大)。另外,连接到所述神经元的其它神经元的身份还可从ANN模型区183检索到缓冲器152中,这允许神经网络加速器159和/或处理器进一步处理ANN125中的输出的传播。从ANN模型区183检索模型数据可与将外部输入数据存储到神经元输入区185中并行执行。因此,车辆111的计算机系统131的处理器133不必在读取命令中明确地发送从ANN模型区183检索模型数据。
类似地,响应于读取神经元的输出数据,地址映射191可用以计算存储在ANN模型区183中的神经元的模型参数的地址,且将模型参数读取到缓冲器152中,以允许神经网络加速器159应用缓冲器152中的内部输入来执行神经元的输出的计算。计算出的输出可以作为对读取神经元的输出数据的响应而提供,而集成图像感测装置101不必将输出数据存储在存储器组件(例如161到163)中。因此,处理器133和/或神经网络加速器159可经由将输入写入到神经元和/或从神经元读取输出来控制神经元的计算。
一般来说,到ANN 125的传入外部输入数据可以是由传感器(例如,109)直接生成而不经处理器133和/或神经网络加速器159处理的原始传感器数据121。或者,已由ANN 125的处理器133从来自传感器101的信号处理的间接传感器数据121可作为外部输入数据提供。传入的外部输入数据可在主机接口157中被接受,且以循环方式写入到神经元输入区185中,且在用于神经网络加速器159的缓冲器152中自动缓冲,以使用存储在ANN模型区183中的模型生成神经元输出。神经网络加速器159所生成的输出可进一步缓冲为内部输入,以用于所述模型在ANN模型区183中的进一步应用。当外部输出变为可用时,集成图像感测装置101可用外部输出的可用性的指示来报告写入请求的完成。任选地,控制器151和/或神经网络加速器159可生成内部读取命令,以在生成外部输出时在ANN 125中传播信号。替代地,主机处理器133可通过选择性地读取神经元的输出来控制信号在ANN 125中的传播;且集成图像感测装置101可主动缓冲缓冲器152中可能需要的数据以加速ANN计算。
图10示出根据一个实施例的用于人工神经网络(ANN)模型的存储器区183的配置。例如,图10的配置可在具有图9的逻辑存储器容量181的图7的集成图像感测装置101中实施。例如,图10的设置193可以是图9的区优化设置192的一部分。
图10的配置将ANN模型区183映射到至少一个存储器组件A 161。优选地,与托管ANN数据的其它区(例如,185和187)的存储器组件(例如,163)并行地,至少一个存储器组件A 161可由控制器151使用。例如,存储器组件A 161可在与其它区(例如,185和187)的集成电路封装不同的集成电路封装中。替代地,存储器组件161到163形成于嵌入在同一集成电路封装中的单独集成电路裸片上。替代地,存储器组件161到163可形成于集成电路裸片的单独区上,其中所述单独区可大体上并行操作(例如,用于读取、用于擦除和/或用于写入)。
在图10中,将设置197优化为大部分读取和不频繁更新的使用模式。
图11示出根据一个实施例的用于到人工神经元的输入的区185的配置。例如,图10的配置可以在图7和/或9所示的集成图像感测装置101中实施。例如,图10的设置195可以是图9的区优化设置192的一部分。
图11的配置将神经元输入区185映射到至少一个存储器组件B 163。优选地,与托管ANN数据的其它区(例如,183和187)的存储器组件(例如,161)并行地,至少一个存储器组件B 163可由控制器151使用。例如,存储器组件B 163可在与其它区(例如,183和187)的集成电路封装不同的集成电路封装中。替代地,存储器组件161到163形成于嵌入在同一集成电路封装中的单独集成电路裸片上。替代地,存储器组件161到163可形成于集成电路裸片的单独区上,其中所述单独区可大体上并行操作(例如,用于读取、用于擦除和/或用于写入)。
在图11中,在记录以固定时间间隔采样的连续输入数据流时,设置197被优化为在循环顺序覆写中增强耐久性的使用模式。
图12示出根据一个实施例的用于来自人工神经元的输出的区187的配置。例如,图10的配置可以在图7和/或9所示的集成图像感测装置101中实施。例如,图10的设置197可以是图9的区优化设置192的一部分。
图12的配置将神经元输出区187映射到至少一个存储器组件C 162。优选地,与托管ANN数据的其它区(例如,183和185)的存储器组件(例如,161和163)并行地,至少一个存储器组件C 162可由控制器151使用。例如,存储器组件C 162可在与其它区(例如,183和185)的集成电路封装不同的集成电路封装中。替代地,存储器组件161到163形成于嵌入在同一集成电路封装中的单独集成电路裸片上。替代地,存储器组件161到163可形成于集成电路裸片的单独区上,其中所述单独区可大体上并行操作(例如,用于读取、用于擦除和/或用于写入)。
在图12中,将设置197优化为用于结合随机存取的周期性覆写的经缓冲数据的使用模式。例如,存储器单元经由优化设置193到197配置,以便以高于ANN模型区183中但低于神经元输入区185中的频率在神经元输出区187中更新/覆写。
通信协议/接口可被配置成允许集成图像感测装置在减少到主机系统104的数据业务的情况下执行动态神经网络加速。
例如,车辆111的主处理器(例如,133)可以向集成图像感测装置101提供写入命令,以将人工神经网络的模型存储在模型分区(例如,183)中。
为了在分类和/或预测中使用ANN模型,车辆111的主机处理器(例如,133)可任选地将用于ANN 125的输入数据流式传输到神经元输入分区(例如,185)中。存储装置112的神经网络加速器159可以根据地址映射191自动地将来自图像传感器109的图像和来自主机处理器133的输入数据(如果存在)应用到存储在ANN模型分区(例如,183)中的模型。集成图像感测装置101使得计算出的输出可用于在ANN 125中传播。优选地,通过缓冲器152使计算出的输出可供神经网络加速器159使用,而无需将中间输出存储到存储器组件(例如,161到163)中。因此,可以减少主机处理器(例如,133)与集成图像感测装置101之间用于输送神经元的输出的数据通信。当输出已经传播到ANN 125中的输出神经元时,集成图像感测装置101可提供对来自主机处理器(例如,133)的请求的响应。所述响应指示来自ANN 125中的神经元的外部输出可用。作为响应,车辆111的主机处理器(例如,133)可任选地发出读取命令,以检索所述外部输出以供进一步处理。
图13示出根据一个实施例的主机系统(例如,104)与集成图像感测装置101之间的通信。例如,如图13所示的通信可实施于具有图1或7所示的集成图像感测装置101的图2或3的车辆111中。
在图13中,主机系统(例如,104)的处理器133可以配置有一组简化的指令201以执行神经网络计算,因为涉及ANN 125的一些计算是由集成图像感测装置101内的神经网络加速器159执行的。在将ANN 125用于预测和/或分类期间,不必将图像流205和模型数据输送回到处理器133。
图像传感器109可以生成连续图像流205,作为车辆111的传感器数据121的一部分。流205中的图像可以固定的预定时间间隔(例如,在车辆111的操作期间)生成。
将图像流205应用于ANN 125中的输入神经元。ANN 125中的输入神经元被配置成接受到ANN 125的外部输入;且输出神经元被配置成提供来自ANN 125的外部输出。
任选地,车辆111可具有被配置成生成传感器数据121的其它传感器203。
处理器133可执行指令201以处理来自集成图像感测装置101和传感器数据121的输出数据207。
任选地,处理器133可将传感器数据121写入到神经元输入区185中以获得基于传感器数据121和图像流205两者的输出数据207。
集成图像感测装置101以循环方式将图像流205(和任选地,传感器数据121)存储到神经元输入区185中,其中擦除与对目前存储于神经元输入区185中的数据集的数据采样的最早时间实例相对应的最旧输入集以存储最新输入集。
对于每一输入数据集,神经网络加速器159应用存储在ANN模型区183中的ANN125的模型。神经网络加速器159(或处理器133)可控制信号在神经网络内的传播。当ANN 125的输出神经元响应于输入数据集而生成其输出时,集成图像感测装置101可向处理器133提供神经元输出准备好检索的指示。所述指示可响应于来自处理器133的请求而配置,以将输入数据集写入到神经元输入区185中。处理器133可任选地检索输出数据207(例如根据编程在指令中的条件和/或准则)。
在一些实施例中,在集成图像感测装置101中配置触发参数。当外部输出217中的输出参数满足触发参数所指定的要求时,数据存储装置提供对来自处理器133的请求的响应,以将输入数据集写入到神经元输入区185中。
图14示出根据一个实施例的集成图像感测装置101内的通信。例如,结合如图1所示的与主机系统104的通信,图14的通信可以由图1或7所示的集成图像感测装置101来实施。
在图14中,模型区183存储ANN 125的模型213。响应于从缓冲器152中的输入流205接收针对某一时间实例的一组外部输入215,集成图像感测装置101可以将外部输入215写入输入区185中,同时检索包含与输入神经元的参数和/或连接到输入神经元的神经元的身份相对应的ANN模型213的一部分的神经元模型212。缓冲器152允许神经网络加速器159组合神经元模型212和外部输入225,以生成输入神经元的输出227。
一般来说,神经元输出227可包含作为用于ANN 125内的进一步传播的内部输出216的部分和/或作为用于处理器133的外部输出217的部分。
内部输出216存储在缓冲器152中,作为内部输入216以便以类似于从外部输入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示出根据一个实施例的在集成图像感测装置中实施的方法。例如,图15的方法可以结合图1的主机系统104或图2或3的车辆111中的图3的计算机系统131或ADAS 105在图1或7的集成图像感测装置101中实施。
在框231,图像感测装置101的图像传感器109以预定速率生成图像。
在框233,将图像存储于图像感测装置101的存储器装置107中。
在框235,图像感测装置101的推断引擎108基于存储于存储器装置107中的图像生成人工神经网络125的推断结果。
在框237,通过图像感测装置101的主机接口106或157将推断结果传送到主机系统(例如,104、131)。
由于推断结果的数据大小比对应图像的数据大小小得多,因此由图像传感器103生成的图像的预定速率可超出图像感测装置101与主机系统(例如,104、131)之间的通信带宽。
任选地,图像感测装置101可通过主机接口106或157从主机系统(例如,104或131)接收传感器数据121。可基于来自主机系统(例如,104、131)的传感器数据和来自图像传感器109的图像两者而生成推断结果。
任选地,主机系统(例如,104或131)可请求图像感测装置101传输与根据所请求的图像生成的所选择的推断结果相对应的一或多个图像。所选择的图像可以是由图像传感器生成的原始图像的部分,或在某些区域中具有减小的分辨率的图像的部分,或来自图像传感器109的原始图像的部分。
图像传感器109可以生成图像并通过将存储在存储器装置的预定义部分中的最旧图像替换为由图像传感器109生成的最新图像而周期性地将图像存储到所述部分中。
图像传感器109可以形成于第一集成电路裸片上;并且存储器装置107的存储器单元和推断引擎108的逻辑电路可以形成于一或多个第二集成电路裸片上。一或多个第二集成电路裸片可堆叠在第一集成电路裸片上,以形成三维集成电路(3D IC)。在3D IC中,一或多个第二集成电路裸片可通过硅通孔(TSV)连接到第一集成电路裸片,以在图像传感器109、存储器装置107和推断引擎108之间提供高通信带宽(例如,高于主机接口(例如,106或157)的通信带宽)。
任选地,3D IC可以包含球栅阵列固态驱动器(BGASSD)的主机/通信接口106、157,并且可以被配置为一个集成电路封装。例如,主机/通信接口106、157可被配置成根据串行通信协议进行通信,例如根据用于外围组件互连高速(PCIe)总线、串行高级技术附件(SATA)总线或通用串行总线(USB)总线的标准的协议。
例如,主机接口106、157可以被配置成接收将传感器数据存储到集成图像感测装置101的存储器装置107的存储器单元的一部分中的命令;以及作为响应,推断引擎108可以被配置成基于将经由主机接口106、157接收的传感器数据和由图像传感器109生成的图像两者应用于人工神经网络125而生成推断结果。
在典型操作中,推断引擎108被配置成根据人工神经网络125处理来自图像传感器109的图像,并生成推断结果作为图像感测装置101的输出207。
任选地,推断引擎108的逻辑电路包含神经网络加速器159,其被配置成对存储在存储器单元中的数据执行矩阵算术计算。例如,矩阵算术计算可以包含矩阵乘法和累加运算。
例如,可以在具有高级驾驶员辅助系统105的车辆111中配置图像感测装置101,所述系统通过通信连接连接到图像感测装置的主机/通信接口106、157。高级驾驶员辅助系统105的人工神经网络125的至少一部分可以使用推断引擎108在图像感测装置101中实施。例如,推断引擎108可以被配置成处理来自图像传感器109的图像并生成通过通信连接传送到高级驾驶员辅助系统105的推断结果。推断引擎108能够以超过从主机/通信接口106、157到高级驾驶员辅助系统105的通信连接的通信带宽的速率处理由图像传感器109生成的图像。
任选地,车辆111可以具有与图像感测装置分离的一或多个传感器。可以经由通信连接将来自一或多个传感器的传感器数据写入图像感测装置101中,以基于传感器数据和图像两者来生成推断结果。推断结果可由高级驾驶员辅助系统105进一步处理,以生成用于控制转向141、制动143或加速145或其任何组合的输入信号。
服务器119、计算机系统131、主机系统104、数据存储装置112和/或集成图像感测装置101可各自实施为一或多个数据处理系统。
下文现将描述与使用推断引擎来减少到主机系统的数据传输的存储器装置堆叠的图像传感器相关的各种额外实施例。以下描述的一般性不受上文描述的各种实施例的限制。
下文的至少一些实施例涉及与存储器装置堆叠的感测装置。存储器装置可以存储由主机系统(例如,自主车辆的计算装置或访问存储在存储器装置中的数据的计算装置)使用的传感器数据和处理所述传感器数据的结果。存储器装置处理传感器数据作为到ANN的输入,且将来自ANN的输出发送到主机系统。在一个实例中,存储器装置是安装在电动车辆中的固态驱动器,并且主机系统是车辆组件(例如,制动系统)的控制器。例如,车辆可以是汽车、飞机、无人机、卫星或航天器。
在先前感测系统中,传感器数据通常被发送到中央处理器(CPU)进行处理。例如,来自图像传感器的数据可以每帧数百万像素和每秒若干帧的速度生成。每一传感器的此数据量乘以系统中传感器的数量,可以压倒传感器与CPU之间通信链路的带宽,并且可以压倒CPU处理数据的能力。这可能导致来自图像传感器的帧速率降低。另外,系统有时很难从传感器数据(例如,从弱光条件下的图像数据)中准确地得出推断,从而导致系统准确性和可靠性降低。
下文描述的各种实施例通过提供包含具有神经网络能力的存储器装置和神经网络加速器的感测装置(例如,图像传感器)来解决上述技术问题。存储器装置可以对传感器数据执行机器学习分析功能(例如,图像分类、对象检测、像素分段等)。在一个实例中,存储器装置是加速机器学习操作的神经形态存储器装置(例如,执行乘法和累加运算并且与相机半导体芯片堆叠的存储器装置)。处理传感器内的传感器数据可减少传输到CPU的数据量并减少CPU上的处理负载。这可释放其它任务的CPU处理能力且实现较高分析能力同时消耗较少电力。
在一个实例中,感测系统的图像传感器在生成每帧数百万像素和每秒若干帧的相机(例如,用于汽车或其它应用的相机)中使用。存储器装置包含内置的神经网络能力(例如,与图像传感器堆叠的本机逻辑或阵列下CMOS),用于在捕获数据时对其进行处理,并且仅向上游发送后处理信息(例如,到汽车的主机控制器)。
在一个实施例中,感测系统包含生成图像数据的图像传感器。系统包含存储所生成的图像数据的神经形态存储器装置,以及与主机系统(例如,车辆的边缘服务器)通信的主机接口。存储器装置与图像传感器堆叠(例如,包封于封装装置中,或形成于半导体裸片上)。存储器装置包含推断引擎以使用所存储的图像数据作为到人工神经网络(ANN)的输入而生成推断结果。所述推断引擎包含被配置成对存储于存储器装置中的数据执行矩阵算术计算的神经网络加速器。主机接口将推断结果发送到主机系统以供处理。在一个实例中,神经网络加速器包含被配置成执行矩阵算术计算的忆阻器纵横阵列。
在一个实施例中,在图像传感器附近执行分析,以减少到芯片上主系统(SOC)的数据业务。这些分析是使用机器学习(ML)能力利用与图像传感器堆叠的神经形态存储器装置和推断引擎执行的。神经形态存储器装置在传感器处执行分析以减少上游业务从而实现每秒较高帧数。例如,这使得ADAS/自主系统能够为低功耗提供更高的分析能力。在一个实例中,图像传感器用于汽车和其它应用的相机中,并且生成每帧至少数百万像素和每秒若干帧。
神经形态存储器装置使用与图像传感器堆叠的神经网络分析来处理所捕获的来自相机的数据,且在上游仅发送经后处理的数据或信息。例如,这使得系统的中央CPU和/或GPU能够执行其它关键参数(例如,比如导航或其它控制之类的其它车辆功能),而不是处理所捕获的相机数据。此方法的一些优点包含增加了每秒帧数的带宽/处理(例如,更高的每秒帧数)以及更低的功率和成本。在一个实例中,神经形态存储器装置能够执行若干机器学习分析,例如图像分类、对象检测和/或像素分段(例如,如在ADAS/自主系统中所使用)。
下文描述的至少一些实施例提供冗余传感器,其可提高系统准确性和可靠性。在一个实施例中,系统包含两个相机。每个相机使用ANN生成推断结果。系统进一步包含被配置成(例如,使用SNN)生成推断结果的非图像感测装置(例如,激光雷达、雷达或麦克风)或存储装置(例如,神经形态存储器)。每一相机和感测装置或存储装置将相应推断结果传送到处理装置或逻辑电路。处理装置或逻辑电路包含向主机系统提供输出的择多表决器。将来自相机和感测装置或存储装置的推断结果输入到择多表决器。在一个实例中,使用来自择多表决器的输出控制车辆的功能。
在一个实施例中,传感器数据处理系统对自主车辆使用冗余人工智能(AI)计算。自主车辆可以包含具有AI能力的多个装置,例如具有ANN处理逻辑的相机、具有AI加速器的存储装置等。自主车辆可以将部分处理结果分发给具有AI能力的不同装置,以生成冗余结果来提高可靠性。例如,在第一相机中生成的图像流可以由第一相机中的ANN处理逻辑处理以生成第一神经元输出。在第二相机中生成的图像流可以由第二相机中的ANN处理逻辑处理以生成第二神经元输出。
可将第一神经元输出提供给第二相机,以便与第二相机的另一层神经元中的第二神经元输出组合。可将第二神经元输出提供给第一相机,以便与第一相机的对应另一层神经元中的第一神经元输出组合。由此,第一和第二相机基于在第一相机中生成的图像流和在第二相机中生成的图像流生成冗余输出。只有当冗余输出彼此一致时(例如,通过逻辑、统计和相关匹配确定的例如在预定阈值内的一致性),自主车辆才使用输出。当存在两个以上的冗余输出时,可以使用择多表决器来选择自主车辆使用的输出。冗余提高了车辆的可靠性。
图16示出根据一个实施例的包含具有神经网络加速器1613的存储器装置1607的感测装置1601。感测装置1601包含图像传感器1603、存储器装置1607和主机接口1619。将来自图像传感器1603的数据(例如,图像数据1605)存储在存储器装置1607中并在所述存储器装置中处理,且在主机接口1619上输出结果(例如,推断结果1617)。
图像传感器1603提供图像数据1605。图像传感器1603可以是例如集成电路芯片图像传感器、相机模块、雷达传感器、声纳传感器、热图像传感器、多光谱图像传感器或其它类型的图像传感器。可以使用各种技术(例如,电荷耦合装置(CCD)图像传感器、有源像素图像传感器(CMOS传感器)、量子图像传感器(QIS)等)来制造图像传感器1603。在一个实例中,图像传感器1603是嵌入在感测装置1601内的相机模块。图像数据1605可以包含例如静止图像、视频剪辑、流视频或其它类型的图像数据。图像数据1605可以作为离散的数据包、流数据或其它类型的数据格式来传递。
存储器装置1607与感测装置1601中的图像传感器1603堆叠。存储器装置1607可以包含易失性存储器(例如DRAM和/或SRAM)、非易失性存储器(例如SLC、MLC、TLC、QLC快闪存储器、交叉点存储器、神经形态存储器、RRAM等)或易失性和非易失性存储器的任何组合。
非易失性存储器的实例包含快闪存储器;基于“与非”(NAND)逻辑门、“或非”(NOR)逻辑门形成的存储器单元;相变存储器(PCM)、磁存储器(MRAM);电阻式随机存取存储器(RRAM);交叉点存储器和其它存储器装置。交叉点存储器装置可使用无晶体管存储器元件,所述无晶体管存储器元件中的每一者具有在一起堆叠成列的存储器单元和选择器。存储器元件列经由在垂直方向上铺设的两个线路排布来连接,其中在层中的一个方向上铺设的一个排布的线路位于存储器元件列上方,且另一排布的线路在另一方向上,且在位于存储器元件列下方的层中。可个别地在两个层中的每一层上的一个线路的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作用于处理和存储的统一内存池。非易失性存储器的另外的实例包含只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)和电子可擦除可编程只读存储器(EEPROM)存储器等。易失性存储器的实例包含动态随机存取存储器(DRAM)和静态随机存取存储器(SRAM)。
存储器装置1607可以各种形式提供,包含例如与其它集成电路组件堆叠和封装、焊接到印刷电路板、NVMe模块或其它形状因子的一或多个裸片。
存储器装置1607可包含嵌入式处理装置或可与感测装置1601中的处理装置堆叠。在一个实例中,使用阵列下CMOS技术或用于在存储器集成电路裸片内合并逻辑电路的其它技术将逻辑电路合并到存储器装置1607中。
存储器装置1607包含推断引擎(例如,推断引擎1609)。推断引擎1609接收输入数据(例如,存储在存储器装置1607中的图像数据1605),处理输入数据,并生成推断结果(例如,推断结果1617)作为输出。推断引擎1609使用人工神经网络(ANN)(例如,ANN1611)处理输入数据。在一个实例中,ANN 1611可以是较大ANN的一部分(例如,较大ANN的另一部分可以存储在主机系统1621上)。在一个实例中,数据1605是来自声纳传感器的声纳数据。推断结果1617可以是对象与声纳传感器的距离的识别。
推断引擎1609包含被配置成对存储在存储器装置1607中的数据执行矩阵算术计算的神经网络加速器(例如,神经网络加速器1613)。神经网络加速器1613是可以加速神经网络功能的硬件。在一个实例中,神经网络加速器1613使用图像数据1605作为输入来执行ANN 1611的至少一部分计算。
神经网络加速器1613可被配置成使用存储在存储器装置1607中的数据执行计算,例如用于ANN的矩阵算术计算和/或用于SNN的微分方程模拟。
矩阵算术计算的实例包含矩阵乘法和累加运算。在计算以生成矩阵算术计算的结果(例如,推断结果1617)之后,神经网络加速器1613可以提供所述结果作为推断引擎1609的输出(例如,响应于读取命令)。替代地或组合地,可以缓冲矩阵算术计算的结果作为下一矩阵计算的运算数。
当ANN 1611包含尖峰神经网络(SNN)时,可以配置神经网络加速器1613以模拟控制SNN中神经元激活电平的微分方程。任选地,存储器装置1607被配置成根据预定模式存储尖峰神经网络中的神经元的状态;并且神经网络加速器被配置成根据微分方程随时间推移而自动更新神经元的状态。例如,神经网络加速器1613可被配置成经由非监督机器学习来训练SNN以检测异常。在一个实例中,ANN 1611是尖峰神经网络。
在一个实例中,神经网络加速器1613包含在存储器装置1607的集成电路裸片内。在一个实例中,神经网络加速器1613位于电连接到存储器装置1607的单独集成电路裸片上。在一个实例中,图像传感器1603包含在堆叠在存储器装置1607的裸片顶部的集成电路裸片中。
在一个实施例中,神经网络加速器1613包含被配置成执行矩阵算术计算(例如,矩阵乘法和累加运算)的忆阻器纵横阵列(例如,忆阻器纵横阵列1615)。
一般来说,忆阻器是具有非恒定电阻的双端电组件。其电阻可以基于流过忆阻器的电流历史和/或施加在忆阻器上的电压历史而变化。一般来说,忆阻器纵横阵列是其中每一忆阻器位于字线与位线的交叉点处的忆阻器阵列。忆阻器的纵横阵列可被配置成经由模拟电路系统执行乘法和累加(MAC)运算。通过字线、通过纵横阵列中的一组忆阻器到位线的电流在位线中求和,这与累加运算相对应。电流对应于施加在字线上的电压和与忆阻器电阻相关联的参数的乘积,这与乘法运算相对应。
在一个实例中,与忆阻器电阻相关联的参数表示ANN 1611中的神经元,其中神经元权重被实施为忆阻器纵横阵列1615的忆阻器中的经编程电阻。在一个实例中,将所存储的图像数据1605输入到忆阻器纵横阵列1615(例如,作为施加到字线的电压)。在一个实例中,忆阻器纵横阵列1615通过将字线上的电压转换成位线上的电流来执行MAC操作。
在一个实施例中,存储器装置1607是神经形态存储器装置。一般来说,神经形态存储器装置是实施神经网络分析能力(例如乘法和累加运算)的存储器装置。在一个实例中,存储器装置1607是使用忆阻器纵横阵列(例如,忆阻器纵横阵列1615)实施的神经形态存储器装置。在一个实例中,存储器装置1607从图像传感器1603接收图像数据1605。存储器装置1607使用忆阻器纵横阵列1615来处理图像数据1605并生成推断结果1617(例如,图像数据1605的像素分段)。
感测装置1601包含主机接口(例如,主机接口1619)。主机接口1619可用作在感测装置1601与主机系统(例如,主机系统1621)之间传送数据和/或命令的通信链路。在一个实例中,主机接口1619将推断结果1617发送到主机系统1621以进行进一步处理。主机接口1619可以是例如无线或有线接口。
主机接口1619可以符合标准化通信协议,或者可在专有协议中实施。有线接口可以例如符合用于外围组件互连高速(PCIe)、串行高级技术附件(SATA)、串行连接SCSI(SAS)、通用串行总线(USB)、存储区域网络(SAN)、以太网和/或IEEE-1394总线等的通信协议。例如,无线接口可以符合例如蓝牙的通信协议、例如4G或5G的移动无线网络、局域网(LAN)、广域网(WAN)、内联网、外联网、因特网和/或其任何组合。
主机接口1619将感测装置1601与主机系统1621连接。在一个实例中,主机系统1621协调较大系统内的组件(例如,感测装置1601和其它组件)的动作。主机系统1621可以是例如计算机、嵌入式计算机、服务器、云服务器、边缘服务器、笔记本电脑、平板电脑、智能手机或由处理装置控制的其它电子装置。
在一个实例中,感测装置1601通过主机接口1619从主机系统1621接收传感器数据(例如,传感器数据1623)。推断引擎1609被配置成使用传感器数据1623作为到ANN1611的额外输入来生成推断结果1617。在一个实例中,传感器数据1623是来自装配线上的振动传感器的振动数据。感测装置1601可以是监测装配线的视频图像的相机。感测装置1601可组合图像数据1605和传感器数据1623作为对推断引擎1609的输入,以监测装配线是否存在异常。
图17示出根据一个实施例的使车辆被配置成从冗余传感器收集且处理传感器数据的系统。车辆包含处理装置或逻辑电路和冗余相机,其中每一相机包含推断引擎。相机中的每一者内的推断引擎处理图像流并生成中间结果。将来自每一相机的中间结果发送到每一冗余相机,并且每一相机使用来自两个相机的中间结果生成来自每一相机的最终结果。处理装置或逻辑电路比较来自每一相机的最终结果,并且如果来自两个相机的最终结果匹配(例如,在预定阈值量、百分比或相关性内匹配),则将最终结果输出发送到主机系统。
车辆(例如,车辆1761)可以是例如自主车辆、无人机、电动车辆、汽油或柴油动力车辆或其它车辆。车辆1761可以是陆上操作车辆、船艇、飞机或其它类型的车辆。
在一个实施例中,车辆1761包含相机(例如,相机1701、1731)。相机1701、1731可以是例如数码相机、摄像机、行车记录仪、全向相机、车载相机、红外相机、测距仪相机、超声波相机等。相机1701、1731中的每一者包含图像传感器(例如,图像传感器1703、1733)和存储器装置(例如,存储器装置1707、1737)。在一个实例中,相机1701、1731是图16的感测装置1601的实施例。在一个实例中,图像传感器1703、1733生成图像流(例如,图像流1705、1735)。
在一个实例中,相机1701、1731包含存储器装置(例如,存储器装置1707、1737)。在一个实例中,存储器装置1707、1737类似于图16的存储器装置1607。
在一个实施例中,存储器装置1707、1737包含推断引擎(例如,推断引擎1709、1739)和ANN(例如,ANN 1711、1741)。推断引擎1709接收图像流1705作为到ANN 1711的第一部分的输入,并处理图像流以生成中间结果(例如,中间结果1713)。推断引擎1739接收图像流1735作为到ANN 1741的第一部分的输入,并处理图像流以生成中间结果(例如,中间结果1743)。在一个实例中,相机1701、1731是车辆1761的摄像机,并且车辆1761是自主车辆。中间结果1713、1743可以表示在图像流1705、1735中识别的对象。
相机1701、1731包含接口(例如,接口1715、1745)。在一个实施例中,接口1715将中间结果1713传送到相机1731,并且接口1745将中间结果1743传送到相机1701。接口1715、1745可以是例如有线或无线接口。在一个实例中,接口1715、1745呈标准化接口的形式。接口1715、1745可以例如与外围组件互连高速(PCIe)、通用串行总线(USB)、以太网、串行高级技术附件(SATA)、串行连接SCSI(SAS)、火线或其它接口协议兼容。在一个实例中,接口1715、1745是供应商专有的接口。
在一个实施例中,推断引擎1709使用中间结果1713和中间结果1743作为到ANN1711的第二部分的输入,并生成最终结果(例如,最终结果1717)。推断引擎1739使用中间结果1713和中间结果1743作为到ANN 1741的第二部分的输入,并生成最终结果(例如,最终结果1747)。
在一个实例中,ANN 1711包含与ANN 1741不同的神经元模型。例如,用于ANN 1711的神经元模型可被优化用于处理在弱光条件下生成的图像,并且用于ANN 1741的神经元模型可被优化用于处理在强光条件下生成的图像。
在一个实例中,车辆1761包含被配置成与相机1701、1731通信的处理装置或逻辑电路(例如,处理装置或逻辑电路1725)。处理装置或逻辑电路1725可以是例如微处理器、图形处理器、嵌入式处理器、嵌入式控制器、中央处理单元(CPU)、片上系统(SOC)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它处理装置。处理装置或逻辑电路1725可以由具有单个处理核心的单个处理器、具有多个处理核心的单个处理器或多个处理器组成。
在一个实例中,处理装置或逻辑电路1725从推断引擎1709、1739接收最终结果1717、1747。处理装置或逻辑电路1725被配置成确定最终结果1717是否与最终结果1747匹配。响应于确定最终结果1717与最终结果1747匹配,处理装置或逻辑电路1725通过主机接口1619将基于最终结果1717和/或最终结果1747的最终结果输出到主机系统1621以供处理。在一个实例中,处理装置或逻辑电路1725通过确定最终结果1717在最终结果1747的预定公差范围内来确定最终结果1717与最终结果1747匹配。
在一个实施例中,车辆1761包含控制件(例如,控制件1751)。控制件1751控制车辆1761的功能,包含例如转向(例如,转向1753)、制动(例如,制动1755)和加速(例如,加速1757)。主机系统1621基于从处理装置或逻辑电路1725接收到的最终结果1717和/或最终结果1747生成用于控制件1751的输入。例如,从处理装置或逻辑电路1725输出的最终结果可以识别车辆1761的路径中的对象。主机系统1621可接收来自处理装置或逻辑电路1725的输出,并生成用于控制件1751(例如,转向1753或制动1755)的输入,以防止车辆1761与所识别的对象碰撞。
在一个实例中,ANN的第一部分(例如,ANN 1711)存储在存储器装置1707中,并且ANN的第二部分(例如,ANN 1727)存储在主机系统1621中。存储器装置1707使用所存储的图像数据作为到ANN 1711的输入以生成推断结果。主机系统1621使用来自存储器装置1707的推断结果作为到ANN 1727的输入以提供用于控制车辆1761的结果。
在一个实例中,相机1701包含与图像传感器1703堆叠的存储器装置1707。存储器装置1707存储来自图像传感器1703的图像流1705。存储器装置1707包含推断引擎1709,并且推断引擎1709包含被配置成对存储在存储器装置1707中的数据执行矩阵算术计算的神经网络加速器。在一个实例中,神经网络加速器是忆阻器纵横阵列1615。在一个实例中,ANN1711是尖峰神经网络。
图18示出根据一个实施例的被配置成从冗余传感器收集并处理传感器数据的车辆1761。车辆1761包含两个相机(例如,相机1801、1831)和感测装置或存储装置(例如,感测装置或存储装置1871)。在一个实例中,相机1801、1831和感测装置或存储装置1871类似于图16的感测装置1601。
相机1801、1831和感测装置或存储装置1871各自包含推断引擎,并使用数据(例如,图像数据1605或其它输入)作为推断引擎的输入。相机和感测或存储装置各自生成推断结果(例如,推断结果1817、1837、1877)。相机1801、1831和感测装置或存储装置1871各自将推断结果传送到处理装置或逻辑电路1725。
在一个实例中,处理装置或逻辑电路1725包含择多表决器(例如,择多表决器1829)。择多表决器1829被配置成基于输入到择多表决器1829的推断结果1817、1837、1877提供到主机系统1621的输出。在一个实例中,相机1801和相机1831可以是摄像机,并且感测装置或存储装置1871可以是激光雷达传感器。来自相机1801的推断结果1817和来自激光雷达传感器1871的推断结果1877可以识别对象(例如,自行车手),并且来自相机1831的推断结果1837可能无法将所述对象识别为自行车手。来自择多表决器1829的输出将所述对象识别为自行车手,因为输入到择多表决器1829的大多数推断结果1817、1837、1877将所述对象识别为自行车手。
在一个实例中,择多表决器1829被实施为具有三模冗余的多数门或其它逻辑电路。到择多表决器的输入可以替代地和/或另外包含来自逻辑门、逻辑电路的各种结果和/或来自神经网络(例如,1611、1741)的输出。
图19示出根据一个实施例的与图像传感器1903和存储器装置1905堆叠在一起的感测装置1901。在一个实例中,图像传感器1903类似于图16的图像传感器1603,并且存储器装置1905类似于图16的存储器装置1607。其它装置(未示出)(例如,处理装置、其它存储器装置等)可包含在感测装置1901中。存储器装置1905包含推断引擎和神经网络加速器(例如,神经网络加速器1907)。在一个实施例中,神经网络加速器1907类似于图16的神经网络加速器1613。
经堆叠图像传感器1903和存储器装置1905通过触点(例如,触点1909)电连接和传送(例如,数据和命令)。触点1909可以是例如硅通孔(TSV)、球栅阵列(BGA)、导线或其它类型的电触点。
在一个实例中,存储器装置1905包含触点1911。触点1911可以例如与感测装置1901内的其它组件(未示出)和/或与位于感测装置1901外部的组件或装置传送数据和命令。触点1909、1911可将感测装置1901内的组件(例如,图像传感器1903、存储器装置1905等)连接到共同衬底(例如,柔性电缆、柔性印刷电路、印刷电路板、半导体晶片或衬底等)。
图20示出根据一个实施例的使用忆阻器实施的尖峰神经网络(例如,使用多个瓦片或部分形成的尖峰神经网络的图块或部分)。在图20中,忆阻器纵横阵列2001接收输入电压尖峰2003,以生成穿过忆阻器阵列2005的电流,所述忆阻器阵列可以用作开关阵列。阵列2005中的每一忆阻器被编程为具有针对尖峰检测的阈值。当流过忆阻器的电流低于阈值时,忆阻器具有基本相同的电阻;并且经由忆阻器实施的开关被认为处于断开状态。然而,当流过忆阻器的电流达到其阈值时,忆阻器的电阻下降(例如,接近于零),导致流过忆阻器的电流显著增加并产生尖峰;并且在这种情况下,经由忆阻器实施的开关被认为处于接通状态。一旦经由忆阻器实施的开关处于接通状态,流过忆阻器的电流可以增加到至少一个预定义电平,所述预定义电平独立于忆阻器的阈值,并且高于在达到阵列2001中的忆阻器的阈值之前流过阵列2001中的忆阻器的电流。
电流电平检测器2007的阵列可被配置成检测流过阵列2005中的忆阻器的电流是否已经达到与阵列2005中的忆阻器的开启状态相对应的电平。可以基于检测是否至少预定义电平的电流流过阵列2005中的对应忆阻器来执行检测。因此,电流电平检测器2007的当前检测操作独立于阵列2005中忆阻器的阈值。基于阵列中的忆阻器中是否至少存在预定义的电流电平,电流电平检测器2007的阵列中的对应检测器生成数字信号,指示是否针对阵列2005中的忆阻器检测到电流尖峰。从电流电平检测器2007收集的输出提供了输出尖峰2009。在一个实例中,输出尖峰2009可以作为输入提供到ANN 1611、1711、1741和/或1727。
图21示出根据一个实施例使用通过忆阻器阵列的电流尖峰来检测使用忆阻器实施的尖峰神经网络中的尖峰。在一个实例中,可以如图21所示类似地实施图20的纵横阵列2001和忆阻器阵列2005。
在图21中,纵横阵列2001中的每一忆阻器连接在字线(例如,2131)与位线(例如,2141)之间。字线2131、…、2133、2135、…、2137被配置成接收输入电压;位线2141、2143、…、2145被配置成提供输出电流;并且忆阻器阵列2005被配置成根据尖峰神经元的激活电平阈值生成与由位线2141、2143、…、2145表示的神经元的尖峰相对应的输出电流尖峰。
例如,当在字线2131上施加电压时,所述电压生成分别通过忆阻器2111、2121、…流向位线2141、2143、…、2145的电流。施加在字线2131上的电压对位线2141、2143、…、2145中的电流的贡献与神经元对由施加在字线2131上的电压表示的输入的权重和响应成比例。神经元的权重和响应可以经由分别对忆阻器2111、2121、…的电阻编程来实施。
位线2141、2143、…、2145将从施加在字线2131、…、2133、2135、…、2137上的电压对位线2141、2143、…、2145贡献的电流求和。因此,位线2141、2143、…、2145中的电流对应于经由纵横阵列2001的经编程电阻实施的神经元的权重和响应的乘法与表示到神经元的输入的字线2131、…、2133、2135、…、2137的电压的总和。
例如,字线2131、…、2133、2135、…、2137上的电压对位线2141的贡献经由从字线2131、…、2133、2135、…、2137流过忆阻器2111、…、2113、2115、…、2117到位线2141的电流求和;并且字线2131、…、2133、2135、…、2137上的电压对位线2143的贡献经由从字线2131、…、2133、2135、…、2137流过忆阻器2121、…、2123、2125、…、2127到位线2143的电流求和;等。
因此,纵横阵列2001通过将字线2131、…、2133、2135、…、2137上的电压转换成位线2141、2143、…、2145上的电流来执行乘法和累加(MAC)运算。
在图21中,不使用ADC来测量流过位线2141、2143、…、2145的电流,而是使用忆阻器阵列2005来基于分别连接到位线2141、2143、…的忆阻器2119、2129、…的阈值来生成电流尖峰。
例如,忆阻器2119连接到位线2141并且被编程为具有与尖峰神经元的激活电平的阈值相对应的阈值。当位线2141上的电流小于电流阈值时,忆阻器2119具有对应于关断状态的第一电阻;并且当位线2141上的电流已经达到电流阈值时,忆阻器2119具有对应于接通状态的第二电阻,其显著低于第一电阻。
电流电平检测器2151被配置成检测位线2141上的电流是否处于与忆阻器2119的接通状态相对应的电平,其指示是否由与位线2141相对应的尖峰神经元产生尖峰。
因此,电流电平检测器2151、2153、…、2155的输出对应于位线2141、2143、…、2145的输出尖峰2009。
例如,可以在字线2131上应用尖峰串。尖峰串是施加在字线2131上的电压的时间序列。尖峰串中的电压可以按固定的时间间隔进行调度。尖峰序列中的电压可以从两个预定电压中选择。电压中的一者对应于尖峰串中某个时间实例处尖峰的存在;并且另一者对应于尖峰串中某个时间实例处没有尖峰。
例如,含有若干位的数据项可以在相同数量的时间实例上转换成尖峰串。在时间实例中的每一者处施加的电压基于数据项中对应位的值。
当一组尖峰串分别应用于一组字线2131、…、2133、2135、…、2137时,电流电平检测器2151、2153、…、2155的输出生成一组输出尖峰串,其可由例如尖峰神经网络的另一图块进一步处理。
可以设置纵横阵列2001中忆阻器的电阻值来模拟尖峰神经网络的行为。纵横阵列2001中的忆阻器的电阻值可以经由选择性地施加电流和/或电压对忆阻器进行编程而改变的。例如,在选择忆阻器(例如,2111)进行编程之后,可以升高施加在忆阻器(例如,2111)上的电压以使忆阻器(例如,2111)处于接通状态;然后可将编程脉冲施加在忆阻器(例如,2111)上,以将忆阻器(例如,2111)的电阻调节到所需值。在编程之后,忆阻器(例如,2111)在其关断状态期间记忆其经编程电阻,直到忆阻器(例如,2111)再次被选择用于在接通状态下编程。可以使用单独的电路来选择忆阻器(例如,2111)并对忆阻器(例如,2111)的电阻进行编程。
图22示出根据一个实施例的在具有神经网络加速器的感测装置中实施的方法。通过感测装置的图像传感器生成图像数据。将图像数据存储在包含推断引擎和神经网络加速器的存储器装置中。通过推断引擎生成推断结果并将其传送到主机系统。例如,图22的方法可以在图16的系统中实施。在一个实例中,主机系统是主机系统1621。在一个实例中,感测装置是感测装置1601。
图22的方法可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令)或其组合。在一些实施例中,图22的方法至少部分地由一或多个处理装置(例如,图16的存储器装置1607的处理装置(未示出))执行。
虽然以特定顺序或次序来示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程也是可能的。
在框2201,通过感测装置的图像传感器生成图像数据。在一个实例中,图像数据是图像数据1605。在一个实例中,图像传感器是图像传感器1603。
在框2203,将图像数据存储在感测装置的存储器装置中。存储器装置包含推断引擎,并且推断引擎包含神经网络加速器。在一个实例中,存储器装置是存储器装置1607。在一个实例中,推断引擎是推断引擎1609。
在框2205,通过推断引擎基于存储在存储器装置中的图像数据生成推断结果,其中将所存储的图像数据输入到推断引擎的人工神经网络,并且神经网络加速器被配置成对所存储的图像数据执行矩阵算术计算。在一个实例中,神经网络加速器是神经网络加速器1613。在一个实例中,矩阵算术计算由忆阻器纵横阵列(例如,忆阻器纵横阵列1615)执行。
在框2207,通过感测装置的主机接口将推断结果传送到主机系统。在一个实例中,推断结果是推断结果1617。在一个实例中,主机接口是主机接口1619。
图23示出根据一个实施例的在具有冗余感测装置的车辆中实施的方法。通过第一相机生成第一图像流,并且通过第二相机生成第二图像流。通过第一相机的第一推断引擎生成第一中间结果,并且通过第二相机的第二推断引擎生成第二中间结果。通过第一推断引擎基于第一中间结果和第二中间结果生成第一最终结果。通过第二推断引擎基于第一中间结果和第二中间结果生成第二最终结果。在确定第一最终结果与第二最终结果匹配之后,将最终结果输出到主机系统。例如,图23的方法可在图17的系统中实施。在一个实例中,第一相机是相机1701并且第二相机是相机1731。在一个实例中,第一图像流是图像流1705并且第二图像流是图像流1735。
图23的方法可以由处理逻辑来执行,所述处理逻辑可以包含硬件(例如处理装置、电路系统、专用逻辑、可编程逻辑、微码、装置的硬件、集成电路等)、软件(例如在处理装置上运行或执行的指令)或其组合。在一些实施例中,图23的方法至少部分地由一或多个处理装置(例如,图17的存储器装置1707和存储器装置1737的处理装置(未示出))执行。
虽然以特定顺序或次序来示出,但是除非另有指定,否则可修改过程的次序。因此,应理解,所说明实施例仅为实例,且所说明过程可以不同次序进行,且一些过程可并行地进行。另外,在各个实施例中可以省略一或多个过程。因此,在每一实施例中并不需要所有过程。其它过程流程也是可能的。
在框2301,通过第一相机的第一图像传感器生成第一图像流,并且通过第二相机的第二图像传感器生成第二图像流。在一个实例中,第一图像传感器是图像传感器1703并且第二图像传感器是图像传感器1733。在一个实例中,相机1701和相机1731是摄像机。
在框2303,通过第一相机的第一推断引擎生成第一中间结果,其中第一推断引擎被配置成使用第一图像流作为到第一ANN的第一部分的输入而生成第一中间结果。在一个实例中,第一ANN是ANN 1711。在一个实例中,第一中间结果是中间结果1713。
在框2305,通过第二相机的第二推断引擎生成第二中间结果,其中第二推断引擎被配置成使用第二图像流作为到第二ANN的第一部分的输入而生成第二中间结果。在一个实例中,第二ANN是ANN 1741。在一个实例中,第二中间结果是中间结果1743。
在框2307,通过第一推断引擎使用第一中间结果和第二中间结果作为到第一ANN的第二部分的输入而生成第一最终结果。在一个实例中,第一最终结果是最终结果1717。
在框2309,通过第二推断引擎使用第一中间结果和第二中间结果作为到第二ANN的第二部分的输入而生成第二最终结果。在一个实例中,第二最终结果是最终结果1747。
在框2311,在确定第一最终结果与第二最终结果匹配之后,将最终结果输出到主机系统。在一个实例中,最终结果输出是最终结果1717或最终结果1747之一。
在一个实施例中,系统包含:图像传感器(例如,图像传感器1603),其被配置成生成图像数据(例如,图像数据1605);存储器装置(例如,存储器装置1607),其被配置成存储所生成的图像数据;以及主机接口(例如,主机接口1619),其被配置成与主机系统(例如,主机系统1621)通信。存储器装置与图像传感器堆叠在一起,并且存储器装置包含推断引擎(例如,推断引擎1609),其被配置成使用所存储的图像数据作为到人工神经网络(ANN)(例如,ANN 1611)的输入而生成推断结果(例如,推断结果1617)。推断引擎包含神经网络加速器(例如,神经网络加速器1613),其被配置成对存储在存储器装置中的数据执行矩阵算术计算。主机接口还被配置成将推断结果发送到主机系统以供处理。
在一个实施例中,神经网络加速器包含被配置成执行矩阵算术计算的忆阻器纵横阵列(例如,忆阻器纵横阵列1615)。
在一个实施例中,矩阵算术计算包含矩阵乘法和累加运算。
在一个实施例中,将所存储的图像数据(例如,静止图像)输入到忆阻器纵横阵列。
在一个实施例中,忆阻器纵横阵列包含忆阻器,并且每一忆阻器连接在字线与位线之间。
在一个实施例中,忆阻器纵横阵列的位线中的电流对应于ANN中神经元的权重和响应的乘积之和;神经元经由忆阻器纵横阵列中的忆阻器的经编程电阻来实施;并且忆阻器纵横阵列的字线的电压表示到神经元的输入(例如,图像中像素的表示)。
在一个实施例中,忆阻器纵横阵列通过将字线上的电压转换成位线上的电流而执行乘法和累加MAC运算。
在一个实施例中,ANN包含尖峰神经网络(SNN)。
在一个实施例中,存储器装置是电阻式随机存取存储器(RRAM)。
在一个实施例中,一种系统包含:第一相机(例如,相机1701),其被配置成生成第一图像流(例如,图像流1705),其中第一相机包含第一推断引擎(例如,推断引擎1709),所述第一推断引擎被配置成使用第一图像流作为到第一人工神经网络(ANN)(例如,ANN1711)的第一部分的输入而生成第一中间结果(例如,中间结果1713);第二相机(例如,相机1731),其被配置成生成第二图像流(例如,图像流1735),其中第二相机包含第二推断引擎(例如,推断引擎1739),所述第二推断引擎被配置成使用第二图像流作为到第二人工神经网络(ANN)(例如,ANN 1741)的第一部分的输入而生成第二中间结果(例如,中间结果1743);处理装置或逻辑电路(例如,处理装置或逻辑电路1725),其被配置成与第一相机和第二相机通信;以及主机接口,其用于将推断结果传送到主机系统。第一相机进一步包含将第一中间结果传送到第二相机的接口(例如,接口1715)。第二相机进一步包含将第二中间结果传送到第一相机的接口(例如,接口1745)。第一推断引擎使用第一中间结果和第二中间结果作为到第一ANN的第二部分的输入以生成第一最终结果(例如,最终结果1717)。第二推断引擎使用第一中间结果和第二中间结果作为到第二ANN的第二部分的输入以生成第二最终结果(例如,最终结果1747)。处理装置或逻辑电路进一步配置成:确定第一最终结果是否与第二最终结果匹配;以及响应于确定第一最终结果与第二最终结果匹配,经由主机接口将输出传送到主机系统以供处理。输出基于第一最终结果或第二最终结果中的至少一者。
在一个实施例中,确定第一最终结果是否与第二最终结果匹配包含确定第一最终结果是否在第二最终结果的预定公差范围内。
在一个实施例中,所述系统进一步包含:感测装置或存储装置(例如,感测装置或存储装置1871),其被配置成生成推断结果(例如,推断结果1877),其中所述感测装置或存储装置包含将推断结果传送到处理装置或逻辑电路的接口。处理装置或逻辑电路包含择多表决器(例如,择多表决器1829),所述择多表决器被配置成将输出提供到主机系统。来自第一ANN的推断结果(例如,推断结果1817)、来自第二ANN的推断结果(例如,推断结果1837)以及来自感测装置或存储装置的推断结果被输入到择多表决器。
在一个实施例中,所述系统进一步包含:控制件(例如,控制件1751),其用于车辆(例如,车辆1761)的转向(例如,转向1753)、制动(例如,制动1755)或加速(例如,加速1757)中的至少一者;其中主机系统基于经由主机接口从处理装置或逻辑电路接收的第一最终结果或第二最终结果中的至少一者生成用于控制件的输入。
在一个实施例中,第一相机进一步包含:图像传感器(例如,图像传感器1703),其被配置成生成第一图像流;以及存储器装置(例如,存储器装置1707),其被配置成存储第一图像流。存储器装置与图像传感器堆叠,且存储器装置包含第一推断引擎。第一推断引擎包含神经网络加速器,所述神经网络加速器被配置成对存储在存储器装置中的数据执行矩阵算术计算。
在一个实施例中,神经网络加速器包含忆阻器纵横阵列,所述忆阻器纵横阵列被配置成执行矩阵算术计算。在一个实例中,忆阻器纵横阵列包含在神经形态存储器装置中。
在一个实施例中,第一ANN包含尖峰神经网络(SNN)。
在一个实施例中,一种方法包含:通过图像传感器生成图像数据;通过存储器装置存储所生成的图像数据,其中存储器装置包含推断引擎,所述推断引擎被配置成使用所存储的图像数据作为到人工神经网络(ANN)的输入而生成推断结果,且其中所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对所存储的图像数据执行矩阵算术计算;以及通过主机接口与主机系统通信。主机接口被配置成将推断结果发送到主机系统以供处理。
在一个实施例中,神经网络加速器包含忆阻器阵列,所述忆阻器阵列被配置成执行矩阵算术计算,所述矩阵算术计算包含矩阵乘法和累加运算,并且所述方法进一步包含将所存储的图像数据作为输入提供到忆阻器阵列。
在一个实施例中,所述方法进一步包含:通过主机接口从主机系统接收传感器数据(例如,传感器数据1623)。推断引擎进一步被配置成使用传感器数据作为到ANN的额外输入而生成推断结果。
在一个实施例中,所述方法进一步包含:将ANN的第一部分存储在存储器装置中。主机系统存储ANN的第二部分(例如,ANN 1727)。生成推断结果包含使用所存储的图像数据作为到ANN的第一部分的输入。由主机系统进行的处理包含使用推断结果作为到ANN的第二部分的输入以提供用于控制车辆的结果。
本公开包含执行上文所描述的方法的方法和设备,包含执行这些方法的数据处理系统,以及含有在数据处理系统上执行时使所述系统执行这些方法的指令的计算机可读媒体。
典型数据处理系统可包含互连件(例如,总线和系统核心逻辑),其互连一或多个微处理器和存储器。微处理器通常耦合到高速缓冲存储器。
互连件将微处理器和存储器互连在一起,并且还将其经由输入/输出(I/O)控制器互连到I/O装置。I/O装置可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描器、相机和所属领域中已知的其它装置。在一个实施例中,在数据处理系统是服务器系统时,I/O装置中的一些(例如打印机、扫描器、鼠标和/或键盘)是任选的。
互连件可包含通过各种桥、控制器和/或适配器彼此连接的一或多个总线。在一个实施例中,I/O控制器包含用于控制USB(通用串行总线)外围装置的USB适配器,和/或用于控制IEEE-1394外围装置的IEEE-1394总线适配器。
存储器可包含以下中的一或多者:只读存储器(ROM)、易失性随机存取存储器(RAM),和非易失性存储器,例如硬盘驱动器、快闪存储器等。
易失性RAM通常实施为要求持续功率以便刷新或维持存储器中的数据的动态RAM(DRAM)。非易失性存储器通常是磁性硬盘驱动器、磁性光盘驱动器、光盘驱动器(例如,DVDRAM),或即使在从系统移除电力之后也维持数据的其它类型的存储器系统。非易失性存储器也可以是随机存取存储器。
非易失性存储器可以是与数据处理系统中的其余组件直接耦合的本地装置。还可使用远离系统的非易失性存储器,例如通过例如调制解调器或以太网接口的网络接口耦合到数据处理系统的网络存储装置。
在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起以简化描述。然而,这种表达也用于表示所述功能是由例如微处理器的处理器执行代码/指令生成。
替代地或组合地,如此处所描述的功能和操作可使用具有或不具有软件指令的专用电路系统实施,例如使用专用集成电路(ASIC)或现场可编程门阵列(FPGA)。可使用无软件指令的硬接线电路系统或结合软件指令实施实施例。因此,技术不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
虽然一个实施例可实施于全功能计算机和计算机系统中,但各种实施例能够分布为多种形式的计算产品,且能够不论实际上用于实现分布的机器或计算机可读媒体的特定类型如何都适用。
所公开的至少一些方面可至少部分地体现于软件中。也就是说,这些技术可响应于其处理器(例如微处理器)执行存储器(例如ROM、易失性RAM、非易失性存储器、高速缓冲存储器或远程存储装置)中所含的指令序列而在计算机系统或其它数据处理系统中执行。
经执行以实施实施例的例程可实施为操作系统或特定应用程序、组件、程序、对象、模块或称作“计算机程序”的指令序列的部分。计算机程序通常包含计算机中的各种存储器和存储装置中在各种时间处的一或多个指令集,且所述指令集在由计算机中的一或多个处理器读取和执行时使计算机执行必需操作以执行涉及各种方面的元件。
机器可读媒体可用于存储当由数据处理系统执行时使系统执行各种方法的软件和数据。可执行软件和数据可存储于包含例如ROM、易失性RAM、非易失性存储器和/或高速缓冲存储器的各处。此软件和/或数据的部分可以存储在这些存储装置中的任何一者中。此外,数据和指令可从集中式服务器或对等网络获得。数据和指令的不同部分可在不同时间且在不同通信会话中或同一通信会话中从不同集中式服务器和/或对等网络获得。可在执行应用程序之前获得全部数据和指令。替代地,可动态地、及时地在需要执行时获得数据和指令的部分。因此,并不要求数据和指令在特定时间实例全部处于机器可读媒体上。
计算机可读媒体的实例包含但不限于非暂时性的可记录和不可记录类型的媒体,例如易失性和非易失性存储器装置、只读存储器(ROM)、随机存取存储器(RAM)、快闪存储器装置、软性和其它可装卸式磁盘、磁盘存储媒体、光学存储媒体(例如,光盘只读存储器(CDROM)、数字多功能盘(DVD)等),以及其它。计算机可读媒体可存储指令。
指令还可体现在数字和模拟通信链路中以用于电学、光学、声学或其它形式的传播信号,例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等的传播信号并非有形机器可读媒体且不能被配置成存储指令。
一般来说,机器可读媒体包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式提供(即,存储和/或传输)信息的任何机构。
在各种实施例中,硬接线电路系统可与软件指令组合使用以实施技术。因此,技术既不限于硬件电路和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定来源。
以上描述和图式是说明性的,并且不应理解为限制性的。描述许多具体细节以提供透彻理解。然而,在某些情况下,不描述众所周知的或常规的细节以免使描述内容模糊不清。本公开中对一个或一实施例的参考未必参考同一实施例;并且此类参考意味着至少一个。
在前述说明书中,已参考本发明的具体示范性实施例描述了本发明。将显而易见的是,可在不脱离如所附权利要求书中阐述的更广精神和范围的情况下进行各种修改。因此,应在说明性意义上而非限制性意义上看待说明书及图式。
Claims (20)
1.一种系统,其包括:
图像传感器,其被配置成生成图像数据;
存储器装置,其被配置成存储所生成的图像数据;以及
主机接口,其被配置成与主机系统通信;
其中所述存储器装置与所述图像传感器堆叠,且所述存储器装置包括推断引擎,所述推断引擎被配置成使用所存储的图像数据作为到人工神经网络ANN的输入而生成推断结果;
其中所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对存储于所述存储器装置中的数据执行矩阵算术计算;并且
其中所述主机接口进一步被配置成将所述推断结果发送到所述主机系统以供处理。
2.根据权利要求1所述的系统,其中所述存储器装置是神经形态存储器装置,并且所述神经网络加速器包含忆阻器纵横阵列,所述忆阻器纵横阵列被配置成执行所述矩阵算术计算。
3.根据权利要求2所述的系统,其中所述矩阵算术计算包含矩阵乘法和累加运算。
4.根据权利要求2所述的系统,其中将所述所存储的图像数据输入到所述忆阻器纵横阵列。
5.根据权利要求1所述的系统,其中所述忆阻器纵横阵列包括忆阻器,并且每一忆阻器连接在字线与位线之间。
6.根据权利要求5所述的系统,其中:
所述忆阻器纵横阵列的位线中的电流对应于所述ANN中神经元的权重和响应的乘积之和;
所述神经元经由所述忆阻器纵横阵列中的所述忆阻器的经编程电阻来实施;并且
所述忆阻器纵横阵列的字线的电压表示到所述神经元的输入。
7.根据权利要求6所述的系统,其中所述忆阻器纵横阵列通过将所述字线上的所述电压转换成所述位线上的电流而执行乘法和累加MAC运算。
8.根据权利要求1所述的系统,其中所述ANN包括尖峰神经网络SNN。
9.根据权利要求1所述的系统,其中所述存储器装置是电阻式随机存取存储器RRAM。
10.一种系统,其包括:
第一相机,其被配置成生成第一图像流,其中所述第一相机包括第一推断引擎,所述第一推断引擎被配置成使用所述第一图像流作为到第一人工神经网络ANN的第一部分的输入而生成第一中间结果;
第二相机,其被配置成生成第二图像流,其中所述第二相机包括第二推断引擎,所述第二推断引擎被配置成使用所述第二图像流作为到第二人工神经网络ANN的第一部分的输入而生成第二中间结果;
处理装置或逻辑电路,其被配置成与所述第一相机和所述第二相机通信;以及
主机接口,其将推断结果传送到主机系统;
其中所述第一相机进一步包括将所述第一中间结果传送到所述第二相机的接口;
其中所述第二相机进一步包括将所述第二中间结果传送到所述第一相机的接口;其中所述第一推断引擎使用所述第一中间结果和所述第二中间结果作为到所述第一ANN的第二部分的输入以生成第一最终结果;
其中所述第二推断引擎使用所述第一中间结果和所述第二中间结果作为到所述第二ANN的第二部分的输入以生成第二最终结果;并且
其中所述处理装置或逻辑电路进一步被配置成:
确定所述第一最终结果是否与所述第二最终结果匹配;以及
响应于确定所述第一最终结果与所述第二最终结果匹配,经由所述主机接口将输出传送到所述主机系统以供处理,其中所述输出基于所述第一最终结果或所述第二最终结果中的至少一者。
11.根据权利要求10所述的系统,其中所述确定所述第一最终结果是否与所述第二最终结果匹配包括确定所述第一最终结果是否在所述第二最终结果的预定公差范围内。
12.根据权利要求10所述的系统,其进一步包括:
感测装置或存储装置,其被配置成生成推断结果,其中所述感测装置或存储装置包括将所述推断结果传送到所述处理装置或逻辑电路的接口;
其中所述处理装置或逻辑电路包括择多表决器,所述择多表决器被配置成将输出提供到所述主机系统,且其中来自所述第一ANN的推断结果、来自所述第二ANN的推断结果以及来自所述感测装置或存储装置的推断结果被输入到所述择多表决器。
13.根据权利要求10所述的系统,其进一步包括:
控制件,其用于车辆的转向、制动或加速中的至少一者;
其中所述主机系统基于经由所述主机接口从所述处理装置或逻辑电路接收的所述第一最终结果或所述第二最终结果中的所述至少一者生成用于所述控制件的输入。
14.根据权利要求10所述的系统,其中所述第一相机进一步包括:
图像传感器,其被配置成生成所述第一图像流;以及
存储器装置,其被配置成存储所述第一图像流;
其中所述存储器装置与所述图像传感器堆叠,且所述存储器装置包含所述第一推断引擎;并且
其中所述第一推断引擎包含神经网络加速器,所述神经网络加速器被配置成对存储于所述存储器装置中的数据执行矩阵算术计算。
15.根据权利要求14所述的系统,其中所述神经网络加速器包含忆阻器纵横阵列,所述忆阻器纵横阵列被配置成执行所述矩阵算术计算。
16.根据权利要求10所述的系统,其中所述第一ANN包括尖峰神经网络SNN。
17.一种方法,其包括:
通过图像传感器生成图像数据;
通过存储器装置存储所生成的图像数据,其中所述存储器装置包括推断引擎,所述推断引擎被配置成使用所存储的图像数据作为到人工神经网络ANN的输入而生成推断结果,且其中所述推断引擎包含神经网络加速器,所述神经网络加速器被配置成对所述所存储的图像数据执行矩阵算术计算;以及
通过主机接口与主机系统通信,其中所述主机接口被配置成将所述推断结果发送到所述主机系统以供处理。
18.根据权利要求17所述的方法,其中所述存储器装置是神经形态存储器装置,所述神经网络加速器包含忆阻器阵列,所述忆阻器阵列被配置成执行所述矩阵算术计算,所述矩阵算术计算包含矩阵乘法和累加运算,且所述方法进一步包括将所述所存储的图像数据作为输入提供到所述忆阻器阵列。
19.根据权利要求17所述的方法,其进一步包括:
通过所述主机接口从所述主机系统接收传感器数据;
其中所述推断引擎进一步被配置成使用所述传感器数据作为到所述ANN的额外输入而生成所述推断结果。
20.根据权利要求17所述的方法,其进一步包括:
将所述ANN的第一部分存储在所述存储器装置中;
其中所述主机系统存储所述ANN的第二部分;
其中生成所述推断结果包括使用所述所存储的图像数据作为到所述ANN的所述第一部分的输入;并且
其中由所述主机系统进行的所述处理包括使用所述推断结果作为到所述ANN的所述第二部分的输入以提供用于控制车辆的结果。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/942,507 | 2020-07-29 | ||
US16/942,507 US20220036164A1 (en) | 2020-07-29 | 2020-07-29 | Neuromorphic memory and inference engine stacked with image sensor to reduce data traffic to host |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114092309A true CN114092309A (zh) | 2022-02-25 |
Family
ID=80003274
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110856111.2A Pending CN114092309A (zh) | 2020-07-29 | 2021-07-28 | 与图像传感器堆叠的神经形态存储器和推断引擎 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220036164A1 (zh) |
CN (1) | CN114092309A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118314448A (zh) * | 2024-06-07 | 2024-07-09 | 荣科科技股份有限公司 | 用于仿生人眼物联网的智能图像处理方法及系统 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220066697A1 (en) * | 2020-09-01 | 2022-03-03 | Western Digital Technologies, Inc. | Memory Device With Reinforcement Learning With Q-Learning Acceleration |
US12010446B2 (en) * | 2022-09-08 | 2024-06-11 | Micron Technology, Inc. | Image compression using integrated circuit devices having analog inference capability |
US20230020182A1 (en) * | 2022-09-23 | 2023-01-19 | Intel Corporation | Technologies for source degradation detection and auto-tuning of cameras |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3580691B1 (en) * | 2017-08-31 | 2020-07-01 | FotoNation Limited | A peripheral processing device |
US20220036190A1 (en) * | 2019-01-18 | 2022-02-03 | Hitachi Astemo, Ltd. | Neural network compression device |
TW202121671A (zh) * | 2019-05-31 | 2021-06-01 | 日商索尼半導體解決方案公司 | 固體攝像裝置 |
WO2020255575A1 (ja) * | 2019-06-19 | 2020-12-24 | ソニー株式会社 | 暗号鍵生成装置、暗号鍵生成方法 |
-
2020
- 2020-07-29 US US16/942,507 patent/US20220036164A1/en active Pending
-
2021
- 2021-07-28 CN CN202110856111.2A patent/CN114092309A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118314448A (zh) * | 2024-06-07 | 2024-07-09 | 荣科科技股份有限公司 | 用于仿生人眼物联网的智能图像处理方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20220036164A1 (en) | 2022-02-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12020149B2 (en) | Distributed neural network processing on an intelligent image sensor stack | |
US20210142146A1 (en) | Intelligent image sensor stack | |
US12066947B2 (en) | Optimization of quality of service of data storage devices | |
US11531339B2 (en) | Monitoring of drive by wire sensors in vehicles | |
US11709625B2 (en) | Optimization of power usage of data storage devices | |
US11409654B2 (en) | Intelligent optimization of caching operations in a data storage device | |
US11436076B2 (en) | Predictive management of failing portions in a data storage device | |
US11250648B2 (en) | Predictive maintenance of automotive transmission | |
US11586194B2 (en) | Storage and access of neural network models of automotive predictive maintenance | |
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 | |
US11947359B2 (en) | Intelligent lidar sensors for autonomous vehicles | |
US20220036164A1 (en) | Neuromorphic memory and inference engine stacked with image sensor to reduce data traffic to host | |
US20220032932A1 (en) | Image sensor for processing sensor data to reduce data traffic to host system | |
US11668797B2 (en) | Intelligent radar electronic control units in autonomous vehicles | |
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 |