存储器控制器、存储器系统以及存储器系统的操作方法与流程

文档序号:17859518发布日期:2019-06-11 22:46阅读:156来源:国知局

本申请要求于2017年11月30日提交的申请号为10-2017-0163254的韩国专利申请的优先权,其整体通过引用并入本文。

本公开的各个实施例总体涉及一种电子装置。特别地,实施例涉及一种存储器控制器、存储器系统以及存储器系统的操作方法。



背景技术:

半导体存储器装置被分类为易失性半导体存储器装置和非易失性半导体存储器装置。易失性半导体存储器装置的优点在于可以高速执行读取和写入,但是不利之处在于当电源被中断时存储的信息丢失。相反,即使电源被中断,非易失性半导体存储器装置也可以保存存储在其中的信息。因此,非易失性半导体存储器装置被用于存储无论是否供电都需要被保留的信息。

非易失性半导体存储器装置的示例可以包括掩模只读存储器(mrom)、可编程只读存储器(prom)、可擦除可编程只读存储器(eprom)和电可擦除可编程只读存储器(eeprom)。

非易失性半导体存储器装置的代表性示例可以包括闪速存储器装置。闪速存储器装置已经被广泛用作诸如以下的电子装置的音频和视频数据存储介质:计算机、移动电话、个人数字助理(pda)、数码相机、可携式摄像机、录音机、mp3播放器、手持式个人计算机(pc)、游戏机、传真机、扫描仪和打印机。

近来,随着对存储器装置的高度集成需求的增加,在单个存储器单元中存储多位的多位闪速存储器装置已经变得流行。

存储器装置可以包括联接到单个字线的多个存储器单元,并且可以执行将数据存储在存储器单元中的编程操作和擦除编程的数据的擦除操作。



技术实现要素:

本公开的各个实施例涉及一种可以提高存储器系统的操作速度的存储器控制器。

本公开的各个实施例涉及一种具有提高的操作速度的存储器系统。

本公开的各个实施例涉及一种具有提高的操作速度的存储器系统的操作方法。

本公开的实施例可以提供一种存储器控制器,其控制存储器装置的操作。存储器控制器可以包括:读取请求缓冲器,其被配置为从主机接收读取请求;命令发生器,其被配置为从读取请求缓冲器接收读取请求并且基于所接收的读取请求生成读取命令;以及读取请求监控器,其被配置为从读取请求缓冲器接收与所接收的读取请求有关的读取请求信息并且基于所接收的读取请求的流id,根据具有与所接收的读取请求相同的流id的紧接前一读取请求,确定所接收的读取请求是否是顺序读取请求。

在实施例中,从主机接收的所接收的读取请求可以是多流读取请求。

在实施例中,读取请求监控器可以被配置为当所接收的读取请求被确定是顺序读取请求时,生成用于控制命令发生器的控制信号以生成预读取命令。

在实施例中,命令发生器可以被配置为响应于控制信号生成预读取命令并且将预读取命令传递到存储器装置,其中预读取命令被配置为对与所接收的读取请求的地址连续的地址相对应的数据执行读取先行操作(read-look-aheadoperation)。

在实施例中,存储器控制器可以进一步包括数据缓冲器,其被配置为响应于预读取命令而存储从存储器装置接收的数据。

本公开的实施例可以提供一种存储器系统。存储器系统可以包括:存储器装置,其被配置为包括存储数据的多个存储器单元;以及存储器控制器,其被配置为控制存储器装置的操作,其中存储器控制器被配置为接收各自包括流id的多个读取请求,并且基于流id,根据具有与当前接收的读取请求相同的流id的紧接前一读取请求,确定多个所接收的读取请求中的当前接收的读取请求是否是顺序读取请求。

在实施例中,当当前接收的读取请求被确定是顺序读取请求时,可以执行读取先行操作。

在实施例中,存储器控制器可以被配置为当当前接收的读取请求的流id和紧接前一读取请求的流id相同时,将包括流id的紧接前一读取请求的地址与当前接收的读取请求的地址进行比较,并且更新与流id相对应的计数值,以及当计数值等于或大于第一阈值时,确定当前接收的读取请求是顺序读取请求。

在实施例中,当紧接前一读取请求的地址和当前接收的读取请求的地址是连续的地址时,存储器控制器可以将计数值增加1。

在实施例中,当紧接前一读取请求的地址和当前接收的读取请求的地址不是连续的地址时,存储器控制器可以初始化计数值。

在实施例中,当当前接收的读取请求被确定是顺序读取请求时,存储器系统可以对存储在与当前接收的读取请求的地址连续的地址处的数据执行读取先行操作。

本公开的实施例可以提供一种存储器系统的操作方法。该方法可以包括从主机接收用于存储器装置的数据读取请求,并且基于包括在数据读取请求中的流id来确定是否执行读取先行操作。

在实施例中,确定是否执行读取先行操作可以包括通过参考具有与所接收的数据读取请求的流id相同的流id的紧接前一读取请求,来更新与流id相对应的计数值,确定所更新的计数值是否等于或大于第一阈值,并且基于确定结果执行读取先行操作。

在实施例中,更新计数值可以包括将包括流id的紧接前一读取请求的地址与所接收的数据读取请求的地址进行比较,并且然后更新计数值。

在实施例中,更新计数值可以包括当紧接前一读取请求的地址和所接收的数据读取请求的地址是连续的地址时,将计数值增加1。

在实施例中,更新计数值可以包括当紧接前一读取请求的地址和所接收的数据读取请求的地址不是连续的地址时,初始化计数值。

在实施例中,基于确定结果执行读取先行操作可以包括当所更新的计数值等于或大于第一阈值时,执行读取先行操作。

本公开的实施例可以提供一种存储器系统。存储器系统可以包括存储器装置和存储器控制器。控制器被配置为基于包括在当前读取请求中的流id和读取地址,确定当前读取请求是顺序读取请求,其中当前读取请求在多流的情况下从主机以洗牌(shuffled)方式提供。另外,控制器被配置为基于顺序读取请求的数量对存储器装置执行读取先行操作。流id表示多流之中的一个流。当当前读取请求的读取地址与紧接前一读取请求的读取地址连续时,控制器确定当前读取请求是顺序读取请求,其中紧接前一读取请求具有与当前读取请求相同的流id。

在实施例中,在读取先行操作期间,控制器可以控制存储器装置读取与当前读取请求的读取地址随后连续的读取地址相对应的数据。控制器可以缓冲所读取的数据。

在实施例中,在读取先行操作期间,当控制器确定当前读取请求随后的读取请求是顺序读取请求时,控制器可以将所缓冲的数据提供至主机,其中当前读取请求随后的读取请求具有与当前读取请求相同的流id的信息。

附图说明

图1是示出根据本公开的实施例的存储器系统的示图。

图2是示出图1的存储器装置的示图。

图3是用于解释根据本公开的实施例的读取先行操作的示图。

图4是示出根据本公开的实施例的在多流环境中传输读取请求的框图。

图5是示出根据本公开的实施例的发送到存储器系统的读取请求消息的结构的示图。

图6是详细示出根据本公开的实施例的在多流环境中传输读取请求的示图。

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

图8是示出根据本公开的实施例的存储器系统的操作方法的示图。

图9是示出根据本公开的实施例的存储器系统的操作方法的示图。

图10是描述根据本公开的实施例的存储器系统的操作方法的流程图。

图11是描述根据本公开的实施例的确定是否执行图10中的读取先行操作的步骤的流程图。

图12至图15是示出包括图7的存储器控制器的存储器系统的各种应用示例的示图。

具体实施方式

以下结合实施例并且参照附图来描述本公开的优点和特征以及实现其的方法。然而,本公开不限于以下实施例,而是可以以其它形式实施。因此,提供这些实施例,使得本公开透彻和完整,并且向本领域技术人员充分传达本公开的技术精神。进一步注意到,下文对“实施例”的参考不一定仅仅针对一个实施例,并且对“实施例”的不同参考不一定针对相同的实施例。

还应注意的是,在本说明书中,“连接/联接”指一个部件不仅直接联接另一部件,而且还通过一个或多个中间部件间接联接另一部件。在本说明书中,当元件被称为“包括”或“包含”部件时,并不排除包含一个或多个另外的部件,除非上下文另有明确指示。

关于附图,不同附图中所使用的相同的附图标记表示相同或相似的部件。公知的配置和功能的细节可以被省略以避免不必要地模糊本公开的发明方面和特征。

附图不一定按比例绘制,在一些情况下,为了清楚地示出实施例的特征,可能已经夸大了比例。

本文使用的术语的目的仅是描述特定实施例而不旨在限制本发明。

如本文使用的,单数形式也可以包括复数形式并且反之亦然,除非上下文另有清楚地说明。

在以下描述中,为了提供本发明的全面理解,阐述了许多具体细节。本发明可在没有一些或全部这些具体细节的情况下被实施。在其它情况下,为了不使本发明被不必要模糊,未详细地描述公知的进程结构和/或进程。

在下文中,将参照附图详细地描述本发明的各个实施例。

图1是示出根据本公开的实施例的存储器系统1000的示图。

参照图1,存储器系统1000可以包括用于存储数据的存储器装置1100以及在主机2000的控制下控制存储器装置1100的存储器控制器1200。

主机2000可以通过使用诸如以下的接口协议与存储器系统1000通信:高速外围组件互连(pci-e)、串行高级技术附件(ata)、串联ata(sata)、并联ata(pata)或串列scsi(sas)。然而,主机2000与存储器系统1000之间的数据通信的接口协议不限于上述示例。相反,可以使用诸如通用串行总线(usb)、多媒体卡(mmc)、增强小型磁盘接口(esdi)或电子集成驱动器(ide)的接口协议。

存储器控制器1200可以控制存储器系统1000的整体操作并且可以控制主机2000和存储器装置1100之间的数据交换。例如,存储器控制器1200可以响应于来自主机2000的请求,通过控制存储器装置1100来编程或读取数据。进一步地,存储器控制器1200可以存储包括在存储器装置1100中的主存储块和子存储块的信息并且可以选择存储器装置1100,使得根据针对编程操作而加载的数据量来对主存储块或子存储块执行编程操作。在实施例中,存储器装置1100的示例可以包括双倍数据速率同步动态随机存取存储器(ddrsdram)、低功率双倍数据速率4(lpddr4)sdram、图形双倍数据速率sdram(gddrsdram)、低功率ddr(lpddr)sdram、rambus动态随机存取存储器(rdram)以及闪速存储器。

存储器装置1100可以在存储器控制器1200的控制下执行编程操作、读取操作或擦除操作。

图2是示出图1的存储器装置1100的示图。

参照图2,存储器装置1100可以包括其中存储数据的存储器单元阵列100。存储器装置1100还可以包括外围电路200,其执行用于将数据存储在存储器单元阵列100中的编程操作、用于输出存储的数据的读取操作以及用于擦除存储的数据的擦除操作。存储器装置1100可以包括控制逻辑300,其在存储器控制器(例如,图1的1200)的控制下控制外围电路200。

存储器单元阵列100可以包括多个存储块mb1至mbk110(其中k是正整数)。局部线(localline)ll和位线bl1至bln(其中n是正整数)可以联接到存储块mb1至mbk110中的每一个。例如,局部线ll可以包括第一选择线、第二选择线以及布置在第一选择线和第二选择线之间的多个字线。进一步地,局部线ll可以包括布置在第一选择线和字线之间以及在第二选择线和字线之间的虚拟(dummy)线。此处,第一选择线可以是源极选择线,并且第二选择线可以是漏极选择线。例如,局部线ll可以包括字线、漏极选择线和源极选择线以及源极线sl。例如,局部线ll可以进一步包括虚拟线。例如,局部线ll可以进一步包括管线。局部线ll可以分别联接到存储块mb1至mbk110,并且位线bl1到bln可以共同联接到存储块mb1到mbk110。存储块mb1至mbk110可以被实施为二维(2d)结构或三维(3d)结构。例如,具有2d结构的存储块110中的存储器单元可以被水平地布置在衬底上。例如,具有3d结构的存储块110中的存储器单元可以被竖直地堆叠在衬底上。

外围电路200可以在控制逻辑300的控制下对选择的存储块110执行编程操作、读取操作或擦除操作。例如,外围电路200可以在控制逻辑300的控制下,将验证电压和通过电压供给到第一选择线、第二选择线和字线,可以选择性地使第一选择线、第二选择线和字线放电,并且可以验证与从字线中选择的字线联接的存储器单元。例如,外围电路200可以包括电压生成电路210、行解码器220、页面缓冲器组230、列解码器240、输入/输出电路250和感测电路260。

电压生成电路210可以响应于操作信号op_cmd而生成各种操作电压vop以用于编程操作、读取操作及擦除操作。进一步地,电压生成电路210可以响应于操作信号op_cmd而选择性地使局部线ll放电。例如,电压生成电路210可以在控制逻辑300的控制下,生成编程电压、验证电压、通过电压、导通电压、读取电压、擦除电压、源极线电压等。

行解码器220可以响应于行地址radd而将操作电压vop传递到与选择的存储块110联接的局部线ll。

页面缓冲器组230可以包括联接到位线bl1至bln的多个页面缓冲器pb1至pbn231。页面缓冲器pb1至pbn231可以响应于页面缓冲器控制信号pbsignals而操作。例如,在读取操作或验证操作期间,页面缓冲器pb1至pbn231可以临时存储通过位线bl1至bln接收的数据或者可以感测位线bl1至bln的电压或电流。

列解码器240可以响应于列地址cadd在输入/输出电路250和页面缓冲器组230之间传输数据。例如,列解码器240可以通过数据线dl与页面缓冲器231交换数据,或者可以通过列线cl与输入/输出电路250交换数据。

输入/输出电路250可以将从存储器控制器1200(如图1所示)接收的命令cmd和地址add传递到控制逻辑300,或者可以与列解码器240交换数据data。

在读取操作或验证操作期间,感测电路260可以响应于使能位vry_bit<#>而生成参考电流,并且可以通过将从页面缓冲器组230接收的感测电压vpb与基于参考电流而生成的参考电压进行比较来输出通过信号pass或失败信号fail。

控制逻辑300可以响应于命令cmd和地址add,通过输出操作信号op_cmd、行地址radd、页面缓冲器控制信号pbsignals和使能位vry_bit<#>来控制外围电路200。进一步地,控制逻辑300可以响应于通过信号pass或失败信号fail来确定验证操作已经通过还是已经失败。

图3是用于解释根据本公开的实施例的读取先行操作的示图。

参照图3,读取请求rq可以从主机2000顺序地传递到存储器系统1000。作为示例,图3示出针对从对应于地址101的数据到对应于地址160的数据范围的数据片段,主机2000将读取请求rq顺序地传递到存储器系统1000的状态。即,主机2000可以将“顺序读取”请求传输到存储器系统1000,其中“顺序读取”请求为对具有顺序地址的、连续的数据片段的读取操作。

来自主机2000的读取请求rq被传递到存储器系统1000中的存储器控制器1200。存储器控制器1200可以基于接收的读取请求rq生成读取命令,并且可以将读取命令传递到存储器装置1100。存储器装置1100可以响应于接收的读取命令读取数据,并且可以将读取的数据传递到存储器控制器1200。存储器控制器1200可以将接收的数据传输到主机2000。

在图3的示例中,主机2000可以将“顺序读取”请求传输到存储器系统1000。存储器控制器1200可以分析多个接收的读取请求,并且可以执行读取先行(rla)操作。即,当从主机2000接收的读取请求指示连续地址时,存储器控制器1200可以确定相应的读取请求是顺序读取请求。在示例中,当接收到指示连续地址的五个读取请求时,存储器控制器1200可以确定正在从主机2000提供的读取请求是顺序读取请求。

在图3的示例中,存储器控制器1200首先接收指示地址101的数据读取请求rq。然后,存储器控制器1200接收指示地址102的数据读取请求rq,地址102与先前接收的地址101连续。当针对另外的连续地址重复该过程至存储器控制器1200接收指示地址105的数据读取请求rq的点处时,指示连续地址101至105的五个数据读取请求rq已经被接收,并且因此存储器控制器1200可以确定主机2000正在传输顺序读取请求。

因此,存储器控制器1200可以执行读取先行操作。即,由于主机2000正在传输顺序读取请求,因此即使尚未接收到指示地址106的数据读取请求rq,用于地址106的读取命令r_cmd也可以被预先生成并传递到存储器装置1100。存储器装置1100可以将与接收的读取命令r_cmd相对应的数据传递到存储器控制器1200。存储器控制器1200可以将接收的数据存储在数据缓冲器(未示出)中,该数据缓冲器可以被设置在存储器控制器1200的内部或外部。此后,当主机2000传输指示地址106的数据读取请求时,存储器控制器1200响应于指示地址106的数据读取请求,立即将存储在数据缓冲器中的数据传递到主机2000。

存储器控制器1200将接收的数据存储在数据缓冲器中。此后,当从主机2000传输的数据读取请求rq不是对应于地址106的读取请求时,存储器控制器1200可以通过读取先行操作丢弃存储在数据缓冲器中的数据。

在图3中,示出了以下实施例:当连续接收到用于具有连续地址的数据的五个读取请求时,存储器控制器1200确定正在接收顺序读取请求。然而,这仅仅是示例。根据系统设计考虑,所接收的具有连续地址并且因此确定正在接收顺序读取请求的读取请求的数量可以被设置为任何合适的数量。在示例中,当用于具有连续地址的数据的十个或更多个读取请求被连续地接收时,存储器控制器1200也可以确定正在接收顺序读取请求。

如上所述,当存储器系统1000响应于顺序读取请求执行读取先行操作时,可以提高存储器系统1000的整体操作速度,特别是读取操作速度。

图4是示出根据本公开的实施例的在多流环境中传输读取请求的框图。

参照图4,多个读取请求rq1至rq4可以通过在主机2000内部执行的多个应用app.1至app.4而被传输到存储器系统1000。例如,第一应用app.1可以是与图片的编辑有关的应用,其中第一请求rq1可以是针对存储在存储器装置1100中的具体图片数据的读取请求。进一步地,第二应用app.2可以是与播放视频有关的应用,其中第二请求rq2可以是针对存储在存储器装置1100中的具体视频数据的读取请求。以该方式,在多流环境中,主机2000可以将由内部执行的多个应用app.1至app.4实时生成的读取请求传递到存储器系统1000。

在该情况下,由各个应用app.1至app.4生成的读取请求rq1至rq4可被洗牌并且被传输到存储器系统1000。因此,当由各个应用app.1至app.4生成的读取请求是顺序读取请求时,可能存在以下情况:存储器系统1000的存储器控制器1200不能确定由应用app.1至app.4生成的读取请求是顺序读取请求。

根据本公开的实施例,存储器控制器1200可以基于由主机2000生成的读取请求的流id,来确定所接收的来自应用app.1至app.4的读取请求是否是顺序读取请求。因此,即使当多个应用在多流环境中实时传输被洗牌的顺序读取请求时,也可以有效地执行读取先行操作。因此,可以提高存储器系统1000的整体操作速度,特别是读取操作速度。

将参照图5至图11描述根据本公开的实施例的基于流id执行读取先行操作的详细方法。

图5是示出根据本公开的实施例的发送到存储器系统的读取请求消息的结构的示图。

参照图5,配置读取请求的消息400可以包括三个域401、402和403,其中该读取请求将在多流环境中从主机2000发送到存储器系统1000。第一域401可以指示相应的消息400是读取请求。可以使用第一域401,使得读取请求与数据编程请求或数据擦除请求区分开。第二域402可以指示由相应的消息400配置的读取请求的流id。参照图5以及图4,可以基于流id来识别生成相应读取请求的应用。第三域403可以指示存储读取请求的目标数据的地址。

图5中所示的消息中的域的格式仅是示例,并且域401、402和403的顺序可以改变。而且,除了图5所示的域之外,配置读取请求的消息400可以进一步包括具有其它目的的其它域。

基于图5所示的消息400中包含的流ids_id,根据本公开的一个或多个实施例的存储器控制器1200可以确定接收的读取请求是否是顺序读取请求。因此,即使当多个应用在多流环境中实时传输顺序读取请求时,也可以有效地执行读取先行操作。因此,可以提高存储器系统1000的整体操作速度,特别是读取操作速度。

图6是详细示出根据本公开的实施例的在多流环境中传输读取请求的示图。

参照图6,在主机2000中执行的应用app.1至app.4可以分别生成它们自己的读取请求rq1至rq4。第一应用app.1生成第一读取请求rq1。第一读取请求rq1可以是顺序读取请求。如图6所示,第一读取请求rq1包括与地址101至180相对应的数据读取请求。第二应用app.2生成第二读取请求rq2。第二读取请求rq2可以是顺序读取请求。如图6所示,第二读取请求rq2包括与地址201至275相对应的数据读取请求。第三应用app.3生成第三读取请求rq3。第三读取请求rq3可以是顺序读取请求。如图6所示,第三读取请求rq3包括与地址301至368相对应的数据读取请求。第四应用app.4生成第四读取请求rq4。第四读取请求rq4可以是顺序读取请求。如图6所示,第四读取请求rq4包括与地址401至495相对应的数据读取请求。

在传统存储器系统中,主机的不同应用可以生成顺序读取请求,但是由系统的存储器控制器接收的这些读取请求却被确定为随机读取请求。这是由于在多流环境中,这些应用的读取请求被传输到存储器控制器并且被洗牌。存储器控制器可以接收与一个应用的第一地址相对应的读取请求并且可接收与另一应用的第一地址相对应的读取请求。由于在不考虑流ids_id的情况下处理这些读取请求,因此存储器控制器确定这些接收的读取请求是随机读取请求。以这种方式,在多个应用实时传输读取请求的多流环境中,即使不同的应用传输顺序读取请求,存储器控制器也确定接收到的是随机读取请求。由于这种处理,存储器系统的整体操作速度恶化。

相反,根据本公开的实施例,存储器控制器1200可以基于流ids_id来确定接收的读取请求是否是顺序读取请求。因此,即使在多流环境中,存储器系统1000也可以响应于从主机2000传输的、各个应用的顺序读取请求来执行读取先行操作。因此,可以提高存储器系统1000的操作速度。

图7是示出根据本公开的实施例的存储器控制器的框图。参照图7,存储器控制器1200可以包括读取请求缓冲器1201、命令发生器1203、读取请求监控器1205和数据缓冲器1207。图7中所示的配置仅仅是示例。存储器控制器1200可以被配置成不同于图7中所示的配置。

读取请求缓冲器1201可以临时存储从主机2000接收的读取请求rq。读取请求缓冲器1201可以将接收的读取请求rq传递到命令发生器1203。进一步地,读取请求缓冲器1201可以将与接收的读取请求rq相关的读取请求信息inf_rq传递到读取请求监控器1205。

命令发生器1203可以生成与从读取请求缓冲器1201接收的读取请求rq相对应的读取命令。命令发生器1203可以响应于从读取请求监控器1205接收的控制信号ctr来生成读取命令。在示例中,响应于从读取请求监控器1205接收的控制信号ctr而生成的读取命令可以是用于读取先行(rla)操作的读取命令。命令发生器1203可以将生成的命令cmd传递到存储器装置1100。存储器装置1100可以响应于接收的命令cmd之中的读取命令来读取数据,并且可以将读取的数据传递到存储器控制器1200。

读取请求监控器1205可以从读取请求缓冲器1201接收读取请求信息inf_rq。读取请求监控器1205可以基于接收的读取请求信息inf_rq来确定相应的读取请求是顺序读取请求还是随机读取请求。如果确定相应的读取请求是顺序读取请求,则读取请求监控器1205可以生成用于生成命令以执行读取先行操作的控制信号ctr,并且可以将控制信号ctr传递到命令发生器1203。如上所述,命令发生器1203可以响应于控制信号ctr而生成用于执行读取先行操作的读取命令。

在示例中,读取请求监控器1205可以针对各个流id,对具有连续地址的读取请求进行计数,并且可以存储计数结果。因此,可以针对各个流id来计数累加的读取请求,从而可以确定每个接收的读取请求是顺序读取请求还是随机读取请求。

数据缓冲器1207可以临时存储从存储器装置1100接收的数据。从存储器装置1100接收的数据可以是典型读取操作的数据或者是读取先行操作的数据。典型读取操作可以响应于随机读取请求而被执行。读取先行操作可以响应于顺序读取请求而被执行。如上所述,读取请求监控器1205可以基于接收的读取请求信息inf_rq来确定相应的读取请求是顺序读取请求还是随机读取请求。当临时存储在数据缓冲器1207中的数据是典型读取操作的数据时,相应的数据可以被传输到主机2000。当临时存储在数据缓冲器1207中的数据是读取先行操作的数据时,该数据可以响应于从读取请求缓冲器1201接收的读取请求rq而被传递到主机2000。

下面将参照图8和图9描述图7中所示的存储器控制器1200的详细操作。

图8是示出根据本公开的实施例的存储器系统1000的操作方法的示图。

参照图8,示出了从主机2000传递到存储器控制器1200的读取请求。相应的请求可以是由不同应用生成的多流请求。在图8中,示出了第一请求rq_01至第十三请求rq_13。请求中的每一个可以具有图5所示的消息400的格式,但是图8的所有请求都被视为读取请求,因此省略示出第一域401。即,在每个读取请求中包括的域之中,图8示出了指示流id的第二域402和指示地址的第三域403。将参照图7和图8一起详细描述根据本公开的实施例的存储器控制器1200的操作。

第一请求rq_01由第一应用生成并且包括第一流id#1。如图8所示,当在初始状态下接收到第一请求rq_01时,第一流id#1的计数值cnt增加1。第二流id至第四流id#2、#3和#4的计数值cnt是0。这些值可以由读取请求监控器1205计数。

然后,接收到第二请求rq_02和第三请求rq_03。第二请求rq_02和第三请求rq_03分别包括第二流id#2和第三流id#3。因此,第二流id#2和第三流id#3的计数值cnt也增加1。接下来,接收到包括第四流id#4的第四请求rq_04,然后将第四流id#4的计数值cnt增加1。

接收到第五请求rq_05。第五请求rq_05包括第一流id#1和地址102。对应于第一流id#1的紧接前一请求是第一请求rq_01,并且第一请求rq_01包括地址101。由于第一请求rq_01的地址101和第五请求rq_05的地址102是连续地址,因此第一流id#1的计数值cnt增加1。

然后,接收到第六请求rq_06和第七请求rq_07。第六请求rq_06包括第二流id#2。对应于第二流id#2的紧接前一请求是第二请求rq_02并且第二请求rq_02包括地址201。由于第六请求rq_06的地址202和第二请求rq_02的地址201是连续地址,因此在接收到第六请求rq_06之后,第二流id#2的计数值cnt增加1。而且,第七请求rq_07包括第四流id#4。对应于第四流id#4的紧接前一请求是第四请求rq_04并且第四请求rq_04包括地址401。由于第七请求rq_07的地址402和第四请求rq_04的地址401是连续地址,因此在接收到第七请求rq_07之后,第四流id#4的计数值cnt增加1。

以该方式,当针对各个流id#1至#4,接收到连续地址的读取请求时,相应的计数值cnt分别增加1。

下面描述第十二请求rq_12。第十二请求rq_12包括第一流id#1和地址150。对应于第一流id#1的紧接前一请求是第十请求rq_10。第十请求rq_10包括地址103。由于第十二请求rq_12的地址150和第十请求rq_10的地址103不是连续地址,因此第一流id#1的计数值cnt被初始化并且被指定为1。即,在接收到第十二请求rq_12之后,第一流id#1的计数值cnt被改变为1而不是4。即,可以针于每个流,通过对连续地接收具有连续地址的读取请求的次数进行累加,来获得每个流id的计数值cnt。存储器控制器1200可以基于各个流id#1至#4的计数值cnt,来确定接收的读取请求是顺序读取请求还是随机读取请求。进一步地,如果确定相应接收的读取请求是顺序读取请求,则存储器控制器1200可以生成用于读取先行操作的命令并且将命令传递到存储器装置1100。因此,存储器系统1000的读取先行操作的效率可以提高并且其操作速度也可以增加。

图9是示出根据本公开的实施例的存储器系统的操作方法的示图。参照图9,示出了在图8所示的第十三请求rq_13之后接收的第十四请求rq_14至第二十六请求rq_26。根据图9所示的示例,当流id#1至#4中的每一个的计数值cnt达到“5”时,存储器控制器1200可以确定相应流的读取请求是顺序读取请求,并且然后可以生成用于读取先行操作的预读取命令。以下将详细描述接收读取请求的步骤。

第十四请求rq_14包括第四流id#4和地址403。参照图8,对应于第四流id#4的紧接前一请求是第七请求rq_07,并且第七请求rq_07的地址402和第十四请求rq_14的地址403是连续地址,因此第四流id#4的计数值cnt增加1。然而,由于当接收到第十四请求rq_14时,各个流id#1至#4的计数值cnt均小于5,因此存储器控制器1200确定对应于各个流id#1至#4的、接收的读取请求是随机读取请求。

然后,接收第十五请求rq_15,并且第一流id#1的计数值cnt增加1。然后,接收第十六请求rq_16,并且第二流id#2的计数值cnt增加1。

当接收到第十六请求rq_16时,第二流id#2的计数值cnt达到5。如上所述,在图9的示例中,用作标准以确定每个接收的读取请求是否是顺序读取请求的参考计数值cnt是“5”。这种用作标准以确定每个接收的读取请求是否是顺序读取请求的参考计数值cnt被称为“第一阈值”。即,在图9的示例中,第一阈值可以是5(该数量可以根据系统设计而改变),使得当接收到第十六请求rq_16时,第二流id#2的计数值cnt达到第一阈值。因此,存储器控制器1200确定第二流id#2的读取请求是顺序读取请求。因此,生成预读取命令以用于读取先行操作。

更具体地,由于第二流id#2的计数值cnt已经达到第一阈值,其在该示例中为“5”,因此图7的读取请求监控器1205将控制信号ctr传递到命令发生器1203。命令发生器1203响应于控制信号ctr生成用于第二流id#2的预读取命令。

由于接收的第十六请求rq_16的地址是“205”,因此命令发生器1203生成用于针对地址206的读取先行操作的预读取命令,并且将命令传递到存储器装置1100。因此,来自存储器装置1100的、对应于地址206的数据可以临时存储在存储器控制器1200的数据缓冲器1207中。

然后,当接收到第十七请求rq_17至第十九请求rq_19时,第一流id#1、第三流id#3和第四流id#4的计数值cnt分别增加1。

接收到第二十请求rq_20。第二十请求rq_20包括第二流id#2和地址206。当接收到包括地址206的第二十请求rq_20时,临时存储在数据缓冲器1207中的数据通过读取先行操作被传递到主机2000。在该情况下,通过读取先行操作,从存储器控制器1200接收第二十请求rq_20到相应数据被传递到主机2000的时间长度可以减小。因此,可以提高存储器系统1000的操作速度。

当接收到第二十请求rq_20时,第二流id#2的计数值cnt增加1而达到6。由于第二流id#2的计数值cnt仍然大于第一阈值,因此存储器控制器1200确定第二流id#2的读取请求是顺序读取请求。因此,生成预读取命令以用于针对第二流id#2的读取先行操作。即,图7的读取请求监控器1205将控制信号ctr传递到命令发生器1203,并且命令发生器1203响应于控制信号ctr生成针对第二流id#2的预读取命令。由于接收的第二十请求rq_20的地址是“206”,因此命令发生器1203生成用于针对地址207的读取先行操作的命令,并且将命令传递到存储器装置1100。因此,来自存储器装置1100的、对应于地址207的数据可以临时存储在存储器控制器1200的数据缓冲器1207中。

然后,当接收到第二十一请求rq_21时,第一流id#1的计数值cnt增加1。当接收到第二十二请求rq_22时,第三流id#3的计数值cnt被初始化并改变为1。其原因在于,第二十二请求rq_22的地址371与对应于第三流id#3的紧接前一请求的第十八请求rq_18的地址304不连续。因此,存储器控制器1200仍然可以确定第三流id#3的读取请求是随机读取请求。

然后,接收到第二十三请求rq_23。第二十三请求rq_23包括第二流id#2和地址240。对应于第二流id#2的紧接前一请求是第二十请求rq_20。由于第二十请求rq_20的地址206和第二十三请求rq_23的地址240不是连续地址,因此第二流id#2的计数值cnt被初始化并改变为1。

包括第二流id#2的第二十三请求rq_23的地址240不是通过读取先行操作而临时存储在数据缓冲器1207中的预读取(即,预获取)数据的地址207。因此,通过读取先行操作而临时存储在数据缓冲器1207中的、对应于地址207的数据被丢弃而不被传递到主机2000。

然后,接收到第二十四请求rq_24,并且因此第二流id#2的计数值cnt增加1。进一步地,接收到第二十五请求,因此第一流id#1的计数值cnt增加1以达到第一阈值。虽然在图9中未示出,但是存储器控制器1200可以生成用于对与地址155相对应的数据执行读取先行操作的命令,并且可以将命令传递到存储器装置1100。

虽然在图8和图9的实施例中,第一阈值已经被描述为5,但是这仅仅是示例,并且本公开的实施例不限于此。即,如果有必要,基于系统设计考虑,第一阈值可以被设置为不等于5的值。当第一阈值被设置为较大值时,可减少由于不必要的读取先行操作而被丢弃的数据的量。即,当第一阈值被设置为较大值时,由不必要的读取先行操作引起的存储器装置1100的写入放大因子(waf)可以降低。相反,当第一阈值被设置为较小值时,可能增加读取先行操作的频率,结果是可以提高存储系统1000的操作速度。

以该方式,根据本公开的实施例,存储器控制器1200可以监控接收的各个流id的读取请求,并且可以确定读取请求是否是顺序读取请求。因此,即使在多流环境中,各个流的读取请求被洗牌并传输的情况下,也可以确定顺序读取请求并且可以执行读取先行操作。因此,可以提高存储器系统1000的操作速度。

图10是描述根据本公开的实施例的存储器系统的操作方法的流程图。

参照图10,根据本公开的实施例的存储器系统1000的操作方法可以包括从主机2000接收用于存储器装置1100的数据读取请求的步骤s110以及基于与读取请求相关的流id来确定是否执行读取先行操作的步骤s130。

作为示例,在从主机2000接收用于存储器装置1100的数据读取请求的步骤s110中,如以上参照图6所述,在多流环境中由各个应用app.1至app.4生成的读取请求rq1至rq4可以被洗牌并传输到存储器控制器1200。在典型的情况下,由于读取请求rq1到rq4被洗牌并接收,因此不可能确定读取请求是否是顺序读取请求。然而,根据本公开的实施例的存储器系统1000的操作方法,可以针对各个流id来确定读取请求是否是顺序读取请求。

如以上参照图7至图9所述,基于与读取请求相关的流id来确定是否执行读取先行操作的步骤s130可以被配置为:对与各个读取请求相对应的流id进行计数并且确定读取请求是否是顺序读取请求。如果确定读取请求中的每一个是顺序读取请求,则执行读取先行操作,并且因此可以提高存储器系统1000的操作速度。

每当接收到一个读取请求时,就可以由存储器控制器1200来执行图10所示的步骤s110和步骤s130。因此,在已经执行步骤s130之后,再次执行步骤s110。

下面将参照图11描述基于与读取请求相关的流id来确定是否执行读取先行操作的步骤s130的详细配置。

图11是描述根据本公开的实施例的确定是否执行图10中的读取先行操作的步骤的流程图。

参照图11,确定是否执行读取先行操作的步骤s130可以包括步骤s210、步骤s220、步骤s230、步骤s240、步骤s250和步骤s260。

在步骤s210处,参考具有与接收的读取请求相同的流id的紧接前一读取请求。在示例中,当在图8中接收到第七请求rq_07时,参考第四请求rq_04,其为具有第七请求rq_07的流id#4的紧接前一请求。

然后,在步骤s220处,确定接收的读取请求是否是与相应流id的读取请求连续的读取请求。在以上示例中,当接收到第七请求rq_07时,通过参考读取请求的地址来确定第七请求rq_07是否是与第四请求rq_04连续的读取请求。由于第七请求rq_07的地址是402并且第四请求rq_04的地址是401,因此该请求是连续读取请求。因此,在该情况下,进程进行到步骤s240。相反,当接收到第十二请求rq_12时,其地址150不与第十请求rq_10的地址103连续,因此确定该请求不是连续读取请求。在该情况下,进程进行到步骤s230。当进程进行到步骤s230时,流请求(即,流id的请求)的计数值cnt被初始化并且被改变为1,然后终止进程。

在步骤s240处,更新流请求的计数值cnt。更新可以表示将计数值cnt增加1。此后,确定更新的计数值cnt是否等于或大于第一阈值。

例如,当在图9中接收到第十六请求rq_16时,在步骤s240处更新的第二流id#2的计数值cnt是5。进一步地,由于第一阈值是5,因此进程可以基于步骤s250的确定结果而进行到步骤s260。相反,当在图9中接收到第十五请求rq_15时,在步骤s240处更新的第一流id#1的计数值cnt是2。由于更新的计数值小于第一阈值,因此可以基于步骤s250的确定结果来终止确定是否执行读取先行操作的步骤s130。

当进程进行到步骤s260时,生成预读取命令。例如,当在图9中接收到第十六请求rq_16时,第十六请求rq_16的地址是205,并且因此针对地址206的预读取命令可以被生成并且被传递到存储器装置1100。

当执行了图11所示的全部步骤时,重复图10的步骤s110。

根据图10和图11所示的存储器系统1000的操作方法,即使在多流环境中,各种流的读取请求从主机2000传递到存储器控制器1200并且被洗牌,也可以针对各个流id来确定接收的读取请求是否是顺序读取请求。因此,可以更高效地执行读取先行操作并且因此可以提高存储器系统的操作速度。

图12是示出包括图7的存储器控制器的存储器系统的应用示例的示图。

参照图12,存储器系统3000可以被实现为蜂窝电话、智能电话、平板pc、个人数字助理(pda)或无线通信装置。存储器系统3000可以包括存储器装置1100和能够控制存储器装置1100的操作的存储器控制器1200。存储器控制器1200可以在处理器3100的控制下控制存储器装置1100的数据存取操作,例如,编程操作、擦除操作或读取操作。

编程在存储器装置1100中的数据可以在存储器控制器1200的控制下通过显示器3200输出。

无线电收发器3300可以通过天线ant发送和接收无线电信号。例如,无线电收发器3300可以将通过天线ant接收的无线电信号改变为可以由处理器3100处理的信号。因此,处理器3100可以处理从无线电收发器3300输出的信号并且将处理后的信号传输到存储器控制器1200或显示器3200。存储器控制器1200可以将由处理器3100处理的信号编程到存储器装置1100。此外,无线电收发器3300可以将从处理器3100输出的信号改变为无线电信号,并且通过天线ant将改变后的无线电信号输出到外部装置。输入装置3400可以用于输入用于控制处理器3100的操作的控制信号或者待由处理器3100处理的数据。输入装置3400可以被实施为诸如触摸板或计算机鼠标的点击装置、小键盘或键盘。处理器3100可以控制显示器3200的操作,使得从存储器控制器1200输出的数据、从无线电收发器3300输出的数据或从输入装置3400输出的数据通过显示器3200输出。

在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器3100的一部分或独立于处理器3100设置的芯片。

图13是示出包括图7所示的存储器控制器的存储器系统的应用示例的示图。

参照图13,存储器系统4000可以被实现为个人计算机、平板pc、电子书、电子阅读器、个人数字助理(pda)、便携式多媒体播放器(pmp)、mp3播放器或mp4播放器。

存储器系统4000可以包括存储器装置1100和能够控制存储器装置1100的数据处理操作的存储器控制器1200。

处理器4100可以根据从输入装置4200输入的数据,通过显示器4300输出存储在存储器装置1100中的数据。例如,输入装置4200可以被实施为诸如触摸板或计算机鼠标的点击装置、小键盘或键盘。

处理器4100可以控制存储器系统4000的整体操作并且控制存储器控制器1200的操作。在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器4100的一部分或独立于处理器4100设置的芯片。

图14是示出包括图7所示的存储器控制器的存储器系统的应用示例的示图。

参照图14,存储器系统5000可以被实现为图像处理装置,例如数码相机、设置有数码相机的便携式电话、设置有数码相机的智能手机或设置有数码相机的平板pc。

存储器系统5000可以包括存储器装置1100和能够控制存储器装置1100的例如编程操作、擦除操作或读取操作的数据处理操作的存储器控制器1200。

存储器系统5000的图像传感器5200可以将光学图像转换为数字信号。转换后的数字信号可以被传输到处理器5100或存储器控制器1200。在处理器5100的控制下,转换后的数字信号可以通过显示器5300输出或通过存储器控制器1200而存储在存储器装置1100中。存储在存储器装置1100中的数据可以在处理器5100或存储器控制器1200的控制下通过显示器5300输出。

在实施例中,能够控制存储器装置1100的操作的存储器控制器1200可以被实施为处理器5100的一部分或独立于处理器5100设置的芯片。

图15是示出包括图7所示的存储器控制器的存储器系统的应用示例的示图。

参照图15,存储器系统7000可以被实现为存储卡或智能卡。存储器系统7000可以包括存储器装置1100,存储器控制器1200和卡接口7100。

存储器控制器1200可以控制存储器装置1100和卡接口7100之间的数据交换。在实施例中,卡接口7100可以是安全数字(sd)卡接口或多媒体卡(mmc)接口,但是不限于此。

卡接口7100可以根据主机6000的协议来接口连接主机6000和存储器控制器1200之间的数据交换。在实施例中,卡接口7100可以支持通用串行总线(usb)协议和芯片间(ic)-usb协议。此处,卡接口可以指能够支持由主机6000使用的协议的硬件、安装在硬件中的软件或者信号传输方法。

当存储器系统7000连接到诸如pc、平板pc、数码相机、数字音频播放器、蜂窝电话、控制台视频游戏硬件或数字机顶盒的主机6000的主机接口6200时,主机接口6200可以在微处理器6100的控制下通过卡接口7100和存储器控制器1200执行与存储器装置1100的数据通信。

根据本公开的实施例,提供一种可以提高存储器系统的操作速度的存储器控制器。

根据本公开的实施例,提供一种具有提高的操作速度的存储器系统。

根据本公开的实施例,提供一种具有提高的操作速度的存储器系统的操作方法。

本文已经公开各个实施例,并且虽然采用特定术语,但是它们被用于和解释为通用和描述性的含义,而不是为了限制的目的。在一些情况下,如从提交本申请起对于本领域普通技术人员显而易见的是,结合特定实施例描述的特征、特性和/或元件可以单独使用或与结合其他它实施例描述的特征、特性和/或元件结合使用,除非另有具体说明。因此,本领域技术人员将理解,在不脱离如所附权利要求中阐述的本公开的精神和范围的情况下,可以进行形式和细节上的各种改变。

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