CN114003182B - 指令交互方法、装置、存储设备以及介质 - Google Patents
指令交互方法、装置、存储设备以及介质 Download PDFInfo
- Publication number
- CN114003182B CN114003182B CN202210000457.7A CN202210000457A CN114003182B CN 114003182 B CN114003182 B CN 114003182B CN 202210000457 A CN202210000457 A CN 202210000457A CN 114003182 B CN114003182 B CN 114003182B
- Authority
- CN
- China
- Prior art keywords
- instruction
- comparison
- write
- comparison instruction
- list
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000003993 interaction Effects 0.000 title claims abstract description 46
- 230000015654 memory Effects 0.000 claims description 35
- 230000002159 abnormal effect Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明揭示了一种指令交互方法、装置、存储设备以及介质,适用于存储技术领域,应用于存储设备,该方法包括:接收主机发送的对比指令;将对比指令放入对应的对比指令列表中;接收主机发送的写指令;将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。采用该方法,不会造成主机重复发送对比指令和写指令的混合指令,从而造成IO接近于0的情况发生。此外,采用该方法也不会造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性的情况发生。综上,上述方法可以更好地利用虚拟磁盘的共享性。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种指令交互方法、装置、存储设备以及介质。
背景技术
服务器虚拟化已经成为数据中心的主流技术,大量运行的虚拟机大大提高了服务器的利用率,对虚拟机进行批量的创建、复制、迁移极大的简化了IT运维的同时,也带来了大量的数据拷贝操作和存储快照操作,进而消耗了服务器的大量CPU、内存和网络带宽资源。
针对于这些问题,VMware提出了VAAI(vStorage API for Array Integration)接口,希望将VMware基础架构的某些功能委托给存储阵列去实现,通过减少数据对于虚拟机和物理服务器的资源消耗,从而提升VMware基础架构的性能。
为了保证虚拟机向存储映射的虚拟磁盘写入数据的稳定性,nvme1.4协议提出通过原子性地执行对比指令和写指令,向虚拟磁盘写入数据,保证数据的安全性。
但是,现有的管理控制系统在支持对比指令和写指令原子性方面,一个io queue只能处理一个对比和写的混合指令,当对比指令等到写指令,又接收到了一个对比指令,就需要把当前接收到的对比指令中止掉,来存储对比指令。
从而,导致在多主机多虚拟机情况下,会导致非常多的对比指令被中止掉,造成主机重复发送对比指令和写指令的混合指令,造成IO接近于0,甚至有可能造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性。
发明内容
有鉴于此,本发明实施例提供了一种指令交互方法、装置、存储设备以及介质,旨在解决主机重复发送对比指令和写指令的混合指令,造成IO接近于0,甚至有可能造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性的问题。
根据第一方面,本发明实施例提供了一种指令交互方法,应用于存储设备,该方法包括:
接收主机发送的对比指令;
将对比指令放入对应的对比指令列表中;
接收主机发送的写指令;
将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互方法,存储设备接收主机发送的对比指令,然后将接收到的对比指令放入对应的对比指令列表中,从而使得接收到的对比指令不影响当前正在执行的对比指令,从而保证了存储设备可以接收多个对比指令依次进行处理,而不是需要将接收到的对比指令中止掉。因此,不需要主机重复发送对比指令。此外,存储设备接收主机发送的写指令,并将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作,从而可以保证存储设备正常操作对比指令和写指令。因此,上述方法,不会造成主机重复发送对比指令和写指令的混合指令,从而造成IO接近于0的情况发生。此外,上述方法也不会造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性的情况发生。综上,上述方法可以更好地利用虚拟磁盘的共享性。
结合第一方面,在第一方面第一实施方式中,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作,包括:
根据写指令查找对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作;
或者,
根据对比指令查找写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互方法,通过根据写指令查找对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作;或者,根据对比指令查找写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。从而可以保证对比指令和写指令匹配,保证存储设备可以正常执行对比指令和写指令操作。
结合第一方面第一实施方式,在第一方面第二实施方式中,根据写指令查找对比指令,包括:
对对比指令的内容进行分析,为对比指令分配存储空间;
根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令。
本发明实施例提供的指令交互方法,对对比指令的内容进行分析,为对比指令分配存储空间,从而可以保证准确获取对比指令的需求,保证了为对比指令分配的存储空间的准确性。此外,根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令。从而可以保证在对比指令没有出现异常的情况下,能够查找到对比指令,不会漏查找对比指令。
结合第一方面第二实施方式,在第一方面第三实施方式中,根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令,包括:
根据写指令,在存储空间中查找与写指令对应的对比指令;
若在存储空间中未查找到与写指令对应的对比指令,则在对比指令列表中查找对比指令;
若在对比指令列表中未查找到与写指令对应的对比指令;则再次在存储空间中查找与写指令对应的对比指令;
循环预设次数为止。
本发明实施例提供的指令交互方法,依次在存储空间和对比指令列表中查找对比指令,并循环预设次数,从而可以保证在对比指令没有出现异常的情况下,能够查找到对比指令,不会漏查找对比指令。
结合第一方面第二实施方式,在第一方面第四实施方式中,方法还包括:
若循环预设次数之后,在对比指令列表以及存储空间中,均未查找到与写指令对应的对比指令,则中止写指令。
本发明实施例提供的指令交互方法,若循环预设次数之后,在对比指令列表以及存储空间中,均未查找到与写指令对应的对比指令,说明写指令异常,因此存储设备可以中止写指令,从而可以提高存储设备处理对比指令和写指令的效率。
结合第一方面第一实施方式,在第一方面第五实施方式中,根据对比指令查找写指令,包括:
接收到写指令之后,将写指令放入写指令列表中;
在前一个对比指令完成之后,对当前对比指令的内容进行分析,为当前对比指令分配存储空间;
根据当前对比指令,在写指令列表中查找与当前对比指令对应的写指令。
本发明实施例提供的指令交互方法,将接收到的写指令放入写指令列表,从而可以对写指令依次指令。当在前一个对比指令完成之后,对当前对比指令的内容进行分析,为当前对比指令分配存储空间,从而使得存储设备可以在存储空间中完成对比指令。此外,根据当前对比指令,在写指令列表中查找与当前对比指令对应的写指令,从而可以保证写指令和对比指令的匹配,使得存储设备可以在存储空间中完成对比指令和写指令的操作。
结合第一方面第五实施方式,在第一方面第六实施方式中,方法还包括:
若在为当前对比指令分配存储空间之后的预设时间内,未查找到写指令,则中止当前对比指令,并释放当前对比指令对应的存储空间。
本发明实施例提供的指令交互方法,在为当前对比指令分配存储空间之后的预设时间内,未查找到写指令,则存储设备确定写指令可能出现异常情况,存储设备中止当前对比指令,并释放当前对比指令对应的存储空间。从而可以提高存储空间的利用率,避免异常的对比指令占据存储空间。
根据第二方面,本发明实施例还提供了一种指令交互装置,应用于存储设备,装置包括:
第一接收模块,用于接收主机发送的对比指令;
放入模块,用于将对比指令放入对应的对比指令列表中;
第二接收模块,用于接收主机发送的写指令;
匹配模块,用于将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互装置,存储设备接收主机发送的对比指令,然后将接收到的对比指令放入对应的对比指令列表中,从而使得接收到的对比指令不影响当前正在执行的对比指令,从而保证了存储设备可以接收多个对比指令依次进行处理,而不是需要将接收到的对比指令中止掉。因此,不需要主机重复发送对比指令。此外,存储设备接收主机发送的写指令,并将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作,从而可以保证存储设备正常操作对比指令和写指令。因此,上述方法,不会造成主机重复发送对比指令和写指令的混合指令,从而造成IO接近于0的情况发生。此外,上述方法也不会造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性的情况发生。综上,上述方法可以更好地利用虚拟磁盘的共享性。
根据第三方面,本发明实施例提供了一种存储设备,包括存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行第一方面或者第一方面的任意一种实施方式中的指令交互方法。
根据第四方面,本发明实施例提供了一种计算机可读存储介质,计算机可读存储介质存储计算机指令,计算机指令用于使计算机执行第一方面或者第一方面的任意一种实施方式中的指令交互方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1 是应用本发明实施例提供的指令交互方法的流程图;
图2 是应用本发明另一实施例提供的指令交互方法的流程图;
图3 是应用本发明另一实施例提供的指令交互方法的流程图;
图4 是应用本发明另一实施例提供的指令交互方法的流程图;
图5 是应用本发明实施例提供的指令交互装置的功能模块图;
图6 是应用本发明实施例提供的存储设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请实施例提供的指令交互的方法,其执行主体可以是指令交互的装置,该指令交互的装置可以通过软件、硬件或者软硬件结合的方式实现成为电子设备的部分或者全部,其中,该电子设备可以是服务器或者终端,其中,本申请实施例中的服务器可以为一台服务器,也可以为由多台服务器组成的服务器集群,本申请实施例中的终端可以是智能手机、个人电脑、平板电脑、可穿戴设备以及智能机器人等其他智能硬件设备。下述方法实施例中,均以执行主体是存储设备为例来进行说明。
在本申请一个实施例中,如图1所示,提供了一种指令交互方法,以该方法应用与存储设备为例进行说明,包括以下步骤:
S11、接收主机发送的对比指令。
其中,主机的数量为至少一个,每个主机都可以向存储设备发送对比指令。
具体地,存储设备基于与各主机之间的连接接收各主机发送的对比指令。其中,对比指令中可以包含对比指令需要操作的数据的标识信息等信息。
S12、将对比指令放入对应的对比指令列表中。
具体地,存储设备在接收到对比指令之后,可以根据对比指令中包括的对比指令需要操作的数据的标识信息等,将对比指令放入到对应的对比指令列表中。其中,对比指令列表可以有多个,每个对比指令列表中可以包括多个对比指令。存储设备可以对对比指令列表中的对比指令依次进行操作。通过对个指令列表实现对对比指令的多线程操作。
S13、接收主机发送的写指令。
具体地,存储设备可以基于与主机之间的连接,接收主机发送的写指令。
需要说明的是,每个主机都可以向存储设备发送对比指令和写指令,其中,对比指令和写指令是成对发送的。主机先向存储设备发送对比指令,然后再向存储设备发送写指令。
示例性的,根据NVMe1.4协议和NVMeoF 1.1协议,对比指令/写指令应该在同一提交进程的相邻位置(如果对比指令在提交进程的最后位置,则写指令应该在提交进程的第一个位置),即compare_sqid=write_sqid>0, (compare_cid+1)%sq_size = write_cid(主机可以保证对比指令/写指令在同一提交队列的相邻位置)。
S14、将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
在一种可选的实施方式中,存储设备在接收到写指令之后,可以查找与写指令对应的对比指令,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
在一种可选的实施方式中,存储设备在处理对比指令之前,可以根据对比指令查找是否已经接收到对比指令对应的写指令,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互方法,存储设备接收主机发送的对比指令,然后将接收到的对比指令放入对应的对比指令列表中,从而使得接收到的对比指令不影响当前正在执行的对比指令,从而保证了存储设备可以接收多个对比指令依次进行处理,而不是需要将接收到的对比指令中止掉。因此,不需要主机重复发送对比指令。此外,存储设备接收主机发送的写指令,并将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作,从而可以保证存储设备正常操作对比指令和写指令。因此,上述方法,不会造成主机重复发送对比指令和写指令的混合指令,从而造成IO接近于0的情况发生。此外,上述方法也不会造成存储设备崩溃,IO跌零,无法利用虚拟磁盘的共享性的情况发生。综上,上述方法可以更好地利用虚拟磁盘的共享性。
在本申请一个可选的实施例中,上述S14中的“将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作”,可以包括以下情况:
其中一种情况:根据写指令查找对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
可选的,存储设备在接收到写指令之后,可以根据写指令的标识信息查找与写指令对应的对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。其中,标识信息中可以包括写指令对应的待处理的数据的标识,还可以包括写指令对应的对比指令的标识,还可以包括写指令本身的一些标识。
可选的,存储设备在接收到写指令之后,可以对写指令进行识别和分析,根据识别和分析的结果查找与写指令对应的对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
其中另一种情况:根据对比指令查找写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
可选的,存储设备在对对比指令处理之前,可以根据对比指令的标识信息查找与对比指令对应的写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。其中,标识信息中可以包括对比指令对应的待处理的数据的标识,还可以包括对比指令对应的写指令的标识,还可以包括对比指令本身的一些标识。
可选的,存储设备在对对比指令处理之前,可以对对比指令进行识别和分析,根据识别和分析的结果查找与对比指令对应的写指令,在查找到与对比指令对应的写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互方法,通过根据写指令查找对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作;或者,根据对比指令查找写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。从而可以保证对比指令和写指令匹配,保证存储设备可以正常执行对比指令和写指令操作。
在本申请一个可选的实施例中,如图2所示,上述“根据写指令查找对比指令”,可以包括如下步骤:
S21、对对比指令的内容进行分析,为对比指令分配存储空间。
具体地,存储设备可以对对比指令的内容进行分析,获取对比指令中包括的数据。然后,存储设备将对比指令中包括的数据与存储设备中的数据进行对比,若对比指令中的数据与存储设备中的数据一致,则存储设备确定当前没有主机对对比指令中的数据进行处理,则为对比指令分配存储空间,并将对比指令从对比指令列表中移除,且对比指令列表对应的等待计数-1。
示例性的,存储设备将start lba,num lbas及sqid、cid等值赋值到对比指令和写指令的混合指令结构体,使得对比指令在存储空间等待与对比指令对应的写指令。
在本申请一种可选的实施方式中,存储设备在为对比指令分配存储空间之前,需要对当前存储空间进行查询,若当前存储空间不足,则存储设备不能为对比指令分配存储空间,那么存储设备需要将对比指令继续留在对比指令列表等待。
S22、根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令。
具体地,在为对比指令分配存储空间之后,对比指令可以在存储空间中等待对比指令对应的写指令。在接收到写指令之后,存储设备根据写指令,分别在对比指令列表和存储空间中,查找与写指令对应的对比指令。
示例性的,存储设备可以根据sqid、cid查找到与写指令对应的对比指令。
本发明实施例提供的指令交互方法,对对比指令的内容进行分析,为对比指令分配存储空间,从而可以保证准确获取对比指令的需求,保证了为对比指令分配的存储空间的准确性。此外,根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令。从而可以保证在对比指令没有出现异常的情况下,能够查找到对比指令,不会漏查找对比指令。
在本申请一个可选的实施例中,如图3所示,上述步骤S22“根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令”还可以包括如下步骤:
S221、根据写指令,在存储空间中查找与写指令对应的对比指令。
可选的,存储设备在接收到写指令之后,可以根据写指令的标识信息在存储空间中查找与写指令对应的对比指令。其中,标识信息中可以包括写指令对应的待处理的数据的标识,还可以包括写指令对应的对比指令的标识,还可以包括写指令本身的一些标识。
可选的,存储设备在接收到写指令之后,可以对写指令进行识别和分析,根据识别和分析的结果在存储空间中查找与写指令对应的对比指令。
S222、若在存储空间中未查找到与写指令对应的对比指令,则在对比指令列表中查找对比指令。
具体地,若在存储空间中查找到与写指令对应的对比指,则将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
若存储设备在存储空间中未查找到与写指令对应的对比指令。
可选的,存储设备还可以根据写指令的标识信息在对比指令列表中查找与写指令对应的对比指令。其中,标识信息中可以包括写指令对应的待处理的数据的标识,还可以包括写指令对应的对比指令的标识,还可以包括写指令本身的一些标识。
可选的,存储设备还可以对写指令进行识别和分析,根据识别和分析的结果在对比指令列表中查找与写指令对应的对比指令。
S223、若在对比指令列表中未查找到与写指令对应的对比指令;则再次在存储空间中查找与写指令对应的对比指令。
具体地,若存储设备在对比指令列表中查找到与写指令对应的对比指令,则将写指令保留在写指令列表中,等待为对比指令分配存储空间后,根据对比指令查找写指令。
若存储设备在对比指令列表中仍未查找到与写指令对应的对比指令。为了避免存储设备在对比指令列表中查找对比指令时,对比指令被分配到存储空间中。
可选的,存储设备可以再次根据写指令的标识信息在存储空间中查找与写指令对应的对比指令。其中,标识信息中可以包括写指令对应的待处理的数据的标识,还可以包括写指令对应的对比指令的标识,还可以包括写指令本身的一些标识。
可选的,存储设备可以再次对写指令进行识别和分析,根据识别和分析的结果在存储空间中查找与写指令对应的对比指令。
S224、循环预设次数为止。
具体地,存储设备在对比指令列表和存储空间查找与写指令对应的对比指令,循环执行预设次数之后停止。
本发明实施例提供的指令交互方法,依次在存储空间和对比指令列表中查找对比指令,并循环预设次数,从而可以保证在对比指令没有出现异常的情况下,能够查找到对比指令,不会漏查找对比指令。
在本申请一个可选的实施例中,上述步骤S224之后,还可以包括以下内容:
若循环预设次数之后,在对比指令列表以及存储空间中,均未查找到与写指令对应的对比指令,则中止写指令。
具体地,若存储设备在对比指令列表和存储空间查找与写指令对应的对比指令,循环执行预设次数,仍未查找到与写指令对应的对比指令,则存储设备确定与写指令对应的对比指令出现异常,中止写指令。
本发明实施例提供的指令交互方法,若循环预设次数之后,在对比指令列表以及存储空间中,均未查找到与写指令对应的对比指令,说明写指令异常,因此存储设备可以中止写指令,从而可以提高存储设备处理对比指令和写指令的效率。
在本申请一个可选的实施例中,如图4所示,上述“根据对比指令查找写指令,可以包括以下步骤:
S31、接收到写指令之后,将写指令放入写指令列表中。
在一种可选的实施方式中,存储设备在接收写指令之后,在对比指令列表中查找到与写指令对应的对比指令,也就是说与写指令对应的对比指令当前正在对比指令列表中等待被处理,那么存储设备将写指令放入到写指令列表中,写指令列表对应的等待计数加1。
其中,写指令列表可以有多个,每个写指令列表中可以包括多个写指令。
S32、在前一个对比指令完成之后,对当前对比指令的内容进行分析,为当前对比指令分配存储空间。
具体地,在前一个对比指令完成之后,存储设备需要对当前对比指令进行处理,需要对当前对比指令的内容进行分析,为当前对比指令分配存储空间。
S33、根据当前对比指令,在写指令列表中查找与当前对比指令对应的写指令。
可选的,在为当前对比指令分配存储空间之后,存储设备可以根据对比指令的标识信息查找与对比指令对应的写指令,在查找到写指令之后,写指令列表对应的等待计数减1。将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。其中,标识信息中可以包括对比指令对应的待处理的数据的标识,还可以包括对比指令对应的写指令的标识,还可以包括对比指令本身的一些标识。
可选的,在为当前对比指令分配存储空间之后,存储可以对对比指令进行识别和分析,根据识别和分析的结果查找与对比指令对应的写指令,在查找到与对比指令对应的写指令之后,写指令列表对应的等待计数减1。将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
本发明实施例提供的指令交互方法,将接收到的写指令放入写指令列表,从而可以对写指令依次指令。当在前一个对比指令完成之后,对当前对比指令的内容进行分析,为当前对比指令分配存储空间,从而使得存储设备可以在存储空间中完成对比指令。此外,根据当前对比指令,在写指令列表中查找与当前对比指令对应的写指令,从而可以保证写指令和对比指令的匹配,使得存储设备可以在存储空间中完成对比指令和写指令的操作。
在本申请一个可选的实施例中,上述方法还可以包括以下内容:
若在为当前对比指令分配存储空间之后的预设时间内,未查找到写指令,则中止当前对比指令,并释放当前对比指令对应的存储空间。
具体地,若为当前对比指令 分配存储空间之后的预设时间内,未查找到写指令,则说明在预设时间内未接收到当前对比指令对应的写指令,也就是说,当前对比指令对应的写指令出现故障,则存储设备中止当前对比指令,将当前对比指令从对比列表指令中移除,对比指令列表对应的等待计数减1,并释放当前对比指令对应的存储空间,
本发明实施例提供的指令交互方法,在为当前对比指令分配存储空间之后的预设时间内,未查找到写指令,则存储设备确定写指令可能出现异常情况,存储设备中止当前对比指令,并释放当前对比指令对应的存储空间。从而可以提高存储空间的利用率,避免异常的对比指令占据存储空间。
在本申请一个可选的实施方式中,主机向存储设备发送指令,存储设备接收到主机发送的指令之后,向主机反馈基于上述指令的响应信息。若主机在第一预设时间之内,接收到存储设备发送的响应信息,则然后主机向存储设备发送操作。若在第一预设时间内,主机未接收到存储设备反馈的响应信息,则主机不在向存储设备发送操作指令。其中,第一预设时间可以为60S,也可以是50S,本申请实施例对第一预设时间不做具体限定。
可选的,若存储设备向主机反馈相应信息之后,第一预设时间之内,没有接收到主机发送的操作指令,则存储设备将该指令存储第二预设时间之内中止掉该指令,并释放该指令对应的存储空间。其中,该指令可以是对比指令,也可以是写指令,还可以是对比指令和写指令的混合指令。其中,第二预设时间可以为12S,也可以是10S,本申请实施例对第二预设时间不做具体限定。
应该理解的是,虽然图1-4的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-4中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
如图5所示,本实施例提供一种指令交互装置,应用于存储设备,该指令交互装置包括:
第一接收模块41,用于接收主机发送的对比指令;
放入模块42,用于将对比指令放入对应的对比指令列表中;
第二接收模块43,用于接收主机发送的写指令;
匹配模块44,用于将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
在本申请一个实施例中,上述匹配模块44,具体用于根据写指令查找对比指令,在查找到对比指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作;或者,根据对比指令查找写指令,在查找到写指令之后,将写指令与对比指令进行匹配,完成对比指令和写指令对应的操作。
在本申请一个实施例中,上述匹配模块44,具体用于对对比指令的内容进行分析,为对比指令分配存储空间;根据写指令,分别在对比指令列表以及存储空间中,查找与写指令对应的对比指令。
在本申请一个实施例中,上述匹配模块44,具体用于根据写指令,在存储空间中查找与写指令对应的对比指令;若在存储空间中未查找到与写指令对应的对比指令,则在对比指令列表中查找对比指令;若在对比指令列表中未查找到与写指令对应的对比指令;则再次在存储空间中查找与写指令对应的对比指令;循环预设次数为止。
在本申请一个实施例中,上述匹配模块44,具体用于若循环预设次数之后,在对比指令列表以及存储空间中,均未查找到与写指令对应的对比指令,则中止写指令。
在本申请一个实施例中,上述匹配模块44,具体用于接收到写指令之后,将写指令放入写指令列表中;在前一个对比指令完成之后,对当前对比指令的内容进行分析,为当前对比指令分配存储空间;根据当前对比指令,在写指令列表中查找与当前对比指令对应的写指令。
在本申请一个实施例中,上述匹配模块44,具体用于若在为当前对比指令分配存储空间之后的预设时间内,未查找到写指令,则中止当前对比指令,并释放当前对比指令对应的存储空间。
关于指令交互装置的具体限定以及有益效果可以参见上文中对于指令交互方法的限定,在此不再赘述。上述指令交互装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于存储设备中的处理器中,也可以以软件形式存储于存储设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
本发明实施例还提供一种存储设备,具有上述图5所示的指令交互装置。
如图6所示,图6是本发明可选实施例提供的一种存储设备的结构示意图,如图6所示,该存储设备可以包括:至少一个处理器51,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口53,存储器54,至少一个通信总线52。其中,通信总线52用于实现这些组件之间的连接通信。其中,通信接口53可以包括显示屏(Display)、键盘(Keyboard),可选通信接口53还可以包括标准的有线接口、无线接口。存储器54可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器54可选的还可以是至少一个位于远离前述处理器51的存储装置。其中处理器51可以结合图5所描述的装置,存储器54中存储应用程序,且处理器51调用存储器54中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线52可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线52可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器54可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:hard diskdrive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器54还可以包括上述种类的存储器的组合。
其中,处理器51可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器51还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic, 缩写:GAL)或其任意组合。
可选地,存储器54还用于存储程序指令。处理器51可以调用程序指令,实现如本申请图1至4实施例中所示的指令交互方法。
本发明实施例还提供了一种非暂态计算机存储介质,计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的指令交互方法。其中,存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (11)
1.一种指令交互方法,其特征在于,应用于存储设备,所述方法包括:
接收主机发送的对比指令;
将所述对比指令放入对应的对比指令列表中;
接收所述主机发送的写指令;
将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作;
其中,所述将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作,包括:
根据所述写指令查找所述对比指令,在查找到所述对比指令之后,将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作;
其中,所述根据所述写指令查找所述对比指令,包括:
将所述对比指令中的数据与所述存储设备中的数据进行对比,若所述对比指令中的数据与所述存储设备中的数据一致,则为所述对比指令分配存储空间,并将所述对比指令从所述对比指令列表中移除,且将所述对比指令列表对应的等待计数减1;
根据所述写指令,分别在所述对比指令列表以及所述存储空间中,查找与所述写指令对应的对比指令。
2.根据权利要求1所述的方法,其特征在于,所述根据所述写指令,分别在所述对比指令列表以及所述存储空间中,查找与所述写指令对应的对比指令,包括:
根据所述写指令,在所述存储空间中查找与所述写指令对应的所述对比指令;
若在所述存储空间中未查找到与所述写指令对应的所述对比指令,则在所述对比指令列表中查找所述对比指令;
若在所述对比指令列表中未查找到与所述写指令对应的所述对比指令;则再次在所述存储空间中查找与所述写指令对应的所述对比指令;
循环预设次数为止。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若循环预设次数之后,在所述对比指令列表以及所述存储空间中,均未查找到与所述写指令对应的所述对比指令,则中止所述写指令。
4.根据权利要求1所述的方法,其特征在于,所述将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作,还包括:
根据所述对比指令查找所述写指令,在查找到所述写指令之后,将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作。
5.根据权利要求4所述的方法,其特征在于,所述根据所述对比指令查找所述写指令,包括:
接收到所述写指令之后,将所述写指令放入写指令列表中;
在前一个对比指令完成之后,对当前对比指令的内容进行分析,为所述当前对比指令分配存储空间;
根据所述当前对比指令,在所述写指令列表中查找与所述当前对比指令对应的写指令。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
若在为所述当前对比指令分配存储空间之后的预设时间内,未查找到所述写指令,则中止所述当前对比指令,并释放所述当前对比指令对应的存储空间。
7.一种指令交互装置,其特征在于,应用于存储设备,所述装置包括:
第一接收模块,用于接收主机发送的对比指令;
放入模块,用于将所述对比指令放入对应的对比指令列表中;
第二接收模块,用于接收所述主机发送的写指令;
匹配模块,用于将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作;其中,所述将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作,包括:根据所述写指令查找所述对比指令,在查找到所述对比指令之后,将所述写指令与所述对比指令进行匹配,完成所述对比指令和所述写指令对应的操作;其中,所述根据所述写指令查找所述对比指令,包括:将所述对比指令中的数据与所述存储设备中的数据进行对比,若所述对比指令中的数据与所述存储设备中的数据一致,则为所述对比指令分配存储空间,并将所述对比指令从所述对比指令列表中移除,且将所述对比指令列表对应的等待计数减1;根据所述写指令,分别在所述对比指令列表以及所述存储空间中,查找与所述写指令对应的对比指令。
8.根据权利要求7所述的装置,其特征在于,所述匹配模块,用于根据所述写指令,在所述存储空间中查找与所述写指令对应的所述对比指令;若在所述存储空间中未查找到与所述写指令对应的所述对比指令,则在所述对比指令列表中查找所述对比指令;若在所述对比指令列表中未查找到与所述写指令对应的所述对比指令;则再次在所述存储空间中查找与所述写指令对应的所述对比指令;循环预设次数为止。
9.根据权利要求8所述的装置,其特征在于,所述匹配模块,用于若循环预设次数之后,在所述对比指令列表以及所述存储空间中,均未查找到与所述写指令对应的所述对比指令,则中止所述写指令。
10.一种存储设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-6中任一项所述的指令交互方法。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使计算机执行权利要求1-6中任一项所述的指令交互方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000457.7A CN114003182B (zh) | 2022-01-04 | 2022-01-04 | 指令交互方法、装置、存储设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210000457.7A CN114003182B (zh) | 2022-01-04 | 2022-01-04 | 指令交互方法、装置、存储设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114003182A CN114003182A (zh) | 2022-02-01 |
CN114003182B true CN114003182B (zh) | 2022-04-29 |
Family
ID=79932525
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210000457.7A Active CN114003182B (zh) | 2022-01-04 | 2022-01-04 | 指令交互方法、装置、存储设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114003182B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870404A (zh) * | 2014-03-13 | 2014-06-18 | 武汉精测电子技术股份有限公司 | 一种iic批命令处理控制方法 |
CN113722248A (zh) * | 2021-07-28 | 2021-11-30 | 湖南国科微电子股份有限公司 | 命令处理方法及命令处理装置 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
EP3792743A4 (en) * | 2018-06-30 | 2021-06-30 | Huawei Technologies Co., Ltd. | NVME-BASED DATA WRITING PROCESS, DEVICE AND SYSTEM |
CN111522506B (zh) * | 2020-04-03 | 2022-08-02 | 杭州迪普信息技术有限公司 | 一种数据读取的方法及装置 |
CN111666103A (zh) * | 2020-05-08 | 2020-09-15 | 新华三半导体技术有限公司 | 指令处理方法及装置 |
CN111813345A (zh) * | 2020-07-17 | 2020-10-23 | 济南浪潮数据技术有限公司 | 一种数据传输方法、装置、服务器及可读存储介质 |
CN112363762B (zh) * | 2020-11-13 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 一种融合命令处理方法、系统、设备以及介质 |
CN112463067A (zh) * | 2020-12-08 | 2021-03-09 | 济南华芯算古信息科技有限公司 | 一种NVMe-oF场景下的数据保护方法及设备 |
-
2022
- 2022-01-04 CN CN202210000457.7A patent/CN114003182B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103870404A (zh) * | 2014-03-13 | 2014-06-18 | 武汉精测电子技术股份有限公司 | 一种iic批命令处理控制方法 |
CN113722248A (zh) * | 2021-07-28 | 2021-11-30 | 湖南国科微电子股份有限公司 | 命令处理方法及命令处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114003182A (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110247984B (zh) | 业务处理方法、装置及存储介质 | |
EP3208709B1 (en) | Batch processing method and device for system invocation commands | |
KR101401523B1 (ko) | 복수의 가상 머신들 간 조립 공유 gpu 스케줄링 방법 및 장치 | |
CN111338779B (zh) | 资源分配方法、装置、计算机设备和存储介质 | |
CN112612623B (zh) | 一种共享内存管理的方法和设备 | |
CN107515781B (zh) | 一种基于多处理器的确定性任务调度及负载均衡系统 | |
CN112286688A (zh) | 一种内存管理和使用方法、装置、设备和介质 | |
CN110019475B (zh) | 数据持久化处理方法、装置及系统 | |
CN112099728A (zh) | 一种执行写操作、读操作的方法及装置 | |
CN111338981B (zh) | 一种内存防碎片方法、系统及储存介质 | |
CN114003182B (zh) | 指令交互方法、装置、存储设备以及介质 | |
JP2690435B2 (ja) | 処理をプロセッサにディスパッチするためのマイクロプログラム手段を有するマルチプロセッサシステム | |
CN115543222B (zh) | 一种存储优化方法、系统、设备及可读存储介质 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN111767082A (zh) | 计算芯片启动方法、装置和计算机系统 | |
CN112463621B (zh) | 回归测试管理方法、存储介质管理方法、装置、设备及介质 | |
CN113986471A (zh) | 虚拟机镜像文件安全删除方法、装置、设备及存储介质 | |
CN113986846A (zh) | 数据处理方法、系统、设备及存储介质 | |
CN106055322A (zh) | 一种流程调度方法及装置 | |
CN109992357B (zh) | 一种对于虚拟机执行改变时避免冲突的方法及其系统 | |
CN118101623A (zh) | 一种物理地址调整方法、装置、宿主设备及存储介质 | |
CN111163158B (zh) | 一种数据处理方法及电子设备 | |
US8799616B2 (en) | Method and system for preferred CPU binding on virtual partitions | |
CN108121598A (zh) | 套接字缓存资源管理方法及装置 | |
CN114969746A (zh) | 恶意脚本的检测方法、设备、介质及产品 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |