JPH0652052A - Virtual shared memory system - Google Patents

Virtual shared memory system

Info

Publication number
JPH0652052A
JPH0652052A JP4200993A JP20099392A JPH0652052A JP H0652052 A JPH0652052 A JP H0652052A JP 4200993 A JP4200993 A JP 4200993A JP 20099392 A JP20099392 A JP 20099392A JP H0652052 A JPH0652052 A JP H0652052A
Authority
JP
Japan
Prior art keywords
data
program instruction
cache
processing
processor
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
JP4200993A
Other languages
Japanese (ja)
Inventor
Yukio Shimamoto
幸夫 島本
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP4200993A priority Critical patent/JPH0652052A/en
Publication of JPH0652052A publication Critical patent/JPH0652052A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To accelerate processing and to perform parallel processing in accordance with the number of processors flexibly by managing by unifying data and a processing program, and loading them on the processor comprehensively. CONSTITUTION:This system is comprised of the processor equipped with a register file and input/output cache. a device managing part which controls the input/output cache, a processor inside register managing part which loads or manages the content of the register file and that of the input cache on the ALU of the processor, a bus managing part, a processor managing part, and a program instruction distribution means which distributes a program instruction to the data.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、計算装置外部からの入
出力処理方式及び装置に係り、通信システムにおける記
憶手段内のデータと送受信処理プログラム命令のI/O
一括処理方法及び並列処理方法並びに構成装置に関す
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an input / output processing system and apparatus from the outside of a computing device, and relates to I / O of data in a storage means and a transmission / reception processing program command in a communication system.
The present invention relates to a batch processing method, a parallel processing method, and a constituent device.

【0002】[0002]

【従来の技術】従来技術では、シングルプロセッサ構成
におけるI/O処理方式にしか考慮されておらず、シス
テム空間又はプログラム命令格納空間からプログラム命
令をプロセッサにロードし、プログラム命令コードの内
容を解釈した後、当該プログラム命令が必要とするデー
タを別のタイミングを待って、該データが必要となる毎
に記憶手段からプロセッサにロードしていた。
2. Description of the Related Art In the prior art, only the I / O processing method in a single processor configuration is taken into consideration. The program instruction is loaded into the processor from the system space or the program instruction storage space, and the contents of the program instruction code are interpreted. After that, the data required by the program instruction is waited for another timing, and the data is loaded from the storage means to the processor every time the data is required.

【0003】ロードしたデータをレジスタに格納してい
るプログラムで解釈し、ALUで処理を行った後、キャ
ッシュ又はメモリに書き戻し、次のプログラム命令の内
容に応じて、新たにキャッシュ又はメモリからデータを
ロードして、次の処理を行っている。
After the loaded data is interpreted by the program stored in the register and processed by the ALU, it is written back to the cache or memory, and data is newly added from the cache or memory according to the content of the next program instruction. Is loaded and the following processing is performed.

【0004】この時、キャッシュにデータを書き戻した
だけでは、次のプログラム命令内容とデータの関連情報
又は関係が一切無いため、一貫性を保証するために、キ
ャッシュの有効性を必ずしも利用せずに、メモリに一旦
書き戻してから再度キャッシュにロードしなおすことも
発生する。
At this time, if the data is simply written back to the cache, there is no related information or relationship between the next program command content and the data. Therefore, the effectiveness of the cache is not always used to guarantee the consistency. In addition, the data may be written back to the memory and then reloaded to the cache again.

【0005】この様に、プログラム命令とデータを別々
の次元で管理して、プログラム命令自体がデータを管理
又は指定することによって、一つの処理プロセスに対し
て、多数のタイミングを経過させて、バスにデータを往
復させて、I/O処理を行っている。
As described above, the program command and the data are managed in different dimensions, and the program command itself manages or designates the data, so that a large number of timings elapse for one processing process and the bus is processed. I / O processing is performed by reciprocating the data.

【0006】[0006]

【発明が解決しようとする課題】従来技術では、シング
ルプロセッサ構成におけるシーケンシャル処理方式しか
考慮されておらず、複数のタイミングで、プログラム命
令とデータを別々にプロセッサにロードし処理が完了す
る仕組みとなっていた。その仕組みでは、プログラム命
令がプロセッサにロードされるまでの処理待ち時間の発
生、プロセッサにプログラム命令がロードされてからデ
ータがレジスタにロードされるまでのロード待ち時間の
発生、その両者がバス権を即座に確保できないためにバ
ス使用権確保待ち時間が発生というI/Oデータなどの
送信処理又は受信処理に係る時間が長くなる課題があ
る。
In the prior art, only the sequential processing method in the single processor configuration is taken into consideration, and the program instruction and the data are separately loaded into the processor at a plurality of timings to complete the processing. Was there. In that mechanism, a processing wait time until the program instruction is loaded into the processor, a load wait time until the data is loaded into the register after the program instruction is loaded into the processor, and both of them take the bus right. There is a problem that a waiting time for securing the bus use right occurs because it cannot be secured immediately, and thus the time required for the transmission processing or the reception processing of I / O data or the like becomes long.

【0007】本発明の目的は、第一の観点では、プログ
ラム命令をプリミティブに分割し、プログラム命令とデ
ータを同時にプロセッサとキャッシュ又はレジスタに転
送し、該処理時間を極小化する方式及び装置を提供する
ものである。
An object of the present invention is, in a first aspect, to provide a method and apparatus for dividing a program instruction into primitives, transferring the program instruction and data to a processor and a cache or a register at the same time, and minimizing the processing time. To do.

【0008】また、第二の観点では、マルチプロセッサ
システムにおいて、プロセッサごとに処理を分散させる
ことを可能とし、I/Oデータ処理の並列化を実現し、
データ処理速度を向上させる方式及び装置を提供するも
のである。
In a second aspect, in a multiprocessor system, it is possible to distribute the processing for each processor and realize parallelization of I / O data processing,
A method and apparatus for improving data processing speed are provided.

【0009】本発明の他の目的は、通信システムの規模
に応じて、プロセッサの個数を増減させても、該プロセ
ッサの個数に応じて、I/O処理能力が選択できる方式
を提供することにある。
Another object of the present invention is to provide a method in which the I / O processing capacity can be selected according to the number of processors even if the number of processors is increased or decreased according to the scale of the communication system. is there.

【0010】本発明の更に他の目的は、通信システム特
有の処理内容が特定したヘッダ処理やデータ転送管理処
理や確認応答処理を他のプログラム処理とは切り分け
て、一時的にプロセッサを仮想通信システム専用の処理
装置に変化させ、通信処理の高速性を保証するものであ
る。
Still another object of the present invention is to separate the header processing, the data transfer management processing, and the acknowledgment processing, which are specified by the processing contents peculiar to the communication system, from the other program processing, and temporarily set the processor to the virtual communication system. It is changed to a dedicated processing device to guarantee high-speed communication processing.

【0011】[0011]

【課題を解決するための手段】上記課題を解決するため
に、本発明は、I/Oからメモリ又はキャッシュのよう
にI/O情報を保持できる情報記憶手段からのデータ単
位に対応するI/O処理プログラム命令とリンクさせ
て、プログラム命令とI/Oデータを一体として仮想的
に共用記憶手段内に管理させ、プロセッサ又は、レジス
タ又は、入力キャッシュのデバイスに空きが発生して、
当該デバイスの使用が可能となったときにプログラム命
令とデータを同時に当該デバイスに転送し、I/O処理
を行うものである。
In order to solve the above problems, the present invention provides an I / O corresponding to a data unit from an information storage means capable of holding I / O information such as a memory or a cache from the I / O. By linking with the O processing program instruction, the program instruction and I / O data are virtually managed in the shared storage means as a unit, and a vacancy occurs in the processor, the register, or the device of the input cache,
When it becomes possible to use the device, program instructions and data are simultaneously transferred to the device to perform I / O processing.

【0012】また、当該デバイスが複数実装しているシ
ステムにおいて、当該デバイスを監視するデバイス分配
管理手段が、空いている該デバイスを確保し、I/O処
理待ちデータ及びプログラム命令を最適順序に配置しな
がら、ロードを行うものである。
Further, in a system in which a plurality of the devices are mounted, a device distribution management means for monitoring the devices secures the vacant device and arranges I / O processing wait data and program instructions in an optimum order. While loading.

【0013】さらに、一つ又は複数のプロセッサにデー
タ単位に処理プログラム命令コードを付随させ、プロセ
ッサの入力キャッシュとレジスタファイルに格納し、バ
スの使用権とは独立にプロセッサ内部で一貫した処理を
行い、入力キャッシュのデータすべての処理終了するま
で、或は、処理済みデータをユーザプログラム命令また
は記憶手段に転送するためバスの使用権が確保できるま
で出力キャッシュにデータを待機させるプロセッサ単位
のデータ入出力管理を行うものである。
Furthermore, a processing program instruction code is attached to one or a plurality of processors in a data unit and stored in an input cache and a register file of the processor, and consistent processing is performed inside the processor independently of the bus usage right. Data input / output on a processor-by-processor basis until all the data in the input cache is processed, or until the right to use the bus is secured to transfer the processed data to the user program command or the storage means. It manages.

【0014】[0014]

【作用】第一にI/O使用のデータまたはI/Oからの
データと対応するI/O処理プログラム命令を対応テー
ブル上で仮想的に共用記憶手段に管理することによっ
て、I/Oを使用するデータまたはI/Oからのデータ
にそれぞれのI/O処理プログラム命令をリンクするこ
とが可能となる。
First, I / O is used by virtually managing the I / O use data or the data from the I / O and the corresponding I / O processing program instruction on the correspondence table in the shared storage means. It is possible to link each I / O processing program instruction to the data to be processed or the data from the I / O.

【0015】第二にプログラム命令とデータを一体化し
て、キャッシュ又はレジスタにロードすることによっ
て、データとプログラム命令の一貫性が保証され、キャ
ッシュのミスヒットを発生させることなく、一括して処
理を行うことが可能になる。
Second, the program instruction and the data are integrated and loaded into the cache or the register, so that the consistency of the data and the program instruction is guaranteed, and the processing is collectively performed without causing a cache mishit. It will be possible to do.

【0016】第三に一つ又は複数のプロセッサによっ
て、データ単位に処理を行うことが可能となりトランザ
クション単位の処理時間を短縮できる。
Thirdly, the processing can be performed in data units by one or a plurality of processors, and the processing time in transaction units can be shortened.

【0017】第四に、プロセッサに入出力キャッシュを
設けたことによって、バス使用権とは独立にデータ単位
にI/O処理を行うことが可能となり、処理時間の短縮
が可能となる。
Fourthly, by providing the processor with an input / output cache, it becomes possible to perform I / O processing in data units independently of the bus usage right, and the processing time can be shortened.

【0018】第五に、さらに、プロセッサ単位のキャッ
シュデータ転送管理部を設けたことによって、プロセッ
サの増減に柔軟に対応でき、システムの変更時にプロセ
ッサの個数に応じた処理能力の提供が可能となる。
Fifth, by providing a cache data transfer management unit for each processor, it is possible to flexibly deal with an increase or decrease in the number of processors and to provide a processing capacity according to the number of processors when the system is changed. .

【0019】[0019]

【実施例】以下、本発明の1実施例を詳細に説明する。EXAMPLE An example of the present invention will be described in detail below.

【0020】図1は、本発明をI/Oプロセッサを使用
して、通信を行うシステムに適用した場合の処理手順の
1実施例を示すフローチャートであり、図2は本発明に
係る通信処理装置の内部のデバイスの構成を示すブロッ
ク図である。又、図3は、図1のフローチャートに各デ
バイスからの制御関係を付加して、処理の流れを示した
フローチャートである。図4は、I/Oを使用するデー
タを格納する記憶手段の論理的管理空間を示したブロッ
ク図である。図5は、本発明に係る当該記憶手段の内部
でのプロセッサへの転送の為のデータ構造最適化の処理
手段と記憶手段内のデータとの構成を示すブロック図で
ある。図6は、本発明に係るI/O処理最適化プロセッ
サの内部構成を示すブロック図である。図7は、本発明
のI/O処理システムを単独の高速I/O情報処理シス
テムとして、I/Oポートを複数装着して表示装置やデ
ィスク装置やキーボード等の標準入出力装置を備えて使
用する場合の通信システム対応クライアントWSの応用
例のブロック図を示している。図8は、本発明のI/O
処理システムをWSに接続して高速I/O情報処理シス
テムLANアダプタとして使用する場合の通信システム
対応サーバWSの応用例のブロック図を示している。
FIG. 1 is a flow chart showing an embodiment of a processing procedure when the present invention is applied to a communication system using an I / O processor, and FIG. 2 is a communication processing apparatus according to the present invention. 3 is a block diagram showing a configuration of a device inside the device. FIG. Further, FIG. 3 is a flowchart showing the flow of processing by adding the control relationship from each device to the flowchart of FIG. FIG. 4 is a block diagram showing a logical management space of a storage means for storing data using I / O. FIG. 5 is a block diagram showing the structure of the data structure optimizing processing means for transfer to the processor in the storage means and the data in the storage means according to the present invention. FIG. 6 is a block diagram showing the internal configuration of the I / O processing optimization processor according to the present invention. FIG. 7 shows that the I / O processing system of the present invention is used as a single high-speed I / O information processing system with a plurality of I / O ports mounted and equipped with standard input / output devices such as a display device, a disk device, and a keyboard. The block diagram of the application example of the client WS corresponding to the communication system in the case of performing is shown. FIG. 8 shows the I / O of the present invention.
The block diagram of the application example of the communication system compatible server WS in the case of connecting the processing system to WS and using it as a high-speed I / O information processing system LAN adapter is shown.

【0021】図2において、1は、外部システムとデー
タの入出力を行うI/Oポートであり、2は、I/Oポ
ートまたはプロセッサとやり取りするデータ及びプログ
ラムを格納する記憶手段であり、3及び4は、当該記憶
手段内のデータを当該記憶手段内のプログラム命令で処
理を行う子プロセッサであり、5は、必要に応じて、当
該子プロセッサの出力結果をさらに処理する親プロセッ
サである。また、5は当該システム全体を制御すること
も可能である。更に、5は、I/O入出力以外の通常の
システムプログラムを処理する場合にも使用できる。
In FIG. 2, reference numeral 1 is an I / O port for inputting / outputting data to / from an external system, and 2 is a storage means for storing data and programs exchanged with the I / O port or the processor. And 4 are child processors that process the data in the storage means by the program instructions in the storage means, and 5 is a parent processor that further processes the output result of the child processor as necessary. Also, 5 can control the entire system. Furthermore, 5 can also be used when processing a normal system program other than I / O input / output.

【0022】図4において、6は、当該記憶手段内の論
理的システム空間全体を示し、I/O処理の為のシステ
ムプログラム10とシステム用のバッファ11を含むも
のであり、7は、当該記憶手段内の論理的ユーザ空間全
体を示し、I/O処理の為のユーザプログラム12とユ
ーザプログラム用のバッファ13を含むものであり、8
は、システム空間6のバッファ11またはユーザ空間7
のバッファ13に存在するデータにシステムプログラム
10またはユーザプログラム12の命令コードを最適化
配置して共存管理する共用管理テーブル空間であり、9
は、プロセッサ(図2に示す子プロセッサ3または4)
に転送するためのプログラム命令コード最適化配置した
当該コードとデータの共存した最適化情報を管理する仮
想共用記憶空間であり、14は、当該プロセッサの空き
状態と当該記憶手段内の当該最適化情報の状態を管理
し、当該プロセッサに当該最適化情報を転送するための
記憶手段管理部である。
In FIG. 4, reference numeral 6 denotes the entire logical system space in the storage means, which includes a system program 10 for I / O processing and a buffer 11 for the system, and 7 denotes the storage. The whole logical user space in the means is shown, and includes a user program 12 for I / O processing and a buffer 13 for the user program.
Is the buffer 11 of the system space 6 or the user space 7
9 is a shared management table space for optimally arranging the instruction code of the system program 10 or the user program 12 in the data existing in the buffer 13 of FIG.
Is a processor (child processor 3 or 4 shown in FIG. 2)
Is a virtual shared storage space for managing optimization information in which the code and data co-located with the program instruction code optimized for transfer to the processor, and 14 is a free state of the processor and the optimization information in the storage means. Is a storage unit management unit for managing the state of and the transfer of the optimization information to the processor.

【0023】図5において、29は、記憶手段管理部
で、その構成要素として、該記憶手段30の内部に保持
する該システム空間17のプログラム命令コード22ま
たは、該ユーザ空間18のプログラム命令コード21を
該システム空間17のバッファ19または該ユーザ空間
18のバッファ21の中のデータに分配するプログラム
命令コード分配手段15と仮想共用記憶空間に当該バッ
ファの中のデータと当該命令コードを最適化配置するた
めに該システム空間と該ユーザ空間を制御して、仮想的
に切り換える仮想共用記憶空間ポインタ切り換え手段1
6とプログラム分配キャッシュ・レジスタ情報管理部2
5を含む。I/Oバス28またはシステムバス27から
当該記憶手段30のバッファ(19または21)に取り
込んだデータを当該記憶手段管理部29で処理した後、
該処理に関する管理情報を当該共用管理テーブル23に
管理し、当該プロセッサ(図2に示す子プロセッサ3ま
たは4)に転送するために、仮想共用記憶空間24にプ
ログラム命令コード(20または22)とデータ(19
または21のバッファ内)の共存情報を配置し、また、
当該バッファ(19または21)のデータの内、該プロ
セッサ(図2に示す子プロセッサ3または4)全ての処
理が完了したか、処理の必要の無いデータは、システム
空間17のバッファ19またはユーザ空間18のバッフ
ァ21にI/Oポート(図2に示すI/Oポート1)か
ら上位システム装置(図8に示すサーバWS)または外
部の装置(例えば、図7に示す表示装置やディスク記憶
装置)またはLAN(図7または図8に示すLANの伝
送路)に転送するまで待機する。
In FIG. 5, reference numeral 29 denotes a storage means management section, which is a constituent element of the storage means 30 and holds the program instruction code 22 of the system space 17 or the program instruction code 21 of the user space 18. Is distributed to the data in the buffer 19 of the system space 17 or the buffer 21 of the user space 18, and the data in the buffer and the instruction code are optimally arranged in the virtual shared storage space. In order to control the system space and the user space, the virtual shared memory space pointer switching means 1 for virtually switching
6 and program distribution cache / register information management unit 2
Including 5. After the data fetched from the I / O bus 28 or the system bus 27 into the buffer (19 or 21) of the storage means 30 is processed by the storage means management unit 29,
The program instruction code (20 or 22) and data are stored in the virtual shared storage space 24 in order to manage the management information related to the processing in the shared management table 23 and transfer it to the processor (child processor 3 or 4 shown in FIG. 2). (19
Or 21 buffers) in the coexistence information, and
Of the data in the buffer (19 or 21), the data that has been processed by all the processors (child processors 3 or 4 shown in FIG. 2) or does not need to be processed is the buffer 19 in the system space 17 or the user space. In the buffer 21 of 18, from the I / O port (I / O port 1 shown in FIG. 2) to the host system device (server WS shown in FIG. 8) or an external device (for example, the display device or disk storage device shown in FIG. 7) Alternatively, it waits until the data is transferred to the LAN (the LAN transmission line shown in FIG. 7 or FIG. 8).

【0024】図6において、41は、子プロセッサ(図
2における子プロセッサ3または4)であり、その構成
要素は、データバス31からデータを取り込んでレジス
タファイル36にロードされるまで格納保持する入力キ
ャッシュ32と、ALU38での演算が全て完了し、該
レジスタファイル36に退避したデータをシステムバス
31上に流すまで格納保持する出力キャッシュ40とレ
ジスタ36とALU38と入出力キャッシュ32と40
から該システムバス31へ、または、該レジスタファイ
ル36へデータを転送する該キャッシュデータ転送管理
部33と、該入出力キャッシュ32と40と該レジスタ
ファイル36の状態を管理して、該キャッシュデータ転
送管理部33とALUデータロード管理部37とレジス
タファイル36の連続処理を行うデータに付随するプロ
グラム命令コードが連続して一致するか否かを判定する
連続プログラム命令コード判定部39を含む。また、キ
ャッシュデータ転送管理部33は、記憶手段管理部(図
4に示す記憶手段管理部14)または、親プロセッサ(図
2に示す親プロセッサ5)と制御情報をやり取りしてデ
ータ転送の同期を取り、キャッシュレジスタ管理部35
も該記憶手段管理部14に対してキャッシュ・レジスタ
32または40または36の状態を通知する。
In FIG. 6, reference numeral 41 is a child processor (child processor 3 or 4 in FIG. 2), and its constituent elements are inputs that take in data from the data bus 31 and store and hold it until it is loaded into the register file 36. An output cache 40, a register 36, an ALU 38, an input / output cache 32, 40 that stores and holds the data saved in the register file 36 until all the operations in the cache 32 and the ALU 38 are completed and flowed to the system bus 31.
To the system bus 31 or to the register file 36, manages the states of the cache data transfer management unit 33, the input / output caches 32 and 40, and the register file 36 to transfer the cache data. The management unit 33, the ALU data load management unit 37, and the continuous program instruction code determination unit 39 for determining whether or not the program instruction codes associated with the data to be continuously processed in the register file 36 match continuously. Further, the cache data transfer management unit 33 exchanges control information with the storage unit management unit (the storage unit management unit 14 shown in FIG. 4) or the parent processor (parent processor 5 shown in FIG. 2) to synchronize the data transfer. Cash register management unit 35
Also notifies the storage means management unit 14 of the state of the cash register 32, 40 or 36.

【0025】次に、図1及び図3のフローチャートに基
づいて、図2及び図5及び図6及び図7または図8の各
部の動作を説明する。
Next, the operation of each part in FIG. 2, FIG. 5, FIG. 6, FIG. 7 or FIG. 8 will be described based on the flow charts in FIG. 1 and FIG.

【0026】該I/Oポート1からデータフレームを受
信した場合の処理動作を想定する。
Assume a processing operation when a data frame is received from the I / O port 1.

【0027】図1において、I/Oポートからデータフ
レームを受信するとFIFOによって、該フレームのエ
ンドデリミタを検出する前にヘッダ情報をシステムバッ
ファに格納し、アプリケーション層で使用するメッセー
ジデータは、ユーザ空間のバッファまたはパイプライン
処理で、システムバスからI/Oポートを経て、上位の
サーバWSなどのシステムに転送する。
In FIG. 1, when a data frame is received from the I / O port, the FIFO stores the header information in the system buffer before detecting the end delimiter of the frame, and the message data used in the application layer is user space. Of the system bus or I / O port to transfer the data to a system such as the upper server WS.

【0028】次にヘッダ情報のデータを解析して、プロ
グラム命令・データの共用管理テーブル(図5に示す共
用管理テーブル空間24)にヘッダ情報の項目または処
理手順単位に当該データのポインタを記録する。更に、
システムプログラム命令コードのポインタを最適化され
た格納のための構造体の定まった位置に配置する。該処
理が終了した該フレームのヘッダ情報単位に該処理の終
了順序でFIFOによって、仮想共用記憶空間(図5に
示す仮想共用記憶空間23)に該データの要素とプログ
ラム命令コードの混合した構造データを格納し、子プロ
セッサ(図6に示す子プロセッサ41)での処理を待
つ。
Next, the data of the header information is analyzed, and the pointer of the data is recorded in the shared management table of program instructions / data (shared management table space 24 shown in FIG. 5) for each item of the header information or for each processing procedure. . Furthermore,
The pointer of the system program instruction code is placed at a fixed position in the structure for optimized storage. The structure data in which the elements of the data and the program instruction code are mixed in the virtual shared storage space (the virtual shared storage space 23 shown in FIG. 5) by the FIFO in the header information unit of the frame in which the processing is finished in the order in which the processing is finished. Is stored and waits for processing by the child processor (child processor 41 shown in FIG. 6).

【0029】当該子プロセッサ(図6に示す子プロセッ
サ41)からの転送要求を検出すると、該入力キャッシ
ュ32または、該レジスタファイル36にプログラム命
令コードとデータを一括して、該入力キャッシュ32に
転送し、更にレジスタファイル36にロードする。レジ
スタファイル36のプログラム命令コードとデータをA
LU(図6に示すALU38)上で演算して、レジスタ
ファイル36に結果を戻した後、演算が完了していれ
ば、出力キャッシュ(図6に示す出力キャッシュ40)
に転送する。出力キャッシュ40から該記憶手段30ま
たは該親プロセッサ5に転送し、一連の受信フレームデ
ータのヘッダ処理を終了する。この一連の処理は、パイ
プライン処理で行われるのが望ましい。
When a transfer request from the child processor (child processor 41 shown in FIG. 6) is detected, the program instruction code and the data are transferred to the input cache 32 or the register file 36 all together. Then, the register file 36 is loaded. Set the program instruction code and data of the register file 36 to A
After the operation is performed on the LU (ALU 38 shown in FIG. 6) and the result is returned to the register file 36, if the operation is completed, the output cache (the output cache 40 shown in FIG. 6)
Transfer to. The data is transferred from the output cache 40 to the storage unit 30 or the parent processor 5, and the header processing of a series of received frame data is completed. It is desirable that this series of processing is performed by pipeline processing.

【0030】図3において、I/Oポート1からI/O
入力が発生し、記憶手段2にデータ入力が行われる。記
憶手段2にデータが入力されるとプログラム命令コード
を最適配置するために記憶手段管理部(図5に示す記憶
手段管理部29)内の仮想共用ポインタ切り換え部16
がシステム空間17とユーザ空間18を切り替えて、プ
ログラム命令コード分配手段15が共用管理テーブル2
4にシステム空間17のバッファ19のデータか、また
は、ユーザ空間18のデータの構成要素のポインタとシ
ステム空間17のプロフラム命令コード20、または、
ユーザ空間のプログラム命令コード22のポインタを共
用管理テーブル24に配置して、該プログラム命令コー
ドを分配する。該プログラム命令コードの分配が完了す
ると仮想共用記憶空間23にプログラム命令コードとデ
ータの構成要素の混合構造データを格納する。記憶手段
管理部29内のプログラムデータ分配キャッシュレジス
タ管理部25が子プロセッサ41の入力キャッシュ32
とレジスタファイル36の状態を監視して、子プロセッ
サ41側のキャシュデータ転送管理部33とキャッシュ
・レジスタ管理部35からデバイス空き通知と同期信号
を受けると記憶手段30側の仮想共用記憶空間23から
入力キャッシュ32へ転送し、子プロセッサ41側のキ
ャッシュデータ転送管理部33が受け取って、入力キャ
ッシュ32に納める。子プロセッサ41側は、入力キャ
ッシュ32に入ったデータをキャッシュレジスタ管理部
35が、レジスタファイル36にロードし、更に、プロ
グラム命令判定部39は、連続して同じ命令コードで処
理する場合は先に使用するコードだけをALU38に与
えられるようにする。ALUデータロード管理部37が
レジスタファイル36からALU38にデータを渡す
と、ALU38はレジスタファイル36の内容を演算実
行し、結果をレジスタファイル36に書き戻し、演算処
理が完全に終了するとレジスタファイル36からキャッ
シュレジスタ管理部35が出力キャッシュ40にデータ
を移す。しかる後、子プロセッサ41側のキャッシュデ
ータ転送管理部33が記憶手段30側の記憶手段管理部
29と記憶手段30に問合せて処理済みデータを当該記
憶手段30に転送するか、親プロセッサ5に転送して、
更に上位システム(図8に示すサーバWS)の処理を行
えるようにする。それらの処理が完了すると又、他のデ
ータをロードして処理を継続する。
In FIG. 3, from I / O port 1 to I / O
Input is generated, and data is input to the storage means 2. When data is input to the storage unit 2, the virtual shared pointer switching unit 16 in the storage unit management unit (storage unit management unit 29 shown in FIG. 5) for optimally arranging the program instruction code.
Switches between the system space 17 and the user space 18, and the program instruction code distribution means 15 causes the shared management table 2
4, the data in the buffer 19 of the system space 17, or the pointer of the component of the data in the user space 18 and the program instruction code 20 in the system space 17, or
The pointer of the program instruction code 22 in the user space is arranged in the shared management table 24, and the program instruction code is distributed. When the distribution of the program instruction code is completed, the mixed structure data of the program instruction code and data components is stored in the virtual shared storage space 23. The program data distribution cache register management unit 25 in the storage unit management unit 29 uses the input cache 32 of the child processor 41.
And the register file 36 are monitored, and when a device availability notification and a synchronization signal are received from the cache data transfer management unit 33 and the cache register management unit 35 on the child processor 41 side, the virtual shared storage space 23 on the storage unit 30 side The data is transferred to the input cache 32, received by the cache data transfer management unit 33 on the child processor 41 side, and stored in the input cache 32. On the child processor 41 side, when the cache register management unit 35 loads the data stored in the input cache 32 into the register file 36, and the program instruction determination unit 39 further processes with the same instruction code first, Only the code used is provided to the ALU 38. When the ALU data load management unit 37 passes the data from the register file 36 to the ALU 38, the ALU 38 performs arithmetic operation on the contents of the register file 36, writes the result back to the register file 36, and when the arithmetic processing is completely completed, the register file 36 completes the operation. The cash register management unit 35 transfers the data to the output cache 40. Thereafter, the cache data transfer management unit 33 on the child processor 41 side inquires the storage unit management unit 29 and the storage unit 30 on the storage unit 30 side to transfer the processed data to the storage unit 30 or the parent processor 5. do it,
Further, the processing of the host system (server WS shown in FIG. 8) is enabled. When those processes are completed, other data is loaded and the process is continued.

【0031】図5において、データ送信時の記憶手段3
0及び記憶手段管理部29の動作の一実施例を説明す
る。
In FIG. 5, storage means 3 at the time of data transmission
An example of the operation of 0 and the storage unit management unit 29 will be described.

【0032】該上位システム又はユーザ空間におけるア
プリケーション層からの送信要求が発生すると、本発明
のシステムでは、送信の為のユーザが作成したメッセー
ジデータは、パイプライン処理でユーザ空間18のバッ
ファ21に納められるか、上位システムの記憶装置に納
めれている。送信要求によって、本システムの記憶手段
管理部29がシステム空間17に切り換え、送信の為に
必要な処理のプログラム命令コード20をユーザ空間1
8側のバッファ21の中のデータの構成要素に対応する
ように共用管理テーブル空間24にポインタを配置し、
通信システム用のヘッダを作成できるようにする。この
ヘッダ作成時、フレーム全体を必要とするような情報処
理は、処理の終盤で行う。例えばチェックサム情報の計
算とその情報値のヘッダ構造体への書き込みは、該記憶
手段30に入力されるか、上位システム側管理してお
き、送信要求時に該情報を本システム通知する。
When a transmission request is made from the upper system or the application layer in the user space, in the system of the present invention, the message data created by the user for transmission is stored in the buffer 21 of the user space 18 by pipeline processing. It is stored in the storage device of the host system. In response to a transmission request, the storage means management unit 29 of this system switches to the system space 17, and the program instruction code 20 of the processing required for transmission is set in the user space 1.
The pointer is arranged in the shared management table space 24 so as to correspond to the data components in the buffer 21 on the 8 side,
Allows you to create headers for communication systems. When creating this header, information processing that requires the entire frame is performed at the end of the process. For example, the calculation of the checksum information and the writing of the information value into the header structure are input to the storage means 30 or managed by the upper system side, and the information is notified of this system at the time of a transmission request.

【0033】本システム(図2)の場合は、ユーザ空間
18または上位システムで送信データが作成されると送
信バッファとして、本発明のシステムの記憶手段30の
ユーザ空間18に移される。この時、同時に移動データ
量が計数されていて、ヘッダ作成の処理の為の情報が揃
ったことになる。子プロセッサ41でのヘッダ作成処理
が完了したときは、システム空間17のバッファ19に
納められ、LAN伝送路にフレームを送出するときに記
憶手段管理部29の仮想共用ポインタ切り換え部16が
システム空間17とユーザ空間18を切り替えながら、
共用管理テーブル空間24の情報に従って、作成したシ
ステム空間17のバッファ19に格納されたヘッダデー
タとユーザ空間18のバッファ21の中のメッセージデ
ータを結合して送信処理を行う。
In the case of this system (FIG. 2), when transmission data is created in the user space 18 or the host system, it is transferred to the user space 18 of the storage means 30 of the system of the present invention as a transmission buffer. At this time, the amount of moving data is being counted at the same time, which means that the information for the header creation processing is gathered. When the header creation process in the child processor 41 is completed, it is stored in the buffer 19 of the system space 17, and when the frame is sent to the LAN transmission line, the virtual shared pointer switching unit 16 of the storage means management unit 29 sets the system space 17 in the system space 17. While switching between the user space 18 and
According to the information in the shared management table space 24, the header data stored in the buffer 19 of the system space 17 and the message data in the buffer 21 of the user space 18 are combined to perform the transmission process.

【0034】図7と図8に示すように本発明のシステム
は、親プロセッサを備えることも可能なため、同時に別
システムの共存ができ、I/Oポートを拡張すること
で、単独のWSとして、又、サーバWSの高速通信専用
処理LANアダプタとしても使用できる。特に図8の場
合、通信処理はアダプタで並列処理を行い、メッセージ
データは直接サ−バWSに送られて安定した性能で処理
される。
As shown in FIGS. 7 and 8, the system of the present invention can be provided with a parent processor, so that another system can coexist at the same time, and by expanding the I / O port, it becomes a single WS. It can also be used as a processing LAN adapter dedicated to high-speed communication of the server WS. Particularly in the case of FIG. 8, communication processing is performed in parallel by the adapter, and the message data is directly sent to the server WS and processed with stable performance.

【0035】[0035]

【発明の効果】本発明により、一つ又は複数のプロセッ
サで、他のプロセスとは独立にデータとデータに対応す
るI/Oの処理が同時に行えるので、高速且つキャッシ
ュのミスヒットなしの安定した性能が保証される。
As described above, according to the present invention, one or a plurality of processors can simultaneously perform data processing and I / O processing corresponding to the data independently of other processes. Therefore, high speed and stable cache miss-hit can be achieved. Performance is guaranteed.

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

【図1】本発明の処理手順の1実施例を示すフローチャ
ートである。
FIG. 1 is a flowchart showing an embodiment of a processing procedure of the present invention.

【図2】本発明に係る通信処理装置の内部のデバイス構
成ブロック図である。
FIG. 2 is a block diagram of a device configuration inside a communication processing apparatus according to the present invention.

【図3】本発明に係る処理手順の1実施例を示すフロー
チャートに各処理部からの制御関係を付加したフローチ
ャートである。
FIG. 3 is a flowchart in which a control relationship from each processing unit is added to a flowchart showing an embodiment of a processing procedure according to the present invention.

【図4】I/Oを使用するデータを格納する記憶手段の
論理的管理空間のブロック図である。
FIG. 4 is a block diagram of a logical management space of a storage unit that stores data using I / O.

【図5】本発明に係る記憶手段内の内部構成を示すブロ
ック図である。
FIG. 5 is a block diagram showing an internal configuration in a storage unit according to the present invention.

【図6】本発明に係る、I/O処理最適化プロセッサの
内部構成を示すブロック図である。
FIG. 6 is a block diagram showing an internal configuration of an I / O processing optimization processor according to the present invention.

【図7】通信システム対応クライアントWSの応用例を
示す図である。
FIG. 7 is a diagram illustrating an application example of a communication system compatible client WS.

【図8】LANアダプタとして使用する場合の通信シス
テム対応サーバWSの応用例を示す図である。
FIG. 8 is a diagram showing an application example of a communication system compatible server WS when used as a LAN adapter.

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

31…システムバス(データバス、I/Oバス、命令バ
ス)、32…入力キャッシュ、33…キャッシュデータ
転送管理部、34…記憶手段管理部、35…キャッシュ
/レジスタ管理部、36…レジスタファイル、37…A
LUデータロード管理部、38…ALU(算術論理演算
ユニット)、39…プログラム命令コード判定部、40
…出力キャッシュ、41…子プロセッサ、42…コント
ロールバス。
31 ... System bus (data bus, I / O bus, instruction bus), 32 ... Input cache, 33 ... Cache data transfer management unit, 34 ... Storage unit management unit, 35 ... Cache / register management unit, 36 ... Register file, 37 ... A
LU data load management unit, 38 ... ALU (arithmetic logical operation unit), 39 ... Program instruction code determination unit, 40
... output cache, 41 ... child processor, 42 ... control bus.

Claims (20)

【特許請求の範囲】[Claims] 【請求項1】システムに使用するバッファ又はメモリと
ユーザ空間が使用するバッファ又はメモリ内のデータを
一括管理して記憶手段を共用する機能を特徴とする仮想
共用記憶方式。
1. A virtual shared storage system having a function of collectively managing data in a buffer or a memory used in a system and a buffer or a memory used by a user space to share a storage means.
【請求項2】記憶手段管理部とプログラム命令分配手段
と仮想共用管理テーブルによって、ユーザ空間とシステ
ム空間を切り換える機能を特徴とする仮想共用記憶切り
換え方式。
2. A virtual shared storage switching system characterized by a function of switching between a user space and a system space by a storage management unit, a program instruction distribution unit, and a virtual sharing management table.
【請求項3】記憶手段管理部とプログラム命令分配手段
と仮想共用管理テーブルを制御して、システムのプログ
ラム命令をユーザエリアのデータに分配する機能を設け
たことを特徴とする仮想共用切り変え手段。
3. A virtual sharing switching means having a function of distributing a program instruction of a system to data in a user area by controlling a storage means management section, a program instruction distribution means, and a virtual sharing management table. .
【請求項4】記憶手段管理部とプログラム命令分配手段
と仮想共用管理テーブルを制御して、システムのプログ
ラム命令をシステムのデータに分配する機能を設けたこ
とを特徴とする仮想共用切り変え手段。
4. A virtual sharing switching means having a function of controlling a storage means management unit, a program instruction distribution means, and a virtual sharing management table to distribute a system program instruction to system data.
【請求項5】システム空間に格納したデータとシステム
プログラム命令、またはユーザプログラム命令を共存さ
せる機能を特徴とする処理プログラム命令共存データ管
理方式。
5. A processing program / instruction coexistence data management system characterized by the function of coexisting data stored in a system space and a system program instruction or a user program instruction.
【請求項6】記憶手段に格納したデータに処理プログラ
ムを付随して、入力キャッシュ又はレジスタファイルに
格納し、ALU入力キャッシュ又はレジスタ指定する機
能を特徴とするプロセッサ内記憶手段管理方式。
6. An in-processor storage means management system characterized in that the data stored in the storage means is associated with a processing program, stored in an input cache or register file, and designated as an ALU input cache or register.
【請求項7】各データに処理プログラム命令を付随する
機能を設けたことを特徴とするプログラム命令分配手
段。
7. A program instruction distributing means, wherein a function of attaching a processing program instruction to each data is provided.
【請求項8】各処理データに処理プログラム命令を付随
するプログラム命令分配管理手段に空きキャッシュ・空
きレジスタの情報を通知する機能を設けたことを特徴と
するキャッシュ・レジスタ管理部。
8. A cache / register management unit provided with a function of notifying information of empty cache / empty register to a program instruction distribution management means in which a processing program instruction is attached to each processing data.
【請求項9】処理プログラム命令に付随するデータの格
納レジスタ番号をALUに通知する機能を設けたことを
特徴とするALUデータロード管理手段。
9. An ALU data load management means having a function of notifying the ALU of a storage register number of data associated with a processing program instruction.
【請求項10】入力キャッシュからレジスタにデータと
プログラム命令をロードする機能を設けたことを特徴と
するキャッシュデータ転送管理手段。
10. A cache data transfer management means having a function of loading data and a program instruction from an input cache to a register.
【請求項11】出力キャッシュから記憶手段にデータと
プログラム命令をロードする機能を設けたことを特徴と
するキャッシュデータ転送管理手段。
11. A cache data transfer management means having a function of loading data and program instructions from an output cache to a storage means.
【請求項12】先にロードしたプログラム命令付きデー
タのプログラム命令が同一の時は再度プログラム命令を
ロードせずにレジスタ又はALUの既存プログラム命令
を使用する機能を特徴とする連続プログラム命令判定方
式。
12. A continuous program instruction judging method characterized in that when the program instruction of the previously loaded data with the program instruction is the same, the existing program instruction of the register or ALU is used without reloading the program instruction.
【請求項13】先にロードしたプログラム命令付きデー
タのプログラム命令が同一の時は再度プログラム命令を
ロードせずにレジスタ又はALUの既存プログラム命令
を使用する機能を設けたことを特徴とする連続プログラ
ム命令判定手段。
13. A continuous program having a function of using an existing program instruction of a register or an ALU without reloading the program instruction when the program instruction of the previously loaded data with the program instruction is the same. Command decision means.
【請求項14】ALUでの処理前のデータを格納するこ
とを特徴とする入力専用キャッシュ。
14. An input-only cache for storing data before being processed by an ALU.
【請求項15】ALUでの処理済みのデータを格納する
ことを特徴とする、出力専用キャッシュ。
15. An output-only cache for storing processed data in an ALU.
【請求項16】出力キャッシュのデータを記憶手段に転
送、又は、記憶部から入力キャッシュに、データを転送
する機能を設けたことを特徴とするキャッシュデータ転
送管理部。
16. A cache data transfer management unit having a function of transferring data from an output cache to a storage means or transferring data from a storage unit to an input cache.
【請求項17】処理前のデータ格納用キャッシュと処理
後のデータ格納用キャッシュを設けたことを特徴とする
入出力キャッシュ付きプロセッサ。
17. A processor with an input / output cache provided with a data storage cache before processing and a data storage cache after processing.
【請求項18】入出力付きプロセッサを管理して、当該
プロセッサの出力結果を関連付けて、必要に応じて、バ
スに流さずに処理を行う機能を設けたことを特徴とする
親プロセッサ。
18. A parent processor having a function of managing a processor with an input / output, associating an output result of the processor with each other, and performing a process without flowing the result on a bus as needed.
【請求項19】入出力付きプロセッサを管理して、当該
プロセッサの出力結果を関連付けて、出力結果をプログ
ラムの必要に応じて、バスに流さずに処理を行うことを
特徴とする親プロセッサの関連データ階層処理方式。
19. A relation of a parent processor, characterized in that a processor with an input / output is managed, an output result of the processor is associated with the output result, and the output result is processed as needed by a program without flowing to a bus. Data hierarchy processing method.
【請求項20】請求項1から請求項19のいずれか1項
によって、実現することを特徴とするI/Oデータ一括
転送処理方式。
20. An I / O data batch transfer processing method, which is realized by any one of claims 1 to 19.
JP4200993A 1992-07-28 1992-07-28 Virtual shared memory system Pending JPH0652052A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4200993A JPH0652052A (en) 1992-07-28 1992-07-28 Virtual shared memory system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4200993A JPH0652052A (en) 1992-07-28 1992-07-28 Virtual shared memory system

Publications (1)

Publication Number Publication Date
JPH0652052A true JPH0652052A (en) 1994-02-25

Family

ID=16433728

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4200993A Pending JPH0652052A (en) 1992-07-28 1992-07-28 Virtual shared memory system

Country Status (1)

Country Link
JP (1) JPH0652052A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002522828A (en) * 1998-08-05 2002-07-23 インフィネオン テクノロジース アクチエンゲゼルシャフト Interface circuit and method for transmitting data between serial interface and processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002522828A (en) * 1998-08-05 2002-07-23 インフィネオン テクノロジース アクチエンゲゼルシャフト Interface circuit and method for transmitting data between serial interface and processor
US6751689B2 (en) 1998-08-05 2004-06-15 Infineon Technologies Ag Interface circuit and method for transmitting data between a serial interface and a processor

Similar Documents

Publication Publication Date Title
US5444853A (en) System and method for transferring data between a plurality of virtual FIFO's and a peripheral via a hardware FIFO and selectively updating control information associated with the virtual FIFO's
EP0550164B1 (en) Method and apparatus for interleaving multiple-channel DMA operations
CN102375800B (en) For the multiprocessor systems on chips of machine vision algorithm
US6108766A (en) Structure of processor having a plurality of main processors and sub processors, and a method for sharing the sub processors
US5386532A (en) Method and apparatus for transferring data between a memory and a plurality of peripheral units through a plurality of data channels
US6594713B1 (en) Hub interface unit and application unit interfaces for expanded direct memory access processor
US5185868A (en) Apparatus having hierarchically arranged decoders concurrently decoding instructions and shifting instructions not ready for execution to vacant decoders higher in the hierarchy
US5428779A (en) System and method for supporting context switching within a multiprocessor system having functional blocks that generate state programs with coded register load instructions
US5574939A (en) Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US6046752A (en) Peer-to-peer parallel processing graphics accelerator
US8438578B2 (en) Network on chip with an I/O accelerator
US5251306A (en) Apparatus for controlling execution of a program in a computing device
US5481707A (en) Dedicated processor for task I/O and memory management
CN109983440A (en) Data processing
US20030145136A1 (en) Method and apparatus for implementing a relaxed ordering model in a computer system
JP4171910B2 (en) Parallel processing system and parallel processing program
JPH076115A (en) Control method of hardware data movement function by software user of data- processing system, synchronization method of operation between processors and method for giving of plurality of device control blocks
US5404477A (en) Extended memory address conversion and data transfer control system
US20060206663A1 (en) Disk array device and shared memory device thereof, and control program and control method of disk array device
JPH06231088A (en) Multiprocessor memory and solution method of memory reference conflict
JP4585647B2 (en) Support for multiple outstanding requests to multiple targets in a pipelined memory system
US7610451B2 (en) Data transfer mechanism using unidirectional pull bus and push bus
JPH05508495A (en) Global register for multiple processors
US6938132B1 (en) Memory co-processor for a multi-tasking system
JP3431941B2 (en) Method and apparatus for determining instruction execution order in a data processing system