Medium dependent write equalization

A medium dependent write equalization method is disclosed. The method includes identifying a trait of a magnetic medium. A characteristic of a write equalization signal is then defined according to the identified trait of the magnetic medium.

Binary data is stored on magnetic media by magnetizing small areas of the magnetic surface with one of two polarities. When writing data, a write system passes a write current through an inductive head. A write current in one direction through the head sets the polarity of the media adjacent to the head to one polarity; a reverse in current direction sets the opposite polarity. The transition between polarities is called a flux transition. A flux transition occurring at a data bit location may represent a one bit, and a no flux transition may represent a zero bit. The opposite may instead be true. A flux transition occurring at a data bit location may represent a zero bit, and a no flux transition may represent a one bit. More generally, a flux transition occurring at a data bit location represents a transition bit which may be a one bit or a zero bit. The absence of a flux transition at a data bit location represents a non-transition bit. Data bits as described here, depending on the encoding scheme used, may or may not map into actual customer data bits.

In one example of a magnetic mass storage system implementation, previously written media is passed under a magneto-resistive (MR) head. The resistance of the head varies as the magnetic flux changes when passing over the alternating magnetic fields of the previously recorded small magnetized areas. A constant current is passed through the head, converting resistance changes to voltage variations. Thus, the flux transitions are converted into voltage pulses, so that the information in a resulting read signal is encoded in the temporal spacing of pulse peaks. A pulse is a single vibration of voltage or current in a signal. The read system samples pulse sequences to decode the corresponding binary data.

To help shape the pulses for the read system, the write system can add write equalization pulses to the write current. Write equalization pulses occur at a faster rate than that at which the transition bits are written. One use of the write equalization pulses is to “AC-erase” the media between largely separated pulses, preventing saturation of the MR head during read back and providing lossless slimming of the read back pulse shape. Accordingly, write equalization pulses typically are added for relatively sparse patterns of the binary data and not for relatively dense patterns that are self-slimming and naturally limited in read back amplitude. As an example, a sparse pattern could be a single or a sequence of two, three or four or more consecutive non-transition bits. A dense pattern could be a single or a consecutive sequence of two, three, or four or more consecutive transition bits.

Write equalization pulses typically have a single fixed width set as a fraction of the write clock. Not all magnetic media and heads write the same way, so for multiple head vendors and/or interchange reasons, a single pulse width may not be optimum. In other words, equalization pulses of a given fixed width may not be optimal for use by a particular head when writing to a magnetic medium of a particular type.

DETAILED DESCRIPTION

INTRODUCTION: Magnetic media produced by one manufacturer may have characteristics different than magnetic media from another manufacturer. Similarly, write heads may have different characteristics depending on their source. When writing data to magnetic media, write equalization is used to shape the voltage pulses for the read system. Typically, write equalization pulses have a fixed width that may not be optimal for a particular magnetic medium, write head, or combination of the two. Various embodiments, described below, operate to vary the width of equalization pulses to “tune” the writing process to a particular head and medium combination,

The following description is broken into sections. The first section labeled “Magnetic Media” describes an exemplary magnetic media drive and the manner in which the drive encodes data. The second section labeled “Write Equalization” describes the function of write equalization. The third section labeled “Medium Dependence” describes various implementations where the manner in which write equalization is implemented is dependent upon the magnetic medium to which the data is being written.

MAGNETIC MEDIA:FIG. 1illustrates an exemplary magnetic media drive's read/write components10in which embodiments of the present invention may be implemented. Implementation, however, are not limited to use with tape drives. Embodiments may be implemented in other data storage products.

Media drive10writes to and reads from magnetic tape12which is fed from supply reel14to take-up reel16along a tape path passing by read/write head18. Actuator20positions head18over magnetic tape12to read from or write on specific tracks (stripes) down the tape12. During a read operation, signals pass from head18to read channel22located on controller24. During a write operation, signals pass from write channel26to head18. Controller24, which includes a processor28, controls the operation of the tape drive, including reels14and16, actuator20, read channel22and write channel26. Controller24receives read instructions, write instructions, and data from a computer or other host.

Although only one head18and associated read channel22and write channel26are shown, typical magnetic media can have multiple tracks, and such tape drives will usually have an array of many such heads formed in a composite head structure. The controller will include a read channel and a write channel for each head in the array. In some tape drives, separate read heads and write heads are used instead of combined read and write heads, as may be pairs of heads to facilitate read after write operation in both directions of motion of the recording medium.

Moving toFIG. 2, an exemplary write channel26is shown to include data buffer30, write signal engine32, and write clock34. Data buffer30represents generally any suitable hardware serving as a temporary storage for data to be written—write data. Write signal engine32represents generally any combination of hardware and/or programming capable of generating a write signal corresponding to write data sampled from data buffer30. A write signal is a signal generated to cause write head18to encode magnetic media with write data. For example, a write signal may be a write current in which a transition or reverse in current direction through write head18may represent a one bit and the absence of a transition may represent a zero bit.

Alternatively, a transition or reverse in current direction through write head18could represents a zero bit and the absence of a transition at a data bit location could represents a one bit. More generally, the bit represented by a transition in a write signal can be referred to as a transition bit as opposed to a non-transition bit. In the examples that follow, one bits are shown to be transition bits, but zero bits could just as easily be transition bits with the one bits being non-transition bits.

Write clock34represents any combination of hardware and/or programming suitable for providing a write clock signal to write signal engine32. The write clock signal sets the timing of any transitions in the write signal. Without write equalization, the write clock generally represents the resolution of possible transition spacings allowed on the storage medium. With write equalization, the write clock is generally a multiple of the possible transition spacings, allowing for the writing of pulses at rates too fast for the storage medium to resolve.

FIG. 3illustrates an example of a stream of write data36, a write clock signal38, a corresponding write signal40, magnetic media42, and a read signal44. Write data36, read from left to right, represents a stream of binary data to be encoded on magnetic media42. Here, a transition occurs in write signal40for each transition bit—in this example, for each one bit. Each transition occurs on a rising edge of write clock signal38and results in a change in polarity of the magnetic fields encoded on magnetic media42. Consequently, sequential areas of magnetic media42are encoded with alternating and opposing magnetic fields. The transition from one field to another results from a transition of write signal40. In the examples shown, “N/S” represents a relative North-to-South polarization while “S/N” represents a South-to-North polarization.

When a magneto-resistive head is used to read magnetic media42, a read signal44is generated that includes a series of pulses. Each pulse in read signal44represents a transition from one magnetic field to another as detected by the head. With the relatively high and consistent frequency of transitions in the polarization of magnetic media42, the height “H” and width “W” of the read signal pulses are generally uniform, allowing the read signal to be more easily translated into a form corresponding to write data36.

Sparser (more widely separated) polarization of magnetic media can create undesirable non-linear pulse characteristics when reading back the example signal illustrated inFIG. 4. A stream of write data46containing a relatively sparse data pattern48and a relatively high density data pattern49, a write clock signal50, and a write signal52corresponding to write data46. Again, in this example, a transition in write signal52occurs for each one bit in write data46with each transition occurring on a rising edge of write clock signal50. Having only a single transition bit (a one bit at the beginning followed by three zero bits in this example), sparse pattern48creates a relatively long, low-frequency pulse54in write signal52. Pulse54can be said to represent a relatively long duration of non-transition in write signal52. High density pattern49of write data46includes a consecutive series of transition bits and creates a series of relatively short, high frequency pulses55. Each of the pulses in55can be said to be a relatively short duration of non-transition of write signal52.

Sequential areas of magnetic media56are encoded with alternating and opposing magnetic fields. The transition from one field to another results from a transition of write signal52. The relatively large size of pulse54creates an area58on magnetic media56with a relatively low frequency in the transition between differing magnetic fields. The relatively small size of pulses55creates an area59on magnetic media56with a relatively high frequency in the transition between differing magnetic fields.

When a magneto-resistive head is used to read magnetic media56, a read signal60is generated that includes a series of pulses62-72each representing a transition from one magnetic field to another as detected by the head. Pulse62results from the relatively low frequency transition in magnetic field from “N/S” to “S/N” in area58of magnetic media56. Pulses64-72result from the relatively high frequency transitions between opposing magnetic fields in area59of magnetic media56. The relatively low frequency of transitions in area58saturates the magneto resistive head, increasing the height (H1) and width (W1) of pulse62. The relatively high frequency of transitions in area59results in pulses having generally uniform heights (H2-H5) and widths (W1-W5).

Most read channels require linearity in the read signal to effectively recover the originally written data. Any saturation in pulse62compared to pulses64-72results in non-linearities that make read signal60difficult to translate into a form corresponding to write data46.

WRITE EQUALIZATION: A process referred to as write equalization is used to help properly shape the read signal where sparse patterns in the write data would otherwise cause saturation in the read signal. Moving toFIG. 5, an exemplary write channel26A is shown to include data buffer30, write signal engine32, and write clock34as well as equalization engine76, equalization clock78, and multiplexer80. It is noted that write signal engine32and write clock34, equalization engine76and equalization clock78, and multiplexer80can be implemented in a single hardware block to create a combined engine capable of properly encoding write- and non write-equalized clock and data pulses.

Equalization engine76represents generally any combination of hardware and/or programming capable of generating a write equalization signal for relatively sparse data patterns sampled from data buffer30. Equalization clock78represents generally any combination of hardware and/or programming suitable for providing a write equalization clock signal to equalization engine76. Multiplexer80represents generally any combination of hardware and/or programming capable of combining the write signal and the write equalization signal into a common signal to be sent to write head18.

A write equalization signal is a series of pulses at a frequency too high for magnetic media to respond. In other words, instead of magnetizing areas of the magnetic media, the write equalization pulses act to erase the magnetic media. For relatively dense patterns, the write equalization signal may have no pulses. In other words, write equalization may be turned off. A dense pattern, for example, could be a single or a consecutive sequence of two, three, or four or more consecutive transition bits. For relatively sparse patterns, the write equalization signal will have corresponding pulses.

FIG. 6provides an example of the effects of write equalization. A stream of write data82containing a relatively sparse data pattern84, a write clock signal86, and a write signal88corresponding to write data82. As before, a transition in write signal88occurs for each one bit in write data82with each transition occurring on a rising edge of write clock signal86. Having only a single transition bit (a one bit in this example), sparse pattern84creates a relatively long, low-frequency pulse90in write signal88.

FIG. 6also shows equalization clock signal92. In the example shown, the frequency of equalization clock signal92is ten times that of write clock signal86. It is noted that the actual multiplier between equalization clock signal92and write clock signal86may be dependent on the resolution of the final write equalization edges illustrated by write equalization94and can be any linear or fractional multiple of write clock signal86, depending on the particular implementation. Write equalization signal94contains pulses96timed to correspond with the non-transition or zero bits of sparse data pattern84. The shape of write equalization pulses96can be described by their duty cycle. Each pulse96has a duty cycle selected as a function of equalization clock signal92. As shown, that duty cycle is ⅖. In other words, each pulse96is at a high state for two periods of equalization clock signal92and at a low state for three periods of equalization clock signal92. The duty cycle indicates that write equalization pulses96are at a high state two-fifths of the time.

Multiplexing write signal88and write equalization signal94results in combined signal98. Here, write equalization signal94has been subtracted from write signal88. As a result, write equalization pulses99, which are inverted counterparts to write equalization pulses96, shorten low frequency pulse90into a higher frequency pulse99.

Sequential areas of magnetic media100are encoded with alternating and opposing magnetic fields. The transition from one field to another results from a transition of combined signal98. Write equalization pulses99are timed at a frequency too high for magnetic media100to respond. As a result, write equalization pulses99serve to erase a corresponding area102of magnetic media100.

When a magneto-resistive head is used to read magnetic media100, a read signal104is generated that includes a series of pulses106-112each representing a transition from one magnetic field to another as detected by the head. Erased area102serves as a pause between transitions and prevents pulse106from growing too large. As a result, the height “H” and width “W” of the read signal pulses are not allowed to saturate the magneto resistive head, maintaining linearity and allowing the read signal to be more easily translated into a form corresponding to write data82.

MEDIUM DEPENDENCE: Summarizing the prior section, where a stream of write data includes a sparse data pattern, a write equalization signal is combined with a corresponding write signal. The write equalization signal includes one or more higher frequency pulses to help properly shape a resulting read signal. Instead of using write equalization pulses with fixed characteristics (as in the prior section), the write equalization pulse characteristics can be tuned based on a trait of the particular magnetic medium in use. Characteristics of a write equalization signal include the timing and shaping of the write equalization pulses. A trait of a magnetic medium, for example, can include the identity of its manufacturer. A trait can also include a unique manner in which a particular type of medium responds. Further, if one or more properties of the medium is sensed to change depending on position down that medium, write equalization can be adapted dynamically to the changes. For example, the same data may be written to magnetic media from different manufacturers. The characteristics of a read signal corresponding to that write data may vary from one medium to the next, or even down the length of the medium.

Moving toFIG. 7, an exemplary write channel26B is shown to include data buffer30, write signal engine32, and write clock34as well as equalization engine76A, equalization clock78, multiplexer80, and detector114. Detector114represents generally any combination of hardware and/or programming capable of identifying a trait of a magnetic medium. Equalization engine76A represents generally any combination of hardware and/or programming capable of generating a write equalization signal having one or more characteristics defined according to the identified a trait of the magnetic medium. Equalization clock78represents generally any combination of hardware and/or programming suitable for providing a write equalization clock signal to equalization engine76. Multiplexer80represents generally any combination of hardware and/or programming capable of combining the write signal and the write equalization signal into a common signal to be sent to read/write head(s)18.

In the examples discussed below with reference toFIGS. 8 and 9, detector114can identify a trait of a given magnetic medium by discovering a source of the medium or by sampling a read signal corresponding to a known set of write data encoded on the magnetic medium. Equalization engine76A can then tune the characteristics of write equalization pulses according to that trait. This tuning can take place the first time the medium is used, initially after each loading of the magnetic medium, or dynamically as the medium is being written to.

Staring withFIG. 8, an exemplary write channel26C capable of identifying a trait of a tape cartridge by identifying its source is illustrated. InFIG. 8, tape cartridge116is shown to include identifier118. Detector114A is shown to include cartridge interface120, reporter122, and LUT (Look-Up-Table)124. Identifier118represents generally any memory storing identifying data. The identifying data can be any data that at least indirectly identifies a tape cartridge as being of a particular type. Identifying data may be data that is unique to a source or manufacturer of tape cartridge116. For example, a tape cartridge from one source will include identifier data different from that of a tape cartridge from a different source.

Cartridge interface120represents generally any combination of hardware and/or programming capable of communicating with identifier118to obtain identifying data for cartridge116. For example, identifier118may be an RFID (Radio Frequency Identification) tag and cartridge interface120may be a reader capable of activating the tag to obtain the identification data wirelessly via link126. Alternatively, tape cartridge116may include electrical contacts that enable a physical connection126between identifier118and cartridge interface120.

Reporter122represents generally any combination of hardware and/or programming capable of supplying equalization engine76A with tuning data corresponding to identification data obtained by cartridge interface120. Tuning data is data that can be used by equalization engine76A to generate an equalization signal having particular characteristics. As discussed below, those characteristics can include the timing and shape or duty cycle of the equalization pulses.

In performing its task, reporter122may utilize LUT124. LUT124represents generally any data source having entries that correlate identification data with tuning data. Using identification data obtained from cartridge interface120, reporter122can retrieve tuning data from LUT124corresponding to that identification data and pass the tuning data for use by equalization engine76A. Equalization engine76A can then generate an equalization signal with pulses having characteristics defined, at least in part, according to the tuning data.

Moving toFIG. 9, write channel26D is capable of identifying a trait of a magnetic medium by sampling the particular characteristics of a read signal corresponding to a known set of write data encoded on the magnetic medium. The trait, in this example, are the characteristics of the read signal. InFIG. 9, detector114B is shown to include read interface128, reporter130, and LUT132. Read interface128represents generally any combination of hardware and/or programming capable of sampling a read signal corresponding to a known set of write data encoded on the magnetic medium. Reporter130represents generally any combination of hardware and/or programming capable of comparing one or more characteristics of the sampled read signal with expected characteristics.

Reporter130is then responsible for providing tuning data to equalization engine76A based on differences, if any, between the sampled characteristics and the expected characteristics. Expected characteristics are characteristics of a read signal corresponding to write data encoded using an equalization signal tuned to the particular magnetic medium in use. In other words, when a known set of write data is encoded using an equalization signal tuned to the magnetic medium, the read signal corresponding to that write data will have certain expected characteristics (within a given tolerance). Such characteristics can in include the shape and timing of the pulses in the read signal.

In performing its tasks, reporter130may utilize LUT132. LUT132represents generally any data source having entries that directly or indirectly correlate tuning data with difference data, or any hardware that relates input signals to output tuning control signals. Difference data is any data that at least indirectly represents the difference between sampled characteristics and expected characteristics of a read signal corresponding to a known set of write data. For example, difference data may include data representing the expected characteristics of various read signals each corresponding to a unique set of write data. After sampling a read signal, reporter130can ascertain both the sampled characteristics and, in many cases, the set of write data. With that information, reporter130can access LUT132to obtain the expected characteristics for a read signal corresponding to that write data. Based on the differences, if any, between the sampled characteristics and the expected characteristics, reporter130can then retrieve the appropriate tuning data from LUT132.

Alternatively LUT, may simply correlate expected characteristics of a read signals with a sets of write data corresponding to those read signals. Knowing the set of write data corresponding to a sampled read signal, reporter130can obtain the expected characteristics from LUT132. Reporter130will then determine a difference between the sampled characteristics of the read signal and the expected characteristics and calculate the appropriate tuning data based on that difference.

Reporter130is provided a number of opportunities to perform its tasks during the normal operation of a media drive. When a magnetic medium such as a tape cartridge is first used, a calibration process is performed in which test data is written and then read back to verify proper operation. Reporter130can “piggy-back” on this calibration process to sample a read signal and supply tuning data to equalization engine76A. Alternatively, in a verification process, data written to a magnetic medium is read back either periodically or continuously to verify a current recording process. Reporter130could “piggy-back” on the verification process to periodically sample read signals and supply tuning data to equalization engine76A in real time.

FIG. 10illustrates examples of variably shaped write equalization pulses.FIG. 11illustrates examples of variably shaped and timed write equalization pulses.FIGS. 12-14are flow diagrams illustrating method steps for implementing various embodiments. Starting withFIG. 10, a write clock signal is referenced as134. Write equalization clock signal is referenced as136and has a period T. Each pulse of write clock signal134has a width 5T. Signals138-144illustrate variously shaped write equalization pulses. Restated, signals138-144have varying duty cycles. The duty cycle of each may, for example, be selected after identifying a trait of a magnetic medium being written to. The particular duty cycle selected in a give case depends on an identified trait of that medium.

The equalization pulses of signals138-144each have a period of 5T equal to the pulse width of write clock134and are timed to coincide with the pulses of write clock134. In other words, the rising edge of each equalization pulse in signals138-144coincides with a rising or falling edge of write clock signal134. Signal138has a duty cycle of 1.5T/5T. Signal140has a duty cycle of 2T/5T. Signal142has a duty cycle of 2.5T/5T, and signal144has a duty cycle of 3T/5T. In these examples, the duty cycles are based on the timing of edges of clock signal136. Other means to vary the duty cycle can include analog implementations using, as examples, programmable or switched delays (e.g., RC, LC delay lines).

The duty cycle of each signal inFIG. 10may correspond to a particular trait of a magnetic medium. As an example, for a magnetic medium from one identified source, write equalization pulses of signal138may be defined. For a magnetic medium from another source, write equalization pulses of signal140may be defined. Similarly, for a read signal having particular sampled characteristics, write equalization pulses of signal142may be defined and for a read signal having different sampled characteristics, write equalization pulses of signal144may be defined.

The particular timing and duty cycles illustrated inFIG. 10and the possible basis for the selection of each are shown for example only. There may be fewer or more possible selections of any suitable duty cycle.FIG. 10is provided only to help illustrate that a shape (duty cycle) of a write equalization pulse can be defined based on a trait of a magnetic medium.

Moving toFIG. 11, a write clock signal is referenced as146. Write equalization clock signal148has a period T. Each pulse of write clock signal146has a width 5T. Signals150-156illustrate variously shaped and timed write equalization pulses. The duty cycle of each may, for example, be selected after identifying a trait of a magnetic medium being written to. The particular duty cycle selected in a given case depends on an identified trait of that medium.

The equalization pulses of signals150-156each have a period varying from 4.5T to 6T. The equalization pulse of signal150has a duty cycle of 2T/5T and is timed to so that its falling edge coincides with a falling edge of write clock signal146. The equalization pulse of signal152has a duty cycle of 3T/6T and is also timed to so that its falling edge coincides with a falling edge of write clock signal146. However the rising edge of the equalization pulse of signal152is timed to occur 1T earlier than that of the equalization pulse of signal150. The equalization pulse of signal154has a duty cycle of 2T/4.5T and is also timed to so that its falling edge coincides with a falling edge of write clock signal146. However the equalization pulse of signal154is timed to conclude 0.5T sooner than the equalization pulses of signals150and152. The equalization pulse of signal156has a duty cycle of 3T/5T and is timed to so that its rising edge coincides with the rising edges of the equalization pulses of signals150and154. However the falling edge of the equalization pulse of signal156occurs 1T after the failing edges of the write equalization pulses of signals150-154.

The duty cycle of each signal inFIG. 11may correspond to a particular trait of a magnetic medium. As an example, for a magnetic medium from one identified source, write equalization pulses of signal150may be defined. For a magnetic medium from another source, write equalization pulses of signal152may be defined. Similarly, for a read signal having particular sampled characteristics, write equalization pulses of signal154may be defined and for a read signal having different sampled characteristics, write equalization pulses of signal156may be defined.

The particular timing and duty cycles illustrated inFIG. 11and the possible basis for the selection of each are shown for example only. There may be fewer or more possible available selections.FIG. 11is provided only to help illustrate that a pulse shape (duty cycle) of a write equalization signal and the pulse timing can be selected based on a trait of a magnetic medium.

FIG. 12is an exemplary flow diagram illustrating method steps for writing to magnetic media using a write equalization signal defined according to a trait of that medium. Initially, a trait of a magnetic medium is identified (step158). A stream of write data is received and sampled (step160). A write signal is generated for the sampled write data (step162). Concurrently, a write equalization signal is generated for the write data (step164). The equalization signal is defined to include characteristics such as particularly timed and/or shaped pulses determined according to the trait identified in step158. The write signal and the equalization signal are multiplexed (step166). The combined signal is then written to the magnetic media (step168).

Referring back toFIG. 8as an example, step158can involve detector114identifying a trait in the form of identifying data, that is, data identifying the source of the magnetic medium. Referring toFIG. 9, step158could instead involve detector114identifying a trait of the magnetic medium in the form of one or more sampled characteristics of a read signal. As noted above, the read signal may be sampled during a calibration procedure upon an initial use of the magnetic medium. The read signal may also be sampled in real-time during normal operation when recording and verifying data.

Step160can involve receiving the write data into data buffer30to be sampled by write signal engine32and equalization engine76A. Steps162and164can be performed by write signal engine32and equalization engine76respectively. Multiplexer80combines the write signal and the write equalization signal in step166while read/write head(s)18encode the magnetic media in step168and the process repeats with step158or160.

FIG. 12is an exemplary flow diagram illustrating method steps for identifying a trait in the form of a source of a magnetic medium. Communication is established with a tape cartridge or other magnetic medium (step170). Data is obtained from the magnetic medium (step172). The data at least indirectly identifies a trait of the magnetic medium, the trait being the source. The data obtained in step172can then be used to tune or otherwise define an equalization signal.

FIG. 13is an exemplary flow diagram illustrating method steps for identifying a trait in the form of characteristics of a read signal for a particular magnetic medium. Data is written to or otherwise encoded on the medium (step174). The medium is read generating a read signal corresponding to the data written in step174. The read signal is sampled to identify a trait of the magnetic medium, the trait being one or more characteristics of the read signal (step178). Based on the read signal characteristics, an equalization signal is defined or otherwise tuned.

CONCLUSION: The schematic diagram ofFIG. 1illustrates an exemplary magnetic media drive in which embodiments may be implemented. Implementation, however, is not limited to the media drive shown. The block diagram ofFIGS. 7-9shows the architecture, functionality, and operation of various embodiments of the present invention. A number of the blocks are defined in part as programs. Each of those blocks may represent in whole or in part a module, segment, or portion of code that comprises one or more executable instructions to implement the specified logical function(s). Each block may also represent a circuit or a number of interconnected circuits to implement the specified logical function(s).

Also, the present invention can be embodied at least in part, in any computer-readable media for use by or in connection with an instruction execution system such as a computer/processor based system or an ASIC (Application Specific Integrated Circuit) or other system that can fetch or obtain the logic from computer-readable media and execute the instructions contained therein. “Computer-readable media” can be any media that can contain, store, or maintain programs and data for use by or in connection with the instruction execution system. Computer readable media can comprise any one of many physical media such as, for example, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor media. More specific examples of suitable computer-readable media include, but are not limited to, a portable magnetic computer diskette such as floppy diskettes or hard drives, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory, or a portable compact disc.

Although the flow diagrams ofFIGS. 12-14show specific orders of execution, the orders of execution may differ from that which is depicted. For example, the order of execution of two or more blocks may be scrambled relative to the order shown. Also, two or more blocks shown in succession may be executed concurrently or with partial concurrence. All such variations are within the scope of the present invention.

The present invention has been shown and described with reference to the foregoing exemplary embodiments. It is to be understood, however, that other forms, details and embodiments may be made without departing from the spirit and scope of the invention that is defined in the following claims.