CN102629187A - Sd/mmc卡的开放式读写控制方法 - Google Patents
Sd/mmc卡的开放式读写控制方法 Download PDFInfo
- Publication number
- CN102629187A CN102629187A CN2012100500450A CN201210050045A CN102629187A CN 102629187 A CN102629187 A CN 102629187A CN 2012100500450 A CN2012100500450 A CN 2012100500450A CN 201210050045 A CN201210050045 A CN 201210050045A CN 102629187 A CN102629187 A CN 102629187A
- Authority
- CN
- China
- Prior art keywords
- transmission
- data transfer
- data
- transfer request
- open
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种SD/MMC卡的开放式读写控制方法。本发明的有益效果在于,本发明使数据传输在各个存储介质的转移过程中最大限度地在时间上重叠,省去连续两次传输方向相同且操作的逻辑地址连续的操作之间的等待时间,将SD/MMC存储卡内控制器对FLASH的实际操作时间包含在其余部分的数据转移的过程中,从而极大程度的提高了数据传输的实际速度。
Description
技术领域
本发明涉及一种SD/MMC存储卡数据传输方法,特别涉及一种SD/MMC存储卡开放式读写控制的方法。
背景技术
随着便携式产品的快速发展,移动存储在这类设备仪器上的作用越来越大,SD/MMC存储卡也更加广泛的渗入到人们的生活中去。SD/MMC(Secure Digital MemoryCard/MultiMedia Card,安全数码卡/多媒体卡)存储卡的便携性,通用性及其容量大等特点,使其必定出现在更多的消费类电子产品中。
存储芯片制造工艺不断提升,同样体积的SD/MMC存储卡具有的容量也越来越大,卡的容量已经从早期的16MB到现在的4GB,8GB以及超大容量的64GB,有了上千倍的提升。现有SD/MMC存储卡的读写方法为软硬件操作对应,软件的一次请求完整的表现在硬件传输上,即一次数据传输需要完成发送读/写命令、传输数据、发送停止(STOP)命令三个步骤才能完成,这种方法最高只能达到约13MB/s读取速度,约10MB/s的写入速度,这对8GB以上容量的SD/MMC存储卡的大量数据传输来说依然很低,当使用存储卡进行大文件的传输时,就显得相当耗时,同时对于今后更大容量以及高清多媒体文件的传输来说,此种方法已经不能很好地满足高速传输的要求。
发明内容
鉴于上述原因,本发明提供了一种SD/MMC存储卡开放式读写控制的方法,通过省去多个读操作准备时间和多个写操作等待时间,有效提高SD/MMC存储卡的实际传输效率。
为实现本发明的目的,本发明提供了一种SD/MMC卡的开放式读写控制方法,包括以下步骤:
步骤100:上电并初始化,对SD/MMC存储卡的控制器进行配置,等待数据请求;
步骤200,SD/MMC控制器接收到数据传输请求;
步骤300:根据数据传输请求信息和传输历史信息
分析判断后,根据判断结果进行数据传输处理。
较佳地,本发明的SD/MMC卡的开放式读写控制方法,步骤300还包括一下步骤:
步骤310:判断是否有前一次数据传输请求;如果否,则对新的数据传输请求分析并进行数据传输处理,进入步骤320;如果是,则根据数据传输请求的参数及上一次传输请求所保留的现场,判断前一次数据传输请求是否为开放式传输;若是,进入步骤330;若否,对新的数据传输请求分析并进行数据传输处理,进入步骤320;
步骤320:对新的数据传输请求分析并进行数据传输处理,发送终止命令结束当前数据传输过程,完成当前数据传输请求;进行下一次数据传输,直至数据传输结束;
步骤330:如果是开放式传输,则根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200,进行下一次数据传输,直至数据传输结束。
较佳地,本发明的SD/MMC卡的开放式读写控制方法,步骤310包括以下步骤:
步骤311:判断本次数据传输请求方向是否与前一次数据传输请求方向相同;若是,进入步骤312;若否,则判断本次数据传输请求不是开放式传输;
步骤312:判断本次数据传输请求的传输数据的逻辑地址是否与前一次数据请求的传输数据的逻辑地址连续;若是,则判断本次数据传输请求是开放式传输;若否,则判断本次数据传输不是开放式传输。
较佳地,本发明的SD/MMC卡的开放式读写控制方法,步骤330中,根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200之前,还包括一下步骤:
步骤331,对本次传输结束后的开放式状态进行计时;
步骤332,判断本次开放式传输保持时间是否超时;
若是,则发送终止命令终止开放式状态;若否,则返回步骤100,进入新一轮的传输处理过程。
较佳地,本发明的SD/MMC卡的开放式读写控制方法,步骤332中判断超时的阀值为100ms。
本发明的有益效果在于,本发明使数据传输在各个存储介质的转移过程中最大限度地在时间上重叠,省去连续两次传输方向相同且操作的逻辑地址连续的操作之间的等待时间,将SD/MMC存储卡内控制器对FLASH的实际操作时间包含在其余部分的数据转移的过程中,从而极大程度的提高了数据传输的实际速度。
附图说明
图1为SD/MMC存储卡开放式操作方法流程图;
图2为SD/MMC存储卡的开放式读写操作方法示意图。
具体实施方式
为了使本发明的SD/MMC卡的开放式读写控制方法的目的、技术方案及优点更加清楚明白,以下结合具体附图及具体实施例,对本发明的SD/MMC卡的开放式读写控制方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
图1为SD/MMC存储卡开放式操作方法流程图,如图1所示,本发明的一种SD/MMC卡的开放式读写控制方法,包括以下步骤:
步骤100:上电并初始化,对SD/MMC存储卡的控制器进行配置,等待数据请求;
SD/MMC存储卡上电过程,在初始化卡时,对SD/MMC存储卡进行配置,以确定其采用开放式传输的条件,作为一种可实施方式,所述条件包括开放式传输的最小长度及实际进行开放式传输需要满足开放式传输条件的次数。
对SD/MMC存储卡进行初始化识别后,进入到数据传输过程,此时SD/MMC存储卡处于一种接收传输请求的状态中。
步骤S200,SD/MMC控制器接收到数据传输请求。
SD/MMC存储卡进入数据传输模式,此时控制器处于等待传输状态。
步骤300:根据数据传输请求信息和传输历史信息分析判断后,根据判断结果进行数据传输处理。
优选地,所述步骤S300包括如下步骤:
步骤310:判断是否有前一次数据传输请求,如果否,则对新的数据传输请求分析并进行数据传输处理,进入步骤320;如果是,则根据数据传输请求的参数及上一次传输请求所保留的现场,判断前一次数据传输请求是否为开放式传输;若是,进入步骤330;若否,对新的数据传输请求分析并进行数据传输处理,进入步骤320;
SD/MMC控制器根据请求的参数及上一次传输所保留的现场对当前传输进行有效分析,判断上一次传输是否采用了开放式传输模式。
上述传输请求的参数包括:传输方向即读或者写操作,读写操作的起始地址,读写操作的总数据长度。上一次传输保留的现场包括:上一次传输的方向,上一次读写操作的结束地址,上一次传输是否发送终止命令。
对新的数据传输请求分析并进行数据传输处理,按传统的现有数据传输进行处理,其是一种现有技术,因此,在本发明实施例中,不再一一详细描述。
优选地,所述步骤310中,根据数据传输请求的参数及上一次传输请求所保留的现场,判断前一次数据传输请求是否为开放式传输,包括如下步骤:
步骤311:判断本次数据传输请求方向是否与前一次数据传输请求方向相同;若是,进入步骤312;若否,则判断其本次数据传输请求不是开放式传输;
所述的数据传输请求方向相同即本次与前一次均为读操作,或均为写操作。
步骤312:判断本次数据传输请求的传输数据的逻辑地址是否与前一次数据请求的传输数据的逻辑地址连续;若是,则判断本次数据传输请求是开放式传输;若否,则判断本次数据传输不是开放式传输;
所述的传输数据的逻辑地址连续,即连续两次数据操作的块号相邻,例如第一次操作的SD/MMC存储卡的最后一个块号为n,那么第二次操作的首个块的编号为n+1。
步骤320:对新的数据传输请求分析并进行数据传输处理,发送终止命令结束当前数据传输过程,完成当前数据传输请求;进行下一次数据传输,直至数据传输结束;
本次数据传输方向与前一次数据传输方向不相同,或是本次传输数据的逻辑地址与前一次传输数据的逻辑地址不连续,均为不满足开放式传输条件,那么SD/MMC控制器将发送终止命令终止当前传输。
步骤330:如果是开放式传输,则根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200,进行下一次数据传输,直至数据传输结束。
上述进行数据传输处理,具体为不再重新发送读或者写命令,而是由硬件直接伴随时钟信号向SD/MMC存储卡读取或写入数据,直到当次数据传输结束,然后停止时钟发送,等到下一次的数据请求。
优选地,步骤330根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200之前,还包括如下步骤:
步骤331,对本次传输结束后的开放式状态进行计时;
步骤332,判断本次开放式传输保持时间是否超时;
若是,则发送终止命令终止开放式状态;若否,则返回步骤100,进入新一轮的传输处理过程。
优选地,上述步骤332中的超时阈值为100ms。
超时阀值可根据操作的频繁度不同而进行配置。
通过计时来判断本次保持开放式无传输状态时间是否超时,如果超时则发送终止命令终止开放式状态,以防止SD/MMC存储卡的拔插行为导致数据存储错误;如果在超时之前发现了新的传输请求,则进入新一轮的传输处理过程。
本发明充分利用SD/MMC存储卡内的缓冲机制,将SD/MMC存储卡内控制器操作Flash的实际时间在最大限度上隐藏在整体的数据传输之内,从而采用流水线机制来提高SD/MMC存储卡的传输效率。在实际的过程中,由于将多次读准备操作和写等待操作转换为一次读准备和一次写等待,在整个操作的时间轴上,传输的总时间为T=T软件操作+T数 据传输+T一次读准备/写等待,这样是数据传输的时间在总时间上的比重大大提升,从而使实际的传输速度得到有效的提高,达到读20MB/s,写17MB/s左右,使其接近于SD/MMC的满速吞吐率的25MB/s。
图2为SD/MMC存储卡的开放式读写操作方法示意图。SD/MMC存储卡是一种物理存储设备,在逻辑上将其存储区划分为“块”,即Block,SD/MMC存储卡由划分好的n个块区域组成,对卡上数据的访问即为对这些具体块区域的访问,访问的过程中对物理地址的寻址也是由这些块的编号索引的。
在一个完整的系统中,应用程序对SD/MMC存储卡内文件的访问事实上是卡内某一些块区域数据的搬移过程。以读操作为例,当主机(HOST)读取SD/MMC存储卡内文件时,卡内部控制器将数据从Flash中读取出来到控制器缓冲区,然后通过卡的接口传递给主机端的缓冲区,主机SD/MMC存储卡控制器驱动再将此数据传递给应用程序的物理数据区。由于卡内部控制器只有在接收到命令时才能正确的识别出所要访问的区块,因此在SD/MMC存储卡接收到命令后就需要一个准备时间,这个时间即为卡内部控制器读取Flash的时间,如图2中的读准备操作。由于每次的访问是相互独立的,那么SD/MMC存储卡内部控制器在每次重新访问时均不可避免的需要此准备过程,但是由于每次传输卡内部控制器仅仅需要知道的是传输的首地址,当传输一直进行的时候,控制器会根据地址的累加去计算寻址位置。由于SD/MMC存储卡内部存在的Buffer,使得在连续传输的过程中,卡将数据转交给主机端和卡内部控制器读取Flash数据在时间上存在一定的重叠,因此形成了一个流水线访问的形式。如图2所示,如果主机端在逻辑连续区域的多次访问的过程中,如果一直保持着传输的状态,即使用本发明的开放式读写方式,那么就可以形成一个Flash到应用程序端的一个超长流水线,传输只要不停止,此流水线就能够一直保持下去,从而将数据准备时间由n次减少到1次,大大的减少了不必要的准备时间,进而使传输效率得到质的提升。
如图2所示,写操作与读操作类似,不同的是在写操作过程中没有准备时间,与之对应的是SD/MMC卡内控制器将buffer里的数据写入Flash的时间,即图2中的写等待操作,此时间同样存在于每次独立的访问中。在连续的访问中,如果使用开放式读写一直保持传输的状态,那么同样能够形成类似的流水线操作,从而将实际的n次写等待时间转化为最后一次结束时的等待时间,同样能够大大提高写入数据的速率。
最后应当说明的是,很显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型。
Claims (5)
1.一种SD/MMC卡的开放式读写控制方法,其特征在于,包括以下步骤:
步骤100:上电并初始化,对SD/MMC存储卡的控制器进行配置,等待数据请求;
步骤200,SD/MMC控制器接收到数据传输请求;
步骤300:根据数据传输请求信息和传输历史信息分析判断后,根据判断结果进行数据传输处理。
2.根据权利要求1所述的SD/MMC卡的开放式读写控制方法,其特征在于,所述步骤300还包括一下步骤:
步骤310:判断是否有前一次数据传输请求;如果否,则对新的数据传输请求分析并进行数据传输处理,进入步骤320;如果是,则根据数据传输请求的参数及上一次传输请求所保留的现场,判断前一次数据传输请求是否为开放式传输;若是,进入步骤330;若否,对新的数据传输请求分析并进行数据传输处理,进入步骤320;
步骤320:对新的数据传输请求分析并进行数据传输处理,发送终止命令结束当前数据传输过程,完成当前数据传输请求;进行下一次数据传输,直至数据传输结束;
步骤330:如果是开放式传输,则根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200,进行下一次数据传输,直至数据传输结束。
3.根据权利要求2所述的SD/MMC卡的开放式读写控制方法,其特征在于,所述步骤310包括以下步骤:
步骤311:判断本次数据传输请求方向是否与前一次数据传输请求方向相同;若是,进入步骤312;若否,则判断本次数据传输请求不是开放式传输;
步骤312:判断本次数据传输请求的传输数据的逻辑地址是否与前一次数据请求的传输数据的逻辑地址连续;若是,则判断本次数据传输请求是开放式传输;若否,则判断本次数据传输不是开放式传输。
4.根据权利要求2所述的SD/MMC卡的开放式读写控制方法,其特征在于,所述步骤330中,根据前一次数据传输请求的历史信息查找到本次数据请求信息,进行数据传输处理,返回步骤200之前,还包括一下步骤:
步骤331,对本次传输结束后的开放式状态进行计时;
步骤332,判断本次开放式传输保持时间是否超时;
若是,则发送终止命令终止开放式状态;若否,则返回步骤100,进入新一轮的传输处理过程。
5.根据权利要求4所述的SD/MMC卡的开放式读写控制方法,其特征在于,所述步骤332中判断超时的阀值为100ms。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210050045.0A CN102629187B (zh) | 2012-02-29 | 2012-02-29 | Sd/mmc卡的开放式读写控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210050045.0A CN102629187B (zh) | 2012-02-29 | 2012-02-29 | Sd/mmc卡的开放式读写控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102629187A true CN102629187A (zh) | 2012-08-08 |
CN102629187B CN102629187B (zh) | 2014-12-10 |
Family
ID=46587448
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210050045.0A Active CN102629187B (zh) | 2012-02-29 | 2012-02-29 | Sd/mmc卡的开放式读写控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102629187B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701306A (zh) * | 2003-06-27 | 2005-11-23 | 富士通株式会社 | 数据传输方法及系统 |
US20080162788A1 (en) * | 2006-12-27 | 2008-07-03 | Bum-Seok Yu | Memory Controller with Automatic Command Processing Unit and Memory System Including the Same |
CN102253810A (zh) * | 2010-05-17 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置和系统 |
-
2012
- 2012-02-29 CN CN201210050045.0A patent/CN102629187B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1701306A (zh) * | 2003-06-27 | 2005-11-23 | 富士通株式会社 | 数据传输方法及系统 |
US20080162788A1 (en) * | 2006-12-27 | 2008-07-03 | Bum-Seok Yu | Memory Controller with Automatic Command Processing Unit and Memory System Including the Same |
CN102253810A (zh) * | 2010-05-17 | 2011-11-23 | 腾讯科技(深圳)有限公司 | 数据读取方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102629187B (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20080151622A1 (en) | Command-based control of NAND flash memory | |
CN102197384A (zh) | 用于改进串行端口存储器通信等待时间和可靠性的方法和系统 | |
EP2028595A1 (en) | Hierarchical cache memory system | |
KR102367359B1 (ko) | 직렬 시스템 버스 인터페이스 및 직접메모리액세스 컨트롤러를 갖는 전자 시스템 및 그 동작 방법 | |
CN101303685B (zh) | 可提升通用序列总线储存设备的读写数据速率的方法 | |
CN103077123A (zh) | 一种数据写入和读取方法及装置 | |
US20140244904A1 (en) | Memory device and computer system | |
CN101944075B (zh) | 总线系统、对低速总线设备进行读写操作的方法及装置 | |
CN103077132A (zh) | 一种高速缓存处理方法及协议处理器高速缓存控制单元 | |
CN101359321A (zh) | 一种实现处理器相互通讯的方法及装置 | |
US20060236001A1 (en) | Direct memory access controller | |
CN105320462A (zh) | 固态硬盘存取数据的方法 | |
CN101504632A (zh) | 一种dma数据传输方法、系统及一种dma控制器 | |
CN116414767A (zh) | 一种对基于axi协议乱序响应的重排序方法及系统 | |
CN102279825B (zh) | 一种固态硬盘控制器的智能dma控制器 | |
WO2018000765A1 (zh) | 一种协处理器、数据读取方法、处理器系统及存储介质 | |
CN105426112A (zh) | 固态硬盘动态调整高速缓冲区的方法 | |
US7725645B2 (en) | Dual use for data valid signal in non-volatile memory | |
US8386725B2 (en) | USB host controller and controlling method for USB host controller | |
CN105278871A (zh) | 通过在写入相变存储器之前读取来实现增强性能以避免写入取消 | |
CN115883022B (zh) | Dma传输控制方法、装置、电子设备及可读存储介质 | |
CN101894084B (zh) | 一种clb总线内用于写操作的装置 | |
CN102567248A (zh) | 一种避免双端口存储器访问冲突的控制电路与方法 | |
CN103838694A (zh) | 一种fpga高速读取usb接口数据的方法 | |
CN102646073B (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 |