Using Erase Suspend and Erase Resume Functions in NOR Flash

Similar documents
Macronix High Density Serial Flash Addressing

Migrating from MX29GL256E to MX29GL256F

Comparing Toshiba TC58NVG0S3Exxxx with Macronix MX30LF1G08AA

Comparing Spansion S29AL008J with Macronix MX29LV800C

Comparing Spansion S29AL016J with Macronix MX29LV160D

Migrating from MX30LF1G08AA to MX30LF1GE8AB

Serial Flash Secured OTP Area Introduction

Migrating from MX60LF8G28AB to MX60LF8G18AC

Comparing Toshiba TC58BVG1S3HTAI0 with Macronix MX30LF2GE8AB

Migrating from MX30LF1G08AA to MX30LF1G18AC

Comparing Toshiba TC58NVG1S3E with Macronix MX30LF2G18AC

Comparison of MX25V4035F with MX25L4006E and MX25V4006E

Macronix MX25Lxxx45G Serial Flash DTR Introduction

Both flash device families have similar features and functions as shown in Table 2-1.

Migrating from MX30LF2G(4G)28AB to MX30LF2G(4G)18AC

Macronix Serial Flash Multi-I/O Introduction

Comparison of MX25V1035F with MX25L1006E/1021E and MX25V1006E

Comparison of MX25V8035F with MX25L8006E/08E and MX25V8006E

Comparing Spansion S34ML04G100 with Macronix MX30LF4G18AC

Read-While-Write, Multiplexed, Burst Mode, Flash Memory

Industrial Temperature, 3 Volt, MCP Products - Parallel NOR Flash + Pseudo Static RAM (psram)

Comparison of MX25L6435E and MX25L6445E

Improving NAND Throughput with Two-Plane and Cache Operations

2. General Features The two devices have a different page size and block size. Feature differences are highlighted in Bold Italic type in Table 2-1.

Comparison of MX25L3233F/73F/36F and MX25L32xxD/xxE

How to handle the spare-byte area of Macronix 36nm NAND Flash

Comparing Micron N25Q128A with Macronix MX25L12835F

Comparison of MX25U4033E and MX25U4035

SLC NAND FLASH and LPDDR2 162-Ball MCP (Multi-Chip Package)

Replacing Spansion S29GL_S with Macronix MX29GL_F

Migrating from MX25U25635F to MX25U25645G

Comparison of MX25L6433F/73F/36F and MX25L64xxE

Comparing Micron N25Q032A / N25Q064A with Macronix MX25U3235F / MX25U6435F

The Comparison of MX25L12835E/36E/45E and MX25L12835F/33F

Migrating from MX25L25635F to MX25L25645G/MX25L25673G

Comparing Micron N25Q128A with Macronix MX25U12835F

NAND Design-In Notice

Comparing Spansion S26KS512S with Macronix MX25UM51245G

APPLICATION NOTE Migrating to MX25L1606E / MX25L8006E from MX25L1605D / MX25L8005

AN2061 APPLICATION NOTE

APPLICATION NOTE Migrating to MX25L3206E from MX25L3205D

32-BIT MICROCONTROLLER MB9A310K/110K Series FLASH PROGRAMMING MANUAL

KH25L5121E. Key Features KH25L5121E. 3V, 512K-BIT [x 1] CMOS SERIAL FLASH MEMORY

FM3 32-BIT MICROCONTROLLER MB9A310/110 Series FLASH PROGRAMMING MANUAL

Quick Guide to Common Flash Interface

Use the Status Register when the firmware needs to query the state of internal digital signals.

MX25L5121E MX25L1021E MX25L5121E, MX25L1021E DATASHEET

Use the Status Register when the firmware needs to query the state of internal digital signals.

The following document contains information on Cypress products.

Preface 1. Storage System 2. Contact Information 3 SIPLUS CMS. SIPLUS CMS X-Tools - User Manual Storage System. English.

Automatic reload of the period to the count register on terminal count

LED Manager for Intel NUC

W25X05CL/10CL/20CL 2.5 / 3 / 3.3 V 512K / 1M / 2M-BIT SERIAL FLASH MEMORY WITH 4KB SECTORS AND DUAL I/O SPI

F²MC-16LX FAMILY MB90F897 DUAL OPERATION FLASH 16-BIT MICROCONTROLLER APPLICATION NOTE. Fujitsu Microelectronics Europe Application Note

Multifunction Serial Interface (PDL_MFS) Features. General Description. When to Use a PDL_MFS Component. Quick Start 1.0

This optional pin is present if the Mode parameter is set to SyncMode or PulseMode. Otherwise, the clock input does not show.

1.8V Uniform Sector Dual and Quad Serial Flash GD25LQ16 DATASHEET

1.8V Uniform Sector Dual and Quad Serial Flash GD25LQ64C DATASHEET. Rev.2.8

Capable of adjusting detection timings for start bit and data bit

F²MC-8L FAMILY MB89201 SERIES FLASH PROGRAMMING 8-BIT MICROCONTROLLER APPLICATION NOTE. Fujitsu Microelectronics Europe Application Note

1.8V Uniform Sector Dual and Quad Serial Flash GD25LQ32C DATASHEET

Optimus.2 Ascend. Rev A August, 2014 RELEASE NOTES.

Uniform Sector Dual and Quad Serial Flash GD25Q64B DATASHEET

MX30LF1208AA 512M-bit NAND Flash Memory

FM25Q04 4M-BIT SERIAL FLASH MEMORY

Comparing Spansion S25FL512S with Macronix MX66L51235F

GLS29EE512 Small-Sector Flash 512 Kbit (64K x8) Page-Write EEPROM

S25FL204K. 4-Mbit 3.0V Serial Flash Memory with Uniform 4 kb Sectors. Data Sheet

W25X40CL 2.5/3/3.3 V 4M-BIT SERIAL FLASH MEMORY WITH 4KB SECTORS AND DUAL I/O SPI. Publication Release Date: October 15, Revision E

W25Q20CL 2.5/3/3.3V 2M-BIT SERIAL FLASH MEMORY WITH 4KB SECTORS, DUAL AND QUAD SPI. Publication Release Date: August 06, Revision A1

1.8V Uniform Sector Dual and Quad Serial Flash GD25LQ256C DATASHEET

AN 547: Putting the MAX II CPLD in Hibernation Mode to Achieve Zero Standby Current

Micron M25PE16 16Mb 3V Serial Flash Memory

F²MC-16FX FAMILY ALL SERIES FLASH SECURITY 16-BIT MICROCONTROLLER APPLICATION NOTE. Fujitsu Microelectronics Europe Application Note

GD25LQ80 DATASHEET

Intel Cache Acceleration Software for Windows* Workstation

Micron M25P20 2Mb 3V Serial Flash Embedded Memory

1.8V Uniform Sector Dual and Quad SPI Flash

White Paper Using the MAX II altufm Megafunction I 2 C Interface

W H I T E P A P E R. Introduction. Devices. Energy Comparison of Cypress F-RAM and EEPROM

1.8V Uniform Sector Dual and Quad Serial Flash GD25LE128D DATASHEET

How to use the NTAG I²C plus for bidirectional communication. Rev June

Enhanced Serial Peripheral Interface (espi)

Frequently asked questions from the previous class survey

STAND-ALONE PROGRAMMER

FM25Q32 32M-BIT SERIAL FLASH MEMORY

M25P40 3V 4Mb Serial Flash Embedded Memory

CloudSpeed Eco/Ultra Gen II

1.8V Uniform Sector Dual and Quad Serial Flash

1.8V Uniform Sector GD25LQ80B/40B DATASHEET

Base Timer Channel (BT) Features. General Description. When to Use a PDL_BT Component 1.0

Digital Logic Gates. Features. General Description. Input/Output Connections. When to Use a Logic Gate. Input 1. Input 2. Inputs 3-8 * 1.

Introduction...1. Getting Started...2. System Requirements Product Part Identification Installation Guide...4

Documentation Accessibility. Access to Oracle Support

PSoC Creator Quick Start Guide

CSC227: Operating Systems Fall Chapter 1 INTERRUPTS. Dr. Soha S. Zaghloul

Micron M25P16 Serial Flash Embedded Memory

64 Megabit Serial Flash Memory with 4Kbyte Uniform Sector

Using the Kinetis Family Enhanced EEPROM Functionality

However, if an event comes in when the new value is being written to the pulse accumulator counter, that event could be missed. One solution to this p

Transcription:

Using Suspend and Resume Functions in OR Flash Introduction The Suspend function can be used to temporarily stop an operation to allow for the reading or programming of other blocks in the same Flash memory. The optimal implementation of Suspend in the system is described in this document. The descriptions included in this document are general and not related to any particular Macronix Flash memory family. Therefore, please refer to the device datasheet for details about the commands, timing and limitations. and Suspend/Resume OR Flash memory requires that a previously written area be erased before it can be rewritten. sizes vary from 4KB to 256KB, depending on the selected Macronix part. In serial flash, Macronix typically defines a block as 64KB or 32KB, which are further divided into 4KB sectors. In parallel flash, the terms blocks and sectors are used interchangeably. Typically, a single 128KB sector can take 600ms to complete. While an operation is progress, no other operations such as Read or Program can be performed. In Real Time systems, sometimes it is necessary to execute critical tasks that involve reading or programming while the operation is in progress. Long time latency is not tolerable in such cases. The effect of the Long latency can be reduced by using the Suspend and Resume functions. The Suspend command can pause an operation to allow the system to read or to write the memory. As soon as the critical read or write has completed, the Resume command can be used to continue the interrupted operation, as shown in Figure 1. Figure 1. Read while is Suspended Suspend Resume Suspend Resume Read from non- sector Publication umber: A- 0247 1

Operation Details The operation sets a memory sector or block to the all 1 s state. The operation requires a proper sequence of phases to succeed. The algorithm is automatically managed by an internal State Machine, which controls a looping sequence of pulses and Verify steps as shown in Figure 2. First, all the bytes in the sector being erased are written to all 0 s (this initial step is not shown in Figure 2). To set the memory cells to the 1 state, erase pulses with a high electric field are applied to the sector to remove electrons from the floating gate of every memory cell in the sector/block. Then the Verify operation sequentially reads off all of the address locations in the sector/block to check whether they have all been erased to 1. When the entire sector is verified to be 1 then the operation is complete. The Verify operation starts from the first address of the sector/block being erased. If the data at that address is verified to be erased (all 1 s ), then the next physical address is verified. The Verify operation continues until a single Verify fails or until the last address of the sector/block has been reached. If the result of a Verify is fail then a new pulse is applied before continuing with the Verify operation, starting from the last failing address. Figure 2. Algorithm Start Addr = 1st addr Verify (Addr) Data = FFh? Last Addr? Inc Addr Pulse End Publication umber: A- 0247 2

Figure 3 shows a timing diagram of the sequence internal to the Flash memory. Early in the sequence, the Verify operation quickly detects 0 s and triggers a new Pulse because very few memory locations have been erased. Gradually the Verify operation runs longer as more locations within the sector/block verify successfully until the erase completes. Figure 3. Flow: /Verify Sequence An Suspend request can occur during an Pulse or during a Verify operation in an unpredictable manner. If the suspend request occurs during an pulse, as shown in 4, the pulse is interrupted because it would be too long to wait for the pulse to complete. When the pulse is interrupted, the erase efficiency is reduced. If the truncated pulse is much shorter than the standard erase pulse duration, its erasing effect can be negligible. This not a problem because a new pulse will be started when the is resumed. However, in the case of multiple Suspend/Resume cycles, if the resume to suspend time is much smaller than the standard pulse, a degradation of the total erase time might be observed. Figure 4. Flow: /Verify Sequence with an Suspend Event. Publication umber: A- 0247 3

Suspend and Resume Commands and Timing TECHICAL OTE After receiving a Suspend command, the device takes a maximum of 20us to enter the -Suspended mode as shown in Figure 5. After this latency has elapsed it is possible to proceed with a Read Command. Suspend latency is designed to be as short as possible in order to allow the system to read data from another sector quickly. Suspend status can be recognized by polling the proper bit in the Status or Configuration register. For a complete description of the flow please refer to the specific flash datasheet. If the operation is suspended, other sectors/blocks (other than the one suspended) can be read. While is suspended in a sector/block, there might be some limitations to read from a certain group of sectors/blocks. This possible limitation should be confirmed in the specific flash datasheet of the device being used. Figure 5. Suspend Command and Suspend Latency Suspend Command Read Command CS# Suspend Latency The Resume command will resume a suspended as shown in Figure 6. T erase is the time it takes for the operation to finish after being resumed. A Read Command is permitted after the operation completes. Figure 6. Resume Command Resume Command Read Command CS# Terase It is permitted to suspend the same erase operation multiple times but a typical Resume-to-Suspend time should be observed in order to avoid excessive delays to the completion of the erase operation. Resume-to-Suspend time is also referred to as Resume Latency or T resume in this document. Resume latency is shown in Figure 7. Publication umber: A- 0247 4

Figure 7. Resume to Suspend Time (Resume Latency) CS# Resume Command Suspend Command Tresume A typical value for T resume is between 400us and 1 ms depending on the device and technology. Refer to your Macronix datasheet to get the actual number for the product of interest. Datasheets usually indicates only a typical value for T resume instead of a strict minimum requirement. The reason is to provide flexibility in setting the appropriate resume latency for the application. In fact, 1ms T resume latency is quite long, especially if compared to the initial Suspend latency of 20us. Some critical systems may require, on special conditions (e.g. critical interrupts), to react in the shortest time and cannot afford to wait for 1 ms before accessing the memory again. In some Flash memories (e.g. MX25U family) a minimum T resume is defined. Using such a timing will allow the system to reap the benefit of a very short suspend time in any situation, but the user is warned that repeatedly using such a minimum timing will prevent the from progressing. In the following section it will be described how to set and use the correct T resume latency in the application and to avoid deadlock situations. Suspend/Resume Flow System developers are allowed to shorten the typical resume latency T resume, but they need to be aware that the overall erase time might become longer. If a shorter than typical T resume is used, designers need to ensure that the system doesn t enter into a critical Resume-Suspend loop. In this situation the could take an excessively long time to complete or even never complete, if a very short T resume is set. In order to properly design the Suspend function it is important that the system designer understand: i. What is the acceptable resume latency for the application ii. What situations will trigger a suspend request, and what is the probability of it occurring If it is not critical to use the absolute minimum suspend latency, designers are recommended to use the typical (sometimes referred to as standard ) suggested resume latency datasheet timing. Because the issuance of a Suspend Request is an asynchronous event, in order to guarantee T resume timing, it is necessary to implement either a fixed delay or a timer in the flow. See examples in Figure 9 and Figure 10 in the Appendix for reference. In cases where system timing is critical and lowering the resume latency to very short values is required (e.g. down to 1us when allowed as for MX25U family), then it is important to understand if the software could fall into an endless loop because of Time enlargement. The system designers that need to use aggressive T resume timing must adopt some countermeasures to avoid this situation. If a Suspend request occurs only once or very infrequently (like in the case of a power loss) then resume latency can be reduced to minimum values without concern. Once the critical interrupt has been serviced, the system will return to standard operation and will have a chance for the operation to progress. If the user is uncertain about the suspend/resume frequency, an easy solution to ensure erase completion is Publication umber: A- 0247 5

to insert a fixed typical T resume delay after a fixed number of suspend commands have been executed (e.g. 10). It is important to remember that if a shorter than typical T resume is required, the user can characterize the behavior of the memory under such conditions to find out the time enlargement when Resume/Suspend is issued repeatedly under such timing condition. It is important to highlight that when using a T resume below the recommended value the total time is no longer guaranteed. Limitations of Suspend There is no limit regarding the number of times the Suspend/Resume commands can be issued. However, complete erase pulses are required for an erase operation to progress towards completion as explained in previous sections. In the Macronix GL family (parallel OR flash) there is a limitation regarding the sectors (forming a group) that can be read during Suspend. Please refer to the datasheets or Application otes to be aware of such limitations. Suspend and Simultaneous Read/Write Multibank products can offer a Simultaneous Read/Write feature (sometimes called Read While Write). The memory in Multibank Products are typically partitioned into two, four or eight banks depending on the memory size. The Simultaneous Read/Write feature allows reading from one bank of the memory while an or Program operation is on going in another bank as shown in Figure 8. Figure 8. a) Suspend versus b)simultaneous Read/Write Operation a) Read another sector Suspend Suspend b) Read another bank Multibank products offer great flexibility to the systems but at a price of a greater cost because read and service circuits are duplicated in each bank. Multibank devices can be used when there is the need for updating some data while an unstoppable process is executed. The use of Multibank devices is predominantly found in mobile applications. Macronix offers Multibank products for 1.8V applications. In many applications, efficient Suspend/Resume features makes Read-While-Write operation not strictly necessary. In fact, if the response to suspend commands is short enough, then the system can still work without using the Simultaneous Read/Write feature. Macronix products are designed to offer optimal Suspend/Resume performance. Publication umber: A- 0247 6

Summary With a better understanding of how the Macronix Suspend/Resume function works, the feature can be implemented in such a way as to enhance system performance. References Macronix Doc. A0202 Description Design notice - Serial Flash Suspend/Resume & Program Suspend/Resume Flow Revision History Revision Date Description 01 Initial release Publication umber: A- 0247 7

Appendix: Suspend/Resume Flow Examples TECHICAL OTE Figure 9. Suspend/Resume Flow with Tresume Timer Start Tresume Timer = 0 Command RDSR Command WIP=0 Suspend Request End Tresume Timer=0 Suspend Command Read Data from other sectors Resume Command Set Tresume = Tresume_typ Publication umber: A- 0247 8

Figure 10. Suspend/Resume Flow with Tresume Delay Start Command RDSR Command WIP=0 Suspend Request End Suspend Command Read Data from other sectors Resume Command Wait Tresume_typ Publication umber: A- 0247 9

Except for customized products which have been expressly identified in the applicable agreement, Macronix's products are designed, developed, and/or manufactured for ordinary business, industrial, personal, and/or household applications only, and not for use in any applications which may, directly or indirectly, cause death, personal injury, or severe property damages. In the event Macronix products are used in contradicted to their target usage above, the buyer shall take any and all actions to ensure said Macronix's product qualified for its actual use in accordance with the applicable laws and regulations; and Macronix as well as it s suppliers and/or distributors shall be released from any and all liability arisen therefrom. Copyright Macronix International Co., Ltd. 2012. All rights reserved, including the trademarks and tradename thereof, such as Macronix, MXIC, MXIC Logo, MX Logo, Integrated Solutions Provider, Bit, Biit, Macronix Bit, eliteflash, XtraROM, Phines, KH Logo, BE-SOOS, KSMC, Kingtech, MXSMIO, Macronix vee, Macronix MAP, Rich Audio, Rich Book, Rich TV, and FitCAM. The names and brands of other companies are for identification purposes only and may be claimed as the property of the respective companies. For the contact and order information, please visit Macronix s Web site at: http://www.macronix.com Publication umber: A- 0247 10