throbber
4,228,496
`[11]
`(19
`United States Patent
`
` (45) Oct, 14, 1980
`Katzman etal.
`
`[73] Assignee:
`
`{54] MULTIPROCESSOR SYSTEM
`[75]
`Inventors:
`James A. Katzman, San Jose; Joel F.
`Bartlett, Palo Alto; Richard M.
`Bixler, Sunnyvale; William H.
`Davidow, Atherton; John A.
`Despotakis, Pleasanton; Peter J.
`Graziano; Michael D. Green, both of
`Los Altos; David A. Greig; Steven J.
`Hayashi, both of Cupertino; David R.
`Mackie, Ben Lomond; Dennis L.
`McEvoy,Scotts Valley; James G,
`Treybig; Steven W. Wierenga, both of
`Sunnyvale, all of Calif.
`Tandem Computers Incorporated,
`Cupertino, Calif.
`[21] Appl. No.: 721,043
`{22] Filed:
`Sep. 7, 1976
`[51] Ent. C13 oer GO6F 15/16; GO6F 15/06
`[52] US. C1.cece teneeneereeneteneneenerectee 364/200
`[58] Field of Search ... 364/200 MS File, 900 MS File
`[56]
`References Cited
`U.S. PATENT DOCUMENTS
`
`ing basis. Use of each busis controlled by a special bus
`controller.
`The multiprocessor system includes an input/output
`system having multi-port device controllers and input-
`/output buses connecting each device controller for
`access by the input/output channels of at least
`two
`different processor modules. Each device controller
`includes logic which insures that only one port is se-
`lected for access at a time.
`The multiprocessor system includes a distributed power
`supply system which insures nonstop operation of the
`remainder of the multiprocessor system in the event of
`a failure of a power supply fora part of the system. The
`distributed power supply system includes a separate
`power supply for each processor module and two sepa-
`rate power supplies for each device controller. Either
`one of the two power supplies provides the entire
`powerfor the device controller in the event the other
`powersupply fails. The distributed power supply sys-
`tem permits any processor module or device controller
`to be powered downsothat on-line maintenance can be
`performed in a power-off condition while the rest of the
`multiprocessor system is on-line and functional.
`The multiprocessor system includes a memory system
`3,480,914
`Schlaeppi o...ueccscsssecseesseee 364/200
`11/1969
`in which the memory of each processor module is di-
`3,820,079
`6/1974 Berghetal.
`..
`364/200
`
`vided into fourlogical address areas—user data, system
`3,828,321
`8/1974 Wilber et al.
`.
`364/200
`data, user code and system code. The memory system
`3,886,524
`5/1975 Appelt .......
`364/200
`includes a map which translates logical addresses to
`
`4,001,790
`1/1977
`Barlow............
`364/200
`physical addresses and which coacts with the multipro-
`4,015,243
`3/1977
`Kurpaneketal.
`364/200
`cessor system to bring pages from secondary memory
`4,032,899
`6/1977
`Jenny etal.......
`364/200
`
`into primary main memory as required to implement a
`
`
`4,034,347 7/1977=Probert |W... ee 364/200
`
`virtual memory system. The map also provides a pro-
`. 364/200 X
`4,034,794
`10/1978 Matsumoto
`tection function. It provides inherent protection among
`
`7/1977 Moreton.......
`weve 364/200
`4,035,777
`users in a multiprogramming environment, isolates pro-
`4,040,028
`8/1977
`Paukeret al.
`. 364/200
`
`gramsfrom data and protects system programs from the
`....
`4,041,472
`8/1977
`Shah et al.
`. 364/900
`actions of user programs. The mapalso providesa refer-
`12/1978 Heart et ab. occ 364/200
`4,130,865
`ence history information for each logical page as an aid
`Primary Examiner—Mark E. Nusbaum
`to efficient memory managementby the operating sys-
`Attorney, Agent, or Firm—Donald C. Feix
`tem.
`[57]
`ABSTRACT
`The multiprocessor system includes in the memory of
`A multiprocessor system the kind in which two or more
`each processor module an error detection and correc-
`separate processor modules are interconnected for par-
`tion system which detectsall single bit and double bit
`allel processing includes two redundant interprocessor
`errors and which corrects all single bit errors in semi-
`buses dedicated exclusively to interprocessor communi-
`conductor memorystorage.
`cation. Any processor module may send information to
`any other processor module by either bus. The buses are
`shared in use by the processor modules on a time-shar-
`
`80 Claims, 42 Drawing Figures
`
`Google Exhibit 1030
`Google Exhibit 1030
`Google v. Valtrus
`Google v. Valtrus
`
`

`

`INTER -
`INTER -
`
`PROCESSOR+5S PROCESSOR+ 55
`CONTROL.
`CONTROL
`
`3B
`
`iA
`
`ey
`
`oct. 14, 1980
`
`Sheet 1 of 29
`
`4,228,496
`
`U,S. Patent
`
`MEMORY
`
`

`

`U.S. Patent
`
`oct. 14, 1980
`
`Sheet 2 of 29
`
`4,228,496
`
`
`
`1090104dSNEScGo
`
`LE“Oo
`
`OD
`in
`
`Is
`
`+ovaangxSP
`TOD0LO’dSNAS6S
`ON!ALTap+ AALShnVIVGSNeAZT
`
`
`NOJID3SNOUS
`
`>P
`
`|
`
`uty}
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`SATSOSY
`SOCSWONMOV
`
`
`ISSNOSYGNSS
`
`YyOSS3DO¥d €Old
`
`4,228,496
`
`ZS
`
`6S
`
`
`
`Sheet 3 of 29
`
`YOLVYSANSAD
`
`A4D01DSNE
`
`125135
`
`JISO7
`
`
`
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 4 of 29
`
`4,228,496
`
`X BUS DATA
`16
`KH____—..
`5
`xX BUS PROTOCOL
`
`SELECT
`CLOCK
`
`SELECT
`CLOCK
`
`63
`
`61
`
`63
`
`61
`
`57
`coe
`
`M 16;
`
`_~Y BUS DATA
`Y BUS PROTOCOL
`
`79
`
`4
`
`77
`
`69
`
`
`
`
`
`BUS EMPTY
`STATE LOGIC [COUNT 15
`OUTO
`>
`BUF FER
`a(4!3/2/3
`73 fi] Ovi|ye
`PROCESSOR
`FILL
`
`7
`STATE LOGIC |EOUNT'S
`LOAD RECEIVE
`a RECEIVE
`
`| REGISTER
`
`
`
`wl aS]
`
`o
`
`x 5—0
`
`&
`lu
`=LW GS
`a)
`Wl OLE] o] ¥
`OQ}
`clols)o} a
`cl
`&} Shui
`i
`nt olacwOl
`ee
`4O O) UvC
`
`FIG. 4
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 5 of 29
`
`4,228,496
`
`FIG.5
`
`|
`
`Ll
`
`me 5
`16/
`
`SELECT
`
`* BUS PROTOCOL
`7X BUS DATA
`4
`
`
`
`
`
`BUS FILL
`|
`STATE LOGIC
`
`
`
`
`93
`—
`a 4
`RESE
`
`9g
`
`COUNT15
`
`4
`
`INQ
`COUNTER
`
`INQ
`BUFFER
`
`|HY}101
`CLEAR
`
`PROCESSOR
`EMPTY
`STATE LOGIC|COUNTS
`
`oy,
`
`uw
`
`a Oe
`
`l
`
`6l=] 4
`=|
`vi
`&5] x| Sl Sl x
`Wy
`AF
`TO CPU
`
`K7 SND
`
`FIG6
`
`CONTROL
`SE LOGIC
`DIAGRAM .
`
`SNDACK
`SNDREQ
`SND,REQ | SND,ACK |
`|
`|
`!
`
`CNT15
`RCV ACK
`| NTIS
`|
`|
`|
`!
`
`
`
`

`|
` SNDCMD
`| RCVCMD
`| RCV SEL
`SND SEL
`BUS CONTROLLER
`!
`SND ADR
`
`SNDSEL
`
`RCV ACK
`
`% =INC SND
`
`CLOCK wa 2|oe 95
`
`
`
`B16
`
`©] O
`r|)
`am
`
`SENDER
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 6 of 29
`
`4,228,496
`
`¥* =INC CNT
`
`|
`
`DIAGRAM
`
`SS
`MGT a SaR
`see
`RoE eT
`LOGIC
`
`
`
`
`| ! |Reeer aMACHINE
`
`
`BUS EMPTY
`75.
`\
`RESET” SAPEMP
`\
`
`
`*
`\ |
`STATE LOGIC
`“~\\
`/
`‘DIAGRAM
`
`\ oRECT/ees \
`
`\
`
`OUTQ
`
`FIG.8
`
`PROCESSOR
`EMPT*
`PTY
`STATE LOGIC
`DIAGRAM
`
`DIRECT
`RESET
`
`Q
`
`|
`
`/
`
`|
`
`
`
`101
`*
`K/INQ
`:
`
`
`
`7|
`3,
`{DIRECT /
`\
`INC CNT
`7° \RESET |
`BUS FILL
`
`STATE LOGIC
`DIAGRAM
`
`INQ
`
`|
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 7 of 29
`
`4,228,496
`
`FIG.9
`LL
`RCV,
`SND!
`SND®,
`IDLE
`PO
`BUS
`li ytdA gh hed
`Nortat
`
`
`ONTROLLER-| \ | | \ |
`
`IPOLL
`STATE
`[OLE
`SNDO?
`SND2’
`SNO14
`IDLE
`
`SND REQ
`
`|
`ROM SNR!
`
`LS
`
`SELECT
`TOSNDR OS ToRCVR©:TO. SNDR
`SND ACK
`\e
`>
`FROM SNDR
`RCV_CMD
`ry
`\ —
`TO RCVR
`RCV ACK
`ft \
`FROM RCVR
`Lo
`SND_CMD
`J
`PATASe{yf
`PACKET
`FROM SNOR’
`‘FROM BC
`‘FROM SNDR
`
`TO SNDR
`
`1 DONE
`
`EMPTY
`FILL
`FULL
`WAIT
`
`IDLE
`O SYNC
`1 SEND
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 8 of 29
`
`4,228,496
`
`FIG. 11
`
`_
`J(A) = SIRCV«B
`J(B) = A+CNT 15
`DONE
`K (A) = BCD) + CLOQ
`DLE
`K(B) = As(E-b) + CLOQ
`CLK (A)= CLK (B) = CPU_CLK
`RST(A) = RST(B)=CPU RST
`
`
`03\,
`
`(FULL)
`_
`yC)= Be (AsB)
`J(D)= C
`
`K(C)= D*CNT 15
`“WATT
`K(D)= G+(A+B)
`CLK(C)=CLK(D)= BUS CLK
`RST(C)=RST(D)= A+ B= EMPTY
`
`
`
`
`MICRO PROCESSOR
`
`"3
`
`
`INTERPROCESSOR CONTROL
`
`
`
`
`
`N55
`
`105
`
`105
`
`ne
`
`eene
`
`-_,
`
`:—e
`
`
`[i 3™N
` 1/0 CHANNELmaf" 109
`169
`
`
`
`
`
`CONTROL| MICRO PROGRAM Inara PATH LOGI
`LOGIC [MICRO PROCESSOR
`
`iC
`
`
`
`
`145,147,149,
`151, 153,155,
`157, 159171
`
`119
`
`
`43
`
`161163
`165 167
`
`
`—_R
`
`Re
`
`43
`
`Na
`olTRANSFERADDRESS
`
`
`P |ICH
`ERR
`
`m a,
`Ae)
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 9 of 29
`
`4,228,496
`
`S30IARd
`
`SSayddv
`
`ONVAIAWOD
`
`voy2SAILDV
`
`:;VWGOEL
`
`SNIVLSHD
`
`GOL
`
`YOSSS00Ud
`
`-OYD|WSSSYQdV
`
`QW)D
`
`“TSANNVHD
`
`VIVOTSNNVH2DrtsngWIVoELVivaO/!ZAL
`MYOWAWOL€-VG6ELOL
`
`Serv.SSaydav
`
`AYOWAWLZél
`
`31907ot
`
`ALIdVd
`
`WHOINZO
`
`ZElE2l ELOls
`
`
`GE-SelRYOWSAN
`
`sngO7|NaSarINOVIVO
`
`
`
`
`

`

`U.S. Patent
`
`oct. 14, 1980
`
`Sheet 10 of 29
`
`4,228,496
`
`FiIG.14
`
`1/0 BUS LINE DESCRIPTION
`714
`lORST

`RESET
`
`—153,___TBUS _*5%FuncTION
`ss.sa ae
`ras]
`
`eee_159, STI
`ee
`
`LINES HAND -_|FUNCTIONS157 SV
`
`
`163
`PARITY
`b DATA
`DATA
`.
`165,
`EOT
`
`__167,_ PADO.CCLDATA
`__169,
`PADI
`STATUS
`
`+149 HIR
`brequest DEVICE
`151
`RANK
`SPOLL
`REQUESTS
`
`39—_It
`
`161
`
`DATA BUS 6
`
`145
`147
`
`RCI
`LIRQ
`
`FIG. 15
`
`ETO
`
`HANDSHAKE- IL
`
`
`CPU
`HANDSHAKE- 2L
`
`
`
`INITIATION
`# (PARITY ERROR+TIMEOUT)
`ht7
`aw]
`
`|
`(Se)
`(ue)
`
`HANDSHAKE -2L.
`
`(SEE FIG 28 FORA
`TYPICAL HANDSHAKE)
` HANDSHAKE - 21 «
`
`
`(PARITY ERROR+TIMEOUT)
`
`
`HANDSHAKE -IL
`
`|
`|
`
`|
`HANDSHAKE- IL
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 11 of 29
`
`4,228,496
`
`RECONNECT &
`——WANQstlanes?L
`FIG. 16 Bea TRANSFER
`SEQUENCE
`|
`
`
`
`
`HANDSHAKE-2L
`RESPONSE* HANDSHAKE-1L
`
`RESPONSE®*
`
`~ STi
`RESPONSE*
`HANDSHAKE-1L
`
`| HANDSHAKE=1L
`HANDSHAKE-1L
`
`
`
`HANDSHAKE-1L
`- EOT
`
`
`
`|
`
`
`RESPONSE
`HANDSHAKE-1L
`
`
`
`{
`
`HANDSHAKE2L9(STHEOT) 9=* ST!
`
` l
`
`*EQOT
`=
`
`HANDSHAKE -iL
`
`FIG.T/
`
`IlO (HII O)
`
`:
`
`HANDSHAKE-1L
`
`
`HANDSHAKE -1L *
`
`
`
`HANDSHAKE* RESPONSE
`
`
`RESPONSE
`HANDSHAKE-1L
`
`RESPONSE,
`
`||
`
`HANDSHAKE-1L*
`
`RESPONSE *
`HANDSHAKE -1L
`
`|
`HANDSHAKE -1L
`
`
`
`
`

`

`U.S. Patent
`
`oct. 14, 1980
`
`Sheet 12 of 29
`
`4,228,496
`
`FIG.18
`
`T-BUS COMMANDS
`[MNEMONIC
`__ FUNCTIONS _
`~__
`N TION NOP
`SELECT OUT
`SEL
`DESELECT ee DSEL
`
`ABI
`
`LOAD PARAMETER
`ABID
`ABORT DATA TRANSFER
`TDATAOUT. UT
`HIGH PRIORITY INTERRUPT POLL
`LOW PRIORITY INTERRUPT POLL
`RECONNECTPOLL
`READ DEVICES ADDRESS & COMMAND
`READ DEVICE STATUS
`READINTERRUPT STATUS.
`READ INTERRUPT CAUSE
`DATA IN
`
`
`/O INTERFACE
`
`D-BUS FORMAT
`15
`T-BUS FUNCTION 0123456 789101112 13 14
`5
`LAC
`[COMMAND [| DEVICE NO]
`UNIT NO.
`ROST
`
`FIG.19
`
`1/0 INTERFACE
`
`OWNERSHIP
`LATCH
`
`
`
`INTERFACE
`181
`COMMON LOGIC
`
`
`
`CONTROL PART
`OF DEVICE
`
`
`
`CONTROL
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 13 of 29
`
`4,228,496
`
`79
`
`DECODE|CONTROL
`LOGIC
`LOGIC
`
`DEVICE
`ADDRESS
`COMPARATOR
`
`
`
`| BUS «(0:3)
`UNOWNED STATUS,ONSET
`INTERFACE. COMMON LOGIC
`18
`FIG.21
`16
`SMA
`CiRemt
`OBUS O
`Ossi Sal reidter
`a7
`
`182
`
`O BUS
`
`205
`
`213
`
`| CONTROL O
`(209
`
`= 2|DEVAD 0 CONTROL
`
`
`Os
`|
`215
`
`
`& ©JCONTROL1 MUX
`
`
`@|DEVAD 1 211
`e
`211
`
`215A
`
`TAKE OWNERSHIP O
`207
`TAKE OWNERSHIP1
`207
`
`OWNERSHIP
`LATCH
`
`185
`
`Out
`DATA
`Pou] es { roa
`1 BUS
`16
`2524
`Py
`MUX
`& OO
`DEVAD
`OEE|COMMAND
`
`
`
`ays
`
`=O€|UNIT 4 219 220 201
`
`
`
`

`

`Oct. 14, 1980
`
`Sheet 14 of 29
`
`
`
`NIVLVG“Ot(WV)
`
`Elzcee
`
`€92
`
`TBNNVHD5AXOWSW
`SSeindLNOy¥3545N9Gqinovivag©ySOAS
`
`U.S. Patent
`
`E92
`
`
`
`YALNIOdLAdLNAO
`
`W139
`
`GeeTee\
`
`
`
`YSLNIOd LAdNI
`
`68L
`
`W1D
`
`LOOIN!
`
`Osls
`
`LOZ
`
`4,228,496
`
`()HId3G
`
`Ze€Sre
`
`
`KLaWSNaIJoe)1sanoau
`
`GIOHSSSH1LSSTuISYadine
`
`YSLNNODAONLNODXNWSOIASG
`
`(Q)H1d3d1SandayyeAgSle”ASNNVHO
`
`
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 15 of 29
`
`4,228,496
`
` Ot
`
`
`
`SAASAOIARC
`
`STIHMwa44Ne
`
`‘O1F33s
`
`YhTI
`
`
`p—A__,TENNVHDAaQvW
`
`
`YSSNVULyISaNOSY1OSNNODSY
`
`SNOSea=Ag_NaasISSNOSY
`
`
`
`
`
`NOIWWYadOINdLNONVNONOILOVdsasdenEECOl
`
`
`
`ST1I4TSNNVHD
`
`350(10H
`
`(L)Hid3d
`CQOHSSaSHL
`
`AAOGIOH
`
`H1dsad
`
`44450NISQHOM
`
`
`
`(MHIdaGYA45NG
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 16 of 29
`
`4,228,496
`
`FIG. 24
`SVO=
`
`PARITY WINDOW
`
`pre ERR REG IF PAR IS
`CLRPAROK,REG
`|
`|
`svope——-F—(ti‘“‘<‘<
`GATES paral
`Toares DATA
`
`TO REG
`
`OUT OF REG
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 17 of 29
`
`4,228,496
`
`
`
`YEINIOdINdINOOL
`
`
`
`YHassnaINdLNOBV
`
`TOYLNOD
`d34sng
`
`21901
`
`9¢Old
`
`
`
`
`
`Useze6ez)‘G92
`
`
`
`LOseINdINO|eve
`
`
`
`ASOWSWYSAANGOL
`
`
`YHSLNIOdLAdN!“2
`Ciyez £€?¢)€92
`
`
`
`
`|Sve
`
`
`
`HyALIUM|
`
`avsy
`
`Sle
`
`
`
` (ee)edasandINNor—_OaASCa
`
`O3YHO
`
`
`
`StoreNNAye“4|(L172)XAWOL<p
`
`y¥AdO030
`
`aZve
`
`WD
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 18 of 29
`
`4,228,496
`
`SELECT J=(LAC* ADD COMP: PAROKFE)SEL* OWN*ENABLE
`FIG.27
`RANK» PAROK FE*SELBIT)
`K= ENSTOPINs(DATAIN +DATA OUT)+ABTD+ABTI+DSEL +
`
`LAC*ADD COMP « PAROK+ SEL? RANK*SELBIT *PAROK
`
`CLK=SVO TE
`
`FIG. 28
`
`CHANNEL CLOCK ais “TW
`SVO(CHANNEL) eee
`
`SVI (DEVICE
`CONTROLLER)
`
`FIG. 29
`
`SVI
`
`START SVO
`
`DEVICE
`COMB. LOGIC
`0
`S
`CONTROLLER
`
`
`CONTROL PART
`(41)
`OF DEVICE
`CONTROLLER
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 19 of 29
`
`4,228,496
`
`en
`FIG. 30
`
`182A 195|BeA bss|1B2A
`
`[reer]|[evory 27 |Erion
`
`
`7 7337 1707.—°337 107 107
`
`
`DEVICE
`CONTROLLER
`
`A 4
`
`[PON]
`Be ti 313
`
`
`
`
`T
`
`3a/7F b\343 [3ar/F 343 |
`TL339
`339/T 307
`307
`311
`£309
`3
`
`339
`
`309
`
`

`

`Oct. 14, 1980
`
`4,228,496
`
`Sheet 20 of 29
`
`U.S. Patent
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 21 of 29
`
`4,228,496
`
`FIG.34
`
`MEMORY SYSTEM
`BLOCK DIAGRAM
`
`CPU
`105
`
`1/0 CHANNEL
`109
`
`SECTION|SECTION
`107 8
`
`cH
`Co
`TT
`
`| |
`
`wap
`
`MEMORY
`CONTROL
`
`29
`
`| Locic
`407|o@ (51 SECTION
`
`
`
`
`
`cane|Rat co] | 401
`
`! (
`
`18-BIT
`PHYSICAL
`ADDRESS
`BUS
`
`CONTROL (8 TOTAL)
`16-BIT
`16-BIT
`&
`DATA
`DATA
`FROM ERROR
`TO
`MEMORY MEMORY LINES
`BUS
`BUS
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 22 of 29
`
`4,228,496
`
`FIG.35
`407
`
`MAP SECTION BLOCK DIAGRAM
`pmo
`|4e3
`6
`
`427
`
`REF BIT
`
`13,15)
`
`MEMORY
`
`13 (15)
`447
`13(15)
`
`TE
`
`Atl
`
`a
`415
`
`469
`
`Map
`WRITE
`STROBE
`
`
`
`———
`
`
`
`LOGICAL
`8
`
`Aa
`
`\
`453
`}
`LOGIC
`|
`5I
`foot
`MeMe
`|
`PARITY
`=a5)
`GENERATOR
`|
`449
`14(16)
`409)
`MAP
`|
`AGB7AUSER DATAO A
`{417
`A7INUSER CODE2 £}
`8
`|
`|
`4731SYS CODE 3 <|}o4
`[MapPAGE:
`|
`ae)
`fo
`/
`g
`4
`7
`|
`ABSENT
`1406)
`45h,__
`CHECKER L___ 1-.MAP PARITY
`|
`ERROR SIGNAL
`
`or
`
`16
`
`CMA
`
`Oe
`
`|
`|
`|
`|
`|
`|
`|
`|
`|
`forrser|
`WITHIN
`PAGE
`
`18
`
`10
`
`A19
`
`ACT
`
`
`
`|
`|
`[
`
`445 421LESS FR |RY
`
`MAP PARITY ERROR
`
`443
`
`1214)
`
`ci(16)
`
`q
`
`PAGE FAULT
`
`8
`
`
`
`eA
`(20)18-BIT
`PHYSICAL
`MEMORY
`ADDRESS
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 23 of 29
`
`4,228,496
`
`FIG.36
`
`LOGICAL MEMORY
`
`LOGICAL
`
`LOGICAL
`PAGE NO.
`
`ADDRESS o
`
`CSeo
`PHYSICAL PAGE NO
`(0-255)
`
`
`
`
`
`P=PARITY BIT FIELD
`
`RST=REF HISTORY FIELD
`
`D=DIRTY BIT
`
`A=ABSENT
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 24 of 29
`
`4,228,496
`
`FIG.37
`
`3
`
`Na
`AOR oT Me
`BUS
`
`A775
`
`CONTROL
`RERROR
`LINES
`
`14,
`439)
`
`myn
`_|CONTRCL
`
`MODULE
`COMPARE
`15
`
`PHYSICAL 1&
`ADDRESS
`BUS
`
`421,419
`
`Ace
`SEMICONDUCTOR
`STORAGE ARRAY)
`
`_
`
`16
`
`481
`CHECK BIT’
`GENERATOR
`-
`
`16- BIT DATA
`
`
`
`6
`FIELD
`—16 - DATA BitsrheCHECK
`BITS
`bee
`6-BIT
`WOR
`CHECK
`SBOS
`FIELD
`22-BITS
`EACH
`
`16
`
`479
`;Puy
`489
`
`6
`
`6
`
`
`
`
`
`A483
`1G|CHECK BIT
`437
`COMPARATOR
`
`SYNDROME
`DATA
`
`
`DATA FROM, 16,|_ BIT BUS 6
`
`MEMORY
`COMPLE-
`"101
`
`BUS 437|MENTER
`
`
`493
`1
`
`SINGLE
`ERROR 495
`MULTIPLE
`ERROR
`
`
`SEMICONDUCTOR MEMORY
`MODULE BLOCK DIAGRAM
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 25 of 29
`
`4,228,496
`
`Ore
`
`Oo
`
`On
`
`opo -
`
`{JO O-
`
`2zq@oid@606@24087dcdG10®€®Og=D
`
`Gq@®ria@ca@za©lla®OdGS6dG8AOD
`
`
`SNHL
`
`YOLVYSNADL!8MOSHOBEO)|4
`
`am
`
`n|P
`
`RaIAu
`
`y
`
`PB
`
`A
`
`= |
`
`OaamaNOnanl aww o
`
`Li9VIVO
`
`4 L
`
`O O
`
`wt
`O
`
`” U
`
`COLOQO
`
`O
`
`
`
`PPrrereepeerecceocccoree Ccartcepctterecetce
`
`
`EEECULTUREDTCUCTALTUTEUETEUtethtt
`
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 26 of 29
`
`4,228,496
`
`Sig®pid®cla®2a®11d©O1G@6G@BASGOD*OSSAHL
`
`
`
`
`
`rerrrete.yeeeerretcerreeecececes gecccen—gececceUT
`
`
`
`trrett._ecrrere seererer _gecrecegenceeectst
`SSvSesesiSOS
`ELECTTULULUCTT ULLULCTELUCUeetICAL,
`
`
`
`
`—prererereerreretee—ereecerreeceeereeeTT|P—peerecereeeereeeee—eeeeecereIrceeeeeeceeeeeeeePp—ereereeee
`
`YOLVYVdWODLIdMOSHO6Old
`
`|:
`
`a
`
`Al|
`
`PY
`
`|
`
`i a
`
`On-amynonaoes
`
`6Ssv11aVvivd
`
`ild-6
`
`AlleeALIavd
`
`118-6
`SOG
`
`(ANOYQNAS)
`
`“
`eer
`
`O-nnTtTw
`
`L1GADSHD
`
`
`
`

`

`U.S. Patent
`
`oct. 14, 1980
`
`Sheet 27 of 29
`
`4,228,496
`
`FIG. AO
`
`SYNDROME. DECODER 48 S1 S3 $5
`
`ERROR
`
`
`514
`
` 510) QpD
`(135 BIT SYNOD)
`
`|
`__
`ODD-EVEN-S50® S1@ S20S53@S84 @S5
`MULTIPLE. ERROR=MULTIPLE+EVEN « Sl « S20 S3« S4e0S
`SINGLE ERROR= ODD» MULTIPLE
`
`_
`
`

`

`U.S. Patent
`
`Oct. 14, 1980
`
`Sheet 28 of 29
`
`4,228,496
`
`FIG 41 BIT COMPLEMENTER
`487
`
`489
`
`493
`
`CORRECTED
`BATA BIT
`
`EROM MEMORY 437
`OMnNOMBWH-O
`
`

`

`U.S
`
`. Patent
`
`Oct. 14
`
`, 1980
`
`Sheet 29 of 29
`
`4
`
`228,496
`
`(
`
`LNODDSIO
`
`NMOGLbAdD
`
`NMOdONdD
`
`Q3YO1S3Y|Add
`
`Q3SYyOLSSYONdD
`
`
`
`SivlSTVILIN!
`
`
`
`

`

`1
`
`MULTIPROCESSOR SYSTEM
`
`4,228,496
`
`BACKGROUNDOF THE INVENTION
`
`This invention relates to a multiprocessor computer
`system in which interconnected processor modules
`provide multiprocessing (parallel processing in separate
`processor modules) and multiprogramming(interleaved
`processing in one processor module).
`This invention relates particularly to a system which
`can support high transaction rates to large on-line data
`bases and in which no single componentfailure can stop
`or contaminate the operation of the system.
`There are many applications which require on-line
`processing of large volumes of data at high transaction
`rates. For example, such processing is required in retail
`applications for automated point of sale, inventory and
`credit transactions and in financialinstitutions for auto-
`mated funds transfer and credit transactions.
`In computing applications of this kind it is important,
`and often critical, that the data processing not be inter-
`rupted. A failure of an on-line computer system can shut
`down a portion of the related business and can cause
`considerable loss of data and money.
`Thus, an on-line system of this kind must provide not
`only sufficient computing power to permit multiple
`computations to be done simultaneously, but it must
`also provide a mode of operation which permits data
`processing to be continued without interruption in the
`event some componentof the system fails.
`The system should operate either in a fail-safe mode
`(in which no loss of throughput occurs as a result of
`failure) or in a fail-soft mode (in which some slowdown
`occurs but full processing capabilities are maintained)in
`the event of a failure.
`Furthermore, the system should also operate in a way
`such that a failure of a single component cannot con-
`taminate the operation ofthe system. The system should
`provide fault-tolerant computing. For fault-tolerant
`computing all errors and failures in the system should
`either be corrected automatically, or if the failure or
`efror cannot be corrected automatically, it should be
`detected, or if it cannot be detected, it should be con-
`tained and should not be permitted to contaminate the
`rest of the system.
`Since a single processor modulecan fail, it is obvious
`that a system which will operate without interruptionin
`an on-line application must have more than one proces-
`sor module.
`Systems which have more than one processor module
`can therefore meet one of the necessary conditions for
`noninterruptible operation. However, the use of more
`than one processor module in a system doesnotbyitself
`provideall the sufficient conditions for maintaining the
`required processing capabilities in the event of compo-
`nent failure, as will become more apparent from the
`description to follow.
`Computing systemsfor on-line, high volume, transac-
`tion oriented, computing applications which must oper-
`ate without interruption therefore require multiproces-
`sors as a starting point. But the use of multiprocessors
`does not guarantee thatall of the sufficient conditions
`will be met,and fulfilling the additional sufficient condi-
`tions for on-line systems of this kind has presented a
`numberof problemsin the prior art.
`Theprior art approach to uninterrupted data process-
`ing has proceeded generally along two lines—either
`adapting two or more large, monolithic, general pur-
`
`5
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`53
`
`60
`
`65
`
`2
`pose computersfor joint operation or interconnecting a
`plurality of minicomputers to provide multiprocessing
`capabilities.
`In the first case, adapting two large monolithic gen-
`eral purpose computers for joint operation, one conven-
`tional prior art approach has been to have the two com-
`puters share a common memory. Now in this type of
`multiprocessing system a failure in the shared memory
`can stop the entire system. Shared memoryalso presents
`a numberof other problems including sequencing ac-
`cesses to the common memory. This system, while
`meeting some of the necessary conditions for uninter-
`ruptible processing, does not meet all of the sufficient
`conditions.
`Furthermore, multiprocessing systems using large
`general purpose computers are quite expensive because
`each computer is constructed as a monolithic unit in
`which all components (including the packaging,
`the
`cooling system, etc.) must be duplicated each time an-
`other processor is added to the system even though
`many of the duplicated components are not required.
`The other prior art approach of using a plurality of
`minicomputers has (in common with the approach of
`using large general purpose computers) suffered from
`the drawback of having to adapt a communicationslink
`between computers that were never originally con-
`structed to provide such a link. The required links were,
`as a result, usually made through the input/output chan-
`nel. Connections through the input/output channel are
`necessarily slower than internal transfer within the pro-
`cessor itself, and such interprocessor links have there-
`fore provided relatively slow interprocessor communi-
`cation.
`the interprocessor connections re-
`Furthermore,
`quired special adapter cards that added substantially to
`the cost of the overall system and that introduced the
`possibility of single component failures which could
`stop the system. Adding dual interprocessor links and
`adapter cards to avoid problemsofcritical single com-
`ponents failures increased the overall system cost even
`more substantially.
`Providing dual links and adapter cards between all
`processors generally became very cumbersome and
`quite complex from the standpoint of operation.
`Another problem ofthe prior art arose out of the way
`in which connections were made to peripheral devices.
`If a numberof peripheral devices are connected to a
`single input/output bus of one processor in a multipro-
`cessor system and that processorfails, then the periph-
`eral devices will be unavailable to the system even
`though the failed processor is linked through an inter-
`processor connection to another processor or proces-
`sors in the system.
`To avoid this problem, the prior art has provided an
`input/output bus switch for interconnecting input/out-
`put busses for continued access to peripheral devices
`when a processorassociated with the peripheral devices
`on a particular input/output bus fails. The bus switches
`have been expensive and also have presented the possi-
`bility of single component failure which could down a
`substantial part of the overall system.
`Providing software for the prior art multiprocessor
`systems has also been a major problem.
`Operating systems software for such multiprocessing
`systems has tended to be nonexistent. Where software
`had been developed for such multiprocessor systems, it
`quite often was restricted to a small numberof proces-
`
`

`

`4,228,496
`
`3
`sors and was not adapted for the inclusion of additional
`processors. In many cases it was necessary either to
`modify the operating system or to put some of the oper-
`ating system functions into the user’s own program—an
`expensive, time-consuming operation.
`Thepriorart lacked a satisfactory standard operating
`system forlinking processors.It also did not provide an
`operating system for automatically accommodating
`additional processors in a multiprocessing system con-
`structed to accommodate the modular addition of pro-
`cessors as increased computering power was required.
`A primary object of the present invention is to con-
`struct a multiprocessor system for on-line, transaction-
`oriented applications which overcomes the problems of
`the priorart.
`A basic objective of the present inventionis to insure
`that nosingle failure can stop the system or significantly
`affect system operation.In this regard, the system ofthe
`present invention is constructed so that thereis no sin-
`gle componentthat attaches to everything in the sys-
`tem, either mechanically or electrically.
`It is a closely related objective of the present inven-
`tion to guarantee that every error that happens can be
`either corrected, detected or prevented from contami-
`nating the system.
`It is another important objective of the present inven-
`tion to provide a system architecture and basic mode of
`operation which free the user from the need to get
`involved with the system hardware and the protocol of
`interprocessor communication. In the present invention
`every major component is modularized so that any
`major component can be removed or replaced without
`stopping the system.
`In addition, the system can be
`expanded in place(either horizontally by the addition of
`standard processor modules or in most cases vertically
`by the addition of peripheral devices) without system
`interruption or modification to hardware or software.
`SUMMARYOF THE INVENTION
`
`The multiprocessor system of the present invention
`comprises multiple, independent processor modules and
`data paths.
`In one specific embodimentof the present invention
`16 separate processor modules are interconnected by an
`interprocessor bus for multiprocessing and multipro-
`gramming. In this specific embodiment each processor
`module supports up to 32 device controllers, and each
`device controller can control up to eight peripheral
`devices.
`independent communication paths and
`Multiple,
`ports are provided between all major componentsof the
`system to insure that it is always possible to communi-
`cate between processor modules and between processor
`modules and peripheral devices over at least two paths
`and also to insure that a single failure will not stop
`system operation.
`These multiple communication paths include multiple
`interprocessor busses interconnecting each of the pro-
`cessor modules, multiports in each device controller,
`and input/output busses connecting each device con-
`troller for access by at least two different processor
`modules.
`Each processor module is a standard module and
`includes as part of the module a central processing unit,
`a main memory,an interprocessor control and an input-
`/output channel.
`
`4
`Each processor module has a pipelined microproces-
`sor operated by microinstructions included as a basic
`instruction set in each processor module.
`The basic instruction set in each processor module
`recognizes the fact that there is an interprocessor com-
`munications link; and when an additional processor
`module is added to the system, the operating system (a
`copy of which resides in each processor module) is
`informed that a new resourceis available for operation
`within the existing operating system withoutthe need to
`modify either the system hardware or software.
`To increase performance and to maintain very high
`transaction rates each processor module includes a sec-
`ond microprocessor which is dedicated to input/output
`operations.
`A dual port access to the main memory by both the
`central processing unit and the input/output channel
`permits direct memory access for the input/output
`transfers to also increase performance.
`Each processor module is physically constructed to
`fit on a minimum numberoflarge printed circuit boards.
`Using only a few boards for each processor module
`conserves space for packaging and minimizes the length
`of the interprocessor bus required to interconnectall of
`the processor modules. A relatively short interproces-
`sor bus minimizes the deterioration of the signals on the
`interprocessor bus and permits high speed of communi-
`cation over the interprocessor bus.
`Each interprocessorbus is a high speed, synchronous
`bus to minimize overheadin interprocessor communica-
`tions and to enable the system to achieve high through-
`put rates.
`A separate bus controller monitors all transmissions
`over the bus. The bus controller includes processor
`select logic for determining the priority of data transfer
`between any two processor modules over the inter-
`processor bus. The bus controller also includes bus
`control state logic for establishing a sender-receiver
`pair of processor modules and a time frame for a trans-
`fer of information over the bus between the sender-
`receiver pair.
`Each bus controller includes a bus clock, and each
`central processing unit of each processor module has its
`own separate clock. There is no master clock system
`subject to a single componentfailure which could stop
`the entire multiprocessor system.
`Each processor module includes, in the interproces-
`sor control of the processor module, a certain amount of
`circuitry on the printed circuit boards which is dedi-
`cated to communications over the interprocessor buses.
`Eachinterprocessor control also includesfast buffers
`(inqueue buffers and an outqueue buffer} which can be
`emptied and filled by the central processing unit with-
`out interfering with the interprocessor bus. This makes
`it possible to sustain a higher data rate on the inter-
`processor bus than could be sustained by any single pair
`of processors. Several data transfers between pairs of
`processor modules can be interleaved on an apparent
`simultaneousbasis.
`Because the interprocessor bus operates asynchro-
`nously with each particular central processing unit,
`each inqueue and outqueue buffer is clocked either by
`the processor module or by the bus controller, but not
`by both simultaneously.
`Each inqueue buffer and outqueue buffer therefore
`has associated withit in the interprocessor control some
`logic that operates in synchronism with the bus clock
`and other logic that operates in synchronism with the
`
`25
`
`35
`
`350
`
`55
`
`60
`
`65
`
`

`

`_ 5
`
`25
`

`central processing unit clock. Logic interlocks qualify
`certain transitions of the logic from onestate to another
`state to prevent loss of data in transfers between the
`asynchronousinterprocessor buses and processor mod-
`ule.
`The logic is also arranged so that in the event a pro-
`cessor module is powering down,there will be no tran-
`sient effect on the interprocessor buses because the
`processor moduleis losing control. The powering down
`of the processor module on an interprocessor bus will
`therefore not disrupt any other interprocessorbusactiv-
`ity.
`The bus controller and interprocessor control of each
`processor module coact to perform all interprocessor
`bus managementin parallel with processing by the cen-
`tral processing units so that there is no waste of process-
`ing power. This bus managementis performed with low
`protocol overhead in thatit takes very few interproces-
`sor bus cycles to establish a bus transfer—what proces-
`sor bus module is sending and what processor moduleis
`receiving—relative to the amountof information actu-
`ally transmitted.
`The processor select logic of the bus controller in-
`cludes an individual select line which extends from the
`processor select logic to each processor module. The
`select lines are used in three ways in the protocol of
`establishing a sender-receiver pair of processor modules
`and a time frame for transfer of information over the
`interprocessor bus between the sender-receiver pair.
`The select lines are used (1) in polling to determine
`which particular processor module wants to send, (2) in
`receiving to inquire of a receiver processor module
`whether the particular processor module wants to re-
`ceive, and (3) in combination with a send command to
`let the sender processor module know the time frame
`for sending.
`The receiver processor moduleis qualified to receive
`incoming data unsolicited by the receiver processor
`module and without a software instruction.
`Blocks of data between a sender-receiver pair of pro-
`cessor modules are transmitted over the interprocessor
`bus in packets. At the end of each packet transfer the
`interprocessor control of a receiver processor module
`logically disconnects from the interprocessor bus to
`permit the bus controlstate logic to establish another
`sequence ofa different sender-receiver pair of processor
`modules and a time frame for making a packet transfer
`between the other pair of sender-receiver processor
`modules. Thus, as noted above, several data block trans-
`fers between different sender-receiver pairs of proces-
`sor modules can therefore be interleaved on theinter-
`processor bus on an apparently simultaneous basis be-
`cause ofthe faster clock rate of the interprocessorbus as
`comparedto the slower memory speedof the processor
`modules.
`Each processor module memory includes a separate
`buffer for each combination of a processor module and
`an interprocessor bus.
`Each memory also includes a bus receive table for
`directing incoming data from an interprocessor busto a
`specified location in a related buffer in the memory of a
`receiver processor module. Each busreceive table pro-
`vides a bus receive table entry which contains the ad-
`dress where the incoming data is to be stored and the
`number of words expected from the sender processor
`module. The bus receive table entry is updated by firm-
`ware in the processor module after the receipt of each
`packet andis effective with the firmware either to pro-
`
`4,228,496
`6
`vide a program interrupt when the entire data block has
`been successfully received or to provide an interrupt to
`the software program currently executing in the proces-
`sor module in response to the detection of an error in
`the course of the transmission ofthe data over the inter-
`processor bus. Producing a program interrupt only at
`the completion of the data block transfer enables the
`transfer of data to be made transparentto the software
`currently executing in the processor module. The inter-
`rupt in response to the detection of an error provides an
`integrity check on the transmission of data.
`The input/output subsystem of the multiprocessor
`system of the present invention is constructed to insure
`that no single processor mo

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket