CN116204121A - 一种闪存控制***及其闪存设备 - Google Patents
一种闪存控制***及其闪存设备 Download PDFInfo
- Publication number
- CN116204121A CN116204121A CN202211736409.0A CN202211736409A CN116204121A CN 116204121 A CN116204121 A CN 116204121A CN 202211736409 A CN202211736409 A CN 202211736409A CN 116204121 A CN116204121 A CN 116204121A
- Authority
- CN
- China
- Prior art keywords
- command
- flash memory
- execution
- queue
- module
- 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.)
- Pending
Links
Images
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/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
- 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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/0611—Improving I/O performance in relation to response time
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System (AREA)
Abstract
本申请提供一种闪存控制***及其闪存设备,所述闪存控制***包括命令接收队列、命令返回队列、DMA控制器、处理器、命令执行模块,所述处理器包括数据存储器。本申请提供的闪存控制***及其闪存设备通过DMA控制器传输闪存操作指令和执行状态信息,采用硬件DMA的方式可以有效提高命令交互速度,硬件自动读取状态信息功能,可有效降低***消耗。处理器通过数据存储器中的信息处理完成闪存操作命令的解析,避免了总线访问引入的高延时,可以大大提高执行效率。
Description
技术领域
本申请涉及闪存技术领域,具体涉及一种闪存控制***及其闪存设备。
背景技术
随着NAND Flash技术迭代,Flash操作指令越来越复杂,Flash控制器的设计也相应的需要同步迭代更新,同时复杂度也越来越高。Flash颗粒在执行Program/Read/Erase操作之后,都需要通过poll status命令(状态信息命令)获取命令执行结果信息。在此期间Flash控制器需要向Flash颗粒不断的下发poll status命令去获取信息,直到获取到有效的执行结果信息。
在构思及实现本申请过程中,发明人发现至少存在如下问题:Flash操作指令复杂程度越来越高,纯硬件设计无法匹配不断更新的Flash操作指令;原有Flash控制器中重复的poll status操作对***消耗较大,成本高,效率低。
前面的叙述在于提供一般的背景信息,并不一定构成现有技术。
发明内容
为了缓解以上问题,本申请提供一种闪存控制***及其闪存设备。
在一方面,本申请提供一种闪存控制***,具体地,包括命令接收队列、命令返回队列、DMA控制器、处理器、命令执行模块,所述处理器包括数据存储器;
所述命令接收队列用于接收闪存操作指令;
所述DMA控制器与所述命令接收队列连接,用于将所述闪存操作指令复制至所述数据存储器中;
所述处理器与所述命令执行模块连接,用于解析所述数据存储器中的所述闪存操作指令,将产生的闪存操作信息发送至所述命令执行模块进行相应操作;
所述命令执行模块用于执行所述闪存操作信息,并在执行完成后发送命令状态信息至所述处理器,以使所述处理器在所述数据存储器写入执行状态信息;
所述DMA控制器还与所述命令返回队列连接,用于将所述执行状态信息复制至所述命令返回队列,以使所述命令返回队列返回所述闪存操作指令的执行状态信息。
可选地,所述闪存控制***中的所述命令接收队列中的指令数量达到预设数量或预设时长时,启动所述DMA控制器将所述命令接收队列中的所述闪存操作指令复制至所述数据存储器中。
可选地,所述闪存控制***中的所述处理器在接收到所述命令状态信息时,启动所述DMA控制器并将所述执行状态信息复制至所述命令返回队列。
可选地,所述闪存控制***中的所述数据存储器包括命令信息寄存器和命令状态寄存器;
所述DMA控制器将所述闪存操作指令复制至所述命令信息寄存器中以供所述处理器解析;所述处理器将所述执行状态信息写入所述命令状态寄存器,以使所述DMA控制器将所述执行状态信息复制至所述命令返回队列。
可选地,所述闪存控制***中的所述数据存储器还包括命令操作寄存器,其中:
所述处理器将所述闪存操作信息写入所述命令操作寄存器,以使所述命令执行模块从所述命令操作寄存器读取;和/或,
所述命令执行模块将所述命令状态信息写入所述命令操作寄存器,以使所述处理器从所述命令操作寄存器读取。
可选地,所述闪存控制***还包括接口时序模块和驱动模块;
所述接口时序模块与所述命令执行模块连接,用于按预设时序转换所述命令执行模块生成的闪存操作指令;
所述驱动模块连接在闪存存储器和所述接口时序模块之间,用于根据所述闪存操作指令驱动所述闪存存储器。
可选地,所述闪存控制***还包括数据传输模块;所述数据传输模块与所述接口时序模块连接,用于传输读写数据。
可选地,所述闪存控制***中的所述命令执行模块执行读取状态信息命令,在未获取预设状态时将读取状态信息命令重新执行。
可选地,所述闪存控制***中的所述命令执行模块包括命令解析状态机和读取状态信息命令队列;所述命令解析状态机在空闲时,从所述读取状态信息命令队列中获取读取状态信息命令并执行,在未执行完毕时在所述读取状态信息命令队列中重新加入读取状态信息命令;并在执行完毕后将所述读取状态信息命令队列中的当前读取状态信息命令清除。
另一方面,本申请提供一种闪存设备,具体地,包括互相连接的闪存介质和如上所述的闪存控制***。
如上所述,本申请提供的闪存控制***及其闪存设备通过DMA控制器传输闪存操作指令和执行状态信息,采用硬件DMA的方式可以有效提高命令交互速度,硬件自动读取状态信息功能,可有效降低***消耗。处理器通过数据存储器中的信息处理完成闪存操作命令的解析,避免了总线访问引入的高延时,可以大大提高执行效率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例的闪存控制***的结构图。
图2为本申请图1实施例基础上的数据存储器的结构图。
图3为本申请图1实施例基础上的闪存控制***的结构图。
图4为本申请一实施例的命令执行模块的执行流程图。
图5为本申请一实施例的命令接收逻辑示意图。
图6为本申请一实施例的命令返回逻辑示意图。
图7为本申请一实施例的命令执行模块内部逻辑示意图。
图8为本申请一实施例的命令解析状态机执行读取状态信息命令的示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
需要说明的是,NAND闪存是一种比硬盘驱动器更好的存储设备,在不超过4GB的低容量应用中表现得尤为明显。随着人们持续追求功耗更低、重量更轻和性能更佳的产品,NAND被证明极具吸引力。NAND闪存是一种非易失性存储技术,即断电后仍能保存数据。它的发展目标就是降低每比特存储成本、提高存储容量。
第一实施例
在一方面,本申请提供一种闪存控制***,图1为本申请一实施例的闪存控制***的结构图。
请参阅图1,在一实施例中,闪存控制***包括命令接收队列10、命令返回队列20、DMA控制器30、处理器40、命令执行模块50,处理器40包括数据存储器41。
示例性地,DMA(Direct Memory Access,直接存储器访问)是所有现代电脑的重要特色,一种通过硬件实现的数据传输机制,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。处理器40为MCU微控制器,数据存储器41为MCU DCCM微控制器数据存储器41,存储处理器40代码运行数据。可选地,处理器40还包括MCU ICCM指令存储器,用于存储处理器40的运行指令。
命令接收队列10用于接收闪存操作指令。
示例性地,命令接收队列10用于接收发送给NAND Flash的Program命令,Read命令,Erase命令等。
DMA控制器30与命令接收队列10连接,用于将闪存操作指令复制至数据存储器41中。
示例性地,DMA控制器用于将命令接收队列10接收的闪存操作指令移入数据存储器41中指定位置。
处理器40与命令执行模块50连接,用于解析数据存储器41中的闪存操作指令,将产生的闪存操作信息发送至命令执行模块50进行相应操作。
示例性地,处理器40直接从数据存储器41中获取闪存操作指令,减少总线读写操作引入的高延时,可以有效的提高执行效率。
命令执行模块50用于执行闪存操作信息,并在执行完成后发送命令状态信息(即poll status命令)至处理器40,以使处理器40在数据存储器41写入执行状态信息。
示例性地,命令执行模块50接收处理器40解析的闪存操作指令并执行闪存操作信息,如Read操作,Program操作和Poll status操作等。可选地,命令执行模块50包含命令解析状态机以及poll status命令队列构成。
DMA控制器30还与命令返回队列20连接,用于将执行状态信息复制至命令返回队列20,以使命令返回队列20返回闪存操作指令的执行状态信息。
示例性地,DMA控制器30将数据存储器41中的执行状态信息移入命令返回队列20中,命令返回队列20用于返回执行状态信息。
在本实施例中,闪存控制***通过DMA控制器30传输闪存操作指令和执行状态信息,采用硬件DMA的方式可以有效提高命令交互速度。处理器40通过数据存储器41中的信息处理完成闪存操作命令的解析,避免了总线访问引入的高延时,可以大大提高执行效率。
在一实施例中,闪存控制***中的命令接收队列10中的指令数量达到预设数量或预设时长时,启动DMA控制器30将命令接收队列10中的闪存操作指令复制至数据存储器41中。
示例性地,命令接收队列10中的指令到达预设触发条件后(如数量或时间)启动DMA控制器30。可选地,本申请对预设数量或预设时长的大小不做限定。示例性地,根据应用场景需要,预设数量为10条,预设时长为1ms。
在一实施例中,闪存控制***中的处理器40在接收到命令状态信息时,启动DMA控制器30并将执行状态信息复制至命令返回队列20。
示例性地,处理器40收集到命令状态信息后启动DMA控制器30,DMA控制器30将数据存储器41中的执行状态信息移入命令返回队列20中,采用硬件DMA的方式可有效提高命令交互速度。
图2为本申请图1实施例基础上的数据存储器的结构图。
请参阅图2,在一实施例中,闪存控制***中的数据存储器41包括命令信息寄存器42和命令状态寄存器43。
DMA控制器30将闪存操作指令复制至命令信息寄存器42中以供处理器40解析;处理器40将执行状态信息写入命令状态寄存器43,以使DMA控制器30将执行状态信息复制至命令返回队列20。
示例性地,处理器40解析数据存储器41的命令信息寄存器42中的闪存操作指令,在命令执行完成后,将执行状态信息存储在数据存储器41的命令状态寄存器43中。
请继续参阅图2,在一实施例中,闪存控制***中的数据存储器41还包括命令操作寄存器44,其中:
处理器40将闪存操作信息写入命令操作寄存器44,以使命令执行模块50从命令操作寄存器44读取。命令执行模块50将命令状态信息写入命令操作寄存器44,以使处理器40从命令操作寄存器44读取。
示例性地,处理器40将产生的闪存操作信息通过命令操作寄存器44发送给命令执行模块50,同时通过命令操作寄存器44接收命令状态信息。命令操作寄存器44为处理器40和后端命令执行模块50的交互空间。在本实施例中,整个命令执行过程中,处理器40直接从数据存储器41的空间中获取信息,减少总线读写操作引入的高延时,可以有效的提高执行效率。
图3为本申请图1实施例基础上的闪存控制***的结构图。
请参阅图3,在一实施例中,闪存控制***还包括接口时序模块60和驱动模块70。
接口时序模块60与命令执行模块50连接,用于按预设时序转换命令执行模块50生成的闪存操作指令。驱动模块70连接在闪存存储器和接口时序模块60之间,用于根据闪存操作指令驱动闪存存储器。
示例性地,接口时序模块60在接收到闪存操作命令后产生相应的NAND操作时序发送给驱动模块70。驱动模块70将驱动信号通过NAND IO端口操作闪存存储器。
请继续参阅图3,在一实施例中,闪存控制***还包括数据传输模块80。数据传输模块80与接口时序模块60连接,用于传输读写数据。
示例性地,数据传输模块80用于Read/Program操作时从接口时序模块60传输读写数据。
在一实施例中,闪存控制***中的命令执行模块50执行读取状态信息命令,在未获取预设状态时将读取状态信息命令重新执行。
示例性地,命令执行模块50中的命令解析状态机在执行读取状态信息(pollstatus)命令,在未得到需要的状态时将读取状态信息命令填写入读取状态命令队列中。示例性地,读取状态信息是指获取闪存颗粒执行某一操作返回的状态,对应不同的操作有不同的状态结果,这个结果状态信息一般是ONFI协议规定的,闪存颗粒有对应说明。通过硬件自动读取状态信息功能,可有效降低***消耗。
图4为本申请一实施例的命令执行模块的执行流程图。
请参阅图4,在一实施例中,闪存控制***中的命令执行模块50包括命令解析状态机和读取状态信息命令队列。
命令解析状态机在空闲时,从读取状态信息命令队列中获取读取状态信息命令并执行,在未执行完毕时在读取状态信息命令队列中重新加入读取状态信息命令。并在执行完毕后将读取状态信息命令队列中的当前读取状态信息命令清除。
示例性地,状态信息命令可以为poll status命令。在状态机空闲同时没有处理器40下发命令需要执行时从poll status命令队列中获取poll status命令执行。在pollstatus完成之后将当前poll status命令清除,未完成则重现加入poll status命令队列。命令执行模块50实现硬件在空闲期间自动poll status,减少poll stauts操作对***的消耗。
第二实施例
另一方面,本申请提供一种闪存设备,具体地,包括互相连接的闪存介质和如上所述的闪存控制***。
在一实施例中,闪存设备的NAND Flash控制器由命令接收队列,命令返回队列,Command/Status DMA(命令/状态DMA),MCU(微控制器),MCU DCCM(微控制器数据存储器),MCU ICCM(微控制器指令存储器),命令执行模块,数据传输模块,接口时序模块和PHY(驱动模块)构成。
命令接收队列用于接收发送给NAND Flash的Program命令,Read命令,Erase命令等。
命令返回队列用于返回命令执行状态信息。
Command/Status DMA模块用于将命令接收队列中的命令信息搬入MCU DCCM中,将命令执行状态信息从MCU DCCM中搬入命令返回队列中。DMA(Direct Memory Access,直接存储器访问)是所有现代计算机的重要特色,它允许不同速度的硬件装置来沟通,而不需要依赖于CPU的大量中断负载。否则,CPU需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU对于其他的工作来说就无法使用。
图5为本申请一实施例的命令接收逻辑示意图。
请参考图5,可选地,命令接收的流程如下:
第1步,命令接收队列中的命令到达预设触发条件后(如数量或时间)启动Command/Status DMA模块。可选地,根据具体使用场景需要,设置适合的预设触发条件。比如设置命令数量达到10条时启动,也可以是前一次启动过了1ms时间后再次启动。
第2步,Command/Status DMA模块将命令接收队列中的命令信息转移入MCU DCCM中指定位置。
图6为本申请一实施例的命令返回逻辑示意图。
请参考图6,可选地,命令返回流程如下:
第1步,MCU收集到命令返回状态后启动Command/Status DMA模块;
第2步,Command/Status DMA模块将MCU DCCM中的命令返回状态信息Commandstatus移入命令返回队列中。
可选地,选择使用Direct Memory Access的数据传输机制进行命令的接收和返回。通过硬件实现的数据传输机制,用DMA的方式去处理命令和命令返回信息,而不是让MCU操作去处理,可有效提高命令交互速度。
MCU可用于解析DCCM中的命令信息Command info,将产生的Flash操作信息通过Command operation空间发送给命令执行模块,同时通过Command operation空间接收命令执行状态信息。在命令执行完成后,将命令状态信息存储在DCCM中Command status空间。整个命令执行过程中,MCU直接从DCCM空间获取信息,减少总线读写操作引入的高延时,可有效的提高执行效率。
MCU ICCM为MCU指令存储器,用于存储MCU运行指令。
MCU DCCM为MCU数据存储器。MCU DCCM包含MCU代码运行数据,还包含命令信息Command info,命令返回状态信息Command status,以及和命令执行模块交互信息Commandoperation。MCU数据存储器的内部设置请参考图2,包括Command info命令信息寄存器、Command status命令状态寄存器和Command operation命令操作寄存器。Command info空间存放命令信息,Command status空间存放命令返回状态信息。该两部分空间为MCU和前端交互空间。Command operation空间为MCU和后端命令执行模块交互空间,MCU解析出Flash操作信息后填入Command operation空间,命令执行模块从对应的地址空间获取命令操作信息。
可选地,Command operation命令操作寄存器在命令执行模块执行命令的过程中,MCU先向Command operation空间填入命令操作信息;命令执行模块再从Commandoperation空间获取命令操作信息。
可选地,命令执行模块返回命令执行状态信息的过程中,命令执行模块完成命令操作后先向Command operation空间写入状态信息;MCU再从Command operation指定空间获取命令执行状态。
图7为本申请一实施例的命令执行模块内部逻辑示意图。
请参考图7,命令执行模块用于接收MCU解析命令执行Flash操作,如Read操作,Program操作和Poll status操作等。主要包含命令解析状态机以及poll status命令队列构成。
图8为本申请一实施例的命令解析状态机执行读取状态信息命令的示意图。
如图8所示,解析状态机在执行poll status命令,在未得到需要的status时将poll status命令填写入poll status命令队列中。
请同时参考图8和图4,在状态机空闲同时没有MCU下发命令需要执行时从pollstatus命令队列中获取poll status命令执行。在poll status完成之后将当前pollstatus命令清除,未完成则重现加入poll status命令队列。从而实现硬件在空闲期间自动poll status,减少poll stauts操作对***的消耗。
可选地,接口时序模块用于在接收到NAND Flash操作命令后产生相应的NAND操作时序发送给NAND PHY。
可选地,驱动模块PHY用于将驱动信号通过NAND IO操作NAND Flash。
可选地,数据传输模块用于Read/Program操作时从接口时序模块传输读写数据。
如上所述,本申请提供的闪存控制***和闪存设备通过DMA方式实现数据存储器和前端模块命令交互,提高命令交互速度。处理器和命令执行模块直接通过数据存储器进行交互,具有最快的交互速度。硬件自动读取状态信息功能,可有效降低***消耗。
在本申请提供的闪存设备的实施例中,可以包含任一上述实施例的全部技术特征,说明书拓展和解释内容与上述方法的各实施例基本相同,在此不再做赘述。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例设备中的单元可以根据实际需要进行合并、划分和删减。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种闪存控制***,其特征在于,包括命令接收队列、命令返回队列、DMA控制器、处理器、命令执行模块,所述处理器包括数据存储器;
所述命令接收队列用于接收闪存操作指令;
所述DMA控制器与所述命令接收队列连接,用于将所述闪存操作指令复制至所述数据存储器中;
所述处理器与所述命令执行模块连接,用于解析所述数据存储器中的所述闪存操作指令,将产生的闪存操作信息发送至所述命令执行模块进行相应操作;
所述命令执行模块用于执行所述闪存操作信息,并在执行完成后发送命令状态信息至所述处理器,以使所述处理器在所述数据存储器写入执行状态信息;
所述DMA控制器还与所述命令返回队列连接,用于将所述执行状态信息复制至所述命令返回队列,以使所述命令返回队列返回所述闪存操作指令的执行状态信息。
2.根据权利要求1所述的闪存控制***,其特征在于,所述命令接收队列中的指令数量达到预设数量或预设时长时,启动所述DMA控制器将所述命令接收队列中的所述闪存操作指令复制至所述数据存储器中。
3.根据权利要求1所述的闪存控制***,其特征在于,所述处理器在接收到所述命令状态信息时,启动所述DMA控制器并将所述执行状态信息复制至所述命令返回队列。
4.根据权利要求1所述的闪存控制***,其特征在于,所述数据存储器包括命令信息寄存器和命令状态寄存器;
所述DMA控制器将所述闪存操作指令复制至所述命令信息寄存器中以供所述处理器解析;所述处理器将所述执行状态信息写入所述命令状态寄存器,以使所述DMA控制器将所述执行状态信息复制至所述命令返回队列。
5.根据权利要求4所述的闪存控制***,其特征在于,所述数据存储器还包括命令操作寄存器,其中:
所述处理器将所述闪存操作信息写入所述命令操作寄存器,以使所述命令执行模块从所述命令操作寄存器读取;和/或,
所述命令执行模块将所述命令状态信息写入所述命令操作寄存器,以使所述处理器从所述命令操作寄存器读取。
6.根据权利要求1所述的闪存控制***,其特征在于,所述闪存控制***还包括接口时序模块和驱动模块;
所述接口时序模块与所述命令执行模块连接,用于按预设时序转换所述命令执行模块生成的闪存操作指令;
所述驱动模块连接在闪存存储器和所述接口时序模块之间,用于根据所述闪存操作指令驱动所述闪存存储器。
7.根据权利要求6所述的闪存控制***,其特征在于,所述闪存控制***还包括数据传输模块;所述数据传输模块与所述接口时序模块连接,用于传输读写数据。
8.根据权利要求1-7任一项所述的闪存控制***,其特征在于,所述命令执行模块执行读取状态信息命令,在未获取预设状态时将读取状态信息命令重新执行。
9.根据权利要求8所述的闪存控制***,其特征在于,所述命令执行模块包括命令解析状态机和读取状态信息命令队列;所述命令解析状态机在空闲时,从所述读取状态信息命令队列中获取读取状态信息命令并执行,在未执行完毕时在所述读取状态信息命令队列中重新加入读取状态信息命令;并在执行完毕后将所述读取状态信息命令队列中的当前读取状态信息命令清除。
10.一种闪存设备,其特征在于,包括互相连接的闪存介质和如权利要求1-9任一项所述的闪存控制***。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736409.0A CN116204121A (zh) | 2022-12-31 | 2022-12-31 | 一种闪存控制***及其闪存设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211736409.0A CN116204121A (zh) | 2022-12-31 | 2022-12-31 | 一种闪存控制***及其闪存设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116204121A true CN116204121A (zh) | 2023-06-02 |
Family
ID=86516412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211736409.0A Pending CN116204121A (zh) | 2022-12-31 | 2022-12-31 | 一种闪存控制***及其闪存设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116204121A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116804915A (zh) * | 2023-08-28 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 基于存储器的数据交互方法、处理器、设备以及介质 |
-
2022
- 2022-12-31 CN CN202211736409.0A patent/CN116204121A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116804915A (zh) * | 2023-08-28 | 2023-09-26 | 腾讯科技(深圳)有限公司 | 基于存储器的数据交互方法、处理器、设备以及介质 |
CN116804915B (zh) * | 2023-08-28 | 2023-12-15 | 腾讯科技(深圳)有限公司 | 基于存储器的数据交互方法、处理器、设备以及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6859856B2 (en) | Method and system for a compact flash memory controller | |
EP2377028B1 (en) | Modifying commands | |
US20110010490A1 (en) | Solid state drive and related method of operation | |
GB2430512A (en) | Controller for NAND flash memory | |
EP2195742A1 (en) | Memory controller for performing memory block initialization and copy | |
KR20120112965A (ko) | 비휘발성 메모리 장치, 이를 스왑 메모리로 이용하는 데이터 처리 장치, 및 이를 이용한 스왑 방법 | |
CN116204121A (zh) | 一种闪存控制***及其闪存设备 | |
CN112181293B (zh) | 固态硬盘控制器、固态硬盘、存储***及数据处理方法 | |
JP2006209448A (ja) | ダイレクトメモリアクセス制御方法、ダイレクトメモリアクセス制御装置、情報処理システム、プログラム | |
JP2008521080A5 (zh) | ||
US8468273B2 (en) | Information storage apparatus, information transfer method, information transfer system, program, and storage medium | |
CN116225992A (zh) | 一种支持虚拟化仿真设备的NVMe验证平台及方法 | |
US20150254116A1 (en) | Data processing apparatus for pipeline execution acceleration and method thereof | |
CN111176566B (zh) | 一种支持queue命令的eMMC读写控制方法及存储介质 | |
US20120210027A1 (en) | Speculative read-ahead for improving system throughput | |
CN113093989A (zh) | 管理完成时刻的存储控制器及其操作方法 | |
WO2020140361A1 (zh) | 基于fpga的智能存储控制***及其应用 | |
KR101491687B1 (ko) | 버퍼 용량의 사용이 개선된 대량 저장 시스템 | |
US20070271423A1 (en) | Control device and control method for memory | |
JP2011530744A (ja) | 停止可能および再始動可能dmaエンジン | |
CN112825028B (zh) | 用于在易失性存储器中写入的方法和对应的集成电路 | |
US8166228B2 (en) | Non-volatile memory system and method for reading and storing sub-data during partially overlapping periods | |
CN108268280B (zh) | 半导体装置的处理器及其操作方法 | |
JP2000132507A (ja) | Scsiプロトコルにおけるコマンド処理方法およびそれに用いる装置 | |
US9983932B2 (en) | Pipeline processor and an equal model compensator method and apparatus to store the processing result |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |