一种加快命令响应的方法、系统以及SSD技术方案

技术编号:22166071 阅读:24 留言:0更新日期:2019-09-21 10:13
本发明专利技术公开了一种加快命令响应的方法、系统以及SSD,涉及SSD数据处理技术领域。其加快命令响应的方法的技术要点包括建立同一优先级的并分别对应不同命令类型的若干任务链表;分析存入内存缓冲区中队列的命令类型;基于命令类型,找到对应命令的任务链表,并将命令链接到对应任务链表的尾端;轮询任务链表,获取任务链表下可执行的命令;处理获取命令,本发明专利技术具有加快命令的响应速度的优点。

A Method, System and SSD for Accelerating Command Response

【技术实现步骤摘要】
一种加快命令响应的方法、系统以及SSD
本专利技术涉及SSD数据处理的
,更具体地说,它涉及一种加快命令响应的方法、系统以及SSD。
技术介绍
固态硬盘(SSD)中通常设置NANDFLASH。NANDFLASH并非随机存取,而是序列存取。NANDFLASH无法像NORFLASH装置一样,可以存取任何随机地址,主装置需要写入序列字节(bytes)的值到NANDFLASH中,并定义请求命令(command)的类型(如,读取、写入、抹除等),以及用在此命令上的地址。地址可指向一个页面(在闪存中的一个写入作业的最小数据块)或一个区块(在闪存中的一个抹除作业的最小数据)。现有SSD数据写入或读取时,内存内会生成任务队列,按照任务队列内存储的命令的次序进行依次的执行命令。而任务队列内经常会出现单一类型的命令。因此按照现有内存的命令处理顺序,需要将前侧的单一类型命令全部处理完才能够响应下一类型的命令,导致下一类型的命令速度慢。而在一些实时操作系统当中,会比较希望存储单元有较快的响应能力,比如在工控领域,在程序运转过程当中,希望读取一些参数来进行调整,如果是普通的存储器,在写命令堵塞命令模块的情况下,再去发读取命令的话,必须得等前面的写命令做完,才能去执行这个读命令,这个等待的过程可能刀头的运行轨迹脱离了轨道。再比如在进行SSD内的word编码时,突然停电了,此时如果表格的写入响应速度比较快的话,那么对于文档的掉电恢复会比较快速。因此现有SSD内存内命令响应速度慢的问题,亟待解决。
技术实现思路
针对现有的技术问题,本专利技术的第一目的在于提供一种加快命令响应的方法,其具有加快命令的响应速度优点。为实现上述目的,本专利技术提供了如下技术方案:一种加快命令响应的方法,包括,建立同一优先级的并分别对应不同命令类型的若干任务链表;分析存入内存缓冲区中队列的命令类型;基于命令类型,找到对应命令的任务链表,并将命令链接到对应任务链表的尾端;轮询任务链表,获取任务链表下可执行的命令;处理获取命令。通过采用上述技术方案,由于链表是一种物理存储单元上非连续、非顺序的存储结构。通过并将命令队列根据命令类型进行分类,分别排列在对应的链表下,再轮询处理任务链表的命令。使得在任务内存中原本应该依次处理的命令,可以根据任务类型改变处理的次序。例如,任务内存中单种类型的命令在任务队列的前端排列过多时,如果按照队列的方式需要依次逐个处理完单种类型的命令,才能再执行另一类型的命令。而采用本方案,无需进行对命令队列的顺序处理,在多种类型的命令存在的情况下,会依次循环处理各种类型的命令。能够大大得加快不同类型命令的响应速度,增加实时操作系统的稳定性及可靠性。本专利技术进一步设置为:所述任务链表的数量为两个,所述命令类型包括数据型和映射表型。通过采用上述技术方案,一般在SSD数据传输过程中,数据型的命令较多,映射表型的命令较少;因此在内存中表格型的命令前会存在大量数据型的命令,较少的映射表型;而映射表型内容存储一整段数据中,各个数据的在flash中的位置;当映射表型无法及时存入而断电的情况下,会导致已经存入flash的内容找回比较麻烦;而加快映射表型的响应速度,能够加快数据的恢复。本专利技术进一步设置为:所述任务链表的数量为四个,所述命令类型包括数据写入型、表格写入型、数据读取型和表格读取型。通过采用上述技术方案,在flash内执行各种类型的情况下,采用数据写入型、表格写入型、数据读取型和表格读取型同优先级的方式,能够实现对flash内各种类型的任务同步响应。本专利技术进一步设置为:在轮询任务链表的过程中,若任务链表无可执行命令,则轮询至下一任务链表。通过采用上述技术方案,当任务链表中的指针指向NULL,则表示任务量表中没有可执行的任务了,此时直接查询下一任务链表,避免出现卡顿。本专利技术进一步设置为:所述命令包括任务类型和闪存操作命令。通过采用上述技术方案,任务类型,闪存操作命令用于作为指示码,指示命令类型;达到通过检测分类命令的目的。本专利技术进一步设置为:所述命令还包括数据量,闪存行地址和闪存列地址。通过采用上述技术方案,直接命令通过写入数据量,闪存行地址和闪存列地址,减少了闪存内固件的计算量,减小了固件的调试时长。本专利技术进一步设置为:所述命令在内存中依次写入数据,当检测到命令数据完全,则将命令移入到内存缓冲区内。通过采用上述技术方案,无需闪存MCU参与每个硬件步骤,减少闪存MCU负担,减少调试硬件调试时间。本专利技术的第二目的在于提供一种加快命令响应的任务管理系统,其具有加快命令的响应速度优点。为实现上述目的,本专利技术提供了如下技术方案:一种加快命令响应的任务管理系统,包括:内存缓冲区,用于暂存命令;链表区,其包括若干处于同一优先级的任务链表;检测模块,其用于分析存入内存缓冲区的命令,获取命令的类型;链接模块,其基于命令类型,为内存缓冲区的命令找到对应的任务链表,并将命令链接到对应链表的尾端;轮询模块,用于轮询任务链表,获取任务链表下可执行的命令;处理模块,用于处理获取命令。通过采用上述技术方案,命令先进入到内存缓冲区内,由检测模块的是被命令类型,有指针模块将已经识别完毕的命令类型链接到对应任务链表的尾端。最后在轮询处理任务链表的可执行的命令;对各种类型的命令依次处理,提升了对各种命令类型的响应速度。本专利技术的第三目的在于提供一种SSD,其具有加快各种命令的响应速度优点。为实现上述目的,本专利技术提供了如下技术方案:一种SSD,包括指令,所述指令用于执行第一目的所述的方法。通过采用上述技术方案,提升了SSD对对各种命令类型的响应速度。与现有技术相比,本专利技术的有益效果是:(1)命令存储大量的数据,减少了SSD主控和RAM之间的通信次数。便于,在调试过程当中调试;(2)命令进行分类处理,并且每种类型的命令都是同优先级,加快命令的响应速度。附图说明图1为加快命令响应的方法的流程示意图;图2为加快命令响应的任务管理系统的方框示意图。附图标记:601、内存缓冲区;602、链表区;603、检测模块;604、链接模块;605、轮询模块;606、处理模块。具体实施方式下面结合附图和实施例,对本专利技术进行详细描述。实施例,一种加快命令响应的方法,如图1所示,包括:S1、建立同一优先级的并分别对应不同命令类型的若干任务链表;链表是一种物理存储单元上非连续、非顺序的存储结构。任务链表能够在任务缓冲区内建立指针,根据指针指向的顺序来排序任务链表内命令的顺序。任务链表属于同一优先级,不存在某一任务链表内的任务优先处理的情况,所有任务链表将同步处理。从而保证不同命令类型的命令实行同步处理。S2、分析存入内存缓冲区601中队列的命令类型;在内存处理命令时,外部的CPU会对任务缓冲区中是否有足够的空间进行检测,如果检测到任务缓冲区中存在空间,就会直接把命令发送到任务缓冲区中。具体的,命令包括任务类型和闪存操作命令。在本方案中任务类型包括数据型以及映射表型,可由1比特或2比特的数值表示。闪存操作命令包括读、写和擦除。也可2比特的数值表示。在任务缓冲区接收命令的过程中,通过对命令中特定位置处的参数进行分析,能够获取到命令的类型。在SSD内部,SSD主控与闪存之间是通过闪存页为基本单元访问闪存的。数据型的命令是存本文档来自技高网...

【技术保护点】
1.一种加快命令响应的方法,包括,其特征在于:建立同一优先级的并分别对应不同命令类型的若干任务链表;分析存入内存缓冲区(601)中队列的命令类型;基于命令类型,找到对应命令的任务链表,并将命令链接到对应任务链表的尾端;轮询任务链表,获取任务链表下可执行的命令;处理获取命令。

【技术特征摘要】
1.一种加快命令响应的方法,包括,其特征在于:建立同一优先级的并分别对应不同命令类型的若干任务链表;分析存入内存缓冲区(601)中队列的命令类型;基于命令类型,找到对应命令的任务链表,并将命令链接到对应任务链表的尾端;轮询任务链表,获取任务链表下可执行的命令;处理获取命令。2.根据权利要求1所述的加快命令响应的方法,其特征在于:所述任务链表的数量为两个,所述命令类型包括数据型和映射表型。3.根据权利要求1所述的加快命令响应的方法,其特征在于:所述任务链表的数量为四个,所述命令类型包括数据写入型、表格写入型、数据读取型和表格读取型。4.根据权利要求2或3所述的加快命令响应的方法,其特征在于:在轮询任务链表的过程中,若任务链表无可执行命令,则轮询至下一任务链表。5.根据权利要求4所述的加快命令响应的方法,其特征在于:所述命令包括任务类型和闪存操作命令。6.根据权...

【专利技术属性】
技术研发人员:翁敏博李晓强吴大畏
申请(专利权)人:合肥致存微电子有限责任公司
类型:发明
国别省市:安徽,34

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

1