WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Network communications adapter with dual interleaved memory banks servicing multiple processors    
United States Patent4933846   
Link to this pagehttp://www.wikipatents.com/4933846.html
Inventor(s)Humphrey; Donald J. (Forest Lake, MN); Hughes; James P. (Lino Lakes, MN); Peterson; Wayne A. (Ramsey, MN); Roiger; Wayne R. (St. Michael, MN)
AbstractA network communications adapter interconnects a plurality of digital computing resources for mutual data exchange in which a high performance, large capacity common memory is provided with a pair of external buses which allows multiple processors to store information in and read information from the common memory. The common memory is configured into two banks, each bank operating independently and concurrently under control of bus switching logic with separate address, control and data buses. The common memory typically provides 400 megabits per second of bandwidth to the multiple attached thirty-two and sixteen bit processors which may be coupled either to both buses simultaneously or individually to the two buses. The bus switching logic then allocates all of the available bandwidth to the individual processors coupled to the buses based upon a predetermined profile established at the time of system installation. Also included in the bus switch logic is circuitry for broadcasting a processor I.D., whereby only a particular processor assigned the same identifier will be afforded an access slot time during which communication over the dual bus structure can take place. One of the interconnected processors is designated as the node controller and it includes circuitry and software for implementing interprocessor interrupt handling and storage protection functions. Others of the plurality of processors coupled to the two memory buses provided input/output interfaces for host computers, digital peripheral devices, communications trunks or buses, or to wireless links for more remote communication.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Inventor     Humphrey; Donald J. (Forest Lake, MN); Hughes; James P. (Lino Lakes, MN); Peterson; Wayne A. (Ramsey, MN); Roiger; Wayne R. (St. Michael, MN)
Owner/Assignee     Network Systems Corporation (Minneapolis, MN)
Patent assignment
All assignments
Publication Date     June 12, 1990
Application Number     07/041,985
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     April 24, 1987
US Classification     710/107 370/463
Int'l Classification     G06F 013/00 G06F 013/24 G06F 015/16
Examiner     Williams Jr.; Archie E.
Assistant Examiner     Chan; Emily Y.
Attorney/Law Firm     Haugen; Orrin M. Nikolai; Thomas J. , Niebuhr; Frederick W. ,
Address
Parent Case    
Priority Data    
USPTO Field of Search     364/200 MS File 364/900 MS File 370/85
Patent Tags     network communications adapter dual interleaved memory banks servicing multiple processors
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
4722502
Mueller

Feb,1988

[0 after 0 votes]
4680753
Fulton
370/449
Jul,1987

[0 after 0 votes]
4672535
Katzman
710/38
Jun,1987

[0 after 0 votes]
4652993
Scheuneman
711/151
Mar,1987

[0 after 0 votes]
4633434
Scheuneman
713/400
Dec,1986

[0 after 0 votes]
4613935
Couleur
712/220
Sep,1986

[0 after 0 votes]
4574350
Starr
710/200
Mar,1986

[0 after 0 votes]
4470114
Gerhold
710/111
Sep,1984

[0 after 0 votes]
4449181
Young
711/2
May,1984

[0 after 0 votes]
4438493
Cushing
711/218
Mar,1984

[0 after 0 votes]
4413315
Kurakake
711/211
Nov,1983

[0 after 0 votes]
4403282
Holberger
710/22
Sep,1983

[0 after 0 votes]
4400770
Chan
711/3
Aug,1983

[0 after 0 votes]
4371929
Brann
710/45
Feb,1983

[0 after 0 votes]
4325116
Kranz
711/151
Apr,1982

[0 after 0 votes]
4282572
Moore, III
711/151
Aug,1981

[0 after 0 votes]
4164787
Aranguren
713/600
Aug,1979

[0 after 0 votes]
4034347
Probert, Jr.
709/214
Jul,1977

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A communications network adapter comprising:

(a) central random access buffer memory means for storing data at addressable locations, said buffer memory means being partitioned into first and second independently and concurrently operating interleaved banks;

(b) first and second common bus means selectively connectable on an alternating basis to said first and second banks for providing, on a time multiplexed basis, address representing signals and data representing signals to said buffer memory means for storing said data representing signals therein;

(c) first and second read data bus means selectively connectable on an alternating basis to said two banks for carrying data representing signals read out from the memory locations in said buffer memory means specified by said address representing signals carried by said first and second common bus means, each of said first and second common bus means and read data bus means having a finite bandwidth measurable in bits per second;

(d) a plurality of processing means comprising nodes individually coupled to said first and second common buses and to said read data buses, certain ones of said plurality of processing means having input/output means for communication with digital devices connected thereto; and

(e) node control means coupled to said first and second common bus means and to said first and second read data bus means, said node control means including memory access control means for synchronously and cyclically connecting alternate ones of said first and second banks to said first and second common bus means and said first and second read data bus means, said node control means further including broadcast means for broadcasting a processor slot I.D. number to each of said plurality of processing means, said broadcast means having programmable read-only memory slot means for storing a plurality of processor I.D. words defining system profiles, addressing means including counter means and preset switching means coupled to said programmable read-only memory for reading out said words defining system profiles as said counter means is advanced, clock signal generating means for applying regularly occurring timing signals to said counter means to sequentially advance said counter means to read out processor slot I.D. words from said programmable read-only memory in a desired sequence, and a processor slot I.D. bus coupling said processor I.D. words from said programmable read-only memory means to said plurality of processing means, and means for selectively assigning access time slots to said plurality of processing means so that the total aggregate bandwidth of said first and second common bus means and read data bus means is allocated to said plurality of processing means on a predetermined, non-conflicting, need basis.

2. The communications network adapter as in claim 1 and further including first and second storage protection logic means in said node control means individually connected to each of said first and second banks, said first and second storage protection logic means comparing said address representing signals originating from one of said plurality of processing means and present on said first and second common bus means to a predetermined key I.D. assigned to said one of said plurality of processing means for generating a fault interrupt signal when access to an unauthorized range of central memory addresses for said one of said plurality of processors is attempted.

3. A communications network adapter comprising:

(a) central random access buffer memory means for storing data at addressable locations, said buffer memory means being partitioned into first and second independently and concurrently operating interleaved banks;

(b) first and second common bus means selectively connectable on an alternating basis to said first and second banks for providing, on a time multiplexed basis, address representing signals and data representing signals to said buffer memory means for storing and data representing signals therein;

(c) first and second read data bus means selectively connectable on an alternating basis to said two banks for carrying data representing signals read out from the memory locations in said buffer memory means specified by said address representing signals carried by said first and second common bus means, each of said first and second common bus means and read data bus means having a finite bandwidth measurable in bits per second;

(d) a plurality of processing means comprising nodes individually coupled to said first and second common buses and to said read data buses, certain ones of said plurality of processing means having input/output means for communication with digital devices connected thereto;

(e) node control means coupled to said first and second common bus means and to said first and second read data bus means, said node control means including memory access control means for synchronously and cyclically connecting alternate ones of said first and second banks to said first and second common bus means and said first and second read data bus means, said node control means further including broadcast means for broadcasting a processor slot I.D. number to each of said plurality of processing means, said broadcast means having programmable read-only memory slot means for storing a plurality of processor I.D. words defining system profiles, addressing means including counter means and preset switching means coupled to said programmable read-only memory for reading out said words defining system profiles as said counter means is advanced, clock signal generating means for applying regularly occurring timing signals to said counter means to sequentially advance said counter means to read out processor slot I.D. words from said programmable read-only memory in a desired sequence, and a processor slot I.D. bus coupling said processor I.D. words from said programmable read-only memory means to said plurality of processing means; and means for selectively assigning access time slots to said plurality of processing means so that the total aggregate bandwidth of said first and second common bus means and read data bus means is allocated to said plurality of processing means on a predetermined, non-conflicting, need basis; and

(f) interrupt control means in said node control means for generating a timed sequence of interrupt identifier codes with interrupt bus means coupling said interrupt control means to said plurality of processing means for transmitting said interrupt identifier codes to each of said plurality of processing means, means in each of said processing means for decoding a different one of said interrupt identifier codes assigned to it for allowing any of the plurality of processing means responding to its interrupt identifier code to place on said interrupt bus means an interrupt request and a processor identifier code for identifying a destination processor to which said interrupt request is directed, and interrupt processor means coupled to said interrupt bus means for receiving said interrupt requests and said processor identifier codes of the destination processors for routing interrupt data to identified ones of said plurality of destination processors in accordance with a predetermined priority assignment.

4. The communications network adapter as in claim 3 wherein said interrupt processor means includes a dedicated storage means for storing at addressable locations route maps containing priority levels, destination and origin information of the interrupting and interrupted ones of said plurality of processing means.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

I. Field of the Invention

This invention relates to an improved type of network communications adapter of the type used to provide high speed digital communications between a multiplicity of computing resources both co-located and geographically dispersed.

II. Discussion of the Prior Art

Prior art network communications adapters generally comprise one or more nodes where such node is the digital interface circuitry required to connect a computing resource, such as a computer a printer, or a mass storage device to the network. The computers may range from a super computer, such as the Cray II, a 64-bit main frame computer to any one of a variety of present-day 16-bit minicomputers. A single node may also accommodate a multiplicity of slower devices, e.g., 8-bit personal computers and terminals. The device/node interface is typically a high-speed parallel interface exemplified by the IBM block multiplexer channel type of input/output.

Within a local geographical area, the communication media preferably comprises one or more multi-drop coaxial serial data links or, alternatively, fiber-optic serial data links. This local connection will hereafter be referred to as the "trunk". A complete communication network may be comprised of a multiplicity of trunks which are linked together by commercial common-carrier communication services, e.g., telephone company T1-type trunk line. The network communication adapter functions to provide a virtual connection between a device coupled to the node and another device on another node to which the first device can present a request to communicate. The functions of a network communications adapter, well understood in the prior art, are as follows.

Data from the adapter's host is received, on demand, in a continuous or intermittent stream of data. This data stream is divided into a sequence of data blocks. To each block of data is added a message header identifying the source and the destination of the data block and following the data block is a message trailer providing error correction information. The data block with its associated header and trailer is called a message packet. By means of controlled contention with other network adapters, the transmitting adapter gains access to the trunk and link network resources required to transmit the message packet to the destination adapter. Message packets from a multiplicity of sources are sent in a time division multiplex manner over a single serial trunk or link network medium. Each network adapter screens all messages present on its trunk(s) and captures only those messages whose address matches the identification number of the adapter node. Each received packet is checked for correctness, the receipt thereof is acknowledged to the sender, the header and trailer are stripped off and the data formatted and presented to the receiving host computer or other digital device coupled to the receiving adapter.

Various techniques to assure data integrity even in the presence of noise and other perturbations on the network are well known in the prior art. In an ideal communication network, all devices would be able to communicate freely with any other devices in the network at their maximum data rate. In a real network, however, the data rate limitations of the trunk establish an upper limit on the number and rate of messages which can be accommodated. Any communication between devices through the network consumes a portion of this aggregate bandwidth regardless of the geographical distance spanned.

It is one object of this invention to provide a multi-node network adapter with a unique architecture which provides for very high data rate communication between the nodes of a given adapter without using the communication trunk, thereby conserving data bandwidth. With this invention, the aggregate data bandwidth of the network adapter can substantially exceed the aggregate bandwidth of the communication trunks employed.

In prior art communication systems, it is typically required that one of the host computers be designated as the network controller to manage or oversee message traffic across the entire network. The program which accomplishes this, the Network Executive, is generally run on a large main frame computer in a multi-tasking environment. For a large high performance network, the network executive can consume a significant fraction of the available computing capability of a relatively expensive main frame computer.

It is thus a further object of this invention to provide a novel communications adapter architecture in which a relatively inexpensive microprocessor can perform the network executive function.

It is a yet further object of this invention to provide a common, high-speed buffer memory which is shared by all of the node processors within a given network communications adapter.

A still further object of this invention is to provide a novel interrupt system which enables efficient coordination between the various node processors to facilitate the high speed flow of data messages.

Large telecommunication systems typically require a diverse range of communication interface hardware. One example might be a communications concentrator where a large number of slower speed devices are combined to appear as a single node on a communications trunk. In this case the channel bandwidth of the communications concentrator must be spread among a large number of interfaces. Another example is a "gateway adapter" which provides a communications bridge between two high-speed communication trunks. In this instance, all of the channel bandwidth is dedicated to a single communications path. In prior art systems, each type of communication device is typically a different product, each specialized to perform its particular function in the total system.

It is thus a yet further object of this invention to provide a network adapter which can be configured out of a common set of modular elements to perform a large number of different communications functions in that once configured, the aggregate channel bandwidth of the adapter can be selectively divided among various users to provide optimal throughput performance.

SUMMARY OF THE INVENTION

The foregoing objects and advantages are achieved by providing a communication network adapter having a random access buffer memory, which is partitioned into first and second independently and concurrently operating interleaved banks, and to which a plurality of processors may individually be coupled via first and second common buses which are selectively connectable, on an alternating basis, to the first and second banks to allow addresses and data to be transferred therebetween. In addition to the random access buffer memory, the network adapter also includes node control circuitry for synchronously and cyclicly connecting the first and second interleaved banks to the communication buses whereby a process slot I.D. number can be broadcast to all of the processors coupled thereto. As such, the available bandwidth of the communication buses is effectively allocated to the plural processors, but only the one of the processors having a matching I.D. number is capable of exchanging data with the buffer memory during a given time interval.

The communication network adapter of the present invention also includes an improved interrupt control arrangement in which interrupt identifier codes are generated in a timed sequence and transmitted over a separate interrupt bus to the plural processors. The processors, then, include circuitry for responding to an interrupt identifier code assigned to that given processor, allowing that processor to present an interrupt request and a processor identifier code identifying a particular processor which is to receive that request. Once an interrupt processor connected to the interrupt bus receives the interrupt request and an I.D. code for the destination processor, interrupt data is transmitted to the designated destination processor in accordance with an established priority assignment.

These and other objects and advantages of the invention will become apparent to those skilled in the art from the following detailed description of a preferred embodiment, especially when considered in conjunction with the accompanying drawings in which like numerals in the several views refer to corresponding parts.

DESCRIPTION OF THE DRAWINGS

FIG. 1 is a system block diagram of the network communications adapter of the present invention;

FIG. 2a and FIG. 2b are waveforms illustrating the timing signals required for operation in the system of FIG. 1;

FIG. 3 is a more detailed block diagram of the node control circuitry in the block diagram of FIG. 1;

FIGS. 4a and 4b, when arranged as in FIG. 4 is a more detailed block diagram of the central memory portion of the block diagram of FIG. 1;

FIG. 5 is a detailed block diagram of the 32-bit nucleus microprocessor;

FIGS. 6a through 6d, when arranged as in FIG. 6; is a detailed block diagram of the 16-bit microcontroller used in the communications network adapter of FIG. 1;

FIGS. 7a and 7b, when arranged as in FIG. 7 is a block diagram representation of the DMA circuitry;

FIG. 8 is a detailed block diagram of the DMA controller used in the direct memory access circuitry of FIG. 7;

FIG. 9; is a detailed block diagram of the Bank 0 storage protection circuitry of the node control of FIG. 3;

FIG. 10 shows a detailed block diagram of the access control circuitry portion of the node control of FIG. 3;

FIGS. 11a and 11b when arranged as in FIG. 11,; is a detailed block diagram representation of the interrupt control of FIG. 3;

FIGS. 12a-1 and 12a-2 when arranged as shown in FIG. 12 show a detailed block diagram of the Interrupt Processor of FIG. 5; and

FIG. 13 depicts the organization of the data linkage structure utilized.

DESCRIPTION OF THE PREFERRED EMBODIMENT

NETWORK ADAPTER SYSTEM

FIG. 1 shows a system level block diagram of the network adapter of the present invention. The hub of the adapter is Central Memory 100, which preferably may be a high speed static random access memory (SRAM) organized into two interleaved banks identified as Bank 0 and Bank 1. Communication between Central Memory 100 and all processors within the adapter is via buses 102, 104, 106 and 108. The common bus 102 will be referred to as the A bus and the common bus 104 will be referred to as the B bus. Each contains 24 lines which are time multiplexed to provide either a 24-bit address or 16-bits of write data to the central memory 100. The A "read" bus 106 and B "read" bus 108 each provide 16 bits of read data from the central memory 100. The state of the Bank/Bus select line 138 determines the connection of the A or B buses to the Central Memory 100. For example, when line 138 is low, the A buses 102 and 106 are connected to Bank 0 while the B buses 104 and 108 are connected to Bank 1. When line 138 is high, this connection is reversed.

The dual 16-bit architecture provides efficient coupling between the Central Memory 100 and a mix of 32-bit microprocessors, such as identified as numerals 110 and 112, and 16k -bit microcontrollers as at 114, 116 and 118. Microprocessors 110 and 112, along with microcontrollers 114 through 118, provide a typical example of how the network adapter of the present invention can be configured. This arrangement is to be considered illustrative only, and not limitive. Actually, the architecture accommodates any mix of processors, typically up to a total of 16. Each network has a 32-bit microprocessor, such as 110, dedicated to the internal control of the network adapter. This dedicated processor, hereafter referred to as the "Nucleus Processor", manages the routing of message traffic through the adapter, and particularly, manages the dynamic, page-by-page assignment of central memory space. Additional 32-bit microprocessors, such as that identified by 112, may be optionally added to perform specific application programs within the adapter, e.g., the aforementioned network executive function.

The 32-bit microprocessor functioning as the Control Processor has a dual RS 232-C serial I/O port 120 and 122 to which various peripheral digital devices may be connected in a conventional manner. Processors 114 through 118 may preferably be 16-bit high-speed bit slice microcontrollers in which the architecture and the firmware has been carefully tailored to provide efficient high speed I/O handling functions. In explaining one system configuration, processor 114 is assumed to be a Node Processor which is dedicated to a single, large-scale, high-speed digital computing device, here designated as "Host 1" Communication is via a 16-bit, bi-directional, high-speed parallel channel on bus 124. Processor 116 performs the same function for a second device designated as "Host 2", via parallel bus 126. Alternatively, a single processor might be configured to interface to a multiplicity of lower speed devices, such as printers or video displays. The 16-bit processor 118 provides a way of connecting the network adapter of the present invention to a network by way of a serial trunk line 128.

Processors 110 and 112 are shown as communicating with Central Memory 100 in a 32-bit mode by virtue of being concurrently connected to both the A and B buses. Each 32-bit transfer generally involves 16 bits from Bank 0 and 16 bits from Bank 1. Processors 114 and 118 are configured to communicate with Central Memory 100 in a 16k -bit mode via the A common bus while processor 116 is shown as communicating with Central Memory 100, via the B common bus.

An important feature of this network adapter architecture is that processors 114 and 116 may be simultaneously serviced during a given central memory cycle. Further, the dual bank architecture employed enables a 16-bit processor to write a contiguous block of data in Central Memory 100 which can be read contiguously by a 32-bit processor in spite of the disparity of word length. Similarly, data contiguously written in a 32-bit mode by either processors 110 or 112 can be contiguously read in a 16-bit mode by processors 114 through 118.

To maintain the highest possible data rate in and out of Central Memory 100, all data transfers are synchronous and under the control of Node Control logic 130. At the beginning of each memory cycle, Node Control 130 broadcasts the processor slot I.D. number of the processor designated to have access to either the A or B bus via bus 132. It contains two 4-bit processor slot I.D. codes, one associated with the A bus and the other associated with the B bus. The processor I.D. bus 132 also contains the state of Bank/Bus select line 138. At this point, it is necessary to understand that each of the processors has an established processor I.D. code which is determined by the setting of manual DIP switches within the processor and which are set at the time of system installation. When the processor slot I.D. codes broadcasted on bus 132 match a given processor I.D. code and address bit 01 corresponds to the state of the Bank/Bus select line 138, that processor may execute a memory transfer operation.

Each memory cycle has two phases. During the first phase, the enabled processor puts the memory address on the common bus. More particularly, thirty-two bit processors put identical addresses on both the A and B common buses 102 and 104 while 16-bit processors access only their dedicated common bus. During the second phase of the memory cycle, data from the addressed memory cell is read on either the A read bus, B read bus or concurrently on both A and B buses. Alternatively, in the event of a write cycle, the write data is placed on the respective common bus.

With this arrangement, both processors 114 and 116, or, alternatively, processors 116 and 118 might operate concurrently during a given memory cycle over their respective A and B buses. To accomplish this, Node Control 130 places the processor slot I.D. code associated with processor 114 on the A section of the slot processor I.D. bus and places the processor I.D. code associated with the processor 116 on the B portion of the slot processor bus.

Storage protection of Central Memory 100 is enforced by Node Control 130, such that each processor may only write into the pages of memory to which it has been given key access privilege. Node Control 130 maintains a table of processor access privilege, by page, in a RAM memory. This memory is initialized upon application of power and may be subsequently modified by the Nucleus Processor 110. Each processor and each DMA has a set of DIP switches which provide its key identity. Generally, each processor and DMA has its own processor I.D. but will share a common key I.D. when associated with one another. When enabled, 32-bit processors put their key I.D. code on both the A and B sections of key bus 134 while 16-bit processors place their key I.D. code on only that section of the key bus corresponding to the particular memory bus to which they are attached. If any processor attempts to write into a page of central memory 100 which is not assigned the identical A and/or B keys, this condition is detected by Node Control 130, which then generates a "memory fault" interrupt to Nucleus Processor 110, via the interrupt bus 136.

Interrupt bus 136 is a polled, bi-directional bus under the control of Node Control 130. When polled, each processor may direct a multi-level interrupt to any other processor in the adapter. End-to-end response time for any interrupt is guaranteed to be less than 5.2 microseconds providing an efficient, high-speed mechanism for coordinating the interoperation of the other network adapter processors.

MESSAGE FLOW

To help provide a context for the detailed description of the network adapter which will follow, it is instructive next to consider the overall operation of the system and, in particular, the manner in which data or messages flow through the system.

A message is passed from Host 1 to another device on serial trunk 128 in the following manner. Nucleus Processor 110 assigns buffer space for the message in the Central Memory 100. Microcontroller 114 contains direct memory access logic to transfer the incoming message from Host 1 to Central Memory 100 in the assigned space. Concurrently microcontroller 118 transfers data from the buffer space of Central Memory 100 to the serial trunk 128 using identical DMA hardware. Upon receipt of the command from Host 1 to transmit a message, microcontroller 114 interrupts Nucleus Processor 110 which assigns buffer space in Central Memory 100 and sets the storage protect table in Node Control 130 to enable write access by microcontroller 114. Nucleus Processor determines, by means of a routing table, which microcontroller will be the destination or route of the message. The designated microcontroller is interrupted and provided with a pointer to the buffer area of Central Memory 100 where the outbound message is assembled. The software and hardware control structure is arranged to enable a large number of concurrent messages to be processed. As already indicated, a network adapter in accordance with the present invention, may be comprised of typically up to 16 processors where each processor may handle a multiplicity of concurrent or interleaved messages. Limitation to this number, however, should not be inferred. A detailed description of how message flow is controlled is provided in a following section titled "Software Control Structure".

SYSTEM TIMING

FIGS. 2A and 2B show typical timing signals required for operation of the network adapter. The source of all adapter timing is a single 50 MHz crystal controlled oscillator in node Control 130. This signal is broadcast to Central Memory 100 and all processors as the 50 MHz clock 150. Node Control 130 also broadcasts a second signal, the time 0 signal, 152. Care must be taken in the fanout and distribution of these signals to maintain an acceptable range of delay times, T1 and T2, and to further minimize the skew between clock signals arriving at different points in the system. An acceptable variation in the delay time for times T1 and T2 is from 4 nanoseconds minimum to 16 nanoseconds maximum. From the signals 150 and 152, each section derives four other clock signals, identified in FIG. 2A as 154-160, which will be referred to hereafter as the "T 20" clock, "T 40" clock, "T 80" clock and the "T 160" clock, respectively. Care must also be exercised in the fanout and distribution of these last mentioned clock signals to minimize skew relative to the 50 MHz clock so as to assure reliable synchronous operation.

The T 20 clock and T 40 clock are used to derive the central memory timing signals shown in FIG. 2B. The "Access Request" signal 184 controls the initiation of a memory cycle. Signal 186 shows the typical waveforms of the higher order bits 16 through 23 of the common bus. The unshaded region 192 shows the period of the memory cycle in which the address information is valid. Similarly, signal 188 shows typical waveforms on the lower order bits 0-15 on the same bus. It should be recalled that 16 bits of data are time multiplexed with the lower 16 bits of the address. Thus, unshaded region 194 shows the time during which the address info