CA1289673C - Network communications adapter - Google Patents

Network communications adapter

Info

Publication number
CA1289673C
CA1289673C CA000544513A CA544513A CA1289673C CA 1289673 C CA1289673 C CA 1289673C CA 000544513 A CA000544513 A CA 000544513A CA 544513 A CA544513 A CA 544513A CA 1289673 C CA1289673 C CA 1289673C
Authority
CA
Canada
Prior art keywords
bit
memory
interrupt
read
bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
CA000544513A
Other languages
French (fr)
Inventor
Donald J. Humphrey
James P. Hughes
Wayne A. Peterson
Wayne R. Roiger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Network Systems Corp
Original Assignee
Network Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Network Systems Corp filed Critical Network Systems Corp
Application granted granted Critical
Publication of CA1289673C publication Critical patent/CA1289673C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1466Key-lock mechanism
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • G06F13/26Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control

Abstract

NETWORK COMMUNICATIONS ADAPTER
ABSTRACT OF THE DISCLOSURE
A network communications adapter for interconnecting 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 provided 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 is 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 provide input/output interfaces for host computers, digital peripheral devices, communications trunks or buses, or to wireless links for more remote communication.

Description

~2~ 3 NETWORK COMMUN I CATI ONS ADAPTER
EIACKGROUND OF THE INVENTION
I. Field o~ the Invention: Thi~ invention r81~!1te6 to ~n improved type of nQtws~rk comn~unicatioJI~ adapt~r o~ tha ltypa~ u~Qd 5 to provide high ~peed dig.ital cummun:ications bQtw~6~n a multiplicity o~ computing r~RourcQ~ both co-loc~ed and geographic:ally disp~r~ed.
II . ~iscu~ion o~ the Pr~ or Art: Pr~or a~t network communication~ ~dapter~ genQrally co~prioo ono or lDor~ node~
10 where 6uch node iB the digital inter~fice circuitry re~ ad to connec~ co~pu~iny r~our;~ uch ~ a computlar a print~r, or a ~a~ torag~ dss vic~s tc> th~ network . Th~ compu~r~ r~ay range Prom 21 ~up~r c:omput~r, ~tch ~ tbe Cray II, a 64-blt main ~rame computer to any on~ o~ a variety of- pr~n~-day 16-bit min1-15 computerfi. A single node ~ay alE;o accommodate a multiplicity of slower devices, e.g., 8-bit personal computer~ and terminals.
The device/no~e int~r~ace iB typically a high~speed parallel interface exempli~ied by the I~M bl~ck multiplexer channel type Df input/output.
2 0 Within a 1OCA1 geographical ar~a, t~e communic~tlc~n media ; pre~erably comprise~ one or more mult~-drop coaxial ~erial data link~ or, alternatively, ~iber-optic ~erial data link~. Thi6 local connection will heraafter be referrad to a~ the "trunk". A
aomplet~ co~munication network ~ay be co~prloed o~ a multipllclty of trunks w~ich are linked together by commercial com~on-carrier communication ~ervices, e.g., telephone company Tl-type trunk line. The network communica~ion adapter runctiOn~ to provide a virt.ual connection ~etween a device coupled ~o th~ node and another deYice on another node to which the ~lr6t d~vice c~n present a re~ue~t to communicate. The ~unctions o~ a network k ~2~ 3 communlc~tion~ ad~pter, wel 1 und3r~tood in th~ prlor ~rt, ~r e as f~:>llow~ .
Data ~rom the a~apter'~ hof~t i8 rec~lv~Dd, on d~m~nd, in continuous or inter~ittent strnAm of data. Thil3 data stream iB
5 divided into a BeqUence of data blocks. To each block o~ data is added a message header identi~ying the ~ourc~ and the de~tination of the data block and following ths dat~ blo¢k ~ A me38age traller provlding error correction inrormntlc~n. Tho dAta block with lt~ an~ociatod he~d~r ~nd trail~r 1~ c~ d ~ m0~age 10 pack~t. l~y ~n~ o~ controlled contontlon w1 th oth~r notwork ~d~pt~rE~, the tran~mittlng adapter galn~ acc~a~ to t~6 tnmk ~nd link network re~iources required to tran6mit the ~e~zage packet to lthe d~tination zldapter . ~e~sage packets from ~ ~nultipl icity o~
source~ ~re sent in a ~o divi~on ~ault~pl~ n~r over a 15 ~ingle ~erial trunk or link network mediu~. Each n~twor2c adapter ~cra~n~ all mes~ges pr~sent on itB tr~2nk(s) ~nd c~pture~ only those m~e~e~ who~e addre~s m~ch~36 the identirlcation num~er o~
th~ adapt~r n~ds. Each r~ceived p~cknt 1~ checked for correctness, the receipt thereof 1~ ac~cnowl3d~ed to ~ en~r, 20 thQ he~ld~r ~nd trailer aro otripped o:L~r and th~ d~ta ~ormatted and pre~ented t~ the receiving hc>st computer or other dlgital device coupled t~ tha r~ceiving adapter.
Variou~ technique~ to a~ure dat~ integrity even in the pres~nc~ o~ nols~ ~nd other p~rturb~tionll on l:he network elr~ well 25 known ~n the prior art. In an ideal co~aunlcation network, ~11 device~ would he able to conmunicate rr~ely with ~ny other devlc~ in th~ network at ltheir maximum data rat0. In ~ real n~twork, howover, the data rate l~itations o~ th~ trunk e~'cabli~h an uppsr limit on th~ number and r~te o~ me~ages which 3 0 can be accom~odaltod . Any communication between device~ through ' , ~2~3~673 the network con~umes a portlon of this aggregate bandwidth regard1e~s of the geographical di6tance spanned.
It i~ one object of this invention to provide a multi-node network adap~er with a unlque architecture which provid~
for very high data rate communication between the nodo~ o~ A
given adapter without using the communication trunk, thereby conserving data bandwidth. With this invention, the aggreqata data bandwidth o~ the network adapter c~n sub~tantially exc~ed the aggregate bandwidth o~ the communication trunks employed.
In prior art communication sys~ems, lt i~ typically re~uired that one o~ ~he ho~t compu~ers b~ de~lgnated a~ the network controller to man~ge or overaee me~ag~ tr~ic acro~e th~ ~tlre n~twor~. The program which accompliohs~ thia, th3 ~ Network EXQCUtiVe~ i~ g~nerally run on a larg~ ~ain ~rame -~ 15 comput~r in a mu1ti-ta~k~ng environment. For ~ larg~ h~gh ~ performance network, the network exacutiva can con~um~ a ; signi~icant fration of th~ available computing capability 4~ a r~latively expensive main ~rame computer.
~t i~ thua a ~ur~her object oP thi~ invention to provld~
a novel communications adapter architecture in which a rel~tively inexpensive microproce~or can perform the network ex~cuti~e ~unction.
It is a yet further object oP thi~ invention to proYide a ~ommon, high-~peed bu~fer memory which is shared by all o~ the node prOCe580r8 within a qiven network commun$cation~ adapter.
A ~till ~urther object o~ this invention is to prov~de a novel interrupt ~ystem which enables ~f~icient coordination between the va~iou~ node proce~ors to ~acilitat~ tho high 3pe0d flow of data ~eo~ageY.

~: -3 :; ' "

L.arge te:l.econ~m~ln:iccl-tie)rl systems typica.lly require a di~erse range o~f` con~ urlica-tion inlerface hardware. One e~;ample might be a commurlica-tionci concentralor w:here a large numbe.r oE
slower speecl devices are combi.necl to a.ppear as a single node on a commurlieati.ons trunk. In -thi.s case -the channel. bandwiclth of -the comm~lni.cations concentra-tor rnust be spread among a large number of interfaces. Another e~ample is a "gateway adapter" which provides a communica-tions bridge between -two high-speed communication trunks. In -thi.s ins-tance, all O e the channel bandWi(lth iS cled;.cuted to a si.ngle communications path. In prior art systems, eaeh type o~ commun.ication dev:ice is -typically a d~ ferent product, each speciali~ed to perform its partic~llar func-tion in -the -total system.
I-t is thus a yet further objec-t of this inven-tion -to provlde a network adapter which can be oonfigured out of a common set of modular elements to per~orm a large number o~ diEEerent commun;.cation.s -Eunctions in that once configured, the aggregate channel bandwidth of the adapter can be selec-tively divided among various users to provide optimal throughpu-t perEor~ance.
these and other obJeets and ad~antages of -the inventio.n will beeome apparent to those skilled in the art -Erom -the fol.lgwing deta:iled description o:E a preEerred ernbodiment, espeeially when considered in conjunetion with the aceompanying drawin~s in which like n~lmerals in the several views .re~er to correæponding par-ts.
SU~MMARY_OF THE_INV r~ON
The :~or-egoirlg objeets and advantages are aehieved by providing a eommun:ieatlons network adapter havi.ng a random aecess buf:~er memory, whieh :is partitioned int.o first and seeond ~``~ ' .

: ~. ~ , , :~:

lZ1~6'~3 i.ndependently and concu.~:rent:L~ opera-ting in-terl.ea~ed banks, and to which a plurality of processor may i.ndividuall~ be collpled via fi:rs-t and sec:oncl co~lmon buse~ whi.ch are selecti.vely connectable, on an al-ternati.ng basi.s, to -the fl}st and second banks -t;o al~.ow addresses and da-ta to be transferred therebetween.
Tn adcli.t.ion to the random access buffer memory, -the ne-twork adapter also includes node control circuitry for synchronously and cyclicly connectirlg the first and second interleaved banks to -the commun;.cation buses whereby a proceC,sor slot I.D. number can be broadcast to all o:t the processor coupled -thereto. As such, the ava:ilab.le bandwidth of -the co~mun.ications buses is effectively allocated -to the plLIral processors, but only the one of the processors ha~ing a matching I.D. number is capable of e~changing data with the buffer memory during a glven time , ~ interYal.
.~ The communica-tions ne-twork adapter of the present invent.ion also includes an lmproved interrupt control arrangement in which interrup-t 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, a~lowing that proeessor to present an ~nter.rupt request and a processor identif:ier code identifying a particular : processor which is to recei.ve that request. Once an inter-rupt pr-ocessor connected to the :interrupt bus :receives the interrupt .request and an I.D. code for the destination pr-ocessor, interrupt data .is -transmitted to the designated destination processor in ~.
~: accordance with an estab:L:ished priority assignment.

:: D~SCRIPTION OF THE DRAWINGS .

~; Figure 1 is a sys*em bl.ock diagram of the network communications adapter of the present inventiorl;

4a-I
~:, .
'~ . .,. . ~ . ,.
~ .
, i73 Figure~^~2a and Figure 2b are waveforms illustrating the timing signals required for operation in the system o~ Figure l;
Figure 3 is a more detailed block diagram of the node control circuitry in the block diagram of Figure 1;
Figures 4a and 4b when arranged as in Figure 4 is a more detailed block diagram of the central memory portion of the block diagram of Figure l;
Figure 5 is a detailed block diagram of the 32~bit nucleus microprocessor;
.0 Figures 6a through 6d when arranged as in Figure 6 is a detailed block diagram of the 16-bit microcontroller used in the communications network adapter of Figure 1;
Figures 7a and 7b when arranged a~ shown in Figure 7 is a block diagram representation of the DMA circuitry;
Figure 8 is a detailed block diagram of the DMA
controller used in the direct memory access circuitry of Figure 7;
Figure 9 is a detailed block diagram of the Bank 0 storage protection c.ircuitry of the node control of Figure 3;
Figure 10 shows a detailed block diagram of the access control circuitry portion of the node control of Figure 3;
Figures lla and llb when arranged as in Figure 11 is a detailed block diagram representation of the interrupt control of Figure 3;
Fiqures 12a-1, 12a-2 and 12b when arranged as shown in Figure 12 ~how a detailed block diagram of the Interrupt Processor of Figure 5; and Figure 13 depicts the organization of the data linkage structure utilized.
DESCRIPTION OF THE PREFERRED EMBODIMENT
NETWORK ADAPTER SYSTEM
Figure 1 shows a system level block diagram of the network adapter of the present invention. The hub of the adapter 12~96~73 i~ C~ntral Memory 100, wh$ch preferably may bo a h~gh ~pe~d ~tatic random acces~ memory (SRAMl organizsd into two lnterl~aved b~nks identified as ~ank o and BanX 1. Communication between Central Memory loo and all proces~or~ within the adapt~r i~ via buse6 102, 104, 106 and 108. T~e common bu~ 102 will be referred to a~; the A ~u~ and th~ com~non bus 104 will be referrQd to ali; the ~ bus. Each con~ains 24 lines Which are ~im~ mUltipl~xQd to provide either a 24~ bit addr~s~3 or 16-bi~E~ of Write dat~ to 'che centrrll ~elmory 100. The ~: ~rQad~ bus 106 ~nd E~ ~read~ bus 108 10 Qac~l provide 16 bits of read data fr~m the contrz~l ~omory 100.
The ~t~t~ oP the Bzlnk/E~ua D~ ¢t l~n6~ 138 dotor~inl~s tl e connsction o~ the A or 13 ~use~ to th-3 C~ntral M~ory 100. For ex~mple, when line 138 ~s low, the A bu~e~ 102 ~nd 106 ~r~
connected to ~ank 0 while the ~ buse~ 104 and 108 era connected to ~an~ 1. When line 138 i~ high, this connection i~ rever6ed.
The dual 16-bit architecture provid~s ef~icient coupling betwa~n the Central Me~ory loo and a mix of 32-bit microproces~or6t such as identified as numeral~ 110 and l:L2, ~nd 16-bit ~ crocontrollerB a5 at 114, 116 and 118 . Microproce~setrs 110 and 112, along with microcontroller~ 114 throush 118, provide a typical example of how ~he network adapter of the pre~ent ~nventlon can be conf igured ~ Thi~ nrran~Qment i~ to be considered illuetrative only, and not limit~va, Actually, the architecture ~ccommodates any mix of proceffeor~, typically up to a total of 16. Each network has a 32-bit microprocessor, ~uch as 110, dedicated to the internal control of the network adapter.
This dedlcated processor, hereafter referred to a~ the ~Nucleus Proce~sor", manage~ the routing of me~ e tra~f ic through the adap'cer, and particularly, manages the dynamic, page~by-page a6signment of central memory E;pace. Additional 2-bit . ~Z ~ 6~3 ~icroprocs~ors, ~uch a~ that identi~ied by 112, may b~
optionally add~d to p~rform ~pecific applicatlon progr~m~ wi~hin the ~dapter, e.g., the aforementioned network executive function.
The 32-bit microproces~or functioning a~ the Control Proce~or ha~ a dual RS 232 c 6erial I/0 port 120 and 122 to which various peripheral digital devices may b~ connect~d in a convent~ona~ manner. Proc~ors 114 through 118 may preferably be 16-bit hiyh-~peed bit ~11ce ~1crocontrollQra in which th~
~rchitecture and the firmwara has b~en c~refully tailor~d to lo provid~ ~f~ici~nt hlg~ ~pe~ I/0 handl~ng ~unctlon~. In explaining one aystsm con~iguration, proce~eor 114 i~ um~d to be ~ Node ~roc~s~or which i8 dedicated tQ a B1 ngle, large-BCal~, h~gh-~peed digital computiny device w~ich i8 desi~nated h~re a~
~Host 1~. Communication i8 via a 16-bit, bi-dir~ctional, high-speed parallel channel on bus 124. Proce~or 116 perform~ thesame Punction ~or a ~econd device d~signatsd ~ ~Host 2~, via parallel bu~ ;126. Alternatively, a ~ingle proc~ss~r ~ight be configur~d to int~rface to a multiplicity of low~r ~peQd d~vica~, such ~ printer~ or video di~plays. The 16 bit proce~or 11~
provide~ a way of connecting the network adapter of the pre~ant ~nventi~n tQ a network by way of a serial trunk lin~ 128.
Proce~or~ 110 ~nd 112 are ~hown a~ aommunicating with C~ntral Memory 100 in a 32-bit mod~ by virtu~ o~ being concurrently connected to both the A and ~ bu~es. Each 32-bit tran~er generally involve~ 1~ bits from Bank 0 3nd 16 bit6 from Bank 1. Proce~ors 1~4 and 118 ar~ configur~d to communicate w~th Central Memory 100 in a 16-bit mode via the A common bus while proce~sor 116 i~ snown a6 communicating wit~ Cantra~ Memory lOo, via the ~ common bus.

An important feature of this network adapt~r arch~tecture i~ that proces~or~ 114 and 116 ~ay be simult~neously ~erviced during a given central ~emory cycle. Further, th~ duAl bank architecture employed enable~ a 16 bit proc~or to writs a contiguou~ block of data in Central Memory 100 which can be read contiguously by a 32-bit proc2~sor in ~pit~ o~ th~ di~p~rlty of word length. Similarly, data contlguou~ly written in a 32-bit mode by either processor~ 110 or 112 can be contiguou~ly read in a 16-bit mode by procQs~or~ 114 through llB.
To ~ain~ain ~he highe~ po~ible da~ ra~e in and ou~ of Cen~ral Memory 100, ~ ata trDns~ers ar~ ~ynchronous and under the control of Node Control logic 130. At th~ bsginning o~ each m~ory cycle, Node Co~trol 130 broadcasts the pro~assor ~lot I.D.
number of the proce~ or de~ignated to have accsss to ~ith~r thQ A
or B bu~ vla bus 132. It contain~ two 4-bit proc~0~0r ~lot I.D.
code~, one ~soci~ted with the A bus And th~ ot~er ~ssociated with the B bu~. The processor I.D. bus 132 al80 conta~n~ the state of ~ank/~u~ ~el3ct lin~ 138. At thi~ point, lt i~
n~ce~ary to understand that ~ach of th~ proc~oro hao an astabli6h~d proce~60r I.D. code which is dat~rmined ky thQ
setting of manual DIP switche~ within the proce~or and which are ~e~ at the tim~ o~ system installation. When the proce~or ~lot I.D~ code~ broadcasted on ~U5 132 match a given proc~or I.D.
oode ~nd addre~a bit 01 corre~ponds to the ~tate of the ~nk/~us ~el~ct line 13~l that processor may execut~ a m~mory tran~fer operation.
Each ~mory cycle ha~ two phaa~. During th~ rlr~t pha~e, the enabled processor put~ the ~mory ~r~ss on the common bus. More particularly, thirty-two bit proc~s~or~ put id~ntical addres~es on both the A and B common bu~e~ 102 and 104 while 16-bit proces~ors ~ccess only their d~dicated common bus.
During th~ second pha~e of thQ memory cycl6~, data from the ~ddr~0~ed memory cell i~ re~d on elt~0r th~ A r~ad bua, E3 read bu~ or concurrently on both A z~nd B bu~e~. Al~rnativ~31y, in the 5 ~vent of a write cycle, the wrlt~ dat~ 1~ plhaed on the respective collunon bu~.
With t~lis arrangem~nt, both proce~sore 114 an~ 116, or, alt~rnatively, processor~i ~16 and ~lB might oper~te concurrently during ~ given memory cycl~ over their reep~ctive ~ and B buse6.
10 To as:compli~h thiEI~ Node Con~rol 130 pl21c~ the processor ~lo~
1~ D. code associ~tQd with proce660r 114 on the~ A ~ection o~ the ~lot proc~6sor I . D. bus and places the proce~or I . D. code a~ociat~d wi~h the proce~sor 116 on the 3B port~on o~ the ~lat proce~or bul3.
~torag~ protection o~ Contr~l ~emory 100 1B on~orc~d by Nud~ ontrol 13 0, ~uch ~hat ~aacll proc~ or may Gn1Y write into thQ pag~s o~ memory to which lt ha~ bo~an glv0n koy flCCl~lllB
privilege. Node Control 130 mainthins a table of proca~or accss~ privilege, by page, in a ~ ~emory. Thi~ memory iB
initialized upon application of power and may b2 ~ub~equ~ntly ~odi~i~d by th~ Nucl~us Proc~6~0r 110. Each procQ~or 2nd each DMA ha~ a set of DIP ~witche~ which providQ it~ key id~ntity.
Generally, each prooe~sor and D~A ha~ lts own proce~or I.D. but will sh~re ~ co~mon key I.D. when ~oci~t0d with one another.
Whsn ~nabl0d, 32-bi~ proceasor~ put their k~y X.D. cod~ on both tb~ ~ ~nd ~ ~ctions of k~y bus 134 while 16-blt proce~aor~ plac~
~heir k~y I.D. code on only that ~ection o~ th2 k~y bus corr~ponding to th~ particular memory bu~ to which they are attached. If any proces~or attempts to wr~te into a page of central ~emory 100 which i~ not asslgned the id~ntical A and/or B

~2~g~3 key~, thi~ condition i6 detected by Node Control 130, which then gener~t~ a ~memory fault~ interrupt to Nucleus Proce~or 110, via the interrupt bua 136.
Interrupt bus 136 i~ a polled, bi-directional bu~ under the control of Nods Control 130. Wh~n polled, each proco~or ~ay dir~ct a multi-l~vel interrupt to any oth~r proooo~or in the ~d~pter. End-to-end respon~ tim~ for nny int~rrupt i~
guarant~ed to be 1Q8~ than 5.2 micros~cond~ providing an a~ici~nt, high-apeed mechani~m ~or coordln~ting the lnt~r-op~ration of tho other network ~dapter procs~or~.ME~;SAGE FL~OW
~ help provid~ a context ~or th~ det~ d d~cript~on o~
: the network adapter which will follow, lt iB ~nstructlve to con~ider the overall operation of the ~y~tom and, in p~rticul~r, the manner in which data or mQs~ages flow ~hrough th~ ~y~tem.
A mes~age is pas~ed from Ho~t l to ~nother devlce on serial trunk 128 in the following manner. Nucleue Proce~sor llO
a5~ign6 buffer apace for the message in the Central Memory 100.
Microcontroller 114 csnta~nl3 direct me~ory ~cces~ logic to 20 tran~fer the incoming me~3sage from Host 1 tD Central Memory 100 in the a~i~ign~d space. Concurrently microcontroller 118 tran~fers data ~rom the bu~er ~pace o~ Centr~ M~mory 100 to the serial trunk 128 u~ing identical DMA hardware. Upon rec~pt of ~he comm~nd ~ro~ Host 1 to tran~m~t a maseage, ~crocontrollor 114 interrupt~ Nu¢leus Proce6sor 110 which as~lgns buf~er 3pzlce ln Central Memory 100 and ~ets the stor~ge protect table in Node Control 130 to enable write acce~s by microcontroller 114.
Nucleus Proce~or determine~, by ~ean~ o~ a rou~ing table, whic~
~lcrocontroller will be the de6tina~isn or route Or the De~age.
The deslgnated microcontroller i8 interrupted and provided wlth a ~10--~2~ 3 pointer to the bu~fer ar~a of Central M~mory lO0 wher~ the O~tbOllnd ~e~age 1B ~s~embled. ~he ~oftware ~nd hardware control structure i~ Arranged to ~nable a larg~ nu~ber o~ concurrent mes~ag~ to b~ procQs~Qd. A~ alr~ady indicated, a network adapter in ~ccordance wlth t~e pro~ent invsntlon, ~ay be compris~d o~ typically up to 16 proces~oru wher~ ~ac~ proces~or may handle a ~ultipliclty o~ ~oncurr~nt or interleaved ~e~æage~.
Lim~t~tion to th~ number, howaver, ~ould not be in~arred. A
d~tailed de~cription of how ~e~sage flow i~ controllod i~
lo provided in a following ~ction titled ~Softwar~ Control Structure~.

~ igure~ 2A and 2~ ~how typical ti~i~g ~ignal~ r~quir~d fcr operation of the network adapter. Th~ ~ourc~ o~ all ~dapter 15 ~iming i~ a slngle 50 MHz crystal con~rolled oscillator in nod~
Control 130. Thi~ Bignal iB broadcast to Central ~e~ory loo and all proces~or6 as the 50 MHz clock 150. Nod~ Control 130 also brcadca~ts a second ~ignal, the time o ~ignal, 152. Car~ mu~t be t~en in the ~anout and æistribution of these ~ignals to maintain 20 an accspta~le r~nqe of delay time~, Tl ~nd T2, ~d to further mlnimi~e the ~kew between clock 6ig~al~ ~rrlving ~t di~ferent point~ ln th~ ~y~t~m. An acceptable varlation in the delay time for tl~a~ Tl and T2 is fro~ 4 nano~econds ~inimum to 16 nanoeaconds ~aximum. ~rom th~ ~ignals 150 and 15~, Qach sQction derive~ ~our oth~r clock ~ignal~, identi~i~d ln Figure 2A a~
154-160, which will be re~erred to herea~ter a~ the ~T 20~ clock, ~T 40~ clock, ~T 80~ clock and the ~T 160~ clock, re~pectively~
Care ~ust also be exerci0ed in the ranout and di~trlbution of these l~t m~ntioned clock ~ignals to mlnimize ~kew rel~tlve to 30 the 50 M~z clock ~o as to a~sure reliable ~ynchr~nous operation.

The T 20 cl~ck ~nd T ~0 clock ar~ u~d t~ d~rivs the centr~l ~emory timing ~ignal~ ~hown in Figure 2B. Th~ ~cces~
Raque~t~ 6ignal 1~4 contr~l~ the initiation of a memory cycle.
Signal 186 ~hows the typical waveform6 of the higl~er order bit~
5 16 through 23 of the common bu6. The unshi~d~d region 192 ~howfi the period of the memory CyclQ in which th~ addreEi~s in~ormation i~ valid. Similarly, lalgnal 18B shows typ:Lc~ll wav~forDI~ on the low~r order bitH o-l 5 on th~ s~me bu~. It ~hould b~ rac~ d that 16 bit~ o~ dat~ are tl~n~ multipl~xQd w:Lt~ th~ low~sr 16 bit~
10 o~ th~ ~ddre~s. TAus, unshaded r~gion 19q 0howl~ tho tlmo during whic:h th~ addr~s lnfonnat~ on i~ lid whil~ un~h~d~d r~Q~on 196 shows the ti~ thAt writ~ data lnîor~tion i0 valid. ~v~fo:rm 190 ~how~ the typic~l ~ignal~ appearing on tha r~d data bu~. T~
unsAaded region 198 indicate6 valid rezd ~ta ~or the Dlemory l$ addr2~s identi~ied during th~ ~ddres~ period indicated by region 194. Typical timing which ~hould lDe maintz~in~d rel;~t~ve ts> the T 40 clock tc~ ura r~llable operation i~ $hown in Tabl~a I
below .
.

2 0 MINIMUM MAXI~UN
R~QUEST on time ~t~r T 40 CLOCK ~ 26 AD~E~ESS on t illlQ ~ r T 4 0 CLOCK 6 2 6 COMMON BUS on time ~ft~r T 40 CI.OCK 6 26 READ DAT~ on t~me a~ter ~OT T 40 CLOCK 4 26 REQUEST o~ time ~fore T 40 CLOCK ~0 0 ~DDR:~SS oP~ ~im6~ before T 40 CLOCK 20 0 COMMON BUS o~ time 3~efor~3 T 40 CLOCK 20 0 P~EAI) DATA off tim~ after T 40 CLOCR 4 COMMQN BUS ~pl it tims a~ter 3 0 NOT T 4 0 CLOCK o 14 , CHANNEL BANDWIDTH ALLOCATION
Since the network adapter i8 intend~d to ef~iciently int~rconnect device~ having div~r6e I/Q ch~nn~l data rata~ it is de~irable to be able to allocat~ the aggregate channel bandwidth selectively among the various proce~sors. Thi~ 1~ accompli~hed through ~ ~ixed rot~tional as~ignment of ~ime ~lots to each of the proce~or~. ~able II ~how~ a hypothe~ic~ siqnment of ~lx proces~Qr I.D~ to the eight av~ bl~ tim~ ~lot8. In the examplQ, i~ i~ a3~umed th~t a total b~ndwidth sf 200 ~g~bit~ p~r ~econd i~ availa~le ~or eac~ of ~e A bus and the B bus ~nd that a ~ini~u~ alloc~tion for ~ processor or I/O DMA d~v~c~ i~ 25 m~gabit~ per secDnd. A 32-bit proce~sor i~ conn~ct~d as in Figure 1 to both the A and tbe B buse~ ~nd carri~ ~ proce~sor I.D. of O and 1, re~pectively~ for th~ two ~6-bit port~. A 16-15 bit proce3sor with ~ procesBor I.D. of 2 i3 connec~ed only to busA and, Similarly, a 16-bit proce~sor with ~ processor I.D. o~ 3 iA connscted only to bu~ B. I/O DMA devices h~ving proce~or I.D. numbers of 4 ~nd 5 are connected individually to tho A bus and B bus, r~pectively. Further, it i~ a~eumed t~at t~ Pl proc~cr i~ allocated 50 megabit~ per ~econd of th~ ~vailable bandwidth on bu~ A and ~0 megabits per ~ccond of the available bandwidth on bu~ B and that proce~ors 2 and 3 also are allocated 50 ~egabit~ per second. The two I/O DMA devices are ~umed to each h~ve a 100 ~gabits per ~econd allooation. This, thsn adds up to the available 200 magabits per e~cond total ava~lable ban~width ~or both buses A and B.

9~73 TA~LE I I
TIME S~T ~US A ESUS B BANK N0.
~ l 0 6 ~ 5 0 ~' Each tim~-~lot corra~ponds to on~ central men!lory cy¢la tim~, which 1~ zlo~inally 80 nanoE3~cond~. ~hu~, th~ tot~l ~lm~
for the ~ntirQ 16 ~ime ~lolt~ 3 l . 28 m~ croE~econd~. Thi~ ~eans thelt ~ach 1~ a proco~or g~ns acce~ on~ o~ ~h~ 16-~i t 15 bUBeB A or B in a given tim~ , 810t, it provid~e a ¢hann~l data rate o~ 25 megabits per s~cond. The aggre~at~ da~a rate ~or ~ll 16 tim~ alot~ and both A and ~ buse~ i~ 400 megabits per econd.
In thl~ hypothQtlc:zll sxample, proce~3or l, E~ 32-bit proa~ 0r, io ~hown a6~ connected to both bu~3 A and bus B ~nd is grantQd a~c:e~
20 in time ~lot~ 1 and 5, thu~ pxovlding a total c:hann~l bandwidth o~ 100 megabits per second . It ~hould be not~d that ~or 3 2-bit procQ~or~ tha lower 16 bit~ o~ data are alway~3 oonneate~d to Nemory Bank 0 and the upper 16 bit~ o~ data are alway~ connected to ~ank l. Procas~or 2 i~ a~sumed to bs a 16-bit proceElsor and 25 ~ conn~ctad c~nly to bu~ A and i~ granted timf~ E~lot~ 3 and 7, providing a 50 magabit data rate. Proca~or 3 i8 illu~trated aa a 16-bit proces~or and i~3 connected only to bus ~. It i~
allocated tlr~0 ~lote 3 to communicz~te with ~ank 0 and tlm~ ~lot 7 to com~nunls~ with B~nk l. Memory Banlc~ 0 and 1 ~re ~awltch~d :
30 between bw3as A and ~3 by th~ afor~mentiDned Bu~Bank saloct owitch 138. Proce~or 4 i~ shown a~ 8 l6-bit p:rooe~or 39~73 arbitrarlly connected only to bus ~. It, ~lon~ w1th prooe~or 3, i~ allocated time ~lots ~, 4, 6 and 8, ~ach proce~eor aoca~lng a di~Per~nt bank, i.e., proces~or 4 to Bank O durlng ~lot 2 and 6 and to Bank l during slots 4 and 8. In thi~ way, ~emory excha~ges between the Central Memory ~00 and procossors 4 ~nd 5 can be interleav~d, with each proces~or grdn~ed a lOO megab~ per second bandwid~h. One res~riction which must be o~rved i~ ~hat each 16-bit proces~or must be given at laa~t two time ~lots, one in wh~ch to accos~ B~nk O and one in wh~ch to a~ces~ ~nk 1. A
32-bit proce~or, ~ince it ~im~ltaneously ~cce~s ~oth bank~, may be allocated A5 li~tle ~ on~ ti~e ~lot.
NODE CONTROL
Figure 3 ~how~ a ~or~ deta~led block diagra~ of the Node ~ontrol clrcuitry 130 in Figure 1. Acces~ Control circuit 202 15 provides a ~equence of proces60r 610t I.D. code~ on proces~or 810t I . D. bus 132 to establish the proce~or time slot bank allocation~ as in the prevlou~ly d2scr$bed ~xamplo. As will be explained in ~r~ater detail later on, the Acce~ Ccntrol circuit ~ 202 provid~s a ~yBtem of manually-operated ~witch-~ to define the : 20 s~ecific time-~lot nllocationB~ Each poten~i~l con~iguration of time-slot~ i~ c~llQd ~ ~profile~ ~nd up to 16 dirP~rent pro~lle~
may be de~ined with the ~witche~. Th~ curr~nt ~t~tQ o~ the profils ~lection switches may be detarn~ od by the Nucleus Processor 100, via th~ ~ank 0 read data bus 224.
Mast2r cloc~c circuitry 200 generatcs the 50 MHz cloc)~ and the time 0 ~ignal, w~ich was descr~bed in con~unction with Figure Z. ~t i~ a ~ignal which i6 broadca~t to ~1l1 procs~sor~ and ~o Central: Memory loo.
Since Bank 0 and Bank 1 may be conn~ctfld 'co differ~nt 30 16-bit proce~or~, it 1~ nece~ary to have s~par~t0 ~torag~
.

15~

~Z~3~6~3 protection lo~ic for each bank, i.e., ~Bank O Stor~g2 Prot~ctN
204 and ~Bank 1 Storage Protect~ 206. E4ch ~uch logic circuit performç a te~t of the ~ddre~ range on one o~ the common buses per the key code provided on the A and B key bu~ 134. If the ~u~/aank ~ ct lin~ 138 is low, the ~ank O Storage Pro~ect 204 compares the addre6s on A Common bus 102 to the A ~ctlon of A &
B Key bu~ 134 while the Bank 1 Storage Protect 206 ~o~p~re~ the ~ddre~ on ~ Common bu~ 104 to the ~ seation of the A ~ B Rey bus 134. A ~mory fault in ei~her aan~ O or Bank 1 wlll activate OR
gate 212, vi~ lin~a 208 or 210, ~o gener~t~ a torc~d int~rrupt ~y intQrrupt aon~rol circuit 216.
Timer 218 i~ ~ 32-bit counter clocked at a 160 n~ rate which thereby provide a precisi~n timin~ refer~nc~ for a~l adapter procss~ors. A parallel output of the ti~r i8 provided on bus 220 which is latched durin~ a memory read cycle in latch 222. The lower 16 bit~ of timer data are pre~ented on the Bank O
Read Data bus 224 while the upper 16 bits ~re presented on Bank 1 Read Data bus 2~6.
~yte parity i~ generated and added to the~e data bu~e~ by parity generator~ 228 and 230. The Bu~/B~nk Select Switch 232 allows either bank o~ data to be routed t~ either the A or B Read bu~es 106 or lO~, respectively. This arrangement means that a 32-b$t proces~or spanning both buse~ can rsad the entire 32 blt timer data in a G$ngle memory cycle or, alternatively, ~ 16-bit proco~or connected to only one read ~u~ can read t~e ~ame timer dat~ in two consQcutive 16-bit ~emory re~erenc~ he timer is re~d ~y aca~s~ing the 32~blt content of ~ddreo~ 00810000H. The 24-bit addre~s responsible for the fault i~ latched in either circuitry 204 or 206. A read of addre~ 00~10040~ will cause the address latched in circuit 204 to be presented on buses 224 and .: ~

9~73 226, the~ lower 16 bits on bu~ 2~4 and the upper 8 bits on bus 226. Si~ilarly, address 00810042H provide~ ~cc~ to the Bank 1 Fault ~ddre~, via ~he same path. A read or ~ddre~s 00~10020 provlda~ ~he ~tatus o~ the pro~lle ~witch~s o~ acc~ o~ntrol 202, via bu~ 224. The l~wer Pour bite of timer 218 ~re made available over path 221 and are used by Interrupt Control Circuitry 216 to ~equentially poll the proce~sor~ for interrupts, via Interrupt bus 136.
CENTRAL MEMORY
Referring again to the ~ygtem block ~ ram of Figure 1, th~ Cen~ral Memory 100 ~8 co~posed of 1 to 4 idsnt~c~l m~mory array board~. Each ~e~ory ~rr~y board contain~ all of the bu~f~r and decode circuitry neces~ary t~ commun1cat~ dir~ctly with the A
and B common bu~e~ 102 and 104 and th~ A And ~ re~d bu~ 106 ~nd ~08. In the pr~erred embodiment ~eing de~cribedr ~ach memory array board contain~ 524,288 byte~ of high-6p~ed ~t~tic RAM
memory. The memories are arranged in two bank~, B~nk O and ~ank 1. E~ch ~ank ~ay contain 131,0~Z 18-~it words, which are acce sable to any of the A/B buses 102-108. Of these 18 bit~, 16 are da~a and 2 are for byta parity. The parity is neither generated nor checked on the memory board but i6 6tored, a~
received, on the data bus. Memory addre~sing within the array is ~equential through the bank~. Sixteen-bit ~quential word~ are acc~ed by alt~rn~te Bank O ~nd ~nk 1 reference~, i.e., interleaved ~ode of operation. Thi,rty-two blt word~ are acce58ed by concurrent reference to both 9ank 0 and Bank 1.
The memory array may be acce~e~ in Qither word mode or b~te ~ode. Bank selection and upper/lower byte ~21ection i5 accompli~hed by the memory addre~s. Word/byt~ mode ~election i~
indicated by a separate control line. ~$t O of the addrese ~Z~9~7~
selects the byte if byte mode is Gelect2d. If bit 0 i~ a "1", the lower byte 1 is selected. If bit 0 is a "o", the upper byte O i8 selected. Blt 1 of the addre~s is the Bank Reque~t bit. If bit 1 is a r~on ~ Bank 0 i6 requested. I~ bit 1 is a "1~, Bank 1 is requested. Address bit 2 through 19 select one of the 262,144 bytes in each bank.

CENTRAL MEMORY ARRAY BOARI) Figures 4a and 4b together show a detailed block diagram of the central memory array board, multiples of which are combined to form the central memory 100 of Figure 1. Multiplexed addres~ and write data are provided to the array board via the A
common bus 102 and the B common bus 104. The A and B common buses are buffered by buf~er circuits 250 and 251 J respectively, such that the data is presented on internal memory array board buse~ 252 and 253, respectively. Buffers 250 and 251 function to isolate the internal buses from the external system buses to prevent excessive loading. The Bank/Bus Select signal 138 ~rom Access Control 202 (Figure 3) is resynchronized by a D-type flip-flop 256 clocked by the "T 40 clock" to generate internal bus select signals on lines 258 and 260 connected to the ~ and Q
outputs thereof. Lina 258 provides the multiplexer ~lection for the multiplexer/latches 262 through 270. When line 138 is low, during the ~irst phase of a memory cycle, the address on A common bus 102 is latched into the Bank 0 address mux/latch 262. During the second half of the memory cycle, the data ~rom A common bus 102 i~ latched into the Bank 0 data mux/latch 268. Concurrent with the~e ~vents, the address and data from B common bu~ 104 is latched into the Bank 1 Address mux/latch 264 and Bank 1 Data mux/latch 270, respectively. If the Bank/Bus select line 138 is high, the ~ common bus address and data is routed to the Bank 1 .

o 9~73 ~ddre~ and data latches 264 and 270, respectively, whil~ the common bus ~ddre~ ~nd d~ta i~ rou~ed to the ~nk o l~tcheEI 2s2 and 268, r~pectively.
The output of latch ~62 1~ the 24-bit Bank 0 addr2~s 5 field. This i3 split into three bul3el3, namely, bus 27~ whis::h contain~ bits 2-17 of the ~ddress ~ield ~Ind ~or~ th~l3 16-bit addrosE~ for the Ban)c 0 ~A~ Memory 298; bu~ 276 which io comprilaed of b$~ 18 and lg which provids inpUtB to th~ chip Del~ct decod3r 284 t andl ~inslly, buu ~7~, which 1~ compri~d o~ bit~ 20-23 and 10 whlch provide an input to compar~or 280. The okher lnput to co~parator 280 i~ ~rom addr~ r~ng~ c$rcui~ry 266. 'rh~ addr~s range i~ a 4-bit c::ode whic:h ia unlquely hard-wir~ gor 0~ch of the 16 possible Ei~lots that a memory array bo~rd may be connect~3d 1:o. If the addre23s r~nge identified by circuitry 266 ~a e~al to 15 the upper ~our bit6 of ~he addre~s field, the requet;ted addre~s i~ within the assigned addre~3s range of the ~nemory ~rray bo~rd.
Thus, th~ output of comparator 280 enables th~ output o~ decode circuitry 284, via line 283, to generat~3 one of four po~sible chip ~elects on chip ~elect bu~ 285.
If bit 17 i~ ~ 0, a re~d cycle i~ indicat~d. Dur:lny t~e s~cond hal~ of the m~mory cycle, the dat~ ~ro~ th~ addro~sed ~emory cell o~ memoxy 298 le provid~d on output bus 302 ~nd 1~
l~tch~d intc either latch 306 or 30B, depend~ng on-th~ ~t~te of ~ank/Bu~ Scl~ct line 138. If the addre~ roqu~et~d ie within th~
addr~ss range of the array board, thi~ data will be pre~ented on either the A read bus 106 or the ~ read bus 108 during the sscond halr o~ the memory cycle. I~ addres~ blt 17 i~ , the data ~rom latch 268 ~ written into the addre~s ~emory cell of memory 298 durinq tha second half of the memory cycle. Simil~rly, comparator 2~8 and decode circuitry 290 generate~ th~ chlp ~L2~i73 fielec 8 292 for the Bank 1 RAM ~emory 300. ~us 304 and latche~
310 and 312 provid~ a pa~h ~or B~nk 1 re~d data to be pl~cæd on ~ith~r the A read bu~ 106 or the B read bu~ 1O8D Write data for the Bank 1 ~emory i~ provided from latch 270.
Thi6 array board con~lguration ~110WB concurrent ~ccess to Bank o and Bank 1 ~rom Qlthor the A or B bu~ o~ch memory cycls re~tricted only in that both bu~e~ c~nnot ~limultaneou~ly acGess the ~ame bank. A given array board ~y be uns~lected, ~elected ~or one bank only or selacted for both bank~, dapending on the 0 speci~ic combin~tion o~ addres~6 concurr~ntly roque~t~d.
32-~T~ ~ICROPROCE~SOR
~ i~ur~ 5 ~how~ a detailed block diagr~ o tho 32-b~t Nucleu~ Proce~sor. ~hi~ i~ built around a ~inglo ch$p 32-~it microproc~or 350, which pr~erably ~ay be a Type S8020 microproces or ma~u~actured by Motor~la. The princ~pal int~rfaces to microproces~or 350 are the addr~ss bus 352, the bidir~ctional data bus 358 and the multll~vel interrupt bu~ 378~
The 32-bit addres~ bus 352 is buffered by buffer 3s4 to form the 32-bit internal addre~s bu~ 356. Data buæ 358 i~ buf~er~d by the bldirectional tran~c~iver circuits 360 to provide A 32-bit in~ernal data bus 362. Data originatinq ~rom mlcroproce~sor 350 ha~ byt~ parity generatQd by p~rity clrcuit 361 whlch 1~ Appended to data ~UG 362 t~ ~orm ~ 36-b~t bu~. D~t~ tr~ns~rrod ~rom data bu~ 36~ to the microproc~s~or 350 has byte p~rity ch~cked by pari~y circult 361. In the event o~ a p~rity error, an interrupt iB generated, via bus 362, to Interrupt Proce~sor 376.
Address bu~ 356 and data bu~ 362 provide intern~l communication to memory 364 and dual Universal Asynchronous Receiver Transmitter (UA~T) 366. Memory 364 may be a combinatlo~
of ultravlolet programmable read-only memory, elelctric~lly ~28~3 erasable programmable read-only me~ory, or static random acces~
memory ~aAM). Dual U~RT circ:uit 366 provideEI ~ dual, bidiroc~lonal, ~&~rf.al . chann~l o~ th~ R~ 232C typ~.
Microproce~6~0r 350 may al~o co~nunlc~t~ wl~h tllo C~ntr~l M~mory 5 lO0 via A ~nd E3 common buE~e~i 102 and 104 and th~a A ~nd B read buses î06 and 108. Central Me~nory lO0, memory 364, rJART 366 as well as other special rasarved memory locations ar~ ~ll mapped into the 32-bit memory space of mic:roprocesE~or 350. Table III
below shows an example of memory addre~s allocatlon~ which might 10 be made.

- 2 l -~2~9~
. .

TABI~ III
ADDRESS CONTENTS

00000008-OOOOO~FF INTERRUPT VECTOR T~BLE

80100000-OOlOFFFF SH~DOW R~
B0200000 INTERRVPT PRIORITY L~VEL O D~VICE FLAGS

802000~8 INTERRUPT PRIORITY LEVEL 2 DEVICE FLAGS
8020000C INTER~PT PRIORITY LEYEL 3 DEVICE FL~GS

80200020-00200023 ~ILLBOARD DISPLAY
80200028-0020002F 68~40 PROGRAMMABLE TIM~R MODULE
80200030-~0200033 SIGNATURE REGISTER
80200040-00200043 PARITY E~ROR ADDRE5S

BIT O - IRQ IDLE i~ ~0 BIT O ' IRQ ~USY i~
BIT 1 ~ 68020 CACHE ~NA~LED if ~1~
~ITS 2-4 ~ MS~ of PROCESSOR N~MBER
~ITS 5-7 ~ MS~3 o~ ~EY IDENTIFIER
8~200060 INTERRUPT REQVEST REGISTER
~ITS 0-~ ~ DESTINATION

~IT O ~ CLEAR PARITY ERROR FLAG
~IT 1 ~ DISABLE INTERRUPTS
O~OOOOO-OlFFFFFF CENTRAL MEMORY

Note that all addresses above 01000000 are acces~ing Central ~emory 100 through the ~y~tem bus, Thi~ requir2R the coordination of Bu~ Arbitration circul~ 390. Once microproc~s~or 350 generate6 an addr~s~ out~ide it~ in~ern~l addre~s r~nge, it i~ placed in a ~waitn state, while ~UB ~rbitr~tion clrcuit 390 wait~ for an as6igned time ~lot, i.e., a central memory cycle for which the proces~or 810t 1 . D. code on ~u~ 132 equal~ the proce~or I.D. code from proceu~or I.D. ~witche~ 386. During thi3 walt statQ, the address 1~ ~rozen on addr~a~ bu3 356 and the data i~ frozen on data bus 362. When the proc~ssor ~lot I.D. on th~ bu~ match~s ~he proce6~0r I.D., BUB Ar~i~ra~ion circult 390 : enable~ the line 392 to cau~e the proces~or I.~. code ~tored in manual ~witches 382 to be presented to th4 A and ~3 Xey bu6 134, via the A and B key buffer 384. Since the 32-bit microprocescor uses both A a~d B buses conc~rrently, the proc88~0r I.D. code is pre~ented in both the A and B ~ield~.
~urin~ the rir~ half o~ the ~mory cycl~, ths lower 24 : bit~ o~ t~e 32-~it addre~s field 356 are gat~d to both the A
co~mon bu~ 102 and the B common bu~ 104, via ~ultiplexer~ 368 and 370, respectively. During the ~econd half o~ the central ~emory cycle, th~ upper 16 bit~ of dat~ bus 362 are gated onto the conUnc~n bU~ 102t Vid multlplexer 368, whil~ th~ lower 16 bit~ of data bu~ 362 are qated onto the ~ common bu~ 104 via ~ultiplexer 370. Upon completion of the ~xternal msmory writ* cycle, microproce~or 350 is releassd rrom the wait ~tate.
For a cantral mamory read oycle, the ~me procedure i~
followed with the ¢xception that the eource o~ d~t~ ie now from Central Memory 100 and, dur1ng t~e second hal~ o~ the r~ad cycle, i8 gated from ehe A and B read ~us. The upper 16 ~it8 of data :.
.~ . .

~9~i~73 are captured in A read latch 372 while the lower 16 bits of read data are captured in the B read latch 374.
As will be pointed out in greater detail when the Interrupt Control of Figure 1~ is described, Interrupt Proc~ssor 376 processes both internally and externally generated interrupts.

Figures 6a through 6b when arranged as in Fi~ure 6 show the preferred embodiment o~ the 16~-bit microcontrollers 114 through 118 shown in the network adapter block diagram ~Figure 1). In this embodiment, Figures 6a through 6d comprise a 16-bit microproces~or with a dedicated interface to the central memory buses 102 and 106 or, alternatively, 10~ and 108 along with the interface to A and B key buses, key bus 134 and processor I.D.
15 bus 132 to permit access to Central Memory 100. The aforementioned interfaces are duplicated for the direct memory access I/O control o~ Figures 7a and 7b such that both the microproce~sor and the DMA can acce6s Central Memory with different processor I.D. numbers.
For clarity, Figure 1 show~ both the microproc~or and the DMA sharing the same A or B bus, but this is in ~act not a restriction. This is a desirable configuration in that it enables sustained 50 megabit or 100 megabit, DM~ transfer between a host device and the Central Memory all under the control of the 16-bit microprocessor.
Consider ~irst the microprocessor Figures 6a through 6d.
It is preferably a special purpose high-speed microprocessor built upon a 16-bit arithmetic l.oyic unit 426, such as a configuration of four 74F181 four-bit ALU~ manufacture~ by Faixchild and others. It employs a 32-bit instruction ~ormat to provide a rich repertoire of instructions particularly well-suited for packet o ~8~6~3 me~age handling. ~he two inetruction for~at~ ~re shown in Table IV b~low.

The ~ollowing Inst~uction Regi~ter ~o~m~ts are dec~ded to control the ~icroprocessor hardware runction~.

+ t t 1 t t PuNcTyoN t DE~TINATION t 80URCE A t SOU~CB ~ t t CODE t t t 10 t .............. v_ t t t,~ t For~at 1 - i~ a r~gi~ter ko regi~ter type operation.

~SB LSB
31 2~ 23 ~6 15 0 .
t t t t 15 ~ FUNCTION t SQU~CE D t I~MEDX~TE OPERAND t t CODE t DESTINA~ION t t _ t t . _ t Format 2 - ~ 8 an iD ediate operand type operation.
TABLE IV

For~at ~ i~ uued for regi~ter-to-register type of operations. In this format, the upper byte, hereafter raferred to a the ~unction code~ or F fisld, de~in~s the ~rithmet~o or logical function to be performed by the ALU. The secondmost signi~icant byte i~ the de~ti~ation fiold, herea~ter referrQd to ~ the R field, which de~ine~ the de~tination of the re~iult~ oP
the ALU op~ration. The nextmo~t ~ignl~ican~ byte dorines the ~ur¢o o~ th~ d~ta or the A i~pUt to tho ALU. Thi~ ld may be either ~ direct or an ~ndirect ~ddra~. Similsrly, the l~ast ~iynificant byte define6 the sourc~ o~ the dat~ ~or the B input ~f the ALU. These fields will hereafter be r~erred to ~8 the A
and B field~.

o ~L~8~73 Format II i8 an alternative f4rmat which i~ used only for immediate operand-type of operations. In this ca~e, the two lea~t s$gnificant bytes, the A and ~ field~, are com~ined to provide an immediate 16-bit operand which beco~es the B input to S the ~U. The specific operation performqd during a given in~truction cycl~ i~ determined by the F ri~ld.
Tho Yunction coda ~l~ld 1~ divldod in~o two ~art~. ~lt 2~ through bit 31 genarally derlne th~ A W op~r~t~on to be per~or~d. ~lt 24 ~hrouqh 27 provide ~ddition~l in~tructlon d~codo and ~ddxessing ~ode directlon to der~vo roglst~r to r~gi~ter ~or~at in~trucSion~.
~h~ ~uncti~n code ~ield, io an 8 blt ~iald, loo~t~d in bit~ 24 thr~ugh 31 of the Instruction R~gi~ter. Thi~ ld de~$~es the hardware operation to be p~rformed. The function code ~ield i~ divlded into two part3: bit~ 28 through 31 generally define the ALU operation to b~ p~r~orm~d. B~t 24 through bit 27 provide ~ddltional in~truction d*ood~ and dddr~sslng ~ode directlon to derive regi~t~r to r~gi~ter ~ormat ln~tructiona.
Function code~ OX throuqh FX are d0coded aB foll~w~:
Function code = OX. Thi~ ~unction decode~ to an ALU
addition without carry operatlon. ~he re~ults of thi6 operation will e~fect bit~ 0 through 3 of the Condition Regi~ter.
Punction co . This ~unction d-cod~ to an ALU
subtract without a~rry operatlon. The results o~ this oparation will erfect bit~ O through 3 o~ the Condition Regi~ter.
Punction code ~ 2X. This functlon decode~ to ~n ALU Add _ .
with carry opera~lon. ~he result6 of thi~ oper~tion will eff~ct bits 0 through 3 of the Condition Register.

~2~ 73 Function code = 3X. Thi~ function dacode~ to an ALU
~ubtract with carry operation. The r~ulta of thiB opsration will effect bit~ O through 3 of the Condition ~egi~t~r.
Functlon code - 4X. This function d~cod~ to an ALU
. ~ .
Inclu~ive OR op~ration. The re~ultB of thi~ oper~tion will effect bit~ 2 and 3 of the Condition Regl~ter.
Function cod~ - 5X. This ~unction d~odes to an ~LU
.... ,. __ Exc~usivc OR operation. ~he rQ~ult~ o~ thi~ opQr~tion will effect bits 2 and 3 of the Condition ~egi~ter.
Function code ~_ _6X. Thi~ function decode~ to ~n ~LU
Logic~l AND opera~lon. T~e r~ult~ Or e~i~ o~er~tion wil:l ~f~ect bit~ 2 and 3 of th~ Condition Regi~tQr.
Th2 data ~ourc~ ~or th~ ALV cp~ration~ ~r~ ~ro~ ~ource A
and ~ource B, if format 1 or from ~ouro~ D and the i~med1at~
value in the IR, if for~at 2. Tha r~ult~nt data 18 ~nt to the de~tination, i~ ~pecified. Tha function ~odifier X, blts 24 through 27, for the OX to 6X function~ are as follow~:
Bit 27 - 1 indicatQ6 format 1.

~it 26 ~ O indic~te~ direct ~ddre6~ing ~or th~ d~stin~tion.
~it Z6 ~ l indicates indirect ~ddre~lng for the de~tination.

Bit 25 - O indicate~ direct ~ddre~6ing for ths ~ource A.
Bit 25 - l indicate~ indirect ~ddressing for th~ source A.
~it 24 - O indicate~ direct addre~lng for the ~ource B.
ait 24 ~ l indicate~ indirect addre~ing ~or the ~ource B.
25 Bit 27 - O.

Bit 26 ~ O indic~tes NO destination ~pecified, result~ are dumped.

Bit 25 ~ O indicates direct addres6ing ~or the ~urce A.
Bit 25 5 1 indicates indirect addre~in~ ~or the source A.

Bit 24 e O indicates direct addressing for the source ~.
~it 24 ~ 1 indicates indirect addressing for th~ ~ourcP B.
Bit 26 - l indicates format 2.

Bit 25 = O lndicates the reBult~ ~re Bent to t~e dest inat ion .

11 2E~673 Bit 25 = 1 indicates N0 de~tination specified.

Bit 24 ~ 0 indicates direct addres~ing ~or t~ souroa D
And, if ~peci~ied, the de~tination.
ait 24 = 1 indicate~ indirect addres~ing for thQ ~ource D and, if specified, the destination.

Function cod~ - 7X This ~unction decode~ to an ALU Xncr~ment or , Decrement operation. The data i~ fro~ ~ource A, and the incremented or decremQnted data iB ~ent to th~ de~tination. The reeult~ o~ thi~ op~ration wlll ef~ect bits 0 through 3 of the Condition Regi~ter. The ~u~ction modifi~r X, bit~ 24 through 27, for the 7X ~unction are ~-follow~:

Bit 27 ~ 1 indic~tes ~n Increment ALU operation. Bit 27 ~ 0 indicate~ a ~ecrem~nt AL~ operation.
Bit 26 ~ 0 ~ndic~ d~tination i~ ~p~cifiod.

Bit 25 z 0 indicAt~6 dir~ct addr~ing f or th~
destin~tion.
~it 25 ~ 1 indicates indirect addre~slng Por the de~tination.

: Bit 2~ - 0 indicates direct addrQssing for the source A.
Bit 24 = l indica~es indirec~ addra~lng Xor the source A.
Bit 26 ~ l indicate6 N0 destination 13 ~pecified.
Bit 25 - 0/l not decoded.

Bit ~4 ~ 0 ~ndic~te~ direct ~ddr~ing for the ~ouroe A.
Bit 24 - 1 indic~tee indirect addre~s$ng ~or the ~u:rce A.

Function code ~ 8X This ~unction deco~s to a shift ._ operation. Th~ dat~ to be ~hi~ted i~ trom oource ~. Th~ HhiftQd data i~ ~ent to th~ de~tlnation. The result~ Or the ~ing~a bit le~t ~hiPt operatlon wlll err`ect blt~ O through 3 of the Condition Rag~ er. Th~ re~ult~ of the ~our bit ~hift have no effect on the Condition Regi~ter The ~unction modi~ier X, bits 24 thru 2~, ~or the 8X function is as ~ollow~:

ait 27 ~ l indicate~ a single bit ~hift.

Bit 26 ~ 0 indicates ~ de6tination i9 speci~ied.

~it 25 = 0 indicates direct addres~ing for the destination.

-2~-~it 25 ~ 1 indlcat~ indlrect ~ddr0~0ing ~r th~
d~tination.
~it 24 - o indlcate~ direct ~ddre~ing ~or the ~ourc~ A.
ait 2q ~ dic~t~ ~ndir~ct Addr~o~ o~ our~0 ~.
Bi~ 26 - 1 indicatas NO d~stination i3 ~pecified.
Blt 25 e o/l not decoded.
Bit 24 - o indicate~ ~ir~ct ~ddre~sing Por the ~ourc~ A.
sit 24 ~ 1 lndlcate~ lndlrect ~ddr~ing or th~ ~ource A.
~it 27 ~ o indlcat~a ~ ~our bit ~hl~t.
~o Bit 26 ~ 0 indic~tc~ a l~rt ~hlPt.
Bit 25 ~ o indicaes~ direct ~ddre~ing rOr th~
d~tin~tion.
Bit ~5 ~ 1 indic~ta~ indirect addro~s~ng ~or th~
de~tin~tion .
Bit 24 ~ O indicates direct. addrl3~sin~ ~or th~3 ~c~ur~ A.
Bit 24 - 1 indic~tes indir~ct ~ddr~a3~ing ~or the ~ouroe A.
Bit 26 ~ 1 ~ndicates a right shift.
Bit 25 z 0 i~dicate~ direc~ addre~sing ~or t~
d~6tinationO
Bit 25 ~ 1 indicate~ ~ndir2ct ~ddre~sing ~or the deætinatic~n .
Bit 24 - O indlcates dirsct addre~ing ror the sollrce A.
Bit 24 ~ 1 indicates i ndirect addre~iing for the E~ource A .
Function code ~ 9X. Thi~ func:t~ on d~coda~ ~o a Mov~ or 25 Nc~r~ Con~pla~nsnt operation. The dat~ novsd îrom sourcf3 A on format 1 or i~ the inm~diate valu~ on format 2, tha data iEI m~ved to the destination. The ~e~ult o~ tbis op0rat~0rl ha~ n~ ef~ct on the Condition Regi~ter. The ~unctlon ~odiPi~r X, blt 24 through 27, are d~ined a~ follow~:
30 ~it 27 - 1 lndic~te~ the data i~ no~ co~pl~nt~d. Bit 27 ~ 0 indic~t~s the d~t~ 1~ co~plom~ntod.
Blt 26 ~ O indicat~s ~ ~ormat ~.
Bit 25 ~ 0 indicates direct ~ddre~sing ~or the de~tination.
~it 25 - 1 indicates lndirect ~ddrasslng ~or t~e de~tination.

, ~L2~ 7~

~it 24 o O indicates dir~ct ~ddrQ~ing ~or the oourc~
Bit 24 ~ 1 ~ndic~tes lndirec:t MddresRing Por th~ ~ourc~ B.
B~ t 2 6 ~ ~ ~ndicat~s ~ ~orm~t 2 .
Bit 25 ~ O ind~cat~es d~ rect addre~sinq f or 'che de~tin~tion.
Bit 25 - 1 indi-atels indiract Addr~ing ~or th~
d~æt~n~'cion .
Bit 2 ~$ ~ 0/1 not d%coded .
Function code ~ AX. Thi~ function d~cod~ to control 'che Program Coun~er. The r~sultY of ~ operation havQ no s~fect on the Condition Regi~ter. ~he ~unction modi~ier X, bits 24 through 27, 113 encoded ~nd will be d~rinl3d a~ a rOur ~it binary value.
Bit~ 27-24 c 0000 ~ ~ump - load th~ PC ~rom l:R ~s)urc~ dir~t.
0001 -- Jump - lo~d the PC ~rom IR ~ourc6~ B indirect.
0010 - Ju~p - lo~ tho PC with IR i~ la~o Y~luq~.
0011 ~ R~N/~2~ - lo~ the PC wtt~ IR l~o~t~ valuo.
0100 ~ JS~ d the PC from IR aourc~ B direct.
0101 ~ JSR - loasl th~ PC from IR source B indirsct.
0110 = JSR load ~he PC with IR i~nediata v~lU2.
0111 ~ RqrN/JS~ - lo~d 'che ~C with IR i~a0diate v~lue.
1000 - Ju~p - add I~a source ~3 diroct to th~ PC.
1001 ~ Jump - add IR ~ource B indir~ct to the PC.
lOlû ~ Jump - add IR i~medi~te value to the PC.
1011 - R~J/IRQ ~ ~dd IR immediate value to PC f'rom ~tack.
llQ0 ~ JSR - ~dd IR ~30urce B direct to the PC.
1101 - JSR ~dd IR uource 1~ indirect to the PC.
1110 = JSR - add IR immediat~ value to the PC.
1111 ~ RTN/JSR add IR immediate v~lue to PC from stack.
Not~: All JSR's puEIh t~e PC to IBtAC~ RTN/JSR'B
pop the PC ~rom the ~tack but may roload th~ PC.
A11 IRQ ' B pu~h the PC and CC to the ~tack .
RTN/I~Q'1 pop the PC and CC rrom th~ ~tack bu~ may r~load the PC.
Functlon code ~ ~IX. Thi~ ~unction d~cod~ to a R~ad or Write o~ tho I/0 bu~. The addr~u~ ~or the I/0 buo 1~ rrom ~urce B on s r~ad, and ~rom ~ource D on A wrlt~. ~ho data ~rom a road i8 ~ent to the destination, and th~ data on ~ writ~ :IB ~rom, ~ourc~ 13 or the immediate value in the IR. Th~3 r~sult~ o~ th$s operation have no effect on the Condition ~egi~ter. The function modifier X, bits 24 through 27, for the BX function i~
as follows:
Bit 27 - 1 indic~te~ a Read I/O.
Bit 26 - 0/1 not decoded.
Bit 25 = O indicates direct addr~sing ~or the de~tination.
Bit 25 = 1 indicates indirect addres~ing for the de~tination.
Bit 2q ~ O indicate~ dlrect ~ddre~sing ~or the eource B.
~it 24 ~ 1 indicates indir~ct addreo~ing ~or the ~ource ~.
Ait 27 - O indicates a Write I/O.
Bit 26 = O indicate6 a format 1.
Bit 25 = O ~ndicatee direct addressing for the d~stination.
Bit 25 ~ 1 ~ndica~ ~ndir~ct a~dro~in~ ~or the destination.
8it 24 ~ O indicates direct 3ddressing for the 80UrC~B B.
Bit 24 ~ 1 indicate~ ~ndir~ct addr~ing ~or t~o ~ource~B.
Bit 26 ~ 1 indicated a format 2.
Bit 25 = O indicate~ direct addres~ng for the~
d~tination.
Bit 25 - 1 indicates indlrect addre~Ing ~or the de6tination.
Bit 24 = 0/1 not dacoded.
Function code = CX. ~his function dQcode~ to a rQad or write on the main memory bus. The lower me~ory address i6 from ~ource A, the upper memory addre~ i8 ~rom ~ource B. ~he data on a write i~ fro~ ~ource ~, data on ~ read i~ ~ent to the daet~nation. The re~ulte of thl~ oper~tion h~vo no o~ct on the Condition Regi~ter. The function ~odi~ier X, bit~ 24 through 27, ~or t~e ~X function~ i~ a~ followa:
~it 27 ~ 1 indicates a Read Memory, ~ormnt 1.
Bit 26 ~ O indicate~ direct addr~elng ~or thQ d~tinntion.
Bit 26 - 1 indicates indirect addr~ssing for the deetin~tion.

9~73 Bit 25 = O indicate~ direct addre~ing ~Eor th2 ~ource A.
Bit 25 - 1 indicat~s indirect ~ddr~oing for thQ Elource A.
Bit 24 ~ O indicates direct addre6~ing ~Eor t21e ~ource B.
~lt 24 = 1 indicate~ indirect addrs~ins~ ~or th~ sourc~ B.
5 ~it 27 - O indicates a Write memory, fornat 1.
Bit 26 ~ O indicates direct addres~ing for thQ de~tinatioll.
Elit 26 - 1 indica~ce~ indir~3ct ~Iddr~s6ing for th~
d~stinat ion .
Bit 25 ~ O indicate~ diroct ~ddre~ing ~For the ~l~urce A.
10Bit 25 ~ 1 indicat~a indir~3ct addrel~sing ~or th~ ~ourc~ A~
Bit 24 - O indic~te~ direct addre~ing eOr tt-e oourc:o B.
Bit 24 ~ 1 indloat~s indire--t Addr~ooing ~or th~ slouro~
Function_code ~ D~C. Thi~ ~urlctic~n d~codol~ to p~r~orm a Stack or co~dition Reglater re~d or writ~. Th~ dat~ ~or ~ wrlte 15 i~ from ~ource ~ or the imm~dlate value in ~ , tho data on a r~ad i~ B~nt to the deotin~tion. The r0ailult~ o~ thi~ op~r~tion have no effect on ~he Condition Regist~r. The functlon ~odifier X, bit~ 24 through 27, for the DX function iB a~ follow :
Bit 27 ~ 0 indicates operation i~ a writ~.
Bit 26 = 0 indicate~ a Btac~ operation.
~it 25 - O indlcate~ ~ormat 1.
Bit 24 ~ 0 indicates direct ~ddr~ing ~or ~ourGs B.
~it 2~ - ~ indicate~ indlrect addro~oing ~or ~ou~c~ ~.
Bit 25 ~ 1 indiG~tes format 2.
25~it 24 - 0/1 not decoded.
Bit 26 ~ 1 indicates a Condition Coda Regi~ter operation.
Bit 25 ~ O indicate3 format 1.
Bit 24 ~ 0 indicate~ direct addre~ing for ~ource B.
~it 24 = 1 indicates indirect addrs~ing ~or sourc~ ~.
30Bit 2S = 1 indicate~ for~at 2.
Bit 24 - 0/1 not decoded.
Bit 26 ~ 1 indlcate6 a Condition Code Reqi3t~r operation.

~2~396~3 Bit 25 = O indicates format 1.
Bit 24 - 0 indicat~ dir~ct addr~ing ~or ~ource B.
~it 24 ~ 1 indicates indirQct ~ddr~ssing ror ~ource B.
Bit 25 G 1 indicates ~ormat 2.
Bit 24 = 0/1 not deooded.
Bi t 27 3 ~ indicats~ op~rDtion iB a r~ad.
Bit 26 - 0 indicate~ a ~tack operation.
Bit 25 - 0~1 not decoded.
~it 24 ~ O indicate~ direct ~ddre~ing ~or destination.
~it 24 - 1 ~ndicat~s indirect ~ddr~sing ~or destinatlon:
Bit 26 ~ 1 indicate~ ~ Condition Cod~ ~egl~t~r operation.
Bit 25 ~ 0/1 not decod~d.
Bit 24 ~ o ~ndicate~ direct addre~sing for ~est~nation.
Bit 24 ~ 1 indicat~ indir~ct addr~sing ~or de6tination.
Function code c EX. T~is functinn code is NOT u~ed.
Function code i~ FX. This ~unction decode~ to p~rform a Program Memory read or write operation. The PM address comes from source A, data for a write ~ro~ ~ource D, and d~ta on a r~ad is s~nt to the de6tinati4n. The result~ o~ thi~ operation have no effect on the Condit~on Regi6ter. The function modi~ier X, bit~ 24 through 27, for the FX functi~n iB as ~ollow~;
~5 Bit 27 ~ 0 indicate~ a write operatLon Blt 26 - 0 indlcates a wrlte o~ the lower 16 blto.
Bit 26 - 1 ind1cate~ a writ~ of th~ upper 16 blt~.
~it 25 = 0/1 not dacoded.
Bit 24 - 0 indicates a write to the Program Memory.
~it 2~ ~ 1 indicate~ ~ wri~e to t~e M~lnten~e Interface.
Bit 27 ~ 1 indicates a read operation.
Bi* 26 = 0 indicates a read of the lower 16 bits.
~it 26 = 1 indicat~s ~ read of the upper 16 bits.

.

~2~ 3 Bit 2 5 = 0/1 not decoded .
Bit 24 ~ O indicate~ ~ read o~ the Progr~m M~mory.
sit 24 ~ dicates a r~ad of th~ M~lrte~narlce Interf ace .
Microproce~;sor timing iE; derived from the 50 2~Hz master clock in the rllanner de~cribed in ~igure 2A ~o a~sur~ syr~chrorous operation wi~h the reE;t of the Nod¢ Ad~pter. Th~ prcc~s~or'6 ba~ic cycle duration i~ 160 nano~0c:0nds. Inl-truction ~sxhcutlon ti~ne~ comprine ~rom one to four l~0-nnnoEIecond cycl~. The cyc:l~
control ~or instruction execut~on i8 ~an~ged by ~ 2-bit cycle coun'c~r cont~ined in Sequence Contxol 4~0. Proce~or ~ nstructions 2r~ pr~-fetched at th~ end of pr~viou~ lnstructlon 2x~c:ution~ and decod0cl by in~3tructlon doood~ or tran~lator ~76 to d~t~rmin~ th~ numb~r o~ cycl~ requlr~d. T~e ycl~ aoun'cer i~
}oaded at the 6tart of an instruct~on cycle with a cour1t o~ the nu~nber of cycles required to execute tha~ d~coded instruction.
The output~ of the cycl~ counter are decoded to produce from on¢
to four cyclea, ach of 160 nanoseconds durat~on, as required to execute the pre-~etched instru~tlon.
~o execute a progran in~truction, Program Counter 450 provides a 16-bit address to tbe 65K-by-32-bit Program Memory ; 454. This i~ pr~f2rably a W PROM or EEPROM and, i~ ~ EEPROM, it can be Bub~que~tly altered durlng t~ COUr~fl 0~ op~ration vi~ a design ~upport inter~aoe. The output da~ o~ ~mory 454 ~hen iB
the 32-bit in~truction word 456 to be currently executed. Thi~
iB capturcd in latch 466 and i~ parsed into the A, ~, R and F
~ields 468 throug~ 474 a~ previously described. The F fi~ld i~
d~coded in the aforem~ntioned ~anner by in~truction d~cod~ 476, which identifies the function to be performed by ~ W 426, and the control ~e~uence to be generated by Sequence Control 480 over ~ta path 478. Sequence Contrcl 48D contr~ls the move~ent of ~11 ~2~39E;~3 data in the microproce6~0r. Specifically, it control6 the ~el~ction of multiplexors 402, 416, 428, 438, 442 and 508. It further controls the output enables (OE) on RAM memories 420 and 432, latche~ 512 and 510, transceiver~ 460 and 464, ~ux 442 and condition code regi~ter 4~8. I~ further controls the clock siqnal~ to latche~ 424, 434, 510, 436 ~nd so2,th~ r~d~write mode o~ memorie~ 420, 4~2 and ~54, ~nd th~ pre~,et of ProgrAm Counter 450. The A input data for ALU 426 i~ provlded by data path 422, via latch 424. The normal ~ource of thi~ data in the VlltpUt of lR-by-16 bit RAM 420. RAM memorie~ 420 and 432 together compri~e a lK word regi~ter file ~imilar to the 16 word du~l p~rt rogi~ter ~ile memori~s u~ed 1n convent1onal high-~p~od mtcropros~sor~.
Multiplexor ~16 provides four ~ourc~ of ~ddr~s~ for RAM 4200 ThQ~e are the l~ched A data 410, the ou~put of multiplexor 414, lS which may either be the ~tack pointcr output 404 or the previously latched A data capture~ in latch 436. Latch 436 provides tha me~n~ to perform indirect ~ddro~sing, i.~., t~e A
addres6 field point3 to an addre~s in the r~gi~er file, the content ~ wh~ch i~ th~ addres~ ~or the ~ourco o~ th~ A d~ta.
Yet another ~ource for multiplexor 416 i~ th~ A field 468 o~ the in~truction word. Yet a fourth ~ource of ~ddr~s iB the R field 472 o~ ~he same in~truction word.
The normal source of the input d~ta ror ALU 42~ i8 the output of RAM me~ory 432, via latch 434. There nre alBo four sourcas o~ addres~ for thi~ memory, via multlplexor 428. Thesé
are the latched B data 412, the output o~ multipl~xor 402, the B
~ield 470 or the R field 472. Any instructiorl~ cauae ~ 16-b~t word to be qenerated on the internal data bu~ 446. The source of th~6 data may be the ~ultiplexor 442. It ~8 used in ALU
operation~ where the output o~ ALU 426 pas~e~ t~rough nlbble 3L2~396~73 shifter 440 and multiplexor 442. Nibble shi~ter 440 either rotates the 16-bit word plU6 four, ~inu~ ~our or zero bit~ as it pas~es through. Mux 442 also provides mean~ to read data from c~ntral memory, via the read bus, which may be connec~ad to either bus 106 or 108 as well as a mean~ to read inform~tion ~rom the DMA section, via I/o read bu~ ~42.
~ he execut$on of various instructions will cause certain bit~ of the condition code register 448 to be set. For lnstructions which sense the condition code, register 448 alternatively becomes a source of data for bus 4~6. Tran~ceiv~rs 460 ~nd 464 provide yet another source of data for bus 446, i.e., the upper or lower 16 bits of ln~ructlon bu~ 456, r~p~ctiv~ly.
The data g~nerated ~n bus 446 may be routed to v~rlous de6tination6, e.g., RAM memories 420, 432, program ~emory 454, stack pointer 406, or progra~ counter 450. Stack poin~er 406 i6 a presettable up/down counter which enablss conventional stack operation6 as~ociated with $nterrupt handling and ~ubroutine calls. The st~ck i6 contained in the lower 256 word p~g~ Or RAM
me~ories 420 ~nd 432. In oper~ting the stack or the register Pile, identical data i5 written into identicAl ~ddres~s in both memories. Two memories thus behave in the s~me manner as a single lK word, dual port RAM memory would.
~ or in~truction which r~quir~ a push o~ the progr~m count onto the etack. The program count is captur~d in latch 510. It ~ubs~uently passe~ through the ALU 426, nibbls ~hifter 440, mux ~42, data bu~ 446 ~nd i~ writt~n to tha ~tack ~t the addre~6 provlded by ~tack pointer 406. On a return rrO~ interrupt or return from ~ubroutine, the ~tack pointer pOintB to the ~ddre~s of R~M 420 or 432 which provides the previously ~aved program count which is restored to pro~ram counter 450, v$a bus 446.

.

.;

~2~ 3 For immediat~ type operation~, ~h~ A ~ield 468 and B
fi~ld 470 are captured in the immediate opQrand latch 512 which provide~i the immediate operand input at the E3 input of ~LU 426.
Data movement b~tween the Central Momory ~nd the 5 microproc~or i~ via the rsgi~ter ~ile. S~aparat~ ~ddr. ~aes in the register ~ are used for th~ upper ~nd lower Pield of the ~emory addre~s ~nd a third cell iB used for the dat~. To wr~te to Central Memory, the f ir~t in~truction cycle moveEi the write data from R~M 420 to latch 436. ~ second instruct~on cycls r~ad~
10 the upper ~ddrose fi~ld from RAM 432 and the low~r ~ctdr~lss Y~ld from RAM 420. The 24-bit acldres~ i~3 thu~ c~lptur~d ~n la ch~ 424 and 434 and held until bu~ Arbi~ration Circuit 500 dot~rmin~
that ~he proceE~ r 8~ . D. on bu~ 32 corr~porld~ 'co ~hla processor I . D. eet-in E3wltches 4g~ Then, in 'che mAnner 15 pr3viously del3cribed, 'che addre6s and data i~ ~Dultiplexed onto common bus 102 or 104. To move data from Central Nemory lO0 to the regi~ter file, the address is formed as before in latches 424 and 434, but t~is tim~ the read data from read bus 106 or 108 is written into the regi~ter file, via multiploxor 442 and data bu~
2~ 446.
Control of the direct ~emory ~cce~ (DMA) aecti~n ifi by mean~ o~ a memory mapped I/O oy~t~m. I/O Addr~ bu~ 506 providas nn 8-bit addre~ tleld to do~lno 256 I/O ~ddr~oYe~ or rQgi~t~r~, each r~gister bcing 16 bit~ wlde. ~o wrlte to an I~O
r~gi~ter, thQ flr~t instruction cycle move~ th~ wrlte d~ta ~ro~
RAM 432 to la~ch 502. Then, a second in~truction cycle generate~
the I/O addre~ on bus 506. There ar~ ~our ~ource6 for thi~
addres~ -- the output of R~M 420, the output of latch 434, th~ B
~eld 470 ~r the R field 472.

.

To execute an I/o read, an I/o read instruction is executed during two cycles to generate an I/O addres~ on bus 506.
Mowever, in this in~tance, the read data from I/O read bu~ 444 i8 transferred into the register file, via mux 442 and data bu~ 446.
Interrupt Processor 486 is identical to the previously described Interrupt Processor 376, except that the mas~ing and vectoring of interrupts ar~ controlled, via the memory mapped I/O. A write to I/O register 503 (Figures 7a and 7b) set~ the interrupt mask and a read of I/O regi~ter 501 reads the interrupt vector. A four bit value indicates the highe~t of tw~lve po~sible interrupt levels which may be currently active~ Once the level of interrupt, which is indicated by a register to be described when the details of the Interrupt Processor are explained, i6 cleared, the next read of this register will provide the next highest active interrupt level. Table V below sets out the twelve interrupt levels. To avoid sonfusion ln the drawing of Figure 6, the control lines emanating ~rom sequence control logic 480 are purposely omitted.
Sequence control 480 ~Figure 6d) i6 responsiv~ to the Interrupt Request (IRQ) signal on line 482 or the Non-Maska~le Interrupt (NMI) signal on line 484 from Interrupt Proce~sor 486.
Special instruction groups are provided ~or writing information into or reading information from the central memory or from the I/O bus. Speci~ically, when the function code field is decoded and interpreted as a "read" or A "write" o~ the I/O
bu~, the addre6s for the I/O bus is from source B on a read, and from ~ource D on a write. The data from a nreadn i~ ~ent to the de~tination, and the data on a nwrite" is from source B specifisd by the instruction or can be the immediate value in the instruction register. Depending upon the bit permutations of the . ' ~ ~, ' ~ ' 12~ 73 function code, either direct or indirect addre~ing for the source and destination can be ~chieved. Llkewise, ~ function CX
(hex) is interpreted as a read or a wri~e on the m~in memory bu6.
The lower memory address iB from source ~, the upper memory 5 addre~8 i8 fro~ aource B. ~he data on ~ write ie from ~ourc~ D
while data on ~ read i5 eent to the ll-dicat~d de~tlnation.
Again, d~pcnding on the bit per~u~ations Or ~h~ CX in6truction, a read or ~ write of Central Me~ory using ~irect addre~ing or indirect addr~lng can b~ of~ected.
It ~hould al~ b~ noted th~ ~he 0xecution of in~truct$on~ havlng th~ BX ~nd CX function codes are de~lned by 6ingl~ in~truction~ bu~ both the ~ddre~ ~nd th~ location o~ the data are ~anipulated in ~wo separate cycles or ph~ of execution o~ those 81 ngle ~nstructions.
TA~LE V
Level Meaning 12 Nucleus Level 3 Interrupt (Pending Re~et) 11 Memory Fault - Proce~or Memory Fault - DirQct Memory Access 9 Device High Priority Int~rrupt 8 Write Controller Service Reque~t 7 Read Con~roller Service Regue~t 6 Nucleu~ Level 2 In~errupt ~Queue Element) Nucleus Level 1 Interrupt 4 Device ~ow Priority Int~rrupt 3 On ~oard Timer Expired Nucleu~ Level O Interrupt 1 De~ign Support Pod Requ~6t O Idle 9~73 Bit 4 through 15 - NOT USED
The condition code register ~48, is sixteen bits wide, and contains the condition bits set as a result of arithmetic, logical, shift or interrupt operations. The bits are a~ defined in Table VI:
TABLE VI
Bit 15 - 8 undefined Bit 7 NMI sequence Bit 6 - 5 undef`ined Bit 4 Interrupt enabl~d Bit 3 Operation result is e~ual to z~ro.
Bit 2 Operation result is negative.
Bit 1 A~U operation generated a carry.
Bit 0 ALU operation generated a~ ov~r~low.
DIRECT MEMORY ACCESS CIRCUITRY
Figures 7a and 7b together show a block diagram of the direct memory access circui~ry. This DMA circuitry ~unctions to provide automatic movement of data from an attached device to and ~rom Central Memory where the attached devices may be a communications trunk, a main frame computer or a cluster of low performance digi~al devices. The circuitry is comprised of four "read from memory" (read channel) and four "write to memory"
(write channel) DMA controllers. The read and write channels are full duplex, i.e., allow concurrent operation. A read channel operation and a wrlte channel operation may each be running a 50-megabit trans~er simultaneously or, alternatively, a ~ingle read channel operation or a single write channel operation may be run at a 100-megabit rate. Each controller is split into two ~ descriptors, i.e, Descriptor 0 and Descriptor 1/ which are linked such that i~ the .

6~

activs descriptor depletes, it will become inactlv~ and the alternate descriptor will become active. This provides a form of double-buffering for the DMA controller such that the controlling processor can update the inactive descriptor while maintaining uninterrupted DMA transfer. For eithex read or write channel operation, the device interface provides the desired controller selects. Therefore, to run multiple controllers, all controllers must be preloaded by the controllin~ microprocessor and ready for operation~
For single controller operations where the device lnterface does not provide controller select informat~on, the default is to controller no. 3. Any number o~ controllers may be used and selected, provided the controlling ~irmware is structured to conform to the device configuration.
Control of the DMA circuitry is provided by the 16-bit microprocessor of Figures 6a through 6d, via I~0 address lines 506 and I/0 write data bus ~04 which provide inputs to latches 501 and 503. The I/O address bus defines 256 memory mapped I/0 locations, some o~ which correspond to control regi~ters of the DMA circuitry. Address decode 520 ~rovides explicit decode lines for each of the discrete control registers. Shadow RAM memory 524 is a 256 word by 16-bit memory, which thus spans all of the I/0 address space. There are ~our kinds of I/0 registers --read/write, write only (control), status (read only) and ~5 "unused". When a read/write or read only register is re~erenced, the Shadow RAM is disabled. When a control address is ~ritten, the same data is also written into the Shadow RAM. A read of that same address causes the data to be read from the shadow RAM
and made available to the 16-bit microprocessor 444, providing an indication of the current status of the control register. All addresses not ~ used ,~ . . " , ' .
: .: ' ' ' O ~ 6~3 for DMA control are written and read from the Sh~dow RAM, making these addresse~ available a~ general purpo6e regi6t~r~. ~o~t of these re~ister~ are contained in DMA controller 526, which will be de~cribed in ~r~ater detail hereinbelow. The purpo~e of controller 526 i8 to provlde the continuou~ ~equ~nce of 2~bit addresse~ on addre~s bu~ 528 which ~re requir~d to ~upport DMA
operation.
A unique sequence of addres6e~ 1~ requlred Por e~ch descriptor o~ each controller for bot~ the read and the write mode. ~hus, a total of 16 unigue sequences are required. The range and length of each addres~ ~equ~nce i~ specified to the D~A
controller by writing into four registers. The~e r4gi~ter~ are contained in the lowe~t 64 addr~e~ of the I/0 addres~ spac~.
Con~ider, for ex~mple, the regi~tcrs as~oci~ted with the DMA
ContrQller 0, De~criptor 0 for write trans~er~.
Regi~tQr 00 - DMA Control (Raad~Wrlte) Thig regifiter i9 th~ DMA control for ~escriptor 0 oP
Write Controller ~.
: Bit 0 - Devioe Write Termination : This bit, when active hiyh, indicatQs the devic~ has terminated the DMA write to memory operation. The termination may bQ early or ~t the last byte/word. Thi~ bit i~ generat~d ~rom the wrIte Last ~yte ~ignal from the devl¢e interface.
Bit 1 - Byts Wrltd Term~n~tion This bit, when active high, indicate~ the DMA write to memory operation for thi~ descriptor terminated vn an odd byte boundary. If the device terminated the transfer, thi~ bit indicates the residual count in the de~criptor~ i8 plu5 one half word. ~hi~ bit i8 generated at the same time as the device write terminatl~n bit.

.

.
.

~8g6~3 Bit 2 and 1~ - Not Used The~e ~ourteen bits can be written and read from the Shadow ~AM for diagnostic purposes.
Register 01 - DMA Terminatlng Addrea~ (Read/Write) Thi~ regi~ter contain6 the ~ixteen bit D~A t~rminating address for Descriptor 0 of Write Controllsr Q. This r~gl6ter can only be load~d with the word addre6s of the desired buffer memory terminating ad~ress.
RQglster 02 - Upper DMA Addres~ Counter tRaad/Writ~) Thi~ reglster i~ an upper DM~ ~ddr~s~ counter for D~criptor 0 of Write Controll~r 0. The lower ~ bits cont~in the mo~t ~ig~iflcant ~ bit~ of the 24 bit ~uf~r me~ory ~ddr~ss ~or the DMA operation. The upper 8 bits of his r~gi~ter ~re not used, but can be written and read rom the Sh~dow RAM.
Register 03 - Lower DMA Addre~s Counter (Read/Write) This register is a lower DMA address count~r for ~escriptor 0 of Write Controller o. This 16 bit counter contains the lea6t significant 16 bits of the 2~ bit buffer mo~ory ,~ddr~s~
for the DMA operation.
This ~our-word pattern repeat6 ~or the remaining 15 sequenceB.
Consider now tha c~8e where t~e control reg.l~ter~ of controller 526 have been loaded and there iB data on the chann~l input 532. Thi~ appear~ in a ~ynchronou~ byte ~ormak. 'To each byte is added a ninth bit of parity by pari~y generator 53~. The first-in/~irst-out elastic buffer 536 provi~es the capability to buffer up to 16 bytes of data. Thi~ u~ficlent to p~rmit ~ynchronou~ transfer at both the port $nput and at the central memory interface without overflow or underflow. Alternate bytes lZ:B~3 Eit73 are captured in latches 540 and 5~2 ~o ~orm a 16-bit word which iB latched in latch 546.
Com~unication with Central Memory 100 1~ the ~ame ~a that previou~ly de~cribed. Bu6 arbitr~tion 576 compare~ the content~
of processor slot I.D. bus 132 with the proc~or I.D. ~witche6 574. When the ~MY SLOT~ ~ime arrive~, th~ ~tato o~ DMA k~y ~witches 564 i~ pl~ced on the A or B kQy bu~3 134, via ~ey bu~er 568. Since the DMA i~ a 16-bit lnterface, ~his key is ~lected to be presented to either th~ A or B bus, dopending on the connection of the common bus ~nd read bus per Figure 1. During the first half of the Central Memory cycle ~t MY S~OT t:Lme, the data from addre~s bu~ 5~8 i6 placed on common bu~ ~02 or ~ , and during th~ oecond half of t~e cycle~ t~e l~-bit wri~ d~t~ 548 ~
placed on the bu~. ~or tran~fer~ from Cantr~l M~mory to the channel, the proce~ simply rever~ed. If at MY SLOT time there i~ BUf ~icient ~pace in FIF0 552, a raad cycle of C~ntral Memory i~ performed.
Addres~ generation i6 a6 before, during the fir6t half of the memory cycle. During the second half of t~e memory cycle, the read data appear~ from either bus 106 or 10~ and is captured in latch 562. The output of this latch, a 16-bit word plus 2-bit~ of parity, 1s ~plit into two byte~ 55~ ~nd 560, each with their aesociated parity bit. These become the two input~ ~nto multiplexor 556. Thi~ selection of multiplexor 556 i~ toggled at 25 each byte time to di~a~semble the word into a ~rial byt~ ~ormat on data path 554. Data is clocked out of the FIP'O to the channel out bu~ 550 at the channel synchronous rate, nomin~lly 50 megabits per ~econd.

. ' .' ' '', '. `

. ~

DMA CONTRO~.LER
Figure 8 ~how6 a detail~d block diagram of the DMA
Cnntroller 526 of Figure 7. Th~ afore~entioned 64 I/O r~gister~
w~ich define the 16 po~sibl~ ~MA 6equences ~re comprisQd of dual port RAM memorie~ 636 through 642. The control RAM 636 i~ a 16 word by B-bit RAM where e~c~ word corr~ponds to onn of th~
a~or~ent~oned oontrol r~gi8ter8~ Simil~rly, ~ory 638 contain~
tbo 16 r~gi~t~r~ a~sociated with tarmination addr~ 640 tv 16 r~gi3t~r~ associated with the upper ~ddr~s~ ~nd 642, ~he 16 r~gisters a~ociated wlth the lower ~ddre~s. The ~MA i~
lnltiali~d by writing to the~ r0gi~t~r~, vla addr~ u~ 505 and data bu3 507 on a rogi~tor-by-r~gint~r b~-$~. Co~tol r~gi~ter dat~ i8 wr~ttan, ~ia multiplex~r 632, wh~ls all oth~r da~a ~B writt~n v ~ multiplexor 6280 Port A i~ u~d ~or ~11 I/O
operations and for a read of any of the contr~l reg~at~r~. T~e A
port data output i~ provided to the I~O read datA ~u8 444. ~ased upon the selected controller, the descriptor ~nd the ~ode, i.e., read or write, centrol 614 plac~e a 4-bit ~ddre~ en bus 616 w~ich propag~te~ through ~ultlplexor 622 to provido th0 port ~ddr~Rs to all four RAM me~orie~.
DMA operation 1~ ~nabled by writing ~ se}ected bi~
patkern to r~gister 52, the DMA Control Regi~t~r. The control ~unction of each blt o~ ~hi~ rsgister i5 aa ~ollow~:
Bit O - ~nable Read Channel Thi~ bit, when active high, enable~ the D~A read data chann01 for all con~roller~ ~hi~ bi~ mu~t be con~itioned with a valid read controller ~el~ct, ~he eele~ted controllers de~cr~ptor~ not empty ~nd the enable read regue~t ~ctiv~ h~gh to fitart a DMA tran~er.

, "

'' ', ' ', 96~3 Bit 1 - Enable Write Channel Thi6 bit, when active high, enabl~ the DMA write data channel for all controllers. ~his bit mu6t be conditionsd with the ~elected controller de~criptor3 not empty and the Enable Write Rbquest act~ve high to start a DMA tr~n~fer.
B~t 2 - 50 MHz/100 ~Hz Not Mode Thi~ b~t, wh~n actlvc hlqh, indicat~ to the D~A m0mory cycl~ requ~st hardware th~t the 810t acce~ profile i~ ~et to 50 ~Hz for the DMA board. l'hi~ bit, when activ~ low, indic,at~6 te the DMA memory cycle reque~t hardw~re th2t the slot ~cce~
profile i8 ~et to 100 MHz ~or the DNA board.
Bit 3 - Enable ~g~ent C~unt~r U~e Thi~ bit, wh~n active hlghj ~nabl~a u~o o~ th0 ~gm~nt counter for read D~A tran~er~. When enabled and th~ ~eg~ent coun~er equals zero the hardware w$11 chang~ controllers 1 directed to do ~o by the read controller ~elects. If thi~ bit i~
act~ve low th~ ~egment counter i~ not us~d and the r~ad controller ~elect~ may change on each transferred.
Bit 4 - Parity Sel~ct This bit, when ~ctive low, ~elect~ odd parity to be check~d by the hardw~re. ~hle b$~, when activ~ high, ~elect~
~ven parity to be ohecked by the h~rdware.
~lt 5 - E~able Loopbac~ Mode Thi~ bit, when nctlve hlgh, enabl~ tho conn~ction o~ the r~ad from memory data path tc the wrltc to ~mory data path ~t th~ device interfac~.
B$t 6 - Enabl~ R~ad Request Th~ bit, when ~ctive high, enablee ~ha re~d from me~ory reyuest hardware on the DMA board. This bit must be enabl~d ~or 3~ an~ rQad DMA transfer~ to occur.
:

o ~%~ '73 ~it 7 - Enable Write Re~u~6t ThiE; bit, when active high, ena~les the Write to Memory ~eque~t hardware on the DM~ board. This b~t mu~t be ~3nabl~d for any write DMA tranQfer~ to occur.
5 Bit ~ thru 15 Not Usad The content~ of each of the four conltrol r~gi~t~r~ , i . e ., one ~rom eac21 o~ q m~mor~e~ 63~ to 642, ~ sp~ci~ied by tlle addrQsE~ on addreE~s bus 630, are ~vailable ~t the B port àata out of a~ch RAM. A 16-bit output 65~ ~rom thl~ low~r ~2ddr~ RAM iæ
10 combined with ths 8-bit output 65~ from th~ upp~r ~ddress RAM to ~orm the 24-bit addre~s 528. Ou~cput 652 prov~d~3s or.e input to bir~ary adder 6~4. Tha oth~r input ~56 il3 a hzlrd-wired v~lue of +2. Thus, th2 pr~nt ~ddr~s 652 +2 i~ captur~d in multiplexor latch 628. W~2en the current central memory tranl3fer i~ omplete, 15 a write operation i~; performed on RAM memory 642 and the value contained in latch 628 be~o~e6 the nes~ ~ddr~3~s prQ~ent ~t 652.
Note that the ~ddition i~ performed on only t~e lower 16 bits o~
the ~ddre~s whicb ~p~ci~y one 65~ pagQ o~ memory. As a con~equence, ~ DMA ~equence c~nnot be program~ed to span a page boundary. Once a DMA ~equence has been initiated, it p:roc~eds automatioally until there is a ~uspen~ion o~ dat~ or it reache~
th~ termination addres~. Output 650 o~ a ter~lnation ~ddre~s RAM
63~ contains ~he termination a~dreas. The curren~ addre~s 652 i~
comp~red to thi~ v~lue by co~parator 64~. Comp~r~tor 64~
~ctivate~ upon a ~atch of the terminatlon addros~ and the current ~ddress. Line 608 i8 activated to cause control 614 to ~witch to the ~lternate de~criptor and at the ~a~2 ti~e generate a~
Interrupt Request on line 501 to the 16-blt ~icroproces~or. The new de~criptor c~uses a new addre~s to be gen~rated on address bus 630 which point~ to a new ~et o~ control regi~ter~ ln the control RA~6. Thu~, the DMA transfer c~n con~inue without .' ` ~, , 12~6~3 interruption while the microproce~sor update~ the inacti~e de~cript~r I~ a l~vel ~ interrup~ ensed, regi~ter 44 i~ r~ad to determine the required control action.
The function or the meaning of each o~ the statu~ bit~ o~
regi~ter 44 i8 aB follows:
Regi~ter 44 - Write DMA Controller Statu~ (R~ad) Thi~ request is u~ed to determined the 8t~tU8 of ~he wrlte DMA controllor~.
~it 0 - Write Controller 3 De~crlptor 0 ~ull Thi8 bit, when actlve high, lndicat~ de~criptor 0 of write controller 3 i~ ~full~. The d~cription Or ~ull la that t~e descriptor has bsen load2d, the count i~ not ~qu~l ~o zero and the Device Write Termination bit in the de~crlptor cvntrol regl~er iB not actlve.
~it 1 - Write Controller 3 Descriptor 1 Full This bit, when aotive high, indicate6 descriptor 1 of write controller 3 iB ~full~. ~he description o~ full is that th~ descriptor ha~ ~een loaded, the count i~ not equal to zero and the Device Write ~ermination bit in the d~cr~ptor control regi~ter i6 not active.
Bit 2 - Writ~ Controller 3 Descriptor Point~r This bit, wh~n ~ctiv~ high, indic~to6 De~crlptor l i~
active and io the deucriptor currently being u~ed ~n the DMA
operation. Thia bit, when active low, indicate~ De~criptor 0 i~
active and i~ the descriptor curr~ntly b~ing u~ed in the DMA
oper~tlon. When firat loading descriptor~ to atart a DMA
operation, the descriptor pointer i5 pointing to the de~criptor that the hardwar~ will use fir~t. To det~rminl3 which de~criptor to load vhen a write controller ~ervice request level 8 interrupt is received, the descriptor full bits must be checked. If the ~:13967~

point~r i8 to Descriptor 0 and the De~criptor 0 full bit is inactiv~, D~acr~ptor 0 should be loaded. I~ t~ pointer ~ to De~criptor 0 and the De~crlptor 0 ~ull bit i~ ~ctive, De~cr~ptor 1 should be loaded. If the pointer is to De~criptor 1 ~nd the D~cript~r 1 ~ull bit is in~c~ive, De~criptor 1 6hould b~ load~d.
If the pointor i~ to De~criptor 1 and the De~criptor 1 ~u11 ~it i~ ~ctive, DQscr.tptor 0 ~hould be loadc~. Th~ point~r bit and two ~ull blts ~ay be u~ed ~ a ~kip v~luo to determin~ wh~t des~r~ptor to ~ill.
Bit 3 - Write Controller 3 Service Requ~t ~ hi6 bit, when active high, indisato~ Wrlte C~ntr~ller 3 ha~ ued a level eight interrupt and i~ r~que~tin~ 3ervice, Bit 4 - Write Control1er 2, De~oriptor 0 Full Same de~criptlon a~ bit 0, Write Controller 3, De~cr~ptor 0 ~ull.
Blt 5 - Write Controller 2, De~criptor 1 ~ull Same descript$on as bit 1, Wrlt~ Controllar 3, Des~rip~or } full.
Bit 6 - Wrlte Controller 2 Descriptor Pointer Same de~cription as bit 2, Write Controller 3 da~criptor pointer.
Bit 7 - Write Controller 2 Service ~equc~t Same deficription ~6 bit 3, Write Controller 3 ~ervice request.
25 Bit 8 ~ Wrlte Controller 1 Descriptor 0 Fu11 Same de6crlption ~g blt 0, Write Controll~r 3, De~criptor O ~ul 1 .
~it g - Write Controller 1 Descriptor 1 Full ~ Same de~cription as bit 1, Write Controller 3, Descriptor 30 1 fu11.

_~9_ ~L2~96~

Bit 10 - Write Controller 1 D~scriptor Pointer Same de~cription a~ bit 2, Write Contr~ller 3 d~scriptor point~r.
B~t 11 - Writ0 Controller 1 Service R~qU~Bt Same de6cription a~ bit 3, Write Controll~r 3 ~ervice r~qus~t.
Bit 12 - Write Controller O Deacriptor O Full Same de~arlption a~ bit 0, Writ~ Controll~r 3, D~crlptor O full.
Bit 13 - Write Controller 9 Descriptor 1 ~ull Same de~crip~ion ~ bit 1, write Controll~r 3, Do~criptor 1 Pull.
: ~it 14 - Write Controll~r O ~e~criptor Polnter Sa~e de~cription as bit 2, Wri~e Controller 3 de~criptor pointer.
Bit 15 - Write Controller O Service Request 5ame ~e6cxiption a~ bit 3, Writa Controller 3 ~ervicè
request.
If a level 7 interrupt i6 ~ens~d, r~gi6ter 45 i5 r~ad to 2n determine the required controlled action. The meaning o~ each status bi~ of register 45 is follows:
Register 45 - Read DMA Controller Statu~ (Read) ~ his regieter i8 used to determin~d the ~tatu~ of DMA
read controller.
~it O - Read Controller 3 De~criptor O Full Thi~ bit, when active high, lndicat~ D~scriptor O of R~ad Controller 3 ie ~full~.~ The descr~ption of ~ull iB th~t the descriptor has been loaded and the count is not equal to zero.

.

~2~3673 Bit 1 - Read Controller 3 Descriptor 1 Full Thi~ bit, when active high, lndicat~ Descriptor 1 of Read Controll~r 3 i~ ~fUllY. The de~crlption o~ ~ull i~ that th~
de~criptor ha~ been loaded and the count 1~ not equal to zero.
Bit 2 - Read Controller 3 Descrip~or Pointer ~ his bit, when active high, indicates D~criptor 1 is activ~ and i8 thQ descriptor currently being u~ed in the DMA
oper~tion. This ~it, when active low, in~icat~ De~criptor 0 is active and i8 t~e ~e~criptor currently being u3ed in t~e DMA
operation. When ~irst loading de~criptor~ to otart ~ ~A
operation, the descriptor pointer iB pointing to the descriptor that the hardw~re will u~e fir~t. To determin~ which descriptor to load wh~n a read controller aervice r~qu~t level 7 i~terrupt i8 receiv0d, the ~descrip~or ~ull~ ~it~ ~u~t b~ check~d. If the pointer i~ to De~criptor 0 and the ~scriptor 0 ~full~ bit ~ 8 in~ctive, Descriptor 0 should be loaded. If the pointer i~ to Descriptor 0 and the De~criptor 0 full bit i~ active, De~crlptor 1 should be lo~ded. If the pointer i~ to De~criptor 1 and the Dascriptor 1 ~full~ bit i8 inactive, De~criptor 1 should be loaded. If the pointer is to Descriptor 1 and the Descriptor 1 ~$ull~ bit ia active, Descriptor 0 should be loaded. The pointer bit and two full bits may be u~ed a~ a sk.~p value to determine what d~scriptor to fill~
Bit 3 - Read Controller 3 Service Reque~t This bit, when active high, indicate3 Read Controller 3 has i~ued a level seven interrupt and ia requa~ting ~ervice.
ait 4 - ~ead Controller 2 Descriptor 0 Full S~me de~cription i~ bit 0, Rea~ Controll~r 3, De~criptor 0 full.

8~36i73 ~it 5 - Read Controller 2 ~e~criptor 1 Full Same de~cription a~ bit 1, Read Controller 3, D~criptor 1 full.
Bit 6 - R~ad Controller 2 De6criptor Point~r Same d~cription ~5 bit 2, Read Controller 3 de~crip~or pointer.
Blt 7 - ~ead Controller 2 S~rvlce Requ~ut S~me de~cription ~ bit 3, Read Controller 3 ~rvl~e ~lqUQBt .
~it 8 - Read Controller 1 ~sscriptor 0 ~ull Sa~e de~cription ~8 ~i~ 0, Re~d Con~roller 3, D~criptor 0 ~11 D
Bit 9 - Rea~ Controller 1 De~criptor 1 Full Same de~cription as bit 1, Read Controller 3, Descriptor 1 full.
Bit 10 - Raad Controller 1 De~criptor Point0r ~ame de~cription a~ bit 2, Re~d Controller 3 descriptor pointer.
~it 11 - Read controller 1 Service Requ~t Same de~cription a~ bit 3, Read Controll~r 3 oervioe request.
Bit 12 - Read Controller 0, De~criptor 0 ~ull Same de~cription a~ bit 0, Read Controll~r 3, De~criptor O ~ull.
~it 13 ~ Read Controller 0 De~criptor 1 Full Same descriptio~ ~ bit 1, Read Controll~r 3, Dzscriptor 2 ~ull.
B$t 14 - R~d Controller 0 Descriptor Point~r Same de6cription a~ bit 2, Read Controll~r 3 descriptor point~r.

~LZ !39~73 Bit 15 - Read Controller 0 Service RequeElt Same de~cription as bi~ 3, Re~d Con~roller 3 sEIrvice r~quest .
A DMA cycle may b~ ex~cuted ~v~ry 160 n~no~e¢ond~ to 5 provide a 100 megabit bandwidth. Fifty m~g~bit duplex op~ration i~ accompli~led by alternating road and writ~ c:ycles, i.e., ch~nglng the ~ddre~aE~ on ~ddrelss bu~ 630 ~1rom r~ad to write on ~ACh cycl~. ~n eimll~r m~nner, intarl~v~d op~re~tion3 betw~n twc) or more controll0rs c~n be performed to ohare the tot~l 100 10 megabit potential bandwidth.
STORAGE PROTECT
~ i~ure 9 3how~ a detailed ~loc:k diægram vf th~ l~ank 0 Stor~g~ Protect~f,n c:ircuitry . The ~3tz~tc of EluE~ nX S~lect 1 ine 138 d~atermin2~ the ~ourc~ of input data fro~ multipl~Yor latch~6 15 600, 602 and 604. W~en line 138 i~ in the low ~tate, the 4-bit A
key f~eld, ~rom bu~; 13~ ~ captured it latch 600 during the flr6t phase of the memory cycle. At the same time, the 24-bit addres~
field Prom A common hu~i 102 iE; captured in l~tch 602~ During the second half of the ~;ame memory cycle, the 16-bit writ~ fiel~, 20 al~o .from A common bus 102, 1~ captured in latch 604.
A~terrlatively, when line 13~ i~3 in the high fit~t~ the B key bus ~ield and H adàres~ and write data f ield~ ar~ c~ptur~d~
Storage prot2ction 1~ ~ctive only wh~n ~lip-~lo~p 646 ie ~at. The ~tate of this flip ~lop i9 controll~d by th~ 1~3~t 25 ~igni~icant d~ta bit, D0, written to ~ddrs~ 00~110040H. A write to thi~ addre~ actiYate~ slecode 1 lns 6~8 61uch th~t a~ ~lmo T60 AND gate 650 i~ enabled to clook flip-f}op 6~6 to ~he state preBent on lin~ 612, i.e., data bit 0~ Once flip-flop 646 h~s been set, a ~ub~equent write to thia eame addre~ enabl¢6 ~ND
30 ga'ce 652 to clear ~lip-flop 630, causing any previously registered memory fault condition to be reset. Multi:plexor 63 ' ~2~396~73 ~elect~ one of two address field~ ~rom the 24~ it sddrQ~s pr~sent on internal address bus 608.
The output of multiplexer 634 provideE~ ~ 12-blt ~ddra~36 to the 4096 word by q-bi'c ~ memory 636. During normal 5 op~ration, decode 642 i8 low, cau~ing ~ read operation. Read data from memory 636 appear~ on the 4-bit bidirectional data bus 614. Ths 4 bits of road d~ta ~rorn RP.M m~mory 636 and tlhe 4 bits oP k~y data ~rom lAtch 600 ar~ c~ptur~d in latch 616 e~nd ~IppeAr on output buE~es 620 and 618, rat~pectiv01y.
If the key data and the RAM ~n3~nory read data do not match, the c~utput of comparator 622 ieil hi~h. For ~11 write cycle~, decode 626 i~ also high. With flip-flop 646 ~at, ~ny memory ault c~u~es AND g~te 627 ~o b~ ~n~bl0d ~nd ~t time T8~, thiE~ ~tate iE; captured in flip-flop 630. Once3 flip-flop 630 has 15 ~et to register a Bank 0 ~emory fault on output line ~532, feedback ~rom ~he Q output to the flip-flop's ~pr6l8et~v input aasure~3 that it remainB 5et until cl~ared by wr~ ting to address 008 1004 0~ . , The key code 0 1~ used only by th~ control proce~3~or tD
20 alter the key table ~ored in memory 636. Thi~3 condition activateB decode line ~42, putting memory 636 in the write mode.
~t al~o enable~ the ou~put on tri~state bu~r 644 ~uc~ tllat the lower four bits of data captured in latch 604 are writt~3n into the RAM memory cell a~ociated with the ~ddreE~ then l~tched in 25 602. A Bank 0 memory fault cloc::ks tri-~t~te latche~ 638, 640, 654 and 656 to cause the key f ield, the upper elgh~ bit of address and lower 16 bits of address to b¢ captured, re~pectively. Th~s enableE~ the Nucleu~ Proce~or or ~any other proce6~0r in the ~y~tem to execute fault i~ol~tion diagnostic~.
30 A read of address 00~10050~ acces~3es the d~ta in latches 638 and _5,~ _ ~2139673 640 on El~nk 0 read bus 224, whilq3 a raad o~ ~ddr~s~ 00810052 acces6es the d~ta in latch 654 and 656 on the ~ank 1 read bus 226. Elank 1 ~tor~ge protect circultry 1~ ident~cal to that ~hown and described in con~unction w~ th Figur~ ~, except for th~
5 elimination of flip-flop 646 and AND gate~ 650 ~nd 652.
P~CCES6 CONTROL
Table A, supra, identi~i<3d a hyE~oth~tlc~l ~cc~ o~E
proc~s~ors to bue,eg ~or the various tirno ~lot~. This time ~lot 2~ignment i~ referr~d to a~ t~ y~tem pro~110~. G~n~rally, it 0 i8 ~sira~le to provide field selectab~ y ~ong a number of lagal profiles while, at the~ tlloe, preventing the ~el~ction of an ill~g~l pro~ile. Figure 10 show~ a d~tailed block di~gram og 'che ac ~813 control circuitry which acco~pli6~he~ thi~. ~he Acces6 Control circuitry includes a m0mory ~70 which pr~erably i~3 2 256 15 word 8 -bit progra~mabl e re~d ~nly memory containing 16 po~ible system profiles, ~ach proPile being 16 con~cutiv~ word~. ~h~
lower 4 bits oP address ~re prosrided by ~-bit tim2- ~lot counter 674, which is clc?cked by the nT 40~ signal, ~uc:h that a n~w addre~s i~ g~nerated for each 80 nano~econd tlme lot. The data 20 read from r~emory 670 i~ captured in l~tch 6B0, ~he output o~
which i~ th~ proces~or I . D. bu~ 132, ~nd a portion o~ that bu~
compri~e~ the Bufi/Bank Select line 138. The pro~ile ~WitC~l block 672 contalns ~our ~wi~cheEI, eacll one corre~ponding to on~ o~ the ~our higher ord~r addre~ bit~ for memory 670. Thul~, any one G~E
25 ~he 256 ¢ombinations that the switche~ in block 672 can ba Get to correspond~ to ~ diP~arent pro~ile, i~2~ ~ a di~r~r~nt ~uence o~
proce~or I~Do bu~ sign~ls.
Addr~ bit 0 fro~G ~emory 670 control~ t21e reset o~
coun~er 67~. Thi~ allowG prorile ee~ence~ o~ le~s than 16 to be 30 lmplemented. For example, a profile F:equence of 8 time-slots .
. . .

.

~L2~3~36~3 would have address bit 0 programmed to be "0" ~or the first 8 addresses and a "1" for the ninth address to causa a reset of counter 674. A read of address 00810020H activates decode l~ne 681 to allow the state of profile switches 672 to be read, via tri-state buffer 682 and over Bank 0 read data bus 224.
INTERRUPT CONTROL
Figures lla and llb when arranged as in Figure 11 show a detailed block diagram of the Interrupt Control block 216 of Figure 3. Each processor in the system may be both a source and a destination of interrupts. Interrupts are routed between processors via the system interrupt bus 136. This bus is controlled in a sequential manner polling for inputs and distributing outputs. A poll cycle is made up of four 80 nanosecond subcycles. Each poll takes 320 nanoseconds. Up to 16 processors may be polled with each processor able to process an interrupt every 5.12 microseconds. System interrupt bus 136 is comprised of the following lines:
1. A sync signal that indicates a start sf a new polling sequence. This signal is active during the first subcycle.
2. Four interr,upt identifier signals designated IREQID 0 through 3. Two priority leve} signals, Nlevel 0" and "l~vel 1", which are encoded to provide four levels of priority 00 being the lowest, and 11 being the highest.
4. A XMIT signal which is asserted by the originating processor to indicate an lnterrupt.
5. A RCV line which is asserted by the interrupt control to relay or echo the interrupt.
During the first polling subcycle, the Interrupt Control asserts the sync signal along with the 4-bit interrupt identifier code. During the second subcycle, only the processor wlth an 6~3 I.D. matching the polled interrupt identifier i~ eligible to present an interrupt. If t~le eligible prQc~sor has an interrupt to pre~ent, it will activate the ~MIT ~ignal ~nd ~l~o pres~nt the I.D. code of th~ dastination proces~or. During the second 5 ~ubcycl~, the int{~rrupting proce~}30r al~o pl~c~ the prlority 1eYe1 Of the int~rrupt en the interrupt l~v~1 lln~. The priority le~rel~, in ~inary, Arc 00, th~ low~t pric~rlty 01, 10 and 11, the highe~t priorl~cy lavel. I~ ~nd only il~ a proce~r h;!l~ originated an interrupt on the second cycle, the Interrupt 10 Control w~ll, during ~he third cycle, aæu~rt the RCV llna and relay the int~rrupt I . D. and l~vel ~ignals pre~ent during the ~econd ~ubcycle. During tha fourth ~u~c:yç:le, the interrupt control again place6 ~F~O~" proc~ or $dænt~ r, i.e., th~ E~A~
I . D. code us~3d in the f ir~t ubcycle, on the ~nterrupt roqu~t 15 I . D. line ~ through 3 . Polling of interrupte i~ ~ct1vat~d by enabling the enable poll line 748. Thi~ ocompli~hed by writing a one to memory address 008100~0H. Polling m~y, at any time, he di~abled by writing a 0 to this ~me ad~res~. Wlth pollillg ~nabled, the ~160 clock~ 6et~ flip-flop 746 to activate the sync line which enables the outputs of the A section of the dual 4-bit tri-~tate buffer 724. ~his cau~e6 the polllng int~rrupt reque~t I.D. code to be plac~d on the sy~tem int~rrupt bu~ 136. The eource o~ thi~ I.D. code i~ the four l~ast ~ignificant bit~ of the ~y~tem timer bu~ 221 (Fi~ure 3). It 25 ~hould be rec::alled that the sy6tem timer i~ incr~m~nted by ~clock 60~ a~c~ 700 iB clocked at the beginning of every polling ~u~ycl~ .
~ he dest~n~tion code and prior:lty l~vel generatl3d by the interrupting proceEIsor durinq the Eiec:ond ~ubcycle i~ captur~d in latch 700. It propagate~ through AND/OR logic gates 702 through .

. -57-~2~39673 712 and on the trailing edge of the n40 clock~, it is also captured in latc~ 714. During the thir~ polling subcycle, the RCV line goe~ low, and the content6 of latch 714 are pre~ent~d on the roque~t I.D. and priority level line~ o~ the ~y~t~m interrupt bu~. During the ~urth p~ ny ~ubcycl~, ~lip-flop 740 i~ ~et anabling the B ~ection of dual 4-bit tri~tate buffer 724. The source int~rrupt reque~t I~D. i8 again pr~o~nt0d on the ~y~tem bu~. Thi8 originates from the ~ystem ti~er bu~ 221, propagating through AND gate6 716 through 722.
During norm~l operation, Interrupt Con rol neithQr orig~natss nor receives interr~pta. In th~ ovont o~ a ~mory fault fro~ the storage prot~cti~n circuitry, the Int~rrupt Control generatss a forced interrupt of the higha~t priority, i.e., 11. BQcause of the criticality o~ thi~ fault, thie interrupt uses the firat available interrupt polling 610t and is ~; immedi~tely impressed on the ~nterrupt bue.
memory ~ault on line 21q clock~ ~lip-flop 730 to the ~et state. If polling ia enabled, AND qate 726 i~ thus enabled and on the next ~160 clock~ time flip-Plop 728 i~ cl~ared. This ~0 forcea the output of AND gate6 716 to 7~2 to ~ 0~ and forces a requast I.D. aode of 0000 onto the ~y~tem interrupt bus 136.
This I.D. code is re~erved for Interrupt Control, thu~ no other proce~or will attempt to respond. AND gAtes 702 through 708 are disablod causing a 000 I.D. code to bQ gorced ~nto l~tch 714.
Ths output of 0~ gates 710 and 712 are forced to a N~ to cause the h~ghest priority interrupt level, 11, to also be c~ptured in latch 714. AND gates 716 through 722 are di~abled forcing a reque~t I.D. code of ~oooon. ~he effæct o~ th$~ force i5 to override any other proceasor interrupt activity to a~sure tbat the ~emory fau}t is immediately pr~ces-ed.

~ .

.

INTERRUPT PROCESSOR
Figures 12a-1, 12a-2 and 12b together show a detail diagram of the Interrupt Processor 376 of Figure 5. The function of the Interrupt Processor is to capture all interrupts generated on the system interrupt hus, sort them by level, present the interrupt in a priority encoded form to microprocessor 350 via bus 378 and provide for the orderly transfer of interrupt data to the microprocessor, via data bus 362. It is further responsible for transmitting interrupts generated by microprocessor 350 in accordance w.lth the polling protocol.
Consider first the case where the Interrupt Proce~sor is originating the interrupt. Microprocessor 350 initiates the interrupt by writing to address 00810040H. This activates Pl PROC. INT. RE~. line 806, which clocks tri-state latch 804 to capture the lower seven bits Do D6 data word. The~ bits, starting from least significant to most significant, are the interrupt request I.D. O through 3, level 0, level 1, and XMIT.
Thi interrupt re~uest on line 806 also sets flip-flop 808 and presents a nlN to bit D0 of latch 800 via line 810. Latch 800 is clocked at the beginning of each polling subcycle and in addition to DO, captures on input~ Dl through D8, the interrupt request I.D. 0 through 3, sync, level 0, level 1, and RECV, respectively.
~he B inputa of comparator 802 are connected as ~ollows: B0 is hard-wired to the '~1" state, B1 and B5 are hard-wired to the '~0"
state, and comparator inputs B2, B3, B4 are connected to the proces30r I.D. bus 380. Thus, when Q0 o~ latch 800 is a ~
indicating an interrupt request from processor 1 i~ pending AND
input Al is a ~on and inputs A2, A3, A4, correspond to the processor I.D., and the SYN i6 low, the A and B input~ match and the output of comparator 80z goes low. This condition only .

~L2E~95~3 happens then when there i~ an Interrupt RBqU~8t p~ndinq and proce~sor P1 has reached itB turn in t~e polling cycle. When the output of comparator 802 goe~ low, the contents o~ latch 8~4 are pre~ented on th~ ~y~tem interrupt ~u~ ~36. At the ~ams tlme, flip-flop 808 i~ claared the interrupt i~ now on th~ ~yut~m int~rrupt bu~ 136 and the Interrupt Control circuit wlll ~nage the d~stribution o~ th~ int~rrupt ~ prev~ou~ly ~aecrib~d. ~lth rlip-~lop 808 cleared, on the neXt ~ubcycl~, ~lock lln~ 812 go~E
low, di~abling comparator 802. The sy~tem will not re~pond ~galn until the Pl pro~e~60r generate6 the next Interrupt Reque~t on 80~.
Next, consider the ca~e wher~ th~ Pl proc~ssor is th~
dQ~tin~tion o~ an interrupt. R~call that th~ Int~rrupt Control a~erts the R~V signal during the third subcy~le to indicata th~t the I.D. ~ield contain~ ~ de~tlnation code o~ the interrupt. The B inputs o~ comparator 8I6 ara connect~d a0 ~ollow~: B0 and B4 ~ro hard-wired to 0 while Bl, B2, and B3 2re connectqd to the proce~sor I.D. bu~ 380. When the data ~ro~ th~ thlrd ~ubcycle ha~ been captured in latch 800, the outpu~ Q8, lin~ 814, will be low. I~, at ~he ~ame time, I.D. 0, 1 and 2, corre~pond to proc~sor I.D. 1, 2 and 3 and I.D. 3 i~ al~o ~0~, the output o~
comparator 816 will be low. At time 40 when CLK 409 goes high, ~llp-Plop 822 will be ~et ~nd flip-~lop~ 818 ~nd 820 then capture the interrupt level. Twenty nano~econds later, AND g~t~ 826 i~
~5 enabl~d. NAND gate~ 8~ throug~ 834 ar~ u~ed to dacode th~ 2-blt l~v~l code contained in 1$p-flop~ ~18 and 820 into a discrete sign~l ~or level 0 ~hrough level 3, re3pectiv~1y. By thi~ t~e, the data ~rom t~ f~urth polltng ~ubcycle ha~ b~on latc~d lnto latch 800 and the I.D. field now contains t~e code ~ociat~d 30 with the oriqinator of the interrupt.

~IL28~6`-~3 Circult~ 854 through ~60 (Figure 12b) are id~ntical interrupt receiver~, one provi~ed for each interrupt level. If the received interrupt level iB ~0~, line 836 goes low to 8et the 16-bit addres~able latch 862 and ~et ~he bl~ ~esignak~d by the request I.D. field captur~d in latch 800. At the ~a~e time, flip-flop 370 ~ pre~et, c~u ing t~e Q output line 871 to gc low.
Priority ~ncoder 872 encode~ the hin~ry v~lue o~ the highe~t ord~r D-input which i~ a ~o~ into ~ 3-bit co~o pr~nt in output~
QO, Ql, Q2. Without ~ny interrupt actlvity, th~ normal E~tatl3 0 lnt0rrupt bus 37~ i~ 000. A l~vel O int?~rrupt ~t~ thl~ to 00~, indic~ting in~arrupt tc~ tha P~ ~lcroproc~or 350.
On the next microprocesRor in~truction cycle, the control i8 automatically vectored to the interrupt proce~ing ~out~ne gor level O interrupt~. Th0n microproce~or d~termines the ~ource o~
the i~terrupt by r~a~ing addre~s 80200000 to 8020000C. Thi~
presents a 00 to the SO 1 inputs decoder 82~ and cau~es the Enable to go low, thus cAusing output Qo llne 8 46 to go low.
When line 846 goos low, the content~ o~ ~ddr~ ble latch 862 are captured in 16-blt tri-~t~t~ latch 864.
SOFTWA~E CONTROL STRUCTURE
The operation of the network adapter d~cribed herein depends upon efficient high-sp~ed intorproce~or communic~tion.
The unique hardware ~eature6 which ~upport this operatlon have bQen previously describ~d. ~o thi~ is ad~ed a sortware control structure based upon the data linkage ~tructure shown in ~igure 13. All interprocessor communication u~e~ a par~ not all, of thi~ linkage 6tructure. As~ociated with ~ch proc~sor within the C~ntr~l Memory 100 of the networX ad~pt~r ~r~ two quoue l$at~
- an inbound (r~ad only) list and ~n outbound (writ~/read) li~t.
~he list~ are or~anized in 2 circular manner with ~ control bloc~

,...................................... . .
.

i73 to provi~e a pointer to the next opan entry point of ~ list. For any proce~or arbitrAYily da~ign~tQd a~ ~A~ to com~unicate with ~nother proce~oor ~rbltr~rily de~lgnated ~ a~, pro¢~a~or A
first read~ the control block a~ociated wlth the inbound qusue 11st of proceBBor B, Qnter~ a n~w queu~ e10~Qnt at t~e n~xt ~ntry point on said li~t and then generate~ an approprl~t~ ~svel interrupt to proce~or B. When interrupt~d, proas~sor B re~oves the queue element ~rom processor A ~rom the~ inbQund qu~ue llGt and re~et6 t~ control block pointer. In tha qu~u~ ment iB a To/From field which identi~ie~ t this particular qu*ue element i~ TO proce~or B FROM proce~or A. Anoth~r fiQld, t~e R~qu2~t Code field, provides ~or a number of prede~in~d m~6~ag~s which may b~ p~ss~d. Cer~ain re~uest COdOB m~y b~ uaod to d~in0 ~peci~ic operation~, such a~, ~allocate c~ntr~l ~emory bu~or~, ~e-alloeate central ~e~ory buf~rsn or ~tr~naP~r own~r~hip of a data li~t~ or a ~l~g out~. Certaln x8que8t cod0~ r~quir~ no a3~0cia~ed da~ ~nd, in thi~ case, the qu0u~ el~mont it~el~
compr$~es the mes~ase pa~ed betwe~n proce~sor A and ~. Certain othzr reque~t code~ require a6sociated data to b~ pas~d. For thi~ instance, a pointer field in the queue eleman~ points to ~
1024 byte region of Central Memory ~00 which compri~e~ the ~work el~mQnt~ .
Wi~hin th~ work olement ~r~ ~ plurallty o~ ldo to p8S~
control in~ormatl~n, includlnq ~ pointer to anoth~r ~ nt a~
the data linkage structure, e.g., the d~ta li~t, a N~t~x R~que~t U ock, the funotion of which wil$ be de~cribod later, ~nd ~pace ~or a ~ore complex mes~age than can be providod in th~ roque~t code ~ield. For cert~in reque~t code~, the qu~ua elsm~nt and the work element together compri~e the pa~sed me6~aqe. For the ~pecific request zode associated with trAn~er owner~hi]p o~ data -~2 ~ 2~3673 liat, the data l~et pointer in the a~ ooiated worlc element point~
to the f`ir~t 2048 byte block of a c:hained dAt~ t. Within 0ach dat~ t bloc:k ia ~ po~nter direct~d ~t an asE~ociatl~3d ~ata bu~fer which cont~in~ the n~e~sagQ dat~ ~lowlng through the 5 n~twork ad~pt~ar. ~t the ~nd o~ eac:h d~ta li~t blQok 1~ ~ pointer to the n~xt d~t~ t block ~llowing in~in~t~ chainlng o~ the dat~ ts and ~ oci~ted dat~ buf ~ers .
ThQ dat2 linkage ~tructure thu~ prov~dla~ th~ ~ane tc~
route inbound ~3s~ag0e ~ Qne Inta~r~ao Proc~oor to 'Ch~
10 d~3ignat~d outbound ~nter~ace Processvr. Although ~he ~y~tam provid~E~ hardware and 80~twAr~ chaniE~m~ ~or All pros~ 0r~ to diroc~ly communica~e wi~h e~ch ot~or, th~ tor~ao~ controllor~
typically communicate throuqh the Nucleu~ Proca~or. Tho ~nanner of interproce~30r communication typically ao~oclat~d with m~s~ags 15 traf~ic i8 0.8 follows: The ~nterfacs Proc~orE~ gen~arat~ u~
element~ ~or tho NUC10U~3 Prc)ceE~sor to r~ th~ llocation o~
buffor memory space. For each request, the NUC10Ue Proco~or r~turnR a queue alement with a link addre~E~ to the $ir~t p~ge of ~mory allocatQd. }~ach p~lge will hav~ a linlc l~ddr~ to tho 20 next page in the ~ir~t double word o~ th~ p~ag6~.
IJsing tlle work eleraent struc'Cure, Inter~ace Proce~or6 identify to the Nucleu~ Proces60r the de~tination ad~re~s o~
inbound measag~s. The destination a~dr0~s may include a co~nblnation of logical phy0ical ~nd global i~ddreE~60 25 corre~ponding to dovice~ localted ~nywhore on a total teloco~Dmunic~t1on~ network. Thu~, for overy ~n~s~aS~, th~ro id an ~nterf~cn Procs~or which i~ eithQr it~ th~ d00tin~tion Or th6 ge or a rout~ on the way to 'chat d~tination. The Nucl~us Proce~or, by Tlleans o~ ~ rou~e tabIe, d~t~r~ine6 ~he de~tinatlon 30 or route In~rface Procaasor~ By ~ns Or the dat~ linkage .~ .
" '' ' ' ' ' ~Z~9673 structur~, the Nucleus Proces~or link~ the destination or outbound Interface Proce~sor to the same bu~fer memory space in ce~ntral memory as the associated inbound Int~r~ce~ Processor on a me~agQ-by-m~ssage ba~ . Concurrent wit}~ th~3 allocation of buf ~er melinory ~pac~, the Nucleu~ Pr~ce6ssor Al~o updat~ th~
6 ~torag~ protection memory to provide a writ~ accQs~3 c~pzibil ity to the r~s~ue~3ting proces6l0r for th~ allocat~d buffor 2l~mory. Each 2K word element block o~ memory iEi writ~ prot~cted as follows:
The ~lr6-t lK block can be written only by th~ ~onding proco~Elor while the ~econd lK bloc~t can be written only by ths r~ce~vlng proc~sor~ When the lDe~B~g~ bu~ered ~nto ~n ~115~G~ted p~ge has 12 bo~n tran~ itt~d, th~ p~ge ~ daslloc~ted, ~ . ~ ., control iE
returr~d from an Interface Proce~E~or to the NUS::1CIUEI Proc~-or.
NETWC)R}C EXECU~IVE PROCESSOR
The network ~dapter of the pr~E~0nt invention c~n acco~odate ~ddit~onal pr~cess~r~ ~dentlcal in ~tructure to ~he Nuclau~ Proce~00r, but which are program~ed to p~r~orm ~peci~ic 18 ~pplication 2unct$on~ within ~he ne~work ~d~p~r d~crib~d herein. An exa~ple of ~uch an applic~t$on ~unc~ion i~ the network executive ~unction normally perfor~ed in a host~device.
The purpose o~ the network executive (Netex) i~ to allow application programs in ~eparate ho6t devices ~o communicatQ with one another without regard to the actual n~twork con~iguration0.
24 It facilitat~ ~uch app1ication~ as ~ile tran~or, ~ob trhn~fer and transaction proc~6~ing in either a ~ingle or multi-vsndor environmen~ at or near native channel ~peeds snd on a real-time de~and basis.
Th~ lnternatlonal ot~nd~rd~ org~nlz~tlon op~n sy~t~m archlkecture reference model for data communication~ ha~
identi~ied a seven layer 6tandard protocol for data ~ 64-~2~396~3 communications. Thi~ is a layered protocol, with each level communicating only ~irectly to the l~val ~bove or the lovel below. The highest level, i.¢., the application level, communicate6 only with the session level. The session level communicate~ in a layered fa~hion with thle other ~ive lower 6 levels, the lowest level being the physical media. The Netex function con~orm~ to the ~ession level of this 6tandard. Thi~
enable~ application program~ to addre~ oth3r ~pplications by 8ymbolic name to conduct aommunicationa. It further allow~
multiple application programs runnlng in a giv~n host to ~i~ultan~ously access the ~y~t~m ~nd allow~ concurr~nt 12 co~municatinn with dev1ce~ distributed ov~r t~e ~ntire commuRications system.
The application program i~ in~ulated from all i6~ueB of routing ~ull control, error detGction and correction.
Furthermore, an application program may be run anywhere on the network and achieve identical resul~s. When ~his function is 18 per~ormed in a main f rame host, l t typically occupie~
si~nificant fraction of the ho~t throughput capability. ~!owever, whQn the ~ame function is done with~n ~e pre~ent network adapter, it can ba performed much more ~fiaiantly with ~ignificantly 1~SB hardware, l.e., a 32-~it microproceE~sor, by virtue of it~ position in the ~ystem. Th2 NQt~x Processor 24 ban~fit~ from the ¢fficient interproce~or communic~tlona ~ystem dQvi~ed to handle the me~sage traffic, $.e., the high-~p0ed interrupt bus and the data linkage ~tructure. The netw~rk ~xecutive oontrol function i~ managed by mean~ o~ the Netex re~uest bl~ck (N~B). An application program, runnlng ln a host, gener~tefi session level commands which are pa~sed ~o a Netex 30 driver also running in the host~ ~he Ne~ex drlver converts th~

~L2~9~

sQs~ion call into a network requ~st block, wh~ch contaln~ ~ll o~
t~e parameters required to de~ine a me~sage ~es6ion between two communicating application programs.
~ he network re~uest block i5 received ~rom the host by the associated Interface Proce~sor which pa6ses it to the Netex 6 Processor by mean~ of a queue element ~nd as~ociat0d work elem~nt. Th~ Int~r~aco Proce~oor tran~Por~ the Net~x ro~u~t block to the Netex Proc~or by mean~ of a quaue ele~ent and a~sociatQd work element. The Netex request block i~ analyzed by the N~tex Pr~ce~sor to de~ermine, ~mong oth~r thing~, the d~rection of data tran~fer, the type o~ code oonver~ion t~ be 12 performed (if rQquired), how to ~egmQnt dat~ m~nt~ of para~eter data whQn performinq a rate op~r~tion from tha ho~t on a tran~mit NRB command ~nd the ~anner in whi h the host is communicated upon completion of a mes~age ~ession. once the Netex Proces~or ha~ interpreted the Netex request block, it manage the detail~ of mes6age tra~ic to achieve the 6ame 18 re~ult~ as i~ the network executive function had bQen per~ormed within the host computer.
~ hi~ inventlon has been described herein in cons$derable detail in order to comply with the Pat~n~ Statute~ and to provide tho~e ~killed in the art with tl~e in~orma~ion needed ~o apply ~h~
novel principles and to con~truct and UB~ such ~pecialized 24 component6 a~ are required. ~owever, it 15 to be under~tood t~at the invention can be carried out by specl~lcally di~Peren~
equipment and deviccs, and that various modification~, both a~ to equipment details and operating procedures, can be accomplished without departing from the ~cope o~ the invention lt~elf.
What is claimed i8:

.
-6~- 1

Claims (4)

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 iternate ones of 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 broadcasting means having programmable read-only memory slot means for storing a plurality of 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 systems 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 in 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 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 the first and second common bus means to predetermine 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 modes individually coupled to said first and second common buses and to said 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 ?rogrammable 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 and interrupt request and a processor identifer 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 processor 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 means interrupt processor means includes a dedicated storage means for storing at addressable location route maps containing priority levels, destination and origin information of the interrupting and interrupted ones of said plurality of processing means.
CA000544513A 1987-04-24 1987-08-13 Network communications adapter Expired - Lifetime CA1289673C (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US041,985 1987-04-24
US07/041,985 US4933846A (en) 1987-04-24 1987-04-24 Network communications adapter with dual interleaved memory banks servicing multiple processors

Publications (1)

Publication Number Publication Date
CA1289673C true CA1289673C (en) 1991-09-24

Family

ID=21919425

Family Applications (1)

Application Number Title Priority Date Filing Date
CA000544513A Expired - Lifetime CA1289673C (en) 1987-04-24 1987-08-13 Network communications adapter

Country Status (5)

Country Link
US (1) US4933846A (en)
EP (1) EP0288636B1 (en)
JP (1) JPH065527B2 (en)
CA (1) CA1289673C (en)
DE (1) DE3789104T2 (en)

Families Citing this family (169)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3628847B2 (en) * 1997-08-18 2005-03-16 株式会社日立製作所 Bus switching device, computer, and information processing device
US4965825A (en) * 1981-11-03 1990-10-23 The Personalized Mass Media Corporation Signal processing apparatus and methods
US5365519A (en) 1991-03-05 1994-11-15 Hitachi, Ltd. ATM switch1ng system connectable to I/O links having different transmission rates
US6330240B1 (en) 1987-04-24 2001-12-11 Hitachi, Ltd. ATM cell switching system
JP2880271B2 (en) * 1990-08-17 1999-04-05 株式会社日立製作所 Band control method and circuit
USRE36751E (en) * 1987-07-15 2000-06-27 Hitachi, Ltd. ATM switching system connectable to I/O links having different transmission rates
US4918690A (en) * 1987-11-10 1990-04-17 Echelon Systems Corp. Network and intelligent cell for providing sensing, bidirectional communications and control
US5146581A (en) * 1988-02-24 1992-09-08 Sanyo Electric Co., Ltd. Subprogram executing data processing system having bank switching control storing in the same address area in each of memory banks
WO1990004235A1 (en) * 1988-10-07 1990-04-19 Martin Marietta Corporation Parallel data processor
JPH02128267A (en) * 1988-11-09 1990-05-16 Fujitsu Ltd Communication system by sharing memory
US5214767A (en) * 1989-02-07 1993-05-25 Compaq Computer Corp. Full address and odd boundary direct memory access controller which determines address size by counting the input address bytes
US5220516A (en) * 1989-02-21 1993-06-15 International Business Machines Corp. Asynchronous staging of objects between computer systems in cooperative processing systems
JPH077955B2 (en) * 1989-05-13 1995-01-30 株式会社東芝 Data communication controller
US5146574A (en) * 1989-06-27 1992-09-08 Sf2 Corporation Method and circuit for programmable selecting a variable sequence of element using write-back
US5091851A (en) * 1989-07-19 1992-02-25 Hewlett-Packard Company Fast multiple-word accesses from a multi-way set-associative cache memory
JP2995752B2 (en) * 1989-07-21 1999-12-27 日本電気株式会社 Bus architecture conversion circuit
CA2017458C (en) * 1989-07-24 2000-10-10 Jonathan R. Engdahl Intelligent network interface circuit
US5261064A (en) * 1989-10-03 1993-11-09 Advanced Micro Devices, Inc. Burst access memory
US5297242A (en) * 1989-12-15 1994-03-22 Nec Corporation DMA controller performing data transfer by 2-bus cycle transfer manner
EP0436194A3 (en) * 1990-01-02 1992-12-16 National Semiconductor Corporation Media access controller
WO1991010195A1 (en) * 1990-01-05 1991-07-11 Sun Microsystems, Inc. High speed active bus
DE69123987T2 (en) * 1990-01-31 1997-04-30 Hewlett Packard Co Push operation for microprocessor with external system memory
JP3118266B2 (en) * 1990-03-06 2000-12-18 ゼロックス コーポレイション Synchronous segment bus and bus communication method
US5185876A (en) * 1990-03-14 1993-02-09 Micro Technology, Inc. Buffering system for dynamically providing data to multiple storage elements
US5289585A (en) * 1990-03-26 1994-02-22 Siemens Nixdorf Informationssysteme Ag Multiprocessor system having a system bus for the coupling of several processing units with appertaining private cache memories and a common main memory
EP0454605A3 (en) * 1990-04-25 1992-04-22 International Business Machines Corporation Bus request device in a direct memory access (dma) system
JPH0437935A (en) * 1990-06-01 1992-02-07 Hitachi Ltd Cache memory and its control system
JP2910303B2 (en) * 1990-06-04 1999-06-23 株式会社日立製作所 Information processing device
CA2043505A1 (en) * 1990-06-06 1991-12-07 Steven K. Heller Massively parallel processor including queue-based message delivery system
US5276678A (en) * 1990-06-18 1994-01-04 Intelect, Inc. Distributed switching and telephone conferencing system
US5457786A (en) * 1990-07-03 1995-10-10 Texas Instruments Incorporated Serial data interface with circular buffer
US5163049A (en) * 1990-08-10 1992-11-10 Honeywell Inc. Method for assuring data-string-consistency independent of software
US5966528A (en) * 1990-11-13 1999-10-12 International Business Machines Corporation SIMD/MIMD array processor with vector processing
US5815723A (en) * 1990-11-13 1998-09-29 International Business Machines Corporation Picket autonomy on a SIMD machine
US5734921A (en) * 1990-11-13 1998-03-31 International Business Machines Corporation Advanced parallel array processor computer package
US5590345A (en) * 1990-11-13 1996-12-31 International Business Machines Corporation Advanced parallel array processor(APAP)
US5765012A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Controller for a SIMD/MIMD array having an instruction sequencer utilizing a canned routine library
US5713037A (en) * 1990-11-13 1998-01-27 International Business Machines Corporation Slide bus communication functions for SIMD/MIMD array processor
US5765015A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Slide network for an array processor
US5588152A (en) * 1990-11-13 1996-12-24 International Business Machines Corporation Advanced parallel processor including advanced support hardware
US5828894A (en) * 1990-11-13 1998-10-27 International Business Machines Corporation Array processor having grouping of SIMD pickets
US5630162A (en) * 1990-11-13 1997-05-13 International Business Machines Corporation Array processor dotted communication network based on H-DOTs
EP0485690B1 (en) * 1990-11-13 1999-05-26 International Business Machines Corporation Parallel associative processor system
US5963746A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation Fully distributed processing memory element
US5794059A (en) * 1990-11-13 1998-08-11 International Business Machines Corporation N-dimensional modified hypercube
US5625836A (en) * 1990-11-13 1997-04-29 International Business Machines Corporation SIMD/MIMD processing memory element (PME)
US5809292A (en) * 1990-11-13 1998-09-15 International Business Machines Corporation Floating point for simid array machine
US5963745A (en) * 1990-11-13 1999-10-05 International Business Machines Corporation APAP I/O programmable router
US5765011A (en) * 1990-11-13 1998-06-09 International Business Machines Corporation Parallel processing system having a synchronous SIMD processing with processing elements emulating SIMD operation using individual instruction streams
US5617577A (en) * 1990-11-13 1997-04-01 International Business Machines Corporation Advanced parallel array processor I/O connection
DE69114825T2 (en) * 1990-12-21 1996-08-08 Sun Microsystems Inc Method and device for increasing the processing speed of a display system with double buffer memory.
US5195089A (en) * 1990-12-31 1993-03-16 Sun Microsystems, Inc. Apparatus and method for a synchronous, high speed, packet-switched bus
US5179704A (en) * 1991-03-13 1993-01-12 Ncr Corporation Method and apparatus for generating disk array interrupt signals
US5617547A (en) * 1991-03-29 1997-04-01 International Business Machines Corporation Switch network extension of bus architecture
US5594918A (en) * 1991-05-13 1997-01-14 International Business Machines Corporation Parallel computer system providing multi-ported intelligent memory
EP0513519A1 (en) * 1991-05-15 1992-11-19 International Business Machines Corporation Memory system for multiprocessor systems
EP0518488A1 (en) * 1991-06-12 1992-12-16 Advanced Micro Devices, Inc. Bus interface and processing system
US5291609A (en) * 1991-06-13 1994-03-01 Sony Electronics Inc. Computer interface circuit
US5333291A (en) * 1991-06-14 1994-07-26 International Business Machines Corporation Stride enhancer for high speed memory accesses with line fetching mode and normal mode employing boundary crossing determination
EP0524322A1 (en) * 1991-06-20 1993-01-27 Siemens Aktiengesellschaft Circuit for data transfer between data processing systems
US6446164B1 (en) * 1991-06-27 2002-09-03 Integrated Device Technology, Inc. Test mode accessing of an internal cache memory
US5953510A (en) * 1991-09-05 1999-09-14 International Business Machines Corporation Bidirectional data bus reservation priority controls having token logic
AU3330793A (en) * 1991-12-23 1993-07-28 Intel Corporation Interleaved cache for multiple accesses per clock in a microprocessor
US5371877A (en) * 1991-12-31 1994-12-06 Apple Computer, Inc. Apparatus for alternatively accessing single port random access memories to implement dual port first-in first-out memory
US5245606A (en) * 1992-01-02 1993-09-14 National Semiconductor Corporation Computer network bridge circuit
DK170490B1 (en) * 1992-04-28 1995-09-18 Multi Inform As Data Processing Plant
DE4202852A1 (en) * 1992-02-01 1993-08-05 Teldix Gmbh Transmission of information to all units of multiprocessor system - has simultaneous telegram containing identification address and data transmitted to all units
DE69317149T2 (en) * 1992-05-12 1998-10-08 Nec Corp Microcomputer with command memory for commands for reading out internal conditions
JP2642039B2 (en) * 1992-05-22 1997-08-20 インターナショナル・ビジネス・マシーンズ・コーポレイション Array processor
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5437024A (en) * 1992-07-06 1995-07-25 French; Donald H. Selective computer-generated information distribution system by computer peripheral emulation and use
US5446880A (en) * 1992-08-31 1995-08-29 At&T Corp. Database communication system that provides automatic format translation and transmission of records when the owner identified for the record is changed
US5463752A (en) * 1992-09-23 1995-10-31 International Business Machines Corporation Method and system for enhancing the efficiency of communication between multiple direct access storage devices and a storage system controller
EP0600112A1 (en) * 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Data processing system with virtual memory addressing and memory access controlled by keys
EP0600113A1 (en) * 1992-11-30 1994-06-08 Siemens Nixdorf Informationssysteme Aktiengesellschaft Data processing system with memory access controlled by keys
US5530874A (en) * 1993-02-02 1996-06-25 3Com Corporation Network adapter with an indication signal mask and an interrupt signal mask
US5381541A (en) * 1993-05-26 1995-01-10 International Business Machines Corp. Computer system having planar board with single interrupt controller and processor card with plural processors and interrupt director
US6073185A (en) * 1993-08-27 2000-06-06 Teranex, Inc. Parallel data processor
JPH0793273A (en) * 1993-09-20 1995-04-07 Fujitsu Ltd Multi-cpu system provided with fault monitor mechanism
US5513346A (en) * 1993-10-21 1996-04-30 Intel Corporation Error condition detector for handling interrupt in integrated circuits having multiple processors
US5740402A (en) * 1993-12-15 1998-04-14 Silicon Graphics, Inc. Conflict resolution in interleaved memory systems with multiple parallel accesses
US5848258A (en) * 1994-06-30 1998-12-08 Digital Equipment Corporation Memory bank addressing scheme
US5611075A (en) * 1994-10-04 1997-03-11 Analog Devices, Inc. Bus architecture for digital signal processor allowing time multiplexed access to memory banks
US5590299A (en) * 1994-10-28 1996-12-31 Ast Research, Inc. Multiprocessor system bus protocol for optimized accessing of interleaved storage modules
US5832216A (en) * 1994-11-04 1998-11-03 Texas Instruments Incorporated Network adapter having single ported memory which is accessible by network and peripheral bus on a time division multiplexed (TDM) basis
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
JPH08314794A (en) * 1995-02-28 1996-11-29 Matsushita Electric Ind Co Ltd Method and system for shortening wait time of access to stable storage device
US5825774A (en) * 1995-07-12 1998-10-20 3Com Corporation Packet characterization using code vectors
US5796944A (en) * 1995-07-12 1998-08-18 3Com Corporation Apparatus and method for processing data frames in an internetworking device
US5748633A (en) * 1995-07-12 1998-05-05 3Com Corporation Method and apparatus for the concurrent reception and transmission of packets in a communications internetworking device
US5812775A (en) * 1995-07-12 1998-09-22 3Com Corporation Method and apparatus for internetworking buffer management
US5651002A (en) * 1995-07-12 1997-07-22 3Com Corporation Internetworking device with enhanced packet header translation and memory
US5748871A (en) * 1995-08-11 1998-05-05 Symbios Logic Inc. Dual bus architecture for a storage device
US5983327A (en) * 1995-12-01 1999-11-09 Nortel Networks Corporation Data path architecture and arbitration scheme for providing access to a shared system resource
EP0882266A1 (en) 1996-02-20 1998-12-09 Intergraph Corporation High-availability super server
US5960179A (en) * 1996-07-01 1999-09-28 Sun Microsystems, Inc. Method and apparatus extending coherence domain beyond a computer system bus
US5752260A (en) * 1996-04-29 1998-05-12 International Business Machines Corporation High-speed, multiple-port, interleaved cache with arbitration of multiple access addresses
US6041379A (en) * 1996-10-04 2000-03-21 Northrop Grumman Corporation Processor interface for a distributed memory addressing system
US6072781A (en) 1996-10-22 2000-06-06 International Business Machines Corporation Multi-tasking adapter for parallel network applications
US7058696B1 (en) 1996-11-22 2006-06-06 Mangosoft Corporation Internet-based shared file service with native PC client access and semantics
US5909540A (en) * 1996-11-22 1999-06-01 Mangosoft Corporation System and method for providing highly available data storage using globally addressable memory
US6026474A (en) * 1996-11-22 2000-02-15 Mangosoft Corporation Shared client-side web caching using globally addressable memory
US6148377A (en) * 1996-11-22 2000-11-14 Mangosoft Corporation Shared memory computer networks
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US5867484A (en) * 1997-01-31 1999-02-02 Intellect Network Technologies Switchable multi-drop video distribution system
US6553002B1 (en) 1997-08-29 2003-04-22 Ascend Communications, Inc. Apparatus and method for routing data packets through a communications network
ATE254778T1 (en) * 1997-09-05 2003-12-15 Sun Microsystems Inc LOOKUP TABLE AND METHOD FOR DATA STORAGE THEREIN
US5968158A (en) * 1997-10-06 1999-10-19 International Business Machines Corporation Apparatus including a host processor and communications adapters interconnected with a bus, with improved transfer of interrupts between the adapters and host processor
JP3287283B2 (en) * 1997-10-20 2002-06-04 日本電気株式会社 PCI bus interrupt steering circuit
US6035360A (en) * 1997-10-29 2000-03-07 International Business Machines Corporation Multi-port SRAM access control using time division multiplexed arbitration
US6230219B1 (en) * 1997-11-10 2001-05-08 International Business Machines Corporation High performance multichannel DMA controller for a PCI host bridge with a built-in cache
US5872993A (en) * 1997-12-01 1999-02-16 Advanced Micro Devices, Inc. Communications system with multiple, simultaneous accesses to a memory
KR100258079B1 (en) * 1997-12-17 2000-06-01 이계철 The duplicated device by extention of memory bus in a tightly coupled fault tolerance system
US6067609A (en) * 1998-04-09 2000-05-23 Teranex, Inc. Pattern generation and shift plane operations for a mesh connected computer
US6212628B1 (en) 1998-04-09 2001-04-03 Teranex, Inc. Mesh connected computer
US6173388B1 (en) 1998-04-09 2001-01-09 Teranex Inc. Directly accessing local memories of array processors for improved real-time corner turning processing
US6185667B1 (en) 1998-04-09 2001-02-06 Teranex, Inc. Input/output support for processing in a mesh connected computer
JP3359291B2 (en) * 1998-07-17 2002-12-24 株式会社ケンウッド Deinterleave circuit
US6839759B2 (en) 1998-10-30 2005-01-04 Science Applications International Corp. Method for establishing secure communication link between computers of virtual private network without user entering any cryptographic information
US6502135B1 (en) * 1998-10-30 2002-12-31 Science Applications International Corporation Agile network protocol for secure communications with assured system availability
ES2760905T3 (en) * 1998-10-30 2020-05-18 Virnetx Inc An agile network protocol for secure communications with assured system availability
US7418504B2 (en) * 1998-10-30 2008-08-26 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US10511573B2 (en) 1998-10-30 2019-12-17 Virnetx, Inc. Agile network protocol for secure communications using secure domain names
US8225002B2 (en) * 1999-01-22 2012-07-17 Network Disk, Inc. Data storage and data sharing in a network of heterogeneous computers
US6081479A (en) * 1999-06-15 2000-06-27 Infineon Technologies North America Corp. Hierarchical prefetch for semiconductor memories
US6381190B1 (en) * 1999-05-13 2002-04-30 Nec Corporation Semiconductor memory device in which use of cache can be selected
US6320501B1 (en) 1999-05-25 2001-11-20 Pittway Corporation Multiple sensor system for alarm determination with device-to-device communications
US6532507B1 (en) 1999-05-28 2003-03-11 National Semiconductor Corporation Digital signal processor and method for prioritized access by multiple core processors to shared device
EP1059588A1 (en) * 1999-06-09 2000-12-13 Texas Instruments Incorporated Multi-channel dma with request scheduling
US6404752B1 (en) 1999-08-27 2002-06-11 International Business Machines Corporation Network switch using network processor and methods
US6460120B1 (en) 1999-08-27 2002-10-01 International Business Machines Corporation Network processor, memory organization and methods
US6546451B1 (en) 1999-09-30 2003-04-08 Silicon Graphics, Inc. Method and apparatus for decoupling processor speed from memory subsystem speed in a node controller
AU2001237985A1 (en) * 2000-01-26 2001-08-07 Vyyo, Ltd. Two-dimensional scheduling scheme for a broadband wireless access system
US6691178B1 (en) 2000-02-22 2004-02-10 Stmicroelectronics, Inc. Fencepost descriptor caching mechanism and method therefor
US7143185B1 (en) * 2000-08-29 2006-11-28 Advanced Micro Devices, Inc. Method and apparatus for accessing external memories
US6586281B1 (en) * 2000-10-31 2003-07-01 Lucent Technologies Inc. Variable rotational assignment of interconnect levels in integrated circuit fabrication
DE10147772C1 (en) * 2001-09-27 2003-09-11 Siemens Ag Method for operating a transmission system and transmission system in a power supply network
US7328294B2 (en) * 2001-12-03 2008-02-05 Sun Microsystems, Inc. Methods and apparatus for distributing interrupts
EP1563401B1 (en) * 2002-11-05 2006-11-22 Koninklijke Philips Electronics N.V. Data processing apparatus with address redirection in response to periodic address patterns
US7895411B2 (en) * 2003-10-02 2011-02-22 Nvidia Corporation Physics processing unit
US7739479B2 (en) * 2003-10-02 2010-06-15 Nvidia Corporation Method for providing physics simulation data
US20050086040A1 (en) * 2003-10-02 2005-04-21 Curtis Davis System incorporating physics processing unit
US20050251644A1 (en) * 2004-05-06 2005-11-10 Monier Maher Physics processing unit instruction set architecture
GB0413700D0 (en) * 2004-06-18 2004-07-21 Aspex Semiconductor Ltd Improvements relating to mobile communications handling apparatus
US20060206921A1 (en) * 2005-03-12 2006-09-14 Shuangbao Wang Intrusion-free computer architecture for information and data security
US7756943B1 (en) 2006-01-26 2010-07-13 Symantec Operating Corporation Efficient data transfer between computers in a virtual NUMA system using RDMA
US7702743B1 (en) * 2006-01-26 2010-04-20 Symantec Operating Corporation Supporting a weak ordering memory model for a virtual physical address space that spans multiple nodes
US8325633B2 (en) * 2007-04-26 2012-12-04 International Business Machines Corporation Remote direct memory access
US7889657B2 (en) * 2007-05-04 2011-02-15 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7948999B2 (en) * 2007-05-04 2011-05-24 International Business Machines Corporation Signaling completion of a message transfer from an origin compute node to a target compute node
US7890670B2 (en) * 2007-05-09 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US7779173B2 (en) * 2007-05-29 2010-08-17 International Business Machines Corporation Direct memory access transfer completion notification
US8037213B2 (en) 2007-05-30 2011-10-11 International Business Machines Corporation Replenishing data descriptors in a DMA injection FIFO buffer
US7765337B2 (en) * 2007-06-05 2010-07-27 International Business Machines Corporation Direct memory access transfer completion notification
US8018951B2 (en) 2007-07-12 2011-09-13 International Business Machines Corporation Pacing a data transfer operation between compute nodes on a parallel computer
US8478834B2 (en) * 2007-07-12 2013-07-02 International Business Machines Corporation Low latency, high bandwidth data communications between compute nodes in a parallel computer
US8959172B2 (en) * 2007-07-27 2015-02-17 International Business Machines Corporation Self-pacing direct memory access data transfer operations for compute nodes in a parallel computer
US7890597B2 (en) * 2007-07-27 2011-02-15 International Business Machines Corporation Direct memory access transfer completion notification
US20090031001A1 (en) * 2007-07-27 2009-01-29 Archer Charles J Repeating Direct Memory Access Data Transfer Operations for Compute Nodes in a Parallel Computer
US9009350B2 (en) * 2008-04-01 2015-04-14 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US9225545B2 (en) * 2008-04-01 2015-12-29 International Business Machines Corporation Determining a path for network traffic between nodes in a parallel computer
US8544026B2 (en) * 2010-02-09 2013-09-24 International Business Machines Corporation Processing data communications messages with input/output control blocks
US8949453B2 (en) 2010-11-30 2015-02-03 International Business Machines Corporation Data communications in a parallel active messaging interface of a parallel computer
US8972746B2 (en) * 2010-12-17 2015-03-03 Intel Corporation Technique for supporting multiple secure enclaves
US8239599B1 (en) * 2011-06-16 2012-08-07 Hewlett-Packard Development Company, L.P. System and method for handling data streams
US8949328B2 (en) 2011-07-13 2015-02-03 International Business Machines Corporation Performing collective operations in a distributed processing system
US8930962B2 (en) 2012-02-22 2015-01-06 International Business Machines Corporation Processing unexpected messages at a compute node of a parallel computer
CN105243756A (en) * 2015-10-20 2016-01-13 赵忠义 Address allocation system for logistics cabinet
KR102410306B1 (en) * 2018-01-29 2022-06-20 에스케이하이닉스 주식회사 Memory system and operating method thereof

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4034347A (en) * 1975-08-08 1977-07-05 Bell Telephone Laboratories, Incorporated Method and apparatus for controlling a multiprocessor system
US4228496A (en) * 1976-09-07 1980-10-14 Tandem Computers Incorporated Multiprocessor system
GB1601955A (en) * 1977-10-21 1981-11-04 Marconi Co Ltd Data processing systems
US4164787A (en) * 1977-11-09 1979-08-14 Bell Telephone Laboratories, Incorporated Multiple microprocessor intercommunication arrangement
US4403282A (en) * 1978-01-23 1983-09-06 Data General Corporation Data processing system using a high speed data channel for providing direct memory access for block data transfers
US4282572A (en) * 1979-01-15 1981-08-04 Ncr Corporation Multiprocessor memory access system
JPS55105763A (en) * 1979-02-05 1980-08-13 Fanuc Ltd Address instruction system
US4325116A (en) * 1979-08-21 1982-04-13 International Business Machines Corporation Parallel storage access by multiprocessors
IT1126475B (en) * 1979-12-03 1986-05-21 Honeywell Inf Systems COMMUNICATION APPARATUS BETWEEN MORE PROCESSORS
US4371929A (en) * 1980-05-05 1983-02-01 Ibm Corporation Multiprocessor system with high density memory set architecture including partitionable cache store interface to shared disk drive memory
US4400770A (en) * 1980-11-10 1983-08-23 International Business Machines Corporation Cache synonym detection and handling means
US4438493A (en) * 1981-07-06 1984-03-20 Honeywell Information Systems Inc. Multiwork memory data storage and addressing technique and apparatus
US4470114A (en) * 1982-03-01 1984-09-04 Burroughs Corporation High speed interconnection network for a cluster of processors
US4574350A (en) * 1982-05-19 1986-03-04 At&T Bell Laboratories Shared resource locking apparatus
EP0113379B1 (en) * 1982-12-13 1987-09-30 Fraunhofer-Gesellschaft Zur Förderung Der Angewandten Forschung E.V. Coupler for processors
US4613935A (en) * 1983-02-02 1986-09-23 Couleur John F Method and apparatus for pipe line processing with a single arithmetic logic unit
DE3334797A1 (en) * 1983-09-26 1985-01-03 Siemens AG, 1000 Berlin und 8000 München MULTIPROCESSOR COMPUTER, ESPECIALLY MULTIPROCESSOR CENTRAL CONTROL UNIT OF A TELEPHONE SWITCHING SYSTEM
US4652993A (en) * 1984-04-02 1987-03-24 Sperry Corporation Multiple output port memory storage module
US4633434A (en) * 1984-04-02 1986-12-30 Sperry Corporation High performance storage unit
JPS61150059A (en) * 1984-12-24 1986-07-08 Sony Corp Data processor
US4680753A (en) * 1985-04-03 1987-07-14 Texas Instruments Incorporated System and method for controlling network bus communications for input-output interlocking information among distributed programmable controllers
US4722502A (en) * 1985-10-02 1988-02-02 American Sterilizer Company Adjustable support system

Also Published As

Publication number Publication date
EP0288636A2 (en) 1988-11-02
DE3789104D1 (en) 1994-03-24
DE3789104T2 (en) 1994-05-19
JPS63273960A (en) 1988-11-11
JPH065527B2 (en) 1994-01-19
US4933846A (en) 1990-06-12
EP0288636B1 (en) 1994-02-16
EP0288636A3 (en) 1990-12-12

Similar Documents

Publication Publication Date Title
CA1289673C (en) Network communications adapter
CA1324192C (en) Controlling responding by users of an intercommunications bus
CA1182927A (en) Memory management arrangement for microprocessor systems
US7363389B2 (en) Apparatus and method for enhanced channel adapter performance through implementation of a completion queue engine and address translation engine
US4286321A (en) Common bus communication system in which the width of the address field is greater than the number of lines on the bus
EP0351955B1 (en) Multiprocessor systems with cross-interrogated store-in-caches
CN101872335B (en) CPU console redirecting method and system and CPUs
GB1593053A (en) Data processing apparatus
US4280193A (en) Data link processor for magnetic tape data transfer system
CA1099820A (en) Interval timer for use in an input/output system
EP0016523B1 (en) Data processing unit and data processing system comprising a plurality of such data processing units
JPH0584532B2 (en)
US4293928A (en) Peripheral dependent circuit for peripheral controller
US20080155274A1 (en) Protection of memory areas
EP0327203B1 (en) NxM arbitrating non-blocking high bandwidth switch
US4144565A (en) Input/output interface connector circuit for repowering and isolation
GB1568474A (en) Data processing apparatus
US4236203A (en) System providing multiple fetch bus cycle operation
JPS58501789A (en) Interrupt system for peripheral control devices
JPH11345175A (en) System and method for controlling substitutive path
US4764896A (en) Microprocessor assisted memory to memory move apparatus
JPS61143865A (en) Interface for direct transfer of data
US7302548B1 (en) System and method for communicating in a multi-processor environment
CN111783165A (en) Safe and trusted system chip architecture based on hardware isolation calling mode
EP3803606B1 (en) System on chip firewall memory architecture

Legal Events

Date Code Title Description
MKLA Lapsed