发明名称 Adaptive write behavior for a system having non-volatile memory
摘要 Systems and methods are disclosed for adaptive writing behavior for a system having non-volatile memory (“NVM”). A memory interface of a system can be configured to determine whether a write preference of the system is skip-sequential. In response to determining that the write preference is skip-sequential, the memory interface can sequentially program data to a first set of pages of a block of the NVM. In addition, the memory interface can sequentially pre-merge gaps between the first set of pages with one or more pages of a data block. Moreover, the memory interface can be configured to switch to an alternative programming state in response to determining that at least one condition has been satisfied. For example, the memory interface can stop programming data sequentially, and instead program data in the order that the data is received from a file system.
申请公布号 US8850160(B2) 申请公布日期 2014.09.30
申请号 US201012861687 申请日期 2010.08.23
申请人 Apple Inc. 发明人 Post Daniel J.;Sutton Brian
分类号 G06F12/00;G06F12/02 主分类号 G06F12/00
代理机构 Van Court & Aldridge LLP 代理人 Van Court & Aldridge LLP
主权项 1. A method for sequentially programming a non-volatile memory (“NVM”), the method comprising: determining whether a write preference of a file system is skip-sequential before writing any data to a first block of the NVM, wherein skip-sequential writes occurs when each logical address that is received is greater than the logical address of the last sector written to a block, but the received logical addresses are not in an absolute sequential order, wherein the determining comprises detecting that a flag bit associated with the data is set to skip-sequential writes; in response to determining that the write preference of the file system is skip-sequential, sequentially programming data to pages of the first block, wherein a last programmed page corresponds to a first sector of a logical block; receiving a write command from the file system to write data corresponding to a second sector of the logical block; determining if a second logical address of the second sector is lower than or the same as a first logical address of the first sector; and in response to determining that the second logical address of the second sector is not lower than or the same as the first logical address of the first sector, sequentially programming data from a data block to the pages of the first block prior to programming the second sector of data to the first block.
地址 Cupertino CA US