[go: up one dir, main page]

JPH05233440A - Data transfer system equipped with buffer function - Google Patents

Data transfer system equipped with buffer function

Info

Publication number
JPH05233440A
JPH05233440A JP4030761A JP3076192A JPH05233440A JP H05233440 A JPH05233440 A JP H05233440A JP 4030761 A JP4030761 A JP 4030761A JP 3076192 A JP3076192 A JP 3076192A JP H05233440 A JPH05233440 A JP H05233440A
Authority
JP
Japan
Prior art keywords
data
buffer
memory
cache memory
transferred
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP4030761A
Other languages
Japanese (ja)
Other versions
JP3162459B2 (en
Inventor
Toshiyuki Shimizu
俊幸 清水
Hiroaki Ishihata
宏明 石畑
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP03076192A priority Critical patent/JP3162459B2/en
Publication of JPH05233440A publication Critical patent/JPH05233440A/en
Application granted granted Critical
Publication of JP3162459B2 publication Critical patent/JP3162459B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Information Transfer Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

(57)【要約】 【目的】 キャッシュ・メモリもしくはメイン・メモリ
よりデバイスにデータを転送する計算機システムのデー
タ転送方式において、一時的にデバイスにデータが書き
込めない状態になっても計算処理が停止することがな
い、バッファ機能を備えたデータ転送方式を提供するこ
と。 【構成】 キャッシュ・メモリ2上にデータに存在する
場合には、キャッシュ・メモリ2よりデバイス5にデー
タを転送し、キャッシュ・メモリ2上にデータが存在し
ない場合にはメイン・メモリ1よりデータをデバイス5
に転送する。また、デバイス5へのデータ転送に際し
て、デバイス5にデータを書き込めない場合には転送さ
れるデータをバッファ3に一時的に保持し、デバイス5
にデータが書き込み可能となった際、直ちにバッファ3
よりデバイス5にデータを転送する。
(57) [Summary] [Purpose] In the data transfer method of a computer system that transfers data from a cache memory or main memory to a device, even if the data cannot be temporarily written to the device, calculation processing stops. To provide a data transfer method with a buffer function that does not exist. [Structure] If the data is present in the cache memory 2, the data is transferred from the cache memory 2 to the device 5, and if the data is not present in the cache memory 2, the data is transferred from the main memory 1. Device 5
Transfer to. When data cannot be written to the device 5 during data transfer to the device 5, the transferred data is temporarily held in the buffer 3 and
When the data becomes writable in the
Data is transferred to the device 5.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】近年、コンピュータの高速化が要
求されている。コンピュータの高速化の1つの実現方法
として、分散メモリ型計算機がある。分散メモリ型計算
機は、その特徴として、プロセッサの台数を多くするこ
とができるが、プロセッサの台数が増加すると、プロセ
ッサ相互のデータ転送の頻度が増し、逆に1回の情報交
換のためのデータ(メッセージ)の量は小さく(細か
く)なる。このため、細かなメッセージを効率よく、数
多く転送する技術が要求される。
[Industrial application] In recent years, there has been a demand for higher speed computers. There is a distributed memory type computer as one of the methods for realizing the speedup of a computer. A characteristic of the distributed memory computer is that the number of processors can be increased. However, when the number of processors increases, the frequency of data transfer between processors increases, and conversely, data for one information exchange ( The amount of messages will be small (fine). Therefore, a technique for efficiently transferring a large number of small messages is required.

【0002】また、プロセッサ単体の性能を向上させる
ため、近年、メモリを階層的に構成する手法が採用され
ている。このように階層化されたメモリを持つシステム
においても、効率的にメッセージ転送を行うことが要求
される。本発明は上記のような計算機システムにおける
データ転送方式に関し、特に、細かなメッセージを効率
よく、数多く転送することができるバッファ機能を備え
たデータ転送方式に関するものである。
Further, in order to improve the performance of a single processor, a method of hierarchically configuring memories has been adopted in recent years. Even in a system having such a hierarchical memory, efficient message transfer is required. The present invention relates to a data transfer method in a computer system as described above, and more particularly to a data transfer method having a buffer function capable of efficiently transferring a large number of small messages.

【0003】[0003]

【従来の技術】従来、出力デバイスに対してデータを送
出する手法としては、ダイレクト・メモリ・アクセス
(以下、DMAと称す)、あるいは、ソフトウエアによ
るポーリング、割込み処理などが用いられていた。まと
まった大きなデータのブロックを送る場合、DMAは非
常に有効であり、、ソフトウエアによるポーリング、割
込み処理では効率的なデータ転送はできない。
2. Description of the Related Art Conventionally, direct memory access (hereinafter referred to as DMA), software polling, interrupt processing, or the like has been used as a method for transmitting data to an output device. DMA is very effective for sending a large block of data, and efficient data transfer cannot be performed by software polling and interrupt processing.

【0004】しかしながら、プロセッサの台数が多い並
列計算機システムにおいては、一度に転送されるデータ
のサイズは非常に小さくなる傾向にあり、この場合に
は、DMAによりデータ転送することも、あるいはソフ
トウエアによるポーリング、割込み処理によりデータ転
送することも効率的でない。このような問題を解決する
ため、キャッシュ・メモリに登録されているデータを主
記憶に書き戻すフラッシュ操作と同じ操作でメッセージ
を転送する技術が開発されている(特開平3−1506
59号公報参照)。
However, in a parallel computer system having a large number of processors, the size of data transferred at one time tends to be very small. In this case, data transfer may be carried out by DMA or software may be used. It is not efficient to transfer data by polling or interrupt processing. In order to solve such a problem, a technique has been developed in which a message is transferred by the same operation as a flash operation for writing back the data registered in the cache memory to the main memory (JP-A-3-1506).
59).

【0005】上記公報に記載される技術は、プロセッサ
とキャッシュ・メモリと主記憶装置とポートと、それら
を制御するキャッシュ・コントローラと、共通バスから
なる複数のプロセッサ・エレメントを上記ポートを介し
て接続した並列計算機システムにおいて、上記プロセッ
サ・エレメントに特定のデータ転送命令を設けるととも
に、上記キャッシュ・コントローラに上記特定のデータ
転送命令を実行する機構を設けたものである。
The technology described in the above publication connects a processor, a cache memory, a main memory device, a port, a cache controller for controlling them, and a plurality of processor elements consisting of a common bus via the port. In the parallel computer system described above, the processor element is provided with a specific data transfer instruction, and the cache controller is provided with a mechanism for executing the specific data transfer instruction.

【0006】そして、上記、キャッシュ・コントローラ
が持つキャッシュ・メモリの内容を主記憶装置に書き出
す操作(フラッシュ操作、すなわち、キャッシュ・ミス
に際して、主記憶装置からキャッシュ・メモリにデータ
を登録する場合に、キャッシュ・メモリに他のアドレス
のデータが既に存在し、且つ、そのデータが更新されて
いる場合、キャッシュ・メモリに既に登録されているデ
ータを主記憶装置に書き出す操作)と類似の操作で、キ
ャッシュ・メモリ上にデータが存在する場合、上記特定
の命令により、キャッシュ・メモリの内容を共通バスを
介して直接ポートに転送できるように構成している。
Then, the above-mentioned operation of writing the contents of the cache memory of the cache controller to the main memory device (a flush operation, that is, in the case of a cache miss, when data is registered from the main memory device to the cache memory, If data at another address already exists in the cache memory, and that data has been updated, the cache data is updated by a similar operation to the operation of writing the data already registered in the cache memory to the main memory. When the data exists in the memory, the contents of the cache memory can be directly transferred to the port via the common bus by the above specific instruction.

【0007】すなわち、キャッシュ・メモリの内容を主
記憶装置にフラッシュするのと類似の操作で、キャッシ
ュ・メモリから直接デバイスにメッセージを転送する機
構(以下、この機構をライン・センドと称す)を設ける
ことにより、明示的にメッセージ送出のタイミングを指
定できるようにするとともに、メッセージ転送を起動す
るときのオーバー・ヘッドを軽減するようにしたもので
ある。
That is, a mechanism (hereinafter, this mechanism is referred to as a line send) for directly transferring a message from the cache memory to the device by an operation similar to that of flushing the contents of the cache memory to the main memory is provided. As a result, the timing of message transmission can be explicitly specified, and the overhead when activating message transfer is reduced.

【0008】ところで、上記した従来の技術において
は、転送先のデバイスにデータが書き込めない状態の場
合に、デバイスが書き込み可能になるまで処理が停止し
てしまうと言う欠点があった。
In the above-mentioned conventional technique, however, when data cannot be written to the transfer destination device, the processing is stopped until the device becomes writable.

【0009】[0009]

【発明が解決しようとする課題】本発明は上記した従来
技術の欠点を改善するためになされたものであって、デ
バイスにデータを転送するに際して、キャッシュ・メモ
リ上にデータに存在する場合には、キャッシュ・メモリ
よりデバイスにデータを転送し、キャッシュ・メモリ上
にデータが存在しない場合にはメイン・メモリよりデー
タをデバイスに転送する計算機システムのデータ転送方
式において、一時的にデバイスにデータが書き込めない
状態になっても計算処理が停止することがない、バッフ
ァ機能を備えたデータ転送方式を提供することを目的と
する。
SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned drawbacks of the prior art, and when transferring data to a device, if the data exists in the cache memory, In the data transfer method of the computer system, which transfers data from the cache memory to the device and transfers the data from the main memory to the device when there is no data in the cache memory, the data can be temporarily written to the device. It is an object of the present invention to provide a data transfer method having a buffer function, in which the calculation processing does not stop even when there is no status.

【0010】[0010]

【課題を解決するための手段】図1は本発明の原理図で
あり、上記課題を解決するため、本発明は図1に示すよ
うに、プロセッサ6とキャッシュ・メモリ2とメイン・
メモリ1とデバイス5と、それらの間のデータ転送を制
御するキャッシュ・コントローラ4を備え、デバイス5
にデータを転送するに際して、キャッシュ・メモリ2上
にデータに存在する場合には、キャッシュ・メモリ2よ
りデバイス5にデータを転送し、キャッシュ・メモリ2
上にデータが存在しない場合にはメイン・メモリ1より
データをデバイス5に転送する計算機システムのデータ
転送方式において、キャッシュ・メモリ2およびメイン
・メモリ1からデバイス5に転送されるデータを一時的
に保持するバッファ3を設けたものである。
FIG. 1 is a diagram showing the principle of the present invention. In order to solve the above problems, the present invention, as shown in FIG. 1, includes a processor 6, a cache memory 2 and a main memory.
The device 1 includes a memory 1 and a device 5, and a cache controller 4 that controls data transfer between them.
When the data is transferred to the cache memory 2, if the data exists in the cache memory 2, the data is transferred from the cache memory 2 to the device 5,
In the data transfer method of the computer system that transfers the data from the main memory 1 to the device 5 when there is no data above, the data transferred from the cache memory 2 and the main memory 1 to the device 5 is temporarily A buffer 3 for holding is provided.

【0011】そして、デバイス5にデータを書き込めな
い場合には転送されるデータをバッファ3に一時的に保
持し、デバイス5にデータが書き込み可能となった際、
直ちにバッファ3よりデバイス5にデータを転送する。
また、上記構成に加え、バッファ3としてECC付きメ
モリを用い、ECCのチェック・ビットの余りビットに
データの最後であることを示すエンド・ビットを書き込
み、エンド・ビットを参照することにより、一連のデー
タが転送されたことを確認するように構成することがで
きる。
When the data cannot be written to the device 5, the transferred data is temporarily held in the buffer 3 and when the data can be written to the device 5,
Data is immediately transferred from the buffer 3 to the device 5.
In addition to the above configuration, a memory with an ECC is used as the buffer 3, an end bit indicating the end of the data is written in the remainder bit of the ECC check bit, and the end bit is referred to It can be configured to confirm that the data has been transferred.

【0012】さらに、バッファ3としてメイン・メモリ
1上にリング・バッファを設けることができる。また、
さらに、タスク・スイッチ時にバッファ3の読み出し/
書き込みアドレスを保持するポインタの値を書き換える
ことにより、送出するデータをタスクごとに瞬時に切り
換えることができる。
Further, a ring buffer can be provided on the main memory 1 as the buffer 3. Also,
Furthermore, at the time of task switch
By rewriting the value of the pointer holding the write address, the data to be sent can be instantly switched for each task.

【0013】[0013]

【作用】図1(b)は本発明におけるデータ転送イメー
ジを示す図である。本発明においては、図1(b)に示
すように、キャッシュ・メモリ2上にデータが存在し、
且つ、デバイス5に空きがある場合にはキャッシュ・メ
モリ2よりデバイス5へデータを転送し(図1(b) の
参照)、キャッシュ・メモリ2上にデータが存在して
いるが、デバイス5に空きがない場合にはキャッシュ・
メモリ2よりバッファ3へデータをコピーする(図1
(b)の参照)。
1 (b) is a diagram showing a data transfer image in the present invention. In the present invention, as shown in FIG. 1B, data exists in the cache memory 2,
If the device 5 has a free space, the data is transferred from the cache memory 2 to the device 5 (see FIG. 1 (b)), and the data exists in the cache memory 2. Cache if there is no space
Copy data from memory 2 to buffer 3 (Fig. 1
(See (b)).

【0014】また、キャッシュ・メモリ2上にデータが
存在しておらず、デバイス5に空きがある場合にはメイ
ン・メモリ1よりデバイス5へデータを転送し(図1
(b)の参照)、キャッシュ・メモリ2上にデータが
存在しておらず、且つ、デバイス5に空きがない場合に
はメイン・メモリ1よりバッファ3へデータをコピーす
る(図1(b)の参照)。
When there is no data in the cache memory 2 and the device 5 has a free space, the data is transferred from the main memory 1 to the device 5 (see FIG. 1).
(Refer to (b)) If there is no data in the cache memory 2 and there is no free space in the device 5, the data is copied from the main memory 1 to the buffer 3 (FIG. 1 (b)). See).

【0015】そして、バッファ3にデータがあり、デバ
イス5に空きがある場合にはバッファ3よりデバイス5
へデータを転送する(図1(b)の参照)。
When there is data in the buffer 3 and the device 5 has a free space, the device 5 is loaded from the buffer 3
The data is transferred to (see FIG. 1B).

【0016】[0016]

【実施例】図2は本発明の1実施例を示す図であり、同
図において、10はプロセッサ、11はメイン・メモ
リ、12はキャッシュ・メモリ、13はリング・バッフ
ァ、14はタグ、15はデバイス、16はキャッシュ・
コントローラ、17は比較器、18はライト・ポイン
タ、19はリード・ポインタ、20,21はマルチ・プ
レクサ、22はライト・バッファ、23はデータ・バ
ス、24はアドレス・バスである。
FIG. 2 is a diagram showing an embodiment of the present invention. In FIG. 2, 10 is a processor, 11 is a main memory, 12 is a cache memory, 13 is a ring buffer, 14 is a tag, and 15 is a tag. Is a device, 16 is a cache,
A controller, 17 is a comparator, 18 is a write pointer, 19 is a read pointer, 20 and 21 are multiplexers, 22 is a write buffer, 23 is a data bus, and 24 is an address bus.

【0017】同図において、プロセッサ10,メイン・
メモリ11,キャッシュ・メモリ12,リング・バッフ
ァ13,デバイス15およびライト・バッファ22間に
はデータ・バス23が設けられており、デバイス15へ
のデータ転送はデータ・バス23を介して行われる。プ
ロセッサ10とメイン・メモリ11およびタグ14間に
はアドレス・バス24が設けられており、メイン・メモ
リ11へのデータのリード/ライトはアドレス・バス2
4のアドレス信号により行われる。
In the figure, the processor 10, main
A data bus 23 is provided between the memory 11, the cache memory 12, the ring buffer 13, the device 15, and the write buffer 22, and data transfer to the device 15 is performed via the data bus 23. An address bus 24 is provided between the processor 10 and the main memory 11 and the tag 14, and reading / writing of data from / to the main memory 11 is performed by the address bus 2.
4 address signal.

【0018】タグ14はキャッシュ・メモリ12に登録
されているデータのアドレスを保持しており、メイン・
メモリ11からデータを読みだす際、アドレス・バス2
4上のアドレスとタグ14に保持されているアドレスが
比較され、アドレス・バス24上のアドレスとタグ14
に保持されたアドレスが一致すると、データはキャッシ
ュ・メモリ12より読みだされる。
The tag 14 holds the address of the data registered in the cache memory 12, and the main
Address bus 2 when reading data from memory 11
4 and the address held in the tag 14 are compared, and the address on the address bus 24 and the tag 14 are compared.
When the addresses held in the memory match, the data is read from the cache memory 12.

【0019】また、キャッシュ・メモリ12に読み出す
べきデータが登録されていない場合には(キャッシュ・
ミスの場合)、メイン・メモリ11よりデータを読み出
し、読み出したデータをキャッシュ・メモリ12に登録
する。さらに、その際、従来例において説明したよう
に、キャッシュ・メモリ12に他のアドレスのデータが
既に存在し、且つ、そのデータが更新されている場合に
は、メイン・メモリ11にそのデータを書き出した(フ
ラッシュした)後、メイン・メモリ11より読み出した
データをキャッシュ・メモリ12に登録する。
If the data to be read is not registered in the cache memory 12, (cache cache 12
In the case of a miss), the data is read from the main memory 11 and the read data is registered in the cache memory 12. Further, at that time, as described in the conventional example, when the data of another address already exists in the cache memory 12 and the data is updated, the data is written to the main memory 11. Then, the data read from the main memory 11 is registered in the cache memory 12.

【0020】ライト・ポインタ18およびリード・ポイ
ンタ19はリング・バッファ13にデータを書き込む際
のアドレス、およびリング・バッファ13からデータを
読みだす際のアドレスを指示するポインタであり、比較
器17はライト・ポインタ18とリード・ポインタ19
の値を比較し、リング・バッファ13に空き領域がある
か否かを示すポインタ・ステイタス信号pst をキャッシ
ュ・コントローラ16に出力する。
The write pointer 18 and the read pointer 19 are pointers for instructing an address when writing data to the ring buffer 13 and an address when reading data from the ring buffer 13, and the comparator 17 writes data.・ Pointer 18 and read pointer 19
Value is compared and a pointer status signal pst indicating whether or not there is a free area in the ring buffer 13 is output to the cache controller 16.

【0021】キャッシュ・コントローラ16はライン・
センド命令lsend 、ライン・センド・エンド命令lsende
に応じて、キャッシュ・ステイタス信号cst 、デバイス
・ステイタス信号dst 、ポインタ・ステイタス信号pst
によりキャッシュ・メモリ12上にデータがあるか、あ
るいはデバイス15に空きがあるか、あるいはまた、リ
ング・バッファ13が空か否かを判別し、キャッシュ・
コントロール信号cctl、メモリ・コントロール信号mct
l、デバイス・コントロール信号dctlを出力し、デバイ
ス15へのデータ転送を制御する。
The cache controller 16 is a line
Send instruction lsend, line send end instruction lsende
Cache status signal cst, device status signal dst, pointer status signal pst
Determines whether there is data in the cache memory 12 or the device 15 has an empty space, or whether the ring buffer 13 is empty.
Control signal cctl, memory control signal mct
The device control signal dctl is output to control the data transfer to the device 15.

【0022】リング・バッファ13はメイン・メモリ1
1上の領域を使用しており、リング・バッファ13への
リード/ライトは、マルチ・プレクサ21により、メイ
ン・メモリ11のアドレス信号をライト・ポインタ18
およびリード・ポインタ19側に切り換えて行われる。
このため、メイン・メモリ11からリング・バッファ1
3へのデータの転送は、まず、マルチ・プレクサ21を
アドレス・バス24側に切り換えて、メイン・メモリ1
1よりデータを読みだしてライト・バッファ22に書き
込み、ついで、マルチ・プレクサ21をライト・ポイン
タ18側に切り換えて、ライト・バッファ22に書き込
まれたデータをライト・ポインタ18により指示される
リング・バッファ13のアドレスに書き込むことにより
行われる。
The ring buffer 13 is the main memory 1
1 is used, and the read / write operation to the ring buffer 13 is performed by the multiplexer 21 by changing the address signal of the main memory 11 to the write pointer 18
And the read pointer 19 side is switched.
Therefore, from the main memory 11 to the ring buffer 1
In order to transfer data to the memory 3, first, the multiplexer 21 is switched to the address bus 24 side, and the main memory 1
The data is read from 1 and written in the write buffer 22, and then the multiplexer 21 is switched to the write pointer 18 side so that the data written in the write buffer 22 is designated by the ring pointer. This is done by writing to the address of the buffer 13.

【0023】図3は本実施例における制御機構のブロッ
ク図を示したものであり、同図において、図2と同一の
ものには、同一の符号が付されている。図4は本発明に
おけるリング・バッファ13の第1および第2の実施例
を示す図である。同図(a) において、13aはデータを
格納するデータ・フィールド、13bは1続きのデータ
の終わりを示すエンド・ビット(1続きのデータの終わ
りではエンド・ビットが1になる)を格納するエンド・
ビット・フィールド、また、18および19は、それぞ
れ、図2に示したライト・ポインタおよびリード・ポイ
ンタである。
FIG. 3 is a block diagram of the control mechanism in this embodiment. In FIG. 3, the same parts as those in FIG. 2 are designated by the same reference numerals. FIG. 4 is a diagram showing the first and second embodiments of the ring buffer 13 in the present invention. In the figure (a), 13a is a data field for storing data, and 13b is an end for storing an end bit indicating the end of a series of data (the end bit becomes 1 at the end of a series of data).・
The bit fields, and 18 and 19 are the write pointer and read pointer shown in FIG. 2, respectively.

【0024】リング・バッファ13よりデータを読みだ
す場合には、リード・ポインタ19により指示されたア
ドレスよりデータが読みだされ、また、データを書き込
む場合には、ライト・ポインタ18により指示されたア
ドレスにデータを書き込まれる。図4(a) においては、
data0 およびdata1 が1続きのデータであり、また、da
ta1 の最後エンド・ビットが1になっていることから、
data1 は最後のデータまでリング・バッファ13に書き
込まれていることが分かる。また、data2 はまだ、最後
のデータではなく、図4(a) のempty と表示された部分
にはデータが書き込まれていないことが示されている。
When the data is read from the ring buffer 13, the data is read from the address designated by the read pointer 19, and when the data is written, the address designated by the write pointer 18 is read. Data is written to. In Figure 4 (a),
data0 and data1 are a series of data, and da
Since the last end bit of ta1 is 1,
It can be seen that data1 has been written to the ring buffer 13 up to the last data. Further, data2 is not the last data yet, and it is shown that the data is not written in the portion shown as empty in FIG. 4 (a).

【0025】図4(b) はECC付きのメモリをリング・
バッファとして用いた例を示す図であり、13aはデー
タを格納するデータ・フィールド、13bは1続きのデ
ータの終わりを示すエンド・ビットを格納するエンド・
ビット・フィールドを示し、同図には、メモリが8ビッ
トのモジュールmodule0 ないし module4の5つで構成さ
れている例が示されている。
FIG. 4 (b) shows a ring memory with ECC.
FIG. 13 is a diagram showing an example used as a buffer, 13a is a data field for storing data, and 13b is an end field for storing an end bit indicating the end of a series of data.
The bit field is shown, and the figure shows an example in which the memory is composed of five 8-bit modules module0 to module4.

【0026】図4(b) に示すように、ECC付きメモリ
の場合には、一般にビットに余りができる。すなわち、
32ビット・データに対して1ビット誤り訂正、2ビッ
ト誤り検出(SEC−DEC)を行わせると、7ビット
のチェック・ビットが必要となり、同図に示すように、
module4で1ビット未使用ビットが出る。図4(b) に示
す実施例においては、上記1ビットの未使用ビットをエ
ンド・ビット・フィールドとして用い、リング・バッフ
ァを構成する。
As shown in FIG. 4B, in the case of a memory with an ECC, there is generally a bit left over. That is,
When 1-bit error correction and 2-bit error detection (SEC-DEC) are performed on 32-bit data, 7 check bits are required, and as shown in FIG.
1-bit unused bit appears in module4. In the embodiment shown in FIG. 4 (b), a ring buffer is constructed by using the unused bit of 1 bit as an end bit field.

【0027】つぎに、図2に示した実施例におけるデバ
イス15へのデータの転送を、図2、図3により説明す
る。ライン・センド命令がキャッシュ・コントローラ1
6に入力されると、キャッシュ・コントローラ16はキ
ャッシュ・メモリ12上にデータがあるか、あるいはデ
バイス15に空きがあるか、あるいはまた、リング・バ
ッファ13が空か否かを、キャッシュ・ステイタス信号
cst 、デバイス・ステイタス信号dst 、ポインタ・ステ
イタス信号pst により判別して、それぞれの状態におい
て、次のような制御を行う。 キャッシュ・メモリ12上にデバイス15に転送す
るデータがあり、かつ、デバイス15に空きがある場合
(キャッシュ・メモリ12からデバイス15へのデータ
の転送)。
Data transfer to the device 15 in the embodiment shown in FIG. 2 will be described below with reference to FIGS. Line send instruction is cache controller 1
6, the cache controller 16 determines whether the cache memory 12 has data, the device 15 has space, or the ring buffer 13 is empty.
Based on cst, the device status signal dst, and the pointer status signal pst, the following control is performed in each state. When there is data to be transferred to the device 15 in the cache memory 12 and there is a free space in the device 15 (transfer of data from the cache memory 12 to the device 15).

【0028】キャッシュ・コントローラ16はキャッシ
ュ・コントロール信号cctlを「読出し」にして、キャッ
シュ・メモリ12より、デバイス15に転送するデータ
を読み出す。その結果、キャッシュ・メモリ12に格納
されているデータはデータ・バス23に出力される。ま
た、キャッシュ・コントローラ16はデバイス・コント
ロール信号dctlを出力して、キャッシュ・メモリ12よ
り読みだされたデータをデバイス15に書き込む。 キャッシュ・メモリ12上にデバイス15に転送す
るデータがあり、かつ、デバイス15に空きがない場合
(キャッシュ・メモリ12からリング・バッファ13へ
のデータのコピー)。
The cache controller 16 sets the cache control signal cctl to "read" and reads the data to be transferred to the device 15 from the cache memory 12. As a result, the data stored in the cache memory 12 is output to the data bus 23. The cache controller 16 also outputs a device control signal dctl to write the data read from the cache memory 12 into the device 15. When there is data to be transferred to the device 15 in the cache memory 12 and there is no free space in the device 15 (copying of data from the cache memory 12 to the ring buffer 13).

【0029】キャッシュ・コントローラ16はキャッシ
ュ・コントロール信号cctlを「読出し」にして、キャッ
シュ・メモリ12よりデバイス15に転送するデータを
読み出す。その結果、キャッシュ・メモリ12に格納さ
れているデータはデータ・バス23に出力される。ま
た、キャッシュ・コントローラ16はマルチ・プレクサ
20をライト・ポインタ18側に切り換えるとともに、
ライト・ポインタ18の値がアドレスとしてメモリに与
えられるようにマルチ・プレクサ21を切り換える。
The cache controller 16 sets the cache control signal cctl to "read" to read the data to be transferred to the device 15 from the cache memory 12. As a result, the data stored in the cache memory 12 is output to the data bus 23. Further, the cache controller 16 switches the multiplexer 20 to the write pointer 18 side, and
The multiplexer 21 is switched so that the value of the write pointer 18 is given to the memory as an address.

【0030】ついで、キャッシュ・コントローラ16は
メモリ・コントロール信号mctlを書き込みにして、キャ
ッシュ・メモリより読みだされたデータバス23上のデ
ータをリング・バッファに書き込む。 キャッシュ・メモリ12上にデバイス15に転送す
るデータがなく、かつ、デバイス15に空きがある場合
(メイン・メモリ11からデバイス15へのデータの転
送)。
Next, the cache controller 16 writes the memory control signal mctl to write the data on the data bus 23 read from the cache memory to the ring buffer. When there is no data to be transferred to the device 15 in the cache memory 12 and there is a free space in the device 15 (transfer of data from the main memory 11 to the device 15).

【0031】キャッシュ・コントローラ16はメモリ・
コントロール信号mctlを「読出し」にして、メイン・メ
モリ11より、デバイス15に転送するデータを読み出
す。その結果、メイン・メモリ11に格納されているデ
ータはデータ・バス23に出力される。また、キャッシ
ュ・コントローラ16はデバイス・コントロール信号dc
tlを出力して、メイン・メモリ11より読みだされたデ
ータをデバイス15に書き込む。 キャッシュ・メモリ12上にデバイス15に転送す
るデータがなく、かつ、デバイス15に空きがない場合
(メイン・メモリ11からリング・バッファ13へのデ
ータのコピー)。
The cache controller 16 is a memory
The control signal mctl is set to “read”, and the data to be transferred to the device 15 is read from the main memory 11. As a result, the data stored in the main memory 11 is output to the data bus 23. Also, the cache controller 16 uses the device control signal dc
It outputs tl and writes the data read from the main memory 11 to the device 15. When there is no data to be transferred to the device 15 in the cache memory 12 and there is no free space in the device 15 (copying of data from the main memory 11 to the ring buffer 13).

【0032】キャッシュ・コントローラ16はメモリ・
コントロール信号mctlを「読出し」にするとともに、マ
ルチ・プレクサ21をアドレス・バス24側に切り換
え、メイン・メモリ11よりデバイス15に転送するデ
ータを読み出す。その結果、メイン・メモリ11に格納
されているデータはデータ・バス23に出力され、ライ
ト・バッファ22に書き込まれる。
The cache controller 16 is a memory
The control signal mctl is set to "read", the multiplexer 21 is switched to the address bus 24 side, and the data to be transferred to the device 15 is read from the main memory 11. As a result, the data stored in the main memory 11 is output to the data bus 23 and written in the write buffer 22.

【0033】つぎに、キャッシュ・コントローラ16は
マルチ・プレクサ20をライト・ポインタ18側に切り
換えるとともに、ライト・ポインタ18の値がアドレス
としてメモリに与えられるようにマルチ・プレクサ21
を切り換える。ついで、キャッシュ・コントローラ16
はメモリ・コントロール信号mctlを書き込みにして、ラ
イト・バッファ22に書き込まれたデータをリング・バ
ッファ13に書き込む。
Next, the cache controller 16 switches the multiplexor 20 to the write pointer 18 side, and the multiplexor 21 is provided so that the value of the write pointer 18 is given to the memory as an address.
Switch. Then, the cache controller 16
Writes the memory control signal mctl to write the data written in the write buffer 22 to the ring buffer 13.

【0034】また、この際、ライト・ポインタ18とリ
ード・ポインタ19の値を比較する比較器17の出力を
チェックすることにより、リング・バッファ13のオー
バー・フローが起きないようにする。そして、リング・
バッファ13のオーバー・フローが起きた場合には、そ
れ以降のライン・センドをフェイルさせることにより、
データの紛失を防ぐ。 デバイス15に空きがあり、リング・バッファ13
にデータがある場合(リング・バッファ13からデバイ
ス15へのデータの転送)。
At this time, the output of the comparator 17 for comparing the values of the write pointer 18 and the read pointer 19 is checked to prevent the overflow of the ring buffer 13. And the ring
When the overflow of the buffer 13 occurs, by failing the line send after that,
Prevent data loss. There is free space in device 15 and ring buffer 13
If there is data (transfer of data from the ring buffer 13 to the device 15).

【0035】キャッシュ・コントローラ16はマルチ・
プレクサ20および21を切り換えて、リード・ポイン
タ19の値がメモリに加わるようにし、メモリ・コント
ロール信号mctlを「読出し」にして、リング・バッファ
13よりデータを読みだす。ついで、デバイス・コント
ロール信号dctlを「書き込み」にして、リング・バッフ
ァ13よりデバイス15にデータを転送する。
The cache controller 16 is a multi
The plexers 20 and 21 are switched so that the value of the read pointer 19 is added to the memory, the memory control signal mctl is set to "read", and the data is read from the ring buffer 13. Then, the device control signal dctl is set to “write”, and the data is transferred from the ring buffer 13 to the device 15.

【0036】また、この際、リング・バッファ13のエ
ンド・ビット・フィールドebf の読出し値をチェックし
て、データの転送が終了していない場合には、デバイス
15にデータの転送が終了していないことを伝える。以
上説明したように、本実施例によれば、リング・バッフ
ァ13を設け、キャッシュ・メモリ12あるいはメイン
・メモリ11からデータをデバイス15にデータを転送
する際、デバイス15に空きがない場合には、転送する
データをリング・バッファ13に格納するように構成し
たので、デバイス15にデータが書き込めない状態にな
っても処理が停止することがない。
At this time, the read value of the end bit field ebf of the ring buffer 13 is checked, and if the data transfer is not completed, the data transfer to the device 15 is not completed. Tell the thing. As described above, according to this embodiment, when the ring buffer 13 is provided and the data is transferred from the cache memory 12 or the main memory 11 to the device 15, when the device 15 has no free space, Since the data to be transferred is stored in the ring buffer 13, the processing does not stop even if the data cannot be written to the device 15.

【0037】なお、複数のタスクを実行する場合には、
タスク・スイッチ時にライト・ポインタおよびリード・
ポインタの値をタスクに応じて書き換えることにより、
リング・バッファへのデータのリード/ライトを瞬時に
切り換えることができる。また、上記実施例においで
は、メイン・メモリ上にリング・バッファを設ける例を
説明したが、本発明は上記実施例に限定されるものでは
なく、デバイスに転送されるデータ保持するバッファは
メイン・メモリとは別に設けることもできる。
When executing a plurality of tasks,
Write pointer and read at task switch
By rewriting the value of the pointer according to the task,
Data read / write to the ring buffer can be switched instantaneously. Further, in the above embodiment, an example in which the ring buffer is provided on the main memory has been described, but the present invention is not limited to the above embodiment, and the buffer for holding the data transferred to the device is the main memory. It can be provided separately from the memory.

【0038】[0038]

【発明の効果】以上説明したことから明らかなように、
本発明においては、バッファを設け、キャッシュ・メモ
リあるいはメモリからデータをデバイスに転送する際、
デバイスに空きがない場合には、転送するデータを上記
バッファに格納するように構成したので、デバイスにデ
ータを書き込めない状態になった場合においても、計算
処理を停止することがない。
As is clear from the above description,
In the present invention, when a buffer is provided and data is transferred from the cache memory or the memory to the device,
Since the data to be transferred is stored in the buffer when the device has no free space, the calculation process is not stopped even when the device cannot write the data.

【0039】従って、例えば、複数のプロセッサを備え
た処理システムにおいて、複数プロセッサ間に完全に同
期がとれていなかったり、また、負荷にばらつきがあっ
ても、特定のプロセッサの処理の遅れにより、他のプロ
セッサの処理が停止することがなく、効率的な処理を行
うことが可能となる。
Therefore, for example, in a processing system including a plurality of processors, even if the plurality of processors are not completely synchronized, or even if there is a variation in load, a delay in processing by a particular processor causes It is possible to perform efficient processing without stopping the processing of the processor.

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

【図1】本発明の原理図である。FIG. 1 is a principle diagram of the present invention.

【図2】本発明の実施例を示す図である。FIG. 2 is a diagram showing an example of the present invention.

【図3】本発明の実施例における制御機構を示す図であ
る。
FIG. 3 is a diagram showing a control mechanism in the embodiment of the present invention.

【図4】本発明におけるバッファの構成を示す図であ
る。
FIG. 4 is a diagram showing a configuration of a buffer in the present invention.

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

1,11 メイン・メモリ 2,12 キャッシュ・メモリ 3,13 リング・バッファ 4,16 キャッシュ・コントローラ 5,15 デバイス 6,10 プロセッサ 7,18 ライト・ポインタ 8,19 リード・ポインタ 14 タグ 17 比較器 20 マルチ・プレクサ 21 マルチ・プレクサ 22 ライト・バッファ 23 データ・バス 24 アドレス・バス 1, 11 Main memory 2, 12 Cache memory 3, 13 Ring buffer 4, 16 Cache controller 5, 15 Device 6, 10 Processor 7, 18 Write pointer 8, 19 Read pointer 14 Tag 17 Comparator 20 Multiplexer 21 Multiplexer 22 Write buffer 23 Data bus 24 Address bus

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 プロセッサ(6) とキャッシュ・メモリ
(2) とメイン・メモリ(1) とデバイス(5) と、それらの
間のデータ転送を制御するキャッシュ・コントローラ
(4) を備え、 デバイス(5) にデータを転送するに際して、キャッシュ
・メモリ(2) 上にデータが存在する場合には、キャッシ
ュ・メモリ(2) よりデバイス(5) にデータを転送し、キ
ャッシュ・メモリ(2) 上にデータが存在しない場合には
メイン・メモリ(1) よりデータをデバイス(5) に転送す
る計算機システムのデータ転送方式において、 キャッシュ・メモリ(2) およびメイン・メモリ(1) から
デバイス(5) に転送されるデータを一時的に保持するバ
ッファ(3) を設け、 デバイス(5) にデータを書き込めない場合には転送され
るデータをバッファ(3) に一時的に保持し、 デバイス(5) にデータが書き込み可能となった際、直ち
にバッファ(3) よりデバイス(5) にデータを転送するこ
とを特徴とするバッファ機能を備えたデータ転送方式。
1. A processor (6) and a cache memory
(2) and main memory (1) and device (5) and a cache controller that controls the data transfer between them
(4), when data is transferred to the device (5), if there is data in the cache memory (2), transfer the data from the cache memory (2) to the device (5), In the data transfer method of the computer system that transfers the data from the main memory (1) to the device (5) when there is no data in the cache memory (2), the cache memory (2) and the main memory ( A buffer (3) for temporarily holding the data transferred from (1) to the device (5) is provided, and when the data cannot be written to the device (5), the transferred data is temporarily stored in the buffer (3). A data transfer method with a buffer function characterized by holding and immediately transferring data to the device (5) from the buffer (3) when the data can be written to the device (5).
【請求項2】 バッファ(3) としてECC付きメモリを
用い、ECCのチェック・ビットの余りビットにデータ
の最後であることを示すエンド・ビットを書き込み、 エンド・ビットを参照することにより、一連のデータが
転送されたことを確認することを特徴とする請求項1の
バッファ機能を備えたデータ転送方式。
2. A memory with an ECC is used as the buffer (3), an end bit indicating the end of the data is written in the remainder bit of the check bit of the ECC, and a series of data is referred to by referring to the end bit. The data transfer system with a buffer function according to claim 1, wherein it is confirmed that the data has been transferred.
【請求項3】 バッファ(3) としてメイン・メモリ(1)
上にリング・バッファを設けたことを特徴とする請求項
1のバッファ機能を備えたデータ転送方式。
3. A main memory (1) as a buffer (3)
2. A data transfer system having a buffer function according to claim 1, further comprising a ring buffer provided above.
【請求項4】 タスク・スイッチ時にバッファ(3) の読
み出し/書き込みアドレスを保持するポインタ(7,8) の
値を書き換えることにより、送出するデータをタスクご
とに瞬時に切り換えることを特徴とする請求項1のバッ
ファ機能を備えたデータ転送方式。
4. The data to be transmitted is instantly switched for each task by rewriting the value of the pointer (7, 8) holding the read / write address of the buffer (3) at the time of task switching. A data transfer method having the buffer function of item 1.
JP03076192A 1992-02-18 1992-02-18 Data processing device Expired - Lifetime JP3162459B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP03076192A JP3162459B2 (en) 1992-02-18 1992-02-18 Data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP03076192A JP3162459B2 (en) 1992-02-18 1992-02-18 Data processing device

Publications (2)

Publication Number Publication Date
JPH05233440A true JPH05233440A (en) 1993-09-10
JP3162459B2 JP3162459B2 (en) 2001-04-25

Family

ID=12312674

Family Applications (1)

Application Number Title Priority Date Filing Date
JP03076192A Expired - Lifetime JP3162459B2 (en) 1992-02-18 1992-02-18 Data processing device

Country Status (1)

Country Link
JP (1) JP3162459B2 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328955A (en) * 1995-05-30 1996-12-13 Nec Corp Method and device for controlling buffer
JP2010015219A (en) * 2008-07-01 2010-01-21 Seiko Epson Corp Data transfer system, dma controller, drive recorder, data transfer method, data transfer program, and electronic equipment device
US8171243B2 (en) 2006-02-27 2012-05-01 Fujitsu Limited Data control apparatus, data control method, and data control program

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08328955A (en) * 1995-05-30 1996-12-13 Nec Corp Method and device for controlling buffer
US8171243B2 (en) 2006-02-27 2012-05-01 Fujitsu Limited Data control apparatus, data control method, and data control program
JP2010015219A (en) * 2008-07-01 2010-01-21 Seiko Epson Corp Data transfer system, dma controller, drive recorder, data transfer method, data transfer program, and electronic equipment device

Also Published As

Publication number Publication date
JP3162459B2 (en) 2001-04-25

Similar Documents

Publication Publication Date Title
JP3598321B2 (en) Buffering data exchanged between buses operating at different frequencies
US5649230A (en) System for transferring data using value in hardware FIFO'S unused data start pointer to update virtual FIFO'S start address pointer for fast context switching
US6115761A (en) First-In-First-Out (FIFO) memories having dual descriptors and credit passing for efficient access in a multi-processor system environment
JPH01277928A (en) Printer
JP2695017B2 (en) Data transfer method
US5895496A (en) System for an method of efficiently controlling memory accesses in a multiprocessor computer system
JP3162459B2 (en) Data processing device
JPH10334037A (en) Communication dma device
US6434592B1 (en) Method for accessing a network using programmed I/O in a paged, multi-tasking computer
EP1895427B1 (en) Data processing system, data processing apparatus, and data processing method
USRE38514E1 (en) System for and method of efficiently controlling memory accesses in a multiprocessor computer system
JP2002108640A (en) Duplex system, single processor system, and sub board
EP0787326B1 (en) System and method for processing of memory data and communication system comprising such system
JP4030951B2 (en) Data duplication apparatus and method
JP2701739B2 (en) Processor switching method
JP2000155738A (en) Data processor
JP3299147B2 (en) Cache control circuit
JP3467188B2 (en) Multiplexing bus order guarantee system.
JP2853607B2 (en) Communication system between jobs
JPH0756844A (en) Master-bus master used for computer system based on bus with system memory and computer system based on bus
JPWO2021075154A1 (en) Data transfer system and system host
JPWO2004051492A1 (en) Storage device that compresses the same input value
JPH03156657A (en) Data transfer device
JPH0652516B2 (en) Bus interface device
JP2007249428A (en) Inter-process data transfer device, its method, and program

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010213

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080223

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090223

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090223

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100223

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110223

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120223

Year of fee payment: 11

EXPY Cancellation because of completion of term