Information storage apparatus, information storage method and information storage processing program

Damien, Le Moal ;   et al.

Patent Application Summary

U.S. patent application number 10/873189 was filed with the patent office on 2005-10-20 for information storage apparatus, information storage method and information storage processing program. Invention is credited to Damien, Le Moal, Mizutani, Mika, Morimoto, Yoshiaki.

Application Number20050234847 10/873189
Document ID /
Family ID32768416
Filed Date2005-10-20

United States Patent Application 20050234847
Kind Code A1
Damien, Le Moal ;   et al. October 20, 2005

Information storage apparatus, information storage method and information storage processing program

Abstract

To allow a magnetic disk apparatus, such as an HDD, to perform real-time writing and reading of stream data or the like, the whole area of the disk is divided into a high reliability area and a low reliability area. The high reliability area is contiguous blocks to store reliability-critical data, whereas the low reliability area is contiguous blocks to store data which do not require high reliability. The high reliability area is divided into various management information storage areas, a metadata area and a high reliability data area to store reliability-critical data, such as encryption keys and programs. In the low reliability area, such data as image information having a real-time nature is stored.


Inventors: Damien, Le Moal; (Sagamihara, JP) ; Morimoto, Yoshiaki; (Kawasaki, JP) ; Mizutani, Mika; (Tokyo, JP)
Correspondence Address:
    ANTONELLI, TERRY, STOUT & KRAUS, LLP
    1300 NORTH SEVENTEENTH STREET
    SUITE 1800
    ARLINGTON
    VA
    22209-3873
    US
Family ID: 32768416
Appl. No.: 10/873189
Filed: June 23, 2004

Current U.S. Class: 1/1 ; 707/999.001; 707/E17.01
Current CPC Class: G06F 16/1724 20190101; G06F 3/0644 20130101; G06F 3/0613 20130101; G06F 3/0676 20130101; G06F 3/0623 20130101
Class at Publication: 707/001
International Class: G06F 007/00

Foreign Application Data

Date Code Application Number
Apr 15, 2004 JP P2004-120518

Claims



What is claimed is:

1. An information storage apparatus having a file system stored in a storage unit wherein the file system performs data writing to and data reading from the storage unit, comprising: a main memory into which the file system is loaded; and a processor which runs the file system; wherein the file system: divides the storage space of the storage unit into a high reliability area and a low reliability area and manages the high reliability area and the low reliability area separately; and stores data in the storage unit in such a manner that management data or encryption key data are stored in the high reliability area whereas contents data are stored in the low reliability area.

2. An information storage apparatus according to claim 1 wherein when data stored in the high reliability area is accessed, at least either retry processing or sector remapping processing is performed.

3. An information storage apparatus according to claim 1 wherein when data stored in the low reliability area is accessed, neither retry processing nor sector remapping processing is performed.

4. An information storage apparatus according to claim 1 wherein when data stored in the low reliability area is accessed, such a level of retry processing or sector remapping processing is performed that the data access can be done in real time.

5. An information storage apparatus according to claim 1 wherein the high reliability area is composed of contiguous blocks and the low reliability area is also composed of contiguous blocks.

6. An information storage apparatus according to claim 1 wherein the high reliability area is an area on which a reliability check has been made in advance within the storage unit.

7. An information storage apparatus according to claim 1 wherein the boundary between the high reliability area and the low reliability area can be changed.

8. An information storage apparatus according to claim 1 wherein: information is prepared which associates file identifiers respectively with storage areas; and each data is stored in the high reliability area or the low reliability area which is associated with the data's file identifier by referring to said information.

9. An information storage apparatus according to claim 1 wherein said management data and said encryption key data are for data which are stored in the low reliability area.

10. An information storage method in an information storage apparatus having a file system stored in a storage unit wherein the file system performs data writing to and data reading from the storage unit, comprising the steps of: providing a processor which runs the file system loaded into a main memory; dividing the storage space of the storage unit into a high reliability area and a low reliability area to separately manage the high reliability area and the low reliability area; and storing each data in the storage unit in such a manner that management data or encryption key data are stored in the high reliability area whereas contents data are stored in the low reliability area.

11. An information storage method according to claim 10 wherein when data stored in the high reliability area is accessed, at least either retry processing or sector remapping processing is performed.

12. An information storage method according to claim 10 wherein when data stored in the low reliability area is accessed, neither retry processing nor sector remapping processing is performed.

13. An information storage method according to claim 10 wherein when data stored in the low reliability area is accessed, such a level of retry processing or sector remapping processing is performed that the data access can be done in real time.

14. An information storage method according to claim 10 wherein the high reliability area is composed of contiguous blocks and the low reliability area is also composed of contiguous blocks.

15. An information storage method according to claim 10 wherein the high reliability area is an area on which a reliability check has been made in advance within the storage method.

16. An information storage method according to claim 10 wherein the boundary between the high reliability area and the low reliability area can be changed.

17. An information storage method according to claim 10 wherein: information is prepared which associates file identifiers respectively with storage areas; and each data is stored in the high reliability area or the low reliability area which is associated with the data's file identifier by referring to said information.

18. An information storage method according to claim 10 wherein said management data and said encryption key data are for data which are stored in the low reliability area.

19. A computer program product for an information storage apparatus having a file system stored in a storage unit, in which the file system performs data writing to and data reading from the storage unit, comprising the codes of: loading the file system into a main memory; dividing the storage space of the storage unit into a high reliability area and a low reliability area to separately manage the high reliability area and the low reliability area; and storing each data in the storage unit in such a manner that management data or encryption key data are stored in the high reliability area whereas contents data are stored in the low reliability area.

20. A computer program product according to claim 19 wherein when data stored in the high reliability area is accessed, at least either retry processing or sector remapping processing is performed.

21. A computer program product according to claim 19 wherein when data stored in the low reliability area is accessed, neither retry processing nor sector remapping processing is performed.

22. A computer program product according to claim 19 wherein when data stored in the low reliability area is accessed, such a level of retry processing or sector remapping processing is performed that the data access can be done in real time.

23. A computer program product according to claim 19 wherein the boundary between the high reliability area and the low reliability area can be changed.

24. A computer program product according to claim 19 wherein: information is prepared which associates file identifiers respectively with storage areas; and each data is stored in the high reliability area or the low reliability area which is associated with the data's file identifier by referring to said information.
Description



BACKGROUND OF THE INVENTION

[0001] The present invention relates to an information storage apparatus, information storage methods and information storage processing programs. In particular, the invention relates to an information storage apparatus, information storage methods and information storage processing programs of the type which are used to record and reproduce AV data and other stream type data.

[0002] In recent years, it has become common to enjoy music, image data and other multimedia information by using a home-use apparatus. Accordingly, there has been an increased demand for inexpensive products which can highly reliably record/reproduce multimedia information (also called stream data), such as music and image data, in real time. To meet this demand, various techniques have been proposed and are known. For example, Japanese Patent Laid-Open No. 2001-134495 describes a technique which optimizes data access by taking into consideration the type and content of the data to be accessed and its relations with other data during access. In addition, Japanese Patent Laid-Open No. 2000-148604 describes a technique which optimizes data access retry processing according to differences among data in terms of reliability, speed and other access requirements. Further, a technique disclosed in Japanese Patent Laid-Open No. 2004-5243 allows large-sized real-time file data to be stored efficiently, while reducing the degree of fragmentation which would otherwise be generated as a consequence of storing and deleting small-sized file data repeatedly.

[0003] These methods can be applied advantageously to HDD and other recording/reproducing magnetic disk apparatus, in a case where music, image data and other multimedia information having a real-time nature, intermingled with other data, are recorded and reproduced therewith.

[0004] In these methods, however, consideration has not been given to the cost of a home-use apparatus to implement them. In particular, recent storage devices for home-use apparatus may use low cost fabrication methods combined with disk certification (test) processes designed to reduce the amount of tests done on a disk for testing and remapping faulty sectors. Such disks may result in higher error rates on certain known areas, which is a characteristic not used by prior methods for optimizing performance. In addition, writing and reading multimedia information or stream data having a real-time nature imposes a large load on the controller and, therefore, may result in non real-time recording/reproducing.

SUMMARY OF THE INVENTION

[0005] Taking the foregoing into consideration, it is an object of the present invention to provide a low-cost information storage apparatus, an information storage method and an information storage processing program which will allow HDD and other disk devices, including price-critical home-use apparatus, to perform real-time writing and reading of stream data or the like.

[0006] According to the present invention, the above-mentioned object is attained by an information storage apparatus having a file system stored in a storage unit, wherein the file system performs data writing to and data reading from the storage unit, comprising: a main memory into which the file system is loaded; and a processor which runs the file system; wherein the file system: divides the storage space of the storage unit into a high reliability area and a low reliability area and manages the high reliability area and the low reliability area separately; and stores data in the storage unit in such a manner that management data or encryption key data is stored in the high reliability area, whereas contents data is stored in the low reliability area.

[0007] In addition, the above-mentioned object is attained by an information storage method in an information storage apparatus having a file system stored in a storage unit wherein the file system performs data writing to and data reading from the storage unit, comprising the steps of: providing a processor which runs the file system loaded into a main memory; dividing the storage space of the storage unit into a high reliability area and a low reliability area to separately manage the high reliability area and the low reliability area; and storing each data in the storage unit in such a manner that management data or encryption key data is stored in the high reliability area, whereas contents data is stored in the low reliability area.

[0008] According to the present invention, it is possible to provide a low-cost home-use storage apparatus that is capable of performing high reliability recording and reproducing of stream data in real time.

BRIEF DESCRIPTION OF THE DRAWINGS

[0009] FIG. 1 is a block diagram showing the hardware configuration of a file system according to an embodiment of the present invention;

[0010] FIG. 2 is a diagram illustrating a software configuration according to an embodiment of the present invention, downloaded into a RAM from an HDD shown in FIG. 1;

[0011] FIGS. 3(a) and 3(b) are diagram showing file fragmentation and I/O fragmentation in conjunction with file fragmentation;

[0012] FIG. 4 is a diagram which shows I/O fragmentation in conjunction with memory buffer fragmentation;

[0013] FIG. 5 is a diagram showing how data is allocated to the area on the disk according to the embodiment of the present invention;

[0014] FIG. 6 is a table which shows the configuration of file system management information stored in the storage area therefor;

[0015] FIG. 7 is a diagram which shows the configuration of metadata stored as file management information in the metadata area;

[0016] FIGS. 8(a) and 8(b) are tables which show the format of metadata expanded in the memory by the file system to handle the file;

[0017] FIG. 9 is a flowchart showing the initializing procedure performed by the file system;

[0018] FIG. 10 is a flowchart showing the procedure used to initialize the file system;

[0019] FIGS. 11(a) and 11(b) are tables illustrating a method of determining whether a file is to be stored in the high reliability area or in the low reliability area;

[0020] FIG. 12 is a flowchart showing a procedure to be followed when a file is opened;

[0021] FIG. 13 is a flowchart showing a procedure to be followed when a file is closed; and

[0022] FIG. 14 is a flowchart showing a procedure to be followed when a file is written to the disk.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0023] With reference to the drawings, a detailed description of a storage device control method and a file system which are implemented/embodied in accordance with the present invention will be described.

[0024] FIG. 1 is a block diagram showing the hardware configuration of a file system according to an embodiment of the present invention. In FIG. 1, the file system includes a CPU 100, a RAM 110, a clock source 120, a multimedia codec 130, a display adapter 140, is a display 150, an HDD interface adapter 160, an HDD 170 including, a disk controller 171 and, a disk 172, a system bus 180, an I/O interface 190 and is a network interface controller (NIC) 195.

[0025] The CPU 100 provides general control of the system. The RAM 110 serves as a main memory to store application programs and others software which is downloaded and used by the CPU 110 to perform control processing. The clock source 120 supplies a clock signal which is used throughout the system. The multimedia codec 130 performs encoding and decoding of multimedia information. The display 150 displays images, etc. The display adapter 140 performs display control for the display 150. The HDD 170 stores various data and multimedia information as well as application programs which are used by the CPU 100. The HDD interface adapter 160 controls data writing/reading to/from the HDD 170. The network interface controller 195 transmits and receives multimedia information via a communication line. The I/O interface 190 is connected with devices, such as an input unit, to receive operation commands. The file system is constituted by these components which are interconnected via the system bus 180. The HDD 170 comprises a magnetic disk 172, which is a medium on which to record data, and a disk controller 171 which controls writing/reading to/from the magnetic disk 172.

[0026] The above-mentioned file system can be configured not only as a server to provide multimedia information, but also as a home use apparatus, such as an HDD-incorporated video recorder. If the file system is configured as a video recorder, a TV tuner and an audio amplifier for speakers are connected to the system bus 180 via an interface circuit.

[0027] FIG. 2 shows a software configuration according to an embodiment of the present invention. The software, downloaded from the HDD 170, is configured, as shown, in the RAM 110 of FIG. 1. In FIG. 2, reference numeral 111 denotes applications, reference numeral 112 denotes an OS, reference numerals 113 denotes a file processing section, reference numeral 114 denotes a disk driver and reference numeral 115 denotes other drives.

[0028] The file processing section 113 in FIG. 2 performs processing to operate the file system in cooperation with the applications 111 according to the present invention. Although the applications 111 may be of any types, that application used for processing of the file system according to the present invention includes processing to label each file as either a file consisting of reliability-critical data or a file consisting of image information and other data having a real-time nature, but not requiring high reliability when the file is opened for writing to the HDD 170. The disk driver 114 supplies the interface adapter 160 of the HDD 170 with various types of control information, data and the like required to access the HDD 170. The other drivers 115 supply an FD, CD, input device, display 150 and other various devices with various control information, data and the like required to control them. The OS 112 controls all of these software functions, as described above, in an integrated manner. There are various types of OSs known and used in various types of apparatus. In the embodiment of the present invention, the OS 112 may be of any type.

[0029] FIGS. 3(a) and 3(b) are provided to explain file fragmentation and I/O fragmentation in conjunction with file fragmentation. FIG. 4 is provided to explain I/O fragmentation in conjunction with memory buffer fragmentation.

[0030] As shown in FIG. 3(a), storing a file 200 of the file system generally results in a fragmented file stored in plural blocks 220 of the disk. Fragmentation of the file 200 and its allocation to the plural blocks 220 is under management of the file system. Since accessing the disk is done in blocks, accessing a single file requires a number of accesses depending on the block size. Each time a seek operation is made to locate the head on a block, data transmission is carried out. That is, dividing a file into many pieces of blocks lowers the processing speed and increases the system overhead since a seek operation must be performed to access each of the many blocks.

[0031] In addition, as shown in FIG. 3(b), access to the disk is usually done via an I/O memory buffer 350. In this figure, portions 351, 352 and 353 of the I/O memory buffer 350 are respectively used to access a stored file 310 that is scattered among plural blocks 320, 330 and 340. Accordingly, not only allocation of the file to non-contiguous blocks, but also use of the I/O memory buffer 350, must be under management of the file system. This also increases the system overhead.

[0032] This problem in conjunction with file fragmentation is eliminated if each file of the file system can be stored in contiguous blocks of the disk via an I/O memory buffer that is capable of treating the whole of each file. Even in this case, however, I/O fragmentation may occur, as illustrated in FIG. 4.

[0033] This example in FIG. 4 indicates that, even if a file 400 of the file system is allocated to contiguous blocks 430, the physical I/O buffer may be divided into plural memory areas 450 through 453. For example, although it is possible to configure a file system on a virtual computer system so that a virtual I/O memory buffer 440 can treat the whole of the file 410 of the I/O size as a continuous one, the file is divided into plural pieces when it is allocated to the physical I/O buffer. Also, in this case, allocation to the physical I/O memory buffer must be performed under management of the file system, which increases the system overhead.

[0034] The present invention is intended to decrease such file fragmentation in order to allow efficient disk accesses. According to the present invention, the whole area of a disk device is divided into an area to store data requiring high reliability and an area to store data not requiring high reliability. Data accesses to these different areas can be optimized differently in a retry operation, etc.

[0035] FIG. 5 is a diagram illustrating how data is allocated to the disk in the embodiment of the present invention. The following describes the layout.

[0036] The whole area 500 of the disk is divided into a high reliability area 510 and a low reliability area 520. The high reliability area 510 is made up of contiguous blocks to store reliability-critical data, whereas the low reliability area 520 is made up of contiguous blocks to store data which does not require high reliability. This division can be determined by the system designer when the system is designed. It may also be determined in such a manner that the disk is partially checked and the checked area is set as the high reliability area 510, whereas the unchecked area is set as the low reliability area 520. Generally, after an HDD is manufactured, the whole surface of each disk is checked. This whole surface check requires much time and, therefore, increases the cost of the HDD. Leaving an area as an unchecked low reliability area contributes to a lowering of the cost of manufacture of the HDD. The boundary between the high reliability area 510 and the low reliability area 520, that is, the respective sizes of the high reliability area 510 and low reliability area 520 can be changed as instructed by the file processing section 113, while the file system is running.

[0037] The high reliability area 510 is divided into a file system management information storage area 530, a metadata block allocation management information storage area 540, a high reliability data block allocation management information storage area 550, a low reliability data block allocation management information storage area 560, a metadata area 570 having contiguous blocks 571 and a high reliability data area 580 having contiguous blocks 581. Each area is organized as a continuous area. In the high reliability data area 580, reliability-critical data, such as encryption keys and programs, are stored. For this data, retry processing, sector remap processing and the like are performed to raise the reliability.

[0038] The low reliability area 520 is organized as a low reliability data area 590 having plural contiguous blocks 591. In this low reliability data area 590, data requiring real time processing, such as image information, sequential data, such as streaming contents, and other ordinary data, are stored. In this embodiment of the present invention, such reliability-raising operations as retry processing is not performed for the data which is stored in the low reliability data area 590. If performed, such operations are designed so as not to impair the real-time nature of the data, that is, not to cause remarkably delayed image/sound reproduction, sound-to-image asynchronism, etc. This makes it possible to quickly access data stored in the low reliability data area 590. Image information stored in the low reliability data area 590 can be encrypted so as to allow only specific users to enjoy it. Encryption keys for this purpose are stored in the high reliability data area 580.

[0039] In this embodiment of the present invention, as described above, the disk space is divided into a continuous high reliability area and a continuous low reliability area, and the high reliability area is further divided into continuous storage areas for metadata and other management data and another continuous storage area for encryption keys, programs and other data. Therefore, since management data is not intermingled with non-management data, non-management data stored in the high reliability and low reliability areas can be treated as large sets of contiguous data. Accesses to this data and the accompanying operations can therefore be performed at high speed.

[0040] FIG. 6 shows an example of the configuration of the file system management information 600 that is stored in the storage area 530. As shown, the file system management information 600 comprises the disk size 610, the high reliability area size 620, the low reliability area size 630, the metadata area size 640, the metadata block allocation management information size 650, the high reliability data block allocation management information size 660, the low reliability data block allocation management information size 670, the file population 680 and miscellaneous data 690. The metadata block allocation management information size 650 is the size of the metadata block allocation management information indicating metadata-stored plural blocks 571 in the metadata area 570. The high reliability data block allocation management information size 660 is the size of the high reliability data block allocation management information indicating high reliability data-stored plural blocks 581 in the high reliability data area 580. The low reliability data block allocation management information size 670 is the size of the low reliability data block allocation management information indicating low reliability data-stored plural blocks 591 in the low reliability data area 590.

[0041] FIG. 7 shows an example of the configuration of metadata stored as file management information in the metadata area 570. Metadata 700 is data layout information indicating where data is recorded on the disk. Two metadata block numbers 701 and 702 constitutes one entry. The metadata block number 702 designates the subsequent metadata block which is linked to constitute one metadata. The metadata block number 701 designates one file management information metadata block 720, which specifies the name 721 of the file, the size 722 of the file, the type 723 (high or low reliability) of the data area, the data block numbers 724 of data blocks where the file is stored and the metadata block number 725 of the subsequent metadata block. By the subsequent metadata block number 725, the file management metadata block is linked to the subsequent metadata block.

[0042] FIGS. 8(a) and 8(b) show an example of the format of metadata expanded in the memory by the file system used to handle the file. As shown in FIG. 8(a), plural records 810 are stored as management information in a metadata block cache 800. Each record comprises the metadata block number 811 and copy 812 of a metadata block read from the metadata area 570 on the disk, as described with reference to FIG. 7. In addition, a file table 820 is configured in the memory as shown in FIG. 8(b). In the file table 820, plural records are stored, each of which contains a file name 831, reference counter information 832 and the metadata block number 833 of the top metadata block for the file.

[0043] FIG. 9 is a flowchart illustrating the initializing procedure performed by the file system. As performed by the file processing section 113 shown in FIG. 2, this procedure determines the data layout of the disk, as described with reference to FIG. 5.

[0044] (1) Firstly, the disk size and information concerning the high reliability area 510 are obtained, including the management information areas 530 through 560, the metadata area 570 and the high reliability data area 580, as described with reference to FIG. 5, from the disk controller 171 (Steps 900 and 910).

[0045] (2) Then, the file system management information area 530 is initialized and file system management information is written into this area 530 (Steps 920 and 930).

[0046] (3) The metadata block allocation management information area 540 is initialized and metadata block allocation management information is written in this area 540 (Steps 940 and 950).

[0047] (4) The high reliability data block allocation management information area 550 is initialized and high reliability data block allocation management information is written in this area 550 (Steps 960 and 970).

[0048] (5) The low reliability data block allocation management information area 560 is initialized and low reliability data block allocation management information is written in this area 560 (Steps 980 and 990).

[0049] By performing this procedure, it is possible to lay out the disk, as described with reference to FIG. 5.

[0050] FIG. 10 is a flowchart illustrating the procedure to initialize the file system. This procedure is performed by the file processing section 113 shown in FIG. 2.

[0051] (1) File system management information and metadata block allocation management information are respectively read in from the file system management information area 530 and metadata block allocation management information area 540 on the disk (Steps 1000 and 1010).

[0052] (2) High reliability data block allocation management information and low reliability data block allocation management information are respectively read in from the high reliability data block allocation management information area 550 and low reliability data block allocation management information area 560 (Steps 1020 and 1030).

[0053] (3) Metadata blocks for the file table are read in from the metadata area 570 on the disk (Step 1040).

[0054] (4) The file table in the memory is initialized based on the information read out from the disk through the above steps, and, finally, the file system is initialized to complete this processing (Steps 1050 and 1060).

[0055] FIGS. 11(a) and 11(b) are provided to explain a method of determining whether a file is to be stored in the high reliability area 510 or in the low reliability area 520.

[0056] Generally, each file is given a file extension to indicate the type of file. Accordingly, a method which utilizes the file extension is available in this embodiment of the present invention as one method for determining whether a file is to be stored in the high reliability area or in the low reliability area. Specifically, in this embodiment of the present invention, data area information 1120 is set in advance into a table or the like prepared in one or plural blocks 581 of the high reliability data area 580. As shown in FIG. 11(a), data area information 1120 specifies whether a directory/file 1130/1140 is to be stored in the high reliability area or the low reliability area on the disk according to the file type 1100 indicating its type (file or directory) and the file extension 1110 expected to be given to it. When a file is stored on the disk, the area to store the file is determined according to this preset information.

[0057] In the example shown in FIG. 11(a), entry 1131 specifies that directories 1130 are to be stored in the high reliability area of the disk. Files with file extensions .mpg, .avi, .m2p, etc. are image data and other stream data files and, therefore, must be processed in real time. Accordingly, entries 1141 through 1144 specify that these files are to be stored in the low reliability area of the disk. As for files with other file extensions, such as .txt, entry 1145 specifies that these files are to be stored in the high reliability area of the disk.

[0058] While the file storage area determining method in the above-mentioned example uses file identifiers, some types of OSs treat files without giving them file identifiers. Accordingly, the present invention can also be configured so as to determine the storage area of each file by using file path information. In this alternate method, as shown in FIG. 11(b), data area information 1170 specifies whether a directory/file 1180/1190 is to be stored in the high reliability area or the low reliability area on the disk according to the file type 1150 indicating its type (file or directory) and the file path 1160 to be given to it. This information is set in advance into a table or the like. When a file is stored on the disk, the area used to store the file is determined according to this preset information.

[0059] In the example shown in FIG. 11(b), entry 1181 specifies that directories 1180 are to be stored in the high reliability area of the disk. Files having "low_reliable" set thereto as file path information 1160 are assumed to be image data and other stream data files which require real-time processing. Accordingly, entry 1191 specifies that these files are to be stored in the low reliability area of the disk. As for files having other file path information, entry 1192 specifies that these files are to be stored in the high reliability area of the disk.

[0060] FIG. 12 is a flowchart illustrating a procedure to be followed when a file is opened. The following steps constitute this procedure.

[0061] (1) Firstly, the file table is searched in the memory and it is determined whether a file is found; and, if a file is found, it is determined whether a metadata block for the file is already present in the cache (Steps 1200, 1210 and 1220).

[0062] (2) If it is judged in step 1220 that a metadata block for the file is already present in the cache, the procedure is terminated after incrementing the file reference counter by "1" (Step 1280).

[0063] (3) If it is judged in step 1220 that no metadata block in the cache is for the file, all file management metadata blocks are read in from the disk and then the procedure is terminated after incrementing the file reference counter by "1" (Steps 1240 and 1280).

[0064] (4) If it is judged in step 1210 that no file is found, it is determined whether the file processing mode is a write mode, and, if it is not a write mode, the procedure is terminated as an error (Step 1230).

[0065] (5) If it is judged in step 1230 that the file processing mode is a write mode, a metadata block is assigned to the file and the file management information is initialized (Steps 1250 and 1260).

[0066] (6) A data block area is determined for the file and the procedure is terminated after incrementing the file reference counter by "1" (Steps 1270 and 1280). By using either method described in connection with FIGS. 11(a) and 11(b), it is determined whether the file is to be stored in the high reliability area or the low reliability area of the disk.

[0067] In step 1240, all file management metadata blocks are read from the disk. This makes it possible to treat a large file stored in a plurality of contiguous data blocks. In particular, stream data and other files having a real-time nature that are stored in the low reliability area can be processed in real time.

[0068] FIG. 13 is a flowchart illustrating a procedure to be followed when a file is closed. The following steps constitute this procedure.

[0069] (1) Firstly, it is determined whether the value of the file reference counter is "1" or higher, and if the value is higher than "1", indicating that the file is opened also by another user, this procedure is terminated after decrementing the value of the file reference counter by 1 (Steps 1300 and 1310).

[0070] (2) If it is judged in step 1300 that the value of the file reference counter is "1", indicating that the file is not being used by another user, the file's modified metadata block is written to the disk if modified (Step 1320).

[0071] (3) Then, this procedure is terminated after releasing the file's metadata block from the cache (Step 1330).

[0072] It is possible to allow the user to move the file from the high reliability area to the low reliability area or vice versa in the procedure mentioned above. This can be realized by adding the steps of creating a copy of the file and urging the user to choose a data block area in which the copy is to be stored.

[0073] FIG. 14 is a flowchart illustrated a procedure to be followed when a file is written to the disk. The following steps constitute this procedure.

[0074] (1) Data block numbers are calculated. This calculation determines the number of required data blocks from the size of the file and then the data block numbers of contiguous data blocks in which the file is to be written is determined (Step 1400).

[0075] (2) It is determined whether the data blocks designated in step 1400 are all allocated to allow the file to be written therein, and, if allocated, the procedure is terminated after writing the file's data blocks in which to the disk (Steps 1410 and 1460).

[0076] (3) If it is judged in step 1410 that the data blocks in which to write the file are not all allocated, that is, that the file is enlarged to require more data blocks, it is determined whether the metadata blocks for the file are sufficient to manage the numbers of data blocks to be allocated for the file (Step 1420).

[0077] (4) If it is judged in step 1420 that the metadata blocks for the file are not sufficient, a metadata block is allocated to the file. If it is judged after this step or in step 1420 that the metadata blocks for the file are sufficient, the procedure is terminated after allocating data blocks to the file and writing the file's data blocks on the disk (Steps 1430, 1450 and 1460).

[0078] The aforementioned respective procedures in the embodiment of the present invention can be organized as a processing program. HD, DAT, FD, MO, DVD-ROM, CD-ROM and other recording media can be used to store and offer this processing program.

* * * * *


uspto.report is an independent third-party trademark research tool that is not affiliated, endorsed, or sponsored by the United States Patent and Trademark Office (USPTO) or any other governmental organization. The information provided by uspto.report is based on publicly available data at the time of writing and is intended for informational purposes only.

While we strive to provide accurate and up-to-date information, we do not guarantee the accuracy, completeness, reliability, or suitability of the information displayed on this site. The use of this site is at your own risk. Any reliance you place on such information is therefore strictly at your own risk.

All official trademark data, including owner information, should be verified by visiting the official USPTO website at www.uspto.gov. This site is not intended to replace professional legal advice and should not be used as a substitute for consulting with a legal professional who is knowledgeable about trademark law.

© 2024 USPTO.report | Privacy Policy | Resources | RSS Feed of Trademarks | Trademark Filings Twitter Feed