存储设备、存储系统及存储方法与流程

文档序号:20874969发布日期:2020-05-26 16:22阅读:254来源:国知局
存储设备、存储系统及存储方法与流程

本说明书涉及数据的存储,且更具体地说,涉及基于神经网络的永久数据存储。



背景技术:

在现代信息技术(informationtechnology;it)基础设施中,各种装置和工艺生成非常大量的数据。这些数据生成器的一些实例为智能机器、自动汽车、社交网络以及物联网(internet-of-things;iot)装置。正在开发新的人工智能(artificialintelligence;ai)和机器学习(machinelearning;ml)技术,以有效地分析收集到的数据且使用收集到的数据来实现应用的甚至更高的效率和生产率。此类大量的数据存储在由固态装置(solid-statedevice;ssd)、硬盘驱动器(harddiskdrive;hdd)、存储节点以及存储互连件组成的高性能、可信赖的存储系统中。

人工神经网络(neuralnetwork;nn)或连接系统是由构成动物大脑的生物神经网络模糊地启发的计算系统。神经网络是用于许多不同机器学习技术一起工作并处理复杂数据输入的框架。此类系统通常在没有用任何特定任务规则来编程的情况下通过考虑实例来“学习”执行任务。举例来说,在图像识别中,他们可能通过分析已经手动标记为“猫”或“没有猫”的实例图像及使用所述结果识别其它图像中的猫来学习识别含有猫的图像。这是他们在无任何关于猫的先验知识(例如其具有皮毛、尾巴、胡须以及猫类的脸)的情况下进行的。相反,他们从处理的学习材料中自动生成识别特性。

nn是基于称为人工神经元的连接单元或节点的集合,所述人工神经元松散地模拟生物大脑中的神经元。每个连接(如生物大脑中的突触)可将信号从一个人工神经元传输到另一人工神经元。接收信号的人工神经元可处理信号,且接着向与其连接的额外人工神经元发送信号。在常见的nn实施方案中,人工神经元之间的连接处的信号是实数,且每个人工神经元的输出通过其输入的总和的一些非线性函数来计算。人工神经元之间的连接称为‘边缘’。人工神经元和边缘通常具有随着学习进行而调整的权重。权重增加或减小连接处的信号强度。人工神经元可具有阈值,使得仅在集合信号超过所述阈值时才发送信号。通常,人工神经元聚集成层。不同的层可对其输入执行不同种类的变换。信号可能在多次穿过层之后从第一层(输入层)传播到最后一层(输出层)。



技术实现要素:

根据一个一般方面,一种存储设备可包含配置成接收存储器存取请求的主机接口电路,其中存储器存取请求与数据集相关联。设备可包含配置成存储变换的数据集的非易失性存储器存储电路。设备可包含包括至少一个机器学习电路的转换电路。转换电路可配置成:响应于写入存储器存取,将数据集的原始版本转变为变换的数据集,以及响应于读取存储器存取,将变换的数据集转变为重构的数据集。

根据另一一般方面,一种存储系统可包含配置成执行具有存储装置的存储器存取的主机计算装置,其中存储器存取请求与数据集相关联。系统可包含存储装置。存储装置可包含配置成存储变换的数据集的存储器存储电路。存储装置可包含包括至少一个机器学习电路的转换电路。转换电路可配置成响应于存储器存取来执行以下中的一个:将数据集的原始版本转变为变换的数据集,将变换的数据集转变为重构的数据集或返回变换的数据集。

根据另一一般方面,一种存储方法可包含接收原始数据集,以存储在存储器电路中。所述方法可包含经由机器学习技术将原始数据集转变成变换的数据集,其中变换的数据集小于原始数据集。所述方法可包含存储变换的数据集而不是原始数据集。

以下随附图式及描述中阐述一或多个实施方案的细节。其它特征将从描述和图式以及从权利要求书显而易见。

一种用于数据存储的系统和/或方法,且更具体地说,涉及基于神经网络的永久数据存储,基本上如至少一个图中所示和/或结合至少一个图描述,如权利要求书中更完全地阐述。

附图说明

图1a是根据所公开主题的系统的示例性实施例的框图。

图1b是根据所公开主题的系统的示例性实施例的框图。

图1c是根据所公开主题的系统的示例性实施例的框图。

图2是根据所公开主题的系统的示例性实施例的框图。

图3是根据所公开主题的系统的示例性实施例的框图。

图4是可包含根据所公开主题的原理所形成的装置的信息处理系统的示意性框图。

各图中的相同附图符号指示相同元件。

附图标号说明

100、200、300:系统;

102:主机计算装置;

104:存储装置;

112:主机接口电路;

114:转换电路;

115、215:闪存通道或接口电路;

116:存储/存储器电路;

122:编码/解码选择电路;

124:闪存转换层;

126a、126n:神经网络;

128:保真度要求;

170:路径;

182:写入存储器存取;

183、185:读取存储器存取或请求;

184、186:读取响应;

192:原始数据集;

194:变换的数据集;

196:数据集/重构的数据集;

216:存储器电路;

217:写入高速缓存;

218:第二存储器电路;

222a、222b、222c:编码电路;

224a、224b、224c:解码电路;

226a、226b、226c:差分电路;

228a、228b、228c:nn状态;

252:索引字段;

254:数据字段;

256:编码字段;

302:编码神经网络;

304:解码神经网络;

306:差分或δ电路;

312a、312b、312c、312d、314a、314b、314c、314d:层;

400:信息处理系统;

405:系统总线;

410:处理器;

415:组合逻辑块;

420:易失性存储器;

430:非易失性存储器;

440:网络接口;

450:用户接口单元;

460:硬件组件;

470:软件组件。

具体实施方式

将在下文中参考随附图式更全面地描述各种示例性实施例,随附图式中绘示了一些示例性实施例。然而,本发明所公开主题可以用许多不同形式实施,并且不应被解释为限于本文所阐述的示例性实施例。确切地说,提供这些示例性实施例以使得本公开将为透彻及全面的,且将向所属领域的技术人员充分地传达本发明所公开主题的范围。在图式中,为了清楚起见,可能会放大层及区域的大小及相对大小。

将理解,当元件或层称为在另一元件或层“上”、“连接到”另一元件或层或“耦接到”另一元件或层时,所述元件或层可直接在另一元件或层上、直接连接到另一元件或层或耦接到另一元件或层,或可能存在中间元件或层。相比之下,当元件称为“直接在另一元件或层上”、“直接连接到”或“直接耦接到”另一元件或层时,不存在中间元件或层。相同标号始终指代相同元件。如本文中所使用,术语“和/或”包含相关联的所列项中的一或多个的任何以及所有组合。

将理解,虽然本文中可使用术语第一、第二、第三等来描述各种元件、组件、区域、层和/或区段,但是这些元件、组件、区域、层和/或区段不应受到这些术语的限制。这些术语仅用于区分一个元件、组件、区域、层或区段与另一区域、层或区段。因此,在不脱离本发明所公开主题的教示的情况下,下文所论述的第一元件、组件、区域、层或区段可称为第二元件、组件、区域、层或区段。

可在本文中使用例如“在…下面(beneath)”、“在…下方(below)”、“下部(lower)”、“在…上方(above)”、“上部(upper)”及类似的空间相对术语,以便于描述如图式中所说明的一个元件或特征与另一(些)元件或特征的关系。将理解,空间相对术语既定涵盖装置在使用或操作中除图式中描绘的取向外的不同取向。举例来说,如果图中的装置倒过来,那么描述为“在”其它元件或特征“下方”或“在”其它元件或特征“下面”的元件的取向则将变成“在”其它元件或特征“上方”。因此,示例性术语“在…下方”可涵盖上方及下方两个取向。装置可以以其它方式取向(旋转90度或处于其它取向),且本文中所用的空间相对描述符可以相应地进行解释。

本文中所使用的术语仅出于描述特定示例性实施例的目的,且并不意图限制本发明所公开的主题。如本文中所使用,除非上下文另外明确指示,否则单数形式“一(a、an)”以及“所述”意图还包含复数形式。应更理解,术语“包括(comprises和/或comprising)”在用于本说明书中时指定所陈述的特征、整数、步骤、操作、元件及/或组件的存在,但并不排除一或多个其它特征、整数、步骤、操作、元件、组件及/或其群组的存在或添加。

本文中参考横截面图解来描述示例性实施例,所述横截面图解为理想化示例性实施例(和中间结构)的示意性图解。如此,将预期到,作为例如制造技术和/或公差的结果而与图解的形状的差异。因此,示例性实施例不应解释为限于本文中所说明的区域的特定形状,而是应包含例如由制造引起的形状偏差。举例来说,图解说明为矩形的植入区域通常将具有圆形或弯曲特征和/或植入物浓度在其边缘上的梯度,而不是从植入区域到非植入区域的二元变化。同样地,通过植入形成的埋入区域可在埋入区域与发生植入所在的表面之间的区域中产生一些植入。因此,图式中所说明的区域本质上是示意性的,并且其形状并不意图说明装置的区域的实际形状且并不意图限制本发明所公开主题的范围。

除非另外定义,否则本文中所使用的所有术语(包含技术和科学术语)具有本公开主题所属领域的普通技术人员通常所理解的相同含义。应更理解,例如常用词典中所定义的术语等术语应解释为具有与其相关技术的上下文中的含义一致的含义,且将不在理想化或过度正式意义上进行解释,除非明确地如此界定。

下文将参考随附图式详细解释示例性实施例。

图1a是根据所公开主题的系统100的示例性实施例的框图。在各种实施例中,可使用系统100来存储大量数据,如上文所描述。在所示出的实施例中,示出写入存储器存取。

在所示出的实施例中,系统100可包含主机计算装置102。在一些实施例中,主机计算装置102可包含各种计算装置,例如笔记本电脑、台式电脑、工作站、个人数字助理、智能手机、平板计算机以及其它适合的计算机或其虚拟机或虚拟计算装置。在各种实施例中,用户(未示出)可使用主机计算装置102。在一些实施例中,主机计算装置102可为多个装置,每个装置从存储装置104读取数据且将数据写入存储装置104。

在所示出的实施例中,系统100可包含存储装置104。在各种实施例中,存储装置104可配置成存储数据。此外,在各种实施例中,系统100可包含多个存储装置104,即使仅一个在图中示出。在各种实施例中,存储装置104可包含固态装置(ssd)、铁磁性硬盘驱动器(hdd)或任何其它易失性或非易失性的存储技术。

传统地,存储装置配置成精确地存储写入到其中的数据。当有人将数据写入到存储装置时,他期望稍后提取完全相同的数据。在所示出的实施例中,存储装置104可不配置成如此操作。相反,存储装置104可配置成存储及稍后产生原始数据的表示。在各种实施例中,此表示可为原始数据或与原始数据相等,或可不与原始数据相等。在此实施例中,系统100可配置成提供无损存储和有损存储中的两者或任一个。

在所示出的实施例中,主机计算装置102可发出写入存储器存取182。写入存储器存取182可包含待由存储装置104存储的原始数据集192。

在所示出的实施例中,存储装置104可包含主机接口电路112。在此实施例中,主机接口电路112可配置成接收存储器存取请求(例如请求182)。在一些实施例中,主机接口电路112或层(hil)可处理存储116的逻辑视图。在此实施例中,主机计算装置102可使用逻辑地址范围来存取存储装置104的存储容量。在各种实施例中,主机接口电路112可配置成在由主机计算装置102使用的逻辑协议与由存储装置104使用的内部实际物理协议或机制之间进行转换。在各种实施例中,闪存通道或接口电路115可执行逻辑地址到物理地址转换。在一些实施例中,存储装置104可能不使用传统的物理寻址方案,如下所述。

在所示出的实施例中,存储装置104可包含转换电路114。在各种实施例中,转换电路114可配置成将原始数据集192转变成变换的数据集194。在各种实施例中,变换的数据集194可小于原始数据集192。在此实施例中,存储装置104可配置成存储原始数据集192的减少表示,而不是原始数据自身。

在各种实施例中,在需要时,减少表示与神经网络(nn)的状态一起可用于再创建原始数据或重构原始数据。就原始数据的大小和/或原始数据的值而言,数据的再创建或重构可或可不与原始数据精确匹配。在此实施例中,可减少存储数据所需的空间的量。如上文所描述,在各种实施例中,可使用无损或有损减少方案来创建变换的数据集194。当重构准确度(也称为保真度)小于100%时,永久存储据称为有损的。当重构准确度为100%时,永久存储是无损的。

使用的实际永久存储介质(例如nand闪存)的量是减少表示的大小和存储使用的神经网络的状态所需的存储介质的量。神经网络所需的存储的量取决于在每个网络中的层的数目和节点的数目。举例来说,对于每一层中具有128个节点的双层完全连接的神经网络,此神经网络存储需要的参数数目将为128x128,且每一层有一个偏压参数。在此实例中,为简单起见,我们假定我们不存储偏压参数。假定每个参数需要64位,那么此双层神经网络的整个存储将会是(128x128x8)/1024=128kb。假定在存储装置中使用两个网络,那么存储网络的状态所需的nand闪存容量将为256kb。此存储将在存储在此存储装置中的所有用户数据上摊销。也就是说,此存储量将是固定的且独立于实际用户数据。更假定,每4kb原始数据可减少到8字节用于存储,这将表示所需存储容量中减少的512倍。换句话说,比方说所提出的存储装置具有1mb(1024kb)nand闪存容量。在减去如上文所描述两个神经网络所需的空间(256kb)之后,剩余容量(1024kb-256kb)=768kb可用于永久存储用户数据。假定4kb数据的8b减少表示,768kb空间可用于存储每个数据集大小为4kb的(768kb/8b)=96k数据集。换句话说,具有1mb实际nand闪存介质的存储装置可存储(96kx4kb)=384mb用户数据。

在各种实施例中,转换电路114可包含一或多个机器学习(ml)电路。这些ml电路可配置成减小原始数据集192的大小,且将原始数据集192转变(convert)或转换(translate)到变换的数据集194。在一实施例中,ml电路可实施神经网络(nn),尽管贝叶斯(bayesian)网络、基因技术、主成分分析和/或支持向量机是预期的。应理解,上述仅是并未限制所公开主题的一些说明性实例。

在所示出的实施例中,转换电路114可包含不仅一个ml电路,而是多个ml电路(例如神经网络126a和神经网络126n)。在各种实施例中,经由编码选择电路122,转换电路114可配置成基于一或多个因素选择ml电路中的一个来执行变换。在此实施例中,使用多个ml电路可允许转换电路114(基于任何所期望的准则;例如重构保真度)动态地选择最佳适合于变换原始数据集192的目的的ml电路。编码选择电路122可选择ftl124以100%保真度按原样存储数据,而不需执行原始数据的任何变换。

在所示出的实施例中,可设置保真度要求128,所述保真度要求128规定原始数据集192与从变换的数据集194中重构的数据集之间的变换损失的程度。在此实施例中,转换电路114可基于数据类型或其它因素选择产生所需保真度(或更佳)的给定ml电路。可由主机计算装置102针对每个数据写入操作提供保真度要求128。在另一实施例中,保真度要求128可配置成由主机计算装置102提供为各种存储参数的固定值,例如名字空间标识符、主机标识符、lba地址范围、非易失性存储器(nonvolatilememory;nvm)集标识符、nvm快速(nvmexpress;nvme)提交队列标识符、流标识符、以太网介质存取控制(mediaaccesscontrol;mac)标识符、传输控制协议(transmissioncontrolprotocol;tcp)/互联网协议(internetprotocol;ip)地址和其它传输/网络参数以及一般参数,如日期和时间等。

在另一实施例中,可基于一或多个其它因素来选择使用哪个ml电路或技术。在此实施例中,这些因素可包含数据或文件类型、源主机(例如主机计算装置102)、原始数据集192的大小、存储器电路116中的可用空间的量等。应理解,上述仅是并未限制所公开主题的一些说明性实例。

在各种实施例中,这些要求128可包含在存储器存取182中。在另一实施例中,这些要求128可经由单独命令设置,由主机接口电路112或其它接口电路(未示出)接收。在又一实施例中,保真度要求128可由存储装置自身基于各种存储参数来决定,例如名字空间标识符、主机标识符、lba地址范围、nvm集标识符、nvme提交队列标识符、流标识符、以太网mac标识符、tcp/ip地址和其它传输/网络参数以及一般参数,如日期和时间等。

在各种实施例中,如下文参考图3所描述,可聚集转换电路114以动态地更改ml电路或技术的操作从而调整输出特性(例如保真度)。在此实施例中,特定ml电路的输出特性可为可调节的。

在一些实施例中,转换电路114可包含无损ml电路。在此实施例中,变换的数据集194可小于或等于原始数据集192的大小。

在所示出的实施例中,转换电路114可包含基于传统的非神经网络的直接转换电路124,所述转换电路创建与原始数据集192相同或相等的变换的数据集194的版本。在所示出的实施例中,转换电路114可包含闪存转换层(flashtranslationlayer;ftl)124或使用闪存转换层(ftl)124。在此实施例中,ftl电路124可配置成执行逻辑地址到物理地址转换且将原始数据集192(如变换的数据集194)直接写入存储器电路116中。在此实施例中,转换电路114可使用ftl124和ml电路当中的一或多个选项。

在所示出的实施例中,存储装置104可包含存储器电路116。在此实施例中,存储器电路116可配置成存储变换的数据集194。在此实施例中,一旦创建变换的数据集194,则所述变换的数据集就可存储在存储器电路116中。原始数据集192可全部或部分丢弃。举例来说,如果存储器存取182使用逻辑块寻址(logicalblockaddressing;lba),那么可丢弃全部原始数据集192,且存储装置104可依靠从变换的数据集194中重构数据集196的能力。在另一实施例中,如果存储器存取182使用键值(key-value;kv)对,那么原始数据集192的值部分可丢弃,但键部分可保留。在此实施例中,键部分(通常比值部分小得多)可保留作为变换的数据集194(目前用作值部分)的索引。

在各种实施例中,尽管有损失,但变换的数据集的使用可为足够的。举例来说,在保真度和响应时间都不是非常重要的应用程序中,例如传感器数据、iot数据、视频以及图像等。另一实例可能需要保真度不重要但响应时间重要的的应用程序,例如需要来自系统的快速响应的网络应用程序。在另一实施例中,数据存储的调整能力可为合意的。例如保真度重要但响应时间不重要的应用程序,例如定期监视动物园中动物行为的应用程序。或在另一实例中,保真度和响应时间都非常重要的应用程序,例如储备区段。本文所述的存储装置称为深固态装置(深ssd),所述存储装置利用转换电路114将原始数据集192变换为减少表示数据集(例如变换的数据集194),且从数据集(例如变换的数据集194中)重构数据集(例如重构的数据集196)。在此上下文中,深ssd可包含永久数据存储装置的类型,所述数据存储装置使用神经网络或类似技术实施一或多个“功能”,所述神经网络或类似技术将原始数据变换为减小大小表示,且在需要时,从减小大小表示中重构原始数据或原始数据的近似。“功能”可基本上使用输入值,称为深键,所述输入值从根本上为维持到装置内部的原始数据的减少表示,以产生符合给定程度的原始数据的输出。深ssd可通过“按原样”存储数据像常规ssd一样运作。应理解,上述仅是并未限制所公开主题的一些说明性实例。

图1b是根据所公开主题的系统100的示例性实施例的框图。在各种实施例中,可使用系统100存储大量数据,如上文所描述。在所示出的实施例中,示出读取存储器存取。

在所示出的实施例中,系统100可同样包含主机计算装置102和存储装置104。在此实施例中,存储装置104可包含主机接口电路112、转换电路114以及存储器电路116。

在所示出的实施例中,转换电路114可包含一或多个ml电路,所述ml电路配置成解码或再创建已知为重构的数据集196的原始数据集(或其复写或相似物)。在包含多个ml电路(例如nn126a和nn126n)和/或ftl124的各种实施例中,转换电路114可包含编码(或解码)选择电路122。

在所示出的实施例中,主机计算装置102可发出读取存储器存取或请求183。读取请求183可与原始数据集(图1a中所示)相关联。在此实施例中,读取请求183可包含用于指示正在请求哪个数据集的逻辑地址或(键值对的)键。

在所示出的实施例中,存储装置104可寻求满足读取请求183,但其可能不具有请求的原始数据集。相反,存储装置104可具有变换的数据集194。在此实施例中,转换电路114可经由用于在第一位置中创建变换的数据集194的ml电路(或相关联的解码ml电路)运行变换的数据集194。在此实施例中,ml电路可从变换的数据集194中创建重构的数据集196。此重构的数据集196可为存储装置104在再创建原始数据集的最佳或所选尝试。

在一个实施例中,如果变换的数据集194为无损编码(或经由ftl124的直接复制),那么重构的数据集196可与原始数据集相同。在另一实施例中,如果使用有损编码建构变换的数据集194,那么重构的数据集196可不与原始数据集相同或相等。在此实施例中,系统100可设置其中重构的数据集196仅需部分精确(例如90%精确、80%精确等)的保真度要求128。

在此实施例中,一旦创建重构的数据集196,那么重构的数据集196就可发送回主机计算装置102(如读取响应184)。在各种实施例中,主机接口电路112可配置成传输此读取响应184。在各种实施例中,如果重构的数据集196是有损的,那么重构的数据集196可小于原始数据集,且因此消耗更少带宽或其它系统资源以便满足读取请求183。在另一实施例中,重构的数据仍可与原始数据的精确大小匹配,但重构的内容或值可能不精确匹配。

图1c是根据所公开主题的系统100的示例性实施例的框图。在各种实施例中,可使用系统100来存储大量数据,如上文所描述。在所示出的实施例中,示出读取存储器存取。

在所示出的实施例中,系统100可同样包含主机计算装置102和存储装置104。在此实施例中,存储装置104可包含主机接口电路112、转换电路114以及存储器电路116。

在所示出的实施例中,转换电路114可包含一或多个ml电路,所述ml电路配置成解码或再创建已知为重构的数据集196的原始数据集(或其复写或相似物)。在其中包含多个ml电路(例如nn126a和nn126n)和/或ftl124的各种实施例中,转换电路114可包含编码(或解码)选择电路122。

在所示出的实施例中,主机计算装置102可发出读取存储器存取或请求185。读取请求185可与原始数据集(图1a中所示)相关联。在此实施例中,读取请求185可包含用于指示正在请求哪个数据集的逻辑地址或(键值对的)键。

然而,在所示出的实施例中,读取请求185可能不要求或期望返回重构的数据集。相反,读取请求185可要求变换的数据集194自身。

在此实施例中,存储装置104可包含绕过转换电路114或至少ml电路的路径170。在各种实施例中,路径170可利用ftl124,而不是图1c中所示的。应理解,上述仅仅是并未限制所公开主题的一个说明性实例。

在此实施例中,存储装置104可确定正在请求哪个变换的数据集194,且直接(经由读取响应186)将变换的数据集194提供到主机计算装置102。在此实施例中,存储装置104与主机计算装置102之间传输的数据量可显著减少。

在一个实施例中,主机计算装置102可包含与编码变换的数据集194的ml电路类似的ml电路。在此实施例中,主机计算装置102可能够本地创建重构的数据集(到主机102)。在此实施例中,存储装置104和主机装置102可能够转移ml电路权重或设置,使得ml电路可保持同步。

图2是根据所公开主题的系统200的示例性实施例的框图。在所示出的实施例中,系统200可包含图1a的存储装置。

在所示出的实施例中,系统200可包含主机接口电路112,如上文所描述。在此实施例中,主机接口电路112可配置成将数据传输到外部计算装置(未示出)及从所述外部计算装置(未示出)接收数据。

在所示出的实施例中,系统200可包含转换电路114,如上文所描述。在此实施例中,转换电路114可包含一或多个机器学习(ml)电路。

在所示出的实施例中,每个ml电路可包含编码电路(例如编码电路222a、编码电路222b以及编码电路222c)。编码电路可配置成将原始数据集变换为变换的数据集,如上文所描述。

在所示出的实施例中,每个ml电路可包含解码电路(例如解码电路224a、解码电路224b以及解码电路224c)。解码电路可配置成将变换的数据集变换为重构的数据集,如上文所描述。

在各种实施例中,转换电路114可包含单个编码电路和多个解码电路。在此实施例中,转换电路114可选择哪个解码电路产生最小差异或最高保真度。应理解,上述仅是并未限制所公开主题的一些说明性实例。

在所示出的实施例中,每个ml电路可包含差分或δ电路(例如差分电路226a、差分电路226b以及差分电路226c)。在各种实施例中,转换电路114可包含一个差分或δ电路,或多个ml电路可共享差分或δ电路。在此实施例中,差分电路可配置成将原始数据集与重构的数据集进行比较。在此实施例中,差分电路可指示或计算提供给相应ml电路的保真度的水平或量。如上文所描述,当确定使用哪个ml电路来编码原始数据集时,转换电路114可使用此保真度水平。在另一实施例中,观测到的δ可用于更新在编码器和/或解码器电路中使用的神经网络的权重和其它此类参数,以实现所期望的重构保真度。也就是说,在数据写入操作期间,观测到的重构δ可用于训练神经网络,使得稍后可重构输入数据到所期望的准确度水平。在一些实施例中,神经网络为预先训练的,且仅改变网络的层数以实现所期望的重构保真度。

在各种实施例中,系统200可包含写入高速缓存217。写入高速缓存217可配置成提供临时存储器。在各种实施例中,此临时存储器可用于原始数据集和/或ml电路的编码/解码程序期间的任何中间值。

在各种实施例中,系统200可包含存储器电路216,如上文所描述。在各种实施例中,存储器电路216可存储变换的数据集。存储器电路216还可存储所期望的保真度水平,所述保真度水平可在数据的重构期间使用。

在所示出的实施例中,存储器电路216可被组织成数据结构,例如查询表、索引阵列或一系列字段。在所示出的实施例中,存储器电路216可包含索引字段252,所述索引字段252允许系统200找到变换的数据集。在各种实施例中,索引字段252可包含逻辑块地址(lba)或键值(kv)对的键。

存储器电路216可包含数据字段254,所述数据字段254存储变换的数据集或变换的数据集的指针。在此实施例中,因为原始数据集的相同实例可产生相同的变换的数据集,因此系统200可执行重复数据删除,且因此节省额外空间。

在一个实施例中,存储器电路216可在数据字段254中存储变换的数据集194。我们称存储在数据字段254中的变换的数据集194为深键。在此实施例中,变换的数据集194(即,深键)可或可不单独地存储在第二存储器电路218中。包含在第一存储器电路216中的深键永久地存储到第二存储器电路218中。

存储器电路216可包含编码字段256,所述编码字段存储且识别哪个ml电路编码及/或将用于对变换的数据集进行解码。在此实施例中,转换电路114可能够快速确定在决定过程中应使用哪个ml电路。

在所示出的实施例中,系统200还可包含第二存储器电路218和闪存通道或接口电路215。在各种实施例中,第一存储器电路216和第二存储器电路218可包含在同一存储器电路中,但在单独分区或部分内。

在各种实施例中,第二存储器电路218可配置成存储各种ml电路的状态或权重值(例如nn状态228a、nn状态228b以及nn状态228c)。在此实施例中,转换电路114可在ml电路或ml电路的配置之间快速地且动态地切换。在各种实施例中,转换电路114可包含装置处理器或控制器,所述装置处理器或控制器配置成通过加载不同ml状态或设置在ml电路之间切换。

如上文所描述,系统200可包含以下方面或优势。在所示出的实施例中,系统200可使用神经网络作为存储介质而不是在存储器电路上“按原样”存储数据。系统200与传统的存储装置相比可显著地增加存储容量。在各种实施例中,某些操作(例如检索)可由神经网络和/或机器学习电路执行,而不是对全部数据执行操作,从而使数据操作更快。举例来说,机器学习电路可将数据从第一格式变换为第二格式。反过来,机器学习电路可对第二格式的数据执行一或多个检索,而不将数据变换为第一格式。

在各种实施例中,系统200可自动对所存储数据执行重复数据删除。在此实施例中,重复数据删除可位于块层级或数据组块的一些粒度,从而产生更多的数据的重复数据删除。

在一些实施例中,主机可指定用于存储数据的保真度的不同程度。如果保真度是100%,那么数据(无论是无损地还是直接地存储)可“按原样”返回到主机。如果保真度小于100%,那么返回到主机的数据将为原始数据的近似,所述近似可为或可不为原始数据大小。也就是说,在一些实施例中,返回的数据可具有与原始数据完全相同的大小,但返回的数据值可能不与原始数据值精确地匹配。

在此实施例中,系统200可补充机器学习应用程序。在各种实施例中,机器学习应用程序可能不需要重构的数据;而是可使用减小的特征表示。举例来说,可直接使用变换的数据集来加速ml应用程序。

图3是根据所公开主题的系统300的示例性实施例的框图。在各种实施例中,系统300可包含机器学习(ml)电路或软件实施方案。在一个具体实施例中,系统300可包含神经网络。

在所示出的实施例中,系统300可包含编码器神经网络302和解码器神经网络304。在各种实施例中,神经网络302和神经网络304可各自包含多个层(例如层312a、层312b、层312c、层312d以及层314a、层314b、层314c以及层314d)。每一层312a-312d/层314a-314d可包含处理层的输入以产生输出的各种权重和神经元的数目。神经网络中的每一层可具有不同的类型且可包含不同的神经网络节点、操作以及层,例如卷积、两层之间的密集连接、递归神经网络单元、长短期记忆单元、门控递归单元、生成对抗网络、s型(sigmoid)、柔性最大传递函数(softmax)等。应理解,这些仅是并未限制所公开主题的说明性实例。接着将输出用作另一层的输入,直到达到神经网络的最终输出层(例如层312d或层314d)。

在所示出的实施例中,原始数据集192可输入到编码神经网络302以产生变换的数据集194。同样地,变换的数据集194可输入到解码神经网络304以产生重构的数据集196。

在此实施例中,系统300可包含差分或δ电路306。δ电路306可将原始数据集192与重构的数据集196进行比较,且确定神经网络302和神经网络304重现原始数据集192的精确程度。在各种实施例中,此准确度可与保真度要求相比,如上文所描述。

在各种实施例中,系统300可配置成通过跳过或绕过神经网络302和神经网络304内的各层来动态地调整系统300的准确度。举例来说,在一个实施例中,如果保真度比所需的高,那么系统300可绕过层312b。如果保真度仍比所需的高,那么系统300可绕过层312b和层312c。同样地,可跳过解码神经网络304中的层(例如层314c)。相反,如果获得的保真度比所需的水平低,那么先前绕过的层可再添加到计算以增加保真度水平。

在各种实施例中,可在编码神经网络302和解码神经网络304内同时添加/绕过层。在另一实施例中,可独立地添加/绕过层。

在各种实施例中,系统300可包含各种设置或受到各种设置限制。举例来说,系统300可受到可跳过或绕过的层的最大数目的限制。在另一实施例中,系统300可受到最大次数或实现所期望的保真度要求(或其它要求,例如计算时间等)可能进行的尝试的限制。应理解,上述仅是并未限制所公开主题的一些说明性实例。

在各种实施例中,系统300可使此保真度计算作为数据存储操作的部分。在此实施例中,系统300确定使用什么神经网络设置来实现所期望的保真度或其它资源要求。在此实施例中,神经网络的设置可与用于编码数据的神经网络一起存储。

在各种实施例中,如果系统300不能够在设定的尝试次数内或根本不可能实现所期望的保真度,那么系统300可使用实现尽可能接近保真度要求的保真度水平的设置。在另一实施例中,如果系统300不能够实现所期望的保真度,那么系统300可“按原样”或以其原始状态存储原始数据集192(例如经由ftl)。在另一实施例中,如果系统300不能够实现所期望的精确保真度,那么系统300可以高于所期望的保真度水平但小于100%保真度水平的保真度水平存储原始数据。在又一实施例中,如果系统300不能够实现所期望的保真度(或其它要求),那么系统300可切换到多个ml电路中的另一个且再次尝试。应理解,上述仅是并未限制所公开主题的一些说明性实例。

图4是信息处理系统400的示意性框图,所述信息处理系统可包含根据所公开主题的原理形成的半导体装置。

参考图4,信息处理系统400可包含根据所公开主题的原理建构的装置中的一或多个。在另一实施例中,信息处理系统400可使用或执行根据所公开主题的原理的一或多种技术。

在各种实施例中,信息处理系统400可包含计算装置,例如笔记本电脑、台式电脑、工作站、服务器、刀片服务器、个人数字助理、智能手机、平板计算机以及其它适合的计算机或其虚拟机或虚拟计算装置。在各种实施例中,信息处理系统400可由用户(未示出)使用。

根据所公开主题的信息处理系统400可更包含中央处理单元(centralprocessingunit;cpu)、逻辑或处理器410。在一些实施例中,处理器410可包含一或多个功能单元块(functionalunitblock;fub)或组合逻辑块(combinationallogicblock;clb)415。在此实施例中,组合逻辑块可包含各种布尔逻辑操作(booleanlogicoperation)(例如与非(nand)、或非(nor)、非(not)、异或(xor))、稳定逻辑装置(例如触发器、锁存)、其它逻辑装置或其组合。这些组合逻辑操作可以简单或复杂方式配置成处理输入信号以实现所需结果。应理解,在描述同步组合逻辑操作的几个说明性实例时,所公开主题不受如此限制且可包含异步操作或其混合。在一个实施例中,组合逻辑操作可包括多个互补金属氧化物半导体(complementarymetaloxidesemiconductor;cmos)晶体管。在各种实施例中,这些cmos晶体管可布置到执行逻辑操作的门中;但应理解,可使用其它技术且所述其它技术在所公开主题的范围内。

根据所公开主题的信息处理系统400可更包含易失性存储器420(例如随机存取存储器(randomaccessmemory;ram))。根据所公开主题的信息处理系统400可更包含非易失性存储器430(例如硬盘驱动器、光学存储器、nand存储器或快闪存储器)。在一些实施例中,易失性存储器420、非易失性存储器430或其组合或部分可称为“存储介质”。在各种实施例中,易失性存储器420和/或非易失性存储器430可配置成以半永久或基本上永久的形式存储数据。

在各种实施例中,信息处理系统400可包含一或多个网络接口440,所述接口配置成允许信息处理系统400为通信网络的部分且经由通信网络通信。wi-fi协议的实例可包含但不限于电气和电子工程师学会(instituteofelectricalandelectronicsengineer;ieee)802.11g,ieee802.11n。蜂窝协议的实例可包含但不限于:ieee802.16m(也称为无线城域网(metropolitanareanetwork;man)改进)、长期演进(longtermevolution;lte)改进、全球移动通信系统(globalsystemformobilecommunications;gsm)的增强数据速率演进(enhanceddataratesforgsmevolution;edge)、演进高速分组存取(evolvedhigh-speedpacketaccess;hspa+)。有线协议的实例可包含但不限于ieee802.3(也称为以太网(ethernet))、光纤通道(fibrechannel)、电力线通信(powerlinecommunication)(例如homeplug、ieee1901)。应理解,上述仅是并未限制所公开主题的一些说明性实例。

根据所公开主题的信息处理系统400可更包含用户接口单元450(例如显示适配器、触觉接口、人机接口装置)。在各种实施例中,此用户接口单元450可配置成从用户接收输入和/或将输出提供给用户。其它种类的装置同样可用于提供与用户的互动;例如,向用户提供的反馈可以是任何形式的感觉反馈(例如视觉反馈、听觉反馈或触觉反馈);且来自用户的输入可以任何形式接收,包含声音、语音或触觉输入。

在各种实施例中,信息处理系统400可包含一或多个其它装置或硬件组件460(例如显示器或监视器、键盘、鼠标、相机、指纹读取器、视频处理器)。应理解,上述仅是并未限制所公开主题的一些说明性实例。

根据所公开主题的信息处理系统400可更包含一或多个系统总线405。在此实施例中,系统总线405可配置成以通信方式耦接处理器410、易失性存储器420、非易失性存储器430、网络接口440、用户接口单元450以及一或多个硬件组件460。由处理器410处理的数据或从非易失性存储器430外部输入的数据可存储在非易失性存储器430或易失性存储器420中。

在各种实施例中,信息处理系统400可包含或执行一或多个软件组件470。在一些实施例中,软件组件470可包含操作系统(operatingsystem;os)和/或应用程序。在一些实施例中,os可配置成向应用程序提供一或多个服务且管理或充当信息处理系统400的应用程序与各种硬件组件(例如处理器410、网络接口440)之间的中间设备。在此实施例中,信息处理系统400可包含一或多个原生应用程序,所述程序可本地(例如在非易失性存储器430内)安装且配置成由处理器410直接执行且与os直接交互。在此实施例中,原生应用程序可包含预编译机器可执行码。在一些实施例中,原生应用程序可包含配置成将源代码或目标代码转译成随后由处理器410执行的可执行码的脚本解译器(例如cshell(csh)、苹果脚本(applescript)、热键脚本(autohotkey))或虚拟执行机(virtualexecutionmachine;vm)(例如java虚拟机(javavirtualmachine)、微软公共语言运行时(microsoftcommonlanguageruntime))。

上文所描述的半导体装置可使用各种封装技术来包封。举例来说,根据所公开主题的原理构建的半导体装置可使用以下技术中的任一种来包封:层叠封装(packageonpackage;pop)技术、球栅阵列(ballgridarray;bga)技术、芯片大小封装(chipscalepackage;csp)技术、塑料引线芯片载体(plasticleadedchipcarrier;plcc)技术、塑料双列直插式封装(plasticdualin-linepackage;pdip)技术、华夫包装式裸片(dieinwafflepack)技术、晶片式裸片(dieinwaferform)技术、板上芯片(chiponboard;cob)技术、陶瓷双列直插封装(ceramicdualin-linepackage;cerdip)技术、塑料公制四方扁平封装(plasticmetricquadflatpackage;pmqfp)技术、塑料四方扁平封装(plasticquadflatpackage;pqfp)技术、小外形集成电路封装(smalloutlineintegratedcircuitpackage;soic)技术、紧缩小外形封装(shrinksmalloutlinepackage;ssop)技术、薄型小外形封装(thinsmalloutlinepackage;tsop)技术、薄型四方扁平封装(thinquadflatpackage;tqfp)技术、系统级封装(systeminpackage;sip)技术、多芯片封装(multi-chippackage;mcp)技术、晶片级构造封装(wafer-levelfabricatedpackage;wfp)技术、晶片级处理堆叠封装(wafer-levelprocessedstackpackage;wsp)技术或如所属领域的技术人员将已知的其它技术。

方法步骤可由执行计算机程序的一或多个可编程处理器来执行,从而通过对输入数据进行操作并产生输出来执行功能。方法步骤还可由可实施为专用逻辑电路(例如现场可编程门阵列(fieldprogrammablegatearray;fpga)或专用集成电路(application-specificintegratedcircuit;asic))的设备来执行。

在各种实施例中,计算机可读介质可包含在执行时使得装置执行方法步骤的至少一部分的指令。在一些实施例中,计算机可读介质可包含在磁性介质、光学介质、其它介质或其组合(例如cd-rom、硬盘驱动器、只读存储器、闪存驱动器)中。在此实施例中,计算机可读介质可以是有形且非暂时性实施的制品。

在已参考示例性实施例描述所公开主题的原理时,所属领域的技术人员将显而易见的是可在不脱离这些公开概念的精神和范围的情况下对其作出各种改变以及修改。因此,应理解,上述实施例并非限制性的,而仅是说明性的。因此,所公开概念的范围将通过所附权利要求书和其等效物所最广泛容许的解释来确定,且不应受前文描述的约束或限制。因此,应理解,所附权利要求书旨在涵盖如属于实施例的范围内的所有此类修改和改变。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1