`Sundaram et al.
`
`USOO6934774B1
`(10) Patent No.:
`US 6,934,774 B1
`(45) Date of Patent:
`Aug. 23, 2005
`
`(54) METHOD AND SYSTEM FOR RELIABLE
`DEVICE CONFIGURATION IN A
`COMPUTER SYSTEM
`
`(75) Inventors: Rajesh Sundaram, Sunnyvale, CA
`(US); Toshiya Miyazaki, San Jose, CA
`(US); Isamu Yamada, San Jose, CA
`(US)
`(73) Assignee: Fujitsu Limited, Kawasaki (JP)
`-
`(*) Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`5,548,782 A * 8/1996 Michael et al. ............... 703/24
`5,787,019 A * 7/1998 Knight et al................ 709/324
`5,953,010 A * 9/1999 Kampe et al. .............. 345/772
`5,958,020 A * 9/1999 Evoy et al. .................... 710/3
`6,286,066 B1 * 9/2001 Hayes et al. ................ 710/302
`6,389,029 B1 * 5/2002 McAlear ..................... 370/402
`6,389,560 B1 * 5/2002 Chew .....
`... 710/315
`6,466,981 B1 * 10/2002 Levy ......
`... 709/227
`6,473,811 B1 10/2002 Onsen ......................... 710/15
`
`* cited by examiner
`
`Primary Examiner Jeffrey Gaffin
`ASSistant Examiner Joshua D Schneider
`74) Attorney, Agent, or Firm-Sheppard Mullin Richter &
`(21) Appl. No.: 09/467,569
`y, Ag
`pp
`Hampton LLP
`(22) Filed:
`Dec. 20, 1999
`ABSTRACT
`(57)
`(51) Int. Cl. ............................. G06F 3/00; G06F 9/00;
`A configuration notification unit monitors internal messages
`Goof 17/o
`generated by an operating System of a computer related to
`(52) U.S. CI. 710/16,710/1 77.81929,,79,6.
`device configuration process for plug and play devices
`715/708
`led to th
`t
`ial bus interface. Th
`(58) Field of Search ............................... 710-74, 315, RoRoi Rio GEOINW in
`710,302,345,772; 709,310,227,370402. EE
`700/17
`the user when it is unsafe to change the number of devices
`coupled to the computer. In a preferred embodiment, the
`References Cited
`configuration notification unit include a message handler
`coupled to an indication unit.
`
`(56)
`
`U.S. PATENT DOCUMENTS
`5,386,360 A * 1/1995 Wilson et al. ................ 700/17
`
`27 Claims, 13 Drawing Sheets
`
`
`
`Operatin
`
`This Method
`
`(b) OS Detects
`the Ewent
`
`Message
`Haneer
`
`indication
`Unit
`
`S. QS As Set (d)
`ewe Awa
`ar
`Message to AH---
`Hook the Message
`Application
`p
`
`SAFE TO
`ReMOWINSERT
`
`.
`.
`(),
`if the Device is
`Required to
`indicate
`the Configuration
`State, Send
`Command
`"CONFIGURAON
`NPROGRESS
`to Display Unit
`
`Sends
`S.
`onfiguration
`Competed 2E
`ME to AIs its Hook the Message
`Application
`
`f
`8oNFIGURATION
`in PROGRESS
`
`Send a
`ommand
`"READY" to
`display Unit
`
`SAVE TO
`MOVENSERT
`
`Page 1 of 21
`
`BMW EXHIBIT 1006
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 1 of 13
`
`US 6,934,774 B1
`
`
`
`Peripheral
`Device
`
`USB Cables
`to More Hubs
`or Devices
`
`USB Cabies
`to More Hubs
`or Devices
`
`USB Cables
`to More Hubs
`or Devices
`
`USB Cables
`to More Hubs
`or Devices
`
`PC HOSt
`
`3O-A
`Hub
`
`40
`
`/O device
`
`
`
`
`
`O USB Cable
`&SS
`
`FIG.2(PRIOR ART)
`
`N
`
`USB Cables
`to More Hubs
`Or Devices
`
`e O 9
`
`a
`
`O
`
`Page 2 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 2 of 13
`
`US 6,934,774 B1
`
`Upstream Connector
`335
`
`330
`
`Controller
`
`Power
`IN
`
`Downstream Connectors
`FIG.3(PRIOR ART)
`
`POWer
`Control
`
`355
`
`430
`
`Power
`N
`
`Repeater
`
`340
`
`355
`
`Upstream Connector
`435
`
`Repeater
`
`440
`
`
`
`455
`455
`Downstream Connectors
`FIG.4(PRIOR ART)
`
`Page 3 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 3 of 13
`
`US 6,934,774 B1
`
`PS/2 Keyboard Port
`PS/2 Mouse Port 550
`58O
`Printer Port (Only)
`540
`Volume Control
`
`
`
`
`
`
`
`570
`RS232-type
`Communications Port
`
`590
`
`RJ-45 Port
`
`AC Adapter Port
`
`50
`Upstream
`USB Port
`(to Connect
`to Your
`Downstream USB LifeBook)
`Port (to Connect to
`USB Devices)
`
`FIG.5A (PRIOR ART)
`
`Page 4 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 4 of 13
`
`US 6,934,774 B1
`
`
`
`USB
`Downstream
`Port #1
`
`USB
`Downstream
`Port #1
`
`USB
`DOWnstream
`Port #1
`
`F8U-1 OOAX
`Firmware for
`USB to PS/2
`Keyboard, PS/2
`Mouse, Hub
`State Machine
`& Serial Port
`Vendor Specific
`Class
`implementation
`
`Headphone
`Out
`
`Volume
`Control Knob
`
`530
`
`A1
`
`Upstream USB
`Port to HOSt
`Computer
`
`Texas instruments
`TUSB2O48
`4-port USB Hub
`
`USB
`DOWnstream
`Port #4
`
`FTDIFT8U100AX 7-port Embedded
`.
`Micro-Controller + USB Hub with
`Embedded PS/2 Mouse, PS/2 Keyboard
`and Serial Port
`
`Port
`1
`
`Port
`2
`
`Ports 4-7
`Reserved for
`Port Future USB to xxx
`3
`Bridge/Functions
`
`PS/2 Mouse
`Connector
`
`PS/2 Kbd
`Connector
`
`OB-9 Serial
`Connector
`
`Philips UDA1321
`USB DAC for
`Providing USB to
`Audio Function/
`Bridge
`
`CAC EL-121 OA
`ASIC for Providing
`USB to Ethernet
`Function/Bridge
`
`Lucent USS-720
`for Providing USB
`to Printer
`Function/Bridge
`
`RJ-45 AN
`Connector
`
`DB-25 Printer
`Connector
`
`FIG5B(PRIOR ART)
`
`Page 5 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 5 of 13
`
`US 6,934,774 B1
`
`640
`
`63O
`
`61O
`
`FIG.6A (PRIOR ART)
`
`
`
`
`
`
`
`
`
`632-/
`
`
`
`61O
`
`NNNYaYaYaNNYaYaSY & SSSSSSSSSSaaSSS
`NYYYYNNYYYYYYYY
`NY. N
`RNNY, YSYYYY
`
`
`
`N-N
`
`FIG.6B(PRIOR ART)
`
`Page 6 of 21
`
`
`
`U.S. Patent
`US. Patent
`
`Aug. 23, 2005
`Aug. 23, 2005
`
`Sheet 6 of 13
`Sheet 6 0f 13
`
`US 6,934,774 B1
`US 6,934,774 B1
`
`me
`
`emu
`
`
`
`tom_m__m._mn_
`
`09...\
`
`
`
`
`
`Emu,moEuK305%
`
`>595?”—
`
`hmucwaxm
`
`.Qowccoo
`
`.mESxm
`
`944
`mK
`
`OK
`
`Page 7 of 21
`
`Page 7 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 7 of 13
`
`US 6,934,774 B1
`
`93/
`
`
`
`088
`
`
`
`
`
`
`
`??un Jepuedx? OWI Áue?a?udoud
`
`008_^
`
`
`
`99409Z
`
`03/
`
`Page 8 of 21
`
`
`
`U.S. Patent
`US. Patent
`
`Aug. 23, 2005
`Aug. 23, 2005
`
`Sheet 8 of 13
`Sheet8 0f13
`
`US 6,934,774 B1
`US 6,934,774 B1
`
`mm:
`
`wxEnema:
`
`mmem
`
`Emm..w:§oo
`
`mtoa
`
`m..GE
`
`5:08:00298gmBram
`
`< 0
`
`>
`
`009
`00m
`
`
`
`
`
`
`
`
`
`
`
`
`
`Page 9 of 21
`
`Page 9 of 21
`
`
`
`
`
`
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 9 of 13
`
`US 6,934,774 B1
`
`1OOO
`
`^
`
`
`
`108O
`
`
`
`1075
`
`FIG 10
`
`Page 10 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 10 0f 13
`
`US 6,934,774 B1
`
`1OO
`
`Application B
`
`Message
`
`Dispatcher
`
`FIG 11A(PRIOR ART)
`
`
`
`
`
`HARDWARE
`
`
`
`GUI based Operating System
`
`MOUSE Related Message(s)
`WM MOUSEDOWN
`WMMOUSEUP, etc
`
`Power Management Related
`Message(s)
`WM SHUTDOWN
`WMSUSPEND, etc.....
`
`
`
`
`
`
`
`Application Software A
`(E.g. Word Processor Software)
`
`Application Software B
`(E.g. Battery Monitor)
`
`FIG 11 B(PRIOR ART)
`
`
`
`
`
`
`
`
`
`
`
`Page 11 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 11 of 13
`
`US 6,934,774 B1
`
`incoming Event
`
`f030
`
`MESSAGE Analyze Unit
`
`indication UNIT
`
`indication to End-user
`
`F.G. 12
`
`
`
`Command from
`Message Handler
`
`SAFE TO REMOVE
`
`F.G. 14
`
`Page 12 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 12 of 13
`
`US 6,934,774 B1
`
`
`
`
`
`Operating
`ystem
`
`(b) OS Detects
`the Event
`
`(c) OS Sends
`Device Arrival
`Message to All
`Application
`
`S.
`
`S.
`
`This Method
`
`Message
`Hander
`
`indication
`Unit
`
`f004
`
`1305
`
`saEE to
`REMOVE/INSERT
`
`O05
`
`(d)
`Hook the Message
`1316
`
`(e)
`If the Device is
`Reduired to
`indicate
`the Configuration
`State, Send
`Command
`"CONFIGURATION
`N PROGRESS
`to Display Unit
`
`(g) OS Sends
`Configuration
`Completed
`Message to All
`Application
`
`(h)
`Hook the Message
`so A S
`
`f326
`
`(f)
`CONFEGURAON
`in PROGRESS
`
`i)Send a
`ommand
`"READY" to
`Display Unit
`
`f33O
`
`f332
`
`1334
`
`(k) SAVE TO
`REMOVE/INSERT
`
`FIG. 13
`
`Page 13 of 21
`
`
`
`U.S. Patent
`
`Aug. 23, 2005
`
`Sheet 13 of 13
`
`US 6,934,774 B1
`
`;
`
`2 Na&CEboGGOSBen 1421
`Circled in red is the icon and it means "SAFE TO REMOVE/INSER"
`FIG.15A
`
`
`
`Yellow area is actual size of icon. The icon is animated.
`FIG.15B
`
`
`
`Yellow area is actual size of icon. The icon is animated.
`FIG.15C
`
`Page 14 of 21
`
`
`
`US 6,934,774 B1
`
`1
`METHOD AND SYSTEM FOR RELIABLE
`DEVICE CONFIGURATION IN A
`COMPUTER SYSTEM
`
`FIELD OF THE INVENTION
`The present invention relates generally to providing noti
`fication of the Status of a configuration proceSS for a com
`puter coupled to peripheral devices. More particularly, the
`present invention is directed towards providing notification
`of the Status of a configuration process in a personal com
`puter coupled to peripheral devices by universal Serial bus
`(USB) connectors.
`BACKGROUND OF THE INVENTION
`Compact personal computers typically have a limited
`number of peripheral device ports. A problem that has
`developed is that there are a large variety of different device
`ports and different manufacturers developed proprietary
`interfaces for peripheral device ports which were incompat
`ible with each other. One way that has been developed to
`increase the number of different peripheral devices that can
`be coupled to a personal computer is through a Standard
`industry interface connector port.
`There are Several industry Standard Serial bus interfaces.
`One of the most commonly used in the universal serial bus
`interface (USB). USB is a standard interface for connecting
`peripheral devices to the System bus of a personal computer.
`USB is a fast, bi-directional, isochronous, low-cost, dynami
`cally attachable Serial interface. It is now commonly used for
`attaching personal computers to a wide variety of other
`peripheral input/output (I/O) devices, Such as monitors, disk
`drives, modems, mice, printers, Scanners, game controllers,
`keyboards, and other peripherals. With USB there is a single
`connector type, which permits all USB devices to plug into
`the same USB Socket type. It is common for personal
`computers and notebook computers to include at least one
`USB port.
`A USB operating System has Software program Subrou
`tines which monitor the bus’s topology and that control
`access to USB resources. A USB hub is responsible for
`transferring data upstream (to the computer) and down
`Stream (from the computer to peripheral devices). A personal
`computer typically has a root hub, which commonly con
`tains one or two USB ports. The root hub may be connected
`to other external hubs, thereby permitting a large number of
`peripheral devices to be coupled to a personal computer via
`an auxiliary hub, as shown in prior art FIGS. 1-2.
`USB uses a token-based bus architecture. USB initializa
`tion software permits USB devices to be added or removed
`at any time via an enumeration process, i.e., USB connectors
`permit So-called "hot plugging in which new devices can be
`coupled or uncoupled while the computer is in operation.
`Whenever a peripheral device is added or removed the
`change in topology is recognized by the personal computer
`and appropriate drivers are loaded So that the device is
`almost immediately available for use.
`One goal of USB is true “plug and play' operation in
`which the user can dynamically couple peripheral devices to
`a personal computer for immediate use. Once a device is
`coupled to the PC host, the device is enumerated by the USB
`initialization Software and assigned a unique identifier.
`However, in practice the configuration proceSS can require a
`Significant amount of time. The time required for the con
`figuration process to be completed will depend upon many
`factors, Such as the type of drivers that must be loaded and
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`the complexity of the System, but will typically be at least
`Several Seconds. One problem caused by this is that the user
`may attempt to use the computer before the operating System
`has completed loading the drivers and applicable housekeep
`ing activities. This may cause a System error. Another
`problem is that serious operating System (O/S) problems
`may result if a USB device is inserted and then removed
`before the bus topology is reconfigured. For example, if the
`plug and play device is inserted and then removed before
`Successful reconfiguration, the O/S will not have completely
`finished processing the device configuration and its corre
`sponding event. This may cause the USB bus to crash such
`that the other peripheral devices will not work properly.
`Similarly, a USB bus crash may occur if the user changes the
`type of device coupled to a USB socket before the bus
`topology has a chance to become reconfigured. For example,
`a user may first connect a printer to a USB Socket and then
`change his or her mind and eXchange the printer for a
`Scanner. If the changeover occurs too rapidly the bus topol
`ogy will not have Sufficient time to complete the configu
`ration process when the printer is connected or removed
`such that a USB bus crash may occur.
`Known prior art Systems do not directly notify a user of
`the Status of the reconfiguration proceSS. For example, the
`Windows(R 98 operating system changes the mouse cursor
`to an hourglass icon whenever a USB device is plugged or
`unplugged. The hourglass icon disappears a short time after
`configuration is completed. However, one problem with
`using the hourglass icon is that it may be hard for the user
`to see it. For example, if the cursor is at the edge of the
`Screen it may be hard to See the hourglass icon. There can
`also be a significant time delay before the hourglass icon is
`displayed by the system. Another problem is that the hour
`glass icon is generically used to indicate that the computer
`is busy and cannot be distinctly interpreted to mean that the
`USB device is being Set up. Consequently, an hourglass icon
`may not provide a clear enough indication that the user
`should wait to couple/uncouple USB connectors. Most
`importantly, the hourglass icon does not directly inform the
`user exactly when it is Safe for the user to couple or uncouple
`USB connectors. It is merely a general icon that indicates
`that the operating System is busy and does not display the
`Status of the configuration process.
`What is desired is a new apparatus and method for
`providing real time notification of the progreSS of a con
`figuration proceSS for a computer coupled to other devices or
`Systems by a Serial bus, Such as a personal computer coupled
`to peripheral devices by a USB interface.
`
`SUMMARY OF THE INVENTION
`A goal of the present invention is to improve the reliability
`of a configuration process for a computer coupled to a
`peripheral device via a Serial bus interface. Broadly
`Speaking, the present invention is directed towards provid
`ing real-time information to a user which will assist the user
`to avoid coupling or decoupling peripheral devices to the
`computer at inappropriate times.
`The apparatus of the present invention generally com
`prises a computer System including: a computer having at
`least one Serial bus port for coupling peripheral devices to
`the computer; an operating System residing on the computer
`programmed to dynamically configure the computer System,
`the operating System having a first Subroutine for generating
`a first internal message indicative of the operating System
`Sensing a change in the number of devices coupled to Said
`computer and a Second Subroutine for generating a Second
`
`Page 15 of 21
`
`
`
`US 6,934,774 B1
`
`3
`message indicative of Said operating System completing a
`configuration process, and a configuration notification pro
`gram residing on the computer receiving the first and the
`Second messages and creating a visual display notifying the
`user in real time when it is unsafe to remove or insert a plug
`and play device. In a preferred embodiment, the configura
`tion notification program comprises a message handler
`residing on the computer, the message handler hooking the
`first and the Second messages, the message handler includ
`ing a message analyzer unit and a State determination unit
`arranged to provide a first output Signal when the configu
`ration proceSS is in progreSS and a Second output signal when
`the configuration process is completed; and an indication
`unit residing on the computer and coupled to the output of
`the message handler, the indication unit generating a visual
`display notifying the user when it is unsafe to remove or
`insert a plug and play device.
`The method of the present invention for providing noti
`fication of the Status of a reconfiguration process of an
`operating System of a computer coupled to peripheral
`devices generally includes the Steps of detecting an event
`message generated by the operating System whenever the
`number of the peripheral devices coupled to the computer
`changes, determining if the detection message corresponds
`to a change in the number or type of the peripheral devices
`requiring that a user be notified; notifying the user that a
`configuration proceSS is in progreSS, detecting a completion
`message generated by the operating System when the con
`figuration process is completed; determining if the comple
`tion message corresponds to a change in the number or type
`of the peripheral devices requiring that the user be notified
`that the configuration process is completed; notifying the
`user that the configuration process is complete; and notify
`ing the user that it is Safe to change the number or type of
`peripheral devices coupled to the computer.
`One object of the present invention is a method and
`apparatus to reduce the frequency of universal Serial bus
`crashes. In a preferred embodiment of a compact personal
`computer, a compound hub performing a port replication
`function is used to reduce the number of connectors attached
`to the case of the computer. The configuration notification
`unit generates a warning to the user when configuration is in
`proceSS Such that it is unsafe to couple or decouple a
`peripheral device to the computer, thereby reducing the
`frequency with which users couple or decouple peripheral
`devices at inappropriate times.
`Another object of the present invention is a method and
`apparatus for providing prompt notification to the user when
`configuration is complete, thereby assisting the user to
`determine when the computer System is ready for further
`action.
`Still another object of the present invention is method and
`apparatus to notify users when it is Safe to couple or
`decouple peripheral devices to a computer.
`BRIEF DESCRIPTION OF THE DRAWINGS
`FIG. 1 depicts a prior art computer System in which the
`computer is coupled to a peripheral device by a universal
`serial bus hub.
`FIG. 2 depicts a prior art computer System in which a
`computer is coupled to a peripheral device via nested
`universal serial bus hubs.
`FIG. 3 is a block diagram of a prior art hub.
`FIG. 4 is a block diagram of a prior art compound hub.
`FIG. 5A is perspective of a preferred compound hub
`having a plurality of connector ports.
`
`15
`
`25
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`FIG. 5B is a block diagram of the electronic function of
`the hub shown in FIG. 5A.
`FIG. 6A is an illustrative side view of a compact portable
`computer.
`FIG. 6B is a perspective view of the computer of FIG. 6A.
`FIG. 7 is a rear view of the case of a conventional portable
`computer, showing the relative area of common connector
`ports.
`FIG. 8 is a rear view of the case of a conventional compact
`portable computer coupled to a conventional port replicator,
`showing the relative area of common connector ports.
`FIG. 9 shows a rear view of a preferred compact computer
`coupled to a compound port Similar to that shown in FIG.
`5A.
`FIG. 10 shows a preferred embodiment of the configura
`tion notification System of the present invention.
`FIG. 11A is a schematic block diagram illustrating how
`conventional operating Systems dispatch event messages to
`application programs.
`FIG. 11B is a functional block diagram showing the flow
`of internal messages in a conventional operating System.
`FIG. 12 is a functional block diagram of the configuration
`notification unit of the present invention.
`FIG. 13 is a flow chart showing a preferred method of
`operation of the configuration notification unit of FIG. 12.
`FIG. 14 is a block diagram showing the display outputs of
`the identification unit of FIG. 12.
`FIG. 15 shows preferred display screen implementations
`of the outputs of FIG. 14.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`As shown in FIG. 1, a serial bus interface may be used to
`connect peripheral device 40 to a computer 10. A commonly
`used Serial bus interface is the universal Serial buS interface
`(USB). While a single peripheral device could be coupled
`via a USB connector, it is common to couple Several devices
`to a computer via a hub. As shown in FIG. 1, USB cables 80
`may couple one or more peripheral devices to computer 10
`via a hub 30. As shown in FIG. 2, several hubs can be
`coupled together to further increase the potential number of
`peripheral devices coupled to a computer. AS indicated in
`FIG.2, with USB, peripheral devices can be nested up to five
`hub (30A-E) levels deep such that up to 127 I/O devices
`may be connected to one personal computer using the USB
`interface.
`FIG. 3 is a block diagram of a conventional hub 330. Hub
`330 includes an upstream connector 335 for communicating
`with computer 10. A repeater 340, controller 345, and power
`control 350 are arranged to control the flow of data between
`upstream connector 335 and downstream connectors 355.
`FIG. 4 is a block diagram of a compound hub 430. Com
`pound hub 430 includes an upstream connector 435, and a
`repeater 440, controller 445, and power control 450.
`However, in addition to downstream connectors 455, it has
`embedded I/O devices 460. These embedded I/O devices
`may comprise any conventional I/O device communicating
`with computer 10 via a USB interface, i.e., the I/O devices
`are integrated into the hub and provided with control circuits
`that permit them to communicate to the computer via the
`USB interface. Repeater 440, controller 455, and power
`control 450 are arranged to control the flow of data between
`upstream connector 435, downstream connectors 455 and
`embedded devices 460.
`
`Page 16 of 21
`
`
`
`US 6,934,774 B1
`
`15
`
`25
`
`S
`FIG. 5A is a profile view of a compound hub 530
`manufactured by Fujitsu, Ltd. of Japan, the assignee of the
`present invention, and sold as the Fujitsu Universal LAN
`Hub(R). Compound hub 530 includes an upstream USB port
`510, several downstream USB ports 515, 520, and 525,
`Several peripheral device connectors, Such as a "parallel”
`connector port 540, a PS/2 keyboard port connector 550, an
`RJ-45 Ethernet connector port 560, an RS232-type commu
`nications connector port 570, a PS/2 mouse connector port
`580, along with a volume control 585, and a headphone jack
`590. FIG. 5B is a functional block diagram of compound hub
`530. As can be seen in FIG. 5B, each of the connector ports
`functions as an embedded USB I/O device, i.e., communi
`cates to an upstream computer via the USB upstream port.
`Compound hub 530 provides an important benefit for
`portable computers with a limited number of connector
`ports. AS used in this application, a portable computer
`includes, but is not limited to, laptop computers, notebook
`computers, and other types of compact portable computing
`devices. FIG. 6A is side view of compact notebook com
`puter 600, while FIG. 6B is a profile view of the compact
`notebook computer 600. As shown in FIGS. 6A and 6B,
`computer 600 has a case 610. Within case 610 resides a
`compact electronic computer CPU 620. A display 640 is
`coupled to computer 600 in a conventional folding clamshell
`arrangement. Computer 600 typically has at least one uni
`versal serial bus connector (not shown in FIGS. 6A and 6B)
`disposed along a rear 630 or side surface 632 of case 610.
`One limitation to the size of computer 600 is the physical
`Size and weight of the connectorS required to couple the
`computer to peripheral devices. Generally Speaking, it is
`desirable to be able to couple a computer to many different
`types of peripheral devices, Such as printers, Scanners, mice,
`disk drives, etc. However, while the size of personal com
`puters continues to shrink, the physical size of the connec
`35
`tors required to form a signal link to peripheral devices has
`not decreased.
`FIG. 7 is a view of the rear surface of a computer case of
`a conventional all-in-one portable computer 700. Computer
`700 is an all-in-one computer in the sense that it has all of
`the commonly desired connector ports. These include a
`keyboard port 715, a mouse port 710, an audio port 720, a
`modem port 725, an infrared (IrDA) port 730, a monitor port
`735, two USB ports 740, a parallel port 745, a serial port
`750, a proprietary external expander connector 755, and a
`LAN port 760. The relative area of various connector ports
`is shown in FIG. 7. As can be seen in FIG. 7, a considerable
`amount of area is required for these connector ports.
`Additionally, the connector ports and associated internal
`mechanical and electrical components significantly increase
`the total volume and weight of computer 700.
`External port replicators are one way to increase the
`number of effective ports coupled to a computer. FIG. 8
`shows a conventional compact portable computer 800
`coupled to a conventional proprietary I/O expander 880. As
`can be seen in FIG. 8, some of the peripheral device
`connector ports, such as keyboard port 815, mouse port 810,
`serial bus port 855 and parallel port 845 now reside in
`expander unit 880, which replicates the function of some or
`all of the ports of an all-in-one portable computer. However,
`in this conventional arrangement Space is still required for
`proprietary external expander connector port 860, which is
`required to couple to a corresponding female expander
`connector 870 on expander 880.
`FIG. 9 shows the rear Surface 902 of an embodiment of a
`compact computer 900 of the present invention developed
`by the inventors for use with the compound hub 530 shown
`
`6
`in FIG. 5. A single USB port 905 is used to couple signals
`to external hub 530. Most of the large area peripheral device
`connector ports of a conventional all-in-one computer are
`now disposed on hub 530 and are connected to the computer
`900 via the USB port 905. Additionally, external expander
`connector port 755 is eliminated in computer system 900.
`Comparing FIGS. 7, 8, and 9, it can be seen that computer
`900 requires a reduced area of rear surface 902 to be devoted
`to connectors. Moreover the associated internal Volume and
`weight of the connectors disposed in computer 900 is also
`reduced, permitting a reduction in the total Volume and
`weight of computer 900. Consequently, computer 900 can be
`reduced in size and perform an all-in-one function. Note also
`that the total number of ports, particularly USB ports, is
`increased compared to computer 700. Consequently, the
`inventive computer system 900 of FIG. 9 reduces the size
`and weight of computer 900 while permitting a greater
`number of peripheral devices to be coupled to computer 900.
`The computer system 900 shown in FIG. 9 is particularly
`useful for compact notebook computers in which it is
`desirable to reduce the height, h, and width, W, of a computer
`900, as indicated in FIG. 9. However, computer system 900
`could also be generalized to other compact electronic com
`puter Systems in which a electronic computer unit is coupled
`via a serial bus connector 905 to a compound hub 530.
`Referring to FIG. 9, it can be seen that in a preferred
`embodiment of system 900 that there are three USB down
`Stream ports and Six peripheral device ports disposed on
`compound hub 530. The six peripheral device ports function
`as embedded USB devices. Consequently, all of the nine
`ports function as hot-pluggable USB ports, i.e., computer
`900 monitors the Status of all nine ports and dynamically
`reconfigures computer system 900 whenever a device is
`coupled or uncoupled from one of the ports. Consequently,
`the frequency of hot-plugging of computer system 900 will
`tend to be significantly greater than for a conventional
`portable computer 700. This increases the risk of a system
`error if a user does not wait while the System is being
`reconfigured each time a device is plugged or unplugged.
`In developing computer system 900 the inventors discov
`ered that the frequency of USB bus crashes increased
`compared to a conventional computer 700. The inventors
`believe that one explanation for this is that a more complex
`buS topology is created. The inventors believe that another
`explanation is that conventional O/S Software and drivers
`may not be as robust to reconfiguration errors as generally
`believed. Still another explanation is that the increased
`number of effective USB ports of computer system 900
`tends to increase the frequency of hot plugging, thereby
`increasing the likelihood that a user will not wait a Suffi
`ciently long period of time for system 900 to configure itself
`before unplugging one USB device and inserting another
`USB device.
`Conventional operating Systems do not provide a direct
`notification to the user of what is happening in the internal
`operating System during the reconfiguration process.
`Consequently, the user does not know exactly when the
`operating System has completed the configuration process.
`To reduce the frequency of USB bus crashes, the inventors
`developed an apparatus and method to provide direct noti
`fication to the user of the Status of the configuration process
`in system 900.
`FIG. 10 shows a block diagram of the inventive notifi
`cation system 1000. A computer unit 1010 has an operating
`system 1020 residing on it. Computer 1010 has a display
`1040 and a downstream USB connector 1050 coupled to the
`case 1060. Computer 1010 preferably also has a speaker
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 17 of 21
`
`
`
`US 6,934,774 B1
`
`15
`
`7
`1035 for providing an audio output. Computer 1010 may be
`any type of computer but is preferably a compact personal
`computer, Such as a notebook computer. A Standard USB
`cable 1055 couples USB connector 1050 to other devices,
`preferably via a hub 1070. Hub 1070 may be any type of
`USB hub, but is preferably a compound USB hub. Hub 1070
`preferably has at least one embedded device 1075 or at least
`one embedded connector 1080 in order to increase its
`functionality. Hub 1070 also preferably includes at least one
`downstream USB port 1090.
`As shown in FIG. 10, a software program which is a
`configuration notification unit 1030 resides on computer
`1010. As described below in more detail, configuration
`notification unit 1030 provides notification to the user,
`preferably via display 1040 and speaker 1035, of when the
`configuration process is complete Such that it is Safe to
`couple/uncouple devices to computer 1010 via hub 1070.
`The function and operation of configuration notification
`unit 1030 is illustrated in FIGS. 11-15. FIG. 11A is a block
`diagram of a conventional operating system 1100. The
`operating System detects incoming events requiring action
`and transmits internal messages about these events to coor
`dinate the activities of System resources. The operating
`System includes Subroutines for generating internal mes
`Sages alerting other components that an event has been
`25
`detected and that the configuration process is completed. AS
`one example, an incoming event may be a keyboard input.
`For peripheral devices coupled by Serial bus connectors to a
`computer, the operating System Senses changes in the bus
`topology whenever a device is coupled or uncoupled from
`the computer. AS shown in FIG. 11A, an operating System
`includes Subroutines which converts an incoming event 1110
`into a corresponding message 1120 before dispatching it via
`a dispatcher 1130 to other applications or components, Such
`as the application Software 1140 and device drivers 1160.
`Referring to FIG. 11B, in the conventional graphical user
`interface (GUI) operating system of the Windows(R O/S,
`operations Such as mouse clicking, keyboard typing and
`powering the System on/off, causes the operating System to
`generate message(s) using the information from the device
`driver. The messages which are thus generated are then sent
`to all application Software running on the operating System.
`All running application Software thus receives the message
`(s) notifying them about a hardware status change. Each
`application then processes the message if the message is
`applicable or otherwise related to the application. FIG. 11B
`shows Some of the messages related Specifically to the
`Windows(RO/S. The O/S Software used to generate these
`internal messages are well known in the art.
`Referring again to FIG. 11A, for peripheral devices, each
`message contains information about the detected device. If
`one of the components, Such as the application Software or
`device drivers, has the capability to handle the event, then
`the component can capture the event and process it. Note
`that in a conventional operating System t