0% found this document useful (0 votes)
3 views12 pages

Ijird, 2

The document discusses the implementation of the Single Data Rate (SDR) module in the Open NAND Flash Interface (ONFI) standard, which facilitates efficient data transfer between memory controllers and NAND Flash devices. It outlines the architecture, operation methods, and state machines involved in the SDR interface, emphasizing its role in achieving high data transfer rates. The paper concludes with results indicating a transfer rate of 200 MB/s between the host and memory unit.

Uploaded by

rajeswari-tce
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views12 pages

Ijird, 2

The document discusses the implementation of the Single Data Rate (SDR) module in the Open NAND Flash Interface (ONFI) standard, which facilitates efficient data transfer between memory controllers and NAND Flash devices. It outlines the architecture, operation methods, and state machines involved in the SDR interface, emphasizing its role in achieving high data transfer rates. The paper concludes with results indicating a transfer rate of 200 MB/s between the host and memory unit.

Uploaded by

rajeswari-tce
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

www.ijird.

com May, 2013 Vol 2 Issue 5

ISSN: 2278 – 0211 (Online)

Implementation Of Single Data Rate Module In ONFI


Chethan L
Dayananda Sagar College of Engineering, Bangalore, india

Rajeswari P
Dayananda Sagar College of Engineering, Bangalore, India

Praveen Y S
WHIZCHIP Design Technologies, Bangalore, India

Abstract:
Huge amount of Data is generated by Different Modules by different Processes ,as a
requirement of operation data or information has to sent from one module to another
module which are usually dissimilar ,this can be achieved with a help of interface
between two modules .
The Interface plays an important role in transferring a data between the host
(Memory controller) and the device (Memory Unit). Different Devices have Different
Interfaces and for NAND Flash ONFI is standard interface which helps in
transferring the data between the host (Controller) and the device (Card) in a most
accurate way and at higher speed than compared to any other interfaces. ONFI
provides three most efficient way of data transferring methods i.e., Single Data rate
(SDR),NV-Double Data Rate (NV-DDR), NV-Double Data Rate -2 (NV-DDR2).

Key words: NAND FLASH, ONFI, SDR, STATE MACHINES

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 10


www.ijird.com May, 2013 Vol 2 Issue 5
1.Introduction

ONFI is a standard set of specification for those who design NAND FLASH devices. An

interface will be required for communication between the host (controller) and the device

(NAND Flash). This ONFI specification is used for interface design between any Host

and a NAND memory.

As we know many companies manufactures NAND Flash device. so when a third party

want to make use of the NAND device designed by other manufacturer , it might support

with their application or not is not known because they don't know the way the NAND

Flash device is designed.

So a group of companies set a unique standard which will be followed by all other

companies when designing NAND Flash Device. This is called as OPEN NAND FLASH

INTERFACE Group (ONFI), This ONFI will support all the NAND Flash devices

designed by any company. This ONFI is a standard that we must follow for designing a

NAND Flash memory device. A set of rules in other words.

ONFI is a standard specification used in designing NAND FLASH memory devices.

There is a memory called as NAND Flash, Which stores data. To store data as in any

device we send signals such as CLK and others to load the Data onto the I/O bus. In this,

there are methods to load data into memory mainly 3 types SDR (Single data rate), NV-

DDR (Nonvolatile-Double data rate), NV-DDR2 (Nonvolatile-Double data rate 2).For

these 3 methods we have different signals based on the methods we use different signals

to communicate. Mainly we will observe the timing difference and the data rate by which

we can load data into memory. SDR being the slowest and NV_DDR2 is the fastest.

In the earliest ONFI versions the SDR was called by Asynchronous, NV-DDR by Source

Synchronous and NV-DDR2 was not introduced, where as in ONFI 3.0 version NV-

DDR2 data loading method is introduced and is the fastest among the three methods.

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 11


www.ijird.com May, 2013 Vol 2 Issue 5
SDR data interface is the Asynchronous single data rate NAND interface with minimum

data transferring speed and does not include a clock, data transfer is achieved with

toggling Write Enable pin (WE_n) and Data Read is achieved by toggling Read Enable

pin (RE_n).

2.Memory Organization

Figure 1: Target Memory Organization

The figure describes the Memory Organization in an NAND Flash device. A device

contains one or more targets and it is controlled by one CE_n(chip enable) signal. A

target is organized into one or more logical units (LUNs) ie.,Logical unit 0 and Logical

unit 1.

A logical unit (LUN) is the minimum unit that can independently execute commands and

report status. A logical unit contains minimum of one plane and maximum of 16 planes

depending on the operation required and a Plane contains one Page register and a Flash

array as shown in the figure. The number of page registers is dependent on the number of

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 12


www.ijird.com May, 2013 Vol 2 Issue 5
multi-plane operations supported for that LUN. The Flash array contains a number of

blocks.

Each LUN shall have at least one page register. A page register is used for the temporary

storage of data before it is moved to a page within the Flash array or after it is moved

from a page within the Flash array. If EZ NAND is supported then a buffer exists in the

EZ NAND controller that provides for temporary storage of data that may then be

transferred to or from the page register within each LUN.

For example: It is possible to start a Page Program Operation on LUN0 and then prior to

the operations completion to start a Read command on LUN1.

A block is the smallest erasable unit of data within the Flash array of a LUN. There is no

restriction on the number of blocks within the LUN ie., It can have any number of blocks

depending on the memory size. A block contains a number of pages.

A page is the smallest addressable unit for read and program operations. A page consists

of a number of bytes or words. If 256bytes per page is the capacity of holding a data in a

single page then the capacity of data area is of 0-253Bytes and remaining two Bytes 254-

255Bytes is reserved for spare area to hold the error bits.

3.Addressing

There are two types used: the Column addressing and the row addressing.

4.The Column Addressing

The Column addressing is used to access bytes or words within a page, i.e. the column

address is the byte/word offset into the page. The least significant bit of the column

address shall always be zero in the NV-DDR and NV-DDR2 data interfaces, i.e. an even

number of bytes is always transferred. The Column addressing is of 2Bytes of length.

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 13


www.ijird.com May, 2013 Vol 2 Issue 5
5.The Row Addressing

Figure 2: Row address Layout

The row address structure is shown in Figure 2 with the least significant row address bit

to the right and the most significant row address bit to the left.

The Row addressing is used to address pages, blocks, and LUNs. The Row addressing is

of 3 Bytes length ie., the page address always uses the least significant bits. The block

address uses the middle row address bits and the LUN address uses the most significant

bit(s).

When both the column and row addresses are required to be issued, the column address

is always issued first in one or more 8-bit address cycles. The row addresses follow in

one or more 8-bit address cycles. There are some functions that may require only row

addresses, like Block Erase. In this case the column addresses are not issued.

If there are bits in the most significant bits of the column addresses and row addresses

that are not used then they are required to be cleared to zero.

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 14


www.ijird.com May, 2013 Vol 2 Issue 5
3.Model Architecture For SDR Interface

Figure 3: Model architecture for SDR Interface

This consists of Decoder, Driver FSM, Target FSM, LUN FSM, Memory and Interface.

 DECODER: It decodes the signal which comes from the interface on the IO bus

and depending on the Command and Address cycles it handles the Target FSM

and the LUN FSM.

 Driver FSM: It consists of Target FSM and LUN FSM.

 Target FSM: The Target FSM controls the flow of operation for Target level

Commands and Target FSM task will be called from the decoder after Address

decoding and based on the Command corresponding state will be selected.

 LUN FSM: The LUN FSM controls the flow of operation for LUN level

Commands and LUN FSM task will be called from the decoder if the Command

interpreted is LUN level Commands and based on the Command corresponding

state will be selected.

 SDR INTERFACE: It contains an most efficient way of data transferring method

i.e. Single Data rate (SDR).

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 15


www.ijird.com May, 2013 Vol 2 Issue 5
4.Implementation

Figure 4: Design architecture of SDR INTERFACE

This consists of Host Controller, NAND Flash Device and SDR contains signals namely

CE_n, CLE, ALE, I/O[7:0], R/B_n, RE_n and WE_n.

 Host Controller: It controls the NAND Flash device by sending the suitable

signals depending on the operation required.

 NAND Flash Device: It decodes the signals which sent by the Host Controller

and depending on the signals required, it performs the suitable operation.

 Address Latch Enable (ALE): The Address Latch Enable signal is one of the

signals used by the host to indicate the type of bus cycle (command, address, and

data).

 Chip Enable (CE_n): The Chip Enable signal selects the target. When Chip

Enable is high and the target is in the ready state, the target goes into a low-power

standby state. When Chip Enable is low, the target is selected.

 Command Latch Enable (CLE): The Command Latch Enable signal is one of the

signals used by the host to indicate the type of bus cycle (command, address, and

data).

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 16


www.ijird.com May, 2013 Vol 2 Issue 5

 I/O Port (I/O [7:0]): The I/O port is an 8-bit wide bidirectional port for

transferring address, command, and data to and from the device.

 Read Enable (RB_n): The Read Enable (True) signal enables serial data output.

 Write Enable (WE_n): The Write Enable signal controls the latching of

commands, addresses, and input data in the SDR data interface.

 Write Protect (WP_n): The Write Protect signal disables Flash array program and

erase operations.

 Ready/Busy (RB_n): The Ready/Busy signal indicates the target status. When

low, the signal indicates that one or more LUN operations are in progress.

5.State Machines

 TARGET FSM
 LUN FSM
o READ

o PROGRAM

o ERASE

5.1.Target FSM

Figure 5: Target FSM

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 17


www.ijird.com May, 2013 Vol 2 Issue 5

 Power Up the device and enable the CE_n(Chip enable) pin by giving logic zero

ie., CE_n=0.

 After PowerOn, Check the RB_n signal Value which should be 1 and if not wait

until RB_n value is 1.

 Issue a Reset Command (FFh) and by default the device should be in SDR and

Timingmode 0 (TM0) and check RB_n Value which should be 1, wait until RB_n

value is 1 after reset is issued.

 Issue Read Parameter Page (RPP) command (ECh).

 4a. Issue Change Read Column command (05h) and Address, to receive first set

of Parameter Page.

 Read Parameter page data and if it valid, perform the further operations ie., Read

operation.

5.2.LUN FSM

5.2.1.Read Operation

Figure 6: State Machine for Read Operation

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 18


www.ijird.com May, 2013 Vol 2 Issue 5
After all the Power up operations, check the RB_n value . If RB_n is 1,then the device

should be in ready state. Then depending on the operation required corresponding

Opcodes is sent on the I/O bus. In this, for simple read 00h opcode value is sent in the

command1 on the I/O bus and depending on the operation required ie., Single read(30h)

or Multiplane read(32h) respective opcodes is going to send on the second command.

After the end of the operation the device goes to Idle state only this will happen when no

other operation is sent on the I/O bus immediately.

5.2.2.Program Operation

Figure 7: State Machine for Program Operation

After all the Power up operations, check the RB_n value . If RB_n is 1,then the device

should be in ready state. Then depending on the operation required corresponding

Opcodes is sent on the I/O bus. In this, for simple program 80h opcode value is sent in

the command1 on the I/O bus and depending on the operation required ie., Single

program(10h) or Multiplane program(11h) respective opcodes is going to send on the

second command. After the end of the operation the device goes to Idle state, only this

will happen when no other operation is sent on the I/O bus immediately.

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 19


www.ijird.com May, 2013 Vol 2 Issue 5
5.2.3.Erase Operation

Figure 8: State Machine For Erase Operation

After all the Power up operations, check the RB_n value. If RB_n is 1, then the device

should be in ready state. Then depending on the operation required corresponding

Opcodes is sent on the I/O bus. In this, for simple erase 60h opcode value is sent in the

command1 on the I/O bus and depending on the operation required ie., Single erase(D0h)

or Multiplane erase(D1h) respective opcodes is going to send on the second command.

After the end of the operation the device goes to Idle state, only this will happen when no

other operation is sent on the I/O bus immediately.

5.Results

Main result of this paper gives us the transfer rates of 200 MB/s between the host

(Memory controller) and the devices (Memory Unit).

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 20


www.ijird.com May, 2013 Vol 2 Issue 5
6.Reference

1. An Open NAND Flash Interface Specification revision 3.1 :By ONFI

Workgroup website at www.ONFI.org

2. Myoungsoo Jung, Ellis Herbert Wilson, David Donofrio, John Shalf Mahmut

Taylan Kandemir “NANDFlashSim: Intrinsic Latency Variation Aware NAND

Flash Memory System Modeling and Simulation at Microarchitecture Level”

978-1-4673-1747-4/12/$31.00 c 2012 IEEE

3. Seung-Ho Lim and Kyu-Ho Park “An Efficient NAND Flash File System for

Flash Memory Storage” IEEE TRANSACTIONS ON COMPUTERS, NO. 7,

JULY 2006, VOL. 55.

4. Yu-Hsiang Kao and Juinn-Dar Huang” High-Performance NAND Flash

Controller Exploiting Parallel Out-of-Order Command Execution” 978-1-4244-

5271-2/10/$26.00 ©2010 IEEE..

5. Flash Design Team” A 64Gb NAND Flash Memory with 800MB/s Synchronous

DDR Interface” 978-1-4673-1081-9/12/$31.00 ©2012 IEEE.

INTERNATIONAL JOURNAL OF INNOVATIVE RESEARCH & DEVELOPMENT Page 21

You might also like