发明名称 Storage device and memory controller
摘要 Disclosed is a storage device using non-volatile semiconductor memory that achieves high performance and long life for the device. When managing the non-volatile semiconductor memory (2), physical blocks are classified into three types: scratch blocks (22), data blocks (23), and erased blocks (24). Data writing from a host device (3) is performed on the scratch blocks. When the number of empty pages within a scratch block becomes less than a predetermined number or no longer exists, the block is treated thereafter as a data block, and one of the erased blocks is newly assigned as a scratch block. If there are insufficient erased blocks, a block with relatively less valid data is selected from among the data blocks. After copying all valid data included in the block to a scratch block, the block is erased, and thus an erased block is acquired.
申请公布号 US8949515(B2) 申请公布日期 2015.02.03
申请号 US201013512958 申请日期 2010.12.01
申请人 Hitachi, Ltd. 发明人 Nishi Masataka;Fujita Ryo;Inada Ryoichi;Nishimura Takuma;Shiraishi Masahiro;Matsuda Koji
分类号 G06F12/02 主分类号 G06F12/02
代理机构 Crowell & Moring LLP 代理人 Crowell & Moring LLP
主权项 1. A storage device, comprising: a non-volatile semiconductor memory that has a prescribed unit of write and a unit of block erase which is larger than the prescribed unit of write; a memory from which data is readable and to which data is writable; and a memory controller that performs a read and a write from and to the non-volatile semiconductor memory based on an instruction from an external system, wherein a storage area of the non-volatile semiconductor memory includes: a scratch block including one or more physical blocks; a data block including one or more physical blocks; and an erased block including one or more physical blocks, wherein the memory has respective tables for managing the scratch block, the data block, and the erased block, and wherein the storage device writes a data from the external system to a block of the scratch block,takes the block of the scratch block as a block of the data block if the block of the scratch block has blank pages fewer than a prescribed number of pages or runs out of blank pages,allocates any one of the blocks of the erased block as a new block of the scratch block,identifies, from among the blocks of the data block, candidate blocks in which data has been written in all pages thereof, andif a number of blocks of the erased block is decreased to a prescribed number or smaller, selects a candidate block having a smallest number of valid data pages only from among the candidate blocks of the data block, copies valid data in the selected candidate block of the data block into the newly-allocated block of the scratch block, and erases the selected candidate block of the data block, wherein selection of the candidate block from among the candidate blocks prevents a block having a blank page from being selected.
地址 Tokyo JP