CN1333346C - 一种访问文件的方法 - Google Patents
一种访问文件的方法 Download PDFInfo
- Publication number
- CN1333346C CN1333346C CNB2004101025515A CN200410102551A CN1333346C CN 1333346 C CN1333346 C CN 1333346C CN B2004101025515 A CNB2004101025515 A CN B2004101025515A CN 200410102551 A CN200410102551 A CN 200410102551A CN 1333346 C CN1333346 C CN 1333346C
- Authority
- CN
- China
- Prior art keywords
- file
- controller
- memory
- address
- file system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 20
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000008676 import Effects 0.000 claims description 4
- 238000000151 deposition Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
Abstract
本发明公开了一种访问文件的方法,以解决现有技术中输入/输出控制器访问文件时存在效率低和占用资源多的问题。该方法为:系统中的输入/输出控制器向文件系统发送读文件或写文件请求;文件系统确定待读文件在存储器中的存储地址或为待写文件分配存储地址,并将该存储地址返回给所述输入/输出控制器;输入/输出控制器向存储控制器发送读文件或写文件请求,并提供所述存储地址;存储控制器按所述存储地址从存储器中读取数据直接发送给输出控制器,或者输入控制器将数据直接发送给所述存储控制器,该存储控制器按所述存储地址将数据写入到存储器中。
Description
技术领域
本发明涉及计算机领域的文件系统技术,尤其涉及一种访问文件的方法。
背景技术
在计算机及具有信息处理能力的系统中,文件系统是软件为了存储和管理数据而在存储器上建立的一些结构的总和。文件系统主要完成跟踪、记录存储器上中被耗用的空间和自由空间,维护目录名和文件名,以及跟踪、记录每一个文件的物理存储位置等三项功能。
如图1所示,在现有的计算机系统中,当输入/输出控制器需要访问(读或写)文件时,如果是写操作,文件系统则首先把输入控制器的数据读取到内存中,再从内存写入到存储控制器,最后写入到存储器中;如果是读操作,则先从存储器将数据读到存储控制器,然后从存储控制器读到内存,最后从内存传送给输出控制器,其数据传输过程如图2所示。在这种访问文件方式下,访问效率会受到输入/输出控制器和内存速度影响,不仅访问效率低,而且还要耗费较多的系统资源(尤其在文件比较大时)。
发明内容
有鉴于此,本发明提供一种访问文件的方法,以解决现有技术中输入/输出控制器访问文件时存在效率低和占用资源多的问题。
一种访问文件的方法,包括如下步骤:
A、系统中的输入/输出控制器向文件系统发送读文件或写文件请求;
B、文件系统确定待读文件在存储器中的存储地址或为待写文件分配存储地址,并将该存储地址返回给所述输入/输出控制器;
C、输入/输出控制器向存储控制器发送读文件或写文件请求,并提供所述存储地址;
D、存储控制器按所述存储地址从存储器中读取数据直接发送给输出控制器,或者输入控制器将数据直接发送给所述存储控制器,该存储控制器按所述存储地址将数据写入到存储器中,并由文件系统对写入的文件的相关信息做出处理。
根据上述方法:
当输出控制器请求读文件时,文件系统确定的存储地址为文件在存储器中的起始地址,或者为文件在存储器中的一块或全部块地址。
当输入控制器请求写文件时,文件系统确定的存储地址为文件写入存储器中的各个地址;或者为文件写入存储器中的一块或全部块地址。
本发明具有以下有益效果:
1、读写效率高和资源占用少,由于硬件不必通过软件传输读写数据,仅传输读写请求、读写位置和读写长度等信息,减少了占用资源的时间,降低了软件的系统开销,因为无需对内存进行操作,从而也加快了存储速度。
2、低成本,由于硬件无需支持文件系统的数据结构解析功能,从而节省了硬件的设计与生产成本。
3、兼容性好,本发明不受操作系统限制,支持任何操作系统和软硬件平台。
4、可扩展性好,本发明不受文件系统类型的限制,可以适用于所有的文件系统。
附图说明
图1为计算机系统的结构示意图;
图2为现有技术中输入/输出控制器访问文件时的数据传输示意图;
图3为本发明中输出控制器读文件的流程图;
图4为本发明中输入控制器写文件的流程图;
图5为本发明中输入/输出控制器访问文件时的数据传输示意图。
具体实施方式
本实施主要以图1所示的计算机结构进行说明,该结构中未显示实现计算机功能所必须、并且本领域技术人员所公知的部分部件。
参阅图1,输入/输出类控制器、协处理器和内存在同一个中央处理器(CPU)的外部总线上。输入/输出类控制器用于处理协处理器与CPU之间的通讯。协议处理器中的输入控制器用于处理外部设备的数据输入,存储控制器用于控制存储器中的数据读写操作。当然还可包括输出控制器(图中未示出),用于向外部分输出数据。
在本实施例中,计算机的文件系统通过文件分配表(FAT)和文件描述表(FDT)表管理存储器中的文件。文件分配表是文件系统用来记录每个文件簇为单位的物理存储位置的链表,簇(Cluster)是将某一线形范围的物理位置(地址)形成的一个单位。
本发明在输出控制器需要从存储器读取文件或输入控制器需要向存储器写入文件时,向文件系统发送读或写请求;由文件系统向输出控制器提供待读文件在存储器中的存储地址或向输入控制器提供为待写文件分配的存储地址;然后输入控制器或输出控制器与存储控制器之间直接进行数据传输,以完成从存储器中读取数据或向存储器写入数据。
对于输出控制器发起的读文件请求,文件系统根据文件名通过文件描述表和文件分配表确定该文件在存储器中的存储地址。除了向输出控制器返回存储地址外,还可以返回该文件的长度。存储地址可以是文件在存储器中的起始地址,也可以是文件数据在存储器中的块地址。当文件系统向输出控制器返回块地址时,可以一次提供该文件在存储器中的所有块地址,也可以每次提供一个块地址,输出控制器读完一块数据后再向文件系统发送读文件请求,从而获得下一个块地址。
对于输入控制器发起的写文件请求,文件系统根据文件分配表来确定文件写入存储器中的存储地址。存储地址可以是存储文件的各个地址,也可以是存储文件数据的块地址。当文件系统向输入控制器返回块地址时,可以一次提供存储该文件的所有块地址,也可以每次提供一个块地址,输入控制器通过存储控制器写完一块数据后再向文件系统发送写文件请求,从而获得下一个块地址。
在输入控制器完成写文件操作后,需要通知文件系统,由文件系统对该文件相关信息进行处理(与现有技术中的处理方式相同),如,在文件分配表中记录文件所占用的物理位置,在文件描述表中记录文件的属性信息等。
输入/输出控制器向文件系统发送读文件请求或写文件请求可以采用中断方式,即由输入/输出控制器产生中断信号,CPU响应该中断执行文件系统程序;也可以采用轮询方式向文件系统发送读文件或写文件请求,即CPU通过循环(指令)方式不断查询控制器的寄存器或指定地址中的数值,来判断是否进入请求状态。
参阅图3所示,输出控制器从存储器读取文件的主要步骤如下:
步骤1、输出控制器产生一个读文件的中断信号,并将待读文件的路径和文件名等信息传递给文件系统,以请求从存储器读取指定的文件。
传递方式主要有两种:一是当请求发生时,控制器在其寄存器(或地址)上存入该文件的路径和文件名等,CPU读取该寄存器(或指定地址)获得文件名等信息。二是当请求发生时,首先由处理器运行的其它程序进行处理,然后将文件相关信息存入内存的某处,由文件系统从该处获得该文件信息;如,获得请求后,程序弹出对话框,告知用户有一文件需要存储,让用户选择文件存储的位置和名称,用户输入后,将值保存在某一内存区,由文件系统从该区读取该值,或直接告知文件系统该值。
步骤2、文件系统根据文件名,从文件描述表和文件分配表中得到该文件在存储器中的存储地址,并返回给输出控制器。
步骤3、输出控制器向存储控制器发送读文件请求,并提供该文件在存储器中的存储地址。
步骤4、存储控制器根据所述存储地址从存储器读取数据,并通过直接发送给输出控制器,直到读完该文件的所有数据。
参阅图4所示,输入控制器向存储器写入文件的主要步骤如下:
步骤11、输入控制器产生一个写文件的中断信号,并将待写文件的文件名传递给文件系统,以请求向存储器写入文件。
步骤12、文件系统根据文件分配表为该文件分配存储块,并将分配到的所有存储块地址返回给输入控制器。
步骤13、输入控制器向存储控制器发送写文件请求,并提供存储文件的块地址。
步骤14、输入控制器将数据直接发送给存储控制器,由存储控制器将数据写到存储器内指定的存储块中,直到写完该文件的所有数据。
步骤15、存储控制器通知文件系统已完成写文件操作。
步骤16、文件系统在文件分配表中记录文件所占用的物理位置,在文件描述表中记录文件的属性信息,如文件名、文件大小等。
结合图1可看出,输入控制器将外部设备(如摄像头)输入的数据写到存储器时,在协处理器内部实现了数据传输,不仅效率高,而且不占用系统中CPU的外部总线,这样就完全空出了CPU外部总线的带宽,大幅度地降低了对系统资源的占用。
以上仅以较佳实施例对本发明进行说明,对于计算机系统使用何种操作系统,并不影响本发明的实现,所述存储器包括但不限于软硬盘、光盘、内存、闪存(Flash)等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1、一种访问文件的方法,其特征在于该方法包括如下步骤:
A、输入/输出控制器向文件系统发送读文件或写文件请求;
B、文件系统确定待读文件在存储器中的存储地址或为待写文件分配存储地址,并将该存储地址返回给所述输入/输出控制器;
C、输入/输出控制器向存储控制器发送读文件或写文件请求,并提供所述存储地址;
D、存储控制器按所述存储地址从存储器中读取数据直接发送给输出控制器,或者输入控制器将数据直接发送给所述存储控制器,该存储控制器按所述存储地址将数据写入到存储器中,并由文件系统对写入的文件的相关信息做出处理。
2、如权利要求1所述的方法,其特征在于,当输出控制器请求读文件时,文件系统确定的存储地址为文件在存储器中的起始地址,或者为文件在存储器中的一块或全部块地址。
3、如权利要求2所述的方法,其特征在于,当文件系统确定的存储地址为一个块地址时,输出控制器通过存储控制器读完一块数据后再向文件系统发送读文件请求,以获取存放该文件数据的下一个块地址。
4、如权利要求1所述的方法,其特征在于,当输入控制器请求写文件时,文件系统确定的存储地址为文件写入存储器中的各个地址;或者为文件写入存储器中的一块或全部块地址。
5、如权利要求4所述的方法,其特征在于,当文件系统确定的存储地址为一个块地址时,输入控制器通过存储控制器写完一块数据后再向文件系统发送写文件请求,以获取写该文件数据的下一个块地址。
6、如权利要求1所述的方法,其特征在于,文件系统完成文件的相关信息处理至少包括在文件分配表中记录文件的物理位置,和在文件描述表中记录该文件的属性信息。
7、如权利要求1所述的方法,其特征在于,所述输入/输出控制器采用中断或轮询方式向文件系统发送读文件或写文件请求。
8、如权利要求1所述的方法,其特征在于,所述存储器包括但不限于软盘、硬盘、光盘、内存和闪存。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101025515A CN1333346C (zh) | 2004-12-24 | 2004-12-24 | 一种访问文件的方法 |
US11/304,100 US20060143313A1 (en) | 2004-12-24 | 2005-12-14 | Method for accessing a storage device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004101025515A CN1333346C (zh) | 2004-12-24 | 2004-12-24 | 一种访问文件的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1622056A CN1622056A (zh) | 2005-06-01 |
CN1333346C true CN1333346C (zh) | 2007-08-22 |
Family
ID=34766812
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004101025515A Expired - Fee Related CN1333346C (zh) | 2004-12-24 | 2004-12-24 | 一种访问文件的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20060143313A1 (zh) |
CN (1) | CN1333346C (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130318285A1 (en) * | 2012-05-23 | 2013-11-28 | Violin Memory Inc | Flash memory controller |
CN104125461B (zh) * | 2013-04-27 | 2017-06-23 | 深圳市振华微电子有限公司 | 一种大尺寸的图像压缩处理系统及方法 |
CN105393236B (zh) * | 2014-05-16 | 2018-06-26 | 华为技术有限公司 | 快速数据读写方法和装置 |
CN106873903B (zh) * | 2016-12-30 | 2020-02-18 | 深圳忆联信息系统有限公司 | 数据存储方法及装置 |
CN109753248B (zh) * | 2019-01-22 | 2022-05-13 | 上海微小卫星工程中心 | 存储访问控制器和访问存储器的方法 |
CN112799974B (zh) * | 2021-01-26 | 2021-12-03 | 科东(广州)软件科技有限公司 | 一种存储卡的控制方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0636983A1 (en) * | 1993-07-26 | 1995-02-01 | International Business Machines Corporation | Information processing system |
CN1285549A (zh) * | 2000-10-23 | 2001-02-28 | 大唐电信科技股份有限公司微电子分公司 | 采用逻辑区间链表寻址的智能卡嵌入式软件的实现方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4245300A (en) * | 1978-06-05 | 1981-01-13 | Computer Automation | Integrated and distributed input/output system for a computer |
JP3515142B2 (ja) * | 1992-06-11 | 2004-04-05 | セイコーエプソン株式会社 | データ転送制御装置 |
US5867733A (en) * | 1996-06-04 | 1999-02-02 | Micron Electronics, Inc. | Mass data storage controller permitting data to be directly transferred between storage devices without transferring data to main memory and without transferring data over input-output bus |
US5928347A (en) * | 1997-11-18 | 1999-07-27 | Shuttle Technology Group Ltd. | Universal memory card interface apparatus |
US6393537B1 (en) * | 1998-01-06 | 2002-05-21 | International Business Machines Corporation | Host storage management control of outboard data movement |
US6564219B1 (en) * | 1998-11-19 | 2003-05-13 | Emc Corporation | Method and apparatus for obtaining an identifier for a logical unit of data in a database |
US6874044B1 (en) * | 2003-09-10 | 2005-03-29 | Supertalent Electronics, Inc. | Flash drive/reader with serial-port controller and flash-memory controller mastering a second RAM-buffer bus parallel to a CPU bus |
US6438638B1 (en) * | 2000-07-06 | 2002-08-20 | Onspec Electronic, Inc. | Flashtoaster for reading several types of flash-memory cards with or without a PC |
US6832281B2 (en) * | 2000-07-06 | 2004-12-14 | Onspec Electronic Inc. | Flashtoaster for reading several types of flash memory cards with or without a PC |
US6738852B1 (en) * | 2000-09-27 | 2004-05-18 | Palm Source, Inc. | Palmtop computer expansion using shared memory access |
US6748486B2 (en) * | 2001-01-04 | 2004-06-08 | International Business Machines Corporation | Method, system, and data structures for superimposing data records in a first data format to memory in a second data format |
US7107374B1 (en) * | 2001-09-05 | 2006-09-12 | Xilinx, Inc. | Method for bus mastering for devices resident in configurable system logic |
US7171509B2 (en) * | 2002-01-09 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for host messaging unit for Peripheral Component Interconnect busmaster devices |
JP2005293478A (ja) * | 2004-04-05 | 2005-10-20 | Hitachi Ltd | 記憶制御システム、記憶制御システムに備えられるチャネル制御装置、データ転送装置 |
-
2004
- 2004-12-24 CN CNB2004101025515A patent/CN1333346C/zh not_active Expired - Fee Related
-
2005
- 2005-12-14 US US11/304,100 patent/US20060143313A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0636983A1 (en) * | 1993-07-26 | 1995-02-01 | International Business Machines Corporation | Information processing system |
CN1285549A (zh) * | 2000-10-23 | 2001-02-28 | 大唐电信科技股份有限公司微电子分公司 | 采用逻辑区间链表寻址的智能卡嵌入式软件的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
US20060143313A1 (en) | 2006-06-29 |
CN1622056A (zh) | 2005-06-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114749B2 (en) | Cache memory system and method for accessing cache line | |
US8185716B2 (en) | Memory system and method for using a memory system with virtual address translation capabilities | |
US7707337B2 (en) | Object-based storage device with low process load and control method thereof | |
JP5626690B2 (ja) | マルチプロセス間のバリアの物理マネージャ | |
JP2003015915A (ja) | 記憶装置の容量自動拡張方法 | |
US11360705B2 (en) | Method and device for queuing and executing operation commands on a hard disk | |
CN108900626B (zh) | 一种云环境下数据存储方法、装置及系统 | |
CN110555001B (zh) | 数据处理方法、装置、终端及介质 | |
US11093410B2 (en) | Cache management method, storage system and computer program product | |
CN102667714B (zh) | 支持访问由操作系统环境外的资源提供的功能的方法和系统 | |
US8151079B2 (en) | Computer system, storage area allocation method, and management computer | |
CN102063406A (zh) | 用于多核处理器的网络共享Cache及其目录控制方法 | |
US8954666B2 (en) | Storage subsystem | |
CN103092920A (zh) | 半结构化数据的存储方法及存储系统 | |
CN115981833A (zh) | 一种任务处理方法及装置 | |
TW202111541A (zh) | 裝置內標記資料移動系統 | |
CN105718242A (zh) | 多核dsp中支持软硬件数据一致性的处理方法及系统 | |
CN1333346C (zh) | 一种访问文件的方法 | |
US7793051B1 (en) | Global shared memory subsystem | |
JP2005339299A (ja) | ストレージ装置のキャッシュ制御方法 | |
US10846265B2 (en) | Method and apparatus for accessing file, and storage system | |
CN108804571B (zh) | 一种数据存储方法、装置以及设备 | |
EP3602309B1 (en) | A memory allocation manager and method performed thereby for managing memory allocation | |
CN115878300A (zh) | 异构存储系统的管理方法和装置 | |
US11100014B2 (en) | Providing data in a shared memory |
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: 20070822 Termination date: 20111224 |