JPH0638251B2 - Online method for multiple processors - Google Patents
Online method for multiple processorsInfo
- Publication number
- JPH0638251B2 JPH0638251B2 JP61177459A JP17745986A JPH0638251B2 JP H0638251 B2 JPH0638251 B2 JP H0638251B2 JP 61177459 A JP61177459 A JP 61177459A JP 17745986 A JP17745986 A JP 17745986A JP H0638251 B2 JPH0638251 B2 JP H0638251B2
- Authority
- JP
- Japan
- Prior art keywords
- command
- buffer
- firmware
- cpu
- data
- 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.)
- Expired - Lifetime
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Transfer Systems (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明はファームウェアCPUとホストCPUのバス間
をオンラインで高速度に接続するための多重プロセッサ
ーにおけるオンライン方式に関する。Description: TECHNICAL FIELD The present invention relates to an online system in a multiprocessor for connecting a bus of a firmware CPU and a host CPU online at a high speed.
単なるコンピュータ間のコミュニケーションとしてはロ
ーカルエリアネットワーク、バイシング方式、電話回線
を利用したオンライン方式等が開発されている。As a simple communication between computers, a local area network, a vising method, an online method using a telephone line, etc. have been developed.
しかしながら、近距離にあるバス間のコミュニケーショ
ンに関しては、現在適当な技術が開発されていない。However, as for communication between buses in a short distance, no appropriate technology has been developed at present.
アセンブラで記述され、又、パイプライン制御している
ファームウェア用CPUと、高級言語を主に使用し、デ
ータ加工を主要な業務とするホストCPUとの間には極
端なスピード格差があり、単なるレコード転送例えばバ
イシング方式を用いた多重プロセッシングシステムを実
行すると、極めてCPU待ち時間の多い効率の悪いシス
テムができ上ってしまう。本発明は、効率的なオンライ
ン処理を行なうことを目的とするものである。There is an extreme speed gap between the firmware CPU, which is written in assembler and is pipeline controlled, and the host CPU, which mainly uses high-level languages and whose main task is data processing. Transferring, for example, executing a multi-processing system using the vising method will result in an inefficient system with a great deal of CPU latency. The present invention aims to perform efficient online processing.
上記目的を達成するため、本発明は、ファームウェア側
とホストコンピュータとをオンラインで接続する方式に
おいて、ファームウェアCPU側に、受信用コマンドバ
ッファ、送信用コマンドバッファ及び大容量データ送信
用コモンバッファから成るインターフェース4を設け、
ホストCPU側に送信用コマンドバッファ、受信用コマ
ンドバッファ及び大容量データ受信用コモンバッファか
ら成るインターフェースを設け、上記両インターフェー
ス間を伝送ラインで接続し、前記ファームウェアCPU
側にリングバッファを設け、コマンドの種類を示すイン
デックスとデータのワード数を知らせる引数部とデータ
部とから成る可変長コマンドをホスト側コマンドバッフ
ァからファームウェア側コマンドバッファに送信して上
記両インターフェース間でデータの交信を行うように成
すとともに、ホストCPU側から送られてくる前記可変
長コマンドを前記リングバッファに蓄積して該リングバ
ッファのコマンドを順次処理するようにしたものであ
る。In order to achieve the above object, the present invention provides an interface including a receiving command buffer, a transmitting command buffer, and a large-capacity data transmitting common buffer on the firmware CPU side in a method of connecting a firmware side and a host computer online. 4 is provided,
An interface including a command buffer for transmission, a command buffer for reception, and a common buffer for receiving large-capacity data is provided on the host CPU side, and the two interfaces are connected by a transmission line.
A ring buffer is provided on the side to send a variable length command consisting of an index indicating the type of command and an argument part for notifying the number of data words and a data part from the command buffer on the host side to the command buffer on the firmware side, and between the two interfaces. In addition to performing data communication, the variable length command sent from the host CPU side is accumulated in the ring buffer and the commands in the ring buffer are sequentially processed.
ホストCPU側は、ファームウェアCPU側のコマンド
処理情況に関係なく、コマンドを送り、このコマンド
は、ファームウェアCPU側のリングバッファに蓄えら
れる。ファームウェアCPU側は、必要に応じてリング
バッファのコマンドを取り出しこれを処理する。従っ
て、両CPU間の処理スピードの相異に関係なく、コマ
ンドは効率良く処理され、いづれか一方のCPUが遊ぶ
ということがない。The host CPU side sends a command regardless of the command processing situation on the firmware CPU side, and this command is stored in the ring buffer on the firmware CPU side. The firmware CPU side fetches a command in the ring buffer as necessary and processes it. Therefore, the command is efficiently processed regardless of the difference in processing speed between the two CPUs, and one of the CPUs does not play.
以下に本発明の構成を添付図面を参照して詳細に説明す
る。Hereinafter, the configuration of the present invention will be described in detail with reference to the accompanying drawings.
本発明のハードウェアの構成は、第2図に示すように、
ファームウェアCPU2側のファームウェアパラレルイ
ンターフェース4とホストCPU6側のホストCPUパ
ラレルインターフェース8は、メモリマップド1/0に
なっており、互いのアドレスの算出や、相互CPU2,
6間のメモリマネージの相違等によるマッピング処理等
はハードウェアロジックになっている。次に、第1図を
参照してインターフェース4,8内部を説明する。The hardware configuration of the present invention is as shown in FIG.
The firmware parallel interface 4 on the side of the firmware CPU 2 and the host CPU parallel interface 8 on the side of the host CPU 6 are memory-mapped 1/0.
The mapping process and the like due to the difference in memory management among the 6 are hardware logic. Next, the inside of the interfaces 4 and 8 will be described with reference to FIG.
第1図において、コマンドバッファ10,12,14,
16は、相手CPUに指示を与えたり、返事を送信する
ためのものであり、そのうち、Write12,14は、相
手側に送信し、Read10,16は相手CPUより受信す
るものであるる。一方のCPUのコマンドバッファWrit
eの情報は図示のように、相手CPUにとってはReadバ
ッファにくるようにハンドリングされる。コモンバッフ
ァ20,22は、公知の穴位置座標自動読取機等よりく
る画像処理された膨大なデータの入るところでファーム
ウェアCPU側のコモンバッファ20はWriteのみで、
ホストCPU側のコモンバッファ22は受信のみに構成
されている。ファームウェア側のリングバッファ24は
ホストCPU6よりのコマンドをバッファリングしてお
く構成のものである。コモンバッファ20はファームウ
ェアCPU2内部のデータをブロック転送する。そのた
め、オンライン時に、再度オンライン用バッファに書き
直す必要はなく、高速性を追求している。伝送ラインで
接続された前記コモンバッファ20,22はシエアード
メモリを構成し、コモンバッファ20から送信されたデ
ータは1/0に送られることなく直接コモンバッファ2
2に転送される。In FIG. 1, the command buffers 10, 12, 14,
Reference numeral 16 is for giving an instruction to the partner CPU or sending a reply, of which Writes 12 and 14 are for sending to the partner side and Reads 10 and 16 are for receiving from the partner CPU. Command buffer Writ of one CPU
As shown in the figure, the information of e is handled so that it will come to the Read buffer for the partner CPU. In the common buffers 20 and 22, where a huge amount of image-processed data coming from a well-known hole position coordinate automatic reader enters, the common buffer 20 on the firmware CPU side is only Write,
The common buffer 22 on the host CPU side is configured only for reception. The ring buffer 24 on the firmware side is configured to buffer commands from the host CPU 6. The common buffer 20 transfers the data in the firmware CPU 2 in blocks. Therefore, when online, there is no need to rewrite in the online buffer, and high speed is pursued. The common buffers 20 and 22 connected by a transmission line constitute a shared memory, and the data transmitted from the common buffer 20 is directly sent to the common buffer 2 without being sent to 1/0.
2 is transferred.
次に、コマンドについて説明する。Next, the command will be described.
コマンドの種類には3種ある。There are three types of commands.
まず、第1のものは、ホストCPU6によりファームウ
ェアCPU2に指示のみするものであり、使用バッファ
はホストコマンドバッファ(Write)14とファームコ
マンドバッファ(Read)10で図に示されている。図
中、Aのインデツクスでコマンドの種類を知らせる。A
の引数部ではBのデータのワード数を知らせる。Bがフ
ァームウェアCPU2にひき渡すデータである。ホスト
CPU6よりコマンドがくると、ファームウェアCPU
2はコマンドをリングバッファ24にプッシュし、且つ
該バッファ24により、コマンドをポップし、コマンド
の引数部指示のワード分だけデータをとりこみ処理す
る。First, the first one is only an instruction to the firmware CPU 2 by the host CPU 6, and the used buffers are a host command buffer (Write) 14 and a firmware command buffer (Read) 10 as shown in the figure. In the figure, the index of A indicates the type of command. A
In the argument part of, the number of words of B data is notified. B is the data delivered to the firmware CPU2. When a command comes from the host CPU 6, the firmware CPU
2 pushes the command to the ring buffer 24, pops the command by the buffer 24, and fetches and processes the data by the word designated by the argument portion of the command.
第2のものは、ホストCPU6によりファームウェアC
PU2にコマンドを送り、ファームウェアCPU2より
返事を貰うものである。使用バッファは、ホストコマン
ドバッファ(Read)(Write)16,14、ファームコ
マンドバッファ(Read,Write)10,12である。該コ
マンドは、第4図aに示すように、ホストCPUよりフ
ァームウェアCPUへコマンドを送信する。この送信処
理手順は、上記第1のコマンドと同じである。データを
処理したファームウェアCPU2は第3図と同形式で第
4図bに示すようにホストCPUにデータを送信する。
ホストCPUはこのデータが来るまでWaitする。The second one is firmware C by the host CPU 6.
It sends a command to PU2 and gets a reply from firmware CPU2. The buffers used are host command buffers (Read) (Write) 16 and 14, and firm command buffers (Read, Write) 10 and 12. The command is sent from the host CPU to the firmware CPU as shown in FIG. 4a. This transmission processing procedure is the same as that of the first command. The firmware CPU 2 which has processed the data transmits the data to the host CPU in the same format as in FIG. 3 as shown in FIG. 4b.
The host CPU waits until this data comes.
第3のものは、第5図に示すように、ホストCPUより
ファームウェアCPUにコマンドを送り、ファームウェ
アCPUは画像データのような大容量データをホストC
PUに送信する。使用バッファは、ホスト側がコマンド
バッファ(Read)(Write)14,16、コモンバッフ
ァ(Read)22である。ファーム側はコマンドバッファ
(Read)(Write)10,12、コモンバッファ(Writ
e)20である。ホストCPU6によりコマンドバッフ
ァ(Write)(Read)14,10を経由してコマンドを
ファームウェアCPU2に送り、ファームウェアCPU
2では、画像データの送信要求であると判断すると、コ
モンバッファ(Write)20にデータをブロック転送
し、コマンドバッファ(Read)16に画像データがきた
というコマンドを送信し、ホストCPU6に知らせる。
次に、画像データをコモンバッファ(Read)22にブロ
ック転送する。次に処理完了コードをコマンドバッファ
(Read)16に転送する。尚、様々なコマンドをサブル
ーチン化し、パッケージにしておきホストCPU、ファ
ームウェアCPU共モジュール化した形で使用するもの
である。In the third type, as shown in FIG. 5, the host CPU sends a command to the firmware CPU, and the firmware CPU sends large-capacity data such as image data to the host C.
Send to PU. The used buffers are command buffers (Read) (Write) 14 and 16 and common buffers (Read) 22 on the host side. On the firmware side, command buffers (Read) (Write) 10, 12 and common buffer (Writ)
e) 20. The host CPU 6 sends a command to the firmware CPU 2 via the command buffers (Write) (Read) 14 and 10, and the firmware CPU
In 2, when it is determined that the request is image data transmission, the data is block-transferred to the common buffer (Write) 20, the command that the image data is received is transmitted to the command buffer (Read) 16, and the host CPU 6 is notified.
Next, the image data is block-transferred to the common buffer (Read) 22. Next, the processing completion code is transferred to the command buffer (Read) 16. It is to be noted that various commands are made into a subroutine, packaged, and the host CPU and the firmware CPU are used in a modularized form.
本発明は、上記コマンドと前記リングバッファ24の組
み合わせを要旨とするものである。一般的にファームウ
ェアCPU2はデータ処理スピードが高速であり、ホス
トCPU6側は高級言語を使っていること等からデータ
処理スピードが遅い。従って、単にインターフェース
4,8間をオンラインで接続した場合、両インターフェ
ース間で、コマンドを出し、又コマンドを送り返すとい
うことをリアルタイムで処理することが不可能である。
そのため、ホストCPU側は、ファームウェアCPU側
でコマンドが処理されるのを待って、その都度コマンド
を送らなければならず、CPU待ち時間が長くなってし
まい、その間、どちらか一方のCPUが遊んでしまい非
効率となる。しかるに、リングバッファ24の存在によ
り、ホストCPU側は、ファームウェア側のコマンド処
理の結果に関係なく、コマンドを順次ファームウェア側
に送り、リングバッファ24に蓄える。一方、ファーム
ウェアCPU2側は、リングバッファ24に蓄えられた
コマンドを、必要に応じてファームウェアCPU側の処
理スピードで順次処理し、高能率の仕事を行うものであ
る。本実施例のコマンドは必要なデータのみを有する可
変長コマンドであるため、データ量がきわめて少なく、
従って、多数のコマンドをリングバッファ24に蓄える
ことができ、しかもコマンドは必要なデータのみを有す
るから無駄のない高速のデータ処理を可能とするもので
ある。The gist of the present invention is a combination of the above command and the ring buffer 24. Generally, the firmware CPU 2 has a high data processing speed, and the host CPU 6 side uses a high-level language, so that the data processing speed is slow. Therefore, when the interfaces 4 and 8 are simply connected online, it is impossible to process the commands issued and the commands sent back in real time between the interfaces.
Therefore, the host CPU side must wait for the firmware CPU to process the command and send the command each time, and the CPU waiting time becomes long, while one of the CPUs is idle. It becomes inefficient. However, due to the presence of the ring buffer 24, the host CPU side sequentially sends commands to the firmware side and stores them in the ring buffer 24 regardless of the result of the command processing on the firmware side. On the other hand, the firmware CPU 2 side sequentially processes the commands stored in the ring buffer 24 at the processing speed of the firmware CPU side as necessary to perform highly efficient work. Since the command of this embodiment is a variable length command having only necessary data, the data amount is extremely small,
Therefore, a large number of commands can be stored in the ring buffer 24, and the commands have only necessary data, which enables high-speed data processing without waste.
本発明は上述の如くファームウェア側にリングバッファ
があるため、各プロセッサー間の処理速度の相違が問題
とならず、しかも、相互通信のデータを引数で管理する
可変レコード長にした為、固定長と違い冗長性がなく、
高速且つ効率的な通信が可能である。更に、インターフ
ェースにパラレルインターフェースを用い、大容量デー
タはブロック転送方式で且つシエアードメモリの為、オ
ンラインの為に、データをオンライン用バッファに書き
直す必要がなく、極めて高速化が図れる等の効果が存す
る。Since the present invention has the ring buffer on the firmware side as described above, the difference in the processing speed between the processors does not pose a problem, and since the variable record length is used to manage the mutual communication data with the argument, the fixed length is set. No redundancy,
High-speed and efficient communication is possible. Furthermore, since the parallel interface is used as the interface and the large capacity data is a block transfer method and is a shared memory, there is no need to rewrite the data to the online buffer because it is online, and there is an effect that it can achieve extremely high speed. .
第1図はブロック説明図、第2図はブロック説明図、第
3図乃至第5図は説明図である。 2……ファームウェアCPU,4……インターフェー
ス,6……ホストCPU,8……インターフェース,1
0,12,14,16……コマンドバッファ,20,2
2……コモンバッファ,24……リングバッファFIG. 1 is a block diagram, FIG. 2 is a block diagram, and FIGS. 3 to 5 are diagrams. 2 ... Firmware CPU, 4 ... Interface, 6 ... Host CPU, 8 ... Interface, 1
0, 12, 14, 16 ... Command buffer, 20, 2
2 …… Common buffer, 24 …… Ring buffer
Claims (1)
をオンラインで接続する方式において、ファームウェア
CPU側に、受信用コマンドバッファ、送信用コマンド
バッファ及び大容量データ送信用コモンバッファから成
るインターフェース4を設け、ホストCPU側に送信用
コマンドバッファ、受信用コマンドバッファ及び大容量
データ受信用コモンバッファから成るインターフェース
を設け、上記両インターフェース間を伝送ラインで接続
し、前記ファームウェアCPU側にリングバッファを設
け、コマンドの種類を示すインデックスとデータのワー
ド数を知らせる引数部とデータ部とから成る可変長コマ
ンドをホスト側コマンドバッファからファームウェア側
コマンドバッファに送信して上記両インターフェース間
でデータの交信を行うように成すとともに、ホストCP
U側から送られてくる前記可変長コマンドを前記リング
バッファに蓄積して該リングバッファのコマンドを順次
処理するようにしたことを特徴とする多重プロセッサー
におけるオンライン方式。1. In a method of connecting a firmware side and a host computer online, the firmware CPU side is provided with an interface 4 consisting of a reception command buffer, a transmission command buffer and a large capacity data transmission common buffer, and the host CPU An interface consisting of a command buffer for transmission, a command buffer for reception, and a common buffer for receiving large-capacity data is provided on the side, the two interfaces are connected by a transmission line, and a ring buffer is provided on the side of the firmware CPU to specify the type of command. A variable length command consisting of an index part and a data part that indicates the number of words of the data shown is sent from the command buffer on the host side to the command buffer on the firmware side to exchange data between the above two interfaces. Along with the form to Migihitsuji, host CP
An online system in a multiprocessor characterized in that the variable length command sent from the U side is stored in the ring buffer and the commands in the ring buffer are sequentially processed.
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61177459A JPH0638251B2 (en) | 1986-07-28 | 1986-07-28 | Online method for multiple processors |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP61177459A JPH0638251B2 (en) | 1986-07-28 | 1986-07-28 | Online method for multiple processors |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS6334665A JPS6334665A (en) | 1988-02-15 |
| JPH0638251B2 true JPH0638251B2 (en) | 1994-05-18 |
Family
ID=16031307
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP61177459A Expired - Lifetime JPH0638251B2 (en) | 1986-07-28 | 1986-07-28 | Online method for multiple processors |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0638251B2 (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6907480B2 (en) * | 2001-07-11 | 2005-06-14 | Seiko Epson Corporation | Data processing apparatus and data input/output apparatus and data input/output method |
Family Cites Families (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS58142465A (en) * | 1982-02-18 | 1983-08-24 | Hitachi Ltd | Data transferring and processing device |
-
1986
- 1986-07-28 JP JP61177459A patent/JPH0638251B2/en not_active Expired - Lifetime
Also Published As
| Publication number | Publication date |
|---|---|
| JPS6334665A (en) | 1988-02-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3280759B2 (en) | Input / output control device and method | |
| US5594882A (en) | PCI split transactions utilizing dual address cycle | |
| JPH02109153A (en) | Inter-processor data transmission system | |
| JPH02310664A (en) | Communication method using shared memory | |
| US5481681A (en) | Data transfer operations between two asynchronous buses | |
| JPH0638251B2 (en) | Online method for multiple processors | |
| JPS616759A (en) | Multiprocessor system with common memory | |
| JPS5833970B2 (en) | Inter-processor communication method | |
| JPS6029139B2 (en) | Connection method between processing units | |
| JPS6239789B2 (en) | ||
| JPH11252150A (en) | Network connection device and network connection control method | |
| JPH0750466B2 (en) | Parallel computer cache memory control system | |
| JP2504062B2 (en) | Intermediary device for general-purpose bus connection of programmable controller | |
| JP2971119B2 (en) | High-speed data transfer method in multiple processor system | |
| KR0170595B1 (en) | Software emulation method of xcent-net interface | |
| JP2705955B2 (en) | Parallel information processing device | |
| JPH05314061A (en) | Bus interface control system | |
| JPS62204358A (en) | Data communication processing system | |
| JPS5921051B2 (en) | Communication control device | |
| JPS6347867A (en) | Inter-dual cpu communication system | |
| JPS6130300B2 (en) | ||
| JP2751879B2 (en) | Communication system between processors | |
| JPS6182260A (en) | Input and output interruption control system | |
| JPH0375959A (en) | Data transfer device for multiprocessor | |
| JPH01316851A (en) | Channel control system |