`
`[75]
`
`[73]
`
`[21]
`
`{22]
`
`[63]
`
`[51]
`[52]
`
`[58]
`
`[56]
`
`United States Patent 9
`5,038,320
`Aug. 6, 1991
`Date of Patent:
`Heathet al.
`[45]
`
`Patent Number:
`
`(11)
`
`COMPUTER SYSTEM WITH AUTOMATIC
`INITIALIZATION OF PLUGGABLE OPTION
`CARDS
`
`3508648
`50-120935
`
`9/1986 Fed. Rep. of Germany .
`9/1976 Japan .
`(List continued on next page.)
`
`Inventors: Chester A. Heath; John K. Langgood,
`,
`both of Boca Raton, Fla., Ronald E.
`Valli, Pittsburgh, Pa.
`International Business Machines
`Corp., Armonk, N.Y.
`296,387
`
`Assignee:
`
`Appl. No.:
`Filed:
`
`Jan, 6, 1989
`
`Related U.S. Application Data
`Continuation of Ser. No. 21,391, Mar. 13, 1987, aban-
`doned.
`
`Int. CLS oie GO6F 13/00; GO6F 7/04
`WLS. Ch. eects scnseerneennes 364/900; 364/948.5;
`364/944.61; 364/975.2; 364/976.4; 364/945;
`364/929.5; 364/929.2; 371/111
`Field of Search ... 364/200 MS File, 900 MS File;
`340/825.07, 825.06, 825.52, 825.06; 371/11.1,
`11.2, 11.3, 66, 7
`
`References Cited
`
`3,480,914
`3,510,843
`3,573,741
`3,818,447
`4,003,033
`4,015,244
`
`U.S. PATENT DOCUMENTS
`11/1969
`5/1970
`4/1971
`6/1974
`1/1977
`3/1977
`
`Schlaeppi oo... cece 364/200
`
`Bennett .....
`.. 364/200
`
`Gavril ...
`«- 364/200
`Craft ......
`- 340/172.5
`
`O'Keefe....
`« 364/200
`SIMPSON oo. ee eeeceeeeeteeteteeees 364/200
`(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.
`
`.
`.
`.
`.
`.
`.
`.
`.
`.
`
`OTHER PUBLICATIONS
`
`IBM TDB vol. 20, No. 7, Dec. 1977, Input/Output
`Device Address Recognition Mechanism.
`(List continued on next page.)
`
`Primary Examiner—Gareth D. Shaw
`Assistant Examiner—Paul Kulik
`Attorney, Agent, or Firm—Winfield J. Brown, Jr.;
`Robert Lieber
`
`ABSTRACT
`[57]
`A data processing system includes a planar board hav-
`ing a central processing unit (CPU), a main memory
`unit, and input/output (I/O) sockets or slots, each
`adapted to receive a selected one ofa 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
`correspondingto 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 I/O cards and
`also in slot positions in main memory, one position being
`assigned to each slot on the board. Eachslot positionis
`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 meansof 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 ofall the slots has not
`changed since the last power-down, system reset, or
`channelreset.
`
`POSTXPOWER ON SELF TEST) SETUP
`
`18 Claims, 7 Drawing Sheets
`
`
`
`RESET CHAWMEL
`
`FETCH CARD (0S
`IM SEQUENCE
`
`
`
`
`
`
`
`
`
` j IF ALL IDS MATCH TRANSFER
`ID HiSRATCH :
`
`PARAMETER (NFO FROM SIT
`INVOGE INITIALIZATION
`
`
`POSITIONS TO RESPECTIVE
`SETUP PROGRAN
`REGISTERS21
`
`
`{COMPARE EACH 10 VALUE WITH
`;
`ID VALUE IN RESPECTIVE
`SLOT PGSITION
`
`OLYMPUS EX. 1019 - 1/16
`
`OLYMPUS EX. 1019 - 1/16
`
`
`
`5,038,320
`
`Page 2
`
`55-56235
`56-46384
`2101370
`2137382
`2166893
`2175716
`
`4/1980
`10/1982
`1/1983
`10/1984
`5/1986
`12/1986
`
`Japan .
`Japan .
`United Kingdom .
`United Kingdom .
`United Kingdom .
`United Kingdom .
`
`OTHER PUBLICATIONS
`
`IBM TDBvol. 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 TDBvol. 22, No. 5, Oct. 1979, Satellite Station
`Address Assignment Method.
`.
`IBM TDB vol. 22, No. 10, Mar., 1980, Automatic Mod-
`ule Detection.
`IBM TDBvol. 23, No. 8, Jan., 1981, Dynamic Device
`Address Assignment Mechanism.
`Electronic Design, Sep. 3, 1981, pp. 141-156, Several
`Articles, “Functional Architecture Threatens Centra:
`CPUs”, etc.
`Paper in Euromicro, Input/Output Control 6f IBM
`System/370 Model 125 through Dedicated Input/Out-
`put Processors, by Assmuthet al., pp. 24-40.
`Technical Disclosure Bulletin (IBM) vol. 27, No. LE
`“Automatic Domain Configuration Mechanism for i
`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 Storag:
`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 19(1986) Jul., No. 14, London, Grea
`Britain.
`vol. 22, No. 3, Aug. 1979, IBM Technical Disclosur:
`Bulletin, Programmable Identification for I/O Device
`J. M. McVey.
`I Jun. 1973, IBM Technical Disclosur
`vol. 16, No.
`Bulletin, Program Controlled 1/O Address Assignment
`L. J. Rosenberg.
`
`OLYMPUS EX.1019 - 2/16
`
`I U
`
`.S. PATENT DOCUMENTS
`5/1977
`Kaufman co... 364/200
`Moorchead .
`5/1977
`1/1978
`Calle et ab. cccscecenee 364/200
`
`2/1978
`FOK vecceecereteces
`wee. 364/200
`5/1979
`Mitchell, Jr.
`... 364/200
`
`12/1979
`Taddei.......
`w. 364/200
`3/1980
`Chesley ..
`.. 364/200
`11/1980
`Rado......
`»» 364/200
`2/1981
`Saal .......
`.. 340/147 R
`2/1981
`Bellamy .
`». 364/200
`3/1981
`Busby.....
`we 364/200
`5/1981
`Subrizi
`...
`.. 364/200
`10/1981
`
`a. 364/900
`Struger......
`12/1981
`Panepinto.........
`.- 365/230
`
`2/1982
`Felder...
`wae 364/900
`
`6/1982
`Maxwell....
`wee 364/200
`
`10/1982
`wee 340/521
`Neumann..
`
`11/1982
`
`McVey......
`wu 364/200
`12/1982
`
`Kaul ou...
`we 364/200
`2/1983
`Chisholm et al.
`w. 364/200
`
`8/1983
`Nozaki ose
`we 364/200
`
`2/1984
`..- 364/200
`Shaw et al.
`
`3/1984
`Witalka
`- 364/200
`
`4/1984
`Dummermuth..
`we 364/900
`6/1984
`Wunsch........
`, 364/900
`T/L9R4
`Weymouth...
`
`1/1985
`Calvignac .....
`2
`
`4/1985
`340/825.5
`Ahuja ......
`
`6/1985
`Ziehm et al.
`.
`371/7 X
`12/1985
`Caprio etal. ....
`364/900
`
`12/1985
`Vincent et al.
`..
`364/200
`
`1/1986
`Boudreau...cccesaeeieeeees 364/200
`
`2/1986
`Mantellina
`364/200
`
`341986
`Desai .occsseccessescscesnasseettenes 364/900
`
`5/1986
`Shah et al.
`...
`364/200
`
`8/1986
`Crabtree et al. cece 364/200
`
`11/1986
`Cecconet al.
`...
`364/200
`
`12/1986
`Braltttt .....:ceeeceseccssereeeeeeeenes 379/28
`
`12/1986
`Vincent....
`364/200
`
`3/1987
`Samson....
`
`371/68
`4/1987
`Ceccon.....
`364/200
`
`6/1987
`Caprio oo. ecceeccnereeceseeeeteenens 364/900
`
`10/1987
`Giinkel et al.
`. 364/900
`
`12/1987
`Brahim o.ccescceseceresssssesseseeeeees 379/28
`1/1988
`Yoshida....
`presses 364/900
`
`6/1988
`Arpin et al.
`.....
`. 364/200 X
`
`7/1988
`Buckley et ab.
`ou...
`eee 364/900
`
`11/1988
`Cheselka oo... ccsescsesenrieee 364/200
`
`11/1988
`. 364/900 X
`Finfrocketal.
`
`11/1988
`Harter oc serresseseers 364/200
`
`9/1989
`Matelan ...ccccsccescteeeenns 364/200
`
`
`
`4,025,903
`4,027,108
`4,070,704
`4,075,693
`4,155,117
`4,177,511
`4,191,996
`4,236,207
`4,253,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,187
`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
`
`FOREIGN PATENT DOCUMENTS
`$4-24314
`3/1979 Japan .
`$4-73531
`6/1979 Japan .
`
`OLYMPUS EX. 1019 - 2/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 1 of 7
`
`5,038,320
`
`FIG.
`
`|
`
`OLYMPUS EX.1019 - 3/16
`
`OLYMPUS EX. 1019 - 3/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 2 of 7
`
`5,038,320
`
`FIG. 2
`
`CONTROL
`
`PLANAR BOARD |
`OPTION CARDS 5-0 TO
`
`o-T
`BUS IT
`
`
`
`
`
`ITa
`
`ADDRESS
`
`
`
`7b
`
`OLYMPUS EX. 1019 - 4/16
`
`OLYMPUS EX. 1019 - 4/16
`
`
`
`U.S. Patent
`
`Aug. 6
`
`>
`
`1991
`
`Sheet 3 of 7
`
`5,038,320
`
`Yadav0/1
`
`
`
`010-001039NV
`
`OLYMPUS EX. 1019 - 5/16
`
`OLYMPUS EX. 1019 - 5/16
`
`
`
`USS, Patent
`
`Aug. 6, 1991
`
`Sheet 4 of 7
`
`5,038,320
`
`FIG. 4
`
`ENABLE CARD
`
`card OUTPUTS DISABLED>
`|
`
`aa
`
`iw—Lif|
`CARD
`SWITCH
`ip | FFSeTTINes
`
`DATA BUS ITc
`
`OLYMPUS EX. 1019 - 6/16
`
`OLYMPUS EX. 1019 - 6/16
`
`
`
`U.S. Patent
`
`Aug, 6, 1991
`
`Sheet 5 of 7
`
`5,038,320
`
`G‘Sls
`
`lag
`
`yovadda4
`
`LOTSAsV)
`
`OLYMPUS EX.1019 - 7/16
`
`OLYMPUS EX. 1019 - 7/16
`
`
`
`U.S. Patent
`
`Aug, 6, 1991
`
`Sheet 6 of 7
`
`5,038,320
`
`FIG. 6
`
`INITIALIZATION SETUP
`
`RESET CHANNEL AND
`DISABLE ALL SLOTS
`
`
`
`SCAN 1/0 ADDRESS SPACE
`
`LOOKING FOR A RESPONSE
`
`
`INDICATES A NON-COMPATIBLE
`FEATURE CARD)
`
`
`
`
`
`USER TO PROVIDE (KEY-IN)
`
`NEEDED INFO BY
`
`SLOT POSITION
`
` RESPONSE RECEIVED-SYSTEM
`
`
`
`
`USER SUPPLIES PARAMETER
`INFO IF A PROGRAM "FILE"
`
`IS NOT FOUND
`
`
`
`USER RESOLVES (KEYS - IN)
`
`PARAMETER CONFLICTS,e.g.
`
`
`SELECTS AN ALTERNATE 1/0
`ADDRESS
`SPACE FOR A SECOND 0
`
`
`TWO SIMILAR DEVICES
`
`RESET CHANNEL
`
`STORE THE CONFIGURATION
`TABLE ON DISKETTE
`
`ENABLE SLOTS IN SEQUENCE
`
`INTERROGATE ALL
`SOCKETS/CARDS FOR CARD
`
`ID'S IN SEQUENCE
`
`
`
` A CONFIGURATION PROGRAM CHECKS
`A PROGRAM “FILE” FOR EACH 1D
`(NAME®= ID VALUE) WHICH
`
`CREATES PARAMETERS FOR EACH
`
`
`RESPECTIVE CARD IN A TABLE
`
`
`
`TRANSFER THE PARAMETER
`INFO FROM TABLE
`TO SLOT POSITIONS
`SUCH AS 30,31,32...
`
`
`
`
`
`
`TRANSFER PARAMETERS
`FROM SLOT POSITIONS TO
`CARD REGISTERS 21
`
`TERMINATE SETUP
`PROCEDURE
`
`OLYMPUS EX. 1019 - 8/16
`
`OLYMPUS EX. 1019 - 8/16
`
`
`
`U.S. Patent
`
`Aug. 6, 1991
`
`Sheet 7 of 7
`
`5,038,320
`
`FIG. 7
`
`POST(POWER ON SELF TEST) SETUP
`
`RESET CHANNEL
`
`
`
`FETCH CARD {D'S
`
`
`
`IN SEQUENCE COMPARE EACH 1D VALUE WITH
`
`ID VALUE IN RESPECTIVE
`SLOT POSITION
`
`
`
`
`
`
`
`
`
`[F ALL ID'S WATCH TRANSFER
`ID MISMATCH :
`PARAMETER INFO FROM SLOT
`INVOKE INITIALIZATION
`
`
`
`POSITIONS TO RESPECTIVE
`SETUP PROGRAM
`CARD REGISTERS2t
`
`
`OLYMPUS EX. 1019 - 9/16
`
`OLYMPUS EX. 1019 - 9/16
`
`
`
`1
`
`5,038,320
`
`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.
`
`BACKGROUNDOF 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 systemsto 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 changedin,
`_ added to, or removed from theslots.
`SUMMARYOF 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 cardsat different priority levels or to render redun-
`dant cards inactive.
`Oneportion of main memoryis provided with battery
`backup to power that portion when system powerfails
`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.
`Whenthe 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
`memoryslot positions.
`However,if after a power-down, no change is made
`in the cards attached to theslots 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
`memoryslot positions to the respective card registers;
`and the system is ready for normal operation.
`After the system is configured andinitialized, a feed-
`back line is provided to signal the use of the select
`mechanism during normal 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 ofthe logic utilized by the setup
`routines;
`
`3;
`
`2
`FIG. 4 showstimings for certain of the logic of FIG.
`.
`FIG. 5 showslogic utilized by test routines to check
`the proper selection of an I/O card; and
`FIGS. 6 and 7 are flowcharts whichillustrate briefly
`the setup routines used in the present system.
`DETAILED DESCRIPTION
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`55
`
`FIG. 1 illustrates a preferred embodiment ofthe 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 1/O option cards 5-0 to 5-7 maybe 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 17d,
`data lines 17¢, 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 addresslines 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. Manydifferent types of
`devices are each potentially attachable to any oneofthe
`few sockets of the system.
`Oneof the memory modules, module 10 in theillus-
`tration, is nonvolatile, and stores information relative to
`eachof the slots 2-0 to 2-7 andits associated card when
`the system is powered down. This module for example,
`may consist of an array of capacitive storage circuits,
`ie., 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
`
`65
`
`A feature to be described is the use ofthis 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
`
`OLYMPUS EX.1019 - 10/16
`
`OLYMPUS EX. 1019 - 10/16
`
`
`
`- 0
`
`25
`
`40
`
`45
`
`3
`applications after operating the system power-on
`switch, not shown, or after system or channelreset.
`This difference in complexity and numberof 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 ofall cards to the
`extent required for describing the present improvement.
`Driver circuits 20 are pre-wired at manufacture, and
`under conditions described below transmita 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 O 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 someorall 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 poweris 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 ADin register 21 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 S in conjunction with control logic 22
`determine when data may be exchanged between the
`card and the bus 17. One mannerin which an AD value,
`the decoder 23 and logic 22 detect an I/O address is
`shownand described in Interfacing to the IBM Personal
`Computer by L. Eggebrecht published 1983 at pages
`130, 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-
`ECT 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 17 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 sameordifferent. 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 ofall other slots have not
`
`5,038,320
`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 theotherslots to retrieve
`and/or develop new AD,PR,S, and O 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
`sequencefirst 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 socketis 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,§,and O values for the responding
`card.
`As noted above, the system cannot deal with mis-
`matching indications until the states ofall 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 backupfor device
`failure or to provide additional device capacity. In the
`latter instances, the state value can be used to place a
`backup devicein 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 residesin the first two bytes and the switch
`(parameter) settings inthe last two bytes. The corre-
`sponding ID and parameter data on each card resides in
`drivers 20 and register 21, respectively.
`FIG. 3 shows schématically 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
`1/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, ie., during diagnosis.
`Address lines AO and Al 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.
`
`60
`
`65
`
`OLYMPUS EX.1019 - 11/16
`
`OLYMPUS EX. 1019 - 11/16
`
`
`
`5,038,320
`
`oe 5
`
`20
`
`25
`
`35
`
`45
`
`60
`
`65
`
`5
`AQ, Al, and A2 are coupled to appropriate bit lines of
`address bus 178, FIG.2.
`FIG.3 shows in more detail certain ofthe logic of the
`slot address decoder 14 and ofthe 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-111) 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 inputline 42. Each outputline,
`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 17@ of bus
`17.
`This output on EC7 is applied to AND gates 44 and
`45. The address line A2 is coupled to gates 44 and 45.
`An I/O read line IOR and_an 1/0 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 51 from decode 48 is coupled to the ID driver cir-
`cuit 20 and the output 52 from decode 50 is coupled to
`the parameterregister 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 Al, AO to logic 01 (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 valuein 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 parameterval-
`ues in the slot position 32 (FIG. 1) to data bus 17c and
`forces A2, Al, AO to logic 111 (address 103). Shortly
`thereafter, processor 8 issues an IOW to causegate 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
`parameterregister 21 to bus 17¢ via gate 54.
`Asdiscussed above with respect to a setup routine, an
`[D of hexadecimal value FFFF is returned during an
`ID fetch operation when the addressed socketis empty.
`One methodof achieving this result is shown in FIG. 3.
`A pre-wired circuit 60 is gated to force bus 17 to all
`“W’s" during the IOR cycle by a negative going signal
`on any oneofthe 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 andall logical 0's in
`the ID override the logical 1'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 POSTsetup routines of
`FIGS. 6 and 7.
`When twoidentical cards (same ID) are connected to
`two of the I/O slots and it
`is desired to render both
`active,the first card is assigned the standard L/O default
`address at one priority level and the other card is as-
`
`6
`signed an alternate I/O addressat a different priority
`level.
`.
`The logic of FIG.5 is then utilized during a diagnos-
`tic routine to. ascertain whether each card properly
`responds to its respective 1/O address. The address
`decode logic 23 decodes the address on bus 176 if it
`correspondsto 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 cardis
`active). Similarly, a priority decode circuit 55 produces
`an outputif 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 ANDgate 56 produces
`a feedback signal on line 57 to set onebit in a register 58
`on the board 1. The CPU8 under program controlwill
`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 anotherbit in register 58
`for diagnostic purposes.
`While there have been described whatare at present
`considered to be a preferred embodimentof this inven-
`tion, it will be obvious to those skilled in the art that
`various changes and modifications may be madetherein
`without departing from the invention, andit is, there-
`fore, intended to coverall such changes and modifica-
`tionsas fall within the true spirit and scope of the inven-
`tion.
`Whatis claimed is:
`1. In a data processing system having a system pro-
`cessor and a plurality of [/O sockets to which periph-
`eral control cards of various types are attachable, and in
`which means onat least one card permanently stores an
`identity value corresponding to the respective card
`type, said system comprising:
`nonvolatile memory meansstoring, in memory loca-
`tions thereof assigned to respective 1/O sockets,
`the identity value and parameterdata ofthe atleast
`one card connected to a respective socket when
`powerwas last applied to said system, said parame-
`ter data being representative of peripheral options
`for the attached card; and
`meanseffective after power has been removed from
`and reapplied to said system for comparing the
`identity value on said card connectedto the respec-
`tive socket with the identity value stored in the
`corresponding nonvolatile memory location to
`determineif 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 meansis provided on the card for permanently
`Storing an identity value corresponding to the card
`type, said system comprising;
`nonvolatile memory meansstoring, in memory loca-
`tions thereof assigned to respective I/O sockets,
`the identity value and parameter data of the card
`
`OLYMPUS EX.1019 - 12/16
`
`OLYMPUS EX. 1019 - 12/16
`
`
`
`5,038,320
`
`20
`
`30
`
`empty;
`
`connected to the respective socket before the sys-
`tem is powered down,
`means effective upon power-up of the system for
`comparing the identity value stored on the at-
`tached card with the identity value stored in the
`nonvolatile memory location corresponding to the
`socket to which the card is attached; and
`means responsive to outputs ofsaid comparing means
`indicating successful comparisons of identity val-
`ves for writing and storing into each respective
`card the parameter data stored in its corresponding
`nonvolatile memory location.
`3. The system of claim 2 further comprising
`said comparing means including means interrogating
`each 1/O socket to fetch and identity value of the
`card attachedto the socket and to produce a unique
`null identity value when an interrogated socketis
`said nonvolatile memory storing the null
`identity
`value in each location corresponding to an 1/o
`socket found empty; and
`said comparing means further effective upon power
`up of the system for comparing the null identity
`value produced upon interrogating an empty
`socket with the identity value in the nonvolatile
`memory location corresponding to that socket for
`determining if that socket had contained a card
`when the system previously was powered down.
`4. The system of claim 2 wherein the data processing
`system includes a system processing unit, the system
`further comprising
`a feedbackline on the card,
`means on the card responsive to a card select input
`signal and to parameter data stored on the card for
`effectively enabling the card to senda signal to the
`system processing unit by way of said feedback line
`indicating selection of the card.
`5, The system of claim 2 further comprising
`said comparing means including means interrogating
`each I/O socket to