发明名称 一种PCI-E接口固态硬盘控制器的设计方法
摘要 本发明提供一种PCI-E接口固态硬盘控制器的设计方法,固态硬盘控制器整体设计采用SOC架构,所有功能由FPGA完成。采用嵌入式处理器软核作为主控制器,利用FPGA IP核,并设计实现NAND FLASH ONFi控制器。PCI-E控制器核作为高速串行传输接口,实现高速传输。嵌入式处理器模块负责NAND Flash的读写控制与SCSI协议命令之间的转换,提高访问效率。控制器完成NAND FLASH存储管理和纠错算法。对于主机端的文件系统而言,固态硬盘控制器作为基于块的NAND文件系统结构,具有结构简单和通用性高的特点,具备可编程、设计灵活性、设计周期短、可在线升级和二次开发等优点,拥有快的构建方式,较低的实现成本。SCSI的通用性和兼容性,可以作为普通盘符,即插即用。
申请公布号 CN102929813B 申请公布日期 2016.06.01
申请号 CN201210399068.2 申请日期 2012.10.19
申请人 浪潮电子信息产业股份有限公司 发明人 张峰;陈继承
分类号 G06F13/16(2006.01)I 主分类号 G06F13/16(2006.01)I
代理机构 代理人
主权项 一种PCI‑E接口固态硬盘控制器的设计方法, 包括主机端和固态硬盘控制器端,其特征在于,所有功能由FPGA完成,主机端与固态硬盘控制器端使用SCSI协议报文互通,SCSI协议通过PCI‑E总线报文进行传输,固态硬盘控制器PCI‑E接口作为高速串行传输模块,实现与主机端的信息高速传输,设计步骤如下:1)固态硬盘控制器端整体设计采用SOC架构,FPGA中各模块使用AHB总线互联,重要的模块有处理器模块,ONFi控制器模块,传输模块,其中:处理模块采用嵌入式处理器软核作为主控制器,负责PCI‑E端口的SCSI协议报文完成信息的分发与聚合,即处理器软核拆分SCSI报文,并使用PCI‑E传输协议将SCSI内容分发至远端的PCI‑E接收端;另一方面处理器软化收到远端通过PCI‑E传输来的信号,并依照SCSI格式聚合组装报文; ONFi控制器模块实现NAND FLASH ONFi控制器对NAND固态存储芯片的读写操作,ONFi控制器模块通过RAID数据冗余保护机制来保护存储数据和进行相应的热点控制和纠错处理;ONFi控制器模块同时可连接多个NAND FLASH存储单元,并下达读写入命令以及控制时序,ONFi通过负责控制多个NAND FLASH存储单元的完成读写操作,提高访问效率;传输模块将SCSI报文进行解析,通过分发调度ONFi控制器写入到NAND芯片中存储,传输模块还通过 “热点均衡”技术来均衡写入负载,避免在固态硬盘内部造成频繁写入的“热点”,“热点均衡”是指使用衡算法避免频繁写入某一个固定区域,将数据匀的分散在整个存储空间的调度方式;2)对于NAND文件系统的层次结构分为主机端和固态硬盘SOC端,主机端负责应用层事务、文件系统、块设备转换,并将PCI‑E接口的固态硬盘当作一个SCSI接口设备,通过SCSI协议进行访问,PCI‑E传输链路上传输SCSI协议,固态硬盘SOC端负责NAND Flash的读写控制与SCSI协议命令之间的转换,其中:<b>主机端</b>主机端负责应用层事务处理,维护自身文件系统,并将PCI‑E接口的固态硬盘系统视为外接的SCSI设备进行访问;<b>(</b><b>1</b><b>)应用层:</b>提供文件读写访问,为用户在Host机器上读、写文件提供通用接口服务,应用层访问的是逻辑文件结构;<b>(</b><b>2</b><b>)文件系统层:</b>对文件存储器空间进行组织和分配,负责文件的存储并对存入的文件进行保护和检索的系统,具体地说,它负责为用户建立文件、存入、读出、修改、转储文件和控制文件的存取,当用户不再使用时撤销文件,将应用层的写指令转换为设备号、块号、块内容的信息,并将这些信息发送到相应的块设备中,同时读取块设备信息,根据文件系统索引提供文件读服务,访问方法允许对SCSI设备进行统一的处理,而不考虑它们在系统中的物理连接,在保存文件时,文件系统并不关心逻辑驱动器是一个SCSI单元、一个Fibre Channel阵列还是千兆以太网的某个IP存储设备或逻辑实体;逻辑实体和物理存储的映射完成主机系统和合适的目标SCSI命令的发送,它在二者之间用来传输数据块,SCSI 实现了一种客户机/服务器风格的通信架构,发起者向目标设备发送命令请求,该目标处理此请求并向发起者返回响应,发起者是托管计算机中的一个 SCSI 设备,而 SCSI 目标则是一个磁盘、光盘和磁带设备或特殊设备;<b>(</b><b>3</b><b>)块设备层:</b>块设备层将SCSI报文转换为PCI‑E报文进行传输,具体的物理层互连方式,这是关于接口的一些细节处理,如电子信号方法和数据传输模式;<b>固态硬盘端</b>这是PCI‑E接口的固态硬盘端,由片上系统维护协议转换、块分配、芯片读写控制和加密算法,共分为四层结构:<b>(</b><b>1</b><b>)设备接口层:</b>负责SCSI报文通过PCI‑E传输后的转化,并实现传输控制;<b>(</b><b>2</b><b>)应用层:</b>将主机端的SCSI协议设备块号与SOC端NAND的块号进行映射,负责进行均衡算法、坏块管理、RAID算法的算法调度,进行ECC校验算法纠错,执行算法加密,用户控制的功能;<b>(</b><b>3</b><b>)文件系统层:</b>支持SOC上的嵌入式操作系统,支持应用层调度,支持SOC中文件和算法数据资源的存储需求,一级将该文件系统和对应的存储空间单独存储与NAND存储阵列隔离;<b>(</b><b>4</b><b>)块设备层:</b>负责执行NAND Flash Controller的读写擦除时序,应用层调度的设备读写经由块设备层进行相应操作,在最低层的是一组NAND控制器,每个NAND 控制器都提供了到底层硬件的接口,使用中间层的接口是一组标准接口,低层包含大量代码,原因是它要负责处理各种不同的NAND Flash读写擦除指令操作。
地址 250014 山东省济南市高新区舜雅路1036号