Dave's Patent Content Factory
Applications
Terms
Paragraphs
Claims
Docket
Logout
About
New Paragraph
Paragraphs
Search Content
Para #
Notes
Any Field
Search
Clear
Actions
Matter
Content
Para #
Notes
Modified
View
Edit
Delete
US-8380915-A1
If the ECC decoder 322 determines that the requested packets contains more bits in error than the ECC can correct, the ECC decoder 322 cannot correct the errors in the corrupted ECC blocks of the requested packet and sends an interrupt. In one embodiment, the ECC decoder 322 sends an interrupt with a message indicating that the requested packet is in error. The message may include information that the ECC decoder 322 cannot correct the errors or the inability of the ECC decoder 322 to correct the errors may be implied. In another embodiment, the ECC decoder 322 sends the corrupted ECC blocks of the requested packet with the interrupt and/or the message.
137
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In certain embodiments, the ECC decoder 322 may provide error information for correctable errors to the configuration module 352, described below, such as locations of the bits in error, values for the bits in error, and/or other error information. For example, the ECC decoder 322 may provide an error bias to the configuration module 352, indicating one or more bits of a data set that are in error, or the like. An error bias, as used herein, is a representation of one or more detected bit errors in a data set. In one embodiment, an error bias includes a location or position of a detected bit error in a data set. In another embodiment, an error bias includes a value for a detected bit error. A value for a detected error may include an error corrected value of a bit in error, an error value of the bit in error, or the like. For example, in one embodiment, the ECC decoder 322 may provide the configuration module 352 with an uncorrected data set and an error bias indicating locations of detected bit errors and the configuration module 352 may determine a known bias by inverting or flipping the bits in those locations. In another embodiment, for example, the ECC decoder 322 may provide the configuration module 352 with an error corrected data set and an error bias indicating locations of detected bit errors and the configuration module 352 may determine a read bias by inverting or flipping the bits in those locations.
136
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
The read data pipeline 108 includes an ECC decoder 322 that determines if a data error exists in ECC blocks a requested packet received from the solid-state storage media 110 by using ECC stored with each ECC block of the requested packet. The ECC decoder 322 then corrects any errors in the requested packet if any error exists and the errors are correctable using the ECC. For example, if the ECC can detect an error in six bits but can only correct three bit errors, the ECC decoder 322 corrects ECC blocks of the requested packet with up to three bits in error. The ECC decoder 322 corrects the bits in error by changing the bits in error to the correct one or zero state so that the requested data packet is identical to when it was written to the solid-state storage media 110 and the ECC was generated for the packet.
135
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the storage cells in the storage elements 216, 218, 220 in an empty or erased state store initial binary values. The initial binary values represent a bias for the storage cells. For example, the storage cells may have a physical, electrical, mechanical, or other quality that causes them to store a certain value by default. In another embodiment, the bias may be intentionally selected based on design considerations of the solid-state storage media 110, on security considerations, on compatibility issues, or the like, and may not be based on a default property of the storage cells.
106
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
Note that the write program module 310 is shown between the input buffer 306 and the compression module 312, however, the write program module 310 could be anywhere in the write data pipeline 106 and may be distributed among the various stages 302-320. In addition, there may be multiple write program modules 310 distributed among the various states 302-320 that are programmed and operate independently. In addition, the order of the stages 302-320 may be altered. One of skill in the art will recognize workable alterations to the order of the stages 302-320 based on particular user requirements.
133
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In another embodiment, the write data pipeline 106 includes a write program module 310 with one or more user-definable functions within the write data pipeline 106. The write program module 310 allows a user to customize the write data pipeline 106. A user may customize the write data pipeline 106 based on a particular data requirement or application. Where the solid-state storage controller 104 is an FPGA, the user may program the write data pipeline 106 with custom commands and functions relatively easily. A user may also use the write program module 310 to include custom functions with an ASIC, however, customizing an ASIC may be more difficult than with an FPGA. The write program module 310 may include buffers and bypass mechanisms to allow a first data segment to execute in the write program module 310 while a second data segment may continue through the write data pipeline 106. In another embodiment, the write program module 310 may include a processor core that can be programmed through software.
132
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In another embodiment, the write buffer 320 is sized smaller than a virtual page so that less than a page of information could be written to a storage write buffer in the solid-state storage media 110. In the embodiment, to prevent a stall in the write data pipeline 106 from holding up read operations, data is queued using the garbage collection system that needs to be moved from one location to another as part of the garbage collection process. In case of a data stall in the write data pipeline 106, the data can be fed through the garbage collector bypass 316 to the write buffer 320 and then on to the storage write buffer in the solid-state storage media 110 to fill the pages of a virtual page prior to programming the data. In this way a data stall in the write data pipeline 106 would not stall reading from the solid-state storage device 102.
131
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the write buffer 320 is a ping-pong buffer where one side of the buffer is filled and then designated for transfer at an appropriate time while the other side of the ping-pong buffer is being filled. In another embodiment, the write buffer 320 includes a first-in first-out (“FIFO”) register with a capacity of more than a virtual page of data segments. One of skill in the art will recognize other write buffer 320 configurations that allow a virtual page of data to be stored prior to writing the data to the solid-state storage media 110.
130
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
For depicted embodiment with a write buffer 320 sized larger than a virtual page, a single write command, which includes numerous subcommands, can then be followed by a single program command to transfer the page of data from the storage write buffer in each solid-state storage element 216, 218, 220 to the designated page within each solid-state storage element 216, 218, 220. This technique has the benefits of eliminating partial page programming, which is known to reduce data reliability and durability and freeing up the destination bank for reads and other commands while the buffer fills.
129
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
While the write buffer 320 is being filled, the solid-state storage media 110 may be used for other read operations. This is advantageous because other solid-state devices with a smaller write buffer or no write buffer may tie up the solid-state storage when data is written to a storage write buffer and data flowing into the storage write buffer stalls. Read operations will be blocked until the entire storage write buffer is filled and programmed. Another approach for systems without a write buffer or a small write buffer is to flush the storage write buffer that is not full in order to enable reads. Again this is inefficient because multiple write/program cycles are required to fill a page.
128
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the write data pipeline 106 includes a write buffer 320 that buffers data for efficient write operations. Typically, the write buffer 320 includes enough capacity for packets to fill at least one virtual page in the solid-state storage media 110. This allows a write operation to send an entire page of data to the solid-state storage media 110 without interruption. By sizing the write buffer 320 of the write data pipeline 106 and buffers within the read data pipeline 108 to be the same capacity or larger than a storage write buffer within the solid-state storage media 110, writing and reading data is more efficient since a single write command may be crafted to send a full virtual page of data to the solid-state storage media 110 instead of multiple commands.
127
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
The garbage collector bypass 316 coordinates insertion of segments into the write data pipeline 106 with other segments being written by clients 114 or other devices. In the depicted embodiment, the garbage collector bypass 316 is before the packetizer 302 in the write data pipeline 106 and after the depacketizer 324 in the read data pipeline 108, but may also be located elsewhere in the read and write data pipelines 106, 108. The garbage collector bypass 316 may be used during a flush of the write pipeline 108 to fill the remainder of the virtual page in order to improve the efficiency of storage within the solid-state storage media 110 and thereby reduce the frequency of garbage collection.
126
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
The system bus 240 is typically a bus of a computer 112 or other device in which the solid-state storage device 102 is installed or connected. In one embodiment, the system bus 240 may be a PCI-e bus, a Serial Advanced Technology Attachment (“serial ATA”) bus, parallel ATA, or the like. In another embodiment, the system bus 240 is an external bus such as small computer system interface (“SCSI”), FireWire, Fiber Channel, USB, PCIe-AS, or the like. The solid-state storage device 102 may be packaged to fit internally to a device or as an externally connected device.
77
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In another embodiment, the master controller 224 coordinates with an autonomous integrated management controller to periodically validate FPGA code and/or controller software, validate FPGA code while running (reset) and/or validate controller software during power on (reset), support external reset requests, support reset requests due to watchdog timeouts, and support voltage, current, power, temperature, and other environmental measurements and setting of threshold interrupts. In another embodiment, the master controller 224 manages garbage collection to free erase blocks for reuse. In another embodiment, the master controller 224 manages wear leveling. In another embodiment, the master controller 224 allows the data storage device/solid-state storage device 102 to be partitioned into multiple logical devices and allows partition-based media encryption. In yet another embodiment, the master controller 224 supports a solid-state storage controller 104 with advanced, multi-bit ECC correction. One of skill in the art will recognize other features and functions of a master controller 224 in a storage controller 202, or more specifically in a solid-state storage device 102.
86
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the master controller 224 communicates with one or more storage controllers 254 where the storage device/solid-state storage device 102 may appear as a storage device connected through a SCSI bus, Internet SCSI (“iSCSI”), fiber channel, etc. Meanwhile the storage device/solid-state storage device 102 may autonomously manage objects and may appear as an object file system or distributed object file system. The master controller 224 may also be accessed by peer controllers 256 and/or application specific processors 258.
85
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the master controller 224 coordinates with single or redundant network managers (e.g. switches) to establish routing, to balance bandwidth utilization, failover, etc. In another embodiment, the master controller 224 coordinates with integrated application specific logic (via local bus 206) and associated driver software. In another embodiment, the master controller 224 coordinates with attached application specific processors 258 or logic (via the external system bus 240) and associated driver software. In another embodiment, the master controller 224 coordinates with remote application specific logic (via the computer network 116) and associated driver software. In another embodiment, the master controller 224 coordinates with the local bus 206 or external bus attached hard disk drive (“HDD”) storage controller.
84
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the master controller 224 is also a redundant array of independent drive (“RAID”) controller. Where the data storage device/solid-state storage device 102 is networked with one or more other data storage devices/solid-state storage devices 102, the master controller 224 may be a RAID controller for single tier RAID, multi-tier RAID, progressive RAID, etc. The master controller 224 also allows some objects to be stored in a RAID array and other objects to be stored without RAID. In another embodiment, the master controller 224 may be a distributed RAID controller element. In another embodiment, the master controller 224 may comprise many RAID, distributed RAID, and other functions as described elsewhere. In one embodiment, the master controller 224 controls storage of data in a RAID-like structure where parity information is stored in one or more storage elements 216, 218, 220 of a logical page where the parity information protects data stored in the other storage elements 216, 218, 220 of the same logical page.
83
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In another embodiment, the master controller 224 coordinates with NIC controllers 244 and embedded RDMA controllers 246 to deliver just-in-time RDMA transfers of data and command sets. NIC controller 244 may be hidden behind a non-transparent port to enable the use of custom drivers. Also, a driver on a client 114 may have access to the computer network 116 through an I/O memory driver using a standard stack API and operating in conjunction with NICs 244.
82
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, the master controller 224, which manages objects, emulates block storage such that a computer 112 or other device connected to the storage device/solid-state storage device 102 views the storage device/solid-state storage device 102 as a block storage device and sends data to specific physical addresses in the storage device/solid-state storage device 102. The master controller 224 then divides up the blocks and stores the data blocks as it would objects. The master controller 224 then maps the blocks and physical address sent with the block to the actual locations determined by the master controller 224. The mapping is stored in the object index. Typically, for block emulation, a block device application program interface (“API”) is provided in a driver in the computer 112, client 114, or other device wishing to use the storage device/solid-state storage device 102 as a block storage device.
81
Added by DJM 3 2021
3/12/21, 12:00 AM
View
Edit
Delete
US-8380915-A1
In one embodiment, where the storage device/solid-state storage device controller 202 manages multiple data storage devices/solid-state storage media 110a-n, the master controller 224 divides the work load among internal controllers, such as the solid-state storage controllers 104a-n. For example, the master controller 224 may divide an object to be written to the data storage devices (e.g. solid-state storage media 110a-n) so that a portion of the object is stored on each of the attached data storage devices. This feature is a performance enhancement allowing quicker storage and access to an object. In one embodiment, the master controller 224 is implemented using an FPGA. In another embodiment, the firmware within the master controller 224 may be updated through the management bus 236, the system bus 240 over a network connected to a NIC 244 or other device connected to the system bus 240.
80
Added by DJM 3 2021
3/12/21, 12:00 AM
<< first
< previous
386
387
388
389
390
391
392
393
394
next >
last >>
Page 390 of 438, showing 20 record(s) out of 8,747 total