System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,特别涉及一种固态硬盘读写主机内存的方法和装置。
技术介绍
1、在主机和固态硬盘(solid state disk,ssd)的主从访问架构中,以主机作为主设备,以固态硬盘作为从设备。其中,固态硬盘包括固态硬盘控制器和存储介质,固态硬盘控制器包括随机存取存储器(random access memory,ram),用于存放固态硬盘控制器运行过程中产生的运行数据、闪存转换(flash translation layer,ftl)表项和读写(input/output,i/o)缓存等数据。由于固态硬盘控制器内部的ram资源有限且容量较小,所以,在ram资源不足的情况下,可以将主机内存作为ram资源的补充。
2、相关技术中,在固态硬盘的ram资源不足的情况下,固态硬盘可以读写主机内存。其中,若固态硬盘已接收到主机下发的任意指令,则当固态硬盘向主机发送该指令的响应(response)报文时,固态硬盘将对主机内存的读写请求携带在该响应报文中,从而将读写请求发送给主机;主机基于该读写请求,向固态硬盘发送该读写请求对应的读写指令,固态硬盘向主机发送该读写指令的响应报文,主机根据该响应报文的指示对主机内存进行读写操作。
3、然而,上述方法中,固态硬盘每次都需要依赖主机已经下发的指令向主机发送读写请求,若一段时间内主机都没有向固态硬盘下发任何指令,则固态硬盘无法及时向主机发送读写请求,并且,主机每次接收到读写请求后,均需要重新向固态硬盘发送新的指令以完成相关的读写操作,导致固态硬盘对主机内存的读写效率较低。
>技术实现思路
1、本申请实施例提供了一种固态硬盘读写主机内存的方法和装置,能够提高固态硬盘对主机内存的读写效率。该技术方案如下。
2、第一方面,提供了一种固态硬盘读写主机内存的方法,该方法包括:
3、主机向固态硬盘发送第一指令,主机不会收到该第一指令的完成响应;固态硬盘接收到该第一指令后,基于该第一指令,向主机发送第一指令的响应报文,以指示主机对主机内存执行该响应报文所指示的读写操作。
4、上述方法中,固态硬盘不对该第一指令进行完成响应,也即是第一指令长期有效,每当固态硬盘有读写主机内存的需求时,向主机发送第一指令的响应报文即可,因此,固态硬盘能够基于第一指令对主机内存进行多次读写,该读写过程无需依赖主机下发的指令,也无需主机每次都为固态硬盘构造读写指令,能够提高固态硬盘读写主机内存的效率。
5、可选地,该主机向固态硬盘发送第一指令,包括:
6、该主机在初始化阶段向该固态硬盘发送该第一指令。
7、可选地,该第一指令中的第一字段指示该固态硬盘不对该第一指令进行完成响应;或,该第一指令的指令类型指示该固态硬盘不对该第一指令进行完成响应。
8、其中,该第一指令的一种生成方式为:主机生成第一字段置为目标数值的指令,该第一字段置为目标数值指示固态硬盘不对该指令进行完成响应。该第一字段为指令中预留的空闲字段。在一些实施例中,指令的第一字段有取值指示固态硬盘不对该指令进行完成响应;指令的第一字段为空指示固态硬盘对该指令进行完成响应。在另一些实施例中,用第一字段的不同取值来指示固态硬盘是否对该指令进行完成响应,例如,第一字段的取值为1指示固态硬盘不对该指令进行完成响应,第一字段的取值为0指示固态硬盘对该指令进行完成响应。
9、其中,该第一指令的另一种生成方式为:主机生成指令类型为目标类型的指令,该目标类型指示固态硬盘不对该指令进行完成响应。该目标类型与原有协议中的指令类型不同。
10、可选地,该第一指令携带该主机内存上该固态硬盘可读写的内存地址。
11、可选地,该方法还包括:
12、该固态硬盘向该主机发送该第一指令的初始化响应,该初始化响应携带的数据长度为0。
13、其中,该初始化响应用于通知主机固态硬盘已接收到该读指令且已完成该读指令相关的初始化工作。该初始化响应区别于完成响应,主机接收到该初始化响应不等同于接收到完成响应。
14、上述方法中,通过固态硬盘向主机发送初始化响应的方式通知主机固态硬盘已接收到该第一指令,当由于网络故障等原因导致的第一指令发送失败或初始化响应接收失败时,主机能够重新向固态硬盘发送该第一指令,从而保证固态硬盘能够正常读写主机内存。
15、可选地,该方法还包括:
16、该固态硬盘关联该第一指令和目标标记,该目标标记指示该固态硬盘不对该第一指令进行完成响应。
17、上述方法中,由于固态硬盘将该第一指令和目标标记进行关联,当固态硬盘需要对主机内存进行读写操作时,固态硬盘检测目标标记,在检测到有指令关联该目标标记时,基于该指令生成响应报文,从而使得固态硬盘在接收的指令纷繁复杂的情况下,能够快速确定目标指令,进而生成目标指令的响应报文,而无需对指令本身进行检测,从而能够提高响应报文的生成效率,进而提高固态硬盘对主机内存的读写效率。
18、可选地,该第一指令为读指令,该基于该第一指令,向该主机发送该第一指令的响应报文,包括:
19、基于该读指令,向该主机发送该读指令的响应报文,该读指令的响应报文携带该固态硬盘中的数据、该主机内存中的第一内存地址,该读指令的响应报文指示该主机将该固态硬盘中的数据写入该第一内存地址。
20、可选地,该第一指令为写指令,该基于该第一指令,向该主机发送该第一指令的响应报文,包括:
21、基于该写指令,向该主机发送该写指令的响应报文,该写指令的响应报文携带该主机内存中的第二内存地址,该写指令的响应报文指示该主机将该第二内存地址中的数据发送给该固态硬盘。
22、第二方面,提供了一种固态硬盘,该固态硬盘包括接口、处理器和存储介质,该接口用于和主机通信,该存储介质用于存储数据,该处理器用于执行上述第一方面或第一方面的任一种可能的实现方式所提供的方法中由固态硬盘执行的步骤。
23、第三方面,提供了一种主机,该主机包括接口、处理器和内存,该接口用于和固态硬盘通信,该内存用于存储数据,该处理器用于执行上述第一方面或第一方面的任一种可能的实现方式所提供的方法中由主机执行的步骤。
24、第四方面,提供了一种存储系统,该存储系统包括如上述第二方面所提供的固态硬盘和如上述第三方面所提供的主机,使得该存储系统执行上述第一方面或第一方面的任一种可能的实现方式所提供的固态硬盘读写主机内存的方法。
25、本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
本文档来自技高网...【技术保护点】
1.一种固态硬盘读写主机内存的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述主机向固态硬盘发送第一指令,包括:
3.根据权利要求1所述的方法,其特征在于,所述第一指令中的第一字段指示所述固态硬盘不对所述第一指令进行完成响应;或,所述第一指令的指令类型指示所述固态硬盘不对所述第一指令进行完成响应。
4.根据权利要求1所述的方法,其特征在于,所述第一指令携带所述主机内存上所述固态硬盘可读写的内存地址。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一指令为读指令,所述基于所述第一指令,向所述主机发送所述第一指令的响应报文,包括:
8.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一指令为写指令,所述基于所述第一指令,向所述主机发送所述第一指令的响应报文,包括:
9.一种固态硬盘,其特征在于,
10.一种主机,其特征在于,包括接口、处理器和内存,所述接口用于和固态硬盘通信,所述内存用于存储数据,所述处理器用于执行如上述权利要求1至权利要求8中任一项所述的方法中由主机执行的步骤。
11.一种存储系统,其特征在于,所述存储系统包括如上述权利要求9所述的固态硬盘和如上述权利要求10所述的主机,使得所述存储系统执行如上述权利要求1至权利要求8中任一项所述的固态硬盘读写主机内存的方法。
...【技术特征摘要】
1.一种固态硬盘读写主机内存的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述主机向固态硬盘发送第一指令,包括:
3.根据权利要求1所述的方法,其特征在于,所述第一指令中的第一字段指示所述固态硬盘不对所述第一指令进行完成响应;或,所述第一指令的指令类型指示所述固态硬盘不对所述第一指令进行完成响应。
4.根据权利要求1所述的方法,其特征在于,所述第一指令携带所述主机内存上所述固态硬盘可读写的内存地址。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述方法还包括:
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述第一指令为读指令,所述基于所述第一指令,向所述主机发送所述第一指令的响应报文...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。