[0001] The present invention relates to a data transfer control system for controlling a
data request to a higher-rank CPU upon transfer of write data from the higher-rank
CPU by means of the packet communication or the like in a lower-rank information recording
sub-system connected to a higher-rank apparatus such as the higher-rank CPU or the
like.
[0002] A communication control unit such as an optical communication control unit or the
like used in such a lower-rank information recording sub-system includes a buffer
for controlling a different transfer speed (input from the higher-rank CPU and output
to a lower-rank memory unit) and requests the higher-rank CPU to send data for the
size or capacity of the buffer upon control of writing. Once the request of data for
the buffer capacity is performed, the data request is stopped and the communication
control unit waits until the data for one request is delivered from the buffer to
a lower-rank memory unit provided at a lower-rank position. When the data for one
request is delivered, the communication control unit transmits the data request to
the higher-rank CPU again. The communication control unit controls the data transfer
from the higher-rank CPU to the lower-rank memory unit by repetition of the above
operation. A conventional data transfer control system described above is disclosed
in JP-A-4-225452.
[0003] With such a conventional system, however, as a length of the communication cable
for connecting the higher-rank CPU and the information recording sub-system is made
longer, there is a case where a time from the data request to the data arrival therefor
in the information recording sub-system exceeds the data delivering time of the buffer
in the full state. In the request of data for the buffer capacity, even if a next
data request is sent after the data has been reached in the buffer once, the delivering
of data to the lower-rank memory unit from the buffer is completed earlier before
the next data is received. Accordingly, an empty state of the buffer occurs and the
data transfer is interrupted during the empty state of the buffer, so that the buffer
is not used efficiently.
[0004] The cause that the buffer becomes empty is that the next data request to the higher-rank
CPU is stopped until data is reached when the request of data for the buffer capacity
is sent from the communication control unit to the higher-rank CPU. The reason why
the data request is stopped is that data is prevented from overflowing from the buffer
(a pointer at an input side is prevented from passing a pointer at an output side).
Accordingly, in order to prevent data from being interrupted in the buffer while avoiding
the data from overflowing from the buffer when the data request is sent to the higher-rank
CPU from the communication control unit, the data request is sent with an interval
corresponding to a delivering time of data for one data request from the buffer to
the lower-rank memory unit between sending of the data request and sending of the
next data request, so that an interval of sending the data request from the information
recording sub-system to the higher-rank CPU is maintained to be fixed.
[0005] Aspects of our proposals are set out in the claims.
[0006] In one particular aspect, utulization of a transfer delay time due to a length of
cable for connecting the information recording sub-system and the higher-rank CPU
can take data into the buffer periodically and since the buffer does not become the
empty state, a transfer waiting time to the lower-rank memory unit can be removed
to attain efficient data transfer.
Fig. 1 is a schematic diagram illustrating a disk sub-system including an optical
communication control unit according to an embodiment of the present invention;
Fig. 2 is a flow chart showing microprogram control of the optical communication control
unit according to the embodiment of the present invention; and
Fig. 3 is a detailed flow chart showing microprogram control of the optical communication
unit according to the embodiment of the present invention.
[0007] Fig. 1 is a schematic diagram illustrating a disk unit sub-system according to an
embodiment of the present invention.
[0008] In Fig. 1, a disk control unit 3 includes an optical communication control unit 4
for controlling a communication protocol with a higher-rank optical channel 1, an
external memory control unit 9 for controlling a lower-rank disk unit 11 and a channel
control unit 7 communicating with both of them. The control units are connected through
an optical fiber cable 2, a path 6 between the optical communication control unit
and the channel control unit, a path 8 between the channel control unit and the external
memory control unit, and a path 10 between the external memory control unit and the
disk unit. Further, the higher-rank optical channel 1 is connected to a higher-rank
CPU (not shown).
[0009] The optical communication control unit 4 includes a buffer 5 and stores write data
from the higher-rank CPU through the optical channel 1 and read data from the disk
unit 11 into the buffer 5 to thereby perform data transfer. The data stored in the
buffer 5 is transferred to the channel control unit 7 or the higher-rank optical channel
1 by means of the hardware control of the optical communication control unit 4.
[0010] Fig. 2 is a flow chart showing the write data transfer control of the optical communication
control unit in the embodiment of the present invention.
[0011] Fig. 3 is a detailed flow chart of the write data transfer control of the optical
communication control unit in the embodiment of the present invention.
[0012] Referring now to Fig. 1 and the flow chart of Fig. 2, the flow of control is described
in brief. First of all, the write data transfer is started from (step 100). The write
data transfer control involves the data transfer control (step 101) of data for the
buffer capacity or less at the beginning of the control, the data transfer control
(step 102) before arrival of data, and the data transfer control (step 103) after
arrival of data. After execution of the data transfer control, the data transfer is
finished (step 104).
[0013] In the transfer control (steps 101, 201 to 210) of data for the buffer capacity or
less, the request of data for the capacity of the buffer 5 or less is indicated to
the optical channel 1.
[0014] Once the request of data for the capacity of the buffer 5 or less is first indicated
in step 101, the process proceeds to the data transfer control before arrival of data
at the next step 102.
[0015] In the data transfer control (steps 102, 301 to 310) before arrival of data, the
optical communication control unit 4 monitors a logical empty state of the buffer
and indicates the data request to the optical channel 1. In the monitoring process
of the logical empty state of the buffer, the data transfer from the buffer 5 to the
channel control unit 7 by the physical hardware control is not performed yet before
arrival of data and accordingly the empty state of the buffer 5 is monitored from
an average data transfer speed of the hardware control for each transfer control request
of data for the buffer capacity or less at step 101 to indicate the data request.
[0016] Thereafter, when the first data for the buffer capacity or less requested at step
101 is reached, the process proceeds to the data transfer control after arrival of
data at step 103.
[0017] In the data transfer control (steps 103, 401 to 408) after arrival of data, the optical
communication control unit 4 monitors the physical empty state of the buffer and indicates
the data request to the optical channel 1. In the monitoring process of the physical
empty state of the buffer, the data transfer from the buffer 5 to the channel control
unit 7 by the hardware control is performed by the optical communication control unit
4 after arrival of the data and accordingly the empty state of the buffer 5 is monitored
by the hardware control to indicate the data request for data left at steps 101 and
102.
[0018] Referring now to Fig. 1 and the flow chart of Fig. 3, the control flow of the write
data transfer of the optical communication control unit 4 is described in detail.
[0019] First of all, as an initial value of a remaining number A of write data, the number
of whole write data obtained by the start indication of the write data transfer from
the higher-rank CPU is set. The buffer capacity B represents the number of data capable
of being stored in the buffer 5. The packet capacity P represents the maximum number
of data capable of being stored in a packet. A delivering timer value AT of the data
number A represents a timer value (hour) of delivering data for the data number A
starting from a final data request indication to proceed from step 102 to 103 on the
basis of the average data transfer speed from the buffer 5 to the channel control
unit 7 by the hardware control. Finally, a delivering timer value PT of the data number
P represents a timer value (hour) of delivering data for the data number P from the
buffer 5 starting from the final data request indication to proceed from step 102
to 103 on the basis of the average data transfer speed from the buffer 5 to the channel
control unit 7 by the hardware control.
[0020] As shown at step 101 of Fig. 2, the transfer control of write data for the capacity
or less of the buffer 5 is first described. The write data transfer is started from
step 200 in response to the transfer start indication of the write data to the optical
communication unit 4 from the higher-rank optical channel 1. Then, values A, B and
P are set as the whole write data number, the buffer capacity, and the packet capacity,
respectively (step 201).
[0021] Thus, when the remaining write data number is larger than the buffer capacity (A>B)
(step 202), the request indication (step 203) of data corresponding to the value P
to be stored in the buffer 5 in a unit of the packet capacity is performed to the
higher-rank CPU in order to perform the request of data for the buffer capacity or
less to the higher-rank CPU. Then, in order to monitor the data request indication
number, the value P is subtracted from the values B and A (B=B-P and A=A-P) (steps
204 and 205). In order to control the transfer of write data within the buffer capacity,
steps 203 - 205 are repeated as far as the value B is larger than the value P (B>P)
(step 206). When the value P becomes larger than the value B, the process proceeds
to step 301.
[0022] Further, when the remaining write data number is not larger than the buffer capacity
(step 202), the data request indication (step 208) is performed to the higher-rank
CPU in a unit of the packet capacity as far as the value A is larger than or equal
to the value P (A≧P) (step 207), and in order to monitor the data request indication
number, the value P is subtracted from the value A (A=A-P) (step 209). Finally, when
the value A is smaller than the value P (step 207), the request indication of data
corresponding to the value A is performed to the higher-rank CPU (step 210) and the
process proceeds to step 407.
[0023] Control until arrival of data requested up to step 206, which is a point of the present
invention, is now described. The values AT and PT for performing the data request
indication are first set to timers (step 301). Then, as long as the value A is larger
than or equal to the value P (A≧P) (step 302), the logical buffer empty state is monitored
in order to further perform the request of data requested up to step 206. That is,
while the arrival of data is monitored (step 303), the arrival state to the buffer
5 of the data requested up to step 206 is monitored on the basis of the average data
transfer speed of the hardware control. More particularly, for the purpose of monitoring
of a delivering time of the data corresponding to the value P, a timer value is subtracted
from the value PT (step 305) and the data arrival is monitored (step 303) until the
value PT is equal to zero (PT=0). When the delivering time of data corresponding to
the value P elapses from the final data request indication at step 203 before arrival
of data (PT=0) (step 304), the request indication of data corresponding to the value
P is performed to the higher-rank CPU (step 306) and the value P is subtracted from
the value A (step 307). Thus, the monitoring of the data arrival and the delivering
time of data corresponding to the value P is performed again (steps 303 - 305). When
data at the head of the data requested at step 203 has arrived (step 303), the process
proceeds to step 401. Then, when the remaining write data number from the higher-rank
CPU is smaller than the packet capacity before arrival of data (step 302), the delivering
time AT of data corresponding to the value A is monitored from the final data request
indication at step 306 (step 308). The request indication of data number A is performed
(step 310) to the higher-rank CPU and the process proceeds to step 407.
[0024] Finally, control after arrival of data is described. Data reached or stored in the
buffer 5 is transferred to the channel control unit 7 by the hardware control. The
data request after arrival of data is switched from the method of performing the data
request by the delivering time for one packet before arrival of data to the method
of monitoring in the buffer 5 that transfer of data for one packet to the channel
control unit is completed. At step 401, sending of data to the channel control unit
7 by the hardware control is monitored from the final data request indication at step
306 and when the hardware has completed transfer of data corresponding to the value
P to the channel control unit 7, the request indication of data corresponding to the
value P is performed to the higher-rank CPU (step 402) and the value P is subtracted
from the value A (step 403). As long as the value A is larger than or equal to the
value P (A≧P), the process at steps 401 - 403 is repeated. When the value A is smaller
than the value P, sending of data to the channel control unit 7 by the hardware control
is monitored from the final data request indication and when the hardware has completed
transfer of data corresponding to the value A to the channel control unit 7, the final
request indication of data corresponding to the value A is performed to the higher-rank
CPU (step 406) and the process proceeds to step 407.
[0025] Finally, sending of data to the channel control unit 7 by the hardware control is
monitored (step 407) and when data for the whole write data number can be sent to
the channel control unit 7, the write data transfer is finished (step 408). This method
is performed in order to improve the reliability of data transfer.
[0026] In the configuration of the embodiment, even if the length of cable is varied, a
fixed transfer speed can be maintained by sending the request of a fixed amount of
data at intervals of a fixed time.
1. A data transfer control system in a data transfer apparatus (3) including a plurality
of data processing units having different data transfer speeds and temporarily holding
means (5) provided between said data processing units for temporarily holding data
transferred between said data processing units (1), comprising:
causing said data transfer apparatus to send a transfer request of data corresponding
to a data storage capacity of said temporarily holding means (5) of said data transfer
apparatus to said data processing unit (1) on the side of sending data; and
sending a transfer request of data corresponding to the data storage capacity of
said temporarily holding means after an elapse of a delivering time of data to an
information processing unit (11) on the data transferred side of said temporarily
holding means from sending of said data transfer request while said requested data
from said data processing unit on the sending side of data reaches said temporarily
holding means of said data transfer apparatus.
2. A data transfer control system according to Claim 1, wherein
said step of sending the first data transfer request comprises sending the data
transfer request repeatedly every data transfer unit between said data processing
unit on the data sending side and said data transfer apparatus until said data storage
capacity of said temporarily holding means (5) is reached; and
sending the transfer request of data of said data transfer unit to said data processing
unit on the data sending side every elapse of a transfer time of data of said data
transfer unit from said temporarily holding means to said information processing unit
on the data transferred side while said requested data from said data processing unit
on the data sending side reaches said temporarily holding means of said data transfer
apparatus.
3. A data transfer control system according to Claim 2, comprising sending the transfer
request of data of said data transfer unit to said information processing unit on
the data sending side after sending of data of said data transfer unit from said temporarily
holding means (5) to said data processing unit on the data transferred side after
arrival of data to said temporarily holding means.
4. A data transfer control system according to Claim 1, wherein
said transfer request of data corresponding to said data storage capacity of said
temporarily holding means (5) is repeatedly sent until all data to be sent from said
information processing means on the data sending side is sent.
5. A data transfer control system according to Claim 4, wherein
said transfer request of data corresponding to said data storage capacity of said
temporarily holding means (5) is repeatedly sent every data transfer unit between
said data processing unit on the data sending side and said data transfer apparatus.