CN104461966A - 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 - Google Patents
一种基于Nand Flash芯片的数据缓存传输方法及其控制器 Download PDFInfo
- Publication number
- CN104461966A CN104461966A CN201410802886.1A CN201410802886A CN104461966A CN 104461966 A CN104461966 A CN 104461966A CN 201410802886 A CN201410802886 A CN 201410802886A CN 104461966 A CN104461966 A CN 104461966A
- Authority
- CN
- China
- Prior art keywords
- data
- buffer memory
- nand flash
- ecc
- sub
- 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.)
- Granted
Links
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1044—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Read Only Memory (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明公开一种基于Nand Flash芯片的数据缓存传输方法及其控制器,主控缓存灵活对接ECC模块及通道的一种闪存控制器设计及用法。主要通过对缓存进行分割分组控制,使之灵活对接一个或多个ECC模块及通道。无论系统采用单个或多个ECC模块,只要缓存组有空闲,就可以和ECC模块之间进行数据传输,并可以选择目的通道完成缓存和通道之间的数据传输。不同缓存组之间可以并行传输数据,同一缓存组内部各缓存之间也可以并行传输数据,实现了同一页Nand Flash数据在ECC和缓存之间以及缓存与通道之间的并行传输,提高了数据传输效率。
Description
技术领域
本发明涉及一种Nand Flash控制器的设计领域,尤其是涉及一种基于Nand Flash芯片的数据缓存传输方法及其控制器。
背景技术
现有的Nand Flash控制器的结构一般包括ECC生成与校验模块、数据缓存和通道控制模块:其中,ECC生成与校验模块用于在写入数据时生成ECC校验码,并写入Nand Flash,在读取数据时校验读取的ECC码;数据缓存用于存储从Nand Flash中读取或准备写入Nand Flash的数据;通道控制模块控制内部各个模块协调数据缓存和Nand Flash的接口使用。
现有技术中Nand Flash控制器的组织方式是每个通道都有固定对应属于自己的缓存,其他通道不可利用,其组织方式包括以下三种形式:
1、采用一个缓存连接所有通道,使用一个ECC模块,如图1所示,这种组织方式,存在以下缺点:数据传输过程中需等待,ECC模块及其前端的各种资源都处于低效使用状态;整个数据传输路径的传输效率不高。
2、采用多个缓存连接多个通道,且每个缓存对应一个通道,使用一个ECC模块,如图2所示,这种组织方式,与方式1相比:数据传输采用简单的流水方式,虽然效率提高,但是多个缓存会明显增加主控芯片面积和成本。
3、采用多个缓存连接多个通道,且每个缓存对应一个通道,使用多个ECC模块,如图3所示,这种组织方式,与方式1、2相比,增加了多个ECC模块,使ECC模块输出可以并行的工作,但如果只传输一页数据,同样存在上述两种方式的缺陷,且ECC模块与通道等同数量造成资源浪费,增加主控芯片面积和成本。
发明内容
有鉴于此,本发明提供一种基于Nand Flash芯片的数据缓存传输方法及其控制器,对缓存进行分割分组控制,可灵活对接ECC模块和通道。使缓存和ECC模块得到充分合理的配合使用,提高了整体数据的传输效率。
为解决以上技术问题,本发明提供的第一技术方案为一种基于Nand Flash芯片的数据缓存传输方法,包括:传送命令和地址数据到Nand Flash芯片;传送数据信息到数据缓存单元;传送数据缓存单元中的数据信息到控制单元。
所述数据缓存单元至少分割成至少两个以上的子缓存,子缓存依顺序编号为子缓存x,其中x为大于等于1的自然数;数据信息传送到子缓存x的同时,子缓存x-1中的数据信息开始传送至控制单元。
优选的,所述传送数据信息到数据缓存单元之前,还包括:传送数据信息到ECC校验单元,其中ECC校验单元含有一个或多个ECC模块,其中:所述子缓存x根据ECC模块处理能力及Nand Flash页大小参数划分缓存单元得到,其中x等于Nand Flash一页大小除以单个ECC模块可独立编/解码的数据块的大小并向上取整。
优选的,所述若干子缓存组成一个缓存组,进而形成若干缓存组,缓存组依顺序编号为缓存组m,其中m为大于等于1的自然数。
优选的,所述数据缓存单元增加一缓存组调度控制单元,判断缓存组处于空闲状态,将其作为数据传送的发送或接收单元。
优选的,所述ECC校验单元增加一ECC调度控制单元,判断ECC模块处于空闲状态,将其作为数据传送的发送或接收单元。
优选的,所述缓存组的数量M与ECC模块的数据K、通道的数量N满足以下关系:K≤M≤N。
优选的,传送数据时,同一缓存组内不同的小缓存数据并行传输;不同缓存组 之间数据并行传输;一个通道可对应多个缓存组进行数据传输;且每个缓存组每次都只能连续的输出到一个通道或者从一个通道接收。
优选的,传送数据时,同一页数据只能由同一个ECC模块编码或解码;同一页数据只能由同一个缓存组暂存。
本发明提供的第二技术方案为一种高效Nand Flash控制器,包括:总线接口单元,ECC校验单元、数据缓存单元、控制单元、通道。
其中,所述ECC校验单元包括一个或多个独立的ECC模块;所述数据缓存单元至少分割成至少两个以上的子缓存,子缓存依顺序编号为子缓存x,其中x为大于等于1的自然数;所述子缓存;所述若干子缓存组成一个缓存组,进而形成若干缓存组,缓存组依顺序编号为缓存组m,其中m为大于等于1的自然数。
所述总线接口单元,与ECC校验单元相连接,用于实现控制器与外部系统总线的命令及数据交互。
所述ECC校验单元,与总线接口单元和数据缓存单元相连接,控制ECC模块作为数据传送的发送或接收单元。
所述数据缓存单元,与ECC校验单元和控制单元连接,控制缓存组作为数据传送的发送或接收单元,用于传输向Nand Flash写入的数据或从Nand Flash读取的数据。
所述控制单元,通过通道与Nand Flash芯片相连接,控制通道接收传输过来的数据。
所述Nand Flash控制器采用并行的方式进行数据传输:传送数据时,数据信息传送到所述子缓存x的同时,子缓存x-1中的数据信息开始传送至控制单元。
优选的,所述ECC校验单元增加一ECC调度控制单元,用于判断ECC模块处于空闲状态,将其作为数据传送的发送或接收单元。
优选的,所述数据缓存单元增加一缓存组调度控制单元,判断缓存组处于空闲状 态,将其作为数据传送的发送或接收单元。
优选的,所述ECC模块数量K与缓存组数量M及通道数量N满足以下关系:K≤M≤N。
优选的,所述ECC模块与所述子缓存、缓存组及通道相对独立。
本发明的首要改进之处为该Nand Flash控制器缓存设计主要采用对数据缓存进行分割分组控制,将数据缓存分割成至少两个以上子缓存,其中若干存组成一个缓存组。每个缓存组包括多个独立的子缓存,可以对接一个或多个ECC模块以及一个或多个通道,实现数据的并行传输。
本发明的有益效果是该Nand Flash控制器及其控制方法能够使缓存和ECC模块得到充分合理的配合使用,屏蔽了每个通道都需要固定缓存导致缓存容量增大而利用率低的缺点,避免资源浪费;同时,缓存组内部独立划分成多个子缓存并管理分组,实现ECC与缓存之间以及缓存与通道之间的数据并行传输,摒弃了现有技术方案采用一页大小及以上的缓存时,ECC与缓存之间以及缓存与通道之间都要等一方传输完一页数据后,另一方才能开始传输的缺点,提高了整体数据的传输效率。
附图说明
图1为现有Nand Flash控制器设计方案1框图;
图2为现有Nand Flash控制器设计方案2框图;
图3为现有Nand Flash控制器设计方案3框图;
图4为本发明Nand Flash控制器设计方案框图;
图5为本发明所述ECC选择模块内部结构框图;
图6为本发明所述数据缓存模块内部结构框图;
图7为本发明所述Nand Flash控制器控制多个Nand Flash芯片的控制方法流程图;
图8为图7所述步骤1的具体实现流程图;
图9为图7所述步骤2的具体实现流程图;
图10为本发明所述Nand Flash控制器控制多个Nand Flash芯片传输数据内部结构框图;
图11为现有Nand Flash控制器控制多个Nand Flash芯片传输数据内部结构框图;
图12为现有Nand Flash控制器控制多个Nand Flash芯片数据传输所需时间框图;
图13为本发明Nand Flash控制器控制多个Nand Flash芯片数据传输所需时间框图。
具体实施方式
为了使本领域的技术人员更好地理解本发明的技术方案,下面结合具体实施方式对本发明作进一步的详细说明。
下面介绍控制器整体操作流程,如图7所示,本发明Nand Flash控制器与多组Nand Flash芯片连接,其控制多个Nand Flash芯片的方法,包括以下步骤:
步骤1:基于动态分割数据缓存模块,分割成几个小缓存,并进行分组控制。
步骤2:Nand Flash控制器对Nand Flash芯片,进行写操作时,外部控制命令先将数据写入小缓存,进而写入Nand Flash芯片中;进行读操作时,先将数据读取到小缓存。
如图8所示,所述步骤1中将数据缓存进行分割,并分组控制的具体实现为:
步骤1-1:确定系统所需的通道数N;
步骤1-2:确定ECC的数量K,并增加一ECC调度控制单元;
步骤1-3:基于前述步骤(1-1)至(1-2)确定缓存组的数量M,其中所述缓存组的数量M与ECC的数据K、通道的数量N满足以下关系:K≤M≤N;
步骤1-4:所述步骤1-3的缓存组根据ECC模块处理能力及Nand Flash页大 小参数分割数据缓存得到,其由“X”个小缓存组成;
步骤1-5:在Nand Flash控制器中增加一缓存组调度控制单元,由该缓存组调度控制单元控制动态分配出来的缓存。
如图9所示,所述步骤2中Nand Flash控制器对Nand Flash芯片进行读写操作具体实现为:
步骤2-1:ECC调度控制单元查询各个ECC模块的状态,直到查询到某个ECC模块空闲,进行写操作时,选择其接收系统总线传输过来的数据处理并输出到缓存;进行读操作时,选择其接收缓存传输过来的数据处理并输出到系统总线;
步骤2-2、根据步骤1-5所述的缓存组调度控制单元查询各个缓存组的状态,直到查询到某个缓存组空闲,进行写操作时,选择其接收ECC模块传输过来的数据处理并输出到通道;进行读操作时,选择其接收通道传输过来的数据处理并输出到ECC模块;
步骤2-3、所述通道、ECC接收完来自缓存组的数据,进行写操作时,通道通过Nand Flash控制接口将数据写入Nand Flash芯片中;进行读操作时,读取来着ECC模块的数据到总线。
下面就本发明Nand Flash控制器作详细介绍,如图4所示,本发明Nand Flash控制器与多组Nand Flash芯片连接,本发明所述高效Nand Flash控制器,包括总线接口单元1,ECC校验单元2、数据缓存单元3、控制单元4、通道5。
所述总线接口单元1与ECC校验单元2相连接,提供对ECC校验单元2的访问,用于实现控制器与外部系统总线的命令及数据交互。
所述ECC校验单元2与总线接口单元1和数据缓存单元3相连接,如图5所示,包括ECC调度控制单元201和多个独立的ECC模块202。所述ECC调度控制单元201控制ECC模块202传输数据,将其作为数据传送的发送或接收单元;所述ECC模块202,用于在向Nand Flash写入数据时生成ECC校验码,从Nand Flash读取 数据时读取ECC校验码,利用读取的ECC校验码纠正数据错误。
所述数据缓存单元3与ECC校验单元2和控制单元4相连接,如图6所示,包括缓存组调度控制单元301和多个独立的缓存组302,其中,所述每个缓存组302由多个独立的子缓存303组成,由缓存组调度控制单元301控制缓存组302传输数据,将其作为数据传送的发送或接收单元,用于传输向Nand Flash写入的数据或从Nand Flash读取的数据。
所述控制单元4,通过通道5与Nand Flash芯片相连接,控制通道5接收传输过来的数据。
所述通道5,用于实现数据缓存单元与内存的数据交互。
如图4所示,所述ECC模块202与所述数据缓存单元3及通道5相对独立,缓存组302中的各个子缓存303相对独立,所述ECC模块数量K与缓存组数量M及通道数量N满足以下关系:K≤M≤N。
下面对本申请中所述的缓存分割分组过程进行如下介绍:
如图4所示,系统通道有N个;根据系统ECC模块处理能力和Nand Flash接口的传输速率之间的倍数关系,考虑芯片面积、成本确定ECC模块有K个;将数据缓存模块分割成M个组,每个缓存组又分成X个子缓存,且K≤M≤N;
其中,每个缓存组的总容量等于Nand Flash一页大小;其中X等于Nand Flash一个页的大小除以单个ECC模块可独立编/解码的数据块的大小并向上取整,每个缓存组中的X子缓存,其中所述子缓存X的大小是ECC模块可独立编/解码的数据块及其校验码的大小。
经过划分后,每个组内的X子缓存都能独立地与ECC模块进行数据传输。每个组每次都只能连续地输出到一个通道或者从一个通道接收。组数量M根据根据实际需求选择,以达到最优配置。无论系统采用单个ECC模块还是多个ECC模块,只要有空闲的缓存组,就可以进行ECC模块和空闲缓存组之间的数据传输。
下面对本申请中所述的调度过程进行如下介绍:
所述ECC调度控制单元,用于判断ECC模块处于空闲状态,当通过Nand Flash控制器写数据时,其调度空闲的ECC模块用于当前写数据的ECC编码;当通过Nand Flash控制器读数据时,其调度空闲的ECC模块用于当前读数据的ECC解码。
所述缓存组调度控制单元,判断缓存组处于空闲状态,当通过Nand Flash控制器写数据时,其调度空闲的缓存组接收从ECC模块输出的数据以及将数据输出到Nand Flash芯片;当通过Nand Flash控制器读数据时,其调度空闲的缓存组用于接收从Nand Flash芯片传送过来的数据以及将数据输出到ECC模块。
下面以具体实施操作实例作进一步的说明:
写数据时,一页数据从总线传输到ECC校验单元时,ECC调度控制单元调度一个空闲的ECC模块用于数据的ECC编码;一页数据从该ECC模块传输到缓存组时,缓存组调度控制单元调度一个空闲的缓存组用于接收从ECC模块输出的数据,且先传输到缓存组内的第一子缓存,再传输到第二子缓存,依此类推,最终将该页最后一笔数据传输到第x个缓存。缓存组传输数据到Nand Flash芯片时,先将第一子缓存的数据传输,再将第二子缓存的数据传输,依此类推,直到第x子缓存的数据传输完,其中各个子缓存只有接收完ECC模块传输的数据后才可以开启其到Nand Flash芯片的数据传输。
读数据时,一页数据从Nand Flash芯片传输到缓存组时,缓存组调度控制单元调度一个空闲的缓存组用于接收从Nand Flash芯片输出的数据,且先传输到缓存组内的第一子缓存,再传输到第二子缓存,依此类推,最终将该页最后一笔数据传输到第x个缓存。缓存组传输数据到ECC模块时,ECC调度控制单元调度一个空闲的ECC模块用于数据的ECC解码,缓存组先将第一子缓存的数据传输到ECC模块,再将第二子缓存的数据传输到ECC,依此类推,直到第x缓存的数据传输完。
以写数据为例,数据并行传送过程:将待传输数据分成几个数据来传输,首先 ECC模块将待传输数据第一数据传输到其中某一缓存组的第一子缓存,第一数据传输完毕后,该第一子缓存将接收到的数据传输到通道,在此同时,ECC模块将待传输数据中的第二数据传输到该缓存组的第二子缓存,第二数据传输完毕后,第二子缓存紧着接将接收到的第二数据传输到通道,以此方式,直到整个数据传输完毕。
以写数据为例,如图10所示,首先对数据缓存进行分割、分组,系统采用的Nand Flash一个页的大小为4KB,ECC模块可独立编/解码的数据块及其校验码大小为2KB,所以每个缓存组的总容量为4KB,同时系统设计有4个通道,ECC处理数据的速率大约为数据从通道进入Nand Flash芯片的速率的4倍,因此在综合考虑主控面积和性能的情况下,采用1个ECC模块,选择使用2组缓存组。
将一个页的数据写入通道1,首先系统总线将数据信息传输给ECC校验单元,ECC调度控制单元判断ECC模块目前是否处于空闲状态,若是处于忙碌状态就继续判断查询ECC模块是否空闲,若处于空闲状态表明ECC模块当前可用,则接收来自总线的数据并处理传输给数据缓存单元;数据缓存单元中的缓存组调度控制单元通过查询判断找到缓存组1处于空闲状态,于是使用“缓存组1”作为ECC模块的输出接收端,缓存组1先使用缓存1接收第一部分从ECC输出的数据(①号路径),然后通过通道1NAND Flash控制单元再输出给通道1(③号路径);在③号路径传输的同时,缓存组控制单元切换缓存组1的接收缓存为缓存2,同时ECC模块输出数据到缓存2(②号路径)。由于速率差异,②号路径传输完时,③号路径仍然在传输,因此,ECC模块继续输出到缓存3(③号路径)。当③号路径传输完成后,④号依次完成传输,最终完成一个页的传输。
若将一页数据写入到缓存后,紧接着对另一通道2的数据要求写入,例如:ECC模块在输出该页数据的校验码到缓存组1的第3个缓存(1KB)后,紧接着又有对通道2的数据写入请求,则系统选择缓存组2作为ECC模块新的输出缓存,在缓存组1仍然向通道1传输数据的同时,ECC模块可以并行的向缓存组2内的缓存输出 数据,一旦将数据输出到一个子缓存完成,则该子缓存也可立即开始向通道2传输数据,依此类推,只要缓存组有空闲,就可以和ECC模块之间进行数据传输,并可以选择目的通道完成缓存和通道之间的数据传输。
就上述数据传输过程可实现数据并行传输,提高数据传输效率,作如下说明:现有技术实现数据传输:如图11所示,写数据时数据顺序传输,采用全流水方式传输,数据传输到缓存1即⑤号路径,再由缓存1传输到通道即⑥号路径,直到通道接收数据完成后,数据再从缓存传输到通道,由于ECC传输数据到缓存的速率是缓存到通道进而传输到Nand Flash芯片4倍,整个传输过程需要等待时间。其所用传输时间如图12所示,设ECC传输1KB的数据到缓存所需时间为t,则缓存传输1KB的数据到Nand Flash芯片的时间为4t,采用现有技术流水方式传输数据一个页4KB的数据到Nand Flash芯片所用时间为20t:ECC传输数据到缓存即⑦路径的时间4t加上缓存传输到Nand Flash即⑧路径的时间“*4t”即16。
采用本申请实现数据并行传输,如图10所示,数据传输到子缓存1即①号路径,子缓存1将数据传输到通道即③号路径,在此同时,又有数据传输到子缓存2即②号路径,子缓存2将数据传输到通道即4号路径传输过程中,不需要等待,其所用传输时间如图13所示,传输数据一个页4KB的数据到Nand Flash芯片所用时间为18t:ECC传输数据到子缓存1即⑨号路径的时间2t加上子缓存1传输到Nand Flash即⑩号路径的时间“2*4t”即8t,加上子缓存2传输到Nand Flash即号路径的时间“2*4t”即8t。采用本申请方式传输4KB数据比现有方式节约了2t的时间,即减少了10%的时间。
在具体实施中,向同样的Nand Flash芯片,分别以现有方式和本申请方式传输同样大小及不同大小的数据。
对照组—采用现有方式传输数据
采用现有方式向Nand Flash芯片实现数据传输,并测试其传输使用时间及性 能指标。
实验组—采用本申请方式传输数据
采用本申请方式向Nand Flash芯片实现数据传输,并测试其传输使用时间及性能指标。
下面举例说明在不用条件下,现有方式传输数据及本申请方式传输数据的时间及性能指标,其中,设ECC传输1KB的数据到缓存所需时间为t,一页数据连续与同一通道进行传输,其检测结果如表1所示:
表1—检测结果1
两页数据连续与同一通道进行传输,其检测结果如表2所示:
表2—检测结果2
两页数据连续与不同通道进行传输,其检测结果如表3、表4所示:
表3—检测结果3
两页数据连续与不同通道进行传输,其检测结果如表4所示:
表4—检测结果4
从表1可以看出:一页数据连续与同一通道进行传输,采用本申请方式,其传输时间明显缩短。
从表2可以看出:两页数据连续与同一通道进行传输,采用本申请方式,其传输时间明显缩短,且对照表1可知,传输数据越大,其传输效率相对越高。
从表3可以看出:两页数据连续与不同通道进行传输,采用本申请方式,其传输时间明显缩短。
从表4可以看出:两页数据连续与不同通道进行传输,采用本申请方式,其传输时间明显缩短。
采用本申请传输方式比现有方式提高了数据传输路径上各模块的配合使用效率,提高了数据传输效率。
以上仅是本发明的优选实施方式,应当指出的是,上述优选实施方式不应视为对本发明的限制,本发明的保护范围应当以权利要求所限定的范围为准。对于本技术领域的普通技术人员来说,在不脱离本发明的精神和范围内,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种基于Nand Flash芯片的数据缓存传输方法,包括:
传送命令和地址数据到Nand Flash芯片;
传送数据信息到数据缓存单元;
传送数据缓存单元中的数据信息到控制单元;其特征在于:
数据缓存单元至少包含两个以上的子缓存,子缓存依顺序编号为子缓存x,其中x为大于等于1的自然数;数据信息传送到子缓存x的同时,子缓存x-1中的数据信息开始传送至控制单元。
2.根据权利要求1所述的一种基于Nand Flash芯片的数据缓存传输方法,所述传送数据信息到数据缓存单元之前,还包括:传送数据信息到ECC校验单元,其中ECC校验单元含有一个或多个ECC模块,其特征在于:
所述子缓存x根据ECC模块处理能力及Nand Flash页大小参数划分缓存单元得到,其中x等于Nand Flash一页大小除以单个ECC模块可独立编/解码的数据块的大小并向上取整。
3.根据权利要求1所述的一种基于Nand Flash芯片的数据缓存传输方法,其特征在于:
所述若干子缓存组成一个缓存组,进而形成若干缓存组,缓存组依顺序编号为缓存组m,其中m为大于等于1的自然数。
4.根据权利要求1所述的一种基于Nand Flash芯片的数据缓存传输方法,其特征在于:
所述数据缓存单元增加一缓存组调度控制单元,判断缓存组处于空闲状态,将其作为数据传送的发送或接收单元。
5.根据权利要求2所述的一种基于Nand Flash芯片的数据缓存传输方法,其特征在于:
所述ECC校验单元增加一ECC调度控制单元,判断ECC模块处于空闲状态,将其作为数据传送的发送或接收单元。
6.根据权利要求1、2、3所述的一种基于Nand Flash芯片的数据缓存传输方法,还包括传送数据到通道,其特征在于:
所述缓存组的数量M与ECC模块的数据K、通道的数量N满足以下关系:K≤M≤N。
7.根据权利要求1所述的一种高基于Nand Flash芯片的数据缓存传输方法,其特征在于:
传送数据时,同一缓存组内不同的小缓存数据并行传输;不同缓存组之间数据并行传输;一个通道可对应多个缓存组进行数据传输;且每个缓存组每次都只能连续的输出到一个通道或者从一个通道接收;
传送数据时,同一页数据只能由同一个ECC模块编码或解码;
传送数据时,同一页数据只能由同一个缓存组暂存。
8.一种高效Nand Flash控制器,包括:总线接口单元,ECC校验单元、数据缓存单元、控制单元、通道,其特征在于:
所述ECC校验单元包括一个或多个独立的ECC模块;所述数据缓存单元至少分割成至少两个以上的子缓存,子缓存依顺序编号为子缓存x,其中x为大于等于1的自然数;所述若干子缓存组成一个缓存组,进而形成若干缓存组,缓存组依顺序编号为缓存组m,其中m为大于等于1的自然数。
所述Nand Flash控制器采用并行的方式进行数据传输:传送数据时,数据信息传送到所述子缓存x的同时,子缓存x-1中的数据信息开始传送至控制单元。
9.根据权利要求8所述的一种高效Nand Flash控制器,其特征在于:
所述ECC校验单元增加一ECC调度控制单元,用于判断ECC模块处于空闲状态,将其作为数据传送的发送或接收单元;
所述数据缓存单元增加一缓存组调度控制单元,判断缓存组处于空闲状态,将其作为数据传送的发送或接收单元。
10.根据权利要求8所述的一种高效Nand Flash控制器,其特征在于:
所述ECC模块数量K与缓存组数量M及通道数量N满足以下关系:K≤M≤N。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410802886.1A CN104461966B (zh) | 2014-12-19 | 2014-12-19 | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410802886.1A CN104461966B (zh) | 2014-12-19 | 2014-12-19 | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461966A true CN104461966A (zh) | 2015-03-25 |
CN104461966B CN104461966B (zh) | 2017-07-21 |
Family
ID=52908048
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410802886.1A Active CN104461966B (zh) | 2014-12-19 | 2014-12-19 | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461966B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145454A (zh) * | 2017-05-15 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据读写的方法与装置 |
CN108829613A (zh) * | 2018-05-24 | 2018-11-16 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN110134616A (zh) * | 2019-04-12 | 2019-08-16 | 深圳市金泰克半导体有限公司 | Nand闪存的垃圾回收方法及nand闪存 |
CN111211992A (zh) * | 2019-12-26 | 2020-05-29 | 南京领行科技股份有限公司 | 一种信息传输方法及装置 |
CN116931842A (zh) * | 2023-09-12 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种存储器、数据处理方法、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102097122A (zh) * | 2009-12-10 | 2011-06-15 | 上海华虹集成电路有限责任公司 | 一种多通道共享数据缓存区的NAND flash控制器电路 |
CN102103559A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有AES和ECC的多通道NANDflash控制器 |
CN202003346U (zh) * | 2010-12-22 | 2011-10-05 | 上海宇芯科技有限公司 | 一种多通道的nand flash控制器 |
CN103226977A (zh) * | 2013-03-21 | 2013-07-31 | 山东大学 | 基于fpga的快速nand flash控制器及其控制方法 |
US20130198448A1 (en) * | 2012-01-31 | 2013-08-01 | Mark Ish | Elastic cache of redundant cache data |
-
2014
- 2014-12-19 CN CN201410802886.1A patent/CN104461966B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102097122A (zh) * | 2009-12-10 | 2011-06-15 | 上海华虹集成电路有限责任公司 | 一种多通道共享数据缓存区的NAND flash控制器电路 |
CN102103559A (zh) * | 2009-12-18 | 2011-06-22 | 上海华虹集成电路有限责任公司 | 一种带有AES和ECC的多通道NANDflash控制器 |
CN202003346U (zh) * | 2010-12-22 | 2011-10-05 | 上海宇芯科技有限公司 | 一种多通道的nand flash控制器 |
US20130198448A1 (en) * | 2012-01-31 | 2013-08-01 | Mark Ish | Elastic cache of redundant cache data |
CN103226977A (zh) * | 2013-03-21 | 2013-07-31 | 山东大学 | 基于fpga的快速nand flash控制器及其控制方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145454A (zh) * | 2017-05-15 | 2017-09-08 | 郑州云海信息技术有限公司 | 一种数据读写的方法与装置 |
CN108829613A (zh) * | 2018-05-24 | 2018-11-16 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
WO2019223187A1 (zh) * | 2018-05-24 | 2019-11-28 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN108829613B (zh) * | 2018-05-24 | 2020-12-29 | 中山市江波龙电子有限公司 | 数据存储方法及存储设备 |
CN110134616A (zh) * | 2019-04-12 | 2019-08-16 | 深圳市金泰克半导体有限公司 | Nand闪存的垃圾回收方法及nand闪存 |
CN111211992A (zh) * | 2019-12-26 | 2020-05-29 | 南京领行科技股份有限公司 | 一种信息传输方法及装置 |
CN111211992B (zh) * | 2019-12-26 | 2023-08-15 | 南京领行科技股份有限公司 | 一种信息传输方法及装置 |
CN116931842A (zh) * | 2023-09-12 | 2023-10-24 | 合肥康芯威存储技术有限公司 | 一种存储器、数据处理方法、电子设备及介质 |
CN116931842B (zh) * | 2023-09-12 | 2023-12-08 | 合肥康芯威存储技术有限公司 | 一种存储器、数据处理方法、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN104461966B (zh) | 2017-07-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461966A (zh) | 一种基于Nand Flash芯片的数据缓存传输方法及其控制器 | |
CN100505676C (zh) | 智能多缓冲区管理的集中调度控制器和动态调度方法 | |
CN109388590B (zh) | 提升多通道dma访问性能的动态缓存块管理方法和装置 | |
CN109085997A (zh) | 用于非易失性存储器的存储器高效持续键值储存 | |
CN103077123A (zh) | 一种数据写入和读取方法及装置 | |
US9569381B2 (en) | Scheduler for memory | |
CN104090847A (zh) | 一种固态存储设备的地址分配方法 | |
CN104394096A (zh) | 一种基于多核处理器的报文处理方法及多核处理器 | |
CN105183662A (zh) | 一种无cache一致性协议的分布式共享片上存储架构 | |
US7760768B2 (en) | System and method for allocating a plurality of sources to a plurality of channels | |
CN110716691B (zh) | 调度方法、装置、闪存设备和系统 | |
CN104615684A (zh) | 一种海量数据通信并发处理方法及系统 | |
CN102255687A (zh) | 速率匹配方法与装置 | |
CN107391422A (zh) | 多路异步串行通讯数据访问系统及方法 | |
CN102821045B (zh) | 多播报文复制方法及装置 | |
CN111581136B (zh) | 一种dma控制器及其实现方法 | |
CN106027426A (zh) | 防止欠载的分组存储器系统、方法和设备 | |
CN202003346U (zh) | 一种多通道的nand flash控制器 | |
CN101566933B (zh) | 一种配置缓存的方法、装置和电子设备及数据读写装置 | |
CN106547707A (zh) | 阵列处理器中簇内存储并行访问局部优先交换电路 | |
CN102568605B (zh) | 系统总线检错纠错方法和nand flash控制器 | |
CN101488119B (zh) | 地址译码方法、装置及单板 | |
CN103176927A (zh) | 在两总线间进行序列位址位元转换的装置 | |
CN102611667A (zh) | 随机接入检测fft/ifft处理方法及装置 | |
CN103999074A (zh) | 数字信号处理器及寻址数字信号处理器中的存储器的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |