CN106502581A - 闪存控制器、闪存控制方法和固态硬盘 - Google Patents
闪存控制器、闪存控制方法和固态硬盘 Download PDFInfo
- Publication number
- CN106502581A CN106502581A CN201610874201.3A CN201610874201A CN106502581A CN 106502581 A CN106502581 A CN 106502581A CN 201610874201 A CN201610874201 A CN 201610874201A CN 106502581 A CN106502581 A CN 106502581A
- Authority
- CN
- China
- Prior art keywords
- order
- command
- flash memory
- module
- flash
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0658—Controller construction arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明实施例涉及闪存控制器、闪存控制方法和固态硬盘。闪存控制器包括:多个命令生成模块和至少一个命令执行模块。第二命令生成模块用于在第一命令生成模块向目标命令执行模块发送第一命令与数据传输命令之后且向目标命令执行模块发送第一状态查询命令之前,向目标命令执行模块发送第二命令与数据传输命令,第一命令与数据传输命令对应第一闪存颗粒,第二命令与数据传输命令对应第二闪存颗粒,第一闪存颗粒与第二闪存颗粒通过同一根总线与目标命令执行模块相连。目标命令执行模块用于确定与第二命令与数据传输命令相对应的控制逻辑,并向第二闪存颗粒发送该控制逻辑。能够避免多个请求访问同一根总线上的闪存颗粒时出现阻塞,提高系统吞吐率。
Description
技术领域
本发明实施例涉及信息技术领域,并且更具体地,涉及闪存控制器、闪存控制方法和固态硬盘。
背景技术
以与非(Not-And,简称为“NAND”)闪存颗粒为介质的存储设备(固态硬盘(SolidState Drive,简称为“SSD”)设备)具有读写时延时间小、功耗低、可以快速随机访问等优点。使用SSD设备搭建高性能存储设备成为目前的主流趋势。由于NAND闪存颗粒在写入数据之前,必须擦除之前已经写入的数据,擦除的粒度远远大于写入的粒度,并且NAND闪存颗粒的擦写次数有显著的限制,需要一个专有的SSD控制器来管理NAND闪存颗粒。
闪存控制器是SSD控制器的重要组成部分,但是一个闪存控制器能够管理的NAND闪存颗粒数目是很少的,为了管理大规模的NAND闪存颗粒阵列,通常采用简单复制多组NAND闪存控制器的方式,上层控制逻辑指定每个NAND闪存控制器的逻辑地址范围,采用分时或者并行方式进行操作,但这种方式在以SSD作为存储设备的计算系统中读写负载较重的时候,容易出现多个输入输出(Input-Output,简称为“IO”)请求访问同一个总线上不同的NAND闪存颗粒时出现阻塞,影响系统吞吐率。为了避免阻塞,一般的做法是通过微控制器实现同一总线上不同NAND闪存颗粒的调度,但这种方法将NAND闪存读写逻辑和上层控制逻辑耦合到一起,增加了上层逻辑设计的复杂度。
发明内容
本申请提供一种闪存控制器、闪存控制方法和固态硬盘,能够避免多个输入输出请求访问同一个总线上的闪存颗粒时出现阻塞,提高系统吞吐率。
第一方面,提供了一种闪存控制器,包括:多个命令生成模块和至少一个命令执行模块,每个命令生成模块用于接收闪存操作命令,每个闪存操作命令包括命令与数据传输命令和状态查询命令,每个命令执行模块通过总线与闪存颗粒阵列相连;其中,第一命令生成模块,用于将接收到的第一闪存操作命令拆分为第一命令与数据传输命令和第一状态查询命令,该第一闪存操作命令对应第一闪存颗粒;第二命令生成模块,用于将接收到的第二闪存操作命令拆分为第二命令与数据传输命令和第二状态查询命令,该第二闪存操作命令对应第二闪存颗粒,该第二闪存颗粒与该第一闪存颗粒通过同一根总线与目标命令执行模块相连;该第二命令生成模块,还用于在该第一命令生成模块向该目标命令执行模块发送该第一命令与数据传输命令之后,且在该第一命令生成模块向该目标命令执行模块发送该第一状态查询命令之前,向该目标命令执行模块发送该第二命令与数据传输命令;该目标命令执行模块,用于确定与该第二命令与数据传输命令相对应的控制逻辑,并向该第二闪存颗粒发送该控制逻辑。
因此,根据本申请的闪存控制器,包括多个命令生成模块和至少一个命令执行模块,每个命令执行模块通过总线与闪存颗粒阵列相连。在一个命令生成模块向目标命令执行模块发送第一命令与数据传输命令之后,且在该命令生成模块向所述目标命令执行模块发送第一状态查询命令之前,另一命令执行模块可以向该目标命令执行模块发送第二命令与数据传输命令。由此,当一个闪存颗粒正在执行闪存操作时,与该闪存颗粒对应同一总线的其他闪存颗粒仍然能够被访问,能够避免多个输入输出请求访问同一个总线上的闪存颗粒时出现阻塞,提高系统的吞吐率。
可以理解的是,本发明实施例中,闪存颗粒指的是一种存储介质,例如,闪存颗粒具体可以为与非(Not And,简称为“NAND”)。
可选地,每个命令执行模块通过一根总线与一组闪存颗粒相连,或者可以理解为,每个命令执行模块管理一组闪存颗粒的操作。
可选地,第一闪存操作命令为下列命令中的一个:编程操作命令、擦除操作命令、读取操作命令和状态查询操作命令。
可以理解的是,第二闪存颗粒接收到控制逻辑后,根据该控制逻辑执行闪存操作,或者可以理解为该控制逻辑为第二闪存颗粒能够识别的控制逻辑。
结合第一方面,在第一方面的第一种可能的实现方式中,该第一命令生成模块,还用于向该目标命令执行模块发送该第一状态查询命令;该第二命令生成模块,还用于向该目标命令执行模块发送该第二状态查询命令。
可选地,第一命令生成模块向目标命令执行模块发送第一状态查询命令的时间可以在第二命令生成模块向目标命令执行模块发送第二状态查询命令之前,或者,第一命令生成模块向目标命令执行模块发送第一状态查询命令的时间可以在第二命令生成模块向目标命令执行模块发送第二状态查询命令之后。
结合第一方面,或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该闪存控制器还包括:仲裁模块;其中,该向该目标命令执行模块发送该第二命令与数据传输命令,包括:向该仲裁模块发送该第二命令与数据传输命令;该仲裁模块用于:确定该第二命令与数据传输命令的发送优先级;根据该第二命令与数据传输命令的发送优先级向该目标命令执行模块发送该第二命令与数据传输命令。
可选地,仲裁模块根据命令与数据传输命令的等待时间和/或命令与数据传输命令的类型,确定该第二命令与数据传输命令的发送优先级。
可选地,仲裁模块并行传输不同的命令执行模块发送过来的命令与数据传输命令以及状态查询命令,实现命令集合的交错执行。
由于,仲裁模块能够确定命令的发送优先级,并根据发送优先级发送命令,能够实现对命令的智能调度,避免出现命令通道锁死问题。
结合第一方面,第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,该第一命令与数据传输命令、该第一状态查询命令、该第二命令与数据传输命令和该第二状态查询命令均由至少一个子命令构成,所有子命令具有相同的命令格式。
由于不同的闪存操作命令对应的命令与数据传输命令和状态查询命令具有相同的命令格式,能够简化目标命令执行模块中的控制逻辑的规模。
结合第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,每个子命令包括命令字字段、地址字段和数据字段;其中,当该第一命令与数据传输命令的类型为写命令时,该命令字字段承载第一信息,该第一信息用于指示该第一闪存颗粒将该数据字段承载的数据写入到该地址字段承载的地址中;当该第二命令与数据的传输命令的类型为读命令时,该命令字段承载第二信息,该第二信息用于指示该第二闪存颗粒按照该数据字段承载的时序信息从该地址字段承载的地址中读取数据。
结合第一方面,或第一方面的第一种至第四种可能的实现方式中任一可能的实现方式,在第一方面的第五种可能的实现方式中,该闪存控制器还包括:闪存操作调度模块;该闪存操作调度模块,用于接收微控制器发送的该第二闪存操作命令;该闪存操作调度模块,还用于当确定该第二命令生成模块的工作状态为空闲状态时,向该第二命令生成模块发送该第二闪存操作命令。
也就是说,闪存操作调度模块能够对命令生成模块进行管理,闪存操作调度器从微控制器接收到闪存操作命令后,选择空闲的命令生成模块将闪存操作命令交给该命令生成模块处理,并且闪存操作调度模块能够同时处理多个闪存操作命令,能够进一步提高系统的吞吐率。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,该闪存控制器还包括:总线状态管理模块,用于记录闪存颗粒的工作状态信息,该工作状态信息用于指示该存储设备中的闪存颗粒的工作状态;其中,该第二命令生成模块,还用于将该第二闪存颗粒的工作状态写入到该总线状态管理模块中。
结合第一方面的第六种可能的实现方式,在第一方面的第七种可能的实现方式中,该闪存操作调度模块还用于:接收该微控制器发送的状态查询信息;根据该状态查询信息和该工作状态信息,确定该微控制器需要查询的闪存颗粒的工作状态;向该微控制器反馈该微控制器需要查询的闪存颗粒的工作状态。
由此,在微控制器需要查询闪存颗粒的状态时,能够直接通过总线状态管理模块获得闪存颗粒的状态,减少不必要的闪存操作,提高系统的吞吐率。
结合第一方面的第五种至第七种可能的实现方式中任一可能的实现方式,在第一方面的第八种可能的实现方式中,当该第二命令生成模块查询到该第二闪存颗粒处于空闲状态时,该第二命令生成模块还用于:向该闪存操作调度模块发送反馈信息,该反馈信息用于指示该第二闪存颗粒处于空闲状态;接收该闪存操作调度模块发送的第三闪存操作命令,该第三闪存操作命令对应该第二闪存颗粒。
第二方面,提供了一种闪存控制方法,所述闪存控制方法由上述第一方面或第一方面的任意可能的实现方式中的闪存控制器执行。
第三方面,提供了一种固态硬盘,包括:第一方面或第一方面的任意可能的实现方式中的闪存控制器和闪存颗粒,该闪存控制器与该闪存颗粒建立通信连接。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例的固态硬盘设备的示意性框图;
图2是根据本发明实施例的闪存控制器的示意性框图;
图3是根据本发明另一实施例的闪存控制器的示意性框图;
图4是根据本发明另一实施例的并行调度子命令的示意图;
图5是现有技术中的编程操作的时序图;
图6是根据本发明实施例的编程操作拆分成的子命令的时序图;
图7是根据本发明再一实施例的闪存控制器的示意性框图;
图8是根据本发明实施例的闪存控制方法的示意性流程图;
图9是根据本发明实施例的闪存控制方法的示意性流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明适用于所有采用与非(Not-And,简称为“NAND”)闪存接口的非易失性存储器件,包括但不限于个人计算机(Personal Computer,简称为“PC”)-随机存储器(RandomAccess Memory,简称为“RAM”),铁电(Ferrum,简称为“Fe”)-RAM,电阻(Resistor,简称为“R”)-RAM。
应理解,本发明实施例中的闪存操作命令包括命令与数据传输命令和状态查询命令,也就是说本发明实施例中的闪存操作分为命令与数据的传输和状态查询两个部分,其中,命令与数据的传输是闪存控制器将命令与数据发送给与非(Not-And,简称为“NAND”)闪存颗粒的操作,状态查询是完成命令与数据的传输后,在等待NAND闪存颗粒内部存储或读取数据的时候,循环查询其是否完成的操作。本发明实施例中的闪存操作包括但不限于:编程操作、擦除操作、读取操作和状态查询操作。
图1是根据本发明实施例的固态硬盘设备的示意性框图。如图1所示,固态硬盘(Solid State Drive,简称为“SSD”)设备100包括:SSD控制器110和NAND闪存颗粒阵列120,其中,SSD控制器110包括微控制器111、编码器112、解码器113、闪存控制器114。其中,微控制器111可以为带有双数据速率(Double Data Rate,简称为“DDR”)内存的微控制器,编码器112可以为差错控制编码(Error Control Code,简称为“ECC”)编码器,译码器113可以为ECC解码器。
具体地,SSD控制器110通过外部总线接口与上层系统进行通信,通信时采用的协议可以是总线和接口标准(Peripheral Component Interface Express,简称为“PCIE”)协议、小型计算机系统接口(Small Computer System Interface,简称为“SCSI”)协议、光纤通道(Fiber Channel,简称为“FC”)协议等。带有DDR内存的微控制器111实现地址映射、磨损均衡、垃圾回收等算法,向闪存控制器114提供命令和操作地址。ECC编码器112将外部总线接口的数据编码成带有纠错功能的数据,并传送给闪存控制器114,ECC解码器113的数据流向与ECC编码器112的数据流向相反,ECC解码器113从闪存控制器114中读取带有纠错功能的数据,并纠正其中的误码,还原出原始数据,传送给外部总线接口。闪存控制器114将微控制器111发送的擦除、编程、读取和状态查询命令,以及ECC编码器112发送的写数据转换为NAND闪存颗粒的操作指令,并将从NAND闪存颗粒中读出的状态、数据分别返回给微控制器111和硬件ECC编码器112。
可选地,为了管理大规模的NAND闪存颗粒阵列,一个SSD控制器110中可以包括多个闪存控制器114,上层控制逻辑指定每个闪存控制器114的逻辑地址范围,采用分时或者并行方式进行操作,每一个闪存控制器114负责一部分NAND闪存颗粒的操作。
具体地,图2示出了根据本发明实施例的闪存控制器200的示意性框图,可以理解的是,闪存控制器200应用于图1中所示的SSD设备中,闪存控制器200对应于图1中的闪存控制器114。如图2所示,闪存控制器200包括:多个命令生成模块201和至少一个命令执行模块202,每个命令执行模块202通过总线与闪存颗粒阵列相连;
其中,第一命令生成模块201,用于将接收到的第一闪存操作命令拆分为第一命令与数据传输命令和第一状态查询命令,该第一闪存操作命令对应第一闪存颗粒;
第二命令生成模块201,用于将接收到的第二闪存操作命令拆分为第二命令与数据传输命令和第二状态查询命令,该第二闪存操作命令对应第二闪存颗粒,该第二闪存颗粒与该第一闪存颗粒通过同一根总线与目标命令执行模块202相连;
该第二命令生成模块201,还用于在该第一命令生成模块201向该目标命令执行模块202发送该第一命令与数据传输命令之后,且在该第一命令生成模块201向该目标命令执行模块202发送该第一状态查询命令之前,向该目标命令执行模块202发送该第二命令与数据传输命令;
该目标命令执行模块202,用于确定与该第二命令与数据传输命令相对应的控制逻辑,并向该第二闪存颗粒发送该控制逻辑。
因此,根据本发明实施例的闪存控制器,包括多个命令生成模块和至少一个命令执行模块,每个命令执行模块通过总线与闪存颗粒阵列相连。在一个命令生成模块向目标命令执行模块发送第一命令与数据传输命令之后,且在该命令生成模块向该目标命令执行模块发送第一状态查询命令之前,另一命令执行模块可以向该目标命令执行模块发送第二命令与数据传输命令。由此,当一个闪存颗粒正在执行闪存操作时,与该闪存颗粒对应同一总线的其他闪存颗粒仍然能够被访问,能够避免多个输入输出请求访问同一个总线上的闪存颗粒时出现阻塞,提高系统的吞吐率。
可以理解的是,本发明实施例中的闪存操作命令中会携带操作地址信息,命令生成模块201根据操作地址信息确定目标命令执行模块202以及需要访问的与目标命令执行模块202通过总线相连接的闪存颗粒。
在本发明实施例中,可选地,第一命令生成模块201在第二命令生成模块201向目标命令执行模块202发送第二状态查询命令之后,向目标命令执行模块202发送第一状态查询命令。同样的,第二命令生成模块201在向目标命令执行模块202发送第二命令与数据传输命令之后向目标命令执行模块202发送第二状态查询命令。本发明对第一命令生成模块201向目标命令执行模块202发送第一状态查询命令与第二命令生成模块201向目标命令执行模块202发送第二状态查询命令的先后顺序不作限定。
可选地,作为一个实施例,第一命令生成模块201根据固定周期循环查询第一闪存颗粒的状态或者可以理解为第一命令生成模块201根据固定周期向目标命令执行模块202发送第一状态查询命令。当查询到第一闪存颗粒处于繁忙状态(或者说正在执行闪存操作)时,第一命令生成模块201继续查询第一闪存颗粒的状态。当第一命令生成模块201查询到第一闪存颗粒的状态为空闲状态时,第一命令生成模块201停止查询第一闪存颗粒的状态,并在此之后接收新的闪存操作命令。
可选地,作为一个例子,如图3所示,闪存控制器200还包括仲裁模块203。第二命令生成模块201先将第二命令与数据传输命令发送给仲裁模块203,由仲裁模块203确定第二命令与数据传输命令的发送优先级,之后根据第二命令与数据传输命令的发送优先级将第二命令与数据传输命令发送给目标命令执行模块202。
可以理解的是,在上述的实施例中,第一命令生成模块201先将第一命令与数据传输命令发送给仲裁模块203,同样的,仲裁模块203确定第一命令与数据传输命令的发送优先级,并根据确定的第一命令与数据传输命令的发送优先级将第一命令与数据传输命令发送给目标命令执行模块202。
可选地,作为一个实施例,仲裁模块203为多端口对多端口的全双工仲裁器。
需要说明的是,本发明实施例中仲裁模块203可以根据命令在仲裁模块203中的等待时间确定命令的发送优先级。例如,等待时间越长对应的发送优先级越高。也可以根据命令的类型确定命令的发送优先级。例如,类型为读命令的命令的发送优先级高于类型为写命令的命令的发送优先级。由此能够实现系统对命令的智能调度,避免出现通道锁死的问题。
举例来说,仲裁模块203接收到三个命令生成模块(命令生成模块1、命令生成模块2和命令生成模块3)分别发送过来的命令与数据传输命令1、命令与数据传输命令2和命令与数据传输命令3,这3个命令分别对应于与目标命令执行模块202通过同一根总线相连的闪存颗粒1、闪存颗粒2和闪存颗粒3,并且仲裁模块203接收到这三个命令的时间由早到晚依次为:命令与数据传输命令2、命令与数据传输命令3和命令与数据传输命令1,命令与数据传输命令3的类型为写命令、命令与数据传输命令2的类型为读命令、命令与数据传输命令1的类型为读命令。如果仲裁模块203根据以下规则确定命令的发送优先级:写命令的发送优先级高于写命令的发送优先级,当命令的类型相同时,接收时间早的命令具有高发送优先级。则仲裁模块203先将命令与数据传输命令3发送给目标命令执行模块202,之后将命令与数据传输命令2发送给目标命令执行模块202,最后将命令与数据传输命令1发送给目标命令执行模块202。
或者,如果上文中的命令与数据传输命令1、命令与数据传输命令2和命令与数据传输命令3分别对应于命令执行模块1、命令执行模块2和命令执行模块3,如果仲裁模块203根据以下规则确定命令的发送优先级:写命令的发送优先级高于读命令的发送优先级,类型相同的命令具有相同的优先级。则仲裁模块203先将命令与数据传输命令3发送给命令执行模块3,之后同时将命令与数据传输命令2和命令与数据传输命令1分别发送给命令执行模块2和命令执行模块1。
也就是说,如图4中所示出的,仲裁模块203能够实现多路命令的并行调度。由于每个命令执行模块对应着一组闪存颗粒的访问总线,能够避免闪存控制器出现阻塞,并能够提高闪存控制器的利用率。
可选地,作为一个实施例,如图3所示,闪存控制器200还包括闪存操作调度模块204。闪存操作调度模块204通过总线接口接收微控制器发送的闪存操作命令,根据多个命令生成模块的状态选择一个处于空闲状态的命令生成模块,并将接收到的闪存操作命令交给该处于空闲态的命令生成模块处理。当该命令生成模块处理完成后,闪存操作调度模块204告知微控制器闪存操作命令的处理已经完成。
进一步地,闪存操作调度模块204可以同时处理多个闪存操作命令。也就是说,闪存操作调度模块204可以并行向多个命令生成模块发送接收到的多个闪存操作命令。由此,能够提高系统的吞吐率。
可选地,作为另一个实施例,如图3所示,闪存控制器200还包括总线状态管理模块205。总线状态管理模块205记录闪存颗粒的工作状态信息,该工作状态信息用于指示存储设备中的闪存颗粒的工作状态。其中,该工作状态信息可以仅包括处于繁忙状态的闪存颗粒的工作状态,也可以包括所有闪存颗粒的工作状态。也就是说,本发明实施例中的闪存控制器200中具有记录闪存颗粒的工作状态的空间,能够记录存储设备中各个闪存颗粒的工作状态。
举例来说,假设存储设备中包括100个闪存颗粒,编号分别为1-100。当前只有编号为1-40的闪存颗粒处于繁忙状态,则总线状态管理模块205中只记录编号为1-40的闪存颗粒的信息。当微控制器需要查询编号为55的闪存颗粒的状态时,在总线状态管理模块205中没有查到编号为55的闪存颗粒的信息,则默认编号为55的闪存颗粒当前处于空闲状态。
具体地,命令生成模块查询到闪存颗粒的工作状态后,访问总线状态管理模块205,将闪存颗粒的状态写入到总线状态管理模块205中。当微控制器需要查询闪存颗粒的工作状态时,微控制器将地址信息发送给操作调度模块204,闪存操作调度模块204根据地址信息确定微控制器需要查询的闪存颗粒,之后闪存操作调度模块204直接从总线状态管理模块205中获取需要查询的闪存颗粒的状态并反馈给微控制器。由此,能够简化状态查询操作,提高闪存控制器的利用率。
可选地,作为一个例子,命令生成模块查询到闪存颗粒的工作状态后,可以通过闪存操作调度模块204直接上报给微控制器。当微控制器需要查询闪存颗粒的工作状态时,直接从内部存储的信息中获取需要查询的闪存颗粒的工作状态。
在上述所有的实施例中,第一命令与数据传输命令、第一状态查询命令、第二命令与数据传输命令和第二状态查询命令的具体格式可以与现有相关方案中的格式相同。
进一步地,第一命令与数据传输命令、第一状态查询命令、第二命令与数据传输命令和第二状态查询命令均由至少一个子命令构成,这些子命令具有相同的命令格式。或者可以理解为,本发明实施例中的闪存操作命令可以被拆分多个归一化的子命令。
具体地,表1示出了本发明实施例中微控制器发送给闪存控制器的闪存操作命令以及能够被拆分成的归一化的子命令。表2示出了归一化的子命令的具体构成。
表1
表2
在本发明实施例中,以编程操作命令为例,图5示出的是现有技术中的编程操作对应的命令的时序,图6示出的是本发明实施例中的编程操作对应的归一化的子命令的时序。可以理解的是,采用图5所示的命令的时序时,不同的闪存操作对应不同的时序,需要对每一种闪存操作单独使用一套控制逻辑。而采用图6示出的归一化的子命令的时序时,每个子命令具有相同的命令格式,闪存操作就变成了数个具有相同命令格式的子命令的连续操作,每种闪存操作命令拆分成的子命令都具有相同命令格式。可以采用统一的控制逻辑控制所有闪存操作,简化闪存控制器中控制逻辑的规模,提高闪存控制器的整体运行效率。
在本发明实施例中,可选地,如图7中所示出的,每个命令生成模块具体包括编程数据缓存模块、地址命令生成模块和读数据缓冲模块,其中,地址命令生成模块用于将接收到的闪存操作调度模块204发送的闪存操作命令拆分成如表1和表2所示的一系列归一化的子命令,编程数据缓存模块用于产生包括写入数据、写入命令字、写入地址等写入命令执行模块的数据,这些数据采用归一化的命令格式,读数据缓存模块用于接收从命令执行模块返回的闪存颗粒的状态和从命令执行模块返回的数据。每个命令执行模块将接收到的归一化的子命令转换成NAND闪存颗粒的具体的操作时序,每个命令执行模块主要包括命令解析模块、数据重组模块和物理(Physical,简称为“PHY”)接口模块,其中命令解析模块将归一化的子命令转换成NAND闪存颗粒可以接收的时序的命令部分,数据重组模块用于将读写数据转换成NAND闪存颗粒可以接收的时序的数据部分,PHY接口模块用于将命令解析模块和数据重组模块的同步逻辑数据转换成符合NAND闪存颗粒协议的DDR接口时序。
在上述所有实施例中,可选地,命令生成模块201、命令执行模块202、仲裁模块203、闪存操作调度模块204、总线状态管理模块205,可以由通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等构成。其中,通用处理器可以是微处理器或者也可以是任何常规的处理器等。
以上结合图1至图7详细描述了根据本发明实施例的闪存控制器,下面将结合图8和图9详细描述根据本发明实施例的闪存控制方法。图8中示出的闪存控制方法由闪存控制器执行。闪存控制器包括:多个命令生成模块和至少一个命令执行模块,每个命令生成模块用于接收闪存操作命令,每个闪存操作命令包括命令与数据传输命令和状态查询命令,每个命令执行模块通过总线与闪存颗粒阵列相连。如图8所示,闪存控制方法1000包括:
S1100,通过第一命令生成模块将接收到的第一闪存操作命令拆分为第一命令与数据传输命令和第一状态查询命令,该第一闪存操作命令对应第一闪存颗粒;
S1200,通过第二命令生成模块将接收到的第二闪存操作命令拆分为第二命令与数据传输命令和第二状态查询命令,该第二闪存操作命令对应第二闪存颗粒,该第二闪存颗粒与该第一闪存颗粒通过同一根总线与目标命令执行模块相连;
S1300,在通过该第一命令生成模块向该目标命令执行模块发送该第一命令与数据传输命令之后,且在通过该第一命令生成模块向该目标命令执行模块发送该第一状态查询命令之前,通过该第二命令生成模块向该目标命令执行模块发送该第二命令与数据传输命令;
S1400,通过该目标命令执行模块确定与该第二命令与数据传输命令相对应的控制逻辑,并向该第二闪存颗粒发送该控制逻辑。
因此,根据本发明实施例的闪存控制方法,由包括多个命令生成模块和至少一个命令执行模块的闪存控制器执行,每个命令执行模块通过总线与闪存颗粒阵列相连。在一个命令生成模块向目标命令执行模块发送第一命令与数据传输命令之后,且在该命令生成模块向该目标命令执行模块发送第一状态查询命令之前,另一命令执行模块可以向该目标命令执行模块发送第二命令与数据传输命令。由此,当一个闪存颗粒正在执行闪存操作时,与该闪存颗粒对应同一总线的其他闪存颗粒仍然能够被访问,能够避免多个输入输出请求访问同一个总线上的闪存颗粒时出现阻塞,提高系统的吞吐率。
在本发明实施例中,可选地,如图9所示,方法1000还包括:
S1500,在通过该第二命令生成模块向该目标命令执行模块发送该第二命令与数据传输命令之后,通过该第一命令执行模块向该目标命令执行模块发送该第一状态查询命令;
S1600,在通过该第一命令生成模块向该目标命令执行模块发送该第一状态查询命令之后,通过该第二命令生成模块向该目标命令执行模块发送该第二状态查询命令。
在本发明实施例中,可选地,该闪存控制器还包括:仲裁模块;
其中,该通过该第二命令生成模块向该目标命令执行模块发送该第二命令与数据传输命令,包括:通过该第二命令生成模块向该仲裁模块发送该第二命令与数据传输命令;通过该仲裁模块确定该第二命令与数据传输命令的发送优先级;通过该仲裁模块根据该第二命令与数据传输命令的发送优先级,向该目标命令执行模块发送该第二命令与数据传输命令。
在本发明实施例中,可选地,该第一命令与数据传输命令、该第一状态查询命令、该第二命令与数据传输命令和该第二状态查询命令均由至少一个子命令构成,所有子命令具有的命令格式。
在本发明实施例中,可选地,每个子命令包括命令字字段、地址字段和数据字段;
其中,当该第一命令与数据传输命令的类型为写命令时,该命令字字段承载第一信息,该第一信息用于指示该第一闪存颗粒将该数据字段承载的数据写入到该地址字段承载的地址中;
当该第二命令与数据的传输命令的类型为读命令时,该命令字段承载第二信息,该第二信息用于指示该第二闪存颗粒按照该数据字段承载的时序信息从该地址字段承载的地址中读取数据。
在本发明实施例中,可选地,该闪存控制器还包括:闪存操作调度模块,该方法还包括:通过该闪存操作调度模块接收微控制器发送的该第二闪存操作命令;当通过该闪存操作调度模块确定该第二命令生成模块的工作状态为空闲状态时,通过该闪存操作调度模块发送该第二闪存操作命令。
在本发明实施例中,可选地,该闪存控制器还包括:总线状态管理模块,该总线状态管理模块用于记录闪存颗粒的工作状态信息,该工作状态信息用于指示该存储设备中的闪存颗粒的工作状态,该方法还包括:通过该第二命令生成模块将该第二闪存颗粒的工作状态写入到该总线状态管理模块中。
在本发明实施例中,可选地,该方法还包括:通过该闪存操作调度模块接收该微控制器发送的状态查询信息;通过该闪存操作调度模块根据该状态查询信息和该工作状态信息,确定该微控制器需要查询的闪存颗粒的工作状态。通过该闪存操作调度模块向该微控制器反馈该微控制器需要查询的闪存颗粒的工作状态。
在本发明实施例中,可选地,当通过该第二命令生成模块查询到该第二闪存颗粒处于空闲状态时,该方法还包括:通过该第二命令生成模块向该闪存操作调度模块发送反馈信息,该反馈信息用于指示该第二闪存颗粒处于空闲状态;通过该第二命令生成模块接收该闪存操作调度模块发送的第三闪存操作命令,该第三闪存操作命令对应该第二闪存颗粒。
因此,根据本发明实施例的闪存控制方法,由包括多个命令生成模块和至少一个命令执行模块的闪存控制器执行,每个命令执行模块通过总线与闪存颗粒阵列相连。在一个命令生成模块向目标命令执行模块发送第一命令与数据传输命令之后,且在该命令生成模块向该目标命令执行模块发送第一状态查询命令之前,另一命令执行模块可以向该目标命令执行模块发送第二命令与数据传输命令。由此,当一个闪存颗粒正在执行闪存操作时,与该闪存颗粒对应同一总线的其他闪存颗粒仍然能够被访问,能够避免多个输入输出请求访问同一个总线上的闪存颗粒时出现阻塞,提高系统的吞吐率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种闪存控制器,其特征在于,包括:多个命令生成模块和至少一个命令执行模块,每个命令生成模块用于接收闪存操作命令,每个闪存操作命令包括命令与数据传输命令和状态查询命令,每个命令执行模块通过总线与闪存颗粒阵列相连;
其中,第一命令生成模块,用于将接收到的第一闪存操作命令拆分为第一命令与数据传输命令和第一状态查询命令,所述第一闪存操作命令对应第一闪存颗粒;
第二命令生成模块,用于将接收到的第二闪存操作命令拆分为第二命令与数据传输命令和第二状态查询命令,所述第二闪存操作命令对应第二闪存颗粒,所述第二闪存颗粒与所述第一闪存颗粒通过同一根总线与目标命令执行模块相连;
所述第二命令生成模块,还用于在所述第一命令生成模块向所述目标命令执行模块发送所述第一命令与数据传输命令之后,且在所述第一命令生成模块向所述目标命令执行模块发送所述第一状态查询命令之前,向所述目标命令执行模块发送所述第二命令与数据传输命令;
所述目标命令执行模块,用于确定与所述第二命令与数据传输命令相对应的控制逻辑,并向所述第二闪存颗粒发送所述控制逻辑。
2.根据权利要求1所述的闪存控制器,其特征在于,所述第一命令生成模块,还用于向所述目标命令执行模块发送所述第一状态查询命令;
所述第二命令生成模块,还用于向所述目标命令执行模块发送所述第二状态查询命令。
3.根据权利要求1或2所述的闪存控制器,其特征在于,所述闪存控制器还包括:仲裁模块;
其中,所述向所述目标命令执行模块发送所述第二命令与数据传输命令,包括:向所述仲裁模块发送所述第二命令与数据传输命令;
所述仲裁模块用于:
确定所述第二命令与数据传输命令的发送优先级;
根据所述第二命令与数据传输命令的发送优先级向所述目标命令执行模块发送所述第二命令与数据传输命令。
4.根据权利要求1至3中任一项所述的闪存控制器,其特征在于,所述第一命令与数据传输命令、所述第一状态查询命令、所述第二命令与数据传输命令和所述第二状态查询命令均由至少一个子命令构成,所有子命令具有相同的命令格式。
5.根据权利要求4所述的闪存控制器,其特征在于,每个子命令包括命令字字段、地址字段和数据字段;
其中,当所述第一命令与数据传输命令的类型为写命令时,所述命令字字段承载第一信息,所述第一信息用于指示所述第一闪存颗粒将所述数据字段承载的数据写入到所述地址字段承载的地址中;
当所述第二命令与数据的传输命令的类型为读命令时,所述命令字段承载第二信息,所述第二信息用于指示所述第二闪存颗粒按照所述数据字段承载的时序信息从所述地址字段承载的地址中读取数据。
6.根据权利要求1至5中任一项所述的闪存控制器,其特征在于,所述闪存控制器还包括:闪存操作调度模块;
所述闪存操作调度模块,用于接收微控制器发送的所述第二闪存操作命令;
所述闪存操作调度模块,还用于当确定所述第二命令生成模块的工作状态为空闲状态时,向所述第二命令生成模块发送所述第二闪存操作命令。
7.根据权利要求6所述的闪存控制器,其特征在于,所述闪存控制器还包括:
总线状态管理模块,用于记录闪存颗粒的工作状态信息,所述工作状态信息用于指示所述存储设备中的闪存颗粒的工作状态;
其中,所述第二命令生成模块,还用于将所述第二闪存颗粒的工作状态写入到所述总线状态管理模块中。
8.根据权利要求7所述的闪存控制器,其特征在于,所述闪存操作调度模块还用于:
接收所述微控制器发送的状态查询信息;
根据所述状态查询信息和所述工作状态信息,确定所述微控制器需要查询的闪存颗粒的工作状态;
向所述微控制器反馈所述微控制器需要查询的闪存颗粒的工作状态。
9.根据权利要求6至8中任一项所述的闪存控制器,其特征在于,当所述第二命令生成模块查询到所述第二闪存颗粒处于空闲状态时,所述第二命令生成模块还用于:
向所述闪存操作调度模块发送反馈信息,所述反馈信息用于指示所述第二闪存颗粒处于空闲状态;
接收所述闪存操作调度模块发送的第三闪存操作命令,所述第三闪存操作命令对应所述第二闪存颗粒。
10.一种闪存控制方法,所述闪存控制方法由闪存控制器执行,其特征在于,所述闪存控制器包括:多个命令生成模块和至少一个命令执行模块,每个命令生成模块用于接收闪存操作命令,每个闪存操作命令包括命令与数据传输命令和状态查询命令,每个命令执行模块通过总线与闪存颗粒阵列相连,所述闪存控制方法包括:
通过第一命令生成模块将接收到的第一闪存操作命令拆分为第一命令与数据传输命令和第一状态查询命令,所述第一闪存操作命令对应第一闪存颗粒;
通过第二命令生成模块将接收到的第二闪存操作命令拆分为第二命令与数据传输命令和第二状态查询命令,所述第二闪存操作命令对应第二闪存颗粒,所述第二闪存颗粒与所述第一闪存颗粒通过同一根总线与目标命令执行模块相连;
在通过所述第一命令生成模块向所述目标命令执行模块发送所述第一命令与数据传输命令之后,且在通过所述第一命令生成模块向所述目标命令执行模块发送所述第一状态查询命令之前,通过所述第二命令生成模块向所述目标命令执行模块发送所述第二命令与数据传输命令;
通过所述目标命令执行模块确定与所述第二命令与数据传输命令相对应的控制逻辑,并向所述第二闪存颗粒发送所述控制逻辑。
11.根据权利要求10所述的闪存控制方法,其特征在于,所述方法还包括:
在通过所述第二命令生成模块向所述目标命令执行模块发送所述第二命令与数据传输命令之后,通过所述第一命令执行模块向所述目标命令执行模块发送所述第一状态查询命令;
在通过所述第一命令生成模块向所述目标命令执行模块发送所述第一状态查询命令之后,通过所述第二命令生成模块向所述目标命令执行模块发送所述第二状态查询命令。
12.根据权利要求10或11所述的闪存控制方法,其特征在于,所述闪存控制器还包括:仲裁模块;
其中,所述通过所述第二命令生成模块向所述目标命令执行模块发送所述第二命令与数据传输命令,包括:
通过所述第二命令生成模块向所述仲裁模块发送所述第二命令与数据传输命令;
通过所述仲裁模块确定所述第二命令与数据传输命令的发送优先级;
通过所述仲裁模块根据所述第二命令与数据传输命令的发送优先级,向所述目标命令执行模块发送所述第二命令与数据传输命令。
13.根据权利要求10至12中任一项所述的闪存控制方法,其特征在于,所述第一命令与数据传输命令、所述第一状态查询命令、所述第二命令与数据传输命令和所述第二状态查询命令均由至少一个子命令构成,所有子命令具有的命令格式。
14.根据权利要求13所述的闪存控制方法,其特征在于,每个子命令包括命令字字段、地址字段和数据字段;
其中,当所述第一命令与数据传输命令的类型为写命令时,所述命令字字段承载第一信息,所述第一信息用于指示所述第一闪存颗粒将所述数据字段承载的数据写入到所述地址字段承载的地址中;
当所述第二命令与数据的传输命令的类型为读命令时,所述命令字段承载第二信息,所述第二信息用于指示所述第二闪存颗粒按照所述数据字段承载的时序信息从所述地址字段承载的地址中读取数据。
15.根据权利要求10至14中任一项所述的闪存控制方法,其特征在于,所述闪存控制器还包括:闪存操作调度模块,所述方法还包括:
通过所述闪存操作调度模块接收微控制器发送的所述第二闪存操作命令;
当通过所述闪存操作调度模块确定所述第二命令生成模块的工作状态为空闲状态时,通过所述闪存操作调度模块发送所述第二闪存操作命令。
16.根据权利要求15所述的闪存控制方法,其特征在于,所述闪存控制器还包括:总线状态管理模块,所述总线状态管理模块用于记录闪存颗粒的工作状态信息,所述工作状态信息用于指示所述存储设备中的闪存颗粒的工作状态,所述方法还包括:
通过所述第二命令生成模块将所述第二闪存颗粒的工作状态写入到所述总线状态管理模块中。
17.根据权利要求16所述的闪存控制方法,其特征在于,所述方法还包括:
通过所述闪存操作调度模块接收所述微控制器发送的状态查询信息;
通过所述闪存操作调度模块根据所述状态查询信息和所述工作状态信息,确定所述微控制器需要查询的闪存颗粒的工作状态。
通过所述闪存操作调度模块向所述微控制器反馈所述微控制器需要查询的闪存颗粒的工作状态。
18.根据权利要求15至17中任一项所述的闪存控制方法,其特征在于,当通过所述第二命令生成模块查询到所述第二闪存颗粒处于空闲状态时,所述方法还包括:
通过所述第二命令生成模块向所述闪存操作调度模块发送反馈信息,所述反馈信息用于指示所述第二闪存颗粒处于空闲状态;
通过所述第二命令生成模块接收所述闪存操作调度模块发送的第三闪存操作命令,所述第三闪存操作命令对应所述第二闪存颗粒。
19.一种固态硬盘,其特征在于,包括:如权利要求1至9中任一所述的闪存控制器和闪存颗粒,所述闪存控制器与所述闪存颗粒建立通信连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610874201.3A CN106502581B (zh) | 2016-09-30 | 2016-09-30 | 闪存控制器、闪存控制方法和固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610874201.3A CN106502581B (zh) | 2016-09-30 | 2016-09-30 | 闪存控制器、闪存控制方法和固态硬盘 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502581A true CN106502581A (zh) | 2017-03-15 |
CN106502581B CN106502581B (zh) | 2019-05-28 |
Family
ID=58293465
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610874201.3A Active CN106502581B (zh) | 2016-09-30 | 2016-09-30 | 闪存控制器、闪存控制方法和固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502581B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157205A (zh) * | 2021-02-26 | 2021-07-23 | 西安微电子技术研究所 | 一种nand阵列的控制方法、控制器、电子设备及存储介质 |
CN116679878A (zh) * | 2023-05-31 | 2023-09-01 | 珠海妙存科技有限公司 | 闪存数据处理方法、装置、电子设备及可读存储介质 |
CN116991310A (zh) * | 2023-06-27 | 2023-11-03 | 珠海妙存科技有限公司 | 闪存状态查询方法及闪存控制器 |
US11928345B1 (en) | 2022-08-17 | 2024-03-12 | Beijing Superstring Academy Of Memory Technology | Method for efficiently processing instructions in a computational storage device |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234358A (ja) * | 2007-03-20 | 2008-10-02 | Nec Corp | 記憶装置、情報処理装置及び不正書込検出方法 |
CN101572123A (zh) * | 2009-05-31 | 2009-11-04 | 成都市华为赛门铁克科技有限公司 | 非易失性存储器控制装置、其数据调度方法及系统 |
CN101740102A (zh) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | 一种多通道闪存芯片阵列结构及其写入和读出方法 |
CN104965678A (zh) * | 2015-07-01 | 2015-10-07 | 忆正科技(武汉)有限公司 | 一种固态存储的控制方法、装置及固态存储设备 |
CN105765660A (zh) * | 2013-10-24 | 2016-07-13 | 高通股份有限公司 | 拆分用于电阻式存储器高速缓存的写操作 |
-
2016
- 2016-09-30 CN CN201610874201.3A patent/CN106502581B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008234358A (ja) * | 2007-03-20 | 2008-10-02 | Nec Corp | 記憶装置、情報処理装置及び不正書込検出方法 |
CN101740102A (zh) * | 2008-11-11 | 2010-06-16 | 西安奇维测控科技有限公司 | 一种多通道闪存芯片阵列结构及其写入和读出方法 |
CN101572123A (zh) * | 2009-05-31 | 2009-11-04 | 成都市华为赛门铁克科技有限公司 | 非易失性存储器控制装置、其数据调度方法及系统 |
CN105765660A (zh) * | 2013-10-24 | 2016-07-13 | 高通股份有限公司 | 拆分用于电阻式存储器高速缓存的写操作 |
CN104965678A (zh) * | 2015-07-01 | 2015-10-07 | 忆正科技(武汉)有限公司 | 一种固态存储的控制方法、装置及固态存储设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157205A (zh) * | 2021-02-26 | 2021-07-23 | 西安微电子技术研究所 | 一种nand阵列的控制方法、控制器、电子设备及存储介质 |
CN113157205B (zh) * | 2021-02-26 | 2023-03-14 | 西安微电子技术研究所 | 一种nand阵列的控制方法、控制器、电子设备及存储介质 |
US11928345B1 (en) | 2022-08-17 | 2024-03-12 | Beijing Superstring Academy Of Memory Technology | Method for efficiently processing instructions in a computational storage device |
CN116679878A (zh) * | 2023-05-31 | 2023-09-01 | 珠海妙存科技有限公司 | 闪存数据处理方法、装置、电子设备及可读存储介质 |
CN116679878B (zh) * | 2023-05-31 | 2024-04-19 | 珠海妙存科技有限公司 | 闪存数据处理方法、装置、电子设备及可读存储介质 |
CN116991310A (zh) * | 2023-06-27 | 2023-11-03 | 珠海妙存科技有限公司 | 闪存状态查询方法及闪存控制器 |
CN116991310B (zh) * | 2023-06-27 | 2024-05-07 | 珠海妙存科技有限公司 | 闪存状态查询方法及闪存控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN106502581B (zh) | 2019-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11106393B2 (en) | Latency-based scheduling of command processing in data storage devices | |
JP7089830B2 (ja) | 不揮発性メモリデータの書き込み管理のための装置、システム、及び、方法 | |
US11693568B2 (en) | Workload-adaptive overprovisioning in solid state storage drive arrays | |
TWI702495B (zh) | 對使用者資料執行選擇性下伏暴露映射之設備、方法以及多模式儲存裝置 | |
TWI716416B (zh) | 儲存系統、用於管理儲存媒體的方法以及系統、操作儲存系統的方法、以及非暫存性電腦可讀媒體 | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
US10802733B2 (en) | Methods and apparatus for configuring storage tiers within SSDs | |
CN107844431A (zh) | 映射表更新方法、存储器控制电路单元与存储器存储装置 | |
CN106502581B (zh) | 闪存控制器、闪存控制方法和固态硬盘 | |
US11449443B2 (en) | Identification and classification of write stream priority | |
US20100057979A1 (en) | Data transmission method for flash memory and flash memory storage system and controller using the same | |
CN103019971A (zh) | 快速响应trim命令的方法、SSD控制器及系统 | |
TWI737031B (zh) | 多平面上頁面的片段資料讀取方法及電腦程式產品 | |
CN108932106A (zh) | 固态硬盘访问方法以及使用该方法的装置 | |
CN110489264A (zh) | 记忆装置页可用性管理方法及系统、记忆装置及电子装置 | |
CN104281413A (zh) | 命令队列管理方法、存储器控制器及存储器储存装置 | |
US8131966B2 (en) | System and method for storage structure reorganization | |
WO2021035555A1 (zh) | 一种固态硬盘的数据存储方法、装置及固态硬盘ssd | |
CN101788888A (zh) | 一种实现目标端驱动的方法及该目标端驱动 | |
US9152348B2 (en) | Data transmitting method, memory controller and data transmitting system | |
CN105786724A (zh) | 空间管理方法及装置 | |
CN106326142B (zh) | 缓冲存储器存取方法、存储器控制器与存储器存储装置 | |
CN108255424A (zh) | 一种NVMe固态硬盘IO响应延迟的保障方法 | |
CN105573661B (zh) | 数据写入方法、存储器存储装置及存储器控制电路单元 | |
CN108958640A (zh) | 存储器管理方法、存储器控制电路单元及存储器存储装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |