Patents Examined by Larry MacKall
  • Patent number: 9678671
    Abstract: Embodiments of the invention are directed to optimizing the selection of memory blocks for garbage collection in solid state devices to efficiently maximize the amount of memory freed by garbage collection operations. The systems and methods disclosed herein provide for the efficient selection of optimal or near-optimal garbage collection candidate blocks, with the most optimal selection defined as block(s) with the most invalid pages. In one embodiment, a controller classifies memory blocks into various invalid block pools by the amount of invalid pages each block contains. In one embodiment, the controller selects for garbage collection a block from a non-empty pool of blocks with the highest minimum amount of invalid pages. One or more of the pools have minimum thresholds that can be dynamically adjusted according to an observed usage condition, such as a change of an over-provisioning amount in the storage state device.
    Type: Grant
    Filed: October 12, 2015
    Date of Patent: June 13, 2017
    Assignee: Western Digital Technologies, Inc.
    Inventors: Ho-Fan Kang, Jerry Lo, Johnny Lam
  • Patent number: 9658951
    Abstract: In a method for storing packets in a network device, a processor and a plurality of memory banks for storing packet data during processing of packets by the processor are provided on an integrated circuit device. Each memory bank has a separate channel for transferring data. A plurality of buffers are defined such that each buffer in the plurality of buffers includes a respective memory space in more than one memory bank and less than all memory banks. A buffer of the plurality of buffers is allocated for storing a single packet or a portion of a single packet. The single packet or the portion of the single packet in the allocated buffer.
    Type: Grant
    Filed: November 1, 2012
    Date of Patent: May 23, 2017
    Assignee: Marvell Israel (M.I.S.L) Ltd.
    Inventors: Evgeny Shumsky, Carmi Arad, Gil Levy, Ehud Sivan
  • Patent number: 9652163
    Abstract: A method for releasing storage space in a space-efficient volume is disclosed. In one embodiment, such a method includes maintaining, for a space-efficient volume, a bitmap comprising a bit for each track in the space-efficient volume. A host system indicates whether a track is one of used and unused by marking the corresponding bit in the bitmap. A storage controller reads the bitmap and frees tracks from the space-efficient volume that the bitmap indicates are unused. In certain embodiments, the bitmap is stored on the space-efficient volume. For example, the bitmap may be appended to a volume table of contents (VTOC) stored on the space-efficient volume. A corresponding system and computer program product are also disclosed.
    Type: Grant
    Filed: May 3, 2015
    Date of Patent: May 16, 2017
    Assignee: International Business Machines Corporation
    Inventors: Thomas W. Bish, Nikhil Khandelwal, Gregory E. McBride, David C. Reed, Richard A. Welp
  • Patent number: 9645925
    Abstract: A method of controlling a non-volatile memory system including a non-volatile memory device having a non-volatile memory cell array is disclosed. The method includes: determining environment information corresponding to a communication speed relating to a transmission medium to which the non-volatile memory device is connected; selecting a management operation mode based on the determined environment information; and performing a memory managing operation on the non-volatile memory device using the selected management operation mode during an idle time of the non-volatile memory device.
    Type: Grant
    Filed: November 26, 2014
    Date of Patent: May 9, 2017
    Assignee: SAMSUNG ELECTRONICS CO., LTD.
    Inventor: Byung-yo Lee
  • Patent number: 9645768
    Abstract: A byte addressable storing system is provided. The byte addressable storing system includes a data transmission interface and a processing unit. The data transmission interface connects to a byte addressable storing device. The processing unit creates a primary metadata table, a secondary metadata table, an indirect metadata matching table, a sub-block using status table and a metadata pointer in the byte addressable storing device via the data transmission interface. The processing unit further adjusts the allocation of metadata in the byte addressable storing device dynamically based on the aforesaid tables and pointer. The processing unit further stores a file into sub-blocks of blocks non-sequentially, and achieves record of the file via dynamic multi-level pointing.
    Type: Grant
    Filed: November 26, 2014
    Date of Patent: May 9, 2017
    Assignee: Institute For Information Industry
    Inventors: Yun-Jhu Chen, Tseng-Yi Chen, Yuan-Hao Chang, Hsin Wen Wei, Wei-Kuan Shih, Chia-Heng Tu
  • Patent number: 9639461
    Abstract: A data storage device includes a memory and a controller. A method may be performed at the data storage device. The method includes receiving a request to write data, generating a signature of the data, and searching a signature table to determine if the generated signature is in the signature table. The signature table includes at least one signature table entry that includes a signature of stored data and a physical address of the stored data.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: May 2, 2017
    Assignee: SANDISK TECHNOLOGIES LLC
    Inventors: Yarden Eitan, Udi Agami, Eran Sharon, Idan Alrod
  • Patent number: 9639279
    Abstract: An apparatus and a method for processing data in a terminal are provided. The method includes when a specific program including a specific extension is stored, identifying addresses representing a position of specific data having the specific extension in an entire storage space, initializing the specific program based on the identified addresses, and generating an address table based on the identified addresses, and storing the generated address table.
    Type: Grant
    Filed: March 10, 2014
    Date of Patent: May 2, 2017
    Assignee: Samsung Electronics Co., Ltd.
    Inventor: Ho-Tae Kim
  • Patent number: 9632729
    Abstract: A data object is received at a storage compute device in response to a request from a host. A requirement of the data object is determined based on a computation to be performed on the data object. The requirement related to at least speed and capacity of media used to store the data object. A tier is selected from the storage compute device based on speed and capacity characteristics of the selected tier corresponding to the requirement of the data object. The data object is stored in the selected tier.
    Type: Grant
    Filed: May 5, 2015
    Date of Patent: April 25, 2017
    Assignee: SEAGATE TECHNOLOGY LLC
    Inventors: Peng Li, Richard Esten Bohn, David Tetzlaff, Kevin Arthur Gomez
  • Patent number: 9612956
    Abstract: A data storage device includes one or more storage media that include multiple physical storage locations. The device also includes at least one cache memory having a logical space that includes a plurality of separately managed logical block address (LBA) ranges. Additionally, a controller is included in the device. The controller is configured to receive data extents addressed by a first LBA and a logical block count. The controller is also configured to identify at least one separately managed LBA range of the plurality of separately managed LBA ranges in the at least one cache memory based on LBAs associated with at least some of the received data extents. The controller stores the at least some of the received data extents in substantially monotonically increasing LBA order in at least one physical storage location, of the at least one cache memory, assigned to the identified at least one LBA range.
    Type: Grant
    Filed: December 18, 2014
    Date of Patent: April 4, 2017
    Assignee: Seagate Technology LLC
    Inventors: Timothy R. Feldman, Andrew M. Kowles, Mark Allen Gaertner, Brian T. Edgar
  • Patent number: 9612750
    Abstract: An autonomous sub-system receives a database downloaded from a host controller. A controller monitors bus traffic and/or allocated resources in the subsystem and re-allocates resources based on the monitored results to dynamically improve system performance.
    Type: Grant
    Filed: March 31, 2015
    Date of Patent: April 4, 2017
    Assignee: Micron Technologies, Inc.
    Inventors: Sean Eilert, Mark Leinwander, Jared Hulbert
  • Patent number: 9600181
    Abstract: A system for storing data in a dynamic fashion. The system includes a storage entity. The storage entity includes portions of a plurality of different persistent storage devices. Each storage device has a set of constraints. The storage entity is configured to store data in a dynamic fashion in a layout on the persistent storage devices of the storage entity that meets the different data requirements for the data while still being within the constraints for the persistent storage devices. The storage entity is configured to change the layout for a portion of the data as requirements related to at least one of performance or resiliency for a portion of the data change while the storage entity continues to provide the data from the storage entity.
    Type: Grant
    Filed: March 11, 2015
    Date of Patent: March 21, 2017
    Assignee: Microsoft Technology Licensing, LLC
    Inventors: Sachin Chiman Patel, Shiv Rajpal, Karan Mehra
  • Patent number: 9600186
    Abstract: A first storage virtualization device operates in a system in which instructions requested by host computers are assigned to a plurality of storage virtualization devices. The first storage virtualization device includes an interface and a processor. The interface receives a write instruction assigned to the first storage virtualization device, data to be written by the write instruction, and operation statuses of other storage virtualization devices in the system. The processor calculates index values which represent loads when the first storage virtualization device processes the write instruction. The processor selects a second storage virtualization device for the purpose of requesting that it execute the write instruction by use of the operation statuses when the index values are greater than thresholds. The processor transmits the write instruction and the data to the second storage virtualization device.
    Type: Grant
    Filed: March 12, 2015
    Date of Patent: March 21, 2017
    Assignee: FUJITSU LIMITED
    Inventors: Akira Satou, Toshiaki Yamauchi, Akihide Otawa
  • Patent number: 9600661
    Abstract: The present invention relates to a method and system of controlling the writing of data to a computer storage medium such as a hard drive in a computer system in order to prevent viruses or similar program code from being saved on such medium. Upon the computer system initiating a request to write data to the medium, the application embodying the method and system checks the identity of the running application requesting to perform the write. The method and system then checks a rule database to determine if such requesting application has permission to write to the medium. The system can also check that the data file type that the application seeks to write is a permitted type for that application. In response to the output of the database check, the requested write is allowed to proceed or is blocked. In the absence of a rule, the system presents the request to the computer user. The user can either grant permission or block, and such response can be included in the rule database.
    Type: Grant
    Filed: December 1, 2005
    Date of Patent: March 21, 2017
    Assignee: Drive Sentry Limited
    Inventor: John Safa
  • Patent number: 9588895
    Abstract: Methods and apparatus for supporting cached volumes at storage gateways are disclosed. A storage gateway appliance is configured to cache at least a portion of a storage object of a remote storage service at local storage devices. In response to a client's write request, directed to at least a portion of a data chunk of the storage object, the appliance stores a data modification indicated in the write request at a storage device, and asynchronously uploads the modification to the storage service. In response to a client's read request, directed to a different portion of the data chunk, the appliance downloads the requested data from the storage service to the storage device, and provides the requested data to the client.
    Type: Grant
    Filed: February 22, 2016
    Date of Patent: March 7, 2017
    Assignee: Amazon Technologies, Inc.
    Inventors: David Carl Salyers, Pradeep Vincent, Ankur Khetrapal, Kestutis Patiejunas
  • Patent number: 9588886
    Abstract: A data storage system includes data storage and random access memory. A sorting module is communicatively coupled to the random access memory and is configured to sort data blocks of incoming write data received in the random access memory. A storage controller is communicatively coupled to the random access memory and the data storage and is configured to write the sorted data blocks as individually-sorted data block sets to a staging area of the data storage. A method and processor-implemented process provide for sorting data blocks of incoming write data received in a random access memory of data storage and writing the sorted data blocks as individually-sorted data block sets to a staging area of the data storage.
    Type: Grant
    Filed: March 15, 2013
    Date of Patent: March 7, 2017
    Assignee: SEAGATE TECHNOLOGY LLC
    Inventors: Brian Thomas Edgar, Mark A. Gaertner
  • Patent number: 9588887
    Abstract: A data storage system includes data storage and random access memory. A sorting module is communicatively coupled to the random access memory and is configured to sort data blocks of incoming write data received in the random access memory. A storage controller is communicatively coupled to the random access memory and the data storage and is configured to write the sorted data blocks as individually-sorted data block sets to a staging area of the data storage. A method and processor-implemented process provide for sorting data blocks of incoming write data received in a random access memory of data storage and writing the sorted data blocks as individually-sorted data block sets to a staging area of the data storage.
    Type: Grant
    Filed: August 22, 2013
    Date of Patent: March 7, 2017
    Assignee: SEAGATE TECHNOLOGY LLC
    Inventors: Brian Thomas Edgar, Mark A. Gaertner
  • Patent number: 9582224
    Abstract: A memory control circuit unit including a plurality of data randomizer circuits and a data selection circuit is provided. When a first data stream is received from a host system, the first data stream is input into the data randomizer circuits to respectively output a plurality of second data streams. The data selection circuit selects one of the second data streams as a third data stream according to contents of the second data streams, and the third data stream is programmed into a rewritable non-volatile memory module. Accordingly, data written into the rewritable non-volatile memory module can be effectively disarranged.
    Type: Grant
    Filed: May 4, 2015
    Date of Patent: February 28, 2017
    Assignee: PHISON ELECTRONICS CORP.
    Inventors: Wei Lin, Kuo-Hsin Lai, Tien-Ching Wang
  • Patent number: 9582199
    Abstract: A method for data allocation in a storage device includes performing an analysis on current and past Input/Output (I/O) requests to access data in the storage device, the analysis yielding an output comprising a hotness of data and an access pattern of data associated with a file in the storage device, wherein the hotness and the access pattern are obtained by monitoring a working set of files in the storage device with respect to the I/O requests, and updating an allocation of data in the storage device based on the output of the analysis.
    Type: Grant
    Filed: March 11, 2014
    Date of Patent: February 28, 2017
    Assignee: SAMSUNG ELECTRONICS CO., LTD.
    Inventors: Basireddy Ranjith Reddy, Chirumamilla Narendra, Talawar Prakash, V R Chaitanya Kavirayani, Panwar Narender Pal Singh
  • Patent number: 9575658
    Abstract: A method for opening a virtual disk comprises reading information from a metadata file that identifies the current owner of the virtual disk. The method further includes sending a release request to the current owner of the virtual disk to release the virtual disk, writing information to the metadata file identifying the new owner, and then opening the virtual disk.
    Type: Grant
    Filed: March 12, 2015
    Date of Patent: February 21, 2017
    Assignee: VMware, Inc.
    Inventors: Christoph Klee, Adrian Drzewiecki, Jesse Pool, Nishant Yadav
  • Patent number: 9563378
    Abstract: A storage management application of a storage array is operable to create a new volume on the storage device array, and to automatically configure, responsive to user selection of an application protection profile, data protection services for application data to be stored on the volume, and/or, responsive to user selection of an application performance profile, application specific performance parameters. The application protection profile specifies scheduling and replication of snapshots for application data to be stored on the volume, and the application performance profile specifies performance parameters such as setting a block size, enabling or modifying a data caching algorithm, turning on or modifying data compression, etc. The scheduling, replication and/or application performance may be managed by a daemon associated with the storage management application which communicates with an agent associated with an application server on which the application executes.
    Type: Grant
    Filed: March 3, 2016
    Date of Patent: February 7, 2017
    Assignee: NIMBLE STORAGE, INC.
    Inventors: Varun Mehta, Rod Bagg, Vikas Gupta, Dan Leary, Ajay Singh, Hector Yuen