NVMe配置空间实现方法与装置制造方法及图纸

技术编号:16919162 阅读:34 留言:0更新日期:2017-12-31 14:47
提供了NVMe配置空间实现方法与装置。提供的访问NMVe控制器寄存器的方法,包括:识别访问PCIe设备的存储器空间的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器,其中NVMe控制器寄存器包括第一类寄存器、门铃寄存器和/或设备商专用寄存器,其中第一类寄存器占据存储器寄存器空间的预定范围;若所述访问请求访问第一类寄存器,生成寄存器访问消息并将寄存器访问消息发送给CPU,其中所述寄存器访问消息包括控制器寄存器地址。

【技术实现步骤摘要】
NVMe配置空间实现方法与装置
本专利技术涉及NVMe控制器,具体地,涉及NVMe协议中的控制器寄存器(ControllerRegisters)。
技术介绍
在NVMe协议中定义了控制器寄存器(ControllerRegister,也参见“NVMExpressRevision1.2”(下称NVMe协议)第3章,2014年11月3日)。在基于PCIe协议实现NVMe控制器时,NVMe控制器寄存器被映射到PCIe设备的存储器空间(MemorySpace)。在NVMe协议中,PCIe寄存器MLBAR与MUBAR(PCIe协议中的寄存器BAR0与BAR1)定义了用于提供NVMe控制器寄存器的存储器空间(本文中被称为存储器寄存器空间)。除了PCIe协议,可基于其他总线协议实现NVMe协议。在总线协议中,设备提供可被其他总线实体访问的存储器空间(MemorySpace,或称存储器寄存器空间),并将NVMe控制器寄存器映射到存储器空间。从而为访问NVMe控制器寄存器,通过在总线协议中访问存储器空间来实现。主机(Host)或其他总线实体依据NVMe协议能够访问控制器寄存器,但也应遵循若干约束。例如,Host不能同时访问设备的两个或多个控制器寄存器;被保留的寄存器或者寄存器中被保留的比特是只读的,在被读取时返回0。控制器寄存器包括不同用途的寄存器。参看图1,展示了控制寄存器在存储器空间中的布局。依据NVMe协议,以PCIe协议作为总线协议为例,在PCIe设备的存储器空间的前4K字节(地址范围0-0x0FFF)提供的寄存器(本公开中称为属性/控制寄存器)用于描述控制器的基本属性,例如控制器能力、版本、命令队列基地址,或者用于提供对控制器的控制端口。在存储器空间的0x1000地址开始存储命令队列的门铃寄存器(Doorbell寄存器),在门铃寄存器之后的存储器空间存储设备商专用(VendorSpecific)信息。控制器寄存器具有多种类型(Type),例如NVMe协议1.2版本定义了只读类型(RO)、读写类型(RW)、RW1S类型与RW1C类型。在NVMe协议的其他版本中,还可能定义其他的控制器寄存器类型。RW1S类型的含义是该寄存器可读可写,在被写入时,向某位写“1”意味着按位设置中断向量的掩码,而写“0”则没有作用;在被读出时,当前的中断向量的掩码值(而非寄存器的值)被读出。RW1C类型的含义是,该寄存器可读可写,在写入时,向某位写“1”意味着按位清除中断向量的掩码,而写“0”则没有作用;在被读出时,当前的中断向量的掩码值(而非寄存器的值)被读出。
技术实现思路
然而,NVMe协议没有定义在控制器中如何实现控制器寄存器。控制器寄存器的访问方式不限于寄存器的读/写操作,对于被保留的寄存器、特殊类型的寄存器,具有特殊的访问方式。NVMe协议在迅速发展,当前的控制器寄存器实现方式需要满足协议演进的需求。根据本专利技术的第一方面,提供了根据本专利技术第一方面的第一访问NMVe控制器寄存器的方法,包括:识别访问PCIe设备的存储器空间的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器,其中NVMe控制器寄存器包括第一类寄存器、门铃寄存器和/或设备商专用寄存器,其中第一类寄存器占据存储器寄存器空间的预定范围;若所述访问请求访问第一类寄存器,生成寄存器访问消息并将寄存器访问消息发送给CPU,其中所述寄存器访问消息包括控制器寄存器地址。根据本专利技术的第一方面的第一访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第二访问NMVe控制器寄存器的方法,还包括:若所述访问请求访问门铃寄存器,依据所述访问请求的地址,访问所述PCIe设备的存储器。根据本专利技术的第一方面的第一或第二访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第三访问NMVe控制器寄存器的方法,还包括:所述CPU响应于收到寄存器访问消息,依据所述寄存器访问消息的控制器寄存器地址识别所访问的第一类寄存器的类型,并依据NVMe协议定义的所述类型的第一类寄存器的访问方式,处理所述寄存器访问消息。根据本专利技术的第一方面的第一至第三访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第四访问NMVe控制器寄存器的方法,还包括,若所述访问请求访问设备商专用寄存器,依据所述访问请求的地址,访问所述PCIe设备的存储器。根据本专利技术的第一方面的第一至第四访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第五访问NMVe控制器寄存器的方法,其中PCIe设备的存储器空间的指定地址范围被映射到PCIe设备的存储器的地址空间。根据本专利技术的第一方面的第一至第五访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第六访问NMVe控制器寄存器的方法,其中所述CPU根据具有不同存储器空间地址的多个寄存器访问消息,访问所述PCIe设备的存储器的相同地址。根据本专利技术的第一方面的第一至第六访问NMVe控制器寄存器的方法,提供了根据本专利技术第七方面的第六访问NMVe控制器寄存器的方法,还包括:所述CPU将所述寄存器访问消息的处理结果发送给所述访问请求的发出方。根据本专利技术的第一方面的第一访问NMVe控制器寄存器的方法,提供了根据本专利技术第一方面的第八访问NMVe控制器寄存器的方法,其中所述寄存器访问消息还包括访问类型,访问类型指示要对控制器寄存器进行读取还是写入。根据本专利技术的第二方面,提供了根据本专利技术第二方面的第一访问NMVe控制器寄存器的方法,包括:识别访问存储器寄存器(MemoryRegisters)的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器;生成NVMe控制器寄存器访问消息并将NVMe控制器寄存器访问消息发送给CPU,其中所述NVMe控制器寄存器访问消息包括控制器寄存器空间地址。根据本专利技术的第二方面的第一访问NMVe控制器寄存器的方法,提供了根据本专利技术第二方面的第二访问NMVe控制器寄存器的方法,所述CPU响应于收到NVMe控制器寄存器访问消息,依据所述NVMe控制器寄存器访问消息的控制器寄存器空间地址识别所访问的NVMe控制器寄存器的类型,并依据NVMe协议定义的所述类型的NVMe控制器寄存器的访问方式,处理所述NVMe控制器寄存器访问消息。根据本专利技术的第二方面的第一或第二访问NMVe控制器寄存器的方法,提供了根据本专利技术第二方面的第三访问NMVe控制器寄存器的方法,还包括:若所述访问请求访问门铃寄存器,依据所述访问请求,访问存储器中同所述访问请求的控制器寄存器空间地址相对应的区域,而不向所述CPU发送NVMe控制器寄存器访问消息。根据本专利技术的第二方面的第一或第二访问NMVe控制器寄存器的方法,提供了根据本专利技术第二方面的第四访问NMVe控制器寄存器的方法,还包括:所述CPU响应于收到NVMe控制器寄存器访问消息,依据所述NVMe控制器寄存器访问消息的控制器寄存器空间地址识别要访问门铃寄存器,依据所述控制器寄存器空间地址存储器。根据本专利技术的第三方面,提供了根据本专利技术第三方面的第一访问NMVe控制器寄存器的方法,包括:识别访问存储器寄存器(MemoryRegisters)的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器本文档来自技高网
...
NVMe配置空间实现方法与装置

【技术保护点】
一种访问NMVe控制器寄存器的方法,包括:识别访问PCIe设备的存储器空间的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器,其中NVMe控制器寄存器包括第一类寄存器、门铃寄存器和/或设备商专用寄存器,其中第一类寄存器占据存储器寄存器空间的预定范围;若所述访问请求访问第一类寄存器,生成寄存器访问消息并将寄存器访问消息发送给CPU,其中所述寄存器访问消息包括控制器寄存器地址。

【技术特征摘要】
1.一种访问NMVe控制器寄存器的方法,包括:识别访问PCIe设备的存储器空间的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器,其中NVMe控制器寄存器包括第一类寄存器、门铃寄存器和/或设备商专用寄存器,其中第一类寄存器占据存储器寄存器空间的预定范围;若所述访问请求访问第一类寄存器,生成寄存器访问消息并将寄存器访问消息发送给CPU,其中所述寄存器访问消息包括控制器寄存器地址。2.根据权利要求1所述的方法,还包括:若所述访问请求访问门铃寄存器,依据所述访问请求的地址,访问所述PCIe设备的存储器。3.根据权利要求1-2之一所述的方法,还包括:所述CPU响应于收到寄存器访问消息,依据所述寄存器访问消息的控制器寄存器地址识别所访问的第一类寄存器的类型,并依据NVMe协议定义的所述类型的第一类寄存器的访问方式,处理所述寄存器访问消息。4.一种访问NMVe控制器寄存器的方法,包括:识别访问存储器寄存器(MemoryRegisters)的访问请求;根据所述访问请求的地址确定所述访问请求访问NVMe控制器寄存器;生成NVMe控制器寄存器访问消息并将NVMe控制器寄存器访问消息发送给CPU,其中所述NVMe控制器寄存器访问消息包括控制器寄存器空间地址。5.根据权利要求4所述的方法,还包括:所述CPU响应于收到NVMe控制器寄存器访问消息,依据所述NVMe控制器寄存器访问消息的控制器寄存器空间地址识别所访问的NVMe控制器寄存器的类型,并依据NVMe协议定义的所述类型的NVMe控制器寄存器的访问方式,处理所述NVMe控制器寄存器访问消息。6.根据权利要求4-5之一所述的方法,还包括:若所述访问请求访问门铃寄存器,依据所述访问请求,访问存储器中同所述访问请求的控制器寄存器空间地址相对应的区域,而不向所述CPU发送NVMe控制...

【专利技术属性】
技术研发人员:王晨阳
申请(专利权)人:北京忆芯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1