3456 3; &./0(+/1% - user.eng.umd.edu

41

Upload: others

Post on 17-Oct-2021

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!5

GJIK?L'IMN!OP!+QLN<QJD

!"#$%&'()*+",-./0+(&12!"#$%&'(()%*(+,-.%&./0(+/1%2-3$"0(304-(%56)%7(-8,-+563(%2659./"/290(-650":(%&,9")%&050(%*(+,-"(/1%;95/$<%*=2*<%;(=2*<%7>=2*

!-34.5+673-3+8-34.5+.9+4:3R!'S#*)0!=-21B#2!-.#$#2BS!B.1T-.U!VW!AB=-CX!FB2$!3448Y!

Page 2: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!3

GJIK?L'IMN!OP!+QLN<QJD

;7<5+.9+=>?@A! B>3C<5.D3CEF+G<95+-3<49+</4+B-3C<5.D3CEF+G<95+

6-.539! H/C.I.534+/:IJ3-+KG+6-.539! LKC<5.C3+#+CK939+4<5<+95K-<03+6.57K:5+

,K63-! =E/<I.8+#+CK939+4<5<+6.57K:5+,3-.K4.8+

-3G-397! !K:C4+J3+G<J-.8<534+:9./0+9.I.C<-+

I<53-.<C9+</4+B-3C<5.D3CEF+9.I.C<-+9.C.8K/+J<934+,-K8399+5387/KCK0.39+<9+C3<4./0+3403+,-K8399K-9

Page 3: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!Z

GJIK?L'IMN!OP!+QLN<QJD

?C53-/<5.D39M! B>3C<5.D3CEF+9CK63-+-3<49+</4+BK/+9KI3F+

-3<CCE+9CK6+6-.539! B"KI3F+C.I.534+/:IJ3-+KG+6-.539! NK/#LKC<5.C3+#+O33,9+4<5<+95K-<03+6.57K:5+

,K63-! @<E+-3P:.-3+/36+I<53-.<C9+</4+B-3C<5.D3CEF+

4.GG3-3/5+,-K8399+5387/KCK0.39+<9+C3<4./0+3403+,-K8399K-9

Page 4: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!6

GJIK?L'IMN!OP!+QLN<QJD

QC<97M+R<9.8+S43<

#+TC385-.8<C+87<-039+<-3+GK-834+5K+5://3C+57-K:07+KU.439+</4+035+5-<,,34+./+573+GCK<5./0+0<53'+

#+V-<,,34+87<-039+./+GCK<5./0+0<53+573/+<C53-9+L5#+W.07+DKC5<03+GK-839+5://3C./0

#+=.GG3-3/839+./+L5+KG+5-</9.95K-+573/+93/934+<9+&X1

!K/5-KC+Y<53

QCK<5./0+Y<53

"K:-83=-<./

V://3C+ZU.43

#+TU,C.8.5+,-K0-<I+</4+3-<93+8E8C39

;K-4+[./3

R.5+[

./3

\-K0-<I

T-<93

Page 5: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!8

GJIK?L'IMN!OP!+QLN<QJD

!7<-03+\:I,

#+R:.C4+:,+C<-03-+DKC5<03+GK-+,-K0-<II./0+GCK<5./0+0<53

L44

YN=

LK:5

![]![]

LK:5+^+B+L44+#+L5+F+U+N+_+L44

S43<C.`34+87<-03+,:I,./0+8.-8:.5

aNb+.9+573+/:IJ3-+KG+95<039

Page 6: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!;

GJIK?L'IMN!OP!+QLN<QJD

N?N=+QC<97+?--<ER.5+[./3

R.5+[./3+"3C385

R.5+[./3+"3C385

"K:-83+[./3

;K-4+[./3

;K-4+[./3

;K-4+[./3

;K-4+[./3

Page 7: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?![

GJIK?L'IMN!OP!+QLN<QJD

NZ>+QC<97+?--<E

"K:-83+[./3

R.5+[./3

;K-4+[./3

;K-4+[./3

;K-4+[./3

;K-4+[./3

Page 8: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!\

GJIK?L'IMN!OP!+QLN<QJD

N?N=+D3-9:9+NZ>

"I<CC3-+!3CC+".`3NZ> N?N=

R3553-+TX;+T/4:-</83

Q<95+>3<4+Bc1&&/9F"CK6+;-.53+Bc1&+:9F

"CK6+>3<4+Bc1+:9FaQ<95b+;-.53+Bc1+:9F

H934+GK-+!K43 H934+GK-+=<5<

Bd1&&]+D9+d1&]F Bc2&eF

7

Bruce Jacob
*** values accurate as of 2003 … updated table in a moment
Page 9: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!9

GJIK?L'IMN!OP!+QLN<QJD

@:C5.+BDKC5<03F+[3D3C+!3CC!K/5-KC+Y<53

QCK<5./0+Y<53

"K:-83=-<./

V://3C+ZU.43

;K-4+[./3

R.5+[

./3

\-K0-<I

T-<93

!"#$%&'(&)*+#,

!"#$%&''&)*+#,

-"!.*

#,

!"#$%&('&)*+#,

!"#$%&((&)*+#,

L-3Gf(

L-3Gf&

L-3Gf1

(+J.59+,3-+83CC+/K6'g+K-+2+J.59,3-+83CC+./G:5:-3A

Page 10: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!54

GJIK?L'IMN!OP!+QLN<QJD

>3<49+</4+;-.539#+>3<49+<-3+-3C<5.D3CE+95-<.075GK-6<-4#+;-.539+<-3+8KI,C3U

#+=.4+573+83CC9+3-<93+,-K,3-CEA

#+WK6+CK/0+4K+63+7KC4+573+-3D3-93+J.<98:--3/59+5K+a3-<93bA

#+=.4+573+6-.53+9:88334A#+SG+573+6-.53+G<.C34*+-38KD3-*+-3I<,+</4-3#6-.53+5K+</K573-+9385K-XJCK8O

Page 11: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!55

GJIK?L'IMN!OP!+QLN<QJD

S""!!+(&&$M+VK97.J<+h+YJ+N?N=

i&+/I+!@Z"g@+B(?C*+1+;F83CC+9.`3M+&'&(2:I(

B$+Q(F(+J.59+,3-+83CC8E8C3+5.I3M+$&/9,-K0-<I+5.I3M+)i&:9,-K0-<II./0+57-K:07,:5M+)+@RX9

4.3+9.`3M+12)+II(

Page 12: 3456 3; &./0(+/1% - user.eng.umd.edu

A rch i t ec t u reThese devices use NAND Flash electrical and command interfaces. Data, commands,and addresses are multiplexed onto the same pins and received by I/O control circuits.The commands received at the I/O control circuits are latched by a command registerand are transferred to control logic circuits for generating internal signals to control de-vice operations. The addresses are latched by an address register and sent to a row de-coder to select a row address, or to a column decoder to select a column address.

Data is transferred to or from the NAND Flash memory array, byte by byte, through adata register and a cache register.

The NAND Flash memory array is programmed and read using page-based operationsand is erased using block-based operations. During normal page operations, the dataand cache registers act as a single register. During cache operations, the data and cacheregisters operate independently to increase data throughput.

The status register reports the status of die (LUN) operations.

F i g u re 14: N A N D F l ash D i e (LU N) F u nc t i o n a l B l ock D i a g r a m

Sta tus regist er

Command regist er

Vccq Vssq

CE#

CLE

N/A

ALE

RE# WP#

D Q[7:0]

Async

WE#

R/B#

CE#

CLE

D QS

ALE

W /R#WP#

D Q[7:0]

Sync

CLK

R/B#

Vcc Vss

Controllogic

Data Regist er

Cache Regist er

Ro

w D

ecod

e

Column Decode

N A ND FlashArray

Data regist er

Cache regist er

Ro

w D

ecod

e

Column decode

N A ND Flash array (2 planes)

A ddress regist erI/Ocontrol

Notes: 1. N/A: This signal is tri-st a ted w hen the asynchronous in terface is act ive .2. Some devices do no t include the synchronous in terface .

Micron Confiden tial and Proprie tary

32 G b , 64 G b , 128 G b , 256 G b A sy nch ro n o us/Sy nch ro n o us N A N DA rch i t ec t u re

PDF: 09005ae f83e0bed4M73A_32Gb_64Gb_128Gb_256Gb_AsyncSync_N A ND .pdf Rev. F 5/12 EN 23 Micron Technology, Inc. reserves the righ t to change products or speci f ica tions w ithout no tice .

© 2010 Micron Technology, Inc. A ll righ ts reserved .

Banks vs. Planes

Page 13: 3456 3; &./0(+/1% - user.eng.umd.edu

PDF: 09005aef8331b189 / Source: 09005aef8331b1c4 Micron Technology, Inc., reserves the right to change products or speci f ications without notice .32gb_nand_mlc_l63a__2.fm - Rev. A 12/08 EN 15 ©2008 Micron Technology, Inc. A ll rights reserved .

32Gb, 64Gb, 128Gb: NAND FlashArray Organization

Micron Confidential and Proprietary Advance

Array Organization

Figure 8: Array Organization: 32Gb and 64Gb Devices

Note: For 64Gb devices, the 32Gb array organization shown here applies to each chip enable (CE# and CE2#).

Notes: 1. Block address concatenated with page address = actual page address. CAx = column address; PAx = page address; BAx = block address.

2. Column address 4313 (10D9h) is the maximum valid column address.3. Plane select bit:

0 = plane of even-numbered blocks1 = plane of odd-numbered blocks

Table 3: Array Addressing: 32Gb and 64Gb

Cycle I/O7 I/O6 I/O5 I/O4 I/O3 I/O2 I/O1 I/O0

First CA7 CA6 CA5 CA4 CA3 CA2 CA1 CA0Second LO W LO W LO W CA12 CA11 CA10 CA9 CA8Third BA73 PA6 PA5 PA4 PA3 PA2 PA1 PA0

Fourth BA15 BA14 BA13 BA12 BA11 BA10 BA9 BA8Fif th LO W LO W LO W LO W BA19 BA18 BA17 BA16

Cache register

Data register

4096 blocksper plane

8192 blocksper die

1 block 1 block

I/O0

I/O7

1 page = (4K + 218 bytes)

1 block = (4K + 218) bytes x 128 pages = (512K + 27K) bytes

1 plane = (512K + 27K) bytes x 4096 blocks = 17,256Mb

1 die = 17,256Mb x 2 planes = 34,512Mb

Plane of even-numbered blocks

(0, 2, 4, 6, ..., 8188, 8190)

Plane of odd-numbered blocks

(1, 3, 5, 7, ..., 4095, 8191)

2184096 218

4314 bytes4314 bytes

2182184096

4096

4096

Banks vs. Planes

Page 14: 3456 3; &./0(+/1% - user.eng.umd.edu

DISK & FLASH

Bruce Jacob
A brief interlude
Page 15: 3456 3; &./0(+/1% - user.eng.umd.edu

Disk

Chapter 17 THE PHYSICAL LAYER 621

RAMAC to the washing machine-size disk drives of the 1970s and 1980s and, fi nally, to the palm-size disk drives of the 1990s and today. Today’s disk drives all have their working components sealed inside an alu-minum case, with an electronics card attached to one side. The components must be sealed because, with the very low fl ying height of the head over the disk surface, just a tiny amount of contaminant can spell disaster for the drive.

This section very briefl y describes the various mechanical and magnetic components of a hard disk drive [Sierra 1990, Wang & Taratorin 1999, Ashar 1997, Mee & Daniel 1996, Mamun et al. 2006, Schwaderer & Wilson 1996]. The desirable characteristics of each of these components are discussed. The major physi-cal components are illustrated in Figure 17.8, which shows an exposed view of a disk drive with the cover removed. The principles of operation for most com-ponents can be fully explained within this chapter. For the servo system, additional information will be required, and it will be described in Chapter 18.

17.2.1 DisksThe recording medium for hard disk drives is

basically a very thin layer of magnetically hard mate-rial on a rigid circular substrate [Mee & Daniel 1996]. A fl exible substrate is used for a fl exible, or fl oppy, disk. Some of the desirable characteristics of record-ing media are the following:

Thin substrate so that it takes up less spaceLight substrate so that it requires less power to spinHigh rigidity for low mechanical resonance and distortion under high rotational speed; needed for servo to accurately follow very narrow tracksFlat and smooth surface to allow the head to fl y very low without ever making contact with the disk surfaceHigh coercivity (Hc) so that the magnetic recording is stable, even as areal density is increased

••

Actuator

Flex cable

Load/UnloadRamp

Disk

Spindle & Motor

Head Disk Assembly

Magnet structureof Voice

Coil Motor

Case

FIGURE 17.8: Major components of today’s typical disk drive. The cover of a Hitachi Global Storage Technologies UltraStarTM 15K147 is removed to show the inside of a head-disk assembly. The actuator is parked in the load/unload ramp.

ch17_P379751.indd 621ch17_P379751.indd 621 8/8/07 3:55:16 PM8/8/07 3:55:16 PM

Page 16: 3456 3; &./0(+/1% - user.eng.umd.edu

Flash SSD

Rotating Disks vs. SSDsMain take-aways

Forget everything you knew about rotating disks. SSDs are different

SSDs are complex software systems

One size doesn’t fit all

Rotating Disks vs. SSDsMain take-aways

Forget everything you knew about rotating disks. SSDs are different

SSDs are complex software systems

One size doesn’t fit all

Magnet structure of

voice coil motor

Spindle & Motor

Disk

Actuator

Flash

Memory Arrays

Load / Unload

Mechanism

(a) HDD (b) SSD

Flash memory arrays

Circuit board

ATA Interface

Page 17: 3456 3; &./0(+/1% - user.eng.umd.edu

Disk Issues

• Keeping ahead of Flash in price-per-GB is difficult (and expensive)

• Dealing with timing in a polar-coordinate system is non-trivial

• OS schedules disk requests to optimize both linear & rotational latencies; ideally, OS should not have to become involved at that level

• Tolerating long-latency operations creates fun problems

• E.g., block-fill not atomic; must reserve buffer for duration; Belady’s MIN designed for disks & thus does not consider incoming block in analysis

• Internal cache & prefetch mechanisms are slightly behind the times

Page 18: 3456 3; &./0(+/1% - user.eng.umd.edu

Flash SSD Issues

• Flash does not allow in-place update of data (must block-erase first); implication is significant amount of garbage collection & storage management

• Asymmetric read [1x] & program times [10x] (plus erase time [100x])

• Proprietary firmware (heavily IP-oriented, not public, little published)

• Lack of models: timing/performance & power, notablyFlash Translation Layer is a black box (both good & bad)Ditto with garbage collection heuristics, wear leveling, ECC, etc.

• Result: poorly researched (potentially?)E.g., heuristics? how to best organize concurrency? etc.

Page 19: 3456 3; &./0(+/1% - user.eng.umd.edu

SanDisk SSD Ultra ATA 2.5” Block Diagram

Page 20: 3456 3; &./0(+/1% - user.eng.umd.edu

Flash SSD Organization & Operation

Ctrl

IDE

ATA

SCSI

Host

x16

SR

AM

MPU

ECCD

ata

Bu

ffer

x32

Flash Translation

Layer

Data

&

Ctrl

x32

Fla

sh C

on

tro

ller

x16

x8

x8

x16

x8

x8

Flash

Array

Flash

Array

Flash

ArrayFlash

Array

Host I/F

LayerNAND I/F

Layer

• Numerous Flash arrays

• Arrays controlled externally (controller rel. simple, but can stripe or interleave requests)

• Ganging is device-specific

• FTL manages mapping (VM), ECC, scheduling, wear leveling, data movement

• Host interface emulates HDD

Page 21: 3456 3; &./0(+/1% - user.eng.umd.edu

Flash SSD Organization & Operation

Ctrl

IDE

ATA

SCSI

Host

x16

SR

AM

MPU

ECCD

ata

Bu

ffer

x32

Flash Translation

Layer

Data

&

Ctrl

x32

Fla

sh C

on

tro

ller

x16

x8

x8

x16

x8

x8

Flash

Array

Flash

Array

Flash

ArrayFlash

Array

Host I/F

LayerNAND I/F

Layer

I/O

Contr

ol

I/O

Column

Row

Data Reg

Cache Reg

Control

Logic

Cmd Reg

Status Reg

Addr Reg

CE#W#

R#

Flash Memory Bank

Data Reg

Cache Reg

2K bytes

1 Block

1 Page = 2 K bytes

1 Blk = 64 Pages

1024 Blocks per Device (1 Gb)

Flash

Array

• 2 KB Page

• 128 KB Block

• 2 μs page read

• 200 μs page program

• 3 ms block erase

• 32 GB total storage

Page 22: 3456 3; &./0(+/1% - user.eng.umd.edu

Flash SSD Timing

Cmd Addr

5 cycles0.2 us

25 us 3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Read page from memory array into data register

Xfer from data to cache register

Subsequent page is accessed while data is read out from cache register

Cmd

5 cycles0.2 us

3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Xfer from cache to data register

Page is programmed while data for subsequent page is written into cache register200 us

Read 8 KB(4 Pages)

Write 8 KB(4 Pages)

Rd0 Rd1 Rd2 Rd3

DO0 DO1 DO2 DO3

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3

Page 23: 3456 3; &./0(+/1% - user.eng.umd.edu

disk-interface speeds are scaling up with serial interface and fiber channel, SSD’s performance is

expected to be limited by the media transfer rate. We have measured the effect of media transfer rate on

the performance of NAND Flash SSD by scaling I/O bus bandwidth from 25 MB/s (8-bit wide bus at 25

MHz) up to 400 MB/s (32-bit wide bus at 100 MHz). As shown in Figure 7, performance does not

improve significantly beyond 100 MB/s.

However, note that, even when performance saturates at high bandwidths, it is still possible to

achieve significant performance gains by increasing the level of concurrency by either banking or

implementing superblocks. Performance saturates at 100MB/s because the real limitation to NAND Flash

memory performance is the device’s core interface—the requirement to read and write the flash storage

array through what is effectively a single port (the read/cache registers)—and this is a limitation that

concurrency overcomes.

5.4. Increasing the Degree of Concurrency

As shown previously, flash memory performance can be improved significantly if request latency is

reduced by dividing the flash array into independent banks and utilizing concurrency. The flash controller

can support these concurrent requests through multiple flash memory banks via the same channel or

through multiple independent channels to different banks, or through a combination of two. To get a

better idea of the shape of the design space, we have focused on changing the degree of concurrency one

I/O bandwidth at a time. Figure 8 shows example configurations modeled in our simulations with

bandwidths ranging from 25 MB/s to 400 MB/s. This is equivalent to saying, “I have 4 50 MHz 8-bit I/O

channels... what should I do? Gang them together, use them as independent channels, or a combination of

the two?”

The performance results are shown in Figure 9. Though increasing the number of available

concurrency in the storage sub-system (number of banks x number of channels) typically increases

16

pro

Fit T

RIA

L v

ers

ion

Host

Host

I/F

Fla

sh

Contr

oll

er

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

k

Ban

kHost

Host

I/F

Fla

sh

Contr

oll

er

Host

Host

I/F

Fla

sh

Contr

oll

er

(a) Single channel (b) Dedicated channel for each bank (c) Multiple shared channels

Figure 8: Flash SSD Organizations. (a) Single I/O bus is shared - 1, 2, or 4 banks; (b) dedicated I/O bus: 1, 2, or 4

buses and single bank per bus; (c) multiple shared I/O channels - 2 or 4 channels with 2 or 4 banks per channel.

Some Performance Studies

0

1

2

3

4

1 x

8 x

25

1 x

8 x

50

2 x

8 x

25

1 x

16 x

50

1 x

8 x

100

2 x

8 x

50

1 x

16 x

50

4 x

8 x

25

2 x

16 x

25

1 x

32 x

25

2 x

8 x

100

1 x

16 x

100

4 x

8 x

50

2 x

16 x

50

1 x

32 x

50

4 x

16 x

25

2 x

32 x

25

4 x

8 x

100

2 x

16 x

100

1 x

32 x

100

4 x

16 x

50

2 x

32 x

50

4 x

32 x

25

4 x

16 x

100

2 x

32 x

100

4 x

32 x

50

4 x

32 x

100

Read Response Time vs. Organization

Resp

on

se T

ime

(m

se

c)

Configuration

Bruce Jacob
1,2,4 Banks per channel
Page 24: 3456 3; &./0(+/1% - user.eng.umd.edu

I/O Access Optimization

• Access time increasing with level of banking on single channel

• Increase cache register size

• Reduce # of I/O access requests

Fla

sh C

ontr

oll

er

Data Reg

Cache Reg

Data Reg

Cache Reg

Data RegCache Reg

Data RegCache Reg

Independent

Banks

Flash

Array

Flash

Array

Flash

Array

Cmd

5 cycles0.2 us

3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Xfer from cache to data register

Page is programmed while data for subsequent page is transferred200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3

Cache Reg

Data Reg

1 Block

1 Page

64 Pages

Flash

Array

2 K bytes

1 PageCache Reg

Data Reg

1 Block

1 Page

64 Pages

2 K bytes

4 Pages

Cmd

5 cycles0.2 us

3 us

8192 cycles327.68 us

I/O [7:0]

R/W

Xfer from cache to data register Page is programmed200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3 (d) Write

using 8 KB

cache register

(a) 2 KB Cache Register (b) 8 KB Cache Register

(c) Write

using 2 KB

cache register

Fla

sh C

on

tro

ller

Data Reg

Cache Reg

Data Reg

Cache Reg

Data RegCache Reg

Data RegCache Reg

Independent

Banks

Flash

Array

Flash

Array

Flash

Array

Cmd

5 cycles0.2 us

3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Xfer from cache to data register

Page is programmed while data for subsequent page is transferred200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3

Cache Reg

Data Reg

1 Block

1 Page

64 Pages

Flash

Array

2 K bytes

1 PageCache Reg

Data Reg

1 Block

1 Page

64 Pages

2 K bytes

4 Pages

Cmd

5 cycles0.2 us

3 us

8192 cycles327.68 us

I/O [7:0]

R/W

Xfer from cache to data register Page is programmed200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3 (d) Write

using 8 KB

cache register

(a) 2 KB Cache Register (b) 8 KB Cache Register

(c) Write

using 2 KB

cache register

8 KB Write, 2 KB reg. - 4 I/O accesses

8 KB reg. - Single I/O access

Page 25: 3456 3; &./0(+/1% - user.eng.umd.edu

I/O Access Optimization

• Implement different bus-access policies for reads and writes

Cmd Addr

5 cycles0.2 us

25 us 3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Read page from memory array

Xfer from data to cache register

Subsequent page is accessed while data is read out

Read 8 KB(4 Pages)

Rd0 Rd1 Rd2 Rd3

DO0 DO1 DO2 DO3

Cmd

5 cycles0.2 us

3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Xfer from cache to data register

Page is programmed while data for subsequent page is read200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3

Access to I/O bus is not needed for 3 us and bus can be released if another memory bank asks for it. However, at the end of 3 us, it has to be acquired again.

Writes do not need I/O access as frequently as reads. I/O bus access is required between programming pages - 200us

(a) Release bus when it is not needed

Cmd Addr

5 cycles0.2 us

25 us 3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Read page from memory array

Xfer from data to cache register

Subsequent page is accessed while data is read out

Read 8 KB(4 Pages)

Rd0 Rd1 Rd2 Rd3

DO0 DO1 DO2 DO3

Hold I/O bus between data burst even if it is not needed

(b) Reads hold bus during entire data transfer

Writes do not need I/O access as frequently as reads

Cmd Addr

5 cycles0.2 us

25 us 3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Read page from memory array

Xfer from data to cache register

Subsequent page is accessed while data is read out

Read 8 KB(4 Pages)

Rd0 Rd1 Rd2 Rd3

DO0 DO1 DO2 DO3

Cmd

5 cycles0.2 us

3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Xfer from cache to data register

Page is programmed while data for subsequent page is read200 us

Write 8 KB(4 Pages)

Addr DI0 DI1 DI2 DI3

Pr0 Pr1 Pr2 Pr3

Access to I/O bus is not needed for 3 us and bus can be released if another memory bank asks for it. However, at the end of 3 us, it has to be acquired again.

Writes do not need I/O access as frequently as reads. I/O bus access is required between programming pages - 200us

(a) Release bus when it is not needed

Cmd Addr

5 cycles0.2 us

25 us 3 us

2048 cycles81.92 us

I/O [7:0]

R/W

Read page from memory array

Xfer from data to cache register

Subsequent page is accessed while data is read out

Read 8 KB(4 Pages)

Rd0 Rd1 Rd2 Rd3

DO0 DO1 DO2 DO3

Hold I/O bus between data burst even if it is not needed

(b) Reads hold bus during entire data transfer

Reads: Hold I/O bus between data bursts

Page 26: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!53

GJIK?L'IMN!OP!+QLN<QJD

QC<97+TDKC:5.K/\<-<I353- (&&2+

"[!(&&i+"[!

(&&h+@[!

(&1&"[!

(&1&+@[!

])2).B1#-2 3]C 3]C Z3]C Z3]C 53\]C^!@S-=U0 346\ 346\ \593 649; \593@S-=U!'#_) 53\`@ 53\`@ 853`@ 5+@ 3+@aB$)!'#_)b?77

3`@!b;6

3`@!b;6

6`@!b35\

\`@!b66\

\`@!b66\

aB$)0c@SU ;6 ;6 53\ 53\ 38;aSB2)0cD#)0 5c5 5c5 3c6 3c5 3c3L)B*!M#,) 38d0 38d0 84d0 Z8d0 [8d0F.#1)!M#,) Z44d0 Z44d0 944d0 Z84d0 5;44d0?.B0)!M#,) 3444d0 3444d0 Z444d0 5844d0 8444d0<-2$)E#1/ 544` 544` 54` ;4` Z4`+Be!@F! ZZ+Mc0 64+Mc0 84+Mc0 344+Mc0 344+Mc0

Page 27: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!5Z

GJIK?L'IMN!OP!+QLN<QJD

QC<97+":II<-E! !KI,<-<JC3+-3<4+C<53/8E+B5K+=>?@F+</4+

9CK6+6-.539! NK/+LKC<5.C3! C.I.534+6-.53+8E8C39! L3-E+I<5:-3+./4:95-E+! L3-E+7.07+43/9.5E*+J:5+CK/0+53-I+

98<C<J.C.5EA+ZU.43+-3C.<J.C.5E*+I:C5.#C3D3C+83CC'

! L.43K+<,,C.8<5.K/9+/K6+9:,,K-534

Page 28: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!56

GJIK?L'IMN!OP!+QLN<QJD

@>?@+

@>?@+@3IK-E+!3CC+"5-:85:-3

Page 29: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!58

GJIK?L'IMN!OP!+QLN<QJD

@<0/35K-39.95</83

3N "

#+!7</03+./+3C385-.8<C+-39.95</83+

@<0/35K

6.57+<,,C.34+I<0/35.8+G.3C4

3N "

3N "

3N"

>

L

>> >j

#+V73+-39.95</83+<0<./95+573+GCK6+KG+3C385-K/943,3/4+K/+,KC<-.`<5.K/+KG+3C385-K/9+</4+<D<.C<J.C.5E+KG+9,./#:,+K-+9,./#4K6/+95<539

Page 30: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!5;

GJIK?L'IMN!OP!+QLN<QJD

@>?@+!3CC+"5-:85:-3

;K-4C./3+M+!:--3/5+GCK6K:5+KG+573+,<03S;

Q3--KI<0/35+1

Q3--KI<0/35+(R<--.3-

SR R.5C./3\.//./0+C<E3-

@VkM+@<0/35.8+V://3Ck:/85.K/+95<8O

=.GG3-3/839+./+-39.95</83+^+a&b+K-+a1b

Page 31: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!5[

GJIK?L'IMN!OP!+QLN<QJD

@>?@+>3G3-3/83+!.-8:.5

>3G3-3/83+!3CC>-3G+^+1X(+l+B>I./+_+>I<UF

>I./

>I./>I<U

>I<U

8KIIK/+9K:-83;K-4+[./3

;K-4+[./3

R.5+[./3

>3G3-3/83+!3CC+:939+\<-<CC3CX"3-.<C+8KIJ./<5.K/+KG+@Vkm9./+56K+I3IK-E+95<539+5K+03/3-<53+aI.4+-39.95</83b-3G3-3/83+J35633/+57K93+56K+95<539

Page 32: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!5\

GJIK?L'IMN!OP!+QLN<QJD

@>?@+"30I3/5

>I./

>I./>I<U

>I<U

8KIIK/+9K:-83

;K-4+[./3

;K-4+[./3

>3G3-3/83+!.-8:.5R[1$R[12

!:--3/5+!K/D3EK-</4+=.GG3-3/5.<C+?I,

Page 33: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!59

GJIK?L'IMN!OP!+QLN<QJD

@K5K-KC<[email protected]+@>?@+!7.,

Page 34: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!34

GJIK?L'IMN!OP!+QLN<QJD

\-K8399+!KI,<5.J.C.5E+

@35<C+S/53-8K//385.K/9 i_+C<E3-9+KG+!:(+C<E3-9+KG+?C

S/53-#C<E3-+=.3C385-.8 CK6+]".Z(

+C<E3-+KG+V:/0953/

\KCE9.C.8K/(+K-+g+C<E3-9MCK8<C+./53-8K//3852_+C<E3-9M

83CC+8<,<8.5</83

V-</9.95K-9CK6+L5M=-.D3+8:--3/5+K,5.I.`34

7.07+L5MC3<O<03+K,5.I.`34

":J95-<53

5-3/87+8<,<8.5K-9

RZnM+R:-.34+ZU.43+C<E3-

[K0.8+Z,5.I.`34+\-K8399=>?@+Z,5.I.`34+\-K8399\-K8

399+Q

-K/5+T/4

\-K8

399+R

<8O+T/

4

J:CO+9.C.8K/

!</+J3+J:.C5+J35633/+I35<C+C<E3-9<JKD3+<85.D3+9.C.8K/

Page 35: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!35

GJIK?L'IMN!OP!+QLN<QJD

@>?@+":II<-E! NK/+LKC<5.C3! NK+/334+5K+-3G-397! B,K53/5.<CCEF+W.07+43/9.5E! NK/+4395-:85.D3+-3<4! W.07+6-.53+8:--3/5'! >3<4+9,334+^+6-.53+9,334o+j+$&/9! H/C.I.534+>X;+3/4:-</83! "KG5+3--K-+.II:/.5E! @<53-.<C+8KI,<5.J.C.5E+6.57+!@Z"+CK0.8+

</4+=>?@A! !:--3/5CE*+C<-03+83CC9*+J:5+lI<El+98<C3+

4K6/+5K+=>?@XQC<97+C3D3C9+KG+)+Q('

Page 36: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!33

GJIK?L'IMN!OP!+QLN<QJD

Q3>?@+!3CC

V35-<X\3/5<D<C3/5+?5KI=.X@K/KD<C3/5+@35<C+?5KI9ZUE03/+?5KI9

?,,C.34+TC385-.8+Q.3C4+@KD39+!3/53-+?5KI\pV+B\JZ*+p-Z(*+V.Z(F+[3<4#p.-8K/<53#V.5</<53+:/.5+83CC

Page 37: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!3Z

GJIK?L'IMN!OP!+QLN<QJD

Q3>?@+!3CC+Z,3-<5.K/

"?

;[

\[R[

L-3Ga1ba&b

5.I3

5.I3

L\[

L93/93

#+Q3--K3C385-.8+I<53-.<C+8</+J3+,KC<-.`34./5K+56K+95<JC3+95<539'+"5<539+8</+J3+I<./5<./34+6.57K:5+,K63-

Page 38: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!36

GJIK?L'IMN!OP!+QLN<QJD

Q3>?@+!.-8:.5+"5-:85:-3

"?

;[

\[R[

"?

R[ R[

(V(!M+R:.C5#./+-3G3-3/831V1!M+

\[;[

=>?@#C.O3+

L-3G

Page 39: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!38

GJIK?L'IMN!OP!+QLN<QJD

Q3>?@+":II<-E! NK/#DKC<5.C3+B/K+-3G-397F! =395-:85.D3+-3<4! [K6+DKC5<03+</4+CK6+,K63-! Q<95+-3<4+</4+G<95+6-.53+B8KI,<-34+5K+

NL@F! C.I.534+>X;+3/4:-</83+Bj+1&%+-3<49F

Page 40: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!3;

GJIK?L'IMN!OP!+QLN<QJD

\7<93+!7</03+@3IK-EVK,+3C385-K43

RK55KI+3C385-K43

\7<93+87</03+I<53-.<C8-E95<CC./3+X+<IK-,7K:9

=.GG3-3/839+./+-39.95</83+^+a&b+K-+a1b

W3<5

W3<5*+573/+'+'+'

"<I3+I<53-.<C+:934+./+-3#6-.53<JC3+!=X=L=+K,5.8<C+4.9O9+BY3"JV3F

"CK6+8KKC+4K6/+^+8-E95<CC./3'+[K6+-39.95'Q<95+8KKC+4K6/+^+<IK-,7K:9'+W.07+-39.95'

Page 41: 3456 3; &./0(+/1% - user.eng.umd.edu

!"#$%&'())*+),-./!'/01),0

'(.#2$!3456

7'&894:3;<)=1>.)!?

@.>=)!AB=-CDBE#*!FB2$

G2#E).0#1/-H!7.)1)

'<ID?!3[

GJIK?L'IMN!OP!+QLN<QJD

\!>?@+":II<-E! ><4+W<-4+B"TH+7<9+C.I.534X/K+3GG385F! NK/+4395-:85.D3+-3<4! =.-385+6-.53+B/K+/334+GK-+=>?@+"3/93+

?I,+95EC3+>3<4#@K4.GE#;-.53F! [K6+DKC5<03+</4+CK6+,K63-! Q<95+-3<4+</4+I34.:I+9,334+6-.53+BG<95+

8KI,<-34+5K+NL@F! H/C.I.534+-3<4+8E8C39! [.I.534+6-.53+8E8C39+B+j+1&1(Fo+[<-03+6-.53+

8:--3/5+8</+KD3-73<5+3C3I3/5*+3C3I3/5+8</+J3+95:8O+<5+CK6+-39.95</83+95<53

! !</+98<C3+5K+((/I+5387+B9K:-83M+S/53CF