IO命令处理方法与装置制造方法及图纸

技术编号:17007249 阅读:18 留言:0更新日期:2018-01-11 03:42
提供了IO命令处理方法与装置。公开的处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;以及若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。

【技术实现步骤摘要】
IO命令处理方法与装置
本专利技术涉及固态存储设备,更具体地,涉及固态存储设备处理IO请求时对访问擦除页的读请求的处理。
技术介绍
参看图1,展示了存储设备的框图。存储设备102同主机相耦合,用于为主机提供存储能力。主机同存储设备102之间可通过多种方式相耦合,耦合方式包括但不限于通过例如SATA、IDE、USB、PCIE、NVMe(NVMExpress)、SAS、以太网、光纤通道、无线通信网络等连接主机与存储设备102。主机可以是能够通过上述方式同存储设备相通信的信息处理设备,例如,个人计算机、平板电脑、服务器、便携式计算机、网络交换机、路由器、蜂窝电话、个人数字助理等。存储设备102包括接口103、控制部件104、一个或多个NVM(非易失存储器,Non-VolatileMemory)芯片105以及可选地固件存储器110。接口103可适配于通过例如SATA、IDE、USB、PCIE、NVMe、SAS、以太网、光纤通道等方式与主机交换数据。控制部件104用于控制在接口103、NVM芯片105以及固件存储器110之间的数据传输,还用于存储管理、主机逻辑地址到闪存物理地址映射、擦除均衡、坏块管理等。可通过软件、硬件、固件或其组合的多种方式实现控制部件104。控制部件104可以是FPGA(Field-programmablegatearray,现场可编程门阵列)、ASIC(ApplicationSpecificIntegratedCircuit,应用专用集成电路)或者其组合的形式。控制部件104也可以包括处理器或者控制器。控制部件104在运行时从固件存储器110加载固件。固件存储器110可以是NOR闪存、ROM、EEPROM,也可以是NVM芯片105的部分。在固态存储设备中,利用FTL(FlashTranslationLayer,闪存转换层)来维护从逻辑地址到物理地址的映射信息。逻辑地址构成了操作系统等上层软件所感知到的固态存储设备的存储空间。物理地址是用于访问固态存储设备的物理存储单元的地址。在现有技术中还可利用中间地址形态实施地址映射。例如将逻辑地址映射为中间地址,进而将中间地址进一步映射为物理地址。存储了从逻辑地址到物理地址的映射信息的表结构被称为FTL表。FTL表是固态存储设备中的重要元数据。通常FTL表的数据项记录了固态存储设备中以数据页为单位的地址映射关系。FTL表包括多个FTL表条目(或称表项)。在一个实施例中,每个FTL表条目中记录了一个逻辑页地址与一个物理页的对应关系。在另一个例子中,每个FTL表条目中记录了连续的多个逻辑页地址与连续的多个物理页的对应关系。在又一个实施例中,每个FTL表条目中记录了逻辑块地址与物理块地址的对应关系。在依然又一个实施例中,FTL表中记录逻辑块地址与物理块地址的映射关系,和/或逻辑页地址与物理页地址的映射关系。图2是现有技术的控制部件访问FTL表的示意图。控制部件204包括多个CPU(CPU210、CPU212与CPU214)与闪存接口,控制部件的CPU通过闪存接口访问固态存储设备中的NVM芯片。在控制部件204外部的存储器中存储FTL表,FTL表包括多个表项(表项220、表项222与表项224)。多个CPU的每个能够独立的访问FTL表。由于FTL表项可能被多个CPU同时访问,为实现数据一致性,为每个FTL表项提供锁。参看图2,为更新FTL表项224,CPU210检查FTL表项224的锁234,在锁234指示FTL表项224未被加锁的情况下,CPU210获得锁234(例如,将锁234设置为加锁状态),并获取FTL表项224(t1时刻)。接下来,CPU210对获取的FTL表项224进行操作,并在t4时刻更新FTL表项224,以及将锁234释放(例如,将锁234设置为未加锁状态)。在t1-t4时刻期间,其他CPU(CPU212与CPU214)检索到锁234的存在,而暂时放弃对FTL表项224的访问。在图2中,t2时刻,CPU212尝试访问FTL表项224,但发现无法获得锁234,于是放弃对FTL表项224的访问。类似地,CPU214也由于无法获得锁234而放弃在t3时刻对FTL表项224的访问。而在t4时候之后,CPU210释放锁234,CPU212与CPU214中抢到锁234的那个CPU,将访问FTL表项234。在另一个例子中,在t1-t4时间段内,CPU210的一个任务获得锁234,而CPU210中的另一个任务由于没有获得锁234而也暂时放弃对FTL表项224的访问。FTL表项的锁可以存储在对应的FTL表项的相同位置,或者在另外的存储空间中将多个FTL表项的锁集中存储。
技术实现思路
在固态存储设备中,同时处理多个IO请求,几乎每个IO请求都需要访问FTL表。而锁机制使得对FTL表项的访问串行化,降低了固态存储的并行处理能力,增加了IO请求的处理延迟。在本专利技术中,提供了根据本专利技术第一方面的第一处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。根据本专利技术第一方面的第一处理IO请求的方法,提供了根据本专利技术第一方面的第二处理IO请求的方法,还包括:从第一物理地址读取数据以响应所述第一读请求。根据本专利技术第一方面的第三处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;若包含第一物理地址的物理块或大块处于已写入状态,以及若当前写入位置超前于第一物理地址,从第一物理地址读取数据以响应所述第一读请求。根据本专利技术第一方面的第三处理IO请求的方法,提供了根据本专利技术第一方面的第四处理IO请求的方法,还包括:若包含第一物理地址的物理块或大块处于被擦除状态,重放所述第一读请求。根据本专利技术第一方面的第三或第四处理IO请求的方法,提供了根据本专利技术第一方面的第五处理IO请求的方法,还包括:若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。根据本专利技术第一方面的第四处理IO请求的方法,提供了根据本专利技术第一方面的第六处理IO请求的方法,其中所述重放所述第一读请求包括:访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第二物理地址;若包含第二物理地址的物理块或大块处于已写入状态,以及若当前写入位置超前于第二物理地址,从第二物理地址读取数据以响应所述第一读请求。根据本专利技术第一方面的第三至第六处理IO请求的方法之一,提供了根据本专利技术第一方面的第七处理IO请求的方法,其中所述当前写入位置是包含第一物理地址的物理块或大块的当前写入位置。根据本专利技术第二方面的第一处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;从第一物理地址读取数据;若从第一物理地址读取数据的结果指示第一物理地址所在的物理页处于擦除状态,若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。根据本专利技术第二方面的第一处理IO请求的方法,提供了本文档来自技高网
...
IO命令处理方法与装置

【技术保护点】
一种处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;以及若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。

【技术特征摘要】
1.一种处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;以及若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。2.根据权利要求1所述的方法,还包括:从第一物理地址读取数据以响应所述第一读请求。3.一种处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;若包含第一物理地址的物理块或大块处于已写入状态,以及若当前写入位置超前于第一物理地址,从第一物理地址读取数据以响应所述第一读请求。4.根据权利要求3所述的方法,还包括:若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。5.一种处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;从第一物理地址读取数据;若从第一物理地址读取数据的结果指示第一物理地址所在的物理页处于擦除状态,若当前写入位置落后于第一物理地址,暂停对第一读请求的处理,直到当前写入位置超前于第一物理地址。6.一种处理IO请求的方法,包括:响应于收到第一读请求,访问第一读请求对应的第一FTL表项,获取第一FTL表项记录的第一物理地址;从第一物理地址读取数据;若从第一物理地址读取数据的结果指示第一物理地址所在的物理页处于擦除状态,以及包含第一物理地址的物理块...

【专利技术属性】
技术研发人员:路向峰
申请(专利权)人:北京忆恒创源科技有限公司
类型:发明
国别省市:北京,11

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

1