throbber
United States Patent 55
`6,078,541
`Kitagawaet al.
`Jun. 20, 2000
`Date of Patent:
`[45]
`
`Patent Number:
`
`[11]
`
`US006078541A
`
`[54] DEVICE CONTROLLER HAVING VOLATILE
`AND NON-VOLATILE MEMORY FOR
`STORAGE OF DECOMPRESSED AND
`COMPRESSED DATA
`
`.
`
`[75]
`
`OTHER PUBLICATIONS
`Doi, M., et ‘ Developmentof a RotaryHead Digital Audie
`Tape Recorder (R-DAT), Sanyo Technical Review vol. 19
`No. 2, pp. 3-17, Aug. 1997.
`Primary Examiner—Richard Elms
`Inventors: Masayuki Kitagawa, Koji Tsuboi,
`Assistant Examiner—Anh Phung
`both of Irvine, Calif.
`
`
`Att Agent,orFirm—Knobbe Martens Olson & B
`
`[73] Assignee: Mitsumi Electronics Co., Ltd., Japan ELEN SSS
`
`.
`
`[21] Appl. No.: 09/067,706
`
`[57]
`
`ABSTRACT
`
`[22]
`
`Filed:
`
`Apr. 28, 1998
`
`4
`[ST]
`Tint, Ceceeceeseceeenseeneennenneensees GLIC 8/00
`
`[52]
`- 365/230.01; 365/230.08
`[58] Field of Search oe. 365/230.08, 230.01,
`365/185.01, 185.33, 185.08
`.
`References Cited
`U.S. PATENT DOCUMENTS
`
`[56]
`
`§,194,995
`3/1993 Severtson et al. cece 360/48
`5,218,487
`6/1993 Richmond sess
`seeeees 360/27
`
`eeeane <fo0n comston . al serteeteesensee
`conesSatesta
`
`we
`.....
`3530,
`chieve et al.
`.
`
`9/1996 Kojimaet al. cscsssscssssssseeneen 369/60
`5,555,229
`
`w 395/430
`4/1997 Kim etal. ....
`5,623,623
`9/1997 Saliba csecsessssssssseesssesssesesssssesees 395/438
`5,671,389
`
`11/1998 Gotoh wesc
`ceeeeneee 395/712
`5,838,981
`5,850,562 12/1998 Crumpetal. oo. eeeeeeeeee 395/800
`
`A device controller for controlling the operation of the drive
`device. The controller includes a microprocessor, a volatile
`memory, and a non-volatile memory. The non-volatile
`memory stores an uncompressed decompression program
`and a compressed device operating program. The micropro-
`cessor automatically decompresses the device operating
`program by executing the decompression program and
`stores the decompressed device operating program into the
`volatile memory whenthe drive is powered up orreset, The
`microprocessor then executes the device operating program
`stored in the volatile memory which hasa faster data access
`rate than the non-volatile memory. As the device operating
`program is stored in a compressed form, the size of the
`_
`:
`.
`see
`:
`:
`NOR voratile theethy isminimized. theae ene
`HAY als Tecuce ine size Of
`@ non-volatile memory tor
`_—«*Storing data used in a device controller.
`
`37 Claims, 3 Drawing Sheets
`
`
`
`po
`
`cm
`|
`
`—
`
`LO05
`
`
`
`DRIVE
`DEVICE
`105
`
`
`
`HOST
`COMPUTER
`103
`
`
`
`COMPRESSED
`DEVICE
`OPERATING
`PROGRAM
`(OR DIGITAL
`INFORMATION)
`
`
`
`
`
`203
`
`26)
`
`
` DATA BUFFER
`
`
`
`
`
`DECOMPRESSION
`J-277
`DECOMPRESSED
`
`
`DEVICE
`
`LOADER
`
`OPERATING
`PROGRAM
`PROGRAM
`
`
`VOLATILE MEMORY
`
`NetApp
`
`Exhibit1010
`
`Page 1
`
`NetApp Exhibit 1010 Page 1
`
`

`

`HOSTCOMPUTER
`
`Jun. 20, 2000
`
`Sheet 1 of 3
`
`~ a
`
`n
`LJ —!
`L909
`> &
`Lu
`az
`Oo
`oO
`
`U.S. Patent
`
`105
`
`10/7
`
`103
`
`6,078,541
`
`FIG.1
`
`NetApp
`
`Exhibit1010
`
`Page2
`
`NetApp Exhibit 1010 Page 2
`
`

`

`gaSS3udNoo YOSSIIOUdOYSIN
` £0E
` AYOWIW
`4/2NOISSIYdN0930 (NOLLYNYOINI
`ya4ingvivaONILWYdO
`
`
`ONILVY3dOW4qv07
`
`NVY90Udwyo0ud
`IQye
`
`
`
`AYOWIWFILVIOA
`
`FJILVIOA-NON
`
`gaSS3udN003d
`
`L0Z
`
`U.S. Patent
`
`Jun. 20, 2000
`
`Sheet 2 of 3
`
`6,078,541
`
`JAG
`
`JIIAIG
`
`GOl
`
`L0f
`
`JOIAIG
`
`Wvu90ud
`
`WW19IdYO)
`
`LSOH
`
`Y3aLNdNOd
`
`<0l
`
`NetApp
`
`Exhibit1010
`
`Page 3
`
`NetApp Exhibit 1010 Page 3
`
`
`

`

`U.S. Patent
`
`Jun. 20, 2000
`
`Sheet 3 of 3
`
`6,078,541
`
`JO7
`
`
`COMPRESSED
`
`PROGRAM AVAILABLE
`IN NON-VOLATILE
`
`MEMORY
`?
`
`DECOMPRESSION
`
`HOST COMMAND
`RECEIVED
`?
`
`YES
`
`COMPRESSED
`PROGRAM
`RECEIVED
`?
`
`NO
`
` SOS
`
` FROM 379
`- HOST COMMAND
`
`
`
` PROGRAM
`
`
`
`VOLATILE MEMORY
`
`RECEIVED
`?
`
`YES
`
`JIS
`
`COMPRESSED
`
`RECEIVED
`?
`
`ES
`
`J/7
`
`RECEIVE AND
`STORE INTO
`
`JT1
`
`TRANSFER EXECUTION TO
`DRIVE OPERATING PROGRAM
`
`JI19
`
`TRANSFER INTO
`NON—VOLATILE MEMORY
`
`FIG. 3
`
`NetApp
`
`Exhibit1010
`
`Page 4
`
`NetApp Exhibit 1010 Page 4
`
`

`

`6,078,541
`
`1
`DEVICE CONTROLLER HAVING VOLATILE
`AND NON-VOLATILE MEMORY FOR
`STORAGE OF DECOMPRESSED AND
`COMPRESSED DATA
`
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`The present invention relates to a memory system having
`a non-volatile and a volatile memory. More particularly, the
`present invention relates to a memory system that stores a set
`of executable codes in a volatile memory and decompresses
`it into a non-volatile memory for execution.
`2. Description of the Related Technology
`A data storage device, such as a digital audio tape (DAT)
`drive, is composed of a drive device mechanism including
`read/write heads and a device controller for controlling the
`drive device according to instructions from a connected host
`computer such as a personal computer (PC). The device
`controller monitors and controls the operation of the entire
`drive device by running a device operating program. The
`device controller thus generally includes a microprocessor
`for running the program code, a non-volatile memory for
`persistently storing the program code, a volatile memory for
`temporarily storing program code and data, and buslinesto
`allow data communication among the components.
`The non-volatile memory of the device controller stores
`the device operating program and,
`in addition, a loader
`program. A flash memory is an important type of non-
`volatile memory since data stored in a flash memory can be
`rewritten. Thus, by using a flash memory, revisions to the
`device operating program may be updated with the device
`controller.
`
`The volatile memory of the device controller has a buffer
`to temporarily store data whichis to be written to the storage
`device or to be transferred to the host computer. The volatile
`memory also has an area for storing the device operating
`program and data during the execution.
`In DAT drive
`controllers, the volatile memoryis typically implemented by
`a dynamic random access memory (DRAM).
`When power to a data storage device is turned on, the
`microprocessor automatically executes the loader program
`stored in the nonvolatile memory, and copies the device
`operating program from the nonvolatile memory to the
`volatile memory. Then the microprocessor runs the device
`operating program to monitor and control the operation of
`the drive.
`
`Because of the increasing needfor fine controlof the drive
`software, as well as the need for providing greater function-
`ality in operating the drive, device operating programs have
`continued to grow. Naturally, this increase in program size
`requires a larger non-volatile memory to store it. It may,
`however, not be practical
`to use a larger non-volatile
`memory because of the increased product cost. Therefore,
`there is a need to restrict the size of the expensive non-
`volatile memory whichis used for storing programsin a data
`storage device.
`SUMMARY OF THE INVENTION
`
`The aforementioned needsare satisfied by several aspects
`of the present invention.
`The present invention provides a device controller using
`a relatively small size of non-volatile memory for storing
`device operating programs.
`The present invention also provides a memory system
`having a reduced size of a non-volatile memory for storing
`data inevitably used in the system.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`One aspect of the present invention provides a device
`controller for controlling operation of a device. The con-
`troller comprises: a volatile memory; a non-volatile memory
`storing a compressed program; and a microprocessorin data
`communication with the volatile memory and the non-
`volatile memory for executing programs, wherein the micro-
`processor decompresses the compressed program andstores
`the decompressed program into the volatile memory for
`execution.
`
`Anotheraspect of the present invention provides a method
`for executing a compressed program in a device controller
`for controlling a peripheral device connected to a host
`computer through the controller, the controller comprising a
`volatile memory, a non-volatile memory, and a micropro-
`cessor in data communication with the volatile memory and
`the non-volatile memory for executing programs, and the
`non-volatile memory storing an uncompressed decompress-
`ing program. The method comprises: checking automati-
`cally if the compressed program is available in the non-
`volatile memory when the controller is powered up orreset;
`executing the decompression program to decompress the
`compressed program when the compressed program is avail-
`able and storing the decompressed program into the volatile
`memory; and executing the decompressed program.
`A further aspect of the present
`invention provides a
`memory system comprising a volatile memory; a non-
`volatile memory storing compressed electronic information
`and an uncompressed decompression program for decom-
`pressing the compressed electronic information; and a
`microprocessor in data communication with the volatile
`memory and the non-volatile memory for executing
`programs, wherein the microprocessor decompresses the
`compressed electronic information and stores the decom-
`pressed electronic information into the volatile memory for
`use.
`
`These and other features of the present invention will
`become more fully apparent from the following description
`and claims.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`illustrating the
`FIG. 1 is a schematic block diagram,
`interrelation of a device controller of the present invention
`with a host computer and a drive device.
`FIG. 2 is a partial block diagram of the DAT drive,
`illustrating the memory system of a device controller of one
`embodiment of the present invention.
`FIG. 3 is a flowchart, illustrating the loading, storing, and
`updating of a device operating program of one embodiment
`of the present invention.
`DETAILED DESCRIPTION OF THE DRAWINGS
`
`The size of non-volatile memory required to store a
`device operating program is reduced by storing the device
`operating programs in a compressed form as will be
`described below for one embodiment of the present inven-
`tion.
`
`Referring to FIG. 1, a device controller 101 of the present
`invention permits a host computer 103 to communicate data
`to and from a drive device 105. The device controller 101
`monitors and controls the entire operation of the drive
`device 105 by running a device operating program whichis
`stored in a non-volatile memoryof the device controller 101
`in a compressed form. The device controller 101 receives
`instructions from the host computer 103 to operate the
`device drive 105. The device controller 101 also communi-
`cates the status of the drive device 105 with the host
`
`computer 103.
`
`NetApp
`
`Exhibit1010
`
`Page5
`
`NetApp Exhibit 1010 Page 5
`
`

`

`6,078,541
`
`3
`The device controller 101 may be a controller for any
`peripheral device of a host computer 103. The device
`controller 101 may,for instance, be a controller for a storage
`device of a host computer 103, such as a controller for a
`DAT drive. The host computer 103 may be any general
`purpose computer such as an IBM compatible or Apple
`Macintosh personal computer, a workstation available from
`Sun Microsystems, Inc., IBM, Hewlett Packard, or Silicon
`Graphics,
`Inc., a minicomputer available from Digital
`Equipment Corporation, or a mainframe available from
`IBM. The host computer 103 may also be a special purpose
`computer. The device controller 101 may be connected to
`the host computer 103 through one of the extended slots in
`the host computer 103. The device controller 101 also may
`be integrated into a single package with the drive device
`105.
`FIG. 2 shows one embodiment of a DAT drive controller
`which comprises a non-volatile memory 201, a volatile
`memory 203, and a microprocessor 205. A bus line 207
`interconnects the non-volatile memory 201,
`the volatile
`memory 203, and the microprocessor 205. The bus line 207
`mayalso electrically connect the device controller 101 to the
`host computer 103 and the drive device 105 either directly
`or indirectly via the use of other integrated circuits.
`The non-volatile memory 201 stores a loader program
`209, a decompression program 211, and a device operating
`program 213. The non-volatile memory 201 may be
`writable, so that future revisions of programs may be stored
`in the device controller. The writable non-volatile memory
`may be a flash memory,electrically erasable programmable
`read only memory (EEPROM), any magnetically recordable
`media, or an internal writable ROM of a microprocessor.In
`one embodiment,
`the writable non-volatile memory is
`advantageously a flash memory. A flash memory such as
`Am29F200S available from Advanced Micro DevicesInc.,
`and M29F200B available from SGS-Thomson Microelec-
`tronics could be utilized. The device operating program 213
`is stored in a compressed form so that
`the size of the
`non-volatile memory 201 is minimized. The loader program
`209 and the decompressing program 211, on the other hand,
`are stored in an uncompressed form so that the micropro-
`cessor 205 may run them as is, without decompression.
`The volatile memory 203, which may be a DRAM,an
`SRAM oran internal RAM of a microprocessor, functions as
`a main memoryfor storing an executable copy of the device
`operating program 215, 1.¢., the copy created after decom-
`pression of the compressed device operating program 213.
`The volatile memory 203 thus stores the decompressed
`device operating program 215 and data generated duringits
`execution. The volatile memory 203 has a buffer 217 for
`buffering data transfer between the drive device 105 and the
`host computer 103. Examples of the volatile memory 203
`are HM5118116OBJ available from Hitachi Co., Ltd.,
`TCS5118165CJ available from Toshiba Corporation, and
`uPD421816OLEavailable from NEC Co., Ltd. The volatile
`memory 203 will typically have a higher data access rate
`than the non-volatile memory 201 since the program is
`fetched and executed from the volatile memory 203 rather
`than the non-volatile memory 201. For example, the access
`cycle time of Am29F200S, non-volatile memory, and
`HM51181160BJ, volatile memory, are respectively 120 ns
`and 60 ns.
`
`The microprocessor 205 is required to run the loader
`program 209 and the decompression program 211 stored in
`the non-volatile memory 201 and the decompressed device
`operating program 215 which is stored in the volatile
`memory 203 after running the decompression program 211.
`
`4
`The microprocessor 205 may be any conventional general
`purpose or single-chip or multi-chip processor such as
`HD6417604SF28 available from Hitachi Co., Ltd.,
`uPD703001GC-25-7EA available from NEC Co., Ltd., and
`MC68331 and MC68332 from Motorola Inc.
`
`The compressed device operating program 213 is com-
`pressed in a format which the decompression program 211
`can decompress. Any conventional compression/
`decompression algorithms, such as Lempel-Ziv, Lempel-
`Ziv-Huffman, and Lempel-Ziv-Welch, could be utilized. In
`one embodiment, a Lempel-Ziv algorithm is advantageously
`used in the compression/decompression. As the decompres-
`sion program 211, GZIP available from GZIP Organization
`(http://www.gzip.org) run by Free Software Foundation Inc.
`and PKZIPavailable from Pkware Inc. are examples.
`The compressed device operating program 213 may be a
`self-executing file which can be decompressed and executed
`without
`the decompression program 211.
`If the device
`operating program 213 is compressed in a self-executable
`format, the decompression program 211 is not required and
`the size of the non-volatile memory 201 can be reduced. Any
`conventional self-executable format can be utilized.
`
`Whenthe device controller 101 is powered up orreset, the
`instructions of the loader program 209 are fetched and
`executed by the microprocessor 205. At some point, control
`is passed from the loader program 209 to the decompression
`program 211. Then, the compressed device operating pro-
`gram 213 is decompressed by the execution of the decom-
`pression program 211 under the control of the loader pro-
`gram 209. As the decompression proceeds,
`the
`decompressed device operating program 215 is stored a
`fragment at a time into the volatile memory 203. At some
`point, control passes to the decompressed device operating
`program stored in the volatile memory. The decompressed
`device operating program 215 is fetched and run by the
`microprocessor 205 to monitor and control the operation of
`the drive device 105. For example,
`the device operating
`program 215 controls the data read/write, data transfer
`between the host computer 103 and the drive device 105,
`data search, drum rotation, tape movement by rotating the
`capstan, or tape positioning in accordance with instructions
`from the host computer 103. The operation of one embodi-
`ment of the present invention will be discussed below in
`reference to FIG. 3.
`
`FIG. 3 showsan operational flowchart for the control of
`receiving, updating, and decompressing the compressed
`device operating program 213 by the loader program 209 in
`one embodiment of the present invention.
`When the drive device 105 is powered on, the micropro-
`cessor 205 automatically fetches the loader program 209
`from the non-volatile memory 201 and starts to run the
`loader program 209 at a state 301. The loader program 209,
`at a state 303, checks whether the compressed device
`operating program 213 is available in the non-volatile
`memory 201 or not. If the compressed device operating
`program 213 is stored in the non-volatile memory 201, the
`loader program 209 fetches the decompression program 211
`from the non-volatile memory 201 and executesit to decom-
`press the compressed device operating program 213 at a
`state 305. As the decompression program 211 decompresses
`the compressed device operating program 213, the micro-
`processor 205 stores the decompressed program into an area
`of the volatile memory 203 reserved for the decompressed
`device operating program 215. When the decompression is
`completed, the microprocessor 205 is ready to execute the
`decompressed device operating program 215 to operate the
`drive device 105 according to instructions from the host
`computer 103.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`NetApp
`
`Exhibit1010
`
`Page6é
`
`NetApp Exhibit 1010 Page 6
`
`

`

`6,078,541
`
`5
`At a state 307, the loader program waits for an instruction
`from the host computer 103 for a specific command function
`such as read or write data from or onto a magnetic tape
`loaded in the drive device 105, position a specified location
`on the tape, search a specific data, or read a specified size of
`data. When a commandis received from the host computer
`103, the loader program 209 checksif the host command is
`to download a compressed device operating program at a
`state 309. If the host command is not
`to download a
`compressed program, the loader program 209 transfers the
`execution to the device operating program at a state 311. The
`device operating program 215 then decodes the instruction
`from the host computer 311 and starts to control the opera-
`tion of the drive device 105.
`
`If the compressed device operating program 213 is not
`found in the non-volatile memory 201 at the state 303, the
`loader program 209 waits for a compressed device operating
`program 213 from the host computer 103 at a state 313.
`When a command comes from the host computer 103, it is
`determined whether or not a compressed program is
`received at a state 315. If the received instruction is the
`compressed device operating program, the loader program
`209 proceeds to the state 317. Otherwise, the loader program
`209 goes back to the state 313 to wait on a command from
`the host computer 103.
`When the received command is determined to be a
`compressed device operating program 213 at either of the
`states 309 or 315, the compressed program 213 is received
`and stored into the non-volatile memory 201.
`In one
`embodiment, the compressed program 213 is received and
`temporarily stored in the data buffer 217 of the volatile
`memory 203 first at a state 317, and it is transferred,at a state
`319, to the non-volatile memory 201after the entire program
`has been received. This is because receiving the program by
`using the faster volatile memory 203 reduces the time that
`the host computer 205 is busy with the transfer process.
`When the transfer of the compressed device operating
`program 213 is completed at
`the state 319,
`the loader
`program 209 goesto the state 305 to decompress the newly
`received program 213. The compressed device operating
`program 213 is decompressed, and the loader program 209
`continues the flow from there as described above.
`
`A comparison can be made of memory sizes, space
`occupancies, and costs of non-volatile memory required in
`a DAT drive controller of one embodiment of the present
`invention and the prior art. Assumethat the device operating
`program 213 is initially 611 kB. The device operating
`program 213 is compressed by using GZIP.COM which
`utilizes Lempel-Ziv algorithm, which reducesthe size of the
`program to 221 kb. Provided that the sizes of the decom-
`pression program 211 and the loader program 209 are 2 kb
`and 12 kb, respectively. 235 kb (22142412)ofthetotal size
`of the programs requires one 256 kb flash memory as the
`non-volatile memory 201 which occupies 1x(0.6x1.1)
`square inches on a printed circuit board of a DAT drive and
`costs about U.S. $10 in today’s prices. On the other hand, the
`611 kb of non-compressed device operating program and a
`12 kb of loader require three 256 kb flash memories which
`occupy 3x(0.6x1.1) square inches on a printed circuit board
`of a DATdrive and costs about U.S. $30.
`
`invention stores the
`One embodiment of the present
`device operating program in the non-volatile memory in a
`compressed form. This reduces the memory size of the
`non-volatile memory required to persistently store the drive
`operating program as well as reducing the space occupancy
`of the non-volatile memory in a printed circuit board.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`45
`
`50
`
`55
`
`60
`
`65
`
`6
`Additionally, since the device operating program is stored in
`a compressed form,
`it
`takes less time to download the
`program from the host computer in this embodimentof the
`present invention than a device controller storing the pro-
`gram in an uncompressed form.
`Another embodiment of the present invention is directed
`to a memory system for storing electronic information in a
`compressed form and for decompressing the electronic
`information for use. FIG. 2 also shows another embodiment
`of the present invention as a memory system which com-
`prises a non-volatile memory 201, a volatile memory 203, a
`microprocessor 205, and a bus line 207. In this embodiment,
`the bus line 207 is not necessarily connected to the host
`computer 103 or drive device 105.
`The non-volatile memory 201 stores a loader program
`209, a decompression program 211, and digital information
`213. The term “digital information” may include any data or
`program code which can be stored in a digital form. The
`loader program 209 and the decompression program 211 are
`stored in an uncompressed form, so that the microprocessor
`205 can retrieve them without decompression. The digital
`information 213 is stored in a compressed form to minimize
`the memory size of the non-volatile memory 201. The
`microprocessor automatically executes the loader program
`209 to control the operation of the memory system whenthe
`power is turned on. The loader program 209 runs the
`decompression program 211 to decompress the compressed
`digital information 213 and store the decompressed digital
`information 213 into the volatile memory 203. The digital
`information 213 may include programsto be executed by the
`microprocessor 205 and data to be used during the execution
`of the programs.
`The non-volatile memory 201 may further store a com-
`pression program (not shown) in an uncompressed form.
`The microprocessor 205 executes the compression program
`whenthe programsordata stored in the volatile memory 203
`are updated and need to be persistently stored into the
`non-volatile memory 201. Thus, in such an embodiment, the
`non-volatile memory 201 is writable. However, the non-
`volatile memory 201 need not be a writable memory when
`there is no need to recompress digital information and save
`it.
`
`The non-volatile memory 201 may be a magnetic storage
`device such as a magnetic disk and a magnetic tape, a solid
`state storage device such as a flash memory, a ROM,a
`PROM,an EEPROM,an FRAM,aninternal writable ROM
`of a microprocessor, and an optical storage device such as a
`CD-ROM,
`a CD-ROM-Recordable (CD-R), and a
`CD-Recordable and Writable (CD-RW). The volatile
`memory 203 functions as a main memory as discussed
`above. Examples of the volatile memory 203 are a DRAM,
`an SRAM,andan internal RAM of a microprocessor. It is
`preferable that the volatile memory 203 has a faster data
`access rate than the non-volatile memory 201 since the
`program is retrieved from the volatile memory 203 rather
`than the non-volatile memory 201. As to the microprocessor
`205, any conventional general purpose, single-chip or multi-
`chip processor, may be utilized as mentioned above.
`This embodiment of the present
`invention provides a
`memory system storing data and/or programs in the non-
`volatile 201 in a compressed form and using the data and/or
`programsafter the microprocessor 205 decompresses them
`by executing the decompression program 211. The memory
`system may store a compression program in the non-volatile
`memory 201. The microprocessor 205 executes the com-
`pression program when data and/or program of the non-
`
`NetApp
`
`Exhibit1010
`
`Page7
`
`NetApp Exhibit 1010 Page 7
`
`

`

`6,078,541
`
`7
`volatile memory 201 has been modified and needs to be
`persistently stored.
`Although the above described embodiments use the
`decompression and/or compression algorithm in a form of a
`program, such algorithms may be implemented in an inte-
`grated circuit. Advantageously,
`the integrated circuit for
`decompressing compressed digital information and/or com-
`pressing uncompressed digital information is the micropro-
`cessor 205.
`
`Although the present invention has been described in
`terms of embodiments, other embodiments will become
`apparent to those of ordinary skill in the art, in view of the
`disclosure herein. Accordingly, the present invention is not
`intended to be limited by the recitation of the embodiments,
`but is instead intended to be defined solely by reference to
`the appended claims.
`What is claimedis:
`1. A device controller for controlling operation of a
`peripheral device connected to a host computer, the control-
`ler comprising:
`a volatile memory;
`a non-volatile memory storing a compressed program;
`and
`
`a microprocessor in data communication with the volatile
`memory and the non-volatile memory for executing
`programs, wherein the microprocessor decompresses
`the compressed program and stores the decompressed
`program into the volatile memory for execution and
`wherein the device controller connects the peripheral
`device to the host computer, and the compressed pro-
`gram comprises a device operating program for con-
`trolling operation of the peripheral device.
`2. The controller as defined in claim 1, wherein the
`volatile memory has a faster data access rate than the
`non-volatile memory.
`3. The controller as defined in claim 1,
`volatile memory comprises a DRAM.
`4. The controller as defined in claim 1,
`non-volatile memory comprises a writable
`memory.
`5. The controller as defined in claim 4, wherein the
`writable non-volatile memory comprises a flash memory.
`6. The controller as defined in claim 4, wherein the
`compressed program stored in the non-volatile memory can
`be updated by overwriting the compressed program with a
`new compressed program received from the host computer
`connected to the controller.
`
`wherein the
`non-volatile
`
`wherein the
`
`7, The controller as defined in claim 6, wherein the new
`program is compressed at
`the host computer,
`the new
`compressed program is temporarily stored in the volatile
`memory until being written to the non-volatile memory.
`8. The controller as defined in claim 6, wherein the
`non-volatile memory further stores a compression program
`for compressing digital information in an uncompressed
`form so that the microprocessor can execute the compres-
`sion program without decompression, and wherein the
`microprocessor executes the compression program to com-
`press the new program and stores the new compressed
`program into the non-volatile memory.
`9. The controller as defined in claim 6, further comprising
`an integrated circuit for compressing digital information,
`wherein the integrated circuit compresses the new program
`and stores the new compressed program into the non-volatile
`memory.
`10. The controller as defined in claim 9, wherein the
`integrated circuit comprises the microprocessor.
`
`8
`11. The controller as defined in claim 1, wherein the
`non-volatile memory further stores a decompression pro-
`gram for decompressing compressed digital information in
`an uncompressed form so that
`the microprocessor can
`execute the decompression program without decompression,
`and the microprocessor executes the decompression pro-
`gram to decompress the compressed device operating pro-
`gram and to store the decompressed program into the
`volatile memory when the controller is powered up orreset.
`12. The controller as defined in claim 11, wherein the
`microprocessor executes the device operating program when
`the decompression is completed.
`13. The controller as defined in claim 1, wherein the
`microprocessor executes the device operating program when
`the controller receives a command for operation of the
`peripheral device from the host computer.
`14. The controller as defined in claim 1, wherein the
`peripheral device is a data storage drive.
`15. The controller as defined in claim 14, wherein the data
`storage device is DAT drive.
`16. The controller as defined in claim 10, wherein the
`non-volatile memory comprises a writable non-volatile
`memory, and wherein the decompression program in the
`non-volatile memory can be updated by overwriting the
`decompression program with a new decompression program
`received from a host computer connected to the controller.
`17. The controller as defined in claim 1, wherein the
`non-volatile memory comprises an internal RAM of the
`microprocessor.
`18. The controller as defined in claim 1, wherein the
`volatile memory comprises an internal ROM ofthe micro-
`processor.
`19. The controller as defined in claim 1, further compris-
`ing an integrated circuit for decompressing compressed
`digital information, wherein the integrated circuit decom-
`presses the compressed device operating program and stores
`the decompressed program into the volatile memory when
`the controller is powered up orreset.
`20. A method for executing a compressed program in a
`device controller for controlling a peripheral device con-
`nected to a host computer through the controller, the method
`comprising:
`checking automatically if a compressed device operating
`program is available in a non-volatile memory of the
`device controller when the controller is powered up or
`reset;
`executing an uncompressed decompression program
`stored in the non-volatile memory to decompress the
`compressed device operating program when the com-
`pressed device operating program is available and
`storing a decompressed device operating program into
`a volatile memory of the device controller; and
`executing the decompressed device operating program to
`control the peripheral device.
`21. The method as defined in claim 20, wherein the
`peripheral device is a data storage drive.
`22. The method as defined in claim 21, wherein the data
`storage drive is a DATdrive.
`23. The method as defined in claim 21, wherein the
`compressed program is a device operating program for
`controlling operation of the peripheral device.
`24. The method as defined in claim 21, wherein the
`non-volatile memory is a writable non-volatile memory.
`25. The method as defined in claim 24, wherein if the
`compressed program is not available in the non-volatile
`memory the controller receives a compressed program from
`the host computer before executing the decompression pro-
`gram.
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`NetApp
`
`Exhibit1010
`
`Page8&
`
`NetApp Exhibit 1010 Page 8
`
`

`

`6,078,541
`
`9
`26. The method as defined in claim 25, wherein the
`microprocessor temporarily stores the compressed program
`in the volatile memory while the controller receives the
`compressed program, and the microprocessor transfers the
`compressed program into the non-volatile memory whenthe
`controller completes receiving the compressed program.
`27. A memory system for a peripheral device of a host
`computer, the memory system comprising:
`a volatile memory;
`a non-volatile memory comprising a first section storing
`compressed digital information and a second section
`storing an uncompressed decompression program for
`decompressing the compressed digital information; and
`a microprocessor in data communication with the volatile
`memory and the non-volatile memory for executing
`programs, wherein the microprocessoris configured to
`decompress the compressed digital information to sto

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