CN108121672A - 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 - Google Patents
一种基于NandFlash存储器多通道的存储阵列控制方法与装置 Download PDFInfo
- Publication number
- CN108121672A CN108121672A CN201710668545.3A CN201710668545A CN108121672A CN 108121672 A CN108121672 A CN 108121672A CN 201710668545 A CN201710668545 A CN 201710668545A CN 108121672 A CN108121672 A CN 108121672A
- Authority
- CN
- China
- Prior art keywords
- data
- nandflash
- flash
- sata
- controller
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 24
- 230000002093 peripheral effect Effects 0.000 claims abstract description 10
- 230000005540 biological transmission Effects 0.000 claims description 38
- 238000005516 engineering process Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 17
- 230000006870 function Effects 0.000 claims description 16
- 230000015654 memory Effects 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 5
- 238000007688 edging Methods 0.000 claims description 3
- 238000005192 partition Methods 0.000 claims description 3
- 230000000717 retained effect Effects 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims 1
- 230000037431 insertion Effects 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 4
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 abstract description 3
- 239000007787 solid Substances 0.000 description 16
- 238000013461 design Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 15
- 238000003491 array Methods 0.000 description 8
- 238000011161 development Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- LHMQDVIHBXWNII-UHFFFAOYSA-N 3-amino-4-methoxy-n-phenylbenzamide Chemical compound C1=C(N)C(OC)=CC=C1C(=O)NC1=CC=CC=C1 LHMQDVIHBXWNII-UHFFFAOYSA-N 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000010835 comparative analysis Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1673—Details of memory controller using buffers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明提供一种基于NandFlash存储器多通道的存储阵列控制装置,包括嵌入式微处理器,通过片内高速互联总线将各个外设模块与嵌入式微处理器连接,所述外设模块包括SATA控制器、NandFlash控制器、DDR2 SDRAM控制器、JTAG调试接口、AHB/APB bridge、密码算法模块、DMA控制器、片上RAM控制器、SPI flash控制器,AHB/APB bridge将片内高速互联总线与片内低功耗互联总线相连接,所述片内低功耗互联总线上连接有中断控制器、定时器、看门狗、串口、GPIO,从而构建一个完整的片上系统。控制方法是基于流水线架构和全连接并行架构进行设计,实现了多通道并行和流水的操作,充分利用了Flash接口的访问带宽,进而提升了系统性能。
Description
技术领域
本发明涉及存储技术领域,具体涉及一种基于NandFlash存储器多通道的存储阵列控制方法与装置。
背景技术
计算机总线技术和半导体存储技术促进了高速数据存储器的飞速发展和日渐成熟。近年来,在传输速率方面,电子技术的飞速发展促使了物联网、云计算和大数据测试了高速串行总线的发展,传统的并行传输技术已经成为提高数据传输速率的瓶颈。串行总线现常用的有USB接口技术、千兆/万兆以太网通信技术、光纤接口技术、PCI-E总线技术等。最新的USB3.0接口传输速率可以达到5Gb/s,以太网、光纤接口传输速率也可以达到万兆以上,PCI-E总线单通道的速率已提高到了2.5Gb/s,最高达到32通道,其速度之快、可靠性高等优点使其广泛地应用于显卡、数据记录器等高速设备。
存储设备按照存储介质主要可分为磁介质和半导体存储介质,其中后者又包括易失型固态介质(RAM)及非易失型固态介质(FLASH)两种类型。目前,单片NAND Flash的容量有限,理想的最大速度为40MB/s,远远不能满足存储系统中大容量、高速度的需求。所以目前固态盘产品中普遍使用的技术是将多块芯片集成在一起,以控制多个芯片并行进行读写操作,既能扩大整个固态硬盘的容量,又能显著提高固态硬盘的读写速度。因此,现在更多的设计与研究人员,关注于多个Flash器件的管理与设计架构,提出了许多Flash阵列的管理技术。如流水线技术、多Flash阵列的控制线共用技术、Two-Plane操做技术和多通路并行读写技术等。更多的设计者是将流水线技术,数据线位宽扩展技术以及全连接方式组合起来使用。同时使用流水线技术,在一个芯片页编程时,对其他芯片进行相应的操作,重叠页编程时间,达到高速流水的目的。但这种方法由于使用了位扩展,对4个芯片进行了绑定,一旦其中的某一芯片出现错误,会导致整个操作错误,大大增加了出错率,而且该架构也不支持随机读写操作,小写的效率较低。
针对目前Flash阵列架构普遍存在的扩展性差,兼容不足,以及读写性能和容量都有限等问题,本发明通过对比分析多种可行性的多通道架构,涉及提出一种基于NandFlash存储器多通道的存储阵列架构,从而提升Flash阵列整体的容量与速度。
发明内容
本发明提供了一种基于NandFlash存储器多通道的存储阵列控制方法与装置,解决了提升Flash阵列整体的容量与速度的问题。
目前来说,单片Flash颗粒的容量有限,速度也有限,远远无法满足大容量高速度的存储需求,为了最大限度地提升系统整体的容量和速度,需要对原来的单个Flash颗粒的控制器的架构进行重新设计,从而提升整体的容量和速度。
NandFlash有许多外围引脚,根据用途将它们分为控制引脚,片选引脚,I/O数据引脚,以及电源相关的引脚。对于Flash控制器来言,主要通过控制引脚,片选引脚以及I/O数据引脚实现与芯片的交互。通过研究引脚的不用复用和优缺点,尤其是控制信号、片选信号以及数据信号引脚的复用方式,设计出适用于NandFlash的多通道架构。
对于Flash间只共用数据引脚的架构,能够大大减少系统的外围引脚数目,一定程度上能增加系统的总的芯片数量和容量。但是由于该架构只共用了数据线,因此每次只能对某一个Flash进行操作,同时由于单个Flash的I/O一般只有8位宽,单路I/O位宽读写能力有限。
对于Flash间只共用控制引脚的架构,也能够较少系统外围控制引脚的数据,它不仅可以对单个Flash进行操作,由于片选信号的独立,可实现流水线操作,对多个Flash同时操作。但是由于当对单个Flash进行操作,器件有相当长的忙状态,此时数据信号经常处理空闲状态,没有得到充分的利用,系统的读写性能就较低。与共用数据信号线相比,此架构性能较差,复用的引脚数目也相对较少。如果对多个芯片同时操作,数据端口也可以复用,进一步减少引脚数目。
对于Flash间只共用片选引脚的架构,由于数据线的数据不同,相当于每次执行了多次读写操作。如果处理的数据量较大,有很好的效果,而当所操纵的数据量较小、较零散时,系统性能将会变的很差。由于片选信号的引脚较少,复用后所减少的引脚数目并不明显,但带来的缺点较多,因此该方案的可行性意义不大。
针对上述架构存在的问题,目前一般是采用Flash间共用数据引脚和控制引脚的架构,根据Flash阵列流水线技术的特点,即在一个Flash器件开始工作的同时,启动下一级存储单元的数据加载,形成流水线式的数据传输过程。在时间上实现数据总线的复用,缩短flash阵列的等效操作时间,最大限度地减少单个Flash占用总线时间,使得整体Flash阵列读写速度得到提升。
在此基础上,由于该架构存在I/O位宽有限的问题,本发明拟采用多通道的NandFlash阵列架构,基于流水线架构和全连接并行架构进行设计,实现了多通道并行和流水的操作,充分利用了Flash接口的访问带宽,进而提升了系统性能。其技术方案如下所述:
一种基于NandFlash存储器多通道的存储阵列控制装置,包括嵌入式微处理器,通过片内高速互联总线将各个外设模块与嵌入式微处理器连接,所述外设模块包括SATA控制器、NandFlash控制器、DDR2 SDRAM控制器、JTAG调试接口、AHB/APB bridge、密码算法模块、DMA控制器、片上RAM控制器、SPI flash控制器,AHB/APB bridge将片内高速互联总线与片内低功耗互联总线相连接,所述片内低功耗互联总线上连接有中断控制器、定时器、看门狗、串口、GPIO,从而构建一个完整的片上系统;具体包括如下模块:
微处理器:龙芯LS232微处理器,MIPS指令系统,32位,32KB一级高速缓存,64位浮点处理单元;
AHB BUS:片内高速互联总线;
AHB/APB bridge:片内高速互联总线到低速互联总线的转换桥;
APB BUS:片内低功耗互联总线;
JTAG调试接口:在线硬件调试支持模块;
SATA控制器:主机系统和盘控芯片之间的接口;
NandFlash控制器:NandFlash存储器和盘控芯片之间的接口;
DMA控制器:用于大数据量加解密操作时的数据流控制;
DDR2 SDRAM控制器:提供盘控芯片与DDR2 SDRAM存储器之间的接口;
SPI flash控制器:外部SPI flash存储器控制器;
On-chip RAM:片内RAM,容量为2Mbit,与片上RAM控制器相连接;
中断控制器:支持电平和边沿触发模式;
定时器:32位高精度定时器;
看门狗:32位的看门狗定时器;
串口:兼容16550;
GPIO:通用IO端口。
所述存储阵列控制装置位于主机SATA端到NandFlash存储芯片端之间,将主机发送的SATA命令进行解析,转换成NandFlash芯片的指令,将数据写入或读出NandFlash,完成固态盘和主机间的数据传输,在主机和存储阵列控制装置之间设置有读写缓存SDRAM。
存储阵列控制装置采用控制引脚与数据引脚同时共用的架构,能够同时控制多片NandFlash存储器;设置有多条Flash通道,对通道内部,使用流水线方式,在一片Flash器件工作时,对其他Flash进行读或写操作,在时间上实现数据总线的复用;在通道间,使用并行传输技术,各通道之间相互独立、互不影响,多个通道能够并发工作,同时实现了速度和容量的提升。
根据上述基于NandFlash存储器多通道的存储阵列控制装置的控制方法,包括如下操作,
初始化模块:负责上电时的硬件初始化;
SATA Driver:完成SATA命令的读取、解析、及寄存器配置,控制SATA命令处理流程;
NandFlash Driver:完成NandFlash数据处理及寄存器配置,控制NandFlash命令处理流程;
Flash地址映射及坏块管理:将主机访问的逻辑地址映射为Flash存储器的物理地址,并动态管理Flash介质在使用过程中出现的坏块,保证数据的可靠性;
缓存调度模块:将主机经常或最近访问的数据保留在缓存,提高缓存命中率,减少或延缓对Flash的读、写及擦除操作,提高访问速度;
Flash负载均衡:均衡选择Flash物理块的使用,避免某些块由于过多的擦除操作而损坏,从而降低使用过程中坏块的产生几率,延长固态盘的使用寿命;
安全防护管理:作为可扩展的功能,安全防护管理包括分区保护、日志管理、数据加解密、自毁功能。
进一步的,在固件程序加载完成后,首先执行各模块的初始化程序,对各硬件模块进行配置以及中断处理函数的注册,完成后进入循环等待状态,等待系统的中断信号;
此时,主机能够通过SATA命令访问固态盘,固态盘的SATA控制器在接到主机的命令后会产生中断信号,固件根据中断的类型进行相应处理;
主机对固态盘的访问总体上分为两种:数据传输命令和非数据传输命令,对于需要数据传输的命令,按传输的方向主要可以分为读和写两大类,处理时,固件需要解析出传输的方向(读/写)、传输长度、数据地址各相应信息,然后通过调用固件的Flash管理模块来对其访问的地址进行映射,最终得出所访问的Flash物理地址,最后,固件会根据读/写方向依次调用Flash控制器或SATA控制器内部的DMA来完成数据传输;
对于非数据传输的SATA命令,只需根据命令的要求对固态盘进行各项设置即可;在命令处理结束后,固态盘给主机返回状态,表明命令执行的结果。
进一步的,当主机发起读操作时:SATA控制器产生读中断请求;固件的SATA驱动模块捕获到该中断后,执行中断服务子程序,根据缓存调度算法,首先判断待读出的数据是否在缓存中,如果在缓存中,则无需发起NandFlash芯片的读操作,直接通过SATA控制器内部DMA传输,将缓存中的数据直接写入SATA控制器的FIFO,再由SATA控制器发送到SATA接口;否则,通过地址映射算法,查询到数据在Flash中的物理地址,然后对NandFlash控制器进行配置,启动对NandFlash芯片的读操作,将数据从NandFlash芯片读入NandFlash控制器FIFO,然后启动NandFlash内部DMA,把数据从NandFlash控制器FIFO先写到缓存中,再启动SATA控制器内部DMA,将缓存中的数据读到ATA控制器FIFO,最后发送到ATA接口,一次读操作完成。
进一步的,当主机发起写操作时:SATA控制器产生写中断请求;SATA驱动模块捕获该中断,在中断服务程序中对SATA命令进行解析,判断所写入的数据是否已在缓存中分配存储地址;如果已分配,则配置SATA控制器内部DMA,直接将该缓存地址中的原数据覆盖;否则,将数据写入为该数据新分配的一块存储地址,再通过地址映射算法查询到要写入NandFlash芯片的物理地址,启动NandFlash内部DMA传输,将缓存中的数据写入NandFlash控制器的FIFO,然后对NandFlash控制器进行配置,启动NandFlash芯片的写操作,将数据写到Flash芯片中,一次写操作完成。
为提高固态盘容量和数据传输率,改善NandFlash控制器写操作特性限制,本发明采用Flash间控制引脚与数据引脚同时共用的架构,设计实现的多通道NandFlash存储阵列控制单元,采用一种基于NandFlash存储器四通道的并行控制技术,能够同时控制多片NandFlash存储器,利用多通道读写控制技术,可有效提高安全固态盘整体读写性能,实现存储阵列模块化技术设计。
在控制引脚与数据引脚同时共用的架构中,通道内部使用流水线方式,在一片Flash器件工作时,对其他Flash进行读写等操作,在时间上实现数据总线的复用,缩短Flash阵列的等效操作时间,最大限度的减少单个Flash占用总线时间,使得整体Flash阵列读写速度得到提升;在通道间,使用并行传输技术,各通道之间相互独立、互不影响,多个通道可并发工作,同时实现了速度和容量的提升。
附图说明
图1是固态盘控制器数据读写连接框图;
图2是固态盘控制器结构框图;
图3是固态盘控制器软硬件划设计框图;
图4是NandFlash控制器架构图;
图5是存储阵列控制模块原理图。
具体实施方式
本发明提供的基于NandFlash存储器多通道的存储阵列控制方法与装置,首先对固态盘控制器进行描述。
1.固态盘控制器工作原理
固态盘控制器实现主机SATA(Serial Advanced Technology Attachment,中文为串行ATA接口规范)端到NandFlash存储芯片端的接口功能,它将主机发送的SATA命令进行解析,转换成NandFlash芯片的指令,将数据写入或读出NandFlash,完成固态盘和主机间的数据传输,如图1所示。
主机对固态盘的访问总体上分为两种:数据传输命令和非数据传输命令。对于需要数据传输的命令,固态盘控制器处理时,首先通过解析数据传输方向(读/写)、传输长度、数据地址等信息,调用固件的NandFlash管理模块来对其访问的地址进行映射和负载均衡优化,确定实际访问的NandFlash芯片的物理地址;然后,固件会根据读/写方向依次调用NandFlash控制模块或SATA控制模块内部的DMA(Direct Memory Access,中文:直接内存存取)数据传输控制模块,完成数据传输和主机与固态盘之间的信息交互。对于无数据传输的SATA命令,固件程序只需根据命令的要求对固态盘设置内部寄存器、缓存数据等,并向主机反馈相应信息。在命令处理结束后,固态盘给主机返回状态,表明命令执行的结果。
2.固态盘控制器架构
固态盘控制器以嵌入式微处理器为核心,通过片上系统总线将各个外设模块连接起来,包括SATA控制器IP核、NandFlash控制器IP核、SDRAM控制器IP核等,构建一个完整的片上系统,如图2所示。
本发明设计的盘控芯片包括如下功能模块:
微处理器:龙芯LS232微处理器,MIPS指令系统,32位,32KB一级高速缓存,64位浮点处理单元;
AHB BUS:片内高速互联总线;
AHB/APB bridge:片内高速互联总线到低速互联总线的转换桥;
APB BUS:片内低功耗互联总线;
JTAG调试接口:在线硬件调试支持模块;
SATA控制器:主机系统和盘控芯片之间的接口;
NandFlash控制器:NandFlash存储器和盘控芯片之间的接口;
DMA控制器:用于大数据量加解密操作时的数据流控制;
DDR2 SDRAM控制器:提供盘控芯片与DDR2 SDRAM存储器之间的接口;
SPI flash控制器:外部SPI flash存储器控制器;
On-chip RAM:片内RAM,容量为2Mbit;
中断控制器:支持电平和边沿触发模式;
定时器:32位高精度定时器;
看门狗:32位的看门狗定时器;
串口:兼容16550;
GPIO:通用IO端口。
3.固态盘控制器软硬件划分设计
为了使控制器能支持各种型号的NAND Flash,本发明提出一种软硬件划分方案,即用软件实现命令发送和地址发送,逻辑时序及数据传输时序则由硬件完成。软件代码由处理器执行指令,完成命令字和地址周期的写入,这样,控制器将不会像硬件方案那样受命令字的限制;同时由于使用硬件完成其余部分操作,特别是数据传输操作,保证了控制器的读写效率。
软/硬件划分的基本原则应该遵循高速、低功耗、通用性强由硬件实现;多品种、小批量、灵活性大由软件实现;处理器和专用硬件并用以提高处理速度和降低功耗。根据固态盘控制器的功能和性能要求,对其进行软/硬件划分,框图如图3所示。
其中,左侧框中的模块涉及处理器、通信协议解析、存储器接口等,对速度要求高,通用性强,由硬件实现;右侧框中的模块实现硬件初始化、SATA专有命令和扩展命令的解析、Flash地址映射及坏块管理算法、缓存调度算法、负载均衡算法、安全防护管理(可扩展功能,包括图中所有阴影模块)等,可用软件实现,提高系统的灵活性。
其中,硬件模块的功能如前所述,在此主要简述软件模块的功能。
初始化模块:负责上电时的硬件初始化;
SATA Driver(SATA驱动):完成SATA命令的读取、解析、及寄存器配置,控制SATA命令处理流程;
NandFlash Driver:完成NandFlash数据处理及寄存器配置,控制NandFlash命令处理流程;
Flash地址映射及坏块管理:将主机访问的逻辑地址映射为Flash存储器的物理地址,并动态管理Flash介质在使用过程中出现的坏块,保证数据的可靠性;
缓存调度模块:将主机经常或最近访问的数据保留在缓存,提高缓存命中率,减少或延缓对Flash的读、写及擦除操作,提高访问速度;
Flash负载均衡:均衡选择Flash物理块的使用,避免某些块由于过多的擦除操作而损坏,从而降低使用过程中坏块的产生几率,延长固态盘的使用寿命;
安全防护管理:作为一个可扩展的功能,安全防护管理包括分区保护、日志管理、数据加解密、自毁等功能。
4.控制器工作流程
固态盘控制器以嵌入式微处理器为核心,以片外DDR2 SDRAM为缓存,片外NORFlash(非易失闪存)为程序存储器,片外NandFlash的特定分区为数据存储器,在AMBA 2.0总线的互联下,构成了一个完整的嵌入式系统。上电时,首先由固态盘的复位电路实现硬件复位。复位完成后,由位于NOR Flash(非易失闪存)中的boot-loader(启动载入程序)将程序转存到DDR2 SDRAM中,微处理器从DDR2 SDRAM中开始执行固态盘的固件程序。
在固件程序加载完成后,程序便开始执行。程序首先执行各模块的初始化程序,对各硬件模块进行配置以及中断处理函数的注册。完成后程序进入循环等待状态,等待系统的中断信号。
此时,主机可以通过SATA命令访问固态盘,固态盘的SATA控制器在接到主机的命令后会产生中断信号,固件根据中断的类型进行相应处理。主机对固态盘的访问总体上分为两种:数据传输命令和非数据传输命令。对于需要数据传输的命令,按传输的方向主要可以分为读和写两大类。处理时,固件需要解析出传输的方向(读/写)、传输长度、数据地址等信息,然后通过调用固件的Flash管理模块来对其访问的地址进行映射,最终得出所访问的Flash物理地址。最后,固件会根据读/写方向依次调用Flash控制器或SATA控制器内部的DMA来完成数据传输。对于无数据传输的SATA命令,固件程序只需根据命令的要求对固态盘进行各项设置即可。在命令处理结束后,固态盘给主机返回状态,表明命令执行的结果。具体的数据流程如下:
(1)当主机发起读操作时:SATA控制器产生读中断请求。固件的SATA驱动模块捕获到该中断后,执行中断服务子程序,根据缓存调度算法,首先判断待读出的数据是否在缓存中,如果在缓存中,则无需发起NandFlash芯片的读操作,直接通过SATA控制器内部DMA传输,将缓存中的数据直接写入SATA控制器的FIFO(First Input First Output的缩写,先入先出队列),再由SATA控制器发送到SATA接口;否则,通过地址映射算法,查询到数据在Flash中的物理地址,然后对NandFlash控制器进行配置,启动对NandFlash芯片的读操作,将数据从NandFlash芯片读入NandFlash控制器FIFO(First Input First Output的缩写,先入先出队列),然后启动NandFlash内部DMA(Direct Memory Access,直接内存存取),把数据从NandFlash控制器FIFO先写到缓存中,再启动SATA控制器内部DMA,将缓存中的数据读到ATA控制器FIFO,最后发送到ATA接口,一次读操作完成。
(2)当主机发起写操作时:SATA控制器产生写中断请求。SATA驱动模块捕获该中断,在中断服务程序中对SATA命令进行解析,判断所写入的数据是否已在缓存中分配存储地址。如果已分配,则配置SATA控制器内部DMA,直接将该缓存地址中的原数据覆盖;否则,将数据写入为该数据新分配的一块存储地址,再通过地址映射算法查询到要写入NandFlash芯片的物理地址,启动NandFlash内部DMA传输,将缓存中的数据写入NandFlash控制器的FIFO,然后对NandFlash控制器进行配置,启动NandFlash芯片的写操作,将数据写到Flash芯片中,一次写操作完成。
以下以图4和图5中的具体实施例作为本发明的进一步介绍。
1.NandFlash控制器硬件部分设计
基于本发明依据的设计架构和多通道NandFlash读写控制方案,拟以龙芯LS232嵌入式微处理器为固态盘控制器的处理器开展具体实施。龙芯LS232系列处理器IP是面向嵌入式中端应用的低功耗双发射处理器。对于AMBA总线则选用ARM公司的AMBA2.0总线作为控制器内部总线,总线上各个模块采用统一的接口方式和总线连接,从而实现了模块开发的标准化,降低了开发的工作量。SATA接口控制器采用标准高速串行接口,主要包括物理层模块和控制器IP核两个部分。
由于NandFlash的接口比较简单,数据接口和命令接口是相同的,在对NandFlash的操作比较复杂,本发明设计专门的NandFlash控制器,提供标准的接口,使微处理器能方便地读写NandFlash。同时,考虑到NandFlash在存储时容易发生位翻转,从而导致存储数据的错误,需要加入ECC校验模块。NandFlash控制器的架构如图4所示。
主要模块及功能描述如下。
设备控制单元,根据控制器的状态和当前寄存器的值来控制其他模块的运转,主要任务是:为DMA控制器和寄存器接口提供使能信号;使能ECC(Error Correcting Code的简写,中文名称是错误检查和纠正)模块;为NandFlash控制单元提供控制信号;中断管理。
NandFlash控制单元,该模块负责产生与NandFlash芯片接口的信号。通过配置该单元可以被多次实例化,以满足对NandFlash芯片并行操作的需求。
FIFO,为其他模块提供FIFO队列接口。通过使用FIFO队列可以实现读写操作的并行处理,FIFO队列的一端是寄存器接口或者DMA,另一端总是NandFlash控制单元。
DMA控制器,负责在本地存储器与NandFlash控制器之间高速传输数据,DMA通过AHB主接口与外部相连。
寄存器接口,提供CPU与控制寄存器组和FIFO的接口,通过AHB从接口与CPU相连。
ECC单元,进行ECC校验码的计算以及检错和纠错。
物理接口,为新一代高速NandFlash提供DDR数据接口。
缓存,包括数据缓存和ECC缓存,设计成双口RAM形式。
2.四通道NandFlash存储阵列模块设计
为提高固态盘容量和数据传输率,改善NandFlash控制器写操作特性限制,设计NandFlash存储阵列控制单元,采用NandFlash存储器四通道并行控制技术,同时控制多片NandFlash存储器,利用多通道读写控制技术,提高安全固态盘整体读写性能,实现存储阵列模块化技术设计,NandFlash存储阵列控制单元设计如图5所示。
Claims (7)
1.一种基于NandFlash存储器多通道的存储阵列控制装置,其特征在于:包括嵌入式微处理器,通过片内高速互联总线将各个外设模块与嵌入式微处理器连接,所述外设模块包括SATA控制器、NandFlash控制器、DDR2 SDRAM控制器、JTAG调试接口、AHB/APB bridge、密码算法模块、DMA控制器、片上RAM控制器、SPI flash控制器,AHB/APB bridge将片内高速互联总线与片内低功耗互联总线相连接,所述片内低功耗互联总线上连接有中断控制器、定时器、看门狗、串口、GPIO,从而构建一个完整的片上系统;具体包括如下模块:
微处理器:龙芯LS232微处理器,MIPS指令系统,32位,32KB一级高速缓存,64位浮点处理单元;
AHB BUS:片内高速互联总线;
AHB/APB bridge:片内高速互联总线到低速互联总线的转换桥;
APB BUS:片内低功耗互联总线;
JTAG调试接口:在线硬件调试支持模块;
SATA控制器:主机系统和盘控芯片之间的接口;
NandFlash控制器:NandFlash存储器和盘控芯片之间的接口;
DMA控制器:用于大数据量加解密操作时的数据流控制;
DDR2 SDRAM控制器:提供盘控芯片与DDR2 SDRAM存储器之间的接口;
SPI flash控制器:外部SPI flash存储器控制器;
On-chip RAM:片内RAM,容量为2Mbit,与片上RAM控制器相连接;
中断控制器:支持电平和边沿触发模式;
定时器:32位高精度定时器;
看门狗:32位的看门狗定时器;
串口:兼容16550;
GPIO:通用IO端口。
2.根据权利要求1所述的基于NandFlash存储器多通道的存储阵列控制装置,其特征在于:所述存储阵列控制装置位于主机SATA端到NandFlash存储芯片端之间,将主机发送的SATA命令进行解析,转换成NandFlash芯片的指令,将数据写入或读出NandFlash,完成固态盘和主机间的数据传输,在主机和存储阵列控制装置之间设置有读写缓存SDRAM。
3.根据权利要求1所述的基于NandFlash存储器多通道的存储阵列控制装置,其特征在于:存储阵列控制装置采用控制引脚与数据引脚同时共用的架构,能够同时控制多片NandFlash存储器;设置有多条Flash通道,对通道内部,使用流水线方式,在一片Flash器件工作时,对其他Flash进行读或写操作,在时间上实现数据总线的复用;在通道间,使用并行传输技术,各通道之间相互独立、互不影响,多个通道能够并发工作,同时实现了速度和容量的提升。
4.根据权利要求1中基于NandFlash存储器多通道的存储阵列控制装置的控制方法,其特征在于:本发明采用的方法包括如下操作,
初始化模块:负责上电时的硬件初始化;
SATA Driver:完成SATA命令的读取、解析、及寄存器配置,控制SATA命令处理流程;
NandFlash Driver:完成NandFlash数据处理及寄存器配置,控制NandFlash命令处理流程;
Flash地址映射及坏块管理:将主机访问的逻辑地址映射为Flash存储器的物理地址,并动态管理Flash介质在使用过程中出现的坏块,保证数据的可靠性;
缓存调度模块:将主机经常或最近访问的数据保留在缓存,提高缓存命中率,减少或延缓对Flash的读、写及擦除操作,提高访问速度;
Flash负载均衡:均衡选择Flash物理块的使用,避免某些块由于过多的擦除操作而损坏,从而降低使用过程中坏块的产生几率,延长固态盘的使用寿命;
安全防护管理:作为可扩展的功能,安全防护管理包括分区保护、日志管理、数据加解密、自毁功能。
5.根据权利要求4所述的基于NandFlash存储器多通道的存储阵列控制方法,其特征在于:在固件程序加载完成后,首先执行各模块的初始化程序,对各硬件模块进行配置以及中断处理函数的注册,完成后进入循环等待状态,等待系统的中断信号;
此时,主机能够通过SATA命令访问固态盘,固态盘的SATA控制器在接到主机的命令后会产生中断信号,固件根据中断的类型进行相应处理;
主机对固态盘的访问总体上分为两种:数据传输命令和非数据传输命令,对于需要数据传输的命令,按传输的方向主要可以分为读和写两大类,处理时,固件需要解析出传输的方向(读/写)、传输长度、数据地址各相应信息,然后通过调用固件的Flash管理模块来对其访问的地址进行映射,最终得出所访问的Flash物理地址,最后,固件会根据读/写方向依次调用Flash控制器或SATA控制器内部的DMA来完成数据传输;
对于非数据传输的SATA命令,只需根据命令的要求对固态盘进行各项设置即可;在命令处理结束后,固态盘给主机返回状态,表明命令执行的结果。
6.根据权利要求5所述的基于NandFlash存储器多通道的存储阵列控制方法,其特征在于:当主机发起读操作时:SATA控制器产生读中断请求;固件的SATA驱动模块捕获到该中断后,执行中断服务子程序,根据缓存调度算法,首先判断待读出的数据是否在缓存中,如果在缓存中,则无需发起NandFlash芯片的读操作,直接通过SATA控制器内部DMA传输,将缓存中的数据直接写入SATA控制器的FIFO,再由SATA控制器发送到SATA接口;否则,通过地址映射算法,查询到数据在Flash中的物理地址,然后对NandFlash控制器进行配置,启动对NandFlash芯片的读操作,将数据从NandFlash芯片读入NandFlash控制器FIFO,然后启动NandFlash内部DMA,把数据从NandFlash控制器FIFO先写到缓存中,再启动SATA控制器内部DMA,将缓存中的数据读到ATA控制器FIFO,最后发送到ATA接口,一次读操作完成。
7.根据权利要求5所述的基于NandFlash存储器多通道的存储阵列控制方法,其特征在于:当主机发起写操作时:SATA控制器产生写中断请求;SATA驱动模块捕获该中断,在中断服务程序中对SATA命令进行解析,判断所写入的数据是否已在缓存中分配存储地址;如果已分配,则配置SATA控制器内部DMA,直接将该缓存地址中的原数据覆盖;否则,将数据写入为该数据新分配的一块存储地址,再通过地址映射算法查询到要写入NandFlash芯片的物理地址,启动NandFlash内部DMA传输,将缓存中的数据写入NandFlash控制器的FIFO,然后对NandFlash控制器进行配置,启动NandFlash芯片的写操作,将数据写到Flash芯片中,一次写操作完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710668545.3A CN108121672A (zh) | 2017-08-08 | 2017-08-08 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710668545.3A CN108121672A (zh) | 2017-08-08 | 2017-08-08 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108121672A true CN108121672A (zh) | 2018-06-05 |
Family
ID=62228155
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710668545.3A Pending CN108121672A (zh) | 2017-08-08 | 2017-08-08 | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108121672A (zh) |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109582232A (zh) * | 2018-11-21 | 2019-04-05 | 中国船舶重工集团公司第七0七研究所 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
CN109669635A (zh) * | 2018-12-19 | 2019-04-23 | 深圳忆联信息系统有限公司 | 用于固态存储主控芯片的命令lba重合检测方法及装置 |
CN110069442A (zh) * | 2019-04-24 | 2019-07-30 | 北京计算机技术及应用研究所 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
CN110764691A (zh) * | 2018-07-26 | 2020-02-07 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN111008171A (zh) * | 2019-11-25 | 2020-04-14 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种带串行flash接口控制的通信ip电路 |
CN111240598A (zh) * | 2020-01-15 | 2020-06-05 | 西安交通大学 | 一种基于软硬件结合方式的大容量快速NandFlash存储实现方法 |
CN111338984A (zh) * | 2020-02-25 | 2020-06-26 | 大唐半导体科技有限公司 | 一种Cache RAM与Retention RAM数据高速交换架构及其方法 |
CN112114744A (zh) * | 2020-08-10 | 2020-12-22 | 西安交通大学 | 一种多通道全互联架构的ssd固态盘及其控制方法 |
CN112463655A (zh) * | 2020-11-14 | 2021-03-09 | 武汉汇迪森信息技术有限公司 | 一种高速数据采集存储系统的数据存储及读取方法 |
CN112667561A (zh) * | 2020-12-29 | 2021-04-16 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的实现方式 |
CN112817902A (zh) * | 2021-02-05 | 2021-05-18 | 中国电子科技集团公司第五十八研究所 | 互联裸芯接口管理系统及其初始化方法 |
CN112860612A (zh) * | 2021-02-05 | 2021-05-28 | 中国电子科技集团公司第五十八研究所 | 互联裸芯与mpu的接口系统及其通信方法 |
CN112882964A (zh) * | 2021-03-04 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多接口的大容量高安全存储系统 |
CN113268204A (zh) * | 2021-05-26 | 2021-08-17 | 绿芯半导体(厦门)有限公司 | 一种提高ssd多通道并发数据读写效率的方法 |
CN114036096A (zh) * | 2021-11-04 | 2022-02-11 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN115168266A (zh) * | 2022-06-22 | 2022-10-11 | 长光卫星技术股份有限公司 | 一种可扩展的基于NVMe固态盘的星载高速通用存储器 |
WO2023184705A1 (zh) * | 2022-04-02 | 2023-10-05 | 长鑫存储技术有限公司 | 数据传输电路、方法及存储装置 |
US11816361B2 (en) | 2022-04-02 | 2023-11-14 | Changxin Memory Technologies, Inc. | Circuit and method for transmitting data to memory array, and storage apparatus |
CN117075824A (zh) * | 2023-10-17 | 2023-11-17 | 苏州元脑智能科技有限公司 | 存储设备的控制方法、装置以及存储设备和硬盘阵列卡 |
US11837304B2 (en) | 2022-04-02 | 2023-12-05 | Changxin Memory Technologies, Inc. | Detection circuit |
CN114036096B (zh) * | 2021-11-04 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN106952663A (zh) * | 2017-03-13 | 2017-07-14 | 西北工业大学 | 一种多接口高速大容量固态存储产品开发平台 |
CN207008602U (zh) * | 2017-08-08 | 2018-02-13 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制装置 |
-
2017
- 2017-08-08 CN CN201710668545.3A patent/CN108121672A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102103558A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有写重传功能的多通道NANDflash控制器 |
CN106952663A (zh) * | 2017-03-13 | 2017-07-14 | 西北工业大学 | 一种多接口高速大容量固态存储产品开发平台 |
CN207008602U (zh) * | 2017-08-08 | 2018-02-13 | 鸿秦(北京)科技有限公司 | 一种基于NandFlash存储器多通道的存储阵列控制装置 |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110764691A (zh) * | 2018-07-26 | 2020-02-07 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN110764691B (zh) * | 2018-07-26 | 2023-03-03 | 慧荣科技股份有限公司 | 数据储存装置以及非挥发式存储器控制方法 |
CN109582232A (zh) * | 2018-11-21 | 2019-04-05 | 中国船舶重工集团公司第七0七研究所 | 一种基于FPGA的顺序读写多片Flash系统及方法 |
CN109669635B (zh) * | 2018-12-19 | 2022-01-21 | 深圳忆联信息系统有限公司 | 用于固态存储主控芯片的命令lba重合检测方法及装置 |
CN109669635A (zh) * | 2018-12-19 | 2019-04-23 | 深圳忆联信息系统有限公司 | 用于固态存储主控芯片的命令lba重合检测方法及装置 |
CN110069442A (zh) * | 2019-04-24 | 2019-07-30 | 北京计算机技术及应用研究所 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
CN110069442B (zh) * | 2019-04-24 | 2022-10-14 | 北京计算机技术及应用研究所 | 一种基于zynq系列fpga的超高速数据采集装置及方法 |
CN111008171A (zh) * | 2019-11-25 | 2020-04-14 | 中国兵器工业集团第二一四研究所苏州研发中心 | 一种带串行flash接口控制的通信ip电路 |
CN111240598A (zh) * | 2020-01-15 | 2020-06-05 | 西安交通大学 | 一种基于软硬件结合方式的大容量快速NandFlash存储实现方法 |
CN111338984A (zh) * | 2020-02-25 | 2020-06-26 | 大唐半导体科技有限公司 | 一种Cache RAM与Retention RAM数据高速交换架构及其方法 |
CN111338984B (zh) * | 2020-02-25 | 2022-05-17 | 大唐半导体科技有限公司 | 一种Cache RAM与Retention RAM数据高速交换架构及其方法 |
CN112114744A (zh) * | 2020-08-10 | 2020-12-22 | 西安交通大学 | 一种多通道全互联架构的ssd固态盘及其控制方法 |
CN112463655B (zh) * | 2020-11-14 | 2022-06-14 | 武汉汇迪森信息技术有限公司 | 一种高速数据采集存储系统的数据存储及读取方法 |
CN112463655A (zh) * | 2020-11-14 | 2021-03-09 | 武汉汇迪森信息技术有限公司 | 一种高速数据采集存储系统的数据存储及读取方法 |
CN112667561A (zh) * | 2020-12-29 | 2021-04-16 | 成都旋极历通信息技术有限公司 | 一种在fpga中实现ufs阵列控制器的实现方式 |
CN112860612B (zh) * | 2021-02-05 | 2022-09-16 | 中国电子科技集团公司第五十八研究所 | 互联裸芯与mpu的接口系统及其通信方法 |
CN112860612A (zh) * | 2021-02-05 | 2021-05-28 | 中国电子科技集团公司第五十八研究所 | 互联裸芯与mpu的接口系统及其通信方法 |
CN112817902A (zh) * | 2021-02-05 | 2021-05-18 | 中国电子科技集团公司第五十八研究所 | 互联裸芯接口管理系统及其初始化方法 |
CN112817902B (zh) * | 2021-02-05 | 2022-08-02 | 中国电子科技集团公司第五十八研究所 | 互联裸芯接口管理系统及其初始化方法 |
WO2022166425A1 (zh) * | 2021-02-05 | 2022-08-11 | 中国电子科技集团公司第五十八研究所 | 互联裸芯与mpu的接口系统及其通信方法 |
CN112882964A (zh) * | 2021-03-04 | 2021-06-01 | 中国航空工业集团公司西安航空计算技术研究所 | 一种支持多接口的大容量高安全存储系统 |
CN113268204A (zh) * | 2021-05-26 | 2021-08-17 | 绿芯半导体(厦门)有限公司 | 一种提高ssd多通道并发数据读写效率的方法 |
CN114036096A (zh) * | 2021-11-04 | 2022-02-11 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
CN114036096B (zh) * | 2021-11-04 | 2024-05-03 | 珠海一微半导体股份有限公司 | 一种基于总线接口的读控制器 |
WO2023184705A1 (zh) * | 2022-04-02 | 2023-10-05 | 长鑫存储技术有限公司 | 数据传输电路、方法及存储装置 |
US11816361B2 (en) | 2022-04-02 | 2023-11-14 | Changxin Memory Technologies, Inc. | Circuit and method for transmitting data to memory array, and storage apparatus |
US11837304B2 (en) | 2022-04-02 | 2023-12-05 | Changxin Memory Technologies, Inc. | Detection circuit |
CN115168266A (zh) * | 2022-06-22 | 2022-10-11 | 长光卫星技术股份有限公司 | 一种可扩展的基于NVMe固态盘的星载高速通用存储器 |
CN115168266B (zh) * | 2022-06-22 | 2023-04-14 | 长光卫星技术股份有限公司 | 一种可扩展的基于NVMe固态盘的星载高速通用存储器 |
CN117075824A (zh) * | 2023-10-17 | 2023-11-17 | 苏州元脑智能科技有限公司 | 存储设备的控制方法、装置以及存储设备和硬盘阵列卡 |
CN117075824B (zh) * | 2023-10-17 | 2024-02-02 | 苏州元脑智能科技有限公司 | 存储设备的控制方法、装置以及存储设备和硬盘阵列卡 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108121672A (zh) | 一种基于NandFlash存储器多通道的存储阵列控制方法与装置 | |
US10725956B2 (en) | Memory device for a hierarchical memory architecture | |
TWI783369B (zh) | 準揮發性系統級記憶體 | |
JP5272019B2 (ja) | プロセッサを内部メモリに接続するクロスバー・スイッチを含むフラッシュメモリ用ストレージコントローラ | |
JP5960517B2 (ja) | フラッシュメディアコントローラの内部のメタデータハンドリング | |
KR101573591B1 (ko) | 메모리 시스템 제어기를 구비하는 장치 및 관련 방법 | |
KR101532863B1 (ko) | 메모리 시스템 제어기를 구비하는 장치 및 관련 방법 | |
EP2546755A2 (en) | Flash controller hardware architecture for flash devices | |
CN207008602U (zh) | 一种基于NandFlash存储器多通道的存储阵列控制装置 | |
US10866921B2 (en) | Apparatuses and methods for an operating system cache in a solid state device | |
JP2005500621A (ja) | デュアル・インライン・メモリモジュール・フォーマットにおいて一連のマルチアダプティブプロセッサを採用したクラスタ型コンピュータ用スイッチ/ネットワークアダプタポート | |
KR20140013098A (ko) | 메모리 시스템 컨트롤러들을 포함하는 장치 및 관련 방법들 | |
EP3910488A1 (en) | Systems, methods, and devices for near data processing | |
US9015397B2 (en) | Method and apparatus for DMA transfer with synchronization optimization | |
CN115495389B (zh) | 存储控制器、计算存储装置以及计算存储装置的操作方法 | |
US11029746B2 (en) | Dynamic power management network for memory devices | |
US20180253391A1 (en) | Multiple channel memory controller using virtual channel | |
JP2023505261A (ja) | メモリと分散計算アレイとの間のデータ転送 | |
TWI474254B (zh) | 用於在一記憶體系統中執行命令的方法與裝置及資料儲存系統 | |
Khalifa et al. | Memory controller architectures: A comparative study | |
WO2009115058A1 (zh) | 提供闪存存储功能的主板及其存储方法 | |
CN101751982B (zh) | 闪存存储装置中闪存控制器与闪存芯片之间的连接方法 | |
US11443091B1 (en) | Data processing engines with cascade connected cores |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |