JPH0512098A - 記憶装置 - Google Patents
記憶装置Info
- Publication number
- JPH0512098A JPH0512098A JP18820991A JP18820991A JPH0512098A JP H0512098 A JPH0512098 A JP H0512098A JP 18820991 A JP18820991 A JP 18820991A JP 18820991 A JP18820991 A JP 18820991A JP H0512098 A JPH0512098 A JP H0512098A
- Authority
- JP
- Japan
- Prior art keywords
- hash
- data
- bit
- memory
- 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.)
- Pending
Links
Abstract
(57)【要約】
【目的】 ハッシュメモリを用いると共に、ハッシュ衝
突時の待避領域を備えた記憶装置において、ハッシュメ
モリの不良による歩留まり低下を抑える。 【構成】 ハッシュメモリ601とハッシュ衝突時の待
避領域として連想メモリ部602を有するマッチングメ
モリに、NGレジスタ1と不良検出器2とANDゲート
3を設ける。NGレジスタ1は不良アドレスを格納する
ためのビットの他に、不良ビットが存在する場合“1”
が設定されるビットをMSBに有する。不良検出器2は
NGレジスタ1の不良アドレスと演算器101のハッシ
ュアドレスを比較して、両者が一致するとき“1”を出
力する。ANDゲート3は不良検出器2の出力とNGレ
ジスタ1のMSBが“1”のとき,即ちハッシュアドレ
スが不良アドレスと一致し,かつ不良ビットが存在した
とき“1”となるNG信号を制御部606に出力する。
このとき制御部606は、ハッシュ衝突が生じたものと
見做して連想メモリ部602をアクセスする。これによ
り、不良ビットが存在するハッシュメモリでも不良チッ
プとせずに使用することができる。
突時の待避領域を備えた記憶装置において、ハッシュメ
モリの不良による歩留まり低下を抑える。 【構成】 ハッシュメモリ601とハッシュ衝突時の待
避領域として連想メモリ部602を有するマッチングメ
モリに、NGレジスタ1と不良検出器2とANDゲート
3を設ける。NGレジスタ1は不良アドレスを格納する
ためのビットの他に、不良ビットが存在する場合“1”
が設定されるビットをMSBに有する。不良検出器2は
NGレジスタ1の不良アドレスと演算器101のハッシ
ュアドレスを比較して、両者が一致するとき“1”を出
力する。ANDゲート3は不良検出器2の出力とNGレ
ジスタ1のMSBが“1”のとき,即ちハッシュアドレ
スが不良アドレスと一致し,かつ不良ビットが存在した
とき“1”となるNG信号を制御部606に出力する。
このとき制御部606は、ハッシュ衝突が生じたものと
見做して連想メモリ部602をアクセスする。これによ
り、不良ビットが存在するハッシュメモリでも不良チッ
プとせずに使用することができる。
Description
【0001】
【産業上の利用分野】この発明は、ハッシュメモリを用
いると共に、ハッシュ衝突時の待避領域を備えた記憶装
置、例えば、識別子の一致するデータの対を生成し、発
火処理するデータ駆動形計算機のマッチングメモリ等に
用いられる記憶装置に関するものである。
いると共に、ハッシュ衝突時の待避領域を備えた記憶装
置、例えば、識別子の一致するデータの対を生成し、発
火処理するデータ駆動形計算機のマッチングメモリ等に
用いられる記憶装置に関するものである。
【0002】
【従来の技術】この種のデータ駆動形計算機としては、
図3に示すようなデータ駆動形マイクロプロセッサが既
に本出願人により提案されている(特願平3−4098
1号,平成3年2月12日出願)。図4のプログラム
(データフローグラフ)を実行する場合について、その
動作を説明する。外部から入出力インタフェース部IF
を経由して入力されたパケットは、図5に示されている
ように、行き先プロセッサ番号(PE#)「1」、制御
情報(SEL−CODE)、命令コード(OPC)
「+」、行き先ノード番号#1、左データ「I」を含ん
でいる。制御情報SEL−CODEのうち、PAIRは
マッチングメモリで発火(対生成)処理をするか否か、
IMはデータメモリからオペランド(被演算データ)の
読み出しを行うか否か、I/O(Oは反転,以下バーO
と記す)は演算終了後プロセッサ内で継続処理するか否
か、VECTはベクトル演算対象データであるか否か、
L/バーRは発火処理以前に左データ位置に格納されて
いるデータが2項演算の左データとなるデータであるか
否かを示している。
図3に示すようなデータ駆動形マイクロプロセッサが既
に本出願人により提案されている(特願平3−4098
1号,平成3年2月12日出願)。図4のプログラム
(データフローグラフ)を実行する場合について、その
動作を説明する。外部から入出力インタフェース部IF
を経由して入力されたパケットは、図5に示されている
ように、行き先プロセッサ番号(PE#)「1」、制御
情報(SEL−CODE)、命令コード(OPC)
「+」、行き先ノード番号#1、左データ「I」を含ん
でいる。制御情報SEL−CODEのうち、PAIRは
マッチングメモリで発火(対生成)処理をするか否か、
IMはデータメモリからオペランド(被演算データ)の
読み出しを行うか否か、I/O(Oは反転,以下バーO
と記す)は演算終了後プロセッサ内で継続処理するか否
か、VECTはベクトル演算対象データであるか否か、
L/バーRは発火処理以前に左データ位置に格納されて
いるデータが2項演算の左データとなるデータであるか
否かを示している。
【0003】外部から入力されたパケット「I」は、入
出力インターフェース部IFを経由してマッチングメモ
リ部MMに到るが、図5(a)に示すように、SEL−
CODEのIMフラッグが「1」であるため、2項演算
の相手のデータはデータメモリ部DMから読み出すもの
と解釈されて何も処理されずにデータメモリ部DMに送
られる。データメモリ部DMにおいては、IMフラグが
「1」であるため、パケットの右データ位置に格納され
ている値「n」に相当するアドレスに記憶されているデ
ータが読み出され、「n」の代わりに右データ位置に格
納される。
出力インターフェース部IFを経由してマッチングメモ
リ部MMに到るが、図5(a)に示すように、SEL−
CODEのIMフラッグが「1」であるため、2項演算
の相手のデータはデータメモリ部DMから読み出すもの
と解釈されて何も処理されずにデータメモリ部DMに送
られる。データメモリ部DMにおいては、IMフラグが
「1」であるため、パケットの右データ位置に格納され
ている値「n」に相当するアドレスに記憶されているデ
ータが読み出され、「n」の代わりに右データ位置に格
納される。
【0004】データメモリ部DMからは、演算部FAL
Uとプログラムメモリ部PMに同時にパケットが送出さ
れる。演算部FALUでは、命令コード「+」に従って
2項演算が実行され、結果データがパケットの左データ
位置に格納される。
Uとプログラムメモリ部PMに同時にパケットが送出さ
れる。演算部FALUでは、命令コード「+」に従って
2項演算が実行され、結果データがパケットの左データ
位置に格納される。
【0005】一方、プログラムメモリ部PMでは、パケ
ットの行き先ノード番号「#1」に従ってプログラムメ
モリの読み出しが行われ、次の行き先ノード番号「#
2」、次の命令コード「×」、次の制御情報などが読み
出されてパケット中の相当部分が更新される。なお、行
き先ノード番号が複数あれば、それぞれのノード番号に
対してコピーによるパケットの連続発生が行われる。
ットの行き先ノード番号「#1」に従ってプログラムメ
モリの読み出しが行われ、次の行き先ノード番号「#
2」、次の命令コード「×」、次の制御情報などが読み
出されてパケット中の相当部分が更新される。なお、行
き先ノード番号が複数あれば、それぞれのノード番号に
対してコピーによるパケットの連続発生が行われる。
【0006】演算部FALU、およびプログラムメモリ
部PMで更新されたこれらの情報は、コピー部KCOP
Yで連結併合され再び入出力インターフェース部IFに
送られる。コピー部KCOPYでは、1つのノードの演
算結果に対して複数の行き先ノードが存在するような場
合に、演算結果データのコピーが行われ、プログラムメ
モリ部PMで読み出された複数のタグ情報に付与され
て、同一の結果データをもつ複数のパケットが出力され
る。
部PMで更新されたこれらの情報は、コピー部KCOP
Yで連結併合され再び入出力インターフェース部IFに
送られる。コピー部KCOPYでは、1つのノードの演
算結果に対して複数の行き先ノードが存在するような場
合に、演算結果データのコピーが行われ、プログラムメ
モリ部PMで読み出された複数のタグ情報に付与され
て、同一の結果データをもつ複数のパケットが出力され
る。
【0007】この演算結果パケットが入出力インターフ
ェース部IFを経由して再びマッチングメモリ部MMに
到着したとき、すでにデータ「J」をもつパケット(図
5(b)参照)がマッチングメモリ部MMに到着して格
納されていれば、これら2つのパケットの行き先ノード
番号が何れも「#2」であることから、発火処理が行わ
れ、2項演算のためのパケットが生成される。一方、相
手となるパケットが未到着であれば、マッチングメモリ
部MMにおいて相手パケットの待ち合わせを行う。マッ
チングメモリ部MMで生成された前記パケットは、IM
フラグが「0」であることから、データメモリ部DMを
通過し、演算部FALUとプログラムメモリ部PMに送
られる。演算部FALUでは乗算が実行される。また、
プログラムメモリ部PMでは、次のタグ情報が読み出さ
れ、図5(c)に示すようなパケットに付与される。こ
れらの情報は、コピー部KCOPYで連結併合された後
インタフェース部IFに送られるが、図5(c)に示さ
れているようにSEL−CODEのI/バーOフラグが
0であることから外部に出力される。
ェース部IFを経由して再びマッチングメモリ部MMに
到着したとき、すでにデータ「J」をもつパケット(図
5(b)参照)がマッチングメモリ部MMに到着して格
納されていれば、これら2つのパケットの行き先ノード
番号が何れも「#2」であることから、発火処理が行わ
れ、2項演算のためのパケットが生成される。一方、相
手となるパケットが未到着であれば、マッチングメモリ
部MMにおいて相手パケットの待ち合わせを行う。マッ
チングメモリ部MMで生成された前記パケットは、IM
フラグが「0」であることから、データメモリ部DMを
通過し、演算部FALUとプログラムメモリ部PMに送
られる。演算部FALUでは乗算が実行される。また、
プログラムメモリ部PMでは、次のタグ情報が読み出さ
れ、図5(c)に示すようなパケットに付与される。こ
れらの情報は、コピー部KCOPYで連結併合された後
インタフェース部IFに送られるが、図5(c)に示さ
れているようにSEL−CODEのI/バーOフラグが
0であることから外部に出力される。
【0008】以上説明したように、2つの入力を受け入
れたプログラム(データフローグラフ)は、所定の処理
を完了し、結果をパケットの形で出力する。
れたプログラム(データフローグラフ)は、所定の処理
を完了し、結果をパケットの形で出力する。
【0009】図6は上記マッチングメモリ部MMの一構
成例を示すブロック図である。図において、612は入
力セレクタであり、後述するFIFOメモリ611から
出力されたパケットと入力されたパケットの何れかを選
択する。なお、ここでは、パケットはそのビットマップ
を図7に示すが如く構成され、62ビットの幅を有して
いるものとする。選択されたパケットはデータラッチ6
08に与えられ、そこでデータ入力信号C0が“H”の
タイミングでラッチされる。ラッチされたパケットはそ
の31ビットの識別子のうち、入力データの入力順等の
属性を示すカラー/世代識別番号DNの9ビットと、ノ
ード番号NNの下位9ビットとが、排他的論理和演算を
行いハッシュアドレスを生成するアドレス生成手段であ
る演算器101の2つの入力端子に夫々与えられる。こ
こで夫々のビット毎に排他的論理和演算が行われ、その
演算結果がハッシュアドレスとなり、ハッシュメモリ6
01に与えられる。
成例を示すブロック図である。図において、612は入
力セレクタであり、後述するFIFOメモリ611から
出力されたパケットと入力されたパケットの何れかを選
択する。なお、ここでは、パケットはそのビットマップ
を図7に示すが如く構成され、62ビットの幅を有して
いるものとする。選択されたパケットはデータラッチ6
08に与えられ、そこでデータ入力信号C0が“H”の
タイミングでラッチされる。ラッチされたパケットはそ
の31ビットの識別子のうち、入力データの入力順等の
属性を示すカラー/世代識別番号DNの9ビットと、ノ
ード番号NNの下位9ビットとが、排他的論理和演算を
行いハッシュアドレスを生成するアドレス生成手段であ
る演算器101の2つの入力端子に夫々与えられる。こ
こで夫々のビット毎に排他的論理和演算が行われ、その
演算結果がハッシュアドレスとなり、ハッシュメモリ6
01に与えられる。
【0010】また、31ビットの識別子と18ビットの
オペランドデータODとは連想メモリ部602にも与え
られる。また、識別子のうちノード番号NNの下位9ビ
ットを除いた22ビットと、18ビットのオペランドデ
ータODとを合わせた40ビットの書き込みデータがハ
ッシュメモリ601に与えられる。
オペランドデータODとは連想メモリ部602にも与え
られる。また、識別子のうちノード番号NNの下位9ビ
ットを除いた22ビットと、18ビットのオペランドデ
ータODとを合わせた40ビットの書き込みデータがハ
ッシュメモリ601に与えられる。
【0011】図8はハッシュメモリ601の構成を示す
ブロック図であり、ハッシュメモリ601は41ビット
のビット幅を有し、ハッシュアドレス9ビット分(29
=512)のアドレス空間を有している。そして、18
ビットのオペランドデータODと、31ビットの識別子
のうちノード番号NNの下位9ビットを除いた22ビッ
トとが格納されると共に、そのアドレスの内容の有効
(PB=1)、無効(PB=0)の別を示すフラグであ
るプレゼンスビットPBが格納されている。ハッシュメ
モリ601には前述の如く9ビットのハッシュアドレス
と40ビットの書き込みデータが与えられると共に、後
述する制御部606からそのリードライトサイクルを定
めるリードライト信号W/バーR・Hと、プレゼンスビ
ットPBの更新を行うセット信号S/バーRとが与えら
れ、リードライト信号W/バーR・H=“H”のサイク
ルで書き込みがなされ、W/バーR・H=“L”のサイ
クルで指定されたアドレスの読み出しデータとプレゼン
スビットPBとが出力される。
ブロック図であり、ハッシュメモリ601は41ビット
のビット幅を有し、ハッシュアドレス9ビット分(29
=512)のアドレス空間を有している。そして、18
ビットのオペランドデータODと、31ビットの識別子
のうちノード番号NNの下位9ビットを除いた22ビッ
トとが格納されると共に、そのアドレスの内容の有効
(PB=1)、無効(PB=0)の別を示すフラグであ
るプレゼンスビットPBが格納されている。ハッシュメ
モリ601には前述の如く9ビットのハッシュアドレス
と40ビットの書き込みデータが与えられると共に、後
述する制御部606からそのリードライトサイクルを定
めるリードライト信号W/バーR・Hと、プレゼンスビ
ットPBの更新を行うセット信号S/バーRとが与えら
れ、リードライト信号W/バーR・H=“H”のサイク
ルで書き込みがなされ、W/バーR・H=“L”のサイ
クルで指定されたアドレスの読み出しデータとプレゼン
スビットPBとが出力される。
【0012】図9は連想メモリ部602の構成を示すブ
ロック図である。図において、201はハッシュ衝突し
たときにデータラッチ608からの31ビットの識別子
と一致するデータを検索する連想メモリ(以下CAMと
いう)であり、32ビット×32アドレスの容量となっ
ている。CAM201のうち1ビットは前記ハッシュメ
モリ601と同様に格納されているデータの有効性を判
別するためのプレゼンスビットPBの格納に用いられ
る。CAM201には各アドレスに対して一致,不一致
検索ライン(以下マッチラインという)が設けられてお
り、与えられた31ビットの識別子と、CAM201に
格納された識別子とが全て一致したアドレスの32ビッ
トのマッチラインの1ビットが“H”となる判定信号が
出力される。また、CAM201にはセレクタ205を
介してプレゼンスビットPBの更新を行うセット信号S
/バーRが与えられると共に、リードライトのサイクル
を定めるリードライト信号W/バーR・Cが与えられ
る。セレクタ205は一端に基準電圧が、他端にセット
信号S/バーRが与えられており、その切換端子にはリ
ードライト信号W/バーR・Cが与えられており、リー
ドサイクルのときは基準電圧が、ライトサイクルのとき
はセット信号S/バーRが選択される。即ちリードサイ
クル(W/バーR・C=L)のときは、プレゼンスビッ
トPB=1のアドレスだけを検索する必要があるので、
検索データのプレゼンスビットPBに相当するビットを
常に1とし、ライトサイクル(W/バーR・C=H)の
ときのみプレゼンスビットPBを更新する必要があるた
めにこのセレクタ205は用いられる。
ロック図である。図において、201はハッシュ衝突し
たときにデータラッチ608からの31ビットの識別子
と一致するデータを検索する連想メモリ(以下CAMと
いう)であり、32ビット×32アドレスの容量となっ
ている。CAM201のうち1ビットは前記ハッシュメ
モリ601と同様に格納されているデータの有効性を判
別するためのプレゼンスビットPBの格納に用いられ
る。CAM201には各アドレスに対して一致,不一致
検索ライン(以下マッチラインという)が設けられてお
り、与えられた31ビットの識別子と、CAM201に
格納された識別子とが全て一致したアドレスの32ビッ
トのマッチラインの1ビットが“H”となる判定信号が
出力される。また、CAM201にはセレクタ205を
介してプレゼンスビットPBの更新を行うセット信号S
/バーRが与えられると共に、リードライトのサイクル
を定めるリードライト信号W/バーR・Cが与えられ
る。セレクタ205は一端に基準電圧が、他端にセット
信号S/バーRが与えられており、その切換端子にはリ
ードライト信号W/バーR・Cが与えられており、リー
ドサイクルのときは基準電圧が、ライトサイクルのとき
はセット信号S/バーRが選択される。即ちリードサイ
クル(W/バーR・C=L)のときは、プレゼンスビッ
トPB=1のアドレスだけを検索する必要があるので、
検索データのプレゼンスビットPBに相当するビットを
常に1とし、ライトサイクル(W/バーR・C=H)の
ときのみプレゼンスビットPBを更新する必要があるた
めにこのセレクタ205は用いられる。
【0013】また、CAM201からは32ビットのマ
ッチラインに識別子の一致,不一致の別を示す判定信号
が出力されると共に、空アドレス検出器203に各アド
レスのプレゼンスビットPBが出力され、そこでプレゼ
ンスビットPBにより空アドレスが検出される。空アド
レス検出器203は32ビットの検出信号をアドレスセ
レクタ204の一端に出力すると共に、空アドレスがな
くCAM201の全アドレス空間にハッシュ衝突したパ
ケットの識別子が格納されたとき、そのことを示すフル
信号FLを制御部606に出力する。なお、検出信号は
CAM201のアドレスに対応する32ビットの出力で
あり、その空アドレスのビットが“H”となっている。
アドレスセレクタ204の他端にはマッチラインからの
判定信号が与えられ、その切換端子に与えられたリード
ライト信号W/バーR・Cのリードライトに応じアドレ
スセレクタ204はリードサイクルのときは判定信号
を、またライトサイクルのときは空アドレス検出器20
3の検出信号を夫々選択する。アドレスセレクタ204
のアドレス選択出力はRAM202に与えられ、それに
より指定されたアドレスがアクセスされる。RAM20
2はオペランドデータを格納するためのものであり、1
8ビット×32アドレスの容量となっている。リードラ
イト信号W/バーR・C及びアドレス選択出力に応じて
オペランドデータの読み書きが行われる。即ちリードサ
イクルではRAM202のアドレスラインには判定信号
が与えられ、CAM201に入力されたパケットの識別
子と一致する識別子がCAM201に格納されている場
合(これをCAM201がヒットしたという)、判定信
号に応じたアドレスの18ビットのオペランドデータが
読み出しデータとして出力される。この読み出しデータ
は判定信号とマージされ、50ビットの出力信号として
データラッチ609に出力される。またCAM201が
ヒットしなければ判定信号は32ビット全て“L”のま
まであり、RAM202からは如何なるオペランドデー
タも読み出されない。一方、ライトサイクルでは空アド
レス検出器203からの検出信号が選択され、CAM2
01とRAM202の何れかのアドレスに31ビットの
識別子と18ビットのオペランドデータODとを格納す
るかを指示する。また、CAM201がヒットした場合
はプレゼンスビットPBを更新する必要が生じるので、
ライトサイクルにてCAM201に与えられるアドレス
はヒットしたアドレスである。
ッチラインに識別子の一致,不一致の別を示す判定信号
が出力されると共に、空アドレス検出器203に各アド
レスのプレゼンスビットPBが出力され、そこでプレゼ
ンスビットPBにより空アドレスが検出される。空アド
レス検出器203は32ビットの検出信号をアドレスセ
レクタ204の一端に出力すると共に、空アドレスがな
くCAM201の全アドレス空間にハッシュ衝突したパ
ケットの識別子が格納されたとき、そのことを示すフル
信号FLを制御部606に出力する。なお、検出信号は
CAM201のアドレスに対応する32ビットの出力で
あり、その空アドレスのビットが“H”となっている。
アドレスセレクタ204の他端にはマッチラインからの
判定信号が与えられ、その切換端子に与えられたリード
ライト信号W/バーR・Cのリードライトに応じアドレ
スセレクタ204はリードサイクルのときは判定信号
を、またライトサイクルのときは空アドレス検出器20
3の検出信号を夫々選択する。アドレスセレクタ204
のアドレス選択出力はRAM202に与えられ、それに
より指定されたアドレスがアクセスされる。RAM20
2はオペランドデータを格納するためのものであり、1
8ビット×32アドレスの容量となっている。リードラ
イト信号W/バーR・C及びアドレス選択出力に応じて
オペランドデータの読み書きが行われる。即ちリードサ
イクルではRAM202のアドレスラインには判定信号
が与えられ、CAM201に入力されたパケットの識別
子と一致する識別子がCAM201に格納されている場
合(これをCAM201がヒットしたという)、判定信
号に応じたアドレスの18ビットのオペランドデータが
読み出しデータとして出力される。この読み出しデータ
は判定信号とマージされ、50ビットの出力信号として
データラッチ609に出力される。またCAM201が
ヒットしなければ判定信号は32ビット全て“L”のま
まであり、RAM202からは如何なるオペランドデー
タも読み出されない。一方、ライトサイクルでは空アド
レス検出器203からの検出信号が選択され、CAM2
01とRAM202の何れかのアドレスに31ビットの
識別子と18ビットのオペランドデータODとを格納す
るかを指示する。また、CAM201がヒットした場合
はプレゼンスビットPBを更新する必要が生じるので、
ライトサイクルにてCAM201に与えられるアドレス
はヒットしたアドレスである。
【0014】入力されたパケットとハッシュアドレスと
が等しいハッシュメモリ601内の40ビットの格納デ
ータ、ハッシュメモリ601のプレゼンスビットPB及
び連想メモリ部602の出力信号は、データラッチ60
9にクロックT1のタイミングでラッチされ、プレゼン
スビットPBは制御部606へ、また格納データのうち
の22ビットの識別子は一致検出器603の一端へ、格
納データのうち18ビットのオペランドデータODは出
力セレクタ605の一端へ夫々与えられる。また、連想
メモリ部602の出力信号のうち32ビットの判定信号
はヒット検出器604へ、また18ビットのオペランド
データODは出力セレクタ605の他端へ与えられる。
が等しいハッシュメモリ601内の40ビットの格納デ
ータ、ハッシュメモリ601のプレゼンスビットPB及
び連想メモリ部602の出力信号は、データラッチ60
9にクロックT1のタイミングでラッチされ、プレゼン
スビットPBは制御部606へ、また格納データのうち
の22ビットの識別子は一致検出器603の一端へ、格
納データのうち18ビットのオペランドデータODは出
力セレクタ605の一端へ夫々与えられる。また、連想
メモリ部602の出力信号のうち32ビットの判定信号
はヒット検出器604へ、また18ビットのオペランド
データODは出力セレクタ605の他端へ与えられる。
【0015】一致検出器603の他端には、入力された
31ビットの識別子の下位9ビットを除いた22ビット
の識別子が与えられ、入力された2つの識別子の一致を
検出し、一致している場合は一致信号EQを制御部60
6に出力する。即ち、一致した場合はハッシュアドレス
として用いた9ビットの識別子と22ビットの識別子と
が全て一致したことになるため、その旨を一致信号EQ
として制御部606へ告知する。
31ビットの識別子の下位9ビットを除いた22ビット
の識別子が与えられ、入力された2つの識別子の一致を
検出し、一致している場合は一致信号EQを制御部60
6に出力する。即ち、一致した場合はハッシュアドレス
として用いた9ビットの識別子と22ビットの識別子と
が全て一致したことになるため、その旨を一致信号EQ
として制御部606へ告知する。
【0016】また、ヒット検出器604はCAM201
からの32本のマッチラインの判定信号をモニタし、そ
の中の1ビットでも“H”に立上がったものがあった場
合は(=CAM201がヒットすれば)、ヒット信号H
ITを制御部606及び出力セレクタ605の切換端子
に与える。
からの32本のマッチラインの判定信号をモニタし、そ
の中の1ビットでも“H”に立上がったものがあった場
合は(=CAM201がヒットすれば)、ヒット信号H
ITを制御部606及び出力セレクタ605の切換端子
に与える。
【0017】出力セレクタ605は、入力されたパケッ
トの識別子とハッシュメモリ601または連想メモリ6
02内に格納された識別子とが全て一致する発火対象の
相手データが検索された場合に、一致した識別子を格納
した方のメモリからのオペランドデータODを選択する
ものである。選択結果のオペランドデータODはデータ
ラッチ610に与えられ、制御部606からのクロック
T2の“H”のタイミングでラッチされ、データ対形成
器607の一端に与えられる。出力セレクタ605の選
択は切換端子に与えられたヒット信号HITにより行わ
れ、CAM201がヒットした場合にのみ連想メモリ部
602に格納されていたオペランドデータODを選択
し、ヒットしなかった場合にはハッシュメモリ601に
格納されていたデータを選択し、データラッチ610に
送る。
トの識別子とハッシュメモリ601または連想メモリ6
02内に格納された識別子とが全て一致する発火対象の
相手データが検索された場合に、一致した識別子を格納
した方のメモリからのオペランドデータODを選択する
ものである。選択結果のオペランドデータODはデータ
ラッチ610に与えられ、制御部606からのクロック
T2の“H”のタイミングでラッチされ、データ対形成
器607の一端に与えられる。出力セレクタ605の選
択は切換端子に与えられたヒット信号HITにより行わ
れ、CAM201がヒットした場合にのみ連想メモリ部
602に格納されていたオペランドデータODを選択
し、ヒットしなかった場合にはハッシュメモリ601に
格納されていたデータを選択し、データラッチ610に
送る。
【0018】データ対形成器607は、出力セレクタ6
05により選択されたオペランドデータODが一端に入
力されると共に、他端にはデータラッチ608からの6
2ビットの入力されたパケットのデータが与えられる。
そして、2つのデータがマージされて80ビットの2オ
ペランドデータが形成される。このとき2項演算の減算
命令の如くオペランドの順序関係が重要なものがあるの
で、選択されたオペランドデータODと入力されたパケ
ットのオペランドデータODとは正しく左または右のオ
ペランドとして配置される必要がある。図10はデータ
対形成器607の構成を示すブロック図である。データ
対形成器607は2つのデータセレクタ701,702
からなり、夫々の切換端子には入力されたパケットの左
/右データ選択ビットでその状態を示すセレクタ制御信
号L/バーRが与えられる。データセレクタ701のA
端子及びデータセレクタ702のB端子にはデータラッ
チ608よりの入力されたパケットのオペランドデータ
ODが夫々与えられ、データセレクタ701のB端子及
びデータセレクタ702のA端子にはデータラッチ61
0よりの格納されたオペランドデータODが与えられ
る。そして、入力されたパケットのセレクタ制御信号L
/バーRが“1”のときは、夫々のデータセレクタ70
1,702のA端子に与えられたオペランドデータが、
またL/バーRが“0”のときはB端子に与えられたオ
ペランドデータが選択され、データセレクタ701から
の選択出力が左オペランドとなり、データセレクタ70
2からの選択出力が右オペランドとなり、それらと入力
されたパケットのオペランドデータODを除く他のデー
タとがマージされて出力される。
05により選択されたオペランドデータODが一端に入
力されると共に、他端にはデータラッチ608からの6
2ビットの入力されたパケットのデータが与えられる。
そして、2つのデータがマージされて80ビットの2オ
ペランドデータが形成される。このとき2項演算の減算
命令の如くオペランドの順序関係が重要なものがあるの
で、選択されたオペランドデータODと入力されたパケ
ットのオペランドデータODとは正しく左または右のオ
ペランドとして配置される必要がある。図10はデータ
対形成器607の構成を示すブロック図である。データ
対形成器607は2つのデータセレクタ701,702
からなり、夫々の切換端子には入力されたパケットの左
/右データ選択ビットでその状態を示すセレクタ制御信
号L/バーRが与えられる。データセレクタ701のA
端子及びデータセレクタ702のB端子にはデータラッ
チ608よりの入力されたパケットのオペランドデータ
ODが夫々与えられ、データセレクタ701のB端子及
びデータセレクタ702のA端子にはデータラッチ61
0よりの格納されたオペランドデータODが与えられ
る。そして、入力されたパケットのセレクタ制御信号L
/バーRが“1”のときは、夫々のデータセレクタ70
1,702のA端子に与えられたオペランドデータが、
またL/バーRが“0”のときはB端子に与えられたオ
ペランドデータが選択され、データセレクタ701から
の選択出力が左オペランドとなり、データセレクタ70
2からの選択出力が右オペランドとなり、それらと入力
されたパケットのオペランドデータODを除く他のデー
タとがマージされて出力される。
【0019】制御部606は、プレゼンスビットPB,
ヒット信号HIT,一致信号EQ,入力されたパケット
が2入力命令か1入力命令かの別を示すFC処理選択ビ
ットの状態で定まる入力選択信号FC(2入力命令FC
=1,1入力命令FC=0)及びフル信号FLが与えら
れ、それらを判断してリードライト信号W/バーR・
C,W/バーR/H,セット信号S/バーR,データ出
力信号C1及び後述するFIFOメモリ611への書き
込み信号WRFを出力する。またデータ入力信号C0,
データ出力許可信号バーA1が入力され、それらを判断
してデータ入力許可信号バーA0,クロックT1及び同
T2を出力する。ここでデータ入力信号C0及びデータ
入力許可信号バーA0は、このマッチングメモリ部MM
と、このマッチングメモリ部MMに対してデータを与え
る前段処理部との間のデータ転送制御信号であり、デー
タ出力信号C1及びデータ出力許可信号バーA1は、こ
のマッチングメモリ部MMの出力するデータを受取る後
段処理部との間のデータ転送制御信号である。
ヒット信号HIT,一致信号EQ,入力されたパケット
が2入力命令か1入力命令かの別を示すFC処理選択ビ
ットの状態で定まる入力選択信号FC(2入力命令FC
=1,1入力命令FC=0)及びフル信号FLが与えら
れ、それらを判断してリードライト信号W/バーR・
C,W/バーR/H,セット信号S/バーR,データ出
力信号C1及び後述するFIFOメモリ611への書き
込み信号WRFを出力する。またデータ入力信号C0,
データ出力許可信号バーA1が入力され、それらを判断
してデータ入力許可信号バーA0,クロックT1及び同
T2を出力する。ここでデータ入力信号C0及びデータ
入力許可信号バーA0は、このマッチングメモリ部MM
と、このマッチングメモリ部MMに対してデータを与え
る前段処理部との間のデータ転送制御信号であり、デー
タ出力信号C1及びデータ出力許可信号バーA1は、こ
のマッチングメモリ部MMの出力するデータを受取る後
段処理部との間のデータ転送制御信号である。
【0020】制御部606にフル信号FLが入力され、
さらにハッシュ衝突が生じた場合、制御部606から2
ポートタイプのFIFOメモリ611に書き込み信号W
RFが与えられる。このとき、FIFOメモリ611は
データ対形成器607からの出力信号のうち入力された
パケットの62ビットのデータを格納し、それを所定時
間バッファリングした後、入力セレクタ612の他端に
与える。この間に、ハッシュ衝突の原因となったハッシ
ュアドレスのハッシュメモリ601内のデータか、また
はCAM201内のデータの何れかのデータが読み出さ
れて発火されている場合は、FIFOメモリ611を経
由して再び入力されたパケットはこのマッチングメモリ
部MM内のハッシュメモリ601または連想メモリ部6
02の何れかで待合せを行うことができる。この際、入
力セレクタ612は通常外部より与えられるデータをセ
レクトし、FIFOメモリ611の出力端にバッファリ
ングを施されたデータが存在するときのみ、外部より与
えられるデータとFIFOメモリ611の与えるデータ
を交互にセレクトするよう制御される。
さらにハッシュ衝突が生じた場合、制御部606から2
ポートタイプのFIFOメモリ611に書き込み信号W
RFが与えられる。このとき、FIFOメモリ611は
データ対形成器607からの出力信号のうち入力された
パケットの62ビットのデータを格納し、それを所定時
間バッファリングした後、入力セレクタ612の他端に
与える。この間に、ハッシュ衝突の原因となったハッシ
ュアドレスのハッシュメモリ601内のデータか、また
はCAM201内のデータの何れかのデータが読み出さ
れて発火されている場合は、FIFOメモリ611を経
由して再び入力されたパケットはこのマッチングメモリ
部MM内のハッシュメモリ601または連想メモリ部6
02の何れかで待合せを行うことができる。この際、入
力セレクタ612は通常外部より与えられるデータをセ
レクトし、FIFOメモリ611の出力端にバッファリ
ングを施されたデータが存在するときのみ、外部より与
えられるデータとFIFOメモリ611の与えるデータ
を交互にセレクトするよう制御される。
【0021】次に、以上の如く構成されたマッチングメ
モリ部MMの動作について説明する。なお、ハッシュメ
モリ601には対のデータを待つ複数のパケットが格納
されているものとする。図11は、このマッチングメモ
リ部MMの概略動作を説明するフローチャートである。
パケットが入力されると(S1)、連想メモリ部602
では格納された識別子との一致,不一致を判定(S1
0)すると共に、9ビットのハッシュアドレスがカラー
/世代識別番号DN(9ビット)とノード番号NNの下
位9ビットとの排他的論理和により生成される(S
2)。次に、ハッシュメモリ601のそのハッシュアド
レスに有効なデータが既に格納されているか否かが判定
され(S3)、連想メモリ部602の識別子と一致せ
ず、かつS3でデータが格納されていない場合は(S1
3)、入力パケットをハッシュメモリ601のそのハッ
シュアドレスに格納し(S4)、有効なデータが既に格
納されている場合は22ビットの他の識別子が一致して
いるか否かが判定され(S5)、一致していない場合は
ハッシュ衝突が生じているので、入力パケットを連想メ
モリ部602に格納し(S7)、一致した場合はハッシ
ュメモリ601内の格納データを選択し(S9)、それ
と入力パケットとをデータ対となす発火処理を行う(S
12)。但し、連想メモリ部602の識別子と一致せ
ず、かつハッシュメモリ601内の22ビットの他の識
別子が不一致の時に(S14)、連想メモリ部602が
満杯か否かが判定され(S6)、満杯のときは入力パケ
ットをFIFOメモリ611に格納し(S8)、満杯で
ないときは連想メモリ部602に格納した後(S7)、
次の処理に移る。また、入力パケットと連想メモリ部6
02に格納された識別子との一致,不一致の判定(S1
0)で一致したときは、連想メモリ部602の出力を選
択し(S11)、発火処理する(S12)。以上が概略
動作である。
モリ部MMの動作について説明する。なお、ハッシュメ
モリ601には対のデータを待つ複数のパケットが格納
されているものとする。図11は、このマッチングメモ
リ部MMの概略動作を説明するフローチャートである。
パケットが入力されると(S1)、連想メモリ部602
では格納された識別子との一致,不一致を判定(S1
0)すると共に、9ビットのハッシュアドレスがカラー
/世代識別番号DN(9ビット)とノード番号NNの下
位9ビットとの排他的論理和により生成される(S
2)。次に、ハッシュメモリ601のそのハッシュアド
レスに有効なデータが既に格納されているか否かが判定
され(S3)、連想メモリ部602の識別子と一致せ
ず、かつS3でデータが格納されていない場合は(S1
3)、入力パケットをハッシュメモリ601のそのハッ
シュアドレスに格納し(S4)、有効なデータが既に格
納されている場合は22ビットの他の識別子が一致して
いるか否かが判定され(S5)、一致していない場合は
ハッシュ衝突が生じているので、入力パケットを連想メ
モリ部602に格納し(S7)、一致した場合はハッシ
ュメモリ601内の格納データを選択し(S9)、それ
と入力パケットとをデータ対となす発火処理を行う(S
12)。但し、連想メモリ部602の識別子と一致せ
ず、かつハッシュメモリ601内の22ビットの他の識
別子が不一致の時に(S14)、連想メモリ部602が
満杯か否かが判定され(S6)、満杯のときは入力パケ
ットをFIFOメモリ611に格納し(S8)、満杯で
ないときは連想メモリ部602に格納した後(S7)、
次の処理に移る。また、入力パケットと連想メモリ部6
02に格納された識別子との一致,不一致の判定(S1
0)で一致したときは、連想メモリ部602の出力を選
択し(S11)、発火処理する(S12)。以上が概略
動作である。
【0022】図12はこのマッチングメモリ部MMの動
作サイクルを説明するタイミングチャートであり、この
図に示す如く、マッチングメモリ部MMの動作サイクル
は、リードサイクル,処理サイクル及びライトサイクル
の3つのサイクルに分けられる。前段処理部からのデー
タ入力信号C0が制御部606に入力されると、前段処
理部への出力許可信号バーA0が“1”→“0”に変化
し、次の入力を禁止し、リードサイクルに入る。リード
サイクルに入ると、入力セレクタ612で選択された入
力パケットまたはCAM201のオーバーフローにより
循環されたパケットの何れかが、データ入力信号C0の
“0”→“1”のタイミングでデータラッチ608にラ
ッチされる。データラッチ608にパケットが入力され
ると、当該パケットの31ビットの識別子のうち、カラ
ー/世代識別番号DNの9ビットと21ビットのノード
番号NNの下位9ビットとが演算器101に与えられ、
それらの排他的論理和演算が行われ、9ビットのハッシ
ュアドレスが定められる。なお、この例では演算器10
1により2種類の識別コードの排他的論理和演算が行わ
れているが、識別コードの演算対象数及び演算内容はこ
れに限るものではなく、演算対象数は3つ以上でもよ
く、また演算内容は加算等の他の逆算可能な演算でもよ
い。
作サイクルを説明するタイミングチャートであり、この
図に示す如く、マッチングメモリ部MMの動作サイクル
は、リードサイクル,処理サイクル及びライトサイクル
の3つのサイクルに分けられる。前段処理部からのデー
タ入力信号C0が制御部606に入力されると、前段処
理部への出力許可信号バーA0が“1”→“0”に変化
し、次の入力を禁止し、リードサイクルに入る。リード
サイクルに入ると、入力セレクタ612で選択された入
力パケットまたはCAM201のオーバーフローにより
循環されたパケットの何れかが、データ入力信号C0の
“0”→“1”のタイミングでデータラッチ608にラ
ッチされる。データラッチ608にパケットが入力され
ると、当該パケットの31ビットの識別子のうち、カラ
ー/世代識別番号DNの9ビットと21ビットのノード
番号NNの下位9ビットとが演算器101に与えられ、
それらの排他的論理和演算が行われ、9ビットのハッシ
ュアドレスが定められる。なお、この例では演算器10
1により2種類の識別コードの排他的論理和演算が行わ
れているが、識別コードの演算対象数及び演算内容はこ
れに限るものではなく、演算対象数は3つ以上でもよ
く、また演算内容は加算等の他の逆算可能な演算でもよ
い。
【0023】ハッシュアドレスが定められると、リード
サイクルではハッシュメモリ601と連想メモリ部60
2とが同時に読み出される。メモリ読み出しに必要な時
間が経過するとクロックT1が“0”→“1”に変化
し、読み出されたデータはデータラッチ609にラッチ
される。ここから処理サイクルに入り、一致検出器60
3及びヒット検出器604はハッシュメモリ601及び
連想メモリ部602より読み出された各データに基づい
て一致信号EQ及びヒット信号HITを出力する。即
ち、一致検出器603はハッシュ衝突が起こっているか
否かを検出するものであり、データラッチ608に入力
されているパケットの識別子とハッシュメモリ601か
ら読み出されてデータラッチ609にラッチされている
識別子との比較を行う。即ち、カラー/世代識別番号D
Nの9ビット,ノード番号NNの上位12ビット及びプ
ロセッサ識別ビットの1ビットの計22ビットの比較を
行う。これらの22ビットが全て等しいと判定される
と、9ビットのハッシュアドレスが等しく、また9ビッ
トのカラー/世代識別番号DNが等しいので、ノード番
号NNの下位9ビットも等しいことになり、31ビット
識別子の全てが等しいと判定され、一致検出器603は
一致信号EQ=“1”を制御部606に出力する。そし
て、ヒット検出器604では、連想メモリ部602に格
納されている識別子とデータラッチ608に入力されて
いるパケットの識別子とが等しい場合,即ち32ビット
のマッチラインの何れかが“H”となったときにヒット
信号HIT=“1”を出力する。
サイクルではハッシュメモリ601と連想メモリ部60
2とが同時に読み出される。メモリ読み出しに必要な時
間が経過するとクロックT1が“0”→“1”に変化
し、読み出されたデータはデータラッチ609にラッチ
される。ここから処理サイクルに入り、一致検出器60
3及びヒット検出器604はハッシュメモリ601及び
連想メモリ部602より読み出された各データに基づい
て一致信号EQ及びヒット信号HITを出力する。即
ち、一致検出器603はハッシュ衝突が起こっているか
否かを検出するものであり、データラッチ608に入力
されているパケットの識別子とハッシュメモリ601か
ら読み出されてデータラッチ609にラッチされている
識別子との比較を行う。即ち、カラー/世代識別番号D
Nの9ビット,ノード番号NNの上位12ビット及びプ
ロセッサ識別ビットの1ビットの計22ビットの比較を
行う。これらの22ビットが全て等しいと判定される
と、9ビットのハッシュアドレスが等しく、また9ビッ
トのカラー/世代識別番号DNが等しいので、ノード番
号NNの下位9ビットも等しいことになり、31ビット
識別子の全てが等しいと判定され、一致検出器603は
一致信号EQ=“1”を制御部606に出力する。そし
て、ヒット検出器604では、連想メモリ部602に格
納されている識別子とデータラッチ608に入力されて
いるパケットの識別子とが等しい場合,即ち32ビット
のマッチラインの何れかが“H”となったときにヒット
信号HIT=“1”を出力する。
【0024】上述の操作に必要な時間が経過すると、ク
ロックT2が“0”→“1”に変化し、ライトサイクル
に入る。ライトサイクルでは、プレゼンスビットPBの
更新を含むメモリの書き込みとデータ対の生成が行われ
る。これらの操作に必要な時間が経過すると、制御部6
06はデータ出力信号C1を出力し、クロックT1,T
2及びデータ入力許可信号バーA0の復帰を行い、一連
の処理を終了する。但し、データ出力信号C1の出力は
入力されたパケットが発火したときだけであり、発火し
なかった場合は、クロックT1,T2及びデータ入力許
可信号バーA0の復帰だけを行い、データ出力信号C1
は出力されない。そして、このライトサイクルでは、プ
レゼンスビットPB,一致信号EQ,ヒット信号HI
T,フル信号FL及び入力選択信号FCによってリード
ライト信号W/バーR・H,W/バーR・C,FIFO
メモリ611の書き込み信号WRF及びセット信号S/
バーRが制御部606で生成される。この真理値表を図
13に示す。これにより、ハッシュメモリ601及び連
想メモリ部602に、入力されたパケットを書き込むか
否かを定め、下記の如くの動作をする。
ロックT2が“0”→“1”に変化し、ライトサイクル
に入る。ライトサイクルでは、プレゼンスビットPBの
更新を含むメモリの書き込みとデータ対の生成が行われ
る。これらの操作に必要な時間が経過すると、制御部6
06はデータ出力信号C1を出力し、クロックT1,T
2及びデータ入力許可信号バーA0の復帰を行い、一連
の処理を終了する。但し、データ出力信号C1の出力は
入力されたパケットが発火したときだけであり、発火し
なかった場合は、クロックT1,T2及びデータ入力許
可信号バーA0の復帰だけを行い、データ出力信号C1
は出力されない。そして、このライトサイクルでは、プ
レゼンスビットPB,一致信号EQ,ヒット信号HI
T,フル信号FL及び入力選択信号FCによってリード
ライト信号W/バーR・H,W/バーR・C,FIFO
メモリ611の書き込み信号WRF及びセット信号S/
バーRが制御部606で生成される。この真理値表を図
13に示す。これにより、ハッシュメモリ601及び連
想メモリ部602に、入力されたパケットを書き込むか
否かを定め、下記の如くの動作をする。
【0025】図13の(1)は1入力命令が与えられた
場合を示し、ハッシュメモリ601の内容を何ら更新す
ることなく1オペランドデータがそのまま出力される。
図13の(2)〜(7)は2入力命令が与えられた場合
を示し、データを出力するか否かは各種の条件により定
まる。(2)はハッシュメモリ601の入力パケットに
より定められたハッシュアドレスにデータが格納されて
おり(PB=1)、それがハッシュ衝突を起こすことが
なかった(EQ=1)場合を示す。ハッシュメモリ60
1と連想メモリ部602とに重複してデータが格納され
ることはないので、この場合、CAM201がヒットす
ることはない(HIT=0)。このとき、ライトサイク
ルにおいてはハッシュメモリ601のプレゼンスビット
PBをリセットする必要があるのでリードライト信号W
/バーR・H=1,セット信号S/バーR=0とする。
連想メモリ部602には手を加える必要がないので、リ
ードライト信号W/バーR・C=0とする。入力された
パケットはハッシュメモリ601の内容と発火したの
で、ライトサイクルの終了と同時にデータ出力信号C1
を出力する。図13の(3)及び(4)は、ハッシュメ
モリ601に有効なデータが格納されていたが、それが
ハッシュ衝突を起こした場合を示す(PB=1,EQ=
0)。そして(3)ではCAM201でもヒットしなか
ったため(HIT=0)、入力されたデータは連想メモ
リ部602に格納され(W/バーR・C=1,S/バー
R=1)、データの出力は行われない(C1=0)。
(4)ではCAM201がヒットしたため(HIT=
1)、入力されたパケットは連想メモリ部602の内容
と発火し、出力される(C1=1)。ここでCAM20
1のプレゼンスビットPBがリセットされなければいけ
ないので、リードライト信号W/バーR・C=1,セッ
ト信号S/バーR=0とされる。(5)及び(6)はハ
ッシュメモリ601に有効なデータが格納されていなか
った場合であり(PB=0)、一致信号EQの値に意味
はない。(5)ではCAM201がヒットしなかった場
合を示し(HIT=0)、入力されたパケットはハッシ
ュメモリ601に書き込まれる(W/バーR・H=1,
S/バーR=1,C1=0)。(6)ではCAM201
がヒットしており、(4)と同様な操作を行う。また、
(7)はハッシュメモリ601に有効なデータが格納さ
れていたが、それがハッシュ衝突を起こし(PB=1,
EQ=0)、連想メモリ部602に格納する必要が生じ
たが、CAM201が満杯となり全アドレスが有効とな
った場合(FL=1)を示し、入力されたパケットはF
IFOメモリ611に所定時間バッファリングされる
(WRF=1)。図13を参照して上述した動作は全て
ライトサイクルにおけるものであり、ライトサイクル以
外の動作ではリードライト信号W/バーR・H,W/バ
ーR・Cは常に“0”となっている。
場合を示し、ハッシュメモリ601の内容を何ら更新す
ることなく1オペランドデータがそのまま出力される。
図13の(2)〜(7)は2入力命令が与えられた場合
を示し、データを出力するか否かは各種の条件により定
まる。(2)はハッシュメモリ601の入力パケットに
より定められたハッシュアドレスにデータが格納されて
おり(PB=1)、それがハッシュ衝突を起こすことが
なかった(EQ=1)場合を示す。ハッシュメモリ60
1と連想メモリ部602とに重複してデータが格納され
ることはないので、この場合、CAM201がヒットす
ることはない(HIT=0)。このとき、ライトサイク
ルにおいてはハッシュメモリ601のプレゼンスビット
PBをリセットする必要があるのでリードライト信号W
/バーR・H=1,セット信号S/バーR=0とする。
連想メモリ部602には手を加える必要がないので、リ
ードライト信号W/バーR・C=0とする。入力された
パケットはハッシュメモリ601の内容と発火したの
で、ライトサイクルの終了と同時にデータ出力信号C1
を出力する。図13の(3)及び(4)は、ハッシュメ
モリ601に有効なデータが格納されていたが、それが
ハッシュ衝突を起こした場合を示す(PB=1,EQ=
0)。そして(3)ではCAM201でもヒットしなか
ったため(HIT=0)、入力されたデータは連想メモ
リ部602に格納され(W/バーR・C=1,S/バー
R=1)、データの出力は行われない(C1=0)。
(4)ではCAM201がヒットしたため(HIT=
1)、入力されたパケットは連想メモリ部602の内容
と発火し、出力される(C1=1)。ここでCAM20
1のプレゼンスビットPBがリセットされなければいけ
ないので、リードライト信号W/バーR・C=1,セッ
ト信号S/バーR=0とされる。(5)及び(6)はハ
ッシュメモリ601に有効なデータが格納されていなか
った場合であり(PB=0)、一致信号EQの値に意味
はない。(5)ではCAM201がヒットしなかった場
合を示し(HIT=0)、入力されたパケットはハッシ
ュメモリ601に書き込まれる(W/バーR・H=1,
S/バーR=1,C1=0)。(6)ではCAM201
がヒットしており、(4)と同様な操作を行う。また、
(7)はハッシュメモリ601に有効なデータが格納さ
れていたが、それがハッシュ衝突を起こし(PB=1,
EQ=0)、連想メモリ部602に格納する必要が生じ
たが、CAM201が満杯となり全アドレスが有効とな
った場合(FL=1)を示し、入力されたパケットはF
IFOメモリ611に所定時間バッファリングされる
(WRF=1)。図13を参照して上述した動作は全て
ライトサイクルにおけるものであり、ライトサイクル以
外の動作ではリードライト信号W/バーR・H,W/バ
ーR・Cは常に“0”となっている。
【0026】これらの動作で発火することが判明したパ
ケット及びデータはデータ対形成器607に送られ、オ
ペランド対パケットが形成されて出力される。このよう
にマッチングメモリ部MMにハッシュメモリ601と連
想メモリ部602とを併用し、両者の読み出しを同時に
行うことにより、ハッシュ衝突の如何に拘らず同じ速度
で処理ができ、制御も図13に示した如く簡潔に行え
る。
ケット及びデータはデータ対形成器607に送られ、オ
ペランド対パケットが形成されて出力される。このよう
にマッチングメモリ部MMにハッシュメモリ601と連
想メモリ部602とを併用し、両者の読み出しを同時に
行うことにより、ハッシュ衝突の如何に拘らず同じ速度
で処理ができ、制御も図13に示した如く簡潔に行え
る。
【0027】
【発明が解決しようとする課題】以上のように従来、ハ
ッシュメモリを用いたマッチングメモリでは、ハッシュ
衝突時のパケットの待避領域として連想メモリを用い、
かつデータ検索時にはハッシュメモリと連想メモリを同
時にアクセスすることにより、高速なデータ検索を可能
としていた。しかしながら、ハッシュメモリの物理的な
不良に対しては何の対策もなされていなかった。すなわ
ち、ハッシュメモリ上のあるワードに製造工程上の問題
等で1ビットでもビット不良が生じたときには、そのビ
ットを含むワードが不良アドレスとなって使用できず、
不良チップとして処分されるので、ハッシュメモリの歩
留まりが低下する。半導体メモリでは、製造工程におけ
るビット不良発生は避けがたい問題であり、これに起因
する歩留まり低下は重要な問題となっている。特に、図
3に示したデータ駆動形マイクロプロセッサのようなV
LSIチップの場合は、その影響が非常に大きい。
ッシュメモリを用いたマッチングメモリでは、ハッシュ
衝突時のパケットの待避領域として連想メモリを用い、
かつデータ検索時にはハッシュメモリと連想メモリを同
時にアクセスすることにより、高速なデータ検索を可能
としていた。しかしながら、ハッシュメモリの物理的な
不良に対しては何の対策もなされていなかった。すなわ
ち、ハッシュメモリ上のあるワードに製造工程上の問題
等で1ビットでもビット不良が生じたときには、そのビ
ットを含むワードが不良アドレスとなって使用できず、
不良チップとして処分されるので、ハッシュメモリの歩
留まりが低下する。半導体メモリでは、製造工程におけ
るビット不良発生は避けがたい問題であり、これに起因
する歩留まり低下は重要な問題となっている。特に、図
3に示したデータ駆動形マイクロプロセッサのようなV
LSIチップの場合は、その影響が非常に大きい。
【0028】この発明は上記のような問題点を解決する
ためになされたもので、ハッシュメモリの不良による歩
留まり低下を抑えることができる記憶装置を得ることを
目的とする。
ためになされたもので、ハッシュメモリの不良による歩
留まり低下を抑えることができる記憶装置を得ることを
目的とする。
【0029】
【課題を解決するための手段】この発明は、ハッシュメ
モリを用いると共に、ハッシュ衝突時の待避領域を備え
た記憶装置において、上記ハッシュメモリ内に存在する
不良アドレスを記憶する記憶手段と、上記ハッシュメモ
リをアクセスするハッシュアドレスと上記記憶手段に記
憶された不良アドレスを比較する比較手段と、この比較
結果に基づきハッシュアドレスが不良アドレスと一致す
るときはハッシュ衝突が生じたものと見做す制御手段と
を備えたものである。
モリを用いると共に、ハッシュ衝突時の待避領域を備え
た記憶装置において、上記ハッシュメモリ内に存在する
不良アドレスを記憶する記憶手段と、上記ハッシュメモ
リをアクセスするハッシュアドレスと上記記憶手段に記
憶された不良アドレスを比較する比較手段と、この比較
結果に基づきハッシュアドレスが不良アドレスと一致す
るときはハッシュ衝突が生じたものと見做す制御手段と
を備えたものである。
【0030】
【作用】この発明においては、ハッシュアドレスが不良
アドレスを示すときはハッシュ衝突が生じたものと見做
して、ハッシュメモリに対するアクセスを禁止し、従来
からあるハッシュ衝突時の待避領域をアクセスするよう
制御する。従って、半導体製造時に生じたメモリ不良が
1ハッシュアドレス,あるいは2〜3のハッシュアドレ
ス以内の領域に納まっていれば、これを直ちに不良チッ
プとせずに済み、ハッシュメモリの不良による歩留まり
低下を抑えることができる。
アドレスを示すときはハッシュ衝突が生じたものと見做
して、ハッシュメモリに対するアクセスを禁止し、従来
からあるハッシュ衝突時の待避領域をアクセスするよう
制御する。従って、半導体製造時に生じたメモリ不良が
1ハッシュアドレス,あるいは2〜3のハッシュアドレ
ス以内の領域に納まっていれば、これを直ちに不良チッ
プとせずに済み、ハッシュメモリの不良による歩留まり
低下を抑えることができる。
【0031】
【実施例】以下、この発明の一実施例を図について説明
する。図1は、本発明を図6に示した従来のマッチング
メモリ部MMに適用した一実施例を示すブロック図であ
り、同一符号を付した部分は重複するのでその説明は省
略する。図において、1は製造時のアセンブリテストや
システム立ち上げ時のセルフテスト等で既知の不良アド
レスを格納するためのNG(不良)レジスタ(記憶手
段)であり、ここでは、ハッシュアドレスと同一ビット
幅の不良アドレスを格納するための9ビットの他に、不
良ビットが存在する場合は“1”,存在しない場合は
“0”が設定される1ビットを最上位ビット(MSB)
に有する計10ビットからなる。2は上記NGレジスタ
1に格納された不良アドレス9ビットと演算器101に
より生成されたハッシュアドレス9ビットをビット単位
に比較して、両者が一致するか否かを検出する不良検出
器(比較手段)であり、それぞれ対応するビットが入力
される9個のEXOR(排他的論理和)ゲートと、それ
らの出力が入力されるNORゲートから実現でき、その
出力はハッシュアドレスが不良アドレスに一致するとき
は“1”、一致しないときは“0”となる。3は上記不
良検出器2の出力とNGレジスタ1のMSBが入力され
るANDゲートであり、両者が“1”のとき,すなわち
ハッシュアドレスが不良アドレスと一致し,かつ不良ビ
ットが存在したとき“1”となるNG信号が出力され、
この信号が制御部606に入力される。
する。図1は、本発明を図6に示した従来のマッチング
メモリ部MMに適用した一実施例を示すブロック図であ
り、同一符号を付した部分は重複するのでその説明は省
略する。図において、1は製造時のアセンブリテストや
システム立ち上げ時のセルフテスト等で既知の不良アド
レスを格納するためのNG(不良)レジスタ(記憶手
段)であり、ここでは、ハッシュアドレスと同一ビット
幅の不良アドレスを格納するための9ビットの他に、不
良ビットが存在する場合は“1”,存在しない場合は
“0”が設定される1ビットを最上位ビット(MSB)
に有する計10ビットからなる。2は上記NGレジスタ
1に格納された不良アドレス9ビットと演算器101に
より生成されたハッシュアドレス9ビットをビット単位
に比較して、両者が一致するか否かを検出する不良検出
器(比較手段)であり、それぞれ対応するビットが入力
される9個のEXOR(排他的論理和)ゲートと、それ
らの出力が入力されるNORゲートから実現でき、その
出力はハッシュアドレスが不良アドレスに一致するとき
は“1”、一致しないときは“0”となる。3は上記不
良検出器2の出力とNGレジスタ1のMSBが入力され
るANDゲートであり、両者が“1”のとき,すなわち
ハッシュアドレスが不良アドレスと一致し,かつ不良ビ
ットが存在したとき“1”となるNG信号が出力され、
この信号が制御部606に入力される。
【0032】本実施例は、以上のように、従来技術の図
6に示したマッチングメモリ部MMに、NGレジスタ
1,不良検出器2,ANDゲート3を付加したものであ
り、制御部606には新たにNG信号が与えられるが、
その制御内容は図2に示す真理値表の通りとなる。図1
3に示した従来のものに(8)〜(10)が追加された
形になっているが、これらは従来からの(3),
(4),(7)に示すプレゼンスビットPBが“1”で
あり、かつ一致信号EQが“0”の場合,すなわちハッ
シュ衝突時と同じである。したがって、NG信号とPB
の論理和をとるORゲート,NG信号の反転をとるNO
Tゲート,及びこの出力と一致信号EQの論理積をとる
ANDゲートからなる簡単な論理回路により実現でき
る。なお、制御部606は従来のままとし、上述したよ
うな論理回路を外部に設けて、その出力信号を各々プレ
ゼンスビットPB,一致信号EQとして制御部606に
与えるように構成することも可能である。また、NGレ
ジスタ1に1ビット余分なビットを設けて不良ビットが
存在するか否かを設定できるようにし、これと不良検出
器2の出力の論理積をとるANDゲート3を設けたの
は、アドレスの比較のみでは不良ビットがない場合にも
ハッシュアドレスの何れかがレジスタ値と一致してしま
い、使用可能な領域が1ワード分少なくなってしまう不
具合をなくすためであるが、記憶容量が大きくて1ワー
ドの減少を無視できるような場合は、これらの構成を省
略することも可能である。
6に示したマッチングメモリ部MMに、NGレジスタ
1,不良検出器2,ANDゲート3を付加したものであ
り、制御部606には新たにNG信号が与えられるが、
その制御内容は図2に示す真理値表の通りとなる。図1
3に示した従来のものに(8)〜(10)が追加された
形になっているが、これらは従来からの(3),
(4),(7)に示すプレゼンスビットPBが“1”で
あり、かつ一致信号EQが“0”の場合,すなわちハッ
シュ衝突時と同じである。したがって、NG信号とPB
の論理和をとるORゲート,NG信号の反転をとるNO
Tゲート,及びこの出力と一致信号EQの論理積をとる
ANDゲートからなる簡単な論理回路により実現でき
る。なお、制御部606は従来のままとし、上述したよ
うな論理回路を外部に設けて、その出力信号を各々プレ
ゼンスビットPB,一致信号EQとして制御部606に
与えるように構成することも可能である。また、NGレ
ジスタ1に1ビット余分なビットを設けて不良ビットが
存在するか否かを設定できるようにし、これと不良検出
器2の出力の論理積をとるANDゲート3を設けたの
は、アドレスの比較のみでは不良ビットがない場合にも
ハッシュアドレスの何れかがレジスタ値と一致してしま
い、使用可能な領域が1ワード分少なくなってしまう不
具合をなくすためであるが、記憶容量が大きくて1ワー
ドの減少を無視できるような場合は、これらの構成を省
略することも可能である。
【0033】次に動作について説明する。ハッシュメモ
リに不良ビットが存在する場合に不良ビットが含まれる
アドレスは、全アドレスに対し読み出し,書き込みテス
トを行うことによって容易に知ることが可能である。こ
こで知り得た不良アドレスは、当該ハッシュメモリを含
むシステム,ここではデータ駆動形計算機の立ち上げ時
に、図1中のNGレジスタ1に格納される。NGレジス
タ1は、前述したように、ハッシュアドレスより1ビッ
トだけ大きなビット幅を有しており、不良ビットが存在
するならば1ビット余ったビット(ここではMSBとす
る)に“1”が、それ以降の領域に不良アドレスが格納
される。不良ビットが存在しなければMSBには“0”
が格納される。システム動作中、ハッシュアドレスが不
良ビットを含むワードを指示したときNG信号が“1”
となり、それ以外ではNG=0となる。それぞれの場合
における動作は、図2に示す真理値表の通りである。す
なわち、NG=1の場合、ハッシュメモリ601は常に
ハッシュ衝突を起こしたものと見做される。言い換えれ
ば、NG=1の場合、ハッシュメモリ601の存在は無
視される。
リに不良ビットが存在する場合に不良ビットが含まれる
アドレスは、全アドレスに対し読み出し,書き込みテス
トを行うことによって容易に知ることが可能である。こ
こで知り得た不良アドレスは、当該ハッシュメモリを含
むシステム,ここではデータ駆動形計算機の立ち上げ時
に、図1中のNGレジスタ1に格納される。NGレジス
タ1は、前述したように、ハッシュアドレスより1ビッ
トだけ大きなビット幅を有しており、不良ビットが存在
するならば1ビット余ったビット(ここではMSBとす
る)に“1”が、それ以降の領域に不良アドレスが格納
される。不良ビットが存在しなければMSBには“0”
が格納される。システム動作中、ハッシュアドレスが不
良ビットを含むワードを指示したときNG信号が“1”
となり、それ以外ではNG=0となる。それぞれの場合
における動作は、図2に示す真理値表の通りである。す
なわち、NG=1の場合、ハッシュメモリ601は常に
ハッシュ衝突を起こしたものと見做される。言い換えれ
ば、NG=1の場合、ハッシュメモリ601の存在は無
視される。
【0034】従って、半導体製造時に生じたメモリ不良
が1ハッシュアドレス,あるいは2〜3のハッシュアド
レス以内の領域に納まっていれば、これを直ちに不良チ
ップとせずに済み、ハッシュメモリの不良による歩留ま
り低下を抑えることができる。なお、上記実施例では、
説明を分かり易くするためもあってメモリ不良が1ハッ
シュアドレスの場合について示したが、複数アドレスの
不良に対応可能とするには、NGレジスタ1,不良検出
器2等を複数セット設ければ良い。
が1ハッシュアドレス,あるいは2〜3のハッシュアド
レス以内の領域に納まっていれば、これを直ちに不良チ
ップとせずに済み、ハッシュメモリの不良による歩留ま
り低下を抑えることができる。なお、上記実施例では、
説明を分かり易くするためもあってメモリ不良が1ハッ
シュアドレスの場合について示したが、複数アドレスの
不良に対応可能とするには、NGレジスタ1,不良検出
器2等を複数セット設ければ良い。
【0035】また、上記実施例では、ハッシュメモリ内
に存在する不良アドレスを記憶する記憶手段としてレジ
スタを用いた場合について示したが、PROM,EPR
OM,EEPROM等の不揮発性メモリを用いることも
可能である。
に存在する不良アドレスを記憶する記憶手段としてレジ
スタを用いた場合について示したが、PROM,EPR
OM,EEPROM等の不揮発性メモリを用いることも
可能である。
【0036】更に、上記実施例では、この発明の記憶装
置をデータ駆動形計算機のマッチングメモリ部に適用し
た場合を説明したが、この発明はこれに限るものではな
く、キーワード等の識別子によりデータ検索を行う一般
的なマッチングメモリ等において、ハッシュメモリを用
いると共に、ハッシュ衝突時の待避領域を備えた記憶装
置に対して適用できることは言うまでもない。
置をデータ駆動形計算機のマッチングメモリ部に適用し
た場合を説明したが、この発明はこれに限るものではな
く、キーワード等の識別子によりデータ検索を行う一般
的なマッチングメモリ等において、ハッシュメモリを用
いると共に、ハッシュ衝突時の待避領域を備えた記憶装
置に対して適用できることは言うまでもない。
【0037】
【発明の効果】以上のように、この発明によれば、ハッ
シュメモリを用いると共に、ハッシュ衝突時の待避領域
を備えた記憶装置において、上記ハッシュメモリ内に存
在する不良アドレスを記憶する記憶手段と、上記ハッシ
ュメモリをアクセスするハッシュアドレスと上記記憶手
段に記憶された不良アドレスを比較する比較手段と、こ
の比較結果に基づきハッシュアドレスが不良アドレスと
一致するときはハッシュ衝突が生じたものと見做す制御
手段とを備えたので、ハッシュメモリの不良による歩留
まり低下を抑えることができる効果がある。
シュメモリを用いると共に、ハッシュ衝突時の待避領域
を備えた記憶装置において、上記ハッシュメモリ内に存
在する不良アドレスを記憶する記憶手段と、上記ハッシ
ュメモリをアクセスするハッシュアドレスと上記記憶手
段に記憶された不良アドレスを比較する比較手段と、こ
の比較結果に基づきハッシュアドレスが不良アドレスと
一致するときはハッシュ衝突が生じたものと見做す制御
手段とを備えたので、ハッシュメモリの不良による歩留
まり低下を抑えることができる効果がある。
【図1】この発明の一実施例を示すブロック図である。
【図2】図1のマッチングメモリ部のライトサイクルの
真理値表を示す図である。
真理値表を示す図である。
【図3】データ駆動形計算機の全体構成例を示すブロッ
ク図である。
ク図である。
【図4】データ駆動形計算機で実行するプログラム(デ
ータフローグラフ)の一例を示す図である。
ータフローグラフ)の一例を示す図である。
【図5】データ駆動形計算機で図4に示すプログラムを
実行した場合のパケットの変遷を示す図である。
実行した場合のパケットの変遷を示す図である。
【図6】従来のマッチングメモリ部の構成例を示すブロ
ック図である。
ック図である。
【図7】従来のデータパケットの一例を示す図である。
【図8】従来のハッシュメモリの構成例を示す図であ
る。
る。
【図9】従来の連想メモリ部の構成例を示すブロック図
である。
である。
【図10】従来のデータ対形成器の構成例を示すブロッ
ク図である。
ク図である。
【図11】従来のマッチングメモリ部の概略動作を説明
するフローチャートである。
するフローチャートである。
【図12】従来のマッチングメモリ部の動作サイクルの
説明図である。
説明図である。
【図13】従来のマッチングメモリ部のライトサイクル
の真理値表を示す図である。
の真理値表を示す図である。
1 NGレジスタ(記憶手段) 2 不良検出器(比較手段) 3 ANDゲート 101 演算器 601 ハッシュメモリ 602 連想メモリ部 603 一致検出器 604 ヒット検出器 605 出力セレクタ 607 データ対形成器 606 制御部(制御手段)
Claims (1)
- 【特許請求の範囲】 【請求項1】 ハッシュメモリを用いると共に、ハッシ
ュ衝突時の待避領域を備えた記憶装置において、上記ハ
ッシュメモリ内に存在する不良アドレスを記憶する記憶
手段と、上記ハッシュメモリをアクセスするハッシュア
ドレスと上記記憶手段に記憶された不良アドレスを比較
する比較手段と、この比較結果に基づきハッシュアドレ
スが不良アドレスと一致するときはハッシュ衝突が生じ
たものと見做す制御手段とを備えたことを特徴とする記
憶装置。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18820991A JPH0512098A (ja) | 1991-07-02 | 1991-07-02 | 記憶装置 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP18820991A JPH0512098A (ja) | 1991-07-02 | 1991-07-02 | 記憶装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH0512098A true JPH0512098A (ja) | 1993-01-22 |
Family
ID=16219680
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP18820991A Pending JPH0512098A (ja) | 1991-07-02 | 1991-07-02 | 記憶装置 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH0512098A (ja) |
-
1991
- 1991-07-02 JP JP18820991A patent/JPH0512098A/ja active Pending
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US5359720A (en) | Taken storage apparatus using a hash memory and a cam | |
| JP2745949B2 (ja) | オペランド情報の静的および動的マスキングを同時かつ独立して行うデータ・プロセッサ | |
| EP0084114B1 (en) | Instruction prefetching data processing apparatus including a conditional branch instruction predictor | |
| US5274790A (en) | Cache memory apparatus having a plurality of accessibility ports | |
| JPS63195752A (ja) | キヤツシユメモリ− | |
| US5644748A (en) | Processor system including an index buffer circuit and a translation look-aside buffer control circuit for processor-to-processor interfacing | |
| US6226763B1 (en) | Method and apparatus for performing cache accesses | |
| KR950006590B1 (ko) | 캐시 메모리를 갖는 마이크로 프로세서 | |
| JPH05334170A (ja) | デュアルポートメモリ用制御回路 | |
| US7062617B2 (en) | Method and apparatus for satisfying load operations | |
| JPH0863975A (ja) | スタティックramおよびこのスタティックramを有する処理装置 | |
| US5249276A (en) | Address translation apparatus having a memory access privilege check capability data which uses mask data to select bit positions of priviledge | |
| JPH0512098A (ja) | 記憶装置 | |
| JPH0528291A (ja) | 記憶装置 | |
| US6879523B1 (en) | Random access memory (RAM) method of operation and device for search engine systems | |
| JPH052608A (ja) | データ検索装置 | |
| US20070186035A1 (en) | Content-addressable-memory device and method of controlling content addressable memory | |
| JPH07182165A (ja) | コミット条件付き命令の処理方法およびその装置 | |
| JP3697990B2 (ja) | ベクトル処理装置のオペランドキャッシュ | |
| JPH01235100A (ja) | 半導体記憶装置 | |
| JPS59112479A (ja) | キヤツシユメモリの高速アクセス方式 | |
| JPH0384685A (ja) | データ検索装置 | |
| JPH03229381A (ja) | データ駆動形計算機 | |
| JPH06149675A (ja) | キャッシュメモリ装置 | |
| JPH10134583A (ja) | 連想メモリ |