Method for mapping around defective sectors in a disc drive
This is a continuation of application Ser. No. 800,062 filed November 20, 1985 now U.S. Pat. No. 4,746,998. 
    
    
     This invention relates generally to magnetic disc memory apparatus and more particularly to means for improving performance of a disc drive by improved defect management. 
     Disc drive systems record and reproduce information stored on concentric circular tracks recorded on magnetic discs. The tracks are written and read by a magnetic transducer which cooperates with the surface of the disc. The transducer is positioned over a selected track or cylinder on the disk by an actuator mechanism. Detailed disclosure of disc drive machines and especially a typical linear actuator for positioning the transducers in alignment with a selected cylinder or track on the surface of a disc is found in U.S. Pat. No. 4,323,939; a rotary actuator incorporating a stepper motor for positioning a transducer is found in U.S. application Ser. No. 613,163 filed May 23, 1984. Both are incorporated herein by reference. 
     Disc drives, especially the positioning devices, are microprocessor controlled. The microprograms typically provided for disc drive controllers are required to meet strict customer and IO interface requirements. The interface requirements and the size of the programs require long development and test cycles before the programs can be committed to ROM or EPROM for production. Once the commitment has been made to put a program in ROM, it is difficult to correct any problems. Thus, products that are manufactured in high volume, with microprograms stored in ROM memory, have high cost per engineering changes which affect the ROMs, i.e., require scrapping the ROMs which have been previously manufactured. 
     Further, ROM/EPROM based products are difficult to customize for specific customer requirements, as each modification to the program requires a new ROM or EPROM. 
     Another major problem with storing all the control information for a disc drive in ROM, is that manufacturing testing of such a product is difficult as all the test programs must be held within the ROM. Further, it makes defect management difficult and inefficient. 
     It is an objective of this invention to provide an improved means for storing some of the controlling operating data in a microprocessor controller disc drive. 
     A further objective of this invention is to improve the system for controlling the data transducer in rotating disc data storage equipment. 
     Another objective of this invention is to improve the performance and reliability of rotating disc data storage devices while reducing its complexity and cost of manufacture. 
     A further objective of this invention is to increase the capacity of the rotating disc data storage device without increasing its complexity or cost of manufacture. 
     Yet another objective of this invention is to provide a more efficient approach to defect management. More specifically, in typical disc drive systems, any defective block on a track will cause the entire track to be flagged as defective. This results in a considerable loss in capacity. 
     It is an objective of this invention to bypass defects at a track sector level rather than at a track level. 
     Yet another objective of this invention is to provide a rotating disc data storage device with internal means for dynamically storing a defect list at a sector level to enhance maintenance and adjustment of the device. 
     Another objective of this invention is to provide a means for storing a data list which may be comprised of both the manufacture generated data defect list and a user supply defect list. Such storage of a manufacturer&#39;s defect list in dynamic memory will allow it to be generated by special test equipment, saved on disc in a specially protected area, and accessed by the controller to directly bypass defects without unnecessary seeking steps. Such defect management approach also allows for a user supplied defect list which may be added to the manufacturer&#39;s defect list, saved on the disk for future format operations and if necessary removed on command. 
     These and other objectives of this invention are achieved in a disc drive wherein two outer tracks of the disc in a region beyond the defined track 0 of a disc are used to store the drive operating microprogram, and/or manufacturing test program and/or specific mechanical perameters and media defect information. This information can be read from these outer tracks of the disc during initialization of the disc drive, or during seek operations of the drive. It allows the disc drive to react to microprogram problems without changing either a mask ROM or an EPROM. The microprogram is read onto the drive over the IO interface. 
     Writing the microprogram on the disc of the drive to be customized for each customer. This can be done by loading a customer&#39;s specific program on the drive at final test. 
     The product yield is also improved by this process as specific mechanical yield on electrical perameters can be adapted to by including these in the drive microprogram. 
     In the specific embodiment of the present invention, the defect list is stored as supplied by the manufacturer on the outer track of the drive. It is merged with the user supplied defect during formatting, and used during formatting to flag defective sectors. During initialization of the disc drive, is loaded into a section of dynamic memory so that it is quickly accessible during seeking of a particular address. 
     Thus, when a seek command is received, the defect list can be accessed, and the positioning command is modified to avoid accessing of a defective block, instead directly accessing the next fully effective block. 
    
    
     This invention can be better understood by reference to the following figures: 
     FIG. 1 is a plan view of a disc drive with which this invention is useful; 
     FIG. 2 is a block diagram of the sequence of steps to be followed in addressing a particular sector on a disc drive track; 
     FIG. 3 illustrates the arrangement of particular cylinders heads and sectors on a disc drive as shown in FIG. 1. 
    
    
     The typical disc drive as shown in FIG. 1 includes a plurality of discs 12 stacked on a spindle 25 for rotation by a spindle motor. A transducer 10 is positioned over any of the tracks 0-685 for reading or writing data on the selected track. The positioning occurs under control of a stepper motor 30 in response to commands from a microprocessor 40. Rotation of the stepper motor 30 and its spindle 36 causes a band 38 which is connected to the head 19 of arm 32 to wind and unwind on the spindle 36, moving the arm 20 and associated transducer 10 to the selected track. The following physical characteristics are typical of a disc drive and will be referred to in the explanation below: 615 cylinders (numbered 0-614), 4 heads (tracks per cylinder) (numbered 0-3), 17 sectors per track (numbered 0-16), 512 data bytes per sector, 41,820 sectors per head (numbered 0-41819). 
     In addition, the drive has two additional cylinders identified as -1 and -2 cylinders, with four tracks each, formatted 256 bytes per sector, 32 sectors per track and with a 1 to 1 interleave factor. 
     The objective of this invention is to minimize the time spent in mechanically seeking for the correct track. Such improper seeking can occur if the original seek is carried out to a block or track which is in fact defective. 
     Such disc media defects fall into two categories. One category comprises defects identified by the manufacturer during the course of testing, using stress enlarging techniques. These defects are supplied in a list in cylinder, head, and bytes from index formats. An example of the numbering scheme appears in FIG. 3. The cylinder 0 is a reference to the fact than in a disc drive having multiple data storage surfaces on discs, track 0 on each disc is defined as lying on a single cylinder 0. A separate head or transducer 10 reads and writes the data on each disc surface. Therefore, a particular location in any disc surface may be particularly identified by defining the cylinder and the head number (these two together combining to identify a particular track on a particular disc surface) followed by identifying a particular sector. 
     Other defects which must be taken into account are those identified by the user over a period of time. These defects are supplied in a list in logical block address format. The defect information and operating systems and the like may be stored on a disc drive for ready access in the disc drive on tracts -1 and -2 identified above. 
     In order to make best use of the defect list, the following steps are taken. First, the manufacturer&#39;s defect list is converted into a physical cylinder, head, sector format to make up the known defect list. 
     Secondly, the defective sectors are flagged so that they are functionally bypassed. 
     Thirdly, a method is provided for the user to add defects to the known defect list using logical block address format. (It is well known in the disc drive field to convert logical block addresses into cylinder head and sector addresses as most seek commands are initially input as logical block addresses.) 
     Fourth, the added defects are converted to physical cylinder head sector format, taking into account previous defects and the interleave factor in the discs. 
     Fifth, the added defects are merged into the known defect list. 
     And finally, the logical block address is translated into cylinder head and sector addresses and adjusted for defects to avoid performance hits during seek. 
     Considering these steps in detail, the first step is the conversion of the manufacturer&#39;s defect list into a physical cylinder, head, sector format. This becomes the known defect list. This is accomplished by taking the entry in the manufacturer&#39;s list and plugging cylinder and head into the known defect list and looking at the sector defect map to find the sector number or numbers that contain a comparable range for the bytes from index number. When a sector number match is found, that number is added as an entry into the known defect list. The last number in the known defect list is a relative defect in the list with the first entry being 1, the second entry 2, the third entry 3, and so on. All of this technique is well known in this technology. 
     The entries in the sector defect map overlap to account for gaps and speed variations, so it is possible for one manufacturer&#39;s defect entry to become two entries in the known defect list. Basically, the objective is to provide a list of defects defined in terms of cylinder head and sector on the disc of a particular disc drive. 
     Next, the defective sectors are flagged so that they are functionally bypassed. During format unit operation, the disc is incrementally formatted a track at a time, starting at cylinder 0, track 0, to cylinder 614, track 3. The first sector on cylinder 0 track 0 is formatted as logical block 0. The logical block address is incremented across the entire disc and not reset to 0 on track or cylinder boundaries. Before formatting each track, a table with an entry for each physical sector on the track is generated. Referencing the known defect list, any defective sectors are marked defective. The remaining sectors are numbered taking into account the interleave factor. The defective sector does not get a logical block address and does not cause a logical block address to be skipped. It merely means one less logical block for each defect encountered. Thus, this step is basically an extension of known formatting and sector addressing techniques, with the only modification being in the numbering scheme to take into account the defects which have been identified so that they are not given addresses and are not addressed during any data access command. 
     Next, the user can add defects to the known defect list using logical block address format, simply by using the standard manual format commands which are well known in the disc drive industry. 
     Next, the added defects are converted to cylinder head and sector format taking into account previous defects and the interleave factor. Thus, these are simply eliminated as possible addresses for data storage so that they are not reaccessed. 
     Next, the added defects are merged with the known defect list into a scratch pad area, in the microprocessor 40, then copied back into the known defect list so that a single merged list is generated. 
     Now, when a read command which comprises a logical block address as shown in FIG. 2 is received, it is converted into a cylinder head and sector address and adjusted for defects to avoid performance hits during seek time. In order to accomplish this, when the disc drive 15 is powered on, the known defect list is loaded into a RAM 41 which is part of MBU 40. (In this way, when new defects are added by a format command by the user, the new known defect list is written back to the -2 cylinder so that the latest updated defect list is always available to upload a power on time during operation is always available in the RAM 41.) 
     Read/write and seek commands are presented in logical block format to the microprocessor 40. In order to correctly position the actuator 32, and select the correct head 10, the logical block address is converted to target cylinder head and sector address at step 50. This alone would be enough information to correctly position the actuator head and select the correct head if there were no defects. The average seek time for such an operation is 65 milliseconds, with track time being 20 milliseconds. Because the known defect list is available in RAM at all times, the computed cylinder head and sector can be accurately corrected for defects as shown in the following steps in approximately 70 microseconds, thus avoiding a 60 ms to 20 ms seek to wrong track and a subsequent 20 ms to 65 ms reseek to the correct track is a considerable time saver. Thus simply by converting the incomming block address to cylinder head and sector address, and adjusting for defects, at 52, a seek to correct cylinder and head is immediately achieved. 
     For example, looking at the defective sector shown in FIG. 3, without the benefits of this invention, a command to read sector 67 would have initially required a seek to cylinder stroke but because the defective sector 67 is now on cylinder 1, a reseek with the necessary time to carry out this reseek would have had to occur. Instead, an automatic adjustment is made to the correct seek address with no loss in performance. 
     Thus following step 52, a seek to the correct cylinder and head position is immediately carried out and a read operation conducted at 56. If more blocks are to be transferred as shown at the decision block 58, the next block is converted to cylinder head sector format at step 60; the necessary cylinder or head switch is carried out at step 62; and a branch is carried out to select the correct head. Then the program returns to step 54 to seek the cause the actuator to seek the correct track address. If no cylinder or head switch is required at step 62, the next block is immediately read at step 64 followed by a return to the command to wait for the end of the sector at 66 and then branching to the finish of the program. 
     In summary, by providing for an adjustment for defects immediately upon receipt of a block address from a user as part of a seek command, considerable time and performance is saved. Further, an improvement is achieved over prior art methods which an entire track had to be flagged defective with alternate data tracks being provided for storage of the data intented to be stored in the defective blocks. This alternative approach resulted in a considerable loss in capacity. 
     Alternatives to the present invention may become apparent to a person of skill in the art who studies this invention disclosure. Therefore, the scope of the present invention is to be limited by the claims which follow.