非线性随机处理存储设备的制作方法

文档序号:6466855阅读:156来源:国知局

专利名称::非线性随机处理存储设备的制作方法非线性随机处理存储设备
背景技术
:常规数据存储设备非常适用于数字计算的精确存储和检索需要,并且具有尽可能完美地存储和检索数据比特的属性。数据以有利于由文件系统、表系统、或者对象相关联字节进行操纵的形式存储。智能驱动器试图将计算系统的特性移到存储设备中,但基本上不改变永久非易失性存储设备——其现在最常见的示例是盘驱动器和闪存设备——的本质。几十年来对于许多研究者而言显而易见的是,要拥有可实践的归纳推理设备,需要海量非线性随机处理计算。这需要巨量存储器或非易失性存储空间以将参数存储在大量数据单元中。迄今已有些成功的努力,扩大到为数百万数据单元的数量级的大参数随机处理网络。这些努力中的某些已经采用线超级计算机的顶端。但是扩大到数百万或者数亿、或者甚至数十亿的比例尚无法实践。需要执行非线性随机处理计算的存储设备,并且如果需要在单个设备边界外进一步扩大其能连接到其它此类存储设备。
发明内容一方面,本发明提供一种存储设备,其包括用于接收和输出用于处理数据单元的消息的接口,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的非易失性存储器;易失性存储器;以及耦合到接口、非易失性存储器和易失性存储器的处理器,其用于操纵数据单元中的参数值并且在非易失性存储器和易失性存储器中的至少一个中存储这些数据单元。另一方面,本发明提供一种存储设备,其包括用于接收和输出用于处理数据单元的消息的接口,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的多个非易失性存储器;多个易失性存储器;多个处理器,其中每个处理器耦合到多个非易失性存储器中的至少一个,并耦合到多个易失性存储器中的至少一个,用于操纵数据单元中的参数值并且在非易失性存储器和易失性存储器中的至少一个中存储这些数据单元;以及耦合到处理器的调度和消息收发结构。在另一面中,本发明提供一种系统,其包括多个存储设备,每个存储设备包括用于接收和输出用于处理数据单元的消息的接口,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的非易失性存储器;易失性存储器;以及耦合到接口、非易失性存储器和易失性存储器的处理器,用于操纵数据单元中的参数值,并在非易失性存储器和易失性存储器中的至少一个中存储这些数据单元,并且其中这些存储设备在分层消息路由结构中彼此耦合。通过阅读随后的详细说明,这些和各种其它特征和优势将变得明显。图1是Hebbian神经网络的示意表示。图2是图解说明数据单元的处理的示意框图。图3是依照本发明一方面构建的信息处理设备的框图。图4a是数据单元的示意表示。图4b是消息的示意表示。图5是依照本发明一方面构建的另一信息处理设备的框图。图6是依照本发明一方面构建的另一信息处理设备的框图。图7是相连信息处理设备的分层结构的示意图。图8是依照本发明一方面构建的另一信息处理设备的示意表示。图9是依照本发明另一方面构建的另一信息处理设备的示意表示。图10是依照本发明的另一方面所构建的另一信息处理设备的示意图。图11是串行连接的信息处理设备的示意图。具体实施例方式一方面,本发明提供能意识到其已经见到与其以前曾见过的某物相类似的某物的存储设备,或者提供能使其输出适应其输入——尽管以前从未记录过这些精确的输入或输出——的存储设备。该存储设备存储从输入推导出的参数并且产生从输入推导出的参数。在一个示例中,该存储设备实现用于非线性随机处理(NLSP)的通用平台,并且处理与现在的存储设备的写/读命令本质上不同的输入/输出。NLSP计算模型是机器学习和模式识别问题日益重要的种类。这些计算模型由非易失性存储的数据单元之间的主要本地、潜在概率的交互来表征。示例包括贝叶斯网络和其它概率图形模型的训练和推论、人工神经网络的训练和模拟、对大型数据集的社交网络分析、空间分布系统的随机模拟、以及基于复杂反馈的高适应性控制系统。众所周知的是,需要将这些算法显著地扩大到能高效地处理灵活和适应性识别和控制所需要的海量数据集。显著扩大NLSP模型需要新类型的计算机体系。在一方面,本发明通过将NLSP数据单元间的简单计算与非易失性存储设备紧密耦合来实现NLSP建模所需要的扩大。作为示例,考虑图1中图形示出的简单Hebbian神经网络NLSP。在图1中,处理数据单元IO、12、14、16、18、20和22以产生按箭头被发送到其它数据单元的消息。输入24和26是消息,并且输出28和30也是消息。数据单元14、16和18是非直接耦合到输入或者输出的隐式数据单元。图2中图解说明在数据单元上执行的处理。在此示例中,被称作激活的数值是被计算并被输出到其它数据单元的数值。多个消息40、42和44具有权重46、48和50。然后通过如框58中所示地执行输入消息的加权求和并且如框60中所示地应用诸如S形函数等的极限函数计算出输出值52、54和56。然后将包括计算所得值的输出消息发送到其它相连的数据单元。图3是依照本发明一方面构建的信息处理设备70的框图。该装置包括用于接收和输出通过处理数据单元和控制命令所形成的消息的输入/输出接口72。该接口可以是例如ATA、SCSI或其它外围接口、或者计算机接口。控制命令允许设备被初始化、被测试和被编程。控制命令也允许常规存储设备中常见的精确数据复制。在此示例中,由输入设备74在总线76上提供消息和控制命令,并且这些消息和控制命令在总线80上发送到输出设备78。输入设备将数据单元信息封装成消息并将这些消息发送至接口。在另一示例中,输入设备和输出设备可以是同一设备,并且可以使用单条总线来传输消息和控制数据。信息处理设备70包括非易失性存储器形式的第一存储器组件82。该非易失性存储器提供数据单元的参数和编程的长期存储。其可包括例如磁、光、磁光、或者铁电存储介质。在这些情形中,可以包括从存储介质读取和向其写入信息的读/写磁头形式的多个换能器。替换地,非易失性存储器组件82可以是固态存储器设备,或者任何其它类型的提供对数据单元的长期存储的存储器设备。信息处理设备70进一步包括诸如高速随机存取存储器(RAM)等的易失性高速存储器84形式的第二存储器组件。提供处理器86以依照期望函数来处理数据单元。因为NLSP处理操作是简单的,所以该处理器可实现为现场可编程门阵列(FPGA),其可被编程以在数据单元上执行这些函数。处理器可以从非易失性存储器或者高速存储器中读取数据单元,操作这些数据单元中的参数——例如通过到向部分数据单元应用权重,并且将处理过的数据单元中的己改变值写入非易失性存储器或高速存储器中以适于所需要的特定NLSP计算。在此示例中,处理器还可调度各操作以实现期望的非线性随机处理功能。信息存储设备以易失性消息的形式接收和输出信息。这些消息存储在第二存储器组件中并由处理器处理。然而,如果与其它数据单元交互的数据单元存储在或者第一或者第二存储器组件中,则处理器无需为了在这些数据单元间传播NLSP计算而形成消息。最高性能传播可通过全部包含在易失性RAM中的数据单元,直到需要通过设备接口的消息的输入或者输出。图4a是数据单元90的示意性表示。数据单元包括地址字段92、输入字段94、状态或内容字段96、以及输出字段98。地址92在该信息处理设备中和可能在网络中相连的多个信息处理设备间唯一地标识该数据单元。输入字段包括消息参数并且标识可与该数据单元交互的其它数据单元,并且可以指定相连数据单元的地址100、以及与这些连接相关联的时间标记102、诸如权重和常数等其它参数104。输入字段还可包含过往输入状态数据或预测的输入状态数据。过往输入数据还可包含重置数据以将NLSP系统重置到早先状态。状态或内容字段包括是输入数据并且可能是过往状态数据、重置数据、或者预测的状态数据的一个或以上函数的数据。内容字段包括参数,这些参数可以包括时间标记106、要通过输出传播的输出值108、以及诸如通过不同输入的向量或者模式值和通过不同输出的向量或者模式值等的其它参数110。在内容字段中具体的非易失性值取决于具体的非线性随机处理算法。NLSP函数通常需要输入数据单元在该函数完成以前已更新到时间标记值。内容字段随后获取时间标记值并且输出值被最后确定。输出字段包括消息参数并且标识能够在函数完成之后从数据单元接收信息的其它数据单元,并且指定相连输出数据单元的地址112。可任选地,尽管在NLSP模式中较不常见,可向输出应用既非输入函数也非内容函数的另一函数。这可能需要将激活、权重、常数、过往的和预测的向量和模式值、以及还可能有时间标记同样地存储在每个输出单元的输出字段中。地址可以是标识符,其允许消息路由以区别设备中或者设备集合中以及设备集合间的数据单元。该标识符还可直接包括例如关于数据单元的连接的附加信息或其代之可包括到包含关于路由到该数据单元的附加信息的表的指针。处理器随后将能够间接地访问(或引用)此信息。使用标识符中的指针从表中获得连接信息被称为"提领"。数据单元的组件可由要实现的非线性随机处理的数学来定义。随机处理可以是例如连接系统。在一个示例中,内容字段包括可表示诸如y:/(wA+W等函数的数据》其中^是权重,x,是输入值,而6,是常数。如果这些单元表示神经元数据,则这些单元可以是接收信息并且将输出数据提供给其它单元的激活单元。尽管数据单元中的数据可表示线性函数,但是当联合处理大数目数据单元时能实现高度非线性处理。数据单元的组件不需要连续存储。输入、内容、和输出组件可被放置在存储设备的不同部分中。例如,由于在某些NLSP实现中输入和输出地址在最初建立后不能改变,所以这些组件可存储在存储介质中与用于存储时变组件的区域分开的区域中。该设备利用单元之间的消息收发框架。各单元接收输入并且被更新。然后将消息发送给其它单元。处理器形成消息或者更直接地将新内容值传送给寻址到的输出数据单元。图4b示出消息120,其包括一个或以上输出数据单元地址122、诸如时间标记124等的可任选更新控制元素、以及可为例如可由数据单元中的函数计算的一个或以上数据值126的数据单元操纵参数。该可任选更新控制元素在实现标记型种类的NLSP处理时可以是时间标记,或者在实现尖峰型NLSP处理时可以是例如计数值或者地址列表。在图3的设备中,消息收发由与高速RAM交互的处理器来实现。RAM可用于高速缓存。因此,许多数据单元可从RAM中抽出、通过一个或以上时间步骤处理、并且保留在RAM中以便于进一步处理。对于设备集合中跨设备的消息收发,这可以在分层路由结构中实现。图5是依照本发明另一方面构建的另一信息处理设备130的框图。该设备包括用于接收和输出消息和控制命令的输入/输出接口132。在此示例中,由输入设备134在总线136上提供消息,并且这些消息在总线140上发送给输出设备138。在另一示例中,输入和输出消息可针对同一设备,并且可使用单条总线来传输数据单元。信息处理设备130包括非易失性存储器形式的多个第一存储器组件142、144和146。每个处理器与到非易失性存储器的单个读/写通道相关联,但是如在146中,一个以上处理器可以共享同一存储器。非易失性存储器提供对数据单元的长期存储。其可以包括例如磁、光、磁光、或者铁电存储介质。在这些情形中,可包括从存储介质读取和写入信息的读/写磁头形式的多个换能器。替换地,非易失性存储器组件可以是固态存储器设备,或者任何其它类型的提供对数据单元的长期存储的存储器设备。信息处理设备130进一步包括高速存储器形式的多个第二存储器组件150、154和156,诸如高速随机存取存储器(RAM)。如在150中,两个或以上处理器可共享同一RAM。提供多个处理器158、160、162和164用于依照期望的函数来处理数据单元。处理器可实现为现场可编程门阵列(FPGA),其可被编程以在数据单元上执行非线性随机处理函数。在应用于单元的函数被固定的某些实现中,处理器可包括非现场可编程电子。处理器可从非易失性存储器和高速存储器中读取数据单元,例如通过向数据单元应用权重来处理这些数据单元,并且将处理过的数据单元写入到非易失性存储器中。在这个例子中,包括调度和消息收发处理器166来调度各操作以实现期望的非线性随机处理函数,例如通过协调各处理器的操作。该调度和消息收发处理器可采用FPGA调度和消息收发结构的形式。当彼此交互的单元由同一处理器来监督或由共享如150中的同一RAM的两个处理器来监督时,则构建消息并非是必要的,因为可直接更新数据单元。但如果对数据单元没有共同存储,则形成消息并通过消息收发结构166来发送。图6是依照本发明一方面构建的另一信息处理设备170的框图。该设备包括用于接收和输出数据单元的输入/输出接口172。在此示例中,数据单元由输入设备174在总线176上提供,并且数据单元在总线180上被发送到输出设备178。在另一示例中,输入和输出设备可以是同一设备,并且可以使用单条总线来传输数据单元。信息处理设备170包括非易失性存储器形式的多个第一存储器组件182、184和186。非易失性存储器组件提供对数据单元的长期存储。其可以包括例如磁、光、磁光、或者铁电存储介质。在这些情形中,可包括从存储介质读取和写入信息的读/写磁头形式的多个换能器。替换地,非易失性存储器可以是固态存储器设备,或者任何其它类型的提供对数据单元的长期存储的存储器设备。信息处理设备170进一步包括高速存储器形式的多个第二存储器组件188、190和192,诸如高速随机存取存储器。提供多个处理器194、196、198和200用于依照期望的函数来处理数据单元。在某些示例中,多个处理器可以访问单个高速存储器和/或多个处理器可以访问单个非易失性存储器。处理器可实现为现场可编程门阵列(FPGA),其可以被编程以对数据单元执行非线性随机处理函数。处理器可以从非易失性存储器和高速存储器中读取数据单元,例如通过向部分数据单元应用权重来处理这些数据单元,并且将处理过的数据单元写入非易失性存储器中。可以采用FPGA调度和消息收发结构形式的调度和消息收发处理器202来协调各处理器的操作。图3、5和6的信息处理设备被称为识别驱动器。识别驱动器包括数据存储组件和与数据存储组件互连的附加组件。识别驱动器以与诸如盘驱动器或其它字节、块、或者面向对象存储设备等的常规数据存储设备基本不同的方式操作。在各个方面中,识别驱动器也可实现为新颖类型的计算设备、设备控制器、数码相机、数字图像处理器、数字音频处理器、或诸如计算机或计算电路等一般结合了信息处理的多个其他设备种类之任一。例如,可设计一相机,其产生寻址驱动中存储的数据单元的输入消息,并且输出可以是按照图像中被计算的对象来分类相机图像的消息。常规计算机可以获得这些输出消息并且标记这些图片用于数据库应用。识别驱动器或以高度并行的方式来执行数据处理或模拟该并行操作。来自多个源的数据在进和出上都可进行多路复用,并且可对数据加盖时间戳——如果充分的并行操作不能移除任何对此类加盖时间戳的需要。在此处描述的示例中,假定了尽管电子相对于世界事件、识别、和运动而言是非常快的,并且装置中执行的计算不可能是完全并行的,因此明确的时间标记将是必要的。每个单独的信息处理设备包括用来帮助处理通过接口接收到的一序列消息的存储器。消息可由诸如多个传感器等的信号源产生,或由其它信息处理设备产生。存储器可以用之前遇到的包含结构的数据单元序列的形式来存储消息。数据单元输入序列改变可被认为包含结构——如果该数据单元序列已被遇到过一次以上。单独的信息处理设备可以使用所存储的包含结构的数据单元序列以便于以后识别输入消息流中的这种结构化序列。在许多常见NLSP模型中,输入消息具有至少两个维度空间维度和时间维度。空间维度构成在相同标记时间到不同的信息处理设备的存在用于处理的相关信号的集合。这些信号被认为形成了空间维度中的信息单元。通过标记时间从不同的源接收到不同的数据单元。连续消息在时间上紧密相关,并且构成一序列不同数据单元。空间维度和时间维度中的数据单元序列可以表示来自众多不同源的信息。数据单元序列中的信息一般在时间上会是高度相关的。信息的互相关性对于学习来说是重要的。由此,接收数据单元的连续序列为学习提供了大量有用信息。因此,在许多NLSP示例中,本发明的装置会使用随时间产生的数据单元序列作为学习的源信息流。识别驱动器接收一序列消息作为输入。处理器处理接收到的输入消息序列,并且使用这些消息来更新一个或以上数据单元中的信息。处理了几个输入序列之后,识别驱动器可在其输出上生成一序列消息。输出消息序列可作为输入传送给可排列成分层结构的一个或以上其它识别驱动器。一层识别驱动器可从外界接收感觉输入。感觉输入也可包括一序列消息。以数据D(即数据单元)开始,该数据的真实或模拟发生的时间记为T。当时刻T到信息处理设备的所有输入已被总和,且结果已被计算出来、已被发送到并已由接收器信息处理设备处理时,时间参数T将递增。总和和计算可以在实现在FPGA中的算法逻辑单元阵列中发生,该FPGA中每个数据单元可以表示具有基于非线性激活函数的查找表的乘法/积累节点。T是用于用异步多单元处理来标记输入和输出数据单元以保留数据单元的临时次序的全球时间戳参数。在一个示例中,T是离散整数值。其可以是诸如248等其实际上是不会自身复原的大数。通过对T使用大数,可提供对于识别驱动器的历史时钟。在另一示例中,T可以像单个比特那样小,因为T-1动作必须在移动到时间T中的任何动作之前完成。大数通常是较佳的,使得无需对新T状态不断调整在一段时间内非活跃的数据单元。数据单元可以包括指定源激活与当前激活和分布目标激活如何结合的元数据。激活是数据单元的输出并且一般是非线性归一化函数或输入电平总和的转换。逻辑上只需要标识输出数据单元,但是输入数据单元列表对于确定在给定T中是否从所有的数据单元接收到消息可能有用。替换地,此功能可由计数器来执行。数据单元接收来自其它数据单元的输入或者激活,其被总和直到达到激活电平,并且信息处理设备需要发送输出。为了发送输出,信息处理设备需要知道输出数据单元或者目标数据单元的列表。因此,网络在没有输入数据单元列表的情况下仍可以起作用。然而,如果特定信息处理设备想要知道其输入数据单元的哪个片段被激活了,则其可以用计数器来计数其用了多少个输入来达到激活电平——假设其已知其总共具有多少个输入连接。对NLSP计算可用的优化包括,但不限于,数据单元在数据集中的格式化或者位置。子网分层结构的NLSP计算可将高度互连的数据单元彼此靠近地放置在非易失性存储中,使得可使用一个处理器或紧密耦合的共享RAM的多个处理器来优化性能。可以包括其它辅助和指针信息。为了使识别驱动器与更常规的存储系统相接口,可以使用外部指针来标识常规存储的数据。识别驱动器可具有分区,其使用诸如ATA或SCSI等的常规存储命令来读取或写入数据。在一个示例中,识别出的对象可以访问对该对象上的数据库入口的常规存储。出于调试目的,也可常规地记录历史信息。也可使用常规的ATA或SCSI命令来设立、初始化、读出、或者复制数据单元网络以及驱动器NLSP分区中的FPGA程序。并行操作的示例是把消息加载到缓冲器中并且仅在对于给定T的所有消息都被传送完时才前进到下一个T。在每T的通信数目很小的情形中,数据单元上的单个传送就是全部所需。在通信数目超出缓冲器容量的情形中,会需要数据单元上的多个传送。在某些NLSP模型中可以具有两个时间戳以将整个子网时期与子网内的处理区别开。为了确定转换速率,假设诸如低阶统计模式识别方法等数学处理并非优选。而是期望更接近非线性形式的脑架构的方法。然而,构成交叉互连的数据单元的子网并将其当作单元来对待是可能的,藉此潜在地使能更快的计算。对NLSP实现的已知设计将操作的训练阶段从被训练阶段区别开来。这可能是因为某些NLSP实现可能由于输入和期望输出构成了如此大的组而花费了较长时间来训练,或者是因为它们被过度训练和失败。通常可通过增长网络以补偿过度训练来避免过度训练的缺陷,但也再次导致性能限制。然而,本发明在训练模式和被训练模式两者中都具有优势。在训练模式中,一般改变权重,并且这需要在非易失性存储器中更新数据单元值,尤其是数据单元中的权重值。在被训练模式中,这些数据单元值并非持久地改变,因此仅从非易失性存储器中读取数据单元值。然而即使是在被训练模式中,也需要存储数据单元中的某些值。例如非常大的网络中的时间标记可被更新到非易失性存储。在训练模式中,优势是必需的数据单元可被非常快速地加载到高速存储器中用于快速执行,并且只有小部分数据单元需要被写回。在被训练模式中,优势是必需的数据单元可被非常快速地加载到高速存储器中用于快速执行,并且可能无需发生对非易失性存储器的写入。在一个示例中,数据单元可表示神经元。如在本说明中使用的,神经元并非必要与生理数据单元等效。例如,众所周知的是,生理神经元中某些放电模式对于部分数据单元来说是局部的。数据单元数据集可以指定或者不指定这种功能性。数据单元标识符对于每个数据单元来说是唯一的,并且可以包括标识用于指引消息去向和来自数据单元的路由信息。替换示例可以给标识符附加一个句柄使得可以高效地改变路由信息。在图3的例子中,假设并未间接引用该标识符,因为交换是未引用中央提领机制在本地完成的。图7是形成识别驱动器系统210的互连信息处理设备的分层结构的示意性图,识别驱动器系统210包括网络中的多个识别驱动器212并可以依照本发明的另一方面来实现。网络包括多个识别驱动器212和多个交换机214。识别驱动器通过交换机彼此耦合。交换机也可以彼此耦合。网络具有分层的功能结构。数据可在输入线216中提供给网络。此数据可以从传感器218提供。交换机由消息中的地址来控制。对数据单元的简单寻址包括对分层结构中包含该数据单元的节点设备以及该数据单元在存储设备内的特定非易失性位置进行信息路由。来自一个驱动器的输出消息可寻址另一驱动器中的数据单元。应注意,图7是出于概念解释的目的而提供的。在实际系统中,可能有更多的层并且每层中有更多的识别驱动器。有了对驱动每个识别驱动器的单个算法的适当确定,就能使用图7中所示的分层架构来构建智能机器。在T中可以同步各驱动器。这结果得到二元组(T,D},以致不同的数据可在相同的真实或虚拟时间发生,和/或相同的数据可在不同的真实或虚拟时间发生。这样,告知每个驱动器将其内部计算与T相关,并且直到其对于T已经完成产生输出消息才在T+1时处理消息。数据单元和驱动器间的互连并非随机分布的。更确切地,大多数互连覆盖短距离,较少数目的互连会连接各层,并且仅有相对较小数目的互连会是长距离互连。如果识别驱动器如图7中排列在分层结构中,其终端数据输入或输出为终端层驱动器的输入和输出,则可以跨相当大量的存储来进行识别,尽管在驱动器间路由消息的交换机可能在驱动器外部。如图7中所示,可提供识别驱动器的该排列来建立丰富的感觉(或输入)—运动(或输出)系统,其中层1包括原始感官或运动数据单元。应了解,并未假定实际系统中需要的层数目。图7的示例仅是例示说明的。其他示例可提供任何数目的层、识别驱动器和交换机。互连识别驱动器的分层结构可以用于建模认知函数。事实上没人知道大脑中有多少个数据单元,但釆用一组常见的估计,大脑中约有100亿个数据单元,每个具有1千到l万之间个到其他数据单元的连接。1万是100亿的很小比例,则可以假定接近100亿个数据单元在大脑中并未直接相连。建模认知函数的识别驱动器可被认为是稀少的消息交换网络。在这一方面中,估计识别驱动每T每数据单元将需要交换、移动、以及存储约10,000条消息。进而,驱动器每T将需要处理约10,000条消息。则交换基础设施每T将需要能够处置10,000条消息的100亿倍,或即每T进行100兆次交换操作。实时中T的持续时间可能少于约50毫秒。简单二元交换系统可能建议最长截线大约为45次交换乘以2,或即每T交换90次。网络中的每个交换电路可能连接到一个以上电路。假定为16路交换机,则对于每时间T交换机数目从90显著地下降到20。这些数字在实时处理领域之内——假定对于所有数据单元有足够快的读/写存储。可以通过使用识别驱动器的分层结构来解决这些考虑。每个信息处理设备接收必须处理的单元序列。该分层结构的每层都包括接收数据单元序列形式的输入并且也输出数据单元序列的识别驱动器,因为那些输出单元将变成到下一个更高层中的识别单元的输入。该网络在每个上升层上并非总是包括逐渐减少的识别驱动器。当识别驱动器识别到之前遇到过的数据单元序列时,识别驱动器就可以将这种识别报告给其它层中的识别驱动器。到其它识别驱动的输出可包括识别出的数据单元序列的标识符。随着时间的过去,包含识别出的序列的标识符的输出流本身也包含一序列数据单元。数据单元的输出流可能包含将由另一层中的识别驱动器以类似方式来处理的输入。一个以上较低层的输出可结合在以其以致结合的输出形成可在上一层中处理的一序列数据单元。识别驱动器也可以使用一序列存储的数据单元来预测进入序列以解决不清楚的信息。具体地,当识别驱动器确定其当前正接收已知序列时,该识别驱动器可以预测该序列中将要接收的下一个数据单元。识别驱动器可以使用该预测来解释接收到的下一个数据单元。例如,如果进入识别驱动器的输入流是不清楚的,则该识别驱动其可以使用预测的数据单元来帮助标识该下一个输入数据单元。识别驱动器可进一步将预测的下一个数据单元提供给其它的识别驱动器。接收该预测的该识别驱动器可以将其解释为这些识别驱动器将遇到的下一个序列的预知,并且因此输出给其它驱动器。这种预测信息可以包含帮助其它识别驱动器层正确地标识下一个序列的信息。可使用该系统来创建世界上识别驱动器与其互动的对象的不变表示。不变表示是对象(例如,物理对象、文字、歌曲等)的内部表示,其允许以后在不同外部条件下识别该同一目标。系统假设可通过使用识别驱动器的分层结构来构建目标的不变表示。通过标识数据单元不断改变的序列内不变的结构并且存储该不变结构来形成不变表示,使得其稍后可被识别。每个识别驱动器在该分层结构中的其它级别上执行标识、存储、和稍后识别不变结构的此过程。由此,对象的全部不变表示包括与该对象相关联的已被存储在一组分层排列的识别驱动器中的不变结构。不变表示包括在许多不同级别的不变结构。这些不同级别的不变结构(包括整个不变表示结构)可在其它对象的不变表示中使用。每个识别驱动器中的存储器可以用来存储在进入的数据单元序列中已被定位的不变结构。以此方式,以后可在进入的数据单元序列中识别所存储的不变结构以识别出包括不变结构的对象。重复的数据单元和重复的数据单元序列可能是不变结构的一部分。在一个示例中,每个识别驱动器可在输入流中搜索重复的数据单元或者重复的数据单元序列以标识出输入流中包含的不变结构。识别驱动器随后可在存储器中存储这些重复的数据单元和重复的数据单元序列以便以后识别。在识别之际,识别驱动器可将用于识别出的数据单元序列的序列标识符或名称传递到该分层结构中的下一个较高层。只要进入的数据单元序列继续与存储的数据单元序列相匹配,识别驱动器就将继续输出用于该识别出的数据单元序列的相同序列标识符。因为在整个单元序列期间都输出相同的序列标识符,所以较高的层将使识别驱动器比较低识别驱动器更少地切换。每个识别驱动器在存储器中存储数据单元序列用于以后识别。如果进入的数据单元与所存储的特定序列相匹配,则信息处理设备识别出该特定的序列,并且通知较高层中相耦合的识别驱动器正观测已知序列。序列识别也可以用来作出预测。具体地,如果识别驱动器识别到其当前包含已知的数据单元序列,则该识别驱动器可以通过标识该识别出的数据单元序列中的下一个数据单元来确定识别驱动器预期接收到的下一个数据单元。该预期的下一个数据单元组成识别驱动器作出的预测。也可在不同的识别驱动器之间传递该下一个数据单元预测。图7图解说明了具有向上流动的信息和向下流动的信息的不同的分层的层。每个单独的识别驱动器试图标识出其输入流中的不变结构。当识别驱动器识别出所存储的数据单元序列时,关于该识别的信息(例如用于所识别出的序列的标识符)被向上传递到较高的识别驱动器层。关于失败预测的信息也可以向上流动。向下信息流可以包括由分层结构中较高的识别驱动器作出的被传递到较低识别驱动器的下一个数据单元预测。由识别驱动器的分层结构所学习的不变结构的集中存储器包括周围世界的不变表示模型。分层结构中的反馈或向下流动的信息提供许多函数。该反馈信息可以用于解决不清楚的输入数据。也可需要该反馈信息用于学习。如同识别驱动器学习数据单元序列一样,识别驱动器也学习由下一个较高识别驱动器提供的特定上下文中的序列。该上下文指定较高识别驱动器的状态。该上下文可被指定为较高识别驱动器所经历的序列的当前分量。该上下文反馈信息为识别驱动器提供适当地将其输入数据单元编组在一起的手段。可经由更少或更多的识别驱动器来组织识别驱动器系统的行为,因为数据单元处理在驱动器之间和内部是同形的。在数据单元的一个子网上的处理无需是与另一个子网上的相同函数,并且可由一个子网解释的消息无需与可由另一个子网解释的消息相同,尽管消息格式、寻址、和内容对于输入和输出数据单元必须正确。假定整个数据单元网络驻留在一个有高度能力的识别驱动器上,我们可以看到该驱动器在给定世界中对照该世界中由识别驱动器和外部代理诱发的改变所强加的目标如何操作,并在该世界中优化行为。外部代理产生该世界中不由识别驱动器直接控制但在该世界正被讨论的不变量中持续操作的改变。识别驱动器试图将该世界改变到或者促使外部代理将该世界改变到可以根据高级不变量来考虑感官输入的状态。事实上,识别驱动器试图完全地考虑并且修改其感知到的环境。来自识别驱动器的输出可以改变其接收到的输入。例如,如果该输出控制电机并且该电机正使附有相机的机器人移动,则输出可导致使机器人向人移动。由于朝向人的运动发生,该人可以移动。识别驱动器的特殊输出模式可以将瞬间到瞬间识别出的不变量提交给常规的推论推理过程,以便识别驱动器的目标可以随时间改变。在此意义上,可有到向常规计算机提供连接的驱动器的附加输入-输出接口。然而,可能不需要该其它接口——如果一类动作将用对识别驱动器正看到的事和其正想做的事的描述来与外部代理通信进行的话。识别驱动器正试图解决的问题将部分地决定所需的总存储。然而,假定对于识别驱动器中10亿个数据单元所需要的存储是的100GB字节,则每个驱动器将允许数据单元拥有约100,000字节潜在永久存储器,尽管该存储器的一部分可能实际上一直被覆写。假定数据单元指针控制路由并且是64位,则10,000个指针可存储在80KB中。希望数据单元适合100KB或者200KB以内看来是合理的。在每个驱动器的1GB上,100KB数据单元需要100个识别驱动器。在图7的示例中,可以由总函数来划分层l驱动器。例如,可以限定某些驱动接受可视数据,某些接受听觉数据,某些带动效应器,等等。随后学习可被隔离在不同的感觉运动域中。被广泛地接受的是,在任何给定时间,神经网络中仅有很小百分比的神经元是活跃的。在以下描述的示例中,假定1%的神经元是活跃的。下表示出某些示例设计参数并且将识别驱动器系统的几个示例的存储和性能与可被配置成执行相同计算的常规盘驱动器的示例进行比较。与刚才给定的示例的基本差别是此表假设了100亿个数据单元并且每数据单元约125KB(即,百万比特的存储)。此示例中需要的总存储约为1PB(Petabyte)。很显然数据单元计算使用常规盘驱动器技术是不可行的,因为它可能需要数百万个盘驱动器来做1000个识别驱动似乎就能做的事。识别驱动器设计参数<table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>常规盘驱动器是数字和模拟组件的混合,因此数字与模拟之间的差别在此基本不相关,而仅是工程便利。识别驱动器或包括识别驱动器的系统不必要是数字的,或事实上具有任意数字组件,尽管其可以是全数字或数字与模拟组件的混合。在许多应用中可使用识别驱动器和这种驱动器的网络来处理数据。候选参考应用在目标是描述房间中发生的事件的环境中可包括监督系统,该监督系统包括带有眼运动和聚焦控制的多眼设备,以及多个话筒。该设备可经受多个动作,包括,例如移动眼睛,或许调整话筒,以及用简单英语进行通信。可提供外部代理来奖赏或惩罚对该房间中发生的事件的正确或不正确的解释。可用不经受反馈控制的简单、模板英语来实现该通信功能(例如,该部分动作输出不会被整合成识别驱动器的一部分)。然而,识别驱动器要变得有用并不必在人类尺度上运行,或执行像动物的行为。例如,在数据搜索操作中,对于常规驱动器设备首先提到的问题——到识别驱动器的输入将是文件系统中的文件。一个示例可以是视频文件。在这种情形中,识别驱动器可以识别动作。然后数据单元中的元数据空间将把这些动作索引回到常规盘驱动器上的原始文件数据。在该示例中,系统可使用机器感应来找到精确数据。最后,正被学习的世界不必是人类尺度或类型。可存储非常小或非常大的世界用于识别和动作。感觉输入可以是人类觉察不到的输入,诸如在可见光频率之外的电磁辐射,并且输出可以达成人类不能直接执行的动作。许多更多的应用是可能的并且是显然的。常规存储设备与识别驱动器之间的另一个差别可按照其输入和输出来例示说明。常规存储设备是读取和写入数据的从设备,尽管更复杂的一些能接收并且响应消息。识别驱动器旨在直接获取感觉输入,诸如相机输入、来自话筒的输入、温度输入、回转仪输入、或不变源的任何类型的数字或模拟输入,并且旨在使用其先前存储的存储器来组织该输入。基于其识别出的东西,其用可以控制行为的数字或模拟输出来响应,诸如命名或描述,或者控制扬声器、显示器、以及电机。在此意义上,识别驱动器表现为更像智能大脑而非计算机存储设备。更一般地,感觉数据和动作数据都可被认为是经标记的字节数据,其中出于存储器识别和结果动作的目的该标记与数据在其上被组织的组织性输入和输出维度相关。在输入和输出之间,识别驱动器将学习以善于发现和利用世界不变量。可期望其首先识别此类不变量,并随后识别关于其存在或其表现序列要做什么。动作自身由能够基于总目标来改变所感觉到的事务状态的不变量组成。输出应能够以识别和动作所预测的途径来改变输入。目标可包括移动相机以跟随监督系统中的人、指挥移动机器人,或者诸如制造更好的啤酒或细化描述的更深奥系统。识别驱动器不是传统意义上的统计模式识别设备。此类设备,至少像统计模式识别现在被了解的那样,更高效地实现在常规计算框架中。识别驱动器使用NLSP,并且能够发现比用常规统计模式识别能实施的更高维度的不变量,并且能用比用常规响应系统(例如,打印机、电机、图形显示器)能实施的更高维度来动作。在一个示例中,可通过修改常规驱动器技术用于识别和运动动作来生产识别驱动器。识别驱动器的基本机制需要对存储的大量读取和写入。但是为了解决此问题,存储具有短期和长期组件,并且还具有局部和末端拓扑结构。接口取决于该识别驱动器将在其中运行的世界可以是常规的或习惯的。识别驱动器中一个有用政策是给它的感觉数据是原始的,并且来自它的动作数据会是原始的。这意味着识别驱动器将有能力修改最低级别的不变量检测和产生。以相机系统中的边缘检测器为例。此类检测器将原始像素数据作为输入,并且识别亮度、色调、以及饱和度中高倾斜变化的边缘。这可能是原始数据包含原始图像和边缘图像两者,但随后识别驱动器将没有机会改变计算以找到这些边缘。即不会意识到这些边缘,因为基于不同的目标可不同地察觉到边缘。在驱动器内处理的这种动作数据相对于在驱动外的被类似地局限。可用各种机械配置一一包括平面和圆柱的配置——来实现识别驱动器。还可包括读/写磁头的各种配置以及相关联的电子和固件。在一个示例中,本发明可用盘驱动器形式实现在数据存储设备中,其中,在一个或以上个电枢上具有带一个或以上读/写磁头的旋转非易失性存储介质。多盘面配置可利用包括许多盘和盘面的盘驱动器技术,每个盘面侧带有读/写磁头形式的换能器。图8中示出的示例盘驱动器230包括12个盘面和24个读/写磁头。将多个盘232连接到控制盘旋转的驱动轴234。每个盘包括非易失性存储介质。多个换能器236安装在致动臂238上并且位于毗邻存储介质。每个换能器可以是读/写磁头,其实际上可包含与磁记录技术中常见的分开磁头用于读和写。该致动臂将换能器置于毗邻盘上的磁道并且由致动器240控制。由多个处理器244在线242上传送将写入存储介质或从其读取的数据。处理器包括控制对存储介质的读取和写入数据并使用非线性随机处理来处理数据单元的硬件和固件。提供接口246以在总线248上将信息输入盘驱动器和从其输出信息。提供高速易失性存储组件250用于临时数据存储。包括调度和消息收发处理器252以协调各处理器的操作。为了作为识别驱动器来执行,将构建和排列处理器电子和固件以执行本文中所描述的功能。可使用其它配置来代替常规旋转盘配置,主要允许每驱动器许多更多磁头,并且反映出任何给定数据单元的可能数据尺寸为固定的事实。因此,大小为能容纳整数个数据单元的读/写磁道将允许计算效率改进的机会。图9中示出可实现为探针类型存储设备的平面配置。可使用MEM过程在芯片上创建许多读/写磁头,并且这些磁头通过磁头或介质在平面X和Y方向上的运动可在具有平面表面的非易失性存储介质上读写数据。图9是探针存储设备260的横截面视图。该设备包括含有衬底264的外壳262,也可称为箱体、支架、或框架。探针阵列266定位在衬底上。这些探针向上延伸以与存储介质268接触。存储介质268安装在活动元件或橇270上。该存储介质可以是,例如磁、光或铁电存储介质。铁电存储介质的破坏性读出特性在识别驱动器中将不是有害的。某些类型的存储设备出于各种原因——诸如DRAM的成本/简单性以及铁电介质的某些实现的信噪比——采用破坏性读回机制。这对于识别驱动器体系来说这是可行的,其中介质的读取后接着是修改和重写过程,并且不需要随机多读访问。在图9的示例中,由包括线圈和磁铁的电磁致动器提供存储介质与探针之间的相对运动。线圈272和274安装在活动元件上。磁铁276和278安装在外壳里靠近线圈。弹簧280和282形成支撑活动元件的悬挂组合件的一部分。外壳262可以由例如注入成型塑料形成。一个或以上处理器284、调度和消息收发处理器286、高速易失性存储组件288、以及接口290可安装在外壳内。在图9的示例中,这些项被安装在衬底中。虽然图9示出了探针存储设备的一个示例,但是将认识到,可以使用其他已知类型的悬挂和致动器定位这些组件并提供探针与存储介质之间的相对运动。本发明并不被限定于使用任何特定探针和介质来定位和/或执行设备的设备。将写入存储介质或从其读取的数据在总线292上被传送给处理器284。处理器284可包括控制对存储介质的数据读取和写入并且还控制交换矩阵的硬件和固件。提供接口290以在总线292上将信息输入到存储设备并从其输出信息。提供易失性存储组件288用于临时数据存储。为了作为识别驱动来执行,可构建和排列处理器电子和固件以执行上述功能。图10中示出数据存储设备使用旋转圆柱配置300的另一个示例。该示例使用圆柱形存储介质302,其被构成和排列成绕轴线304旋转。多个换能器阵列306、308和310置于毗邻存储介质的表面。每个换能器阵列的包括安装在由致动器316控制的臂314上的多个换能器312。该致动器移动臂以将传感器定位在毗邻存储介质上的磁道318。换能器连接到多个处理器320。消息收发和调度处理器322控制换能器的读写操作并且也控制交换矩阵中交换机的操作。接口324用于经由数据总线326将信息输入到驱动器并从其输出信息。提供易失性存储组件328用于临时数据存储。图10的配置包括多个读/写磁头,这些读/写磁头包括沿圆柱体表面定位的几个磁头阵列。安装在该装置中的磁头在圆柱体的单次旋转中可以多次读和/或写数据。也可以移动该圆柱体或磁头以读/写不同的磁道。单个数据单元可仅位于一个磁道上,而单个磁道可包含多个数据单元。在一个示例中,定位在圆柱体周围的4个磁头阵列可允许读/写操作顺序的。该设备不要求4个磁头阵列;其可以是1个、6个、或任何可实践数字。然而,应最优化数据单元数据的分布使得磁头尽可能频繁地读或写。旋转圆柱体识别驱动器可包括大量读/写磁头。该圆柱体可以是相对紧凑的,并且将圆柱体旋转和将磁头移动到不同磁道的运动将是相对容易控制的。圆柱体的外侧可以被包上存储介质,其可以是例如磁、光或铁电材料。该圆柱体可以是任何直径并且可以是杆。3英寸长2英寸直径的圆柱体以当前所证明的磁记录密度可以存储约千兆字节。这些示例识别驱动器的每一个都可以并行地读和写数据,并且可以在数据单元之间移动数据。处理器允许在数据单元之间交换数据。将高度互连数据单元的子集。因此,处理器应能够交叉连接数据单元。数据单元的交叉连接的子集之间的其它连接可提供数据单元的分层连接。可提供包括注意连接和学习连接的附加连接以连接到遥远的交叉连接和分层数据单元。注意和学习连接简单地提供注意和学习控制数据单元的激活。此外,可设计包括添加和删除连接的能力的NLSP系统。任意的连接产生和删除可导致性能高效。如图11中所示,无损耗地将多个识别驱动器串接在一起是可能的。识别驱动器340的输出作为到识别驱动器342的输入。感觉数据344被识别驱动器340接收并被处理以产生动作数据346。该动作数据变成用于识别驱动器342的感觉数据348,识别驱动器342使用其来产生动作数据350。箭头352指示识别驱动器342的输出被反馈到识别驱动器340。在此情形中,每个驱动器的感觉输入是部分由其它驱动器的动作输出组成的。用这种方式组合许多物理识别驱动器并不违背单个驱动器的计算需要——只要反馈动作被线连接。驱动器的分层结构将是可能的——如果控制了分开的感测形态,例如分开的运动/动作子系统。例如,第一驱动器可用于低阶可视不变量识别,而第二驱动器可用于低阶听觉不变量识别。串联的好处是驱动器可专门用于不同功能。一个驱动器可获取相机输入并且标记该场景。第二驱动器可获取该标记并从该标记产生英语或其它语言的描述。还可能用更复杂的交换装置将驱动器装配在可实践的分层结构中,更加紧密逼近在动物新大脑皮层中发现的处理天然(即世界不变量保存)分离。识别驱动器的此类交换结合形成识别驱动器系统。上面已经描述了用于将机器智能实现为一个或多个存储设备的方法、体系和装置。能够预想的是,可对组件和组件的排列作出改变和修改而不脱离本发明的范围。例如,识别驱动器可以包括固态技术的'跑道'存储器,其中沿着纳米线的长度建立磁畴,并且使用纳米等级的磁脉冲将畴壁边界移动跨过传感器。数据被编码成畴壁不存在或存在,并且使得这些壁以完整的空间模式绕线连续传播。以上描述的实现和其它实现都在所附权利要求书的范围之内。权利要求1.一种存储设备,包括接口,用于接收和输出用于处理数据单元的消息,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的非易失性存储器;易失性存储器;以及处理器,其耦合到所述接口、所述非易失性存储器和所述易失性存储器,用于操纵所述数据单元中的参数值并且在所述非易失性存储器和所述易失性存储器中的至少一个中存储所述数据单元。2.如权利要求1所述的存储设备,其特征在于,所述消息包括数据单元地址分量、可任选更新控制元素、以及数据单元参数操纵分量。3.如权利要求1所述的存储设备,其特征在于,所述处理器基于来自其它数据单元的收到输入消息更新所述数据单元,并且向所述其它数据单元发送消息。4.如权利要求1所述的存储设备,其特征在于,所述处理器基于来自其它处理器的收到输入消息更新所述数据单元,并且向所述其它处理器发送消息o5.如权利要求4所述的存储设备,其特征在于,在第一时间区间更新所述数据单元,并且在移动到第二时间区间前存储经更新的单元。6.如权利要求1所述的存储设备,其特征在于,所述收到消息至少包括地址和更新控制元素。7.如权利要求1所述的存储设备,其特征在于,所述处理器包括现场可编程门阵列。8.如权利要求1所述的存储设备,其特征在于,所述数据单元被初始化为固定值。9.如权利要求1所述的存储设备,其特征在于,所述数据单元的分量非毗连地存储在所述非易失性存储器中。10.—种存储设备,包括接口,用于接收和输出用于处理数据单元的消息,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的多个非易失性存储器;多个易失性存储器;多个处理器,其中每个处理器耦合到所述非易失性存储器中的至少一个,并耦合到所述易失性存储器中的至少一个,用于操纵所述数据单元中的参数值并且在所述非易失性存储器和所述易失性存储器中的至少一个中存储所述数据单元;以及耦合到所述处理器的调度和消息收发结构。11.如权利要求IO所述的存储设备,其特征在于,所述消息包括数据单元地址分量、可任选更新控制元素、以及数据单元参数操纵分量。12.如权利要求IO所述的存储设备,其特征在于,所述处理器基于来自其它数据单元的收到输入消息更新所述数据单元,并且向所述其它数据单元发送消息。13.如权利要求IO所述的存储设备,其特征在于,所述处理器基于来自其它处理器的收到输入消息更新所述数据单元,并且向所述其它处理器发送消息。14.如权利要求13所述的存储设备,其特征在于,在第一时间区间更新所述数据单元,并且在移动到第二时间区间前存储经更新的单元。15.如权利要求IO所述的存储设备,其特征在于,所述收到消息至少包括地址和更新控制元素。16.如权利要求10所述的存储设备,其特征在于,所述处理器中每一个包括现场可编程门阵列。17.如权利要求IO所述的存储设备,其特征在于,所述数据单元被初始化为固定值。18.如权利要求IO所述的存储设备,其特征在于,所述数据单元的分量非毗连地存储在所述非易失性存储器中。19.如权利要求IO所述的存储设备,其特征在于,所述处理器在所述数据单元上执行计算而不格式化消息中的数据单元。20.如权利要求10所述的存储设备,其特征在于,所述非易失性存储器包含圆柱形存储介质。21.—种系统,包括多个存储设备,每个存储设备包括接口,用于接收和输出用于处理数据单元的消息,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的非易失性存储器;易失性存储器;以及处理器,其耦合到所述接口、所述非易失性存储器和所述易失性存储器,用于操纵所述数据单元中的参数值并且在所述非易失性存储器和所述易失性存储器中的至少一个中存储所述数据单元;以及其中所述存储设备在分层消息路由结构中彼此耦合。全文摘要一种存储设备,包括接口,用于接收和输出用于处理数据单元的消息,其中每个数据单元包括消息输入字段参数、消息输出字段参数、以及内容字段参数;用于存储数据单元的非易失性存储器;易失性存储器;以及耦合到该接口、非易失性存储器和易失性存储器的处理器,其用于操纵数据单元中的参数值并且在非易失性存储器和易失性存储器中的至少一个中存储这些数据单元。文档编号G06F3/06GK101369220SQ20081016115公开日2009年2月18日申请日期2008年7月18日优先权日2007年7月20日发明者K·A·戈麦斯,R·H·蒂巴多申请人:希捷科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1