PCIe固态硬盘控制器、基于PCIe的存储系统及其数据读写方法

文档序号:9787124阅读:859来源:国知局
PCIe固态硬盘控制器、基于PCIe的存储系统及其数据读写方法
【技术领域】
[0001]本发明属于数据存储技术领域,特别涉及一种PCIe固态硬盘控制器、基于PCIe的存储系统及其数据读写方法。
【背景技术】
[0002]随着大数据时代到来,各行各业对数据存储的需求呈爆炸式的增长。基于PCIe接口的固态硬盘,由于其接口速度上的优势,已经逐渐成为各类计算机系统的标准存储设备。
[0003]如图1所示,现有的基于PCIe接口的固态硬盘包括一个PCIe固态硬盘控制器2和若干存储芯片3(通常为FLASH闪存芯片),其中PCIe固态硬盘控制器2包括PCIe控制接口 4、CPU7、FLASH控制器8、DMA模块9和缓存1,所述PCI e控制接口 4的上行端口与主机I相连,所述PCIe控制接口 4均与CPU7相连,所述CPU7还通过FLASH控制器8与存储芯片3相连,所述CPU7还分别与DMA模块9和缓存10相连,所述缓存10通过DMA模块9和PCIe控制接口 4相连。其中PCIe控制接口 4完成标准PCIe协议控制功能,CPU7负责处理主机I的命令,完成读写数据搬移的控制,DMA模块9进行读写数据搬移,FLASH控制器8实现对存储芯片3的读写控制,缓存1用于暂存待读写的数据以及CPU7运行时的数据和变量。
[0004]现有的基于PCIe接口的固态硬盘的数据读写方法包括:主机I通过PCIe控制接口4将读/写命令发送给CPU7,由CPU7解析该命令,如果是读命令,则CPU7请求FLASH控制器8把存储芯片3中的数据搬到缓存10内,然后CPU7请求DMA模块9将缓存10内的数据通过PCIe控制接口 4发送到主机I的内存,最后CPU7将完成本条命令的响应通过PCIe控制接口 4发送到主机I的内存,本条命令完成;如果是写命令,则CPU7请求DMA模块9将主机I的内存中的数据通过PCIe控制接口 4搬移到缓存10,然后通知FLASH控制器8将数据从缓存10读出并写入存储芯片3,最后CPU7将完成本条命令的响应通过PCIe控制接口 4发送到主机I的内存,本条命令完成。
[0005]现有的基于PCIe接口的固态硬盘由于受限于PCIe固态硬盘控制器2的处理能力以及存储芯片3中的NAND Flash颗粒特性,一个PCIe固态硬盘容量一般只能达到2T字节,其读写性能也不能完全匹配PCIe最大接口速率,远远小于PCIe3.0的传输速度,在某些应用场合其容量和性能仍然不能满足需求,容量有待扩大、性能有待提升。
[0006]专利申请号为201310476647.7的中国专利申请公开了一种基于PCIe的存储扩展系统及存储扩展方法,将多个存储设备通过级联的方式连接。该方法虽然可以扩展存储容量,但是由于多个级联设备不能够同时工作,所以性能得不到提升。

【发明内容】

[0007]本发明的目的在于解决现有技术中基于PCIe接口的固态硬盘容量和性能有限的问题,提供一种PCIe固态硬盘控制器、基于PCIe的存储系统及其数据读写方法。
[0008]为解决上述技术问题,本发明所采用的技术方案是: 一种PCIe固态硬盘控制器,包括PCIe控制接口、CPU、FLASH控制器、DMA模块和缓存,所述PCIe控制接口的上行端口与主机相连,所述CPU通过FLASH控制器与存储芯片相连,所述CPU还分别与DMA模块和缓存相连,所述缓存通过DMA模块和PCIe控制接口相连,其中PCIe控制接口完成标准PCIe协议控制功能,CPU负责处理主机命令,完成读写数据搬移的控制,DMA模块进行读写数据搬移,FLASH控制器实现对存储芯片的读写控制,缓存用于暂存待读写的数据以及CPU运行时的数据和变量。还包括收发控制模块和命令/响应转发模块,所述PCIe控制接口的下行端口通过收发控制模块与CHJ相连,所述收发控制模块通过命令/响应转发模块与PCIe控制接口相连;所述CPU将所述PCIe固态硬盘控制器配置为主控制器或从控制器;
若所述PCIe固态硬盘控制器被配置为主控制器,则所述PCIe固态硬盘控制器被主机侧驱动识别为存储设备,主机的命令通过PCIe控制接口和收发控制模块发送至CPU后,CPU首先判断命令是否需要转发出去,若PCIe固态硬盘控制器能独立执行完成该命令,则不转发该命令,由PCIe固态硬盘控制器执行完成该命令,当该命令执行完成后,由CPU将执行完成该命令的响应依次通过收发控制模块和PCIe控制接口发送至主机;若PCIe固态硬盘控制器不能独立执行完成该命令,则CPU将该命令依次通过收发控制模块、命令/响应转发模块和PCIe控制接口转发至外部PCIe设备,当外部PCIe设备执行完成该命令后,外部PCIe设备将执行完成该命令的响应依次经过PCIe控制接口、命令/响应转发模块和收发控制模块发送至CPU,再由CPU将响应依次通过收发控制模块和PCIe控制接口发送至主机;
若所述PCIe固态硬盘控制器被配置为从控制器,则所述PCIe固态硬盘控制器被主机侧驱动识别为PCIe设备,外部存储设备转发的主机命令依次通过PCIe控制接口、命令/响应转发模块和收发控制模块发送至CPU,由PCIe固态硬盘控制器执行完成该命令,当该命令执行完成后,由CPU将执行完成该命令的响应依次通过收发控制模块、命令/响应转发模块和PCIe控制接口发送至外部存储设备。
[0009]作为一种优选方式,所述收发控制模块包括第一支路和第二支路,所述第一支路包括接收控制状态机和接收FIFO,所述接收控制状态机的输入端与命令/响应转发模块及PCIe控制接口的PCIe接收接口相连,所述接收控制状态机的输出端通过接收FIFO与CPU的CPU接收接口相连;所述第二支路包括发送控制状态机和发送FIFO,所述CPU的CPU发送接口通过发送FIFO与发送控制状态机的输入端相连,所述发送控制状态机的输出端分别与命令/响应转发模块及PCIe控制接口的PCIe发送接口相连;所述接收控制状态机用于控制命令或响应的接收,所述发送控制状态机用于控制命令或响应的发送;所述接收FIFO用于暂存PCIe固态硬盘控制器接收进来的命令或响应,所述发送FIFO用于暂存PCIe固态硬盘控制器发送出去的命令或响应;
若所述PCIe固态硬盘控制器被配置为主控制器,则主机的命令依次通过PCIe控制接口的PCIe接收接口、接收控制状态机和接收FIFO发送至CPU,CPU首先判断命令是否需要转发出去,若PCIe固态硬盘控制器能独立执行完成该命令,则不转发该命令,由PCIe固态硬盘控制器执行完成该命令,当该命令执行完成后,由CPU将执行完成该命令的响应依次通过发送FIFO、发送控制状态机和PCIe控制接口的PCIe发送接口发送至主机;若PCIe固态硬盘控制器不能独立执行完成该命令,则CPU将该命令依次通过发送FIFO、发送控制状态机、命令/响应转发模块和PCIe控制接口转发至外部PCIe设备,当外部PCIe设备执行完成该命令后,夕卜部PCIe设备将执行完成该命令的响应依次经过PCIe控制接口、命令/响应转发模块、接收控制状态机和接收FIFO发送至CPU,再由CPU将响应依次通过发送FIFO、发送控制状态机和PCIe控制接口的PCIe发送接口发送至主机;
若所述PCIe固态硬盘控制器被配置为从控制器,则外部存储设备转发的主机命令依次通过PCIe控制接口、命令/响应转发模块、接收控制状态机和接收FIFO发送至CPU,由PCIe固态硬盘控制器执行完成该命令,当该命令执行完成后,由CPU将执行完成该命令的响应依次通过发送FIFO、发送控制状态机、命令/响应转发模块和PCIe控制接口发送至外部存储设备。
[0010]作为一种优选方式,所述命令/响应转发模块包括路由消息组帧模块和路由消息解帧模块;所述路由消息组帧模块的输入端与收发控制模块相连,路由消息组帧模块的输出端与PCIe控制接口相连;所述路由消息解帧模块的输入端与PCIe控制接口相连,路由消息解帧模块的输出端与收发控制模块相连;所述路由消息组帧模块将收发控制模块发送过来的命令/响应组帧后发送至PCIe控制接口 ;所述路由消息解帧模块将PCIe控制接口发送过来的命令/响应解帧后发送至收发控制模块。
[0011]作为一种优选方式,所述命令/响应转发模块包括路由消息组帧模块和路由消息解帧模块;所述路由消息组帧模块的输入端与发送控制状态机的输出端相连,路由消息组帧模块的输出端与PCIe控制接口相连;所述路由消息解帧模块的输入端与PCIe控制接口相连,路由消息解帧模块的输出端与接收控制状态机的输入端相连;所述路由消息组帧模块将发送控制状态机发送过来的命令/响应组帧后发送至PCIe控制接口;所述路由消息解帧模块将PCIe控制接口发送过来的命令/响应解帧后发送至接收控制状态机。
[0012]基于同一个发明构思,本发明还提供了一种基于PCIe的存储系统,包括PCIeswitch和N个所述的PCIe固态硬盘控制器,其中PCIe switch的上行端口与主机相连,所述N个PCI e固态硬盘控制器均与PCI e swi tch的下行端口相连,所述N个PCI e固态硬盘控制器由I个被配置为主控制器的PCIe固态硬盘控制器和N-1个被配置为从控制器的PCIe固态硬盘控制器组成,其中主控制器和各个从控制器与相同数量的存储芯片相接,各个存储芯片之间组合成RAID。
[0013]基于同一个发明构思,本发明还提供了一种数据读写方法,利用所述的基于PCIe的存储系统,包括步骤:
A.主机的命令依次通过PCIeswitch、主控制器中的PCIe控制接口和收发控制模块发送至主控制器中的CPU后,主控制器中的CPU根据该命令的地址、长度信息,以及主控制器与从控制器组成的RAID模式,计算该条命令需要由主控制器和哪些从控制器来完成,若主控制器能独立执行完成该命令,则不转发该命令,由主控制器执行完成该命令,当该命令执行完成后,由主控制器中的CPU将执行完成该命令的响应依次通过主控制器中的收发控制模块、PCIe控制接口和PCIe switch发送至主机,数据读写过程结束;若主控制器不能独立执行完成该命令,执行步骤B ;
B.主控制器中的CPU将该命令依次通过主控制器中的收发控制模块、命令/响应转发模块、PCIe控制接口和PCIe switch转发至相应的从控制器的PCIe控制接口,并经由从控制器的命令/响应转发模块、收发控制模块至从控制器的CPU,由从控制器执行完成该命令,当从控制器执
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1