Method and system for the automatic substitution of control firmware embedded in a removable hard disk drive

Abstract: A host computer is connected with a computer interface to a disk drive that accepts removable disk drive cartridges. A FLASH memory provides the non-volatile storage of a default embedded control program and an alternative control program for a processor. A special maintenance track on the removable cartridge is accessible by the processor and an alternative program can be uploaded from it and stored in the FLASH memory if a user interlock and the function and revision codes included in the system permit the upload. A fail-safe switch to the embedded default control program is made when problems are experienced with any uploaded program.

Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The invention relates generally to computer memory and more specifically to removable disk cartridges and disk drives. 2. Description of the Prior Art The tower, desk-top, portable and notebook personal computers marketed by Packard-Bell, Compaq, AST, IBM, and Apple trademarks typically provide internal and/or external connections for 5.25", 3.5" and personal computer modular connection interface association (PCMCIA) type disk drives. Such systems usually come equipped with a 3.5" micro-floppy drive and an internal hard disk. The IBM-compatibles typically use the enhanced device interface (IDE) and Apple Macintosh trademarks computers use the small computer system control interface (SCSI). Special SCSI interface boards and modules are available to connect the IBM-compatible computers to SCSI-type drives. The disk storage that comes with a computer never seems to be enough. So a large and active after-market has developed that provides add-on and add-in hard disk drives, compact disk (CD) drives and removable hard disk drives such as Syquest, IOMega and Floptical trademarks disk types. Both the computers and their memory storage drives are general-purpose devices that have been optimized to give good performance to the majority of users and applications. Disk drives, in particular represent a fine balance between fast data access, data storage density, resilience to temperature extremes, and continuous and uninterrupted sequential access, etc. But of course, such compromises do not suit every application best. EP-A-0 489 227 discloses a data storage system having removable media and equipped to download a control program from the removable media. An internal control program for control of the media is stored directly on the media itself. By use of a boot program, the control program is read off the media by the microprocessor and in stored in a main control program storage (an EEPROM, RAM or flash memory) within the data storage device. The boot program is started on command from the host computer, by a boot start activator on the storage device, by inserting into the storage device a special storage media; the special storage media may have a physical difference from a standard media, or may have a special data recorded on the media. This special data, when read by the data storage device, initiates the booting operation for reading the control program off the media. In addition, this document suggests using this method for upgrading of the internal control program by transferring a new program from a specially recorded media to the internal control storage memory of the drive; in this case, this memory allows erasing and storing of new data. In one embodiment, the drive is provided with an ID; in this case, more than one program may be stored on the media : the drive then sees the program that matches its own ID and loads only that one. EP-A-0 654 730 discloses a method for reprogramming the operation parameters of an optical data storage or retrieval system. The system comprises an optical reading unit, an EEPROM with a first set of parameters, a reprogramming disk, a temporary storage unit, a erasing / writing unit for electronically erasing the first set of parameters and an arrangement for reading the second set of parameters from the temporary storage unit and for electronically reprogramming the memory with the second set of parameters to replace the first set of parameters. When a reprogramming disk is recognised by the optical reading unit, the parameters are read off the disk and stored in the temporary storage unit. The EEPROM is then erased, and the new parameters are copied from the temporary storage unit into the EEPROM. WO-A-90 05339 discusses a method for debugging a control program in a Winchester type hard disk drive. The control board of the drive is provided with a basic code in ROM; when the storage device is powered up, the basic code accesses a control code stored on the storage media; the control code of the storage media is transferred to the control board RAM for execution. There is also provided a dual processor architecture on the control board. SUMMARY OF THE PRESENT INVENTION It is therefore an object of the present invention to provide a disk memory subsystem with flexible embedded control programming. It is a second object of the present invention to provide a disk cartridge that provides an alternative embedded control program for uploading by a compatible disk drive that has a default embedded control program. It is another object of the present invention to provide a disk drive with a default embedded control program that can upload an alternative embedded control program from a compatible hard disk cartridge. It is a further object of the present invention to provide a user interlock to manage any uploading of an alternative embedded control program from a disk cartridge to a compatible disk drive with a default embedded control program. The invention is defined in claims 1, 8 and 10. Advantageous additional features appear in the dependent claims. Briefly, a host computer is connected with a SCSI or another interface to a disk drive that accepts removable disk cartridges. A FLASH memory or similar re-writable semiconductor memory provides the non-volatile storage of a default embedded control program and an alternative control program for a processor. A special maintenance track on the removable cartridge is accessible by the processor and an alternative program can be uploaded from it and stored in the FLASH memory if a user interlock and the function and revision-codes included in the system permit the upload. A fail-safe switch to the embedded default control program is made when problems are experienced with any uploaded program. It is an advantage of the present invention that a disk memory subsystem is provided with flexible embedded control programming. It is a second advantage of the present invention that a disk cartridge is provided with an alternative embedded control program for uploading by a compatible disk drive that has a default embedded control program. It is another advantage of the present invention that a disk drive is provided with a default embedded control program that can upload an alternative embedded control program from a compatible disk cartridge. It is a further advantage of the present invention that a user interlock is provided to manage any uploading of an alternative embedded control program from a disk cartridge to a compatible disk drive with a default embedded control program. These and other objects and advantages of the present invention will no doubt become obvious to those of ordinary skill in the art after having read the following detailed description of the preferred embodiment which is illustrated in the drawing figures. IN THE DRAWINGS Fig. 1 is a block diagram of a hard disk system embodiment of the present invention; Fig. 2 is a perspective view of a removable disk cartridge used in the system of Fig. 1; Fig. 3A is a flow chart of a control program included in the disk drive of Fig. 1 to manage the uploading of alternative control programs for the disk drive from the removable cartridge; and Fig. 3B is a flow chart of a control program included in the disk drive of Fig. 1 to program a FLASH memory included in the disk drive of Fig. 1. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT Fig. 1 illustrates a system embodiment of the present invention, referred to herein by the general reference numeral 10. The system 10 includes a circuit board 12 connected to a head disk assembly (HDA) 14 that comprises a pre-amp 16 and a set of magnetic read/write heads 18 for reading, writing and formatting a removable hard disk cartridge 20. The circuit board 12 comprises a host interface controller 22 connected to a random access memory (RAM) cache 24. A FLASH memory 26 provides for the non-volatile storage of embedded control firmware. A data channel 28 connects the SCSI controller 22 to the HDA 14 and a servo controller 30. A digital signal processor (DSP) 32 connects to the servo controller 30 and can receive upload software through the data channel 28 and HDA 14 from a special maintenance track on the cartridge 20. Such upload software is storable as alternative embedded-control firmware in the FLASH memory 26. A spindle motor, voice coil motor (VCM) actuator and cartridge mechanism 34 is controlled by the DSP 32. A light-emitting diode display (LED) 35 provides user messages from the DSP 32. A host computer 36 is connected via a host interface input/output (I/O) cable 38. Any one of several industry standard or proprietary interfaces can be used between the host 36 and the host interface controller 22, for example "IDE" or "Centronics", (TMS) and that interface may be further modified to enhance certain performance attributes. Fig. 2 shows that the cartridge 20 is comprised of a sleeve 40 within which is disposed a magnetic platter 42 with a spindle hub 44 and a maintenance track 46 of data recorded with a "special function byte" and an alternative control program for uploading in the FLASH memory 26. The mechanical construction and composition of the cartridge 20 use conventional techniques and materials well-known to artisans. For example, the cartridge 20 resembles the removable hard disk cartridges marketed by SyQuest Technologies, Inc.(Fremont, CA), in 44MB, 88MB, 200MB size 5.25" formats and 107MB and 270MB size 3.5'' formats. A condition code 48 is embedded in the cartridge 20 to indicate to the HDA 14 that this cartridge is a special type having the maintenance track 46. For example, the condition code 48 may be embedded in the data of the maintenance track 46 or in the shape of the sleeve 40. In a preferred embodiment of the present invention, the cartridge 20 with the special maintenance track 46 cannot be used for ordinary data storage and the maintenance track 46 is not includable in an ordinary data storage cartridge. Such a special cartridge 20 thereby acts as a key to the programming of the embedded control program of the drive circuit board 12. Furthermore, it is preferred that the uploadable alternative control program in the maintenance track be of a different revision level to that already loaded in the FLASH memory 26, otherwise, uploading of such alternative program is not allowed. In another embodiment, the uploadable alternative control code is included on the special maintenance track of a cartridge which can be used for ordinary data storage. Also, it may be that the alternative control code is required in order to properly read and write the data on that cartridge. Figs. 3A and 3B illustrate a computer-implemented process 50 that is included in the control firmware stored in the FLASH memory 26. This process is for the prefered embodiment of the present invention referred to in line 6 above. A step 52 detects the insertion of the cartridge 20 in the HDA 14 and mechanism 34. A step 54 spins up the spindle motor, loads the heads 18 and executes a calibration sequence for the cartridge 20. A step 56 causes the VCM actuator in the mechanism 34 to seek to the maintenance track 46. A step 58 reads the "special function byte" from the data of the maintenance track 46. A step 60 determines if the special function byte indicates that the cartridge 20 is a special type that has an alternative control program to be loaded in the FLASH memory 26. If not, a step 62 reads a user interlock setting, e.g., a hardwire jumper setting or a control code sent from the host 36 over the SCSI cable 38. A step 64 determines if the interlock setting is "off". If yes, conventional drive function is commenced, e.g., using a default embedded control program in the FLASH memory 26 to operate the DSP 32. If the interlock setting is "on", then a step 68 displays an error code on the LED 35, and a step 70 causes the mechanism 34 to eject the cartridge 20. The system 10 then waits for a new cartridge 20. If the step 60 determines that the cartridge 20 is an upload type cartridge, then a step 72 reads the interlock setting. A step 74 checks to see if an update of the FLASH memory 26 is permitted. If so, a step 76 reads the upload data from the maintenance track into the RAM cache 24. A step 78 runs a checksum test of the upload data in the cache 24. A step 80 determines if the data uploaded and in the cache is valid for programming the FLASH memory 26. If not, control passes to the step 68. Other embodiments are possible where alternative control programs are resident on a normal data cartridge and are uploaded dependent on the states of the special function byte and interlock. In these circumstances the cartridge would not be ejected. The FLASH memory 26 can have one or more whole control programs that define the drive parameters and host interface to be used. In the case of two or more resident control programs, the FLASH memory 26 is appropriately partitioned and great caution is exercised in reprogramming any code that the DSP 32 is simultaneously executing from. For example, before reprogramming, several copies of the program-to-be-replaced are copied to the RAM cache 24 and compared. At least one default program preferably is permanently kept resident to provide a fall-back, or fail-safe, mode. Given the exact nature of the data in the maintenance track 46, application-specific operation may be toggled from between the various alternative control programs. In an alternative embodiment where two alternative control programs are already resident in the FLASH memory 26, the host 36 is allowed to write a control character to the host controller 22 to select a particular control program to be used. Furthermore, application-specific programs (ASPs) can be loaded from the maintenance track 46 that add to or replace older ASPs. In Fig. 3B, if the data is valid, a step 82 makes a backup copy of what was in the FLASH memory 26 to the RAM cache 24. A step 84 calculates the checksum byte of the backup code and stores the checksum byte in the RAM cache 24. A step 86 determines the address in FLASH memory 26 to begin programming and the block length. A step 88 programs the FLASH memory 26 with the contents of the RAM cache 24. A step 90 checks to see if the FLASH memory 26 is programmed correctly. If not, a step 92 resets the programming pointers to restore the original data copied from the FLASH to RAM.. A step 94 restores the original data to the FLASH memory 26. A step 96 tests to see if the FLASH memory 26 was programmed correctly. If not, control passes back up to step 94. If programming was correct, a step 98 causes an error code to be displayed on the LED 35. If the step 90 determines that the FLASH memory 26 is programmed correctly, it and the step 98 both can call a step 100 that causes the mechanism 34 to eject the cartridge 20. For each interface there would necessarily be a different electronic circuit board with a different design of host controller device. It is not practical for a device to support more than one type of interface. What we can do with the code upload is to enhance or modify some feature of how we use a specific interface. For example, the drive could modify its use of the SCSI bus to emulate a tape drive and support tape drive command options. Although the present invention has been described in terms of the presently preferred embodiment, it is to be understood that the disclosure is not to be interpreted as limiting. Various alterations and modifications will no doubt become apparent to those skilled in the art after having read the above disclosure.

Claims: A cartridge disk drive, comprising: a spindle motor, actuator, and cartridge-ejection mechanism for handling a removable disk drive cartridge (20); a host interface controller (22) for connection to a host computer (36) and connected to transfer data between read/write heads (18) loaded on said removable disk drive cartridge and said host computer according to a particular host interface personality; a processor (32) connected to execute a control program in a writable memory (26) for managing the spindle motor, actuator, and cartridge-ejection mechanism, data transfers from said read/write heads (18) and said host interface controller (36); and access means for interfacing with a special cartridge similar to said removable disk drive cartridge and having a maintenance track (46) of data comprising an alternative control program for uploading to said writable memory (26) independent of any connection of the host interface controller to said host computer, wherein the writable memory (26) stores at least two alternative control programs, at least one of said control programs being a default control program and at least another one being an alternative control program uploaded from said cartridge and wherein the processor is connected to execute a particular one of said control programs from the writable memory (26). The drive of claim 1, further comprising a random access memory (24) connected to the host controller for the temporary storage of data and local embedded control programs. The drive of claim 1 or 2, further comprising a data channel (28) connected to the host interface controller and connected to transfer data between said host interface controller (22) and said read/write heads (18). The drive of claim 3, further comprising a servo unit connected to the data channel for the extraction of servo control information from said read/write heads (18). The drive of one of claims 1 to 4, further comprising a RAM (24), wherein the alternative control program is uploaded by the processor to the RAM and then the non-volatile writable memory according to a status of an interlock flag. The drive of one of claims 1 to 5, wherein the processor and at least one of said control programs provides for a personalization of the host interface controller (22) for SCSI, WE or parallel-printer port operation with an host computer. A computer storage system, comprising: a drive according to one of claims 1 to 6, and a special cartridge (20) similar to a removable disk drive cartridge (20) and having a maintenance track (46) of data comprising an alternative control program. A computer storage system according to claim 7, comprising: a host computer (36) with a particular one of SCSI, IDE and parallel printer port interfaces connected to the host interface controller (22); host interface personality means included in said control program executed by the processor for adapting or enhancing the host interface controller (22) to said particular one of SCSI, IDE and parallel printer port interfaces. A method for controlling a removable cartridge disk drive, comprising the steps of: reading a maintenance track (46) of data from a removable disk cartridge (20) installed in a matching cartridge disk drive; determining if said data indicates said data is a type that should be uploaded into a executable program storage area of a processor (32) that controls said cartridge disk drive; if this is the case, storing said data into a writable memory (26) already storing a default control program; connecting the processor to execute a particular one of said control programs from the writable memory (26). The method of claim 9, further comprising, before the step of storing, the step of: reading a user interlock setting to determine if a user has authorised said uploading from said cartridge. The method of claim 9 or 10, further comprising, before the step of connecting, the step of: testing said uploaded data for validity. The method of claim 9, 10 or 11, further comprising the step of: personalizing a host interface controller connected to said host computer when that controller is operating according to one of SCSI, IDE or parallel-printer port interface protocols. The method of one of claims 9 to 12, further comprising the step of : storing at least two alternative control programs for said processor having different operating parameters for characterizing the performance of said cartridge disk drive.

Inventors: LESLIE JAMES B M, LESLIE, JAMES B.M.
Applicants: IOMEGA CORP, IOMEGA CORPORATION
Application year: 1996
Main classification: G06F3
IPC codes: G06F3