Apparatus and method for a network router
First Claim
1. A network router, comprising:
- multiple channels each coupled to an associated network that transfers data packets having an associated network protocol, the multiple channels each independently transferring the data packets with the associated network;
an internal bus;
a CPU coupled to the internal bus that converts the data packets between each associated network protocol;
a master DMAC coupled between each one of the multiple channels and the internal bus for routing the data packets between the multiple channels and the internal bus, the DMAC providing a common interface between the multiple channels and the internal bus and allocating independently of the CPU and without communication over the internal bus with the CPU programmable percentages of bandwidth on the internal bus and selectable latency to each of the multiple channels;
the multiple channels, central processing unit, internal bus and DMAC all integrated onto a single silicon chip.
2 Assignments
0 Petitions
Accused Products
Abstract
A router is integrated onto a single silicon chip and includes an internal bus that couples multiple data receive and transmit channels to a central processing unit. The channels each have an external interface for connecting to different LAN or WAN networks. The serial channels are convertible into one or more time division multiplexed (TDM) channels. A time slot assigner (TSA) assembles and disassembles data packets transferred in TDM formats, such as ISDN. The serial channels are used for separately processing data packets in each TDM time slot. The TSA is programmable to operate with different TDM formats. A single direct memory access controller (DMAC) is coupled to each serial channel and an Ethernet channel and conducts data transfers on the internal router bus through a common port. The DMAC uses a novel bus protocol that provides selectable bandwidth allocation for each channel. The router architecture includes different interface circuitry which is also integrated onto the silicon chip. The interface circuitry includes user definable input/output (I/O) pins with programmable pulse width detection. The user definable I/O provides synchronous and asynchronous interfacing to peripheral devices with different timing constraints. The interface circuitry also includes a DRAM controller having a programmable timing control circuit that operates with memory devices having different timing and memory block sizes.
119 Citations
46 Claims
-
1. A network router, comprising:
-
multiple channels each coupled to an associated network that transfers data packets having an associated network protocol, the multiple channels each independently transferring the data packets with the associated network; an internal bus; a CPU coupled to the internal bus that converts the data packets between each associated network protocol; a master DMAC coupled between each one of the multiple channels and the internal bus for routing the data packets between the multiple channels and the internal bus, the DMAC providing a common interface between the multiple channels and the internal bus and allocating independently of the CPU and without communication over the internal bus with the CPU programmable percentages of bandwidth on the internal bus and selectable latency to each of the multiple channels; the multiple channels, central processing unit, internal bus and DMAC all integrated onto a single silicon chip. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 18, 19, 20, 26, 27, 28, 29)
-
-
10. A network router, comprising:
-
multiple channels each coupled to an associated network that transfers data packets using an associated network protocol; an internal bus; a CPU coupled to the internal bus that converts data packets between each network protocol; and a DMAC coupled to each one of the multiple channels and the internal bus for routing the data packets between the multiple channels and the internal bus; the multiple channels configurable to receive and transmit both serial data and TDM data on selectable TDM channels in a time division multiplexed format. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
21. A network router, comprising:
-
multiple channels each coupled to an associated network that transfers data packets using an associated network protocol; an internal bus; a CPU coupled to the internal bus that converts data packets between each network protocol; a DMAC coupled to each one of the multiple channels and the internal bus for routing the data packets between the multiple channels and the internal bus; and interface circuitry including a user definable I/O circuit having programmable input pulse width detection for detecting and converting different asynchronous input pulse widths into uniform width synchronous output pulses. - View Dependent Claims (22, 23)
-
-
24. A router, comprising:
-
multiple channels each coupled to an associated network that transfers data packets using an associated network protocol; an internal bus; a CPU coupled to the internal bus that converts data packets between each network protocol; a DMAC coupled to each one of the multiple channels and the internal bus for routing the data packets between the multiple channels and the internal bus; and multiple blocks of memory having different timing control signals; and a memory controller coupled between the internal bus and the multiple blocks of memory, the memory controller programmable for generating selectable refresh and memory access timing for the different timing control signals for each one of the multiple blocks of memory. - View Dependent Claims (25)
-
-
30. A network router, comprising:
-
multiple serial channels and at least one Ethernet channel all independently transferring data packets between associated network systems having network protocols; an internal bus; a central processing unit coupled to the internal bus for converting the data packets between the network protocols; a memory coupled to the internal bus, the memory storing the data packets and associated buffer descriptors, the buffer descriptors each including DMA context data and a pointer to an associated one of the data packets; and a single DMAC coupled between all the channels and the internal bus independently of the CPU that provides a common interface between the multiple serial channels and the internal bus; the DMAC including a DMA control circuit for conducting data packet transfers between the memory and the channels and a set of DMA registers associated with each one of the channels holding DMA context data selectively swapped into the DMA circuitry independently of the CPU according to which channels are currently transferring data packets. - View Dependent Claims (31, 32, 33, 34, 35)
-
-
36. A method for arbitrating bus transactions for data packets on an internal bus in a router coupled to multiple processing elements, comprising:
-
requesting the internal bus with a first processing element; granting the internal bus to the first processing element; conducting a first bus transaction with the first processing element after being granted the internal bus; requesting the internal bus with a second processing element while the first processing element is conducting the first bus transaction; pregranting the internal bus to the second processing element while the first processing element is conducting the first bus transaction; and conducting a second bus transaction with the second processing element immediately after the first processing element has indicated completion of the first bus transaction; and providing a DMAC that serves as common interface between the first and second processing elements and the internal bus. - View Dependent Claims (37, 38, 39, 40)
-
-
41. A method for conducting bus transactions on an internal bus in a router, comprising:
-
coupling the internal bus through a first channel to a first network transferring data packets using a first network protocol; coupling the internal bus through a second channel to a second network transferring data packets using a second network protocol; allocating selectable percentages of internal bus bandwidth to the first and second channel by assigning a first set of bandwidth time slots to the first channel and assigning a second set of bandwidth time slots to the second channel; transferring data packets from the first network through the first channel to the internal bus during the first set of time slots; converting the data packets from the first network protocol into the second network protocol; transferring converted data packets from the internal bus through the second channel to the second network during the second set of time slots; and transmitting data packets at a higher priority during each one of the time slots when the stored data packet bytes are the last bytes in one of the data packets or when the data packets have been held in the channels for a predetermined amount of time; and providing a DMAC that serves as a common interface for coupling the first and second channel to the internal bus. - View Dependent Claims (42, 43, 44, 45, 46)
-
Specification