US20020191613A1 - Multi-port packet processor - Google Patents
Multi-port packet processor Download PDFInfo
- Publication number
- US20020191613A1 US20020191613A1 US10/139,603 US13960302A US2002191613A1 US 20020191613 A1 US20020191613 A1 US 20020191613A1 US 13960302 A US13960302 A US 13960302A US 2002191613 A1 US2002191613 A1 US 2002191613A1
- Authority
- US
- United States
- Prior art keywords
- port
- processor
- packet
- processors
- channel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/351—Switches specially adapted for specific applications for local area network [LAN], e.g. Ethernet switches
- H04L49/352—Gigabit ethernet switching [GBPS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Definitions
- a computer network is an interconnection of various computers by a network of communication devices (often utilizing more than one communications protocols).
- a computer network is the Internet that interconnects personal computers and servers through telephone lines and high-speed transmission lines.
- Other examples of computer network include a local area network (LAN), a wide area network (WAN), and other special purpose networks including networks based upon protocols such as RS-485 instrumentation protocol and Universal Serial Bus (USB).
- LAN local area network
- WAN wide area network
- USB Universal Serial Bus
- FIG. 1 illustrates a conventional computer network 100 .
- Network 100 includes a number of user computers 110 and servers 112 interconnected together through hubs 120 , switches 122 , and a router 124 .
- the user computers 110 and servers 112 connect to the network through respective Network Interface Cards (NICs, not shown).
- NICs Network Interface Cards
- the NICs receives data (i.e., in bytes) from the computer or server and forms data packets for transmission on the network transmission line.
- the hubs, switches, and routers receive the data packets and direct the packets to the proper destination.
- another NIC receives the data packets and translates the packets into bytes usable by the computer or server.
- the interconnection between a pair of devices can be an Unshielded Twisted-Pair (UTP) cable (such as a telephone line), a coaxial cable, a fiber optic cable, or other transmission mediums.
- UTP Unshielded Twisted-Pair
- a network can be viewed as being composed of various layers, with each layer performing a defined function. Each layer communicates with the layer above and/or below it. Furthermore, each layer can be implemented with hardware or software, or a combination of both.
- FIG. 2 illustrates the various layers of an Open System Interconnection (OSI) computer network 200 .
- Computer network 200 is composed of seven layers including: (1) a physical layer 210 , (2) a data link layer 212 , (3) a network layer 214 , (4) a transport layer 216 , (5) a session layer 218 , (6) a presentation layer 220 , and (7) an application layer 222 .
- the physical layer 210 transmits bit streams across the physical transmission system.
- the data link layer 212 provides for a reliable data transmission.
- the network layer 214 routes data from one network node to another.
- the transport layer 216 provides data transfer between two users at a predetermined level of quality.
- the session layer 218 manages the data exchange.
- the presentation layer 220 presents information to the users in a meaningful manner.
- the application layer 222 monitors and manages the computer network 200 .
- ISDN Integrated Services Data Network
- FDDI Fiber Distributed Data Interface
- P1394 Fiber Channel
- Interconnectivity and interoperability between (compatible and incompatible) networks, or segments of a network can be provided by interconnection devices (e.g., routers, hubs, bridges, gateways).
- interconnection devices e.g., routers, hubs, bridges, gateways.
- a hub 230 which operates on the physical layer 210 , is used to connect segments of the same network to form an extended network.
- a hub is also referred to as a repeater.
- a bridge 232 which operates on the data link layer 212 , is used to connect compatible (or nearly compatible) LANs.
- a router 234 which operates on the network layer 214 , connects two network segments to form one large network.
- a gateway 236 which operates on any layer at or above the network layer 214 , connects an internal network to an external network.
- the gateway 236 is the most complex but also most flexible interconnection device, as it allows for different protocols at any or all layers on which it operates.
- a multi-port packet processor provides an efficient mechanism to interface multiple high-speed packet-based communications channels to each other.
- the multi-port packet processor is implemented within an integrated circuit for low cost, high performance, and improved reliability.
- the multi-port packet processor includes multiple port processors.
- Each port processor can include a channel interface for coupling to a respective communications channel and a channel processor for processing the packets received through the channel interface.
- the channel interface can be designed to process packet-based communication from a channel using a particular set of packet-based protocols.
- the channel interface can be designed having programmable control such that the channel interface can be configured to send and receive packets using a selected set (from a number of possible sets) of packet-based protocols.
- Each port processor can further include an interprocessor communications interface coupled to at least one other port processor for providing communication between the port processors.
- the multi-port packet processor can be used in a variety of applications.
- the multi-port packet processor functions as a local area network (LAN) processor and provides the functions typically provided by a LAN server.
- the multi-port packet processor functions as a disk storage processor and manages data transfer between various storage devices.
- FIG. 1 illustrates a conventional computer network.
- FIG. 2 illustrates various layers of an Open System Interconnection (OSI) computer network.
- OSI Open System Interconnection
- FIG. 3 is a simplified block diagram illustrating a local area network (LAN) channel communications hub.
- LAN local area network
- FIG. 4A is a block diagram of one embodiment of an integrated multi-port processor.
- FIG. 4B is a block diagram of another embodiment of an integrated multi-port processor.
- FIG. 4C is a block diagram of yet another embodiment of an integrated multi-port processor.
- FIG. 5 shows a specific application wherein a multi-port processor is used to process data transfer in a mass storage environment.
- FIG. 6 shows another specific application wherein a more than one of multi-port processors are configured as a two-dimensional grid packet server.
- FIG. 7 shows yet another specific application wherein a more than one of multi-port processors are configured as a three-dimensional grid packet server.
- FIG. 3 is a simplified block diagram illustrating a local area network (LAN) channel communications hub 300 .
- LAN hub 300 includes a number of packet-based protocol channels 310 coupled to a multi-port processor 320 .
- LAN hub 300 can correspond to hub 120 in the network shown in FIG. 1.
- Channels 310 (shown symbolically as blocks in FIG. 3) include different LAN channels such as ISDN, Ethernet, Fast Ethernet, Gigabit Ethernet, ATM, CDDI, FDDI, or P1394 (also known as Firewire) channels, or other communications channels.
- the various channels 310 shown in FIG. 3 may utilize different types of protocols.
- some channels 310 may support mass storage communications protocols (e.g., Small Computer Systems Interface SCSI) while other channels 310 may support LAN protocols (e.g., Ethernet).
- FIG. 4A is a block diagram of one embodiment of an integrated multi-port processor 400 .
- Multi-port processor 400 can operate as multi-port processor 320 in FIG. 3.
- Multi-port processor 400 efficiently controls and manages communication through multiple packet-based protocol channels 310 . Conventionally, this function is performed by a larger device, such as a LAN server.
- Multi-port processor 400 includes a number of port processors 410 .
- each port processor 410 includes eight circuits.
- the eight circuits include: (1) input/output (I/O) buffers 420 , (2) I/O controllers 422 , (3) an interprocessor communications circuit 424 , (4) a channel processor 426 , (5) a cache controller 428 , (6) an internal memory 430 , (7) a memory controller 432 , and (8) memory buffers 434 .
- I/O input/output
- I/O controllers 422 I/O controllers 422
- an interprocessor communications circuit 424 (4) a channel processor 426 , (5) a cache controller 428 , (6) an internal memory 430 , (7) a memory controller 432 , and (8) memory buffers 434 .
- Each of the circuits is further discussed below.
- I/O buffers 420 provide buffering of data packets received from, and to be transmitted on, the communications channel.
- I/O controllers 422 direct reception and transmission of the data packets and can include a temporary storage element for queuing packets and performing data processing tasks such as encryption/decryption, format conversion and error correction/detection operations upon the data of one or more packets.
- Interprocessor communications circuit 424 can include an interrupt controller for triggering specific real-time actions in response to either network conditions, higher level network control commands, or other port processors and an interprocessor I/O circuit.
- the interprocessor I/O circuit can include clock timer counters and other circuits.
- Channel processor 426 directs the operation of port processor 410 and can be implemented as a microprocessor, a microcomputer, a microcontroller, an applications specific integrated circuit (ASIC), a digital signal processor (DSP), a finite state machine (such as a register store, Field Programmable Gate Array-FPGA, or Complex Programmable Logic Device-CPLD), or similar circuits.
- Cache controller 428 can include a cache (i.e., a first level cache).
- Internal memory 430 provides storage for data and program codes and can be implemented as a random-access memory (RAM), a dynamic random-access memory (DRAM), a read-only memory (ROM), a FLASH memory, other similar devices, or a combination of the above.
- internal memory 430 can include a boot ROM (or possibly a boot FLASH memory) for initializing port processor 410 .
- internal memory 430 can include enough memory (i.e., enough RAM, ROM, and other memories) such that an external memory is not required.
- Memory controller 432 directs the exchange of data between port processor 410 and an external memory.
- Memory buffers 434 provides buffering of data received from, and to be transmitted to, the external memory.
- multi-port processor 400 further includes a support circuit 436 for each port processor 410 .
- support circuits 436 a, 436 b, 436 c, and 436 d couple to port processors 410 a, 410 b, 410 c, and 410 d, respectively.
- Support circuit 436 can include I/O circuits, a memory, drivers, and other circuits.
- Support circuit 436 facilitates communication between port processor 410 and the one or more communications channels associated with the port processor.
- Support circuits 436 can provide analog conversion for different physical signal states communicating bits on the coupled communication channel. For example, this analog conversion can transform logic signal (e.g., for zero and one) to drive a laser which requires a different signaling convention.
- each port processor 410 includes three communications mechanisms: (1) a channel interface 440 , (2) an external memory interface 442 , and (3) an internal processor (or interprocessor) communications interface 444 .
- Channel interface 440 includes I/O buffers 420 and I/O controllers 422 .
- External memory interface 442 includes memory controller 432 and memory buffers 434 .
- Interprocessor communications interface 444 includes interprocessor circuit 424 .
- Channel interface 440 can be designed to process packet-based communication from a channel using a particular set of packet-based protocols.
- channel interface 440 can be designed having programmable controls such that the channel interface can be configured to send and receive packets using a selected set (from a number of possible sets) of packet-based protocols.
- the programmability can be provided by implementing channel interface 440 (i.e., I/O controller 424 ) with a processor, a finite state machine, or other suitable devices.
- the processor or finite state machine can be designed with the capability to initiate and operate using one of various sets of states. Such processors or finite state machines may either be fixed program or reconfigurably programmable.
- An interprocessor communications network is made up of multiple interprocessor communications interfaces 444 .
- the interprocessor communications network can interconnect all port processors 410 , or a subset of port processors 410 .
- the interprocessor communications network includes a communications mechanism that can include packet data transfer and (possibly) transfer command/status signals.
- the interprocessor communications network allows the various port processors 410 to coordinate and efficiently manage communication between two or more communications channels. For example, one port processor 410 may be assigned to one channel utilizing a particular set of protocols and another port processor 410 may be assigned to another channel utilizing the same or a different set of protocols.
- the interprocessor communications network allows for communication between two (possibly incompatible) channels. In this manner, the interprocessor communications network behaves like bridge 232 or router 234 as shown in FIG. 2.
- the shape of the port processors 410 a, 410 b, 410 c and 410 d are shown as roughly rectangular, which is the approximate shape they would possess in an integrated circuit layout.
- the individual components of the port processors would not necessarily be approximately the same size, but are shown this way for diagrammatic convenience. The individual components of the port processors would however be approximately rectangular.
- the port processors 410 a, 410 b, 410 c and 410 d are arranged so that the long axis orientation is flipped for neighboring port processors.
- Preferred embodiments include pairs of port processors sharing the same orientation and neighboring pairs being flipped.
- Another preferred embodiment where the port processors do not possess external memory interfaces include only two groups of port processors in one integrated circuit, where each group shares an orientation and one group's orientation is flipped from the other group's orientation.
- interprocessor communications interface 444 These circuits are optimally placed within the port processor so as to minimize the total wire length required. Accomplishing this requires knowledge of which port processor arrangements are to be implemented. Where there is to be orientation flipping, either the placement should be essentially in the middle of the port processor rectangular shape, or it should be split into two components, which are located at approximately equal distances from the center of the port processor long axis.
- each port processor 410 has the capability to simultaneously interface with one or more packet-based protocol channels. High-speed packet transfers between these channels by one port processor 410 are accommodated by the channel interface communications mechanism (i.e., provided by I/O buffers 420 and I/O controllers 422 ) within that port processor 410 . This transfer activity is controlled by the corresponding channel processor 426 within that port processor 410 . This provides for an efficient, low overhead transfer mechanism between the “local” channels within each port processor 410 .
- communication between channels coupled to different port processors 410 is provided by the interprocessor communications network.
- packet data transfers proceed unimpeded while command and status transactions occur concurrently. Packet data transfer occurs on physically separate channels from command and status information transfers. Neither is slowed by the transfer characteristics of the other.
- Port processor 410 can be designed to operate on one or more layers (similar to the design of gateway 236 ). Referring to FIG. 2, port processor 410 can be designed to operate on physical layer 210 , data link layer 212 , network layer 214 , or a combination of these layers.
- Packet transfer and conversion can be partitioned into separate component activities of block data transfer and block data processing. These separable activities are preferably performed by distinct concurrently operating mechanisms, which by and large do not interfere with each other.
- the block data transfer is further preferably isolated from disruptive intrusions caused by the communication of control and status information through the use of separate communications mechanisms for such activities.
- FIG. 4B illustrates the flexibility in the design of a multi-port processor because of the modular design of the port processor.
- a multi-port processor 402 can interface and process data transmissions using various packet-based protocols. Alternatively, a multi-port processor 402 may interface and process just one data transmission using just one packet-based protocol.
- port processors 412 a, 412 b, 412 c, and 412 d include channel interfaces 450 a, 450 b, 450 c, and 450 d, respectively.
- Each channel interface 450 can be designed with a particular set of I/O buffers and I/O controllers corresponding to the packet-based protocols to be utilized.
- FIG. 4C is a block diagram illustrating a multi-port processor 404 including six port processors 410 .
- Multi-port processor 404 is different in configuration than multi-port processor 400 (see FIG. 4A) which includes only four port processors 410 .
- the multi-port processor can be designed to include any number of port processors, including two, four, six, eight, sixteen, thirty-two, or any other number. Although an even number of port processors can provide certain advantages (e.g., layout efficiency), odd number of port processors can also be, designed and utilized.
- each port processor 410 can include a different channel interface (i.e., different set of I/O buffers and I/O controllers) or a programmable channel interface.
- each port processor is shown having a single channel interface.
- a port processor can be designed to include any number channel interfaces.
- each port processor can be designed with a channel interface without regards (i.e., individually and independently) to the other port processors within the multi-port processor.
- a multi-port processor can be designed such that one port processor includes one channel interface, a second port processor includes two channel interfaces, a third port processor includes three channel interfaces, and so on. Examples of this include multiple RS-485 channels support GPIB instrumentation protocols and dual USB channels.
- FIG. 5 shows a specific application wherein a multi-port processor 500 is used to process data transfer in a mass storage environment.
- This environment is commonly referred to as a “disk farm”.
- the disk farm includes a number of storage devices (e.g., hard disk drives, tape drives, CD drives, floppy disk drives, or other storage devices).
- Each storage device couples to multi-port processor 500 through a respective communications channel 510 or 512 .
- An example of a disk farm is a Redundant Disk RAID system that provides mass disk storage with a level of redundancy for increased system reliability. Conventionally, this data transfer control requires a complex device.
- FIG. 6 shows another specific application wherein a more than one of multi-port processors 600 are configured as a two-dimensional grid packet server 610 .
- FIG. 6 shows a four by four grid of multi-port processors 600 .
- other dimensions can also be used, and symmetry is generally not required.
- a portion of the packet-based communications channels of each multi-port processor 600 is used for communication in the row and column in which the particular multi-port processor 600 is located. These channels may have different protocols. For example, one channel may employ the P1394 protocol to provide higher bandwidth within server 610 . The remaining channels can be used for providing communication with the network.
- FIG. 7 shows yet another specific application wherein a more than one of multi-port processors 700 are configured as a three-dimensional grid packet server 710 .
- FIG. 7 shows a four-by-four-by-four grid of multi-port processors 700 .
- other dimensions can also be used and symmetry is again generally not required.
- a portion of the packet-based communications channels of each multi-port processor 700 is used for communication in the row, column, and quadrant in which the particular multi-port processor 700 is located. These channels may have different protocols.
- FIGS. 6 and 7 can be extended to a four-dimensional array of multi-port processors, a five-dimensional array of multi-port processors, or an M-dimensional array of multi-port processors, where M is any integer.
- each port processor can include different circuits than that shown in FIGS. 4A through 4C, depending on the functionality required.
- the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein and as defined by the following claims.
Abstract
Description
- This application claims the benefit of U.S. provisional Application No. 60/057,813, filed Sep. 4, 1997, which is incorporated herein by reference.
- This invention relates generally to a computer network, and in particular to a multi-port packet processor for processing communication within a computer network.
- A computer network is an interconnection of various computers by a network of communication devices (often utilizing more than one communications protocols). One such example of a computer network is the Internet that interconnects personal computers and servers through telephone lines and high-speed transmission lines. Other examples of computer network include a local area network (LAN), a wide area network (WAN), and other special purpose networks including networks based upon protocols such as RS-485 instrumentation protocol and Universal Serial Bus (USB). The interconnection of (relatively) smaller devices into a network facilitates transactions of large scale organizations, allows for efficient dissemination of information, provides for communications between various devices within the network, and allows for sharing of resources and data.
- FIG. 1 illustrates a
conventional computer network 100. Network 100 includes a number ofuser computers 110 andservers 112 interconnected together through hubs 120, switches 122, and arouter 124. Theuser computers 110 andservers 112 connect to the network through respective Network Interface Cards (NICs, not shown). The NICs receives data (i.e., in bytes) from the computer or server and forms data packets for transmission on the network transmission line. The hubs, switches, and routers receive the data packets and direct the packets to the proper destination. At the destination, another NIC receives the data packets and translates the packets into bytes usable by the computer or server. The interconnection between a pair of devices can be an Unshielded Twisted-Pair (UTP) cable (such as a telephone line), a coaxial cable, a fiber optic cable, or other transmission mediums. - A network can be viewed as being composed of various layers, with each layer performing a defined function. Each layer communicates with the layer above and/or below it. Furthermore, each layer can be implemented with hardware or software, or a combination of both.
- FIG. 2 illustrates the various layers of an Open System Interconnection (OSI)
computer network 200.Computer network 200 is composed of seven layers including: (1) aphysical layer 210, (2) adata link layer 212, (3) anetwork layer 214, (4) atransport layer 216, (5) asession layer 218, (6) apresentation layer 220, and (7) an application layer 222. Thephysical layer 210 transmits bit streams across the physical transmission system. Thedata link layer 212 provides for a reliable data transmission. Thenetwork layer 214 routes data from one network node to another. Thetransport layer 216 provides data transfer between two users at a predetermined level of quality. Thesession layer 218 manages the data exchange. Thepresentation layer 220 presents information to the users in a meaningful manner. Finally, the application layer 222 monitors and manages thecomputer network 200. - Communication between the various layers is governed by a set of protocols. The layers and protocols, in turn, define the architecture of a network. Conventionally, many diverse protocols exist that are incompatible with other protocols. Some protocols are adopted by large manufacturers to differentiate their products from those of other manufacturers, or for other reasons. Thus, although a product from one product line can communicate with other products from the same product line, it is often incompatible with other products from other manufacturers. Examples of network protocols include Integrated Services Data Network (ISDN), Ethernet, Fast Ethernet, Gigabit Ethernet, Asynchronous Transfer Mode (ATM), Copper Distributed Data Interface (CDDI), Fiber Distributed Data Interface (FDDI) and Fiber Channel (also known as P1394).
- Interconnectivity and interoperability between (compatible and incompatible) networks, or segments of a network, can be provided by interconnection devices (e.g., routers, hubs, bridges, gateways). With the proliferation of networks in the marketplace, and the numerous protocols in used, the interconnection devices become an integral part of many networks. Referring to FIG. 2, a
hub 230, which operates on thephysical layer 210, is used to connect segments of the same network to form an extended network. A hub is also referred to as a repeater. Abridge 232, which operates on thedata link layer 212, is used to connect compatible (or nearly compatible) LANs. Arouter 234, which operates on thenetwork layer 214, connects two network segments to form one large network. Finally, agateway 236, which operates on any layer at or above thenetwork layer 214, connects an internal network to an external network. Thegateway 236 is the most complex but also most flexible interconnection device, as it allows for different protocols at any or all layers on which it operates. - As networks become larger and faster, new applications requiring greater bandwidth become feasible. Examples of high bandwidth applications include video on demand, video games, and others. These applications place stress on various parts of the network architecture, including the NICs, the communications channel, and the interconnection devices (e.g., the servers). A bottleneck is often created in the data communications system, with one likely area of congestion being the main computer bus of the server.
- From the above, it can be noted that a processor that facilitates high-speed data communications is needed.
- According to the invention, a multi-port packet processor provides an efficient mechanism to interface multiple high-speed packet-based communications channels to each other. The multi-port packet processor is implemented within an integrated circuit for low cost, high performance, and improved reliability.
- The multi-port packet processor includes multiple port processors. Each port processor can include a channel interface for coupling to a respective communications channel and a channel processor for processing the packets received through the channel interface. The channel interface can be designed to process packet-based communication from a channel using a particular set of packet-based protocols. Alternatively, the channel interface can be designed having programmable control such that the channel interface can be configured to send and receive packets using a selected set (from a number of possible sets) of packet-based protocols.
- Each port processor can further include an interprocessor communications interface coupled to at least one other port processor for providing communication between the port processors.
- In a specific embodiment, the port processor is capable of processing multiple communications channels concurrently. The communications channels can have identical packet-based protocols or different packet-based protocols.
- The multi-port packet processor can be used in a variety of applications. In one application, the multi-port packet processor functions as a local area network (LAN) processor and provides the functions typically provided by a LAN server. In another application, the multi-port packet processor functions as a disk storage processor and manages data transfer between various storage devices.
- The invention will be better understood by reference to the following detailed description with accompanying drawings.
- FIG. 1 illustrates a conventional computer network.
- FIG. 2 illustrates various layers of an Open System Interconnection (OSI) computer network.
- FIG. 3 is a simplified block diagram illustrating a local area network (LAN) channel communications hub.
- FIG. 4A is a block diagram of one embodiment of an integrated multi-port processor.
- FIG. 4B is a block diagram of another embodiment of an integrated multi-port processor.
- FIG. 4C is a block diagram of yet another embodiment of an integrated multi-port processor.
- FIG. 5 shows a specific application wherein a multi-port processor is used to process data transfer in a mass storage environment.
- FIG. 6 shows another specific application wherein a more than one of multi-port processors are configured as a two-dimensional grid packet server.
- FIG. 7 shows yet another specific application wherein a more than one of multi-port processors are configured as a three-dimensional grid packet server.
- LAN Hub
- FIG. 3 is a simplified block diagram illustrating a local area network (LAN)
channel communications hub 300.LAN hub 300 includes a number of packet-based protocol channels 310 coupled to amulti-port processor 320.LAN hub 300 can correspond to hub 120 in the network shown in FIG. 1. Channels 310 (shown symbolically as blocks in FIG. 3) include different LAN channels such as ISDN, Ethernet, Fast Ethernet, Gigabit Ethernet, ATM, CDDI, FDDI, or P1394 (also known as Firewire) channels, or other communications channels. Furthermore, the various channels 310 shown in FIG. 3 may utilize different types of protocols. For example, some channels 310 may support mass storage communications protocols (e.g., Small Computer Systems Interface SCSI) while other channels 310 may support LAN protocols (e.g., Ethernet). - Multi-Port Processor
- FIG. 4A is a block diagram of one embodiment of an integrated
multi-port processor 400.Multi-port processor 400 can operate asmulti-port processor 320 in FIG. 3.Multi-port processor 400 efficiently controls and manages communication through multiple packet-based protocol channels 310. Conventionally, this function is performed by a larger device, such as a LAN server. -
Multi-port processor 400 includes a number of port processors 410. In an embodiment shown in FIG. 4A, there are four port processors 410 and each port processor 410 includes eight circuits. The eight circuits include: (1) input/output (I/O) buffers 420, (2) I/O controllers 422, (3) aninterprocessor communications circuit 424, (4) achannel processor 426, (5) acache controller 428, (6) aninternal memory 430, (7) amemory controller 432, and (8) memory buffers 434. Each of the circuits is further discussed below. - I/O buffers420 provide buffering of data packets received from, and to be transmitted on, the communications channel. I/
O controllers 422 direct reception and transmission of the data packets and can include a temporary storage element for queuing packets and performing data processing tasks such as encryption/decryption, format conversion and error correction/detection operations upon the data of one or more packets. -
Interprocessor communications circuit 424 can include an interrupt controller for triggering specific real-time actions in response to either network conditions, higher level network control commands, or other port processors and an interprocessor I/O circuit. The interprocessor I/O circuit can include clock timer counters and other circuits. -
Channel processor 426 directs the operation of port processor 410 and can be implemented as a microprocessor, a microcomputer, a microcontroller, an applications specific integrated circuit (ASIC), a digital signal processor (DSP), a finite state machine (such as a register store, Field Programmable Gate Array-FPGA, or Complex Programmable Logic Device-CPLD), or similar circuits.Cache controller 428 can include a cache (i.e., a first level cache).Internal memory 430 provides storage for data and program codes and can be implemented as a random-access memory (RAM), a dynamic random-access memory (DRAM), a read-only memory (ROM), a FLASH memory, other similar devices, or a combination of the above. Additionally,internal memory 430 can include a boot ROM (or possibly a boot FLASH memory) for initializing port processor 410. In one embodiment,internal memory 430 can include enough memory (i.e., enough RAM, ROM, and other memories) such that an external memory is not required.Memory controller 432 directs the exchange of data between port processor 410 and an external memory. Memory buffers 434 provides buffering of data received from, and to be transmitted to, the external memory. - As shown in FIG. 4A,
multi-port processor 400 further includes a support circuit 436 for each port processor 410. In particular,support circuits port processors - Communication Mechanisms
- Referring to the embodiment shown in FIG. 4A, each port processor410 includes three communications mechanisms: (1) a
channel interface 440, (2) anexternal memory interface 442, and (3) an internal processor (or interprocessor)communications interface 444.Channel interface 440 includes I/O buffers 420 and I/O controllers 422.External memory interface 442 includesmemory controller 432 and memory buffers 434.Interprocessor communications interface 444 includesinterprocessor circuit 424. -
Channel interface 440 can be designed to process packet-based communication from a channel using a particular set of packet-based protocols. Alternatively,channel interface 440 can be designed having programmable controls such that the channel interface can be configured to send and receive packets using a selected set (from a number of possible sets) of packet-based protocols. The programmability can be provided by implementing channel interface 440 (i.e., I/O controller 424) with a processor, a finite state machine, or other suitable devices. The processor or finite state machine can be designed with the capability to initiate and operate using one of various sets of states. Such processors or finite state machines may either be fixed program or reconfigurably programmable. - An interprocessor communications network is made up of multiple interprocessor communications interfaces444. The interprocessor communications network can interconnect all port processors 410, or a subset of port processors 410. Furthermore, the interprocessor communications network includes a communications mechanism that can include packet data transfer and (possibly) transfer command/status signals.
- The interprocessor communications network allows the various port processors410 to coordinate and efficiently manage communication between two or more communications channels. For example, one port processor 410 may be assigned to one channel utilizing a particular set of protocols and another port processor 410 may be assigned to another channel utilizing the same or a different set of protocols. The interprocessor communications network allows for communication between two (possibly incompatible) channels. In this manner, the interprocessor communications network behaves like
bridge 232 orrouter 234 as shown in FIG. 2. - Note the shape of the
port processors - Further note the arrangement of the
port processors - Further note the placement of the
interprocessor communications interface 444. These circuits are optimally placed within the port processor so as to minimize the total wire length required. Accomplishing this requires knowledge of which port processor arrangements are to be implemented. Where there is to be orientation flipping, either the placement should be essentially in the middle of the port processor rectangular shape, or it should be split into two components, which are located at approximately equal distances from the center of the port processor long axis. - Port Processing
- In one embodiment, each port processor410 has the capability to simultaneously interface with one or more packet-based protocol channels. High-speed packet transfers between these channels by one port processor 410 are accommodated by the channel interface communications mechanism (i.e., provided by I/O buffers 420 and I/O controllers 422) within that port processor 410. This transfer activity is controlled by the corresponding
channel processor 426 within that port processor 410. This provides for an efficient, low overhead transfer mechanism between the “local” channels within each port processor 410. - In another embodiment, communication between channels coupled to different port processors410 is provided by the interprocessor communications network. In this embodiment, packet data transfers proceed unimpeded while command and status transactions occur concurrently. Packet data transfer occurs on physically separate channels from command and status information transfers. Neither is slowed by the transfer characteristics of the other.
- Port processor410 can be designed to operate on one or more layers (similar to the design of gateway 236). Referring to FIG. 2, port processor 410 can be designed to operate on
physical layer 210,data link layer 212,network layer 214, or a combination of these layers. - Packet transfer and conversion can be partitioned into separate component activities of block data transfer and block data processing. These separable activities are preferably performed by distinct concurrently operating mechanisms, which by and large do not interfere with each other. The block data transfer is further preferably isolated from disruptive intrusions caused by the communication of control and status information through the use of separate communications mechanisms for such activities.
- Modular Design
- FIG. 4B illustrates the flexibility in the design of a multi-port processor because of the modular design of the port processor. A
multi-port processor 402 can interface and process data transmissions using various packet-based protocols. Alternatively, amulti-port processor 402 may interface and process just one data transmission using just one packet-based protocol. As shown in FIG. 4B,port processors channel interfaces multi-port processor 402 can support ISDN or Ethernet, another channel interface 450 can support ATM, and another channel interface 450 can support SCSI. As another example, a four port multi-port packet processor can include one Gigabit Ethernet port processor, one Fast Ethernet port processor, one Ethernet port processor, and one Fiber Channel port processor interfacing to a disk farm. - FIG. 4C is a block diagram illustrating a
multi-port processor 404 including six port processors 410.Multi-port processor 404 is different in configuration than multi-port processor 400 (see FIG. 4A) which includes only four port processors 410. As these examples show, the multi-port processor can be designed to include any number of port processors, including two, four, six, eight, sixteen, thirty-two, or any other number. Although an even number of port processors can provide certain advantages (e.g., layout efficiency), odd number of port processors can also be, designed and utilized. Again, as described above, each port processor 410 can include a different channel interface (i.e., different set of I/O buffers and I/O controllers) or a programmable channel interface. - Referring to FIGS. 4A through 4C, each port processor is shown having a single channel interface. However, a port processor can be designed to include any number channel interfaces. Furthermore, each port processor can be designed with a channel interface without regards (i.e., individually and independently) to the other port processors within the multi-port processor. For example, a multi-port processor can be designed such that one port processor includes one channel interface, a second port processor includes two channel interfaces, a third port processor includes three channel interfaces, and so on. Examples of this include multiple RS-485 channels support GPIB instrumentation protocols and dual USB channels.
- Other Applications of Multi-Port Processor
- FIG. 5 shows a specific application wherein a
multi-port processor 500 is used to process data transfer in a mass storage environment. This environment is commonly referred to as a “disk farm”. The disk farm includes a number of storage devices (e.g., hard disk drives, tape drives, CD drives, floppy disk drives, or other storage devices). Each storage device couples tomulti-port processor 500 through a respective communications channel 510 or 512. An example of a disk farm is a Redundant Disk RAID system that provides mass disk storage with a level of redundancy for increased system reliability. Conventionally, this data transfer control requires a complex device. - FIG. 6 shows another specific application wherein a more than one of multi-port processors600 are configured as a two-dimensional
grid packet server 610. FIG. 6 shows a four by four grid of multi-port processors 600. However, other dimensions can also be used, and symmetry is generally not required. In one embodiment, a portion of the packet-based communications channels of each multi-port processor 600 is used for communication in the row and column in which the particular multi-port processor 600 is located. These channels may have different protocols. For example, one channel may employ the P1394 protocol to provide higher bandwidth withinserver 610. The remaining channels can be used for providing communication with the network. - FIG. 7 shows yet another specific application wherein a more than one of multi-port processors700 are configured as a three-dimensional
grid packet server 710. FIG. 7 shows a four-by-four-by-four grid of multi-port processors 700. However, other dimensions can also be used and symmetry is again generally not required. In one embodiment, a portion of the packet-based communications channels of each multi-port processor 700 is used for communication in the row, column, and quadrant in which the particular multi-port processor 700 is located. These channels may have different protocols. - The structures shown in FIGS. 6 and 7 can be extended to a four-dimensional array of multi-port processors, a five-dimensional array of multi-port processors, or an M-dimensional array of multi-port processors, where M is any integer.
- The previous description of specific embodiments is provided to enable any person skilled in the art to make or use the present invention. The various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without the use of the inventive faculty. For example, each port processor can include different circuits than that shown in FIGS. 4A through 4C, depending on the functionality required. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein and as defined by the following claims.
Claims (23)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/139,603 US20020191613A1 (en) | 1997-09-04 | 2002-05-02 | Multi-port packet processor |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US5781397P | 1997-09-04 | 1997-09-04 | |
US09/145,824 US6449273B1 (en) | 1997-09-04 | 1998-09-02 | Multi-port packet processor |
US10/139,603 US20020191613A1 (en) | 1997-09-04 | 2002-05-02 | Multi-port packet processor |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/145,824 Continuation US6449273B1 (en) | 1997-09-04 | 1998-09-02 | Multi-port packet processor |
Publications (1)
Publication Number | Publication Date |
---|---|
US20020191613A1 true US20020191613A1 (en) | 2002-12-19 |
Family
ID=22514721
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/145,824 Expired - Lifetime US6449273B1 (en) | 1997-09-04 | 1998-09-02 | Multi-port packet processor |
US10/139,603 Abandoned US20020191613A1 (en) | 1997-09-04 | 2002-05-02 | Multi-port packet processor |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/145,824 Expired - Lifetime US6449273B1 (en) | 1997-09-04 | 1998-09-02 | Multi-port packet processor |
Country Status (8)
Country | Link |
---|---|
US (2) | US6449273B1 (en) |
EP (1) | EP1110351A4 (en) |
JP (1) | JP4368527B2 (en) |
KR (1) | KR20010074899A (en) |
CN (1) | CN1146189C (en) |
AU (1) | AU5479499A (en) |
CA (1) | CA2341212A1 (en) |
WO (1) | WO2000014928A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654903B1 (en) * | 2000-05-20 | 2003-11-25 | Equipe Communications Corporation | Vertical fault isolation in a computer system |
US20060080467A1 (en) * | 2004-08-26 | 2006-04-13 | Sensory Networks, Inc. | Apparatus and method for high performance data content processing |
US20080005365A1 (en) * | 2006-03-30 | 2008-01-03 | Bailey Roger N | Processor with configurable association between interface signal lines and clock domains |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6389029B1 (en) * | 1998-11-10 | 2002-05-14 | Nortel Networks Limited | Local area network incorporating universal serial bus protocol |
US6904043B1 (en) * | 1999-05-21 | 2005-06-07 | Advanced Micro Devices, Inc. | Apparatus and methods for storing and processing header information in a network switch |
US20020045952A1 (en) * | 2000-10-12 | 2002-04-18 | Blemel Kenneth G. | High performance hybrid micro-computer |
US6907490B2 (en) * | 2000-12-13 | 2005-06-14 | Intel Corporation | Method and an apparatus for a re-configurable processor |
US6826645B2 (en) * | 2000-12-13 | 2004-11-30 | Intel Corporation | Apparatus and a method to provide higher bandwidth or processing power on a bus |
US7411966B2 (en) * | 2001-03-16 | 2008-08-12 | Siemens Aktiengesellschaft | Method and system for coupling data networks |
US7177943B1 (en) * | 2001-12-27 | 2007-02-13 | Cisco Technology, Inc. | System and method for processing packets in a multi-processor environment |
US20040008673A1 (en) * | 2002-07-11 | 2004-01-15 | Ygal Arbel | Overhead processing in telecommunications nodes |
US20040008708A1 (en) * | 2002-07-11 | 2004-01-15 | Giacomini Peter J. | Overhead engine for telecommunications nodes |
US20040008701A1 (en) * | 2002-07-11 | 2004-01-15 | Giacomini Peter J. | Hierarchical finite-state machines |
US7349435B2 (en) * | 2002-07-11 | 2008-03-25 | Bay Microsystems, Inc. | Multiport overhead cell processor for telecommunications nodes |
WO2004034199A2 (en) * | 2002-10-04 | 2004-04-22 | Starent Networks Corporation | Managing resources for ip networking |
US7769893B2 (en) * | 2002-10-08 | 2010-08-03 | Koninklijke Philips Electronics N.V. | Integrated circuit and method for establishing transactions |
US20040103220A1 (en) * | 2002-10-21 | 2004-05-27 | Bill Bostick | Remote management system |
US6984701B2 (en) * | 2002-11-26 | 2006-01-10 | Lexmark International, Inc. | Polymeric dispersants to improve smear in printing |
JP5079342B2 (en) | 2007-01-22 | 2012-11-21 | ルネサスエレクトロニクス株式会社 | Multiprocessor device |
WO2008095201A1 (en) * | 2007-02-02 | 2008-08-07 | Psimast, Inc. | Processor chip architecture having integrated high-speed packet switched serial interface |
US9094317B2 (en) | 2009-06-18 | 2015-07-28 | Hewlett-Packard Development Company, L.P. | Processor topology switches |
CN103299290B (en) * | 2011-01-20 | 2015-11-25 | 惠普发展公司,有限责任合伙企业 | Combined processor |
US9094333B1 (en) * | 2011-10-26 | 2015-07-28 | Qlogic, Corporation | Systems and methods for sending and receiving information via a network device |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5303078A (en) * | 1990-12-18 | 1994-04-12 | Bell Communications Research, Inc. | Apparatus and method for large scale ATM switching |
US5559971A (en) * | 1991-10-30 | 1996-09-24 | I-Cube, Inc. | Folded hierarchical crosspoint array |
US5515376A (en) * | 1993-07-19 | 1996-05-07 | Alantec, Inc. | Communication apparatus and methods |
US5742602A (en) * | 1995-07-12 | 1998-04-21 | Compaq Computer Corporation | Adaptive repeater system |
US5610910A (en) * | 1995-08-17 | 1997-03-11 | Northern Telecom Limited | Access to telecommunications networks in multi-service environment |
US6002675A (en) * | 1997-01-06 | 1999-12-14 | Cabletron Systems, Inc. | Method and apparatus for controlling transmission of data over a network |
US6091707A (en) * | 1997-12-18 | 2000-07-18 | Advanced Micro Devices, Inc. | Methods and apparatus for preventing under-flow conditions in a multiple-port switching device |
-
1998
- 1998-09-02 US US09/145,824 patent/US6449273B1/en not_active Expired - Lifetime
-
1999
- 1999-08-11 CA CA002341212A patent/CA2341212A1/en not_active Abandoned
- 1999-08-11 KR KR1020017002689A patent/KR20010074899A/en not_active Application Discontinuation
- 1999-08-11 CN CNB998103268A patent/CN1146189C/en not_active Expired - Fee Related
- 1999-08-11 EP EP99941072A patent/EP1110351A4/en not_active Withdrawn
- 1999-08-11 JP JP2000569552A patent/JP4368527B2/en not_active Expired - Lifetime
- 1999-08-11 AU AU54794/99A patent/AU5479499A/en not_active Abandoned
- 1999-08-11 WO PCT/US1999/018293 patent/WO2000014928A1/en not_active Application Discontinuation
-
2002
- 2002-05-02 US US10/139,603 patent/US20020191613A1/en not_active Abandoned
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6654903B1 (en) * | 2000-05-20 | 2003-11-25 | Equipe Communications Corporation | Vertical fault isolation in a computer system |
US20060080467A1 (en) * | 2004-08-26 | 2006-04-13 | Sensory Networks, Inc. | Apparatus and method for high performance data content processing |
US20080005365A1 (en) * | 2006-03-30 | 2008-01-03 | Bailey Roger N | Processor with configurable association between interface signal lines and clock domains |
US7689821B2 (en) * | 2006-03-30 | 2010-03-30 | Agere Systems Inc. | Processor with configurable association between interface signal lines and clock domains |
Also Published As
Publication number | Publication date |
---|---|
CN1316145A (en) | 2001-10-03 |
EP1110351A1 (en) | 2001-06-27 |
JP4368527B2 (en) | 2009-11-18 |
CN1146189C (en) | 2004-04-14 |
JP2002524974A (en) | 2002-08-06 |
EP1110351A4 (en) | 2005-02-09 |
WO2000014928A1 (en) | 2000-03-16 |
AU5479499A (en) | 2000-03-27 |
US6449273B1 (en) | 2002-09-10 |
CA2341212A1 (en) | 2000-03-16 |
KR20010074899A (en) | 2001-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6449273B1 (en) | Multi-port packet processor | |
US6988161B2 (en) | Multiple port allocation and configurations for different port operation modes on a host | |
US5041963A (en) | Local area network with an active star topology comprising ring controllers having ring monitor logic function | |
EP0869641B1 (en) | Fibre channel arbitrated loop dynamic loop sizing | |
EP0889624B1 (en) | Trunking ethernet-compatible networks | |
EP1754329B1 (en) | Comma detection in infiniband | |
US8532086B1 (en) | Method and system for multi level switch configuration | |
WO2020051254A1 (en) | Dynamically changing configuration of data processing unit when connected to storage device or computing device | |
US20030091062A1 (en) | Method and apparatus for providing optimized high speed link utilization | |
US7436845B1 (en) | Input and output buffering | |
US20040013088A1 (en) | Long distance repeater for digital information | |
JPH02196541A (en) | Method and device for connecting work station to local area network | |
US20030043794A1 (en) | Data stream multiplexing in data network | |
US7639616B1 (en) | Adaptive cut-through algorithm | |
US7257758B1 (en) | Stumping mechanism | |
US7733855B1 (en) | Community separation enforcement | |
KR20020079750A (en) | Apparatus and method for sharing memory using a single ring data bus connection configuration | |
US7483442B1 (en) | VCRC checking and generation | |
US20060056424A1 (en) | Packet transmission using output buffer | |
US7155537B1 (en) | Infiniband isolation bridge merged with architecture of an infiniband translation bridge | |
Wang et al. | IP SAN-from iSCSI to IP-addressable Ethernet disks | |
JPH086895A (en) | Additional storage medium link | |
GB2378621A (en) | Method and apparatus for improving performance of a loop network by selectively bypassing redundant ports and also bypassing faulty ports | |
US7519089B1 (en) | Arrangement in a channel adapter for transmitting data according to link widths selected based on received link management packets | |
Thurber | Architecture and Strategies for Local Networks: Examples and Important Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: HYNIX SEMICONDUCTOR INC., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HYNIX SEMICONDUCTOR AMERICA INC.;REEL/FRAME:015232/0800 Effective date: 20040920 |
|
AS | Assignment |
Owner name: HYNIX SEMICONDUCTOR AMERICA INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:HYUNDAI ELECTRONICS AMERICA;REEL/FRAME:015246/0771 Effective date: 20010412 |
|
AS | Assignment |
Owner name: MAGNACHIP SEMICONDUCTOR, LTD., KOREA, REPUBLIC OF Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HYNIX SEMICONDUCTOR, INC.;REEL/FRAME:016216/0649 Effective date: 20041004 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |