JPH11167468A - Data transfer device - Google Patents

Data transfer device

Info

Publication number
JPH11167468A
JPH11167468A JP33187297A JP33187297A JPH11167468A JP H11167468 A JPH11167468 A JP H11167468A JP 33187297 A JP33187297 A JP 33187297A JP 33187297 A JP33187297 A JP 33187297A JP H11167468 A JPH11167468 A JP H11167468A
Authority
JP
Japan
Prior art keywords
transfer
data
request
unit
type
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.)
Pending
Application number
JP33187297A
Other languages
Japanese (ja)
Inventor
Shinji Furuya
晋二 古屋
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP33187297A priority Critical patent/JPH11167468A/en
Publication of JPH11167468A publication Critical patent/JPH11167468A/en
Pending legal-status Critical Current

Links

Abstract

PROBLEM TO BE SOLVED: To provide a data transfer device where overhead is reduced and data transfer ability is improved. SOLUTION: A processor 7 generates a request A for data transfer to the area of a transfer buffer 4 from a magnetic disk device 8 and generates a request B for instructing data transfer to an outer output device 9 from the area whenever the data is transferred. At that time, the processor 7 judges the presence or absence of the idle area by a simple processing for judging whether request queue parts 5 of fixed length <=N are full or not. When the idle area exists, the request A is issued to an interface part 2. An interface part 3 takes out the request B kept by the request queue part 5 and transfers data from the transfer buffer 4 to the outer output device 9.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は転送バッファを静的
に確保して各領域を再利用しながら非同期的にデータ転
送を行なうデータ転送装置に関する。
[0001] 1. Field of the Invention [0002] The present invention relates to a data transfer device for asynchronously transferring data while reserving a transfer buffer statically and reusing each area.

【0002】[0002]

【従来の技術】近年、映像データを配信するビデオオン
デマンドシステムやビデオサーバシステムなどが実用化
されている。これらのシステムでは、ディスク装置から
読みだされた映像データを転送バッファを経由して外部
装置に転送するデータ転送装置が用いられている。図1
0は、従来の転送バッファの各領域をサイクリックに使
用しながらデータ転送を行なうデータ転送装置の構成を
示す。このデータ転送装置は、インターフェース部3
2、33(以下I/F部A、I/F部Bと呼ぶ)、転送
バッファ34、プロセッサ37、磁気ディスク装置38
から構成される。プロセッサ37は、リクエストキュー
部35、ポインタ部36を含む。
2. Description of the Related Art In recent years, video-on-demand systems and video server systems for distributing video data have been put to practical use. In these systems, a data transfer device that transfers video data read from a disk device to an external device via a transfer buffer is used. FIG.
0 indicates a configuration of a conventional data transfer device that performs data transfer while cyclically using each area of a transfer buffer. This data transfer device has an interface unit 3
2, 33 (hereinafter referred to as I / F unit A and I / F unit B), transfer buffer 34, processor 37, magnetic disk device 38
Consists of The processor 37 includes a request queue unit 35 and a pointer unit 36.

【0003】I/F部Aは、磁気ディスク装置38から
転送バッファ34へのDMA(Direct Access Memory)に
よるデータ転送を実行する。このデータ転送は、プロセ
ッサ37から発行されるリクエスト(以下リクエストA
と呼ぶ)に従って実行される。リクエストAは、磁気デ
ィスク装置8の読み出しコマンド、転送バッファ34の
転送先アドレス、転送データサイズを含む。I/F部B
は、転送バッファ34から外部装置39へのDMAによ
るデータ転送を実行する。このデータ転送は、リクエス
トキュー部35の先頭から取り出されたリクエスト(以
下リクエストBと呼ぶ)に従って実行される。リクエス
トBは、転送バッファ34の転送元アドレス、転送デー
タサイズ、外部装置への書き込み(又は送信)コマンド
を含む。転送バッファ34は、サイクリックに使用され
る3つの領域を有し、磁気ディスク装置38から読み出
されたデータを外部装置39に一定速度で供給するため
のバッファである。各領域は、上記リクエストA、Bに
指定されているデータサイズを有する。
The I / F section A executes data transfer from the magnetic disk device 38 to the transfer buffer 34 by using a DMA (Direct Access Memory). This data transfer is performed by a request issued from the processor 37 (hereinafter, request A).
). The request A includes a read command of the magnetic disk device 8, a transfer destination address of the transfer buffer 34, and a transfer data size. I / F part B
Executes data transfer from the transfer buffer 34 to the external device 39 by DMA. This data transfer is executed in accordance with a request (hereinafter, referred to as a request B) extracted from the head of the request queue unit 35. The request B includes a transfer source address of the transfer buffer 34, a transfer data size, and a write (or transmission) command to an external device. The transfer buffer 34 has three areas used cyclically, and is a buffer for supplying data read from the magnetic disk device 38 to the external device 39 at a constant speed. Each area has the data size specified in the requests A and B.

【0004】リクエストキュー部35は、プロセッサ3
7の内部RAM上に設けられ、上記リクエストBをキュ
ーイングするための可変長のリスト構造のキューであ
る。図11に、3つのリクエストBが格納されている場
合のリクエストキュー部35の具体例を示す。同図では
先入れ先出し式に格納するため、各リクエストBは先頭
方向を示す前ポインタと末尾方向を示す後ポインタとに
より管理されている。但し先頭のリクエストBの
「−」、末尾のリクエストBの「−」は、それぞれ先
頭、末尾であることを示す。リクエストキュー部35
は、前ポインタ及び後ポインタにより任意の数のリクエ
ストBを連結することにより可変長のキューを構成して
いる。
[0004] The request queue unit 35 includes a processor 3
7 is a variable length list structured queue for queuing the request B, which is provided on the internal RAM 7. FIG. 11 shows a specific example of the request queue unit 35 when three requests B are stored. In FIG. 3, each request B is managed by a front pointer indicating a head direction and a rear pointer indicating a tail direction in order to store data in a first-in first-out manner. However, "-" of the first request B and "-" of the last request B indicate the first and last requests, respectively. Request queue unit 35
Constitutes a variable-length queue by linking an arbitrary number of requests B by a front pointer and a rear pointer.

【0005】ポインタ部36は、プロセッサ37の内部
RAM又はレジスタ上に設けられ、転送バッファ34の
書き込み可能な最初の領域を指す書き込みポインタ(以
下Wポインタと呼ぶ)、転送バッファ34の読みだすべ
きデータが格納されている最初の領域を指す読み出しポ
インタ(以下Rポインタと呼ぶ)とを有する。図12
に、ポインタ部36と転送バッファ34との関係を表し
た説明図を示す。同図において転送バッファ34は、第
1、第2、第3の領域の順にサイクリックに使用され、
第1及び第2の領域にのみ有効なデータが記憶されてい
るものとする。この場合、Rポインタは第1の領域を、
Wポインタは第3の領域を指すことになる。Wポインタ
は、プロセッサ37によりリクエストAが発行されるご
とに更新され、Rポインタは、I/F部Bによりリクエ
ストBに指示されるデータ転送が終了する毎に更新され
る。
The pointer section 36 is provided on an internal RAM or a register of the processor 37 and includes a write pointer (hereinafter referred to as a W pointer) pointing to the first writable area of the transfer buffer 34 and data to be read from the transfer buffer 34. And a read pointer (hereinafter, referred to as an R pointer) pointing to the first area in which is stored. FIG.
FIG. 3 is an explanatory diagram showing the relationship between the pointer section 36 and the transfer buffer 34. In the figure, the transfer buffer 34 is used cyclically in the order of the first, second, and third areas,
It is assumed that valid data is stored only in the first and second areas. In this case, the R pointer points to the first area,
The W pointer will point to the third area. The W pointer is updated each time a request A is issued by the processor 37, and the R pointer is updated each time data transfer indicated by the request B by the I / F unit B ends.

【0006】プロセッサ37は、磁気ディスク装置38
から例えば映画一本分を構成する映像データを継続的に
外部装置39に供給するために、上記リクエストAを生
成してインターフェース部32へ発行すること、リクエ
ストBを生成してリクエストキュー部35に一旦キュー
イングし、さらにインターフェース部33に発行するこ
とを、繰り返し実行する。
The processor 37 includes a magnetic disk drive 38
In order to continuously supply, for example, video data constituting one movie to the external device 39, the request A is generated and issued to the interface unit 32, and the request B is generated and transmitted to the request queue unit 35. Once queuing and issuing to the interface unit 33 are repeatedly executed.

【0007】転送バッファ34の各領域と、リクエスト
A、Bの転送データサイズと同一である場合には、リク
エストAとリクエストBとは1対1で対応する。具体的
には、プロセッサ37は、リクエストAを生成して発行
し、I/F部Aによるデータ転送終了後、このデータに
対するリクエストBを生成してリクエストキュー部35
に送る。さらに、プロセッサ37は、転送バッファ34
の第2、第3の領域に対して順に同様の処理行なった
後、再び第1の領域に戻って同様の処理を行う。
When each area of the transfer buffer 34 and the transfer data size of the requests A and B are the same, the request A and the request B correspond one-to-one. Specifically, the processor 37 generates and issues a request A. After the data transfer by the I / F unit A is completed, the processor 37 generates a request B for the data and generates a request B for the data.
Send to Further, the processor 37 includes the transfer buffer 34
After the same processing is sequentially performed on the second and third areas, the processing returns to the first area again and performs the same processing.

【0008】この間、I/F部Bは、リクエストキュー
部35からリクエストBを取り出しては転送バッファ3
4の1つの領域からデータを外部装置39に転送する。
I/F部Bのデータ転送終了時には、それを通知する割
込みによりプロセッサ37は、ポインタ部36のRポイ
ンタを更新する。またプロセッサ37は、インターフェ
ース部32に対しリクエストAを発行する際にWポイン
タとRポインタを検査にしてデータを読み出そうとする
転送バッファ34の領域が再利用可能な領域であるか
(未転送の領域を指すRポインタと同じ領域をWポイン
タが指していないか)どうかを判定する。再利用可能で
ないときは再利用可能となるまでリクエストAの発行を
待つ。
During this time, the I / F unit B takes out the request B from the request queue unit 35 and
4 from one area to the external device 39.
When the data transfer of the I / F unit B is completed, the processor 37 updates the R pointer of the pointer unit 36 by the interrupt for notifying the completion. Further, the processor 37 checks the W pointer and the R pointer when issuing the request A to the interface unit 32 and checks whether the area of the transfer buffer 34 in which the data is to be read out is a reusable area (untransferred area). It is determined whether or not the W pointer points to the same area as the R pointer that points to the area. If it is not reusable, it waits for issuance of request A until it becomes reusable.

【0009】[0009]

【発明が解決しようとする課題】しかしながら、上記従
来のデータ転送装置によれば、プロセッサのオーバーヘ
ッドが生じるためデータ転送能力を低下させていたとい
う問題があった。オーバーヘッドは、上記のI/F部B
のデータ転送終了時に割込みにより発生するRポインタ
の更新処理、I/F部AへのリクエストAの発行に際し
て発生する転送バッファ34の空き判定処理などにより
生じる。その結果、Rポインタの更新処理に起因してプ
ロセッサ37のリクエストAの生成処理が遅れてしま
い、さらに、空き判定処理に起因してプロセッサ37の
リクエストAの発行処理が遅れてしまうという不具合が
あった。
However, according to the conventional data transfer apparatus described above, there is a problem that the data transfer capability is reduced due to the overhead of the processor. The overhead is the above I / F section B
This occurs due to the update processing of the R pointer generated by an interrupt at the end of the data transfer, the processing of determining whether the transfer buffer 34 is empty when the request A is issued to the I / F unit A, and the like. As a result, the generation process of the request A of the processor 37 is delayed due to the update process of the R pointer, and the issue process of the request A of the processor 37 is delayed due to the vacancy determination process. Was.

【0010】本発明は、オーバーヘッドを低減しデータ
転送能力を向上したデータ転送装置を提供することを目
的とする。
An object of the present invention is to provide a data transfer device in which overhead is reduced and data transfer capability is improved.

【0011】[0011]

【課題を解決するための手段】上記問題点を解決するた
め本発明のデータ転送装置は、サイクリックに使用され
るN(Nは2以上の整数)個のバッファ領域を有するバ
ッファメモリを経由して、第1装置に記憶されたデータ
を第2装置に連続的に転送するデータ転送装置であっ
て、前記第1装置から前記バッファ領域へデータを転送
する第1転送手段と、バッファ領域から第2装置へデー
タを転送する第2転送手段と、前記第1装置から前記バ
ッファ領域へのデータ転送を要求する第1タイプの転送
要求を順次生成する第1生成手段と、第1転送手段によ
りデータ転送される毎に、当該データを保持するデータ
領域から前記第2装置へのデータ転送を指示する第2タ
イプの転送要求を生成する第2生成手段と、生成された
第2タイプの転送要求をキューとして保持するN個以下
の領域を有するキュー手段と、キュー手段がフル状態で
あるか否かを判定する判定手段と、判定手段によりフル
状態でないと判定されたとき、第1生成手段により生成
された第1タイプの転送要求を第1転送手段に発行させ
る第1制御手段と、キュー手段に保持された第2タイプ
の転送要求を第2転送手段に実行させる第2制御手段と
を備える。ここで前記キュー手段は、N個の前記領域を
有し、前記第2制御手段は、キュー手段に保持された第
2タイプの転送要求に従って第2転送手段に実行させた
後、当該第2タイプの転送要求をキュー手段から削除す
るよう構成してもよい。また前記キュー手段は、N個未
満の前記領域を有し、前記第2制御手段は、キュー手段
から第2タイプの転送要求を取り出して、当該第2タイ
プの転送要求を第2転送手段に実行させるように構成し
てもよい。
In order to solve the above-mentioned problems, a data transfer apparatus according to the present invention uses a buffer memory having N (N is an integer of 2 or more) buffer areas used cyclically. A data transfer device for continuously transferring data stored in a first device to a second device, a first transfer means for transferring data from the first device to the buffer region; Second transfer means for transferring data to the second device, first generation means for sequentially generating a first type of transfer request for requesting data transfer from the first device to the buffer area, and data by the first transfer means. A second generation unit that generates a second type of transfer request instructing data transfer from the data area holding the data to the second device every time the data is transferred; Means having N or less areas for holding the queue as a queue, determining means for determining whether or not the queue means is full, and when the determining means determines that the state is not full, the first generating means A first control unit for causing the first transfer unit to issue the generated first type transfer request; and a second control unit for causing the second transfer unit to execute the second type transfer request held in the queue unit. . Here, the queue unit has N areas, and the second control unit causes the second transfer unit to execute the second type according to the transfer request of the second type held in the queue unit, and then executes the second type. May be deleted from the queue means. The queue unit has less than N areas, and the second control unit extracts a second type of transfer request from the queue unit and executes the second type of transfer request to the second transfer unit. You may be comprised so that it may be performed.

【0012】[0012]

【発明の実施の形態】<実施の形態1> <データ転送装置の構成>図1は、本発明の第1の実施
の形態におけるデータ転送装置1と映像要求受信部6と
からなるビデオサーバの構成を示すブロック図である。
DESCRIPTION OF THE PREFERRED EMBODIMENTS First Embodiment <Configuration of Data Transfer Apparatus> FIG. 1 shows a video server including a data transfer apparatus 1 and a video request receiving unit 6 according to a first embodiment of the present invention. FIG. 3 is a block diagram illustrating a configuration.

【0013】このビデオサーバはデータ転送装置1のほ
か、映像要求受信部6からなり、外部からリクエストを
受けて外部出力装置9に映像データを送信する。データ
転送装置1は、インターフェース部2、インターフェー
ス部3、転送バッファ4、リクエストキュー部5、映像
要求受信部6、プロセッサ7、磁気ディスク装置8、外
部出力装置9とを備える。インターフェース部2は、磁
気ディスク装置8から転送バッファ4へのDMA(Direc
t Access Memory)によるデータ転送をブロック(例えば
256kバイト)単位に実行する。このデータ転送は、
プロセッサ7から発行されるリクエスト(以下リクエス
トAと呼ぶ)に従って実行される。リクエストAは、磁
気ディスク装置8に対する読み出しコマンド、転送バッ
ファ4の転送先アドレス、転送データサイズを含む。こ
こで読み出しコマンドは磁気ディスク装置8のセクタ番
号、読み出しデータサイズを含む。転送先アドレスは転
送バッファ4の何れかの領域の先頭アドレスである。転
送データサイズは1ブロックのデータサイズ(256k
バイト)である。
The video server includes a data transfer device 1 and a video request receiving unit 6, which receives a request from outside and transmits video data to an external output device 9. The data transfer device 1 includes an interface unit 2, an interface unit 3, a transfer buffer 4, a request queue unit 5, a video request receiving unit 6, a processor 7, a magnetic disk device 8, and an external output device 9. The interface unit 2 transmits a DMA (Direc) from the magnetic disk device 8 to the transfer buffer 4.
t Access Memory) is executed in units of blocks (for example, 256 kbytes). This data transfer is
It is executed according to a request issued from the processor 7 (hereinafter referred to as a request A). The request A includes a read command for the magnetic disk device 8, a transfer destination address of the transfer buffer 4, and a transfer data size. Here, the read command includes the sector number of the magnetic disk device 8 and the read data size. The transfer destination address is the start address of any area of the transfer buffer 4. The transfer data size is one block data size (256 k
Bytes).

【0014】インターフェース部3は、転送バッファ4
から外部出力装置9へのDMAによるデータ転送をブロ
ック(例えば256kバイト)単位に実行する。このデ
ータ転送は、リクエストキュー部5の先頭のリクエスト
(以下インターフェース部3宛のリクエストをリクエス
トBと呼ぶ)に従って実行される。その先頭のリクエス
トBは、データ転送終了時にリクエストキュー部5から
削除される。ここでリクエストBは、転送バッファ4の
転送元アドレス、転送データサイズ、外部装置への書き
込み(又は送信)コマンドを含む。ここで転送元サイズ
は転送バッファ4の何れかの領域の先頭アドレスであ
る。転送データサイズは1ブロックのデータサイズ(2
56kバイト)である。転送バッファ4は、サイクリッ
クに使用される複数の領域を有し、磁気ディスク装置8
から読み出されたデータを外部出力装置9に一定速度で
供給するためのバッファである。本実施例では転送バッ
ファ4の領域数は3、また各領域のデータサイズは、上
記リクエストA、Bに指定される転送データサイズと同
じであるものとする。リクエストキュー部5は、プロセ
ッサ7の内部RAM上に設けられ、上記リクエストBを
キューイングするためのキューである。本実施例ではリ
クエストキュー部5は、図2に示すように最大3個のリ
クエストを先入先出し式(FIFO:FirstIn First Out)方
式にキューイングする。リクエストキュー部5が保持す
るリクエスト数を最大3個としているのは、転送バッフ
ァ4の領域数と同数にするためである。また、リクエス
トキュー部5はバッファフルフラグ(図外)を有し、保
持しているリクエストBの数が3個のとき”1”(フル
状態)、2個以下のとき”0”(フル状態でない)を示
す。その結果、リクエストキュー部5がフル状態のとき
は、転送バッファ4の全ての領域にインターフェース部
3により転送すべきデータが存在することを意味する。
リクエストキュー部5のフル状態でないことは、転送バ
ッファ4に再利用可能な領域(インターフェース部2に
より書き込み可能な領域)が存在することを意味する。
The interface unit 3 includes a transfer buffer 4
The data transfer by DMA to the external output device 9 is executed in units of blocks (for example, 256 kbytes). This data transfer is executed in accordance with the request at the head of the request queue unit 5 (hereinafter, a request addressed to the interface unit 3 is referred to as a request B). The first request B is deleted from the request queue unit 5 at the end of the data transfer. Here, the request B includes a transfer source address of the transfer buffer 4, a transfer data size, and a write (or transmission) command to an external device. Here, the transfer source size is the head address of any area of the transfer buffer 4. The transfer data size is the data size of one block (2
56 kbytes). The transfer buffer 4 has a plurality of areas used cyclically, and the magnetic disk drive 8
Is a buffer for supplying the data read out from the external output device 9 at a constant speed. In this embodiment, the number of areas in the transfer buffer 4 is three, and the data size of each area is the same as the transfer data size specified in the requests A and B. The request queue unit 5 is provided on the internal RAM of the processor 7 and is a queue for queuing the request B. In this embodiment, the request queue unit 5 queues up to three requests in a first-in first-out (FIFO) manner as shown in FIG. The reason why the number of requests held by the request queue unit 5 is set to a maximum of three is to make the number equal to the number of areas of the transfer buffer 4. The request queue unit 5 has a buffer full flag (not shown). When the number of held requests B is three, it is “1” (full state), and when it is less than two, it is “0” (full state). Not). As a result, when the request queue unit 5 is in the full state, it means that data to be transferred by the interface unit 3 exists in all areas of the transfer buffer 4.
The fact that the request queue unit 5 is not in the full state means that a reusable area (an area writable by the interface unit 2) exists in the transfer buffer 4.

【0015】映像要求受信部6は、外部から(ビデオサ
ーバに対するユーザ端末装置から)映像要求を受信しプ
ロセッサ7に通知する。プロセッサ7は、内部にリクエ
ストキュー5を持ち、映像要求受信部6から映像要求を
受けて、その要求に対する映像データを連続的に外部出
力装置9へ供給するために、(1)インターフェース部2
へのリクエストAの生成及び発行、(2)インターフェー
ス部3へのリクエストBの生成及び発行を行う。上記
(1)については、プロセッサ7は、インターフェース部
2に対しリクエストAを生成した後、リクエストキュー
部5がフル状態でないかどうかをチェックし、フル状態
でない場合にはインターフェース部2へ生成したリクエ
ストBを発行する。
The video request receiving unit 6 receives a video request from outside (from a user terminal device for a video server) and notifies the processor 7 of the video request. The processor 7 has a request queue 5 therein, receives a video request from the video request receiving unit 6, and continuously supplies video data corresponding to the request to the external output device 9.
And issues and issues a request B to the interface unit 3. the above
Regarding (1), the processor 7 generates a request A for the interface unit 2 and then checks whether the request queue unit 5 is not full. If not, the processor 7 generates the request B for the interface unit 2. Issue

【0016】上記(2)については、プロセッサ7は、イ
ンターフェース部2によるデータ転送が終了する毎に、
インターフェース部3へのリクエストBを生成してリク
エストキュー部5に格納する。ただし空きがなければリ
クエストキュー部5が空きが生じるまで(インターフェ
ース部3によるデータ転送が終わるまで)待つ。磁気デ
ィスク装置8は、映画などの映像情報を記憶する。外部
出力装置9は、データ転送装置1からの映像データを受
信しながら再生するユーザの端末装置などである。外部
出力装置9は、インターフェース部3からケーブルテレ
ビ、公衆網、LANなどの通信回線を介してユーザ端末
に接続されていてもよい。
With respect to the above (2), every time the data transfer by the interface unit 2 is completed, the processor 7
A request B to the interface unit 3 is generated and stored in the request queue unit 5. However, if there is no free space, the request queue unit 5 waits until a free space is generated (until the data transfer by the interface unit 3 is completed). The magnetic disk device 8 stores video information such as a movie. The external output device 9 is, for example, a terminal device of a user who plays while receiving video data from the data transfer device 1. The external output device 9 may be connected to the user terminal from the interface unit 3 via a communication line such as a cable television, a public network, or a LAN.

【0017】<プロセッサの処理内容>図3は、プロセ
ッサ7によるリクエストA、Bの生成及び発行処理を示
すフローチャートである。プロセッサ7は、映像要求受
信部6から映像要求の通知を受けると、要求された映像
データの最初のブロックと、格納先となる転送バッファ
4の領域とを決定(第1の領域)し(ステップ31)、
決定されたブロックの読み出しを指示する読み出しコマ
ンドと、決定された領域の先頭アドレスと、ブロックサ
イズを転送データサイズとからなるリクエストAを生成
する(ステップ32)。
<Processing Contents of Processor> FIG. 3 is a flow chart showing the processing of generating and issuing requests A and B by the processor 7. Upon receiving the notification of the video request from the video request receiving unit 6, the processor 7 determines the first block of the requested video data and the area of the transfer buffer 4 to be the storage destination (first area) (Step 1). 31),
A request A including a read command instructing reading of the determined block, the start address of the determined area, and the block size as the transfer data size is generated (step 32).

【0018】次に、プロセッサ7は、リクエストキュー
5の状態を調べ、リクエストキュー5がフル状態であれ
ば(ステップ33:YES)、インターフェース部3によ
りリクエストBが実行されてフル状態でなくなるまでリ
クエストAの発行を待つ(ステップ34)。リクエスト
キュー5がフル状態でなければ(ステップ33:NO)イ
ンターフェース部2に対しリクエストAを発行する(ス
テップ35)。そして、インターフェース部2による転
送バッファ4の一の領域へのデータ転送の後、プロセッ
サ7は、その領域の映像データに対するリクエストBを
生成してリクエストキュー部5に送る(ステップ3
6)。続いて、プロセッサ7は、次の映像データのブロ
ックを磁気ディスク装置8から読み出すためにインター
フェース部2に対しリクエストAを生成し(ステップ3
7、38、32)、同様にリクエストキュー部5の状態
の検査とリクエストAの発行を行なう。さらに、プロセ
ッサ7は、次の映像データのブロックがもはや無い場合
には、次の映像要求を待つ(ステップ39、31)か又
は終了する。
Next, the processor 7 checks the state of the request queue 5, and if the request queue 5 is full (step 33: YES), the request is executed until the request B is executed by the interface unit 3 and is no longer full. Wait for issuance of A (step 34). If the request queue 5 is not in the full state (step 33: NO), a request A is issued to the interface unit 2 (step 35). After the data transfer to one area of the transfer buffer 4 by the interface unit 2, the processor 7 generates a request B for the video data in the area and sends it to the request queue unit 5 (step 3).
6). Subsequently, the processor 7 generates a request A to the interface unit 2 to read the next block of video data from the magnetic disk device 8 (step 3).
7, 38, 32), similarly, checking the state of the request queue unit 5 and issuing the request A. Further, the processor 7 waits for the next video request if there are no more blocks of video data (steps 39, 31) or ends.

【0019】なお、ステップ38におけるバッファ領域
の決定は、図12に示したようにWポインタの指してい
る領域が決定される。Wポインタ、Rポインタは、3つ
の領域をサイクリックに指すよう更新される。Wポイン
タは、プロセッサ7によりリクエストAが発行されたと
きに更新される。Rポインタは、プロセッサ7によって
リクエストBがリクエストキュー部5に格納されたとき
に更新される。以上のように構成された本発明の第1の
実施例におけるデータ転送装置について、その動作を説
明する。図4は、本データ転送装置の動作を説明する図
である。
In the determination of the buffer area in step 38, the area pointed to by the W pointer is determined as shown in FIG. The W pointer and the R pointer are updated so as to cyclically point to three areas. The W pointer is updated when the request A is issued by the processor 7. The R pointer is updated when the request B is stored in the request queue unit 5 by the processor 7. The operation of the data transfer device according to the first embodiment of the present invention configured as described above will be described. FIG. 4 is a diagram illustrating the operation of the data transfer device.

【0020】同図のように磁気ディスク装置8に記憶さ
れたデータは、インターフェース部2により転送バッフ
ァ4に転送され、さらにインターフェース部3により外
部出力装置9に転送される。インターフェース部2によ
るデータ転送はプロセッサ7から発行されるリクエスト
Aに、インターフェース部3によるデータ転送はプロセ
ッサ7から発行されるリクエストBに従って実行され
る。プロセッサ7は、次のようにしてリクエストA、B
を発行する。リクエストAについては、プロセッサ7
は、リクエストキュー5の状態を調べ、リクエストキュ
ー5がフル状態でなければインターフェース部2に対し
リクエストAを発行する。リクエストキュー5がフル状
態であればインターフェース部3によりリクエストBが
実行されてフル状態でなくなるまでリクエストAの発行
を待つ。リクエストBについては、プロセッサ7は固定
長のリクエストキュー部5に格納することにより発行す
る。
The data stored in the magnetic disk device 8 as shown in FIG. 1 is transferred to the transfer buffer 4 by the interface unit 2 and further transferred to the external output device 9 by the interface unit 3. Data transfer by the interface unit 2 is executed in accordance with a request A issued from the processor 7, and data transfer by the interface unit 3 is executed in accordance with a request B issued by the processor 7. The processor 7 makes the requests A and B as follows.
Issue For request A, processor 7
Checks the state of the request queue 5 and issues a request A to the interface unit 2 if the request queue 5 is not full. If the request queue 5 is full, the interface unit 3 executes the request B and waits for the issuance of the request A until the request queue 5 is not full. The processor 7 issues the request B by storing it in the fixed-length request queue unit 5.

【0021】以上のように本実施形態におけるデータ転
送装置によれば、インターフェース部2とインターフェ
ース部3のデータ転送単位が同一であるとき、プロセッ
サ17がもつリクエストキュー部5の固定サイズが転送
バッファ4の分割数と同じ3であるので、インターフェ
ース部2により記憶装置からデータを読み出す前にイン
ターフェース部2へのリクエストキューがフル状態でな
いかどうかをチェックするという簡単な処理でバッファ
メモリに空き領域があるかどうかを判定できる。すなわ
ち、プロセッサ7がリクエストAを発行する前に、リク
エストキュー部5がフル状態か否かをチェックすること
により、転送バッファ4に使用可能な領域があるか否か
を判定することができる。その結果、リクエストAを迅
速に発行することになり、データ転送を早く開始するこ
とができ、データ転送の効率を向上させることができ
る。このように、プロセッサ7は、転送バッファ4の空
き判定処理が極めて簡単になり、オーバーヘッドを低減
することができる。なお、ここではリクエストキュー5
の固定サイズを3としたが、転送バッファ4の領域数が
3である場合、リクエストキュー部5の固定サイズは3
以下であってもよい。言い換えれば、転送バッファ4の
領域数がNである場合、リクエストキュー部5の固定サ
イズがNである場合を上記実施形態で説明したが、リク
エストキュー部5の固定サイズがN個未満であってもよ
い。その場合(N個未満の場合)、上記インターフェー
ス部3は、まずリクエストキュー部5から先頭のリクエ
ストBを取り出し(キューから削除し)、それから当該
リクエストBに従ってデータ転送を行うことが望まし
い。N個未満の場合には、リクエストキュー部5がフル
状態でなくなった時点で、転送バッファ4に空き領域が
存在するからである。
As described above, according to the data transfer apparatus of this embodiment, when the data transfer unit of the interface unit 2 and the interface unit 3 is the same, the fixed size of the request queue unit 5 of the processor 17 is Since the number of divisions is equal to 3, the buffer memory has free space by a simple process of checking whether the request queue to the interface unit 2 is not full before the interface unit 2 reads data from the storage device. Can be determined. That is, before the processor 7 issues the request A, by checking whether or not the request queue unit 5 is full, it is possible to determine whether or not there is an available area in the transfer buffer 4. As a result, the request A is issued quickly, so that the data transfer can be started earlier and the efficiency of the data transfer can be improved. As described above, the processor 7 can extremely easily perform the process of determining whether the transfer buffer 4 is empty, and can reduce the overhead. Here, the request queue 5
Is fixed, but if the number of areas in the transfer buffer 4 is 3, the fixed size of the request queue unit 5 is 3
It may be as follows. In other words, the case where the number of areas of the transfer buffer 4 is N and the case where the fixed size of the request queue unit 5 is N has been described in the above embodiment, but the fixed size of the request queue unit 5 is less than N. Is also good. In that case (less than N), it is desirable that the interface unit 3 first fetches (deletes from the queue) the first request B from the request queue unit 5 and then performs data transfer according to the request B. If the number is less than N, there is an empty area in the transfer buffer 4 when the request queue unit 5 is no longer in the full state.

【0022】<第2の実施形態> <データ転送装置の構成>図5は、本発明の第2の実施
形態におけるデータ転送装置11を備えたビデオサーバ
のブロック図である。同図において、図1に対して同じ
符号の構成要素は、同じものなので説明を省略し、以下
異なる点を主として説明する。
<Second Embodiment><Configuration of Data Transfer Apparatus> FIG. 5 is a block diagram of a video server including a data transfer apparatus 11 according to a second embodiment of the present invention. In the figure, the components having the same reference numerals as those in FIG. 1 are the same, and the description thereof will be omitted, and the following mainly describes the differences.

【0023】同図のデータ転送装置11は、第1の実施
形態に比べて、インターフェース部2の転送データサイ
ズ(ブロックのサイズ)がインターフェース部3の転送
データサイズのm(mは整数)倍になっている点が異な
っている。本実施例では、インターフェース部2の転送
データサイズは転送バッファ4の各領域のサイズに等し
く、256kバイトとする。また、上記mは4、つまり
インターフェース部3の転送データサイズは64kバイ
トとする。この場合、図7に示すように1つのリクエス
トAに従って転送バッファに転送されたデータは、さら
に4つのリクエストBに従って外部出力装置9に転送さ
れることになる。このため、データ転送装置11は、図
1のプロセッサ7の代わりに、リクエストキュー部16
とカウンタ15とを内部に有するプロセッサ17を備え
ている。
In the data transfer apparatus 11 of the figure, the transfer data size (block size) of the interface unit 2 is m (m is an integer) times the transfer data size of the interface unit 3 as compared with the first embodiment. Is different. In this embodiment, the transfer data size of the interface unit 2 is equal to the size of each area of the transfer buffer 4 and is 256 kbytes. Further, m is 4, that is, the transfer data size of the interface unit 3 is 64 kbytes. In this case, as shown in FIG. 7, the data transferred to the transfer buffer according to one request A is further transferred to the external output device 9 according to four requests B. For this reason, the data transfer device 11 replaces the processor 7 of FIG.
And a processor 17 having a counter 15 therein.

【0024】リクエストキュー部16は、図6に示すよ
うに、m*k個のリクエストBを保持するための固定長
のFIFOメモリである。ここでmは上記の倍数、kは
1以上n未満の数、nは転送バッファ4の領域数であ
る。本実施例では、mは4、kは1、nは3とする。リ
クエストキュー部16は4個のリクエストBを保持す
る。また、kはリクエストキュー部16に何個分のリク
エストAに相当するリクエストBを保持させるかを意味
する。本実施例では、リクエストキュー部16のサイズ
は、4個のリクエストBを保持できるので、1個分のリ
クエストAに相当する。
The request queue section 16 is a fixed-length FIFO memory for holding m * k requests B, as shown in FIG. Here, m is the above multiple, k is a number greater than or equal to 1 and less than n, and n is the number of areas in the transfer buffer 4. In this embodiment, m is 4, k is 1, and n is 3. The request queue unit 16 holds four requests B. Also, k means how many requests B corresponding to the requests A are held in the request queue unit 16. In the present embodiment, the size of the request queue unit 16 can hold four requests B, and thus corresponds to one request A.

【0025】カウンタ15は、転送バッファ4に空き領
域があるか否かを判定するためのカウンタである。その
ため、カウンタ15は、初期値として(n−k)(本実
施例では2となる)を保持し、プロセッサ17からイン
ターフェース部2へリクエストAが発行される毎にデク
リメント(−1)され、リクエストキュー部16に4個
分のリクエストBが格納される毎にインクリメント(+
1)される。この場合、カウンタ15の値が0でないと
きは、転送バッファ4に空き領域があることを意味し、
0であるときは、空き領域がないことを意味する。
The counter 15 is a counter for determining whether or not there is an empty area in the transfer buffer 4. Therefore, the counter 15 holds (nk) (2 in this embodiment) as an initial value, and is decremented (−1) each time the request A is issued from the processor 17 to the interface unit 2. Each time four requests B are stored in the queue unit 16, the increment (+
1) is done. In this case, if the value of the counter 15 is not 0, it means that there is an empty area in the transfer buffer 4, and
When it is 0, it means that there is no free area.

【0026】プロセッサ17は、インターフェース部2
に対し転送リクエストを生成して発行し、磁気ディスク
装置8から転送バッファ4の1つの領域にデータを読み
出した後、この領域のデータに対する転送リクエストを
4個に分けて生成してリクエストキュー部16に送る。
より具体的には、プロセッサ17は、カウンタ15の値
が0でないかどうかをチェックし、0でなければ、リク
エストAの発行して、カウンタ15をデクリメント(−
1)する。また、プロセッサ17は、リクエストキュー
部16に4個のリクエストBを格納する毎にカウンタ1
5をインクリメント(+1)する。
The processor 17 includes the interface unit 2
After the transfer request is generated and issued from the magnetic disk device 8 and the data is read out to one area of the transfer buffer 4, the transfer request for the data in this area is divided into four and generated, and the request queue 16 Send to
More specifically, the processor 17 checks whether the value of the counter 15 is not 0, and if not, issues a request A and decrements the counter 15 (−
1) Yes. Also, the processor 17 sets the counter 1 every time four requests B are stored in the request queue unit 16.
5 is incremented (+1).

【0027】<プロセッサ17によるリクエストAの生
成及び発行処理>図8は、プロセッサ17によるリクエ
ストAの生成及び発行処理を示すフローチャートであ
る。
<Generation and Issuance Process of Request A by Processor 17> FIG. 8 is a flowchart showing the generation and issue process of request A by the processor 17.

【0028】プロセッサ17は、映像要求受信部6から
映像要求の通知を受けると、要求された映像データの最
初のブロックと、格納先となる転送バッファ4の領域を
決定し(ステップ81)、決定されたブロックの読み出
しを指示する読み出しコマンドと、決定された領域の先
頭アドレスと、ブロックサイズを転送データサイズとか
らなるリクエストAを生成する(ステップ82)。
When the processor 17 receives the notification of the video request from the video request receiving unit 6, the processor 17 determines the first block of the requested video data and the area of the transfer buffer 4 as the storage destination (step 81). Then, a request A including a read command instructing the read of the determined block, the start address of the determined area, and the block size as the transfer data size is generated (step 82).

【0029】次に、プロセッサ17は、カウンタ15の
値を調べ、その値が0であれば(ステップ83:YE
S)、0でなくなるまでリクエストAの発行を待つ(ス
テップ84)。カウンタ15の値が0なければ(ステッ
プ83:NO)インターフェース部2に対しリクエストA
を発行する(ステップ85)。そして、インターフェー
ス部2による転送バッファ4の一の領域へのデータ転送
の後、プロセッサ17は、その領域の映像データに対す
る4個のリクエストBを生成する別のスレッドを起動す
る(ステップ86)。ここで別のスレッドとは、リクエ
ストBの生成及び発行処理を行い、図8の処理とは独立
に平行して実行される他のタスク又はプログラムのこと
である。このスレッドは、転送バッファ4の一の領域へ
のデータ転送毎に起動されるので複数個のスレッドが同
時に実行されることになる。複数のスレッドが起動され
ている場合、プロセッサ17は、起動された順にスレッ
ドを逐次処理するように複数のスレッドを管理してい
る。これは、リクエストAとリクエストBとの対応関係
を崩さない(転送データの順序を入れ替えない)ように
するためである。
Next, the processor 17 checks the value of the counter 15, and if the value is 0 (step 83: YE
S) Wait for issuance of request A until it is no longer 0 (step 84). If the value of the counter 15 is not 0 (step 83: NO), a request A is sent to the interface unit 2.
Is issued (step 85). Then, after data transfer to one area of the transfer buffer 4 by the interface unit 2, the processor 17 activates another thread for generating four requests B for the video data of the area (step 86). Here, another thread refers to another task or program that performs processing for generating and issuing the request B and that is executed independently and in parallel with the processing in FIG. This thread is started every time data is transferred to one area of the transfer buffer 4, so that a plurality of threads are executed simultaneously. When a plurality of threads are activated, the processor 17 manages the plurality of threads so as to sequentially process the threads in the order in which the threads are activated. This is to prevent the correspondence between the request A and the request B from being broken (the order of the transfer data is not changed).

【0030】続いて、プロセッサ17は、次の映像デー
タのブロックを磁気ディスク装置8から読み出すために
インターフェース部2に対しリクエストAを生成し(ス
テップ87、88、82)、上記と同様にしてカウンタ
15の値の検査とリクエストAの発行を行なう。さら
に、プロセッサ7は、全てのブロックに対してリクエス
トAの生成及び発効を終えれば、次の映像要求を待つ
(ステップ89、31)か又は終了する。
Subsequently, the processor 17 generates a request A to the interface unit 2 in order to read the next block of video data from the magnetic disk device 8 (steps 87, 88, 82). Inspection of the value of 15 and issue of request A are performed. Further, when the processor 7 finishes generating and issuing the request A for all the blocks, the processor 7 waits for the next video request (steps 89 and 31) or ends.

【0031】<プロセッサ17によるリクエストBの生
成及び発行処理>図9は、図8のステップ86において
起動されるリクエストBの生成及び発行処理を示すフロ
ーチャートである。
<Process of Generating and Issuing Request B by Processor 17> FIG. 9 is a flowchart showing the process of generating and issuing request B started in step 86 of FIG.

【0032】プロセッサ17は、リクエストAの転送先
として指定された領域を4つの(m個の)第1〜第4の
小ブロックに分割した場合の最初のブロック指定し(ス
テップ91)、指定された小ブロックの読み出しを指示
する読み出しコマンドと、指定された小ブロックの先頭
アドレスと、小ブロックのサイズ(64kバイト)を示
した転送データサイズとからなるリクエストBを生成す
る(ステップ92)。
The processor 17 designates the first block when the area designated as the transfer destination of the request A is divided into four (m) first to fourth small blocks (step 91), and is designated. A request B including a read command instructing the reading of the small block, the head address of the specified small block, and the transfer data size indicating the size of the small block (64 kbytes) is generated (step 92).

【0033】次に、プロセッサ17は、リクエストキュ
ー部16がフル状態であるかどうかを調べ、フル状態で
あれば(ステップ93:YES)、フル状態が解消される
までリクエストBの発行を待つ(ステップ94)。リク
エストキュー部16がフル状態でなければ(ステップ9
3:NO)、リクエストキュー部16に対しリクエストB
を発行する(ステップ95)。さらに、第2〜第4の小
ブロックについてもそれぞれ上記と同様にしてリクエス
トBを生成及び発行する(ステップ96:NO、97以
降)。こうして4つの小ブロックに対応するリクエスト
Bを発行した後(ステップ96:YES)、カウンタ15
の値をインクリメント(+1)する(ステップ98)。
Next, the processor 17 checks whether or not the request queue section 16 is full. If the request queue 16 is full (step 93: YES), the processor 17 waits for the issuance of the request B until the full state is resolved (step 93). Step 94). If the request queue unit 16 is not in the full state (step 9
3: NO), request B to the request queue unit 16
Is issued (step 95). Further, requests B are generated and issued for the second to fourth small blocks in the same manner as described above (steps 96: NO, 97 and thereafter). After issuing the request B corresponding to the four small blocks (step 96: YES), the counter 15
Is incremented (+1) (step 98).

【0034】以上のように構成された本実施の形態にお
けるデータ転送装置について、その動作を述べる。
The operation of the data transfer device according to the present embodiment configured as described above will be described.

【0035】本実施の形態におけるデータ転送装置11
の動作は、第1実施形態に比べて、プロセッサ17のリ
クエストAの生成及び発行処理においてカウンタ15の
値が0でないか0であるかを判定することによって転送
バッファ4に空き領域(再利用可能な領域)があるか否
かを判定する点と、リクエストBの生成及び発行処理に
おいて小ブロック毎にリクエストBを生成及び発行する
点と、カウンタ15を利用している点とが主として異な
っている。インターフェース部2がインターフェース部
3の4倍のデータ転送単位を持つとき、プロセッサ17
におけるリクエストキュー部16の固定サイズを4とす
るこで、リクエストキュー部16へリクエストBを4回
発行する毎に転送バッファ4の領域の1つが再利用可能
となる。
Data transfer device 11 in the present embodiment
Is different from the first embodiment in that the determination of whether the value of the counter 15 is not 0 or 0 in the generation and issuance processing of the request A by the processor 17 makes the transfer buffer 4 a free area (reusable The main difference lies in that it is determined whether or not there is a unique area, that the request B is generated and issued for each small block in the generation and issue processing of the request B, and that the counter 15 is used. . When the interface unit 2 has four times the data transfer unit of the interface unit 3, the processor 17
By setting the fixed size of the request queue unit 16 to 4, one area of the transfer buffer 4 can be reused every time the request B is issued four times to the request queue unit 16.

【0036】このときカウンタ15を用いて再利用可能
な領域数をインクリメントし、インターフェース部2に
転送リクエストを発行する際にカウンタ15の値が0で
ないか確認し、リクエストA発行後にカウンタ15をデ
クリメントするだけで転送バッファ4に空き領域の有無
を判定することができる。
At this time, the number of reusable areas is incremented using the counter 15, and when issuing a transfer request to the interface unit 2, it is checked whether the value of the counter 15 is not 0, and after the request A is issued, the counter 15 is decremented. It is possible to determine the presence or absence of an empty area in the transfer buffer 4 simply by performing the above operation.

【0037】以上のように本実施形態におけるデータ転
送装置によれば、インターフェース部2がインターフェ
ース部3の4倍のデータ転送単位を持つとき、プロセッ
サ17におけるリクエストキュー部16の固定サイズを
4とすることで、リクエストキュー部16へリクエスト
Bを4回発行する毎に転送バッファ4の領域の1つが再
利用可能となる。このときリクエストBを4回発行する
毎にカウンタ15は、インクリメントされる。インター
フェース部2にリクエストAを発行する際にカウンタ1
5の値が零でないか確認し、転送リクエスト発行後にカ
ウンタ15をデクリメントするだけで空き領域の有無を
簡単に判定することができる。その結果、リクエストA
を迅速に発行することになり、データ転送を早く開始す
ることができ、データ転送の効率を向上させることがで
きる。
As described above, according to the data transfer device of this embodiment, when the interface unit 2 has a data transfer unit four times as large as the interface unit 3, the fixed size of the request queue unit 16 in the processor 17 is set to 4. Thus, each time the request B is issued to the request queue unit 16 four times, one of the areas of the transfer buffer 4 can be reused. At this time, every time the request B is issued four times, the counter 15 is incremented. When issuing a request A to the interface unit 2, the counter 1
It is possible to easily determine the presence or absence of an empty area only by confirming whether the value of 5 is not zero and decrementing the counter 15 after issuing the transfer request. As a result, request A
Can be issued quickly, data transfer can be started earlier, and data transfer efficiency can be improved.

【0038】なお、カウンタ15は、初期値として3
(転送バッファ4の空き領域数)を保持し、プロセッサ
17からインターフェース部2へリクエストが発行され
る毎にデクリメント(−1)され、インターフェース部
3により4回のデータ転送が完了する毎にインクリメン
ト(+1)するように構成してもよい。この場合、イン
クリメントについては、インターフェース部3からのデ
ータ転送終了割込みにおいて、4回のデータ転送を終え
る毎にインクリメント(+1)するようにしてもよい。
The counter 15 has 3 as an initial value.
(The number of free areas in the transfer buffer 4), and is decremented (-1) each time a request is issued from the processor 17 to the interface unit 2, and incremented each time the interface unit 3 completes four data transfers. +1). In this case, the increment may be incremented (+1) every four data transfers in the data transfer end interrupt from the interface unit 3.

【0039】なお、上記実施形態では、リクエストキュ
ー部16の固定サイズを4としたが、4以下であっても
同様の効果が得られる。また、リクエストキュー部16
の固定サイズを8以下とし、カウンタ15の初期値を1
にしてもよい。
In the above embodiment, the fixed size of the request queue unit 16 is set to 4, but the same effect can be obtained even if the fixed size is 4 or less. The request queue unit 16
Is fixed at 8 or less, and the initial value of the counter 15 is 1
It may be.

【0040】また、第1の実施形態において、インター
フェース部2のデータ転送サイズが転送バッファ4の領
域の4分の4倍である場合には、リクエストキュー部1
6のサイズを3とし、リクエストキュー部16がフル状
態でないときカウンタ15を用いてインターフェース部
2に対して4回続けて転送リクエストを発行して転送バ
ッファへの転送終了後にリクエストキュー部16に転送
リクエストを送ることで、第1の実施例と同様に、リク
エストキュー部16がフル状態か否かをチェックするだ
けで容易に空き領域の有無を判定することができる。
In the first embodiment, when the data transfer size of the interface unit 2 is four quarters of the area of the transfer buffer 4, the request queue unit 1
When the request queue unit 16 is not in the full state, the transfer request is issued four times to the interface unit 2 continuously using the counter 15 and transferred to the request queue unit 16 after the transfer to the transfer buffer is completed. By sending the request, it is possible to easily determine whether or not there is an empty area simply by checking whether or not the request queue unit 16 is full, as in the first embodiment.

【0041】[0041]

【発明の効果】本発明のデータ転送装置は、サイクリッ
クに使用されるN(Nは2以上の整数)個のバッファ領
域を有するバッファメモリを経由して、第1装置に記憶
されたデータを第2装置に連続的に転送するデータ転送
装置であって、前記第1装置から前記バッファ領域へデ
ータを転送する第1転送手段と、バッファ領域から第2
装置へデータを転送する第2転送手段と、前記第1装置
から前記バッファ領域へのデータ転送を要求する第1タ
イプの転送要求を順次生成する第1生成手段と、第1転
送手段によりデータ転送される毎に、当該データを保持
するデータ領域から前記第2装置へのデータ転送を指示
する第2タイプの転送要求を生成する第2生成手段と、
生成された第2タイプの転送要求をキューとして保持す
るN個以下の領域を有するキュー手段と、キュー手段が
フル状態であるか否かを判定する判定手段と、判定手段
によりフル状態でないと判定されたとき、第1生成手段
により生成された第1タイプの転送要求を第1転送手段
に発行させる第1制御手段と、キュー手段に保持された
第2タイプの転送要求を第2転送手段に実行させる第2
制御手段とを備える。この構成によれば、判定手段によ
りキュー手段がフル状態でないかどうかをチェックする
という簡単な処理でバッファメモリに空きバッファ領域
があるかどうかを判定できる。すなわち、第1タイプの
転送要求を発行する前に、キュー手段がフル状態か否か
をチェックすることにより、バッファメモリに使用可能
な領域があるか否かを判定することができる。その結
果、第1転送要求を迅速に発行することになり、データ
転送を早く開始することができ、データ転送の効率を向
上させることができる。
The data transfer device of the present invention transfers data stored in the first device via a buffer memory having N (N is an integer of 2 or more) buffer areas used cyclically. A data transfer device for continuously transferring data to a second device, comprising: first transfer means for transferring data from the first device to the buffer area;
Second transfer means for transferring data to the device, first generation means for sequentially generating a first type of transfer request for requesting data transfer from the first device to the buffer area, and data transfer by the first transfer means Second generation means for generating a second type of transfer request instructing data transfer from the data area holding the data to the second device every time
Queue means having N or less areas for holding the generated second type transfer request as a queue, determining means for determining whether or not the queue means is full, and determining that the state is not full by the determining means The first control means causes the first transfer means to issue the first type transfer request generated by the first generation means, and the second type transfer request held in the queue means to the second transfer means. Second to run
Control means. According to this configuration, it is possible to determine whether or not there is an empty buffer area in the buffer memory by a simple process of checking whether or not the queue means is not full by the determining means. That is, before issuing the first type of transfer request, it is possible to determine whether or not there is an available area in the buffer memory by checking whether or not the queue means is in a full state. As a result, the first transfer request is issued promptly, so that the data transfer can be started earlier and the efficiency of the data transfer can be improved.

【0042】また、前記キュー手段は、N個の前記領域
を有し、前記第2制御手段は、キュー手段に保持された
第2タイプの転送要求に従って第2転送手段に実行させ
た後、当該第2タイプの転送要求をキュー手段から削除
するようにしてもよい。この構成によれば、キュー手段
の領域数Nがバッファメモリの領域数と同じN個の場合
に、上記と同じ効果を得ることができる。
The queue means has N areas, and the second control means causes the second transfer means to execute the request in accordance with the second type of transfer request held in the queue means. The transfer request of the second type may be deleted from the queue means. According to this configuration, the same effect as described above can be obtained when the number of areas N of the queue means is the same as the number of areas of the buffer memory.

【0043】また、前記キュー手段は、N個未満の前記
領域を有し、前記第2制御手段は、キュー手段から第2
タイプの転送要求を取り出して、当該第2タイプの転送
要求を第2転送手段に実行させるようにしてもよい。こ
の構成によれば、キュー手段の領域数がバッファメモリ
の領域数N個よりも少ない場合に、上記と同じ効果を得
ることができる。
Further, the cue means has less than N areas, and the second control means controls the second
The transfer request of the second type may be extracted and the second transfer unit may execute the transfer request of the second type. According to this configuration, the same effect as described above can be obtained when the number of areas in the queue unit is smaller than the number N of areas in the buffer memory.

【0044】また、本発明のデータ転送装置は、第1装
置から前記バッファ領域へ前記バッファ領域と同サイズ
のデータを転送する第1転送手段と、バッファ領域から
第2装置へ前記バッファ領域のm(mは整数)分の1の
サイズのデータを転送する第2転送手段と、前記第1装
置から前記バッファ領域へのデータ転送を要求する第1
タイプの転送要求を順次生成する第1生成手段と、第1
転送手段によりデータ転送される毎に、当該データを保
持するデータ領域から前記第2装置へのデータ転送を指
示する第2タイプの転送要求をm個生成する第2生成手
段と、前記バッファメモリの空き領域数をカウントする
ためのカウント手段と、前記カウント手段のカウント値
が0でないか否かを判定する判定手段と、判定手段によ
り0でないと判定されたとき、第1生成手段により生成
された第1タイプの転送要求を第1転送手段に実行さ
せ、前記カウント手段の値を1減算する第1制御手段
と、第2生成手段により生成された第2タイプの転送要
求をキューとして保持するm*k(kは1以上n未満の
整数)個の領域を有するキュー手段と、第2生成手段に
生成された第2タイプの転送要求を前記キュー手段に格
納するとともに、m回格納する毎に前記カウント手段を
インクリメントする格納手段と、キュー手段に保持され
た第2タイプの転送要求を取り出し、その第2タイプの
転送要求を第2転送手段に実行させる第2制御手段とを
備える。この構成によれば、第1転送手段による転送デ
ータサイズが、第2転送手段による転送データサイズの
m倍である場合に、第1転送手段により第1装置からデ
ータを読み出す前に、判定手段によりカウント手段が0
でないかどうかをチェックするという簡単な処理でバッ
ファメモリに空きバッファ領域があるかどうかを判定で
きる。すなわち、第1タイプの転送要求を発行する前
に、カウント手段がおでないかどうかをチェックするこ
とにより、バッファメモリに使用可能な領域があるか否
かを判定することができる。その結果、第1転送要求を
迅速に発行することになり、データ転送を早く開始する
ことができ、データ転送の効率を向上させることができ
る。
Further, the data transfer apparatus of the present invention comprises a first transfer means for transferring data of the same size as the buffer area from the first apparatus to the buffer area, and a transfer function of the buffer area from the buffer area to the second apparatus. A second transfer unit for transferring data having a size of (1 / m is an integer), and a first transfer unit for requesting data transfer from the first device to the buffer area.
First generation means for sequentially generating transfer requests of the type;
A second generation unit configured to generate m transfer requests of a second type instructing data transfer from the data area holding the data to the second device each time data is transferred by the transfer unit; Counting means for counting the number of free areas; determining means for determining whether or not the count value of the counting means is not 0; First control means for causing the first transfer means to execute the first type transfer request and subtracting 1 from the value of the counting means, and holding the second type transfer request generated by the second generation means as a queue. A queue unit having k (k is an integer of 1 or more and less than n) areas, and a transfer request of the second type generated by the second generation unit is stored in the queue unit and is executed m times Storage means for incrementing the counting means each time the data is stored, and second control means for extracting the second type of transfer request held in the queue means and causing the second transfer means to execute the second type of transfer request. Prepare. According to this configuration, when the transfer data size by the first transfer unit is m times the transfer data size by the second transfer unit, before the data is read from the first device by the first transfer unit, Counting means 0
It is possible to determine whether or not there is a free buffer area in the buffer memory by a simple process of checking whether or not there is a buffer. That is, before issuing the transfer request of the first type, it is possible to determine whether or not there is an available area in the buffer memory by checking whether or not the counting means is operating. As a result, the first transfer request is issued promptly, the data transfer can be started earlier, and the efficiency of the data transfer can be improved.

【0045】また、本発明のデータ転送装置は、前記第
1装置から前記バッファ領域へバッファ領域のm分の1
のサイズのデータを転送する第1転送手段と、バッファ
領域から第2装置へデータを転送する第2転送手段と、
第1転送手段に前記m分の1のデータサイズのデータ転
送を要求する第1タイプの転送要求を順次生成する第1
生成手段と、第1転送手段によりm回のデータ転送がな
される毎に、当該データを保持するデータ領域から前記
第2装置へのデータ転送を指示する第2タイプの転送要
求を生成する第2生成手段と、生成された第2タイプの
転送要求をキューとして保持するN個以下の領域を有す
るキュー手段と、キュー手段がフル状態であるか否かを
判定する判定手段と、判定手段の判定結果がフル状態の
判定からフル状態でないとの判定に移行する毎に、第1
生成手段により生成されたm個の第1タイプの転送要求
を第1転送手段に実行させる第1制御手段と、キュー手
段に保持された第2タイプの転送要求を取り出し、当該
第2タイプの転送要求を第2転送手段に実行させる第2
制御手段とを備える。この構成によれば、第1転送手段
による転送データサイズが、第2転送手段による転送デ
ータサイズのm分の1である場合に、判定手段によりキ
ュー手段がフル状態でないかどうかをチェックするとい
う簡単な処理でバッファメモリに空きバッファ領域があ
るかどうかを判定できる。すなわち、第1タイプの転送
要求を発行する前に、キュー手段がフル状態か否かをチ
ェックすることにより、バッファメモリに使用可能な領
域があるか否かを判定することができる。その結果、第
1転送要求を迅速に発行することになり、データ転送を
早く開始することができ、データ転送の効率を向上させ
ることができる。
Further, the data transfer device of the present invention may be arranged such that the first device transfers the buffer area from the first device to the buffer area by a factor of 1 / m.
A first transfer unit for transferring data having a size of, a second transfer unit for transferring data from the buffer area to the second device,
A first type of transfer request for sequentially generating a first type of transfer request for requesting the first transfer unit to transfer the data having the data size of 1 / m;
Generating means for generating a second type of transfer request instructing data transfer from the data area holding the data to the second device every time m data transfers are performed by the first transfer means; Generating means, queue means having N or less areas for holding the generated second type transfer requests as queues, determining means for determining whether the queue means is full, and determining means Each time the result shifts from the determination of the full state to the determination that the result is not the full state, the first
A first control unit for causing the first transfer unit to execute the m first type transfer requests generated by the generation unit, and a second type transfer request held in the queue unit are extracted, and the second type transfer is performed. A second request for the second transfer means to execute the request.
Control means. According to this configuration, when the transfer data size of the first transfer unit is 1 / m of the transfer data size of the second transfer unit, the determination unit checks whether or not the queue unit is full. It is possible to determine whether or not there is a free buffer area in the buffer memory by a simple process. That is, before issuing the first type of transfer request, it is possible to determine whether or not there is an available area in the buffer memory by checking whether or not the queue means is in a full state. As a result, the first transfer request is issued promptly, so that the data transfer can be started earlier and the efficiency of the data transfer can be improved.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明の第1の実施の形態におけるデータ転送
装置1と映像要求受信部6とからなるビデオサーバの構
成を示すブロック図である。
FIG. 1 is a block diagram illustrating a configuration of a video server including a data transfer device 1 and a video request receiving unit 6 according to a first embodiment of the present invention.

【図2】リクエストキュー部5を示す図である。FIG. 2 is a diagram illustrating a request queue unit 5;

【図3】プロセッサ7によるリクエストA、Bの生成及
び発行処理を示すフローチャートである。
FIG. 3 is a flowchart showing processing for generating and issuing requests A and B by a processor 7;

【図4】データ転送装置1の動作を説明する図である。FIG. 4 is a diagram illustrating the operation of the data transfer device 1.

【図5】本発明の第2の実施形態におけるデータ転送装
置11を備えたビデオサーバのブロック図である。
FIG. 5 is a block diagram of a video server including a data transfer device 11 according to a second embodiment of the present invention.

【図6】リクエストキュー部15を示す図である。FIG. 6 is a diagram illustrating a request queue unit 15;

【図7】データ転送装置11の動作を説明する図であ
る。
FIG. 7 is a diagram for explaining the operation of the data transfer device 11;

【図8】プロセッサ17によるリクエストAの生成及び
発行処理を示すフローチャートである。
FIG. 8 is a flowchart showing a process of generating and issuing a request A by a processor 17;

【図9】プロセッサ17によるリクエストBの生成及び
発行処理を示すフローチャートである。
FIG. 9 is a flowchart showing a process of generating and issuing a request B by a processor 17;

【図10】従来技術におけるデータ転送装置の構成を示
すブロック図である。
FIG. 10 is a block diagram illustrating a configuration of a data transfer device according to the related art.

【図11】従来技術におけるリクエストキュー部35の
具体例を示す。
FIG. 11 shows a specific example of a request queue unit 35 according to the related art.

【図12】従来技術におけるポインタ部36と転送バッ
ファ34との関係を表した説明図を示す。
FIG. 12 is an explanatory diagram showing a relationship between a pointer unit 36 and a transfer buffer 34 according to the related art.

【符号の説明】[Explanation of symbols]

1 データ転送装置 2 インターフェース部 3 インターフェース部 4 転送バッファ 5 リクエストキュー部 6 映像要求受信部 7 プロセッサ 8 磁気ディスク装置 9 外部出力装置 11 データ転送装置 15 カウンタ 16 リクエストキュー部 17 プロセッサ REFERENCE SIGNS LIST 1 data transfer device 2 interface unit 3 interface unit 4 transfer buffer 5 request queue unit 6 video request receiving unit 7 processor 8 magnetic disk device 9 external output device 11 data transfer device 15 counter 16 request queue unit 17 processor

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】 サイクリックに使用されるN(Nは2以
上の整数)個のバッファ領域を有するバッファメモリを
経由して、第1装置に記憶されたデータを第2装置に連
続的に転送するデータ転送装置であって、 前記第1装置から前記バッファ領域へデータを転送する
第1転送手段と、 バッファ領域から第2装置へデータを転送する第2転送
手段と、 前記第1装置から前記バッファ領域へのデータ転送を要
求する第1タイプの転送要求を順次生成する第1生成手
段と、 第1転送手段によりデータ転送される毎に、当該データ
を保持するデータ領域から前記第2装置へのデータ転送
を指示する第2タイプの転送要求を生成する第2生成手
段と、 生成された第2タイプの転送要求をキューとして保持す
るN個以下の領域を有するキュー手段と、 キュー手段がフル状態であるか否かを判定する判定手段
と、 判定手段によりフル状態でないと判定されたとき、第1
生成手段により生成された第1タイプの転送要求を第1
転送手段に実行させる第1制御手段と、 キュー手段に保持された第2タイプの転送要求を第2転
送手段に実行させる第2制御手段とを備えることを特徴
とするデータ転送装置。
1. A method for continuously transferring data stored in a first device to a second device via a buffer memory having N (N is an integer of 2 or more) buffer areas used cyclically. A first transfer unit for transferring data from the first device to the buffer area; a second transfer unit for transferring data from the buffer area to a second device; First generation means for sequentially generating a first type of transfer request for requesting data transfer to a buffer area; and each time data is transferred by the first transfer means, from a data area holding the data to the second device. Second generation means for generating a second type of transfer request instructing data transfer of the second type; queue means having N or less areas for holding the generated second type of transfer request as a queue; Judging means for judging whether or not the checking means is in a full state; and
The transfer request of the first type generated by the generation means is transmitted to the first
A data transfer apparatus, comprising: a first control unit that causes a transfer unit to execute; and a second control unit that causes a second transfer unit to execute a second type of transfer request held in a queue unit.
【請求項2】 前記キュー手段は、前記N個の前記領域
を有し、 前記第2制御手段は、キュー手段に保持された第2タイ
プの転送要求に従って第2転送手段に実行させた後、当
該第2タイプの転送要求をキュー手段から削除すること
を特徴とする請求項1記載のデータ転送装置。
2. The queue means has the N number of areas, and the second control means causes the second transfer means to execute according to a second type of transfer request held in the queue means, 2. The data transfer device according to claim 1, wherein the transfer request of the second type is deleted from the queue unit.
【請求項3】 前記キュー手段は、前記N個未満の前記
領域を有し、 前記第2制御手段は、キュー手段から第2タイプの転送
要求を取り出して、当該第2タイプの転送要求を第2転
送手段に実行させることを特徴とする請求項1記載のデ
ータ転送装置。
3. The queue means has less than the N areas, and the second control means fetches a second type of transfer request from the queue means, and transfers the second type of transfer request to the second type. 2. The data transfer device according to claim 1, wherein the data transfer device is executed by two transfer means.
【請求項4】 サイクリックに使用されるN(Nは2以
上の整数)個のバッファ領域を有するバッファメモリを
経由して、第1装置に記憶されたデータを第2装置に連
続的に転送するデータ転送装置であって、 前記第1装置から前記バッファ領域へ前記バッファ領域
と同サイズのデータを転送する第1転送手段と、 バッファ領域から第2装置へ前記バッファ領域のm(m
は整数)分の1のサイズのデータを転送する第2転送手
段と、 前記第1装置から前記バッファ領域へのデータ転送を要
求する第1タイプの転送要求を順次生成する第1生成手
段と、 第1転送手段によりデータ転送される毎に、当該データ
を保持するデータ領域から前記第2装置へのデータ転送
を指示する第2タイプの転送要求をm個生成する第2生
成手段と、 前記バッファメモリの空き領域数をカウントするための
カウント手段と、 前記カウント手段のカウント値が0でないか否かを判定
する判定手段と、 判定手段により0でないと判定されたとき、第1生成手
段により生成された第1タイプの転送要求を第1転送手
段に実行させ、前記カウント手段の値を1減算する第1
制御手段と、 第2生成手段により生成された第2タイプの転送要求を
キューとして保持するm*k(kは1以上n未満の整
数)個の領域を有するキュー手段と、 第2生成手段に生成された第2タイプの転送要求を前記
キュー手段に格納するとともに、m回格納する毎に前記
カウント手段をインクリメントする格納手段と、 キュー手段に保持された第2タイプの転送要求を取り出
し、その第2タイプの転送要求を第2転送手段に実行さ
せる第2制御手段とを備えることを特徴とするデータ転
送装置。
4. Data stored in a first device is continuously transferred to a second device via a buffer memory having N (N is an integer of 2 or more) buffer areas used in a cyclic manner. A first transfer unit for transferring data of the same size as the buffer area from the first apparatus to the buffer area; and m (m) of the buffer area from the buffer area to the second apparatus.
Second transfer means for transferring data having a size of (1 / integer), a first generation means for sequentially generating a first type of transfer request for requesting data transfer from the first device to the buffer area, Each time data is transferred by the first transfer means, a second generation means for generating m second-type transfer requests instructing data transfer from the data area holding the data to the second device; Counting means for counting the number of free areas of the memory; determining means for determining whether or not the count value of the counting means is not 0; and generating by the first generating means when the determining means determines that the value is not 0 And causing the first transfer means to execute the transferred first type transfer request, and subtracting 1 from the value of the counting means.
Control means; queue means having m * k (k is an integer of 1 or more and less than n) areas for holding a transfer request of the second type generated by the second generation means as a queue; A storage means for storing the generated second type transfer request in the queue means, incrementing the counting means every time the storage request is stored m times, and extracting a second type transfer request held in the queue means. A data transfer device comprising: a second control unit that causes a second transfer unit to execute a second type of transfer request.
【請求項5】 サイクリックに使用されるN(Nは2以
上の整数)個のバッファ領域を有するバッファメモリを
経由して、第1装置に記憶されたデータを第2装置に連
続的に転送するデータ転送装置であって、 前記第1装置から前記バッファ領域へバッファ領域のm
分の1のサイズのデータを転送する第1転送手段と、 バッファ領域から第2装置へデータを転送する第2転送
手段と、 第1転送手段に前記m分の1のデータサイズのデータ転
送を要求する第1タイプの転送要求を順次生成する第1
生成手段と、 第1転送手段によりm回のデータ転送がなされる毎に、
当該データを保持するデータ領域から前記第2装置への
データ転送を指示する第2タイプの転送要求を生成する
第2生成手段と、 生成された第2タイプの転送要求をキューとして保持す
るN個以下の領域を有するキュー手段と、 キュー手段がフル状態であるか否かを判定する判定手段
と、 判定手段の判定結果がフル状態の判定からフル状態でな
いとの判定に移行する毎に、第1生成手段により生成さ
れたm個の第1タイプの転送要求を第1転送手段に実行
させる第1制御手段と、 キュー手段に保持された第2タイプの転送要求を取り出
し、当該第2タイプの転送要求を第2転送手段に実行さ
せる第2制御手段とを備えることを特徴とするデータ転
送装置。
5. The data stored in a first device is continuously transferred to a second device via a buffer memory having N (N is an integer of 2 or more) buffer areas used in a cyclic manner. A data transfer device for transferring data from the first device to the buffer
A first transfer unit for transferring data having a data size of 1 / second, a second transfer unit for transferring data from the buffer area to the second device, and a data transfer having the data size of 1 / m to the first transfer unit. A first type for sequentially generating a first type of transfer request to be made
Generating means, and each time m data transfers are performed by the first transferring means,
Second generation means for generating a second type of transfer request instructing data transfer from the data area holding the data to the second device; and N number of holding the generated second type transfer request as a queue. A queuing unit having the following areas; a judging unit for judging whether or not the queuing unit is in a full state; each time the judgment result of the judging unit shifts from judgment of full state to judgment of not being full state, 1st control means for causing the first transfer means to execute the m first type transfer requests generated by the 1st generation means, and the second type transfer request held in the queue means, and And a second control unit for causing the second transfer unit to execute the transfer request.
JP33187297A 1997-12-02 1997-12-02 Data transfer device Pending JPH11167468A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP33187297A JPH11167468A (en) 1997-12-02 1997-12-02 Data transfer device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP33187297A JPH11167468A (en) 1997-12-02 1997-12-02 Data transfer device

Publications (1)

Publication Number Publication Date
JPH11167468A true JPH11167468A (en) 1999-06-22

Family

ID=18248593

Family Applications (1)

Application Number Title Priority Date Filing Date
JP33187297A Pending JPH11167468A (en) 1997-12-02 1997-12-02 Data transfer device

Country Status (1)

Country Link
JP (1) JPH11167468A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016064213A (en) * 2015-12-21 2016-04-28 株式会社三洋物産 Game machine

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016064213A (en) * 2015-12-21 2016-04-28 株式会社三洋物産 Game machine

Similar Documents

Publication Publication Date Title
US6629124B1 (en) Multimedia data transferring method
CA2200929C (en) Periodic process scheduling method
JP3563541B2 (en) Data storage device and data storage method
JP3120963B2 (en) Method for transferring messages and system for transferring messages
US7370123B2 (en) Information processing apparatus
US7234004B2 (en) Method, apparatus and program product for low latency I/O adapter queuing in a computer system
EP0249116B1 (en) Method for controlling data transfer buffer
JPH04290150A (en) Device and method for controlling bidirectional fifo as interface between two buses in multi-task system
US5901328A (en) System for transferring data between main computer multiport memory and external device in parallel system utilizing memory protection scheme and changing memory protection area
US5890203A (en) Data transfer device for transfer of data distributed and stored by striping
US5765041A (en) System for triggering direct memory access transfer of data between memories if there is sufficient data for efficient transmission depending on read write pointers
US6189075B1 (en) Circuit for the management of memories in a multiple-user environment with access request and priority
JPH11167468A (en) Data transfer device
JP2000090042A (en) System and method managing buffer by using empty pointer fifo including pointer indicating empty buffer
JPH01315880A (en) Image data processor and operation thereof
US5875299A (en) disk access apparatus for performing a stride processing of data
EP0341670B1 (en) Processing time allocation system and method
JP2815716B2 (en) Message transmission processing method
JPH05108582A (en) Computer system
JPS61290548A (en) Area managing system for memory device
GB2375408A (en) Data transmission via a network, using shared memory
JPH0546565A (en) Data processor
JPS58189719A (en) Data transfer control system
JPH1091569A (en) Dma transfer controller, capture board, capture card and information processor
JP2001287412A (en) Printer