CN102097122B - 一种多通道共享数据缓存区的NAND flash控制器电路 - Google Patents
一种多通道共享数据缓存区的NAND flash控制器电路 Download PDFInfo
- Publication number
- CN102097122B CN102097122B CN 200910200245 CN200910200245A CN102097122B CN 102097122 B CN102097122 B CN 102097122B CN 200910200245 CN200910200245 CN 200910200245 CN 200910200245 A CN200910200245 A CN 200910200245A CN 102097122 B CN102097122 B CN 102097122B
- Authority
- CN
- China
- Prior art keywords
- buffer area
- data buffer
- nand flash
- data
- address
- 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.)
- Active
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Read Only Memory (AREA)
Abstract
本发明提供一种多通道共享数据缓存区的NAND flash控制器电路,包含主控制器、共享数据缓存区单元和NAND flash接口控制逻辑单元。其中共享数据缓存区单元由数据缓存区、数据缓存区地址列表以及数据缓存区地址FIFO构成。数据缓存区、数据缓存区地址列表和数据缓存区地址FIFO可采用寄存器(flip-flop)、锁存器(latch)、SRAM、或者芯片外SDRAM、DDRSDRAM实现。采用上述共享数据缓存区可减小多通道NAND flash控制器的数据缓存区容量,能够有效降低控制器芯片设计面积,且保证数据传输的时间,满足应用需求。
Description
技术领域
本发明涉及一种大容量NANDA flash控制器电路,尤其涉及一种多通道共享数据缓存区的NAND flash控制器电路。
技术背景
NAND flash在近几年里得到了突飞猛进的发展,由1位/单元的SLC单层式储存(Single Level Cell)技术发展到了2位/单元甚至3位/单元的MLC多层式储存(Multi Level Cell)技术,同时NAND flash的生产工艺也不断进步。随着技术的发展NAND flash容量不断增大,单位容量的成本也大幅降低。NAND flash相对于磁存储介质有省电、寻道时间短等优点,因此被当作替代现有磁存储介质的最佳选择。NAND flash目前主要应用于U盘、MP3、MP4、数码相机等领域,这类应用需要的数据传输带宽都不是很大,单通道NAND flash控制器的数据传输带宽就能满足应用需求。但当NANDflash应用于固态存储盘(SSD,Solid State Drive)以替代传统硬盘的时候,单通道NAND flash控制器的数据传输带宽就满足不了需求。现有的SSD解决方案都采用增加NAND flash控制器的通道数来增加SSD的数据传输带宽。
图1是一个四通道NAND flash控制器的示意图。它由主控器(100)、四个数据缓存区(110-113)和四个通道的NAND flash接口控制逻辑(120-123)组成。四个NAND flash存储器组(130-133)连接在这个NAND flash控制器上。
在数据传输的过程中,主控制器依次将数据写入个通道的NAND flash存储器或依次将数据从各通道读出。各通道同时将数据并行写入flash或者并行将数据从NAND flash存储器读出。主控制器和数据缓存区间的带宽为单通道且为数据缓存区和NAND flash接口控制逻辑间带宽的4倍。此种控制器芯片的面积较大。
发明内容
本发明目的提供一种多通道共享数据缓存区的NAND flash控制器电路,该电路采用共享数据缓存区以减小多通道NAND flash控制器的数据缓存区的容量,能够有效降低控制器芯片设计面积,且保证数据传输的时间。
本发明涉及一种多通道共享数据缓存区的NAND flash控制器电路,包含主控制器、共享数据缓存区单元和NAND flash接口控制逻辑单元。其中,共享数据缓存区单元由数据缓存区、数据缓存区地址列表以及数据缓存区地址FIFO构成。
主控制器,用于控制命令发送及数据传输;
数据缓存区,用于缓存主控制器和NAND flash之间传输的数据;
数据缓存区地址列表,用于存放数据缓冲区的可用地址;
数据缓存区地址FIFO,每通道1个,用于记录已存入数据缓存区的数据的地址;
NAND flash接口控制逻辑单元,每通道1个,用于控制NAND flash控制器与NAND flash之间的接口。
数据缓存区、数据缓存区地址列表和数据缓存区地址FIFO可采用寄存器(flip-flop)、锁存器(latch)、SRAM、或者芯片外SDRAM、DDR SDRAM实现。
采用共享数据缓存区,数据在每次写入缓存区时都需分配一个地址,因此需要一个数据缓存区地址列表,地址列表中存放数据缓存区的地址。当数据写入数据缓存区后,数据缓存区地址需记录在一个先入先出缓存区(FIFO)中,当数据从缓存区读出时,先从这个先入先出缓存区(FIFO)中获取读地址,然后将数据从缓存区读出。
数据缓存区地址列表采用先进先出(FIFO)结构,其初始状态为“满”,地址列表的读指针和写指针均放在表首位置。
向缓存区写入数据时,从地址列表中读取一个地址,地址列表的读指针加一;当数据写入缓存区后,该地址需写入某通道的地址FIFO,该地址FIFO的写指针加一。
从缓存区读出数据时,需先从某通道的地址FIFO中读出一个地址,该地址FIFO的读指针加一;当数据从缓存区中读出后,该地址写回到地址列表中,地址列表的写指针加一。
地址列表为空时,表示数据缓存区已满,停止向缓存区写入数据。
共享数据缓存区时,多个NAND flash接口控制逻辑可同时对数据缓存区进行读写。此时需对数据缓存区的带宽进行分时复用,即不同通道可以在一个周期内的不同时间段将数据写入缓存区或者读出缓存区。
数据写入NAND flash时,主控制器将数据写入缓存区。数据写入后,某通道的地址FIFO变为“非空”,该通道从其地址FIFO中取出地址,按该地址从缓存区取出数据并将其写入NAND flash。
数据从NAND flash读出时,通道的接口控制逻辑把数据从NAND flash中读出,按从地址列表取出的地址写入缓存区。数据写入后,该通道的地址FIFO变为“非空”,主控制器从该地址FIFO中取出地址,按该地址从缓存区读出数据。
附图说明
图1独享数据缓存区的多通道NAND flash控制器;
图2共享数据缓存区的多通道NAND flash控制器;
图3a数据缓存区地址列表;
图3b数据缓存区地址FIFO;
图4四通道NAND flash控制器写NAND flash示意图;
图5四通道同时写数据缓存区示意图;
图6四通道同时读数据缓存区示意图;
具体实施方案
根据本发明提供的解决方案,结合各附图选取最佳实施例对发明内容的实施进行描述,图2为本发明提供的共享数据缓存区的多通道NAND flash控制器结构图。
(1)独享数据缓存区时单通道缓存区的大小
当各通道独享数据缓存区时,每个通道数据缓存区的大小由数据在NAND flash上的存储策略决定。数据在NAND flash上的存储策略是指系统如何将逻辑地址连续的数据分配到不同的NAND flash上,数据可以以块(block)、页(page)、扇区(sector)或其它大小为单元而存在不同的NANDflash上。每个通道数据缓存区的大小通常为数据单元的大小。在本发明的实施例中,数据单元为扇区大小为512字节。
(2)共享数据缓存区、数据缓存区地址列表、缓存区地址FIFO的大小
图3a为数据缓存区地址列表示意图,图3b是数据缓存区地址FIFO示意图。
如附图4中所示,为四通道共享缓存区的NAND flash控制器在进行写操作时主控制器和各通道NAND flash接口控制逻辑的操作情况。tP为单通道连续传输一页(page)数据时需要的时间。当主控制器将通道0到通道3的数据依次写入数据缓存区后,通道0到通道3先后开始将数据从数据缓存区读出并写入NAND flash。在通道3开始传输数据以前,数据缓存区的内数据不断增多。在通道3开始传输数据后,四个通道同时从数据缓存区读取数据,数据缓存区的数据量达到动态平衡。因此在通道3开始传输数据的时刻(0.75tP),数据缓存区内的数据量达到最多,这时的数据量即为数据缓存区的大小。如果设通道数为N,则数据缓存区的大小为:(M为一次从数据缓存区申请的数据空间的大小),地址列表的深度为:地址FIFO的深度为:M不能太大,也不能太小。M太大,数据缓存区会太大。M太小,则地址列表和地址FIFO太大。在具体选择时,需权衡数据缓存区、缓存区地址列表及缓存区地址FIFO的大小。本发明所举实施例中,M为32字节,数据缓存区大小为896字节,地址列表深度为28,地址FIFO深度为16。
(3)数据缓存区、地址列表、地址FIFO的实现方式
数据缓存区、数据缓存区地址列表和数据缓存区地址FIFO可以用寄存器(flip-flop)、锁存器(latch)、SRAM,或者芯片外的SDRAM、DDR SDRAM实现。本实施例中数据缓存区采用双端口的SRAM(two-port SRAM)实现。SRAM的两个端口可以独立地进行读写操作。SRAM两个端口的数据位宽为4字节。地址列表、地址FIFO采用寄存器实现。地址列表和地址FIFO的位宽均为5位(bit)。
(4)数据缓存区的数据并行存取
本发明所列举的四通道NAND flash控制器中,主控器和数据缓存区的数据位宽为32位(bit),NAND flash接口的数据位宽为8。整个芯片采用一个时钟。将连续的四个时钟周期按先后次序分为T0,T1,T2和T3。通道0在T0访问数据缓存区,通道1在T1访问数据缓存区,通道2在T2访问数据缓存区,通道3在T3访问数据缓存区。在读NAND flash时,每个通道每四个时钟周期将从NAND flash接口接收到的4字节数据组合后写入数据缓存区,如附图5中所示。在写NAND flash时,每个通道每四个时钟周期从数据缓存区读出32位数据,然后分拆成4个字节从NAND flash接口依次传送出去,如附图6中所示。
(5)通道的数据传输开始点(限于读NAND flash的操作情形)
读NAND flash时,各通道的NAND flash几乎同时收到命令和地址,因而几乎同时准备好数据。但各通道不能同时开始从NAND flash到数据缓存区的数据传输,而是相互之间开始的时间有一定的间隔,这个间隔为在本发明的实例中,若通道0先开始数据传输,通道1在1/4tP后开始数据传输,通道2在在1/2tP后开始数据传输,通道3在3/4tP后开始数据传输。
这个数据间隔可以由系统中的固件(firmware)来控制,也可以由硬件实现。硬件实现的一个方法是:当所有通道都没有数据传输时第一个收到数据传输命令的通道马上开始数据传输,第二个收到数据传输命令的通道在第一个通道开始数据传输后开始数据传输,以此类推。
(6)读NAND flash操作的具体步骤及方案
以四通道NAND flash控制器为例进行说明:
a、主控制器向四个通道依次发送读NAND flash指令和地址;
b、当主控制器检测到NAND flash已经准备好数据,通知NAND flash接口控制逻辑;
c、如果地址列表“非空”,NAND flash接口控制逻辑即进行如下操作:
(1)NAND flash接口控制逻辑从地址列表读取一个地址,地址列表的读指针加1。NAND flash接口控制逻辑将从NAND flash中读出的数据写入缓存区,共传输32字节。
(2)传输完32字节后,NAND flash接口控制逻辑将从地址列表读出的地址写入地址FIFO,地址FIFO的写指针加1。NAND flash接口控制逻辑从地址列表申请新的地址,重复(1)中的操作,直至512字节传输完毕。
(3)如果该通道内下一个读命令的数据已经准备好,同时地址FIFO“非满”且地址列表“非空”,NAND flash接口控制逻辑将重复(1)、(2)。
d、只要任一通道的地址FIFO“非空”,主控制器进行如下操作:
(1)主控制器按照读取顺序从一个通道的地址FIFO读出地址并按照此地址从缓存区读出数据,共32字节。
(2)当32字节传输完毕,地址FIFO的读指针加1。主控制器将从地址FIFO读出的地址写入地址列表,地址列表的指针加1。如果地址FIFO仍为“非空”,主控器重复(1)中操作,直至512字节传输完毕。
(3)当前通道的512字节传输完毕后,主控制器切换到下一个通道。若新通道的地址FIFO“非空”,主控制器将重复(1)、(2)中的操作。
(4)主控制器重复(1)、(2)、(3)步骤直至所有通道的地址FIFO为空。
e、重复a~d直至读NAND flash的数据全部传输完毕。
(7)写NAND flash操作的具体步骤及方案
以四通道的NAND flash控制器为例说明:
a、主控制器向四个通道依次发送写NAND flash指令和地址。
b、若地址列表“非空”,主控制器进行如下操作:
(1)主控制器从地址列表读取一个地址,地址列表的读指针加1。主控制器将数据写入缓存区,共32字节。
(2)32字节传输完毕后,主控制器将从地址列表读出的地址写入相应的地址FIFO,地址FIFO写指针加1。主控制器重复(1),直至512字节传输完毕。
(3)主控制器切换到下一个通道,重复(1)、(2)。
c、若地址FIFO“非空”,相关的通道进行如下操作:
(1)NAND flash接口控制逻辑从地址FIFO读取一个地址,并按照此地址从缓存区读出数据写入NAND flash,共32字节。
(2)当32字节传输完毕,地址FIFO的读指针加1。NAND flash接口控制逻辑将从地址FIFO读出的地址写入地址列表,地址列表的指针加1。如果地址FIFO仍为“非空”,NAND flash接口控制逻辑重复(1)中操作,直至512字节传输完毕。
d、任一通道传输完一页(Page)的数据,主控制器向该相关的NANDflash发送写操作的第二个命令。
e、重复a~d直至写NAND flash的数据全部传输完毕。
Claims (8)
1.一种多通道共享数据缓存区的NAND flash控制器电路,包含主控制器、共享数据缓存区单元及NAND flash接口控制逻辑单元,共享数据缓存区单元由数据缓存区、数据缓存区地址列表以及数据缓存区地址FIFO构成,主控制器与共享数据缓存区单元连双向通信连接,共享数据缓存区单元与多通道NAND flash接口控制逻辑单元双向通信连接,其特征在于多个NANDflash接口控制逻辑单元同时对数据缓存区进行读写。
2.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述数据缓存区单元为寄存器或锁存器或SRAM且能进行同时读写操作。
4.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述数据缓存区地址列表为先进先出的存储结构,初始状态为满。
5.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述数据缓存区地址FIFO采用先进先出的存储结构。
6.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述控制器电路从NAND flash读数据时,各通道从NANDflash到数据缓存区的数据传输相互之间的间隔为tP是单通道连续传输一页数据需要的时间,M为一次从数据缓存区申请的数据空间的大小。
7.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述NAND flash接口控制逻辑单元采用分时复用方式与数据缓冲区进行数据读写。
8.如权利要求1所述的一种多通道共享数据缓存区的NAND flash控制器电路,其特征在于:所述数据缓存区地址FIFO每通道1个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910200245 CN102097122B (zh) | 2009-12-10 | 2009-12-10 | 一种多通道共享数据缓存区的NAND flash控制器电路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910200245 CN102097122B (zh) | 2009-12-10 | 2009-12-10 | 一种多通道共享数据缓存区的NAND flash控制器电路 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102097122A CN102097122A (zh) | 2011-06-15 |
CN102097122B true CN102097122B (zh) | 2013-03-27 |
Family
ID=44130179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910200245 Active CN102097122B (zh) | 2009-12-10 | 2009-12-10 | 一种多通道共享数据缓存区的NAND flash控制器电路 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102097122B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104409099B (zh) * | 2014-12-15 | 2017-12-29 | 成都傅立叶电子科技有限公司 | 基于FPGA的高速eMMC阵列控制器 |
CN104461399B (zh) * | 2014-12-19 | 2018-08-28 | 上海新储集成电路有限公司 | 非易失性存储器的写缓存器系统及其数据读写方法 |
CN104461966B (zh) * | 2014-12-19 | 2017-07-21 | 深圳市国微电子有限公司 | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 |
CN105528312B (zh) * | 2015-12-11 | 2018-07-03 | 中国航空工业集团公司西安航空计算技术研究所 | 一种保证通信处理机与主机间接收数据完整性的系统及其方法 |
CN107391023B (zh) * | 2016-05-16 | 2021-01-22 | 深圳市中兴微电子技术有限公司 | 一种多通道数据存储器及其存取方法及装置 |
CN108959107B (zh) * | 2017-05-18 | 2020-06-16 | 深圳市中兴微电子技术有限公司 | 一种共享方法及装置 |
CN110187828B (zh) * | 2019-04-12 | 2023-03-28 | 深圳市金泰克半导体有限公司 | Nand闪存的垃圾回收方法及nand闪存 |
CN111506264B (zh) * | 2020-04-10 | 2021-07-06 | 华中科技大学 | 支持灵活分块存取的虚拟多通道sdram访问方法 |
EP4086908B1 (en) | 2021-03-19 | 2023-12-06 | Changxin Memory Technologies, Inc. | Data processing circuit, and device |
CN115116513A (zh) * | 2021-03-19 | 2022-09-27 | 长鑫存储技术有限公司 | 数据处理电路及设备 |
KR20220131380A (ko) | 2021-03-19 | 2022-09-27 | 창신 메모리 테크놀로지즈 아이엔씨 | 데이터 처리 회로 및 기기 |
CN113590520B (zh) * | 2021-06-15 | 2024-05-03 | 珠海一微半导体股份有限公司 | Spi系统自动写入数据的控制方法及spi系统 |
CN117851278A (zh) * | 2024-03-08 | 2024-04-09 | 上海芯联芯智能科技有限公司 | 一种共享静态随机存取存储器的方法及中央处理器 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1863132A (zh) * | 2005-11-23 | 2006-11-15 | 华为技术有限公司 | 一种缓存管理系统与方法 |
US7546400B2 (en) * | 2004-02-13 | 2009-06-09 | International Business Machines Corporation | Data packet buffering system with automatic threshold optimization |
CN101576912A (zh) * | 2009-06-03 | 2009-11-11 | 中兴通讯股份有限公司 | 实现分布式文件系统异步输入输出接口的系统及读写方法 |
-
2009
- 2009-12-10 CN CN 200910200245 patent/CN102097122B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7546400B2 (en) * | 2004-02-13 | 2009-06-09 | International Business Machines Corporation | Data packet buffering system with automatic threshold optimization |
CN1863132A (zh) * | 2005-11-23 | 2006-11-15 | 华为技术有限公司 | 一种缓存管理系统与方法 |
CN101576912A (zh) * | 2009-06-03 | 2009-11-11 | 中兴通讯股份有限公司 | 实现分布式文件系统异步输入输出接口的系统及读写方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102097122A (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102097122B (zh) | 一种多通道共享数据缓存区的NAND flash控制器电路 | |
CN206557767U (zh) | 一种基于乒乓操作结构控制数据缓存的缓存系统 | |
CN111090598B (zh) | 用于组合多个存储信道的系统和方法 | |
TWI473116B (zh) | 多通道記憶體儲存裝置及其控制方法 | |
US9262079B2 (en) | Cache memory device and data processing method of the device | |
CN102446544B (zh) | 半导体存储器件和具有所述半导体存储器件的存储系统 | |
CN102541458B (zh) | 一种提高电子硬盘数据写入速度的方法 | |
CN103197898A (zh) | 存储控制装置、存储装置和控制存储控制装置的控制方法 | |
US7783826B2 (en) | Data bus width converter | |
CN105808455A (zh) | 访问内存的方法、存储级内存及计算机系统 | |
CN104484128A (zh) | 基于一读一写存储器的多读多写存储器及其实现方法 | |
CN104679440A (zh) | 一种闪存阵列管理方法及装置 | |
CN101515221A (zh) | 一种读数据的方法、装置和系统 | |
CN109976673A (zh) | 一种数据写入方法和装置 | |
CN103885724B (zh) | 基于相变存储器的存储系统结构及其损耗均衡算法 | |
US20130339583A1 (en) | Systems and methods for transferring data out of order in next generation solid state drive controllers | |
CN101350218A (zh) | 一种虚拟多端口存储器及其存储和读取数据的方法 | |
CN102004626B (zh) | 双口存储器 | |
CN101825997A (zh) | 一种异步先入先出存储器 | |
CN100511470C (zh) | 双倍速动态随机存取存储器的读写方法 | |
CN101324899B (zh) | 一种快速写nand型flash的方法 | |
CN117413247A (zh) | 一种数据处理方法、设备及系统 | |
US8954662B2 (en) | SSD controller, and method for operating an SSD controller | |
CN102236625A (zh) | 一种可同时进行读写操作的多通道NANDflash控制器 | |
CN101930407A (zh) | 闪速存储器控制电路及其存储系统与数据传输方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |