CN1794214A - 一种对非易失性存储器进行直接存储访问的方法及其装置 - Google Patents
一种对非易失性存储器进行直接存储访问的方法及其装置 Download PDFInfo
- Publication number
- CN1794214A CN1794214A CN 200510132224 CN200510132224A CN1794214A CN 1794214 A CN1794214 A CN 1794214A CN 200510132224 CN200510132224 CN 200510132224 CN 200510132224 A CN200510132224 A CN 200510132224A CN 1794214 A CN1794214 A CN 1794214A
- Authority
- CN
- China
- Prior art keywords
- data
- memory
- nonvolatile memory
- transmission
- read
- 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
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000005540 biological transmission Effects 0.000 claims abstract description 72
- 230000015654 memory Effects 0.000 claims description 223
- 102000002067 Protein Subunits Human genes 0.000 claims description 11
- 108010001267 Protein Subunits Proteins 0.000 claims description 11
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 230000009365 direct transmission Effects 0.000 claims description 6
- 238000004891 communication Methods 0.000 claims description 2
- MHABMANUFPZXEB-UHFFFAOYSA-N O-demethyl-aloesaponarin I Natural products O=C1C2=CC=CC(O)=C2C(=O)C2=C1C=C(O)C(C(O)=O)=C2C MHABMANUFPZXEB-UHFFFAOYSA-N 0.000 abstract description 32
- 238000005516 engineering process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000000151 deposition Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
Images
Abstract
本发明公开一种对非易失性存储器进行直接存储访问的方法及其装置,装置包括主处理器、存储单元、与非易失性存储器相连的接口模块及与存储单元和接口模块相连的DMAC。方法包括步骤:DMAC收到读取指令和相关参数,获知操作的源、目标设备及用块标识表示的读地址;在收发双方准备好后,在DMAC的控制下,启动一次数据传输过程,将读出的非易失性存储器指定块上的数据直接传输到作为目标设备的存储单元;DMAC判断是否此次要传输的所有数据已传输完毕,如果否,继续下一个块的数据的传输,直到完成所有数据的传输后,发出操作结束的指示。本发明可实现非易失性存储器和其它存储模块间的数据直接存取,减少对主处理器和内存的资源占用。
Description
技术领域
本发明涉及一种数据传输方法,尤其涉及非易失性存储器的数据传输方法。
背景技术
现有的直接存储访问技术是采用BUS寻址方式,即是以字节为对齐单位的寻址方式,而非易失性存储器是以块为单位寻址的,这样就无法实现对非易失性存储器和其它存储设备间的直接数据传输,必须由主处理器将非易失性存储器的数据以块(一个块可以包括一个扇区、多个扇区等)的方式读入内存,然后再在内存和目标设备之间进行数据传输。
如图1所示,以传统的实现文件系统操作的装置为例,该装置包括通过总线连接的处理器、存储器控制器、易失性存储器、非易失性存储器及其它装置(如显示设备、网络设备、音频设备),处理器对非易失性存储器的读写操作通过存储器控制器执行。
以打开某一个存在于文件系统根目录下的文件为例,该过程首先由用户发起,然后由处理器通过存储器控制器与非易失性存储器交互,完成以下几步操作:
第一步,读取根目录列表以取得该文件的文件项内容和位于文件系统数据区的首簇号;
第二步,搜索文件分配表,根据该文件的首簇号从FAT表查找该文件对应的簇链,并将得到的簇号转换成文件内容数据所存储的物理地址(如,逻辑扇区号);
第三步,存储器控制器根据获得的所述物理地址,读出位于非易失性存储器数据区内的文件数据,并将其传输到目标设备。
在第三步从非易失性存储器数据区读出数据时,是由主处理器将非易失性存储器的数据以块的方式读入内存,然后再在内存和目标设备之间进行数据传输的。
在某些应用场合下,如在芯片中内置处理器(CPU)时,如果使用性能强大的处理器,将会导致芯片成本过高。如果出于成本考虑使用低性能的处理器,由于有大量的数据搬移工作由其完成,将会导致运行速度太慢,影响系统的性能。
处理器在处理数据读写的时候,会持续等待数据在存储器上的操作,这个时间相当漫长。一些统计数据表明,文件系统的操作占用了处理器很多的资源,因此,在使用低性能的处理器的同时要想达到好的性能,就需要想办法加快文件系统操作的速度,同时减轻处理器的处理压力,以便留下更多的资源供其它任务执行。在文件系统的操作中,非易失性存储器和其它存储单元之间的数据传输如果由主处理器直接来控制,会占用主处理器的很多资源,并占用内存的大量空间,如果能够实现非易失性存储器和其它存储单元之间数据的直接存取,无需主处理器干预和内存的倒换,将节约大量的主处理器资源和内存资源,提高系统的性价比。
发明内容
本发明要解决的技术问题是提供一种对非易失性存储器进行直接存储访问的方法,可以实现非易失性存储器和其它存储模块间的数据直接存取,减少对主处理器和内存的资源占用。本发明还要提供一种可以实现该方法的装置和直接存储访问控制器。
为了解决上述技术问题,本发明提供了一种对非易失性存储器进行直接存储访问的方法,应用于包括主处理器,需要进行数据传输的非易失性存储器和另一存储单元,以及与该非易失性存储器和该存储单元相连的直接存储访问控制器的系统,该方法包括以下步骤:
(a)所述直接存储访问控制器收到读取指令和相关参数后,获知此次操作的源、目标设备及用块标识表示的读地址;
(b)在收发双方准备好后,在所述直接存储访问控制器的控制下,启动一次数据传输过程,将读出的所述非易失性存储器指定块上的数据直接传输到作为目标设备的存储单元;
(c)所述直接存储访问控制器判断是否此次要传输的所有数据已传输完毕,如果否,继续下一个块的数据的传输,直到完成所有数据的传输后,发出操作结束的指示,结束。
进一步地,上述方法还可具有以下特点:还包括以下向所述非易失性存储器写入数据的步骤:
(h)所述直接存储访问控制器收到写入指令和相关参数后,获知此次操作的源、目标设备以及用块标识表示的写地址;
(i)在收发双方准备好后,在所述直接存储访问控制器的控制下,将数据从作为源设备的存储单元读出,在一次传输过程中,完成要存储到所述非易失性存储器指定块中的数据的传输,并将数据写入该指定块;
(j)所述直接存储访问控制器判断是否此次要传输的所有数据已传输完毕,如果否,继续要写入到下一个块的数据的传输,直到完成所有数据的传输和写入后,发出操作结束的指示,结束。
进一步地,上述方法还可具有以下特点:在所述非易失性存储器和直接存储访问控制器之间还设置了具有缓存的存储器控制器,所述步骤(b)中,所述直接存储访问控制器向所述存储器控制器提出读请求,指示当前要读取的块,由该存储器控制器将所述非易失性存储器中指定块的数据读入内部缓存,再控制完成所述存储器控制器和目标存储单元间数据的直接传输。
进一步地,上述方法还可具有以下特点:在所述非易失性存储器和直接存储访问控制器之间还设置了具有缓存的存储器控制器,所述步骤(i)中,所述直接存储访问控制器向所述存储器控制器提出写请求,指示当前数据要写入的块,从所述存储单元读出的数据先写入到所述存储器控制器的内部缓存,再由该存储器控制器将内部缓存中的数据写入到所述非易失性存储器中当前供写入的块。
进一步地,上述方法还可具有以下特点:所述存储器控制器、存储单元以及直接存储访问控制器通过直接存储访问总线实现相互间的通信和数据传输。
进一步地,上述方法还可具有以下特点:所述直接存储访问控制器启动所述存储器控制器与所述存储单元间的数据传输前,先判断存储器控制器和存储单元用于指示准备好的信号是否同时有效,如果是,则认为收发双方准备好,启动此次数据传输。
进一步地,上述方法还可具有以下特点:所述块的大小为一个或多个扇区,
进一步地,上述方法还可具有以下特点:所述块标识是用起始块号和连续块数组成的一条或多条地址数据来指示的。
如权利要求1所述的方法,其特征在于,所述步骤(a)收到的相关参数还包括有效数据在第一个块中的偏移量和传输长度,所述直接存储访问控制器根据该偏移量和传输长度,从读出的块的数据中找到有效数据,只对该有效数据进行传输。
如权利要求1所述的方法,其特征在于,所述存储器控制器的内部缓存划分为两个区域,在将所述非易失性存储器数据读出到其中一个区域的同时,还可将另一区域存储的读出数据传输到目标设备;或/及,在将所述存储单元传输的数据写入一个区域的同时,还可将另一区域已接收的数据写入到所述非易失性存储器中。
本发明提供的对非易失性存储器进行直接存储访问装置包括主处理器、存储单元和与非易失性存储器相连的接口模块,其特征在于,还包括一个与所述存储单元和接口模块相连的直接存储访问控制器,用于采用块标识表示所述非易失性存储器的地址,完成所述非易失性存储器与所述存储单元之间数据的直接传输。
进一步地,上述装置还可具有以下特点:所述直接存储访问控制器进一步包括主控制单元以及该主控制单元与所述存储单元和接口模块之间的接口,所述主控制单元包括读取控制子单元,用于在收到读取指令和相关参数后,获知源、目标设备及以块标识表示的读地址,一次读出所述非易失性存储器一个指定块的数据,将其中的有效数据直接写入到作为目标设备的所述存储单元中。
进一步地,上述装置还可具有以下特点:所述直接存储访问控制器进一步包括主控制单元以及该主控制单元与所述存储单元和接口模块之间的接口单元,所述主控制单元包括写入控制子单元,用于在收到写入指令和参数后,获知源、目标设备及以块标识表示的写地址,将作为源设备的存储单元中的数据读出,一次传输要存储到所述非易失性存储器一个块中的数据并将其写入到所述非易失性存储器的指定块中。
进一步地,上述装置还可具有以下特点:所述与非易失性存储器相连的接口模块是对应于非易失性存储器的一个或多个存储器控制器,用于执行对所述非易失性存储器数据读写的相关操作,并且具有容量为一个或多个块大小的内部缓存,用于缓存从对应非易失性存储器读出或要写入对应非易失性存储器的数据。
进一步地,上述装置还可具有以下特点:所述存储器控制器、存储单元和直接存储访问控制器通过专用的直接存储访问总线相互连接。
进一步地,上述装置还可具有以下特点:所述存储单元为FIFO缓存器,RAM或另一非易失性存储器。
进一步地,上述装置还可具有以下特点:所述装置还包括与所述直接存储访问控制器相连的内存,用于在指定区域存储用于指示参数的一条或多条数据,或/及,所述直接存储访问控制器内还包括寄存器组,用于存储其它模块传送的指令、状态变量或参数。
本发明提供的直接存储访问器包括一种直接存储访问控制器,其特征在于,包括主控制单元和多个接口单元,其中:
所述主控制单元包括读取控制子单元,用于在收到读取指令和相关参数后,获知源、目标设备及以块标识表示的读地址,通过控制指令,一次读出作为源设备的非易失性存储器一个指定块的数据,并将其中的有效数据直接写入到作为目标设备的所述存储模块中;
所述接口单元与所述主控制单元连接,并可连接到外部模块上,用于将主控制单元对外部模块的操作指令转换为对该模块实际操作的时序信号。
进一步地,上述直接存储访问控制器还可具有以下特点:所述主控制单元还包括写入控制子单元,用于在收到写入指令和参数后,获知源、目标设备及以块标识表示的写地址,将作为源设备的存储模块中的数据读出,一次传输要存储到所述非易失性存储器一个块中的数据,并将其写入到所述非易失性存储器的指定块中。
进一步地,上述直接存储访问控制器还可具有以下特点:还包括寄存器组,用于存储外部模块传送来的指令、参数或工作状态变量。
进一步地,上述直接存储访问控制器还可具有以下特点:所述接口单元进一步包括:
节点读写接口,与多个播放器相连,用于完成主控制器和这些播放器之间的协议转换,将主控制器的传输控制命令转化为访问这些播放器的具体时序信号。
存储器控制器接口,与多个非易失性存储器的存储器控制器相连,用于完成主控制器和这些存储器控制器之间的协议转换,将主控制器的传输控制命令转化为访问这些非易失性存储器的具体时序信号。
进一步地,上述直接存储访问控制器还可具有以下特点:所述接口单元还包括:中断接口,用于在主控制单元的控制下,向主处理器发送中断信号,及/或,地址指示缓冲区读接口,用于与内存相连,在主控制单元的控制下,从内存指定的地址指示缓冲区中读出此次操作的地址参数。
由上可知,本发明用直接存储访问控制器实现了非易失性存储器与其它存储单元间数据的直接传输,承担了对主处理器来说负担较重的数据传输操作,可大大提高文件系统的操作速度,减少了处理器用于数据传输操作的时间,并节约了内存资源。进一步地,本发明还具有以下优点:
1)初始化配置简单,只需指示源设备、目标设备以及用块地址指示的数据存储位置。
2)有别于现行DMA技术采用的BUS方式的地址寻址,本发明的数据传输基于块的寻址方式,块的长度是可配置的,如一个或多个扇区。
3)有别于现有系统地址收发以字节对齐,收发为字节、双字节或四字节长度的数据,本发明在直接存储时一次可以传输一整块数据。
附图说明
图1是传统的实现文件系统操作的装置的结构图。
图2是本发明实施例DMAC的结构框图。
图3是本发明实施例数据传输过程中状态变化的示意图。
具体实施方式
为了说明本发明对非易失性存储器进行直接存储访问的方法及装置,下面将以一种音频处理芯片为例加以说明,但本发明并不局限使用在该芯片,而是可以广泛应用于各种需要对非易失存储器进行直接存储访问以节约主处理器、内存资源的场合。
本实施例的音频处理芯片中,主处理器、非易失性存储器(如硬盘、光驱、闪存等)的存储器控制器、内存、DMAC以及MP3播放器、WMA播放器、MIDI播放器、Wave播放器等模块集成在一起,这些播放器都带有FIFO缓存器,文中将FIFO缓存器和与其相关的读写控制电路称为该播放器的存储单元。
该芯片和外部的非易失性存储器一起构成了一个可播放和录制音乐的系统。如图3所示,各个模块均通过控制器总线相互通信(图中该线有的略去了,没有示出),而内存、各种播放器、各个存储器控制器和DMAC还连接到直接存储访问(DMA)总线上。其中,各存储器控制器用于执行对相应非易失性存储器数据读写的相关操作,并且具有容量为一个扇区大小的内部RAM(其它实施例也可为多个扇区大小),用于缓存从非易失性存储器读出或要写入非易失性存储器的数据。
基于上述结构,就可以在DMAC的控制下,利用DMA总线实现非易失性存储器和各种播放器存储单元间的直接数据交换,无需主处理器的干预,也无需在交换时占用内存资源。在本实施例中,非易失性存储器以扇区为读写单位,以扇区号为读写地址,播放器的缓存器是以字节为读写单位,只需指示设备标识,无需提供读写地址。
如图3所示,本实施例的DMAC进一步包括以下功能单元:主控制单元、中断接口、寄存器组、簇链缓冲区读接口、节点读写接口以及存储器控制器接口。其中:
寄存器组进一步包括命令寄存器组、状态寄存器组和参数寄存器组。命令寄存器组用于存储主处理器发出的指令;状态寄存器组用于存储反映DMA当前控制状态的变量,供主处理器读取;参数寄存器组用于保存数据传输所需的参数,如源设备标识、目标设备标识、地址指示缓冲区在内存中的起始地址以及DMAC操作后返回的参数等等。
地址指示缓冲区读接口与内存相连,用于在主控制单元的控制下,从内存指定的地址指示缓冲区中读出此次操作的非易失性存储器的起始扇区号和连续扇区数,作为此次操作要读出数据所在的扇区位置,或者要写入数据的扇区位置。
节点读写接口与多个播放器相连,用于完成主控制器和这些播放器之间的协议转换,将主控制器的传输控制命令转化为访问这些播放器的具体时序信号。
存储器控制器接口与多个非易失性存储器的存储器控制器相连,用于完成主控制器和这些存储器控制器之间的协议转换,将主控制器的传输控制命令转化为访问这些非易失性存储器的具体时序信号。
中断接口用于在主控制单元的控制下,向主处理器发送中断信号,指示操作完成等事件,但DMAC也可以通过别的方式通知主处理器。
主控制单元进一步包括写入控制子单元和读取控制子单元,本发明描述时将直接存储时的读操作定义为从非易失性存储器读出数据,而写操作定义为向非易失性存储器写入数据,将源设备定义为读出数据的设备,其中:
读取控制子单元,用于在收到读取指令和参数后,获知源、目标设备及以扇区号表示的读地址,一次读出非易失性存储器一个指定扇区上的数据,将其中的有效数据(指真正要操作的数据)经DMA总线直接写入到目标播放器的缓存器中,实时更新状态变量,完成后发出中断。
写入控制子单元,用于在收到写入指令和参数后,获知源、目标设备及以扇区号表示的写地址,将作为源设备的播放器缓存器中的数据读出,经DMA总线传输,一次传输要存储到非易失性存储器一个扇区的数据,并将其写入到所述非易失性存储器的指定扇区中,实时更新状态变量,整个数据传输完成后发出中断。
上述读取指令、写入指令以及参数可以是主处理提供的,也可能是完成在先操作的其它模块提供的,如完成FAT表操作的协处理模块等。
下面说明DMAC控制非易失性存储器与播放器存储单元(也简称为存储单元)间数据传输的流程,包括了读、写两类操作。
其中读操作的流程包括以下步骤(请同时参照图4的状态变化):
步骤100,DMAC在空闲状态(IDEL),等待命令输入;
步骤110,DMAC接收到读取指令和相关参数后,转入初始化(LOAD)状态,获取此次操作的源、目标设备和扇区形式表示的读写地址;
本实施例中,部分参数是由地址指示缓冲区中的一条或多条地址数据来指示的,每一条地址数据由源设备标识、目标设备标识、起始扇区号和连续扇区数组成,起始扇区号和连续扇区数指示了要从中读出数据的非易失性存储器的一组扇区或数据要写入其中的一组扇区。这种格式的地址数据大大节约了用来指示读写地址的内存空间。
另一部分参数写入到参数寄存器,如用于指示地址数据所在位置的地址指示缓冲区起始地址和长度。另外,在实际的应用中,如MP3播放,可能需要读出从某一个字节开始到另一个字节结束的一段数据。此时,需要引入第一个簇的偏移量和传输长度的参数。例如地址指示缓冲区内的数据表示为:起始扇区为2,结束扇区为3,如果按照512字节/扇区的计算,那么就是1024个字节。但是所需的数据位于2和3扇区之间的第500-700字节,那么就需要在第一簇的偏移量设置为500,传输长度为200,获得这之间的数据,而非扇区2和3的全部数据。
上述这些参数的写入位置可以灵活设置,可以都写入到寄存器或内存中或其它存储器,本发明对此并不加以限制。
步骤120,DMAC判断是读操作指令还是写操作指令,如果是读操作指令,转为“准备读数据”(Pr_RD)状态,执行步骤130,否则,转为“准备写数据”(Pr_WR)状态,执行步骤180;
步骤130,DMAC向作为源设备的非易失性存储器的存储器控制器提出读请求,指示当前要读取的扇区号,该存储器控制器将指定扇区的数据读入内部RAM,向DMAC返回响应信号,若目标存储单元准备好接收数据的信号同时有效,转入“读数据”(RD)状态;
步骤140,在DMAC控制下,所述存储器控制器将内部RAM中的数据通过DMA总线直接传输到目标存储单元中,在一个扇区数据传输完成后,DMAC转入“读数据结束”(RD_J)状态;
在一次传输过程中,可以由DMAC做一个发起,由这两个设备自动完成数据在DMA总线上的传输,播放器会从自己的存储单元中不断取出数据,并给出缓存器是否可写入数据的有效信号。也可以由DMAC控制器来统一协调两个设备间数据的传输。
步骤150,DMAC判断此次操作要读取的数据是否均已传输完毕,如果没有,执行步骤160,否则,执行步骤170;
步骤160,DMAC转入读数据-等待状态回应(RD_WT)状态,取出下一要读取的扇区号并通知所述存储器控制器,等待存储器控制器完成该扇区数据读出的响应信号和存储单元准备好接收数据的信号,如这两个信号同时有效,转入“读数据”(RD)状态,返回步骤140;
步骤170,DMAC转入“读数据更新”(RD_E)状态,更新状态寄存器组中的状态变量并在参数寄存器组中写入需要返回的参数(如果有的话),向主处理器发出中断信号,完成一次从非易失性存储器读取数据传送到播放器存储单元的操作,返回步骤110;
步骤180,DMAC先向目标非易失性存储器的存储器控制器提出写请求,指示当前数据要写入的扇区号,存储器控制器准备好后,给出响应信号,如播放器存储单元也已给出数据已准备好的指示信号,则转入“写数据1”(WR1)状态;
步骤190,在DMAC的控制下,将作为源设备的播放器存储单元中的数据读出,经DMA总线写入到存储器控制器的内部RAM,内部RAM已写满或数据已传输完成后,转为“写数据2”(WR2)状态;
同样地,在一次传输过程中,可以由DMAC做一个发起,然后由这两个设备通过握手信号自动完成数据在DMA总线上的传输。也可以由DMAC控制器来统一协调两个设备间数据的传输。
步骤200,存储器控制器将内部RAM中的数据写入非易失性存储器当前指定的扇区,数据写完后转为“写数据结束”(WR_J)状态;
步骤210,DMAC判断此次操作要写入的数据是否已写完,如果没有,执行步骤220,否则,执行步骤230;
步骤220,DMAC转入写数据-等待状态回应(WR_WT)状态,取出下一要写入的扇区号并通知所述存储器控制器,等待存储器控制器和播放器存储单元已准备好的信号,如这个信号同时有效,返回步骤190;
步骤230,DMAC转为“写数据更新”(WR_E)状态,更新状态寄存器组中的状态变量并在参数寄存器写入需要返回的参数(如果有的话),向主处理器发出中断信号,完成一次从播放器存储单元读取数据传送到非易失性存储器的操作,返回步骤110;
需要指出的是,以上读取或写入操作都是针对数据在非易失性存储器中连续存放的场合,对于于非连续存放的情况,多次执行上述流程即可。
本发明在上述实施例的基础上,还可以有各种变换方案,例如:
在另一实施例中,该装置可以用于在两个非易失性存储器之间进行数据的直接传输,对非易失性存储器的寻址和控制方法与上述实施例相同,只是当一个非易失性存储器工作在读出模式时,另一个工作在写入模式,两者的存储器控制器均准备好之后,即可开始传输,一次寻址可以传输一个或多个扇区的数据。这样,本发明对非易失性存储器进行直接存储访问时,与该非易失性存储器之间进行数据传输的存储单元可以是非易失性存储器,也可以是易失性存储器,或者是播放器等应用设备中的缓冲器和相关电路。
在另一实施例中,该装置可以只用于从非易失性存储器读取数据,而不用向非易失性存储器写入数据,例如,一个只用于播放的音频芯片,此时,就不具有与写入有关的部分。
在另一实施例中,装置中没有DMA总线,原通过DMA总线相连的模块之间通过数据连接线相连,也可以实现同样功能,但会加大每个设备的开发量和连线数量。
在另一实施例中,非易失性存储器可以直接进行读写,不必通过存储器控制器进行,此时,DMAC就可以直接和非易失性存储器进行交互,控制完成非易失性存储器和另一存储模块间的直接数据传递。
在另一实施例中,可以把存储器控制器的内部RAM分为两个区域,所述存储器控制器的内部缓存划分为两个区域,在将所述非易失性存储器数据读出到其中一个区域的同时,还可将另一区域存储的读出数据传输到目标设备;或/及,在将所述存储模块传输的数据写入一个区域的同时,还可将另一区域已接收的数据写入到所述非易失性存储器中。
Claims (22)
1、一种对非易失性存储器进行直接存储访问的方法,应用于包括主处理器,需要进行数据传输的非易失性存储器和另一存储单元,以及与该非易失性存储器和该存储单元相连的直接存储访问控制器的系统,该方法包括以下步骤:
(a)所述直接存储访问控制器收到读取指令和相关参数后,获知此次操作的源、目标设备及用块标识表示的读地址;
(b)在收发双方准备好后,在所述直接存储访问控制器的控制下,启动一次数据传输过程,将读出的所述非易失性存储器指定块上的数据直接传输到作为目标设备的存储单元;
(c)所述直接存储访问控制器判断是否此次要传输的所有数据已传输完毕,如果否,继续下一个块的数据的传输,直到完成所有数据的传输后,发出操作结束的指示,结束。
2、如权利要求1所述的方法,其特征在于,还包括以下向所述非易失性存储器写入数据的步骤:
(h)所述直接存储访问控制器收到写入指令和相关参数后,获知此次操作的源、目标设备以及用块标识表示的写地址;
(i)在收发双方准备好后,在所述直接存储访问控制器的控制下,将数据从作为源设备的存储单元读出,在一次传输过程中,完成要存储到所述非易失性存储器指定块中的数据的传输,并将数据写入该指定块;
(j)所述直接存储访问控制器判断是否此次要传输的所有数据已传输完毕,如果否,继续要写入到下一个块的数据的传输,直到完成所有数据的传输和写入后,发出操作结束的指示,结束。
3、如权利要求1所述的方法,其特征在于,在所述非易失性存储器和直接存储访问控制器之间还设置了具有缓存的存储器控制器,所述步骤(b)中,所述直接存储访问控制器向所述存储器控制器提出读请求,指示当前要读取的块,由该存储器控制器将所述非易失性存储器中指定块的数据读入内部缓存,再控制完成所述存储器控制器和目标存储单元间数据的直接传输。
4、如权利要求2所述的方法,其特征在于,在所述非易失性存储器和直接存储访问控制器之间还设置了具有缓存的存储器控制器,所述步骤(i)中,所述直接存储访问控制器向所述存储器控制器提出写请求,指示当前数据要写入的块,从所述存储单元读出的数据先写入到所述存储器控制器的内部缓存,再由该存储器控制器将内部缓存中的数据写入到所述非易失性存储器中当前供写入的块。
5、如权利要求3或4所述的方法,其特征在于,所述存储器控制器、存储单元以及直接存储访问控制器通过直接存储访问总线实现相互间的通信和数据传输。
6、如权利要求3或4所述的方法,其特征在于,所述直接存储访问控制器启动所述存储器控制器与所述存储单元间的数据传输前,先判断存储器控制器和存储单元用于指示准备好的信号是否同时有效,如果是,则认为收发双方准备好,启动此次数据传输。
7、如权利要求1所述的方法,其特征在于,所述块的大小为一个或多个扇区。
8、如权利要求1所述的方法,其特征在于,所述块标识是用起始块号和连续块数组成的一条或多条地址数据来指示的。
9、如权利要求1所述的方法,其特征在于,所述步骤(a)收到的相关参数还包括有效数据在第一个块中的偏移量和传输长度,所述直接存储访问控制器根据该偏移量和传输长度,从读出的块的数据中找到有效数据,只对该有效数据进行传输。
10、如权利要求3或4所述的方法,其特征在于,所述存储器控制器的内部缓存划分为两个区域,在将所述非易失性存储器数据读出到其中一个区域的同时,还可将另一区域存储的读出数据传输到目标设备;或/及,在将所述存储单元传输的数据写入一个区域的同时,还可将另一区域已接收的数据写入到所述非易失性存储器中。
11、一种对非易失性存储器进行直接存储访问的装置,包括主处理器、存储单元和与非易失性存储器相连的接口模块,其特征在于,还包括一个与所述存储单元和接口模块相连的直接存储访问控制器,用于采用块标识表示所述非易失性存储器的地址,完成所述非易失性存储器与所述存储单元之间数据的直接传输。
12、如权利要求11所述的装置,其特征在于,所述直接存储访问控制器进一步包括主控制单元以及该主控制单元与所述存储单元和接口模块之间的接口,所述主控制单元包括读取控制子单元,用于在收到读取指令和相关参数后,获知源、目标设备及以块标识表示的读地址,一次读出所述非易失性存储器一个指定块的数据,将其中的有效数据直接写入到作为目标设备的所述存储单元中。
13、如权利要求11所述的装置,其特征在于,所述直接存储访问控制器进一步包括主控制单元以及该主控制单元与所述存储单元和接口模块之间的接口单元,所述主控制单元包括写入控制子单元,用于在收到写入指令和参数后,获知源、目标设备及以块标识表示的写地址,将作为源设备的存储单元中的数据读出,一次传输要存储到所述非易失性存储器一个块中的数据并将其写入到所述非易失性存储器的指定块中。
14、如权利要求12或13的装置,其特征在于,所述与非易失性存储器相连的接口模块是对应于非易失性存储器的一个或多个存储器控制器,用于执行对所述非易失性存储器数据读写的相关操作,并且具有容量为一个或多个块大小的内部缓存,用于缓存从对应非易失性存储器读出或要写入对应非易失性存储器的数据。
15、如权利要求14的装置,其特征在于,所述存储器控制器、存储单元和直接存储访问控制器通过专用的直接存储访问总线相互连接。
16、如权利要求11的装置,其特征在于,所述存储单元为FIFO缓存器,RAM或另一非易失性存储器。
17、如权利要求12或13所述的装置,其特征在于,所述装置还包括与所述直接存储访问控制器相连的内存,用于在指定区域存储用于指示参数的一条或多条数据,或/及,所述直接存储访问控制器内还包括寄存器组,用于存储其它模块传送的指令、状态变量或参数。
18、一种直接存储访问控制器,其特征在于,包括主控制单元和多个接口单元,其中:
所述主控制单元包括读取控制子单元,用于在收到读取指令和相关参数后,获知源、目标设备及以块标识表示的读地址,通过控制指令,一次读出作为源设备的非易失性存储器一个指定块的数据,并将其中的有效数据直接写入到作为目标设备的所述存储模块中;
所述接口单元与所述主控制单元连接,并可连接到外部模块上,用于将主控制单元对外部模块的操作指令转换为对该模块实际操作的时序信号。
19、如权利要求18所述的直接存储访问控制器,其特征在于,所述主控制单元还包括写入控制子单元,用于在收到写入指令和参数后,获知源、目标设备及以块标识表示的写地址,将作为源设备的存储模块中的数据读出,一次传输要存储到所述非易失性存储器一个块中的数据,并将其写入到所述非易失性存储器的指定块中。
20、如权利要求18所述的直接存储访问控制器,其特征在于,还包括寄存器组,用于存储外部模块传送来的指令、参数或工作状态变量。
21、如权利要求18或19所述的直接存储访问控制器,其特征在于,所述接口单元进一步包括:
节点读写接口,与多个播放器相连,用于完成主控制器和这些播放器之间的协议转换,将主控制器的传输控制命令转化为访问这些播放器的具体时序信号;
存储器控制器接口,与多个非易失性存储器的存储器控制器相连,用于完成主控制器和这些存储器控制器之间的协议转换,将主控制器的传输控制命令转化为访问这些非易失性存储器的具体时序信号。
22、如权利要求18或19所述的直接存储访问控制器,其特征在于,所述接口单元还包括:中断接口,用于在主控制单元的控制下,向主处理器发送中断信号,及/或,地址指示缓冲区读接口,用于与内存相连,在主控制单元的控制下,从内存指定的地址指示缓冲区中读出此次操作的地址参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101322249A CN100507886C (zh) | 2005-12-22 | 2005-12-22 | 一种对非易失性存储器进行直接存储访问的方法及其装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005101322249A CN100507886C (zh) | 2005-12-22 | 2005-12-22 | 一种对非易失性存储器进行直接存储访问的方法及其装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1794214A true CN1794214A (zh) | 2006-06-28 |
CN100507886C CN100507886C (zh) | 2009-07-01 |
Family
ID=36805666
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005101322249A Expired - Fee Related CN100507886C (zh) | 2005-12-22 | 2005-12-22 | 一种对非易失性存储器进行直接存储访问的方法及其装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100507886C (zh) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7523228B2 (en) | 2006-09-18 | 2009-04-21 | International Business Machines Corporation | Method for performing a direct memory access block move in a direct memory access device |
US7603490B2 (en) | 2007-01-10 | 2009-10-13 | International Business Machines Corporation | Barrier and interrupt mechanism for high latency and out of order DMA device |
US7620749B2 (en) | 2007-01-10 | 2009-11-17 | International Business Machines Corporation | Descriptor prefetch mechanism for high latency and out of order DMA device |
CN101115246B (zh) * | 2006-07-25 | 2010-06-09 | 中兴通讯股份有限公司 | 一种移动终端的数据存储方法 |
CN101599049B (zh) * | 2009-07-09 | 2011-04-13 | 杭州华三通信技术有限公司 | 控制dma访问不连续物理地址的方法及dma控制器 |
CN101720040B (zh) * | 2009-11-11 | 2011-05-11 | 四川长虹电器股份有限公司 | 融合高速存储器和dma通道的视频解码优化方法 |
WO2013170731A1 (zh) * | 2012-05-12 | 2013-11-21 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法与存储设备 |
WO2013179171A1 (en) * | 2012-05-29 | 2013-12-05 | International Business Machines Corporation | Application-controlled sub-lun level data migration |
CN103558993A (zh) * | 2006-12-20 | 2014-02-05 | 莫塞德技术公司 | 具有易失性和非易失性存储器的混合固态存储器系统 |
CN101876956B (zh) * | 2009-12-15 | 2015-05-06 | 北京中星微电子有限公司 | Sd卡的文件存取方法及装置 |
CN105335309A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 一种数据传输方法及计算机 |
CN103685552B (zh) * | 2013-12-25 | 2017-11-07 | 烽火通信科技股份有限公司 | 一种小内存设备的软件升级方法 |
WO2018137529A1 (zh) * | 2017-01-26 | 2018-08-02 | 华为技术有限公司 | 一种数据传输的方法、装置、设备和系统 |
CN109716314A (zh) * | 2016-09-23 | 2019-05-03 | Arm有限公司 | 用于控制数据传输的装置、存储器控制器、存储器模块和方法 |
CN110113238A (zh) * | 2013-03-15 | 2019-08-09 | 波音公司 | 通过易失性影子存储器访问非易失性存储器 |
CN110187837A (zh) * | 2019-05-30 | 2019-08-30 | 苏州浪潮智能科技有限公司 | 一种文件存取方法、装置及文件系统 |
CN110865952A (zh) * | 2018-08-28 | 2020-03-06 | 上海天王星智能科技有限公司 | 利用缓存优化dma传输 |
CN111104166A (zh) * | 2019-12-13 | 2020-05-05 | 北京新忆科技有限公司 | 寄存器的写入方法和写入装置 |
CN111143068A (zh) * | 2019-12-27 | 2020-05-12 | 广东博智林机器人有限公司 | 文件操作方法、装置及嵌入式控制器 |
US10831729B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831728B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
CN113064550A (zh) * | 2021-03-19 | 2021-07-02 | 珠海市一微半导体有限公司 | 一种缩短外部存储器访问时间的控制装置及控制方法 |
CN114003526A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 访问片内存储控制单元的写数据通路的方法及电路 |
CN114328311A (zh) * | 2021-12-15 | 2022-04-12 | 珠海一微半导体股份有限公司 | 一种存储控制器架构、数据处理电路及数据处理方法 |
US11622004B1 (en) | 2022-05-02 | 2023-04-04 | Mellanox Technologies, Ltd. | Transaction-based reliable transport |
-
2005
- 2005-12-22 CN CNB2005101322249A patent/CN100507886C/zh not_active Expired - Fee Related
Cited By (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101115246B (zh) * | 2006-07-25 | 2010-06-09 | 中兴通讯股份有限公司 | 一种移动终端的数据存储方法 |
US7523228B2 (en) | 2006-09-18 | 2009-04-21 | International Business Machines Corporation | Method for performing a direct memory access block move in a direct memory access device |
CN103558993A (zh) * | 2006-12-20 | 2014-02-05 | 莫塞德技术公司 | 具有易失性和非易失性存储器的混合固态存储器系统 |
US7603490B2 (en) | 2007-01-10 | 2009-10-13 | International Business Machines Corporation | Barrier and interrupt mechanism for high latency and out of order DMA device |
US7620749B2 (en) | 2007-01-10 | 2009-11-17 | International Business Machines Corporation | Descriptor prefetch mechanism for high latency and out of order DMA device |
CN101599049B (zh) * | 2009-07-09 | 2011-04-13 | 杭州华三通信技术有限公司 | 控制dma访问不连续物理地址的方法及dma控制器 |
CN101720040B (zh) * | 2009-11-11 | 2011-05-11 | 四川长虹电器股份有限公司 | 融合高速存储器和dma通道的视频解码优化方法 |
CN101876956B (zh) * | 2009-12-15 | 2015-05-06 | 北京中星微电子有限公司 | Sd卡的文件存取方法及装置 |
US9395921B2 (en) | 2012-05-12 | 2016-07-19 | Memblaze Technology (Beijing) Co., Ltd. | Writing data using DMA by specifying a buffer address and a flash memory address |
WO2013170731A1 (zh) * | 2012-05-12 | 2013-11-21 | 北京忆恒创源科技有限公司 | 将数据写入存储设备的方法与存储设备 |
US10838929B2 (en) | 2012-05-29 | 2020-11-17 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10817202B2 (en) | 2012-05-29 | 2020-10-27 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
WO2013179171A1 (en) * | 2012-05-29 | 2013-12-05 | International Business Machines Corporation | Application-controlled sub-lun level data migration |
US10831390B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-lun level data migration |
US10831727B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831728B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
US10831729B2 (en) | 2012-05-29 | 2020-11-10 | International Business Machines Corporation | Application-controlled sub-LUN level data migration |
CN110113238B (zh) * | 2013-03-15 | 2021-12-07 | 波音公司 | 通过易失性影子存储器访问非易失性存储器 |
CN110113238A (zh) * | 2013-03-15 | 2019-08-09 | 波音公司 | 通过易失性影子存储器访问非易失性存储器 |
CN103685552B (zh) * | 2013-12-25 | 2017-11-07 | 烽火通信科技股份有限公司 | 一种小内存设备的软件升级方法 |
CN105335309A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 一种数据传输方法及计算机 |
CN105335309B (zh) * | 2014-05-30 | 2018-09-11 | 华为技术有限公司 | 一种数据传输方法及计算机 |
CN109716314A (zh) * | 2016-09-23 | 2019-05-03 | Arm有限公司 | 用于控制数据传输的装置、存储器控制器、存储器模块和方法 |
WO2018137529A1 (zh) * | 2017-01-26 | 2018-08-02 | 华为技术有限公司 | 一种数据传输的方法、装置、设备和系统 |
US10810135B2 (en) | 2017-01-26 | 2020-10-20 | Huawei Technologies Co., Ltd. | Data transmission method, apparatus, device, and system |
CN110865952A (zh) * | 2018-08-28 | 2020-03-06 | 上海天王星智能科技有限公司 | 利用缓存优化dma传输 |
CN110187837A (zh) * | 2019-05-30 | 2019-08-30 | 苏州浪潮智能科技有限公司 | 一种文件存取方法、装置及文件系统 |
CN110187837B (zh) * | 2019-05-30 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种文件存取方法、装置及文件系统 |
CN111104166A (zh) * | 2019-12-13 | 2020-05-05 | 北京新忆科技有限公司 | 寄存器的写入方法和写入装置 |
CN111143068A (zh) * | 2019-12-27 | 2020-05-12 | 广东博智林机器人有限公司 | 文件操作方法、装置及嵌入式控制器 |
CN111143068B (zh) * | 2019-12-27 | 2023-04-18 | 广东博智林机器人有限公司 | 文件操作方法、装置及嵌入式控制器 |
CN113064550A (zh) * | 2021-03-19 | 2021-07-02 | 珠海市一微半导体有限公司 | 一种缩短外部存储器访问时间的控制装置及控制方法 |
CN114328311A (zh) * | 2021-12-15 | 2022-04-12 | 珠海一微半导体股份有限公司 | 一种存储控制器架构、数据处理电路及数据处理方法 |
CN114003526A (zh) * | 2021-12-30 | 2022-02-01 | 中科声龙科技发展(北京)有限公司 | 访问片内存储控制单元的写数据通路的方法及电路 |
CN114003526B (zh) * | 2021-12-30 | 2022-04-01 | 中科声龙科技发展(北京)有限公司 | 访问片内存储控制单元的写数据通路的方法及电路 |
US11622004B1 (en) | 2022-05-02 | 2023-04-04 | Mellanox Technologies, Ltd. | Transaction-based reliable transport |
Also Published As
Publication number | Publication date |
---|---|
CN100507886C (zh) | 2009-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1794214A (zh) | 一种对非易失性存储器进行直接存储访问的方法及其装置 | |
CN1203428C (zh) | 信息处理装置 | |
US9141549B2 (en) | Memory system with read and write caches and method of controlling memory system with read and write caches | |
CN1804823A (zh) | 直接存储访问控制器 | |
CN1088215C (zh) | 不按顺序执行读写指令的存储器控制器 | |
US20210133096A1 (en) | Memory system and operating method thereof | |
CN1761935A (zh) | 半导体存储卡、半导体存储器控制装置以及半导体存储器控制方法 | |
CN1716453A (zh) | 在主机和非易失性存储设备间进行缓冲的多端口存储设备 | |
CN101036197A (zh) | 用于匹配具有不同数量将被同时访问的存储体的存储控制器的非易失性存储装置 | |
US9569381B2 (en) | Scheduler for memory | |
WO2012091702A1 (en) | Accelerating cache state transfer on a directory-based multicore architecture | |
CN111143234A (zh) | 存储设备、包括这种存储设备的系统及其操作方法 | |
KR101075907B1 (ko) | 반도체 기억 장치, 데이터 전송 장치 및 반도체 기억 장치의 제어 방법 | |
CN105320462A (zh) | 固态硬盘存取数据的方法 | |
CN1175346C (zh) | 发送数据的设备 | |
CN1650259A (zh) | 具有非易失性存储器的集成电路以及用于从所述存储器中取数据的方法 | |
CN113468083B (zh) | 一种双端口NVMe控制器及控制方法 | |
JP2012230554A (ja) | データ記憶装置、メモリ制御装置及びメモリ制御方法 | |
CN100342360C (zh) | 一种直接存储器存取装置及方法 | |
CN1795442A (zh) | 用于在主存储器和存储装置之间传送数据的方法和设备 | |
CN1506843A (zh) | 能够使用虚拟存储器处理模式的数据处理系统 | |
CN1127022C (zh) | 具有地址变换的数据处理方法及设备 | |
CN1601501A (zh) | 存储器带宽控制装置 | |
CN1144124C (zh) | 程序执行方法及利用该方法的装置 | |
TWI747660B (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090701 Termination date: 20111222 |