throbber
(12) United States Patent
`Brebner
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 6,891,397 B1
`May 10, 2005
`
`USOO6891397 B1
`
`(54) GIGABIT ROUTER ON A SINGLE
`PROGRAMMABLE LOGIC DEVICE
`
`(75) Inventor: Gordon J. Brebner, Monte Sereno, CA
`(US)
`(73) Assignee: Xilinx, 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 0 days.
`
`(21) Appl. No.: 10/420,224
`(22) Filed:
`Apr. 21, 2003
`(51) Int. Cl. .............................................. H03K 19/177
`(52) U.S. Cl. .............................. 326/41; 326/38; 326/39
`(58) Field of Search ................................ 326/37-41, 47
`(56)
`References Cited
`U.S. PATENT DOCUMENTS
`
`6,275,491 B1 *
`6.279,045 B1 *
`
`8/2001 Prasad et al. ............... 370/389
`8/2001 Muthujumaraswathy et al. 710/
`5
`
`OTHER PUBLICATIONS
`http://www-cad.eecS.berkeley.edu/Respep/Research/hsc/;
`downloaded Apr. 18, 2003; pp. 1-6.
`N. Bergmann et al., “Reconfigurable Computing and Reac
`tive Systems'; Proceedings of the 7th Australasian Confer
`ence on Parallel and Real-Time Systems; Springer; Nov.
`29–30, 2000; pp. 171-180.
`F. Braun et al., “Reconfigurable Router Modules Using
`Network Protocol Wrappers'; 11th International Conference
`on Field Programmable Logic and Applications, Springer
`LNCS 2147; Aug. 27–29, 2001; pp. 254-263.
`G. Brebner; “A Virtual Hardware Operating System for the
`Xilinx XC6200”; 6th International Workshop on Field Pro
`grammable Logic and Applications, Springer LNCS 1142,
`Sep. 23–25, 1996; pp. 327–336.
`G. Brebner et al., “Chip-Based Reconfigurable Task Man
`agement'; 11th International Conference on Field Program
`mable Logic and Applications, Springer LNCS 2147; Aug.
`27–29, 2001; pp. 182-191.
`
`G. Brebner; "Single-Chip Gigabit Mixed-Version IP Router
`on Virtex-II Pro”; IEEE Symposium on FPGAs Custom
`Computing Machines; IEEE Computer Society Press; Apr.
`22-24, 2002; pp. 35-44.
`J. Burns et al., “A Dynamic Reconfiguration Run-Time
`System”; Proc. 5th Annual IEEE Symposium on FPGAs
`Custom Computing Machines; IEEE, Apr. 16-18, 1997, pp.
`66-75.
`O. Diessel et al., “Run-Time Compaction of FPGA
`Designs”;7th International Workshop on Field Program
`mable Logic and Applications; Springer LNCS 1304; Sep.
`1–3, 1997; pp. 131-140.
`H. ElGindy et al., “Task Rearrangement on Partially Recon
`figurable FPGAs with Restricted Buffer'; 10th International
`Workshop on Field Programmable Logic and Applications;
`Springer LNCS 1896; Aug. 27–28, 2000; pp. 379–388.
`H. Fallside et al., “Internet Connected FPL'; 10th Interna
`tional Workshop on Field Programmable Logic and Appli
`cations; Springer LNCS 1896; Aug. 27–30, 2000; pp. 48-57.
`D. Harel; “Statecharts: A Visual Formalism for Complex
`Systems';p Science of Computer Programming, 8; Jun.
`1987, pp. 231-274; downloaded from: http://www.wisdom.
`Weizmann.ac.il/-dharel/Scanned. PaperS/Statecharts.pdf.
`A. Silberschattz et al., “ Applied Operating System Con
`cepts”, 1st Edition; New York; published by John Wiley &
`Sons; Copyright 2000; Chapter 5: Threads; pp. 116-117.
`(Continued)
`
`Primary Examiner Anh Q. Tran
`(74) Attorney, Agent, or Firm W. Eric Webostad
`(57)
`ABSTRACT
`Apparatus for network and System on a Single program
`mable logic device is described. The programmable logic
`includes port modules. The port modules have configurable
`logic configured to proceSS communications for routing
`communications. The port modules are configured to the
`process communications for at least one of a plurality of
`protocols.
`
`45 Claims, 16 Drawing Sheets
`
`PL)
`100
`
`Configured
`Logic
`iOS
`
`Port Mus
`
`Port Mcxule
`101-4
`
`
`
`Configured
`Logic
`05
`
`
`
`Configured
`Logic
`105
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 1 of 29
`
`

`

`US 6,891,397 B1
`Page 2
`
`OTHER PUBLICATIONS
`
`G. Brebner; “Multithreading for Logic-Centric Systems';
`12th International Conference on Field Programmable Logic
`and Applications; Montepellier, France; Sep. 2-4, 2002;
`Springer LNCS 2438; pp. 5-14.
`R. Gilligan et al.; Internet Requests for Comments (RFC);
`RFC 2893 “Transition Mechanisms for IPv6 Hosts and
`Routers'; Aug. 2000; Accessible at http://www.rfc-editor.
`org/rfc.html.
`A. Conta; Internet Requests for Comments (RFC); RFC
`2473 “Generic Packet Tunneling in IPv6 Specification”;
`Dec. 19981. Accessible at http://www.rfe-editor.org/
`rfc.html.
`G. Tsirtsis; Internet Requests for Comments (RFC); RFC
`2766 “Network Address Translation-Protocol Translation
`(NAT-PT)”; Feb. 2000; Accessible at http://www.rfe-edi
`tor.org/rfc.html.
`E. Nordmark; Internet Requests for Comments (RFC); RFC
`2765 “Stateless IP/ICMP Translation Algorithm (SIIT)";
`Feb. 2000; Accessible at http://www.rfc-editor.org/rfc.html.
`R. Hinden et al.; Internet Requests for Comments (RFC);
`RFC 2374 “An Aggregatable Global Unicast Address For
`mat”; Jul. 1998; Accessible at http://www.rfe-editor.org/
`rfc.html.
`G. Brebner; "Highly Reconfigurable Communication Pro
`tocol Multiplexing Element for SCOPH'; Reconfigurable
`Technology, Proceedings of SPIE, 4525; Aug. 21-22, 2001;
`pp. 99-106.
`
`J. Lockwood et al., “Reprogrammable Network Packet
`Processing on the Field Programmable Extender (FPX)"; 9th
`International Symposium on Field Programmable Gate
`Arrays; ACM Press 2001; pp. 87-93.
`J. Ditmar et al., “A Dynamically Reconfigurable FPGA
`Based Content Addressable Memory for Internet Protocol
`Characterization'; Proc. 10th International Conference on
`Field Programmable Logic and Applications, Springer
`LNCS 1896; Aug. 27–30, 2000; pp. 19–28.
`S. Guccione et al., “A Reconfigurable Content Addressable
`Memory”; Parallel and Distributed Processing; 15 IPDPS
`2000 Workshop; Springer LNCS 1800; May 1–5, 2000; pp.
`882-889.
`G. Brebner et al., “Runtime Reconfigurable Routing”; Proc.
`12th International Parallel Processing Symposium and 9th
`Symposium Parallel and Distributed Process; Springer
`LNCS 1388; Mar. 30-Apr. 3, 1998; pp. 25–30.
`D. Comer; Chapter 22 The Future IP (IPv6) of Computer
`Networks and Internets; (3rd Edition); Prentice-Hall; 2001;
`pp. 338-349.
`A. Dollas et al., “Architecture and Applications of
`PLATO: . .
`. ”; Proc. 9th IEEE Symposium on Field
`Programmable Custom Computing Machines; IEEE Press;
`Apr. 30-May 2, 2001, pp. Preliminary Proceeding.
`U.S. Appl. No. 10/420,603, filed Apr. 21, 2003, inventor
`Brebner.
`U.S. Appl. No. 10/420,652, filed April 21, 2003, inventor
`Brebner.
`U.S. Appl. No. 10/421,013, filed Apr. 21, 2003, inventor
`Brebner.
`* cited by examiner
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 2 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 1 of 16
`
`US 6,891,397 B1
`
`Configured
`Logic
`105
`
`
`
`PLD
`100
`
`Configured
`Logic
`105
`
`Port Module
`101-1
`
`Port Module
`101-2
`
`Huo
`Module(s)
`102
`
`Embedded
`PrOCeSSOr
`106
`
`Port Module
`101-4
`
`Port Module
`101-3
`
`Configured
`Logic
`105
`
`Configured
`Logic
`105
`
`FIG. 1
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 3 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 2 of 16
`
`US 6,891,397 B1
`
`
`
`Interface
`Module
`
`Network
`interface
`Module
`2014
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 4 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 3 of 16
`
`US 6,891,397 B1
`
`
`
`Mem. Cells
`. 215
`
`:
`
`...
`
`TranSceivers
`
`I
`
`Programmable interconnect
`
`211
`
`FIG. 2B
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 5 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 4 of 16
`
`US 6,891,397 B1
`
`
`
`Uniodirectional Serial
`Inputs and Outputs
`
`PLD
`100
`-
`
`ime
`Domain
`
`Time
`Domain
`38
`
`Packet
`Handler
`
`Microprocessor
`311
`
`FG. 3A
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 6 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 5 of 16
`
`US 6,891,397 B1
`
`
`
`Unidirectional Serial
`Inputs and Outputs
`333
`
`Tithe
`Domain
`331
`
`Time
`Domain
`
`Packet
`Handler
`322-2
`Regs
`333
`
`Microprocessor
`311
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 7 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 6 of 16
`
`US 6,891,397 B1
`
`
`
`
`
`Dr.
`332
`
`Time
`
`D.
`
`Unidirectional Serial
`Inputs and Outputs
`333
`
`
`
`Handler
`322-3
`
`Handler
`322-2
`Regs
`333
`
`Control
`Reg.
`Chain
`319
`
`Process arole a sea--as--
`
`Hub Core Connect
`327
`
`Microprocessor
`311
`
`
`
`FIG. 3C
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 8 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 7 of 16
`
`US 6,891,397 B1
`
`Protocol
`Stack
`400
`-
`
`
`
`Physical Interface Layer
`(LVDS inputs and LVDS Outputs)
`4O1
`Medium Access Control Layer
`(Ethernet Processing)
`4O2
`Transport Protocol Layers
`(TCP/IP Processing)
`403
`
`FIG. 4
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 9 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 8 of 16
`
`US 6,891,397 B1
`
`Y
`
`Packet
`fossing
`Flow
`
`Receive
`Ethernet Packet
`502
`
`
`
`
`
`
`
`
`
`Strean Packet
`Being Received
`511
`
`Broadcast/Sent
`information
`512
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 10 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 9 of 16
`
`US 6,891,397 B1
`
`
`
`
`
`
`
`Broadcast/Sent
`information
`507
`
`
`
`Broadcast
`Packet
`Processing
`
`Broadcast
`Packet
`Processing
`FOW
`
`st
`
`t
`
`
`
`
`
`
`
`
`
`
`
`|
`
`Buffer Information
`521
`
`Complete?
`522
`
`
`
`Change State to
`Ready to Transmit
`524
`Q PortS
`
`Complete?
`522
`
`Change State to
`Ready to Transmit
`
`FIG. 5B
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 11 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 10 of 16
`
`US 6,891,397 B1
`
`
`
`
`
`Advance Buffer
`533
`
`
`
`
`
`
`
`
`
`
`
`
`
`Packet
`Transmission
`FOW
`
`- so
`
`Query Buffer
`531
`
`
`
`Packet
`Waiting?
`532
`
`Transmit Packet (Transmit
`Thread)
`535
`
`FIG. 5C
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 12 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 11 of 16
`
`US 6,891,397 B1
`
`Multithreading Flow
`N so
`
`P
`
`Packet Reception/
`Transmission Thread
`Start
`6O1
`w
`\-
`611
`619. N
`MACISNAP
`L-I - I -
`Header 612 N-1
`J-613
`Recog.
`Thread Encapsulation
`602
`Thread
`603
`
`615 N-1 :
`
`604 IP Address Lookup
`Thread
`605
`
`MAC Header Writing
`Thread
`606
`
`-o-Time
`
`F.G. 6A
`
`Buffer Clock
`Signal
`
`626
`
`626
`
`
`
`
`
`Thread 628
`Clock
`Signal
`627
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 13 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 12 of 16
`
`US 6,891,397 B1
`
`IPv4 Packet?
`702
`
`IPv6 Packet?
`703
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`IPv4
`Connection?
`704
`
`IPv6
`Connection?
`
`P Packet
`Conversion Flow
`- 700
`
`IPv6
`Connection?
`707
`
`Connection?
`708
`
`
`
`Encapsulate Packet with
`IPv6
`706
`
`Encapsulate Packet with
`IPv4
`709
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Route Packet
`710
`
`
`
`FIG. 7
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 14 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 13 of 16
`
`US 6,891,397 B1
`
`
`
`Address
`Extraction and
`Matching
`
`Tunnel Lookup
`804
`
`Packet
`Translation
`
`Configured Logic
`800
`
`Packet
`Encapsulation
`803
`
`Fragmentation
`of an Over
`sized Packet
`
`DeCapsulation
`Same Protocol
`
`Decapsulation
`Differing
`Protocols
`
`Packet Handling
`Functions
`
`Physical Layer
`Header
`Recognition
`811
`
`Encapsulation
`814
`
`Protocol
`Recognition
`812
`
`Physica Layer
`Header
`Construction
`815
`
`Address
`Lookup
`813
`
`FIG. 8
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 15 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 14 of 16
`
`US 6,891,397 B1
`
`Routing Table
`
`FIG. 9A
`
`
`
`
`
`IP V4
`(1-bit)
`
`IP W6
`(1-bit)
`
`Router Port
`(4-bits)
`
`Router Port interface
`(10-bits)
`
`Address Lookup
`Table
`p?y 910
`MAC Address
`(48-bits)
`
`912
`
`93 914
`
`915
`
`916
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 16 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 15 of 16
`
`US 6,891,397 B1
`
`Buffer Memory
`1000
`
`-
`
`Flag Space
`
`
`
`Word Space
`1001
`
`Offset
`Space
`1003
`
`Packet
`Space
`1004
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 17 of 29
`
`

`

`U.S. Patent
`
`May 10, 2005
`
`Sheet 16 of 16
`
`US 6,891,397 B1
`
`
`
`
`
`
`
`
`
`
`
`
`
`Configured
`Logic
`105-1
`
`Wireless
`Hub
`1102
`
`Configured
`Logic
`105-2
`
`Port Module
`1O
`
`Port Module
`101-2
`
`
`
`
`
`
`
`Port Module
`1O-3
`
`Embedded
`Processor
`106
`
`Port Module
`101-4
`
`
`
`
`
`
`
`
`
`
`
`Configured
`Logic
`105-3
`
`Configured
`Logic
`O5-4
`
`ATM Switch
`1103
`
`FIG. 11
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 18 of 29
`
`

`

`US 6,891,397 B1
`
`1
`GIGABIT ROUTER ON A SINGLE
`PROGRAMMABLE LOGIC DEVICE
`
`1O
`
`25
`
`35
`
`40
`
`15
`
`FIELD OF THE INVENTION
`One or more aspects of the invention relate generally to
`programmable logic devices and, more particularly, to con
`figuring a programmable logic device to provide a router.
`BACKGROUND OF THE INVENTION
`Programmable logic devices (PLDs) exist as a well
`known type of integrated circuit (IC) that may be pro
`grammed by a user to perform Specified logic functions.
`There are different types of programmable logic devices,
`Such as programmable logic arrays (PLAS) and complex
`programmable logic devices (CPLDS). One type of pro
`grammable logic device is called a field programmable gate
`array (FPGA).
`An FPGA conventionally includes an array of config
`urable logic blocks (CLBs) surrounded by a ring of pro
`grammable input/output blocks (IOBs). The CLBs and IOBs
`are interconnected by a programmable interconnect Struc
`ture. The CLBs, IOBs, and interconnect structure are con
`ventionally programmed by loading a Stream of configura
`tion data (bit stream) into internal configuration memory
`cells that define how the CLBs, IOBS, and interconnect
`Structure are configured. Additionally, an FPGA may
`include: embedded memory, Such as block random acceSS
`memories (BRAMs); one or more microprocessors, Some
`times referred to as embedded cores, digital clock managers
`(DCMs); and low voltage differential signaling (LVDS)
`input/output (I/O) interfaces.
`The combination of components on an FPGA may be used
`for System-level integration, Sometimes referred to as
`“System-on-a-chip’ (SoC). Accordingly, System-level inte
`gration with FPGAs is desirable for flexibility and efficiency.
`SUMMARY OF THE INVENTION
`An aspect of the invention is a programmable logic
`device, comprising: port modules having configurable logic
`configured to process communications for routing the com
`munications.
`Another aspect of the invention is a System on a single
`programmable logic integrated circuit, comprising: a hub
`including a microprocessor, ports coupled to the hub, each
`of the ports including buffer memory, a packet handler and
`an input/output interface, the packet handler for each of the
`ports including configurable logic blocks, the configurable
`logic blocks configured to route from the Single program
`mable logic integrated circuit packets received via the
`input/output interface and configured to Send information
`from the packets to the hub for processing with the
`microprocessor, the buffer memory coupled for Storing the
`packets, and buses for respectively coupling the ports to the
`hub, wherein the ports and the hub are coupled to one
`another in a Star topology by the buses.
`Another aspect of the invention is a network, comprising:
`a Single programmable logic device, the Single program
`mable logic device having port modules with configurable
`logic configured to proceSS communications for routing the
`communications, each of the port modules configured to
`process the communications for at least one of a plurality of
`protocols, and network nodes respectively coupled to the
`port modules of the Single programmable logic device, each
`65
`of the network nodes using a respective protocol for com
`munication.
`
`45
`
`50
`
`55
`
`60
`
`2
`BRIEF DESCRIPTION OF THE DRAWINGS
`Accompanying drawing(s) show exemplary embodiment
`(s) in accordance with one or more aspects of the invention;
`however, the accompanying drawing(s) should not be taken
`to limit the invention to the embodiments shown, but are for
`explanation and understanding only.
`FIG. 1 depicts a high-level block diagram of an exemplary
`embodiment of a PLD configured as a router.
`FIG. 2A depicts a block diagram of an exemplary embodi
`ment of a PLD having a unidirectional mesh point-to-point
`topology.
`FIG.2B depicts a block diagram of an exemplary embodi
`ment of a port.
`FIG. 3A depicts a block diagram of an exemplary embodi
`ment of a PLD with a Star topology and a processor centric
`architecture.
`FIG. 3B depicts a block diagram of an exemplary embodi
`ment of a PLD with a bus topology and a logic-centric
`architecture.
`FIG. 3C depicts a block diagram of an exemplary embodi
`ment of a PLD with a point-to-point mesh topology and a
`logic-centric architecture.
`FIG. 4 depicts a block diagram of an exemplary embodi
`ment of a protocol Stack.
`FIG. 5A depicts a flow diagram of an exemplary embodi
`ment of a packet process flow for a port.
`FIG. 5B depicts a flow diagram of an exemplary embodi
`ment of a broadcast packet processing flow.
`FIG. 5C depicts a flow diagram of an exemplary embodi
`ment of a packet transmission flow.
`FIG. 6A depicts a timeline diagram of an exemplary
`embodiment of a multithreading flow.
`FIG. 6B depicts a timing diagram of exemplary embodi
`ments of a buffer clock signal and a thread clock signal.
`FIG. 7 depicts a flow diagram of an exemplary embodi
`ment of a mixed-mode routing flow for a port.
`FIG. 8 depicts a block diagram of an exemplary embodi
`ment of configured logic.
`FIG. 9A depicts a block diagram of an exemplary embodi
`ment of a routing table.
`FIG. 9B depicts block diagram of an exemplary embodi
`ment of a format for an address lookup table.
`FIG. 10 depicts a block diagram of an exemplary embodi
`ment of a buffer memory.
`FIG. 11 depicts a block diagram of an exemplary embodi
`ment of a network.
`
`DETAILED DESCRIPTION OF THE DRAWINGS
`FIG. 1 depicts a high-level block diagram of an exemplary
`embodiment of a PLD 100 configured as a router. At the
`outset, it should be understood that an entire router is
`provided on a single integrated circuit PLD 100.
`PLD 100 includes port modules 101-1, -2, -3 and -4
`(collectively referred to as “ports 101"). PLD 100, as shown,
`includes one or more hub modules 102. For clarity, four
`discrete regions of PLD 100 are shown having respective
`ports 101. However, it should be understood that PLD 100
`may be configured with fewer or more ports 101. Ports 100
`are premised on having configured logic 105, whereas hub
`modules 102 are premised on an embedded microprocessor
`core. Notably, Such a microprocessor core may include
`embedded hardware or embedded firmware or a combina
`tion thereof for a “hard” or “soft' microprocessor. For
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 19 of 29
`
`

`

`US 6,891,397 B1
`
`15
`
`25
`
`35
`
`40
`
`3
`clarity, though more than one embedded microprocessor
`may exist in PLD 100, PLD 100 is described as having a
`Single embedded microprocessor and thus a Single hub
`module (“hub”) 102. Though, for purposes of clarity, PLD
`100 is described in terms of an FPGA having a single
`embedded microprocessor, it will be appreciated that other
`integrated circuits having configurable logic and at least one
`embedded microprocessor may be used.
`PLD 100 is a system-level integration onto a single
`integrated circuit, namely, an SoC architecture. For this
`system-level integration, configurable logic 105 of ports 101
`may be configured for more frequent, leSS control intensive
`operations in contrast to hub 102, which embedded micro
`processor 106 is for leSS frequent, more control intensive
`operations. Accordingly, a majority of packets may be
`entirely handled by ports 101 without ever being received to
`hub 102. In Such a logic-centric architecture, computational
`focus of PLD 100 is placed on configurable logic 105 of
`ports 101, where an embedded microprocessor of hub 102
`Serves as an additional, not a central, System component.
`Alternatively, a more processor-centric architecture may be
`used. Furthermore, an architecture having a combination of
`processor-centric and logic-centric components may be
`used.
`Additionally, as described below, communication
`between ports 101 and one or more devices external to PLD
`100 may be tailored to environmental context. Accordingly,
`ports 101 of PLD 100 may be configured to provide a
`reactive portion of a System, namely, a System that reacts to
`inputs obtained over time. This is in contrast to a transfor
`mational System conventionally associated with running
`programs on a proceSSOr.
`It should be appreciated that each port 101 and each hub
`102 is a respective System, or more particularly a Subsystem
`of the system of PLD 100. Furthermore, hub 102 may
`logically be considered a port as it may have all the
`functionality of a port, and additionally has functionality
`beyond that of a port; however, hub 102 does not have a
`network interface with respect to functionality of hub 102,
`any well-known microprocessor capable of processing net
`work communications may be used. For purposes of clarity,
`gigabit Ethernet and Internet Protocol (IP) digital network
`communications is described, though analog network com
`munications may be used, as well as other combinations of
`data rates and communication protocols. Furthermore,
`though it is assumed that a copper-wired network environ
`ment is used, it should be appreciated that other Signal
`formats (e.g., optical, over-the-air (“wireless”), and the like)
`may be used.
`FIG. 2A is a block diagram of an exemplary embodiment
`of PLD 100 having a unidirectional mesh point-to-point
`topology. With continuing reference to FIG. 1, FIG. 2A is
`described.
`Each port 101-1, -2, -3 and -4 includes a respective
`network interface module 201-1, -2, -3 and -4 (collectively
`referred to as “network interface modules 201”) and
`memory 202-1, -2, -3 and -4 (collectively referred to as
`“memory 202'). For purposes of clearly describing the
`topology of this exemplary embodiment of PLD 100,
`memory 202-1, -2, -3 and -4 is broken out into four sections
`labeled A, B, C and D. For example, memory 202-1 includes
`memory sections 202-1A, -1B, -1C and -1D.
`This exemplary embodiment of PLD 100 includes a hub
`102, namely, embedded microprocessor 203 and memory
`206. Memory 206 associated with embedded microproces
`Sor 203 is broken out into four Sections, namely, memory
`206-1, -2, -3 and -4.
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`Connecting ports 101 to one another is done with buses
`205, and connecting ports 101 to hub 102 is done with buses
`204. Buses 205 are broken out into the point-to-point links
`of ports as buses 205-1, -2, -3, -4, -5 and -6. Furthermore,
`buses 205 are unidirectional as illustratively shown.
`Accordingly, each bus 205 is broken out into a directional
`component as indicated by reference letters A and B ascribed
`to each respective bus 205-1, -2, -3, -4, -5 and -6. Thus, for
`example, port 101-1 sends communications to port 101-2 via
`bus 205-1A, and port 101-1 receives communications from
`port 101-2 via bus 205-1B. Memory 202 is disposed for
`receiving incoming communications. Continuing the above
`example, memory 202-2C of port 101-2 buffers incoming
`communications from port 101-1, and memory 202-1C of
`port 101-1 buffers incoming communications from port
`101-2. Notably, for this topology, each port 101 is connected
`to each other port via respective buses 205. In other words,
`ports 101 are in point-to-point communication with one
`another.
`Likewise, buses 204 are broken out into the point-to-point
`links of ports as buses 204-1, -2, -3 and -4. Furthermore,
`buses 204 are unidirectional as illustratively shown.
`Accordingly, each bus 204 is broken out into a directional
`component as indicated by reference letters A and B ascribed
`to each respective bus 204-1, -2, -3 and -4. Thus, for
`example, port 101-1 sends communications to hub 102 via
`bus 204-1B, and port 101-1 receives communications from
`hub 102 via bus 204-1A. Memory 202 is disposed for
`receiving incoming communications. Continuing the above
`example, memory 202-1B of port 101-1 buffers incoming
`communications from hub 102, and memory 206-1 of hub
`102 buffers incoming communications from port 101.
`Notably, for this topology, each port 101 is directly con
`nected to hub 102 via respective buses 204. In other words,
`ports 101 and hub 102 are in point-to-point communication
`with one another.
`FIG. 2B is a block diagram of an exemplary embodiment
`of a port 101. Network interface modules 201-1, -2, -3 and
`-4 include one or more of programmable IOBs 212, one or
`more of DCMS 211, one or more of CLBS 213, one or more
`of configuration memory cells 215, one or more of I/O
`transceivers 216 and a programmable interconnect 211.
`Transceivers need not be used, as Separate receivers and
`transmitters may be used. Notably I/O transceivers may be
`for any of a variety of mediums, Such as wired, wireleSS and
`photonic whether analog or digital. Though, as mentioned
`above, a gigabit router for wired Ethernet communications
`is described, where I/O transceivers are gigabit or multi
`gigabit transceivers. Port 101 may be implemented using an
`FPGA from the VirtexTM-II Pro family of products available
`from Xilinx(E) of San Jose, Calif.
`Though a unidirectional point-to-point mesh topology has
`been described, other topologies may be used, as described
`below. Furthermore, with renewed reference to FIG. 2A and
`continuing reference to FIG. 2B, ports 101 include one or
`more of block random access memories (BRAMs) 214
`coupled to network interface modules 201. BRAMs 214
`provide memories 202, 206 for network interface modules
`201. In the exemplary embodiment described, BRAMs 214
`are dual-port buffers, where there is a BRAM on each of 20
`internal links provided via buses 204, 205. Dual ported
`memory need not be used, as Single ported memory may be
`used.
`Accordingly, each communication port 101 has four “get'
`buffers from which it reads information, Such as packets,
`where each such “get buffer is respectively written to by
`another port 101 or hub 102. Also, hub 102 has four “get”
`
`Ex.1032
`CISCO SYSTEMS, INC. / Page 20 of 29
`
`

`

`5
`buffers from which it reads information, such as packets,
`where each such "get" buffer is respectively written to by a
`port 101.
`Notably, for a VirtexTM-II Pro FPGA implementation,
`buffer word size is 36 bits, and data path widths for a
`point-to-point interconnection network may then be 36 bits
`wide. Of course, longer or shorter bit widths may be used.
`When a write is attempted to a full buffer, the word to be
`written is discarded, and an overflow flag is raised. However,
`there is a commitment mechanism, described below in
`additional detail, for storing complete packets in buffers to
`avoid leaving a packet fragment if a buffer overflow condi
`tions occurs in intra-packet. Each port 101, or hub 102,
`Selects packets for transmission or for further processing, for
`example Selecting on a round robin basis. This round robin
`Selection process is implemented in configured logic 105 at
`ports 101 and by code for processor 106 at hub 102.
`FIG. 3A is a block diagram of an exemplary embodiment
`of a PLD 100 with a star topology and a processor centric
`architecture. In this exemplary embodiment of PLD 100,
`ports 3.16-1, -2, -3 and -4 are coupled to one another via hub
`315 in a star topology. Each port 3.16-1, -2, -3 and -4
`respectively includes: a low-voltage differential signaling
`I/O network interface 301-1, -2, -3 and -4; a packet handler
`302-1, -2, -3 and -4; and buffer memory 303-1, -2, -3 and -4.
`Ports 316-1, -2, -3 and -4, and more particularly dual ported
`buffer memories 303-1, -2, -3 and -4, are connected to hub
`315 via dual port access 320.
`Hub 315 has a microprocessor 311, data on-chip memory
`(OCM) 312, and instruction OCM 313. Hub 315 and ports
`3.16-1, -2, -3 and -4 are serially connected to one another in
`a closed control loop via a device control register (DCR)
`chain 319. DCR chain 319 is used by microprocessor 311 to
`read from and write to control and status registers of packet
`handlers 302-1, -2, -3 and -4. Machine code instructions,
`move to DCR (mtdcr) and move from (mfdcr) may be used
`for reading and writing to control and status registers 333 of
`packet handlers 302-1, -2, -3 and -4.
`Two time domains 317 and 318 are used for this archi
`tecture. Time domain 318 is for operation of microprocessor
`311, and time domain 317 is for transmission of data. So, for
`example, for Serial transmission at gigabit Ethernet rates a
`clock rate of approximately 31.25 MHz may be used,
`whereas operation of microprocessor may be at approxi
`mately 300 MHz. The two time domains may be interfaced
`at dual ported buffer memories 303-1, -2, -3 and -4, where
`information is written in and read out in time domain 318 for
`microprocessor 311 and is written in and read out in time
`domain 317 for packet handlers 302-1, -2, -3 and -4, as well
`as low-voltage differential signaling I/O network interface
`301-1, -2, -3 and -4.
`In this exemplary embodiment, PLD 100 is a processor
`centric architecture. Packet handlers 302 handle physical
`(PHY) layer framing for transmitted packets and recognition
`of PHY layer framing for received packets. However, all
`packets received by PLD 100 pass through hub 315 prior to
`being routed from PLD 100. This is because packet handlers
`302 are only "semi-intelligent,” meaning that packet han
`dlers 302 are not configured for high-level medium access
`protocol (MAC) and Internet Protocol (IP) related functions,
`and consequent packet manipulation and routing, all of
`which is done by hub 315.
`FIG. 3B is a block diagram of an exemplary embodiment
`of a PLD 100 with a bus topology and a logic-centric
`architecture. In this exemplary embodiment of PLD 100,
`ports 326-1, -2, -3 and -4 are coupled to one another via a
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`US 6,891,397 B1
`
`6
`bus topology of exchange 329. Each port 326-1, -2, -3 and
`-4 respectively includes: a low-voltage differential signaling
`I/O interface 301-1, -2, -3 and -4; and a packet handler
`322-1, -2, -3 and -4.
`Hub 325 exchanges packets with ports 326 via exchange
`329. Exchange 329 includes a bus topology used to connect
`ports 326 with hub 325. Exchange 329 is an interconnection
`network. Inclusion of exchange 329 moves away from the
`more hub-centric architecture of the exemplary embodiment
`of FIG. 3A. Exchange 329 includes buffer memories 323-1,
`-2, -3 and -4, which are respectively associated with buff
`ering information to ports 326-1, -2, -3 and -4. Exchange
`329 includes buffer memory 328 associated with buffering
`information to and from hub 325. Dual ported buffer memo
`ries 328, and 323-1, -2, -3 and -4 may be used.
`Hub core 330 has a microprocessor 311, data OCM 312,
`and instruction OCM 313. Hub 325 and ports 326-1, -2, -3
`and -4 are serially connected to one another in a closed
`control loop via a DCR chain 319. More particularly, hub
`core 330 is connected to hub core connect 327, and hub core
`connect 327 of hub 325 is serially connected via DCR chain
`319 to ports 326-1, -2, -3 and -4 in a closed loop.
`While inclusion of hub core connect 327 is a slight
`departure for the logic-centric architecture of this embodi
`ment of PLD 100, addition of hub core connect 327 to hub
`325 provides for additional configuration possibilities. For
`example, connection of off-chip or off-PLD 100 memory is
`facilitated by inclusion of hub core connect 327. Also, for
`example, hub core connect 327 provides a mapped memory
`interface between microprocessor 311 and control and status
`registers 333 of ports 326-1, -2, -3 and -4. This facilitates
`program access to Such control and status registers by direct
`memory access (DMA). Hub core connect 327 is used for
`processor local bus (PLB) to on-chip peripheral bus (OPB)
`to DCR bridging. This bridging to DCR chain 319 allows
`microprocessor 311 to have access to control and status
`registers 333 of packet handlers 322. For microprocessor
`311 a PowerPC processor, hub core connect 327 may be an
`IBM Core Connect architecture.
`Notably, hub core connect 327 is optional, and may be
`removed. If hub core connect 327 is not present, access to
`packet buffers of exchange 329 may be done with data-side
`OCM (DSOCM) access from microprocessor 311. If hub
`core connect 327 is not present, packet handlers 322 status
`and control register access may be through mfcdcr and mtdcr
`machine code instructions for direct access to DCR
`registers, as described above.
`Two time domains 331 and 318 are used for this logic
`centric architecture. Time domain 318 is for operation of
`microprocessor 311, and time domain 331 is for transmis
`Sion of data and for dual-threaded operation for massage
`Style functions, as described below. Thus, time domain 331
`may be a dual clock time domain. So, for example, while
`time domain 331 may be for Serial transmission at gigabit
`Ethernet rates a clock rate of approximately 31.25 MHz, it
`may have another cl

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket