CN103778013A - 一种多通道Nand Flash控制器及其控制方法 - Google Patents
一种多通道Nand Flash控制器及其控制方法 Download PDFInfo
- Publication number
- CN103778013A CN103778013A CN201410034956.3A CN201410034956A CN103778013A CN 103778013 A CN103778013 A CN 103778013A CN 201410034956 A CN201410034956 A CN 201410034956A CN 103778013 A CN103778013 A CN 103778013A
- Authority
- CN
- China
- Prior art keywords
- micro
- order
- module
- nand flash
- command
- 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
Images
Abstract
本发明涉及一种多通道Nand Flash控制器及其控制方法,包括总线接口、指令接收模块、指令处理模块、IO接口时序模块和数据传输模块;其中指令处理模块,将接收的指令分解为若干个微指令,按照预定的算法调度相应的微指令执行,并根据微指令通过IO接口时序模块对Nand Flash芯片进行相应操作;本发明将指令分解为微指令,并动态分析出微指令间的依赖关系、接口总线的状态和各个NAND Flash芯片的状态,并在微指令的基础上行进行缓存管理、指令动态调度,能够减少对数据缓存的需求,提高在外部控制指令随机请求条件下的性能。
Description
技术领域
本发明涉及闪存技术领域,尤其涉及一种多通道Nand Flash控制器及其控制方法。
背景技术
NAND Flash是一种块页式结构的非易失性存储器,其存储空间由若干存储块(Block)组成,每个存储块由若干存储页(Page)组成。存储页可以分为两个存储区,较大的是数据区,用于存放数据,较小的是spare区,通常用于存放ECC校验码等信息。以Micron公司的32Gb闪存芯片MT29F32G08ABCAB为例,数据的组织单位为LUN,每个LUN包括两个Plane,每个Plane包含2048个block,每个block包含128个page,每个page包含8kB的数据区和448B的spare区。
NAND Flash结构能提供极高的单元密度,可以达到很高的存储密度,并且写入和擦除的速度也很快。应用NAND Flash的困难在于Flash的管理和使用需要特殊的系统接口。
Nand Flash的操作具有以下特点:
1)存储结构为块页式,存储空间分为多个块,每个块分为多个页;
2)读操作以页为单位,可以随机读取任意位置的页;
3)写操作以页为单位,需要按照块中页的顺序写入。写过的页不能重复写数据,必须先进行擦出操作才能再次写入;
4)擦除操作以块为单位;
5)每一个块的写和擦除操作有最大次数限制,超过限制后产生坏块的概率增加,在正常操作时也会有一定概率产生坏块;
6)读取的数据有一定概率会产生几个比特的错误,需要设计纠错码纠正错误。
NAND Flash的这种特殊的块状结构有利于其存储密度的提高,却使其不能够像一般存储器那样直接访问,需设计专用的控制方法。对NAND Flash的控制一般分为两个层次:用逻辑实现其底层时序的控制,用软件实现复杂的算法设计。前者一般称为NAND Flash控制器。
NAND Flash控制器的主要作用包括:
1)实现Nand Flash接口控制时序,将Nand Flash指令翻译成对应的时序;
2)写入数据时生成ECC校验数据和读取数据进行校验和纠错功能;
3)为软件提供简单的控制接口,
4)实现流水线操作和数据的DMA传输以提高性能;
现有的Nand Flash控制器的结构一般包括核心状态机、数据缓存、Ecc生成与校验模块和IO时序电路模块;其中,核心状态机解析外部指令,并控制内部各个模块协调工作;数据缓存用于存储从Nand Flash中读取或准备写入Nand Flash的数据;ECC生成与校验模块用于在写入数据时生成ECC校验码,并写入Nand Flash,在读取数据时校验读取的ECC码;IO实现电力用于产生满足Nand Flash接口时序要求的各个引脚信号。
现有技术中Nand Flash芯片的组织方式包括一下三种形式:
1.采用N片并行的方式组织Nand Flash(即各Nand Flash芯片的控制线和片选信号公用,数据线各自独立),这种组织方式,其存在以下缺点:
1)所用控制器的逻辑复杂度与控制单片Nand Flash的相同,但数据位宽度需要增加N倍;
2)控制器的IO引脚占用非常多;
3)需要大量缓存,其需求量是单片Nand Flash的N倍;
4)最小读写单元是单片的N倍,对于读写小数据效率极低;
5)无法减少NF接口读写擦指令中的等待时间。
2.采用M级流水的方式组织Nand Flash(即各Nand Flash芯片的控制线和数据线公用,片选信号各自独立),这种方式在顺序读、写数据时能够提高性能,但是在读写擦指令随机顺序请求时,控制器则无法实现流水操作。
3.采用N级并行M级流水方式组织Nand Flash,这种组织方式是上述两种情况的简单组合,上述两种方式的优缺点在这种组合方式中也都存在。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种多通道Nand Flash控制器及控制方法,其解决现有技术无法处理指令随机请求的情况,减少控制器占用缓存空间,同时简化上层控制接口。
本发明解决上述技术问题的技术方案如下:一种多通道Nand Flash控制器,包括总线接口模块、指令接收模块、指令处理模块、IO接口时序模块、数据传输模块;
所述总线接口模块,其与指令接收模块或数据传输模块连接,用于实现控制器与外部系统总线的命令及数据交互;
所述指令接收模块,其与指令处理模块连接,用于缓存指令,并将指令发送给指令处理模块,还用于存储指令的执行状态;
所述指令处理模块,其与IO接口时序模块连接,用于将接收的指令分解为若干个微指令,按照预定的执行策略执行微指令,通过IO接口时序模块对Nand Flash芯片进行相应操作,并监测微指令的执行过程,执行完成向指令接收模块返回执行状态;
所述IO接口时序模块,其采用M级流水的方式与多个Nand Flash芯片连接,用于实现Nand Flash芯片要求的接口时序电路,在系统复位后自动调整信号时延,校准接口时序关系;
所述数据传输模块,其与IO接口时序模块连接,用于根据微指令通过IO接口时序模块传输向Nand Flash写入数据或从Nand Flash读取的数据。
本发明的有益效果是:
1)通过将指令分解为微指令,并利用微指令调度算法,优化微指令执行顺序和时间,在保证系统功能正确的情况下,系统的随机读写性能得到大幅提高;
2)在微指令执行时对数据缓存进行管理,大大减少了对数据缓存的占用时间,数据缓存的大小与流水级数无关。与其它高性能的控制器相比,需要的数据缓存资源大大减少。
总之,本发明将指令分解为微指令,并动态分析出微指令间的依赖关系、接口总线的状态和各个NAND Flash芯片的状态,并在微指令的基础上行进行缓存管理、指令动态调度,能够减少对数据缓存的需求,提高指令随机请求条件下的性能。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,所述指令接收模块包括寄存器单元、指令队列和状态队列;
所述寄存器,其用于存储控制器的配置参数及状态信息;
所述指令队列,其用于接收外部由控制总线接口输入的指令,并将指令传送给指令处理模块的指令分解单元;
所述状态队列,其用于存储每条指令在执行完成后的状态信息。
进一步,所述指令处理模块包括指令分解单元、微指令调度单元和微指令执行单元;
所述指令分解单元,其用于将接收的指令分解成若干个微指令,并将微指令发送给微指令调度单元;还用于将微指令执行单元返回的执行状态写入指令接收模块的状态队列;
所述微指令调度单元,其用于根据预定的调度算法在每接收一条微指令时,对其内部缓存中的微指令排序,并将微指令依次传送给微指令执行单元,并每执行完一条微指令,根据预定的算法更新缓存中的微指令的相关关系;
所述微指令执行单元,其用于根据微指令的类型控制IO时序接口模块执行微指令,如果存在数据操作,则控制数据传输模块进行数据传输;其还用于监控各条微指令的执行状态,在执行完成后,将执行状态返回给指令分解单元。
进一步,所述数据传输模块包括ECC单元、数据缓存单元和DMA引擎;
所述ECC单元,其用于在向Nand Flash写入数据时生成ECC校验码,并将ECC校验码写入Nand Flash的spare区;还用于从Nand Flash读取数据时读取ECC校验码,利用读取的ECC校验码纠正数据错误;
所述数据缓存单元,其用于缓存待写入Nand Flash的数据或从NandFlash读出的数据;
所述DMA引擎,其用于实现数据缓存单元与内存的数据交互。
进一步,所述微指令调度单元内部具有缓存空间,可存储多条微指令;微指令执行单元支持多条无相关关系的微指令同时执行。
本发明解决上述技术问题的技术方案如下:一种多通道Nand Flash控制器控制多个Nand Flash芯片的方法,包括如下步骤:
步骤1:上电复位或软件控制复位时,控制器进行初始化操作;
步骤2:总线接口模块的控制总线接口接收外部输入的各种指令,并发送给指令接收模块;
步骤3:指令接收模块验证接收指令的正确性,验证通过的指令传送给指令处理模块;
步骤4:指令处理模块将指令分解成若干微指令,并按预定执行策略通过IO接口时序模块执行相应的微指令;
步骤5:数据传递模块根据指令处理模块的相应动作,通过总线接口模块的数据总线接口配合完成数据的传输。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,步骤4中所述指令处理模块将指令分解成若干微指令,并按预定执行策略执行相应的微指令的具体实现为:
步骤4.1:指令分解单元将接收的指令分解成若干个微指令,并将微指令发送给微指令调度单元的缓存空间;
步骤4.2:微指令调度单元根据预定的执行策略在每接收一条微指令时,对其内部缓存中的微指令排序,并将微指令依次传送给微指令执行单元;
步骤4.3:微指令执行单元根据微指令的类型控制IO时序接口模块执行微指令,如果存在数据操作,则控制数据传输模块进行数据传输;
步骤4.4:微指令执行单元实时监控各条微指令的执行状态,在执行完成后,将执行结果返回给指令分解单元,同时微指令调度单元更新缓存中微指令的相关关系;
步骤4.5:指令分解单元将微指令执行单元返回的执行结果写入指令接收模块的状态队列。
进一步,步骤4.2中微指令调度单元中的预定执行策略为:微指令调度单元收到一条微指令时,
首先,根据预定的微指令优先级设定规则为微指令执行单元缓存中的各微指令排列优先级;
其次,根据预定的微指令相关关系判断规则,判断该微指令是否具有相关关系;
最后,通过预定调度算法选择出无相关关系、优先级最高的微指令,发送给微指令执行单元同时执行,如果没有无相关关系的微指令,则等待。
进一步,所述预定的微指令优先级设定规则包括,无执行时间的微指令的优先级比任何有执行时间的微指令的优先级高;先收到的微指令的优先级高于后收到的微指令的优先级;
所述预定的微指令相关关系判断规则包括,设置写指令的第一条微指令与比它优先级高的读指令的最后一条微指令具有相关关系;如果两条微指令需要使用相同的资源,则优先级低的微指令具有相关关系;无执行时间的微指令无相关关系,有执行时间的微指令有相关关系;
所述预定调度算法为,按照无相关关系、优先级由高到低的顺序调度微指令,将微指令发送给微指令执行单元。
进一步,上述技术方案还包括当指令在执行过程中出现错误时,可通过配置指令接收模块的寄存器单元,将指令执行过程在指令处理模块的指令分解单元终止或在微指令调度单元终止;如果在指令分解单元终止,则指令分解单元停止工作,微指令调度单元继续工作,所有已经在微指令调度单元缓存的微指令都会继续执行;如果在微指令调度单元终止,则微指令调度单元也停止工作,外部系统可查询指令接收模块的命令队列和指令处理模块的微指令调度单元的缓存,分析当前状态并进行差错处理。
附图说明
图1为本发明所述多通道Nand Flash控制器内部结构框图;
图2为本发明所述指令接收模块内部结构框图;
图3为本发明所述指令处理模块内部结构框图;
图4为本发明所述数据传输模块内部结构框图;
图5为本发明所述多通道Nand Flash控制器控制多个Nand Flash芯片的控制方法流程图;
图6为本发明所述步骤4的具体实现流程图;
图7a-7c分别为本发明所述NAND Flash读写擦指令的时序图;
图8为本发明所述实施例1中指令执行时间轴向图;
图9为本发明所述实施例2中指令执行时间轴向图;
图10为本发明所述实施例3中指令执行时间轴向图。
附图中,各标号所代表的部件列表如下:
1、总线接口模块,2、指令接收模块,3、指令处理模块,4、IO接口实时序模块,5、数据传输模块,101、控制总线模块,102、数据总线模块,201、寄存器单元,202、指令队列,203、状态队列,301、指令分解单元,302、微指令调度单元,303、微指令执行单元,501、ECC单元、502、数据缓存单元,503、DMA引擎。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
如图1所示,本发明所述多通道Nand Flash控制器与多个NAND Flash芯片连接,其与NAND Flash芯片的接口为多级流水结构,所有Flash芯片的数据总线和控制总线公用,片选信号独立。
本发明所述多通道Nand Flash控制器包括用于与外部系统交互的总线接口1、指令接收模块2、指令处理模块3、IO时序接口模块4和数据传输模块5。
所述总线接口1包括控制总线接口101和数据总线接口102。控制总线接口101提供对指令接收模块2中寄存器单元201、指令队列202、状态队列203的访问。通过CPU上运行软件应用程序实现控制。而数据传输采用独立的总线,可以与内存总线直接相连,通过DMA方式访问,保证数据传输的性能。
如图2所示,指令接收模块2包括寄存器单元201、指令队列202、状态队列203。
寄存器单元201用于配置控制器的参数以及查询控制器的状态信息;指令队列202是FIFO结构的缓存,可以缓存32条命令。每条指令包括对NandFlash的操作指令、地址、需要传输的数据长度等信息。
状态队列203是FIFO结构的缓存,可以缓存32条状态信息。每条指令在执行完成后都会返回指令执行的状态。状态信息包括对应的指令编号、指令执行是否正确、执行错误的原因等信息。
如图3所示,指令处理模块3包括指令分解单元301、微指令调度单元302和微指令执行单元303。
指令分解单元301用于将指令队列202中的指令分解成若干个微指令,然后发送给微指令调度单元302。
微指令调度单元302是控制器的核心单元。调度器内部有一个存储空间,用于存储多条微指令。微指令的执行并不是按照先进先出的原则,而是根据调度算法,判断它们之间的相关关系,以性能最优的顺序调度。并且在执行过程中一些优先级高的微指令可以抢占优先级低的微指令。
微指令执行单元303根据微指令调度单元302的要求执行微指令。同时在有数据传输需求的时候管理数据缓存单元502、控制DMA引擎503进行数据传输。在一些微指令执行完成后,会返回状态信息给指令分解单元301,指令分解单元301进而将状态信息返回给状态队列203。
所述IO接口时序模块,其采用M级流水的方式与多个Nand Flash芯片连接,IO接口时序模块4实现NAND Flash芯片要求的接口时序电路,在系统复位后自动调整信号时延,校准接口时序关系。能够支持异步接口时序和ONFI同步接口时序,软件通过控制寄存器单元201可以切换。
如图4所示,数据传输模块5包括ECC单元501、数据缓存单元502和DMA引擎503。
ECC单元501在写入数据时生成ECC校验码,写入NAND Flash的spare区,在读取数据时与读取的ECC校验码比对,纠正数据错误。ECC采用的编码为BCH编码,每512字节可最多纠正8比特的错误,超过8比特的错误无法纠正。这些信息会通过微指令执行单元在状态信息中反应出来。
数据缓存单元502用于缓存读写的数据。缓存单元的大小为两个NANDFlash的页的大小。缓存通过双口RAM实现,在缓存与NAND Flash进行传输数据的同时,也可以通过DMA引擎与数据总线进行数据传输。
DMA引擎503单元实现缓存数据与内存数据的直接交互,不需要软件程序的干预,极大地提高了数据传输的效率。
如图5所示,一种多通道Nand Flash控制器控制多个Nand Flash芯片的方法,包括如下步骤:
步骤1:上电复位或软件控制复位时,控制器进行初始化操作;
步骤2:总线接口模块的控制总线接口接收外部输入的各种指令,并发送给指令接收模块;
步骤3:指令接收模块验证接收指令的正确性,验证通过的指令传送给指令处理模块;
步骤4:指令处理模块将指令分解成若干微指令,并按预定执行策略通过IO接口时序模块执行相应的微指令;
步骤5:数据传递模块根据指令处理模块的相应动作,通过总线接口模块的数据总线接口配合完成数据的传输。
如图6所示,步骤4中所述指令处理模块将指令分解成若干微指令,并按预定执行策略执行相应的微指令的具体实现为:
步骤4.1:指令分解单元将接收的指令分解成若干个微指令,并将微指令发送给微指令调度单元的缓存空间;
步骤4.2:微指令调度单元根据预定的执行策略在每接收一条微指令时,对其内部缓存中的微指令排序,并将微指令依次传送给微指令执行单元;
步骤4.3:微指令执行单元根据微指令的类型控制IO时序接口模块执行微指令,如果存在数据操作,则控制数据传输模块进行数据传输;
步骤4.4:微指令执行单元实时监控各条微指令的执行状态,在执行完成后,将执行结果返回给指令分解单元,同时微指令调度单元更新缓存中微指令的相关关系;
步骤4.5:指令分解单元将微指令执行单元返回的执行结果写入指令接收模块的状态队列。
其中,指令分解单元在不断从指令接收模块的指令队列获取指令,并实时判断指令接收模块的指令队列是否为空,如果为空,则等待,直至为非空;如果为非空,则继续获取指令并分解,直到微指令调度单元的缓存空间没有剩余空间为止。
下面对本申请中所述的微指令进行如下介绍。
为了优化系统的调度,需要将对NAND Flash操作的读写擦指令分解为更小的操作单元,即微指令。除读写擦指令外其它指令执行几率很小,基本不影响系统性能,故其它指令保持不变。
图7a-7c分别是NAND Flash读写擦指令的时序图,下面将读写擦指令在控制器中的操作流程进行分解:
1.读数据指令分解为四条微指令:读命令操作RC、读等待RW、读数据操作RD和DMA数据传输操作DD。
RC为控制器将Read Page命令写入NAND Flash的操作,时间只有几个时钟周期,相对于其它操作占用的时间,可忽略不计。
RW为NAND Flash内部执行读操作的等待时间,这段时间可以通过NANDFlash的R/B#引脚进行监测。时间长度记为tR,与NAND Flash芯片的型号有关。
RD为控制器将数据从NAND Flash读取到数据缓存单元,时间长度记为tD,与接口类型(同步/异步)和接口时钟速率有关。
DD为控制器的数据缓存单元与数据总线之间进行数据传输,数据长度为页大小,时间长度记为tBD,与数据总线的性能有关。
2.写数据指令分解为四条微指令:DMA数据传输操作DD、写数据操作WD,写等待WW和状态查询操作SC。
DD与读命令中相同,即控制器的数据缓存与数据总线之间进行数据传输,数据长度为页大小,时间长度记为tBD,与数据总线的性能有关。
WD为控制器将Program Page命令写入NAND Flash,再将数据写入NANDFlash操作,时间长度为tD,与RD的执行时间相同。
WW为NAND Flash内部执行写操作的等待时间,这段时间可以通过NANDFlash的R/B#引脚进行监测。时间长度记为tW,与NAND Flash芯片的型号有关。
SC执行READ STATUS命令,读取NAND Flash的状态信息,以确定之前的命令是否执行成功,其执行时间可忽略不计。
3.擦除数据指令分解为三条微指令:块擦除命令操作EC,擦除等待EW和状态查询操作SC。
EC为控制器将ERASE BLOCK命令写入NAND Flash的操作,执行时间忽略不计。
EW为NAND Flash内部执行擦除操作的等待时间,这段时间可以通过NANDFlash的R/B#引脚进行监测。时间长度记为tE,与NAND Flash芯片的型号有关。
SC与写命令中的状态查询相同,即执行READ STATUS命令,读取NANDFlash的状态信息,以确定之前的命令是否执行成功,其执行时间可忽略不计。
下面简要介绍微指令的调度过程。
如果按照顺序执行微指令,则控制器的性能与其它控制器相比没有提高。微指令调度单元302通过判断前后微指令的相关关系、执行时间,在不改变执行结果的条件下,调整微指令的执行次序,或者通过优先级抢占方式先执行优先级更高的微指令,以提高系统的性能。
具体的调度策略如下:
1)微指令调度单元302内部具有缓存空间,可存储多条微指令。每条微指令具有相关关系和优先级两个属性;
2)当微指令调度单元302收到微指令时,会判断其与缓存中的微指令的优先级以及是否具有相关关系等属性;
3)缓存中的微指令按照无相关关系、优先级由高到低的顺序执行,每执行完一条微指令,缓存中的微指令与该微指令有关的相关关系将被清除;
4)通过调度算法选择出最优先执行的微指令传输给微指令执行单元303;然后继续选择最优先执行的微指令,如果微指令没有相关关系,则可以继续传输给微指令单元执行303。
预定的微指令的优先级设定规则如下:
1.无执行时间的微指令的优先级比任何有执行时间的微指令的优先级高;
2.先收到的微指令优先级高于后收到的微指令。
预定的微指令相关关系判断规则如下:
1.写指令中的数据可能依赖于在其前面执行的读指令的数据,因此在执行写指令时,应等待之前的所有读指令都执行完毕。因此设置写指令的第一条微指令DD与比它优先级高的读操作的最后一条微指令DD具有相关关系;
2.如果两条微指令需要使用相同的资源,包括外部接口的数据总线和NAND Flash接口数据总线时,NAND Flash芯片,则优先级低的微指令具有相关关系。
3.无执行时间的微指令比有执行时间的微指令的优先级高,所以前者无相关关系,可以优先调度。例如当前正在执行RD微指令,而新接收到非同一级流水的RC微指令就可以立即调度。因为这两条指令都需要使用NANDFlash接口总线,因此将RD暂停执行,释放总线,让RC优先执行,等RC执行完成后,RD再次占用总线资源,可以继续执行。
下面介绍微指令的执行过程。
微指令执行单元303将负责执行微指令,监控执行过程中的状态。在WS、RS和ES执行完成后将执行状态写入状态队列202。
微指令执行单元303支持多条微指令并行执行,由调度策略确保这些指令没有相关关系。例如在执行DD进行数据DMA传输的同时,还可以同时执行RD读取某一片NAND Flash的数据,同时执行RC对另一片NAND Flash写入命令。
在微指令中,只有DD、RD、WD三条微指令涉及到数据传输,需要在执行之前申请数据缓存。由于微指令在使用数据总线需要判断相关关系,因此在同一时刻只能有一条DD微指令执行,同理,在同一时刻也只能有一条RD或WD微指令执行,因此数据缓存的大小为两页的大小就能够满足要求。
下面介绍控制器整体操作流程。
控制器在上电复位或者软件控制寄存器复位后,会进行初始化操作。寄存器会恢复到初始值,指令队列202和状态队列203会清空。然后IO接口时序模块4会校准与NAND Flash连接的时序关系。
在软件将指令写入指令队列202后,如果指令错误或参数错误,指令会被丢弃,并将错误信息从状态队列返回。在判定指令有效后,指令分解单元201将其分解为若干个微指令。若指令队列202非空,则继续分解命令,直到微指令调度单元302的缓存空间用完。微指令调度单元302根据调度算法对微指令排序,依次传输给微指令执行单元303。微指令执行单元303根据命令的类型,控制IO接口时序模块执行微指令,如果有数据操作,则控制数据传输模块5进行数据传输。在执行完成后,将执行结果状态返回给指令分解单元301。指令分解单元301按照命令接收的顺序重新排列后,将状态返回给状态队列203。根据中断寄存器配置情况,可以在指令执行完成时产生中断信号通知软件。软件从状态队列中读取状态字,确认指令正确执行完成。
当指令在执行过程中出错,例如发生不可恢复的ECC错误、或擦除命令执行中出现坏块等情况,通过配置寄存器,可以让控制器在指令分解单元301终止或在微指令调度单元302中止。如果在指令分解单元301终止,所有已经在微指令调度单元302缓存的指令都会继续执行。如果在微指令调度单元302终止,则在出错后立即暂停。软件可以查询命令队列203和微指令缓存,分析当前状态并进行差错处理。
下面以具体操作实例进行进一步描述。
以控制器连接Micron的MT29F32G08ABCAB为例,其页大小为8kB。控制器采用4级流水方式,即与4片Flash进行连接。与NAND Flash之间接口为同步接口,时钟频率100MHz。外部接口数据总线为AXI4,128bit,100MHz。下面举例说明在不同的条件下的读写时间和性能指标。时间参数如表1:
表1
其它微指令执行时间均小于0.1us,可以忽略不计。
1)实施例1
对芯片1执行写指令,30us后对芯片2执行写指令,采用如下方式表示:
0us:read1
30us:read2
控制器的调度结果如下:
0us:DD1
5us:WD1
30us:DD2
46us:WW1,WD2
87us:WW2
396us:WS1
437us:WS2
由图8可知,本申请中所述控制器执行上述两条指令总共需要437us。在Write2指令到来后,立即被分解为4条微指令。DD2与之前的指令无相关关系,会被调度策略立即执行。WD2与WD1有相关关系,需等待WD1执行完成后再执行。而对于不支持微指令的控制器来说,第二条指令只能等待第一条指令执行完成后才能执行,需要花费的时间为(5us+41us+350us)*2=792us。
2)实施例2
对芯片1连续执行两次读数据指令,再对芯片2连续执行两次读数据指令。
0us:read1
read1*
read2
read2*
控制器的调度结果如下:
0us:RC1,RW1,RC2,RW2
35us:RD1
76us:DD1,RD2,RC1*,RW1*
117us:RD1*,DD2,RC2*,RW2*
158us:DD1*,RD2*
199us:DD2*
由图9可以看出,本申请中所述控制器执行上述命令总共需要204us。由于RC1微指令与RC1*微指令具有相关关系,因此需要在微指令调度单元302等待。而RC2与之前的微指令都没有相关关系,因此被优先调度执行。最终的结果就是read2指令实际执行时间在read1*指令前面,但并不会影响执行的正确性。通过上述的执行过程,提高了系统的性能。
而对于不支持微指令的控制器来说,read1和read1*只能顺序执行,read2和read2*也只能顺序执行,read1*和read2有可能实现流水方式执行。如果全部顺序执行,则执行时间为:(35+41+5)*4=324us;
如果read1*和read2实现了流水方式执行,可以计算出执行时间为:
(35+41+5)+(35+41+41+5+5)+(35+41+5)=289us;
3)实施例3
读写擦混合指令队列,下面举例为很多指令随机执行,需要执行的指令如下所示:
0us:write1
read3
write4
read2
write2
read1
read4
控制器的调度结果如下:
0us:DD1,RC3,RW3,RC2,RW2
5us:WD1
46us:WW1,RD3
87us:DD3,RD2
92us:DD4
128us:WD4,DD2
133us:DD2
169us:WW4,WD2
210us:WW2
396us:RC1,RW1
431us:RD1
472us:DD1
519us:RC4,RW4,SC4
554us:RD4
560us:SC2
595us:DD4
由图10可以看出,本申请所述控制器执行上述命令总共需要600us。Write4与Read3具有相关关系,因此Write4中的DD4需要等Read3中的DD3执行完再执行。同理,Write2中的DD2需要等待Read2中的DD2执行完再执行;Read1中的RC1需要等待Write1中的SC1执行完再执行;Read4中的RC4需要等待SC4执行完再执行。存在资源冲突的相关关系包括Read3中的RD3和Write1中的WD1、Read2中的RD2与Read3中的RD3等等。
虽然有一些微指令由于有相关关系,不能够并行执行,但大部分微指令没有相关关系,能够并行执行,因此总的执行时间大大缩短了,系统的性能得到大幅度的提高。
而对于传统的控制器来说,这种随机顺序的指令序列很难实现并行执行,因此其执行时间就是各个指令独立执行时间的加和:
396+81+396+81+396+81+81=1512us。
因此,本申请可以取得如下有益效果:
1)通过将指令分解为微指令,并利用微指令调度算法,优化微指令执行顺序和时间,在保证系统功能正确的情况下,系统的随机读写性能得到大幅提高;
2)在微指令执行时对数据缓存进行管理,大大减少了对数据缓存的占用时间,数据缓存的大小与流水级数无关。与其它高性能的控制器相比,需要的数据缓存资源大大减少。
本发明通过将指令分解成微指令,并按预定的调度算法调度,实现了指令随机请求的分析和优化;并且通过减少了每条指令占用缓存的时间,降低了多级流水操作时需要的缓存数量;另外,是软件层只有命令队列,数据通过DMA方式实现,系统的加速和管理全部由控制器内部自动分析和执行,大大简化了上层控制接口的复杂度。
另外,NAND Flash控制器与NAND Flash之间的接口除了采用多级流水方式,还可以采用M级流水与N片并行相结合的的方式。这种情况下,NANDFlash控制器的数据通路的接口位宽将增加为原来的N倍,对数据缓存大小的要求也增加为2*N页,其它控制逻辑保持不变。这种情况下,系统的读写速率将为M级流水的N倍。
上述微指令的分解是针对NAND Flash的Read Page、Program Page和Erase Block这三条指令进行。NAND Flash还支持其它类似的指令。例如读操作除了可用Read Page指令实现外,还可以用Read Page Cache Random、Read Page Multi-Plane等操作代替,但其分解为微指令的方法基本相同,微指令的调度算法仍然适用。
还可将数据缓存由2页大小修改为1页大小。微指令在判定相关关系时需要增加一个条件:相同的资源除了数据总线和NAND Flash接口总线时,还包括数据缓存。例如DD微指令和RD微指令就因为具有相关关系而不能同时执行。在表2.1的参数条件下,系统性能比原来会降低大约11%。但由于需求的数据缓存大小减半,这是一种通过牺牲性能来节省资源的方法。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种多通道Nand Flash控制器,其特征在于,包括总线接口模块、指令接收模块、指令处理模块、IO接口时序模块、数据传输模块;
所述总线接口模块,其与指令接收模块或数据传输模块连接,用于实现控制器与外部系统总线的命令及数据交互;
所述指令接收模块,其与指令处理模块连接,用于缓存指令,并将指令发送给指令处理模块,还用于存储指令的执行状态;
所述指令处理模块,其与IO接口时序模块连接,用于将接收的指令分解为若干个微指令,按照预定的执行策略执行微指令,通过IO接口时序模块对Nand Flash芯片进行相应操作,并监测微指令的执行过程,执行完成向指令接收模块返回执行状态;
所述IO接口时序模块,其采用M级流水的方式与多个Nand Flash芯片连接,用于实现Nand Flash芯片要求的接口时序电路,在系统复位后自动调整信号时延,校准接口时序关系;
所述数据传输模块,其与IO接口时序模块连接,用于根据微指令通过IO接口时序模块传输向Nand Flash写入数据或从Nand Flash读取的数据。
2.根据权利要求1所述一种多通道Nand Flash控制器,其特征在于,所述指令接收模块包括寄存器单元、指令队列和状态队列;
所述寄存器,其用于存储控制器的配置参数及状态信息;
所述指令队列,其用于接收外部由控制总线接口输入的指令,并将指令传送给指令处理模块的指令分解单元;
所述状态队列,其用于存储每条指令在执行完成后的状态信息。
3.根据权利要求1所述一种多通道Nand Flash控制器,其特征在于,所述指令处理模块包括指令分解单元、微指令调度单元和微指令执行单元;
所述指令分解单元,其用于将接收的指令分解成若干个微指令,并将微指令发送给微指令调度单元;还用于将微指令执行单元返回的执行状态写入指令接收模块的状态队列;
所述微指令调度单元,其用于根据预定的调度算法在每接收一条微指令时,对其内部缓存中的微指令排序,并将微指令依次传送给微指令执行单元,并每执行完一条微指令,根据预定的算法更新缓存中的微指令的相关关系;
所述微指令执行单元,其用于根据微指令的类型控制IO时序接口模块执行微指令,如果存在数据操作,则控制数据传输模块进行数据传输;其还用于监控各条微指令的执行状态,在执行完成后,将执行状态返回给指令分解单元。
4.根据权利要求1所述一种多通道Nand Flash控制器,其特征在于,所述数据传输模块包括ECC单元、数据缓存单元和DMA引擎;
所述ECC单元,其用于在向Nand Flash写入数据时生成ECC校验码,并将ECC校验码写入Nand Flash的apare区;还用于从Nand Flash读取数据时读取ECC校验码,利用读取的ECC校验码纠正数据错误;
所述数据缓存单元,其用于缓存待写入Nand Flash的数据或从NandFlash读出的数据;
所述DMA引擎,其用于实现数据缓存单元与内存的数据交互。
5.根据权利要求3所述一种多通道Nand Flash控制器,其特征在于,所述微指令调度单元内部具有缓存空间,可存储多条微指令;微指令执行单元支持多条无相关关系的微指令同时执行。
6.一种利用权利要求1至5中任一项所述多通道Nand Flash控制器控制多个Nand Flash芯片的方法,其特征在于,包括如下步骤:
步骤1:上电复位或软件控制复位时,控制器进行初始化操作;
步骤2:总线接口模块的控制总线接口接收外部输入的各种指令,并发送给指令接收模块;
步骤3:指令接收模块验证接收指令的正确性,验证通过的指令传送给指令处理模块;
步骤4:指令处理模块将指令分解成若干微指令,并按预定执行策略通过IO接口时序模块执行相应的微指令;
步骤5:数据传递模块根据指令处理模块的相应动作,通过总线接口模块的数据总线接口配合完成数据的传输。
7.根据权利要求6所述一种多通道Nand Flash控制器控制多个NandFlash芯片的方法,其特征在于,步骤4中所述指令处理模块将指令分解成若干微指令,并按预定执行策略执行相应的微指令的具体实现为:
步骤4.1:指令分解单元将接收的指令分解成若干个微指令,并将微指令发送给微指令调度单元的缓存空间;
步骤4.2:微指令调度单元根据预定的执行策略在每接收一条微指令时,对其内部缓存中的微指令排序,并将微指令依次传送给微指令执行单元;
步骤4.3:微指令执行单元根据微指令的类型控制IO时序接口模块执行微指令,如果存在数据操作,则控制数据传输模块进行数据传输;
步骤4.4:微指令执行单元实时监控各条微指令的执行状态,在执行完成后,将执行结果返回给指令分解单元,同时微指令调度单元更新缓存中微指令的相关关系;
步骤4.5:指令分解单元将微指令执行单元返回的执行结果写入指令接收模块的状态队列。
8.根据权利要求7所述一种多通道Nand Flash控制器控制多个NandFlash芯片的方法,其特征在于,步骤4.2中微指令调度单元中的预定执行策略为:微指令调度单元收到一条微指令时,
首先,根据预定的微指令优先级设定规则为微指令执行单元缓存中的各微指令排列优先级;
其次,根据预定的微指令相关关系判断规则,判断该微指令是否具有相关关系;
最后,通过预定调度算法选择出无相关关系、优先级最高的微指令,发送给微指令执行单元同时执行,如果没有无相关关系的微指令,则等待。
9.根据权利要求8所述一种多通道Nand Flash控制器控制多个NandFlash芯片的方法,其特征在于,
所述预定的微指令优先级设定规则包括,无执行时间的微指令的优先级比任何有执行时间的微指令的优先级高;先收到的微指令的优先级高于后收到的微指令的优先级;
所述预定的微指令相关关系判断规则包括,设置写指令的第一条微指令与比它优先级高的读指令的最后一条微指令具有相关关系;如果两条微指令需要使用相同的资源,则优先级低的微指令具有相关关系;无执行时间的微指令无相关关系,有执行时间的微指令有相关关系;
所述预定调度算法为,按照无相关关系、优先级由高到低的顺序调度微指令,将微指令发送给微指令执行单元。
10.根据权利要求6所述一种多通道Nand Flash控制器控制多个NandFlash芯片的方法,其特征在于,上述技术方案还包括当指令在执行过程中出现错误时,可通过配置指令接收模块的寄存器单元,将指令执行过程在指令处理模块的指令分解单元终止或在微指令调度单元终止;如果在指令分解单元终止,则指令分解单元停止工作,微指令调度单元继续工作,所有已经在微指令调度单元缓存的微指令都会继续执行;如果在微指令调度单元终止,则微指令调度单元也停止工作,外部系统可查询指令接收模块的命令队列和指令处理模块的微指令调度单元的缓存,分析当前状态并进行差错处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410034956.3A CN103778013B (zh) | 2014-01-24 | 2014-01-24 | 一种多通道Nand Flash控制器及其控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410034956.3A CN103778013B (zh) | 2014-01-24 | 2014-01-24 | 一种多通道Nand Flash控制器及其控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103778013A true CN103778013A (zh) | 2014-05-07 |
CN103778013B CN103778013B (zh) | 2017-03-15 |
Family
ID=50570289
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410034956.3A Active CN103778013B (zh) | 2014-01-24 | 2014-01-24 | 一种多通道Nand Flash控制器及其控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103778013B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407997A (zh) * | 2014-12-18 | 2015-03-11 | 中国人民解放军国防科学技术大学 | 带有指令动态调度功能的与非型闪存单通道同步控制器 |
CN104750430A (zh) * | 2015-03-02 | 2015-07-01 | 湖南国科微电子有限公司 | 一种NAND Flash接口的访问方法及装置 |
CN104809078A (zh) * | 2015-04-14 | 2015-07-29 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
CN105354154A (zh) * | 2015-10-23 | 2016-02-24 | 北京麓柏科技有限公司 | 零cpu负载实现存储系统命令传输的装置和方法 |
CN105676197A (zh) * | 2016-03-30 | 2016-06-15 | 西安电子科技大学 | 一种阵列雷达回波模拟器及其模拟方法 |
CN105912307A (zh) * | 2016-04-27 | 2016-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种Flash控制器数据处理方法及装置 |
CN106168932A (zh) * | 2016-06-29 | 2016-11-30 | 联想(北京)有限公司 | 一种Flash控制方法及装置 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN106648785A (zh) * | 2016-12-28 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种固态硬盘微码的设计方法及系统 |
CN106803036A (zh) * | 2017-02-16 | 2017-06-06 | 深圳前海生生科技有限公司 | 系统运行中数据流的安全检测和容错方法 |
CN106874796A (zh) * | 2017-02-16 | 2017-06-20 | 深圳前海生生科技有限公司 | 系统运行中指令流的安全检测和容错方法 |
CN107168899A (zh) * | 2017-04-19 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于FPGA的NandFlash控制器 |
CN107423227A (zh) * | 2016-05-24 | 2017-12-01 | 瑞昱半导体股份有限公司 | 记忆体装置、记忆体控制器与其控制方法 |
CN108107852A (zh) * | 2017-11-24 | 2018-06-01 | 中核控制系统工程有限公司 | 一种基于总线架构的算法库实现方法 |
CN108536623A (zh) * | 2018-04-19 | 2018-09-14 | 深圳市得微电子有限责任公司 | 多通道NAND Flash控制器及移动存储设备 |
CN109495155A (zh) * | 2018-09-30 | 2019-03-19 | 浙江大学 | 一种卫星智能星务系统及其实现方法 |
CN109614046A (zh) * | 2018-12-09 | 2019-04-12 | 江苏华存电子科技有限公司 | 一种用以连续快速产生闪存接口讯号序列的方法 |
CN109871239A (zh) * | 2019-02-18 | 2019-06-11 | 深圳忆联信息系统有限公司 | 一种支持toggle协议Nand颗粒的初始化方法及其系统 |
CN111857814A (zh) * | 2015-05-18 | 2020-10-30 | 北京忆芯科技有限公司 | 执行微指令的存储控制器 |
CN112506570A (zh) * | 2020-12-03 | 2021-03-16 | 长沙树根互联技术有限公司 | 设备指令下发方法、系统和服务器 |
CN112579272A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 微指令分发方法、装置、处理器和电子设备 |
CN114138341A (zh) * | 2021-12-01 | 2022-03-04 | 海光信息技术股份有限公司 | 微指令缓存资源的调度方法、装置、程序产品以及芯片 |
-
2014
- 2014-01-24 CN CN201410034956.3A patent/CN103778013B/zh active Active
Non-Patent Citations (1)
Title |
---|
申风有: "多通道NAND Flash控制器的设计", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104407997A (zh) * | 2014-12-18 | 2015-03-11 | 中国人民解放军国防科学技术大学 | 带有指令动态调度功能的与非型闪存单通道同步控制器 |
CN104407997B (zh) * | 2014-12-18 | 2017-09-19 | 中国人民解放军国防科学技术大学 | 带有指令动态调度功能的与非型闪存单通道同步控制器 |
CN104750430A (zh) * | 2015-03-02 | 2015-07-01 | 湖南国科微电子有限公司 | 一种NAND Flash接口的访问方法及装置 |
CN104750430B (zh) * | 2015-03-02 | 2016-03-16 | 湖南国科微电子股份有限公司 | 一种NAND Flash接口的访问方法及装置 |
CN104809078A (zh) * | 2015-04-14 | 2015-07-29 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
CN104809078B (zh) * | 2015-04-14 | 2019-05-14 | 苏州中晟宏芯信息科技有限公司 | 基于退出退让机制的共享高速缓存硬件资源访问方法 |
CN111857814A (zh) * | 2015-05-18 | 2020-10-30 | 北京忆芯科技有限公司 | 执行微指令的存储控制器 |
CN105354154A (zh) * | 2015-10-23 | 2016-02-24 | 北京麓柏科技有限公司 | 零cpu负载实现存储系统命令传输的装置和方法 |
CN105354154B (zh) * | 2015-10-23 | 2018-12-28 | 贵州轩通大数据科技有限责任公司 | 零cpu负载实现存储系统命令传输的装置和方法 |
CN105676197A (zh) * | 2016-03-30 | 2016-06-15 | 西安电子科技大学 | 一种阵列雷达回波模拟器及其模拟方法 |
CN105676197B (zh) * | 2016-03-30 | 2018-03-06 | 西安电子科技大学 | 一种阵列雷达回波模拟器及其模拟方法 |
CN105912307A (zh) * | 2016-04-27 | 2016-08-31 | 浪潮(北京)电子信息产业有限公司 | 一种Flash控制器数据处理方法及装置 |
CN105912307B (zh) * | 2016-04-27 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种Flash控制器数据处理方法及装置 |
CN107423227A (zh) * | 2016-05-24 | 2017-12-01 | 瑞昱半导体股份有限公司 | 记忆体装置、记忆体控制器与其控制方法 |
CN106168932A (zh) * | 2016-06-29 | 2016-11-30 | 联想(北京)有限公司 | 一种Flash控制方法及装置 |
CN106168932B (zh) * | 2016-06-29 | 2020-12-18 | 联想(北京)有限公司 | 一种Flash控制方法及装置 |
CN106547492A (zh) * | 2016-12-08 | 2017-03-29 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
CN106547492B (zh) * | 2016-12-08 | 2018-03-20 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
WO2018103685A1 (zh) * | 2016-12-08 | 2018-06-14 | 北京得瑞领新科技有限公司 | 一种nand闪存设备的操作指令调度方法及装置 |
US11112998B2 (en) | 2016-12-08 | 2021-09-07 | Dera Co., Ltd. | Operation instruction scheduling method and apparatus for nand flash memory device |
EP3553646A4 (en) * | 2016-12-08 | 2019-12-25 | Dera Co., Ltd | METHOD AND APPARATUS FOR SCHEDULING OPERATING INSTRUCTIONS FOR NON-AND-FLASH MEMORY DEVICE |
CN106648785A (zh) * | 2016-12-28 | 2017-05-10 | 郑州云海信息技术有限公司 | 一种固态硬盘微码的设计方法及系统 |
CN106648785B (zh) * | 2016-12-28 | 2020-10-23 | 苏州浪潮智能科技有限公司 | 一种固态硬盘微码的设计方法及系统 |
CN106803036A (zh) * | 2017-02-16 | 2017-06-06 | 深圳前海生生科技有限公司 | 系统运行中数据流的安全检测和容错方法 |
CN106803036B (zh) * | 2017-02-16 | 2021-03-30 | 中云信安(深圳)科技有限公司 | 系统运行中数据流的安全检测和容错方法 |
CN106874796B (zh) * | 2017-02-16 | 2021-03-30 | 中云信安(深圳)科技有限公司 | 系统运行中指令流的安全检测和容错方法 |
CN106874796A (zh) * | 2017-02-16 | 2017-06-20 | 深圳前海生生科技有限公司 | 系统运行中指令流的安全检测和容错方法 |
CN107168899A (zh) * | 2017-04-19 | 2017-09-15 | 山东超越数控电子有限公司 | 一种基于FPGA的NandFlash控制器 |
CN108107852A (zh) * | 2017-11-24 | 2018-06-01 | 中核控制系统工程有限公司 | 一种基于总线架构的算法库实现方法 |
CN108536623A (zh) * | 2018-04-19 | 2018-09-14 | 深圳市得微电子有限责任公司 | 多通道NAND Flash控制器及移动存储设备 |
CN109495155A (zh) * | 2018-09-30 | 2019-03-19 | 浙江大学 | 一种卫星智能星务系统及其实现方法 |
CN109495155B (zh) * | 2018-09-30 | 2020-10-20 | 浙江大学 | 一种卫星智能星务系统 |
CN109614046A (zh) * | 2018-12-09 | 2019-04-12 | 江苏华存电子科技有限公司 | 一种用以连续快速产生闪存接口讯号序列的方法 |
CN109871239A (zh) * | 2019-02-18 | 2019-06-11 | 深圳忆联信息系统有限公司 | 一种支持toggle协议Nand颗粒的初始化方法及其系统 |
CN112506570B (zh) * | 2020-12-03 | 2023-09-08 | 长沙树根互联技术有限公司 | 设备指令下发方法、系统和服务器 |
CN112506570A (zh) * | 2020-12-03 | 2021-03-16 | 长沙树根互联技术有限公司 | 设备指令下发方法、系统和服务器 |
CN112579272A (zh) * | 2020-12-07 | 2021-03-30 | 海光信息技术股份有限公司 | 微指令分发方法、装置、处理器和电子设备 |
CN112579272B (zh) * | 2020-12-07 | 2023-11-14 | 海光信息技术股份有限公司 | 微指令分发方法、装置、处理器和电子设备 |
CN114138341B (zh) * | 2021-12-01 | 2023-06-02 | 海光信息技术股份有限公司 | 微指令缓存资源的调度方法、装置、程序产品以及芯片 |
CN114138341A (zh) * | 2021-12-01 | 2022-03-04 | 海光信息技术股份有限公司 | 微指令缓存资源的调度方法、装置、程序产品以及芯片 |
Also Published As
Publication number | Publication date |
---|---|
CN103778013B (zh) | 2017-03-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103778013A (zh) | 一种多通道Nand Flash控制器及其控制方法 | |
US11630609B2 (en) | Scheduling access commands for data storage devices | |
KR101563837B1 (ko) | 메시지 기반 메모리 액세스 장치 및 그것의 액세스 방법 | |
TWI421680B (zh) | Parallel flash memory controller | |
US9021215B2 (en) | Storage system exporting internal storage rules | |
US20170220516A1 (en) | Memory device for a hierarchical memory architecture | |
US8843696B2 (en) | Memory device and method of controlling the same | |
CN104520932A (zh) | 闪存存储器控制器 | |
CN103282887A (zh) | 用于进行后台操作的控制器和方法 | |
WO2008022162A2 (en) | Systems and methods for program directed memory access patterns | |
CN103246625B (zh) | 一种数据与地址共用引脚自适应调整访存粒度的方法 | |
CN102866971A (zh) | 传输数据的装置、系统及方法 | |
JP5449152B2 (ja) | フラッシュメモリシステムにおける段階的ガーベッジコレクションおよびハウスキーピング操作 | |
US20140068125A1 (en) | Memory throughput improvement using address interleaving | |
US11029746B2 (en) | Dynamic power management network for memory devices | |
US10990321B2 (en) | Memory sub-system for supporting deterministic and non-deterministic commands based on command expiration and the state of the intermediate command queue | |
WO2021242766A1 (en) | Refresh management for dram | |
CN112597078A (zh) | 数据处理系统、存储器系统和用于操作存储器系统的方法 | |
CN207008602U (zh) | 一种基于NandFlash存储器多通道的存储阵列控制装置 | |
US7272692B2 (en) | Arbitration scheme for memory command selectors | |
CN102541778A (zh) | 一种超高速超大容量存储装置及其实现方法 | |
CN105718396A (zh) | 一种大数据主设备传输的i2c总线装置及其通讯方法 | |
CN114286989B (zh) | 一种固态硬盘混合读写的实现方法以及装置 | |
US11886290B2 (en) | Information processing apparatus and information processing method for error correction and read modify write processing | |
CN110413562B (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 |