The present application claims the benefit of Japanese Patent Application 2011-068271, filed on Mar. 25 2011, the entire disclosure of which is incorporated by reference herein
The present application relates to a communication device, communication method, and computer-readable recording medium storing programs.
In recent years, techniques for controlling access to data storage media have been proposed. For example, Unexamined Japanese Patent Application Kokai Publication No. 2000-194680 discloses a technique for serializing access to a main storage from processors in a multiprocessor system comprising multiple processors. The term “serializing” means that when multiple entities simultaneously make an access request to a source incapable of simultaneously receiving access from multiple entities, adjustment is made so that the entities can use the source in turn.
Unexamined Japanese Patent Application Kokai Publication No. 2000-194680 discloses a technique for temporarily storing data to be written on a recording medium in a cache memory and writing the stored data on the recording medium on the basis of a group of a given address range. Unexamined Japanese Patent Application Kokai Publication No. H9-325905 discloses a technique for converting write and read requests issued by multiple computers having different interfaces so that the computers can share data on a storage medium. Unexamined Japanese Patent Application Kokai Publication No. H10-079666 discloses a technique for postponing the processing of a write request if a client is reading data from a CD-R disc and, in the meantime, a write request is made by another client so that the client can read the latest data.
A disc storage medium inserted in an optical drive can be accessed by only one machine. Therefore, in installing software such as an OS (operating system) on multiple machines, data are installed on one machine and then on another machine. Therefore, it takes a long time to complete the installation on all machines. Regarding this problem, for example, the Unexamined Japanese Patent Application Kokai Publication No. H10-079666 allows one client to read data on a CD-R disc; and there is no consideration of multiple machines reading data on a CD-R disc. Therefore, this technique does not solve the above problem.
The present invention has been invented in view of the above circumstances and an exemplary objective of the present invention is to provide a communication device, communication method, and program for reducing the processing time for installing data on a disc storage medium to multiple servers.
The communication device according to a first exemplary aspect of the present invention comprises:
a receiver receiving read requests for data stored disc storage medium from multiple servers;
a serializer arranging the read requests received by the receiver in a processing order;
a writer writing data stored on the disc storage medium in a cache memory;
a determiner determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged by the serializer;
an information acquirer acquiring the target data from the cache memory when the determiner determines that the target data are present in the cache memory, and acquiring the target data from the disc storage medium when the determiner determines that the target data are not present in the cache memory; and
a transmitter sending the target data acquired by the information acquirer to the server of the transmission source of the read request corresponding to the target data.
The communication method according to a second exemplary aspect of the present invention comprises:
a reception step of receiving read requests for data stored on a disc storage medium from multiple servers;
a serialization step of arranging the read requests received in the reception step in a processing order;
a writing step of writing data stored on the disc storage medium in a cache memory;
a determination step of determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged in the serialization step;
an information acquisition step of acquiring the target data from the cache memory when it is determined that the target data are present in the cache memory in the determination step, and acquiring the target data from the disc storage medium when it is determined that the target data are not present in the cache memory; and
a transmission step of sending the target data acquired in the information acquisition step to the server of the transmission source of the read request corresponding to the target data.
The program stored on a computer-readable recording medium according to a third exemplary aspect of the present invention allows a computer to function as:
a receiver receiving read requests for data stored on a disc storage medium from multiple servers;
a serializer arranging the read requests received by the receiver in a processing order;
a writer writing data stored on the disc storage medium in a cache memory;
a determiner determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged by the serializer;
an information acquirer acquiring the target data from the cache memory when the determiner determines that the target data are present in the cache memory, and acquiring the target data from the disc storage medium when the determiner determines that the target data are not present in the cache memory; and
a transmitter sending the target data acquired by the information acquirer to the server of the transmission source of the read request corresponding to the target data.
The present invention allows servers to simultaneously access data stored on a disc storage medium, reducing the processing time to install data on a disc storage medium onto multiple servers.
A more complete understanding of The present application can be obtained when the following detailed description is considered in conjunction with the following drawings, in which:
An embodiment of the present invention will be described hereafter with reference to the drawings. In the figures, the same or equivalent components are referred to by the same reference numbers.
The DVD/CD drive 3 is a drive into which a disc storage medium K such as a CD-ROM disc, CD-R disc, CD-RW disc, DVD-ROM disc, DVD-R disc, DVD-RW disc, DVD-RAM disc, DVD+RW disc, and DVD+R disc is inserted. The DVD/CD drive 3 allows a single device to access the disc storage medium K and read data stored on the disc storage medium K.
The cache memory 4 consists of a single or multiple DIMMs (dual inline memory modules) and is used to write data stored on the disc storage medium K therein. The cache memory 4 has a capacity equal to or larger than the maximum capacity of a disc storage medium K inserted in the DVD/CD drive 3. The cache memory 4 can be accessed by multiple devices simultaneously.
The servers A1 to A3 each have a control part, storage, and communication part (not shown). The control part of the servers A1 to A3 makes the communication part send a read request to the communication device 5. Furthermore, the control part makes the communication part receive target data returned in response to the read request and store them in the storage.
The communication device 5 is a device relaying communication between the severs A1 to A3 and DVD/CD drive 3, comprising, as shown in
The server interfaces B1 to B3 are provided for the servers A1 to A3, respectively. Each server interface B is an interface for connecting the corresponding server A to the communication device 5 and consists of, for example, an USB (universal serial bus) 2.0, USB 1.1, ATA (advanced technology attachment), or SATA (serial advanced technology attachment).
The DVD/CD drive interface C is an interface for connecting the DVD/CD drive 3 to the communication device 5 and, like the sever interface B, consists of a USB 2.0, USB 1.1, ATA, or SATA.
In this embodiment, the server interface B and DVD/CD drive interface C are of the same kind. Here, the interfaces B and C can be of different kinds. In such a case, interface conversion device is provided to the communication device 5.
The memory interface J is an interface for connecting the cache memory 4 to the communication device 5 and consists of, for example, a DDR (double data rate) 2/DDR 3.
The protocol serializer 10 makes the reception buffers H1 to H3 of the server transmission/reception buffers E1 to E3 receive and store read request packets sent from the servers A1 to A3 via the server interfaces B1 to B3 (
In the example of
Furthermore, the protocol serializer 10 serializes the read request packets received from the servers A1 to A3 and sends them to the cache controller 11. More specifically, the protocol serializer 10 retrieves the read request packets received by and accumulated in the reception buffers H1 to H3 in the order of reception, stores them in the reception buffer F in the drive transmission/reception buffer D, retrieves the stored read request packets in the FIFO (first-in first-out) manner, and sends them to the cache controller 11. In the example of
The cached flag indicates whether the data stored in the drive address r of the disc storage medium K have already been written (cached) in the cache address range of the cache memory 4. In the rows having a cached flag “o,” the data stored in the drive address range have already been written in the cache address range. In the rows having a cached flag “x,” data stored in the drive address range have not been written in the cache address range.
When the cache controller 11 receives a read request packet, the main controller 20 makes reference to the cache table and determines whether the target data corresponding to the read request are present in the cache memory 4 (
The main controller 20 sends the read request packet for which it is determined that the target data are present in the cache memory 4 to the memory controller 12, and the read request packet for which it is determined that the target data are not present in the cache memory 4 to the DVD/CD controller 13.
The rows 3 and 5 in the cache table (
The rows 1, 2, and 4 in the cache table (
In this embodiment, the determination as to whether the target data are present/absent in the cache memory 4 and the transmission of read request packets based on the determination results are conducted each time a read request packet is received from the protocol serializer 10. Consequently, the read request packets are sent to the DVD/CD controller 13 or to the memory controller 12 in the order of serialization by the protocol serializer 10. In the example of
The memory controller 12 is capable of writing data in the cache memory 4 and reading data from the cache memory 4 via the memory interface J (
The DVD/CD controller 13 is capable of reading data on the disc storage medium K via the DVD/CD drive interface C (
As described above, as the memory controller 12 or DVD/CD controller 13 reads target data from the cache memory 4 or disc storage medium K and sends a target data packet to the cache controller 11, the cache controller 11 acquires the target data corresponding to a read request among the data stored on the disc storage medium K (including not only the data stored on the disc storage medium K itself but also the data written in the cache memory 4).
Furthermore, each time the memory controller 12 or DVD/CD controller 13 receives a read request packet, the memory controller 12 or DVD/CD controller 13 reads the target data and sends them to the cache controller 11. Then, the cache controller 11 acquires the target data corresponding to read requests in the order of the read requests serialized by the protocol serializer 10. In the example of
Each time the cache controller 11 receives a target data packet (of the target data 3 and 5 in
Furthermore, each time the cache controller 11 receives a target data packet from the DVD/CD controller 13, the main controller 20 sends a request to write the target data to the memory controller 12. In the example of
A write request is sent to the memory controller 12 to write target data in the cache memory 4. A write request at least contains the target data and read address of a target data packet (
Each time the memory controller 12 receives a write request from the cache controller 11, the memory controller 12 writes the target data contained in the write request in the cache memory 4. The address at which the target data are written is set to the read address contained in the write request.
After the target data are written, the memory controller 2 sends a notice of completion of writing to the cache controller 11. The completion notice at least contains the address in the cache memory 4 at which the target data are written (namely, the read address).
Each time the cache controller 11 receives a completion notice, the main controller 20 records information indicating the completion of writing target data in the cache table (
After the cache table recording (flag change) is completed, the main controller 20 sends the packets of target data (the target data 1, 2, and 4 in
In the example of
Furthermore, each time the protocol serializer 10 receives a target data packet in the transmission buffer G, the protocol serializer 10 identifies the transmission buffer I in the transmission destination server transmission/reception buffer E based on the server number contained in the target data packet (
Furthermore, the protocol serializer 10 retrieves the target data packets stored in the transmission buffer I in the FIFO manner and sends them to the server A corresponding to the transmission buffer 1 via the server interface B (
For example, since the packet of target data 2 contains the server number indicating the server A3, the target data 2 are sent to the transmission buffer 13 corresponding to the server A3 and then sent to the server A3 from the transmission buffer 13.
The entire operation of the communication system I will be described hereafter. First, operation in the case wherein target data corresponding to a read request are present in the cache memory 4 will be described with reference to
The protocol serializer 10 makes the reception buffer H in the server transmission/reception buffer E receive and accumulate a read request packet sent from the server A (Step S101).
Then, the protocol serializer 10 retrieves the read request packet from the reception buffer H, adds an integrated packet ID and server number thereto, and stores the packet in the reception buffer F in the drive transmission/reception buffer I) (Step S102).
Then, the protocol serializer 10 retrieves the read request packet from the reception buffer F in the FIFO manner and sends it to the cache controller 11 (Step S103).
The main controller 20 in the cache controller 11 makes reference to the cache table (
According to the contents of the read request packet, the memory controller 12 reads the target data from the cache memory 4 (Step S106).
Then, the memory controller 12 adds an integrated packet number and server number to the target data read in the Step S106 to generate a target data packet (Step S107) and sends the target data packet to the cache controller 11 (Step S108).
The cache controller 11 sends the target data packet to the protocol serializer 10 (Step S109).
The protocol serializer 10 receives and stores the target data packet in the transmission buffer G in the drive transmission/reception buffer D. The protocol serializer 10 identifies the transmission buffer I of the transmission destination of the target data packet and deletes the integrated packet ID and server number from the target data packet (Step S110).
The protocol serializer 10 sends the target data stored in the transmission buffer G to the transmission buffer I of the identified transmission destination and then sends the target data to the server A corresponding to the transmission buffer I (Step S111).
Operation in the case wherein target data corresponding to a read request are not written in the cache memory 4 will be described below with reference to
In the operation shown in
The DVD/CD controller 13 reads the target data from the disc storage medium K according to the contents of the read request packet (Step S206).
Then, the DVD/CD controller 13 adds an integrated packet ID and server number to the target data read in the Step S206 to generate a target data packet (Step S207) and sends the target data packet to the cache controller 11 (Step S208).
The cache controller 11 sends the packet received in the Step S208 to the memory controller 12 as a write request (Step S209).
The memory controller 12 writes the data in the cache memory 4 according to the contents of the write request (Step S210) and, after the writing is completed, sends a completion notice to the memory controller 11 (Step S211).
Receiving the completion notice, the cache controller 11 records information indicating the completion of writing the target data in the cache table (Step 212).
Then, in response to the completion of recording in the cache table, the cache controller 11 sends the target data packet received in the Step S208 to the protocol serializer 10 (Step S213). Then, Steps S214 and 215 similar to the Steps S110 and S111 are executed.
In the communication device 5 of this embodiment, read requests sent from the servers A1 to A3 are serialized and it is determined whether the target data corresponding to the read requests are present in the cache memory 4 in the order of serialized read requests. If present, the target data are acquired from the cache memory 4 and sent to a server A that is the transmission source of the read request corresponding to the target data. Consequently, the servers A to A3 are allowed to access the data stored on the disc storage medium K simultaneously, reducing the processing time to install target data onto the servers A1 to A3.
Furthermore, the cache memory 4 has a capacity equal to or larger than the maximum capacity of a disc storage medium K inserted in the DVD/CD drive. All data stored on the disc storage medium K can be written in the cache memory 4. Therefore, regardless of which data on the disc storage medium K are requested, the target data can be sent to the server A in a short time.
The present invention is not confined to the above embodiment and various modifications can be made without departing from the scope of the present invention.
For example, the communication device 5 may comprise a cache memory 4.
Furthermore, it is possible that the communication device 5 sends an interruption notice to the servers A1 to A3 when a disc storage medium K is inserted in the DVD/CD drive 3 or when the disc storage medium K is removed from the DVD/CD drive 3 and, receiving the interruption notice, the servers A1 to A3 are enabled or disabled to send a read request packet. In this way, the servers A1 to A3 and communication device 5 communicate after it becomes possible to read data stored on a disc storage medium K. The target data can be sent to the servers A1 to A3 immediately after a read request. Wasteful communication between the servers A1 to A3 and communication device 5 can be eliminated. The entire operation of the communication system 1 in such a case will be described with reference to
With a disc storage medium K being inserted, the DVD/CD drive 3 sends an insertion notice indicating insertion of a disc storage medium K to the DVD/CD controller 13 (Step S301).
Receiving the insertion notice, the DVD/CD controller 13 sends an interruption notice to the protocol serializer 10 (Step S302). The protocol serializer 10 further sends the interruption notice to the servers A1 to A3 (Step S303). Receiving the interruption notice, the servers A1 to A3 are enabled to send a read request to packet the communication device 5.
With the disc storage medium K being removed, the DVD/CD drive 3 sends a removal notice indicating removal of the disc storage medium K to the DVD/CD controller 13 (Step S401).
Receiving the removal notice, the DVD/CD controller 13 sends an interruption notice to the cache controller 11 (Step S402).
Receiving the interruption notice, the cache controller 11 initializes the cache table (
Receiving the removal notice, the DVD/CD controller 13 sends an interruption notice to the protocol serializer 10 (Step S404). The protocol serializer 10 further sends the interruption notice to the servers A1 to A3 (Step S405).
Unlike the above embodiment, the drive address and cache address in the cache table (
Furthermore, the cache table can be modified as shown in
When the cache table in
Furthermore, it is possible that the communication device 5 is provided with a detection part detecting whether it is possible to read data from a disc storage medium K, starts writing data stored on the disc storage medium K in the cache memory 4 when the detection part detects that it is possible to read data, and starts accepting a read request and obtaining the target data corresponding to the read request from the cache memory 4 after all data stored on the disc storage medium K are written in the cache memory 4. In such a case, no cache table is provided in the cache controller 11 and the procedure to determine whether the target data are present in the cache memory 4 is eliminated. Therefore, the cache controller 11 can significantly be simplified in structure.
Alternatively, it is possible to start writing data in the cache memory 4 and, in parallel, write the target data in response to reception of a read request after the detection part detects that it is possible to read data. In such a case, all data on the disc storage medium K are written in the cache memory 4 in a given time period even if no read request is sent from the servers A1 to A3. Therefore, it is more likely that the target data read from the cache memory 4 are sent to the servers A1 to A3. Then, the time to install the target data can be reduced.
The number of servers A provided to the communication system 1 is not limited to three as in the above embodiment and any number of servers can be provided.
The number of DVD/CD drive 3 provided to the communication system 1 is not limited to one as in the above embodiment and any number of DVD/CD drives can be provided. In such a case, the read request packet (
In addition, the above-described hardware configuration and flowchart is given by way of example and any changes and modifications can be made.
The communication device 5 can be realized by a conventional computer system. For example, the computer programs for executing the above-described operation are stored and distributed on a computer-readable recording medium (flexible disc, CD-ROM, DVD-ROM, etc.) and installed on a computer to configure the communication device 5 executing the above-described procedures. Alternatively, the computer programs can be stored in a storage device of a server on a communication network such as the Internet and downloaded on a conventional computer system to configure the parts of the communication device 5.
The above embodiment will partly or entirely be described as in the following subjunction, but not limited thereto.
(Subjunction 1)
A communication device, comprising:
a receiver receiving read requests for data stored on a disc storage medium from multiple servers;
a serializer arranging the read requests received by the receiver a processing order;
a writer writing data stored on the disc storage medium in a cache memory;
a determiner determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged by the serializer;
an information acquirer acquiring the target data from the cache memory when the determiner determines that the target data are present in the cache memory, and acquiring the target data from the disc storage medium when the determiner determines that the target data are not present in the cache memory; and
a transmitter sending the target data acquired by the information acquirer to the server of the transmission source of the read request corresponding to the target data.
(Subjunction 2)
The communication device according to Subjunction 1, wherein:
the serializer serializes the read requests by storing the read requests received by the receiver in the order of reception, retrieving the stored read requests in the first-in first-out manner, and sending them to the determiner.
(Subjunction 3)
The communication device according to Subjunction 1 or 2, wherein:
the writer writes the target data acquired by the information acquirer in the cache memory when the determiner determines that the target data are not present in the cache memory.
(Subjunction 4)
The communication device according to Subjunction 1 or 2, wherein:
the writer writes all data stored on the disc storage medium in the cache memory; and
the information acquirer acquires the target data from the cache memory after the writer writes all data stored on the disc storage medium in the cache memory.
(Subjunction 5)
The communication device according to Subjunction 4, further comprising:
a detector detecting whether it is possible to read data from the disc storage medium,
wherein the writer starts writing the target data stored on the disc storage medium in the cache memory when the detector detects that it is possible to read data.
(Subjunction 6)
The communication device according to any of Subjunction 1 to 5, further comprising:
a detector detecting whether it is possible to read data from the disc storage medium,
wherein the writer deletes all of the target data written in the cache memory when the detector detects that it is impossible to read data.
(Subjunction 7)
The communication device according to any of Subjunction 1 to 6, wherein:
the cache memory has a capacity equal to or larger than the capacity of the disc storage medium.
(Subjunction 8)
A communication method, comprising:
a reception step of receiving read requests for data stored on a disc storage medium from multiple servers;
a serialization step of arranging the read requests received in the reception step in a processing order;
a writing step of writing data stored on the disc storage medium in a cache memory;
a determination step of determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged in the serialization step;
an information acquisition step of acquiring the target data from the cache memory when it is determined that the target data are present in the cache memory in the determination step, and acquiring the target data from the disc storage medium when it is determined that the target data are not present in the cache memory; and
a transmission step of sending the target data acquired in the information acquisition step to the server of the transmission source of the read request corresponding to the target data.
(Subjunction 9)
The communication method according to Subjunction 8, wherein:
in the serialization step, the read requests are serialized by storing the read requests received in the reception step in the order of reception, retrieving the stored read requests in the first-in first-out mariner, and sending them to the executer of the determination step.
(Subjunction 10)
The communication method according to Subjunction 8 or 9, wherein:
in the writing step, the target data acquired in the information acquisition step are written in the cache memory when it is determined that the target data are not present in the cache memory in the determination step.
(Subjunction 11)
The communication method according to Subjunction 8 or 9, wherein:
in the writing step, all data stored on the disc storage medium are written in the cache memory; and
in the information acquisition step, the target data are acquired from the cache memory after all data stored on the disc storage medium are written in the cache memory in the writing step.
(Subjunction 12)
The communication device according to Subjunction 11, further comprising:
a detection step of detecting whether it is possible to read data from the disc storage medium,
wherein in the writing step, the writing of the target data stored on the disc storage medium in the cache memory starts after it is detected that it is possible to read data in the detection step.
(Subjunction 13)
The communication device according to any of Subjunction 8 to 12, further comprising:
a detector detecting whether it is possible to read data from the disc storage medium,
wherein the writer deletes all of the target data written in the cache memory when the detector detects that it is impossible to read data.
(Subjunction 14)
A computer-readable recoding medium storing programs that allow a computer to function as:
a receiver receiving read requests for data stored on a disc storage medium from multiple servers;
a serializer arranging the read requests received by the receiver in a processing order;
a writer writing data stored on the disc storage medium in a cache memory;
a determiner determining whether the target data corresponding to the read requests are present in the cache memory in the order of the read requests arranged by the serializer;
an information acquirer acquiring the target data from the cache memory when the determiner determines that the target data are present in the cache memory, and acquiring the target data from the disc storage medium when the determiner determines that the target data are not present in the cache memory; and
a transmitter sending the target data acquired by the information acquirer to the server of the transmission source of the read request corresponding the target data.
The present invention is suitable for a system controlling access to a data storage medium.
Having described and illustrated the principles of The present application by reference to one preferred embodiment, it should be apparent that the preferred embodiment may be modified in arrangement and detail without departing from the principles disclosed herein and that it is intended that the application be construed as including all such modifications and variations insofar as they come within the spirit and scope of the subject matter disclosed herein.
Number | Date | Country | Kind |
---|---|---|---|
2011-068271 | Mar 2011 | JP | national |