在逻辑驱动器模型下呈现直接存取的存储设备的制作方法

文档序号:13147132阅读:来源:国知局
技术特征:
1.一种存储设备,包括:多个协作存储装置,所述多个协作存储装置中的每个装置包括:多播接口,用于与所述多个协作存储装置的剩余协作存储装置通信,纠错码(ECC)模块,以及异或(XOR)模块;RAID(独立盘冗余阵列)模块,用于从在通信上与所述存储设备链接的外部装置接收单个I/O事务,并基于所述单个I/O事务对经由所述多播接口跨越所述多个协作存储装置分成条带的多个数据区块进一步执行多个ECC操作和至少一个XOR功能。2.如权利要求1所述的存储设备:其中来自所述外部装置的所述单个I/O事务包括指定即将存储在所述存储设备上的数据的写入I/O事务;其中所述写入I/O事务没有为所述指定的数据提供奇偶校验位数据或XOR保护信息;其中所述RAID模块将所述单个I/O事务的所述指定的数据分为多个数据区块并启动将所述多个数据区块多播到所述多个协作存储装置中的指定目标驱动器;其中所述多个协作存储装置中的非指定目标驱动器经由所述多播接收所述多个数据区块,基于经由所述多播接收的所述多个数据区块生成XOR保护信息,并将所述生成的XOR保护信息作为XOR区块加以存储。3.如权利要求1所述的存储设备:其中来自所述外部装置的所述单个I/O事务包括指定即将从所述存储设备检索的数据的读取I/O事务;其中所述读取I/O事务指定用于检索的数据块,而无需为所述指定的数据块指定数据区块位置或XOR区块位置;其中所述RAID模块基于指定用于检索的所述数据块确定所述指定数据块的数据区块位置和XOR区块位置;其中所述RAID模块确定,如所述多个协作存储装置之一的相应ECC模块所报道,所述多个数据区块位置之一没有通过ECC检查;其中所述RAID模块执行XOR操作以便利用剩余数据区块位置和所述XOR区块位置经由在所述多个协作存储装置中的多播读取重构经确定没有通过所述ECC检查的所述一个数据区块位置;并且其中所述存储设备在履行所述单个I/O事务中将所述指定的数据块返回到所述外部装置。4.如权利要求1所述的存储设备:其中所述存储装置是其中集成了所述多个协作存储装置的SSD(固态驱动器);并且其中所述SSD将通过经由所述单个I/O事务指定的I/O读取请求所触发的XOR操作错误报道回给所述外部装置。5.如权利要求1所述的存储设备,其中所述多个协作存储装置构成协作直接存取存储装置,所述协作直接存取存储装置独立于主机、主机操作系统和/或主机管理的文件系统操作,并且不受所述主机、所述主机操作系统和/或所述主机管理的文件系统的管理或控制。6.如权利要求5所述的存储设备,其中所述协作直接存取存储设备可经由应用直接存取,所述应用由所述主机或所述主机操作系统托管并在所述主机或所述主机操作系统上执行。7.如权利要求6所述的存储设备,其中所述协作直接存取存储装置在通信上与控制器对接,所述控制器具有与所述协作直接存取存储装置通信的输入/输出接口(I/O接口)模块,并且其中所述协作直接存取存储装置通过代表所述控制器在本地提供本地数据保护和本地数据恢复能力而从所述控制器卸载数据保护和数据恢复责任。8.如权利要求7所述的存储设备,其中所述控制器包括这样的控制器,所述控制器中包含:本地控制器中央处理器单元(CPU);本地控制器存储器;PCIe(外围组件互连Express)接口,用于在通信上链接所述控制器和宿主机;以及控制器接口模块,用于经由所述PCIe接口与所述宿主机进行I/O操作和指令通信,所述通信的I/O操作将转播给所述协作直接存取存储装置。9.如权利要求1所述的存储设备,其中所述多个协作存储装置构成协作端点存储装置,所述协作端点存储装置在主机、主机操作系统和/或主机管理的文件系统的控制下操作,并且受所述主机、所述主机操作系统和/或所述主机管理的文件系统的管理或控制。10.如权利要求9所述的存储设备,其中所述协作端点存储装置在通信上与宿主机对接,所述宿主机具有与所述协作端点存储装置通信的输入/输出接口(I/O接口)模块,并且其中所述协作端点存储装置通过代表所述宿主机在本地提供本地数据保护和本地数据恢复能力而从所述宿主机卸载数据保护和数据恢复责任。11.一种设备,包括:到宿主机的第一输入/输出接口(I/O接口)模块,所述第一I/O接口模块用于接收包括即将存储的数据和所述即将存储的数据的DIF或DIX(数据完整性字段或数据完整性扩展)数据的I/O事务;DMA(直接存储器存取)模块,用于将所述即将存储的数据以及所述即将存储的数据的DIF或DIX数据从所述宿主机的存储器移动到位于所述设备本地的存储器,并基于所述DIF或DIX数据同步地计算所述即将存储的数据的奇偶校验位;以及到多个存储设备的第二I/O接口模块,所述第二I/O接口模块用于将所述即将存储的数据以及所述即将存储的数据的所述计算的奇偶校验位从位于所述设备本地的所述存储器移动到所述多个存储设备。12.如权利要求11所述的设备:其中所述DMA模块还中断位于所述设备本地的中央处理单元核(CPU核);并且其中位于所述设备本地的所述CPU核响应地将完成通知投寄到所述宿主机的所述存储器中。13.如权利要求12所述的设备:其中位于所述设备本地的所述CPU核还构建供盘控制器处理的命令,所述盘控制器在通信上经由到所述多个存储设备的所述第二I/O接口模块与所述设备对接;其中位于所述设备本地的所述CPU核将所述命令投寄到位于所述设备本地的消息传递单元;并且其中位于所述设备本地的所述CPU核将到所述命令的链路投寄到所述盘控制器中。14.如权利要求13所述的设备:其中响应于投寄到所述盘控制器中的所述命令,所述盘控制器提取到投寄到所述盘控制器的所述命令的所述链路;并且其中响应于将所述即将存储的数据以及所述即将存储的数据的所述计算的奇偶校验位从位于所述设备本地的所述存储器移动到所述多个存储设备,所述第二I/O接口还将第二完成通知投寄到所述消息传递单元;并且其中所述第二I/O接口还中断位于所述设备本地的所述CPU核。15.如权利要求11所述的设备,其中包括即将存储的数据和所述即将存储的数据的DIF或DIX数据的所述I/O事务包括数据流,所述数据流具有编码到所述流上的所述即将存储的数据以及所述即将存储的数据的所述DIF或DIX数据。16.如权利要求11所述的设备,其中用于基于所述DIF或DIX数据同步地计算所述即将存储的数据的奇偶校验位的所述DMA模块还包括这样的DMA模块,它在同步计算所述即将存储的数据的所述奇偶校验位的同时插入DIF数据或检查编码数据的DIF数据或将DIX数据转换为DIF数据。17.如权利要求11所述的设备,其中用于基于所述DIF或DIX数据同步地计算所述即将存储的数据的奇偶校验位的所述DMA模块包括用于计算P和Q奇偶校验位的DMA模块,其中P奇偶校验位代表基于XOR(异或)操作的奇偶校验位计算,并且其中Q奇偶校验位代表基于伽罗瓦域(GF)乘法运算的奇偶校验位计算,P和Q奇偶校验位的所述计算足以实现对于双并发故障模式可复原的RAID-6。18.如权利要求11所述的设备,其中用于将所述即将存储的数据以及所述即将存储的数据的所述计算的奇偶校验位从位于所述设备本地的所述存储器移动到所述多个存储设备的所述第二I/O接口模块包括用于跨越所述多个存储设备实现宽度优先填充操作的第二I/O接口模块。19.如权利要求11所述的设备,其中在控制器内实现所述设备,所述控制器包括:位于所述控制器本地的中央处理单元核(CPU核);位于所述控制器本地的缓存存储器;PCIe(外围组件互连Express)接口,用于实现到所述宿主机的所述第一输入/输出接口模块并在通信上链接所述控制器和所述宿主机;以及控制器接口模块,用于经由所述PCIe接口与所述宿主机进行指令通信。20.如权利要求11所述的设备,其中所述多个存储设备中的每个存储设备作为独立于所述宿主机、宿主机操作系统和/或宿主机管理的文件系统操作的直接存取存储装置操作,其中每个直接存取存储装置不受所述宿主机、所述宿主机操作系统和/或所述宿主机管理的文件系统的管理或控制,每个直接存取存储装置可经由应用直接存取,所述应用由所述宿主机或所述宿主机操作系统托管并在所述宿主机或所述宿主机操作系统上执行,并且其中每个直接存取存储装置在通信上经由到所述多个存储设备的所述第二I/O接口模块与所述控制器对接。21.一种设备,包括:具有排队工作的门铃空间的工作引擎队列;到宿主机的输入/输出接口(I/O接口)模块,所述I/O接口模块用于接收门铃条目以便提交给所述工作引擎队列;位于所述工作引擎队列内的第一队列结构,用于利用仲裁方案从所述工作引擎队列释放门铃条目;位于所述工作引擎队列内的第二队列结构,用于利用所述仲裁方案从所述工作引擎队列释放额外的门铃条目;其中当所述第一队列结构中的门铃条目的数量低于服务队列条目(SQE)的阈值数量时,在所述第一队列结构内将所述门铃条目排队并从所述第一队列结构释放所述门铃条目;并且其中当所述第一队列结构中的门铃条目的数量大于SQE的所述阈值数量时,在所述第二队列结构内将所述额外门铃条目排队。22.如权利要求21所述的设备,还包括位于所述工作引擎队列内的管理队列结构,用于存储和释放作为管理门铃消息经由所述输入/输出接口模块从所述主机到达的管理工作。23.如权利要求21所述的设备,还包括到直接存取存储装置的第二I/O接口模块;并且其中经接收以便提交给所述工作引擎队列的所述门铃条目包括对所述直接存取存储装置请求I/O事务的存储设备处理工作。24.如权利要求23所述的设备,其中所述直接存取的存储装置独立于所述主机、主机操作系统和/或主机管理的文件系统操作,并且不受所述主机、所述主机操作系统和/或所述主机管理的文件系统的管理或控制。25.如权利要求24所述的设备,其中所述直接存取的存储设备可依据经由所述工作引擎队列提交对所述直接存取存储装置请求I/O事务的所述存储设备处理工作经由应用直接存取,所述应用由所述主机或所述主机操作系统托管并在所述主机或所述主机操作系统上执行。26.如权利要求21所述的设备,其中对于出错或恶意的门铃条目请求对所述第一队列结构的门铃条目进行错误检查,并且在通过所述错误检查时将其放到所述第一队列结构中,或者在没有通过所述错误检查时将其从进一步的排队、处理和仲裁中丢弃。27.如权利要求21所述的设备,其中对所述第二队列结构的门铃条目进行CAM检查(针对“内容可寻址存储器”进行检查)以便基于与所述相应的门铃条目的服务队列标识符(SQid)匹配的CAM条目确定在所述第二队列结构内是否存在所述相应门铃条目的所述匹配的SQid,并且一旦通过所述CAM检查,便将其放到所述第二队列结构中,或者如果没有通过所述CAM检查,那么将其从进一步的排队、处理和仲裁中丢弃。28.如权利要求21所述的设备,还包括用于维持在所述第一队列结构中所允许的最大SQE数量的配置空间以及用于存储在所述第一队列结构中目前排队的多个SQE的存储器空间;并且其中将经接收以便提交给所述工作引擎队列的所有门铃条目放到所述第一队列结构中,直到所述第一队列结构达到如所述配置空间内所维持的在所述第一队列结构中所允许的最大SQE数量,并且其中将经接收以便提交给所述工作引擎队列的额外门铃条目放到所述第二队列结构中,直到所述第一队列结构中的SQE的数量下降为低于在所述第一队列结构中所允许的SQE的阈值数量。29.如权利要求21所述的设备,其中在控制器内实现所述设备。30.如权利要求29所述的设备,其中所述控制器包括这样的控制器,所述控制器包括:本地控制器中央处理器单元(CPU);本地控制器存储器;PCIe(外围组件互连Express)接口,用于在通信上链接所述控制器和所述主机;控制器接口模块,用于经由所述PCIe接口与所述主机进行指令和I/O事务请求通信;到直接存取存储装置的第二I/O接口模块;并且其中所述控制器接口模块将I/O事务请求呈现给所述第二I/O接口模块以便经由在通信上与所述控制器对接的所述直接存取存储装置履行所述I/O事务请求。31.一种设备,包括:位于所述设备本地的中央处理器单元(CPU);具有排队工作的门铃空间的工作引擎队列;到宿主机的输入/输出接口(I/O接口)模块,所述I/O接口模块用于接收门铃条目以便提交给所述工作引擎队列;完成队列,具有用于将之前排队的完成的工作合并为所述工作引擎队列中的排队工作的空间;以及完成队列中断机构,用于基于与所述完成队列相关联的状态启动中断。32.如权利要求31所述的设备,其中所述完成队列中断机构包括:本地CPU中断机构,用于基于与所述完成队列相关联的所述状态中断位于所述设备本地的所述CPU;以及宿主机CPU中断机构,用于基于与所述完成队列相关联的所述状态中断所述宿主机的CPU。33.如权利要求32所述的设备,其中宿主机CPU中断机构对于所述宿主机实现MSI(消息信令中断)或MSI-X(消息信令中断扩展)。34.如权利要求33所述的设备,其中对所述宿主机的所述MSI或MSI-X结合对应于所述宿主机CPU中断机构以及另外对应于宿主机CPU错误中断机构的每一者的专用地址和数据向量操作。35.如权利要求31所述的设备,还包括错误中断机构,用于基于对与所述设备相关联的驱动器有影响或对所述设备的消息传递单元有影响的错误的通知立即启动错误中断。36.如权利要求35所述的设备,其中所述错误中断机构包括:本地CPU错误中断机构,用于基于所述错误的通知立即中断位于所述设备本地的所述CPU;以及宿主机CPU错误中断机构,用于基于所述错误的通知立即中断所述宿主机的CPU,其中所述宿主机CPU错误中断机构经由NTB(非透明桥接)对所述宿主机实现MSI(消息信令中断)或MSI-X(消息信令中断扩展)。37.如权利要求31所述的设备,其中用于基于与所述完成队列相关联的所述状态启动所述中断的所述完成队列中断机构包括用于基于所述完成队列启动所述中断的队列中断机构,所述完成队列合并了在不启动所述中断的情况下超过指定即将在所述完成队列中维持的最大完成工作数的合并数的多个完成工作。38.如权利要求31所述的设备,其中用于基于与所述完成队列相关联的所述状态启动所述中断的所述完成队列中断机构包括用于基于所述完成队列启动所述中断的队列中断机构,所述完成队列合并了在不启动所述中断的情况下超过指定用于合并所述完成队列中的完成工作的最大时间周期的合并计时器的时间周期的完成工作。39.如权利要求38所述的设备,其中在启动中断之前,所述合并计时器实现最小和最大延迟,其中如果就在为完成工作投寄新的完成条目之前所述合并计时器到期,那么将观察到最小时间周期,其中将使所述新完成条目与随后启动的中断相关联。40.如权利要求31所述的设备,其中所述控制器包括这样的控制器,所述控制器包括:位于所述设备本地的中央处理器单元(CPU)以作为本地控制器CPU;本地控制器存储器;PCIe(外围组件互连Express)接口,用于经由到所述宿主机的所述输入/输出接口模块在通信上链接所述控制器和所述宿主机;控制器接口模块,用于经由所述PCIe接口与所述宿主机进行指令和I/O事务请求通信;到直接存取存储装置的第二I/O接口模块;并且其中所述控制器接口模块将I/O事务请求呈现给所述第二I/O接口模块以便经由在通信上与所述控制器对接的所述直接存取存储装置履行所述I/O事务请求。41.如权利要求31所述的设备,其中用于基于与所述完成队列相关联的所述状态启动所述中断的所述完成队列中断机构包括经由非透明桥接将主机中断注入到所述宿主机的NTB门铃机构(非透明桥接门铃机构)。42.如权利要求41所述的设备,其中通过在所述设备的到所述宿主机的所述I/O接口模块处实现的PCIe下游端口(外围组件互连Express下游端口)经由对所述宿主机的MSI(消息信令中断)或MSI-X(消息信令中断扩展)实现所述NTB门铃机构。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1