WO2009119802A1 - Structure de données intramémoire d’automate fini, mémoire stockant des données avec la structure, et automate fini exécutant un appareil utilisant la mémoire - Google Patents

Structure de données intramémoire d’automate fini, mémoire stockant des données avec la structure, et automate fini exécutant un appareil utilisant la mémoire Download PDF

Info

Publication number
WO2009119802A1
WO2009119802A1 PCT/JP2009/056280 JP2009056280W WO2009119802A1 WO 2009119802 A1 WO2009119802 A1 WO 2009119802A1 JP 2009056280 W JP2009056280 W JP 2009056280W WO 2009119802 A1 WO2009119802 A1 WO 2009119802A1
Authority
WO
WIPO (PCT)
Prior art keywords
bit
common part
circuit
address
value
Prior art date
Application number
PCT/JP2009/056280
Other languages
English (en)
Japanese (ja)
Inventor
友洋 米田
哲朗 佐藤
文法 河口
Original Assignee
大学共同利用機関法人情報・システム研究機構
株式会社ノディック
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 大学共同利用機関法人情報・システム研究機構, 株式会社ノディック filed Critical 大学共同利用機関法人情報・システム研究機構
Priority to JP2010505832A priority Critical patent/JP5063780B2/ja
Publication of WO2009119802A1 publication Critical patent/WO2009119802A1/fr

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition

Definitions

  • the present invention relates to an in-memory data structure of a finite automaton that transits to the next state based on a current state and an input character, a memory in which data of this structure is stored, and a finite automaton executing device using this memory, for example, a virus In-memory data structure of finite automaton used for scanning, mail filtering, URL filtering, XML file parsing, data mining, text mining, packet routing, gene analysis, compiler, sentence grammar analysis or information retrieval, etc. And a finite automaton execution apparatus using the memory.
  • Virus scan is a variable length pattern search process called signature, and it is said that there are about 100,000 types of signatures with an average of 100 to 150 bytes.
  • the pattern matching in this search can be performed using a finite automaton.
  • a finite automaton the next state is determined by the current state and input characters (input symbol), and this is repeated to detect a keyword (pattern).
  • a character is, for example, 1 byte, and a pattern matching process of which one of a large number of signatures as keywords is included in a character string (a string of symbols) is represented by one finite automaton. (Aho-Corasick method).
  • “character” is an arbitrary code having a predetermined bit length.
  • FIG. 1 The upper part of FIG. 1 shows a state where a finite automaton is stored in a normal memory.
  • the leftmost column is the base address BADDR in hexadecimal notation, excluding the lower 8 bits, and indicates the state number.
  • a blank field stores a base address of a FAILURE transition destination, for example, a base address indicating an initial state.
  • the FAILURE transition destination is common to each row.
  • the next state (GOTO transition destination) other than the blank is several entries out of 256 entries, the storage efficiency of GOTO transition is extremely low, and a normal memory is not practical when the number of keywords is large.
  • CAM Content Addressable Memory
  • the CAM memory is configured to output a matching address by comparing the set of the current state BADDR and the input character IS with each of all the stored contents, so that the power consumption is relatively large, and the chip area is reduced. Memory density is low and expensive.
  • Non-Patent Document 1 a 256-bit bitmap is used for a 1-byte input character, each bit is associated with a GOTO transition character, and the bit at the position corresponding to the input character on the bitmap is If it is '0', it is determined as a FAILURE transition, and if it is '1', it is determined as a GOTO transition.
  • the set bits before the bit position are counted, and the value is obtained from a single pointer (base address). It is disclosed that a transition is made to the next state as an offset address (relative address) and such a data structure is stored in the SRAM.
  • relative address function determination information information for determining a function of a relative address with respect to an input character.
  • the object of the present invention is to store a data structure in memory of a finite automaton that can reduce the number of bits of relative address function determination information and increase storage efficiency, and data of this structure.
  • Another object of the present invention is to provide a finite automaton execution device using this memory.
  • Another object of the present invention is to reduce the number of bits of the relative address function determination information to increase the storage efficiency and to enable high-speed processing, and the in-memory data structure of the finite automaton.
  • An object of the present invention is to provide a stored memory and a finite automaton execution device using the memory.
  • the current / next state information including the base address indicating the current state and the relative address function determination information to the next state, which is stored in one word, is input to the relative address function determination information when the input character is GOTO transition
  • the input character is a common part match determination information for determining whether or not the common part of the character set is coincident and a non-common part that is a part obtained by removing at least the common part from the GOTO transition character set.
  • Non-common part presence / absence information for determining whether or not to include, It has next current / next state information stored in one word of an address corresponding to the sum or difference of the relative address determined by the input character and the relative address function determination information and the base address.
  • the common part match determination information Since the common part presence / absence information is independent of each other, the number of base addresses reduced by the common part match determination information can be further reduced by the non-common part presence / absence information, that is, the transition information storage efficiency is increased. As a result, it is possible to provide an automaton execution device including a large amount of GOTO transition information at low cost by using a normal memory such as SDRAM or SRAM without using an expensive memory such as a CAM memory. There is an effect.
  • the number of base addresses indicating the next state to be stored can be halved, so that the number of bits of non-common part presence / absence information can be reduced. This has the effect of reducing the number of bits and increasing the storage efficiency of this information.
  • the input character includes at least one of the common part match determination information for determining whether or not it is satisfied and at least a non-common part that is a part of the GOTO transition character set excluding the common part.
  • Non-common part presence / absence information, and the bit length of the non-common part presence / absence information is higher when the address mode indicates the relative base address. Greater than when shown the less, It has next current / next state information stored in one word of an address corresponding to the sum or difference of the relative address determined by the input character and the relative address function determination information and the base address.
  • the base address is used as a read address.
  • the bit length of the non-common part presence / absence information is shortened by converting it into a relative address, the storage efficiency of the current / next state information can be increased, and the above-described effect can be achieved.
  • the effect of the first aspect is also achieved.
  • the common part match determination information for determining whether or not the input character matches the common part of the GOTO transition character set stored in the base address indicating the current state and at least the common character from the GOTO transition character set
  • Relative address function determination information including non-common part presence / absence information for determining whether or not the input character includes any non-common part that is a part excluding the part;
  • the number of base addresses indicating the next state to be stored can be halved each time the common part increases by 1 bit regardless of the bit position of the common part of the GOTO transition character set, and the common part matches. Since the determination information and the non-common part presence / absence information are independent from each other, the number of base addresses reduced by the common part match determination information can be further reduced by the non-common part presence / absence information, that is, the storage efficiency of transition information Thus, it is possible to provide an automaton execution device including a large amount of GOTO transition information at low cost by using a normal memory such as SDRAM or SRAM without using an expensive memory such as a CAM memory. There is an effect that becomes possible.
  • the number of base addresses indicating the next state to be stored can be halved, so that the number of bits of non-common part presence / absence information can be reduced. This has the effect of reducing the number of bits and increasing the storage efficiency of this information.
  • a memory for storing information on the data structure of the first aspect of the in-memory data structure of the finite automaton; Based on the input character and the relative address function determination information included in the current / next state information read from the specified address of the memory, a relative address for obtaining a relative address with respect to the base address included in the current / next state information is obtained.
  • An address calculating means A memory which repeats the process of designating an address corresponding to the sum or difference of the read base address and the obtained relative address to the memory and reading the next current / next state information Read control means.
  • a memory for storing information on the data structure of the second aspect of the in-memory data structure of the finite automaton; Based on the input character and the relative address function determination information included in the current / next state information read from the specified address of the memory, the base address included in the current / next state information or relative to the relative base address A relative address calculating means for obtaining an address; An address corresponding to the sum of the read base address and the determined relative address, or an address corresponding to the sum of the read relative base address, the read address, and the determined relative address, Memory read control means for repeating the process of designating the memory and reading the next current / next state information.
  • a memory for storing information on the data structure of the third aspect of the in-memory data structure of the finite automaton;
  • Relative address calculation means for obtaining a relative address based on the input character and relative address function determination information read from the designated address of the memory; By designating an address corresponding to the sum or difference of the designated address and the relative address to the memory, the base address indicating the next state is read, and then the base address indicating the next state is designated.
  • a memory read control means for repeating the process of reading the next relative address function determination information.
  • FIG. 5 is a state transition diagram for explaining the in-memory data structure of the finite automaton according to the first embodiment of the present invention.
  • a solid arrow indicates a GOTO transition
  • a binary code attached to the arrow indicates a GOTO transition character
  • a dotted arrow indicates a FAILURE transition
  • “other” indicates an arbitrary character other than the GOTO transition character
  • ANY indicates an arbitrary character.
  • FIG. 6 (A) shows only the transition from state 0 in FIG. 5 extracted.
  • the transition character corresponds to the values 02 and FF of the lower address LA in which the states 1 and 3 are stored.
  • Conventionally, of the 256 bytes in the row of BADDR A88, only 3 bytes store the GOTO transition destination, and the other stores the common FAILURE transition destination.
  • two independent information amount reduction methods are used in order to reduce a common FAILURE transition destination storage area for each row (state).
  • the first information amount reduction method uses the common part coincidence determination information CMNINFO shown in FIG. 6B.
  • This common part coincidence determination information CMNINFO is composed of a mask MASK and a common CMN. It is created as described below based on a set of characters that transition from state to GOTO, and its bit length is equal to that of the input character IS.
  • Each bit of the mask MASK is “1” if the corresponding bit of each GOTO transition character is a common value, and “0” otherwise. If the i-th bit from the lower order of the binary code is called the i-th bit and the lowest-order bit is called the 0th bit, the third, fourth and seventh bits are common values in the case of FIG. 6B.
  • the common CMN indicates the common value at the position corresponding to the set bit (bit “1”) in the mask MASK, and the bit value of the common CMN corresponding to the reset bit of the mask MASK is “0”. Yes.
  • the second, third and seventh bits of the common CMN indicate that the common values are ‘0’, ‘0’ and ‘1’, respectively.
  • the common part match determination information CMNINFO is a four-valued set of bits corresponding to the mask MASK and the common CMN.
  • the four values corresponding to the set bits of the mask MASK are equal to the binary value of the common CMN, and the mask MASK.
  • the four values corresponding to the reset bits are indicated by “ ⁇ ”. That is, when the mask MASK is “10001100” and the common CMN is “10000000”, the common part match determination information CMNINFO is represented as “1 --- 00--”.
  • FIG. 6C shows a set of the common part match determination information CMNINFO and the non-common part bitmap BITMAP stored in the memory word address A0 as the relative address function determination information RAFDI indicating the state 0.
  • the second information amount reduction method is a reduction method focusing on predetermined N bits in the non-common part NCMN of the input character IS in FIG. 6B, and in the first embodiment, focusing on the upper 4 bits of the non-common part NCMN. .
  • the upper 4 bits are expressed as a block BLK, and the remaining lower bits are expressed as an intra-block offset OFS.
  • the block BLK of each GOTO transition character is decoded and expressed in 16 bits, and each logical sum is expressed as a non-common part bitmap BITMAP.
  • “Use of CMNINFO &BITMAP" in FIG. 3) “+2” is one word in which the transition destination when the first or second batch FAILURE transition is determined is stored, and the relative address function determination information RAFDI stored in the base address. It corresponds to.
  • both the first and second information amount reduction methods are used.
  • the common part match determination information CMNINFO and the non-common part bitmap BITMAP are stored as relative address function determination information RAFDI in the base address BADDR indicating the state, and a constant, for example, 1 or
  • the base address of the transition destination by the GOTO transition character having the part NCMN is stored. If this non-common part NCMN is not included in the GOTO transition character, the base address of the FAILURE transition destination is stored.
  • FIG. 4 shows the in-memory data structure of the finite automaton corresponding to FIG.
  • the blank in FIG. 4 is an area that does not exist in the memory.
  • One word is 32 bits
  • the common CMN is 16 bits
  • the non-common part bitmap BITMAP is 16 bits.
  • the first word address ADDR BADDRi + Bmax * 2 S of the Bmax block.
  • the base address BADDR of the batch FAILURE transition destination is stored.
  • an output state Q and a consumption flag F are stored in the word word address ADDR in which the base address BADDR is stored.
  • Q is “1” if the state indicated by the base address BADDR is an output state, and “0” otherwise.
  • the consumption flag F is “0” when the input character IS is carried over at the time of transition from the transition source to the state, that is, when the input character IS is not consumed and transitioned to this state, and is not carried over. It is “1” for (consumption).
  • the output state Q and the consumption flag F are stored together with the base address BADDR, and when one word is 32 bits, the base address BADDR can be a maximum of 30 bits.
  • FIG. 7 (A) shows only the transition from state 1 in FIG. 5 extracted.
  • FIG. 9 (A) shows only the transition from state 3 in FIG. 5 extracted.
  • each bit is a common value, and each bit of the mask MASK is a set bit.
  • FIG. 9C shows the common part match determination information CMNINFO and the non-common part bitmap BITMAP stored as the relative address function determination information RAFDI at the word address A3 of the memory indicating the state 3.
  • FIG. 8 (A) shows only the transition from state 2 in FIG. 5 extracted.
  • each bit of the mask MASK indicating the bit position of the common value is 0. Since a FAILURE transition occurs for an arbitrary input character IS, each bit of the CMN at this time is represented by “1”, and the corresponding bits of MASK and CMN are common when they are “0” and “1”, respectively.
  • the four values of the part match determination information CMNINFO are represented by “x”.
  • the word address A4 is the same as A2.
  • FIG. 10A shows a GOTO transition, a FAILURE transition from state 2 to state 5 or 6, and a FAILURE transition from state 7 to state 5 or 6.
  • state 4 If the input character IS is C, transition is made to state 5, and if the input character IS is D, transition is made to state 6. Therefore, as shown in FIG. 10B, from each of states 2 and 7, other FAILUREs are entered.
  • FIG. 11 is a schematic block diagram showing a hardware configuration of the information processing apparatus 10 that detects a keyword in the character string X by software processing using a finite automaton having an in-memory data structure configured as described above.
  • the information processing apparatus 10 is, for example, a proxy server, and the CPU 11 is coupled to the ROM 13, RAM 14, hard disk drive 15, network adapter 16, input device 17, and display device 18 via the interface 12.
  • a plurality of interfaces are represented by one block 12 for simplification.
  • the interface 12 includes a memory controller.
  • the ROM 13 is a flash memory, for example, and stores a BIOS.
  • the RAM 14 is composed of, for example, SDRAM (Synchronous Dynamic Random Access Memory) (which may be DDR (Double-Data-Rate), DDR2 or DDR3) or SRAM, and is used as a main storage device.
  • SDRAM Serial Dynamic Random Access Memory
  • a memory controller is included in the CPU 11 or included in a chip set that is a component of the interface 12.
  • the hard disk drive 15 including the magnetic recording medium stores an OS, a device driver, an application program, and data, and these are loaded onto the RAM 14 by a virtual storage system under the management of the OS and executed.
  • This application program includes, for example, a program for detecting the above keyword in URL filtering, mail filtering or virus check, and this data includes a finite automaton having a structure as shown in FIG. In the initialization routine of FIG.
  • the network adapter 16 is connected to the Internet via a router (not shown), and received data is temporarily stored in the buffer area of the RAM 14 via the OS.
  • the input device 17 includes a keyboard and a pointing device, and is used for inputting instructions.
  • the display device 18 is used for displaying the execution result of the keyword detection program.
  • FIG. 12 is a schematic flowchart of this keyword detection program.
  • the parentheses are identification codes in the figure.
  • the following initial value setting process is performed. That is, for example, the first character IS of the received character string X in the buffer is acquired as an input character.
  • the bit length of the input character IS is, for example, 8 bits.
  • the initial value ADDR0 for example, the address A0 in FIG. 4 is substituted into the word address ADDR. Also, an initial value 0 is substituted into a variable COUNT indicating the position of the character IS in the character string X.
  • the relative address function determination information RAFDI includes the 16-bit common part match determination information CMNINFO and the 16-bit non-common part bitmap BITMAP.
  • the relative address RADDR is calculated based on the input character IS and the relative address function determination information RAFDI.
  • step S8 If the character string X is not empty, the process proceeds to step S9. If it is empty, the keyword detection process is terminated. If there is data stored in step S6 in the post-processing program, for example, information related thereto is displayed. It is displayed on the device 18.
  • FIG. 13 is a detailed flowchart of the process in step S2 of FIG.
  • the composite mask CMASK is usually equal to the mask MASK. As shown in FIG. 8B, only when each bit of the mask MASK is “0” and each bit of the common CMN is “1”, both are different, and each bit of the composite mask CMASK is “1”. By using this composite mask CMASK instead of the mask MASK, it is possible to handle the special case where the common part match determination information CMNINFO is “XXXXXXXX” in the following processing as in the normal case.
  • a keyword and its position in the character string X can be detected using a finite automaton having a data structure in memory.
  • the keyword detection process is performed by software, it is not suitable for high-speed processing of a large amount of data. Therefore, a configuration in which this processing is performed by hardware will be described below as a second embodiment of the present invention.
  • FIG. 14 is a schematic block diagram showing a finite automaton execution device corresponding to FIG.
  • FIG. 15 is a schematic time chart showing the operation of the apparatus shown in FIG.
  • the RAM 14A is composed of, for example, a pair of SDRAM (which may be DDR, DDR2 or DDR3) and a memory controller, or SRAM, and stores a finite automaton having the above data structure.
  • SDRAM which may be DDR, DDR2 or DDR3
  • SRAM memory controller
  • the relative address calculation circuit 20 executes the processing shown in FIG. 13 by hardware.
  • the control circuit 25 first initializes, for example, 0 in the register 23 (D1 in FIG. 15), 1, 0 and 0 in the consumption flag F, the output state Q and the counter 27, respectively.
  • a part of the character string X is held in the FIFO (First In, First First Out) queue 24, and one of the characters is taken out as the input character IS.
  • the consumption flag F is “1”
  • one pulse of the clock CLK from the control circuit 25 is supplied to the clock input terminals of the register 22 (D 2), the queue 24 and the counter 27 via the AND gate 26.
  • 32-bit data (relative address function determination information RAFDI, output state Q and consumption flag F) is read from the word address ADDR designated by the register 23 in the RAM 14A, and these are read out by the clock pulse from the control circuit 25B. Is held in the register 21 (D3).
  • the relative address calculation circuit 20D calculates and outputs the relative address RADDR based on the relative address function determination information RAFDI held in the register 21 and the input character IS held in the register 22.
  • RADDR is held in the register 28 by a clock pulse from the control circuit 25 (D4).
  • the output of the register 23 and the value 1 are added by the adding circuit 29. Since this addition is performed in parallel with the processing of the relative address calculation circuit 20, the processing is faster than adding 1 in the relative address calculation circuit 20.
  • the output values of the register 28 and the addition circuit 29 are added by the addition circuit 30, and the result is supplied to one input terminal of the selector 3S.
  • the output of the adder circuit 30 is selected by the selector 3S by the selection control signal from the control circuit 25, and is held in the register 23 by the clock pulse from the control circuit 25 (D5).
  • the base address BADDR, the output state Q, and the consumption flag F are read from the RAM 14A, and held in the register 21 by the clock pulse from the control circuit 25 (D6).
  • the base address BADDR held in the register 21 is supplied to the other input terminal of the selector 3S, and this base address BADDR is selected and controlled by the selector 3S by the control circuit 25.
  • the clock pulse from the control circuit 25 causes the register 23 to Is held (D7).
  • FIG. 16 is a block diagram showing a configuration example of the relative address calculation circuit 20 in FIG.
  • FIG. 17 is a schematic block diagram in which the configuration of FIG. 16 is further embodied.
  • the common part processing circuit 31 corresponding to step S10 in FIG. 13, the logical sum of the mask MASK and the common CMN is obtained as a composite mask CMASK, and the part corresponding to the set bit of the composite mask CMASK is shared from the input character IS.
  • the part extraction circuit 312 performs extraction, and the coincidence determination circuit 313 determines whether or not this matches the value of the corresponding bit of the common CMN.
  • the common part mismatch determination circuit 314 in FIG. 17 includes the common part extraction circuit 312 and the match determination circuit 313 in FIG.
  • FIG. 18A shows the truth indicating the relationship among the i-th bit ISi of the input character IS, the i-th bit Mi of the composite mask CMASK, the i-th bit Ci of the common CMN, and the i-th bit Oi of the match determination output. It is a value table.
  • FIG. 19B shows the common part mismatch determination circuit 314 configured using such a relationship, and the common part extraction circuit 312 obtains a logical product for each bit corresponding to the input character IS and the composite mask CMASK.
  • the coincidence determination circuit 313 determines whether each bit of the result is equal to the corresponding bit of the common CMN, and outputs the inverted output of the result as a 1-bit unmatched UM.
  • the unmatch UM is “1” if even one of the two corresponding inputs of the match determination circuit 313 does not match.
  • FIG. 20 shows an example in which the non-common part extraction / division circuit 34 is configured by a sequential circuit.
  • the input character IS is loaded into the shift register 343, and the content of the shift register 343 is shifted to the right by 1 bit every time the rising edge of the clock CLK is supplied to the serial input terminal SI of the shift register 344.
  • the composite mask CMASK is loaded into the shift register 345, the contents of the shift register 345 are shifted to the right by 1 bit at every rising edge of the clock CLK, and the signal of the inverted serial output terminal to SO is input to one of the AND gates 346. Supplied to the end.
  • the other input terminal of the AND gate 346 is supplied with the clock CLK delayed by the delay gate 347 in consideration of the output delay of the shift register 345.
  • the output of the AND gate 346 is supplied to the clock input terminal of the shift register 344 as the non-common part clock UCLK.
  • FIG. 21A shows a state before the input character IS is loaded into the shift register 343 and before being shifted by the clock CLK.
  • FIG. 21B shows a state where the non-common part NCMN of the input character IS is taken into the shift register 344 by 8 pulses of the clock CLK. This shift is performed after the shift register 344 is cleared to zero.
  • the upper 4 bits of the shift register 344 are set as a block BLK. Even if the number of reset bits of the composite mask CMASK is less than 4, the configuration is simplified by making the upper 4 bits of the shift register 344 the block BLK without shifting the contents of the shift register 344 further to the right.
  • the intra-block offset OFS is also simplified by simply crossing the output wiring as shown in the figure and reversing the bit order without further shifting to the right.
  • the block BLK and the intra-block offset OFS are different from those described in the first embodiment. However, when the relative address function determination information RAFDI is generated by using the transition character set, the block BLK and the intra-block offset are similarly generated. If OFS is determined, there is no problem even if it is simplified in this way.
  • the non-common unit clock UCLK is supplied to the clock input terminal of the counter 348 and counted, and its value CN is compared with “100” by the comparison circuit 349, and when CN> 4, the comparison circuit 349 The output becomes “1”, and the non-common portion clock UCLK passes through the AND gate 34A and is counted by the counter 34B. Accordingly, if eight pulses of the clock CLK are supplied to the clock input terminal of the shift register 343, the count of the counter 34B becomes the block size index S.
  • FIG. 22 shows that the block size index S is determined by such an operation.
  • the non-common part extraction / division circuit 34 Since the non-common part extraction / division circuit 34 operates in synchronization with the clock CLK, the frequency of the clock CLK is increased as much as possible to speed up the processing.
  • the output BLK of the non-common part extraction / division circuit 34 is decoded by the decoder 351, and one of the block number detection circuit 352 and the non-existence determination circuit 353 as the decoded block DBLK. Supplied to the input end.
  • the non-common part bitmap BITMAP is supplied to the other input terminals of the block number detection circuit 352 and the absence determination circuit 353.
  • the block number detection circuit 352 obtains the number of set bits lower than the set bits of the decoded block DBLK as the block number B1 in the non-common part bitmap BITMAP.
  • the non-existence determination circuit 353 outputs a non-hit portion MH obtained by inverting the bit of the non-common part bitmap BITMAP corresponding to the set bit of the decoded block DBLK.
  • FIG. 23 is a block diagram illustrating a configuration example of the block address determination circuit 35.
  • FIG. 25 is an explanatory diagram of the operation of this circuit.
  • the set bit trailing / 1 bit shift write circuit 46 sets all the lower bits of the decoded block DBLK below the set bit to the set bit, and shifts all the bits to the right by one bit.
  • FIG. 24 shows a configuration example of the circuit 46.
  • the most significant bit is set to '0', and for the other than the most significant bit, the logical sum of the (i + 1) th output bit and the ith input bit from the lower side is the ith output bit. Further, by adding the most significant bit of “0” without using the least significant OR gate, the output is shifted to the right by 1 bit as a result.
  • the AND of the output of the set bit trailing / 1 bit shift write circuit 46 and the non-common part bitmap BITMAP is obtained by the AND circuit 47, and the number of set bits of the output RSBITMAP is obtained by the parallel counter 48. Count and output the value as block number B1.
  • the AND circuit 49 obtains the logical product of the decoded block DBLK and the non-common part bitmap BITMAP and supplies the result to the zero detection circuit 50. If all the bits are “0”, The output MH is set to “1”, otherwise MH is set to “0”.
  • the non-common part bitmap BITMAP is supplied to the parallel counter 321 and the number of set bits is obtained as Bmax.
  • Bmax and B1 are supplied to one and the other input terminals of the selector 331, respectively.
  • the output UM of the common part mismatch determination circuit 314 and the output MH of the non-existence determination circuit 353 are supplied to the OR gate 332 of the output circuit.
  • the output NE of the OR gate 332 is supplied to the selection control input terminal of the selector 331. When NE is “1”, Bmax is selected by the selector 331, and when it is “0”, B1 is selected.
  • 333 The arithmetic circuit 333 is further supplied with the block size index S and the intra-block offset OFS.
  • the arithmetic circuit 333 calculates B * 2 S + OFS based on these, and outputs the result as a relative address RADDR.
  • FIG. 26 is a block diagram illustrating an example in which the arithmetic circuit 333 is configured by a combinational circuit.
  • each of the 4-bit block numbers B is supplied to the data input terminals of the demultiplexers 51 to 54, the block size index S is decoded by the decoder 55, and the selection control input terminals and gates of the demultiplexers 51 to 54 are decoded. It is supplied to the output enable control input terminal of the circuit 56.
  • Each of the demultiplexers 51 to 54 is a 1-bit input and 5-bit output.
  • the other bit outputs are in a high impedance state.
  • the output 510 and 512 to 514 are set in a high impedance state while being taken out from 511.
  • each 4-bit intra-block offset OFS is supplied to the 0th to 3rd bits of the register 57 via the gate circuit 56.
  • the gate circuit 56 sets the S to 3rd bits of the output to a high impedance state, and outputs the 0th to (S-1) th bits through when S> 0.
  • the register 57 is cleared to zero, the block number B, the block size index S, and the intra-block offset OSF are supplied to the arithmetic circuit 333. After a predetermined time has elapsed, a clock pulse is supplied to the register 57, and the demultiplexers 51 ⁇ 54 and the output of the gate circuit 56 are held in the register 57.
  • the demultiplexers 51 to 54 are configured to use non-selected outputs of “0” instead of high impedance, and this output is supplied to each bit input of the register 57 via an OR gate. It is also possible (see FIG. 27).
  • the mask MASK and common CMN are supplied to the OR circuit 311, the non-common part bitmap BITMAP is supplied to the parallel counter 321, the block number detection circuit 352, and the absence determination circuit 353, and the input character IS and the composite mask CMASK do not match. This is supplied to the determination circuit 314.
  • the selector 331 When the output UM of the common part mismatch determination circuit 314 becomes “1”, that is, when it is determined that the common part of the input character IS does not match the corresponding part of the common CMN, the selector 331 outputs the output Bmax of the parallel counter 321. Is selected and supplied to the arithmetic circuit 333 as the block number B.
  • the composite mask CMASK is supplied to the non-common part extraction / division circuit 34, and the input character IS is separated into the block BLK and the intra-block offset OFS, and the block size index S that determines the block size is obtained.
  • the inner offset OFS and the block size index S are supplied to the arithmetic circuit 333, and the arithmetic circuit 333 obtains the relative address RADDR.
  • the block BLK is decoded by the decoder 351, the decoded block DBLK is supplied to the block number detection circuit 352 and the non-existence determination circuit 353, and the processing by the block number detection circuit 352 and the non-existence determination circuit 353 is performed in parallel. Is called. Even if the unmatch UM is “0” and the miss hit MH is “1”, that is, even if the common part of the input character IS matches the common CMN, the non-common part is on the non-common part bitmap BITMAP.
  • Bmax is selected by the selector 331, supplied to the arithmetic circuit 333 as the block number B, and the arithmetic circuit 333 similarly obtains the relative address RADDR.
  • the output B1 of the block number detection circuit 352 is selected by the selector 331, supplied to the arithmetic circuit 333 as the block number B, and the arithmetic circuit 333 similarly.
  • the relative address RADDR is obtained.
  • the relative address RADDR is obtained at high speed.
  • the non-common part extraction / division circuit 34 is composed of a sequential circuit, the processing speed becomes a bottleneck.
  • the processing performance of the relative address calculation circuit 20 is improved by configuring this with a combinational circuit and processing it at high speed.
  • FIG. 27 shows the configuration of the non-common part extraction / division circuit 34P of the third embodiment.
  • the number of set bits on the higher side is obtained by the circuit 61 and supplied to the selection control input terminal of the corresponding demultiplexer of the demultiplexer group 62, respectively.
  • FIG. 28A shows a configuration example of the upper set bit number detection circuit 61.
  • the adder 613 near the center receives the input bit and all the upper bits. Are added and output.
  • the AND circuit 63 obtains the logical product of the corresponding bits of the inverted output of CMASK and the input character IS, and the result is the data of the corresponding demultiplexer of the demultiplexer group 62. Supplied to the input end. However, the highest logical product is supplied to the OR gate 647 without going through the demultiplexer.
  • Each demultiplexer of the demultiplexer group 62 takes out one bit supplied to its data input terminal from the output terminal corresponding to the set bit when the value supplied to the selection control input terminal is decoded, and the other output terminals Is set to “0”, and functions as a 1-bit asynchronous shifter that shifts the input bits upward by the selection control value.
  • the least significant bit output of the 0th demultiplexer is not supplied to the OR gate but is used through.
  • the upper 7 bits of the output 8 bits of the lowest demultiplexer 620 of the demultiplexer group 62 are supplied from the lower side to the OR gates 641 to 647, respectively, and the lowest bit is used as it is.
  • the least significant bit and the outputs of the OR gates 641 to 643 are crossed out in the same manner as in FIG. 21B to obtain an intra-block offset OFS.
  • the outputs of the OR gates 644 to 647 are the block BLK.
  • the non-common part NCMN is extracted from the input character IS at high speed and is divided into the block BLK and the intra-block offset OFS.
  • FIG. 29 is a block diagram showing an example in which the block size index detection circuit 65 in FIG. 27 is configured by a combinational circuit.
  • the circuit 65 obtains the block size index S based on the synthesis mask CMASK.
  • the number of reset bits of the composite mask CMASK is obtained as CN 0 by the parallel “0” counter 651, and this is supplied to one input terminal of the adder circuit 652.
  • -4 is supplied to the other input terminal of the adding circuit 652, and the addition result is supplied to one input terminal of the selector 653.
  • the other input terminal of the selector 653 and the selection control input terminal are supplied with '000' and the sign bit of the output of the adder circuit 652, respectively.
  • the selector 653 selectively outputs the addition result if the sign bit is ‘0’, that is, CN0 ⁇ 4, and selectively outputs ‘000’ if the sign bit is ‘1’.
  • the output of the selector 653 is used as a block size index S. By such an operation, the block size index S is obtained at high speed.
  • FIG. 30 shows a modification of the non-common part extraction / division circuit 34P of FIG.
  • each demultiplexer of the demultiplexer group 62A has an output enable inversion control input terminal.
  • the output bits are set to a high impedance state, and when it is “0”, all the output bits selected by the selection control input value are set to a high impedance state.
  • the high impedance state is performed after being set to ‘0’, and the blank block at the output destination of the circuit 34 ⁇ / b> Q in FIG. 30 is ‘0’.
  • the output enable inversion control input terminal is connected to a corresponding bit of CMASK.
  • a tristate buffer 627 is used for the most significant of the demultiplexer group 62A, the most significant bit of CMASK is connected to its inversion control input terminal, and the most significant bit of the input character IS is connected to the input terminal of the tristate buffer 627.
  • the output terminal of the tristate buffer 627 is connected to the wiring corresponding to the most significant bit of the block BLK.
  • FIG. 31 shows an in-memory data structure of the finite automaton according to the fourth embodiment of the present invention.
  • the probability of a FAILURE transition with respect to an input character IS is relatively high. Therefore, in this finite automaton, the relative address RADDR of the collective FAILURE transition destination is set to a fixed value ⁇ 1 without changing the relative address RADDR of the GOTO transition destination, thereby speeding up the processing.
  • FIG. 32 is a flowchart showing a relative address calculation procedure corresponding to a finite automaton having this structure.
  • step S1B since it is not necessary to perform the calculation in step S1B, it is determined whether or not the FAILURE transition is first.
  • step S1C it is determined whether or not the exclusive OR of the mask MASK and the common CMN is “11111111”, that is, whether or not it is an unconditional FAILURE transition as shown in FIG. If the determination is affirmative, a fixed value 1 is substituted into the relative address RADDR in step S1D.
  • the mask MASK is the same as the above-described synthetic mask CMASK. Therefore, in the processing after step S15A, the mask MASK is used instead of the synthetic mask CMASK. That is, the mask MASK is used in steps S15A, S11A, and S16A.
  • step S15A it is determined in step S15A whether the logical product of the input character IS and the mask MASK matches the common CMN, that is, the common part of the input character IS is a corresponding part of the common CMN. If the determination is affirmative, the process proceeds to step S11A. Otherwise, the process proceeds to step S1A1. In step S1A1, a fixed value -1 is substituted for the relative address RADDR.
  • the relative address RADDR can be obtained at high speed.
  • the relative address of the unconditional FAILURE transition destination may be set to ⁇ 1, and a fixed value ⁇ 1 may be substituted for the relative address RADDR in step S1C.
  • FIG. 33 shows a relative address calculation circuit 20A in which the software configuration of FIG. 32 is implemented as hardware according to the fifth embodiment of the present invention.
  • the circuit 20A includes an all-bit mismatch determination circuit 66 and a selector 335 corresponding to steps S1C, S1D, S15A, S19, and S1A1 in FIG.
  • the all bit mismatch determination circuit 66 obtains an exclusive OR of the bits corresponding to the mask MASK and the common CMN, and outputs “1” if each bit is “1”, otherwise “0”. Is output.
  • the non-common part extraction / division circuit 34Q has the same configuration as that shown in FIG. Both the common part mismatch determination circuit 314 and the non-common part extraction / division circuit 34Q use MASK instead of CMASK.
  • the relative address RADDR of the FAILURE transition can be obtained at high speed, the performance of the finite automaton execution device is improved.
  • the relative address of the unconditional FAILURE transition destination may be set to ⁇ 1
  • the selector 335 may have two inputs, the fixed value 0 may be omitted, and the output of the circuit 66 may be supplied to the OR gate 332.
  • the finite automaton execution device has a relatively high probability of a FAILURE transition.
  • the operation of reading the second word from the RAM 14A and the operation of the relative address calculation circuit 20 using the read first word can be performed in parallel.
  • the next word word address of the relative address function determination information RAFDI storage address, the base address BADDR of the batch FAILURE transition destination, and the output state Q related thereto And the consumption flag F are stored, and the relative address RADDR of the individual transition is set to B * 2 S + OFS + 2.
  • FIG. 35 is a flowchart for executing this method, which is used in place of the method shown in FIG.
  • step S1A One of the two points different from FIG. 12 is that two words of data are continuously read from the word address ADDR in step S1A.
  • step SA is inserted between step S2A and step S3 and the relative address RADDR obtained in step S2A is 1, the second word read in step S1A is read in step SB. (ADDR + 1) is substituted for the word address ADDR, and the process proceeds to step S7.
  • step S2A After the data of one word is read from the word address ADDR in step S1A, the processing of step S2A can be started in parallel with the reading of the second word by hardware, and the batch FAILURE transition can be started. In this case, since the process of step S4 is not performed, the process is faster than in the case of FIG.
  • the relative address RADDR is a fixed value 1, and there is no need to calculate the block number B shown in step S1A of FIG.
  • FIG. 36 is a detailed flowchart of the process in step S2A.
  • step S1D and step S1A1 in FIG. 32 are combined into one step S1D, and in step S1B1, the value of the relative address RADDR is larger by 1 than in the case of step S1B in FIG. That is.
  • FIG. 37 shows a finite automaton execution device according to Embodiment 7 of the present invention.
  • This device is a hardware configuration of the software configuration of the sixth embodiment.
  • a register 21A is added corresponding to continuous reading of two words from the RAM 14A, and a three-input selector 3S1 is used instead of the selector 3S in FIG.
  • the BADDR output of the register 21A is supplied to the selector 3S1, and the output of the relative address calculation circuit 20B is supplied to the control circuit 25A.
  • the F outputs of the registers 21 and 21A are supplied to the selector 3S2, and the output of the selector 3S2 is supplied to one input terminal of the AND gate 26.
  • 2 is supplied to one input terminal of the adder circuit 29, and the process of the adder circuit 29 is performed in parallel with the process of the relative address calculation circuit 20B.
  • the control circuit 25A When the relative address RADDR is not ⁇ 1, the control circuit 25A performs control so as to be the same as in the case of FIG. 14, and when the relative address RADDR is ⁇ 1, speculative destination read is performed for each of the selectors 3S1 and 3S2.
  • the held BADDR output and F output of the register 21A are selected, and one pulse of the clock CLK is output.
  • FIG. 38 shows a configuration example of the relative address calculation circuit 20B.
  • the output of the all-bit mismatch determination circuit 66 and the output NE of the OR gate 332 are supplied to the OR gate 336.
  • the fixed value ⁇ 1 is the relative address RADDR and the selector 334. Is selected.
  • the output of the OR gate 336 is “0”, the output of the arithmetic circuit 333 is selected by the selector 334 as the relative address RADDR.
  • FIG. 39 is a time chart showing the operation of the apparatus shown in FIG. The same reference numerals are assigned to the same data as in FIG.
  • the data D3A is data pre-read from the RAM 14A at a clock next to the read clock of the data D3, and is held in the register 21A.
  • the relative address calculation circuit 20B calculates the relative address RADDR based on the relative address function determination information RAFDI held in the register 21 and the input character IS held in the register 22 (D4).
  • RADDR ⁇ 1
  • the consumption flag F of the register 21A is “1”
  • the counter 27 is incremented by 1 at the rise of the pulse, and one character is taken out from the queue 24, and the fall of this pulse
  • the character is held in the register 22 as the input character IS (D8).
  • the processing by the software in the sixth embodiment is accelerated by hardware, and the non-common part extraction / division circuit 34Q, the all-bit mismatch determination circuit 66, and the OR gate 336 are used, so any of the first to sixth embodiments. There is an effect that high-speed processing becomes possible than in the case of.
  • FIG. 40A shows a case where the number of set bits of the mask MASK is 0, and there are two GOTO transition characters for the zeroth and first blocks, and one for each of the second to fifth blocks.
  • the relative address function determination information RAFDI and other FAILURE transitions are added, the required number of words is 98 in total.
  • F '0' if no GOTO transition is made.
  • the GOTO transition destination from the parent state to the child state is determined by ignoring the 4 bits, for example, the lower 4 bits of the input character IS, and the ignored lower 4 bits of the input character IS are included in the child state. Based on all 8 bits, the transition destination to the next state is determined as usual.
  • FIG. 43 (A) shows how to determine the relative address function determination information RAFDI in the parent state when the GOTO transition character set is the same as FIG. 40 (A).
  • the value is determined as usual for all GOTO transition characters.
  • the corresponding bit of the common CMN is set to “1”, and the logical sum of the mask MASK and the common CMN is set as a composite mask CMASK.
  • the non-common part NCMN becomes 4 bits and the block size becomes 1.
  • the GOTO transition character set of the parent state S0 is the same as that of the original state S, and is divided into child state GOTO transition character subsets for each block number B.
  • the relative address function determination information RAFDI is created as usual.
  • FIG. 43B shows creation of relative address function determination information RAFDI for the child state S10.
  • FIG. 44 is a flowchart showing a relative address calculation procedure when the relative address function determination information RAFDI and the input character IS created by any of the methods of the first to ninth embodiments are given.
  • the don't care part of the common CMN is cleared using the logical product of the common CMN and the mask MASK instead of the common CMN in step 15B.
  • the logical sum of the mask MASK and the common CMN is obtained as a composite mask CMASK, and in the subsequent steps S11 and S16, the composite mask CMASK is used instead of the mask MASK, so that the don't care part of the common CMN is set to the mask bit. It is a point that is handled in the same way.
  • the mask MASK and the combined mask CMASK become equal after proceeding from step S1C to step S15B. Therefore, the mask MASK is used instead of the combined mask CMASK.
  • the mask MASK is reset. Since a common CMN bit may be a set bit corresponding to the bit, a composite mask CMASK is used instead of the mask MASK.
  • the data compression rate is improved by selecting 4 bits of “1” in the arbitrarily combined mask CMASK so that the number of blocks in the first stage is reduced.
  • the “other” FAILURE transition is made in the first stage (in the case of proceeding from step S15B or S19 to step S1D in FIG. 44), it is the same as the case where no grouping is performed. Even if it does not become “Other” FAILURE transition, there is no third stage, and data can be compressed even if the 4 bits of '1' in the synthesis mask CMASK are uniformly determined as the lower 4 bits, so grouping is easy Therefore, it is more practical than Example 8.
  • the common CMN don't care can be used even when the state is not divided into two stages in series and parallel. For example, it can be used to identify any single character or a range of characters in a regular expression.
  • FIG. 45 shows a relative address calculation circuit 20C according to the tenth embodiment of the present invention.
  • This circuit 20C is a hardware configuration of the software configuration of the ninth embodiment, and is used in place of the relative address calculation circuit 20B of FIG.
  • a mask MASK is used instead of the composite mask CMASK in FIG. 16, and a logical product of the common CMN and the mask MASK is used instead of the common CMN.
  • the non-common part extraction unit 341 of the non-common part extraction / division circuit 34 uses the composite mask CMASK instead of the mask MASK, thereby changing the value of the common CMN and directly changing the state as shown in FIG. Even when it is divided into two parallel stages, it can be handled in the same manner as in the normal case.
  • FIG. 46 is a block diagram showing a more specific configuration of FIG.
  • FIG. 48 shows an outline of the data structure in the memory of the finite automaton according to the eleventh embodiment of the present invention in comparison with the conventional one.
  • the transition destination relative address function determination information RAFDI from this state is stored in the base address BADDR indicating the current state, and this RAFDI is read out.
  • a base address BADDR indicating the next state is stored in the address ADDR, and this BADDR is read out.
  • the “base address BADDR indicating the current state” in (1) is omitted, and the “base address BADDR indicating the next state” in (3) is used instead of (3) and (1) is combined into one, and the following in-memory data structure and processing are used.
  • the “base address BADDR indicating the current state” in (1) is omitted, so the base address indicating the current state is not the address of the RAM 14A, but the address of the RAM 14A. This is data stored in the ADDR, and this point is significantly different from the above embodiment. Also, since (3) and (1) are combined into one, the bit length of one word is twice that in the above embodiment, for example, 64 bits.
  • the function for obtaining the relative address RADDR from the base address BADDR using the input character IS as a variable is determined by the relative address function determination information RAFDI and its interpretation. That is, this function can be expressed as RADDR (RAFDI, IS). This point is the same as the above embodiment.
  • ADDR BADDR + RADDR (RAFDI, IS) stores a base address BADDR indicating the next state and relative address function determination information RAFDI corresponding to the transition destination from this state.
  • FIG. 50 shows the state transition diagram of FIG. 5 with a data structure in the memory, and shows a case where the constant in FIG. 49 is zero.
  • This rearrangement is arbitrary. However, the values of the symbols A0 to A4 change according to this rearrangement.
  • FIG. 51 is a schematic flowchart of a program for detecting a keyword using the finite automaton having the in-memory data structure shown in FIG.
  • step S4 does not exist, the order of steps is different, and the relative address RADDR is decreased by 1 in step S2A.
  • (S0) The following initial value setting process is performed. That is, for example, the first character of the received character string X in the buffer is acquired as the input character IS.
  • the bit length of the input character IS is, for example, 8 bits.
  • An initial value ADDR0, for example, 00 in FIG. 50 is substituted for the word address ADDR. Also, an initial value 0 is substituted into COUNT indicating the position of the input character IS in the character string X.
  • One word for example, 64-bit data is read from the word address ADDR of the RAM 14A.
  • This one word includes a base address BADDR, relative address function determination information RAFDI, an output state Q, and a consumption flag F.
  • the relative address function determination information RAFDI includes the 16-bit common part match determination information CMNINFO and the 16-bit non-common part bitmap BITMAP.
  • the base address BADDR can be a maximum of 30 bits.
  • step S8 If the character string X is not empty, the process proceeds to step S9. If it is empty, the keyword detection process is terminated. If there is data stored in step S6 in the post-processing program, for example, information related thereto is displayed. It is displayed on the device 18.
  • Example 11 since keyword detection processing is performed by software, it is not suitable for high-speed processing of a large amount of data. Therefore, a configuration in which this processing is performed by hardware will be described below as a twelfth embodiment of the present invention.
  • FIG. 52 is a schematic block diagram showing a finite automaton execution device corresponding to FIG.
  • FIG. 53 is a schematic time chart showing the operation of the apparatus shown in FIG.
  • the RAM 14A stores a finite automaton having the above data structure.
  • the relative address calculation circuit 20D executes the processing in step S2A in FIG. 51 by hardware.
  • the relative address calculation circuit 20D the relative address calculation circuit 20 of FIGS. 16 and 17 can be used as it is. Further, the processing speed may be increased by using the non-common part extraction / division circuit 34P in FIG. 27 or the non-common part extraction / division circuit 34Q in FIG. 30 instead of the non-common part extraction / division circuit 34 in FIG.
  • control circuit 25B initializes, for example, 0 in the register 23 and 0 in the consumption flag F, the output state Q, and the counter 27, respectively.
  • 64-bit data (base address BADDR, relative address function determination information RAFDI, output state Q and consumption flag F) is read from the word address ADDR (D1 in FIG. 53) designated by the register 23 in the RAM 14A. These are held in the register 21 by the clock pulse from the control circuit 25B (D3).
  • a part of the character string X is held in the FIFO queue 24, and one character thereof is taken out as the input character IS.
  • the consumption flag F is “1”
  • one pulse of the clock CLK from the control circuit 25 is supplied to the clock input terminals of the register 22, the queue 24 and the counter 27 via the AND gate 26.
  • the input character IS is held in the register 22 (D8), and the counter 27 is incremented by "1".
  • the relative address calculation circuit 20D uses the relative address RAD. Calculate and output DR. RADDR is held in the register 28 by a clock pulse from the control circuit 25B (D4). The output of the register 28 and the base address BADDR output of the register 21 are added by the adder circuit 30, and the result is held in the register 23 by the clock pulse from the control circuit 25B (D7).
  • FIG. 54 is a diagram showing an outline of the data structure in the memory of the finite automaton according to the thirteenth embodiment of the present invention in which this is performed.
  • the bit length of the relative base address RBADDRi is shortened by setting the sum of the relative base address RBADDRi and the word address Ai stored in the word address Ai to the relative address RADDRi, and the non-common portion bitmap The bit length of BITMAP is increased.
  • BADDRi is outside the range of the relative base address RBADDRi
  • the relative address differs depending on whether the bit length of the non-common part bitmap BITMAP is 16 bits or 32 bits.
  • the value of the address mode AM is determined. Therefore, when the same transition destination state falls within the reachable range of the relative base address RBADDR or falls outside the reachable range depending on the state of the transition source, the transition in which the bit length of the non-common part bitmap BITMAP is 16 bits It is necessary to store the destination data and the 32-bit transition destination data in the RAM 14A.
  • FIG. 55 is a schematic block diagram showing a hardware configuration of a finite automaton execution device that can use the relative base address RBADDR as described above.
  • the RBADDR output (13 bits) of the register 21 is supplied to one input terminal of the adder circuit 67, the output of the register 23 is supplied to the other input terminal as the word address Ai, and the addition result is one input terminal of the selector 68. To be supplied.
  • the output of the adder circuit 67 is selected by the selector 68 by the selector 68 and supplied to one input terminal of the adder circuit 30 as the base address BADDR.
  • the relative address RADDR is obtained by the relative address calculation circuit 20D, and this is held in the register 28.
  • This value and the output of the selector 68 are added by the adder circuit 30, and the result is stored in the register. 23.
  • the 29-bit base address BADDR is selected by the selector 68, and this is added to the output of the register 28 by the adding circuit 30 and held in the register 23.
  • the thirteenth embodiment it is possible to further reduce the transition destination information amount by increasing the bit length of the non-common part bitmap BITMAP by converting the base address into a relative address.
  • FIG. 56 is an explanatory diagram of a specific example of the data structure in the memory of the finite automaton according to the fourteenth embodiment of the present invention.
  • This data structure corresponds to FIG.
  • the processing shown in FIG. 36 is performed in step S2A of FIG.
  • FIG. 57 is a block diagram of an automaton execution device that performs processing by hardware using this data structure.
  • the relative address calculation circuit 20E of this apparatus is the same as that in the relative address calculation circuit 20B of FIG. 38 using 0 instead of the fixed value input ⁇ 1 of the selector 334. Further, the processing is speeded up using the adder circuit 29 of FIG.
  • a comparison circuit 69 is used in order to speed up the processing in the case where the input character IS does not change and remains in the original state.
  • the comparison circuit 69 compares the address held in the register 23 with the next address to be held, and supplies the result to the control circuit 25D.
  • the control circuit 25D omits reading the same data from the RAM 14A, reuses the contents held in the register 21, and sets the clock CLK pulse to 1 This is supplied to the individual AND gate 26, and the next input character IS is supplied to the relative address calculation circuit 20E.
  • the above-described reuse can be performed.
  • the FAILURE transition destination relative address is 0, and the base address and the relative address function determination information are 1 Since it is stored in the word, the additional configuration for reuse becomes particularly simple.
  • Such a simple reuse configuration is based on the characteristics of the data structure shown in FIG. 56, and has not been possible in the past.
  • a finite automaton having an in-memory data structure shown in FIG. 58 can be used.
  • This data structure corresponds to FIG.
  • the processing shown in FIG. 32 is performed in step S2A of FIG.
  • the relative address calculation circuit 20A of FIG. 33 is used as the relative address calculation circuit 20D of FIG.
  • the fixed value input-2 of the selector 335 is changed to -1.
  • the state may be partially divided by applying the method of the eighth or ninth embodiment.
  • the processing shown in FIG. 44 is performed in step S2A of FIG.
  • the relative address calculation circuit 20C of FIG. 46 is used as the relative address calculation circuit 20D of FIG.
  • the base address BADDR may be shifted by a fixed value.
  • the speculative prefetch word number may be two or more.
  • an output function memory may be used.
  • the output function memory may be addressed with the read BADDR, and information indicating whether or not the output function is in an output state may be read.
  • the memory in which the finite automaton is stored may be SRAM, Rambus memory, or flash memory, and is appropriately selected according to the application.
  • the recording medium may be any of a magnetic disk, an optical disk, a flash memory, and the like.
  • the present invention includes configurations of additional items 1 to 18 as follows.
  • a relative address calculation circuit for a finite automaton execution device that obtains a next state information storage destination relative address corresponding to a base address indicating a current state based on an input character and relative address function determination information, wherein the relative address function determination
  • the information includes common part match determination information for determining whether or not the input character includes a common part of the GOTO transition character set, and non-common that is a part obtained by removing at least the common part from the GOTO transition character set Non-common part presence / absence information for determining whether or not the input character includes any of the parts,
  • a common part mismatch judgment circuit for judging whether or not the common part indicated by the common part match judgment information is included in the input character;
  • An output circuit that outputs a relative address corresponding to the FAILURE transition destination when the common unit mismatch determination circuit makes a negative determination;
  • a relative address calculation circuit for a finite automaton execution device that obtains a next state information storage destination relative address corresponding to a base address indicating a current state based on
  • the common part mismatch determination circuit determines whether the common part indicated by the common part match determination information is included in the input character. Since the corresponding relative address is output from the output circuit, the relative address can be obtained at high speed with a simple configuration.
  • the non-common part presence / absence information includes a non-common part bitmap in which each of 2 N bits indicates the presence or absence of GOTO transition, where N is a predetermined value of an integer satisfying 1 ⁇ N ⁇ ISL, and ISL is a value of the input character.
  • Bit length The bit corresponding to the non-common part is extracted from the input character, and if the bit length NCL of the non-common part is greater than the predetermined value N, N bits among the bits corresponding to the non-common part are set as a block BLK and the remaining ( NCL-N) bit is output as an intra-block offset OFS and (NCL-N) is output as a block size S.
  • bit corresponding to the non-common part is set as the block BLK and the intra-block offset OFS is set as 0.
  • a non-common part extraction / division circuit that outputs the size as 0;
  • a non-common part processing circuit comprising a non-existence determination circuit for determining whether or not a bit at a position corresponding to the value of the block BLK on the non-common part bitmap is a first value; Further comprising The output circuit further outputs a relative address corresponding to the FAILURE transition destination when the absence determination circuit makes a positive determination.
  • Item 2 The relative address calculation circuit according to Item 1, wherein:
  • the non-common part extraction / division circuit divides the non-common part into the block BLK and the offset OFS and obtains the block size S, so that the subsequent processing is simplified, and the non-common part is obtained.
  • the processing circuit determines whether or not the bit at the position corresponding to the value of the block BLK on the non-common part bitmap is the first value, and if the determination is affirmative, the relative value corresponding to the FAILURE transition destination Since the output circuit outputs the address, Even when the affirmative determination is made by the common part mismatch determination circuit, the relative address can be obtained at high speed with a simple configuration.
  • the output circuit is A selector comprising a first input terminal and a second input terminal, wherein a fixed value is supplied to the first input terminal;
  • the selector selectively outputs the value of the first input terminal as a relative address corresponding to the FAILURE transition destination.
  • a selection control circuit The relative address calculation circuit according to Item 2, further comprising:
  • the relative address can be obtained at high speed with a simple configuration. Play.
  • the non-common part processing circuit further includes: A first decoder for decoding the block BLK; Block number detection for obtaining a block number B that is smaller by 1 than the number of bits of the second value included in the non-common portion bitmap from the position on the non-common portion bitmap indicated by the output of the first decoder Circuit,
  • the relative address calculation circuit according to the additional item 3, wherein:
  • This configuration has an effect that the block number B can be obtained with a simple configuration.
  • the output circuit further includes an arithmetic circuit that obtains B * 2 S + OFS + (constant) based on the block number B, the block size index S, and the intra-block offset OFS, and supplies it to the second input terminal of the selector.
  • the selection control circuit selects the value of the second input terminal as a relative address corresponding to the transition destination when the common unit mismatch determination circuit makes a positive determination and the absence determination circuit makes a positive determination.
  • Output Item 5 The relative address calculation circuit according to Item 4, wherein:
  • the common part match determination information includes a mask MASK indicating each bit position of the common part, and a common CMN including a value corresponding to each bit position of the common part,
  • the common part mismatch determination circuit determines that the common part is included in the input character when a logical product of the input character and the mask MASK matches the common CMN.
  • Item 6 The relative address calculation circuit according to Item 5, wherein:
  • the common part match determination information includes a mask MASK indicating each bit position of the common part, and a common CMN including a value corresponding to each bit position of the common part,
  • the common part mismatch determination circuit includes the common part in the input character when the logical product of the input character and the mask MASK matches the logical product of the common CMN and the mask MASK.
  • Item 6 The relative address calculation circuit according to Item 5, wherein:
  • An all-bit mismatch determination circuit for determining whether or not the mask MASK and the common CMN are all bit mismatches;
  • the selection control circuit further causes the selector to selectively output the value of the first input terminal as a relative address corresponding to the FAILURE transition destination even when the all-bit mismatch determination circuit makes a positive determination.
  • Item 8 The relative address calculation circuit according to Item 6 or 7, wherein
  • the selector when it is determined that the mask MASK and the common CMN do not match all the bits, the selector selectively outputs a relative address corresponding to the FAILURE transition destination.
  • the relative address can be obtained at high speed.
  • An all-bit mismatch determination circuit for determining whether or not the mask MASK and the common CMN are all bit mismatches;
  • the selector further has a third input to which a fixed value is supplied,
  • the selection control circuit further preferentially selects the value of the third input terminal to the selector as a relative address corresponding to the FAILURE transition destination when the all-bit mismatch determination circuit makes a positive determination.
  • Output, Item 8. The relative address calculation circuit according to Item 6 or 7, wherein
  • the selector when it is determined that the mask MASK and the common CMN do not match all the bits, the selector selectively outputs the relative address corresponding to the FAILURE transition destination.
  • the relative address can be obtained at high speed.
  • the relative address function determination information further includes information on a don't care part that is a part obtained by removing the part corresponding to the common part and the non-common part from the input character,
  • the information of the don't care unit corresponds to each bit corresponding to the don't care unit of the common CMN being the second value
  • the non-common part extraction / division circuit extracts the bit of the first value included in the composite mask CMASK from the input character as a bit corresponding to the non-common part.
  • Item 8 The relative address calculation circuit according to Item 7, wherein:
  • the logical sum of the mask MASK and the common CMN is obtained as a composite mask CMASK, and the bits of the first value included in the composite mask CMASK are extracted as bits corresponding to the non-common part. Even when the common CMN is used as don't care, the common CMN can be handled in a unified manner and the configuration is simplified.
  • the non-common part extraction / division circuit uses the non-common part of the input character as the high-order NCL bit and the low-order (ISL-NCL) bit value as the first value, and the high-order N bits as the block BLK. Obtain the reverse (ISL-N) bit position in reverse order as the intra-block offset OFS. 11.
  • the relative address calculation circuit according to any one of additional items 2 to 10, wherein:
  • the non-common part extraction / division circuit is A first shift register in which a clock is supplied to the clock input terminal and the input character is held; A second shift register in which the clock is supplied to a clock input terminal and the mask MASK or the composite mask CMASK is held; A first logic circuit for outputting one corresponding to the logical product of the serial output terminal of the second shift register and the clock; A third shift register in which an output of the first logic circuit is supplied to a clock input terminal and a serial input terminal is connected to a serial output terminal of the first shift register; The block BLK is extracted from the upper N bits of the third shift register, and the bit position of the lower (ISL-N) bits of the third shift register in the reverse order is extracted as the intra-block offset OFS.
  • the Item 12 The relative address calculation circuit according to Item 11, wherein
  • the non-common part extraction / division circuit further includes: A first counter for counting output pulses of the first logic circuit; A comparison circuit for determining whether the count CN of the first counter is greater than the predetermined value N; A second logic circuit that passes an output pulse of the first logic circuit when the comparison circuit makes an affirmative determination; A second counter for counting output pulses of the second logic circuit; And a block size index detection circuit that outputs the count value of the second counter as the block size index S.
  • the non-common part extraction / division circuit is One-side second value number for obtaining the number of the second value from the bit adjacent to one side to the one-side end bit for each bit excluding the one-side end on the mask MASK or the composite mask CMASK A detection circuit; For each (NCL-1) bit excluding the one end of one side of the input character corresponding to the first value on the mask MASK or the composite mask, the number of the corresponding second value obtained A shifted version of this bit is output, each (ISL-NCL) bit is set to the first value and additionally output to the other side, and the one end on the mask MASK or the composite mask is the first value.
  • a demultiplexer group that outputs the most significant bit on one side of the input character if the value is 1, Among the outputs of these ISL bits, the N bit on one side is the block BLK, and the bit position of the remaining (ISL-N) bits in reverse order is the intra-block offset OFS.
  • Item 12 The relative address calculation circuit according to Item 11, wherein
  • the non-common part is separated from the block BLK and the block BLK regardless of the bit number NCL of the non-common part. There is an effect that it is possible to divide at high speed into the intra-block offset OFS.
  • the non-common part extraction / division circuit further includes: A parallel counter that counts the first value on the mask MASK or the composite mask; An adder circuit for calculating the sum of the counts CN0 and -N of the parallel counter; If the output CN0-N of the adder circuit is supplied to the first input terminal, 0 is supplied to the second input terminal, and the sign bit of the adder circuit indicates negative, the value of the second input terminal Is selectively output as the block size index S; otherwise, the selector selectively outputs the value of the first input terminal as the block size index S; 15.
  • the block number detection circuit includes: A second value trailing 1-bit one-side shift circuit that receives the output of the first decoder and shifts the second value tailed to one end substantially by one bit toward the one end; A logic circuit for extracting, from the non-common portion bitmap, a portion corresponding to the second value of the output of the second-value tail 1-bit one-side shift circuit; A parallel counter that counts the second value included in the output of the logic circuit and outputs the result as a block number B; 11.
  • the relative address calculation circuit according to any one of additional items 4 to 10, characterized by comprising:
  • the block number B can be obtained at high speed with a simple configuration including the second value trailing one-bit one-end shift circuit, the logic circuit, and the parallel counter.
  • the arithmetic circuit is An output register; A second decoder for decoding the block size index S; The bit corresponding to each of the N bits from the least significant side of the output register is provided, and the corresponding bit of the block number B is supplied to the data input terminal, and is output to the second decoder within the range of 0 to N.
  • a demultiplexer group that shifts from the corresponding bit of the output register to the upper side and supplies the output register by the corresponding number of bits,
  • a gate circuit that supplies each of the (NCL-N) -bit intra-block offset OFS to the corresponding bit from the least significant side of the output register so as not to collide with the output of the demultiplexer group; 11.
  • the relative address calculation circuit according to any one of additional items 5 to 10, characterized by comprising:
  • the relative address of the GOTO transition destination or the FAILURE transition destination can be obtained at high speed with a simple configuration including the output register, the second decoder, the demultiplexer group, and the gate circuit. There is an effect.
  • FIG. 5 is a finite automaton state transition diagram corresponding to FIG. 4.
  • FIG. 5A is a diagram showing only the transition from state 0 in FIG.
  • FIG. 5B is an explanatory diagram of a method for creating relative address function determination information related to (A), and FIG. It is explanatory drawing which shows arrangement
  • (A) is a diagram showing only the transition from state 1 in FIG. 5 extracted
  • (B) is an explanatory diagram showing the arrangement in memory of relative address function determination information regarding (A).
  • (A) is a diagram showing only the transition from state 2 in FIG. 5 extracted
  • (B) is an explanatory diagram of a method for creating relative address function determination information related to (A)
  • (C) is created It is explanatory drawing which shows arrangement
  • 5A is a diagram showing only the transition from state 3 in FIG. 5 extracted
  • FIG. 5B is an explanatory diagram for creating relative address function determination information related to (A), and FIG. It is arrangement
  • FIG. 15 is a schematic block diagram which shows the hardware constitutions of the information processing apparatus for performing the finite automaton which concerns on Example 1 of this invention with software. It is a schematic flowchart of this software. It is a detailed flowchart of the process of step S2 in FIG. It is a schematic block diagram of the finite automaton execution apparatus which concerns on Example 2 of this invention. It is a schematic time chart which shows operation
  • FIG. 15 is a schematic block diagram illustrating a configuration example of a relative address calculation circuit 20 in FIG. 14.
  • FIG. 15 is a schematic block diagram illustrating a configuration example of a relative address calculation circuit 20 in FIG. 14.
  • FIG. 17 is a schematic block diagram illustrating a more specific configuration of FIG. 16.
  • A is a diagram showing a common part coincidence determination truth value table
  • B is a common part coincidence determination circuit diagram of 1-bit input / 1-bit output operating according to the truth table.
  • A) is another 1-bit input / 1-bit output common part coincidence determination circuit diagram
  • B) is a diagram illustrating a configuration example of the common part mismatch determination circuit in FIG. 17 using the circuit of (A). It is. It is a figure which shows the example which comprised the non-common part extraction and division circuit in FIG. 17 by the sequential circuit.
  • A) And (B) is non-common part extraction and division
  • FIG. 21 is an operation explanatory diagram of a block size index detection unit of the circuit of FIG. 20.
  • FIG. 18 is a block diagram illustrating a configuration example of a block address determination circuit in FIG. 17.
  • FIG. 24 is a logic circuit diagram showing a configuration example of a set bit trailing / 1-bit shift write circuit in FIG. 23. It is operation
  • FIG. 18 is a block diagram illustrating an example in which the relative address output circuit in FIG. 17 is configured by a combinational circuit. It is a non-common part extraction and division
  • (A) is a figure which shows the example of a structure of the upper side set bit number detection circuit in FIG.
  • FIG. 28 is a block diagram illustrating a configuration example of a block size index detection circuit in FIG. 27. It is a figure which shows the modification of the non-common part extraction and division circuit of FIG. It is data structure explanatory drawing in memory of the finite automaton which concerns on Example 4 of this invention.
  • 32 is a flowchart showing a relative address calculation procedure corresponding to the data structure of FIG. 31.
  • FIG. 33 is a diagram illustrating a relative address calculation circuit in which the software configuration of FIG. It is data structure explanatory drawing in memory of the finite automaton which concerns on Example 6 of this invention. It is a schematic flowchart of the software which performs this finite automaton.
  • FIG. 38 is a block diagram showing a configuration of a relative address calculation circuit in FIG. 37. It is a time chart which shows operation
  • FIG. 10A is a diagram illustrating a subset of a GOTO transition character set according to an eighth embodiment of the present invention, where FIG. It is a figure which shows a character subset and MASK.
  • A) is a single state explanation before serial multi-stage corresponding to FIG. 40 (A)
  • (B) is a multi-state explanatory diagram after serial multi-stage corresponding to FIG. 40 (B).
  • FIG. 10 is a flowchart showing a relative address calculation procedure when the relative address function determination information and input characters according to any one of Embodiments 1 to 9 are given. It is a schematic block diagram which shows the relative address calculation circuit based on Example 10 of this invention.
  • FIG. 46 is a block diagram illustrating a more specific configuration of FIG. 45.
  • FIG. 47 is a block diagram illustrating a configuration example of a common part mismatch determination circuit in FIG. 46. It is a figure which shows the data structure outline of the finite automaton concerning Example 11 of this invention in contrast with the conventional one. It is a data structure schematic explanatory drawing of a finite automaton.
  • FIG. 6 is an explanatory diagram of an in-memory data structure corresponding to the state transition diagram of FIG. 5. It is a schematic flowchart of the program which detects a keyword using the finite automaton of the data structure of FIG. It is a schematic block diagram which shows the finite automaton execution apparatus which concerns on Example 11 of this invention.
  • FIG. 53 is a schematic time chart showing the operation of the apparatus of FIG. 52.
  • FIG. 53 is a schematic time chart showing the operation of the apparatus of FIG. 52.
  • FIG. 57 is a schematic block diagram of a finite automaton execution device using a memory having the data structure of FIG. 54. It is a data structure schematic explanatory drawing of the finite automaton which concerns on Example 14 of this invention. FIG. 57 is a schematic block diagram of a finite automaton execution device using the memory having the data structure of FIG. 56. It is explanatory drawing of the modification of the data structure in a memory.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Le nombre de bits d’informations de détermination de fonction d’adresse relative est réduit pour augmenter le rendement de stockage et assurer un traitement rapide. Un MASK de 8 bits qui constitue des informations pour déterminer une fonction d’acquisition d’une adresse de base (A1) indicative d’un état actuel et d’une adresse relative (B*2S+OFS) à partir de l’adresse de base (A1) pour réaliser une transition vers un état suivant, un CMN/DC de 8 bits et un BITMAP de 16 bits sont stockés en tant qu’informations d’état actuel/suivant en un mot au niveau d’une adresse (06). Lorsque CL > 4, CL étant le nombre de bits d’une partie commune d’un jeu de caractères de transition GOTO, S = 4-CL, B étant le nombre (n) de bits définis inférieurs à la position correspondant aux bits définis lorsque quatre bits supérieurs d’une partie non commune du caractère de transition GOTO sur le BITMAP sont décodés, OFS étant la partie non commune du caractère de transition GOTO à partir duquel quatre bits supérieurs sont exclus. Lorsque CL ≤4, S=0, B est le nombre (n), et OFS=0.
PCT/JP2009/056280 2008-03-27 2009-03-27 Structure de données intramémoire d’automate fini, mémoire stockant des données avec la structure, et automate fini exécutant un appareil utilisant la mémoire WO2009119802A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010505832A JP5063780B2 (ja) 2008-03-27 2009-03-27 有限オートマトンのメモリ内データ構造、この構造のデータが格納されたメモリ、このメモリを用いた有限オートマトン実行装置

Applications Claiming Priority (10)

Application Number Priority Date Filing Date Title
JP2008082363 2008-03-27
JP2008082365 2008-03-27
JP2008-082362 2008-03-27
JP2008-082364 2008-03-27
JP2008082364 2008-03-27
JP2008082361 2008-03-27
JP2008082362 2008-03-27
JP2008-082361 2008-03-27
JP2008-082365 2008-03-27
JP2008-082363 2008-03-27

Publications (1)

Publication Number Publication Date
WO2009119802A1 true WO2009119802A1 (fr) 2009-10-01

Family

ID=41113986

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/056280 WO2009119802A1 (fr) 2008-03-27 2009-03-27 Structure de données intramémoire d’automate fini, mémoire stockant des données avec la structure, et automate fini exécutant un appareil utilisant la mémoire

Country Status (2)

Country Link
JP (1) JP5063780B2 (fr)
WO (1) WO2009119802A1 (fr)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675994A (ja) * 1992-06-19 1994-03-18 Matsushita Electric Ind Co Ltd 文字列照合装置
WO2006029986A1 (fr) * 2004-09-16 2006-03-23 Siemens Aktiengesellschaft Dispositif informatique a architecture reconfigurable pour la reception d'un automate cellulaire global
JP2007034777A (ja) * 2005-07-28 2007-02-08 Nec Corp データ検索装置及び方法、並びにコンピュータ・プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0675994A (ja) * 1992-06-19 1994-03-18 Matsushita Electric Ind Co Ltd 文字列照合装置
WO2006029986A1 (fr) * 2004-09-16 2006-03-23 Siemens Aktiengesellschaft Dispositif informatique a architecture reconfigurable pour la reception d'un automate cellulaire global
JP2007034777A (ja) * 2005-07-28 2007-02-08 Nec Corp データ検索装置及び方法、並びにコンピュータ・プログラム

Also Published As

Publication number Publication date
JP5063780B2 (ja) 2012-10-31
JPWO2009119802A1 (ja) 2011-07-28

Similar Documents

Publication Publication Date Title
US11599770B2 (en) Methods and devices for programming a state machine engine
CN107608750B (zh) 用于型式辨识的装置
US9866218B2 (en) Boolean logic in a state machine lattice
CN107609644B (zh) 用于状态机中的数据分析的方法及系统
EP2668574B1 (fr) Utilisation d'éléments à usage spécifique pour réaliser un automate à états finis
US9647684B2 (en) Memory-based history search
Kumar et al. Advanced algorithms for fast and scalable deep packet inspection
JP5265378B2 (ja) 高性能正規表現パターンマッチングのための方法および装置
EP2668575B1 (fr) Procédé et appareil pour compiler des expressions régulières
US8972450B2 (en) Multi-stage parallel multi-character string matching device
US20140019486A1 (en) Logic Content Processing for Hardware Acceleration of Multi-Pattern Search
US10430210B2 (en) Systems and devices for accessing a state machine
US11977902B2 (en) Methods and systems for event reporting
US20170193351A1 (en) Methods and systems for vector length management
US20220261257A1 (en) Systems and devices for accessing a state machine
US11449344B1 (en) Regular expression processor and parallel processing architecture
US20200401553A1 (en) Devices for time division multiplexing of state machine engine signals
US10929764B2 (en) Boolean satisfiability
JP5063780B2 (ja) 有限オートマトンのメモリ内データ構造、この構造のデータが格納されたメモリ、このメモリを用いた有限オートマトン実行装置
Hilgurt A Survey on Hardware Solutions for Signature-Based Security Systems.
US20080306948A1 (en) String and binary data sorting
CN112994886B (zh) 一种用于生成tcam搜索关键字的硬件及实现方法
WO2017119981A1 (fr) Filtre matériel d'appariement de formes d'expressions régulières complexes de surface/énergie basé sur un automate fini déterministe (dfa) tronqué
US20090094696A1 (en) Scanning circuit and method for data content
JP2003533913A (ja) パケット分類用状態遷移機械

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09725774

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2010505832

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09725774

Country of ref document: EP

Kind code of ref document: A1