(19)
(11)EP 1 818 830 B1

(12)EUROPEAN PATENT SPECIFICATION

(45)Mention of the grant of the patent:
18.07.2018 Bulletin 2018/29

(21)Application number: 07000695.2

(22)Date of filing:  15.01.2007
(51)Int. Cl.: 
G06F 12/06  (2006.01)

(54)

Interleaving policies for flash memory

Verschachtelungsregeln für einen Flash-Speicher

Politiques d'entrelacement pour mémoire flash


(84)Designated Contracting States:
AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

(30)Priority: 18.01.2006 US 334293

(43)Date of publication of application:
15.08.2007 Bulletin 2007/33

(60)Divisional application:
10177482.6 / 2267602

(73)Proprietor: APPLE INC.
Cupertino, CA 95014 (US)

(72)Inventors:
  • Cornwell, Michael J.
    San Jose, CA 95115 (US)
  • Dudte, Christopher P.
    San Jose, CA 95134-2815 (US)

(74)Representative: Wardle, Callum Tarn et al
Withers & Rogers LLP 4 More London Riverside
London SE1 2AU
London SE1 2AU (GB)


(56)References cited: : 
EP-A1- 0 629 952
US-A- 5 341 489
US-A1- 2001 014 049
US-A1- 2007 055 821
WO-A1-2005/057475
US-A- 5 944 829
US-A1- 2005 140 685
  
      
    Note: Within nine months from the publication of the mention of the grant of the European patent, any person may give notice to the European Patent Office of opposition to the European patent granted. Notice of opposition shall be filed in a written reasoned statement. It shall not be deemed to have been filed until the opposition fee has been paid. (Art. 99(1) European Patent Convention).


    Description

    TECHNICAL FIELD



    [0001] The present invention relates to a method of selecting an interleaving policy and accessing a flash memory configured to store interleaved data according to the preamble of claim 1, a system for selecting an interleaving policy for accessing a flash memory configured to store interleaved data as well as an article of manufacture for causing the method to be performed.

    BACKGROUND



    [0002] As computing devices have increased in capabilities and features, demand for data storage devices has grown. Data storage devices have been used, for example, to store program instructions (i.e., code) that may be executed by processors. Data storage devices have also been used to store other types of data, including audio, image, and/or text information, for example. Recently, systems with data storage devices capable of storing substantial data content (e.g., songs, music videos, etc....) have become widely available in portable devices.

    [0003] Such portable devices include data storage devices that have small form factors and are capable of operating from portable power sources, such as batteries. Some data storage devices in portable devices may provide non-volatile memory that is capable of retaining data when disconnected from the power source. Portable devices have used various non-volatile data storage devices, such as hard disc drives, EEPROM (electrically erasable programmable read only memory), and flash memory.

    [0004] Flash memory has become a widely used type of semiconductor memory. Flash memory may provide a non-volatile memory in portable electronic devices and consumer applications, for example.

    [0005] Two types of flash memory are NOR flash and NAND flash. In general, NOR flash may differ from NAND flash in certain respects. For example, NOR flash typically provides the capacity to execute code in place, and is randomly accessible (i.e., like a RAM. for example, NOR flash may provide code storage and direct execution in portable electronics devices, cell phones, and PDAs.

    [0006] In comparison, NAND flash can typically erase data more quickly, access data in burst (e.g. 512 byte chunks), and may provide more lifetime erase cycles than comparable NCR flash. NAND flash may generally provide non-volatile storage at a low cost per bit as a high-density file storage medium for consumer devices, such as digital camera and MP3 players, for example. NAND flash may also be used for applications such as data storage in camera cell phones.

    [0007] In some data storage systems, memory accesses may be interleaved across multiple memory locations. In RAID-0 type systems, for example, data are split up into N blocks that are written to or read from N memory locations at the same time. Instead of having to wait on the system to write 8k to one memory location, an interleaved system can simultaneously write blocks of 2k to each of four different memory locations.

    [0008] A method according to the preamble of claim 1 is known from US-A-5 341 489, WO 2005/057475.

    SUMMARY



    [0009] It is the object of the present invention to provide a method of selecting an interleaving policy for accessing a flash memory configured to store interleaved data, a system comprising means being adapted to perform such method as well as an article of manufacture for causing the method to be performed which are able to select read interleaving policies independently of selecting write interleaving policies.

    [0010] As to the method this object is solved by the measures indicated in claim 1, as to the system this object is solved by the measures indicated in claim 16 and as to the article of manufacture this object is solved by the measures indicated in claim 17. The invention is defined by the appended independent claims. Further advantageous modifications of the present invention are subject matter of the dependent claims. The details of implementations and examples that are more generally based on the selection of read and write interleaving policies according to various operating conditions are set forth in the accompanying drawings and the description below. In various implementations, the selections may be static or dynamic during operation. In implementations that dynamically select read interleaving policies and write interleaving policies, the selection may be based on various further operating conditions, such as power source, battery voltage, and operating mode. Examples of operating modes may include (1) reading or writing to flash memory when connected to an external power source, (2) reading from flash memory when powered by portable power source (e.g., battery), and (3) writing to flash memory when powered by a portable power source.

    [0011] Some implementations may provide one or more advantages. For example, battery life may be extended for portable power applications. Read and write interleaving policies may be set or selected independently to achieve a desired performance to minimize memory access times with acceptable electrical power consumption (e.g., peak current) characteristics. The selection of read and write interleaving policies may be adapted according to various operating conditions. Some implementations may dynamically select between reducing access times and minimizing peak currents, for example, based on the operating conditions, such as temperature information, power source availability, battery voltage, and/or operating mode.

    DESCRIPTION OF DRAWINGS



    [0012] 

    FIG 1 is a block diagram showing an example of a system including flash memory.

    FIG 2 is a flow diagram illustrating a method for selecting read and write interleaving policies in the system of FIG. 1.

    FIG 3 is a flow diagram illustrating a method for applying a selected interleaving policy when a memory access operation is requested.



    [0013] Like reference symbols in the various drawings indicate like elements.

    DETAILED DESCRIPTION OF ILLUSTRATIVE IMPLEMENTATIONS



    [0014] Fig. 1 shows an example of a system 100 capable of storing and retrieving data using flash memory. The system 100 may be, for example, a handheld portable device, such as an MP3 player, cell phone, PDA (portable digital assistant), global positioning system, portable processing device, portable audio/visual recording device, portable video player, or the like. The system 100 is capable of using and/or selecting an appropriate interleaving policy for read operations and an appropriate interleaving policy for write operations. In some implementations, the selected read interleaving policy may be different from the selected write interleaving policy. In some implementations, the read and write interleaving policies may be selected dynamically and/or independently of each other.

    [0015] The system 100 includes a microprocessor 102, a memory controller 104, and one or more flash memories 106a, 106b, 106c, 106d. The microprocessor 102 may perform read or write operations after selecting a read or write interleaving policy. For example, the microprocessor 102 can initiate a read from flash memory 106a, 106b, 106c, 106d by sending the selected read interleaving policy and the read command to the memory controller 104. The memory controller 104 then executes the read command according to the selected read interleaving policy. The microprocessor 102 can initiate a write to flash memory by sending the selected write interleaving policy and the write command to the memory controller 104. The memory controller 104 then executes the write command according to the selected write interleaving policy. The system 100 may be configured to select interleaving policies that are appropriate for current operating conditions, such as, power source, battery voltage, temperature, and/or operating mode, for example.

    [0016] The selected read and/or write interleaving policies determine the number of simultaneous accesses to the flash memories 106a, 106b, 106c, and 106d. By using interleaving, the memory controller 104 may simultaneously read or write data interleaved across multiple memory devices. The interleaving policy can be defined to select an interleaving ratio that is appropriate for the operating conditions. For example, an interleaving ratio of 4:1 may correspond to the system 100 writing four words of data into the memory in a single operation, i.e., with each word being written to a different location in the flash memories 106a-106d at the same time. An interleaving ratio of 2:1 may correspond to the system 100 writing four words of data into the memory using two operations, with two words being written at the same time. An interleaving ratio of 1:1 may correspond to the system 100 writing four words of data into the memory using four operations, with one word being written at a time.

    [0017] Higher interleaving ratios may take less time to read or write data to the flash memory, but the peak current associated with the memory operation may be higher. Lower interleaving ratios may take longer time to read or write data to the flash memory, but the peak current associated with the memory operation may be lower. In some operating conditions, the system 100 may be configured to limit or minimize either peak current or minimum memory access time. For example, the system 100 may be configured to select a lower interleaving ratio for read operations if the battery voltage drops below a threshold.

    [0018] When the memory controller 104 receives a read command or a write command, it will execute the command according to the read or write interleaving policy selected by the microprocessor. In some implementations, the microprocessor 102 and the memory controller 104 may be separate devices (e.g., independent integrated circuits). In other implementations, the microprocessor 102 and the memory controller 104 may be integrated into a single device (e.g., ASIC, microcontroller). In this example, the memory controller 104 includes a media interface 108. The media interface 108 includes four registers 110a, 110b, 110c, and 110d. Each of the four registers 110a-110d may temporarily store a word (or byte, long word, quad word etc.) of data to be sent to or received from the flash memories 106a-106d, respectively.

    [0019] In one example, the system 100 may select and use interleaving policies for read and write commands as follows. The microprocessor 102 may initiate a write command followed by a read command. The write command may involve writing four words of data to four locations in the four flash memories 106a, 106b, 106c, 106d, and the read command may involve reading four words of data from four locations in the four flash memories 106a, 106b, 106c, 106d. The microprocessor 102 first sends the write command and a selected write interleaving policy to the memory controller 104. In this example, the selected write interleaving policy may be 4:1. To complete the execution of the write command, the memory controller 104 then may write the data stored in the registers 110a, 110b, 110c, 110d to the flash memories 106a, 106b, 106c, 106d simultaneously.

    [0020] After the write command is completed, the microprocessor 102 may send the read command and a selected read interleaving policy to the memory controller 104. In this example, the selected read interleaving policy may be 1:1. To complete the execution of the read command, the memory controller 104 may read the data stored in the registers 110a, 110b, 110c, 110d from the flash memories 106a, 106b, 106c, 106d using four memory operations, one at a time. For example, the memory controller 104 may first transfer the data stored in the flash memory 106a to the register 110a. Then, the memory controller 104 may transfer the data stored in the flash memory 106b to the register 110b. After that, the memory controller 104 may send the data stored in the flash memory 106c to the register 110c. Finally, the memory controller 104 may transfer the data stored in the flash memory 106d from the register 110d.

    [0021] In this example, each flash memory 106a, 106b, 106c, 106d includes four flash memory die, a controller, and a register 112. The register 112 may store the minimum operating voltage of each flash memory 106a-106d. The minimum operating voltage of each flash memory 106a-106d may affect the selection of interleaving policy. For example, if the battery voltage is lower than a threshold margin above the minimum operating voltage of each flash memory 106a-106d during a write operation, the microprocessor may select a write interleaving policy that has a high interleaving ratio. The threshold margin information for write operations may be stored in the NVM 124 in association with the write interleaving policy 130, and threshold margin information for read operations may be stored in the NVM 124 in association with the read interleaving policy 130.

    [0022] In an illustrative example, a minimum operating voltage may be 3.1 Volts, and voltage margin may be set at 0.5 Volts (putting the threshold at 3.6 Volts) for the write interleaving policy, and set at 0.2 Volts (putting the threshold at 3.3 Volts) for the read interleaving policy. The microprocessor 102 may reduce the write interleaving ratio from 2:1 to 1:1 when the battery voltage falls below 3.6 Volts. The microprocessor 102 may reduce the read interleaving ratio from 4:1 to 2:1 when the battery voltage falls below 3.3 Volts. These values are merely for illustration, and not to limit the range of battery voltages. Hysteresis bands may be applied to the voltage thresholds in some implementations.

    [0023] Electrical power of the system 100 may be provided by an external power input 114 or by a battery 116. The external power input 114 and the battery 116 deliver power to a voltage regulator 118. The voltage regulator 118, which may include a linear regulator, a switch-mode DC-to-DC converter, and/or a low drop-out regulator (not shown), includes a power manager 120 that store a list of electrical status 122 of the system 100. Monitored status information may include, for example, whether the external power input 114 is connected to a power source, whether a battery is present, and battery voltage information. In some implementations, the microprocessor 102 may select an interleaving policy depending on the electrical status 122. For example, the microprocessor 102 may be configured to select interleaving policies with the maximum interleaving ratio when the system 100 is connected to an external power source to reduce memory access time, thereby allowing relatively high peak current.

    [0024] The microprocessor 102 may communicate with a non-volatile memory 124. The non-volatile memory (NVM) 124 stores a test code 126, a control code 128, and interleaving policies 130, including a read interleaving policy and a write interleaving policy. The microprocessor 102 executes the test code 126 to check various conditions in the system 100. The test code 126 may include code that checks power source, battery voltage, temperature, and/or operating mode, for example. The microprocessor 102 then executes the control code 128. The control code 128 may include rules for selecting a read interleaving policy and a write interleaving policy. After selection, the microprocessor 102 can store the selected interleaving policies in the NVM 124. The interleaving policy information 130 may include the currently selected read interleaving policy and the currently selected write interleaving policy.

    [0025] The microprocessor 102 can send or receive data through a data interface 132 to an external device. Data being transferred between the data interface 132 and the microprocessor 102 may be stored temporarily in a buffer 134.

    [0026] The operating mode of the data interface 132 may affect the selection of the interleaving policy. For example, if the data interface 132 is receiving data from an external source, the microprocessor 102 may select a read interleaving policy with a higher interleaving ratio. If the system 100 is operating as a portable device receiving data for flash memory, then the microprocessor 102 may select a write interleaving policy with a lower interleaving ratio.

    [0027] The system 100 may also monitor current operating conditions. For example, the system 100 includes a thermal sensor 136 to measure the temperature in the system 100. The microprocessor 102 may select a lower interleaving policy if the temperature of the system 100 is above a selected threshold temperature, for example.

    [0028] The system 100 also includes a user interface,138, an audio output device 140, and a display 142. Users can provide instructions to the system 100 using the user interface 138, such as a touch pad, a keyboard, or an Apple Click Wheel (TM) input (commercially available from Apple Computer, Inc.), for example. A user selected interleaving policy may be based, at least in part, on user input. For example, the user may select a battery conservation mode that is designed to maximize battery life. Increasing battery life may suggest, for example, a lower interleaving ratio for read and/or write interleaving policies. In another example, the user may select a minimum delay mode that is designed to minimize time for memory access operations. Reducing memory access time may suggest, for example, a higher interleaving ratio for the read interleaving policy.

    [0029] In some implementations, such user-selected inputs may be overridden. For example, when an external power is connected to the external power input 114, the microprocessor 102 may select the maximum achievable interleaving ratio, for example, even if the user has selected the maximize battery life mode. In another example, when the temperature of the system 100 exceeds a preset threshold, the microprocessor 102 may select the minimum achievable interleaving ratio, for example, even if the user has selected the minimum delay time mode and an external power source is connected to the external power input 114.

    [0030] The audio output device 140 may be, in various implementations, an internal speaker, buzzer, and/or other audible indicator. In some implementations, the amplifier may be coupled to an output connector adapted to provide signals containing audio information to one or more sets of headphones or external speakers (which may be externally amplified). Some implementations may provide either a wired or wireless (e.g., Bluetooth or other RF) interface between the system 100 and an external audio transducer device.

    [0031] In some implementations, the display 142 may be an LCD or a TFT display, for example, that provides a text-based and/or graphical interface to users. The brightness and/or intensity of the display 142 may be adjustable. In some implementations, the microprocessor 102 may select a lower interleaving policy when the display 142 is operating with high brightness and/or intensity to preserve battery life.

    [0032] The system 100 also includes a camera 150 and a microphone 152 for providing image and audio information, respectively, to the microprocessor 102. In some implementations, the audio and/or video information may be encoded into a standard format, such as MPEG, JPEG, .wav, bitmap, or other widely adopted data format. The camera 150 may be configured, for example, to capture still and/or moving image (e.g., frames) information, which may be compressed and/or encoded using techniques known by those of ordinary skill in the art of image compression. The microphone 152 may be operated to capture audio information that may or may not be synchronized with image information. The audio and/or image information received from the camera 150 and microphone 152 may be stored in the flash memories 106a-106d according to a write interleaving policy.

    [0033] For example, in an operating mode in which the camera 150 and/or the microphone 152 are streaming data and the system is being powered by the battery, the microprocessor 102 may select a write interleaving policy with a sufficient interleaving ratio to handle the maximum data rates. In one example, a sufficient interleaving ratio may be 4:1 for combined audio and video information, 2:1 for video information alone, and 1:1 for still image or audio information.

    [0034] For another example, in an operating mode in which in which the system 100 is operating from the battery 116 while reading from the flash 106a-106d, the microprocessor 102 may select a lower read interleaving policy to maximize battery life. This operating mode may occur, for example, when used as a portable device to play back video, audio, and/or other (e.g., text) information that is stored in the flash memories 106a-106d.

    [0035] As a further example, in an operating mode in which the system 100 is being powered by an external power source while reading from or writing to the flash 106a-106d, the microprocessor 102 may select a read and/or write interleaving policy to minimize access times. In one application, data (e.g., songs, videos) may be transferred to or from the flash 106a-106d at a maximum achievable data rate to minimize the time required to complete the transfer operation.

    [0036] Alternatively, reading and writing interleaving policies may be independently determined, stored, or otherwise preset without provision for dynamic adjustment according to battery voltage, temperature, or operating mode.

    [0037] The microprocessor 102 may execute a program of instructions, such as the test code 126 or the control code 128, according to various methods, examples of which are described with reference to FIGS. 2-3, respectively.

    [0038] In FIG. 2, a flowchart 200 illustrates an example of operations that the microprocessor 102 may perform when executing implementations of the test code 126. Although the example illustrated in FIG. 1 shows a single block of the test code 126 stored in the NVM 124 for execution by the microprocessor 102, other processors or logic may perform some or all of the operations, and may use instructions that are stored in locations other than in the NVM 124, such as in a RAM (not shown).

    [0039] In this example, the method begins at step 205 when the microprocessor 102 requests an update of the interleaving policies 130. The conditions that may cause the microprocessor to initiate an update of the interleaving policies 130 will be described in further detail with reference to FIG. 3.

    [0040] The microprocessor 102 checks the temperature at step 210 by polling or otherwise reading the thermal sensor 136. If the temperature is above a preset threshold temperature at step 215, then the microprocessor 102 selects an interleaving policy for both reading and writing with a minimum interleaving ratio, such as 1:1, for example, at step 220. Next, the microprocessor 102 stores, at step 225, the selected read and write interleaving policies 130 in the NVM 124, and the method ends at step 230.

    [0041] If, at step 215, the temperature is not above a preset threshold temperature, then the microprocessor 102 checks the power source at step 235. If the system 100 is using an external power source at step 240, then the microprocessor 102 selects an interleaving policy for both reading and writing with a maximum interleaving ratio, such as 4:1, for example, at step 245. Next, the microprocessor 102 stores, at step 225, the selected read and write interleaving policies 130 in the NVM 124, and the method ends at step 230.

    [0042] At step 240, if the system 100 is using the battery 116 as the power source, then the microprocessor 102 checks the battery voltage in step 250 by reading the status register 122 of the power manager 120 in the voltage regulator 118. Next, the microprocessor 102 checks, at step 255, the operating mode of the system 100. The operating mode may include, for example, the operations that the system 100 is currently performing and the user-selected operating mode, such as the maximum battery life mode, or the minimum delay mode. As another example, the microprocessor 102 may check the data flow in the data interface 132, the operating condition of the display 142, and the output in the audio output device 140. If these devices are drawing a large amount of current, the microprocessor 102 may select an interleaving policy with low interleaving ratio. After the battery voltage and the operating mode are checked, the microprocessor 102 independently selects a write interleaving policy in step 260 and a read interleaving policy in step 265. Next, the microprocessor 102 stores, at step 225, the selected read and write interleaving policies 130 in the NVM 124, and the method ends at step 230.

    [0043] In FIG. 3, a flowchart 300 illustrates an example of operations that the microprocessor 102 may perform when executing implementations of the control code 128. The microprocessor 102 may execute the control code 128 to select an appropriate interleaving policy and to send the selected interleaving policy to the memory controller 104. In this example, the method begins at step 305 when the microprocessor 102 receives a command to access the flash memories 106a-106d. In step 310, the microprocessor 102 receives a write or a read command. For example, the microprocessor 102 may receive a write command when a user downloads data into the flash memories 106a-106d through the data interface 132. As another example, the microprocessor 102 may receive a read command when a user uses the user interface 138 to instruct the system 100 to play video stored in the flash memories 106a-106d.

    [0044] The microprocessor 102 then, in step 315, determines whether there is a need to update the interleaving policies. If the microprocessor 102 determines that there is a need to update the interleaving policies, then, at step 350, the microprocessor 102 executes the test code 126 to select and to store interleaving policies, as illustrated in the flowchart 200. For example, the interleaving policies may need to be changed when any of the temperature, the power source, the battery voltage, and/or the operating mode, is changed. In another example, the interleaving policies may be updated periodically according to a schedule (e.g., hourly, daily, weekly, etc...).

    [0045] If the microprocessor 102 determines, at step 315, that there is no need to update the interleaving policies, then the microprocessor 102 checks whether the command is a read command or a write command in step 320. If the received command is a write command, then the microprocessor 102 sends the write interleaving policy in step 325 to the memory controller 104. Next, in step 330, the microprocessor 102 sends the write command to the memory controller 104 and the method ends in step 335.

    [0046] In step 320, if the command is a read command, then the microprocessor 102 sends the read interleaving policy in step 340 to the memory controller 104. Next, in step 345, the microprocessor 102 sends the read command to the memory controller 104 and the method ends in step 335.

    [0047] After the microprocessor 102 has selected and stored interleaving policies, the process returns to step 320.

    [0048] Although one implementation of the method has been described, other implementations may perform the steps in different sequence, or a modified arrangement to achieve the same primary function, which is to select appropriate interleaving policies for reading and for writing flash memory.

    [0049] Although an example of a system, which may be portable, has been described with reference to FIG. 1, other implementations may be deployed in other processing applications, such as desktop and networked environments.

    [0050] Some systems may be implemented as a computer system that can be used with implementations of the invention. For example, various implementations may include digital and/or analog circuitry, computer hardware, firmware, software, or combinations thereof. Apparatus can be implemented in a computer program product tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by a programmable processor; and methods can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating an output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and/or at least one output device. A computer program is a set of instructions that can be used, directly or indirectly, in a computer to perform a certain activity or bring about a certain result. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.

    [0051] Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, which may include a single processor or one of multiple processors of any kind of computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memories for storing instructions and data. Generally, a computer will also include, or be operatively coupled to communicate with, one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including, by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and, CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).

    [0052] In some implementations, each system 100 may be programmed with the same or similar information and/or initialized with substantially identical information stored in volatile and/or non-volatile memory. For example, one data interface may be configured to perform auto configuration, auto download, and/or auto update functions when coupled to an appropriate host device, such as a desktop computer or a server.

    [0053] In some implementations, one or more user-interface features may be custom configured to perform specific functions. The invention may be implemented in a computer system that includes a graphical user interface and/or an Internet browser. To provide for interaction with a user, some implementations may be implemented on a computer having a display device, such as a CRT (cathode ray tube) or LCD (liquid crystal display) monitor for displaying information to the user, a keyboard, and a pointing device, such as a mouse or a trackball by which the user can provide input to the computer.

    [0054] In various implementations, the system 100 may communicate using suitable communication methods, equipment, and techniques. For example, the system 100 may communicate with compatible devices (e.g., devices capable of transferring data to and/or from the system 100) using point-to-point communication in which a message is transported directly from the source to the receiver over a dedicated physical link (e.g., fiber optic link, point-to-point wiring, daisy-chain). The components of the system may exchange information by any form or medium of analog or digital data communication, including packet-based messages on a communication network. Examples of communication networks include, e.g., a LAN (local area network), a WAN (wide area network), MAN (metropolitan area network), wireless and/or optical networks, and the computers and networks forming the Internet. Other implementations may transport messages by broadcasting to all or substantially all devices that are coupled together by a communication network, for example, by using omni-directional radio frequency (RF) signals. Still other implementations may transport messages characterized by high directivity, such as RF signals transmitted using directional (i.e., narrow beam) antennas or infrared signals that may optionally be used with focusing optics. Still other implementations are possible using appropriate interfaces and protocols such as, by way of example and not intended to be limiting, USB 2.0, Firewire, ATA/IDE, RS-232, RS-422, RS-485, 802.11 a/b/g, Wi-Fi, Ethernet, IrDA, FDDI (fiber distributed data interface), token-ring networks, or multiplexing techniques based on frequency, time, or code division. Some implementations may optionally incorporate features such as error checking and correction (ECC) for data integrity, or security measures, such as encryption (e.g., WEP) and password protection.

    [0055] A number of implementations have been described. Nevertheless, it will be understood that various modifications may be made. For example, advantageous results may be achieved if the steps of the disclosed techniques were performed in a different sequence, if components in the disclosed systems were combined in a different manner, or if the components were replaced or supplemented by other components. The functions and processes (including algorithms) may be performed in hardware, software, or a combination thereof, and some implementations may be performed on modules or hardware not identical to those described.


    Claims

    1. A method of selecting an interleaving policy and accessing a plurality of flash memories (106a to 106d) by a processor (102), whereby the plurality of flash memories are configured to store interleaved data, the method comprising:

    receiving a request to write to the plurality of flash memories (106a to 106d),

    characterised in that the method further comprises:

    identifying a current set of operating conditions relating to the plurality of flash memories, wherein the current set of operating conditions includes temperature;

    identifying a write interleaving ratio for writing to the plurality of flash memories (106a to 106d) based on a first set of criteria for the current set of operating conditions;

    writing to the plurality of flash memories using the identified write interleaving ratio;

    receiving a request to read from the plurality of flash memories (106a to 106d); and

    identifying a read interleaving ratio for reading from the plurality of flash memories (106a to 106d) based on a second set of criteria for the current set of operating conditions, wherein the identified read and write interleaving ratios determine a number of simultaneous accesses to the plurality of flash memories (106a to 106d), reading from the plurality of flash memories using the identified read interleaving ratio, wherein the write interleaving ratio and the read interleaving ratio are identified independently of each other,

    wherein the read and write interleaving ratios are identified at least according to the temperature included in the current set of operating conditions.


     
    2. The method of claim 1, wherein the second set of criteria defines the read interleaving ratio to be greater than a minimum available read interleaving ratio when the power supply voltage or current available to supply power to the plurality of flash memories (106a to 106d) exceeds a first threshold.
     
    3. The method of claim 2, wherein the first set of criteria defines the write interleaving ratio to be greater than a minimum available write interleaving ratio when the power supply voltage or current available to supply power to the plurality of flash memories (106a to 106d) exceeds a second threshold, and the second threshold is substantially different than the first threshold.
     
    4. The method of claim 1, wherein the second set of criteria defines the read interleaving ratio to a maximum available read interleaving ratio when the plurality of flash memories (106a to 106d) is operated using power being drawn from an external power source other than a battery.
     
    5. The method of claim 1, wherein the first set of criteria defines the write interleaving ratio to be fixed.
     
    6. The method of claim 1, wherein the first set of criteria comprises a data transfer rate associated with data to be written to the plurality of flash memories (106a to 106d).
     
    7. The method of claim 6, wherein the write interleaving ratio comprises a ratio sufficient to write the data to the plurality of flash memories (106a to 106d) at the data transfer rate.
     
    8. The method of claim 7, wherein the first set of criteria defines the write interleaving ratio higher for data streams comprising video and audio information than for data streams comprising audio information without video information.
     
    9. The method of claim 7, wherein the first set of criteria defines the write interleaving ratio higher for data streams comprising video information than for data streams comprising still image information.
     
    10. The method of claim 1, wherein the first and second sets of criteria defines a reduced read and write interleaving ratio, respectively, upon detecting that a temperature exceeds a threshold.
     
    11. The method of claim 1, wherein at least one of the first and second sets of criteria defines a reduced read and write interleaving ratio, respectively, in response to a signal to minimize power consumption.
     
    12. The method of claim 1, wherein the read and write interleaving ratios comprise different ratios in at least one operating condition.
     
    13. The method of claim 1, wherein identifying the read interleaving ratio comprises controlling a maximum current level drawn to process the read request.
     
    14. The method of claim 1, wherein identifying the write interleaving ratio comprises controlling a maximum current level drawn to process the write request.
     
    15. The method of claim 1, wherein the second set of criteria comprises a power supply voltage or current available to supply power to the plurality of flash memories (106a to 106d).
     
    16. A system for selecting an interleaving policy and for accessing a plurality of flash memories (106a to 106d) configured to store interleaved data, the system comprising the plurality of flash memories (106a to 106d) and a microprocessor (102), the system being adapted to perform the method of one of claims 1 to 15.
     
    17. An article of manufacture comprising machine-readable instructions that, when executed, cause a method of one of claims 1 to 15 to be performed.
     
    18. The article of claim 17, wherein the given set of operating conditions further comprises a battery voltage.
     
    19. The article of claim 17, wherein the given set of operating conditions further comprises a data transfer rate.
     
    20. The article of claim 17, further comprising instructions that, when executed, cause an operation of updating at least one of the read and write interleaving ratios to be performed.
     
    21. The article of claim 20, wherein updating at least one of the interleaving ratios comprises identifying a change in at least one parameter selected from the group consisting of temperature, power source, battery voltage, and operating mode.
     
    22. The article of claim 17, further comprising instructions that, when executed, cause an operation of reducing the read and write interleaving ratios upon detecting that a temperature exceeds a predetermined threshold to be performed.
     


    Ansprüche

    1. Verfahren zum Auswählen von Verschachtelungsregeln und zum Zugreifen auf eine Vielzahl von Flash Speichern (106a bis 106d) durch einen Prozessor (102), wobei die Vielzahl von Flash Speichern konfiguriert sind, um verschachtelte Daten zu speichern, das Verfahren umfassend:

    - Empfangen einer Anfrage zum Schreiben auf die Vielzahl von Flash Speichern (106a bis 106d), dadurch gekennzeichnet, dass das Verfahren ferner umfasst:

    - Identifizieren eines derzeitigen Satzes von Betriebsbedingungen mit Bezug auf die Vielzahl von Flash Speichern, wobei der derzeitige Satz von Betriebsbedingungen eine Temperatur einschließt;

    - Identifizieren eines Schreib-Verschachtelungs-Verhältnisses zum Schreiben auf die Vielzahl von Flash Speichern (106a bis 106d), basierend auf einem ersten Satz von Kriterien für den derzeitigen Satz von Betriebsbedingungen;

    - Schreiben auf die Vielzahl von Flash Speichern unter Verwendung des identifizierten Schreib-Verschachtelungs-Verhältnisses;

    - Empfangen einer Anfrage zum Lesen von der Vielzahl von Flash Speichern (106a bis 106d); und

    - Identifizieren eines Lese-Verschachtelungs-Verhältnisses zum Lesen von der Vielzahl von Flash Speichern (106a bis 106d), basierend auf einem zweiten Satz von Kriterien für den derzeitigen Satz von Betriebsbedingungen, wobei die identifizierten Lese- und Schreib-Verschachtelungs-Verhältnisse eine Zahl von gleichzeitigen Zugriffen auf die Vielzahl von Flash Speichern (106a bis 106d) bestimmen,

    - Lesen von der Vielzahl von Flash Speichern unter Verwendung des identifizierten Lese-Verschachtelungs-Verhältnisses, wobei das Schreib-Verschachtelungs-Verhältnis und das Lese-Verschachtelungs-Verhältnis unabhängig voneinander identifiziert werden, wobei die Lese- und Schreib-Verschachtelungs-Verhältnisse mindestens in Übereinstimmung mit der Temperatur identifiziert werden, die in dem derzeitigen Satz von Betriebsbedingungen eingeschlossen ist.


     
    2. Verfahren nach Anspruch 1, wobei der zweite Satz von Kriterien das Lese-Verschachtelungs-Verhältnis größer als ein minimal verfügbares Lese-Verschachtelungs-Verhältnis definiert, wenn die Versorgungsspannung oder verfügbarer Strom zur Energieversorgung der Vielzahl von Flash Speichern (106a bis 106d) einen ersten Grenzwert überschreiten.
     
    3. Verfahren nach Anspruch 2, wobei der erste Satz von Kriterien das Schreib-Verschachtelungs-Verhältnis größer als ein minimal verfügbares Schreib-Verschachtelungs-Verhältnis definiert, wenn die Versorgungsspannung oder verfügbarer Strom zur Energieversorgung der Vielzahl von Flash Speichern (106a bis 106d) einen zweiten Grenzwert überschreiten, und der zweite Grenzwert sich wesentlichen von dem ersten Grenzwert unterscheidet.
     
    4. Verfahren nach Anspruch 1, wobei der zweite Satz von Kriterien das Lese-Verschachtelungs-Verhältnis zu einem maximal verfügbaren Lese-Verschachtelungs-Verhältnis definiert, wenn die Vielzahl von Flash Speichern (106a bis 106d) unter Verwendung von Energie, die von einer externen Energiequelle entnommen wird, die anders als eine Batterie ist, betrieben wird.
     
    5. Verfahren nach Anspruch 1, wobei der erste Satz von Kriterien das Schreib-Verschachtelungs-Verhältnis festgelegt definiert.
     
    6. Verfahren nach Anspruch 1, wobei der erste Satz von Kriterien eine Datenübertragungsrate umfasst, welche mit Daten, die auf die Vielzahl von Flash Speichern (106a bis 106d) geschrieben werden sollen, assoziiert ist.
     
    7. Verfahren nach Anspruch 6, wobei das Schreib-Verschachtelungs-Verhältnis ein Verhältnis umfasst, welches ausreichend ist, um die Daten mit der Datentransferrate auf die Vielzahl von Flash Speichern (106a bis 106d) zu schreiben.
     
    8. Verfahren nach Anspruch 7, wobei der erste Satz von Kriterien das Schreib-Verschachtelungs-Verhältnis für Datenstreams, welche Video und Audio Informationen umfassen, größer definiert als für Datenstreams, welche Audio Informationen ohne Video Informationen umfassen.
     
    9. Verfahren nach Anspruch 7, wobei der erste Satz von Kriterien das Schreib-Verschachtelungs-Verhältnis für Datenstreams, welche Video Informationen umfassen, größer definiert als für Datenstreams, welche Standbild Informationen umfassen.
     
    10. Verfahren nach Anspruch 1, wobei die ersten und zweiten Sätze von Kriterien jeweils ein reduziertes Lese- und Schreib-Verschachtelungs-Verhältnis definieren nachdem festgestellt wurde, dass eine Temperatur einen Grenzwert überschreitet.
     
    11. Verfahren nach Anspruch 1, wobei mindestens einer von den ersten und zweiten Sätzen von Kriterien jeweils ein reduziertes Lese- und Schreib-Verschachtelungs-Verhältnis definieren, in Antwort auf ein Signal Energieverbrauch zu minimieren.
     
    12. Verfahren nach Anspruch 1, wobei die Lese- und Schreib-Verschachtelungs-Verhältnisse unterschiedliche Verhältnisse in mindestens einer Betriebsbedingung umfassen.
     
    13. Verfahren nach Anspruch 1, wobei Identifizieren des Lese-Verschachtelungs-Verhältnisses Steuern eines maximalen Stromniveaus umfasst, das entnommen wird, um die Leseanfrage zu verarbeiten.
     
    14. Verfahren nach Anspruch 1, wobei Identifizieren des Schreib-Verschachtelungs-Verhältnisses Steuern eines maximalen Stromniveaus umfasst, das entnommen wird, um die Schreibanfrage zu verarbeiten.
     
    15. Verfahren nach Anspruch 1, wobei der zweite Satz von Kriterien eine Versorgungsspannung oder verfügbaren Strom zur Energieversorgung der Vielzahl von Flash Speichern (106a bis 106d) umfasst.
     
    16. System zum Auswählen von Verschachtelungsregeln und zum Zugreifen auf eine Vielzahl von Flash Speichern (106a bis 106d), die konfiguriert sind verschachtelte Daten zu speichern, das System umfassend die Vielzahl von Flash Speichern (106a bis 106d) und einen Mikroprozessor (102), wobei das System angepasst wird das Verfahren von einem der Ansprüche 1 bis 15 durchzuführen.
     
    17. Erzeugnis umfassend maschinenlesbarer Befehle, welche, wenn sie ausgeführt werden, ein Verfahren nach einem der Ansprüche 1 bis 15 veranlassen durchgeführt zu werden.
     
    18. Erzeugnis nach Anspruch 17, wobei der gegebene Satz von Betriebsbedingungen ferner eine Batteriespannung umfasst.
     
    19. Erzeugnis nach Anspruch 17, wobei der gegebene Satz von Betriebsbedingungen ferner eine Datentransferrate umfasst.
     
    20. Erzeugnis nach Anspruch 17, ferner umfassend Befehle, die, wenn sie ausgeführt werden, eine Operation des Aktualisierens mindestens eines von den Lese- und Schreib-Verschachtelungs-Verhältnissen veranlassen durchgeführt zu werden.
     
    21. Erzeugnis nach Anspruch 20, wobei das Aktualisieren von mindestens einem der Verschachtelungs-Verhältnisse Identifizieren einer Änderung in mindestens einem Parameter, der von der Gruppe bestehend aus Temperatur, Energiequelle, Batteriespannung und Betriebsmodus ausgewählt ist, umfasst.
     
    22. Erzeugnis nach Anspruch 17, ferner umfassend Befehle, die, wenn sie ausgeführt werden, eine Operation zum Reduzieren der Lese- und Schreib-Verschachtelungs-Verhältnisse veranlassen durchgeführt zu werden, nach dem Erkennen, dass eine Temperatur einen vorbestimmten Grenzwert überschreitet.
     


    Revendications

    1. Un procédé de sélection d'une stratégie d'entrelacement, et d'accès à une pluralité de mémoires flash (106a à 106d) par un processeur (102), où la pluralité de mémoires flash sont configurées pour stocker des données entrelacées, le procédé comprenant :

    la réception d'une requête d'écriture dans la pluralité de mémoires flash (106a à 106d),

    caractérisé en ce que le procédé comprend en outre :

    l'identification d'un ensemble courant de conditions de fonctionnement relatives à la pluralité de mémoires flash, l'ensemble courant de conditions de fonctionnement comprenant la température ;

    l'identification d'un ratio d'entrelacement en écriture pour l'écriture dans la pluralité de mémoires flash (106a à 106d) en fonction d'un premier ensemble de critères pour l'ensemble courant de conditions de fonctionnement ;

    l'écriture dans la pluralité de mémoires flash en utilisant le ratio d'entrelacement en écriture identifié ;

    la réception d'une requête de lecture de la pluralité de mémoires flash (106a à 106d) ; et

    l'identification d'un ratio d'entrelacement en lecture pour la lecture de la pluralité de mémoires flash (106a à 106d) en fonction d'un second ensemble de critères pour l'ensemble courant de conditions de fonctionnement, les ratios d'entrelacement en écriture et en lecture identifiés déterminant un nombre d'accès simultanés à la pluralité de mémoires flash (106a à 106d),

    la lecture de la pluralité de mémoires flash en utilisant le ratio d'identification en lecture identifié,

    dans lequel le ratio d'entrelacement en écriture et le ratio d'entrelacement en lecture sont identifiés indépendamment l'un de l'autre, les ratios d'entrelacement en écriture et en lecture étant identifiés au moins en fonction de la température incluse dans l'ensemble courant de conditions de fonctionnement.


     
    2. Le procédé de la revendication 1, dans lequel le second ensemble de critères définit que le ratio d'entrelacement en lecture est supérieur à un ratio d'entrelacement en lecture disponible minimal lorsque la tension ou le courant d'alimentation disponibles pour délivrer une alimentation à la pluralité de mémoires flash (106a à 106d) dépasse un premier seuil.
     
    3. Le procédé de la revendication 2, dans lequel le premier ensemble de critères définit que le ratio d'entrelacement en écriture est supérieur à un ratio d'entrelacement en écriture disponible minimal lorsque la tension ou le courant d'alimentation disponible pour délivrer une alimentation à la pluralité de mémoires flash (106a à 106d) dépasse un second seuil, et lorsque le second seuil est substantiellement différent du premier seuil.
     
    4. Le procédé de la revendication 1, dans lequel le second ensemble de critères définit que le ratio d'entrelacement en lecture est un ratio d'entrelacement en lecture disponible maximal lorsque la pluralité de mémoires flash (106a à 106d) fonctionne en utilisant une alimentation issue d'une source d'alimentation externe autre qu'une batterie.
     
    5. Le procédé de la revendication 1, dans lequel le premier ensemble de critères définit le ratio d'entrelacement en écriture comme étant fixe.
     
    6. Le procédé de la revendication 1, dans lequel le premier ensemble de critères comprend un débit de transfert de données associé aux données à écrire dans la pluralité de mémoires flash (106a à 106d).
     
    7. Le procédé de la revendication 6, dans lequel le ratio d'entrelacement en écriture comprend un ratio suffisant pour écrire les données dans la pluralité de mémoires flash (106a à 106d) avec le débit de transfert de données.
     
    8. Le procédé de la revendication 7, dans lequel le premier ensemble de critères définit que le ratio d'entrelacement en écriture est supérieur pour des flux de données comprenant des informations vidéo et audio à ce qu'il est pour des flux de données comprenant des informations audio sans informations vidéo.
     
    9. Le procédé de la revendication 7, dans lequel le premier ensemble de critères définit que le ratio d'entrelacement en écriture est supérieur pour des flux de données comprenant des informations vidéo à ce qu'il est pour des flux de données comprenant des informations d'images fixes.
     
    10. Le procédé de la revendication 1, dans lequel le premier et le second ensemble de critères définissent, respectivement, un ratio d'entrelacement en lecture et en écriture réduit sur détection qu'une température dépasse un seuil.
     
    11. Le procédé de la revendication 1, dans lequel au moins l'un des premier et second ensembles de critères définit, respectivement, un ratio d'entrelacement en lecture et en écriture en réponse à un signal de minimisation de l'alimentation consommée.
     
    12. Le procédé de la revendication 1, dans lequel les ratios d'entrelacement en lecture et en écriture comprennent des ratios différents dans au moins une condition de fonctionnement.
     
    13. Le procédé de la revendication 1, dans lequel l'identification du ratio d'entrelacement en lecture comprend le contrôle d'un niveau maximal de courant nécessaire pour traiter la requête de lecture.
     
    14. Le procédé de la revendication 1, dans lequel l'identification du ratio d'entrelacement en écriture comprend le contrôle d'un niveau de courant maximal nécessaire pour traiter la requête d'écriture.
     
    15. Le procédé de la revendication 1, dans lequel le second ensemble de critères comprend une tension ou un courant d'alimentation disponibles pour délivrer une alimentation à la pluralité de mémoires flash (106a à 106d) .
     
    16. Un système de sélection d'une stratégie d'entrelacement, et d'accès à une pluralité de mémoires flash (106a à 106d) configurées pour stocker des données entrelacées, le système comprenant la pluralité de mémoires flash (106a à 106d) et un microprocesseur (102), le système étant apte à mettre en oeuvre le procédé de l'une des revendications 1 à 15.
     
    17. Un article industriel comprenant des instructions lisibles par machine qui, lorsqu'elles sont exécutées, font en sorte de mettre en oeuvre un procédé selon l'une des revendications 1 à 15.
     
    18. L'article de la revendication 17, dans lequel l'ensemble donné de conditions de fonctionnement comprend en outre une tension de batterie.
     
    19. L'article de la revendication 17, dans lequel l'ensemble donné de conditions de fonctionnement comprend en outre une vitesse de transfert de données.
     
    20. L'article de la revendication 17, comprenant en outre des instructions qui, lorsqu'elles sont exécutées, font en sorte d'exécuter une opération de mise à jour d'au moins l'un des ratios d'entrelacement en lecture et en écriture.
     
    21. L'article de la revendication 20, dans lequel la mise à jour d'au moins l'un des ratios d'entrelacement comprend l'identification d'une modification d'au moins un paramètre choisi dans le groupe formé par la température, la source d'alimentation, la tension de batterie et le mode de fonctionnement.
     
    22. L'article de la revendication 17, comprenant en outre des instructions qui, lorsqu'elles sont exécutées, font en sorte d'effectuer une opération de réduction des ratios d'entrelacement en lecture et en écriture sur détection qu'une température dépasse un seuil prédéterminé.
     




    Drawing












    REFERENCES CITED IN THE DESCRIPTION



    This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

    Patent documents cited in the description