`
`1111111111111111111111111111111111111111111111111111111111111
`US007673072B2
`
`(12) United States Patent
`Boucher et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,673,072 B2
`Mar. 2,2010
`
`(54) FAST-PATH APPARATUS FOR
`TRANSMITTING DATA CORRESPONDING
`TO A TCP CONNECTION
`
`(75)
`
`Inventors: Laurence B. Boucher, Saratoga, CA
`(US); Stephen E. J. Blightman, San
`Jose, CA (US); Peter K. Craft, San
`Francisco, CA (US); David A. Higgen,
`Saratoga, CA (US); Clive M. Philbrick,
`San Jose, CA (US); Daryl D. Starr,
`Milpitas, CA (US)
`
`(73) Assignee: Alacritech, Inc., San Jose, CA (US)
`
`( *) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.c. 154(b) by 435 days.
`
`(21) Appl. No.: 11/821,820
`
`(22) Filed:
`
`Jun. 25, 2007
`
`(65)
`
`Prior Publication Data
`
`US 2008/0126553 Al
`
`May 29,2008
`
`(63)
`
`Related U.S. Application Data
`
`Continuation of application No. 10/260,112, filed on
`Sep. 27, 2002, now Pat. No. 7,237,036, which is a
`continuation of application No. 10/092,967, filed on
`Mar. 6, 2002, now Pat. No. 6,591,302, which is a
`continuation-in-part of application No. 10/023,240,
`filed on Dec. 17,2001, now Pat. No. 6,965,941, which
`is a continuation-in-part of application No. 09/464,
`283, filed on Dec. 15, 1999, now Pat. No. 6,427,173,
`which is a continuation-in-part of application No.
`09/439,603, filed on Nov. 12, 1999, now Pat. No.
`6,247,060, which is a continuation-in-part of applica(cid:173)
`tion No. 091067,544, filed on Apr. 27,1998, now Pat.
`No. 6,226,680, said application No. 10/260,112 is a
`continuation-in-part of application No. 09/384,792,
`filed on Aug. 27, 1999, now Pat. No. 6,434,620, which
`is a continuation-in-part of application No. 091141,
`713, filed on Aug. 28,1998, now Pat. No. 6,389,479,
`
`said application No. 10/260,112 is a continuation-in(cid:173)
`part of application No. 091970,124, filed on Oct. 2,
`2001, now Pat. No. 7,124,205, and a continuation-in(cid:173)
`part of application No. 09/855,979, filed on May 14,
`2001, now Pat. No. 7,133,940, and a continuation-in(cid:173)
`part of application No. 09/802,550, filed on Mar. 9,
`2001, now Pat. No. 6,658,480, and a continuation-in(cid:173)
`part of application No. 09/802,426, filed on Mar. 9,
`2001, now Pat. No. 7,042,898, and a continuation-in(cid:173)
`part of application No. 09/802,551, filed on Mar. 9,
`2001, now Pat. No. 7,076,568, and a continuation-in(cid:173)
`part of application No. 09/801,488, filed on Mar. 7,
`2001, now Pat. No. 6,687,758, and a continuation-in(cid:173)
`part of application No. 091789,366, filed on Feb. 20,
`2001, now Pat. No. 6,757,746, and a continuation-in(cid:173)
`part of application No. 09/675,700, filed on Sep. 29,
`2000, and a continuation-in-part of application No.
`09/675,484, filed on Sep. 29, 2000, now Pat. No.
`6,807,581, and a continuation-in-part of application
`No. 09/514,425, filed on Feb. 28, 2000, now Pat. No.
`6,427,171, and a continuation-in-part of application
`No. 09/416,925, filed on Oct. 13, 1999, now Pat. No.
`6,470,415.
`
`(60) Provisional application No. 601061,809, filed on Oct.
`14, 1997, provisional application No. 601098,296,
`filed on Aug. 27, 1998.
`
`(51)
`
`(52)
`
`(58)
`
`Int. Cl.
`G06F 15116
`(2006.01)
`U.S. Cl. ....................... 7091245; 709/230; 709/233;
`709/234; 709/232; 709/239; 370/235; 370/468;
`370/237; 370/230; 370/233
`Field of Classification Search ................. 709/245,
`709/230-234,239,250; 370/235,468,237,
`370/230, 233, 234
`See application file for complete search history.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,366,538 A
`4,485,455 A
`4,485,460 A
`4,589,063 A
`
`. ............ 364/200
`12/1982 Johnson et al.
`1111984 Boone et al. ................ 364/900
`1111984 Stambaugh ................. 365/203
`5/1986 Shah et al. ..................... 710/8
`
`50
`
`52
`
`46
`
`48
`
`UPPER
`LAYER
`UPPER LAYER
`INTERFACE
`
`TRANSPORT
`
`NETWORK
`
`DATA LINK
`
`\
`
`44
`
`56
`
`40
`
`38
`
`36
`
`30
`
`35
`
`58
`
`INTEL Ex.1001.001
`
`
`
`US 7,673,072 B2
`Page 2
`
`4,700,185 A
`4,991,133 A
`5,056,058 A
`5,058,110 A
`5,097,442 A
`5,163,131 A
`5,212,778 A
`5,280,477 A
`5,289,580 A
`5,303,344 A
`5,412,782 A
`5,418,912 A
`5,448,566 A
`5,485,579 A
`5,506,966 A
`5,511,169 A
`5,517,668 A
`5,524,250 A
`5,535,375 A
`5,548,730 A
`5,566,170 A
`5,574,919 A
`5,588,121 A
`5,590,328 A
`5,592,622 A
`5,598,410 A
`5,619,650 A
`5,629,933 A
`5,633,780 A
`5,634,099 A
`5,634,127 A
`5,642,482 A
`5,664,114 A
`5,671,355 A
`5,678,060 A
`5,682,534 A
`5,692,130 A
`5,699,317 A
`5,699,350 A
`5,701,434 A
`5,701,516 A
`5,727,142 A
`5,742,765 A
`5,749,095 A
`5,751,715 A
`5,752,078 A
`5,758,084 A
`5,758,089 A
`5,758,186 A
`5,758,194 A
`5,768,618 A
`5,771,349 A
`5,774,660 A
`5,778,013 A
`5,778,419 A
`5,790,804 A
`5,794,061 A
`5,802,258 A
`5,802,580 A
`5,809,328 A
`5,809,527 A
`5,812,775 A
`5,815,646 A
`5,828,835 A
`5,848,293 A
`5,852,721 A *
`5,872,919 A
`5,878,225 A
`5,892,903 A
`5,898,713 A
`5,913,028 A
`5,920,566 A
`5,930,830 A
`
`1011987 Balph et al.
`340/825.5
`211991 Davis et aI .................. 364/900
`1011991 Hirata et al.
`................ 7091230
`1011991 Beach et al.
`............... 370/85.6
`311992 Ward et al. .................... 365/78
`1111992 Row et al. ................... 395/200
`511993 Dally et aI .................. 395/400
`111994 Trapp ........................ 370/85.1
`211994 Latif et al.
`.................. 395/275
`411994 Yokoyama et al. .......... 395/200
`511995 Hausman et al. ............ 395/250
`511995 Christenson ................ 395/200
`911995 Richter et aI ............... 370194.1
`111996 Hitz et al. .............. 395/200.12
`411996 Ban ........................... 395/250
`411996 Suda .......................... 395/280
`511996 Szwerinski et aI.
`.. ....... 395/800
`611996 Chesson et al.
`............. 395/775
`711996 Eshel et aI .................. 3911500
`811996 Young et aI ................. 395/280
`1011996 Bakke et al.
`.................. 370/60
`1111996 Netravali et al. ............ 395/561
`1211996 Reddin et al. .......... 395/200.15
`1211996 Seno et al. .................. 395/675
`111997 Isfeld et al. ............ 395/200.02
`111997 Stone ......................... 370/469
`411997 Bach et al. ............. 395/200.01
`511997 Delp et al.
`.................. 370/411
`511997 Cronin et al.
`............... 3611220
`511997 Andrews et al.
`....... 395/200.07
`511997 Cloud et al.
`................ 395/680
`611997 Pardillos .................. 395/200.2
`911997 Krech, Jr. et al.
`...... 395/200.64
`911997 Collins .................... 395/200.2
`1011997 Yokoyama et al. .......... 7091212
`1011997 Kapoor et al.
`.............. 395/684
`1111997 Shobu et al.
`........... 395/200.12
`1211997 Sartore et al. .......... 395/230.06
`1211997 Kraslavsky ................. 3701254
`1211997 Nakagawa .................. 395/484
`1211997 Cheng et aI ................. 395/842
`311998 Chen .......................... 395/181
`411998 Wong et al. ................. 395/200
`511998 Hagersten ................... 7111141
`511998 Chan et al. .................. 370/455
`511998 Delp et al.
`.................. 395/827
`511998 Silverstein et aI ...... 395/200.58
`511998 Gentry et al.
`.......... 395/200.64
`511998 Hamilton et al. ............ 395/831
`511998 Kuzma ....................... 395/886
`611998 Erickson et al. ............. 395/829
`611998 Picazo, Jr. et aI. ...... 3951188.01
`611998 Brendel et al. ......... 395/200.31
`711998 Jedwab ....................... 714/807
`711998 Hansen et al.
`.............. 7111112
`811998 Osborne ..................... 7091245
`811998 Hansen et al.
`......... 395/800.01
`911998 Chen ..................... 3951182.08
`911998 McAlpine ................... 7111149
`911998 Nogales et aI ............... 395/825
`911998 Cooper et aI ................ 7111133
`911998 Van Seeters et al.
`... 395/200.43
`911998 Purcell et al. ............... 395/163
`1011998 Isfeld et al. .............. 395/200.3
`1211998 Gentry et al.
`............... 395/825
`1211998 Dillon et al. ................ 7091217
`211999 Wakeland et aI ............ 395/200
`311999 Bilansky et aI ......... 395/200.57
`411999 Klaus .................... 3951187.01
`411999 Melzer et al. ................. 371153
`611999 Wang et aI ............. 395/200.33
`711999 Hendel et al. ............... 370/401
`711999 Mendelson et aI .......... 7111171
`
`5,931,918 A
`5,935,205 A
`5,937,169 A
`5,941,969 A
`5,941,972 A
`5,950,203 A
`5,987,022 A
`5,991,299 A
`5,996,013 A
`5,996,024 A
`6,005,849 A
`6,009,478 A
`6,016,513 A
`6,021,446 A
`6,021,507 A
`6,026,452 A
`6,034,963 A
`6,038,562 A
`6,041,058 A
`6,041,381 A
`6,044,438 A
`6,047,323 A
`6,047,356 A
`6,049,528 A
`6,057,863 A
`6,061,368 A
`6,065,096 A
`6,067,569 A
`6,070,200 A
`6,078,733 A
`6,097,734 A
`6,101,555 A
`6,111,673 A
`6,115,615 A
`6,122,670 A
`6,141,701 A
`6,141,705 A
`6,145,017 A
`6,157,944 A
`6,157,955 A
`6,172,980 Bl
`6,173,333 Bl
`6,181,705 Bl
`6,202,105 Bl
`6,223,242 Bl
`6,226,680 Bl
`6,246,683 Bl
`6,247,060 Bl
`6,279,051 Bl
`6,289,023 Bl
`6,298,403 Bl
`6,324,649 Bl
`6,334,153 B2
`6,343,360 Bl
`6,345,301 Bl
`6,345,302 Bl
`6,356,951 Bl
`6,370,599 Bl
`6,385,647 Bl
`6,389,468 Bl
`6,389,479 Bl
`6,393,487 B2
`6,421,742 Bl
`6,421,753 Bl
`6,427,169 Bl
`6,427,171 Bl
`6,427,173 Bl
`6,434,620 Bl
`6,434,651 Bl
`6,449,656 Bl
`6,453,360 Bl
`6,470,415 Bl
`6,473,425 Bl
`
`8/1999 Row et aI .................... 709/300
`8/1999 Murayama et aI ........... 7091216
`8/1999 Connery et al. .......... 395/200.8
`8/1999 Ram et al.
`.................. 710/128
`811999 Hoese et aI.
`.. .............. 710/129
`911999 Stakuis et aI .................. 707/10
`1111999 Geiger et al.
`............... 370/349
`1111999 Radogna et al. ............. 370/392
`1111999 Delp et al.
`.................. 7091226
`1111999 Blumenau ................... 709/301
`12/1999 Roach et aI ................. 370/276
`12/1999 Panner et al.
`.................. 710/5
`112000 Lowe ......................... 7091250
`212000 Gentry et al.
`............... 709/303
`212000 Chen ............................. 714/2
`212000 Pitts ............................ 710/56
`312000 Minami et al. .............. 370/401
`3/2000 Anjur et al. ................... 707/10
`3/2000 Flanders et al. ............. 370/401
`3/2000 Hoese ........................ 710/129
`312000 Olnowich ................... 7111130
`4/2000 Krause ....................... 7091227
`4/2000 Anderson et al.
`........... 7111129
`4/2000 Hendel et aI ................ 3701235
`5/2000 Olarig ........................ 345/520
`5/2000 Hitzelberger ............... 370/537
`5/2000 Dayet al.
`................... 7111114
`5/2000 Khaki et al.
`................ 7091224
`5/2000 Gates et al. ................... 71 0120
`6/2000 Osborne .................. 395/200.8
`8/2000 Gotesman et al. ........... 370/474
`8/2000 Goshey et aI.
`.. ............ 709/321
`8/2000 Chang et al. ................ 359/123
`912000 Ota et aI ..................... 455/553
`912000 Bennett et al. .............. 7091236
`1012000 Whitney ........................ 710/5
`1012000 Anand et al. .................. 710115
`1112000 Ghaffari ........................ 710/5
`1212000 Pedersen
`................ 7091228
`1212000 Narad et al.
`112001 Flanders et al. ............. 370/401
`112001 Jolitz et aI.
`112001 Branstad et al. ............. 370/392
`3/2001 Gates et al. ................... 71 0120
`4/2001 Sheafor et al. .............. 710/132
`5/2001 Boucher et al.
`............. 7091230
`6/2001 Connery et al. ............. 370/392
`6/2001 Boucher et al.
`............. 7091238
`8/2001 Gates et al. ................... 71 0120
`912001 Dowling et al. ............. 370/419
`10/2001 Suri et al.
`................... 710/100
`1112001 Eyres et al. ................. 713/202
`12/2001 Boucher et al.
`............. 7091230
`112002 Feinleib ......................... 713/1
`212002 Burns et al. ................. 7091230
`212002 Bennett et al. .............. 7091236
`3/2002 Gentry et al.
`............... 7091250
`4/2002 Anand et al. .................. 710115
`5/2002 Willis et aI .................. 7091217
`5/2002 Muller et al.
`............... 7091226
`5/2002 Boucher ..................... 7091243
`5/2002 Boucher et al.
`............. 7091238
`7/2002 Tillier ........................... 710/1
`712002 Hoese et aI ................. 710/129
`7/2002 Elzur ......................... 7091224
`7/2002 Craft et al. .................. 7091230
`7/2002 Boucher et al.
`............. 7091238
`8/2002 Boucher et al.
`............. 7091230
`8/2002 Gentry, Jr.
`.. ................ 710/260
`912002 Elzur et aI.
`.. ............... 7091236
`912002 Muller et al.
`............... 7091250
`1012002 Starr et al.
`.................. 7111104
`1012002 Bellaton et al.
`............. 370/392
`
`INTEL Ex.1001.002
`
`
`
`US 7,673,072 B2
`Page 3
`
`6,480,489 Bl
`6,487,202 Bl
`6,487,654 B2
`6,490,631 Bl
`6,502,144 Bl
`6,523,119 B2
`6,526,446 Bl
`6,570,884 Bl
`6,591,302 B2
`6,591,310 Bl
`6,648,611 B2
`6,650,640 Bl
`6,657,757 Bl
`6,658,480 B2
`6,678,283 Bl
`6,681,364 Bl
`6,687,758 B2
`6,697,868 B2
`6,751,665 B2
`6,757,746 B2
`6,765,901 Bl
`6,807,581 Bl
`6,842,896 Bl
`6,912,522 B2
`6,938,092 B2
`6,941,386 B2
`6,965,941 B2
`6,996,070 B2
`7,042,898 B2
`7,076,568 B2
`7,089,326 B2
`7,093,099 B2
`7,124,205 B2
`7,133,940 B2
`7,167,926 Bl
`7,167,927 B2
`7,174,393 B2
`7,185,266 B2
`7,191,241 B2
`7,191,318 B2
`7,237,036 B2
`7,254,696 B2
`7,284,070 B2
`200110004354 A
`200110025315 A
`200110013059 Al
`200110014892 Al
`200110014954 Al
`200110048681 Al
`200110053148 Al
`200210073223 Al
`200210112175 Al
`2003/0066011 Al
`2003/0110344 Al
`2003/0165160 Al
`2004/0054814 Al
`2004/0059926 Al
`2004/0153578 Al
`2004/0213290 Al
`2004/0246974 Al
`
`............... 370/389
`1112002 Muller et al.
`1112002 Klausmeier et al. ......... 370/395
`1112002 Dowling ..................... 7121244
`12/2002 Teich et al.
`................. 7091250
`12/2002 Accarie ......................... 710/8
`212003 Pavlin et al ................. 713/192
`212003 Yang et al.
`5/2003 Connery et al. ............. 370/419
`7/2003 Boucher et al.
`............. 7091230
`7/2003 Johnson ... ..... ... ... ... ..... ... 710/3
`1112003 Morse et al .
`................ 417/310
`1112003 Muller et al.
`............... 370/392
`1212003 Chang et al ................. 359/124
`1212003 Boucher et al.
`............. 7091239
`112004 Teplitsky .................... 370/463
`112004 Calvignac et al ............ 7141776
`212004 Craft et al. .................. 7091250
`212004 Craft et al. .................. 7091230
`6/2004 Philbrick et al ............. 7091224
`6/2004 Boucher et al.
`............. 7091250
`7/2004 Johnson et al.
`............. 370/352
`1012004 Starr et al.
`.................. 7091250
`112005 Redding et al.
`............. 717/172
`6/2005 Edgar ............................ 707/2
`8/2005 Burns ......................... 7091230
`912005 Craft et al. .................. 7091250
`1112005 Boucher et al.
`............. 7091230
`212006 Starr et al.
`.................. 3701252
`5/2006 Blightman et al.
`.......... 370/463
`7/2006 Philbrick et al ............. 7091250
`8/2006 Boucher et al.
`............. 7091242
`8/2006 Bodas et al.
`................ 7111206
`1012006 Craft et al. .................. 7091250
`1112006 Blightman et al.
`............ 710122
`112007 Boucher et al.
`............. 7091250
`112007 Philbrick et al ............. 7091250
`212007 Boucher et al.
`............. 7091250
`212007 Blightman et al.
`.......... 7141776
`3/2007 Boucher et al.
`............. 7091230
`3/2007 Tripathyet al. ............. 7121225
`6/2007 Boucher et al.
`............. 7091245
`8/2007 Mittal et al.
`................ 7121210
`1012007 Boucher et al.
`............. 7091250
`112001 Jolitz
`......................... 370/328
`112001 Jolitz
`......................... 7091231
`8/2001 Dawson et al. .............. 7091217
`8/2001 Gaither et al.
`.............. 707/200
`8/2001 Purcell et al. .................. 714/4
`1212001 Bilic et al.
`.................. 370/389
`1212001 Bilic et al.
`.................. 370/389
`6/2002 Darnell et al.
`.............. 7091232
`8/2002 Makofka et al.
`............ 713/200
`412003 Oren .......................... 7141758
`6/2003 Szczepanek et al ......... 7111100
`912003 Minami et al. .............. 370/466
`3/2004 McDaniel
`3/2004 Angelo et al ................ 713/168
`812004 Elzur
`1012004 Johnson et al.
`1212004 Gyugyi et al.
`
`............. 370/469
`370/395.31
`
`FOREIGN PATENT DOCUMENTS
`
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`WO
`
`WO 98119412
`WO 98/50852
`WO 99104343
`WO 99/65219
`WO 00/13091
`WO 01104770
`WO 01105107
`WO 01105116
`WO 01105123
`WO 01140960
`
`5/1998
`1111998
`111999
`12/1999
`312000
`112001
`112001
`112001
`112001
`6/2001
`
`WO
`WO
`
`WO 01159966
`WO 01186430
`
`8/2001
`1112001
`
`OTHER PUBLICATIONS
`
`Internet pages entitled "Hardware Assisted Protocol Processing",
`(which Eugene Feinber is working on), 1 page, printed Nov. 25,1998.
`Zilog product Brief entitled "Z85C30 CMOS SCC Serial Commu(cid:173)
`nication Controller", Zilog Inc., 3 pages, 1997.
`Internet pages of Xpoint Technologies, Inc. entitled "Smart LAN
`Work Requests", 5 pages, printed Dec. 19, 1997.
`Internet pages entitled: Asante and 100BASE-T Fast Ethernet. 7
`pages, printed May 27, 1997.
`the Paragon XP/S-A7
`to
`Internet pages entitled: A Guide
`Supercomputer at Indiana University. 13 pages, printed Dec. 21,
`1998.
`Richard Stevens, "TCP/IP Illustrated, vol. 1, The Protocols", pp.
`325-326 (1994).
`Internet pages entitled: Northridge/Southbridge vs. Intel Hub Archi(cid:173)
`tecture, 4 pages, printed Feb. 19, 2001.
`Gigabit Ethernet Technical Brief, Achieving End-to-End Perfor(cid:173)
`mance. Alteon Networks, Inc., First Edition, Sep. 1996, 15 pages.
`Internet pages directed to Technical Brief on Alteon Ethernet Gigabit
`NIC technology, www.alteon.com.14pages.printed Mar. 15, 1997.
`Via Technologies, Inc. article entitled "VT8501 Apollo MVP4", pp.
`i-iv, 1-11, cover and copyright page, revision 1.3, Feb. 1,2000.
`iReady News Archives article entitled "iReady Rounding Out Man(cid:173)
`agement Team with Two Key Executives", http://www.ireadyco.
`corniarchives/keyexec.html, 2 pages, printed Nov. 28, 1998.
`"Toshiba Delivers First Chips to Make Consumer Devices Internet(cid:173)
`Ready Based On iReady's Design," Press Release Oct. 1998,3 pages,
`printed Nov. 28, 1998.
`Internet pages from iReady Products, web sitehttp://www.ireadyco.
`corniproducts,html, 2 pages, downloaded Nov. 25, 1998.
`iReady News Archives, Toshiba, iReady shipping Internet chip, 1
`page, printed Nov. 25, 1998.
`Interprophet article entitled "Technology", http://www.interprophet.
`cornitechnology.html, 17 pages, printed Mar. 1, 2000.
`iReady Corporation, article entitled "The 1-1000 Internet Tuner", 2
`pages, date unknown.
`iReady article entitled "About Us Introduction", Internet pages
`frornhttp://www.iReadyco.comiabout.html.3pages.printed Nov.
`25, 1998.
`iReady News Archive article entitled "Revolutionary Approach to
`Consumer Electronics Internet Connectivity Funded", San Jose, CA,
`Nov. 20,1997. 2 pages, printed Nov. 2, 1998.
`iReady News Archive article entitled "Seiko Instruments Inc. (SII)
`Introduces World's First Internet-Ready Intelligent LCD Modules
`Based on iReady Technology," Santa Clara, CA and Chiba, Japan,
`Oct. 26, 1998.2 pages, printed Nov. 2, 1998.
`NEWSwatch article entitled "iReady internet Tuner to Web Enable
`Devices", Tuesday, Nov. 5, 1996, printed Nov. 2, 1998,2 pages.
`EETimes article entitled "Tuner for Toshiba, Toshiba Taps iReady for
`Internet Tuner", by David Lammers, 2 pages, printed Nov. 2, 1998.
`"Comparison of Novell Netware and TCPIIP Protocol Architec(cid:173)
`tures", by J.S. Carbone, 19 pages, printed Apr. 10, 1998.
`Adaptec article entitled "AEA-7110C-a DuraSAN product", 11
`pages, printed Oct. 1, 2001.
`iSCSI HBA article entitled "iSCSI and 2Gigabit fibre Channel Host
`Bus Adapters from Emulex, QLogic, Adaptec, JNI", 8 pages, printed
`Oct. 1, 2001.
`iSCSI HBA article entitled "FCE-3210/641O 32 and 64-bit PCI-to(cid:173)
`Fibre Channel HBA", 6 pages, printed Oct. 1, 2001.
`ISCSI.com article entitled "iSCSI Storage", 2 pages, printed Oct. 1,
`2001.
`"Two-Way TCP Traffic Over Rate Controlled Channels: Effects and
`Analysis", by Kalampoukas et aI., IEEE Transactions on Network(cid:173)
`ing, vol. 6, No.6, Dec. 1998, 17 pages.
`IReady News article entitled "Toshiba Delivers First Chips to Make
`Consumer Devices Internet-Ready Based on iReady Design", Santa
`Clara, CA, and Tokyo, Japan, Oct. 14, 1998, printed Nov. 2, 1998,3
`pages.
`
`INTEL Ex.1001.003
`
`
`
`US 7,673,072 B2
`Page 4
`
`Internet pages of InterProphet entitled "Frequently Asked Ques(cid:173)
`tions", by Lynne Jolitz, printed Jun. 14,2000,4 pages.
`"File System Design For An NFS File Server Appliance", Article by
`D. Hitz, et ai., 13 pages.
`Adaptec Press Release article entitled "Adaptec Announces
`EtherStorage Technology", 2 pages, May 4, 2000, printed Jun. 14,
`2000.
`Adaptec article entitled "EtherStorage Frequently Asked Questions",
`5 pages, printed Jui. 19,2000.
`Adaptec article entitled "EtherStorage White Paper", 7 pages, printed
`Jui. 19,2000.
`CIBC World Markets article entitled "Computers; Storage", by J.
`Berlino et al., 9 pages, dated Aug. 7, 2000.
`Merrill Lynch article entitled "Storage Futures", by S. Milunovich,
`22 pages, dated May 10, 2000.
`CBS Market Watch article entitled "Montreal Start-Up Battles Data
`Storage Botttieneck", by S. Taylor, dated Mar. 5, 2000, 2 pages,
`printed Mar. 7, 2000.
`Internet-draft article entitled "SCSI/TCP (SCSI over TCP)", by J.
`Satran et al., 38 pages, dated Feb. 2000, printed May 19, 2000.
`Internet pages entitled Technical White Paper-Xpoint's Disk to LAN
`Acceleration Solution for Windows NT Server, printed Jun. 5, 1997,
`15 pages.
`Jato Technologies article entitled Network Accelerator Chip Archi(cid:173)
`tecture, twelve-slide presentation, printed Aug. 19, 1998, 13 pages.
`EETimes article entitled Enterprise System Uses Flexible Spec,
`dated Aug. 10,1998, printed Nov. 25,1998,3 pages.
`Internet pages entitled "Smart Ethernet Network Interface Cards",
`which Berend Ozceri is developing, printed Nov. 25, 1998,2 pages.
`Internet pages of Xaqti corporation entitled "GigaPower Protocol
`Processor Product Review," printed Nov. 25, 1999,4 pages.
`U.S. Appi. No. 601283,896, Titled: CRC Calculations for Out of
`Order PUDs, filed Apr. 12, 2003, Inventor: Amit Oren, Assignee:
`Siliquent Technologies Ltd.
`Internet pages entitled "DART: Fast Application Level Networking
`via Data-Copy Avoidance," by Robert J. Walsh, printed Jun. 3, 1999,
`25 pages.
`Andrew S. Tanenbaum, Computer Networks, Third Edition, 1996,
`ISBN 0-13-349945-6.
`Article from Rice University entitled "LRP: A New Network Sub(cid:173)
`system Architecture for Server Systems", by Peter Druschel and
`Gaurav Banga, 14 pages.
`Internet RFC/STD/FYI/BCP Archives article with heading
`"RFC2140" entitled "TCP Control Block Interdependence", web
`address http://www.faqs.org/rfcs/rfc2140.htrnl.9pages.printed Sep.
`20,2002.
`WindRiver article entitled "Tornado: For Intelligent Network Accel(cid:173)
`eration", copyright Wind River Systems, 2001, 2 pages.
`WindRiver White Paper entitled "Complete TCP/IP Offload for
`High-Speed Ethernet Networks", Copyright Wind River Systems,
`2002, 7 pages.
`Intel article entitled "Solving Server Bottlenecks with Intel Server
`Adapters", Copyright Intel Corporation, 1999,8 pages.
`Schwaderer et ai., IEEE Computer Society Press publication entitled,
`"XTP in VLSI Protocol Decomposition for ASIC Implementation",
`from 15th Conference on Local Computer Networks, 5 pages, Sep.
`30-0ct. 3, 1990.
`Beach, Bob, IEEE Computer Society Press publication entitled,
`"UltraN et: An Architecture for Gigabit Networking", from 15th Con(cid:173)
`ference on Local Computer Networks, 18 pages, Sep. 30-0ct. 3,
`1990.
`
`Chesson et ai., IEEE Syposium Record entitled, "The Protocol
`Engine Chipset", from Hot Chips III, 16 pages, Aug. 26-27,1991.
`Maclean et ai., IEEE Global Telecommunications Conference,
`Globecom '91, presentation entitled, "An Outboard Processor for
`High Performance Implementation of Transport Layer Protocols", 7
`pages, Dec. 2-5, 1991.
`Ross etai., IEEE article entitled "FXI000: Ahigh performance single
`chip Gigabit Ethernet NIC", from Compcon '97 Proceedings, 7
`pages, Feb. 23-26, 1997.
`Strayer et ai., "Ch. 9: The Protocol Engine" from XTP: The Transfer
`Protocol, 12 pages, Jui. 1992.
`Publication entitled "Protocol Engine Handbook", 44 pages, Oct.
`1990.
`Koufopavlou et ai., IEEE Global Telecommunications Conference,
`Globecom '92, presentation entitled, "Parallel TCP for High Perfor(cid:173)
`mance Communication Subsystems", 7 pages, Dec. 6-9, 1992.
`Lilienkamp et ai., Publication entitled "Proposed Host-Front End
`Protocol", 56 pages, Dec. 1984.
`Thia et ai. Publication entitled "High-Speed OSI Protocol Bypass
`Algorithm with Window Flow Control," Protocols for High Speed
`Networks, pp. 53-68, 1993.
`U.S. Appi. No. 601053,240, Titled: TCP/IP Network Accelerator and
`Method of Use, filed Jui. 17, 1997, Inventor: William Jolizt et ai.
`Thia et ai. Publication entitled "A Reduced Operational Protocol
`Engine (ROPE) for a multiple-layer bypass architecture," Protocols
`for High Speed Networks, pp. 224-239, 1995.
`Form 10-K for Exelan, Inc., for the fiscal year ending Dec. 31, 1987
`(10 pages).
`Form 10-K for Exelan, Inc., for the fiscal year ending Dec. 31, 1988
`(10 pages).
`* cited by examiner
`Primary Examiner-Jude J Jean Gilles
`(74) Attorney, Agent, or Firm-Mark Lauer; Silicon Edge
`Law Group, LLP
`
`(57)
`
`ABSTRACT
`
`A system for protocol processing in a computer network has
`an intelligent network interface card (INIC) or communica(cid:173)
`tion processing device (CPD) associated with a host com(cid:173)
`puter. The INIC provides a fast-path that avoids protocol
`processing for most large multi-packet messages, greatly
`accelerating data communication. The INIC also assists the
`host for those message packets that are chosen for processing
`by host software layers. A communication control block for a
`message is defined that allows DMA controllers of the INIC
`to move data, free of headers, directly to or from a destination
`or source in the host. The context is stored in the INIC as a
`communication control block (CCB) that can be passed back
`to the host for message processing by the host. The INIC
`contains specialized hardware circuits that are much faster at
`their specific tasks than a general purpose cpu. A preferred
`embodiment includes a trio of pipelined processors with
`separate processors devoted to transmit, receive and manage(cid:173)
`ment processing, with full duplex communication for four
`fast Ethernet nodes.
`
`21 Claims, 89 Drawing Sheets
`
`INTEL Ex.1001.004
`
`
`
`35~ STORAGE r---
`
`I
`I
`I
`I
`I
`I
`I
`30 I
`~ CPD
`
`1 -
`
`~33
`
`I
`I
`I
`I
`L _____ - - - - - - - - - - - - - - - - -
`
`r 22
`
`REMOTE
`HOST
`
`25\
`
`(50
`
`42,,-
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 1 of89
`
`US 7,673,072 B2
`
`20
`r------------------------,
`HOST
`1--/
`I
`
`,
`
`28
`
`-
`
`CPU
`
`CONTEXT
`
`~
`
`52
`'--
`
`FIG. 1
`
`( 46
`
`UPPER
`LAYER
`UPPER LAYER 48\
`INTERFACE
`
`\
`
`44
`
`54)
`TRANSPORT
`4~
`38"'-
`
`NETWORK
`
`r - DATA LINK
`36
`
`30\
`
`56
`~
`,Ir
`
`INIC/CPD
`
`....
`
`FIG. 2
`
`STORAGE
`
`"-
`
`35
`
`~8
`
`INTEL Ex.1001.005
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 2 of89
`
`US 7,673,072 B2
`
`RECEIVE PACKET
`FROM NETWORK
`BYCPD
`
`VALIDATE PACKET,
`SUMMARIZE
`HEADERS
`
`47
`
`57
`
`61
`
`5~
`
`FAST PATH
`CANDIDATE?
`
`NO
`
`SEND PACKET TO
`STACK FOR SLOW-
`PATH PROCESSING
`
`67
`
`YES
`
`53
`
`65
`
`NO
`
`SEND PACKET TO
`STACK FOR SLOW-
`PATH PROCESSING
`
`CREATE CCB FOR
`MESSAGE
`
`51
`
`CCB?
`
`YES
`
`69
`
`SEND TO
`DESTINATION
`IN HOST VIA
`FAST-PATH
`
`FIG. 3
`
`INTEL Ex.1001.006
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 3 of89
`
`US 7,673,072 B2
`
`REMOTE
`HOST
`
`25
`
`FIG.4A
`
`65
`r - - - - - - - l
`I
`f-----L+K:::-l
`I
`I
`I
`I
`I
`I
`
`40
`38
`36
`
`SESS
`TRANS
`NETW
`DUNK
`~44
`
`SESS
`TRANS
`NETW
`DUNK
`
`56
`
`~44
`
`I
`I
`35 I
`'-1
`I
`L _______
`
`40
`38
`36
`
`42
`40
`38
`36
`
`SESS
`TRANS
`NETW
`DLINK
`
`~44
`
`r--- ---,
`I
`I
`I
`1
`70 1
`35
`:
`'--i
`1
`I
`L _______ I
`
`1
`
`REMOTE
`HOST
`
`REMOTE
`HOST
`
`REMOTE
`HOST
`
`32
`
`32
`
`FIG.4C
`
`FIG.4D
`
`INTEL Ex.1001.007
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 4 of89
`
`US 7,673,072 B2
`
`REMOTE
`HOST
`
`42
`~SE~S~S~--.-J~--rMI :
`TRANS
`NETW
`,..-_,--...., DLINK
`96
`
`99
`
`1
`
`L.......-_-' 1
`
`1
`1
`
`L - -,- - --,
`)
`35·...-
`~44
`
`~--------~
`
`FIG. 5
`
`15l
`
`152-, ,----- -- --------1
`1
`FAST-PATH
`: : ~ SOURCEIDEST
`168 -r
`.. ~
`
`APPLICATION
`
`C157 . -----\:-------
`
`1
`
`I
`
`158
`
`1
`1
`1
`1
`1
`1
`1
`-'
`
`INTEL Ex.1001.008
`
`1
`166 - - 1 .
`1
`1
`164~ TRANSPORT
`1
`:-t---
`162
`1
`1
`1
`1
`1
`1
`1
`1
`160,-+-
`1
`1
`1 HARDWARE LOGIC
`1 SLOW-PATH
`1
`..l.
`~I
`L __________________ '.
`I
`1
`171
`~155
`"
`
`185
`150 '" 170
`: ___ L ___ ~ ______ - \_ -
`
`PROCESSOR
`
`S
`
`FIG. 6
`
`1
`
`NETWORK
`
`DATA LINK
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 5 of89
`
`US 7,673,072 B2
`
`MEDIA ACCESS r----.-- 172
`CONTROLLER
`I
`
`l'
`ASSEMBLY r------- 174
`REGISTER
`
`(178
`)
`
`..
`FLYBY
`.~-- SEQUENCER
`MULTIPLEXOR r----.-- 180
`
`"
`
`PACKET
`CONTROL
`SEQUENCER
`J
`
`SRAM
`
`...-
`
`SRAM
`CONTROL
`
`...-
`
`"
`
`DRAM CONTROL
`
`C 186
`
`l'
`
`DRAM
`
`r------- 188
`
`QUEUE
`184"'-- MANAGER
`
`FIG. 7
`
`INTEL Ex.1001.009
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 6 of89
`
`US 7,673,072 B2
`
`) 174
`
`PACKET
`176 ______ CONTROL
`SEQUENCER
`
`I----~
`
`.. ASSEMBLY
`REGISTER
`
`178
`
`r---- 191
`MAC
`~ 1 -4 - - - - - - -1
`SEQUENCER
`
`1
`
`r---- 192
`NETWORK _
`1 -4 - - - - - - - - - J
`SEQUENCER
`
`TRANSPORT ~ 194
`I-0Il-1--------1
`SEQUENCER
`
`SESSION ~ 195
`14 - - - - - -
`SEQUENCER """
`
`MULTIPLEXOR
`
`FIG. 8
`
`INTEL Ex.1001.010
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 7 of89
`
`US 7,673,072 B2
`
`FAST-PATH~", SOURCEIDEST
`I'
`'t3~~ __ :~~~i_~3~_i~4 -r- r:;237
`222~ APPLICATION ,~
`~ f - - - - - - - -H
`PROCESSOR)
`220
`I
`I
`I
`, '" HARDWARE LOGIC 4 :
`217---r TRANSPORT
`262, I ~
`I
`II
`I - - - - - - - - - - - t - l
`~ ~HARDWARELOGIC3 S:
`215~NETWORK
`r+--; HARDWARE LOGIC 2
`212
`I
`I
`I
`/
`' - - - I I - - - - - - -H
`: HARDWARE LOGIC 1
`: \ SLOW-PATH; MAC
`I
`I : '----------'
`" L~210-----t-----;6~- '. C • ------',~-----
`
`240 ./
`
`,~
`
`~
`
`250
`
`205
`
`202
`
`FIG. 9
`
`TDIUSERS ~ 382
`
`- - -
`
`TDI FILTER DRIVER
`I~
`& UPPER LAYER INTERFACE
`
`I~ ATCP
`
`360
`
`- - -
`TCP ~ 358
`
`366
`;~
`
`IP
`
`IP ~ 355
`
`350
`
`363 ~ MAC
`- - -
`375 ~ NDIS
`
`MAC ~ 353
`---
`
`)1'
`
`,Ir
`
`I'
`,,..
`
`377 ~ INIC MINIPORT DRIVER
`
`FIG. 11
`
`INTEL Ex.1001.011
`
`270
`
`231
`
`:
`I
`
`II
`
`242
`'--
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 8 of89
`
`US 7,673,072 B2
`
`r--------------------------------I
`202/~,_~
`I
`I
`I
`
`300
`"\ 318~
`
`, ' - - - - -
`
`UPPERLAYER
`
`~.I--': ___ -"
`
`"
`
`I
`I
`I
`:
`I
`~III
`- 316
`I ~
`I
`
`:
`:
`I
`I
`I
`,~.
`330
`1--'
`I
`.~I
`325
`r----'
`I
`I
`322~ NETWORK
`I
`I 1--_____ --1
`I
`I
`320~ DATALINK
`DATALINK ~ 312
`I
`I
`I
`I'
`I'
`I
`I
`L ________________________ -t. _____ 1
`'--310
`,w-
`'w-
`
`UPPER LAYER INTERFACE
`
`TRANSPORT
`
`TRANSPORT
`
`NETWORK
`
`~314
`
`240~
`
`306 ~ INIC MINIPORT DRIVER
`
`J
`
`1
`
`INIC
`
`200~
`
`(
`
`210
`
`INIC
`MEMORY ~304
`
`FIG. 10
`
`INTEL Ex.1001.012
`
`
`
`190 ._,,-~-------cLiENT------1
`
`,...--
`
`I,i-----~
`
`168
`
`166
`
`164
`157
`162
`
`160
`
`5MB
`
`NETBIOS
`
`TCP
`
`IP
`
`MAC
`
`~159
`
`-------------1
`SERVER
`l_"-" 290
`I
`I
`
`5MB
`
`NETBIOS
`
`TCP
`
`IP
`
`MAC
`
`INrc
`
`210
`
`INIC
`
`L _______________ __ _
`
`L. _____ _
`
`___ J
`
`240
`
`244
`
`242
`
`FIG. 12
`
`~
`7Jl
`•
`~
`~
`~
`
`~ = ~
`
`N
`
`~
`~ :-:
`N o .... o
`
`~
`
`('D
`('D
`
`rFJ =(cid:173)
`.....
`\0
`o ....
`
`QO
`\0
`
`222
`
`220
`
`217
`231
`215
`
`212
`
`200
`
`d
`rJl
`-....l
`0..,
`-....l
`
`-....l
`
`W -=
`N = N
`
`INTEL Ex.1001.013
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 10 of 89
`
`US 7,673,072 B2
`
`210
`
`400 -, 240
`\
`_______ L ___ _
`
`200~
`.,
`
`42
`
`244
`
`----,
`
`MAC-A
`
`402 MAC-B
`
`04
`
`MAC-C
`
`406
`
`MAC-D
`
`1
`
`1
`
`:
`
`412
`
`1
`1
`1
`
`416 1
`
`XMT&
`RCV-A
`
`418
`
`XMT&
`RCV-B
`
`420
`
`428
`
`426
`
`XMT&
`RCV-C
`430
`
`422
`42
`
`XMT&
`RCV-D
`
`43
`
`REG FILE
`WCS
`ROM
`
`477
`
`:---MfCRO----: 470
`1 PROCESSOR L_/
`1 r - - - - - - - - ,
`1
`1
`1
`1
`1
`
`: 484
`
`464
`
`440
`
`SRAM
`
`EXTERNAL
`MEMORY
`CTRL
`
`SRAM
`CTRL
`____ ,_1
`'-444
`
`1
`1
`
`1
`1
`
`446
`
`450
`
`468
`
`PCI BUS INTERFACE UNIT
`
`1
`1
`
`1 ______ - - - - - - - - - - - - - - - - - -
`
`1
`1
`___________________ J
`
`257
`
`FIG. 13
`
`455
`1 - - - - - - -
`
`1
`1
`
`1
`
`1
`1
`1
`
`DRAM
`
`460
`
`INTEL Ex.1001.014
`
`
`
`u.s. Patent
`
`Mar. 2,2010
`
`Sheet 11 of 89
`
`US 7,673,072 B2
`
`CLOCK r--r-------L----- L ______ /- ______ L _____ L __
`
`/
`
`/
`I
`I
`I
`I
`I
`I
`
`/
`
`/
`
`500'-,
`,
`
`)
`I
`
`492.....,
`
`CONTROLS FOR FIRST REGISTER SET
`
`490\
`
`505
`
`-../"'
`
`533\
`
`FIRST REGISTER SET
`
`~ I
`I
`I :
`I
`, ,
`I
`>-- f------- - - - - - - - - -