US8874833B1 - Sequential writes to flash memory - Google Patents
Sequential writes to flash memory Download PDFInfo
- Publication number
- US8874833B1 US8874833B1 US13/860,394 US201313860394A US8874833B1 US 8874833 B1 US8874833 B1 US 8874833B1 US 201313860394 A US201313860394 A US 201313860394A US 8874833 B1 US8874833 B1 US 8874833B1
- Authority
- US
- United States
- Prior art keywords
- data
- flash memory
- write
- memory
- sequential
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 35
- 238000004891 communication Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 9
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 239000003990 capacitor Substances 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100437784 Drosophila melanogaster bocks gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/72—Details relating to flash memory management
- G06F2212/7203—Temporary buffering, e.g. using volatile buffer or dedicated buffer blocks
Definitions
- NAND flash memory In conventional NAND flash memory, flash cells are organized into pages and pages are organized into blocks. Conventional NAND flash memory has some design limitations, such as having to write an entire page of cells to write a single flash cell. Further, if any of the flash cells in the page have previously been written, those flash cells have to be erased prior to writing. To erase those flash cells the entire block of pages containing those flash cells also has to be erased.
- writing to flash cells of NAND flash memory often involves copying data from every page of cells within a block to a buffer, erasing the entire block, modifying the data associated with the flash cells in the buffer, and writing every page of cells within the block. This does not permit good data throughput in many situations, especially those using random writes.
- a random write is a write of data to any randomly chosen location within the flash memory and often involves no more than a few bytes of data.
- a method comprises storing first data associated with a first write request in a write buffer that is separate from a flash memory, the first write request being configured to request that at least part of the first data be written to the flash memory, determining that the first data and second data associated with a second write request are sufficient for a sequential write to be performed to the flash memory, and performing a sequential write of the first data and the second data to the flash memory.
- a method comprises receiving a request to write first data to a flash memory, determining that the first data is not sufficient to be written through a sequential write, storing the first data in a write buffer that is separate from the flash memory until sufficient second data associated with one or more additional write requests is stored in the write buffer such that the sequential write is capable of being performed using the first and the second data, and performing the sequential write of the first and the second data to the flash memory in response to determining that the first and the second data are sufficient to perform the sequential write.
- a system comprising a flash-memory controller, a write buffer separate from a flash memory, and a write-buffer controller configured to cause the flash-memory controller to store first data associated with a first write request in the write buffer, the first write request configured to request that at least part of the first data be written to the flash memory, determine that the first data and second data associated with a second write request are sufficient for a sequential write to be performed to the flash memory, and perform a sequential write of the first data and the second data to the flash memory.
- FIG. 1 illustrates an operating environment in accordance with one or more embodiments.
- FIG. 2 illustrates a flash-controller system in accordance with one or more embodiments.
- FIG. 3 illustrates a method for improving flash-memory write performance by storing write requests in accordance with one or more embodiments.
- FIG. 4 illustrates a method for improving flash-memory write performance by determining that a write request is not sufficient for a complete sequential write in accordance with one or more embodiments.
- This disclosure describes apparatuses and techniques for making sequential writes to flash memory. In some cases this is accomplished using a write buffer to store random writes. The stored random writes are written to the flash memory when sufficient random writes are stored to perform a sequential write. Sequential writes are faster than random writes from a data throughput perspective. These techniques effectively increase the data throughput of flash memory by grouping multiple random writes into one sequential write.
- FIG. 1 illustrates an operating environment 100 having a flash-controller system 102 .
- Flash-controller system 102 is communicatively linked with computing device 104 through communication link 106 and with a flash memory 108 through communication link 110 .
- Link 106 and link 110 is each a wired communication link and/or a wireless communication link.
- Flash memory 108 may include multiple blocks of flash memory, such as NAND flash memory, and may be located within flash-controller system 102 .
- Flash-controller system 102 receives write requests 112 from computing device 104 . Each write request 112 describes data to be written to flash memory 108 . After multiple write requests 112 have been received, flash-controller system 102 performs a sequential write 114 having data from these write requests 112 . Sequential write 114 may be a partial or complete sequential write. A partial sequential write includes data that fills at least two bytes worth of cells in a block (but less than all of the cells in a block) of flash memory 108 . A complete sequential write includes data that fills all of the cells in a block of flash memory 108 .
- FIG. 2 illustrates an example of a detailed embodiment of flash-controller system 102 .
- Flash-controller system 102 includes a write buffer 200 to which flash-controller system 102 stores write requests 112 . After sufficient write requests 112 have been stored to enable sequential write 114 , flash-controller system 102 communicates sequential write 114 to flash memory 108 over communication link 110 .
- Flash-controller system 102 also includes flash-memory controller 202 , system connector 204 , storage connector(s) 206 , backup power-source 208 , backup flash-memory 210 , and, in this embodiment, flash memory 108 .
- Flash-memory controller 202 includes write-buffer controller 212 and power-failure-backup handler 214 .
- Write buffer 200 is a computer-readable-medium such as dynamic random access memory (DRAM) with a capacity that is a substantial percentage of the total space of flash memory 108 , such as twenty-five percent.
- Write-buffer controller 212 stores write requests 112 and data associated with the write requests 216 in write buffer 200 . This data associated with the write requests 216 is the data for which writing is being requested with the write requests 112 .
- Write-buffer controller 212 also stores metadata 218 in write buffer 200 .
- Metadata 218 includes information about data 216 .
- Metadata 218 can be used to track or organize data 216 using a data structure, such as a radix-tree data structure.
- Metadata 218 is updated to keep track of blocks of data in flash memory 108 that have been updated by write requests but which have not yet been written to flash memory 108 .
- metadata 218 is checked to see if the latest version (a most recently modified version) of the data is in write buffer 200 . If the data is in a block that is in data 216 , then the latest version of the data is in write buffer 200 (otherwise, the latest version of the data is not in write buffer 200 ). If the latest version of the data is in write buffer 200 , the data is read from write buffer 200 instead of from flash memory 108 .
- metadata 218 is updated to remove entries regarding the written data.
- Metadata 218 may also include another radix-tree type of data structure to arrange multiple write requests 112 into one sequential write 114 .
- Write-buffer controller 212 uses metadata 218 to translate logical-block-addressing (LBA) to physical-block-addressing (PBA) and write changed blocks to flash memory 108 in a log-structured manner.
- LBA logical-block-addressing
- PBA physical-block-addressing
- the same radix-tree data structure can be used for this address translation to track data changes.
- wear leveling and associated garbage collection can be handled in write buffer 200 , which is faster and allows flash memory 108 to be available for writing data.
- flash memory 108 may forgo space reserved for wear leveling and garbage collection.
- Power-failure-backup handler 214 detects when power to flash-controller system 102 is lost, and in response to detecting that power is lost backs up data 216 and metadata 218 to backup flash-memory 210 .
- Backup power-source 208 keeps flash-memory controller 202 , backup flash-memory 210 , and write buffer 200 powered while handler 214 performs a backup of data 216 and metadata 216 .
- Backup power-source 208 is an auxiliary battery or a temporary power-source, such as super capacitors.
- Super capacitors also known as electric double-layer capacitors, are electrochemical capacitors that have an unusually high energy density compared to that of common capacitors and usually operate at a lower working voltage.
- Backup flash-memory 210 is an area of flash memory reserved for backup of write buffer 200 . This reserved area of flash memory is located within flash memory 108 or in a separate flash memory mounted on or external to flash-controller system 102 . Power-failure-backup handler 214 also detects when power to flash-controller system 102 is subsequently restored, and in response to detecting that power has been restored restores data 216 and metadata 218 to write buffer 200 .
- System connector 204 connects to communication link 106 (e.g., is a Peripheral Component Interconnect Express “PCIe” connector).
- Storage connector 206 connects to communication link 110 .
- FIGS. 1 and/or 2 may be further divided, combined, and so on.
- Each of these entities can be hardware, software, firmware, or a combination thereof, and/or stored on computer-readable-media and executed by one or more processors (not shown).
- write-buffer controller 212 and power-failure-backup handler 214 can be software and/or firmware executed by flash-memory controller 202 or as driver software executed by computing device 104 .
- flash-controller system 102 can be implemented in different manners. Flash-controller system 102 can be a circuit board including various integrated circuits (ICs), a system-on-chip (SoC), or a device including multiple circuit boards. Furthermore, flash memory 108 can be included within flash-controller system 102 or as part of a separate flash-memory device. Flash-controller system 102 can be included as part of various different devices, such as part of a computing device, a portable flash-memory device, a video processing and/or rendering device, a television set-top box, or a gaming device.
- ICs integrated circuits
- SoC system-on-chip
- flash memory 108 can be included within flash-controller system 102 or as part of a separate flash-memory device. Flash-controller system 102 can be included as part of various different devices, such as part of a computing device, a portable flash-memory device, a video processing and/or rendering device, a television set-top box, or a gaming
- This disclosure describes techniques for improving flash memory write performance, such as by storing multiple writes into a sequential write.
- Two methods are illustrated below, aspects of which may be implemented in hardware, firmware, software, or a combination thereof. These methods are shown as a set of acts that specify operations performed by one or more entities and are not necessarily limited to the order shown.
- FIG. 3 illustrates a method 300 for improving flash-memory write performance.
- data associated with a write request is stored in a write buffer that is separate from a flash memory.
- write-buffer controller 212 stores data 216 in write buffer 200 .
- Write buffer 200 also contains additional data from other write requests, such as from prior iterations of operation 302 .
- the data and additional data associated with one or more additional write requests are determined to be sufficient for a sequential write to be performed on the flash memory.
- write-buffer controller 212 determines, using metadata 218 , that enough data 216 has been stored to enable a sequential write 114 to be performed on flash memory 108 .
- Data associated with two writes that affect cells in a same block but not all cells in the block is sufficient to perform a partial sequential write, which enables better performance than performing the writes separately.
- Data associated with two or more writes that affect all cells in a block is sufficient to perform a complete sequential write.
- a sequential write of the first data and the second data is performed on the flash memory.
- write-buffer controller 212 performs a sequential write 114 of at least a portion of data 216 to flash memory 108 . This portion of data 216 is then removed from write buffer 200 and metadata 218 is updated.
- the sequential write may be a partial or complete sequential write.
- the sequential write at 306 is performed in response to there being sufficient data for a sequential write (for a partial sequential or for a complete sequential write). In other embodiments, the sequential write at 306 is performed more or less often and based on other factors.
- write-buffer controller 212 may be configured to determine when write buffer 200 is full or nearly full (e.g., in danger of becoming full such as by at least a threshold amount of buffer 200 being filled). In response to this determination write-buffer controller 212 performs a sequential write.
- a block of data in flash memory 108 may have pending write requests 112 stored within write buffer 200 , for instance.
- Write buffer controller 212 combines these write requests 112 into a partial sequential write request. This partial sequential write writes to a block of cells but does not contain data sufficient to write to every cell in the block. The corresponding area of write buffer 200 is freed up for further use. If no combination of write requests is found, a single write request may be performed.
- Write-buffer controller 212 may use metadata 218 to select which portions of data 216 to be written through partial sequential writes. For example, a block of data in flash memory 108 having more pending write requests 112 stored within write buffer 200 is selected for a partial sequential write before a block of data in flash memory 108 having fewer pending write requests 112 stored within write buffer 200 is selected for a partial sequential write.
- write buffer controller 212 is configured, in some embodiments, to monitor the rate at which data is incoming via write requests 112 . If the incoming data rate is low, write buffer controller 212 performs complete or partial sequential writes or single writes because they do not impact (or impact very little) overall data throughput. During this period of low incoming data rate, write buffer controller 212 may also pre-erase blocks of data in flash memory 108 for later use.
- flash-memory controller 202 By storing random-write requests in write buffer 200 , flash-memory controller 202 becomes immediately available to handle the next incoming write requests. This allows the incoming write requests to continue at a higher rate than if flash-memory controller 202 waits for each write request to be performed prior to handling the next request. This in turn improves overall data throughput.
- conventional NAND flash memory employs wear leveling techniques that shift data being written to blocks with lower cycle counts (the number of times the block of cells has been written). For random writes this wear-leveling leaves behind invalid data that is later cleaned up through a process known as garbage collection. Garbage collection copies valid data from a block and then erases the block freeing it for later use. If the NAND flash memory is performing garbage collection it is not immediately available for responding to write requests. This results in additional write performance degradation. Wear leveling also oftentimes requires a particular amount (e.g., approximately twenty-five percent) of the storage space of the flash memory to be reserved for garbage collection purposes.
- write buffer controller 212 is configured to translate logical-block-addressing (LBA) to physical-block-addressing (PBA) and write changed blocks to flash memory 108 in a log-structured manner. This allows write buffer controller 212 to maintain a record of how often blocks have been written (explicitly or relative to other bocks in flash memory 108 ). By writing back the data in a log-structured manner, wear leveling and associated garbage collection can be handled in write buffer 200 , which is both faster and allows flash memory 108 to be available for writing data. For example, based on this record, write buffer controller 212 can determine which blocks of flash memory 108 to write to and/or for which blocks of flash memory 108 garbage collection is to be performed. Furthermore, flash memory 108 may forgo space reserved for wear leveling and garbage collection so that a particular amount of the storage space of the flash memory need not be reserved for garbage collection purposes.
- LBA logical-block-addressing
- PBA physical-block-addressing
- FIG. 4 illustrates an example of a method 400 for improving flash-memory write performance.
- a request to write data to a flash memory is received.
- write-buffer controller 212 receives a write request 112 to write data to flash memory 108 .
- the data is not sufficient to be written through a complete sequential write, such as by write-buffer controller 212 .
- the data requested to be written may not be sufficient to fill an entire block of cells in flash memory 108 .
- the data is stored in a write buffer that is separate from the flash memory.
- the data is stored until sufficient additional data associated with one or more other write requests is stored in the write buffer such that a sequential write is capable of being performed using the data received at 402 and the additional data associated with one or more other write requests.
- write-buffer controller 212 stores the data in write buffer 200 as part of data 216 .
- Metadata 218 is updated to account for this change to data 216 .
- write-buffer controller 212 determines that the data received at 402 and the additional data associated with one or more other write requests is stored in write buffer 200 .
- a sequential write of the data and additional data is performed on the flash memory.
- the sequential write is performed in response to determining that sufficient data and additional data are stored in the write buffer such that a sequential write is capable of being performed. For example, at 410 , once enough data 216 is stored sufficient to fill a new block of cells or to modify an existing block of cells, write-buffer controller 212 performs sequential write 114 on flash memory 108 .
- the sequential write may be partial or complete.
- method 400 uses a partial sequential write rather than a complete sequential write.
- Operation 404 may determine that the data is not sufficient to be written until some threshold percentage of an entire block of cells has been written to. This percentage can be modified depending on throughput requirements or a current rate of incoming write requests. If a current rate of incoming write requests goes up, the percentage increases. If the current rate goes down, the percentage decreases.
- One or more of the techniques described above can be performed by one or more programmable processors executing a computer program to perform functions by operating on input data and generating output.
- the techniques can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment containing both hardware and software components.
- the methods are implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
- the methods can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system.
- a computer-usable or computer-readable medium can be any apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
- the medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium.
- Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk.
- Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
Abstract
Description
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/860,394 US8874833B1 (en) | 2009-03-23 | 2013-04-10 | Sequential writes to flash memory |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16257109P | 2009-03-23 | 2009-03-23 | |
US16903509P | 2009-04-14 | 2009-04-14 | |
US12/726,310 US8423710B1 (en) | 2009-03-23 | 2010-03-17 | Sequential writes to flash memory |
US13/860,394 US8874833B1 (en) | 2009-03-23 | 2013-04-10 | Sequential writes to flash memory |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/726,310 Continuation US8423710B1 (en) | 2009-03-23 | 2010-03-17 | Sequential writes to flash memory |
Publications (1)
Publication Number | Publication Date |
---|---|
US8874833B1 true US8874833B1 (en) | 2014-10-28 |
Family
ID=48049274
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/726,310 Active 2031-04-17 US8423710B1 (en) | 2009-03-23 | 2010-03-17 | Sequential writes to flash memory |
US13/860,394 Active US8874833B1 (en) | 2009-03-23 | 2013-04-10 | Sequential writes to flash memory |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/726,310 Active 2031-04-17 US8423710B1 (en) | 2009-03-23 | 2010-03-17 | Sequential writes to flash memory |
Country Status (1)
Country | Link |
---|---|
US (2) | US8423710B1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070451B1 (en) | 2008-04-11 | 2015-06-30 | Marvell International Ltd. | Modifying data stored in a multiple-write flash memory cell |
US20170337152A1 (en) * | 2016-05-17 | 2017-11-23 | Microsemi Storage Solutions (U.S.), Inc. | Port mirroring for peripheral component interconnect express devices |
US20170344506A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Qos-aware io management for pcie storage system with reconfigurable multi-ports |
US20170344510A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Storage system, method, and apparatus for fast io on pcie devices |
US10001924B2 (en) | 2016-03-07 | 2018-06-19 | HGST Netherlands B.V. | Efficient and dynamically sized reverse map to handle variable size data |
CN109582222A (en) * | 2018-10-31 | 2019-04-05 | 华中科技大学 | A kind of method for cleaning persistently cached in host perception watt recording disc |
US10269421B2 (en) | 2016-11-30 | 2019-04-23 | Sandisk Technologies Llc | Latch caching of sequential data |
US10304539B2 (en) | 2015-09-24 | 2019-05-28 | Samsung Electronics Co., Ltd. | Method of performing a write operation based on an idle time |
US10853277B2 (en) * | 2015-06-24 | 2020-12-01 | Intel Corporation | Systems and methods for isolating input/output computing resources |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571287B2 (en) | 2003-03-13 | 2009-08-04 | Marvell World Trade Ltd. | Multiport memory architecture, devices and systems including the same, and methods of using the same |
CN101715575A (en) | 2006-12-06 | 2010-05-26 | 弗森多系统公司(dba弗森-艾奥) | Adopt device, the system and method for data pipe management data |
US8688947B1 (en) | 2007-11-21 | 2014-04-01 | Marvell International Ltd. | Aligned data access |
US8683085B1 (en) | 2008-05-06 | 2014-03-25 | Marvell International Ltd. | USB interface configurable for host or device mode |
US8423710B1 (en) | 2009-03-23 | 2013-04-16 | Marvell International Ltd. | Sequential writes to flash memory |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
EP2476039B1 (en) | 2009-09-09 | 2016-10-26 | SanDisk Technologies LLC | Apparatus, system, and method for power reduction management in a storage device |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
US9218278B2 (en) | 2010-12-13 | 2015-12-22 | SanDisk Technologies, Inc. | Auto-commit memory |
EP2652623B1 (en) * | 2010-12-13 | 2018-08-01 | SanDisk Technologies LLC | Apparatus, system, and method for auto-commit memory |
US9047178B2 (en) | 2010-12-13 | 2015-06-02 | SanDisk Technologies, Inc. | Auto-commit memory synchronization |
US9208071B2 (en) * | 2010-12-13 | 2015-12-08 | SanDisk Technologies, Inc. | Apparatus, system, and method for accessing memory |
US10817502B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent memory management |
US10817421B2 (en) | 2010-12-13 | 2020-10-27 | Sandisk Technologies Llc | Persistent data structures |
US8615640B2 (en) * | 2011-03-17 | 2013-12-24 | Lsi Corporation | System and method to efficiently schedule and/or commit write data to flash based SSDs attached to an array controller |
US11249652B1 (en) | 2013-01-28 | 2022-02-15 | Radian Memory Systems, Inc. | Maintenance of nonvolatile memory on host selected namespaces by a common memory controller |
US9652376B2 (en) | 2013-01-28 | 2017-05-16 | Radian Memory Systems, Inc. | Cooperative flash memory control |
US9348518B2 (en) | 2014-07-02 | 2016-05-24 | International Business Machines Corporation | Buffered automated flash controller connected directly to processor memory bus |
KR102249810B1 (en) | 2014-07-23 | 2021-05-11 | 삼성전자주식회사 | Storage device and operating method of storage device |
US9542284B2 (en) | 2014-08-06 | 2017-01-10 | International Business Machines Corporation | Buffered automated flash controller connected directly to processor memory bus |
US10552085B1 (en) | 2014-09-09 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for directed data migration |
US9542118B1 (en) | 2014-09-09 | 2017-01-10 | Radian Memory Systems, Inc. | Expositive flash memory control |
US20170123721A1 (en) * | 2015-10-28 | 2017-05-04 | Sandisk Technologies Inc. | System and method for utilization of a data buffer by command completion in parts |
US9880783B2 (en) | 2015-10-28 | 2018-01-30 | Sandisk Technologies Llc | System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller |
JP6444917B2 (en) * | 2016-03-08 | 2018-12-26 | 東芝メモリ株式会社 | Storage system, information processing system, and control method |
US11586385B1 (en) | 2020-05-06 | 2023-02-21 | Radian Memory Systems, Inc. | Techniques for managing writes in nonvolatile memory |
US11482292B1 (en) | 2021-06-23 | 2022-10-25 | Western Digital Technologies, Inc. | Non-volatile storage with processive writes |
US11816349B2 (en) * | 2021-11-03 | 2023-11-14 | Western Digital Technologies, Inc. | Reduce command latency using block pre-erase |
Citations (148)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4611299A (en) | 1982-02-22 | 1986-09-09 | Hitachi, Ltd. | Monolithic storage device |
US4823340A (en) | 1986-12-05 | 1989-04-18 | Ant Nachrichtentechnik Gmbh | Circuit arrangement for non-blocking switching of PCM channels in the space and time domain |
US5260905A (en) | 1990-09-03 | 1993-11-09 | Matsushita Electric Industrial Co., Ltd. | Multi-port memory |
US5307343A (en) | 1989-11-30 | 1994-04-26 | Italtel Societa Italiana Telecommunicazioni S.P.A. | Basic element for the connection network of a fast packet switching node |
US5440523A (en) | 1993-08-19 | 1995-08-08 | Multimedia Communications, Inc. | Multiple-port shared memory interface and associated method |
US5680595A (en) | 1995-06-07 | 1997-10-21 | Micron Technology, Inc. | Programmable data port clocking system for clocking a plurality of data ports with a plurality of clocking signals in an asynchronous transfer mode system |
US5701517A (en) | 1994-12-22 | 1997-12-23 | Cirrus Logic, Inc. | Pipelined alignment shifter and method for universal bit field boundary alignment |
US5719890A (en) | 1995-06-01 | 1998-02-17 | Micron Technology, Inc. | Method and circuit for transferring data with dynamic parity generation and checking scheme in multi-port DRAM |
US5802131A (en) | 1995-09-28 | 1998-09-01 | Micro Technology, Inc. | Multiport serial access self-queuing memory switch |
US5815447A (en) | 1996-08-08 | 1998-09-29 | Micron Technology, Inc. | Memory device having complete row redundancy |
US5864504A (en) | 1995-11-17 | 1999-01-26 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory with temperature compensation for read/verify referencing scheme |
US5875470A (en) | 1995-09-28 | 1999-02-23 | International Business Machines Corporation | Multi-port multiple-simultaneous-access DRAM chip |
US5953340A (en) | 1995-07-12 | 1999-09-14 | Compaq Computer Corporation | Adaptive networking system |
US5996051A (en) | 1997-04-14 | 1999-11-30 | Advanced Micro Devices, Inc. | Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
FR2779843A1 (en) | 1998-06-16 | 1999-12-17 | Busless Computers | Serial multi port memory component comprising RAM memory bank assemblies for use in computer |
US6016273A (en) | 1989-02-06 | 2000-01-18 | Hitachi, Ltd. | Nonvolatile semiconductor memory device |
US6021086A (en) | 1993-08-19 | 2000-02-01 | Mmc Networks, Inc. | Memory interface unit, shared memory switch system and associated method |
US6034957A (en) | 1997-08-29 | 2000-03-07 | Extreme Networks, Inc. | Sliced comparison engine architecture and method for a LAN switch |
US6067301A (en) | 1998-05-29 | 2000-05-23 | Cabletron Systems, Inc. | Method and apparatus for forwarding packets from a plurality of contending queues to an output |
US6115389A (en) | 1998-04-17 | 2000-09-05 | Advanced Micro Devices, Inc. | Auto-negotiation for multiple ports using shared logic |
US6160814A (en) | 1997-05-31 | 2000-12-12 | Texas Instruments Incorporated | Distributed shared-memory packet switch |
US6167491A (en) | 1994-09-01 | 2000-12-26 | Mcalpine; Gary L. | High performance digital electronic system architecture and memory circuit therefor |
US6216205B1 (en) | 1998-05-21 | 2001-04-10 | Integrated Device Technology, Inc. | Methods of controlling memory buffers having tri-port cache arrays therein |
US6230191B1 (en) | 1998-10-05 | 2001-05-08 | Alcatel Internetworking (Pe), Inc. | Method and apparatus for regulating the amount of buffer memory requested by a port in a multi-port switching device with shared buffer memory |
US20010003198A1 (en) | 1999-11-30 | 2001-06-07 | Chung-Che Wu | Method for timing setting of a system memory |
US20010036116A1 (en) | 1999-04-16 | 2001-11-01 | Takashi Kubo | Semiconductor memory device capable of high speed input/output of wide bandwidth data by improving usage efficiency of external data bus |
US6370624B1 (en) | 1998-02-27 | 2002-04-09 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US20020116584A1 (en) | 2000-12-20 | 2002-08-22 | Intel Corporation | Runahead allocation protection (rap) |
US6446173B1 (en) | 1997-09-17 | 2002-09-03 | Sony Corporation | Memory controller in a multi-port bridge for a local area network |
US6487207B1 (en) | 1997-02-26 | 2002-11-26 | Micron Technology, Inc. | Shared buffer memory architecture for asynchronous transfer mode switching and multiplexing technology |
US6535963B1 (en) | 1999-06-30 | 2003-03-18 | Cisco Technology, Inc. | Memory apparatus and method for multicast devices |
US6535939B1 (en) | 1999-11-09 | 2003-03-18 | International Business Machines Corporation | Dynamically configurable memory bus and scalability ports via hardware monitored bus utilizations |
US6539467B1 (en) | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
US6539488B1 (en) | 1999-11-30 | 2003-03-25 | Agere Systems Inc. | System with a plurality of media access control circuits with a shared memory for storing data and synchronizing data from a clock domain to a host clock domain |
US6567304B1 (en) | 2002-05-09 | 2003-05-20 | Matrix Semiconductor, Inc | Memory device and method for reliably reading multi-bit data from a write-many memory cell |
US20030154314A1 (en) | 2002-02-08 | 2003-08-14 | I/O Integrity, Inc. | Redirecting local disk traffic to network attached storage |
US6615324B1 (en) | 2000-01-07 | 2003-09-02 | Cygnal Integrated Products, Inc. | Embedded microprocessor multi-level security system in flash memory |
US6618390B1 (en) | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
US20040027901A1 (en) | 2002-06-18 | 2004-02-12 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US6712704B2 (en) | 1999-04-08 | 2004-03-30 | Nintendo Of America Inc. | Security system for video game system with hard disk drive and internet access capability |
US6714643B1 (en) | 2000-02-24 | 2004-03-30 | Siemens Information & Communication Networks, Inc. | System and method for implementing wait time estimation in automatic call distribution queues |
US6717847B2 (en) | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US6732184B1 (en) | 2000-01-31 | 2004-05-04 | Advanced Micro Devices, Inc. | Address table overflow management in a network switch |
US6735773B1 (en) | 1998-06-27 | 2004-05-11 | Intel Corporation | Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs |
US20040093389A1 (en) | 2002-11-12 | 2004-05-13 | Microsoft Corporation | Light weight file I/O over system area networks |
US20040098556A1 (en) | 2001-10-29 | 2004-05-20 | Buxton Mark J. | Superior misaligned memory load and copy using merge hardware |
US6741589B1 (en) | 2000-01-24 | 2004-05-25 | Advanced Micro Devices, Inc. | Apparatus and method for storing data segments in a multiple network switch system using a memory pool |
US6785272B1 (en) | 1999-06-24 | 2004-08-31 | Allied Telesyn, Inc. | Intelligent stacked switching system |
US20040193774A1 (en) | 2001-07-27 | 2004-09-30 | Kazuya Iwata | Flash memory apparatus and method for merging data stored in the same |
US20040199734A1 (en) | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
US20040202192A9 (en) | 1999-08-17 | 2004-10-14 | Galbi Duane E. | Method for automatic resource reservation and communication that facilitates using multiple processing events for a single processing task |
JP2004288355A (en) | 2003-03-13 | 2004-10-14 | Marvell World Trade Ltd | Multiport memory architecture, device, system, and method |
US20050008011A1 (en) | 2003-07-09 | 2005-01-13 | International Business Machines Corporation | Method and system of data transfer for efficient memory utilization |
US6876702B1 (en) | 1998-10-13 | 2005-04-05 | Stmicroelectronics Asia Pacific (Pte) Ltd. | Motion vector detection with local motion estimator |
US6886120B2 (en) | 2001-06-07 | 2005-04-26 | Oki Electric Industry Co., Ltd. | Memory control circuit |
US20050268001A1 (en) | 2004-05-26 | 2005-12-01 | Arm Limited | Management of polling loops in a data processing apparatus |
US20060010304A1 (en) | 2003-08-19 | 2006-01-12 | Stmicroelectronics Limited | Systems for loading unaligned words and methods of operating the same |
US20060031628A1 (en) | 2004-06-03 | 2006-02-09 | Suman Sharma | Buffer management in a network device without SRAM |
US20060075144A1 (en) | 2004-09-24 | 2006-04-06 | International Business Machines Corp. | Remote access to a local hard drive |
US7038950B1 (en) | 2004-11-05 | 2006-05-02 | Spansion Llc | Multi bit program algorithm |
US20060106962A1 (en) | 2004-11-17 | 2006-05-18 | Woodbridge Nancy G | USB On-The-Go implementation |
US7068651B2 (en) | 2000-06-02 | 2006-06-27 | Computer Network Technology Corporation | Fibre channel address adaptor having data buffer extension and address mapping in a fibre channel switch |
US7076631B2 (en) | 2003-04-14 | 2006-07-11 | Adtran, Inc. | Mechanism for on-the-fly handling of unaligned memory accesses |
US7075827B2 (en) | 2000-01-07 | 2006-07-11 | Nippon Telegraph And Telephone Corporation | Function reconfigurable semiconductor device and integrated circuit configuring the semiconductor device |
US7099325B1 (en) | 2001-05-10 | 2006-08-29 | Advanced Micro Devices, Inc. | Alternately accessed parallel lookup tables for locating information in a packet switched network |
US7130308B2 (en) | 1997-08-29 | 2006-10-31 | Extreme Networks, Inc. | Data path architecture for a LAN switch |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7149834B2 (en) | 2001-08-22 | 2006-12-12 | General Atomics | Wireless device attachment and detachment system, apparatus and method |
US20060288153A1 (en) | 2005-06-21 | 2006-12-21 | Katsuya Tanaka | Storage system using flash memory |
US20060288188A1 (en) | 2005-06-17 | 2006-12-21 | Intel Corporation | Translating a string operation |
US20070002880A1 (en) | 2005-07-01 | 2007-01-04 | Chih-Feng Chien | Method and device for flexible buffering in networking system |
US7185132B2 (en) | 2004-09-17 | 2007-02-27 | Via Technologies, Inc. | USB controller with intelligent transmission mode switching function and the operating method thereof |
US7197591B2 (en) | 2004-06-30 | 2007-03-27 | Intel Corporation | Dynamic lane, voltage and frequency adjustment for serial interconnect |
US20070176939A1 (en) | 2006-01-30 | 2007-08-02 | Ati Technologies, Inc. | Data replacement method and circuit for motion prediction cache |
US7274611B2 (en) | 2001-12-12 | 2007-09-25 | Micron Technology, Inc. | Method and architecture to calibrate read operations in synchronous flash memory |
US20070229503A1 (en) | 2006-03-30 | 2007-10-04 | Ati Technologies | Method of and system for non-uniform image enhancement |
US20070271609A1 (en) | 2006-05-18 | 2007-11-22 | Phison Electronics Corp. | Security system of flash memory and method thereof |
US20070283086A1 (en) * | 2006-06-06 | 2007-12-06 | Seagate Technology Llc | Write caching random data and sequential data simultaneously |
US7313019B2 (en) | 2004-12-21 | 2007-12-25 | Intel Corporation | Step voltage generation |
US7329136B2 (en) | 2005-03-04 | 2008-02-12 | Behavior Tech Computer Corp. | Bi-directional electronic device with USB interface |
US7334072B1 (en) | 2002-09-27 | 2008-02-19 | Cypress Semiconductor Corporation | System, method and apparatus for extending distances between wired or wireless USB devices and a USB host |
JP4061094B2 (en) | 2002-03-15 | 2008-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Speech recognition apparatus, speech recognition method and program thereof |
US7356676B2 (en) | 2002-08-09 | 2008-04-08 | Marvell International Ltd. | Extracting aligned data from two source registers without shifting by executing coprocessor instruction with mode bit for deriving offset from immediate or register |
US7359997B2 (en) | 2003-06-06 | 2008-04-15 | Seiko Epson Corporation | USB data transfer control device including first and second USB device wherein destination information about second device is sent by first device |
US20080094897A1 (en) | 2006-10-23 | 2008-04-24 | Samsung Electronics Co. Ltd. | Non-volatile semiconductor memory device and method for recovering data in non-volatile semiconductor memory device |
US20080147978A1 (en) | 2006-12-15 | 2008-06-19 | Microchip Technology Incorporated | Configurable Cache for a Microprocessor |
US20080148083A1 (en) | 2006-12-15 | 2008-06-19 | Microchip Technology Incorporated | Direct Memory Access Controller |
US20080175055A1 (en) | 2006-12-27 | 2008-07-24 | Hynix Semiconductor Inc. | Non-volatile memory device and self-compensation method thereof |
US7411830B2 (en) | 2005-01-13 | 2008-08-12 | Kabushiki Kaisha Toshiba | Nonvolatile memory cell having current compensated for temperature dependency and data read method thereof |
US20080195801A1 (en) | 2007-02-13 | 2008-08-14 | Cheon Won-Moon | Method for operating buffer cache of storage device including flash memory |
US20080215773A1 (en) | 2006-12-22 | 2008-09-04 | Wiquest Communications, Inc. | Enhanced wireless usb protocol |
US20080215774A1 (en) | 2007-01-26 | 2008-09-04 | Hae Jin Kim | Wireless Universal Serial Bus Dual Role Device |
US20080256282A1 (en) | 2007-04-16 | 2008-10-16 | Zhendong Guo | Calibration of Read/Write Memory Access via Advanced Memory Buffer |
US20080270679A1 (en) | 2007-04-24 | 2008-10-30 | Hynix Semiconductor Inc. | Control circuit of flash memory device and method of operating the flash memory device |
US20080265838A1 (en) | 2007-04-24 | 2008-10-30 | Saurabh Garg | Battery charging using a USB-ID pin of a USB interface |
US7447824B2 (en) | 2005-10-26 | 2008-11-04 | Hewlett-Packard Development Company, L.P. | Dynamic lane management system and method |
US7451280B2 (en) | 2002-11-22 | 2008-11-11 | Qst Holdings, Llc | External memory controller node |
US20080294951A1 (en) | 2007-05-01 | 2008-11-27 | Ahmad Mustafa S | Methods and devices for testing computer memory |
US7463528B2 (en) | 2006-06-16 | 2008-12-09 | Sandisk Corporation | Temperature compensation of select gates in non-volatile memory |
US7467253B2 (en) | 2006-04-13 | 2008-12-16 | Sandisk Corporation | Cycle count storage systems |
US7469311B1 (en) | 2003-05-07 | 2008-12-23 | Nvidia Corporation | Asymmetrical bus |
US20080320189A1 (en) | 2007-06-25 | 2008-12-25 | Arssov Paul Plamen | Simple Serial Interface - method of communication and information exchange, and electronic devices based on this method. |
US7478188B2 (en) | 2006-06-02 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | System and method for connecting a WUSB device to multiple WUSB hosts |
US7480757B2 (en) | 2006-05-24 | 2009-01-20 | International Business Machines Corporation | Method for dynamically allocating lanes to a plurality of PCI Express connectors |
US7480808B2 (en) | 2004-07-16 | 2009-01-20 | Ati Technologies Ulc | Method and apparatus for managing power consumption relating to a differential serial communication link |
US7496707B2 (en) | 2006-08-22 | 2009-02-24 | International Business Machines Corporation | Dynamically scalable queues for performance driven PCI express memory traffic |
US7499343B2 (en) | 2006-09-29 | 2009-03-03 | Hynix Semiconductor Inc. | Data alignment circuit and alignment method for semiconductor memory device |
US20090067511A1 (en) | 2007-09-07 | 2009-03-12 | Jeff Wei | Method of generating a blockiness indicator for a video signal |
US20090113166A1 (en) | 2007-10-31 | 2009-04-30 | Agere Systems Inc. | Hashing method for nand flash memory |
US20090122610A1 (en) | 2007-11-14 | 2009-05-14 | Kobi Danon | Operation of a non-volatile memory array |
US7536490B2 (en) | 2006-07-20 | 2009-05-19 | Via Technologies, Inc. | Method for link bandwidth management |
US20090132770A1 (en) | 2007-11-20 | 2009-05-21 | Solid State System Co., Ltd | Data Cache Architecture and Cache Algorithm Used Therein |
US7539809B2 (en) | 2005-08-19 | 2009-05-26 | Dell Products L.P. | System and method for dynamic adjustment of an information handling systems graphics bus |
US7542350B2 (en) | 2006-10-20 | 2009-06-02 | Samsung Electronics Co., Ltd. | Methods of restoring data in flash memory devices and related flash memory device memory systems |
US20090150599A1 (en) | 2005-04-21 | 2009-06-11 | Bennett Jon C R | Method and system for storage of data in non-volatile media |
US20090154000A1 (en) * | 2007-12-13 | 2009-06-18 | Kabushiki Kaisha Toshiba | Method and apparatus for writing data with sequential access in a disk drive |
US20090200982A1 (en) | 2008-02-13 | 2009-08-13 | Active-Semi International, Inc. | USB port with smart power management |
US7583600B1 (en) | 2005-09-07 | 2009-09-01 | Sun Microsytems, Inc. | Schedule prediction for data link layer packets |
US20090228739A1 (en) | 2007-11-25 | 2009-09-10 | Itzic Cohen | Recovery while programming non-volatile memory (nvm) |
US7599221B2 (en) | 2007-03-30 | 2009-10-06 | Nec Electronics Corporation | Floating gate memory device with improved reference current generation |
US7606960B2 (en) | 2004-03-26 | 2009-10-20 | Intel Corporation | Apparatus for adjusting a clock frequency of a variable speed bus |
US7613045B2 (en) | 2007-11-26 | 2009-11-03 | Sandisk Il, Ltd. | Operation sequence and commands for measuring threshold voltage distribution in memory |
US20090273975A1 (en) | 2007-05-02 | 2009-11-05 | Micron Technology, Inc. | Non-volatile multilevel memory cells with data read of reference cells |
US7624221B1 (en) | 2005-08-01 | 2009-11-24 | Nvidia Corporation | Control device for data stream optimizations in a link interface |
US20090300260A1 (en) | 2008-05-28 | 2009-12-03 | Rambus Inc. | Selective switching of a memory bus |
US7649539B2 (en) | 2004-03-10 | 2010-01-19 | Microsoft Corporation | Image formats for video capture, processing and display |
US20100027350A1 (en) | 2006-04-05 | 2010-02-04 | Ashot Melik-Martirosian | Flash memory programming and verification with reduced leakage current |
US7660925B2 (en) | 2007-04-17 | 2010-02-09 | International Business Machines Corporation | Balancing PCI-express bandwidth |
US7685322B2 (en) | 2006-02-28 | 2010-03-23 | Microsoft Corporation | Port number emulation for wireless USB connections |
US7689753B2 (en) | 2006-05-02 | 2010-03-30 | Samsung Electronics Co., Ltd. | Method of operating wireless USB apparatus by receiving operation state information and wireless USB apparatus using the same |
US7734874B2 (en) | 2004-10-06 | 2010-06-08 | Thomson Licensing | Method and system for caching data using future access request information |
US7752342B2 (en) | 2002-09-24 | 2010-07-06 | Nxp B.V. | Interface integrated circuit device for a USB connection |
US7822955B2 (en) | 2003-01-21 | 2010-10-26 | Arm Limited | Data processing apparatus and method for utilizing endianess independent data values |
US7903462B1 (en) | 2008-04-04 | 2011-03-08 | Link A Media Devices Corporation | E/P durability by using a sub-range of a full programming range |
US7941590B2 (en) | 2006-11-06 | 2011-05-10 | Marvell World Trade Ltd. | Adaptive read and write systems and methods for memory cells |
US7949817B1 (en) | 2007-07-31 | 2011-05-24 | Marvell International Ltd. | Adaptive bus profiler |
US8127104B1 (en) | 2007-08-06 | 2012-02-28 | Marvell International Ltd. | Alignment matrix memory copy |
US8131915B1 (en) | 2008-04-11 | 2012-03-06 | Marvell Intentional Ltd. | Modifying or overwriting data stored in flash memory |
US8154919B2 (en) | 2009-02-06 | 2012-04-10 | Hynix Semiconductor Inc. | Method of reading nonvolatile memory device and nonvolatile memory device for implementing the method |
US8213228B1 (en) | 2008-11-06 | 2012-07-03 | Marvell International Ltd. | Flash memory read performance |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
US8234425B1 (en) | 2007-06-27 | 2012-07-31 | Marvell International Ltd. | Arbiter module |
JP5047174B2 (en) | 2005-08-04 | 2012-10-10 | ザ・ボーイング・カンパニー | Fuel consumption data tracking / collection and aircraft route optimization |
US8423710B1 (en) | 2009-03-23 | 2013-04-16 | Marvell International Ltd. | Sequential writes to flash memory |
US8688922B1 (en) | 2010-03-11 | 2014-04-01 | Marvell International Ltd | Hardware-supported memory management |
US8688947B1 (en) | 2007-11-21 | 2014-04-01 | Marvell International Ltd. | Aligned data access |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
-
2010
- 2010-03-17 US US12/726,310 patent/US8423710B1/en active Active
-
2013
- 2013-04-10 US US13/860,394 patent/US8874833B1/en active Active
Patent Citations (162)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4611299A (en) | 1982-02-22 | 1986-09-09 | Hitachi, Ltd. | Monolithic storage device |
US4823340A (en) | 1986-12-05 | 1989-04-18 | Ant Nachrichtentechnik Gmbh | Circuit arrangement for non-blocking switching of PCM channels in the space and time domain |
US6016273A (en) | 1989-02-06 | 2000-01-18 | Hitachi, Ltd. | Nonvolatile semiconductor memory device |
US5307343A (en) | 1989-11-30 | 1994-04-26 | Italtel Societa Italiana Telecommunicazioni S.P.A. | Basic element for the connection network of a fast packet switching node |
US5260905A (en) | 1990-09-03 | 1993-11-09 | Matsushita Electric Industrial Co., Ltd. | Multi-port memory |
US5440523A (en) | 1993-08-19 | 1995-08-08 | Multimedia Communications, Inc. | Multiple-port shared memory interface and associated method |
US6021086A (en) | 1993-08-19 | 2000-02-01 | Mmc Networks, Inc. | Memory interface unit, shared memory switch system and associated method |
US6167491A (en) | 1994-09-01 | 2000-12-26 | Mcalpine; Gary L. | High performance digital electronic system architecture and memory circuit therefor |
US5701517A (en) | 1994-12-22 | 1997-12-23 | Cirrus Logic, Inc. | Pipelined alignment shifter and method for universal bit field boundary alignment |
US5719890A (en) | 1995-06-01 | 1998-02-17 | Micron Technology, Inc. | Method and circuit for transferring data with dynamic parity generation and checking scheme in multi-port DRAM |
US6081528A (en) | 1995-06-01 | 2000-06-27 | Micron Technology, Inc. | Shared buffer memory architecture for asynchronous transfer mode switching and multiplexing technology |
JPH10506776A (en) | 1995-06-01 | 1998-06-30 | マイクロン・テクノロジー・インコーポレーテッド | Data transfer in multiport DRAM |
US5778007A (en) | 1995-06-01 | 1998-07-07 | Micron Technology, Inc. | Method and circuit for transferring data with dynamic parity generation and checking scheme in multi-port DRAM |
US5680595A (en) | 1995-06-07 | 1997-10-21 | Micron Technology, Inc. | Programmable data port clocking system for clocking a plurality of data ports with a plurality of clocking signals in an asynchronous transfer mode system |
US5953340A (en) | 1995-07-12 | 1999-09-14 | Compaq Computer Corporation | Adaptive networking system |
US5802131A (en) | 1995-09-28 | 1998-09-01 | Micro Technology, Inc. | Multiport serial access self-queuing memory switch |
US5875470A (en) | 1995-09-28 | 1999-02-23 | International Business Machines Corporation | Multi-port multiple-simultaneous-access DRAM chip |
US5864504A (en) | 1995-11-17 | 1999-01-26 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory with temperature compensation for read/verify referencing scheme |
US5815447A (en) | 1996-08-08 | 1998-09-29 | Micron Technology, Inc. | Memory device having complete row redundancy |
US6487207B1 (en) | 1997-02-26 | 2002-11-26 | Micron Technology, Inc. | Shared buffer memory architecture for asynchronous transfer mode switching and multiplexing technology |
US5996051A (en) | 1997-04-14 | 1999-11-30 | Advanced Micro Devices, Inc. | Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array |
US6160814A (en) | 1997-05-31 | 2000-12-12 | Texas Instruments Incorporated | Distributed shared-memory packet switch |
US6000006A (en) | 1997-08-25 | 1999-12-07 | Bit Microsystems, Inc. | Unified re-map and cache-index table with dual write-counters for wear-leveling of non-volatile flash RAM mass storage |
US7130308B2 (en) | 1997-08-29 | 2006-10-31 | Extreme Networks, Inc. | Data path architecture for a LAN switch |
US6034957A (en) | 1997-08-29 | 2000-03-07 | Extreme Networks, Inc. | Sliced comparison engine architecture and method for a LAN switch |
US6446173B1 (en) | 1997-09-17 | 2002-09-03 | Sony Corporation | Memory controller in a multi-port bridge for a local area network |
US6370624B1 (en) | 1998-02-27 | 2002-04-09 | Intel Corporation | Configurable page closing method and apparatus for multi-port host bridges |
US6115389A (en) | 1998-04-17 | 2000-09-05 | Advanced Micro Devices, Inc. | Auto-negotiation for multiple ports using shared logic |
US6216205B1 (en) | 1998-05-21 | 2001-04-10 | Integrated Device Technology, Inc. | Methods of controlling memory buffers having tri-port cache arrays therein |
US6067301A (en) | 1998-05-29 | 2000-05-23 | Cabletron Systems, Inc. | Method and apparatus for forwarding packets from a plurality of contending queues to an output |
FR2779843A1 (en) | 1998-06-16 | 1999-12-17 | Busless Computers | Serial multi port memory component comprising RAM memory bank assemblies for use in computer |
US6735773B1 (en) | 1998-06-27 | 2004-05-11 | Intel Corporation | Method and apparatus for issuing commands to a network processor configured to provide a plurality of APIs |
US6230191B1 (en) | 1998-10-05 | 2001-05-08 | Alcatel Internetworking (Pe), Inc. | Method and apparatus for regulating the amount of buffer memory requested by a port in a multi-port switching device with shared buffer memory |
US6876702B1 (en) | 1998-10-13 | 2005-04-05 | Stmicroelectronics Asia Pacific (Pte) Ltd. | Motion vector detection with local motion estimator |
US6712704B2 (en) | 1999-04-08 | 2004-03-30 | Nintendo Of America Inc. | Security system for video game system with hard disk drive and internet access capability |
US20010036116A1 (en) | 1999-04-16 | 2001-11-01 | Takashi Kubo | Semiconductor memory device capable of high speed input/output of wide bandwidth data by improving usage efficiency of external data bus |
US6618390B1 (en) | 1999-05-21 | 2003-09-09 | Advanced Micro Devices, Inc. | Method and apparatus for maintaining randomly accessible free buffer information for a network switch |
US6785272B1 (en) | 1999-06-24 | 2004-08-31 | Allied Telesyn, Inc. | Intelligent stacked switching system |
US6535963B1 (en) | 1999-06-30 | 2003-03-18 | Cisco Technology, Inc. | Memory apparatus and method for multicast devices |
US20040202192A9 (en) | 1999-08-17 | 2004-10-14 | Galbi Duane E. | Method for automatic resource reservation and communication that facilitates using multiple processing events for a single processing task |
US6535939B1 (en) | 1999-11-09 | 2003-03-18 | International Business Machines Corporation | Dynamically configurable memory bus and scalability ports via hardware monitored bus utilizations |
US6539467B1 (en) | 1999-11-15 | 2003-03-25 | Texas Instruments Incorporated | Microprocessor with non-aligned memory access |
US20010003198A1 (en) | 1999-11-30 | 2001-06-07 | Chung-Che Wu | Method for timing setting of a system memory |
US6539488B1 (en) | 1999-11-30 | 2003-03-25 | Agere Systems Inc. | System with a plurality of media access control circuits with a shared memory for storing data and synchronizing data from a clock domain to a host clock domain |
US7075827B2 (en) | 2000-01-07 | 2006-07-11 | Nippon Telegraph And Telephone Corporation | Function reconfigurable semiconductor device and integrated circuit configuring the semiconductor device |
US6615324B1 (en) | 2000-01-07 | 2003-09-02 | Cygnal Integrated Products, Inc. | Embedded microprocessor multi-level security system in flash memory |
US7284106B1 (en) | 2000-01-07 | 2007-10-16 | Silicon Labs Cp, Inc. | Method and apparatus for protecting internal memory from external access |
US20080126728A1 (en) | 2000-01-07 | 2008-05-29 | Silicon Labs Cp, Inc. | Method and apparatus for protecting internal memory from external access |
US6741589B1 (en) | 2000-01-24 | 2004-05-25 | Advanced Micro Devices, Inc. | Apparatus and method for storing data segments in a multiple network switch system using a memory pool |
US6732184B1 (en) | 2000-01-31 | 2004-05-04 | Advanced Micro Devices, Inc. | Address table overflow management in a network switch |
US6714643B1 (en) | 2000-02-24 | 2004-03-30 | Siemens Information & Communication Networks, Inc. | System and method for implementing wait time estimation in automatic call distribution queues |
US7068651B2 (en) | 2000-06-02 | 2006-06-27 | Computer Network Technology Corporation | Fibre channel address adaptor having data buffer extension and address mapping in a fibre channel switch |
US20020116584A1 (en) | 2000-12-20 | 2002-08-22 | Intel Corporation | Runahead allocation protection (rap) |
US7099325B1 (en) | 2001-05-10 | 2006-08-29 | Advanced Micro Devices, Inc. | Alternately accessed parallel lookup tables for locating information in a packet switched network |
US6886120B2 (en) | 2001-06-07 | 2005-04-26 | Oki Electric Industry Co., Ltd. | Memory control circuit |
US20040193774A1 (en) | 2001-07-27 | 2004-09-30 | Kazuya Iwata | Flash memory apparatus and method for merging data stored in the same |
US7039781B2 (en) | 2001-07-27 | 2006-05-02 | Matsushtia Electric Industrial Co., Ltd. | Flash memory apparatus and method for merging stored data items |
US7149834B2 (en) | 2001-08-22 | 2006-12-12 | General Atomics | Wireless device attachment and detachment system, apparatus and method |
US6717847B2 (en) | 2001-09-17 | 2004-04-06 | Sandisk Corporation | Selective operation of a multi-state non-volatile memory system in a binary mode |
US20040098556A1 (en) | 2001-10-29 | 2004-05-20 | Buxton Mark J. | Superior misaligned memory load and copy using merge hardware |
US7274611B2 (en) | 2001-12-12 | 2007-09-25 | Micron Technology, Inc. | Method and architecture to calibrate read operations in synchronous flash memory |
US20030154314A1 (en) | 2002-02-08 | 2003-08-14 | I/O Integrity, Inc. | Redirecting local disk traffic to network attached storage |
JP4061094B2 (en) | 2002-03-15 | 2008-03-12 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Speech recognition apparatus, speech recognition method and program thereof |
US6567304B1 (en) | 2002-05-09 | 2003-05-20 | Matrix Semiconductor, Inc | Memory device and method for reliably reading multi-bit data from a write-many memory cell |
US20040027901A1 (en) | 2002-06-18 | 2004-02-12 | Kabushiki Kaisha Toshiba | Nonvolatile semiconductor memory device |
US7356676B2 (en) | 2002-08-09 | 2008-04-08 | Marvell International Ltd. | Extracting aligned data from two source registers without shifting by executing coprocessor instruction with mode bit for deriving offset from immediate or register |
US7752342B2 (en) | 2002-09-24 | 2010-07-06 | Nxp B.V. | Interface integrated circuit device for a USB connection |
US7334072B1 (en) | 2002-09-27 | 2008-02-19 | Cypress Semiconductor Corporation | System, method and apparatus for extending distances between wired or wireless USB devices and a USB host |
US20040093389A1 (en) | 2002-11-12 | 2004-05-13 | Microsoft Corporation | Light weight file I/O over system area networks |
US7451280B2 (en) | 2002-11-22 | 2008-11-11 | Qst Holdings, Llc | External memory controller node |
US7822955B2 (en) | 2003-01-21 | 2010-10-26 | Arm Limited | Data processing apparatus and method for utilizing endianess independent data values |
JP2004288355A (en) | 2003-03-13 | 2004-10-14 | Marvell World Trade Ltd | Multiport memory architecture, device, system, and method |
US8335878B2 (en) | 2003-03-13 | 2012-12-18 | Marvell World Trade Ltd. | Multiport memory architecture, devices and systems including the same, and methods of using the same |
US7571287B2 (en) | 2003-03-13 | 2009-08-04 | Marvell World Trade Ltd. | Multiport memory architecture, devices and systems including the same, and methods of using the same |
JP5107204B2 (en) | 2003-03-13 | 2012-12-26 | マーベル ワールド トレード リミテッド | Multiport memory architecture and integrated circuit |
US20040199734A1 (en) | 2003-04-03 | 2004-10-07 | Oracle International Corporation | Deadlock resolution through lock requeuing |
US7076631B2 (en) | 2003-04-14 | 2006-07-11 | Adtran, Inc. | Mechanism for on-the-fly handling of unaligned memory accesses |
US7136953B1 (en) | 2003-05-07 | 2006-11-14 | Nvidia Corporation | Apparatus, system, and method for bus link width optimization |
US7469311B1 (en) | 2003-05-07 | 2008-12-23 | Nvidia Corporation | Asymmetrical bus |
US7359997B2 (en) | 2003-06-06 | 2008-04-15 | Seiko Epson Corporation | USB data transfer control device including first and second USB device wherein destination information about second device is sent by first device |
US20050008011A1 (en) | 2003-07-09 | 2005-01-13 | International Business Machines Corporation | Method and system of data transfer for efficient memory utilization |
US20060010304A1 (en) | 2003-08-19 | 2006-01-12 | Stmicroelectronics Limited | Systems for loading unaligned words and methods of operating the same |
US7649539B2 (en) | 2004-03-10 | 2010-01-19 | Microsoft Corporation | Image formats for video capture, processing and display |
US7606960B2 (en) | 2004-03-26 | 2009-10-20 | Intel Corporation | Apparatus for adjusting a clock frequency of a variable speed bus |
US7249270B2 (en) | 2004-05-26 | 2007-07-24 | Arm Limited | Method and apparatus for placing at least one processor into a power saving mode when another processor has access to a shared resource and exiting the power saving mode upon notification that the shared resource is no longer required by the other processor |
US20050268001A1 (en) | 2004-05-26 | 2005-12-01 | Arm Limited | Management of polling loops in a data processing apparatus |
US20060031628A1 (en) | 2004-06-03 | 2006-02-09 | Suman Sharma | Buffer management in a network device without SRAM |
US7197591B2 (en) | 2004-06-30 | 2007-03-27 | Intel Corporation | Dynamic lane, voltage and frequency adjustment for serial interconnect |
US7480808B2 (en) | 2004-07-16 | 2009-01-20 | Ati Technologies Ulc | Method and apparatus for managing power consumption relating to a differential serial communication link |
US7185132B2 (en) | 2004-09-17 | 2007-02-27 | Via Technologies, Inc. | USB controller with intelligent transmission mode switching function and the operating method thereof |
US20060075144A1 (en) | 2004-09-24 | 2006-04-06 | International Business Machines Corp. | Remote access to a local hard drive |
US7734874B2 (en) | 2004-10-06 | 2010-06-08 | Thomson Licensing | Method and system for caching data using future access request information |
US7038950B1 (en) | 2004-11-05 | 2006-05-02 | Spansion Llc | Multi bit program algorithm |
US20060106962A1 (en) | 2004-11-17 | 2006-05-18 | Woodbridge Nancy G | USB On-The-Go implementation |
US7313019B2 (en) | 2004-12-21 | 2007-12-25 | Intel Corporation | Step voltage generation |
US7411830B2 (en) | 2005-01-13 | 2008-08-12 | Kabushiki Kaisha Toshiba | Nonvolatile memory cell having current compensated for temperature dependency and data read method thereof |
US7329136B2 (en) | 2005-03-04 | 2008-02-12 | Behavior Tech Computer Corp. | Bi-directional electronic device with USB interface |
US20090150599A1 (en) | 2005-04-21 | 2009-06-11 | Bennett Jon C R | Method and system for storage of data in non-volatile media |
US20060288188A1 (en) | 2005-06-17 | 2006-12-21 | Intel Corporation | Translating a string operation |
US7613871B2 (en) | 2005-06-21 | 2009-11-03 | Hitachi, Ltd. | Storage system using a flash memory partitioned with write-once and rewritable blocks |
US20060288153A1 (en) | 2005-06-21 | 2006-12-21 | Katsuya Tanaka | Storage system using flash memory |
US20070002880A1 (en) | 2005-07-01 | 2007-01-04 | Chih-Feng Chien | Method and device for flexible buffering in networking system |
US7624221B1 (en) | 2005-08-01 | 2009-11-24 | Nvidia Corporation | Control device for data stream optimizations in a link interface |
JP5047174B2 (en) | 2005-08-04 | 2012-10-10 | ザ・ボーイング・カンパニー | Fuel consumption data tracking / collection and aircraft route optimization |
US7539809B2 (en) | 2005-08-19 | 2009-05-26 | Dell Products L.P. | System and method for dynamic adjustment of an information handling systems graphics bus |
US7583600B1 (en) | 2005-09-07 | 2009-09-01 | Sun Microsytems, Inc. | Schedule prediction for data link layer packets |
US7447824B2 (en) | 2005-10-26 | 2008-11-04 | Hewlett-Packard Development Company, L.P. | Dynamic lane management system and method |
US20070176939A1 (en) | 2006-01-30 | 2007-08-02 | Ati Technologies, Inc. | Data replacement method and circuit for motion prediction cache |
US7685322B2 (en) | 2006-02-28 | 2010-03-23 | Microsoft Corporation | Port number emulation for wireless USB connections |
US20070229503A1 (en) | 2006-03-30 | 2007-10-04 | Ati Technologies | Method of and system for non-uniform image enhancement |
US20100027350A1 (en) | 2006-04-05 | 2010-02-04 | Ashot Melik-Martirosian | Flash memory programming and verification with reduced leakage current |
US7467253B2 (en) | 2006-04-13 | 2008-12-16 | Sandisk Corporation | Cycle count storage systems |
US7689753B2 (en) | 2006-05-02 | 2010-03-30 | Samsung Electronics Co., Ltd. | Method of operating wireless USB apparatus by receiving operation state information and wireless USB apparatus using the same |
US20070271609A1 (en) | 2006-05-18 | 2007-11-22 | Phison Electronics Corp. | Security system of flash memory and method thereof |
US7480757B2 (en) | 2006-05-24 | 2009-01-20 | International Business Machines Corporation | Method for dynamically allocating lanes to a plurality of PCI Express connectors |
US7478188B2 (en) | 2006-06-02 | 2009-01-13 | Hewlett-Packard Development Company, L.P. | System and method for connecting a WUSB device to multiple WUSB hosts |
US20070283086A1 (en) * | 2006-06-06 | 2007-12-06 | Seagate Technology Llc | Write caching random data and sequential data simultaneously |
US7463528B2 (en) | 2006-06-16 | 2008-12-09 | Sandisk Corporation | Temperature compensation of select gates in non-volatile memory |
US7536490B2 (en) | 2006-07-20 | 2009-05-19 | Via Technologies, Inc. | Method for link bandwidth management |
US7496707B2 (en) | 2006-08-22 | 2009-02-24 | International Business Machines Corporation | Dynamically scalable queues for performance driven PCI express memory traffic |
US7499343B2 (en) | 2006-09-29 | 2009-03-03 | Hynix Semiconductor Inc. | Data alignment circuit and alignment method for semiconductor memory device |
US7542350B2 (en) | 2006-10-20 | 2009-06-02 | Samsung Electronics Co., Ltd. | Methods of restoring data in flash memory devices and related flash memory device memory systems |
US20080094897A1 (en) | 2006-10-23 | 2008-04-24 | Samsung Electronics Co. Ltd. | Non-volatile semiconductor memory device and method for recovering data in non-volatile semiconductor memory device |
US7941590B2 (en) | 2006-11-06 | 2011-05-10 | Marvell World Trade Ltd. | Adaptive read and write systems and methods for memory cells |
US20080147978A1 (en) | 2006-12-15 | 2008-06-19 | Microchip Technology Incorporated | Configurable Cache for a Microprocessor |
US20080148083A1 (en) | 2006-12-15 | 2008-06-19 | Microchip Technology Incorporated | Direct Memory Access Controller |
US20080215773A1 (en) | 2006-12-22 | 2008-09-04 | Wiquest Communications, Inc. | Enhanced wireless usb protocol |
US20080175055A1 (en) | 2006-12-27 | 2008-07-24 | Hynix Semiconductor Inc. | Non-volatile memory device and self-compensation method thereof |
US20080215774A1 (en) | 2007-01-26 | 2008-09-04 | Hae Jin Kim | Wireless Universal Serial Bus Dual Role Device |
US20080195801A1 (en) | 2007-02-13 | 2008-08-14 | Cheon Won-Moon | Method for operating buffer cache of storage device including flash memory |
US7599221B2 (en) | 2007-03-30 | 2009-10-06 | Nec Electronics Corporation | Floating gate memory device with improved reference current generation |
US20080256282A1 (en) | 2007-04-16 | 2008-10-16 | Zhendong Guo | Calibration of Read/Write Memory Access via Advanced Memory Buffer |
US7660925B2 (en) | 2007-04-17 | 2010-02-09 | International Business Machines Corporation | Balancing PCI-express bandwidth |
US20080265838A1 (en) | 2007-04-24 | 2008-10-30 | Saurabh Garg | Battery charging using a USB-ID pin of a USB interface |
US20080270679A1 (en) | 2007-04-24 | 2008-10-30 | Hynix Semiconductor Inc. | Control circuit of flash memory device and method of operating the flash memory device |
US20080294951A1 (en) | 2007-05-01 | 2008-11-27 | Ahmad Mustafa S | Methods and devices for testing computer memory |
US20090273975A1 (en) | 2007-05-02 | 2009-11-05 | Micron Technology, Inc. | Non-volatile multilevel memory cells with data read of reference cells |
US20080320189A1 (en) | 2007-06-25 | 2008-12-25 | Arssov Paul Plamen | Simple Serial Interface - method of communication and information exchange, and electronic devices based on this method. |
US8234425B1 (en) | 2007-06-27 | 2012-07-31 | Marvell International Ltd. | Arbiter module |
US7949817B1 (en) | 2007-07-31 | 2011-05-24 | Marvell International Ltd. | Adaptive bus profiler |
US8205028B1 (en) | 2007-07-31 | 2012-06-19 | Marvell International Ltd. | Adaptive bus profiler |
US8127104B1 (en) | 2007-08-06 | 2012-02-28 | Marvell International Ltd. | Alignment matrix memory copy |
US20090067511A1 (en) | 2007-09-07 | 2009-03-12 | Jeff Wei | Method of generating a blockiness indicator for a video signal |
US20090113166A1 (en) | 2007-10-31 | 2009-04-30 | Agere Systems Inc. | Hashing method for nand flash memory |
US20090122610A1 (en) | 2007-11-14 | 2009-05-14 | Kobi Danon | Operation of a non-volatile memory array |
US20090132770A1 (en) | 2007-11-20 | 2009-05-21 | Solid State System Co., Ltd | Data Cache Architecture and Cache Algorithm Used Therein |
US8688947B1 (en) | 2007-11-21 | 2014-04-01 | Marvell International Ltd. | Aligned data access |
US7945825B2 (en) | 2007-11-25 | 2011-05-17 | Spansion Isreal, Ltd | Recovery while programming non-volatile memory (NVM) |
US20090228739A1 (en) | 2007-11-25 | 2009-09-10 | Itzic Cohen | Recovery while programming non-volatile memory (nvm) |
US7613045B2 (en) | 2007-11-26 | 2009-11-03 | Sandisk Il, Ltd. | Operation sequence and commands for measuring threshold voltage distribution in memory |
US20090154000A1 (en) * | 2007-12-13 | 2009-06-18 | Kabushiki Kaisha Toshiba | Method and apparatus for writing data with sequential access in a disk drive |
US20090200982A1 (en) | 2008-02-13 | 2009-08-13 | Active-Semi International, Inc. | USB port with smart power management |
US7903462B1 (en) | 2008-04-04 | 2011-03-08 | Link A Media Devices Corporation | E/P durability by using a sub-range of a full programming range |
US8131915B1 (en) | 2008-04-11 | 2012-03-06 | Marvell Intentional Ltd. | Modifying or overwriting data stored in flash memory |
US8533386B1 (en) | 2008-04-11 | 2013-09-10 | Marvell International, Ltd. | Modifying data stored in flash memory |
US20090300260A1 (en) | 2008-05-28 | 2009-12-03 | Rambus Inc. | Selective switching of a memory bus |
US8213228B1 (en) | 2008-11-06 | 2012-07-03 | Marvell International Ltd. | Flash memory read performance |
US8154919B2 (en) | 2009-02-06 | 2012-04-10 | Hynix Semiconductor Inc. | Method of reading nonvolatile memory device and nonvolatile memory device for implementing the method |
US8423710B1 (en) | 2009-03-23 | 2013-04-16 | Marvell International Ltd. | Sequential writes to flash memory |
US8213236B1 (en) | 2009-04-21 | 2012-07-03 | Marvell International Ltd. | Flash memory |
US8688922B1 (en) | 2010-03-11 | 2014-04-01 | Marvell International Ltd | Hardware-supported memory management |
US8756394B1 (en) | 2010-07-07 | 2014-06-17 | Marvell International Ltd. | Multi-dimension memory timing tuner |
Non-Patent Citations (94)
Title |
---|
"6-Port Fast Ethernet Switch, 88E6060 (Product Overview)", Link Street; www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, 2002, 2 pgs. |
"7-Port Fast Ethernet Switch with 802.1 Q, 88E6063 (Product Overview)", www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, 2002, 2 pgs. |
"Advisory Action", U.S. Appl. No. 10/702,744, 09/11/07, 3 pages. |
"Advisory Action", U.S. Appl. No. 12/163,801, Jan. 24, 2011, 2 pages. |
"Coprocessor", Retrieved from , Nov. 2006, 1 page. |
"Coprocessor", Retrieved from <http://en.wikipedia.org/wiki/Coprocessor>, Nov. 2006, 1 page. |
"Corrected Notice of Allowance", U.S. Appl. No. 13/268,183, Nov. 19, 2013, 2 pages. |
"European Communication and Search Report", Application No. EP04006012; European Patent Office; Munich, Germany, May 30, 2005, 4 pgs. |
"European Search Report", Application No. EP04006012; Munich, Germany, May 30, 2005, 4 pages. |
"Final Office Action", U.S. Appl. No. 10/702,744, Jun. 25, 2007, 13 pages. |
"Final Office Action", U.S. Appl. No. 12/163,801, Nov. 14, 2011, 12 pages. |
"Final Office Action", U.S. Appl. No. 12/163,801, Oct. 14, 2010, 12 pages. |
"Final Office Action", U.S. Appl. No. 12/182,014, Oct. 29, 2010, 16 pages. |
"Final Office Action", U.S. Appl. No. 12/276,084, Oct. 17, 2011, 15 pages. |
"Final Office Action", U.S. Appl. No. 12/332,870, Jun. 26, 2014, 20 pages. |
"Final Office Action", U.S. Appl. No. 12/332,870, Oct. 12, 2011, 17 pages. |
"Final Office Action", U.S. Appl. No. 12/332,870, Sep. 10, 2013, 20 pages. |
"Final Office Action", U.S. Appl. No. 12/434,000, Apr. 26, 2011, 15 pages. |
"Final Office Action", U.S. Appl. No. 12/434,000, Sep. 4, 2012, 17 pages. |
"Final Office Action", U.S. Appl. No. 12/494,076, Mar. 30, 2011, 13 pages. |
"Final Office Action", U.S. Appl. No. 12/494,076, Oct. 3, 2011, 13 pages. |
"Final Office Action", U.S. Appl. No. 13/092,734, Dec. 29, 2011, 6 pages. |
"Foreign Notice of Allowance", Japanese Application No. 2008-270813, Aug. 31, 2012, 7 pages. |
"Foreign Office Action", Japanese Application No. 2004-071574, Feb. 19, 2008, 4 pages. |
"Foreign Office Action", Japanese Application No. 2008-270813, Apr. 3, 2012, 6 pages. |
"Foreign Office Action", Japanese Application No. 2008-270813, May 26, 2011, 4 pages. |
"Information Technology-Telecommunications and Information Exchange Between Systems-Local and Metropolitan Area Networks-Specific Requirements", IEEE, Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications, Aug. 20, 1999, 531 pages. |
"Link Street 88E6063 7-Port Fast Ethernet Switch with QoS, 802.1Q VLAN, and Virtual Cable Tester (VCT) Technology", Marvell: News; www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, Jul. 14, 2003, 1 page. |
"Link Street 88E6181 8-Port Gigabit Ethernet Switch with Four-Level QoS", Marvell: News; www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, Jul. 14, 2003, 1 page. |
"Link Street, Integrated Gateway Router with Multi-Port QoS Switch 88E6218 (Product Overview)", Gateway Solutions; www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, 2003, 2 pgs. |
"Link Street, Integrated Gateway Router with Multi-Port Switch, 88E6208 (Product Overview)", Gateway Solutions; www.marvell.com; Marvell Semiconductor, Inc.; Sunnyvale, CA, 2003, 2 pgs. |
"Marvell Link Street Gigabit Ethernet Switches Enable the Rapid Deployment of Gigabit Connectivity for the SOHO Market", Marvell: Press and Investor News; Marvell Semiconductor, Inc.; Sunnyvale, CA; http://www.marvell.com/press/pressNewsDisplay.do?releaseID=347, Apr. 29, 2003, 2 pgs. |
"Method and Circuit for Transferring Data with Dynamic Parity Generation and Checking Scheme in Multi-port DRAM", esp@cenet; Publication No. JP10506776T (Abstract of Corresponding Document No. US5778007); esp@cenet Database-Worldwide; http://v3.espacenet.com/textdoc?DB=EPODOC&IDX=JP10506776T&F=0, Jun. 30, 1998, 5 pages. |
"Multiport Component Memory Series and Application with a Computer", Automated Translation; Europaisches Patentamt, European Patent Office, Office Europeen Des Brevets; Description of FR2779843; World Lingo Language Translation Services; www.worldlingo.com, Nov. 19, 2007, 15 pgs. |
"Network Attached Storage (NAS) Advantages", Retrieved from: <http://www.html.co.uk/86/network-attached-storage-nas-advantages.htm l> on Oct. 7, 2013, Aug. 22, 2008, 4 pages. |
"Network Attached Storage (NAS) Advantages", Retrieved from: on Oct. 7, 2013, Aug. 22, 2008, 4 pages. |
"Non-Final Office Action", U.S. Appl. 12/182,014, Jun. 1, 2010, 13 pages. |
"Non-Final Office Action", U.S. Appl. No. 10/702,744, Dec. 27, 2006, 10 pages. |
"Non-Final Office Action", U.S. Appl. No. 10/702,744, Feb. 19, 2009, 5 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/163,801, Apr. 22, 2010, 10 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/163,801, Jul. 20, 2011, 11 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/180,238, Apr. 12, 2011, 7 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/276,084, Apr. 11, 2011, 12 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/276,084, Mar. 29, 2013, 7 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/332,870, Apr. 25, 2011, 15 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/332,870, Feb. 7, 2014, 19 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/332,870, May 8, 2013, 19 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/396,250, Jun. 23, 2011, 6 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/434,000, Mar. 14, 2013, 18 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/434,000, May 4, 2012, 15 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/434,000, Nov. 10, 2010, 9 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/436,577, Sep. 29, 2010, 6 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/494,076, Dec. 22, 2010, 12 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/726,310, Aug. 1, 2012, 11 pages. |
"Non-Final Office Action", U.S. Appl. No. 12/862,600, Oct. 16, 2013, 8 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/045,186, Aug. 22, 2013, 12 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/092,734, Aug. 24, 2011, 15 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/177,965, Jul. 2, 2013, 7 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/268,183, May 7, 2013, 6 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/406,756, Nov. 5, 2012, 4 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/538,827, Feb. 22, 2013, 7 pages. |
"Non-Final Office Action", U.S. Appl. No. 13/538,827, May 2, 2013, 6 pages. |
"Non-Final Office Action", U.S. Appl. No. 14/199,307, Apr. 10, 2014, 5 pages. |
"Notice of Allowance", U.S. Appl. No. 10/702,744, 03/27/09, 7 pages. |
"Notice of Allowance", U.S. Appl. No. 12/163,801, Mar. 22, 2012, 6 pages. |
"Notice of Allowance", U.S. Appl. No. 12/180,238, Oct. 25, 2011, 6 pages. |
"Notice of Allowance", U.S. Appl. No. 12/182,014, Jan. 20, 2011, 6 pages. |
"Notice of Allowance", U.S. Appl. No. 12/276,084, Oct. 29, 2013, 5 pages. |
"Notice of Allowance", U.S. Appl. No. 12/396,250, Nov. 16, 2011, 4 pages. |
"Notice of Allowance", U.S. Appl. No. 12/434,000, Oct. 17, 2013, 9 pages. |
"Notice of Allowance", U.S. Appl. No. 12/436,577, Apr. 14, 2011, 4 pages. |
"Notice of Allowance", U.S. Appl. No. 12/494,076, Aug. 2, 2012, 8 pages. |
"Notice of Allowance", U.S. Appl. No. 12/610,106, Feb. 29, 2012, 11 pages. |
"Notice of Allowance", U.S. Appl. No. 12/726,310, Dec. 18, 2012, 6 pages. |
"Notice of Allowance", U.S. Appl. No. 12/762,150, Mar. 19, 2012, 6 pages. |
"Notice of Allowance", U.S. Appl. No. 13/045,186, Nov. 1, 2013, 9 pages. |
"Notice of Allowance", U.S. Appl. No. 13/092,734, Feb. 23, 2012, 4 pages. |
"Notice of Allowance", U.S. Appl. No. 13/177,965, Nov. 20, 2013, 5 pages. |
"Notice of Allowance", U.S. Appl. No. 13/268,183, Jul. 29, 2013, 5 pages. |
"Notice of Allowance", U.S. Appl. No. 13/406,756, May 8, 2013, 7 pages. |
"Notice of Allowance", U.S. Appl. No. 13/538,827, Sep. 17, 2013, 7 pages. |
"Notice of Allowance", U.S. Appl. No. 13/716,481, Nov. 14, 2013, 13 pages. |
"Notice of Allowance", U.S. Appl. No. 14/199,307, May 7, 2014, 7 pages. |
"Partial European Search Report", Application No. EP04006012; European Patent Office, Munich, Germany, Mar. 14, 2005, 2 pgs. |
"Restriction Requirement", U.S. Appl. No. 10/702,744, Jun. 30, 2006, 5 pages. |
"Restriction Requirement", U.S. Appl. No. 12/610,106, Dec. 7, 2011, 5 pages. |
"Restriction Requirement", U.S. Appl. No. 12/862,600, May 24, 2013, 7 pages. |
"Restriction Requirement", U.S. Appl. No. 13/045,186, Jun. 19, 2013, 5 pages. |
"U.S. Appl. No. 12/726,310", filed Mar. 17, 2010, 36 pages. |
"U.S. Appl. No. 12/862,600", filed Aug. 24, 2010, 36 pages. |
Litaize, et al., "Serial Multi Port Memory Component Comprising RAM Memory Bank Assemblies for Use in Computer", Abstract of FR2779843; Publication No. FR2779843; esp@cenet database; http://v3.espace.com/textdoc?DB=EPODOC&IDX=FR2779843&F=0, Dec. 12, 1999, 1 page. |
Mori, "Multiport Memory", English Abstract of Japanese Patent Publication No. JP5047174; esp@cenet database-Worldwide, Feb. 26, 1993, 1 page. |
Pallampati, "iSCSI Performance Over RDMA-Enabled Network", Thesis, Department of Electrical and Computer Engineering, Graduate School of Wichita State University, Jul. 2006, 58 pages. |
Prince, "High Performance Memories, New Architectures DRAMs and SRAMs-Evolution and Function", John Wiley & Sons, Ltd.; West Sussex, England, 1996, pp. 58-61. |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9070451B1 (en) | 2008-04-11 | 2015-06-30 | Marvell International Ltd. | Modifying data stored in a multiple-write flash memory cell |
US10853277B2 (en) * | 2015-06-24 | 2020-12-01 | Intel Corporation | Systems and methods for isolating input/output computing resources |
US10304539B2 (en) | 2015-09-24 | 2019-05-28 | Samsung Electronics Co., Ltd. | Method of performing a write operation based on an idle time |
US10254963B2 (en) | 2016-03-07 | 2019-04-09 | Western Digital Technologies, Inc. | Efficiently and dynamically sized reverse map to handle variable size data |
US10001924B2 (en) | 2016-03-07 | 2018-06-19 | HGST Netherlands B.V. | Efficient and dynamically sized reverse map to handle variable size data |
US20170337152A1 (en) * | 2016-05-17 | 2017-11-23 | Microsemi Storage Solutions (U.S.), Inc. | Port mirroring for peripheral component interconnect express devices |
US10114790B2 (en) * | 2016-05-17 | 2018-10-30 | Microsemi Solutions (U.S.), Inc. | Port mirroring for peripheral component interconnect express devices |
US20170344510A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Storage system, method, and apparatus for fast io on pcie devices |
US10713202B2 (en) * | 2016-05-25 | 2020-07-14 | Samsung Electronics Co., Ltd. | Quality of service (QOS)-aware input/output (IO) management for peripheral component interconnect express (PCIE) storage system with reconfigurable multi-ports |
US10762030B2 (en) * | 2016-05-25 | 2020-09-01 | Samsung Electronics Co., Ltd. | Storage system, method, and apparatus for fast IO on PCIE devices |
US20170344506A1 (en) * | 2016-05-25 | 2017-11-30 | Samsung Electronics Co., Ltd. | Qos-aware io management for pcie storage system with reconfigurable multi-ports |
US11531636B2 (en) * | 2016-05-25 | 2022-12-20 | Samsung Electronics Co., Ltd. | Storage system, method, and apparatus for fast IO on PCIE devices |
US10269421B2 (en) | 2016-11-30 | 2019-04-23 | Sandisk Technologies Llc | Latch caching of sequential data |
CN109582222A (en) * | 2018-10-31 | 2019-04-05 | 华中科技大学 | A kind of method for cleaning persistently cached in host perception watt recording disc |
CN109582222B (en) * | 2018-10-31 | 2020-11-24 | 华中科技大学 | Method for cleaning persistent cache in host sensing tile recording disk |
Also Published As
Publication number | Publication date |
---|---|
US8423710B1 (en) | 2013-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8874833B1 (en) | Sequential writes to flash memory | |
CN108399134B (en) | Storage device and operation method of storage device | |
US8397014B2 (en) | Memory mapping restore and garbage collection operations | |
US8909986B2 (en) | Data storing method for solid state drive to preserve data integrity after power failure | |
US10013307B1 (en) | Systems and methods for data storage devices to use external resources | |
KR101257989B1 (en) | Restore index page | |
JP5696118B2 (en) | Weave sequence counter for non-volatile memory systems | |
TWI514140B (en) | Non-volatile memory apparatus and operating method thereof | |
US20100287217A1 (en) | Host control of background garbage collection in a data storage device | |
US8255614B2 (en) | Information processing device that accesses memory, processor and memory management method | |
TWI494761B (en) | Method of partitioning physical block and memory system thereof | |
US9164833B2 (en) | Data storage device, operating method thereof and data processing system including the same | |
CN105718530B (en) | File storage system and file storage control method thereof | |
TWI399644B (en) | Block management method for a non-volatile memory | |
US20100174860A1 (en) | Non-volatile memory, page dynamic allocation apparatus and page mapping apparatus therefor, and page dynamic allocation method and page mapping method therefor | |
US20170285954A1 (en) | Data storage device and data maintenance method thereof | |
TW201346553A (en) | LBA bitmap usage | |
US20090132757A1 (en) | Storage system for improving efficiency in accessing flash memory and method for the same | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
US10339045B2 (en) | Valid data management method and storage controller | |
US20140047161A1 (en) | System Employing MRAM and Physically Addressed Solid State Disk | |
CN106055488B (en) | Data storage device and operation method thereof | |
CN113190469A (en) | Memory, data writing method and storage system | |
CN111949560B (en) | Data writing method and device and storage equipment | |
Kumar et al. | A survey on flash translation layer for NAND flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: CAVIUM INTERNATIONAL, CAYMAN ISLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MARVELL INTERNATIONAL LTD.;REEL/FRAME:052918/0001 Effective date: 20191231 |
|
AS | Assignment |
Owner name: MARVELL ASIA PTE, LTD., SINGAPORE Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CAVIUM INTERNATIONAL;REEL/FRAME:053475/0001 Effective date: 20191231 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |