减少写入效能变化并防止io阻塞的方法

文档序号:1296036 发布日期:2020-08-07 浏览:5次 >En<

阅读说明:本技术 减少写入效能变化并防止io阻塞的方法 (Method for reducing write performance variation and preventing IO blocking ) 是由 张柏坚 许嫣兰 谢坤龙 于 2019-01-31 设计创作,主要内容包括:本发明揭露在固态硬盘里减少写入效能变化并防止IO阻塞的方法,减少写入效能变化并防止IO阻塞的方法包括接收一写入请求的步骤。然后,判断一固态硬盘的状态是正常或受限。若固态硬盘的状态是正常,则处理此写入请求。若固态硬盘的状态是受限,则把此写入请求插入写入请求队列。若第一写入请求的已耗时间小于预计等待时间,则等待一段时间,然后回到监视在写入请求队列的第一写入请求并计算预计等待时间的步骤。若第一写入请求的已耗时间大于或等于预计等待时间,则处理第一写入请求,并从写入请求队列移除第一写入请求。若写入请求队列不空,则回到等待一段时间的步骤。若写入请求队列已空,则结束。(The invention discloses a method for reducing write performance variation and preventing IO blocking in a solid state disk, which comprises the step of receiving a write request. Then, the state of a solid state disk is judged to be normal or limited. And if the state of the solid state disk is normal, processing the write request. And if the state of the solid state disk is limited, inserting the write request into a write request queue. If the elapsed time of the first write request is less than the expected wait time, wait for a period of time, and then return to the step of monitoring the first write request in the write request queue and calculating the expected wait time. If the elapsed time of the first write request is greater than or equal to the expected wait time, the first write request is processed and removed from the write request queue. If the write request queue is not empty, the step of waiting for a period of time is returned. If the write request queue is empty, the process is ended.)

减少写入效能变化并防止IO阻塞的方法

技术领域

本发明有关于固态硬盘,更特定地,有关于在固态硬盘里减少写入效能变化并防止IO阻塞的方法。

背景技术

固态硬盘的韧体须执行一些系统任务并/或读/写系统数据。这些任务或读/写会使写入效能降低一段时间。固态硬盘制造商想避免这种写入效能的变化。固态硬盘制造商还想避免IOPS(input/output per second)降为零。IOPS为零的情形被称为「IO阻塞」,这情形令用户感觉系统不回应。造成低或零IOPS的主要原因是垃圾回收任务占用闪存的多数带宽。一种解决方法是延迟垃圾回收任务。然而,延迟垃圾回收任务可能使固态硬盘的可用的贮存空间不足。另一种解决方法是把固态硬盘做成有多核心,并用其中一核心进行读/写任务,另一核心进行垃圾回收任务。然而,多用一核心就会增加固态硬盘的成本。

发明内容

有鉴于上述习知技艺的问题,本发明的目的在于提供一种有效且省成本的减少写入效能变化并防止IO阻塞的方法。

为达成上述目的,此减少写入效能变化并防止IO阻塞的方法包括接收一写入请求的步骤。然后,判断一固态硬盘的状态是「正常」或「受限」。若固态硬盘的状态是「正常」,则实现此写入请求。若固态硬盘的状态是「受限」,则把此写入请求插入写入请求队列。监视在写入请求队列的第一写入请求并计算预计等待时间。判断第一写入请求的已耗时间是否大于或等于预计等待时间。若第一写入请求的已耗时间小于预计等待时间,则等待一段时间,然后回到监视在写入请求队列的第一写入请求并计算预计等待时间的步骤。若第一写入请求的已耗时间大于或等于预计等待时间,则实现第一写入请求,并从写入请求队列移除第一写入请求。判断写入请求队列是否已空。若写入请求队列不空,则回到等待一段时间的步骤。若写入请求队列已空,则结束。

进一步的,还包括以下步骤:在接收一写入请求的步骤以前,设固态定固态硬盘的状态为正常;及在接收一写入请求的步骤的同时或以后,设固态硬盘的状态为正常或受限。

进一步的,设固态硬盘的状态为正常或受限的步骤包括以下步骤:监视自由区块的量;判断自由区块的量是否小于或等于一第一阀值;若自由区块的量小于或等于第一阀值,则设固态硬盘的状态为受限;及若自由区块的量大于第一阀值,则回到监视自由区块的量的步骤。

进一步的,在设固态硬盘的状态为受限的步骤以后还包括以下步骤:回收一个区块并使之成为自由区块;计算回收的区块的量;及判断自由区块的量是否大于或等于一第二阀值;若自由区块的量小于第二阀值,则回到回收区块的步骤;及若自由区块的量大于或等于第二阀值,则设固态硬盘的状态为正常。

进一步的,第二阀值大于或等于第一阀值。

进一步的,在设固态硬盘的状态为受限的步骤以后还包括计算垃圾回收效率的步骤。

进一步的,在计算垃圾回收效率的步骤以前还包括以下步骤:在回收一个区块的步骤后,开始一定时器;及在回收一个区块的步骤后,计算回收的垃圾的量。

进一步的,计算垃圾回收效率的步骤包括以下步骤:以被定时器测得的时间除被回收的垃圾的量。

本发明的有益效果:本发明提供了一种有效且节省成本的减少写入效能变化并防止IO阻塞的方法。

附图说明

图1是一数据贮存装置的方块图,该数据贮存装置可执行本发明的较佳实施例的减少写入效能变化并防止IO阻塞的方法;

图2是本发明的较佳实施例的减少写入效能变化并防止IO阻塞的方法的流程图;

图3是图2所示的方法的一子程序的流程图;

图4是图2所示的方法的另一子程序的流程图;

图5是图2所示的方法的另一子程序的流程图。

图中标记对应的名称:10、主机,11、中央处理单元,12、韧体,13、中央处理单元,14、韧体,15、记忆体,16、固态硬盘控制器。

具体实施方式

以下请参照相关附图进一步说明本发明的减少写入效能变化并防止IO阻塞的方法的较佳实施例。为便于理解本发明,以下用相同标记标示相同组件。

参考图1,一主机10连接一固态硬盘控制器16。固态硬盘控制器16包括两个中央处理单元11及13及一共享的记忆体15。中央处理单元11通常被称为Core 1,并连接主机10。中央处理单元13通常被称为Core 0,并连接中央处理单元11。记忆体15连接中央处理单元11及13。

运作时,中央处理单元11执行韧体12,并从主机10接收写入请求。中央处理单元13执行韧体14,并从中央处理单元11接收指令。中央处理单元13还产生两个变量,即「流程控制」及「垃圾回收效率」,并把这两个变量存入记忆体15。流程控制对应固态硬盘的状态。流程控制有两个值,即「正常」或「受限」。所谓「垃圾回收效率」就是单位时间回收的数据量。固态硬盘控制器16可执行本发明的较佳实施例的减少写入效能变化并防止IO阻塞的方法。流程控制及垃圾回收效率被用于本发明的较佳实施例的减少写入效能变化并防止IO阻塞的方法中。

图2显示本发明的较佳实施例的减少写入效能变化并防止IO阻塞的方法。在S10,供电给固态硬盘控制器16。然后,程序走到S20。

参考图3,S20代表一初始化程序。在此初始化程序中,在S22,中央处理单元13执行韧体14。然后,程序走到S24。

在S24,初始化记忆体15。然后,程序走到S26。

在S26,设「流程控制」为「正常」。然后,程序走到S28。

在S28,设「垃圾回收效率」为N。N代表一预设值。然后,程序走到S30。

在S30,中央处理单元13叫醒中央处理单元11。中央处理单元11执行韧体12。然后,中央处理单元13执行S40,且中央处理单元11执行S70(图2)。

参考图2,在S40,中央处理单元13监视自由区块的量。然后,程序走到S42。

在S42,判断自由区块的量是否小于或等于一第一阀值。若自由区块的量小于或等于第一阀值,则程序走到S44而回收垃圾。若自由区块的量大于第一阀值,则程序回到S40。

在S44,设流程控制为「受限」。如前所述,此时自由区块的量小于第一阀值,以致不能以正常速率写数据。因此,设流程控制为「受限」。然后,程序走到S46。

在S46,挑选一个区块并回收垃圾,且开始一个定时器。然后,程序走到S48。被回收的区块成为自由区块。

在S48,计算这个区块被回收的垃圾的量。然后,程序走到S50。

在S50,停止定时器,计算垃圾回收效率,并把垃圾回收效率存入记忆体15。计算垃圾回收效率的做法是以被定时器记录的时间除被回收的垃圾的量。然后程序走到S52。

在S52,判断自由区块的量是否大于或等于一第二阀值相比。若自由区块的量小于第二阀值,则程序回到S46。若自由区块的量大于或等于第二阀值,则程序走到S54。第二阀值应适度地大于第一阀值,否则垃圾回收的频率会很高而每回合的时间会很短。

在S54,设流程控制为「正常」。然后程序回到S40。

参考图4及图5,S70代表另一子程序。在S70,中央处理单元11处理写入请求。

在此子程序中,在S72,中央处理单元11从主机10接收一写入请求。然后,程序走到S74。

在S74,判断流程控制是否正常。若是,则程序走到S76,否则程序走到S78。

S76,实现写入请求。具体而言,中央处理单元11把写入请求送到中央处理单元13。然后,中央处理单元13实现此写入请求。所谓「实现」写入请求是依写入请求把数据写入固态硬盘。

在S78,把写入请求插入写入请求队列。亦即,把写入请求排在其他写入请求之后,等待实现。然后,程序走到S80。

在S80,监视在写入请求队列中的第一写入请求,并计算预计等待时间。所谓「预计等待时间」是经计算所得的第一写入请求应等待实现的时间。计算预计等待时间的做法是中央处理单元11从记忆体15读垃圾回收效率,并以垃圾回收效率除第一写入请求的数据量。然后程序走到S82。

在S82,判断第一写入请求已耗时间是否大于或等于预计等待时间。所谓「已耗时间」是第一写入请求已耗在等待实现的时间。第一写入请求的已耗时间是从中央处理单元11监视第一写入请求起算。若是,则程序走到S86,否则程序走到S84。

在S84,等待一段适当时间。这段适当时间可能是几秒。然后,程序回到S80。

在S86,实现第一写入请求,并从写入请求队列移除第一写入请求。实现第一写入请求的做法是中央处理单元11把第一写入请求送到中央处理单元13。然后,中央处理单元13实现第一写入请求。然后,程序走到S88。

在S88,判断写入请求队列是否空。若是,则程序走到S90,否则程序回到S84。

在S90,程序结束。

以上所述说明,仅为本发明的较佳实施方式而已,意在明确本发明的特征,非用以限定本发明实施例的范围,本技术领域内的一般技术人员根据本发明所作的均等变化,以及本领域内技术人员熟知的改变,仍应属本发明涵盖的范围。

11页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于在存储器系统中传输映射信息的装置和方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类