Data link controller with autonomous in tandem pipeline circuit elements relative to network channels for transferring multitasking data in cyclically recurrent time slots
First Claim
1. A data link control (DLC) device for connection between a data communication network and a bus connecting to CPU (central processing unit) and memory subsystems of a data processing system, said bus being subject to having multiple connections linking said data processing system to multiple devices, including said DLC device, data being transferred between said DLC device and multiple channels in said data communication network in cyclically recurrent time division time slots assigned to individual ones of said data communication network channels, data being transferred between said DLC device and said memory subsystem, via said bus, in asynchronous relation to associated data communication processes in said data communication network channels and respective said recurrent time slots, aid DLC device comprising:
- memory means having storage spaces dedicated to said data communication network channels, the space dedicated to each of said channels including subspaces reserved for storing data being transferred between the respective channel of said data communication network and said DLC device and subspaces reserved for storing control information defining data processing operations to be performed by said DLC device on said data that is being transferred;
plural autonomous special purpose logic circuit elements connected in tandem between said data communication network and said memory means to form at least one plural-stage data processing pipeline relative to said channels, each said pipeline conveying data between said data communication network and said memory means and performing plural processing operations to selectively modify said data as it is conveyed, logic circuit elements forming discrete processing stages in each said pipeline operating during each of said cyclically recurrent time slots dedicated to an active one of said channels to perform data processing tasks on data being conveyed relative to the respective channel through the respective pipeline stage, logic elements forming different stages in any one said pipeline performing different data processing tasks on data being conveyed through the respective channel;
whereby each said pipeline serves as a multitasking data processing array relative to data undergoing transfer relative to each said active channel and as both a multiprocessing and multitasking array relative to data undergoing transfer relative to all active said channels; and
means coupled to said memory means and said bus for transferring data relative to individual said channels, between storage spaces in said memory means assigned to respective channels and storage spaces in said memory subsystem assigned to the same channels.
1 Assignment
0 Petitions
Accused Products
Abstract
A "single-chip" integrated circuit device, useful in ISDN digital voice and data telephone applications, links plural channels of a data communication network with memory and CPU components of a data processing system. The device couples to the system via a bus that may be shared by other devices, and bidirectionally exchanges service information signals with the system CPU, and communication data signals with system memory. The service information includes device control information furnished by the CPU, and (channel and device) status information prepared by the device. The device contains multiple logic circuit units, operating in relative functional autonomy, and buffer memory units for storing service information and data. Units which interface to the network operate in synchronism with network communication processes. Units which interface to the system bus operate in asynchronous relation to network processes. Synchronous units which handle data are configured to form plural stage pipelines, in each direction of communication, which eases timing requirements at the bus interface. Status information is stored queued in memory unit storage spaces dedicated to the channels; each queue configured so that the system CPU can retrieve status information representing plural events in one channel in one coherent bus operation. The device is partitioned further to provide discretely separate internal paths for transferring service and data signals relative to the system. Service signal transfers to and from system CPU and directed by the CPU. Data signal transfers to and from system memory are directed by a DMA control unit in the device.
177 Citations
34 Claims
-
1. A data link control (DLC) device for connection between a data communication network and a bus connecting to CPU (central processing unit) and memory subsystems of a data processing system, said bus being subject to having multiple connections linking said data processing system to multiple devices, including said DLC device, data being transferred between said DLC device and multiple channels in said data communication network in cyclically recurrent time division time slots assigned to individual ones of said data communication network channels, data being transferred between said DLC device and said memory subsystem, via said bus, in asynchronous relation to associated data communication processes in said data communication network channels and respective said recurrent time slots, aid DLC device comprising:
-
memory means having storage spaces dedicated to said data communication network channels, the space dedicated to each of said channels including subspaces reserved for storing data being transferred between the respective channel of said data communication network and said DLC device and subspaces reserved for storing control information defining data processing operations to be performed by said DLC device on said data that is being transferred; plural autonomous special purpose logic circuit elements connected in tandem between said data communication network and said memory means to form at least one plural-stage data processing pipeline relative to said channels, each said pipeline conveying data between said data communication network and said memory means and performing plural processing operations to selectively modify said data as it is conveyed, logic circuit elements forming discrete processing stages in each said pipeline operating during each of said cyclically recurrent time slots dedicated to an active one of said channels to perform data processing tasks on data being conveyed relative to the respective channel through the respective pipeline stage, logic elements forming different stages in any one said pipeline performing different data processing tasks on data being conveyed through the respective channel;
whereby each said pipeline serves as a multitasking data processing array relative to data undergoing transfer relative to each said active channel and as both a multiprocessing and multitasking array relative to data undergoing transfer relative to all active said channels; andmeans coupled to said memory means and said bus for transferring data relative to individual said channels, between storage spaces in said memory means assigned to respective channels and storage spaces in said memory subsystem assigned to the same channels. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27)
-
-
28. A data link control (DLC) device for connection between a data communication network and a bus connecting to CPU (central processing unit) and memory subsystems of a data processing system, said bus being subject to having multiple connections linking said system to multiple devices, including said DLC device, data being transferred between said DLC device and multiple channels in said data communication network in cyclically recurrent time division time slot assigned to individual ones of said channels, data being transferred between said device and said memory subsystem, via said bus, in asynchronous time relation to associated data communication process in said data communication network channels and respective said recurrent time slots, said DLC device comprising:
-
memory means having storage spaces dedicated to said data communication network channels, the space dedicated to each said network channel including subspaces reserved for storing data being transferred between the respective network channel and said DLC device and subspaces reserved for storing control information defining data processing operations to be performed by said device on said data that is being transferred; plural autonomous special purpose logic circuit elements connected in tandem between said data communication network and said memory means to form at least one plural-stage data processing pipeline relative to said network channels, each said pipeline conveying data between said data communication network and said memory means and performing plural data processing operations on said data to selectively modify said data as it is conveyed, logic circuit elements forming discrete processing stages in each said pipeline operating during each of said cyclically recurrent time slots dedicated to an active one of said network channels to perform data processing tasks on data being conveyed relative to that network channel through the respective pipeline stage, logic elements forming different stages in any one of said pipelines performing different data processing tasks on said data as it is passed through the respective pipeline;
whereby each said pipeline serves as a multitasking data processing array relative to said data undergoing transfer relative to each said active network channel and as both a multiprocessing and multitasking array relative to data undergoing transfer relative to all active said network channels;means coupled to said memory means and said bus for transferring data relative to individual said network channels between storage spaces in said memory means assigned to respective said network channels and storage spaces in said memory subsystem assigned to the same network channels; wherein said network channels carry data simultaneously in plural different data communication formats, and include at least one channel operating in a full duplex mode, relative to a remote station attached to said data communication network, to convey data from the remote station to said DLC device (receive data) while concurrently transmitting data supplied by said DLC device (transmit data) to said remote station, and said pipelines comprise; a multi-stage transmit pipeline, for conveying transmit data from said memory means to said data communication network while processing said data, and a multi-stage receive pipeline for conveying receive data from said data communication network to said memory means; wherein said memory means contains storage spaces dedicated to each channel for storing channel configuration register control information defining the data communication format of the respective channel, and said DLC device contains a channel configuration register common to all channels for storing the channel configuration register control information of each channel while the device is performing operations to advance movement of data through the respective channel; wherein said device further comprises supervisory autonomous logic elements coupled to said channel configuration register and individual stages in said transmit and receive pipelines, aid supervisory elements operating in synchronism with said pipeline stages, and conditioning said pipeline stages to perform processing tasks on data in transit through said stages, said operations defined in part by the contents of said configuration control register;
whereby data can be transferred between said memory means and said memory subsystem in a format common to all channels and exchanged between said device and said data communication network in diverse formats commensurate with respective channel configurations;wherein said channel configuration register control information is useful to configure a plurality of said channels for concurrently communicating digitized voice and data arranged in HDLC (high level data link control) protocol between said data communication network and said memory subsystem, and wherein said autonomous elements constituting said pipeline stages perform the data processing tasks required to accommodate said voice and HDLC data concurrently; wherein autonomous logic elements constituting stages of said transmit pipeline process transmit data in transit through said transmit pipeline, and operate relative to channels in said data communication network that are configured for transmitting data in HDLC protocol to embed HDLC frame delimiting symbols and Cyclic Redundancy Check (CRC) check symbols into the transmit data of respective HDLC channels, on the fly, as said data is conveyed through said transmit pipeline from said device memory means to said data communication network; wherein autonomous logic elements constituting stages of said receive pipeline process receive data in transit through said receive pipeline, and are effective relative to channels in said data communication network that are carrying receive data arranged in said HDLC protocol format to perform processing tasks to strip HDLC frame delimiting symbols from respective HDLC data and to perform CRC checks on said data, on the fly, as said respective data is conveyed through said pipeline from said data communication network to said memory means; wherein said autonomous logic elements which constitute stages of said pipelines that interface directly to said data communication network interface to said full duplex channels on said data communication network in cyclically repetitive time slots dedicated to respective said full duplex channels, and operate during each such time slot to receive from 0 to n bits from the respective channel on the data communication network and to transmit from 0 to n bits to the respective channel on the data communication network, where n is greater than 2; wherein said autonomous logic elements constituting stages in said transmit and receive pipelines are adapted to handle data being conveyed respectively to and from each said duplex channel in bit-parallel formats; wherein said data received and transmitted at said data communication network interface, relative to each said full duplex channel is transferred only in short duration bursts occupying a small portion of the time slot allocated to the respective channel, whereby a major portion of each such allocated time slot is available to be used by said DLC device for changing operating stages of said pipeline elements relative to different said channels; wherein said memory means contains storage spaces reserved to each said channel for storing state control information for each said pipeline stage relative to the respective channel;
said state control information defining instantaneous task processing states of each said pipeline stage relative to the respective channel;said DLC device further comprising supervisory means coupled to said memory means and said pipeline elements for controlling bidirectional transfer of said state control information between said memory means and each of said pipeline stages during each said time slot;
the state control information transferred from said memory means to said pipeline stages at the beginning of each time slot serving to set respective stages to processing states they were in at the end of the last prior recurrence of the same time slot;
the state control information transferred from said pipeline stages to said memory means at the end of each time slot representing final processing states of respective stages for the respective slot;
said supervisory means comprising;a special purpose resource managing (RSM) element for managing the cyclic saving and restoration of states between said elements in said pipeline sections and said memory means in synchronism with said time slots;
said RSM element providing starting and ending indications to said pipeline elements for directing said pipeline elements to start and end processing tasks relative to a channel associated with a current slot;said pipeline elements asserting DONE indications to said RSM element in response to said ending indications when the current slot is one assigned to an active channel;
said pipeline elements further providing continuous output indications of their processing states during each slot;said RSM element directing saving of said processing states of said pipeline elements to said memory means in response to said DONE indications from respective pipeline elements; and said DONE indications being delayable by said pipeline elements to allow for said pipeline elements to reach stable processing states from which processing can be resumed without ambiguity. - View Dependent Claims (29, 30)
-
-
31. A data link control (DLC) device for connection between a bit-serial data communication network and a bit-parallel data transfer bus, said data communication network containing multiple bit-serial data communication channels, said bus connecting said DLC device with memory and CPU (central processing unit) subsystems of a data processing system, said bus being connectable to other devices besides said DLC device and being subject to contention between said DLC device and said other devices, said DLC device exchanging communication data bit-serially with individual channels of said data communication network, in cyclically recurrent time division time slots assigned to respective channels, said DLC device comprising:
-
first and second RAM storage units, each having storage spaces reserved to individual ones of said data communication network channels; said reserved storage spaces in said first RAM unit forming storage queues structured for storing plural bytes of receive data, plural bytes of transmit data, and plural bytes of control information, relative to each said channel, said receive data in each said queue comprising data received bit-serially from a respective channel in said data communication network during periods of recurrence of said time slots assigned to the respective channel, said transmit data in each queue comprising data which is to be transferred bit-serially to a respective channel in said data communication network in periods of recurrence of said time slots assigned to the respective channel, and said control information in each queue defining positions of individual data byte storage spaces to which a next byte of receive data is to be transferred from a respective channel in said data communication network and from which a next byte of transmit data is to be transferred to the respective network channel; said reserved spaces in said second RAM unit including spaces for holding control state information defining instantaneous processing states of said device relative to time slots assigned to respective said channels; a first plurality of autonomous special purpose logic circuit elements connected in tandem between said network and said first RAM unit to form a plural-stage receive pipeline in which said receive data received from individual said channels is handled and processed by said DLC device during time slots assigned to the respective channels;
said elements constituting said receive pipeline operating in synchronism with said assigned time slots for transporting said receive data of respective channels from said network to respective receive data storage queues in said first RAM unit;
elements constituting individual stages in said receive pipeline selectively performing various processing tasks on said receive data as it is transferred through respective said stages;
including tasks for converting said receive data from serial to parallel form and tasks for selectively processing and removing protocol information contained in said receive data;
whereby said receive pipeline operates as a multitasking processing array, relative to receive data handled during time slots assigned to a single network channel, and as both a multiprocessing and a multitasking array relative to receive data handled in time slots assigned to all channels;a second plurality of autonomous special purpose logic circuit elements connected in tandem between said network and said first RAM unit to form a plural-stage transmit pipeline relative to transmit data being transferred from said first RAM unit to said data communication network channels during said time slots assigned to respective channels, said elements constituting said transmit pipeline operating in synchronism with said assigned time slots for transporting said transmit data from respective transmit data storage queues in said first RAM unit to said data communication network channels in said time slots assigned to respective channels. Said elements constituting individual stages of said transmit pipeline performing various processing tasks on said transmit data as it passes through respective stages, including tasks for converting said transmit data from parallel to serial format and tasks for selectively inserting protocol delimiting characters into said data;
whereby said transmit pipeline acts as a multitasking array relative to transmit data handled in time slots assigned to a single one of said channels, and as both a multiprocessing and a multitasking array relative to transmit data handled in the time slots assigned to all channels; andmeans coupled to said first and second RAM units and said bus for transferring said receive data and said transmit data relative to said channels between respective data storage queues in said first RAM unit and said memory subsystem.
-
-
32. A data link control (DLC) device for connection between a bit-serial data communication network and a bit-parallel data transfer bus, said network containing multiple bit-serial data communication channels, said bit-parallel data transfer bus connecting said DLC device with memory and CPU (central processing unit) subsystems of a data processing system, said bit-parallel data transfer bus being connectable to other devices besides said DLC device and being subject to contention between said DLC device and said other devices, said DLC device operating to exchange communication data bit-serially with individual channels of said network, in cyclically recurrent time division time slots assigned to respective channels, said DLC device comprising:
-
first and second RAM storage units, each having storage spaces reserved to individual ones of said network channels; said reserved storage spaces in said first RAM unit forming storage queues structured for storing plural bytes of receive data, plural bytes of transmit data, and plural bytes of control information, relative to each said channel, said receive data in each queue comprising data received bit-serially from a respective network channel in periods of recurrence of said time slots assigned to the respective channel, said transmit data in each queue comprising data to be transferred bit-serially to a respective network channel in periods of recurrence of said time slots assigned to the respective channel, and said control information in each queue defining positions of individual data byte storage spaces to which a next byte of receive data is to be transferred from a respective network channel and from which a next byte of transmit data is to be transferred to the respective network channel; said reserved spaces in said second RAM unit including spaces for holding control state information defining instantaneous processing states of said device relative to time slots assigned to respective channels; a first plurality of autonomous special purpose logic circuit elements connected in tandem between said network and said first RAM unit to form a plural-stage receive pipeline in which said receive data of individual said channels is handled and processed by said DLC device during time slots assigned to the respective channels;
said elements constituting said receive pipeline operating in synchronism with said assigned time slots for transporting said receive data of respective channels from said network to respective receive data storage queues in said first RAM unit;
elements constituting individual stages in said receive pipeline selectively performing various processing tasks on said receive data as it is transferred through respective stages;
including tasks for converting said receive data from serial to parallel form and tasks for selectively processing and removing protocol information contained in said receive data;
whereby said receive pipeline operates as a multitasking processing array, relative to receive data handled during time slots assigned to a single network channel, and as both a multiprocessing and multitasking array relative to receive data handled in time slots assigned to all network channels;a second plurality of autonomous special purpose logic circuit elements connected in tandem between said network and said first RAM unit to form a plural-stage transmit pipeline relative to transmit data being transferred from said first RAM unit to said network channels during said time slots assigned to respective channels, said elements constituting said transmit pipeline operating in synchronism with said assigned time slots for transporting said transmit data from respective transmit data storage queues in said first RAM unit to said network channels in said time slots assigned to respective channels;
said elements constituting individual stages of said transmit pipeline performing various processing tasks on said transmit data as it passes through respective stages, including tasks for converting said transmit data from parallel to serial format and tasks for selectively inserting protocol delimiting characters into said transmit data;
whereby said transmit pipeline stages act as a multitasking array relative to transmit data handled in time slots assigned to one of said channels, and as both a multiprocessing and multitasking array relative to transmit data handled in the time slots assigned to all of said channels; andmeans coupled to said first and second RAM units and said bit-parallel data transfer bus for transferring said receive and transmit data relative to said channels between respective data storage queues in said first RAM unit and said memory subsystem; and
whereinsaid network slots are assignable concurrently to multiple channels carrying voice and HDLC formatted data; during any said time slot a variable number of x data bits is transferable at said data communication network interface relative to a channel respectively assigned to said any slot;
where x can range from 0 to n and n is at least 8;said elements in said receive and transmit pipelines include layer 1 interfacing elements (RL1, TL1), which interface to said network during each slot for receiving and transferring data bit serially relative to a respective channel, validation elements (RV, TV) coupled to said layer 1 interfacing elements for exchanging data with said layer 1 interfacing elements in bit parallel byte sequential from relative to any channel, and memory management elements (RFM, TFM) for transferring data between said validation elements and said first RAM array relative to any channel in bit parallel byte sequential form; said RL1 interfacing element in said receive pipeline operating on data bits received from said network relative to a channel configured for HDLC data communication to;
detect and remove bits inserted for transparency, collect bits to form bytes, remove bytes representing frame delimiting characters, and transfer remaining bytes sequentially to said RV element in the same pipeline;
said RV element operating relative to remaining received bytes in said HDLC data to;
perform CRC checking on said bytes and transfer said checked bytes to the RFM element in the same pipeline;
said RFM element operating to transfer said bytes relative to said HDLC channel into byte spaces in the respective data storage queue in said first RAM;said TFM element in said transmit pipeline operating relative to any channel configured for HDLC communication to fetch data bytes sequentially from byte spaces in the respective data storage queue in said first RAM and to transfer said bytes sequentially to said TV element in the same pipeline;
said TV element operating relative to said HDLC channel for performing CRC checks thereon, transferring bytes sequentially to the TL1 element in the same pipeline, and generating and inserting reference CRC remainder characters into said transferred data;
said TL1 element operating relative to said HDLC channel to;
insert transparency bits, insert frame delimiting bytes, and transfer said data bit serially to said network in slots assigned to the respective channel; andsaid first RAM unit has a data queue space relative to each slot for storing at least 4 bytes of data relative to the transmit pipeline and at least 4 bytes of data relative to the receive pipeline. - View Dependent Claims (33, 34)
-
Specification