首页 / 专利库 / 资料储存系统 / 非易失性存储器 / 磁阻随机存取存储器 / 基于人工智能应用程序的数据储存的装置、系统和方法

基于人工智能应用程序的数据储存的装置、系统和方法

阅读:567发布:2020-05-12

专利汇可以提供基于人工智能应用程序的数据储存的装置、系统和方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 人工智能 应用程序的数据储存的设备、系统和方法。处理器接收输入数据进行处理。在判断输入数据对应人工智能应用程序后,处理器产生人工智能命令,用于对存储装置进行读取或写入操作。存储装置配置为存储包括在人工智能应用程序的多种应用程序的数据。人工智能命令以操作代码为特征,并包括人工智能应用程序的一个或多个元件中,对应于输入数据的信息。处理器将人工智能命令和输入数据发送到存储 控制器 ,存储控制器管理存储装置,其中存储装置由存储控制器使用操作代码和人工智能命令中包含的信息,执行存储装置的读取或写入操作。处理器接收在存储装置上执行的读取或写入操作的结果。,下面是基于人工智能应用程序的数据储存的装置、系统和方法专利的具体信息内容。

1.一种设备,包括:
一个或多个处理器;以及
多个非瞬时介质,用以存储多个指令,当这些指令由该一个或多个处理器执行时,该一个或多个处理器配置为执行下列操作:
从一输入设备接收用以处理的输入数据;以及
当判断该输入数据为对应人工智能应用程序,执行下列步骤:
产生人工智能命令,用于对一存储装置执行一个或多个读取或写入操作,该存储装置配置为存储该一个或多个处理器所处理的多个应用程序,这些应用程序包含一人工智能应用程序,该人工智能命令以操作代码为特征,该人工智能命令包括对应该输入数据的该人工智能应用程序中一个或多个元件的信息;
将该人工智能命令和该输入数据发送到一存储控制器,以管理该存储装置,其中该存储控制器使用该操作代码以及该信息,以执行该存储装置的该一个或多个读取或写入操作,该信息包含该人工智能命令;以及
从该存储控制器接收在该存储装置上执行的该一个或多个读取或写入操作的结果。
2.根据权利要求1所述的设备,其中所述操作还包括:
当判断该输入数据对应于这些应用程序中一非人工智能应用程序,由该一个或多个处理器存取对应于该存储装置中的该输入数据的一个或多个存储位置;以及在该存取一个或多个存储位置上执行一个或多个读取或写入操作。
3.根据权利要求1所述的设备,其中:
该人工智能应用程序的该一个或多个元件,包含在一人工神经网络中的一个或多个神经元;
该输入数据包括与该一个或多个神经元中的每一个神经元的输入连接或输出连接中的一个或多个对应的权重;以及
该操作代码对应于(i)该人工神经网络中一特定神经元的一单独读取或写入、(ii)在该人工神经网络中这些神经元的多个单独读取或写入、或(iii)在该人工神经网络中一批量神经元的一批量读取或写入。
4.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器接收到该人工智能命令后,从该人工智能命令中包含的信息中获取对应该一个或多个神经元中的一第一神经元的该一个或多个输入连接或输出连接的一权重集合;
将联接该权重集合与该第一神经元;以及
响应于该权重集合与该第一神经元的联接,将联接该第一神经元的该权重集合,存储于该存储装置的一特定分页或区,其中该存储装置的该特定分页,配置为存储联接该第一神经元的该权重集合。
5.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器接收到该人工智能命令后,从该人工智能命令包含的该信息中获取一权重集合,该权重集合对应该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接;
将联接该权重集合与该第一神经元;以及
响应于该权重集合与该第一神经元的联接:
将该权重集合划分为一第一子集和一第二子集;
将该第一子集存储在该存储装置的一第一通道的一相同分页或区块;以及将该第二子集存储在该存储装置的一第二通道的一相同分页或区块。
6.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器接收到该人工智能命令后,从该人工智能命令包含的该信息中获取一权重集合,该权重集合对应该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接;
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一第一分页中一单层单元;以及
将该第二权重存储在该存储装置的一第二分页中一多层单元、一三层单元、或一四层单元。
7.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器收到该人工智能命令后,从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接的一权重集合;
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一分页或区块,并在该存储装置的至少一个附加分页上复制第一权重;以及
将该第二权重存储在该存储装置的一分页或区块,该存储不包含复制。
8.根据权利要求3所述的设备,进一步包括该存储控制器,其中存储控制器配置为执行的操作包括:
从该一个或多个处理器接收到人工智能命令后,从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接中的一第一权重集合,以及该一个或多个神经元中的一第二神经元的一个或多个输入连接或输出连接中的一第二权重集合;
判断该第一神经元比该第二神经元更频繁地被存取,并且该第二神经元与该一个或多个神经元中的其他这些神经元以相同的速率被存取;以及
回应于该判断,执行以下步骤:
将该第一权重集合,存储在该存储装置的一第一区域,其用于记录;以及将该第二权重集合,存储在该存储装置的一第二区域,其用于长期存储,非用于记录。
9.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器收到该人工智能命令后,从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接的一权重集合;
判断该权重集合的一第一权重具有一特别重要值;
比较该特别重要值与一阈重要值;
当比较结果显示该特别重要值大于或等于该阈重要值,执行一完整纠错检查,该完整纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分;以及当比较结果表明该特殊重要值小于该阈重要值,执行一部分纠错检查,该部分纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分,其中该部分纠错检查是对应该第一权重的该最高有效位之一所进行,或与对应该第一权重的该最低有效位所进行。
10.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器收到该人工智能命令后,从该人工智能命令中包含的信息中,获取该一个或多个神经元中的一第一神经元的一个或多个输入连接或输出连接的一权重集合;
决定该权重集合中的各权重的一第一部分和一第二部分,其中各权重的该第一部分和该第二部分,分别对应于该权重的信息位的一第一分段和一第二分段,该第一分段和该第二分段的特征是对应的相对重要值;
存储该权重集合中这些权重的这些第一部分,在该存储装置的一第一分页中;以及存储该权重集合中这些权重的这些第二部分,在该存储装置的一第二分页中;
其中,一第一次错误检查能和一第二次不同错误检查能力分别对应该第一分页和该第二分页。
11.根据权利要求3所述的设备,进一步包括该存储控制器,其中该存储控制器配置为执行的操作包括:
从该一个或多个处理器收到该人工智能命令后,从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第一神经元的输入连接或输出连接的一权重集合;
决定该权重集合的每个权重的一第一部分和一第二部分,其中各权重的该第一部分和该第二部分,可以分别对应于该权重的信息位的一第一分段和一第二分段,该第一分段和该第二分段的特征是对应的相对重要值;
将该权重集合中这些权重的这些第一部分,存储在该存储装置的一第一区块中;以及存储该权重集合中这些权重的这些第二部分,在该存储装置的一第二区块中;
其中对应该第一区块的多个编程/擦除周期的数量,不同于对应该第二区块的多个编程/擦除周期的数量。
12.根据权利要求1所述的设备,其中该存储装置包括至少一第一分割区,用于存储这些应用程序中所包括的这些人工智能应用程序对应的数据;以及一第二分割区,用于存储这些应用程序中所包括的非人工智能应用程序对应的数据。
13.根据权利要求1所述的设备,其中该存储装置包括:一非易失性存储器、一通用闪存UFS,一快捷外设互联标准PCIe存储器、一相变存储器、一可变电阻式存储器、一磁阻式随机存取存储器、一动态随机存取存储器、一磁盘、或一光盘的其中之一。
14.一种系统,包括:
一个或多个处理器,其中,所述该一个或多个处理器中的每个处理器被配置为执行的第一操作,其包括:
从一输入设备接收用以处理的输入数据;
当判断输入数据为对应人工智能应用程序,执行下列步骤:
产生一人工智能命令,用于对一个或多个存储装置中的一特定存储装置,执行一个或多个读取或写入操作,该一个或多个存储装置配置为存储一个或多个多处理器所处理的多个应用程序,这些应用程序包含人工智能应用程序,该人工智能命令以一操作代码为特征,该人工智能命令包括对应该输入数据的该人工智能应用程序中一个或多个元件的信息;
将该人工智能命令和该输入数据发送到一存储控制器,以管理该特定存储装置,其中该存储控制器使用该操作代码以及该信息,以执行该存储装置的该一个或多个读取或写入操作,该信息包含该人工智能命令;以及
从该存储控制器接收在该特定存储装置上执行的该一个或多个读取或写入操作的结果;
其中,该人工智能应用程序的一个或多个元件包含一人工神经网络中一个或多个神经元;
该输入数据包括与该一个或多个神经元中的每一神经元的一个或多个输入连接或输出连接中的一个或多个对应的权重;以及
当判断该输入数据对应于这些应用程序中包含的一非人工智能应用程序:
存取该一个或多个存储装置中的一存储装置上,对应该输入数据的一个或多个存储装置;以及
执行一个或多个读取或写入操作,在该存取的一个或多个存储位置上;以及一个或多个存储控制器,其中该一个或多个存储控制器中的每个存储控制器,管理一个或多个存储装置中的不同存储装置,其中该一个或多个存储控制器中的每个存储控制器配置为执行的第二操作,包括:
接收一人工智能命令并从该一个或多个处理器中的一处理器接收输入数据后,从该人工智能命令中包括的信息,获得对应于该一个或多个神经元中一第一神经元的一个或多个输入连接或输出连接的一权重集合;
将该权重集合与该第一神经元联接起来;以及
响应于该权重集合与该第一神经元的联接,执行一存储存取操作,该存储存取操作包括在一对应的存储装置上联接该第一神经元的该权重集合。
15.根据权利要求14所述的系统,其中执行该存储存取操作包括:
将与该第一神经元联接的该权重集合,存储在该对应存储装置的一特定页面或区块中,其中该对应存储装置的该特定页面,配置为存储与该第一神经元联接的权重。
16.根据权利要求14所述的系统,其中执行该存储存取操作包括:
响应于该权重集合与该第一神经元的联接:
将该权重集合划分为一第一子集和一第二子集;
将该第一子集存储在该存储装置的一第一通道的一相同分页或区块;以及将该第二子集存储在该存储装置的一第二通道的一相同分页或区块。
17.根据权利要求14所述的系统,其中执行该存储存取操作包括:
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一第一分页的一单层单元;以及
将该第二权重存储在该存储装置的一第二分页中一多层单元、一三层单元、或一四层单元。
18.根据权利要求14所述的系统,其中执行该存储存取操作包括:
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一分页或区块中,并在该存储装置的至少一个附加分页中复制第一权重;以及
将该第二权重存储在该存储装置的一分页或区块,该存储不包含复制。
19.根据权利要求14所述的系统,其中该第二操作还包括:
从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第二神经元的一个或多个输入连接或输出连接中的一第二权重集合;
判断该第一神经元比该第二神经元更频繁地被存取,并且第二神经元与该一个或多个神经元中的其他这些神经元以相同的速率被存取;以及
回应于该判断,执行以下步骤:
将该第一神经元联接的该权重集合,存储在该存储装置的一第一区域,其用于记录;
将该第二权重集合存储在该存储装置的一第二区域,其用于长期存储,非用于记录。
20.根据权利要求14项所述的系统,其中执行该存储存取操作包括:
判断该权重集合的一第一权重具有一特别重要值;
比较该特别重要值与一阈重要值;
当比较结果显示该特别重要值大于或等于该阈重要值,执行一完整纠错检查,该完整纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分;以及当比较结果表明该特殊重要值小于该阈重要值,执行一部分纠错检查,该部分纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分,其中该部分纠错检查是对应该第一权重的该最高有效位之一进行,或与对应该第一权重的该最低有效位进行。
21.根据权利要求14所述的系统,其中执行该存储存取操作包括:
决定该权重集合中的各权重的一第一部分和一第二部分,其中各权重的该第一部分和该第二部分,分别对应于该权重的信息位的一第一分段和一第二分段,该第一分段和该第二分段的特征是对应的相对重要值;
存储该权重集合中这些权重的这些第一部分,在存储装置的一第一分页中;以及存储该权重集合中这些权重的这些第二部分,在该存储装置的一第二分页中;
其中,一第一次错误检查能力和一第二次不同错误检查能力分别对应该第一分页和该第二分页。
22.根据权利要求14所述的系统,其中该一个或多个存储装置包括:一非易失性存储器、一通用闪存UFS,一快捷外设互联标准PCIe存储器、一相变存储器、一可变电阻式存储器、一磁阻式随机存取存储器、一动态随机存取存储器、一磁盘、或一光盘的其中之一。
23.一种方法,包括:
一处理器从一输入设备接收输入数据以进行处理;
当判断输入数据为对应人工智能应用程序,执行下列步骤:
该处理器产生一人工智能命令,用于对一个或多个存储装置中的一存储装置,执行一个或多个读取或写入操作,该存储装置配置为存储该处理器所处理的多个应用程序,这些应用程序包含人工智能应用程序,该人工智能命令以一操作代码为特征,该人工智能命令包括对应该输入数据的该人工智能应用程序中一个或多个元件的信息;
该处理器将该人工智能命令和该输入数据发送到该存储控制器,该存储控制器用以管理该存储装置,其中该存储装置的该一个或多个读取或写入操作,由该存储控制器使用操作代码和包含在该人工智能命令中的信息所执行;以及
该处理器从该存储控制器,接收在该存储装置上执行该一个或多个读取或写入操作的结果;
其中,该人工智能应用程序的该一个或多个元件,包含一人工神经网络中的一个或多个神经元;
该输入数据包括与一个或多个神经元中的每一个神经元的一个或多个输入连接或输出连接中的一个或多个对应的权重;以及
当判断输入数据为对应这些应用程序中的非人工智能应用程序,执行下列步骤:
该处理器存取该存储装置中,对应该输入数据的一个或多个存储位置;以及该处理器在该存取的一个或多个存储位置上,执行一个或多个读取或写入操作。
24.根据权利要求23所述的方法,还包括:
从处理器接收到该人工智能命令后,由该存储控制器从该人工智能命令中包含的该信息中,获取对应于该一个或多个神经元中的第一神经元的一个或多个输入连接或输出连接的一权重集合;
通过存储控制器,联接该权重集合与该第一神经元;以及
响应于联接该权重集合与该第一神经元,该存储控制器执行一存储存取操作,该存储存取操作包括联接该存储装置上该第一神经元的该权重集合。
25.根据权利要求24所述的方法,执行该存储存取操作包括以下之一:
将与该第一神经元联接的该权重集合,存储在该存储装置的一特定页面或区块中,其中该对应存储装置的该特定页面,配置为存储与该第一神经元联接的权重;或者将该权重集合划分为一第一子集和一第二子集;
将该第一子集存储在该存储装置的一第一通道的一相同分页或区块;以及将该第二子集存储在该存储装置的一第二通道的一相同分页或区块。
26.根据权利要求24所述的方法,执行该存储存取操作包括:
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一第一分页的一单层单元;以及
将该第二权重存储在该存储装置的一第二分页中一多层单元、一三层单元、或一四层单元。
27.根据权利要求24所述的方法,执行该存储存取操作包括:
判断该权重集合的一第一权重具有一第一重要值、以及该权重集合的一第二权重具有一第二重要值,其中该第二重要值小于该第一重要值;以及
回应于该判断,执行以下步骤:
将该第一权重存储在该存储装置的一分页或区块中,并在该存储装置的至少一个附加分页中复制第一权重;以及
将该第二权重存储在该存储装置的一分页或区块,该存储不包含复制。
28.根据权利要求24所述的方法,又包括:
从该人工智能命令中包含的该信息中,获取该一个或多个神经元中的一第二神经元的一个或多个输入连接或输出连接中的一第二权重集合;
判断该第一神经元比该第二神经元更频繁地被存取,并且第二神经元与该一个或多个神经元中的其他这些神经元以相同的速率被存取;以及
回应于该判断,执行以下步骤:
将该第一神经元联接的该权重集合,存储在该存储装置的一第一区域,其用于记录;以及
将该第二权重集合存储在该存储装置的一第二区域,其用于长期存储,非用于记录。
29.根据权利要求24所述的方法,执行该存储存取操作包括:
判断该权重集合的一第一权重具有一特别重要值;
比较该特别重要值与一阈重要值;
当比较结果显示该特别重要值大于或等于该阈重要值,执行一完整纠错检查,该完整纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分;以及当比较结果表明该特殊重要值小于该阈重要值,执行一部分纠错检查,该部分纠错检查作为该第一权重的该一个或多个读取或写入操作中一部分,其中该部分纠错检查是对应该第一权重的该最高有效位之一进行,或与对应该第一权重的该最低有效位进行。
30.根据权利要求24所述的方法,执行该存储存取操作包括:
决定该权重集合中的各权重的一第一部分和一第二部分,其中该各权重的该第一部分和该第二部分,分别对应于该各权重的信息位的一第一分段和一第二分段,该第一分段和该第二分段的特征是对应的相对重要值;
存储该权重集合中这些权重的这些第一部分,在存储装置的一第一分页中;以及存储该权重集合中这些权重的这些第二部分,在该存储装置的一第二分页中;
其中,一第一次错误检查能力和一第二次不同错误检查能力分别对应该第一分页和该第二分页。
31.根据权利要求24所述的方法,执行该存储存取操作包括:
决定该权重集合的每个权重的一第一部分和一第二部分,其中各权重的该第一部分和该第二部分,可以分别对应于该权重的信息位的一第一分段和一第二分段,该第一分段和该第二分段的特征是对应的相对重要值;
将该权重集合中这些权重的这些第一部分,存储在存储装置的一第一区块中;
存储该权重集合中这些权重的这些第二部分,在存储装置的一第二区块中;
其中对应该第一区块的多个编程/擦除周期的数量,不同于对应该第二区块的多个编程/擦除周期的数量。

说明书全文

基于人工智能应用程序的数据储存的装置、系统和方法

技术领域

[0001] 本发明属于人工智能领域,涉及一种基于人工智能应用程序的数据储存的装置、系统和方法。

背景技术

[0002] 一些存储装置的存储控制器(也称为记忆控制器),使用基于文件的管理,来管理存储装置中的数据存储。这种存储控制器采用文件/闪存转换层(file/flash translation layer,FTL),以对应(map)各应用程序的逻辑区地址(logical block address),到各个存储装置的物理区块地址(physical block address)。

发明内容

[0003] 本案的公开内容描述了用于存储在存储装置中人工智能(AI)为基础的应用程序,其管理数据存取的设备、系统和方法。在一些实施方式中,存储装置包括存储控制器,其用于通过耦合到存储装置的一个或多个处理器,以管理存储装置的存取。处理器向存储控制器,发送用于存取存储装置中存储位置的命令,例如读取命令或写入命令,或两者。命令可用于人工智能应用程序的数据存取,也可用于非人工智能应用程序(后续称为常规应用程序)。对于非人工智能应用程序命令(也称为非人工智能命令),存储控制器加载目标存储分页或存储区块,以通过处理器执行直接存取。对于人工智能应用程序命令(也称为人工智能命令),存储控制器在存储装置执行本地存取操作,并发送操作结果回至处理器。
[0004] 在执行本地人工智能命令的存取操作中,存储控制器利用适合人工智能的独特结构的各种优化。例如,在一些实施方式中,人工智能应用程序对应于人工神经网络(artificial neural network,ANN)。在其中一些实施方式中,存储控制器存储人工智能数据的位,例如,存储人工神经网络的特定神经元的权重(weighting),于存储存储装置的相同分页(page)中。或者,存储控制器将权重分组,并将各组存储在相同分页中,不同组分别在不同分页。在其中一些实施方式中,表示权重的数据中最高有效位(most significant bits、MSB)比数据中最低有效位(Least significant bits,LSB)更重要。在这种情况下,存储控制器将最高有效位存储在单层单元(single level cel1,SLC)中,并将最低有效位存储在多层单元(multi-level cell,MLC)、三层单元中(triple-level cell,TLC)、或四层单元中(quad-level cell,QLC)。可附加地或可替代地,存储控制器存储具有纠错码(error correcting code,ECC)的最高有效位,其纠错码大于最低有效位的纠错码。在一些实施方式中,人工神经网络的一些神经元比人工神经网络中其他神经元更重要。在这种情况下,存储控制器存储单层单元中重要神经元的权重,而其他神经元的权重存储在多层单元、三层单元、或四层单元中。在一些实施方式中,存储控制器复制在多个存储分页中神经元的重要权重以提供备份。在一些实施方式中,存储控制器将经常存取的神经元,存储在存储存储装置的记录区域中,同时存储其他神经元在常规存储装置中(例如,存储存储装置的非记录区域)。
[0005] 一般而言,一设备可包括存储命令的一个或多个处理器和介质多个非瞬时介质(non-transitory media)。当由一个或多个处理器执行时,指令被配置为引发一个或多个处理器执行以下操作。一个或多个处理器从输入设备接收输入数据,以进行处理。在判断输入数据对应于人工智能应用程序的条件下,一个或多个处理器产生用于执行一个或多个用于存储装置的读取或写入操作的人工智能命令,此存储装置用于存储由一个或多个处理器处理的多个应用程序的数据,其中多个应用程序包括人工智能应用程序。人工智能命令以操作代码为特征,其包括与输入数据对应的人工智能应用程序的一个或多个元件的信息。一个或多个处理器将人工智能命令和输入数据,发送到管理存储装置的存储控制器。存储装置的一个或多个读取或写入的操作,由存储控制器通过操作代码和包括人工智能命令的信息所执行。一个或多个处理器从存储控制器,接收在存储装置上执行的一个或多个读取或写入操作的结果。
[0006] 根据本发明的特定实施方式,可以包括以下一个或多个特征。在判断输入数据对应于包括多个应用程序中的非人工智能应用程序的条件下,一个或多个处理器可存取存储装置中对应于输入数据的一个或多个存储位置,也可在存取的一个或多个存储位置上,执行一次或多次读写操作。
[0007] 人工智能应用程序的一个或多个元件(component),可以在人工神经网络中包括一个或多个神经元(neuron)。输入数据可包括,与一个或多个神经元连接的一个或多个输入或输出的对应权重。操作代码可对应于(i)人工神经网络中特定神经元的单独读取或写入、(ii)人工神经网络中特定神经元的多个单独读取或写入、或(iii)人工神经网络中特定神经元的批量读取或写入。
[0008] 根据本发明的设备,还可以包括配置为执行以下操作的存储控制器:当存储控制器从一个或多个处理器接收到人工智能命令,可从人工智能命令所包括的信息中,获取对应于一个或多个神经元中第一神经元的输入连接或输出连接的一权重集合。存储控制器可以将权重集合与第一神经元进行联接。存储控制器可在存储装置的一特定分页或区块中,存储第一神经元的权重集合,以响应权重集合与第一神经元的联接。存储装置的特定分页,用于存储与第一神经元相关的权重。
[0009] 响应权重集合与第一神经元的联接,存储控制器可以将权重集合划分为第一子集和第二子集。存储控制器可以将第一子集存储在存储装置中一第一通道(channel)的相同分页或区块中,然后存储第二子集在存储装置中一第二通道的相同分页或区块中。
[0010] 存储控制器从一个或多个处理器接收到人工智能命令后,可以从人工智能命令中获取包括的信息,其为对应于一个或多个神经元中,第一神经元的一个或多个输入连接或输出连接的神经元的权重集合。存储控制器可判断权重集合中一第一权重是否具有第一重要值、以及权重集合中一第二权重是否具有第二重要值,其中第二重要值小于第一重要值。响应此判断,存储控制器可以将第一权重,存储存储装置的第一分页的一单层单元中,将第二权重,存储在存储装置的第二分页的多层单元、三层单元、或四层单元中。
[0011] 存储控制器可判断权重集合的第一权重,具有权重集合的第一重要值,以及第二权重具有权重集合的第二重要值,其中第二重要值小于第一重要值。响应此判断,存储控制器可以将第一权重存储在存储装置的分页或区块中,并复制在存储装置的至少一个附加分页的第一权重,并可以无复制的方式将第二权重存储在存储装置的一分页或一区块中。
[0012] 从一个或多个处理器接收到人工智能命令时,存储控制器可进一步获得一个或多个神经元中,第二神经元的输入连接或输出连接中的一个或多个第二组权重。存储控制器可判断第一神经元比第二神经元更频繁地被存取,并判断第二神经元与一个或多个神经元中其他神经元,具有相同的存取速率。响应于此判断,存储控制器可以将权重集合的第一组,存储在用于记录的存储装置的第一区域中,并将权重集合的第二组,存储在用于记录的存储装置的第二区域中,用于长期存放而非记录(logging)。
[0013] 存储控制器可判断权重集合的第一权重具有特别重要值,存储控制器可将特别重要值与阈重要值(threshold importance value)进行比较。以特别重要值大于或等于阈重要值的比较结果为条件,存储控制器可执行完整纠错检查,作为第一权重的一个或多个读取或写入操作的一部分。根据特别重要值小于阈重要值的比较结果所代表,存储控制器可以执行部分纠错检查。部分纠错检查可依据为第一权重对应的最高有效位以执行、或可依据中对与第一权重对应的最低有效位以执行。
[0014] 存储控制器可以决定权重集合的每个权重的第一部分(Portion)和第二部分,其中每个权重的第一部分和第二部分可分别对应于权重的信息位的第一分段和第二分段,第一部分和第二部分的特征在于相应的相对重要性值。存储控制器可将权重的第一部分存储在存储装置的第一分页的权重集合中,并可存储权重的第二部分存储在存储装置的第二分页的权重集合中,其中第一次错误检查能和第二次不同错误检查能力分别对应于第一分页和第二分页。
[0015] 存储控制器可决定权重集合中每个权重的第一部分和第二部分,其中每个权重的第一部分和第二部分,可分别对应权重的信息位的第一分段和第二分段。第一分段和第二分段的特征在于相应的相对重要值。存储控制器可将权重集合中权重的第一部分存储在存储装置的第一区块中,并存储权重集合中权重的第二部分在存储装置的第二区块,其中对应于第一区块的多个编程/擦除周期的数量,可不同于对应第二区块的编程/擦除周期的数量。
[0016] 存储装置可包括:至少第一分割区(partition),用于存储包括多个应用程序的人工智能应用程序对应的数据;以及第二分割区,用于存储包括在多个应用程序中的非人工智能应用程序所对应的数据。
[0017] 存储装置可以包括非易失性(NVM)存储器、通用闪存(UFS)、快捷外设互联标准(PCIe)存储器、相变存储器(PCM)、可变电阻式存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、动态随机存取存储器、磁盘、或光盘等。
[0018] 另一方面,本发明的系统包括一个或多个处理器和一个或多个存储控制器,其中一个或多个存储控制器管理一个或多个存储装置中不同的存储装置。一个或多个处理器中每个处理器配置为执行以下操作。处理器从输入设备接收输入数据以进行处理。在判断输入数据为对应人工智能应用程序的条件下,处理器产生人工智能命令,用于执行存储装置的一个或多个读写操作,存储装置配置为存储一个或多个处理器所处理的多个应用程序的数据。多个应用程序包括人工智能应用程序、以操作代码为特征的人工智能命令、并包括对应于输入数据的人工智能应用程序中一个或多个元件的信息。处理器将人工智能命令和输入数据,发送到管理存储装置的存储控制器,其中存储装置的一个或多个读写操作由存储控制器使用操作代码和包括人工智能命令的信息所执行。处理器从存储控制器接收在存储装置上执行的一个或多个读取或写入操作的结果。人工智能应用程序的一个或多个元件,在人工神经网络中包括一个或多个神经元,输入数据包括一个或多个神经元中一个或多个连接或输出连接,所对应的权重。在判断输入数据对应于多个应用程序中包括非人工智能应用程序的条件下,处理器存取存储装置中对应于输入数据的一个或多个存储位置,并在存取的一个或多个存储位置上执行一个或多个读写操作。
[0019] 一个或多个存储控制器的存储控制器,配置为执行以下操作。收到人工智能命令并从一个或多个处理器接收输入数据后,存储控制器获得从人工智能命令中包括的信息、以及对应于一个或多个神经元中第一神经元的一个或多个输入连接或输出连接一权重集合。存储控制器将权重集合与第一神经元联接起来。响应于权重集合与第一神经元的联接,存储控制器执行存储存取操作,此存储存取操作包含在对应的存储装置上联接第一神经元的权重集合。
[0020] 本发明的一特定实施方式可以包括以下特征中的一个或多个。操作代码可以对应于(i)人工神经网络中的特定神经元的单独读取或写入、(ii)人工神经网络中的多个神经元的多个读取或写入、或(iii)人工神经网络中的批量神经元的批量读取或写入。
[0021] 存储存取操作可包括存储在存储装置内一特定分页或区块中,联接权重集合与第一神经元。存储装置中一特定分页,配置为存储与第一神经元相联接的权重。
[0022] 执行存储存取操作可以包括将权重集合划分为第一子集和第二子集。存储控制器可以将第一子集存储在存储装置的第一通道中的相同分页或区块,并存储第二子集在存储装置的第二通道的相同分页或区块。
[0023] 执行存储存取操作可包括判断权重集合中第一权重具有一第一重要值、以及权重集合的第二权重具有一第二重要值,其中第二重要值小于第一重要值。响应于此判断,存储控制器可以将第一权重存储在存储装置的第一分页的一单层单元中,将第二权重存储在存储装置的第二分页的多层单元、三层单元、或四层单元中。
[0024] 执行存储存取操作可包括判断权重集合的第一权重具有第一重要值和权重集合的第二权重具有第二重要值,其中第二重要性值小于第一重要性值。为回应此判断,存储控制器可将第一权重存储在存储装置的分页或区块中,复制第一权重在存储装置的至少一分页中,并可以将第二权重存储在存储装置的分页或区块中,而无复制。
[0025] 在从一个或多个处理器接收到人工智能命令时,存储控制器可以进一步获得一个或多个神经元中第二神经元的一个或多个输入或输出连接的第二权重集合。存储控制器可判断第一神经元比第二神经元更频繁地被存取,并且第二神经元具有与其一个或多个他神经元相同的存取速率。响应于此判断,存储控制器可以将第一权重集合,存储在用于记录和存储的存储装置中第二区域内,其用于长期存储,而非记录。
[0026] 执行存储存取操作可包括判断权重集合的第一权重具有特别重要值。存储控制器可以将特别重要值与阈重要值进行比较。根据比较结果表明特别重要值大于或等于阈重要值的条件下,存储控制器可执行完整的纠错检查(full error correction check),以作为第一权重的一个或多个读写操作的一部分。根据比较结果表明特别重要值小于阈重要值的条件下,存储控制器可执行部分纠错检查(partial error correction check),以作为第一权重的一个或多个读写操作的一部分,其中部分纠错检查是对应第一权重的最高有效位的一所进行,或与对应第一权重的最低有效位所进行。
[0027] 执行存储存取操作可以包括决定权重集合中的各权重的第一部分和第二部分,其中各权重的第一部分和第二部分,可分别对应于权重的信息位的第一分段(Section)和第二分段。第一分段和第二分段的特征是对应的相对重要值(relative importance value)。存储控制器可存储权重集合中权重的第一部分,在存储装置的第一分页中,并存储权重集合中权重的第二部分,在存储装置的第二分页中,其中第一次错误检查能力和第二次不同错误检查能力,分别对应第一分页和第二分页。
[0028] 执行存储存取操作可以包括决定权重集合的每个权重的第一部分和第二部分,其中各权重第一部分和第二部分,可以分别对应于权重对应的信息位的第一分段和第二分段,第一分段和第二分段的特征是对应的相对重要值。存储控制器可存储权重集合中权重的第一部分,在存储装置的第一区块中,并存储权重集合中权重的第二部分,在存储装置的第二区块中,其中对应第一区块的多个编程/擦除周期(program/erase cycle)的数量,可不同于对应第二区块的多个编程/擦除周期的数量。
[0029] 系统的每个存储装置可包括至少一第一分割区,用于存储多个应用程序中所包括的人工智能应用程序对应的数据;以及一第二分割区,用于存储多个应用程序中所包括的非人工智能应用程序对应的数据。
[0030] 系统的每个存储装置可包括非易失性(NVM)存储器、通用闪存(UFS),快捷外设互联标准(PCIe)存储器、相变存储器(PCM)、可变电阻式存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、动态随机存取存储器、磁盘、或光盘等。
[0031] 上述技术的实施方式还包括方法,计算机程序产品以及计算机可读介质(computer-readable media)。此方法包括执行上述动作的一个或多个处理器和存储装置的一个或多个存储控制器。此计算机程序产品适当地体现在非瞬时性机器可读介质中,该介质存储可由一个或多个处理器执行的指令。指令配置为使一个或多个处理器执行上述动作。如此,计算机可读介质进行存储指令,其在于使一个或多个处理器执行时被配置为执行上述动作。
[0032] 依据上述和本说明书的以下部分中描述的新颖特征时,存储装置可以为人工智能应用提供有效的存储功能。通过启用存储装置中存储控制器,进行存储装置上人工智能数据的本地存取操作,可以分摊由主处理器(例如,中央处理单元(CPU)或图形处理单元(GPU)执行的操作。这样,可降低在CPU或GPU上或两者上的负载,并可以减少CPU、GPU与存储装置之间的数据移动。这有利于人工智能应用程序,因用于人工智能推理和训练,其依靠具有小数据单元的数据量(例如,4字节数据单位)。
[0033] 通过调整存储控制器来支持神经元为基础的映射表(mapping table)设计,可以提高系统性能,例如,达到更快速存取人工智能数据。映射表设计,将人工神经网络的神经元,映射到存储装置的物理区块地址(PBA)或物理分页地址(PPA)。这样的映射,包括所公开的日志记录机制,支持特定于人工智能的数据的存取流程,其可显示高位置特征(例如,某些数据存取比其他数据更频繁)。通过启用更可靠的数据存储,可以提高系统性能,例如,较低的数据遗失,通过调整存储控制器来存储人工智能数据的最高有效位,相对于人工智能数据单位的最低有效位,具有较高的防错能力(例如,存储在单层单元中、或者以更强的纠错码执行存储、或者在多个存储分页或区块中复制)。此外,也可通过耗损平衡(Wear leveling),以提高系统性能。
[0034] 本发明公开的技术可同时使用多个存储装置来加速人工智能计算(推理/训练)。这些技术也可以适应与现有存储架构的兼容,例如,通过采用不同的存储分割区来存储人工智能数据和存储非人工智能数据。
[0035] 所公开的技术可以应用于各种类型的存储系统,例如,基于NAND闪存或NOR闪存的存储系统,例如通用闪存(UFS),快捷外设互联标准(PCIe)存储器、多媒体存储卡(eMMC)存储器、双列直插式存储器模块(DIMM)存储器等。另外或可替代地,该技术可以应用于各种类型的其他存储装置,例如静态随机存取存储器(SRAM),动态随机存取存储器(DRAM)、可变电阻式存储器(ReRAM)、磁阻式随机存取存储器(MRAM)、或相变存储器(PCM)等。该技术可以应用于磁盘或光盘等。
[0036] 本发明所公开的技术可以应用于使用人工智能机制的各种应用,例如用于深度学习的人工神经网络。这些应用包括游戏、自然语言处理专家系统、视觉系统、语音识别、手写识别、智能机器人数据中心端计算服务和汽车应用等。
[0037] 为了对本发明的上述及其他方面有更佳的了解,下文特举实施方式,并配合所附附图详细说明如下:

附图说明

[0038] 图1A和1B分别绘示了人工神经网络的一实施例和人工神经网络的神经元的分解示意图。
[0039] 图2绘示一实施例中,用于存储和处理人工智能应用的数据的系统示意图。
[0040] 图3绘示一实施例中,用于人工智能应用程序的存储装置的存取流程示意图。
[0041] 图4绘示一实施例中,配置于执行人工智能操作的存储装置中存储控制器的示意图。
[0042] 图5A-5E绘示多个实施例中,存储控制器依据的人工智能知觉映射表的示意图。
[0043] 图6绘示一实施例中,存储控制器依据的人工智能知觉空间管理技术的示意图。
[0044] 图7绘示一实施例中,用于人工智能的容错读取/写入操作的过程示意图。
[0045] 图8绘示一实施例中,存储控制器依据的人工智能知觉可靠性管理技术的示意图。
[0046] 图9A和9B绘示两个实施例中,人工智能命令格式的示意图。
[0047] 各附图中相同的附图标记和名称表示相同的元件。
[0048] 【符号说明】
[0049] 100:人工神经网络;
[0050] 200:系统;
[0051] 202:处理器;
[0052] 204:存储器;
[0053] 206:脚位;
[0054] 208:传感器
[0055] 210:服务器
[0056] 220、230:存储装置;
[0057] 222、400:存储控制器;
[0058] 224:非易失性存储器
[0059] 223:内部暂存存储模块;
[0060] 225:分割区;
[0061] 226:人工智能数据分割区;
[0062] 228:非人工智能数据分割区;
[0063] 300:流程;
[0064] 302、304、306、308、310、312:步骤;
[0065] 400:存储控制器;
[0066] 402:存储接口
[0067] 404:数据路径调度接口;
[0068] 405:非人工智能存储元件;
[0069] 406:非人工智能阅读/编程元件;
[0070] 408:人工智能计算元件;
[0071] 410:人工智能知觉映射表管理元件;
[0072] 412:人工智能知觉空间管理元件;
[0073] 414:人工智能知觉可靠性管理元件;
[0074] 416:人工智能知觉阅读/编程元件;
[0075] 500A-500E:人工智能知觉映射表设计;
[0076] 502a、502b、502c、502n:逻辑地址;
[0077] 504a、504b、504c、504n:存储分页;
[0078] 506a、506b、506c、506d:存储分页;
[0079] 508:存储分页;
[0080] 508a、508b、508c、508d:存储单元;
[0081] 510a:最高有效位;
[0082] 510b:最低有效位;
[0083] 512a、512b、514a、514b、516a、516b:存储分页;
[0084] 600:人工智能知觉空间管理技术;
[0085] 602:记录区域;
[0086] 604a、604b、604c:存储位置;
[0087] 612:长期存储区域;
[0088] 614a、614b、614c:存储位置;
[0089] 700:流程;
[0090] 702、704、706、708、710、712、714:步骤;
[0091] 800:人工智能知觉可靠性管理技术;
[0092] 802a、802b、804a、804b:存储位置;
[0093] 900A、900B:人工智能命令格式;
[0094] 902a:操作码;
[0095] 902b:分层描述;
[0096] 902c:人工神经网络描述;
[0097] 902d:重要性描述;
[0098] 902e:数据地址描述;
[0099] 912a:操作码;
[0100] 912b:批量描述;
[0101] 912c:重要性描述;
[0102] 912d:数据地址描述;
[0103] AI_CMD:人工智能命令;
[0104] AI_Result output:操作的结果;
[0105] L0、L1、L2:分层;
[0106] N0~N8:人工神经元
[0107] x0、x1、x2:输入信号
[0108] W0~Wi:权重。

具体实施方式

[0109] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0110] 一些人工智能应用程序使用深度学习作为一种计算技术,其中人工神经网络的人工智能是用无监督的预训练等方法进行的。在这种情况下,人工神经网络是一个相互联系的节点组。例如类似于人类大脑中的巨大神经元网络。图1A和1B分别绘示人工神经网络100的实施例和人工神经网络100的神经元的分解图。如图1所示。如图1A所示,人工神经网络100是连接单元或节点的集合,例如N0、N1、N2、N3、N4、N5、N6、N7和N8,它们被称为人工神经元(例如,动物大脑中的生物神经元的简化版本)。人工神经元以分层形成组织。例如,分层L0包括人工神经元N0、N1和N2;分层L1包括人工神经元N3、N4、N5和N6;分层L2包括人工神经元N7和N8。
[0111] 在一些实施方式中,人工神经网络的不同分层,在其输入上执行不同类型的变换,其中一分层是人工神经网络的第一分层或输入分层。例如分层L0,而另一层是人工神经网络的最后一分层或输出分层(例如分层L2)。人工神经网络在输入分层和输出分层之间包括一个或多个内部分层,例如层L1,其介于输入分层与输出分层之间。在一次或多次通过内部分层之后,信号从输入分层行进到输出分层。
[0112] 在一些实施方式中,人工神经元之间的每个连接(例如,从N2到N6或从N6到N8的连接),可以将信号从一个发送到另一个。接收信号的人工神经元可以对其进行处理,然后发信号至连接的人工神经元。在一些实施方式中,人工神经元间的连接的信号是一个实数,并且每个人工神经元的输出是通过其输入之和的非线性函数来计算的。每个连接通常具有随着学习过程而调整的权重。权重可增加或减少连接处信号的强度。图1B绘示了人工神经元N6的分解图,其中人工神经元N6是人工神经网络中人工神经元的一实施方式。从人工神经网络100的人工神经元的输入信号x0、x1和x2,例如分别来自人工神经元N0、N1和N2,被送到人工神经元N6。每个输入信号,根据对应的连接所相关的权重进行加权,并且加权信号由人工神经元接收和处理。例如,从人工神经元N0到人工神经元N6的连接具有权重w0,从N0发送到N6的信号x0也根据此权重w0进行加权,使得由N6接收到的信号的值是w0x0。同样地,从人工神经元N1和N2到人工神经元N6的连接分别具有权重w1和w2,使得N6从N1和N2接收的信号的值分别是w1x1和w2x2。
[0113] 人工神经元在内部处理加权输入信号,例如,通过根据输入改变其内部状态(称为激活),并根据输入和激活产生输出信号。例如,人工神经元N6产生输出信号,该输出信号是输出函数f的结果,其被应用于由人工神经元N6接收的输入信号的加权组合。通过这种方式,人工神经网络100的人工神经元形成了一个加权、具方向性的图绘,其连接了一些神经元的输出,到其他神经元的输入。在一些实施方式中,可以通过学习过程(例如,深度学习)来修改人工神经元的权重、激活函数、输出函数或这些参数的任何组合。
[0114] 在某些情况下,深度学习涉及存储用于训练人工神经网络的大量人工智能数据(例如,权重)。传统的存储机制依赖于基于文件的管理,使用文件/快闪存储转换层(FTL),其中文件名作为索引在存储数据中查找。在常规存储中,数据以512字节到4096字节的大小为单位存储在存储存储装置中,例如,使用基于区块映射的方式。另一方面,人工智能数据,例如权重,不对应于基于名称的结构,这样映射到基于文件名的模型,例如,使用文件/快闪存储转换层(FTL),会十分困难。另外,人工智能数据的量可以很小,例如大约4个字节。使用基于区块的映射以512字节为单位的数据,存储效率低,导致存储装置空间浪费相当大。
[0115] 因此,本发明设计一可用于存储和处理人工智能数据的新技术。这种用于存储和处理人工智能数据的新技术,在本说明书中有清楚描述。在以下几段落中,在一些实施方式,一个新的神经元的映射表设计,用于对应人工神经元映射到PBA、PPA、或两者兼而有之。所描述的技术还使用数据管理,耗损平衡和记录机制,其依靠人工神经网络的独特功能来提高存取人工智能数据的效能和可靠性。人工神经网络的这些特征包括:容错,例如,某些数据错误不影响最终结果;数据地点,例如,某些人工智能数据的存取,较其他人工智能数据更频繁;数据重要性差异,例如某些人工智能数据比其他更重要,例如在一些实施方式中,最高有效位的数字信息存储权重,比最低有效位更重要(在某些实施方式中,最高有效位的错误可更大程度地影响准确性);特定存取流程,例如,当前存取的人工神经元下游的人工神经元更可能下一步被存取。
[0116] 所公开的技术还将新的存取流程机制与空间管理相结合,以进一步提高性能和可靠性。例如,可以预测人工神经网络中神经元行为。如果存取一神经元,可再存储中预先取出神经元的输出连接与下游连接的神经元的权重,以减少存取延迟。
[0117] 图2绘示用于存储和处理人工智能应用程序的示例系统200。系统200包括一个或多个处理器,表示为处理器202;一个或多个暂存存储模块,表示为存储器204;一个或多个通用输入/输出(GPIO)脚位,表示为GPIO206;一个或多个传感器,表示为传感器208;以及一个或多个服务器,表示为服务器210。系统200还包括存储装置220,其耦合到处理器202,存储装置220包括存储控制器222;内部暂存存储模块223,与存储控制器222联接;非易失性存储器(NVM)存储器224,被划分为若干个分割区,例如,启动分割区225,人工智能数据分割区226,以及非人工智能数据分割区228。在一些实施方式,系统200包括附加存储装置,表示为附加存储装置230,耦合到处理器202。附加存储装置230类似于存储装置220。
[0118] 在一些实施方式中,系统200对应于计算系统,其中不同元件是互连硬件的不同部分。在这种情况下,存储装置220和/或230是连接到包括处理器202的单独主机装置的独立存储模块。例如,存储装置220和/或230可以是外部存储装置,如外部快闪存储碟。在一些实施方式中,系统200对应于包括各种元件的一独立装置。在这样的实施方式中,系统200是集成电路、或托管处理器202和存储装置220和/或230的计算机板。这种集成电路的例子包括系统单芯片(SoC)、嵌入式和刻制硬件、可编程逻辑设备(例如,现场可编程逻辑阵列(FPGA)、以及多功能芯片。在这种情况下,存储装置220和/或230可以是嵌入式存储装置,例如嵌入式快闪存储模块。
[0119] 以下段落描述了用于固态存储装置中,人工智能应用程序的数据存储和处理的各种技术,如快闪存储装置。但是,这些技术也适用暂存或主存储装置中,存储和处理人工智能数据存储装置,其如前所述。
[0120] 在一些实施方式中,系统200将人工智能应用程序数据与非人工智能应用程序数据分开存储。例如,系统200在存储装置220的分割区226中存储人工智能数据,并在分割区228中存储非人工智能数据。在这样的实施方式,当处理器202从一个或多个连接元件接收输入(例如,数据输入)时,处理器202执行不同存储存取,取决于输入是用人工智能应用程序,还是用于非人工智能应用程序。如果输入是针对非人工智能的应用程序,则处理器202存取受非人工智能数据输入影响的分割区228的对应存储位置,并执行存取存储位置的操作(如读取或写入)。处理器202使用操作的结果,来控制一个或多个连接的元件,例如,通过GPIO 206向连接的设备发送命令。
[0121] 另一方面,如果输入是用于人工智能应用程序,则处理器202将包含人工智能命令的人工智能数据,一起发送给存储控制器222。在某些实施方式,输入是人工智能推理和训练的数据输入,是人工智能应用程序用于深度学习方面的数据。在这样的实施方式,人工智能命令是一个推理和训练命令,它包括多个读取操作,例如,读取数据,如从存储装置中的存储装置中读取神经元联接的权重;写入操作,例如,将数据写入存储装置的存储位置;以及计算操作,例如乘法和累加(MAC)和杂项激活和汇总函数(Miscellaneous activation and pooling function),以用于人工神经网络的权重和输入图像数据。收到这样的人工智能命令后,存储控制器222于人工智能数据分割区中存取受影响的存储位置,对存取存储位置上的数据执行人工智能命令指定的读取、写入和/或计算操作。存储控制器222将操作结果回送给处理器202。
[0122] 作为图2中所绘示的说明性例子,处理器202从传感器208接收输入(1),例如数据输入。处理器202判断数据用于人工智能应用程序,并对应地识别其用于深度学习的推理和训练命令,例如,类似于上面描述的那些实施方式,响应于输入而执行其操作。处理器将对应的人工智能命令AI_CMD(2)发送到存储控制器222。在一些实施方式,输入(1)与人工智能命令AI_CMD(2)一起发送到存储控制器222。在其他实施方式,只有人工智能命令AI_CMD(2)被发送到存储控制器222。在一些实施方式,例如,存在多个存储装置220和230,处理器202判断存储装置受输入影响,并将人工智能命令发送到受影响的存储装置的存储控制器。
[0123] 存储控制器222根据人工智能命令AI_CMD(2)决定要执行的读取、写入或计算操作(或这些操作的任何的合适组合),并存取(3)受这些操作影响的人工智能数据分割区226中的一个或多个存储位置。存储控制器222执行操作,例如,从存储的存储位置读取权重、将更新的权重写入存储位置、或执行两者。存储控制器222也将执行操作的结果AI_Result output(4),例如更新后的权重,发送到处理器202。处理器202发送AI_CMD(2),以及存储控制器222执行的人工智能数据的操作,详细内容在以下段落中说明。
[0124] 本发明的系统200的上述操作,与现有技术系统相反。在现有技术系统中,处理器在接收到人工智能应用程序的数据后,在存储装置中存取一个或多个受影响的存储位置,并对于使用存储在这些存储位置中的权重进行推理和训练(例如,读、写或计算操作)的操作。传统的方式中存储装置的存储控制器,例如,从存储位置加载数据,用于处理器执行操作,或写入处理器执行的操作的结果。存储控制器不在本地执行基于处理器命令的推理和训练操作。另外,在传统系统中,存储在存储位置的数据,不是根据数据是用于人工智能应用程序或非人工智能应用程序,而划分为独立的分割区。
[0125] 图3绘示用于存取人工智能应用程序的存储装置的流程300的示意图。在一些实施方式中,流程300由系统200执行,例如,处理器202和存储控制器222,用于本地化执行人工智能的操作,例如,在存储装置220执行对应于人工神经网络的深度学习的推理和训练命令中,读取、写入或计算操作。因此,以下部分描述了关于处理器202和存储控制器222的流程300。然而,在其他实施方式中,流程300可通过其他设备或系统执行。
[0126] 当接收到输入时,流程300开始于步骤302。例如,在一些实施方式中,处理器202从连接到处理器的设备接收输入的数据,例如来自传感器208的输入(1)。
[0127] 在步骤304,判断输入是否是人工智能数据输入的数据。例如,处理器202判断从传感器208接收的输入(1)是否为人工智能应用程序的数据输入。
[0128] 如果在步骤304判断输入不是人工智能数据输入,则在步骤306,存取存储器并执行操作。例如,如果处理器202判断输入为非人工智能数据输入,即用于非人工智能应用程序,则处理器202存取存储装置220中非人工智能数据分割区228的存储位置。例如,使用存储控制器222从非人工智能数据分割区228,加载目标存储分页或存储区块,到耦合到处理器202的暂存存储器204。处理器202然后执行操作,如读取或写入暂存存储器204中加载的分页或区块,以处理存取存储位置的数据,然后存储更新在非人工智能数据分割区228的存储分页或区块。
[0129] 另一方面,如果在步骤304判断输入是人工智能数据输入的数据,则在步骤308,将人工智能命令和数据发送给存储控制器222。例如,如果处理器202判断从传感器208接收的输入是人工智能数据,则处理器202一同发送人工智能数据和人工智能命令(例如,AI_CMD(2)),到存储控制器222。如前所述,在一些实施方式中,人工智能命令包括用于人工神经网络深入学习的推理和训练命令,其联接权重和神经元激活函数,存储在存储装置220中人工智能数据分割区226的存储位置。
[0130] 在步骤310处,判断存储的人工智能操作是否完成。例如,在从处理器202接收到人工智能命令时,存储控制器222在人工智能数据分割区226存取受影响的存储位置,以及执行人工智能命令对应的操作。如前所述,在一些实施方式中,控制器222执行:一个或多个读取操作,例如,从存储位置中,读取神经元的联接权重和/或人工神经网络分层;一个或多个写入操作,例如,更新存储在存储位置的联接权重;以及和一个或多个计算操作,例如,乘法和累加以及各种功能,例如用于权重和数据输入的激活和汇集功能。在一些实施方式中,读写操作被分成命令的子集,以对应于不同的存取存储分页。
[0131] 如果判断存储的人工智能操作未完成,则流程300在步骤310处重复。例如,控制器222对人工智能命令执行多个读取、写入或计算操作,直到存储在人工智能数据分割区226中的所有受影响的权重被处理。处理器202等待接收控制器222对人工智能命令执行的操作的结果。在一些实施方式中,处理器202执行其他任务,同时从控制器222获得人工智能命令的结果。
[0132] 如果在步骤310判断存储的人工智能操作完成,则在步骤312提供结果。例如,存储控制器222,通过存取在人工智能数据分割区中存储位置完成人工智能命令的操作,传送操作的结果到处理器202。在一些实施方式中,处理器202从控制器222接收通过或失败的指令,作为人工智能命令的结果。在一些实施方式中,处理器202从控制器222接收数据(例如更新的人工神经网络的输出),作为人工智能命令的结果。在一些实施方式中,响应于从控制器222接收结果,处理器202执行GPIO控制操作。然后,流程300转至步骤302,例如,等待处理器202从连接到处理器的元件中,接收下一个输入,元件例如传感器208。
[0133] 上述方式中,系统200可通过存储控制器222,在存储装置220执行本地卸除人工智能操作,其可加速人工智能推理与训练。因此,处理器202执行的操作负荷被分担,从而减少了处理器202的负载。处理器202和存储装置220之间的数据移动也减少,从而节省了内部装置带宽。因此,改进了系统200处理人工智能数据的效能和可靠性。
[0134] 图4绘示配置以执行人工智能操作的存储存储装置的存储控制器400的一个实施方式。在一些实施方式中,存储控制器400类似于存储控制器222。存储控制器400包括一存储接口402、一数据路径调度接口404、一非人工智能存储元件405、一非人工智能阅读/编程元件406、一人工智能计算元件408、一人工智能知觉映射表管理元件410、一人工智能知觉空间管理元件412、一人工智能知觉可靠性管理元件414、以及一人工智能知觉阅读/编程元件416。
[0135] 存储接口402是硬件存储接口,其使得存储控制器400能够与其他设备(例如,处理器420)通信。在一些实施方式中,存储装置是非易失性双列直插式存储器模块(NVDIMM)。在这种情况下,存储接口402是NVDIMM-N接口、NVDIMM-F接口或NVDIMM-P接口的一。在一些实施方式中,存储接口402是UFS接口。在一些实施方式中,存储接口402是eMMC存储接口。在一些实施方式中,存储器接口402是PCIe接口。在一些实施方式中,处理器420类似于处理器202。例如,存储控制器400从处理器420通过存储接口402接收人工智能命令和相应的人工智能数据。
[0136] 在一些实施方式中,数据路径调度接口404、非人工智能存储元件405、非人工智能阅读/编程元件406、人工智能计算元件408、人工智能知觉映射表管理元件410、人工智能知觉空间管理元件412、人工智能知觉可靠性管理元件414、以及人工智能知觉阅读/编程元件416,在一实施方式中可为硬件电路。例如,在存储控制器400的固件程序中,或在FPGA中。在一些实施方式中,这些元件被编写为软件工作,例如,编码为存储在存储器中的指令,由存储控制器400通过加载控制器中暂存存储器的指令来执行。在一些实施方式中,这些元件被实施为硬件电路和软件工作的组合。
[0137] 数据路径调度接口404包括指令,此指令使存储控制器400能够判断是否在人工智能数据分割区或非人工智能数据分割区中,存取存储位置。人工智能数据分割区,例如,类似于人工智能数据分割区226。非人工智能数据分割区,例如,类似于非人工智能数据分割区228。例如,如前所述,当处理器420处理非人工智能数据时,控制器400使用数据路径调度接口404将处理器的请求转发给非人工智能存储元件405。非人工智能存储元件405从非人工智能数据分割区,存取存储分页或存储区块,以加载至处理器的暂存区。在一些实施方式中,非人工智能存储元件405实施基于文件的管理(例如,映射逻辑区块地址到物理区块地址)。非人工智能存储元件405使用非人工智能阅读/编程元件406,执行读取或写入在非人工智能数据分割区中物理存储分页和/或存储区块。
[0138] 当处理器420发送人工智能命令以及附带的人工智能数据时,控制器400使用数据路径调度接口404转发人工智能命令和人工智能数据,到人工智能计算元件408、人工智能知觉映射表管理元件410、人工智能知觉空间管理元件412、以及人工智能知觉可靠性管理元件414其中一个或多个,通过存取在人工智能数据分割区中存储位置,进行人工智能推理和训练操作。控制器400使用人工智能计算元件408、人工智能知觉映射表管理元件410、人工智能知觉空间管理元件412、以及人工智能知觉可靠性管理元件414,在存储设备上执行人工智能操作,例如,如流程300的310所述。
[0139] 人工智能计算元件408、人工智能知觉映射表管理元件410、人工智能知觉空间管理元件412、以及人工智能知觉可靠性管理元件414,使用针对人工智能应用程序优化的各种技术,处理人工智能命令和人工智能数据。例如,在一些实施方式中,人工智能知觉映射表管理元件410使用基于人工神经元的映射表,来映射神经元到物理区块地址或存储装置中分页地址。在一些实施方式中,人工智能知觉映射表管理元件410使用适合于人工智能的其他数据结构,例如,基于批量的映射、基于分层的映射、或基于图像的映射。
[0140] 人工智能知觉空间管理元件412和人工智能知觉可靠性管理元件414使用基于人工智能的数据管理数据管理,耗损平衡和记录机制,来提高存取人工智能应用程序的效能和可靠性,其数据存储在由存储控制器400管理的存储装置中。这些人工智能知觉元件使用人工智能知觉阅读/编程元件416,读取或写入在人工智能数据分割区的物理存储分页和/或存储区块。人工智能计算元件408、人工智能知觉映射表管理元件410、人工智能知觉空间管理元件412、以及人工智能知觉可靠性管理元件414的功能,详见以下段落说明。
[0141] 图5A-5E绘示存储控制器使用的人工智能知觉映射表设计500A-500E。在一些实施方式中,人工智能知觉映射表设计500A-500E由存储控制器222实现,以管理存储装置220中人工智能数据分割区226的存储位置。在一些实施方式中,人工智能知觉映射表管理元件,例如人工智能知觉映射表管理元件410,在存储控制器中使用人工智能知觉映射表设计500A-500E。在一些实现中,映射表设计500A-500E是基于神经元的映射表设计,其映射人工神经元到物理区块地址和/或物理分页地址,如前所述。以下部分描述了作为数据的联接权重的存储技术。但是,存储其他类型的人工智能数据,例如神经元激活功能,也可以使用这些存储技术。
[0142] 如图5A所示,在一些实施方式中,存储控制器使用分层映射表设计500A,其利用了人工神经网络的数据位置特征。通过分层映射表设计500A,存储控制器在相同存储分页中存储与相同神经元相关的权重。例如,在一些实施方式中,人工神经网络的神经元0、神经元1、神经元2、以及神经元N的逻辑地址,分别是502a,502b,502c和502n。存储控制器在闪存的一分页中,为每个神经元存储数据,例如权重。例如,神经元0,神经元1,神经元2和神经元N的权重分别存储在存储分页504b,504a,504n和504c中。
[0143] 如图1B中的神经元N6的实施方式所描述的,每个神经元的权重是神经元输入和输出连接的权重。图5A的实施方式中,在使用分层映射表设计500A时,存储控制器判断与神经元相关联的神经元,并存储权重在一个存储分页,此存储分页用于存储与神经元对应的权重。例如,神经元0的输入和输出连接的权重,存储在分页504b中,其中存储物理地址在W[0][0]和W[0][N]之间。在一些实施方式中,每个存储分页,例如,存储分页504b,大小为4千字节(KB)。特定神经元的每个权重,例如权重0、权重1、以及权重2,以4字节(B)单位存储在存储分页中。在其他实施方式中,可以使用不同大小的存储分页和权重。
[0144] 如前所述,在一些实施方式中,存储装置中的物理存储器是固态存储器,例如闪存。在一些实施方式中,存储神经元权重于不同存储分页中,这些不同存储分页位于闪存的相同通道和平面。例如,在一些实施方式,在分层映射表设计500A中,存储分页504a、504b、504c、以及504n位于物理存储器的相同通道和平面。在这种情况下,通道是闪存的一同步存取单元,闪存可有多个通道。每个通道包括多个快闪芯片,其中一个平面是快闪芯片的同步存取单元。每个闪存芯片可包括多个平面。
[0145] 然而,在一些实施方式中,存储控制器使用图5B所示的修改的分层映射表设计500B。在某些情况下,多个存储分页用于收集和存储神经元的权重。例如,当神经元具有大量相关的权重时,其整体规模超过了存储分页的存储容量。依据映射表设计500B,存储控制器以分布式方式选择这些分页,例如,将存储分页分散到不同的通道,或者不同平面,或两者兼而有之。例如,如图5B所示,在一些实施方式中,将与神经元0相关联的大量权重,存储在四个存储分页中506a、506b、506c和506d。存储分页506a将权重存储在存储位置,其地址在W[0][0]和W[0][N]之间。存储分页506b将权重存储在存储位置,其地址在W[0][N+1]和W[0][2N]之间。存储分页506c将权重存储在存储位置,其地址在W[0][2N+1]和W[0][3N]之间。存储分页506d将权重存储在存储位置,其地址在W[0][3N+1]和W[0][4N]之间。
[0146] 存储控制器在不同的通道和不同的平面上以分布式方式选择存储分页。例如,存储分页506a位于通道0和平面0。存储分页506b位于通道0和平面1、存储分页506c位于通道1和平面0、存储分页506d位于通道1和平面1。以这种分布的方式存储神经元的权重,可加速数据的访问速度,例如,存储控制器可以同时读取或写入不同通道和/或平面的存储分页。
[0147] 在一些实施方式中,存储控制器依据映射表设计500C或500D,分别如图5C和5D所示,其中权重根据权重、神经元、或两者的重要性,存储在不同类型的存储位置中。映射表设计500C说明了单分页设计的一个例子。依据映射表设计500C,存储控制器收集并存储神经元的权重在一个存储分页。例如,存储分页508,包括不同类型的存储单元,例如单层单元、多层单元、三层单元、以及四层单元。相同神经元的权重可以具有不同的重要性,其根据权重的重要性,权重存储在不同类型的细胞中。例如,在一些实施方式中,重要权重存储在单层单元中,而较低重要的权重存储在多层单元、三层单元、四层单元、或者这些单元的任何组合。在一些实施方式中,重要权重存储在多层单元中,而不太重要的权重存储在三层单元和/或四层单元中。在一些实施方式中,重要权重存储在三层单元中,而不太重要的权重存储在四层单元中。由于单层单元,多层单元,三层单元和四层单元,为按稳定性而降序排列。相较于不太重要的权重,映射表设计500C尝试确保最重要的权重的存储,具有更高的可靠性。
[0148] 此状况中,权重的重要性基于权重在判断神经元所依据的激活函数的结果中的影响。例如,神经元有四个权重:w0值为0.5,w1值为0.4,w3值为0.3,w4值为0.2。因此,w0比其他权重具有更大的影响来决定神经元的激活函数的结果,而w4的影响最小。因此,权重w0在神经元的权重中具有最高的重要性,而w4具有最低的重要性。
[0149] 在一些实施方式中,存储控制器通过与已知阈值进行比较来判断重要性。如果权重的值大于此阈值,则权重被认为是重要的,而如果该值小于阈值则权重被认为是不重要的。
[0150] 在一些实施方式中,使用多个阈值,例如,阈值1,阈值2和阈值3,其中阈值3具有高于阈值2的值,而阈值2又具有高于阈值1的值。在这种情况下,多个阈值重要性是可能的。例如,如果权重的值大于阈值3,则权重被认为具有最高重要性级别的重要性级别4。如果权重的值在阈值3和阈值2之间,则权重被认为具有重要性级别3,其小于重要性级别4。如果权重的值在阈值2和阈值1之间,则权重被认为具有重要性级别2,其小于重要性级别3。如果权重的值小于阈值1,则权重被认为具有重要性级别1,其小于重要性级别2并且是最低重要性级别。具有重要性级别4的权重存储在单层单元;具有重要性级别3的权重存储在多层单元;具有重要性级别2的权重存储在三层单元;以及具有重要性级别1的权重存储在四层单元中。根据本发明,阈值级别和重要性级别的各种排列是可能的,例如,具有两个阈值或四个阈值,或具有三个重要性级别或五个重要性级别,等等。
[0151] 在一些实施方式中,权重以数值的升序或降序排列。在这种情况下,权重根据其数值,存储在不同类型的单元中。例如,具有最高值的权重存储在单层单元中,而具有最低值的权重存储在四层单元中。
[0152] 图5C绘示具有四个权重的神经元0的实施方式,其存储在存储分页508,在存储分页508的存储单元508a、508b、508c、以及508d中。存储单元508a、508b、508c以及508d分别为单层单元、多层单元、三层单元和四层单元。依据映射表设计500C,单层单元存储单元508a存储具有最高重要性级别的神经元0的权重(例如,前一实施方式中的权重w0);多层单元存储单元508b存储具有中等重要性级别的权重,例如,小于最高重要性级别(例如,前一实施方式中的权重w1);三层单元存储单元508c存储中等重要性级别的权重,例如,小于中高重要性级别(例如,前一实施方式中的权重w2);和四层单元存储单元508d存储具有最低重要性级别的权重,例如,小于中高重要性级别(例如,前一实施方式中的权重w4)。
[0153] 图5D中映射表设计500D绘示跨分页设计的实施方式。在一些实施方式中,依据映射表设计500D,存储控制器在具有不同类型存储单元的不同存储分页中收集和存储不同重要性的权重。例如,最重要权重的神经元,其最重要权重存储在包含多个单层单元的存储分页中,而重要性较低的神经元的权重,存储在包括多个多层单元的存储分页。
[0154] 进一步地或可选择地,单个权重的不同部分可以存储在不同类型的存储单元中,这些存储单元可以位于相同的存储分页中,或者分布在不同的存储分页上。例如,在一些实施方式中,权重的最高有效位(例如,4字节权重值的较高16位)比权重的最低有效位更重要(例如,4字节权重值的较低16位)。在这种情况下,权重的最高有效位存储在单层单元中,而权重的最低有效位存储在多层单元中,三层单元或四层单元。图5D绘示具有最高有效位510a和最低有效位510b的权重值的神经元的实施方式。根据映射表设计500D,最高有效位
510a存储在存储分页512a的单层单元,而最低有效位510b存储在存储分页512b的多层单元。在一些实施方式中,最高有效位和最低有效位分别存储在相同存储分页的单层单元和多层单元(或者分别存储在多层单元中和三层单元;或单层单元和三层单元等)。
[0155] 在一些实施方式中,存储控制器依据映射表设计500E,如图5E所示,其实现基于权重的独立磁盘冗余阵列(RAID)架构。依据映射表设计500E,存储控制器复制跨越多个存储分页中神经元的重要权重,提高权重存储的可靠性。例如,如图5E所示,在一些实施方式中,神经元0具有两个重要的权重,其存储在具有物理地址W[0][0]和W[0][1]的存储位置中。具有物理地址W[0][0]的存储位置复制在两个不同的存储分页514a和514b,而存储位置的物理地址为W[0][1]复制在两个不同的存储分页516a和516b。
[0156] 在一些实施方式中,存储分页514a、514b、516a、以及516b都是不同的。在一些实施方式中,存储分页514a可以与存储分页516a或516b之一相同,或者存储分页514b可以与存储分页516a或516b之一相同,前提是每个重要权重在不同的存储分页复制以提供备份。
[0157] 在一些实施方式中,存储控制器使用上述技术判断使用复制的重要性级别。在一些实施方式中,可以使用不同的独立磁盘冗余阵列(RAID)架构来复制具有不同重要性级别的权重。例如,在一些实施方式中,重要性级别为4的权重在五个不同的存储分页上复制;重要性级别3的权重在四个不同的存储分页上复制;以及在三个不同的存储分页上复制具有重要性级别2的权重。
[0158] 上面已经描述了关于存储神经元权重的映射表设计500C,500D和500E。映射表设计500C、500D或500E,可以用类似的方式,按不同的重要性级别,排序不同的神经元或不同的人工智能图像,并存储相关的信息。(例如,不同类型细胞中的重要神经元和不重要神经元中,相关的权重)。
[0159] 图6绘示由存储控制器使用的人工智能知觉空间管理技术600的实施方式。在一些实施方式中,人工智能知觉空间管理技术600,通过存储控制器222以管理存储装置220的人工智能数据分割区226中的存储位置,以实现此技术。在一些实施方式,存储控制器中,人工智能知觉空间管理元件(例如,人工智能知觉空间管理元件412),使用人工智能知觉空间管理技术600。以下部分描述了关于权重数据联接的人工智能知识空间管理技术600。此外,存储其他类型的人工智能数据,例如神经元激活函数,也可以使用此空间管理技术。
[0160] 在一些实施方式中,存储控制器在执行人工神经网络的训练模式操作时,使用人工智能知觉空间管理技术600。在这种情况下,当人工神经网络处于训练模式时,人工神经网络的联接权重会经常更新,这可能引入可靠性和性能问题。为了解决这些问题,存储控制器,使用人工智能知觉空间管理技术600,将频繁访问的存取权重值,重新分配给物理闪存的记录区域,而不是将频繁变化的权重更新值写入闪存的长期存储区域。由于高频率反映于权重值的每次变化中,长期存储区不会被存取,因此长期存储在闪存中的数据不会受到干扰,并且没有垃圾收集超载的困扰。
[0161] 如图6所示,在一些实施方式中,神经元0是一个“热”神经元,即一个权重经常更新的神经元(例如,在训练人工神经网络时)。因此,根据人工智能知觉空间管理技术600,存储控制器在物理闪存的记录区域602中,存储与热神经元0对应的权重的连续数值。例如,存储控制器最初从长期存储区域612中的存储位置,存取神经元0的权重。在记录区域602中,将权重的更新值存储在存储位置604a中,以追溯训练操作。权重的后续更新值,连续存储在存储位置604b和604c中。当存储控制器判断权重不再以高频率更新时,例如,当更新发生的频率低于已知阈值速率时,存储控制器写入最近的权重值在长期存储区域612中的对应存储位置。
[0162] 与神经元0神经元相反,神经元1是“冷”神经元,例如,神经元不经常更新,因此其权重不具有高频率存取率。因此,每次更新与神经元1联接的权重的值(例如,以低于已知阈值速率的频率更新)时,存储控制器将更新后的值写入长期存储区612中相应的存储位置。例如,每次更新值后,神经元1的权重值被写入存储位置614a、614b、以及614c。
[0163] 图7绘示用于人工智能数据的容错读取/写入操作的流程700的实施方式。在一些实施方式中,流程700由存储控制器222执行,以存取存储装置的人工智能数据分割区226中的存储位置。以下部分将关于联接权重的流程700描述为数据。但是,存储其他类型的人工智能数据,例如神经元激活功能,也可以使用流程700。
[0164] 在步骤702,识别要存取的权重。例如,存储控制器根据来自处理器202的人工智能命令,判断要存取的权重。
[0165] 在步骤704,判断此权重是否重要。例如,存储控制器,使用人工智能知觉阅读/编程元件416,判断神经元的权重的重要级别,其中神经元从人工智能数据分割区226的存储位置中取得。存储控制器以前面描述的方式判断重量的重要性级别,例如,根据映射表设计500C或500D。
[0166] 如果此权重被判断为重要的,则在步骤706,对所有数据执行读取或写入。例如,如果权重的重要性级别大于某个重要性阈值(例如,权重是前面描述的重要级别4),则对所有存储的权重位,通过人工智能知觉阅读/编程元件(例如,人工智能知觉阅读/编程元件416),存储控制器执行读取或写入操作。
[0167] 另一方面,如果判断此权重不重要,在步骤708,读取一部分的权重。例如,如果权重的重要性级别小于某个重要性阈值(例如,权重是前面描述的重要级别2或1),存储控制器执行读取或写操作,例如根据人工智能知觉阅读/编程元件416,以用于权重的一些存储位,例如,最高有效位与最低有效位其中之一,但不是权重的所有位。
[0168] 在步骤710,判断是否需要对权重的重要性级别进行完全纠错。例如,存储控制器中的人工智能知觉阅读/编程元件416可配置,在读取/写入操作后执行完整纠错操作。完整纠错操作,使用纠错码(ECC)于具有最高重要性级别的权重,同时对具有其他重要性级别的权重执行部分纠错。因此,如果权重具有重要性级别4,则存储控制器决定要执行完整纠错操作。但是,如果权重的重要性为3级或更低,则存储控制器决定要执行部分纠错操作。
[0169] 如果判断需要完全纠错,则在步骤712执行完全纠错。例如,如果存储控制器判断权重具有最高重要性级别,从而确保其值的高可靠性,则存储控制器通过例如人工智能知觉阅读/编程元件416,对权重执行完整的纠错码(ECC)检查。
[0170] 另一方面,如果判断不需要完全纠错,在步骤714,执行部分纠错。例如,如果存储控制器判断权重具有较低的重要性级别,不需要确保其权重值的高可靠性,则存储控制器通过例如人工智能知觉阅读/编程元件416,执行部分纠错码(ECC)检查。
[0171] 以上述方式,存储控制器使用流程700存取权重值,并根据权重的重要性确保其可靠性。对于具有较低重要性级别的权重,可以牺牲准确性(例如,通过执行部分读取或部分纠错码(ECC),或两者兼备)来提高访问速度,从而改进整体性能。人工神经网络可以容忍读取重要性较低的权重值的错误;因此,牺牲重要性较低的权重的准确性,不会在功能上影响人工神经网络的整体准确性。
[0172] 图8绘示存储控制器使用的人工智能知觉可靠性管理技术800的实施方式。在一些实施方式中,通过存储控制器222实施人工智能知觉可靠性管理技术800,以管理存储装置220的人工智能数据分割区中存储位置。在一些实施方式中,人工智能知觉可靠性管理元件,例如人工智能知觉可靠性管理元件414、在存储控制器中使用的人工智能知觉可靠性管理技术800。以下部分描述了关于作为数据的联接权重的人工智能知觉可靠性管理技术
800。但是,存储其他类型的人工智能数据,例如神经元激活功能,也可以使用可靠性管理技术800。
[0173] 在一些实施方式中,根据人工智能知觉可靠性管理技术800,存储控制器在具有更高可靠性的存储分页中,存储对应于神经元的权重值的最高有效位部分。例如,使用具有更多纠错码(ECC)位的强纠错码(ECC)。存储控制器将权重值的最低有效位存储在具有较低可靠性的存储分页中,例如,使用较低纠错码(ECC)位的较弱纠错码(ECC)。例如,如前所述,在权重的最高有效位比权重的最低有效位的重要性更高的实施中,可采用前述方式。
[0174] 作为说明性实施方式,存储控制器存储最高有效位(例如,权重的4字节值中较高16位,例如W[0].MSB,W[1].MSB...W[n].MSB),在存储分页的存储位置802a,其使用强大的纠错码(ECC)。对应于最高有效位的强大纠错码(ECC),存储在存储分页的存储位置802b中。
存储控制器存储最低有效位(例如,权重的4字节值中较低16位,如W[0].LSB、W[1].LSB...W[n].LSB),在使用较弱的纠错码(ECC)的第二存储分页的存储位置804a(与存储位置802a和
802b的分页,所使用的纠错码(ECC)相比较)。与存储在804b中的纠错码(ECC)位数相比,更多数量的纠错码(ECC)位数存储在802b中。因此,与最低有效位相比,最高有效位提供更高的可靠性。如此,收集并存储于相同分页中神经元的所有权重的最高有效位具有较强的纠错码(ECC),而收集并存储于相同分页中神经元的所有权重的最低有效位具有较弱的纠错码(ECC)。
[0175] 在一些实施方式中,权重的最低有效位比权重的最高有效位更重要。在这种情况下,根据人工智能知觉可靠性管理技术800,存储控制器存储对应于神经元的权重值的最低有效位部分,具有更高可靠性的存储分页。例如,使用具有更多纠错码(ECC)位的强纠错码(ECC)。存储控制器将权重值的最高有效位部分存储在具有较低可靠性的存储分页中,例如,使用具有较少纠错码(ECC)位的较弱的纠错码(ECC)。
[0176] 人工智能知觉可靠性管理元件414使用附加技术来提供存储在人工智能数据分割区226中的人工智能数据的可靠性。例如,在一些实施方式中,人工智能知觉可靠性管理元件414使用人工智能知觉程序验证技术。人工智能知觉程序验证技术,与权重的最低有效位相比,权重的最高有效位s被写入更多的迭代次数。通过使用更多的程序迭代,最高有效位获得更窄的存储单元阈值电压分布(distribution of the memory cell threshold voltage)(例如,0.2伏特宽);而通过使用较少的程序迭代,最低有效位得到更宽的存储单元阈值电压分布(例如,0.6伏特宽)。
[0177] 在一些实施方式中,人工智能知觉可靠性管理元件414使用人工智能知觉耗损平衡技术。使用人工智能知觉耗损平衡技术,将一个权重的最高有效位写入一存储区块的存储分页。与写入权重的最低有效位的存储区块相比,较存储区块具有一较低编程/擦除(P/E)周期数。例如,权重的最高有效位以100P/E周期写入存储区块,而权重的最低有效位s写入具有1000P/E周期的不同内存储区块。由于存储区块的稳定性随着P/E周期数的增加而减小,上述技术确保了权重的最高有效位(在某些实施方式中更为重要,如前所述)被写入一个可以提供更高可靠性的存储区块,例如,更能承受耗损。
[0178] 图9A和9B分别绘示人工智能命令格式900A和900B的实施方式。在一些实施方式中,处理器202使用命令格式900A和900B来发送人工智能命令,例如AI_CMD(2),到存储控制器222。
[0179] 图9A中的命令格式900A,用于发送单个神经网络(Neural network,NN)存取命令,或多个神经网络存取命令。神经网络存取命令是存取单个神经元和相应的权重,而多个神经网络存取命令用于存取多个神经元和相应的权重。多个神经元和相应的权重可以存储在存储器中的分布位置。如图所示,命令格式900A包括若干字段,例如操作码902a,分层描述902b,人工神经网络描述902c,重要性描述902d和数据地址描述902e。
[0180] 操作码902a指定人工智能命令是读命令还是写命令。在一些实施方式中,操作码902a字段是1位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0181] 分层描述902b在单个神经网络存取命令和多个神经网络存取命令之间有所不同。对于单个神经网络存取命令,分层描述902b提供了一个分层号码,可用以存取。例如,考虑到工神经网络100,分层描述902b可以指定分层L0,或分层L1,或分层L2。对于多个神经网络存取命令,分层描述902b提供了要存取的分层的范围。在一些实施方式中,分层描述902b字段是16位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0182] 人工神经网络描述902c在单个神经网络存取命令和多个神经网络存取命令之间不同。对于单个神经网络存取命令,人工神经网络描述902c识别要存取的人工神经网络号码。例如,存储装置220中的人工智能数据分割区226可以存储多个人工神经网络的数据,包括例如人工神经网100。人工神经网络描述902c可以提供人工神经网络的识别对象,该识别对象是人工智能命令的目标,例如,人工神经网络描述902c可以为人工神经网络100提供识别对象。对于多个神经网络存取命令,人工神经网络描述902c提供了要存取的人工神经网络的范围。在一些实施方式中,人工神经网络描述902c字段是16位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0183] 重要性描述902d指定存储数据的哪个位是重要位。例如,如前所述,在一些实施方式中,最高有效位是重要的,并且该信息可以由重要性描述902d指定。但是,在某些实施方式中,最低有效位比最高有效位更重要。在这种情况下,重要性描述902d指定最低有效位是重要的位。存储控制器采用人工智能知觉的存储管理的各种技术,依赖于权重的重要性,例如映射表设计500C-500E、流程700、或者人工智能知觉可靠性管理技术800,其使用重要性描述902d。前面的描述是关于最高有效位是重要的位。这些技术也适用于最低有效位是重要位的实施方式。在一些实施方式中,重要性描述902d字段是1位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0184] 数据地址描述902e提供指向存储位置地址的指针,例如,人工智能数据分割区226的存储人工智能数据的存储位置,用于执行人工智能命令。在一些实施方式中,取决于应用,每个指针是4位宽,并且存在M个这样的指针用于M个目标存储位置(M是大于0的整数)。在这种情况下,数据地址描述902e字段是4*M位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。例如,通常,每个指标是L(L是大于0的整数)位宽。用M个指针,存储M个目标存储位置,数据地址描述902e字段为L*M位宽。
[0185] 在一些实施方式中,使用图9B中命令格式900B来发送一批量神经网络存取命令,以用于一些应用程序。如图所示,命令格式900B包括字段操作码912a,批量描述912b,重要性描述912c和数据地址描述912d。在这种情况下,批量神经网络存取命令用于存取批量数据,例如,存储在存储器中连续的位置的多个神经元和对应的权重。
[0186] 操作码912a指定批量神经网络存取人工智能命令是否为读命令或写命令。在一些实施方式中,操作码912a字段是1位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0187] 批量描述912b提供了要存取的批量号码。批量号码是指要存取的批量数据。如上所述,批量数据可以是多个连续神经元和对应权重的人工神经网络数据。在一些实施方式中,批量描述912b字段是16位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0188] 重要性描述912c以类似于重要性描述902d字段所描述的方式,指定所存储数据的哪个位是重要位。在一些实施方式中,重要性描述912c字段是1位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。
[0189] 数据地址描述912d提供指向存储位置的地址的指针,例如,存取人工智能数据分割区266中存储人工智能数据的存储位置,以用于执行人工智能命令。在一些实施方式中,根据应用所需,每个指针是4位长,并且存在M个这样的指标以用于M个目标存储位置(M是大于0的整数)。在这种情况下,数据地址描述912d字段为4*M位宽。然而,在不同的实施方式中,其他字段宽度也是可能的。例如,对于某些应用,每个指针的长度为L位宽(L是大于0的整数)。具有用于M个目标存储位置的M个指针,数据地址描述912d字段为L*M位宽。
[0190] 所公开的和其他实施方式可以实施为一个或多个计算机程序产品,例如,在计算机可读介质上编码的计算机程序指令的一个或多个模块,用于由其执行或控制数据处理设备的操作。计算机可读介质可以是机器可读存储装置、机器可读存储基板、存储装置、或者其中的一个或多个的组合。术语“数据处理设备”包括所有设备、设备和处理数据的机器,包括例如可编程处理器,计算机、多个处理器或计算机。除了硬件之外,设备还可以包括为所讨论的为计算机程序创建执行环境的程序代码,例如,构成处理器固件的程序代码、协议堆栈、数据基础管理系统、操作系统、或者其中一个或多个的组合。
[0191] 系统可以包含用于处理数据的所有设备、装置和处理数据机器,包括例如可编程处理器、计算机、多个处理器或计算机。除了硬件之外,系统还可以包括为所讨论的为计算机程序创建执行环境的程序代码,例如,构成处理器固件的程序代码、协议堆栈、数据基础管理系统、操作系统、或者其中一个或多个的组合。
[0192] 计算机程序(也称为程序、软件、软件应用程序、脚本或程序代码)可以用任何形式的程序语言编写,包括编译或解释的语言,并且它可以以任何形式设置,包括如独立程序或作为模块、元件、子程序或适用于计算环境的其他单元。计算机程序不一定对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言档案中的一个或多个脚本)。计算机程序可存储在专用于所讨论程序的单个文件中,或者存储在多个协调文件中(例如,存储一个或多个模块,子程序或部分的程序代码)。计算机程序可以部署在一台计算机上或位于一个场所上、或分布在多个场所上并通过通信网络互连。
[0193] 本文中描述的过程和逻辑流程,可通过一个或多个可编程处理器执行其中一个或多个计算机程序,以执行本文描述的功能。过程、逻辑流程、以及设备也可实施为专用逻辑电路,例如FPGA或特殊应用集成电路(ASIC)。
[0194] 举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器、随机存取存储器、或两者,接收指令和数据。计算机的基本要素可以包括用于执行指令的处理器和一个或多个存储装置,以用于存储指令和数据。通常,计算机还可以包括或可操作地耦合至接收数据、或将数据传输到一个或多个大容量存储装置以用于存储数据,例如,磁盘,磁光盘或光盘。但是,计算机不需要这样的设备。计算机可读介质适用于存储计算机程序指令和数据,其可以包括所有形式的非易失性存储器、介质和存储装置,例如,EPROM,EEPROM和快闪存储装置;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM光盘。处理器和存储器可附属或并入于专用逻辑电路中。
[0195] 虽然本文档可描述许多细节,但这些细节不应被解释为对要求保护范围或要求保护的发明范围的限制,而是作为特定实施方式特有的特征的描述性说明。在单独的实施方式的上下文中在本文档中描述的某些特征也可以与其他实施方式进行组合。相反,在单个实施方式的上下文中描述的各种特征也可以单独地或以任何合适的局部组合在其他多个实施方式中。此外,尽管最初公开中,上面的特征以描述为某些组合,但是当需要时可以从组合中移除来所要求保护的组合中一个或多个特征,并且所要求保护的组合可针对其中子组合、或子组合的修正。同样地,在附图中以特定顺序描绘了操作顺序,但是这不应该被理解为要求为特定顺序或必须按顺序执行操作,或者执行所有绘示的操作,以产生期望的结果。
[0196] 本发明说明内容仅公开了几个实施方式,使用者可基于所公开的内容对所描述的实施方式、以及其他实施方式进行改变、修正和加强。
[0197] 综上所述,虽然本发明已以实施方式公开如上,然其并非用以限定本发明。本发明所属技术领域中具有公知常识的技术人员,在不脱离本发明的精神和范围内,当可作各种的改动与润饰。因此,本发明的保护范围当以的申请专利权利要求所界定的范围为准。
[0198] 以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈