throbber
United States Patent [19J
`Bruce et al.
`
`[54] EXPANDABLE FLASH-MEMORY MASS(cid:173)
`STORAGE USING SHARED BUDDY LINES
`AND INTERMEDIATE FLASH-BUS
`BETWEEN DEVICE-SPECIFIC BUFFERS
`AND FLASH-INTELLIGENT DMA
`CONTROLLERS
`
`[75]
`
`Inventors: Ricardo H. Bruce, Union City;
`Rolando H. Bruce, South San
`Francisco; Earl T. Cohen, Fremont, all
`of Calif.
`
`[73] Assignee: Bit Microsystems, Inc., Fremont, Calif.
`
`[21] Appl. No.: 939,601
`
`[22] Filed:
`
`Sep. 29, 1997
`
`Related U.S. Application Data
`
`[63] Continuation-in-part of Ser. No. 918,203, Aug. 25, 1997.
`Int. Cl.6
`..................................................... GllC 13/00
`[51]
`[52] U.S. Cl. ................................ 365/185.33; 365/189.01;
`365/218
`[58] Field of Search ......................... 365/189.01, 230.01,
`365/185.33, 218
`
`[56]
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,752,871
`5,297,148
`5,379,401
`5,388,083
`5,432,748
`5,448,577
`5,479,638
`5,500,826
`5,509,134
`5,513,138
`5,524,231
`5,530,828
`
`6/1988 Sparks ................................ 365/189.01
`3/1994 Harari et al. ........................... 371/10.2
`1/1995 Robinson et al.
`...................... 395/425
`2/1995 Assar et al. ............................. 365/218
`7/1995 Hsu et al.
`.......................... 365/230.01
`9/1995 Wells et al. ............................ 371/10.1
`12/1995 Assar et al. ............................. 395/430
`3/1996 Hsu et al.
`.......................... 365/230.01
`4/1996 Fandrich et al. ........................ 395/430
`4/1996 Manabe et al. .................... 365/185.33
`6/1996 Brown ..................................... 395/428
`6/1996 Kaki et al. .............................. 395/430
`
`I 1111111111111111 11111 111111111111111 111111111111111 lllll 111111111111111111
`US005822251A
`[11] Patent Number:
`[45] Date of Patent:
`
`5,822,251
`Oct. 13, 1998
`
`5,535,328
`5,559,956
`5,568,439
`5,572,466
`5,594,883
`5,602,987
`5,603,001
`5,606,529
`5,619,470
`5,627,783
`5,640,349
`
`7/1996 Harari et al. ....................... 395/182.05
`9/1996 Sukegawa .......................... 395/182.06
`10/1996 Harari ..................................... 365/218
`11/1996 Sukegawa .......................... 365/185.33
`1/1997 Pricer ...................................... 395/440
`2/1997 Harari et al. ....................... 395/182.06
`2/1997 Sukegawa et al. ..................... 395/430
`2/1997 Honma et al. ..................... 365/230.01
`4/1997 Fukumoto ............................... 365/228
`5/1997 Miyauchi ........................... 365/185.33
`6/1997 Kakinuma et al. ................ 365/185.33
`
`Primary Examiner-Terrell W. Fears
`Attorney, Agent, or Firm-Stuart T. Auvinen
`
`[57]
`
`ABSTRACT
`
`A flash-memory system is expandable. Rather than directly
`connecting individual flash-memory chips to a controller,
`flash buffer chips are used. Each flash buffer chip can
`connect to four banks of flash-memory chips. Chip enables
`for individual chips in a bank are generated from an address
`sent to the flash buffer chips. Two flash-specific DMA
`controllers are provided, each with four DMA state
`machines for controlling the four banks of flash-memory
`chips attached to a flash buffer chip. This allows for four(cid:173)
`way interleaving. Two flash buses connect the two DMA
`controllers to flash buffer chips. The flash bus has a narrow
`byte-wide interface to send command, address, and data
`bytes from the DMA controller to the flash buffer chips.
`These command, address, and data bytes are then passed
`through the flash buffer chip to the flash-memory chips. Two
`additional command signals on the flash bus are used to
`select and control the flash buffer chips. Busy signals from
`all flash-memory chips in a bank are connected together, and
`the four busy signals from the four banks are time(cid:173)
`multiplexed to a single common busy line for the flash bus.
`The four DMA state machines each monitor one period of
`the busy line, allowing four flash operations to be monitored
`at a time, even though only one data transfer can occur
`across the flash bus.
`
`24 Claims, 8 Drawing Sheets
`
`FLASH
`BUFFER
`CHIP M
`
`FLASH
`BUFFER
`CHIP M
`
`FLASH
`BUS-A
`
`10
`
`18
`
`FLASH
`BUFFER
`CHIP M
`
`FLASH
`BUFFER
`CHIP M
`
`FLASH
`BUS-B
`
`FLASH
`FLASH
`BUFFER
`BUFFER
`CHIP M
`CHIP M
`,------ ----------- ---------,
`
`I
`FLASH-
`:
`: SPECIFIC
`I
`DMA 12
`:
`I•-••-• - • • • • • • • • • • • • • • • • • • -1
`
`I
`:
`FLASH-
`:
`SPECIFIC
`I
`DMA 1§ 50:
`
`DRAM
`CACHE
`~
`
`LOCAL BUS
`
`SCSI
`CTLR
`
`LOCAL
`PROC
`MEM 'll
`
`LOCAL
`PROC 2§
`
`30
`
`ROM
`
`~
`
`34
`
`36
`
`INTEL-1006
`8,010,740
`
`

`

`~
`Ul
`N
`....
`N
`N
`00
`....
`Ul
`
`00
`0
`....,
`:
`[
`'Jl
`
`~ \0
`~
`~
`p.
`o
`
`00
`
`~ =
`~
`~
`r'1
`d •
`
`-
`
`DEVICES
`MEM
`FLASH
`
`BSY
`
`I
`
`BSY
`
`CHIP 141
`BUFFER
`FLASH
`
`FIG. 1
`
`CHIP 141-----1--,....--
`BSY _...:~
`
`L---~:::r-~--~
`
`BSY
`
`..,_ ___ ....
`1---1----..J
`
`FLASH
`
`18
`
`BUS
`FLASH
`
`SPECIFIC t-------------' BUFFER
`FLASH-
`
`16
`
`OMA
`
`BSY
`
`,....-..
`
`BSY
`
`-11111-----1
`CHIP 141--------1
`BUFFER
`
`10
`
`~
`
`F~~H
`
`SPECIFIC 1-----~----1--1 FLASH
`
`BSY
`
`--~=r-~---1
`CHIP 14.,__ __ __..-----.....-
`BUFFER
`FLASH
`
`BSY
`
`.,._ ___ _.
`
`I I
`I
`
`I
`
`12
`
`I
`
`22 I
`
`FLASH-I
`
`OMA
`
`

`

`~
`Ul
`N
`....
`N
`N
`00
`....
`Ul
`
`00
`0 ....,
`N
`~ ....
`'JJ. =(cid:173)~
`
`00
`\0
`'"""'
`\0
`'"""' ~~
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`~ < 36
`
`HOST
`
`.......
`
`BSY ~
`
`~ 20
`
`-
`
`~ 20 -
`
`BSY ~
`
`~ 20 -
`
`-
`
`BSY ~
`
`-
`
`-
`
`34
`~
`
`CTLR
`SCSI
`
`FIG. 2
`30
`1
`
`28
`
`ROM
`
`PROC 26 -
`
`LOCAL
`
`MEM 27 -
`
`PROC
`LOCAL
`
`LOCAL BUS
`
`CHIP 14
`BUFFER
`FLASH
`
`-
`
`CHIP 14
`BUFFER
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`18
`"'
`
`10
`"'
`
`BUS-A
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`BUS-B
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`-
`
`20 §i'
`~ BSY -
`
`BSY
`
`20 §r
`~
`
`-
`
`-
`
`20 §r
`~ BSY -
`
`-
`
`-
`
`-
`
`-
`
`,------------------------------.
`
`-1
`
`16 so:
`
`OMA
`
`12
`
`OMA
`
`.. _______ ------------· ----------
`
`SPECIFIC
`FLASH-
`
`SPECIFIC
`FLASH-
`
`I
`I
`I
`I
`I
`I
`
`I
`I
`I
`I
`I
`I
`I
`I
`I
`
`32
`CACHE
`DRAM
`
`

`

`~
`Ul
`N
`....
`N
`N
`00
`....
`Ul
`
`~
`
`00
`0 ....,
`~ ....
`'JJ. =(cid:173)~
`
`00
`\0
`'"""'
`\0
`'"""' ~~
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`50
`
`FIG. 3
`
`--
`
`1'
`
`42
`
`41
`
`FIFO B
`
`-
`
`FIFO A
`
`-
`
`-
`
`44
`
`PARITY
`
`-
`
`DRAM CACHE
`TO/FROM
`
`-
`
`---------------------------------
`
`"' CHK
`ECG
`-I> FLASH BUS-B
`
`18
`)
`
`"'
`95 CHK
`ECC
`
`85 97
`
`-
`
`r--,.
`
`10
`)
`
`FLASH BUS-A
`
`83
`~
`--t>
`....
`
`-
`
`ECC GEN
`
`93)
`
`CMOS
`
`~
`
`91
`
`ECG GEN -
`
`CMOS
`
`.
`
`.
`
`48
`
`LOGIC
`CTL
`BUS-B
`
`40"-BANK3 SM
`
`40"-BANK2 SM
`
`40"-BANK1SM
`
`40"-BANKO SM
`---------------------------------
`---------------------------------
`40" BANK3 SM
`46
`
`--
`
`LOGIC
`CTL
`BUS-A
`
`40" BANK2 SM
`
`40" BANK1SM
`
`40" BANKO SM
`
`12
`
`

`

`~
`Ul
`N
`....
`N
`N
`00
`....
`Ul
`
`00
`0 ....,
`~ ....
`'JJ. =(cid:173)~
`
`,i;;..
`
`00
`\0
`'"""'
`\0
`'"""' ~~
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`ALE0:1
`
`• CHIPS
`1--1 76 I WP0:1 MEM
`FLASH
`WE0:4 TO
`
`•
`
`RE0:4 ..
`
`___,J
`74 -
`
`...a 72
`
`CE0:7
`
`I LOCKr
`
`I
`
`64
`
`t' 54
`
`2-BIT CNTR
`
`.I GROUP
`62"'1 START
`

`I
`
`BUSY0
`
`__,_
`
`BUSY3
`BUSY2
`
`56
`
`~t:= BUSY1
`
`FACE
`INTER(cid:173)
`BUS
`FLASH
`
`..,
`..
`
`FBCMD0:1
`
`RESET
`
`WP
`
`14
`
`FB-~SY 1
`
`-... 79 I DATA0:7
`...
`
`,_
`
`781 CLE0~1
`
`-
`
`H
`
`52
`
`FIG. 4
`
`7~=--te
`
`FBDATA0:7 ~
`
`

`

`~
`Ul
`N
`....
`N
`N
`00
`....
`Ul
`
`00
`0 ....,
`Ul
`~ ....
`'JJ. =(cid:173)~
`
`00
`\0
`'"""'
`\0
`'"""' ~~
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`TIME
`
`FIG. 5
`
`OMA 12
`
`SPECIFIC
`FLASH(cid:173)
`
`I Bsvo I BSY 1 I Bsv2 I BSY3 I Bsvo I
`
`82~
`
`88~
`
`86~
`
`84~
`
`82~
`
`BUSY3
`
`FB-BSY
`
`20 1120 1120 1120 1120 1120 1120 1120
`
`20 1120 1120 1120 1120 1120 1120 1120
`
`56
`
`120 1120 1120 1120 1120 1120 1120 1120
`
`20 1120 1120 1120 1120 1120 1120 1120
`
`BUSY0
`
`I
`: /
`14
`~-------, I
`
`FIG. 6
`
`CHIP 14
`BUFFER
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`

`

`U.S. Patent
`U.S. Patent
`
`Oct. 13, 1998
`Oct. 13, 1998
`
`Sheet 6 of 8
`Sheet 6 of 8
`
`5,822,251
`5,822,251
`
`YAHLOOAY
`
`QWOYSHLO
`
`(9
`LL
`
`LIVMCGd
`
`QWOLYVLS
`
`LHYVLSOAY
`
`AsVdsdsY
`
`ASvesAy1¢d
`
`ASddauy
`
`quoswy
`
`Ce
`
`ASYM
`
`QNOdT
`
`GQW903y
`
`Carvin
`
` Vivddd
`
`IVLSO3Y
`
`QYLVLS
`
`
`
`
`
`
`

`

`U.S. Patent
`U.S. Patent
`
`Oct. 13, 1998
`Oct. 13, 1998
`
`Sheet 7 of 8
`Sheet 7 of 8
`
`5,822,251
`5,822,251
`
`8Old
`
`co
`(9
`LL
`
`AOOINN
`
`0
`~
`l)
`::I:
`
`~ LJ..
`
`Cl) n::
`0
`:5 w
`
`Cl)
`
`O1sYdav
`
`0
`....J
`Cl) n::
`0
`<(
`
`0
`~
`Cl)
`0::
`0
`<(
`
`::I:
`Cl) n::
`0
`<(
`
`ASVYsA1AS
`
`QWOsASVYyS
`
`w
`z
`0
`0
`
`IHOWOLAS,OTQWOLAS
`
`Vivdlas
`
`LIVMAYM
`
`VIVGYM
`
`90d14S
`
`QW990ud
`
`0
`~
`l)
`C)
`0
`0:: a..
`
`
`
`
`
`
`
`

`

`~
`Ul
`N
`~
`QC
`....
`Ul
`
`00
`0 ....,
`00
`~ ....
`'JJ. =(cid:173)~
`
`00
`\0
`'"""'
`\0
`'"""' ~~
`!""'"
`I")
`0
`
`~ = ......
`~ ......
`~
`•
`r:JJ.
`d •
`
`I
`I
`
`FLASH BUS-B
`
`18
`~
`
`FLASH BUS-A
`
`I
`
`I
`
`92
`
`CHIP 14
`BUFFER
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`BUFFER
`FLASH
`
`CHIP 14
`BUFFER
`FLASH
`
`I
`I '10
`-------·----------~-------
`90
`---I
`CHIP 14
`
`FLASH-I
`
`OMA 16
`
`SPECIFIC
`
`OMA ~
`
`I
`
`SPECIFIC
`FLASH-
`
`FIG. 9
`
`,-------------------------
`
`,-------------------------
`
`

`

`5,822,251
`
`1
`EXPANDABLE FLASH-MEMORY MASS(cid:173)
`STORAGE USING SHARED BUDDY LINES
`AND INTERMEDIATE FLASH-BUS
`BETWEEN DEVICE-SPECIFIC BUFFERS
`AND FLASH-INTELLIGENT DMA
`CONTROLLERS
`
`RELATED APPLICATION
`
`This application is a continuation-in-part of the
`co-pending application for "Unified Re-Map and Cache(cid:173)
`Index Table with Dual Write-Counters for Wear-Leveling of
`Non-Volatile Flash RAM Mass Storage", filed Aug. 25,
`1997, U.S. Ser. No. 08/918,203.
`
`BACKGROUND OF THE INVENTION
`
`15
`
`2
`completed. The busy signal allows a local processor to
`continue with other tasks while the flash-memory integrated
`circuit chip performs the flash operation. Flash operations
`generally cannot be stopped once initiated. Erase operations
`5 are the exception-they can be suspended and resumed later,
`but generally only one erase operation per flash-memory
`chip can be active or suspended at a time.
`Busy signals complicate expansion, as the local processor
`must receive all the busy signals. As more flash-memory
`10 devices are added to the system, the local processor must
`receive additional busy signals from the additional chips.
`While all the busy signals can be connected together, this
`can limit performance as parallel flash operations driving the
`same busy line can interfere with each other, requiring that
`the local processor read status registers on all the flash chips
`when any device asserts the common busy line. Connecting
`all the busy signals together generally also means that the
`busy line will stay asserted (busy) as long as any device is
`busy-this limits parallelism by not providing separate
`indications of when each flash-memory chip has completed
`an operation.
`DMA for Data Transfers
`Direct-memory access (DMA) has been used to facilitate
`data transfers. While DMA is efficient for transfers of raw
`data to a memory, flash-memory chips also require com(cid:173)
`mand and address sequences to set up the relatively long
`flash operations. DMA is not well-suited to transfer
`addresses and commands since it is designed to transfer long
`strings of data beginning at a starting address through an
`30 ending address.
`These command and address sequences are inputted to the
`flash-memory chips through shared data 1/0 pins, and gen(cid:173)
`erally require special control signals to be asserted to
`distinguish whether the shared data 1/0 pins contain data,
`35 address, or command information. Often only 8 data 1/0
`pins are provided, limiting transfers to one byte of a
`command, address, or data per cycle. Thus one or two cycles
`are needed for each command and two or three cycles are
`needed for each address inputted to the flash-memory chips.
`It is desired to modify a DMA controller so that com-
`mands and addresses can also be input to a flash-memory
`chip over the shared data/address/command 1/0 pins. It is
`also desired to allow for expansion of storage capacity of a
`flash-memory system. A high-performance flash-memory
`45 system performing flash operations in parallel is desirable,
`even when expansion flash chips are added.
`SUMMARY OF THE INVENTION
`An expandable flash-memory system has a host interface
`that receives requests for access of flash memory. A flash(cid:173)
`specific direct-memory access (DMA) controller controls
`access of the flash memory. The flash-specific DMA con(cid:173)
`troller generates a sequence of command bytes followed by
`address bytes to initiate a data transfer from the flash
`memory.
`A flash bus is coupled to the flash-specific DMA control(cid:173)
`ler. The flash bus has shared lines that transmit the sequence
`of command bytes and address bytes from the flash-specific
`DMA controller. The shared lines also transmit data bytes
`from the flash-specific DMAcontroller for the host interface.
`Flash buffer chips are coupled to the flash bus. They
`generate control signals that control flash-memory chips.
`The flash buffer chips pass the sequence of command bytes
`and address bytes from the flash-specific DMA controller to
`65 the flash memory.
`A plurality of flash-memory chips are arranged in banks
`that share some of the control signals from a flash buffer
`
`20
`
`1. Field of the Invention
`This invention relates to non-volatile memory storage
`systems, and more particularly to expansion of flash
`memory systems.
`2. Description of the Related Art
`Hard disks have been the traditional storage medium in
`computer systems. More recently these hard disks are being
`replaced by non-volatile semiconductor memory. An array
`of non-volatile random-access memories (NVRAM's) or 25
`non-volatile flash memories substitutes for the hard-disk
`storage. These memory devices use electrically-erasable
`programmable read-only-memory (EEPROM) technology
`for storage cells. Floating polysilicon gates in these storage
`cells retain charge and state when power is lost, providing
`non-volatile storage. These flash-memory systems are fre(cid:173)
`quently used as a mass-storage replacement for a hard disk
`on a personal computer and are thus sometimes referred to
`as a flash "disk", even though no rotating disks are used.
`Hard disks suffer from their inherent fixed size, since
`expansion of the storage capacity of a hard disk is not
`possible. An entire new disk assembly is needed to expand
`disk storage. Like DRAM memory, flash memory has the
`potential for expansion. However, current flash-memory
`systems have not fully realized the potential for expandabil- 40
`ity. Rigid bus architectures often restrict expansion of flash(cid:173)
`memory systems. Like hard disks, the expansion of these
`flash-memory systems is limited.
`Slow Flash Operations
`Flash EEPROM chips are divided into pages and blocks.
`A 64 Mbit flash chip typically has 512-byte pages which
`happens to match the sector size for IDE and SCSI hard
`disks. Rather than writing to or reading from just one word
`in the page, the entire page must be read or written at the
`same time; individual bytes cannot be written. Thus flash(cid:173)
`memory operations are inherently slow since an entire page
`must be read or written.
`Each page must be cleared of any previous data before
`being written; clearing is accomplished by a flash erase 55
`cycle. An entire block of pages (typically 16 pages) is erased
`at once. A block of 16 pages must be erased together, while
`all 512 bytes on a page must be written together. Erase is
`therefore significantly slower than read or write operations.
`Interleaving on a page basis increases the effective block 60
`size since several banks are grouped together. For example,
`a 4:1 page-interleaved system has an effective block size of
`4 blocks. The larger block size can further increase erase
`time. Interleaving is preferably done on a block basis that
`doesn't increase the effective block size.
`A busy signal is usually provided by each flash-memory
`chip to indicate when the read, write, or erase operation has
`
`50
`
`

`

`5,822,251
`
`4
`A plurality of other flash-memory chips are arranged into
`banks. The flash-memory chips are non-volatile semicon(cid:173)
`ductor memory chips that retain data when power is lost.
`Other flash buffer chips are coupled to the first flash bus.
`5 Each flash buffer chip is coupled to a different plurality of
`banks of the flash-memory chips.
`A second flash-specific DMA controller is coupled to the
`local processor. It generates command, address, and data
`sequences to a second flash-memory chip in a format
`required by the second flash-memory chip. A second flash
`bus is coupled to the second flash-specific DMA controller.
`It transfers the data, addresses, and commands over shared
`address/data/command lines. A second flash buffer chip is
`coupled to the second flash bus. It sends the data, addresses,
`and commands from the shared lines of the second flash bus
`to the second flash-memory chip. Other flash buffer chips are
`coupled to the second flash bus. Each flash buffer chip is
`coupled to a different plurality of banks of the flash-memory
`chips. Thus two flash-specific DMA controllers control
`access of flash-memory chips through flash buffer chips
`connected by two flash buses.
`
`15
`
`20
`
`3
`chip. The flash-memory chips are non-volatile
`semiconductor-memory chips that retain data when power is
`no longer applied.
`The flash bus accepts additional flash-memory chips
`attached through the flash buffer chips to expand a storage
`capacity of the expandable flash-memory system. Thus the
`flash-memory chips are buffered by the flash buffer chips to
`the flash bus and the flash-specific DMA controller.
`In further aspects of the invention the flash bus has
`command lines to indicate transmission of a select code to 10
`the flash buffer chips. The flash buffer chips each have a
`select decoder that receives the select code. Each flash buffer
`chip generates a plurality of chip-enable control signals to
`the flash-memory chips. One of the chip-enable control
`signals is activated to enable a selected flash-memory chip
`while other chip-enable control signals disable other flash(cid:173)
`memory chips. Thus the chip-enable control signals are
`generated by the flash buffer chips from the select code from
`the flash-specific DMA controller.
`In further aspects of the invention each flash-memory chip
`outputs a busy signal to indicate when a flash operation is in
`progress within the flash-memory chip. All busy signals
`from flash-memory chips in a bank that is connected to a
`flash buffer chip are connected to a common bank-busy line.
`The bank-busy line for each bank is input to the flash buffer
`chip.
`The flash buffer chip also has a busy combining means
`that receives the bank-busy signals from all banks of flash(cid:173)
`memory chips attached to the flash buffer chip. It combines
`the bank-busy signals into a merged busy signal output to the 30
`flash bus. Thus busy signals from individual flash-memory
`chips are combined by the flash buffer chips.
`In still further aspects the merged busy signals from all
`flash buffer chips on the flash bus are connected to a
`common flash-bus busy line. The flash-specific DMA con- 35
`troller monitors the common flash-bus busy line to deter(cid:173)
`mine when the flash operation is in progress in the flash(cid:173)
`memory chip. Thus all busy signals are combined into a
`single busy line to the flash-specific DMA controller.
`In further aspects of the invention a second flash bus is 40
`coupled to a second flash-specific DMAcontroller. A second
`plurality of flash buffer chips are coupled to the second flash
`bus. Each flash buffer chip in the second plurality generates
`control signals and buffers command and address bytes from
`the second flash bus to additional banks of flash buffer chips. 45
`Thus the second flash bus accesses the additional banks of
`flash buffer chips.
`In other aspects of the invention a flash-memory storage
`peripheral has a host interface to a host system and a local
`processor that controls the flash-memory storage peripheral. 50
`A read-only memory (ROM) is coupled to the local proces(cid:173)
`sor. It stores routines for execution by the local processor.
`The routines include wear-leveling routines for re-mapping
`data from over-used or faulty memory blocks to unused
`memory blocks.
`A cache is coupled to the local processor. It temporarily
`stores data from the host in volatile memory that loses data
`when power is disconnected. A first flash-specific DMA
`controller is coupled to the local processor. It generates
`command, address, and data sequences to a first flash- 60
`memory chip in a format required by the first flash-memory
`chip. A first flash bus is coupled to the first flash-specific
`DMA controller. It transfers data, addresses, and commands
`over shared address/data/command lines. A first flash buffer
`chip is coupled to the first flash bus. It sends the data, 65
`addresses, and commands from the shared lines of the first
`flash bus to the first flash-memory chip.
`
`25
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`FIG. 1 is a block diagram of a large flash-memory system
`with dual DMA controllers driving dual flash busses.
`FIG. 2 is an expandable flash-disk system using dual
`DMA and dual flash busses.
`FIG. 3 is a diagram of an ASIC chip containing dual DMA
`controllers modified for controlling flash memories.
`FIG. 4 is a diagram of a flash buffer chip for an expand(cid:173)
`able flash-memory system.
`FIG. 5 is a timing diagram of a time-multiplexed busy
`signal.
`FIG. 6 highlights the busy signals from the flash-memory
`chips to the flash-specific DMA controller.
`FIG. 7 is a state diagram of the flash-specific DMA state
`machines.
`FIG. 8 is a state diagram of the flash bus state machine.
`FIG. 9 illustrates expansion cards in a flash memory
`system.
`
`DETAILED DESCRIPTION
`
`The present invention relates to an improvement in flash(cid:173)
`memory systems. The following description is presented to
`enable one of ordinary skill in the art to make and use the
`invention as provided in the context of a particular applica(cid:173)
`tion and its requirements. Various modifications to the
`preferred embodiment will be apparent to those with skill in
`the art, and the general principles defined herein may be
`applied to other embodiments. Therefore, the present inven(cid:173)
`tion is not intended to be limited to the particular embodi-
`55 ments shown and described, but is to be accorded the widest
`scope consistent with the principles and novel features
`herein disclosed.
`An expandable flash-memory system uses multiple levels
`of busses. The flash-memory chips are buffered from an
`intermediate flash bus by flash buffer chips that combine
`busy signals from an array of flash-memory chips. Flash(cid:173)
`specific direct-memory access (DMA) drives commands,
`addresses, and data out over the flash bus.
`FIG. 1 is a block diagram of a large flash-memory system
`with dual DMA controllers driving dual flash busses. High(cid:173)
`level requests from a local processor are sent to flash
`memory over bus 22. Each request is translated into a
`
`

`

`5,822,251
`
`25
`
`30
`
`5
`
`5
`sequence of commands, address bytes, and data transfers by
`one of the flash-specific DMA controllers 12, 16. DMA
`controllers 12, 16 transfer not only data, as in traditional
`DMA, but also generate the appropriate command and
`address bytes that are transmitted over the same lines of the
`flash bus as the data.
`Commands, address bytes, and data bytes are transferred
`from DMA controller 12, 16 to flash-memory chips 20 over
`flash busses 10, 18, which have 8 multiplexed data/address/
`command lines. In addition to the 8 shared data/address/
`command lines, flash busses 10, 18 also have 2 lines for an
`encoded command. This 2-bit encoded command is not sent
`to flash-memory chips 20, but is instead used to select and
`control flash buffer chips 14. Thus each flash bus has an 8-bit
`portion destined for flash buffer chips 14 or for flash(cid:173)
`memory chips 20, and a 2-bit portion sent only for flash 15
`buffer chips 14.
`DMA controller 12 drives flash bus 10, while DMA
`controller 16 drives second flash bus 18. Flash busses 10, 18
`can operate at the same time, allowing flash operations to be
`initiated and processed in parallel. Each flash buffer chip 14 20
`can control several banks of flash-memory chips 20. Each
`bank can be separately accessed, allowing many flash opera(cid:173)
`tions to be performed in parallel.
`The busy signals from all flash-memory chips in a bank
`are connected together, so only one flash-memory chip in a
`bank can be active at a time. However, each flash buffer chip
`14 receives separate busy signals from each separate bank;
`in FIG. 1, each flash buffer chip 14 has two banks attached
`and receives two separate busy signals. A preferred embodi-
`ment has four banks attached to each flash buffer chip 14.
`Each bank has eight flash memory chips.
`An expandable architecture is provided by flash busses
`10, 18. Additional banks of flash-memory chips can be
`added to existing flash buffer chips, or modules of flash- 35
`memory chips with a flash buffer chip can be plugged into
`a flash bus. The flash bus is an intermediate bus that
`facilitates expansion since any number of flash buffer chips
`can be added.
`Performance is enhanced because two DMA controllers 40
`are provided, able to launch two new flash operations at
`once. Once launched, flash operations are monitored by the
`flash buffer chips, which receive the busy lines from the
`flash-memory chips. Thus the DMA controller can launch
`additional flash operations to other flash-memory chips. This
`inherent parallelism improves performance by allowing
`multiple flash operations to be performed at the same time.
`Indeed, multiple flash operations can be launched or com(cid:173)
`pleted at the same time since two DMA controllers are
`provided.
`Expandable Flash-Disk System-FIG. 2
`FIG. 2 is an expandable flash-disk system using dual
`DMA and dual flash busses. Banks of flash-memory chips 20
`connect to flash buffer chips 14, which are connected to flash
`busses 10, 18. Expansion occurs when additional flash buffer 55
`chips are connected to flash busses 10, 18. Since relatively
`few flash buffer chips are connected to each flash bus,
`loading from additional chips is not critical. A great many
`flash-memory chips can be added since each flash buffer
`chip can connect to four banks of 8 flash-memory chips, a 60
`total of 32 flash-memory chips per flash buffer chip.
`Flash specific DMA controllers 12, 16 are preferably
`contained in a single Application-Specific Integrated Circuit
`(ASIC) 50. ASIC 50 connects DMA controllers 12, 16 to
`local bus 30. Local bus 30 connects DRAM cache 32, local 65
`processor 26, and small-computer system interface (SCSI)
`controller 34 to DMA controllers 12, 16.
`
`6
`Requests from host 36 are received by SCSI controller 34
`and driven onto local bus 30. Local processor 26 responds
`to these host requests by storing host data into DRAM cache
`32 for writes, or reading data from flash-memory chips 20 or
`from DRAM cache 32 for reads. ROM 28 contains firmware
`code of routines that execute on local processor 26 to
`respond to host requests. Other system-maintenance routines
`are stored on ROM 28, such as wear-leveling and copy-back
`routines. DRAM cache 32 is preferably under firmware
`10 control by local processor 26, and thus the local processor's
`local memory 27 and DRAM cache 32 may share the same
`physical DRAM chips.
`Accesses of flash-memory chips 20 by local processor 26
`are initiated by local processor 26 sending a high-level
`command to one of flash-specific DMA controllers 12, 16.
`These DMA controllers then generate sequences of com-
`mand and address bytes, and transfer data. Many sequences
`may be needed, such as for block reads and writes. A block
`read requires that many page read sequences be performed,
`each sequence generally sending command and address
`bytes to the flash-memory chips through the flash buffer
`chips. Some flash-memory chips also have a sequential read
`mode where command and address bytes need only be sent
`for the first page in a sequence.
`The flash-memory chips being read, written, or erased
`remain busy for some period of time after the command and
`address bytes are sent. The flash buffer chips combine and
`send the busy signals from multiple flash-memory chips to
`the DMA controller. Once the busy signal is de-asserted,
`indicating that the flash-memory chip is ready, the DMA
`controller continues the operation, perhaps reading the data
`or moving on to the next page in the block. Finally, once all
`flash operations have finished, the DMAcontroller signals to
`local processor 26 that the high-level flash operation is
`complete.
`Flash-Specific DMA-FIG. 3
`FIG. 3 is a diagram of an ASIC chip containing dual DMA
`controllers modified for controlling flash memories. Data
`received from flash busses 10, 18 is buffered by FIFOs 41,
`42 before being sent to the DRAM cache. Having separate
`FIFOs 41, 42 for flash busses 10, 18 allows for independent
`bus operation. One flash bus can be reading from flash(cid:173)
`memory chips while the other is writing to flash-memory
`45 chips. Flash data is always sent to and from the DRAM
`cache rather than directly from the host to the flash memory.
`Parity circuit 44 adds or checks parity bits for storage in the
`DRAM cache. FIFOs 41, 42 also buffer data from the host
`or DRAM cache before it is written to the flash memory over
`50 one of flash busses 10, 18.
`Flash bus 10 is controlled by flash-specific DMA control(cid:173)
`ler 12, while flash bus 18 is controlled by flash-specific
`DMA controller 16. Each DMA controller 12, 16 contains
`four state machines 40, one for each of four banks of
`flash-memory chips. Having four state machines allows four
`flash-memory chips to be accessed at once for each flash
`bus, for a total of eight flash accesses. The data can be
`interleaved among the four banks for each flash buffer chip,
`and also interleaved among chips connected to the two flash
`busses. Separate state machines 40 allow the eight flash
`accesses to be in different stages of completion.
`Flash bus 10 is driven by bus control logic 46 in DMA
`controller 12, while flash bus 18 is driven by bus control
`logic 48 in DMA controller 16. Bus control logic 46, 48
`generates command and address bytes or enables reading
`and writing of FIFOs 41, 42 in response to states entered by
`state machines 40. Arbitration logic (not shown) determines
`
`

`

`5,822,251
`
`10
`
`7
`which state machine 40 currently controls each flash bus,
`since only one transfer at a time can be performed on a flash
`bus.
`Multiplexers or muxes 83, 85 select address bytes and
`commands from bus control logic 46, 48, or data from FIFOs
`41, 42. This allows both commands and data to be sent over
`the same flash bus.
`Error-correcting-code (ECC) generators 91, 93 and ECC
`checkers 95, 97 connect to flash busses 10, 18. A block code,
`such as a Reed-Solomon code, is used to protect entire pages
`of data stored in the flash-memory chips and to guard against
`more than just simple, single-bit errors. When data is being
`transferred to the flash-memory chips, ECC generators 91,
`93 generate ECC, and when data is being transferred from
`the flash-memory chips, ECC checkers 95, 97 check the
`ECC and determine if there were any errors, either in the
`flash-memory chips themselves, or possibly in the interface
`to or from them. It is possible to design a combined ECC
`generator/checker unit so that one ECC unit can be used per
`flash bus.
`Flash Buffer Chip-FIG. 4
`FIG. 4 is a diagram of a flash buffer chip for an expand(cid:173)
`able flash-memory system. Flash buffer chips allow a rela(cid:173)
`tively large number of flash-memory chips to be added to the
`system without excessively loading the flash bus. Busy
`signals are combined by the flash buffer chips so that fewer
`busy signals need to be input to the DMA controllers.
`Flash buffer chip 14 connects to a flash bus to receive
`commands, addresses, and data from the flash-specific DMA
`controller. The 8-bit data/address/command portion of the
`flash bus is passed through to output logic 79 and then on to
`the flash-memory chips. The 2-bit select and command
`portion of the flash bus are decoded by flash-bus interface
`70, which includes state machines to keep track of multi(cid:173)
`cycle command sequences.
`The flash buffer chips also serve as protocol converters,
`taking the flash bus protocol and converting it to the protoco

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