WO1996010790A1 - Intelligent peripheral controller - Google Patents
Intelligent peripheral controller Download PDFInfo
- Publication number
- WO1996010790A1 WO1996010790A1 PCT/US1995/011965 US9511965W WO9610790A1 WO 1996010790 A1 WO1996010790 A1 WO 1996010790A1 US 9511965 W US9511965 W US 9511965W WO 9610790 A1 WO9610790 A1 WO 9610790A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- algorithm
- peripheral device
- data
- host computer
- executing
- Prior art date
Links
- 230000002093 peripheral effect Effects 0.000 title claims abstract description 183
- 238000006243 chemical reaction Methods 0.000 claims abstract description 70
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000012937 correction Methods 0.000 claims abstract description 24
- 238000013144 data compression Methods 0.000 claims abstract description 13
- 238000000034 method Methods 0.000 claims description 94
- 230000015654 memory Effects 0.000 claims description 36
- 230000006837 decompression Effects 0.000 claims description 22
- 238000007906 compression Methods 0.000 claims description 12
- 230000006835 compression Effects 0.000 claims description 12
- 238000012544 monitoring process Methods 0.000 claims description 12
- 238000001514 detection method Methods 0.000 claims description 11
- 238000012546 transfer Methods 0.000 claims description 8
- 230000000694 effects Effects 0.000 abstract description 3
- 230000008569 process Effects 0.000 description 26
- 239000000872 buffer Substances 0.000 description 21
- 230000006870 function Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 4
- 238000005096 rolling process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- LMDZBCPBFSXMTL-UHFFFAOYSA-N 1-ethyl-3-(3-dimethylaminopropyl)carbodiimide Chemical compound CCN=C=NCCCN(C)C LMDZBCPBFSXMTL-UHFFFAOYSA-N 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 2
- 229910052710 silicon Inorganic materials 0.000 description 2
- 239000010703 silicon Substances 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000036316 preload Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0682—Tape device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
Definitions
- the invention relates in general to an intelligent peripheral controller which stores algorithms which are normally executed by a host computer.
- the invention is further related to a peripheral controller which both stores and executes algorithms which are conventionally executed by the host computer. Discussion of the Background
- Common disk drive controllers and peripheral controllers in general are fairly unintelligent, do not perform functions without being commanded by a host computer and require constant attention by the computer in order to control the peripheral device.
- the functions performed within the host computer to control the peripheral device frequently prevent the host computer from performing other tasks and therefore, a user of the computer must wait until the function being performed within the peripheral device is completed before the computer is available to execute other commands.
- a computer formats a disk within a disk drive, the computer cannot be used until the formatting process is completed. While formatting a floppy disk may take only several minutes, formatting a hard disk, optical disk, or back-up tape may take up to several hours.
- peripheral devices are typically created for use with only one type of computer such as an IBM compatible computer, Macintosh computer, a computer running UNIX, or computers using other operating systems.
- peripheral controller and/or peripheral such as a disk or tape drive which may be used with a plurality of different types of computers. It is a further object of the invention to provide a peripheral controller and/or peripheral device which contains a utility stored therein which is loaded into the host computer.
- a peripheral controller for use with a peripheral device such as a disk drive or tape drive which includes a selection device for setting the peripheral device to operate with any of a plurality of computers and operating systems such as an IBM compatible computer running a Microsoft compatible disk operating system such as MS-DOS or PC DOS, or OS/2, a Macintosh computer, a UNIX computer, a SCITEX computer, etc.
- the peripheral device includes one or more utility programs stored in a nonvolatile memory which upon initialization by the host computer is transferred from the peripheral device to the host computer.
- the host computer then executes the transferred utility. While this embodiment does not free-up the processing resources of the host computer, it eliminates the need to have the utility software pre-loaded into each host computer which is to be used with the peripheral.
- the utilities include one or more of a compression/ decompression algorithm, a conversion algorithm which converts a file from an IBM compatible DOS format to a Macintosh format, an utility which automatically performs disk error correction, an utility which maintains a secondary file allocation table or other vital disk information such as disk structure, file structure, or directory structure off of the disk, or an automatic file back-up utility.
- the peripheral device includes processing circuitry which performs the functions of the above-described utilities using a microprocessor which executes the utility stored in the nonvolatile memory or by using special purpose hardware.
- the processing circuit of the alternative embodiment may execute a utility algorithm which performs a formatting of a storage media within the peripheral device.
- the peripheral device in this variation will be a disk drive or tape drive, for example and will format a disk or tape independent of the host computer, thus allowing the host computer to perform other tasks while the peripheral device is formatting the storage media.
- Figure 1 illustrates a flowchart of a prior art process for accessing a disk drive by a Macintosh computer
- Figure 2 is a hardware diagram of the present invention in which a utility stored within the disk drive assembly is uploaded to the host computer;
- Figure 3 is a process for initializing a disk drive and uploading a utility within the peripheral device to the host computer;
- Figure 4 is a hardware diagram of a disk drive assembly containing a utility which is executed within the disk drive assembly instead of the host computer;
- Figure 5 is a flowchart illustrating a process for automatically performing an error monitoring and correction process
- Figure 6 is a flowchart illustrating a stand-alone formatting procedure.
- the host computer pulls or retrieves the disk driver which is located on the disk into the memory of the Mac in step 12.
- the host computer then "mounts" the disk and the disk can be written to or read.
- the term “mounts” is a term of art which means that the disk drive has been initialized and recognized by a host computer and therefore can be utilized.
- the host computer pulls or reads the disk driver from the disk.
- the first embodiment of the invention operates by intercepting the instructions sent to read the disk driver and instead of transmitting only the disk driver to the host computer, a utility algorithm stored in a nonvolatile memory off of the disk is transmitted in addition to the disk driver (if the disk driver exists) .
- This allows for an automatic and convenient way to load software into the host computer without the need for a user to manually preload the utility software in each host computer which is to be utilized with the disk drive.
- the peripheral devices used with the invention such as a disk drive or tape drive have a primary purpose of storing information on a medium such as a disk or tape, within the drives and are defined to be storage peripheral devices.
- the disk or tape is the primary storage media of the disk drive and the nonvolatile memory storing the utility algorithms is not considered to be the primary storage media of the peripheral device.
- the utility algorithm is different from the operating system which executes within the host computer.
- FIG. 2 illustrates a first hardware embodiment of the present invention.
- a host computer 250 is connected to a disk drive assembly 200.
- a host computer is defined to be any type of computer which connects to a peripheral device such as the disk drive assembly 200.
- the disk drive assembly 200 contains a SCSI controller board 202, a user input/output device 204, a drive controller board 206, and a disk 208.
- the host computer 250 communicates with the disk drive assembly 200 by exchanging SCSI data with the SCSI controller board 202.
- the user input/output device 204 is any device for inputting commands to the disk drive assembly including a dip switch, a rotary switch having a plurality of settings, a keypad, a keyboard, a pointing device such as a mouse or any other type of device through which a user of the disk drive assembly makes various selections or enters commands.
- the commands which the user inputs depend on the features of the peripheral device and the utility algorithm(s) stored within the peripheral device.
- the user may select an emulation of the disk drive assembly (e.g. , whether the disk drive assembly is to operate the disk inside as a Macintosh disk, an IBM disk, etc.).
- the host computer will have the ability to begin, suspend, and modify the operation of the utility.
- the algorithm is executed within the disk drive assembly
- the user will be able to begin, suspend, and modify the execution of the utility using the user input/output device 204 or the host computer.
- the output which is provided by the user input/output device 204 in any of the embodiments of the invention includes a visual output such as illumination of an LED to indicate a status of the disk drive assembly, or a more sophisticated display such as a liquid crystal display which provides the user with a simple indication or more advanced alpha-numeric information regarding the state of the disk drive assembly.
- the input/output device will include an audio output device if the user desires an audible indication of the status of the disk drive and/or a process executing therein. For example, a speaker may beep when a formatting process is complete, in addition to a visual output provided by the device 204 indicating that the formatting is complete.
- the SCSI controller board 202 is connected to the host computer 250 through a SCSI cable having the appropriate connectors for attachment to the host computer and disk drive assembly. The SCSI controller board 202 controls the high level operations of the disk drive assembly while the drive controller board controls the low level tasks.
- the low level tasks controlled by the drive controller board 206 pertain to the physical operation of the disk drive including positioning of the head, and commands to read or write from the disk such as the power of a laser reading/writing the optical disk, for example.
- Other commands which do not directly pertain to the rudimentary control and positioning of the disk heads, disk speed, etc. are considered high level commands and are processed by the SCSI controller board 202.
- the SCSI controller board 202 contains a process controller 210 which oversees control of the disk drive assembly.
- the process controller 210 is connected to and controls the elements on the SCSI controller board 202.
- Incoming data from the host computer 250 and outgoing data to the host computer 250 pass through the SCSI protocol controller 218.
- Controller 218 separates the SCSI protocol data which essentially defines the format and handshaking protocols from the other useful data used by the disk drive assembly.
- a buffer controller 220 controls the movement of data within the SCSI controller board to and from the host computer 250 and the disk 208.
- the buffer controller 220 directs incoming data from buffer A 226 while previously stored data in buffer B 228 is forwarded to a rolling buffer 222.
- incoming data from the host computer 250 is directed by the buffer controller 220 to buffer B 228 while buffer A 226 transfers data therein to rolling buffer 222.
- the rolling buffer 222 contains two or three buffers.
- the data sent to the rolling buffer 222 is stored in one of the buffers thereof and transferred or monitored by the error detection and correction/error correction code (“EDAC/ECC”) device 216 which detects any errors and corrects them as necessary.
- EDAC/ECC error detection and correction/error correction code
- ESDI/PC The enhanced SCSI device interface protocol controller
- Nonvolatile memory 212 is a memory device such as a ROM, flash memory, EPROM, EEPROM, CMOS RAM with a battery back-up, or any other type of nonvolatile memory which stores information.
- nonvolatile memory 212 is a memory which is writable to a plurality of times, the nonvolatile memory 212 is easily updated with new versions of the algorithms without physically substituting memory chips constituting the nonvolatile memory 212.
- the nonvolatile memory 212 stores firmware which is the logic for controlling the operation of the SCSI controller board 202 in addition to utility algorithms.
- the nonvolatile memory 212 is illustrated as one element but a variation of the invention has physically separate memories storing the firmware and the utility algorithms.
- a utility or utility algorithm is any program used to enhance the operation of a computer.
- the utility within the nonvolatile memory 212 is transferred to the host computer through the process controller 210, buffer controller 220, and SCSI protocol controller 218.
- the utility is stored on the disk instead of the nonvolatile memory 212.
- a secondary file allocation table 214 which is any of the nonvolatile memories discussed with respect to the nonvolatile memory 212 is used to store a back-up copy of the file allocation table structure of the disk 208. While the secondary file allocation table 214 which is commonly used with IBM PCs and compatibles has been illustrated in the drawings, the invention is not limited to IBM PCs or "file allocation tables". Therefore, the secondary file allocation table 214 may be a back-up of vital areas of the disk such as information stored on the disk describing the disk structure, file structure, directory structure, or any other features of the disk or storage device or files stored thereon.
- a file allocation table contains the status of sectors on a disk and indicates whether a sector is free or used by a file. If an error should occur in the file allocation table or other vital information stored on disk 208, the information from the secondary file allocation table 214 is transferred to the disk 208 so that the data corresponding to the bad portions of the file allocation table or other vital information of the disk 208 is not lost.
- power is supplied to each of the elements illustrated in Figure 2 in a conventional manner using either a battery, an alternating current source, or any other type of power source.
- Figure 3 illustrates a process of the first embodiment of the invention in which a utility stored within the disk drive is uploaded to the host computer for execution by the host computer in order to eliminate a manual loading and/or running of the utility by a user.
- the user selects the desired settings for the disk device to determine the operating parameters through the user input/output deice 204.
- Exemplary parameters which are selected by the user include the type of computer which is being used with the disk drive (e.g., Mac, IBM, a Silicon Graphics computer, Sun workstation, etc.), and parameters pertaining to the execution of the utility algorithm such as whether or not functions such as data compression, data format conversion, automated data back-up including file back-up, file allocation table back-up or other vital areas of the disk back-up, or general error checking and correction is to be performed within the disk drive.
- the desired settings are selected through commands input to the host computer except for the type of computer which is being used with the disk drive which is either set on the disk drive or automatically detected by the disk drive.
- the specifications of peripheral devices which are to be used with specific types of computers are publicly available and the setting of the user input/output device causes the disk drive device to operate according to the required parameters of the selected type of computer.
- the parameters for each of the computers which are usable with the disk drive are stored within the disk drive and utilized in order to achieve proper control and communication between the host computer and disk drive.
- Data conversion algorithms also referred to as format conversion algorithms, are known and also publicly available.
- the data conversion algorithm converts files from one operating system format to another format. For example, a data file for use in an IBM compatible computer is converted and transferred for use with another type of computer such as a Macintosh and vice versa.
- Commercially available programs which may be utilized by the present invention to perform data conversion from one computer format to another are MAC-IN-DOS by Pacific Micro which converts files from a Macintosh format to an IBM PC format, Soft Windows by Insignia which converts files from an IBM PC format to a Macintosh format, and Transfer Pro by
- file conversion In addition to file conversion between formats of different operating systems, file conversion also takes place for files which are used with different brands of application programs. For example, word processing, spreadsheet, database, or graphics data files are converted from one format to another by the present invention.
- An exemplary program which converts graphical files from one format to another such as TIFF to PICT, for example, is "HiJack PRO" from Inset Systems.
- Most commercially available advanced word processing programs, database programs, and spreadsheet programs also have the ability to convert data files which are native to the particular application to data files which are used in a competitor's format.
- the automated error monitoring and correction feature of the invention performs automatic monitoring of the disk in general and corrects errors as they occur.
- a specific implementation of the automated error monitoring and correcting includes backing-up the file allocation table/structure of the disk or other vital areas of the disk into the secondary file allocation table 214.
- An additional algorithm which is executed by the invention is an automated back-up program which makes a back-up copy of files on any storage media connected to the host computer to any other storage media of the host computer.
- the automated back-up algorithm is any program which performs data or file back-up.
- Known and publicly available file back-up programs include Central Point Back ⁇ up by Central Point Software or by a program such as Dantz Disk Fit.
- Other types of general error detection and correction algorithms which may be utilized with the present invention are included in MAC Tools or PC Tools from Central Point Software.
- the firmware within the SCSI drive causes the process controller 210 to intercept the read command from the process controller and transfers one or more of the utilities stored in nonvolatile memory 212 such as the compression and/or conversion and/or automated error detection including the secondary file allocation table or other vital areas of the disk back-up algorithm and/or the automated file back-up algorithms from the nonvolatile memory 212 to the host computer.
- Step 308 then reads the disk driver, if it exists, and transmits the disk driver to the host computer.
- Step 310 determines the disk type such as whether the disk is compressed, the operating system which created the disk, and other features relating to the disk.
- the host computer then mounts the disk as described above and the disk can then be written to or read in step 312.
- the host computer has the algorithm necessary to perform any of the functions such as data compression, data format conversion, automatic disk error correction, automatic updating of the secondary file allocation table/disk structure or other vital areas of the disk, and automatic file back-up procedures.
- the user of the computer now may interact with menus or enter commands pertaining to the above-described algorithms in order to selectively engage, disable, or configure the algorithms which have been downloaded from the disk drive to the host computer. This interaction with the utility algorithms is performed by either the user input/output device 204 or the host computer 250.
- the first embodiment of the invention discussed with respect to Figures 2 and 3 in which the algorithm is downloaded from the peripheral device to the host computer is particularly applicable to Macintosh computers and IBM compatible computers implementing the soon to be available Plug-and-Play system.
- the first embodiment is not limited to these computers but can be applied to any type of computer.
- the operation of the host computers will have to be modified but modifying the host computer to retrieve and execute an algorithm stored within a peripheral device is within the knowledge of one of ordinary skill in the art.
- the present invention also contemplates a second embodiment which executes the algorithm directly within the disk drive assembly, thus eliminating the need to download the algorithm and freeing up the processor of the host computer to perform other tasks instead of executing the utility algorithm. Additionally, executing a utility algorithm within the peripheral device instead of by the host computer does not require the algorithm to be executed by different microprocessors running different types of operating systems. This will simplify the requirements for the algorithm when the peripheral device is to be used with different types of computers, as compared to the first embodiment, as the algorithm will only execute on one type of processor or processing circuitry which is located within the peripheral device.
- the hardware diagram illustrated in Figure 4 which is utilized with the second embodiment is the same as the hardware diagram of Figure 2 except that processing circuitry 230 is inserted between the buffer controller 220 and buffers A and B, 226 and 228 respectively.
- the processing circuitry 230 is a general purpose microprocessor which executes any of the above- described utility algorithms which are stored in the nonvolatile memory 212.
- the processing circuity is a general purpose microprocessor, the microprocessor will require a memory for execution of the algorithm such as a random access memory. This memory is conveniently buffer A 226 or buffer B 228.
- the processing circuitry has its own random access memory.
- the processing circuitry instead of the processing circuitry including a general purpose microprocessor which executes a utility algorithm stored within the nonvolatile memory 212, the processing circuitry is special purpose circuitry constructed to execute the functions of the desired utility algorithm(s) .
- the user input/output device would receive commands or settings from the user in order to determine which algorithm and the parameters of the algorithm stored in nonvolatile memory 212 is to be executed.
- the size of the buffers A and B or random access memory used by the processing circuitry will constrain the power and efficiency of the algorithms performed by the processing circuitry 230. For this reason, when it desired to increase the efficiency or capabilities of the processing circuitry and cost is not an overriding factor, it will be desired to increase the size of the random access memory used by the processing circuitry 230.
- the specific structure of the disk drive assembly is not limited to the illustration of Figure 4 but any type of circuitry within a peripheral device may be utilized as long as the circuitry is capable of executing the desired algorithm, thus freeing up the host processor 250 to perform other tasks.
- the nonvolatile memory 212 and/or processing circuitry 230 will be contained on a device which is easily connectable to and removable from the disk drive and contained on a plug-in device such as a PCMCIA card.
- a variation of the invention includes the host computer controlling the execution of the algorithms by providing start commands, stop commands, and controlling the various parameters of the algorithms.
- Figure 5 illustrates a flowchart used for general purpose error correction within the disk drive including the use of the secondary file allocation table.
- This process is executable on the hardware of the embodiments of Figures 2 or 4 (either of the first or second embodiments) .
- Step 510 copies the file allocation table, disk structure information, or other vital areas of the disk, from the disk to the secondary file allocation table.
- the copying process will be performed every time the disk is written to, every predetermined time period regardless of disk activity, every time a specific amount of data is written to the disk, every time a predetermined time period expires during which the disk is written to, every time the file allocation or disk structure or any other vital areas of the disk are changed or updated, or upon any other desired conditions.
- Step 512 monitors the disk for the occurrence of errors on the disk or in the disk drive assembly.
- step 514 automatically corrects the disk error by copying the secondary file allocation table/disk structure to the disk, if necessary, or by performing any other known type of disk error correction process such as those contained within MAC Tools or PC Tools.
- Figure 6 illustrates a process for stand-alone formatting of a disk without constant assistance/ intervention by the host computer. This formatting process is applicable to any type of disk or tape or any other storage media which requires a formatting process. As the formatting function requires processing hardware within the disk drive assembly, the formatting algorithm will only be applicable to the second embodiment. However, if the first embodiment is modified to include processing circuitry, the stand-alone formatting is equally applicable to this modified first embodiment.
- step 610 the desired format of the disk is determined which is accomplished by reading a setting from the user input/output device 204. Variations to this step include determining the desired format by defaulting to the operating system format being used by the host computer, receiving commands from the host computer which specify the desired format, or determining the desired format in any other manner.
- Step 612 formats the disk using a formatting algorithm and process controller or processing circuitry within the disk drive assembly.
- the formatting algorithm is stored in the nonvolatile memory 212.
- the formatting algorithm is contained in the processing circuitry 230, or transferred from the host computer to the disk drive assembly.
- the command to begin the formatting process originates from the user input/output device 204.
- the formatting begin command is received from the host computer.
- the formatting procedure occurs within the disk drive assembly without the need for the host computer to constantly control the formatting process by executing the formatting utility algorithm using the processing circuitry 230.
- the formatting performed is any type of formatting of any type of storage media and includes a low-level formatting, also referred to as a hard or physical formatting which writes the appropriate information to the disk including sector addresses, sync bytes, gap bytes, and any other desired or needed information into a preamble section of each sector of the disk, and a high level or logical formatting.
- step 614 informs the user that the formatting is complete using a visual and/or audible indication either by the user input/output device 204 or the host computer 250.
Abstract
An intelligent controller (202) of a peripheral device such as a disk drive which stores utility algorithms (212). In a first embodiment, the utility algorithms are transferred from the peripheral device to a host computer (250) in order to eliminate the need to have utility software pre-loaded into the computer. In a second embodiment, the algorithm stored within the peripheral device is executed by processing circuitry within the peripheral device in order to free the host computer to perform other tasks as the utility is being executed by the peripheral device. Exemplary utilities which may be executed by the peripheral device include data compression, data format conversion, automatic disk error correction, back-up of the disk's file allocation table or other vital disk or file information into a secondary file allocation table (214) within the peripheral device, automatic file back-up or any other desired utility. A variation of the second embodiment performs stand-alone formatting of a disk to free up a host computer to perform other activities.
Description
TITLE OF THE INVENTION
INTELLIGENT PERIPHERAL CONTROLLER
BACKGROUND OF THE INVENTION Field of the invention
The invention relates in general to an intelligent peripheral controller which stores algorithms which are normally executed by a host computer. The invention is further related to a peripheral controller which both stores and executes algorithms which are conventionally executed by the host computer. Discussion of the Background
Common disk drive controllers and peripheral controllers in general are fairly unintelligent, do not perform functions without being commanded by a host computer and require constant attention by the computer in order to control the peripheral device. The functions performed within the host computer to control the peripheral device frequently prevent the host computer from performing other tasks and therefore, a user of the computer must wait until the function being performed within the peripheral device is completed before the computer is available to execute other commands. For example, when a computer formats a disk within a disk drive, the computer cannot be used until the formatting process is completed. While formatting a floppy disk may
take only several minutes, formatting a hard disk, optical disk, or back-up tape may take up to several hours.
When external peripheral devices such as an external tape drive or disk drive are transferred between different computers, software needed to access the peripheral may need to be installed in each computer which uses the peripheral. For example, a disk drive using a disk which has compressed data would need to have the compression/decompression algorithm stored within each computer which is to be connected to the disk drive.
Additionally, peripheral devices are typically created for use with only one type of computer such as an IBM compatible computer, Macintosh computer, a computer running UNIX, or computers using other operating systems. SUMMARY OF THE INVENTION
Accordingly, it is an object of the invention to provide a novel and useful peripheral controller and/or peripheral such as a disk or tape drive which may be used with a plurality of different types of computers. It is a further object of the invention to provide a peripheral controller and/or peripheral device which contains a utility stored therein which is loaded into the host computer.
It is a further object of this invention to provide a peripheral controller and/or peripheral device which
executes a utility program stored therein, thus freeing the host computer to perform other activities.
These and other objects are accomplished by a peripheral controller for use with a peripheral device such as a disk drive or tape drive which includes a selection device for setting the peripheral device to operate with any of a plurality of computers and operating systems such as an IBM compatible computer running a Microsoft compatible disk operating system such as MS-DOS or PC DOS, or OS/2, a Macintosh computer, a UNIX computer, a SCITEX computer, etc.
In one embodiment, the peripheral device includes one or more utility programs stored in a nonvolatile memory which upon initialization by the host computer is transferred from the peripheral device to the host computer. The host computer then executes the transferred utility. While this embodiment does not free-up the processing resources of the host computer, it eliminates the need to have the utility software pre-loaded into each host computer which is to be used with the peripheral. The utilities include one or more of a compression/ decompression algorithm, a conversion algorithm which converts a file from an IBM compatible DOS format to a Macintosh format, an utility which automatically performs disk error correction, an utility which maintains a secondary file allocation table or other vital disk
information such as disk structure, file structure, or directory structure off of the disk, or an automatic file back-up utility.
In an alternative to the embodiment in which any of the above utilities are only stored within the peripheral device and transferred to the host computer, the peripheral device includes processing circuitry which performs the functions of the above-described utilities using a microprocessor which executes the utility stored in the nonvolatile memory or by using special purpose hardware. In addition to processing any of the above-described utilities, the processing circuit of the alternative embodiment may execute a utility algorithm which performs a formatting of a storage media within the peripheral device. The peripheral device in this variation will be a disk drive or tape drive, for example and will format a disk or tape independent of the host computer, thus allowing the host computer to perform other tasks while the peripheral device is formatting the storage media. BRIEF DESCRIPTION OF THE DRAWINGS
A more complete appreciation of the invention and many of the attendant advantages thereof will be readily obtained as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, wherein:
Figure 1 illustrates a flowchart of a prior art process for accessing a disk drive by a Macintosh computer;
Figure 2 is a hardware diagram of the present invention in which a utility stored within the disk drive assembly is uploaded to the host computer;
Figure 3 is a process for initializing a disk drive and uploading a utility within the peripheral device to the host computer;
Figure 4 is a hardware diagram of a disk drive assembly containing a utility which is executed within the disk drive assembly instead of the host computer;
Figure 5 is a flowchart illustrating a process for automatically performing an error monitoring and correction process; and Figure 6 is a flowchart illustrating a stand-alone formatting procedure.
DESCRIPTION OF THE PREFERRED EMBODIMENTS Referring now to the drawings, wherein like reference numerals designate identical or corresponding parts throughout the several views, and more particularly to Figure l thereof, there is illustrated a flowchart of a process for initializing a conventional disk drive. The process illustrated in Figure 1 is performed in a Macintosh computer when a disk drive of the Mac is initialized. Once the initialization process begins, the host computer reads
the disk structure of the disk within disk drive in step 10. The disk structure is usually stored on an initial portion of the disk which is usually the inner-most portion of the disk or the outer-most portion of the disk, depending on the requirements of the computer system.
The host computer pulls or retrieves the disk driver which is located on the disk into the memory of the Mac in step 12. In step 14, the host computer then "mounts" the disk and the disk can be written to or read. The term "mounts" is a term of art which means that the disk drive has been initialized and recognized by a host computer and therefore can be utilized.
In step 12 of Figure 1, the host computer pulls or reads the disk driver from the disk. The first embodiment of the invention operates by intercepting the instructions sent to read the disk driver and instead of transmitting only the disk driver to the host computer, a utility algorithm stored in a nonvolatile memory off of the disk is transmitted in addition to the disk driver (if the disk driver exists) . This allows for an automatic and convenient way to load software into the host computer without the need for a user to manually preload the utility software in each host computer which is to be utilized with the disk drive. The peripheral devices used with the invention, such as a disk drive or tape drive have a primary purpose of storing information on a medium such as
a disk or tape, within the drives and are defined to be storage peripheral devices. The disk or tape is the primary storage media of the disk drive and the nonvolatile memory storing the utility algorithms is not considered to be the primary storage media of the peripheral device. The utility algorithm is different from the operating system which executes within the host computer.
It is to be noted that some of the drawings and descriptions of the invention refer to a SCSI ("Small Computer Systems Interface") disk drive and the described mounting procedure of the disk drive commonly pertains to a Macintosh computer. However, the teachings of the invention are applicable to any type of computer in addition to a Macintosh such as an IBM compatible computer running any type of operating system including a Microsoft compatible DOS, Microsoft Windows, OS/2, or UNIX, or any other computer running any operating system. The invention is also not limited to a particular type of peripheral device but is applicable to any type of peripheral device, whether internal or external to the host computer, including a tape drive, a hard disk, a removable hard disk, a floppy disk, an optical disk, a magneto-optical disk, etc.
Figure 2 illustrates a first hardware embodiment of the present invention. A host computer 250 is connected to a disk drive assembly 200. A host computer is defined to
be any type of computer which connects to a peripheral device such as the disk drive assembly 200. The disk drive assembly 200 contains a SCSI controller board 202, a user input/output device 204, a drive controller board 206, and a disk 208. The host computer 250 communicates with the disk drive assembly 200 by exchanging SCSI data with the SCSI controller board 202.
The user input/output device 204 is any device for inputting commands to the disk drive assembly including a dip switch, a rotary switch having a plurality of settings, a keypad, a keyboard, a pointing device such as a mouse or any other type of device through which a user of the disk drive assembly makes various selections or enters commands. The commands which the user inputs depend on the features of the peripheral device and the utility algorithm(s) stored within the peripheral device. In a variation of the invention, the user may select an emulation of the disk drive assembly (e.g. , whether the disk drive assembly is to operate the disk inside as a Macintosh disk, an IBM disk, etc.). If the algorithm is transferred to and executed by the host computer, the host computer will have the ability to begin, suspend, and modify the operation of the utility. In the second embodiment in which the algorithm is executed within the disk drive assembly, the user will be able to begin, suspend, and modify the execution of the utility using the user input/output device 204 or the host
computer. The output which is provided by the user input/output device 204 in any of the embodiments of the invention includes a visual output such as illumination of an LED to indicate a status of the disk drive assembly, or a more sophisticated display such as a liquid crystal display which provides the user with a simple indication or more advanced alpha-numeric information regarding the state of the disk drive assembly. The input/output device will include an audio output device if the user desires an audible indication of the status of the disk drive and/or a process executing therein. For example, a speaker may beep when a formatting process is complete, in addition to a visual output provided by the device 204 indicating that the formatting is complete. The SCSI controller board 202 is connected to the host computer 250 through a SCSI cable having the appropriate connectors for attachment to the host computer and disk drive assembly. The SCSI controller board 202 controls the high level operations of the disk drive assembly while the drive controller board controls the low level tasks. The low level tasks controlled by the drive controller board 206 pertain to the physical operation of the disk drive including positioning of the head, and commands to read or write from the disk such as the power of a laser reading/writing the optical disk, for example. Other commands which do not directly pertain to the rudimentary
control and positioning of the disk heads, disk speed, etc. , are considered high level commands and are processed by the SCSI controller board 202.
The SCSI controller board 202 contains a process controller 210 which oversees control of the disk drive assembly. The process controller 210 is connected to and controls the elements on the SCSI controller board 202. Incoming data from the host computer 250 and outgoing data to the host computer 250 pass through the SCSI protocol controller 218. Controller 218 separates the SCSI protocol data which essentially defines the format and handshaking protocols from the other useful data used by the disk drive assembly. A buffer controller 220 controls the movement of data within the SCSI controller board to and from the host computer 250 and the disk 208. The buffer controller 220 directs incoming data from buffer A 226 while previously stored data in buffer B 228 is forwarded to a rolling buffer 222. After buffer B 228 is empty, incoming data from the host computer 250 is directed by the buffer controller 220 to buffer B 228 while buffer A 226 transfers data therein to rolling buffer 222. The rolling buffer 222 contains two or three buffers. The data sent to the rolling buffer 222 is stored in one of the buffers thereof and transferred or monitored by the error detection and correction/error correction code ("EDAC/ECC") device 216 which detects any errors and corrects them as necessary.
The enhanced SCSI device interface protocol controller ("ESDI/PC") changes the format of data from the SCSI controller board to be compatible with the drive controller board and vice versa. Commands which are issued to the drive controller board relate to primitive disk commands such as head movement and head read/write status and the drive controller board 206 processes primitive disk commands to perform reading to and writing from the disk 208. Nonvolatile memory 212 is a memory device such as a ROM, flash memory, EPROM, EEPROM, CMOS RAM with a battery back-up, or any other type of nonvolatile memory which stores information. When nonvolatile memory 212 is a memory which is writable to a plurality of times, the nonvolatile memory 212 is easily updated with new versions of the algorithms without physically substituting memory chips constituting the nonvolatile memory 212. The nonvolatile memory 212 stores firmware which is the logic for controlling the operation of the SCSI controller board 202 in addition to utility algorithms. The nonvolatile memory 212 is illustrated as one element but a variation of the invention has physically separate memories storing the firmware and the utility algorithms. A utility or utility algorithm is any program used to enhance the operation of a computer. Upon initialization in the first embodiment of the invention, the utility within the nonvolatile memory
212 is transferred to the host computer through the process controller 210, buffer controller 220, and SCSI protocol controller 218. As a variation to storing the utility in the nonvolatile memory 212, the utility is stored on the disk instead of the nonvolatile memory 212.
When the utility algorithm detects and corrects disk errors, a secondary file allocation table 214 which is any of the nonvolatile memories discussed with respect to the nonvolatile memory 212 is used to store a back-up copy of the file allocation table structure of the disk 208. While the secondary file allocation table 214 which is commonly used with IBM PCs and compatibles has been illustrated in the drawings, the invention is not limited to IBM PCs or "file allocation tables". Therefore, the secondary file allocation table 214 may be a back-up of vital areas of the disk such as information stored on the disk describing the disk structure, file structure, directory structure, or any other features of the disk or storage device or files stored thereon. In order to restore the secondary file allocation table or any other backed-up vital area back to the disk, the user is queried to determine if it is desired to overwrite the vital area on the disk. If the answer is affirmative, the secondary or back-up information stored in the nonvolatile memory 212 is written to the disk. In an IBM PC, a file allocation table contains the status of sectors on a disk and indicates whether a sector
is free or used by a file. If an error should occur in the file allocation table or other vital information stored on disk 208, the information from the secondary file allocation table 214 is transferred to the disk 208 so that the data corresponding to the bad portions of the file allocation table or other vital information of the disk 208 is not lost.
In the present invention, power is supplied to each of the elements illustrated in Figure 2 in a conventional manner using either a battery, an alternating current source, or any other type of power source.
Figure 3 illustrates a process of the first embodiment of the invention in which a utility stored within the disk drive is uploaded to the host computer for execution by the host computer in order to eliminate a manual loading and/or running of the utility by a user. After starting, in step 302 the user selects the desired settings for the disk device to determine the operating parameters through the user input/output deice 204. Exemplary parameters which are selected by the user include the type of computer which is being used with the disk drive (e.g., Mac, IBM, a Silicon Graphics computer, Sun workstation, etc.), and parameters pertaining to the execution of the utility algorithm such as whether or not functions such as data compression, data format conversion, automated data back-up including file back-up, file allocation table back-up or
other vital areas of the disk back-up, or general error checking and correction is to be performed within the disk drive. As a variation of the manner of inputting parameters, the desired settings are selected through commands input to the host computer except for the type of computer which is being used with the disk drive which is either set on the disk drive or automatically detected by the disk drive.
The specifications of peripheral devices which are to be used with specific types of computers are publicly available and the setting of the user input/output device causes the disk drive device to operate according to the required parameters of the selected type of computer. The parameters for each of the computers which are usable with the disk drive are stored within the disk drive and utilized in order to achieve proper control and communication between the host computer and disk drive.
A description of the various types of algorithms which are utilized by the present invention including data compression algorithms, data conversion algorithms, error correction algorithms, and file-backup algorithms will now be discussed.
Various types of data compression algorithms which allow data to be stored using less storage space are known and publicly available. For example, the program Stacker by Stack Electronics and Double Space for IBM compatible
computers contain exemplary compression algorithms which are used by the present invention.
Data conversion algorithms, also referred to as format conversion algorithms, are known and also publicly available. The data conversion algorithm converts files from one operating system format to another format. For example, a data file for use in an IBM compatible computer is converted and transferred for use with another type of computer such as a Macintosh and vice versa. Commercially available programs which may be utilized by the present invention to perform data conversion from one computer format to another are MAC-IN-DOS by Pacific Micro which converts files from a Macintosh format to an IBM PC format, Soft Windows by Insignia which converts files from an IBM PC format to a Macintosh format, and Transfer Pro by
Digital Instrumentation Technology, Inc. which converts files between various formats such as SUN, Silicon Graphics, Hewlett Packard and OS/2.
In addition to file conversion between formats of different operating systems, file conversion also takes place for files which are used with different brands of application programs. For example, word processing, spreadsheet, database, or graphics data files are converted from one format to another by the present invention. An exemplary program which converts graphical files from one format to another such as TIFF to PICT, for example, is
"HiJack PRO" from Inset Systems. Most commercially available advanced word processing programs, database programs, and spreadsheet programs also have the ability to convert data files which are native to the particular application to data files which are used in a competitor's format.
The automated error monitoring and correction feature of the invention performs automatic monitoring of the disk in general and corrects errors as they occur. A specific implementation of the automated error monitoring and correcting includes backing-up the file allocation table/structure of the disk or other vital areas of the disk into the secondary file allocation table 214.
An additional algorithm which is executed by the invention is an automated back-up program which makes a back-up copy of files on any storage media connected to the host computer to any other storage media of the host computer. The automated back-up algorithm is any program which performs data or file back-up. Known and publicly available file back-up programs include Central Point Back¬ up by Central Point Software or by a program such as Dantz Disk Fit. Other types of general error detection and correction algorithms which may be utilized with the present invention are included in MAC Tools or PC Tools from Central Point Software.
Turning back to the flowchart in Figure 3, after the user selects the desired settings in step 302, the host computer sends a command to the disk drive assembly 200 to read the disk structure. The firmware within the SCSI drive causes the process controller 210 to intercept the read command from the process controller and transfers one or more of the utilities stored in nonvolatile memory 212 such as the compression and/or conversion and/or automated error detection including the secondary file allocation table or other vital areas of the disk back-up algorithm and/or the automated file back-up algorithms from the nonvolatile memory 212 to the host computer. Step 308 then reads the disk driver, if it exists, and transmits the disk driver to the host computer. Step 310 determines the disk type such as whether the disk is compressed, the operating system which created the disk, and other features relating to the disk. The host computer then mounts the disk as described above and the disk can then be written to or read in step 312. At this point, the host computer has the algorithm necessary to perform any of the functions such as data compression, data format conversion, automatic disk error correction, automatic updating of the secondary file allocation table/disk structure or other vital areas of the disk, and automatic file back-up procedures. The user of the computer now may interact with menus or enter commands
pertaining to the above-described algorithms in order to selectively engage, disable, or configure the algorithms which have been downloaded from the disk drive to the host computer. This interaction with the utility algorithms is performed by either the user input/output device 204 or the host computer 250.
The first embodiment of the invention discussed with respect to Figures 2 and 3 in which the algorithm is downloaded from the peripheral device to the host computer is particularly applicable to Macintosh computers and IBM compatible computers implementing the soon to be available Plug-and-Play system. However, the first embodiment is not limited to these computers but can be applied to any type of computer. Depending upon the type of host computer used with the peripheral device, the operation of the host computers will have to be modified but modifying the host computer to retrieve and execute an algorithm stored within a peripheral device is within the knowledge of one of ordinary skill in the art. As an alternative to downloading an algorithm to the personal computer from the disk drive assembly, the present invention also contemplates a second embodiment which executes the algorithm directly within the disk drive assembly, thus eliminating the need to download the algorithm and freeing up the processor of the host computer to perform other tasks instead of executing the utility
algorithm. Additionally, executing a utility algorithm within the peripheral device instead of by the host computer does not require the algorithm to be executed by different microprocessors running different types of operating systems. This will simplify the requirements for the algorithm when the peripheral device is to be used with different types of computers, as compared to the first embodiment, as the algorithm will only execute on one type of processor or processing circuitry which is located within the peripheral device.
The hardware diagram illustrated in Figure 4 which is utilized with the second embodiment is the same as the hardware diagram of Figure 2 except that processing circuitry 230 is inserted between the buffer controller 220 and buffers A and B, 226 and 228 respectively. In a first variation of the second embodiment, the processing circuitry 230 is a general purpose microprocessor which executes any of the above- described utility algorithms which are stored in the nonvolatile memory 212. When the processing circuity is a general purpose microprocessor, the microprocessor will require a memory for execution of the algorithm such as a random access memory. This memory is conveniently buffer A 226 or buffer B 228. As an alternative or in addition to using the buffers 226 and 228 with the microprocessor, the processing circuitry has its own random access memory. As a second variation of the
second embodiment, instead of the processing circuitry including a general purpose microprocessor which executes a utility algorithm stored within the nonvolatile memory 212, the processing circuitry is special purpose circuitry constructed to execute the functions of the desired utility algorithm(s) .
As described with respect to Figure 3, when the algorithm is executed by the processing circuitry 230 in Figure 4, the user input/output device would receive commands or settings from the user in order to determine which algorithm and the parameters of the algorithm stored in nonvolatile memory 212 is to be executed. The size of the buffers A and B or random access memory used by the processing circuitry will constrain the power and efficiency of the algorithms performed by the processing circuitry 230. For this reason, when it desired to increase the efficiency or capabilities of the processing circuitry and cost is not an overriding factor, it will be desired to increase the size of the random access memory used by the processing circuitry 230.
The specific structure of the disk drive assembly is not limited to the illustration of Figure 4 but any type of circuitry within a peripheral device may be utilized as long as the circuitry is capable of executing the desired algorithm, thus freeing up the host processor 250 to perform other tasks. When flexibility is a desired feature
for the functions of the disk drive assembly, the nonvolatile memory 212 and/or processing circuitry 230 will be contained on a device which is easily connectable to and removable from the disk drive and contained on a plug-in device such as a PCMCIA card. Even though the algorithms described with respect to Figure 4 are described as running within the disk drive assembly, a variation of the invention includes the host computer controlling the execution of the algorithms by providing start commands, stop commands, and controlling the various parameters of the algorithms.
Figure 5 illustrates a flowchart used for general purpose error correction within the disk drive including the use of the secondary file allocation table. This process is executable on the hardware of the embodiments of Figures 2 or 4 (either of the first or second embodiments) . Step 510 copies the file allocation table, disk structure information, or other vital areas of the disk, from the disk to the secondary file allocation table. Depending on desired features of the invention, the copying process will be performed every time the disk is written to, every predetermined time period regardless of disk activity, every time a specific amount of data is written to the disk, every time a predetermined time period expires during which the disk is written to, every time the file allocation or disk structure or any other vital areas of
the disk are changed or updated, or upon any other desired conditions. Step 512 monitors the disk for the occurrence of errors on the disk or in the disk drive assembly. When an error is detected in step 512, step 514 automatically corrects the disk error by copying the secondary file allocation table/disk structure to the disk, if necessary, or by performing any other known type of disk error correction process such as those contained within MAC Tools or PC Tools. Figure 6 illustrates a process for stand-alone formatting of a disk without constant assistance/ intervention by the host computer. This formatting process is applicable to any type of disk or tape or any other storage media which requires a formatting process. As the formatting function requires processing hardware within the disk drive assembly, the formatting algorithm will only be applicable to the second embodiment. However, if the first embodiment is modified to include processing circuitry, the stand-alone formatting is equally applicable to this modified first embodiment.
Turning now to the specific steps illustrated in Figure 6, in step 610, the desired format of the disk is determined which is accomplished by reading a setting from the user input/output device 204. Variations to this step include determining the desired format by defaulting to the operating system format being used by the host computer,
receiving commands from the host computer which specify the desired format, or determining the desired format in any other manner. Step 612 formats the disk using a formatting algorithm and process controller or processing circuitry within the disk drive assembly. The formatting algorithm is stored in the nonvolatile memory 212. As alternative variations, the formatting algorithm is contained in the processing circuitry 230, or transferred from the host computer to the disk drive assembly. The command to begin the formatting process originates from the user input/output device 204. As an alternate variation, the formatting begin command is received from the host computer. However, the formatting procedure occurs within the disk drive assembly without the need for the host computer to constantly control the formatting process by executing the formatting utility algorithm using the processing circuitry 230.
The formatting performed is any type of formatting of any type of storage media and includes a low-level formatting, also referred to as a hard or physical formatting which writes the appropriate information to the disk including sector addresses, sync bytes, gap bytes, and any other desired or needed information into a preamble section of each sector of the disk, and a high level or logical formatting. After the formatting in step 612 is complete, step 614 informs the user that the formatting is
complete using a visual and/or audible indication either by the user input/output device 204 or the host computer 250.
Obviously, numerous modifications and variations of the present invention are possible in light of the above teachings. It is therefore to be understood that, within the scope of the appended claims, the invention may be practiced otherwise than as specifically described herein. Further, the teachings of the invention are applicable to any type of computer system, peripheral device, operating system, or desired utility to be performed by the peripheral device.
Claims
1. A method for communicating between a peripheral device and a host computer, comprising the steps of: transferring a utility algorithm stored within the peripheral device in a memory other than a primary storage media of the peripheral device to the host computer; transferring data which is different from the utility algorithm from the primary storage media of the peripheral device to the host computer; and executing the utility algorithm and processing the data by the host computer.
2. A method according to claim 1, further comprising the step of: determining a type of the host computer; wherein said transferring steps transfer the utility algorithm and the data from the peripheral device to the host computer in a format which is compatible with the determined type of the host computer.
3. A method according to claim 2, wherein said step of determining the type of the host computer comprises: evaluating a state of an input device on the peripheral device.
4. A method according to claim 1, wherein said step of transferring the data comprises:
transferring the data from one of a disk and a tape which is the primary storage media to the host computer.
5. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring a data decompression algorithm; and said executing step comprises: executing the data decompression algorithm on the data transferred from the primary storage media.
6. A method according to claim 5, wherein said step of transferring a utility algorithm comprises: transferring a data compression and decompression algorithm; said method further comprising the steps of: executing the data compression algorithm on data within the host computer; and transmitting the data compressed by the host computer to the primary storage media of the peripheral device.
7. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring a data conversion algorithm; and said executing step comprises: executing the data conversion algorithm on the data transferred from the primary storage media.
8. A method according to claim 7, wherein said step of transferring a utility algorithm comprises:
transferring a data conversion algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing step comprises: executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
9. A method according to claim 7, wherein said step of transferring a utility algorithm comprises: transferring a data conversion algorithm for converting data from a first format used by a application program to a second format used by a second application program; and said executing step comprises: executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
10. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring an error detecting and correction algorithm; and said executing step comprises: executing the error detection and correction algorithm on the data transferred from the primary storage media and
monitoring and correcting any errors on the transferred data.
11. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring an error detecting and correction algorithm; and said method further comprises the steps of: storing, on the primary media, vital information including at least one of a structure of the primary media, a file structure of the primary media, and a directory structure of the primary media, which is used to access the primary media of the peripheral device; storing a second copy of said vital information within said peripheral device and off of said primary media; wherein and said executing step comprises: monitoring errors occurring within said vital information on the primary media and copying at least a portion of the second copy of said vital information to the primary media when an error within the primary media is monitored.
12. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring a data back-up algorithm; and said executing step comprises: executing the data back-up algorithm to back-up files used by the host computer.
13. A method according to claim 1, further comprising the step of: receiving user input commands for controlling operation of the utility algorithm.
14. A method according to claim 13, wherein said step of receiving user input commands comprises: receiving user input commands from an input device on said peripheral device.
15. A method according to claim 13, wherein said step of receiving user input commands comprises: receiving user input commands from an input device on said host computer.
16. A method of controlling a storage peripheral device connected to a host computer, comprising the steps of: storing a data conversion utility algorithm within the storage peripheral device; providing said peripheral device with an execution means for executing the utility algorithm; executing, by the execution means, said stored utility algorithm.
17. A method according to claim 16, further comprising the steps of: determining a type of the host computer;
transferring data from a storage media of the storage peripheral device to the host computer in a format which is compatible with the determined type of the host computer.
18. A method according to claim 17, wherein said step of determining the type of the host computer comprises: evaluating a state of an input device on the peripheral device.
19. A method according to claim 16, further comprising the step of: transferring data from a primary storage media of the storage peripheral device which is one of a tape and disk.
20. A method according to claim 16, wherein said storing step comprises: storing a data decompression and compression algorithm; and said executing step comprises: executing the data decompression and compression algorithm on the data transferred from the primary storage media.
21. A method according to claim 16, wherein said storing step comprises: storing a data conversion utility algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing step comprises:
executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format.
22. A method according to claim 16, wherein said storing step comprises: storing a data conversion utility algorithm for converting data from a first format used by a first application program to a second format used by a second application program; and said executing step comprises: executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format.
23. A method according to claim 16, wherein said storing step comprises: storing said utility algorithm in a primary storage media of said storage peripheral device.
24. A method according to claim 16, wherein said storing step comprises: storing said utility algorithm in firmware of said storage peripheral device which is other than a primary storage media of said storage peripheral device.
25. A method of controlling a disk drive connected to a host computer, comprising the steps of:
storing a vital information error detection utility algorithm wherein vital information is at least one of a structure of a disk within the disk drive, a file structure of the disk, and a directory structure of the disk, which is used to access the disk; storing, on the disk, said vital information every time data is written to said disk; periodically storing a second copy of said vital information within said disk drive in a nonvolatile memory which is other than the disk; executing the stored vital information error detecting utility algorithm which monitors errors in said vital information stored on the disk and copies at least a portion of the second copy of said vital information into the vital information on the disk when an error is monitored.
26. A method for formatting a storage media within a peripheral device which is connected to a host computer, comprising the steps of: receiving, by the peripheral device, a command to perform media formatting; reading a formatting algorithm stored within the peripheral device; and formatting the media using the algorithm stored within the peripheral device;
wherein after said formatting step is begun, formatting of said media is performed without receiving commands from the host computer.
27. A method according to claim 26, wherein said step of receiving the command comprises: receiving the command from an input device on the peripheral device.
28. A method according to claim 26, wherein said step of receiving the command comprises: receiving the command from an input device on the host computer.
29. A method according to claim 26, wherein said formatting step comprises: formatting one of a disk and a tape.
30. A method according to claim 26, further comprising the step of: transferring the formatting algorithm from the host computer to the peripheral device before said reading step.
31. A system for communicating between a peripheral device and a host computer, comprising: a primary storage media within the peripheral device; a storage means within the peripheral device which is other than the primary storage media of the peripheral device for storing a utility algorithm; first means for transferring the utility algorithm stored within the storage means to the host computer;
second means for transferring data which is different from the utility algorithm from the primary storage media to the host computer; and means, disposed within the host computer, for executing the transferred utility algorithm and processing the transferred data.
32. A system according to claim 31, further comprising: means for determining a type of the host computer; wherein said first and second transferring means transfer the utility algorithm and the data from the peripheral device to the host computer in a format which is compatible with the determined type of the host computer.
33. A system according to claim 32, wherein said means for determining the type of the host computer comprises: an input device on the peripheral device.
34. A system according to claim 31, wherein said primary storage media is one of a disk and a tape.
35. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring a data decompression algorithm; and said executing means comprises: means for executing the data decompression algorithm on the data transferred from the primary storage media.
36. A system according to claim 35, wherein said first means for transferring a utility algorithm comprises: means for transferring a data compression and decompression algorithm; said system further comprising: means for executing the data compression algorithm on data within the host computer; and means for transmitting the data compressed by the host computer to the primary storage media of the peripheral device.
37. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring a data conversion algorithm; and said executing means comprises: means for executing the data conversion algorithm on the data transferred from the primary storage media.
38. A system according to claim 37, wherein said first means for transferring a utility algorithm comprises: means for transferring a data conversion algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing means comprises:
eans for executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
39. A system according to claim 37, wherein said first means for transferring a utility algorithm comprises: means for transferring a data conversion algorithm for converting data from a first format used by a application program to a second format used by a second application program; and said executing means comprises: means for executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
40. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring an error detecting and correction algorithm; and said executing means comprises: means for executing the error detection and correction algorithm on the data transferred from the primary storage media and monitoring and correcting any errors on the transferred data.
41. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring an error detecting and correction algorithm; and
said system further comprises: means for storing, on the primary media, vital information including at least one of a structure of the primary media, a file structure of the primary media, and a directory structure of the primary media, which is used to access the primary media of the peripheral device; means for storing a second copy of said vital information within said peripheral device and off of said primary media; wherein and said executing means comprises: means for monitoring errors occurring within said vital information on the primary media and copying at least a portion of the second copy of said vital information to the primary media when an error within the primary media is monitored.
42. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring a data back-up algorithm; and said executing means comprises: executing the data back-up algorithm to back-up files used by the host computer.
43. A system according to claim 31, further comprising: means for receiving user input commands for controlling operation of the utility algorithm.
44. A system according to claim 43, wherein said means for receiving user input commands comprises: an input device on said peripheral device.
45. A system according to claim 43, wherein said means for receiving user input commands comprises: an input device on said host computer.
46. A system of controlling a storage peripheral device connected to a host computer, comprising: means for storing a data conversion utility algorithm within the storage peripheral device; and an execution means, disposed within the peripheral device and connected to the means for storing, for executing said stored utility algorithm and performing a data conversion operation.
47. A system according to claim 46, further comprising: means for determining a type of the host computer; means for transferring data from a storage media of the storage peripheral device to the host computer in a format which is compatible with the determined type of the host computer.
48. A system according to claim 47, wherein said means for determining the type of the host computer comprises: means for evaluating a state of an input device on the peripheral device.
49. A system according to claim 46, wherein said storage peripheral device comprises a primary storage media which is one of a tape and a disk.
50. A system according to claim 46, wherein said storing means comprises: means for storing a data decompression and compression algorithm; and said executing means comprises: means for executing the data decompression and compression algorithm on the data transferred from the primary storage media.
51. A system according to claim 46, wherein said storing means comprises: means for storing a data conversion utility algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing means comprises: means for executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format.
52. A system according to claim 46, wherein said storing means comprises: means for storing a data conversion utility algorithm for converting data from a first format used by a first
application program to a second format used by a second application program; and said executing means comprises: means for executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format.
53. A system according to claim 46, wherein said storing means is a primary storage media of said storage peripheral device.
54. A system according to claim 46, wherein said storing means comprises: firmware in said storage peripheral device which is other than a primary storage media of said storage peripheral device.
55. A system of controlling a disk drive connected to a host computer, comprising: means for storing a vital information error detection utility algorithm wherein vital information is at least one of a structure of a disk within the disk drive, a file structure of the disk, and a directory structure of the disk, which is used to access the disk; means for storing, on the disk, said vital information every time data is written to said disk;
means for periodically storing a second copy of said vital information within said disk drive in a nonvolatile memory which is other than the disk; means for executing the stored vital information error detecting utility algorithm which monitors errors in said vital information stored on the disk and copies at least a portion of the second copy of said vital information into the vital information on the disk when an error is monitored. 56. A system for formatting a storage media within a peripheral device which is connected to a host computer, comprising: means for receiving, by the peripheral device, a command to perform media formatting; means for reading a formatting algorithm stored within the peripheral device; and means for formatting the media using the algorithm stored within the peripheral device; wherein after said formatting means begins formatting, formatting of said media is performed without receiving commands from the host computer.
57. A system according to claim 56, wherein said means for receiving the command comprises an input device on the peripheral device.
58. A system according to claim 56, wherein said means for receiving the command comprises an input device on the host computer.
59. A system according to claim 56, wherein said peripheral device is one of a disk drive and a tape drive.
60. A system according to claim 56, further comprising: means for transferring the formatting algorithm from the host computer to the peripheral device.
AMENDED CLAIMS
[received by the International Bureau on 18 March 1996 (18.03.96); original claims 17, 18, 47 and 48 cancelled; original claims 5-12, 16, 20-22, 35-42, 46 and 50-52 amended; new claims 61-73 added; remaining claims unchanged (21 pages)] transferring the data from one of a disk and a tape which is the primary storage media to the host computer.
5. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is a data decompression algorithm; and said executing step comprises: executing the data decompression algorithm on the data transferred from the primary storage media. 6. A method according to claim 5, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is a data compression and decompression algorithm; said method further comprising the steps of: executing the data compression algorithm on data within the host computer; and transmitting the data compressed by the host computer to the primary storage media of the peripheral device.
7. A method according to claim l, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is a data conversion algorithm; and said executing step comprises: executing the data conversion algorithm on the data transferred from the primary storage media.
8. A method according to claim 7, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is a data conversion algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing step comprises: executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
9. A method according to claim 7, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is a data conversion algorithm for converting data from a first format used by a application program to a second format used by a second application program; and said executing step comprises: executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
10. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is an error detecting and correction algorithm; and said executing step comprises:
executing the error detection and correction algorithm on the data transferred from the primary storage media and monitoring and correcting any errors on the transferred data. 11. A method according to claim 1, wherein said step of transferring a utility algorithm comprises: transferring the utility algorithm which is an error detecting and correction algorithm; and said method f rther comprises the steps of: storing, on the primary media, vital information including at least one of a structure of the primary media, a file structure of the primary media, and a directory structure of the primary media, which is used to access the primary media of the peripheral device; storing a second copy of said vital information within said peripheral device and off of said primary media; wherein and said executing step comprises: monitoring errors occurring within said vital information on the primary media and copying at least a portion of the second copy of said vital information to the primary media when an error within the primary media is monitored.
12. A method according to claim 1, wherein said step of transferring a utility algorithm comprises:
6
transferring the utility algorithm which is a data back-up algorithm; and said executing step comprises: executing the data back-up algorithm to back-up files used by the host computer.
13. A method according to claim 1, further comprising the step of: receiving user input commands for controlling operation of the utility algorithm. 14. A method according to claim 13, wherein said step of receiving user input commands comprises: receiving user input commands from an input device on said peripheral device.
15. A method according to claim 13, wherein said step of receiving user input commands comprises: receiving user input commands from an input device on said host computer.
16. A method of controlling a storage peripheral device connected to a host computer, comprising the steps of: storing a data conversion utility algorithm within the storage peripheral device; providing said peripheral device with an execution means for executing the utility algorithm;
executing, by the execution means, said stored utility algorithm; determining a type of the host computer by evaluating a state of an input device on the peripheral device; and transferring data from a storage media of the storage peripheral device to the host computer in a format which is compatible with the determined type of host computer.
19. A method according to claim 16, further comprising the step of: transferring data from a primary storage media of the storage peripheral device which is one of a tape and disk.
20. A method of controlling a storage peripheral device connected to a host computer, comprising the steps of: storing a data conversion utility algorithm within the storage peripheral device; providing said peripheral device with an execution means for executing the utility algorithm; evaluating a state of an input device on the peripheral device which indicates whether the data conversion utility algorithm is to be executed; executing, by the execution means, said stored utility algorithm in accordance with the state of the input device, wherein said storing step comprises:
storing a data decompression and compression algorithm; and wherein said executing step comprises: executing the data decompression and compression algorithm on the data transferred from the primary storage media.
21. A method of controlling a storage peripheral device connected to a host computer, comprising the steps of: storing a data conversion utility algorithm within the storage peripheral device; providing said peripheral device with an execution means for executing the utility algorithm; evaluating a state of an input device on the peripheral device which indicates whether the data conversion utility algorithm is to be executed; executing, by the execution means, said stored utility algorithm in accordance with the state of the input device, wherein said storing step comprises: storing a data conversion utility algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and wherein said executing step comprises:
executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format. 22. A method of controlling a storage peripheral device connected to a host computer, comprising the steps of: storing a data conversion utility algorithm within the storage peripheral device; providing said peripheral device with an execution means for executing the utility algorithm; evaluating a state of an input device on the peripheral device which indicates whether the data conversion utility algorithm is to be executed; executing, by the execution means, said stored utility algorithm in accordance with the state of the input device, wherein said storing step comprises: storing a data conversion utility algorithm for converting data from a first format used by a first application program to a second format used by a second application program; and wherein said executing step comprises: executing the data conversion utility algorithm and changing a format of data transferred between said storage
peripheral device and said host computer from the first format to the second format.
23. A method according to claim 16, wherein said storing step comprises: storing said utility algorithm in a primary storage media of said storage peripheral device.
24. A method according to claim 16, wherein said storing step comprises: storing said utility algorithm in firmware of said storage peripheral device which is other than a primary storage media of said storage peripheral device.
25. A method of controlling a disk drive connected to a host computer, comprising the steps of: storing a vital information error detection utility algorithm wherein vital information is at least one of a structure of a disk within the disk drive, a file structure of the disk, and a directory structure of the disk, which is used to access the disk; storing, on the disk, said vital information every time data is written to said disk; periodically storing a second copy of said vital information within said disk drive in a nonvolatile memory which is other than the disk; executing the stored vital information error detecting utility algorithm which monitors errors in said vital
information stored on the disk and copies at least a portion of the second copy of said vital information into the vital information on the disk when an error is monitored. 26. A method for formatting a storage media within a peripheral device which is connected to a host computer, comprising the steps of: receiving, by the peripheral device, a command to perform media formatting; reading a formatting algorithm stored within the peripheral device; and formatting the media using the algorithm stored within the peripheral device; wherein after said formatting step is begun, formatting of said media is performed without receiving commands from the host computer.
27. A method according to claim 26, wherein said step of receiving the command comprises: receiving the command from an input device on the peripheral device.
28. A method according to claim 26, wherein said step of receiving the command comprises: receiving the command from an input device on the host computer.
29. A method according to claim 26, wherein said formatting step comprises: formatting one of a disk and a tape.
30. A method according to claim 26, further comprising the step of: transferring the formatting algorithm from the host computer to the peripheral device before said reading step.
31. A system for communicating between a peripheral device and a host computer, comprising: a primary storage media within the peripheral device; a storage means within the peripheral device which is other than the primary storage media of the peripheral device for storing a utility algorithm; first means for transferring the utility algorithm stored within the storage means to the host computer; second means for transferring data which is different from the utility algorithm from the primary storage media to the host computer; and means, disposed within the host computer, for executing the transferred utility algorithm and processing the transferred data.
32. A system according to claim 31, further comprising: means for determining a type of the host computer;
wherein said first and second transferring means transfer the utility algorithm and the data from the peripheral device to the host computer in a format which is compatible with the determined type of the host computer. 33. A system according to claim 32, wherein said means for determining the type of the host computer comprises: an input device on the peripheral device.
34. A system according to claim 31, wherein said primary storage media is one of a disk and a tape.
35. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data decompression algorithm; and said executing means comprises: means for executing the data decompression algorithm on the data transferred from the primary storage media.
36. A system according to claim 35, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data compression and decompression algorithm; said system further comprising: means for executing the data compression algorithm on data within the host computer; and
means for transmitting the data compressed by the host computer to the primary storage media of the peripheral device.
37. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data conversion algorithm; and said executing means comprises: means for executing the data conversion algorithm on the data transferred from the primary storage media.
38. A system according to claim 37, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data conversion algorithm for converting data from a first format used by a first operating system to a second format used by a second operating system; and said executing means comprises: means for executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
39. A system according to claim 37, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data conversion algorithm for converting data from a
first format used by a application program to a second format used by a second application program; and said executing means comprises: means for executing the data conversion algorithm and changing a format of the data transferred from the primary storage media from the first format to the second format.
40. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is an error detecting and correction algorithm; and said executing means comprises: means for executing the error detection and correction algorithm on the data transferred from the primary storage media and monitoring and correcting any errors on the transferred data.
41. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is an error detecting and correction algorithm; and said system further comprises: means for storing, on the primary media, vital information including at least one of a structure of the primary media, a file structure of the primary media, and a directory structure of the primary media, which is used to access the primary media of the peripheral device;
56
means for storing a second copy of said vital information within said peripheral device and off of said primary media; wherein and said executing means comprises: means for monitoring errors occurring within said vital information on the primary media and copying at least a portion of the second copy of said vital information to the primary media when an error within the primary media is monitored. 42. A system according to claim 31, wherein said first means for transferring a utility algorithm comprises: means for transferring the utility algorithm which is a data back-up algorithm; and said executing means comprises: executing the data back-up algorithm to back-up files used by the host computer.
43. A system according to claim 31, further comprising: means for receiving user input commands for controlling operation of the utility algorithm.
44. A system according to claim 43, wherein said means for receiving user input commands comprises: an input device on said peripheral device.
45. A system according to claim 43, wherein said means for receiving user input commands comprises:
an input device on said host computer.
46. A system for controlling a storage peripheral device connected to a host computer, comprising: means for storing a data conversion utility algorithm within the storage peripheral device; an input device on the peripheral device; means for determining a type of the host computer by evaluating a state of the input device; means for transferring data from a storage media of the storage peripheral device to the host computer in a format which is compatible with the determined type of the host computer; and an execution means, disposed within the peripheral device and connected to the means for storing, for executing said stored utility algorithm and performing a data conversion operation in accordance with the state of the input device.
49. A system according to claim 46, wherein said storage peripheral device comprises a primary storage media which is one of a tape and a disk.
50. A system for controlling a storage peripheral device connected to a host computer, comprising: means for storing a data conversion utility algorithm within the storage peripheral device; an input device on the peripheral device; and
an execution means, disposed within the peripheral device and connected to the means for storing, for executing said stored utility algorithm and performing a data conversion operation in accordance with the a state of the input device, wherein said storing means comprises: means for storing a data decompression and compression algorithm; and wherein said executing means comprises: means for executing the data decompression and compression algorithm on the data transferred from the primary storage media.
51. A system for controlling a storage peripheral device connected to a host computer, comprising: means for storing a data conversion utility algorithm within the storage peripheral device; an input device on the peripheral device; and an execution means, disposed within the peripheral device and connected to the means for storing, for executing said stored utility algorithm and performing a data conversion operation in accordance with a state of the input device, wherein said storing means comprises: means for storing a data conversion utility algorithm for converting data from a first format used by a first
operating system to a second format used by a second operating system; and wherein said executing means comprises: means for executing the data conversion utility algorithm and changing a format of data transferred between said storage peripheral device and said host computer from the first format to the second format.
52. A system for controlling a storage peripheral device connected to a host computer, comprising: means for storing a data conversion utility algorithm within the storage peripheral device; an input device on the peripheral device; and an execution means, disposed within the peripheral device and connected to the means for storing, for executing said stored utility algorithm and performing a data conversion operation in accordance with a state of the input device, wherein said storing means comprises: means for storing a data conversion utility algorithm for converting data from a first format used by a first application program to a second format used by a second application program; and wherein said executing means comprises: means for executing the data conversion utility algorithm and changing a format of data transferred between
said storage peripheral device and said host computer from the first format to the second format.
53. A system according to claim 46, wherein said storing means is a primary storage media of said storage peripheral device.
54. A system according to claim 46, wherein said storing means comprises: firmware in said storage peripheral device which is other than a primary storage media of said storage peripheral device.
55. A system of controlling a disk drive connected to a host computer, comprising: means for storing a vital information error detection utility algorithm wherein vital information is at least one of a structure of a disk within the disk drive, a file structure of the disk, and a directory structure of the disk, which is used to access the disk; means for storing, on the disk, said vital information every time data is written to said disk; means for periodically storing a second copy of said vital information within said disk drive in a nonvolatile memory which is other than the disk; means for executing the stored vital information error detecting utility algorithm which monitors errors in said vital information stored on the disk and copies at least a
portion of the second copy of said vital information into the vital information on the disk when an error is monitored.
56. A system for formatting a storage media within a peripheral device which is connected to a host computer, comprising: means for receiving, by the peripheral device, a command to perform media formatting; means for reading a formatting algorithm stored within the peripheral device; and means for formatting the media using the algorithm stored within the peripheral device; wherein after said formatting means begins formatting, formatting of said media is performed without receiving commands from the host computer.
57. A system according to claim 56, wherein said means for receiving the command comprises an input device on the peripheral device.
58. A system according to claim 56, wherein said means for receiving the command comprises an input device on the host computer.
59. A system according to claim 56, wherein said peripheral device is one of a disk drive and a tape drive.
60. A system according to claim 56, further comprising:
means for transferring the formatting algorithm from the host computer to the peripheral device.
61. A method according to claim 1, wherein: the step of transferring the utility algorithm transfers a utility algorithm which is different from an operating system which executes within the host computer.
62. A system according to claim 31, wherein: the first means for transferring the utility algorithm transfers a utility algorithm which is different from an operating system which executes within the host computer.
63. A method according to claim 3, wherein the evaluating step comprises: evaluating a state of an electro-mechanical switch.
64. A method according to claim 14, wherein the receiving step further comprises: receiving user input commands from an electro¬ mechanical switch.
65. A method according to claim 20, wherein the evaluating step comprises: evaluating a state of an electro-mechanical switch.
66. A method according to claim 21, wherein the evaluating step comprises: evaluating a state of an electro-mechanical switch.
67. A method according to claim 22, wherein the evaluating step comprises:
evaluating a state of an electro-mechanical switch.
68. A system according to claim 33, wherein: the input device is an electro-mechanical switch.
69. A system according to claim 44, wherein: the means for receiving is an electro-mechanical switch.
70. A system according to claim 46, wherein: the input device is an electro-mechanical switch.
71. A system according to claim 50, wherein: the input device is an electro-mechanical switch.
72. A system according to claim 51, wherein: the input device is an electro-mechanical switch.
73. A system according to claim 52, wherein: the input device is an electro-mechanical switch.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US317,642 | 1994-09-30 | ||
US08/317,642 US5640592A (en) | 1994-09-30 | 1994-09-30 | System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer |
Publications (1)
Publication Number | Publication Date |
---|---|
WO1996010790A1 true WO1996010790A1 (en) | 1996-04-11 |
Family
ID=23234610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1995/011965 WO1996010790A1 (en) | 1994-09-30 | 1995-09-28 | Intelligent peripheral controller |
Country Status (2)
Country | Link |
---|---|
US (2) | US5640592A (en) |
WO (1) | WO1996010790A1 (en) |
Families Citing this family (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5630048A (en) * | 1994-05-19 | 1997-05-13 | La Joie; Leslie T. | Diagnostic system for run-time monitoring of computer operations |
US5845095A (en) * | 1995-07-21 | 1998-12-01 | Motorola Inc. | Method and apparatus for storing and restoring controller configuration information in a data communication system |
US6618754B1 (en) * | 1995-10-23 | 2003-09-09 | Sun Microsystems, Inc. | System for transmission of embedded applications over a network |
US5991520A (en) | 1996-02-02 | 1999-11-23 | Sony Corporation | Application programming interface for managing and automating data transfer operations between applications over a bus structure |
US7577782B2 (en) | 1996-02-02 | 2009-08-18 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
US6631435B1 (en) | 1996-02-02 | 2003-10-07 | Sony Corporation | Application programming interface for data transfer and bus management over a bus structure |
US6233637B1 (en) | 1996-03-07 | 2001-05-15 | Sony Corporation | Isochronous data pipe for managing and manipulating a high-speed stream of isochronous data flowing between an application and a bus structure |
US6519268B1 (en) * | 1996-03-07 | 2003-02-11 | Sony Corporation | Asynchronous data pipe for automatically managing asynchronous data transfers between an application and a bus structure |
US5781722A (en) * | 1996-05-10 | 1998-07-14 | Symantec Corporation | Method for diagnosis and repair of compressed volumes utilizing a bitmap |
US5835783A (en) * | 1996-09-12 | 1998-11-10 | Intel Corporation | Method and apparatus for uploading peripheral control functions to host |
US5913072A (en) * | 1997-04-08 | 1999-06-15 | Wieringa; Fred | Image processing system in which image processing programs stored in a personal computer are selectively executed through user interface of a scanner |
JP3895830B2 (en) | 1997-06-18 | 2007-03-22 | インテリジェントディスク株式会社 | Storage medium having electronic circuit |
US20010044864A1 (en) * | 1997-06-18 | 2001-11-22 | Kabushiki Kaisha Optrom | Disk storage system having an electronic circuit mounted on the surface of the disk and control method thereof |
JPH117296A (en) | 1997-06-18 | 1999-01-12 | Oputoromu:Kk | Storage medium having electronic circuit and speech synthesizer having the storage medium |
JP3798888B2 (en) * | 1997-06-19 | 2006-07-19 | 孝士 重富 | Computer system |
TW389894B (en) | 1997-06-19 | 2000-05-11 | Optrom Kk | Device for exchanging information with storage medium having electronic circuit and the electronic circuit, and system including the same |
US6292847B1 (en) * | 1997-12-03 | 2001-09-18 | Kabushiki Kaisha Kobe Seiko Sho. | Digital information reproducing apparatus and digital information distributing system |
US6292844B1 (en) * | 1998-02-12 | 2001-09-18 | Sony Corporation | Media storage device with embedded data filter for dynamically processing data during read and write operations |
US6065068A (en) * | 1998-04-20 | 2000-05-16 | National Instruments Corporation | System for storing and updating configuration information about I/O card and using stored configuration information to configure newly installed I/O card when compatible with old card |
US6282700B1 (en) * | 1998-05-21 | 2001-08-28 | Hewlett Packard Company | Mechanism for maintaining revisions of objects in flash memory |
US6128683A (en) * | 1998-06-04 | 2000-10-03 | International Business Machines Corporation | Method and system for allowing a plurality of SCSI hosts to interact with a DASD storage subsystem |
US6226658B1 (en) * | 1998-06-19 | 2001-05-01 | Hewlett-Packard Company | Layout code tuning in universally readable document files |
US6883063B2 (en) * | 1998-06-30 | 2005-04-19 | Emc Corporation | Method and apparatus for initializing logical objects in a data storage system |
US6167471A (en) | 1998-10-14 | 2000-12-26 | Sony Corporation | Method of and apparatus for dispatching a processing element to a program location based on channel number of received data |
US6933919B1 (en) | 1998-12-03 | 2005-08-23 | Gateway Inc. | Pointing device with storage |
US6247069B1 (en) | 1999-05-12 | 2001-06-12 | Sony Corporation | Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices |
US6859846B2 (en) * | 1999-05-12 | 2005-02-22 | Sony Corporation | Method of distributed recording whereby the need to transition to a second recording device from a first recording device is broadcast by the first recording device |
JP4057201B2 (en) * | 1999-09-16 | 2008-03-05 | 富士通株式会社 | High-speed data exchange method between different computers and extent extraction / conversion program recording medium |
US6721859B1 (en) | 1999-10-21 | 2004-04-13 | Sony Corporation | Multi-protocol media storage device implementing protocols optimized for storing and retrieving both asynchronous and isochronous data |
US6523108B1 (en) | 1999-11-23 | 2003-02-18 | Sony Corporation | Method of and apparatus for extracting a string of bits from a binary bit string and depositing a string of bits onto a binary bit string |
AU2001287250A1 (en) * | 2000-03-22 | 2001-10-03 | Yotta Yotta, Inc. | Method and system for providing multimedia information on demand over wide area networks |
US6425053B1 (en) * | 2000-06-27 | 2002-07-23 | Adaptec, Inc. | System and method for zeroing data storage blocks in a raid storage implementation |
US7720821B1 (en) * | 2000-06-30 | 2010-05-18 | Sony Corporation | Method of and apparatus for writing and reading time sensitive data within a storage device |
US6629197B1 (en) * | 2000-11-03 | 2003-09-30 | International Business Machines Corporation | Method and system for storing digital audio data and emulating multiple CD-changer units |
US6904475B1 (en) | 2000-11-06 | 2005-06-07 | Sony Corporation | Programmable first-in first-out (FIFO) memory buffer for concurrent data stream handling |
US7124292B2 (en) * | 2001-05-21 | 2006-10-17 | Sony Corporation | Automatically configuring storage array including a plurality of media storage devices for storing and providing data within a network of devices |
US6792517B1 (en) * | 2001-06-18 | 2004-09-14 | Maxtor Corporation | Firmware controlled backup in disk drives |
US7065661B2 (en) * | 2002-12-16 | 2006-06-20 | Emc Corporation | Using request and grant signals to read revision information from an adapter board that interfaces a disk drive |
CN1122281C (en) * | 2001-06-30 | 2003-09-24 | 深圳市朗科科技有限公司 | Multifunctional semiconductor storage device |
US7430736B2 (en) * | 2001-10-03 | 2008-09-30 | Toshiba Tec Kabushiki Kaisha | Download and installation of software from a network printer |
AU2003220269A1 (en) * | 2002-03-14 | 2003-09-29 | Contentguard Holdings, Inc. | Method and apparatus for processing usage rights expressions |
US20030200353A1 (en) * | 2002-04-19 | 2003-10-23 | Vikas Dogra | Browser-implemented upload/download of a driver |
JP3777143B2 (en) * | 2002-06-04 | 2006-05-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Storage device, information processing system including the storage device, formatting method of the storage device, data recording method, format, and program for realizing data recording |
US20040268359A1 (en) * | 2003-06-27 | 2004-12-30 | Hanes David H. | Computer-readable medium, method and computer system for processing input/output requests |
US7346904B2 (en) * | 2003-08-07 | 2008-03-18 | International Business Machines Corporation | Systems and methods for packaging files having automatic conversion across platforms |
US9053239B2 (en) | 2003-08-07 | 2015-06-09 | International Business Machines Corporation | Systems and methods for synchronizing software execution across data processing systems and platforms |
US20050034120A1 (en) * | 2003-08-07 | 2005-02-10 | International Business Machines Corperation | Systems and methods for cooperatively building public file packages |
US7100039B2 (en) * | 2003-08-07 | 2006-08-29 | International Business Machines Corporation | Systems and methods for a bootstrap mechanism for software execution |
US8131960B2 (en) * | 2008-05-21 | 2012-03-06 | Durfee Stephen W | Automated backup and reversion system |
KR101636777B1 (en) * | 2008-08-08 | 2016-07-21 | 시게이트 테크놀로지 엘엘씨 | Hybrid storage device and method for assigning a logical block address thereof |
US20100268856A1 (en) * | 2009-04-20 | 2010-10-21 | Smith Eric R | Formatting memory in a peripheral device |
US8312184B2 (en) * | 2009-11-25 | 2012-11-13 | Canon Denshi Kabushiki Kaisha | Peripheral device usable without installing driver in computer beforehand |
US9910678B1 (en) * | 2015-04-24 | 2018-03-06 | Parallels IP Holdings GmbH | NetBoot for installation of a non-native OS on a target host |
US11886957B2 (en) * | 2016-06-10 | 2024-01-30 | Apple Inc. | Artificial intelligence controller that procedurally tailors itself to an application |
CN113762518A (en) * | 2020-06-02 | 2021-12-07 | 中科寒武纪科技股份有限公司 | Data processing method, data processing device, computer equipment and storage medium |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US5269018A (en) * | 1990-11-29 | 1993-12-07 | Hyundai Electronics Industries Co., Ltd. | Method for auto-formatting a hard disk drive for a computer system |
US5293388A (en) * | 1990-11-13 | 1994-03-08 | Hewlett-Packard Company | Compression/decompress with ECC data flow architecture |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4268905A (en) * | 1978-12-14 | 1981-05-19 | Sperry Rand Corporation | Autonomous fault diagnosis for disk drive using an internal microprocessor |
US4280193A (en) * | 1979-12-14 | 1981-07-21 | Burroughs Corporation | Data link processor for magnetic tape data transfer system |
US4371948A (en) * | 1980-05-07 | 1983-02-01 | Burroughs Corporation | Train printer-data link processor |
US4348761A (en) * | 1980-09-08 | 1982-09-07 | Pioneer Research, Inc. | Portable field test unit for computer data and program storage disc drive |
US4494156A (en) * | 1982-05-14 | 1985-01-15 | Media Systems Technology | Selectable format computer disk copier machine |
US4641207A (en) * | 1983-03-22 | 1987-02-03 | Green George D | Diagnostic device and method for examining the operation of a disk drive |
US4591975A (en) * | 1983-07-18 | 1986-05-27 | Data General Corporation | Data processing system having dual processors |
US4651277A (en) * | 1983-09-16 | 1987-03-17 | Sanyo Electric Co., Ltd. | Control system for a magnetic disk drive unit |
US4773036A (en) * | 1984-07-13 | 1988-09-20 | Ibm Corporation | Diskette drive and media type determination |
US4928193A (en) * | 1984-07-13 | 1990-05-22 | International Business Machines Corporation | Diskette drive type determination |
US4675755A (en) * | 1984-08-24 | 1987-06-23 | Eastman Kodak Company | Video disk apparatus providing organized picture playback |
US4695945A (en) * | 1985-02-28 | 1987-09-22 | International Business Machines Corporation | Processor I/O and interrupt filters allowing a co-processor to run software unknown to the main processor |
US4819153A (en) * | 1985-06-05 | 1989-04-04 | Plus Development Corporation | Microprocessor controlled rigid disk file subsystem |
US4885683A (en) * | 1985-09-27 | 1989-12-05 | Unisys Corporation | Self-testing peripheral-controller system |
US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
US4796099A (en) * | 1986-04-24 | 1989-01-03 | Eastman Kodak Company | Video still player with internal capability for executing externally-generated viewing programs |
US4866601A (en) * | 1987-09-24 | 1989-09-12 | Ncr Corporation | Digital data bus architecture for computer disk drive controller |
US4928192A (en) * | 1987-12-23 | 1990-05-22 | Konica Corporation | Process for identifying disks and automatically configuring a disk drive system |
GB8816413D0 (en) * | 1988-07-09 | 1988-08-17 | Int Computers Ltd | Data processing system |
US5161102A (en) * | 1988-09-09 | 1992-11-03 | Compaq Computer Corporation | Computer interface for the configuration of computer system and circuit boards |
US5150465A (en) * | 1988-11-30 | 1992-09-22 | Compaq Computer Corporation | Mode-selectable integrated disk drive for computer |
JPH02230584A (en) * | 1989-03-02 | 1990-09-12 | Seiko Epson Corp | Compact disk |
US5018095A (en) * | 1990-02-15 | 1991-05-21 | Seagate Technology, Inc. | Universal disk drive type emulation for IBM PC-AT computers |
US5237689A (en) * | 1990-05-31 | 1993-08-17 | Hewlett-Packard Company | Configuration of mass storage devices |
US5179666A (en) * | 1990-06-07 | 1993-01-12 | Unisys Corporation | Block oriented peripheral device interface |
JPH0444673A (en) * | 1990-06-11 | 1992-02-14 | Toshiba Corp | Defective information recording system for disk device |
US5142626A (en) * | 1990-07-20 | 1992-08-25 | International Business Machines Corp. | Personal computer with removable media identification |
US5265252A (en) * | 1991-03-26 | 1993-11-23 | International Business Machines Corporation | Device driver system having generic operating system interface |
US5319751A (en) * | 1991-12-27 | 1994-06-07 | Intel Corporation | Device driver configuration in a computer system |
US5357614A (en) * | 1992-09-17 | 1994-10-18 | Rexon/Tecmar, Inc. | Data compression controller |
US5463772A (en) * | 1993-04-23 | 1995-10-31 | Hewlett-Packard Company | Transparent peripheral file systems with on-board compression, decompression, and space management |
-
1994
- 1994-09-30 US US08/317,642 patent/US5640592A/en not_active Expired - Fee Related
-
1995
- 1995-09-28 WO PCT/US1995/011965 patent/WO1996010790A1/en active Application Filing
-
1997
- 1997-03-14 US US08/818,684 patent/US5920733A/en not_active Expired - Lifetime
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5148432A (en) * | 1988-11-14 | 1992-09-15 | Array Technology Corporation | Arrayed disk drive system and method |
US5293388A (en) * | 1990-11-13 | 1994-03-08 | Hewlett-Packard Company | Compression/decompress with ECC data flow architecture |
US5269018A (en) * | 1990-11-29 | 1993-12-07 | Hyundai Electronics Industries Co., Ltd. | Method for auto-formatting a hard disk drive for a computer system |
US5307413A (en) * | 1991-07-19 | 1994-04-26 | Process Software Corporation | Method and apparatus for adding data compression and other services in a computer network |
Also Published As
Publication number | Publication date |
---|---|
US5640592A (en) | 1997-06-17 |
US5920733A (en) | 1999-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5640592A (en) | System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer | |
US5930358A (en) | Storage device having a nonvolatile memory for storing user changeable operating parameters | |
US5357614A (en) | Data compression controller | |
US5829045A (en) | Apparatus for restoring/copying the contents recorded in a storage medium to an auxiliary storage including partitions having independent file structures | |
US7979600B2 (en) | Multifunction peripheral and device control system | |
US5802398A (en) | Method and apparatus for allowing communication between a host computer and at least two storage devices over a single interface | |
US6898705B2 (en) | Automatic appliance server re-provision/re-purposing method | |
EP2097811B1 (en) | System and method for receiving control commands at a peripheral device | |
US20030046447A1 (en) | Device-related software installation | |
US6813725B1 (en) | Method for restoring an operating system utilizing a storage device on a USB bus | |
WO1997019406A9 (en) | Storage device having a nonvolatile memory for storing user changeable operating parameters | |
US20030018870A1 (en) | Appliance server with a drive partitioning scheme that accommodates application growth in size | |
US20030056144A1 (en) | Information processing apparatus with resume function and information processing system | |
MXPA01012276A (en) | Portable storage medium based on universal serial bus standard and control method therefor. | |
US6718410B2 (en) | System for transferring data in a CD image format size of a host computer and storing the data to a tape medium in a format compatible with streaming | |
EP1101164A1 (en) | System backup and recovery | |
US5951687A (en) | Storage disc with self diagnostics and configuration | |
JPH02189670A (en) | Interlock apparatus for computer system | |
JPH0269812A (en) | Computer | |
JP4527348B2 (en) | Interface device, method of updating firmware in interface device, and program thereof | |
EP1443407A1 (en) | A method to add storage feature to computer peripherals and its architecture | |
US6055631A (en) | Method and apparatus for booting a portable computing device | |
US5996045A (en) | IDE disk drive arrangement that combines the capacity of a master drive and slave drive while hiding the presence of slave drive to a host computer | |
US20070294442A1 (en) | Storage media having electronic circuit and computer system including storage media | |
US20030045236A1 (en) | Wireless peripheral with inbuilt driver |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): JP KR |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH DE DK ES FR GB GR IE IT LU MC NL PT SE |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
122 | Ep: pct application non-entry in european phase |