CN100371912C - 一种Linux上的MMC/SD卡驱动的多块数据保存方法 - Google Patents
一种Linux上的MMC/SD卡驱动的多块数据保存方法 Download PDFInfo
- Publication number
- CN100371912C CN100371912C CNB2005100231223A CN200510023122A CN100371912C CN 100371912 C CN100371912 C CN 100371912C CN B2005100231223 A CNB2005100231223 A CN B2005100231223A CN 200510023122 A CN200510023122 A CN 200510023122A CN 100371912 C CN100371912 C CN 100371912C
- Authority
- CN
- China
- Prior art keywords
- mmc
- card
- data
- linux
- polylith
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于Linux操作系统上的MMC/SD卡驱动的多块数据保存方法,在Linux的MMC/SD卡驱动上,利用多块数据保存方法实现了MMC/SD卡的高速数据保存。现有Linux上的MMC/SD驱动是单块数据读写,写速度小于12k/sec,速度太慢而基本无法使用MMC/SD卡,根据Linux内核对块设备支持的特点,将预写入MMC/SD卡连续区域的大量数据块的单个的写操作合并成一次的多块数据写操作,从而大幅度提高了数据吞吐速度,写速度大于800k/sec,速度提高了70倍,使得MMC/SD卡的使用变得实用简单。
Description
技术领域
本发明涉及一种计算机数据存储方法,尤其涉及在Linux上的MMC/SD卡驱动的多块数据保存方法。
背景技术
由于近年来电子通信产业迅速发展,便携式的电子产品如数码相机,PDA及各种移动式通信设备不断涌现,给人们生活带来了极大便利。随着各种数据信息的大量涌现,这些电子产品均需配备大容量的存储器,但由于价格和体积的原因,这些电子产品本身一般采用较少容量的昂贵但存取速度快的存储器,而辅之以MMC/SD(多媒体卡MultiMedia Card;MMC/数据保密卡Secure Digital;SD)等类的大容量低价格的存储卡作为其扩展存储器。
现有基于Linux的系统也有MMC/SD卡的驱动,能够对其进行基本的读写操作。但限于Linux内核的特点和技术实现上的原因,现有的驱动对MMC/SD卡的读写采用的是单数据块读写而不是多块读写,这样造成了读数据具有较高的速率,而写数据具有极慢的写速度(<12k/sec),从而限制了MMC/SD卡的方便使用。
发明内容
本发明要解决的技术问题是提供一种Linux上的MMC/SD卡驱动的多块数据保存方法,可以基于Linux操作系统实现MMC/SD卡多块数据写,大幅度提高其数据吞吐数率,使MMC/SD卡变得实用。
为解决上述技术问题,本发明的一种Linux上的MMC/SD卡驱动的多块数据保存方法,包括如下步骤:
1)对Linux数据传输请求作出判断;
2)如果是单块数据写请求,采用单块数据写操作;
3)如果是多块数据写请求,则进行以下操作:
(1)对在Linux系统高速缓冲内存中写请求数据块根据每块数据的数据结构中标明了此块数据将要被写入MMC/SD卡的位置的信息进行收集整理;
(2)得到将要被写入MMC/SD卡某连续区域中的所需内容;
(3)将这些内容放入新开辟的一片内存中;
(4)在合适的时候将此内存中内容使用多块写操作写入MMC/SD卡。
所述的将内存中内容使用多块写操作写入MMC/SD卡中的合适的时候可以是此片内存满时或者此片内存是所搜集整理信息的最末部分。
本发明基于Linux的系统实现MMC/SD卡多块数据写,大幅度提高其数据吞吐速度,写速度大于800k/sec,速度提高了70倍,使得MMC/SD卡的使用变得实用简单。
附图说明
图1是现有基于Linux的系统对MMC/SD的多块数据写操作示意图;
图2是本发明基于Linux的系统对MMC/SD的多块数据写操作示意图。
具体实施方式
下面结合附图对本发明作进一步详细的说明。
Linux下的设备驱动程序分为字符设备,块设备和网络设备,而MMC/SD卡属于块设备。图1是现有基于Linux的系统对MMC/SD的多块数据写操作示意图。Linux将要读写的数据预先放置于一片高速缓冲内存中,对MMC/SD卡的一般读写操作实际是对这片内存区的读写操作,除非有真正需要的写卡操作如卸载卡的时候才真正把高速缓冲内存中的内容同步到卡上,这一步骤亦称为”sync”操作。
当进行sync时,Linux每次进行一次的读写请求,请求的大小是一块数据,对于MMC/SD卡来说是1024字节数据。当进行此块数据的写入时,先设置好MMC/SD卡设备参数,然后启动设备,此后设备进行磁道定位,之后进行真正的数据传输,传输完毕关闭设备。图1情况下,真正的数据传输时间远小于写操作时间(启动时间+磁道定位时间+数据传输时间+关闭设备时间),这样就浪费了大量时间去做准备工作,真正的数据传输时间只占了整个写操作时间很小的比例,这就是现有采用单块数据写方法速度极其缓慢的主要原因。
如图2所示,本发明首先根据在Linux系统高速缓冲内存中每块数据的数据结构中标明了此块数据将要被写入MMC/SD卡的位置的信息,进行收集整理,在Linux系统高速缓冲内存中每一块数据都有一个数据结构与之对应,此数据结构有一项标明了此块数据将要被写入MMC/SD卡的位置;然后根据收集整理的信息即可得到将要被写入MMC/SD卡某连续区域中的所需内容;再将这些内容放入新开辟的一片内存中;最后在合适的时候将此内存中内容使用多块写操作写入MMC/SD卡。
当进行sync时,针对Linux某次写请求,虽然请求的大小是一块数据,但收集整理与此数据块相关的将要被写入MMC/SD卡连续区域的内容,将它们一并复制到开辟的一片内存中,再将此内存中内容使用多块写操作写入MMC/SD卡。MMC/SD卡的多块写操作需要一片连续的内存区作为其操作参数,而从高速缓冲内存收集到的内容其内存块是不连续的,所以需要开辟一片内存作为临时缓冲内存,并作为参数传递给多块写操作。
本发明将预写入MMC/SD卡连续区域的大量数据块的单个的写操作合并成一次的多块数据写操作,由于多块写操作中间无时间间隔,这样就大大提高了数据传输时间在整个写操作时间所占的比例,从而大幅度提高了数据吞吐速度,写速度大于800k/sec,速度提高了70倍,使得MMC/SD卡的使用变得实用简单。
Claims (2)
1.一种Linux上的MMC/SD卡驱动的多块数据保存方法,其特征在于,包括如下步骤:
1)对Linux数据传输请求作出判断;
2)如果是单块数据写请求,采用单块数据写操作;
3)如果是多块数据写请求,则进行以下操作:
(1)对在Linux系统高速缓冲内存中写请求数据块根据每块数据的数据结构中标明了此块数据将要被写入MMC/SD卡的位置的信息进行收集整理;
(2)得到将要被写入MMC/SD卡某连续区域中的所需内容;
(3)将这些内容放入新开辟的一片内存中;
(4)在合适的时候将此内存中内容使用多块写操作写入MMC/SD卡。
2.根据权利要求1所述的一种Linux上的MMC/SD卡驱动的多块数据保存方法,其特征在于,所述的将内存中内容使用多块写操作写入MMC/SD卡中的合适的时候指的是此片内存满时或者此片内存是所搜集整理信息的最末部分。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100231223A CN100371912C (zh) | 2005-01-05 | 2005-01-05 | 一种Linux上的MMC/SD卡驱动的多块数据保存方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100231223A CN100371912C (zh) | 2005-01-05 | 2005-01-05 | 一种Linux上的MMC/SD卡驱动的多块数据保存方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1801120A CN1801120A (zh) | 2006-07-12 |
CN100371912C true CN100371912C (zh) | 2008-02-27 |
Family
ID=36811134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100231223A Expired - Fee Related CN100371912C (zh) | 2005-01-05 | 2005-01-05 | 一种Linux上的MMC/SD卡驱动的多块数据保存方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100371912C (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154385A1 (en) * | 2002-02-12 | 2003-08-14 | Pei-Chung Liu | Data security device of data storage medium |
US20030231343A1 (en) * | 2002-05-08 | 2003-12-18 | Ayako Kobayashi | Image forming apparatus, program adding method, and a recording medium |
CN2629111Y (zh) * | 2003-05-21 | 2004-07-28 | 联想(北京)有限公司 | 移动存储设备 |
US20040153638A1 (en) * | 2003-01-30 | 2004-08-05 | Integrated Circuit Solution Inc. | Method of making computer booting from any one of card of multi-flash card reader |
JP2004303216A (ja) * | 2003-03-19 | 2004-10-28 | Ricoh Co Ltd | 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体 |
-
2005
- 2005-01-05 CN CNB2005100231223A patent/CN100371912C/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030154385A1 (en) * | 2002-02-12 | 2003-08-14 | Pei-Chung Liu | Data security device of data storage medium |
US20030231343A1 (en) * | 2002-05-08 | 2003-12-18 | Ayako Kobayashi | Image forming apparatus, program adding method, and a recording medium |
US20040153638A1 (en) * | 2003-01-30 | 2004-08-05 | Integrated Circuit Solution Inc. | Method of making computer booting from any one of card of multi-flash card reader |
JP2004303216A (ja) * | 2003-03-19 | 2004-10-28 | Ricoh Co Ltd | 情報処理装置,画像形成装置,プログラム起動時のエラー処理方法および記録媒体 |
CN2629111Y (zh) * | 2003-05-21 | 2004-07-28 | 联想(北京)有限公司 | 移动存储设备 |
Also Published As
Publication number | Publication date |
---|---|
CN1801120A (zh) | 2006-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122271B (zh) | 一种nand闪存控制器及其控制方法 | |
Chiang et al. | Cleaning policies in mobile computers using flash memory | |
CN100573476C (zh) | 闪存介质数据管理方法 | |
CN107545927A (zh) | 一种基于fio实现的SSD性能自动化测试方法 | |
CN104537050A (zh) | 一种批量快速创建文件系统元数据和数据的方法 | |
CN103064792A (zh) | 数据写入方法及装置 | |
CN100370445C (zh) | 一种基于文件分配表的数据传输装置和传输方法 | |
CN101105774B (zh) | 闪存记忆体在进行数据存取时的逻辑与物理地址转换方法 | |
CN102479549A (zh) | 半导体存储装置 | |
CN100371912C (zh) | 一种Linux上的MMC/SD卡驱动的多块数据保存方法 | |
CN107402819A (zh) | 一种客户端缓存的管理方法及系统 | |
CN102609486A (zh) | 一种Linux文件系统的数据读写加速方法 | |
CN103823634A (zh) | 一种支持无随机写模式的数据处理方法及系统 | |
CN101339490A (zh) | 闪存的驱动装置及方法 | |
CN110058938B (zh) | 一种内存处理方法、装置、电子设备和可读介质 | |
CN116136748A (zh) | 基于FPGA实现的高带宽NVMe SSD读写系统与方法 | |
CN105260264A (zh) | 一种快照实现方法及快照系统 | |
CN203192369U (zh) | Led显示屏控制系统 | |
CN101393537A (zh) | 一种NandFlash缓冲管理方法 | |
CN202067260U (zh) | 一种减少数据传输的缓存系统 | |
CN202110539U (zh) | 一种多功能便携式拷贝装置 | |
CN1790340A (zh) | 文件分配表访问装置、芯片及访问方法 | |
CN100517208C (zh) | 一种能离线进行数据交换的装置和方法 | |
CN205983437U (zh) | 一种高效的大规模数据存储装置 | |
CN100504812C (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080227 Termination date: 20130105 |
|
CF01 | Termination of patent right due to non-payment of annual fee |