throbber
US007882320B2
`
`(12) United States Patent
`Caulkins
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7.882,320 B2
`*Feb. 1, 2011
`
`(54)
`
`(75)
`
`(73)
`(*)
`
`(21)
`(22)
`(65)
`
`(63)
`
`MULT-PROCESSOR FLASH MEMORY
`STORAGE DEVICE AND MANAGEMENT
`SYSTEM
`
`Inventor: Jason Caulkins, West Windsor, NJ (US)
`Assignee: Dataram, Inc., West Windsor, NJ (US)
`Notice:
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 84 days.
`This patent is Subject to a terminal dis
`claimer.
`
`Appl. No.: 12/113,606
`Filed:
`May 1, 2008
`
`Prior Publication Data
`US 2008/0209 11.6 A1
`Aug. 28, 2008
`
`Related U.S. Application Data
`Continuation-in-part of application No. 1 1/439,619,
`filed on May 23, 2006, now Pat. No. 7,464,240, and a
`continuation-in-part of application No. 1 1/439,620,
`filed on May 23, 2006, now Pat. No. 7,461.229, and a
`continuation-in-part of application No. 1 1/439,615,
`filed on May 23, 2006, now Pat. No. 7,424,587.
`
`(51)
`
`(52)
`
`Int. C.
`(2006.01)
`G06F 12/00
`(2006.01)
`G06F 2/16
`U.S. Cl. ............................... 711/165; 711/3: 711/4;
`711/103: 711/113: 711/162
`
`(58) Field of Classification Search ....................... None
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`7, 1992 Kikuchi et al.
`5,129,074 A
`7,103,684 B2 * 9/2006 Chen et al. .................... T10.62
`7,383,362 B2 * 6/2008 Yu et al. ....................... T10/22
`2003. O115282 A1
`6/2003 Rose
`2006, OO31389 A1
`2/2006 Shimozono et al.
`8/2007 Fujibayashi et al.
`2007,0180188 A1
`2007/0276994 A1
`11/2007 Caulkins et al.
`2008/0320214 A1* 12/2008 Ma et al. .................... T11 103
`2009,0193184 A1* 7/2009 Yu et al. ..................... T11 103
`2009/0204732 A1* 8, 2009 Yu et al. ....................... T10/22
`2009, 0240873 A1* 9, 2009 Yu et al. ..................... T11 103
`
`* cited by examiner
`Primary Examiner Jack A Lane
`(74) Attorney, Agent, or Firm—Donald R. Boys; Central
`Coast Patent Agency, Inc.
`
`(57)
`
`ABSTRACT
`
`A data storage device has a host controller interface, a plu
`rality of microprocessor units each having a portion of ran
`dom access memory (RAM) dedicated thereto, a plurality of
`Flash device configurations each having dedicated bus con
`nections to individual ones or multiples of the microprocessor
`units, and a dataflow controller accessible to the host control
`ler interface for managing access to the Flash device configu
`rations.
`
`8 Claims, 6 Drawing Sheets
`
`500
`
`5O1
`
`N.
`Incoming
`Write
`Request
`
`502
`
`503
`
`Request
`For DFC
`
`
`
`HPE, Exh. 1001, p. 1
`
`

`

`U.S. Patent
`U.S. Patent
`
`Feb.1
`
`2011
`
`Sheet 1 of 6
`
`US 7.882,320 B2
`US 7,882,320 B2
`
`(U-T)601
`
`Use
`
`[DolAcd
`
`qSera
`
`ZDIAS,
`
`Uselq
`
`|
`
`WSSTAOG
`
`
`
`SAO]SSeIOISBIL
`
`LOSSIIOIGODTAL
`
`GAY40D)[SLT
`
`901
`
`sopqey,Ws]
`
`Sor
`
`LOT
`
`TayjOIUO7) SORTS WOT
`
`
`
`T0T
`
`001
`
`
`
`
`
`
`
`
`
`2“)
`\
`
`NOcor
`
`^_Z0 I
`
`cOl
`
`JSOP{WISISkG
`
`HPE, Exh. 1001, p. 2
`
`HPE, Exh. 1001, p. 2
`
`
`
`
`
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 2 of 6
`
`US 7.882,320 B2
`
`200 y
`
`
`
`Flash Storage Device
`202(1-n)
`
`201 (in
`l y sity
`Flash Config. 1
`Microprocessor 1
`
`Flash Config. 2
`
`Flash Config. 3
`
`i
`R
`
`O
`O
`g
`
`g
`I
`
`H
`
`C
`O
`a
`'t
`s
`A
`
`Microprocessor in
`
`RAM/FMD
`
`Fig. 2
`
`HPE, Exh. 1001, p. 3
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 3 of 6
`
`US 7,882,320 B2
`
`Y 009
`
`
`
`"Toonto) MOUeed"
`IoIOIUOO 90ele UI SOH
`
`HPE, Exh. 1001, p. 4
`
`

`

`U.S. Patent
`
`Feb.1, 2011
`
`Sheet 4 of 6
`
`US 7,882,320 B2
`
`_1|
`
`FlashConfi
`
`M-processor1]|
`
`iO400
`
`M-processor2
`
`Qo
`al
`
`|
`
`=
`
`SobjIoIUy] ISO
`
`yetsseeeae __.\saanee—__|_V¥oaeee
`(Giana [yom
`—BpoyuoyMoyeeq
`
`—y_
`
`on
`
`|e
`
`M-processor4
`
`Fig.4
`
`HPE, Exh. 1001, p. 5
`
`HPE, Exh. 1001, p. 5
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 5 of 6
`
`US 7.882,320 B2
`
`
`
`
`
`503
`
`Perform
`Address
`Lookup
`
`Access MP
`Fl-Channel
`
`505
`
`504
`
`Write to
`Flash
`
`
`
`- 501
`
`Incoming
`Write
`Request
`
`500 N.
`
`
`
`
`
`
`
`
`
`509
`
`510
`
`
`
`
`
`511
`
`NO
`
`1RAMNYES
`Cache Full
`
`512
`
`
`
`NO
`
`HPE, Exh. 1001, p. 6
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 6 of 6
`
`US 7.882,320 B2
`
`60
`
`
`
`602
`
`
`
`
`
`603
`
`Incoming
`Read
`Request
`
`Read from
`Flash
`
`
`
`
`
`Return Read
`Data to DFC
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`Access MP
`Fl-Channel
`
`
`
`Address
`Lookup
`
`Read from
`RAM
`
`Fig. 6
`
`HPE, Exh. 1001, p. 7
`
`

`

`US 7,882,320 B2
`
`1.
`MULT-PROCESSOR FLASH MEMORY
`STORAGE DEVICE AND MANAGEMENT
`SYSTEM
`
`CROSS-REFERENCE TO RELATED
`APPLICATIONS
`
`The present invention is a continuation-in-part (CIP) to a
`U.S. patent application Ser. No. 11/439,619, filed May 23,
`2006 and entitled “Hybrid Solid State Disk Drive with Con
`10
`troller, to a U.S. patent application Ser. No. 1 1/439.620, filed
`May 23, 2006 and entitled “Software Program for Managing
`and Protecting Data Written to a Hybrid Solid State Disk
`Drive', and to a U.S. patent application Ser. No. 1 1/439,615,
`filed on May 23, 2006 and entitled “Methods for Managing
`Data Writes and Reads to a Hybrid Solid State Disk Drive':
`disclosures of which are incorporated in their entireties at
`least by reference.
`
`15
`
`BACKGROUND OF THE INVENTION
`
`2
`drive is, in one embodiment, a hot swappable disk drive that
`is recognized by a host system upon boot as a destination
`drive for reads and writes.
`A controller is provided on the disk drive for managing the
`memory portions as a single non-volatile memory through
`use of at least one integrated circuit Supporting one or more
`sets of machine-readable instructions and a data port and
`buffer circuitry for bi-directional communication of data
`between the controller and a host system such as a computer.
`The system known to the inventor uses a RAM/Flash data
`storage addressing method that prevents continued and
`repetitive writing to Flash to preserve mean time before fail
`ure (MTBF) of the Flash storage device or devices of the
`system. The system uses RAM as a caching memory and only
`writes to Flash when absolutely necessary. Another optimi
`zation of the system is rotation of Flash blocks in and out of
`service to further enhance wear leveling of the Flash device or
`aggregate of devices onboard or plugged into the disk drive.
`Writing to Flash memory is comparatively slower than
`writing to RAM, hence the use of RAM in the above-de
`scribed system to cache data for eventual write to Flash on
`power down, power interruption, or only when the RAM
`cache is full. The system described above provides a practical
`and economical Solution for replacing mechanical hard disk
`drives in computers and other devices.
`It has occurred to the inventor that there is a need for faster
`data management speeds in the computing industry in general
`and in particular in the area of robust servers and other busi
`ness machines. While CPU speeds are at all time highs in
`terms of computing cycles, speeds at which data can be man
`aged relative to disk storage on a Flash memory are still
`relatively slower. This has caused a barrier to extensive use of
`Flash memory in more robust data storage systems.
`Still another disadvantage of using Flash memory as long
`term storage in robust systems is that a number of writes
`performed on the memory is limited on a Flash memory chip
`and the media must be written in a manner, often proprietary,
`as specified by the manufacturer of the Flash memory. Such
`adaptations may not be readily Supported by a particular host
`system sending the data for storage. This fact has been a basis
`for differing approaches to Flash memory management soft
`ware and firmware that deal essentially with how data may be
`rendered and stored on the particular type Flash memory
`implemented.
`Further to the above, current Flash data storage systems
`rely on a single central processing unit (CPU) to manage
`Flash tables and perform other data management tasks. A
`drawback is that such applications place significant perfor
`mance demands on Flash-based storage and caching systems,
`preventing Scaling of those systems to meet enterprise stan
`dards for mass data storage systems.
`RAM and specific data bus contentions or issues effec
`tively prohibit single processor Flash management schemes
`from Scaling to a high-performance level. For example, there
`are many operations performed by and in conjunction with a
`microprocessor that compete with each other on a storage
`device for RAM space. Error Code Correction (ECC) and
`real-time data encryption are just a few of these operations
`that compete with address lookups, read and write requests
`and other important data access functions.
`Current Flash memory research is resulting in faster Flash
`memory types that may be operated much faster than current
`Flash types. But RAM access and data bus contentions
`present problems in current architectures that cause latency
`and prevent full potential for faster computing. Therefore,
`what is needed in the art is a Flash-based storage device and
`data management system that can be scaled up for high
`
`25
`
`30
`
`35
`
`1. Field of the Invention
`The present invention is in the field of data storage devices
`including disk drives and mass storage systems and pertains
`particularly to processor-based data storage devices and sys
`tems for managing host access to and data management on
`those devices.
`2. Discussion of the State of the Art
`In the field of data storage, non-volatile mechanical disk
`drives have been developed for short and long-term data
`storage. Solid-state non-volatile memory has been imple
`mented for specific data storage needs, especially in Small,
`portable electronic computing devices such as cellular tele
`phones, video cameras and the like.
`Volatile memory is a solid-state memory typically used as
`a high-speed temporary memory Such as random access
`memory (RAM) of which there are many known variations.
`Common versions of RAM include Dynamic Random Access
`Memory (DRAM) and Static Random Access Memory
`40
`(SRAM) among other variations such as SDRAM.
`Flash memory, on the other hand, is a Solid-state, high
`speed data storage solution that has, until recently, been used
`mainly for handheld devices like cellphones, personal digital
`assistants (PDAs), cameras, or Universal Serial Bus (USB)
`peripheral storage devices referred to as jump drives orthumb
`drives. Flash memory provides a non-volatile memory for
`storing data with read speeds approaching that of RAM.
`Common memory types that require management include
`Phase Change Memory and NAND Flash.
`When referring to these memory types, the terms volatile
`and non-volatile are blurring as new research in memory
`continues and new memory types are developed. But for
`purpose of this specification, volatile memory shall refer to
`memory in which stored data is lost upon interruption of
`power and non-volatile memory shall refer to memory in
`which no power is required to retain the data stored. Flash
`memory is increasingly being used as primary or secondary
`storage memory in computing systems. Such devices are
`commonly known as solid state disks. Flash is also being used
`as cache memory in Some systems.
`A solid-state disk drive known to the inventor, but not as
`publically available prior art, includes a first portion of solid
`state memory of a Volatile nature, a second portion of Solid
`state memory of a non-volatile nature, a controller for man
`65
`aging the memories, and a power Subsystem for protecting
`data in volatile memory in the event of loss of power. The
`
`45
`
`50
`
`55
`
`60
`
`HPE, Exh. 1001, p. 8
`
`

`

`3
`performance write and read operations without bogging
`down due to RAM and Bus issues.
`
`US 7,882,320 B2
`
`SUMMARY OF THE INVENTION
`
`10
`
`15
`
`25
`
`30
`
`35
`
`One of several problems stated above is that it in computing
`where data storage is involved it is difficult to scale up to
`larger more robust system using a device having a single
`processor for managing all of the Flash data management
`operations over a shared bus system. It is desirable to store
`data in a fast, secure, and reliable manner using Flash memory
`as a preferred Solid state medium. However, existing systems
`use a single complex processor over a shared bus to access the
`Flash media for read and write access. The result is a less than
`desired performance speed for read and write operations due
`to RAM and bus contentions by the various data management
`process components.
`The inventor searched the art of data storage devices and
`systems looking for components that could be leveraged or
`otherwise modified to improve the flexibility, reliability and
`performance speed of a data storage system.
`Every data storage drive depends on a processor and a bus
`system for reading and writing data. Most such systems are
`not flexible enough to be scaled up for enterprise applications
`that might use Flash media as the persistent storage medium
`because of bus and RAM contentions. Moreover, larger more
`complex processors are expensive and although capable of
`the data management tasks required of enterprise systems,
`Suffer degradation of performance speed at levels of higher
`utilization.
`The inventor conceptualized and Subsequently provided a
`Flash data storage device constructed using a distributive
`architecture that was less expensive to implement and had
`fewer RAM and bus contention issues than single processor
`devices. The result was a better performance relative to data
`management speeds including reads and writes. Accordingly,
`in one embodiment of the invention, a data storage device is
`provided, comprising a host controllerinterface, a plurality of
`microprocessor units each having a portion of random access
`40
`memory (RAM) dedicated thereto, a plurality of Flash device
`configurations each having dedicated bus connections to indi
`vidual ones or multiples of the microprocessor units, and a
`dataflow controller accessible to the host controller interface
`for managing access to the Flash device configurations.
`In another aspect of the invention a Flash channel config
`ured for data storage is provided, comprising a coupled con
`figuration of one or more Flash memory devices, a bus struc
`ture connected to the Flash device configuration, the bus
`including an address line, a data line, and a control line, and
`one or more microprocessor units also connected to the bus
`structure, and having a portion of RAM dedicated thereto.
`In another aspect of the invention a Flash channel config
`ured for data storage is provided, comprising two or more
`Flash device configurations comprising one or more Flash
`memory devices, two or more bus structures connected to
`each Flash device configuration, the bus structures each
`including an address line, a data line, and a control line, and a
`single microprocessor unit also connected to the bus struc
`tures, the microprocessor unit having a portion of RAM dedi
`cated thereto.
`
`45
`
`50
`
`55
`
`60
`
`BRIEF DESCRIPTION OF THE DRAWING
`FIGURES
`
`FIG. 1 is a block diagram illustrating a single processor
`Flash storage device according to existing art.
`
`65
`
`4
`FIG. 2 is a block diagram illustrating a multi-processor
`Flash storage device according to an embodiment of the
`present invention.
`FIG. 3 is a block diagram illustrating a multi-processor
`Flash storage device according to another embodiment of the
`present invention.
`FIG. 4 is a block diagram illustrating a multi-processor
`Flash storage device according to a further embodiment of the
`present invention.
`FIG. 5 is a process flow chart illustrating steps for storing
`data in a multi-processor Flash device according to an
`embodiment of the present invention.
`FIG. 6 is a process flow chart illustrating steps for reading
`from a multi-processor Flash device according to an embodi
`ment of the present invention.
`
`DETAILED DESCRIPTION
`
`The inventor provides a multiple processor flash-based
`storage device and a system for managing data relative to use
`of the device for data storage. The invention is enabled in
`detail according to the following embodiments.
`FIG. 1 is a block diagram illustrating a single-processor
`Flash storage device as known to the inventor. In this system
`known to the inventor and briefly described above in the
`background section of this specification, a single processor is
`used to perform all of the functions relative to reading and
`writing data to one or more Flash-based storage devices.
`In the system of FIG. 1 data storage system 100 includes a
`data storage device 101 and a host computing device 102.
`Host computing device 102 may be a personal computer (PC)
`or a hand-held device Such as a personal digital assistant
`(PDA), a Laptop computer, or some other computing device
`that can be coupled to data storage device 101 for the purpose
`of reading data from and writing data to the device.
`Data storage device 101 is a solid state storage device that
`can be hardwired to or can be plugged into the host for use as
`a disk drive in place of a mechanical disk drive. Data storage
`device 101 has a host interface controller 103 for adapting to
`the host system though a computer bus. Data storage device
`101 further includes a microprocessor 104 for processing
`commands from the host. Microprocessor 104 is connected
`by internal bust 107 to a random access memory (RAM) 105
`used as a cache memory for the device.
`Internal bus 107 connects processor 104 to host interface
`controller 103 and to a plurality of flash-based data storage
`devices 109 (1-n). Flash-based storage devices 109(1-n) may
`be flash chips bused in series or parallel. RAM 105 is used for
`all RAM-based functions including caching writes to flash for
`the purpose of lessening the number of actual writes that the
`host system makes to flash to preserve the lifespan of the flash
`storage devices. Data management tables for both flash space
`and RAM space are provided in RAM for mitigating write
`addressing and lookups for reading from the flash devices.
`In this example writes to flash are kept to a minimum and
`writing to flash actually occurs in flash dumps from RAM
`Such as when there is a power interruption, a purposeful
`power-down event, and when RAM space is approaching
`capacity. Using RAM as a fast caching system makes the
`application of flash-based storage more practical. However,
`there are limitations with this exemplary architecture that
`prevent this system from economical application to more
`robust systems like server-based storage on an enterprise
`scale, or mass data storage applications like redundant array
`of independent disk (RAID) systems and other like mass data
`storage systems.
`
`HPE, Exh. 1001, p. 9
`
`

`

`US 7,882,320 B2
`
`10
`
`15
`
`30
`
`5
`The fact that only one processor is active on data storage
`device 101 coupled with a shared data bus produces certain
`performance delays in data management relative to processor
`speed. RAM space 105 is a precious resource on device 101.
`Many processes other than data write and read operations
`compete for available RAM space. Some of the aforemen
`tioned processes that contend for available RAM space
`include data encryption, error correction coding (ECC), and
`address lookups. Successful utilization of RAM 105 by
`microprocessor 104 for all RAM-based data operations suf
`fers some degradation as RAM cache fills with pending Flash
`writes and as the shared data bus becomes increasingly busy
`with more data traffic. Providing more RAM memory is not a
`viable option in this example as the shared data bus is only so
`wide presenting a bottleneck to higher performance required
`for more robust systems.
`FIG. 2 is a block diagram illustrating a multi-processor
`Flash storage device 200 according to an embodiment of the
`present invention. Flash storage device 200 is a solid-state
`data storage system using a distributed architecture and dedi
`cated bus structures. Device 200 includes a host interface
`controller 204 in this example that provides an interface to a
`system host Such as a powerful workstation or an enterprise
`server application. In one embodiment storage device 200
`may be a shared device accessible from more than one com
`25
`puting station or server. Also in one embodiment device 200
`may be part of an aggregation of multiple similar devices to
`form a server data storage rack or array of disks as in a RAID
`array or in a storage area network (SAN).
`Flash storage device 200 may be adapted for use with a
`small computer system interface (SCSI) bus, parallel
`advanced technology attachment (PATA) or serial advanced
`technology attachment (SATA) protocols, integrated Drive
`Electronics/Advanced Technology Attachment (IDE/ATA)
`interface, an Enhanced Small Device Interface (ESDI), a
`Serial Advanced Technology Attachment, (SATA), or a Par
`allel Advanced Technology Attachment (PATA) interface or a
`Peripheral Component Interface (PCI). Disk 200 may also be
`adapted to work with enterprise Fibre Channel data storage
`networks and serial attached SCSI (SAS) networks. In this
`particular embodiment, disk 200 may be thought of as a
`Solid-state mass storage device using the appropriate form
`factors and interfaces.
`Flash storage device 200 includes a distributed processor
`architecture comprising multiple microprocessor units 202
`(1-n). Each microprocessor unit 202 (1-n) includes a micro
`processor and an onboard or bused access to a dedicated
`amount of RAM. The dedicated RAM is used by the micro
`processor in each unit for caching and other data management
`functions. Microprocessor units 202 (1-n) are intended to be
`low cost dedicated processors that function independently of
`one another. Each microprocessor has a dedicated bus to one
`of a plurality of Flash configurations 201 (1-n).
`The illustration of separate RAM/FMD in each processor
`unit 202(1-n) is not meant to indicate that there are com
`55
`pletely separate and autonomous RAM units, but simply that
`each microprocessor unit has a dedicated portion of RAM. As
`described above, the dedicated portions might be all a part of
`a single RAM array. Moreover, Ram portions may be pro
`vided on Flash configurations where the configuration is a
`removable module containing one or more Flash devices and
`the dedicated RAM. In that case, access to RAM would be
`over a dedicated bus.
`A Flash configuration is defined as one or more Flash
`memory devices configured to be accessible through a dedi
`cated bus. A Flash channel is defined for the purpose of
`discussion as a bus connection from a processor, for example,
`
`35
`
`6
`to one or more Flash chips or devices illustrated logically
`herein, defined as a Flash device configuration or simply
`Flash device. Therefore, a plurality of dedicated internal bus
`structures 205 (1-n) is provided to complete the architecture.
`Flash configurations 201 (1-n) may also be referred to as
`Flash channels throughout this specification.
`Microprocessor unit 202(1) is coupled to Flash configura
`tion 1 (Flash device) by dedicated Bus 1. Microprocessor unit
`202(2) is coupled to Flash configuration 2 by dedicated Bus 2,
`and so on for the number of processor units (n) on device 200.
`The ratio of Flash configuration to processor is one-to-one
`over a single bus in this example. However, this is not a strict
`requirement for practice of the present invention as will be
`detailed further below.
`Each microprocessor unit 202 (1-n) has a dedicated bus
`connection to a unique dataflow controller 203. Dataflow
`controller 203 manages the data traffic over all of the Flash
`channels through each of the microprocessor units. Each
`microprocessor unit 202 (1-n) has a base address and is
`responsible for a single Flash channel of multiple channels
`201 (1-n). The microprocessor units are completely indepen
`dent and do not communicate with one another in the archi
`tecture in this particular embodiment. In other embodiments,
`the microprocessors distributed over the architecture may be
`bused for communication with each other and may share data
`and tasks.
`Dataflow controller 203 communicates with host interface
`controller 204 by way of a bus illustrated herein as a bus 206.
`The host system may view Flash storage device 200 as a
`single drive or disk or according to any particular partitioning
`that may be implemented Such as primary storage space and
`backup storage space. Dataflow controller 203 determines
`which Flash channel to use, that is, which microprocessor
`unit to use, according to information received in a request and
`according to a Flash management system implemented in
`RAM in each of the microprocessor units 202 (1-n).
`RAM at each processor unit 202 (1-n) includes Flash man
`agement Data tables (FMD) tracking the local block
`addresses (LBAs) and state for the Flash memory connected
`to the channel to which the processor unit controls access. The
`actual Flash memory devices may be Phase Change Memory
`or NAND Flash or any other variant of Flash memory or
`persistent memory. Such devices may be Flash chips con
`nected in parallel or daisy chained, and that are accessible as
`a configuration through a single dedicated bus. The invention
`may leverage existing Flash memory types and newer Flash
`memory types being developed. The type of RAM used at
`each processor may also vary. Available RAM types include
`SDRAM, MRAM, FRAM, and NRAM. In one embodiment
`Flash memory may instead be a non-volatile RAM that is
`Suitable for use as a persistent storage space.
`Dataflow controller 203 may be a state machine imple
`mented in software or firmware. Also, dataflow controller 203
`may be implemented as processor-controlled hardware. Inte
`gration between host interface controller 204 and dataflow
`controller 203 is also plausible and may be practiced without
`departing from the spirit and scope of the present invention.
`Application as a data storage device for a larger enterprise
`scale system like a server-based system is among the many
`adaptation possibilities for data storage device 200.
`The simple one-to-one correlation between microproces
`sors and Flash channels in this example is exemplary only as
`other ratios between processor and Flash memory may be
`observed in the architecture. Some of these variations are
`explained more fully later in this specification.
`There are several optimization techniques that may imple
`mented relative to Flash memory management in terms of
`
`40
`
`45
`
`50
`
`60
`
`65
`
`HPE, Exh. 1001, p. 10
`
`

`

`US 7,882,320 B2
`
`15
`
`7
`reads, writes, erasures, and wear leveling. One case for using
`RAM has a cache memory for parking Flash data for eventual
`write to Flash, and uses both RAM address and Flash address
`tables in FMD, as is the case for the co-pending application
`referenced in the cross-reference section of this application.
`In one embodiment dataflow controller 203 selects a proces
`Sor unit 202 (1-n) in sequential order for performing data
`access. In this scheme a first request will be filled by processor
`202 (1), a next request by processor 202 (2) and so on. By the
`time the selection process loops back to the first processor, it
`10
`is most likely free again (free of ongoing data access tasks). A
`goal is to have maximum throughput of data while not over
`utilizing or under utilizing any processing resource.
`In one embodiment a random selection approach for pro
`cessors is used. In this approach dataflow controller 203 may
`select a processor for completing a write from the host based
`on a random assignment of addresses. In one embodiment
`wear leveling is practiced in conjunction with all of the Flash
`channels by ensuring that data is evenly distributed over the
`collective Flash memory space.
`Dataflow controller 203 is asynchronous and may simul
`taneously communicate with all microprocessor units 202
`(1-n). Address and state tables (not illustrated) are provided to
`the dataflow controller by each of processor units 202 (1-n).
`In this way the dataflow controller may manage where writes
`occur transparently from the host. The host may view the
`compilation of Flash devices as a single disk according to a
`file system-based view used by the operating system of the
`host. A more primitive view or block view of the Flash
`memory space may also be ordered. It is noted herein that
`storage device 200 may be one of multiple devices compris
`ing a mass storage system accessible from one or more
`machines.
`FIG. 3 is a block diagram illustrating a distributed multi
`processor Flash storage device according to another embodi
`ment of the present invention. Flash storage device 300 is
`illustrated in this embodiment and is implemented using a
`distributed architecture including multiple processor units
`illustrated herein as microprocessor units 304(1-n). Micro
`processor units 304 (1-n) each have onboard or dedicated
`RAM for processing data management functions and for
`caching data before writing to Flash operations.
`A Flash channel is defined as one or more Flash devices (in
`configuration) connected by a dedicated bus to a processor
`unit as described above. Each of Flash devices 306 (1-n)
`represent one or more Flash memory devices bused to a
`processor unit by a dedicated bus, in this example. Flash
`device 1 and Flash device 2 of devices 306 (1-n) in this
`embodiment share microprocessor unit 304 (1). Micropro
`cessor unit 304(1) is bused by a dedicated bus 305 (1) to Flash
`device(s) 306 (1) to form one complete Flash channel. The
`same microprocessor unit is bused by a dedicated bus 305 (2)
`to Flash device(s) 306 (2).
`The same configuration is repeated on the device where
`one microprocessor unit is responsible for two Flash chan
`nels, for example, microprocessor unit 304 (n) is bused by
`dedicated bus 305 (m) to Flash device(s) 306 (m) and by
`dedicated bus 305 (n) to Flash device(s) 306 (n). In another
`embodiment one microprocessor unit may handle four or
`eight Flash channels, or other numbers of Flash channels.
`There are many possibilities. In this case RAM is shared for
`caching writes to both Flash device configurations (Flash 1,
`Flash 2). In this embodiment RAM is not dedicated to a single
`Flash channel but is dedicated to a single microprocessor unit
`and is shared by two Flash channels. While this may introduce
`some contention for RAM between the Flash channels, the
`fact that the channel pair earmarked by sharing one micro
`
`45
`
`8
`processor unit is duplicated over entire device 300 makes any
`performance degradation negligible when compared to the
`performance of a single processor unit managing multiple
`Flash channels over a common bus.
`Each microprocessor unit 304 (1-n) has a single bus con
`nection to a data flow controller 303 integrated with a host
`interface controller 302. In this example dataflow controller
`303 is onboard the host interface controller. Dedicated data
`buses 305 (1-n) may be 32-bit, 64-bit, or 128-bit wide buses,
`or some other bus configuration. The same can be said for all
`dedicated internal (onboard) buses described in the various
`architectures present.
`Single bus connection Bus (1) from microprocessor unit
`304 (1) to dataflow controller 303 may be a 32-bit, 64-bit, or
`128-bit wide bus, or some other. It is possible that Bus (1) may
`be configured to be twice as fast as buses 305 (1-n) to allow for
`possible bottle-necking of data traffic on the host-side of the
`device 300. Other optimizations may be practiced such as
`RAM caching before write where the actual writes to Flash
`over the dedicated buses 305 (1-n) are kept to a minimum
`number as much as is practical. Bus (1) that connects micro
`processor 304 (1) to dataflow controller 303 for communica
`tion may be a duel independent bus (DIB) or some other bus
`architecture that is optimized for speed.
`Microprocessor unit 304(n) is bused to dataflow controller
`303 by a dedicated bus n. Dataflow controller 303 includes an
`onboard processor 307 with a dedicated RAM with dataflow
`controller tables for use in microprocessor communication.
`Dataflow controller 303 is hosted on or integrated with host
`interface controller 302. It is not specifically required that
`dataflow controller 303 be controlled by an onboard proces
`sor to practice the present invention. The dataflow controller
`may be a state machine running in firmware on the host
`controller interface. The dataflow controller may also be con
`trolled by a processor residing in a host system or in a system
`adapter without departing from the spirit and scope of the
`present invention. In this example, each multiprocessor unit
`manages data access to two independent Flash memory con
`figurations. The Flash configuration

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket