JPH06290082A - Inter-cpu data transmission method - Google Patents
Inter-cpu data transmission methodInfo
- Publication number
- JPH06290082A JPH06290082A JP5076016A JP7601693A JPH06290082A JP H06290082 A JPH06290082 A JP H06290082A JP 5076016 A JP5076016 A JP 5076016A JP 7601693 A JP7601693 A JP 7601693A JP H06290082 A JPH06290082 A JP H06290082A
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- data
- time
- memory
- transfer
- 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
Links
Landscapes
- Debugging And Monitoring (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Abstract
Description
【0001】[0001]
【産業上の利用分野】本発明は、マルチプロセッサシス
テムのCPU間で、長いデータを転送する場合の、CP
U間データ転送方法の改良に関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a CP for transferring long data between CPUs of a multiprocessor system.
The present invention relates to improvement of a U-to-U data transfer method.
【0002】以下は、CPUが4個あるマルチプロセッ
サシステムで、CPU1からCPU2に長いデータを転
送中に、CPU3よりCPU1又はCPU2に通信要求
をした場合を例にとり説明する。A multiprocessor system having four CPUs will be described below by taking a case where a communication request is sent from the CPU3 to the CPU1 or the CPU2 while transferring long data from the CPU1 to the CPU2.
【0003】[0003]
【従来の技術】図5は1例のマルチプロセッサシステム
の要部のブロック図、図6は1例の図5のCPUnとC
PUmとの間のCPU間通信領域の細部を示す図、図7
は従来例のCPU1の処理のフローチャート、図8は従
来例のCPU2の処理のフローチャートである。 図5
では、CPU1〜4及び共通メモリ10はバスにて接続
されており、図5に示す如く、CPU1は、データを転
送するCPUの認識番号及びデータが転送されてきたC
PUの認識番号を読み込むCPU間割込み通知レジスタ
21、通信要求のあるCPUの認識番号を書き込むCP
U間割込み要求レジスタ22,転送データを書き込むメ
モリ1ー1,転送されたデータを受信するメールボック
ス23を有し、CPU2は、CPU1と同じく、CPU
間割込み通通知レジスタ31、CPU間割込み要求レジ
スタ32、メモリ2ー1,メールボックス33を有し、
CPU3,CPU4も同じ構成を有しているが省略して
ある。2. Description of the Related Art FIG. 5 is a block diagram of a main part of an example of a multiprocessor system, and FIG. 6 is an example of CPUs n and C of FIG.
FIG. 7 is a diagram showing details of an inter-CPU communication area with PUm, FIG.
FIG. 8 is a flowchart of processing of the conventional CPU 1, and FIG. 8 is a flowchart of processing of the conventional CPU 2. Figure 5
In this case, the CPUs 1 to 4 and the common memory 10 are connected by a bus, and as shown in FIG. 5, the CPU 1 receives the identification number of the CPU that transfers the data and the C to which the data has been transferred.
Inter-CPU interrupt notification register 21 that reads the PU identification number, and CP that writes the identification number of the CPU with the communication request
The U-to-U interrupt request register 22, the memory 1-1 for writing the transfer data, and the mailbox 23 for receiving the transferred data are provided.
And an inter-CPU interrupt request register 32, a memory 2-1 and a mailbox 33,
The CPUs 3 and 4 have the same configuration but are omitted.
【0004】共通メモリ10は、転送データを書き込む
フリーメモリ領域11及びCPU間通信領域12を有
し、CPU間通信領域12は、CPU1,2,3,4よ
り他のCPUにデータを転送等のCPU間通信をする場
合の通信領域を有し、各通信領域の細部、例えばCPU
1→CPU2の細部は図6に示す如く、データ転送を行
うCPUの認識番号を書き込むCPUーID領域41、
タスクの識別番号を書き込むタスクID領域42,転送
が終了したとか、処理中とか、本発明の場合は待ち合わ
せ要求も書き込む終了情報領域43,システムコール種
別を書き込むシステムコール種別領域44,各種レジス
タ値を書き込む各種レジスタ値領域45,メールボック
スN0.,メッセージの先頭アドレス,メッセージ長,
等を格納する各種データ値領域46よりなっている。The common memory 10 has a free memory area 11 for writing transfer data and an inter-CPU communication area 12, and the inter-CPU communication area 12 transfers data from the CPUs 1, 2, 3, 4 to another CPU. It has a communication area for communication between CPUs, and details of each communication area, for example, CPU
The details of 1 → CPU 2 are, as shown in FIG. 6, a CPU-ID area 41 in which an identification number of a CPU for data transfer is written.
The task ID area 42 for writing the task identification number, the end information area 43 for writing the waiting request in the case of transfer completion or processing, the system call type area 44 for writing the system call type, and various register values Various register value areas 45 to be written, mailboxes N0. , Message start address, message length,
It is made up of various data value areas 46 for storing, etc.
【0005】CPU1がCPU2にデータを転送する場
合は、CPU1のタスクAは、図7のステップ(以下S
と称す)1にて、自CPU内のメモリ1ー1に、転送デ
ータを格納する領域を獲得し、S2にて、CPU2に転
送する転送データをS1にて獲得した領域に格納し、S
3にて格納したデータを、CPU2のメールボックス3
3に送信する為のデータ転送システムコールを発行す
る。When the CPU 1 transfers the data to the CPU 2, the task A of the CPU 1 executes the steps of FIG.
In step S2, the transfer data to be transferred to the CPU2 is stored in the area acquired in S1.
The data stored in 3 is stored in the mailbox 3 of the CPU 2
Issue a data transfer system call to send to 3.
【0006】するとOSは、S4にて共通メモリ10内
のフリーメモリ領域11に転送データを格納する領域を
獲得し、S5にてメモリ1ー1に格納した転送データを
フリーメモリ領域11内に獲得した領域に転写し、S6
にてCPU間割込み要求レジスタ21のCPU2の該当
欄を1とし、共通メモリ10のCPU1→CPU2の通
信領域のシステムコール種別領域44に、データ転送シ
ステムコールの種別を書込み、CPU2のOSにて、C
PU2のCPU間割込み通通知レジスタ31のCPU1
の欄を1とさせ、転送要求を知らせる。この時CPU1
は、各種データ値領域46にメールボックスNO.,メ
ッセージの先頭アドレス及びメッセージ長を書き込む。Then, the OS acquires the area for storing the transfer data in the free memory area 11 in the common memory 10 in S4, and acquires the transfer data stored in the memory 1-1 in the free memory area 11 in S5. Transfer to the designated area, S6
Then, the corresponding column of the CPU2 of the inter-CPU interrupt request register 21 is set to 1, and the type of the data transfer system call is written in the system call type area 44 of the communication area of the CPU1 → CPU2 of the common memory 10. C
CPU1 of the CPU-to-CPU interrupt notification notification register 31 of PU2
Is set to 1 and the transfer request is notified. CPU1 at this time
In the various data value areas 46, the mailbox NO. , Write the start address and message length of the message.
【0007】すると図8のS7にて、CPU2のOSは
CPU間割込み通通知レジスタ31のCPU1の欄が1
になっていることで、CPU1からの転送要求を知り、
メモリ2ー1に転送データの格納領域を獲得し、S8に
て、共通メモリ10のフリーメモリ領域11に複写され
た転送データを、S7にて獲得した領域に転写し、S9
にて、S3にてCPU1が発行したデータ転送システム
コールの代行を行う為に、データ転送システムコールを
発行し、転送データをメールボックス33に送信し処理
終了とし、図6の終了情報領域43に00を書き込む。Then, in S7 of FIG. 8, the OS of the CPU 2 sets 1 in the column of CPU 1 in the inter-CPU interrupt notification register 31.
Therefore, the transfer request from the CPU 1 is known,
A storage area for transfer data is acquired in the memory 2-1. In S8, the transfer data copied to the free memory area 11 of the common memory 10 is transferred to the area acquired in S7, and S9
At S3, a data transfer system call is issued in order to substitute the data transfer system call issued by the CPU 1 at S3, the transfer data is transmitted to the mailbox 33, and the processing is terminated, and the termination information area 43 in FIG. 6 is displayed. Write 00.
【0008】そしてS13にて、タスクBは、メールボ
ックス33内の転送データを受信する為のシステムコー
ルを発行し、S14にてメールボックス33内の転送デ
ータを獲得し、S15にて、S7にし獲得した領域をC
PU内のメモリ2ー1に返却する。Then, in S13, the task B issues a system call for receiving the transfer data in the mailbox 33, acquires the transfer data in the mailbox 33 in S14, and sets it in S7 in S15. The acquired area is C
It is returned to the memory 2-1 in the PU.
【0009】一方、CPU1のOSは、図7のS10に
て、終了情報領域43に00が書き込まれるかどうかを
見ており、書き込まれると、S11にて、S4にて獲得
した領域をフリーメモリ領域11に返却し、S12に
て、S1にて獲得した領域をメモリ1ー1に返却する。On the other hand, the OS of the CPU 1 checks whether or not 00 is written in the end information area 43 in S10 of FIG. 7, and if it is written, in S11, the area acquired in S4 is free memory. The area is returned to the area 11, and in step S12, the area acquired in step S1 is returned to the memory 1-1.
【0010】CPU3がCPU1又はCPU2に通信要
求をすると、CPU1又はCPU2のCPU間割込み通
知レジスタ21又は31のCPU3の欄が1となり、C
PU3より通信要求があることが判るようになるが、こ
の時CPU3は、タイマにタイムアウト時間を設定す
る。When the CPU 3 makes a communication request to the CPU 1 or the CPU 2, the column of the CPU 3 of the inter-CPU interrupt notification register 21 or 31 of the CPU 1 or the CPU 1 becomes 1 and C
It becomes clear from PU3 that there is a communication request. At this time, the CPU 3 sets a timeout time in the timer.
【0011】CPU3はタイムアウト時間内に、通信を
要求したCPU1又はCPU2より応答がないと、タイ
ムアウトしてしまい、通信要求先のCPUに障害が発生
したと判断し障害発生の処理を行う。If there is no response from the CPU 1 or the CPU 2 which requested the communication within the time-out time, the CPU 3 times out and determines that a failure has occurred in the CPU to which the communication is requested, and performs a failure occurrence process.
【0012】このタイムアウト時間を長くして、タイム
アウトにならないようにすると、OSの処理速度や性能
が低下するので、通常は、2Kバイトのデータを、メモ
リ1ー1から共通メモリ10に転送する時間,又は共通
メモリ10よりメモリ2ー1に転送する時間の10ms
以下にしてある。[0012] If the time-out time is made longer to prevent the time-out, the processing speed and performance of the OS will be lowered. Therefore, normally, the time for transferring 2 Kbytes of data from the memory 1-1 to the common memory 10 , Or 10ms which is the time to transfer from the common memory 10 to the memory 2-1
It is below.
【0013】[0013]
【発明が解決しようとする課題】しかしながら、メモリ
1ー1から共通メモリ10に転送する時間,又は共通メ
モリ10よりメモリ2ー1に転送する時間が、タイムア
ウト時間より長くかかるデータを転送する場合は、タイ
ムアウトとなることがあり、この場合はCPU1又はC
PU2は障害でないに関わらずCPU3は障害処理をす
る問題点がある。However, when transferring data from the memory 1-1 to the common memory 10 or from the common memory 10 to the memory 2-1 takes longer than the timeout time, , It may time out. In this case, CPU1 or C
There is a problem that the CPU 3 handles the failure regardless of whether the PU 2 is a failure.
【0014】本発明は、メモリから共通メモリに転送す
る時間,又は共通メモリよりメモリに転送する時間が、
タイムアウト時間より長くかかるデータを転送する場
合、通信要求の他のCPUが誤って障害処理をすること
がない、CPU間データ転送方法の提供を目的としてい
る。According to the present invention, the transfer time from the memory to the common memory or the transfer time from the common memory to the memory is
An object of the present invention is to provide an inter-CPU data transfer method that prevents other CPUs in a communication request from erroneously performing failure processing when transferring data that takes longer than the timeout time.
【0015】[0015]
【課題を解決するための手段】図1は本発明の原理図で
ある。図1に示す如く、マルチプロセッサシステムの第
1のCPU1がメモリ1ー1に書き込んだデータを共通
メモリ10に転写し、第2のCPU2は該共通メモリ1
0に転写されたデータを自メモリ2ー1に転写し、自メ
ールボックス2ー2に受信することで該第1のCPU1
より該第2のCPU2にデータの転送を行い、第3のC
PU3が、該第1のCPU1又は該第2のCPU2に通
信要求を行う時はタイマにタイムアウト時間設定し、タ
イムアウト時間になると通信要求先のCPUは障害とし
障害処理を行うマルチプロセッサシステムにおいて、デ
ータを、該第1のCPU1が該メモリ1ー1より該共通
メモリ10に転写する時間,又は該第2のCPU2が該
共通メモリ10より該メモリ2ー1に転写する時間が、
該第3のCPU3が設定するタイムアウト時間より長い
データを該第1のCPU1より該第2のCPU2に転送
する場合は、データ長を、転写する時間が上記タイムア
ウト時間内になるように分割し、分割したデータ毎に、
該第1のCPU1は該共通メモリ10に転写し、該第2
のCPU2は該共通メモリ10より転写する処理を、全
データが転写される迄行い、該第1のCPU1がデータ
転写中に該第1のCPU1に該第3のCPU3より通信
要求があれば、該第1のCPU1は分割したデータを該
共通メモリ10に転写完了毎に待ち合わせ要求を行い、
該第2のCPU2がデータ転写中に該第2のCPU2に
該第3のCPU3より通信要求があれば、該第2のCP
U2は分割したデータを該共通メモリ10より該自メモ
リ2ー2に転写完了毎に待ち合わせ要求を行い、該第3
のCPU3は、タイムアウト時間になる度に、待ち合わ
せ要求が出ているかどうかを見、出ていれば再度タイム
アウト時間を設定するようにする。FIG. 1 shows the principle of the present invention. As shown in FIG. 1, the first CPU 1 of the multiprocessor system transfers the data written in the memory 1-1 to the common memory 10, and the second CPU 2 transfers the data to the common memory 1.
The data transferred to 0 is transferred to the own memory 2-1 and is received in the own mail box 2-2 so that the first CPU 1
Data is transferred to the second CPU 2 by the third C
When the PU 3 makes a communication request to the first CPU 1 or the second CPU 2, a time-out time is set in a timer, and when the time-out time is reached, the CPU of the communication request destination makes a failure and performs a failure process. Is transferred from the memory 1-1 to the common memory 10 by the first CPU 1, or the second CPU 2 is transferred from the common memory 10 to the memory 2-1.
When data longer than the timeout time set by the third CPU 3 is transferred from the first CPU 1 to the second CPU 2, the data length is divided so that the transfer time is within the timeout time, For each divided data,
The first CPU 1 transfers the data to the common memory 10,
CPU 2 performs the process of transferring from the common memory 10 until all the data is transferred, and if the first CPU 1 requests the communication from the third CPU 3 while the first CPU 1 is transferring the data, The first CPU 1 makes a waiting request for each divided transfer of the divided data to the common memory 10,
If there is a communication request from the third CPU 3 to the second CPU 2 while the second CPU 2 is transferring data, the second CP
The U2 makes a waiting request for the divided data from the common memory 10 to the own memory 2-2 each time the transfer is completed.
The CPU 3 checks whether or not a waiting request is issued every time the timeout time elapses, and if so, sets the timeout time again.
【0016】[0016]
【作用】本発明にれば、データを、該第1のCPU1が
該メモリ1ー1より該共通メモリ10に転写する時間,
又は該第2のCPU2が該共通メモリ10より該メモリ
2ー1に転写する時間が、該第3のCPU3が設定する
タイムアウト時間より長いデータを該第1のCPU1よ
り該第2のCPU2に転送する場合は、データ長を、転
写する時間が上記タイムアウト時間内になるように分割
し、分割したデータ毎に、該第1のCPU1は該共通メ
モリ10に転写し、第2のCPU2は該共通メモリ10
より転写する処理を、全データが転写される迄行う。According to the present invention, the time during which the first CPU 1 transfers the data from the memory 1-1 to the common memory 10,
Alternatively, the data transferred from the common memory 10 to the memory 2-1 by the second CPU 2 is longer than the timeout time set by the third CPU 3 and the data is transferred from the first CPU 1 to the second CPU 2. In this case, the data length is divided so that the transfer time is within the time-out time, the first CPU 1 transfers the divided data to the common memory 10, and the second CPU 2 transfers the common data. Memory 10
Further transfer processing is performed until all data is transferred.
【0017】該第1のCPU1がデータ転写中に該第1
のCPU1に該第3のCPU3より通信要求があれば、
該第1のCPU1は分割したデータを該共通メモリ10
に転写完了毎に待ち合わせ要求を行い、該第2のCPU
2がデータ転写中に該第2のCPU2に該第3のCPU
3より通信要求があれば、該第2のCPU2は分割した
データを該共通メモリ10より該自メモリ2ー2に転写
完了毎に待ち合わせ要求を行う。When the first CPU 1 transfers the data during the data transfer.
If there is a communication request from the third CPU 3 to the CPU 1 of
The first CPU 1 stores the divided data in the common memory 10
To the second CPU every time the transfer is completed.
2 is the third CPU while the second CPU 2 is transferring the data.
If there is a communication request from 3, the second CPU 2 requests the divided data from the common memory 10 to the own memory 2-2 every time transfer is completed.
【0018】第3のCPU3は、タイムアウト時間にな
る度に、待ち合わせ要求が出ているかどうかを見、出て
いれば再度タイムアウト時間を設定するようにする。従
って、第3のCPU3は誤って通信要求先のCPUが障
害との処理をしなくなる。Each time the time-out time elapses, the third CPU 3 checks whether a queuing request has been issued, and if so, sets the time-out time again. Therefore, the third CPU 3 will not erroneously handle the failure of the communication requesting CPU.
【0019】[0019]
【実施例】図2は本発明の実施例のCPU1の処理のフ
ローチャート、図3は本発明の実施例のCPU2の処理
のフローチャート、図4は本発明の実施例の待ち合わせ
要求とタイムアウト時間とのタイムチャートである。DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 2 is a flowchart of the processing of the CPU 1 of the embodiment of the present invention, FIG. 3 is a flowchart of the processing of the CPU 2 of the embodiment of the present invention, and FIG. 4 is a waiting request and a timeout time of the embodiment of the present invention. It is a time chart.
【0020】以下は図5に示すマルチプロセッサシステ
ムにて、データの、メモリ1ー1より共通メモリ10の
フリーメモリ領域11への転送時間又はフリーメモリ領
域11よりメモリ2ー1への転送時間が、タイムアウト
時間より長くかかる5Kバイトのデータを、CPU1よ
りCPU2に転送する場合で、CPU3よりCPU1又
はCPU2に通信要求があつた場合を例にとり説明す
る。The following is the transfer time of data from the memory 1-1 to the free memory area 11 of the common memory 10 or the transfer time from the free memory area 11 to the memory 2-1 in the multiprocessor system shown in FIG. An example will be described in which 5 Kbytes of data, which takes longer than the time-out period, is transferred from CPU 1 to CPU 2 and a communication request is sent from CPU 3 to CPU 1 or CPU 2.
【0021】CPU1のタスクAは、図2のS1にて、
自CPU内のメモリ1ー1に、転送データを格納する領
域を獲得し、S2にて、CPU2に転送する転送データ
をS1にて獲得した領域に格納し、S3にて格納したデ
ータを、CPU2のメールボックス33に送信する為の
データ転送システムコールを発行する。The task A of the CPU 1 is S1 in FIG.
An area for storing transfer data is acquired in the memory 1-1 of the own CPU, the transfer data to be transferred to the CPU 2 is stored in the area acquired in S1, and the data stored in S3 is stored in the CPU 2 in S2. Issue a data transfer system call for transmission to the mailbox 33 of
【0022】するとOSは、S4にて共通メモリ10内
のフリーメモリ領域11に転送データを格納する領域を
獲得し、S5にて、S2にて格納した転送データ長をチ
ェックし、5Kバイトで、転送時間がタイムアウト時間
より短く出来る1Kバイトより長いので、1Kバイトに
分割する。Then, the OS acquires an area for storing the transfer data in the free memory area 11 in the common memory 10 in S4, checks the transfer data length stored in S2 in S5, and checks the transfer data length in 5 Kbytes. Since the transfer time is longer than 1K bytes which can be shorter than the timeout time, it is divided into 1K bytes.
【0023】そしてS6にて、分割された1Kバイトの
データを、フリーメモリ領域11の獲得した領域に転写
し、S7にて、CPU間割込み通知レジスタ21に他C
PUからの通信要求の有無をチェックし、有れば該当C
PUに対し待ち合わせ要求をし、なければ待ち合わせ要
求をしないことを、S8,S6,S7にて5Kバイト全
部を転送終了迄繰り返す。Then, in S6, the divided 1 Kbyte of data is transferred to the acquired area of the free memory area 11, and in S7, another C is stored in the inter-CPU interrupt notification register 21.
Checks if there is a communication request from the PU, and if there is, the corresponding C
The queuing request is issued to the PU, and the queuing request is not issued if there is no queuing request. This is repeated in S8, S6, and S7 until the transfer of all 5 Kbytes is completed.
【0024】この場合全転送データ長は5Kバイトであ
ることを、共通メモリ10のCPU間通信領域のCPU
1→CPU2の各種データ値領域46に書込み、転送デ
ータ長は5KバイトであることをCPU2に知らせる。In this case, the fact that the total transfer data length is 5 Kbytes means that the CPU in the inter-CPU communication area of the common memory 10
1 → Write to various data value areas 46 of CPU2, and inform CPU2 that the transfer data length is 5 Kbytes.
【0025】尚CPU3より通信要求があると、CPU
間割込み通知レジスタ21のCPU3の欄は1となるの
で、この場合は、共通メモリ10のCPU間通信領域の
CPU3→CPU1の終了情報領域43に、1Kバイト
転送終了毎に01を書込み待ち合わせ要求を行う。When there is a communication request from the CPU 3, the CPU
Since the column of CPU3 of the inter-interrupt notification register 21 becomes 1, in this case, a write wait request is issued to the end information area 43 of the CPU3 → CPU1 of the inter-CPU communication area of the common memory 10 at the end of each 1 Kbyte transfer. To do.
【0026】OSは、次にS9にて、CPU間割込み要
求レジスタ22のCPU2の欄を1とし、共通メモリ1
0のCPU間通信領域のCPU1→CPU2のシステム
コール種別領域44に、データ転送システムコール種別
を書き込む。するとCPU2のOSは、CPU間割込み
通知レジスタ31のCPU1の欄が1となっているの
で、CPU1よりのデータ転送を知り、又共通メモリ1
0のCPU間通信領域のCPU1→CPU2の各種デー
タ値領域46を見、転送データは5Kバイトであること
を知り、図3のS10にて、メモリ2ー1に5Kバイト
の転送データの格納領域を獲得しS11に進む。Next, in S9, the OS sets the CPU2 column of the inter-CPU interrupt request register 22 to 1, and sets the common memory 1
The data transfer system call type is written in the system call type region 44 of the CPU1 → CPU2 in the inter-CPU communication region of 0. Then, the OS of the CPU 2 knows the data transfer from the CPU 1 because the column of the CPU 1 of the inter-CPU interrupt notification register 31 is 1, and the common memory 1
Looking at the various data value areas 46 of the CPU1 → CPU2 in the inter-CPU communication area of 0, it is known that the transfer data is 5 Kbytes, and in S10 of FIG. 3, the storage area of the transfer data of 5 Kbytes in the memory 2-1. And proceed to S11.
【0027】S11では、OSは、共通メモリ10のフ
リーメモリ領域11に転送された1Kバイトのデータ
を、獲得した領域に転写し、S12にてCPU間割込み
通知レジスタ31を見、他CPUからの通信要求の有無
をチェックし、有れば、該当CPUに対しし待ち合わせ
要求を行い、なければ待ち合わせ要求を行なわないこと
を、S13,S11,S12にて、5Kバイト転送終了
迄繰り返し、終了すると、共通メモリ10のCPU間通
信領域のCPU1→CPU2の終了情報領域43に00
を書き込む。In S11, the OS transfers the 1 Kbyte data transferred to the free memory area 11 of the common memory 10 to the acquired area, and in S12, sees the inter-CPU interrupt notification register 31 and sees from another CPU. The presence or absence of a communication request is checked, and if there is, a waiting request is made to the corresponding CPU, and if there is no waiting request, the waiting request is not made repeatedly at S13, S11, and S12 until the end of the 5 Kbyte transfer. 00 in the end information area 43 of the CPU1 → CPU2 of the inter-CPU communication area of the common memory 10
Write.
【0028】尚CPU3より通信要求があると、CPU
間割込み通知レジスタ31のCPU3の欄は1となるの
で、この場合は、共通メモリ10のCPU間通信領域の
CPU3→CPU2の終了情報領域43に、1Kバイト
転送終了毎に01を書込み待ち合わせ要求を行う。When there is a communication request from the CPU 3, the CPU
Since the column of CPU3 of the inter-interrupt notification register 31 is 1, in this case, a write wait request of 01 is written to the end information area 43 of the CPU3 → CPU2 of the inter-CPU communication area of the common memory 10 at the end of each 1 Kbyte transfer. To do.
【0029】OSは、次はS14にて、図2のS3にて
CPU1が発行したデータ転送システムコールの代行を
行う為、データ転送システムコールを発行し、転送デー
タをメールボックス33に送信し、CPU1は図2のS
15にて、共通メモリ10のCPU間通信領域のCPU
1→CPU2の終了情報領域43に処理終了の00が書
き込まれているかを見ており、終了していなければS1
6にて、S7と同じ処理を行い、終了していれば、S1
7にてS4にて獲得した領域をフリーメモリ領域11に
返却し、S18にて、S1にて獲得した領域をメモリ1
ー1に返却し、S24にて、CPU間割込み通知レジス
タ21にて他CPUからの通信要求の有無をチェック
し、なければENDとし、有れば、S25にて、通信要
求CPU例えば3に応答処理をしENDとする。Next, in S14, the OS issues a data transfer system call and sends the transfer data to the mailbox 33 in order to perform the data transfer system call on behalf of the CPU 1 in S3 of FIG. CPU1 is S in FIG.
At 15, the CPU in the inter-CPU communication area of the common memory 10
1 → Whether or not 00 of the processing end is written in the end information area 43 of the CPU 2 is checked, and if it is not ended, S1
At S6, the same process as S7 is performed, and if it is completed, S1
The area acquired in S4 is returned to the free memory area 11 in 7, and the area acquired in S1 is stored in the memory 1 in S18.
-1, returns to S1, checks the presence / absence of a communication request from the other CPU in the inter-CPU interrupt notification register 21. If not, END, and if there is, responds to the communication request CPU, for example, 3 in S25. Process and set to END.
【0030】一方CPU2のタスクBは、図3のS21
にて、メールボックス33内の転送データを受信する為
のシステムコールを発行し、S22にてメールボックス
33内の転送データを獲得し、S23にて、S10にて
獲得した領域をメモリ2ー1に返却する。On the other hand, the task B of the CPU 2 is S21 of FIG.
, Issue a system call for receiving the transfer data in the mailbox 33, acquire the transfer data in the mailbox 33 in S22, and store the area acquired in S10 in S23 in the memory 2-1. To return.
【0031】又OSは、S19にて、CPU間割込み通
知レジスタ31にて他CPUからの通信要求の有無をチ
ェックし、無ければENDとし、有ればS20にて、通
信要求CPU例えば3に応答処理をしENDとする。In step S19, the OS checks the presence / absence of a communication request from the other CPU in the inter-CPU interrupt notification register 31. If there is no communication request, END is set. If there is, the OS responds to the communication request CPU, eg, 3, in step S20. Process and set to END.
【0032】尚この場合の、CPU1の待ち合わせ設定
と、CPU3の通信要求及びタイムアウト時間設定のタ
イムチャートを示すと図4に示す如くなり、CPU3
は、CPU1又はCPU2が正常であるに関わらず、誤
って障害と判断し、障害処理をすることはなくなる。In this case, a time chart of the waiting setting of the CPU 1 and the communication request and the timeout time setting of the CPU 3 is shown in FIG.
Irrespective of whether the CPU 1 or the CPU 2 is normal, erroneously determine that a failure has occurred and no failure processing is performed.
【0033】[0033]
【発明の効果】以上詳細に説明せる如く本発明によれ
ば、メモリから共通メモリに転送する時間,又は共通メ
モリよりメモリに転送する時間が、タイムアウト時間よ
り長くかかるデータを転送する場合、通信要求の他のC
PUが誤って障害処理をすることがなくなる効果があ
る。As described above in detail, according to the present invention, when a data transfer from the memory to the common memory or a transfer time from the common memory to the memory takes longer than the timeout time, a communication request is made. Other C
This has the effect of preventing the PU from performing fault handling by mistake.
【図1】は本発明の原理図、FIG. 1 is a principle diagram of the present invention,
【図2】は本発明の実施例のCPU1の処理のフローチ
ャート、FIG. 2 is a flowchart of processing of the CPU 1 according to the embodiment of the present invention,
【図3】は本発明の実施例のCPU2の処理のフローチ
ャート、FIG. 3 is a flowchart of processing of the CPU 2 according to the embodiment of the present invention,
【図4】は本発明の実施例の待ち合わせ要求とタイムア
ウト時間とのタイムチャート、FIG. 4 is a time chart of a queuing request and a timeout time according to the embodiment of the present invention,
【図5】は1例のマルチプロセッサシステムの要部のブ
ロック図、FIG. 5 is a block diagram of a main part of an example multiprocessor system,
【図6】は1例の図5のCPUnとCPUmとの間のC
PU間通信領域の細部を示す図、6 is an example C between CPUn and CPUm of FIG.
A diagram showing details of a communication area between PUs,
【図7】は従来例のCPU1の処理のフローチャート、FIG. 7 is a flowchart of processing of the CPU 1 of the conventional example,
【図8】は従来例のCPU2の処理のフローチャートで
ある。FIG. 8 is a flowchart of processing of a CPU 2 of a conventional example.
1〜4はCPU、 1ー1,2ー1はメモリ、 10は共通メモリ、 11はフリーメモリ領域、 12はCPU間通信領域、 21,31はCPU間割込み通知レジスタ、 22,32はCPU間割込み要求レジスタ、 23,33はメールボックス、 41はCPUーID領域、 42はタスクID領域、 43は終了情報領域、 44はシステムコール種別領域、 45は各種レジスタ値領域、 46は各種データ値領域を示す。 1 to 4 are CPUs, 1-1 and 2-1 are memories, 10 is a common memory, 11 is a free memory area, 12 is a communication area between CPUs, 21 and 31 are interrupt notification registers between CPUs, and 22 and 32 are between CPUs Interrupt request register, 23 and 33 are mailboxes, 41 is CPU-ID area, 42 is task ID area, 43 is end information area, 44 is system call type area, 45 is various register value area, and 46 is various data value area Indicates.
───────────────────────────────────────────────────── フロントページの続き (72)発明者 山▲崎▼ 光男 神奈川県横浜市港北区新横浜3丁目9番18 号 富士通コミュニケーション・システム ズ株式会社内 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Yama ▲ Saki ▼ Mitsuo 3-9-18 Shin-Yokohama, Kohoku Ward, Yokohama City, Kanagawa Prefecture Fujitsu Communication Systems Ltd.
Claims (1)
U(1)がメモリ(1ー1)に書き込んだデータを共通
メモリ(10)に転写し、第2のCPU(2)は該共通
メモリ(10)に転写されたデータを自メモリ(2ー
1)に転写し、自メールボックス(2ー2)に受信する
ことで該第1のCPU(1)より該第2のCPU(2)
にデータの転送を行い、第3のCPU(3)が、該第1
のCPU(1)又は該第2のCPU(2)に通信要求を
行う時はタイマにタイムアウト時間設定し、タイムアウ
ト時間になると通信要求先のCPUは障害とし障害処理
を行うマルチプロセッサシステムにおいて、データを、
該第1のCPU(1)が該メモリ(1ー1)より該共通
メモリ(10)に転写する時間,又は該第2のCPU
(2)が該共通メモリ(10)より該メモリ(2ー1)
に転写する時間が、該第3のCPU(3)が設定するタ
イムアウト時間より長いデータを該第1のCPU(1)
より該第2のCPU(2)に転送する場合は、データ長
を、転写する時間が上記タイムアウト時間内になるよう
に分割し、分割したデータ毎に、該第1のCPU(1)
は該共通メモリ(10)に転写し、該第2のCPU
(2)は該共通メモリ(10)より転写する処理を、全
データが転写される迄行い、該第1のCPU(1)がデ
ータ転写中に該第1のCPU(1)に該第3のCPU
(3)より通信要求があれば、該第1のCPU(1)は
分割したデータを該共通メモリ(10)に転写完了毎に
待ち合わせ要求を行い、該第2のCPU(2)がデータ
転写中に該第2のCPU(2)に該第3のCPU(3)
より通信要求があれば、該第2のCPU(2)は分割し
たデータを該共通メモリ(10)より該自メモリ(2ー
2)に転写完了毎に待ち合わせ要求を行い、該第3のC
PU(3)は、タイムアウト時間になる度に、待ち合わ
せ要求が出ているかどうかを見、出ていれば再度タイム
アウト時間を設定するようにしたことを特徴とするCP
U間データ転送方法。1. A first CP of a multiprocessor system.
The U (1) transfers the data written in the memory (1-1) to the common memory (10), and the second CPU (2) transfers the data transferred to the common memory (10) to its own memory (2-). It is transferred to the first CPU (1) and transferred to the second CPU (2) by being transferred to the own mailbox (2-2).
Data is transferred to the third CPU (3) and the first CPU (3)
When a communication request is made to the CPU (1) or the second CPU (2), a time-out time is set in a timer, and when the time-out time is reached, the CPU of the communication request destination is regarded as a failure and the failure processing is performed. To
Time for the first CPU (1) to transfer from the memory (1-1) to the common memory (10), or the second CPU
(2) is the memory (2-1) from the common memory (10)
The data transferred to the first CPU (1) is longer than the time-out time set by the third CPU (3).
When transferring to the second CPU (2), the data length is divided so that the transfer time is within the timeout time, and the first CPU (1) is divided for each divided data.
Is transferred to the common memory (10) and the second CPU
(2) performs the process of transferring from the common memory (10) until all the data is transferred, and the first CPU (1) transfers the third data to the first CPU (1) during data transfer. CPU
If there is a communication request from (3), the first CPU (1) makes a waiting request at the completion of transfer of the divided data to the common memory (10), and the second CPU (2) transfers the data. Inside the second CPU (2) to the third CPU (3)
If there is a communication request, the second CPU (2) issues a waiting request to the own memory (2-2) of the divided data from the common memory (10) each time transfer is completed, and the third C
The PU (3) checks whether or not a waiting request is issued each time the timeout time elapses, and if so, sets the timeout time again.
U-to-U data transfer method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5076016A JP3047667B2 (en) | 1993-04-02 | 1993-04-02 | Data transfer method between CPUs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5076016A JP3047667B2 (en) | 1993-04-02 | 1993-04-02 | Data transfer method between CPUs |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06290082A true JPH06290082A (en) | 1994-10-18 |
JP3047667B2 JP3047667B2 (en) | 2000-05-29 |
Family
ID=13593038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP5076016A Expired - Lifetime JP3047667B2 (en) | 1993-04-02 | 1993-04-02 | Data transfer method between CPUs |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3047667B2 (en) |
-
1993
- 1993-04-02 JP JP5076016A patent/JP3047667B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP3047667B2 (en) | 2000-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0760135B1 (en) | Method and apparatus for maintaining transaction ordering and supporting deferred replies in a bus bridge | |
US5682551A (en) | System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto | |
US5115499A (en) | Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code | |
US6484217B1 (en) | Managing shared devices in a data processing system | |
US5634099A (en) | Direct memory access unit for transferring data between processor memories in multiprocessing systems | |
JP2602599B2 (en) | Multiprocessor data processing system and method of operation thereof | |
EP1466255B1 (en) | Supercharge message exchanger | |
US7500059B2 (en) | Inter-processor communication method using a shared cache memory in a storage system | |
EP0351955B1 (en) | Multiprocessor systems with cross-interrogated store-in-caches | |
US5528761A (en) | Message passing apparatus for determining if counted acknowledgements from a set of processors are within a defined range | |
JPH02228744A (en) | Data processing system | |
JPH10320282A (en) | Method and device for controlling virtual cache | |
US5754887A (en) | System for limiting access of plurality of requests to peripheral bus by halting transmission to particular peripheral devices and resuming transmission after second predetermined time period expiration | |
JPH05274252A (en) | Transaction execution method for computer system | |
US5222219A (en) | Pipeline computer system having write order preservation | |
JPH0997184A (en) | Information-processing system inclusive of efficient interrupt handling | |
US5557753A (en) | Information processing unit having a multiplexed bus and a bus control method therefor | |
JPH06290082A (en) | Inter-cpu data transmission method | |
JP2509569B2 (en) | I / O structure for information processing system | |
JP3375649B2 (en) | Parallel computer | |
EP0376003A2 (en) | Multiprocessing system with interprocessor communications facility | |
JPS6027976A (en) | First-in first-out memory device | |
JP3141948B2 (en) | Computer system | |
JP2502932B2 (en) | Data transfer method and data processing system | |
JP2885640B2 (en) | Data bus transfer method |
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: 20000222 |