Provides a kernel mode and user mode access to devices that use the NVMe interface simultaneously. A system and method for enabling simultaneous access to kernel mode access and user mode access for NVMe devices using NVMe interfaces are disclosed. The method includes: the memory address at least the first range in kernel space to create the first cohort; providing a first set of location and size of the queue to the NVMe controller device; user application process running from the host computer system for receiving user access mode in response to receiving the request; for the user access pattern a request to perform the following steps: memory address mapping of the range of second to create second cohorts by at least retain the use of the user application process on the grounds, and to control the user application process and the NVMe device provides the second cohort location and size.
【技术实现步骤摘要】
对使用NVMe接口的装置同时进行的内核模式和用户模式访问本申请要求于2016年4月22日提交的申请号为62/326,459,标题为“用于提供操作系统内核模式和用户模式同时硬件队列访问的系统和方法”的美国临时专利申请以及于2016年10月19日提交的申请号为15/298,053的美国专利申请的优先权和利益,所述申请的全部内容通过引用合并于此。
本公开总体上涉及计算机硬件装置。具体地,本公开涉及一种提供对使用NVMe接口的装置的同时内核模式访问和用户模式访问的系统和方法。
技术介绍
目前,大多数硬盘驱动器(HD)和固态驱动器(SSD)被构造为通过串行高级技术附件(SATA)总线连接到主机计算机系统(或简称“主机”)。然而,由于技术的进步,SSD的访问速度已增加到SATA总线的最大传输速度已成为瓶颈的地步。这样,现在也存在被构造为通过周边组件互连高速(PCIe或PCI-E)总线连接到主机计算机系统的SSD,其中,所述周边组件互连高速(PCIe或PCI-E)总线比SATA总线提供更高的最大传输速度和带宽可扩展性。为了更充分地对PCIe总线所提供的进行利用,还开发了非易失性存储器高速(NVMe)规范。NVMe规范是一种为了访问通过PCIe总线附接的非易失性存储介质而开发的逻辑装置接口规范。相比于针对SATA总线而开发的高级主机控制器接口(AHCI)规范,NVMe规范提供了显著的优势,诸如更低的延迟和经过改善的多处理器核支持。在下文中,根据NVMe接口规范而采用和操作的装置被称为“NVMe装置”。NVMe装置提供超过启用SATA的装置的改善的性能的方法是通过利用多I/ ...
【技术保护点】
一种使得能够通过主机计算机系统对使用NVMe接口的NVMe装置同时进行内核模式访问和用户模式访问的方法,主机计算机系统包括被至少划分为内核空间以及一个或更多个用户空间的主机存储器空间,所述方法包括:通过至少保留内核空间中的第一范围的存储器地址来创建第一组的一个或更多个队列;向NVMe装置的控制器提供第一组队列的位置地址和大小;从主机计算机系统上运行的用户应用进程接收对于用户模式访问的请求;响应于接收到对于用户模式访问的请求执行下列操作:通过至少保留为由所述用户应用进程使用而映射的第二范围的存储器地址来创建第二组的一个或更多个队列,向所述用户应用进程和NVMe装置的控制器提供第二组队列的位置地址和大小。
【技术特征摘要】
2016.04.22 US 62/326,459;2016.10.19 US 15/298,0531.一种使得能够通过主机计算机系统对使用NVMe接口的NVMe装置同时进行内核模式访问和用户模式访问的方法,主机计算机系统包括被至少划分为内核空间以及一个或更多个用户空间的主机存储器空间,所述方法包括:通过至少保留内核空间中的第一范围的存储器地址来创建第一组的一个或更多个队列;向NVMe装置的控制器提供第一组队列的位置地址和大小;从主机计算机系统上运行的用户应用进程接收对于用户模式访问的请求;响应于接收到对于用户模式访问的请求执行下列操作:通过至少保留为由所述用户应用进程使用而映射的第二范围的存储器地址来创建第二组的一个或更多个队列,向所述用户应用进程和NVMe装置的控制器提供第二组队列的位置地址和大小。2.如权利要求1所述的方法,其中:第一组队列至少包括管理提交队列和管理完成队列,第一组队列和第二组队列中的每组至少包括输入/输出提交队列和输入/输出完成队列。3.如权利要求2所述的方法,其中,来自所述用户应用进程的用户模式访问包括:在NVMe装置上执行输入/输出操作,同时绕过内核空间中的块输入/输出层。4.如权利要求3所述的方法,还包括:对第二组队列中的输入/输出提交队列执行输入/输出命令的虚拟存储器写入操作;对与第二组队列中的输入/输出提交队列对应的提交尾部门铃寄存器的值进行更新。5.如权利要求4所述的方法,还包括:对第一组队列中的输入/输出提交队列执行输入/输出命令的虚拟存储器写入操作;对与第一组队列中的输入/输出提交队列对应的提交尾部门铃寄存器的值进行更新。6.如权利要求5所述的方法,其中,对第二组队列中的输入/输出提交队列的虚拟存储器写入操作与对第一组队列中的输入/输出提交队列的虚拟存储器写入操作被并行执行。7.一种非暂时性的存储有计算机可执行指令的计算机可读介质,其中,当所述计算机可执行指令被具有被至少划分为内核空间以及一个或更多个用户空间的主机存储器空间的主机计算机系统执行时,使得能够通过使主机计算机系统执行至少下列步骤来对使用NVMe接口的NVMe装置同时进行内核模式访问和用户模式访问:通过至少保留内核空间中的第一范围的存储器地址来创建第一组的一个或更多个队列;向NVMe装置的控制器提供第一组队列的位置地址和大小;从主机计算机系统上运行的用户应用进程接收对于用户模式访问的请求;响应于接收到对于用户模式访问的请求执行下列操作:通过至少保留为由所述用户应用进程使用而映射的第二范围的存储器地址来创建第二组的一个或更多个队列,向所述用户应用进程和NVMe装置的控制器提供第二组队列的位置地址和大小。8.如权利要求7所述的非暂时性的计算机可读介质,其中:第一组队列至少包括管理提交队列和管理完成队列,第一组队列和第二组队列中的每组至少包括输入/输出提交队列和输入/输出完成队列。9.如权利要求8所述的非暂时性的计算机可读介质,其中,来自所述用户应...
【专利技术属性】
技术研发人员:康斯坦丁·维谢特斯基,卡洛斯·欧莱·弗朗西斯科,马诺吉·哥达拉,
申请(专利权)人:三星电子株式会社,
类型:发明
国别省市:韩国,KR
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。