Patents by Inventor Carl Forhan

Carl Forhan has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 10783119
    Abstract: A method includes compressing input data to form compressed data and comparing a size of the compressed data to a maximum allowed size determined from a fixed sector size for a lower tier of the multi-tier storage system and a minimum pad length for a pad that is stored in the same sector as the compressed data when the compressed data is migrated to the lower tier. When the size of the compressed data is greater than the maximum allowed size, the input data is stored instead of the compressed data in an upper tier of the multi-tier storage system.
    Type: Grant
    Filed: August 8, 2017
    Date of Patent: September 22, 2020
    Assignee: SEAGATE TECHNOLOGY LLC
    Inventors: Jackson Ellis, Jeffrey Munsil, Carl Forhan
  • Patent number: 10394493
    Abstract: Apparatus and method for managing data in a hybrid data storage device. The device has a first non-volatile memory (NVM) of solid state memory cells arranged into a first set of garbage collection units (GCUs), and a second NVM as a rotatable data recording medium arranged into a second set of GCUs each comprising a plurality of shingled magnetic recording tracks. A control circuit combines a first group of logical block units (LBUs) stored in the first set of GCUs with a second group of LBUs stored in the second set of GCUs to form a combined group of LBUs arranged in sequential order by logical address. The control circuit streams the combined group of LBUs to a zone of shingled magnetic recording tracks in a selected one of the second set of GCUs. A combined media translation map identifies physical addresses in both the first and second NVMs.
    Type: Grant
    Filed: June 30, 2017
    Date of Patent: August 27, 2019
    Assignee: Seagate Technology LLC
    Inventors: Alex Tang, Leonid Baryudin, Michael Scott Hicken, Mark Ish, Carl Forhan
  • Publication number: 20190050417
    Abstract: A method includes compressing input data to form compressed data and comparing a size of the compressed data to a maximum allowed size determined from a fixed sector size for a lower tier of the multi-tier storage system and a minimum pad length for a pad that is stored in the same sector as the compressed data when the compressed data is migrated to the lower tier. When the size of the compressed data is greater than the maximum allowed size, the input data is stored instead of the compressed data in an upper tier of the multi-tier storage system.
    Type: Application
    Filed: August 8, 2017
    Publication date: February 14, 2019
    Inventors: Jackson Ellis, Jeffrey Munsil, Carl Forhan
  • Publication number: 20190004739
    Abstract: Apparatus and method for managing data in a hybrid data storage device. The device has a first non-volatile memory (NVM) of solid state memory cells arranged into a first set of garbage collection units (GCUs), and a second NVM as a rotatable data recording medium arranged into a second set of GCUs each comprising a plurality of shingled magnetic recording tracks. A control circuit combines a first group of logical block units (LBUs) stored in the first set of GCUs with a second group of LBUs stored in the second set of GCUs to form a combined group of LBUs arranged in sequential order by logical address. The control circuit streams the combined group of LBUs to a zone of shingled magnetic recording tracks in a selected one of the second set of GCUs. A combined media translation map identifies physical addresses in both the first and second NVMs.
    Type: Application
    Filed: June 30, 2017
    Publication date: January 3, 2019
    Inventors: Alex Tang, Leonid Baryudin, Michael Scott Hicken, Mark Ish, Carl Forhan
  • Patent number: 8762789
    Abstract: Described embodiments provide a media controller for processing a diagnostic request received from a diagnostic source. The received diagnostic request is parsed by a corresponding request handling module of the media controller, where each diagnostic source type has a corresponding request handling module. If the received diagnostic request requires allocation of buffer space, a common diagnostic handling module of the media controller allocates buffer space in a buffer for the received diagnostic request. The common diagnostic handling module is common for all diagnostic source types. The common diagnostic handling module provides the received diagnostic request to a corresponding one of a plurality of end diagnostic handling modules. The end diagnostic handling module performs the diagnostic tasks. If the received diagnostic request requires a transfer of data to the diagnostic source, the common diagnostic handling module performs the data transfer between the media controller and the diagnostic source.
    Type: Grant
    Filed: September 1, 2010
    Date of Patent: June 24, 2014
    Assignee: LSI Corporation
    Inventors: Timothy Lund, Carl Forhan, Randal S. Rysavy, Timothy Swatosh
  • Patent number: 8458381
    Abstract: Described embodiments provide a host subsystem that generates a host context corresponding to a received host data transfer request. A programmable sequencer generates one or more sequencer contexts based on the host context. Each of the sequencer contexts corresponds to at least part of the host data transfer request. The sequencer contexts are provided to a buffer subsystem of the media controller. For host read requests, the buffer subsystem retrieves the data associated with the sequencer contexts of the read request from a corresponding buffer or a storage media and transmits the data associated with the sequencer contexts to the host device. For host write requests, the buffer subsystem receives the data associated with the host context from the host device and stores the data associated with the sequencer contexts of the write request to a corresponding buffer or the storage media.
    Type: Grant
    Filed: September 1, 2010
    Date of Patent: June 4, 2013
    Assignee: LSI Corporation
    Inventors: Bryan Holty, Michael Hicken, Carl Forhan, Jeffrey L. Williams
  • Patent number: 8352690
    Abstract: Described embodiments provide a media controller that synchronizes data cached in a buffer and corresponding data stored in one or more sectors of a storage device. A buffer layer module of the media controller caches data transferred between the buffer and the storage device. One or more contiguous sectors are associated with one or more chunks. The buffer layer module updates a status corresponding to each chunk of the cached data and scans the status corresponding to a first chunk of cached data. If, based on the status, the first chunk of cached data is more recent than the corresponding data stored on the storage device, a media layer module synchronizes the data on the storage device with the cached data. The status corresponding to the group of one or more sectors is updated. The media layer module scans a next chunk of cached data, if present.
    Type: Grant
    Filed: March 24, 2010
    Date of Patent: January 8, 2013
    Assignee: LSI Corporation
    Inventors: Carl Forhan, Timothy Swatosh, Pamela Hempstead, Timothy Lund, Michael Hicken
  • Patent number: 8321639
    Abstract: Described embodiments provide tracking and processing of commands received by a storage device. For each received command, the storage device determines one or more requested logical block addresses (LBAs), including a starting LBA and a length of one or more LBAs of the received command. The storage device determines whether command reordering is restricted. If command reordering is not restricted, the storage device processes the received commands. Otherwise, if command reordering is restricted, the storage device conflict checks each received command. If no conflict is detected, the storage device tracks and processes the received command. Otherwise, if a conflict is detected, the storage device queues the received command.
    Type: Grant
    Filed: December 30, 2009
    Date of Patent: November 27, 2012
    Assignee: LSI Corporation
    Inventors: Timothy Lund, Carl Forhan
  • Patent number: 8316178
    Abstract: Described embodiments provide a method of transferring, by a media controller, data associated with a host data transfer between a host device and a storage media. A buffer layer module of the media controller segments the host data transfer into one or more data transfer segments. Each data transfer segment corresponds to at least a portion of the data. The buffer layer module allocates a number of physical buffers to a virtual circular buffer for buffering the one or more data transfer segments. The buffer layer module transfers, by the virtual circular buffer, each of the data transfer segments between the host device and the storage media through the allocated physical buffers.
    Type: Grant
    Filed: March 25, 2010
    Date of Patent: November 20, 2012
    Assignee: LSI Corporation
    Inventors: Timothy Lund, Carl Forhan, Michael Hicken
  • Patent number: 8312250
    Abstract: Described embodiments provide a media controller that determines the size of a cache of data being transferred between a host device and one or more sectors of a storage device. The one or more sectors are segmented into a plurality of chunks, and each chunk corresponds to at least one sector. The contents of the cache are managed in a cache hash table. At startup of the media controller, a buffer layer module of the media controller initializes the cache in a buffer of the media controller. During operation of the media controller, the buffer layer module determines a number of chunks allocated to the cache. Based on the number of chunks allocated to the cache, the buffer layer module updates the size of the of the cache hash table.
    Type: Grant
    Filed: March 12, 2010
    Date of Patent: November 13, 2012
    Assignee: LSI Corporation
    Inventors: Carl Forhan, Timothy Lund
  • Patent number: 8219776
    Abstract: Described embodiments provide logical-to-physical address translation for data stored on a storage device having sectors organized into blocks and superblocks. A flash translation layer maps a physical address in the storage device to a logical sector address. The logical sector address corresponds to mapping data that includes i) a page index, ii) a block index, and iii) a superblock number. The mapping data is stored in at least one summary page corresponding to the superblock containing the physical address. A block index and a page index of a next empty page in the superblock are stored in a page global directory corresponding to the superblock. A block index and a page index of the at least one summary page and the at least one active block table for each superblock are stored in at least one active block table of the storage device.
    Type: Grant
    Filed: December 21, 2009
    Date of Patent: July 10, 2012
    Assignee: LSI Corporation
    Inventors: Carl Forhan, Pamela Hempstead, Michael Hicken, Randy Reiter, Timothy Swatosh
  • Patent number: 8166258
    Abstract: Described embodiments provide skip operations for transferring data to or from a plurality of non-contiguous sectors of a solid-state memory. A host layer module sends data to, and receives commands from, a communication link. Received commands are one of read requests or write requests, with commands including i) a starting sector address, ii) a skip mask indicating the span of all sector addresses in the request and the sectors to be transferred, iii) a total number of sectors to be transferred; and, for write requests, iv) the data to be written to the sectors. A buffer stores data for transfer to or from the solid-state memory. A buffer layer module i) manages the buffer, ii) segments the span of the request into a plurality of chunks, and iii) determines, based on the skip mask, a number of chunks to be transferred to or from the solid-state memory.
    Type: Grant
    Filed: July 24, 2009
    Date of Patent: April 24, 2012
    Assignee: LSI Corporation
    Inventors: Timothy Lund, Carl Forhan, Timothy Swatosh, Pamela Hempstead, Michael Hicken, Bryan Holty, John Paradise
  • Publication number: 20110161552
    Abstract: Described embodiments provide tracking and processing of commands received by a storage device. For each received command, the storage device determines one or more requested logical block addresses (LBAs), including a starting LBA and a length of one or more LBAs of the received command. The storage device determines whether command reordering is restricted. If command reordering is not restricted, the storage device processes the received commands. Otherwise, if command reordering is restricted, the storage device conflict checks each received command. If no conflict is detected, the storage device tracks and processes the received command. Otherwise, if a conflict is detected, the storage device queues the received command.
    Type: Application
    Filed: December 30, 2009
    Publication date: June 30, 2011
    Inventors: Timothy Lund, Carl Forhan
  • Publication number: 20110072173
    Abstract: Described embodiments provide a host subsystem that generates a host context corresponding to a received host data transfer request. A programmable sequencer generates one or more sequencer contexts based on the host context. Each of the sequencer contexts corresponds to at least part of the host data transfer request. The sequencer contexts are provided to a buffer subsystem of the media controller. For host read requests, the buffer subsystem retrieves the data associated with the sequencer contexts of the read request from a corresponding buffer or a storage media and transmits the data associated with the sequencer contexts to the host device. For host write requests, the buffer subsystem receives the data associated with the host context from the host device and stores the data associated with the sequencer contexts of the write request to a corresponding buffer or the storage media.
    Type: Application
    Filed: September 1, 2010
    Publication date: March 24, 2011
    Inventors: Bryan Holty, Michael Hicken, Carl Forhan, Jeffrey L. Williams
  • Publication number: 20110072194
    Abstract: Described embodiments provide logical-to-physical address translation for data stored on a storage device having sectors organized into blocks and superblocks. A flash translation layer maps a physical address in the storage device to a logical sector address. The logical sector address corresponds to mapping data that includes i) a page index, ii) a block index, and iii) a superblock number. The mapping data is stored in at least one summary page corresponding to the superblock containing the physical address. A block index and a page index of a next empty page in the superblock are stored in a page global directory corresponding to the superblock. A block index and a page index of the at least one summary page and the at least one active block table for each superblock are stored in at least one active block table of the storage device.
    Type: Application
    Filed: December 21, 2009
    Publication date: March 24, 2011
    Inventors: Carl Forhan, Pamela Hempstead, Michael Hicken, Randy Reiter, Timothy Swatosh
  • Publication number: 20110072197
    Abstract: Described embodiments provide a method of transferring, by a media controller, data associated with a host data transfer between a host device and a storage media. A buffer layer module of the media controller segments the host data transfer into one or more data transfer segments. Each data transfer segment corresponds to at least a portion of the data. The buffer layer module allocates a number of physical buffers to a virtual circular buffer for buffering the one or more data transfer segments. The buffer layer module transfers, by the virtual circular buffer, each of the data transfer segments between the host device and the storage media through the allocated physical buffers.
    Type: Application
    Filed: March 25, 2010
    Publication date: March 24, 2011
    Inventors: Timothy Lund, Carl Forhan, Michael Hicken
  • Publication number: 20110072209
    Abstract: Described embodiments provide a media controller for processing a diagnostic request received from a diagnostic source. The received diagnostic request is parsed by a corresponding request handling module of the media controller, where each diagnostic source type has a corresponding request handling module. If the received diagnostic request requires allocation of buffer space, a common diagnostic handling module of the media controller allocates buffer space in a buffer for the received diagnostic request. The common diagnostic handling module is common for all diagnostic source types. The common diagnostic handling module provides the received diagnostic request to a corresponding one of a plurality of end diagnostic handling modules. The end diagnostic handling module performs the diagnostic tasks. If the received diagnostic request requires a transfer of data to the diagnostic source, the common diagnostic handling module performs the data transfer between the media controller and the diagnostic source.
    Type: Application
    Filed: September 1, 2010
    Publication date: March 24, 2011
    Inventors: Timothy Lund, Carl Forhan, Randal S. Rysavy, Timothy Swatosh
  • Publication number: 20110072187
    Abstract: Described embodiments provide a media controller that determines the size of a cache of data being transferred between a host device and one or more sectors of a storage device. The one or more sectors are segmented into a plurality of chunks, and each chunk corresponds to at least one sector. The contents of the cache are managed in a cache hash table. At startup of the media controller, a buffer layer module of the media controller initializes the cache in a buffer of the media controller. During operation of the media controller, the buffer layer module determines a number of chunks allocated to the cache. Based on the number of chunks allocated to the cache, the buffer layer module updates the size of the of the cache hash table.
    Type: Application
    Filed: March 12, 2010
    Publication date: March 24, 2011
    Inventors: Carl Forhan, Timothy Lund
  • Publication number: 20110072196
    Abstract: Described embodiments provide a media controller that synchronizes data cached in a buffer and corresponding data stored in one or more sectors of a storage device. A buffer layer module of the media controller caches data transferred between the buffer and the storage device. One or more contiguous sectors are associated with one or more chunks. The buffer layer module updates a status corresponding to each chunk of the cached data and scans the status corresponding to a first chunk of cached data. If, based on the status, the first chunk of cached data is more recent than the corresponding data stored on the storage device, a media layer module synchronizes the data on the storage device with the cached data. The status corresponding to the group of one or more sectors is updated. The media layer module scans a next chunk of cached data, if present.
    Type: Application
    Filed: March 24, 2010
    Publication date: March 24, 2011
    Inventors: Carl Forhan, Timothy Swatosh, Pamela Hempstead, Timothy Lund, Michael Hicken
  • Publication number: 20110022779
    Abstract: Described embodiments provide skip operations for transferring data to or from a plurality of non-contiguous sectors of a solid-state memory. A host layer module sends data to, and receives commands from, a communication link. Received commands are one of read requests or write requests, with commands including i) a starting sector address, ii) a skip mask indicating the span of all sector addresses in the request and the sectors to be transferred, iii) a total number of sectors to be transferred; and, for write requests, iv) the data to be written to the sectors. A buffer stores data for transfer to or from the solid-state memory. A buffer layer module i) manages the buffer, ii) segments the span of the request into a plurality of chunks, and iii) determines, based on the skip mask, a number of chunks to be transferred to or from the solid-state memory.
    Type: Application
    Filed: July 24, 2009
    Publication date: January 27, 2011
    Inventors: Tim Lund, Carl Forhan, Timothy Swatosh, Pamela Hempstead, Michael Hicken, Bryan Holty, John Paradise