新闻中心

EEPW首页 > 网络与存储 > 设计应用 > 用NiosII搭建的固态盘设备系统

用NiosII搭建的固态盘设备系统

作者:北京航空航天大学 杨鑫 刑小地 徐伟俊 夏宇闻时间:2008-07-10来源:单片机与嵌入式系统应用收藏

  引言

本文引用地址:http://www.eepw.com.cn/article/85542.htm

  随着电子技术的发展,人们不断地追求更好的新型存储设备。目前海量存储领域中的主流产品非莫属,而则被认为是一种最有可能取代的全新解决方案。与相比,其主要的优势在于能够达到更高速度、更小体积、更低功耗、更小噪声、更高可靠性,同时与硬盘一样使用方便。

  广义上讲,设备包括所有使用半导体芯片作为存储介质的存储设备,例如使用动态RAM存储数据的某些特定设备,或是CF/SD/MMC卡等同样使用存储数据但使用了其他接口的存储设备;但狭义上讲,仅指使用NAND型存储数据,使用/S/SCSI等接口,在行为上与硬盘完全一致的存储器。在下文中,固态盘一词仅指狭义上的固态盘。本文介绍的是一种使用接口的固态盘的实现方法。

  1 系统设计

  系统对外的主要功能是通过ATA接口完成数据的读/写,与NAND型芯片间的数据交换是通过缓存来完成的,对闪存芯片的读/写操作由系统内部完成。

  ATA协议中含有专门针对闪存而设计的CFA指令部分,包含了闪存擦写等指令内容,CF(Compact Flash)卡即使用了该命令集;而普通硬盘使用的ATA接口一般不使用该命令集,操作中只涉及数据的读/写操作和一些辅助特性的设置。因此在固态盘设计中不能利用CFA指令将ATA接口直接转接至闪存接口,必须在系统内部自动处理与闪存相关的操作,即通过系统的内部处理向上隐藏这一操作细节。

  可以在系统中通过数据缓存来把ATA端操作和闪存端操作分离开来,这样就可以方便地解决传输协议的转换和管理问题。基于这种设计思路,综合考虑闪存的管理、与ATA协议的衔接等问题,可以将实现系统时的主要问题归结为如下两个方面:

  ① 数据缓存管理,主要面对与主机端数据交换如何发生的问题,包括缓存数据的建立、查询、维护、失效、销毁等问题。

  ② 数据存储管理,主要面对数据在闪存中的物理存储问题,包括均衡磨损、坏块映射等问题。

  由此得到的系统逻辑结构框图如图1所示。

图1 固态盘设备系统逻辑结构框图

  在具体的实现中,系统使用独立的硬件接口完成ATA接口控制和NAND型闪存控制;使用大容量SDRAM芯片作为数据缓存,由Nios处理器负责调度数据流;使用Avalon总线连接所有模块,提供快速响应的控制连接和高带宽的数据连接。

  在Nios上运行的软件负责所有组件的控制。由于需要确保响应时间,软件中不使用包括实时操作系统在内的任何嵌入式操作系统,所有软件直接贴近硬件事件设计,重要事件采用中断响应,普通事件采用轮询响应。

  2 系统硬件设计

  系统采用SOPC的设计方式,使得硬件系统获得相当高的灵活度;而将所有控制逻辑集成在一个FPGA内部的设计方法,在增强了系统可靠性的同时,也降低了对外部板级电路的设计要求。系统除FPGA芯片以外,还使用了数据存储用NAND型闪存芯片、缓存用SDRAM、ATA接口连线以及Nios程序的代码存储/运行的相关芯片。

  2.1 Nios系统简介

  一个基于Nios的SOPC系统主要包括Nios处理器、Avalon总线结构和其他通过总线互连的组件模块。

  Nios处理器主要分为两代,即Nios处理器和处理器。现在广泛使用的是处理器,下文均是针对处理器。最新的Avalon总线标准是一套拥有AvalonMM和AvalonST两套分支标准的SOPC总线规范。下文中Avalon总线一词泛指这两套规范。在Altera提出的SOPC设计概念当中,两者将分别用于不同的数据应用,因此两者的基本结构差异很大:AvalonMM接口是一套互联式总线接口,主要用于多节点的互联;而AvalonST接口是一种单向点对点的接口,主要用于单向高速数据流的传输。在SOPC设计中,可以针对不同需求将二者结合起来使用,以提高设计的工作性能。由于AvalonST接口是最近刚刚提出的,目前广泛使用的是AvalonMM接口,在一般设计中,完全能够提供足够的传输带宽。

  2.2 硬件平台结构

  硬件系统即FPGA内部基于NiosII处理器的SOPC系统,包括ATA控制器、NAND型闪存控制器、DMA控制器、2个SDRAM控制器、CFI接口闪存控制器以及其他辅助组件等,其结构框图如图2所示。

图2 固态盘设备硬件系统结构

  在该结构中,使用一块SDRAM作为NiosII处理器的程序运行空间,使用一块CFI接口的闪存作为NiosII处理器的软件代码的存储空间,其他I/O和其他组件包括了定时器、调试端口以及用于显示系统状态的PIO端口等。总线DMA控制器用于完成NAND型闪存与缓存空间之间的数据交换。ATA控制器则负责ATA接口的实现,并根据配置参数利用自带的DMA控制器直接完成与缓存之间的数据交换。NiosII处理器通过控制总线DMA控制器和ATA控制器来管理整个系统的数据流,实现灵活的管理策略。


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭