[发明专利]一种基于固态盘内部并行性的I/O调度方法及调度器有效
申请号: | 201310190301.0 | 申请日: | 2013-05-21 |
公开(公告)号: | CN103336669A | 公开(公告)日: | 2013-10-02 |
发明(设计)人: | 周可;李春花;王桦;黄平;张科;何爽 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 朱仁玲 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 固态 内部 并行 调度 方法 | ||
1.一种基于固态盘内部并行性的I/O调度方法,其特征在于,包括以下步骤:
(1)将SSD的逻辑地址空间划分为N个具有相同大小的区域,对每个区域进行顺序编号,并为每个区域分配一个用于管理区域的子队列,每个子队列中包括读请求FIFO队列、写请求FIFO队列、读请求红黑树、以及写请求红黑树;
(2)设置区域计数器i=1;
(3)判断第i个区域的读请求FIFO队列中是否有读请求,或写请求FIFO队列中是否有写请求,如果有读请求或写请求,则转入步骤(4),否则转入步骤(15);
(4)判断第i个区域中上一次服务的请求是否为写请求,如果是则进入步骤(5),否则进入步骤(10);
(5)判断第i个区域中读请求FIFO队列和读请求红黑树中是否有读请求,如果有则进入步骤(6),否则进入步骤(11);
(6)判断第i个区域中读请求FIFO队列中是否存在超时的请求,若存在则转入步骤(7),否则转入步骤(8);
(7)从读请求FIFO队列中提取该超时的读请求,然后发送到固态盘驱动器中,然后转入步骤(9);
(8)从读请求红黑树中选择与上一次读请求位置相邻的请求,并将其发送到固态盘的驱动器中;
(9)判断已经发送到固态盘驱动器中的总读请求数目是否超过了一阀值,若是则转入步骤(15),否则返回步骤(6);
(10)判断第i个区域中写请求FIFO队列和写请求红黑树中是否有未处理的请求,如果有则进入步骤(11),否则返回步骤(6)。
(11)判断第i个区域中写请求FIFO队列中是否存在超时的写请求,若存在转入步骤(12),否则转入步骤(13);
(12)从写请求FIFO队列中提取该超时的写请求,然后发送到固态盘驱动器中,转入步骤(14);
(13)从写请求红黑树中选择与上一次写请求位置相邻的写请求发送到固态盘驱动器中;
(14)判断已经发送到固态盘驱动器中的总写请求数目是否超过了其阀值,若是则转入步骤(15),否则返回步骤(11);
(15)执行i自加1,并判断是否有i<=N,如果是则返回步骤(3),否则过程结束。
2.根据权利要求1所述的I/O调度方法,其特征在于,N值的确定方法为:首先获取固态盘总容量大小C,然后根据黑盒测试所设定的区域大小R计算出固态盘需要的区域数其中表示向上取整。
3.根据权利要求1所述的I/O调度方法,其特征在于,步骤(1)中,在任意时刻,当新的块I/O操作到达时,检查对应区域的子队列,若存在与其访问位置相邻的请求,则将该块I/O操作与位置相邻的请求合并成一个连续的大请求;若不存在,则为该块I/O操作分配一个新的请求,然后将该请求插入到对应的子队列的相应FIFO队列和红黑树中。
4.根据权利要求1所述的I/O调度方法,其特征在于,步骤(6)中,若该请求的当前时间大于该请求的Deadline字段中记录的时间点,则说明该请求超时;否则说明该请求没有超时。
5.根据权利要求1所述的I/O调度方法,其特征在于,步骤(8)具体为,在读请求红黑树中查找请求的“Start”字段等于上一次读请求的“End”字段加1的请求。
6.根据权利要求1所述的I/O调度方法,其特征在于,步骤(13)具体为,在写请求红黑树中查找请求的Start字段等于上一次写请求的End字段加1的请求。
7.一种使用权利要求1至6所述I/O调度方法的调度器,其特征在于,包括:
第一模块,用于将SSD的逻辑地址空间划分为N个具有相同大小的区域,对每个区域进行顺序编号,并为每个区域分配一个用于管理区域的子队列,每个子队列中包括读请求FIFO队列、写请求FIFO队列、读请求红黑树、以及写请求红黑树;
第二模块,用于设置区域计数器i=1;
第三模块,用于判断第i个区域的读请求FIFO队列中是否有读请求,或写请求FIFO队列中是否有写请求,如果有读请求或写请求,则转入步骤(4),否则转入步骤(15);
第四模块,用于判断第i个区域中上一次服务的请求是否为写请求,如果是则进入步骤(5),否则进入步骤(10);
第五模块,用于判断第i个区域中读请求FIFO队列和读请求红黑树中是否有读请求,如果有则进入步骤(6),否则进入步骤(11);
第六模块,用于判断第i个区域中读请求FIFO队列中是否存在超时的请求,若存在则转入步骤(7),否则转入步骤(8);
第七模块,用于从读请求FIFO队列中提取该超时的读请求,然后发送到固态盘驱动器中,然后转入步骤(9);
第八模块,用于从读请求红黑树中选择与上一次读请求位置相邻的请求,并将其发送到固态盘的驱动器中;
第九模块,用于判断已经发送到固态盘驱动器中的总读请求数目是否超过了一阀值,若是则转入步骤(15),否则返回步骤(6);
第十模块,用于判断第i个区域中写请求FIFO队列和写请求红黑树中是否有未处理的请求,如果有则进入步骤(11),否则返回步骤(6);
第十一模块,用于判断第i个区域中写请求FIFO队列中是否存在超时的写请求,若存在转入步骤(12),否则转入步骤(13);
第十二模块,用于从写请求FIFO队列中提取该超时的写请求,然后发送到固态盘驱动器中,转入步骤(14);
第十三模块,用于从写请求红黑树中选择与上一次写请求位置相邻的写请求发送到固态盘驱动器中;
第十四模块,用于判断已经发送到固态盘驱动器中的总写请求数目是否超过了其阀值,若是则转入步骤(15),否则返回步骤(11);
第十五模块,用于执行i自加1,并判断是否有i<=N,如果是则返回步骤(3),否则过程结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310190301.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于低频复合电磁超材料的无线电能传输装置
- 下一篇:一种新型牙膏瓶