Communications controller utilizing an external buffer memory with plural channels between a host and network interface operating independently for transferring packets between protocol layers
First Claim
1. A data communication controller formed on a single integrated circuit chip, for use in a local area network having a communication medium and a network communication protocol and being interfaceable with an external system bus including an external system data bus and an external system address bus, said external system data bus and said external system address bus being operably associated with a host processor and external buffer memory including a plurality of memory storage elements for buffering data packets including transmit packets and receive packets, and each said transmit packet and said receive packet being composed of one or more data words, said data communication controller comprising:
- data communication means, operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium and receiving receive packets from over said communication medium, said data communication means further includinga transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium, anda receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium;
system bus interface means for interfacing said data communication controller with said external system bus, and further includingan input data word queue for buffering the data words transferred from said host processor over said external system bus to said data communication controller, andan output data word queue for buffering data words to be transferred from said data communication controller over said external system bus to said external buffer memory;
first data transfer means for transferring data words along a second data channel defined from said input data word queue to said transmit data word queue;
second data transfer means for transferring data words along a second data channel defined from said receive data word queue to said output data word queue;
internal data storage memory for storing external address data specifying the location of predefined memory structures maintained in said external buffer memory;
third data transfer means for transferring data words along a third data channel defined from said input data word queue to said internal data storage memory;
fourth data transfer means for transferring data words along a fourth data channel defined from said internal data storage memory to said output data word queue;
memory access control means for directly controlling access to memory storage elements in said external buffer memory, and further includingfirst means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said transmit data word queue,second means for controlling the transfer of data words from said receive data word queue to said output data word queue and thence to said external data buffer memory,third means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said internal data storage memory,fourth means for controlling the transfer of data words from said internal data storage means to said output data word queue and thence to said external buffer memory,a first external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory from which data words are to be read and transferred to said input data word queue,a second external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said output data word queue,a third external address counter for incrementally generating from a preselected external address a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory which data words are to be read and transferred to said input data word queue,a fourth external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory into which data words are to be written from said output data word queue, andan external address queue for buffering a plurality of said external addresses;
a first processing means operably associated with said data communication means, and havingmeans for independently accessing said internal data storage memory, andmeans for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and
a second processing means independent of said first processing means, operably connected to said memory access control means, and havingmeans for independently accessing said internal data storage memory,means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, andmeans for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means, for transfer to said communication medium.
4 Assignments
0 Petitions
Accused Products
Abstract
A high speed data communication controller comprising two independent central processing units, each having its own independent program instruction fetch data path, and instruction execution data path. The data communication controller includes a dual-port serial communication subsystem and a bus interface unit operably associated with a four channel DMA controller. One central processing unit is assigned the task of handling the medium access control (MAC) layer function of a multilayered local area network protocol, while the other central processing unit handles host commands and buffer memory management functions associated with the transmission and reception of packets relating to the higher layer protocol. As a result of the present invention, efficient data communication processing is achieved within a single VSLI chip, thereby improving node and network data throughout.
100 Citations
44 Claims
-
1. A data communication controller formed on a single integrated circuit chip, for use in a local area network having a communication medium and a network communication protocol and being interfaceable with an external system bus including an external system data bus and an external system address bus, said external system data bus and said external system address bus being operably associated with a host processor and external buffer memory including a plurality of memory storage elements for buffering data packets including transmit packets and receive packets, and each said transmit packet and said receive packet being composed of one or more data words, said data communication controller comprising:
-
data communication means, operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium and receiving receive packets from over said communication medium, said data communication means further including a transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium, and a receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium; system bus interface means for interfacing said data communication controller with said external system bus, and further including an input data word queue for buffering the data words transferred from said host processor over said external system bus to said data communication controller, and an output data word queue for buffering data words to be transferred from said data communication controller over said external system bus to said external buffer memory; first data transfer means for transferring data words along a second data channel defined from said input data word queue to said transmit data word queue; second data transfer means for transferring data words along a second data channel defined from said receive data word queue to said output data word queue; internal data storage memory for storing external address data specifying the location of predefined memory structures maintained in said external buffer memory; third data transfer means for transferring data words along a third data channel defined from said input data word queue to said internal data storage memory; fourth data transfer means for transferring data words along a fourth data channel defined from said internal data storage memory to said output data word queue; memory access control means for directly controlling access to memory storage elements in said external buffer memory, and further including first means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said transmit data word queue, second means for controlling the transfer of data words from said receive data word queue to said output data word queue and thence to said external data buffer memory, third means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said internal data storage memory, fourth means for controlling the transfer of data words from said internal data storage means to said output data word queue and thence to said external buffer memory, a first external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory from which data words are to be read and transferred to said input data word queue, a second external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said output data word queue, a third external address counter for incrementally generating from a preselected external address a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory which data words are to be read and transferred to said input data word queue, a fourth external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory into which data words are to be written from said output data word queue, and an external address queue for buffering a plurality of said external addresses; a first processing means operably associated with said data communication means, and having means for independently accessing said internal data storage memory, and means for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and a second processing means independent of said first processing means, operably connected to said memory access control means, and having means for independently accessing said internal data storage memory, means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, and means for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means, for transfer to said communication medium. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 16)
-
-
9. Apparatus for use in a local area network having a communication medium and a network communication protocol, said apparatus comprising:
-
(A) an external buffer memory having a plurality of memory storage elements, for buffering data packets including transmit packets and receive packets, said external buffer memory being interfaceable with an external system bus including an external system data bus and an external system address bus, each being operably associated with a host processor; and (B) a data communication controller interfaceable with said external system bus, said data communication controller including; data communication means, being operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium and receiving receive packets from over said communication medium, and each said transmit packet and each said receive packet being composed of one or more data words; system bus interface means for interfacing said data communication controller with said external system bus, said system bus interface means further including an input data word queue for buffering the data words transferred from said host processor over said external system bus to said data communication controller, and an output data word queue for buffering data words transferred from said data communication controller over said external system bus to said external buffer memory; a transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium; a receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium; first data transfer means for transferring data words along a first data pathway defined from said input data word queue to said transmit data word queue; second data transfer means for transferring data words along a second data pathway defined from said receive data word queue to said output data word queue; a third data transfer means for transferring data words along a third data pathway defined from said input data word queue to said internal data storage memory, and a fourth data transfer means for transferring data words along a fourth data pathway defined from said data storage memory to said output data word queue; memory access control means for directly controlling access to said memory storage elements in said external buffer memory, said memory access control means being operably connected to said second processing means and including first means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said transmit data word queue, second means for controlling the transfer of data words from said receive data word queue to said output data word queue and thence to said external data buffer memory, third means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said internal data storage memory, fourth means for controlling the transfer of data words from said internal data storage means to said output data word queue and thence to said external buffer memory, a first external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory from which data words are to be read and transferred to said input data word queue, a second external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory into which data words are to be written from said output data word queue, a third external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory which data words are to be read and transferred to said input data word queue, a fourth external address counter for incrementally generating from a preselected external address, a sequence of external addresses specifying the location of a sequence of data storage elements in said external buffer memory into which data words are to be written from said output data word queue, and an external address queue for buffering a plurality of said external addresses; a first processing means operably associated with said data communication means, for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and a second processing means independent of said first processing means, and having means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, and means for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means, for transfer to said communication medium. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
17. A data communication controller formed on a single integrated circuit chip, for use in a local area network having a communication medium and a network communication protocol and being interfaceable with an external system bus including an external system data bus and an external system address bus, said external system data bus and said external system address bus being operably associated with a host processor and external buffer memory including a plurality of memory storage elements for buffering data packets including transmit packets and receive packets, each said transmit packet and said receive packet being composed of one or more data words, said data communication controller comprising:
-
data communication means, operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium, said data communication means further including a transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium, and a receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium; system bus interface means for interfacing said data communication controller with said external system bus, said system bus interface means further including and input data word queue for buffering the data words transferred from said host processor over said external system bus to said data communication controller, and an output data word queue for buffering data words to be transferred from said data communication controller over said external system bus to said external buffer memory; first data transfer means for transferring data words along a second data channel defined from said input data word queue to said transmit data word queue; second data transfer means for transferring data words along a second data channel defined from said receive data word queue to said output data word queue; a third data transfer means for transferring data words along a third data channel defined from said input data word queue to said internal data storage memory; a fourth data transfer means for transferring data words along a fourth data channel defined from said internal data storage memory to said output data word queue; internal data storage memory for storing external address data specifying the location of predefined memory structures maintained in said external buffer memory; memory access control means for directly controlling access to memory storage elements in said external buffer memory, said memory access control means further including first means for controlling the transfer of data words form said external data buffer memory to said input data word queue and thence to said transmit data word queue, second means for controlling the transfer of data words from said receive data word queue to said output data word queue and thence to said external data buffer memory, third means for controlling the transfer of data words for said receive data word queue to said output data word queue and thence to said external data buffer memory, third means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said internal data storage memory, and fourth means for controlling the transfer of data words from said internal data storage means to said output data word queue and thence to said external buffer memory an external address queue for buffering a plurality of said external addresses; a first processing means operably associated with said data communication means, and having means for independently accessing said internal data storage memory, and means for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and a second processing means independent of said first processing means and operably connected to said memory access control means, and having means for independently accessing said internal data storage memory, means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, and means for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means for transfer to said communication medium. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A data communication controller formed on a single integrated circuit chip, for use in a local area network having a communication medium and a network communication protocol and being interfaceable with an external system bus including an external system data bus and an external system address bus, said external system data bus and said external system address bus being operably associated with a host processor and external buffer memory including a plurality of memory storage elements for buffering data packets including transmit packets and receive packets, and each said transmit packet and said receive packet being composed of one or more data words, said data communication controller comprising:
-
data communication means, operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium and receiving receive packets from over said communication medium, said data communication means further including a transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium, and a receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium; system bus interface means for interfacing said data communication controller with said external system bus, said system bus interface means further including an input data word queue for buffering the data words transferred from said host processor over said external system bus to said data communication controller, and an output data word queue for buffering data words to be transferred from said data communication controller over said external system bus to said external buffer memory; first data transfer means for transferring data words along a second data channel defined from said input data word queue to said transmit data word queue; second data transfer means for transferring data words along a second data channel defined from said receive data word queue to said output data word queue; third data transfer means for transferring data words along a third data channel defined from said input data word queue to said internal data storage memory; fourth data transfer means for transferring data words along a fourth data channel defined from said internal data storage memory to said output data word queue; memory access control means for directly controlling access to memory storage elements in said external buffer memory, said memory access control means further including first means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said transmit data word queue, second means for controlling the transfer of data words from said receive data word queue to said output data word queue and thence to said external data buffer memory, third means for controlling the transfer of data words from said external data buffer memory to said input data word queue and thence to said internal data storage memory, fourth means for controlling the transfer of data words from said internal data storage means to said output data word queue and thence to said external buffer memory, and an external address queue for buffering a plurality of said external addresses, said external address queue including a plurality of address storage locations for buffering said plurality of said external addresses, an address insertion location for insertion of each said external address into said external address queue, an address removal location operably associated with said external address system bus, for removal of each said external address from said external address queue and placement on said external system address bus, and a first tag bit sequence queue having a first plurality of tag bit sequence storage locations for storage of a first plurality tag bit sequences, each said first tag bit sequence storage location being associated with one said address storage location, and said first tag bit sequence queue further having a first tag bit sequence insertion location for insertion of each tag bit sequence into said first tag bit sequence queue, and a first tag bit sequence removal location for removal of each said tag bit sequence from said first tag bit sequence queue; a first processing means operably associated with said data communication means, for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and a second processing means independent of said first processing means, operably connected to said memory access control means, and including means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, and means for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means, for transfer to said communication medium. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A data communication controller formed on a single integrated circuit chip, for use in a local area network having a communication medium and a network communication protocol, and being interfaceable with an external system bus including an external system data bus and an external system address bus each being operably associated with a host processor and external buffer memory having a plurality of memory storage elements for buffering data packets including transmit packets and receive packets, and each said transmit packet and said receive packet being composed of one or more data words, said data communication controller comprising:
-
data communication means, operably interfaceable with said communication medium, for transmitting transmit packets over said communication medium and receiving receive packets from over said communication medium, said data communication means further including transmit packet assembling and transmitting means for assembling and transmitting the data words associated with each said transmit packet, a transmit data word queue for buffering the data words associated with one or more said transmit packets to be transmitted over said communication medium, receive packet receiving means for receiving the data words associated with each said receive packet, and a receive data word queue for buffering the data words of one or more said receive packets received from over said communication medium; system bus interface means for interfacing said data communication controller with said external system bus, said system bus interface means further including an input data word queue for buffering the data words to be transferred from said host processor over said external system bus to said data communication controller, and an output data word queue for buffering data words to be transferred from said data communication controller over said external system bus to said external buffer memory; first data transfer means for transferring data words along a first data channel defined from said input data word queue to said transmit data word queue; second data transfer means for transferring data words along a second data channel defined from said receive data word queue to said output data word queue; a third data transfer means for transferring data words along a third data channel defined from said input data word queue to said internal data storage memory; a fourth data transfer means for transferring data words along a fourth data channel defined from said internal data storage memory to said output data word queue; a first asynchronous RISC-type processing means operably associated with said data communication means, and having means for independently accessing said external buffer memory, and means for selectively processing said receive packets so as to perform said network communication protocol at said data communication controller; and a second asynchronous RISC-type processing means independent of said first synchronous RISC-type processing means, and including means for independently accessing said external buffer memory, means for managing the transfer of receive packets from said data communication means to said system bus interface means, and from said system bus interface means to said external buffer memory for storage therein, and means for managing the transfer of transmit packets from said external buffer memory to said system bus interface means and from said system bus interface means to said data communication means, for transfer to said communication medium. - View Dependent Claims (31, 32, 33, 34, 35, 36, 37, 38, 39)
-
-
40. The data communication controller 39, which further comprises:
a first receive packet filtering means, operably associated with said first receive data word removal location, for determining the beginning and end of each receive packet being transferred though said receive data word queue and for determining whether each said receive packet is to be made accessible to said first RISC-type processing means by way of said first internal system bus. - View Dependent Claims (41, 42, 43, 44)
Specification