多通道NANDFlash控制器及移动存储设备的制作方法

文档序号:15445289发布日期:2018-09-14 23:17阅读:155来源:国知局

本发明涉及存储控制器领域,尤其涉及一种多通道nandflash控制器及移动存储设备。



背景技术:

目前市场上存在的flash存储控制器,从接口类型上分类有通用串行总线(universalserialbus,usb)、嵌入式多媒体卡(embeddedmultimediacard,emmc)、快速文件系统(unifiedfilesystem,ufs)、串行高级技术附件(serialadvancedtechnologyattachment,sata)和高速串行计算机扩展总线(peripheralcomponentinterconnectexpress,pcie)等,单通道应用场景中,以上不同协议接口可以满足不同的速率要求。

考虑到需要扩展为多数据通路的应用场景,如场景系统中使用到不同厂商性能各异的控制器,并需要独立的数据存储和访问通路,在这种情况下的多种接口协议增加了整合系统的复杂度和开发难度,并且某些厂商的控制器没有存储主控的相对应的协议接口,加大了设计难度。



技术实现要素:

本发明的主要目的在于提供一种多通道nandflash控制器及移动存储设备,旨在解决为多样的主机与flash控制器主控间提供灵活通用的交互接口,降低开发成本的技术问题。

为实现上述目的,本发明提供一种多通道nandflash控制器,所述多通道nandflash控制器包括mcu内核和分别对应flash存储器的flash主控;

所述mcu内核,用于获取主机发送的读写指令,将所述读写指令转换为flash操作指令序列,将所述flash操作指令序列发送至对应的命令缓存器,并控制第一dma控制器,完成主机和数据缓存器之间的数据写入和读取操作;

所述flash主控,用于接收所述命令缓存器的flash操作指令序列,根据所述flash操作指令序列并控制第二dma控制器,所述第二dma控制器为与若干命令缓存器一一对应连接的dma控制器,完成数据缓存器和flash存储器之间的数据写入和读取操作。

优选地,所述mcu内核,还用于获取所述主机发送的读写指令,将所述读写指令进行缓存、排队和合并处理。

优选地,所述mcu内核,还用于获取所述主机发送的读写指令,根据预设算法将所述读写指令转换为flash操作指令序列,flash操作指令序列包括flash命令序列和对第二dma控制器的传输控制指令,并将所述操作指令序列发送至与所述flash主控对应的命令缓存器。

优选地,所述flash主控,还用于将数据缓存器的数据信息生成对应的纠错编码并将编码后的数据信息发送至所述flash存储器。

优选地,所述flash主控,还用于接收所述flash存储器获取的数据信息,并对所述获取数据信息纠错解码,并将纠错解码后的数据信息发送至数据缓存器。

优选地,所述多通道nandflash控制器还包括:分别对应所述flash主控的命令缓存器和数据缓存器;

所述命令缓存器,用于接收所述mcu内核发送的flash操作指令序列;

所述数据缓存器,主机写入时用于接收所述主机发送的待写入数据信息,主机读取时用于接收所述flash主控读取flash存储器的数据信息。

优选地,所述数据缓存器,用于在主机写入待写入数据时,接收所述主机发送的待写入数据,在主机读取数据时,获取所述flash主控读取flash存储器的数据信息。

优选地,所述第一dma控制器,受控于mcu内核,执行所述mcu内核的传输控制指令,根据所述传输控制指令接收所述主机发送的数据信息并将数据信息写入所述数据缓存器或将所述数据缓存器的数据信息发送至所述主机;

所述第二dma控制器,受控于flash主控,还用于执行所述命令缓存器中的传输控制指令,根据所述传输控制指令将flash存储器的数据读取到所述数据缓存器中或者将所述数据缓存器的数据写入flash存储器。

优选地,所述mcu内核通过预设条数的控制线连接所述主机,所述flash主控通过预设条数的数据线连接所述主机。

此外,为实现上述目的,本发明还提出一种移动存储设备,所述移动存储设备包括flash存储器以及如上所述多通道nandflash控制器,所述多通道nandflash控制器连接所述flash存储器。

本发明所提供的多通道nandflash控制器,所述多通道nandflash控制器包括mcu内核和分别对应flash存储器的flash主控;所述mcu内核,用于获取主机发送的读写指令,将所述读写指令转换为flash操作指令序列,将所述flash操作指令序列写入命令缓存器,同时控制第一dma控制器,完成host和数据缓存器之间的数据写入和读取操作;所述flash主控,用于执行对应命令缓存器的flash操作指令序列,通过控制flash存储器和第二dma控制器,完成数据缓存器和flash存储器之间的数据写入和读取操作。本发明提供的多通道nandflash控制器,通过通用mcu的io资源与所述多通道nandflash控制器交互,完成对flash的写入和读取操作,与其他存储主控需要复杂的接口协议相比,更简单灵活,降低了开发成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1是本发明多通道nandflash控制器一实施例的电路结构图;

图2本发明移动存储设备一实施例的结构示意图。

附图标号说明:

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

参照图1,提出本发明多通道nandflash控制器一实施例的结构示意图,所述多通道nandflash控制器100包括mcu内核10和分别对应flash存储器20的flash主控30。

所述mcu内核10通过预设条数的接口控制线120连接主机90,所述flash主控30通过预设条数的接口数据线50连接所述主机90,所述mcu内核10通过mcu内核控制线40连接所述flash主控30,在本实施例中,通过设计预设条数的总线接口进行数据的分发,并将所述总线分为接口数据线50和接口控制线120,通过所述接口数据线50和接口控制线120实现数据的并行发送,例如通过所述接口数据线50用于发送所述主机90的数据信息,所述接口控制线120用于发送所述主机90的控制指令。

在本实施例中,可通过接口总线实现与mcu内核10以及flash主控30的连接,所述接口总线主要有1组接口控制线120和4组接口数据线50组成,所述接口控制线120连接所述主机90与所述mcu内核10,所述接口控制线120分为读写控制线120、命令地址控制线120、使能控制线120,所述mcu内核控制线40连接所述mcu内核10以及flash主控30,所述flash主控30可为多个,该多个flash主控30分别对应多个flash存储器20,所述接口总线可为多组,本实施例对此不作限制。

所述mcu内核10,用于获取主机90发送的读写指令,将所述读写指令转换为flash操作指令序列,将所述flash操作指令序列发送至对应的命令缓存器60,并控制第一dma控制器80,完成主机90和数据缓存器70之间的数据写入和读取操作。

在具体实现中,所述mcu内核10用于获取主机90发送的读写指令,将所述读写指令转换为flash操作指令序列发送至所述flash主控30;所述flash主控30,用于在接收所述mcu内核10发送的操作指令序列,主机写入操作时获取所述主机90发送的待写入数据,根据所述读写指令将所述待写入数据写入对应的flash存储器20中,主机读取操作时类似。通过通用的接口数据线50和接口控制线120处理主机90与flash主控30的命令传输以及数据传输,不需要建立多种接口协议,达到节约成本的目的。

可以理解的是,在存储设备中有mcu内核10,flash主控30与flash存储器20,所述mcu内核10用于运行flash存储器20中存储的主控程序,所述主控程序在对flash存储器20进行量产时,存储在flash存储器20中,从而mcu内核10和flash主控30可通过flash存储器20中的主控程序将接收到的数据存储在flash存储器20中,或读取存储在flash存储器20中的数据。

在本实施例中,所述多通道nandflash控制器设有多个flash主控30以及与所述flash主控30分别连接的flash存储器20,如图1中所示的flash主控0、flash主控1、flash主控2等以及与所述flash主控30分别连接的flash存储器20,从而实现并行处理。

所述flash主控30接收所述命令缓存器70的flash操作指令序列,根据所述flash操作指令序列并控制第二dma控制器110,所述第二dma控制器110为与若干命令缓存器60一一对应连接的dma控制器,完成数据缓存器70和flash存储器20之间的数据写入和读取操作。

所述flash主控30在接收到所述主机90发送的待写入数据以及所述mcu内核10发送的写入操作flash操作指令序列时,将所述待写入数据根据所述flash操作指令序列写入对应的flash存储器20中。

所述flash主控30还用于在所述主机90发送读取数据操作时,所述mcu内核10发送读取操作的flash操作指令序列,将flash存储器20中的数据读取发送到主机90。

需要说明的是,所述flash主控30通过接口数据线50连接所述主机90,各个flash主控30通过单独的接口数据线50连接所述主机90,所述flash主控30可通过所述接口数据线50将数据信息发送至目标flash主控30中。

所述mcu内核10,还用于获取所述主机发送的读写指令,根据预设算法将所述读写指令转换为flash操作指令序列,flash操作指令序列包括flash命令序列和对第二dma控制器的传输控制指令,并将所述操作指令序列发送至与所述flash主控对应的命令缓存器。

本实施例所提供的多通道nandflash控制器100,所述多通道nandflash控制器100包括mcu内核10和分别对应flash存储器20的flash主控30;所述mcu内核10,用于获取主机90发送的读写指令,将所述读写指令转换为flash操作指令序列发送至所述flash主控30;主机写入操作时,所述flash主控30,用于执行所述mcu内核10发送的flash操作指令序列,并获取所述主机90发送的待写入数据,根据所述flash操作指令序列将所述待写入数据写入对应的flash存储器20中;主机读取操作时,所述flash主控30,用于执行所述mcu内核10发送的flash操作指令序列,读取flash存储器20的数据信息。通过通用的接口数据线50和接口控制线120处理主机90与flash主控30的命令传输以及数据传输,不需要建立多种接口协议,降低开发成本。

所述多通道nandflash控制器100还包括:分别对应所述flash主控30的命令缓存器60和数据缓存器70。

所述命令缓存器60,用于接收所述mcu内核10发送的所述flash操作指令序列。

所述数据缓存器70,用于在主机90写入时接收所述主机90发送的待写入数据信息,主机90读取时用于接收所述flash主控30读取flash存储器20的数据信息。

需要说明的是,所述mcu内核10通过mcu内核控制线40分别连接所述命令缓存器60和数据缓存器70,所述命令缓存器60的输入端连接所述mcu内核10,所述命令缓存器60的输出端连接所述flash主控30的控制输入端,所述数据缓存器70的数据输入端连接主机90,所述数据缓存器70的数据输出端连接所述flash主控30的数据输入端,所述数据缓存器70的控制输入端连接mcu内核10,所述命令缓存器60和数据缓存器70可为分别对应flash主控30的多个命令缓存器60和数据缓存器70。

可以理解的是,所述命令缓存器60可使用静态缓存器,所述数据缓存器70可使用成本更低的动态缓存器。在具体实现中,所述命令缓存器60位于所述flash主控30与mcu内核10之间,可将mcu内核10发送至所述flash主控30的flash操作指令序列进行缓存,所述数据缓存器70位于所述主机90与所述flash主控30之间,将所述主机90发送的数据信息放入所述数据缓存器70中进行缓存,或者将读取的flash存储器20的数据信息进行缓存,加速所述主机90和所述flash存储器20间的数据信息交互。

在本实施例中,在所述主机90与所述flash主控30之间以及所述mcu内核10与所述flash主控30之间设有数据缓存器70以及命令缓存器60,通过所述数据缓存器70以及命令缓存器60进行数据以及命令的缓存,可以避免所述数据以及命令丢失,可以加速主机90和flash主控30间的信息交互。

所述数据缓存器70,用于在主机90写入待写入数据时,接收所述主机90发送的待写入数据,在主机90读取数据时,获取所述flash主控30读取flash存储器20的数据信息。

所述mcu内核10,还用于获取所述主机90发送的读写指令,并将所述读写指令进行缓存、排队、合并等处理。

需要说明的是,所述mcu内核10对所述主机90的读写指令进行缓存、排队以及合并等处理,并运行闪存转换层(flashtranslationlayer,ftl)算法,将主机90发送的命令转换为flash操作指令序列,并将所述flash操作指令序列发送给各通道的命令缓存器60中。

在具体实现中,所述命令缓存器60用于缓存flash主控30的命令,并保证mcu内核10填充的指令序列不会被覆盖,所述指令序列主要包括:flash命令、地址命令以及dma2数据传输指令,所述命令缓存器60可接收所述mcu内核10发送的配置信息以及对flash主控30的通用配置,例如随机种子使用规则,编码和纠错码方式的设置,在所述mcu内核10中只需初始进行设置即可。

需要说明的是,在本实施例中,所述命令存储器60可以采用的其中一种命令格式如下,命令格式的设计很灵活,但符合flash命令和dma2传输指令一同缓存这种特点的都在本专利保护范围之内。

flash主控30命令部分的格式,标记cc+命令个数+片选+命令;

向flash存储器20发送地址部分的格式,标记aa+地址个数+地址;

数据部分的格式,标记dd+长度+存储器地址+flash主控地址;

连续4字节的0xff表示命令队列结束;

在具体实现中,例如一次slc的擦除操作的命令队列为:cc30x00xda0x60aa30x420x000x00cc30x00xd00x70;

一次写操作的命令队列为:cc30x00xda0x80aa50x000x240x000x000x000x20dd0x8000x100000x00cc30x00x100x70;

一次写操作的命令队列为:cc30x00xda0x00aa50x240x000x000x000x20cc0x20x300x70dd0x8000x100000x00。

所述命令缓存器60,还可以按照通道内flash存储器20的片选使能(chipenable,ce)个数均分空间,只需要设置好通道内的ce个数即可,以2ce,空间2k为例介绍。

ce0命令空间0~1k,ce1命令空间1k~2k,以读为例,flash主控取指规则是ce0命令cc30x00xda0x00,ce1命令cc30x00xda0x00,ce0地址aa50x240x000x000x000x20,ce1地址aa50x240x000x000x000x20,ce0命令cc0x20x300x70,ce1命令cc0x20x300x70,先准备好的flash存储器20会先继续取指进行数据的传输,以此保证通道内ce间取指并行。

在本实施例中,所述命令缓存器60对命令格式进行了设计,从而满足多通道nandflash控制器100的命令处理。

所述多通道nandflash控制器100还包括第一dma控制器80和第二控制器110。所述第一dma控制器80,执行所述mcu内核10的传输控制指令,根据所述传输控制指令将主机90的数据信息接收写入所述数据缓存器70,或将数据缓存器70的数据信息发送至所述主机90。

所述第二dma控制器,用于执行所述命令缓存器60中的传输控制指令,根据所述传输控制指令将flash存储器20的数据读取到所述数据缓存器70中或者将所述数据缓存器70的数据写入flash存储器20。

所述flash主控30,还用于将数据缓存器70的数据信息生成对应的纠错编码并将编码后的数据信息发送至所述flash存储器20。

所述flash主控30,还用于获取flash存储器20的数据信息,对获取的数据信息纠错解码,并将所述纠错解码后的数据信息发送至数据缓存器70。

本实施例提供的技术方案,可通过dma1控制器80和dma2控制器110实现主机90和flash存储器20间数据的高效传输,还可在所述flash主控30中设有纠错编码,从而避免数据传输过程中出现数据丢失时,可对丢失的数据进行恢复。

此外,本发明实施例还提出一种移动存储设备,所述移动存储设备包括flash存储器以及如上所述多通道nandflash控制器,所述多通道nandflash控制器连接所述flash存储器。

如图2所示的移动存储设备一实施例的结构示意图,所述移动存储设备200包括flash存储器20以及如上所述多通道nandflash控制器100,所述多通道nandflash控制器100连接所述flash存储器20。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1