CN108255430A - Ncq命令处理方法、存储设备及计算机可读存储介质 - Google Patents

Ncq命令处理方法、存储设备及计算机可读存储介质 Download PDF

Info

Publication number
CN108255430A
CN108255430A CN201810024619.4A CN201810024619A CN108255430A CN 108255430 A CN108255430 A CN 108255430A CN 201810024619 A CN201810024619 A CN 201810024619A CN 108255430 A CN108255430 A CN 108255430A
Authority
CN
China
Prior art keywords
ncq
orders
pending data
seizure condition
border
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810024619.4A
Other languages
English (en)
Inventor
叶伟
吴大畏
李晓强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen City A Microelectronics LLC
Original Assignee
Shenzhen City A Microelectronics LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen City A Microelectronics LLC filed Critical Shenzhen City A Microelectronics LLC
Priority to CN201810024619.4A priority Critical patent/CN108255430A/zh
Publication of CN108255430A publication Critical patent/CN108255430A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种NCQ命令处理方法、存储设备及计算机可读存储介质,本发明通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。

Description

NCQ命令处理方法、存储设备及计算机可读存储介质
技术领域
本发明涉及智能家居领域,尤其涉及一种NCQ命令处理方法、存储设备及计算机可读存储介质。
背景技术
串行高级技术附件(Serial Advanced Technology Attachment,SATA)接口的固态硬盘(Solid State Drives,SSD)主控芯片固件结构大致会包含三个部分:SATA前端、闪存转换层(Flash translation layer,FTL)和闪存驱动器(Flash Driver),SATA前端三代的读写带宽理论上能够达到600M/s,4k NCQ32(硬盘格式化过程中选择对齐方式为4096,原生命令队列(Native Command Queuing,NCQ)命令队列深度为32)的理论带宽能够达到400M/s+。而Flash后端一般会有多个通道,一个通道有200M/s带宽,很容易匹配上SATA前端的600M/s带宽,所以基本上可以说,SATA前端理论上能跑多少带宽,SSD最终的速度就有多少,因此对SATA前端提速成为了提高SATA SSD主控芯片的4K性能的方向。
现有的SATA前端的固件处理包括以下流程:硬件接收到新的命令,软件轮询到新命令或者硬件通过中断通知软件收到新命令,软件解析新命令,提取并组件关键信息给后续接口,后续接口处理;但是现有的SATA前端的固件处理存在流程的时间开销取决于微控制单元(Microcontroller Unit,MCU)的运行速度,且上述流程的执行过程中完全占用了SATA总线,开销越大,总线带宽越小,为了SATA前端能够达到更大的带宽,可能就需要更高的MCU运行时钟来减少以上流程的时间开销,而MCU运行时钟越高对硬件系统的要求就越严格,会造成相应的设计生产成本都会增加的问题。
发明内容
本发明的主要目的在于一种NCQ命令处理方法、存储设备及计算机可读存储介质,旨在解决现有技术中为了提高SATA SSD主控芯片的4K性能而提高MCU系统时钟造成设计生产成本较高的技术问题。
为实现上述目的,本发明提供一种NCQ命令处理方法,所述NCQ命令处理方法包括以下步骤:
目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令;
获取当前读写权限的占用状态;
根据所述占用状态判断是否对所述NCQ命令进行响应。
优选地,所述根据所述占用状态判断是否对所述NCQ命令进行响应,具体包括:
当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应;
当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应。
优选地,所述当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应,具体包括:
当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息;
对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理。
优选地,所述当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,具体包括:
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,所述存储容量包括所述待处理数据的逻辑区块地址容量和扇区容量。
优选地,所述对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理之前,所述NCQ命令处理方法还包括:
对所述越界信息进行分析,当所述分析结果显示所述待处理数据已越界时,反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令。
优选地,所述当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应之后,所述NCQ命令处理方法还包括:
实时监测所述占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应。
优选地,所述获取当前读写权限的占用状态,具体包括:
获取当前标识位的标识号,根据当前标识位的标识号确定所述当前读写权限的占用状态,所述当前标识位用于标识所述目标从设备的当前读写状态。
优选地,所述目标从设备接收目标主设备发送的NCQ命令,具体包括:
接收目标主设备通过当前NCQ队列发送的所述NCQ命令。
此外,为实现上述目的,本发明还提出一种存储设备,所述存储设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的NCQ命令处理程序,所述NCQ命令处理程序配置为实现如上文所述的NCQ命令处理方法的步骤。
此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有NCQ命令处理程序,所述NCQ命令处理程序被处理器执行时实现如上文所述的NCQ命令处理方法的步骤。
本发明提出的NCQ命令处理方法,本发明通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。
附图说明
图1为本发明实施例方案涉及的硬件运行环境的存储设备结构示意图;
图2为本发明NCQ命令处理方法第一实施例的流程示意图;
图3为本发明NCQ命令处理方法第二实施例的流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例的解决方案主要是:本发明通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本,解决了现有技术中为了提高SATA SSD主控芯片的4K性能而提高MCU系统时钟造成设计生产成本较高的技术问题。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的存储设备结构示意图。
如图1所示,该存储设备可以包括:处理器1001,例如CPU,通信总线1002、用户端接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户端接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard),可选用户端接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的存储设备结构并不构成对该存储设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户端接口模块以及NCQ命令处理程序。
本发明存储设备通过处理器1001调用存储器1005中存储的NCQ命令处理程序,并执行以下操作:
目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令;
获取当前读写权限的占用状态;
根据所述占用状态判断是否对所述NCQ命令进行响应。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应;
当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息;
对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,所述存储容量包括所述待处理数据的逻辑区块地址容量和扇区容量。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
对所述越界信息进行分析,当所述分析结果显示所述待处理数据已越界时,反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
实时监测所述占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
获取当前标识位的标识号,根据当前标识位的标识号确定所述当前读写权限的占用状态,所述当前标识位用于标识所述目标从设备的当前读写状态。
进一步地,处理器1001可以调用存储器1005中存储的NCQ命令处理程序,还执行以下操作:
接收目标主设备通过当前NCQ队列发送的所述NCQ命令。
本实施例通过上述方案,通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。
基于上述硬件结构,提出本发明NCQ命令处理方法实施例。
参照图2,图2为本发明NCQ命令处理方法第一实施例的流程示意图。
在第一实施例中,所述NCQ命令处理方法包括以下步骤:
步骤S10、目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令;
需要说明的是,所述目标主设备一般可以为主机HOST,所述目标从设备一般可以为设备DEVICE,所述目标从设备接收所述目标主设备发送的原生命令队列(NativeCommand Queuing,NCQ)命令,所述NCQ命令为用于对待处理数据进行处理的命令,所述NCQ命令对应的待处理数据为执行所述NCQ命令需要调用的数据,所述主设备一般通过主机到设备帧信息结构(HOST to DEVICE Frame Information Structure,H2D FIS)发送所述NCQ命令至所述目标从设备。
进一步地,所述步骤S10具体包括以下步骤:
接收目标主设备通过当前NCQ队列发送的所述NCQ命令。
可以理解的是,所述当前NCQ队列为所述目标主设备中用于承载发送所述NCQ命令的队列,所述当前NCQ队列的最大队列深度可以为32,即可以预先发送最多32个NCQ命令至所述目标从设备,通过一次性下发多个NCQ命令至所述目标从设备,所述目标从设备能够快速找到所述NCQ命令对应的需要处理的待处理数据,进而缩短处理所述待处理数据的时间,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽。
步骤S20、获取当前读写权限的占用状态;
需要说明的是,所述当前读写权限的占用状态为所述从设备的当前读写权限是否被占用的状态。
进一步地,所述步骤S20具体包括以下步骤:
检测当前标识位的标识号,根据当前标识位的标识号确定所述当前读写权限的占用状态,所述当前标识位用于标识所述目标从设备的当前读写状态。
可以理解的是,所述当前标识位为用于标识所述目标从设备的当前读写权限的当前读写状态的标识位,一般可以用于标识所述目标从设备的当前读写权限是否被占用,即当前是否有任务正在使用当前读写权限,通过检测所述当前标识位的标识号,能够根据所述当前标识位的标识号确定所述当前读写权限的占用状态,当然还可以是通过其他方式确定所述当前读写权限的占用状态,本实施例对此不加以限制。
在具体实现中,一般可以通过寄存器检查当前标识位的占用状态来判断所述当前读写权限的占用状态,所述当前标识位一般默认为0,1两种状态,0表示当前标识位处于空闲状态,1表示当前标识位处于忙碌状态,当所述NCQ被允许执行时所述寄存器中对应当前标识位需要被置位。
步骤S30、根据所述占用状态判断是否对所述NCQ命令进行响应。
需要说明的是,根据所述占用状态判断是否对所述NCQ命令进行响应进而根据所述NCQ命令对所述待处理数据进行处理,即根据所述占用状态的情况对应的对所述待处理数据进行相应处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽。
在具体实现中,可以在相同的运行环境(使用一个MCU通道速度为200M/s带宽,硬盘格式化过程中选择对齐方式为4096,NCQ命令队列深度为32,即SATA 4K NCQ32)中将现有的处理单个NCQ命令的理论速度与本实施例中相同的单个NCQ命令的理论速度为例,按照本实施例中当前NCQ队列中的单个命令的时间延迟T1=0.666us,4K数据的传输时间T2=7.480us,设置设备的位(Set Device Bit,SDB)到设置直接存储器访问(Direct MemoryAccess,DMA SETUP)的时间延迟T3=0.606us,DMA SETUP到数据DATA的延迟T4=0.613us,其他开销T5=闪存转换层(Flash translation layer,FTL)开销+闪存驱动器(FlashDriver)开销=2us,一般通过个人计算机(personal computer,PC)测试软件是根据传输的有效数据量来计算处理单个NCQ命令的理论速度,处理单个NCQ命令的数据传输效率为P1=T2/(T1+T2+T3+T4+T5)=7.480/(0.666+7.480+0.606+0.613+2)=7.480/11.365=65.87%,即按照本实施例提供的方案计算出的单个NCQ命令的理论速度为600M/s*65.87%=394.89M/s而按照现有技术的方式计算出的相同单个NCQ命令的T1时间开销大概在5us(使用一个MCU通道的速度为200M)左右,此时计算出的相同当个NCQ命令的理论效率为P2=(7.480/15.699)=47.65%,即按照现有技术的方式计算出的单个NCQ命令的理论速度为47.65%*600M/s=285.87M/s,由上述实验数据可知,使用本实施例能够将处理单个NCQ命令的处理延迟减小到1us以内,能够极大提升SATA前端的理论带宽。
本实施例通过上述方案,通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。
进一步地,图3为本发明NCQ命令处理方法第二实施例的流程示意图,如图3所示,基于第一实施例提出本发明NCQ命令处理方法第二实施例,在本实施例中,所述步骤S30,具体包括以下步骤:
步骤S31、当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应;
需要说明的是,当所述当前读写权限的占用状态为忙碌状态时,即表明所述目标从设备的当前读写权限正在被使用,此时禁止对所述NCQ命令进行响应,即禁止根据所述NCQ命令对所述待处理数据进行处理,在实际操作中,一般可以将所述NCQ命令进行中止,直到所述占用状态为空闲状态时进行后续处理。
可以理解的是,当所述占用状态为所述忙碌状态时,可以对所述NCQ忙碌进行中止,并禁止根据所述NCQ命令对所述待处理数据进行处理,一般可以通过软件直接发送中止状态的设备到主机的帧信息结构(DEVICE to HOST Frame Information Structure,D2HFIS)回复所述目标主设备,当然还可以通其他方式对所述NCQ命令进行类似于中止的处理,本实施例对此不加以限制。
相应地,所述步骤S31之后,所述NCQ命令处理方法还包括:
实时监测所述占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应。
应当理解的是,当所述占用状态为所述忙碌状态时,可以禁止对所述NCQ命令进行响应,即禁止根据所述NCQ命令对所述待处理数据进行处理之后,可以实时监测所述目标从设备的当前读写权限的占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应,并且对所述NCQ命令进行后续处理,能够极大缩短被动等待其他命令处理的时间,在所述占用状态空闲时,立即对所述NCQ命令进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽。
步骤S32、当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应。
需要说明的是,当所述当前读写权限的占用状态为空闲状态时,即表明所述目标从设备的当前读写权限没有被使用,此时允许对所述NCQ命令进行响应即允许根据所述NCQ命令对所述待处理数据进行处理,在实际操作中,一般可以是在所述NCQ命令被接收后寄存器中对应的当前读写权限对应的当前标识位进行置位,以使更加方便根据所述NCQ命令对所述待处理数据进行处理。
进一步地,所述步骤S32具体包括以下步骤:
当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息;
对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理。
可以理解的是,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息,即判断所述待处理数据是否超过所述目标从设备的当前还剩下多少运行存储内存的空闲容量的信息,对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ忙碌对所述待处理数据进行处理,通过对所述待处理数据的所对应的存储容量是否超出所述目标从设备当前空闲的容量进行判断,能够避免不合适的NCQ命令的执行,减少运行错误,并节省了待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽。
进一步地,所述步骤当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,具体包括以下步骤:
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,所述存储容量包括所述待处理数据的逻辑区块地址容量和扇区容量。
应当理解的是,当所述占用状态为所述空闲状态时,能够通过获取当前空闲容量和所述待处理数据的存储容量,根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,即当所述存储容量小于所述当前空闲容量时生成所述越界信息为所述待处理数据没有越界,当所述存储容量大于或等于所述当前空闲容量时,生成所述越界信息为所述待处理数据已越界。
应当理解的是,所述存储容量包括所述待处理数据的逻辑区域块地址(LogicalBlock Address,LBA)容量和扇区(sector size)容量,一般将所述待处理数据的所述逻辑区域块地址容量与所述扇区容量的和值与所述当前空闲容量Capcity进行比较,进而判断所述存储容量与所述当前空闲容量的大小比对关系进而生成所述越界信息,当然还可以是通过其他方式确定所述待处理数据的存储容量,本实施例对此不加以限制。
进一步地,所述对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理之前,所述NCQ命令处理方法还包括:
对所述越界信息进行分析,当所述分析结果显示所述待处理数据已越界时,反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令。
可以理解的是,当所述存储容量小于所述当前空闲容量时生成所述越界信息为所述待处理数据没有越界,可以生成没有越界的正常信息反馈至所述目标主设备,允许根据所述NCQ命令对所述待处理数据进行处理,当所述存储容量大于或等于所述当前开共享容量时生成所述越界信息为所述待处理数据已越界,此时可以反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令,禁止根据所述NCQ命令对所述待处理数据进行处理,并且可以回复错误告警信息至所述目标主设备,以使所述目标主设备将当前的NCQ命令进行丢弃,也可以是对当前的NCQ命令进行记录并做下一次处理,还可以对当前的NCQ命令丢弃后直接响应于所述当前NCQ队列中的其他NCQ命令,当然还可以通过其他方式处理所述NCQ命令,本实施例对此不加以限制。
在具体实现中,当所述目标从设备的当前读写权限的占用状态为所述空闲状态时,寄存器给固件写入设备的总容量信息默认值2G=0x40000扇区,硬件需要先计算收到的NCQ命令的所述逻辑区域块地址容量与所述扇区容量的和值与所述当前空闲容量进行比较,判断是否开启该功能的使能开关,指示当前是不是NCQ命令的标记,以及该NCQ命令被硬件处理的结果。
本实施例通过上述方案,通过当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量,根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,获取所述待处理数据的越界信息,对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理,当所述占用状态为所述忙碌状态时,中止所述NCQ命令,并禁止根据所述NCQ命令对所述待处理数据进行处理,通过对所述待处理数据的所对应的存储容量是否超出所述目标从设备当前空闲的容量进行判断,能够避免不合适的NCQ命令的执行,减少运行错误,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有NCQ命令处理程序,所述NCQ命令处理程序被处理器执行时实现如下操作:
接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令;
获取当前读写权限的占用状态;
根据所述占用状态判断是否对所述NCQ命令进行响应。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应;
当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息;
对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,所述存储容量包括所述待处理数据的逻辑区块地址容量和扇区容量。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
对所述越界信息进行分析,当所述分析结果显示所述待处理数据已越界时,反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
实时监测所述占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
获取当前标识位的标识号,根据当前标识位的标识号确定所述当前读写权限的占用状态,所述当前标识位用于标识所述目标从设备的当前读写状态。
进一步地,所述NCQ命令处理程序被处理器执行时还实现如下操作:
接收目标主设备通过当前NCQ队列发送的所述NCQ命令。
本实施例通过上述方案,通过目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令,获取当前读写权限的占用状态,根据所述占用状态判断是否对所述NCQ命令进行响应,通过当前读写权限的占用状态能够及时对所述NCQ命令进行响应进而对待处理数据进行处理,能够极大缩短待处理数据的传输响应时间,进而减小时间开销,有效提高了数据传输速度和效率,极大提升SATA前端理论带宽,且不用提高MCU系统时钟,极大节省了设计和生产成本。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (10)

1.一种NCQ命令处理方法,其特征在于,所述NCQ命令处理方法包括:
目标从设备接收目标主设备发送的NCQ命令,所述NCQ命令为用于对待处理数据进行处理的命令;
获取当前读写权限的占用状态;
根据所述占用状态判断是否对所述NCQ命令进行响应。
2.如权利要求1所述的NCQ命令处理方法,其特征在于,所述根据所述占用状态判断是否对所述NCQ命令进行响应,具体包括:
当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应;
当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应。
3.如权利要求2所述的NCQ命令处理方法,其特征在于,所述当所述占用状态为空闲状态时,允许对所述NCQ命令进行响应,具体包括:
当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,所述越界信息为判断所述待处理数据是否超过所述目标从设备的空闲容量的信息;
对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理。
4.如权利要求3所述的NCQ命令处理方法,其特征在于,所述当所述占用状态为所述空闲状态时,获取所述待处理数据的越界信息,具体包括:
当所述占用状态为所述空闲状态时,获取当前空闲容量和所述待处理数据的存储容量;
根据所述当前空闲容量和所述存储容量的大小比对关系生成所述越界信息,所述存储容量包括所述待处理数据的逻辑区块地址容量和扇区容量。
5.如权利要求4所述的NCQ命令处理方法,其特征在于,所述对所述越界信息进行分析,当分析结果显示所述待处理数据没有越界时,允许根据所述NCQ命令对所述待处理数据进行处理之前,所述NCQ命令处理方法还包括:
对所述越界信息进行分析,当所述分析结果显示所述待处理数据已越界时,反馈错误告警信息至所述目标主设备,并接收所述目标主设备发送的新的NCQ命令。
6.如权利要求5所述的NCQ命令处理方法,其特征在于,所述当所述占用状态为忙碌状态时,禁止对所述NCQ命令进行响应之后,所述NCQ命令处理方法还包括:
实时监测所述占用状态,当所述占用状态从所述忙碌状态变为所述空闲状态时,允许对所述NCQ命令进行响应。
7.如权利要求1-6中任一项所述的NCQ命令处理方法,其特征在于,所述获取当前读写权限的占用状态,具体包括:
获取当前标识位的标识号,根据当前标识位的标识号确定所述当前读写权限的占用状态,所述当前标识位用于标识所述目标从设备的当前读写状态。
8.如权利要求1-6中任一项所述的NCQ命令处理方法,其特征在于,所述目标从设备接收目标主设备发送的NCQ命令,具体包括:
接收目标主设备通过当前NCQ队列发送的所述NCQ命令。
9.一种存储设备,其特征在于,所述存储设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的NCQ命令处理程序,所述NCQ命令处理程序配置为实现如权利要求1至8中任一项所述的NCQ命令处理方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有NCQ命令处理程序,所述NCQ命令处理程序被处理器执行时实现如权利要求1至8中任一项所述的NCQ命令处理方法的步骤。
CN201810024619.4A 2018-01-10 2018-01-10 Ncq命令处理方法、存储设备及计算机可读存储介质 Pending CN108255430A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810024619.4A CN108255430A (zh) 2018-01-10 2018-01-10 Ncq命令处理方法、存储设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810024619.4A CN108255430A (zh) 2018-01-10 2018-01-10 Ncq命令处理方法、存储设备及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN108255430A true CN108255430A (zh) 2018-07-06

Family

ID=62726067

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810024619.4A Pending CN108255430A (zh) 2018-01-10 2018-01-10 Ncq命令处理方法、存储设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN108255430A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597576A (zh) * 2018-11-30 2019-04-09 深圳市得微电子有限责任公司 提高ncq命令响应速度的方法、装置、可读存储介质及系统
CN110474956A (zh) * 2019-07-10 2019-11-19 视联动力信息技术股份有限公司 视联网设备封号方法、装置、电子设备及可读存储介质
CN111857599A (zh) * 2020-07-29 2020-10-30 浪潮(北京)电子信息产业有限公司 一种数据读写方法、装置、设备及可读存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101398746A (zh) * 2007-09-25 2009-04-01 广达电脑股份有限公司 检测并修复失败指令的方法及系统
CN101504594A (zh) * 2009-03-13 2009-08-12 杭州华三通信技术有限公司 一种数据存储方法和装置
CN102053913A (zh) * 2009-10-30 2011-05-11 慧荣科技股份有限公司 记忆装置以及记忆装置的数据存取方法
WO2012140670A3 (en) * 2011-04-11 2013-01-10 Ineda Systems Pvt. Ltd Multi-host sata controller
US20140059295A1 (en) * 2005-08-25 2014-02-27 Silicon Image, Inc. Smart scalable storage switch architecture
CN106648452A (zh) * 2015-11-02 2017-05-10 爱思开海力士有限公司 存储器系统及其操作方法

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059295A1 (en) * 2005-08-25 2014-02-27 Silicon Image, Inc. Smart scalable storage switch architecture
CN101398746A (zh) * 2007-09-25 2009-04-01 广达电脑股份有限公司 检测并修复失败指令的方法及系统
CN101504594A (zh) * 2009-03-13 2009-08-12 杭州华三通信技术有限公司 一种数据存储方法和装置
CN102053913A (zh) * 2009-10-30 2011-05-11 慧荣科技股份有限公司 记忆装置以及记忆装置的数据存取方法
WO2012140670A3 (en) * 2011-04-11 2013-01-10 Ineda Systems Pvt. Ltd Multi-host sata controller
CN106648452A (zh) * 2015-11-02 2017-05-10 爱思开海力士有限公司 存储器系统及其操作方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597576A (zh) * 2018-11-30 2019-04-09 深圳市得微电子有限责任公司 提高ncq命令响应速度的方法、装置、可读存储介质及系统
CN110474956A (zh) * 2019-07-10 2019-11-19 视联动力信息技术股份有限公司 视联网设备封号方法、装置、电子设备及可读存储介质
CN110474956B (zh) * 2019-07-10 2023-06-09 视联动力信息技术股份有限公司 视联网设备封号方法、装置、电子设备及可读存储介质
CN111857599A (zh) * 2020-07-29 2020-10-30 浪潮(北京)电子信息产业有限公司 一种数据读写方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN107977268B (zh) 人工智能的异构硬件的任务调度方法、装置及可读介质
EP3830715B1 (en) Storage aggregator controller with metadata computation control
CN108255430A (zh) Ncq命令处理方法、存储设备及计算机可读存储介质
CN105487987B (zh) 一种处理并发顺序读io的方法及装置
CN110109626B (zh) 一种基于FPGA的NVMe SSD命令处理方法
US10437519B2 (en) Method and mobile terminal for processing write request
CN108932108B (zh) 快闪存储器的命令排程及执行方法以及使用该方法的装置
CN105867844A (zh) 一种命令控制方法及存储设备
CN107092570A (zh) 一种服务器板载m.2硬盘的自适应配置方法及系统
CN104965798B (zh) 一种数据处理方法、相关设备以及系统
US10657022B2 (en) Input and output recording device and method, CPU and data read and write operation method thereof
CN108205474A (zh) 内存管理方法、终端设备、计算机装置以及可读存储介质
CN116149559A (zh) 队列处理方法、装置、服务器、电子设备和存储介质
CN108628759B (zh) 乱序执行nvm命令的方法与装置
CN108572932B (zh) 多平面nvm命令融合方法与装置
CN105739771A (zh) 一种显示界面管理方法、装置及终端
CN107463829B (zh) 一种密码卡中dma请求的处理方法、系统及相关装置
CN105892945A (zh) 一种信息更新方法及电子设备
CN106909523B (zh) 大规模数据传输方法及系统
CN109710187A (zh) NVMe SSD主控芯片的读命令加速方法、装置、计算机设备及存储介质
CN102638403B (zh) 用于处理报文的方法及装置
CN112732176A (zh) 基于fpga的ssd访问方法及装置、存储系统及存储介质
CN105117358A (zh) 一种dma数据传输方法及装置
CN108733583A (zh) 提高NVMe SSD顺序数据读取性能的预读方法及系统
CN116343849B (zh) 提升ssd混合读写性能的方法、装置、存储介质及设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180706

RJ01 Rejection of invention patent application after publication