`
`[19]
`
`[111
`
`Patent Number:
`
`5,038,320
`
`Date of Patent:
`Heath et al.
`Aug. 6, 1991
`[451
`
`[541
`
`[75]
`
`[731
`
`121]
`
`[221
`
`[631
`
`[51]
`[521
`
`[58]
`
`[56]
`
`COMPUTER SYSTEM WITH AUTOMATIC
`INITIALIZATION OF PLUGGABLE OPTION
`CARDS
`
`Inventors: Chester A. Heath; John K. Langgood,
`'
`both of Boca Raton, Fla.; Ronald E.
`Valli, Pittsburgh, Pa.
`International Business Machines
`Corp., Armonk, N.Y.
`
`Assignee:
`
`Appl. No.:
`Filed:
`
`296,387
`
`Jan. 6, 1939
`
`Related U.S. Application Data
`Continuation of Ser. No. 21,391, Mar. 13, 1987, aban-
`cloned.
`
`Int. Cl.5 ....................... .. G06F 13/00; G06F 7/04
`
`U.S. Cl. ..................... .. 364/900; 364/948.5;
`364/944.61; 364/975.2; 364/976.4; 364/945;
`364/929.5; 364/929.2; 371/11.1
`364/200 MS File. 900 MS File;
`Field of Search
`340/825.07, 825.06, 825.52, 825.06; 371/11.1,
`11.2, 11.3, 66, 7
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`3,480,914 11/1969
`3,510,843
`5/1970
`3,573,741
`4/1971
`3,818,447
`6/1974
`4,003,033
`1/1977
`4,015,244
`3/1977
`
`
`
`(List continued on next page.)
`
`FOREIGN PATENT DOCUMENTS
`0041406
`9/1981
`0087368
`8/1983
`0121331
`3/1984
`0121381 10/1984
`0136178 4/1985
`0179981
`6/1985
`0171073
`2/1986
`0182044
`5/1986
`0200198 11/1986
`
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`European Pat. Off.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`3508648
`so-120935
`
`9/1986 Fed. Rep. ofGennany.
`9/1976 Japan.
`
`(List continued on next page.)
`
`OTHER PUBLICATIONS
`
`IBM TDB vol. 20, No. 7, Dec. 1977, Input/Output
`Device Address Recognition Mechanism.
`(List continued on next page.)
`
`Primary Examiner—Garetl1 D. Shaw
`Assistant Exam1'ner—Paul Kulik
`Attorney, Agent. or Fi'rm—Winfield J. Brown, Jr.;
`Robert Lieber
`
`[57]
`
`ABSTRACT!‘
`
`A data processing system includes a planar board hav-
`ing a central processing .unit (CPU), a main memory
`unit, and input/output (I/0) sockets or slots, each
`adapted to receive a selected one of a plurality of differ-
`ent and/or similar option cards. each card contains (or
`is connected to) and controls a respective peripheral
`device; and each card is pre-wired with an ID value
`corresponding to its card type. Software programmable
`option registers on each card store parameters such as
`designated default (or alternate) address information,
`priority levels, and other system resource parameters. A
`setup routine, during initial power-on, retrieves and
`stores the appropriate parameters in the [/0 cards and
`also in slot positions in main memory, one position being
`assigned to each slot on the board. Each slot position is
`adapted to hold the parameters associated with the card
`inserted in its respective slot and the card ID value.
`That portion of main memory containing the slot posi-
`tions is adapted to maintain the parameter and ID infor-
`mation by means of battery power when system power
`fails or is disconnected, i.e., a nonvolatile memory por-
`tion. Subsequent power-on routines are simplified by
`merely transferring parameters from the table to the
`card option registers if the status of all the slots has not
`changed since the last power-down, system reset, or
`channel reset.
`
`POST1P0vER on SELF irsn setup
`
`18 Claims, 7 Drawing Sheets
`
`HUAWEI EX. 1019 - 1/16
`
`K557 CHAIINEL
`
`FETCH CARD lD'$
`111
`5EllUElI‘CE
`
`
`
`
`iC0|lPARE EICN ID VALUE I101
`‘
`lD1MLUC I11 RESEIIVE
`SLOT FBSITION
`
`' IF ALL Ill'S lMTEl|.TRARSWR
`ID MSNATB11:
`PARAMEYER mm mu S1131
`IIVDIE IIITIAUIATIDI
`PGSIHOIS 1'0 ESPECTIVE
`SETUP P110911}!
`CARD REHSTIISZI
`
`
`
`
`
`HUAWEI EX. 1019 - 1/16
`
`
`
`Page 2
`___
`
`5,038,320
`
`4/1980
`55-56235
`5646384 10/1982
`2101370
`1/1983
`2137382 10/1984
`2166893
`5/1986
`2175716 12/1986
`
`Japan .
`Japan .
`United Kingdom .
`United Kingdom .
`United Kingdom .
`United Kingdom .
`
`OTHER PUBLICATIONS
`
`IBM TDB vol. 20, No. 8, Jan. 1978, Initial Micropro-
`gram Load by Blocks Via Cycle Steal.
`IBM TDB vol. 22, No. 2, Jul., 1979, Even/Odd Ad-
`dresses to Allow Device Adapter Sharing by More
`Than One Processor.
`IBM TDB vol. 22, No. 5, Oct. 1979, Satellite Station
`Address Assignment Method.
`.
`IBM TDB vol. 22, No. 10, Mar., 1980, Automatic Mod-
`ule Detection.
`IBM TDB vol. 23, No. 8, Jan., 1981, Dynamic Device
`Address Assignment Mechanism.
`Electronic Design, Sep. 3, 1981, pp. 141-156, Several
`Articles, “Functional Architecture Threatens Central
`CPUs”, etc.
`Paper in Euromicro, Input/Output Control 6f IBM
`System/370 Model 125 through Dedicated Input/Out-
`put Processors, by Assmuth et al., pp. 24-40.
`115
`Technical Disclosure Bulletin (IBM) vol. 27, No.
`“Automatic Domain Configuration Mechanism for :
`Multi—Device I/O Controller”.
`Wescon Technical Paper Oct. 30—Nov. 2, 1984, “A
`Standard Protocol for Host Computer-Peripheral In
`terface Allows Upgrading to the Latest Mass Storage
`Devices".
`Technical Disclosure Bulletin (IBM) vol. 27, No. 2, Jul
`1984 “Input/Output Channel Address Assignmen
`Mechanism".
`JP Abstract vol. 10, No. 256 (P-493) (23312) Sep. 2
`1986.
`JP Abstract vol. 9, No. 239 (P-391) (1962) Sep. 25
`1985.
`JP Abstract vol. 9, vol. 9, No. 190 (P—378) (1913) Aug
`7, 1985.
`EDN Magazine vol. 26 (1981) Feb., No. 3, Boston, MA
`New Electronics l9(l986) Ju1., No. 14, London, Grea
`Britain.
`vol. 22, No. 3, Aug. 1979, IBM Technical Disclosur-
`Bulletin, Programmable Identification for I/O Device
`J. M. McVey.
`1 Jun. 1973, IBM Technical Disclosurt
`vol. 16, No.
`Bulletin, Program Controlled I/O Address Assignment
`L. .1. Rosenberg.
`
`HUAWEI EX. 1019 - 2/16
`
`U.S. PATENT DOCUMENTS
`5/ 1977
`Kaufman ........................... .. 364/200
`Moorehead .
`5/1977
`1/1978
`Calle et al.
`2/ 1978
`Fox
`5/ 1979
`Mitchell, Jr. .
`.12/1979
`Taddei . . . . . .
`3/1980
`Chesley .
`11/1980
`Raclo . . . . .
`2/1981
`Saal
`2/1981
`Bellamy
`3/1981
`Busby . . . . . . .
`5/1981
`Subrizi
`..
`10/1981
`Struger
`12/1981
`Panepinto
`2/1982
`Felder ......
`6/1982
`Maxwell
`10/1982
`Neumann .
`11/1982
`McVey
`12/1982
`Kaul
`2/1983
`Chisholm et al.
`8/1983
`Nozaki
`2/1984
`Shaw et al.
`3/1984
`Witalka ......... ..
`4/1984
`Dummermuth .
`6/1984
`Wunsch
`7/1984
`Weymouth ..
`1/1985
`Calvignac
`4/1985
`Ahuja ........ ..
`6/1985
`Ziehm et al.
`12/1985
`Caprio et al.
`12/1985
`Vincent et al.
`1/1986
`Boudreau
`2/1986
`Mantellina ..
`3/1986
`Desai ...........
`5/1986
`Shah et al.
`8/1986
`Crabtree et al.
`11/1986
`Ceccon et al.
`12/1986
`Brahm‘ ...... ..
`12/1986
`Vincent
`3/1987
`Samson
`4/1987
`Ceccon
`6/1987
`Caprio ...... ..
`10/1987
`Giinkel et al
`12/1987
`Brahm
`. . .
`1/1988
`Yoshida . . .
`6/1988
`Arpin et al.
`7/1988
`Buckley et al.
`11/1988
`Cheselka
`11/1988
`Finfrock et al.
`11/1988
`Harter
`9/1989
`Matelan
`
`
`
`FOREIGN PATENT DOCUMENTS
`
`54-24314
`54-73531
`
`3/1979 Japan.
`6/1979 Japan .
`
`..
`
`364/200
`.. 364/200
`................ 364/200
`.. . . . . . . . ... . . .. 364/200
`364/200
`. . . .. 364/200
`. 340/147 R
`....... .. 364/200
`.. . . . . . .. 364/200
`.. 364/200
`.. 364/900
`.. 365/230
`364/900
`364/200
`340/521
`364/200
`364/200
`364/200
`.... .. 364/200
`...... 364/200
`364/200
`364/900
`364/900
`.... .. 377/2
`.... .. 364/200
`340/825 5
`.... .. 371/7 X
`364/900
`.... .. 364/200
`364/200
`364/200
`364/900
`364/200
`364/200
`364/200
`379/28
`364/200
`371/68
`364/200
`364/900
`364/900
`379/28
`. .. . . .. 364/900
`364/200 X
`364/900
`364/200
`364/900 X
`364/200
`364/200
`
`
`
`.
`
`.
`
`4,025,903
`4,027,108
`4,070,704
`4,075,693
`4,155,l 17
`4, 177,51 1
`4,191,996
`4,236,207
`4,25 3,087
`4,253,144
`4,254,463
`4,268,901
`4,293,924
`4,303,993
`4,314,354
`4,335,426
`4,356,475
`4,360,870
`4,363,094
`4,373,181
`4,400,775
`4,432,049
`4.437.157
`4,442,504
`4,454,596
`4,458,357
`4,491,913
`4,514,728
`4,521,847
`4.556.953
`4,562,535
`4,563,736
`4,571,676
`4,578,773
`4,589,063
`4,604,690
`4,622,633
`4,626,634
`4,633,392
`4,654,857
`4,660,141
`4,670,855
`4,701,878
`4,713,834
`4,718,038
`4,750,136
`4,760,553
`4,787,025
`4,787,028
`4,787,030
`4,870,704
`
`HUAWEI EX. 1019 - 2/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 1 of 7
`
`5,038,320
`
`HUAWEI EX. 1019 - 3/16
`
`HUAWEI EX. 1019 - 3/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 2 of 7
`
`5,038,320
`
`FIG. 2
`
`PLANAR BOARD I
`0PT10N CARDS 5-0 T0
`5-T
`
`
`
`I70
`
`ADDRESS
`
`l?b
`
`DATA
`
`HUAWEI EX. 1019 - 4/16
`
`HUAWEI EX. 1019 - 4/16
`
`
`
`U.S. Patent
`
`Aug. 5, 1991
`
`Sheet 3 of 7
`
`023,830,5
`
`
`
`nlI.I.olI|IlIllIl.!.l|i'IlI.'I‘l"I‘J
`
`522.$52
`ass2..
`
`HUAWEI EX. 1019 - 5/16
`
`HUAWEI EX. 1019 - 5/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 4 of 7
`
`5,038,320
`
`FIG. 4
`
`'-————cARo oumns DlSABLED————--01
`ENABLE mo |
`|
`
`Ion ——1___;————————————
`
`VIOW
`CARD
`SWITCH
`F to "I
`|“sEmNcs
`|
`|
`|
`
`|
`
`DATABUSl7c
`
`HUAWEI EX. 1019 - 6/16
`
`HUAWEI EX. 1019 - 6/16
`
`
`
`f.Het3P3U
`
`Aug. 6, 1991
`
`Sheet 5 of 7
`
`5,038,320
`
`_éaaw
`5.2”23
`
`m.9...
`
`-525
`
`HUAWEI EX. 1019 - 7/16
`
`Tn
`
`
`
`E25::22
`
`
`
`mmH.:2_m\._§m.825
`
`HUAWEI EX. 1019 - 7/16
`
`
`
`
`
`U.S. Patent
`
`Aug. 5, 1991
`
`Sheet 6 of 7
`
`5,038,320
`
`FIG. 6
`
`INITIALIZATION SETUP
`
`‘RESET CHANNEL AND
`DISABLE ALL SLOTS
`
`USER SUPPLIES PARAMETER
`INFO IF A PROGRAM ‘FILE’
`
`IS NOT FOUND
`
`
`
`USER RESOLVES (KEYS - IN I
`PARAMETER CONFLICTS,o.g.
`
`SELECTS AN ALTERNATE I/O
`SPACE FOR A SECOND I
`
`
`TWO SIMILAR DEVICES
`
`
`
`RESPONSE
`
`
`
`
`SCAN I/O ADDRESS SPACE
`LOOKING FOR A RESPONSE
`INDICATES A NON-COMPATIBLE
`FEATURE CARD)
`
`
`
`
`
`RESPONSE _RECE|VEO'SYSTEM
`USER TO PROVIDE (KEY-IN)
`NEEDED INFO BY
`SLOT POSITION
`
`
`
`RESET CHANNEL
`
`STORE THE CONFIGURATION
`TABLE ON DISKETTE
`
`ENABLE SLOTS IN SEOUENCE
`
`INTERROGATE ALL
`SOCKETS/CARDS FOR CARD
`
`|D'S IN SEOUENCE
`
`
`
`- CONFIGURATION PROGRAM CIECIIS
`A PROGRAM ‘FILE’ FOR EACH ID
`(NAME- IO VAUJE) MHICH
`
`CREATES PARAMETERS RIR EACH
`
`
`RESPECTIVE CARD IN A TABLE
`
`
`
`
`
`
`
`TRANSFER THE PARAMETER
`INFO FROM TABLE
`TO SLOT POSITIONS
`SUCH AS .30,3|,32 .. .
`
`
`
`
`TRANSFER PARAMETERS
`FROM SLOT POSITIONS TO
`CARD REGISTERS 2|
`
`
`
`TERMINATE SETUP
`PROCEDURE
`
`HUAWEI EX. 1019 - 8/16
`
`HUAWEI EX. 1019 - 8/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 7 of 7
`
`5,038,320
`
`FIG. 7
`
`POSTIPONER ON SELF TEST) SETUP
`
`
`
`RESET CHANNEL
`
`FETCH CARD ID'S
`IN SEQUENCE
`
` COMPARE EACH ID VALUEVIITH
`
`
`ID VALUE IN RESPETIVE
`
`SLOT POSITION
`
`
`
`
`
`
`ID MISNATCH:
`
`INVOIIE INITIALIZATION
`
`
`
`SETUP PROGRAM
`
`IF ALI. ID'S NATCILTRANSFER
`PARAMETER INFO FROM SIOT
`POSITIONS TO RESPECTIVE
`OARO REGISTERS ZI
`
`HUAWEI EX. 1019 - 9/16
`
`HUAWEI EX. 1019 - 9/16
`
`
`
`1
`
`5,038,320
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`COMPUTER SYSTEM WITH AUTOMATIC
`INITIALIZATION OF PLUGGABLE OPTION
`CARDS
`
`This is a continuation of co-pending application Ser.
`No. 07/021,391 filed on 03/ 13/87, now abandoned.
`
`BACKGROUND OF THE INVENTION
`
`Users of smaller computer systems typically do not
`have sophisticated programming skills, and user-trans-
`parent programmable parameter switches have been
`suggested to simplify configuration of the systems to the
`user's needs. However, the routines that are required to
`so configure such systems are complex, error prone, and
`time consuming. It is an objective of the present im-
`provement to substantially reduce the time delay expe-
`rienced by a user before he can do productive work on
`the system upon re-powering or resetting of the system
`after a power-down, so long as no cards are changed in,
`' added to, or removed from the slots.
`SUMMARY OF THE INVENTION
`
`In the improved system, each card type is provided a
`unique ID, which value is hardwired on each card. A
`register is also provided on the card to store parameter
`data such as an address factor (to programmably change
`the I/O address space of the card where required),
`priority, status, and other system information providing
`for the efficient transfer of data between the system
`processor and the card, and between cards.
`When two or more of the same card type are used in
`the system, parameter data may be used to permit use of
`the cards at different priority levels or to render redun-
`dant cards inactive.
`
`One portion of main memory is provided with battery
`backup to power that portion when system power fails
`or is turned off. Positions in this nonvolatile portion of
`memory are provided (one for each I/O slot) to store
`the ID values of the cards inserted in the respective
`slots together with the respective card parameter data.
`When the system is first configured and initialized, a
`complex routine is executed to create and/or fetch all of
`the parameter data required for the cards attached to
`the system, to resolve system resource conflicts and to
`store the data into the appropriate card registers and the
`memory slot positions.
`However, if after a power-down, no change is made
`in the cards attached to the slots or in the slot positions
`of the cards, a simplified setup routine determines that
`no change has been made by comparing each card ID
`with the ID value stored in the respective slot position.
`Then the routine transfers the parameter data from the
`memory slot positions to the respective card registers;
`and the system is ready for normal operation.
`After the system is configured and initialized, a feed-
`back line is provided to signal the use of the select
`mechanism during nomial operation. Routines are in-
`voked to check the response of each card to given select
`resources to detect duplicate use of a select resource.
`These and other features of the present improvement
`will be apparent from the following detailed description
`and accompanying drawings, in which:
`FIG. 1 is a fragmentary block diagram of the im-
`proved system;
`FIG. 2 illustrates the bus structure;
`FIG. 3 show certain of the logic utilized by the setup
`routines;
`
`3;
`
`2
`FIG. 4 shows timings for certain of the logic of FIG.
`'
`FIG. 5 shows logic utilized by test routines to check
`the proper selection of an I/O card; and
`FIGS. 6 and 7 are flowcharts which illustrate briefly
`the setup routines used in the present system.
`DETAILED DESCRIPTION
`
`FIG. 1 illustrates a preferred embodiment of the pres-
`ent improvement in the form of an integrated circuit
`desktop type computer system featuring user-transpar-
`ent establishment of addressing and other variable sys-
`tem resource parameters for attached peripheral op-
`tions. Thus the user is not burdened with having to set
`dip switches, follow complex setup procedures, etc.
`System resource conflicts are reduced or eliminated by
`reassigning of parameters. Other parameters include
`priority levels and a state bit which allows for coexis-
`tence of two identical option attachments.
`System board 1 contains plural sockets or slots 2-0 to
`2-7 into which I/0 option cards 5-0 to 5-7 may be inter-
`changeably plugged. These cards control various types
`of peripheral devices (disk drives, printers. etc.) and
`add-on memory which are either integrally contained
`on respective cards or attached thereto via external
`connectors, not shown. Board 1 also contains elements
`of the central processing system, including a central
`processor unit (CPU) 8, random access memory (RAM)
`main memory modules 9, 10, 11, direct memory access
`(DMA) controls 12,
`timing controls 13, slot address
`decoder 14, whose function is described below, other
`logical elements not relevant to the present discussion
`indicated collectively at 15, power supply 16, and bus
`17 which links the central processing elements with
`each other and with attached peripherals. Darkened
`portions of the bus represent plural address lines 17b.
`data lines 17c, and control lines 17a (FIG. 2).
`A feature hereof is that slots 2-0 to 2-7 can be ad-
`dressed by “slot address” signals on the address lines of
`bus 17 during setup routines, and cards residing in the
`slots can be separately addressed by “I/O address"
`signals on the address lines during normal program
`execution; where the slot addresses and I/O addresses
`are distinctly different values associated respectively
`with physical locations of the sockets and with the types
`of devices currently attached. Many different types of
`devices are each potentially attachable to any one of the
`few sockets of the system.
`One of the memory modules, module 10 in the illus-
`tration, is nonvolatile, and stores information relative to
`each of the slots 2-0 to 2-7 and its associated card when
`the system is powered down. This module for example,
`may consist of an array of capacitive storage circuits,
`i.e., known complimentary metal-oxide silicon (CMOS)
`type semiconductor circuits, configured to operate
`under system power while the system is powered up
`and under battery power 18 in the absence of system_
`power. Within this module, a separately addressable
`space is allocated to each slot, for storing certain infor-
`mation relative to the slot. As shown, this information
`includes an identity value ID, an addressing factor AD,
`a priority value PR, a state bit S, and other information
`0.
`
`65
`
`A feature to be described is the use of this information
`in the nonvolatile memory to speed up initialization
`(FIG. 7) of the system when the slot configuration has
`not changed since the last power-down, and thereby
`reduce the time the user has to wait to begin useful
`
`HUAWEI EX. 1019 - 10/16
`
`HUAWEI EX. 1019 - 10/16
`
`
`
`3
`
`5,038,320
`
`l0
`
`15
`
`20
`
`25
`
`30
`
`35
`
`5
`
`applications after operating the system power-on
`switch, not shown, or after system or channel reset.
`This difference in complexity and number of steps re-
`quired is illustrated by FIGS. 6 (initialization) and 7
`(POST).
`Details of card 5-7 are indicated as representative of
`the relevant logical organizations of all cards to the
`extent required for describing the present improvement.
`Driver circuits 20 are pre-wired at manufacture, and
`under conditions described below transmit a set of iden-
`tity signals ID which uniquely identify that card type
`and its respective peripheral device.
`Register 21 stores parameter information for control-
`ling communications between the card and the system,
`including the address factor AD, the priority value PR,
`the state bit S, and other information 0 described with
`respect to module 10. This information is set by the
`central system during power-up initialization (FIG. 6).
`A feature of the system is that, if slot conditions have
`not changed since the last power-down of the system,
`the information is simply transferred to register 21 from
`the nonvolatile memory 10 in a relatively fast operation
`(FIG. 7), whereas if slot conditions have changed the
`system is required to perform a lengthy program pro-
`cess (FIG. 6) to retrieve and/or develop some or all of
`the information and then transfer it to both memory 10
`and the card register 21.
`Control
`logic 22 and decode logic 23 control re-
`sponse of the card 5-7 to I/O addresses appearing on
`bus 17. When power is applied to the system, the cards
`are addressable initially only through their sockets, and
`a portion of the address bus. But after the power-up
`process, the value AD in register 2! controls decoder 23
`to detect a default or alternate I/O address associated
`uniquely to the card type and unrelated to the socket
`location. Upon such detection, the priority value PR
`and state bit 5 in conjunction with control logic 22
`determine when data may be exchanged between the
`card and the bus 17. One manner in which an AD value,
`the decoder 23 and logic 22 detect an I/O address is
`shown and described in Interfacing to the IBM Personal
`Computer by L. Eggebrecht published 1983 at pages
`l30, 131.
`In operation, during its power-up sequence the cen-
`tral system individually addresses the option sockets, by
`sending respective “slot address" signals on the bus
`which are uniquely detected by decoder 14 and result in
`separate activation of setup (or enable card) lines ECO-
`EC7 extending to respective sockets 2-0 to 2-7 and
`through the sockets to attached cards 5-0 to 5-7. Upon
`activation of one such line, if the respective socket is
`vacant the hexadecimal value of FFFF is returned to
`the system which terminates further operation relative
`to that socket. However, if the socket contains a card,
`the activated line in conjunction with additional address
`signals on the bus 1'] condition logic 22 on the respec-
`tive card to cause drivers 20 to transmit the ID signals
`mentioned above which identify the respective card and
`device type. The system CPU compares the returned
`ID signals with the ID value stored in the location in
`memory 10 allocated to the respective slot, and sets an
`indication denoting whether the compared values are
`the same or different. This indication serves effectively
`as a branch condition for subsequent program processes
`which determine the action to be taken relative to the
`respective slot.
`If the indication just mentioned represents a matching
`comparison, and conditions of all other slots have not
`
`4
`changed, a subsequent program process will simply
`transfer the value of AD, PR, S, and O, which are cur-
`rently stored in the associated location of memory 10 to
`the respective card for storage in its register 21. If the
`indication represents a non-matching comparison, and if
`the transmitted ID indicates that the respective slot
`contains a card, the processor 8 uses the transmitted ID
`and information gleaned from the other slots to retrieve
`and/or develop new AD, PR, S, and 0 values for the
`respective card using files describing card resource
`requirements and alternatives. After all card values are
`established, the values for each card are transferred in
`sequence first to the respective slot location in memory
`10 and subsequently to the respective card register 21.
`Mismatching comparisons occur when the state of
`the interrogated. socket has been altered. The ID value
`stored in memory 10 relative to a socket which was
`vacant at last power-down is FFFF, and the ID value
`stored relative to a previously occupied socket is that of
`the card last occupying that slot. Thus, if a card is in-
`stalled into a previously vacant slot or substituted for a
`card having a different ID, a mismatching comparison
`will occur causing the system to retrieve and/or de-
`velop new AD, PR, S, and O values for the responding
`card.
`As noted above, the system cannot deal with mis-
`matching indications until the states of all sockets have
`been ascertained. This is because the priority level, and
`in certain instances the address and state values, as-
`signed to any card are relative to the cards in other
`slots. The address and state values are relative when
`two cards with the same identity ID are currently in-
`stalled, either to provide redundant backup for device
`failure or to provide additional device capacity. In the
`latter instances, the state value can be used to place a
`backup device in an inactive state during normal system
`operation or the priority values can be used to allow
`both devices to operate fully but at different priority
`levels.
`In the preferred embodiment, system information is
`stored in the eight slot positions (only three—-30, 31,
`32——are shown) of module 10 to accommodate up to
`eight feature cards 5-0 to 5-7. Each slot position is four
`bytes wide, twenty-eight bytes for seven feature cards.
`The card ID resides in the first two bytes and the switch
`(parameter) settings in, the last two bytes. The corre-
`sponding ID and parameter data on each card resides in
`drivers 20 and register 21, respectively.
`FIG. 3 shows schematically certain of the logic on
`the board 1 and feature card 5-7 used during setup rou-
`tines to read out a card ID and store parameters in the
`register 21. With respect to FIG. 3. the hexadecimal
`I/O address values assigned to certain of the compo-
`nents on each of the feature cards is as follows:
`096 - socket select value (one byte)
`100, 101 - ID drivers 20 (two bytes)
`102, 103 - parameter register 21 (two bytes)
`These are “dummy" addresses since they are used by
`the processor 8 to access I/O cards and components via
`the slots during setup operations. The address 096 se-
`lects the logic (gates 38, 39) of slot address decoder 14
`for storing the card select value into slot register 40 and
`also for reading out the value, i.e., during diagnosis.
`Address lines A0 and A1 of FIG. 3 form the lower
`address values 00, 01, 02, and 03 for selecting the com-
`ponents 20 and 21, while a logical 1 signal on address
`line A2 provides the most significant digit value of 1.
`
`45
`
`50
`
`55
`
`65
`
`HUAWEI EX. 1019 - 11/16
`
`HUAWEI EX. 1019 - 11/16
`
`
`
`5
`A0, A1, and A2 are coupled to appropriate bit lines of
`address bus 17b, FIG. 2.
`
`6
`signed an alternate I/O address at a different priority
`level.
`‘
`
`5,038,320
`
`FIG. 3 shows in more detail certain of the logic of the
`slot address decoder 14 and of the control logic 22 of
`card 7 which are used in the setup routines of FIGS. 6
`and 7. It will be assumed for simplicity of discussion,
`that addressing of two bytes at a time, i.e., one cycle, is
`available and that two byte data transfers occurs on
`busses. Hence, decoding address 101 gates both bytes
`for addresses 101 and 100.
`-
`. Slot register 40 is program controlled to store a three
`bit value (000-l l 1) corresponding to a slot (2-0 to 2-7) to
`be accessed. A decode circuit 41 changes this three bit
`binary value to a one in eight line output but only when
`it is gated by a signal on input line 42. Each output line,
`such as EC7, is connected via the respective socket to
`the card held in the socket. When a decode circuit 43
`decodes an address in the range 0100 - 0103 during a
`setup routine, it produces an output on line 42 to gate
`the value in 40 to cause an output (see FIG. 4) on a card
`setup line such EC7, one of the control lines 17a of bus
`17.
`
`The logic of FIG. 5 is then utilized during a diagnos-
`tic routine to.‘ ascertain whether each card properly
`responds to its respective I/O address. The address
`decode logic 23 decodes the address on bus 17b if it
`corresponds to the alternate address when the appropri-
`ate alternate address factor AD is stored in parameter
`register 21 and the least significant bit is on (the card is
`active). Similarly, a priority decode circuit 55 produces
`an output if the priority value on bus 17a is equal to PR
`in register 21 and the card active bit is on. If outputs are
`produced by logic 23 and 55, an AND gate 56 produces
`a feedback signal on line 57 to set one bit in a register 58
`on the board 1. The CPU8 under program control will
`read register 58_to determine that one and only one card
`properly responded to the I/O alternate address and
`reset register 58. Similar circuits on the other identical
`card will respond to the default I/O address and the
`appropriate priority level to set another bit in register 58
`for diagnostic purposes.
`While there have been described what are at present
`considered to be a preferred embodiment of this inven-
`tion, it will-be obvious to those skilled in the art that
`various changes and modifications may be made therein
`without departing from the invention, and it is, there-
`fore, intended to cover all such changes and modifica-
`tions as fall within the true spirit and scope of the inven-
`tion.
`What is claimed is:
`
`5
`
`l0
`
`l5
`
`20
`
`25
`
`30
`
`This output on EC7 is applied to AND gates 44 and
`45. The address line A2 is coupled to gates 44 and 45.
`An 1/0 read line IOR andan I/O write line IOW (de-
`coded from control lines 17a) are coupled respectively
`to gates 44 and 45. An output 46 from gate 44 is coupled
`to a pair of decoder circuits 47 and 48. An output 49
`from gate 45 is coupled to a decode circuit 50. An out-
`put 5l from decode 48 is coupled to the ID driver cir-
`cuit 20 and the output 52 from decode 50 is coupled to
`the parameter register 21.
`During the post setup routine of FIG. 7, when an ID
`is being fetched from card 7, the processor 8 forces A2
`negative (logical 1) and A1, A0 to logic Ol (address
`101). EC7 is negative (FIG. 4). When IOR goes nega-
`tive, the gate 44 produces an output at 46 to produce an
`output at 51 which gates the card ID value in 20 to data
`bus 17c. Processor 8 compares this ID with the ID in
`the respective slot position in memory module 10. If the
`IDs compare, processor 8 transfers the parameter val-
`ues in the slot position 32 (FIG. 1) to data bus 17c and
`forces A2, A1, A0 to logic lll (address 103). Shortly
`thereafter, processor 8 issues an IOW to cause gate 45 to
`produce an output on 49. This gates an output from 50
`.to register 21 via line 52 to gate the parameter values on
`bus 17c into register 21. The output 53 of decode 47 is
`used during diagnostic routines to gate the output of
`parameter register 21 to bus 17c via gate 54.
`As discussed above with respect to a setup routine, an
`ID of hexadecimal value FFFF is returned during an
`ID fetch operation when the addressed socket is empty.
`One method of achieving this result is shown in FIG. 3.
`A pre-wired circuit 60 is gated to force bus 17 to all
`“l’s" during the IOR cycle by a negative going signal
`on any one of the enable card lines EC1 to EC7 via OR
`circuit 61 and the negative going signal on IOR. If a
`card is in the socket which has been addressed, its ID is
`gated to bus 17c at the same time and all logical O’s in
`the ID override the logical
`l’s from 60 to correctly
`reproduce the ID on bus 17c.
`The logic of FIG. 3 is used in a similar manner during
`the initialization setup and the POST setup routines of
`FIGS. 6 and 7.
`
`1. In a data processing system having a system pro-
`cessor and a plurality of I/O sockets to which periph-
`eral control cards of various types are attachable, and in
`which means on at least one card permanently stores an
`identity value corresponding to the respective card
`type, said system comprising:
`nonvolatile memory means storing, in memory loca-
`tions thereof assigned to respective I/O sockets,
`the identity value and parameter data of the at least
`one card connected to a respective socket when
`power was last applied to said system, said parame-
`ter data being representative of peripheral options
`for the attached card; and
`means effective after power has been removed from
`and reapplied to said system for comparing the
`identity value on said card connected to the respec-
`tive socket with the identity value stored in the
`corresponding nonvolatile memory location to
`detennine if said card has been added, removed or
`moved since the previous removal of power from
`said system; and
`means responsive to outputs of said comparing means
`indicating successful comparison of the identity
`value for transferring and storing into said card,
`parameter data stored in the corresponding mem-
`ory location, thereby eliminating the need to create
`_
`the parameter data.
`2. A data processing system having a plurality of I/O
`sockets for attaching cards of different types, and in
`which the system during subsequent power-up retrieves
`parameter data for at least one card currently attached
`to the system by way of a respective socket and in
`which means is provided on the card for permanently
`storing an identity value corresponding to the card
`When two identical cards (same ID) are connected to 65 type, said system comprising;
`two of the I/O slots and it
`is desired to render both
`nonvolatile memory means storing, in memory loca-
`active, the first card is assigned the standard I/O default
`tions thereof assigned to respective I/O sockets,
`address at one priority level and the other card is as-
`the identity value and parameter data of the card
`
`35
`
`45
`
`S0
`
`S5
`
`60
`
`HUAWEI EX. 1019 - 12/16
`
`HUAWEI EX. 1019 - 12/16
`
`
`
`5,038,320
`
`8
`7
`socket an ID signal representing either an empty
`connected to the respective socket before the sys-
`condition or the identity of a card currently at-
`tem is powered down;
`tached to the respective socket;
`means effective upon power-up of the system for
`comparing said ID signal with the associated ID
`comparing the identity value stored on the at—
`value of the respective socket which is stored in
`tached card with the identity value stored in the 5
`said nonvolatile form;
`nonvolatile memory location corresponding to the
`transferringtheassociatedaddressinformationstored
`socket to which the card is attached; and
`in nonvolatile form to a register on the card if the
`meansresponsive tooutputsofsaidcomparingmeans
`compared ID signal and stored ID value match,
`indicating successful comparisons of identity val—
`and ifthe comparedsignal and valuedonotmatch,
`ues for writing and storing into each respective I0
`developing new address information;
`card the parameter data stored in its corresponding
`storing such new information together with the ID
`nonvolatile memory location.
`signal in nonvolatile form in place of the address
`3. The system of claim 2 further comprising
`information and ID value previously stored; and
`said comparing means including means interrogating
`transferring said new address information to the said
`each I/0 socket to fetch and identity value ofthe 15
`register on.said currently attached card.
`card attached to the socketand toproduceaunique
`7. In a computer system having central processing
`null identity value when an interrogated socket is
`facilities and a plurality of I/O sockets specifically ad-
`empty;
`dressablebysaid facilitiesandintowhichvariousdiffer-
`said nonvolatile memory storing the null
`identity
`value in each location corresponding to an I/O 20 ent types of device option c