Application Note

Application Note
Parallel Mode Programming
Macronix 16M to 128M Serial Flash
July 2005
What is “parallel mode programming”?
Low density serial flash devices from Macronix are offered in an 8-pin SOP package which makes them
very convenient to be used in space-restrained applications. These are 8Mb density and below. The
higher density devices from 16Mb to 128Mb are offered in a 16-pin SOP package. For all these serial
devices four functional pins are used for serial operation with the SPI interface: serial-in (SI), serial-out
(SO), serial clock (SCLK), and chip-select (CS). Additional pins are used for VCC and GND.
For 16Mb to 128Mb density devices in 16-pin SOP packages, instead of leaving the extra pins as no
connect (NC), Macronix has utilized these extra pins to offer the “Parallel Mode Programming” feature.
This feature saves precious programming time and customers can take advantage of the feature during
production programming using a standard flash programmer.
Stages: 1. Load data
data to
to
internal
Flash
-byte
Flash 256-byte
256 through
buffer
through PO0 -PO0
PO7
PO7 pins
Serial
Programmer
HOLD#
VCC
NC
PO2
PO1
PO0
CS#
SO/PO7
MXIC SPI Flash
Parallel
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
SCLK
SI
PO6
PO5
PO4
PO3
GND
WP#/ACC
pins
2. Flash
Flash internal
program
internal
program operation
operation
St ages: 1. Load data
datato
to Flash
internal 256
Flash
-byte
- byte
256 through
buffer
through SI
pin SI
Programmer
2. Flash internal
program operation
internal
operation
AN 003.01
1
HOLD#
VCC
NC
PO2
PO1
PO0
CS#
SO/PO7
1
2
3
4
5
6
7
8
16
15
14
13
12
11
10
9
SCLK
SI
PO6
PO5
PO4
PO3
GND
WP#/ACC
Application Note
Parallel Mode Programming
Macronix 16Mb to 128Mb Serial Flash
Operation
Two major stages are required to program a serial flash using a programmer:
Stage 1: load the program code from the programmer to a serial flash,
Stage 2: perform internal programming on the serial flash.
à
à
For “parallel mode”:
For “serial mode”:
load code via the PO0-PO7 pins in byte format.
load code via SI pin in bit format.
The major difference in programming time between serial mode and parallel mode is during
Stage 1 when the mass code is loaded into the flash buffer. (see comparison table below)
There will be no impact on PO0-PO7 pins while the chip is in serial mode. PO0-PO6 pins may be pulled
high, low, or left floating, and PO7/SO pin acts as the SO pin when the chip is in serial mode.
Table. Comparison between Programming a Serial by “Parallel Mode” vs. “Serial
Mode” using a Programmer
Programmer
SPI clock rate
Serial Write time
( to program one page)
Parallel Write
Parallel
Writetime
time
( to
to program
programone
onepage)
page)
235 KHz (4.25µ s)
Stage 1: (load data to buffer)
Stage 1:
1: (Load
(load data
data to
tobuffer
buffer)
Write to buffer time (X) =
byte+256 cycles write buffer
Write
buffertime
time
Write totobuffer
= X= /X
8/8
≅20.56mS / 8 = 1.1mS
≅8.84ms / 8 = 1.1 ms
≅ (1+3+256) x 8bit ≅
8.84ms = X
Stage 2: (Flash programming)
Stage 2 :: (Flash
(Flashprogramming)
programming)
Flash Page
Page program
programtime
time~2.3ms
~2.3mS
Flash
Flash Page program time
Flash Page program time ~2.3ms
11.14 ms
3.4ms
Program time per page reduced 3.3 times
Note: The above does not include verification stage on the programmer
2
www.macronix.com
Application Note
Parallel Mode Programming
Macronix 16Mb to 128Mb Serial Flash
Why do you need the “parallel mode programming” method?
235KHz
235KHzserial
serialclock
clockrate
rateofofBP
BPprogrammer
programmermodel
model#BP2700
#BP2700
second
second
800
800
parallel
parallel
programming
programming
700
700
600
600
serial
serialprogramming
programming
500
500
400
400
300
300
200
200
100
100
00
128M
128M
64M
64M
32M
32M
16M
16M
The throughput of programming serial flash in the factory is a production bottleneck because the serial clock rate of
the programmer is around 100KHz~300KHz. The programmer takes a long time to load code into a serial flash for
programming because only one serial input pin DI, is used to transfer data into the serial flash. The serial clock is slow
with one pin to transfer data (100K~300KHz) compared to the parallel clock (1MHz~30MHz) with 8 pins to transfer
data. The situation gets worse when programming a high density serial flash by the programmer.
The figure above shows the benefits of using Macronix serial flash “parallel mode programming”. The serial clock rate
of the BP2700 programmer is calculated by testing a real 32Mb serial flash device and seeing the results.
As the chart shows, when the higher density serial flash is programmed, a longer programming time is required.
Please note that the “programming time” does not include “verify time” on the programmer.
The programmer is set up automatically to perform verification (read) after the programming stage. This means that
the time difference between “parallel mode” and “serial mode” on the p rogrammer is increased.
For instance, to verify a 64Mb serial flash it takes roughly the following:
- Serial mode (one bit to be read out at a time) = 67,108,864bit x 4.25uS (235KHz) = 285 seconds
- “Parallel mode” (eight bits to be read out at a time) =67,108,864bit ÷ 8 x 4.25uS = 35 seconds.
* Other names and brands are the property of the respective companies
3
www.macronix.com
Application Note
Parallel Mode Programming
Macronix 16Mb to 128Mb Serial Flash
How does it work?
Flow Chart of Parallel Mode Programming
Parallel mode programming provides Macronix
serial flash with 8-bit inputs/outputs for increasing
Start
throughput of factory p roduction. A software
command (55hex) activates the parallel mode, so
Power On
the serial flash may communicate with the
programmer in byte mode via PO0 -PO7 pins of
the Macronix serial flash. After writing the parallel
Write Parallel mode command: 55H (via SI pin)
mode command and then CS# going high, the
Macronix serial flash is able to accept
Set WEL bit (for write enable)
read/program/read status/read ID/RES/REMS
command as the normal writing command. The
Write Page Program Command: 02H (via SI pin)
Macronix serial flash will be in parallel mode until
Vcc power is turned off.
IInput 3-byte Address (via SI pin)
Notes:
a.
Load 256-byte buffer data to SPI Flash
(via PO0 PO7 pins)
Only effective for Normal Read Array (not
FAST_READ), Read Status, Read ID,
Page Program, RES and REMS write data
period.
Serial Flash internal programming
b. For normal write command (by SI)- no effect.
c. Under parallel mode, the fastest access
clock frequency will be changed to
1.5MHz(SCLK pin clock frequency.)
d. For parallel mode, the tAA will be changed to
Read Status Register (RDSR command)
Bit0=0?
(output via PO0 pin)
(chip is not busy?)
no
50ns.
yes
What is the benefit?
(Bit6=0?
output via PO6 pin) (program
/erase/pass?)
The major benefit is at the programming stage
and verify stage on the programmer. A brief
no
yes
Serial Flash Programming Finished
flowchart of “parallel mode programming” is
shown in the figure on the right. The “verify”
flowchart is similar to the “programming”
Exit Parallel mode when VCC is off
fail
flowchart, the difference is to write “read”
th
command instead of “program” command at the 4 stage of the flow.
Conclusion
Macronix provides 16Mb~128Mb serial flash with the “parallel mode programming” feature, which is highly
recommended for increasing factory production throughput. By utilizing the pins that were originally “NC” on the
16-SOP package, Macronix creates more value with those pins being active by increasing programmer throughput.
4
www.macronix.com