throbber
(12) United States Patent
`Shapiro et al.
`
`(10) Patent N0.:
`(45) Date of Patent:
`
`US 6,574,588 B1
`Jun. 3, 2003
`
`US006574588B1
`
`(54) SOLID-STATE MEMORY DEVICE THAT
`EMULATES A KNOWN STORAGE DEVICE
`
`(75) Inventors: Daniel Shapiro, Redmond, WA (US); Raymond D- PedriZetti>ISSaquah>WA
`
`(Us)
`
`(73) Assignee: Microsoft Corporation, Redmond, WA
`(Us)
`
`5,717,903 A * 2/1998 Bonola ...................... .. 703/24
`5,751,975 A * 5/1998 Gillespie et al.
`710/126
`
`5,784,581 A * 7/1998 Hannah . . . . . . . . . .
`*
`
`. . . .. 710/110
`
`2 * 5,915,106 A * 6/1999 Aid.......... légng
`
`
`5,946,469 A * 8/1999 Chidester
`
`5,953,516 A * 9/1999 Bonola . . . . . . . .
`
`5,958,020 A * 9/1999 Evoy etal
`5,991,777 A * 11/1999 Momoh et al
`6,006,029 A * 12/1999 Bianchi et al.
`*
`
`
`
`""" :11. 703/23
`345/157
`
`. . . . .. 703/22
`
`710/3
`707/205
`703/21
`
`( * ) Notice:
`
`
`
`Subject to any disclaimer, the term of this Pawnt 1S @Xtended 0r adlusted under 35
`
`
`
`2 * 6,064,566 A * 5/2000 Agata et al. . . . . .
`
`. . . .. 361/685
`
`U.S.C~ 154(b) by0 clays~
`
`(21) AppL NO‘, 09/159,522
`
`(22) Filed:
`
`Sep. 23, 1998
`
`. . . . .. 710/38
`6,073,188 A * 6/2000 Fleming . . . . . .
`6,073,205 A * 6/2000 Thomson .................. .. 711/100
`6,223,267 B1 * 4/2001 Hodges et al. ............ .. 707/205
`
`OTHER PUBLICATIONS
`
`52 U S C]
`(
`)
`'
`'
`'
`
`(51) Int. c1.7 ....................... .. G06F 9/455; G06F 13/00;
`G06F 9/00; G06F 3/00; G06F 13/12
`703/24_ 703/25_ 709/321_
`709/3’27_ 71mg 710/10f
`710/1’3_ 710/14f 710/63_ ’710/72f 710/73f
`’
`’
`’
`’ 710W‘;
`
`$321031lialsff’nlgtg?Encyclopedia °fC°mPmerSCienCe>
`H
`1 1°“ ’
`’ “Fag?
`Texas Instruments, Inc., Serial ROM Data Format for IEEE
`1394, Open HCI Implementations, Application Report,”
`IEEE 1394 Con?guration ROM, Texas Instruments, Inc.,
`1998, pp. 1—10.
`
`(58) Field of Search ............................ .. 703/23, 24, 25;
`710/8’ 9’ 10’ 11’7B29’
`252763’
`
`* Cited by eXarniner
`Primary Examiner—Todd Ingberg
`
`(56)
`
`References Cited
`
`’
`
`’
`
`’
`
`U.S. PATENT DOCUMENTS
`4,787,026 A * 11/1988 Barnes et a1_ ________________ __ 711/6
`4,984,149 A * 1/1991 Iwashita et a1_ __
`711/4
`5,131,089 A * 7/1992 Cole .......... ..
`703/24
`703/24
`5,291,584 A * 3/1994 Challa et al- .
`53717885 A : 12/1994 Letwm """" "
`707/205
`5’446’855 A
`8/1995 Dang et a1‘
`"" " 711/1
`5 454098 A * 9/1995 Pisello et al. ..
`703/24
`5:457:784 A * 1O/1995 Wells et aL
`7O3/24
`5,459,850 A * 10/1995 Clay er a1, _ _ _ _ _
`_ _ _ __ 703/24
`5,465,364 A * 11/1995 Lathrop et al.
`703/20
`2,473,765 2 i 1%;
`giblzlons etlal- ~~
`’491’816
`on y. et a ' """"""" "
`5’499’378 A : 3/1996 MCNelH’ Jr' et al'
`5,546,585 A
`8/1996 Soga ......................... .. 710/16
`5,548,783 A * 8/1996 Jones et al.
`710/16
`5,694,583 A * 12/1997 Williams et al. ............ .. 703/24
`
`Assistant Examiner—W. Thomson
`(74) Attorney, Agent, or Firm—Banner & Witcoff, Ltd.
`57
`ABSTRACT
`(
`)
`The present invention is directed to a'peripheral device that
`mtegrally provides a program relatmg to the peripheral
`device, and may be connected to a computer system. The
`peripheral device includes a peripheral function subsystem
`for providing a peripheral device functionality. The periph
`eral device further includes a solid-state memor device
`.
`.
`.
`.
`stormg a program relating to the peripheral dev1ce~m ~a
`format used by disk drives. When the peripheral device is
`connected to a computer system, the program stored in the
`solid-state memory device is immediately available, and can
`be read by the computer system as though it Was stored on
`a disk drive connected to the com uter s stem.
`P
`Y
`
`25 Claims, 4 Drawing Sheets
`
`ADDITIONALPERIPHERAL /m
`
`?t
`
`SUBSYSIEM
`
`MEMORY DEVICE
`
`fzzo
`
`KNOWN STORAGE
`DEVICE EMULATION
`SUBSVSTEM
`
`W
`
`m
`
`303
`
`3H4
`
`OF PERIPHERAL FUNCTION
`SUBSYSTEM
`
`SEARCHALLDRIVESFOR
`DRIVER FOR PERIPHERAL
`FUNCTION SUBSVSTEM
`
`LOAD DRIVER FOR
`
`PESIPHERAI. FUNCTlIIION
`
`MEMORY DEVICE AND
`INSTALL
`
`ACCESS PERIPHERAL
`FUNCTION SUBSVSTEM
`USING INSTALLED DRIVER
`
`1
`
`EX 1021
`IPR of Pat. No. 6,892,304
`
`

`

`U.S. Patent
`
`Jun. 3, 2003
`
`Sheet 1 0f 4
`
`US 6,574,588 B1
`
`COMPUTER SYSTEM
`
`100
`/
`
`CPU
`
`/-110
`
`MEMORY
`
`/ 12°
`
`OPERATING SYSTEM /'-130
`HARD DRIVE /-131
`DRIVER
`
`FLOPPY DRIVE /'132
`DRIVER
`
`CD-ROM DRIVE DRIVER
`
`/-121
`
`140
`HARD DRIVE /
`
`150
`/
`
`FLOPPY DRIVE
`
`CD-ROM DRIVE
`
`/160
`
`422
`APPLICATION PROGRAM /
`
`110
`/
`
`DATA
`
`UTILITY PROGRAM
`
`ADDITIONAL
`-I23 \V PERIPHERAL
`/
`180
`sERIAL
`CONNECTION
`
`/-124
`
`2
`
`

`

`U.S. Patent
`
`Jun. 3, 2003
`
`Sheet 2 0f 4
`
`US 6,574,588 B1
`
`ADDITIONAL PERIPHERAL
`
`fun
`
`PERIPHERAL
`FUNCTION
`SUBSYSTEM
`
`/210
`
`MEMORY DEVICE
`
`KNOWN STORAGE
`DEVICE EMULATION
`SUBSYSTEM
`
`/230
`
`FIG. 2
`
`3
`
`

`

`U.S. Patent
`
`Jun. 3, 2003
`
`Sheet 3 0f 4
`
`US 6,574,588 B1
`
`I
`
`BEGIN
`
`I
`
`II
`
`ENUMERATE SERIAL BUS
`
`II
`RECEIVE REPORT OF
`MEMORY DEVICE AS TYPE
`HARD DRIVE
`
`II
`RECEIVE CORRECT REPORT
`OF PERIPHERAL FUNCTION
`SUBSYSTEM
`
`/305
`
`V
`SEARCH ALL DRIVES FOR
`DRIVER FOR PERIPHERAL
`FUNCTION SUBSYSTEM
`
`v
`LOAD DRIVER FOR
`PERIPHERAL FUNCTION
`SUBSYSTEM FROM
`MEMORY DEVICE AND
`INSTALL
`
`IV
`ACCESS PERIPHERAL
`FUNCTION SUBSYSTEM
`USING INSTALLED DRIVER
`
`II
`
`END
`
`FIG. 3
`
`4
`
`

`

`U.S. Patent
`
`Jun. 3, 2003
`
`Sheet 4 0f 4
`
`US 6,574,588 B1
`
`ADDITIONAL PERIPHERAL
`
`f1”
`
`22o
`MEMORY DEVICE /
`
`KNOWN STORAGE
`DEVICE EMULATION /230
`SUBSYSTEM
`
`FIG. 4
`
`5
`
`

`

`US 6,574,588 B1
`
`1
`SOLID-STATE MEMORY DEVICE THAT
`EMULATES A KNOWN STORAGE DEVICE
`
`TECHNICAL FIELD
`
`The present invention is directed to the ?eld of computer
`peripherals, and more particularly, to the ?eld of storage
`devices.
`
`BACKGROUND OF THE INVENTION
`
`10
`
`A peripheral device (“peripheral”) is a device that is
`connected to and controlled by a computer system. Periph
`erals include such devices as a disk drive, printer, modem,
`optical scanner, or joystick. Peripherals may be connected to
`a computer system via various types of connections, includ
`ing a PCI bus, a parallel connection, or a serial connection.
`Modern serial connections include Universal Serial Bus
`(“USB”) and 1394 connections. Modem serial connections
`generally permit several peripheral devices to be attached to
`a computer system via the same serial connection. For
`instance, a printer, a scanner, and a joystick could all be
`connected to a computer system via a single USB connec
`tion.
`Computer systems generally include a program called an
`operating system that, among other things, manages com
`munications betWeen the computer system and its peripher
`als. In order to communicate With a particular peripheral, an
`operating system generally requires an additional computer
`program called a “driver.” The driver for a particular periph
`eral generally knoWs the capabilities of the peripheral and
`the command set for the peripheral. While modem operating
`systems generally include drivers for common devices, such
`as hard disk drives, there are many peripherals for Which
`operating systems do not include drivers. In particular,
`operating systems seldom provide drivers for peripherals
`that Were not available When the operating system Was
`released. In order to use such a peripheral in conjunction
`With a computer system, the operating system on that
`computer system must install a driver for the peripheral.
`Providing such a driver can be a signi?cant inconvenience
`for the user attempting to use the peripheral. For eXample,
`the user may be required to locate a ?oppy disk or CD that
`contains the driver, or to doWnload the driver from the
`Internet. Based on the foregoing, a neW peripheral that did
`not require the provision of a separate driver Would have
`signi?cant utility.
`In addition to their drivers, some peripherals also operate
`in conjunction With other programs. For eXample, optical
`scanners often operate in conjunction With an application
`program for creating in the computer system digital repre
`sentations of documents that are scanned by the scanner.
`Similarly, sequential access tape drives often operate in
`conjunction With ?le backup utilities that copy the contents
`of a hard disk drive to a sequential tape cartridge. A neW
`peripheral that did not require the separate provision of these
`additional programs Would also have signi?cant utility.
`Entertainment, or “game” softWare titles are available for
`many general-purpose computer systems. Such entertain
`ment titles are usually distributed on CD-ROM. While some
`entertainment titles are small and can be completely loaded
`into memory from CD-ROM quickly, modem entertainment
`titles continue to groW larger and larger, containing large
`quantities of executable program code, as Well as large
`quantities of data, such as digitiZed sounds, images, and
`video clips. Because of the relatively loW data transfer rate
`of CD-ROM drives, these modem entertainment titles
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`2
`appear to load and execute sloWly, Which often produces
`signi?cant user dissatisfaction. Based on the foregoing, a
`neW, faster medium for distributing entertainment titles for
`general-purpose computer systems Would have signi?cant
`utility.
`Further, entertainment titles and other softWare titles
`frequently contain some portions that must be loaded from
`the medium quickly, and other portions that may be loaded
`from the media more sloWly. For eXample, an entertainment
`title may have eXecutable code that must be loaded quickly,
`as Well as a video sequence that may be loaded more sloWly
`as the video sequence plays. Unfortunately, because soft
`Ware titles are typically shipped on media of a single type,
`developers must choose either to ship the entire softWare
`title on a medium having a loW transfer rate and create user
`dissatisfaction during the loading of the portions that must
`be loaded from the medium quickly, or to ship the entire
`softWare title on a medium having a high transfer rate and
`drive up the cost of manufacturing the softWare product.
`Based on foregoing, a neW, speed heterogeneous medium for
`distributing softWare titles Would have signi?cant utility.
`SUMMARY OF THE INVENTION
`The present invention is directed to a solid-state read-only
`memory device that may be connected to a computer system
`via a serial connection, such as a Universal Serial Bus or
`1394 connection, and that does not require a special driver.
`When it is initialiZed as part of initialiZing the devices on the
`serial connection during the operating system’s boot
`process, the memory device inaccurately identi?es itself as
`a storage device of a type knoWn to the operating system,
`such as a hard drive. The contents of the memory device can
`then be read using portions of the operating system designed
`and provided for reading from storage devices of the iden
`ti?ed type.
`Such a memory device has several useful applications.
`First, it can be used alone as a fast form of storage, having
`both a small latency time and a large transfer rate. Such use
`is Well-suited to video game cartridges, such as those used
`With popular video game console systems. Second, the
`memory device can be incorporated in another device. For
`eXample, such a memory device containing a driving video
`game may be incorporated in a steering Wheel game con
`troller. As a further eXample, such a memory device can be
`incorporated in a peripheral device, such as a printer or a
`scanner. Such a memory device may contain a driver for the
`peripheral device. When the serial connection is initialiZed,
`the memory device inaccurately identi?es itself as a hard
`drive, and the peripheral device correctly identi?es itself by
`its peripheral device type. If the correct driver for the
`identi?ed device type is not already available computer
`system, the computer system searches all available storage
`devices, including the memory device of the invention,
`Where it ?nds the correct driver for the peripheral device.
`The computer system can then install this driver, and pro
`ceed to use the neW peripheral device Without requiring the
`correct driver to be provided manually. Instead of the driver
`or in addition to the driver, the memory device may contain
`additional programs, such as application programs that
`utiliZe the peripheral device. By integrating the memory
`device into the additional device, it can be guaranteed that
`the data stored in the memory device is alWays available in
`conjunction With the additional device. Finally, the solid
`state memory device may be combined With a storage device
`having different characteristics, such as a CD-ROM drive
`With media. Such a combination may be used With applica
`tions that have different retrieval performance requirements
`
`6
`
`

`

`US 6,574,588 B1
`
`3
`for different portions of their data. As an example, a game
`may include executable code, Which must be loaded quickly,
`and video data, Which can be loaded more sloWly. In
`accordance With such requirements, the executable code
`could be stored in the faster solid-state memory device,
`While the video data could be stored on the cheaper
`CD-ROM.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a high-level block diagram of the general
`purpose computer system to Which the solid-state memory
`device is preferably connected.
`FIG. 2 is a block diagram shoWing the functional com
`ponents for the additional peripheral shoWn in FIG. 1 for the
`embodiment providing the memory device in conjunction
`With another peripheral.
`FIG. 3 is a How diagram that shoWs the steps preferably
`performed by the operating system in order to utiliZe an
`additional peripheral that includes a peripheral function
`subsystem and an associated driver.
`FIG. 4 is a block diagram shoWing the functional com
`ponents of the additional peripheral shoWn in FIG. 1 for the
`serial ROM embodiment.
`
`DETAILED DESCRIPTION OF THE
`INVENTION
`
`The present invention is directed to a solid-state read-only
`memory device that may be connected to a computer system
`via a serial connection, such as a Universal Serial Bus or
`1394 connection, and that does not require a special driver.
`When it is initialiZed as part of initialiZing the devices on the
`serial connection during the operating system’s boot
`process, the memory device inaccurately identi?es itself as
`a storage device of a type knoWn to the operating system,
`such as a hard drive. The contents of the memory device can
`then be read using portions of the operating system designed
`and provided for reading from storage devices of the iden
`ti?ed type.
`Such a memory device has several useful applications.
`First, it can be used alone as a fast form of storage, having
`both a small latency time and a large transfer rate. Such use
`is Well-suited to video game cartridges, such as those used
`With popular video game console systems. Second, the
`memory device can be incorporated in another device. For
`example, such a memory device containing a driving video
`game may be incorporated in a steering Wheel game con
`troller. As a further example, such a memory device can be
`incorporated in a peripheral device, such as a printer or a
`scanner. Such a memory device may contain a driver for the
`peripheral device. When the serial connection is initialiZed,
`the memory device inaccurately identi?es itself as a hard
`drive, and the peripheral device correctly identi?es itself by
`its peripheral device type. If the correct driver for the
`identi?ed device type is not already available computer
`system, the computer system searches all available storage
`devices, including the memory device of the invention,
`Where it ?nds the correct driver for the peripheral device.
`The computer system can then install this driver, and pro
`ceed to use the neW peripheral device Without requiring the
`correct driver to be provided manually. Instead of the driver
`or in addition to the driver, the memory device may contain
`additional programs, such as application programs that
`utiliZe the peripheral device. By integrating the memory
`device into the additional device, it can be guaranteed that
`the data stored in the memory device is alWays available in
`conjunction With the additional device. Finally, the solid
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`4
`state memory device may be combined With a storage device
`having different characteristics, such as a CD-ROM drive
`With media. Such a combination may be used With applica
`tions that have different retrieval performance requirements
`for different portions of their data. As an example, a game
`may include executable code, Which must be loaded quickly,
`and video data, Which can be loaded more sloWly. In
`accordance With such requirements, the executable code
`could be stored in the faster solid-state memory device,
`While the video data could be stored on the cheaper
`CD-ROM.
`FIG. 1 is a high-level block diagram of the general
`purpose computer system to Which the solid-state memory
`device is preferably connected. The computer system 100, or
`“data processing system,” contains a central processing unit
`(CPU) 110 and a computer memory (memory) 120. The
`computer system 100 is further connected to input/output
`devices, including a storage device 140, such as a hard disk
`drive; a ?oppy drive 150; a CD-ROM drive 160; and an
`additional peripheral device 170 containing the solid-state
`memory device, and optionally a related traditional periph
`eral device. The additional peripheral 170 is preferably
`connected to the computer system 100 by a serial connection
`180, and may share this serial connection With other periph
`eral devices (not shoWn). The memory 130 preferably con
`tains an operating system 130, such as Microsoft® Win
`doWs® 98. The operating system 130, in turn, includes a
`driver 131 for hard drives, and a driver 132 for ?oppy drives,
`Which enable the operating system to access hard drives and
`?oppy drives Without installing additional drivers. The
`memory 120 further preferably contains a driver 121 for
`CD-ROM drives, an application program 122, data 123
`corresponding to the application program, and a utility
`program 124. The memory 120 may also contain additional
`data not shoWn. While the solid-state memory device is
`preferably connected to a computer system con?gured as
`described above, those skilled in the art Will recogniZe that
`it may also be connected to computer systems having
`different con?gurations.
`FIG. 2 is a block diagram shoWing the functional com
`ponents for the additional peripheral shoWn in FIG. 1 for the
`embodiment providing the memory device in conjunction
`With another peripheral. In several embodiments, these
`functional components are all provided in the same case or
`package, such that they are generally inseparable. In these
`embodiments, the functional components generally remain
`in this case or package. The additional peripheral 170
`preferably includes a peripheral function subsystem 210, a
`memory device 220, and a knoWn storage device emulation
`subsystem 230. The peripheral function subsystem is the
`portion of the additional peripheral that provides typical
`peripheral functionality. For example, it may be a CD-ROM
`drive that reads CD-ROMs, a printer that prints documents,
`an optical scanner that reads documents, a modem that
`connects the computer system to another computer system
`via phone lines, a joystick or other game controller that a
`user may use to provide input to an entertainment softWare
`title, a DVD RAM drive that may used to read or Write
`DVDs, etc. The foregoing list is merely illustrative, as the
`peripheral function subsystem can perform the function of
`any traditional peripheral device, Whether noW knoWn or
`later developed.
`A persistent memory device 220 contains data relating to
`the peripheral function subsystem. For example, the memory
`device may contain a driver for the peripheral function
`subsystem. The memory device may further contain any
`other program or programs relating to the peripheral func
`
`7
`
`

`

`US 6,574,588 B1
`
`5
`tion subsystem, such as application or utility programs
`executed in connection With the peripheral function sub
`system. For example, the memory device may contain a
`document scanning application executed in conjunction With
`an optical scanner peripheral function subsystem. As another
`example, the memory device may contain a ?le backup
`utility program executed in conjunction With a sequential
`tape drive. As a further example, the memory device may
`include an entertainment softWare title that uses a game
`controller peripheral function subsystem to provide input for
`the entertainment title. To better facilitate the command
`translation function of the knoWn storage device emulation
`subsystem 230, the driver and other ?les stored in the
`memory device 220 are preferably stored in a manner that is
`similar, if not identical, to the format in Which they Would
`be stored on a hard drive.
`The knoWn storage device emulation subsystem 230
`contains logic that misrepresents the memory device 220 as
`a hard disk drive, or as a device of another type knoWn to the
`operating system. Because the operating system understands
`the memory device 220 to be a hard disk drive, or a device
`of another type knoWn to it, the operating system is not
`prompted to search for and install a driver for the memory
`device—rather it registers the memory device as a hard drive
`or other knoWn device in its drive letter table, and expects
`that it may access the memory device by issuing commands
`Within the command set for a hard drive or other knoWn
`device. If, on the other hand, the knoWn device emulation
`system did not misrepresent the identity of the memory
`device, the operating system Would have to obtain and install
`a special driver in order to read from the memory device.
`When the operating system subsequently receives com
`mands from the hard drive command set, they are inter
`cepted by the knoWn storage device emulation subsystem,
`Which translates them for execution by the memory device.
`Because the memory device is preferably read-only, the
`principal hard drive commands to Which it must respond
`under the control of the knoWn storage device emulation
`subsystem are commands for reading data. These are
`detailed, for example, in the Small Computer System
`Interface-2 (“SCSI-2”) proposed standard, Which is avail
`able from the International Standards OrganiZation under
`Reference No. 9316-1. It Will be appreciated by those skilled
`in the art, hoWever, that any standard for communication
`betWeen a computer system and a hard drive or other device
`knoWn to the operating system may be used to derive the
`hard drive command set to Which the knoWn storage device
`emulation subsystem should respond appropriately. In the
`example of the SCSI-2 standard, the memory device must
`respond to commands to read from the hard drive, such as
`READ(6) (operation code 08h) and READ(10) (operation
`code 28h). In response to these read commands, the memory
`device must locate in the memory device the speci?ed data
`and return it to the operating system. The memory device
`must also respond appropriately to other commands de?ned
`by the standard for hard drives. For instance, in response to
`commands to format the hard drive (e.g., FORMAT UNIT
`(operation code 3Ah)), or to Write to the hard drive (e.g.,
`WRITE(6) (operation code 0Ah)), WRITE(10) (operation
`code 2Ah), WRITE AND VERIFY (operation code 2Eh),
`WRITE BUFFER (operation code 3Bh), WRITE LONG
`(operation code 3Fh), WRITE SAME (operation code 41h),
`the memory device must return an error message to the effect
`that these commands cannot be performed by the memory
`device. The memory device similarly responds to other
`commands de?ned for the hard drive as is appropriate. All
`of these responses are preferably handled by the knoWn
`storage device emulation subsystem 230.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`6
`The memory device 220 is preferably a solid-state silicon
`read-only memory device, but may be implemented using
`other technologies as prevailing device price and perfor
`mance conditions militate. The knoWn storage device emu
`lation subsystem 230 is preferably an application speci?c
`integrated circuit, a programmable logic array, or a micro
`controller or microprocessor coupled With a control ROM.
`Alternative technologies may be substituted as prevailing
`device price and performance conditions militate.
`In one embodiment, the memory device 220 and the
`knoWn storage device emulation subsystem 230 are com
`bined in a device such as an application speci?c integrated
`circuit, a programmable logical array, or a microcontroller or
`a microprocessor coupled With a controller/data ROM.
`FIG. 3 is a How diagram that shoWs the steps preferably
`performed by the operating system in order to utiliZe an
`additional peripheral that includes a peripheral function
`subsystem and an associated driver. While these steps are
`preferably performed during the operating system’s startup
`process, they may also or instead be performed at a later
`time. In step 301, the operating system enumerates the serial
`bus. That is, the operating system requests a report of the
`identities of all the devices connected to the serial bus. While
`such enumeration reporting is Well knoWn to those skilled in
`the art, details of this process may be found, for example, in
`the Universal Serial Bus speci?cation, Revision 1.0, Jan. 15,
`1996, presently available at http://WWW.teleport.com/~USB.
`In response to the enumeration request of step 301, the
`operating system receives a report of the memory device
`220. The report inaccurately indicates that the memory
`device is of the hard drive device type. Alternatively, the
`operating system may receive a report that indicates that the
`memory device is of another device type that can be
`accessed by the operating system Without an additional
`driver, or is “knoWn” to the operating system.
`In step 303, also in response to the enumeration request of
`step 301, the operating system receives a correct report of
`the identity of the peripheral function subsystem. That is,
`Where the peripheral function subsystem is an optical
`scanner, the report received in step 303 indicates that the
`peripheral function subsystem is an optical scanner. In step
`304, because a driver must be found and installed for the
`peripheral function subsystem to make the peripheral func
`tion subsystem usable, the operating system searches all
`available drives for a driver for the peripheral function
`subsystem. This list preferably includes drives such as a
`CD-ROM drive, a ?oppy drive, and hard drives including
`the memory device 220. In step 305, the operating system
`?nds the driver stored in the memory device, loads this
`driver from the memory device, and installs it. FolloWing
`this installation process, the operating system can commu
`nicate With the peripheral function subsystem using the
`driver. For example, in step 306, the operating system
`accesses the peripheral function subsystem using the
`installed driver. These steps then conclude. Thus, the inven
`tion provides a neW peripheral (the peripheral function
`subsystem) that does not require the provision of a separate
`driver.
`In additional embodiments of the invention, rather than
`containing a driver, the memory device 220 contains other
`programs relating to the peripheral function subsystem, such
`as application or utility programs. These programs can be
`loaded from the memory device 220 in a similar manner and
`executed on the CPU 110. Thus, the invention provides a
`peripheral device that integrally provides a program relating
`to the peripheral device.
`The present invention also provides a serial ROM addi
`tional peripheral. This embodiment can be used to store any
`
`8
`
`

`

`US 6,574,588 B1
`
`7
`program that bene?ts from quick retrieval, such as a game
`program. FIG. 4 is a block diagram showing the functional
`components of the additional peripheral shoWn in FIG. 1 for
`the serial ROM embodiment. In this embodiment, the addi
`tional peripheral 170 contains only the memory device 220
`and the knoWn storage device emulation subsystem 230. The
`memory device 220 and the knoWn storage device emulation
`subsystem 230 function together as described above in
`conjunction With FIG. 2, alloWing the operating system to
`quickly retrieve programs stored in the memory device using
`commands in the hard drive command set. These tWo
`functional components may be implemented and combined
`in the manners discussed above in conjunction With FIG. 2.
`In a further embodiment, the invention provides a speed
`heterogeneous storage device. In this embodiment, the solid
`state memory device 220 constitutes a fast storage medium,
`While the peripheral function subsystem 210 constitutes a
`sloWer, loWer cost storage medium, such as a CD-ROM
`drive containing a permanently-installed CD-ROM. Those
`skilled in the art Will appreciate that different medium may
`be readily substituted for the solid-state memory device as
`the fast storage medium and/or the CD-ROM drive as the
`sloWer, loWer-cost storage medium. In this embodiment,
`transfer speed-sensitive data, such as executable code for an
`entertainment title, is stored in the memory device 220.
`Transfer speed-insensitive data, such as playable or stream
`ing multimedia ?les (e.g., video clips) are preferably stored
`in the peripheral function subsystem 210, thereby reducing
`the amount of more expensive solid-state memory required
`in the additional peripheral 170.
`While this invention has been shoWn and described With
`reference to preferred embodiments, it Will be understood by
`those skilled in the art that various changes or modi?cations
`in form and detail may be made Without departing from the
`scope of the invention. For example, instead of comprising
`a traditional peripheral device, the peripheral function sub
`system may comprise devices of other types, such as con
`ventional computer electronics devices, like televisions and
`cellular telephones.
`We claim:
`1. Aperipheral device that provides its oWn driver and that
`is connectable to a computer system, comprising:
`a ?rst subsystem for providing a peripheral device func
`tionality other than a functionality of a storage device;
`a persistent memory device containing a driver that, When
`installed by the computer system, enables the computer
`system to interact With the peripheral device to utiliZe
`peripheral device functionality provided by the ?rst
`subsystem; and
`a second subsystem, different from said ?rst subsystem,
`that emulates a storage device of a type usable by the
`computer system Without further modi?cation and
`enables the computer system to install the driver con
`tained by the persistent memory device to utiliZe
`peripheral device functionality provided by the ?rst
`subsystem.
`2. The peripheral device of claim 1 Wherein the ?rst
`subsystem includes an input device that provides function
`ality for inputting data into the computer system.
`3. The peripheral device of claim 2 Wherein the ?rst
`subsystem includes a joystick.
`4. The peripheral device of claim 2 Wherein the ?rst
`subsystem includes a digital video disk drive.
`5. The peripheral device of claim 1 Wherein the ?rst
`subsystem includes an output device that provides function
`ality for outputting data from the computer system.
`
`10
`
`15
`
`25
`
`35
`
`45
`
`55
`
`65
`
`8
`6. The peripheral device of claim 5 Wherein the ?rst
`subsystem includes a printer.
`7. The peripheral device of claim 1 Wherein the ?rst
`subsystem includes and input/output device that provides
`functionality for inputting data into and outputting data from
`the computer system.
`8. The peripheral device of claim 7 Wherein the ?rst
`subsystem includes a removable cartridge drive.
`9. The peripheral device of claim 7 Wherein the ?rst
`subsystem includes a modem.
`10. The peripheral device of claim 1 Wherein the ?rst
`subsystem includes a consumer electronics device.
`11. The peripheral device of claim 10 Wherein the ?rst
`subsystem comprises a television.
`12. The peripheral device of claim 1 Wherein both the
`persistent memory device and the second subsystem are
`provided in a single application-speci?c integrated circuit.
`13. The peripheral device of claim 1 Wherein the persis
`tent memory device is provided in a solid state read-only
`memory device, and Wherein the second subsystem is pro
`vided in an application speci?c integrated circuit connected
`to the solid state read-only memory device.
`14. A peripheral device that provides its oWn driver and
`that is connectable to a computer system, comprising:
`a ?rst subsystem for providing a ?rst functionali

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