发明名称 一种基于固态盘内部并行性的I/O调度方法及调度器
摘要 本发明公开了一种基于固态盘内部并行性的I/O调度方法,包括:将SSD的逻辑地址空间划分为N个具有相同大小的区域,对每个区域进行顺序编号,并为每个区域分配一个用于管理区域的子队列,每个子队列中包括读请求FIFO队列、写请求FIFO队列、读请求红黑树、以及写请求红黑树,设置区域计数器i=1,判断第i个区域的读请求FIFO队列中是否有读请求,或写请求FIFO队列中是否有写请求,如果有读请求或写请求,则判断第i个区域中上一次服务的请求是否为写请求,如果是则,判断第i个区域中读请求FIFO队列和读请求红黑树中是否有读请求。本发明能够合理适度地利用固态盘内部的并行性以及避免读写请求之间的相互干扰,从而能够提高整个固态盘系统的I/O性能和使用寿命。
申请公布号 CN103336669A 申请公布日期 2013.10.02
申请号 CN201310190301.0 申请日期 2013.05.21
申请人 华中科技大学 发明人 周可;李春花;王桦;黄平;张科;何爽
分类号 G06F3/06(2006.01)I 主分类号 G06F3/06(2006.01)I
代理机构 华中科技大学专利中心 42201 代理人 朱仁玲
主权项 一种基于固态盘内部并行性的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),否则过程结束。
地址 430074 湖北省武汉市洪山区珞喻路1037号
您可能感兴趣的专利