US9158678B2 - Memory address management system and method - Google Patents

Memory address management system and method Download PDF

Info

Publication number
US9158678B2
US9158678B2 US13/893,615 US201313893615A US9158678B2 US 9158678 B2 US9158678 B2 US 9158678B2 US 201313893615 A US201313893615 A US 201313893615A US 9158678 B2 US9158678 B2 US 9158678B2
Authority
US
United States
Prior art keywords
address
table
data
blocks
bits
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active, expires
Application number
US13/893,615
Other versions
US20140281144A1 (en
Inventor
Riki SUZUKI
Shohei Asami
Toshikatsu Hida
Hiroshi Yao
Kazuhiro Fukutomi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Memory Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US201361778968P priority Critical
Application filed by Toshiba Corp filed Critical Toshiba Corp
Assigned to KABUSHIKI KAISHA TOSHIBA reassignment KABUSHIKI KAISHA TOSHIBA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FUKUTOMI, KAZUHIRO, ASAMI, SHOHEI, HIDA, TOSHIKATSU, SUZUKI, RIKI, YAO, HIROSHI
Priority to US13/893,615 priority patent/US9158678B2/en
Publication of US20140281144A1 publication Critical patent/US20140281144A1/en
Publication of US9158678B2 publication Critical patent/US9158678B2/en
Application granted granted Critical
Assigned to TOSHIBA MEMORY CORPORATION reassignment TOSHIBA MEMORY CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KABUSHIKI KAISHA TOSHIBA
Application status is Active legal-status Critical
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7201Logical to physical mapping or translation of blocks or pages

Abstract

According to one embodiment, a memory system includes a nonvolatile memory including first blocks configured to store an address indicating a data storage position, and second blocks configured to store the data, a first table configured to store a first address including first information and second information, the second information indicating a data storage position in the first block, and a second table configured to convert the first information into third information, the first information having a first data size by which one entry of the second table can be identified, the third information having a second data size which is larger than the first data size and by which one of the first blocks and the second blocks can be identified.

Description

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/778,968, filed Mar. 13, 2013, the entire contents of which are incorporated herein by reference.

FIELD

Embodiments described herein relate generally to a memory system.

BACKGROUND

A NAND flash memory is known as a kind of a nonvolatile semiconductor memory device. A storage device incorporating the NAND flash memory is also known.

When accessing the NAND flash memory in the storage device based on a logical address supplied from a host to the storage device, an address conversion table showing the correspondence between the logical address and a data storage position in the NAND flash memory is used. This address conversion table includes elements capable of accessing the whole area of the NAND flash memory. Therefore, the amount of management information increases as the memory capacity of the NAND flash memory increases, and the memory capacity of a RAM required to store the address conversion table also increases.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a memory system;

FIG. 2 is a block diagram showing an example of a storage controller;

FIG. 3 is a schematic view for explaining an access method using an address conversion table;

FIG. 4 is a schematic view for explaining the relationship between various tables contained in the address conversion table;

FIG. 5 is a schematic view for explaining address blocks;

FIG. 6 is a schematic view for explaining the storage state of the address conversion table when the memory system is powered on;

FIG. 7 is a schematic view for explaining a data storage position acquiring operation;

FIG. 8 is a flowchart showing the data storage position acquiring operation;

FIG. 9 is a schematic view for explaining a data storage position information acquiring operation according to an example;

FIG. 10 is a perspective view showing an example of a personal computer incorporating an SSD;

FIG. 11 is a block diagram showing a system configuration example of the personal computer incorporating the SSD; and

FIG. 12 is a schematic view showing a server incorporating the SSD.

DETAILED DESCRIPTION

In general, according to one embodiment, there is provided a memory system comprising:

a nonvolatile memory including first blocks configured to store an address indicating a data storage position, and second blocks configured to store the data, each of the first blocks and the second blocks including memory cells;

a memory unit configured to store a table;

a first table stored in the memory unit and configured to store a first address including first information and second information, the second information indicating a data storage position in the first block;

a second table stored in the memory unit and configured to convert the first information into third information, the first information having a first data size by which one entry of the second table can be identified, the third information having a second data size which is larger than the first data size and by which one of the first blocks and the second blocks can be identified; and

a controller configured to access the nonvolatile memory by using a second address obtained by replacing the first information of the first address with the third information.

The embodiment of the present invention will be explained below. Note that in the following explanation, the same reference numbers denote elements having the same functions and arrangements, and a repeated explanation will be given only if necessary.

[1. Configuration of Memory System]

The memory system includes a nonvolatile semiconductor memory device. The nonvolatile semiconductor memory device is a nonvolatile memory (non-transitory memory) in which data is not lost even when the power supply is shut down. This embodiment will be explained by taking a NAND flash memory as an example of the nonvolatile semiconductor memory device. Also, the memory system will be explained by taking a solid-state drive (SSD) as an example of a storage device including the NAND flash memory.

FIG. 1 is a block diagram of the memory system (storage device). A memory system 10 includes a host interface (host I/F) 11, NAND flash memory 12, random access memory (RAM) 13, and storage controller 14, and these processing units are connected via a bus 15.

The host interface 11 is a memory connecting interface such as an Advanced Technology Attachment (ATA) interface, and an interface for a host device 20. The host device 20 is an external device for writing data to and reading data from the memory system 10. Examples of the host device 20 are a personal computer, a CPU core, a server connected to a network, and a combination thereof.

The NAND flash memory 12 is a memory device capable of nonvolatilly storing data, and used as a memory unit for storing user data, programs, and internal data of the memory system. More specifically, the NAND flash memory 12 stores data designated by the host device 20, and stores management information for managing a data storage position in the NAND flash memory 12 and data such as firmware programs to be nonvolatilly stored. In the NAND flash memory 12, erase is performed for each block, and write and read are performed for each page. The NAND flash memory 12 includes a memory cell array in which a plurality of memory cells are arranged in a matrix, and this memory cell array is formed by arranging a plurality of physical blocks as data erase units. In the NAND flash memory 12, write and read are performed for each physical page. A physical page includes a plurality of memory cells. A physical block (memory block or data block) includes a plurality of physical pages.

The RAM 13 is used as a data transfer cache between the host device 20 and NAND flash memory 12, and as a memory unit for temporary storage such as a work area memory. “Temporary storage” herein mentioned is a state in which data cannot be held when the power supply is shut down. Data to be stored in the RAM 13 is, for example, a management table expanded (read) from the NAND flash memory 12 upon activation. Note that a dynamic RAM (DRAM) or static RAM (SRAM) is mainly used as the RAM 13, and it is also possible to use a ferroelectric RAM (FeRAM), magnetoresistive RAM (MRAM), or phase-change RAM (PRAM).

The storage controller 14 is a controller (control unit) for controlling the memory system 10, and configured by a central processing unit (CPU) or the like. The storage controller 14 has a function of processing commands from the host device 20, a function of transferring data between the NAND flash memory 12 and host device 20 via the RAM 13, and a function of managing each block in the NAND flash memory 12.

The memory system 10 is connected to the host device 20 via the host interface 11, and used as an external memory, for example, a secondary memory device (solid-state drive [SSD]) of the host device 20. The memory system 10 has a function of storing data for which a write request is issued from the host device 20, and a function of reading data for which a read request is issued from the host device 20, and outputting the read data to the host device 20.

FIG. 2 is a block diagram showing an example of the storage controller 14 shown in FIG. 1. The storage controller 14 includes a data access bus 101, first circuit control bus 102, and second circuit control bus 103. A processor 104 for controlling the whole storage controller 14 is connected to the first circuit control bus 102. A boot ROM 105 is connected to the first circuit control bus 102 via a ROM controller 106. A boot program for booting each management program (firmware) stored in the NAND flash memory 12 is stored in the boot ROM 105.

In addition, a clock controller 107 is connected to the first circuit control bus 102. The clock controller 107 receives a power-on reset signal from a power supply circuit, and supplies a reset signal and clock signal to each unit.

The second circuit control bus 103 is connected to the first circuit control bus 102. An I2C circuit 108 for receiving data from a temperature sensor, a parallel IO (PIO) circuit 109 for supplying a status indication signal to a status indication LED, and a serial IO (SIO) circuit 110 for controlling an RS232C interface are connected to the second circuit control bus 103.

An ATA interface controller (ATA controller) 111, a first error checking and correction (ECC) circuit 112, a NAND controller 113 as a controller for the NAND flash memory, and a DRAM controller 114 are connected to both the data access bus 101 and first circuit control bus 102. The ATA controller 111 exchanges data with the host device 20 via an ATA interface. An SRAM 115 to be used as a data work area and firmware expansion area is connected to the data access bus 101 via an SRAM controller 116. When the system is activated, firmware stored in the NAND flash memory is transferred to the SRAM 115 by the boot program stored in the boot ROM 105.

The NAND controller 113 includes a NAND interface 117, second ECC circuit 118, and DMA controller 119 for DMA transfer control. The NAND interface 117 interfaces with the NAND flash memory. The DMA controller 119 for DMA transfer control controls access between the NAND flash memory and RAM (DRAM). The second ECC circuit 118 encodes a second correcting code, and encodes and decodes a first error correcting code. The first ECC circuit 112 decodes the second error correcting code. Examples of the first and second error correcting codes are a Hamming code, Bose Chaudhuri Hocqenghem (BCH) code, Reed Solomon (RS) code, and low-density parity check (LDPC) code, and the correctability of the second error correcting code is higher than that of the first error correcting code.

(Definitions)

The definitions of terms relevant to the memory system of this embodiment will be explained.

    • A physical page is a unit for which read or write can be performed at once inside the NAND flash memory. A logical page is a read/write unit set in the memory system. One logical page corresponds to one or more physical pages.
    • A physical block is a minimum unit for which data can independently be erased inside the NAND flash memory. The physical block includes a plurality of physical pages. A logical block is a data erase unit set in the memory system. One logical block corresponds to one or more physical pages.
    • A sector is a minimum unit of access from the host.
    • A cluster is a management unit for managing data in the memory system. A cluster size is set to be equal to or larger than a sector size, and equal to the data management unit of a file system adopted by the OS of the host or to a logical page size. An integral multiple of 2 or more of the cluster size may also correspond to the logical page size. One cluster corresponds to, for example, eight sectors.
    • A logical block number LBN is a number given to each logical block in order to identify the logical block, and is used as, for example, the ID (index) of the logical block.
    • A logical cluster number LCN is a number given to each logical cluster in order to identify the logical cluster, and is used as, for example, the ID (index) of the logical cluster.
    • A logical cluster address LCA is a logical cluster address on the memory system. The logical cluster address LCA corresponds to the logical block number LBN and logical cluster number LCN.
      [2. Address Conversion Table]

A write corresponding to a request from the host device is designated by a logical address (logical block addressing [LBA]) used in the host device. On the other hand, a write to the NAND flash memory 12 is designated by a logical storage position, which is different from the logical address LBA, in the NAND flash memory 12. In this embodiment, an address conversion table (lookup table [LUT]) is used when accessing a logical address (data storage position) in the NAND flash memory based on the logical address LBA supplied from the host device.

FIG. 3 is a schematic view for explaining an access method using the address conversion table LUT. The logical address LBA received from the host device is converted into the logical cluster address LCA. Subsequently, a specific index in the address conversion table LUT is referred to, and a specific logical address on the NAND flash memory is accessed based on an address corresponding to the index.

The address conversion table LUT manages the correspondence between an address at which the host device designates user data, and the logical storage position, which corresponds to the address, of latest data in the memory system. More specifically, the management unit of user data is a cluster, and the address conversion table LUT manages the correspondence between the logical cluster address LCA and logical block number LBN+logical cluster number LCN. The address conversion table LUT has a multi-stage structure, and includes first, second, and third tables TB1, TB2, and TB3.

The first table TB1 (region address information) is entirely expanded on the RAM, and includes elements capable of covering a whole area accessible by LBA. The unit of each element of the first table TB1 is not a cluster but a region which is a range gathered a plurality of consecutive cluster. That is, the first table TB1 is a table in which the LBA space accessible by the user is partitioned by the region size. One region corresponds to, for example, four clusters. The first table TB1 has an arrangement in which indices (region numbers REN) are allocated, and an address in the third table TB3 or second table TB2 is written in each element.

The second table TB2 (cluster address information) is a RAM area (cache area) for storing latest data position information (a table entry) that is read from the third table TB3 and concerns each cluster in a region covered by one element of the first table TB1.

The third table TB3 (cluster address information) is an area on the NAND flash memory, and stores the latest data position information (table entry) concerning the whole area accessible by LBA.

In addition, the address conversion table LUT of this embodiment includes an address block table (fourth table) TB4. The fourth table TB4 manages address information of a block to be used to store address information. The fourth table TB4 is expanded on the RAM from the NAND flash memory. The fourth table TB4 will be described in detail later.

FIG. 4 is a schematic view for explaining the relationship between the first, second, and third tables TB1, TB2, and TB3 contained in the address conversion table LUT. Rectangles shown in the first, second, and third tables TB1, TB2, and TB3 indicate address information to be managed by these tables.

The first table TB1 is expanded on the RAM 13 from the NAND flash memory 12. First, first address information corresponding to a given region number of the first table TB1 is accessed. If the first address information of the first table TB1 designates the second table TB2, second address information is acquired by accessing the second table TB2. Then, position information of a logical cluster is acquired from the second address information. The second table TB2 contains some pieces of address information read from the third table TB3. If the second address information is updated, the second address information is rewritten in the third table TB3.

On the other hand, if the first address information of the first table TB1 designates the third table TB3 (i.e., if there is no address information to be acquired in the second table TB2), third address information is acquired by accessing the third table TB3, and stored in the second table TB2 as needed. Then, position information of a logical cluster is acquired from the third address information.

[3. Operation of Memory System]

Since the size of one address information is small, an address space for storing address information contained in the address conversion table LUT is narrower than the whole address space of the NAND flash memory 12. Therefore, blocks for storing address information are restricted in the NAND flash memory 12, and address information is stored in only the restricted blocks (address blocks). There are only a few address blocks, so the amount of address information concerning the address blocks is small. As described previously, the address information of the address blocks is stored in the fourth table (address block table) TB4 contained in the address conversion table LUT.

FIG. 5 is a schematic view for explaining the address blocks. The NAND flash memory 12 includes a plurality of blocks BLK. Of the plurality of blocks BLK, blocks corresponding to logical block numbers LBN #A, #B, and #C are designated as address blocks, and address blocks #A, #B, and #C are used to store the address information concerning the address conversion table LUT. The number of address blocks is appropriately set in accordance with the memory capacity of the NAND flash memory 12. That is, the number of address blocks must be increased when the memory capacity of the NAND flash memory 12 increases, and can be decreased when the memory capacity of the NAND flash memory 12 decreases. Note that it is possible to select a plurality of blocks having consecutive logical block numbers, or a plurality of blocks having inconsecutive logical block numbers as shown in FIG. 5, as the address blocks.

FIG. 6 is a schematic view for explaining the storage state of the address conversion table LUT when the memory system 10 is powered on. As described above, the address conversion table LUT contains the first, second, third, and fourth tables TB1, TB2, TB3, and TB4. The NAND flash memory 12 nonvolatilly stores the first, third, and fourth tables TB1, TB3, and TB4. The RAM 13 as a cache area stores the first and fourth tables TB1 and TB4 read from the NAND flash memory 12. In addition, the RAM 13 stores the second table TB2 containing some pieces of address information read from the third table TB3 of the NAND flash memory 12.

The first and fourth tables TB1 and TB4 in the RAM 13 are rewritten to the NAND flash memory 12 as needed (for example, when data is updated). Note that when the memory system 10 is powered off, the data stored in the NAND flash memory 12 remains the same as that shown in FIG. 6, but no data is stored in the volatile RAM 13.

Next, an operation of acquiring a data storage position corresponding to a logical address will be explained. FIG. 7 is a schematic view for explaining the data storage position acquiring operation. FIG. 8 is a flowchart showing the data storage position acquiring operation.

When the memory system 10 receives the logical address LBA from the host device 20 (step S10), the storage controller 14 converts the logical address LBA into the logical cluster address LCA (step S11). Subsequently, the storage controller 14 accesses the first table TB1 of the RAM 13, and acquires first address information AD having a corresponding region number REN based on the logical cluster address LCA (step S12).

The first address information AD contains an upper bit α′ and lower bit β. The upper bit α′ indicates the entry number of the fourth table TB4. The bit number of the upper bit α′ is compressed to a bit number by which the number of (only a few) address blocks can be identified. The lower bit β is address information (for example, the logical cluster number LCN) for designating a corresponding logical address in the address block. The upper and lower bits each have a size (bit number) for storing required information. Note that restricted blocks for storing address information can be changed by changing information a of blocks stored in the address block table (fourth table TB4).

The storage controller 14 refers to the upper bit (entry number) α′ of the first address information AD acquired from the first table TB1, and accesses the fourth table TB4 based on the upper bit α′. Then, the storage controller 14 converts the upper bit α′ into an upper bit a (step S13).

The upper bit α is address information (for example, the logical block number LBN) for identifying all blocks in the NAND flash memory 12, and is an address allocated to all blocks in the NAND flash memory. Since the upper bit α is information for identifying all blocks in the NAND flash memory, the data size (bit number) is larger than that of the upper bit α′ and increases as the memory capacity of the NAND flash memory increases. However, the first table TB1 stores, instead of the upper bit α, the upper bit α′ whose data size is smaller than that of the upper bit α, so the size of the first table TB1 reduces.

Subsequently, the storage controller 14 restores (reconstitutes) the address information (step S14). That is, the storage controller 14 calculates third address information (for example, the logical block number LBN and logical cluster number LCN) for accessing the second table TB2 or third table TB3, by using second address information α+β obtained by adding the upper bit α acquired from the fourth table TB4 and the lower bit β stored in the first table TB1. Based on the calculated third address information, the storage controller 14 acquires the data storage position information from the third table TB3 of the NAND flash memory 12, or from the second table TB2 expanded on the RAM 13 from the third table TB3 of the NAND flash memory 12 (step S15). After that, the data (cluster) stored in the NAND flash memory 12 is accessed by using this data storage position information (step S16). This access includes a process of reading the data from the NAND flash memory 12, and a process of writing the data to the NAND flash memory 12.

EXAMPLE

A more detailed example for acquiring the data storage position information by using the logical address LBA will be explained below. FIG. 9 is a schematic view for explaining the data storage position information acquiring operation according to the example. Assume that 1 cluster=8 sectors and 1 region=512 clusters.

When the memory system 10 receives the logical address LBA (for example, LBA=3786437) from the host device 20, the storage controller 14 converts the logical address LBA into the logical cluster address LCA (step S20). The logical cluster address LCA is a quotient obtained by dividing the logical address LBA by the number of sectors in one cluster.

Then, the storage controller 14 accesses the region number REN of the first table TB1 based on the logical cluster address LCA (step S21). The region number REN is a quotient obtained by dividing the logical cluster address LCA by the region size. In step S21, the address information (for example, #10) of the second table TB2 (or third table TB3) is acquired.

Subsequently, the storage controller 14 accesses a slot contained in address information #10 of the second table TB2 (step S22). In step S22, a quotient obtained by dividing the remainder of the division in step S21 by 128 is used. After that, the storage controller 14 acquires data storage position information in the slot by using the remainder of the division in step S22 (step S23).

[4. Effect]

In this embodiment as described in detail above, the address conversion table LUT includes the first table TB1 for storing the address information of data stored in the NAND flash memory. Also, of all blocks in the NAND flash memory, blocks for storing an address indicating the storage position of data corresponding to a logical address are restricted. The first table TB1 is configured to manage these restricted blocks. Since this can reduce the amount of address information to be stored in the first table TB1, the memory capacity of the storage unit (RAM) for storing the first table TB1 can be reduced.

[5. Application Examples]

Configuration examples of the host device 20 will be explained below. The host device 20 can be configured by a personal computer.

FIG. 10 is a perspective view showing an example of a personal computer 200 incorporating the SSD 10 of the above-mentioned embodiment. The personal computer 200 (for example, a notebook computer) includes a main body 201 and display unit 202. The display unit 202 includes a display housing 203, and a display device 204 housed in the display housing 203.

The main body 201 includes a housing 205, a keyboard 206, and a touchpad 207 as a pointing device. The housing 205 houses, for example, a main circuit board, an optical disk drive (ODD) unit, a card slot, and the SSD 10.

The SSD 10 can be incorporated into the personal computer 200 instead of a conventional HDD, and can also be used as an additional device connected to an interface of the personal computer 200.

FIG. 11 is a block diagram showing a system configuration example of the personal computer 200 incorporating the SSD 10. The personal computer 200 includes a CPU 301, a north bridge 302, a main memory 303, a video controller 304, an audio controller 305, a south bridge 309, a BIOS-ROM 310, the SSD 10, an optical disk drive (ODD) unit 311, an embedded controller/keyboard controller IC (EC/KBC) 312, and a network controller 313.

The CPU 301 is a processor for controlling the operation of the personal computer 200, and executes an operating system (OS) loaded from the SSD 10 into the main memory 303. In addition, when the ODD unit 311 makes it possible to execute at least one of a read process and write process for a loaded optical disk, the CPU 301 executes the process. The CPU 301 also executes a system Basic Input/Output System (BIOS) stored in the BIOS-ROM 310. Note that the system BIOS is a program for controlling hardware in the personal computer 200.

The north bridge 302 is a bridge device connecting a local bus of the CPU 301 and the south bridge 309. The north bridge 302 also contains a memory controller for controlling access to the main memory 303. Furthermore, the north bridge 302 has a function of communicating with the video controller 304 via, for example, an Accelerated Graphics Port (AGP) bus 314, and a function of communicating with the audio controller 305.

The main memory 303 temporarily stores programs and data, and functions as a work area of the CPU 301. The main memory 303 is configured by, for example, a RAM.

The video controller 304 is a video reproduction controller for controlling the display unit 202 used as a monitor display of the personal computer 200. The audio controller 305 is an audio reproduction controller for controlling a loudspeaker 306 of the personal computer 200.

The south bridge 309 controls each device on, for example, a Low Pin Count (LPC) bus, and each device on, for example, a Peripheral Component Interconnect (PCI) bus 315. The south bridge 309 also controls the SSD 10 as a memory device for storing various kinds of software and data, via an ATA interface. The personal computer 200 accesses each sector of the SSD 10. A write command, read command, cache flash command, and the like are input to the SSD 10 via the ATA interface. Furthermore, the south bridge 309 has a function of controlling access to the BIOS-ROM 310 and ODD unit 311.

The EC/KBC 312 is a single-chip microcomputer obtained by integrating an embedded controller for power management and a keyboard controller for controlling the keyboard (KB) 206 and touchpad 207. The EC/KBC 312 has a function of turning on/off the power supply of the personal computer 200 in accordance with an operation on the power button by the user. The network controller 313 is a communication device for communicating with an external network such as the Internet.

The host device 20 can also be configured by a server connected to a network. FIG. 12 is a schematic view showing a server 400 incorporating the SSD 10.

The server 400 incorporates the SSD 10 for storing data. The server 400 is connected to a network 401 (for example, the Internet). In addition to the server 400, a plurality of clients 402 (personal computers) for providing the information and functions of the server 400 are connected to the network 401.

The server 400 provides files and data stored in the SSD 10 to the clients 402, and also provides its own functions to the clients 402.

Note that in the above-mentioned embodiment, the memory system has been explained by taking an SSD including a NAND flash memory as an example. However, the embodiment is not limited to this, and also applicable to another storage device such as a memory card incorporating a NAND flash memory.

While certain embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions. Indeed, the novel embodiments described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the embodiments described herein may be made without departing from the spirit of the inventions. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the inventions.

Claims (7)

What is claimed is:
1. A memory system comprising:
a nonvolatile memory including first address blocks configured to store an address indicating a data storage position, and second data blocks configured to store the data, each of the first address blocks and the second data blocks including memory cells;
a memory unit configured to store separate first, second and third tables,
said first table configured to store a first address including first bits and second bits, the second bits indicating a data storage position in the first address blocks;
a second table stored in the memory unit and configured to store third bits, the first bits having a compressed first data size by which one of the first blocks can be identified, the third bits having a second data size which is larger than the compressed first data size by which one of the first blocks and the second blocks can be identified;
a third table configured to store a third address indicating a data storage position corresponding to an externally supplied logical address;
wherein an address to be stored in the third table is set for each first logical data unit, and an address to be stored in the first table is set for each second logical data unit larger than the first logical data unit; and
a controller configured to calculate the third address by
converting the externally supplied logical address into a logical address of the second logical data unit,
acquiring the first address from the first table by using the converted logical address of the second logical data unit,
acquiring the first bits from the acquired first address,
converting the first bits into third bits using the second table,
calculating a third address by using a second address obtained by adding the third bits and the second bits, and
accessing the third table by using the third address; and
the controller further configured to access the memory unit using the data storage position information obtained from the third table using the third address.
2. The system of claim 1, wherein
the third bits comprise information for specifying one of the first address blocks, and
the controller converts the first bits into the third bits by using the second table, and specifies one of the first address blocks by using the third bits.
3. The system of claim 2, wherein the controller specifies the data storage position in the specified first address block by using the second bits.
4. The system of claim 1, wherein
the first data size is determined in accordance with the number of entries in the second table, and
the second data size is determined in accordance with the number of the first blocks and the number of the second blocks.
5. The system of claim 1, wherein
the nonvolatile memory stores the first table and the second table, and
the controller reads the first table and the second table from the nonvolatile memory to a volatile memory unit, and uses the first table and the second table in the volatile memory unit.
6. The system of claim 1, wherein
the nonvolatile memory stores the third table, and
the controller reads the third table from the nonvolatile memory to a volatile memory unit, and uses the third table in the volatile memory unit.
7. The system of claim 1, wherein a restricted block for storing address information can be changed by changing block information to be stored in the second table.
US13/893,615 2013-03-13 2013-05-14 Memory address management system and method Active 2033-10-22 US9158678B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US201361778968P true 2013-03-13 2013-03-13
US13/893,615 US9158678B2 (en) 2013-03-13 2013-05-14 Memory address management system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/893,615 US9158678B2 (en) 2013-03-13 2013-05-14 Memory address management system and method

Publications (2)

Publication Number Publication Date
US20140281144A1 US20140281144A1 (en) 2014-09-18
US9158678B2 true US9158678B2 (en) 2015-10-13

Family

ID=51533825

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/893,615 Active 2033-10-22 US9158678B2 (en) 2013-03-13 2013-05-14 Memory address management system and method

Country Status (1)

Country Link
US (1) US9158678B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180021950A (en) * 2016-08-22 2018-03-06 에스케이하이닉스 주식회사 Memory system

Citations (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010012222A1 (en) * 1999-12-20 2001-08-09 Yukio Terasaki Memory controller for flash memory system and method for accessing flash memory device
US20020062433A1 (en) * 1998-11-06 2002-05-23 Kazumasa Suzuki Memory with address conversion table
US20020069314A1 (en) * 1996-01-08 2002-06-06 Shigenori Miyauchi Semiconductor storage device
US20050144418A1 (en) * 2003-12-26 2005-06-30 Kenzo Kita Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
US6965963B1 (en) * 1999-07-28 2005-11-15 Sony Corporation Continuous arrangement of data clusters across multiple storages
US20080016267A1 (en) * 2006-06-30 2008-01-17 Tdk Corporation Memory controller, flash memory system having memory controller, and method for controlling flash memory
US20090055618A1 (en) * 2005-07-29 2009-02-26 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile storage device, nonvolatile storage system, and nonvolatile memory address management method
US20090083478A1 (en) * 2007-03-28 2009-03-26 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US20090248964A1 (en) * 2008-03-01 2009-10-01 Kabushiki Kaisha Toshiba Memory system and method for controlling a nonvolatile semiconductor memory
US7610435B2 (en) * 2004-02-27 2009-10-27 Panasonic Corporation Nonvolatile memory device employing a write completion flag table
US20100064111A1 (en) * 2008-09-09 2010-03-11 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
US20100070735A1 (en) * 2008-09-16 2010-03-18 Micron Technology, Inc. Embedded mapping information for memory devices
US20100095049A1 (en) * 2008-10-15 2010-04-15 Troy Manning Hot memory block table in a solid state storage device
US20110004725A1 (en) * 2009-07-02 2011-01-06 Toshiba Storage Device Corporation Data storage device and method
US20110022780A1 (en) * 2009-07-24 2011-01-27 Nir Jacob Wakrat Restore index page
US20120066568A1 (en) * 2010-09-14 2012-03-15 Kabushiki Kaisha Toshiba Storage device, electronic device, and data error correction method
US20120072680A1 (en) * 2010-09-22 2012-03-22 Kabushiki Kaisha Toshiba Semiconductor memory controlling device
US20120079167A1 (en) * 2010-09-24 2012-03-29 Kabushiki Kaisha Toshiba Memory system
US20120226957A1 (en) * 2011-03-01 2012-09-06 Kabushiki Kaisha Toshiba Controller, data storage device and program product
US20120246383A1 (en) * 2011-03-24 2012-09-27 Kabushiki Kaisha Toshiba Memory system and computer program product
US8316208B2 (en) * 2010-05-14 2012-11-20 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US20130198439A1 (en) * 2012-01-26 2013-08-01 Hitachi, Ltd. Non-volatile storage
US20140025865A1 (en) * 2012-07-19 2014-01-23 Kabushiki Kaisha Toshiba Semiconductor memory device
US8745310B2 (en) * 2007-01-23 2014-06-03 Sony Corporation Storage apparatus, computer system, and method for managing storage apparatus
US20140325129A1 (en) * 2008-12-31 2014-10-30 Micron Technology, Inc. Method and apparatus for active range mapping for a nonvolatile memory device

Patent Citations (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020069314A1 (en) * 1996-01-08 2002-06-06 Shigenori Miyauchi Semiconductor storage device
US20020062433A1 (en) * 1998-11-06 2002-05-23 Kazumasa Suzuki Memory with address conversion table
US6965963B1 (en) * 1999-07-28 2005-11-15 Sony Corporation Continuous arrangement of data clusters across multiple storages
US20010012222A1 (en) * 1999-12-20 2001-08-09 Yukio Terasaki Memory controller for flash memory system and method for accessing flash memory device
JP2001243110A (en) 1999-12-20 2001-09-07 Tdk Corp Memory controller, flash memory system and access method to flash memory
US20050144418A1 (en) * 2003-12-26 2005-06-30 Kenzo Kita Memory controller, flash memory system, and method of controlling operation for data exchange between host system and flash memory
US7610435B2 (en) * 2004-02-27 2009-10-27 Panasonic Corporation Nonvolatile memory device employing a write completion flag table
US20090055618A1 (en) * 2005-07-29 2009-02-26 Matsushita Electric Industrial Co., Ltd. Memory controller, nonvolatile storage device, nonvolatile storage system, and nonvolatile memory address management method
JP4679581B2 (en) 2005-07-29 2011-04-27 パナソニック株式会社 Memory controller, a nonvolatile memory device, the non-volatile storage system and address management method of a nonvolatile memory
US20080016267A1 (en) * 2006-06-30 2008-01-17 Tdk Corporation Memory controller, flash memory system having memory controller, and method for controlling flash memory
US8745310B2 (en) * 2007-01-23 2014-06-03 Sony Corporation Storage apparatus, computer system, and method for managing storage apparatus
US20090083478A1 (en) * 2007-03-28 2009-03-26 Kabushiki Kaisha Toshiba Integrated memory management and memory management method
US20090248964A1 (en) * 2008-03-01 2009-10-01 Kabushiki Kaisha Toshiba Memory system and method for controlling a nonvolatile semiconductor memory
US20100064111A1 (en) * 2008-09-09 2010-03-11 Kabushiki Kaisha Toshiba Information processing device including memory management device managing access from processor to memory and memory management method
US20100070735A1 (en) * 2008-09-16 2010-03-18 Micron Technology, Inc. Embedded mapping information for memory devices
US20100095049A1 (en) * 2008-10-15 2010-04-15 Troy Manning Hot memory block table in a solid state storage device
US20140325129A1 (en) * 2008-12-31 2014-10-30 Micron Technology, Inc. Method and apparatus for active range mapping for a nonvolatile memory device
US20110004725A1 (en) * 2009-07-02 2011-01-06 Toshiba Storage Device Corporation Data storage device and method
US20110022780A1 (en) * 2009-07-24 2011-01-27 Nir Jacob Wakrat Restore index page
US8316208B2 (en) * 2010-05-14 2012-11-20 Tdk Corporation Memory controller, flash memory system with memory controller, and method of controlling flash memory
US20120066568A1 (en) * 2010-09-14 2012-03-15 Kabushiki Kaisha Toshiba Storage device, electronic device, and data error correction method
US20120072680A1 (en) * 2010-09-22 2012-03-22 Kabushiki Kaisha Toshiba Semiconductor memory controlling device
US20120079167A1 (en) * 2010-09-24 2012-03-29 Kabushiki Kaisha Toshiba Memory system
US20120226957A1 (en) * 2011-03-01 2012-09-06 Kabushiki Kaisha Toshiba Controller, data storage device and program product
US20120246383A1 (en) * 2011-03-24 2012-09-27 Kabushiki Kaisha Toshiba Memory system and computer program product
US20130198439A1 (en) * 2012-01-26 2013-08-01 Hitachi, Ltd. Non-volatile storage
US20140025865A1 (en) * 2012-07-19 2014-01-23 Kabushiki Kaisha Toshiba Semiconductor memory device

Also Published As

Publication number Publication date
US20140281144A1 (en) 2014-09-18

Similar Documents

Publication Publication Date Title
US8850114B2 (en) Storage array controller for flash-based storage devices
US8433882B2 (en) Disk array control device and storage device
US8037232B2 (en) Data protection method for power failure and controller using the same
CN103348330B (en) Independent silicon elements dynamic higher-level redundancy mode management
US8645749B2 (en) Systems and methods for storing and recovering controller data in non-volatile memory devices
US8266501B2 (en) Stripe based memory operation
JP6045567B2 (en) Variable overprovisioned for nonvolatile memory
US8001317B2 (en) Data writing method for non-volatile memory and controller using the same
JP5317689B2 (en) Memory system
US8756367B2 (en) Information processing device, external storage device, host device, relay device, control program, and control method of information processing device
KR101466555B1 (en) Ldpc erasure decoding for flash memories
US8180953B2 (en) Data accessing method for flash memory, and storage system and controller system thereof
US8560926B2 (en) Data writing method, memory controller and memory storage apparatus
EP2709110A1 (en) Measuring cell damage for wear leveling in a non-volatile memory
KR100881187B1 (en) Hybrid hard disk drive, computer system including hybrid HDD, and flash memory DMA circuit of hybrid HDD
KR101394845B1 (en) Systems and methods for obtaining and using nonvolatile memory health information
JP6285709B2 (en) Nonvolatile memory program failure recovery by redundant array
US8938624B2 (en) Encryption key destruction for secure data erasure
US20130073798A1 (en) Flash memory device and data management method
US8131916B2 (en) Data storage device
US8606987B2 (en) Data writing method for flash memory and controller using the same
KR101562781B1 (en) Self-journaling and hierarchical consistency for non-volatile storage
US8910017B2 (en) Flash memory with random partition
US9389805B2 (en) I/O device and computing host interoperation
US9852061B2 (en) Memory device and operating method of memory device

Legal Events

Date Code Title Description
AS Assignment

Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUZUKI, RIKI;ASAMI, SHOHEI;HIDA, TOSHIKATSU;AND OTHERS;SIGNING DATES FROM 20130508 TO 20130509;REEL/FRAME:030411/0907

AS Assignment

Owner name: TOSHIBA MEMORY CORPORATION, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:KABUSHIKI KAISHA TOSHIBA;REEL/FRAME:043709/0035

Effective date: 20170706

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4