JPH07312611A - Communication apparatus involving swapping - Google Patents

Communication apparatus involving swapping

Info

Publication number
JPH07312611A
JPH07312611A JP7057821A JP5782195A JPH07312611A JP H07312611 A JPH07312611 A JP H07312611A JP 7057821 A JP7057821 A JP 7057821A JP 5782195 A JP5782195 A JP 5782195A JP H07312611 A JPH07312611 A JP H07312611A
Authority
JP
Japan
Prior art keywords
memory
pointer
input value
bit
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP7057821A
Other languages
Japanese (ja)
Other versions
JP3178645B2 (en
Inventor
J Grace Rene
レネ・ジェイ・グレイス
Kaamaretsuku Francois
フランコイス・カーマレック
Rarumando Eric
エリック・ラルマンド
Hamm Tan
タン・ハム
Rudolf Shindolar Hans
ハンス・ルドルフ・シンドラー
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JPH07312611A publication Critical patent/JPH07312611A/en
Application granted granted Critical
Publication of JP3178645B2 publication Critical patent/JP3178645B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S11/00Systems for determining distance or velocity not using reflection or reradiation
    • G01S11/12Systems for determining distance or velocity not using reflection or reradiation using electromagnetic waves other than radio waves
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C3/00Measuring distances in line of sight; Optical rangefinders
    • G01C3/02Details
    • G01C3/06Use of electric means to obtain final indication
    • G01C3/08Use of electric radiation detectors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Memory System (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Studio Devices (AREA)

Abstract

PURPOSE: To provide a device for swapping an input value to an output value in an extremely short time less than 2 microseconds by using an inexpensive memory. CONSTITUTION: A swap function for swapping an input value to an output value is executed by a pseudo associative storage device for providing an output value corresponding to an (n) bit input value equivalent to an integer E (E=2<p> -1). The pseudo associative storage device is composed of plural cascade type random access memories 20 having at least 2<d> (d>p) address capacities. A control logic circuit for setting a (p) bit pointer to each random access memory 20 is provided. Each pointer is made different from another pointer, and assigned to the input value at random.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は入力値が出力値にスワッ
プされることを可能にする通信装置に関し、特に、入力
値が通信システムにより受信されたデータ・ストリーム
のヘッダであり、出力値がその通信システムにより送信
される対応するデータ・ストリームのヘッダである、そ
うした通信システムにおいて使用される装置に関する。
またこの装置は、任意のテーブル・ルックアップ機能を
実現するためにも使用される。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a communication device that allows an input value to be swapped with an output value, in particular the input value is the header of a data stream received by the communication system and the output value is An apparatus used in such a communication system, which is the header of the corresponding data stream transmitted by that communication system.
The device is also used to implement any table lookup function.

【0002】[0002]

【従来の技術】ほとんどの通信システムはスイッチ及び
リンクを含み、入力リンクにおいて受信されたデータ・
ストリームをアドレス指定される出力リンクに移送する
ための機能を有する。
BACKGROUND OF THE INVENTION Most communication systems include switches and links that allow data received on an input link to
It has the function of transporting the stream to the addressed output link.

【0003】今日、将来の通信網における高速伝送及び
交換に備え、いわゆる非同期転送モード(ATM)を使
用する傾向がある。このモードでは、全てのデータがセ
ルとして移送され、各セルは53バイト長を有する。最
初の5バイトは、12ビットVP(仮想パス)フィール
ド及び16ビットVC(仮想チャネル)フィールドを含
むヘッダであり、セルの宛先を示すアドレスを含む。
Today, there is a tendency to use the so-called asynchronous transfer mode (ATM) in preparation for high speed transmission and switching in future communication networks. In this mode all data is transported as cells, each cell having a length of 53 bytes. The first 5 bytes are a header including a 12-bit VP (virtual path) field and a 16-bit VC (virtual channel) field, and include an address indicating the destination of the cell.

【0004】交換ノードの入力において、VP/VCフ
ィールドが新たなフィールドにより置換(スワップ)さ
れ、セルがスイッチを介して経路指定されるように、経
路指定ヘッダが追加される。経路指定ヘッダが次に除去
され、セルが適切な出力リンクに送信される。
At the input of the switching node, the VP / VC field is replaced (swapped) by the new field and a routing header is added so that the cell is routed through the switch. The routing header is then stripped and the cell is sent to the appropriate output link.

【0005】VP/VCフィールドの高速スワッピング
は困難な課題である。なぜなら、228=268.106
以上のVP/VCの組合わせが可能であり、155ギガ
ビット/秒の伝送レートで、セルが2.5マイクロ秒以
下で処理されなければならないからである。
Fast swapping of VP / VC fields is a difficult task. Because 2 28 = 268.10 6
This is because the above VP / VC combination is possible, and cells must be processed in 2.5 microseconds or less at a transmission rate of 155 gigabits / second.

【0006】従って、全てのこれらの組合わせを処理す
ることは現実的ではない。実際には、移送ノードは、一
方が物理リンクに、他方がスイッチに接続される通信ア
ダプタから構成される。各アダプタは1物理リンクにつ
き、約2000のVP/VCフィールド(エントリ)を
認識できなければならない。従って、それが4つの物理
リンクに接続される場合には、約8000のエントリを
認識できなければならない。
Therefore, it is not practical to handle all these combinations. In practice, a transport node consists of a communication adapter, one connected to a physical link and the other to a switch. Each adapter must be able to recognize approximately 2000 VP / VC fields (entries) per physical link. Therefore, if it is connected to 4 physical links, it should be able to recognize about 8000 entries.

【0007】この機能を達成するために、通信アダプタ
はテーブルを含み、このテーブルがアダプタにより確立
される接続の関数として、ネットワーク・マネジャによ
り更新される。
To accomplish this function, the communication adapter includes a table that is updated by the network manager as a function of the connections established by the adapter.

【0008】結果的に、VP/VCスワッピング機能を
実行するために、セル間隔内で探索され更新される80
00エントリを有するテーブルが、各通信アダプタにお
いて実現される必要がある。
As a result, 80 is searched and updated within the cell interval to perform the VP / VC swapping function.
A table with 00 entries needs to be implemented in each communication adapter.

【0009】こうしたテーブルを実現する1つの従来方
法では、連想記憶装置(content addressable memory)
を提供する。別の方法では、2進探索アルゴリズムまた
はハッシング法を実現する。
One conventional method of implementing such a table is to use a content addressable memory.
I will provide a. Another method implements a binary search algorithm or hashing method.

【0010】これらの技法の第1の欠点は、探索オペレ
ーションがセル処理時間の大部分を占めることである。
第2の欠点は、テーブルの新たなエントリが正確な位置
において生成されなければならず、従って、テーブルの
更新が容易でないという事実に起因する。
The first drawback of these techniques is that the search operation takes up most of the cell processing time.
The second drawback is due to the fact that a new entry in the table has to be created in the correct location and therefore the table is not easy to update.

【0011】探索アルゴリズムの例がIEEE会報Vo
l.135 No.1(1988年1月)の記事に述べられてい
る。
An example of the search algorithm is the IEEE bulletin Vo.
l. 135 No. 1 (January 1988).

【0012】[0012]

【発明が解決しようとする課題】本発明の目的は、低価
格のメモリを使用することにより、2マイクロ秒以下の
非常に短い時間内に、入力値を出力値にスワップするス
ワッピング機能を可能にする装置を提供することであ
る。
SUMMARY OF THE INVENTION It is an object of the present invention to enable a swapping function that swaps an input value to an output value within a very short time of 2 microseconds or less by using a low-cost memory. It is to provide a device to do.

【0013】本発明の別の目的は、スワップされる入力
値を変更するように、メモリが容易に更新可能なこうし
た装置を提供することである。
Another object of the present invention is to provide such a device in which the memory can be easily updated to change the input values that are swapped.

【0014】[0014]

【課題を解決するための手段】本発明によれば、スワッ
プ機能がカスケード式ルックアップ・テーブルにより実
行され、これらのテーブルは、その幅が等価の連想記憶
装置で許容されるエントリ数に依存するパスにより結合
される。探索パスが全ての可能なエントリに対して明瞭
にマークされるように、ポインタがテーブル内にセット
され、更新されなければならない。
According to the invention, the swap function is performed by cascading look-up tables, the width of which depends on the number of entries allowed in an equivalent associative memory. Combined by path. The pointer must be set and updated in the table so that the search path is clearly marked for all possible entries.

【0015】スワップ機能は従って、nビット入力値に
相当する整数E(E=2p−1)の対応する出力値を提
供する擬似連想記憶装置により実行される。
The swap function is thus performed by a pseudo-associative memory device which provides a corresponding output value of the integer E (E = 2 p -1) corresponding to an n-bit input value.

【0016】擬似連想記憶装置は、少なくとも2dのア
ドレス容量を有する複数のカスケード式ランダム・アド
レス・メモリから構成される。ここで、dはpよりも大
である。
The pseudo-associative memory device comprises a plurality of cascaded random address memories having an address capacity of at least 2 d . Here, d is larger than p.

【0017】各ランダム・アクセス・メモリにpビット
・ポインタをセットするための制御論理回路が提供され
る。各ポインタは他のポインタとは異なったものであ
り、入力値にランダムに割当てられる。入力値に対応す
る出力値を見い出すために、制御論理回路はランダム・
アクセス・メモリを順次アドレスして読出す。第1のメ
モリは入力値のn1ビットを含む部分によりアドレスさ
れ、続くそれぞれのメモリは入力値のniビット部分と
連結される先行メモリから読出されるポインタによりア
ドレスされる。ここで、niはn−p以下である。出力
値が最後のメモリのアドレス指定の結果として見い出さ
れる。
Control logic is provided for setting the p-bit pointer in each random access memory. Each pointer is different from the other pointers and is randomly assigned to the input value. In order to find the output value corresponding to the input value, the control logic circuit
The access memory is sequentially addressed and read. The first memory is addressed by the portion containing the n1 bits of the input value and each subsequent memory is addressed by the pointer read from the preceding memory concatenated with the ni bit portion of the input value. Here, ni is np or less. The output value is found as a result of the last memory addressing.

【0018】[0018]

【実施例】図1は通信ノードの受信側を図式的に表し、
入力値を出力値にスワップする回路が使用される。明ら
かに、こうした回路は任意の他の環境においても使用す
ることができる。図1に示されるように、入力リンクか
ら受信されるビット・ストリームを処理する受信回路2
に対して、入力リンク1−1乃至1−4が提供される。
本発明の好適なアプリケーションでは、ビット・ストリ
ームがいわゆる非同期転送モード(ATM)に従い、セ
ルに配列される。
1 is a schematic representation of the receiving side of a communication node,
A circuit is used that swaps the input value with the output value. Obviously, such a circuit could be used in any other environment. A receiving circuit 2 for processing a bit stream received from an input link, as shown in FIG.
, Input links 1-1 through 1-4 are provided.
In the preferred application of the invention, the bit stream is arranged in cells according to the so-called asynchronous transfer mode (ATM).

【0019】受信回路2の機能の1つは、スワップ回路
4に提供されるセルのヘッダを検出することである。ス
ワップ回路4は、ヘッダに含まれるVP/VCフィール
ドを新たなVP/VCフィールドに変更し、これがセル
に挿入されてノードにより送信される。
One of the functions of the receiving circuit 2 is to detect the header of the cell provided to the swap circuit 4. The swap circuit 4 changes the VP / VC field included in the header into a new VP / VC field, which is inserted into the cell and transmitted by the node.

【0020】セルは回路6を通じて処理され経路指定さ
れ、新たなヘッダを提供されて、回路8によりノード出
力リンク10−1乃至10−3上に送信される。新たな
ヘッダは回路4により、バス5を通じて提供される。ノ
ードはノード・マネジャ12を含み、この1つの機能は
スワップ回路4を制御することである。
The cells are processed and routed through circuit 6, provided with a new header, and transmitted by circuit 8 onto node output links 10-1 through 10-3. The new header is provided by the circuit 4 via the bus 5. The node includes a node manager 12, one function of which is to control the swap circuit 4.

【0021】スワップ回路4は、セル処理時間内にVP
/VC入力値に対応するVP/VC出力値を提供するX
エントリ・テーブルとして機能する擬似連想記憶装置に
より構成される。
The swap circuit 4 has a VP function within the cell processing time.
/ X which provides the VP / VC output value corresponding to the / VC input value
It is composed of a pseudo-associative storage device that functions as an entry table.

【0022】本発明の好適な実施例では、受信回路2か
らバス14を介して提供される入力値は、ATMセルの
28ビットのVP/VCフィールド及び追加の5ビット
を含み、後者は入力リンク物理アドレス及びセルの処理
方法を示す制御情報などの追加の情報を含む。
In the preferred embodiment of the invention, the input value provided by the receiver circuit 2 via the bus 14 comprises a 28-bit VP / VC field of the ATM cell and an additional 5 bits, the latter of which is the input link. It includes additional information such as physical address and control information indicating how to handle the cell.

【0023】スワップ回路4が図2に示される。これは
メモリ構成20及び擬似連想記憶装置として機能する制
御論理22からなる。
The swap circuit 4 is shown in FIG. It consists of a memory structure 20 and control logic 22 which functions as a pseudo-associative memory device.

【0024】上述のように、入力値が33ビットを含
み、213の入力テーブルが要求されるものと仮定する
と、メモリ構成は3つのランダム・アクセス・メモリ2
4−A、24−B及び24−Cを含む。
As mentioned above, assuming that the input value contains 33 bits and 2 13 input tables are required, the memory organization is 3 random access memories 2.
4-A, 24-B and 24-C.

【0025】今日容易に入手可能な最大のランダム・ア
クセス・メモリ(RAM)は16メガビット・ダイナミ
ックRAM(DRAM)である。様々な構成が可能であ
る。こうしたDRAMデバイスのほとんどの供給メーカ
は、本発明に好適な1メガビット×16構成のデバイス
を提供している。全ての最近のDRAMはCAS(列ア
ドレス選択)ビフォアRAS(行アドレス選択)機構を
実現し、デバイスの直接的なリフレッシュを可能にす
る。DRAMのリフレッシュ動作はタイマだけを必要と
し、1受信セル当たり1回のメモリ問い合わせが存在す
るだけなので、2つのセル間において、通常動作と干渉
することなく、メモリのリフレッシュ動作を実行する十
分な時間が存在する。155メガビット/秒において、
2.7マイクロ秒毎にセルは受信される。
The largest readily available random access memory (RAM) today is 16 megabit dynamic RAM (DRAM). Various configurations are possible. Most vendors of such DRAM devices provide 1 Mbit × 16 configured devices suitable for the present invention. All modern DRAMs implement a CAS (column address select) before RAS (row address select) mechanism, allowing direct device refresh. Since the DRAM refresh operation requires only a timer and there is only one memory inquiry per received cell, there is sufficient time between two cells to perform the memory refresh operation without interfering with normal operation. Exists. At 155 megabits / second,
Cells are received every 2.7 microseconds.

【0026】後述のように、スワップ機能を実行するた
めに、4回のRAMアクセス(各々が150ナノ秒)が
必要となり、セル処理時間の10%以下がメモリに問い
合わせるために必要となる。
As will be described later, four RAM accesses (each 150 nanoseconds) are required to execute the swap function, and 10% or less of the cell processing time is required to inquire the memory.

【0027】ダイナミック・ランダム・アクセス・メモ
リ24−A、24−B及び24−Cはパスを通じて結合
され、その幅は等価の連想記憶装置において許容される
エントリの深さまたは数に対応する。従って、33ビッ
トの探索が必要であると仮定すると、E=213−1=8
191の可能な入力値が存在し、制御論理22はメモリ
制御ラインすなわち読出し/書込み(R/W)28、R
AS/CAS30、32及び34を活動化することによ
り、順次メモリ24−A、24−B及び24−Cをアド
レスする。R/Wライン28は3つのメモリに共通であ
り、ライン30、32及び34として表される各メモリ
に対応する3本のRAS/CASラインが存在する。
The dynamic random access memories 24-A, 24-B and 24-C are coupled through paths, the width of which corresponds to the depth or number of entries allowed in an equivalent associative memory. Therefore, assuming that a 33-bit search is required, E = 2 13 −1 = 8
There are 191 possible input values and the control logic 22 has memory control lines or read / write (R / W) 28, R
Addressing memories 24-A, 24-B and 24-C sequentially by activating AS / CAS 30, 32 and 34. The R / W line 28 is common to the three memories, and there are three RAS / CAS lines corresponding to each memory represented as lines 30, 32 and 34.

【0028】最初に、メモリ24−Aが制御論理22を
介してアドレスされ、制御論理はアドレス・バス26上
に入力値のn1ビットを含む第1の部分を提供する。メ
モリ24−Aから読出される13ビットのデータは、デ
ータ・バス36を介して制御論理22に提供される。制
御論理22は次に第2の部分(第1の部分とは異な
る)、すなわちni=n2ビットの入力値に、24−A
からの13ビットを付加したアドレスにより、メモリ2
4−Bをアドレスする。メモリ24−Bから読出される
13ビットのデータが、データ・バス36を介して制御
論理22に提供され、制御論理22は次に第3の部分
(第1及び第2の部分とは異なる)、すなわちni=n
3ビットの入力値に、24−Bからの13ビットを付加
したアドレスにより、メモリ24−Cをアドレスする。
First, memory 24-A is addressed via control logic 22 which provides a first portion on address bus 26 which contains the n1 bits of the input value. The 13-bit data read from memory 24-A is provided to control logic 22 via data bus 36. The control logic 22 then outputs 24-A to the second part (different from the first part), ie, the input value of ni = n2 bits.
From the memory 2 by the address added with 13 bits from
Address 4-B. The 13 bits of data read from memory 24-B are provided to control logic 22 via data bus 36, which in turn controls the third portion (different from the first and second portions). , Ie ni = n
The memory 24-C is addressed by the address obtained by adding 13 bits from 24-B to the 3-bit input value.

【0029】メモリ24−Cから読出された13ビット
のデータは、メモリの1つ例えばメモリ24−Aに確保
される制御ブロック部分をアドレスするために使用さ
れ、これはメモリ24−A、24−B及び24−Cを順
次アドレスするために使用されるVP/VC入力値に対
応するVP/VC出力値を含む。
The 13-bit data read from memory 24-C is used to address the control block portion reserved in one of the memories, for example memory 24-A, which is memory 24-A, 24-. Contains VP / VC output values corresponding to VP / VC input values used to sequentially address B and 24-C.

【0030】明らかに、DRAMのアドレス機能すなわ
ちエントリの数及び入力値のビット数に依存して、異な
る数のDRAMが必要となる。当業者には、各特定のア
プリケーションに必要な数のDRAMをカスケードする
ことが理解されよう。
Obviously, different numbers of DRAMs are required depending on the addressing function of the DRAMs, ie the number of entries and the number of bits of the input value. Those skilled in the art will understand to cascade as many DRAMs as needed for each particular application.

【0031】本発明の好適な実施例では、スワップ機能
が3つのDRAMにより達成され、次のことを仮定す
る。すなわち、入力値がnビット幅である。E=2p
1のエントリを有する連想記憶装置が必要とされる。各
メモリは2dのアドレス容量を有する。ここで、dはp
よりも大である。n1+n2+n3=n、すなわち探索
が実行されなければならない入力値のビット数に関し、
n1はd以下であり、n2+p及びn3+pはd以下で
ある。
In the preferred embodiment of the present invention, assume that the swap function is accomplished with three DRAMs and that: That is, the input value is n bits wide. E = 2 p
An associative memory with one entry is needed. Each memory has an address capacity of 2 d . Where d is p
Is greater than. n1 + n2 + n3 = n, ie with respect to the number of bits of the input value for which the search has to be performed,
n1 is d or less, and n2 + p and n3 + p are d or less.

【0032】d=20及びp=13を仮定すると、本発
明の好適な実施例では、メモリ24−Aはn1=19ビ
ットの入力値によりアドレスされ、メモリ24−Bはn
2=7ビットの入力値と、メモリ24−Aから読出され
る13ビットとによりアドレスされ、メモリ24−Cは
n3=7ビットと、メモリ24−Bから読出される13
ビットとによりアドレスされる。
Assuming d = 20 and p = 13, in the preferred embodiment of the invention, memory 24-A is addressed by an input value of n1 = 19 bits and memory 24-B is n.
Addressed by an input value of 2 = 7 bits and 13 bits read from memory 24-A, memory 24-C has n3 = 7 bits and 13 read from memory 24-B.
Addressed by bits and.

【0033】各メモリは220のアドレス容量を有するの
で、探索オペレーションにおいてメモリ24−Aの半分
だけが使用され、残りの半分については、後述のよう
に、メモリ内容の更新に必要な制御ブロック及びポイン
タ・スタックを記憶するために使用される。
Since each memory has an address capacity of 2 20 only half of the memory 24-A is used in the search operation, the other half being the control blocks and memory needed to update the memory contents, as described below. Used to store the pointer stack.

【0034】ポインタは探索パスが擬似連想記憶構成2
0において明瞭にマークされるように、3つのメモリ2
4−A、24−B及び24−C内でセット及び更新され
なければならない。
The search path of the pointer is a pseudo-associative memory configuration 2
3 memories 2 as clearly marked at 0
Must be set and updated in 4-A, 24-B and 24-C.

【0035】このために、213−1の異なるポインタの
3つのスタックSA、SB及びSCが、メモリ24−A
内の各メモリ24−A、24−B及び24−Cに対して
割当てられる。
To this end, three stacks SA, SB and SC of 2 13 -1 different pointers are stored in the memory 24-A.
Assigned to each of the memories 24-A, 24-B and 24-C.

【0036】擬似連想記憶装置がフルでない間に新たな
エントリを追加することは、ポインタ・スタックから新
たな特定のポインタを拾い出すことにより達成される。
マークされた新たなパスが、他の全てと総合的に異なる
形式を有する場合、新たなポインタが各スタックから引
出され、それらの各々の中身を1つ空にする。
Adding a new entry while the pseudo-associative memory is not full is accomplished by picking a new specific pointer from the pointer stack.
If the new paths marked have a format that is totally different from all others, new pointers are pulled from each stack, emptying each of them by one.

【0037】新たなエントリが以前のエントリと共通な
ものを有する場合、対応するテーブルは以前に確立され
たパスを破壊しないように、更新されてはならない。従
って、新たなエントリが擬似連想記憶装置内で実行され
る度に、パスが既に記されているか否かを判断するため
に、探索が実行されされなければならない。DRAM
A、BまたはCのいずれかが、"全て0"(空ロケーショ
ンを示す)以外のものを返却する場合には、内容は変更
されてはならず、対応するスタックからポインタは除去
されない。
If the new entry has something in common with the previous entry, the corresponding table must not be updated so as not to destroy the previously established path. Therefore, each time a new entry is executed in the pseudo-associative memory, a search must be performed to determine if the path has already been marked. DRAM
If either A, B, or C returns anything other than "all 0s" (indicating an empty location), then the contents must not be changed and the pointer is not removed from the corresponding stack.

【0038】最後のDRAM24−Cは、新たなパスが
以前のエントリの完全な複製でない限り、常に更新され
る。完全な複製の場合には、特定のアプリケーションに
依存して、スワップ・テーブルが可能な新たな値により
置換されるか、ユーザに対してエラーとしてフラグ化さ
れる。
The final DRAM 24-C is constantly updated unless the new path is an exact duplicate of the previous entry. In the case of an exact copy, the swap table is either replaced by a new possible value or flagged as an error to the user, depending on the particular application.

【0039】エントリが擬似連想記憶装置から消去され
なければならない場合、対応するエントリが実際にそこ
に存在することを確認するために、チェックが行われな
ければならない。チェック処理の間、メモリA、B及び
Cの読出しの結果返却されるポインタが収集されなけれ
ばならない。
When an entry has to be erased from the pseudo-associative memory, a check must be done to make sure that the corresponding entry actually exists there. During the checking process, the pointers returned as a result of reading the memories A, B and C must be collected.

【0040】Cから読出されるポインタは常に除去さ
れ、スタックCの先頭に再度配置されて、即時再使用可
能なように準備される。
The pointer read from C is always removed and repositioned at the top of stack C, ready for immediate reuse.

【0041】Bから読出されるポインタは、それが複数
のパスにより使用される場合、除去されてはならない。
このためのチェックが実行されなければならない。
The pointer read from B must not be removed if it is used by multiple passes.
Checks for this must be performed.

【0042】最後にAから読出されるポインタが、メモ
リBにおける複数使用に対応して、同様にチェックされ
なければならない。
Finally, the pointer read from A must also be checked for multiple uses in memory B.

【0043】これらのオペレーションについては、図4
乃至図11を参照して説明する。
FIG. 4 shows these operations.
It will be described with reference to FIGS.

【0044】制御論理22が図3に示され、これは論理
回路40を含み、論理回路40は受信回路2からバス1
4を介して、変更された入力値を受信し、またノード・
マネジャ12からはバス16を介して、制御データを受
信する。
The control logic 22 is shown in FIG. 3, which includes a logic circuit 40, which receives circuit 2 from bus 2 to bus 1.
4 receives the modified input value, and
Control data is received from the manager 12 via the bus 16.

【0045】論理回路40はRAS/CASライン3
0、32、34及びR/Wライン28上にメモリ制御信
号を生成し、これらの信号は擬似連想記憶装置20のリ
セット、更新、探索及び消去オペレーションを実行する
ために必要である。また、論理回路40はバス42を介
して、アドレス形成レジスタ43にアドレス・ビットを
提供する。レジスタ43では、アドレス・ビットが後述
のように編成される。本発明の好適な実施例では、DR
AM A、B及びCは行及び列アドレス機構を備え、ア
ドレス・ビット形成レジスタ43から得られるアドレス
・ビットが、12ビットの行アドレスと8ビットの列ア
ドレスに分離され、それぞれ行アドレス・レジスタ44
及び列アドレス・レジスタ46に提供され、更にマルチ
プレクサ48に供給されて、回路40によりライン50
上に生成される行/列選択信号の制御により、アドレス
・バス26上に出力される。
The logic circuit 40 is the RAS / CAS line 3
It generates memory control signals on the 0, 32, 34 and R / W lines 28, which are necessary to perform reset, update, search and erase operations of the pseudo-associative memory device 20. Logic circuit 40 also provides address bits to address forming register 43 via bus 42. In register 43, the address bits are organized as described below. In the preferred embodiment of the invention, the DR
AMs A, B and C are provided with row and column addressing schemes in which the address bits obtained from address bit forming register 43 are separated into a 12-bit row address and an 8-bit column address, respectively in row address register 44.
And a column address register 46 and further to a multiplexer 48 to provide line 50 by circuit 40.
It is output on the address bus 26 under the control of the row / column select signal generated above.

【0046】データ・バスが受信回路52に提供され、
このバスから受信されるビットがデータ入力レジスタ5
4に入力される。レジスタ54に記憶された受信ビット
は、バス56を介して、論理回路40に提供される。選
択されたDRAM A、BまたはCに書込まれるデータ
は、回路40によりデータ出力レジスタ60に提供さ
れ、更にドライバ62を介して、アドレスされたロケー
ションに書込まれる。ドライバ62は、回路40により
ライン64上に生成される書込み時イネーブル信号によ
り活動化される。
A data bus is provided to the receiver circuit 52,
The bit received from this bus is the data input register 5
4 is input. The received bit stored in the register 54 is provided to the logic circuit 40 via the bus 56. The data to be written to the selected DRAM A, B or C is provided to the data output register 60 by the circuit 40 and further written to the addressed location via the driver 62. Driver 62 is activated by a write enable signal generated by circuit 40 on line 64.

【0047】図4を参照して説明すると、擬似連想記憶
装置がノード・マネジャ12により開始されるパワー・
オン・リセット・オペレーションにおいて、初期化され
る様子が示される。
Referring to FIG. 4, a pseudo associative memory device is initiated by the node manager 12
It is shown how it is initialized during the on-reset operation.

【0048】ステップ70で示されるように、パワー・
オン・リセット・コマンドがバス16上で検出される
と、ステップ72で回路40がデータ出力レジスタ60
を全て0にセットする。3つのDRAM A、B及びC
が、220のアドレスを走査し、各アドレスされるロケー
ションに"全て0"を書込むことにより、並列にクリアさ
れる。
As shown in step 70, the power
If an on-reset command is detected on bus 16, circuit 40 causes data output register 60
Are all set to 0. 3 DRAMs A, B and C
Are cleared in parallel by scanning 2 20 addresses and writing "all 0s" to each addressed location.

【0049】これはステップ74に示されるように、R
AS/CAS及びR/Wラインを活動化することによ
り、DRAM A、B及びCに対して、28回の連続書
込みオペレーションをページ・モードで並列に実行する
ことにより達成される。
This is the R, as shown in step 74.
By activating the AS / CAS and R / W lines, this is accomplished by performing 2 8 consecutive write operations in parallel in page mode for DRAMs A, B and C.

【0050】各書込みオペレーションにおいて、ステッ
プ76でページ境界がクロスするか(ページ境界をこえ
るか)どうかがテストされ、否定の場合、ステップ77
で列アドレスが1増分されて、バースト書込みオペレー
ションが継続される。各ページ・クロスに際しては、こ
れが最後のページ・クロスかどうかがステップ78でテ
ストされ、否定の場合、行アドレスがステップ79で増
分され、次にRAS/CASラインが活動化されて、D
RAM A、B及びCに対する新たな28回のバースト
書込みが実行される。肯定の場合には、初期化オペレー
ションがステップ80で完了する。
For each write operation, step 76 tests whether the page boundaries cross (cross page boundaries) and, if not, step 77.
The column address is incremented by 1 to continue the burst write operation. On each page cross, it is tested at step 78 if this is the last page cross, and if not, the row address is incremented at step 79, and then the RAS / CAS line is activated, D
New 2 8 burst writes to RAM A, B and C are performed. If yes, the initialization operation is completed at step 80.

【0051】次に、ポインタ・スタックSA、SB及び
SCが、DRAM24−Aの上位部分に準備されなけれ
ばならない。
Next, pointer stacks SA, SB and SC must be prepared in the upper portion of DRAM 24-A.

【0052】図5に示されるのと同一の処理が、各スタ
ックSA、SB及びSCに対して実行される。各スタッ
クに対して、ノード・マネジャはスタック生成コマンド
をバス16を介して発行する。これがステップ90に示
されるように、回路40により復号化される。このオペ
レーションは初期化オペレーションの一部である。回路
40において、この機能を実行するために、3つの13
ビット・アップ/ダウン・カウンタが提供される。この
カウンタの1つCTN−92が図5に示され、各スタッ
クに割当てられる。回路40はCTN−92を増分また
は減分するための制御信号を制御バス94上に生成し、
これらの信号は、図5乃至図11を参照して述べられる
オペレーションを実行するために使用される。
The same processing as shown in FIG. 5 is executed for each stack SA, SB and SC. For each stack, the node manager issues a create stack command via bus 16. This is decoded by the circuit 40, as shown in step 90. This operation is part of the initialization operation. In circuit 40, in order to perform this function, three 13
A bit up / down counter is provided. One of these counters, CTN-92, is shown in FIG. 5 and is assigned to each stack. Circuit 40 produces control signals on control bus 94 to increment or decrement CTN-92,
These signals are used to perform the operations described with reference to Figures 5-11.

【0053】最初にステップ96で示されるように、カ
ウンタ92が第1のポインタ値、例えば"000000000000
1"にリセットされ、第1のスタック・アドレスがレジス
タ43にロードされる。
First, as shown in step 96, the counter 92 indicates that the first pointer value, eg, "000000000000".
Reset to 1 "and the first stack address is loaded into register 43.

【0054】次にステップ98で、DRAM−Aがアド
レスされる。ステップ100で、アップ/ダウン・カウ
ンタ92にセットされた値が、スタックのアドレスされ
たロケーションに書込まれ、レジスタ43内のスタック
・アドレスが1増分される。
Next, at step 98, DRAM-A is addressed. At step 100, the value set in up / down counter 92 is written to the addressed location of the stack and the stack address in register 43 is incremented by one.

【0055】ステップ102では、アップ/ダウン・カ
ウンタ値がテストされ、最後のポインタ値すなわち"111
1111111111"に達したかどうかが判断される。これはフ
ル・ライン103の最上位の1により示される。否定の
場合、アップ/ダウン・カウンタがステップ104で1
増分され、処理がステップ98から再開される。
In step 102, the up / down counter value is tested and the last pointer value, ie "111".
It is determined whether the 1111111111 "has been reached. This is indicated by the most significant 1 on the full line 103. If not, the up / down counter is incremented by 1 at step 104.
Incremented and processing resumes with step 98.

【0056】肯定の場合には、処理はステップ106で
終了する。
If yes, the process ends at step 106.

【0057】図6乃至図8を参照すると、全ての可能な
エントリに対応するパスをマークするために、DRAM
24−A、24−B及び24−Cが更新される様子が示
される。
Referring to FIGS. 6-8, in order to mark the paths corresponding to all possible entries, the DRAM
It is shown that 24-A, 24-B and 24-C are updated.

【0058】これはノード・マネジャ12を通じて達成
され、ノード・マネジャ12はステップ120で示され
るように、バス16上に"エントリ"xxx"の更新"コマン
ドを発行する。ここで、xxxは33ビットの入力値であ
る。
This is accomplished through node manager 12, which issues an "update entry" xxx "" command on bus 16 as shown at step 120. Here, xxx is a 33-bit input value.

【0059】ステップ122では、スタックCに関連す
るアップ/ダウン・カウンタ92の値がテストされ、D
RAM−Cがフルかどうかが判断される。肯定の場合、
これは新たな値が追加されていないことを意味し、エラ
ーまたは警告が報告される。否定の場合には、ステップ
124で示されるように、エントリ"xxx"の19最上位
ビット(MSB)が、20ビット・アドレス形成レジス
タ43の位置0乃至18に送信され、0が上記レジスタ
の位置19にセットされ、DRAM24−Aの下位部分
をアドレスし、このアドレスに記憶される値を読出す。
このアドレス値は保管される。
In step 122, the value of up / down counter 92 associated with stack C is tested and D
It is determined whether RAM-C is full. If yes,
This means that no new value has been added and an error or warning will be reported. If not, the 19 most significant bits (MSBs) of entry "xxx" are sent to positions 0-18 of 20-bit address formation register 43, where 0 is the position of the register, as shown in step 124. Set to 19 to address the lower portion of DRAM 24-A and read the value stored at this address.
This address value is stored.

【0060】次にステップ126で、読出された値が"
全て0"かどうかがテストされる。否定の場合、これは
同一の19MSBビットを含むエントリが既に存在する
ことを意味し、ステップ124で読出された現ポインタ
がステップ128で、アドレス形成レジスタ43にロー
ドされる。
Next, at step 126, the read value is "
All 0's are tested. If not, this means that there is already an entry containing the same 19 MSB bits and the current pointer read in step 124 is stored in the address formation register 43 in step 128. Loaded.

【0061】肯定の場合には、ステップ130で示され
るように、スタックSAの先頭のロケーションをアドレ
スし、ポインタ"PA"を読出すことにより、新たなポイ
ンタがスタックAからフェッチされる。次にステップ1
32で示されるように、スタックSAに関連するアップ
/ダウン・カウンタ92(92−Aと命名される)が減
分され、ステップ134で、フェッチされたポインタP
Aがステップ124で保管されたDRAM24−Aのア
ドレスに書込まれ、PAがアドレス形成レジスタ43の
位置19乃至7にロードされる。
In the affirmative, a new pointer is fetched from stack A by addressing the location at the beginning of stack SA and reading pointer "PA", as shown in step 130. Next step 1
As shown at 32, the up / down counter 92 (named 92-A) associated with the stack SA is decremented, and at step 134 the fetched pointer P
A is written to the saved address of DRAM 24-A in step 124 and PA is loaded into locations 19 through 7 of address formation register 43.

【0062】処理は図7に示されるように継続し、最初
にステップ136で、エントリ"xxx"の次の7ビットを
レジスタ43の位置6乃至0にロードする。レジスタ4
3にこのようにセットされたアドレスは保管され、DR
AM24−Bが読出される。
The process continues as shown in FIG. 7, first in step 136 the next 7 bits of entry "xxx" are loaded into registers 43 at positions 6-0. Register 4
The address thus set in 3 is stored and DR
AM24-B is read.

【0063】次にステップ138で、読出された値が"
全て0"かどうかがテストされる。否定の場合、これは
同一の7ビットを含むエントリが既に存在することを意
味し、ステップ136で読出された現ポインタがステッ
プ140で、アドレス形成レジスタ43にロードされ
る。
Next, at step 138, the read value is "
All 0 "are tested. If not, this means that there is already an entry containing the same 7 bits and the current pointer read in step 136 is stored in the address formation register 43 in step 140. Loaded.

【0064】肯定の場合には、ステップ142で示され
るように、スタックSBの先頭のロケーションをアドレ
スし、ポインタ"PB"を読出すことにより、新たなポイ
ンタがスタックBからフェッチされる。次にステップ1
44で示されるように、スタックSBに関連するアップ
/ダウン・カウンタ92(92−Bと命名される)が減
分され、ステップ144で、フェッチされたポインタP
Bが、ステップ136で保管されたDRAM24−Bの
アドレスに書込まれ、PBがアドレス形成レジスタ43
の位置19乃至7にロードされる。
If yes, a new pointer is fetched from stack B by addressing the location at the beginning of stack SB and reading pointer "PB", as shown in step 142. Next step 1
As shown at 44, the up / down counter 92 (named 92-B) associated with stack SB is decremented and at step 144 the fetched pointer P
B is written in the address of the DRAM 24-B saved in step 136, and PB is written in the address forming register 43.
Loaded in positions 19 to 7.

【0065】処理は図8に示されるように継続し、最初
にステップ148で、エントリ"xxx"の残りの7ビット
をレジスタ43の位置6乃至0にロードする。レジスタ
43にこのようにセットされたアドレスは保管され、D
RAM24−Cが読出される。
The process continues as shown in FIG. 8 by first loading the remaining 7 bits of entry "xxx" into register 43, positions 6 through 0, at step 148. The address thus set in the register 43 is stored, and D
RAM 24-C is read.

【0066】次にステップ150で、読出された値が"
全て0"かどうかがテストされる。否定の場合、これは
同一の7ビットを含むエントリが既に存在することを意
味し、ステップ148で読出された現ポインタが、ステ
ップ152で保管される。更新中のパスが既に記されて
いることを示す警告信号が、ノード・マネジャに送信さ
れる。
Next, at step 150, the read value is "
All 0's are tested. If not, this means that an entry containing the same 7 bits already exists, and the current pointer read in step 148 is saved in step 152. Update A warning signal is sent to the node manager indicating that the path inside is already marked.

【0067】肯定の場合には、ステップ154で示され
るように、スタックSCの先頭のロケーションをアドレ
スし、ポインタ"PC"を読出すことにより、新たなポイ
ンタがスタックCからフェッチされる。次にステップ1
56で示されるように、スタックSCに関連するアップ
/ダウン・カウンタ92(92−Cと命名される)が減
分され、ステップ158で、フェッチされたポインタP
Cが、ステップ148で保管されたDRAM24−Cの
アドレスに書込まれ、PCが保管される。
In the affirmative, a new pointer is fetched from stack C by addressing the top location of stack SC and reading pointer "PC", as shown in step 154. Next step 1
As shown at 56, the up / down counter 92 (named 92-C) associated with the stack SC is decremented, and at step 158 the fetched pointer P
C is written to the address of DRAM 24-C saved in step 148 and the PC is saved.

【0068】次にステップ160で示されるように、P
Cにもとづくアドレスを有するDRAM−24の上位部
分の制御ブロックがアドレスされ、エントリ"xxx"に対
応する出力値がこの制御ブロックに書込まれる。
Next, as shown in step 160, P
The upper control block of the DRAM-24, which has an address based on C, is addressed and the output value corresponding to entry "xxx" is written to this control block.

【0069】更新処理はステップ162で終了する。The update process ends at step 162.

【0070】次に図9を参照すると、受信された33ビ
ット入力値に対応する出力値を探索するために、制御論
理40により実行されるオペレーションが示される。
Referring now to FIG. 9, the operations performed by control logic 40 to locate the output value corresponding to the received 33-bit input value are shown.

【0071】これらのオペレーションは、ステップ17
0で示されるように、33ビット入力値を含むヘッダが
バス14上に提供されるときに開始される。
These operations are step 17
It is initiated when a header containing a 33-bit input value is provided on bus 14, as indicated by 0.

【0072】ステップ172で示されるように、入力値
の19MSBビットがアドレス形成レジスタ43の位置
0乃至18にロードされ、上記レジスタの位置19は0
にセットされる。DRAM24−Aがアドレスされて読
出され、ポインタPAがレジスタ54を介して論理回路
40に返却される。
As shown in step 172, the 19 MSB bits of the input value are loaded into locations 0-18 of address formation register 43, location 19 of the register being 0.
Is set to. The DRAM 24-A is addressed and read, and the pointer PA is returned to the logic circuit 40 via the register 54.

【0073】PAポインタ値がステップ174でテスト
され、これが全て0に等しい場合には、不一致信号がラ
イン65を介して処理/経路指定回路6に返却される。
The PA pointer value is tested in step 174, and if it is all equal to 0, the mismatch signal is returned to processing / routing circuit 6 via line 65.

【0074】全て0でない場合には、ステップ176
で、ポインタPAがアドレス形成レジスタ43の位置1
9乃至7にロードされ、入力値の次の7ビットが位置6
乃至0にロードされる。
If all are not 0, step 176.
Then, the pointer PA moves to position 1 of the address formation register 43.
9 to 7 loaded, the next 7 bits of the input value are in position 6
Loaded to 0.

【0075】次にステップ178でDRAM24−Bが
読出され、レジスタ54を介して回路40に返却された
ポインタPBが、ステップ180で、全て0か否かがテ
ストされる。全て0の場合、不一致信号がライン65を
介して返却される。
Next, in step 178, the DRAM 24-B is read, and in step 180, it is tested whether the pointer PB returned to the circuit 40 via the register 54 is all 0s. If all zeros, the mismatch signal is returned via line 65.

【0076】全て0でない場合、1ステップ182で、
3ビット・ポインタPBがレジスタ43の位置19乃至
7にロードされ、入力値の残りの7ビットがレジスタ4
3の位置6乃至0にロードされる。
If all are not 0, in step 182,
The 3-bit pointer PB is loaded into positions 19 to 7 of register 43 and the remaining 7 bits of the input value are in register 4
3 positions 6 to 0 are loaded.

【0077】次にステップ184で、DRAM24−C
が読出され、ポインタPCが論理回路40に返却され
る。
Next, at step 184, the DRAM 24-C
Is read and the pointer PC is returned to the logic circuit 40.

【0078】ポインタPCの値がステップ186でテス
トされ、全て0の場合、不一致信号がライン65を介し
て返却される。
The value of pointer PC is tested in step 186 and if all zeros, the mismatch signal is returned via line 65.

【0079】全て0でない場合、これは一致を表し、ポ
インタ値がDRAM−Aの上位部分の制御ブロックをア
ドレスするために使用され、出力値を含む制御ブロック
が読出され、出力バス64を介して、処理/経路指定回
路6に提供される。
If not all 0's, this indicates a match, the pointer value is used to address the control block in the upper portion of DRAM-A, the control block containing the output value is read out, and via output bus 64. , Processing / routing circuit 6.

【0080】次に図10及び図11を参照しながら、エ
ントリ"yyy"が消去される様子について説明する。
Next, how the entry "yyy" is deleted will be described with reference to FIGS.

【0081】オペレーションは、ステップ190で示さ
れるように、ノード・マネジャ12からバス16を介し
て受信される"エントリ"yyy"の消去"コマンドの受信に
より開始される。
Operation begins with the receipt of an "erase entry" yyy "" command received from the node manager 12 via bus 16, as shown in step 190.

【0082】最初にステップ192で示されるように、
図9のステップ172乃至184を実行することによ
り、探索オペレーションが33ビットの"yyy"エントリ
を用いて開始される。ポインタPA、PB及びPC、並
びにそれらのDRAM24−A、24−B及び24−C
内におけるアドレスが保管される。
First, as shown in step 192,
By performing steps 172-184 of FIG. 9, a search operation is initiated with a 33-bit "yyy" entry. Pointers PA, PB and PC and their DRAMs 24-A, 24-B and 24-C
The address within is stored.

【0083】次にステップ194で、一致が見い出され
たかどうかがテストされ、否定の場合には消去オペレー
ションが終了する。なぜなら、これはエントリ"yyy"が
擬似連想記憶装置内に存在しないことを意味するからで
ある。
Next, at step 194, a test is made to see if a match is found, and if not, the erase operation ends. This is because this means that the entry "yyy" does not exist in the pseudo-associative memory.

【0084】肯定の場合には、ポインタPCがスタック
SCの先頭のアップ/ダウン・カウンタ92−Cの内容
により示されるアドレスに書込まれ、次にこのカウンタ
が1増分される。全て0がステップ192で保管された
PCアドレスに書込まれる。
In the affirmative, the pointer PC is written to the address pointed to by the contents of the up / down counter 92-C at the top of the stack SC, which is then incremented by one. All zeros are written to the PC address stored in step 192.

【0085】次にステップ198で示されるように、ポ
インタPB及び7ビットの全ての可能な組合わせにもと
づき、DRAM24−Cの読出しがPBと0000000との
連結から開始する。各読出しオペレーションにおいて返
却されるポインタPCがステップ200でテストされ、
これが全て0でないと判明すると、消去オペレーション
が終了する。なぜなら、これはポインタが異なるパスを
記すために、まだ使用されることを意味するからであ
る。ポインタが全て0と判明すると、ステップ202で
7回の読出しオペレーションが実行されたがどうかが
テストされ、否定の場合、ステップ204でアドレスが
1増分され、ステップ198に戻りループする。
Then, as shown in step 198, the reading of DRAM 24-C begins with the concatenation of PB and 0000000 based on the pointer PB and all possible combinations of 7 bits. The pointer PC returned in each read operation is tested in step 200,
If this turns out not to be all zeros, the erase operation is complete. Because this means that pointers are still used to mark different paths. If the pointer is found all 0, is 2 7 times whether it read operation was performed a test in step 202, if not, the address is incremented by 1 in step 204 and loops back to step 198.

【0086】肯定の場合、全て0がステップ192で保
管されたPBアドレスに書込まれ、PBがスタックSB
の先頭のカウンタ92−Bにより示されるアドレスに書
込まれ、カウンタが1増分される。
In the affirmative, all 0's are written to the PB address saved in step 192 and PB is pushed to the stack SB.
Is written to the address indicated by the counter 92-B at the beginning of, and the counter is incremented by 1.

【0087】次にステップ208で示されるように、ポ
インタPA及び7ビットの全ての可能な組合わせにもと
づき、DRAM24−Bの読出しがPAと0000000との
連結から開始する。各読出しオペレーションにおいて返
却されるポインタPBがステップ210でテストされ、
これが全て0でないと判明すると、消去オペレーション
が終了する。なぜなら、これはポインタが異なるパスを
記すために、まだ使用されることを意味するからであ
る。
Then, as shown in step 208, the read of DRAM 24-B begins with the concatenation of PA and 0000000 based on the pointer PA and all possible combinations of 7 bits. The pointer PB returned in each read operation is tested in step 210,
If this turns out not to be all zeros, the erase operation is complete. Because this means that pointers are still used to mark different paths.

【0088】ポインタが全て0と判明すると、ステップ
212で27回の読出しオペレーションが実行されたが
どうかがテストされ、否定の場合、ステップ208でア
ドレスが1増分され、ステップ208に戻りループす
る。
If the pointer is found to be all zeros, then step 212 tests to see if 2 7 read operations have been performed, and if not, the address is incremented by 1 at step 208 and loops back to step 208.

【0089】肯定の場合、全てゼロがステップ192で
保管されたPAアドレスに書込まれ、PAがスタックS
Aの先頭のカウンタ92−Aにより示されるアドレスに
書込まれ、カウンタが1増分される。
In the affirmative, all zeros are written to the PA address saved in step 192 and PA is pushed to stack S.
It is written to the address indicated by the counter 92-A at the head of A, and the counter is incremented by 1.

【0090】これで消去オペレーションがステップ21
8で終了する。
The erase operation is now step 21.
It ends at 8.

【0091】本発明の好適な実施例において、VPなど
の入力値の一部に対して探索オペレーションが実行され
なければならない場合、入力値のVPパターンとの一致
が見い出された時点で、探索処理は終了する。入力値の
どの部分が探索されなければならないかに依存して、探
索が図9のステップ174、180または186で終了
する。
In the preferred embodiment of the present invention, when a search operation has to be performed on a part of an input value such as a VP, the search process is performed when a match with the VP pattern of the input value is found. Ends. Depending on which part of the input value has to be searched, the search ends in step 174, 180 or 186 of FIG.

【0092】まとめとして、本発明の構成に関して以下
の事項を開示する。
In summary, the following matters will be disclosed regarding the configuration of the present invention.

【0093】(1) 2p−1以下の整数Eに相当する
数のnビット入力値に対応する出力値を提供するデータ
通信装置であって、2d(dはd>pなる整数)のアド
レス容量を有する複数のカスケード式メモリ(24−
A、24−B及び24−C)と、上記の各メモリに、各
々が他とは異なり、1つの上記入力値に割当てられる複
数のpビット・ポインタをセットする手段と、上記メモ
リの少なくとも1つを順次アドレスし読出す手段であっ
て、第1の上記メモリが上記入力値のうちn1(n1は
n1≦dなる整数)ビットを含む部分によりアドレスさ
れ、上記のそれぞれの後続メモリが、該入力値のni
(ni≦n−n1)ビット部分と連結された先行メモリ
から読出される上記ポインタによりアドレスされる、ア
ドレス手段と、順序的に最後の上記メモリのアドレス指
定の結果得られる出力値を出力する手段と、を含む、デ
ータ通信装置。 (2)上記pビット・ポインタをセットする手段が、上
記の各メモリに割当てられる上記ポインタのスタック
と、上記各スタック内に2p−1の異なる上記ポインタ
をセットする手段と、を含む、上記(1)記載の装置。 (3)上記pビット・ポインタをセットする手段が、上
記入力値に応答して、上記メモリを順次アドレスし書込
む手段であって、第1の上記メモリが、該入力値のn1
ビットと該第1のメモリに割当てられた上記ポインタ・
スタックからフェッチされる上記ポインタとによりアド
レスされて該アドレス位置に書込まれ、かつ上記のそれ
ぞれの後続メモリが、該入力値のniビット部分と連結
される上記先行メモリに書込まれる該ポインタと、該メ
モリのアドレス指定ロケーションに書込まれ、割当てら
れる該ポインタ・スタックからフェッチされる該ポイン
タとによりアドレスされて該アドレス位置に書込まれる
書込み手段を含む、上記(2)記載の装置。 (4)nビット入力値に対応して、上記メモリに記憶さ
れた上記ポインタを消去する手段を含む、上記(1)乃
至(3)のいずれかに記載の装置。 (5)上記消去手段が、消去されるnビット値に応答し
て、順次上記メモリをアドレスする手段であって、第1
の上記メモリが上記入力値のうちn1ビットによりアド
レスされ、上記のそれぞれの後続メモリが、上記入力値
のniビット部分と連結された上記先行メモリから読出
される上記ポインタによりアドレスされる、アドレス手
段と、上記メモリから順次読出された上記ポインタを保
管する手段と、最後の上記メモリから読出された上記ポ
インタを、該メモリに割当てられた上記スタックの先頭
に書込み、最後の上記メモリのアドレス指定ロケーショ
ンを示す該ポインタを取り消す手段と、上記最後のメモ
リを除く上記メモリから読出された上記ポインタを、該
メモリに割当てられた上記スタックの先頭に書込み、該
ポインタが、消去されない上記入力値に対応するロケー
ションをアドレスするために使用されない場合、該メモ
リのアドレス指定ロケーションを示す該ポインタを取り
消す手段と、を含む、上記(4)記載の装置。 (6)上記出力値を出力する上記手段が、各々が上記最
後のメモリから読出される上記ポインタによりアドレス
され、上記入力値に対応する該出力値を記憶する上記メ
モリの1つに編成される制御ブロックを含む、上記
(1)乃至(5)のいずれかに記載の装置。 (7)上記メモリがダイナミック・ランダム・アクセス
・メモリである、上記(1)乃至(6)のいずれかに記
載の装置。 (8)n=33、p=13である、上記(6)または
(7)記載の装置。 (9)n1=20、ni=7である、上記(8)記載の
装置。 (10)上記スタック及び上記制御ブロックが上記第1
のメモリに記憶される、上記(6)記載の装置。
(1) A data communication device for providing an output value corresponding to an n-bit input value of a number corresponding to an integer E of 2 p -1 or less, which is 2 d (d is an integer such that d> p) A plurality of cascaded memories (24-
A, 24-B and 24-C) and means for setting a plurality of p-bit pointers, each of which is different from the other, in each of the above memories, and at least one of the memories. Means for sequentially addressing and reading one of the input values, the first memory being addressed by a portion of the input value that includes n1 (n1 is an integer n1 ≦ d) bits, and each subsequent memory is The input value ni
Addressing means, addressed by the pointer read from the preceding memory connected to the (ni≤n-n1) bit portion, and means for outputting the output value resulting from the addressing of the last memory in order. And a data communication device including. (2) The means for setting the p-bit pointer includes a stack of the pointers assigned to each of the memories, and a means for setting 2 p -1 different pointers in each stack. (1) The device according to the above. (3) The means for setting the p-bit pointer is means for sequentially addressing and writing the memory in response to the input value, and the first memory is n1 of the input value.
A bit and the pointer assigned to the first memory
Said pointer fetched from the stack and written to said address location, and said respective succeeding memory being written to said preceding memory concatenated with the ni bit portion of said input value; An apparatus according to claim (2), including write means written to an addressed location of the memory, addressed by the pointer fetched from the assigned pointer stack and written to the address location. (4) The device according to any one of (1) to (3) above, including means for erasing the pointer stored in the memory in response to an n-bit input value. (5) The erasing means is a means for sequentially addressing the memory in response to an n-bit value to be erased.
Means for addressing said memory by n1 bits of said input value, and each said subsequent memory is addressed by said pointer read from said preceding memory concatenated with the ni bit portion of said input value. And means for storing the pointers sequentially read from the memory, and writing the pointer read from the last memory to the top of the stack allocated to the memory, and the addressing location of the last memory. Means for canceling the pointer, and the pointer read from the memory other than the last memory are written at the head of the stack allocated to the memory, and the pointer corresponds to the input value that is not erased. Addressing the memory if not used to address location And means for canceling the pointer to the application, the above (4) device according. (6) The means for outputting the output value are organized in one of the memories each of which is addressed by the pointer read from the last memory and which stores the output value corresponding to the input value. The apparatus according to any one of (1) to (5) above, which includes a control block. (7) The device according to any one of (1) to (6) above, wherein the memory is a dynamic random access memory. (8) The device according to (6) or (7) above, wherein n = 33 and p = 13. (9) The device according to (8) above, wherein n1 = 20 and ni = 7. (10) The stack and the control block are the first
The device according to (6) above, which is stored in the memory.

【0094】[0094]

【発明の効果】以上説明したように、本発明によれば、
低価格のメモリを使用することにより、2マイクロ秒以
下の非常に短い時間内に、入力値を出力値にスワップす
るスワッピング機能を実行する装置を提供することがで
きる。
As described above, according to the present invention,
By using low cost memory, it is possible to provide a device that performs a swapping function that swaps an input value with an output value within a very short time of 2 microseconds or less.

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

【図1】本発明が実現される通信ノードを表す図であ
る。
FIG. 1 is a diagram representing a communication node in which the present invention is implemented.

【図2】カスケード式ダイナミック・ランダム・アクセ
ス・メモリを含むスワップ回路を表す図である。
FIG. 2 is a diagram showing a swap circuit including a cascaded dynamic random access memory.

【図3】スワップ機能を実現するために必要なメモリ・
オペレーションを制御する制御論理を表す図である。
[Figure 3] Memory required to implement the swap function
It is a figure showing the control logic which controls operation.

【図4】メモリ内容を初期化するために制御論理により
実行されるオペレーションを表す図である。
FIG. 4 is a diagram representing operations performed by control logic to initialize memory contents.

【図5】ポインタ・スタックを生成するために制御論理
により実行されるオペレーションを表す図である。
FIG. 5 is a diagram representing operations performed by control logic to create a pointer stack.

【図6】新たなエントリに対してメモリ内容を更新する
ために制御論理により実行されるオペレーションを表す
図である。
FIG. 6 is a diagram representing operations performed by control logic to update memory contents for a new entry.

【図7】新たなエントリに対してメモリ内容を更新する
ために制御論理により実行されるオペレーションを表す
図である。
FIG. 7 is a diagram representing the operations performed by the control logic to update the memory contents for a new entry.

【図8】新たなエントリに対してメモリ内容を更新する
ために制御論理により実行されるオペレーションを表す
図である。
FIG. 8 is a diagram representing the operations performed by the control logic to update the memory contents for a new entry.

【図9】入力値に対応する出力値を獲得するために制御
論理により実行されるオペレーションを表す図である。
FIG. 9 is a diagram representing operations performed by control logic to obtain an output value corresponding to an input value.

【図10】エントリを消去するために制御論理により実
行されるオペレーションを表す図である。
FIG. 10 is a diagram representing the operations performed by the control logic to erase an entry.

【図11】エントリを消去するために制御論理により実
行されるオペレーションを表す図である。
FIG. 11 is a diagram representing the operations performed by the control logic to erase an entry.

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

2 受信回路 4 スワップ回路 5、14 バス 6 セル回路 8 回路 12 ノード・マネジャ 20 メモリ構成 22 制御論理 26 アドレス・バス 28 読出し/書込み(R−W) 30、32、34 RAS/CAS 50、64 ライン 52 受信回路 54 データ入力レジスタ 60 データ出力レジスタ 62 ドライバ 92 アップ/ダウン・カウンタ 2 reception circuit 4 swap circuit 5, 14 bus 6 cell circuit 8 circuit 12 node manager 20 memory configuration 22 control logic 26 address bus 28 read / write (RW) 30, 32, 34 RAS / CAS 50, 64 lines 52 receiver circuit 54 data input register 60 data output register 62 driver 92 up / down counter

───────────────────────────────────────────────────── フロントページの続き (72)発明者 フランコイス・カーマレック フランス06600、アンチベス、インパス・ デ・ラ・ブラギュー、マグダ・コテージ・ シィ (番地なし) (72)発明者 エリック・ラルマンド フランス06610、ラ・ガウデ、シェミン・ デ・バレストレッチェ 57、マス・カブリ (番地なし) (72)発明者 タン・ハム フランス06600、アンチベス、シェミン・ デス・コンベス 120 (72)発明者 ハンス・ルドルフ・シンドラー スイス、シィ・エイチ−8135 ランナウ・ アム・アルビス、ウィルデンビュッヒルス トラッセ 40 ─────────────────────────────────────────────────── ─── Continuation of the front page (72) Inventor Francois Carmalec France 06600, Antibes, Impas de la Brague, Magda Cottage Cii (no street number) (72) Inventor Eric Larmando France 06610, La・ Gaude, Shemin de Vallestretch 57, Mas Kabli (no address) (72) Inventor Tan Ham France 06600, Antibes, Shemin Des Conves 120 (72) Inventor Hans Rudolf Schindler Switzerland, See-h-8135 Runau am Albis, Wildenbuillers Truss 40

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】2p−1以下の整数Eに相当する数のnビ
ット入力値に対応する出力値を提供するデータ通信装置
であって、 2d(dはd>pなる整数)のアドレス容量を有する複
数のカスケード式メモリと、 上記の各メモリに、各々が他とは異なり、1つの上記入
力値に割当てられる複数のpビット・ポインタをセット
する手段と、 上記メモリの少なくとも1つを順次アドレスし読出す手
段であって、第1の上記メモリが上記入力値のうちn1
(n1はn1≦dなる整数)ビットを含む部分によりア
ドレスされ、上記のそれぞれの後続メモリが、該入力値
のni(ni≦n−n1)ビット部分と連結された先行
メモリから読出される上記ポインタによりアドレスされ
る、アドレス手段と、 順序的に最後の上記メモリのアドレス指定の結果得られ
る出力値を出力する手段と、 を含む、データ通信装置。
1. A data communication device for providing an output value corresponding to an n-bit input value of a number corresponding to an integer E of 2 p -1 or less, wherein an address of 2 d (d is an integer d> p). A plurality of cascading memories having a capacity, a means for setting a plurality of p-bit pointers, each of which is different from the other, to one of the input values, and at least one of the memories. Means for sequentially addressing and reading, wherein the first memory is n1 of the input values.
(N1 is an integer n1 ≦ d) bits, and each subsequent memory is read from a preceding memory concatenated with a ni (ni ≦ n−n1) bit part of the input value. A data communication device comprising: addressing means addressed by a pointer; and means for outputting an output value resulting from the addressing of the last memory in order.
【請求項2】上記pビット・ポインタをセットする手段
が、 上記の各メモリに割当てられる上記ポインタのスタック
と、 上記各スタック内に2p−1の異なる上記ポインタをセ
ットする手段と、 を含む、請求項1記載の装置。
2. A means for setting the p-bit pointer comprises a stack of the pointers assigned to each of the memories, and a means for setting 2 p -1 different pointers in each of the stacks. The device according to claim 1.
【請求項3】上記pビット・ポインタをセットする手段
が、 上記入力値に応答して、上記メモリを順次アドレスし書
込む手段であって、第1の上記メモリが、該入力値のn
1ビットと該第1のメモリに割当てられた上記ポインタ
・スタックからフェッチされる上記ポインタとによりア
ドレスされて該アドレス位置に書込まれ、かつ上記のそ
れぞれの後続メモリが、該入力値のniビット部分と連
結される上記先行メモリに書込まれる該ポインタと、該
メモリのアドレス指定ロケーションに書込まれ、割当て
られる該ポインタ・スタックからフェッチされる該ポイ
ンタとによりアドレスされて該アドレス位置に書込まれ
る書込み手段を含む、 請求項2記載の装置。
3. The means for setting the p-bit pointer is means for sequentially addressing and writing the memory in response to the input value, the first memory being n of the input value.
1 bit and written to the address location by the pointer fetched from the pointer stack assigned to the first memory, and each succeeding memory is ni bits of the input value. Write to the address location addressed by the pointer written to the preceding memory that is concatenated with the part and the pointer fetched from the pointer stack that is written to the addressed location of the memory. 3. The device of claim 2 including writing means provided.
【請求項4】nビット入力値に対応して、上記メモリに
記憶された上記ポインタを消去する手段を含む、請求項
1乃至3のいずれかに記載の装置。
4. An apparatus according to claim 1, including means for erasing the pointer stored in the memory in response to an n-bit input value.
【請求項5】上記消去手段が、 消去されるnビット値に応答して、順次上記メモリをア
ドレスする手段であって、第1の上記メモリが上記入力
値のうちn1ビットによりアドレスされ、上記のそれぞ
れの後続メモリが、上記入力値のniビット部分と連結
された上記先行メモリから読出される上記ポインタによ
りアドレスされる、アドレス手段と、 上記メモリから順次読出された上記ポインタを保管する
手段と、 最後の上記メモリから読出された上記ポインタを、該メ
モリに割当てられた上記スタックの先頭に書込み、最後
の上記メモリのアドレス指定ロケーションを示す該ポイ
ンタを取り消す手段と、 上記最後のメモリを除く上記メモリから読出された上記
ポインタを、該メモリに割当てられた上記スタックの先
頭に書込み、該ポインタが、消去されない上記入力値に
対応するロケーションをアドレスするために使用されな
い場合、該メモリのアドレス指定ロケーションを示す該
ポインタを取り消す手段と、 を含む、請求項4記載の装置。
5. The erase means is means for sequentially addressing the memory in response to an n-bit value being erased, the first memory being addressed by n1 bits of the input value. Each subsequent memory is addressed by the pointer read from the preceding memory concatenated with the ni-bit portion of the input value, and means for storing the pointer sequentially read from the memory. Means for writing the pointer read from the last memory to the top of the stack allocated to the memory, canceling the pointer indicating the last addressing location of the memory, and excluding the last memory Write the pointer read from the memory to the top of the stack allocated to the memory, 5. The apparatus of claim 4, further comprising: means for canceling the pointer to the addressed location of the memory if is not used to address a location corresponding to the input value that is not erased.
【請求項6】上記出力値を出力する上記手段が、各々が
上記最後のメモリから読出される上記ポインタによりア
ドレスされ、上記入力値に対応する該出力値を記憶する
上記メモリの1つに編成される制御ブロックを含む、請
求項1乃至5のいずれかに記載の装置。
6. The means for outputting the output value is organized in one of the memories, each of which is addressed by the pointer read from the last memory and stores the output value corresponding to the input value. 6. The apparatus according to any of claims 1-5, including a control block that is implemented.
【請求項7】上記メモリがダイナミック・ランダム・ア
クセス・メモリである、請求項1乃至6のいずれかに記
載の装置。
7. The apparatus according to claim 1, wherein the memory is a dynamic random access memory.
【請求項8】n=33、p=13である、請求項6また
は7記載の装置。
8. The device according to claim 6, wherein n = 33 and p = 13.
【請求項9】n1=20、ni=7である、請求項8記
載の装置。
9. The apparatus according to claim 8, wherein n1 = 20 and ni = 7.
【請求項10】上記スタック及び上記制御ブロックが上
記第1のメモリに記憶される、請求項6記載の装置。
10. The apparatus of claim 6, wherein the stack and the control block are stored in the first memory.
JP05782195A 1994-04-29 1995-03-16 Data communication device with swap processing Expired - Fee Related JP3178645B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB9408533A GB9408533D0 (en) 1994-04-29 1994-04-29 Assessment of distance
FR99480033.3 1994-04-29

Publications (2)

Publication Number Publication Date
JPH07312611A true JPH07312611A (en) 1995-11-28
JP3178645B2 JP3178645B2 (en) 2001-06-25

Family

ID=10754335

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05782195A Expired - Fee Related JP3178645B2 (en) 1994-04-29 1995-03-16 Data communication device with swap processing

Country Status (3)

Country Link
JP (1) JP3178645B2 (en)
GB (1) GB9408533D0 (en)
WO (1) WO1995030126A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9713680D0 (en) 1997-06-27 1997-09-03 Keymed Medicals & Ind Equip Improvements in or relating to optical scopes with measuring systems

Also Published As

Publication number Publication date
JP3178645B2 (en) 2001-06-25
GB9408533D0 (en) 1994-06-22
WO1995030126A1 (en) 1995-11-09

Similar Documents

Publication Publication Date Title
US7315550B2 (en) Method and apparatus for shared buffer packet switching
US6205530B1 (en) Address translation unit supporting variable page sizes
EP0606368B1 (en) Packet processing method and apparatus
US5787255A (en) Internetworking device with enhanced protocol translation circuit
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US6230231B1 (en) Hash equation for MAC addresses that supports cache entry tagging and virtual address tables
US7804834B2 (en) Port packet queuing
US5893137A (en) Apparatus and method for implementing a content addressable memory circuit with two stage matching
EP0746823B1 (en) Bit mapping apparatus and method
US6804230B1 (en) Communication device with forwarding database having a trie search facility
US6279097B1 (en) Method and apparatus for adaptive address lookup table generator for networking application
WO2002098055A2 (en) Load balancing in ip address lookup
CA2000145C (en) Data transfer controller
US6370610B1 (en) Apparatus for swapping input values into corresponding output values
US5963499A (en) Cascadable multi-channel network memory with dynamic allocation
JP3178645B2 (en) Data communication device with swap processing
GB2137782A (en) Data transformation circuits
US6314489B1 (en) Methods and systems for storing cell data using a bank of cell buffers
US6185554B1 (en) Methods for searching a knowledge base
JPH05191411A (en) Method and apparatus for searching pattern
US7167942B1 (en) Dynamic random access memory controller
JPH09269937A (en) Method and device for transmitting packet in inter-processor communication
EP1526753B1 (en) Method for accessing data segments having arbitrary alignment
JPH10341238A (en) Reception atm cell processing controller
JP2784007B2 (en) Packet switching equipment

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees