存储器系统的紧凑工作负载表示的制作方法



1.本公开的实施例涉及一种用于分析存储器系统中的工作负载的方案。


背景技术:



2.计算机环境范例已经转变为可以随时随地使用的普适计算系统。因此,诸如移动电话、数码相机和笔记本电脑的便携式电子装置的使用迅速增加。这些便携式电子装置通常使用具有(多个)存储器装置(即,(多个)数据存储装置)的存储器系统。数据存储装置用作便携式电子装置的主存储器装置或辅助存储器装置。
3.由于使用存储器装置的存储器系统没有移动部件,因此它们具有优异的稳定性、耐用性、高信息访问速度和低功耗。具有这些优点的存储器系统的示例包括通用串行总线(usb)存储器装置、具有各种接口(例如,通用闪存(ufs))的存储卡以及固态驱动器(ssd)。存储器系统可以执行与来自主机的一个或多个工作负载相关联的操作。工作负载分析对于存储器系统的性能和可靠性提高变得很重要。在这种情况下,提出了本发明的实施例。


技术实现要素:



4.本发明的方面包括紧凑表示存储器系统中的输入工作负载的系统和方法,其能够通过某些特征将工作负载分开。
5.一方面,一种系统包括:存储器装置;以及控制器,包括循环神经网络编译器(coder),该循环神经网络编译器包括具有多个循环编码块的编码器,该编码器包括第一编码块至最后编码块。每个循环编码块被配置为:接收与存储器装置相关联的输入工作负载中的多个输入命令中的一个;并且通过将一组激活函数应用于接收到的输入命令来生成与接收到的输入命令相对应的隐藏状态向量。最后编码块生成最终的隐藏状态向量作为紧凑表示向量。
6.另一方面,一种用于操作存储器系统的控制器的方法包括:提供循环神经网络编译器,该循环神经网络编译器包括具有多个循环编码块的编码器;每个循环编码块接收与存储器系统的存储器装置相关联的输入工作负载中的多个输入命令中的一个;并且每个循环编码块通过将一组激活函数应用于接收到的输入命令来生成与接收到的输入命令相对应的隐藏状态向量。多个循环编码块之中的最后编码块生成最终的隐藏状态向量作为与多个输入命令相对应的紧凑表示向量。
7.通过以下描述,本发明的其他方面将变得显而易见。
附图说明
8.图1是示出了根据本发明实施例的数据处理系统的框图。
9.图2是示出了根据本发明实施例的存储器系统的框图。
10.图3是示出了根据本发明实施例的存储器装置的存储块的电路图。
11.图4是示出了根据本发明实施例的数据处理系统的示图。
12.图5是示出了根据本发明实施例的循环神经网络编译器的示图。
13.图6a是示出了根据本发明实施例的多个循环块的示图。
14.图6b是示出了根据本发明实施例的循环块的示图。
15.图7是示出了图5的循环神经网络编译器的细节的示图。
16.图8是示出了根据本发明实施例的循环神经网络编译器的示图。
17.图9是示出了图8的循环神经网络编译器的细节的示图。
18.图10是示出了根据本发明实施例的由循环神经网络编译器紧凑和可视化的工作负载的数据集的示图。
具体实施方式
19.以下参照附图更详细地描述各个实施例。然而,本发明可以以不同的形式实施,因此不应被解释为限于本文阐述的实施例。相反,提供这些实施例是为了使本公开透彻和完整,并将本发明的范围充分地传达给本领域技术人员。此外,本文中对“一个实施例”、“另一实施例”等的引用不一定仅针对一个实施例,并且对任意这种短语的不同引用不一定针对相同的(多个)实施例。在整个公开内容中,本发明的附图和实施例中的相同附图标记指代相同的部件。
20.本发明可以以多种方式来实施,包括被实施为进程、设备、系统、在计算机可读存储介质上实现的计算机程序产品;和/或处理器,例如适于运行联接到处理器的存储器上存储的和/或由该存储器提供的指令的处理器。在本说明书中,这些实施方案或本发明可以采用的任意其他形式可以被称为技术。通常,所公开进程的步骤的顺序可以在本发明的范围内进行改变。除非另有说明,否则被描述为适于执行任务的、诸如处理器或存储器的组件可以被实施为被临时配置为在给定时间执行任务的通用组件或被制造为执行任务的特定组件。如本文所使用的,术语“处理器”等是指适于处理数据(例如,计算机程序指令)的一个或多个装置、电路和/或处理内核。
21.以下提供了本发明实施例的详细描述以及示出了本发明的方面的附图。结合这些实施例描述了本发明,但是本发明不限于任意实施例。本发明的范围仅由权利要求限制。本发明涵盖权利要求的范围内的许多替代、修改和等同形式。以下的描述中阐述了许多具体细节,以便提供对本发明的透彻理解。提供这些细节仅出于示例的目的;可以在没有这些具体细节中的一些或全部的情况下,根据权利要求来实践本发明。为了清楚起见,并未详细描述与本发明有关的技术领域中已知的技术材料,从而不会不必要地模糊本发明。
22.图1是示出了根据本发明实施例的数据处理系统2的框图。
23.参照图1,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以从主机装置5接收请求并响应于接收到的请求来操作。例如,存储器系统10可以存储待由主机装置5访问的数据。
24.主机装置5可以利用各种类型的电子装置中的任意一种来实施。在各个实施例中,主机装置5可以包括电子装置,诸如台式计算机、工作站、三维(3d)电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器和/或数字视频记录器以及数字视频播放器。在各个实施例中,主机装置5可以包括便携式电子装置,诸如移动电话、智能电话、电子书、mp3播放器、便携式多媒体播放器(pmp)和/或便携式游戏机。
25.存储器系统10可以利用诸如固态驱动器(ssd)和存储卡的各种类型的存储装置中的任意一种来实施。在各个实施例中,存储器系统10可以被设置为诸如以下的电子装置中的各种组件中的一种:计算机、超移动个人计算机(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板电脑、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏装置、导航装置、黑匣子、数码相机、数字多媒体广播(dmb)播放器、三维电视、智能电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、数据中心的存储装置、能够在无线环境下接收和传输信息的装置、射频识别(rfid)装置以及家庭网络的各种电子装置中的一种、计算机网络的各种电子装置中的一种、远程信息处理网络的各种电子装置中的一种,或者计算系统的各种组件中的一种。
26.存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器控制器100可以控制半导体存储器装置200的全部操作。
27.半导体存储器装置200可以在存储器控制器100的控制下执行一个或多个擦除操作、编程操作和读取操作。半导体存储器装置200可以通过输入/输出线接收命令cmd、地址addr和数据data。半导体存储器装置200可以通过电力线接收电力pwr,并且通过控制线接收控制信号ctrl。根据存储器系统10的设计和配置,控制信号ctrl可以包括命令锁存使能信号、地址锁存使能信号、芯片使能信号、写入使能信号、读取使能信号以及其他操作信号。
28.存储器控制器100和半导体存储器装置200可以被集成到诸如固态驱动器(ssd)的单个半导体装置中。ssd可以包括用于存储数据的存储装置。当存储器系统10用于ssd时,可以显著地提高联接到存储器系统10的主机装置(例如,图1的主机装置5)的操作速度。
29.存储器控制器100和半导体存储器装置200可以被集成到诸如存储卡的单个半导体装置中。例如,存储器控制器100和半导体存储器装置200可以如此集成以配置个人计算机存储卡国际协会(pcmcia)的个人计算机(pc)卡、紧凑型闪存(cf)卡、智能媒体(sm)卡、记忆棒、多媒体卡(mmc)、减小尺寸的多媒体卡(rs-mmc)、微型版本的mmc(mmcmicro)、安全数字(sd)卡、迷你安全数字(minisd)卡、微型安全数字(microsd)卡、安全数字高容量(sdhc)和/或通用闪存(ufs)。
30.图2是示出了根据本发明实施例的存储器系统的框图。例如,图2的存储器系统可以描绘图1所示的存储器系统10。
31.参照图2,存储器系统10可以包括存储器控制器100和半导体存储器装置200。存储器系统10可以响应于来自主机装置(例如,图1的主机装置5)的请求来操作,并且特别地存储待由主机装置访问的数据。
32.存储器装置200可以存储待由主机装置访问的数据。
33.存储器装置200可以利用易失性存储器装置(例如,动态随机存取存储器(dram)和/或静态随机存取存储器(sram))或非易失性存储器装置(例如,只读存储器(rom)、掩模rom(mrom)、可编程rom(prom)、可擦除可编程rom(eprom)、电可擦除可编程rom(eeprom)、铁电随机存取存储器(fram)、相变ram(pram)、磁阻ram(mram)和/或电阻式ram(rram))来实施。
34.存储器控制器100可以控制存储器装置200中数据的存储。例如,存储器控制器100可以响应于来自主机装置的请求来控制存储器装置200。存储器控制器100可以将从存储器
装置200读取的数据提供到主机装置,并且可以将从主机装置提供的数据存储到存储器装置200中。
35.存储器控制器100可以包括通过总线160联接的存储装置110、控制组件120(其可以被实施为诸如中央处理单元(cpu)的处理器)、错误校正码(ecc)组件130、主机接口(i/f)140和存储器接口(i/f)150。
36.存储装置110可以用作存储器系统10和存储器控制器100的工作存储器,并且存储用于驱动存储器系统10和存储器控制器100的数据。当存储器控制器100控制存储器装置200的操作时,存储装置110可以存储存储器控制器100和存储器装置200用于如下操作的数据,诸如读取操作、写入操作、编程操作和擦除操作。
37.存储装置110可以利用诸如静态随机存取存储器(sram)或动态随机存取存储器(dram)的易失性存储器来实施。如上所述,存储装置110可以将主机装置用于读取操作和写入操作的数据存储在存储器装置200中。为了存储数据,存储装置110可以包括程序存储器、数据存储器、写入缓冲器、读取缓冲器、映射缓冲器等。
38.控制组件120可以控制存储器系统10的一般操作,并且特别地响应于来自主机装置的写入请求或读取请求来控制存储器装置200的相应操作。控制组件120可以驱动被称为闪存转换层(ftl)的固件,以控制存储器系统10的一般操作。例如,ftl可以执行诸如逻辑-物理(l2p)映射、损耗均衡、垃圾收集和/或坏块处置的操作。l2p映射被称为逻辑块寻址(lba)。
39.ecc组件130可以在读取操作期间对从存储器装置200读取的数据中的错误进行检测和校正。当错误位的数量大于或等于可校正错误位的阈值数量时,ecc组件130可以不校正错误位,而是可以输出指示校正错误位失败的错误校正失败信号。
40.在各个实施例中,ecc组件130可以基于诸如以下编码调制来执行错误校正操作:低密度奇偶校验(ldpc)码、博斯-查德胡里-霍坤格姆(bose-chaudhuri-hocquenghem(bch))码、turbo码、turbo乘积码(tpc)、里德-所罗门(rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)或分组编码调制(bcm)。然而,错误校正不限于这些技术。因此,ecc组件130可以包括用于适当的错误校正操作的任意和所有电路、系统或装置。
41.主机接口140可以通过诸如以下的各种接口协议中的一种或多种与主机装置通信:通用串行总线(usb)、多媒体卡(mmc)、高速外围组件互连(pci-e或pcie)、小型计算机系统接口(scsi)、串列scsi(sas)、串行高级技术附件(sata)、并行高级技术附件(pata)、增强型小型磁盘接口(esdi)和/或电子集成驱动器(ide)。
42.存储器接口150可以提供存储器控制器100和存储器装置200之间的接口,以允许存储器控制器100响应于来自主机装置的请求来控制存储器装置200。存储器接口150可以在控制组件120的控制下生成存储器装置200的控制信号并处理数据。当存储器装置200是闪速存储器(例如,nand闪速存储器)时,存储器接口150可以在控制组件120的控制下生成该闪速存储器的控制信号并处理数据。
43.存储器装置200可以包括存储器单元阵列210、控制电路220、电压生成电路230、行解码器240、页面缓冲器250(其可以是页面缓冲器阵列的形式)、列解码器260以及输入和输出(输入/输出)电路270。存储器单元阵列210可以包括可以存储数据的多个存储块211。电压生成电路230、行解码器240、页面缓冲器阵列250、列解码器260和输入/输出电路270可以
形成存储器单元阵列210的外围电路。外围电路可以对存储器单元阵列210执行编程操作、读取操作、或擦除操作。控制电路220可以控制外围电路。
44.电压生成电路230可以生成各种电平的操作电压。例如,在擦除操作中,电压生成电路230可以生成各种电平的操作电压,诸如擦除电压和通过电压。
45.行解码器240可以与电压生成电路230和多个存储块211电通信。行解码器240可以响应于控制电路220生成的行地址,在多个存储块211之中选择至少一个存储块,并且将从电压生成电路230供应的操作电压传输到所选择的存储块。
46.页面缓冲器250可以通过位线bl(图3所示)与存储器单元阵列210联接。页面缓冲器250可以响应于控制电路220生成的页面缓冲器控制信号,在编程操作和读取操作中利用正电压对位线bl进行预充电、将数据传输到所选择的存储块以及从所选择的存储块接收数据,或者临时存储所传输的数据。
47.列解码器260可以向页面缓冲器250传输数据以及从页面缓冲器250接收数据,或者向输入/输出电路270传输数据以及从输入/输出电路270接收数据。
48.输入/输出电路270可以将从外部装置(例如,图1的存储器控制器100)接收的命令和地址传输到控制电路220,将数据从外部装置传输到列解码器260,或者通过输入/输出电路270将数据从列解码器260输出到外部装置。
49.控制电路220可以响应于命令和地址来控制外围电路。
50.图3是示出了根据本发明实施例的半导体存储器装置的存储块的电路图。例如,图3的存储块可以是图2所示的存储器单元阵列210的存储块211中的任意一个。
51.参照图3,存储块211可以包括联接到行解码器240的多条字线wl0至wln-1、漏极选择线dsl和源极选择线ssl。这些线可以平行地布置,其中多条字线位于dsl和ssl之间。
52.存储块211可以进一步包括分别联接到位线bl0至blm-1的多个单元串221。每一列的单元串可以包括一个或多个漏极选择晶体管dst以及一个或多个源极选择晶体管sst。在所示的实施例中,每个单元串具有一个dst和一个sst。在单元串中,多个存储器单元或存储器单元晶体管mc0至mcn-1可以在选择晶体管dst和sst之间串联联接。存储器单元中的每一个可以形成为存储一位数据的单层单元(slc)、存储两位数据的多层单元(mlc)、存储三位数据的三层单元(tlc)或存储四位数据的四层单元(qlc)。
53.每个单元串中的sst的源极可以联接到公共源极线csl,每个dst的漏极可以联接到相应的位线。单元串中的sst的栅极可以联接到ssl,单元串中的dst的栅极可以联接到dsl。不同单元串的存储器单元的栅极可以联接到各自的字线。也就是说,存储器单元mc0的栅极联接到相应的字线wl0,存储器单元mc1的栅极联接到相应的字线wl1,以此类推。联接到特定字线的一组存储器单元可以被称为一个物理页面。因此,存储块211中的物理页面的数量可以对应于字线的数量。
54.页面缓冲器阵列250可以包括联接到位线bl0至blm-1的多个页面缓冲器251。页面缓冲器251可以响应于页面缓冲器控制信号来操作。例如,页面缓冲器251可以在读取操作或验证操作期间临时存储通过位线bl0至blm-1接收的数据或感测位线的电压或电流。
55.在一些实施例中,存储块211可以包括nand型闪速存储器单元。然而,存储块211不限于这种单元类型,而是可以包括nor型闪速存储器单元。存储器单元阵列210可以被实施为两种或更多种类型的存储器单元组合的混合闪速存储器,或者被实施为控制器嵌入在存
储器芯片内部的1-nand闪速存储器。
56.图4是示出了根据本发明实施例的数据处理系统2的示图。
57.参照图4,数据处理系统2可以包括主机装置5和存储器系统10。存储器系统10可以包括存储器控制器100和存储器装置200。存储器控制器100可以包括固件(fw),固件(fw)是用于控制存储器装置200的各种操作(例如,读取操作、写入操作和擦除操作)的一类特定的软件。在一些实施例中,固件可以驻留在存储装置110中,并且可以由图2中的控制组件120运行。
58.存储器装置200可以包括多个存储器单元(例如,nand闪速存储器单元)。存储器单元以如图3所示的行和列的阵列形式布置。特定行中的单元连接到字线(例如,wl0),特定列中的单元联接到位线(例如,bl0)。这些字线和位线用于读取操作和写入操作。在写入操作期间,在字线被指定(assert)时,在位线提供待写入的数据(“1”或“0”)。在读取操作期间,字线再次被指定,然后可以从位线获取每个单元的阈值电压。多个页面可以共享属于(即,联接到)同一字线的存储器单元。
59.在存储器系统10中,存储器控制器100可以执行与来自主机装置5的一个或多个工作负载相关联的操作。工作负载可以被定义为主机装置5的应用程序所生成的数据流(或命令),这些数据流(或命令)被存储器系统10视为访问模式的集合。存储器系统10可以利用固态驱动器(ssd)来实施。根据以下报告,到2026年,ssd将占据企业存储容量的85%左右:david mcintyre“年度闪速控制器更新(annual flash controller update)”,2019年闪速存储器峰会论文集(flash memory summit 2019,fms'19)。与硬盘驱动器(hdd)相比,基于闪存的存储装置在每位的成本方面也更具优势。然而,由于擦除/写入(ew)周期数量有限且逻辑到物理(l2p)映射复杂,因此ssd中的闪速存储器装置对输入工作负载的变化更为敏感。因此,工作负载分析对于闪速存储器装置(例如,nand闪速存储器)的性能和可靠性提高变得很重要。
60.ssd的工作负载不仅限于空间特征(即,随机或顺序访问模式),因此可以使用基于开发人员经验确定的多个特征进行描述。例如,工作负载分析过程可以依赖于多个特征,诸如命令的数量及其持续时间、访问段的特征、输入和输出请求、请求之间的间隔等。然而,即使是最详尽的特征集也可能不会考虑重要的工作负载特征。而且,某些特征可能与闪存转换层(ftl)算法无关,因此应排除在外。为了解决这些问题,提出了本发明的实施例。因此,实施例提供了一种存储器系统(例如,ssd(例如,nand闪速存储器装置))中的工作负载的紧凑表示方案,其能够通过某些特征将工作负载分开。
61.根据实施例,图4的存储器控制器100可以提供一种用于输入工作负载的紧凑表示的编译器(即,编码器和解码器)及其编码和解码方法。由于工作负载可以被表示为时间序列并进一步被视为顺序数据,因此循环神经网络应该可以有效地处理这种数据。而且,工作负载的内部表示应该是紧凑的,以便存储在存储装置(例如,易失性存储器)中。因此,实施例提供基于循环神经网络模型的紧凑工作表示,并且循环神经网络(rnn)自动编码器已经被用作表示输入工作负载的模型,即包括编码器和解码器的编译器。模型的质量取决于训练集的多样性和大小。以下对循环神经网络模型和循环神经网络(rnn)自动编码器进行描述:t.mikolov等,“连续空间词表示中的语言规律(linguistic regularities in continuous space word representation)”,2013年北美计算语言学分会会议论文集
(proceedings of the 2013 conference of the north american chapter of associationfor computational linguistics),第746-751页;以及n.srivastava等,“使用lstm进行视频表示的无监督学习(unsupervised learning of video representations using lstms)”,第32届机器学习国际会议论文集(proceedings of the 32nd international conference on machine learning),pmlr 37:843-852,2015年,它们各自的全部内容通过引用并入本文。输入工作负载的紧凑表示有助于ftl重新配置和更精确的fw参数调整。如果用于训练的数据集广泛且多样,则实施例将能够检测多种类型的不同工作负载。
62.图5是示出了根据本发明实施例的循环神经网络编译器500的示图。在一些情况下,循环神经网络编译器500可以提供紧凑的工作负载表示并且被称为循环神经网络(rnn)自动编码器。
63.参照图5,循环神经网络编译器500可以包括编码器510、存储装置520和解码器530。编码器510可以接收包括与存储器装置(例如,图4的存储器装置200)相关联的多个输入命令的输入工作负载。例如,输入工作负载是从图4的主机装置5接收的。在一些实施例中,工作负载可以表示为包括n个命令c1至cn的时间序列。每个命令ci(其中1≤i≤n)可以具有至少两个特征,即命令类型(ti)、逻辑块地址(lbai)。特征不限于上述两个特征。ti是与可能的命令相对应的整数。例如,对于读取命令,ti的值可以是0,对于写入命令,ti的值可以是1,对于擦除命令,ti的值可以是2。lbai也是来自一系列可能地址的整数。例如,lbai可以是范围从0至2
32-1的整数。
64.编码器510可以使用一组激活函数生成与多个输入命令相对应的紧凑表示向量。存储装置520可以联接到编码器510,并且可以存储紧凑表示向量。解码器530可以联接到存储装置520,并且可以从存储装置520接收紧凑表示向量。解码器530可以基于紧凑表示向量和多个输入命令来生成恢复命令。以下参照图6a至图7描述编码器510、存储装置520和解码器530的细节。
65.如图6a所示,编码器510和解码器530中的每一个可以利用包括第一循环块rb1至第n循环块rbn的多个循环块601-60n来实施。第一循环块rb1至第n循环块rbn级联连接。
66.图6b是示出图6a中的循环块的一般结构的示图。
67.参照图6b,具有索引i的循环块rb(rbi)具有两个输入和两个输出。两个输入包括对应于前一单元rb
i-1
的隐藏状态的隐藏状态向量h
i-1
,以及对应于输入序列的元素的输入命令向量xi。两个输出包括对应于rbi的隐藏状态的隐藏状态向量hi,以及对应于rbi的输出值的输出向量yi。在一些实施例中,向量xi对应于输入工作负载的命令,向量yi对应于输入工作负载的恢复或预测命令。每个rb共享三个权重矩阵wy、wh和w
x
。rb的输出计算如列表1所示:
68.列表1:
[0069][0070]
参考列表1,对第一输入命令xi和第一权重矩阵w
x
的组合xiw
x
执行激活函数f(xiw
x
)以生成第一向量。在一些实施例中,激活函数包括双曲正切函数sigmoid函数和修正线性单元(relu)函数f(x)=x
+
=max(0,x)中的一个。
[0071]
对前一隐藏状态向量h
i-1
和第二权重矩阵wh的组合执行激活函数f(h
i-1
wh)以生成第二向量。在一些实施例中,此处的激活函数可以与前一个激活函数不同。
[0072]
可以对第一向量和第二向量之和f(xiw
x
)+f(h
i-1
wh)执行激活函数f(f(xiw
x
)+f(h
i-1
wh))以生成隐藏状态向量hi。
[0073]
对隐藏状态向量hi和第三权重矩阵wy的组合进行激活函数f(hiwy)可以生成输出向量yi=f(hiwy)。
[0074]
在一些实施例中,所描述的rb可以以不同的方式实施,包括门控循环单元(gru)和/或长短期记忆(lstm),如以下所描述的:j.chung等,“门控循环神经网络对序列建模的实证评估(empirical evaluation of gated recurrent neural networks on sequence modeling)”,nips 2014深度学习研讨会(nips 2014workshop on deep learning),2014年12月。
[0075]
图7是示出了图5的循环神经网络编译器的细节的示图。
[0076]
参照图7,循环神经网络编译器可以包括编码器510、存储装置520和解码器530,并且可以利用2n个循环块(rb)来实施,以便根据输入工作负载生成紧凑的表示向量r。
[0077]
编码器510可以学习包括n个命令c
1-cn的工作负载的内部表示向量r。在一些实施例中,某些工作负载可能比n个命令更短或更长,因此工作负载应该被填充(即,额外的虚拟命令被添加到工作负载)或被剪切(即,最后的命令从工作负载中移除)。可以使用具有权重矩阵w
ex
、w
eh
、w
ey
的n个循环块(rb)将工作负载转换为紧凑表示r。每个rb可以接收两个输入(即,来自前一循环块的前一隐藏状态向量h
ei-1
,以及命令ci),并且可以输出两个值(即,命令和加权隐藏状态向量h
ei
)。矩阵w
ey
可能是不可训练的,因为编码器510从输入工作负载
中积累信息并且不预测或恢复任意命令。因此,输出命令总是等于零向量。
[0078]
在图7所示的示例中,编码器510可以包括多个循环编码块rb
e1-rb
en
。每个循环编码块被配置为接收多个输入命令中的一个ci,并通过将一组激活函数f应用于接收到的输入命令来生成与接收到的输入命令相对应的隐藏状态向量h
ei
。多个循环编码块之中的最后编码块rb
en
可以生成最终隐藏状态向量h
en
作为紧凑表示向量r。
[0079]
第一编码块rb
e1
被配置为:接收多个输入命令之中的第一输入命令c1;对第一输入命令c1和第一权重矩阵w
ex
的组合执行激活函数f以生成第一向量f(c1w
ex
);对初始隐藏状态向量h
e0
和第二权重矩阵w
eh
的组合执行激活函数以生成第二向量f(h
e0weh
);对第一向量和第二向量之和执行激活函数以生成第一隐藏状态向量h
e1
;并且对第一隐藏状态向量h
e1
和第三权重矩阵w
ey
的组合执行激活函数以生成第一输出向量在一些实施例中,初始隐藏状态向量h
e0
的值可以是0,第一输出向量的值可以是0。
[0080]
第二编码块rb
e2
被配置为:接收多个输入命令之中的第二输入命令c2;对第二输入命令c2和第一权重矩阵w
ex
的组合执行激活函数f以生成第三向量f(c2w
ex
);对第一隐藏状态向量h
e1
和第二权重矩阵w
eh
的组合执行激活函数以生成第四向量f(h
e1weh
);对第三向量和第四向量之和执行激活函数以生成第二隐藏状态向量h
e2
;并且对第二隐藏状态向量h
e2
和第三权重矩阵w
ey
的组合执行激活函数以生成第二输出向量在一些实施例中,第二输出向量的值可以是0。
[0081]
多个循环编码块之中的剩余编码块可以执行与第一编码块rb
e1
和第二编码块rb
e2
类似的操作。多个循环编码块之中的最后编码块rb
en
可以生成最终隐藏状态向量h
en
作为紧凑表示向量r。紧凑表示向量r可以存储在存储装置520中。在一些实施例中,存储装置520可以是易失性存储器,例如随机存取存储器(ram)。
[0082]
解码器530可以从存储装置520接收紧凑表示向量r,并且基于紧凑表示向量r和多个输入命令c
1-cn生成恢复命令解码器530可以恢复工作负载命令其可以不与原始工作负载完全相同。解码器530的结构可以与编码器510对称,但在输入命令方面具有相反顺序的级联连接结构。解码器530可以利用具有权重矩阵w
dx
、w
dh
、w
dy
的n个rb单元来处理紧凑表示向量r,但是按从最后一条至第一条命令的降序进行。也就是说,多个解码块rb
d1-rb
dn
之中的最后解码块rb
dn
可以位于解码器530的第一位置,第一解码块rb
d1
可以位于解码器530的最后位置。在一些实施例中,第一输入命令cn可以与零向量相同,因为该命令应该从紧凑表示向量r恢复。在一些实施例中,权重矩阵w
dx
、w
dh
、w
dy
分别与权重矩阵w
ex
、w
eh
、w
ey
相同或不同。
[0083]
在图7所示的示例中,最后解码块rb
dn
被配置为:接收多个输入命令c
1-cn之中的最后输入命令cn和紧凑表示向量r;对最后输入命令cn和第一权重矩阵w
dx
的组合执行激活函数f以生成第一向量f(cnw
dx
);对作为输入隐藏状态向量h
en
的紧凑表示向量r和第二权重矩阵w
dh
的组合执行激活函数以生成第二向量f(h
enwdh
);对第一向量和第二向量之和执行激活函数以生成最后隐藏状态向量h
dn
;并且对最后隐藏状态向量h
dn
和第三权重矩阵w
dy
的组合执行激活函数以生成最后输出向量
[0084]
第二解码块rb
d2
被配置为:接收多个输入命令c
1-cn之中的第二输入命令c2;对第二输入命令c2和第一权重矩阵w
dx
的组合执行激活函数f以生成第三向量f(c2w
dx
);对从第三解码块rb
d3
接收的第二隐藏状态向量h
d3
和第二权重矩阵w
dh
的组合执行激活函数以生成第四向量f(h
d3wdh
);对第三向量和第四向量之和执行激活函数以生成第二隐藏状态向量h
d2
;并且对第二隐藏状态向量和第三权重矩阵的组合执行激活函数以生成第二输出向量
[0085]
第一解码块rb
d1
被配置为:接收多个输入命令c
1-cn之中的第一输入命令c1;对第一输入命令c1和第一权重矩阵w
dx
的组合执行激活函数f以生成第三向量f(c1w
dx
);对从第二解码块rb
d2
接收的第二隐藏状态向量h
d2
和第二权重矩阵w
dh
的组合执行激活函数以生成第四向量f(h
d2wdh
);对第三向量和第四向量之和执行激活函数以生成第一隐藏状态向量h
d1
;并且对第一隐藏状态向量和第三权重矩阵的组合执行激活函数以生成第一输出向量
[0086]
图7中的rnn编译器的模型可以使用包含m个工作负载的数据集进行训练,这些工作负载可以具有不同的特征。训练过程可以调整权重矩阵w
ex
、w
eh
、w
ey
、w
dx
、w
dh
、w
dy
,使得源工作负载(c1,c2,
……
,cn)和恢复的工作负载之间的差异被最小化。训练过程中可以使用诸如梯度下降、rmsprop、adam等的不同优化算法。模型可以具有两个超参数n和d。n表示编码器和解码器中rb的数量,d表示目标紧凑工作负载表示向量r的维度。
[0087]
图8是示出了根据本发明实施例的循环神经网络编译器500的示图。
[0088]
参照图8,除了图5中的编码器510、存储装置520和解码器530之外,循环神经网络编译器500还可以包括预测器540。预测器540可以预测输入工作负载后的接下来的k个命令并生成预测命令。
[0089]
图9是示出了图8的循环神经网络编译器500的细节的示图。循环神经网络编译器500中的编码器510和解码器530可以具有与图7所示相同的结构。
[0090]
参照图9,预测器540可以包括多个循环预测块rb
p1-rb
pk
。预测器540可以接收紧凑表示向量r,并且基于紧凑表示向量r和多个输入命令之中的最后输入命令cn生成预测命令
[0091]
多个循环预测块可以包括第一预测块rb
p1
至最后预测块rb
pk
,它们具有升序(即,从第一预测块至最后预测块)的级联连接结构。
[0092]
第一预测块rb
p1
被配置为:从存储装置520接收多个输入命令之中的最后输入命令cn和紧凑表示向量r;对最后输入命令和第一权重矩阵w
px
的组合执行激活函数f以生成第一向量对紧凑表示向量r(=h
en
)和第二权重矩阵w
ph
的组合执行激活函数以生成第二向量f(h
enwph
);对第一向量和第二向量之和执行激活函数以生成第一隐藏状态向量h
p1
;并且对第一隐藏状态向量h
p1
和第三权重矩阵w
py
的组合执行激活函数以生成第一输出向量作为最后输入命令之后的第一预测命令。
[0093]
第二预测块rb
p2
被配置为:接收第一预测命令和第一隐藏状态向量h
p1
;对第一预测命令和第一权重矩阵w
px
的组合执行激活函数f以生成第三向量对第一隐藏状态向量h
p1
和第二权重矩阵w
ph
的组合执行激活函数以生成第四向量f(h
p1wph
);对第三向量和第四向量之和执行激活函数以生成第二隐藏状态向量h
p2
;并且对第二隐藏状
态向量h
p2
和第三权重矩阵w
py
的组合执行激活函数以生成第二输出向量作为第一预测命令之后的第二预测命令。
[0094]
多个循环预测块之中的剩余预测块可以执行与第一预测块rb
p1
和第二预测块rb
p2
类似的操作。多个循环预测块之中的最后预测块rb
pk
可以生成最终隐藏状态向量h
pk

[0095]
因此,预测器540需要额外的k个rb和权重矩阵w
px
、w
ph
、w
py
。在一些实施例中,权重矩阵wp
x
、w
ph
、w
py
分别与权重矩阵w
ex
、weh、w
ey
相同或不同。预测器540的输出是输入工作负载c
1-cn的命令后的接下来的k个命令每个预测命令作为输入命令输入下一个rb。因此,预测并生成了输入工作负载后的接下来的k个命令
[0096]
以下描述根据实施例的循环神经网络(rnn)编译器的实施方案的示例。
[0097]
值得注意的是,用于紧凑工作负载表示的循环神经网络(rnn)编译器已使用长短期记忆(lstm)循环块实施,并在包含m=900个合成工作负载、n=10,000个命令的每个数据集上进行测试。
[0098]
数据集有9种类型(每种类型具有100个样本)的工作负载,这些负载基于如下两个参数生成:队列深度(qd)和读取/写入比率(rwr),rwr表示工作负载中读取与写入命令的比率。所有工作负载是随机的,列表2中示出了9种工作负载类型:
[0099]
列表2:
[0100][0101]
数据集中的工作负载已经表示为d=25维向量。这些向量已经通过降维算法(例如,t-sne算法)进行了处理,以便在三维(3-d)空间中对其进行可视化。以下对t-sne算法的一种实施方案进行了描述:laurens van der maaten和geoffrey hinton,“使用t-sne可视化数据(visualizing data using t-sne)”,机器学习研究杂志9(journal of machine learning research 9),第2579-2605页,2008年。为了清楚起见,仅仅绘制了90个点(每个工作负载类型10个),因为每个工作负载类型的密度很高,另外810个点将妨碍点之间的图
w10.00000.78940.56070.00050.78940.59080.00030.78930.5800w20.78940.00000.23070.78940.00020.20020.78940.00020.2109w30.56070.23070.00000.56070.23070.03050.56070.23070.0199w40.00050.78940.56070.00000.78940.59080.00020.78940.5800w50.78940.00020.23070.78940.00000.20020.78940.00010.2109w60.59080.20020.03050.59080.20020.00000.59080.20020.0108w70.00030.78940.56070.00020.78940.59080.00000.78940.5800w80.78930.00020.23070.78940.00010.20020.78940.00000.2102w90.58000.21090.01990.58000.21090.01080.58000.21020.0000
[0109]
如图10和表1所示,工作负载大多由一定的读取/写入比率(rwr)分开。例如,(w1,w4,w7)通过rwr=0/100分开,(w2,w5,w8)通过rwr=100/0分开,并且(w3,w6,w9)通过rwr=70/30分开。最后一组(w3、w6、w9)更加多样化,队列深度特征的影响更大。因此,可以看出,根据实施例的紧凑工作负载表示方案可以通过重要的特征将工作负载分开并估计nand闪存装置中的输入工作负载之间的差异。
[0110]
如上所述,实施例提供一种紧凑工作负载表示方案以通过重要的特征将工作负载分开并估计输入工作负载之间的差异。实施例可以有助于ftl重新配置和更精确的fw参数调整。如果用于训练的数据集广泛且多样,则实施例将能够检测多种类型的不同工作负载。
[0111]
尽管为了清楚和理解的目的已经详细地示出和描述了前述实施例,但是本发明不限于所提供的细节。如本领域技术人员根据前述公开内容将理解的,存在许多实施本发明的替代方式。因此,所公开的实施例是示例性的,而非限制性的。本发明旨在涵盖落入所附权利要求范围内的所有修改方案和替代方案。

技术特征:


1.一种系统,包括:存储器装置;以及控制器,所述控制器包括循环神经网络编译器,所述循环神经网络编译器包括具有多个循环编码块的编码器,所述多个循环编码块包括第一编码块至最后编码块,其中每个循环编码块:接收与所述存储器装置相关联的输入工作负载中的多个输入命令中的一个;以及通过将一组激活函数应用于接收到的输入命令,生成与所述接收到的输入命令相对应的隐藏状态向量,并且其中所述最后编码块生成最终的隐藏状态向量作为紧凑表示向量。2.根据权利要求1所述的系统,其中,所述一组激活函数之中的激活函数包括双曲正切函数、sigmoid函数和修正线性单元函数中的一个。3.根据权利要求1所述的系统,其中,所述第一编码块至所述最后编码块级联连接。4.根据权利要求3所述的系统,其中,所述第一编码块:接收所述多个输入命令之中的第一输入命令;对所述第一输入命令与第一权重矩阵的组合执行所述激活函数以生成第一向量;对初始隐藏状态向量与第二权重矩阵的组合执行所述激活函数以生成第二向量;对所述第一向量与所述第二向量之和执行所述激活函数以生成第一隐藏状态向量;并且对所述第一隐藏状态向量与第三权重矩阵的组合执行所述激活函数以生成第一输出向量。5.根据权利要求4所述的系统,其中,所述多个循环编码块之中的第二编码块:接收所述多个输入命令之中的第二输入命令;对所述第二输入命令与所述第一权重矩阵的组合执行所述激活函数以生成第三向量;对所述第一隐藏状态向量与所述第二权重矩阵的组合执行所述激活函数以生成第四向量;对所述第三向量与所述第四向量之和执行所述激活函数以生成第二隐藏状态向量;并且对所述第二隐藏状态向量与所述第三权重矩阵的组合执行所述激活函数以生成第二输出向量。6.根据权利要求1所述的系统,其中,所述循环神经网络编译器进一步包括:存储装置,所述存储装置联接到所述最后编码块并存储所述紧凑表示向量;以及解码器,所述解码器包括多个循环解码块,并且接收所述紧凑表示向量并基于所述紧凑表示向量和所述多个输入命令生成恢复命令。7.根据权利要求6所述的系统,其中,所述多个循环解码块包括第一解码块至最后解码块,所述第一解码块至所述最后解码块与所述第一编码块至所述最后编码块对称并具有降序的级联连接结构。8.根据权利要求7所述的系统,其中,所述最后解码块,接收所述多个输入命令之中的最后输入命令与所述紧凑表示向量;对所述最后输入命令与第一权重矩阵的组合执行所述激活函数以生成第一向量;
对所述紧凑表示向量与第二权重矩阵的组合执行所述激活函数以生成第二向量;对所述第一向量与所述第二向量之和执行所述激活函数以生成最后隐藏状态向量;并且对所述最后隐藏状态向量与第三权重矩阵的组合执行所述激活函数以生成最后输出向量。9.根据权利要求8所述的系统,其中,所述第一解码块:接收所述多个输入命令之中的第一输入命令;对所述第一输入命令与所述第一权重矩阵的组合执行所述激活函数以生成第三向量;对从第二解码块接收的第二隐藏状态向量与所述第二权重矩阵的组合执行所述激活函数以生成第四向量;对所述第三向量与所述第四向量之和执行所述激活函数以生成第一隐藏状态向量;并且对所述第一隐藏状态向量与所述第三权重矩阵的组合执行所述激活函数以生成第一输出向量。10.根据权利要求8所述的系统,其中,所述第一权重矩阵、所述第二权重矩阵和所述第三权重矩阵被训练成使得所述多个输入命令和恢复命令之间的差异被最小化。11.根据权利要求6所述的系统,进一步包括:预测器,所述预测器包括多个循环预测块,并且接收所述紧凑表示向量并基于所述紧凑表示向量和所述多个输入命令之中的最后输入命令生成预测命令,其中所述多个循环预测块包括第一预测块至最后预测块,所述第一预测块至所述最后预测块具有升序的级联连接结构。12.根据权利要求11所述的系统,其中,所述第一预测块:接收所述多个输入命令之中的最后输入命令与所述紧凑表示向量;对所述最后输入命令与第一权重矩阵的组合执行所述激活函数以生成第一向量;对所述紧凑表示向量与第二权重矩阵的组合执行所述激活函数以生成第二向量;对所述第一向量与所述第二向量之和执行所述激活函数以生成第一隐藏状态向量;并且对所述第一隐藏状态向量与第三权重矩阵的组合执行所述激活函数以生成第一输出向量,作为所述最后输入命令之后的第一预测命令。13.根据权利要求12所述的系统,其中,所述第二预测块:接收所述第一预测命令与所述第一隐藏状态向量;对所述第一预测命令与所述第一权重矩阵的组合执行所述激活函数以生成第三向量;对所述第一隐藏状态向量与所述第二权重矩阵的组合执行所述激活函数以生成第四向量;对所述第三向量与所述第四向量之和执行所述激活函数以生成第二隐藏状态向量;并且对所述第二隐藏状态向量与所述第三权重矩阵的组合执行所述激活函数以生成第二输出向量,作为所述第一预测命令之后的第二预测命令。14.根据权利要求11所述的系统,其中,所述循环编码块、所述循环解码块和所述循环
预测块以不同的方式实施。15.一种用于操作存储器系统的控制器的方法,所述方法包括:提供循环神经网络编译器,所述循环神经网络编译器包括具有多个循环编码块的编码器;每个循环编码块接收与所述存储器系统的存储器装置相关联的输入工作负载中的多个输入命令中的一个;并且每个循环编码块通过将一组激活函数应用于接收到的输入命令,生成与所述接收到的输入命令相对应的隐藏状态向量,其中所述多个循环编码块之中的最后编码块生成最终的隐藏状态向量作为与所述多个输入命令相对应的紧凑表示向量。16.根据权利要求15所述的方法,其中,所述一组激活函数之中的激活函数包括双曲正切函数、sigmoid函数和修正线性单元函数中的一个,并且其中所述第一编码块至所述最后编码块级联连接。17.根据权利要求15所述的方法,进一步包括:提供存储装置与解码器,所述存储装置联接到所述最后编码块并存储所述紧凑表示向量,所述解码器包括多个循环解码块,并且接收所述紧凑表示向量并基于所述紧凑表示向量和所述多个输入命令生成恢复命令。18.根据权利要求17所述的方法,其中,所述多个循环解码块包括第一解码块至最后解码块,所述第一解码块至所述最后解码块与所述第一编码块至所述最后编码块对称并具有降序的级联连接结构。19.根据权利要求17所述的方法,其中,生成与所述接收到的输入命令相对应的隐藏状态向量包括对所述接收到的输入命令与设置的一个或多个矩阵的组合执行所述激活函数,其中所述设置的一个或多个矩阵被训练成使得所述多个输入命令和所述恢复命令之间的差异被最小化。20.根据权利要求17所述的方法,进一步包括:提供预测器,所述预测器包括多个循环预测块,并且接收所述紧凑表示向量并基于所述紧凑表示向量和所述多个输入命令之中的最后输入命令生成预测命令,其中所述多个循环预测块包括第一预测块至最后预测块,所述第一预测块至所述最后预测块具有升序的级联连接结构,并且其中所述循环编码块、所述循环解码块和所述循环预测块以不同的方式实施。

技术总结


本公开涉及存储器系统的紧凑工作负载表示。在存储器系统中生成输入工作负载的紧凑表示。存储器系统包括存储器装置;以及具有循环神经网络编译器的控制器。循环神经网络编译器包括具有循环编码块的编码器。每个循环编码块:接收与存储器装置相关联的输入工作负载中的输入命令中的一个;并且通过将一组激活函数应用于接收到的输入命令来生成与接收到的输入命令相对应的隐藏状态向量。最后编码块生成最终的隐藏状态向量作为紧凑表示向量。最终的隐藏状态向量作为紧凑表示向量。最终的隐藏状态向量作为紧凑表示向量。


技术研发人员:

斯阿赫

受保护的技术使用者:

爱思开海力士有限公司

技术研发日:

2021.10.18

技术公布日:

2022/8/18

本文发布于:2024-09-22 04:33:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/26911.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:向量   存储器   所述   多个
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议