System and method for storing partial blocks of file data in a file cache system by merging partial updated blocks with file block to be written
First Claim
Patent Images
1. A system for updating a selected portion of a file stored in a non-volatile storage within a file cache system coupled to a host computer system, comprising:
- buffer means for storing a first selected portion and a second selected portion of a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each block contains a plurality of words, the unit of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple of the size of a block and said portion of said file to be updated may be stored in multiple contiguous blocks, said first selected portion of said file is delineated by a first word index within a first selected block of said file, said second selected portion of said file is delineated by a last word index within a last selected block of said file, said first selected block is the same as said last selected block for file updates of less than or equal to one block, and said portion of said file to be updated does not include but is contiguously between said first selected portion and said second selected portion of said file,write FIFO means, coupled to the host computer system, for storing said portion of file to be updated received from the host computer system,write control means, coupled to said write FIFO means, for controlling the selective transfer of said first selected portion of said file from said buffer means, said portion of said file to be updated from said write FIFO means, and said second selected portion of said file from said buffer means to the non-volatile storage by generating a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, andselection means coupled to said buffer means and the non-volatile storage, and connected to said write FIFO means and said write control means, for selecting said first selected portion of said file or said second selected portion of said file from said buffer means, or said portion of said file to be updated from said write FIFO means for transfer into the non-volatile storage according to said selection control signals received from said write control means.
9 Assignments
0 Petitions
Accused Products
Abstract
A system and method for updating partial blocks of file data stored in a non-volatile storage within a file cache system connected to a host computer system. A first buffer and a last buffer receive from the non-volatile storage the existing portions of the blocks that are to be retained. A write buffer receives new data of a size not equal to an integral multiple of a block from a host computer system. The new data is merged under hardware control with the existing portions contained in the first buffer and the last buffer, thereby updating the cached file.
-
Citations
13 Claims
-
1. A system for updating a selected portion of a file stored in a non-volatile storage within a file cache system coupled to a host computer system, comprising:
-
buffer means for storing a first selected portion and a second selected portion of a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each block contains a plurality of words, the unit of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple of the size of a block and said portion of said file to be updated may be stored in multiple contiguous blocks, said first selected portion of said file is delineated by a first word index within a first selected block of said file, said second selected portion of said file is delineated by a last word index within a last selected block of said file, said first selected block is the same as said last selected block for file updates of less than or equal to one block, and said portion of said file to be updated does not include but is contiguously between said first selected portion and said second selected portion of said file, write FIFO means, coupled to the host computer system, for storing said portion of file to be updated received from the host computer system, write control means, coupled to said write FIFO means, for controlling the selective transfer of said first selected portion of said file from said buffer means, said portion of said file to be updated from said write FIFO means, and said second selected portion of said file from said buffer means to the non-volatile storage by generating a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, and selection means coupled to said buffer means and the non-volatile storage, and connected to said write FIFO means and said write control means, for selecting said first selected portion of said file or said second selected portion of said file from said buffer means, or said portion of said file to be updated from said write FIFO means for transfer into the non-volatile storage according to said selection control signals received from said write control means.
-
-
2. A system for updating a selected portion of a file being stored in a non-volatile storage within a file cache system coupled to a host computer system
buffer means for storing a first selected portion and a second selected portion of a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each clock contains a plurality of words, the unite of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple of the size of a block and said portion of said file to be updated may be stored in multiple contiguous blocks, said first selected portion of said file contains data starting from a first word of first selected block of said file up to but not including a word specified by a first word index, said second portion of said file contains data starting from a word immediately succeeding a word specified by a last word index within a last selected block of said file up to and including a last word in said last selected block, and said first selected block is the same as said last selected block for file updates of less than or equal to one block write FIFO means, coupled to the host computer system, for storing said portion of said file to be updated wherein said portion of said file to be updated does not include but is contiguously between said first selected portion and said second selected portion of said file and includes data starting from a word in said first selected block specified by said first word index up to and including a word in said last selected block specified by said last word index, said portion of said file to be updated being received from the host computer system, write control means, coupled to said write FIFO means, for controlling the selective transfer of said first selected portion of said file from said buffer means, said portion of said file to be updated from said write FIFO means, and said second selected portion of said file from said buffer means to the non-volatile storage by generating a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, and a multiplexor, coupled to said buffer means and the non-volatile storage, and connected to said write FIFO means, and said write control means to select said first selected portion of said file or said second selected portion of said file from said buffer means, or said portion of said file to be updated from said write FIFO means for transfer into the non-volatile storage according to said selection control signals received from said write control means.
-
7. An apparatus for updating a selected portion of a file stored in a non-volatile storage within a file cache system coupled to a host computer system, comprising:
-
a first buffer having a first selected file portion containing data from a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each block contains a plurality of words, the unit of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple of the size of a block and said portion of said file to be updated may be stored in multiple contiguous blocks, said first selected file portion including data from a first word of a first selected block of said file up to but not including a word specified by a first word index, a last buffer having a second selected file portion containing data from said file received from the non-volatile storage starting from a word immediately succeeding a word specified by a last word index within a last selected block of said file up to and including a last word in said last selected block, a write FIFO buffer, connected to the host computer system, for storing said portion of said file to be updated, wherein said portion of said file to be updated does not include but is contiguously between said first selection file portion and said second selected file portion and includes new data from a word in said first selected block of said file specified by said first word index up to and including a word in said last selected block of said file specified by said last word index, said new data being received from the host computer system, write control circuitry, connected to said write FIFO buffer, to selectively control the transfer of said file portions to the non-volatile storage by outputting a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, and a multiplexer, connected to said first buffer, said last buffer, said write FIFO buffer, said write control circuitry, and the non-volatile storage, for selecting said first selected file portion from said first buffer, said second selected file portion from said last buffer, or said portion of said file to be updated from said write FIFO buffer for transfer into the non-volatile storage according to said selection control signals. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system for updating a selected portion of a file stored in a non-volatile storage within a file cache system coupled to a host computer system, comprising:
-
buffer means for storing a first selected portion and a second selected portion of a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each block contains a plurality of words, the unit of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple of the size of a block and said portion of said file to be updated may be stored in multiple contiguous blocks, said first selected portion of said file contains data starting from a first word of a fist selected block of said file up to but not including a word specified by the first word index, said second portion of said file contains data starting from a word immediately succeeding a word specified by a last word index within a last selected block of said file up to and including a last word in said last selected block, and said first selected block is the same as said last selected block for file updates of less than or equal to one block write FIFO means, coupled to the host computer system, for storing said portion of said file to be updated, wherein said portion of said file to be updated does not include but is contiguously between said first selected portion and said second selected portion of said file and includes data starting from a word in said first selected block specified by said first word index up to and including a word in said last selected block specified by said last word index, said portion of said file to be updated being received from the host computer system, write control means, coupled to said write FIFO means, for controlling the selective transfer of said first selected portion of said file from said buffer means, said portion of said file to be updated from said write FIFO means, and said second selected portion of said file from said buffer means to the non-volatile storage by generating a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, said write control means including first index means for storing said first word index; second index means for storing said last word index; blocks count means for storing said number of blocks count; address decode means, coupled to said first index means and said second index means, for determining the address of the word in selected portion of a file being processed compare means, coupled to said blocks count means, said address decode means, and said write FIFO means, for controlling the continued transfer of words contained in said first selected portion of said file, said second selected portion of said file, and said portion of said file to be updated, and selection control decode means, coupled to said first index means, said second index means, and said compare means, for controlling the selection of either said first selected portion of said file, said second selected portion of said file, or said portion of said file to be udpated, for transfer to the non-volatile storage, and a multiplexor, coupled to said buffer means and the non-volatile storage, and connected to said write FIFO means, and said write control means to select said first selected portion of said file or said second selected portion of said file from said buffer means, or said portion of said file to be updated from said write FIFO means for transfer into the non-volatile storage according to said selection control signals received from said write control means.
-
-
13. An apparatus for updating a selected portion of a file stored in a non-volatile storage within a file cache system coupled to a host computer system,
a first buffer having a first selected file portion containing data from a file received from the non-volatile storage, wherein said file is composed of a plurality of segments, each segment contains a plurality of blocks, each block contains a plurality of words, the unit of data transfer between the host computer system and the file cache system is one or more blocks specified by a number of blocks count, the size of a portion of said file to be updated is not equal to an integral multiple contiguous blocks, said first selected file portion including data from a first word of a first selected block of said file up to but not including a word specified by a first word index, a last buffer having a second selected file portion containing data from said file received from the non-volatile storage starting from a word immediately succeeding a word specified by a last word index within a last selected block of said file up to and including a last word in last selected block, a write FIFO buffer, connected to the host computer system for storing said portion of said file to be updated, wherein said portion of said file to be updated does not include but is contiguously between said first selection file portion and said second selected file portion and includes new data from a word in said first selected block of said file specified by said first word index up to and including a word in said last selected block of said file specified by said last word index, said new data being received from the host computer system, a read FIFO buffer, connected to the non-volatile storage, said first buffer, and said last buffer, for receiving said first selected file portion and said second selected file portion from the non-volatile storage; -
read buffer control circuitry, connected to said first buffer, said last buffer, and said read FIFO buffer, for controlling the transfer of said first selected file portion from the non-volatile storage into said read FIFO buffer, and from said read FIFO buffer into said first buffer, and for controlling the transfer of said second selected file portion from the non-volatile storage into said read FIFO buffer, and from said read FIFO buffer into said last buffer; write control circuitry, connected to said write FIFO buffer, to selectively control the transfer of said file portions to the non-volatile storage by outputting a plurality of selection control signals according to said first word index, said last word index, and said number of blocks count, said write control circuitry including; a first register for storing said first word index; a second register for storing said last word index; a third register for storing said number of blocks count; address decode circuitry, connected to said first register and said second register, for determining the address of the word in a selected portion of a file being processed, compare circuitry, connected to said third register, said address decode circuitry, said write buffer control circuitry, and said write FIFO buffer, for controlling the continued transfer of words contained in said first selected file portion, said second selected file portion, and said portion of said file to be updated, and selection control decode circuitry, connected to said first register, said second register, and said compare circuitry, for controlling the selection of either said first selected file portion, said second selected file portion, or said portion of said file to be updated for transfer to the non-volatile storage; a multiplexor, connected to said first buffer, said last buffer, said write FIFO buffer, said write control circuitry, and the non-volatile storage, for selecting said first selected file portion from said first buffer, said second selected file portion from said last buffer, or said portion of said file to be updated from said write FIFO buffer for transfer into the non-volatile storage according to said selection control signals; and write buffer control circuitry, connected to said first buffer and said last buffer, for controlling the transfer of said first selected file portion from said first buffer and said second selected file portion from said last buffer to said multiplexer.
-
Specification