CN116679876A - 存储器数据读写方法、装置及emmc存储卡 - Google Patents
存储器数据读写方法、装置及emmc存储卡 Download PDFInfo
- Publication number
- CN116679876A CN116679876A CN202310627218.9A CN202310627218A CN116679876A CN 116679876 A CN116679876 A CN 116679876A CN 202310627218 A CN202310627218 A CN 202310627218A CN 116679876 A CN116679876 A CN 116679876A
- Authority
- CN
- China
- Prior art keywords
- data block
- memory card
- command
- commands
- emmc memory
- 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
- 230000015654 memory Effects 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 36
- 238000013507 mapping Methods 0.000 claims abstract description 18
- 238000002360 preparation method Methods 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 7
- 238000004321 preservation Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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/0656—Data buffering 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
-
- 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)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本申请涉及一种存储器数据读写方法、装置及EMMC存储卡,其中,该存储器数据读写方法包括:EMMC存储卡固件获取上层主机发送的任务;EMMC存储卡固件根据映射表,将任务解析为多个数据块命令,将各数据块命令缓存至EMMC存储卡硬件;EMMC存储卡硬件再将所缓存的各数据块命令按顺序执行,即从对应的NAND闪存按顺序获取数据并发送至上层主机,以完成上层主机所发送的任务,期间,EMMC存储卡固件各数据块命令进行缓存后,便不再对这些缓存的各数据块命令进行后续的维护,进而使EMMC存储卡固件在进行其他任务的处理时,不会对这些所缓存的数据块命令在执行过程中造成影响,进而避免造成上层主机读取数据时间较长的问题。
Description
技术领域
本申请涉及数据读写技术领域,尤其涉及一种存储器数据读写方法、装置及EMMC存储卡。
背景技术
存储设备与现代人们生活息息相关,在芯片行业中利用NAND闪存作为一种重要的存储方式,被广泛地应用于固态硬盘及其他各种类型的存贮设备中。EMMC存储卡就是一种利用EMMC接口,针对手机或平板电脑等数码产品,读写NAND闪存数据的内嵌式存储器。随着人们对于大容量存储的需求与日俱增,往往1个NAND闪存的容量是不满足需要的,所以1个EMMC存储卡中往往包含多个NAND闪存,通过多个通道,每个通道由数个NAND闪存形成NAND闪存阵列进行数据存储。通过EMMC接口从NAND闪存阵列读取到数据的速度是衡量EMMC存储卡性能高低的一项重要指标。
由于管理NAND算法复杂的原因,数据不均匀的分布在NAND闪存上,当EMMC存储卡收到上层主机发送的读取数据任务时,为了保证读数据顺序,就需要依次类推按顺序向各NAND单元块发送读命令,再把不同的NAND单元块中的数据传给上层主机。
但是,EMMC存储卡固件此时还有可能由于管理NAND闪存发送其他的命令,这就可能导致用于完成需要上层主机读取数据任务的读命令之间等待时间较长,造成上层主机读取数据时间较长。
发明内容
有鉴于此,本申请提出了一种存储器数据读写方法、装置及EMMC存储卡。
根据本申请的一方面,提供了一种一种存储器数据读写方法,包括:
EMMC存储卡固件获取上层主机发送的任务;
所述EMMC存储卡固件根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至EMMC存储卡硬件;
所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
在一种可能的实现方式中,还包括对所述数据块命令进行判断的步骤,判断所述数据块命令是否需要按顺序执行。
在一种可能的实现方式中,将各所述数据块命令缓存至所述EMMC存储卡硬件时,各所述数据块命令分别缓存至对应的NAND命令SRAM中,所述NAND命令SRAM与所述NAND闪存一一对应设置。
在一种可能的实现方式中,还包括向所述上层主机发送准备完成通知;
所述EMMC存储卡固件获取所述上层主机根据所述准备完成通知发出的命令;
根据所述命令,所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
在一种可能的实现方式中,在所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行时,包括:
各所述数据块命令按顺序发送至仲裁器;
所述仲裁器将各所述数据块命令发送至通道控制器,通过所述通道控制器将各所述数据块命令发送至对应的各所述NAND闪存。
根据本申请的另一方面,提供一种存储器数据读写装置,包括:接收模块、发送模块和执行模块;
所述发送模块,被配置为获取上层主机发送的任务;
所述发送模块,被配置为根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至EMMC存储卡硬件;
所述执行模块,被配置为所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
根据本申请的另一方面,提供一种EMMC存储卡,包括:固件、硬件和NAND闪存;
所述固件,被配置为获取上层主机发送的任务,根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至所述硬件;
所述硬件,被配置为所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行;
所述NAND闪存,被配置用于存储数据。
在一种可能的实现方式中,所述硬件还包括仲裁器和通道控制器;
所述仲裁器将各所述数据块命令发送至所述通道控制器,通过所述通道控制器将各所述数据块命令发送至对应的各所述NAND闪存。
在一种可能的实现方式中,所述硬件还包括叫号寄存器;
所述叫号寄存器被配置为对需要按顺序执行的所述数据块命令的执行顺序控制。
在一种可能的实现方式中,所述硬件还包括锁号寄存器;
所述锁号寄存器被配置为对所获取的需要按顺序执行的所述数据块命令进行锁定,使其暂时不能发出进行执行,等待至收到上层主机发出命令后,再将其按顺序执行。
本申请适用于对EMMC存储卡进行数据读写。目前EMMC存储卡中,主要包括固件和硬件两部分,固件是固定到EMMC存储卡中的CPU执行的程序,硬件是可以完成特定功能不可修改的电路。EMMC存储卡固件进获取到上层主机发送的任务后,将该任务进行解析。由于管理NAND算法复杂的原因,数据不均匀的分布在NAND闪存上,EMMC存储卡固件会把这些数据分成很多单元块,完成一个主机读任务需要从NAND中读取许多的单元块,因此,将任务解析为多个数据块命令,将各数据块命令缓存至EMMC存储卡硬件,EMMC存储卡硬件再将所缓存的各数据块命令按顺序执行,即从对应的NAND闪存按顺序获取数据并发送至上层主机,以完成上层主机所发送的任务,期间,EMMC存储卡固件各数据块命令进行缓存后,便不再对这些缓存的各数据块命令进行后续的维护,进而使EMMC存储卡固件在进行其他任务的处理时,不会对这些所缓存的数据块命令在执行过程中造成影响,进而避免对用于完成上层主机读取数据任务的读命令之间等待时间较长,造成上层主机读取数据时间较长的问题。
根据下面参考附图对示例性实施例的详细说明,本申请的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出本申请实施例的存储器数据读写方法的流程图;
图2示出传统的存储器数据读写方法的示意图;
图3示出本申请实施例的存储器数据读写方法的原理示意图;
图4示出本申请另一实施例的存储器数据读写方法的原理示意图;
图5示出本申请实施例的存储器数据读写方法的逻辑图;
图6示出本申请实施例的存储器数据读写装置的主体结构图;
图7示出本申请实施例的EMMC存储卡的主体结构图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
图1示出本申请实施例的存储器数据读写方法的流程图。如图1所示,该存储器数据读写方法,包括:步骤S100:EMMC存储卡固件获取上层主机发送的任务;步骤S200:EMMC存储卡固件根据映射表,将任务解析为多个数据块命令,将各数据块命令缓存至EMMC存储卡硬件;步骤S300:EMMC存储卡硬件将所缓存的各数据块命令按顺序执行。
本申请适用于对EMMC存储卡进行数据读写。目前EMMC存储卡中,主要包括固件和硬件两部分,固件是固定到EMMC存储卡中的CPU执行的程序,硬件是可以完成特定功能不可修改的电路。EMMC存储卡固件进获取到上层主机发送的任务后,将该任务进行解析。由于管理NAND算法复杂的原因,数据不均匀的分布在NAND闪存上,EMMC存储卡固件会把这些数据分成很多单元块,完成一个主机读任务需要从NAND中读取许多的单元块,因此,将任务解析为多个数据块命令,将各数据块命令缓存至EMMC存储卡硬件,EMMC存储卡硬件再将所缓存的各数据块命令按顺序执行,即从对应的NAND闪存按顺序获取数据并发送至上层主机,以完成上层主机所发送的任务,期间,EMMC存储卡固件各数据块命令进行缓存后,便不再对这些缓存的各数据块命令进行后续的维护,进而使EMMC存储卡固件在进行其他任务的处理时,不会对这些所缓存的数据块命令在执行过程中造成影响,进而避免对用于完成上层主机读取数据任务的读命令之间等待时间较长,造成上层主机读取数据时间较长的问题。
此处,需要进行说明的是,参阅图2,在传统的存储器数据读写方法中,EMMC存储卡接收到上层主机所发送的一批读任务后,EMMC存储卡固件处理第一读任务并向上层主机发送准备完成的通知,上层主机接收到准备完成的通知后,向EMMC存储卡发送读数据块命令,EMMC存储卡固件根据该读数据块命令和映射表,生成用从各NAND闪存中读取数据的数据块命令,然后依次按顺序将各数据块命令发送至不同的NAND闪存的单元块中,以实现将存储在NAND中的数据传给上层主机。其中,EMMC存储卡固件向NAND闪存发送数据块命令会消耗一段时间,并且,各数据块命令需要按顺序依次发送,这就需要EMMC存储卡固件需要判断当前的数据块命令发送至对应的NAND闪存后,才会发送下一个数据块命令,但是,由于在依次发送各数据块命令时,EMMC存储卡固件会并行处理其他任务或操作,因此导致发送数据块命令不及时,进一步导致读取数据时间延长。
其中,上层主机所发送的各种任务中,只有在对用于读取数据的读任务进行处理时,需要对各NAND闪存中提取的数据进行保序,即依次按顺序发送各数据块命令。对于除读任务之外的任务进行处理时,即不需要依次按顺序发送的数据块命令,在EMMC存储卡固件进行并行处理时,对其产生时效上的影响不大。
因此,本申请还包括对数据块命令进行判断的步骤,判断数据块命令是否为需要保序的。对于需要保序的数据块命令,按前述方法进行处理。对于不需要保序的数据块命令,按先进先出原则或本领域常用技术手段进行处理,此处不做具体限定。
进一步的,当判断数据块命令为读命令时,即为需要保序的命令,将该数据块命令进行缓存,在将这些所缓存的数据块命令按顺序发送至对应的NAND闪存。
具体的,参阅图3,图3示出本申请实施例的存储器数据读写方法的原理示意图,在EMMC存储卡对上层主机所发送的任务进行处理时,根据EMMC存储卡所维护的映射表,生成用于处理各任务所对应的各数据块命令。其中,EMMC存储卡所存储的数据的各NAND闪存中,因此,根据映射表所生成的各数据块命令,均对应各NAND闪存。通过读取映射表得出任务所需要的数据处于NAND闪存中的位置,生成多条数据块命令,EMMC存储卡固件将各数据块命令分别缓存至对应的NAND命令SRAM中,即用于缓存数据块命令的随机存储器存储器,NAND命令SRAM与NAND闪存一一对应设置,如图3中NAND0命令SRAM对应编号为#0的NAND闪存。
其中,EMMC存储卡固件在通过映射表生成用于完成读任务的数据块命令,即读命令时,对所生成的数据块命令添加顺序号信息(如图3中读命令#0、读命令#1,其中顺序号信息是按host看到的逻辑地址从0到n。也就是从主机认为的从低到高地址块来依次添加顺序号)。当EMMC存储卡固件在通过映射表生成用于完成除读任务外其他任务的数据块命令,如写命令时,则不会添加顺序号信息。由此,用于读任务的带有顺序号信息的各数据块命令,和用于其他任务的不带有顺序号信息的各数据块命令,分别缓存至所对应的NAND命令SRAM中。
进一步的,对于所缓存的不带有顺序号信息的各数据块命令,在NAND命令SRAM中根据先进先出原则,发送至所对应的NAND闪存中。对于所缓存的带有顺序号信息的各数据块命令,在EMMC存储卡接收到上层主机的发出的命令后,再将带有顺序号信息的各数据块命令,按其顺序号信息所表征的顺序依次发送至所对应的NAND闪存中。
也就是说,本申请还包括向上层主机发送准备完成通知的步骤。EMMC存储卡设有任务准备完成寄存器,当EMMC存储卡固件对某一读任务准备完成后,将该任务的准备完成通知存储至该寄存器,上层主机通过轮询方式读该寄存器,上层主机根据准备完成通知发出命令,根据该命令,将所缓存的各数据块命令按顺序发送至对应的NAND闪存进行执行。
在一种可能的实现方式中,还包括命令存取模块,图4所示,每个NAND闪存均设有一个命令存取模块,命令存取模块负责从NAND命令SRAM提取出来的一条命令进行解析并传送给仲裁模块。首先在NAND命令SRAM通过写指针是否等于读指针判断有没有新命令进来,如果写指针不等于读指针时,为此时有新的数据块命令进入NAND命令SRAM中,命令存取模块读取该数据块命令。首先判断该数据块命令是否是读命令,不是读命令就直接向仲裁模块申请发送该数据块命令,如果为不是需要保序的读命令,也直接向仲裁模块申请发送。否则就进入等待状态并根据该数据块命令的顺序号信息查询叫号寄存器和锁号寄存器。即判读该数据块命令为需要保序的读命令时,判断其顺序号信息是否与当前叫号寄存器的相等,如不相等,则该命令块数据进行等待,如相等,则继续判读当前锁号寄存器中与该顺序号信息相等的值是否被锁定,如被锁定,则该命令块数据进行等待,如没有被锁定,则将该数据块命令发送至仲裁模块,并通知叫号寄存器将其值+1。
具体的,以32位指令为例,EMMC存储卡固件生成的数据块命令如表1所示:
表1
其中,命令存取模块依次对从NAND命令SRAM所提取的数据块命令的0-2位和3位进行解析判断,当判断出该数据块命令为读数据命令,且此读命令需要按顺序执行时,等待上层主机发出的命令,根据该命令,按顺序号信息所表征顺序将这些数据块命令依次发送至对应的NAND闪存。当命令存取模块对当前数据块命令判断为除读数据命令外的其他命令,或不需要按顺序的读命令时,直接将该数据块命令发送至对应的NAND闪存。
进一步的,EMMC存储卡硬件还包括叫号寄存器和锁号寄存器,叫号寄存器用于实现对需要按顺序执行的是数据块命令的发送顺序控制。在当命令存取模块获取到需要按顺序执行的数据块命令时,还未收到上层主机发出的命令,通过锁号寄存器实现对所获取的需要按顺序执行的数据块命令进行锁定,使其暂时不能发出进行执行,等待至收到上层主机发出命令后,再将其按顺序发出。
其中,叫号寄存器与锁号寄存器均通过判断需要按顺序执行的是数据块命令的顺序号信息,实现对各数据块命令的顺序发送以及是否暂停不能执行。
更进一步的,EMMC存储器的固件在生成需要保序的数据块命令时,根基映射表依次将这些数据块命令的顺序号信息构建为0、1、2……以表征这些数据块命令的发送顺序。参阅图3,叫号寄存器的默认初始值为0,当命令存取模块所获取的需要按顺序执行的数据块命令的顺序号信息,与叫号寄存器的值相等时,该试数据块命令才能被取出执行,否则暂停执行,当顺序号信息与叫号寄存器的值相等的数据块命令被取出后,叫号寄存器的值自动加1,以实现对数据块命令的顺序发送,对于不需要按顺序执行的数据块命令,不受叫号寄存器的限制。锁号寄存器在收到上层主机所发出的命令前,默认锁住顺序号信息为0的数据块命令,使其暂时不能被取出执行,当第一个数据块命令不能被取出执行时,在叫号寄存器的维护下,后续的数据块命令同样不能被取出执行进行等待。在上层主机发出命令后,锁号寄存器解开锁定,即解开锁号寄存器对所有位的锁定,此时叫号寄存器的值为0,顺序号信息为0的数据块命令被取出执行,该数据块命令被取出执行后,叫号寄存器的值自动加1变为1,顺序号信息为0的数据块命令被取出执行,如此,按顺序号信息的顺序,依次将需要按顺序执行的数据块命令发送至所对应的NAND闪存中,从而不需要EMMC存储器的固件在这些数据块命令按顺序发送时进行维护,减少了EMMC存储器的固件任务,在固件执行其他任务时,也不会对这些数据块命令按顺序发送造成影响,从而减少了上层主机读取数据的等待时间。
具体的,叫号寄存器的定义如表2所示:
表2
锁号寄存器的定义如表3所示:
表3
在利用上述方法,将所缓存的需要按顺序执行的数据块命令发送至对应的NAND闪存时,还包括:各数据块命令按顺序发送至仲裁器;仲裁器将各数据块命令发送至通道控制器,通过通道控制器将各数据块命令发送至对应的各NAND闪存。
参阅图4,各命令存取模块在所对应的NAND命令SRAM中取出数据块命令时,对于需要按顺序执行的数据块命令,通过叫号寄存器和锁号寄存器,将位于各NAND命令SRAM中的数据块命令取出发送至仲裁器,对于不需要按顺序执行的数据块命令,各NAND命令SRAM中的数据块命令按先进先出原则,依次发送至仲裁器。仲裁器会排布合适的命令尽量让不同的NAND闪存同时工作,选出合适的命令发给通道控制器,使得性能功耗达到理想状态。闪存读DMA模块负责接收从通道控制器读NAND闪存回来的数据,如果数据目的地是上层主机则发送给主机读DMA模块,如果是给固件的管理数据则送到内部SRAM阵列中。
举例来说,如图3和图5所示,EMMC存储器的固件收到上层主机所发出的任务后,根据所发出的任务及映射表,构建对应的数据块命令,对于需要按顺序执行的数据块命令,即需要保序的读命令对其添加顺序号信息,如图3中读命令#0、读命令#1、读命令#2……与各任务相匹配的数据分别存储在EMMC存储器的各NAND闪存中,各NAND闪存均设有各自对应的NAND命令SRAM,EMMC存储器的固件所构建的各数据块命令,根据其所在的NAND闪存,发送至对应的NAND命令SRAM中,如图3中NAND0命令SRAM对应NAND0闪存,NAND0命令SRAM中根据EMMC存储器的固件发送顺序,依次对读命令、读命令、写命令进行缓存,同理,其余各NAND命令SRAM同样对对应的各数据块命令进行缓存。进一步的,各NAND闪存均命令存取模块,依次读取对应NAND命令SRAM中的各数据块命令,并根据数据块命令的命令类型和按顺序读使能,判读该数据块命令是否需要按需执行,当判断出该数据块命令为不需要按顺序执行时,直接将该数据块命令发送至仲裁模块,由仲裁模块将该数据块命令发送至对应的NAND闪存进行执行,当判断出该数据块命令为读数据命令且需要按顺序执行时,检查当前叫号寄存器的值是否与该数据集快命令的顺序号信息相等,当不相等时,该数据块命令进行等待,当相等时,再检查当前锁号寄存器的值,是否对该顺序号信息所对应的位进行了锁定,此处需要进行说明的是,锁号寄存器的值仅为0或1,锁号寄存器的值为0时,所有带有顺序号信息的数据块命令均不能执行,当EMMC存储器的固件接收到上层主机的命令后,解锁锁号寄存器,即锁号寄存器的值变为1,带有顺序号信息的数据块命令可以被执行。当该数据块命令的顺序号信息与叫号寄存器的值相等,且锁号寄存器的值为1时,命令存取模块将该数据块命令发给至仲裁模块,由仲裁模块将该数据块命令发送至对应的NAND闪存,同理,所有的命令存取模块均执行上述操作,进而实现按顺序执行位于不同的NAND命令SRAM中需要按顺序执行的数据块命令。
更进一步地,参阅图6,根据本申请的另一方面,还提供一种存储器数据读写装置100,包括:接收模块110、发送模块120和执行模块130。发送模块110,被配置为获取上层主机发送的任务;发送模块120,被配置为根据映射表,将任务解析为多个数据块命令,将各数据块命令缓存至EMMC存储卡硬件;执行模块130,被配置为EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
更进一步地,根据本申请的另一方面,还提供了一种EMMC存储卡200。参阅图7,本申请实施例EMMC存储卡200包括:固件210、硬件220和NAND闪存230。固件210,被配置为获取上层主机发送的任务,根据映射表,将任务解析为多个数据块命令,将各数据块命令缓存至硬件。硬件220,被配置为将所缓存的各所述数据块命令按顺序执行。NAND闪存230,被配置用于存储数据。
在一种可能的实现方式中,本申请实施例EMMC存储卡200还包括硬件还包括仲裁器和通道控制器。仲裁器将各数据块命令发送至通道控制器,通过通道控制器将各数据块命令发送至对应的各NAND闪存。
进一步的,本申请实施例EMMC存储卡200还包括叫号寄存器和锁号寄存器。叫号寄存器被配置为对需要按顺序执行的是数据块命令的执行顺序控制。锁号寄存器被配置为对所获取的需要按顺序执行的数据块命令进行锁定,使其暂时不能发出进行执行,等待至收到上层主机发出命令后,再将其按顺序执行。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种存储器数据读写方法,其特征在于,包括:
EMMC存储卡固件获取上层主机发送的任务;
所述EMMC存储卡固件根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至EMMC存储卡硬件;
所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
2.根据权利要求1所述的方法,其特征在于,还包括对所述数据块命令进行判断的步骤,判断所述数据块命令是否需要按顺序执行。
3.根据权利要求1所述的方法,其特征在于,将各所述数据块命令缓存至所述EMMC存储卡硬件时,各所述数据块命令分别缓存至对应的NAND命令SRAM中,所述NAND命令SRAM与所述NAND闪存一一对应设置。
4.根据权利要求1所述的方法,其特征在于,还包括向所述上层主机发送准备完成通知;
所述EMMC存储卡固件获取所述上层主机根据所述准备完成通知发出的命令;
根据所述命令,所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
5.根据权利要求1所述的方法,其特征在于,在所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行时,包括:
各所述数据块命令按顺序发送至仲裁器;
所述仲裁器将各所述数据块命令发送至通道控制器,通过所述通道控制器将各所述数据块命令发送至对应的各所述NAND闪存。
6.一种存储器数据读写装置,其特征在于,包括:接收模块、发送模块和执行模块;
所述发送模块,被配置为获取上层主机发送的任务;
所述发送模块,被配置为根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至EMMC存储卡硬件;
所述执行模块,被配置为所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行。
7.一种EMMC存储卡,其特征在于,包括:固件、硬件和NAND闪存;
所述固件,被配置为获取上层主机发送的任务,根据映射表,将所述任务解析为多个数据块命令,将各所述数据块命令缓存至所述硬件;
所述硬件,被配置为所述EMMC存储卡硬件将所缓存的各所述数据块命令按顺序执行;
所述NAND闪存,被配置用于存储数据。
8.根据权利要求7所述的EMMC存储卡,其特征在于,所述硬件还包括仲裁器和通道控制器;
所述仲裁器将各所述数据块命令发送至所述通道控制器,通过所述通道控制器将各所述数据块命令发送至对应的各所述NAND闪存。
9.根据权利要求7所述的EMMC存储卡,其特征在于,所述硬件还包括叫号寄存器;
所述叫号寄存器被配置为对需要按顺序执行的所述数据块命令的执行顺序控制。
10.根据权利要求7所述的EMMC存储卡,其特征在于,所述硬件还包括锁号寄存器;
所述锁号寄存器被配置为对所获取的需要按顺序执行的所述数据块命令进行锁定,使其暂时不能发出进行执行,等待至收到上层主机发出命令后,再将其按顺序执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627218.9A CN116679876A (zh) | 2023-05-30 | 2023-05-30 | 存储器数据读写方法、装置及emmc存储卡 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310627218.9A CN116679876A (zh) | 2023-05-30 | 2023-05-30 | 存储器数据读写方法、装置及emmc存储卡 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116679876A true CN116679876A (zh) | 2023-09-01 |
Family
ID=87786595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310627218.9A Pending CN116679876A (zh) | 2023-05-30 | 2023-05-30 | 存储器数据读写方法、装置及emmc存储卡 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116679876A (zh) |
-
2023
- 2023-05-30 CN CN202310627218.9A patent/CN116679876A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR930006384B1 (ko) | 큐 관리 방법 및 장치 | |
KR100346484B1 (ko) | 판독/기록 일관성을 갖는 버스 사용의 최적화 방법 및 장치 | |
US20010001867A1 (en) | Host controller interface descriptor fetching unit | |
US11163710B2 (en) | Information processor with tightly coupled smart memory unit | |
US11093388B2 (en) | Method, apparatus, device and storage medium for accessing static random access memory | |
EP2062147B1 (en) | Method and apparatus for conditional broadcast of barrier operations | |
CN110858187A (zh) | 具有分布式信箱结构的多处理器系统及其处理器错误检查方法 | |
US6782463B2 (en) | Shared memory array | |
US8560782B2 (en) | Method and apparatus for determining access permissions in a partitioned data processing system | |
US7376762B2 (en) | Systems and methods for direct memory access | |
WO2023123915A1 (zh) | 存储器的访问方法、装置、电子设备和存储介质 | |
US4760546A (en) | Tag control circuit for increasing throughput of main storage access | |
US5640531A (en) | Enhanced computer operational system using auxiliary mini-cache for enhancement to general cache | |
US10191846B2 (en) | Cache memory for particular data | |
US9507725B2 (en) | Store forwarding for data caches | |
US8219745B2 (en) | Memory controller to utilize DRAM write buffers | |
CN116679876A (zh) | 存储器数据读写方法、装置及emmc存储卡 | |
US20080016296A1 (en) | Data processing system | |
US7003637B2 (en) | Disk array device with utilization of a dual-bus architecture dependent on data length of cache access requests | |
US7240144B2 (en) | Arbitration of data transfer requests | |
US7075546B2 (en) | Intelligent wait methodology | |
US20160350196A1 (en) | Arithmetic processing device, information processing apparatus and control method of arithmetic processing device | |
US6829692B2 (en) | System and method for providing data to multi-function memory | |
US20130290654A1 (en) | Data writing control device, data writing control method, and information processing device | |
US8239652B2 (en) | Data processing system |
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 |