半导体存储器装置的控制器及其操作方法与流程

文档序号:21406935发布日期:2020-07-07 14:41阅读:264来源:国知局
半导体存储器装置的控制器及其操作方法与流程

相关申请的交叉引用

本申请要求于2018年12月28日提交的申请号为10-2018-0172800的韩国专利申请的优先权,该韩国专利申请通过引用整体并入本文。

本公开总体涉及一种电子装置,并且更特别地,涉及一种半导体存储器装置的控制器及其操作方法。



背景技术:

半导体存储器装置可以以串水平地布置到半导体衬底的二维结构或者以串垂直地布置到半导体衬底的三维结构形成。三维半导体存储器装置被设计以克服二维半导体存储器装置中的集成度限制,并且可以包括垂直地堆叠在半导体衬底上的多个存储器单元。控制器可以控制半导体存储器装置的操作。



技术实现要素:

实施例提供一种能够有效地使用高速缓存缓冲器的控制器及其操作方法。

根据本公开的一方面,提供一种控制器,该控制器控制半导体存储器装置的操作,该控制器包括:高速缓存缓冲器,被配置为存储多个高速缓存数据;请求分析器,被配置为生成对应于从主机接收的读取请求的、包括关于待被读取的读取数据的大小的信息的请求信息;以及高速缓存控制器,被配置为基于请求信息中的读取数据的大小,确定多个高速缓存数据的逐出策略。

根据本公开的另一方面,提供一种操作控制器的方法,该控制器控制半导体存储器装置的操作,该方法包括:从主机接收数据的读取请求;基于对应于接收的读取请求的读取数据的大小,确定高速缓存缓冲器的逐出策略;以及基于确定的逐出策略,删除存储在高速缓存缓冲器中的多个高速缓存数据中的高速缓存数据。

根据本公开的又一方面,提供一种存储器系统,包括:半导体存储器装置,包括用于存储多个数据的多个存储器单元;以及控制器,被配置为控制半导体存储器装置的操作,并且将多个数据之中的一些数据作为多个高速缓存数据进行存储,其中控制器从主机接收读取请求,并基于对应于读取请求的待被读取的读取数据的大小,逐出多个高速缓存数据之中的高速缓存数据。

根据本公开的又一方面,提供一种存储器系统,包括:存储器装置,包括用于存储多个数据的多个区域;以及控制器。该控制器包括:高速缓存缓冲器,适于高速缓存多个数据之中的数据子集;以及高速缓存控制器,被配置为确定高速缓存缓冲器的容量是否小于从存储器装置读取的读取数据的大小。另外,当高速缓存缓冲器的容量小于读取数据的大小时,高速缓存控制器进一步被配置为从高速缓存缓冲器中逐出数据子集之中的选择高速缓存数据。

附图说明

现在将在下文中参照附图更全面地描述示例性实施例;然而,示例性实施例可以以不同的形式实施,并且不应该被解释为限于本文所阐述的实施例。而是,这些实施例被提供以使本公开将是彻底且完整的,并且将向本领域技术人员充分传达示例性实施例的范围。

在附图中,为了清楚说明,可以夸大尺寸。将理解的是,当元件被称为在两个元件“之间”时,该元件可以是这两个元件之间仅有的元件,或者也可以存在一个或多个中间元件。相同的附图标记始终表示相同的元件。

图1是示出存储器系统的示例的框图。

图2是示出图1所示的半导体存储器装置的框图。

图3是示出图2所示的存储器单元阵列的实施例的示图。

图4是示出图3所示的存储块之中的任意一个存储块的电路图。

图5是示出图3所示的存储块之中的一个存储块的另一实施例的电路图。

图6是示出图2所示的存储器单元阵列中包括的多个存储块之中的任意一个存储块的实施例的电路图。

图7是示出根据本公开的实施例的控制器的框图。

图8是示出存储在图7所示的高速缓存缓冲器中的数据的示例的示图。

图9是示出根据本公开的实施例的控制器的操作方法的流程图。

图10是更详细地示出根据本公开的实施例的控制器的操作方法的示图。

图11是示出图10所示的步骤的示例性实施例的示图。

图12a至图12d是示例性地示出描述根据最近最久未使用(lru)算法管理高速缓存缓冲器的高速缓存信息表的示图。

图13a至图13d是示例性地示出描述根据高速缓存使用计数算法管理高速缓存缓冲器的高速缓存信息表的示图。

图14a至图14g是示出当读取大容量数据时根据lru算法逐出高速缓存数据的情况的示图。

图15a至图15f是示出根据本公开的实施例的通过控制器及其操作方法来控制高速缓存缓冲器的数据的进程的示图。

图16是示出包括图2所示的半导体存储器装置和图7所示的控制器的存储器系统的框图。

图17是示出图16所示的存储器系统的应用示例的框图。

图18是示出包括参照图17描述的存储器系统的计算系统的框图。

具体实施方式

在本公开中,在结合附图阅读以下示例性实施例之后,优点、特征以及用于实现优点和特征的方法将变得更加明显。然而,本公开可以以不同的形式实施,而不应该被解释为限于本文所阐述的实施例。而是,这些实施例被提供是为了详细地描述本公开,以达到使本公开所属领域的技术人员可以容易地实施本公开的技术概念的程度。

在整个说明书中,当元件被称为“连接”或“联接”到另一元件时,该元件可以直接连接或联接到另一元件,或者通过插设在其间的一个或多个中间元件间接连接或联接到另一元件。另外,当元件被称为“包括”组件时,这表示该元件可以进一步包括另一组件而不排除另一组件,除非存在另外说明的不同公开内容。

在下文中,将参照附图详细地描述本公开的示例性实施例。相同的附图标记用于表示与其他附图中所示的元件相同的元件。在以下描述中,可以仅描述用于理解根据示例性实施例的操作所需的部分,并且可以省略其他部分的描述,以免模糊实施例的重要概念。

图1是示出存储器系统的示例的框图。

参照图1,存储器系统1000包括半导体存储器装置100和控制器200。

半导体存储器装置100在控制器200的控制下操作。更具体地,半导体存储器装置100响应于来自控制器200的写入请求将数据写入存储器单元阵列中。当从控制器200接收到写入命令、地址和数据作为写入请求时,半导体存储器装置100将数据写入由地址指示的存储器单元中。

半导体存储器装置100响应于来自控制器200的读取请求执行读取操作。当从控制器200接收到读取命令和地址作为读取请求时,半导体存储器装置100读取由地址指示的存储器单元的数据,并将读取数据输出到控制器200。

半导体存储器装置100可以是nand闪速存储器、垂直nand(以下称为“vnand”)闪速存储器、nor闪速存储器、电阻随机存取存储器(rram)、相变随机存取存储器(pram)、磁阻随机存取存储器(mram)、铁电随机存取存储器(fram)、自旋转移力矩随机存取存储器(stt-ram)等。而且,本公开的半导体存储器装置100可以被实现为三维阵列结构。本公开不仅可以应用于电荷存储层配置有导电浮栅的闪速存储器装置,而且还可以应用于电荷存储层配置有绝缘层的电荷撷取闪存(ctf)。

控制器200联接在半导体存储器装置100和主机host之间。控制器200接口连接主机host和半导体存储器装置100。控制器200可以在主机host的控制下向半导体存储器装置100传送写入请求或读取请求。

图2是示出图1所示的半导体存储器装置的框图。

参照图2,半导体存储器装置100包括存储器单元阵列110、地址解码器120、读取和写入(读取/写入)电路130、控制逻辑140和电压发生器150。

存储器单元阵列110包括多个存储块blk1至blkz。多个存储块blk1至blkz通过字线wl联接到地址解码器120。多个存储块blk1至blkz通过位线bl1至blm联接到读取/写入电路130。多个存储块blk1至blkz中的每一个包括多个存储器单元。在实施例中,多个存储器单元是非易失性存储器单元,并且可以被配置为具有垂直沟道结构的非易失性存储器单元。存储器单元阵列110可以被配置为具有二维结构的存储器单元阵列。在一些实施例中,存储器单元阵列110可以被配置为具有三维结构的存储器单元阵列。同时,存储器单元阵列110中的多个存储器单元中的每一个可以存储至少一位数据。在实施例中,存储器单元阵列110中的多个存储器单元中的每一个可以是存储一位数据的单层单元(slc)。在另一实施例中,存储器单元阵列110中的多个存储器单元中的每一个可以是存储两位数据的多层单元(mlc)。在又一实施例中,存储器单元阵列110中的多个存储器单元中的每一个可以是存储三位数据的三层单元(tlc)。在又一实施例中,存储器单元阵列110中的多个存储器单元中的每一个可以是存储四位数据的四层单元(qlc)。在一些实施例中,存储器单元阵列110可以包括每一个都存储五位或更多位数据的多个存储器单元。

地址解码器120、读取/写入电路130、控制逻辑140和电压发生器150作为驱动存储器单元阵列110的外围电路进行操作。地址解码器120通过字线wl联接到存储器单元阵列110。地址解码器120可以在控制逻辑140的控制下进行操作。地址解码器120通过设置在半导体存储器装置100中的输入/输出缓冲器(未示出)接收地址。

地址解码器120对接收的地址中的块地址进行解码。地址解码器120根据解码的块地址选择至少一个存储块。在读取操作期间的读取电压施加操作中,地址解码器120将读取电压vread施加到选择的存储块之中的选择的字线,并将通过电压vpass施加到其他未选择的字线。在编程验证操作中,地址解码器120将验证电压施加到选择的存储块之中的选择的字线,并将通过电压vpass施加到其他未选择的字线。读取电压vread、验证电压和通过电压vpass可以由电压发生器150生成。

地址解码器120对接收的地址中的列地址进行解码。地址解码器12将解码的列地址传送到读取/写入电路130。

以页面为单位执行半导体存储器装置100的读取操作和编程操作。在读取操作和编程操作的请求中接收的地址包括块地址、行地址和列地址。地址解码器120根据块地址和行地址选择一个存储块和一个字线。列地址由地址解码器120解码以提供给读取/写入电路130。

地址解码器120可以包括块解码器、行解码器、列解码器以及地址缓冲器。

读取/写入电路130包括多个页面缓冲器pb1至pbm。读取/写入电路130可以在存储器单元阵列110的读取操作中作为“读取电路”进行操作,并且在存储器单元阵列110的写入操作中作为“写入电路”进行操作。多个页面缓冲器pb1至pbm通过位线bl1至blm联接到存储器单元阵列110。为了在读取操作和编程验证操作中感测存储器单元的阈值电压,多个页面缓冲器pb1至pbm在向连接到存储器单元的位线连续地供应感测电流的同时感测根据相应存储器单元的编程状态而流动的电流量的变化,并将感测的变化锁存为感测数据。读取/写入电路130响应于从控制逻辑140输出的页面缓冲器控制信号而操作。

在读取操作中,读取/写入电路130感测存储器单元的数据,临时存储读取数据,然后将数据data输出到半导体存储器装置100的输入/输出缓冲器(未示出)。在示例性实施例中,除了页面缓冲器(或页面寄存器)之外,读取/写入电路130还可以包括列选择电路。

控制逻辑140联接到地址解码器120、读取/写入电路130以及电压发生器150。控制逻辑140通过半导体存储器装置100的输入/输出缓冲器(未示出)接收命令cmd和控制信号ctrl。控制逻辑140被配置为响应于控制信号ctrl控制半导体存储器装置100的全部操作。此外,控制逻辑140输出用于控制多个页面缓冲器pb1至pbm的感测节点预充电电位电平的控制信号。控制逻辑140可以控制读取/写入电路130执行存储器单元阵列110的读取操作。

在读取操作中,电压发生器150响应于从控制逻辑140输出的控制信号生成读取电压vread和通过电压vpass。为了生成具有各种电压电平的多个电压,电压发生器150可以包括用于接收内部电源电压的多个泵浦电容器。此外,电压发生器150可以在控制逻辑140的控制下通过选择性地激活多个泵浦电容器来生成多个电压。

地址解码器120、读取/写入电路130以及电压发生器150可以用作对存储器单元阵列110执行读取操作、写入操作和擦除操作的“外围电路”。外围电路在控制逻辑140的控制下对存储器单元阵列110执行读取操作、写入操作以及擦除操作。

图3是示出图2所示的存储器单元阵列110的示例的示图。

参照图3,存储器单元阵列110包括多个存储块blk1至blkz。每个存储块具有三维结构。每个存储块包括堆叠在衬底上的多个存储器单元。多个存储器单元沿+x、+y和+z方向布置。将参照图4和图5更详细地描述每个存储块的结构。

图4是示出图3所示的多个存储块blk1至blkz之中的存储块blka的电路图。

参照图4,存储块blka包括多个单元串cs11至cs1m和cs21至cs2m。在实施例中,多个单元串cs11至cs1m和cs21至cs2m中的每一个可以形成为“u”形。在存储块blka中,m个单元串被布置在行方向(即,+x方向)上。在图4中,示出了两个单元串被布置在列方向(即,+y方向)上。然而,这是为了方便起见,将理解的是,三个单元串可以布置在列方向上。

多个单元串cs11至cs1m和cs21至cs2m中的每一个包括至少一个源极选择晶体管sst、第一至第n存储器单元mc1至mcn、管道晶体管pt以及至少一个漏极选择晶体管dst。

选择晶体管sst和dst以及存储器单元mc1至mcn可以具有彼此类似的结构。在实施例中,选择晶体管sst和dst以及存储器单元mc1至mcn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层中的至少一个的柱。

每个单元串的源极选择晶体管sst联接在共源线csl和存储器单元mc1至mcp之间。

在实施例中,布置在相同行上的单元串的源极选择晶体管联接到在行方向上延伸的源极选择线,并且布置在不同行上的单元串的源极选择晶体管联接到不同的源极选择线。在图4中,第一行上的单元串cs11至cs1m的源极选择晶体管联接到第一源极选择线ssl1。第二行上的单元串cs21至cs2m的源极选择晶体管联接到第二源极选择线ssl2。

在另一实施例中,单元串cs11至cs1m和cs21至cs2m的源极选择晶体管可以共同联接到一个源极选择线。

每个单元串的第一至第n存储器单元mc1至mcn联接在源极选择晶体管sst和漏极选择晶体管dst之间。

第一至第n存储器单元mc1至mcn可以被划分为第一至第p存储器单元mc1至mcp以及第p+1至第n存储器单元mcp+1至mcn。第一至第p存储器单元mc1至mcp被顺序地布置在与+z方向相反的方向上,并且串联联接在源极选择晶体管sst和管道晶体管pt之间。第p+1至第n存储器单元mcp+1至mcn被顺序地布置在+z方向上并且串联联接在管道晶体管pt和漏极选择晶体管dst之间。第一至第p存储器单元mc1至mcp和第p+1至第n存储器单元mcp+1至mcn通过管道晶体管pt联接。每个单元串的第一至第n存储器单元mc1至mcn的栅极分别联接到第一至第n字线wl1至wln。

每个单元串的管道晶体管pt的栅极联接到管线pl。

每个单元串的漏极选择晶体管dst联接在相应位线和存储器单元mcp+1至mcn之间。布置在行方向上的单元串联接到在行方向上延伸的漏极选择线。第一行上的单元串cs11至cs1m的漏极选择晶体管联接到第一漏极选择线dsl1。第二行上的单元串cs21至cs2m的漏极选择晶体管联接到第二漏极选择线dsl2。

布置在列方向上的单元串联接到在列方向上延伸的位线。在图4中,第一列上的单元串cs11和cs21联接到第一位线bl1。第m列上的单元串cs1m和cs2m联接到第m位线blm。

布置在行方向上的单元串中的联接到相同字线的存储器单元构成一个页面。例如,第一行上的单元串cs11至cs1m中的联接到第一字线wl1的存储器单元构成一个页面。第二行上的单元串cs21至cs2m中的联接到第一字线wl1的存储器单元构成另一页面。当漏极选择线dsl1和dsl2中的任意一个被选择时,布置在一个行方向上的单元串可以被选择。当字线wl1至wln中的任意一个被选择时,选择的单元串中的一个页面可以被选择。

在另一实施例中,可以设置偶数位线和奇数位线,而不是第一至第m位线bl1至blm。布置在行方向上的单元串cs11至cs1m或cs21至cs2m之中的偶数单元串可以分别联接到偶数位线,并且布置在行方向上的单元串cs11至cs1m或cs21至cs2m之中的奇数单元串可以分别联接到奇数位线。

在实施例中,第一至第n存储器单元mc1至mcn中的至少一个可以用作虚设存储器单元。例如,可以设置至少一个虚设存储器单元以减小源极选择晶体管sst与存储器单元mc1至mcp之间的电场。可选地,可以设置至少一个虚设存储器单元以减小漏极选择晶体管dst与存储器单元mcp+1至mcn之间的电场。当虚设存储器单元的数量增加时,存储块blka的操作的可靠性提高。存储块blka的大小增加。当虚设存储器单元的数量减少时,存储块blka的大小减小。另一方面,存储块blka的操作的可靠性可能劣化。

为了有效地控制至少一个虚设存储器单元,虚设存储器单元可以具有所需的阈值电压。在存储块blka的擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到联接到各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。

图5是示出图3所示的多个存储块blk1至blkz之中的存储块blkb的电路图。

参照图5,存储块blkb包括多个单元串cs11'至cs1m'和cs21'至cs2m'。多个单元串cs11'至cs1m'和cs21'至cs2m'中的每一个沿+z方向延伸。多个单元串cs11'至cs1m'和cs21'至cs2m'中的每一个包括堆叠在存储块blkb下方的衬底(未示出)上的至少一个源极选择晶体管sst、第一至第n存储器单元mc1至mcn和至少一个漏极选择晶体管dst。

每个单元串的源极选择晶体管sst联接在共源线csl和存储器单元mc1至mcn之间。布置在相同行上的单元串的源极选择晶体管联接到相同的源极选择线。布置在第一行上的单元串cs11'至cs1m'的源极选择晶体管联接到第一源极选择线ssl1。布置在第二行上的单元串cs21'至cs2m'的源极选择晶体管联接到第二源极选择线ssl2。在另一实施例中,单元串cs11'至cs1m'和cs21'至cs2m'的源极选择晶体管可以共同联接到一个源极选择线。

每个单元串的第一至第n存储器单元mc1至mcn串联联接在源极选择晶体管sst和漏极选择晶体管dst之间。第一至第n存储器单元mc1至mcn的栅极分别联接到第一至第n字线wl1至wln。

每个单元串的漏极选择晶体管dst联接在相应位线和存储器单元mc1至mcn之间。布置在行方向上的单元串的漏极选择晶体管联接到在行方向上延伸的漏极选择线。第一行上的单元串cs11'至cs1m'的漏极选择晶体管联接到第一漏极选择线dsl1。第二行上的单元串cs21'至cs2m'的漏极选择晶体管联接到第二漏极选择线dsl2。

因此,除了从每个单元串中排除管道晶体管pt之外,图5的存储块blkb与图4的存储块blka具有相同的电路。

在另一实施例中,可以设置偶数位线和奇数位线,而不是第一至第m位线bl1至blm。布置在行方向上的单元串cs11'至cs1m'或cs21'至cs2m'之中的偶数单元串可以分别联接到偶数位线。布置在行方向上的单元串cs11'至cs1m'或cs21'至cs2m'之中的奇数单元串可以分别联接到奇数位线。

在实施例中,第一至第n存储器单元mc1至mcn中的至少一个可以用作虚设存储器单元。例如,可以设置至少一个虚设存储器单元以减小源极选择晶体管sst与存储器单元mc1至mcn之间的电场。可选地,可以设置至少一个虚设存储器单元以减小漏极选择晶体管dst与存储器单元mc1至mcn之间的电场。当虚设存储器单元的数量增加时,存储块blkb的操作的可靠性提高。存储块blkb的大小增加。当虚设存储器单元的数量减少时,存储块blkb的大小减小。存储块blkb的操作的可靠性可能恶化。

为了有效地控制至少一个虚设存储器单元,虚设存储器单元可以具有所需的阈值电压。在存储块blkb的擦除操作之前或之后,可以对所有或一些虚设存储器单元执行编程操作。当在执行编程操作之后执行擦除操作时,通过控制施加到联接到各个虚设存储器单元的虚设字线的电压,虚设存储器单元可以具有所需的阈值电压。

图6是示出图2所示的存储器单元阵列110中的多个存储块blk1至blkz之中的存储块blkc的电路图。

参照图6,存储块blkc包括多个串cs1至csm。多个串cs1至csm可以分别联接到多个位线bl1至blm。多个串cs1至csm中的每一个包括至少一个源极选择晶体管sst、第一至第n存储器单元mc1至mcn以及至少一个漏极选择晶体管dst。

选择晶体管sst和dst以及存储器单元mc1至mcn中的每一个可以具有类似的结构。在实施例中,选择晶体管sst和dst以及存储器单元mc1至mcn中的每一个可以包括沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层。在实施例中,可以在每个单元串中设置用于提供沟道层的柱。在实施例中,可以在每个单元串中设置用于提供沟道层、隧道绝缘层、电荷存储层以及阻挡绝缘层中的至少一个的柱。

每个单元串的源极选择晶体管sst联接在共源线csl和存储器单元mc1至mcn之间。

每个单元串的第一至第n存储器单元mc1至mcn联接在源极选择晶体管sst和漏极选择晶体管dst之间。

每个单元串的漏极选择晶体管dst联接在相应位线和存储器单元mc1至mcn之间。

联接到相同字线的存储器单元构成一个页面。当漏极选择线dsl被选择时,单元串cs1至csm可以被选择。当字线wl1至wln中的任意一个被选择时,选择的单元串之中的一个页面可以被选择。

在另一实施例中,可以设置偶数位线和奇数位线,而不是第一至第m位线bl1至blm。单元串cs1至csm之中的偶数单元串可以分别联接到偶数位线。单元串cs1至csm之中的奇数单元串可以分别联接到奇数位线。

如图3至图5所示,半导体存储器装置100的存储器单元阵列110可以被配置为具有三维结构的存储器单元阵列。另外,如图6所示,半导体存储器装置100的存储器单元阵列110可以被配置为具有二维结构的存储器单元阵列。

图7是示出根据本公开的实施例的控制器200的框图。

参照图7,控制器200可以包括请求分析器210、命令生成器220、高速缓存控制器230、高速缓存缓冲器240、数据输出单元250和数据接收器260。请求分析器210可以通过分析从主机接收的请求rq来生成命令控制信号c_cmd。命令生成器220可以基于命令控制信号c_cmd生成命令cmd。命令cmd被传送到半导体存储器装置100。因此,半导体存储器装置100可以执行对应于来自主机的请求rq的操作。

为了提高存储器系统1000的读取性能,控制器200可以包括高速缓存缓冲器240。高速缓存缓冲器240可以配置有具有快操作速度的随机存取存储器,并存储一部分存储在半导体存储器装置100中的数据。当从主机接收的请求是读取请求时并且当对应于相应读取请求的数据存储在高速缓存缓冲器240中时,控制器200不生成对应于读取请求的读取命令。而是,控制器200将存储在高速缓存缓冲器240中的数据,即高速缓存数据,传送给主机。可以显著提高存储器系统1000的读取速度。

当从主机接收到读取请求时,请求分析器210可以生成对应于读取请求的请求信息inf_rq,并将请求信息inf_rq传送到高速缓存控制器230。

高速缓存控制器230可以控制高速缓存缓冲器240的操作。为了控制高速缓存缓冲器240的操作,高速缓存控制器230可以生成高速缓存控制信号c_cache并将高速缓存控制信号c_cache传送到高速缓存缓冲器240。高速缓存控制器230可以基于从请求分析器210接收的请求信息inf_rq,确定对应于相应读取请求的数据是否存储在高速缓存缓冲器240中。当对应于读取请求的数据存储在高速缓存缓冲器240中时,高速缓存控制器230通过高速缓存控制信号c_cache控制高速缓存缓冲器240输出相应的高速缓存数据c_data。由高速缓存缓冲器240输出的高速缓存数据c_data被传送到数据输出单元250。数据输出单元250将接收的高速缓存数据c_data传送到主机。

当对应于读取请求的数据未存储在高速缓存缓冲器240中时,命令生成器220可以生成对应于读取请求的读取命令。生成的读取命令可以被传送到半导体存储器装置100。半导体存储器装置100可以执行对应于接收的读取命令的读取操作。作为读取操作的结果的读取数据r_data可以从半导体存储器装置100被传送到控制器200的数据接收器260。数据接收器260将接收的读取数据r_data传送到数据输出单元250。数据输出单元250将接收的读取数据r_data传送到主机。

数据接收器260可以将接收的读取数据r_data传送到高速缓存缓冲器240。高速缓存缓冲器240可以存储接收的读取数据r_data以高速缓存读取数据r_data。也就是说,接收的读取数据r_data被作为高速缓存数据c_data存储在高速缓存缓冲器240中。

图8是示出存储在图7所示的高速缓存缓冲器240中的数据的示例的示图。

参照图8,高速缓存缓冲器240可以包括高速缓存信息表241和高速缓存数据243。高速缓存数据243可以是实际高速缓存在高速缓存缓冲器240中的数据。高速缓存数据243可以包括多个数据段。

高速缓存信息表241可以包括用于管理高速缓存数据243的信息,该信息是高速缓存数据243的元数据。例如,高速缓存信息表241可以包括用于识别高速缓存数据243中的多个数据段的数据。

高速缓存信息表241可以包括关于高速缓存数据243的使用记录的信息。例如,高速缓存信息表241可以包括表示高速缓存数据243中的多个段的优先级顺序(例如,最近最久未使用(lru)优先级顺序)的数据。lru优先级顺序可以由最后使用每个高速缓存数据的时间确定。也就是说,很久以前使用的高速缓存数据的lru优先级顺序较高,而在之前刚使用的高速缓存数据的lru优先级顺序较低。并且,高速缓存信息表241可以包括表示高速缓存数据243中的多个数据段的高速缓存使用计数的数据。稍后将参照图12a至图15f描述高速缓存信息表241。

尽管图8示出了高速缓存信息表241存储在高速缓存缓冲器240中的情况,但是本公开不限于此。例如,高速缓存信息表241可以存储在高速缓存控制器230中。

如图7所示,当从半导体存储器装置100接收到读取数据r_data时,接收的读取数据r_data可以高速缓存在高速缓存缓冲器240中。然而,高速缓存缓冲器240的容量是有限的。因此,当高速缓存缓冲器240被完全填充高速缓存数据c_data时,将从高速缓存缓冲器240中逐出高速缓存数据c_data中的一部分,以另外地高速缓存读取数据r_data。为此,将存储在高速缓存缓冲器240中的高速缓存数据c_data之中的哪个数据确定为作为待被逐出的目标的牺牲高速缓存数据是重要的。用于确定牺牲高速缓存数据的策略被称为高速缓存管理策略,并且存在使用各种方案的高速缓存管理策略。

例如,最近最久未使用(lru)算法可以将存储在高速缓存缓冲器240中的若干高速缓存数据之中最久之前使用的(或最长时间未使用的)高速缓存数据确定为牺牲高速缓存数据。最近最新使用(mostrecentlyused,mru)算法可以将存储在高速缓存缓冲器240中的若干高速缓存数据之中最近最新使用的高速缓存数据确定为牺牲高速缓存数据。另外,先进先出(fifo)算法可以将存储在高速缓存缓冲器240中的若干高速缓存数据之中存储最长时间的高速缓存数据确定为牺牲高速缓存数据。最不频繁使用(lfu)算法可以将存储在高速缓存缓冲器240中的若干高速缓存数据之中具有最低使用频率的高速缓存数据确定为牺牲高速缓存数据。高速缓存使用计数算法可以将存储在高速缓存缓冲器240中的若干高速缓存数据之中具有最小使用计数数量的高速缓存数据确定为牺牲高速缓存数据。

关于数据高速缓存的特征,最久之前使用的(或最长时间未使用的)高速缓存数据将来被使用的可能性可能较低。因此,lru算法被广泛地用作高速缓存管理策略。但是,在一些情况下,当根据lru算法管理高速缓存缓冲器时,可能出现效率低。

在各个实施例中,可以根据对应于从主机接收的读取请求的读取数据的大小来确定不同的高速缓存管理策略。例如,当对应于读取请求的读取数据的大小大于预定参考值时,可以使用高速缓存使用计数算法来确定牺牲高速缓存数据。当对应于读取请求的读取数据的大小小于或等于预定参考值时,可以使用lru算法确定牺牲高速缓存数据。根据该方案,当读取具有较小大小的典型数据时,根据lru算法逐出最长时间未使用的高速缓存数据。当连续读取诸如运动图像文件的大容量数据时,根据高速缓存使用计数算法逐出具有最小使用计数数量的高速缓存数据,从而防止从高速缓存缓冲器中全部删除现有高速缓存数据的情况。因此,存储器系统的高速缓存性能提高。在一些实施例中,当对应于读取请求的读取数据的大小大于预定参考值时,可以使用lfu算法或mru算法而不是高速缓存使用计数算法。

图9是示出根据本公开的实施例的例如图7的控制器200的控制器的操作方法的流程图。

参照图9,操作方法包括步骤s110、步骤s130和步骤s150。步骤s110可以包括从主机接收数据的读取请求。步骤s130可以包括基于接收的读取请求来确定高速缓存缓冲器的逐出策略。步骤s150可以包括基于确定的逐出策略来更新高速缓存缓冲器。

在步骤s110,从主机接收数据的读取请求。步骤s110可以由控制器200的请求分析器210执行。可以基于接收的读取请求将读取命令传送到半导体存储器装置100。随后,可以从半导体存储器装置100接收读取数据。当在接收到读取数据的时候高速缓存缓冲器240的容量不足时,牺牲高速缓存数据成为高速缓存数据之中待被逐出的目标。

在步骤s130,可以基于接收的读取请求来确定高速缓存缓冲器240的逐出策略。步骤s130可以由高速缓存控制器230执行。读取请求可以包括关于待被读取的数据的逻辑地址和数据大小的信息。请求分析器210可以向高速缓存控制器230传送包括关于待被读取的数据的数据大小的信息的请求信息inf_rq。高速缓存控制器230可以基于请求信息inf_rq中的关于数据大小的信息来确定高速缓存缓冲器240的逐出策略。

在步骤s150,可以基于确定的逐出策略来更新高速缓存缓冲器240。可以根据确定的逐出策略来选择牺牲高速缓存数据,并且可以从高速缓存缓冲器240中逐出选择的牺牲高速缓存数据。在逐出牺牲高速缓存数据之后,从半导体存储器装置100接收的读取数据可以存储在高速缓存缓冲器240中。

在图9所示的实施例中,主要示出了用于确定高速缓存缓冲器240的逐出策略的特征。将参照图10描述包括用于确定高速缓存缓冲器240的逐出策略的特征的高速缓存缓冲器240的整个管理方法。

图10是更详细地示出根据本公开的实施例的控制器(例如,图7的控制器200)的操作方法的示图。在下文中,将一起参照图7至图10描述本公开的实施例。

参照图10,在步骤s210,请求分析器210可以从主机接收数据的读取请求。图10所示的步骤s210可以与图9所示的步骤s110基本相同。

在步骤s211,确定请求读取的数据是否是高速缓存在高速缓存缓冲器240中的数据。高速缓存控制器230可以参照图8所示的高速缓存信息表241来执行步骤s211。

当确定请求读取的数据高速缓存在高速缓存缓冲器240中时(s211,是),操作方法进行到步骤s220。在步骤s220,可以通过数据输出单元250将存储在高速缓存缓冲器240中的高速缓存数据c_data传送到主机。

随后,在步骤s240,基于高速缓存管理策略更新高速缓存信息表241。当高速缓存信息表241存储lru算法的lru优先级时,更新高速缓存信息表241的lru优先级。当高速缓存信息表241存储lfu算法的使用频率值时,可以更新高速缓存信息表241中使用的高速缓存数据的使用频率值。当高速缓存信息表241存储高速缓存使用计数算法的高速缓存使用计数时,高速缓存信息表241中使用的高速缓存数据的高速缓存使用计数值可以增加1。另外,可以根据各种高速缓存管理策略的特征来更新高速缓存信息表241。

当确定请求读取的数据未高速缓存在高速缓存缓冲器240中时(s211,否),操作方法进行到步骤s213。在步骤s213,命令生成器220可以将读取命令传送到半导体存储器装置100。并且,在步骤s213,数据接收器260可以从半导体存储器装置100接收对应于读取命令的读取数据r_data。在步骤s213,数据输出单元250可以将接收的读取数据r_data传送到主机。

通过执行步骤s213完成对应于从主机接收的读取请求的读取数据的输出。后续步骤s215、s230、s250和s270是表示根据本公开的实施例的用于将从半导体存储器装置100接收的读取数据存储在高速缓存缓冲器240中的方法的步骤。

在步骤s215,确定高速缓存缓冲器240中是否存在空闲空间。当确定高速缓存缓冲器240中存在空闲空间时(s215,是),从半导体存储器装置100接收的读取数据可以在不逐出高速缓存数据的情况下存储在高速缓存缓冲器240中。因此,操作方法立即进行到步骤s270,以将读取数据存储在高速缓存缓冲器240中并更新高速缓存信息表241。

当确定高速缓存缓冲器240中不存在空闲空间时(s215,否),可以逐出一部分高速缓存数据。在各个实施例中,在步骤s230,可以基于从主机接收的读取请求来确定高速缓存缓冲器240的逐出策略。更特别地,可以根据对应于从主机接收的读取请求的读取数据的大小来确定高速缓存缓冲器240的逐出策略。稍后将参照图11描述步骤s230的更详细的实施例。

在步骤s250,可以基于确定的逐出策略来确定存储在高速缓存缓冲器240中的高速缓存数据之中成为待被逐出的目标的牺牲高速缓存数据。可以从高速缓存缓冲器240中删除确定的牺牲高速缓存数据。步骤s250可以由高速缓存控制器230执行。

通过步骤s250将在高速缓存缓冲器240中生成空闲空间。因此,在步骤s270,可以将从半导体存储器装置100接收的读取数据存储在高速缓存缓冲器240中,并且可以更新高速缓存信息表241。

图11是示出图10所示的步骤s230的示例性实施例的示图。

参照图11,步骤s230可以包括基于从主机接收的读取请求来确定高速缓存缓冲器240的逐出策略。步骤s230可以包括步骤s310和步骤s330。步骤s310可以包括检查对应于读取请求的数据的大小(s)。步骤s330可以包括将数据的大小(s)与预定参考值(r)进行比较。

如上所述,从主机接收的读取请求可以包括关于待被读取的数据的逻辑地址和数据大小的信息。在步骤s310,可以通过分析读取请求来检查待被读取的数据的大小(s)。数据的大小(s)可以表示待被读取的数据包括多少数据段,即待被读取的数据包括多少页面数据。

当待被读取的数据的大小(s)大于预定参考值(r)时(s330,是),在步骤s350,可以将高速缓存使用计数算法确定为高速缓存缓冲器240的逐出策略。稍后将参照图13a至图13d描述根据高速缓存使用计数算法逐出高速缓存缓冲器240的高速缓存数据的方法。

当待被读取的数据的大小(s)小于或等于预定参考值(r)时(s330,否),在步骤s370,可以将lru算法确定为高速缓存缓冲器240的逐出策略。稍后将参照图12a至图12d描述根据lru算法逐出高速缓存缓冲器240的高速缓存数据的方法。

图12a至图12d是示例性地示出说明根据lru算法管理高速缓存缓冲器240的高速缓存信息表(例如,图8的高速缓存信息表)的示图。尽管图12a至图12d示出了高速缓存缓冲器240可以存储六个高速缓存数据的情况,但是高速缓存缓冲器240可以存储更多数量的高速缓存数据。

参照图12a至图12d,为了根据lru算法管理高速缓存缓冲器240,高速缓存信息表241可以包括每个高速缓存数据的lru优先级顺序。lru优先级顺序可以表示根据lru算法被选择作为待被逐出的目标的高速缓存数据的优先级顺序。在图12a至图12d中,最高lru优先级顺序可以表示很久以前使用的相应高速缓存数据,并且可以表示应该在其他高速缓存数据之前从高速缓存缓冲器240中逐出该相应高速缓存数据。

参照图12a,六个高速缓存数据c_data_01、c_data_02、c_data_03、c_data_04、c_data_05和c_data_06存储在高速缓存缓冲器240中。每个高速缓存数据可以是成为读取单位的数据段。例如,每个高速缓存数据可以是作为半导体存储器装置100的读取单位的页面数据。具有最高lru优先级顺序的高速缓存数据,即lru优先级顺序为1的高速缓存数据是高速缓存数据c_data_04。这表示高速缓存数据c_data_04是当前高速缓存数据之中最久之前使用的(或最长时间未使用的)高速缓存数据。具有最低lru优先级顺序的高速缓存数据,即lru优先级顺序为6的高速缓存数据是高速缓存数据c_data_01。这表示当前高速缓存数据之中的高速缓存数据c_data_01最近最新被使用。

参照图12b,当在图12a所示的情况下使用高速缓存数据c_data_02时,可以更新高速缓存信息表241。也就是说,当从主机接收到对高速缓存数据c_data_02的读取请求时,可以将高速缓存缓冲器240中的高速缓存数据c_data_02传送到主机。由于使用了高速缓存数据c_data_02,因此将根据lru算法更新高速缓存数据的lru优先级顺序。

在图12a中,高速缓存数据c_data_02的lru优先级顺序是3。然而,当使用高速缓存数据c_data_02时,高速缓存数据c_data_02的lru优先级顺序被更新为6,如图12b所示。如上所述,在lru算法中,存在于高速缓存缓冲器240中的高速缓存数据之中,最近最新使用的高速缓存数据的lru优先级顺序被更新为最低值,即6。

lru优先级顺序高于高速缓存数据c_data_02的高速缓存数据c_data_03和c_data_04的lru优先级顺序不改变。另一方面,lru优先级顺序低于高速缓存数据c_data_02的高速缓存数据c_data_01、c_data_05和c_data_06中的每一个的lru优先级顺序增加1。

参照图12c,当在图12b所示的情况下使用高速缓存数据c_data_04时,可以更新高速缓存信息表241。也就是说,当从主机接收到对高速缓存数据c_data_04的读取请求时,可以将存储在高速缓存缓冲器240中的高速缓存数据c_data_04传送到主机。由于使用了高速缓存数据c_data_04,因此将根据lru算法更新高速缓存数据的lru优先级顺序。

在图12b中,高速缓存数据c_data_04的lru优先级顺序是1。然而,当使用了高速缓存数据c_data_04时,高速缓存数据c_data_04的lru优先级顺序被更新为6,如图12c所示。如上所述,在lru算法中,存在于高速缓存缓冲器中的高速缓存数据之中,最近最新使用的高速缓存数据的lru优先级顺序被更新为具有最低值,即6。

其他高速缓存数据c_data_01、c_data_02、c_data_03、c_data_05和c_data_06的lru优先级顺序低于高速缓存数据c_data_04的lru优先级顺序,因此,每个相应高速缓存数据的lru优先级顺序增加1,如图12c所示。

参照图12d,当在图12c所示的情况下将新读取数据作为高速缓存数据c_data_07存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。也就是说,当从主机接收到对未存储在高速缓存缓冲器240中的数据的读取请求时,将读取命令传送到半导体存储器装置100,并且从半导体存储器装置100接收对应于读取命令的读取数据。接收的读取数据被传送到主机,并且也存储在高速缓存缓冲器240中。接收的读取数据作为新高速缓存数据c_data_07存储在高速缓存缓冲器240中。

当高速缓存缓冲器240中不存在空闲空间时,将逐出当前存储在高速缓存缓冲器240中的任意一个高速缓存数据。参照图12c,从高速缓存缓冲器240中删除具有最高lru优先级顺序的高速缓存数据c_data_03。随后,新高速缓存数据c_data_07被存储在高速缓存缓冲器240中,并且高速缓存信息表241被更新,如图12d所示。

由于新存储的高速缓存数据c_data_07变为最近最新使用的数据,因此高速缓存数据c_data_07具有最低的lru优先级顺序6。其他高速缓存数据c_data_01、c_data_02、c_data_04、c_data_05和c_data_06中的每一个的lru优先级顺序增加1。

如图12a至图12d所示,当根据lru算法确定高速缓存缓冲器240的逐出策略时,删除最久之前使用的(或最长时间未使用的)高速缓存数据。

图13a至图13d是示例性地示出说明根据高速缓存使用计数算法管理高速缓存缓冲器240的高速缓存信息表(例如,图8的高速缓存信息表241)的示图。

参照图13a至图13d,为了根据高速缓存使用计数算法管理高速缓存缓冲器240,高速缓存信息表241可以包括每个高速缓存数据的高速缓存使用计数。高速缓存使用计数可以是表示相应高速缓存数据被使用的次数的值。当高速缓存使用计数增加时,相应高速缓存数据被更频繁地使用。因此,当高速缓存使用计数减小时,高速缓存数据的价值可能降低,并且应该在其他高速缓存数据之前从高速缓存缓冲器240逐出该相应高速缓存数据。

参照图13a,高速缓存数据c_data_05被最频繁地使用(即,高速缓存使用计数30),而高速缓存数据c_data_06被最不频繁地使用(即,高速缓存使用计数5)。参照图13b,当使用高速缓存数据c_data_02时,可以更新高速缓存信息表241。也就是说,当接收到对高速缓存数据c_data_02的读取请求时,可以将存储在高速缓存缓冲器240中的高速缓存数据c_data_02传送到主机。使用高速缓存数据c_data_02,相应高速缓存数据c_data_02的高速缓存使用计数被从20更新到21。参照图13c,当使用高速缓存数据c_data_04时,可以更新高速缓存信息表241。当使用高速缓存数据c_data_04时,相应高速缓存数据c_data_04的高速缓存使用计数被从10更新到11。

参照图13d,当在图13c所示的情况下将新读取数据作为高速缓存数据c_data_07存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。也就是说,当从主机接收到对未存储在高速缓存缓冲器240中的数据的读取请求时,将读取命令传送到半导体存储器装置100,并且从半导体存储器装置100接收对应于读取命令的读取数据。接收的读取数据被传送到主机,并且也存储在高速缓存缓冲器240中。接收的读取数据作为新高速缓存数据c_data_07存储在高速缓存缓冲器240中。

当高速缓存缓冲器240中不存在空闲空间时,应该逐出当前存储在高速缓存缓冲器240中的任意一个高速缓存数据。参照图13c和图13d,从高速缓存缓冲器240中删除具有最小高速缓存使用计数的高速缓存数据c_data_06。随后,新高速缓存数据c_data_07被存储在高速缓存缓冲器240中,并且高速缓存信息表241被更新,如图13d所示。

新存储的高速缓存数据c_data_07从未被用作高速缓存数据,因此,高速缓存数据c_data_07的高速缓存使用计数被初始化为0。

如图13a至图13d所示,当根据高速缓存使用计数算法确定高速缓存缓冲器240的逐出策略时,删除相对最不频繁地使用的高速缓存数据。

图14a至图14g是示出当读取大容量数据时根据lru算法逐出高速缓存数据的情况的示图。

参照图14a,高速缓存信息表241可以处于与图12a所示的高速缓存信息表的状态基本相同的状态。在图14a中,高速缓存数据c_data_04具有最高lru优先级顺序(即,1),并且高速缓存数据c_data_01具有最低lru优先级顺序(即,6)。

随后,当在图14a所示的情况下将新读取数据作为高速缓存数据c_data_10存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。也就是说,当从主机接收到对未存储在高速缓存缓冲器240中的数据的读取请求时,将读取命令传送到半导体存储器装置100,并且从半导体存储器装置100接收对应于读取命令的读取数据。接收的读取数据被传送到主机,并且也存储在高速缓存缓冲器240中。接收的读取数据作为新高速缓存数据c_data_10存储在高速缓存缓冲器240中。从高速缓存缓冲器240中删除具有最高lru优先级顺序的高速缓存数据c_data_04。随后,新高速缓存数据c_data_10被存储在高速缓存缓冲器240中,并且高速缓存信息表241被更新,如图14b所示。

随后,当在图14b所示的情况下将新读取数据作为高速缓存数据c_data_11存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。类似于图14b,当从主机接收到对未存储在高速缓存缓冲器240中的数据的读取请求时,新高速缓存数据c_data_11被存储在高速缓存缓冲器240中。从高速缓存缓冲器240中删除具有最高lru优先级顺序的高速缓存数据,并且将新高速缓存数据c_data_11存储在高速缓存缓冲器240中。另外,如图14c所示更新高速缓存信息表241。

随后,在图14d中,当在图14c所示的情况下将新读取数据作为高速缓存数据c_data_12存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。类似于图14c,当从主机接收到对未存储在高速缓存缓冲器240中的数据的读取请求时,新高速缓存数据c_data_12被存储在高速缓存缓冲器240中。从高速缓存缓冲器240中删除具有最高lru优先级顺序的高速缓存数据c_data_02,并且将新高速缓存数据c_data_12存储在高速缓存缓冲器240中。另外,如图14d所示更新高速缓存信息表241。

随后,在图14e中,当在图14d所示的情况下将新读取数据作为高速缓存数据c_data_13存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。在图14f中,当在图14e所示的情况下将新读取数据作为高速缓存数据c_data_14存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。最后,在图14g中,当在图14f所示的情况下将新读取数据作为高速缓存数据c_data_15存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。

参照图14a至图14g中的全部,当对未存储在高速缓存缓冲器240中的数据连续执行读取操作时,在根据lru算法确定待被逐出的高速缓存数据时发生以下问题。存储在高速缓存缓冲器240中的现有高速缓存数据c_data_01、c_data_02、c_data_03、c_data_04、c_data_05和c_data_06被全部从高速缓存缓冲器240中逐出,并且未存储在高速缓存缓冲器240中的数据被填充在高速缓存缓冲器240中。

当新存储在高速缓存缓冲器240中的高速缓存数据c_data_10、c_data_11、c_data_12、c_data_13、c_data_14和c_data_15对应于大容量文件的一部分,例如运动图像文件的一部分时,这些数据将作为高速缓存数据被再次使用的可能性较低。

另外,存储在高速缓存缓冲器240中然后被逐出的现有高速缓存数据c_data_01、c_data_02、c_data_03、c_data_04、c_data_05和c_data_06可以是高速缓存使用率相对高于新存储在高速缓存缓冲器240中的高速缓存数据c_data_10、c_data_11、c_data_12、c_data_13、c_data_14和c_data_15的高速缓存数据。高速缓存缓冲器240的效率降低,并且存储器系统1000的整体性能可能劣化。

在各个实施例中,检查对应于从主机接收的读取请求的数据的大小,并且当数据的大小大于参考值时,将高速缓存使用计数算法确定为高速缓存缓冲器240的逐出策略。当数据的大小小于或等于参考值时,lru算法被确定为高速缓存缓冲器240的逐出策略。因此,可以防止有效高速缓存数据被从高速缓存缓冲器240中逐出并且不必要的数据被存储在高速缓存缓冲器240中的无效情况。

图15a至图15f是示出根据本公开的实施例的通过控制器200及其操作方法来控制高速缓存缓冲器240的数据的进程的示图。在下文中,将一起参照图10和图11描述该进程。

参照图15a,高速缓存信息表241包括关于存储在高速缓存缓冲器240中的每个高速缓存数据的lru优先级顺序和高速缓存使用计数。如图11所示,这是用于根据对应于从主机接收的读取请求的读取数据的大小选择性地应用lru算法或高速缓存使用计数算法。

参照图15b,当在图15a所示的情况下将新读取数据作为高速缓存数据c_data_10存储在高速缓存缓冲器240中时,可以更新高速缓存信息表241。在图10所示的步骤s210,控制器200从主机接收对新读取数据的读取请求。请求读取的数据是未存储在高速缓存缓冲器240中的数据。

参照图15b至图15e,读取数据包括多个数据段。也就是说,对应于从主机接收的读取请求的读取数据包括与在图15b至图15e中添加到高速缓存缓冲器240的高速缓存数据c_data_10、c_data_11、c_data_12、c_data_13、c_data_14和c_data_15基本相同的数据。

作为图11所示的步骤s330的确定结果,可以确定对应于从主机接收的读取请求的读取数据的大小(s)大于参考值(r)。因此,当对应于相应读取请求的读取数据存储在高速缓存缓冲器240中时,可以通过图11所示的步骤s350使用高速缓存使用计数算法确定被逐出的牺牲高速缓存数据。

因此,当高速缓存数据c_data_10存储在高速缓存缓冲器240中时,根据高速缓存使用计数算法确定牺牲高速缓存数据。参照图15a,具有最小高速缓存使用计数的高速缓存数据是高速缓存数据c_data_06。因此,如图15b所示,从高速缓存缓冲器240中删除高速缓存数据c_data_06,并且将新高速缓存数据c_data_10存储在高速缓存缓冲器240中。

高速缓存数据c_data_10的下一个高速缓存数据c_data_11是对应于从主机接收的一个读取请求的读取数据中包括的数据。因此,当高速缓存数据c_data_11存储在高速缓存缓冲器240中时,可以根据高速缓存使用计数算法确定待被逐出的牺牲高速缓存数据。

参照图15b,高速缓存数据c_data_10的高速缓存使用计数最小。如图15c所示,从高速缓存缓冲器240中删除高速缓存数据c_data_10,并且将新高速缓存数据c_data_11存储在高速缓存缓冲器240中。

高速缓存数据c_data_11的下一个高速缓存数据c_data_12也是对应于从主机接收的一个读取请求的读取数据中包括的数据。因此,当高速缓存数据c_data_12存储在高速缓存缓冲器240中时,可以根据高速缓存使用计数算法确定待被逐出的牺牲高速缓存数据。

参照图15c,高速缓存数据c_data_11的高速缓存使用计数最小。因此,如图15d所示,从高速缓存缓冲器240中删除高速缓存数据c_data_11,并且将新高速缓存数据c_data_12存储在高速缓存缓冲器240中。

以这种方式,当与对应于从主机接收的读取请求的读取数据的大小大于参考值时,根据高速缓存使用计数算法确定牺牲高速缓存数据。因此,如图15a至图15d所示,当与对应于读取数据中包括的数据段的高速缓存数据c_data_10、c_data_11和c_data_12存储在高速缓存缓冲器240中时,在高速缓存数据存储在高速缓存缓冲器240中之前存储在高速缓存缓冲器240中的高速缓存数据被选择作为待被从高速缓存缓冲器240中逐出的牺牲高速缓存数据,并且其他高速缓存数据c_data_01、c_data_02、c_data_03、c_data_04和c_data_05被保持在高速缓存缓冲器240中。参照图15e,重复该进程,直到对应于从主机接收的读取请求的读取数据的最后数据段作为高速缓存数据c_data_15存储在高速缓存缓冲器240中。

参照图15f,示出了当对应于新读取请求的读取数据的大小小于参考值时的高速缓存缓冲器操作。当在图15e所示的情况下控制器200接收到对大小小于参考值(r)的读取数据的读取请求时,通过图11所示的步骤s370根据lru算法确定高速缓存缓冲器240的牺牲高速缓存数据。在图15e所示的高速缓存信息表241中,具有最高lru优先级顺序的高速缓存数据是高速缓存数据c_data_04。因此,当输入新读取数据作为高速缓存数据c_data_20时,根据lru算法逐出高速缓存数据c_data_04。

如上所述,根据控制器200的操作方法,基于从主机接收的读取请求确定高速缓存缓冲器240的逐出策略(s230)。更特别地,根据对应于从主机接收的读取请求的读取数据的大小来确定高速缓存缓冲器240的逐出策略。因此,可以更有效地使用高速缓存缓冲器240,从而可以提高存储器系统1000的读取性能。

图16是示出存储器系统1000的示例的框图。

参照图16,存储器系统1000包括控制器1200和半导体存储器装置1300。半导体存储器装置1300对应于图2所示的半导体存储器装置100,并且控制器1200对应于图7所示的控制器200。

半导体存储器装置1300可以与参照图2描述的半导体存储器装置100相同地配置和操作。在下文中,将省略重复的描述。

控制器1200联接到主机host和半导体存储器装置1300。控制器1200被配置为响应于来自主机host的请求访问半导体存储器装置1300。例如,控制器1200被配置为控制半导体存储器装置1300的读取操作、编程操作、擦除操作和后台操作。控制器1200被配置为提供半导体存储器装置1300和主机host之间的接口。控制器1200被配置为驱动固件来控制半导体存储器装置1300。

控制器1200包括随机存取存储器(ram)1210、处理单元1220、主机接口1230、存储器接口1240和错误校正块1250。

ram1210用作处理单元1220的工作存储器、半导体存储器装置1300和主机host之间的高速缓存存储器、以及半导体存储器装置1300和主机host之间的缓冲存储器中的任意一个。图7所示的高速缓存缓冲器240可以实施为图16所示的ram1210的一部分。

处理单元1220控制控制器1200的全部操作。处理单元1220控制半导体存储器装置1300的读取操作、编程操作、擦除操作和后台操作。处理单元1220驱动固件来控制半导体存储器装置1300。处理单元1220可以执行闪存转换层(ftl)的功能。处理单元1210可以通过ftl将由主机host提供的逻辑块地址(lba)转换为物理块地址(pba)。ftl可以使用映射表将接收的lba转换为pba。根据映射单位存在ftl的若干地址映射方法。代表性地址映射方法包括页面映射方法、块映射方法和混合映射方法。

图7所示的请求分析器210、命令生成器220和高速缓存控制器230可以以由图16所示的处理单元1220驱动的软件或固件的形式实施。

主机接口1230包括用于在主机host和控制器1200之间交换数据的协议。在示例性实施例中,控制器1200被配置为通过诸如以下的各种接口协议中的至少一种与主机通信:通用串行总线(usb)协议、多媒体卡(mmc)协议、外围组件互连(pci)协议、高速pci(pci-e或pcie)协议、高级技术附件(ata)协议、串行ata协议、并行ata协议、小型计算机系统接口(scsi)协议、增强型小型磁盘接口(esdi)协议、电子集成驱动(ide)协议和私有协议。图7所示的数据输出单元250可以实施为图16所示的主机接口1230的一部分。

存储器接口1240与半导体存储器装置1300接口连接。例如,存储器接口1240可以包括nand接口或nor接口。图7所示的数据接收器260可以实施为图16所示的存储器接口1240的一部分。

错误校正块1250被配置为通过使用错误校正码(ecc)来检测和校正从半导体存储器装置1300接收的数据的错误。错误校正块1250可以使用ecc来校正读取页面数据的错误。错误校正块1250可以使用包括低密度奇偶校验(ldpc)码、博斯-查德胡里-霍昆格姆(bose,chaudhuri,hocquenghem,bch)码、turbo码、里德-所罗门(reed-solomon,rs)码、卷积码、递归系统码(rsc)、网格编码调制(tcm)、块编码调制(bcm)、汉明码等的编码调制来校正错误。

在读取操作中,错误校正块1250可以校正读取页面数据的错误。当具有超过错误可校正位数的数量的错误位包括在读取页面数据中时,解码可能失败。当具有小于或等于错误可校正位数的数量的错误位包括在读取页面数据中时,解码可以成功。解码的成功表示相应读取命令已经通过。解码的失败表示相应命令已经失败。当解码成功时,控制器1200将具有已经校正的错误的页面数据输出到主机host。

控制器1200和半导体存储器装置1300可以集成到一个半导体装置中。在示例性实施例中,控制器1200和半导体存储器装置1300可以集成到一个半导体装置中,以构成存储卡。例如,控制器1200和半导体存储器装置1300可以集成到一个半导体装置中,以构成诸如pc卡(个人计算机存储卡国际协会(pcmcia))、紧凑型闪存(cf)卡、智能媒体卡(例如,sm或smc)、记忆棒、多媒体卡(例如,mmc、rs-mmc或微型mmc)、安全数字(sd)卡(例如,sd、迷你sd、微型sd或sdhc)或通用闪存(ufs)的存储卡。

控制器1200和半导体存储器装置1300可以集成到一个半导体装置中以构成半导体驱动器(固态驱动器(ssd))。固态驱动器ssd包括被配置为将数据存储在半导体存储器中的存储装置。如果存储器系统1000用作固态驱动器ssd,则可以显著提高联接到存储器系统1000的主机host的操作速度。

作为另一示例,存储器系统1000可以被提供为诸如以下的电子装置的各种组件之一:计算机、超移动pc(umpc)、工作站、上网本、个人数字助理(pda)、便携式计算机、网络平板、无线电话、移动电话、智能电话、电子书阅读器、便携式多媒体播放器(pmp)、便携式游戏机、导航系统、黑盒、数码相机、三维电视、数字音频记录器、数字音频播放器、数字图片记录器、数字图片播放器、数字视频记录器、数字视频播放器、能够在无线环境中传送/接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成远程信息处理网络的各种电子装置之一、rfid装置或构成计算系统的各种组件之一。

在示例性实施例中,半导体存储器装置1300或存储器系统1000可以以各种形式封装。例如,半导体存储器装置1300或存储器系统1000可以以诸如以下的方式封装:层叠封装(pop)、球栅阵列(bga)、芯片级封装(csp)、塑料引线芯片载体(plcc)、塑料双列直插式封装(pdip)、叠片封装管芯、晶圆形式管芯、板上芯片(cob)、陶瓷双列直插式封装(cerdip)、塑料公制四方扁平封装(mqfp)、薄型四方扁平封装(tqfp)、小外形集成电路(soic)、收缩型小外形封装(ssop)、薄型小外形封装(tsop)、系统级封装(sip)、多芯片封装(mcp)、晶圆级制造封装(wfp)、或晶圆级处理堆叠封装(wsp)。

图17是示出对应于图16所示的存储器系统1000的应用示例的存储器系统2000的框图。

参照图17,存储器系统2000包括半导体存储器装置2100和控制器2200。半导体存储器装置2100包括多个半导体存储器芯片。多个半导体存储器芯片被分成多个组。

图17示出了多个组通过第一至第k通道ch1至chk与控制器2200通信。每个半导体存储器芯片可以与参照图16描述的半导体存储器装置1300相同地配置和操作。

每个组被配置为通过一个公共通道与控制器2200通信。控制器2200与参照图16描述的控制器1200相同地配置。控制器2200被配置为通过多个通道ch1至chk控制半导体存储器装置2100的多个存储器芯片。

在图17中,描述了多个半导体存储器芯片联接到一个通道的情况。然而,将理解的是,可以修改存储器系统2000,使得一个半导体存储器芯片联接到一个通道。

图18是示出包括参照图17描述的存储器系统的计算系统3000的框图。

参照图18,计算系统3000包括中央处理单元3100、随机存取存储器(ram)3200、用户接口3300、电源3400、系统总线3500和存储器系统2000。

存储器系统2000通过系统总线3500电联接到中央处理单元3100、ram3200、用户接口3300和电源3400。通过用户接口3300提供的数据或由中央处理单元3100处理的数据被存储在存储器系统2000中。

图18示出了半导体存储器装置2100通过控制器2200联接到系统总线3500。然而,半导体存储器装置2100可以直接联接到系统总线3500。控制器2200的功能可以由中央处理单元3100和ram3200执行。

图18示出了参照图17描述的存储器系统2000被提供。然而,存储器系统2000可以由参照图16描述的存储器系统1000代替。在实施例中,计算系统3000可以被配置为包括参照图16描述的存储器系统1000和参照图17描述的存储器系统2000。

根据本公开,可以提供一种能够有效地使用高速缓存缓冲器的控制器及其操作方法。

虽然已经参考本公开的某些示例性实施例示出并描述了本公开,但是本领域技术人员将理解的是,在不脱离由所附权利要求及其等同方案限定的本公开的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本公开的范围不应该限于上述示例性实施例,而是应该不仅由所附权利要求而且还由其等同方案确定。

在上述实施例中,可以选择性地执行所有步骤或者可以省略部分步骤。在每个实施例中,步骤不一定按照所描述的顺序执行,并且可以重新布置步骤。在本说明书和附图中公开的实施例仅是为了便于理解本公开的示例,而本公开不限于此。也就是说,对于本领域技术人员应该显而易见的是,可以基于本公开的技术范围进行各种修改。

同时,已经在附图和说明书中描述了本公开的示例性实施例。尽管本文使用了特定术语,但这些术语仅用于描述本公开的实施例。因此,本公开不限于上述实施例,而是在本公开的精神和范围内可以进行许多变化。对于本领域技术人员应该显而易见的是,除了本文公开的实施例之外,还可以基于本公开的技术范围进行各种修改。

应该理解的是,本文描述的基本发明构思的许多变化和修改仍将落入如所附权利要求及其等同方案中所限定的本公开的精神和范围内。

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