[ 0021 ] fig2 is a block diagram illustrating a programmable media - read processor 200 designed in accordance with a preferred embodiment the present invention . the electronics of the media - read processor 200 may be implemented on multiple semiconductor chips or may be integrated onto a single die . similar to the system shown in fig1 the media - read processor 200 typically interfaces to a system host processor , a motor and a pick - up device . while this embodiment focuses on an optical system incorporating a laser for disk illumination and a photo diode receiver , it is to be understood that the invention applies to various forms of media with differing details in the design and implementation . also , while the discussion focuses on a cd - rom embodiment , the system is equally applicable to dvd and other systems . in the preferred embodiment of fig2 a photo diode array ( not shown ) supplies a photo diode matrix signal consisting of one or more laser diode outputs on line 202 to a preamplifier and summing matrix circuit 204 . the preamplifier and summing matrix circuit 204 supplies an rf ( radio frequency ) output signal to a read channel processor 206 and supplies control information to a servo processor 218 . the read channel processor 206 supplies a phase modulated digital signal to a decoder 208 . the decoder 208 supplies a digital bit stream to at least one of a buffer memory 210 and an optional third level ecc processor 212 . if the optional third level ecc processor is employed , the optional third level ecc processor supplies error reporting output to a microcontroller 214 . if the optional third level eec processor 212 is not employed , then the decoder 208 bypasses eec block 212 and passes a set of lower level ecc ( circ ) information generated within the decoder 208 to the microcontroller 214 . the microcontroller 214 and the buffer memory 210 are both coupled to a system interface block 216 which may include a tray front panel interface , a standardized cd - rom data path , and an interface to a host processor . the microcontroller 214 is also coupled to a servo processor 218 . the servo processor may receive various inputs from the cd - rom enclosure , for example a tray front panel signal and a monitor diode signal . the servo processor 218 provides output signals to an opto - mechanical interface 220 which provides a set of actuator drive signals for motor control and a laser signal used to illuminate the information track of the disk . the media - read processor 200 is operable to convert information signals received from a photo diode array into a digital bit stream suitable for use in audio , video , and / or computer systems . the media - read processor 200 is also operable to interact via the servo circuit 218 and the opto - mechanical interface 220 with attached the cd - rom drive by controlling the spin rate of the disk , the radial location of a laser beam located within the cd - rom drive , the focusing of the optical signals , and the like . hence the media - read processor &# 39 ; s main functions are processing the information reflected from the disk , and controlling the disk drive itself to provide the proper photo diode input signal . the photo diode array signal which enters the system at the input line 202 preferably includes four individual photo diode signals . these four signals are generated in the pick - up ( see block 125 in fig1 ) which preferably includes a planar array of four photo diodes . the presence of four photo diodes arranged in a planar array provides directional information used by the servo processor to keep the received laser signal focused into the center of the planar array . the preamplifier and summing matrix block 204 sums the four photo - diode signals from input line 202 to provide an rf output signal which contains phase modulated , analog information . this rf output signal is supplied to the read channel processor 206 . also , the preamplifier and summing matrix 204 sends the directional information to the servo processor 218 which uses this information to keep the laser beam focused in the center of the photo - diode receive array . the read channel processor 206 preferably includes a cascade of a high pass filter , an agc ( automatic gain control ) amplifier , a slicer / digitizer , and a clock recovery circuit . the read channel processor 206 delivers a digital bit stream with associated clocking signals to the decoder 208 . the decoder 208 preferably performs multiple functions . first , it analyzes the input information stream and looks for a frame level synchronization signal . also , as per the standard cd - rom information stream format , the decoder strips off the added synchronization and merger bit fields embedded within the bit stream . next it performs efm ( fourteen to eight bit ) demodulation . efm demodulation reduces a frame of 14 - bit code to a frame of 8 - bit code ( bytes ) creating a f 3 frame . the decoder then strips out subcode information and sent for subcode processing . next the decoder performs 2 level circ ( cross interleaved reed - solomon ) decoding on a 32 - byte f 2 frame , passing the frame through a error correction ( c1 )/ de - interleaved / error correction ( c2 ) process to generate complete , corrected 24 - byte f 1 frames . both the efm and circ operations occur at the frame level of the information hierarchy . in audio applications , the circ decoded bit stream is the final output and is sent to the buffer memory 210 to be interfaced to the host or media player device via a system interface 216 . in data applications , the circ - decoded data is byte - swapped , descrambled , sector - formatted and sent to the third level eec block 212 . the third level ecc occurs at the sector level of the information hierarchy . the final sector - formatted bit stream is sent to the buffer memory 210 to be interfaced via a system interface 216 to the host system . the various ecc decoding operations generate information , indicating the error level in the decoded bit stream . depending on the implementation , information from any or all of these ecc levels may be forwarded to the microcontroller 214 which executes the media - read processor 200 &# 39 ; s control algorithms . in accordance with a preferred embodiment of the present invention , the microcontroller 214 includes control algorithms that monitor the error levels as reported by selected ecc decoding operations . based on these reported error levels , the microcontroller may send various types of commands to the servo processor 218 . for example , the microcontroller may send a re - read signal to command the servo to attempt to re - read the same track at the same speed . alternatively , the microcontroller may command the servo to reread the track at a higher or lower speed . the microcontroller 214 preferably executes rom - coded algorithms with associated flow diagrams that allow the processor to learn and remember characteristics of the disk currently in the drive and to send speed oriented commands to the servo processor 218 . in some embodiments the microcontroller may be implemented as a hardwired state machine . the servo processor 218 executes servo control algorithms as are known in the art for example to spin the disk at specified speed , to position the laser in track - seek operations , and to focus the laser . the opto - mechanical interface 220 is used to generate actuator drive currents for the motors within the disk drive and to turn the laser on and off . [ 0027 ] fig3 is a flowchart that illustrates a method 300 for reading information stored on a disk in accordance with the present invention . in the preferred embodiment , the method 300 is a portion of an overall control algorithm executed by the microcontroller 214 . this method will be discussed in connection with the preferred embodiment of the media - read processor 200 , but could be applied to other types of media - read ( or media - read / write ) processors as well . in the first step 310 of the method , a speed parameter i is initialized according to a function i = i ( s ) where i is an initialization function . the argument of this function , s , corresponds to a set of one or more state variables maintained in the system . for example , the variable s may correspond to the radial position of the laser on the media and any other history related information that may be used to set an initial speed for a given track . in a second step 320 of the method , a command is forwarded from the microcontroller 314 to the servo processor 218 to instruct the servo processor to perform a read operation at a specified spin rate i . in typical applications i may be an index into an array of control parameters employed by the servo processor 218 . in a decision step 330 of the method , a function f ( er , s ) is computed and compared to a threshold value t . while decision step 330 employs a greater than comparison , any other comparison such as less than , equal to , greater than or equal to , or the like may be used , depending on the implementation . the function f ( er , s ) is an arbitrary function that may be tuned to the specific system needs . the first argument , er , corresponds to a detected error rate from any or all of the ecc processing levels employed within the system . the second optional argument of this function , s , corresponds state variable information maintained in the system as described above in connection with the function i ( s ). as indicated by the outputs of the decision step 330 , if the f ( er , s ) is above a threshold value t , control is passed to a step 340 where the speed parameter is modified according to i = i + j ( er , s ). here an arbitrary function j ( er , s ) is a used which determines how to modify the speed given the reported error rate , er , and any state information , s , deemed useful in the system as described above . after the speed parameter is modified in the step 340 , control is passed back to the step 320 which passes , for example , read command and the modified speed parameter , i , to the servo controller 218 . if the decision step 330 evaluates to false , then the received data is deemed to be acceptable and control is passed to a step 350 wherein the data is written to the output buffer . in the method 300 , the functions i , f , and j are arbitrary functions . thus one or both arguments of each function are optional . for example , one could set j ( er , s )=− 1 , so that every time the condition 330 evaluates to true , the spin - speed decremented by one interval . note that the parameter i may be an index into a speed array . for example , the first unit decrement may move the speed from 32x to 16x while the second unit decrement may move the speed from 16x to 12x . also , as i , f , and j are defined as arbitrary functions whose arguments may include state variables , these functions may be implemented via sequential logic . that is , any sequence of program steps used to generate these numbers may be used to implement the functions i , f , and j . for example , subroutines implementing any or all of combinational logic , sequential if - then logic , and fuzzy logic are anticipated . also , as illustrated in the example below , other steps and decision logic may be incorporated into the method 200 without departing from its scope . [ 0029 ] fig4 illustrates a particular embodiment of the method 300 as implemented within an optical disk system in accordance with a preferred embodiment of the present invention . this method will be described in connection with the media - read processor 200 , however the method may be applied in systems with modified hardware architectures and in other related systems involving other forms of media and read / write - channels . a first step 410 commands the system to move the laser to a selected track designated as track x and to read the data encoded thereon . during the read operation , an error rate parameter er is generated to report the quality of the read data based on the ecc processing described in connection with fig2 . a decision step 415 checks the er value by comparing the function f ( er , s ) against a threshold t . as described in connection with fig3 various types of compare operations may be used in any of the decision diamonds of the method 400 without departing from the scope of the method . in this disclosed example , if the error rate is below the threshold , t , control passes to a step 470 where the data is sent to the output buffer and algorithm is terminated in an exit path 480 . if the er value is deemed to be too high , control is passed to a step 420 where the servo mechanism is recalibrated , the laser is moved back to track x , and a read operation is attempted once more . a new value of er is thus obtained based on the ecc processing of the read data of the step 420 . this value is checked in a decision step 425 which may optionally use a decision function different from the one used in the step 415 . if the comparison 425 evaluates to false , the read data is deemed to be of sufficient quality and control passes to the step 470 and subsequently onto the exit path 480 as previously described . if the comparison 425 evaluates to true , the data is deemed to be of insufficient quality and control is passed to a step 435 . in the step 435 the speed is modified as discussed in connection with 340 fig3 . in this example , the function j ( er , s ) is chosen to be a decrement of one unit so that the speed is lowered to the next lower level . next , step 435 initiates re - seek to track x and a re - read operations . a new value of er is generated by the ecc processing circuits during the read operation commanded in the step 435 . this new er value corresponding to the read data at the lower speed is checked in a step 440 against a threshold . the function , f , in step 440 may optionally be set to be different from those of steps 415 and 425 . if the comparison evaluates to false , the read data is deemed to be of sufficient quality and control passes to the step 470 subsequently to the exit path 480 as previously described . if the comparison evaluates to true , the data is deemed to be of insufficient quality and control is passed to a second decision step 445 which checks an end condition to see if the speed has been decremented to the lowest possible value . if the end condition is false , control loops back from decision step 445 to the step 435 wherein the same process is repeated . if the end condition of step 445 evaluates to true , control passes to a step 450 where settings in the read channel control register are manipulated , a re - seek operation is performed , and the information track x is re - read . after the read of the step 450 , control passes to a decision step 455 which checks an er value generated in the read operation of the step 450 to check the quality of the read data . the function , f , in the decision step 455 may optionally be set to be different from those of steps 415 , 425 and 440 . if the comparison 455 evaluates to false , the read data is deemed to be of sufficient quality and control passes to steps 470 and 480 as previously described . if the comparison evaluates to true , indicating the data is still of insufficient quality , control is passed to a step 460 . in the step 460 , a command is issued which causes the servo to “ spin down ” meaning the drive is put in an inactive state where the disk is at rest . next the step 460 reports the no - read event to the host processor , for example using the system interface 216 . after the step 460 , the method 400 is exited in block 485 . it should be noted that the method illustrated in fig4 may serve a component within higher level control algorithms . for example , a read - error control algorithm may applied to ensure that successive tracks continue to be read reliably by monitoring the er values for read each track . as long as the er values are below a threshold , reading may continue . in this example , when an er value is detected above a threshold the higher level read - control algorithm will fork control to block 410 as the entry point to apply the method 400 . in a seek - error control algorithm the block 410 may be entered upon each new seek wherein only the track header information may be needed to confirm the seek . once the seek has been confirmed and a speed has been set , control may fork back to the higher level read algorithm which will only fork to block 410 if a read - error is detected while attempting to read the information after the confirmed seek operation . [ 0034 ] fig5 is a diagram illustrating a radial speed map of a disk according to an aspect of the present invention . here a disk 500 is segmented radially into n radial bands whose widths may be defined in various ways . in fig5 an embodiment wherein the disk 500 is partitioned into ten equal - radius bands is illustrated by way of example . in this example , the ten equal - radius bands are enumerated from zero to nine as indicated by a line segment 510 . a speed map 520 consists of an array of numbers each of which preferably corresponds to the highest speed at which data may be reliably read from an associated band on the disk 500 . as illustrated in fig5 radial band labeled zero has an associated entry i0 in the speed map 520 . this value i0 is the speed determined , for example , by applying the method 400 to selected tracks within band zero . similarly , the other bands each have corresponding entries in the speed map array 520 . by maintaining a speed map , the initial speed estimate as computed in step 310 of method 300 may be read out of the speed map array as a function of the radial distance from the information track to the center of the medium . this speed map may also be incorporated into the method 400 by initializing the speed in the step 410 to the value stored in the speed map array 520 . the speed map allows the system to take advantage of the fact that imbalance effects do not inhibit reading equally at all radial distances . for example , in cd - roms , the information at the outer edge of an imbalanced disk is more severely affected than the data near the center . although the present invention has been described with reference to a specific embodiment , other embodiments may occur to those skilled in the art without deviating from the intended scope . for example , in an alternate embodiment , the media - read processor 200 may be redesigned to operate with a spinning magnetic medium in which case the laser and photo diode circuits are replaced by magnetic related circuits . also , while the media - read processor 200 focuses on the read operation , a similar system with write capabilities is anticipated . also , various blocks of the media - read processor 200 may be merged or distributed . for example some of the functionality of the microcontroller 214 may be moved into the servo processor 218 . as discussed in connection with the method 300 , the method 400 may be modified and similar methods may be constructed to increase the read speed , for example if error rates are below specified thresholds . that is , the comparison blocks in fig4 may be modified to test multiple conditions such as if f ( er , s ) is below a first threshold and above a second threshold . also , as illustrated by the difference between fig3 and fig4 various other steps and control structures may be added without deviating from the scope of the present invention . for example the step 450 may be replaced by a loop that modifies multiple settings in the read channel control register and checks the error condition for these multiple settings . therefore , it is to be understood that the invention herein encompasses all such embodiments which do not depart from the spirit and scope of the invention as defined in the appended claims .