一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

具有深度学习加速器和随机存取存储器的智能麦克风的制作方法

2023-02-06 10:52:48 来源:中国专利 TAG:

具有深度学习加速器和随机存取存储器的智能麦克风
1.相关申请的交叉引用
2.本技术要求于2020年6月19日提交且题为“具有深度学习加速器和随机存取存储器的智能麦克风(intelligent microphone having deep learning accelerator and random access memory)”的美国专利申请第16/906,230号的优先权,所述美国专利申请的全部公开内容由此以引用的方式并入本文中。
技术领域
3.本文中所公开的至少一些实施例大体上涉及麦克风,且尤其但不限于由人工神经网络(ann)的集成加速器供电的智能麦克风,所述人工神经网络例如为通过机器学习和/或深度学习配置的ann。


背景技术:

4.人工神经网络(ann)使用神经元网络来处理到网络的输入,且产生来自网络的输出。
5.举例来说,网络中的每一神经元接收一组输入。到神经元的一些输入可为网络中的某些神经元的输出;并且到神经元的一些输入可为提供给神经网络的输入。所述网络中的神经元当中的输入/输出关系表示所述网络中的神经元连接性。
6.举例来说,每一神经元可分别针对其输入具有偏置、激活函数和一组突触权重。激活函数可呈阶跃函数、线性函数、对数s型(log-sigmoid)函数等形式。网络中的不同神经元可具有不同激活函数。
7.举例来说,每一神经元可产生其输入与其偏置的加权和,且接着产生作为加权和的函数的输出,所述输出是使用神经元的激活函数计算出的。
8.ann的输入与输出之间的关系一般来说是由ann模型定义的,所述ann模型包含表示网络中的神经元的连接性的数据,以及每一神经元的偏置、激活函数和突触权重。基于给定ann模型,计算装置可被配置成从到网络的给定输入集合计算网络的输出。
9.举例来说,可基于相机输入而产生到ann网络的输入;并且来自ann网络的输出可为对例如事件或物件等项目的识别。
10.一般来说,可使用监督方法来训练ann,其中调整ann中的参数以最小化或减少与相应输入相关联或由相应输入产生的已知输出与经由将输入应用于ann而产生的所计算输出之间的误差。监督学习/训练方法的实例包含强化学习和具有误差校正的学习。
11.替代地或组合地,可以使用非监督方法来训练ann,其中由给定的一组输入产生的确切输出在所述训练完成之前是未知的。可训练ann,以将项目分类成多个类别,或将数据点分类成集群。
12.多个训练算法可用于复杂机器学习/训练范例。
13.深度学习使用机器学习的多个层以从输入数据逐渐地提取特征。举例来说,较低层可被配置成识别图像中的边缘;并且较高层可被配置成基于使用较低层检测到的边缘而
识别图像中所捕获的项目,例如人脸、物件、事件等。深度学习可经由人工神经网络(ann)实施,例如深度神经网络、深度信念网络、递归神经网络和/或卷积神经网络。
14.深度学习已应用于许多应用领域,例如计算机视觉、语音/音频辨识、自然语言处理、机器翻译、生物信息学、药物设计、医疗图像处理、游戏等。
附图说明
15.在附图的图式中通过实例而非限制示出了实施例,在附图中,相同的参考标号指示类似的元件。
16.图1展示具有根据一个实施例配置的深度学习加速器和随机存取存储器的集成电路装置。
17.图2展示根据一个实施例的被配置成执行矩阵-矩阵操作的处理单元。
18.图3展示根据一个实施例的被配置成执行矩阵-向量操作的处理单元。
19.图4展示根据一个实施例的被配置成执行向量-向量操作的处理单元。
20.图5展示根据一个实施例的被配置成将输入自主地应用到经训练人工神经网络的深度学习加速器和随机存取存储器。
21.图6至8示出具有根据一些实施例配置的深度学习加速器和随机存取存储器的麦克风。
22.图9展示根据一个实施例的实施于麦克风中的方法。
具体实施方式
23.本文中所公开的至少一些实施例提供麦克风,其具有被配置成用减小的能量消耗和计算时间来执行人工神经网络(ann)的计算的通用集成电路。集成电路包含深度学习加速器(dla)和随机存取存储器。在麦克风中产生的音频数据大体上由在麦克风中实施的人工神经网络消耗以产生比音频数据少量的智能输出。因此,可降低对存储由麦克风产生的音频数据的容量的要求和/或对麦克风与使用麦克风的计算系统之间的通信带宽的要求。举例来说,可训练人工神经网络(ann)来以文本输出所辨识的话语,或输出对在特定应用中受关注的其它类型的所辨识型式、特征或分类的识别。所述输出可用以产生命令、指令、转录本、警告等,和/或在某一时间段内存储在麦克风的随机存取存储器中。由于麦克风输出由人工神经网络(ann)辨识的预定义类型的内容,且去除并非预定义类型的其它内容,因此针对在使用麦克风的环境中的个人而增强隐私保护。
24.深度学习加速器(dla)包含一组通用可编程硬件计算逻辑,其经专门化和/或优化以执行并行向量和/或矩阵计算,包含但不限于向量和/或者矩阵的乘法和累加。
25.此外,深度学习加速器(dla)可包含一或多个算术逻辑单元(alu)以对整数二进制数执行算术和逐位运算。
26.深度学习加速器(dla)可经由指令集进行编程以执行人工神经网络(ann)的计算。
27.对向量和矩阵进行操作的深度学习加速器(dla)的粒度对应于可在由深度学习加速器(dla)执行一个指令期间在其上操作的向量/矩阵的最大单元。在对向量/矩阵操作数执行预定义操作的指令期间,深度学习加速器(dla)可并行地操作向量/矩阵操作数的元素,以减少与存储器/数据存取相关联的执行时间和/或能量消耗。对深度学习加速器(dla)
的粒度的向量/矩阵操作数的操作可用作构建块以对较大大小的向量/矩阵实施计算。
28.典型/实际人工神经网络(ann)的实施涉及具有大于深度学习加速器(dla)的操作粒度的大小的向量/矩阵操作数。为了使用深度学习加速器(dla)实施此人工神经网络(ann),涉及较大大小的向量/矩阵操作数的计算可分解为深度学习加速器(dla)的粒度的向量/矩阵操作数的计算。深度学习加速器(dla)可经由指令进行编程以执行涉及大型向量/矩阵操作数的计算。举例来说,在响应于指令而操控深度学习加速器(dla)的粒度的向量和矩阵时的深度学习加速器(dla)的原子计算能力可经编程以在人工神经网络(ann)中实施计算。
29.在一些实施方案中,深度学习加速器(dla)不具有典型中央处理单元(cpu)的一些逻辑运算能力。然而,深度学习加速器(dla)可配置有充足逻辑单元以处理提供到人工神经网络(ann)的输入数据且根据针对深度学习加速器(dla)产生的一组指令来产生人工神经网络(ann)的输出。因此,深度学习加速器(dla)可在来自中央处理单元(cpu)或另一处理器的极少帮助或无帮助的情况下执行人工神经网络(ann)的计算。任选地,常规通用处理器还可被配置为深度学习加速器(dla)的部分以执行无法使用深度学习加速器(dla)的向量/矩阵处理单元有效地实施的操作,和/或无法由深度学习加速器(dla)的向量/矩阵处理单元执行的操作。
30.典型人工神经网络(ann)可以标准格式(例如,开放神经网络交换(onnx))描述/指定。编译器可用于将人工神经网络(ann)的描述转换成用于深度学习加速器(dla)的一组指令以执行人工神经网络(ann)的计算。编译器可优化所述组指令以改进深度学习加速器(dla)在实施人工神经网络(ann)时的性能。
31.深度学习加速器(dla)可具有被配置成存储向量/矩阵操作数以及向量/矩阵操作的结果的本地存储器,例如寄存器、缓冲器和/或高速缓存器。寄存器中的中间结果可在深度学习加速器(dla)中作为用于后续向量/矩阵操作的操作数而进行管线化/移位,以减少存取存储器/数据时的时间和能量消耗,且因此加速实施典型人工神经网络(ann)时的向量/矩阵操作的典型型式。深度学习加速器(dla)中的寄存器、缓冲器和/或高速缓存器的容量通常不足以保持用于实施典型人工神经网络(ann)的计算的整个数据集。因此,耦合到深度学习加速器(dla)的随机存取存储器被配置成提供用于实施典型人工神经网络(ann)的改进的数据存储能力。举例来说,深度学习加速器(dla)从随机存取存储器加载数据和指令且将结果存储回到随机存取存储器中。
32.深度学习加速器(dla)与随机存取存储器之间的通信带宽被配置成优化或最大化深度学习加速器(dla)的计算能力的利用。举例来说,可在深度学习加速器(dla)与随机存取存储器之间提供高通信带宽,以使得可将向量/矩阵操作数从随机存取存储器加载到深度学习加速器(dla)中,且在大致等于深度学习加速器(dla)对向量/矩阵操作数执行计算所用的时间的时间段内将结果存储回到随机存取存储器中。深度学习加速器(dla)的粒度可被配置成增加由深度学习加速器(dla)执行的计算的量与向量/矩阵操作数的大小之间的比率,以使得深度学习加速器(dla)与随机存取存储器之间的数据存取业务可减少,这可降低对深度学习加速器(dla)与随机存取存储器之间的通信带宽的要求。因此,可减少或消除在数据/存储器存取方面的瓶颈。
33.深度学习加速器(dla)和随机存取存储器可配置于麦克风中以将音频数据转换为
智能输出,以减小从麦克风发射的数据的大小,和/或以滤出在预定义的应用中不受关注的音频内容。
34.举例来说,可训练人工神经网络(ann)以辨识家人和朋友的语音和话语。当人工神经网络(ann)实施于麦克风中时,麦克风可辨识特别由家人和朋友说出的词语,但忽略麦克风附近的其它人的话语。家人和朋友的所辨识话语可用以控制基于语音的数字助理,例如智能扬声器、智能电视、智能电器、智能物联网(iot)装置。由于麦克风基于经授权用户(例如,家人和朋友)的语音模型而智能地限制将其语音输入发射到基于语音的数字助理,因此基于语音的数字助理的安全性得以改进。
35.此外,可训练人工神经网络(ann)以辨识与基于语音的数字助理的控制相关的话语,且因此忽略与基于语音的数字助理的操作不相关的其它话语内容。由于麦克风智能地滤出与基于语音的数字助理的操作不相关的话语内容,因此隐私保护得以增强。举例来说,背景会话将不会被发射到基于语音的数字助理和/或到云端计算平台;并且可减少和/或消除对背景会话的无意中窃听。
36.此外,可在麦克风内执行对人工神经网络(ann)的训练以辨识家人和朋友的语音。因此,家人和朋友的语音模型可保全在麦克风中以用于保护家人和朋友。
37.替代地,可在集中式平台中(例如,在服务器或云端计算平台中)存储和/或训练家人和朋友的语音模型。当经授权时,经训练语音模型可被下载到家人和朋友的装置中的相关麦克风,以实现麦克风的定制。此方法可不再需要对家人和朋友的装置/计算机所使用的多个麦克风进行个别训练。
38.由于麦克风可处理语音输入以产生用于基于语音的数字助理的文本输入,而与云端计算平台和/或服务器计算机无关,因此用户数据的隐私可得到更好保护。可在不将语音数据或音频数据发射到云端计算平台和/或服务器计算机的情况下处理语音输入。
39.麦克风使用换能器将声波转换为电信号,所述电信号可使用模数转换器(adc)而数字化为音频数据。麦克风可在连续操作的时间段内产生大量音频数据。将由麦克风产生的音频数据存储和/或上载到服务器、云平台或中央处理单元(cpu)以供处理会需要大数据存储容量和/或高通信带宽。
40.当麦克风被配置成具有深度学习加速器(dla)以及带有人工神经网络(ann)的随机存取存储器时,由麦克风产生的音频数据可经过本地处理以产生智能输出,以避免或减少音频数据的发射。
41.举例来说,为了减少数据存储要求和/或数据通信业务,在麦克风中实施的人工神经网络(ann)可将音频数据转换为特定应用所关注的推断结果,且因此不再需要存储和/或传送由麦克风的换能器捕获的大部分或全部音频数据。
42.举例来说,可训练人工神经网络(ann)以辨识由特定个人说出的词语。人工神经网络(ann)不仅辨识以特定语言说出的词语,而且对所述词语是否由特定个人说出进行分类。当所述词语被分类为由特定个人说出时,可提供所辨识词语的文本表示作为麦克风的输出。因此,由其它人说出的相同词语将不会从麦克风产生输出。
43.通过提供由特定个人说出的所辨识词语的文本表示作为麦克风的输出,麦克风消除对由麦克风附近的其它人说出的词语的无意中窃听和/或消除对基于语音的数字助理的未授权使用。
44.此外,举例来说,可训练人工神经网络(ann)以对其中辨识由特定个人说出的词语的会话模式进行分类。所述模式可包含对说出词语时的情绪状态的分类、对是否将会话引导到基于语音的数字助理的分类和/或对会话的上下文的分类。麦克风可被配置成在所述模式处于一或多个预定义类别时产生文本输出,且在所述模式处于其它类别时抑制文本输出。
45.在另一实例中,可训练人工神经网络(ann)以监测音频数据以检测预定型式。举例来说,配置有此类人工神经网络(ann)的麦克风可用以监测患者的呼吸以检测症状的发作,或监测房间中的噪声以检测跌倒而无需窃听房间中的会话。因此,人工神经网络(ann)将麦克风转换成基于与事件相关联的声波而检测预定义事件类别的专用传感器。所检测到的事件可被发射到使用麦克风作为输入装置的计算机系统。此类计算机系统可为移动计算机、智能手机、个人媒体播放器、个人计算机、服务器计算机或服务器计算机集群。
46.任选地,麦克风可被配置成在某一时间段内存储音频数据。举例来说,当检测到未辨识的声音型式时,麦克风可将未辨识的型式的检测报告给数字助理。数字助理可与用户交互和/或分析其它输入以确定是否请求未辨识的声音型式的音频数据,例如由未知个人说出的词语。通过来自用户的明确授权,可将未辨识的声音型式的音频数据发射到单独的计算机,例如服务器计算机或云端计算平台,以供进一步分析。可将分析结果提供到麦克风以进一步训练在麦克风中实施的人工神经网络(ann)以改进其推断能力。举例来说,可使用监督机器学习技术来执行训练。举例来说,可由操作人员或授权用户执行进一步分析。举例来说,替代性用户接口(例如,使用智能手机、个人媒体播放器、平板计算机、移动计算机呈现)可用于识别未辨识的声音型式的性质,以使得人工神经网络(ann)可随后经过训练而以类似于操作人员或授权用户的方式识别声音型式。
47.任选地,麦克风可在预定时间段内存储已经转换成音频数据流中所辨识的声音的概述或描述的音频数据流的片段。可用例如说出的词语、所辨识的声音和事件等所辨识的音频事件的部分的概述或描述和识别来注释音频数据流。音频数据的概述或描述可作为麦克风的输出而提供到在单独计算机中运行的应用,所述单独计算机例如为智能手机、个人媒体播放器、移动计算机、个人计算机、物联网(iot)枢纽和/或服务器计算机。在预定时间段内,接收概述或描述作为输入的应用可选择所关注的事件且任选地请求麦克风发射所述事件的相关音频数据以供存储和/或以供进一步分析。
48.在一些应用中,麦克风被配置成针对满足预定选择标准的特征和/或事件监测音频流。当在人工神经网络(ann)的输出中检测到此类特征和/或事件时,麦克风从音频流中选择代表性部分以用于存储和/或用于上载到单独计算机。通过由人工神经网络(ann)执行的分析,可将音频流中的信息压缩到包含对所关注的特征/事件的识别、特征/事件的音频数据以及特征/事件的所辨识/所测量的属性的描述的概述中。可减少和/或舍弃关于不受关注的所辨识特征的信息。音频流的此概述可实现优于常规的有损或无损音频压缩技术的压缩比;并且在麦克风的许多应用中,此概述可为足够的和/或比由麦克风的换能器产生的原始音频流更有用。
49.举例来说,代替将音频流发射到单独计算机系统以供处理,麦克风可将音频流中的内容的描述提供到计算机系统以供处理。对所辨识的特征或事件的代表性剪辑可通过描述发射,或在计算机系统发送对此类剪辑的请求时提供。此外,计算机系统可任选地请求麦
克风发射含有所关注的特征或事件的音频数据的剪辑。
50.举例来说,麦克风被配置成基于用户的呼吸声音、用户的咳嗽声音和/或用户发出的其它非话语声音来监测用户的健康状况。具有深度学习加速器和随机存取存储器的集成电路装置配置于麦克风中以在本地处理音频数据。可自动舍弃用户的确定不与健康问题相关联的声音剪辑以减少对存储大量原始音频数据的需求且保护用户的隐私。
51.可通过存储可由深度学习加速器(dla)执行的人工神经网络(ann)的模型来定制麦克风以用于智能监测的特定应用。举例来说,可使用编译器根据人工神经网络(ann)的描述转换模型;并且所述模型包含人工神经网络(ann)的权重/内核矩阵以及具有矩阵操作数的指令,所述指令可由深度学习加速器(dla)执行以基于权重/内核矩阵而实施人工神经网络(ann)的计算。
52.举例来说,麦克风可配置于医疗设施中以监测患者的状况。不同患者可能具有不同健康问题,所述不同健康问题需要监测以用于检测不同症状的发作。因此,可通过安装经训练以用于检测与患者相关的症状的人工神经网络(ann)的模型来定制麦克风以用于当前正受到监测的患者。
53.在通过将模型存储在随机存取存储器中以执行人工神经网络(ann)的计算来定制麦克风之后,由麦克风产生的原始音频数据作为输入提供到人工神经网络(ann);并且人工神经网络(ann)的输出可用以产生警告、选择性地保留和/或报告音频数据和/或提供为麦克风的主要输出。
54.举例来说,麦克风可包含无线收发器(例如,用于无线个人区域网的通信装置,诸如蓝牙收发器,或用于无线局域网的通信装置,诸如wi-fi收发器)。通过无线连接,可将人工神经网络(ann)的输出报告给单独的计算机系统,例如智能手机、个人媒体播放器、移动计算机、个人计算机、物联网(iot)枢纽和/或服务器计算机。
55.替代地,麦克风可具有缆线以用于到单独的计算机系统的有线连接,以报告人工神经网络(ann)的输出或在某一时间段内下载存储在麦克风中的输出。
56.举例来说,可训练人工神经网络(ann)以对声音剪辑是否受特定应用关注进行分类。人工神经网络(ann)的输出可用于选择性地存储剪辑的音频数据以供后续分析和/或下载。
57.举例来说,麦克风可将使用人工神经网络(ann)在麦克风中本地产生的智能输出提供到计算机系统且无需来自计算机系统的辅助。举例来说,麦克风可用于监测健康相关事件且在检测到此类事件时产生警告。举例来说,麦克风可用于监测与健康问题的诊断有关的病症且记录此类病症的出现和/或相关联数据以供进一步分析。举例来说,麦克风可用于监测用户的跌倒且在检测到用户跌倒时产生请求帮助的呼叫。举例来说,麦克风可用于检测用户的语音命令且将语音命令的识别提供到单独计算机(例如,智能手机、游戏控制台、个人媒体播放器、个人计算机、机顶盒),以控制单独计算机中的操作。
58.麦克风中的随机存取存储器可包含被配置成存储到人工神经网络(ann)的输入的部分以及被配置成存储来自人工神经网络(ann)的输出的另一部分。由麦克风产生的音频数据可以循环方式存储在随机存取存储器的输入部分中。因此,可在随机存取存储器的输入部分中找到用于麦克风的操作的最新周期的原始音频数据。深度学习加速器(dla)可将输入部分中的音频数据实时地转换为存储在随机存取存储器的输出部分中的推断结果。
59.举例来说,到人工神经网络(ann)的音频数据流可以输入数据集的序列的形式被配置。每一输入数据集是用于在时隙期间到人工神经网络(ann)的一组输入。在深度学习加速器(dla)正在根据当前的一组输入而计算输出时,控制器可将下一组输入存储到随机存取存储器中;并且控制器可同时从随机存取存储器检索针对先前的一组输入产生的输出。
60.因此,可在麦克风上在本地执行准备并处理到人工神经网络(ann)的音频数据的任务以减少发射到单独计算机系统的数据。此布置可减少与从麦克风发射大量传感器数据相关联的电力消耗且改进对麦克风的用户的隐私保护。
61.此外,神经形态存储器可用于实施对矩阵/向量相乘和求和的计算以减少深度学习加速器(dla)的电力消耗。
62.举例来说,可使用被配置成经由模拟电路系统执行乘累加(mac)运算的忆阻器的交叉开关阵列来实施神经形态存储器。在交叉开关阵列中通过一组忆阻器穿过字线到位线的电流在位线中相加,此对应于累加运算。电流对应于施加在字线上的电压和与忆阻器的电阻相关联的参数的相乘,此对应于乘法运算。可将位线中的电流与阈值进行比较以确定由位线表示的神经元是否在电流输入下被激活。忆阻器阵列可分别连接到位线,且被编程以具有对应于神经元的激活电平阈值的阈值。电流检测器可被配置成用于连接到位线的输出的每一忆阻器,以确定位线中的电流电平是否对应于超出忆阻器的阈值的电平。
63.图1展示具有根据一个实施例配置的深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)。
64.图1中的深度学习加速器(103)包含处理单元(111)、控制单元(113)和本地存储器(115)。当向量和矩阵操作数在本地存储器(115)中时,控制器单元(113)可使用处理单元(111)来根据指令执行向量和矩阵操作。此外,控制器单元(113)可经由存储器接口(117)和高速/带宽连接(119)从随机存取存储器(105)加载指令和操作数。
65.集成电路装置(101)被配置成用存储器控制器接口(107)的引脚或触点围封在集成电路封装内。
66.存储器控制器接口(107)被配置成支持标准存储器存取协议,以使得集成电路装置(101)以与不具有深度学习加速器(dla)(103)的常规随机存取存储器装置相同的方式表现为典型存储器控制器。举例来说,集成电路装置(101)外部的存储器控制器可使用标准存储器存取协议经由存储器控制器接口(107)来存取集成电路装置(101)中的随机存取存储器(105)。
67.集成电路装置(101)配置有在围封于集成电路装置(101)内的随机存取存储器(105)与深度学习加速器(dla)(103)之间的高带宽连接(119)。连接(119)的带宽高于随机存取存储器(105)与存储器控制器接口(107)之间的连接(109)的带宽。
68.在一个实施例中,存储器控制器接口(107)和存储器接口(117)两者均被配置成经由同一组总线或导线来存取随机存取存储器(105)。因此,用以存取随机存取存储器(105)的带宽在存储器接口(117)与存储器控制器接口(107)之间共享。替代地,存储器控制器接口(107)和存储器接口(117)被配置成经由单独一组总线或导线来存取随机存取存储器(105)。任选地,随机存取存储器(105)可包含可经由连接(119)同时存取的多个区段。举例来说,当存储器接口(117)正存取随机存取存储器(105)的区段时,存储器控制接口(107)可同时存取随机存取存储器(105)的另一区段。举例来说,不同区段可配置于不同集成电路裸
片和/或存储器单元的不同平面/排组上;并且可并行地存取不同区段以增加存取随机存取存储器(105)时的吞吐量。举例来说,存储器控制器接口(107)被配置成一次存取预定大小的一个数据单元;并且存储器接口(117)被配置成一次存取多个数据单元,每一数据单元为相同预定大小。
69.在一个实施例中,随机存取存储器(105)和集成电路装置(101)配置于不同集成电路裸片上,所述不同集成电路裸片配置于同一集成电路封装内。此外,随机存取存储器(105)可配置于允许同时并行存取多个数据元素的一或多个集成电路裸片上。
70.在一些实施方案中,可经由连接(119)并行存取的向量或矩阵的数据元素的数目对应于对向量或矩阵进行操作的深度学习加速器(dla)的粒度。举例来说,当处理单元(111)可并行地对数个向量/矩阵元素操作时,连接(119)被配置成经由连接(119)并行地加载或存储相同数目或所述数目的倍数的元素。
71.任选地,可基于深度学习加速器(dla)(103)的处理速度而配置连接(119)的数据存取速度。举例来说,在一定量的数据和指令已经加载到本地存储器(115)中之后,控制单元(113)可使用处理单元(111)执行指令以对数据进行操作以产生输出。在用以产生输出的处理的时间段内,连接(119)的存取带宽允许将相同量的数据和指令加载到本地存储器(115)中以用于下一操作,且将相同量的输出存储回到随机存取存储器(105)。举例来说,在控制单元(113)正使用本地存储器(115)的部分处理数据且产生输出的同时,存储器接口(117)可将先前操作的输出从本地存储器(115)的另一部分卸载到随机存取存储器(105)中,且将操作数数据和指令加载到所述本地存储器的所述另一部分中。因此,深度学习加速器(dla)的利用率和性能不因连接(119)的带宽而受限或降低。
72.随机存取存储器(105)可用于存储人工神经网络(ann)的模型数据且用于缓冲人工神经网络(ann)的输入数据。模型数据并不频繁地改变。模型数据可包含由用于深度学习加速器(dla)的编译器产生的输出以实施人工神经网络(ann)。模型数据通常包含在人工神经网络(ann)的描述中使用的矩阵和针对深度学习加速器(dla)(103)产生的指令,以基于深度学习加速器(dla)(103)的粒度的向量/矩阵操作而执行人工神经网络(ann)的向量/矩阵操作。指令不仅对人工神经网络(ann)的向量/矩阵操作进行操作,而且对人工神经网络(ann)的输入数据进行操作。
73.在一个实施例中,当在随机存取存储器(105)中加载或更新输入数据时,深度学习加速器(dla)(103)的控制单元(113)可自动地执行用于人工神经网络(ann)的指令以产生人工神经网络(ann)的输出。将输出存储到随机存取存储器(105)中的预定义区中。深度学习加速器(dla)(103)可执行指令而无需来自中央处理单元(cpu)的帮助。因此,可减少或消除用于深度学习加速器(dla)(103)与集成电路装置(101)外部的处理器(例如,中央处理单元(cpu))之间的协调的通信。
74.任选地,可经由互补金属氧化物半导体(cmos)实施深度学习加速器(dla)(103)的逻辑电路。举例来说,随机存取存储器(105)的存储器单元的阵列下cmos(cua)技术可用于实施包含处理单元(111)和控制单元(113)的深度学习加速器(dla)(103)的逻辑电路。替代地,随机存取存储器(105)的存储器单元阵列中的cmos的技术可用于实施深度学习加速器(dla)(103)的逻辑电路。
75.在一些实施方案中,深度学习加速器(dla)(103)和随机存取存储器(105)可实施
于单独的集成电路裸片上,且使用用于增加深度学习加速器(dla)(103)与随机存取存储器(105)之间的数据带宽的硅穿孔(tsv)进行连接。举例来说,深度学习加速器(dla)(103)可形成于现场可编程门阵列(fpga)或专用集成电路(asic)的集成电路裸片上。
76.替代地,深度学习加速器(dla)(103)和随机存取存储器(105)可配置于单独的集成电路封装中且经由印刷电路板(pcb)上的多个点到点连接而连接以用于并行通信,且因此增加数据传递带宽。
77.随机存取存储器(105)可为易失性存储器或非易失性存储器,或易失性存储器与非易失性存储器的组合。非易失性存储器的实例包含快闪存储器、基于与非(nand)逻辑门、或非(nor)逻辑门而形成的存储器单元、相变存储器(pcm)、磁性存储器(mram)、电阻式随机存取存储器、交叉点存储装置和存储器装置。交叉点存储器装置可使用无晶体管存储器元件,所述无晶体管存储器元件中的每一者具有一起堆叠成列的存储器单元和选择器。存储器元件列经由在垂直方向上延行的两个线路排布来连接,其中一个排布的线路在层中的一个方向上延行并位于存储器元件列上方,并且另一排布的线路在另一方向上延行并位于存储器元件列下方。可个别地在两个层中的每一者上的一个线路的交叉点处选择每一存储器元件。交叉点存储器装置是快速且非易失性的,且可用作统一存储器池以供处理和存储。非易失性存储器的其它实例包含只读存储器(rom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)和电子可擦除可编程只读存储器(eeprom)存储器等。易失性存储器的实例包含动态随机存取存储器(dram)和静态随机存取存储器(sram)。
78.举例来说,非易失性存储器可被配置成实施随机存取存储器(105)的至少一部分。随机存取存储器(105)中的非易失性存储器可用以存储人工神经网络(ann)的模型数据。因此,在集成电路装置(101)断电并重启之后,不必将人工神经网络(ann)的模型数据重新加载到集成电路装置(101)中。此外,非易失性存储器可为可编程/可重写的。因此,可更新或替换集成电路装置(101)中的人工神经网络(ann)的模型数据以实施更新人工神经网络(ann)或另一人工神经网络(ann)。
79.深度学习加速器(dla)(103)的处理单元(111)可包含向量-向量单元、矩阵-向量单元和/或矩阵-矩阵单元。下文结合图2至4论述被配置成执行向量-向量操作、矩阵-向量操作和矩阵-矩阵操作的单元的实例。
80.图2展示根据一个实施例的被配置成执行矩阵-矩阵操作的处理单元(121)。举例来说,图2的矩阵-矩阵单元(121)可用作图1的深度学习加速器(dla)(103)的处理单元(111)中的一个。
81.在图2中,矩阵-矩阵单元(121)包含多个内核缓冲器(131至133)和多个映射排组(151至153)。映射排组(151至153)中的每一者存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储在映射排组(151至153)中的多个向量;并且内核缓冲器(131至133)中的每一者存储另一矩阵操作数的一个向量,所述另一矩阵操作数具有分别存储在内核缓冲器(131至133)中的多个向量。矩阵-矩阵单元(121)被配置成使用并行地操作的多个矩阵-向量单元(141至143)对两个矩阵操作数的要素执行相乘和累加运算。
82.交叉开关(123)将映射排组(151至153)连接到矩阵-向量单元(141至143)。存储在映射排组(151至153)中的相同矩阵操作数经由交叉开关(123)提供到矩阵-向量单元(141至143)中的每一者;并且矩阵-向量单元(141至143)从映射排组(151至153)并行地接收数
据元素。内核缓冲器(131至133)中的每一者连接到矩阵-向量单元(141至143)中的相应一者,且将向量操作数提供到相应矩阵-向量单元。矩阵-向量单元(141至143)同时操作以计算存储在映射排组(151至153)中的相同矩阵操作数乘以存储在内核缓冲器(131至133)中的对应向量的运算。举例来说,矩阵-向量单元(141)对存储在映射排组(151至153)中的矩阵操作数和存储在内核缓冲器(131)中的向量操作数执行乘法运算,同时矩阵-向量单元(143)同时对存储在映射排组(151至153)中的矩阵操作数和存储在内核缓冲器(133)中的向量操作数执行乘法运算。
83.图2中的每一矩阵-向量单元(141至143)可以如图3中所示出的方式实施。
84.图3展示根据一个实施例的被配置成执行矩阵-向量操作的处理单元(141)。举例来说,图3的矩阵-向量单元(141)可用作图2的矩阵-矩阵单元(121)中的矩阵-向量单元中的任一者。
85.在图3中,映射排组(151至153)中的每一者以类似于图2的映射排组(151至153)的方式存储矩阵操作数的一个向量,所述矩阵操作数具有分别存储在映射排组(151至153)中的多个向量。图3中的交叉开关(123)将向量从映射排组(151)分别提供到向量-向量单元(161至163)。存储在内核缓冲器(131)中的相同向量被提供到向量-向量单元(161至163)。
86.向量-向量单元(161至163)同时操作以计算分别存储在映射排组(151至153)中的对应向量操作数乘以存储在内核缓冲器(131)中的相同向量操作数的运算。举例来说,向量-向量单元(161)对存储在映射排组(151)中的向量操作数和存储在内核缓冲器(131)中的向量操作数执行乘法运算,同时向量-向量单元(163)同时对存储在映射排组(153)中的向量操作数和存储在内核缓冲器(131)中的向量操作数执行乘法运算。
87.当图3的矩阵-向量单元(141)实施于图2的矩阵-矩阵单元(121)中时,矩阵-向量单元(141)可使用矩阵-矩阵单元(121)的映射排组(151至153)、交叉开关(123)和内核缓冲器(131)。
88.图3中的向量-向量单元(161至163)中的每一者可以如图4中所示出的方式实施。
89.图4示出根据一个实施例的被配置成执行向量-向量操作的处理单元(161)。举例来说,图4的向量-向量单元(161)可用作图3的矩阵-向量单元(141)中的向量-向量单元中的任一者。
90.在图4中,向量-向量单元(161)具有多个乘累加(mac)单元(171至173)。乘累加(mac)单元(171至173)中的每一者可接收两个数字作为操作数,执行这两个数字的乘法,且将乘法的结果与乘累加(mac)单元中维持的总和相加。
91.向量缓冲器(181和183)中的每一者存储一系列数字。各自来自向量缓冲器(181和183)中的一者的一对数字可作为输入提供到乘累加(mac)单元(171至173)中的每一者。乘累加(mac)单元(171至173)可从向量缓冲器(181和183)并行地接收多对数字,且并行地执行乘累加(mac)运算。来自乘累加(mac)单元(171至173)的输出被存储到移位寄存器(175)中;并且累加器(177)计算移位寄存器(175)中的结果的总和。
92.当图4的向量-向量单元(161)实施于图3的矩阵-向量单元(141)中时,向量-向量单元(161)可使用映射排组(例如,151或153)作为一个向量缓冲器(181),且使用矩阵-向量单元(141)的内核缓冲器(131)作为另一向量缓冲器(183)。
93.向量缓冲器(181和183)可具有相同长度以存储相同数目/计数的数据要素。所述
长度可等于向量-向量单元(161)中的乘累加(mac)单元(171至173)的计数或为所述计数的倍数。当向量缓冲器(181和183)的长度是乘累加(mac)单元(171至173)的计数的倍数时,等于乘累加(mac)单元(171至173)的计数的数目的输入对可在每一迭代中作为输入从向量缓冲器(181和183)被提供到乘累加(mac)单元(171至173);并且向量缓冲器(181和183)通过多个迭代将其元素馈送到乘累加(mac)单元(171至173)中。
94.在一个实施例中,深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以供矩阵-矩阵单元(121)使用随机存取存储器(105)的部分作为映射排组(151至153)和内核缓冲器(131至133)。
95.在另一实施例中,映射排组(151至153)和内核缓冲器(131至133)实施于深度学习加速器(dla)(103)的本地存储器(115)的部分中。深度学习加速器(dla)(103)与随机存取存储器(105)之间的连接(119)的通信带宽足以将矩阵-矩阵单元(121)的下一操作循环的矩阵操作数加载到本地存储器(115)的另一部分中,同时矩阵-矩阵单元(121)在当前操作循环中正使用实施于深度学习加速器(dla)(103)的本地存储器(115)的不同部分中的映射排组(151至153)和内核缓冲器(131至133)来执行计算。
96.图5展示根据一个实施例的被配置成将输入自主地应用到经训练人工神经网络的深度学习加速器和随机存取存储器。
97.已通过机器学习(例如,深度学习)训练的人工神经网络(ann)(201)可以标准格式(例如,开放神经网络交换(onnx))描述。以标准格式描述经训练ann(201)会识别人工神经元的性质及其连接性。
98.在图5中,通过产生用于深度学习加速器(dla)(103)的指令(205)以及对应于人工神经元的性质及其连接性的矩阵(207),深度学习加速器(dla)编译器(203)转换经训练ann(201)。由dla编译器(203)根据经训练ann(201)产生的指令(205)和矩阵(207)可存储在用于深度学习加速器(dla)(103)的随机存取存储器(105)中。
99.举例来说,随机存取存储器(105)和深度学习加速器(dla)(103)可以如图1的集成电路装置(101)中的方式经由高带宽连接(119)而连接。图5的基于指令(205)和矩阵(207)的自主计算可实施于图1的集成电路装置(101)中。替代地,随机存取存储器(105)和深度学习加速器(dla)(103)可配置于具有平行延行的多个点对点串行总线以实施连接(119)的印刷电路板上。
100.在图5中,在dla编译器(203)的结果存储在随机存取存储器(105)中之后,可通过随机存取存储器(105)中的输入(211)的存在或在随机存取存储器(105)中提供的另一指示而触发应用经训练ann(201)以处理经训练ann(201)的输入(211)以产生经训练ann(213)的对应输出(213)。
101.作为响应,深度学习加速器(dla)(103)执行指令(205)以组合输入(211)和矩阵(207)。指令(205)的执行可包含针对深度学习加速器(dla)(103)的一或多个矩阵-矩阵单元(例如,121)的映射排组(151至153)而产生映射矩阵。
102.在一些实施例中,到ann(211)的输入呈初始映射矩阵的形式。可从随机存取存储器(105)检索初始映射矩阵的部分作为存储在矩阵-矩阵单元(121)的映射排组(151至153)中的矩阵操作数。或者,dla指令(205)还包含供深度学习加速器(dla)(103)根据输入(211)产生初始映射矩阵的指令。
103.根据dla指令(205),深度学习加速器(dla)(103)将矩阵操作数加载到其矩阵-矩阵单元(121)的内核缓冲器(131至133)和映射排组(151至153)中。矩阵-矩阵单元(121)对矩阵操作数执行矩阵计算。举例来说,dla指令(205)根据深度学习加速器(dla)(103)的计算粒度(例如,作为矩阵操作数在矩阵-矩阵单元(121)中加载的矩阵的大小/维度)将经训练ann(201)的矩阵计算分解,且将输入特征映射应用于一层人工神经元的内核以产生输出作为用于下一层人工神经元的输入。
104.在根据指令(205)执行的对经训练ann(201)的计算完成之后,深度学习加速器(dla)(103)将ann(201)的输出(213)存储在随机存取存储器(105)中的预定义位置处或在随机存取存储器(105)中提供的指示中所指定的位置处以触发计算。
105.当图5的技术实施于图1的集成电路装置(101)中时,连接到存储器控制器接口(107)的外部装置可将输入(211)写入到随机存取存储器(105)中,且触发由深度学习加速器(dla)(103)将输入(211)应用于经训练ann(201)的自主计算。在某一时间段之后,输出(213)在随机存取存储器(105)中可用;并且外部装置可经由集成电路装置(101)的存储器控制器接口(107)来读取输出(213)。
106.举例来说,随机存取存储器(105)中的预定义位置可被配置成存储用以触发深度学习加速器(dla)(103)对指令(205)的自主执行的指示。所述指示可任选地包含随机存取存储器(105)内的输入(211)的位置。因此,在用以处理输入(211)的指令(205)的自主执行期间,外部装置可检索在指令(205)的前一运行期间产生的输出,和/或存储另一组输入以用于指令(205)的下一运行。
107.任选地,随机存取存储器(105)中的另一预定义位置可被配置成存储指令(205)的当前运行的进展状态的指示。此外,所述指示可包含指令(205)的当前运行的完成时间的预测(例如,基于指令(205)的先前运行而估计)。因此,外部装置可在合适的时间窗口检查完成状态以检索输出(213)。
108.在一些实施例中,随机存取存储器(105)配置有足够容量以存储多组输入(例如,211)和输出(例如,213)。每一组可配置于随机存取存储器(105)中的预定槽/区域中。
109.深度学习加速器(dla)(103)可自主地执行指令(205)以根据存储在随机存取存储器(105)中的矩阵(207)从输入(211)生成输出(213),而无需来自位于集成电路装置(101)外部的处理器或装置的帮助。
110.在根据一个实施例的方法中,可使用计算装置(例如,101)到存储器控制器的接口(107)来存取计算装置(例如,101)的随机存取存储器(105)。计算装置(例如,101)可具有被配置成至少对矩阵操作数执行计算的处理单元(例如,111),所述矩阵操作数例如为存储在映射排组(151至153)中的矩阵操作数和存储在内核缓冲器(131至133)中的矩阵操作数。
111.举例来说,计算装置(例如,101)可围封于集成电路封装内;并且一组连接可将接口(107)连接到位于集成电路封装外部的存储器控制器。
112.可通过接口(107)将可由处理单元(例如,111)执行的指令(205)写入到随机存取存储器(105)中。
113.可通过接口(107)将人工神经网络(201)的矩阵(207)写入到随机存取存储器(105)中。矩阵(207)识别人工神经网络(201)的性质和/或状态。
114.任选地,随机存取存储器(105)的至少一部分是非易失性的且被配置成存储人工
神经网络(201)的指令(205)和矩阵(07)。
115.可通过接口(107)将到人工神经网络的第一输入(211)写入到随机存取存储器(105)中。
116.在随机存取存储器(105)中提供指示以使处理单元(111)开始对指令(205)的执行。响应于所述指示,处理单元(111)执行将第一输入(211)与人工神经网络(201)的矩阵(207)组合的指令以从人工神经网络(201)产生第一输出(213)且将第一输出(213)存储在随机存取存储器(105)中。
117.举例来说,所述指示可为随机存取存储器(105)中的第一输入(211)的地址;并且所述指示可存储在随机存取存储器(105)中的预定位置以使得起始执行用于由所述地址识别的输入(211)的指令(205)。任选地,所述指示还可包含用于存储输出(213)的地址。
118.可经由接口(107)从随机存取存储器(105)读取第一输出(213)。
119.举例来说,计算装置(例如,101)可具有形成于第一集成电路裸片上的深度学习加速器(103)和形成于一或多个第二集成电路裸片上的随机存取存储器(105)。第一集成电路裸片与一或多个第二集成电路裸片之间的连接(119)可包含硅穿孔(tsv)以提供用于存储器存取的高带宽。
120.举例来说,可使用编译器(203)将人工神经网络(201)的描述转换为指令(205)和矩阵(207)。存储在随机存取存储器(105)中的指令(205)和矩阵(207)与深度学习加速器(103)的组合提供人工神经网络(201)的自主实施方案,其可将到人工神经网络(201)的输入(211)自动转换为其输出(213)。
121.举例来说,在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第一输入(211)产生第一输出(213)的时间段期间,可在替代位置通过接口(107)将到人工神经网络(201)的第二输入写入到随机存取存储器(105)中。在随机存取存储器(105)中存储第一输出(213)之后,可在随机存取存储器中提供指示以使深度学习加速器(103)再次开始对指令的执行且从第二输入产生第二输出。
122.在其中深度学习加速器(103)执行指令(205)以根据人工神经网络(201)的矩阵(207)从第二输入产生第二输出的时间段期间,可通过接口(107)从随机存取存储器(105)读取第一输出(213);并且可将另一输入写入到随机存取存储器中以代替第一输入(211),或写入在不同位置。可针对输入的序列重复所述过程。
123.深度学习加速器(103)可包含可对两个矩阵操作数执行指令的至少一个矩阵-矩阵单元(121)。所述两个矩阵操作数可为第一矩阵和第二矩阵。两个矩阵中的每一者具有多个向量。矩阵-矩阵单元(121)可包含被配置成并行地操作的多个矩阵-向量单元(141至143)。矩阵-向量单元(141至143)中的每一者被配置成与其它矩阵-向量单元并行地对第一矩阵和来自第二矩阵的一个向量进行操作。此外,矩阵-向量单元(141至143)中的每一者可具有被配置成并行地操作的多个向量-向量单元(161至163)。向量-向量单元(161至163)中的每一者被配置成与其它向量-向量单元并行地对来自第一矩阵的向量和相应矩阵-向量单元的共同向量操作数进行操作。此外,向量-向量单元(161至163)中的每一者可具有被配置成并行地操作的多个乘累加单元(171至173)。
124.除处理单元(111)之外,深度学习加速器(103)还可具有本地存储器(115)和控制单元(113)。控制单元(113)可从随机存取存储器(105)加载指令(205)和矩阵操作数(例如,
207)以供处理单元(111)执行。本地存储器可高速缓存由矩阵-矩阵单元使用的矩阵操作数。连接(119)可配置有足以在其中矩阵-矩阵单元对两个其它矩阵操作数执行操作的时间段期间将一组矩阵操作数从随机存取存储器(105)加载到本地存储器(115)的带宽。此外,在所述时间段期间,所述带宽足以将在先前指令执行中由矩阵-矩阵单元(121)产生的结果从本地存储器(115)存储到随机存取存储器(105)。
125.深度学习加速器(103)和随机存取存储器(105)可配置于麦克风中以将音频数据转换成由人工神经网络从音频数据辨识的推断结果。举例来说,麦克风可用于监测用户所产生的话语和声音以产生命令、文本输入、警告和/或选择性地存储音频数据。
126.举例来说,麦克风可具有收发器以用于到单独计算机系统的有线或无线通信连接,所述单独计算机系统例如为基于语音的数字助理、智能扬声器、智能电视、智能电器、智能物联网(iot)装置、移动装置、智能手机、个人中间播放器、个人计算机、机顶盒、物联网(iot)枢纽、服务器计算机等。
127.麦克风可使用所述连接来提供由特定用户说出的词语作为命令和/或文本输入,以提供对由人工神经网络(201)识别的所辨识声音型式或事件的识别。单独计算机系统进一步处理命令、文本输入、声音型式或事件的发生,以产生用户交互、产生警告、提供显示、选择性地从麦克风请求音频数据和/或选择性地存储音频数据。
128.麦克风可经由通过收发器接收人工神经网络(201)的矩阵(207)和指令(205)且将其存储到随机存取存储器(105)中而被定制、更新和/或升级。
129.经由执行指令(205)的深度学习加速器(103)而实施的人工神经网络(201)将由换能器检测到的声音的音频流转换成推断结果。所述转换改进了麦克风的输出的质量、降低了对到计算机系统的连接的通信带宽要求和/或减少了计算机系统的计算工作负荷。
130.图6至8示出具有根据一些实施例配置的深度学习加速器(103)和随机存取存储器(105)的麦克风(191)。
131.图6、7或8中的麦克风(191)包含将声波(227)转换成电信号的换能器(102)。举例来说,换能器(102)可包含配置于磁场中以在声波(227)移动线圈时产生电信号的导线线圈。举例来说,换能器(102)可包含隔膜,所述隔膜被配置为电容器板,所述电容器板根据由声波(227)引起的隔膜移动而改变电路的阻抗以产生电信号。举例来说,换能器(102)可包含基于由于声波(227)而在压电元件上施加的压力的变化而产生电信号的压电元件。举例来说,换能器(102)可包含测量由声波(227)移动的表面或隔膜的振动的激光束。
132.换能器(102)可为集成于集成电路裸片上的微机电系统(mems)装置,其具有用以放大由换能器(102)产生的电信号的电路系统以及用以根据经放大电信号而产生音频数据的模数转换器(adc)。举例来说,可将压敏隔膜蚀刻到集成电路裸片中以直接在集成电路裸片中产生电信号。前置放大器可配置于集成电路裸片上以放大电信号。模数转换器(adc)可配置于集成电路裸片上以将经放大信号转换成音频数据,所述音频数据可由逻辑电路(例如,使用互补金属氧化物半导体(cmos)而实施)进一步处理。替代地,可使用配置于集成电路裸片上的压电元件来实施mems换能器(102)以产生电信号。
133.在图6中,集成电路装置(101)不仅包含深度学习加速器(103)和随机存取存储器(105),而且包含换能器(102)、控制器(107)和收发器(106)的逻辑电路。换能器(102)可包含或连接到前置放大器和/或模数转换器(adc)以提供音频数据。
134.举例来说,换能器(102)、控制器(107)和收发器(106)可形成于集成电路裸片上,所述集成电路裸片堆叠在随机存取存储器(105)的集成电路裸片上且连接到所述随机存取存储器的所述集成电路裸片。因此,由换能器(102)产生的音频数据可由控制器(107)存储到随机存取存储器(105)中,以作为到使用深度学习加速器(103)实施的人工神经网络(201)的输入(211)。
135.替代地,换能器(102)可形成于与控制器(107)和/或收发器(106)分离的集成电路裸片上。
136.在一些实施方案中,换能器(102)含有状态机,所述状态机以循环方式将换能器(102)中所产生的音频数据写入在用于到人工神经网络(201)的输入(211)的预定区中。举例来说,一旦状态机受到指令以进行操作,那么换能器(102)捕获电信号序列、产生表示电信号的音频数据、依序将音频数据存储在用于输入(211)的预定区中。当用于输入(211)的预定区中的最后一部分被用于最新音频数据时,状态机返回以存储来自预定区的开始部分的其它音频数据,所述状态机擦除/改写在预定区中的音频数据的最早部分。后续音频数据可依序存储在预定区中,以对当前在预定区中的最早音频数据进行进一步擦除/改写。
137.在一些实施方案中,换能器(102)的状态机可通过一组硅穿孔(tsv)将音频数据写入到随机存取存储器(105),而无需穿过控制器(107)。替代地,控制器(107)从换能器(102)接收音频流,且将所述音频流以循环方式写入到输入区中作为到人工神经网络(201)的输入(211)。
138.换能器(102)可配置于集成电路装置(101)的顶部部分上,所述集成电路装置具有允许声波(227)到达换能器(102)的开口。集成电路装置(102)的连接器(例如,引脚或触点)可配置于集成电路装置(101)的底部或集成电路装置(101)的侧面。
139.图6的集成电路装置(101)具有控制器(107),所述控制器被配置成经由集成电路装置(101)中的连接(104)控制换能器(102)的操作。可例如使用微控制器或定序器来实施控制器(107),所述微控制器或定序器控制换能器(102)的操作时序且将音频数据从换能器(102)加载到随机存取存储器(105)中。
140.任选地,可使用微处理器来实施控制器(107),所述微处理器运行存储在随机存取存储器(105)中的应用(215)作为固件,以协调换能器(102)、随机存取存储器(105)、深度学习加速器(103)和/或收发器(106)之间的操作。
141.在将一组音频数据作为到人工神经网络(201)的输入(211)而存储到随机存取存储器(105)中之后,控制器(107)可使深度学习加速器(103)执行指令(205)且产生人工神经网络(201)的输出(213)。
142.举例来说,控制器(107)可通过在随机存取存储器(105)中的预定义位置处写入输入(211)的地址来发指令给深度学习加速器(103)以开始对指令(205)的执行。当深度学习加速器(103)处于空闲态时,深度学习加速器(103)可周期性地读取存储在随机存取存储器(105)中的预定义位置处的地址。当从预定义位置检索到新的和/或有效的地址时,深度学习加速器(103)开始对指令(205)的执行。任选地,在开始对指令(205)的执行之后,深度学习加速器(103)可任选地清除、擦除先前存储在随机存取存储器(105)中的预定义位置处的地址或使所述地址失效。
143.替代地,控制器(107)被配置成将信号或消息发送到深度学习加速器(103)以发指
令给深度学习加速器(103)来执行指令(205)。可使用不穿过随机存取存储器(105)的存储器单元的直接连接来将信号或消息从控制器(107)发射到深度学习加速器(103)。
144.在一些实施方案中,控制器(107)和深度学习加速器(103)具有到随机存取存储器(105)的分别连接(109和119)。当控制器(107)和深度学习加速器(103)并不存取随机存取存储器(105)的同一块或地址时,连接(109和119)可由控制器(107)和深度学习加速器(103)并行地使用以同时存取随机存取存储器(105)的不同部分。
145.在其它实施方案中,控制单元(113)和控制器(107)可在深度学习加速器(103)中共享其电路系统的至少一部分,且使用同一存储器接口(117)来存取随机存取存储器(105)。
146.处理单元(111)的部分可使用神经形态存储器(225)来实施。举例来说,神经形态存储器(225)可包含被配置成经由模拟电路系统执行乘累加(mac)运算的忆阻器的交叉开关阵列。举例来说,深度学习加速器(103)的向量-向量单元(例如,161)中的乘累加单元(例如,171或173)可使用忆阻器的交叉开关阵列来实施。所述忆阻器可在具有字线和位线的阵列中连接,所述字线和位线被配置成将忆阻器定址为存储器单元。典型的忆阻器连接到阵列中的字线中的一者和位线中的一者。在交叉开关阵列中通过一组忆阻器穿过字线到位线的电流在位线中相加,此对应于累加运算。电流对应于施加在字线上的电压和与忆阻器的电阻相关联的参数的相乘,此对应于乘法运算。可将位线中的电流与阈值进行比较以确定由位线表示的神经元是否在电流输入下被激活。忆阻器阵列可分别连接到位线,且被编程以具有对应于神经元的激活电平阈值的阈值。电流检测器可被配置成用于连接到位线的输出的每一忆阻器,以确定位线中的电流电平是否对应于超出忆阻器的阈值的电平。神经形态存储器(225)可以类似于存储器装置读取存储器单元阵列的方式且因此具有低能量成本和高计算速度的方式执行乘累加(mac)运算。
147.经由连接(108),控制器(107)操作图6的集成电路装置(101)的收发器(106)以经由无线连接(228)与单独计算机系统(223)通信。替代地或组合地,麦克风(191)包含用于有线连接(228)的收发器。
148.举例来说,收发器(106)可被配置成根据用于局域网、外围总线、移动行业处理器接口、无线个人区域网或无线局域网的通信协议或物联网(iot)的通信协议而进行通信。举例来说,收发器(106)可形成于射频(rf)互补金属氧化物半导体(cmos)集成电路芯片上。
149.举例来说,麦克风(191)可使用收发器(106)将人工神经网络(201)的输出(213)发射到计算机系统(223)。
150.举例来说,麦克风(191)可使用收发器(106)来基于人工神经网络(201)的输出(213)而将警告发射到计算机系统(223)。
151.收发器(106)可由麦克风(191)使用以从计算机系统(223)接收数据和/或指令,例如人工神经网络(201)的矩阵(207)和指令(205)。收发器(106)可由麦克风(191)使用以向计算机系统(223)报告检索到由深度学习加速器(103)计算的人工神经网络(201)的输出(213)。
152.任选地,计算机系统(223)可与麦克风(191)通信以请求麦克风(191)发射与输出(213)相关联的输入(211)。作为响应,收发器(106)将输入(211)发射到计算机系统(223),这允许计算机系统(223)选择性地分析到人工神经网络(201)的输入(211)。
153.替代地,麦克风(191)基于人工神经网络(201)的输出(213)而自动选择用于发射到计算机系统(223)的输入(211)。
154.在一些实施方案中,麦克风(191)被配置成将输出(213)报告到计算机系统(223)。举例来说,当深度学习加速器(103)完成对一组输出(213)的计算时,控制器(107)产生报告输出(213)的可用性的消息。收发器(106)将消息发射到计算机系统(223)。作为响应,计算机系统(223)可任选地立即接受输出(213)的发射、在某一时间段内请求延迟输出(213)的发射,或请求延缓下一组输出(213)的产生。
155.在一些实施方案中,深度学习加速器(103)的控制单元(113)可包含控制器(107);并且收发器(106)的逻辑电路可实施于深度学习加速器(103)的集成电路裸片上,如图7中所示出。
156.在图7中,深度学习加速器(103)配置于集成电路裸片上;并且随机存取存储器(105)配置于一或多个集成电路裸片上。控制单元(113)不仅控制人工神经网络(201)的指令(205)的执行,而且控制收发器(106)与计算机系统(223)的通信以及换能器(102)的操作。
157.举例来说,控制单元(113)从传感器(102)周期性地检索音频数据且通过高带宽连接(119)将音频数据存储到随机存取存储器(105)中。
158.在一些实施方案中,换能器(102)围封在集成电路装置(101)的集成电路封装中(例如,如图6中所示出)。
159.替代地,换能器(102)可为在围封深度学习加速器(103)和随机存取存储器(105)的集成电路封装外部的单独组件。
160.举例来说,换能器(102)以及具有深度学习加速器(103)和随机存取存储器(105)的集成电路装置(101)可安装在配置于麦克风(191)中的印刷电路板上。
161.图8的麦克风(191)具有衬底(229),所述衬底在例如深度学习加速器(103)、随机存取存储器(105)、换能器(102)、前置放大器(231)、模数转换器(adc)(233)、控制器(107)和收发器(106)等组件当中提供连接。
162.在一些实施方案中,衬底(229)包含具有用于连接组件的导线的集成电路裸片。一些组件(例如,随机存取存储器(105)的集成电路裸片、深度学习加速器(103)、控制器(107)、前置放大器(231)、模数转换器(adc)(233)和/或收发器(106))可经由硅穿孔(tsv)连接到衬底(229)的集成电路裸片。其它组件可经由线接合、裸片附接或另一技术连接到衬底(229)。
163.在一些实施方案中,衬底(229)进一步包含具有用于连接组件和其它组件的导线的印刷电路板,所述其它组件例如为电源(例如,电池)、显示器、发光二极管(led)指示器等。
164.在一些实施方案中,收发器(106)、前置放大器(231)和模数转换器(adc)(233)集成在同一集成电路芯片中;并且集成电路芯片的输出包含经由衬底路由到控制器(107)的音频数据。在其它实施方案中,收发器(106)与前置放大器(231)和/或模数转换器(adc)(233)分离;并且前置放大器(231)和/或模数转换器(adc)(233)可配置于收发器(106)和/或控制器(107)的同一集成电路芯片上。
165.在一些实施方案中,收发器(106)和/或控制器(107)的逻辑电路配置于深度学习
加速器(103)的集成电路裸片上或另一集成电路裸片上。
166.图9展示根据一个实施例的实施于麦克风中的方法。举例来说,图9的方法可在图6、图7或图8的麦克风(191)中实施。
167.在块301处,麦克风(191)的换能器(102)将声波(227)转换为电信号。
168.举例来说,换能器(102)可包含隔膜,所述隔膜被蚀刻到集成电路裸片中且被配置为电容器的板以产生电信号。
169.举例来说,换能器(102)可包含形成于集成电路裸片上且被配置成产生电信号的压电元件。
170.举例来说,换能器(102)可包含配置于磁场中以产生电信号的导线线圈。
171.举例来说,换能器(102)可包含被配置成测量隔膜的移动的激光。
172.在块303处,麦克风(191)的模数转换器(233)根据电信号来产生音频数据。
173.举例来说,前置放大器(231)可被配置在换能器(102)与模数转换器(233)之间以放大用于模数转换器(233)的电信号。
174.在块305处,麦克风(191)将音频数据作为到人工神经网络(201)的输入(211)存储到集成于麦克风(191)中的随机存取存储器(105)中。随机存取存储器(105)进一步存储人工神经网络(201)的矩阵(207)和具有矩阵操作数的指令(205)。
175.在块307处,集成于麦克风(191)中的至少一个处理单元(111)执行具有矩阵操作数的指令,以计算来自人工神经网络(201)的输出(213),所述人工神经网络具有音频数据作为到人工神经网络(201)的输入(211)。
176.举例来说,至少一个处理单元(111)可形成于实施深度学习加速器(103)的现场可编程门阵列(fpga)或专用集成电路(asic)的集成电路裸片上。深度学习加速器(103)可包含用于矩阵指令执行的至少一个处理单元(111)、用以缓冲矩阵操作数和结果的本地存储器(115)、可从随机存取存储器(105)加载指令(205)以供执行的控制单元(113),以及用以存取随机存取存储器(105)的存储器接口(117)。
177.举例来说,集成电路封装被配置成至少围封fpga或asic的集成电路裸片以及随机存取存储器的一或多个集成电路裸片。在一些实施方案中,集成电路封装大体上进一步围封换能器(102)、前置放大器(231)和/或模数转换器(ads)(233),所述集成电路封装具有允许声波(227)到达换能器(102)的通道或开口。
178.举例来说,随机存取存储器(105)和深度学习加速器(103)形成于单独的集成电路裸片上且由硅穿孔(tsv)连接。
179.举例来说,换能器(102)可形成于集成电路裸片上,所述集成电路裸片堆叠在随机存取存储器(105)的一或多个集成电路裸片上或深度学习加速器(103)的集成电路裸片上;且换能器(102)中的电路系统可使用硅穿孔(tsv)从换能器(102)的集成电路裸片连接到随机存取存储器(105)或深度学习加速器(103)的集成电路裸片。
180.在块309处,麦克风(191)通过基于人工神经网络(201)的输出(213)而识别表示由人工神经网络辨识的音频数据中的内容的部分的输入。
181.在块311处,麦克风(191)使用麦克风(191)的收发器(106)且将表示音频数据中的内容的部分的输入作为麦克风(191)的输出而传送到计算机系统(223)(例如,基于语音的数字助理)。
182.举例来说,可将可从音频数据辨识的内容的其余部分滤出且将其从提供到计算机系统的输入中排除。
183.举例来说,麦克风(191)可具有控制器(107)以操作收发器(106)。控制器(107)可与控制单元(113)分离,或集成在深度学习加速器(103)的控制单元内。
184.举例来说,人工神经网络(201)的输出(213)可包含对由人工神经网络(201)辨识的预定义声音型式的识别。举例来说,此预定义声音型式可包含由预定个人说出且从音频数据辨识的一或多个词语,或与跌倒、呼吸问题、呼吸系统中的疾病等相关联的声音型式。
185.任选地,所述方法可进一步包含在麦克风(191)中训练人工神经网络(201)以使用机器学习技术来辨识预定个人的语音。因此,个人的语音模型保全在麦克风(191)中。
186.替代地,可从计算机系统(223)或经由所述计算机系统将预定个人的语音模型下载到麦克风(191)。
187.人工神经网络(201)可被配置成使用存储在麦克风(191)中的语音模型来确定词语是否由预定个人说出;并且控制器(107)可被配置成响应于所述词语是由预定个人说出的分类而将所述词语传送到计算机系统。
188.任选地,人工神经网络(201)可进一步被配置成基于音频数据而对由预定个人说出的词语的会话模式进行分类;并且麦克风(191)被配置成响应于所述模式处于预定义类别而将其输出传送到计算机系统(223)。
189.举例来说,所述模式可识别说出所述词语的个人的情绪状态、说出所述词语的上下文或所述词语与基于语音的数字助理的相关性程度,或其任何组合。
190.任选地,麦克风(191)的控制器(107)被配置成基于人工神经网络(201)的输出(213)而确定是否保留音频数据以供发射到计算机系统(223);并且在一些情况下,计算机系统(223)可请求对应于到人工神经网络(201)的输入(211)的音频数据。
191.举例来说,计算机系统(223)可包含基于语音的数字助理;并且人工神经网络(201)的输出(213)可作为输入而从麦克风(191)发射到基于语音的数字助理,而无需将音频数据发射到基于语音的数字助理。
192.举例来说,基于语音的数字助理可实施于扬声器、电视、电器、移动计算机、手机、个人媒体播放器、个人计算机、物联网(iot)枢纽、iot装置、服务器计算机或服务器计算机集群,或其任何组合中。
193.本公开包含方法以及执行上文所描述的方法的设备,包含执行这些方法的数据处理系统,以及含有在数据处理系统上执行时使所述系统执行这些方法的指令的计算机可读介质。
194.典型数据处理系统可包含互连件(例如,总线和系统核心逻辑),所述互连件将微处理器和存储器互连。微处理器通常耦合到高速缓存存储器。
195.互连件将微处理器和存储器互连在一起并且还将其经由输入/输出(i/o)控制器互连到i/o装置。i/o装置可包含显示装置和/或外围装置,例如鼠标、键盘、调制解调器、网络接口、打印机、扫描器、摄像机以及所属领域中已知的其它装置。在一个实施例中,在数据处理系统是服务器系统时,例如打印机、扫描器、鼠标和/或键盘之类的一些i/o装置是任选的。
196.互连件可包含通过各种桥、控制器和/或适配器彼此连接的一或多个总线。在一个
实施例中,i/o控制器包含用于控制通用串行总线(usb)外围装置的usb适配器,和/或用于控制ieee-1394外围装置的ieee-1394总线适配器。
197.存储器可包含以下中的一或多者:只读存储器(rom)、易失性随机存取存储器(ram),以及非易失性存储器,例如硬盘、快闪存储器等。
198.易失性ram通常实施为动态ram(dram),其不断地需要电力才能刷新数据或将数据维持在存储器中。非易失性存储器通常是磁性硬盘、磁性光盘、光盘(例如,dvd ram),或即使在从系统去除电力之后仍维持数据的其它类型的存储器系统。非易失性存储器还可为随机存取存储器。
199.非易失性存储器可为与数据处理系统中的其余组件直接耦合的本地装置。也可使用远离系统的非易失性存储器,例如通过诸如调制解调器或以太网接口之类的网络接口耦合到数据处理系统的网络存储装置。
200.在本公开中,一些功能和操作被描述为由软件代码执行或由软件代码引起以简化描述。然而,此类表达还用于指定所述功能是由例如微处理器之类的处理器执行代码/指令产生。
201.替代地或组合地,此处描述的功能和操作可使用具有或不具有软件指令的专用电路系统来实施,例如使用专用集成电路(asic)或现场可编程门阵列(fpga)。可使用不具有软件指令的硬接线电路系统或结合软件指令来实施实施例。因此,这些技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
202.虽然一个实施例可实施于全功能计算机和计算机系统中,但各种实施例能够分布为多种形式的计算产品,且不论实际上用于实现分布的机器或计算机可读介质的特定类型如何都能够适用。
203.所公开的至少一些方面可至少部分体现于软件中。也就是说,这些技术可响应于例如微处理器之类的处理器执行例如rom、易失性ram、非易失性存储器、高速缓存器或远程存储装置之类的存储器中所含的指令序列而在计算机系统或其它数据处理系统中执行。
204.经执行以实施实施例的例程可实施为操作系统或特定应用、组件、程序、物件、模块或被称作“计算机程序”的指令序列的部分。计算机程序通常包含计算机中的各种存储器和存储装置中在各个时间处的一或多个指令集,并且所述指令集在由计算机中的一或多个处理器读取和执行时使计算机执行必需操作以执行涉及各种方面的元件。
205.机器可读介质可用于存储当由数据处理系统执行时使系统执行各种方法的软件和数据。可执行的软件和数据可被存储在各种位置中,包含例如rom、易失性ram、非易失性存储器和/或高速缓存器。此软件和/或数据的部分可存储在这些存储装置中的任一者中。另外,可从集中式服务器或对等网络获得数据和指令。可在不同时间且在不同通信会话中或同一通信会话中从不同集中式服务器和/或对等网络获得数据和指令的不同部分。可在执行应用之前完整地获得数据和指令。替代地,可动态地、及时地在需要执行时获得数据和指令的部分。因此,并不要求数据及指令在特定时刻处全部在机器可读介质上。
206.计算机可读介质的实例包含但不限于非暂时性的可记录和不可记录类型的介质,例如易失性和非易失性存储器装置、只读存储器(rom)、随机存取存储器(ram)、快闪存储器装置、软盘和其它可移动磁盘、磁盘存储介质、光学存储介质(例如,光盘只读存储器(cd rom)、数字通用光盘(dvd)等),等等。计算机可读介质可存储指令。
207.指令也可体现在数字和模拟通信链路中以用于电学、光学、声学或其它形式的传播信号,例如载波、红外信号、数字信号等。然而,例如载波、红外信号、数字信号等的传播信号并非有形机器可读介质且并不被配置成存储指令。
208.一般来说,机器可读介质包含以可由机器(例如,计算机、网络装置、个人数字助理、制造工具、具有一组一或多个处理器的任何装置等)存取的形式提供(即,存储和/或发射)信息的任何机制。
209.在各种实施例中,硬接线电路系统可与软件指令组合使用以实施技术。因此,所述技术既不限于硬件电路系统和软件的任何特定组合,也不限于由数据处理系统执行的指令的任何特定源。
210.以上描述和图式是说明性的,并且不应理解为限制性的。描述了许多特定细节以提供透彻的理解。然而,在某些情况下,不描述众所周知的或常规的细节以免混淆描述。本公开中对一个或一实施例的参考未必参考同一实施例;并且此类参考意味着至少一个。
211.在前文说明书中,本公开已参考其具体示范性实施例进行描述。将显而易见的是,可在不脱离如所附权利要求书中所阐述的较广泛精神和范围的情况下对本公开作出各种修改。因此,应在说明性意义上而非限制性意义上看待本说明书和图式。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献