`Jungck et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,210,022 B2
`Apr. 24, 2007
`
`US007210022B2
`
`(54) APPARATUS AND METHOD FOR
`INTERCONNECTING A PROCESSOR TO
`CO-PROCESSORS USING ASHARED
`MEMORY AS THE COMMUNICATION
`INTERFACE
`
`(75) Inventors: Peder J. Jungck, San Jose, CA (US);
`Andrew T. Nguyen San Jose, CA
`~.
`s
`(US); Zahid Najam, San Jose, CA (US)
`(73) Assignee: Cloudshield technologies, Inc., San
`Jose, CA (US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 459 days.
`(21) Appl. No.: 09/858,308
`9
`May 15, 2001
`
`(*) Notice:
`
`(22) Filed:
`
`5,870,109 A * 2/1999 McCormack et al. ....... 345,565
`5,938,737 A
`8/1999 Smallcomb et al. ........ 709/247
`5,953,503 A
`9, 1999 Mitzenmacher
`et al. ..................... 395.200.33
`5,987,568 A * 11/1999 Adams et al. .............. T11 118
`5.991,713 A 11/1999 Unger et al. ................... TO4/9
`6,014,660 A
`1, 2000 Lim et al. ...................... 707/3
`6,016,512 A
`1/2000 Huitema
`... TO9.245
`6,046,980 A
`4/2000 Packer ...
`... 370,230
`6,052,718. A
`4/2000 Gifford ................
`... TO9,219
`6,070,191 A
`5/2000 Narendran et al. ......... TO9,226
`
`(Continued)
`FOREIGN PATENT DOCUMENTS
`O 865 180 A2
`3, 1998 .................... 12.56
`
`EP
`
`(Continued)
`OTHER PUBLICATIONS
`
`(65)
`
`Prior Publication Data
`US 2003 FOOO9651 A1
`Jan. 9, 2003
`• - s
`
`(51) Int. Cl.
`(2006.01)
`G06F 3/00
`(52) U.S. Cl. ........................................................ 712/34
`(58) Field of Classification Search .................. 71234
`712.238,235. 7021,700/215.237,235.
`709/250, 238; 34.5/503
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`9, 1987 Elliott et al. ................ 370/401
`4,692.918 A
`4,744,078 A * 5/1988 Kowalczyk ................. 370,364
`5, 195,181 A
`3/1993 Bryant et al. ............... 709,215
`5,313,586 A * 5/1994 Rutman ..........
`712/34
`5,406,472 A
`4, 1995 Simmons et al. .............. TOO/4
`5,566,170 A 10, 1996 Bakke et al. ............... 370,392
`5,784,582 A
`7/1998 Hughes ...................... 71 Of 117
`5,805,820 A
`9, 1998 Bellowin et al. ....... 395.200.55
`5,822,768 A * 10/1998 Shakkarwar ................ T11 149
`5,867,704 A
`2, 1999 Tanaka et al. .............. T18, 105
`
`The Authoritative Dictionary of IEEE Standard Terms, Standards
`Information Network IEEE Press, 7th Edition, 2000, pp. 725 and
`882.*
`
`(Continued)
`Primary Examiner Eric Coleman
`(74) Attorney, Agent, or Firm James L. Katz, Brinks Hofer
`Gilson & Lione
`(57)
`
`ABSTRACT
`
`An apparatus and method for interfacing a processor to one
`or more co-processors provides a dual ported memory to be
`used as a message passing buffer between the processor and
`the co-processors. Both the processor and co-processors can
`connect asynchronously to the dual ported memory. Control
`logic monitors activity by the processor to alert the co
`processors of communications by the processor written to
`the memory and otherwise allows the processor and co
`processors to think they are interfacing directly with one
`another.
`
`42 Claims, 16 Drawing Sheets
`
`BUS
`
`
`
`
`
`
`
`
`
`
`
`
`
`SSRAM 28A
`
`
`
`230B
`A
`DPSSRAM
`
`SRAM
`Control
`20B Logic
`228B
`
`24(122A, 122B)
`
`-
`
`238
`
`C.
`Processor
`
`103
`
`Pro
`
`t l
`
`238
`
`Cloudflare - Exhibit 1086, page 1
`
`
`
`US 7,210,022 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`6,073,168 A
`6/2000 Mighdoll et al. ........... 709/217
`6,084,878 A
`7/2000 Crayford et al. ..... ... 370,389
`6,108,703 A
`8/2000 Leighton et al. ..
`... 709,226
`6,173,333 B1* 1/2001 Jolitz et al. .......
`... 709/240
`6,247,059 B1
`6/2001 Johnson et al. ...
`... 709,237
`6,289,421 B1* 9/2001 Ali et al. ..........
`... 711 149
`6,295,599 B1* 9/2001 Hansen et al. ................ 71.2/32
`6,317,805 B1 * 1 1/2001 Chilton et al. ....
`... 714,800
`6,392,654 B1* 5/2002 Gallotta et al.
`... 345,503
`6.424,658 B1
`7/2002 Mathur .............
`370,429
`... 712/34
`6,438,678 B1* 8/2002 Cashman et al. .
`6,591.302 B2 * 7/2003 Boucher et al. .....
`709/230
`6,622, 185 B1* 9/2003 Johnson et al. ...
`... 710/48
`6,662,247 B1 * 12/2003 Ales et al. .....
`... T10/52
`6,678,801 B1* 1/2004 Greim et al. ..
`... 711 148
`6,782.445 B1* 8/2004 Olgiati et al......
`... 711 100
`2002fOOO9079 A1
`1/2002 Jungck et al. ....
`... 370,389
`2002fOO65938 A1
`5/2002 Jungck et al. ....
`... 709/246
`2002/0194291 Al 12/2002 Jungck et al. .............. TO9,213
`FOREIGN PATENT DOCUMENTS
`
`
`
`EP
`EP
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`2/1999 ...................... 29/6
`WO 99/09725
`106.1439 A1 * 12/2000
`WO 98,17039
`4/1998 ...................... 29.2
`WO 99,05584
`2, 1999
`WO 99.27684
`6/1999
`WO 99,60459
`11, 1999
`WOOOf 14938
`3, 2000
`WOOOf 27092
`5/2000 .................... 29, 12
`WOOO,28713
`5/2000
`...................... 29.2
`
`.................... 12/28
`
`OTHER PUBLICATIONS
`High Performance Memories, Betty Prince, John Wiley & Sons,
`1996, pp. 2, 18, 90, and 91.*
`John Pescatore, Gartner Analyst, “Commentary: Digging into the
`DNS foundation,” obtained at internet address, http://news.cnet.
`com/news/0-1005-202-2080091.html, Jun. 15, 2000.
`Rainbow Technologies Products, “CryptoSwift eCommerce Accel
`erator,” obtained at internet address, http://isgrainbow.com/prod
`ucts/cs 1.html, Aug. 5, 2000.
`FlowWise Networks, Inc., “AutoRouteTM Automatic Configuration
`of Layer 3 Routing,” www.flow wise.com.
`Flow Wise, “Router Accelerator RA 7000 from Flow Wise.”
`obtained at internet address http://www.flowise.com/products/
`ra,000.htm.
`IntelR IXP1200 Network Processor, obtained at internet address,
`http://developerintel.com/design/network/ixp1200.htm.
`Marshall Brain, How Stuff Works, “How Web Servers and the
`Internet Work,” obtained at internet address http://www.
`howStuffworks.com/web-server.htm.
`Marshall Brain, How Stuff Works, "How Domain Name Servers
`Work,” obtained at internet address http://www.howstuffworks.
`com/dns.htm.
`Curt Franklin, How StuffWorks, “How Routers Work,” obtained at
`internet address http://www.howstuffworks.com/router.htm.
`Microsoft Corporation, Sep. 1998 “Introduction to TCP/IP.”
`obtained at internet address http://msdn.microsoft.com/library/
`backgrind.html/tcpipintro.htm.
`Robert Stone, “CenterTrack: An IP Overlay Network for Tracking
`DoS Floods.” Article Oct. 1, 1999, pp. 1-9.
`Chapter 1 TCP/IP Fundamentals, obtained at internet address http://
`webdocs. Sequent.com/docs/tcpoac01/ch 1.htm, pp. 1-28.
`Cheng Wu, “Web Switching: A New Generation of Networking.”
`pp. 1-3.
`ArrowPoint CommunicationsTM Article, “A Comparative Analysis
`of Web Switching Architectures,” pp. 1-11.
`ArrowPoint CommunicationsTM, Brochure, “The Top 12 Benefits of
`Content Intelligence.”
`L. Peter Deutsch, "DEFLATE Compressed Data Format Specifica
`tion.” May 1996.
`
`Antaeus Feldspar, Article, “An Explanation of the Deflate Algo
`rithm.” Sep. 11, 1997.
`ArrowPoint CommunicationsTM CDDCenter Vendor Listing,
`“ArrowPoint CS-50 Highlights' obtained at internet address http://
`www.cddcenter.com/arrowpoint.htm, May 21, 2000.
`Peter Christy, Analyst Commentary, “When to Distribute
`Content. The Peters' Principles,” obtained at internet address
`http://www.cddcenter.com/index.html. May 21, 2000.
`Content Delivery 101: An Introduction to Content Distribution &
`Delivery.
`CDDCenter, “How Do Caching and Content Delivery Really Dif
`fer?” obtained at internet address http://www.cddcenter.com/
`cachingvcontent.htm, pp. 1-4, May 21, 2000.
`Internet Research Group “Infrastructure Application Service Pro
`viders.” Feb. 2000, pp. 1-7.
`Peter Christy, Internet Research Group, "Content Delivery Archi
`tectures: Why Doesn't One Size Fit All?” pp. 1-12.
`Steven Vonder Haar, Inter(active Week, Feb. 14, 2000, "Content
`Delivery Shifts. To Edge of Net,” obtained at internet address
`http://www.zdnet.com/intweek/stories/news/0,4164.2436865,00.
`html, Dated May 22, 2000.
`David Willis, Network Computing, “The Content-Delivery Edge.”
`obtained at internet address http://www.networkcomputing.com/
`1103/1103 colwillis.html, Dated May 22, 2000.
`Phrack Magazine, “IP-spoofing Demystified (Trust-Relationship
`Exploitation) vol. Seven, Issue Forty-Eight, File 14 of 18. pp. 1-9,
`obtained at internet address http://www.fc.net/phrack/files/p48/p48
`14.html, Dated Jun. 5, 2000.
`Eddie Mission, “What is Eddie?', obtained at internet address
`http://www.eddieware.org/what.html. Dated Apr. 21, 2000.
`Cisco Enterprise Solutions, “Quality of Service,” obtained at
`internet address http://www.cisco.com/warp public/779/largeent/
`learn technologies/gos?.
`Cisco White Paper, “Delivering End-to-End Security in Policy
`Based Networks,” obtained at internet address, http://www.cisco.
`com/warp/public/cc/pd/nemnSW/cap/tech/deesp wp.htm.
`Technology Packeteer, obtained at internet address, http://www.
`packeteer.com/technology/index.cfm.
`Overview Cisco Content Networking, obtained at internet address
`http://www.cisco.com/warp/public/cc/sofnesofienes?.cxne?
`cc.nov ov.htm.
`Overview Cisco Secure Policy Manager 2.0, obtained at internet
`address
`http://www.cisco.com/warp/public/cc/pdfsqSW/sqppmn/
`prodlit? secmn ov.htm.
`Alteon Web Systems, White Paper "Optimizing ISP Networks and
`Services with DNS Redirection.” Aug. 1999.
`Alteon Web Systems, White Paper “Virtual Matrix Architecture
`Scaling Web Services for Performance and Capacity.” Apr. 2000.
`Alteon Web Systems, White Paper, Questions and Answers, pp. 1-3.
`3Com Technical Papers, Layer 3 Switching, May 1998.
`Web Cache Communication Protocol Version 2, pp. C-1 to C-54.
`RFC2267 Working Group- Denial of Service Counter Measures,
`Tele-conference Meeting May 25, 2000, Moderator, Henry Teng of
`eBay.
`Track-back Architecture General Requirements Version 0.1. Initial
`Draft submitted to Counter-DoS Solutions Working Group, Jul. 31.
`2000, Edited by Bob Geiger, Recourse Technologies.
`SwitchOn Networks, Inc., ClassiPITM At-a-Glance.
`C-PortTM A Motorola Company, C-5TM Digital Communications
`Processor, Product Brief, pp. 1-8, May 4, 2000.
`Peder Jungck, “Building a Faster Cache Server' A Theoretical
`Whitepaper, Silicon Valley Internet Capital, pp. 1-19.
`IXF1002 Dual Port Gigabit Ethernet MAC, Product Brief, Level
`OneTM an Intel Company.
`NetLogic Microsystems Product Overview.
`Agere, Inc. “The Challenge for Next Generation Network Proces
`sors”, Sep. 10, 1999.
`Phillips Semiconductors’ VMS747 Security Processor Overview.
`Cisco Systems, Cisco 12000 Series GSR, "Performing Internet
`Routing and Switching at Gigabit Speeds,” obtained at internet
`address, http://www.cisco.com/warp public/cc/pd/rt/ 12000?.
`
`Cloudflare - Exhibit 1086, page 2
`
`
`
`US 7,210,022 B2
`Page 3
`
`Cisco Systems, "Cisco 10000 Edge Service Router,” obtained at
`internet
`address,
`http://www.cisco.com/warp/public/cc/pd/rt/
`10000.
`Nortel NetworksTM “Passport 8600 Routing Switch,” obtained at
`internet address, http://www.nortelnetworks.com/products/01/pass
`port/8600/index.html.
`Lucent Technologies, “InterNetworking Systems,” obtained at
`internet address, http://www.lucent.com/inst products/grf.
`Lucent Technologies, “InterNetworking Systems,” obtained at
`internet address, http://www.lucent.com/ins/products/grfgrf1600.
`html.
`Juniper Networks, “M20 Internet Backbone Router.” Datasheet,
`obtained at internet address, http://www.juniper.net/products/
`dsheet? 100009.html.
`Juniper Networks, “M40 Internet Backgbone Router.” Datasheet,
`obtained at internet address, http://www.juniper.net/products/
`dsheet? 100001.html.
`Juniper Networks, Inc., “M160 Internet Backbone Router'
`Datasheet, obtained at internet address, http://www.juniper.net/
`products/dsheet/10012.
`Rajeev Kumar, Intel Confidential, “IXP1200 Overview”.
`Intel “IXP1200 Network Processor.” Datasheet, pp. 1-109 (out of
`146 pages), May 2000.
`Phillips Semiconductors—I2C-bus, News and Events, obtained at
`internet address, http://www.semiconductors.philips.comi2c?, Jul.
`28, 2001.
`Comnet Booth #4421 “VHBTechnologies Introduces Breakthrough
`Appliance for High-Bandwidth Networks at Comnet” News
`Release, Jan. 29, 2001, VHB Technologies, Inc., Richardson, Texas.
`VHB Technologies, Inc. presents “The VIPRETM NPU.”
`VHB Technologies News & Views, “Pioneering Gigabit-Speed
`Content-Intelligent Appliances'.
`VHB Technologies, A Security Technology Paper, Defending
`Against Denial-of-Service Attacks with the . . . VHB-2000 Network
`Security Appliance.
`Netlogic MicrosystemsTM Product Brief, obtained at internet
`address, http://www.netlogicmicro.com/html/datasheets/nse3128.
`html, pp. 1-2, May 11, 2001.
`
`Switch On Networks, Inc. “ClassiPI' Content Co-Processor, general
`content and features brochure, pp. 1-5.
`C-Port, “C-5TM Digital Communications Processor Product Brief,
`pp. 1-8, (C) 1999-2000 C-Port Corporation, May 4, 2000.
`NetLogic Microsystems.M. “Policy Co-ProcessorTM applications
`and features sheet, p. 1.
`NetLogic MicrosystemsTM “CIDR Co-ProcessorTM applications
`and features sheet, p. 1.
`NetLogic MicrosystemsTM “IPCAM(R) Ternary CAM” application
`and features sheets, pp. 1-2.
`NetLogic MicrosystemsTM “SynCAMR Binary CAM” application
`and features sheet, p. 1.
`NetLogic MicrosystemsTM “NCAM Binary CAM” application and
`features sheet, p. 1.
`NetLogic MicrosystemsTM product overview, pp. 1-2.
`Level OneTM an Intel Company “IXF1002 Dual Port Gigabit
`Ethernet MAC.” product brief, pp. 1-2, Copyright (C) 2000 Level
`One Communications, Inc.
`Agere, Inc., Agere White Paper, “Building Next Generation Net
`work Processors.” Sep. 10, 1999, pp. 1-8.
`Eric J. Rothfus, Agere, Inc., Agere White Paper, “The Case for A
`Classification Language.” Sep. 10, 1999, pp. 1-7.
`Web Cache Communication Protocol Version 2, Appendix C, Cisco
`Cache Engine User Guide, Version 2.0.0, pp. C1-C54.
`CloudShield Technologies, Inc., White Paper, “Security at Optical
`Speed,” pp. 1-10, Jan. 21, 2001.
`NetLogic MicrosystemsTM Product Brief “NSE3128 Network
`Search Engine,” obtained at internet address http://209.10.226.214/
`html/datasheets/nse3128.html pp. 1-2, May 11, 2001.
`Listing of Well Known Port Numbers assigned by the Internet
`Assigned Numbers Authority, obtained at the internet address,
`http://www.iana.org/assignments/port-numbers pp. 1-55. Aug. 5,
`2000.
`PM2329 PMC-Sierra, "ClassiPITM Network Classification Proces
`sor.” Overview and Features sheet pp. 1-2, 2001 Copyright PMC
`Sierra, Inc. Jan. 2001.
`* cited by examiner
`
`Cloudflare - Exhibit 1086, page 3
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 1 of 16
`
`US 7,210,022 B2
`
`F.G. 1
`
`
`
`
`
`
`
`
`
`
`
`Network
`
`O2A
`
`()
`
`Co
`Processor
`108
`
`Management Adapter
`
`11
`
`
`
`10
`
`Network
`
`O2B
`
`Cloudflare - Exhibit 1086, page 4
`
`
`
`U.S. Patent
`
`Apr.24, 2007
`
`Sheet 2 of 16
`
`US 7,210,022 B2
`
`JOSSIIOL
`
`
`
`ZIOSSO901gION
`
`GOcl
`
`a9]Da
`
`"1807
`
`1d¢————____—
`
`joru07a
`
`9€CWVUSSL
`o1so1WVUSSdavs130°]
`
`VPEC
`
`V8VrIZWrSz
`
`odor]
`
`Jone)vorzVoteVCIC
`
`
`
`U8ZI“W8TT
`
`
`
`]fossa001gJONa
`A/TONDd
`
`VOCIANyory ¥80¢
`oevel
`
`
`
`olae”vrsnd
`
`€/
`
`TOMS
`
`H90T
`
`aozl:©
`
`Orc
`
`801
`
`-075
`
`JOSSID0T
`
`Wvas
`
`oro;
`
`adsez
`
`a180T
`
`aoc
`
`801
`
`ace?
`
`asicWVuss
`
` aPorVPol
`
`Cloudflare - Exhibit 1086, page 5
`
`Cloudflare - Exhibit 1086, page 5
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 3 of 16
`
`US 7,210,022 B2
`
`-00
`
`JOSSQOOJA-OO
`
`JOSS33OJA
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`DZZI
`
`$ “?INH
`
`Cloudflare - Exhibit 1086, page 6
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 4 of 16
`
`US 7,210,022 B2
`
`FIG. 4
`
`
`
`
`
`
`
`
`
`
`
`216A
`
`EEPROM
`
`Daughter
`Card
`Header
`
`246
`
`220A -
`
`K
`
`32 bit IX us to
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`3264 PC
`
`WSBuffers
`
`218B
`
`Compact PC1 + IX
`bus cross switch
`on back plane
`220B
`
`EEPROM
`16A
`32X bus
`
`A.
`
`246
`f
`daughter
`Card
`Header
`
`GD 16523
`CDR
`
`XF6048
`OC-48
`Framer
`
`Fite
`Mccule
`
`32164b PC
`
`LVDS Buffers
`
`64 bit IX
`bus to
`Utopia3
`
`/32b IX bus.
`# 64b IX bus
`
`126B, 126D
`
`Cloudflare - Exhibit 1086, page 7
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet S of 16
`
`US 7,210,022 B2
`
`– A-IISSVTO X Z.
`
`
`
`
`
`
`
`
`
`—
`
`---- / · > Swif
`
`! - - - - - -----)
`
`WVHSdGI X Z
`
`V 9 IZ
`
`- - - - - - - - -- as am - - a sm . .
`
`. as as as
`
`Cloudflare - Exhibit 1086, page 8
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 6 of 16
`
`US 7,210,022 B2
`
`9 "?INH
`
`CIMIVO E HELH9nw GI o L)
`
`# HET HOW < –
`
`XATOT-HOW –>
`
`9|,
`
`?4)-(osov-rivas
`
`Cloudflare - Exhibit 1086, page 9
`
`
`
`U.S. Patent
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 7 of 16
`
`US 7,210,022 B2
`US 7,210,022 B2
`
`
`
`
`
`ACET“VTZETy19
`
`LOW
`
`Chip
`
`#YAd0
`
`#YMW/4
`
`(LiPL)¥
`
`PL
`
`ce
`
`(ze:¢9)d
`
`
`
`AGPS6ISECAOALA]-e0lAsq
`
`
`
`VOdds-s07:ebexoed
`
`
`
`(9pZJoyDOUTIOZOT)
`
`WWVYSddNAA
`
`
`
`
`
`A9IZ“WOIZ
`
`
`
`~(LipNVYS
`
`#UaO~~(o)v"Wvas
`
`
`
`#19:—
`
`
`
`(o:ebuy.(OeIv.AvIT“VrIZ
`
`Ph
`
`
`
`WVYSddqddo
`
`
`#UMYHIMa#M/eWVYS
`MMTODATS|10SWVYS
`
`
`
`eeSL(O-PL)YWVWHYS
`
`ze(oLle)aW'S
`
`
`
`aziz‘Welz
`
` wDWI19-d_£_—_—_—_,
`
`
`
`CIT“V9IZ
`
`
`
`(o:reyua(o:-e)1G
`
`ze
`
`#UMWe#IM/d
`
`
`
`(oeLuV(mEeLIv
`
`(LivL)wWVuS
`
`vl
`
`#4591a(o)VWVYS
`
`
`
`Cloudflare - Exhibit 1086, page 10
`
`Cloudflare - Exhibit 1086, page 10
`
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 8 of 16
`
`US 7,210,022 B2
`
`FIG. 8
`
`EMB to daughter
`card connector
`
`216A
`2 x Dual post
`SSRAM
`
`Data
`bus 32
`7
`Address
`ous
`
`216B
`
`228A
`
`2 x Dual posrt
`SSRAM
`
`Data
`bus 32
`W
`Address
`bus
`
`al-k
`-
`:::::::::::::: * :
`CPLC v- ix. 1.236.
`. . . . . . . ...:::::::::::: s :
`
`Test Port
`
`IX-1 :
`
`l 06B
`
`daughter card components
`
`
`
`
`
`CA2
`
`Cloudflare - Exhibit 1086, page 11
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 9 of 16
`
`US 7,210,022 B2
`
`FIG. 9
`
`
`
`To
`PSRAM
`XP1200
`Address
`
`SRAM
`CPLD
`
`| Sir
`
`o
`PSRAM
`XP 200
`
`Address
`
`SRAM
`CPLD
`
`Test Port
`
`
`
`Cloudflare - Exhibit 1086, page 12
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 10 of 16
`
`US 7,210,022 B2
`
`FIG 10)
`
`210A2 10B
`
`{-32bit -)
`
`
`
`216A/216B - Nu
`
`Shared
`memory
`Section
`
`32K DPSRAM
`
`16Mb
`SRAM
`Device
`
`16Mb
`
`Device
`
`16Mb
`SRAM
`Device
`
`A.
`
`512K
`SRAM
`
`X
`
`X
`
`SRAM
`
`512K
`SRAM
`
`Cloudflare - Exhibit 1086, page 13
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 11 of 16
`
`US 7,210,022 B2
`
`
`
`
`
`S8S999EWY)S,Pealu}yOeg
`
`JEWIOLSIMPUBWIWOD
`
`WYSPBS!U}dXl#Z
`
`SploOMAAGss909e
`
`WYussda
`
`
`
`esedsAloawaw
`
`
`
`apoo-dowvo|
`
`
`
`clcl
`
`NYVDO}dK]Wool)ByepMau=O
`
`PHeABeepdX]OlWVD=1
`
`
`
`COCT
`
`
`
`>oN
`
`3
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`YWJossao01gJON.
`
`ssoo0VNWO9JUISUD-O1DIAN
`
`OIZTaed
`
`
`
`YWJlossooolg10N
`
`
`
`sso00VJVOTSUISU9-O.1IJA
`
`
`
`OIZIaoedg
`
`
`
`VYJlossao0ig18N
`
`ssaooyWIVOZSUIsUd-O1TP]
`
`OIZLsaedg
`
`So
`fa
`
`
`vOCI
`
`a
`
`tH
`
`£ppyeseq
`
`éPpy9seq
`
`Lppyeseq
`
`QPpyaseg
`
`Cloudflare - Exhibit 1086, page 14
`
`ITOld
`
`Cloudflare - Exhibit 1086, page 14
`
`
`
`
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 12 of 16
`
`US 7,210,022 B2
`
`7FFF (H)
`
`Global
`Registers
`32K x 32
`
`
`
`Local
`Registers
`32K x 32
`
`not used
`
`
`
`0000 (H)
`
`
`
`
`
`
`
`Input Packet
`Buffer
`Ch O-3
`
`Result Memory
`Space 1
`
`Result Memory
`Space O
`
`CSR and
`EOP-D 1
`
`ERAM and
`Misc Registers
`
`3FFF (H)
`
`3800 (H)
`
`34 FF (H)
`
`3000 (H)
`
`25FF (H)
`
`2100 (H)
`
`209F (H)
`
`2080 (H)
`
`Local
`Register
`Pointer
`
`005F (H)
`
`0000 (H)
`
`XP Address
`
`Cloudflare - Exhibit 1086, page 15
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 13 of 16
`
`US 7,210,022 B2
`
`FIG. 13
`
`1400
`
`---
`.
`. .
`--
`Microengine 6
`
`s: .
`
`f
`|
`i
`i
`
`
`
`era
`
`O050 (H).
`Microengine 5
`0040 (H):
`
`
`
`4.
`
`32 bits (DW)
`
`Reg Data 1
`--- i.
`Reg Dada 0 °
`y
`
`Thread 4
`
`Reg Adr
`
`
`
`Reg Data 1
`Reg Data Oil
`
`*
`
`-v- ' '.
`
`-
`
`Thread 3
`
`Reg Data 1
`Reg Data 0.
`
`; : ,
`
`&
`
`:
`
`Reg Data 1
`Reg Data 0
`
`Flag
`
`Reg Adr
`
`Thread 2
`
`Thread 1
`
`O030 (H) - -
`Microengine 3
`3:.
`.
`.
`
`x :
`
`... .s: Y
`
`
`
`f
`f
`
`0020 (H):
`
`— XP Address
`
`Cloudflare - Exhibit 1086, page 16
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 14 of 16
`
`US 7,210,022 B2
`
`FIG. 14
`
`7FFF (H)
`
`
`
`Channel 32
`
`32 bits (DW)
`
`7000 (H)
`
`Channel 1
`Chan nel 0
`
`XP Address
`
`Cloudflare - Exhibit 1086, page 17
`
`
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 15 of 16
`
`US 7,210,022 B2
`
`F.G. 1S
`
`236
`
`CLKr
`
`D(31:0
`
`A13:0
`Control
`
`(
`
`mem mapped
`CPLD
`decode signals
`C13:0
`
`D31:0
`
`A13:0
`+control
`
`-
`
`mem mapped
`CPLD
`decode sigTals {-
`C13:0
`
`
`
`
`
`RW
`SSRAM
`ADDRESS
`control
`
`
`
`CPLO
`add dec input
`
`RAW
`SSRAM
`ADDRESS
`cotto
`
`CPD
`add decliput
`
`Cock
`manegement
`
`Muxf
`buss management
`
`-
`-
`| Result
`-- FIFO)
`NFAR
`address
`FIFo Y
`
`-
`
`CAM
`H
`Data
`FFO
`
`100
`()
`
`SCK
`
`RBUS (31:0
`
`NFAR 23:0)
`
`CBUS71:0
`
`|- ind truction H ) bus(15:0)
`
`CAM
`
`FIFO
`
`FPGA
`registers
`
`Control
`
`(
`
`)
`Clock
`managemnet
`
`f0E3:0)
`Flags
`FRST
`
`Cloudflare - Exhibit 1086, page 18
`
`
`
`xy
`
`
`
`
`SARIS
`
`
`
`
`
`
`THWPS12SemJeBeuew
`
`
`
`eoeepurZdX!opelgatpawwos-|ZHWpeteSuiuunh
`
`
`LAX]SPelgBIDSWWoy|
`snkX14Ze|Jebeuew
`snkXbN92sayngsnqXI
`
`
`ankls—
`aynsnqXl
`
`ZHPgheBuuunsssepazul
`
`XIv90}GAe|s™X]AzE
`
`
`
`
`
`goRpiajulsngaaels”xX]
`
`U.S. Patent
`
`Apr. 24, 2007
`
`Sheet 16 of 16
`
`US 7,210,022 B2
`
`
`
`apse
`
`
`
`SSXe
`
`LIOW
`
`
`U8clV8cl
`
`
`
`JBLEOWIOLSP-DO0}
`a.eyalulorg‘en
`
`
`
`ZHWy8yeGuluunseoeja}ur
`
`ZHWreJeBuiuunseoepeyy|
`
`XL
`
`Jayng
`
`sngxlv0ro
`
`supjdyoeq0}
`
`IVICI
`
`
`
`eyep
`
`Jayng
`
`en
`
`[04]U0D
`
`aiaBeuew
`
`snqXl
`
`JaBeuew
`
`
`
`
`
`XL
`
`Jeping
`
`XL
`
`Jaying
`
`snqxl
`
`JaBeuew
`
`
`
`SsoeHousngXldazeolen
`
`OST
`
`91“OM
`V30~
`sngxX}vaee
`snqXINGZe
`LdXI0}
`c-dXtOF
`
`Cloudflare - Exhibit 1086, page 19
`
`Cloudflare - Exhibit 1086, page 19
`
`
`
`
`
`
`
`
`
`
`
`
`US 7,210,022 B2
`
`1.
`APPARATUS AND METHOD FOR
`INTERCONNECTING A PROCESSOR TO
`CO-PROCESSORS USING ASHARED
`MEMORY AS THE COMMUNICATION
`INTERFACE
`
`RELATED APPLICATIONS
`
`The following co-pending and commonly assigned U.S.
`patent applications have been filed on the same date as the
`present application. These applications relate to and further
`describe other aspects of the embodiments disclosed in the
`present application and are herein incorporated by reference:
`U.S. patent application Ser. No.09/858,309, “EDGE
`ADAPTER APPARATUS AND METHOD, filed herewith
`now U.S. Pat. No. 7,032,031 ;
`U.S. patent application Ser. No. 09/858.323, “EDGE
`ADAPTER ARCHITECTURE APPARATUS ANT)
`METHOD, filed herewith now U.S. Pat. No. 7,144,008:
`U.S. patent application Ser. No. 09/858.324, “APPARA
`TUS AND METHOD FOR INTERFACING WITH A HIGH
`SPEED BI-DIRECTIONAL NETWORK, filed herewith
`now U.S. Pat. No. 7,082,502.
`
`10
`
`15
`
`REFERENCE TO APPENDIX
`
`An appendix A is included at the end of this document
`containing exemplary processor to co-processor instruction
`formats according to one embodiment.
`
`COPYRIGHT NOTICE
`
`A portion of the disclosure of this patent document
`contains material which is subject to copyright protection.
`The copyright owner has no objection to the facsimile
`reproduction by anyone of the patent document or the patent
`disclosure, as it appears in the Patent and Trademark Office
`patent file or records, but otherwise reserves all copyright
`rights whatsoever.
`
`BACKGROUND
`
`25
`
`30
`
`35
`
`40
`
`2
`to the exponential growth in the user of traditional network
`applications, such as the world wide web and electronic
`mail. This growth is placing an incredible strain on the
`Internet infrastructure that causes network traffic to slow and
`hardware to overload. In particular, some of these new
`applications for the network are dependent upon the quality
`of service (“OoS) of the network and cannot tolerate
`arbitrary reductions in throughput. For example, traffic inter
`ruptions in a voice telephony application may result in
`garbled or delayed communications which may not be
`tolerable to the users of Such an application.
`A way to solve these resultant network traffic jams is to
`increase the speed of the network and increase its band
`width. Another solution is to retrofit the existing infrastruc
`ture to use new technologies. Such as optical fiber intercon
`nections, which Substantially increases network throughput
`and bandwidth.
`Unfortunately, a network, and in particular the Internet, is
`not simply a collection of interconnections. Other devices,
`Such as routers, Switches, hubs, and cache servers, form an
`integral part of the network infrastructure and play important
`roles in its performance. Upgrading the interconnections of
`the network without also upgrading the hardware which
`makes all of those interconnections function, will only serve
`to move the bottlenecks but not eliminate them. Further,
`hardware devices, which seek to enhance the network, Such
`as content delivery devices or security devices, must simi
`larly be upgraded so as not to degrade any overall enhance
`ments to the network infrastructure.
`While network technologies continue to advance, some of
`these technologies advance at a quicker pace than others.
`Where these technologies interface, it is often necessary to
`adapt the slower evolving technology to keep up with the
`faster evolving technology. In Such a case, advances in
`optical networking technologies are far exceeding advances
`in the technologies to enhance the communications being
`carried by the network.
`In particular, many network enhancement applications,
`Such as security applications or content delivery applica
`tions, require the interception and processing of data from
`the network in order to perform their function. By default
`then, these devices become a choke point through which all
`the data of the network must pass. Therefore, this intercep
`tion and processing device needs to operate at or beyond the
`wire speed, i.e. the operating throughput of the network, or
`the device becomes a bottle neck. In most cases, where the
`device cannot keep pace with the network, any benefits of
`the application will be outweighed by the degradation
`caused in network throughput. Unfortunately, optical net
`working technologies are increasing wire speeds beyond the
`current capabilities of packet processing technology.
`Accordingly, there is a need for a way to cost effectively
`adapt existing packet processing technologies so as not to
`degrade network performance.
`
`45
`
`50
`
`55
`
`Computer networks, in general, interconnect multiple
`computer systems for the purpose of sharing information
`and facilitating communications. Computer networks
`include private networks which interconnect computers
`within a particular enterprise, Such as an intranet, and public
`networks, which interconnect one or more of the computers
`of enterprises, public institutions and/or private individuals.
`One exemplary public network is the Internet. The Internet
`is a packet switched network which utilizes the Transport
`Control Protocol/Internet Protocol (“TCP/IP) suite to com
`municate data.
`Networking computers together generally increases effi
`ciency and reduces wasted resources. These advantages are
`spurring significant growth in the number of computers/user
`being connected by networks and the volume of data they
`are exchanging. This growth is, in turn, spurring advances in
`network technologies to handle the increased demand being
`placed on these network infrastructures.
`This is evident on the Internet where each day more and
`more users connect to the Internet adding to the millions of
`existing users already communicating and exchanging data
`via this public infrastructure. Further, new applications for
`the network, Such as streaming video, telephony services,
`real time interactive content, instant messaging, and peer to
`peer communications continue to be developed in addition
`
`SUMMARY
`
`The present invention is defined by the following claims,
`and nothing in this section should be taken as a limitation on
`those claims. By way of introduction, the preferred embodi
`ments described below relate to an interface for coupling a
`processor to a co-processor. The interface includes a
`memory coupled with the processor and the co-processor,
`the memory having at least two read/write interfaces for
`reading and writing data to the memory and control logic
`coupled with the at least two read/write interfaces. Wherein
`the processor writes data intended for the co-processor to the
`
`60
`
`65
`
`Cloudflare - Exhibit 1086, page 20
`
`
`
`US 7,210,022 B2
`
`3
`memory and reads data from the co-processor from the
`memory, the co-processor writes data intended for the pro
`cessor to the memory and reads data from the processor from
`the memory, the control logic operative to facilitate the
`reading of the written data by the processor and the co
`processor.
`The preferred embodiments further relate to a method of
`interfacing a processor with a co-processor. In one embodi
`ment, the method includes receiving first data from the
`processor on a first interface, storing the first data in a
`memory, signaling the co-processor that the first data has
`been received, receiving a read command on a second
`interface from the co-processor, providing the first data to
`the co-processor via the second interface, receiving second
`data from the co-processor on the second interface, storing
`the second data in the memory, signaling the processor that
`the second data has been received, receiving a read com
`mand on the first interface from the processor, and providing
`the second data to the processor via the first interface.
`Further aspects and advantages of the invention are dis
`cussed below in conjunction with the preferred embodi
`mentS.
`
`10
`
`15
`
`4
`FIG. 17 depicts a more detailed diagram of the packet bus
`interface of FIG. 1.
`
`DETAILED DESCRIPTION OF THE
`PRESENTLY PREFERRED EMBODIMENTS
`
`Meeting the universal demand for an Internet that is more
`robust, that is capable of Sustaining its own growth and that
`can adapt to new technologies, requires the migration of the
`current network infrastructure to next generation networking
`technologies. This next generation data network is often
`referred to as the “Optical Internet.”
`The shift to the Optical Internet has created a new set of
`challenges. Chief among these challenges is the need to
`manage an exponentially higher Volume of network traffic at
`much higher rates of speed. In the U.S., the principal
`standard for optical networks is the American National
`Standards Institute (ANSI) standard for synchronous data
`transmission over optical media known as Synchronous
`Optical Network (“SONET). The SONET standard actually
`comprises multiple standards for transmission rates up to
`9.953 gigabits per second (“Gbps') with the capability to go
`up to 20 Gbps. Each transmission rate standard is known as
`an Optical Carrier Level (“OC-X”). Exemplary optical car
`rier levels include OC-12 for communications at 622.08
`Mbps, OC-48 for communications at 2.488 Gbps and
`OC-192 for communications at 10Gbps. Today’s micropro
`cessors face a situation where they cannot support the pace
`of performance increases associated with the deployment of
`fiber-based network bandwidth of OC-48 and higher. Simply
`put, the move to fiber-optic networks has pushed the physi
`cal limits of microprocessors and the I/O bus beyond their
`current technical capabilities. The platform described herein
`is designed to address many issues associated with Optical
`Internet services that cannot be addressed by the current
`software based firewall servers.
`FIG. 1 shows an exemplary device 100 for intercepting
`and processing packets at wire speed from an optical based
`network 102, such as the Internet, compatible with the
`OC-48 standard or faster. For a more detailed explanation of
`the operation of devices which intercept and process pack
`ets, refer to U.S. Patent Application entitled “EDGE
`ADAPTERAPPARATUS AND METHOD and U.S. Patent
`Application Serial entitled “EDGEADAPTER ARCHITEC
`TURE APPARATUS AND METHOD, both of which are
`captioned above. The exemplary device 100 may include the
`Rapid Intelligent Processing Platform manufactured by
`Cloudshield Technologies, Inc., located in San Jose, Calif.
`For clarity, some components of the device 100 are not
`shown.
`The device 100 shown in FIG. 1 is coupled with the
`network 102 (consisting of an upstream network portion
`102A and a downstream network portion 102B) via a
`network connection 110 so as to be able to intercept and
`process packets communicated between the upstream net
`work portion 102A and the downstream network portion
`102B of the network 102. Herein, the phrase “coupled with
`is defined to mean directly connected to or indirectly con
`nected through one or more intermediate components. Such
`intermediate components may include both hardware and
`Software based components. In one embodiment, the net
`work connection 110 is an optical network connection. In an
`alternate embodiment, the network connection 110 is an
`electrical network connection.
`In one embodiment, not shown in the figure, the device
`100 is configured as a rac