IP Library Granted Patent US 8,990,475
Granted Patent B2
US 8,990,475 · App. 11/350,946 · Granted Mar 24, 2015

NAND flash memory system architecture

Inventors: Avraham Meir (Rishon Lezion, IL); Amir Mosek (Tel Aviv, IL); Amir Lehr (Hod Hasharon, IL); Menahem Lasser (Kohav Yair, IL)
Assignee: Sandisk IL Ltd.
G06F12/0292G06F3/0611G06F3/0632G06F3/0679G06F9/4403G06F9/4406G06F9/44573G06F12/10G06F12/0246G06F2212/2022G06F2212/7201G06F2212/7203
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,990,475
App. No.
11/350,946
Granted
Mar 24, 2015
Kind
B2
Abstract

A data storage device includes a NAND flash memory, an executable interface and a controller for receiving, from a host, via the executable interface, an instruction to access the NAND flash memory at a virtual address and for translating the virtual address to a physical address of the volatile memory. Preferably, the controller also provides boot functionality to the host.

Claims (42)

1. A data storage device comprising:

a NAND flash memory storing an operating system including multiple drivers, wherein the multiple drivers include a first driver; and

an executable interface configured to be coupled to a host device;

wherein the multiple drivers are retrievable by a host processor of the host device,

wherein the first driver, after being copied to the host device, enables the host processor of the host device to emulate a universal serial bus (USB) interface protocol on top of the executable interface, and

wherein the emulated USB interface protocol enables an application or the operating system executed by the host processor to access the NAND flash memory.

2. The data storage device of claim 1 , further comprising a controller including a volatile memory, wherein the NAND flash memory stores boot code, wherein the controller is further configured to copy the boot code from the NAND flash memory to the volatile memory when the host processor is powered up, and wherein the executable interface enables the host processor to retrieve the boot code from the volatile memory.

3. The data storage device of claim 2 , wherein the volatile memory is a static random access memory (SRAM), and wherein the boot code includes one or more instructions that are executable by the host processor to copy the first driver included in the operating system from the NAND flash memory to the host device.

4. The data storage device of claim 3 , wherein the controller is configured to translate a virtual address that is received from the host processor via the executable interface to a physical address of the NAND flash memory, and wherein the translation is completed within the controller.

5. The data storage device of claim 4 , wherein, after the first driver is copied to the host device, the controller is further configured to copy a remainder of the operating system stored in the NAND flash memory to the host device.

6. The data storage device of claim 1 , wherein the emulated USB interface protocol enables the application or the operating system to access the data storage device using a standard driver available in the operating system.

7. The data storage device of claim 6 , wherein the standard driver is a USB driver.

8. The data storage device of claim 6 , wherein the standard driver is included in the multiple drivers.

9. The data storage device of claim 1 , wherein the first driver includes an upper layer and a lower layer.

10. The data storage device of claim 9 , wherein the lower layer is configured to manage communication between the upper layer and the executable interface.

11. The data storage device of claim 9 , wherein the upper layer is configured to translate between the lower layer and one or more commands associated with the application or the operating system.

12. The data storage device of claim 11 , the emulated USB interface protocol enables the application or the operating system to access the data storage device using a standard driver available in the operating system.

13. The data storage device of claim 12 , wherein the one or more commands are associated with the standard driver.

14. A method of operating a data storage device, the method comprising:

in a data storage device with a NAND flash memory and a controller, performing:

providing an operating system stored in the NAND flash memory from the data storage device to a host device, wherein the operating system includes multiple drivers including a first driver, wherein the first driver, after being copied to the host device, enables a host processor of the host device to emulate a universal serial bus (USB) interface protocol on top of an executable interface of the data storage device, and wherein the emulated USB interface protocol enables an application or the operating system executed by the host processor to access the NAND flash memory; and

communicating with the host device via the emulated USB interface protocol.

15. The method of claim 14 , wherein the data storage device is configured to translate a virtual address associated with an instruction to a physical address of the NAND flash memory and to access the NAND flash memory at the physical address obtained from translating the virtual address, and further comprising:

on power-up of the host processor of the host device, providing boot code from a volatile memory within the controller of the data storage device to the host processor via the executable interface, wherein the boot code includes one or more instructions executable by the host processor to copy the first driver from the NAND flash memory to the host device;

copying the first driver from the NAND flash memory to the host device; and

copying a remainder of the operating system from the NAND flash memory to the host device, wherein, after copying the remainder of the operating system to the host device, the host device includes the multiple drivers.

16. A method comprising:

in a NAND data storage device that includes NAND flash memory, a controller that includes static random access memory (SRAM), and an SRAM interface to interface with a host device, performing:

copying boot code from the NAND flash memory to the SRAM, wherein the boot code includes instructions for copying a driver of the NAND flash memory from the NAND flash memory to the host device, wherein the NAND flash memory stores an operating system that includes multiple

providing the boot code from the SRAM to a host processor of the host device via the SRAM interface, and

providing the driver to the host device via the SRAM interface, and

wherein the driver, after being copied to the host device, enables the host processor to emulate a universal serial bus (USB) interface protocol on top of the SRAM interface, and wherein the emulated USB interface protocol enables an application or the operating system executed by the host processor to access the NAND flash memory.

17. The method of claim 16 , wherein the NAND data storage device is configured to translate a virtual address received from the host processor via the SRAM interface to a physical address of the NAND flash memory and to access the NAND flash memory at the physical address obtained from translating the virtual address.

18. A system comprising:

a host processor within a host device; and

a data storage device, the data storage device including:

an executable interface configured to be coupled to the host device; and

a flash memory storing an operating system including multiple drivers, wherein the multiple drivers include a first driver,

wherein the multiple drivers are stored in the flash memory and are retrievable by the host processor,

wherein the first driver, after being copied to the host device, enables the host processor to emulate a universal serial bus (USB) interface protocol on top of the executable interface, and

wherein the emulated USB interface protocol enables an application or the operating system executed by the host processor to access the flash memory.

19. The system of claim 18 , wherein the data storage device further includes a controller configured to translate a virtual address associated with an instruction to a physical address of the flash memory, wherein the translation is completed within the data storage device, and wherein the instruction is received by the controller via the executable interface.

Assignments (5)
CHANGE OF NAME Recorded Jun 10, 2025
From: WESTERN DIGITAL ISRAEL LTD.
To: SANDISK ISRAEL LTD.
Reel/Frame 071587/0836 →
CHANGE OF NAME Recorded Aug 21, 2020
From: SANDISK IL LTD
To: WESTERN DIGITAL ISRAEL LTD
Reel/Frame 053574/0513 →
CHANGE OF NAME Recorded Nov 12, 2008
From: MSYSTEMS LTD
To: SANDISK IL LTD.
Reel/Frame 021825/0023 →
CHANGE OF NAME Recorded Nov 6, 2008
From: M-SYSTEMS FLASH DISK PIONEERS LTD.
To: MSYSTEMS LTD
Reel/Frame 021799/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 10, 2006
From: MEIR, AVRAHAM; MOSEK, AMIR; LEHR, AMIR; LASSER, MENAHEM
To: M-SYSTEMS FLASH DISK PIONEERS, LTD.
Reel/Frame 017560/0720 →
Continuity (3)
Provisional Application 60651762 · Feb 11, 2005
Provisional Application 60758599 · Jan 13, 2006
Related Publication 20060184724A1 · Aug 17, 2006