Data storage system having removable media and equipped to download a control program from the removable media

Abstract: A data storage device is disclosed having associated therewith a removable storage medium. The data storage device has a main control unit with a microprocessor. The system is designed such that an internal control program for control of the media is stored directly on the media itself. By use of a boot program which can be stored in the microprocessor or separately from the microprocessor, the control program is read off of the media by the microprocessor and is stored in a main control program storage within the data storage device. The main control program storage is an erasible storage like an EEPROM, RAM, or flash memory.

Description: The present invention relates to storage devices having a removable storage media. BACKGROUND OF THE INVENTION In the data storage field, many different types of storage media exist. Storage devices are known which have removable storage media, like magnetic tapes, optical disks, removable magnetic disks, flexible disks, etc. Although these devices differ greatly in the way they store data, the units always have some form of electronic controller built in to control the operation of the data storage process. In modern designs, these built-in control units are very often designed around one or more microprocessors. A typical prior art system is shown in Figure 1. The main control unit 11 (very often designed around one or more microprocessors) controls the operation of the storage device generally shown at 10. To write data on the removable storage medium 10, the main control unit 11 receives commands from a host via input/output electronics 12, interprets those commands, and controls the flow of data from the host. It also controls the flow of data internally within the storage unit (from the input section electronics 12 through an internal data buffer 13 (if included) to a write electronics 14, and controls the physical writing of the data on the medium 9. In the write electronics section 14, the data to be recorded is modified in special ways (encoded) to fit requirements of the recording media. When reading data from the media, the main control unit 11, after receiving a command to read data from the host, reads data from the storage medium 9 through a read electronics 15 and the internal data buffer 13 (if any), and from the buffer 13 out to the host. The read electronics 15 performs necessary decoding of the read data to make it suitable for the host. The main control unit 11 also controls servo electronics 16 for drive of the medium 9, as is well known in the art. The actual design will vary between different devices. A more detailed design example of a prior art data storage device 10 called a streaming tape drive which is representative for the general system or device 10 described in Figure 1 can be found in the TDC3600 service manual from Tandberg Data, incorporated herein by reference. Hereafter, reference will be made mainly to tape drives, although the invention is suitable for any type of data storage device having a removable medium. The main control unit 11 typically contains a special control program stored in a memory which controls the execution of the whole storage device 10 or part of it. In general, this control program or programs controls the operation of one or more of the built-in (micro-) processors. These programs are often stored in ROM (Read Only Memory) or EPROM (Erasable ROM), although designs also exist where the control program is stored in some form of volatile memory like RAM (Random Access Memory) (Both DRAM (Dynamic RAM) and SRAM (Static RAM)) or non-volatile memory which can be electrically erased like EEPROM (Electrical Erasable ROM) or Flash Memory (which is also a special form of electrical erasable and programmable memory). Generally, the control programs are stored in the storage device at the time of manufacturing. This can be done by programming, for example in an EPROM, and then mounting the EPROM in the control unit. It is also possible to design microprocessors with the control program or at least a part of it embedded into the processor itself. Figure 2 shows a typical prior art design main control unit 11 having a microprocessor 17 and a control program stored in an EPROM 18 or ROM in the control unit 11. The microprocessor 17 calls its control information from the EPROM 18, and executes the commands according to the stored program. For every address sent by the microprocessor to the EPROM, the EPROM returns "Data" which gives the microprocessor the necessary instructions about the next step it shall perform. Of course, the main control program storage may not necessarily be considered to be part of what is hereinafter called the "main control unit", but could be considered separate therefrom. In the past, some data terminals have been designed in such a way that their internal control program (or a part of it) could be transferred from the host to a terminal over the cable connecting the two units (downloadable code). In principle, the same method could be used for data storage units. The host could transfer the whole control program or a part of it on a cable connecting the two units. The program could then be stored in a RAM, EEPROM, or Flash Memory. This would make it possible to upgrade storage devices in the field. Up to now, such methods have not been used extensively for data storage devices. The main reason is that very often the control programs are very complex and large, and it is time consuming and sometimes difficult to transfer such programs by this method. At the same time, storing the control programs once and for all in an EPROM or similar unit has drawbacks, since it is very expensive and sometimes difficult to upgrade the control program, especially when the storage unit is placed in a data system at a user site. In the document WO 90/05339 a method and system is disclosed, providing the feature of transferring a control program from a portion of a rotating medium to memory means like a RAM, but the data transfer takes place with every power up or reset of the system, whether necessary, desired or not, thereby consuming a lot of time. SUMMARY OF THE INVENTION It is an object of the present invention as claimed to provide flexibility in storage devices such that it is not necessary to store a specific control program for a specific medium for reading and writing from and to an associated storage medium. It is another object of the invention to provide a data storage device or system by which control programs for reading and writing data from a storage medium associated therewith can be easily updated or upgraded. It is another object of the invention to provide a storage device which can be operated with a variety of storage media having different types of control operations associated therewith. It is another object of the invention to provide a data storage device which can be operated partly or completely independent of a host system when operating a control program for reading and writing data from an associated storage medium. It is an additional object of the invention to provide a control program in a data storage device which may be upgraded with little or no control from the host system. According to the invention, a new control program is loaded from the data storage medium itself, for example a tape cartridge. Thus, the data storage system having removable media according to the invention is equipped to download a control program directly from the media associated with the system. In this way, the control program in the data storage device may be upgraded with little or no control from the host system. In fact, the data storage device does not even have to be connected to the host. According to the invention, a data storage device utilizes a removable storage media and has internally a main control unit comprising a processor, and a stored so-called "boot" program. The device is designed so that an internal control program for a media may be replaced or updated by reading a new control program (or a part of a program) from data stored in the medium itself by use of the "boot" program. The control program for the medium is stored in a programmable (and erasable) control memory device like a DRAM, a SRAM, an EEPROM, or a flash memory. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a block diagram showing a typical prior art data storage system for reading and writing data from and to an associated medium; Figure 2 is a block diagram of a prior art microprocessor in a system like Figure 1 where a control program for the medium is stored in an EPROM; Figure 3 is a block diagram of the data storage system of the invention having a removable media and which is equipped to download a control program from the media; Figure 4 is a block diagram of an alternate embodiment of the invention; Figure 5 is a block diagram of a further embodiment of the invention; and Figure 6 is an illustration of a tape cassette having a physical opening for sensing by the drive unit of the data storage system so as to initiate a booting program according to the invention. DESCRIPTION OF THE PREFERRED EMBODIMENTS The basic organization of the main control unit 19 in the data storage system of the invention is shown in Figure 3. In practice, any number of processors 8 in the control unit 19 may be given a new control program by the system and method of the invention. With the invention, the microprocessor has a special control program already available to it in order to be able to load the new control program from the storage media. This will be described hereafter. The control unit 19 has a microprocessor 8 which contains a special program ("boot program") stored either internally in the microprocessor 8 itself as shown in Figure 3 with the program being stored in ROM, EPROM, RAM or Flash Memory 20 or in a special external storage device (Boot Storage 24) connected to the processor 22 in a main control unit, as shown in Figure 4, like a ROM, EPROM, EEPROM, Flash Memory, or the equivalent. This boot program is designed to execute the loading (reading) of data from the data storage medium into the main control program storage device (21 in Figure 3 or 23 in Figure 4), which can be an EEPROM, RAM, a Flash Memory or a similar device capable of storing the control program. The boot program may be started on command from the host (if connected), by a boot start activator on the storage device (like a push button 3, 4, or 5 as shown in Figs. 3, 4, and 5) or by inserting a special storage media which directly informs the drive's boot program to start booting, for example a special tape cartridge with a physical difference from a standard media (like an opening or an extra pin, etc. as shown at 31 of the tape cassette 32 shown in Figure 6). This special physical difference (for example a pin or opening) initiates the booting program by pressing an internal button or equivalent. It is also possible to use standard storage media with no physical differences, for example on the tape cartridge itself, but which has a special data recording stored on the media which when read by the data storage device, initiates the booting operation. In a further embodiment of the invention as shown in Figure 5, when informed either by a command from the host, by an external triggering like a push button 5 (either initiated by the operator or activated by a special cartridge or storage media such as shown in Fig. 6) or by reading special information recorded on the storage media which contains information that a new control program shall be loaded, the microprocessor 25 in the main control unit 6 transfers its current control program or a part of it (the "boot part") to a temporary storage device 27 like a RAM (DRAM or SRAM) or an EEPROM or Flash Memory. The microprocessor 25 then runs the boot program stored in this temporary device 27 and loads the new control program into the main control program storage 26. Thereafter, the new control program takes over. Using the methods described above with respect to Figures 3, 4, and 5, the storage device has a removable media like a tape drive which permits easy upgrading of the internal control program by transferring a new program from a specially recorded tape (or media) to the internal control storage memory. This memory is of a type which allows erasing and storing of new data. The loading of data for the first time is done by having a special boot program permanently stored in the microprocessor itself or by loading the boot program through other methods than from the media itself (for example, using a serial input channel to the microprocessor if available). Once the boot program is stored, the rest of the storage operation is then done from the reading of the media itself. When a drive reads a cartridge containing a main control program which shall be loaded into the flash or EEPROM memory 21, 23, or 26, some sort of protection is needed to assure that the right program is loaded. It is also important to make sure that someone does not get hold of a control program designed for another person (for example, a competitor) and is able to load it into his own machine. For example, today it is known to have different control programs for almost every customer. The customers want something special which can make them different from their competitors. Therefore, it is known to provide tape drives having EPROMs with different contents, partly custom made for each particular customer. This is important since it is desirable to assure a company that customer is anxious that his or her control program shall not be given to other companies. In the present invention, the drive equipped with means to download the control program from the drive media as described above (i.e., from a tape cartridge) has a protection built in to avoid that an incorrect control program is loaded. Such a protection can be made in many ways. In general, the drive and its associated main control unit is equipped with a special ID, which can be a unique number, letters, etc., which are permanently stored in the drive, for example inside the microprocessor as shown at 28, in Figure 3 or at 29 in the boot program fixed storage 24 as shown in Figure 4; or at 30 as shown in the boot program temporary storage 27 in Figure 5. When a control program load operation takes place, the drive first makes a check to see that its internal ID matches the ID of the control program to be loaded. If so, the program may be loaded, if not, the drive will refuse to load. In a further enhancement of this ID system, more than one customer control programs can be stored on the cartridge. The drive then sees the program which matches its own ID and loads only that one. Although various minor changes and modifications might be proposed by those skilled in the art, it will be understood that I wish to include within the claims of the patent warranted hereon all such changes and modifications as reasonably come within my contribution to the art. The features disclosed in the foregoing description, in the claims and/or in the accompanying drawings may, both, separately and in any combination thereof, be material for realising the invention in diverse forms thereof.

Claims: A data storage system, comprising: a removable storage medium (9), a control unit means (6, 7, 19) for the control of reading and writing of data to and from the removable storage medium (9) ; a control program means stored directly on the storage medium (9) itself; an erasable and programmable control program storage means (21, 23, 26) for receiving and storing of at least a part of said control program means whereby said control program means is operable by said control unit means (6, 7, 19) for reading and writing data from and to the storage medium (9) ; boot program storage means (20, 24, 27); boot program means for transfering at least a part of said control program means from the medium to the control program storage means (21, 23, 26); wherein the removable storage medium (9) comprises initiation means (31) for initiating said transfer. A system according to claim 1, wherein the control program storage means (21, 23, 26) is an erasable memory. A system according to claim 2, wherein the control program storage means (21, 23, 26) comprises a memory selected from the group consisting of an EEPROM, RAM, and flash memory. A system according to claim 1, wherein the control unit means (6, 7, 19) comprises a microprocessor (8, 22, 25). A system according to claim 4, wherein the microprocessor has said boot program storage means (20, 24, 27) constructed internally thereof. A system according to claim 5, wherein the boot program storage means (20, 24, 27) comprises a memory selected from the group constisting of a ROM, EPROM, RAM, and flash memory. A system according to claim 4, wherein the boot program storage means (20, 24, 27) is an external storage (24, 27) from the microprocessor. A system according to claim 7, wherein the boot program means external storage (24, 27) is a fixed storage (24). A system according to claim 8, wherein the boot program means fixed external storage (24) is a memory selected from the group consisting of a ROM, EPROM, EEPROM, and flash memory. A system according to claim 7, wherein the boot program means external storage (24, 27) comprises a temporary storage. A system according to claim 10, wherein the boot program means temporary external storage comprises a memory selected from the group consisting of a RAM, EEPROM, and flash memory. A system according to claim 1, wherein said initiation means comprises a special physical design characteristic (31) associated with a housing for the medium, and means are provided for detecting the physical design characteristic when the medium is loaded in the system. A system, according to claim 1, wherein said initiation means comprises a special recording on the medium, and wherein said system has means for detecting the special reccording as a signal for initiating the transfer of the control program means. A system according to claim 1, wheren the control program means on the tape medium (9) has a recorded ID associated therewith, wherein the control unit means (6, 7, 19) has a stored identification ID (28, 29, 30) therewith, and wherein means are provided for comparing the stored ID of the control unit means with the recorded ID of the storage medium (9) to determine whether they are the same, and if they are the same, then the boot program means is free to load in the control program means. A system according to claim 1, wherein the system can load the control program means independently of commands from the host computer. A system according to one of the preceding claims, wherein the means for updating comprises a boot program means for loading in the new control program from the medium to the control program storage (21, 23, 26). A system according to claim 16, wherein the boot program means is transferred from the processor to a temporary boot memory prior to loading in the new control program. A data storage method, using: a removable storage medium (9) comprising initiation means (31) ; a control program stored directly on the storage medium (9) itself; an erasable and programmable control program storage (21, 23, 26) which can store the control program; a control unit (6, 7, 19) for the control of reading and writing of data to and from the removable storage medium (9); under control of the control program in the control program storage ; a boot program; comprising the steps of: initiating the boot program by said initiation means ; loading at least a part of the control program from the storage medium (9) into the control program storage (21, 23, 26) by using the boot program.

Inventors: SOLHJELL ERIK, SOLHJELL, ERIK
Applicants: TANDBERG DATA, TANDBERG DATA ASA
Application year: 1991
Main classification: G06F9
IPC codes: G06F3, G05B19, G06F9