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

基于人工神经网络的数据位置用数据缓存支持高速人工神经网络操作的数据管理设备

文献发布时间:2023-06-19 12:21:13


基于人工神经网络的数据位置用数据缓存支持高速人工神经网络操作的数据管理设备

技术领域

本公开涉及一种用于支持人工神经网络操作的数据管理设备,尤其涉及一种基于人工神经网络的数据位置,使用数据缓存来支持高速人工神经网络操作的数据管理方法,以及应用该方法的设备。

背景技术

对使用人工神经网络(ANN)的人工智能的兴趣正在增加。人工神经网络可以通过数据学习来推断数据集中固有参数的相关性。

最近,卷积神经网络(CNN)广泛用于人工智能领域,例如图像识别和自动驾驶汽车。

卷积神经网络包括输入层、输出层以及在它们之间的一个或多个内层。

输出层包括一个或多个神经元,并且输入层和内层中的每一个包括多个神经元。

相邻层中包含的神经元通过突触以各种方式连接,并且给每个突触赋予权重。

根据要识别的图像等输入信号,确定输入层所包含的神经元的值。

内层和输出层中包含的神经元的值是根据前一层中包含的神经元和突触来计算的。

在以这种方式连接的卷积神经网络中,突触的权重是通过训练操作确定的。

例如,进行使用已训练的卷积神经网络执行图像识别的推理操作。例如,输入图像确定输入层的多个神经元的值,然后通过多次操作穿过内层,并且将识别结果输出到输出层中的神经元。

在卷积神经网络的训练操作和使用卷积神经网络的推理操作中,都必须执行许多操作。

此外,执行许多存储器访问操作以存储在操作期间生成的临时数据或读取所存储的临时数据。

通常,存在由于执行神经网络操作的处理器和存储器之间的数据输入/输出操作所需的时间而导致整体操作性能下降的问题。

为了改善现有技术的问题,已经提出了一种在存储器中包括神经网络处理器的存储器内处理技术。例如,KR 10-2019-0018888“包括神经网络处理电路的存储器设备和包括该设备的存储系统”对应于该技术。

此外,作为支持人工神经网络操作的处理器的神经网络处理器(NNP),美国专利US9,805,304“prefetching weights for use in a neural network processor”公开了一种通过在人工神经网络操作过程中沿着脉动阵列的第一维为神经网络层预取网络权重来优化人工神经网络的配置。

在现有技术中,KR 10-2019-0018888源自于通过包括在存储器中确定的神经网络处理电路来缩短发送和接收数据所需的时间的动机。另外,在现有技术中,US 9,805,304公开了专用于特定人工神经网络的神经网络处理器(NNP),该神经网络处理器包括基于预定人工神经网络的结构信息执行下一数据操作的定序器。

然而,最近,人工神经网络技术正在尝试通过各种类型的网络或动态可变形网络的多种组合来提高性能。因此,仅尝试在存储器侧或专用于特定人工神经网络的神经网络上处理神经网络处理操作,并在专用于某种神经网络的神经网络处理器(NNP)中基于预定人工神经网络对权重定序器进行优化,各种人工神经网络技术的应用可能会受到应用范围方面的限制。

发明内容

技术问题

在一般的计算系统中,尽管执行操作的处理器的性能优异,但是与处理器的性能相比,提供作为操作对象的数据的存储器的性能不足。结果,系统的整体操作性能下降。特别是,在计算大数据的人工智能/人工神经网络的操作中,不平衡是一个更严重的问题。因此,认识到需要最大程度地改善人工神经网络操作的问题。

由于人工神经网络操作具有数据密集处理的特征,因此整体操作性能受到存储数据的存储器设备的带宽和等待时间的极大影响。这是因为,即使当处理器具有出色的操作能力时,如果不能在适当的时间从存储器中检索出操作所需的输入数据,则该处理器也不能执行实际操作,而必须在空闲状态中等待。

根据存储器的类型,当处理器发送存储器地址值以从存储器读取操作所需的数据时,在几个时钟周期的等待时间之后,从存储器输出实际请求的数据。在DRAM的情况下,根据行地址激活字线和位线需要花费几个时钟,激活列线需要花费几个时钟,并且通过一条将数据传输到存储器外部的路径需要花费几个时钟。在NAND闪存的情况下,由于一次激活的单元很大,因此可能需要花费几个额外的时钟来搜索所需地址的数据。

如果处理器没有操作所需的数据,并且需要花费几个时钟来访问处理器的外部存储器以进行数据读取和实际读取数据,则由于该时间没有必要的数据,因此操作将停止,从而导致整体操作性能下降。

本公开的目的是改进现有技术的问题,并且意图提供一种数据管理设备,该数据管理设备能够通过在至少一个处理器中执行人工神经网络处理操作来最小化选择/修改人工神经网络时的限制,并且能够扩大应用范围。另外,在使用各种存储器设备(DRAM、SRAM、闪存和NVRAM)的人工神经网络操作系统中,意图通过最大化从用于人工神经网络操作的存储器读取数据的等待时间来最大化给定存储器的带宽。

本公开的目的是提供一种数据管理设备,该数据管理设备即使在至少一个处理器和存储器设备之间的任意位置处也能够支持高速的人工神经网络操作。

本公开的目的是当处理器在无论原因为何都没有完成人工神经网络操作的状态下停止时,使得在下一人工神经网络操作恢复时,与数据访问相关联的等待时间最小化。

本公开的目的是提供一种数据管理设备,该数据管理设备基于人工神经网络操作的类型和特征来预先预测下一人工神经网络操作所需的数据的存储地址,并预先响应于下一人工神经网络操作所需的数据请求。

通常,仅通过单个处理器和单个存储器设备之间的数据传输来执行计算或数据操作,但是由于最近的技术发展,正在使用基于共享处理器或共享存储器的计算或操作。此时,每个处理器或存储器中的本地缓存之间的缓存一致性正在成为一个重要问题。在诸如人工神经网络操作之类的数据密集型处理中,这种缓存一致性是一个更重要的问题。

本公开的一个目的不限于特定的人工神经网络,而是对应于各种人工神经网络的各种类型或特征,在人工神经网络的数据操作中提供至少一个处理器和至少一个存储器之间的高速缓存一致性。另外,本公开的目的是提出一种数据管理设备、数据管理方法和使用该方法的计算系统,其被配置为使得用于人工神经网络数据操作的配置不会降低除人工神经网络数据操作外的通用数据操作的性能。

本公开的一个目的是通过使用实现为应对通过各种类型的人工神经网络或动态可变形网络的多个组合来改善性能的尝试的设备来最小化在恢复人工神经网络操作时与数据访问相关联的等待时间

此外,本公开的一个目的是响应于人工神经网络的各种类型或特征来优化数据管理设备或数据缓存存储器,并且提出了一种数据管理设备和用于支持人工神经网络的方法,其能够提供人工神经网络数据操作,其中数据缓存存储针对运行时的人工神经网络操作进行了优化。

本公开的一个目的是提出一种基于可重新配置的存储器的数据管理设备和方法,该数据管理设备和方法能够通过优化数据高速缓冲存储器的与人工神经网络的类型或特性相对应的硬件设置来有效地支持人工神经网络操作。

解决问题的手段

本公开是作为解决现有技术的问题的手段而得出的,并且根据本公开的实施方案的数据管理设备包括:处理器接口电路,其用于接收与由至少一个处理器执行的人工神经网络操作相关联的人工神经网络数据操作请求;存储器接口电路,其用于将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;和内部控制器,其用于基于所述人工神经网络数据操作请求生成所述存储器数据操作请求。

所述内部控制器基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型,以及所述内部控制器生成数据和地址顺序信息,其是与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息,并且将所述数据和地址顺序信息存储在内部存储器中。

当接收到第一人工神经网络数据操作请求时,所述内部控制器基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述内部存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

所述识别信息可以包括关于所述人工神经网络数据操作请求是对于用于训练的输入数据的请求、对于分配给所述人工神经网络的每个突触的权重的请求、还是对于激活参数的请求,以及当前接收到的数据请求是否对应于所述人工神经网络数据操作请求的信息,所述激活参数是从所述人工神经网络的一层输出到下一层的输出节点的操作结果。

在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以基于在所述第一人工神经网络数据操作请求中包括的第一识别信息来预测预期将跟随所述第一人工神经网络数据操作请求的所述第二人工神经网络数据操作请求。

在没有先前的人工神经网络数据操作请求的状态下,在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以生成包括所述第一地址信息的第一存储器数据操作请求,并且将所述第一存储器数据操作请求传送至所述存储器接口电路。

在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以基于所述第一人工神经网络数据操作生成包括所述下一地址信息的第二存储器数据操作请求,并且向所述存储器接口电路传送所述第二存储器数据操作请求。

所述内部控制器或所述存储器接口电路中的至少一者可以将所述第二存储器数据操作请求发送到所述至少一个存储器,控制所述至少一个存储器使得所述至少一个存储器执行与所述第二存储器数据操作请求相对应的存储器操作,并且当所述第二存储器数据操作请求为读取操作时从所述至少一个存储器接收与所述第二存储器数据操作请求相对应的数据。

所述内部控制器或所述存储器接口电路中的至少一者可以将所述第二存储器数据操作请求发送到所述至少一个存储器,并且控制所述至少一个存储器,使得所述至少一个存储器保持能够执行与所述第二存储器数据操作请求相对应的存储器操作的就绪状态。

当从所述至少一个处理器实际接收到跟随所述第一人工神经网络数据操作请求的第三人工神经网络数据操作请求时,所述内部控制器可以检查将所述第三人工神经网络数据操作请求中的数据存储在所述至少一个存储器中所使用的第三地址信息是否与先前已在所述内部控制器中生成的所述下一地址信息一致。

在这种情况下,当所述第三地址信息与所述内部控制器中先前生成的下一地址信息不一致时,所述存储器接口电路可以将包括第三地址信息的第三存储器数据操作请求发送到所述至少一个存储器。并且所述内部控制器可以更新数据地址顺序信息,以使得所述第三人工神经网络数据操作请求的第三地址信息跟随第一人工神经网络数据操作请求的第一地址信息,并且可以将更新后的数据地址顺序信息存储在所述内部存储器中。

当使用存储在所述内部存储器中的数据和地址顺序信息时,所述内部控制器可以基于与所述人工神经网络操作相关联的所述人工神经网络的结构和特性信息、所述第一人工神经网络数据操作请求是读取请求还是写入请求、以及所述第一人工神经网络数据操作请求中包括的第一识别信息、以及在所述第一人工神经网络数据操作请求中包括的第一识别信息来确定用于生成所述下一地址信息的自适应顺序信息,并且所述内部控制器可以基于所述自适应顺序信息和存储在所述内部存储器中的所述数据-地址顺序信息来预测第二人工神经网络数据操作请求,并且生成所述下一地址信息。例如,当所述第一/第二人工神经网络数据操作请求与生成并存储激活参数的操作相关联时,可以以光栅扫描顺序生成所述下一地址信息。可替代地,当所述第一/第二人工神经网络数据操作请求与读取连接到下一层的节点的突触的权重的操作相关联时,可以根据权重核的形状来读取它。以这种方式,可以根据所述人工神经网络数据操作请求和相关的所述人工神经网络操作的类型,基于自适应顺序信息来生成下一地址信息。

基于在所述第一人工神经网络数据操作请求中包括的第一识别信息以及所述第一人工神经网络数据操作请求是读取请求还是写入请求,所述内部控制器可以使用存储在所述内部存储器中的所述数据和地址顺序信息生成作为所述第一地址信息的在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的当前地址的信息,即使在所述第一人工神经网络数据操作请求不包括地址的情况下也如此。

所述数据管理设备还可以包括:读取数据缓冲存储器,当所述第一人工神经网络数据操作请求是读取请求时,所述读取数据缓冲存储器对基于所述下一地址信息被预测为来自所述至少一个存储器的所述第二人工神经网络数据操作请求的数据执行预读操作,然后存储作为所述预读操作的结果的预读数据。

根据本公开的实施方案的计算系统是一种计算系统,其具有至少一个处理器和至少一个存储器,并且支持由所述至少一个处理器执行的人工神经网络操作,所述计算系统包括:处理器侧接口,其用于接收与由所述至少一个处理器执行的所述人工神经网络操作相关联的人工神经网络数据操作请求;存储器侧接口,其用于将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到所述至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;和数据顺序存储器,其用于存储数据和地址顺序信息。

所述计算系统基于所述人工神经网络数据操作请求生成所述存储器数据操作请求,所述计算系统基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型,所述计算系统生成与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息作为所述数据和地址顺序信息,并且,当所述处理器侧接口接收到第一人工神经网络数据操作请求时,所述计算系统基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述数据顺序存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

所述存储器侧接口可以将所述存储器数据操作请求发送到所述至少一个存储器或所述计算系统外部的至少一个外部存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器或所述至少一个外部存储器接收存储器数据。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种在计算系统中执行的数据管理方法,所述计算系统具有至少一个处理器和至少一个存储器,并且支持由所述至少一个处理器执行的人工神经网络操作,所述数据管理方法包括:接收与由所述至少一个处理器执行的所述人工神经网络操作相关联的人工神经网络数据操作请求;将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到所述至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;以及基于所述人工神经网络数据操作请求生成所述存储器数据操作请求。

所述基于所述人工神经网络数据操作请求生成所述存储器数据操作请求包括:基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型;生成关于与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息作为所述数据和地址顺序信息;将所述数据和地址顺序信息存储在所述计算系统内部的数据顺序存储器中;以及当接收到第一人工神经网络数据操作请求时,基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述数据顺序存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

根据本公开的实施方案的数据高速缓存设备是用于在至少一个处理器和至少一个存储器之间高速缓存数据的一种数据高速缓存设备,所述数据高速缓存设备是支持由所述至少一个处理器执行的人工神经网络操作的数据高速缓存设备,并且所述数据高速缓存设备可以包括:内部控制器,其基于所述人工神经网络操作的人工神经网络数据局部性(ANN数据局部性)来预测下一数据操作请求。

所述数据高速缓存设备的所述内部控制器可以与所述至少一个存储器通信以预先执行所述下一数据操作请求,并且所述数据高速缓存设备还包括:高速缓冲存储器,其用于存储由所述至少一个存储器执行的所述下一数据操作请求的结果数据。

所述数据高速缓存设备的所述内部控制器可以基于从所述至少一个处理器接收的当前数据操作请求和所述人工神经网络数据局部性来预测所述下一数据操作请求。

所述内部控制器可以通过监视在所述至少一个处理器和所述至少一个存储器之间实际做出的数据操作请求中的与所述人工神经网络操作相关联的数据操作请求来提取所述人工神经网络数据局部性。

当所述至少一个处理器将恢复数据操作请求发送到所述至少一个存储器以便在所述至少一个处理器和所述至少一个存储器之间的连续人工神经网络操作被停止之后恢复所述人工神经网络数据操作时,所述内部控制器可以基于被停止之前的所述连续人工神经网络操作和所述人工神经网络数据局部性,在接收到所述恢复数据操作请求之前,预测与所述恢复数据操作请求相对应的所述下一数据操作请求,并且,向所述至少一个处理器提供用于所述下一数据操作请求的数据操作而没有等待时间。

根据本公开的实施方案的数据管理设备是一种用于支持人工神经网络操作的数据管理设备,所述数据管理设备包括:至少一个处理器和可重新配置的存储器,其中,通过在所述至少一个处理器中执行的程序指令,所述至少一个处理器分析执行人工神经网络操作的过程,并且提取与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式,其中,通过所述程序指令,所述至少一个处理器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;其中,通过所述程序指令,所述至少一个处理器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

所述至少一个处理器可以基于所述人工神经网络操作的所述人工神经网络数据局部性(ANN数据局部性)来提取所述顺序模式。

所述至少一个处理器可以基于所述人工神经网络数据操作请求是对于用于训练的输入数据的请求、对于分配给所述人工神经网络的每个突触的权重的请求、还是对于激活参数的请求,以及当前接收到的数据请求是否对应于所述人工神经网络数据操作请求来提取所述顺序模式,所述激活参数是从所述人工神经网络的一层输出到下一层的输出节点的操作结果。

所述至少一个处理器可以基于与所述人工神经网络操作相关联的人工神经网络的结构和特性信息、所述顺序模式以及所述第一人工神经网络数据操作请求是读取请求还是写入请求来提取所述人工神经网络数据操作的运行时间顺序模式。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理设备包括:控制器和可重新配置的存储器,其中,通过在所述控制器中执行的程序指令,所述控制器接收基于执行所述人工神经网络操作的过程而获得的与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式,其中,通过所述程序指令,所述控制器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;其中,通过所述程序指令,所述控制器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

所述控制器可以基于所述可重新配置的存储器的物理配置信息和所述顺序模式来生成所述人工神经网络存储器配置信息。

所述控制器可以基于与所述人工神经网络操作相关联的人工神经网络的结构和特性信息、所述顺序模式以及所述第一人工神经网络数据操作请求是读取请求还是写入请求来提取所述人工神经网络数据操作的运行时间顺序模式。此外,当接收到所述人工神经网络操作时,所述控制器可以基于所述运行时间顺序模式而与所述可重新配置的存储器协作来提供所述人工神经网络数据操作作为对人工神经网络操作的响应。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种通过在包括至少一个处理器和可重新配置的存储器的数据管理设备的所述至少一个处理器中执行的程序指令执行的数据管理方法,所述数据管理方法包括:根据所述程序指令,通过所述至少一个处理器分析执行人工神经网络操作的过程,并且提取与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式;根据所述程序指令,通过所述至少一个处理器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;以及根据所述程序指令,通过所述至少一个处理器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种由在数据管理设备的控制器中执行的程序指令执行的数据管理方法,所述数据管理设备包括所述控制器和可重新配置的存储器并且支持人工神经网络操作,所述数据管理方法包括:根据所述程序指令,由所述控制器接收基于执行所述人工神经网络操作的过程而获得的与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式;根据所述程序指令,由所述控制器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;以及根据所述程序指令,由所述控制器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

本公开的效果

根据本公开,即使在使用现有处理器和现有存储器的情况下,在恢复已经中断的人工神经网络操作的情况下,在处理器从存储器读取数据时发生的等待时间可以被去除或最小化。。

根据本公开,可以使由处理器获得用于人工神经网络操作的数据的延迟时间和操作空闲时段最小化,并且可以使现有存储器的带宽最大化。

根据本公开,可以优化/最大化人工神经网络计算系统的整体操作性能。

根据本公开,提供了一种数据管理设备和方法,该数据管理设备和方法能够在至少一个处理器和至少一个存储器设备之间的任意位置处支持高速的人工神经网络操作。另外,可以提供其中执行这种数据管理方法的计算系统。

根据本公开,不受限于特定的人工神经网络,可以在至少一个处理器和至少一个存储器之间的人工神经网络数据操作中提供与各种人工神经网络的各种类型或特征相对应的高速缓存一致性。另外,可以提供数据管理设备、数据管理方法以及使用该方法的计算系统,其被配置为使得用于人工神经网络数据操作的配置不会降低除人工神经网络数据操作之外的一般数据操作的性能。

根据本公开,通过使用实现为应对通过各种类型的人工神经网络或动态可变形网络的多个组合来改善性能的尝试的设备来最小化在恢复人工神经网络操作时与数据访问相关联的等待时间。

根据本公开,可以响应于人工神经网络的各种类型或特征来优化数据管理设备或数据高速缓存存储器,并且可以提供人工神经网络数据操作,在该人工神经网络数据操作中,将数据高速缓冲存储器优化以用于运行时的人工神经网络操作。

根据本公开,可以提供一种可重新配置的存储器,其能够通过优化与人工神经网络的类型或特性相对应的数据高速缓冲存储器的硬件设置来有效地支持人工神经网络操作。

附图说明

图1是示出了一般人工神经网络的示例的结构和操作的图。

图2是根据本公开的实施方案示出用于支持高速人工神经网络操作的数据管理设备的图。

图3是根据本公开的另一实施方案示出用于支持高速人工神经网络操作的数据管理设备的图。

图4是根据本公开的又一实施方案示出在计算系统中执行用于支持人工神经网络操作的数据管理方法的情况的示图。

图5是根据本公开的实施方案示出经由数据管理设备执行的在处理器和存储器之间的数据操作的示例的图。

图6是根据本公开的实施方案示出经由数据管理设备执行的在处理器和存储器之间的数据操作的另一示例的图。

图7是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

图8是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

图9是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

图10是根据本公开的实施方案示出数据和地址顺序信息的图。

图11是根据本公开的实施方案示出数据和地址顺序信息的图。

图12是根据本公开的实施方案示出数据和地址顺序信息的图。

图13是根据本公开的多个实施方案示出表达通道信息/识别信息的方法的图。

图14是根据本公开的实施方案示出其中通道信息/识别信息与数据和地址顺序信息相关的情况的图。

图15是根据本公开的实施方案示出数据管理设备的图,该数据管理设备被自适应地重新配置以支持人工神经网络操作。

图16是根据本公开的实施方案示出被自适应地重新配置为支持人工神经网络操作的数据管理设备的图。

具体实施方式

本公开是作为解决现有技术的问题的手段而得出的,并且根据本公开的实施方案的数据管理设备包括:处理器接口电路,其用于接收与由至少一个处理器执行的人工神经网络操作相关联的人工神经网络数据操作请求;存储器接口电路,其用于将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;和内部控制器,其用于基于所述人工神经网络数据操作请求生成所述存储器数据操作请求。

所述内部控制器基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型,以及,所述内部控制器生成数据和地址顺序信息,其是与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息,并且将所述数据和地址顺序信息存储在内部存储器中。

当接收到第一人工神经网络数据操作请求时,所述内部控制器基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述内部存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

所述识别信息可以包括关于所述人工神经网络数据操作请求是对于用于训练的输入数据的请求、对于分配给所述人工神经网络的每个突触的权重的请求、还是对于激活参数的请求,以及当前接收到的数据请求是否对应于所述人工神经网络数据操作请求的信息,所述激活参数是从所述人工神经网络的一层输出到下一层的输出节点的操作结果。

在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以基于在所述第一人工神经网络数据操作请求中包括的第一识别信息来预测预期将跟随所述第一人工神经网络数据操作请求的所述第二人工神经网络数据操作请求。

在没有先前的人工神经网络数据操作请求的状态下,在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以生成包括所述第一地址信息的第一存储器数据操作请求,并且将所述第一存储器数据操作请求传送至所述存储器接口电路。

在接收到所述第一人工神经网络数据操作请求之后,所述内部控制器可以基于所述第一人工神经网络数据操作生成包括所述下一地址信息的第二存储器数据操作请求,并且向所述存储器接口电路传送所述第二存储器数据操作请求。

所述内部控制器或所述存储器接口电路中的至少一者可以将所述第二存储器数据操作请求发送到所述至少一个存储器,控制所述至少一个存储器使得所述至少一个存储器执行与所述第二存储器数据操作请求相对应的存储器操作,并且当所述第二存储器数据操作请求为读取操作时从所述至少一个存储器接收与所述第二存储器数据操作请求相对应的数据。

所述内部控制器或所述存储器接口电路中的至少一者可以将所述第二存储器数据操作请求发送到所述至少一个存储器,并且控制所述至少一个存储器,使得所述至少一个存储器保持能够执行与所述第二存储器数据操作请求相对应的存储器操作的就绪状态。

当从所述至少一个处理器实际接收到跟随所述第一人工神经网络数据操作请求的第三人工神经网络数据操作请求时,所述内部控制器可以检查将所述第三人工神经网络数据操作请求中的数据存储在所述至少一个存储器中所使用的第三地址信息是否与先前已在所述内部控制器中生成的所述下一地址信息一致。

在这种情况下,当所述第三地址信息与所述内部控制器中先前生成的下一地址信息不一致时,所述存储器接口电路可以将包括第三地址信息的第三存储器数据操作请求发送到所述至少一个存储器。并且所述内部控制器可以更新数据地址顺序信息,以使得所述第三人工神经网络数据操作请求的第三地址信息跟随第一人工神经网络数据操作请求的第一地址信息,并且可以将更新后的数据地址顺序信息存储在所述内部存储器中。

当使用存储在所述内部存储器中的数据和地址顺序信息时,所述内部控制器可以基于与所述人工神经网络操作相关联的所述人工神经网络的结构和特性信息、所述第一人工神经网络数据操作请求是读取请求还是写入请求、以及所述第一人工神经网络数据操作请求中包括的第一识别信息、以及在所述第一人工神经网络数据操作请求中包括的第一识别信息来确定用于生成所述下一地址信息的自适应顺序信息,并且所述内部控制器可以基于所述自适应顺序信息和存储在所述内部存储器中的所述数据-地址顺序信息来预测第二人工神经网络数据操作请求,并且生成所述下一地址信息。例如,当所述第一/第二人工神经网络数据操作请求与生成并存储激活参数的操作相关联时,可以以光栅扫描顺序生成所述下一地址信息。可替代地,当所述第一/第二人工神经网络数据操作请求与读取连接到下一层的节点的突触的权重的操作相关联时,可以根据权重核的形状来读取它。以这种方式,可以根据所述人工神经网络数据操作请求和相关的所述人工神经网络操作的类型,基于自适应顺序信息来生成下一地址信息。

基于在所述第一人工神经网络数据操作请求中包括的第一识别信息以及所述第一人工神经网络数据操作请求是读取请求还是写入请求,所述内部控制器可以使用存储在所述内部存储器中的所述数据和地址顺序信息生成作为所述第一地址信息的在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的当前地址的信息,即使在所述第一人工神经网络数据操作请求不包括地址的情况下也如此。

本公开的所述数据管理设备还可以包括:读取数据缓冲存储器,当所述第一人工神经网络数据操作请求是读取请求时,所述读取数据缓冲存储器对基于所述下一地址信息被预测为来自所述至少一个存储器的所述第二人工神经网络数据操作请求的数据执行预读操作,然后存储作为所述预读操作的结果的预读数据。

一种计算系统,其具有至少一个处理器和至少一个存储器,并且支持由所述至少一个处理器执行的人工神经网络操作,所述计算系统包括:处理器侧接口,其用于接收与由所述至少一个处理器执行的所述人工神经网络操作相关联的人工神经网络数据操作请求;存储器侧接口,其用于将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到所述至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;和数据顺序存储器,其用于存储数据和地址顺序信息。

所述计算系统基于所述人工神经网络数据操作请求生成所述存储器数据操作请求,所述计算系统基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型,所述计算系统生成与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息作为所述数据和地址顺序信息,并且,当所述处理器侧接口接收到第一人工神经网络数据操作请求时,所述计算系统基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述数据顺序存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

所述存储器侧接口可以将所述存储器数据操作请求发送到所述至少一个存储器或所述计算系统外部的至少一个外部存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器或所述至少一个外部存储器接收存储器数据。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种在计算系统中执行的数据管理方法,所述计算系统具有至少一个处理器和至少一个存储器,并且支持由所述至少一个处理器执行的人工神经网络操作,所述数据管理方法包括:接收与由所述至少一个处理器执行的所述人工神经网络操作相关联的人工神经网络数据操作请求;将基于所述人工神经网络数据操作请求的存储器数据操作请求发送到所述至少一个存储器,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;以及基于所述人工神经网络数据操作请求生成所述存储器数据操作请求。

所述基于所述人工神经网络数据操作请求生成所述存储器数据操作请求包括:基于所述人工神经网络数据操作请求中包含的识别信息,识别所述人工神经网络数据操作请求的域和类型;生成关于与所述识别信息相关联的所述人工神经网络数据操作请求的数据的顺序和以该顺序在所述至少一个存储器中存储所述人工神经网络数据操作请求的所述数据的地址的信息作为所述数据和地址顺序信息;将所述数据和地址顺序信息存储在所述计算系统内部的数据顺序存储器中;以及当接收到第一人工神经网络数据操作请求时,基于在所述至少一个存储器中存储所述第一人工神经网络数据操作请求的数据的第一地址的信息和存储在所述数据顺序存储器中的所述数据和地址顺序信息生成作为下一地址信息的在所述至少一个存储器中存储跟随所述第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

根据本公开的实施方案的数据高速缓存设备是用于在至少一个处理器和至少一个存储器之间高速缓存数据的一种数据高速缓存设备,所述数据高速缓存设备是支持由所述至少一个处理器执行的人工神经网络操作的数据高速缓存设备,并且所述数据高速缓存设备可以包括:内部控制器,其基于所述人工神经网络操作的人工神经网络数据局部性(ANN数据局部性)来预测下一数据操作请求。

所述数据高速缓存设备的所述内部控制器可以与所述至少一个存储器通信以预先执行所述下一数据操作请求,并且所述数据高速缓存设备还包括:高速缓冲存储器,其用于存储由所述至少一个存储器执行的所述下一数据操作请求的结果数据。

所述数据高速缓存设备的所述内部控制器可以基于从所述至少一个处理器接收的当前数据操作请求和所述人工神经网络数据局部性来预测所述下一数据操作请求。

所述内部控制器可以通过监视在所述至少一个处理器和所述至少一个存储器之间实际做出的数据操作请求中的与所述人工神经网络操作相关联的数据操作请求来提取所述人工神经网络数据局部性。

当所述至少一个处理器将恢复数据操作请求发送到所述至少一个存储器以便在所述至少一个处理器和所述至少一个存储器之间的连续人工神经网络操作被停止之后恢复所述人工神经网络数据操作时,所述内部控制器可以基于被停止之前的所述连续人工神经网络操作和所述人工神经网络数据局部性,在接收到所述恢复数据操作请求之前,预测与所述恢复数据操作请求相对应的所述下一数据操作请求,并且,向所述至少一个处理器提供用于所述下一数据操作请求的数据操作而没有等待时间。

根据本公开的实施方案的数据管理设备是一种用于支持人工神经网络操作的数据管理设备,所述数据管理设备包括:至少一个处理器和可重新配置的存储器,其中,通过在所述至少一个处理器中执行的程序指令,所述至少一个处理器分析执行人工神经网络操作的过程,并且提取与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式,其中,通过所述程序指令,所述至少一个处理器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;其中,通过所述程序指令,所述至少一个处理器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

所述至少一个处理器可以基于所述人工神经网络操作的所述人工神经网络数据局部性(ANN数据局部性)来提取所述顺序模式。

所述至少一个处理器可以基于所述人工神经网络数据操作请求是对于用于训练的输入数据的请求、对于分配给所述人工神经网络的每个突触的权重的请求、还是对于激活参数的请求,以及当前接收到的数据请求是否对应于所述人工神经网络数据操作请求来提取所述顺序模式,所述激活参数是从所述人工神经网络的一层输出到下一层的输出节点的操作结果。

所述至少一个处理器可以基于与所述人工神经网络操作相关联的人工神经网络的结构和特性信息、所述顺序模式以及所述第一人工神经网络数据操作请求是读取请求还是写入请求来提取所述人工神经网络数据操作的运行时间顺序模式。

根据本公开的一实施方案的一种用于支持人工神经网络操作的数据管理设备包括:控制器和可重新配置的存储器,其中,通过在所述控制器中执行的程序指令,所述控制器接收基于执行所述人工神经网络操作的过程而获得的与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式,其中,通过所述程序指令,所述控制器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;其中,通过所述程序指令,所述控制器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

所述控制器可以基于所述可重新配置的存储器的物理配置信息和所述顺序模式来生成所述人工神经网络存储器配置信息。

所述控制器可以基于与所述人工神经网络操作相关联的人工神经网络的结构和特性信息、所述顺序模式以及所述第一人工神经网络数据操作请求是读取请求还是写入请求来提取所述人工神经网络数据操作的运行时间顺序模式。此外,当接收到所述人工神经网络操作时,所述控制器可以基于所述运行时间顺序模式而与所述可重新配置的存储器协作来提供所述人工神经网络数据操作作为对人工神经网络操作的响应。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种通过在包括至少一个处理器和可重新配置的存储器的数据管理设备的所述至少一个处理器中执行的程序指令执行的数据管理方法,所述数据管理方法包括:根据所述程序指令,通过所述至少一个处理器分析执行人工神经网络操作的过程,并且提取与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式;根据所述程序指令,通过所述至少一个处理器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;以及根据所述程序指令,通过所述至少一个处理器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

根据本公开的实施方案的一种用于支持人工神经网络操作的数据管理方法是一种由在数据管理设备的控制器中执行的程序指令执行的数据管理方法,所述数据管理设备包括所述控制器和可重新配置的存储器并且支持人工神经网络操作,所述数据管理方法包括:根据所述程序指令,由所述控制器接收基于执行所述人工神经网络操作的过程而获得的与所述人工神经网络操作相关的人工神经网络数据操作的顺序模式;根据所述程序指令,由所述控制器基于所述人工神经网络数据操作的所述顺序模式,生成人工神经网络存储器配置信息;以及根据所述程序指令,由所述控制器控制所述可重新配置的存储器,以便将所述人工神经网络存储器配置信息应用于所述可重新配置的存储器。

具体实施方案

除了上述目的之外,通过参考附图对实施方案的描述,本公开的其他目的和特征将变得显而易见。

在此,将参考附图详细描述本公开的优选实施方案。在本公开的以下描述中,当本文中并入的已知功能和配置的详细描述可能使本公开的主题不清楚时,将其省略。

图1是示出了一般人工神经网络的示例的结构和操作的图。图1的人工神经网络的配置的一部分或全部对于本公开的具体实现方式而言可以被包括作为本公开的一部分。

此外,一种方法对于本公开的具体实现方式而言可以被包括作为本公开的一部分,在该方法中,处理器在与图1的人工神经网络相关联的数据操作过程中访问存储器。

参考图1,示出了包括隐藏层的卷积神经网络(CNN)的示例。多个输入值10被发送到多个输入节点11。相应的输入节点11的值被乘以相应的权重14,并被发送到下一层的节点。例如,可以标准化从输入节点11输出的值的加权总和并将其发送到隐藏层的隐藏节点12。通过多个隐藏层计算出的值被发送到最后一个隐藏层的隐藏节点16中。最后一个隐藏层的节点16的值乘以权重14并传输到输出节点13,输出节点13最终提供输出值15作为人工神经网络的最终结果。

在诸如图像中的模式分析、图像之间的比较以及音频/文本中的模式分析等各个领域,近年来快速发展的基于深度学习/CNN的人工神经网络技术导致性能优于现有的基于规则的模式识别技术。识别和检测人眼和耳朵难以区分的模式的人工神经网络技术预期将扩展到各个领域,例如安全、医学成像和无损检测。

当基于输入值10训练人工神经网络时,表示与相应的层的节点11、12、13、16对应的数据和相应的节点之间的关系的权重14通过在图1中未示出的对象函数进行更改。此时,在训练过程中,由处理器从存储器中读取权重14和与相应的层的节点11、12、13、16对应的数据,并且在存储器中将通过操作而改变的数据覆盖。

在人工神经网络的训练过程中需要的数据被分类为用于训练的输入数据、权重数据(相关参数)和激活参数(特征图)。用于训练的输入数据可以是图像、音频、振动数据等。例如,在图像的情况下,将像素值输入到人工神经网络作为图1的输入值10。输入值10在人工神经网络的训练过程中一次存储在存储器中,然后重复读取数十到数百次并用于训练过程中。输入值10按照它们最初存储在存储器中的顺序被读取数十到数百次。

权重数据是分配给人工神经网络的各个突触的权重值的组合。如图1的权重14所示,其是指示相应的节点之间的关系的相关参数。在人工神经网络的训练过程中,应从存储器中读取权重数据以从一层升级到下一层,并且在某些情况下,应修改权重数据,并且应在存储器中将修改后的权重数据覆盖。人工神经网络的训练过程通过读取一系列包含在人工神经网络模型中的学习数据片断和总权重数据而重复执行必要操作的过程,并由此生成修改后的权重值。对所有学习数据执行训练过程,并通过对一组学习数据进行数十次到数百次的重复操作来修改权重。在一系列学习数据的训练过程中覆盖权重值的顺序是在权重值的写入操作中最初存储权重值的顺序,而读取权重值的顺序是基于在写入操作中最初写入权重值的顺序或覆盖先前训练过程中修改权重值的顺序。

激活参数是计算结果数据,该计算结果数据从人工神经网络的一层输出到下一层的节点。为了计算相应层的下一层,读取相应层的特征图数据并计算下一层的值。如果这样的激活参数/特征图以创建它们的顺序被存储在存储器中并为下一层操作而读取,则将至少基于将它们存储在存储器中的顺序来确定读取顺序。在大多数情况下,激活参数/特征图是在一层中生成的,其作用在输入到下一层时就结束了。在图1中,当将节点11的值乘以权重14并传输至节点12时,通常在后续过程中很少使用节点11的值,可以看出其作用结束。但是,根据应用和目的,存在监视各个层的节点的值的变化的情况(在人工神经网络内部搜索操作的情况下)。在这种情况下,各个层的节点的值也存储在存储器中。

当终止人工神经网络的训练时,如果给出了新的输入值10,则人工神经网络会通过应用固定权重14来推断新的输入值10作为训练的结果并提供输出值15。

在人工神经网络的推理过程中,新的输入值10从存储器中读取,权重14也从存储器中顺序读取。与训练过程不同,由于权重14在推理过程中不改变,因此不需要权重14的覆盖过程。各个节点的激活参数通常在其相应层的操作之后结束其作用,并且此后很少使用。

各个节点的特征图数据通常在其相应层的操作之后结束其作用,但是最近,已经尝试分析人工神经网络内的动作。根据应用和目的,存在将各个节点的特征图数据存储在存储器中的情况。在这种情况下,可以根据处理器的请求将各个节点的特征图数据存储在存储器中。

在人工神经网络的推理过程中,由于权重值是固定的,因此不需要覆盖操作,并且按原样读取最初存储在存储器中的数据。此时,将基于写操作的顺序来确定读操作的顺序,或者可以通过部分地改变写操作的顺序来应用读操作的顺序,并且将写操作的顺序均等地应用于下一推理过程。

对于激活参数/特征图,数据由层生成并在推理过程中存储在存储器中,当其用作下一层的输入时,其在推理过程中的作用结束。在大多数情况下,以在推理过程中首先将数据片断存储在存储器中的顺序读取激活参数/特征图。

尽管在图1中主要示出了卷积神经网络,但本公开不限于卷积神经网络,并且可以应用于使用除卷积神经网络之外的任意人工神经网络(ANN)的情况。

上面提到的先前文件(例如,KR 10-2019-018888、US 2019/0057302、US 9,805,304、US 2019/0057300、US 9,836,691等)的公开内容如果对于实现是必要的,则可以作为本公开的配置的一部分包括在本公开的目的范围内。

图2是根据本公开的实施方案示出用于支持高速人工神经网络操作的数据管理设备210的图。

图2中所示的至少一个处理器260单独或与另一处理器协作执行人工神经网络操作,并从至少一个存储器270中读取与人工神经网络操作相关的数据,或在至少一个存储器270中存储与人工神经网络操作相关的数据。在这种情况下,对至少一个存储器270的读取或写入请求作为与人工神经网络操作相关联的数据将被称为人工神经网络数据操作请求。人工神经网络数据操作请求可以指由处理器260从存储器270请求的与人工神经网络操作相关联的数据,或者可以指需要由处理器260存储在存储器270中的数据。人工神经网络数据操作请求包括根据是进行读取请求还是写入请求而在数据字段或地址字段中的至少一者上的信息。

至少一个处理器260可以用能够执行人工神经网络计算的任何类型的处理器来实现。例如,其可以包括为人工神经网络计算定制的所有类型的处理器、以及通用CPU、专用于图形处理的GPU和专用于人工神经网络计算的神经网络处理器(NNP)。

本公开的数据管理设备210包括内部控制器220、处理器侧接口电路240和存储器侧接口电路250。

处理器侧接口电路240从至少一个处理器260接收人工神经网络数据操作请求。存储器侧接口电路250将基于人工神经网络数据操作请求的存储器数据操作请求发送到至少一个存储器270,并且从至少一个存储器270接收对应于该存储器数据操作请求的存储器数据。

内部控制器220基于人工神经网络数据操作请求生成存储器数据操作请求。

内部控制器220可以包括访问数据类型检测子模块,其基于包括在人工神经网络数据操作请求中的识别信息/通道信息来识别人工神经网络数据操作请求的域和类型。此时,可以基于识别信息/通道信息来区分人工神经网络数据操作请求的类型。人工神经网络数据操作请求的类型是指被指定为在存储器中请求的数据操作的对象的数据类型,并且可以对应于人工神经网络中的输入数据,权重数据或激活参数(特征图)中的任何一种。此外,根据操作请求是读取还是写入,将来的预测和响应可能会变化。

内部控制器220可以监视、跟踪或观察与识别信息/通道信息相关联的人工神经网络数据操作请求的数据顺序,以及以该顺序在至少一个存储器中存储人工神经网络数据操作请求的数据的地址的信息,并且在这种情况下,内部控制器220生成监视、跟踪和观察到的地址信息作为数据和地址顺序信息,并将该数据和地址顺序信息存储在作为内部存储器的存储器230内。

数据顺序存储器230是位于数据管理设备210内部的存储器,并且与位于数据管理设备210外部的至少一个存储器270区分开。数据顺序存储器230在图2中示出为位于内部控制器220的外部,但是根据另一实施方案,数据顺序存储器230可以位于内部控制器220的内部。

当接收到第一人工神经网络数据操作请求时,内部控制器220的下一读取/写入地址生成器子模块可以基于在至少一个存储器270中存储第一人工神经网络数据操作请求的数据的第一地址的信息和存储在作为内部存储器的数据顺序存储器230中的该数据和地址顺序信息生成在至少一个存储器270中存储跟随第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息作为下一信息。当接收到第N个人工神经网络数据操作请求时,内部控制器220可以基于在至少一个存储器270中存储第N个人工神经网络数据操作请求的数据的第N个地址的信息和存储在作为内部存储器的数据顺序存储器230中的该数据和地址顺序信息预测并生成在至少一个存储器270中存储跟随第N个人工神经网络数据操作请求的第(N+1)个人工神经网络数据操作请求的数据的第(N+1)个地址的信息。

当内部控制器220预测接下来要执行的第二人工神经网络数据操作请求并基于当前已接收到的第一人工神经网络数据操作请求生成下一地址信息时,内部控制器220可以参考在第一人工神经网络数据操作请求中包括的识别信息/通道信息。如上所述,内部控制器220监视、跟踪或观察与识别信息/通道信息相关联的人工神经网络数据操作请求的数据的顺序以及在至少一个存储器中的以该顺序存储人工神经网络数据操作请求的数据的地址的信息,并且此时,内部控制器220可以生成监视、跟踪或观察到的地址信息作为数据和地址顺序信息。内部控制器220可以基于作为监视、跟踪或观察的结果而获得的数据和地址顺序信息以及当前已收到的第一人工神经网络数据操作请求,预测接下来将要执行的第二人工神经网络数据操作请求并生成下一地址信息。

识别信息/通道信息可以包括关于人工神经网络数据操作请求是对于用于训练的输入数据的请求、对于分配给人工神经网络的每个突触的权重的请求、还是对于激活参数的请求,以及当前接收到的数据请求是否对应于人工神经网络数据操作请求的信息,所述激活参数是从人工神经网络的一层输出到下一层的输出节点的操作结果。

识别信息/通道信息可以由识别代码/通道代码表示。可以将由识别代码分类的人工神经网络数据的域分类为用于训练的输入数据、权重数据(关联参数)和激活参数(特征图)。

此外,识别代码可以通过将当前从处理器260接收到的数据操作请求不与人工神经网络操作相关联的情况指定为单独的状态值来指示数据操作请求是否是人工神经网络数据操作。

内部控制器220在接收到第一人工神经网络数据操作请求之后,可以基于包括在第一人工神经网络数据操作中的第一识别信息来预测预期跟随第一人工神经网络数据操作请求的第二人工神经网络数据操作请求。人工神经网络数据操作请求。即,内部控制器可以根据第一人工神经网络数据操作请求的类型来预测接下来要执行的第二人工神经网络数据操作请求。在这种情况下,对第二人工神经网络数据操作请求的预测可以包括对请求是用于读取还是写入的预测,并且可以包括对将要存储数据或已经存储数据的存储器的地址的预测。

当在处理器侧接口电路240从至少一个处理器260接收对人工神经网络操作所需的数据的写入请求并通过存储器侧接口电路250将其发送到至少一个存储器270之后而将写入请求的数据顺序存储在至少一个存储器270中时,可以首先生成(初始化)作为内部存储器的数据顺序存储器230中存储的数据和地址顺序信息。写入请求的数据顺序和按照该顺序在至少一个存储器270中存储写入请求的数据的地址的信息生成作为数据和地址顺序信息。最简单的示例可以是表,在该表中顺序描述写入请求的数据和与其对应的在至少一个存储器270中的地址。写入请求的数据可以被划分为诸如字节、字、扇区、页面和块之类的单元,并且与每个划分的单元相对应的在至少一个存储器270中的地址可以被顺序地存储在表中。作为内部存储器的数据顺序存储器230可以存储该表。

如果以这种方式将关于写入请求的数据的各个片断的地址信息存储在表中,则表的大小将过大,因此可以根据需要压缩表。即,写入请求的连续数据仅由起始地址和结束地址表示,并且可以将介于两者之间的数据视为依次存储在起始地址和结束地址之间。

当至少一个存储器270是例如闪存之类的非易失性存储器时,存储在数据顺序存储器230中的数据和地址顺序信息可以包括物理逻辑地址映射表或闪存转换层(FTL)的信息的至少一部分。当改变至少一个存储器270的配置时,至少一个存储器270将关于改变的配置的信息发送到数据管理设备210,并且数据管理设备210的内部控制器220可以基于关于改变的配置的信息更新数据和地址顺序信息,并将更新的数据和地址顺序信息存储在数据顺序存储器230中。

即使改变由至少一个处理器260识别的人工神经网络的配置,数据管理设备210的内部控制器220仍可以基于人工神经网络的更改后的配置数据来更新人工神经网络操作所需的数据和地址顺序信息。地址顺序信息可以更新。例如,在应用动态改变的人工神经网络技术的情况下,至少一个处理器260开始人工神经网络操作,假设人工神经网络具有100个隐藏层,但是可以改变策略以仅使用70个隐藏层执行人工神经网络操作。在这种情况下,至少一个处理器260可以将人工神经网络的动态改变的配置发送到数据管理设备210。但是,通常,至少一个处理器260可以将人工神经网络数据操作请求发送到数据管理设备210,而不通知人工神经网络的动态改变的配置。在这种情况下,数据管理设备210可以在从至少一个处理器260接收到的人工神经网络数据操作请求顺序地访问的情况下通过监视至少一个存储器270中的地址的信息来计算出人工神经网络的配置已经改变。即使当至少一个处理器260通知或不通知人工神经网络的动态改变的配置时,数据管理设备210的内部控制器220也可以检测人工神经网络的配置的改变,并更新存储在数据顺序存储器230中的数据和地址顺序信息。

在处理与人工神经网络操作相关联的数据写入请求的过程中,首先生成(初始化)数据和地址顺序信息,并且在至少一个处理器260请求读取存储在至少一个存储器270中的数据的过程中,数据管理设备210中的内部控制器220可用于预测下一人工神经网络数据操作请求的数据及其地址。

例如,图像数据可以用作训练人工神经网络所需的输入数据。图像数据可以表示为亮度值与每个像素的颜色。在进行写入请求时,各个像素的信息的片断被顺序存储在至少一个存储器270中,并且在读取请求时以与写入请求的顺序相同的顺序被从至少一个存储器270调用的可能性很高。另外,当进行写入请求时,每一层的特征图或激活参数也被顺序地存储在至少一个存储器270中,并且即使当进行读取请求时,它们以与写入请求的顺序相同的顺序被从至少一个存储器270中调用的可能性也很高。

同时,即使在图1的人工神经网络中显示的权重14数据的情况下,当进行读取请求时,可以使用在写入请求时生成的数据和地址顺序信息。然而,当进行写入请求时权重14数据的顺序可能与当进行读取请求时权重14数据的顺序不同。由于存在以下可能性:当进行写入请求时,权重14数据可以按照前一层的节点顺序存储,而当进行读取请求时,权重14数据可以按下一层的节点的顺序调用,因此在数据管理设备210内部的内部控制器220可以通过识别人工神经网络数据操作请求的类型和特征来预测下一数据操作请求。即使在这种情况下,内部控制器220也可以基于先前已经存储在数据顺序存储器230中的数据和地址顺序信息来预测下一数据操作请求。内部控制器220可以通过使用包括在人工神经网络数据操作请求中的识别代码/通道代码来区分相应的人工神经网络数据操作请求是否为读取/写入、训练过程/推理过程等,并根据人工神经网络数据操作请求的区分的类型和特征,基于数据和地址顺序信息来预测下一数据操作请求。

同时,对于在进行写入请求和进行读取请求时具有不同调用顺序的数据,例如权重14数据,可以考虑影响从至少一个存储器270中存储的时间开始的顺序的因素来分配至少一个存储器270内的地址。例如,在至少一个存储器270中的地址的至少一部分可以通过组合与权重相关联的上一层的节点的顺序和下一层的节点的顺序来生成。在这种情况下,内部控制器220可以通过假设分别在进行写入请求时和进行读取请求时的顺序来生成和管理单独的数据和地址顺序信息。

内部控制器220在没有先前的人工神经网络数据操作请求的状态下接收第一人工神经网络数据操作请求,然后,可以生成包括第一人工神经网络数据操作请求的第一地址信息的第一存储器数据操作请求,并且将第一存储器数据操作请求发送到存储器侧接口电路250。即,当在没有先前存储的数据的情况下发起与人工神经网络操作相关联的写入请求时,数据管理设备210可以将每个写入请求(包括数据和地址)发送到至少一个存储器270。这时,首先将写入请求的数据和地址之间的映射信息生成(初始化)为数据和地址顺序信息,并且首先生成的(初始化的)数据和地址顺序信息被存储在数据顺序存储器230中。

内部控制器220在接收到第一人工神经网络数据操作请求之后,可基于第一人工神经网络数据操作生成包括下一地址信息的第二存储器数据操作请求,并将第二存储器数据操作请求发送到存储器接口电路。即,在首先通过写入请求生成(初始化)数据和地址顺序信息的状态下,当接收到与针对所存储的数据的人工神经网络操作相关联的读取请求或覆盖请求时,内部控制器220可以根据当前基于数据和地址顺序信息已经接收到的第一人工神经网络数据操作请求,甚至在接收到下一个第二人工神经网络数据操作请求之前预测第二人工神经网络数据操作请求。如上所述,可以使用如下特征来实现这种预测:人工神经网络数据操作通常是数据密集型操作并且使用特定规则访问下一数据。

在内部控制器220基于人工神经网络操作从至少一个处理器260接收顺序人工神经网络数据操作请求的状态下,如果下一人工神经网络数据操作请求因各种原因而延迟或未接收到,则内部控制器220可以基于到目前为止已经接收到的人工神经网络数据操作请求来预测下一人工神经网络数据操作请求,并将其所需的动作发送到至少一个存储器270。此时,由内部控制器220预测的下一人工神经网络数据操作请求被发送到至少一个存储器270,并且内部控制器220可以选择数据和地址并将其发送到至少一个存储器270。至少一个存储器270可以根据由内部控制器220预测的下一人工神经网络数据操作请求,保持准备就绪状态以执行存储器操作,或者可以通过执行存储器操作来输出数据。如果在与人工神经网络操作请求相关联地进行顺序读取请求时未接收到下一读取请求,则将由内部控制器220预测的下一读取请求发送到至少一个存储器270,并且至少一个存储器270甚至可以在下一读取请求从处理器260到达数据管理设备210之前,基于下一读取请求执行存储器操作,并读取下一读取请求的数据并将其提前提供给数据管理设备270。此后,当处理器260恢复操作或去除延迟读取请求的障碍,因此数据管理设备270接收到来自处理器260的下一读取请求时,数据管理设备210可以迅速发送预先从存储器270提供的下一读取请求的数据给处理器260,而没有等待时间或损失。

也就是说,如果来自处理器260的读取请求停止的时间长于正常延迟时间,则存储器270很有可能进入另一个存储器操作。因此,在现有技术中,当稍后从处理器260发送下一读取请求时,存储器270需要从其开始重新执行准备操作,以便在读取请求停止并恢复之后执行下一读取请求。在此过程中产生的延迟或损失可能是降低人工神经网络数据操作速度的一个因素。当来自处理器260的读取请求在停止之后被恢复时,根据本公开的数据管理设备210可以将预先准备的下一读取请求的数据迅速地提供给处理器260,从而它可以使由处理器260识别的等待时间或损失为零或最小化该等待时间或损失。虽然数据管理设备210将预先提供的下一读取请求的数据发送到处理器260,但是它可以将顺序读取请求发送到存储器270,使得存储器270可以响应于跟随下一读取请求的顺序读取请求。因此,存储器270可以执行后续的存储器操作而没有等待时间或损失。当接收到第一人工神经网络数据操作请求(A)时,内部控制器220不仅将其发送到存储器270,以使得第一人工神经网络数据操作(A)无中断地执行,而且还可以预测跟随第一人工神经网络数据操作(A)的第二人工神经网络数据操作请求(B'),将预测的第二人工神经网络数据操作请求(B')传输到存储器270,然后提前从存储器270接收第二人工神经网络数据操作请求(B')的结果数据。

此后,当从处理器260接收到实际上跟随第一人工神经网络数据操作请求(A)的第三人工神经网络数据操作请求(B)时,如果第三人工神经网络数据操作请求(B)和预测的第二人工神经网络数据操作请求(B')彼此相同,则,数据管理设备210将先前从存储器270接收的第二人工神经网络数据操作请求(B')的结果数据发送到处理器260,从而可以使等待时间或损失最小化。内部控制器220可以基于实际接收到的第三人工神经网络数据操作请求(B)来预测接下来要跟随的第四人工神经网络数据操作请求(C'),发送第四人工神经网络数据操作请求(C')到存储器270,然后预先从存储器270接收第四人工神经网络数据操作请求(C')的结果数据。

即使在第一人工神经网络数据操作请求(A)之后停止或延迟与人工神经网络操作请求相关联的数据请求,并且在经过一段较长的时间之后恢复了第三人工神经网络数据操作请求(B),根据本公开的数据管理设备210可以将预先准备的第二人工神经网络数据操作请求B'的结果数据发送到处理器260,从而使等待时间或损失最小化。另外,内部控制器220可以基于实际接收到的第三人工神经网络数据操作请求(B)来预测要跟随的第四人工神经网络数据操作请求(C'),发送第四人工神经网络数据操作请求(C')到存储器270,然后预先从存储器270接收第四人工神经网络数据操作请求(C')的结果数据,从而可以控制存储器270以迅速执行下一个数据操作。这使得能迅速进行恢复的数据操作而不会造成等待时间或损失。

当内部控制器220的检查合法访问子模块实际上从至少一个处理器260接收到跟随第一人工神经网络数据操作请求(A)的第三人工神经网络数据操作请求(B)时,其可以检查人工神经网络数据操作请求(B)的数据存储在至少一个存储器270中所使用的第三地址信息是否与先前在内部控制器220中被生成/预测为下一地址信息的第二人工神经网络数据操作请求(B')的地址信息相一致。

此时,如果第三地址信息与先前在内部控制器220中被生成/预测为下一地址信息的第二人工神经网络数据操作请求(B')的地址信息不一致,则存储器侧接口电路250可以将包括第三地址信息的第三存储器数据操作请求(B)发送到至少一个存储器270,并且内部控制器220可以更新数据和地址顺序信息,使得第三人工神经网络数据操作请求B的第三地址信息接下来跟随第一人工神经网络数据操作请求(A)的第一地址信息,并且将更新后的数据和地址顺序信息存储在作为内部存储器的数据顺序存储器230中。

以这种方式,当处理器260以意外的顺序执行读取访问时,由于数据管理设备210不能提前准备第三人工神经网络数据操作请求(B)的数据,因此存储器270的操作被视为单次读取访问,使得物理上避免延迟损失是不可行的。换句话说,如果预测是错误的,则等待时间损失发生一次。在将更新的数据和地址顺序信息存储在数据顺序存储器230中之后,当处理器260以相同的模式执行读取访问时,可以跟随第一人工神经网络数据操作请求A的下一个数据操作准确地预测为第三人工神经网络数据操作请求(B),从而可以将损失最小化。

如果内部控制器220对下一个地址的预测不正确,则可能存在实际的操作错误,但是由于网络结构,存在处理器260跳到另一个节点的情况。例如,可能存在处理器260删除/省略人工神经网络的层的一部分或节点的一部分的情况。如果如上所述使人工神经网络自适应地变形,则在第一时间不能避免物理等待时间损失,但是该过程作为更新的数据和地址顺序信息被存储在数据顺序存储器230中,并且此后,根据改变的配置,可以预先准备接下来的数据,而不会造成任何等待时间损失。

此外,在根据人工神经网络操作的写入请求初始化数据和地址顺序信息的状态下,即使以与写入请求不同的顺序进行读取请求,内部控制器220的对下一个地址的预测最初也可能是错误的。然而,内部控制器220可以分别在写入请求时生成数据和地址顺序信息和在读取请求时生成数据和地址顺序信息,并将它们存储在数据顺序存储器230中,从而预先准备下一个数据,而没有等待时间损失。

如果第三地址信息与先前在内部控制器220中被生成/预测为下一地址信息的第二人工神经网络数据操作请求(B')的地址信息不一致,则内部控制器220可以比较第三人工神经网络数据操作请求(B)和第一人工神经网络数据操作请求(A)的通道代码/识别代码是否和与先前存储的数据和地址顺序信息相关联的通道代码/识别代码相同。此时,如果基于第二人工神经网络数据操作请求(B')的先前通道代码/识别代码与当前第三人工神经网络数据操作请求(B)和第一人工神经网络数据操作请求(A)的通道代码/识别代码彼此相同,则可以认为是以下情况:数据和地址顺序信息本身的操作有错误或处理器260动态更改人工神经网络,以便更新现有数据和地址顺序信息。如果基于第二人工神经网络数据操作请求(B')的先前通道代码/识别代码与当前第三人工神经网络数据操作请求(B)和第一人工神经网络数据操作请求(A)的通道代码/识别代码彼此不同,则可以将其解释为以下情况:根据人工神经网络操作的类型不同地应用数据和地址顺序信息,因此可能会生成新的数据和地址顺序信息,并且可以将当前第三人工神经网络数据操作请求(B)和第一人工神经网络数据操作请求(A)的通道代码/识别代码作为与新的数据和地址顺序信息相关联的信息存储在数据顺序存储器230中。

例如,在写入请求的情况下,数据以第一类型的顺序被写入,但是在读取请求的情况下,数据可以以第二类型的顺序被读取。在训练过程中,写入请求的顺序和读取请求的顺序可以彼此相同,但是在推理过程中,写入请求的顺序和读取请求的顺序可以彼此不同,反之亦然(在推理过程中,写入请求的顺序和读取请求的顺序彼此相同,而在训练过程中写入请求的顺序和读取请求的顺序彼此不同)。同样,根据数据域,在写入请求的情况下和在读取请求的情况下,输入数据具有相同的顺序,但是权重数据或激活参数根据情况可以具有不同的访问数据顺序,因此数据和地址顺序信息可以与通道代码/识别代码相关联地生成,并且可以被存储在数据顺序存储器230中。为方便起见,基于包括通道代码/识别代码的环境/状态信息自适应地调整的数据和地址顺序信息将被表示为自适应顺序信息。

当内部控制器220使用存储在作为内部存储器的数据顺序存储器230中的数据和地址顺序信息时,其可以确定:自适应顺序信息,该自适应顺序信息用于基于与人工神经网络操作相关联的人工神经网络的结构和特性信息来生成下一地址信息;第一人工神经网络数据操作请求是读取请求还是写入请求;以及包括在第一人工神经网络数据操作请求中的第一识别信息。

基于自适应顺序信息以及存储在作为内部存储器的数据顺序存储器230中的数据和地址顺序信息,可以预测第二人工神经网络数据操作请求并且可以生成下一地址信息。例如,当第一/第二人工神经网络数据操作请求与生成并存储激活参数的操作相关联时,可以以光栅扫描顺序生成下一地址信息。替代地,当第一/第二人工神经网络数据操作请求与读取连接到下一层的节点的突触的权重的操作相关联时,可以根据权重核的形状来读取它。以这种方式,可以根据人工神经网络数据操作请求的类型和相关联的关联人工神经网络操作,基于自适应顺序信息来生成下一地址信息。替代地,当生成和存储激活参数时,它们以光栅扫描顺序被存储,并且当从下一层读取激活参数时,它们可以基于权重核的形状按顺序被读取。在本公开中,即使当读取顺序和写入顺序不同时,也可以通过稍微添加用于校正访问地址的公式来预测读取顺序。因此,即使在这种情况下,仍然有可能最大化存储带宽并最小化或消除等待时间。

内部控制器220可以基于所述第一人工神经网络数据操作请求中包括的第一识别信息以及所述第一人工神经网络数据操作请求是读取请求还是写入请求,使用存储在所述内部存储器中的数据和地址顺序信息来生成在所述至少一个存储器中存储第一人工神经网络数据操作请求的数据的当前地址的信息作为第一地址信息,甚至所述第一人工神经网络数据操作请求不包括地址时也如此。在数据操作具有相同的通道代码/识别代码的情况下,可以按原样应用先前存储的数据和地址顺序信息。在人工神经网络的训练过程中,在将数据最初存储在存储器270中之后,可以在训练过程中的连续操作期间在相同的地址中覆盖权重值。在这种情况下,即使在进行覆盖时处理器260没有指定存储器270的地址值,数据管理设备210也可以识别该地址值,从而可以进行数据操作。同样,在训练/推理过程中将数据存储在存储器270中之后,在训练/推理过程中的连续操作期间,可以在相同地址中覆盖特征图/激活参数。因此,当使用根据本公开的数据管理设备210时,处理器260可以将数据操作发送到数据管理设备210,而无需为相同种类的数据操作中的数据操作指定地址。此时,为了清楚地通知相同类型的连续数据操作的结束,可以通过处理器260将指示相同种类的数据操作中的最后数据操作的结束的信息包括在数据操作请求中。对于相同种类的数据操作,如果在没有地址信息的情况下发送数据操作之后,在有地址信息的情况下发送数据操作,则该数据操作可以用作通知该数据操作是最后一个数据操作请求或者最后一个数据操作请求即将到来的角色。替代地,可以以使得数据管理设备210本身可以确定相同种类的数据操作的结束这样的方式与数据管理设备210共享关于人工神经网络的结构的信息。

包含在图2的内部控制器220中的子模块(访问数据类型检测、下一个读取/写入地址生成器、检查合法访问)以示例的方式示出,并且本公开的精神限于该实施方案。包括在图2的内部控制器220中的子模块(访问数据类型检测,下一个读取/写入地址生成器,检查合法访问)出于说明主要功能的目的而示出,并且可以利用硬件而在内部控制器220内实现,或者可以实现为使得内部控制器220可以通过软件来执行相应的功能。

图3是示出根据本公开的另一实施方案的用于支持高速人工神经网络操作的数据管理设备310的图。

参考图3,至少一个处理器360经由处理器侧接口电路340向数据管理设备310发送数据操作请求,并且数据管理设备310经由存储器侧接口电路350向至少一个存储器370发送存储器数据操作,这与图2的那些相同,并且数据管理设备310包括内部控制器320和数据顺序存储器330,这与图2的相同。因此,省略了多余的描述。

本公开的数据管理设备310可以进一步包括读取数据缓冲存储器,当第一人工神经网络数据操作请求是读取请求时,该读取数据缓冲存储器基于下一地址信息对被预测为来自至少一个存储器370的第二人工神经网络数据操作请求的数据执行预读操作,然后存储作为预读操作的结果的预读数据。

内部控制器320或存储器侧接口电路340中的至少一个可以将第二存储器数据操作请求发送到至少一个存储器370,可以控制至少一个存储器370,使得至少一个存储器370执行与第二存储器数据操作请求相对应的存储器操作,并且可以在第二存储器数据操作请求为读取操作时从至少一个存储器370接收与第二存储器数据操作请求相对应的数据。

当在第一人工神经网络数据操作请求(A)之后未接收到下一人工神经网络数据操作请求或延迟了下一人工神经网络数据操作请求时,内部控制器320可以根据第一人工神经网络数据操作请求(A)预测第二人工神经网络数据操作请求(B'),数据管理设备310可以将第二人工神经网络数据操作请求(B')发送到存储器370,并且从存储器370接收第二人工神经网络数据操作请求(B')。将从存储器370接收的第二人工神经网络数据操作请求(B')的读取数据存储在读取数据缓冲存储器380中,此后,从处理器360接收作为实际的下一数据操作请求的第三人工神经网络数据操作请求(B)。当第三人工神经网络数据操作请求(B)和第二人工神经网络数据操作请求(B')彼此相同时,可以响应于第三人工神经网络数据操作请求(B)将通过预读操作而存储在数据缓冲存储器380中的第二人工神经网络数据操作请求(B')的读取数据提供给处理器360。

内部控制器320或存储器侧接口电路340中的至少一个可以将第二存储器数据操作请求发送到至少一个存储器370,并且控制至少一个存储器370,使得至少一个存储器370保持准备状态以执行与第二存储器数据操作请求相对应的存储器操作。例如,假设在第一连续写入操作中,存储器370中的区域被分配式地配置,使得连续的写入数据块(pieces)被分配并且存储在存储器370中的多个区域中,并且连续地接收用于分配式存储的数据的相同种类的覆盖请求。在这种情况下,由于必须在连续的写操作期间通过分配存储器370的空间来存储写入数据,所以处理器360的写入请求与存储器370的实际存储操作之间的时间差可能会出现。在这种情况下,数据管理设备310可以进一步包括写入数据缓冲存储器390。写入数据缓冲存储器390可以存储连续的写入请求和从处理器360发送的写入数据,并且将写入数据发送到存储器370,从而将由处理器360识别的等待时间损失最小化或减小到零。另外,可以预测接下来要基于当前已经接收到的第一人工神经网络数据操作请求(A)来跟随的第二人工神经网络数据操作请求(B'),并且可以将第二人工神经网络数据操作请求(B')发送到存储器370,从而可以以使得存储器370准备好处理第二人工神经网络数据操作请求B'的方式来控制存储器370。此时,在存储器370尚未准备好处理第二人工神经网络数据操作请求(B')的状态下,当从处理器360接收到与第二人工神经网络数据操作请求(B')相同的第三人工神经网络数据操作请求(B)时,写入数据缓冲存储器390可以临时存储第三人工神经网络数据操作请求(B),同时当处理第三人工神经网络数据操作请求(B)的存储器370的准备已完成时,则写入数据缓冲存储器390可以将第三人工神经网络数据操作请求(B)发送到存储器370。

当已经存储在写入数据缓冲存储器390中的写入数据被存储在存储器370中时,内部控制器320可以从写入数据缓冲存储器390中擦除写入数据。内部控制器320可以在写入数据缓冲存储器390中出现空闲空间的情况下将下一个写入操作和从处理器360接收的写入数据存储在写入数据缓冲存储器390中,并且可以直接发送下一个写入操作和从处理器360接收的写入数据,而无需通过写入数据缓冲存储器390。

内部控制器320可以监视写入数据缓冲存储器390中的空闲空间的比例。当空闲空间的比例等于或大于阈值时,内部控制器320可以通过中断来通知处理器360:写入数据缓冲存储器390中的空闲空间的比例等于或大于阈值;或者可以执行调整,以便处理器360可以检查写入数据缓冲存储器390中的空闲空间的比例。

图4是根据本公开的又一实施方案示出在计算系统400中执行用于支持人工神经网络操作的数据管理方法的情况的图。

根据图4中所示的本公开的实施方案的用于支持人工神经网络操作的计算系统400是具有至少一个处理器和至少一个存储器并且支持由至少一个处理器执行的人工神经网络操作的计算系统。计算系统400包括:处理器侧接口,其用于接收与由至少一个处理器执行的人工神经网络操作相关联的人工神经网络数据操作请求;存储器侧接口,其用于基于所述人工神经网络数据操作请求向所述至少一个存储器发送存储器数据操作请求,并且响应于所述存储器数据操作请求从所述至少一个存储器接收存储器数据;以及数据顺序存储器,其用于存储数据和地址顺序信息。

图4中所示的处理器是能够单独或协同执行人工神经网络操作的处理器。另外,尽管在图4中未示出,但是计算系统400外部的处理器可以用于执行人工神经网络操作。

图4中示出的存储器可以包括计算系统400的内部存储器和外部存储器中的至少一个。内部存储器或外部存储器可以包括各种传统的存储器设备。例如,可以包括SRAM、DRAM、E2PROM、闪存或NVRAM(非易失性RAM)作为计算系统400的内部存储器或外部存储器。

图4的计算系统400可以包括连接到外部存储器的外部存储器接口。外部存储器接口可以将存储器数据操作请求发送到计算系统400外部的至少一个外部存储器,并且响应于存储器数据操作请求从至少一个外部存储器接收存储器数据。

在图2或3的数据管理设备210或310中示出的配置和功能可以以计算系统400内的独立数据管理设备411的形式来实现,或者可以将其分配并且布置在计算系统400内的各种元件中。可将图2或图3中的数据管理设备210或310中示出的配置和功能分配和布置在计算系统400内的存储器的单元与人工神经网络处理器之间存在的数据的移动路径中的任何位置。

在本公开的一实施方案中,图4的计算系统400包括:连接到系统总线的独立数据管理设备411。在这种情况下,独立数据管理设备411可以执行与图2或3的数据管理设备210或310相同的功能。在本公开的修改的实施方案中,独立数据管理设备411包括图2或3的数据管理设备210或310中所示的一些配置和功能。图2或3的数据管理设备210或310的其余配置和功能可以分散地包括在嵌入在系统总线架构中的数据管理设备412、配置作为人工神经网络处理器侧接口的数据管理设备413、嵌入在内部存储器的存储器接口与系统总线之间的包装块中的数据管理设备414中、嵌入在内部存储器的存储器接口中的数据管理设备(未显示)、嵌入在内部存储器中的数据管理设备415、嵌入在与外部存储器相对应的存储器接口中的数据管理设备(未示出)、嵌入在外部存储器的存储器接口与系统总线之间的包装块中的数据管理设备416和/或嵌入在外部存储器中的数据管理设备417中。

本公开的另一个实施方案中,图4的计算系统400可以通过除了独立数据管理设备411之外的被布置在其余位置处的数据管理设备413、414、415、416和417实现图2或图3中的数据管理设备210或310中所示的配置和功能。图2或图3中的数据管理设备210或310中所示的配置和功能可以分散地包括在嵌入在系统总线架构中的数据管理设备412、配置作为人工神经网络处理器侧接口的数据管理设备413、嵌入在内部存储器的存储器接口与系统总线之间的包装块中的数据管理设备414中、嵌入在内部存储器的存储器接口中的数据管理设备(未显示)、嵌入在内部存储器中的数据管理设备415、嵌入在与外部存储器相对应的存储器接口中的数据管理设备(未示出)、嵌入在外部存储器的存储器接口与系统总线之间的包装块中的数据管理设备416和/或嵌入在外部存储器中的数据管理设备417中。

图4的计算系统400可以由分散地包括在以下设备中的部件执行与图2或图3的数据管理设备210或310相同的功能:独立数据管理设备411中的组件、嵌入在系统总线架构中的数据管理设备412、配置作为人工神经网络处理器侧接口的数据管理设备413、嵌入在内部存储器的存储器接口与系统总线之间的包装块中的数据管理设备414中、嵌入在内部存储器的存储器接口中的数据管理设备(未显示)、嵌入在内部存储器中的数据管理设备415、嵌入在与外部存储器相对应的存储器接口中的数据管理设备(未示出)、嵌入在外部存储器的存储器接口与系统总线之间的包装块中的数据管理设备416和/或嵌入在外部存储器中的数据管理设备417。然而,由于计算系统400包括在其内的存储器和处理器,因此其与图2或图3的数据管理设备210或310不同,不同之处在于,可以经由计算系统400中的系统总线来执行处理器、数据管理设备411至417和存储器之间的数据操作。

计算系统400可以基于人工神经网络数据操作请求来生成存储器数据操作请求,可以基于在人工神经网络数据操作请求中包括的识别信息来识别人工神经网络数据操作请求的域和类型,可以生成作为数据和地址顺序信息的与识别信息相关联的人工神经网络数据操作请求的数据的顺序以及在至少一个存储器中的以该顺序存储人工神经网络数据操作请求的数据的地址的信息,以及当处理器侧接口接收到第一人工神经网络数据操作请求时,可以基于在至少一个存储器中存储第一人工神经网络数据操作请求的数据的第一地址的信息和存储在数据顺序存储器中的数据和地址顺序信息生成作为下一地址信息的在至少一个存储器中存储跟随第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

分散地布置在计算系统400中的数据管理设备411至417中的至少一个可以将第二存储器数据操作请求发送到至少一个存储器,可以控制至少一个存储器,使得至少一个存储器执行与第二存储器数据操作请求相对应的存储器操作,并且当第二存储器数据操作请求为读取操作时,可以从至少一个存储器接收与第二存储器数据操作请求相对应的数据。另外,根据本公开的另一实施方案的数据管理设备(未示出)可以分散地布置在接口、存储器、总线架构以及在人工神经网络处理器中的缓冲器或高速缓冲存储器块中。

分散地布置在计算系统400中的数据管理设备411至417中的至少一个可以将第二存储器数据操作请求发送到至少一个存储器,并且可以控制至少一个存储器,使得至少一个存储器保持能够执行与第二存储器数据操作请求相对应的存储器操作的就绪状态。

分散地布置在计算系统400中的数据管理设备411至417中的至少一个可以包括模块,该模块接收第一人工神经网络数据操作请求,然后基于第一人工神经网络数据操作请求中包含的第一识别信息预测预期跟随第一人工神经网络数据操作请求的第二人工神经网络数据操作请求。

分散地布置在计算系统400中的数据管理设备411至417中的至少一个可以包括模块,该模块在接收到第一人工神经网络数据操作请求之后,基于第一人工神经网络数据操作,生成包括下一地址信息的第二存储器数据操作请求,并通过存储器侧接口将第二存储器数据操作请求发送到至少一个存储器。

分散地布置在计算系统400中的数据管理设备411至417中的至少一个还可以包括读取数据缓冲存储器(未示出),该读取数据缓冲存储器在第一人工神经网络数据操作请求是读取请求时对基于下一地址信息预测为来自至少一个存储器的第二人工神经网络数据操作请求的数据执行预读操作,然后存储作为预读操作的结果的预读数据。

如上所述,在相同种类的连续数据操作请求中(例如,当相同域的数据被覆盖时),从计算系统400内部或外部的处理器发送的数据操作请求中可以省略地址信息。在这种情况下,分散地布置在计算系统400中的数据管理设备411至417中的至少一个可以生成关于相同种类的连续数据操作请求的地址信息,并将其发送到存储器。另外,处理器内部的与缓冲存储器有关的块、系统总线、存储器接口和存储器的内部中的至少一者可以生成关于相同种类的连续数据操作请求的地址信息。生成地址信息的子模块可以以硬件块或嵌入了软件的块的形式实现。

图5是根据本公开的实施方案示出经由计算系统500中的数据管理设备510执行的在处理器与存储器之间的数据操作的示例的图。

为了便于描述,数据管理设备510被示为单个独立设备,但是如图4所示,可以分散地布置于在处理器560和存储器570之间发送和接收数据所通过的路径中的各个位置,例如,布置在计算系统500中的处理器560、存储器570和系统总线架构(未示出)处。

在接收到第一人工神经网络数据操作请求520之后,数据管理设备510可以生成包括第一地址信息的第一存储器数据操作请求530并将其发送到存储器570。响应于第一存储器数据操作请求530,存储器570可以将第一存储器数据540发送到数据管理设备510,并且数据管理设备510可以响应于第一人工神经网络数据操作请求520,向处理器560提供基于第一存储器数据540的第一人工神经网络数据550。

图6是根据本公开的实施方案示出经由计算系统600中的数据管理设备610执行的在处理器与存储器之间的数据操作的示例的图。

为了便于描述,数据管理设备610被示为单个独立设备,但是如图4和5所示,可以分散地布置于在处理器660和存储器670之间发送和接收数据所通过的路径中的各个位置,例如,布置在计算系统600中的处理器660、存储器670和系统总线架构(未示出)处。

通常,在常规的CPU配置中,基于时间局部性或空间局部性来执行预取或高速缓存。这样的常规捕获可以是:当请求数据时捕获包含数据的数据块(空间局部性),或者逐出从高速缓存对其进行访问之后已经经过很长时间的数据(时间局部性)。

本公开示出了数据管理设备610和计算系统600,其基于当前基于存在于人工神经网络(ANN)中的人工神经网络(ANN)数据局部性从处理器660接收的数据请求来预测下一个数据请求。。

在人工神经网络的计算中,像传统的CPU一样存在数据局部性,并且其特性不同于CPU的数据局部性。对于特定示例,在训练的情况下,人工神经网络从存储器中按顺序读取用于训练的输入数据,并对其进行计算以更改内部权重值。一旦使用所有学习数据完成训练后,就认为已经完成了1个时期的训练,并且重复正常的人工神经网络训练数个到数百个时期。因此,既然在训练期间,以相同的顺序从存储器重复读取输入数据几次至数百次,就存在数据局部性。

在权重的情况下,通过在训练期间按顺序读取存储在存储器中的权重来执行推理过程的计算后,权重值通过后处理进行更新并按顺序写入到存储器中。重复训练时,权重数据以相同的顺序从存储器中读取,并且还存在数据局部性,其中在后处理之后更改的权重值以相同的顺序写入到存储器中。另一方面,在推理的情况下,给定的人工神经网络算法的计算是通过在每次推理时以相同顺序从存储器中读取权重值来执行的。换句话说,即使在推理中,也存在数据局部性,因为对于每个推理操作,都以相同的顺序从存储器中读取权重值。

一种特征图(特征图)或激活图(激活参数图)是来自多层人工神经网络中的一层的输出数据,该数据临时存储在存储器中,并在下一层的操作中用作输入特征图。在下一层的操作期间从存储器中读取输入特征图的顺序是从上一层输出的特征图或激活图数据首先被存储在存储器中的顺序。

根据特定的人工神经网络的结构、处理该人工神经网络的处理器的操作方法等,访问数据的顺序可以与上述顺序不同。然而,可以基于上述数据顺序信息来示意性地对其进行推理,并且改变的访问模式在相应的人工神经网络结构和处理器操作方法下是恒定的。因此,即使在这种情况下,也存在明确的数据局部性。

本公开提出了在人工神经网络操作中存在明确的数据局部性,并且通过使用这一点,提出了一种数据管理设备,当相比于存储器具有优异性能的处理器向存储器询问人造神经网络的操作所需的数据时,该数据管理设备能够最小化或消除由存储器访问引起的延迟时间。在所提出的数据管理设备中,处理器根据上述人工神经网络数据局部性,预测未来操作所需的数据,并将其预取到与处理器相邻的存储器设备(例如,高速缓存),以便在处理器请求相应数据时为数据提供最小的延迟时间。另外,在训练期间在存储器中覆盖更新的权重值并且在推理期间执行从存储器上的一层计算和输出的特征图数据的写入操作的情况下,所提出的存储器管理设备可以基于上述的人工神经网络数据局部性自动生成写入地址,从而简化和缩短了处理器的动作。

在接收到第一人工神经网络数据操作请求621之后,数据管理设备610可以生成包括第一地址信息的第一存储器数据操作请求631并将第一存储器数据操作请求631发送到存储器670。响应于第一存储器数据操作请求631,存储器670可以将第一存储器数据641发送到数据管理设备610,并且响应于第一人工神经网络数据操作请求621,数据管理设备610可以将基于第一存储器数据641的第一人工神经网络数据651提供给处理器660。

在接收到第一人工神经网络数据操作请求621之后,数据管理设备610可以基于第一人工神经网络数据操作621生成包括下一地址信息的第二存储器数据操作请求632,并将第二存储器数据操作请求632发送至存储器670。

当跟随第一人工神经网络数据操作请求621的第二人工神经网络数据操作请求622没有从处理器660发送或被延迟时,考虑到人工神经网络的特性、人工神经网络操作的特性以及人工神经网络数据操作的特性,数据管理设备610可以预测包括下一地址信息的第二存储器数据操作请求632。

预测的第二存储器数据操作请求632与预测的下一地址信息一起被发送到存储器670,并且响应于预测的第二存储器数据操作请求632,存储器670可以将第二存储器数据642发送到数据管理设备610,并且数据管理设备610可以将第二存储器数据642临时存储在其中的读取数据缓冲存储器中。

此后,当实际跟随第一人工神经网络数据操作请求621的第三人工神经网络数据操作请求622随着从处理器660经过了预定时间或者障碍已经解决而被发送时,数据管理设备610验证已实际接收到的第三人工神经网络数据操作请求622与预测的第二存储器数据操作请求632是否相互对应。当确认实际接收到的第三人工神经网络数据操作请求622和预测的第二存储器数据操作请求632相互对应而没有错误时,数据管理设备610可以响应于第三人工神经网络数据操作622将第二存储器数据642作为第三人工神经网络数据652提供给处理器660。

在任何单个存储器读取中,普通存储器的等待时间都超过几个时钟周期。这导致处理器进入空闲(IDLE)状态,直到提供必要的数据为止,从而使处理器无法执行实际操作。这是同样适用于本公开的存储器660和处理器670的限制。

在将人工神经网络中使用的每个数据组写入存储器670之后,处理器660读取用于训练和推理的相应数据组的数据的顺序通常遵从相应的数据组的数据块首先写入存储器670中的顺序,基于它们首先写入存储器670中的顺序来确定的,或者基于它们先前被写入存储器670中的顺序来确定的。

当系统600或处理器660访问人工神经网络的特定数据组中包括的任何数据(例如,用于训练的输入数据、权重和激活参数)时,数据管理设备610可以预测处理器660或系统600将请求访问数据组中的哪些数据。

当处理器660在连续的人工神经网络数据操作停止经过一定时间段之后恢复人工神经网络数据操作时,根据现有技术将恢复的数据操作请求的第一数据作为任意单个存储器读取操作处理,因此无法避免物理等待时间。此时,如果包括在本公开的数据管理设备610中的读取数据缓冲存储器(可以无延迟地直接提供数据的高速存储设备)先前已经通过预读操作存储了能够连续提供等于由任意单个存储器读取操作引起的等待时间段的时间段的数据量,处理器660可以通过在没有针对任意存储器读取操作的等待时间的情况下向处理器660提供数据延迟来立即执行操作而没有延迟,使得总体的操作性能可以提高。

可以考虑与第一人工神经网络数据操作请求621中包括的与人工神经网络操作(通道代码/识别代码)有关的信息以及先前在连续写操作期间已经执行的在存储器670上的顺序地址映射过程来确定:数据管理设备610预测将在紧接已经接收到的第一人工神经网络数据操作请求621之后发生的第二存储器数据操作请求632的过程,并且该过程可以使用关于人工神经网络操作的存储数据访问模式的信息来执行。

当处理器660开始人工神经网络的训练或推理操作时,其开始读取每个数据组的数据,并可能在整个操作过程中频繁重复数据读取的中断/恢复,在整个操作过程中,人工神经网络的每层的节点值被输出并且操作完成。如上所述,当在读取中断之后恢复读取时,由于恢复的第一访问变为任意的单次访问,因此在现有技术中不可避免地存在显著的(great)等待时间。

当在处理器660继续读取数据时由于任何原因暂时停止下一必要数据的读取操作时,本公开的数据管理设备610和计算系统600提前从存储器670读取被预测为下一必要数据的数据,并将该数据(date)存储在其中的读取数据缓冲存储器(未示出)中。此时,在处理器660的读取操作在停止之后恢复时引起的等待时间段期间,先前存储在读取数据缓冲存储器中的数据可以代替存储器670向处理器660提供数据。同时,计算系统600或数据管理设备610访问存储器670并且提前读取被预测为跟随在所读取的数据缓冲存储器中的数据的数据,从而填充提供给处理器660的数据已从其消除的空间。鉴于有处理器660,应认识到,除了数据的物理延迟时间(传播延迟)以外,存储器670在读取操作期间以0的等待时间进行操作。

读取数据缓冲器的深度可以是从将地址提供给存储器670的时间起从存储器670输出实际数据所需的时钟周期数。根据一个实施方案,最佳深度可以根据人工神经网络模型、操作处理器660和存储器670的类型等而改变。如果缓冲区深度很大,则提高操作性能是有益的,但是基于单个存储单元,与大容量DDR/SRAM/FLASH的存储器相比,延迟为0或高速操作的缓冲存储器需要更大的硬件成本和更高的功耗。因此,可能需要权衡增加预取缓冲器的深度。能够实现最大性能的读取数据缓冲存储器的深度可以根据处理器660的操作性能、数据定时、存储器670的等待时间、性能特性以及作为操作目标的人工神经网络模型的特性而变化。

当计算系统600或处理器660在读取连续数据的中断后恢复读取先前读取的数据的下一个数据时,数据管理设备610或计算系统600提供存储在缓冲器中的数据,从而导致计算系统600或处理器660将存储器670辨别成以等待时间0进行操作这样的效果。同时,数据管理设备610或计算系统600可以访问存储器670,以读取存储在缓冲器中的最后一个数据中的下一个数据,在存储器670的固有等待时间之后接收该数据,并将其存储在缓冲器中或将其发送到处理器660。

同时,在处理器660和存储器670之间停止人工神经网络数据操作的动作的原因可以包括以下情况:

1)在处理器660和存储器670之间未执行任何操作的情况,

2)在处理器660和存储器670之间对除与人工神经网络相关联的数据以外的数据执行操作的情况,

3)尽管处理器660与存储器670之间未执行任何操作,但是处理器660与另一存储器执行数据操作的情况(例如,当权重数据存储在对应的存储器660中而激活参数时或特征图数据存储在另一个存储器中,处理器660可以在对应的存储器670和另一个存储器之间交替执行数据访问。作为另一示例,当对与另一存储器和人工神经网络相关联的数据以外的数据执行操作时,处理器660可以不访问存储器670),

4)处理器660具有执行人工神经网络处理操作所需的所有数据以及暂时不需要数据来执行所需操作的情况(这种情况可能被认为是可能停止连续的存储器访问的原因)。

同时,本公开的计算系统600或数据管理设备610可以基于在包括在其中的数据顺序存储器(未示出)中存储数据的顺序以及按该顺序在至少一个存储器中存储数据的地址的信息来确定与第一人工神经网络数据操作请求621相关联的第一人工神经网络操作是否已经完成,并且如果第一人工神经网络操作还没有执行,则可以执行本公开的操作,并且如果第一人工神经网络操作已经完成,则省略本公开的操作。

根据本公开的实施方案的用于支持人工神经网络操作的数据管理方法是在具有至少一个处理器660和至少一个存储器670并支持由至少一个处理器执行的人工神经网络操作的计算系统600中执行的方法。该数据管理方法可以包括:接收与由至少一个处理器660执行的人工神经网络操作相关联的人工神经网络数据操作请求;将基于人工神经网络数据操作请求的存储器数据操作请求发送到至少一个存储器670,并且响应于存储器数据操作请求从至少一个存储器670接收存储器数据;并且基于人工神经网络数据操作请求生成存储器数据操作请求。

图7是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

作为本公开的数据管理方法的一部分,基于人工神经网络数据操作请求生成存储器数据操作请求可以包括:在步骤S710中,基于人工神经网络数据操作请求中包含的识别信息来识别人工神经网络数据操作请求的域和类型;在步骤S720中,生成作为数据和地址顺序信息的与识别信息相关联的人工神经网络数据操作请求的数据的顺序以及在至少一个存储器中的以该顺序存储人工神经网络数据操作请求的数据的地址的信息;以及在步骤S730中,将数据和地址顺序信息存储在计算系统内部的数据顺序存储器中。

图8是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

作为本公开的数据管理方法的一部分,基于人工神经网络数据操作请求生成存储器数据操作请求可以包括:当在步骤S810中接收到第一人工神经网络数据操作请求时,在步骤S820中基于在至少一个存储器中存储第一人工神经网络数据操作请求的数据的第一地址的信息和存储在数据顺序存储器中的数据和地址顺序信息生成作为下一地址信息的在至少一个存储器中存储跟随第一人工神经网络数据操作请求的第二人工神经网络数据操作请求的数据的第二地址的信息。

图9是根据本公开的实施方案示出数据管理方法的一些过程的操作流程图。

作为本公开的数据管理方法的一部分,基于人工神经网络数据操作请求生成存储器数据操作请求可以包括:在步骤S910中接收到第一人工神经网络数据操作请求之后,在步骤S920中基于包括在第一人工神经网络数据操作请求中的第一识别信息来预测预期将跟随第一人工神经网络数据操作请求的所述第二人工神经网络数据操作请求;在步骤S930中,基于第一地址信息以及数据和地址顺序信息来预测在至少一个存储器中存储第二人工神经网络数据操作请求的数据的第二地址的信息。

图10是根据本公开的实施方案示出数据和地址顺序信息的图。

图10示出了当完全专用的存储器用于人工神经网络操作时的数据和地址顺序信息的实施方案。

参照图10,由于给定存储器仅用于人工神经网络操作,因此给定存储器的地址空间被清楚地分配给/划分为用于输入数据、权重和特征图中的每一者的存储器区域。因此,数据顺序存储器可以存储每个数据组的存储器区域的开始地址和结束地址,并基于到目前为止已经执行的连续读取的地址来存储用于下一读取的存储器地址,以便其可以预测并响应系统/处理器所需的人工神经网络的数据操作之后的操作。

图10的系统地址图在概念上指示输入数据、权重和特征图被分配在存储器的划分区域中。

这时,可以将0X1000000(其是存储在数据顺序存储器中的输入数据的结束地址)表示为通过在实际输入数据的最后地址上加1而获得的值。类似地,权重数据的结束地址也可以作为0X2000000存储在数据顺序存储器中,该权重数据的结束地址是通过将实际权重数据的最后一个地址加1而获得的值。

图11是根据本公开的实施方案示出数据和地址顺序信息的图。

图11示出了一个实施方案,其中在用于每次使用的存储器的地址空间内分配用于人工神经网络操作的大的线性存储器区域。

除了人工神经网络,系统还可以将一个存储器用于多个系统任务。在这种情况下,图11示出了通过使用而清楚地分配了用于人工神经网络操作的每个数据域的情况。

系统地址图显示了输入数据区域、权重区域和特征图区域,它们在存储器的整个地址空间内清楚地分开。相应地,数据顺序存储器可以通过存储每个数据域的开始地址和结束地址,并根据到目前为止已经执行的连续读取的地址来存储下一个读取的存储器地址,来充分发挥作用。

图12是根据本公开的又一个实施方案示出数据和地址顺序信息的图。

图12示出了其中为每个数据域分配碎片存储器区域的实施方案。

具有操作系统(OS)的系统需要使用存储器的各种不同类型的任务,并且在这些任务中的每一个使用存储器时,未分配的存储器区域都是碎片化的。动态分配存储器区域,并且在其使用后,在释放过程中会形成存储器碎片/碎片。在这种情形下,很难为人工神经网络操作分配大容量的单个存储器区域。在这种情况下,必须分配碎片存储器区域以执行人工神经网络处理。数据顺序存储器存储这些碎片存储器区域之间的连接关系。也就是说,数据和地址顺序信息包括有关如何为一个数据域连接碎片存储器区域的信息。

系统地址图表示一种情况,其中一个存储器地址空间内的碎片存储器区域用于一个数据域。系统地址图中以白色表示的区域是分配给输入数据的存储器区域。图12的系统地址图示例性地描述了输入数据,但是实现本公开的该方法在权重数据或特征图数据的情况下是相似的。

数据和地址顺序信息从存储每个碎片存储器区域的开始和结束地址开始。此时,可以基于到现在为止已经连续执行的读取操作的地址来预测下一个读取操作的地址。在当前读取操作的地址到达任何一个碎片存储器区域的最后一个地址时,将为下一个操作预先准备对下一个碎片存储器区域的访问。

以下将描述根据本公开的其他实施方案的在数据顺序存储器中存储开始地址和结束地址的方法。

在第一种方法中,当处理器最初自行计算出人工神经网络信息并且处理器知道有关已分配的存储器区域的信息时,处理器可以像特殊功能寄存器(SFR)一样访问数据顺序存储器并直接寄存(resister)起始地址和结束地址。

在第二种方法中,当处理器首先在每个通道(数据域,其意指一种人工神经网络数据)中存储数据时,数据顺序存储器可以记录处理器首次存储相应的数据组的数据作为第一起始地址的时间。处理器在存储数据组的数据时会连续执行监视,并且如果写地址对应于简单的字增加(例如,当在32位系统中地址增加4时),则不会采取任何特殊措施,但是如果写地址与简单字增加不对应,将简单增加已终止的地址值记录为一个存储器区域的结束地址,并在下一个条目的起始地址中记录不是简单增加的跳转地址值。之后,继续监视其对应于简单的字增加是否持续,并且当执行最后数据的写操作时,将对应的地址写入到最后记录的起始地址条目的结束地址,以及完成存储在数据顺序存储器中的数据和地址顺序信息。

图13是根据本公开的多个实施方案示出表达通道信息/识别信息的方法的图。

在人工神经网络操作中,必须针对写访问和读访问准确地表达数据域/数据组。在图13中,使用以下三个实施方案来表达其中处理器和数据管理设备共享关于数据组的信息的过程。

(1)数据组标志:可以通过使用特定的接口I/O信号为每次访问表达访问数据组。

(2)地址:在地址区域中会存在对通道进行分类的实施方案。

(3)寄存器访问:可以存在一种实施方案,其中处理器记录在特殊功能寄存器(SFR)中的有关通道的信息。

(1)例如,在数据组标志的实施方案中,可以使用处理器将2位信号添加到I/F。此时,如果特殊信号为00,则其可以是表示访问除ANN数据以外的数据的代码。如果其是01,则其可以是表示对应的数据组属于输入数据的代码。如果其是10,则其可以是表示权重数据的代码。如果其是11,则其可以是表示特征图数据的代码。

(2)在该地址的实施方案中,当从处理器侧发送地址时,不同地访问要访问的存储器区域的实施方案是可能的。将参考图14详细描述该实施方案。

图14是根据本公开的实施方案示出其中通道信息/识别信息以及数据和地址顺序信息被关联的情况的图。

参考图14,示出了在系统地址图中为每个数据组分配存储器区域的过程。MEMORY_SIZE是每个数据组的存储器区域的大小。

处理器以各种倍数向系统地址图分配存储器的存储器区域,每个区域代表特定的数据组。例如,通道1可以是非ANN数据。通道2可以是输入学习数据,通道3可以是权重数据,而通道4可以是特征图数据。

在图14中所示的实施方案中,数据管理设备可以通过检查地址的最高有效位(MSB)来确定对哪条通道进行该访问。

根据本公开的实施方案,可以实现为使得除了MSB作为存储器区域中的地址之外,仅一个数据组可以被存储在相同的第n个地址n中。这种情况是避免不同数据组之间混淆的方法。

例如,当某些数据存储在基址(偏移)+Memory_Size+地址n中时,它是一种执行调整的方法,以便不将其他数据存储在基址(偏移)+通道×Memory_Size+地址n中。

再次参考图13,将描述(3)寄存器访问的实施方案。

在数据管理设备中形成了能够表示一组当前访问的数据的寄存器,并将其分配给系统存储器图作为一个地址值。在访问一个数据组的数据之前,处理器首先将数据组表示值写入该寄存器。以这种方式,可以在处理器和数据管理设备之间共享数据组或通道信息。

在图13的实施方案中,已经描述了存在四个通道,但这仅是一种实施方案,并且本发明的精神不受限于此。在4个通道的情况下,如果通道代码为00,则通道可表示为Channel1;如果通道代码为01,则通道可表示为Channel 2;如果通道代码为10,则通道可表示为Channel 3;如果通道代码为11,则通道可表示为Channel 4。但这仅是一个实施方案,本发明的精神不受限于此。

如上所述,对人工神经网络操作的最大影响是数据是否属于输入数据、权重数据或特征图数据中的任何数据组。同时,对于权重数据或特征图数据,由于可以根据其是读操作还是写操作,或者其是在训练过程还是在推理过程中来改变数据操作的顺序,因此可以将通道代码细分为多于2位以指示自适应调整的顺序。

在图2至图14中示出的本公开的实施方案提出了一种数据管理方法和一种用于支持人工神经网络操作的方法,其即使在改变人工神经网络数据操作的连续模式时,也能通过由本公开的计算系统或数据管理设备监视与该人工神经网络操作相关联的人工神经网络数据操作而自适应地做出响应。

同时,在图2至图14中示出的本公开的实施方案与一种实施方案(在该实施方案中,预先分析将执行人工神经网络操作的过程,提取人工神经网络数据操作的数据局部性和顺序模式,并且以软件方式重新配置存储器配置)组合,以便可以以更多种方式支持人工神经网络操作。

图15是根据本公开的实施方案示出被自适应地重新配置为支持人工神经网络操作的数据管理设备1500的图。

参考图15,数据管理设备1500包括至少一个处理器1510和可重新配置的存储器1550。在这种情况下,数据管理设备1500可以对应于计算系统。数据管理设备1500可以与未在图中示出的通信接口或用户接口模块耦合,可以接收用户的输入并向用户提供响应,并且可以发送和接收往来于外部计算系统、处理器或存储器的程序指令代码和/或数据。

至少一个处理器1510可以分析其中将由在至少一个处理器1510中执行的程序指令执行人工神经网络操作的过程,并且提取与人工神经网络操作相关联的人工神经网络数据操作的顺序模式。此时,给出了诸如人工神经网络的类型、特征和目的之类的信息,并且至少一个处理器1510可以通过模拟人工神经网络操作来预先提取人工神经网络数据操作的顺序模式。在至少一个处理器1510中,用于提取顺序模式的配置被显示为人工神经网络分析模块1520。

在这种情况下,至少一个处理器1510中的人工神经网络分析模块1520可以基于人工神经网络数据操作的人工神经网络数据局部性和人工神经网络操作来提取顺序模式。上面在图6的实施方案中已经描述了人工神经网络数据局部性的含义。

此时,至少一个处理器1510中的人工神经网络分析模块1520可以基于以下情形来提取顺序模式:人工神经网络数据操作请求是对于用于训练的输入数据的请求,对于分配给人工神经网络的每个突触的权重的请求,还是对于激活参数的请求,该激活参数是从一层输出到下一层的输出节点的操作结果,以及当前接收到的数据请求是否对应于人工神经网络数据操作请求。

至少一个处理器1510可以通过在至少一个处理器1510中执行的程序指令,基于人工神经网络数据操作的顺序模式来生成人工神经网络存储器配置信息。人工神经网络存储器配置信息可以包括:人工神经网络数据操作所需的信息,例如存储器的尺寸、维度和排列。在至少一个处理器1510中,用于生成人工神经网络存储器配置信息的配置被显示为存储器配置生成模块1530。

人工神经网络存储器配置信息可以包括在执行人工神经网络操作的处理器侧与存储数据的存储器之间的数据、在存储数据的地址之间的映射以及与如上所述的图2至图14的实施方案中包括的数据和地址顺序信息类似的顺序信息。

可重新配置的存储器1550可以被控制,使得至少一个处理器1510可以通过在至少一个处理器1510中执行的程序指令将人工神经网络存储器配置信息应用于可重新配置的存储器1550。用于将人工神经网络存储器配置信息应用于可重新配置的存储器1550的配置被显示为至少一个处理器1510中的存储器配置应用模块1540。

人工神经网络分析模块1520、存储器配置生成模块1530和存储器配置应用模块1540可以被实现为单独的硬件,可以被实现为软件,并且可以通过硬件和软件的组合来实现。

如在图2的实施方案中描述的,进行写入请求的顺序和进行读取请求的顺序可以彼此一致,并且当进行写入请求时,可以按第一类型的顺序执行数据操作,而当进行读取请求时,可以按照第一类型的顺序执行数据操作。进行数据操作时,可以按照第二类型的顺序执行数据操作。

至少一个处理器1510中的人工神经网络分析模块1520或存储器配置生成模块1530可基于与人工神经网络操作相关的人工神经网络的结构和特性信息、顺序模式以及人工神经网络数据操作是读取请求还是写入请求来提取人工神经网络数据操作的运行时间顺序模式。

可重新配置的存储器1550可以存储人工神经网络操作所需的数据,并且可以提供与人工神经网络操作相对应的人工神经网络数据操作请求作为人工神经网络操作的响应。此时,可重新配置的存储器1550的操作可以由至少一个处理器1510来控制,并且至少一个处理器1510可以在当前的人工神经网络数据操作被执行的同时预先执行或准备下一人工神经网络数据操作。至少一个处理器1510可以在当前的人工神经网络数据操作被执行的同时预先执行或准备下一人工神经网络数据操作的过程可以参考如上所述的图2至图14的实施方案来实现。

图16是根据本公开的实施方案示出被自适应地重新配置为支持人工神经网络操作的数据管理设备的图。

参考图16,数据管理系统1600可以包括数据管理设备1610。数据管理设备1610包括控制器1612和可重新配置的存储器1650。

数据管理设备1610外部的人工神经网络分析模块1620可以基于执行人工神经网络操作的过程来提取人工神经网络数据操作的顺序模式。通过在控制器1612中执行的程序指令,控制器1612可以经由图16中未示出的通信接口从人工神经网络分析模块1620接收人工神经网络数据操作的顺序模式。

控制器1612的存储器配置生成模块1630可以通过在控制器1612中执行的程序指令,基于顺序模式来生成人工神经网络存储器配置信息。人工神经网络存储器配置信息可以包括数据和地址顺序信息或与其等效的信息。控制器1612可以基于可重新配置的存储器1650的物理配置信息和顺序模式来生成人工神经网络存储器配置信息。

控制器1612的存储器配置生成模块1630可以基于与人工神经网络操作相关联的人工神经网络的结构和特性信息、顺序模式以及人工神经网络数据操作是读取请求还是写入请求来提取人工神经网络数据操作的运行时间顺序模式。

也就是说,控制器1612基于由人工神经网络分析模块1520提取的顺序模式,但是控制器1612可以基于在实际提供对应于人工神经网络操作的人工神经网络数据操作时自适应地调整的运行时间顺序模式来访问可重新配置的存储器1650。。

当接收到人工神经网络操作时,控制器1612可以基于运行时间顺序模式与可重新配置的存储器1650合作,并提供人工神经网络数据操作作为对人工神经网络操作的响应。可以参考如上所述的图2至图14的实施方案来实现这样的过程。

控制器1612的存储器配置应用模块1640可以控制可重新配置的存储器1650,以便通过控制器1612中执行的程序指令将人工神经网络存储器配置信息应用于可重新配置的存储器1650。

在图15和图16的实施方案中,可重新配置的存储器1550和1650可以形成为物理上通用的存储器,或者可以形成为通用存储器的组合。此时,可重新配置的存储器1550和1650的物理配置没有改变,但是可以通过逻辑方式或基于软件重新配置可重新配置的存储器1550和1650。即,可基于存储器配置信息来重构可重新配置的存储器1550和1650内部的逻辑扇区、块、平面等的大小。处理器1510或控制器1612可以预先存储与几种类型的典型人工神经网络操作相对应的典型存储器配置信息,可以基于用户命令在先前已经存储的多条存储器配置信息中选择一条,并且可以将所选择的一条应用到可重新配置的存储器1550和1650。

人工神经网络操作可以由单独的计算系统或处理器执行,或者可以由诸如最近提出的神经形态之类的神经模仿硬件来执行。根据本公开的实施方案的包括可重新配置的存储器1550和1650的数据管理设备1500和1610可以通过与执行人工神经网络操作的硬件或软件组合被布置在现场。此时,处理器1510或控制器1612可以经由用户接口(未示出)向用户提供存储器配置信息的选项,并且如果通过用户命令选择了存储器配置信息的选项之一,则可以将所选择的选项应用于可重新配置的存储器1550和1650。当处理器1510或控制器1612通过用户界面(未显示)向用户提供存储器配置信息的选项时,诸如对应于每个选项的人工神经网络的类型和要解决的问题类型之类的信息可以一起提供给用户。通过用户命令确定存储器配置信息的过程可以在各种情况下执行,例如当数据管理设备1500和1610在工厂中初始化,部署在现场或在现场重新调整时执行。

此时,存储器配置信息的选项可以包括运行时间顺序模式的一部分。例如,可以提供选项以使得用户能根据是使用人工神经网络来执行学习/训练还是使用已经学习的数据和人工神经网络来推断新问题的解决方案来选择存储器配置信息。

此外,提供菜单以使得用户能选择或输入人工神经网络的尺寸或维度,并且可基于通过用户菜单输入的用户命令来确定可重新配置的存储器1550和1650的逻辑维度。

在执行人工神经网络操作的运行时间中的可重新配置的存储器1550和1650的存储器配置信息可以被静态地或动态地应用。一次确定的存储器配置信息可以静态地应用,如果在运行时间在可重新配置的存储器1550和1650的特定区域中发生错误或需要数据移动,则处理器1510或控制器1612可以动态地改变可重新配置的存储器1550和1650的物理地址,并且可以动态地改变存储器配置信息并在运行时间应用它。

数据管理设备1500和1610可以进一步包括与存储器配置生成模块1530和1630相关联的只读存储器(ROM),并且存储存储器配置信息的模板。尽管这里将其描述为ROM,但是可以使用已知的可编程存储器,例如可编程ROM、EPROM、EEPROM、闪存等。

参考图15和图16,人工神经网络分析模块1520和1620通过预先模拟或分析人工神经网络操作的执行来提取顺序模式,并且在这种情况下,可以提取包括数据的分支、跳转或流的顺序模式。因此,当图15和图16的实施方案被提供作为用于人工神经网络数据操作的数据高速缓存时,除了简单地执行数据预取的情况之外,还可以根据软件配置进行详细的优化。

在图15和图16的实施方案中,提出了一种可重新配置的存储器平台,该可重新配置的存储器平台能够基于用户所使用的人工神经网络和需要解决的问题来调整用于支持人工神经网络操作的数据管理设备1500和1610的存储器配置。此外,可重新配置的存储器平台可以通过人工神经网络的软件分析进行自适应优化。根据本公开的实施方案的用于支持人工神经网络操作的数据管理设备1500和1610可以被理解为逻辑上重新配置的软件或存储器编译器。

根据本公开的实施方案的用于支持人工神经网络操作的数据管理方法可以以可以通过各种计算机装置执行并且记录在计算机可读介质中的程序指令的形式实现。该计算机可读介质可以单独地或组合地包括程序指令、数据文件、数据结构等。记录在介质上的程序指令可以被特别设计和配置用于本公开,或者可以是计算机软件领域的技术人员已知并且可以使用的。计算机可读记录介质的示例包括磁性介质(例如硬盘、软盘和磁带)、光学介质(例如CD-ROM和DVD)、磁光介质(例如软盘)以及专门配置为存储和执行程序指令的硬件设备(诸如ROM、RAM、闪存等)。程序指令的示例不仅包括机器语言代码,诸如由编译器产生的那些,而且包括可以由计算机使用解释器等执行的高级语言代码。上述硬件设备可以被配置为作为一个或多个软件模块进行操作以执行本公开的操作,反之亦然。

然而,本公开不受实施方案的限制或约束。在各个附图中,相同的附图标记表示相同的构件。在本公开的实施方案和附图中引入的长度、高度、尺寸、宽度等可能被放大以帮助理解。

在上文中,尽管通过诸如具体部件等的具体内容、实施方案和附图描述了本公开,但是它们仅被提供用于帮助对本公开的整体理解。因此,本公开不限于实施方案。根据本说明书,本公开所属领域的技术人员可以做出各种修改和改变。

因此,本公开的精神不应该限于上述实施方案,并且所附权利要求以及对权利要求进行等同或等效的修改的所有方案均落入本发明的范围和精神内。

工业适用性

公开了一种数据缓存或数据管理设备,其用于在至少一个处理器和至少一个存储器之间高速缓存数据,并且支持由至少一个处理器执行的人工神经网络(ANN)操作。数据高速缓存设备或数据管理设备可以包括内部控制器,该内部控制器用于基于ANN操作的ANN数据局部性来预测下一数据操作请求。内部控制器从在至少一个处理器和至少一个存储器之间实际做出的数据操作请求中监视与ANN操作相关联的数据操作请求,从而提取ANN操作的ANN数据局部性。

相关技术
  • 基于人工神经网络的数据位置用数据缓存支持高速人工神经网络操作的数据管理设备
  • 一种支持离散数据表示的用于执行人工神经网络正向运算的装置及方法
技术分类

06120113265807