throbber
United States Patent
`
`119]
`
`[11]
`
`Patent Number:
`
`5,787,246
`
`Jul. 28, 1998
`[45] Date of Patent:
`Lichtrnan et al.
`
`USO05787246A
`
`2/1994 Guthiie et a1. .......................... 364/403
`umagai ........... ..
`.
`8/1994 £f1d°“m3';1°”‘1-
`----(1)3
`13//133: Loiirfbfasi et ai‘‘'.''
`‘..‘"340/325 03
`1/1995 Lemon etal.
`......
`395n00
`1/1995 Chikira etal. .......................... 395/575
`1/1995 Lien eta].
`.................... 395/700
`4/1995 Aim at 31,
`395/325
`5/1995 Garney
`. 395/500
`.......
`5/1995 Reid et al.
`395/325
`6/1995 Davidson et al.
`395/275
`9/1995 Richek et al.
`395/500
`9/1995 Basu et al
`.......
`395/700
`9/1995 Heimsothetal
`. 395/200.1
`etal
`......
`0 .......................................
`
`
`
`5,289,372
`,
`,
`g~33-135°
`5'3?/$19:
`5:379:431
`5,386,551
`5,386,567
`5,403,613
`5,412,798
`5,420,987
`5,428,748
`5,450,570
`5,452,454
`5,454,073
`
`,
`
`,
`
`,
`_
`(List continued on next page.)
`OTHER PUBLICATIONS
`
`[54] SYSTEM FOR CONFIGURING DEVICES
`
`[75]
`
`Inventors: Moshe Lichtman. Bellevue; Mark R.
`Enstmm‘ R°dm°“d9 Th°"“'s E‘
`L°““‘?“~,S““",“‘ ‘mph A‘ L'P°*
`W°°d1“"1'1e? P'°1"'°'Y"95 S3“!°"'3-
`B¢11t_=V11€9R0b9I'tT-Sh0|'t~KlIk1andé
`David W. Voth. Redmond. all of Wash.
`
`[73] Assignee: Microsoft Corporation. Redmond.
`Wash_
`
`_
`[21] APP1'N°"25°’698
`[22]
`Filed;
`May 27, 1994
`[51]
`Int. Cl.‘ ............................ G06F 15/02; GO6F 12/02;
`G061: 9/445; G061: 15/40
`[52] U.S. Cl. ....................... 395/200.5‘, 395/828; 395/830;
`395/200.56
`
`[58] Field of Search ..................................... 395/600. 828.
`395/330. 882. 500. 700. 200.56. 200.5
`
`“CardWare“‘ User Manual 150A.” released on Oct. 8. 1993
`by Award Software International. Inc-. PP- 1-33-
`
`[55]
`
`References Cited
`
`Primary Exami'rier—Thoinas C. Lee
`Assistant Exammer—Rehana Perveen
`
`U.S. PATENT DOCUMENTS
`
`Attorney, Agent, or Firm—Jones & Askew. LLP
`
`[57]
`
`ABSTRACT
`.
`_
`A system for configuring devices of a computer system
`without user intervention. Device information for each of
`the devices is collected to uniquely identify the devices and
`to describe the device characteristics associated with the
`operation of devices with the computer. Coinputerresources.
`PP
`which su on the functions of the devices within the
`t
`an
`ted b
`d
`th dc .
`inf
`ti
`°°‘_nP“ 51» fife
`008
`ase upon
`e
`_vice
`_on_na on.
`This allocation process prevents a potential coiiflicling use
`of the resources by the devices. A device driver. which
`enables communications between the corresponding device
`and the computer system. is also identified for each of the
`devices in response to thc dcvice information, In rcsponse to
`the allocation of resources. the identified device drivers are
`l dd dthd'
`'
`edf
`'
`‘thth
`C‘: cut:

`°V’°°s are amvat
`°r °pcm°" W‘
`'5
`mp
`'
`
`98 Claims, 11 Drawing Sheets
`
`.......................... 364/200
`5/1981 Subiizi et al.
`4,268,901
`..
`........... 364/900
`2/1982 Shimizu et al.
`4,317,133
`........... 364/200
`4,562,535 12/1985 Vincemet al.
`364/200
`4,589,063
`5/1986 Shah et al.
`354/200
`4,560,141
`4/1937 CGCCOII ct 31-
`gfigg
`jtzgggzf
`Kir<=Inig‘i’i;Iln ------
`364/200
`‘£974,151
`1 1/1990 AA3k‘dvam‘3_ at
`.
`364/200
`4,982,325
`1/1991 Tignor et al.
`364/491
`5,033,294
`8/1991 Arakawa et al.
`395,200
`5,109,434
`4/1992 Hughes et ,0‘
`395/700
`5,135,709
`3/1992 smmka1,eeta1_
`340/706
`5,157,334 io/1992 Greanias et a1, _,
`5,197,093
`3/1993 Knuth et al.
`.............................. 379/61
`5,247,632
`9/1993 Kondou et 31.
`......................... 395/700
`lg; iwwmbfit
`~
`"’“'°“ “m
`'
`395/600
`5,257,368 10/1993 Benson etal. ........
`395/700
`5,257,379 10/1993 Cwiakala et al.
`.
`395/800
`5,257,387 10/1993 Richeket al.
`5,263,148
`11/1993 Jones, Jr. et a1. .................... 395/500
`
`
`
`.
`
`
`
` //
`
`OPERATING
`SVSTDJI
`
`.
`
`/
`r""'I','E‘§dl'i'C'és"'
`
`,
`
`HUAWEI EX. 1020 - 1/40
`
`
`
`COMPUTER
`CONTROL
`
`SYSTEM
`
`2!
`
`E
`5
`
`:
`
`E"'s’v§'r§/1131:1535-iiswm
`INTEGRATED
`BUS usm
`
`;
`
`I5
`
`wraimcs
`31/s iscsn
`
`11
`
`
`
`‘'
`BUS
`E wrensacs
`IPCMCIA)
`
`
`
`29
`
`DEVICE
`INFIWORKO
`
`,
`MEMORY
`STORAGE
`DEVICE
`
`20
`
`29
`
`HUAWEI EX. 1020 - 1/40
`
`

`
`5,787,246
`Page 2
`
`5/1996 DeHart eta].
`.......................... 395/500
`5,517,636
`5/1996 P‘°°.’”.‘u° °”'1'
`395,700
`5’517’646
`7"996 ’°‘“"“"°“"‘-
`395431
`51542955
`9/1996 Brown et al.
`395/600
`5,553,231
`5531251 12/1996 Hidimall 6! 31-
`----------------------- 342/335
`
`
`
`U.S. PATENT DOCUMENTS
`11/1995 Vanbuskirk et a1.
`............... 395/200.01
`5,469,545
`.
`...... 395/162
`5471675 11/1995 Zias ..
`..
`.
`
`5:485:460
`1/1996 Schder et a].
`._
`' 370,941
`........................... 395/500
`5,491,813
`2/1996 Bondy et al.
`
`HUAWEI EX. 1020 - 2/40
`
`HUAWEI EX. 1020 - 2/40
`
`

`
`U
`
`._<uo._M4pm.2........................M1\«:8PM.SN.
`oE$_om:z_M1.M83MMMu,---m---MM.-mm_.,._----.._............................-..--mm....mM.<.‘.w.+.m.»m..M3WmamM,........-
`
`w.MMsm5>mM-MmmMmtnmmmtz.MSE28MMMME5n_28M_.............................
`mmE:s_8M8<u_E:,__ --..W«NM.2EW2m.M%MMMMwM>mosm_>_Ms_m:m>mm_m<mS<oMM_8mMm:mM<m_Mm:mMmMMoz:$Eo
`
`
`
`
`
`
`
`3.0352.mM..wWRm_u<#m:z_Wm_u_>mE6.59
`EosmzHWM5M8.M<s_oMMMmM_MMM<_m._Q%n_MW.2302.
`M..................--.w9mmmEM__—OEmmm..w..,_Mo\_M85¢8.59MMMmoéoamoéoaAunM8.M>mosms_
`
`
`
`O
`
`OM3
`
`HUAWEI EX. 1020 - 3/40
`
`
`

`
`U.S. Patent
`
`Jul. 23, 1998
`
`Sheet 2 of 11
`
`5,787,246
`
`CONFIGURATION LOGIC
`
` DETECT
`
`LOGIC
`
`
` COLLECT
`33
`
`LOGIC
`
` SYSTEM BUS
`
`ARBITRATE
`LOGIC
`
`
`DEVICE
`
`
`
`DRIVER
`
`
`
`IDENTIFICATION
`LOGIC
`
`
`
`COLLECT
`DEVICE
`
`INFORMATION
`
`ALLOCATE
`
`COMPUTER
`RESOURCES
`
`LOAD
`DEVICE
`DRIVERS
`
`FIG 7
`
`HUAWEI EX. 1020 - 4/40
`
`DRIVER
`
` 35
`
`
`
`LOADER LOGIC
`
`30
`
`FIG 2
`
`HUAWEI EX. 1020 - 4/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 3 of 11
`
`5,787,246
`
`41
`
`POWER
`COMPUTER
`
`CONFIGURE
`SYSTEM LEVEL
`DEVICES
`
` 42
`
` SELECT INTEGRATE I
`
`
`
`SYSTEM
`”EXPANSION” BUS
`
`
`
`
`
`
`
`DETECT
`PARTICULAR
`DEVICE
`
`
`
`
`
` ASSIGN DEVICE
`
`
`
`IDENTIFICATION
`CODE
`
`
`OBTAIN
`DEVICE INFO FROM AL
`
`DEVICES ON
`BUS?
`
`
`
`
`
`INACTIVATE ALL
`DEVICES NOT
`REQUIRED FOR BOOT
`
`BOOT?
`
`
`
`DEVICES
`REQUIRED FOR
`
`
`
`GO TO
`STEP
`58
`
`FIG 4A
`
`HUAWEI EX. 1020 - 5/40
`
`HUAWEI EX. 1020 - 5/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1993
`
`Sheet 4 of 11
`
`5,787,246
`
`54
`
`YES BRANCH
`
`IDENTIFY BOOT
`DEVICE DRIVERS
`
`60
`
`RESOURCES
`CONFLICT-FREE?
`
`
`
`62
`
`ERROR
`MESSAGE
`
`64
`
`
`
`CONFIGURE
`REMAINING DEVICES
`REQUIRED FOR BOOT
`
`
`
`FROM
`STEP
`56
`
`65
`
`68
`
`BOOT
`
`
`
`IDENTIFY DEVICE DRIVERS
`FOR REMAINING
`INTEGRATED BUS DEVICES
`
`70
`
`72
`
`
`
`
`
`COMPARE RESOURCES
`TO REQUIREMENTS AND
`CONSTRAINTS
`
`HUAWEI EX. 1020 - 6/40
`
`
`
`
`
`HUAWEI EX. 1020 - 6/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1993
`
`Sheet 5 of 11
`
`5,787,246
`
`
`
`
`
`
`
`74
`
`ALLOCATE
`
`RESOURCES
`
`CONFIGURE
`DEVICES
`
`LOAD
`DEVICE
`DRIVERS
`
`76
`
`78
`
`
`
`80
`
`
`
`
`
`
`ANOTHER
`SYSTEM BUS
`DETECTED?
`
`
`
`COMPUTER cowmeuneo
`AND AVAILABLE FOR
`OPERATIONS
`
`32
`
`YES
`
`SELECT ANOTHER
`SYSTEM BUS
`
`
`
`
`DETECT
`PARTICULAR
`DEVICE
`
`
`
`ASSIGN DEVICE
`INFORMATION
`
`
`OBTAIN LOGICAL
`CONFIGURATION
`
`DATA
`
`
`
`
`
`
`OBTAIN DEVICE
`NFO FROM ALL DEVICES
`ON BUS?
`
`
`
`GO TO
`
`STEP
`
`FIG 4C
`
`HUAWEI EX. 1020 - 7/40
`
`HUAWEI EX. 1020 - 7/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 6 of 11
`
`5,787,246
`
`100
`
`START
`
`
`
`
`YES
`
`SEARCH FOR COMPAT|-
`BLE DEVICE HAVING
`HIGHEST PRIORITY
`
`SELECT CMPATIBLE
`DEVICE DRIVER FOR COM-
`PATIBLE DEVICE HAVING
`HIGHEST PRIORITY
`
`108
`
`no
`
`REQUEST USER TO
`SUPPLY SUBSTITUTE
`DEVICE DRIVER
`
`STORESUBSWUTE
`DEVICEDRIVER
`
`END
`
`RETRI EVE SUBSTI-
`TUTE DEVICE DRIVER
`
`
`DEVICE
`
`
`CONFIGURATION OPERATING SYSTEM
`
`5.‘.
`.13.‘.
`
`153
`
`10
`
`158
`
`772
`
`774
`
`115
`
`156
`
`156
`
`~._
`
`__________ ---------
`
`20
`
`20
`
`20
`
`F I G 6
`
`HUAWEI EX. 1020 - 8/40
`
`HUAWEI EX. 1020 - 8/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 7 of 11
`
`5,787,246
`
`LOCAL BUS
`
`DEVICE IDENTIFICATION CODE: *F’NPOAO0\MODEM\0
`
`ASSIGNED RESOURCE ELEMENTS: IRCI3; I\03F8
`
`LOGICAL CONFIGURATION DATA: IFIO3; I\03F8
`
`168
`
`_1_,§§
`
`/
`SOFTWARE 182
`I——/so1=TwARE RELATED SETTINGS AND DRIVER INFORMATION
`
`ROOT
`
`180
`
`HARDWARE
`
`ENUM
`
`’54
`
`18
`
`HO 8
`
`188 ROOT
`190
`
`192
`
`svs BIOS
`
`ISAENM
`
`196
`
`198
`
`194
`
`_
`:
`SCSIENM
`
`TCM1234\0
`
`PCMCIAENM
`
`HUAWEI EX. 1020 - 9/40
`
`HUAWEI EX. 1020 - 9/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 3 of 11
`
`5,787,246
`
`ENUMERATE ELEMENT 200:
`1’
`r - _ . . _ . . . . . . . . . . . . — _ . _ _ . . . — . --
`
`DETECTION
`MODULE
`
`205;
`.
`'
`
`:
`

`
`COLLECTION
`MODULE
`
`208
`
`‘
`
` CONFIGURATION
`
`MANAGER
`
`158
`.
`
`: 52’?
`.
`,
`5.214
`
`RETRIEVE
`ID CODE
`
`APPEND
`BUS CODE
`RETR|EVELOGI-
`
`CAL CONFIGU-
`
`RATION DATA

`=_ ___________________________
`
`18
`
`o
`
`SYBSUTSEM
`
`'
`
`DEVICE
`
`152
`
`
`
`
`HARQQQEIRE
`
`5
`-.
`
`CONFIGURE
`
`ELEMENT
`
`
`
`202
`
`
`
`
`
`
`E
`
`RECEIVE
`ASSIGNED
`I
`I
`S ORE
`ASSIGNED
`RE URCE
`TRANSMIT
`ASSIGNED
`RESOURCES
`
`
`
`
`5
`
`204
`
`5
`
`DETEcT
`ELEMENT
`
`FIG 9
`
`HUAWEI EX. 1020 - 10/40
`
`HUAWEI EX. 1020 - 10/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 9 of 11
`
`5,787,246
`
`250
`
`SELECT
`
`SYS TEM BUS
`
`DETECT PARTICULAR
`DEVICE ON SELECT-
`ED SYSTEM BUS
`
`
`
`RETRIEVE IDENTIFI-
`CATION CODE FROM
`PARTICULAR DEVICE
`
`
`
`
`
`PPEND SYSTEM BUS 250
`coma TO
`IDENTIFICATION cone
`
`RETRIEVE LOGICAL
`CONFIGURATION
`DATA
`
`LINK LOGICAL
`CONFIGURATION ’
`DATA TO DEVICE
`
`IDENTIFICATION CODE
`
`HUAWEI EX. 1020 - 11/40
`
`HUAWEI EX. 1020 - 11/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1998
`
`Sheet 10 of 11
`
`5,787,246
`
`269
`
`START
`
`278
`
`START
`
`280
`
`DETECT DEVICE
`
`INSERTION
`
` 282
`
`ENUMERATE
`
`
`
`254
` IDENTIFY
`DRIVERS
` 286
`
`DEVICES ON
`
`AFFECTED BUS
`
`DEVICE
`
`I ARBITRATE AND
`
`
`
`
`ALLOCATE
`
`RESOURCES
`
`
` 288
`
`LOAD
`
`
`
`DEVICE
`
`
`
`DRIVERS
`
`90
`
`HUAWEI EX. 1020 - 12/40
`
`DETECT REMOVAL
`OF DEVICE
`
`270
`
`
`
`
`
`
`
`STOP ACCESSING
`REMOVED
`
`
`DEVICE
`
`
`272
`
`
` FREE RESOURCES
`274
`
`
`
` UNLOAD DEVICE
`
`
`ALLOCATED TO
`REMOVED DEVICE
`
`275
`
`
`
`DRIVER FOR
`REMOVED DEVICE
`
`END
`
`FIG "HA
`
`HUAWEI EX. 1020 - 12/40
`
`

`
`U.S. Patent
`
`Jul. 28, 1993
`
`Sheet 11 of 11
`
`5,787,246
`
`3' """""""""""""ibis""" "
`
`
`
`
`
`RESERVED
`RESOURCE
`TABLE
`ASSIGNED
`RESOURCE
`: :
`
`158
`
`E
`5
`5
`5
`:
`I
`
`CONFIGURATION
`MANAGER
`
`
`
`320
`
`
`
`SELECT
`POSSIBLE
`CONFIGURATION
`
`154
`
`;
`
`E
`5
`5
`5
`g
`I
`
`328
`
`
`
`ASSIGN
`RESOURCE
`ELEMENT
`
`
`
`
`324
`IS
`APPROPRIAT
`RESOURCE ELMENT
`SSIGNED?
`
`RESOURCE ELMENT
`RESERVED?
`
`
`
`
` NON-RESERVED
`RESOURCE ELMENT
`
`
`
`FIG 13
`
`HUAWEI EX. 1020 - 13/40
`
`HUAWEI EX. 1020 - 13/40
`
`

`
`1
`SYSTEM FOR CONFIGURING DEVICES
`FOR A COMPUTER SYSTEM
`
`TECHNICAL FIELD
`
`The present invention relates to data processing systems
`and. more particularly described. relates to configuring
`devices for operation with a computer system without user
`intervention.
`
`BACKGROUND OF THE INVENTION
`
`The process of installing a peripheral device or an add-on
`type adapter board for use with a personal computer system
`can be a relatively frustrating experience for the typical
`computer user. Nevertheless. a computer typically will not
`operate with a newly installed component until the user has
`completed a proper allocation of resources. Computer
`resources are allocated during a configuration process to
`permit the conflict-free use of the limited resources. To
`configure the computer. the user often must complete a
`relatively complex series of technical tasks. Thus. the dif-
`ficulties faced by many users during the configuration pro-
`cess are emphasized by the absence of an automated process
`for resolving resource conflicts.
`For many personal computer systems. neither the operat-
`ing system nor the application programs running on the
`computer can determine which hardware components are
`connected to the computer. Likewise. the various hardware
`components connected to the computer system often fail to
`detect the occurrence of a conflict between dilferent hard-
`ware devices that attempt
`to share the same resource.
`Accordingly. a user typically must resolve a resource con-
`flict by first identifying the problem and thereafter experi-
`menting with hardware and software configurations in an
`attempt to correct the resource conflict.
`When attempting to tackle hardware and software inte-
`gration issues. the user is exposed to technical concepts that
`can be somewhat confusing for those without technical
`training. such as computer architecture issues. including
`hardware interrupts. direct memory access (DMA) channels.
`memory addresses. and input/output (I/O) ports. Likewise.
`many common configuration tasks require the user to be
`familiar with the finer details of the computer's operating
`system.
`including system configuration files. such as
`Autoexec.Bat. Config.Sys. and *.Ini files. In view of these
`technical concepts. some users find the configuration pro-
`cess so intimidating that they refuse to consider upgrading a
`component of their personal computer or connecting a new
`peripheral device to add a new capability to their computer
`system.
`Unlike today. early personal computers required mini-
`mum coordination between the computer hardware and
`software components. Users were presented with few diffi-
`cult configuration issues after the initial installation of the
`computer system. A limited number of peripheral devices
`were commercially available for supplementing the process-
`ing functions of the personal computer. In addition. early
`personal computers were primarily used for dedicated tasks.
`such as word processing or calculating financial information
`with a spreadsheet program. at a fixed desktop location.
`In contrast. present computers are often portable systems
`that can be regularly connected to different peripheral
`devices and external systems. There exists many more
`computer peripheral devices that require the use of resources
`during computer operation than the limited quantity of
`available resources. Furthermore. a user can harness the
`powerful computing operations of a present personal com-
`
`5,787,246
`
`2
`
`puter to complete numerous tasks outside the traditional
`realm of word processing and financial calculations. such as
`graphics. audio. and video. For example. numerous periph-
`eral devices and add-on systems are now commercially
`available to enable the user to customize the functions and
`operating characteristics of a personal computer. Docking-
`type computer systems enable a user to operate a mobile
`computer at either a base station or in remote locations.
`Thus. the rapid acceptance of portable computing and the
`multi-faceted uses of the personal computer emphasize the
`need for supplying a “user friendly” system that configures
`new hardware or software devices for use with the computer
`system.
`The Industry Standard Architecture (ISA) standard is a
`widely used bus architecture for personal computer systems.
`The ISA expansion bus. which is commonly associated with
`the IBM Personal Computer AT and other compatible
`computers. provides a 16-bit bus that supports the connec-
`tion of adapter boards within the computer. The ISA bus
`structure requires allocation of resources. such as hardware
`interrupts. DMA channels. memory addresses. and I/O ports.
`among multiple ISA—compatible adapter boards connected
`to the ISA expansion bus. However. the ISA standard does
`not define a hardware or software mechanism for allocating
`those resources for use by the installed adapter boards.
`Consequently. configuration of the ISA adapta boards is
`typically completed by connecting jumper cables or chang-
`ing switch settings on the boards to change the decode maps
`for memory and I/O ports and to direct the DMA channels
`and interrupt signals to various pins along the expansion bus.
`Furthermore. system configuration program files of the
`operating system may need to be updated to reflect any
`modifications to the resource allocation.
`
`Alternative expansion bus standards. such as the Micro
`Channel Architecture (MCA) and the Extended Industry
`Standard Architecture (EISA) standards. have limited hard-
`ware and software mechanisms to identify resources
`requested by a peripheral device and to resolve resource
`conflicts. However. these mechanisms are not implemented
`by the computer’s operating system and are not compatible
`with the large installed base of personal computers based on
`the ISA standard. Furthermore. computer systems imple-
`menting the MCA and EISA standards are generally more
`expensive than ISA-compatible computers and lack the
`variety of add-on adapter boards and peripheral devices
`available for use with ISA-compatible computers.
`To address the issue of configuration management. the
`computer industry is at present offering full-featured com-
`puter systems having preconfigured hardware and prein-
`stalled software. thereby eliminating the need for a user to
`conduct
`the installation and configuration tasks for the
`purchased computer system. However. this is a somewhat
`limited solution because vendors typically market a com-
`puter system having a standard configuration of hardware
`and software components. Thus. this approach defeats the
`flexibility offered by the ISA bus expansion structure
`because users cannot obtain a computer capable of perfom1-
`ing a customized function through this standardized con-
`figuration approach.
`To overcome the frustration of users with present com-
`plicated configuration processes. it would be desirable to
`provide a system for automatically configuring a peripheral
`device or adapter board for a computer system. A system is
`needed to enable a user to simply connect a device to the
`computer. turn on the computer. and have the device prop-
`erly work with the computer. There is a further need for a
`system that determines the optimal configuration for its
`
`5
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`HUAWEI EX. 1020 - 14/40
`
`HUAWEI EX. 1020 - 14/40
`
`

`
`5 ,787.246
`
`3
`resources and enables application programs to fully utilize
`the available resources.
`
`In recognition of the problems of prior configuration
`processes.
`the present
`invention provides a system that
`permits easy installation and configuration of devices which
`are capable of identifying themselves and declaring their
`services and resource requirements to the computer. The
`device identification and resource requirement information
`enable the system to determine and establish a working
`configuration for all devices connected to the computer. and
`to load the appropriate device drivers. In this manner. the
`present invention supports a variety of computer bus archi-
`tectures and device classes. Accordingly. the present inven-
`tion efliciently allocates system resources between the
`devices of the computer system without substantial user
`intervention.
`
`SUMMARY OF THE INVENTION
`
`The problems associated with the manual installation and
`configuration of adapter boards and peripheral devices for
`computer systems are solved by the principles of the present
`invention. The present invention provides a system for
`configuring the hardware and software components of a
`computer system by optimally allocating system resources
`for use by computer devices.
`The present invention enables a user of a computer system
`to install a new device by connecting the device to the
`computer. powering the computer. and using the computer to
`take advantage of the function supplied by the new device.
`Likewise. the present invention permits a user to insert a
`mobile computer into a base station while both the mobile
`computer and the base station are powered and to reconfig-
`ure the mobile computer for operation with the devices
`connected to the base station. Thus. the present invention
`addresses the needs of computer users by supplying a
`computer-irnplemented process for configuring devices for a
`computer system and for accommodating seamless dynamic
`configuration changes of the computer system.
`A system constructed in accordance with the present
`invention configures devices of a computer system by iden-
`tifying the devices. determining the desired usage of the
`resources of the computer system, detecting and resolving
`potential conflicting uses of the resources. and allocating
`resources for use by the devices. An operating system runs
`on the computer system and supports these configuration
`tasks.
`
`The computer system includes various resources. includ-
`ing interrupts. direct memory access (DMA) channels.
`memory addresses. and input/output (I/O) ports. at least one
`system bus. and devices. System busses are components that
`supply physical connections to devices. Each of the devices
`is connected to one of the system busses of the computer
`system.
`The system busses can be compatible with a variety of bus
`architectures. including the Industry Standard Architecture
`(ISA). Micro Channel Architecture (MCA) and Extended
`Industry Standard Architecture (EISA) bus standards. as
`well as Personal Computer Memory Card International
`Association (PCMCIA). Small Computer Systems Interface
`(SCSI). Personal Computer Interface (PCI). Enhanced
`Capabilities Parallel (ECP). Vesa Local Bus (VL). Integrated
`Drive Electronics (IDE). and other bus standards. Typical
`devices supply the functions of system-level components.
`such as fixed and floppy disk controllers. display. keyboard.
`and mouse controllers. and serial and parallel controllers.
`and implement the functions otfered by numerous add-on
`type adapter boards and peripheral devices.
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`4
`
`Briefly described. the method for configuring the devices
`of the computer system is started by collecting device
`infomration for each of the devices of the computer system.
`This device information acquisition process permits the
`unique identification of the devices and the description of
`device characteristics associated with the operation of
`devices with the computer. A device driver. which enables
`communications between a corresponding device and the
`computer system. is thereafter identified for each of the
`devices in response to the device information. The
`resources. which support the functions of the devices within
`the computer. are allocated based upon the device informa-
`tion. This allocation process prevents any potential conflict-
`ing use of the resources by the devices. In response to
`resource allocation. the devices are configured and device
`drivers for the devices are loaded The devices are thereafter
`activated for operation with the computer.
`More particularly described. the present invention con-
`figures devices of a computer system based upon the col-
`lection of information about the devices and their connec-
`tions to the system busses of the computer system. To collect
`the device information. a particular device is detected on the
`system bus of interest and thereafter assigned a device
`identification code that identifies the particular device as
`being connected to the selected system bus. At least a
`portion of the device identificafion code. specifically an
`identification code. uniquely identifies the detected device.
`Logical configuration data. which supplies configuration
`requirements for operating the particular device with the
`computer system. is also obtained for the detected device.
`This collection process is repeated until device information
`is eventually collected for each of the devices for all system
`busses of the computer system.
`The device information is stored within computer system
`memory. such as volatile memory. to support the present
`configuration operation. At least a portion of the system
`memory is allocated for the storage of device information
`within a treelike structure of device nodes. Each device
`connected to the computer system is represented by a device
`node that stores associated device information. Furthermore.
`if an identified device represents a newly installed device for
`the computer system. then this device infonnation also can
`be stored in nonvolatile computer memory. such as a fixed
`disk. to supply an archival source of such information for
`future configuration tasks. A computer database having a
`hierarchical data arrangement is typically used to store this
`archival device information.
`The collection of device information. which is also
`described as enumeration. is initiated in response to dynamic
`events that cause an asynchronous change in the operating
`state of the computer system. These events typically affect
`the use of the resources by the devices of the computer
`system and include: powering the computer system; con-
`necting another device to a system bus; removing a device
`from a system bus; and inserting the computer system into
`or removing the computer system from an expansion unit or
`a docking station.
`The collection of device information supplies data that
`supports the identification of device drivers for the identified
`devices. A device driver can be obtained from one of several
`alternative sources of the computer system.
`including
`selected files of the operating system installed on the com-
`puter system. the device itself. a computer database main-
`tained by the computer. or from the user via a disk contain-
`ing the device driver. In general. the device driver for a
`device is often obtained by accessing a selected program file
`stored on either a fixed disk or another type of mass memory
`storage device of the computer system.
`
`HUAWEI EX. 1020 - 15/40
`
`HUAWEI EX. 1020 - 15/40
`
`

`
`5
`
`6
`
`5,787,246
`
`The computer database can contain device information
`associated with a particular device. including information
`for that particular device. which is also described as a
`primary device. and information for devices that are “com-
`patible” with the primary device. For example. a first
`manufac’turer’s device may be compatible with a second
`manufacturer’s device because both devices perform the
`same function and conform to an industry standard for
`operations. If the devices are compatible. a device driver for
`the first device often can be used to enable the operations of
`the second device and. likewise. a device driver for the
`second device can be used with the first device. Thus. a
`compatible device driver. if available. may be used to enable
`communications of the particular device with the computer
`system.
`The stored device information for a particular device
`typically can be accessed by searching in the computer
`database for a location or a record that contains the identi-
`fication code for the desired device. Thus. the identification
`code can be used as an entry key to search the records of the
`computer database. If the device information in a selected
`record describes the primary device. then the device driver
`intended for primary use with that device is maintained by
`the computer system and is available to support the device
`operations. Likewise. a compatible device driver is main-
`tained by the computer system if compatible device infor-
`mation is stored within the selected record and associated
`with the particular device.
`By convention. the primary device driver is typically
`selected to support the computer operations of the primary
`device over. any of the device drivers for compatible devices.
`However. if the device driver for the primary device is not
`available. then a device driver for a compatible device is
`selected. In this event. if the compatible device information
`lists more than one device that is compatible with the
`particular device. then the compatible device having the
`highest priority or ranking is selected and used to support the
`operations of the particular device.
`If neither the primary device driver nor a compatible
`device driver is available on the computer system. then the
`user can be requested to supply a substitute device driver
`that supports the operation of the device with the computa
`system. This request
`is typically supplied as a textual
`statement displayed on a display or monitor for the computer
`system or as an audio prompt generated by the computer
`system. In response to the request. the user can insert within
`the proper computer drive a flexible disk or other appropri-
`ate electronic media containing the device driver. thereby
`permitting the computer to access the device driver. The
`device driver then can be stored within an appropriate mass
`memory storage device and used to enable the communica-
`tions between the particular device and the computer.
`Resources. which typically include a finite set of resource
`elements. are allocated by first analyzing the device infor-
`mation to detect whether the devices require a potential
`conflicting use of resource elements for operation of the
`devices with the computer system. The desired resource
`element is assigned for use by a device if this resource
`assignment does not conflict with the use of that particular
`resource by another device. A resource element is available
`for use by a device if this element is neither reserved nor
`assigned for use by another device. Some resource elements
`are typically reserved for use by selected devices to insure
`the compatibility of the present
`invention with existing
`devices. Thus. if at least two of the devices require use of an
`identical resource element. then this potential resource con-
`fiict is arbitrated and resolved in an iterative manner based
`
`upon the device information and the finite resources of the
`computer. The resources are then assigned for use by the
`devices based upon this conflict-free solution.
`In response to allocating the assigned resources to the
`devices. the devices are configured for operation with the
`computer system. Each device driver is loaded for use by the
`corresponding devices and the devices are activated for
`operation with the computer.
`Focusing upon another aspect of the present invenfion. a
`system is provided for supporting the bu s-specific operations
`of devices connected to a system bus of a computer system.
`This system. which is alternatively referred to as an enu-
`merator or a bus driver. is assigned to operate with a specific
`system bus and is programmed to recognize the operating
`parameters of the assigned bus. Each system bus typically
`requires a unique configuration process that is based upon
`the architecture of the bus. The enumerator. which can be
`part of an operating system. directly supports the configu-
`ration of devices on its assigned bus by accessing device
`infomiation for those devices and storing this data with a
`central memory. This enables an operating system for the
`computer system to be independent of the characteristics of
`a computer bus architecture because bus-specific informa-
`tion is handled by an abstraction layer. in this case. the
`enumerator.
`
`The enumerator can perform three primary operations.
`specifically (1) detecting dynamic events causing an asyn-
`chronous change in the operating state of the computer
`system; (2) enumerating each of the devices connected to the
`assigned system bus in response to the detection of a
`dynamic event; and (3) supplying assigned resources to each
`of the devices in response to an allocation of resources. To
`implement these operations. the enumerator can include one
`or more elements that are responsible for those functions.
`namely an enumerate element. a configure element. and an
`event detect element. These functions are typically defined
`by the characteristics of its assigned system bus.
`The enumerate element includes a detection module for
`detecting a particular device on the system bus and a
`collection module for retrieving device information from the
`particular device. The collection module obtains device
`information from the detected device and stores this data
`within device nodes of the computer memory to maintain an
`up-to-date inventory of the devices on the assigned system
`bus. Thus. the detection and collection modules operate in
`tandem to enumerate these devices. The computer memory
`can be a hierarchical database structure formed by a tree-like
`structure containing the device nodes. which represent each
`of the detected devices.
`
`The configure element can include a receive module for
`receiving the allocation of assigned resource elements. an
`assigned resource storage module for storing the assigned
`resources within the device nodes of the computer memory.
`and a transmit module for supplying instructions about the
`assigned resources to the appropriate devices. In response to
`the assigned resources. the configure element accesses the
`device nodes in the computer memory and stores the appro-
`priate resource element assignments.
`The event detect element typically can detect the instal-
`lation of a new device on the assigned system bus or the
`removal of an existing device. For example. device instal-
`lation or removal can be detected by intercepting a particular
`interrupt signal or by periodically polling all of the available
`sockets of the bus to determine the installed devices.
`Likewise. the event detect element can detect the insertion
`of a computer system into or the removal of a computer
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`65
`
`HUAWEI EX. 1020 - 16/40
`
`HUAWEI EX. 1020 - 16/40
`
`

`
`5,787,246
`
`7
`
`system from a docking station. The event detect element is
`further responsive to booting the computer or the power
`state for the computer. In response to one of these events. the
`event detect element can supply the event detection infor-
`mation to the enumerate element.
`thereby initiating the
`enumeration process. The event detect element also can be
`responsive to certain query-type

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