![]() |
|
If you can't view the Datasheet, Please click here to try to view without PDF Reader . |
|
Datasheet File OCR Text: |
M7010R 16K x 68-bit Entry NETWORK SEARCH ENGINE FEATURES SUMMARY s 16K ENTRIES IN 68-BIT MODE s Figure 1. 272-ball PBGA Package s TABLE MAY BE PARTITIONED INTO UP TO FOUR (4) QUADRANTS (Data entry width in each quadrant is configurable as 34, 68, 136, or 272 bits.) UP TO 83 MILLION SUSTAINED SEARCHES PER SECOND IN 68-BIT and 136-BIT CONFIGURATIONS UP TO 41.5 MILLION SEARCHES PER SECOND IN 34-BIT and 272-BIT CONFIGURATIONS SEARCHES ANY SUB-FIELD IN A SINGLE CYCLE OFFERS BIT-BY-BIT and GLOBAL MASKING SYNCHRONOUS, PIPELINED OPERATION UP TO 31 SEARCH ENGINES CASCADABLE WITHOUT PERFORMANCE DEGRADATION WHEN CASCADED, THE DATABASE ENTRIES CAN SCALE FROM 124K to 992K DEPENDING ON THE SIZE OF THE ENTRY GLUELESS INTERFACE TO INDUSTRYSTANDARD SRAMS SIMPLE HARDWARE INSTRUCTION INTERFACE IEEE 1149.1 TEST ACCESS PORT OPERATING SUPPLY VOLTAGES INCLUDE: VDD (Operating Supply Voltage) = 1.8V VDDQ (Operating Supply Voltage for I/O) = 2.5 or 3.3V 272 BALL, 27mm x 27mm, CAVITY-UP BGA 272 PBGA 27mm x 27mm 1.27mm ball pitch s s s s s s s s s s s July 2002 1/67 M7010R TABLE OF CONTENTS DESCRIPTION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Product Range (Table 1.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Switch/Router Implementation Using the M7010R (Figure 2.) . . . . . Signal Names (Table 2.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Connections (Figure 3.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . M7010R Block Diagram (Figure 4.) . . . . . . . . . . . . . . . . . . . . . . . . . . ....... ....... ....... ....... ....... ....... ....... ....... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... ...... .....6 .....6 .....6 .....6 .....6 .....7 .....8 .....9 MAXIMUM RATING. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Absolute Maximum Ratings (Table 3.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 DC AND AC PARAMETERS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 DC and AC Measurement Conditions (Table 4.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 M7010R 2.5V AC Testing Load (Figure 5.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 M7010R 2.5V Input Waveform (Figure 6.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 M7010R 2.5V Output Load Equiv. (Figure 7.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 M7010R 3.3V AC Testing Load (Figure 8.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 M7010R 3.3V Input Waveform (Figure 9.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 M7010R 3.3V Output Load Equiv. (Figure 10.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Capacitance (Table 5.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 DC Characteristics (Table 6.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 AC Timing Waveforms with CLK2X (Figure 11.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 AC Timing Parameters with CLK2X (Table 7.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 OPERATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Command Bus and DQ Bus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Database Entry (Data Array and Mask Array) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Arbitration Logic. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Pipeline and SRAM Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Full Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Connections Descriptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2/67 M7010R CLOCKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Clocks (Figure 12.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Register Overview (Table 8.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Comparand Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Comparand Register Selection During SEARCH and LEARN (Figure 13.). . . . . . . . . . . . . . . . . . . 19 Mask Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Addressing the Global Mask Register (GMR) Array (Figure 14.) . . . . . . . . . . . . . . . . . . . . . . . . . . 19 SEARCH-Successful Registers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 SEARCH-Successful Register (SSR) Description (Table 9.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 The Command Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Command Register Field Descriptions (Table 10.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 SEARCH PROCEDURE FOR 32-BIT WIDE PREFIXES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Global Mask Register Patterns (Figure 15.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Storing left half of a Data or Mask Array (Figure 16.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 The Information Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Information Register Field Descriptions (Table 11.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 The READ Burst Address Register (RBURREG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 READ Burst Register Description (Table 12.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 The WRITE Burst Address Register (WBURREG) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 WRITE Burst Register Description (Table 13.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 The NFA Register . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 NFA Register (Table 14.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 SEARCH ENGINE ARCHITECTURE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Data and Mask Addressing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 M7010R Database Configuration (Figure 17.). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Bit Position Match (Table 15.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Multi-width Configuration Example (Figure 18.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 M7010R Data and Mask Array Addressing (Figure 19.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 COMMAND CODES AND PARAMETERS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Command Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Commands and Command Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Command Codes (Table 16.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Command Parameters (Table 17.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 READ COMMAND. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Single Location READ Cycle Timing (Figure 20.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Burst READ of the Data and Mask Arrays (BLEN = 4) (Figure 21.) . . . . . . . . . . . . . . . . . . . . . . . . 29 READ Command Parameters (Table 18.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Data and Mask Array, SRAM READ Address Format (Table 19.) . . . . . . . . . . . . . . . . . . . . . . . . . 30 READ Address Format for Internal Registers (Table 20.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 READ Address Format for Data and Mask Arrays (Table 21.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 3/67 M7010R WRITE COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Single Location WRITE Cycle Timing (Figure 22.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Burst WRITE of the Data and Mask Arrays (BLEN = 4) (Figure 23.). . . . . . . . . . . . . . . . . . . . . . . . 32 (Single) WRITE Address Format for Data and Mask Arrays or SRAM (Table 22.) . . . . . . . . . . . . . 33 WRITE Address Format for Internal Registers (Table 23.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 WRITE Address Format for Data and Mask Array (Burst WRITE) (Table 24.) . . . . . . . . . . . . . . . . 33 SEARCH COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 68-bit Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Hardware Diagram for a Table with a Single Device (68-bit Operation) (Figure 24.) . . . . . . . . . . . 34 68-Bit Configuration SEARCH Timing Diagram (One Device) (Figure 25.). . . . . . . . . . . . . . . . . . . 35 Right-Shift of 68-bit Signals for TLSZ Values (Table 25.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 Shift of SSF and SSV from SADR (for different HLAT Values) (Table 26.) . . . . . . . . . . . . . . . . . . . 36 Latency of SEARCH from Instruction to SRAM Access Cycle (68-bit Mode) (Table 27.) . . . . . . . . 36 68-bit Logical SEARCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 x68 Table with One Device (Figure 26.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 136-bit Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Hardware Diagram for a Table with One Device (136-bit Operation) (Figure 27.) . . . . . . . . . . . . . 38 136-Bit Configuration SEARCH Timing Diagram (One Device) (Figure 28.). . . . . . . . . . . . . . . . . . 39 Right-Shift of 136-bit Signals for TLSZ Values (Table 28.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Shift of SSF and SSV from SADR (for different HLAT values) (Table 29.) . . . . . . . . . . . . . . . . . . . 40 Latency of SEARCH from Instruction to SRAM Access Cycle (136-bit Mode) (Table 30.) . . . . . . . 40 136-bit Logical SEARCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 x136 Table with One Device (Figure 29.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 272-bit Configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Hardware Diagram for a Table with One Device (272-bit Operation) (Figure 30.) . . . . . . . . . . . . . 42 272-Bit Configuration SEARCH Timing Diagram (One Device) (Figure 31.). . . . . . . . . . . . . . . . . . 43 Right-Shift of 272-bit Signals for TLSZ Values (Table 31.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Shift of SSF and SSV from SADR (for different HLAT Values) (Table 32.) . . . . . . . . . . . . . . . . . . . 44 Latency of SEARCH from Instruction to SRAM Access Cycle (272-bit Mode) (Table 33.) . . . . . . . 44 272-bit Logical SEARCH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 x272 Table with One Device (Figure 32.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Mixed-sized Searches on Tables Configured with Different Width Using an M7010R Device 46 Multiwidth Configuration Example (Figure 33.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Timing Diagram for Mixed SEARCH (One Device) (Figure 34.) . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 LRAM and LDEV Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 LEARN COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 LEARN Command Timing Diagram (TLSZ = 00) (Figure 35.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 LEARN Timing Diagram (TLSZ = 1, except on Last Device) (Figure 36.) . . . . . . . . . . . . . . . . . . . . 50 LEARN Timing Diagram on Device Number 7 (TLSZ = 01) (Figure 37.). . . . . . . . . . . . . . . . . . . . . 51 SRAM WRITE Cycle Latency from Second Cycle of LEARN Instruction (Table 34.) . . . . . . . . . . . 51 4/67 M7010R DEPTH-CASCADING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Depth-Cascading Up to Eight Devices (One Block) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Depth-Cascading Up to 31 Devices (4 Blocks) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Depth-Cascading to Generate a "FULL" State for a Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Depth-Cascading to Form a Single Block (8 Devices) (Figure 38.) . . . . . . . . . . . . . . . . . . . . . . . . . 53 Four Blocks (31 Devices Cascaded) SEARCH, 68-bit Configured with LDEV = 1 (Figure 39.) . . . 54 "FULL" State Generation in a Cascaded Table (Figure 40.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 ARBITRATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Timing Diagram for Arbitration Within a Block (Figure 41.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 Timing for Arbitration for Two or More Blocks for the Last Device (Figure 42.). . . . . . . . . . . . . . . . 57 SRAM ADDRESSING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 SRAM PIO Access . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 SRAM READ Access for One M7010R Device (Figure 43.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 SRAM WRITE Access for One M7010R Device (Figure 44.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 SRAM Bus Address Generation (Table 35.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 Right-Shift of SRAM Signals for TLSZ Values (Table 36.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Right-Shift of SRAM Signals for HLAT Values (Table 37.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 JTAG (1149.1) TESTING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Test Access Port Controller Instructions (Table 38.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 TAP Device ID Register (Table 39.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 POWER DISTRIBUTION GUIDELINE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Network Search Engine Power Distribution (Figure 45.) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 PART NUMBERING . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 PACKAGE MECHANICAL INFORMATION . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 REVISION HISTORY. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 5/67 M7010R DESCRIPTION Overview The M7010R is a feature-rich, TCAM-based hardware search engine optimized for networking and communications applications. It incorporates leading-edge Associative Processing Technology (APT, trademark of Cypress Semiconductor, Inc.) and Advanced Power Management. The data table may be partitioned into up to four (4) quadrants, allowing the user to configure each quadrant with different table entry widths (x34, x68, x136, or x272-bit). It is also programmable to accelerate performance. Performance The M7010R outperforms competitive solutions using software sequential search algorithms in conjunction with SRAMs or ASICs, or hardware implementation with ASICs and CAMs. The latter solution, while faster than a software-based soluTable 1. Product Range Part Number M7010R-083ZA1 M7010R-066ZA1 Operating Supply Voltage 1.8V 1.8V Operating I/O Voltage 2.5 or 3.3V 2.5 or 3.3V Speed 83MHz 66MHz tion, still suffers from performance degradation when depth-cascaded and is unable to scale to next-generation requirements. The M7010Rbased solutions overcome all of these drawbacks. Applications The performance and features of the M7010R makes it ideal in applications such as enterprise LAN switches, broadband switching and routing equipment, supporting multiple data rates from OC-48 and beyond. Figure 2 illustrates how a search engine subsystem can be optimized using a host bridge ASIC, the M7010R, and synchronous or non-synchronous SRAMs. It also illustrates how this system fits into a switch-router implementation. Figure 2. Switch/Router Implementation Using the M7010R Sys tem Bus m Progra ry Memo Host ASIC Switch Fabric h Searc e Engin SRAM Bank Ne two rk L ine Inte Switch or rocess P rfac es AI04272 6/67 M7010R Table 2. Signal Names Symbol Type Connection Name LHI[6:0] LHO[1:0] BHI[2:0] BHO[2:0] FULI[6:0] FULO[1:0] FULL Cascade Interface I O I O I O O Local Hit In Local Hit Out Block Hit In Block Hit Out Full In Full Out Full Flag Clocks and Reset CLK2X PHS_L RST_L I I I Master Clock Phase Reset Command and DQ Bus CMD[8:0] CMDV DQ[67:0] ACK(1) EOT(1) SSF SSV SADR[21:0] CE_L WE_L OE_L ALE_L I I I/O T T T T T T T T T Command Bus Command Valid Address/Data Bus READ Acknowledge End of Transfer SEARCH Successful Flag SEARCH Successful Flag Valid SRAM Address SRAM Chip Enable SRAM WRITE Enable SRAM Output Enable Address Latch Enable Device Identification ID[4:0] I Device Identification Test Access Port TDI TCK TDO TMS TRST_L I I T I I Test Access Port's Test Data In Test Access Port's Test Clock Test Access Port's Test Data Out Test Access Port's Test Mode Select Test Access Port's Reset Note: Signal types are: I = Input only; I/O = Input or Output; O = Output; and T = Tristate 1. ACK and EOT Signals require a pull-down resistor of 47 ohms. 7/67 M7010R Figure 3. Connections NC NC DQ64 DQ62 GND NC NC NC EOT ACK NC VDD NC NC FULL NC NC VDD FULI5 FULI4 FULI1 BHO0 VDD FULO1 NC NC BHI0 LHI6 NC LHI3 VDD LHI2 ID2 ID0 TMS TCK TDO TDI NC NC VDD NC NC NC DQ65 FULI6 FULI2 BHO1 BHI2 VDDQ LHI5 NC VDDQ BHO2 VDD LHO1 ID3 ID1 VDDQ VDD VDDQ GND RSTL DQ66 LHI4 VDDQ LHI0 LHI1 ID4 NC FULO0 GND FULI3 FULI0 BHI1 LHO0 GND TOP T RST_L GND DQ63 DQ61 DQ57 NC DQ53 DQ60 VDDQ VDD NC DQ67 DQ59 DQ56 DQ58 VDDQ DQ55 DQ49 VDD DQ47 VDDQ DQ51 VDDQ GND GND GND GND GND GND GND RIGHT GND GND GND GND GND GND VDDQ NC NC DQ29 VDD NC DQ45 DQ43 DQ50 VDDQ DQ52 DQ54 NC DQ46 DQ48 GND DQ40 DQ42 VDDQ DQ44 VDD NC DQ36 DQ38 LEFT VDDQ DQ34 DQ32 DQ30 NC DQ28 VDDQ DQ26 DQ20 GND DQ41 DQ39 VDD DQ37 VDDQ DQ35 DQ33 DQ31 GND GND GND GND DQ23 DQ25 DQ27 DQ24 VDD GND DQ19 VDDQ DQ21 VDDQ NC DQ15 DQ17 DQ22 DQ16 DQ14 VDDQ VDD DQ18 VDDQ DQ6 NC DQ10 DQ2 NC NC DQ12 DQ8 NC DQ4 NC NC DQ0 NC BOTTOM DQ9 DQ11 DQ13 VDD DQ1 DQ5 NC DQ7 NC NC VDDQ DQ3 NC NC VDDQ GND VDD NC SADR SADR V GND VDDQ CMD4 CMD2 GND WE_L CLK2X VDD 15 DDQ GND 5 SADR SADR SADR SADR SADR SADR SADR NC 21 18 6 16 9 7 12 SADR V DDQ 19 NC SADR SADR NC 10 11 SSF CMD6 CMD3 CMD0 AE_L OE_L SADR V DD 0 NC SSV CMD5 CMD1 CMDV VDDQ PHS_L VDDQ NC CE_L NC SADR SADR 4 3 CMD8 CMD7 VDDQ VDD VDD SADR SADR SADR SADR VDD SADR VDDQ SADR SADR 2 1 20 14 8 17 13 AI04270 Note: This diagram is TOP VIEW perspective (view through package). 8/67 M7010R Figure 4. M7010R Block Diagram PHS_L CLK2X RST_L Comparand Registers[15:0] Global Mask Registers [7:0] Information and Command Register Burst Read Register Burst Write Register Next Free Address Register Search Successful Index Registers [7:0] (All registers are 68-bit-wide) TAP Controller TAP DQ [67:0] Compare/PIO Data Cmd Compare/PIO Data Address Decode CMD [8:0] CMDV ACK EOT Priority Encode Match Logic Command Decode and PIO Access Configurable as 32K x 34 16K x 68 8K x 136 4K x 272 Data Array Configurable as 32K x 34 16K x 68 8K x 136 4K x 272 Mask Array SADR [21:0] Pipeline and SRAM Control OE_L WE_L CE_L ALE_L ID [4:0] FULL [6:0] Full Logic FULL LHI [6:0] BHI [2:0] Arbitration Logic FULO [1:0] LHO [1:0] BHO [2:0] SSF SSV AI04273 9/67 M7010R MAXIMUM RATING Stressing the device above the rating listed in the "Absolute Maximum Ratings" table may cause permanent damage to the device. These are stress ratings only and operation of the device at these or any other conditions above those indicated in the Operating sections of this specification is Table 3. Absolute Maximum Ratings Symbol TSTG TSLD (1) VDDQ VDD IO PD Parameter Storage Temperature (VDD Off) Lead Solder Temperature for 10 seconds Input or Output Voltages Supply Voltage Output Current Power Dissipation Value -0 to 70 235 3.3 -0.4 to 2.7 100 <3 Unit C C V V mA W not implied. Exposure to Absolute Maximum Rating conditions for extended periods may affect device reliability. Refer also to the STMicroelectronics SURE Program and other relevant quality documents. Note: 1. Soldering temperature not to exceed 260C for 10 seconds (total thermal budget not to exceed 150C for longer than 30 seconds). 10/67 M7010R DC AND AC PARAMETERS This section summarizes the operating and measurement conditions, as well as the DC and AC characteristics of the device. The parameters in the following DC and AC Characteristic tables are derived from tests performed under the MeasureTable 4. DC and AC Measurement Conditions Sym VDD VDDQ tA CL VIH VIL Parameter VDD Operating Supply Voltage VDDQ Voltage for I/O Ambient Operating Temperature Load Capacitance Input High Voltage(1) Input Low Voltage(2) Supply Voltage Tolerance tR, tF Input Rise and Fall Times (at 0.3V and 2.7V) Input Timing Reference Levels Output Timing Reference Levels Input Pulse Voltages Input and Output Timing Ref. Voltages M7010R 2.5V 1.7 to 1.9 2.4 to 2.6 0 to 70 6 1.7 to VDDQ + 0.3 -0.3 to 0.7 5 2 (see Figure 6, page 12) 1.25 1.25 GND to 2.5 (see Figure 7, page 12) M7010R 3.3V 1.7 to 1.9 3.1 to 3.5 0 to 70 6 2.0 to VDDQ + 0.3 -0.3 to 0.8 5 2 (see Figure 9, page 12) 1.5 1.5 GND to 3.3 (see Figure 10, page 12) Units V V C pF V V % ns V V V V ment Conditions listed in the relevant tables. Designers should check that the operating conditions in their projects match the measurement conditions when using the quoted parameters. Note: 1. Maximum allowable applies to overshoot only (VDDQ is 3.3V supply). 2. Minimum allowable applies to undershoot only. 11/67 M7010R Figure 5. M7010R 2.5V AC Testing Load Z0 = 50 DOUT CL 50 VL = 1.25V Figure 8. M7010R 3.3V AC Testing Load Z0 = 50 DOUT CL 50 VL = 1.5V AI04268 AI04269 Figure 6. M7010R 2.5V Input Waveform +2.5V 90% 90% Figure 9. M7010R 3.3V Input Waveform +3.3V 90% 90% 10% GND 10% 10% GND 10% AI04299 AI04298 Figure 7. M7010R 2.5V Output Load Equiv. +2.5V Figure 10. M7010R 3.3V Output Load Equiv. +3.3V 208 Q 192 5pF Q 175 158 5pF AI04266 AI04267 12/67 M7010R Table 5. Capacitance Symbol CIN CIO(1) Parameter Input Capacitance Input / Output Capacitance Test Condition VIN = 0V VOUT = 0V Min Max 6 6 Unit pF pF Note: Effective capacitance measured with power supply. Sampled only, not 100% tested. 1. Outputs deselected. Table 6. DC Characteristics Symb ILI ILO Parameter Input Leakage Current Output Leakage Current M7010R IDD1 1.8V Supply Current @ VDDMAX M7010R M7010R IDD2 2.5V Supply Current @ VDDMAX M7010R M7010R IDD3 3.3V Supply Current @ VDDMAX M7010R VIL VIH VOL VOH Input Low Voltage Input High Voltage Output Low Voltage Output High Voltage VDDQ = VDDQ (min) IOL = 8mA VDDQ = VDDQ (min) IOH = 8mA 2.4 IOUT = 0mA, 66MHz Search IOUT = 0mA, 83MHz Search IOUT = 0mA, 66MHz Search IOUT = 0mA, 83MHz Search IOUT = 0mA, 66MHz Search -0.3 2.0 1000 180 150 300 240 0.8 VDDQ + 0.3 0.4 mA mA mA mA mA V V V V Test Condition(1) VDDQ = VDDQ (max) 0V VIN VDDQMAX VDDQ = VDDQ (max) 0V VOUT VDDQMAX IOUT = 0mA, 83MHz Search Min -10 -10 Max +10 +10 1250 Unit A A mA Note: 1. Valid for Ambient Operating Temperature: TA = 0 to 70C; VDD = 1.8V. 13/67 M7010R Figure 11. AC Timing Waveforms with CLK2X Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle 2 4 6 8 10 12 0 1 3 5 7 9 11 CLK2X PHS_L tIHCH tISCH Signal Group 0 tIHCH tISCH tISCH Signal Group 1 tIHCH tIHCH tICHCH Signal Group 2 tICSCH tCKHOV Signal Group 3 tCKHOV tCKHSHZ Signal Group 4 tCKHSV tCKHSLZ tCKHDZ Signal Group 5 tCKHDV Signal Group 1: PHS_L, RST_L Signal Group 1: DQ, CMD, CMDV Signal Group 2: LHI, BHI, FULI Signal Group 3: LHO, BHO, FULO, FULL Signal Group 4: SADR, CE_L, OE_L, WE_L, ALE_L, SSF, SSV Signal Group 5: DQ, ACK, EOT AI04265 14/67 M7010R Table 7. AC Timing Parameters with CLK2X M7010R-066 Row 1 2 3 4 5 6 7 8 9 10 11 12 13 14 Note: 1. 2. 3. 4. 5. M7010R-083 Unit Min Max 166 6.0 2.4 2.4 1.8 0.6 3.5 0.6 MHz CLK2X frequency ns ns ns ns ns ns ns 7.0 7.5 7.0 7.5 6.0 6.5 ns ns ns ns ns ns CLK2X period CLK2X high pulse(2) CLK2X low pulse(2) Symbol Min fCLK tCLK tCKHI tCKLO tISCH tIHCH tICSCH tICHCH tCKHOV tCKHDV tCKHDZ tCKHSV tCKHSHZ tCKHSLZ 7.0 7.5 3.0 3.0 2.5 0.6 4.2 0.6 8.5 9.0 8.5 9.0 6.5 Max 133 Description(1) Input Setup Time to CLK2X rising edge(2) Input Hold Time to CLK2X rising edge(2) Cascaded Input Setup Time to CLK2X rising edge(2) Cascaded Input Hold Time to CLK2X rising edge(2) Rising edge of CLK2X to LHO, FULO, BHO, FULL valid(3) Rising edge of CLK2X to DQ valid(4) Rising edge of CLK2X to DQ high-Z(5) Rising edge of CLK2X to SRAM Bus valid(4) Rising edge of CLK2X to SRAM Bus high-Z(4,5) Rising edge of CLK2X to SRAM Bus low-Z(4,5) Valid for Ambient Operating Temperature: TA = 0 to 70C; VDD = 1.8V. Values are based on 50% signal levels. Based on an AC load of CL = 50pF (see Figure 5, page 12 and Figure 8, page 12). Unless otherwise noted, all values are based on AC load of CL = 50pF (see Figure 5, page 12 and Figure 8, page 12). These parameters are sampled and not 100% tested. 15/67 M7010R OPERATION Command Bus and DQ Bus CMD[8:0] carries the command and its associated parameter. DQ[67:0] is used for data transfer to, and from the data base entries. The database entries are comprised of a data field and a mask field which are organized as a data array and a mask array. The DQ Bus carries the SEARCH data during the SEARCH command as well as the address and data during Pipelined I/O (PIO) READ/WRITE operations, of the data array, mask array, and internal registers. The DQ Bus also can carry the address information for the PIO accesses to the SRAM. Database Entry (Data Array and Mask Array) Each database entry comprises a data field and a mask field. The resultant value of the entry is a logical AND of the corresponding data and mask bits and can take logical values of '1,' '0' and 'X' (don't care), depending on the value in the mask bit. The on-chip priority encoder selects the first matching entry in the database which is nearest to location 0. Arbitration Logic When multiple (Silicon) Search Engines are cascaded to create large databases, the data being searched is presented to all Search processors simultaneously in the cascaded system. When more than one device has duplicate entries, the arbitration logic on the Search Engine with the matching entry which is closest to address 0 of the cascaded database, will be selected to drive the SRAM Bus. Pipeline and SRAM Control Pipeline latency is added to give enough time to the arbitration logic in a cascaded system to determine the index with the highest priority. The pipeline logic adds latency to the SRAM access cycles and the SSF and SSV signals to align them to the host ASIC receiving the associated data. Refer to Table 27, page 36 for details. Full Logic Bit[0] in each of the 68-bit entries has a special purpose for the LEARN command (0 = empty, 1 = full). When all the data entries have Bit[0] set to '1,' the database asserts the FULL flag, indicating that all the Search Engines in the depth-cascaded array are full. Connections Descriptions Master Clock (CLK2X). The M7010R samples all of the control and data signals on the positive edge of CLK2X when PHS_L is low. Phase (PHS_L). This signal runs at half the frequency of CLK2X and generates an internal clock from CLK2X (see Figure 12, page 18). Reset (RST_L). Driving RST low initializes the device to a known state. 16/67 Command Bus (CMD[8:0]. [1:0] specifies the command; [8:2] contains the command parameters. The descriptions of individual commands explains the details of the parameters. The encoding of commands based on the [1:0] field are: - 00: PIO READ - 01: PIO WRITE - 10: SEARCH - 11: LEARN Command Valid (CMDV). Qualifies the CMD bus as follows: - 0: No Command - 1: Command Address/Data Bus (DQ[67:0]). Carries the READ and WRITE address as well as the data during register, data, and mask array operations. It carries the compare data during SEARCH operations. It also carries the SRAM address during SRAM PIO accesses. READ Acknowledge (ACK). Indicates that valid data is available on the DQ Bus during register, data, and mask array READ operations, or the data is available on the SRAM data bus during SRAM READ operations. Note: ACK Signals require a pull-down resistor of 47. End of Transfer (EOT). Indicates the end of burst transfer during READ or WRITE burst operations. Note: EOT Signals require a pull-down resistor of 47 ohms. SEARCH Successful Flag (SSF). When asserted, this signal indicates that the device is the global winner in a SEARCH operation. SEARCH Successful Flag Valid (SSV). When asserted, this signal qualifies the SSF signal. SRAM Address (SADR[21:0]). This bus contains address lines to access off-chip SRAMs that contain associative data. See Table 35, page 61 for the details of the generated SRAM address. SRAM Chip Enable (CE_L). This is Chip Enable control for external SRAMs. When more than one device is cascaded, CE_L of all devices must be connected. SRAM WRITE Enable (WE_L). This is WRITE Enable control for external SRAMs. When more than one device is cascaded, WE_L of all devices must be connected. SRAM Output Enable (OE_L). This is Output Enable control for external SRAMs. Only the last device drives this signal (with the LRAM Bit set). M7010R Address Latch Enable (ALE_L). When this signal is low, the addresses on the SRAM address bus have been validated. When more than one device is cascaded, the ALE_L of all devices must be connected. Local Hit In (LHI[6:0]). These pins depth-cascade the device to form a larger table size. One signal of this bus is connected to the LHO[1] or LHO[0] of each of the upstream devices in a block. Connect all unused LHI pins to a logic '0.' (For more information, see DEPTH-CASCADING, page 52.) Local Hit Out (LHO[1:0]). LHO[1] and LHO[0] are the same logical signal. LHO[1] or LHO[0] is connected to one input of the LHI bus of up to four downstream devices (in a block that contains up to eight devices; for more information, see DEPTHCASCADING, page 52.) Block Hit In (BHI[2:0]). Inputs from the previous BHO[2:0] are tied to the BHI[2:0] of the current device (see DEPTH-CASCADING, page 52). In a four-block system, the last block can contain only seven devices because the ID code 11111 is used for broadcast access. Block Hit Out (BHO[2:0]). Outputs from the current device are connected to the BHI[2:0] of the next device (see DEPTH-CASCADING, page 52). Full In (FULI[6:0]). Each signal in this bus is connected to FULO[0] or FULO[1] of an upstream device to generate the FULL flag for the depthcascaded block. For more information, see DEPTH-CASCADING, page 52 to Generate Full for a Block Section. Full Out (FULO[1:0]). FULO[1] and FULO[0] are the same logical signal. One of these two signals must be connected to the FULI of up to four downstream devices in a depth-cascaded table. Bit [0] in the data array indicates if the entry is full (1) or empty (0).This signal is asserted if all of the bits in the data array are '1s.' Refer to Depth-Cascading to Generate a "FULL" State for a Block, page 52. Full Flag (FULL). When asserted, this signal indicates that the table consisting of many depthcascaded devices is full. Device Identification (ID[4:0]). The binary-encoded device ID for a depth-cascaded system starts at 00000 and goes up to 11110. 11111 is reserved for a special broadcast address that selects all cascaded (silicon) Search Engines in the system. On a broadcast read-only, the device with the LDEV Bit set to '1' responds. Test Data In (TDI). This is the Test Access Port's Test Data In. Test Clock (TCK). This is the Test Access Port's Test Clock. Test Data Out (TDO). This is the Test Access Port's Test Data Out. Test Mode Select (TMS). This is the Test Access Port's Test Mode Select. Test Reset (TRST_L). This is the Test Access 17/67 M7010R CLOCKS The M7010R receives a Clock (CLK2X) signal and Phase (PHS_L) signal. The Phase (PHS_L) divides the CLK2X signal to generate the Internal Clock (CLK), as shown in Figure 12. The CLK2X and CLK signals are used for internal operations. Registers All the M7010R registers are 68 bits wide. The M7010R contains 32 comparand storage registers, 16 global mask registers, 8 SEARCH-successful index registers, command, information, burst READ, burst WRITE, and next free address registers. Table 8 provides a register overview of all the registers. The registers are ordered in ascending address order. Comparand Registers The device contains thirty-two 68-bit comparand registers dynamically selected in every SEARCH operation to store the comparand presented on the DQ Bus. The LEARN command will also use these registers when it is executed. The M7010R stores the SEARCH command's "Cycle A" comparand in the even-number register and the "Cycle B" comparand in the odd-numbered register, as shown in Figure 13, page 19. Figure 12. Clocks CLK2X Mask Registers The device contains sixteen (8 pairs) 68-bit global mask registers dynamically selected in every SEARCH operation to select the SEARCH subfield (see Figure 14, page 19). The three-bit GMR Index supplied on the CMD bus applies eight pairs of global masks during the SEARCH and WRITE operations, also shown in Figure 14. Note: In 68-bit SEARCH and WRITE operations, the host ASIC must program the even and odd mask register with the same values, and the M7010R uses even-numbered mask registers as global masks. Each mask bit in the global mask registers is used during SEARCH and WRITE operations. In SEARCH operations, setting the Mask Bit to '1' enables compares; setting the Mask Bit to '0' disables compares (forced match) at the current bit position. In WRITE operations to the data or mask array, setting the Mask Bit to '1' enables WRITEs; setting the Mask Bit to '0' disables WRITEs at the corresponding bit position. PHS_L CLK(1) AI04274 Note: Any reference to "CLK Cycles" means 2 cycles of the signal, "CLK2X." 1. "CLK" is an internal signal. The period for this clock is specified in Table 7, page 15. Table 8. Register Overview Address 0-31 32-47 48-55 56 57 58 59 60 61-63 Abbreviation COMP0-31 MASKS SSR0-7 COMMAND INFO RBURREG WBURREG NFA - Type R RW R RW R RW RW R - Name 32 Comparand Registers. Stores comparands from the DQ Bus for learning later. 16 Global Mask Registers Array. 8 SEARCH Successful Index Registers. Command Register. Information Register. Burst READ Register. Burst WRITE Register. Next Free Address Register. Reserved 18/67 M7010R Figure 13. Comparand Register Selection During SEARCH and LEARN 68 Address Index 0 1 135 0 2 4 6 1 3 5 7 68 68 0 Address Index 0 1 2 3 4 5 6 7 135 0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15 68 0 Figure 14. Addressing the Global Mask Register (GMR) Array 15 30 31 AI04275 SEARCH and WRITE Command Global Mask Selection AI04276 SEARCH-Successful Registers The device contains eight SEARCH-successful registers (SSRs) to hold the index of the location where a successful search occurred. The format of each register is described in Table 9. The SEARCH command specifies which SSR stores the index of a specific SEARCH command in "Cycle B" of the SEARCH Instruction. After the index location is specified, the host ASIC can use this register to access that data array, mask array, or external SRAM using the index as part of the address (see SRAM ADDRESSING, page 58). The device with a valid bit set performs a READ or WRITE operation. All other devices suppress the operation. Table 9. SEARCH-Successful Register (SSR) Description Field Range Initial Value Description Index. This is the address of the 68-bit entry where a successful search occurs. The device updates this field if it has a successful search. In 136-bit, the LSB is '0;' in a 272-bit configuration, the two LSBs are '00.' The index updates if the device is either a local or global winner in a SEARCH operation. Reserved. Valid. The device sets this bit to '1' if it is a global winner (first device downstream with a hit) in a SEARCH operation, in a depth-cascaded configuration. Reserved. INDEX [13:0] X - VALID - [30:14] [31] [67:32] 0 0 0 19/67 M7010R The Command Register Table 10. Command Register Field Descriptions Field SRST Range [0] Initial Value 0 Description Software Reset. If '1,' this bit resets the device, with the same effect as the hardware reset. Internally, it generates a reset pulse lasting for eight CLK cycles. This bit automatically resets to a '0' during the reset cycle. Device Enable. If '0,' it keeps the SRAM bus (SADR, WE_L, CE_L, OE_L, and ALE_L), SSF, and SSV signals in a tri-state condition and forces the cascade interface output signals LHO[1:0] and BHO[2:0] to '0.' It also keeps the DQ Bus in Input mode. The purpose of this bit is to make sure that there is no bus contention when the devices power-up in the system. Table Size. The host ASIC must program this field to configure the chips into a table of a certain size. This field affects the pipeline latency of the SEARCH and LEARN operations as well as the READ and WRITE accesses to the SRAM (SADR[21:0], CE_L, OE_L, WE_L, ALE_L, SSV, SSF, and ACK). Once programmed, the SEARCH latency stays constant. TLSZ [3:2] 01 00: 1 device 01: 2-8 devices 10: 9-31 devices 11: Reserved Latency of Hit Signals. This field adds latency to the SSF, SSV, and ACK signals by the following number of CLK cycles during SEARCH and ACK during an SRAM READ access. HLAT [6:4] 000 000: 0 001: 1 010: 2 011: 3 100: 4 101: 5 110: 6 111: 7 Latency # CLK Cycles 4 5 6 DEVE [1] 0 LDEV [7] 0 Last device in the cascade. When set, this device is the last device in the depth-cascaded table and is the default driver for the SSF and SSV signals. In the event of a SEARCH failure, the device with this bit set drives the hit signals as follows: SSF = 0, SSV = 1 During non-search cycles, the device with this bit set drives the signals as follows: SSF = 0, SSV = 0 Last device on this SRAM Bus. When set, this device is the last device on the SRAM bus in the depth-cascaded table and is the default driver for the SADR, CE_L, WE_L, and ALE_L signals. In cycles where no M7010R device (in a depth-cascaded table) drives these signals, the signals are driven as follows: SADR = 22'h3FFFFF, CE_L = 1, WE_L = 1, and ALE_L = 1. OE_L is always driven by the device for which this bit is set. LRAM [8] 0 20/67 M7010R Field Range Initial Value Description Database Configuration. The device is internally divided into four quadrants of 8K x 68, each of which can be configured as 4K x 68, 2K x 136, or 1K x 272 as follows: 00: 4K x 68 01: 2K x 136 10: 1K x 272 11: Reserved Bits [10:9] apply to configuring the 1st quadrant in the address space. Bits [12:11] apply to configuring the 2nd quadrant in the address space. Bits [14:13] apply to configuring the 3rd quadrant in the address space. Bits [16:15] apply to configuring the 4th quadrant in the address space. Reserved. CFG [16:9] 0000 0000 [67:17] 0 21/67 M7010R SEARCH PROCEDURE FOR 32-BIT WIDE PREFIXES The Global Mask Register is used for 32-bit wide es a match, then in that case, the left half is a highdata paths as follows: er priority. So if only one unique match exists in a particular system, then a match on the left side Writing a '1' in the Global Mask Register allows may alleviate the need to do a search on the right data to be written into the M7010R. A '0' in the Glohalf of the Data array. bal Mask Register disallows data modification. Information is written into the left half of the 68-bit word Search Engine as long as space for 34 bits Figure 15. Global Mask Register Patterns of data is available and then into the right half of the Search Engine. 32-bit data can be entered in two cycles. Register 0 111 1000 0 The first step is to write into two of the eight Global Mask Registers with the patterns shown in Figure 15. Writing this data using Global Mask Register 1 allows the left half of the data array to be comRegister 1 000 0111 1 pletely filled. Figure 16 shows Bits 67 through 36 in the left section of the data array representing 32-bits of data. Bits 35 and 34 shown separately can be defined Bits 67 3433 0 by the user for table management. In this applicaAI04277 tion 34-bit operation occurs in each half-section of the Data and Mask arrays of the Search Engine. The left half is filled first, then the right. Not all loFigure 16. Storing left half of a Data or Mask cations have to be filled. Array SEARCH operations are performed twice, once on the left half and then on the right half. Note that a '1' in the Global Mask register enables a compare during a SEARCH operation and a '0' forces a match condition regardless of the state of the data bit. The SEARCH throughput for 34-bit operations is half of the 68-bit operations. A search is performed by using the Global Mask Register "0" for the left half of the 68-bit, then another search is performed using Global Mask Register 1 for the right half of the 68-bit word. The order is important, as the left Bits 67 36 35 34 33 2 10 half has a higher priority than the right half. For example, if a search on the left half produces AI04278 a match and a search on the right half also produc- 22/67 M7010R The Information Register Table 11. Information Register Field Descriptions Field Revision Implementation Reserved Device ID MFID Range [3:0] [6:4] [7] [15:8] [31:16] [67:32] Initial Value 0001 000 0 00000001 1101_1100_ 0111_1111 Description Revision Number. This is the current device revision number. Numbers start from one and increment by one for each revision of the device. This is the M7010R implementation number. Reserved. This is the Device Identification Number. Manufacturer ID. This field is the same as the manufacturer ID and continuation bits. Reserved. The READ Burst Address Register (RBURREG) These READ burst address register fields must be programmed before burst READ (see Table 12). The WRITE Burst Address Register (WBURREG) These WRITE burst address register fields must be programmed before burst WRITE (see Table 13). Table 12. READ Burst Register Description Field Range Initial Value Description Address. This is the starting address of the data array or mask array during a burst READ operation. It automatically increments by 1 for each successive read of the data array or mask array. Once the operation is complete, the contents of this field must be reinitialized for the next operation. Reserved. Length of Burst Access. The device provides the capability to read from 4 up to 511 locations in a single burst. The BLEN decrements automatically. Once the operation is complete, the contents of this field must be reinitialized for the next operation. Reserved. AADR [13:0] 0 [18:14] BLEN [27:19] 0 [67:28] Table 13. WRITE Burst Register Description Field Range Initial Value Description Address. This is the starting address of the data array or mask array during a burst WRITE operation. It automatically increments by 1 for each successive write of the data array or mask array.It increments by 1 for each successive read of the data array or mask array. Once the operation is complete, the contents of this field must be reinitialized for the next operation. Reserved. Length of Burst Access. The device provides the capability to write from 4 up to 511 locations in a single burst. The BLEN decrements automatically. Once the operation is complete, the contents of this field must be reinitialized for the next operation. Reserved. AADR [13:0] 0 [18:14] BLEN [27:19] 0 [67:28] 23/67 M7010R The NFA Register Bit [0] of each 68-bit data entry is a special bit designated for use in the operation of the LEARN command. In 68-bit configurations, the Bit[0] indicates whether a location is full (bit set to '1') or empty (bit set to '0'). Every WRITE/LEARN command loads the address of first 68-bit location that contains a "0" in the entry's Bit[0]. This is stored in the NFA register. If all the bits in a device are set to '1,' the M7010R asserts FULO[1:0] to '1.' In a 136-bit configuration, the LSB of this register is always set to '0.' The host ASIC must set Bit 0 and Bit 68 in a 136-bit word to either '0' or '1' to indicate full/empty status for a 136-bit entry. Note: Both Bits 0 and Bit 68 must be set to '0' or '1' (e.g., '10' or '01' settings are invalid). Table 14. NFA Register Address 60 67 - 14 Reserved 13 - 0 Index SEARCH ENGINE ARCHITECTURE The M7010R consists of 16k x 68-bit storage cells referred to as "data bits." There is a mask cell corresponding to each data cell. Figure 17 shows the three organizations of the device based on the value of CFG bits in the COMMAND register. During a SEARCH operation, the SEARCH Data Bit (S), Data Array Bit (D), Mask Array Bit (M) and the Global Mask Bit (G) are used in the following manner to generate a match at that bit position (see Table 15, page 25). The entry with all matched bit positions results in a successful search in the M7010R. In order for a successful SEARCH to make the device the local winner in the SEARCH operation, all 68-bit positions within a device must generate a match for a 68-bit entry in 68-bit-configured quadrants, or all 136-bit positions must generate a match for two consecutive even and odd 68-bit entries in quadrants configured as 136 bits, or all 272-bit positions must generate a match for four consecutive entries aligned to four entry-page boundaries of 68-bit entries in quadrants configured as 272 bits. An arbitration mechanism using a cascade bus determines the global winning device among the local winning devices in a SEARCH cycle. The global winning device drives the SRAM bus, SSV, and The SSF signals. In the case of a SEARCH failure, the device(s) with LDEV and LRAM bits set drive the SRAM bus, SSF, and SSV signals. The M7010R may be partitioned into up to four (4) quadrants of different widths (e.g., 34, 68, 136, or 272 bits), even within the same chip (see Application Notes AN1338 and AN1339). Figure 18 shows a sample configuration of different widths. Data and Mask Addressing Figure 19, page 26 shows the M7010R data array and mask array addressing procedure. The data array and mask array addresses differ only in one bit in the address cycle of the READ and WRITE commands. 24/67 M7010R Figure 17. M7010R Database Configuration 68 136 272 Data Masks 16 K 8K Masks Data CFG = 01010101 4K Masks Data CFG = 10101010 CFG = 00000000 AI04264 Table 15. Bit Position Match G 0 1 1 1 1 1 M x 0 1 1 1 1 S x x 0 0 1 1 D x x 0 1 0 1 Match 1 1 1 0 0 1 Figure 18. Multi-width Configuration Example 68 4K 68 4K 2K 1K 136 272 CFG = 10010000 AI04244 25/67 M7010R Figure 19. M7010R Data and Mask Array Addressing 68 67 0 1 2 3 16 K 0 271 0 4 4K 16380 16381 16382 16383 1 5 2 6 3 7 68 68 68 68 0 135 0 2 4 6 8K 1 3 5 7 68 68 0 CFG = 10101010 (272-bit configuration) 16383 CFG = 00000000 (68-bit Configuration) 16382 16383 CFG = 01010101 (136-bit Configuration) AI04263 26/67 M7010R COMMAND CODES AND PARAMETERS A master device, such as an ASIC controller, issues commands to the M7010R using the CMDV signal and the CMD Bus. The following subsections describe the functions of the commands. Command Codes The M7010R implements four basic commands shown in Table 16. The Command code must be presented to CMD[1:0] while keeping the command valid (CMDV) signal high for two CLK2X cyTable 16. Command Codes CMD Code 00 01 10 Command READ WRITE SEARCH Description Reads one of the following: data array, mask array, device registers, or external SRAM. Writes one of the following: data array, mask array, device registers, or external SRAM. Searches the data array for a desired pattern using the specified register from the global mask register array and local mask associated with each data cell. The device has internal storage for up to 16 comparands that it can learn. The device controller can insert these entries at the next free address (as specified by the NFA register) using the LEARN Instruction. cles. These two CLK2X cycles are designated as "Cycle A" and "Cycle B." The CMD[8:2] field passes the parameters of the command in CLK2X Cycles A and B. The controller ASIC must align the instructions with the CLK2X signal. Commands and Command Parameters Table 17 lists the CMD bus fields that contain the M7010R command parameters as well as their respective cycles. 11 LEARN Table 17. Command Parameters Cmd Cyc A READ B A WRITE B 0 0 0 GMR Index[2:0] 0 = Single 1 = Burst 68-bit or 136-bit: 0 272-bit: 1 in 1st Cycle 0 in 2nd Cycle 0 1 0 SADR[21] 0 SADR[20] 0 SADR[19] 0 0 0 0 = Single 1 = Burst 0 = Single 1 = Burst 0 0 0 1 8 SADR[21] 7 SADR[20] 6 SADR[19] 5 0 4 0 3 0 2 0 = Single 1 = Burst 1 0 0 0 GMR Index[2:0] A SEARCH B A LEARN(1) B SADR[21] SADR[20] SADR[19] GMR Index[2:0] 1 0 Successful SEARCH Register Index[2:0] SADR[21] 0 SADR[20] 0 SADR[19] Mode 0: 68-bit 1: 136-bit Comparand Register Index Comparand Register Index Comparand Register Index 1 1 1 0 1 1 Note: The SRAM Address Bit SADR [19] in the command bit C6 will not be passed to the SRAM (see Table 28). 1. The 272-bit configuration does not support the LEARN Instruction. 27/67 M7010R READ COMMAND The READ can be a single read of a data array, a mask array, an SRAM, or a register location (CMD[2] = 0). It can be a burst READ (CMD[2] = 1) using an internal auto-incrementing address register (RBURADR) of the data or mask array locations (see Table 18, page 30 and Table 19, page 30 for formats). A single-location READ operation takes six cycles, as shown in Figure 20, page 29. The burst READ adds two cycles for each successive read. The SADR[21:19] bits supplied in the READ Instruction Cycle A drives SADR[21:19] signals during the PIO READ of an SRAM location. The single READ operation takes six CLK cycles, in the following sequence: - Cycle 1: The host ASIC applies the READ Instruction on the CMD[1:0] (CMD[2] = 0), using CMDV = 1, and the DQ Bus supplies the address, as shown in Table 19, page 30 and Table 20, page 30. The host ASIC selects the device for which ID[4:0] matches the DQ[25:21] lines. If DQ[25:21] = 11111, the host ASIC selects the M7010R with the LDEV Bit set. The host ASIC also supplies SADR[21:19] on CMD[8:6] in Cycle A of the READ Instruction if the READ is directed to the external SRAM. - Cycle 2: The host ASIC releases the DQ[67:0] bus to a tri-state condition. - Cycle 3: The host ASIC keeps DQ[67:0] bus in a tri-state condition. - Cycle 4: The selected device starts to drive the DQ[67:0] bus and drives the ACK signal from Z to low. - Cycle 5: The selected device drives the READ data from the addressed location on the DQ[67:0] bus and drives the ACK signal high. - Cycle 6: The selected device floats the DQ[67:0] bus and drives the ACK signal low. At the termination of Cycle 6, the selected device releases the ACK line to a tri-state condition. The READ Instruction is complete, and a new operation can begin. The burst READ operation lasts 4 + 2n CLK-cycles (where "n" stands for the number of accesses in the burst specified by the BLEN field of the RBURREG) in the sequence shown in Figure 21, page 29. This operation assumes that the host ASIC has programmed the RBURREG with the starting address (ADDR) and the length of transfer (BLEN) before initiating the burst READ command. - Cycle 1: The host ASIC applies the READ Instruction on the CMD[1:0] (CMD[2] = 1), using CMDV=1 and the address supplied on the DQ Bus, as shown in Table 21, page 31. The host ASIC selects the device for which ID[4:0] matches the DQ[25:21] lines. If DQ[25:21] = 11111, the host ASIC selects the M7010R with the LDEV Bit set. - Cycle 2: The host ASIC floats DQ[67:0] to a tristate condition. - Cycle 3: The host ASIC keeps DQ[67:0] bus in a tri-state condition. - Cycle 4: The selected device starts to drive the DQ[67:0] bus and drives ACK, and EOT from Z to low. - Cycle 5: The selected device drives the READ data from the addressed location on the DQ[67:0] bus and drives the ACK signal high. Note: Cycles four and five repeat for each additional access until all the accesses specified in the burst length (BLEN) field of RBURREG are complete. On the last transfer, the M7010R drives the EOT signal high. - Cycle (4 + 2n): The selected device drives the DQ[67:0] to 3-state condition and drives the ACK and the EOT signals low. At the termination of Cycle 4 + 2n, the selected device floats the ACK line to 3-state condition. The burst READ Instruction is complete, and a new operation can begin (see Table 21, page 31 for burst READ address formats). 28/67 M7010R Figure 20. Single Location READ Cycle Timing Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 CLK2X PHS_L CMDV CMD[1:0] Read CMD[8:2] A B DQ ACK Address X Data AI04282 Figure 21. Burst READ of the Data and Mask Arrays (BLEN = 4) Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle Cycle 1 3 5 7 9 11 2 6 8 10 12 4 CLK2X PHS_L CMDV CMD[1:0] Read CMD[8:2] A B DQ Address FF Data0 FF Data1 FF Data2 FF Data3 ACK EOT AI04283 29/67 M7010R Table 18. READ Command Parameters CMD Parameter CMD[2] 0 Read Command Single Read Description Reads a single location of the data array, mask array, external SRAM, or device registers. All access information is applied on the DQ Bus. Reads a block of locations from the data array or mask array as a burst. The internal register (RBURADR) specifies the starting address and the length of the data transfer from the data array or mask array, and it auto-increments the address for each access. All other access information is applied on the DQ Bus. Note: The device registers and external SRAM can only be read in single-read mode. 1 Burst Read Table 19. Data and Mask Array, SRAM READ Address Format DQ [67:30] DQ [29] DQ [28:26] DQ [25:21] DQ [20:19] DQ [18:14] DQ [13:0] Reserved Successful SEARCH 0: Direct Register Index 1: Indirect (Applicable if DQ[29] is indirect) ID 00: Data Array If DQ[29] is '0,' this field carries address of data array location. If DQ[29] is '1,' the successful SEARCH Register specified on Reserved DQ[28:26] supplies the address of the data array location: {SSR[13:2], SSR[1] | DQ[1], SSR[0] | DQ[0]}(1) If DQ[29] is '0,' this field carries address of mask array location. If DQ[29] is '1,' the successful SEARCH Register specified on Reserved DQ[28:26] supplies the address of the mask array location: {SSR[13:2], SSR[1] | DQ[1], SSR[0] | DQ[0]}(1) If DQ[29] is '0,' this field carries address of SRAM location. Reserved If DQ[29] is '1,' the successful SEARCH Register specified on DQ[28:26] supplies the address of the SRAM location. Reserved Successful SEARCH 0: Direct Register Index 1: Indirect (Applicable if DQ[29] is indirect) ID 01: Mask Array Reserved Successful SEARCH 0: Direct Register Index 1: Indirect (Applicable if DQ[29] is indirect) ID 10: External SRAM Note: 1. "|" stands for logical OR operation, and "{ }" stands for concatenation operator. Table 20. READ Address Format for Internal Registers DQ[67:26] Reserved DQ[25:21] ID DQ[20:19] 11: Register DQ[18:6] Reserved DQ[5:0] Register Address 30/67 M7010R Table 21. READ Address Format for Data and Mask Arrays DQ[67:26] Reserved DQ[25:21] ID DQ[20:19] 00: Data Array DQ[18:14] Reserved DQ[13:0] Do not care. These 14 bits come from the internal register (RBURADR) which increments for each access. Do not care. These 14 bits come from the internal register (RBURADR) which increments for each access. Reserved ID 01: Mask Array Reserved WRITE COMMAND The WRITE can be a single write of a data array, mask array, register, or external SRAM location (CMD[2] = 0). It can also be a burst WRITE (CMD[2] = 1) using an internal auto-incrementing address register (WBURADR) of the data array or mask array locations (see Table 23, page 33 for format). A single-location WRITE is a three-cycle operation, shown in Figure 22, page 32. The burst WRITE adds one extra cycle for each successive location write. The WRITE operation sequence is as follows: - Cycle 1A: The host ASIC applies the WRITE Instruction to CMD[1:0] (CMD[2] = 0), using CMDV=1 and the address supplied on the DQ Bus, as shown in Table 22, page 33. The host ASIC also supplies the index to the global mask register (GMR) to mask the WRITE to the data array or mask array location in CMD[5:3]. For SRAM writes, the host ASIC must supply SADR[21:19] on CMD[8:6]. - Cycle 1B: The host ASIC continues to apply the WRITE Instruction to CMD[1:0] (CMD[2] = 0) using CMDV = 1 and the address supplied on the DQ Bus. The host ASIC continues to supply the GMR Index to mask the WRITE to the data or mask array locations in CMD[5:3]. The host ASIC selects the device where ID[4:0] matches the DQ[25:21] = 11111. - Cycle 2: The host ASIC drives the DQ[67:0] with the data to be written to the data array, mask array, external SRAM, or register location of the selected device. - Cycle 3: Idle cycle. At the termination of this cycle, another operation can begin. The burst WRITE operation lasts for (n + 2) CLK cycles, where "n" signifies the number of accesses in the burst as specified in the BLEN field of the WBURREG register (see Figure 23, page 32). This operation assumes that the host ASIC has programmed the WBURREG with the starting address (ADDR) and the length of transfer (BLEN) before initiating the burst WRITE command (see Table 24, page 33 for format). The sequence is as follows: - Cycle 1A: The host ASIC applies the WRITE Instruction on the CMD[1:0] (CMD[2] = 1), using CMDV = 1 and the address supplied on the DQ Bus, as shown in Table 23, page 33. The host ASIC also supplies the index to the global mask register to mask the WRITE to the data or mask array locations in CMD[5:3]. - Cycle 1B: The host ASIC continues to apply the WRITE Instruction to CMD[1:0] (CMD[2] = 0) using CMDV = 1 and the address supplied on the DQ Bus. The host ASIC continues to supply the GMR Index to mask the WRITE to the data or mask array locations in CMD[5:3]. The host ASIC selects the device where ID[4:0] matches the DQ[25:21] = 11111. - Cycle 2: The host ASIC drives the DQ[67:0] with the data to be written to the data array or mask array location of the selected device. The host ASIC writes the data on the DQ[67:0] bus only to the subfield that has the corresponding mask bit set to '1' in the global mask register specified by the index CMD[5:3] and supplied in Cycle 1. - Cycles 3 to n + 1: The host ASIC drives DQ[67:0] with the data to be written to the next data array or mask array location (addressed by the auto-increment AADR field of the WBURREG register) of the selected device. The host ASIC writes the data on the DQ[67:0] bus only to the subfield that has the corresponding mask bit set to '1' in the global mask register specified by the index CMD[5:3] and supplied in Cycle 1. The M7010R drives the EOT signal low from Cycle 3 to Cycle n; the M7010R drives the EOT signal high in Cycle n + 1 (n is specified in the BLEN field of the WBURREG). - Cycle n + 2: The M7010R drives the EOT signal low. At the termination of the Cycle n + 2, the M7010R floats the EOT signal to a 3-state, and a new instruction can begin. 31/67 M7010R Figure 22. Single Location WRITE Cycle Timing Cycle 0 Cycle 1 Cycle 2 Cycle 3 Cycle 4 CLK2X PHS_L CMDV CMD[1:0] Write CMD[8:2] A B DQ Address Data X AI04284 Figure 23. Burst WRITE of the Data and Mask Arrays (BLEN = 4) Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 CLK2X PHS_L CMDV CMD[1:0] Write CMD[8:2] A B DQ EOT Address Data0 Data1 Data2 Data3 X AI04285 32/67 M7010R Table 22. (Single) WRITE Address Format for Data and Mask Arrays or SRAM DQ [67:30] DQ [29] DQ [28:26] Successful SEARCH Register Index (Applicable if DQ[29] is indirect) Successful SEARCH Register Index (Applicable if DQ[29] is indirect) Successful SEARCH Register Index (Applicable if DQ[29] is indirect) DQ [25:21] DQ [20:19] DQ [18:14] DQ [13:0] If DQ[29] is '0,' this field carries the address of the data array location. If DQ[29] is '1,' the SSR specified on DQ[28:26] is used to generate the address of the data array location: {SSR[13:2], SSR[1] | DQ[1], SSR[0] | DQ[0]}.(1) If DQ[29] is '0,' this field carries address of the mask array location. If DQ[29] is '1,' the SSR specified on DQ[28:26] is used to generate the address of the data array location: {SSR[13:2], SSR[1] | DQ[1], SSR[0] | DQ[0]}.(1) If DQ[29] is '0,' this field carries address of the data SRAM location. If DQ[29] is '1,' the SSR specified on DQ[28:26] is used to generate the address of the data array location: {SSR[13:2], SSR[1] | DQ[1], SSR[0] | DQ[0]}.(1) Reserved 0: Direct 1: Indirect ID 00: Data Array Reserved Reserved 0: Direct 1: Indirect ID 01: Mask Array Reserved Reserved 0: Direct 1: Indirect ID 10: External SRAM Reserved Note: 1. "|" stands for logical OR operation, and "{ }" stands for concatenation operator. Table 23. WRITE Address Format for Internal Registers DQ[67:26] Reserved DQ[25:21] ID DQ[20:19] 11: Register DQ[18:6] Reserved DQ[5:0] Register address Table 24. WRITE Address Format for Data and Mask Array (Burst WRITE) DQ [67:26] Reserved DQ [25:21] ID DQ [20:19] 00: Data array DQ [18:14] Reserved DQ [13:0] Don't care. These 14 bits come from the internal register (WBURADR), which increments with each access. Don't care. These 14 bits come from the internal register (WBURADR), which increments with each access. Reserved ID 01: Mask array Reserved 33/67 M7010R SEARCH COMMAND The M7010R Search Engine can be configured in three ways: 1. 68-bit 2. 136-bit 3. 272-bit 4. Mixed-sized SEARCHES on tables configured with different widths 68-bit Configuration Figure 25, page 35 shows the timing diagram for a SEARCH operation in the 68-bit-configured table (one device only). This illustration assumes that the host ASIC has programmed TLSZ to '00,' HLAT to '000,' LRAM to '1,' and LDEV to '1' in the command register. The hardware diagram for this search subsystem is shown in Figure 24. - Cycle A: The host ASIC drives CMDV high and applies the SEARCH command code (10) on CMD[1:0]. CMD[5:3] must be driven by the index to the global mask register pair for use in the SEARCH operation. CMD[8:6] signals must be driven by the same bits that will be driven on SADR[21:19] by this device if it has a hit. DQ[67:0] must be driven with the data to be compared. CMD[2] signal must be driven to logic '0.' - Cycle B: The host ASIC continues to drive CMDV high and to apply the SEARCH command (10) on CMD[1:0]. CMD[5:2] must be driven by the index of the comparand register pair for storing the 136-bit word presented on the DQ Bus during Cycles A and B. CMD[8:6] signals must be driven with the index of the SSR that will be used for storing the address of the matching entry and the hit flag. The DQ[67:0] continues to carry the 68-bit data to be compared. Note: In the 68-bit configuration, the host ASIC must supply the same data on DQ[67:0] during cycles A and B. The even and odd GMR pairs selected for the compare must be programmed with the same value. The SEARCH command is a pipelined operation and executes a SEARCH at half their rate of frequency of CLK2X for 68-bit searches in x68-configured tables. The latency of SADR, CE_L, ALE_L, WE_L, SSV, and SSF from 68-bit SEARCH Command cycle (= two CLK2X cycles) is shown in Table 27, page 36. The timing diagram for all SRAM interface signals, SSV, and SSF shift to the right for different values of TLSZ, as specified in Table 25, page 36 and Table 26, page 36. In addition, SSV and SSF shift to the right for different values of HLAT, as specified in Table 26, page 36. 68-bit Configuration with LDEV = 1. The device is configured to be the last in the depth-cascaded table by setting LDEV to '1' in the Command Register. The device with LDEV set to '1' drives the SSF and SSV signals in cycles when all upstream devices do not drive these signals. The M7010R with its LDEV Bit set drives SSF and SSV during a search with a miss or with non-search commands (see the LDEV Bit definition in Table 10, page 20). 68-bit Configuration with LRAM = 1. Setting LRAM to '1' in the Command Register configures the device to be the last on the SRAM Bus. In a cycle where the upstream device does not drive the SRAM Bus, the last device of the SRAM Bus (with LRAM = 1) drives the bus (SADR, CE_L, WE_L, ALE_L) when they are active. When set to '1,' the LRAM Bit sets the default driver for the SRAM control signals (SADR, CE_L, WE_L, and ALE_L). Figure 24. Hardware Diagram for a Table with a Single Device (68-bit Operation) DQ[67:0] CMDV, CMD[8:0] SSF, SSV BHI[2:0] 6 5 4 M7010R BHI[2:0] LHO[1] 3 LHI 2 1 0 SRAM LHO[0] AI07040 34/67 M7010R Figure 25. 68-Bit Configuration SEARCH Timing Diagram (One Device) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L CMDV Search1 Search3 01 Search2 01 01 Search4 CMD[1:0] 01 CMD[8:2] A BA B A B A B DQ D1 D2 D3 D4 SADR[21:0] ALE_L, CE_L WE_L OE_L SSV 0 A1 A3 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 SSF 0 1 0 1 0 Hit Miss Hit Miss CFG = 00000000, HLAT = 000, TLSZ = 00, LRAM = 1, LDEV = 1 AI04286 35/67 M7010R Table 25. Right-Shift of 68-bit Signals for TLSZ Values TLSZ 00 01 10 Number of CLK Cycles 0 1 2 Table 26. Shift of SSF and SSV from SADR (for different HLAT Values) HLAT 000 001 010 011 100 101 110 111 Number of CLK Cycles 0 1 2 3 4 5 6 7 Table 27. Latency of SEARCH from Instruction to SRAM Access Cycle (68-bit Mode) # of devices 1 (TLSZ = 00) 2-8 (TLSZ = 01) 9-31 (TLSZ = 10) Max Table Size 16K x 68-bit 128K x 68-bit 496K x 68-bit Latency in CLK Cycles 4 5 6 36/67 M7010R 68-bit Logical SEARCH The logical, 68-bit SEARCH operation is shown in Figure 26. The entire table of 68-bit entries is compared to a 68-bit word K (presented on the DQ Bus in both Cycles A and B of the command) using the GMR and the local mask bits. The effective GMR is the 68-bit word specified by the identical value in both even and odd GMR pairs selected by the GMR Index in the command's Cycle A. The 68-bit word K (presented on the DQ Bus in both Cycles A and B of the command) is also stored in both even and odd comparand register pairs selected Figure 26. x68 Table with One Device 67 GMR K Location 67 address 0 1 2 3 0 0 by the Comparand Register Index in the command's Cycle B. In a x68 configuration, only the even comparand register can subsequently be used by the LEARN command. The word K (presented on the DQ Bus in both Cycles A and B of the command) is compared with each entry in the table, starting at location "0." The first matching entry's location, address "L," is the winning address that is driven as part of the SRAM address on the SADR[21:0] lines. 67 0 Comparand Register (even) K Comparand Register (odd) K L (First matching entry) 16383 CFG = 00000000 (68-bit Configuration) AI07041 37/67 M7010R 136-bit Configuration Figure 28, page 39 shows the timing diagram for the SEARCH operation in the 136-bit table (CFG = 01010101) consisting of a single device for one set of parameters: TLSZ = 00, HLAT = 001, LRAM = 1, and LDEV = 1. The hardware diagram for the search subsystem is shown in Figure 27. The following is the operation sequence for a single, 136-bit SEARCH command. - Cycle A: The host ASIC drives the CMDV high and applies the SEARCH command code (10) to CMD[1:0] signals. CMD[5:3] signals must be driven with the index to the GMR pair for use in this SEARCH operation. CMD[8:6] signals must be driven with the same bits that will be driven on SADR[21:19] by this device if it has a hit. DQ[67:0] must be driven with the 68-bit data ([135:68]) to be compared against all even locations. The CMD[2] signal must be driven to logic '0.' - Cycle B: The host ASIC continues to drive the CMDV high and applies SEARCH command code (10) on CMD[1:0]. CMD[5:2] must be driven by the index to the comparand register pair for storing the 136-bit word presented on the DQ Bus during Cycles A and B. CMD[8:6] signals must be driven by the index of the SSR that will be used for storing the address of the matching entry and hit flag. The DQ[67:0] is driven with 68-bit data ([67:0]), compared to all odd locations. Note: For 136-bit searches, the host ASIC must supply two distinct, 68-bit data words on DQ[67:0] during Cycles A and B. The evennumbered GMR of the pair specified by the GMR Index is used for masking the word in Cycle A. The odd-numbered GMR of the pair specified by the GMR Index is used for masking the word in Cycle B. The SEARCH command is a pipelined operation that executes searches at half the rate of the frequency of CLK2X for 136-bit searches in x136-bitconfigured tables. The latency of SADR, CE_L, ALE_L, WE_L, SSV, and SSF from the 136-bit SEARCH command cycle (two CLK2X cycles) is shown in Table 30, page 40. The timing diagram for all SRAM interface signals, SSV, and SSF shift to the right for different values of TLSZ, as specified in Table 28, page 40. In addition, SSV and SSF shift to the right for different values of HLAT, as specified in Table 29, page 40. The result of the SEARCH operation appears as an SRAM READ Cycle with a pipelined latency. It is specified as shown in Table 30, page 40. Figure 27. Hardware Diagram for a Table with One Device (136-bit Operation) DQ[67:0] CMDV, CMD[8:0] SSF, SSV BHI[2:0] 6 5 4 M7010R BHI[2:0] LHO[1] 3 LHI 2 1 0 SRAM LHO[0] AI07040 38/67 M7010R Figure 28. 136-Bit Configuration SEARCH Timing Diagram (One Device) Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle Cycle Cycle 10 8 9 Cycle 1 Cycle 7 CLK2X PHS_L CMDV Search1 Search3 01 Search2 01 01 Search4 CMD[1:0] 01 CMD[8:2] A BA B A B A B DQ A B A B A B A B D1 D2 D3 D4 A1 A3 SADR[21:0] ALE_L, CE_L WE_L OE_L SSV 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 0 1 SSF 0 1 0 1 0 Hit Miss Hit Miss CFG = 01010101, HLAT = 001, TLSZ = 00, LRAM = 1, LDEV = 1 AI04287 39/67 M7010R Table 28. Right-Shift of 136-bit Signals for TLSZ Values TLSZ 00 01 10 Number of CLK Cycles 0 1 2 Table 29. Shift of SSF and SSV from SADR (for different HLAT values) HLAT 000 001 010 011 100 101 110 111 Number of CLK Cycles 0 1 2 3 4 5 6 7 Table 30. Latency of SEARCH from Instruction to SRAM Access Cycle (136-bit Mode) # of devices 1 (TLSZ = 00) 2-8 (TLSZ = 01) 9-31 (TLSZ = 10) Max Table Size 8K x 136-bit 64K x 136-bit 248K x 136-bit Latency in CLK Cycles 4 5 6 40/67 M7010R 136-bit Logical SEARCH The logical, 136-bit SEARCH operation is shown in Figure 29. The entire table of 136-bit entries is compared to a 136-bit word K (presented on the DQ Bus in both Cycles A and B of the command) using the GMR and the local mask bits. The GMR is the 136-bit word specified by the even and odd global mask pair selected by GMR Index in the command's Cycle A. The 136-bit word K (presented on the DQ Bus in both Cycles A and B of the command) is also stored in both even and odd comparand register pairs selected by the Comparand Register Index in the command's Cycle B. The two comparand registers can subsequently be used by the LEARN command with the evenFigure 29. x136 Table with One Device 135 GMR K Location 135 address 0 2 4 6 Even A Odd B 0 0 numbered comparand register stored in an evennumbered location, and the odd-numbered comparand register stored in an adjacent, odd-numbered location. The word K (presented on the DQ Bus in Cycles A and B of the command) is compared with each entry in the table starting at location "0." The first matching entry's location, address "L," is the winning address that is driven as part of the SRAM address on the SADR[21:0] lines. Note: The matching address is always going to be an even-numbered address for a 136-bit SEARCH. 67 0 Comparand Register (even) A Comparand Register (odd) B L (First matching entry) 16382 CFG = 01010101 (136-bit Configuration) AI07042 41/67 M7010R 272-bit Configuration Figure 31, page 43 shows the timing diagrams for a SEARCH operation in the 272-bit-configured table (CFG = 10101010) consisting of a single device for one set of parameters: TLSZ = 00, HLAT = 001, LRAM = 1, and LDEV = 1. The hardware diagram for this search subsystem is shown in Figure 30. - Cycle A: The host ASIC drives the CMDV high and applies the SEARCH command code (10) to CMD[1:0] signals. CMD[5:3] signals must be driven with the index to the GMR pair for bits [271:136] of the data being searched. DQ[67:0] must be driven with the 68-bit data ([271:204]) to be compared to all locations "0" in the four 68bits-word page. The CMD[2] signal must be driven to logic '1.' Note: CMD[2] = 1 signals that the search is a x272-bit search. CMD[8:3] is ignored. - Cycle B: The host ASIC continues to drive CMDV high and continues to apply SEARCH command code (10) on CMD[1:0]. The DQ[67:0] is driven with 68-bit data ([203:136]) to be compared to all locations "1" in the 68-bitsword page. - Cycle C: The host ASIC drives the CMDV high and applies the SEARCH command code (10) to CMD[1:0] signals. CMD[5:3] signals must be driven with the index to the GMR pair for bits [135:0] of the data being searched. CMD[8:6] signals must be driven with the bits that will be driven on SADR[21:19] by this device if it has a hit. DQ[67:0] must be driven with the 68-bit data ([135:68]) to be compared to all locations "2" in the four 68-bits-word page. The CMD[2] signal must be driven to logic '0.' - Cycle D: The host ASIC continues to drive CMDV high and applies SEARCH command code (10) on CMD[1:0]. CMD[8:6] signals must be driven with the index of the SSR that will be used for storing the address of the matching entry and hit flag (see Table 9, page 19 for a description of SSR[0:7]). The DQ[67:0] is driven with the 68-bit data ([67:0]) to be compared to all locations "3" in the four 68-bits-word page. CMD[5:2] is ignored because the LEARN Instruction is not supported for x272 tables. Note: For 272-bit searches, the host ASIC must supply four distinct 68-bit data words on DQ[67:0] during Cycles A, B, C, and D. The GMR Index in Cycle A selects a pair of GMRs that apply to DQ data in Cycles A and B. The GMR Index in Cycle C selects a pair of GMRs that apply to DQ data in Cycles C and D. The SEARCH command is a pipelined operation that executes searches at one-fourth the rate of the frequency of CLK2X for 272-bit searches in x272-bit-configured tables. The latency of SADR, CE_L, ALE_L, WE_L, SSV, and SSF from the 272-bit SEARCH command (measured in CLK cycles) from the CLK2X cycle that contains the C and D cycles is shown in Table 33, page 44. The timing diagram for all SRAM interface signals, SSV, and SSF shift to the right for different values of TLSZ, as specified in Table 31, page 44. In addition, SSV and SSF shift to the right for different values of HLAT, as specified in Table 32, page 44. In the 272-bit configuration, SEARCH takes two CLK cycles. The result of the SEARCH operation appears as an SRAM READ Cycle with a pipelined latency measured from the second cycle of the command, as specified in Table 33, page 44. Figure 30. Hardware Diagram for a Table with One Device (272-bit Operation) DQ[67:0] CMDV, CMD[8:0] SSF, SSV BHI[2:0] 6 5 4 M7010R BHI[2:0] LHO[1] 3 LHI 2 1 0 SRAM LHO[0] AI07040 42/67 M7010R Figure 31. 272-Bit Configuration SEARCH Timing Diagram (One Device) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L A B CD CMDV CMD[1:0] 01 Search1 01 Search2 CMD[2] CMD[8:2] A BA B A B A B DQ A B A B A B A B D1 D2 SADR[21:0] ALE_L, CE_L WE_L OE_L SSV 0 A1 1 1 0 0 1 1 0 1 0 1 0 1 0 0 1 0 SSF 0 Hit Miss CFG = 10101010, HLAT = 001, TLSZ = 00, LRAM = 1, LDEV = 1 AI04288 43/67 M7010R Table 31. Right-Shift of 272-bit Signals for TLSZ Values TLSZ 00 01 10 Number of CLK Cycles 0 1 2 Table 32. Shift of SSF and SSV from SADR (for different HLAT Values) HLAT 000 001 010 011 100 101 110 111 Number of CLK Cycles 0 1 2 3 4 5 6 7 Table 33. Latency of SEARCH from Instruction to SRAM Access Cycle (272-bit Mode) # of devices 1 (TLSZ = 00) 2-8 (TLSZ = 01) 9-31 (TLSZ = 10) Max Table Size 4K x 272-bit 32K x 272-bit 124K x 272-bit Latency in CLK Cycles 4 5 6 44/67 M7010R 272-bit Logical SEARCH The logical 272-bit SEARCH operation is shown in Figure 32. The entire table of 272-bit entries is compared to a 272-bit word K (presented on the DQ Bus in both Cycles A, B, C, and D of the command) using the GMR and the local mask bits. The GMR is the 272-bit word specified by the two pairs of GMRs selected by GMR Indexes in the command's Cycles A and C. The 272-bit word K (presented on the DQ Bus in Cycles A, B, C, and D of Figure 32. x272 Table with One Device 271 GMR K Location 271 address 0 4 8 12 0 A 1 B 2 C 3 D 0 0 the command) is compared with each entry in the table starting at location "0." The first matching entry's location, address "L," is the winning address that is driven as part of the SRAM address on the SADR[21:0] lines. Note: The matching address is always going to be location "0" in a four-entry page for a 272-bit SEARCH (two LSBs of the matching index will be "00"). L (First matching entry) 16380 CFG = 10101010 (272-bit Configuration) AI07044 45/67 M7010R Mixed-sized Searches on Tables Configured with Different Width Using an M7010R Device This subsection will cover mixed searches (x68, Note: The DQ[67:66] will be "00" in each of the two x136, and x272) with tables of different widths A and B Cycles of the x68-bit SEARCH (Search1). (x68, x136, and x272). The sample operation DQ[67:66] is "01" in each of the A and B Cycles of shown is for a single device with CFG = 10010000, the x136-bit SEARCH (Search2). DQ[67:66] is containing three tables of x68, x136, and x272 "10" in each of the A, B, C, and D Cycles of the widths. The operation can be generalized to a x272-bit SEARCH (Search3). By having table desblock of 8 to 31 devices using four blocks; the timignation bits, the M7010R device enables the creing and the pipeline operation is the same as deation of many tables of different widths in a bank of scribed previously for fixed searches on a table of search engines. one-width-size. Figure 33 shows the sample table. Two bits in each 68-bit entry need to be designated as table Figure 34, page 47 shows three sequential number bits. One example choice might be: the searches; first, a 68-bit SEARCH on a table con"00" values for the table configured as x68, "01" figured as x68, then a 136-bit SEARCH on a table values for tables configured as x136, and "10" valconfigured as x136, and finally a 272-bit SEARCH ues for tables configured as x272. For the above on the table configured as x272. Each results in a explanation, it is further assumed that bits for hit. DQ[67:66] for each entry will be designed as such table designation bits. Figure 33. Multiwidth Configuration Example 68 8K 2K 1K 136 272 CFG = 10010000 AI07046 46/67 M7010R Figure 34. Timing Diagram for Mixed SEARCH (One Device) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L CMDV Search1 Search3 01 Search2 01 CMD[1:0] 01 CMD[2] CMD[8:2] A BA B A B A B DQ AB D1 A B A BCD D3 A1 A2 A3 D2 SADR[21:0] ALE_L, CE_L WE_L OE_L SSV 0 1 1 0 0 1 1 0 1 0 1 1 0 0 0 1 1 0 0 SSF 0 1 CFG = 10101010, HLAT = 010, TLSZ = 00, LRAM = 1, LDEV = 1 Search1 x68 Hit Search2 x136 Hit Search3 x272 Hit AI07045 47/67 M7010R LRAM and LDEV Description When search engines are cascaded using multiple M7010R devices, the SADR, CE_L, and WE_L (tri-state signals) are all tied together. To eliminate external pull-up and pull-downs, one device in a bank is designated as the default driver. For nonSEARCH or non-LEARN cycles (see LEARN COMMAND, page 48) or SEARCH cycles with a global miss, the SADR, CE_L, and WE_L signals are driven by the device with the LRAM Bit set. It is important that only one device in a bank of cascaded search engines have this bit set. Failure to do so will cause contention on SADR, CE_L, and WE_L, and can potentially cause damage to the device(s). Similarly, when search engines using multiple M7010R devices are cascaded, SSF and SSV (also tri-state signals) are tied together. To eliminate external pull-up and pull-downs, one device in a bank is designated as the default driver. For nonSEARCH or SEARCH cycles with a global miss, the SSF and SSV signals are driven by the device with the LRAM Bit set. It is important that only one device in a bank of cascaded search engines have this bit set. Failure to do so will cause contention on SSF and SSV, and can potentially cause damage to the device(s). LEARN COMMAND Bit [0] of each 68-bit data location specifies whether an entry in the database is occupied. If all the entries in a device are occupied, the device asserts FULO signal to inform the downstream devices that it is full. The result of this communication between depthcascaded devices determines the global FULL signal for the entire table. On a miss by the SEARCH (signalled to the ASIC through the SSV and SSF signals [SSV = 1, SSF = 0]), the host ASIC can apply the LEARN command to learn the entry from a comparand register to the next-free location (see The NFA Register, page 24). The NFA updates to the next-free location following each WRITE or LEARN command. In a depth-cascaded table, only a single device will learn the entry through the application of a LEARN Instruction. The determination of the LEARN device is based on the FULI and FULO signalling between the devices. The first non-full device learns the entry by storing the contents of the specified comparand registers to the location(s) pointed to by the NFA. In a x68-configured table, the LEARN command writes a single 68-bit location. In a 136-bit-configured table, the LEARN command writes the next even and odd 68-bit locations. In 136-bit mode, Bit[0] of the even and odd 68-bit locations is '0,' indicating that they are cascaded empty, or '1,' which indicates that they are occupied. The global FULL signal indicates to the table controller (the host ASIC) that all entries within a block are occupied and that no more entries can be learned. The M7010R device updates the signal to a data array after each WRITE or LEARN command. Also using the NFA Register as part of the SRAM address, the LEARN command generates a WRITE cycle to the external SRAM. The LEARN command is supported on a single block containing up to eight devices if the table is configured as either a x68 or a x136. The LEARN command is not supported for x272-configured tables. The LEARN operation lasts two CLK cycles. The sequence of this operation is as follows: - Cycle 1A: The host ASIC applies the LEARN Instruction on CMD[1:0] using CMDV = 1. The CMD[5:2] field specifies the index of the comparand register pair that will be written to the data array in the 136-bit-configured table. For a LEARN in a 68-bit-configured table, the evennumbered comparand specified by this index will be written. CMD[8:6] carries the bits that will be driven on SADR[21:19] in the SRAM WRITE cycle. - Cycle 1B: The host ASIC continues to drive CMDV to '1,' CMD[1:0] to '11,' and CMD[5:2] with the comparand pair index. CMD[6] must be set to '0' if the LEARN is being performed on a 68-bit-configured table, and to '1' if the LEARN is being performed on a 136-bit-configured table. - Cycle 2: The host ASIC drives CMDV to '0.' At the end of Cycle 2, a new instruction can begin. SRAM WRITE latency is the same as the SEARCH to the SRAM READ cycle measured from the second cycle of the LEARN Instruction. 48/67 M7010R LEARN is a pipelined operation and last for two CLK cycles where TLSZ = 00, as shown in Figure 35, page 49, and TLSZ = 01, as shown in Figure 36, page 50 and Figure 37, page 51. Figure 36 and Figure 37 assume that the device performing the LEARN operation is not the last device in the table and has its LRAM Bit set to '0.' Note: The OE_L for the device with the LRAM Bit set goes high for two cycles for each LEARN (one during the SRAM WRITE cycle, and one during the cycle before it). The latency of the SRAM WRITE cycle from the second cycle of the instruction is shown in Table 34, page 51. Figure 35. LEARN Command Timing Diagram (TLSZ = 00) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L CMDV CMD[1:0] Learn1 X Learn2 X Comp1 Comp2 B X X CMD[8:2] A DQ X 1A 1B X X X SADR[21:0] ALE_L, CE_L WE_L OE_L 0 A1 A2 1 1 1 0 0 1 1 0 0 1 1 0 SSV SSF 0 0 TLSZ = 00, LRAM = 1, LDEV = 1 AI04289 49/67 M7010R Figure 36. LEARN Timing Diagram (TLSZ = 1, except on Last Device) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L CMDV CMD[1:0] Learn1 X Learn2 X Comp1 Comp2 B X X CMD[8:2] z A DQ X 1A 1B X X X z SADR[21:0] ALE_L, CE_L z z A1 z A2 z 0 z 0 z z z z = tri-state condition 0 0 WE_L OE_L SSV SSF TLSZ = 00, LRAM = 0, LDEV = 0 AI07043 50/67 M7010R Figure 37. LEARN Timing Diagram on Device Number 7 (TLSZ = 01) Cycle 1 Cycle Cycle Cycle Cycle Cycle 2 4 6 3 5 Cycle 7 Cycle Cycle Cycle 10 8 9 CLK2X PHS_L CMDV CMD[1:0] Learn1 X Learn2 X Comp1 Comp2 B X X CMD[8:2] A DQ X 1A 1B X X X SADR[21:0] ALE_L, CE_L WE_L OE_L SSV SSF z z 1 1 0 0 0 1 z z 1 1 z z 1 1 0 TLSZ = 01, LRAM = 1, LDEV = 1 AI07047 Table 34. SRAM WRITE Cycle Latency from Second Cycle of LEARN Instruction Number of Devices 1 (TLSZ = 00) 1-8 (TLSZ = 01) 1-31 (TLSZ = 10) Latency in CLK Cycles 4 5 6 51/67 M7010R DEPTH-CASCADING The Search Engine application can depth-cascade the device to various table sizes in 68-bit, 136-bit, and 272-bit configurations by programming the table size (TLSZ) field of the Command Register. The devices perform all the necessary arbitration to decide which device drives the SRAM Bus. The latency of the searches increases as the table size increases while the search rate remains constant. Depth-Cascading Up to Eight Devices (One Block) Figure 38, page 53 shows how up to eight devices can cascade to form a 128K x68-bit, 64K x136-bit, or 32K x272-bit table. It also shows the interconnection between the devices for depth-cascading. The host ASIC must program the table size (TLSZ) field to '01.' Each Search Engine asserts the LHO[1] and LHO[0] signals to inform downstream devices in the cascade of its results. The LHI[6:0] signals for any device are connected to the LHO signals of the upstream device. A single device alone drives the SRAM bus in any given cycle. Depth-Cascading Up to 31 Devices (4 Blocks) Figure 39, page 54 shows how to cascade up to four blocks. Each block contains up to eight M7010Rs (except the last block, which contains 7 devices), to form a 496K x68, 248K x136, or 124K x272 table. Note the interconnection between blocks for depth-cascading. The host ASIC must program the table size (TLSZ) field to 10 for cascading 8 to 31 devices (in up to four blocks). For each search, a block asserts BHO[2], BHO[1], and BHO[0].The BHO[2:0] signals for a block are only taken from the last device in the block. See Figure 41, page 56 for the arbitration cycle between blocks to determine which device drives the SRAM Bus. The device is configured to be the last in the depth-cascaded table by setting LDEV to 1 in the Command Register. The device with LDEV set to 1 drives the SSF and SSV signals in cycles when all upstream devices do not drive these signals. The M7010R with its LDEV Bit set drives SSF and SSV during a search with a miss or with nonsearch commands. See the LDEV Bit definition in Table 10, page 20. Depth-Cascading to Generate a "FULL" State for a Block Bit[0] of each of the 68-bit entries is designated as a special bit (1 = FULL; 0 = Empty). For each LEARN or PIO WRITE to the data array, each device asserts FULO[1] and FULO[0] if it does not have any empty locations (see Figure 40, page 55). Each device combines the FULO signals from the devices above it with its own full status to generate a FULL signal, which will then give a "full" status of the table up to the device asserting the FULL signal. Figure 40, page 55 shows the hardware connection diagram for generating the FULL signal that goes back to the ASIC. In a depth-cascaded block of up to eight devices, the FULL signal from the last device should be fed back to the ASIC controller to indicate the fullness of the table. The FULL signal of the other devices should be left open. Note: The LEARN Instruction is supported for up to eight devices, whereas FULL cascading is allowed for one block in tables containing more than eight devices. In tables for which a LEARN Instruction will not be used, the Bit[0] of each 68-bit entry should always be set to '1.' 52/67 M7010R Figure 38. Depth-Cascading to Form a Single Block (8 Devices) DQ[67:0] CMDV CMD[8:0] BHI[2:0] LHO[1] 6 5 4 SRAM M7010R 3 LHI 2 1 0 LHO[0] SSF, SSV BHI[2:0] 3 2 1 0 LHO[1] M7010R 6 5 4 3 LHI 2 1 0 LHO[0] BHI[2:0] 3 2 1 0 6 5 4 LHO[1] M7010R 3 2 1 LHI LHO[0] 0 BHI[2:0] 3 2 1 0 6 5 4 LHO[1] M7010R 3 2 LHI LHO[0] 1 0 BHI[2:0] 3 2 1 0 6 5 4 M7010R 32 LHI 1 0 LHO[0] BHI[2:0] 3 2 1 LHI 0 6 M7010R 5 4 LHI LHO[0] BHI[2:0] 3 2 1 LHI 0 6 M7010R 5 4 LHI LHO[0] BHI[2:0] 3 2 1 LHI 0 6 M7010R 5 LHI 4 BHO[0] BHO[1] BHO[0] BHO[1] BHO[2] BHO[2] LHO[1] LHO[0] AI04243 53/67 M7010R Figure 39. Four Blocks (31 Devices Cascaded) SEARCH, 68-bit Configured with LDEV = 1 BHI[2] BHI[1] BHI[0] SSF, SSV Block #0 (Devices 0 to 7) Block of 8 M7010Rs BHO[2] BHO[1] BHO[0] GND SRAM BHI[2] BHI[1] BHI[0] Block #1 (Devices 8-15) Block of 8 M7010Rs BHO[2] BHO[1] BHO[0] GND BHI[2] BHI[1] BHI[0] Block #2 (Devices 16-23) Block of 8 M7010Rs BHO[2] BHO[1] BHO[0] GND DQ[67:0] CMD[8:0] CMDV BHI[2] BHI[1] BHI[0] Block #3 (Devices 24-30) Block of 7 M7010Rs BHO[2] BHO[1] BHO[0] AI04242 54/67 M7010R Figure 40. "FULL" State Generation in a Cascaded Table DQ[67:0] 6 FULO[1] 5 VDDQ 3 4 FULI 2 1 0 M7010R FULO[0] FULL VDDQ FULO[1] M7010R 6 5 3 4 FULI 2 1 0 FULO[0] FULL VDDQ 6 FULO[1] 5 M7010R 3 2 1 4 FULI FULO[0] 0 FULL VDDQ 6 FULO[1] 5 M7010R 3 2 4 FULI FULO[0] 1 0 FULL VDDQ 6 M7010R 3 5 4 FULI FULO[0] 2 1 0 FULL VDDQ 3 2 1 FULI 0 6 5 M7010R 4 FULI FULL FULO[0] VDDQ 3 2 1 FULI 0 6 5 M7010R 4 FULI FULO[0] FULL 3 2 1 FULI 0 6 5 M7010R 4 FULI FULL FULO[1] FULO[0] AI04241 55/67 M7010R ARBITRATION Figure 41, page 56 shows an example of the arbitration cycle for determining which device drives the SRAM Bus in a single block, up to eight M7010Rs with 136-bit configuration settings. Four cycles from the SEARCH command, all M7010Rs are informed of the SEARCH result within the device and drive their LHO signals. At the next cycle, all downstream devices know the outcome of the SEARCH in all the upstream devices. If any of the upstream devices has a hit, all the subsequent devices defer driving the SRAM Bus. If a SEARCH failure occurs, the M7010R with the LRAM Bit set (the last in the chain) drives the SRAM Bus signals. The device with LDEV set to '1' is the default driver of the SSV and SSF signals. Figure 42, page 57 shows how an M7010R arbitrates accesses to the SRAM. Figure 41. Timing Diagram for Arbitration Within a Block Cycle 2 Cycle 4 Cycle 6 Cycle 8 Cycle 10 Cycle 1 Cycle 3 Cycle 5 Cycle 7 Cycle 9 CLK2X PHS_L CMDV CMD[1:0] Learn1 X Learn2 X Comp1 Comp2 B X X CMD[8:2] A 1A 1B DQ SADR[21:0] ALE_L, CE_L WE_L OE_L X X X X A1 A2 TLSZ = 00, LRAM = 0, LDEV = 0 AI04293 56/67 M7010R Figure 42. Timing for Arbitration for Two or More Blocks for the Last Device Cycle 2 Cycle 4 Cycle 6 Cycle 8 Cycle 10 Cycle 1 Cycle 3 Cycle 5 Cycle 7 Cycle 9 CLK2X PHS_L CMDV Search1 Search3 CMD Search2 Search4 CMD[8:2] A B DQ D0 D1 D0 D1 D0 D1 D0 D1 SADR[21:0] 3FFFFF A1 A2 A3 A4 3FFFFF CE_L WE_L OE_L Miss LHO Hit Hit Hit BHO SSV SSF Arbitration Cycle within Blocks TLSZ = 10, HLAT = 000, LRAM = 1, LDEV = 1 AI04294 57/67 M7010R SRAM ADDRESSING Table 35, page 61 lists and describes the commands used to generate addresses on the SRAM address bus. The Index[13:0] field contains the address of a 68-bit entry that results in a hit in 68-bit configured quadrant. It is the address of the 68-bit entry that lies at the 136-bit page and 272-bit page boundaries in 136-bit and 272-bit configured quadrants, respectively. The register section of this specification describes the NFA and SSR registers. Adr[13:0] contains the address supplied on the DQ Bus during PIO access to the M7010R. Command Bits 8 and 7, CMD[8:6] are passed from the command to the SRAM address bus. See COMMAND CODES AND PARAMETERS, page 27 for more information. SRAM PIO Access SRAM READ. Enables READ access to the offchip SRAM that contains associative data. The latency from the issuance of the READ Instruction to the address appearing on the SRAM bus is the same as the latency of the SEARCH Instruction, and will depend on the value programmed for the TLSZ parameter in the device configuration register. The latency of the ACK from the READ Instruction is the same as the latency of the SEARCH Instruction to the SRAM address plus the HLAT programmed into the configuration register. Note: SRAM READ is a blocking operation - no new instruction can begin until the ACK is returned by the selected device performing the access. The following explains the SRAM READ operation in a table with only one device and having the following parameters: TLSZ = 00, HLAT = 000, LRAM = 1, and LDEV = 1. Figure 43, page 59 shows the associated timing diagram. For the fol- lowing description, the selected device refers only to the device in the table because it is the only device to be accessed. - Cycle 1A: The host ASIC applies the READ Instruction on CMD[1:0] using CMDV = 1. The DQ Bus supplies the address, with DQ[20:19] set to "10," to select the SRAM address. The host ASIC selects the device for which the ID[4:0] matches the DQ[25:21] lines. During this cycle, the host ASIC also supplies SADR[21:19] on CMD[8:6]. - Cycle 1B: The host ASIC continues to apply the READ Instruction on CMD[1:0] using CMDV = 1. The DQ Bus supplies the address with DQ[20:19] set to "10" to select the SRAM address. - Cycle 2: The host ASIC floats DQ[67:0] to a tristate condition. - Cycle 3: The host ASIC keeps DQ[67:0] in a tristate condition. - Cycle 4: The selected device starts to drive DQ[67:0] and drives ACK from High-Z to LOW. - Cycle 5: The selected device drives the READ address on SADR[21:0]; it also drives ACK HIGH, CE_L LOW, and ALE_L LOW. - Cycle 6: The selected device drives CE_L HIGH, ALE_L HIGH, the SADR Bus and DQ Bus in a tri-state condition, and ACK LOW. At the end of Cycle 6, the selected device floats ACK in a tri-state condition, and a new command can begin. Table 36, page 62 shows by how many cycles SRAM signals shift to the right for various TLSZ values. Table 37, page 62 shows by how many cycles SRAM signals shift to the right for various HLAT values. 58/67 M7010R Figure 43. SRAM READ Access for One M7010R Device Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 CLK2X PHS_L CMDV CMD[1:0] Read CMD[8:2] A B z z DQ OE_L WE_L ALE_L, CE_L SADR ACK SSV SSF z 0 0 0 1 1 Address 0 Address 1 0 1 0 z TLSZ = 00, HLAT = 000, LRAM = 1, LDEV = 1 DQ driven by M7010R AI04295 59/67 M7010R SRAM WRITE. Enables WRITE access to the offchip SRAM containing associative data. The latency from the second cycle of the WRITE Instruction to the address appearing on the SRAM bus is the same as the latency of the SEARCH Instruction, and will depend on the TLSZ value parameter programmed into the device configuration register. Note: SRAM WRITE is a pipelined operation - new instruction can begin right after the previous command has ended. The following explains the SRAM WRITE operation accomplished through a table of only one device with the following parameters: TLSZ = 00, HLAT = 000, LRAM = 1, and LDEV = 1. Figure 44, page 61 shows the timing diagram. For the following description, the selected device refers to the only device in the table as this is the only device that will be accessed. - Cycle 1A:The host ASIC applies the WRITE Instruction on CMD[1:0] using CMDV = 1. The DQ Bus supplies the address, with DQ[20:19] set to "10," to select the SRAM address. The host ASIC selects the device for which the ID[4:0] matches the DQ[25:21] lines. The host ASIC also supplies SADR[21:19] on CMD[8:6] in this cycle. Note: CMD[2] must be set to '0' for SRAM WRITE, because burst WRITES into the SRAM are not supported. - Cycle 1B: The host ASIC continues to apply the WRITE Instruction on CMD[1:0] using CMDV = 1. The DQ Bus supplies the address with DQ[20:19] set to "10" to select the SRAM address. Note: CMD[2] must be set to '0' for SRAM WRITE, because burst WRITES into the SRAM are not supported. - Cycle 2: The host ASIC continues to drive DQ[67:0]. The data in this cycle is not used by the M7010R. - Cycle 3: The host ASIC continues to drive DQ[67:0]. The data in this cycle is not used by the M7010R. At the end of Cycle 3, a new command can begin. The WRITE is a pipelined operation; however, the WRITE cycle appears at the SRAM bus with the same latency as the SEARCH Instruction (as measured from the second cycle of the WRITE command). 60/67 M7010R Figure 44. SRAM WRITE Access for One M7010R Device Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 CLK2X PHS_L CMDV CMD[1:0] Write CMD[8:2] A B DQ OE_L WE_L ALE_L, CE_L SADR ACK SSV SSF z 0 0 Address x x 1 0 0 Address 0 1 1 TLSZ = 00, HLAT = 000, LRAM = 1, LDEV = 1 AI04296 Table 35. SRAM Bus Address Generation Command SEARCH LEARN PIO READ PIO WRITE Indirect Access SRAM Operation Read Write Read Write Write/Read 21 C8 C8 C8 C8 C8 20 C7 C7 C7 C7 C7 19 C6 C6 C6 C6 C6 [18:15] ID[4:0] ID[4:0] ID[4:0] ID[4:0] ID[4:0] [14:0] Index[14:0] NFA[14:0] Adr[14:0] Adr[14:0] SSR[14:0] 61/67 M7010R Table 36. Right-Shift of SRAM Signals for TLSZ Values TLSZ 00 01 10 Number of CLK Cycles 0 1 2 Table 37. Right-Shift of SRAM Signals for HLAT Values HLAT 000 001 010 011 100 101 110 111 Number of CLK Cycles 0 1 2 3 4 5 6 7 JTAG (1149.1) TESTING The M7010R supports the Test Access Port (TAP) and Boundary Scan Architecture as specified in the IEEE JTAG standard 1149.1. The pin interface to the chip consists of five signals with the standard definitions: TCK, TMS, TDI, TDO, and TRST_L. Table 38, page 62 describes the operaTable 38. Test Access Port Controller Instructions Instruction SAMPLE/PRELOAD Type Mandatory tions that the test access port controller supports. Table 39 shows the TAP Device ID Register. Note: To disable JTAG functionality, connect the TCK, TMS, and TDI pins to VDDQ through a pullup, and the TRST_L to ground through a pulldown. Description Sample/Preload. Loads the values of signals going to and from IO pins into the boundary scan shift register to provide a snapshot of the normal functional operation. External Test. Uses boundary scan values shifted in from TAP to test connectivity external to the device. Internal Test. Allows slow-speed, functional testing of the device using the boundary scan register to provide the I/O values. EXTEST INTEST Mandatory Optional Table 39. TAP Device ID Register Field Revision Part # MFID LSB Range [31:28] [27:12] [11:1] [0:0] Initial Value 0001 Description Revision Number. This is the current device revision number. Numbers start from one and increment by one for each revision of the device. 0000 0000 0000 0001 This is the part number for this device. 000_1101_1100 1 Manufacturer ID. This field is the same as the manufacturer ID used in the TAP controller. Least Significant Bit 62/67 M7010R POWER DISTRIBUTION GUIDELINE In order to prevent voltage supply sags that can potentially degrade device performance, large bypass capacitors are often recommended. Since the bulk storage not only contains an effective series resistance, but also a fairly high inductance, the large bypass capacitors should be assisted by other capacitors that have a lower inductance (but typically less capacitance). These high frequency capacitors control the switching transients and hold-over the power planes during an average load change until the higher inductance capacitors can react. High frequency bypass capacitors are used having values of 0.01uF and 0.1uF. For a single Search Engine application, a recommended power plane and ground plane may be laid out as follows: - A 1000uF bulk capacitor is recommended for the 1.8V VDD source supply. - A 100uF bulk capacitor is recommended for the 3.3V VDDQ source supply. - Four sets of 0.1uF and 0.01uF high frequency capacitors are recommended between VDD, VDDQ and ground. Multiple bulk and high frequency capacitors may also be required. Users can determine the values of such capacitors after computing, based on their system and power supply environment. The device should achieve the search performance as specified with the bypass capacitors. This application note is a general guideline for Search Engine Design. For more detailed information, please refer to Intel Website for Appnote AP912, Pentium III Xeon Processor Power Distribution Guidelines. (http://support.intel.com/design/ pentiumiii/xeon/applnots/245095.htm). Figure 45. Network Search Engine Power Distribution 100F VDDQ Source VDD 1000F VDDQ Source 0.1F 0.01F 0.1F 0.1F VDDQ 0.01F GND 0.01F VDDQ 0.1F 0.01F VDD AI04297 63/67 M7010R PART NUMBERING Table 40. Ordering Information Scheme Example: M70 10 R -083 ZA 1 T Device Type M70 Search Engine Density 10 = 1Mb (16K x 68-bit Table Entries) Operating Supply Voltage R = VDD = 1.8V Speed -083 = 83 Million Searches per Second -066 = 66 Million Searches per Second Package ZA = PBGA, 272-count, 27mm x 27mm(1) Temperature Range 1 = 0 to 70 C Shipping Option Tape & Reel Packing = T Note: 1. Where "Z" is the symbol for BGA packages and "A" denotes 1.27mm ball pitch For a list of available options (e.g., Speed, Package) or for further information on any aspect of this device, please contact the ST Sales Office nearest to you. 64/67 M7010R PACKAGE MECHANICAL INFORMATION Figure 46. PBGA-Z00 - 272-ball Plastic Ball Grid Array Package Outline D2 0.56 REF. A1 1.17 REF. 19 17 15 13 11 9 7 5 3 1 20 18 16 14 12 10 8 6 4 2 30 TYP. PIN #1 e E2 E E1 A B C D E F G H J K L M N P R T U V W Y A2 4.00*45 (4x) C ddd C B A 0.220 (3x) e D1 D b 0.300 C A S B S 0.100 C b (272x) PBGA-Z00 Note: Drawing is not to scale. Table 41. PBGA-Z00 - 272-ball Plastic Ball Grid Array Package Mechanical Data mm Symb Typ A(4) A1(2,3) A2 B(4) b D D1 D2 E E1 E2 e ddd 27.00 0.75 27.00 24.13 24.00 27.00 24.13 24.00 1.27 0.20 26.80 27.20 27.00 0.60 Min 26.80 0.50 1.63 26.80 0.60 26.80 Max 27.20(1) 0.70 1.90 27.20 0.90 27.20 1.102 0.031 1.102 0.985 0.980 1.102 0.985 0.980 0.052 0.008 1.094 1.110 Typ 1.102 0.024 Min 1.094 0.020 0.067 1.094 0.024 1.094 Max 1.110(1) 0.029 0.078 1.110 0.037 1.110 inches Note: 1. Maximum mounted height is 2.45mm based on a 0.65mm ball pad diameter. Solder paste is 0.15mm thickness and 0.65mm in diameter. 2. The terminal A1 corner must be identified on the top surface by using a corner chamfer, ink, or metallized markings, or other feature of package body or integral heatslug. 3. A distinguished feature is allowable on the bottom surface of the package to identify the terminal A1 corner. 4. Exact shape of each corner is optional. 65/67 M7010R REVISION HISTORY Table 42. Document Revision History Date January 2002 07/23/02 Rev. # 1.0 1.1 First Issue Changes after extensive review (Figures 3, 8, 11, 12, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 43, 44; Tables 6, 7, 9, 10, 12, 17, 19, 22, 26, 27, 29, 30, 32, 33, 34, 35) Revision Details 66/67 M7010R Information furnished is believed to be accurate and reliable. However, STMicroelectronics assumes no responsibility for the consequences of use of such information nor for any infringement of patents or other rights of third parties which may result from its use. No license is granted by implication or otherwise under any patent or patent rights of STMicroelectronics. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. STMicroelectronics products are not authorized for use as critical components in life support devices or systems without express written approval of STMicroelectronics. The ST logo is registered trademark of STMicroelectronics All other names are the property of their respective owners. (c) 2002 STMicroelectronics - All Rights Reserved STMicroelectronics GROUP OF COMPANIES Australia - Brazil - Canada - China - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan - Malaysia Malta - Morocco - Singapore - Spain - Sweden - Switzerland - United Kingdom - U.S.A. www.st.com 67/67 |
Price & Availability of M7010R
![]() |
|
|
All Rights Reserved © IC-ON-LINE 2003 - 2022 |
[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy] |
Mirror Sites : [www.datasheet.hk]
[www.maxim4u.com] [www.ic-on-line.cn]
[www.ic-on-line.com] [www.ic-on-line.net]
[www.alldatasheet.com.cn]
[www.gdcy.com]
[www.gdcy.net] |