US20010012446A1 - Data allocation method, recording medium with data recorded by the method, and data server apparatus - Google Patents

Data allocation method, recording medium with data recorded by the method, and data server apparatus Download PDF

Info

Publication number
US20010012446A1
US20010012446A1 US08/862,295 US86229597A US2001012446A1 US 20010012446 A1 US20010012446 A1 US 20010012446A1 US 86229597 A US86229597 A US 86229597A US 2001012446 A1 US2001012446 A1 US 2001012446A1
Authority
US
United States
Prior art keywords
data
data block
recording
location
blocks
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.)
Granted
Application number
US08/862,295
Other versions
US6314232B2 (en
Inventor
Toshiki Kizu
Hiroshi Yao
Tatsunori Kanai
Seiji Maeda
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Individual
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Assigned to KABUSHIKI KAISHA TOSHIBA reassignment KABUSHIKI KAISHA TOSHIBA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KANAI, TATSUNORI, KIZU, TOSHIKI, MAEDA, SEIJI, YAO, HIROSHI
Publication of US20010012446A1 publication Critical patent/US20010012446A1/en
Application granted granted Critical
Publication of US6314232B2 publication Critical patent/US6314232B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1251Formatting, e.g. arrangement of data block or words on the record carriers on discs for continuous data, e.g. digitised analog information signals, pulse code modulated [PCM] data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content data
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B2020/10916Seeking data on the record carrier for preparing an access to a specific address
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1232Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1291Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting serves a specific purpose
    • G11B2020/1294Increase of the access speed
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2508Magnetic discs
    • G11B2220/2516Hard disks
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2525Magneto-optical [MO] discs

Definitions

  • the present invention relates to a data allocation method applicable to a data storage apparatus equipped with a single or a plurality of rotary recording surfaces and heads for writing and reading data into and from the recording surfaces, also to a recording medium with data stored by the method, and to a data server apparatus for reading data stored in the data storage apparatus and transferring the read data to a terminal where a request for reading the data has issued.
  • Data recording apparatus includes magnetic tapes, magnetic disks, optical magnetic disks, etc.
  • Magnetic disks which are randomly accessible devices are advantageous in that they can be accessed at a higher speed than magnetic tapes, although the former are more expensive and have a smaller storage capacity than the latter.
  • the magnetic disk which has formally had a smaller storage capacity is advanced to have a larger storage capacity with low price by the development of recent technology, thereby its cost performance is improved to a grade in which a large amount of data in the form of, for example, moving picture can be stored.
  • the band width of the network has been improved.
  • the rotary type data recording apparatus includes a magnetic disk, a magneto-optical disk (MO), or an optical disk, for example.
  • a seek operation of moving the head to the target sector of the recording surface which records data to be read or written is performed, and a rotation waiting operation of waiting until the target sector of the recording surface is positioned just below the head is performed. After these process, data reading or writing is executed. Therefore, to read the data at high speed, the time required for the seek operation and the rotation waiting operation must be shortened.
  • a data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block.
  • a data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating size information for designating the size of each data block, such that the data block to be located in a region where access speed is higher has a large size and the data block to be located in a region where the access speed is lower has a small size.
  • a disciform recording medium applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of the recording medium, data allocation for the recording medium comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block.
  • a data server apparatus applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium
  • the data server apparatus comprising: means for dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; means for generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block; means for controlling the data recording apparatus to place each data block in accordance with the allocation information; and means, responsive to a request for reading data, for reading data blocks from the recording surface and transferring data comprised of the read data blocks to a terminal where the request has issued.
  • FIG. 1 is a diagram, showing a basic structure of a data recording apparatus according to each embodiment of the invention
  • FIG. 2 is a block diagram, showing a modification of the basic structure of the data management apparatus
  • FIG. 3 is a view, showing a structure of a data management apparatus
  • FIG. 4 is a view, illustrating a method for managing the state of use of each sector
  • FIG. 5 is a view, illustrating another method for managing the state of use of each sector
  • FIG. 6 is a view, showing a format of data/sector information to be managed by a data allocation information managing unit
  • FIG. 7 is a view, showing a format of a sector list to be supplied from a data allocation determination unit
  • FIGS. 8A and 8B show flowcharts, useful in explaining the basic operation of a data recording apparatus
  • FIG. 9 is a flowchart, illustrating an operation of a data input/output control unit
  • FIG. 10 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 11 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 12 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 13 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 14 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 15 is a flowchart, illustrating an operation of a sector information management unit
  • FIG. 16 is a flowchart, illustrating an operation of a data allocation information managing unit
  • FIG. 17 is a view, showing an allocation of data recorded on a recording surface
  • FIG. 18 is a format of a conversion table stored in the data allocation determination unit in which sector numbers, block sizes, and the numbers of sectors between data blocks;
  • FIG. 19 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 20 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 21 is a flowchart, illustrating part of an operation of the data allocation determination unit
  • FIG. 22 is a flowchart, illustrating processing performed by the data allocation determination unit using the conversion table
  • FIG. 23 is a view, showing an allocation of data recorded on the recording surface
  • FIG. 24 is another basic structure of the data recording apparatus according to the embodiments of the invention.
  • FIG. 25 is a view, showing a video server apparatus to which the invention is applied.
  • FIG. 1 shows a basic structure of a data recording apparatus according to the first embodiment of the invention.
  • This data recording apparatus of the first embodiment is equipped with a data recording apparatus 10 including a number n (n: an integer not less than 1) of disciform recording media 11 , heads 12 for data-reading/writing, which is provided for each recording surface 16 of the disciform recording media 11 , and a data recording control unit 13 for controlling to position the heads 12 and controlling data writing/reading.
  • the data recording apparatus is also equipped with a data management apparatus 20 for managing data recorded on the recording surfaces 16 of the data recording apparatus 10 and instructing data recording in the recording surfaces 16 .
  • the data recording apparatus 10 has functions for positioning a head 12 by rotating a disciform recording medium 11 and by moving the head 12 in a radial direction of the recording medium 11 , and writing and/or reading data to/from a recording surface to which the head 12 is positioned.
  • the disciform recording medium 11 of the data recording apparatus 10 are provided for recording data.
  • Data recording apparatuses which are applicable to this embodiment include a magnetic disk, an optical disk, a magneto-optical disk, a phase-variable optical disk, a CD-ROM, a CD-R, etc.
  • a metallic disk coated with a magnetic materal is used as the disciform recording medium 11 .
  • the recording surface 16 of the disciform recording medium 11 is divided into small areas, each of which is called a “sector”. Reading or writing data is performed in units of a sector.
  • Each head 12 is used to read and/or write data from/to the recording surface 16 of the disciform recording medium 11 .
  • a number of heads 12 corresponding to the number of recording surfaces 16 are employed.
  • the data recording control unit 13 has a function for controlling the rotation speed of the disciform recording medium 11 (i.e., the recording surface 16 ), controlling the positioning of the head 12 , and controlling the head 12 so as to read/write data, and also has a function for reading and writing data from/to a particular sector.
  • the data recording control unit 13 positions the head 12 to each of the locations designated by information supplied from the data management apparatus 20 when being controlled by the data management apparatus 20 .
  • the data recording apparatus 10 including the disciform recording medium 11 , the head 12 and the data recording control unit 13 corresponds to, for example, a hard disk device.
  • the data management apparatus 20 manages the state of use of each sector on the recording surface 16 of the data recording apparatus 10 , the type of data, and required reading/writing speed. Further, upon receiving a request for writing data, the apparatus 20 supplies the data recording control unit 13 with an instruction to write data into an appropriate sector. Upon receiving a request for reading data, the apparatus 20 supplies the data recording control unit 13 with an instruction to read data from a sector storing the data.
  • the functions of the data management unit 20 can also be realized by software programs. Specifically, as is shown in FIG. 2, the processing in the data management unit 20 can be realized by, for example, causing a host-side computer for controlling the hard disk to read, from a memory 30 such as a ROM, etc., an application program (a data management program having the same function as the data management apparatus 20 ) which describes a necessary procedure, and then causing a CPU 40 to execute the program.
  • a host-side computer for controlling the hard disk to read from a memory 30 such as a ROM, etc.
  • an application program a data management program having the same function as the data management apparatus 20
  • a subject which can supply the data management apparatus 20 with a request for reading or writing is arbitrarily provided.
  • a request may be issued directly from an external terminal which executes the program or via another program (process) executed by the same computer, or may be issued directly from the another program.
  • FIG. 3 shows the data management apparatus 20 of the embodiment.
  • the data management apparatus 20 of the first embodiment comprises a sector information management unit 21 , a data allocation information managing unit 22 , a data input/output control unit 23 and a data allocation determination unit 24 .
  • the sector information management unit 21 manages the state of use of each sector on the recording surface 16 of the recording medium 11 .
  • the methods of managing the state of use are as follows: (1) As is shown in FIG. 4, there is provided a method for enabling bit (setting 1) for a used sector S and disabling bit (setting 0) for a non-used sector S, using a bit map 17 having information corresponding to each sector S; and (2) As is shown in FIG. 5, there is provided a method for assigning an identifier to each sector S on the recording surface 16 , and managing each sector s being used, using a list (sector's state-of-use management list) 18 in which each sector S being used is denoted by a sector number (sector identifier).
  • the data management apparatus 20 will be further described, supposing that the above method (2) is employed.
  • the sector information management unit 21 accepts a request from the data allocation determination unit 24 and supplies information which includes “the number (ID) of a first non-used (vacant) sector” in a predetermined direction (a radial direction of the recording medium 11 ) from a reference position on the recording surface 16 (e.g., an outermost or innermost radial portion of the recording medium 11 ), and also includes “the number of currently non-used sectors”.
  • the number of an innermost or outermost non-used sector on the recording surface 16 is supplied.
  • the number of the non-used sector may be supplied, which is situated inwardly or outwardly closest to an intermediate position between innermost and outermost radial positions on the recording surface.
  • the number of an innermost non-used sector is supplied.
  • the data allocation information managing unit 22 manages data/sector information as to which sector of the recording surface 16 in the data recording apparatus 10 records which data item. For example, as shown in FIG. 6, a management method of holding a list showing a pair of a start sector number and an end sector number of sectors being used for each data block, may be adopted.
  • the data/sector information is updated by the data allocation determination unit 24 invoked when the data input/output control unit 23 has received a request for writing data. Further, the data/sector information is referred to when the data input/output control unit 23 has received a request for reading data.
  • the data input/output control unit 23 performs input/output processing in the data recording apparatus 10 , upon receiving a request for input/output of data.
  • the data input/output control unit 23 controls the data allocation determination unit 24 so as to request a sector list indicative of the position in which the data is to be placed.
  • the data input/output control unit 23 also controls the data recording control unit 13 so as to write the data into an appropriate sector.
  • the data allocation determination unit 24 is invoked by the data input/output control unit 23 so as to determine, based on an instruction from the data input/output control unit 23 , in which sector on the recording surface 16 a block of data should be stored, and to supply a determination result to the data input/output control unit 23 .
  • the data allocation determination unit 24 when the data allocation determination unit 24 has received data on the size of to-be-stored data from the data input/output control unit 23 , it refers to the information from the data allocation information managing unit 22 and the sector information management unit 21 , and supplies the data input/output control unit 23 with the sector list indicative of the order of sectors in which data blocks should be stored.
  • the sector list supplied from the data allocation determination unit 24 has a format showing sector numbers placed in the order in which sectors denoted by the sector numbers store respective data blocks, or a format showing each pair of “start sector number” and “end sector number” as shown in FIG. 7. If, however, the size of data is too large to store the data in the non-used sectors, the data allocation determination unit 24 returns a “recording impossible” answer.
  • Data to be read from and written into the recording surface 16 is transferred between the data recording apparatus 10 and an external terminal via the data input/output control unit 23 .
  • FIG. 8A illustrates the procedure performed when a request for writing data is issued from a terminal.
  • the data management apparatus 20 Upon receiving a request for writing data from the terminal (step S 101 ), the data management apparatus 20 refers to the size of the data, thereby creating allocation information which designates the range of allocation on the recording surface 16 of the data to be stored in units of a block (step S 102 ).
  • the data management apparatus 20 controls the data recording apparatus 10 in accordance with the created allocation information so as to sequentially place data blocks on the recording surface 16 (step S 103 ).
  • the data recording control unit 13 of the data recording apparatus 10 then places the data blocks based on the allocation information from the data management apparatus 20 (step S 104 ).
  • FIG. 8B illustrates the procedure performed when a request for reading data is issued from a terminal.
  • the data management apparatus 20 determines the position of the data stored in units of a block in the recording surface 16 (step S 152 ), thereby controlling the data recording apparatus 10 on the basis of the determined position so as to read the data from the recording surface 16 (step S 153 ).
  • the data management apparatus 20 then supplies the read data to the terminal where the request for reading the data has issued (step S 154 ).
  • the data input/output control unit 23 controls the data allocation determination unit 24 so as to create allocation information which designates the range of allocation on the recording surface 16 of the data to be stored in units of a block (step S 202 ).
  • the data input/output control unit 23 controls the data recording apparatus 10 in accordance with the created allocation information so as to sequentially place data blocks on the recording surface 16 (step S 204 ).
  • the data input/output control unit 23 supplies, in units of predetermined size, data to be stored and sector numbers designated by the sector list, to the data recording control unit 13 .
  • the data input/output control unit 23 supplies, in the order to be recorded, a data block and its “start sector number” and “end sector number” to the data recording control unit 13 .
  • FIGS. 10 to 14 illustrate the operation algorithm of the data allocation determination unit 24 .
  • the “block size” of each block which is a unit used at the time of storing data in a divided manner, and the “number of divided data”, which designates how many blocks the data is divided into, are used as parameters.
  • the data allocation determination unit 24 sets a “default block size” and the “default number of divided data” (step S 301 ) and calculates the “number of sectors between blocks of data to be stored” on the basis of a “disk capacity” and the “default number of divided data” (step S 302 ).
  • the data allocation determination unit 24 is kept in a waiting state until it is invoked by the data input/output control unit 23 (step S 303 ).
  • the data allocation determination unit 24 obtains the “number of non-used sectors” from the sector information management unit 21 , and thereby obtaining the “capacity of non-used region (disk capacity)” based on the “number of non-used sectors” (step S 304 ).
  • the data allocation determination unit 24 compares the “size of data to be stored” with the “non-used region capacity” (step S 305 ), and supplies, when the “size of data to be stored” is larger, the response indicating that the data cannot be stored (step S 390 ). Then, the procedure returns to the step S 303 .
  • the data allocation determination unit 24 obtains, from the data allocation information managing unit 22 , the number of an innermost non-used sector and the “number of contiguous non-used sectors” beginning from the innermost non-used sector (step S 306 ). The data allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the default block size” (step S 310 ), thereby setting the “block size” to the “default block size” when the “number of sectors of the default block size” is smaller (step S 312 ).
  • the data allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “number of contiguous non-used sectors” by the “sector size” (step S 311 ).
  • the “number of iterations” corresponds to the number of divided data required for storing targeted data.
  • the “data size” is n-times (n: an integer) as large as the “block size” (step S 314 )
  • the “number of iterations” corresponds to the number obtained in the step S 313 .
  • the data allocation determination unit 24 adds 1 to the “number of iterations” for storing the fragmentation (step S 315 ).
  • the data allocation determination unit 24 initializes the sector list to be supplied to the data input/output control unit 23 (step S 316 ), sets the “start sector number” to the number of an innermost non-used sector (step S 317 ), sets the “end sector number” to a number obtained by adding the “start sector number” to the “number of sectors of the block size” (step S 318 ), and sets the “size of remaining data” which is not yet stored) as the “size of data to be stored” (step S 319 ).
  • the data allocation determination unit 24 checks whether or not the “number of iterations” is 0 (step S 330 ). If it is not 0, the unit 24 adds the set “start sector number” and “end sector number” to the sector list (step S 331 ). By referring to this sector list, the data allocation determination unit 24 updates the information stored in the sector information management unit 21 (step S 332 ), updates the information stored in the data allocation information managing unit 22 (step S 333 ), and sets the “remaining data size” to a value obtained by subtracting the “block size” from a “present remaining data size” (step S 334 ).
  • the data allocation determination unit 24 determines whether or not the set “remaining data size” is equal to or lower than 0 (step S 335 ). If it is higher than 0, the data allocation determination unit 24 sets the “end sector number” to a number obtained by adding a “present end sector number” to the “number of sectors between data blocks to be stored” (step S 336 ). The data allocation determination unit 24 then compares the set “end sector number” with a “maximum sector number” in the disk (step S 337 ).
  • the data allocation determination unit 24 sets the “start sector number” to a number obtained by adding the “present start sector number” to the “number of sectors between data blocks to be stored” (step S 338 ), thereby subtracting 1 from the “number of iterations” (step S 355 ). The procedure then returns to the step S 330 .
  • the data allocation determination unit 24 again starts to store data from an innermost non-used sector.
  • the data allocation determination unit 24 obtains, from the data allocation information managing unit 22 , the number of an innermost non-used sector and the “number of contiguous non-used sectors” beginning from the innermost non-used sector (step S 350 ).
  • the data allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the block size” (step S 351 ).
  • the data allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “number of contiguous non-used sectors” by the “sector size” (step S 352 ), also sets the “start sector number” to the number of an innermost non-used sector (step S 353 ), sets the “end sector number” to a number obtained by adding the “start sector number” to the “number of sectors of the block size” (step S 354 ), and subtracting 1 from the “number of iterations” (step S 355 ). The procedure then returns to the step S 330 .
  • step S 330 If it is determined in the step S 330 that the “number of iterations” is 0, which means that all data pieces have been stored, the data allocation determination unit 24 supplies the sector list to the data input/output control unit 23 (step S 370 ). The procedure then returns to the step S 303 .
  • step S 335 If it is determined in the step S 335 that the “remaining data size” is equal to or lower than 0, which means that all data pieces have been stored, the data allocation determination unit 24 supplies the sector list to the data input/output control unit 23 (step S 370 ). The procedure then returns to the step S 303 .
  • the sector information management unit 21 Upon receiving a request from the data allocation determination unit 24 (step S 401 ), the sector information management unit 21 supplies information including the number of currently non-used sectors (step S 402 ). Thereafter, the sector information management unit 21 has its information including the currently non-used sectors updated by the data allocation determination unit 24 (step S 403 ). Then, the procedure then returns to the step S 401 , where the above-described processing is repeated.
  • the data allocation information managing unit 22 Upon receiving a request from the data allocation determination unit 24 (step S 501 ), the data allocation information managing unit 22 supplies to the data allocation determination unit 24 with the number of an innermost non-used sector on the recording surface 16 , and information including the number of sectors in a non-used region beginning from the innermost non-used sector (step S 502 ). Thereafter, the present information stored in the data allocation information managing unit 22 is updated by the data allocation determination unit 24 (step S 503 ). The procedure then returns to the step S 501 , where the above processing is repeated.
  • FIG. 17 shows a recording state of the recording surface 16 , in which a data group A is divided into eight blocks A 0 to A 7 and a data group B is divided into eight blocks B 0 to B 7 .
  • each data block is stored in the following manner:
  • the blocks A 0 to A 3 of the blocks A 0 to A 7 included in the data group A are discretely placed at regular intervals on the recording surface from an inner radial portion thereof to an outer radial portion thereof.
  • the remaining blocks A 4 to A 7 are also discretely placed at regular intervals on the recording surface from an inner radial portion thereof to an outer radial portion thereof, similar to the case of the blocks A 0 to A 3 .
  • the blocks of a data group B are placed in the same manner as those of the data group A.
  • the blocks B 0 to B 7 of the data group B are placed adjacent to the blocks A 0 to A 7 of the data group A, respectively.
  • the average seek time can be shortened by appropriately arranging data at the time of storing the same, thereby increasing the speed of reading and writing and hence enabling the data recording apparatus to be used at its maximum.
  • the algorithm employed in the data allocation determination unit 24 uses a manner for storing data on the recording surface 16 from an innermost sector to an outermost sector, data may be stored from an outermost sector to an innermost sector, or from a radially intermediate sector. In these cases, it suffices if the algorithm is modified to employ a manner for seeking a sector from an outer radial portion of the recording surface, or from an intermediate radial portion thereof.
  • FIG. 3 shows the structure of a data management apparatus 20 employed in the second embodiment.
  • the data management apparatus 20 of the second embodiment comprises a sector information management unit 21 , a data allocation information managing unit 22 , a data input/output control unit 23 and a data allocation determination unit 24 .
  • the sector information management unit 21 manages the state of use of each sector on the recording surface 16 of the recording medium 11 .
  • the methods of managing the state of use are as follows: (1) As is shown in FIG. 4, there is provided a method for enabling bit (setting 1) for a used sector S and disabling bit (setting 0) for a non-used sector S, using a bit map 17 having information corresponding to each sector S; and (2) As is shown in FIG. 5, there is provided a method for assigning an identifier to each sector S on the recording surface 16 , and managing each sector s being used, using a list (sector's state-of-use management list) 18 in which each sector S being used is denoted by a sector number (sector identifier).
  • the data management apparatus 20 will be further described, supposing that the above method (2) is employed.
  • the sector information management unit 21 is responsive to a request from the data allocation determination unit 24 for supplying information which includes “the number (ID) of a first non-used (vacant) sector” in a predetermined direction (a radial direction of the recording medium 11 ) from a reference position on the recording surface 16 (e.g., an outermost or innermost radial portion of the recording medium 11 ), and also includes “the number of currently non-used sectors”.
  • the number of an innermost or outermost non-used sector on the recording surface 16 is supplied.
  • the number of the non-used sector may be supplied, which is situated inwardly or outwardly closest to an intermediate position between innermost and outermost radial positions on the recording surface.
  • the number of the inner non-used sector may be supplied, which is situated within a partition with a predetermined number (which means each divisional region on the recording surface hereinafter referred to).
  • a predetermined number which means each divisional region on the recording surface hereinafter referred to.
  • the data allocation information managing unit 22 manages data/sector information as to which sector of the recording surface 16 in the data recording apparatus 10 records which data item. For example, as shown in FIG. 6, a management method of holding a list showing a pair of a start sector number and an end sector number of sectors being used for each data block, may be adopted.
  • the data/sector information is updated by the data allocation determination unit 24 invoked when the data input/output control unit 23 has received a request for writing data. Further, the data/sector information is referred to when the data input/output control unit 23 has received a request for reading data.
  • the data input/output control unit 23 performs input/output processing in the data recording apparatus 10 , upon receiving a request for input/output of data.
  • the data input/output control unit 23 controls the data allocation determination unit 24 so as to request a sector list indicative of the position in which the data is to be placed.
  • the data input/output control unit 23 also controls the data recording control unit 13 so as to write the data into an appropriate sector.
  • the data allocation determination unit 24 is invoked by the data input/output control unit 23 so as to determine, based on an instruction from the data input/output control unit 23 , in which sector on the recording surface 16 a block of data should be stored, and to supply a determination result to the data input/output control unit 23 .
  • the data allocation determination unit 24 when the data allocation determination unit 24 has received data on the size of to-be-stored data from the data input/output control unit 23 , it refers to the information from the data allocation information managing unit 22 and the sector information management unit 21 , and supplies the data input/output control unit 23 with the sector list indicative of the order of sectors in which data blocks should be stored.
  • the sector list supplied from the data allocation determination unit 24 has a format showing sector numbers placed in the order in which sectors denoted by the sector numbers store respective data blocks, or a format showing each pair of “start sector number” and “end sector number” as shown in FIG. 7. If, however, the size of data is too large to store the data in the non-used sectors, the data allocation determination unit 24 returns a “recording impossible” answer.
  • the data allocation determination unit 24 holds a conversion table for obtaining each divided recording surface portion and the “block size” of data which can be stored therein on the basis of information about “reading speed” or “writing speed” corresponding to a position on the recording surface 16 .
  • FIG. 18 shows an example of the conversion table, in which the “number of divided portions” is n. Each divided recording surface portion is hereinafter referred to as a “partition”. The procedure using the conversion table will be described later.
  • the conversion table can be obtained by calculation based on the specifications of the disk and a predetermined “block size”. For example, suppose that innermost and outermost radial portions of the recording surface 16 are accessed at a slowest reading/writing speed Vmin and a fastest reading/writing speed Vmax, respectively. Further, suppose that the “number of divided portions” is N and the “block size” of the innermost radial portion is B. Then, the block size Bk of a partition K (an innermost radial partition K is 0) is given by
  • the algorithm used to store data can be simplified if the recording surface is divided into partitions such that the number of data blocks which can be stored in a partition is equal to that of data blocks which can be stored in any other partition.
  • data to be read or written is transferred between the data recording apparatus 10 and an external terminal via the data input/output control unit 23 .
  • the conversion table is prepared by determining the “block size” on the basis of the “number of divided portions” and the reading/writing speed, such that the number of data blocks which can be stored in a partition is equal to that of data blocks which can be stored in any other partition.
  • inner and outer radial portions of the recording surface 16 are accessed at a slower reading/writing speed and a faster reading/writing speed, respectively.
  • the accessible number of sectors on outer radial portions in a unit time becomes larger than those on inner radial portions, because the number of sectors on outer radial portions is larger than that on inner radial portions.
  • a “block size” and the “number of divided portions (i.e., the number of partitions)” as references are set (step S 801 ), and a conversion table showing a “block size” and a “interval between blocks of data to be stored” in each partition is prepared on the basis of the capacity of the disk, the reading/writing speed values thereof, the “block size” and the “number of partitions” as references (step S 802 ).
  • the-data allocation determination unit 24 obtains, from the data allocation information managing unit 22 , the number of an innermost non-used sector (step S 810 ), thereby setting the obtained number to the “start sector number” (step S 812 ).
  • the data allocation determination unit 24 initializes the sector list (step S 816 ), and sets the “size of remaining data” to the “size of data to be stored” (step S 814 ).
  • the data allocation determination unit 24 checks whether or not the “size of remaining data” is equal to or less than 0 (step S 830 ). If it is not equal to or less than 0, the unit 24 obtains, from the data allocation information managing unit 22 , the “number of contiguous non-used sectors” beginning from the “start sector number” (step S 831 ), and obtains, using the conversion table, a “partition” including the start sector, the “block size” and the “number of sectors between data blocks to be stored” (step S 832 ).
  • the data allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the block size” (step S 850 ). If the “number of contiguous non-used sectors” is smaller than the “number of sectors of the block size”, the data allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “sector size” by the “number of contiguous non-used sectors” (step S 851 ).
  • the data allocation determination unit 24 updates the information stored in the sector information management unit 21 (step S 854 ), updates the information stored in the data allocation information managing unit 22 (step S 855 ), and sets the “size of remaining data” to a value obtained by subtracting the “block size” from the “size of currently remaining data” (step S 856 ).
  • the data allocation determination unit 24 checks whether or not the start sector is included in an outermost radial partition (step S 870 ). If it is included in the partition, the unit 24 obtains the number of an innermost non-used sector from the data allocation information managing unit 22 (step S 871 ), and sets the obtained number to the “start sector number” (step S 872 ), thereby returning to the processing in the step S 830 .
  • the data allocation determination unit 24 sets the “start sector number” to a number obtained by adding a “present start sector number” to the “number of sectors between blocks of data to be stored” (step S 873 ), thereby returning to the processing in the step S 830 .
  • step S 830 If it is determined in the step S 830 that the “size of remaining data” is less than 1, the data allocation determination unit 24 transfers the sector list to the data input/output control unit 23 (step S 886 ), thereby returning to the processing in the step S 803 .
  • the data input/output control unit 23 supplied with the sector list from the data allocation determination unit 24 causes the data recording control unit 13 of the data recording apparatus 10 to store the to-be-stored data in sectors designated in the sector list.
  • a partition number corresponding to the number of the sector is obtained with reference to the conversion table (step S 901 ). For example, if the start sector number is “n1+1”, a corresponding partition number is “2”. Thereafter, the block size set for the partition which includes the above sector is obtained referring to the conversion table (step S 902 ). In this case, the block size corresponding to the start sector number “n1+1” is “b2”. Further, the “number of sectors between data blocks of data to be stored”, which will be used in a later process, is obtained (step S 903 ). In this case, the number of the sectors is “N2”.
  • FIG. 23 shows a recording state of the recording surface 16 , in which a data group A is divided into eight blocks A 0 to A 7 and a data group B is divided into eight blocks B 0 to B 7 .
  • each block of data is stored in the following manner:
  • the blocks A 0 to A 3 of the blocks A 0 to A 7 included in the data group A are discretely placed at regular intervals (in units of a partition) on the recording surface from an inner radial portion thereof to an outer radial portion thereof.
  • the remaining blocks A 4 to A 7 are also discretely placed at regular intervals (in units of a partition) on the recording surface from an inner radial portion thereof to an outer radial portion thereof, similar to the case of the blocks A 0 to A 3 .
  • the blocks of the data group B are placed in the same manner as those of the data group A.
  • the blocks B 0 to B 7 of the data group B are placed adjacent to the blocks A 0 to A 7 of the data group A, respectively.
  • the average seek time can be shortened by appropriately arranging data at the time of storing the same, thereby increasing the speed of reading/writing and making constant the time required for reading/writing.
  • the data recording apparatus can be used at its maximum.
  • the algorithm employed in the data allocation determination unit uses a manner for storing data on the recording surface from an innermost sector to an outermost sector, data may be stored from an outermost sector to an innermost sector, or from a radially intermediate sector. In these cases, it suffices if the algorithm is modified to employ a manner for seeking a sector from an outer radial portion of the recording surface, or from an intermediate radial portion thereof.
  • the first and second embodiments employ a procedure (an algorithm used in the data allocation determination unit) for successively determining the position of each of the data items. For example, in the FIG. 17 or 23 case, the allocation of the data group A is determined first, and then that of the data group B is determined. This allocation procedure can be modified such that the positions of the series of data items are simultaneously determined.
  • a single data recording apparatus 10 is connected to the data management apparatus 20
  • a plurality of data recording apparatuses 20 can be connected to the same as shown in FIG. 24.
  • the sector information management unit 21 , the data allocation information managing unit 22 and the data allocation determination unit 24 are adapted to manage information necessary for each data recording apparatus 10
  • the data input/output control unit 23 is adapted to perform input/output control of a corresponding one of the data recording apparatuses 10 .
  • the first and second embodiments are applicable to a data server apparatus for providing a series of data items, such as a video server apparatus for use in a video-on-demand (VOD) system.
  • a data server apparatus for providing a series of data items
  • VOD video-on-demand
  • FIG. 25 shows an example of a video server to which the first and second embodiment are applicable.
  • the video server receives, at an arbitrary time, a request from an arbitrary terminal for supplying video data thereto, reads the requested data from a data recording apparatus employed therein and storing a series of video data items such as movie data, etc., and simultaneously and sequentially supplies the terminal with the read data in real time.
  • a request for accessing video data issued from a user or an application program, etc. is supplied via inter-process communication, network communication, etc.
  • This request for access is transferred from a communication controller 706 to a central controller 710 via a bus 720 .
  • the central controller 710 controls a necessary one of data recording controllers 704 so as to read the requested video data.
  • the data recording controller 704 reads the video data from a corresponding one of data recording units 702 , and writes the read data into a buffer memory 708 .
  • the central controller 710 controls the communication controller 706 so as to send the video data in the buffer memory 708 .
  • the communication controller 706 sends the video data to a terminal where the request for access has issued.
  • the central controller 710 is constituted of e.g. a CPU which executes a program describing a control procedure.
  • the data recording controller 704 receives a request for writing and data to be written, and causes a predetermined one of the data recording units 702 to record the data.
  • the data allocation apparatus 20 may be provided in the central controller 710 .
  • FIG. 25 merely shows an example of the structure of the data server apparatus.
  • the present invention is applicable to data server apparatuses of various structures. In other words, the present invention is applicable not only to a video server apparatus which handles video data, but also to another type of server apparatus which handles groups of data items.
  • the present invention can realize a constant throughput and a minimum average seek time by storing a data block of a large size in a region in which the reading/writing speed is high, and storing a data block of a small size in a region in which the reading/writing speed is low. Therefore, the data recording apparatus according to the invention can be used at its maximum.

Abstract

A data allocation control method is applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium. In this method, data to be recorded on the recording surface is divided into a plurality of data blocks to be consecutively dealt with. Next, allocation information for designating each location of the plurality of data blocks is generated such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block.

Description

    BACKGROUND OF THE INVENTION
  • The present invention relates to a data allocation method applicable to a data storage apparatus equipped with a single or a plurality of rotary recording surfaces and heads for writing and reading data into and from the recording surfaces, also to a recording medium with data stored by the method, and to a data server apparatus for reading data stored in the data storage apparatus and transferring the read data to a terminal where a request for reading the data has issued. [0001]
  • Data recording apparatus includes magnetic tapes, magnetic disks, optical magnetic disks, etc. Magnetic disks, which are randomly accessible devices are advantageous in that they can be accessed at a higher speed than magnetic tapes, although the former are more expensive and have a smaller storage capacity than the latter. [0002]
  • The magnetic disk which has formally had a smaller storage capacity is advanced to have a larger storage capacity with low price by the development of recent technology, thereby its cost performance is improved to a grade in which a large amount of data in the form of, for example, moving picture can be stored. In addition, to the increase of the disk capacity, the band width of the network has been improved. These circumstances have enabled new services such as “video on demand”. [0003]
  • Taking the “video on demand” service as an example, the operation of a data recording apparatus and a data allocation method employed therein will be explained. [0004]
  • In a service, such as the “video on demand”, for distributing large amount of data of plural types to large number of users, data stored in data recording apparatuses like magnetic disks must be read at high speed within a predetermined time period. The rotary type data recording apparatus includes a magnetic disk, a magneto-optical disk (MO), or an optical disk, for example. In general, in a rotary type data recording apparatus, during a reading or writing process, a seek operation of moving the head to the target sector of the recording surface which records data to be read or written is performed, and a rotation waiting operation of waiting until the target sector of the recording surface is positioned just below the head is performed. After these process, data reading or writing is executed. Therefore, to read the data at high speed, the time required for the seek operation and the rotation waiting operation must be shortened. [0005]
  • In the conventional data recording apparatus, in case of allocating a series of data items (e.g., video data, audio data, text data, still picture, program data, etc.), which are written in a continuous memory area. With this data allocation, when the plural different types of video data items in the data recording apparatus are simultaneously and sequentially read in a time division manner, the inner radial portion and the outer radial portion of the data recording apparatus are alternately accessed if some video data items are stored together in an inner radial portion of the data recording apparatus and other video data items are stored together in an outer radial portion thereof. Consequently, there is a problem that a situation where the distance for seeking target sectors continuously increases and therefore the entire time for the data access inevitably increases. [0006]
  • The above problems in the conventional art are summarized as follows. In the conventional apparatus, when a series of data items are allocated, these are written in a continuous area. Accordingly, when the plural different types of video data items in the data recording apparatus are simultaneously and sequentially read in a time division manner, there occurs a situation where the distance for seeking target sectors continuously increases and therefore the entire time for the data access inevitably increases if the video data items are separately stored in an inner radial portion of the data recording apparatus and in an outer radial portion thereof. [0007]
  • BRIEF SUMMARY OF THE INVENTION
  • Accordingly, it is an object of the present invention to provide a data allocation method, a recording medium with data recorded by the method, and a data server apparatus for avoiding a succession of a situation where the distance for seeking target sectors continuously increases, thereby reducing the required average seek time and increasing the speed of reading and/or writing data. [0008]
  • According to one aspect of the present invention, there is provided a data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block. [0009]
  • According to another aspect of the present invention, there is provided a data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating size information for designating the size of each data block, such that the data block to be located in a region where access speed is higher has a large size and the data block to be located in a region where the access speed is lower has a small size. [0010]
  • According to another aspect of the present invention, there is provided a disciform recording medium applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of the recording medium, data allocation for the recording medium comprising the steps of: dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block. [0011]
  • According to another aspect of the present invention, there is provided a data server apparatus applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the data server apparatus comprising: means for dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; means for generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block; means for controlling the data recording apparatus to place each data block in accordance with the allocation information; and means, responsive to a request for reading data, for reading data blocks from the recording surface and transferring data comprised of the read data blocks to a terminal where the request has issued. [0012]
  • Additional objects and advantages of the present invention will be set forth in the description which follows, and in part will be obvious from the description, or may be learned by practice of the present invention. The objects and advantages of the present invention may be realized and obtained by means of the instrumentalities and combinations particularly pointed out in the appended claims. [0013]
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWING
  • The accompanying drawings, which are incorporated in and constitute a part of the specification, illustrate presently preferred embodiments of the present invention and, together with the general description given above and the detailed description of the preferred embodiments given below, serve to explain the principles of the present invention in which: [0014]
  • FIG. 1 is a diagram, showing a basic structure of a data recording apparatus according to each embodiment of the invention; [0015]
  • FIG. 2 is a block diagram, showing a modification of the basic structure of the data management apparatus; [0016]
  • FIG. 3 is a view, showing a structure of a data management apparatus; [0017]
  • FIG. 4 is a view, illustrating a method for managing the state of use of each sector; [0018]
  • FIG. 5 is a view, illustrating another method for managing the state of use of each sector; [0019]
  • FIG. 6 is a view, showing a format of data/sector information to be managed by a data allocation information managing unit; [0020]
  • FIG. 7 is a view, showing a format of a sector list to be supplied from a data allocation determination unit; [0021]
  • FIGS. 8A and 8B show flowcharts, useful in explaining the basic operation of a data recording apparatus; [0022]
  • FIG. 9 is a flowchart, illustrating an operation of a data input/output control unit; [0023]
  • FIG. 10 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0024]
  • FIG. 11 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0025]
  • FIG. 12 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0026]
  • FIG. 13 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0027]
  • FIG. 14 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0028]
  • FIG. 15 is a flowchart, illustrating an operation of a sector information management unit; [0029]
  • FIG. 16 is a flowchart, illustrating an operation of a data allocation information managing unit; [0030]
  • FIG. 17 is a view, showing an allocation of data recorded on a recording surface; [0031]
  • FIG. 18 is a format of a conversion table stored in the data allocation determination unit in which sector numbers, block sizes, and the numbers of sectors between data blocks; [0032]
  • FIG. 19 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0033]
  • FIG. 20 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0034]
  • FIG. 21 is a flowchart, illustrating part of an operation of the data allocation determination unit; [0035]
  • FIG. 22 is a flowchart, illustrating processing performed by the data allocation determination unit using the conversion table; [0036]
  • FIG. 23 is a view, showing an allocation of data recorded on the recording surface; [0037]
  • FIG. 24 is another basic structure of the data recording apparatus according to the embodiments of the invention; and [0038]
  • FIG. 25 is a view, showing a video server apparatus to which the invention is applied. [0039]
  • DETAILED DESCRIPTION OF THE INVENTION
  • The embodiments of the invention will be described with reference to the accompanying drawings. [0040]
  • (First Embodiment) [0041]
  • FIG. 1 shows a basic structure of a data recording apparatus according to the first embodiment of the invention. [0042]
  • This data recording apparatus of the first embodiment is equipped with a [0043] data recording apparatus 10 including a number n (n: an integer not less than 1) of disciform recording media 11, heads 12 for data-reading/writing, which is provided for each recording surface 16 of the disciform recording media 11, and a data recording control unit 13 for controlling to position the heads 12 and controlling data writing/reading. The data recording apparatus is also equipped with a data management apparatus 20 for managing data recorded on the recording surfaces 16 of the data recording apparatus 10 and instructing data recording in the recording surfaces 16.
  • The [0044] data recording apparatus 10 has functions for positioning a head 12 by rotating a disciform recording medium 11 and by moving the head 12 in a radial direction of the recording medium 11, and writing and/or reading data to/from a recording surface to which the head 12 is positioned.
  • The [0045] disciform recording medium 11 of the data recording apparatus 10 are provided for recording data. Data recording apparatuses which are applicable to this embodiment include a magnetic disk, an optical disk, a magneto-optical disk, a phase-variable optical disk, a CD-ROM, a CD-R, etc. In the magnetic disk, for example, a metallic disk coated with a magnetic materal is used as the disciform recording medium 11. The recording surface 16 of the disciform recording medium 11 is divided into small areas, each of which is called a “sector”. Reading or writing data is performed in units of a sector.
  • There is a case where only a single disciform recording medium is employed, and a case where a plurality of [0046] disciform recording media 11 are employed. Moreover, there is a case where only a single side of the disciform recording medium 11 is used as a recording surface 16, and a case where both sides are used as recording surfaces 16. In the FIG. 1 case, there is provided only a single disciform recording medium 11, and only one side thereof is used as a recording surface 16.
  • Each [0047] head 12 is used to read and/or write data from/to the recording surface 16 of the disciform recording medium 11. Usually, a number of heads 12 corresponding to the number of recording surfaces 16 are employed. In addition, there is a case where a single head is used to both read and write data, and a case where there are provided heads dedicated to data writing and to data reading, respectively.
  • The data [0048] recording control unit 13 has a function for controlling the rotation speed of the disciform recording medium 11 (i.e., the recording surface 16), controlling the positioning of the head 12, and controlling the head 12 so as to read/write data, and also has a function for reading and writing data from/to a particular sector.
  • The data [0049] recording control unit 13 positions the head 12 to each of the locations designated by information supplied from the data management apparatus 20 when being controlled by the data management apparatus 20.
  • The [0050] data recording apparatus 10 including the disciform recording medium 11, the head 12 and the data recording control unit 13 corresponds to, for example, a hard disk device.
  • On the other hand, the [0051] data management apparatus 20 manages the state of use of each sector on the recording surface 16 of the data recording apparatus 10, the type of data, and required reading/writing speed. Further, upon receiving a request for writing data, the apparatus 20 supplies the data recording control unit 13 with an instruction to write data into an appropriate sector. Upon receiving a request for reading data, the apparatus 20 supplies the data recording control unit 13 with an instruction to read data from a sector storing the data.
  • The functions of the [0052] data management unit 20 can also be realized by software programs. Specifically, as is shown in FIG. 2, the processing in the data management unit 20 can be realized by, for example, causing a host-side computer for controlling the hard disk to read, from a memory 30 such as a ROM, etc., an application program (a data management program having the same function as the data management apparatus 20) which describes a necessary procedure, and then causing a CPU 40 to execute the program.
  • Furthermore, a subject which can supply the [0053] data management apparatus 20 with a request for reading or writing is arbitrarily provided. For example, to realize the data management apparatus 20 by a software program, a request may be issued directly from an external terminal which executes the program or via another program (process) executed by the same computer, or may be issued directly from the another program.
  • A more detailed structure of the [0054] data management apparatus 20 will now be described.
  • FIG. 3 shows the [0055] data management apparatus 20 of the embodiment.
  • The [0056] data management apparatus 20 of the first embodiment comprises a sector information management unit 21, a data allocation information managing unit 22, a data input/output control unit 23 and a data allocation determination unit 24.
  • The sector [0057] information management unit 21 manages the state of use of each sector on the recording surface 16 of the recording medium 11. The methods of managing the state of use are as follows: (1) As is shown in FIG. 4, there is provided a method for enabling bit (setting 1) for a used sector S and disabling bit (setting 0) for a non-used sector S, using a bit map 17 having information corresponding to each sector S; and (2) As is shown in FIG. 5, there is provided a method for assigning an identifier to each sector S on the recording surface 16, and managing each sector s being used, using a list (sector's state-of-use management list) 18 in which each sector S being used is denoted by a sector number (sector identifier). The data management apparatus 20 will be further described, supposing that the above method (2) is employed.
  • The sector [0058] information management unit 21 accepts a request from the data allocation determination unit 24 and supplies information which includes “the number (ID) of a first non-used (vacant) sector” in a predetermined direction (a radial direction of the recording medium 11) from a reference position on the recording surface 16 (e.g., an outermost or innermost radial portion of the recording medium 11), and also includes “the number of currently non-used sectors”. In this case, concerning the non-used sector number, the number of an innermost or outermost non-used sector on the recording surface 16 is supplied. Alternatively, the number of the non-used sector may be supplied, which is situated inwardly or outwardly closest to an intermediate position between innermost and outermost radial positions on the recording surface. Hereinbelow, suppose that the number of an innermost non-used sector is supplied.
  • The data allocation [0059] information managing unit 22 manages data/sector information as to which sector of the recording surface 16 in the data recording apparatus 10 records which data item. For example, as shown in FIG. 6, a management method of holding a list showing a pair of a start sector number and an end sector number of sectors being used for each data block, may be adopted.
  • The data/sector information is updated by the data [0060] allocation determination unit 24 invoked when the data input/output control unit 23 has received a request for writing data. Further, the data/sector information is referred to when the data input/output control unit 23 has received a request for reading data.
  • The data input/[0061] output control unit 23 performs input/output processing in the data recording apparatus 10, upon receiving a request for input/output of data. When receiving a request for writing data (a request for inputting data), the data input/output control unit 23 controls the data allocation determination unit 24 so as to request a sector list indicative of the position in which the data is to be placed. The data input/output control unit 23 also controls the data recording control unit 13 so as to write the data into an appropriate sector.
  • The data [0062] allocation determination unit 24 is invoked by the data input/output control unit 23 so as to determine, based on an instruction from the data input/output control unit 23, in which sector on the recording surface 16 a block of data should be stored, and to supply a determination result to the data input/output control unit 23. In other words, when the data allocation determination unit 24 has received data on the size of to-be-stored data from the data input/output control unit 23, it refers to the information from the data allocation information managing unit 22 and the sector information management unit 21, and supplies the data input/output control unit 23 with the sector list indicative of the order of sectors in which data blocks should be stored.
  • The sector list supplied from the data [0063] allocation determination unit 24 has a format showing sector numbers placed in the order in which sectors denoted by the sector numbers store respective data blocks, or a format showing each pair of “start sector number” and “end sector number” as shown in FIG. 7. If, however, the size of data is too large to store the data in the non-used sectors, the data allocation determination unit 24 returns a “recording impossible” answer.
  • Data to be read from and written into the [0064] recording surface 16 is transferred between the data recording apparatus 10 and an external terminal via the data input/output control unit 23.
  • Referring then to the flowcharts of FIGS. 8A and 8B, the basic operation of the entire data recording apparatus will be described. [0065]
  • FIG. 8A illustrates the procedure performed when a request for writing data is issued from a terminal. Upon receiving a request for writing data from the terminal (step S[0066] 101), the data management apparatus 20 refers to the size of the data, thereby creating allocation information which designates the range of allocation on the recording surface 16 of the data to be stored in units of a block (step S102). The data management apparatus 20 then controls the data recording apparatus 10 in accordance with the created allocation information so as to sequentially place data blocks on the recording surface 16 (step S103). The data recording control unit 13 of the data recording apparatus 10 then places the data blocks based on the allocation information from the data management apparatus 20 (step S104).
  • FIG. 8B illustrates the procedure performed when a request for reading data is issued from a terminal. Upon receiving a request for reading data form the terminal (step S[0067] 151), the data management apparatus 20 determines the position of the data stored in units of a block in the recording surface 16 (step S152), thereby controlling the data recording apparatus 10 on the basis of the determined position so as to read the data from the recording surface 16 (step S153). The data management apparatus 20 then supplies the read data to the terminal where the request for reading the data has issued (step S154).
  • The operation of each structural element in the [0068] data management apparatus 20, which is performed when a request for writing data has been issued from a terminal, will be described in detail.
  • Referring first to FIG. 9, the operation of the data input/[0069] output control unit 23 will be described.
  • Upon receiving a request for writing data from a terminal (step S[0070] 201), the data input/output control unit 23 controls the data allocation determination unit 24 so as to create allocation information which designates the range of allocation on the recording surface 16 of the data to be stored in units of a block (step S202). Upon receiving the allocation information from the data allocation determination unit 24 (step S203), the data input/output control unit 23 controls the data recording apparatus 10 in accordance with the created allocation information so as to sequentially place data blocks on the recording surface 16 (step S204). At this time, the data input/output control unit 23 supplies, in units of predetermined size, data to be stored and sector numbers designated by the sector list, to the data recording control unit 13. For example, the data input/output control unit 23 supplies, in the order to be recorded, a data block and its “start sector number” and “end sector number” to the data recording control unit 13.
  • FIGS. [0071] 10 to 14 illustrate the operation algorithm of the data allocation determination unit 24.
  • To determine the allocation of data, the “block size” of each block, which is a unit used at the time of storing data in a divided manner, and the “number of divided data”, which designates how many blocks the data is divided into, are used as parameters. [0072]
  • As an initialization procedure, the data [0073] allocation determination unit 24 sets a “default block size” and the “default number of divided data” (step S301) and calculates the “number of sectors between blocks of data to be stored” on the basis of a “disk capacity” and the “default number of divided data” (step S302).
  • After the initialization procedure, the data [0074] allocation determination unit 24 is kept in a waiting state until it is invoked by the data input/output control unit 23 (step S303). When invoked, the data allocation determination unit 24 obtains the “number of non-used sectors” from the sector information management unit 21, and thereby obtaining the “capacity of non-used region (disk capacity)” based on the “number of non-used sectors” (step S304). The data allocation determination unit 24 compares the “size of data to be stored” with the “non-used region capacity” (step S305), and supplies, when the “size of data to be stored” is larger, the response indicating that the data cannot be stored (step S390). Then, the procedure returns to the step S303.
  • If it is determined in the step S[0075] 305 that the “capacity of non-used region” is larger, which indicates that the data can be stored, the data allocation determination unit 24 obtains, from the data allocation information managing unit 22, the number of an innermost non-used sector and the “number of contiguous non-used sectors” beginning from the innermost non-used sector (step S306). The data allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the default block size” (step S310), thereby setting the “block size” to the “default block size” when the “number of sectors of the default block size” is smaller (step S312).
  • If, on the other hand, the “number of sectors of the default block size” is larger, the entire region of the non-used sectors corresponds to a fragmentation, and data of the “default block size” cannot be stored in the non-used sectors. To enable data of one block to be stored in the non-used sectors, the data [0076] allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “number of contiguous non-used sectors” by the “sector size” (step S311).
  • After the step S[0077] 311 or the step S312, the data allocation determination unit 24 calculates the “number of iterations” (=“data size” /“block size”)(step S313).
  • The “number of iterations” corresponds to the number of divided data required for storing targeted data. [0078]
  • If the “data size” is n-times (n: an integer) as large as the “block size” (step S[0079] 314), the “number of iterations” corresponds to the number obtained in the step S313. On the other hand, if the “data size” is not n-times (n: an integer) as large as the “block size”, which means that a fragmentation is included, the data allocation determination unit 24 adds 1 to the “number of iterations” for storing the fragmentation (step S315).
  • Subsequently, the data [0080] allocation determination unit 24 initializes the sector list to be supplied to the data input/output control unit 23 (step S316), sets the “start sector number” to the number of an innermost non-used sector (step S317), sets the “end sector number” to a number obtained by adding the “start sector number” to the “number of sectors of the block size” (step S318), and sets the “size of remaining data” which is not yet stored) as the “size of data to be stored” (step S319).
  • Thereafter, the data [0081] allocation determination unit 24 checks whether or not the “number of iterations” is 0 (step S330). If it is not 0, the unit 24 adds the set “start sector number” and “end sector number” to the sector list (step S331). By referring to this sector list, the data allocation determination unit 24 updates the information stored in the sector information management unit 21 (step S332), updates the information stored in the data allocation information managing unit 22 (step S333), and sets the “remaining data size” to a value obtained by subtracting the “block size” from a “present remaining data size” (step S334).
  • At this time, the data [0082] allocation determination unit 24 determines whether or not the set “remaining data size” is equal to or lower than 0 (step S335). If it is higher than 0, the data allocation determination unit 24 sets the “end sector number” to a number obtained by adding a “present end sector number” to the “number of sectors between data blocks to be stored” (step S336). The data allocation determination unit 24 then compares the set “end sector number” with a “maximum sector number” in the disk (step S337). If the “end sector number” is smaller than the “maximum sector number”, which means that more data can be stored, the data allocation determination unit 24 sets the “start sector number” to a number obtained by adding the “present start sector number” to the “number of sectors between data blocks to be stored” (step S338), thereby subtracting 1 from the “number of iterations” (step S355). The procedure then returns to the step S330.
  • If it is determined in the step S[0083] 337 that the “end sector number” is larger than the “maximum sector number”, which means that data has been stored in the outermost sector, the data allocation determination unit 24 again starts to store data from an innermost non-used sector. The data allocation determination unit 24 obtains, from the data allocation information managing unit 22, the number of an innermost non-used sector and the “number of contiguous non-used sectors” beginning from the innermost non-used sector (step S350). The data allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the block size” (step S351). If the “number of contiguous non-used sectors” is smaller than the “number of sectors of the block size”, the entire region of non-used sectors corresponds to a fragmentation, which means that data of the “default block size” cannot be stored therein. To enable data of one block to be stored in the non-used sectors, the data allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “number of contiguous non-used sectors” by the “sector size” (step S352), also sets the “start sector number” to the number of an innermost non-used sector (step S353), sets the “end sector number” to a number obtained by adding the “start sector number” to the “number of sectors of the block size” (step S354), and subtracting 1 from the “number of iterations” (step S355). The procedure then returns to the step S330.
  • If it is determined in the step S[0084] 330 that the “number of iterations” is 0, which means that all data pieces have been stored, the data allocation determination unit 24 supplies the sector list to the data input/output control unit 23 (step S370). The procedure then returns to the step S303.
  • If it is determined in the step S[0085] 335 that the “remaining data size” is equal to or lower than 0, which means that all data pieces have been stored, the data allocation determination unit 24 supplies the sector list to the data input/output control unit 23 (step S370). The procedure then returns to the step S303.
  • The above-described operation is performed by the data [0086] allocation determination unit 24 incorporated in the data management apparatus 20.
  • Referring then to FIG. 15, the operation of the sector [0087] information management unit 21 will be described.
  • Upon receiving a request from the data allocation determination unit [0088] 24 (step S401), the sector information management unit 21 supplies information including the number of currently non-used sectors (step S402). Thereafter, the sector information management unit 21 has its information including the currently non-used sectors updated by the data allocation determination unit 24 (step S403). Then, the procedure then returns to the step S401, where the above-described processing is repeated.
  • Referring to FIG. 16, the operation of the data allocation [0089] information managing unit 22 will be described.
  • Upon receiving a request from the data allocation determination unit [0090] 24 (step S501), the data allocation information managing unit 22 supplies to the data allocation determination unit 24 with the number of an innermost non-used sector on the recording surface 16, and information including the number of sectors in a non-used region beginning from the innermost non-used sector (step S502). Thereafter, the present information stored in the data allocation information managing unit 22 is updated by the data allocation determination unit 24 (step S503). The procedure then returns to the step S501, where the above processing is repeated.
  • FIG. 17 shows a recording state of the [0091] recording surface 16, in which a data group A is divided into eight blocks A0 to A7 and a data group B is divided into eight blocks B0 to B7.
  • In this example, each data block is stored in the following manner: [0092]
  • First, the blocks A[0093] 0 to A3 of the blocks A0 to A7 included in the data group A are discretely placed at regular intervals on the recording surface from an inner radial portion thereof to an outer radial portion thereof. When the last block A3 has been placed on an outermost radial portion of the disk, the remaining blocks A4 to A7 are also discretely placed at regular intervals on the recording surface from an inner radial portion thereof to an outer radial portion thereof, similar to the case of the blocks A0 to A3.
  • After the blocks of the data group A are placed, the blocks of a data group B are placed in the same manner as those of the data group A. In the FIG. 17 case, the blocks B[0094] 0 to B7 of the data group B are placed adjacent to the blocks A0 to A7 of the data group A, respectively.
  • The case of employing a plurality of recording surfaces can be similarly dealt with to the case of employing a single recording surface is made for each recording surface in a case where it is monitored from outside. [0095]
  • Since in FIG. 17, the entire blocks of each of the data groups A and B are stored in dispersed regions and not in a contiguous region, the amount of movement of the head can be minimized and the required average seek time can be reduced, even when a request for simultaneously reading the data groups A and B has been issued and hence even when, for example, these data groups are alternately read in units of a block. [0096]
  • As described above, in the first embodiment of the invention, the average seek time can be shortened by appropriately arranging data at the time of storing the same, thereby increasing the speed of reading and writing and hence enabling the data recording apparatus to be used at its maximum. [0097]
  • Further, although the algorithm employed in the data [0098] allocation determination unit 24 uses a manner for storing data on the recording surface 16 from an innermost sector to an outermost sector, data may be stored from an outermost sector to an innermost sector, or from a radially intermediate sector. In these cases, it suffices if the algorithm is modified to employ a manner for seeking a sector from an outer radial portion of the recording surface, or from an intermediate radial portion thereof.
  • (Second Embodiment) [0099]
  • A data recording apparatus according to a second embodiment of the invention will now be described. [0100]
  • Since the basic structure of the system of the second embodiment is similar to that of the apparatus of the first embodiment shown in FIG. 1, no description is given thereof. [0101]
  • FIG. 3 shows the structure of a [0102] data management apparatus 20 employed in the second embodiment.
  • Similar to the case of the first embodiment, the [0103] data management apparatus 20 of the second embodiment comprises a sector information management unit 21, a data allocation information managing unit 22, a data input/output control unit 23 and a data allocation determination unit 24.
  • The sector [0104] information management unit 21 manages the state of use of each sector on the recording surface 16 of the recording medium 11. The methods of managing the state of use are as follows: (1) As is shown in FIG. 4, there is provided a method for enabling bit (setting 1) for a used sector S and disabling bit (setting 0) for a non-used sector S, using a bit map 17 having information corresponding to each sector S; and (2) As is shown in FIG. 5, there is provided a method for assigning an identifier to each sector S on the recording surface 16, and managing each sector s being used, using a list (sector's state-of-use management list) 18 in which each sector S being used is denoted by a sector number (sector identifier). The data management apparatus 20 will be further described, supposing that the above method (2) is employed.
  • The sector [0105] information management unit 21 is responsive to a request from the data allocation determination unit 24 for supplying information which includes “the number (ID) of a first non-used (vacant) sector” in a predetermined direction (a radial direction of the recording medium 11) from a reference position on the recording surface 16 (e.g., an outermost or innermost radial portion of the recording medium 11), and also includes “the number of currently non-used sectors”. In this case, concerning the non-used sector number, the number of an innermost or outermost non-used sector on the recording surface 16 is supplied. Alternatively, the number of the non-used sector may be supplied, which is situated inwardly or outwardly closest to an intermediate position between innermost and outermost radial positions on the recording surface. In the second embodiment, in particular, the number of the inner non-used sector may be supplied, which is situated within a partition with a predetermined number (which means each divisional region on the recording surface hereinafter referred to). Hereinbelow, suppose that the number of an innermost non-used sector is supplied. Hereinbelow, suppose that the number of an innermost non-used sector is supplied.
  • The data allocation [0106] information managing unit 22 manages data/sector information as to which sector of the recording surface 16 in the data recording apparatus 10 records which data item. For example, as shown in FIG. 6, a management method of holding a list showing a pair of a start sector number and an end sector number of sectors being used for each data block, may be adopted.
  • The data/sector information is updated by the data [0107] allocation determination unit 24 invoked when the data input/output control unit 23 has received a request for writing data. Further, the data/sector information is referred to when the data input/output control unit 23 has received a request for reading data.
  • The data input/[0108] output control unit 23 performs input/output processing in the data recording apparatus 10, upon receiving a request for input/output of data. When receiving a request for writing data (a request for inputting data), the data input/output control unit 23 controls the data allocation determination unit 24 so as to request a sector list indicative of the position in which the data is to be placed. The data input/output control unit 23 also controls the data recording control unit 13 so as to write the data into an appropriate sector.
  • The data [0109] allocation determination unit 24 is invoked by the data input/output control unit 23 so as to determine, based on an instruction from the data input/output control unit 23, in which sector on the recording surface 16 a block of data should be stored, and to supply a determination result to the data input/output control unit 23. In other words, when the data allocation determination unit 24 has received data on the size of to-be-stored data from the data input/output control unit 23, it refers to the information from the data allocation information managing unit 22 and the sector information management unit 21, and supplies the data input/output control unit 23 with the sector list indicative of the order of sectors in which data blocks should be stored.
  • The sector list supplied from the data [0110] allocation determination unit 24 has a format showing sector numbers placed in the order in which sectors denoted by the sector numbers store respective data blocks, or a format showing each pair of “start sector number” and “end sector number” as shown in FIG. 7. If, however, the size of data is too large to store the data in the non-used sectors, the data allocation determination unit 24 returns a “recording impossible” answer.
  • Further, in the second embodiment, in particular, the data [0111] allocation determination unit 24 holds a conversion table for obtaining each divided recording surface portion and the “block size” of data which can be stored therein on the basis of information about “reading speed” or “writing speed” corresponding to a position on the recording surface 16. FIG. 18 shows an example of the conversion table, in which the “number of divided portions” is n. Each divided recording surface portion is hereinafter referred to as a “partition”. The procedure using the conversion table will be described later.
  • The conversion table can be obtained by calculation based on the specifications of the disk and a predetermined “block size”. For example, suppose that innermost and outermost radial portions of the [0112] recording surface 16 are accessed at a slowest reading/writing speed Vmin and a fastest reading/writing speed Vmax, respectively. Further, suppose that the “number of divided portions” is N and the “block size” of the innermost radial portion is B. Then, the block size Bk of a partition K (an innermost radial partition K is 0) is given by
  • Bk=B×(1+K×(Vmax−Vmin)/(N×Vmin))
  • The algorithm used to store data can be simplified if the recording surface is divided into partitions such that the number of data blocks which can be stored in a partition is equal to that of data blocks which can be stored in any other partition. [0113]
  • Moreover, in the [0114] data management apparatus 20 of FIG. 3, data to be read or written is transferred between the data recording apparatus 10 and an external terminal via the data input/output control unit 23.
  • No description is given of the basic operation of the entire data recording apparatus, since it is the same as that performed in the first embodiment shown in FIGS. 8A and 8B (similarly, the operations of the data input/[0115] output control unit 23, the sector information management unit 21 and the data allocation information managing unit 22 are not described).
  • Referring then to FIGS. [0116] 19 to 21, the operation algorithm used in the data allocation determination unit 24 will be described. Suppose that in this algorithm, the conversion table is prepared by determining the “block size” on the basis of the “number of divided portions” and the reading/writing speed, such that the number of data blocks which can be stored in a partition is equal to that of data blocks which can be stored in any other partition. Moreover, suppose that in the data recording apparatus 10, inner and outer radial portions of the recording surface 16 are accessed at a slower reading/writing speed and a faster reading/writing speed, respectively. That is, under the circumstance where the recording density is uniform and the rotation speed is constant, the accessible number of sectors on outer radial portions in a unit time becomes larger than those on inner radial portions, because the number of sectors on outer radial portions is larger than that on inner radial portions.
  • As an initializing process, a “block size” and the “number of divided portions (i.e., the number of partitions)” as references are set (step S[0117] 801), and a conversion table showing a “block size” and a “interval between blocks of data to be stored” in each partition is prepared on the basis of the capacity of the disk, the reading/writing speed values thereof, the “block size” and the “number of partitions” as references (step S802).
  • The data [0118] allocation determination unit 24 is kept in a waiting state until it is invoked by the data input/output control unit 23 (step S803). When invoked, the data allocation determination unit 24 obtains the “number of non-used sectors” from the sector information management unit 21, and thereby obtaining the “capacity of non-used region” based on the “number of non-used sectors” (step S804). The data allocation determination unit 24 compares the “size of data to be stored” with the “non-used region capacity” (step S810), and supplies, when the “size of data to be stored” is larger, the response indicating that the data cannot be stored (step S890). The procedure then returns to the step S803.
  • If it is determined in the step S[0119] 810 that the “size of data to be stored” is equal to or smaller than the “capacity of non-used region”, the-data allocation determination unit 24 obtains, from the data allocation information managing unit 22, the number of an innermost non-used sector (step S810), thereby setting the obtained number to the “start sector number” (step S812). The data allocation determination unit 24 initializes the sector list (step S816), and sets the “size of remaining data” to the “size of data to be stored” (step S814).
  • Thereafter, the data [0120] allocation determination unit 24 checks whether or not the “size of remaining data” is equal to or less than 0 (step S830). If it is not equal to or less than 0, the unit 24 obtains, from the data allocation information managing unit 22, the “number of contiguous non-used sectors” beginning from the “start sector number” (step S831), and obtains, using the conversion table, a “partition” including the start sector, the “block size” and the “number of sectors between data blocks to be stored” (step S832).
  • The data [0121] allocation determination unit 24 then compares the “number of contiguous non-used sectors” with the “number of sectors of the block size” (step S850). If the “number of contiguous non-used sectors” is smaller than the “number of sectors of the block size”, the data allocation determination unit 24 sets the “block size” to a value obtained by multiplying the “sector size” by the “number of contiguous non-used sectors” (step S851).
  • Then, the data [0122] allocation determination unit 24 sets the “end sector number” to a value obtained by adding the “start sector number” to the “number of sectors of the block size” (step S852), thereby adding the set “start sector number” and “end sector number” to the sector list to be supplied (step S853).
  • Subsequently, the data [0123] allocation determination unit 24 updates the information stored in the sector information management unit 21 (step S854), updates the information stored in the data allocation information managing unit 22 (step S855), and sets the “size of remaining data” to a value obtained by subtracting the “block size” from the “size of currently remaining data” (step S856).
  • The data [0124] allocation determination unit 24 checks whether or not the start sector is included in an outermost radial partition (step S870). If it is included in the partition, the unit 24 obtains the number of an innermost non-used sector from the data allocation information managing unit 22 (step S871), and sets the obtained number to the “start sector number” (step S872), thereby returning to the processing in the step S830.
  • If, on the other hand, it is determined in the step S[0125] 870 that the start sector is not included in the outermost radial partition, the data allocation determination unit 24 sets the “start sector number” to a number obtained by adding a “present start sector number” to the “number of sectors between blocks of data to be stored” (step S873), thereby returning to the processing in the step S830.
  • The above-described processing is repeated. If it is determined in the step S[0126] 830 that the “size of remaining data” is less than 1, the data allocation determination unit 24 transfers the sector list to the data input/output control unit 23 (step S886), thereby returning to the processing in the step S803.
  • The above-described processing is performed by the data [0127] allocation determination unit 24 incorporated in the data management apparatus 20.
  • The data input/[0128] output control unit 23 supplied with the sector list from the data allocation determination unit 24 causes the data recording control unit 13 of the data recording apparatus 10 to store the to-be-stored data in sectors designated in the sector list.
  • Referring then to the flowchart of FIG. 22, the processing procedure performed in the step S[0129] 832 using the conversion table will be described in detail.
  • To obtain a partition which includes a target sector (start sector), a partition number corresponding to the number of the sector is obtained with reference to the conversion table (step S[0130] 901). For example, if the start sector number is “n1+1”, a corresponding partition number is “2”. Thereafter, the block size set for the partition which includes the above sector is obtained referring to the conversion table (step S902). In this case, the block size corresponding to the start sector number “n1+1” is “b2”. Further, the “number of sectors between data blocks of data to be stored”, which will be used in a later process, is obtained (step S903). In this case, the number of the sectors is “N2”.
  • FIG. 23 shows a recording state of the [0131] recording surface 16, in which a data group A is divided into eight blocks A0 to A7 and a data group B is divided into eight blocks B0 to B7.
  • In this example, each block of data is stored in the following manner: [0132]
  • First, the blocks A[0133] 0 to A3 of the blocks A0 to A7 included in the data group A are discretely placed at regular intervals (in units of a partition) on the recording surface from an inner radial portion thereof to an outer radial portion thereof. When the last block A3 has been placed on an outermost radial portion of the disk, the remaining blocks A4 to A7 are also discretely placed at regular intervals (in units of a partition) on the recording surface from an inner radial portion thereof to an outer radial portion thereof, similar to the case of the blocks A0 to A3.
  • After the blocks of the data group A are placed, the blocks of the data group B are placed in the same manner as those of the data group A. In the FIG. 17 case, the blocks B[0134] 0 to B7 of the data group B are placed adjacent to the blocks A0 to A7 of the data group A, respectively.
  • Also where the [0135] data recording apparatus 10 employs a plurality of recording surfaces, data allocation similar to the case of employing a single recording surface is made for each recording surface.
  • Since in FIG. 23, the entire blocks of each of the data groups A and B are stored in dispersed regions and not in a continuous region, the amount of movement of the head can be minimized and the required average seek time can be reduced, even when a request for simultaneously reading the data groups A and B has been issued and hence even when, for example, these data groups are alternately read in units of a block. Moreover, since the blocks of data are placed to have sizes corresponding to the respective speed values of access (writing or reading speed values) which are determined by the positions of the blocks on the recording surface, the time required for reading or writing can be kept substantially constant irrespective of the positions of the blocks, and therefore a substantially constant throughput can be realized. [0136]
  • As described above, in the second embodiment of the invention, the average seek time can be shortened by appropriately arranging data at the time of storing the same, thereby increasing the speed of reading/writing and making constant the time required for reading/writing. As a result, the data recording apparatus can be used at its maximum. [0137]
  • Further, although the algorithm employed in the data allocation determination unit uses a manner for storing data on the recording surface from an innermost sector to an outermost sector, data may be stored from an outermost sector to an innermost sector, or from a radially intermediate sector. In these cases, it suffices if the algorithm is modified to employ a manner for seeking a sector from an outer radial portion of the recording surface, or from an intermediate radial portion thereof. [0138]
  • To store a series of data items, the first and second embodiments employ a procedure (an algorithm used in the data allocation determination unit) for successively determining the position of each of the data items. For example, in the FIG. 17 or [0139] 23 case, the allocation of the data group A is determined first, and then that of the data group B is determined. This allocation procedure can be modified such that the positions of the series of data items are simultaneously determined.
  • In addition, although in the first and second embodiments, a single [0140] data recording apparatus 10 is connected to the data management apparatus 20, a plurality of data recording apparatuses 20 can be connected to the same as shown in FIG. 24. In this case, it suffices if the sector information management unit 21, the data allocation information managing unit 22 and the data allocation determination unit 24 are adapted to manage information necessary for each data recording apparatus 10, while the data input/output control unit 23 is adapted to perform input/output control of a corresponding one of the data recording apparatuses 10.
  • The first and second embodiments are applicable to a data server apparatus for providing a series of data items, such as a video server apparatus for use in a video-on-demand (VOD) system. [0141]
  • FIG. 25 shows an example of a video server to which the first and second embodiment are applicable. In brief, the video server receives, at an arbitrary time, a request from an arbitrary terminal for supplying video data thereto, reads the requested data from a data recording apparatus employed therein and storing a series of video data items such as movie data, etc., and simultaneously and sequentially supplies the terminal with the read data in real time. [0142]
  • In FIG. 25, a request for accessing video data issued from a user or an application program, etc. is supplied via inter-process communication, network communication, etc. This request for access is transferred from a [0143] communication controller 706 to a central controller 710 via a bus 720. The central controller 710 controls a necessary one of data recording controllers 704 so as to read the requested video data. The data recording controller 704 reads the video data from a corresponding one of data recording units 702, and writes the read data into a buffer memory 708. The central controller 710 controls the communication controller 706 so as to send the video data in the buffer memory 708. The communication controller 706 sends the video data to a terminal where the request for access has issued. The central controller 710 is constituted of e.g. a CPU which executes a program describing a control procedure.
  • To store data in the [0144] data recording unit 702, the data recording controller 704 receives a request for writing and data to be written, and causes a predetermined one of the data recording units 702 to record the data.
  • By providing the [0145] data management apparatus 20 according to the first or second embodiment (shown in FIG. 3 or 24) in the data recording controller 704 of the video server apparatus constructed as above, data can be recorded on the recording surface of each data recording apparatus 10 in a manner as described in the first or second embodiment.
  • The [0146] data allocation apparatus 20 may be provided in the central controller 710.
  • FIG. 25 merely shows an example of the structure of the data server apparatus. The present invention is applicable to data server apparatuses of various structures. In other words, the present invention is applicable not only to a video server apparatus which handles video data, but also to another type of server apparatus which handles groups of data items. [0147]
  • As described above in detail, according to the present invention, even in a case where a series of data items must sequentially be accessed in predetermined access units, e.g., in units of a data block, a situation where the distance for seeking target sectors continuously increases can be avoided and hence the required average seek time can be minimized, since each of the data items is divided into a plurality of data blocks and arranging the blocks in dispersed regions of the recording surface. [0148]
  • Furthermore, in a case where the reading/writing speed varies depending upon the recording position of data on the recording surface of the data recording apparatus, the present invention can realize a constant throughput and a minimum average seek time by storing a data block of a large size in a region in which the reading/writing speed is high, and storing a data block of a small size in a region in which the reading/writing speed is low. Therefore, the data recording apparatus according to the invention can be used at its maximum. [0149]
  • Additional advantages and modifications will readily occur to those skilled in the art. Therefore, the present invention in its broader aspects is not limited to the specific details, representative devices, and illustrated examples shown and described herein. Accordingly, various modifications may be made without departing from the spirit or scope of the general inventive concept as defined by the appended claims and their equivalents. [0150]

Claims (16)

1. A data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and
generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block.
2. A data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
generating first allocation information for designating a location of a first data block included in the plurality of data blocks; and
generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block.
3. The method according to
claim 2
, further comprising the step of controlling the data recording apparatus to locate each data block in accordance with each of the first and second allocation information.
4. A data allocation control method applicable to a data recording apparatus for executing positioning control by rotating a disciform recording medium and by moving the head in a radial direction of the recording medium, and for writing and/or reading data to/from a recording surface to which the head is positioned, the method comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
generating first allocation information for designating a location of a first data block included in the plurality of data blocks;
generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block; and
controlling to move the head to each of the locations designated by the first and second allocation information.
5. The method according to
claim 1
, wherein the allocation information includes a sector list in which each location of data blocks is represented by using sector identifiers assigned to sectors of the recording surface.
6. The method according to
claim 5
, wherein each location of data blocks is represented by a start sector identifier and an end sector identifier.
7. The method according to
claim 1
, wherein in the generating step, each of the interval between the data blocks is determined based on a predetermined number of sectors.
8. The method according to
claim 1
, further comprising the step of generating size information for designating the size of each data block, such that the data block to be located in a region where access speed is higher has a large size and the data block to be located in a region where the access speed is lower has a small size.
9. The method according to
claim 8
, wherein the size information includes a conversion table used for obtaining the data block size on the basis of a location of the corresponding data block.
10. A data allocation control method applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the method comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and
generating size information for designating the size of each data block, such that the data block to be located in a region where access speed is higher has a large size and the data block to be located in a region where the access speed is lower has a small size.
11. A disciform recording medium applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of the recording medium, data allocation for the recording medium comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with; and
generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block.
12. A disciform recording medium applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of the recording medium, data allocation for the recording medium comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
generating first allocation information for designating a location of a first data block included in the plurality of data blocks; and
generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block.
13. A disciform recording medium applicable to a data recording apparatus for executing positioning control by rotating the recording medium and by moving the head in a radial direction of the recording medium, and writing and/or reading data to/from a recording surface to which the head is positioned, data allocation for the recording medium comprising the steps of:
dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
generating first allocation information for designating a location of a first data block included in the plurality of data blocks;
generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block; and
controlling to move the head to each of the locations designated by the first and second allocation information.
14. A data server apparatus applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the data server apparatus comprising:
means for dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
means for generating allocation information for designating each location of the plurality of data blocks, such that a second data block next to a first data block included in the plurality of data blocks is located to keep a predetermined interval from a location of the first data block;
means for controlling the data recording apparatus to place each data block in accordance with the allocation information; and
means, responsive to a request for reading data, for reading data blocks from the recording surface and transferring data comprised of the read data blocks to a terminal where the request has issued.
15. A data server apparatus applicable to a data recording apparatus for writing and/or reading data to/from a recording surface of a disciform recording medium, the data server apparatus comprising:
means for dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
means for generating first allocation information for designating a location of a first data block included in the plurality of data blocks;
means for generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block;
means for controlling the data recording apparatus to place each data block in accordance with each of the first and second allocation information; and
means, responsive to a request for reading data, for reading data blocks from the recording surface and transferring data comprised of the read data blocks to a terminal where the request has issued.
16. A data server apparatus applicable to a data recording apparatus for executing positioning control by rotating a disciform recording medium and by moving the head in a radial direction of the recording medium, and writing and/or reading data to/from a recording surface to which the head is positioned, the data server apparatus comprising:
means for dividing data to be recorded on the recording surface into a plurality of data blocks to be consecutively dealt with;
means for generating first allocation information for designating a location of a first data block included in the plurality of data blocks; and
means for generating second allocation information for designating a location of a second data block next to the first data block, such that the second data block is located to keep a predetermined interval from the location of the first data block;
means for controlling to move the head to each of the locations designated by the first and second allocation information; and
means, responsive to a request for reading data, for reading data blocks from the recording surface and transferring data comprised of the read data blocks to a terminal where the request has issued.
US08/862,295 1996-05-24 1997-05-22 Data allocation method, recording medium with data recorded by the method, and data server apparatus Expired - Fee Related US6314232B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP13023296A JP3561083B2 (en) 1996-05-24 1996-05-24 Data arrangement control method and video server device
JP8-130232 1996-05-24

Publications (2)

Publication Number Publication Date
US20010012446A1 true US20010012446A1 (en) 2001-08-09
US6314232B2 US6314232B2 (en) 2001-11-06

Family

ID=15029275

Family Applications (1)

Application Number Title Priority Date Filing Date
US08/862,295 Expired - Fee Related US6314232B2 (en) 1996-05-24 1997-05-22 Data allocation method, recording medium with data recorded by the method, and data server apparatus

Country Status (2)

Country Link
US (1) US6314232B2 (en)
JP (1) JP3561083B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1858018A2 (en) * 2006-05-18 2007-11-21 Samsung Electronics Co., Ltd. Method and apparatus for allocating disc space
US20080043781A1 (en) * 2006-08-17 2008-02-21 Broadcom Corporation Remote Flash Access
US10614852B2 (en) * 2018-07-10 2020-04-07 Kabushiki Kaisha Toshiba Data-center drive with split-actuator that increases read/write performance via data striping

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134586A (en) * 1998-07-31 2000-10-17 Philips Electronics N.A. Corp. Striping data across disk zones
US20040081433A1 (en) * 2002-10-28 2004-04-29 Stewart Phillip T. DVD business system
US20060204215A1 (en) * 2003-04-10 2006-09-14 Koninklijke Philips Electronics N.V. Method and apparatus for data retrieval
JP3915752B2 (en) * 2003-07-25 2007-05-16 船井電機株式会社 Digital information recording apparatus and video recording / reproducing apparatus including the same
JP4401132B2 (en) * 2003-09-19 2010-01-20 株式会社日立国際電気 Circulation recorder

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2722193B2 (en) * 1987-11-06 1998-03-04 旭光学工業 株式会社 Recording device for electronic still camera
US5136391A (en) * 1988-11-02 1992-08-04 Sanyo Electric Co., Ltd. Digital video tape recorder capable of accurate image reproduction during high speed tape motion
JP2797404B2 (en) * 1989-04-20 1998-09-17 ソニー株式会社 Recording method of moving image data
US5377051A (en) * 1993-01-13 1994-12-27 Hitachi America, Ltd. Digital video recorder compatible receiver with trick play image enhancement

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1858018A2 (en) * 2006-05-18 2007-11-21 Samsung Electronics Co., Ltd. Method and apparatus for allocating disc space
EP1858018A3 (en) * 2006-05-18 2008-09-17 Samsung Electronics Co., Ltd. Method and apparatus for allocating disc space
US7797485B2 (en) 2006-05-18 2010-09-14 Samsung Electronics Co., Ltd. Method and apparatus for allocating disc space for recording files
US20080043781A1 (en) * 2006-08-17 2008-02-21 Broadcom Corporation Remote Flash Access
US8848745B2 (en) * 2006-08-17 2014-09-30 Broadcom Corporation Remote flash access
US10614852B2 (en) * 2018-07-10 2020-04-07 Kabushiki Kaisha Toshiba Data-center drive with split-actuator that increases read/write performance via data striping

Also Published As

Publication number Publication date
US6314232B2 (en) 2001-11-06
JP3561083B2 (en) 2004-09-02
JPH09311765A (en) 1997-12-02

Similar Documents

Publication Publication Date Title
EP0634034B1 (en) Method of operating a disk storage system
US6499083B1 (en) Disk-based storage system responsive to a direction-selection signal for autonomously controlling seeks in a sequence determined by the direction-selection signal and a locally-stored doubly linked list
US5912866A (en) Method of reproducing multimedia data and multimedia data server system
US6049891A (en) Data access control system and computer-readable medium storing data access control program
US5765204A (en) Method and apparatus for adaptive localization of frequently accessed, randomly addressed data
US5510905A (en) Video storage server using track-pairing
CA2207076C (en) Methods and apparatus for controlling access to a recording disk
EP0781432B1 (en) Multimedia editing system using pre-caching data utilizing thread lists
US5787482A (en) Deadline driven disk scheduler method and apparatus with thresholded most urgent request queue scan window
JPH11143778A (en) Cache managing method and information collecting method
US6134586A (en) Striping data across disk zones
US6564292B2 (en) Optimizing allocation of sectors in disc drives
US6314232B2 (en) Data allocation method, recording medium with data recorded by the method, and data server apparatus
US7000068B2 (en) Recording and playback apparatus and recording and playback method
US5774714A (en) Zone bit recording enhanced video data layout
US5737577A (en) Complementary block storage for breater minimumdata transfer rate
US6564231B1 (en) Method for managing optical disk library files in accordance with the frequency of playback requests selected simultanenously at a specified time intervals
EP1213652B1 (en) Disk medium managing method
US20010042167A1 (en) Method of storing data and data storage device using the same
JPH09185864A (en) Method and device for controlling recording disk access
JP3809674B2 (en) Disk control method and apparatus
JP2001118365A (en) System and method for managing storage hierarchy and recording medium with storage hierarchical management program recorded thereon
JPH11306190A (en) Video server system
EP0795254B1 (en) Method and system for reading data blocks for a number of user groups
JPH0854990A (en) Providing device for information on dynamic image

Legal Events

Date Code Title Description
AS Assignment

Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KIZU, TOSHIKI;YAO, HIROSHI;KANAI, TATSUNORI;AND OTHERS;REEL/FRAME:008606/0287

Effective date: 19970519

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Free format text: PAYER NUMBER DE-ASSIGNED (ORIGINAL EVENT CODE: RMPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

REMI Maintenance fee reminder mailed
LAPS Lapse for failure to pay maintenance fees
STCH Information on status: patent discontinuation

Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362

FP Lapsed due to failure to pay maintenance fee

Effective date: 20131106