一种访问NVM的方法及NVM控制器技术

技术编号:34774345 阅读:18 留言:0更新日期:2022-08-31 19:43
本发明专利技术公开了一种访问NVM的方法及NVM控制器,包括:通过执行微指令序列处理指示读NVM的第一用户命令,以及根据所述微指令序列中块/页读地址检查微指令检查所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址是否相同,其中,所述第二用户命令指示读NVM,所述第二用户命令出现于所述第一用户命令之前;若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址相同,从与所述第一用户命令要访问的第一并行单元对应的第一缓存中读出数据,用来响应所述第一用户命令。通过本发明专利技术的技术方案,存储设备的用户能够参与缓存利用的灵活控制,而不依赖于存储控制器判断数据是否被缓存。存。存。

【技术实现步骤摘要】
一种访问NVM的方法及NVM控制器


[0001]本专利技术涉及固态存储设备(Solid Storage Device,SSD),更具体地,本专利技术涉及存储器控制器中块/页地址检查微指令的执行。

技术介绍

[0002]同机械式硬盘相类似,固态存储设备(SSD)也是用于计算机系统的大容量、非易失性存储设备。固态存储设备一般以例如的闪存(Flash)的非易失存储器(NVM,Non Volatile Memory)作为存储介质。如图1所示,为现有技术的存储系统的框图。其中主要包括主机系统110和固态存储设备120。其中,固态存储设备120包括接口模块130,存储控制器140,以及由多个闪存颗粒150组成的Flash阵列160。其中,接口模块130主要用于实现与主机系统通信的接口协议,例如SATA(Serial Advanced Technology Attachment,串行高级技术附件)、USB(Universal Serial Bus,通用串行总线)、PCIE(Peripheral Component Interconnect Express,快速外围组件互连)、NVMe(NVM Express)、SCSI(Small Computer System Interface,小型计算机系统接口)、iSCSI(internet Small Computer System Interface,因特网小型计算机系统接口)、IDE(Integrated Drive Electronics,集成驱动器电子)等。通过接口模块130,固态存储设备呈现给主机系统的是拥有一定逻辑地址空间或物理地址空间的标准存储设备。存储控制器140是整个存储设备的控制核心,主要负责接口模块130与闪存阵列160之间的控制信号及数据的传输、闪存管理、主机逻辑地址到闪存物理地址的转换或映射、磨损均衡、和/或坏块管理等。可由软件、硬件、固件或者其组合的多种方式实现存储控制器140。
[0003]存储控制器140通过向闪存阵列160中的闪存颗粒150发送命令来访问闪存颗粒150。访问闪存颗粒150的命令包括,例如,读出、编程和/或擦除等。按页向闪存颗粒150写入或读出数据。闪存颗粒150提供了预定的页大小,每个页的大小是例如2KB、4KB、8KB或16KB。
[0004]主机110的文件系统或设备驱动也按照预定大小的数据块来访问存储设备。预定大小的数据块可被称为块(block)、页(page)或区段(sector)。这里数据块的大小同闪存颗粒150的页大小相同或不同。
[0005]在公开号为CN1414468A的中国专利申请中,提供了通过执行微指令序列来处理CPU(Central Processing Unit,中央处理单元)指令的方案。当CPU要处理特定指令时,转换逻辑电路将特定指令转换成与之对应的微指令序列,通过执行微指令序列来实现特定指令的功能。微指令序列或者微指令序列的模板存储在ROM(Read Only Memory,只读存储器)中。在将特定指令转换成微指令序列过程中,可对微指令序列模板进行填充,使之与特定指令相对应。
[0006]存储器目标(Target)是闪存颗粒150封装内的共享芯片使能(CE,Chip Enable)信号的一个或多个逻辑单元(Logic Unit)。每个逻辑单元具有逻辑单元号(LUN,Logic Unit Number)。NAND闪存封装内可包括一个或多个管芯(Die)。典型地,逻辑单元对应于单一的管芯。逻辑单元可包括多个平面(Plane)。逻辑单元内的多个平面可以并行存取,而NAND闪存
芯片内的多个逻辑单元可以彼此独立地执行命令和报告状态。在可从http://www.micron.com/~/media/Documents/Products/Other%20Documents/ONF I3_0Gold.ashx获得的“Open NAND Flash Interface Specification(Revision 3.0)”中,提供了关于目标(target)、逻辑单元、LUN、平面(Plane)的含义。
[0007]公开号为CN102177556A的中国专利申请公开了一种闪存转换层(FTL),其展示了用于FTL的并行单元的查找表的例子。由于闪存芯片中的逻辑单元(Logic Unit)可以并行方式存取,因而,并行单元可以是逻辑单元。逻辑单元内可包括多个平面(Plane),并行单元也可为平面。

技术实现思路

[0008]在一些应用场景中,NVM的页大小不同于应用所请求的页大小。例如操作系统的IO访问请求的数据单元大小为512字节,而NVM的页大小为4KB、8KB或16KB。为响应一个IO访问请求而从NVM读出数据后,大量被读出的数据并未被当前的IO请求所使用。但由于数据访问的局部性或其他原因,从NVM中被读出的数据可能在随后的IO访问请求中被使用。因而在需要从闪存颗粒读出数据时,希望有灵活的方式判断数据是否已存在于存储控制器的缓存中。数据被缓存的原因有多种,希望判断数据是否已存在于存储控制器的缓存中的方式能够适应不同的原因。并且被期待的是,存储设备的用户能够参与缓存利用的灵活控制,而不是依赖于存储控制器判断数据是否被缓存。
[0009]为实现上述目的,本专利技术通过微指令序列的执行来响应来自主机或用户的命令。通过微指令执行单元对微指令序列的执行,向闪存颗粒发出操作命令和/或接收从闪存颗粒读出的数据或其他信息。存储设备的用户通过对微指令序列的编程、更新和/或修改,能够参与对存储控制器的缓存利用的灵活控制。
[0010]根据本专利技术的第一个方面,提供了一种访问NVM的方法,包括:处理指示读NVM的第一用户命令,检查所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址是否相同,其中,所述第二用户命令指示读NVM,所述第二用户命令出现于所述第一用户命令之前,且所述第二命令与所述第一用户命令访问相同的第一并行单元;若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址相同,从与所述第一并行单元对应的第一缓存中读出数据,用来响应所述第一用户命令。
[0011]根据本专利技术的第一方面的一个实施方式,进一步包括:若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址不同,向NVM发出NVM读命令。
[0012]根据本专利技术的第一方面的一个实施方式,其中,为访问第一并行单元的第一用户命令提供第一缓存,为访问第二并行单元的第一用户命令提供第二缓存。
[0013]根据本专利技术的第一方面的一个实施方式,其中,响应于所述第二用户命令,将从NVM中读出与所述第二用户命令对应的块地址和页地址对应的数据写入所述第一缓存。
[0014]根据本专利技术的第一方面的一个实施方式,其中,若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址相同,设置标志寄存器;以及若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址不同,清本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种访问NVM的方法,其特征在于,包括:通过执行微指令序列处理指示读NVM的第一用户命令,以及根据所述微指令序列中块/页读地址检查微指令检查所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址是否相同,其中,所述第二用户命令指示读NVM,所述第二用户命令出现于所述第一用户命令之前;若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址相同,从缓存所述第二用户命令对应的块地址和页地址对应的数据的第一缓存中读出数据,用来响应所述第一用户命令。2.根据权利要求1所述的方法,其特征在于,根据所述微指令序列中块/页读地址检查微指令检查所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址是否相同,包括:根据所述块/页读地址检查微指令的偏移值(offset)访问用户命令存储器,获取第一用户命令对应的块地址和页地址;以及访问上下文存储器,获得第二用户命令对应的块地址和页地址;检查所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址是否相同。3.根据权利要求1或2所述的方法,其特征在于,若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址相同,设置标志寄存器;以及若所述第一用户命令对应的块地址和页地址与第二用户命令对应的块地址和页地址不同,清除标志寄存器。4.根据权利要求3所述的方法,其特征在于,所述微指令序列还包括条件分支微指令,通过执行条件分支微指令检查标志寄存器被设置或清除,并设置程序计数器的值;根据程序计数器的值指示获取下一个条要执行的微指令的位置。5.根据权利要求4所述的方法,其特征在于,若所述标志寄存器被设置,跳转执行第一微指令序列,以从与所述第一缓存中读出数据;以及若所述标志寄存器被清除,跳转执行第二微指令序列,以向NVM发出NVM读命令。6.一种MVN控制器,其特征在于,包括:微指令存储器,用于存储多条微指令序列;微指令执行单元,用于对微指令进行译码并执行微指令所对应的操作;程序计数器,用于指示微指令存储器中微指令的存储位置;通用寄存器组,其中通过所述微指令序列中的微指令可访问所述通用寄存器组中的寄存器;用户命令存储器,用于存储用户命令;以及上下文存储器,用于存储微指令序列对应的上下文信息;其中,所述微指令执行单元访问用户命令存储器,响应于用户命令存储器中的用户命令发起微指令序列的执行,根据所述用户命令所要访问的并行单元为微指令序列执行上下文存储器,获取微指令序列对应的上下文信息。7.根据权利要求6所述的NVM控制器,其特征在...

【专利技术属性】
技术研发人员:孙明浩王祎磊
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:

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

1