当前位置: 首页 > 专利查询>苹果公司专利>正文

具有非易失性存储器的系统的高效缓冲技术方案

技术编号:7917593 阅读:134 留言:0更新日期:2012-10-25 02:25
本发明专利技术公开了用于具有非易失性存储器(NVM)的系统的高效缓冲的系统和方法。在一些实施例中,系统中的控制电路可以使用启发法来确定是否对从文件系统接收到的一个或多个写入命令执行缓冲。在其他实施例中,控制电路可以通过沿着缓冲器的页对齐边界有效地重新排序队列中的写入命令,来最小化读取能量和缓冲开销。在进一步的实施例中,所述控制电路可以最优地将来自缓冲器的写入命令与来自队列的写入命令进行行组合。在组合这些命令后,控制电路可以在单个事务处理中分派这些命令。

【技术实现步骤摘要】
具有非易失性存储器的系统的高效缓冲
技术介绍
NAND型闪存以及其他类型的非易失性存储器(“NVM”)通常用于大规模存储。例如,诸如便携式媒体播放器的消费者电子产品一般都包括闪存,以存储音乐、视频和其他媒体。因为设备的文件系统可能执行多个小的同步输入/输出(“I/O”),所以在某些情况下不能实现管芯并行(die parallelism)。这因此会减少系统带宽,并且增加对NVM页进行编程的延迟时间。在某些情景中,通过在将一个或多个I/O编程到NVM之前缓冲该1/0,可以改善对NVM编程的延迟时间。然而,在其他情况下,如果替代地将I/O直接编程到NVM,那么不加区分地将从文件系统接收到的所有I/O都进行缓冲,实际上会减缓编程进程。
技术实现思路
公开了用于具有非易失性存储器(“NVM”)的系统的高效缓冲的系统和方法。该系统可以在缓冲将提高系统性能的情况下选择对写入(write)进行缓冲,也可以在缓冲将会是纯粹的性能负担的情况下选择将写入直接编程到NVM。在某些实施例中,系统可以使用启发法以确定是否对从文件系统接收到的一个或多个写入命令进行缓冲。在其他实施例中,系统可以通过沿着缓冲器的页对齐边界在队列中有效地重新排序写入命令,来最小化读出能量和缓冲开销。在进一步的实施例中,系统可以最佳地将来自缓冲器的写入命令和来自队列的写入命令进行组合。在将这些命令组合后,系统可以在单个事务处理(transaction)中分派这些命令。附图说明结合所附的附图以及在考虑下面的详细描述的情况下,本专利技术的上述和其他优点及方面将变得更加明显,其中在所有附图中同样的附图标记指代同样的部分,在附图中图I和图2是根据本专利技术各实施例配置的电子设备的框图;图3是根据本专利技术各实施例的非易失性存储器的功能图;图4是各个系统的例示性时序图的图形视图;图5是根据本专利技术各实施例配置的系统的例示性编程流的图形视图;图6是根据本专利技术各实施例配置的例示性缓冲器的图形视图;图7A和图7B是根据本专利技术各实施例的用于在非易失性存储器中进行高效缓冲的例示性处理的流程图;以及图8是根据本专利技术各实施例的用于确定在非易失性存储器中是否进行缓冲的例示性处理的流程图。具体实施例方式给出了用于具有非易失性存储器(“NVM”)的系统的高效缓冲的系统和方法。系统的控制电路可以使用启发法来确定是否对从文件系统接收到的写入命令进行缓冲。例如可以使用任何合适的启发法,例如,写入命令的大小、紧接在写入命令之前分派出的写入命令的数量、保存在队列中的剩余写入命令的数量、存储器中可用空间的量、缓冲器的大小以及输入/输出(“I/o”)模式。在某些实施例当中,控制电路可以基于命令的大小来确定是否对写入命令进行缓冲。例如,如果该控制电路确定该写入命令是相对小的命令( 例如,写入命令的大小在预定阈值之下),那么该控制电路可以为该写入命令选择缓冲路径(例如,将该写入命令传送到存储器的缓冲器中)。相反地,如果该控制电路确定该写入命令是相对大的命令(例如,该写入命令的大小超过了预定阈值),那么该控制电路可以为该写入命令选择写入路径(例如,指示总线控制器将该写入命令分派到NVM中)。在某些实施例中,不是为小的写入命令自动选择缓冲路径,而是控制电路可以使用额外的启发法来确定是否可以将保存在队列中的写入命令在队列中直接组合为多写(write-multi)命令。一旦将写入命令组合为多写命令,该控制电路就可以直接将该多写命令从队列中经过写入路径分派到NVM。在其他实施例中,为了最大化并发性,该控制电路可以尝试沿着缓冲器的页对齐边界在队列中对写入命令进行重新排序。结果,可以使得在后续的读中读取能量最小,这是因为用户数据经常以与该用户数据被编程的对齐和粒度相同的对齐和粒度而被读取。在进一步的实施例中,控制电路可以将缓冲的写入命令与队列写入命令组合到同一批处理或者事务处理中,以提闻系统效率。图I例示了电子设备100的框图。在某些实施例中,电子设备100可以是或者可以包括便携式媒体播放器、蜂窝电话、口袋大小的个人计算机、个人数字助理(“PDA”)、台式计算机、膝上型计算机,以及任何其他合适类型的电子设备。电子设备100可以包括片上系统(“SoC”) 110以及非易失性存储器(“NVM”) 120。非易失性存储器120可以包括基于浮栅或者电荷诱捕技术的NAND闪存、NOR闪存、可擦除可编程只读存储器(“EPR0M”)、电可擦除可编程只读存储器(“EEPR0M”)、铁电RAM(“FRAM”)、磁阻型RAM ( “MRAM” ),或者它们的任何组合。NVM 120可以被组织成“块”,该“块”可以是最小的可擦除单元并且被进一步组织成“页”,“页”可以是可被编程或读取的最小单元。在某些实施例中,NVM120可以包括多个集成电路,其中每个集成电路可以有多个块。来自对应的集成电路的存储单元(例如,块或由块构成的页)可以构成“超级块”。NVM 120的每个存储单元(例如,页或块)都可使用物理地址(例如,物理页地址或者物理块地址)被引用。片上系统110可以包括SoC控制电路112、存储器114、加密模块116以及NVM接口118。SoC控制电路112可以控制SoC 110的一般操作和功能以及SoCllO或设备100的其他部件。例如,响应于用户输入和/或应用程序或操作系统的指令,SoC控制电路112可发送读取或写入命令到NVM接口 118,以从NVM120获取数据或者将数据存储到NVM 120。为了清晰起见,SoC控制电路112可以要求存储或取回的数据可以被称为“用户数据”,即使这些数据可能与用户或者用户应用并未直接关联。相反地,这些用户数据可以是由SoC控制电路112(例如,经由应用程序或者操作系统)生成或获取的任何合适的数字信息序列。SoC控制电路112可以包括硬件、软件和固件的任意组合以及任何部件、电路或逻辑,以可操作地驱动电子设备100的功能。例如,SoC控制电路112可以包括一个或多个在软件/固件的控制之下工作的处理器,这些软件/固件被存储在NVM 120或者存储器114中。SoC控制电路112可以分派一个或多个命令给NVM 120。在某些实施例中,SoC控制电路112可以包括块设备驱动器或者包装器(wrapper),其能被配置以分派应用程序接口(“API”)操作到NVM 120或NVM 120的控制器。在某些实施例中,SoC控制电路112可以修改块设备驱动器或者包装器的一个或多个参数,以传送信息到NVM 120。例如,通过修改一个或多个参数,SoC控制电路112可以传送与用于访问NVM 120的命令(例如,读取、·编程、擦除和/或多写命令)相关联的信息。存储器114可以包括任何合适类型的易失性存储器,例如随机存取存储器(“RAM”)(例如,静态RAM( “SRAM”)、动态随机存取存储器(“DRAM”)、同步动态随机存取存储器(“ SDRAM ”)、双倍数据速率(“DDR”) RAM),高速缓冲存储器,只读存储器(“R0M”),或者上述各存储器的任何组合。存储器114可以包括数据源,该数据源可以暂时存储用于编程到非易失性存储器120中或从非易失性存储器120读取的用户数据。在某些实施例中,存储器114可以对任何实现为SoC控制本文档来自技高网...

【技术保护点】
一种用于将数据写入分到多条写入路径的方法,所述方法包括:从文件系统接收第一写入命令用以编程到非易失性存储器中(NVM);在队列中保存所述第一写入命令;确定所述第一写入命令的大小;至少部分地基于所述第一写入命令的大小,确定是否执行缓冲;以及响应于确定执行缓冲,从所述队列向缓冲器传送所述第一写入命令。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D·J·波斯特N·瓦卡特
申请(专利权)人:苹果公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1