JP4203023B2 - 再構成可能なセマンティックプロセッサ - Google Patents
再構成可能なセマンティックプロセッサ Download PDFInfo
- Publication number
- JP4203023B2 JP4203023B2 JP2004567407A JP2004567407A JP4203023B2 JP 4203023 B2 JP4203023 B2 JP 4203023B2 JP 2004567407 A JP2004567407 A JP 2004567407A JP 2004567407 A JP2004567407 A JP 2004567407A JP 4203023 B2 JP4203023 B2 JP 4203023B2
- Authority
- JP
- Japan
- Prior art keywords
- parser
- code
- data
- symbol
- semantic code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004519 manufacturing process Methods 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 46
- 238000000034 method Methods 0.000 claims description 29
- 230000008569 process Effects 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 9
- 238000003860 storage Methods 0.000 claims description 9
- 230000010354 integration Effects 0.000 claims 1
- 230000006870 function Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 239000011159 matrix material Substances 0.000 description 4
- 238000011084 recovery Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 101100421134 Schizosaccharomyces pombe (strain 972 / ATCC 24843) sle1 gene Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000013479 data entry Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000003909 pattern recognition Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45504—Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
- G06F9/45508—Runtime interpretation or emulation, e g. emulator loops, bytecode interpretation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Devices For Executing Special Programs (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Multi Processors (AREA)
Description
RSP500の動作をよりよく例示するために、IETF RFC826に記載されているようなアドレス解決プロトコル(ARP)の実施態様に対する一例を示す。この例では、生成規則、パーサ表エントリ、及び受け取られたARPパケットを処理するsコードの機能的実体の作成を行う。
$MAC_DA := 0X08 0X01 0X02 0X03 0X04 0X05
| 0XFF 0XFF 0XFF 0XFF 0XFF 0XFF
$MAC_SA := etherAddType {s0: mct->curr_SA = MAC_SA}
$MAC_PAYLOAD := 0X08 ET2
$ET2 := 0X06 ARP_BODY | 0X00 IP_BODY
$ARP_BODY := ARP_HW_TYPE ARP_PROT_TYPE ARP_HW_ADD_LEN
ARP_PROT_ADD_LEN ARP_OP ARP_PADDING
$ARP_HW_TYPE := 0X0001
$ARP_PROT_TYPE := 0x0800
$ARP_HW_ADD_LEN:= 0X06
$ARP_PROT_ADD_LEN:= 0X04 0x00
$ARP_OP := 0x01 ARP_REQ_ADDR
| 0x02 ARP_REPLY_ADDR
$ARP_REQ_ADDR := ARP_SENDER_HW ARP_SENDER_PROT ARP_TARGET_HW
ARP_TARGET_PROT {s1: s-code seg1}
$ARP_REPLY_ADDR:= ARP_SENDER_HW ARP_SENDER_PROT ARP_TARGET_HW
ARP_TARGET_PROT {s2: s-code seg2}
$ARP_SENDER_HW := etherAddType
$ARP_SENDER_PROT:= ipAddType
$ARP_TARGET_HW := etherAddType
$ARP_TARGET_PROT:= ipAddType
$ARP_PADDING := octet | null {s3: calc. length; throw away}
$IP_BODY := //unresolved by this example
$MAC_FCS := octet octet octet octet {s4: check FCS}
$etherAddType := octet octet octet octet octet octet
$ipAddType := octet octet octet octet
{s-code seg1 := if ARP_TARGET_PROT == mct->myIPAddress
then generate ARP reply to mct->curr__SA;
s-code seg2}
{s-code seg2 := update mct->ArpCache with
ARP_SENDER_HW, ARP_SENDER_PROT, mct->time}
0x0010: 08 00 06 04 00 01 00 02 3F 77 6D 9E C0 A8 00 04
0x0020: 00 00 00 00 00 00 C0 A8 00 06 3A 20 33 0D 0A 53
0x0030: 54 3A 20 75 72 6E 3A 73 63 68 65 6D EF 73 84 CC
$ARP_PADDING := octet ARP_PADDING | EoFrame, (LA5)
として指定することができる。ここで(LA5)は、この規則に対する5記号の入力記号先読みを示す。規則が実行される時にDXP200が生成規則表において(X,a+5)を探索するように、先読み値を生成規則表内に符号化する。
$MAC_DA := 0X08 0X01 0X02 0X03 0X04 0X05
| 0XFF 0XFF 0XFF 0XFF 0XFF 0XFF, (LA6)
として指定することができる。各々6つの終端記号を用いて2つの生成規則52及び53を作成する代りに、パーサ表は、たとえばパーサ表位置(X,a)=(130,0x08 0x01 0x02 0x03 0x04 0x05)及び(130, 0xFF 0xFF 0xFF 0xFF 0xFF 0xFF)において、各々6つの記号に一致する2つのエントリを含む。
Claims (50)
- ネットワークパケットプロトコルによって解析されるパケットにあるデータ記号を受け取る入力ポートと、
スタック記号を格納するスタックを有し、前記受け取ったデータ記号に応じてスタック記号を処理することができる直接実行パーサと、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサによって供給される少なくとも1つの受け取ったデータ記号及びスタック記号の組合せによりインデックス付けが可能な生成規則コードが投入されることが可能なパーサ表と、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサから供給される前記生成規則コードによってインデックス付けが可能な生成規則が投入されることが可能な生成規則表と、
前記直接実行パーサによって指示されると、直接実行パーサによって指示されたマシン命令セグメントを使用してマシン命令を実行することができる第1のセマンティックコード実行エンジンと、
前記第1のセマンティックコード実行エンジンがアクセス可能であり、前記生成規則コードを用いて前記第1のセマンティックコード実行エンジンによりインデックス付けが可能なマシン命令セグメントが投入されることが可能なセマンティックコード表と、を具備するデータ処理システムであって、
前記直接実行パーサが前記受け取った少なくとも1つのデータシンボル及び前記スタックシンボルを前記パーサ表に提供する際に、前記直接実行パーサが前記パーサ表から前記生成規則コードを少なくとも1つ受け取るようになっていることを特徴とする前記データ処理システム。 - 前記直接実行パーサによって指示されると、直接実行パーサによって指示されたマシン命令を使用して、マシン命令を実行することができる第2のセマンティックコード実行エンジンをさらに具備し、前記第1のセマンティックコード実行エンジン及び第2のセマンティックコード実行エンジンは、並列マシン命令実行が可能である、請求項1に記載のデータ処理システム。
- マイクロプロセッサ及び関連するメモリを有する例外処理ユニットをさらに具備し、該例外処理ユニットは、前記第1及び第2のセマンティックコード実行エンジンのうちの少なくとも1つの要求時にタスクを実行することができる、請求項2に記載のデータ処理システム。
- 前記第1及び第2のセマンティックコード実行エンジンのうちの少なくとも1つに接続されたブロック入出力ポートをさらに具備し、該ブロック入出力ポートは、前記少なくとも1つのセマンティックコード実行エンジンの制御下でブロック入出力動作を開始することができる、請求項2に記載のデータ処理システム。
- 生成規則コードは、前記直接実行パーサが、セマンティックコード表マシン命令の対応するセグメントを任意の利用可能なセマンティックコード実行エンジンに向けることができるか否か、又は前記セグメントを特定のセマンティックコード実行エンジンに向けるべきか否かを判断することができるようにする、請求項2に記載のデータ処理システム。
- 前記直接実行パーサと前記第1のセマンティックコード実行エンジンとの間のインタフェースをさらに具備し、該インタフェースは、前記セマンティックコード実行エンジンによって指示される場合に前記直接実行パーサによるスタック記号処理を中断する能力を有する、請求項1に記載のデータ処理システム。
- 前記パーサ表、前記生成規則表及び前記セマンティックコード表は、少なくとも部分的に再プログラム可能な記憶装置に存在する、請求項1に記載のデータ処理システム。
- データパケットを処理し、各データパケットは、1つ又は複数のネットワークプロトコルに従ってフォーマットされ、前記パーサ表、前記生成規則表及び前記セマンティックコード表は、異なるネットワークプロトコルに対する構文解析をサポートするように再プログラム可能である、請求項7に記載のデータ処理システム。
- データパケットを処理している間にネットワークプロトコルを用いてパーサ表を再プログラム可能記憶装置にロードすることができる、請求項8に記載のデータ処理システム。
- データ記憶エリアに接続され前記セマンティックコード実行エンジンがアクセス可能なマシンコンテキストデータインタフェースをさらに具備し、該マシンコンテキストデータインタフェースは、前記セマンティックコード実行エンジンが発行するマシンコンテキスト命令に応答して前記データ記憶エリアを管理し且つデータ操作を実行する、請求項1に記載のデータ処理システム。
- 前記マシンコンテキストデータインタフェースは、変数マシンコンテキストデータインタフェースと、アレイマシンコンテキストデータインタフェースと、を備え、該アレイマシンコンテキストデータインタフェースは、アレイデータに対するデータ操作を管理し且つ実行することができる、請求項10に記載のデータ処理システム。
- 前記アレイマシンコンテキストデータインタフェースは、少なくとも1つのデータ記憶エリアに、前記変数マシンコンテキストデータインタフェースがアクセスする前記データ記憶エリアのデータアクセスフォーマットとは異なるデータアクセスフォーマットでアクセスする、請求項11に記載のデータ処理システム。
- 少なくとも前記直接実行パーサ、前記パーサ表及び前記生成記憶表は、マイクロプロセッサ及びその付随するメモリを構成するソフトウェアを使用して実施される、請求項1に記載のデータ処理システム。
- 前記生成規則表は、ビットマスク化された終端記号を格納することができ、各ビットマスク化された終端記号は、対応する入力記号の選択されたビットが「ドントケア」ビットであることを示すことができる、請求項1に記載のデータ処理システム。
- 前記直接実行パーサは、LL構文解析、LR構文解析、LALR構文解析及び再帰降下構文解析を含む方法群から選択される構文解析方法を実行する、請求項1に記載のデータ処理システム。
- 前記直接実行パーサは、各スタック記号に対して異なってもよい可変入力記号先読みを使用して入力記号を構文解析することができる、請求項1に記載のデータ処理システム。
- 前記可変入力記号先読みを、前記生成規則とともに前記生成規則表に値として格納することができ、前記直接実行パーサは、前記スタックに生成規則をロードする場合に前記可変入力記号先読みをロードする、請求項16に記載のデータ処理システム。
- 前記パーサ表は、スタック記号とN個までの入力記号との組合せに対応するエントリを格納することができるワードサイズを有する、2値連想メモリ又は3値連想メモリ(CAM)を備える、請求項16に記載のデータ処理システム。
- 前記直接実行パーサは、アクセス毎に前記パーサ表にN個の入力記号を提供し、各CAMエントリは、該N個の入力記号のうちのいずれが前記CAMエントリに対する探索に作用するかを確定する、請求項18に記載のデータ処理システム。
- ネットワークパケットプロトコルによって解析されるパケットにあるデータ記号を受け取る入力ポートと、
スタック記号を格納するスタックを有し、前記受け取ったデータ記号に応じてスタック記号を処理することができる直接実行パーサと、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサによって供給される少なくとも1つの受け取ったデータ記号及びスタック記号の組合せによりインデックス付けが可能な生成規則コードが投入されることが可能なパーサ表と、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサから供給される前記生成規則コードによってインデックス付けが可能な生成規則が投入されることが可能な生成規則表と、
前記直接実行パーサによって指示されると、前記直接実行パーサによって示されるマシン命令セグメントを使用してマシン命令を実行することができる第1のセマンティックコード実行エンジンと、
前記第1のセマンティックコード実行エンジンがアクセス可能であり、前記生成規則コードを用いて前記第1のセマンティックコード実行エンジンによりインデックス付けが可能なマシン命令セグメントが投入されることが可能なセマンティックコード表と、を具備する集積回路であって、
前記直接実行パーサが前記少なくとも1つの受け取ったデータシンボル及び前記スタックシンボルを前記パーサ表に提供する際に、前記直接実行パーサが前記パーサ表から前記生成規則コードを少なくとも1つ受け取るようになっていることを特徴とする前記集積回路。 - 前記直接実行パーサによって指示されると、該直接実行パーサによって示されるマシン命令を使用して、マシン命令を実行することができる第2のセマンティックコード実行エンジンをさらに具備し、前記第1のセマンティックコード実行エンジン及び第2のセマンティックコード実行エンジンは、並列マシン命令実行が可能である、請求項20に記載の集積回路。
- マイクロプロセッサを有する例外処理ユニットをさらに具備し、該例外処理ユニットは、前記第1及び第2のセマンティックコード実行エンジンのうちの少なくとも1つの要求時にプログラム可能なタスクを実行することができる、請求項21に記載の集積回路。
- 前記第1及び第2のセマンティックコード実行エンジンのうちの少なくとも1つに接続されたブロック入出力ポートをさらに具備し、該ブロック入出力ポートは、前記少なくとも1つのセマンティックコード実行エンジンの制御下でブロック入出力動作を開始することができる、請求項21に記載の集積回路。
- 生成規則コードは、前記直接実行パーサが、セマンティックコード表マシン命令の対応するセグメントを任意の利用可能なセマンティックコード実行エンジンに向けることができるか否か、又は前記セグメントを特定のセマンティックコード実行エンジンに向けるべきか否かを判断することができるようにする、請求項21に記載の集積回路。
- 前記直接実行パーサと前記第1のセマンティックコード実行エンジンとの間のインタフェースをさらに具備し、該インタフェースは、前記セマンティックコード実行エンジンによって指示される場合に前記直接実行パーサによるスタック記号処理を中断する能力を有する、請求項20に記載の集積回路。
- 前記パーサ表、生成規則表及びセマンティックコード表は、少なくとも部分的に再プログラム可能な記憶装置に存在する、請求項20に記載の集積回路。
- 前記パーサ表、生成規則表及びセマンティックコード表は、該集積回路とは別個のメモリに存在するより大きい表に対するキャッシュを含む、請求項26に記載の集積回路。
- データ記憶エリアに接続され前記セマンティックコード実行エンジンがアクセス可能なマシンコンテキストデータインタフェースをさらに具備し、該マシンコンテキストデータインタフェースは、前記セマンティックコード実行エンジンが発行するマシンコンテキスト命令に応答して前記データ記憶エリアを管理し且つデータ操作を実行する、請求項20に記載の集積回路。
- 前記データ記憶エリアは、少なくとも部分的に該集積回路に集積される、請求項28に記載の集積回路。
- 前記マシンコンテキストデータインタフェースは、変数マシンコンテキストデータインタフェースと、アレイマシンコンテキストデータインタフェースと、を備え、該アレイマシンコンテキストデータインタフェースは、アレイデータに対するデータ操作を管理し且つ実行することができる、請求項28に記載の集積回路。
- 前記アレイマシンコンテキストデータインタフェースは、少なくとも1つのデータ記憶エリアに、前記変数マシンコンテキストデータインタフェースがアクセスする前記データ記憶エリアのデータアクセスフォーマットとは異なるデータアクセスフォーマットでアクセスする、請求項30に記載の集積回路。
- ネットワークパケットプロトコルによって解析されるパケットにあるデータ記号を受け取る入力ポートと、
スタック記号を格納するスタックを有し、前記受け取ったデータ記号に応じてスタック記号を処理することができる直接実行パーサと、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサによって供給される受け取ったデータ記号及びスタック記号の組合せによりインデックス付けが可能な生成規則コードが投入されることが可能なパーサ表と、
前記直接実行パーサがアクセス可能であり、前記直接実行パーサから前記生成規則コードによってインデックス付けが可能な生成規則が投入されることが可能な生成規則表と、
各々が、前記直接実行パーサによって指示されると、直接実行パーサによって示されるマシン命令セグメントを使用してマシン命令を実行することができる、複数のセマンティックコード実行エンジンと、
前記複数のセマンティックコード実行エンジンがアクセス可能であり、前記生成規則コードを用いて前記複数のセマンティックコード実行エンジンの内の少なくとも一つによりインデックス付けが可能なマシン命令セグメントが投入されることが可能なセマンティックコード表と、
データ記憶エリアに接続可能であり且つ前記複数のセマンティックコード実行エンジンがアクセス可能であって、前記データ記憶エリアを管理し、前記複数のセマンティックコード実行エンジンが発行するマシンコンテキスト命令に応答してデータ操作を実行するマシンコンテキストデータインタフェースと、を具備する集積回路であって、
前記直接実行パーサが前記少なくとも1つの受け取ったデータシンボル及び前記スタックシンボルを前記パーサ表に提供するときに、前記直接実行パーサが前記パーサ表から前記生成規則コードを少なくとも1つ受け取るようになっていることを特徴とする前記集積回路。 - 前記複数のセマンティックコード実行エンジンと前記セマンティックコード表との間の第1のバスと、
前記複数のセマンティックコード実行エンジンと前記マシンコンテキストデータインタフェースとの間の第2のバスと、
をさらに具備する、請求項32に記載の集積回路。 - 前記データ記号に対する前記複数のセマンティックコード実行エンジンアクセスを可能にする入力バスをさらに具備する、請求項33に記載の集積回路。
- 前記直接実行パーサと前記複数のセマンティックコード実行エンジンとの間のインタフェースをさらに具備し、該インタフェースは、各セマンティックコード実行エンジンに対するステータス情報にアクセスすることができ、セマンティックコード実行エンジンの前記ステータスに基づいて前記直接実行パーサによるスタック記号処理を中断する能力を有する、請求項32に記載の集積回路。
- 前記ステータス情報は、前記複数のセマンティックコード実行エンジンに対応し且つ該対応するセマンティックコード実行エンジンが設定可能な1組のセマフォを含む、請求項35に記載の集積回路。
- ネットワークパケットプロトコルによって解析されるパケットにあるデータ記号を受け取る入力ポートと、
直接実行パーサであって、
複数のスタック記号を格納しており、前記直接実行パーサが前記受け取ったデータ記号に応じて前記スタック記号を処理することができるようになっているスタックと、
前記直接実行パーサが、生成規則コードが投入されることが可能なパーサ表にアクセスすることができるようにするパーサ表インタフェースであって、各生成規則コードは、前記直接実行パーサによって供給される受け取ったデータ記号及びスタック記号の組合せによりインデックス付けが可能であるパーサ表インタフェースと、
前記直接実行パーサが、生成規則が投入されることが可能な生成規則表にアクセスすることができるようにする生成規則表インタフェースであって、各生成規則は、前記直接実行パーサから供給される生成規則コードによってインデックス付けが可能である、生成規則表インタフェースと、
を備える直接実行パーサと、
前記直接実行パーサによって指示されると、該直接実行パーサによって示されるマシン命令セグメントを使用してマシン命令を実行することができる第1のセマンティックコード実行エンジンと、
前記第1のセマティックコード実行エンジンが、生成規則に対応するマシン命令セグメントが投入されることが可能なセマンティックコード表にアクセスすることができるようにするセマンティックコード表インタフェースと、を具備する集積回路であって、
前記直接実行パーサが前記少なくとも1つの受け取ったデータシンボル及び前記スタックシンボルを前記パーサ表に提供する際に、前記直接実行パーサが前記パーサ表インタフェースを介して前記パーサ表から前記生成規則コードを少なくとも1つ受け取るようになっていることを特徴とする前記集積回路。 - 回路上に集積される前記パーサ表、生成規則表及びセマンティックコード表の少なくとも一部をさらに備える、請求項37に記載の集積回路。
- 前記生成規則表は、ビットマスク化された終端記号を格納することができ、各ビットマスク化された終端記号は、対応する入力記号の選択されたビットが「ドントケア」ビットであることを示すことができる、請求項37に記載の集積回路。
- 前記直接実行パーサは、LL構文解析、LR構文解析、LALR構文解析及び再帰降下構文解析を含む方法群から選択される構文解析方法を実行する、請求項37に記載の集積回路。
- 前記直接実行パーサは、各スタック記号に対して異なってもよい可変入力記号先読みを使用して入力記号を構文解析することができる、請求項37に記載の集積回路。
- 前記可変入力記号先読みを、前記生成規則とともに前記生成規則表に値として格納することができ、前記直接実行パーサは、前記スタックに生成規則をロードする場合に前記可変入力記号先読みをロードする、請求項41に記載の集積回路。
- 前記パーサ表は、スタック記号とN個までの入力記号との組合せに対応するエントリを格納することができるワードサイズを有する、3値連想メモリ(CAM)を備える、請求項41に記載の集積回路。
- 前記直接実行パーサは、アクセス毎に前記パーサ表にN個の入力記号を提供し、各CAMエントリは、該N個の入力記号のうちのいずれが前記CAMエントリに対する探索に作用するかを確定する、請求項43に記載の集積回路。
- ネットワークパケットプロトコルを実施する方法であって、
該プロトコルを、各々が終端記号群及び非終端記号群から選択される少なくとも1つの記号を含む1組の構文解析可能な文法的生成規則と、実行エンジンが該生成規則の少なくともいくつかに対して実行する1組のマシンコンテキストタスクと、に分割すること、
各生成規則に対し非終端記号及び生成規則コードを割り当てること、
前記文法的生成規則を、生成規則コードによってインデックス付けが可能な生成規則メモリ内のマシン格納可能フォーマットで編成すること、
前記マシンコンテキストタスクを、前記対応する生成規則に関連する前記生成規則コードを有する前記実行エンジンによってインデックス付けが可能なセマンティックコードメモリ内の実行エンジン命令コードフォーマットで編成すること、及び
生成規則コードのパーサ表を、前記ネットワークパケットプロトコルによって構文解析されるパケットに現れる非終端記号及び少なくとも1つの記号の組合せによってインデックス付けが可能なマシン格納可能フォーマットで生成すること
を含むネットワークパケットプロトコルを実施する方法。 - 前記マシン格納可能フォーマット生成規則において前記記号に接頭コードを添付することをさらに含み、該接頭コードは、各記号が終端記号であるか非終端記号であるかを示す、請求項45に記載のネットワークパケットプロトコルを実施する方法。
- 前記接頭コードはさらに、終端記号が、それが対にされる任意のネットワークパケットプロトコル記号と一致することができるか否かを示す、請求項46に記載のネットワークパケットプロトコルを実施する方法。
- 少なくとも1つの終端記号に対し、その記号にビットマスクを割り当てること、及び該ビットマスクをその記号を含む前記生成規則とともに格納すること、をさらに含む、請求項45に記載のネットワークパケットプロトコルを実施する方法。
- 非終端記号と複数の入力記号との組合せに基づいて少なくともいくつかのインデックスを前記パーサ表に設定することをさらに含む、請求項45に記載のネットワークパケットプロトコルを実施する方法。
- 前記パーサ表の各インデックスは、N個のインデックス位置におけるN個までの入力記号に基づくことができ、少なくともいくつかのインデックスを前記パーサ表に設定することは、各インデックスに対し、1〜Nのインデックス位置を使用すること、及び該インデックス位置の残りがある場合は該インデックス位置の残りを「ドントケア」状態に設定することを含む、請求項49に記載のネットワークパケットプロトコルを実施する方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/351,030 US7130987B2 (en) | 2003-01-24 | 2003-01-24 | Reconfigurable semantic processor |
PCT/US2003/036225 WO2004068271A2 (en) | 2003-01-24 | 2003-11-12 | A reconfigurable semantic processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006513667A JP2006513667A (ja) | 2006-04-20 |
JP4203023B2 true JP4203023B2 (ja) | 2008-12-24 |
Family
ID=32735705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004567407A Expired - Fee Related JP4203023B2 (ja) | 2003-01-24 | 2003-11-12 | 再構成可能なセマンティックプロセッサ |
Country Status (9)
Country | Link |
---|---|
US (2) | US7130987B2 (ja) |
EP (1) | EP1590744A4 (ja) |
JP (1) | JP4203023B2 (ja) |
KR (1) | KR20050106591A (ja) |
CN (1) | CN1742272A (ja) |
AU (1) | AU2003290817A1 (ja) |
CA (1) | CA2513097A1 (ja) |
TW (1) | TWI239475B (ja) |
WO (1) | WO2004068271A2 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7415596B2 (en) * | 2003-01-24 | 2008-08-19 | Gigafin Networks, Inc. | Parser table/production rule table configuration using CAM and SRAM |
WO2004081761A2 (en) * | 2003-03-12 | 2004-09-23 | Sensory Networks Inc. | Apparatus and method for memory efficient, programmable, pattern matching finite state machine hardware |
US7751440B2 (en) * | 2003-12-04 | 2010-07-06 | Intel Corporation | Reconfigurable frame parser |
US7219319B2 (en) * | 2004-03-12 | 2007-05-15 | Sensory Networks, Inc. | Apparatus and method for generating state transition rules for memory efficient programmable pattern matching finite state machine hardware |
US20050223369A1 (en) * | 2004-03-31 | 2005-10-06 | Intel Corporation | Method and system for programming a reconfigurable processing element |
US7251722B2 (en) * | 2004-05-11 | 2007-07-31 | Mistletoe Technologies, Inc. | Semantic processor storage server architecture |
JP2008509484A (ja) * | 2004-08-05 | 2008-03-27 | ミスルトウ テクノロジーズ, インコーポレイテッド | セマンティックプロセッサ内のデータコンテキスト切り替え |
US20070027991A1 (en) * | 2005-07-14 | 2007-02-01 | Mistletoe Technologies, Inc. | TCP isolation with semantic processor TCP state machine |
US20070022275A1 (en) * | 2005-07-25 | 2007-01-25 | Mistletoe Technologies, Inc. | Processor cluster implementing conditional instruction skip |
US8387029B2 (en) * | 2005-07-25 | 2013-02-26 | Hercules Software, Llc | Direct execution virtual machine |
KR100697536B1 (ko) | 2005-11-08 | 2007-03-20 | 전자부품연구원 | TV-Anytime 서비스에서 get_Data 오퍼레이션을 이용한 사용자 정보 기초 검색 방법 |
KR100681199B1 (ko) * | 2006-01-11 | 2007-02-09 | 삼성전자주식회사 | 코어스 그레인 어레이에서의 인터럽트 처리 방법 및 장치 |
US20080022401A1 (en) * | 2006-07-21 | 2008-01-24 | Sensory Networks Inc. | Apparatus and Method for Multicore Network Security Processing |
US8117530B2 (en) * | 2007-02-19 | 2012-02-14 | International Business Machines Corporation | Extensible markup language parsing using multiple XML parsers |
US9424339B2 (en) | 2008-08-15 | 2016-08-23 | Athena A. Smyros | Systems and methods utilizing a search engine |
US9286892B2 (en) | 2014-04-01 | 2016-03-15 | Google Inc. | Language modeling in speech recognition |
CN110737628A (zh) * | 2019-10-17 | 2020-01-31 | 辰芯科技有限公司 | 一种可重构处理器和可重构处理器系统 |
CN114679504B (zh) * | 2022-05-27 | 2022-09-06 | 成都数联云算科技有限公司 | Udp报文解析方法、装置及计算机设备 |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4837735A (en) * | 1987-06-09 | 1989-06-06 | Martin Marietta Energy Systems, Inc. | Parallel machine architecture for production rule systems |
US5193192A (en) * | 1989-12-29 | 1993-03-09 | Supercomputer Systems Limited Partnership | Vectorized LR parsing of computer programs |
US5487147A (en) * | 1991-09-05 | 1996-01-23 | International Business Machines Corporation | Generation of error messages and error recovery for an LL(1) parser |
US5805808A (en) * | 1991-12-27 | 1998-09-08 | Digital Equipment Corporation | Real time parser for data packets in a communications network |
US5632034A (en) * | 1993-06-01 | 1997-05-20 | International Business Machines Corporation | Controlling method invocation sequence through virtual functions in an object-oriented class library |
US5581696A (en) * | 1995-05-09 | 1996-12-03 | Parasoft Corporation | Method using a computer for automatically instrumenting a computer program for dynamic debugging |
US5793954A (en) * | 1995-12-20 | 1998-08-11 | Nb Networks | System and method for general purpose network analysis |
US6493761B1 (en) * | 1995-12-20 | 2002-12-10 | Nb Networks | Systems and methods for data processing using a protocol parsing engine |
US6034963A (en) * | 1996-10-31 | 2000-03-07 | Iready Corporation | Multiple network protocol encoder/decoder and data processor |
US5916305A (en) * | 1996-11-05 | 1999-06-29 | Shomiti Systems, Inc. | Pattern recognition in data communications using predictive parsers |
JP2000514944A (ja) * | 1997-05-08 | 2000-11-07 | アイレディー コーポレイション | オブジェクト指向プログラミング言語のためのハードウェア加速器 |
US6330659B1 (en) * | 1997-11-06 | 2001-12-11 | Iready Corporation | Hardware accelerator for an object-oriented programming language |
US6122757A (en) * | 1997-06-27 | 2000-09-19 | Agilent Technologies, Inc | Code generating system for improved pattern matching in a protocol analyzer |
US5991539A (en) * | 1997-09-08 | 1999-11-23 | Lucent Technologies, Inc. | Use of re-entrant subparsing to facilitate processing of complicated input data |
US6341130B1 (en) * | 1998-02-09 | 2002-01-22 | Lucent Technologies, Inc. | Packet classification method and apparatus employing two fields |
US6208649B1 (en) * | 1998-03-11 | 2001-03-27 | Cisco Technology, Inc. | Derived VLAN mapping technique |
US6119215A (en) * | 1998-06-29 | 2000-09-12 | Cisco Technology, Inc. | Synchronization and control system for an arrayed processing engine |
US6145073A (en) * | 1998-10-16 | 2000-11-07 | Quintessence Architectures, Inc. | Data flow integrated circuit architecture |
US6356950B1 (en) * | 1999-01-11 | 2002-03-12 | Novilit, Inc. | Method for encoding and decoding data according to a protocol specification |
US6763499B1 (en) * | 1999-07-26 | 2004-07-13 | Microsoft Corporation | Methods and apparatus for parsing extensible markup language (XML) data streams |
US6549916B1 (en) * | 1999-08-05 | 2003-04-15 | Oracle Corporation | Event notification system tied to a file system |
US6772413B2 (en) * | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
US6985964B1 (en) * | 1999-12-22 | 2006-01-10 | Cisco Technology, Inc. | Network processor system including a central processor and at least one peripheral processor |
US6892237B1 (en) * | 2000-03-28 | 2005-05-10 | Cisco Technology, Inc. | Method and apparatus for high-speed parsing of network messages |
US6952666B1 (en) * | 2000-07-20 | 2005-10-04 | Microsoft Corporation | Ranking parser for a natural language processing system |
JP3690730B2 (ja) * | 2000-10-24 | 2005-08-31 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 構造回復システム、構文解析システム、変換システム、コンピュータ装置、構文解析方法、及び記憶媒体 |
US20020116527A1 (en) * | 2000-12-21 | 2002-08-22 | Jin-Ru Chen | Lookup engine for network devices |
US20020083331A1 (en) * | 2000-12-21 | 2002-06-27 | 802 Systems, Inc. | Methods and systems using PLD-based network communication protocols |
US7379475B2 (en) * | 2002-01-25 | 2008-05-27 | Nvidia Corporation | Communications processor |
US8218555B2 (en) * | 2001-04-24 | 2012-07-10 | Nvidia Corporation | Gigabit ethernet adapter |
US6587750B2 (en) * | 2001-09-25 | 2003-07-01 | Intuitive Surgical, Inc. | Removable infinite roll master grip handle and touch sensor for robotic surgery |
US6920154B1 (en) * | 2001-12-17 | 2005-07-19 | Supergate Technology Usa, Inc. | Architectures for a modularized data optimization engine and methods therefor |
US7535913B2 (en) * | 2002-03-06 | 2009-05-19 | Nvidia Corporation | Gigabit ethernet adapter supporting the iSCSI and IPSEC protocols |
US7426634B2 (en) * | 2003-04-22 | 2008-09-16 | Intruguard Devices, Inc. | Method and apparatus for rate based denial of service attack detection and prevention |
-
2003
- 2003-01-24 US US10/351,030 patent/US7130987B2/en not_active Expired - Fee Related
- 2003-11-12 EP EP03783401A patent/EP1590744A4/en not_active Withdrawn
- 2003-11-12 JP JP2004567407A patent/JP4203023B2/ja not_active Expired - Fee Related
- 2003-11-12 AU AU2003290817A patent/AU2003290817A1/en not_active Abandoned
- 2003-11-12 KR KR1020057013618A patent/KR20050106591A/ko not_active Application Discontinuation
- 2003-11-12 CA CA002513097A patent/CA2513097A1/en not_active Abandoned
- 2003-11-12 CN CNA2003801092138A patent/CN1742272A/zh active Pending
- 2003-11-12 WO PCT/US2003/036225 patent/WO2004068271A2/en active Application Filing
- 2003-11-25 TW TW092133053A patent/TWI239475B/zh not_active IP Right Cessation
-
2006
- 2006-08-31 US US11/469,342 patent/US20070083858A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
WO2004068271A3 (en) | 2005-02-10 |
US7130987B2 (en) | 2006-10-31 |
CA2513097A1 (en) | 2004-08-12 |
CN1742272A (zh) | 2006-03-01 |
KR20050106591A (ko) | 2005-11-10 |
US20070083858A1 (en) | 2007-04-12 |
US20040148415A1 (en) | 2004-07-29 |
EP1590744A2 (en) | 2005-11-02 |
TW200419443A (en) | 2004-10-01 |
AU2003290817A8 (en) | 2004-08-23 |
TWI239475B (en) | 2005-09-11 |
EP1590744A4 (en) | 2007-12-05 |
WO2004068271A2 (en) | 2004-08-12 |
AU2003290817A1 (en) | 2004-08-23 |
JP2006513667A (ja) | 2006-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20070083858A1 (en) | Reconfigurable semantic processor | |
US7529746B2 (en) | Search circuit having individually selectable search engines | |
US7478223B2 (en) | Symbol parsing architecture | |
US7644080B2 (en) | Method and apparatus for managing multiple data flows in a content search system | |
US7539032B2 (en) | Regular expression searching of packet contents using dedicated search circuits | |
US7624105B2 (en) | Search engine having multiple co-processors for performing inexact pattern search operations | |
US9916145B2 (en) | Utilizing special purpose elements to implement a FSM | |
US7539031B2 (en) | Inexact pattern searching using bitmap contained in a bitcheck command | |
US7464254B2 (en) | Programmable processor apparatus integrating dedicated search registers and dedicated state machine registers with associated execution hardware to support rapid application of rulesets to data | |
US20050281281A1 (en) | Port input buffer architecture | |
JP2005537592A (ja) | データ内のパターンの高速文脈サーチ及び特徴付けを実行するためのプログラム可能な規則処理装置 | |
US20060259508A1 (en) | Method and apparatus for detecting semantic elements using a push down automaton | |
US20070043871A1 (en) | Debug non-terminal symbol for parser error handling | |
JP2006505043A (ja) | ハードウェアパーサアクセラレータ | |
US11861171B2 (en) | High-throughput regular expression processing with capture using an integrated circuit | |
US11983122B2 (en) | High-throughput regular expression processing with path priorities using an integrated circuit | |
US12014072B2 (en) | High-throughput regular expression processing using an integrated circuit | |
WO2008036501A2 (en) | Regular expression searching of packet contents using dedicated search circuits |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080122 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080212 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080428 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080508 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080611 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080618 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20080708 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20080715 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080812 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20080909 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20081009 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111017 Year of fee payment: 3 |
|
LAPS | Cancellation because of no payment of annual fees |