发明名称 一种映射粒度自适应的闪存转换层管理方法
摘要 本发明公开了一种映射粒度自适应的闪存转换层管理方法,包括:从文件系统接收数据请求,并判断该数据请求的类型是读请求还是写请求,如果是写请求,则根据该写请求的逻辑页号查询闪存存储空间的页映射表,以判断该写请求对应的逻辑页是否不是第一次写,如果是则根据页映射表中该逻辑页号对应的类型判断该逻辑页的类型是部分页面还是完整页面,如果是部分页面则将该部分页面对应的子页状态表中的子页状态设置为失效,判断写请求的大小是否大于闪存页的大小,如果是则从整页空闲队列的队首取出空闲的物理页,将写请求对应的数据写入该物理页中。本发明能够减少大容量闪存页访问造成的读写性能下降和存储空间浪费。
申请公布号 CN106293521A 申请公布日期 2017.01.04
申请号 CN201610623356.X 申请日期 2016.08.02
申请人 华中科技大学 发明人 刘景宁;童薇;冯丹;冯雅植;余晨晔
分类号 G06F3/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种映射粒度自适应的闪存转换层管理方法,其特征在于,包括以下步骤:(1)从文件系统接收数据请求,并判断该数据请求的类型是读请求还是写请求,如果是写请求,则进入步骤(2),如果是读请求,则进入步骤(9);(2)根据该写请求的逻辑页号查询闪存存储空间的页映射表,以判断该写请求对应的逻辑页是否不是第一次写,如果是则转入步骤(3),否则转入步骤(4);(3)根据页映射表中该逻辑页号对应的类型判断该逻辑页的类型是部分页面还是完整页面,如果是部分页面则将该部分页面对应的子页状态表中的子页状态设置为失效,然后转入步骤(4),如果是完整页面则将完整页面对应的页状态表中的页状态设置为失效,然后转入步骤(4);(4)判断写请求的大小是否大于闪存页的大小(其通常是8kB或者16kB),如果是则转入步骤(5),否则转入步骤(6);(5)从整页空闲队列的队首取出空闲的物理页,将写请求对应的数据写入该物理页中,并将完整页面对应的页状态表中的页状态修改为全部有效,然后过程结束;其中整页空闲队列是系统初始化时建立的,用于分配空闲的物理页;(6)判断写请求的分配策略是独占式分配还是共享式分配,如果是独占式分配转入步骤(7),如果是共享式分配转入步骤(8)。(7)根据页映射表中该逻辑页号对应子页映射表指针,找到该逻辑页号的子页映射表,将写请求对应的数据写入同一个物理页中。若页映射表中没有该逻辑页号的表项,则创建表项并在整页空闲队列的队首取出空闲的物理页进行分配。然后过程结束。(8)从请求大小对应的部分页空闲的队首取出空闲的物理子页,将写请求对应的数据写入该物理子页中,并将部分页面对应的子页状态表中的子页状态设置为有效,然后过程结束;其中部分有效队列是根据整页空闲队列的使用情况动态建立的,用于响应部分页面数据大小的写请求;(9)根据该读请求的逻辑页号对应的类型判断该逻辑页的类型是部分页面还是完整页面,如果是部分页面则转入步骤(10),否则转入步骤(12)。(10)根据子页映射表中该读请求的逻辑页号对应的物理子页号,读出物理子页中数据,并将该逻辑页的读次数计数器加1;(11)根据该逻辑页的读次数计数器以及该逻辑页关联的物理页数量,判断是否需要合并分散的子页,如果需要则进行合并,然后过程结束,否则过程结束。(12)根据页映射表中该读请求的逻辑页号对应的物理页号,读出物理页中数据,然后过程结束。
地址 430074 湖北省武汉市洪山区珞喻路1037号