Patents by Inventor Robert C. Chang

Robert C. Chang 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: 7174440
    Abstract: Methods and apparatus for caching updates or new data associated with a logical block are disclosed. According to one aspect of the present invention, a method for processing contents associated with blocks of a non-volatile memory includes obtaining a first set of contents that is associated with a first group of logical pages associated with a first logical block, and writing the first set of contents into a memory area. The first set of contents is then written from the memory area into a first group of physical pages associated with a second physical block that is then mapped to the first logical block. In one embodiment, the memory area is one of a RAM cache and a physical block cache.
    Type: Grant
    Filed: October 2, 2003
    Date of Patent: February 6, 2007
    Assignee: SanDisk Corporation
    Inventors: Robert C Chang, Bahman Qawami, Farshid Sabet-Sharghi, Ping Li
  • Patent number: 7171536
    Abstract: Methods and apparatus for tracking defective blocks such that at least some of the defective blocks may be readily identified and tested for usability when desirable are disclosed. According to one aspect of the present invention, a method for identifying spare blocks within a non-volatile memory includes subjecting at least one defective physical block associated with the non-volatile memory to a test that is arranged to determine if the defective physical block is usable. The method also includes determining when the defective physical block passes the test, and identifying the defective physical block as a usable physical block when it is determined that the defective physical block passes the test.
    Type: Grant
    Filed: October 9, 2003
    Date of Patent: January 30, 2007
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7103732
    Abstract: Methods and apparatus for managing erase counts in a non-volatile memory system. According to one aspect of the present invention, a method for initializing an erase count block in a system memory of a non-volatile memory system, the non-volatile memory system which includes a non-volatile memory involves allocating a plurality of pages within the system memory that are divided into a plurality of entries. Each entry of the plurality of entries has an associated block in the non-volatile memory. The method also includes identifying usable blocks which are suitable for use in accepting user data, and storing values in each entry which is associated with a usable block. Storing the values in each entry which is associated with a usable block substantially identifies the usable block as being usable.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: September 5, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7096313
    Abstract: Methods and apparatus for performing wear leveling in a non-volatile memory system are disclosed. According to one aspect of the present invention, one method for processing elements included in a non-volatile memory of a memory system includes obtaining erase counts associated with elements and grouping a number of the elements into a first set. Each element has an associated erase count that substantially indicates a number of times the element has been erased. Grouping the number of elements into the first set includes selecting elements included in the plurality of elements which have the lowest associated erase counts of the erase counts associated with the plurality of elements. The method also includes storing the erase counts associated with the first set in a memory component substantially within a table.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: August 22, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7089349
    Abstract: Methods and apparatus for enabling updates to data structures to be scheduled are disclosed. According to one aspect of the present invention, a method for operating a memory system with a non-volatile memory that includes a plurality of physical blocks and a plurality of data structures including an erase count block involves determining when contents of at least one data structure is to be updated. A request to update the contents of the data structure is queued or scheduled when it is determined that the contents are to be updated, and the request is executed when it effectively reaches the top of the queue.
    Type: Grant
    Filed: October 28, 2003
    Date of Patent: August 8, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7082525
    Abstract: A method and system for booting a microprocessor controlled device. A microprocessor that is designed to read from a linear storage device executes code from a non linear storage device through an interface or emulator that writes and retrieves specially formatted boot instructions to/from the non linear storage device.
    Type: Grant
    Filed: October 2, 2002
    Date of Patent: July 25, 2006
    Assignee: SanDisk Corporation
    Inventors: Henry R. Hutton, Farshid Sabet-Sharghi, Robert C. Chang, Jong Guo
  • Patent number: 7039788
    Abstract: Methods and apparatus for splitting a single logical block into two or more physical blocks are disclosed. According to one aspect of the present invention, a method for associating a plurality of physical blocks of a non-volatile memory with a logical block that includes of logical block elements involves grouping the logical block elements into at least a first logical set and a second logical set. Data associated with the first logical set is provided to a first physical block, and data associated with the second logical set is provided to a second physical block.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: May 2, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7035967
    Abstract: Methods and apparatus for maintaining an average erase count in a system memory of a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for determining an average number of times each block of a number of blocks within a non-volatile memory of a memory system has been erased includes obtaining an erase count for each block that indicates a number of times each block has been erased. Once all the erase counts have been obtained, the erase counts are summed, and an average erase count that indicates the average number of times each block of the number of blocks has been erased is created by substantially dividing the sum by the number of blocks.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: April 25, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 7032087
    Abstract: Methods and apparatus for efficiently tracking the usage of physical blocks of non-volatile memory are disclosed. According to one aspect of the present invention, a method for maintaining a data structure that stores contents relating to the usage of physical blocks includes determining when to update the contents stored in the data structure, and obtaining a first differential erase count from the data structure when the contents are to be updated. The first differential erase count provides information on a number of times a first physical block has been erased. The method also includes determining a first actual erase count when the contents are to be updated. The first actual erase count is associated with a second physical block, and provides a number of times the second physical block has been erased. Finally, the method includes updating the first differential erase count when the contents are to be updated.
    Type: Grant
    Filed: October 28, 2003
    Date of Patent: April 18, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 6992172
    Abstract: The present invention relates to recombinant gelatins and compositions thereof, and methods of producing and using the same.
    Type: Grant
    Filed: November 10, 2000
    Date of Patent: January 31, 2006
    Assignee: FibroGen, Inc.
    Inventors: Robert C. Chang, Kari I. Kivirikko, Thomas B. Neff, David R. Olsen, James W. Polarek
  • Patent number: 6985992
    Abstract: Methods and apparatus for performing wear leveling in a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for allocating non-volatile memory that is divided into elements includes grouping the elements into a first group, a second group, and a third group. The first group includes erased elements with relatively low wear and the second group includes erased elements with relatively high wear. The method also includes determining when a first element included in the third group is to be replaced by a second element included in the first group. Contents of the first element are copied into the second element obtained from the first group. The contents are then erased from the first element, and the second element is associated with the third group. Associating the second element with the third group includes substantially disassociating the second element from the first group.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: January 10, 2006
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 6973531
    Abstract: Methods and apparatus for performing wear leveling in a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for processing elements included in a non-volatile memory of a memory system includes obtaining erase counts associated with a plurality of erased elements. Each element included in the plurality of elements has an associated erase count that indicates a number of times the element has been erased. The method also includes grouping a number of erased elements included in the plurality of elements into a first set, and storing the erase counts associated with the first set in a memory component of the memory system. Grouping the number of elements into the first set typically includes selecting erased elements included in the plurality of elements which have the highest associated erase counts of the erase counts associated with the plurality of elements.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: December 6, 2005
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Patent number: 6831865
    Abstract: Methods and apparatus for storing erase counts in a non-volatile memory of a non-volatile memory system are disclosed. According to one aspect of the present invention, a data structure in a non-volatile memory includes a first indicator that provides an indication of a number of times a first block of a plurality of blocks in a non-volatile memory has been erased. The data structure also includes a header that is arranged to contain information relating to the blocks in the non-volatile memory.
    Type: Grant
    Filed: October 28, 2002
    Date of Patent: December 14, 2004
    Assignee: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040177212
    Abstract: Methods and apparatus for maintaining an average erase count in a system memory of a non-volatile memory system are disclosed. According to one aspect of the present invention, a method for determining an average number of times each block of a number of blocks within a non-volatile memory of a memory system has been erased includes obtaining an erase count for each block that indicates a number of times each block has been erased. Once all the erase counts have been obtained, the erase counts are summed, and an average erase count that indicates the average number of times each block of the number of blocks has been erased is created by substantially dividing the sum by the number of blocks.
    Type: Application
    Filed: October 28, 2002
    Publication date: September 9, 2004
    Applicant: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040103241
    Abstract: Methods and apparatus for enabling contents to be efficiently stored in physical blocks of a non-volatile memory are disclosed. According to one aspect of the present invention, a method for performing a write operation in a non-volatile memory system which has a memory unit includes writing a first set of contents into a first physical sub-unit of the memory unit and writing a second set of contents into a second physical sub-unit of the memory unit after the first set of contents is written into the first physical sub-unit. The first physical sub-unit is sequentially before the second physical sub-unit in the memory unit. The first set of contents is associated with a second logical sub-unit of a logical unit and the second set of contents is associated with a first logical sub-unit of the logical unit that is sequentially before the second logical sub-unit in the logical unit.
    Type: Application
    Filed: October 2, 2003
    Publication date: May 27, 2004
    Applicant: SANDISK CORPORATION
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040083405
    Abstract: Methods and apparatus for enabling a power up process of a non-volatile memory to occur efficiently are disclosed. According to one aspect of the present invention, a method for utilizing a memory system that has a non-volatile memory with at least one reserved memory area includes providing power to the memory system, initializing the non-volatile memory, and writing a first signature into the reserved memory area. The first signature is arranged to indicate that the memory system was successfully initialized. In one embodiment, the method also includes executing a power down process on the memory system, and writing a second signature into the reserved memory area which indicates that the power down process has been executed.
    Type: Application
    Filed: October 14, 2003
    Publication date: April 29, 2004
    Applicant: SanDisk Corporation
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi, Sergey Yudin
  • Publication number: 20040083333
    Abstract: Methods and apparatus for using different error correction code algorithms to encode and to decode contents of blocks within a non-volatile memory are disclosed. According to one aspect of the present invention, a method for storing data within a non-volatile memory includes identifying a first block into which the data is to be stored, and obtaining an indicator associated with the first block. A determination may then be made regarding whether the indicator indicates that the data is to be encoded using a first algorithm. The data is encoded using the first algorithm when it is determined that the data is to be encoded using the first algorithm, after which point the data encoded using the first algorithm is written into the first block.
    Type: Application
    Filed: October 2, 2003
    Publication date: April 29, 2004
    Applicant: SANDISK CORPORATION
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040080998
    Abstract: Methods and apparatus for tracking defective blocks such that at least some of the defective blocks may be readily identified and tested for usability when desirable are disclosed. According to one aspect of the present invention, a method for identifying spare blocks within a non-volatile memory includes subjecting at least one defective physical block associated with the non-volatile memory to a test that is arranged to determine if the defective physical block is usable. The method also includes determining when the defective physical block passes the test, and identifying the defective physical block as a usable physical block when it is determined that the defective physical block passes the test.
    Type: Application
    Filed: October 9, 2003
    Publication date: April 29, 2004
    Applicant: SANDISK CORPORATION
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040083334
    Abstract: Methods and apparatus for encoding data associated with a page by dividing the page into segments and separately encoding the segments using extended error correction code (ECC) calculations are disclosed. According to one aspect of the present invention, a method for encoding data associated with a page which has a data area and an overhead area within a non-volatile memory of a memory system includes dividing at least a part of the page into at least two segments of the data, the at least two segments of the data including a first segment and a second segment, and performing ECC calculations on the first segment to encode the first segment. The method also includes performing the ECC calculations on the second segment to encode the second segment substantially separately from the first segment.
    Type: Application
    Filed: October 2, 2003
    Publication date: April 29, 2004
    Applicant: SANDISK CORPORATION
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi
  • Publication number: 20040083348
    Abstract: Methods and apparatus for caching updates or new data associated with a logical block are disclosed. According to one aspect of the present invention, a method for processing contents associated with blocks of a non-volatile memory includes obtaining a first set of contents that is associated with a first group of logical pages associated with a first logical block, and writing the first set of contents into a memory area. The first set of contents is then written from the memory area into a first group of physical pages associated with a second physical block that is then mapped to the first logical block. In one embodiment, the memory area is one of a RAM cache and a physical block cache.
    Type: Application
    Filed: October 2, 2003
    Publication date: April 29, 2004
    Applicant: SANDISK CORPORATION
    Inventors: Robert C. Chang, Bahman Qawami, Farshid Sabet-Sharghi, Ping Li