JPH064491A - Data processing memory device - Google Patents

Data processing memory device

Info

Publication number
JPH064491A
JPH064491A JP4165116A JP16511692A JPH064491A JP H064491 A JPH064491 A JP H064491A JP 4165116 A JP4165116 A JP 4165116A JP 16511692 A JP16511692 A JP 16511692A JP H064491 A JPH064491 A JP H064491A
Authority
JP
Japan
Prior art keywords
data
port
address
bus
processing
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
JP4165116A
Other languages
Japanese (ja)
Inventor
Nobutaka Maruyama
修孝 丸山
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.)
JFE Engineering Corp
Original Assignee
NKK Corp
Nippon Kokan 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 NKK Corp, Nippon Kokan Ltd filed Critical NKK Corp
Priority to JP4165116A priority Critical patent/JPH064491A/en
Publication of JPH064491A publication Critical patent/JPH064491A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To provide the data processing memory device capable of concentrating on the data processing by shortening the processing time of data transmission by a CPU. CONSTITUTION:This device is composed of a triple-port RAM 1 provided with a first port for writing data, a second port for reading the data and a third port for writing or reading the data, a WC 3 for performing the output to the address bus of the first port, an RC 4 for performing the output to the address bus of the second port, the control for writing the data of the data bus of the first port to the RAM 1 corresponding to the address value of the address bus of the first port, the control for reading the data from the RAM 1 to the data bus of the second port corresponding to the address value of the address bus of the second port, and an RAF controller 2 for controlling the write of the data of the data bus of the port to the RAM 1 corresponding to the address value of the third port or the read of the data from the RAM 1 to the data bus of the port corresponding to the address value of the address bus.

Description

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

【0001】[0001]

【産業上の利用分野】この発明はデータ処理用メモリ装
置、特に3つのポートを有するランダムアクセスメモリ
に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a data processing memory device, and more particularly to a random access memory having three ports.

【0002】[0002]

【従来の技術】図14は従来のデータ並列処理の一形態
を示す図である。同図において1001,1002,1
00iはそれぞれ処理モジュール(1)、処理モジュー
ル(2)、処理モジュール(i)であり、各処理モジュ
ールは並列同時処理の動作が可能である。図14におい
て、データブロックが処理モジュール(1)に入力され
ると、処理モジュール(1)はそのモジュールですべき
処理を行ない、次のモジュールに送出を要するデータブ
ロックを処理モジュール(2)に送る。処理モジュール
(2)はそのモジュールですべき処理を行ない、さらに
送出を要するデータブロックを処理モジュール(3)に
送る。これを繰り返す。このようなデータ処理系は最近
ネットワークのプロトコル処理などで良く見受けられ
る。例えば、LANの中継装置などは、処理モジュール
(1)で第一の網のデータリンクレイヤ、処理モジュー
ル(2)で第一の網のネットワークレイヤ、処理モジュ
ール(3)で第二の網のネットワークレイヤ、処理モジ
ュール(4)で第二の網のデータリンクレイヤを処理す
るという例がある。そうしてこれらの処理モジュール間
をデータユニットと呼ばれるデータの塊(ブロック)が
移動し、各処理モジュールでこのデータユニットを処理
してゆく。
2. Description of the Related Art FIG. 14 is a diagram showing one form of conventional data parallel processing. In the figure, 1001, 1002, 1
00i is a processing module (1), a processing module (2), and a processing module (i), respectively, and each processing module can operate in parallel and simultaneously. In FIG. 14, when a data block is input to the processing module (1), the processing module (1) performs the processing to be performed by the module and sends the data block that needs to be sent to the next module to the processing module (2). The processing module (2) performs the processing to be performed by the module, and sends the data block that needs to be sent to the processing module (3). Repeat this. Such data processing systems are often found in network protocol processing recently. For example, in a LAN relay device or the like, the processing module (1) has a data link layer of the first network, the processing module (2) has a network layer of the first network, and the processing module (3) has a network of the second network. There is an example in which the layer and processing module (4) processes the data link layer of the second network. Then, a block of data called a data unit moves between these processing modules, and each processing module processes this data unit.

【0003】図15は図14を具現化した図である。同
図において、120〜122はそれぞれCPU(N−
1)〜(N+1)、130〜132はそれぞれCPUと
そのCPUが使用する命令やデータ、ワークエリアのた
めのLocal Memory(N−1)〜(N+
1)、140〜142はそれぞれ直接記憶アクセス制御
装置(以下DMAと略称する)(N−1)〜(N+
1)、150〜152はそれぞれバストランシーバであ
る。
FIG. 15 is a diagram embodying FIG. In the figure, 120 to 122 are CPUs (N-
1) to (N + 1) and 130 to 132 are CPUs, instructions and data used by the CPUs, and Local Memory (N-1) to (N +) for work areas.
1) and 140 to 142 are direct storage access control devices (hereinafter abbreviated as DMA) (N-1) to (N +), respectively.
1) and 150 to 152 are bus transceivers.

【0004】図15の動作を説明する。各処理モジュー
ル間のCPUバスはバストランシーバで接続されてお
り、処理モジュール間でデータが転送される時にバスト
ランシーバはトランスペアレントになる。いま、処理モ
ジュール(N)に注目して説明を行う。処理モジュール
(N−1)が処理モジュール(N)に送信するデータブ
ロックが準備出来ると、処理モジュール(N−1)はC
PU(N)121に対しインタラプトをかけるなどして
その旨を処理モジュール(N)に伝える。CPU(N)
121はLocal Memory(N−1)130よ
り、当該データを読み出しLocal Memory
(N)131に書き込む(図の点線の四角のようにDM
Aを用いて高速転送してもよい)。CPU(N)121
がLocal Memory(N−1)130にアクセ
スしている間は、CPU(N−1)120はCPU(N
−1)のバスにはアクセス出来ない。一般にはCPU
(N)121がCPU(N−1)120に対しバスリク
エスト信号をアサート(assert、主張)し、CP
U(N−1)にバスを解放してもらい、データブロック
を読み出し、その後バスリクエスト信号をネゲート(n
egate、否定)し、CPU(N−1)120にバス
アクセスの権利を返還する方式が取られる。Local
Memory(N)131に書き込まれたデータブロ
ックは、CPU(N)が処理し、完了するとCPU
(N)はCPU(N+1)に対しインタラプトをかける
などしてその旨を処理モジュール(N+1)に伝える。
The operation of FIG. 15 will be described. The CPU bus between each processing module is connected by a bus transceiver, and the bus transceiver becomes transparent when data is transferred between the processing modules. Now, the processing module (N) will be focused and described. When the data block to be transmitted to the processing module (N-1) is prepared by the processing module (N-1), the processing module (N-1) outputs C.
The PU (N) 121 is notified to the processing module (N) by interrupting the PU (N) 121. CPU (N)
Reference numeral 121 reads out the data from the Local Memory (N-1) 130, and reads the Local Memory.
(N) Write to 131 (DM like the dotted square in the figure
High-speed transfer may be performed using A). CPU (N) 121
While accessing the Local Memory (N-1) 130, the CPU (N-1) 120 is
-1) Bus cannot be accessed. CPU in general
(N) 121 asserts a bus request signal to the CPU (N-1) 120 and asserts CP
Ask U (N-1) to release the bus, read the data block, and then negate the bus request signal (n
A method is adopted in which the bus access right is returned to the CPU (N-1) 120 after erasing. Local
The data block written in the Memory (N) 131 is processed by the CPU (N), and when completed, the CPU
(N) informs the processing module (N + 1) by interrupting the CPU (N + 1).

【0005】図16は図15のデータ処理ステップを説
明する図である。図16を説明する。データブロックの
管理はこの図16のようにキュー(queue、待ち行
列)を使う。またOSとしてマルチタスクOSを実装す
るのが一般的である。処理モジュール(N−1)からイ
ンタラプトがあるとデータ受信プロセスS10が起動さ
れる。CPU(N)121は空きバッファキューから空
きバッファを獲得する(S11)。次に処理モジュール
(N−1)の処理終了キューからデータブロックを読み
出し、獲得したバッファに転送する(S12)。データ
ブロックの転送が終わると処理待ちキューにこのバッフ
ァをキューイングする(S13)。最後に処理モジュー
ル(N−1)に転送の終了を通知して、データ受信プロ
セスを終了する(S14)。
FIG. 16 is a diagram for explaining the data processing steps of FIG. FIG. 16 will be described. The management of the data block uses a queue as shown in FIG. Further, it is general to mount a multitasking OS as the OS. When there is an interrupt from the processing module (N-1), the data receiving process S10 is activated. The CPU (N) 121 acquires a free buffer from the free buffer queue (S11). Next, the data block is read from the processing end queue of the processing module (N-1) and transferred to the acquired buffer (S12). When the transfer of the data block is completed, this buffer is queued in the processing queue (S13). Finally, the processing module (N-1) is notified of the end of the transfer, and the data receiving process is ended (S14).

【0006】処理待ちキューにデータブロックの入った
バッファがはいると、データ処理プロセスS20が起動
される。CPU(N)121は処理待ちキューの先頭の
データブロックの処理を行う(S21)。処理が終了す
るとデータブロックの入ったバッファを処理終了キュー
に入れる(S22)。そしてCPU(N+1)にインタ
ラプトをかけ送信準備の完了を伝える(S23)。そし
てデータ処理プロセスを終了する。処理モジュール(N
+1)からインタラプトによりデータブロックの転送の
終了を通知されると、データ送信終了プロセスS30が
起動される。CPU(N)はデータブロックの入ってい
たバッファを空きバッファキューに入れデータ送信終了
プロセスを終了する(S31)。
When there is a buffer containing a data block in the processing queue, the data processing process S20 is started. The CPU (N) 121 processes the first data block in the processing waiting queue (S21). When the processing is completed, the buffer containing the data block is put in the processing completion queue (S22). Then, the CPU (N + 1) is interrupted to notify the completion of the transmission preparation (S23). Then, the data processing process ends. Processing module (N
When the end of the data block transfer is notified by the interrupt from +1), the data transmission end process S30 is activated. The CPU (N) puts the buffer containing the data block in the empty buffer queue and ends the data transmission end process (S31).

【0007】従来の各データ処理装置におけるデータ処
理用メモリとしては、上記のLocal Memory
が一般的であり、この場合に各装置のLocal Me
moryの間のデータの転送は、CPU Busを介し
て行なわれるため、データ転送中にCPUは他の処理を
行なうことができなかった。従来技術の他の例として
は、メモリとしてのFIFOをバイパスしてデータをレ
ジスタに書き込み、FIFOより優先して処理する方式
の特開平2−61741号公報があった。
As a data processing memory in each conventional data processing apparatus, the above-mentioned Local Memory is used.
Is common, and in this case, the Local Me of each device is
Since the data transfer between the memories is performed via the CPU Bus, the CPU cannot perform other processing during the data transfer. As another example of the conventional technique, there is Japanese Patent Laid-Open No. 2-61741, which is a system in which a FIFO as a memory is bypassed, data is written in a register, and processing is performed with priority over the FIFO.

【0008】[0008]

【発明が解決しようとする課題】しかしながら上記のよ
うな従来のデータ処理用メモリを用いたデータ処理装置
のデータブロックの伝送所要時間と、データ処理所要時
間とを区別してみると、実際に自己のデータ処理装置が
本来実行すべきデータ処理に必要な時間は、図16のS
21における「データ処理」の時間のみである。その他
の処理時間はデータ転送、プロセスの切換、データブロ
ックの管理、バッファの管理等に係る時間である。即ち
図16の一連の処理において、空きバッファキュー、処
理待ちキュー、処理終了キュー間のデータブロックの移
動は、実際にはそのブロックの先頭アドレスのポインタ
を移動させることにより実施され、実際のデータブロッ
クの移動はなされない。しかし図15の説明で述べたよ
うに、(N−1)の処理終了キューから(N)の処理待
ちキュー及び(N)の処理終了キューから(N+1)の
処理待ちキュー間のデータブロックの移動では、実際の
データブロックが移動する。この時間はオーバヘッド時
間である。また、図16ではプロセスを3つに分けてお
り、これにより生じるプロセス切替えのためのOS内で
の処理時間もオーバヘッド時間である。さらに、キュー
の管理や空きバッファの管理のために消費される時間も
オーバヘッド時間である。このようにデータ処理装置の
CPUは、データ伝送に係るオーバヘッド時間のため
に、本来実行すべき「データ処理」に専念する時間が十
分に取れないという問題点があった。
However, when the data processing required time of the data processing device using the conventional data processing memory as described above is distinguished from the data processing required time, it is actually The time required for the data processing which the data processing device originally should execute is S in FIG.
21 is only the "data processing" time. The other processing time is a time related to data transfer, process switching, data block management, buffer management, and the like. That is, in the series of processing in FIG. 16, the movement of the data block among the empty buffer queue, the processing waiting queue, and the processing end queue is actually carried out by moving the pointer of the start address of the block, and the actual data block Will not be moved. However, as described in the description of FIG. 15, the movement of the data block between the (N-1) process end queue to the (N) process wait queue and the (N) process end queue to the (N + 1) process wait queue. Then the actual data block moves. This time is the overhead time. Further, in FIG. 16, the process is divided into three, and the processing time in the OS for the process switching caused by this is also the overhead time. Furthermore, the time consumed for managing queues and managing free buffers is also overhead time. As described above, the CPU of the data processing device has a problem in that it cannot take enough time to concentrate on the “data processing” that should be originally executed due to the overhead time related to data transmission.

【0009】本発明はかかる問題点を解決するためにな
されたもので、データ処理装置のCPUがデータ転送
や、プロセスの切換、データブロックの管理、バッファ
の管理等に係る処理時間を極力減少させ、前記CPUが
本来実行すべきデータ処理に専念することができるデー
タ処理用メモリ装置を得ることを目的とする。
The present invention has been made to solve the above problems, and the CPU of the data processing apparatus reduces the processing time for data transfer, process switching, data block management, buffer management, etc. as much as possible. It is an object of the present invention to obtain a data processing memory device which can concentrate on data processing which the CPU should originally execute.

【0010】[0010]

【課題を解決するための手段】本請求項1に係るデータ
処理用メモリ装置は、データの書き込みに使用する第1
のポートと、データの読み出しに使用する第2のポート
と、データの書き込み又は読み出しに使用する第3のポ
ートとを有するランダムアクセスメモリと、前記第1の
ポートのアドレスバスにアドレスを出力する書き込みカ
ウンタと、前記第1のポートのアドレスバスのアドレス
値に従い、前記第1のポートのデータバスのデータを前
記ランダムアクセスメモリに書き込む書き込み制御手段
と、前記第2のポートのアドレスバスにアドレスを出力
する読み出しカウンタと、前記第2のポートのアドレス
バスのアドレス値に従い、前記ランダムアクセスメモリ
から前記第2のポートのデータバスにデータを読み出す
読み出し制御手段と、前記第3のポートのアドレスバス
のアドレス値に従い前記ランダムアクセスメモリに該ポ
ートのデータバスのデータを書き込むか、または前記ア
ドレスバスのアドレス値に従い前記ランダムアクセスメ
モリから該ポートのデータバスにデータを読み出す書き
込み及び読み出し制御手段とを備えたものである。
A data processing memory device according to a first aspect of the present invention is used for writing data.
, A second port used for reading data, a random access memory having a third port used for writing or reading data, and a write for outputting an address to the address bus of the first port. A counter, write control means for writing data of the data bus of the first port to the random access memory according to an address value of the address bus of the first port, and outputting an address to the address bus of the second port. Read counter, read control means for reading data from the random access memory to the data bus of the second port according to the address value of the address bus of the second port, and address of the address bus of the third port. The data bus of the port in the random access memory according to the value Or writing data, or from the address bus the random access memory in accordance with the address value of which was a write and read control means reads the data on the data bus of the port.

【0011】本請求項2に係るデータ処理用メモリ装置
は、前記書き込みカウンタに外部から任意のアドレス値
を設定する書き込みアドレス設定手段を前記請求項1に
係るデータ処理用メモリ装置に付加したものである。
A data processing memory device according to a second aspect of the present invention is the data processing memory device according to the first aspect, wherein write address setting means for externally setting an arbitrary address value to the write counter is added. is there.

【0012】本請求項3に係るデータ処理用メモリ装置
は、外部からの制御指令に基づき、前記ランダムアクセ
スメモリの任意のアドレス値が外部から設定されるか、
または前記書き込みカウンタの出力するアドレス値が設
定されるポインタと、前記ポインタの出力するアドレス
値と前記読み出しカウンタの出力するアドレス値とを比
較し、両アドレス値が一致したときに一致検出信号を出
力するアドレス値一致検出手段とを前記請求項1または
請求項2記載のデータ処理用メモリ装置に付加したもの
である。
In the data processing memory device according to the third aspect of the present invention, an arbitrary address value of the random access memory is set from the outside based on a control command from the outside,
Alternatively, the pointer to which the address value output by the write counter is set is compared with the address value output by the pointer and the address value output by the read counter, and a match detection signal is output when both address values match. The address value coincidence detecting means is added to the data processing memory device according to claim 1 or 2.

【0013】[0013]

【作用】本請求項1に係る発明においては、ランダムア
クセスメモリはデータの書き込みに使用する第1のポー
トと、データの読み出しに使用する第2のポートと、デ
ータの書き込み又は読み出しに使用する第3のポートと
を有する。書き込みカウンタは前記第1のポートのアド
レスバスにアドレスを出力し、書き込み制御手段は前記
第1のポートのアドレスバスのアドレス値に従い、前記
第1のポートのデータバスのデータを前記ランダムアク
セスメモリに書き込む。読み出しカウンタは前記第2の
ポートのアドレスバスにアドレスを出力し、読み出し制
御手段は前記第2のポートのアドレスバスのアドレス値
に従い、前記ランダムアクセスメモリから前記第2のポ
ートのデータバスにデータを読み出す。書き込み及び読
み出し制御手段は、前記第3のポートのアドレスバスの
アドレス値に従い前記ランダムアクセスメモリに該ポー
トのデータバスのデータを書き込むか、または前記アド
レスバスのアドレス値に従い前記ランダムアクセスメモ
リから該ポートのデータバスにデータを読み出す。
According to the first aspect of the invention, the random access memory has a first port used for writing data, a second port used for reading data, and a second port used for writing or reading data. 3 ports. The write counter outputs an address to the address bus of the first port, and the write control means writes the data of the data bus of the first port to the random access memory according to the address value of the address bus of the first port. Write. The read counter outputs an address to the address bus of the second port, and the read control means writes data from the random access memory to the data bus of the second port according to the address value of the address bus of the second port. read out. The write and read control means writes data of the data bus of the port to the random access memory according to the address value of the address bus of the third port, or writes data from the random access memory to the port of the random access memory according to the address value of the address bus. Read the data to the data bus.

【0014】本請求項2に係る発明においては、前記請
求項1に係る発明に書き込みアドレス設定手段が付加さ
れ、該書き込みアドレス設定手段は前記書き込みカウン
タに外部から任意のアドレス値を設定する。
In the invention according to claim 2, write address setting means is added to the invention according to claim 1, and the write address setting means externally sets an arbitrary address value to the write counter.

【0015】本請求項3に係る発明においては、前記請
求項1または請求項2に係る発明にポインタとアドレス
値一致検出手段とが付加される。前記ポインタには、外
部からの制御指令に基づき、前記ランダムアクセスメモ
リの任意のアドレス値が外部から設定されるか、または
前記書き込みカウンタの出力するアドレス値が設定され
る。また前記アドレス値一致検出手段は、前記ポインタ
の出力するアドレス値と前記読み出しカウンタの出力す
るアドレス値とを比較し、両アドレス値が一致したとき
に一致検出信号を出力する。
In the invention according to claim 3, a pointer and address value coincidence detecting means are added to the invention according to claim 1 or claim 2. An arbitrary address value of the random access memory is externally set or an address value output from the write counter is set to the pointer based on a control command from the outside. The address value coincidence detecting means compares the address value output by the pointer with the address value output by the read counter, and outputs a coincidence detection signal when both address values coincide.

【0016】[0016]

【実施例】図2は本発明に係る処理モジュールの接続例
を示す図であり、3つの処理モジュール(N−1),
(N)及び(N+1)の接続を示している。同図におい
て、100〜102はそれぞれRAF(Random
Accessible FIFOの略称である)(N−
1)〜(N+1)、110〜112はそれぞれIMC
(Inter Module Controllerの
略称である)(N−1)〜(N+1)、120〜112
はそれぞれCPU(N−1)〜(N+1)、130〜1
32はそれぞれCPUとそのCPUが使用する命令やデ
ータ、ワークエリアのためのLocal Memory
(N−1)〜(N+1)である。各処理モジュールは、
前記RAF、IMC、CPU及びLocal Memo
ryにより構成される。図3は図2の処理モジュール
(N)の詳細図であり、同図においては、処理モジュー
ル(N)を中心として、その前後の処理モジュール(N
−1)及び(N+1)との間の信号の接続関係が示され
ている。
FIG. 2 is a diagram showing an example of connection of processing modules according to the present invention. Three processing modules (N-1),
The connections (N) and (N + 1) are shown. In the figure, 100 to 102 are RAF (Random), respectively.
Abbreviation for Accessible FIFO) (N-
1) to (N + 1) and 110 to 112 are IMCs, respectively.
(Abbreviation of Inter Module Controller) (N-1) to (N + 1), 120 to 112
Are CPUs (N-1) to (N + 1) and 130 to 1 respectively
Reference numeral 32 denotes a CPU, instructions and data used by the CPU, and a local memory for a work area.
(N-1) to (N + 1). Each processing module
The RAF, IMC, CPU and Local Memo
ry. FIG. 3 is a detailed view of the processing module (N) shown in FIG. 2, in which the processing module (N) is centered and the processing modules (N
The connection relationship of signals between −1) and (N + 1) is shown.

【0017】RAF101はRAMとFIFOの2つの
特徴を兼ね備えている。すなわち3つのポートを有し、
第1のポートがFIFOデータ入力ポート、第2のポー
トがFIFOデータ出力ポート、第3のポートがランダ
ムにアクセスできるポートである。第1のポートにはデ
ータ入力バス(入力)、書き込み信号(入力)、FIF
O Full信号(出力)がある。第2のポートにはデ
ータ出力バス(出力)、読み出し信号(入力)、FIF
O Empty信号(出力)がある。第3のポートに
は、データバス(入出力)、アドレスバス(入力)、書
き込み信号(入力)、読み出し信号(入力)がある。R
AF101のFIFOデータ出力ポートは次段の処理モ
ジュールのRAF102のFIFOデータ入力ポートに
接続される。また、IMC111はRAF間のデータ転
送を行うコントローラである。なお、図3における省略
された信号名の意味は次の通りである。 DW :Data Write Data Bus (N−1)のデータ書き込み信号を
示す。 DR :Data Read Data Bus (N)へのデータ読み出し信号を示
す。 EMP :Empty CMP2がアサートされたとき、EMPがアサートされ
る。すなわち、処理済FIFOが空の状態を示す。 FULL:Full CMP1の信号がアサートされたとき、FULLがアサ
ートされる。すなわち、FIFOが満杯の状態を示す。
The RAF 101 has two features of RAM and FIFO. I have three ports,
The first port is a FIFO data input port, the second port is a FIFO data output port, and the third port is a randomly accessible port. The first port has a data input bus (input), a write signal (input), a FIF
There is an O Full signal (output). The second port has a data output bus (output), a read signal (input), a FIF
There is an O Empty signal (output). The third port has a data bus (input / output), an address bus (input), a write signal (input), and a read signal (input). R
The FIFO data output port of the AF 101 is connected to the FIFO data input port of the RAF 102 of the next processing module. The IMC 111 is a controller that transfers data between RAFs. The meanings of the omitted signal names in FIG. 3 are as follows. DW: Data write signal of Data Write Data Bus (N-1) is shown. DR: Indicates a data read signal to Data Read Data Bus (N). EMP: EMP is asserted when Empty CMP2 is asserted. That is, the processed FIFO is empty. FULL: FULL is asserted when the signal of Full CMP1 is asserted. That is, the FIFO is full.

【0018】図4及び図5は図1のRAFの動作状態を
説明する図であり、同図においては、[1]〜[12]
で示す12の動作状態が示されている。各RAFは処理
用FIFOおよび処理済FIFOの2つからなり、各F
IFOには1つのデータブロックを蓄えることが出来
る。図4及び図5の上段が処理用FIFOを示し、下段
が処理済みFIFOを示している。処理用FIFOは、
前段の処理モジュール(N−1)から読み込んだデータ
ブロックを、処理モジュール(N)のCPU(N)12
1がランダムにアクセスできるポートよりアクセスし、
処理するFIFOである。処理済みFIFOは、後段の
処理モジュール(N+1)がデータブロックを読み出す
為のFIFOである。なお、処理用FIFOにはWC
(Write Counter)からの信号が入力さ
れ、処理済FIFOにはREP(Read Enabl
e Pointer)及びRC(Read Count
er)からの各信号がそれぞれ入力される。これらの動
作は図1の動作と共に説明する。
FIG. 4 and FIG. 5 are diagrams for explaining the operating state of the RAF of FIG. 1, and in FIG. 4, [1] to [12].
12 operating states shown by are shown. Each RAF consists of two, a processing FIFO and a processed FIFO.
One data block can be stored in the IFO. The upper stage of FIGS. 4 and 5 shows the processing FIFO, and the lower stage shows the processed FIFO. The processing FIFO is
The data block read from the processing module (N-1) at the previous stage is transferred to the CPU (N) 12 of the processing module (N).
Access from the port that 1 can access at random,
It is a FIFO to process. The processed FIFO is a FIFO for the processing module (N + 1) in the subsequent stage to read the data block. The processing FIFO is WC
A signal from the (Write Counter) is input, and the processed FIFO receives REP (Read Enable).
e Pointer) and RC (Read Count)
er) is input to each signal. These operations will be described together with the operation of FIG.

【0019】図1は本発明に係るRAF(Random
Accessible FIFO)の構成を示す図で
ある。同図において、1はTriple−Port R
AM、2はRAF Controller、3はWri
te Counter、4はRead Counte
r、5はRead Enable Pointer、6
はComparator(1)、7はComparat
or(2)、8はData Transceivrであ
る。またRAFは上記1〜8により構成される。
FIG. 1 shows a RAF (Random) according to the present invention.
It is a figure which shows the structure of Accessible FIFO. In the figure, 1 is Triple-Port R
AM, 2 is RAF Controller, 3 is Wri
te Counter, 4 is Read Counter
r and 5 are Read Enable Pointers, 6
Is Comparer (1), 7 is Comparer
or (2) and 8 are Data Transceiver. The RAF is composed of 1 to 8 above.

【0020】図1において使用される信号名の略称を以
下に説明する。 DW :Data Write Data Bus (N−1)のデータ書き込み信号を
示す。 DR :Data Read Data Bus (N)へのデータ読み出し信号を示
す。 EMP :Empty CMP2がアサートされたとき、EMPがアサートされ
る。すなわち、処理済FIFOが空の状態を示す。 FULL:Full CMP1の信号がアサートされたとき、FULLがアサ
ートされる。すなわち、FIFOが満杯の状態を示す。 CPR :CPU Read CPUからTriple−Port RAMおよびRA
F内のレジスタ、カウンタへの読み出し要求を示す。 CPW :CPU Write CPUからTriple−Port RAMおよびRA
F内のレジスタ、カウンタへの書き込み要求を示す。 PAW :Port A Write Triple−Port RAMのポートAへの書き込
み要求を示す。 PBW :Port B Write Triple−Port RAMのポートBへの書き込
み要求を示す。 PBR :Port B Read Triple−Port RAMのポートBからの読み
出し要求を示す。
Abbreviations of signal names used in FIG. 1 will be described below. DW: Data write signal of Data Write Data Bus (N-1) is shown. DR: Indicates a data read signal to Data Read Data Bus (N). EMP: EMP is asserted when Empty CMP2 is asserted. That is, the processed FIFO is empty. FULL: FULL is asserted when the signal of Full CMP1 is asserted. That is, the FIFO is full. CPR: CPU Read CPU to Triple-Port RAM and RA
The read request to the register and counter in F is shown. CPW: CPU Write CPU to Triple-Port RAM and RA
Indicates a write request to the register and counter in F. PAW: Port A Write Triple-indicates a write request to the port A of the RAM. PBW: Indicates a write request to the port B of the Port B Write Triple-Port RAM. PBR: Indicates a read request from the port B of the Port B Read Triple-Port RAM.

【0021】PCR :Port C Read Triple−Port RAMのポートCからの読み
出し要求を示す。 REPW:Read Enable Pointer
Write Read Enable Pointerへの書き込み
要求を示す。 REPR:Read Enable Pointer
Read Read Enable Pointerからの読み出
し要求を示す。 RCW :Read Counter Write Read Counterへの書き込み要求を示す。 RCR :Read Counter Read Read Counterからの読み出し要求を示す。 WCW :Write Counter Write Write Counterへの書き込み要求を示す。 WCR :Write Counter Read Write Counterからの読み出し要求を示
す。 WCUP:Write Counter UP Write Counterを1つ増加させる。 RCUP:Read Counter UP Read Counterを1つ増加させる。 RMP1:Comparator(1) Write Counter+1=Read Coun
terを示す。 CMP2:Comparator(2) Read Counter=Read Enable
Pointerを示す。
PCR: Port C Read Triple-Indicates a read request from the port C of the Port RAM. REPW: Read Enable Pointer
Indicates a write request to the Write Read Enable Pointer. REPR: Read Enable Pointer
Read Indicates a read request from the Read Enable Pointer. RCW: Indicates a write request to the Read Counter Write Read Counter. RCR: Read Counter Read Indicates a read request from the Read Counter. WCW: Write Counter Write Indicates a write request to the Write Counter. WCR: Indicates a read request from the Write Counter Read Write Counter. WCUP: Write Counter UP Write Counter is incremented by one. RCUP: Read Counter UP Increases the Read Counter by one. RMP1: Comparator (1) Write Counter + 1 = Read Coun
indicates ter. CMP2: Comparator (2) Read Counter = Read Enable
Indicates Pointer.

【0022】図1のTriple−Port RAM1
は3ポートからアクセス可能なRAMであり、この実現
方法はいろいろあるが、図9にその一例を示す。図9に
ついては後述する。このTriple−Port RA
M1は非同期に3つのポートよりアクセス可能である。
Write Counter(WCと略称する)3は、
FIFO入力のデータを格納するアドレス値を生成し、
Data Bus(N−1)のデータを1ワード書き込
むたびに1が加算される。即ちWCUP信号がアサート
されているときクロックの立ち上がりで1つ加算され
る。そしてWC3の値は、CPU Busより書き込み
読みだしが可能である。RAF Controller
2はCPUAddressおよびCPW,CPR信号よ
りWCWおよびWCR信号を作り、これによりCPU1
21からWC3の書き込み、読みだしを行う。Read
Counter(RCと略称する)4は、FIFO出
力のデータを読み出すアドレス値を生成し、Data
Bus(N)にデータを1ワード読み出すたびに1が加
算される。即ちRCUP信号がアサートされているとき
クロックの立ち上がりで1つ加算される。そしてRC4
の値は、CPU Busより書き込み読みだしが可能で
ある。RAF Controller2はCPU Ad
dressおよびCPW,CPR信号よりRCWおよび
RCR信号を作り、これによりCPU121からRC4
の書き込み、読みだしを行う。
Triple-Port RAM 1 of FIG.
Is a RAM that can be accessed from three ports, and there are various ways to realize this, and an example is shown in FIG. FIG. 9 will be described later. This Triple-Port RA
M1 can be asynchronously accessed from three ports.
The Write Counter (abbreviated as WC) 3 is
Generate an address value to store the FIFO input data,
1 is added every time one word of data of the data bus (N-1) is written. That is, one is added at the rising edge of the clock when the WCUP signal is asserted. The value of WC3 can be written and read by the CPU Bus. RAF Controller
2 generates WCW and WCR signals from CPUAddress, CPW, and CPR signals, and thereby CPU1
Writing and reading of WC3 from 21. Read
The Counter (abbreviated as RC) 4 generates an address value for reading the data of the FIFO output, and
1 is added every time one word of data is read to Bus (N). That is, one is added at the rising edge of the clock when the RCUP signal is asserted. And RC4
The value of can be read and written by the CPU Bus. RAF Controller2 is CPU Ad
RCW and RCR signals are created from the address, CPW, and CPR signals, so that the CPU 121 to RC4
Write and read.

【0023】図1のRead Enable Poin
ter(REPと略称する)5は、FIFO出力ポート
からのデータの読み出し可能なアドレスの限界を示す。
すなわち、図4の処理済みFIFOの一番処理用FIF
O寄りのアドレスを示す。このREP5に格納されるア
ドレス値は、CPU Busより書き込み、読みだしが
可能である。即ちRAF Controller2はC
PU AddressおよびCPW,CPR信号よりR
EPWおよびREPR信号を作り、これによりCPU1
21からREP5にデータの書き込み、またはデータの
読みだしを行う。このようにREP5に所望のアドレス
値を設定することにより、処理用FIFOと処理済みF
IFOとの境界を任意に変更し、Read Count
er4の値がこのREP5の値より小さいか、又は等し
い値までを読み出し可能の範囲とすることができる。C
omparator(1)6は、Write Coun
ter+1の値とRead Counterの値を比較
し、一致するとCMP1信号をアサートする。この信号
はすなわち、処理済みFIFOおよび処理用FIFOが
満杯であることをしめす。Comparator(2)
7は、Read Counterの値とReadEna
ble Counterの値を比較し、一致するとCM
P2信号をアサートする。この信号はすなわち処理済み
FIFOが空になったことを示す。
Read Enable Point of FIG.
ter (abbreviated as REP) 5 indicates the limit of addresses from which data can be read from the FIFO output port.
That is, the most processing FIFO of the processed FIFO of FIG.
Indicates an address closer to O. The address value stored in this REP5 can be written and read by the CPU Bus. That is, RAF Controller2 is C
R from PU Address, CPW, and CPR signals
Create EPW and REPR signals, which allows CPU1
From 21 to REP5, data writing or data reading is performed. By setting the desired address value in REP5 in this way, the processing FIFO and the processed F
Change the boundary with the IFO arbitrarily and read the Count
The range in which the value of er4 is smaller than or equal to the value of REP5 can be set as the readable range. C
Omparator (1) 6 is Write Count
The value of ter + 1 is compared with the value of Read Counter, and if they match, the CMP1 signal is asserted. This signal thus indicates that the processed FIFO and the processing FIFO are full. Comparator (2)
7 is the value of Read Counter and ReadEna
Compare the values of ble Counter and if they match, CM
Assert the P2 signal. This signal thus indicates that the processed FIFO has been emptied.

【0024】図1のData Transceiver
8は、CPU Data Busとのインターフェース
である。RAF Controller2は、RAFを
実現するためのステートマシンであり、表1にその状態
遷移表を示す。
Data Transceiver of FIG.
Reference numeral 8 is an interface with the CPU Data Bus. The RAF Controller 2 is a state machine for realizing RAF, and Table 1 shows its state transition table.

【0025】[0025]

【表1】 [Table 1]

【0026】RAF Controller2はDW信
号がアサートされると、PAWをアサートしData
Bus(N−1)上のデータをTriple−Port
RAM1に書き込み、WCUPをアサートしWC3に
1を加算する。DR信号がアサートされると、PCRを
アサートしTriple−Port RAM1のデータ
をData Bus(N)上に読み出し、RCUPをア
サートしRC4に1を加算する。RAF Contro
ller2はCPW、CPR、CPU Address
Busをデコードし、PBW、PBRをアサートしC
PU121からTriple−Port RAM1への
書き込み、読み出しを行う。またRAFControl
ler2はCPW、CPR、CPU Address
Busをデコードし、WCW、WCR、RCW、RC
R、REPW、REPRをアサートしWC3、RC4、
REP5への書き込み、読み出しを行う。表1における
信号CWとCRは次の論理積信号である。CW=CPW
&RAFSEL、CR=CPR&RAFSEL、ここで
RAFSELはCPU Address Busをデコ
ードして、RAFのアドレス領域のアクセスであること
を示す信号である。また/は信号反転記号を意味し、T
は眞、Fは偽、&は論理積記号、+は論理和信号を意味
する。また信号がTのとき、この信号がアサートされて
いるといい、信号がFのとき、この信号がネゲートされ
ているという。RAF Controller2は表1
のState、Conditions及びNEXT S
TATEの各信号状態に対応して、出力信号であるPA
W、PBW、PBR、PCR、WCUP及びRCUPの
T(眞)又はF(偽)の状態を決定する。またFULL
信号はCMP1信号が眞のときに眞であり、EMP信号
はCMP2信号が眞のときに眞となる。なお、特許請求
の範囲等に記載の第1のポートはPortAに、第2の
ポートはPortCに、第3のポートはPortBにそ
れぞれ該当する。
When the DW signal is asserted, the RAF Controller 2 asserts PAW and Data.
Data on Bus (N-1) is triple-ported
Write to RAM1, assert WCUP and add 1 to WC3. When the DR signal is asserted, PCR is asserted, the data in the Triple-Port RAM1 is read onto the Data Bus (N), RCUP is asserted, and 1 is added to RC4. RAF Contro
ller2 is CPW, CPR, CPU Address
Decode Bus, assert PBW, PBR and C
Writing and reading from the PU 121 to the Triple-Port RAM 1 are performed. See also RAFControl
ler2 is CPW, CPR, CPU Address
Decode Bus, WCW, WCR, RCW, RC
R, REPW and REPR are asserted and WC3, RC4,
Writing to and reading from REP5 are performed. The signals CW and CR in Table 1 are the following logical product signals. CW = CPW
& RAFSEL, CR = CPR & RAFSEL, where RAFSEL is a signal that decodes the CPU Address Bus and indicates access to the RAF address area. Also, / means a signal inversion symbol, and T
Is true, F is false, & is a logical product symbol, and + is a logical sum signal. Further, when the signal is T, it is said that this signal is asserted, and when the signal is F, this signal is negated. RAF Controller 2 is shown in Table 1
State, Conditions and NEXT S
PA which is an output signal corresponding to each signal state of TATE
Determine the T (true) or F (false) status of W, PBW, PBR, PCR, WCUP and RCUP. Also FULL
The signal is true when the CMP1 signal is true, and the EMP signal is true when the CMP2 signal is true. It should be noted that the first port and the second port described in the claims correspond to PortA, PortC, and PortB, respectively.

【0027】図1〜図5により本発明のデータ処理用メ
モリ装置の動作を説明する。図1のTriple−Po
rt RAM1内でデータブロックが空の状態(図4の
動作状態[1])においては、WC3は処理用FIFO
のデータInput Address、RC4とREP
5は処理済みFIFOのデータOutput Addr
essを示している。そして、処理用FIFOが空であ
ることから、これらのAddressはすべて等しい。
このとき信号CMP2およびEMPがアサート(ass
ert)されている。CPU121はWC3の値を知っ
ている。処理モジュール(N−1)のN−1 EMPが
アサートされているあいだは、処理モジュール(N−
1)から処理モジュール(N)に転送するデータブロッ
クはない。N−1 EMPがネゲートされるとIMC1
11はN−1 DRとDWをアサートし、データブロッ
クを処理モジュール(N−1)から処理モジュール
(N)に転送する(図4の動作状態[2],[3])。
IMC111は転送を始めると、CPU121にInt
erruptl信号をアサートし転送の開始を伝える。
IMC111はN−1 EMPがアサートされるまで転
送を繰り返す。N−1 EMPがアサートされると、そ
れはデータブロックの終了を意味し、IMC111は転
送を終了する。
The operation of the data processing memory device of the present invention will be described with reference to FIGS. Triple-Po of FIG.
When the data block is empty in the rt RAM1 (operation state [1] in FIG. 4), the WC3 is a processing FIFO.
Data of Input Address, RC4 and REP
5 is processed FIFO data Output Addr
ess is shown. And since the processing FIFO is empty, these Addresses are all equal.
At this time, the signals CMP2 and EMP are asserted (ass
ert) has been done. The CPU 121 knows the value of WC3. N-1 of the processing module (N-1) While EMP is asserted, the processing module (N-
There is no data block to transfer from 1) to processing module (N). N-1 IMC1 when EMP is negated
11 is N-1 DR and DW are asserted, and the data block is transferred from the processing module (N-1) to the processing module (N) (operation states [2] and [3] in FIG. 4).
When the IMC 111 starts the transfer, it sends Int to the CPU 121.
It asserts the error signal and signals the start of transfer.
IMC111 is N-1 The transfer is repeated until EMP is asserted. N-1 When EMP is asserted, it means the end of the data block and IMC 111 ends the transfer.

【0028】転送が終了すると、IMC111はInt
errupt2信号をアサートし転送の終了を伝える。
CPU121はInterrupt2信号を受け取る
と、第3のポートよりTriple−Port RAM
1をAccessし、データブロックを処理する。CP
U121は転送する前のWC3のアドレスを知っている
ため、データブロックの先頭アドレスを知っている。C
PU121はInterrupt1信号によりデータブ
ロックの処理を開始し、転送と並行してデータブロック
を処理することもできる。これは、CPU121がデー
タブロックの先頭部から順次処理をすることができ、且
つまだ転送が完了していない部分のデータの処理をしな
い保証のある場合である。この場合処理が並列化するた
め、パフォーマンスがさらに向上する。例えば、パケッ
ト通信のデータパケットの処理などは、制御情報がパケ
ットの先頭部に集中していることが多く、このような並
列化が期待できる。CPU121がデータブロックの処
理を終了すると、CPU121はREP5にデータブロ
ックの最後尾アドレスを書き込む(図4の動作状態
[4])。するとCMP2信号がネゲートされ、RAF
Controller2はこれを検出し、EMP信号
をネゲートする。この信号により処理モジュール(N+
1)は、このデータブロックの読み出しを開始する。
When the transfer is completed, the IMC 111 sets Int
The error2 signal is asserted to signal the end of transfer.
When the CPU 121 receives the Interrupt2 signal, the CPU 121 receives the Triple-Port RAM from the third port.
1 to process the data block. CP
Since U121 knows the address of WC3 before transfer, it knows the start address of the data block. C
The PU 121 can also start processing of a data block by the Interrupt1 signal and process the data block in parallel with the transfer. This is the case where the CPU 121 can perform processing sequentially from the beginning of the data block, and there is a guarantee that the processing of the data for which the transfer has not yet been completed will not be processed. In this case, the processing is parallelized, which further improves the performance. For example, in the processing of data packets in packet communication, control information is often concentrated at the beginning of the packet, and such parallelization can be expected. When the CPU 121 finishes processing the data block, the CPU 121 writes the last address of the data block to REP5 (operation state [4] in FIG. 4). Then the CMP2 signal is negated and RAF
Controller2 detects this and negates the EMP signal. This signal causes the processing module (N +
1) starts reading this data block.

【0029】CPU121がデータブロックの処理を終
了したとき、処理済みFIFOにデータブロックが存在
している場合は、CPU121はREP5にデータブロ
ックの最後尾+1のアドレスを書き込むのを待つ。処理
済みFIFOからデータブロックがすべて読み出される
と、RAF101はEMP信号をアサートし、IMC1
11はこれを検出し、Interrupt3信号をアサ
ートする。これを受けて、CPU121はREP5にデ
ータブロックの最後尾+1のアドレスを書き込む。この
最終尾+1のアドレスは、WC3の値でもあり、CPU
121が直接REP5にこのアドレス値を書き込むので
はなく、CPU121からの指示によりRAF Con
troller2がWC3の値をREP5に書き込むよ
うにしてもよい。CPU121は、次のデータブロック
の転送開始アドレスであるWC3の値を記憶しておく。
IMC111もEMP信号のアサートを検出し、CPU
121がデータブロックの処理を完了して処理済みFI
FOにデータを移動したことがわかる。したがって、N
−1 EMPがアサートされていれば、IMC111は
上記と同様に再び次のデータブロックを処理用FIFO
に書き込む(図4の動作状態[5])。処理モジュール
(N−1)から読み込んだデータブロックを処理モジュ
ール(N)で廃棄したい場合がある。この場合、読み込
み終了後CPU121がWC3にそのデータブロックを
読み込み前のアドレスを書き込む(図4の動作状態
[6])。すると第1のポートからの新データが旧デー
タの上に書込まれ、旧データは廃棄されたことになる。
When the CPU 121 finishes the processing of the data block and the data block exists in the processed FIFO, the CPU 121 waits for writing the last +1 address of the data block to REP5. When all the data blocks have been read from the processed FIFO, the RAF 101 asserts the EMP signal and the IMC1
11 detects this and asserts the Interrupt3 signal. In response to this, the CPU 121 writes the address of the last +1 of the data block to REP5. This final +1 address is also the value of WC3, and the CPU
121 does not directly write this address value to REP5, but RAF Con is instructed by CPU 121.
The controller 2 may write the value of WC3 to REP5. The CPU 121 stores the value of WC3 which is the transfer start address of the next data block.
The IMC111 also detects the assertion of the EMP signal, and the CPU
The processed FI 121 has completed the processing of the data block.
It can be seen that the data has been moved to the FO. Therefore, N
-1 If EMP is asserted, the IMC 111 again processes the next data block in the FIFO for processing.
(Operation state [5] in FIG. 4). There is a case where the data block read from the processing module (N-1) is desired to be discarded by the processing module (N). In this case, after reading is completed, the CPU 121 writes the address before reading the data block into the WC3 (operation state [6] in FIG. 4). Then, the new data from the first port is written on the old data, and the old data is discarded.

【0030】処理モジュール(N)で新たにデータブロ
ックを作成し、処理モジュール(N+1)に送りたい場
合がある。この場合は、CPU121はまずIMC11
1に対しN−1 EMPがネゲートしても転送しないよ
うセットし、CPU121はWC3で示されるアドレス
よりデータブロックを書き込む。書き込みを終了する
と、WC3に書き込みを終了した次のアドレスの値を代
入する。次にCPU121はREP5にデータブロック
の最後尾+1のアドレスを書き込み、IMC111をも
との状態にもどす(図5の動作状態[10],[1
1])。すると新データが処理用FIFOに挿入され
る。IMC111のN−1 EMPがネゲートしても転
送しないようにする機能には、CPU121がこれをセ
ットしたのと同時にIMC111が転送を開始すること
もあり得るため、CPU121がセットしたあとセット
できたかどうかを確認できる機能が必要である。
There is a case where it is desired to newly create a data block in the processing module (N) and send it to the processing module (N + 1). In this case, the CPU 121 first sets the IMC 11
N-1 for 1 Even if the EMP negates, it is set so as not to be transferred, and the CPU 121 writes the data block from the address indicated by WC3. When the writing is completed, the value of the next address where the writing is completed is substituted into WC3. Next, the CPU 121 writes the last +1 address of the data block to REP5 and restores the IMC 111 to the original state (operation states [10] and [1 in FIG. 5].
1]). Then, the new data is inserted into the processing FIFO. N-1 of IMC111 The function to prevent transfer even if the EMP negates may be that the IMC 111 starts transfer at the same time when the CPU 121 sets it. Therefore, there is a function to confirm whether or not the CPU 121 can set after setting. is necessary.

【0031】処理モジュール(N)で処理モジュール
(N−1)から読み込んだデータブロックの後部にさら
にデータを付け加え大きなデータブロックにしたいとき
は、データブロックをRAF101に読み込んだあと、
付け加えた分WC3を増加させる。また、REP5を書
き換えるときも同様にその分増加させる。処理モジュー
ル(N)で処理モジュール(N−1)から読み込むデー
タブロックの先頭にさらにデータを付け加え大きなデー
タブロックにしたいときは、前もってWC5の値を必要
なだけ増加させておき、処理モジュール(N−1)から
データブロックを読み込む。
When it is desired to add data to the rear part of the data block read from the processing module (N-1) by the processing module (N) to make a large data block, after reading the data block into the RAF 101,
WC3 is increased by the added amount. Also, when rewriting REP5, the amount is similarly increased. When it is desired to add data to the beginning of the data block read from the processing module (N-1) by the processing module (N) to make a large data block, the value of WC5 is increased in advance in advance and the processing module (N- Read the data block from 1).

【0032】このようにハードウエアのRAFを使用す
ると、CPUが処理を要する内容は飛躍的に少なくな
る。従ってその処理時間は大幅に短縮される。このCP
Uの処理内容を図6で説明する。図6は本発明に係るR
AFを使用したCPUの処理ステップを示す流れ図であ
る。図6において、処理用FIFOにデータブロックが
書き込まれると、IMC111からのInterrup
t1又はInterrupt2により処理モジュールが
起動され、RAF2をアクセスし、データ処理を行なう
(図6のS1)。この処理が終了すると処理済みFIF
Oが空かを判別し(図6のS2)、判別結果がYESの
場合、即ち処理済FIFOにデータブロックがなけれ
ば、REP5にデータの先頭アドレスWPの値を入れて
処理を終了する(図6のS3)。S2の判別結果がNO
の場合、即ち処理済FIFOにデータブロックが残って
いるとWaitし、処理済FIFOにデータブロックが
無くなるとIMC111はInterrupt3を発生
するので再びこのプロセスが起動され、REP5にデー
タの先頭アドレスWPの値を入れて処理を終了する(図
6のS4)。
When the hardware RAF is used in this manner, the contents that the CPU needs to process are dramatically reduced. Therefore, the processing time is greatly shortened. This CP
The processing content of U will be described with reference to FIG. FIG. 6 shows R according to the present invention.
6 is a flowchart showing processing steps of a CPU using AF. In FIG. 6, when the data block is written in the processing FIFO, the Interrupt from the IMC 111 is performed.
The processing module is activated by t1 or Interrupt2, accesses RAF2, and performs data processing (S1 in FIG. 6). When this process ends, the processed FIFO
If O is empty (S2 in FIG. 6), and if the result of the determination is YES, that is, if there is no data block in the processed FIFO, the value of the start address WP of the data is entered in REP5 and the processing ends (FIG. 6 S3). The determination result of S2 is NO
In the case of, that is, when there is a data block remaining in the processed FIFO, it waits, and when there are no data blocks in the processed FIFO, the IMC111 generates Interrupt3, so this process is started again, and the value of the start address WP of the data in REP5 To end the processing (S4 in FIG. 6).

【0033】ここまでの説明では、処理済みFIFOに
1つのデータブロックしか存在することができなかっ
た。しかし一般の使用では、処理済みFIFOに複数の
データブロックをキューイング(queuing、待合
せ)できる方式が望ましい。図7は複数のデータブロッ
クがキューイングできる処理モジュール(N)の構成図
である。同図の101Pは複数のデータブロックが存在
できるRAFであり、IMC111、CPU121及び
Local Memory131は図3と同一のもので
ある。図8は図7のRAFのキュー動作状態を説明する
図である。
In the above description, only one data block can exist in the processed FIFO. However, in general use, it is desirable to use a method capable of queuing a plurality of data blocks in a processed FIFO. FIG. 7 is a block diagram of a processing module (N) capable of queuing a plurality of data blocks. Reference numeral 101P in the figure is an RAF in which a plurality of data blocks can exist, and the IMC 111, the CPU 121, and the Local Memory 131 are the same as those in FIG. FIG. 8 is a diagram illustrating a queue operation state of the RAF of FIG.

【0034】図7の動作を説明する。図7においては、
RAF101Pのデータバスの1ビットをデータブロッ
クとデータブロックの区切りを示す識別子として割当
て、N BND信号とする。このN BND信号はデー
タブロックの一番最後のワードの時に“1”その他のと
き“0”とする。IMC111はN−1 EMPがネゲ
ートされると、N−1 DRとDWをアサートし、デー
タブロックを処理モジュール(N−1)から処理モジュ
ール(N)に転送する。WC3はデータブロックの最後
のアドレスを示している。IMC111は転送を始める
と、CPU121にInterrupt1信号をアサー
トし転送の開始を伝える。IMC111はN−1 BN
Dが“1”になるまで転送を繰り返す。N−1 BND
が“1”になると、それはデータブロックの最後のワー
ドを意味し、IMC111はそのワードを書き込み、転
送を終了する。
The operation of FIG. 7 will be described. In FIG. 7,
1 bit of the data bus of the RAF 101P is assigned as an identifier indicating a delimiter between data blocks and N BND signal. This N The BND signal is "1" at the last word of the data block and "0" at other times. IMC111 is N-1 When EMP is negated, N-1 DR and DW are asserted to transfer the data block from processing module (N-1) to processing module (N). WC3 indicates the last address of the data block. When the IMC 111 starts the transfer, it asserts an Interrupt1 signal to the CPU 121 to notify the start of the transfer. IMC111 is N-1 BN
The transfer is repeated until D becomes "1". N-1 BND
Becomes "1", it means the last word of the data block, and the IMC 111 writes the word and ends the transfer.

【0035】転送が終了すると、IMC111はInt
errupt2信号をアサートし転送の終了を伝える。
CPU121はInterrupt2信号を受け取る
と、第3のポートよりTriple−Port RAM
1をAccessし、データブロックを処理する。CP
U121はデータブロック転送前のWC3の値を知って
いるため、データブロックの先頭アドレスを知ってい
る。CPU121はInterrupt1信号によりデ
ータブロックの処理を開始し、転送と並行してデータブ
ロックを処理することもできる。これは、CPU121
がデータブロックの先頭部から順次処理をすることもで
き、且つまだ転送が完了していない部分のデータの処理
をしない保証のある場合である。この場合、データ処理
が並列化するためパフォーマンスがさらに向上する。例
えば、パケット通信のデータパケットの処理などは、制
御情報がパケットの先頭部に集中していることが多く、
このような並列化が期待できる。CPU121がデータ
ブロックの処理を終了すると、CPU121はREP5
にデータブロックの最後尾+1のアドレスを書き込む。
するとCMP2信号がネゲートされ、RAF Cont
roller2はこれを検出し、EMP信号をネゲート
する。この信号により処理モジュール(N+1)はこの
データブロックの読み出しを開始する。
When the transfer is completed, the IMC 111 sets Int
The error2 signal is asserted to signal the end of transfer.
When the CPU 121 receives the Interrupt2 signal, the CPU 121 receives the Triple-Port RAM from the third port.
1 to process the data block. CP
Since U121 knows the value of WC3 before data block transfer, it knows the start address of the data block. The CPU 121 can also start the processing of the data block by the Interrupt1 signal and process the data block in parallel with the transfer. This is the CPU 121
In this case, there is a guarantee that the data can be sequentially processed from the beginning of the data block, and that the data of the portion that has not been transferred yet is not processed. In this case, since the data processing is parallelized, the performance is further improved. For example, when processing data packets in packet communication, control information is often concentrated at the beginning of the packet,
Such parallelization can be expected. When the CPU 121 finishes processing the data block, the CPU 121 sends REP5
Write the last +1 address of the data block to.
Then, the CMP2 signal is negated, and the RAF Cont
Roller2 detects this and negates the EMP signal. This signal causes the processing module (N + 1) to start reading this data block.

【0036】このように図7の処理済みFIFOには複
数のデータブロックの存在が許されるため、CPU12
1は常にREP5にデータブロックの最後尾+1のアド
レスを書き込むことができる。図8の動作状態[5]に
おいては、処理済みFIFOに丸印の2つのデータブロ
ック(1)及び(2)が次段の処理モジュールからの読
み出しを待つため存在し、さらに新規のデータブロック
(3)が前段の処理モジュール(N−1)から入力され
ている状態が示されている。図7のその他の動作は図3
と同一であり、図8の動作状態も図4及び図5と同一で
ある。
As described above, the processed FIFO shown in FIG. 7 is allowed to have a plurality of data blocks.
1 can always write the last +1 address of the data block to REP5. In the operation state [5] of FIG. 8, two data blocks (1) and (2) circled in the processed FIFO exist to wait for reading from the next processing module, and a new data block ( 3) is input from the previous processing module (N-1). Other operations in FIG. 7 are shown in FIG.
8 and the operation state of FIG. 8 is the same as that of FIGS. 4 and 5.

【0037】図9は本発明に係るTriple−Por
t RAMの構成例を示す図である。同図において、2
1はマルチプレクサ(MUXと略称する)であり、3つ
のPort A、Port B及びPort Cのアド
レスバスを、Trple−Port RAM Cont
roller27からの選択信号SELに基づき選択し
てRAM22に出力する。22はRAM、23はデータ
バスセレクタ(Data Bus Selと略称する)
であり、RAM22からのデータバスと、Port
A、Port B及びPort Cを介した3つのデー
タバスのうちの1つとの接続及びその方向決定を、外部
からの選択信号SEL及びDIRに基づき行なう。2
4,25,26はそれぞれ双方向性のLatch
(A)、Latch(B)、Latch(C)(Bi−
Dir Latch(A)、Bi−DirLatch
(B)、Bi−Dir Latch(C)と略称する)
であり、それぞれPort A、Port B、Por
t Cのデータバスからのデータ又はRAM22からの
データをラッチする。
FIG. 9 is a Triple-Por according to the present invention.
It is a figure which shows the structural example of tRAM. In the figure, 2
Reference numeral 1 denotes a multiplexer (abbreviated as MUX), which has three Port A, Port B, and Port C address buses, and a triple-port RAM Cont.
It is selected based on the selection signal SEL from the roller 27 and output to the RAM 22. 22 is a RAM; 23 is a data bus selector (abbreviated as Data Bus Sel)
And the data bus from the RAM 22 and the Port
Connection with one of the three data buses via A, Port B, and Port C and determination of its direction are performed based on external selection signals SEL and DIR. Two
4, 25 and 26 are bidirectional Latches, respectively
(A), Latch (B), Latch (C) (Bi-
Dir Latch (A), Bi-Dir Latch
(B) and Bi-Dir Latch (C) are abbreviated)
, And Port A, Port B, and Por, respectively.
Latches data from the t C data bus or data from RAM 22.

【0038】図9の27はTriple−Port R
AM Controllerであり、外部から入力する
制御信号PAW、PAR、PBW、PBR、PCW、P
CRに基づき制御出力信号SELをMUX21に、RA
M WrireをRAM22に、SEL及びDIRをD
ata Bus Sel23に、またWALE、RAL
E、WBLE、RBLE、WCLE、RCLE、AO
E、BOE、COEをそれぞれBi−Dir Latc
h A24、Latch B25、LatchC26に
供給する。このTriple−Port RAM Co
ntroller27のステートマシンを下記の表2に
示す。
Reference numeral 27 in FIG. 9 indicates Triple-Port R.
AM Controller, which is an externally input control signal PAW, PAR, PBW, PBR, PCW, P
Control output signal SEL to MUX21 based on CR, RA
M Write to RAM22, SEL and DIR to D
ATA Bus Sel23, WALE, RAL
E, WBLE, RBLE, WCLE, RCLE, AO
E, BOE, and COE are respectively Bi-Dir Latc
h A24, Latch B25, Latch C26. This Triple-Port RAM Co
The state machine of the controller 27 is shown in Table 2 below.

【0039】[0039]

【表2】 [Table 2]

【0040】表2において、“1”は眞、“0”は偽の
状態を示す。
In Table 2, "1" indicates a true state and "0" indicates a false state.

【0041】図9及び表2における省略信号名の意味は
下記の通りである。 CPR :CPU Read CPUからTriple−Port RAMおよびRA
F内のレジスタ、カウンタへの読み出し要求を示す。 CPW :CPU Write CPUからTriple−Port RAMおよびRA
F内のレジスタ、カウンタへの書き込み要求を示す。 PAW :Port A Write Triple−Port RAMのポートAへの書き込
み要求を示す。 PAR :Port A Read Triple−Port RAMのポートAからの読み
出し要求を示す。 PBW :Port B Write Triple−Port RAMのポートBへの書き込
み要求を示す。 PBR :Port B Read Triple−Port RAMのポートBからの読み
出し要求を示す。 PCW :Port C Write Triple−Port RAMのポートCへの書き込
み要求を示す。 PCR :Port C Read Triple−Port RAMのポートCからの読み
出し要求を示す。 WALE:Write data Latch Ena
ble forPort A WBLE:Write data Latch Ena
ble forPort B WCLE:Write data Latch Ena
ble forPort C RALE:Read data Latch Enab
le forPort A RBLE:Read data Latch Enab
le forPort B RCLE:Read data Latch Enab
le forPort C AOE :Output Enable for Po
rt A BOE :Output Enable for Po
rt B COE :Output Enable for Po
rt C
The meanings of the omitted signal names in FIG. 9 and Table 2 are as follows. CPR: CPU Read CPU to Triple-Port RAM and RA
The read request to the register and counter in F is shown. CPW: CPU Write CPU to Triple-Port RAM and RA
Indicates a write request to the register and counter in F. PAW: Port A Write Triple-indicates a write request to the port A of the RAM. PAR: A read request from the port A of the Port A Read Triple-Port RAM. PBW: Indicates a write request to the port B of the Port B Write Triple-Port RAM. PBR: Indicates a read request from the port B of the Port B Read Triple-Port RAM. PCW: Port C Write Triple-Indicates a write request to the port C of the RAM. PCR: Port C Read Triple-Indicates a read request from the port C of the Port RAM. WALE: Write data Latch Ena
ble for Port A WBLE: Write data Latch Ena
ble forPort B WCLE: Write data Latch Ena
ble forPort C RALE: Read data Latch Enab
le forPort A RBLE: Read data Latch Enab
le forPort B RCLE: Read data Latch Enab
le forPort C AOE: Output Enable for Po
rt A BOE: Output Enable for Po
rt B COE: Output Enable for Po
rt C

【0042】以下に本発明に係るデータ処理用メモリ装
置を実際の装置に適用した適用例を示す。 適用例1 図10は本データ処理用メモリ装置のLAN(ローカル
エリアネットワーク)間の2ポートの中継装置への適用
例を示す図である。同図においては、LAN(A)に接
続されるLAN Controller(A)及び処理
モジュール(A)と、LAN(B)に接続されるLAN
Controller(B)及び処理モジュール
(B)とを有する。また各処理モジュールはループとし
て双方向にデータの送受信を行なうため、それぞれ2つ
のRAFとIMCとを含む。
An application example in which the data processing memory device according to the present invention is applied to an actual device will be shown below. Application Example 1 FIG. 10 is a diagram showing an application example of the present data processing memory device to a two-port relay device between LANs (local area networks). In the figure, a LAN Controller (A) and a processing module (A) connected to the LAN (A), and a LAN connected to the LAN (B).
It has a Controller (B) and a processing module (B). Each processing module includes two RAFs and IMCs, because each processing module performs bidirectional data transmission / reception as a loop.

【0043】図10の動作を説明する。一般にLAN上
を流れるパケット(packet、データや制御信号を
含む2進数字の列で、列全体を1単位として伝送するも
の)には、同図の下部に示したように、データリンクレ
イヤヘッダ、ネットワークレイヤヘッダ及びデータがあ
る。またLANのデータリンクレイヤは媒体アクセス制
御(Media Access Control、MA
C)副層を有し、このMAC副層として、MACあて先
アドレス、MAC発信アドレス、制御フィールド、タイ
プフィールドなどを含む。ネットワークレイヤは、プロ
トコルバージション番号、ヘッダ長、パケット長、上位
プロトコル識別子、ホップ数、ネットワークレイヤあて
先アドレス、ネットワークレイヤ発信アドレス、ヘッダ
チェックサムなどを含む。中継器はこれらの情報をもと
にパケットをもう片方のLANに中継する。データリン
クレイヤでの中継(一般にBridgeと呼ばれる)の
場合、MACあて先アドレス、MAC発信アドレスによ
り中継先を決定する。この場合、RAF(A1)101
A1において、LAN(A)から入ってきたパケットで
中継すべきものはRAF(B1)101B1に渡され、
中継すべきないものは廃棄される。
The operation of FIG. 10 will be described. Generally, for a packet (packet, a string of binary digits including data and control signals, which is transmitted as a unit of the entire string) flowing on a LAN, as shown in the lower part of FIG. There is a network layer header and data. In addition, the data link layer of the LAN is a medium access control (MA).
C) It has a sub-layer, which includes a MAC destination address, a MAC source address, a control field, a type field and the like. The network layer includes a protocol version number, a header length, a packet length, an upper protocol identifier, a hop number, a network layer destination address, a network layer source address, a header checksum and the like. The relay relays the packet to the other LAN based on these pieces of information. In the case of relaying in the data link layer (generally called Bridge), the relay destination is determined by the MAC destination address and the MAC transmission address. In this case, RAF (A1) 101
At A1, the packet to be relayed from the LAN (A) is passed to the RAF (B1) 101B1,
Those that should not be relayed are discarded.

【0044】ネットワークレイヤでの中継(一般にRo
uterと呼ばれる)の場合は、ネットワークレイヤあ
て先アドレスより中継すべきかどうかが判断され、RA
F(A)101A1からRAF(B)101B1に渡さ
れる。また中継すべきでないものは廃棄される。チェッ
クサムの計算結果やプロトコルバージジョン番号などが
不一致の場合も廃棄される。RAF(B)101B1で
は、ネットワークレイヤあて先アドレスより適切なMA
Cあて先アドレスを決定し、そのフィールドに書き込
み、MAC発信アドレスにはこの中継器のMACアドレ
スを書き込む。また、ホップ数を1つ増やし、チェック
サム(検査合計値)を計算し直し、新しい値を代入して
LAN Controller(B)200Bに送る。
Relay at the network layer (generally Ro
In this case, it is judged from the network layer destination address whether or not to relay, and RA
It is passed from F (A) 101A1 to RAF (B) 101B1. Items that should not be relayed are discarded. If the checksum calculation result or protocol version number does not match, it is also discarded. In the RAF (B) 101B1, the MA that is more appropriate than the network layer destination address
The C destination address is determined and written in that field, and the MAC address of this relay is written in the MAC source address. Also, the number of hops is increased by one, the checksum (check sum value) is recalculated, a new value is substituted, and the result is sent to the LAN controller (B) 200B.

【0045】適用例2 図11は図10の処理モジュール(B)を省略した適用
例を示す図である。同図における処理モジュール(A)
は、図10における処理モジュール(A)と処理モジュ
ール(B)の2つの機能を兼用しており、ハードウエア
の簡易化を計ったものである。
Application Example 2 FIG. 11 is a diagram showing an application example in which the processing module (B) of FIG. 10 is omitted. Processing module (A) in FIG.
10 has two functions of the processing module (A) and the processing module (B) shown in FIG. 10, and simplifies the hardware.

【0046】適用例3 図12は本データ処理用メモリ装置をマルチポート型の
LAN間中継装置に応用した例を示す図である。同図に
おいては、処理モジュール(A)はBusインタフェー
ス(Bus I/Fと略称する)210を介してSys
tem Busに接続されている。そしてこのSyst
em Busから処理モジュール(B),(C),
(D),(E)、…の各処理モジュールを介してLAN
(B),LAN(C),LAN(D),LAN(E)、
…に接続されている。各処理モジュールでの処理は実施
例1とほぼ同じである。Bus I/F210は、各処
理モジュールからのSystem Busへのアクセス
をアービトレート(arbitrate、仲裁)する機
能を持つ。System Busを介した処理モジュー
ル間のデータブロック転送には次のような二方式のうち
の一つを採るのが一般的である。 (1)LAN(A)から入ってきたパケットを処理モジ
ュール(A)は中継すべきであると判断したとき、Sy
stem Busに転送し、(A)以外のすべての処理
モジュールがこれを自己のRAFに書き込み、そこでそ
のパケットが該当するLANに送出すべきものかどうか
を判断する。 (2)LAN(A)から入ってきたパケットを処理モジ
ュール(A)は中継すべきであるかと判断したとき、ど
の処理モジュールに中継すべきかを調べ、データブロッ
クの先頭に中継すべき処理モジュールの識別子を付加し
てデータブロックを転送する。この方式ではBus I
/F210は識別子によりシステムバスからデータブロ
ックを受信するかどうかを判断する機能が必要である。
Application Example 3 FIG. 12 is a diagram showing an example in which the data processing memory device is applied to a multi-port type inter-LAN relay device. In the figure, the processing module (A) receives Sys via a Bus interface (abbreviated as Bus I / F) 210.
It is connected to the tem Bus. And this Syst
From em Bus to processing modules (B), (C),
LAN through each processing module of (D), (E), ...
(B), LAN (C), LAN (D), LAN (E),
…It is connected to the. The processing in each processing module is almost the same as that in the first embodiment. The Bus I / F 210 has a function of arbitrating access to the System Bus from each processing module. Generally, one of the following two methods is adopted for the data block transfer between the processing modules via the System Bus. (1) When the processing module (A) determines that the packet coming from the LAN (A) should be relayed, Sy
All the processing modules other than (A) write it in their RAF, and then determine whether the packet should be sent to the corresponding LAN. (2) When the processing module (A) determines that the packet coming from the LAN (A) should be relayed, which processing module is to be relayed is checked, and the processing module to be relayed at the beginning of the data block. A data block is transferred with an identifier added. Bus I
The / F 210 needs a function of determining whether to receive a data block from the system bus based on the identifier.

【0047】適用例4 図13は本データ処理用メモリ装置をワークステーショ
ンなどの通信制御装置に適用した例を示す図である。同
図においてはBus I/F210とCPUBusとの
整合性を取っている。このCPU Busを介してワー
クステーション等のCPU220、Memory22
1、Disk Controller222、DMA2
23、等に結合される。 その他の適用例 上記の実施例ではLAN接続の場合のみを示したが、そ
の他の公衆通信網にも同様に適用できる。また、ATM
(非同期転送モード)のセルにも適用することができ
る。
Application Example 4 FIG. 13 is a diagram showing an example in which the data processing memory device is applied to a communication control device such as a workstation. In the figure, the Bus I / F 210 and the CPU Bus are matched. Through this CPU Bus, a CPU 220 such as a workstation, a Memory 22
1, Disk Controller 222, DMA2
23, etc. Other Application Examples In the above-mentioned embodiments, only the case of LAN connection is shown, but it can be similarly applied to other public communication networks. Also, ATM
It can also be applied to cells in (asynchronous transfer mode).

【0048】[0048]

【発明の効果】以上のように本発明によれば、第1、第
2及び第3のポートを有するRAMを設け、第1のポー
トのデータバスのデータを書き込みカウンタの値に従い
前記RAMに書き込み、第2のポートのデータバスに読
み出しカウンタの値に従い前記RAMからデータを読み
出し、第3のポートは外部からの任意アドレスにより前
記RAMにデータを書き込み又は読み出しができるよう
にしたので、データ処理装置におけるCPUの処理所要
時間が図6のように短縮され、その結果例えばLAN等
の中継装置に適用した場合のデータ処理能力が数倍〜十
数倍向上する効果がある。
As described above, according to the present invention, the RAM having the first, second and third ports is provided, and the data of the data bus of the first port is written to the RAM according to the value of the write counter. , The data is read from the RAM to the data bus of the second port according to the value of the read counter, and the third port is capable of writing or reading data to or from the RAM by an arbitrary external address. The processing time required by the CPU in FIG. 6 is shortened as shown in FIG. 6, and as a result, the data processing capacity when applied to a relay device such as a LAN is improved several times to several tens of times.

【0049】また本発明によれば、前記書き込みカウン
タに外部から任意のアドレスを設定できるようにしたの
で、前記RAM内のFIFOデータの一部を廃棄した
り、また前記FIFOデータの途中に新規データを挿入
したりしてFIFOデータの変更を可能とする効果があ
る。
Further, according to the present invention, since it is possible to set an arbitrary address to the write counter from the outside, a part of the FIFO data in the RAM is discarded or a new data is inserted in the middle of the FIFO data. Has the effect of enabling the modification of the FIFO data.

【0050】また本発明によれば、外部から任意のアド
レス値又は書き込みカウンタの出力アドレス値をポイン
タに設定し、該ポインタの値により処理中のFIFOデ
ータと処理済みのFIFOデータとを区別して処理する
ようにしたので、CPUが処理中のデータを保護できる
効果がある。
Further, according to the present invention, an arbitrary address value or an output address value of the write counter is externally set to the pointer, and the value of the pointer is used to distinguish the processed FIFO data from the processed FIFO data. Since this is done, there is an effect that the CPU can protect the data being processed.

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

【図1】本発明に係るRandom Accessib
le FIFOの構成を示す図である。
FIG. 1 is a Random Access according to the present invention.
It is a figure which shows the structure of le FIFO.

【図2】本発明に係る処理モジュールの接続例を示す図
である。
FIG. 2 is a diagram showing an example of connection of processing modules according to the present invention.

【図3】図2の処理モジュール(N)の詳細図である。FIG. 3 is a detailed view of the processing module (N) of FIG.

【図4】図1のRAFの動作状態[1]〜[6]を説明
する図である。
FIG. 4 is a diagram illustrating operating states [1] to [6] of the RAF of FIG.

【図5】図1のRAFの動作状態[7]〜[12]を説
明する図である。
5 is a diagram illustrating operating states [7] to [12] of the RAF of FIG.

【図6】本発明に係るRAFを使用したCPUの処理ス
テップを示す流れ図である。
FIG. 6 is a flowchart showing the processing steps of a CPU using RAF according to the present invention.

【図7】複数のデータブロックがキューイングできる処
理モジュール(N)の構成図である。
FIG. 7 is a configuration diagram of a processing module (N) capable of queuing a plurality of data blocks.

【図8】図7のRAFのキュー動作状態を説明する図で
ある。
8 is a diagram illustrating a queue operation state of the RAF of FIG.

【図9】本発明に係るTriple−Port RAM
の構成例を示す図である。
FIG. 9 is a Triple-Port RAM according to the present invention.
It is a figure which shows the structural example.

【図10】本データ処理用メモリ装置のLAN間の2ポ
ートの中継装置への適用例を示す図である。
FIG. 10 is a diagram showing an example of application of the data processing memory device to a relay device having two ports between LANs.

【図11】図10の処理モジュール(B)を省略した適
用例を示す図である。
11 is a diagram showing an application example in which the processing module (B) of FIG. 10 is omitted.

【図12】本データ処理用メモリ装置をマルチポート型
のLAN間中継装置に応用した例を示す図である。
FIG. 12 is a diagram showing an example in which the present data processing memory device is applied to a multi-port type inter-LAN relay device.

【図13】本データ処理用メモリ装置をワークステーシ
ョンなどの通信制御装置に適用した例を示す図である。
FIG. 13 is a diagram showing an example in which the data processing memory device is applied to a communication control device such as a workstation.

【図14】従来のデータ並列処理の一形態を示す図であ
る。
FIG. 14 is a diagram showing one form of conventional data parallel processing.

【図15】図14を具現化した図である。FIG. 15 is a diagram embodying FIG.

【図16】図15のデータ処理ステップを説明する図で
ある。
16 is a diagram illustrating the data processing step of FIG.

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

1 Triple−Port RAM 2 RAF Controller 3 Write Counter(WC) 4 Read Counter(RC) 5 Read Enable Pointer(RE
P) 6 Comparator(1) 7 Comparator(2) 8 Data Transceiver 21 MUX 22 RAM 23 Data Bus Sel 24〜26 Bi−Dir Latch(A)〜Bi−
Dir Latch(C) 27 Triple−Port RAM Contro
ller 100〜102 RAF(N−1)〜RAF(N+1) 110〜112 IMC(N−1)〜IMC(N+1) 120〜122 CPU(N−1)〜CPU(N+1) 130〜132 Local Memory(N−1)
〜Local Memory(N+1)
1 Triple-Port RAM 2 RAF Controller 3 Write Counter (WC) 4 Read Counter (RC) 5 Read Enable Pointer (RE)
P) 6 Comparator (1) 7 Comparator (2) 8 Data Transceiver 21 MUX 22 RAM 23 Data Bus Sel 24-26 Bi-Dir Latch (A) -Bi-
Dir Latch (C) 27 Triple-Port RAM Contro
ller 100-102 RAF (N-1) -RAF (N + 1) 110-112 IMC (N-1) -IMC (N + 1) 120-122 CPU (N-1) -CPU (N + 1) 130-132 Local Memory (N) -1)
~ Local Memory (N + 1)

───────────────────────────────────────────────────── フロントページの続き (51)Int.Cl.5 識別記号 庁内整理番号 FI 技術表示箇所 G11C 11/401 ─────────────────────────────────────────────────── ─── Continuation of the front page (51) Int.Cl. 5 Identification code Office reference number FI technical display location G11C 11/401

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】 データの書き込みに使用する第1のポー
トと、データの読み出しに使用する第2のポートと、デ
ータの書き込み又は読み出しに使用する第3のポートと
を有するランダムアクセスメモリと、 前記第1のポートのアドレスバスにアドレスを出力する
書き込みカウンタと、 前記第1のポートのアドレスバスのアドレス値に従い、
前記第1のポートのデータバスのデータを前記ランダム
アクセスメモリに書き込む書き込み制御手段と、 前記第2のポートのアドレスバスにアドレスを出力する
読み出しカウンタと、 前記第2のポートのアドレスバスのアドレス値に従い、
前記ランダムアクセスメモリから前記第2のポートのデ
ータバスにデータを読み出す読み出し制御手段と、 前記第3のポートのアドレスバスのアドレス値に従い前
記ランダムアクセスメモリに該ポートのデータバスのデ
ータを書き込むか、または前記アドレスバスのアドレス
値に従い前記ランダムアクセスメモリから該ポートのデ
ータバスにデータを読み出す書き込み及び読み出し制御
手段とを備えたことを特徴とするデータ処理用メモリ装
置。
1. A random access memory having a first port used for writing data, a second port used for reading data, and a third port used for writing or reading data, A write counter for outputting an address to the address bus of the first port, and an address value of the address bus of the first port,
Write control means for writing data on the data bus of the first port to the random access memory, a read counter for outputting an address to the address bus of the second port, and an address value of the address bus of the second port in accordance with,
Read control means for reading data from the random access memory to the data bus of the second port, and writing data of the data bus of the port to the random access memory according to an address value of the address bus of the third port, Alternatively, the data processing memory device is provided with a write / read control unit for reading data from the random access memory to the data bus of the port according to an address value of the address bus.
【請求項2】 前記書き込みカウンタに外部から任意の
アドレス値を設定する書き込みアドレス設定手段を付加
した請求項1記載のデータ処理用メモリ装置。
2. The data processing memory device according to claim 1, further comprising write address setting means for externally setting an arbitrary address value to said write counter.
【請求項3】 外部からの制御指令に基づき、前記ラン
ダムアクセスメモリの任意のアドレス値が外部から設定
されるか、または前記書き込みカウンタの出力するアド
レス値が設定されるポインタと、 前記ポインタの出力するアドレス値と前記読み出しカウ
ンタの出力するアドレス値とを比較し、両アドレス値が
一致したときに一致検出信号を出力するアドレス値一致
検出手段とを付加した請求項1または請求項2記載のデ
ータ処理用メモリ装置。
3. A pointer to which an arbitrary address value of the random access memory is set from the outside or an address value output from the write counter is set based on a control command from the outside, and an output of the pointer. 3. The data according to claim 1, further comprising: an address value coincidence detecting means for comparing the address value to be output with the address value output from the read counter and outputting a coincidence detection signal when the both address values coincide. Processing memory device.
JP4165116A 1992-06-23 1992-06-23 Data processing memory device Pending JPH064491A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4165116A JPH064491A (en) 1992-06-23 1992-06-23 Data processing memory device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4165116A JPH064491A (en) 1992-06-23 1992-06-23 Data processing memory device

Publications (1)

Publication Number Publication Date
JPH064491A true JPH064491A (en) 1994-01-14

Family

ID=15806218

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4165116A Pending JPH064491A (en) 1992-06-23 1992-06-23 Data processing memory device

Country Status (1)

Country Link
JP (1) JPH064491A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012522986A (en) * 2009-04-03 2012-09-27 アナログ デバイシス, インコーポレイテッド Digital output sensor FIFO buffer with single port memory

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012522986A (en) * 2009-04-03 2012-09-27 アナログ デバイシス, インコーポレイテッド Digital output sensor FIFO buffer with single port memory

Similar Documents

Publication Publication Date Title
US7260104B2 (en) Deferred queuing in a buffered switch
US6757768B1 (en) Apparatus and technique for maintaining order among requests issued over an external bus of an intermediate network node
US4494190A (en) FIFO buffer to cache memory
US6078970A (en) System for determining adapter interrupt status where interrupt is sent to host after operating status stored in register is shadowed to host memory
US5392412A (en) Data communication controller for use with a single-port data packet buffer
US6615282B1 (en) Adaptive messaging
US6970921B1 (en) Network interface supporting virtual paths for quality of service
JPH09325947A (en) Method and device for atomically transferring command and data information to device
US20060143341A1 (en) Supercharge message exchanger
EP0725351A2 (en) Expedited message transfer in a multi-nodal data processing system
EP1188119A1 (en) A method and apparatus for automatically transferring i/o blocks between a host system and a host adapter
JPH09160870A (en) Method and device for reporting of data transfer between hardware and software
US6366968B1 (en) Physical write packets processing when posted write error queue is full, with posted write error queue storing physical write requests when posted write packet fails
JPH07202946A (en) System and method to manage communication buffer
JP3127523B2 (en) Communication control device and data transmission method
US6263393B1 (en) Bus switch for realizing bus transactions across two or more buses
JP3641834B2 (en) Parallel processor system and packet discard method suitable therefor
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JP3057591B2 (en) Multiprocessor system
JPH064491A (en) Data processing memory device
JP2002366427A (en) Inter-processor communication system, and inter- processor communication method to be used for the system
EP1358565B1 (en) Method and apparatus for preventing starvation in a multi-node architecture
US20050027906A1 (en) System and method for adaptive buffer allocation in a memory device interface
US5931932A (en) Dynamic retry mechanism to prevent corrupted data based on posted transactions on the PCI bus
JP2853652B2 (en) Packet transmitting method and apparatus in inter-processor communication