一种访问文件的方法

文档序号:6446192阅读:200来源:国知局
专利名称:一种访问文件的方法
技术领域
本发明涉及计算机领域的文件系统技术,尤其涉及一种访问文件的方法。
背景技术
在计算机及具有信息处理能力的系统中,文件系统是软件为了存储和管理数据而在存储器上建立的一些结构的总和。文件系统主要完成跟踪、记录存储器上中被耗用的空间和自由空间,维护目录名和文件名,以及跟踪、记录每一个文件的物理存储位置等三项功能。
如图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)等。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种访问文件的方法,其特征在于该方法包括如下步骤A、输入/输出控制器向文件系统发送读文件或写文件请求;B、文件系统确定待读文件在存储器中的存储地址或为待写文件分配存储地址,并将该存储地址返回给所述输入/输出控制器;C、输入/输出控制器向存储控制器发送读文件或写文件请求,并提供所述存储地址;D、存储控制器按所述存储地址从存储器中读取数据直接发送给输出控制器,或者输入控制器将数据直接发送给所述存储控制器,该存储控制器按所述存储地址将数据写入到存储器中。
2.如权利要求1所述的方法,其特征在于,当输出控制器请求读文件时,文件系统确定的存储地址为文件在存储器中的起始地址,或者为文件在存储器中的一块或全部块地址。
3.如权利要求2所述的方法,其特征在于,当文件系统确定的存储地址为一个块地址时,输出控制器通过存储控制器读完一块数据后再向文件系统发送读文件请求,以获取存放该文件数据的下一个块地址。
4.如权利要求1所述的方法,其特征在于,当输入控制器请求写文件时,文件系统确定的存储地址为文件写入存储器中的各个地址;或者为文件写入存储器中的一块或全部块地址。
5.如权利要求4所述的方法,其特征在于,当文件系统确定的存储地址为一个块地址时,输入控制器通过存储控制器写完一块数据后再向文件系统发送写文件请求,以获取写该文件数据的下一个块地址。
6.如权利要求1、4或5所述的方法,其特征在于,当存储控制器写完文件后通知文件系统,由文件系统完成该文件的相关信息处理。
7.如权利要求1所述的方法,其特征在于,文件系统完成文件的相关信息处理至少包括在文件分配表中记录文件的物理位置,和在文件描述表中记录该文件的属性信息。
8.如权利要求1所述的方法,其特征在于,所述输入/输出控制器采用中断或轮询方式向文件系统发送读文件或写文件请求。
9.如权利要求1所述的方法,其特征在于,所述存储器包括但不限于软盘、硬盘、光盘、内存和闪存。
全文摘要
本发明公开了一种访问文件的方法,以解决现有技术中输入/输出控制器访问文件时存在效率低和占用资源多的问题。该方法为系统中的输入/输出控制器向文件系统发送读文件或写文件请求;文件系统确定待读文件在存储器中的存储地址或为待写文件分配存储地址,并将该存储地址返回给所述输入/输出控制器;输入/输出控制器向存储控制器发送读文件或写文件请求,并提供所述存储地址;存储控制器按所述存储地址从存储器中读取数据直接发送给输出控制器,或者输入控制器将数据直接发送给所述存储控制器,该存储控制器按所述存储地址将数据写入到存储器中。
文档编号G06F12/00GK1622056SQ20041010255
公开日2005年6月1日 申请日期2004年12月24日 优先权日2004年12月24日
发明者谭帅, 刘健, 周政军 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1